From 8f8eb2368a9249793c27eeec5c46eaae5ad703a8 Mon Sep 17 00:00:00 2001 From: Ovaiz Ali Date: Wed, 28 Feb 2024 21:32:08 -0400 Subject: [PATCH 1/6] Add Test Functions for metrics-httpasyncclient --- .../css/coverage.css | 154 ++ .../css/idea.min.css | 118 ++ .../img/arrowDown.gif | Bin 0 -> 89 bytes .../img/arrowUp.gif | Bin 0 -> 91 bytes .../index.html | 1314 ++++++++++++++ .../index_SORT_BY_BLOCK.html | 1314 ++++++++++++++ .../index_SORT_BY_BLOCK_DESC.html | 1314 ++++++++++++++ .../index_SORT_BY_CLASS.html | 1314 ++++++++++++++ .../index_SORT_BY_CLASS_DESC.html | 1314 ++++++++++++++ .../index_SORT_BY_LINE.html | 1314 ++++++++++++++ .../index_SORT_BY_LINE_DESC.html | 1314 ++++++++++++++ .../index_SORT_BY_METHOD.html | 1314 ++++++++++++++ .../index_SORT_BY_METHOD_DESC.html | 1314 ++++++++++++++ .../index_SORT_BY_NAME_DESC.html | 1314 ++++++++++++++ .../js/highlight.min.js | 1388 +++++++++++++++ .../js/highlightjs-line-numbers.min.js | 24 + .../ns-1/index.html | 1413 +++++++++++++++ .../ns-1/index_SORT_BY_BLOCK.html | 1413 +++++++++++++++ .../ns-1/index_SORT_BY_BLOCK_DESC.html | 1413 +++++++++++++++ .../ns-1/index_SORT_BY_CLASS.html | 1413 +++++++++++++++ .../ns-1/index_SORT_BY_CLASS_DESC.html | 1413 +++++++++++++++ .../ns-1/index_SORT_BY_LINE.html | 1413 +++++++++++++++ .../ns-1/index_SORT_BY_LINE_DESC.html | 1413 +++++++++++++++ .../ns-1/index_SORT_BY_METHOD.html | 1413 +++++++++++++++ .../ns-1/index_SORT_BY_METHOD_DESC.html | 1413 +++++++++++++++ .../ns-1/index_SORT_BY_NAME_DESC.html | 1413 +++++++++++++++ .../ns-1/sources/source-1.html | 190 +++ .../ns-1/sources/source-10.html | 203 +++ .../ns-1/sources/source-11.html | 485 ++++++ .../ns-1/sources/source-12.html | 222 +++ .../ns-1/sources/source-13.html | 137 ++ .../ns-1/sources/source-14.html | 136 ++ .../ns-1/sources/source-15.html | 1046 ++++++++++++ .../ns-1/sources/source-16.html | 275 +++ .../ns-1/sources/source-17.html | 1117 ++++++++++++ .../ns-1/sources/source-18.html | 216 +++ .../ns-1/sources/source-19.html | 495 ++++++ .../ns-1/sources/source-1a.html | 223 +++ .../ns-1/sources/source-1b.html | 810 +++++++++ .../ns-1/sources/source-1c.html | 217 +++ .../ns-1/sources/source-1d.html | 217 +++ .../ns-1/sources/source-1e.html | 161 ++ .../ns-1/sources/source-1f.html | 149 ++ .../ns-1/sources/source-2.html | 353 ++++ .../ns-1/sources/source-20.html | 313 ++++ .../ns-1/sources/source-21.html | 211 +++ .../ns-1/sources/source-22.html | 159 ++ .../ns-1/sources/source-23.html | 286 ++++ .../ns-1/sources/source-24.html | 353 ++++ .../ns-1/sources/source-25.html | 186 ++ .../ns-1/sources/source-26.html | 293 ++++ .../ns-1/sources/source-27.html | 345 ++++ .../ns-1/sources/source-28.html | 85 + .../ns-1/sources/source-29.html | 116 ++ .../ns-1/sources/source-2a.html | 89 + .../ns-1/sources/source-2b.html | 82 + .../ns-1/sources/source-2c.html | 81 + .../ns-1/sources/source-2d.html | 116 ++ .../ns-1/sources/source-2e.html | 104 ++ .../ns-1/sources/source-2f.html | 85 + .../ns-1/sources/source-3.html | 231 +++ .../ns-1/sources/source-30.html | 78 + .../ns-1/sources/source-31.html | 103 ++ .../ns-1/sources/source-32.html | 81 + .../ns-1/sources/source-4.html | 510 ++++++ .../ns-1/sources/source-5.html | 160 ++ .../ns-1/sources/source-6.html | 497 ++++++ .../ns-1/sources/source-7.html | 147 ++ .../ns-1/sources/source-8.html | 137 ++ .../ns-1/sources/source-9.html | 224 +++ .../ns-1/sources/source-a.html | 193 +++ .../ns-1/sources/source-b.html | 323 ++++ .../ns-1/sources/source-c.html | 125 ++ .../ns-1/sources/source-d.html | 162 ++ .../ns-1/sources/source-e.html | 410 +++++ .../ns-1/sources/source-f.html | 493 ++++++ .../ns-10/index.html | 305 ++++ .../ns-10/index_SORT_BY_BLOCK.html | 305 ++++ .../ns-10/index_SORT_BY_BLOCK_DESC.html | 305 ++++ .../ns-10/index_SORT_BY_CLASS.html | 305 ++++ .../ns-10/index_SORT_BY_CLASS_DESC.html | 305 ++++ .../ns-10/index_SORT_BY_LINE.html | 305 ++++ .../ns-10/index_SORT_BY_LINE_DESC.html | 305 ++++ .../ns-10/index_SORT_BY_METHOD.html | 305 ++++ .../ns-10/index_SORT_BY_METHOD_DESC.html | 305 ++++ .../ns-10/index_SORT_BY_NAME_DESC.html | 305 ++++ .../ns-10/sources/source-1.html | 112 ++ .../ns-10/sources/source-2.html | 119 ++ .../ns-10/sources/source-3.html | 135 ++ .../ns-10/sources/source-4.html | 116 ++ .../ns-10/sources/source-5.html | 422 +++++ .../ns-10/sources/source-6.html | 239 +++ .../ns-10/sources/source-7.html | 124 ++ .../ns-10/sources/source-8.html | 78 + .../ns-11/index.html | 170 ++ .../ns-11/index_SORT_BY_BLOCK.html | 170 ++ .../ns-11/index_SORT_BY_BLOCK_DESC.html | 170 ++ .../ns-11/index_SORT_BY_CLASS.html | 170 ++ .../ns-11/index_SORT_BY_CLASS_DESC.html | 170 ++ .../ns-11/index_SORT_BY_LINE.html | 170 ++ .../ns-11/index_SORT_BY_LINE_DESC.html | 170 ++ .../ns-11/index_SORT_BY_METHOD.html | 170 ++ .../ns-11/index_SORT_BY_METHOD_DESC.html | 170 ++ .../ns-11/index_SORT_BY_NAME_DESC.html | 170 ++ .../ns-11/sources/source-1.html | 152 ++ .../ns-11/sources/source-2.html | 145 ++ .../ns-12/index.html | 278 +++ .../ns-12/index_SORT_BY_BLOCK.html | 278 +++ .../ns-12/index_SORT_BY_BLOCK_DESC.html | 278 +++ .../ns-12/index_SORT_BY_CLASS.html | 278 +++ .../ns-12/index_SORT_BY_CLASS_DESC.html | 278 +++ .../ns-12/index_SORT_BY_LINE.html | 278 +++ .../ns-12/index_SORT_BY_LINE_DESC.html | 278 +++ .../ns-12/index_SORT_BY_METHOD.html | 278 +++ .../ns-12/index_SORT_BY_METHOD_DESC.html | 278 +++ .../ns-12/index_SORT_BY_NAME_DESC.html | 278 +++ .../ns-12/sources/source-1.html | 116 ++ .../ns-12/sources/source-2.html | 246 +++ .../ns-12/sources/source-3.html | 136 ++ .../ns-12/sources/source-4.html | 116 ++ .../ns-12/sources/source-5.html | 117 ++ .../ns-12/sources/source-6.html | 151 ++ .../ns-12/sources/source-7.html | 89 + .../ns-13/index.html | 170 ++ .../ns-13/index_SORT_BY_BLOCK.html | 170 ++ .../ns-13/index_SORT_BY_BLOCK_DESC.html | 170 ++ .../ns-13/index_SORT_BY_CLASS.html | 170 ++ .../ns-13/index_SORT_BY_CLASS_DESC.html | 170 ++ .../ns-13/index_SORT_BY_LINE.html | 170 ++ .../ns-13/index_SORT_BY_LINE_DESC.html | 170 ++ .../ns-13/index_SORT_BY_METHOD.html | 170 ++ .../ns-13/index_SORT_BY_METHOD_DESC.html | 170 ++ .../ns-13/index_SORT_BY_NAME_DESC.html | 170 ++ .../ns-13/sources/source-1.html | 831 +++++++++ .../ns-13/sources/source-2.html | 201 +++ .../ns-14/index.html | 170 ++ .../ns-14/index_SORT_BY_BLOCK.html | 170 ++ .../ns-14/index_SORT_BY_BLOCK_DESC.html | 170 ++ .../ns-14/index_SORT_BY_CLASS.html | 170 ++ .../ns-14/index_SORT_BY_CLASS_DESC.html | 170 ++ .../ns-14/index_SORT_BY_LINE.html | 170 ++ .../ns-14/index_SORT_BY_LINE_DESC.html | 170 ++ .../ns-14/index_SORT_BY_METHOD.html | 170 ++ .../ns-14/index_SORT_BY_METHOD_DESC.html | 170 ++ .../ns-14/index_SORT_BY_NAME_DESC.html | 170 ++ .../ns-14/sources/source-1.html | 832 +++++++++ .../ns-14/sources/source-2.html | 201 +++ .../ns-15/index.html | 251 +++ .../ns-15/index_SORT_BY_BLOCK.html | 251 +++ .../ns-15/index_SORT_BY_BLOCK_DESC.html | 251 +++ .../ns-15/index_SORT_BY_CLASS.html | 251 +++ .../ns-15/index_SORT_BY_CLASS_DESC.html | 251 +++ .../ns-15/index_SORT_BY_LINE.html | 251 +++ .../ns-15/index_SORT_BY_LINE_DESC.html | 251 +++ .../ns-15/index_SORT_BY_METHOD.html | 251 +++ .../ns-15/index_SORT_BY_METHOD_DESC.html | 251 +++ .../ns-15/index_SORT_BY_NAME_DESC.html | 251 +++ .../ns-15/sources/source-1.html | 193 +++ .../ns-15/sources/source-2.html | 754 ++++++++ .../ns-15/sources/source-3.html | 708 ++++++++ .../ns-15/sources/source-4.html | 286 ++++ .../ns-16/index.html | 170 ++ .../ns-16/index_SORT_BY_BLOCK.html | 170 ++ .../ns-16/index_SORT_BY_BLOCK_DESC.html | 170 ++ .../ns-16/index_SORT_BY_CLASS.html | 170 ++ .../ns-16/index_SORT_BY_CLASS_DESC.html | 170 ++ .../ns-16/index_SORT_BY_LINE.html | 170 ++ .../ns-16/index_SORT_BY_LINE_DESC.html | 170 ++ .../ns-16/index_SORT_BY_METHOD.html | 170 ++ .../ns-16/index_SORT_BY_METHOD_DESC.html | 170 ++ .../ns-16/index_SORT_BY_NAME_DESC.html | 170 ++ .../ns-16/sources/source-1.html | 173 ++ .../ns-16/sources/source-2.html | 1061 ++++++++++++ .../ns-16/sources/source-3.html | 85 + .../ns-17/index.html | 170 ++ .../ns-17/index_SORT_BY_BLOCK.html | 170 ++ .../ns-17/index_SORT_BY_BLOCK_DESC.html | 170 ++ .../ns-17/index_SORT_BY_CLASS.html | 170 ++ .../ns-17/index_SORT_BY_CLASS_DESC.html | 170 ++ .../ns-17/index_SORT_BY_LINE.html | 170 ++ .../ns-17/index_SORT_BY_LINE_DESC.html | 170 ++ .../ns-17/index_SORT_BY_METHOD.html | 170 ++ .../ns-17/index_SORT_BY_METHOD_DESC.html | 170 ++ .../ns-17/index_SORT_BY_NAME_DESC.html | 170 ++ .../ns-17/sources/source-1.html | 217 +++ .../ns-17/sources/source-2.html | 489 ++++++ .../ns-18/index.html | 440 +++++ .../ns-18/index_SORT_BY_BLOCK.html | 440 +++++ .../ns-18/index_SORT_BY_BLOCK_DESC.html | 440 +++++ .../ns-18/index_SORT_BY_CLASS.html | 440 +++++ .../ns-18/index_SORT_BY_CLASS_DESC.html | 440 +++++ .../ns-18/index_SORT_BY_LINE.html | 440 +++++ .../ns-18/index_SORT_BY_LINE_DESC.html | 440 +++++ .../ns-18/index_SORT_BY_METHOD.html | 440 +++++ .../ns-18/index_SORT_BY_METHOD_DESC.html | 440 +++++ .../ns-18/index_SORT_BY_NAME_DESC.html | 440 +++++ .../ns-18/sources/source-1.html | 156 ++ .../ns-18/sources/source-2.html | 184 ++ .../ns-18/sources/source-3.html | 139 ++ .../ns-18/sources/source-4.html | 123 ++ .../ns-18/sources/source-5.html | 154 ++ .../ns-18/sources/source-6.html | 157 ++ .../ns-18/sources/source-7.html | 165 ++ .../ns-18/sources/source-8.html | 155 ++ .../ns-18/sources/source-9.html | 274 +++ .../ns-18/sources/source-a.html | 169 ++ .../ns-18/sources/source-b.html | 217 +++ .../ns-18/sources/source-c.html | 185 ++ .../ns-19/index.html | 143 ++ .../ns-19/index_SORT_BY_BLOCK.html | 143 ++ .../ns-19/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-19/index_SORT_BY_CLASS.html | 143 ++ .../ns-19/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-19/index_SORT_BY_LINE.html | 143 ++ .../ns-19/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-19/index_SORT_BY_METHOD.html | 143 ++ .../ns-19/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-19/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-19/sources/source-1.html | 268 +++ .../ns-1a/index.html | 143 ++ .../ns-1a/index_SORT_BY_BLOCK.html | 143 ++ .../ns-1a/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-1a/index_SORT_BY_CLASS.html | 143 ++ .../ns-1a/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-1a/index_SORT_BY_LINE.html | 143 ++ .../ns-1a/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-1a/index_SORT_BY_METHOD.html | 143 ++ .../ns-1a/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-1a/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-1a/sources/source-1.html | 195 +++ .../ns-1b/index.html | 223 +++ .../ns-1b/index_SORT_BY_BLOCK.html | 223 +++ .../ns-1b/index_SORT_BY_BLOCK_DESC.html | 223 +++ .../ns-1b/index_SORT_BY_CLASS.html | 223 +++ .../ns-1b/index_SORT_BY_CLASS_DESC.html | 223 +++ .../ns-1b/index_SORT_BY_LINE.html | 223 +++ .../ns-1b/index_SORT_BY_LINE_DESC.html | 223 +++ .../ns-1b/index_SORT_BY_METHOD.html | 223 +++ .../ns-1b/index_SORT_BY_METHOD_DESC.html | 223 +++ .../ns-1b/index_SORT_BY_NAME_DESC.html | 223 +++ .../ns-1b/sources/source-1.html | 387 +++++ .../ns-1b/sources/source-2.html | 152 ++ .../ns-1b/sources/source-3.html | 131 ++ .../ns-1c/index.html | 278 +++ .../ns-1c/index_SORT_BY_BLOCK.html | 278 +++ .../ns-1c/index_SORT_BY_BLOCK_DESC.html | 278 +++ .../ns-1c/index_SORT_BY_CLASS.html | 278 +++ .../ns-1c/index_SORT_BY_CLASS_DESC.html | 278 +++ .../ns-1c/index_SORT_BY_LINE.html | 278 +++ .../ns-1c/index_SORT_BY_LINE_DESC.html | 278 +++ .../ns-1c/index_SORT_BY_METHOD.html | 278 +++ .../ns-1c/index_SORT_BY_METHOD_DESC.html | 278 +++ .../ns-1c/index_SORT_BY_NAME_DESC.html | 278 +++ .../ns-1c/sources/source-1.html | 293 ++++ .../ns-1c/sources/source-2.html | 183 ++ .../ns-1c/sources/source-3.html | 325 ++++ .../ns-1c/sources/source-4.html | 329 ++++ .../ns-1c/sources/source-5.html | 134 ++ .../ns-1c/sources/source-6.html | 159 ++ .../ns-1d/index.html | 143 ++ .../ns-1d/index_SORT_BY_BLOCK.html | 143 ++ .../ns-1d/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-1d/index_SORT_BY_CLASS.html | 143 ++ .../ns-1d/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-1d/index_SORT_BY_LINE.html | 143 ++ .../ns-1d/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-1d/index_SORT_BY_METHOD.html | 143 ++ .../ns-1d/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-1d/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-1d/sources/source-1.html | 220 +++ .../ns-1e/index.html | 170 ++ .../ns-1e/index_SORT_BY_BLOCK.html | 170 ++ .../ns-1e/index_SORT_BY_BLOCK_DESC.html | 170 ++ .../ns-1e/index_SORT_BY_CLASS.html | 170 ++ .../ns-1e/index_SORT_BY_CLASS_DESC.html | 170 ++ .../ns-1e/index_SORT_BY_LINE.html | 170 ++ .../ns-1e/index_SORT_BY_LINE_DESC.html | 170 ++ .../ns-1e/index_SORT_BY_METHOD.html | 170 ++ .../ns-1e/index_SORT_BY_METHOD_DESC.html | 170 ++ .../ns-1e/index_SORT_BY_NAME_DESC.html | 170 ++ .../ns-1e/sources/source-1.html | 831 +++++++++ .../ns-1e/sources/source-2.html | 201 +++ .../ns-1f/index.html | 251 +++ .../ns-1f/index_SORT_BY_BLOCK.html | 251 +++ .../ns-1f/index_SORT_BY_BLOCK_DESC.html | 251 +++ .../ns-1f/index_SORT_BY_CLASS.html | 251 +++ .../ns-1f/index_SORT_BY_CLASS_DESC.html | 251 +++ .../ns-1f/index_SORT_BY_LINE.html | 251 +++ .../ns-1f/index_SORT_BY_LINE_DESC.html | 251 +++ .../ns-1f/index_SORT_BY_METHOD.html | 251 +++ .../ns-1f/index_SORT_BY_METHOD_DESC.html | 251 +++ .../ns-1f/index_SORT_BY_NAME_DESC.html | 251 +++ .../ns-1f/sources/source-1.html | 193 +++ .../ns-1f/sources/source-2.html | 746 ++++++++ .../ns-1f/sources/source-3.html | 706 ++++++++ .../ns-1f/sources/source-4.html | 345 ++++ .../ns-2/index.html | 143 ++ .../ns-2/index_SORT_BY_BLOCK.html | 143 ++ .../ns-2/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-2/index_SORT_BY_CLASS.html | 143 ++ .../ns-2/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-2/index_SORT_BY_LINE.html | 143 ++ .../ns-2/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-2/index_SORT_BY_METHOD.html | 143 ++ .../ns-2/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-2/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-2/sources/source-1.html | 127 ++ .../ns-2/sources/source-2.html | 121 ++ .../ns-2/sources/source-3.html | 107 ++ .../ns-2/sources/source-4.html | 121 ++ .../ns-2/sources/source-5.html | 116 ++ .../ns-2/sources/source-6.html | 107 ++ .../ns-2/sources/source-7.html | 103 ++ .../ns-2/sources/source-8.html | 133 ++ .../ns-2/sources/source-9.html | 113 ++ .../ns-20/index.html | 251 +++ .../ns-20/index_SORT_BY_BLOCK.html | 251 +++ .../ns-20/index_SORT_BY_BLOCK_DESC.html | 251 +++ .../ns-20/index_SORT_BY_CLASS.html | 251 +++ .../ns-20/index_SORT_BY_CLASS_DESC.html | 251 +++ .../ns-20/index_SORT_BY_LINE.html | 251 +++ .../ns-20/index_SORT_BY_LINE_DESC.html | 251 +++ .../ns-20/index_SORT_BY_METHOD.html | 251 +++ .../ns-20/index_SORT_BY_METHOD_DESC.html | 251 +++ .../ns-20/index_SORT_BY_NAME_DESC.html | 251 +++ .../ns-20/sources/source-1.html | 193 +++ .../ns-20/sources/source-2.html | 745 ++++++++ .../ns-20/sources/source-3.html | 706 ++++++++ .../ns-20/sources/source-4.html | 345 ++++ .../ns-21/index.html | 197 +++ .../ns-21/index_SORT_BY_BLOCK.html | 197 +++ .../ns-21/index_SORT_BY_BLOCK_DESC.html | 197 +++ .../ns-21/index_SORT_BY_CLASS.html | 197 +++ .../ns-21/index_SORT_BY_CLASS_DESC.html | 197 +++ .../ns-21/index_SORT_BY_LINE.html | 197 +++ .../ns-21/index_SORT_BY_LINE_DESC.html | 197 +++ .../ns-21/index_SORT_BY_METHOD.html | 197 +++ .../ns-21/index_SORT_BY_METHOD_DESC.html | 197 +++ .../ns-21/index_SORT_BY_NAME_DESC.html | 197 +++ .../ns-21/sources/source-1.html | 584 +++++++ .../ns-21/sources/source-2.html | 193 +++ .../ns-21/sources/source-3.html | 336 ++++ .../ns-22/index.html | 167 ++ .../ns-22/index_SORT_BY_BLOCK.html | 167 ++ .../ns-22/index_SORT_BY_BLOCK_DESC.html | 167 ++ .../ns-22/index_SORT_BY_CLASS.html | 167 ++ .../ns-22/index_SORT_BY_CLASS_DESC.html | 167 ++ .../ns-22/index_SORT_BY_LINE.html | 167 ++ .../ns-22/index_SORT_BY_LINE_DESC.html | 167 ++ .../ns-22/index_SORT_BY_METHOD.html | 167 ++ .../ns-22/index_SORT_BY_METHOD_DESC.html | 167 ++ .../ns-22/index_SORT_BY_NAME_DESC.html | 167 ++ .../ns-22/sources/source-1.html | 348 ++++ .../ns-23/index.html | 143 ++ .../ns-23/index_SORT_BY_BLOCK.html | 143 ++ .../ns-23/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-23/index_SORT_BY_CLASS.html | 143 ++ .../ns-23/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-23/index_SORT_BY_LINE.html | 143 ++ .../ns-23/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-23/index_SORT_BY_METHOD.html | 143 ++ .../ns-23/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-23/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-23/sources/source-1.html | 195 +++ .../ns-24/index.html | 143 ++ .../ns-24/index_SORT_BY_BLOCK.html | 143 ++ .../ns-24/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-24/index_SORT_BY_CLASS.html | 143 ++ .../ns-24/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-24/index_SORT_BY_LINE.html | 143 ++ .../ns-24/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-24/index_SORT_BY_METHOD.html | 143 ++ .../ns-24/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-24/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-24/sources/source-1.html | 195 +++ .../ns-25/index.html | 143 ++ .../ns-25/index_SORT_BY_BLOCK.html | 143 ++ .../ns-25/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-25/index_SORT_BY_CLASS.html | 143 ++ .../ns-25/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-25/index_SORT_BY_LINE.html | 143 ++ .../ns-25/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-25/index_SORT_BY_METHOD.html | 143 ++ .../ns-25/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-25/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-25/sources/source-1.html | 195 +++ .../ns-26/index.html | 223 +++ .../ns-26/index_SORT_BY_BLOCK.html | 223 +++ .../ns-26/index_SORT_BY_BLOCK_DESC.html | 223 +++ .../ns-26/index_SORT_BY_CLASS.html | 223 +++ .../ns-26/index_SORT_BY_CLASS_DESC.html | 223 +++ .../ns-26/index_SORT_BY_LINE.html | 223 +++ .../ns-26/index_SORT_BY_LINE_DESC.html | 223 +++ .../ns-26/index_SORT_BY_METHOD.html | 223 +++ .../ns-26/index_SORT_BY_METHOD_DESC.html | 223 +++ .../ns-26/index_SORT_BY_NAME_DESC.html | 223 +++ .../ns-26/sources/source-1.html | 387 +++++ .../ns-26/sources/source-2.html | 152 ++ .../ns-26/sources/source-3.html | 130 ++ .../ns-27/index.html | 223 +++ .../ns-27/index_SORT_BY_BLOCK.html | 223 +++ .../ns-27/index_SORT_BY_BLOCK_DESC.html | 223 +++ .../ns-27/index_SORT_BY_CLASS.html | 223 +++ .../ns-27/index_SORT_BY_CLASS_DESC.html | 223 +++ .../ns-27/index_SORT_BY_LINE.html | 223 +++ .../ns-27/index_SORT_BY_LINE_DESC.html | 223 +++ .../ns-27/index_SORT_BY_METHOD.html | 223 +++ .../ns-27/index_SORT_BY_METHOD_DESC.html | 223 +++ .../ns-27/index_SORT_BY_NAME_DESC.html | 223 +++ .../ns-27/sources/source-1.html | 380 +++++ .../ns-27/sources/source-2.html | 152 ++ .../ns-27/sources/source-3.html | 130 ++ .../ns-28/index.html | 278 +++ .../ns-28/index_SORT_BY_BLOCK.html | 278 +++ .../ns-28/index_SORT_BY_BLOCK_DESC.html | 278 +++ .../ns-28/index_SORT_BY_CLASS.html | 278 +++ .../ns-28/index_SORT_BY_CLASS_DESC.html | 278 +++ .../ns-28/index_SORT_BY_LINE.html | 278 +++ .../ns-28/index_SORT_BY_LINE_DESC.html | 278 +++ .../ns-28/index_SORT_BY_METHOD.html | 278 +++ .../ns-28/index_SORT_BY_METHOD_DESC.html | 278 +++ .../ns-28/index_SORT_BY_NAME_DESC.html | 278 +++ .../ns-28/sources/source-1.html | 294 ++++ .../ns-28/sources/source-2.html | 183 ++ .../ns-28/sources/source-3.html | 325 ++++ .../ns-28/sources/source-4.html | 328 ++++ .../ns-28/sources/source-5.html | 135 ++ .../ns-28/sources/source-6.html | 159 ++ .../ns-3/index.html | 251 +++ .../ns-3/index_SORT_BY_BLOCK.html | 251 +++ .../ns-3/index_SORT_BY_BLOCK_DESC.html | 251 +++ .../ns-3/index_SORT_BY_CLASS.html | 251 +++ .../ns-3/index_SORT_BY_CLASS_DESC.html | 251 +++ .../ns-3/index_SORT_BY_LINE.html | 251 +++ .../ns-3/index_SORT_BY_LINE_DESC.html | 251 +++ .../ns-3/index_SORT_BY_METHOD.html | 251 +++ .../ns-3/index_SORT_BY_METHOD_DESC.html | 251 +++ .../ns-3/index_SORT_BY_NAME_DESC.html | 251 +++ .../ns-3/sources/source-1.html | 176 ++ .../ns-3/sources/source-2.html | 142 ++ .../ns-3/sources/source-3.html | 142 ++ .../ns-3/sources/source-4.html | 192 +++ .../ns-3/sources/source-5.html | 184 ++ .../ns-4/index.html | 167 ++ .../ns-4/index_SORT_BY_BLOCK.html | 167 ++ .../ns-4/index_SORT_BY_BLOCK_DESC.html | 167 ++ .../ns-4/index_SORT_BY_CLASS.html | 167 ++ .../ns-4/index_SORT_BY_CLASS_DESC.html | 167 ++ .../ns-4/index_SORT_BY_LINE.html | 167 ++ .../ns-4/index_SORT_BY_LINE_DESC.html | 167 ++ .../ns-4/index_SORT_BY_METHOD.html | 167 ++ .../ns-4/index_SORT_BY_METHOD_DESC.html | 167 ++ .../ns-4/index_SORT_BY_NAME_DESC.html | 167 ++ .../ns-4/sources/source-1.html | 250 +++ .../ns-5/index.html | 305 ++++ .../ns-5/index_SORT_BY_BLOCK.html | 305 ++++ .../ns-5/index_SORT_BY_BLOCK_DESC.html | 305 ++++ .../ns-5/index_SORT_BY_CLASS.html | 305 ++++ .../ns-5/index_SORT_BY_CLASS_DESC.html | 305 ++++ .../ns-5/index_SORT_BY_LINE.html | 305 ++++ .../ns-5/index_SORT_BY_LINE_DESC.html | 305 ++++ .../ns-5/index_SORT_BY_METHOD.html | 305 ++++ .../ns-5/index_SORT_BY_METHOD_DESC.html | 305 ++++ .../ns-5/index_SORT_BY_NAME_DESC.html | 305 ++++ .../ns-5/sources/source-1.html | 470 +++++ .../ns-5/sources/source-2.html | 228 +++ .../ns-5/sources/source-3.html | 424 +++++ .../ns-5/sources/source-4.html | 150 ++ .../ns-5/sources/source-5.html | 134 ++ .../ns-5/sources/source-6.html | 112 ++ .../ns-5/sources/source-7.html | 154 ++ .../ns-6/index.html | 170 ++ .../ns-6/index_SORT_BY_BLOCK.html | 170 ++ .../ns-6/index_SORT_BY_BLOCK_DESC.html | 170 ++ .../ns-6/index_SORT_BY_CLASS.html | 170 ++ .../ns-6/index_SORT_BY_CLASS_DESC.html | 170 ++ .../ns-6/index_SORT_BY_LINE.html | 170 ++ .../ns-6/index_SORT_BY_LINE_DESC.html | 170 ++ .../ns-6/index_SORT_BY_METHOD.html | 170 ++ .../ns-6/index_SORT_BY_METHOD_DESC.html | 170 ++ .../ns-6/index_SORT_BY_NAME_DESC.html | 170 ++ .../ns-6/sources/source-1.html | 128 ++ .../ns-6/sources/source-2.html | 335 ++++ .../ns-7/index.html | 278 +++ .../ns-7/index_SORT_BY_BLOCK.html | 278 +++ .../ns-7/index_SORT_BY_BLOCK_DESC.html | 278 +++ .../ns-7/index_SORT_BY_CLASS.html | 278 +++ .../ns-7/index_SORT_BY_CLASS_DESC.html | 278 +++ .../ns-7/index_SORT_BY_LINE.html | 278 +++ .../ns-7/index_SORT_BY_LINE_DESC.html | 278 +++ .../ns-7/index_SORT_BY_METHOD.html | 278 +++ .../ns-7/index_SORT_BY_METHOD_DESC.html | 278 +++ .../ns-7/index_SORT_BY_NAME_DESC.html | 278 +++ .../ns-7/sources/source-1.html | 305 ++++ .../ns-7/sources/source-2.html | 293 ++++ .../ns-7/sources/source-3.html | 655 +++++++ .../ns-7/sources/source-4.html | 120 ++ .../ns-7/sources/source-5.html | 222 +++ .../ns-7/sources/source-6.html | 467 +++++ .../ns-7/sources/source-7.html | 113 ++ .../ns-8/index.html | 251 +++ .../ns-8/index_SORT_BY_BLOCK.html | 251 +++ .../ns-8/index_SORT_BY_BLOCK_DESC.html | 251 +++ .../ns-8/index_SORT_BY_CLASS.html | 251 +++ .../ns-8/index_SORT_BY_CLASS_DESC.html | 251 +++ .../ns-8/index_SORT_BY_LINE.html | 251 +++ .../ns-8/index_SORT_BY_LINE_DESC.html | 251 +++ .../ns-8/index_SORT_BY_METHOD.html | 251 +++ .../ns-8/index_SORT_BY_METHOD_DESC.html | 251 +++ .../ns-8/index_SORT_BY_NAME_DESC.html | 251 +++ .../ns-8/sources/source-1.html | 184 ++ .../ns-8/sources/source-2.html | 546 ++++++ .../ns-8/sources/source-3.html | 125 ++ .../ns-8/sources/source-4.html | 418 +++++ .../ns-8/sources/source-5.html | 210 +++ .../ns-8/sources/source-6.html | 103 ++ .../ns-9/index.html | 143 ++ .../ns-9/index_SORT_BY_BLOCK.html | 143 ++ .../ns-9/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-9/index_SORT_BY_CLASS.html | 143 ++ .../ns-9/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-9/index_SORT_BY_LINE.html | 143 ++ .../ns-9/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-9/index_SORT_BY_METHOD.html | 143 ++ .../ns-9/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-9/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-9/sources/source-1.html | 205 +++ .../ns-a/index.html | 143 ++ .../ns-a/index_SORT_BY_BLOCK.html | 143 ++ .../ns-a/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-a/index_SORT_BY_CLASS.html | 143 ++ .../ns-a/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-a/index_SORT_BY_LINE.html | 143 ++ .../ns-a/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-a/index_SORT_BY_METHOD.html | 143 ++ .../ns-a/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-a/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-a/sources/source-1.html | 142 ++ .../ns-b/index.html | 170 ++ .../ns-b/index_SORT_BY_BLOCK.html | 170 ++ .../ns-b/index_SORT_BY_BLOCK_DESC.html | 170 ++ .../ns-b/index_SORT_BY_CLASS.html | 170 ++ .../ns-b/index_SORT_BY_CLASS_DESC.html | 170 ++ .../ns-b/index_SORT_BY_LINE.html | 170 ++ .../ns-b/index_SORT_BY_LINE_DESC.html | 170 ++ .../ns-b/index_SORT_BY_METHOD.html | 170 ++ .../ns-b/index_SORT_BY_METHOD_DESC.html | 170 ++ .../ns-b/index_SORT_BY_NAME_DESC.html | 170 ++ .../ns-b/sources/source-1.html | 140 ++ .../ns-b/sources/source-2.html | 268 +++ .../ns-c/index.html | 251 +++ .../ns-c/index_SORT_BY_BLOCK.html | 251 +++ .../ns-c/index_SORT_BY_BLOCK_DESC.html | 251 +++ .../ns-c/index_SORT_BY_CLASS.html | 251 +++ .../ns-c/index_SORT_BY_CLASS_DESC.html | 251 +++ .../ns-c/index_SORT_BY_LINE.html | 251 +++ .../ns-c/index_SORT_BY_LINE_DESC.html | 251 +++ .../ns-c/index_SORT_BY_METHOD.html | 251 +++ .../ns-c/index_SORT_BY_METHOD_DESC.html | 251 +++ .../ns-c/index_SORT_BY_NAME_DESC.html | 251 +++ .../ns-c/sources/source-1.html | 165 ++ .../ns-c/sources/source-2.html | 146 ++ .../ns-c/sources/source-3.html | 330 ++++ .../ns-c/sources/source-4.html | 138 ++ .../ns-c/sources/source-5.html | 166 ++ .../ns-d/index.html | 332 ++++ .../ns-d/index_SORT_BY_BLOCK.html | 332 ++++ .../ns-d/index_SORT_BY_BLOCK_DESC.html | 332 ++++ .../ns-d/index_SORT_BY_CLASS.html | 332 ++++ .../ns-d/index_SORT_BY_CLASS_DESC.html | 332 ++++ .../ns-d/index_SORT_BY_LINE.html | 332 ++++ .../ns-d/index_SORT_BY_LINE_DESC.html | 332 ++++ .../ns-d/index_SORT_BY_METHOD.html | 332 ++++ .../ns-d/index_SORT_BY_METHOD_DESC.html | 332 ++++ .../ns-d/index_SORT_BY_NAME_DESC.html | 332 ++++ .../ns-d/sources/source-1.html | 152 ++ .../ns-d/sources/source-2.html | 137 ++ .../ns-d/sources/source-3.html | 285 ++++ .../ns-d/sources/source-4.html | 229 +++ .../ns-d/sources/source-5.html | 147 ++ .../ns-d/sources/source-6.html | 308 ++++ .../ns-d/sources/source-7.html | 138 ++ .../ns-d/sources/source-8.html | 182 ++ .../ns-e/index.html | 143 ++ .../ns-e/index_SORT_BY_BLOCK.html | 143 ++ .../ns-e/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-e/index_SORT_BY_CLASS.html | 143 ++ .../ns-e/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-e/index_SORT_BY_LINE.html | 143 ++ .../ns-e/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-e/index_SORT_BY_METHOD.html | 143 ++ .../ns-e/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-e/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-e/sources/source-1.html | 189 +++ .../ns-f/index.html | 143 ++ .../ns-f/index_SORT_BY_BLOCK.html | 143 ++ .../ns-f/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-f/index_SORT_BY_CLASS.html | 143 ++ .../ns-f/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-f/index_SORT_BY_LINE.html | 143 ++ .../ns-f/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-f/index_SORT_BY_METHOD.html | 143 ++ .../ns-f/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-f/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-f/sources/source-1.html | 143 ++ .../css/coverage.css | 154 ++ .../css/idea.min.css | 118 ++ .../img/arrowDown.gif | Bin 0 -> 89 bytes .../img/arrowUp.gif | Bin 0 -> 91 bytes .../index.html | 1195 +++++++++++++ .../index_SORT_BY_BLOCK.html | 1195 +++++++++++++ .../index_SORT_BY_BLOCK_DESC.html | 1195 +++++++++++++ .../index_SORT_BY_CLASS.html | 1195 +++++++++++++ .../index_SORT_BY_CLASS_DESC.html | 1195 +++++++++++++ .../index_SORT_BY_LINE.html | 1195 +++++++++++++ .../index_SORT_BY_LINE_DESC.html | 1195 +++++++++++++ .../index_SORT_BY_METHOD.html | 1195 +++++++++++++ .../index_SORT_BY_METHOD_DESC.html | 1195 +++++++++++++ .../index_SORT_BY_NAME_DESC.html | 1195 +++++++++++++ .../js/highlight.min.js | 1388 +++++++++++++++ .../js/highlightjs-line-numbers.min.js | 24 + .../ns-1/index.html | 1169 +++++++++++++ .../ns-1/index_SORT_BY_BLOCK.html | 1169 +++++++++++++ .../ns-1/index_SORT_BY_BLOCK_DESC.html | 1169 +++++++++++++ .../ns-1/index_SORT_BY_CLASS.html | 1169 +++++++++++++ .../ns-1/index_SORT_BY_CLASS_DESC.html | 1169 +++++++++++++ .../ns-1/index_SORT_BY_LINE.html | 1169 +++++++++++++ .../ns-1/index_SORT_BY_LINE_DESC.html | 1169 +++++++++++++ .../ns-1/index_SORT_BY_METHOD.html | 1169 +++++++++++++ .../ns-1/index_SORT_BY_METHOD_DESC.html | 1169 +++++++++++++ .../ns-1/index_SORT_BY_NAME_DESC.html | 1169 +++++++++++++ .../ns-1/sources/source-1.html | 178 ++ .../ns-1/sources/source-10.html | 203 +++ .../ns-1/sources/source-11.html | 441 +++++ .../ns-1/sources/source-12.html | 210 +++ .../ns-1/sources/source-13.html | 137 ++ .../ns-1/sources/source-14.html | 136 ++ .../ns-1/sources/source-15.html | 1026 +++++++++++ .../ns-1/sources/source-16.html | 284 ++++ .../ns-1/sources/source-17.html | 1097 ++++++++++++ .../ns-1/sources/source-18.html | 196 +++ .../ns-1/sources/source-19.html | 467 +++++ .../ns-1/sources/source-1a.html | 211 +++ .../ns-1/sources/source-1b.html | 782 +++++++++ .../ns-1/sources/source-1c.html | 205 +++ .../ns-1/sources/source-1d.html | 197 +++ .../ns-1/sources/source-1e.html | 149 ++ .../ns-1/sources/source-1f.html | 149 ++ .../ns-1/sources/source-2.html | 333 ++++ .../ns-1/sources/source-20.html | 301 ++++ .../ns-1/sources/source-21.html | 199 +++ .../ns-1/sources/source-22.html | 147 ++ .../ns-1/sources/source-23.html | 286 ++++ .../ns-1/sources/source-24.html | 333 ++++ .../ns-1/sources/source-25.html | 174 ++ .../ns-1/sources/source-26.html | 281 +++ .../ns-1/sources/source-27.html | 325 ++++ .../ns-1/sources/source-28.html | 81 + .../ns-1/sources/source-29.html | 81 + .../ns-1/sources/source-2a.html | 103 ++ .../ns-1/sources/source-2b.html | 98 ++ .../ns-1/sources/source-2c.html | 85 + .../ns-1/sources/source-2d.html | 113 ++ .../ns-1/sources/source-2e.html | 78 + .../ns-1/sources/source-2f.html | 116 ++ .../ns-1/sources/source-3.html | 240 +++ .../ns-1/sources/source-30.html | 94 + .../ns-1/sources/source-31.html | 82 + .../ns-1/sources/source-32.html | 116 ++ .../ns-1/sources/source-4.html | 490 ++++++ .../ns-1/sources/source-5.html | 160 ++ .../ns-1/sources/source-6.html | 477 ++++++ .../ns-1/sources/source-7.html | 147 ++ .../ns-1/sources/source-8.html | 137 ++ .../ns-1/sources/source-9.html | 212 +++ .../ns-1/sources/source-a.html | 181 ++ .../ns-1/sources/source-b.html | 311 ++++ .../ns-1/sources/source-c.html | 125 ++ .../ns-1/sources/source-d.html | 162 ++ .../ns-1/sources/source-e.html | 390 +++++ .../ns-1/sources/source-f.html | 465 +++++ .../ns-10/index.html | 305 ++++ .../ns-10/index_SORT_BY_BLOCK.html | 305 ++++ .../ns-10/index_SORT_BY_BLOCK_DESC.html | 305 ++++ .../ns-10/index_SORT_BY_CLASS.html | 305 ++++ .../ns-10/index_SORT_BY_CLASS_DESC.html | 305 ++++ .../ns-10/index_SORT_BY_LINE.html | 305 ++++ .../ns-10/index_SORT_BY_LINE_DESC.html | 305 ++++ .../ns-10/index_SORT_BY_METHOD.html | 305 ++++ .../ns-10/index_SORT_BY_METHOD_DESC.html | 305 ++++ .../ns-10/index_SORT_BY_NAME_DESC.html | 305 ++++ .../ns-10/sources/source-1.html | 112 ++ .../ns-10/sources/source-2.html | 119 ++ .../ns-10/sources/source-3.html | 135 ++ .../ns-10/sources/source-4.html | 116 ++ .../ns-10/sources/source-5.html | 422 +++++ .../ns-10/sources/source-6.html | 239 +++ .../ns-10/sources/source-7.html | 124 ++ .../ns-10/sources/source-8.html | 78 + .../ns-11/index.html | 170 ++ .../ns-11/index_SORT_BY_BLOCK.html | 170 ++ .../ns-11/index_SORT_BY_BLOCK_DESC.html | 170 ++ .../ns-11/index_SORT_BY_CLASS.html | 170 ++ .../ns-11/index_SORT_BY_CLASS_DESC.html | 170 ++ .../ns-11/index_SORT_BY_LINE.html | 170 ++ .../ns-11/index_SORT_BY_LINE_DESC.html | 170 ++ .../ns-11/index_SORT_BY_METHOD.html | 170 ++ .../ns-11/index_SORT_BY_METHOD_DESC.html | 170 ++ .../ns-11/index_SORT_BY_NAME_DESC.html | 170 ++ .../ns-11/sources/source-1.html | 152 ++ .../ns-11/sources/source-2.html | 145 ++ .../ns-12/index.html | 278 +++ .../ns-12/index_SORT_BY_BLOCK.html | 278 +++ .../ns-12/index_SORT_BY_BLOCK_DESC.html | 278 +++ .../ns-12/index_SORT_BY_CLASS.html | 278 +++ .../ns-12/index_SORT_BY_CLASS_DESC.html | 278 +++ .../ns-12/index_SORT_BY_LINE.html | 278 +++ .../ns-12/index_SORT_BY_LINE_DESC.html | 278 +++ .../ns-12/index_SORT_BY_METHOD.html | 278 +++ .../ns-12/index_SORT_BY_METHOD_DESC.html | 278 +++ .../ns-12/index_SORT_BY_NAME_DESC.html | 278 +++ .../ns-12/sources/source-1.html | 116 ++ .../ns-12/sources/source-2.html | 246 +++ .../ns-12/sources/source-3.html | 136 ++ .../ns-12/sources/source-4.html | 116 ++ .../ns-12/sources/source-5.html | 117 ++ .../ns-12/sources/source-6.html | 151 ++ .../ns-12/sources/source-7.html | 89 + .../ns-13/index.html | 170 ++ .../ns-13/index_SORT_BY_BLOCK.html | 170 ++ .../ns-13/index_SORT_BY_BLOCK_DESC.html | 170 ++ .../ns-13/index_SORT_BY_CLASS.html | 170 ++ .../ns-13/index_SORT_BY_CLASS_DESC.html | 170 ++ .../ns-13/index_SORT_BY_LINE.html | 170 ++ .../ns-13/index_SORT_BY_LINE_DESC.html | 170 ++ .../ns-13/index_SORT_BY_METHOD.html | 170 ++ .../ns-13/index_SORT_BY_METHOD_DESC.html | 170 ++ .../ns-13/index_SORT_BY_NAME_DESC.html | 170 ++ .../ns-13/sources/source-1.html | 831 +++++++++ .../ns-13/sources/source-2.html | 201 +++ .../ns-14/index.html | 170 ++ .../ns-14/index_SORT_BY_BLOCK.html | 170 ++ .../ns-14/index_SORT_BY_BLOCK_DESC.html | 170 ++ .../ns-14/index_SORT_BY_CLASS.html | 170 ++ .../ns-14/index_SORT_BY_CLASS_DESC.html | 170 ++ .../ns-14/index_SORT_BY_LINE.html | 170 ++ .../ns-14/index_SORT_BY_LINE_DESC.html | 170 ++ .../ns-14/index_SORT_BY_METHOD.html | 170 ++ .../ns-14/index_SORT_BY_METHOD_DESC.html | 170 ++ .../ns-14/index_SORT_BY_NAME_DESC.html | 170 ++ .../ns-14/sources/source-1.html | 832 +++++++++ .../ns-14/sources/source-2.html | 201 +++ .../ns-15/index.html | 224 +++ .../ns-15/index_SORT_BY_BLOCK.html | 224 +++ .../ns-15/index_SORT_BY_BLOCK_DESC.html | 224 +++ .../ns-15/index_SORT_BY_CLASS.html | 224 +++ .../ns-15/index_SORT_BY_CLASS_DESC.html | 224 +++ .../ns-15/index_SORT_BY_LINE.html | 224 +++ .../ns-15/index_SORT_BY_LINE_DESC.html | 224 +++ .../ns-15/index_SORT_BY_METHOD.html | 224 +++ .../ns-15/index_SORT_BY_METHOD_DESC.html | 224 +++ .../ns-15/index_SORT_BY_NAME_DESC.html | 224 +++ .../ns-15/sources/source-1.html | 193 +++ .../ns-15/sources/source-2.html | 734 ++++++++ .../ns-15/sources/source-3.html | 708 ++++++++ .../ns-15/sources/source-4.html | 286 ++++ .../ns-16/index.html | 170 ++ .../ns-16/index_SORT_BY_BLOCK.html | 170 ++ .../ns-16/index_SORT_BY_BLOCK_DESC.html | 170 ++ .../ns-16/index_SORT_BY_CLASS.html | 170 ++ .../ns-16/index_SORT_BY_CLASS_DESC.html | 170 ++ .../ns-16/index_SORT_BY_LINE.html | 170 ++ .../ns-16/index_SORT_BY_LINE_DESC.html | 170 ++ .../ns-16/index_SORT_BY_METHOD.html | 170 ++ .../ns-16/index_SORT_BY_METHOD_DESC.html | 170 ++ .../ns-16/index_SORT_BY_NAME_DESC.html | 170 ++ .../ns-16/sources/source-1.html | 173 ++ .../ns-16/sources/source-2.html | 1061 ++++++++++++ .../ns-16/sources/source-3.html | 85 + .../ns-17/index.html | 170 ++ .../ns-17/index_SORT_BY_BLOCK.html | 170 ++ .../ns-17/index_SORT_BY_BLOCK_DESC.html | 170 ++ .../ns-17/index_SORT_BY_CLASS.html | 170 ++ .../ns-17/index_SORT_BY_CLASS_DESC.html | 170 ++ .../ns-17/index_SORT_BY_LINE.html | 170 ++ .../ns-17/index_SORT_BY_LINE_DESC.html | 170 ++ .../ns-17/index_SORT_BY_METHOD.html | 170 ++ .../ns-17/index_SORT_BY_METHOD_DESC.html | 170 ++ .../ns-17/index_SORT_BY_NAME_DESC.html | 170 ++ .../ns-17/sources/source-1.html | 217 +++ .../ns-17/sources/source-2.html | 489 ++++++ .../ns-18/index.html | 440 +++++ .../ns-18/index_SORT_BY_BLOCK.html | 440 +++++ .../ns-18/index_SORT_BY_BLOCK_DESC.html | 440 +++++ .../ns-18/index_SORT_BY_CLASS.html | 440 +++++ .../ns-18/index_SORT_BY_CLASS_DESC.html | 440 +++++ .../ns-18/index_SORT_BY_LINE.html | 440 +++++ .../ns-18/index_SORT_BY_LINE_DESC.html | 440 +++++ .../ns-18/index_SORT_BY_METHOD.html | 440 +++++ .../ns-18/index_SORT_BY_METHOD_DESC.html | 440 +++++ .../ns-18/index_SORT_BY_NAME_DESC.html | 440 +++++ .../ns-18/sources/source-1.html | 156 ++ .../ns-18/sources/source-2.html | 184 ++ .../ns-18/sources/source-3.html | 139 ++ .../ns-18/sources/source-4.html | 123 ++ .../ns-18/sources/source-5.html | 154 ++ .../ns-18/sources/source-6.html | 157 ++ .../ns-18/sources/source-7.html | 165 ++ .../ns-18/sources/source-8.html | 155 ++ .../ns-18/sources/source-9.html | 274 +++ .../ns-18/sources/source-a.html | 169 ++ .../ns-18/sources/source-b.html | 217 +++ .../ns-18/sources/source-c.html | 185 ++ .../ns-19/index.html | 143 ++ .../ns-19/index_SORT_BY_BLOCK.html | 143 ++ .../ns-19/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-19/index_SORT_BY_CLASS.html | 143 ++ .../ns-19/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-19/index_SORT_BY_LINE.html | 143 ++ .../ns-19/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-19/index_SORT_BY_METHOD.html | 143 ++ .../ns-19/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-19/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-19/sources/source-1.html | 268 +++ .../ns-1a/index.html | 143 ++ .../ns-1a/index_SORT_BY_BLOCK.html | 143 ++ .../ns-1a/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-1a/index_SORT_BY_CLASS.html | 143 ++ .../ns-1a/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-1a/index_SORT_BY_LINE.html | 143 ++ .../ns-1a/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-1a/index_SORT_BY_METHOD.html | 143 ++ .../ns-1a/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-1a/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-1a/sources/source-1.html | 195 +++ .../ns-1b/index.html | 197 +++ .../ns-1b/index_SORT_BY_BLOCK.html | 197 +++ .../ns-1b/index_SORT_BY_BLOCK_DESC.html | 197 +++ .../ns-1b/index_SORT_BY_CLASS.html | 197 +++ .../ns-1b/index_SORT_BY_CLASS_DESC.html | 197 +++ .../ns-1b/index_SORT_BY_LINE.html | 197 +++ .../ns-1b/index_SORT_BY_LINE_DESC.html | 197 +++ .../ns-1b/index_SORT_BY_METHOD.html | 197 +++ .../ns-1b/index_SORT_BY_METHOD_DESC.html | 197 +++ .../ns-1b/index_SORT_BY_NAME_DESC.html | 197 +++ .../ns-1b/sources/source-1.html | 367 ++++ .../ns-1b/sources/source-2.html | 152 ++ .../ns-1b/sources/source-3.html | 131 ++ .../ns-1c/index.html | 278 +++ .../ns-1c/index_SORT_BY_BLOCK.html | 278 +++ .../ns-1c/index_SORT_BY_BLOCK_DESC.html | 278 +++ .../ns-1c/index_SORT_BY_CLASS.html | 278 +++ .../ns-1c/index_SORT_BY_CLASS_DESC.html | 278 +++ .../ns-1c/index_SORT_BY_LINE.html | 278 +++ .../ns-1c/index_SORT_BY_LINE_DESC.html | 278 +++ .../ns-1c/index_SORT_BY_METHOD.html | 278 +++ .../ns-1c/index_SORT_BY_METHOD_DESC.html | 278 +++ .../ns-1c/index_SORT_BY_NAME_DESC.html | 278 +++ .../ns-1c/sources/source-1.html | 293 ++++ .../ns-1c/sources/source-2.html | 183 ++ .../ns-1c/sources/source-3.html | 325 ++++ .../ns-1c/sources/source-4.html | 329 ++++ .../ns-1c/sources/source-5.html | 134 ++ .../ns-1c/sources/source-6.html | 159 ++ .../ns-1d/index.html | 143 ++ .../ns-1d/index_SORT_BY_BLOCK.html | 143 ++ .../ns-1d/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-1d/index_SORT_BY_CLASS.html | 143 ++ .../ns-1d/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-1d/index_SORT_BY_LINE.html | 143 ++ .../ns-1d/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-1d/index_SORT_BY_METHOD.html | 143 ++ .../ns-1d/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-1d/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-1d/sources/source-1.html | 220 +++ .../ns-1e/index.html | 170 ++ .../ns-1e/index_SORT_BY_BLOCK.html | 170 ++ .../ns-1e/index_SORT_BY_BLOCK_DESC.html | 170 ++ .../ns-1e/index_SORT_BY_CLASS.html | 170 ++ .../ns-1e/index_SORT_BY_CLASS_DESC.html | 170 ++ .../ns-1e/index_SORT_BY_LINE.html | 170 ++ .../ns-1e/index_SORT_BY_LINE_DESC.html | 170 ++ .../ns-1e/index_SORT_BY_METHOD.html | 170 ++ .../ns-1e/index_SORT_BY_METHOD_DESC.html | 170 ++ .../ns-1e/index_SORT_BY_NAME_DESC.html | 170 ++ .../ns-1e/sources/source-1.html | 831 +++++++++ .../ns-1e/sources/source-2.html | 201 +++ .../ns-1f/index.html | 224 +++ .../ns-1f/index_SORT_BY_BLOCK.html | 224 +++ .../ns-1f/index_SORT_BY_BLOCK_DESC.html | 224 +++ .../ns-1f/index_SORT_BY_CLASS.html | 224 +++ .../ns-1f/index_SORT_BY_CLASS_DESC.html | 224 +++ .../ns-1f/index_SORT_BY_LINE.html | 224 +++ .../ns-1f/index_SORT_BY_LINE_DESC.html | 224 +++ .../ns-1f/index_SORT_BY_METHOD.html | 224 +++ .../ns-1f/index_SORT_BY_METHOD_DESC.html | 224 +++ .../ns-1f/index_SORT_BY_NAME_DESC.html | 224 +++ .../ns-1f/sources/source-1.html | 193 +++ .../ns-1f/sources/source-2.html | 726 ++++++++ .../ns-1f/sources/source-3.html | 706 ++++++++ .../ns-1f/sources/source-4.html | 345 ++++ .../ns-2/index.html | 143 ++ .../ns-2/index_SORT_BY_BLOCK.html | 143 ++ .../ns-2/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-2/index_SORT_BY_CLASS.html | 143 ++ .../ns-2/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-2/index_SORT_BY_LINE.html | 143 ++ .../ns-2/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-2/index_SORT_BY_METHOD.html | 143 ++ .../ns-2/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-2/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-2/sources/source-1.html | 127 ++ .../ns-2/sources/source-2.html | 107 ++ .../ns-2/sources/source-3.html | 116 ++ .../ns-2/sources/source-4.html | 133 ++ .../ns-2/sources/source-5.html | 113 ++ .../ns-2/sources/source-6.html | 103 ++ .../ns-2/sources/source-7.html | 121 ++ .../ns-2/sources/source-8.html | 121 ++ .../ns-2/sources/source-9.html | 107 ++ .../ns-20/index.html | 224 +++ .../ns-20/index_SORT_BY_BLOCK.html | 224 +++ .../ns-20/index_SORT_BY_BLOCK_DESC.html | 224 +++ .../ns-20/index_SORT_BY_CLASS.html | 224 +++ .../ns-20/index_SORT_BY_CLASS_DESC.html | 224 +++ .../ns-20/index_SORT_BY_LINE.html | 224 +++ .../ns-20/index_SORT_BY_LINE_DESC.html | 224 +++ .../ns-20/index_SORT_BY_METHOD.html | 224 +++ .../ns-20/index_SORT_BY_METHOD_DESC.html | 224 +++ .../ns-20/index_SORT_BY_NAME_DESC.html | 224 +++ .../ns-20/sources/source-1.html | 193 +++ .../ns-20/sources/source-2.html | 725 ++++++++ .../ns-20/sources/source-3.html | 706 ++++++++ .../ns-20/sources/source-4.html | 345 ++++ .../ns-21/index.html | 197 +++ .../ns-21/index_SORT_BY_BLOCK.html | 197 +++ .../ns-21/index_SORT_BY_BLOCK_DESC.html | 197 +++ .../ns-21/index_SORT_BY_CLASS.html | 197 +++ .../ns-21/index_SORT_BY_CLASS_DESC.html | 197 +++ .../ns-21/index_SORT_BY_LINE.html | 197 +++ .../ns-21/index_SORT_BY_LINE_DESC.html | 197 +++ .../ns-21/index_SORT_BY_METHOD.html | 197 +++ .../ns-21/index_SORT_BY_METHOD_DESC.html | 197 +++ .../ns-21/index_SORT_BY_NAME_DESC.html | 197 +++ .../ns-21/sources/source-1.html | 584 +++++++ .../ns-21/sources/source-2.html | 193 +++ .../ns-21/sources/source-3.html | 336 ++++ .../ns-22/index.html | 143 ++ .../ns-22/index_SORT_BY_BLOCK.html | 143 ++ .../ns-22/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-22/index_SORT_BY_CLASS.html | 143 ++ .../ns-22/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-22/index_SORT_BY_LINE.html | 143 ++ .../ns-22/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-22/index_SORT_BY_METHOD.html | 143 ++ .../ns-22/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-22/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-22/sources/source-1.html | 328 ++++ .../ns-23/index.html | 143 ++ .../ns-23/index_SORT_BY_BLOCK.html | 143 ++ .../ns-23/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-23/index_SORT_BY_CLASS.html | 143 ++ .../ns-23/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-23/index_SORT_BY_LINE.html | 143 ++ .../ns-23/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-23/index_SORT_BY_METHOD.html | 143 ++ .../ns-23/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-23/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-23/sources/source-1.html | 195 +++ .../ns-24/index.html | 143 ++ .../ns-24/index_SORT_BY_BLOCK.html | 143 ++ .../ns-24/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-24/index_SORT_BY_CLASS.html | 143 ++ .../ns-24/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-24/index_SORT_BY_LINE.html | 143 ++ .../ns-24/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-24/index_SORT_BY_METHOD.html | 143 ++ .../ns-24/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-24/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-24/sources/source-1.html | 195 +++ .../ns-25/index.html | 143 ++ .../ns-25/index_SORT_BY_BLOCK.html | 143 ++ .../ns-25/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-25/index_SORT_BY_CLASS.html | 143 ++ .../ns-25/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-25/index_SORT_BY_LINE.html | 143 ++ .../ns-25/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-25/index_SORT_BY_METHOD.html | 143 ++ .../ns-25/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-25/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-25/sources/source-1.html | 195 +++ .../ns-26/index.html | 197 +++ .../ns-26/index_SORT_BY_BLOCK.html | 197 +++ .../ns-26/index_SORT_BY_BLOCK_DESC.html | 197 +++ .../ns-26/index_SORT_BY_CLASS.html | 197 +++ .../ns-26/index_SORT_BY_CLASS_DESC.html | 197 +++ .../ns-26/index_SORT_BY_LINE.html | 197 +++ .../ns-26/index_SORT_BY_LINE_DESC.html | 197 +++ .../ns-26/index_SORT_BY_METHOD.html | 197 +++ .../ns-26/index_SORT_BY_METHOD_DESC.html | 197 +++ .../ns-26/index_SORT_BY_NAME_DESC.html | 197 +++ .../ns-26/sources/source-1.html | 367 ++++ .../ns-26/sources/source-2.html | 152 ++ .../ns-26/sources/source-3.html | 130 ++ .../ns-27/index.html | 197 +++ .../ns-27/index_SORT_BY_BLOCK.html | 197 +++ .../ns-27/index_SORT_BY_BLOCK_DESC.html | 197 +++ .../ns-27/index_SORT_BY_CLASS.html | 197 +++ .../ns-27/index_SORT_BY_CLASS_DESC.html | 197 +++ .../ns-27/index_SORT_BY_LINE.html | 197 +++ .../ns-27/index_SORT_BY_LINE_DESC.html | 197 +++ .../ns-27/index_SORT_BY_METHOD.html | 197 +++ .../ns-27/index_SORT_BY_METHOD_DESC.html | 197 +++ .../ns-27/index_SORT_BY_NAME_DESC.html | 197 +++ .../ns-27/sources/source-1.html | 360 ++++ .../ns-27/sources/source-2.html | 152 ++ .../ns-27/sources/source-3.html | 130 ++ .../ns-28/index.html | 278 +++ .../ns-28/index_SORT_BY_BLOCK.html | 278 +++ .../ns-28/index_SORT_BY_BLOCK_DESC.html | 278 +++ .../ns-28/index_SORT_BY_CLASS.html | 278 +++ .../ns-28/index_SORT_BY_CLASS_DESC.html | 278 +++ .../ns-28/index_SORT_BY_LINE.html | 278 +++ .../ns-28/index_SORT_BY_LINE_DESC.html | 278 +++ .../ns-28/index_SORT_BY_METHOD.html | 278 +++ .../ns-28/index_SORT_BY_METHOD_DESC.html | 278 +++ .../ns-28/index_SORT_BY_NAME_DESC.html | 278 +++ .../ns-28/sources/source-1.html | 294 ++++ .../ns-28/sources/source-2.html | 183 ++ .../ns-28/sources/source-3.html | 325 ++++ .../ns-28/sources/source-4.html | 328 ++++ .../ns-28/sources/source-5.html | 135 ++ .../ns-28/sources/source-6.html | 159 ++ .../ns-3/index.html | 251 +++ .../ns-3/index_SORT_BY_BLOCK.html | 251 +++ .../ns-3/index_SORT_BY_BLOCK_DESC.html | 251 +++ .../ns-3/index_SORT_BY_CLASS.html | 251 +++ .../ns-3/index_SORT_BY_CLASS_DESC.html | 251 +++ .../ns-3/index_SORT_BY_LINE.html | 251 +++ .../ns-3/index_SORT_BY_LINE_DESC.html | 251 +++ .../ns-3/index_SORT_BY_METHOD.html | 251 +++ .../ns-3/index_SORT_BY_METHOD_DESC.html | 251 +++ .../ns-3/index_SORT_BY_NAME_DESC.html | 251 +++ .../ns-3/sources/source-1.html | 176 ++ .../ns-3/sources/source-2.html | 142 ++ .../ns-3/sources/source-3.html | 142 ++ .../ns-3/sources/source-4.html | 192 +++ .../ns-3/sources/source-5.html | 184 ++ .../ns-4/index.html | 143 ++ .../ns-4/index_SORT_BY_BLOCK.html | 143 ++ .../ns-4/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-4/index_SORT_BY_CLASS.html | 143 ++ .../ns-4/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-4/index_SORT_BY_LINE.html | 143 ++ .../ns-4/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-4/index_SORT_BY_METHOD.html | 143 ++ .../ns-4/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-4/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-4/sources/source-1.html | 238 +++ .../ns-5/index.html | 305 ++++ .../ns-5/index_SORT_BY_BLOCK.html | 305 ++++ .../ns-5/index_SORT_BY_BLOCK_DESC.html | 305 ++++ .../ns-5/index_SORT_BY_CLASS.html | 305 ++++ .../ns-5/index_SORT_BY_CLASS_DESC.html | 305 ++++ .../ns-5/index_SORT_BY_LINE.html | 305 ++++ .../ns-5/index_SORT_BY_LINE_DESC.html | 305 ++++ .../ns-5/index_SORT_BY_METHOD.html | 305 ++++ .../ns-5/index_SORT_BY_METHOD_DESC.html | 305 ++++ .../ns-5/index_SORT_BY_NAME_DESC.html | 305 ++++ .../ns-5/sources/source-1.html | 470 +++++ .../ns-5/sources/source-2.html | 228 +++ .../ns-5/sources/source-3.html | 424 +++++ .../ns-5/sources/source-4.html | 150 ++ .../ns-5/sources/source-5.html | 134 ++ .../ns-5/sources/source-6.html | 112 ++ .../ns-5/sources/source-7.html | 154 ++ .../ns-6/index.html | 170 ++ .../ns-6/index_SORT_BY_BLOCK.html | 170 ++ .../ns-6/index_SORT_BY_BLOCK_DESC.html | 170 ++ .../ns-6/index_SORT_BY_CLASS.html | 170 ++ .../ns-6/index_SORT_BY_CLASS_DESC.html | 170 ++ .../ns-6/index_SORT_BY_LINE.html | 170 ++ .../ns-6/index_SORT_BY_LINE_DESC.html | 170 ++ .../ns-6/index_SORT_BY_METHOD.html | 170 ++ .../ns-6/index_SORT_BY_METHOD_DESC.html | 170 ++ .../ns-6/index_SORT_BY_NAME_DESC.html | 170 ++ .../ns-6/sources/source-1.html | 128 ++ .../ns-6/sources/source-2.html | 335 ++++ .../ns-7/index.html | 278 +++ .../ns-7/index_SORT_BY_BLOCK.html | 278 +++ .../ns-7/index_SORT_BY_BLOCK_DESC.html | 278 +++ .../ns-7/index_SORT_BY_CLASS.html | 278 +++ .../ns-7/index_SORT_BY_CLASS_DESC.html | 278 +++ .../ns-7/index_SORT_BY_LINE.html | 278 +++ .../ns-7/index_SORT_BY_LINE_DESC.html | 278 +++ .../ns-7/index_SORT_BY_METHOD.html | 278 +++ .../ns-7/index_SORT_BY_METHOD_DESC.html | 278 +++ .../ns-7/index_SORT_BY_NAME_DESC.html | 278 +++ .../ns-7/sources/source-1.html | 305 ++++ .../ns-7/sources/source-2.html | 293 ++++ .../ns-7/sources/source-3.html | 655 +++++++ .../ns-7/sources/source-4.html | 120 ++ .../ns-7/sources/source-5.html | 222 +++ .../ns-7/sources/source-6.html | 467 +++++ .../ns-7/sources/source-7.html | 113 ++ .../ns-8/index.html | 251 +++ .../ns-8/index_SORT_BY_BLOCK.html | 251 +++ .../ns-8/index_SORT_BY_BLOCK_DESC.html | 251 +++ .../ns-8/index_SORT_BY_CLASS.html | 251 +++ .../ns-8/index_SORT_BY_CLASS_DESC.html | 251 +++ .../ns-8/index_SORT_BY_LINE.html | 251 +++ .../ns-8/index_SORT_BY_LINE_DESC.html | 251 +++ .../ns-8/index_SORT_BY_METHOD.html | 251 +++ .../ns-8/index_SORT_BY_METHOD_DESC.html | 251 +++ .../ns-8/index_SORT_BY_NAME_DESC.html | 251 +++ .../ns-8/sources/source-1.html | 184 ++ .../ns-8/sources/source-2.html | 546 ++++++ .../ns-8/sources/source-3.html | 125 ++ .../ns-8/sources/source-4.html | 418 +++++ .../ns-8/sources/source-5.html | 210 +++ .../ns-8/sources/source-6.html | 103 ++ .../ns-9/index.html | 143 ++ .../ns-9/index_SORT_BY_BLOCK.html | 143 ++ .../ns-9/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-9/index_SORT_BY_CLASS.html | 143 ++ .../ns-9/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-9/index_SORT_BY_LINE.html | 143 ++ .../ns-9/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-9/index_SORT_BY_METHOD.html | 143 ++ .../ns-9/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-9/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-9/sources/source-1.html | 205 +++ .../ns-a/index.html | 143 ++ .../ns-a/index_SORT_BY_BLOCK.html | 143 ++ .../ns-a/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-a/index_SORT_BY_CLASS.html | 143 ++ .../ns-a/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-a/index_SORT_BY_LINE.html | 143 ++ .../ns-a/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-a/index_SORT_BY_METHOD.html | 143 ++ .../ns-a/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-a/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-a/sources/source-1.html | 142 ++ .../ns-b/index.html | 170 ++ .../ns-b/index_SORT_BY_BLOCK.html | 170 ++ .../ns-b/index_SORT_BY_BLOCK_DESC.html | 170 ++ .../ns-b/index_SORT_BY_CLASS.html | 170 ++ .../ns-b/index_SORT_BY_CLASS_DESC.html | 170 ++ .../ns-b/index_SORT_BY_LINE.html | 170 ++ .../ns-b/index_SORT_BY_LINE_DESC.html | 170 ++ .../ns-b/index_SORT_BY_METHOD.html | 170 ++ .../ns-b/index_SORT_BY_METHOD_DESC.html | 170 ++ .../ns-b/index_SORT_BY_NAME_DESC.html | 170 ++ .../ns-b/sources/source-1.html | 140 ++ .../ns-b/sources/source-2.html | 268 +++ .../ns-c/index.html | 251 +++ .../ns-c/index_SORT_BY_BLOCK.html | 251 +++ .../ns-c/index_SORT_BY_BLOCK_DESC.html | 251 +++ .../ns-c/index_SORT_BY_CLASS.html | 251 +++ .../ns-c/index_SORT_BY_CLASS_DESC.html | 251 +++ .../ns-c/index_SORT_BY_LINE.html | 251 +++ .../ns-c/index_SORT_BY_LINE_DESC.html | 251 +++ .../ns-c/index_SORT_BY_METHOD.html | 251 +++ .../ns-c/index_SORT_BY_METHOD_DESC.html | 251 +++ .../ns-c/index_SORT_BY_NAME_DESC.html | 251 +++ .../ns-c/sources/source-1.html | 165 ++ .../ns-c/sources/source-2.html | 146 ++ .../ns-c/sources/source-3.html | 330 ++++ .../ns-c/sources/source-4.html | 138 ++ .../ns-c/sources/source-5.html | 166 ++ .../ns-d/index.html | 332 ++++ .../ns-d/index_SORT_BY_BLOCK.html | 332 ++++ .../ns-d/index_SORT_BY_BLOCK_DESC.html | 332 ++++ .../ns-d/index_SORT_BY_CLASS.html | 332 ++++ .../ns-d/index_SORT_BY_CLASS_DESC.html | 332 ++++ .../ns-d/index_SORT_BY_LINE.html | 332 ++++ .../ns-d/index_SORT_BY_LINE_DESC.html | 332 ++++ .../ns-d/index_SORT_BY_METHOD.html | 332 ++++ .../ns-d/index_SORT_BY_METHOD_DESC.html | 332 ++++ .../ns-d/index_SORT_BY_NAME_DESC.html | 332 ++++ .../ns-d/sources/source-1.html | 152 ++ .../ns-d/sources/source-2.html | 137 ++ .../ns-d/sources/source-3.html | 285 ++++ .../ns-d/sources/source-4.html | 229 +++ .../ns-d/sources/source-5.html | 147 ++ .../ns-d/sources/source-6.html | 308 ++++ .../ns-d/sources/source-7.html | 138 ++ .../ns-d/sources/source-8.html | 182 ++ .../ns-e/index.html | 143 ++ .../ns-e/index_SORT_BY_BLOCK.html | 143 ++ .../ns-e/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-e/index_SORT_BY_CLASS.html | 143 ++ .../ns-e/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-e/index_SORT_BY_LINE.html | 143 ++ .../ns-e/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-e/index_SORT_BY_METHOD.html | 143 ++ .../ns-e/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-e/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-e/sources/source-1.html | 189 +++ .../ns-f/index.html | 143 ++ .../ns-f/index_SORT_BY_BLOCK.html | 143 ++ .../ns-f/index_SORT_BY_BLOCK_DESC.html | 143 ++ .../ns-f/index_SORT_BY_CLASS.html | 143 ++ .../ns-f/index_SORT_BY_CLASS_DESC.html | 143 ++ .../ns-f/index_SORT_BY_LINE.html | 143 ++ .../ns-f/index_SORT_BY_LINE_DESC.html | 143 ++ .../ns-f/index_SORT_BY_METHOD.html | 143 ++ .../ns-f/index_SORT_BY_METHOD_DESC.html | 143 ++ .../ns-f/index_SORT_BY_NAME_DESC.html | 143 ++ .../ns-f/sources/source-1.html | 143 ++ .../httpasyncclient/HttpClientTestBase.java | 2 + .../InstrumentedHttpClientsTest.java | 76 +- .../InstrumentedHttpClientsTimerTest.java | 113 +- .../InstrumentedNClientConnManagerTest.java | 61 + .../InstrumentedAppender.html | 1 + .../InstrumentedAppender.java.html | 139 ++ .../InstrumentedAppenderConfigTest.html | 1 + .../InstrumentedAppenderConfigTest.java.html | 67 + .../InstrumentedAppenderTest.html | 1 + .../InstrumentedAppenderTest.java.html | 130 ++ .../com.codahale.metrics.log4j2/index.html | 1 + .../index.source.html | 1 + .../com.codahale.metrics/CachedGauge.html | 1 + .../CachedGauge.java.html | 75 + .../CachedGaugeTest$1.html | 1 + .../CachedGaugeTest$2.html | 1 + .../CachedGaugeTest$3.html | 1 + .../CachedGaugeTest$4.html | 1 + .../com.codahale.metrics/CachedGaugeTest.html | 1 + .../CachedGaugeTest.java.html | 132 ++ .../ChunkedAssociativeLongArray$Chunk.html | 1 + .../ChunkedAssociativeLongArray.html | 1 + .../ChunkedAssociativeLongArray.java.html | 201 +++ .../ChunkedAssociativeLongArrayTest.html | 1 + .../ChunkedAssociativeLongArrayTest.java.html | 41 + .../ClassMetadataTest.html | 1 + .../ClassMetadataTest.java.html | 14 + .../Clock$UserTimeClock.html | 1 + .../Clock$UserTimeClockHolder.html | 1 + .../com.codahale.metrics/Clock.html | 1 + .../com.codahale.metrics/Clock.java.html | 47 + .../com.codahale.metrics/ClockTest.html | 1 + .../com.codahale.metrics/ClockTest.java.html | 29 + .../ConsoleReporter$Builder.html | 1 + .../com.codahale.metrics/ConsoleReporter.html | 1 + .../ConsoleReporter.java.html | 358 ++++ .../ConsoleReporterTest.html | 1 + .../ConsoleReporterTest.java.html | 418 +++++ .../com.codahale.metrics/Counter.html | 1 + .../com.codahale.metrics/Counter.java.html | 57 + .../com.codahale.metrics/CounterTest.html | 1 + .../CounterTest.java.html | 64 + .../CsvReporter$Builder.html | 1 + .../com.codahale.metrics/CsvReporter.html | 1 + .../CsvReporter.java.html | 345 ++++ .../com.codahale.metrics/CsvReporterTest.html | 1 + .../CsvReporterTest.java.html | 246 +++ .../DefaultSettableGauge.html | 1 + .../DefaultSettableGauge.java.html | 44 + .../DefaultSettableGaugeTest.html | 1 + .../DefaultSettableGaugeTest.java.html | 27 + .../com.codahale.metrics/DerivativeGauge.html | 1 + .../DerivativeGauge.java.html | 34 + .../DerivativeGaugeTest$1.html | 1 + .../DerivativeGaugeTest.html | 1 + .../DerivativeGaugeTest.java.html | 22 + .../com.codahale.metrics/EWMA.html | 1 + .../com.codahale.metrics/EWMA.java.html | 109 ++ .../com.codahale.metrics/EWMATest.html | 1 + .../com.codahale.metrics/EWMATest.java.html | 225 +++ .../ExponentialMovingAverages.html | 1 + .../ExponentialMovingAverages.java.html | 78 + .../ExponentiallyDecayingReservoir.html | 1 + .../ExponentiallyDecayingReservoir.java.html | 208 +++ ...ayingReservoirTest$ReservoirFactory$1.html | 1 + ...ayingReservoirTest$ReservoirFactory$2.html | 1 + ...ecayingReservoirTest$ReservoirFactory.html | 1 + .../ExponentiallyDecayingReservoirTest.html | 1 + ...ponentiallyDecayingReservoirTest.java.html | 418 +++++ .../FixedNameCsvFileProvider.html | 1 + .../FixedNameCsvFileProvider.java.html | 22 + .../FixedNameCsvFileProviderTest.html | 1 + .../FixedNameCsvFileProviderTest.java.html | 39 + .../com.codahale.metrics/Histogram.html | 1 + .../com.codahale.metrics/Histogram.java.html | 59 + .../com.codahale.metrics/HistogramTest.html | 1 + .../HistogramTest.java.html | 41 + ...dExecutorService$InstrumentedCallable.html | 1 + ...dExecutorService$InstrumentedRunnable.html | 1 + .../InstrumentedExecutorService.html | 1 + .../InstrumentedExecutorService.java.html | 242 +++ .../InstrumentedExecutorServiceTest.html | 1 + .../InstrumentedExecutorServiceTest.java.html | 219 +++ ...dExecutorService$InstrumentedCallable.html | 1 + ...rService$InstrumentedPeriodicRunnable.html | 1 + ...dExecutorService$InstrumentedRunnable.html | 1 + .../InstrumentedScheduledExecutorService.html | 1 + ...rumentedScheduledExecutorService.java.html | 298 ++++ ...trumentedScheduledExecutorServiceTest.html | 1 + ...ntedScheduledExecutorServiceTest.java.html | 306 ++++ ...tedThreadFactory$InstrumentedRunnable.html | 1 + .../InstrumentedThreadFactory.html | 1 + .../InstrumentedThreadFactory.java.html | 74 + .../InstrumentedThreadFactoryTest.html | 1 + .../InstrumentedThreadFactoryTest.java.html | 78 + ...xponentiallyDecayingReservoir$Builder.html | 1 + ...lyDecayingReservoir$RescalingConsumer.html | 1 + ...eExponentiallyDecayingReservoir$State.html | 1 + ...ockFreeExponentiallyDecayingReservoir.html | 1 + ...eeExponentiallyDecayingReservoir.java.html | 271 +++ .../com.codahale.metrics/ManualClock.html | 1 + .../ManualClock.java.html | 45 + .../com.codahale.metrics/Meter.html | 1 + .../com.codahale.metrics/Meter.java.html | 107 ++ .../MeterApproximationTest.html | 1 + .../MeterApproximationTest.java.html | 83 + .../com.codahale.metrics/MeterTest.html | 1 + .../com.codahale.metrics/MeterTest.java.html | 59 + .../com.codahale.metrics/MetricAttribute.html | 1 + .../MetricAttribute.java.html | 34 + .../com.codahale.metrics/MetricFilter.html | 1 + .../MetricFilter.java.html | 33 + .../MetricFilterTest.html | 1 + .../MetricFilterTest.java.html | 39 + .../MetricRegistry$1.html | 1 + .../MetricRegistry$2.html | 1 + .../MetricRegistry$3.html | 1 + .../MetricRegistry$4.html | 1 + .../MetricRegistry$5.html | 1 + .../MetricRegistry$6.html | 1 + .../MetricRegistry$MetricBuilder$1.html | 1 + .../MetricRegistry$MetricBuilder$2.html | 1 + .../MetricRegistry$MetricBuilder$3.html | 1 + .../MetricRegistry$MetricBuilder$4.html | 1 + .../MetricRegistry$MetricBuilder$5.html | 1 + .../MetricRegistry$MetricBuilder.html | 1 + .../com.codahale.metrics/MetricRegistry.html | 1 + .../MetricRegistry.java.html | 685 ++++++++ .../MetricRegistryListener$Base.html | 1 + .../MetricRegistryListener.java.html | 129 ++ .../MetricRegistryListenerTest$1.html | 1 + .../MetricRegistryListenerTest.html | 1 + .../MetricRegistryListenerTest.java.html | 61 + .../MetricRegistryTest.html | 1 + .../MetricRegistryTest.java.html | 644 +++++++ ...NoopMetricRegistry$EmptyConcurrentMap.html | 1 + .../NoopMetricRegistry$EmptySnapshot.html | 1 + .../NoopMetricRegistry$NoopCounter.html | 1 + .../NoopMetricRegistry$NoopGauge.html | 1 + .../NoopMetricRegistry$NoopHistogram$1.html | 1 + .../NoopMetricRegistry$NoopHistogram.html | 1 + .../NoopMetricRegistry$NoopMeter.html | 1 + ...oopMetricRegistry$NoopTimer$Context$1.html | 1 + .../NoopMetricRegistry$NoopTimer$Context.html | 1 + .../NoopMetricRegistry$NoopTimer.html | 1 + .../NoopMetricRegistry.html | 1 + .../NoopMetricRegistry.java.html | 794 +++++++++ .../NoopMetricRegistryTest.html | 1 + .../NoopMetricRegistryTest.java.html | 496 ++++++ .../RatioGauge$Ratio.html | 1 + .../com.codahale.metrics/RatioGauge.html | 1 + .../com.codahale.metrics/RatioGauge.java.html | 67 + .../RatioGaugeTest$1.html | 1 + .../RatioGaugeTest$2.html | 1 + .../RatioGaugeTest$3.html | 1 + .../RatioGaugeTest$4.html | 1 + .../com.codahale.metrics/RatioGaugeTest.html | 1 + .../RatioGaugeTest.java.html | 68 + .../ScheduledReporter$NamedThreadFactory.html | 1 + .../ScheduledReporter.html | 1 + .../ScheduledReporter.java.html | 335 ++++ .../ScheduledReporterTest$DummyReporter.html | 1 + .../ScheduledReporterTest.html | 1 + .../ScheduledReporterTest.java.html | 286 ++++ .../SharedMetricRegistries.html | 1 + .../SharedMetricRegistries.java.html | 108 ++ .../SharedMetricRegistriesTest.html | 1 + .../SharedMetricRegistriesTest.java.html | 96 ++ .../SimpleSettableGaugeTest.html | 1 + .../SimpleSettableGaugeTest.java.html | 29 + .../Slf4jReporter$Builder.html | 1 + .../Slf4jReporter$DebugLoggerProxy.html | 1 + .../Slf4jReporter$ErrorLoggerProxy.html | 1 + .../Slf4jReporter$InfoLoggerProxy.html | 1 + .../Slf4jReporter$LoggerProxy.html | 1 + .../Slf4jReporter$LoggingLevel.html | 1 + .../Slf4jReporter$TraceLoggerProxy.html | 1 + .../Slf4jReporter$WarnLoggerProxy.html | 1 + .../com.codahale.metrics/Slf4jReporter.html | 1 + .../Slf4jReporter.java.html | 517 ++++++ .../Slf4jReporterTest.html | 1 + .../Slf4jReporterTest.java.html | 363 ++++ .../SlidingTimeWindowArrayReservoir.html | 1 + .../SlidingTimeWindowArrayReservoir.java.html | 102 ++ .../SlidingTimeWindowArrayReservoirTest.html | 1 + ...dingTimeWindowArrayReservoirTest.java.html | 151 ++ .../SlidingTimeWindowMovingAverages.html | 1 + .../SlidingTimeWindowMovingAverages.java.html | 198 +++ .../SlidingTimeWindowMovingAveragesTest.html | 1 + ...dingTimeWindowMovingAveragesTest.java.html | 167 ++ .../SlidingTimeWindowReservoir.html | 1 + .../SlidingTimeWindowReservoir.java.html | 96 ++ .../SlidingTimeWindowReservoirTest.html | 1 + .../SlidingTimeWindowReservoirTest.java.html | 120 ++ .../SlidingWindowReservoir.html | 1 + .../SlidingWindowReservoir.java.html | 44 + .../SlidingWindowReservoirTest.html | 1 + .../SlidingWindowReservoirTest.java.html | 30 + .../com.codahale.metrics/Snapshot.html | 1 + .../com.codahale.metrics/Snapshot.java.html | 122 ++ .../com.codahale.metrics/Timer$Context.html | 1 + .../com.codahale.metrics/Timer.html | 1 + .../com.codahale.metrics/Timer.java.html | 204 +++ .../com.codahale.metrics/TimerTest$1.html | 1 + .../com.codahale.metrics/TimerTest.html | 1 + .../com.codahale.metrics/TimerTest.java.html | 162 ++ .../UniformReservoir.html | 1 + .../UniformReservoir.java.html | 71 + .../UniformReservoirTest.html | 1 + .../UniformReservoirTest.java.html | 32 + .../com.codahale.metrics/UniformSnapshot.html | 1 + .../UniformSnapshot.java.html | 178 ++ .../UniformSnapshotTest.html | 1 + .../UniformSnapshotTest.java.html | 199 +++ .../WeightedSnapshot$WeightedSample.html | 1 + .../WeightedSnapshot.html | 1 + .../WeightedSnapshot.java.html | 196 +++ .../WeightedSnapshotTest.html | 1 + .../WeightedSnapshotTest.java.html | 230 +++ .../com.codahale.metrics/index.html | 1 + .../com.codahale.metrics/index.source.html | 1 + metrics-log4j2-htmlReport/index.html | 1 + .../jacoco-resources/branchfc.gif | Bin 0 -> 91 bytes .../jacoco-resources/branchnc.gif | Bin 0 -> 91 bytes .../jacoco-resources/branchpc.gif | Bin 0 -> 91 bytes .../jacoco-resources/bundle.gif | Bin 0 -> 709 bytes .../jacoco-resources/class.gif | Bin 0 -> 586 bytes .../jacoco-resources/down.gif | Bin 0 -> 67 bytes .../jacoco-resources/greenbar.gif | Bin 0 -> 91 bytes .../jacoco-resources/group.gif | Bin 0 -> 351 bytes .../jacoco-resources/method.gif | Bin 0 -> 193 bytes .../jacoco-resources/package.gif | Bin 0 -> 227 bytes .../jacoco-resources/prettify.css | 13 + .../jacoco-resources/prettify.js | 1510 +++++++++++++++++ .../jacoco-resources/redbar.gif | Bin 0 -> 91 bytes .../jacoco-resources/report.css | 243 +++ .../jacoco-resources/report.gif | Bin 0 -> 363 bytes .../jacoco-resources/session.gif | Bin 0 -> 213 bytes .../jacoco-resources/sort.gif | Bin 0 -> 58 bytes .../jacoco-resources/sort.js | 148 ++ .../jacoco-resources/source.gif | Bin 0 -> 354 bytes .../jacoco-resources/up.gif | Bin 0 -> 67 bytes .../jacoco-sessions.html | 1 + pom.xml | 22 + 1454 files changed, 325922 insertions(+), 4 deletions(-) create mode 100644 metrics-complete-branch-report-initial-htmlReport/css/coverage.css create mode 100644 metrics-complete-branch-report-initial-htmlReport/css/idea.min.css create mode 100644 metrics-complete-branch-report-initial-htmlReport/img/arrowDown.gif create mode 100644 metrics-complete-branch-report-initial-htmlReport/img/arrowUp.gif create mode 100644 metrics-complete-branch-report-initial-htmlReport/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/js/highlight.min.js create mode 100644 metrics-complete-branch-report-initial-htmlReport/js/highlightjs-line-numbers.min.js create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-10.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-11.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-12.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-13.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-14.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-15.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-16.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-17.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-18.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-19.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1a.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1b.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1c.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1d.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1e.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1f.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-20.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-21.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-22.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-23.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-24.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-25.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-26.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-27.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-28.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-29.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2a.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2b.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2c.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2d.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2e.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2f.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-30.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-31.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-32.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-4.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-5.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-6.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-7.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-8.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-9.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-a.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-b.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-c.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-d.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-e.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-f.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-4.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-5.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-6.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-7.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-8.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-4.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-5.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-6.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-7.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-4.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-4.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-5.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-6.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-7.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-8.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-9.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-a.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-b.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-c.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-4.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-5.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-6.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-4.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-4.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-5.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-6.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-7.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-8.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-9.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-4.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-4.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-5.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-6.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-4.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-5.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-4.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-5.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-6.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-7.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-4.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-5.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-6.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-7.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-4.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-5.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-6.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-4.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-5.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-2.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-3.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-4.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-5.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-6.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-7.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-8.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/sources/source-1.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_LINE.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/css/coverage.css create mode 100644 metrics-complete-report-initial-htmlReport/css/idea.min.css create mode 100644 metrics-complete-report-initial-htmlReport/img/arrowDown.gif create mode 100644 metrics-complete-report-initial-htmlReport/img/arrowUp.gif create mode 100644 metrics-complete-report-initial-htmlReport/index.html create mode 100644 metrics-complete-report-initial-htmlReport/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/js/highlight.min.js create mode 100644 metrics-complete-report-initial-htmlReport/js/highlightjs-line-numbers.min.js create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-10.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-11.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-12.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-13.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-14.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-15.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-16.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-17.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-18.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-19.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-1a.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-1b.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-1c.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-1d.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-1e.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-1f.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-20.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-21.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-22.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-23.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-24.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-25.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-26.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-27.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-28.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-29.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-2a.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-2b.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-2c.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-2d.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-2e.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-2f.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-30.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-31.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-32.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-4.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-5.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-6.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-7.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-8.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-9.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-a.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-b.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-c.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-d.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-e.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-f.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-10/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-10/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-10/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-10/sources/source-4.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-10/sources/source-5.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-10/sources/source-6.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-10/sources/source-7.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-10/sources/source-8.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-11/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-11/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-12/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-12/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-12/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-12/sources/source-4.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-12/sources/source-5.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-12/sources/source-6.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-12/sources/source-7.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-13/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-13/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-14/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-14/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-15/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-15/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-15/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-15/sources/source-4.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-16/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-16/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-16/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-17/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-17/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-4.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-5.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-6.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-7.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-8.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-9.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-a.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-b.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-c.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-19/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/sources/source-4.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/sources/source-5.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/sources/source-6.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/sources/source-4.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/sources/source-4.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/sources/source-5.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/sources/source-6.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/sources/source-7.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/sources/source-8.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-2/sources/source-9.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-20/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-20/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-20/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-20/sources/source-4.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-21/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-21/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-21/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-22/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-23/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-24/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-25/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-26/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-26/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-26/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-27/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-27/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-27/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-28/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-28/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-28/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-28/sources/source-4.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-28/sources/source-5.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-28/sources/source-6.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-3/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-3/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-3/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-3/sources/source-4.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-3/sources/source-5.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-4/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-5/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-5/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-5/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-5/sources/source-4.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-5/sources/source-5.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-5/sources/source-6.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-5/sources/source-7.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-6/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-6/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-7/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-7/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-7/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-7/sources/source-4.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-7/sources/source-5.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-7/sources/source-6.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-7/sources/source-7.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-8/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-8/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-8/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-8/sources/source-4.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-8/sources/source-5.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-8/sources/source-6.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-9/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-a/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-b/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-b/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-c/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-c/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-c/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-c/sources/source-4.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-c/sources/source-5.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-d/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-d/sources/source-2.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-d/sources/source-3.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-d/sources/source-4.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-d/sources/source-5.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-d/sources/source-6.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-d/sources/source-7.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-d/sources/source-8.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-e/sources/source-1.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_LINE.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html create mode 100644 metrics-complete-report-initial-htmlReport/ns-f/sources/source-1.html create mode 100644 metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedNClientConnManagerTest.java create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppender.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppender.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderConfigTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderConfigTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/index.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/index.source.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CachedGauge.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CachedGauge.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$1.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$2.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$3.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$4.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray$Chunk.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArrayTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArrayTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ClassMetadataTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ClassMetadataTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Clock$UserTimeClock.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Clock$UserTimeClockHolder.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Clock.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Clock.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ClockTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ClockTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter$Builder.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporterTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporterTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Counter.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Counter.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CounterTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CounterTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter$Builder.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporterTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporterTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGauge.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGauge.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGaugeTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGaugeTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGauge.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGauge.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest$1.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/EWMA.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/EWMA.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/EWMATest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/EWMATest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ExponentialMovingAverages.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ExponentialMovingAverages.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoir.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoir.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory$1.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory$2.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProvider.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProvider.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProviderTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProviderTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Histogram.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Histogram.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/HistogramTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/HistogramTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService$InstrumentedCallable.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService$InstrumentedRunnable.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorServiceTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorServiceTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedCallable.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedPeriodicRunnable.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedRunnable.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorServiceTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorServiceTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory$InstrumentedRunnable.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactoryTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactoryTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$Builder.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$RescalingConsumer.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$State.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ManualClock.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ManualClock.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Meter.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Meter.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MeterApproximationTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MeterApproximationTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MeterTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MeterTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricAttribute.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricAttribute.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilter.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilter.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilterTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilterTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$1.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$2.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$3.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$4.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$5.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$6.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$1.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$2.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$3.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$4.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$5.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListener$Base.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListener.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest$1.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$EmptyConcurrentMap.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$EmptySnapshot.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopCounter.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopGauge.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopHistogram$1.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopHistogram.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopMeter.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer$Context$1.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer$Context.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistryTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistryTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge$Ratio.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$1.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$2.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$3.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$4.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter$NamedThreadFactory.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest$DummyReporter.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistries.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistries.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistriesTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistriesTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SimpleSettableGaugeTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SimpleSettableGaugeTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$Builder.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$DebugLoggerProxy.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$ErrorLoggerProxy.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$InfoLoggerProxy.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$LoggerProxy.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$LoggingLevel.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$TraceLoggerProxy.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$WarnLoggerProxy.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporterTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporterTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoir.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoir.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoirTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoirTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAverages.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAverages.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAveragesTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAveragesTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoir.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoir.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoirTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoirTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoir.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoir.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoirTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoirTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Snapshot.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Snapshot.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Timer$Context.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Timer.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Timer.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest$1.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoir.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoir.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoirTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoirTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshot.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshot.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshotTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshotTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot$WeightedSample.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshotTest.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshotTest.java.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/index.html create mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/index.source.html create mode 100644 metrics-log4j2-htmlReport/index.html create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/branchfc.gif create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/branchnc.gif create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/branchpc.gif create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/bundle.gif create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/class.gif create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/down.gif create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/greenbar.gif create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/group.gif create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/method.gif create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/package.gif create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/prettify.css create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/prettify.js create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/redbar.gif create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/report.css create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/report.gif create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/session.gif create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/sort.gif create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/sort.js create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/source.gif create mode 100644 metrics-log4j2-htmlReport/jacoco-resources/up.gif create mode 100644 metrics-log4j2-htmlReport/jacoco-sessions.html diff --git a/metrics-complete-branch-report-initial-htmlReport/css/coverage.css b/metrics-complete-branch-report-initial-htmlReport/css/coverage.css new file mode 100644 index 0000000000..cef776517f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/css/coverage.css @@ -0,0 +1,154 @@ +/* + * Copyright 2000-2021 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +* { + margin: 0; + padding: 0; +} + +body { + background-color: #fff; + font-family: helvetica neue, tahoma, arial, sans-serif; + font-size: 82%; + color: #151515; +} + +h1 { + margin: 0.5em 0; + color: #010101; + font-weight: normal; + font-size: 18px; +} + +h2 { + margin: 0.5em 0; + color: #010101; + font-weight: normal; + font-size: 16px; +} + +a { + color: #1564C2; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +span.separator { + color: #9BA9BA; + padding-left: 5px; + padding-right: 5px; +} + +div.content { + width: 99%; +} + +table.coverageStats { + width: 100%; + border-collapse: collapse; +} + +table.overallStats { + width: 20%; +} + +table.coverageStats td, table.coverageStats th { + padding: 4px 2px; + border-bottom: 1px solid #ccc; +} + +table.coverageStats th { + background-color: #959BA4; + border: none; + font-weight: bold; + text-align: left; + color: #FFF; +} + +table.coverageStats th.coverageStat { + width: 15%; +} + +table.coverageStats th a { + color: #FFF; +} + +table.coverageStats th a:hover { + text-decoration: none; +} + +table.coverageStats th.sortedDesc a { + background: url(../img/arrowDown.gif) no-repeat 100% 2px; + padding-right: 20px; +} + +table.coverageStats th.sortedAsc a { + background: url(../img/arrowUp.gif) no-repeat 100% 2px; + padding-right: 20px; +} + +div.footer { + margin: 2em .5em; + font-size: 85%; + text-align: left; + line-height: 140%; +} + +code.sourceCode { + width: 100%; + border: 1px solid #ccc; + font: normal 12px 'Menlo', 'Bitstream Vera Sans Mono', 'Courier New', 'Courier', monospace; + white-space: pre; +} + +code.sourceCode b { + font-weight: normal; +} + +code.sourceCode span.number { + color: #151515; +} + +code.sourceCode .fc { + background-color: #cfc; +} + +code.sourceCode .pc { + background-color: #ffc; +} + +code.sourceCode .nc { + background-color: #fcc; +} + +.percent, .absValue { + font-size: 90%; +} + +.percent .green, .absValue .green { + color: #32cc32; +} + +.percent .red, .absValue .red { + color: #f00; +} + +.percent .totalDiff { + color: #3f3f3f; +} diff --git a/metrics-complete-branch-report-initial-htmlReport/css/idea.min.css b/metrics-complete-branch-report-initial-htmlReport/css/idea.min.css new file mode 100644 index 0000000000..a8d5292bd5 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/css/idea.min.css @@ -0,0 +1,118 @@ +/* + * Copyright 2000-2021 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* +Intellij Idea-like styling (c) Vasily Polovnyov +*/ + +.hljs { + color: #000; + background: #fff; +} + +.hljs-subst, +.hljs-title { + font-weight: normal; + color: #000; +} + +.hljs-comment, +.hljs-quote { + color: #808080; + font-style: italic; +} + +.hljs-meta { + color: #808000; +} + +.hljs-tag { + background: #efefef; +} + +.hljs-section, +.hljs-name, +.hljs-literal, +.hljs-keyword, +.hljs-selector-tag, +.hljs-type, +.hljs-selector-id, +.hljs-selector-class { + font-weight: bold; + color: #000080; +} + +.hljs-attribute, +.hljs-number, +.hljs-regexp, +.hljs-link { + font-weight: bold; + color: #0000ff; +} + +.hljs-number, +.hljs-regexp, +.hljs-link { + font-weight: normal; +} + +.hljs-string { + color: #008000; + font-weight: bold; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-formula { + color: #000; + background: #d0eded; + font-style: italic; +} + +.hljs-doctag { + text-decoration: underline; +} + +.hljs-variable, +.hljs-template-variable { + color: #660e7a; +} + +.hljs-addition { + background: #baeeba; +} + +.hljs-deletion { + background: #ffc8bd; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-ln-numbers { + display: block; + float: left; + width: 3em; + border-right: 1px solid #ccc; + font-style: normal; + text-align: right; + background-color: #eee; +} diff --git a/metrics-complete-branch-report-initial-htmlReport/img/arrowDown.gif b/metrics-complete-branch-report-initial-htmlReport/img/arrowDown.gif new file mode 100644 index 0000000000000000000000000000000000000000..a4ac9b4b0f5eee9fc82deb7f03d0cc7f197b01c7 GIT binary patch literal 89 zcmZ?wbhEHbv%yJ&P?))?G g5?!@7agD+*@rGjs@joUks8}}Ha%HfNHz$KN0Orjd82|tP literal 0 HcmV?d00001 diff --git a/metrics-complete-branch-report-initial-htmlReport/img/arrowUp.gif b/metrics-complete-branch-report-initial-htmlReport/img/arrowUp.gif new file mode 100644 index 0000000000000000000000000000000000000000..d488db0089f15409b83a6f39718384cac89ea3c9 GIT binary patch literal 91 zcmZ?wbhEHbv%nBa6?))=2 j#jeJ<$W6!S$=vG=3s*2Wu3C5I!M+a(XH6zEFjxZs9OxeQ literal 0 HcmV?d00001 diff --git a/metrics-complete-branch-report-initial-htmlReport/index.html b/metrics-complete-branch-report-initial-htmlReport/index.html new file mode 100644 index 0000000000..62f810bfec --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/index.html @@ -0,0 +1,1314 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
all classes + + 89.5% + + + (341/381) + + + + 74.5% + + + (1595/2141) + + + + 4.7% + + + (21/447) + + + + 76.5% + + + (5409/7073) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 100% + + + (4/4) + +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + + 0% + + + (0/98) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + + 83.4% + + + (261/313) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + + 75.8% + + + (50/66) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + + 58% + + + (215/371) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (7/7) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + + 47.6% + + + (20/42) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + + 73% + + + (73/100) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + + 74.1% + + + (120/162) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + + 85.7% + + + (6/7) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + + 88.2% + + + (15/17) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + + 95.7% + + + (45/47) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + + 71.2% + + + (168/236) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + + 99.2% + + + (131/132) + +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + + 92.7% + + + (204/220) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 96.8% + + + (30/31) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.8% + + + (211/261) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + + 96.6% + + + (28/29) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.3% + + + (200/212) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + + 81.6% + + + (151/185) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.5% + + + (210/261) + +
+
+ + + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..ca262374a5 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_BLOCK.html @@ -0,0 +1,1314 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
all classes + + 89.5% + + + (341/381) + + + + 74.5% + + + (1595/2141) + + + + 4.7% + + + (21/447) + + + + 76.5% + + + (5409/7073) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 100% + + + (4/4) + +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + + 0% + + + (0/98) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + + 83.4% + + + (261/313) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + + 75.8% + + + (50/66) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + + 58% + + + (215/371) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (7/7) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + + 47.6% + + + (20/42) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + + 73% + + + (73/100) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + + 74.1% + + + (120/162) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + + 85.7% + + + (6/7) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + + 88.2% + + + (15/17) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + + 95.7% + + + (45/47) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + + 71.2% + + + (168/236) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + + 99.2% + + + (131/132) + +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + + 92.7% + + + (204/220) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 96.8% + + + (30/31) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.8% + + + (211/261) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + + 96.6% + + + (28/29) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.3% + + + (200/212) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + + 81.6% + + + (151/185) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.5% + + + (210/261) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+
+ + + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..2e98449d88 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,1314 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
all classes + + 89.5% + + + (341/381) + + + + 74.5% + + + (1595/2141) + + + + 4.7% + + + (21/447) + + + + 76.5% + + + (5409/7073) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.5% + + + (210/261) + +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + + 81.6% + + + (151/185) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.3% + + + (200/212) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + + 96.6% + + + (28/29) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.8% + + + (211/261) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 96.8% + + + (30/31) + +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + + 92.7% + + + (204/220) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + + 99.2% + + + (131/132) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + + 71.2% + + + (168/236) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + + 95.7% + + + (45/47) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + + 88.2% + + + (15/17) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + + 85.7% + + + (6/7) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + + 74.1% + + + (120/162) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + + 73% + + + (73/100) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + + 47.6% + + + (20/42) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (7/7) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + + 58% + + + (215/371) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + + 75.8% + + + (50/66) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + + 83.4% + + + (261/313) + +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + + 0% + + + (0/98) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 100% + + + (4/4) + +
+
+ + + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..723d029493 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_CLASS.html @@ -0,0 +1,1314 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
all classes + + 89.5% + + + (341/381) + + + + 74.5% + + + (1595/2141) + + + + 4.7% + + + (21/447) + + + + 76.5% + + + (5409/7073) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + + 0% + + + (0/98) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + + 47.6% + + + (20/42) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + + 58% + + + (215/371) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + + 73% + + + (73/100) + +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + + 92.7% + + + (204/220) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.8% + + + (211/261) + +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.5% + + + (210/261) + +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + + 83.4% + + + (261/313) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + + 74.1% + + + (120/162) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 100% + + + (4/4) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + + 75.8% + + + (50/66) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (7/7) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + + 85.7% + + + (6/7) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + + 88.2% + + + (15/17) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + + 95.7% + + + (45/47) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + + 71.2% + + + (168/236) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + + 99.2% + + + (131/132) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 96.8% + + + (30/31) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + + 96.6% + + + (28/29) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.3% + + + (200/212) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + + 81.6% + + + (151/185) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
+
+ + + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..572c53d679 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,1314 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
all classes + + 89.5% + + + (341/381) + + + + 74.5% + + + (1595/2141) + + + + 4.7% + + + (21/447) + + + + 76.5% + + + (5409/7073) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + + 81.6% + + + (151/185) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.3% + + + (200/212) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + + 96.6% + + + (28/29) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 96.8% + + + (30/31) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + + 99.2% + + + (131/132) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + + 71.2% + + + (168/236) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + + 95.7% + + + (45/47) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + + 88.2% + + + (15/17) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + + 85.7% + + + (6/7) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (7/7) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + + 75.8% + + + (50/66) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 100% + + + (4/4) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + + 74.1% + + + (120/162) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + + 83.4% + + + (261/313) + +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.5% + + + (210/261) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.8% + + + (211/261) + +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + + 92.7% + + + (204/220) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + + 73% + + + (73/100) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + + 58% + + + (215/371) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + + 47.6% + + + (20/42) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + + 0% + + + (0/98) + +
+
+ + + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..fd689a7cbe --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_LINE.html @@ -0,0 +1,1314 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
all classes + + 89.5% + + + (341/381) + + + + 74.5% + + + (1595/2141) + + + + 4.7% + + + (21/447) + + + + 76.5% + + + (5409/7073) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + + 0% + + + (0/98) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + + 47.6% + + + (20/42) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + + 58% + + + (215/371) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + + 71.2% + + + (168/236) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + + 73% + + + (73/100) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + + 74.1% + + + (120/162) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + + 75.8% + + + (50/66) + +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.5% + + + (210/261) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.8% + + + (211/261) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + + 81.6% + + + (151/185) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + + 83.4% + + + (261/313) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + + 85.7% + + + (6/7) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + + 88.2% + + + (15/17) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + + 92.7% + + + (204/220) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.3% + + + (200/212) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + + 95.7% + + + (45/47) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + + 96.6% + + + (28/29) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 96.8% + + + (30/31) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + + 99.2% + + + (131/132) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 100% + + + (4/4) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (7/7) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
+
+ + + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..b68c8000c1 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,1314 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
all classes + + 89.5% + + + (341/381) + + + + 74.5% + + + (1595/2141) + + + + 4.7% + + + (21/447) + + + + 76.5% + + + (5409/7073) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (7/7) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 100% + + + (4/4) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + + 99.2% + + + (131/132) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 96.8% + + + (30/31) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + + 96.6% + + + (28/29) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + + 95.7% + + + (45/47) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.3% + + + (200/212) + +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + + 92.7% + + + (204/220) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + + 88.2% + + + (15/17) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + + 85.7% + + + (6/7) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + + 83.4% + + + (261/313) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + + 81.6% + + + (151/185) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.8% + + + (211/261) + +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.5% + + + (210/261) + +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + + 75.8% + + + (50/66) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + + 74.1% + + + (120/162) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + + 73% + + + (73/100) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + + 71.2% + + + (168/236) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + + 58% + + + (215/371) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + + 47.6% + + + (20/42) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + + 0% + + + (0/98) + +
+
+ + + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..c1709b3f98 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_METHOD.html @@ -0,0 +1,1314 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
all classes + + 89.5% + + + (341/381) + + + + 74.5% + + + (1595/2141) + + + + 4.7% + + + (21/447) + + + + 76.5% + + + (5409/7073) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + + 0% + + + (0/98) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + + 47.6% + + + (20/42) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + + 73% + + + (73/100) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + + 58% + + + (215/371) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + + 74.1% + + + (120/162) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + + 81.6% + + + (151/185) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + + 85.7% + + + (6/7) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + + 88.2% + + + (15/17) + +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.8% + + + (211/261) + +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.5% + + + (210/261) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + + 83.4% + + + (261/313) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + + 75.8% + + + (50/66) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + + 71.2% + + + (168/236) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + + 96.6% + + + (28/29) + +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + + 92.7% + + + (204/220) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 96.8% + + + (30/31) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.3% + + + (200/212) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + + 99.2% + + + (131/132) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 100% + + + (4/4) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (7/7) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + + 95.7% + + + (45/47) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
+
+ + + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..70efb006bc --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,1314 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
all classes + + 89.5% + + + (341/381) + + + + 74.5% + + + (1595/2141) + + + + 4.7% + + + (21/447) + + + + 76.5% + + + (5409/7073) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + + 95.7% + + + (45/47) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (7/7) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 100% + + + (4/4) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + + 99.2% + + + (131/132) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.3% + + + (200/212) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 96.8% + + + (30/31) + +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + + 92.7% + + + (204/220) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + + 96.6% + + + (28/29) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + + 71.2% + + + (168/236) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + + 75.8% + + + (50/66) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + + 83.4% + + + (261/313) + +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.5% + + + (210/261) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.8% + + + (211/261) + +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + + 88.2% + + + (15/17) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + + 85.7% + + + (6/7) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + + 81.6% + + + (151/185) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + + 74.1% + + + (120/162) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + + 58% + + + (215/371) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + + 73% + + + (73/100) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + + 47.6% + + + (20/42) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + + 0% + + + (0/98) + +
+
+ + + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..b41c3f6717 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,1314 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
all classes + + 89.5% + + + (341/381) + + + + 74.5% + + + (1595/2141) + + + + 4.7% + + + (21/447) + + + + 76.5% + + + (5409/7073) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.5% + + + (210/261) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + + 81.6% + + + (151/185) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.3% + + + (200/212) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + + 96.6% + + + (28/29) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + + 80.8% + + + (211/261) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (24/24) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 96.8% + + + (30/31) + +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + + 92.7% + + + (204/220) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + + 99.2% + + + (131/132) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + + 71.2% + + + (168/236) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + + 95.7% + + + (45/47) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + + 88.2% + + + (15/17) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + + 85.7% + + + (6/7) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + + 74.1% + + + (120/162) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + + 73% + + + (73/100) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + + 47.6% + + + (20/42) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (7/7) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + + 58% + + + (215/371) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + + 75.8% + + + (50/66) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + + 83.4% + + + (261/313) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + + 0% + + + (0/98) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 100% + + + (4/4) + +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
+
+ + + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/js/highlight.min.js b/metrics-complete-branch-report-initial-htmlReport/js/highlight.min.js new file mode 100644 index 0000000000..e88731520e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/js/highlight.min.js @@ -0,0 +1,1388 @@ +/* + Highlight.js 10.7.2 (00233d63) + License: BSD-3-Clause + Copyright (c) 2006-2021, Ivan Sagalaev + + BSD 3-Clause License + + Copyright (c) 2006-2021, Ivan Sagalaev. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +var hljs=function(){"use strict";function e(t){ +return t instanceof Map?t.clear=t.delete=t.set=()=>{ +throw Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=()=>{ +throw Error("set is read-only") +}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach((n=>{var i=t[n] +;"object"!=typeof i||Object.isFrozen(i)||e(i)})),t}var t=e,n=e;t.default=n +;class i{constructor(e){ +void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1} +ignoreMatch(){this.isMatchIgnored=!0}}function s(e){ +return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'") +}function a(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t] +;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const r=e=>!!e.kind +;class l{constructor(e,t){ +this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){ +this.buffer+=s(e)}openNode(e){if(!r(e))return;let t=e.kind +;e.sublanguage||(t=`${this.classPrefix}${t}`),this.span(t)}closeNode(e){ +r(e)&&(this.buffer+="")}value(){return this.buffer}span(e){ +this.buffer+=``}}class o{constructor(){this.rootNode={ +children:[]},this.stack=[this.rootNode]}get top(){ +return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){ +this.top.children.push(e)}openNode(e){const t={kind:e,children:[]} +;this.add(t),this.stack.push(t)}closeNode(){ +if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){ +for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} +walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){ +return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t), +t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){ +"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{ +o._collapse(e)})))}}class c extends o{constructor(e){super(),this.options=e} +addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())} +addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root +;n.kind=t,n.sublanguage=!0,this.add(n)}toHTML(){ +return new l(this,this.options).value()}finalize(){return!0}}function g(e){ +return e?"string"==typeof e?e:e.source:null} +const u=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,h="[a-zA-Z]\\w*",d="[a-zA-Z_]\\w*",f="\\b\\d+(\\.\\d+)?",p="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",m="\\b(0b[01]+)",b={ +begin:"\\\\[\\s\\S]",relevance:0},E={className:"string",begin:"'",end:"'", +illegal:"\\n",contains:[b]},x={className:"string",begin:'"',end:'"', +illegal:"\\n",contains:[b]},v={ +begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ +},w=(e,t,n={})=>{const i=a({className:"comment",begin:e,end:t,contains:[]},n) +;return i.contains.push(v),i.contains.push({className:"doctag", +begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),i +},y=w("//","$"),N=w("/\\*","\\*/"),R=w("#","$");var _=Object.freeze({ +__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:h,UNDERSCORE_IDENT_RE:d, +NUMBER_RE:f,C_NUMBER_RE:p,BINARY_NUMBER_RE:m, +RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", +SHEBANG:(e={})=>{const t=/^#![ ]*\// +;return e.binary&&(e.begin=((...e)=>e.map((e=>g(e))).join(""))(t,/.*\b/,e.binary,/\b.*/)), +a({className:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{ +0!==e.index&&t.ignoreMatch()}},e)},BACKSLASH_ESCAPE:b,APOS_STRING_MODE:E, +QUOTE_STRING_MODE:x,PHRASAL_WORDS_MODE:v,COMMENT:w,C_LINE_COMMENT_MODE:y, +C_BLOCK_COMMENT_MODE:N,HASH_COMMENT_MODE:R,NUMBER_MODE:{className:"number", +begin:f,relevance:0},C_NUMBER_MODE:{className:"number",begin:p,relevance:0}, +BINARY_NUMBER_MODE:{className:"number",begin:m,relevance:0},CSS_NUMBER_MODE:{ +className:"number", +begin:f+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", +relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp", +begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[b,{begin:/\[/,end:/\]/, +relevance:0,contains:[b]}]}]},TITLE_MODE:{className:"title",begin:h,relevance:0 +},UNDERSCORE_TITLE_MODE:{className:"title",begin:d,relevance:0},METHOD_GUARD:{ +begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{ +"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{ +t.data._beginMatch!==e[1]&&t.ignoreMatch()}})});function k(e,t){ +"."===e.input[e.index-1]&&t.ignoreMatch()}function M(e,t){ +t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)", +e.__beforeBegin=k,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords, +void 0===e.relevance&&(e.relevance=0))}function O(e,t){ +Array.isArray(e.illegal)&&(e.illegal=((...e)=>"("+e.map((e=>g(e))).join("|")+")")(...e.illegal)) +}function A(e,t){if(e.match){ +if(e.begin||e.end)throw Error("begin & end are not supported with match") +;e.begin=e.match,delete e.match}}function L(e,t){ +void 0===e.relevance&&(e.relevance=1)} +const I=["of","and","for","in","not","or","if","then","parent","list","value"] +;function j(e,t,n="keyword"){const i={} +;return"string"==typeof e?s(n,e.split(" ")):Array.isArray(e)?s(n,e):Object.keys(e).forEach((n=>{ +Object.assign(i,j(e[n],t,n))})),i;function s(e,n){ +t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|") +;i[n[0]]=[e,B(n[0],n[1])]}))}}function B(e,t){ +return t?Number(t):(e=>I.includes(e.toLowerCase()))(e)?0:1} +function T(e,{plugins:t}){function n(t,n){ +return RegExp(g(t),"m"+(e.case_insensitive?"i":"")+(n?"g":""))}class i{ +constructor(){ +this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} +addRule(e,t){ +t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]), +this.matchAt+=(e=>RegExp(e.toString()+"|").exec("").length-1)(e)+1}compile(){ +0===this.regexes.length&&(this.exec=()=>null) +;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(((e,t="|")=>{let n=0 +;return e.map((e=>{n+=1;const t=n;let i=g(e),s="";for(;i.length>0;){ +const e=u.exec(i);if(!e){s+=i;break} +s+=i.substring(0,e.index),i=i.substring(e.index+e[0].length), +"\\"===e[0][0]&&e[1]?s+="\\"+(Number(e[1])+t):(s+=e[0],"("===e[0]&&n++)}return s +})).map((e=>`(${e})`)).join(t)})(e),!0),this.lastIndex=0}exec(e){ +this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e) +;if(!t)return null +;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n] +;return t.splice(0,n),Object.assign(t,i)}}class s{constructor(){ +this.rules=[],this.multiRegexes=[], +this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){ +if(this.multiRegexes[e])return this.multiRegexes[e];const t=new i +;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))), +t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){ +return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){ +this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){ +const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex +;let n=t.exec(e) +;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{ +const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)} +return n&&(this.regexIndex+=n.position+1, +this.regexIndex===this.count&&this.considerAll()),n}} +if(e.compilerExtensions||(e.compilerExtensions=[]), +e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.") +;return e.classNameAliases=a(e.classNameAliases||{}),function t(i,r){const l=i +;if(i.isCompiled)return l +;[A].forEach((e=>e(i,r))),e.compilerExtensions.forEach((e=>e(i,r))), +i.__beforeBegin=null,[M,O,L].forEach((e=>e(i,r))),i.isCompiled=!0;let o=null +;if("object"==typeof i.keywords&&(o=i.keywords.$pattern, +delete i.keywords.$pattern), +i.keywords&&(i.keywords=j(i.keywords,e.case_insensitive)), +i.lexemes&&o)throw Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ") +;return o=o||i.lexemes||/\w+/, +l.keywordPatternRe=n(o,!0),r&&(i.begin||(i.begin=/\B|\b/), +l.beginRe=n(i.begin),i.endSameAsBegin&&(i.end=i.begin), +i.end||i.endsWithParent||(i.end=/\B|\b/), +i.end&&(l.endRe=n(i.end)),l.terminatorEnd=g(i.end)||"", +i.endsWithParent&&r.terminatorEnd&&(l.terminatorEnd+=(i.end?"|":"")+r.terminatorEnd)), +i.illegal&&(l.illegalRe=n(i.illegal)), +i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>a(e,{ +variants:null},t)))),e.cachedVariants?e.cachedVariants:S(e)?a(e,{ +starts:e.starts?a(e.starts):null +}):Object.isFrozen(e)?a(e):e))("self"===e?i:e)))),i.contains.forEach((e=>{t(e,l) +})),i.starts&&t(i.starts,r),l.matcher=(e=>{const t=new s +;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin" +}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end" +}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(l),l}(e)}function S(e){ +return!!e&&(e.endsWithParent||S(e.starts))}function P(e){const t={ +props:["language","code","autodetect"],data:()=>({detectedLanguage:"", +unknownLanguage:!1}),computed:{className(){ +return this.unknownLanguage?"":"hljs "+this.detectedLanguage},highlighted(){ +if(!this.autoDetect&&!e.getLanguage(this.language))return console.warn(`The language "${this.language}" you specified could not be found.`), +this.unknownLanguage=!0,s(this.code);let t={} +;return this.autoDetect?(t=e.highlightAuto(this.code), +this.detectedLanguage=t.language):(t=e.highlight(this.language,this.code,this.ignoreIllegals), +this.detectedLanguage=this.language),t.value},autoDetect(){ +return!(this.language&&(e=this.autodetect,!e&&""!==e));var e}, +ignoreIllegals:()=>!0},render(e){return e("pre",{},[e("code",{ +class:this.className,domProps:{innerHTML:this.highlighted}})])}};return{ +Component:t,VuePlugin:{install(e){e.component("highlightjs",t)}}}}const D={ +"after:highlightElement":({el:e,result:t,text:n})=>{const i=H(e) +;if(!i.length)return;const a=document.createElement("div") +;a.innerHTML=t.value,t.value=((e,t,n)=>{let i=0,a="";const r=[];function l(){ +return e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset"}function c(e){ +a+=""}function g(e){("start"===e.event?o:c)(e.node)} +for(;e.length||t.length;){let t=l() +;if(a+=s(n.substring(i,t[0].offset)),i=t[0].offset,t===e){r.reverse().forEach(c) +;do{g(t.splice(0,1)[0]),t=l()}while(t===e&&t.length&&t[0].offset===i) +;r.reverse().forEach(o) +}else"start"===t[0].event?r.push(t[0].node):r.pop(),g(t.splice(0,1)[0])} +return a+s(n.substr(i))})(i,H(a),n)}};function C(e){ +return e.nodeName.toLowerCase()}function H(e){const t=[];return function e(n,i){ +for(let s=n.firstChild;s;s=s.nextSibling)3===s.nodeType?i+=s.nodeValue.length:1===s.nodeType&&(t.push({ +event:"start",offset:i,node:s}),i=e(s,i),C(s).match(/br|hr|img|input/)||t.push({ +event:"stop",offset:i,node:s}));return i}(e,0),t}const $={},U=e=>{ +console.error(e)},z=(e,...t)=>{console.log("WARN: "+e,...t)},K=(e,t)=>{ +$[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),$[`${e}/${t}`]=!0) +},G=s,V=a,W=Symbol("nomatch");return(e=>{ +const n=Object.create(null),s=Object.create(null),a=[];let r=!0 +;const l=/(^(<[^>]+>|\t|)+|\n)/gm,o="Could not find the language '{}', did you forget to load/include a language module?",g={ +disableAutodetect:!0,name:"Plain text",contains:[]};let u={ +noHighlightRe:/^(no-?highlight)$/i, +languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-", +tabReplace:null,useBR:!1,languages:null,__emitter:c};function h(e){ +return u.noHighlightRe.test(e)}function d(e,t,n,i){let s="",a="" +;"object"==typeof t?(s=e, +n=t.ignoreIllegals,a=t.language,i=void 0):(K("10.7.0","highlight(lang, code, ...args) has been deprecated."), +K("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"), +a=e,s=t);const r={code:s,language:a};M("before:highlight",r) +;const l=r.result?r.result:f(r.language,r.code,n,i) +;return l.code=r.code,M("after:highlight",l),l}function f(e,t,s,l){ +function c(e,t){const n=v.case_insensitive?t[0].toLowerCase():t[0] +;return Object.prototype.hasOwnProperty.call(e.keywords,n)&&e.keywords[n]} +function g(){null!=R.subLanguage?(()=>{if(""===M)return;let e=null +;if("string"==typeof R.subLanguage){ +if(!n[R.subLanguage])return void k.addText(M) +;e=f(R.subLanguage,M,!0,_[R.subLanguage]),_[R.subLanguage]=e.top +}else e=p(M,R.subLanguage.length?R.subLanguage:null) +;R.relevance>0&&(O+=e.relevance),k.addSublanguage(e.emitter,e.language) +})():(()=>{if(!R.keywords)return void k.addText(M);let e=0 +;R.keywordPatternRe.lastIndex=0;let t=R.keywordPatternRe.exec(M),n="";for(;t;){ +n+=M.substring(e,t.index);const i=c(R,t);if(i){const[e,s]=i +;if(k.addText(n),n="",O+=s,e.startsWith("_"))n+=t[0];else{ +const n=v.classNameAliases[e]||e;k.addKeyword(t[0],n)}}else n+=t[0] +;e=R.keywordPatternRe.lastIndex,t=R.keywordPatternRe.exec(M)} +n+=M.substr(e),k.addText(n)})(),M=""}function h(e){ +return e.className&&k.openNode(v.classNameAliases[e.className]||e.className), +R=Object.create(e,{parent:{value:R}}),R}function d(e,t,n){let s=((e,t)=>{ +const n=e&&e.exec(t);return n&&0===n.index})(e.endRe,n);if(s){if(e["on:end"]){ +const n=new i(e);e["on:end"](t,n),n.isMatchIgnored&&(s=!1)}if(s){ +for(;e.endsParent&&e.parent;)e=e.parent;return e}} +if(e.endsWithParent)return d(e.parent,t,n)}function m(e){ +return 0===R.matcher.regexIndex?(M+=e[0],1):(I=!0,0)}function b(e){ +const n=e[0],i=t.substr(e.index),s=d(R,e,i);if(!s)return W;const a=R +;a.skip?M+=n:(a.returnEnd||a.excludeEnd||(M+=n),g(),a.excludeEnd&&(M=n));do{ +R.className&&k.closeNode(),R.skip||R.subLanguage||(O+=R.relevance),R=R.parent +}while(R!==s.parent) +;return s.starts&&(s.endSameAsBegin&&(s.starts.endRe=s.endRe), +h(s.starts)),a.returnEnd?0:n.length}let E={};function x(n,a){const l=a&&a[0] +;if(M+=n,null==l)return g(),0 +;if("begin"===E.type&&"end"===a.type&&E.index===a.index&&""===l){ +if(M+=t.slice(a.index,a.index+1),!r){const t=Error("0 width match regex") +;throw t.languageName=e,t.badRule=E.rule,t}return 1} +if(E=a,"begin"===a.type)return function(e){ +const t=e[0],n=e.rule,s=new i(n),a=[n.__beforeBegin,n["on:begin"]] +;for(const n of a)if(n&&(n(e,s),s.isMatchIgnored))return m(t) +;return n&&n.endSameAsBegin&&(n.endRe=RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")), +n.skip?M+=t:(n.excludeBegin&&(M+=t), +g(),n.returnBegin||n.excludeBegin||(M=t)),h(n),n.returnBegin?0:t.length}(a) +;if("illegal"===a.type&&!s){ +const e=Error('Illegal lexeme "'+l+'" for mode "'+(R.className||"")+'"') +;throw e.mode=R,e}if("end"===a.type){const e=b(a);if(e!==W)return e} +if("illegal"===a.type&&""===l)return 1 +;if(L>1e5&&L>3*a.index)throw Error("potential infinite loop, way more iterations than matches") +;return M+=l,l.length}const v=N(e) +;if(!v)throw U(o.replace("{}",e)),Error('Unknown language: "'+e+'"') +;const w=T(v,{plugins:a});let y="",R=l||w;const _={},k=new u.__emitter(u);(()=>{ +const e=[];for(let t=R;t!==v;t=t.parent)t.className&&e.unshift(t.className) +;e.forEach((e=>k.openNode(e)))})();let M="",O=0,A=0,L=0,I=!1;try{ +for(R.matcher.considerAll();;){ +L++,I?I=!1:R.matcher.considerAll(),R.matcher.lastIndex=A +;const e=R.matcher.exec(t);if(!e)break;const n=x(t.substring(A,e.index),e) +;A=e.index+n}return x(t.substr(A)),k.closeAllNodes(),k.finalize(),y=k.toHTML(),{ +relevance:Math.floor(O),value:y,language:e,illegal:!1,emitter:k,top:R}}catch(n){ +if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{ +msg:n.message,context:t.slice(A-100,A+100),mode:n.mode},sofar:y,relevance:0, +value:G(t),emitter:k};if(r)return{illegal:!1,relevance:0,value:G(t),emitter:k, +language:e,top:R,errorRaised:n};throw n}}function p(e,t){ +t=t||u.languages||Object.keys(n);const i=(e=>{const t={relevance:0, +emitter:new u.__emitter(u),value:G(e),illegal:!1,top:g} +;return t.emitter.addText(e),t})(e),s=t.filter(N).filter(k).map((t=>f(t,e,!1))) +;s.unshift(i);const a=s.sort(((e,t)=>{ +if(e.relevance!==t.relevance)return t.relevance-e.relevance +;if(e.language&&t.language){if(N(e.language).supersetOf===t.language)return 1 +;if(N(t.language).supersetOf===e.language)return-1}return 0})),[r,l]=a,o=r +;return o.second_best=l,o}const m={"before:highlightElement":({el:e})=>{ +u.useBR&&(e.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n")) +},"after:highlightElement":({result:e})=>{ +u.useBR&&(e.value=e.value.replace(/\n/g,"
"))}},b=/^(<[^>]+>|\t)+/gm,E={ +"after:highlightElement":({result:e})=>{ +u.tabReplace&&(e.value=e.value.replace(b,(e=>e.replace(/\t/g,u.tabReplace))))}} +;function x(e){let t=null;const n=(e=>{let t=e.className+" " +;t+=e.parentNode?e.parentNode.className:"";const n=u.languageDetectRe.exec(t) +;if(n){const t=N(n[1]) +;return t||(z(o.replace("{}",n[1])),z("Falling back to no-highlight mode for this block.",e)), +t?n[1]:"no-highlight"}return t.split(/\s+/).find((e=>h(e)||N(e)))})(e) +;if(h(n))return;M("before:highlightElement",{el:e,language:n}),t=e +;const i=t.textContent,a=n?d(i,{language:n,ignoreIllegals:!0}):p(i) +;M("after:highlightElement",{el:e,result:a,text:i +}),e.innerHTML=a.value,((e,t,n)=>{const i=t?s[t]:n +;e.classList.add("hljs"),i&&e.classList.add(i)})(e,n,a.language),e.result={ +language:a.language,re:a.relevance,relavance:a.relevance +},a.second_best&&(e.second_best={language:a.second_best.language, +re:a.second_best.relevance,relavance:a.second_best.relevance})}const v=()=>{ +v.called||(v.called=!0, +K("10.6.0","initHighlighting() is deprecated. Use highlightAll() instead."), +document.querySelectorAll("pre code").forEach(x))};let w=!1;function y(){ +"loading"!==document.readyState?document.querySelectorAll("pre code").forEach(x):w=!0 +}function N(e){return e=(e||"").toLowerCase(),n[e]||n[s[e]]} +function R(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{ +s[e.toLowerCase()]=t}))}function k(e){const t=N(e) +;return t&&!t.disableAutodetect}function M(e,t){const n=e;a.forEach((e=>{ +e[n]&&e[n](t)}))} +"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{ +w&&y()}),!1),Object.assign(e,{highlight:d,highlightAuto:p,highlightAll:y, +fixMarkup:e=>{ +return K("10.2.0","fixMarkup will be removed entirely in v11.0"),K("10.2.0","Please see https://github.com/highlightjs/highlight.js/issues/2534"), +t=e, +u.tabReplace||u.useBR?t.replace(l,(e=>"\n"===e?u.useBR?"
":e:u.tabReplace?e.replace(/\t/g,u.tabReplace):e)):t +;var t},highlightElement:x, +highlightBlock:e=>(K("10.7.0","highlightBlock will be removed entirely in v12.0"), +K("10.7.0","Please use highlightElement now."),x(e)),configure:e=>{ +e.useBR&&(K("10.3.0","'useBR' will be removed entirely in v11.0"), +K("10.3.0","Please see https://github.com/highlightjs/highlight.js/issues/2559")), +u=V(u,e)},initHighlighting:v,initHighlightingOnLoad:()=>{ +K("10.6.0","initHighlightingOnLoad() is deprecated. Use highlightAll() instead."), +w=!0},registerLanguage:(t,i)=>{let s=null;try{s=i(e)}catch(e){ +if(U("Language definition for '{}' could not be registered.".replace("{}",t)), +!r)throw e;U(e),s=g} +s.name||(s.name=t),n[t]=s,s.rawDefinition=i.bind(null,e),s.aliases&&R(s.aliases,{ +languageName:t})},unregisterLanguage:e=>{delete n[e] +;for(const t of Object.keys(s))s[t]===e&&delete s[t]}, +listLanguages:()=>Object.keys(n),getLanguage:N,registerAliases:R, +requireLanguage:e=>{ +K("10.4.0","requireLanguage will be removed entirely in v11."), +K("10.4.0","Please see https://github.com/highlightjs/highlight.js/pull/2844") +;const t=N(e);if(t)return t +;throw Error("The '{}' language is required, but not loaded.".replace("{}",e))}, +autoDetection:k,inherit:V,addPlugin:e=>{(e=>{ +e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{ +e["before:highlightBlock"](Object.assign({block:t.el},t)) +}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{ +e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),a.push(e)}, +vuePlugin:P(e).VuePlugin}),e.debugMode=()=>{r=!1},e.safeMode=()=>{r=!0 +},e.versionString="10.7.2";for(const e in _)"object"==typeof _[e]&&t(_[e]) +;return Object.assign(e,_),e.addPlugin(m),e.addPlugin(D),e.addPlugin(E),e})({}) +}();"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs); +hljs.registerLanguage("apache",(()=>{"use strict";return e=>{const n={ +className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/} +;return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0, +contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/, +contains:[n,{className:"number",begin:/:\d{1,5}/ +},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute", +begin:/\w+/,relevance:0,keywords:{ +nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername" +},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"}, +contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable", +begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}] +},n,{className:"number",begin:/\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}} +})()); +hljs.registerLanguage("bash",(()=>{"use strict";function e(...e){ +return e.map((e=>{return(s=e)?"string"==typeof s?s:s.source:null;var s +})).join("")}return s=>{const n={},t={begin:/\$\{/,end:/\}/,contains:["self",{ +begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{ +begin:e(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},t]});const a={ +className:"subst",begin:/\$\(/,end:/\)/,contains:[s.BACKSLASH_ESCAPE]},i={ +begin:/<<-?\s*(?=\w+)/,starts:{contains:[s.END_SAME_AS_BEGIN({begin:/(\w+)/, +end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/, +contains:[s.BACKSLASH_ESCAPE,n,a]};a.contains.push(c);const o={begin:/\$\(\(/, +end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},s.NUMBER_MODE,n] +},r=s.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 +}),l={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, +contains:[s.inherit(s.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{ +name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z._-]+\b/, +keyword:"if then else elif fi for while in do done case esac function", +literal:"true false", +built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp" +},contains:[r,s.SHEBANG(),l,o,s.HASH_COMMENT_MODE,i,c,{className:"",begin:/\\"/ +},{className:"string",begin:/'/,end:/'/},n]}}})()); +hljs.registerLanguage("c",(()=>{"use strict";function e(e){ +return((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(",e,")?") +}return t=>{const n=t.COMMENT("//","$",{contains:[{begin:/\\\n/}] +}),r="[a-zA-Z_]\\w*::",a="(decltype\\(auto\\)|"+e(r)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",i={ +className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string", +variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n", +contains:[t.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},t.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},t.inherit(s,{className:"meta-string"}),{ +className:"meta-string",begin:/<.*?>/},n,t.C_BLOCK_COMMENT_MODE]},l={ +className:"title",begin:e(r)+t.IDENT_RE,relevance:0 +},d=e(r)+t.IDENT_RE+"\\s*\\(",u={ +keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq", +built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary", +literal:"true false nullptr NULL"},m=[c,i,n,t.C_BLOCK_COMMENT_MODE,o,s],p={ +variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{ +beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:m.concat([{ +begin:/\(/,end:/\)/,keywords:u,contains:m.concat(["self"]),relevance:0}]), +relevance:0},_={className:"function",begin:"("+a+"[\\*&\\s]+)+"+d, +returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/, +contains:[{begin:"decltype\\(auto\\)",keywords:u,relevance:0},{begin:d, +returnBegin:!0,contains:[l],relevance:0},{className:"params",begin:/\(/, +end:/\)/,keywords:u,relevance:0,contains:[n,t.C_BLOCK_COMMENT_MODE,s,o,i,{ +begin:/\(/,end:/\)/,keywords:u,relevance:0, +contains:["self",n,t.C_BLOCK_COMMENT_MODE,s,o,i]}] +},i,n,t.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u, +disableAutodetect:!0,illegal:"",keywords:u,contains:["self",i]},{begin:t.IDENT_RE+"::",keywords:u},{ +className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/, +contains:[{beginKeywords:"final class struct"},t.TITLE_MODE]}]),exports:{ +preprocessor:c,strings:s,keywords:u}}}})()); +hljs.registerLanguage("coffeescript",(()=>{"use strict" +;const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]) +;return r=>{const t={ +keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((i=["var","const","let","function","static"], +e=>!i.includes(e))),literal:n.concat(["yes","no","on","off"]), +built_in:a.concat(["npm","print"])};var i;const s="[A-Za-z$_][0-9A-Za-z$_]*",o={ +className:"subst",begin:/#\{/,end:/\}/,keywords:t +},c=[r.BINARY_NUMBER_MODE,r.inherit(r.C_NUMBER_MODE,{starts:{end:"(\\s*/)?", +relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/, +contains:[r.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[r.BACKSLASH_ESCAPE] +},{begin:/"""/,end:/"""/,contains:[r.BACKSLASH_ESCAPE,o]},{begin:/"/,end:/"/, +contains:[r.BACKSLASH_ESCAPE,o]}]},{className:"regexp",variants:[{begin:"///", +end:"///",contains:[o,r.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)", +relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+s +},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{ +begin:"```",end:"```"},{begin:"`",end:"`"}]}];o.contains=c +;const l=r.inherit(r.TITLE_MODE,{begin:s}),d="(\\(.*\\)\\s*)?\\B[-=]>",g={ +className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/, +end:/\)/,keywords:t,contains:["self"].concat(c)}]};return{name:"CoffeeScript", +aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/, +contains:c.concat([r.COMMENT("###","###"),r.HASH_COMMENT_MODE,{ +className:"function",begin:"^\\s*"+s+"\\s*=\\s*"+d,end:"[-=]>",returnBegin:!0, +contains:[l,g]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function", +begin:d,end:"[-=]>",returnBegin:!0,contains:[g]}]},{className:"class", +beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{ +beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[l]},l] +},{begin:s+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}})()); +hljs.registerLanguage("cpp",(()=>{"use strict";function e(e){ +return t("(",e,")?")}function t(...e){return e.map((e=>{ +return(t=e)?"string"==typeof t?t:t.source:null;var t})).join("")}return n=>{ +const r=n.COMMENT("//","$",{contains:[{begin:/\\\n/}] +}),a="[a-zA-Z_]\\w*::",i="(decltype\\(auto\\)|"+e(a)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",s={ +className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string", +variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n", +contains:[n.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},n.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},n.inherit(c,{className:"meta-string"}),{ +className:"meta-string",begin:/<.*?>/},r,n.C_BLOCK_COMMENT_MODE]},d={ +className:"title",begin:e(a)+n.IDENT_RE,relevance:0 +},u=e(a)+n.IDENT_RE+"\\s*\\(",m={ +keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq", +built_in:"_Bool _Complex _Imaginary", +_relevance_hints:["asin","atan2","atan","calloc","ceil","cosh","cos","exit","exp","fabs","floor","fmod","fprintf","fputs","free","frexp","auto_ptr","deque","list","queue","stack","vector","map","set","pair","bitset","multiset","multimap","unordered_set","fscanf","future","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","tolower","toupper","labs","ldexp","log10","log","malloc","realloc","memchr","memcmp","memcpy","memset","modf","pow","printf","putchar","puts","scanf","sinh","sin","snprintf","sprintf","sqrt","sscanf","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","tanh","tan","unordered_map","unordered_multiset","unordered_multimap","priority_queue","make_pair","array","shared_ptr","abort","terminate","abs","acos","vfprintf","vprintf","vsprintf","endl","initializer_list","unique_ptr","complex","imaginary","std","string","wstring","cin","cout","cerr","clog","stdin","stdout","stderr","stringstream","istringstream","ostringstream"], +literal:"true false nullptr NULL"},p={className:"function.dispatch",relevance:0, +keywords:m, +begin:t(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!while)/,n.IDENT_RE,(_=/\s*\(/, +t("(?=",_,")")))};var _;const g=[p,l,s,r,n.C_BLOCK_COMMENT_MODE,o,c],b={ +variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{ +beginKeywords:"new throw return else",end:/;/}],keywords:m,contains:g.concat([{ +begin:/\(/,end:/\)/,keywords:m,contains:g.concat(["self"]),relevance:0}]), +relevance:0},f={className:"function",begin:"("+i+"[\\*&\\s]+)+"+u, +returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:m,illegal:/[^\w\s\*&:<>.]/, +contains:[{begin:"decltype\\(auto\\)",keywords:m,relevance:0},{begin:u, +returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{begin:/:/, +endsWithParent:!0,contains:[c,o]},{className:"params",begin:/\(/,end:/\)/, +keywords:m,relevance:0,contains:[r,n.C_BLOCK_COMMENT_MODE,c,o,s,{begin:/\(/, +end:/\)/,keywords:m,relevance:0,contains:["self",r,n.C_BLOCK_COMMENT_MODE,c,o,s] +}]},s,r,n.C_BLOCK_COMMENT_MODE,l]};return{name:"C++", +aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:m,illegal:"",keywords:m,contains:["self",s]},{begin:n.IDENT_RE+"::",keywords:m},{ +className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/, +contains:[{beginKeywords:"final class struct"},n.TITLE_MODE]}]),exports:{ +preprocessor:l,strings:c,keywords:m}}}})()); +hljs.registerLanguage("csharp",(()=>{"use strict";return e=>{const n={ +keyword:["abstract","as","base","break","case","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]), +built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"], +literal:["default","false","null","true"]},a=e.inherit(e.TITLE_MODE,{ +begin:"[a-zA-Z](\\.?\\w)*"}),i={className:"number",variants:[{ +begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}] +},t=e.inherit(s,{illegal:/\n/}),r={className:"subst",begin:/\{/,end:/\}/, +keywords:n},l=e.inherit(r,{illegal:/\n/}),c={className:"string",begin:/\$"/, +end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/ +},e.BACKSLASH_ESCAPE,l]},o={className:"string",begin:/\$@"/,end:'"',contains:[{ +begin:/\{\{/},{begin:/\}\}/},{begin:'""'},r]},d=e.inherit(o,{illegal:/\n/, +contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},l]}) +;r.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE], +l.contains=[d,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.inherit(e.C_BLOCK_COMMENT_MODE,{ +illegal:/\n/})];const g={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},a] +},_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={ +begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"], +keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0, +contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{ +begin:"\x3c!--|--\x3e"},{begin:""}]}] +}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#", +end:"$",keywords:{ +"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum" +}},g,i,{beginKeywords:"class interface",relevance:0,end:/[{;=]/, +illegal:/[^\s:,]/,contains:[{beginKeywords:"where class" +},a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace", +relevance:0,end:/[{;=]/,illegal:/[^\s:]/, +contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ +beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/, +contains:[a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta", +begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{ +className:"meta-string",begin:/"/,end:/"/}]},{ +beginKeywords:"new return throw await else",relevance:0},{className:"function", +begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0, +end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{ +beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial", +relevance:0},{begin:e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0, +contains:[e.TITLE_MODE,E],relevance:0},{className:"params",begin:/\(/,end:/\)/, +excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0, +contains:[g,i,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}})()); +hljs.registerLanguage("css",(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse() +;return n=>{const a=(e=>({IMPORTANT:{className:"meta",begin:"!important"}, +HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"}, +ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/, +illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]} +}))(n),l=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS", +case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"}, +classNameAliases:{keyframePosition:"selector-tag"}, +contains:[n.C_BLOCK_COMMENT_MODE,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/ +},n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0 +},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0 +},a.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{ +begin:":("+i.join("|")+")"},{begin:"::("+o.join("|")+")"}]},{ +className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{begin:":",end:"[;}]", +contains:[a.HEXCOLOR,a.IMPORTANT,n.CSS_NUMBER_MODE,...l,{ +begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri" +},contains:[{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}] +},{className:"built_in",begin:/[\w-]+(?=\()/}]},{ +begin:(s=/@/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",s,")")), +end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword", +begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0, +relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only", +attribute:t.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute" +},...l,n.CSS_NUMBER_MODE]}]},{className:"selector-tag", +begin:"\\b("+e.join("|")+")\\b"}]};var s}})()); +hljs.registerLanguage("diff",(()=>{"use strict";return e=>({name:"Diff", +aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{ +begin:/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{ +begin:/^--- +\d+,\d+ +----$/}]},{className:"comment",variants:[{begin:/Index: /, +end:/$/},{begin:/^index/,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^-{3}/,end:/$/ +},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/^\*{15}$/},{ +begin:/^diff --git/,end:/$/}]},{className:"addition",begin:/^\+/,end:/$/},{ +className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/, +end:/$/}]})})()); +hljs.registerLanguage("go",(()=>{"use strict";return e=>{const n={ +keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune", +literal:"true false iota nil", +built_in:"append cap close complex copy imag len make new panic print println real recover delete" +};return{name:"Go",aliases:["golang"],keywords:n,illegal:"{"use strict";function e(...e){ +return e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null;var n +})).join("")}return n=>{const a="HTTP/(2|1\\.[01])",s={className:"attribute", +begin:e("^",/[A-Za-z][A-Za-z0-9-]*/,"(?=\\:\\s)"),starts:{contains:[{ +className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]} +},t=[s,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{ +name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+a+" \\d{3})", +end:/$/,contains:[{className:"meta",begin:a},{className:"number", +begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:t}},{ +begin:"(?=^[A-Z]+ (.*?) "+a+"$)",end:/$/,contains:[{className:"string", +begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:a},{ +className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:t} +},n.inherit(s,{relevance:0})]}}})()); +hljs.registerLanguage("ini",(()=>{"use strict";function e(e){ +return e?"string"==typeof e?e:e.source:null}function n(...n){ +return n.map((n=>e(n))).join("")}return s=>{const a={className:"number", +relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:s.NUMBER_RE}] +},i=s.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const t={ +className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/ +}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={ +className:"string",contains:[s.BACKSLASH_ESCAPE],variants:[{begin:"'''", +end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"' +},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[i,r,t,l,a,"self"], +relevance:0 +},g="("+[/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/].map((n=>e(n))).join("|")+")" +;return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/, +contains:[i,{className:"section",begin:/\[+/,end:/\]+/},{ +begin:n(g,"(\\s*\\.\\s*",g,")*",n("(?=",/\s*=\s*[^#\s]/,")")),className:"attr", +starts:{end:/$/,contains:[i,c,r,t,l,a]}}]}}})()); +hljs.registerLanguage("java",(()=>{"use strict" +;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={ +className:"number",variants:[{ +begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ +begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{ +begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{ +begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], +relevance:0};return e=>{ +var n="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",s={ +className:"meta",begin:"@[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*", +contains:[{begin:/\(/,end:/\)/,contains:["self"]}]};const r=a;return{ +name:"Java",aliases:["jsp"],keywords:n,illegal:/<\/|#/, +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/, +relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{ +begin:/import java\.[a-z]+\./,keywords:"import",relevance:2 +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ +className:"class",beginKeywords:"class interface enum",end:/[{;=]/, +excludeEnd:!0,relevance:1,keywords:"class interface enum",illegal:/[:"\[\]]/, +contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{ +beginKeywords:"new throw return else",relevance:0},{className:"class", +begin:"record\\s+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,excludeEnd:!0, +end:/[{;=]/,keywords:n,contains:[{beginKeywords:"record"},{ +begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/, +keywords:n,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"function", +begin:"([\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*(<[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*(\\s*,\\s*[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(", +returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:n,contains:[{ +begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/, +keywords:n,relevance:0, +contains:[s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},r,s]}}})()); +hljs.registerLanguage("javascript",(()=>{"use strict" +;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]) +;function r(e){return t("(?=",e,")")}function t(...e){return e.map((e=>{ +return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return i=>{ +const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/, +isTrulyOpeningTag:(e,n)=>{const a=e[0].length+e.index,s=e.input[a] +;"<"!==s?">"===s&&(((e,{after:n})=>{const a="", +returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{ +begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0 +},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}] +},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{ +variants:[{begin:"<>",end:""},{begin:o.begin,"on:begin":o.isTrulyOpeningTag, +end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0, +contains:["self"]}]}],relevance:0},{className:"function", +beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l, +contains:["self",i.inherit(i.TITLE_MODE,{begin:c}),p],illegal:/%/},{ +beginKeywords:"while if switch catch for"},{className:"function", +begin:i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", +returnBegin:!0,contains:[p,i.inherit(i.TITLE_MODE,{begin:c})]},{variants:[{ +begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class", +beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{ +beginKeywords:"extends"},i.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/, +end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:c}),"self",p] +},{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set", +contains:[i.inherit(i.TITLE_MODE,{begin:c}),{begin:/\(\)/},p]},{begin:/\$[(.]/}] +}}})()); +hljs.registerLanguage("json",(()=>{"use strict";return n=>{const e={ +literal:"true false null" +},i=[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],a=[n.QUOTE_STRING_MODE,n.C_NUMBER_MODE],l={ +end:",",endsWithParent:!0,excludeEnd:!0,contains:a,keywords:e},t={begin:/\{/, +end:/\}/,contains:[{className:"attr",begin:/"/,end:/"/, +contains:[n.BACKSLASH_ESCAPE],illegal:"\\n"},n.inherit(l,{begin:/:/ +})].concat(i),illegal:"\\S"},s={begin:"\\[",end:"\\]",contains:[n.inherit(l)], +illegal:"\\S"};return a.push(t,s),i.forEach((n=>{a.push(n)})),{name:"JSON", +contains:a,keywords:e,illegal:"\\S"}}})()); +hljs.registerLanguage("kotlin",(()=>{"use strict" +;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={ +className:"number",variants:[{ +begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ +begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{ +begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{ +begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], +relevance:0};return e=>{const n={ +keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual", +built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing", +literal:"true false null"},i={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@" +},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},t={ +className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string", +variants:[{begin:'"""',end:'"""(?=[^"])',contains:[t,s]},{begin:"'",end:"'", +illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/, +contains:[e.BACKSLASH_ESCAPE,t,s]}]};s.contains.push(r);const l={ +className:"meta", +begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?" +},c={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/, +end:/\)/,contains:[e.inherit(r,{className:"meta-string"})]}] +},o=a,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),E={ +variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/, +contains:[]}]},d=E;return d.variants[1].contains=[E],E.variants[1].contains=[d], +{name:"Kotlin",aliases:["kt","kts"],keywords:n, +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag", +begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,{className:"keyword", +begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol", +begin:/@\w+/}]}},i,l,c,{className:"function",beginKeywords:"fun",end:"[(]|$", +returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{ +begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://, +keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/, +endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/, +endsWithParent:!0,contains:[E,e.C_LINE_COMMENT_MODE,b],relevance:0 +},e.C_LINE_COMMENT_MODE,b,l,c,r,e.C_NUMBER_MODE]},b]},{className:"class", +beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0, +illegal:"extends implements",contains:[{ +beginKeywords:"public protected internal private constructor" +},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0, +excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/, +excludeBegin:!0,returnEnd:!0},l,c]},r,{className:"meta",begin:"^#!/usr/bin/env", +end:"$",illegal:"\n"},o]}}})()); +hljs.registerLanguage("less",(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],n=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse(),r=i.concat(o) +;return a=>{const s=(e=>({IMPORTANT:{className:"meta",begin:"!important"}, +HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"}, +ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/, +illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]} +}))(a),l=r,d="([\\w-]+|@\\{[\\w-]+\\})",c=[],g=[],b=e=>({className:"string", +begin:"~?"+e+".*?"+e}),m=(e,t,i)=>({className:e,begin:t,relevance:i}),u={ +$pattern:/[a-z-]+/,keyword:"and or not only",attribute:t.join(" ")},p={ +begin:"\\(",end:"\\)",contains:g,keywords:u,relevance:0} +;g.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,b("'"),b('"'),a.CSS_NUMBER_MODE,{ +begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]", +excludeEnd:!0} +},s.HEXCOLOR,p,m("variable","@@?[\\w-]+",10),m("variable","@\\{[\\w-]+\\}"),m("built_in","~?`[^`]*?`"),{ +className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0 +},s.IMPORTANT);const f=g.concat({begin:/\{/,end:/\}/,contains:c}),h={ +beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not" +}].concat(g)},w={begin:d+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0, +contains:[{begin:/-(webkit|moz|ms|o)-/},{className:"attribute", +begin:"\\b("+n.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0, +illegal:"[<=$]",relevance:0,contains:g}}]},v={className:"keyword", +begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b", +starts:{end:"[;{}]",keywords:u,returnEnd:!0,contains:g,relevance:0}},y={ +className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{ +begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:f}},k={variants:[{ +begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:d,end:/\{/}],returnBegin:!0, +returnEnd:!0,illegal:"[<='$\"]",relevance:0, +contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,h,m("keyword","all\\b"),m("variable","@\\{[\\w-]+\\}"),{ +begin:"\\b("+e.join("|")+")\\b",className:"selector-tag" +},m("selector-tag",d+"%?",0),m("selector-id","#"+d),m("selector-class","\\."+d,0),m("selector-tag","&",0),s.ATTRIBUTE_SELECTOR_MODE,{ +className:"selector-pseudo",begin:":("+i.join("|")+")"},{ +className:"selector-pseudo",begin:"::("+o.join("|")+")"},{begin:"\\(",end:"\\)", +contains:f},{begin:"!important"}]},E={begin:`[\\w-]+:(:)?(${l.join("|")})`, +returnBegin:!0,contains:[k]} +;return c.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,v,y,E,w,k),{ +name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:c}}})()); +hljs.registerLanguage("lua",(()=>{"use strict";return e=>{ +const t="\\[=*\\[",a="\\]=*\\]",n={begin:t,end:a,contains:["self"] +},o=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[",a,{contains:[n], +relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE, +literal:"true false nil", +keyword:"and break do else elseif end for goto if in local not or repeat return then until while", +built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove" +},contains:o.concat([{className:"function",beginKeywords:"function",end:"\\)", +contains:[e.inherit(e.TITLE_MODE,{ +begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params", +begin:"\\(",endsWithParent:!0,contains:o}].concat(o) +},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string", +begin:t,end:a,contains:[n],relevance:5}])}}})()); +hljs.registerLanguage("makefile",(()=>{"use strict";return e=>{const i={ +className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)", +contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%{"use strict";function e(e){ +return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")} +function a(...n){return n.map((n=>e(n))).join("")}function s(...n){ +return"("+n.map((n=>e(n))).join("|")+")"}return e=>{ +const t=a(/[A-Z_]/,a("(",/[A-Z0-9_.-]*:/,")?"),/[A-Z0-9_.-]*/),i={ +className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},r={begin:/\s/, +contains:[{className:"meta-keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}] +},c=e.inherit(r,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{ +className:"meta-string"}),g=e.inherit(e.QUOTE_STRING_MODE,{ +className:"meta-string"}),m={endsWithParent:!0,illegal:/`]+/}]}] +}]};return{name:"HTML, XML", +aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"], +case_insensitive:!0,contains:[{className:"meta",begin://, +relevance:10,contains:[r,g,l,c,{begin:/\[/,end:/\]/,contains:[{className:"meta", +begin://,contains:[r,c,g,l]}]}]},e.COMMENT(//,{ +relevance:10}),{begin://,relevance:10},i,{ +className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"style"},contains:[m],starts:{ +end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"script"},contains:[m],starts:{ +end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{ +className:"tag",begin:/<>|<\/>/},{className:"tag", +begin:a(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name", +begin:t,relevance:0,starts:m}]},{className:"tag",begin:a(/<\//,n(a(t,/>/))), +contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0, +endsParent:!0}]}]}}})()); +hljs.registerLanguage("markdown",(()=>{"use strict";function n(...n){ +return n.map((n=>{return(e=n)?"string"==typeof e?e:e.source:null;var e +})).join("")}return e=>{const a={begin:/<\/?[A-Za-z_]/,end:">", +subLanguage:"xml",relevance:0},i={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0 +},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, +relevance:2},{begin:n(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/), +relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{ +begin:/\[.+?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{ +className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0, +returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)", +excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[", +end:"\\]",excludeBegin:!0,excludeEnd:!0}]},s={className:"strong",contains:[], +variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},c={ +className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{ +begin:/_(?!_)/,end:/_/,relevance:0}]};s.contains.push(c),c.contains.push(s) +;let t=[a,i] +;return s.contains=s.contains.concat(t),c.contains=c.contains.concat(t), +t=t.concat(s,c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ +className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:t},{ +begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n", +contains:t}]}]},a,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", +end:"\\s+",excludeEnd:!0},s,c,{className:"quote",begin:"^>\\s+",contains:t, +end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{ +begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{ +begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))", +contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{ +begin:"^[-\\*]{3,}",end:"$"},i,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{ +className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{ +className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}})()); +hljs.registerLanguage("nginx",(()=>{"use strict";return e=>{const n={ +className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/\}/},{ +begin:/[$@]/+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,keywords:{ +$pattern:"[a-z/_]+", +literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll" +},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string", +contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/ +}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n] +},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^", +end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{ +begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number", +begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{ +className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},n]};return{ +name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{ +begin:e.UNDERSCORE_IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\{/,contains:[{ +className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{ +begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|\\{",returnBegin:!0,contains:[{ +className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}], +illegal:"[^\\s\\}]"}}})()); +hljs.registerLanguage("objectivec",(()=>{"use strict";return e=>{ +const n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n, +keyword:"@interface @class @protocol @implementation"};return{ +name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"], +keywords:{$pattern:n, +keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN", +literal:"false true FALSE TRUE nil YES NO NULL", +built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once" +},illegal:"/,end:/$/, +illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ +className:"class",begin:"("+_.keyword.split(" ").join("|")+")\\b",end:/(\{|$)/, +excludeEnd:!0,keywords:_,contains:[e.UNDERSCORE_TITLE_MODE]},{ +begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}})()); +hljs.registerLanguage("perl",(()=>{"use strict";function e(e){ +return e?"string"==typeof e?e:e.source:null}function n(...n){ +return n.map((n=>e(n))).join("")}function t(...n){ +return"("+n.map((n=>e(n))).join("|")+")"}return e=>{ +const r=/[dualxmsipngr]{0,12}/,s={$pattern:/[\w.]+/, +keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0" +},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:s},a={begin:/->\{/, +end:/\}/},o={variants:[{begin:/\$\d/},{ +begin:n(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])") +},{begin:/[$%@][^\s\w{]/,relevance:0}] +},c=[e.BACKSLASH_ESCAPE,i,o],g=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],l=(e,t,s="\\1")=>{ +const i="\\1"===s?s:n(s,t) +;return n(n("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,i,/(?:\\.|[^\\\/])*?/,s,r) +},d=(e,t,s)=>n(n("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,s,r),p=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{ +endsWithParent:!0}),a,{className:"string",contains:c,variants:[{ +begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[", +end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{ +begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">", +relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'", +contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`", +contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{ +begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number", +begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", +relevance:0},{ +begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*", +keywords:"split return print reverse grep",relevance:0, +contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{ +begin:l("s|tr|y",t(...g))},{begin:l("s|tr|y","\\(","\\)")},{ +begin:l("s|tr|y","\\[","\\]")},{begin:l("s|tr|y","\\{","\\}")}],relevance:2},{ +className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{ +begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",t(...g),/\1/)},{ +begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{ +begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub", +end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{ +begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$", +subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}] +}];return i.contains=p,a.contains=p,{name:"Perl",aliases:["pl","pm"],keywords:s, +contains:p}}})()); +hljs.registerLanguage("php",(()=>{"use strict";return e=>{const r={ +className:"variable", +begin:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?![A-Za-z0-9])(?![$])"},t={ +className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{ +begin:/\?>/}]},a={className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/, +end:/\}/}]},n=e.inherit(e.APOS_STRING_MODE,{illegal:null +}),i=e.inherit(e.QUOTE_STRING_MODE,{illegal:null, +contains:e.QUOTE_STRING_MODE.contains.concat(a)}),o=e.END_SAME_AS_BEGIN({ +begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/, +contains:e.QUOTE_STRING_MODE.contains.concat(a)}),l={className:"string", +contains:[e.BACKSLASH_ESCAPE,t],variants:[e.inherit(n,{begin:"b'",end:"'" +}),e.inherit(i,{begin:'b"',end:'"'}),i,n,o]},s={className:"number",variants:[{ +begin:"\\b0b[01]+(?:_[01]+)*\\b"},{begin:"\\b0o[0-7]+(?:_[0-7]+)*\\b"},{ +begin:"\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b"},{ +begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:e[+-]?\\d+)?" +}],relevance:0},c={ +keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile enum eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list match|0 mixed new object or private protected public real return string switch throw trait try unset use var void while xor yield", +literal:"false null true", +built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException UnhandledMatchError ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Stringable Throwable Traversable WeakReference WeakMap Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass" +};return{aliases:["php3","php4","php5","php6","php7","php8"], +case_insensitive:!0,keywords:c, +contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[t] +}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}] +}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0, +keywords:"__halt_compiler"}),t,{className:"keyword",begin:/\$this\b/},r,{ +begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function", +relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0, +illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{ +begin:"=>",endsParent:!0},{className:"params",begin:"\\(",end:"\\)", +excludeBegin:!0,excludeEnd:!0,keywords:c, +contains:["self",r,e.C_BLOCK_COMMENT_MODE,l,s]}]},{className:"class",variants:[{ +beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait", +illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{ +beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{ +beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/, +contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",relevance:0,end:";", +contains:[e.UNDERSCORE_TITLE_MODE]},l,s]}}})()); +hljs.registerLanguage("php-template",(()=>{"use strict";return n=>({ +name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/, +subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"', +end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{ +illegal:null,className:null,contains:null,skip:!0 +}),n.inherit(n.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null, +skip:!0})]}]})})()); +hljs.registerLanguage("plaintext",(()=>{"use strict";return t=>({ +name:"Plain text",aliases:["text","txt"],disableAutodetect:!0})})()); +hljs.registerLanguage("properties",(()=>{"use strict";return e=>{ +var n="[ \\t\\f]*",a=n+"[:=]"+n,t="("+a+"|[ \\t\\f]+)",r="([^\\\\\\W:= \\t\\f\\n]|\\\\.)+",s="([^\\\\:= \\t\\f\\n]|\\\\.)+",i={ +end:t,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{ +begin:"\\\\\\\\"},{begin:"\\\\\\n"}]}};return{name:".properties", +case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{ +returnBegin:!0,variants:[{begin:r+a,relevance:1},{begin:r+"[ \\t\\f]+", +relevance:0}],contains:[{className:"attr",begin:r,endsParent:!0,relevance:0}], +starts:i},{begin:s+t,returnBegin:!0,relevance:0,contains:[{className:"meta", +begin:s,endsParent:!0,relevance:0}],starts:i},{className:"attr",relevance:0, +begin:s+n+"$"}]}}})()); +hljs.registerLanguage("python",(()=>{"use strict";return e=>{const n={ +$pattern:/[A-Za-z]\w+|__\w+__/, +keyword:["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"], +built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"], +literal:["__debug__","Ellipsis","False","None","NotImplemented","True"], +type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"] +},a={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/, +end:/\}/,keywords:n,illegal:/#/},s={begin:/\{\{/,relevance:0},t={ +className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{ +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/, +contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{ +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/, +contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{ +begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/, +contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/, +end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([uU]|[rR])'/,end:/'/, +relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{ +begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/, +end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/, +contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/, +contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},r="[0-9](_?[0-9])*",l=`(\\b(${r}))?\\.(${r})|\\b(${r})\\.`,b={ +className:"number",relevance:0,variants:[{ +begin:`(\\b(${r})|(${l}))[eE][+-]?(${r})[jJ]?\\b`},{begin:`(${l})[jJ]?`},{ +begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{ +begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{ +begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${r})[jJ]\\b`}]},o={ +className:"comment", +begin:(d=/# type:/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",d,")")), +end:/$/,keywords:n,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/, +endsWithParent:!0}]},c={className:"params",variants:[{className:"", +begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0, +keywords:n,contains:["self",a,b,t,e.HASH_COMMENT_MODE]}]};var d +;return i.contains=[t,b,a],{name:"Python",aliases:["py","gyp","ipython"], +keywords:n,illegal:/(<\/|->|\?)|=>/,contains:[a,b,{begin:/\bself\b/},{ +beginKeywords:"if",relevance:0},t,o,e.HASH_COMMENT_MODE,{variants:[{ +className:"function",beginKeywords:"def"},{className:"class", +beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/, +contains:[e.UNDERSCORE_TITLE_MODE,c,{begin:/->/,endsWithParent:!0,keywords:n}] +},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[b,c,t]}]}}})()); +hljs.registerLanguage("python-repl",(()=>{"use strict";return s=>({ +aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$", +subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{ +begin:/^\.\.\.(?=[ ]|$)/}]}]})})()); +hljs.registerLanguage("r",(()=>{"use strict";function e(...e){return e.map((e=>{ +return(a=e)?"string"==typeof a?a:a.source:null;var a})).join("")}return a=>{ +const n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/;return{name:"R", +illegal:/->/,keywords:{$pattern:n, +keyword:"function if in break next repeat else for while", +literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10", +built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm" +},compilerExtensions:[(a,n)=>{if(!a.beforeMatch)return +;if(a.starts)throw Error("beforeMatch cannot be used with starts") +;const i=Object.assign({},a);Object.keys(a).forEach((e=>{delete a[e] +})),a.begin=e(i.beforeMatch,e("(?=",i.begin,")")),a.starts={relevance:0, +contains:[Object.assign(i,{endsParent:!0})]},a.relevance=0,delete i.beforeMatch +}],contains:[a.COMMENT(/#'/,/$/,{contains:[{className:"doctag", +begin:"@examples",starts:{contains:[{begin:/\n/},{begin:/#'\s*(?=@[a-zA-Z]+)/, +endsParent:!0},{begin:/#'/,end:/$/,excludeBegin:!0}]}},{className:"doctag", +begin:"@param",end:/$/,contains:[{className:"variable",variants:[{begin:n},{ +begin:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{className:"doctag", +begin:/@[a-zA-Z]+/},{className:"meta-keyword",begin:/\\[a-zA-Z]+/}] +}),a.HASH_COMMENT_MODE,{className:"string",contains:[a.BACKSLASH_ESCAPE], +variants:[a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/ +}),a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/ +}),a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/ +}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/ +}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/ +}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"', +relevance:0},{begin:"'",end:"'",relevance:0}]},{className:"number",relevance:0, +beforeMatch:/([^a-zA-Z0-9._])/,variants:[{ +match:/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/},{ +match:/0[xX][0-9a-fA-F]+([pP][+-]?\d+)?[Li]?/},{ +match:/(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?[Li]?/}]},{begin:"%",end:"%"},{ +begin:e(/[a-zA-Z][a-zA-Z_0-9]*/,"\\s+<-\\s+")},{begin:"`",end:"`",contains:[{ +begin:/\\./}]}]}}})()); +hljs.registerLanguage("ruby",(()=>{"use strict";function e(...e){ +return e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null;var n +})).join("")}return n=>{ +const a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",i={ +keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor __FILE__", +built_in:"proc lambda",literal:"true false nil"},s={className:"doctag", +begin:"@[A-Za-z]+"},r={begin:"#<",end:">"},b=[n.COMMENT("#","$",{contains:[s] +}),n.COMMENT("^=begin","^=end",{contains:[s],relevance:10 +}),n.COMMENT("^__END__","\\n$")],c={className:"subst",begin:/#\{/,end:/\}/, +keywords:i},t={className:"string",contains:[n.BACKSLASH_ESCAPE,c],variants:[{ +begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/, +end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{ +begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/, +end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{ +begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{ +begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{ +begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{ +begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{ +begin:/<<[-~]?'?(\w+)\n(?:[^\n]*\n)*?\s*\1\b/,returnBegin:!0,contains:[{ +begin:/<<[-~]?'?/},n.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/, +contains:[n.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",d={className:"number", +relevance:0,variants:[{ +begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{ +begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b" +},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{ +begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{ +begin:"\\b0(_?[0-7])+r?i?\\b"}]},l={className:"params",begin:"\\(",end:"\\)", +endsParent:!0,keywords:i},o=[t,{className:"class",beginKeywords:"class module", +end:"$|;",illegal:/=/,contains:[n.inherit(n.TITLE_MODE,{ +begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|!)?"}),{begin:"<\\s*",contains:[{ +begin:"("+n.IDENT_RE+"::)?"+n.IDENT_RE,relevance:0}]}].concat(b)},{ +className:"function",begin:e(/def\s+/,(_=a+"\\s*(\\(|;|$)",e("(?=",_,")"))), +relevance:0,keywords:"def",end:"$|;",contains:[n.inherit(n.TITLE_MODE,{begin:a +}),l].concat(b)},{begin:n.IDENT_RE+"::"},{className:"symbol", +begin:n.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol", +begin:":(?!\\s)",contains:[t,{begin:a}],relevance:0},d,{className:"variable", +begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{ +className:"params",begin:/\|/,end:/\|/,relevance:0,keywords:i},{ +begin:"("+n.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{ +className:"regexp",contains:[n.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{ +begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(", +end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}] +}].concat(r,b),relevance:0}].concat(r,b);var _;c.contains=o,l.contains=o +;const E=[{begin:/^\s*=>/,starts:{end:"$",contains:o}},{className:"meta", +begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])", +starts:{end:"$",contains:o}}];return b.unshift(r),{name:"Ruby", +aliases:["rb","gemspec","podspec","thor","irb"],keywords:i,illegal:/\/\*/, +contains:[n.SHEBANG({binary:"ruby"})].concat(E).concat(b).concat(o)}}})()); +hljs.registerLanguage("rust",(()=>{"use strict";return e=>{ +const n="([ui](8|16|32|64|128|size)|f(32|64))?",t="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!" +;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?", +keyword:"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield", +literal:"true false Some None Ok Err",built_in:t},illegal:""}]}}})()); +hljs.registerLanguage("scss",(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse() +;return a=>{const n=(e=>({IMPORTANT:{className:"meta",begin:"!important"}, +HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"}, +ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/, +illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]} +}))(a),l=o,s=i,d="@[a-z-]+",c={className:"variable", +begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"};return{name:"SCSS",case_insensitive:!0, +illegal:"[=/|']",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{ +className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{ +className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0 +},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag", +begin:"\\b("+e.join("|")+")\\b",relevance:0},{className:"selector-pseudo", +begin:":("+s.join("|")+")"},{className:"selector-pseudo", +begin:"::("+l.join("|")+")"},c,{begin:/\(/,end:/\)/,contains:[a.CSS_NUMBER_MODE] +},{className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{ +begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b" +},{begin:":",end:";", +contains:[c,n.HEXCOLOR,a.CSS_NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.IMPORTANT] +},{begin:"@(page|font-face)",lexemes:d,keywords:"@page @font-face"},{begin:"@", +end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/, +keyword:"and or not only",attribute:t.join(" ")},contains:[{begin:d, +className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute" +},c,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.HEXCOLOR,a.CSS_NUMBER_MODE]}]}} +})()); +hljs.registerLanguage("shell",(()=>{"use strict";return s=>({ +name:"Shell Session",aliases:["console"],contains:[{className:"meta", +begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#]/,starts:{end:/[^\\](?=\s*$)/, +subLanguage:"bash"}}]})})()); +hljs.registerLanguage("sql",(()=>{"use strict";function e(e){ +return e?"string"==typeof e?e:e.source:null}function r(...r){ +return r.map((r=>e(r))).join("")}function t(...r){ +return"("+r.map((r=>e(r))).join("|")+")"}return e=>{ +const n=e.COMMENT("--","$"),a=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],s=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],o=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],c=s,l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update ","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!s.includes(e))),u={ +begin:r(/\b/,t(...c),/\s*\(/),keywords:{built_in:c}};return{name:"SQL", +case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/, +keyword:((e,{exceptions:r,when:t}={})=>{const n=t +;return r=r||[],e.map((e=>e.match(/\|\d+$/)||r.includes(e)?e:n(e)?e+"|0":e)) +})(l,{when:e=>e.length<3}),literal:a,type:i, +built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"] +},contains:[{begin:t(...o),keywords:{$pattern:/[\w\.]+/,keyword:l.concat(o), +literal:a,type:i}},{className:"type", +begin:t("double precision","large object","with timezone","without timezone") +},u,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{ +begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{ +begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"operator", +begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}})()); +hljs.registerLanguage("swift",(()=>{"use strict";function e(e){ +return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")} +function a(...n){return n.map((n=>e(n))).join("")}function t(...n){ +return"("+n.map((n=>e(n))).join("|")+")"} +const i=e=>a(/\b/,e,/\w$/.test(e)?/\b/:/\B/),s=["Protocol","Type"].map(i),u=["init","self"].map(i),c=["Any","Self"],r=["associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],o=["false","nil","true"],l=["assignment","associativity","higherThan","left","lowerThan","none","right"],m=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],d=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],p=t(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),F=t(p,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),b=a(p,F,"*"),h=t(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),f=t(h,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),w=a(h,f,"*"),y=a(/[A-Z]/,f,"*"),g=["autoclosure",a(/convention\(/,t("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",a(/objc\(/,w,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","testable","UIApplicationMain","unknown","usableFromInline"],E=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"] +;return e=>{const p={match:/\s+/,relevance:0},h=e.COMMENT("/\\*","\\*/",{ +contains:["self"]}),v=[e.C_LINE_COMMENT_MODE,h],N={className:"keyword", +begin:a(/\./,n(t(...s,...u))),end:t(...s,...u),excludeBegin:!0},A={ +match:a(/\./,t(...r)),relevance:0 +},C=r.filter((e=>"string"==typeof e)).concat(["_|0"]),_={variants:[{ +className:"keyword", +match:t(...r.filter((e=>"string"!=typeof e)).concat(c).map(i),...u)}]},D={ +$pattern:t(/\b\w+/,/#\w+/),keyword:C.concat(m),literal:o},B=[N,A,_],k=[{ +match:a(/\./,t(...d)),relevance:0},{className:"built_in", +match:a(/\b/,t(...d),/(?=\()/)}],M={match:/->/,relevance:0},S=[M,{ +className:"operator",relevance:0,variants:[{match:b},{match:`\\.(\\.|${F})+`}] +}],x="([0-9a-fA-F]_*)+",I={className:"number",relevance:0,variants:[{ +match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{ +match:`\\b0x(${x})(\\.(${x}))?([pP][+-]?(([0-9]_*)+))?\\b`},{ +match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},O=(e="")=>({ +className:"subst",variants:[{match:a(/\\/,e,/[0\\tnr"']/)},{ +match:a(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),T=(e="")=>({className:"subst", +match:a(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),L=(e="")=>({className:"subst", +label:"interpol",begin:a(/\\/,e,/\(/),end:/\)/}),P=(e="")=>({begin:a(e,/"""/), +end:a(/"""/,e),contains:[O(e),T(e),L(e)]}),$=(e="")=>({begin:a(e,/"/), +end:a(/"/,e),contains:[O(e),L(e)]}),K={className:"string", +variants:[P(),P("#"),P("##"),P("###"),$(),$("#"),$("##"),$("###")]},j={ +match:a(/`/,w,/`/)},z=[j,{className:"variable",match:/\$\d+/},{ +className:"variable",match:`\\$${f}+`}],q=[{match:/(@|#)available/, +className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:E, +contains:[...S,I,K]}]}},{className:"keyword",match:a(/@/,t(...g))},{ +className:"meta",match:a(/@/,w)}],U={match:n(/\b[A-Z]/),relevance:0,contains:[{ +className:"type", +match:a(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,f,"+") +},{className:"type",match:y,relevance:0},{match:/[?!]+/,relevance:0},{ +match:/\.\.\./,relevance:0},{match:a(/\s+&\s+/,n(y)),relevance:0}]},Z={ +begin://,keywords:D,contains:[...v,...B,...q,M,U]};U.contains.push(Z) +;const G={begin:/\(/,end:/\)/,relevance:0,keywords:D,contains:["self",{ +match:a(w,/\s*:/),keywords:"_|0",relevance:0 +},...v,...B,...k,...S,I,K,...z,...q,U]},H={beginKeywords:"func",contains:[{ +className:"title",match:t(j.match,w,b),endsParent:!0,relevance:0},p]},R={ +begin://,contains:[...v,U]},V={begin:/\(/,end:/\)/,keywords:D, +contains:[{begin:t(n(a(w,/\s*:/)),n(a(w,/\s+/,w,/\s*:/))),end:/:/,relevance:0, +contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:w}] +},...v,...B,...S,I,K,...q,U,G],endsParent:!0,illegal:/["']/},W={ +className:"function",match:n(/\bfunc\b/),contains:[H,R,V,p],illegal:[/\[/,/%/] +},X={className:"function",match:/\b(subscript|init[?!]?)\s*(?=[<(])/,keywords:{ +keyword:"subscript init init? init!",$pattern:/\w+[?!]?/},contains:[R,V,p], +illegal:/\[|%/},J={beginKeywords:"operator",end:e.MATCH_NOTHING_RE,contains:[{ +className:"title",match:b,endsParent:!0,relevance:0}]},Q={ +beginKeywords:"precedencegroup",end:e.MATCH_NOTHING_RE,contains:[{ +className:"title",match:y,relevance:0},{begin:/{/,end:/}/,relevance:0, +endsParent:!0,keywords:[...l,...o],contains:[U]}]};for(const e of K.variants){ +const n=e.contains.find((e=>"interpol"===e.label));n.keywords=D +;const a=[...B,...k,...S,I,K,...z];n.contains=[...a,{begin:/\(/,end:/\)/, +contains:["self",...a]}]}return{name:"Swift",keywords:D,contains:[...v,W,X,{ +className:"class",beginKeywords:"struct protocol class extension enum", +end:"\\{",excludeEnd:!0,keywords:D,contains:[e.inherit(e.TITLE_MODE,{ +begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...B]},J,Q,{ +beginKeywords:"import",end:/$/,contains:[...v],relevance:0 +},...B,...k,...S,I,K,...z,...q,U,G]}}})()); +hljs.registerLanguage("typescript",(()=>{"use strict" +;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]) +;function t(e){return r("(?=",e,")")}function r(...e){return e.map((e=>{ +return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return i=>{ +const c={$pattern:e, +keyword:n.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]), +literal:a, +built_in:s.concat(["any","void","number","boolean","string","object","never","enum"]) +},o={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},l=(e,n,a)=>{ +const s=e.contains.findIndex((e=>e.label===n)) +;if(-1===s)throw Error("can not find mode to replace");e.contains.splice(s,1,a) +},b=(i=>{const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/, +end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ +const a=e[0].length+e.index,s=e.input[a];"<"!==s?">"===s&&(((e,{after:n})=>{ +const a="", +returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{ +begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0 +},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}] +},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{ +variants:[{begin:"<>",end:""},{begin:o.begin,"on:begin":o.isTrulyOpeningTag, +end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0, +contains:["self"]}]}],relevance:0},{className:"function", +beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l, +contains:["self",i.inherit(i.TITLE_MODE,{begin:c}),A],illegal:/%/},{ +beginKeywords:"while if switch catch for"},{className:"function", +begin:i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", +returnBegin:!0,contains:[A,i.inherit(i.TITLE_MODE,{begin:c})]},{variants:[{ +begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class", +beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{ +beginKeywords:"extends"},i.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/, +end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:c}),"self",A] +},{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set", +contains:[i.inherit(i.TITLE_MODE,{begin:c}),{begin:/\(\)/},A]},{begin:/\$[(.]/}] +}})(i) +;return Object.assign(b.keywords,c),b.exports.PARAMS_CONTAINS.push(o),b.contains=b.contains.concat([o,{ +beginKeywords:"namespace",end:/\{/,excludeEnd:!0},{beginKeywords:"interface", +end:/\{/,excludeEnd:!0,keywords:"interface extends" +}]),l(b,"shebang",i.SHEBANG()),l(b,"use_strict",{className:"meta",relevance:10, +begin:/^\s*['"]use strict['"]/ +}),b.contains.find((e=>"function"===e.className)).relevance=0,Object.assign(b,{ +name:"TypeScript",aliases:["ts","tsx"]}),b}})()); +hljs.registerLanguage("vbnet",(()=>{"use strict";function e(e){ +return e?"string"==typeof e?e:e.source:null}function n(...n){ +return n.map((n=>e(n))).join("")}function t(...n){ +return"("+n.map((n=>e(n))).join("|")+")"}return e=>{ +const a=/\d{1,2}\/\d{1,2}\/\d{4}/,i=/\d{4}-\d{1,2}-\d{1,2}/,s=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,o={ +className:"literal",variants:[{begin:n(/# */,t(i,a),/ *#/)},{ +begin:n(/# */,r,/ *#/)},{begin:n(/# */,s,/ *#/)},{ +begin:n(/# */,t(i,a),/ +/,t(s,r),/ *#/)}]},l=e.COMMENT(/'''/,/$/,{contains:[{ +className:"doctag",begin:/<\/?/,end:/>/}]}),c=e.COMMENT(null,/$/,{variants:[{ +begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET", +aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{ +keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield", +built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort", +type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort", +literal:"true false nothing"}, +illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{ +className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/, +end:/"/,illegal:/\n/,contains:[{begin:/""/}]},o,{className:"number",relevance:0, +variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/ +},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{ +begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{ +className:"label",begin:/^\w+:/},l,c,{className:"meta", +begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/, +end:/$/,keywords:{ +"meta-keyword":"const disable else elseif enable end externalsource if region then" +},contains:[c]}]}}})()); +hljs.registerLanguage("yaml",(()=>{"use strict";return e=>{ +var n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={ +className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ +},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable", +variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(s,{ +variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={ +end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},t={begin:/\{/, +end:/\}/,contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]", +contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{ +begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{ +begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$", +relevance:10},{className:"string", +begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{ +begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0, +relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type", +begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a +},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta", +begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)", +relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{ +className:"number", +begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b" +},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},t,g,s],r=[...b] +;return r.pop(),r.push(i),l.contains=r,{name:"YAML",case_insensitive:!0, +aliases:["yml"],contains:b}}})()); \ No newline at end of file diff --git a/metrics-complete-branch-report-initial-htmlReport/js/highlightjs-line-numbers.min.js b/metrics-complete-branch-report-initial-htmlReport/js/highlightjs-line-numbers.min.js new file mode 100644 index 0000000000..8548576704 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/js/highlightjs-line-numbers.min.js @@ -0,0 +1,24 @@ +/* +The MIT License (MIT) + +Copyright (c) 2017 Yauheni Pakala + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + */ +!function(r,o){"use strict";var e,i="hljs-ln",l="hljs-ln-line",h="hljs-ln-code",s="hljs-ln-numbers",c="hljs-ln-n",m="data-line-number",a=/\r\n|\r|\n/g;function u(e){for(var n=e.toString(),t=e.anchorNode;"TD"!==t.nodeName;)t=t.parentNode;for(var r=e.focusNode;"TD"!==r.nodeName;)r=r.parentNode;var o=parseInt(t.dataset.lineNumber),a=parseInt(r.dataset.lineNumber);if(o==a)return n;var i,l=t.textContent,s=r.textContent;for(a
{6}',[l,s,c,m,h,o+n.startFrom,0{1}',[i,r])}return e}(e.innerHTML,o)}function v(e){var n=e.className;if(/hljs-/.test(n)){for(var t=g(e.innerHTML),r=0,o="";r{1}
\n',[n,0 + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/10) + + + + 90.9% + + + (20/22) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 0% + + + (0/52) + + + + 89.2% + + + (91/102) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + + 100% + + + (6/6) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 0% + + + (0/24) + + + + 88.9% + + + (120/135) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 75% + + + (9/12) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 0% + + + (0/16) + + + + 87.1% + + + (108/124) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 62.5% + + + (5/8) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 75% + + + (3/4) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 0% + + + (0/2) + + + + 96% + + + (24/25) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 16.7% + + + (1/6) + + + + 93.1% + + + (27/29) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 10% + + + (2/20) + + + + 93.1% + + + (67/72) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (3/3) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (11/11) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 0% + + + (0/6) + + + + 65.6% + + + (63/96) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 0% + + + (0/4) + + + + 61.5% + + + (56/91) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + + 78.3% + + + (18/23) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 0% + + + (0/26) + + + + 85.2% + + + (75/88) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 0% + + + (0/2) + + + + 89.7% + + + (26/29) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 95% + + + (19/20) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 22.7% + + + (15/66) + + + + 82% + + + (150/183) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + + 100% + + + (11/11) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 0% + + + (0/2) + + + + 40.7% + + + (48/118) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 0% + + + (0/6) + + + + 91.7% + + + (11/12) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 0% + + + (0/24) + + + + 68.1% + + + (62/91) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 0% + + + (0/10) + + + + 87.5% + + + (28/32) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 0% + + + (0/29) + + + + 74.6% + + + (141/189) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/14) + + + + 78.4% + + + (29/37) + +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/2) + + + + 0% + + + (0/14) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/2) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + + 0% + + + (0/7) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 0% + + + (0/22) + + + + 90% + + + (63/70) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/8) + + + + 81.8% + + + (27/33) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/2) + + + + 84.6% + + + (11/13) + +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + + 100% + + + (7/7) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 50% + + + (1/2) + + + + 87.8% + + + (43/49) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 0% + + + (0/10) + + + + 84% + + + (21/25) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 0% + + + (0/28) + + + + 92.3% + + + (48/52) + +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 0% + + + (0/36) + + + + 94.8% + + + (55/58) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..c6352124e6 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK.html @@ -0,0 +1,1413 @@ + + + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + + 100% + + + (6/6) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 75% + + + (9/12) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 62.5% + + + (5/8) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 75% + + + (3/4) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (3/3) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (11/11) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + + 78.3% + + + (18/23) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 95% + + + (19/20) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + + 100% + + + (11/11) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + + 0% + + + (0/7) + +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + + 100% + + + (7/7) + +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/10) + + + + 90.9% + + + (20/22) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 0% + + + (0/52) + + + + 89.2% + + + (91/102) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 0% + + + (0/24) + + + + 88.9% + + + (120/135) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 0% + + + (0/16) + + + + 87.1% + + + (108/124) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 0% + + + (0/2) + + + + 96% + + + (24/25) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 0% + + + (0/6) + + + + 65.6% + + + (63/96) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 0% + + + (0/4) + + + + 61.5% + + + (56/91) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 0% + + + (0/26) + + + + 85.2% + + + (75/88) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 0% + + + (0/2) + + + + 89.7% + + + (26/29) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 0% + + + (0/2) + + + + 40.7% + + + (48/118) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 0% + + + (0/6) + + + + 91.7% + + + (11/12) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 0% + + + (0/24) + + + + 68.1% + + + (62/91) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 0% + + + (0/10) + + + + 87.5% + + + (28/32) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 0% + + + (0/29) + + + + 74.6% + + + (141/189) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/14) + + + + 78.4% + + + (29/37) + +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/2) + + + + 0% + + + (0/14) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/2) + + + + 0% + + + (0/10) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 0% + + + (0/22) + + + + 90% + + + (63/70) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/8) + + + + 81.8% + + + (27/33) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/2) + + + + 84.6% + + + (11/13) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 0% + + + (0/10) + + + + 84% + + + (21/25) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 0% + + + (0/28) + + + + 92.3% + + + (48/52) + +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 0% + + + (0/36) + + + + 94.8% + + + (55/58) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 10% + + + (2/20) + + + + 93.1% + + + (67/72) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 16.7% + + + (1/6) + + + + 93.1% + + + (27/29) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 22.7% + + + (15/66) + + + + 82% + + + (150/183) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 50% + + + (1/2) + + + + 87.8% + + + (43/49) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..1839e337c5 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,1413 @@ + + + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 50% + + + (1/2) + + + + 87.8% + + + (43/49) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 22.7% + + + (15/66) + + + + 82% + + + (150/183) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 16.7% + + + (1/6) + + + + 93.1% + + + (27/29) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 10% + + + (2/20) + + + + 93.1% + + + (67/72) + +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 0% + + + (0/36) + + + + 94.8% + + + (55/58) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 0% + + + (0/28) + + + + 92.3% + + + (48/52) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 0% + + + (0/10) + + + + 84% + + + (21/25) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/2) + + + + 84.6% + + + (11/13) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/8) + + + + 81.8% + + + (27/33) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 0% + + + (0/22) + + + + 90% + + + (63/70) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/2) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/2) + + + + 0% + + + (0/14) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/14) + + + + 78.4% + + + (29/37) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 0% + + + (0/29) + + + + 74.6% + + + (141/189) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 0% + + + (0/10) + + + + 87.5% + + + (28/32) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 0% + + + (0/24) + + + + 68.1% + + + (62/91) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 0% + + + (0/6) + + + + 91.7% + + + (11/12) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 0% + + + (0/2) + + + + 40.7% + + + (48/118) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 0% + + + (0/2) + + + + 89.7% + + + (26/29) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 0% + + + (0/26) + + + + 85.2% + + + (75/88) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 0% + + + (0/4) + + + + 61.5% + + + (56/91) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 0% + + + (0/6) + + + + 65.6% + + + (63/96) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 0% + + + (0/2) + + + + 96% + + + (24/25) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 0% + + + (0/16) + + + + 87.1% + + + (108/124) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 0% + + + (0/24) + + + + 88.9% + + + (120/135) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 0% + + + (0/52) + + + + 89.2% + + + (91/102) + +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/10) + + + + 90.9% + + + (20/22) + +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + + 100% + + + (7/7) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + + 0% + + + (0/7) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + + 100% + + + (11/11) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 95% + + + (19/20) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + + 78.3% + + + (18/23) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (11/11) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (3/3) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 75% + + + (3/4) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 62.5% + + + (5/8) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 75% + + + (9/12) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + + 100% + + + (6/6) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..40e5822178 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS.html @@ -0,0 +1,1413 @@ + + + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/2) + + + + 0% + + + (0/14) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/2) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + + 0% + + + (0/7) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 0% + + + (0/29) + + + + 74.6% + + + (141/189) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 0% + + + (0/2) + + + + 40.7% + + + (48/118) + +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/10) + + + + 90.9% + + + (20/22) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 0% + + + (0/52) + + + + 89.2% + + + (91/102) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + + 100% + + + (6/6) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 0% + + + (0/24) + + + + 88.9% + + + (120/135) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 75% + + + (9/12) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 0% + + + (0/16) + + + + 87.1% + + + (108/124) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 62.5% + + + (5/8) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 75% + + + (3/4) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 0% + + + (0/2) + + + + 96% + + + (24/25) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 16.7% + + + (1/6) + + + + 93.1% + + + (27/29) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 10% + + + (2/20) + + + + 93.1% + + + (67/72) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (3/3) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (11/11) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 0% + + + (0/6) + + + + 65.6% + + + (63/96) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 0% + + + (0/4) + + + + 61.5% + + + (56/91) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + + 78.3% + + + (18/23) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 0% + + + (0/26) + + + + 85.2% + + + (75/88) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 0% + + + (0/2) + + + + 89.7% + + + (26/29) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 95% + + + (19/20) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 22.7% + + + (15/66) + + + + 82% + + + (150/183) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + + 100% + + + (11/11) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 0% + + + (0/6) + + + + 91.7% + + + (11/12) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 0% + + + (0/24) + + + + 68.1% + + + (62/91) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 0% + + + (0/10) + + + + 87.5% + + + (28/32) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/14) + + + + 78.4% + + + (29/37) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 0% + + + (0/22) + + + + 90% + + + (63/70) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/8) + + + + 81.8% + + + (27/33) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/2) + + + + 84.6% + + + (11/13) + +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + + 100% + + + (7/7) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 50% + + + (1/2) + + + + 87.8% + + + (43/49) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 0% + + + (0/10) + + + + 84% + + + (21/25) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 0% + + + (0/28) + + + + 92.3% + + + (48/52) + +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 0% + + + (0/36) + + + + 94.8% + + + (55/58) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..029a747e23 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,1413 @@ + + + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 0% + + + (0/36) + + + + 94.8% + + + (55/58) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 0% + + + (0/28) + + + + 92.3% + + + (48/52) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 0% + + + (0/10) + + + + 84% + + + (21/25) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 50% + + + (1/2) + + + + 87.8% + + + (43/49) + +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + + 100% + + + (7/7) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/2) + + + + 84.6% + + + (11/13) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/8) + + + + 81.8% + + + (27/33) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 0% + + + (0/22) + + + + 90% + + + (63/70) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/14) + + + + 78.4% + + + (29/37) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 0% + + + (0/10) + + + + 87.5% + + + (28/32) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 0% + + + (0/24) + + + + 68.1% + + + (62/91) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 0% + + + (0/6) + + + + 91.7% + + + (11/12) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + + 100% + + + (11/11) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 22.7% + + + (15/66) + + + + 82% + + + (150/183) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 95% + + + (19/20) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 0% + + + (0/2) + + + + 89.7% + + + (26/29) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 0% + + + (0/26) + + + + 85.2% + + + (75/88) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + + 78.3% + + + (18/23) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 0% + + + (0/4) + + + + 61.5% + + + (56/91) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 0% + + + (0/6) + + + + 65.6% + + + (63/96) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (11/11) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (3/3) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 10% + + + (2/20) + + + + 93.1% + + + (67/72) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 16.7% + + + (1/6) + + + + 93.1% + + + (27/29) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 0% + + + (0/2) + + + + 96% + + + (24/25) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 75% + + + (3/4) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 62.5% + + + (5/8) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 0% + + + (0/16) + + + + 87.1% + + + (108/124) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 75% + + + (9/12) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 0% + + + (0/24) + + + + 88.9% + + + (120/135) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + + 100% + + + (6/6) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 0% + + + (0/52) + + + + 89.2% + + + (91/102) + +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/10) + + + + 90.9% + + + (20/22) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 0% + + + (0/2) + + + + 40.7% + + + (48/118) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 0% + + + (0/29) + + + + 74.6% + + + (141/189) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + + 0% + + + (0/7) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/2) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/2) + + + + 0% + + + (0/14) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..dca54b3658 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_LINE.html @@ -0,0 +1,1413 @@ + + + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/2) + + + + 0% + + + (0/14) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/2) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + + 0% + + + (0/7) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 0% + + + (0/2) + + + + 40.7% + + + (48/118) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 0% + + + (0/4) + + + + 61.5% + + + (56/91) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 62.5% + + + (5/8) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 0% + + + (0/6) + + + + 65.6% + + + (63/96) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 0% + + + (0/24) + + + + 68.1% + + + (62/91) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 0% + + + (0/29) + + + + 74.6% + + + (141/189) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 75% + + + (9/12) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 75% + + + (3/4) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + + 78.3% + + + (18/23) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/14) + + + + 78.4% + + + (29/37) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/8) + + + + 81.8% + + + (27/33) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 22.7% + + + (15/66) + + + + 82% + + + (150/183) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 0% + + + (0/10) + + + + 84% + + + (21/25) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/2) + + + + 84.6% + + + (11/13) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 0% + + + (0/26) + + + + 85.2% + + + (75/88) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 0% + + + (0/16) + + + + 87.1% + + + (108/124) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 0% + + + (0/10) + + + + 87.5% + + + (28/32) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 50% + + + (1/2) + + + + 87.8% + + + (43/49) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 0% + + + (0/24) + + + + 88.9% + + + (120/135) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 0% + + + (0/52) + + + + 89.2% + + + (91/102) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 0% + + + (0/2) + + + + 89.7% + + + (26/29) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 0% + + + (0/22) + + + + 90% + + + (63/70) + +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/10) + + + + 90.9% + + + (20/22) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 0% + + + (0/6) + + + + 91.7% + + + (11/12) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 0% + + + (0/28) + + + + 92.3% + + + (48/52) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 10% + + + (2/20) + + + + 93.1% + + + (67/72) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 16.7% + + + (1/6) + + + + 93.1% + + + (27/29) + +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 0% + + + (0/36) + + + + 94.8% + + + (55/58) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 95% + + + (19/20) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 0% + + + (0/2) + + + + 96% + + + (24/25) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + + 100% + + + (6/6) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (3/3) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (11/11) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + + 100% + + + (11/11) + +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..0694671af5 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,1413 @@ + + + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + + 100% + + + (7/7) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + + 100% + + + (11/11) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (11/11) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (3/3) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + + 100% + + + (6/6) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 0% + + + (0/2) + + + + 96% + + + (24/25) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 95% + + + (19/20) + +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 0% + + + (0/36) + + + + 94.8% + + + (55/58) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 16.7% + + + (1/6) + + + + 93.1% + + + (27/29) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 10% + + + (2/20) + + + + 93.1% + + + (67/72) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 0% + + + (0/28) + + + + 92.3% + + + (48/52) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 0% + + + (0/6) + + + + 91.7% + + + (11/12) + +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/10) + + + + 90.9% + + + (20/22) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 0% + + + (0/22) + + + + 90% + + + (63/70) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 0% + + + (0/2) + + + + 89.7% + + + (26/29) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 0% + + + (0/52) + + + + 89.2% + + + (91/102) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 0% + + + (0/24) + + + + 88.9% + + + (120/135) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 50% + + + (1/2) + + + + 87.8% + + + (43/49) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 0% + + + (0/10) + + + + 87.5% + + + (28/32) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 0% + + + (0/16) + + + + 87.1% + + + (108/124) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 0% + + + (0/26) + + + + 85.2% + + + (75/88) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/2) + + + + 84.6% + + + (11/13) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 0% + + + (0/10) + + + + 84% + + + (21/25) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 22.7% + + + (15/66) + + + + 82% + + + (150/183) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/8) + + + + 81.8% + + + (27/33) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/14) + + + + 78.4% + + + (29/37) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + + 78.3% + + + (18/23) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 75% + + + (3/4) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 75% + + + (9/12) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 0% + + + (0/29) + + + + 74.6% + + + (141/189) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 0% + + + (0/24) + + + + 68.1% + + + (62/91) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 0% + + + (0/6) + + + + 65.6% + + + (63/96) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 62.5% + + + (5/8) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 0% + + + (0/4) + + + + 61.5% + + + (56/91) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 0% + + + (0/2) + + + + 40.7% + + + (48/118) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + + 0% + + + (0/7) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/2) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/2) + + + + 0% + + + (0/14) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..7b480f01bf --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD.html @@ -0,0 +1,1413 @@ + + + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/2) + + + + 0% + + + (0/14) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/2) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + + 0% + + + (0/7) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 0% + + + (0/2) + + + + 40.7% + + + (48/118) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 0% + + + (0/6) + + + + 65.6% + + + (63/96) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 0% + + + (0/4) + + + + 61.5% + + + (56/91) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 0% + + + (0/29) + + + + 74.6% + + + (141/189) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + + 78.3% + + + (18/23) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 0% + + + (0/16) + + + + 87.1% + + + (108/124) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 16.7% + + + (1/6) + + + + 93.1% + + + (27/29) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/14) + + + + 78.4% + + + (29/37) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/8) + + + + 81.8% + + + (27/33) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 0% + + + (0/2) + + + + 89.7% + + + (26/29) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 22.7% + + + (15/66) + + + + 82% + + + (150/183) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 0% + + + (0/24) + + + + 88.9% + + + (120/135) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 0% + + + (0/24) + + + + 68.1% + + + (62/91) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 0% + + + (0/52) + + + + 89.2% + + + (91/102) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 0% + + + (0/26) + + + + 85.2% + + + (75/88) + +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/10) + + + + 90.9% + + + (20/22) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + + 100% + + + (6/6) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 75% + + + (9/12) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 62.5% + + + (5/8) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 75% + + + (3/4) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 0% + + + (0/2) + + + + 96% + + + (24/25) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 10% + + + (2/20) + + + + 93.1% + + + (67/72) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (3/3) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (11/11) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 95% + + + (19/20) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + + 100% + + + (11/11) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 0% + + + (0/6) + + + + 91.7% + + + (11/12) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 0% + + + (0/10) + + + + 87.5% + + + (28/32) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 0% + + + (0/22) + + + + 90% + + + (63/70) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/2) + + + + 84.6% + + + (11/13) + +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + + 100% + + + (7/7) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 50% + + + (1/2) + + + + 87.8% + + + (43/49) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 0% + + + (0/10) + + + + 84% + + + (21/25) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 0% + + + (0/28) + + + + 92.3% + + + (48/52) + +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 0% + + + (0/36) + + + + 94.8% + + + (55/58) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..c2a7450f00 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,1413 @@ + + + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 0% + + + (0/36) + + + + 94.8% + + + (55/58) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 0% + + + (0/28) + + + + 92.3% + + + (48/52) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 0% + + + (0/10) + + + + 84% + + + (21/25) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 50% + + + (1/2) + + + + 87.8% + + + (43/49) + +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + + 100% + + + (7/7) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/2) + + + + 84.6% + + + (11/13) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 0% + + + (0/22) + + + + 90% + + + (63/70) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 0% + + + (0/10) + + + + 87.5% + + + (28/32) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 0% + + + (0/6) + + + + 91.7% + + + (11/12) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + + 100% + + + (11/11) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 95% + + + (19/20) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (11/11) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (3/3) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 10% + + + (2/20) + + + + 93.1% + + + (67/72) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 0% + + + (0/2) + + + + 96% + + + (24/25) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 75% + + + (3/4) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 62.5% + + + (5/8) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 75% + + + (9/12) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + + 100% + + + (6/6) + +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/10) + + + + 90.9% + + + (20/22) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 0% + + + (0/26) + + + + 85.2% + + + (75/88) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 0% + + + (0/52) + + + + 89.2% + + + (91/102) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 0% + + + (0/24) + + + + 68.1% + + + (62/91) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 0% + + + (0/24) + + + + 88.9% + + + (120/135) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 22.7% + + + (15/66) + + + + 82% + + + (150/183) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 0% + + + (0/2) + + + + 89.7% + + + (26/29) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/8) + + + + 81.8% + + + (27/33) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/14) + + + + 78.4% + + + (29/37) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 16.7% + + + (1/6) + + + + 93.1% + + + (27/29) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 0% + + + (0/16) + + + + 87.1% + + + (108/124) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + + 78.3% + + + (18/23) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 0% + + + (0/29) + + + + 74.6% + + + (141/189) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 0% + + + (0/4) + + + + 61.5% + + + (56/91) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 0% + + + (0/6) + + + + 65.6% + + + (63/96) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 0% + + + (0/2) + + + + 40.7% + + + (48/118) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + + 0% + + + (0/7) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/2) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/2) + + + + 0% + + + (0/14) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..5ad4ecb28f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,1413 @@ + + + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.5% + + + (494/629) + + + + 4.4% + + + (19/431) + + + + 78.9% + + + (1510/1915) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 0% + + + (0/36) + + + + 94.8% + + + (55/58) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 0% + + + (0/28) + + + + 92.3% + + + (48/52) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 0% + + + (0/10) + + + + 84% + + + (21/25) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 50% + + + (1/2) + + + + 87.8% + + + (43/49) + +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + + 100% + + + (7/7) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/2) + + + + 84.6% + + + (11/13) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/8) + + + + 81.8% + + + (27/33) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 0% + + + (0/22) + + + + 90% + + + (63/70) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + + 0% + + + (0/7) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/2) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/2) + + + + 0% + + + (0/14) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/14) + + + + 78.4% + + + (29/37) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 0% + + + (0/29) + + + + 74.6% + + + (141/189) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 0% + + + (0/10) + + + + 87.5% + + + (28/32) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 0% + + + (0/24) + + + + 68.1% + + + (62/91) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 0% + + + (0/6) + + + + 91.7% + + + (11/12) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 0% + + + (0/2) + + + + 40.7% + + + (48/118) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + + 100% + + + (11/11) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 22.7% + + + (15/66) + + + + 82% + + + (150/183) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 100% + + + (4/4) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 95% + + + (19/20) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 0% + + + (0/2) + + + + 89.7% + + + (26/29) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 0% + + + (0/26) + + + + 85.2% + + + (75/88) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + + 78.3% + + + (18/23) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 0% + + + (0/4) + + + + 61.5% + + + (56/91) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 0% + + + (0/6) + + + + 65.6% + + + (63/96) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + + 100% + + + (11/11) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + + 100% + + + (3/3) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 10% + + + (2/20) + + + + 93.1% + + + (67/72) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 16.7% + + + (1/6) + + + + 93.1% + + + (27/29) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 0% + + + (0/2) + + + + 96% + + + (24/25) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + + 75% + + + (3/4) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + + 62.5% + + + (5/8) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 0% + + + (0/16) + + + + 87.1% + + + (108/124) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + + 75% + + + (9/12) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 0% + + + (0/24) + + + + 88.9% + + + (120/135) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + + 100% + + + (6/6) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 0% + + + (0/52) + + + + 89.2% + + + (91/102) + +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/10) + + + + 90.9% + + + (20/22) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1.html new file mode 100644 index 0000000000..b4527865b8 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1.html @@ -0,0 +1,190 @@ + + + + + + + + Coverage Report > CachedGauge + + + + + + +
+ + +

Coverage Summary for Class: CachedGauge (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/10) + + + + 90.9% + + + (20/22) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicLong;
+ import java.util.concurrent.atomic.AtomicReference;
+ 
+ /**
+  * A {@link Gauge} implementation which caches its value for a period of time.
+  *
+  * @param <T> the type of the gauge's value
+  */
+ public abstract class CachedGauge<T> implements Gauge<T> {
+     private final Clock clock;
+     private final AtomicLong reloadAt;
+     private final long timeoutNS;
+     private final AtomicReference<T> value;
+ 
+     /**
+      * Creates a new cached gauge with the given timeout period.
+      *
+      * @param timeout     the timeout
+      * @param timeoutUnit the unit of {@code timeout}
+      */
+     protected CachedGauge(long timeout, TimeUnit timeoutUnit) {
+         this(Clock.defaultClock(), timeout, timeoutUnit);
+     }
+ 
+     /**
+      * Creates a new cached gauge with the given clock and timeout period.
+      *
+      * @param clock       the clock used to calculate the timeout
+      * @param timeout     the timeout
+      * @param timeoutUnit the unit of {@code timeout}
+      */
+     protected CachedGauge(Clock clock, long timeout, TimeUnit timeoutUnit) {
+         this.clock = clock;
+         this.reloadAt = new AtomicLong(clock.getTick());
+         this.timeoutNS = timeoutUnit.toNanos(timeout);
+         this.value = new AtomicReference<>();
+     }
+ 
+     /**
+      * Loads the value and returns it.
+      *
+      * @return the new value
+      */
+     protected abstract T loadValue();
+ 
+     @Override
+     public T getValue() {
+         T currentValue = this.value.get();
+         if (shouldLoad() || currentValue == null) {
+             T newValue = loadValue();
+             if (!this.value.compareAndSet(currentValue, newValue)) {
+                 return this.value.get();
+             }
+             return newValue;
+         }
+         return currentValue;
+     }
+ 
+     private boolean shouldLoad() {
+         for ( ;; ) {
+             final long time = clock.getTick();
+             final long current = reloadAt.get();
+             if (current > time) {
+                 return false;
+             }
+             if (reloadAt.compareAndSet(current, time + timeoutNS)) {
+                 return true;
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-10.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-10.html new file mode 100644 index 0000000000..4ce47ab056 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-10.html @@ -0,0 +1,203 @@ + + + + + + + + Coverage Report > InstrumentedThreadFactory + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedThreadFactory (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedThreadFactory + + 80% + + + (4/5) + + + + 78.6% + + + (11/14) + +
InstrumentedThreadFactory$InstrumentedRunnable + + 100% + + + (2/2) + + + + 77.8% + + + (7/9) + +
Total + + 85.7% + + + (6/7) + + + + 78.3% + + + (18/23) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.ThreadFactory;
+ import java.util.concurrent.atomic.AtomicLong;
+ 
+ /**
+  * A {@link ThreadFactory} that monitors the number of threads created, running and terminated.
+  * <p>
+  * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
+  * "your-thread-delegate.created", "your-thread-delegate.running", etc.
+  */
+ public class InstrumentedThreadFactory implements ThreadFactory {
+     private static final AtomicLong NAME_COUNTER = new AtomicLong();
+ 
+     private final ThreadFactory delegate;
+     private final Meter created;
+     private final Counter running;
+     private final Meter terminated;
+ 
+     /**
+      * Wraps a {@link ThreadFactory}, uses a default auto-generated name.
+      *
+      * @param delegate {@link ThreadFactory} to wrap.
+      * @param registry {@link MetricRegistry} that will contain the metrics.
+      */
+     public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry) {
+         this(delegate, registry, "instrumented-thread-delegate-" + NAME_COUNTER.incrementAndGet());
+     }
+ 
+     /**
+      * Wraps a {@link ThreadFactory} with an explicit name.
+      *
+      * @param delegate {@link ThreadFactory} to wrap.
+      * @param registry {@link MetricRegistry} that will contain the metrics.
+      * @param name     name for this delegate.
+      */
+     public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry, String name) {
+         this.delegate = delegate;
+         this.created = registry.meter(MetricRegistry.name(name, "created"));
+         this.running = registry.counter(MetricRegistry.name(name, "running"));
+         this.terminated = registry.meter(MetricRegistry.name(name, "terminated"));
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Thread newThread(Runnable runnable) {
+         Runnable wrappedRunnable = new InstrumentedRunnable(runnable);
+         Thread thread = delegate.newThread(wrappedRunnable);
+         created.mark();
+         return thread;
+     }
+ 
+     private class InstrumentedRunnable implements Runnable {
+         private final Runnable task;
+ 
+         InstrumentedRunnable(Runnable task) {
+             this.task = task;
+         }
+ 
+         @Override
+         public void run() {
+             running.inc();
+             try {
+                 task.run();
+             } finally {
+                 running.dec();
+                 terminated.mark();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-11.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-11.html new file mode 100644 index 0000000000..54faaa1258 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-11.html @@ -0,0 +1,485 @@ + + + + + + + + Coverage Report > LockFreeExponentiallyDecayingReservoir + + + + + + +
+ + +

Coverage Summary for Class: LockFreeExponentiallyDecayingReservoir (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (9/9) + + + + 0% + + + (0/4) + + + + 92% + + + (23/25) + +
LockFreeExponentiallyDecayingReservoir$1
LockFreeExponentiallyDecayingReservoir$Builder + + 87.5% + + + (7/8) + + + + 0% + + + (0/2) + + + + 83.3% + + + (15/18) + +
LockFreeExponentiallyDecayingReservoir$RescalingConsumer + + 100% + + + (3/3) + + + + 0% + + + (0/4) + + + + 75% + + + (9/12) + +
LockFreeExponentiallyDecayingReservoir$State + + 100% + + + (7/7) + + + + 0% + + + (0/16) + + + + 84.8% + + + (28/33) + +
Total + + 96.3% + + + (26/27) + + + + 0% + + + (0/26) + + + + 85.2% + + + (75/88) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import com.codahale.metrics.WeightedSnapshot.WeightedSample;
+ 
+ import java.time.Duration;
+ import java.util.Objects;
+ import java.util.concurrent.ConcurrentSkipListMap;
+ import java.util.concurrent.ThreadLocalRandom;
+ import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
+ import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
+ import java.util.function.BiConsumer;
+ 
+ /**
+  * A lock-free exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al's
+  * forward-decaying priority reservoir sampling method to produce a statistically representative
+  * sampling reservoir, exponentially biased towards newer entries.
+  *
+  * @see <a href="http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf">
+  * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE '09:
+  * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)</a>
+  *
+  * {@link LockFreeExponentiallyDecayingReservoir} is based closely on the {@link ExponentiallyDecayingReservoir},
+  * however it provides looser guarantees while completely avoiding locks.
+  *
+  * Looser guarantees:
+  * <ul>
+  *     <li> Updates which occur concurrently with rescaling may be discarded if the orphaned state node is updated after
+  *     rescale has replaced it. This condition has a greater probability as the rescale interval is reduced due to the
+  *     increased frequency of rescaling. {@link #rescaleThresholdNanos} values below 30 seconds are not recommended.
+  *     <li> Given a small rescale threshold, updates may attempt to rescale into a new bucket, but lose the CAS race
+  *     and update into a newer bucket than expected. In these cases the measurement weight is reduced accordingly.
+  *     <li>In the worst case, all concurrent threads updating the reservoir may attempt to rescale rather than
+  *     a single thread holding an exclusive write lock. It's expected that the configuration is set such that
+  *     rescaling is substantially less common than updating at peak load. Even so, when size is reasonably small
+  *     it can be more efficient to rescale than to park and context switch.
+  * </ul>
+  *
+  * @author <a href="mailto:ckozak@ckozak.net">Carter Kozak</a>
+  */
+ public final class LockFreeExponentiallyDecayingReservoir implements Reservoir {
+ 
+     private static final double SECONDS_PER_NANO = .000_000_001D;
+     private static final AtomicReferenceFieldUpdater<LockFreeExponentiallyDecayingReservoir, State> stateUpdater =
+             AtomicReferenceFieldUpdater.newUpdater(LockFreeExponentiallyDecayingReservoir.class, State.class, "state");
+ 
+     private final int size;
+     private final long rescaleThresholdNanos;
+     private final Clock clock;
+ 
+     private volatile State state;
+ 
+     private static final class State {
+ 
+         private static final AtomicIntegerFieldUpdater<State> countUpdater =
+                 AtomicIntegerFieldUpdater.newUpdater(State.class, "count");
+ 
+         private final double alphaNanos;
+         private final int size;
+         private final long startTick;
+         // Count is updated after samples are successfully added to the map.
+         private final ConcurrentSkipListMap<Double, WeightedSample> values;
+ 
+         private volatile int count;
+ 
+         State(
+                 double alphaNanos,
+                 int size,
+                 long startTick,
+                 int count,
+                 ConcurrentSkipListMap<Double, WeightedSample> values) {
+             this.alphaNanos = alphaNanos;
+             this.size = size;
+             this.startTick = startTick;
+             this.values = values;
+             this.count = count;
+         }
+ 
+         private void update(long value, long timestampNanos) {
+             double itemWeight = weight(timestampNanos - startTick);
+             double priority = itemWeight / ThreadLocalRandom.current().nextDouble();
+             boolean mapIsFull = count >= size;
+             if (!mapIsFull || values.firstKey() < priority) {
+                 addSample(priority, value, itemWeight, mapIsFull);
+             }
+         }
+ 
+         private void addSample(double priority, long value, double itemWeight, boolean bypassIncrement) {
+             if (values.putIfAbsent(priority, new WeightedSample(value, itemWeight)) == null
+                     && (bypassIncrement || countUpdater.incrementAndGet(this) > size)) {
+                 values.pollFirstEntry();
+             }
+         }
+ 
+         /* "A common feature of the above techniques—indeed, the key technique that
+          * allows us to track the decayed weights efficiently—is that they maintain
+          * counts and other quantities based on g(ti ? L), and only scale by g(t ? L)
+          * at query time. But while g(ti ?L)/g(t?L) is guaranteed to lie between zero
+          * and one, the intermediate values of g(ti ? L) could become very large. For
+          * polynomial functions, these values should not grow too large, and should be
+          * effectively represented in practice by floating point values without loss of
+          * precision. For exponential functions, these values could grow quite large as
+          * new values of (ti ? L) become large, and potentially exceed the capacity of
+          * common floating point types. However, since the values stored by the
+          * algorithms are linear combinations of g values (scaled sums), they can be
+          * rescaled relative to a new landmark. That is, by the analysis of exponential
+          * decay in Section III-A, the choice of L does not affect the final result. We
+          * can therefore multiply each value based on L by a factor of exp(??(L? ? L)),
+          * and obtain the correct value as if we had instead computed relative to a new
+          * landmark L? (and then use this new L? at query time). This can be done with
+          * a linear pass over whatever data structure is being used."
+          */
+         State rescale(long newTick) {
+             long durationNanos = newTick - startTick;
+             double scalingFactor = Math.exp(-alphaNanos * durationNanos);
+             int newCount = 0;
+             ConcurrentSkipListMap<Double, WeightedSample> newValues = new ConcurrentSkipListMap<>();
+             if (Double.compare(scalingFactor, 0) != 0) {
+                 RescalingConsumer consumer = new RescalingConsumer(scalingFactor, newValues);
+                 values.forEach(consumer);
+                 // make sure the counter is in sync with the number of stored samples.
+                 newCount = consumer.count;
+             }
+             // It's possible that more values were added while the map was scanned, those with the
+             // minimum priorities are removed.
+             while (newCount > size) {
+                 Objects.requireNonNull(newValues.pollFirstEntry(), "Expected an entry");
+                 newCount--;
+             }
+             return new State(alphaNanos, size, newTick, newCount, newValues);
+         }
+ 
+         private double weight(long durationNanos) {
+             return Math.exp(alphaNanos * durationNanos);
+         }
+     }
+ 
+     private static final class RescalingConsumer implements BiConsumer<Double, WeightedSample> {
+         private final double scalingFactor;
+         private final ConcurrentSkipListMap<Double, WeightedSample> values;
+         private int count;
+ 
+         RescalingConsumer(double scalingFactor, ConcurrentSkipListMap<Double, WeightedSample> values) {
+             this.scalingFactor = scalingFactor;
+             this.values = values;
+         }
+ 
+         @Override
+         public void accept(Double priority, WeightedSample sample) {
+             double newWeight = sample.weight * scalingFactor;
+             if (Double.compare(newWeight, 0) == 0) {
+                 return;
+             }
+             WeightedSample newSample = new WeightedSample(sample.value, newWeight);
+             if (values.put(priority * scalingFactor, newSample) == null) {
+                 count++;
+             }
+         }
+     }
+ 
+     private LockFreeExponentiallyDecayingReservoir(int size, double alpha, Duration rescaleThreshold, Clock clock) {
+         // Scale alpha to nanoseconds
+         double alphaNanos = alpha * SECONDS_PER_NANO;
+         this.size = size;
+         this.clock = clock;
+         this.rescaleThresholdNanos = rescaleThreshold.toNanos();
+         this.state = new State(alphaNanos, size, clock.getTick(), 0, new ConcurrentSkipListMap<>());
+     }
+ 
+     @Override
+     public int size() {
+         return Math.min(size, state.count);
+     }
+ 
+     @Override
+     public void update(long value) {
+         long now = clock.getTick();
+         rescaleIfNeeded(now).update(value, now);
+     }
+ 
+     private State rescaleIfNeeded(long currentTick) {
+         // This method is optimized for size so the check may be quickly inlined.
+         // Rescaling occurs substantially less frequently than the check itself.
+         State stateSnapshot = this.state;
+         if (currentTick - stateSnapshot.startTick >= rescaleThresholdNanos) {
+             return doRescale(currentTick, stateSnapshot);
+         }
+         return stateSnapshot;
+     }
+ 
+     private State doRescale(long currentTick, State stateSnapshot) {
+         State newState = stateSnapshot.rescale(currentTick);
+         if (stateUpdater.compareAndSet(this, stateSnapshot, newState)) {
+             // newState successfully installed
+             return newState;
+         }
+         // Otherwise another thread has won the race and we can return the result of a volatile read.
+         // It's possible this has taken so long that another update is required, however that's unlikely
+         // and no worse than the standard race between a rescale and update.
+         return this.state;
+     }
+ 
+     @Override
+     public Snapshot getSnapshot() {
+         State stateSnapshot = rescaleIfNeeded(clock.getTick());
+         return new WeightedSnapshot(stateSnapshot.values.values());
+     }
+ 
+     public static Builder builder() {
+         return new Builder();
+     }
+ 
+     /**
+      * By default this uses a size of 1028 elements, which offers a 99.9%
+      * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
+      * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
+      */
+     public static final class Builder {
+         private static final int DEFAULT_SIZE = 1028;
+         private static final double DEFAULT_ALPHA = 0.015D;
+         private static final Duration DEFAULT_RESCALE_THRESHOLD = Duration.ofHours(1);
+ 
+         private int size = DEFAULT_SIZE;
+         private double alpha = DEFAULT_ALPHA;
+         private Duration rescaleThreshold = DEFAULT_RESCALE_THRESHOLD;
+         private Clock clock = Clock.defaultClock();
+ 
+         private Builder() {}
+ 
+         /**
+          * Maximum number of samples to keep in the reservoir. Once this number is reached older samples are
+          * replaced (based on weight, with some amount of random jitter).
+          */
+         public Builder size(int value) {
+             if (value <= 0) {
+                 throw new IllegalArgumentException(
+                         "LockFreeExponentiallyDecayingReservoir size must be positive: " + value);
+             }
+             this.size = value;
+             return this;
+         }
+ 
+         /**
+          * Alpha is the exponential decay factor. Higher values bias results more heavily toward newer values.
+          */
+         public Builder alpha(double value) {
+             this.alpha = value;
+             return this;
+         }
+ 
+         /**
+          * Interval at which this reservoir is rescaled.
+          */
+         public Builder rescaleThreshold(Duration value) {
+             this.rescaleThreshold = Objects.requireNonNull(value, "rescaleThreshold is required");
+             return this;
+         }
+ 
+         /**
+          * Clock instance used for decay.
+          */
+         public Builder clock(Clock value) {
+             this.clock = Objects.requireNonNull(value, "clock is required");
+             return this;
+         }
+ 
+         public Reservoir build() {
+             return new LockFreeExponentiallyDecayingReservoir(size, alpha, rescaleThreshold, clock);
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-12.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-12.html new file mode 100644 index 0000000000..78bc61fd82 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-12.html @@ -0,0 +1,222 @@ + + + + + + + + Coverage Report > Meter + + + + + + +
+ + +

Coverage Summary for Class: Meter (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 0% + + + (0/2) + + + + 89.7% + + + (26/29) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.LongAdder;
+ 
+ /**
+  * A meter metric which measures mean throughput and one-, five-, and fifteen-minute
+  * moving average throughputs.
+  *
+  * @see MovingAverages
+  */
+ public class Meter implements Metered {
+ 
+     private final MovingAverages movingAverages;
+     private final LongAdder count = new LongAdder();
+     private final long startTime;
+     private final Clock clock;
+ 
+     /**
+      * Creates a new {@link Meter}.
+      *
+      * @param movingAverages the {@link MovingAverages} implementation to use
+      */
+     public Meter(MovingAverages movingAverages) {
+         this(movingAverages, Clock.defaultClock());
+     }
+ 
+     /**
+      * Creates a new {@link Meter}.
+      */
+     public Meter() {
+         this(Clock.defaultClock());
+     }
+ 
+     /**
+      * Creates a new {@link Meter}.
+      *
+      * @param clock the clock to use for the meter ticks
+      */
+     public Meter(Clock clock) {
+         this(new ExponentialMovingAverages(clock), clock);
+     }
+ 
+     /**
+      * Creates a new {@link Meter}.
+      *
+      * @param movingAverages the {@link MovingAverages} implementation to use
+      * @param clock          the clock to use for the meter ticks
+      */
+     public Meter(MovingAverages movingAverages, Clock clock) {
+         this.movingAverages = movingAverages;
+         this.clock = clock;
+         this.startTime = this.clock.getTick();
+     }
+ 
+     /**
+      * Mark the occurrence of an event.
+      */
+     public void mark() {
+         mark(1);
+     }
+ 
+     /**
+      * Mark the occurrence of a given number of events.
+      *
+      * @param n the number of events
+      */
+     public void mark(long n) {
+         movingAverages.tickIfNecessary();
+         count.add(n);
+         movingAverages.update(n);
+     }
+ 
+     @Override
+     public long getCount() {
+         return count.sum();
+     }
+ 
+     @Override
+     public double getFifteenMinuteRate() {
+         movingAverages.tickIfNecessary();
+         return movingAverages.getM15Rate();
+     }
+ 
+     @Override
+     public double getFiveMinuteRate() {
+         movingAverages.tickIfNecessary();
+         return movingAverages.getM5Rate();
+     }
+ 
+     @Override
+     public double getMeanRate() {
+         if (getCount() == 0) {
+             return 0.0;
+         } else {
+             final double elapsed = clock.getTick() - startTime;
+             return getCount() / elapsed * TimeUnit.SECONDS.toNanos(1);
+         }
+     }
+ 
+     @Override
+     public double getOneMinuteRate() {
+         movingAverages.tickIfNecessary();
+         return movingAverages.getM1Rate();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-13.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-13.html new file mode 100644 index 0000000000..4c84ea39e4 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-13.html @@ -0,0 +1,137 @@ + + + + + + + + Coverage Report > MetricAttribute + + + + + + +
+ + +

Coverage Summary for Class: MetricAttribute (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 95% + + + (19/20) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * Represents attributes of metrics which can be reported.
+  */
+ public enum MetricAttribute {
+ 
+     MAX("max"),
+     MEAN("mean"),
+     MIN("min"),
+     STDDEV("stddev"),
+     P50("p50"),
+     P75("p75"),
+     P95("p95"),
+     P98("p98"),
+     P99("p99"),
+     P999("p999"),
+     COUNT("count"),
+     M1_RATE("m1_rate"),
+     M5_RATE("m5_rate"),
+     M15_RATE("m15_rate"),
+     MEAN_RATE("mean_rate");
+ 
+     private final String code;
+ 
+     MetricAttribute(String code) {
+         this.code = code;
+     }
+ 
+     public String getCode() {
+         return code;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-14.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-14.html new file mode 100644 index 0000000000..bdad190414 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-14.html @@ -0,0 +1,136 @@ + + + + + + + + Coverage Report > MetricFilter + + + + + + +
+ + +

Coverage Summary for Class: MetricFilter (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * A filter used to determine whether or not a metric should be reported, among other things.
+  */
+ public interface MetricFilter {
+     /**
+      * Matches all metrics, regardless of type or name.
+      */
+     MetricFilter ALL = (name, metric) -> true;
+ 
+     static MetricFilter startsWith(String prefix) {
+         return (name, metric) -> name.startsWith(prefix);
+     }
+ 
+     static MetricFilter endsWith(String suffix) {
+         return (name, metric) -> name.endsWith(suffix);
+     }
+ 
+     static MetricFilter contains(String substring) {
+         return (name, metric) -> name.contains(substring);
+     }
+ 
+     /**
+      * Returns {@code true} if the metric matches the filter; {@code false} otherwise.
+      *
+      * @param name   the metric's name
+      * @param metric the metric
+      * @return {@code true} if the metric matches the filter
+      */
+     boolean matches(String name, Metric metric);
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-15.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-15.html new file mode 100644 index 0000000000..60013ec2c8 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-15.html @@ -0,0 +1,1046 @@ + + + + + + + + Coverage Report > MetricRegistry + + + + + + +
+ + +

Coverage Summary for Class: MetricRegistry (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
MetricRegistry + + 100% + + + (41/41) + + + + 22.7% + + + (15/66) + + + + 87.4% + + + (111/127) + +
MetricRegistry$1 + + 36.4% + + + (4/11) + + + + 19% + + + (4/21) + +
MetricRegistry$2 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$3 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$4 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$5 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$6 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$MetricBuilder + + 100% + + + (1/1) + + + + 100% + + + (5/5) + +
MetricRegistry$MetricBuilder$1 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$MetricBuilder$2 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$MetricBuilder$3 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$MetricBuilder$4 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$MetricBuilder$5 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$MetricSupplier
Total + + 91.6% + + + (76/83) + + + + 22.7% + + + (15/66) + + + + 82% + + + (150/183) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.Collections;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.SortedMap;
+ import java.util.SortedSet;
+ import java.util.TreeMap;
+ import java.util.TreeSet;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ import java.util.concurrent.CopyOnWriteArrayList;
+ 
+ /**
+  * A registry of metric instances.
+  */
+ public class MetricRegistry implements MetricSet {
+     /**
+      * Concatenates elements to form a dotted name, eliding any null values or empty strings.
+      *
+      * @param name  the first element of the name
+      * @param names the remaining elements of the name
+      * @return {@code name} and {@code names} concatenated by periods
+      */
+     public static String name(String name, String... names) {
+         final StringBuilder builder = new StringBuilder();
+         append(builder, name);
+         if (names != null) {
+             for (String s : names) {
+                 append(builder, s);
+             }
+         }
+         return builder.toString();
+     }
+ 
+     /**
+      * Concatenates a class name and elements to form a dotted name, eliding any null values or
+      * empty strings.
+      *
+      * @param klass the first element of the name
+      * @param names the remaining elements of the name
+      * @return {@code klass} and {@code names} concatenated by periods
+      */
+     public static String name(Class<?> klass, String... names) {
+         return name(klass.getName(), names);
+     }
+ 
+     private static void append(StringBuilder builder, String part) {
+         if (part != null && !part.isEmpty()) {
+             if (builder.length() > 0) {
+                 builder.append('.');
+             }
+             builder.append(part);
+         }
+     }
+ 
+     private final ConcurrentMap<String, Metric> metrics;
+     private final List<MetricRegistryListener> listeners;
+ 
+     /**
+      * Creates a new {@link MetricRegistry}.
+      */
+     public MetricRegistry() {
+         this.metrics = buildMap();
+         this.listeners = new CopyOnWriteArrayList<>();
+     }
+ 
+     /**
+      * Creates a new {@link ConcurrentMap} implementation for use inside the registry. Override this
+      * to create a {@link MetricRegistry} with space- or time-bounded metric lifecycles, for
+      * example.
+      *
+      * @return a new {@link ConcurrentMap}
+      */
+     protected ConcurrentMap<String, Metric> buildMap() {
+         return new ConcurrentHashMap<>();
+     }
+ 
+     /**
+      * Given a {@link Gauge}, registers it under the given name and returns it
+      *
+      * @param name the name of the gauge
+      * @param <T>  the type of the gauge's value
+      * @return the registered {@link Gauge}
+      * @since 4.2.10
+      */
+     public <T> Gauge<T> registerGauge(String name, Gauge<T> metric) throws IllegalArgumentException {
+         return register(name, metric);
+     }
+ 
+     /**
+      * Given a {@link Metric}, registers it under the given name.
+      *
+      * @param name   the name of the metric
+      * @param metric the metric
+      * @param <T>    the type of the metric
+      * @return {@code metric}
+      * @throws IllegalArgumentException if the name is already registered or metric variable is null
+      */
+     @SuppressWarnings("unchecked")
+     public <T extends Metric> T register(String name, T metric) throws IllegalArgumentException {
+ 
+         if (metric == null) {
+             throw new NullPointerException("metric == null");
+         }
+ 
+         if (metric instanceof MetricRegistry) {
+             final MetricRegistry childRegistry = (MetricRegistry) metric;
+             final String childName = name;
+             childRegistry.addListener(new MetricRegistryListener() {
+                 @Override
+                 public void onGaugeAdded(String name, Gauge<?> gauge) {
+                     register(name(childName, name), gauge);
+                 }
+ 
+                 @Override
+                 public void onGaugeRemoved(String name) {
+                     remove(name(childName, name));
+                 }
+ 
+                 @Override
+                 public void onCounterAdded(String name, Counter counter) {
+                     register(name(childName, name), counter);
+                 }
+ 
+                 @Override
+                 public void onCounterRemoved(String name) {
+                     remove(name(childName, name));
+                 }
+ 
+                 @Override
+                 public void onHistogramAdded(String name, Histogram histogram) {
+                     register(name(childName, name), histogram);
+                 }
+ 
+                 @Override
+                 public void onHistogramRemoved(String name) {
+                     remove(name(childName, name));
+                 }
+ 
+                 @Override
+                 public void onMeterAdded(String name, Meter meter) {
+                     register(name(childName, name), meter);
+                 }
+ 
+                 @Override
+                 public void onMeterRemoved(String name) {
+                     remove(name(childName, name));
+                 }
+ 
+                 @Override
+                 public void onTimerAdded(String name, Timer timer) {
+                     register(name(childName, name), timer);
+                 }
+ 
+                 @Override
+                 public void onTimerRemoved(String name) {
+                     remove(name(childName, name));
+                 }
+             });
+         } else if (metric instanceof MetricSet) {
+             registerAll(name, (MetricSet) metric);
+         } else {
+             final Metric existing = metrics.putIfAbsent(name, metric);
+             if (existing == null) {
+                 onMetricAdded(name, metric);
+             } else {
+                 throw new IllegalArgumentException("A metric named " + name + " already exists");
+             }
+         }
+         return metric;
+     }
+ 
+     /**
+      * Given a metric set, registers them.
+      *
+      * @param metrics a set of metrics
+      * @throws IllegalArgumentException if any of the names are already registered
+      */
+     public void registerAll(MetricSet metrics) throws IllegalArgumentException {
+         registerAll(null, metrics);
+     }
+ 
+     /**
+      * Return the {@link Counter} registered under this name; or create and register
+      * a new {@link Counter} if none is registered.
+      *
+      * @param name the name of the metric
+      * @return a new or pre-existing {@link Counter}
+      */
+     public Counter counter(String name) {
+         return getOrAdd(name, MetricBuilder.COUNTERS);
+     }
+ 
+     /**
+      * Return the {@link Counter} registered under this name; or create and register
+      * a new {@link Counter} using the provided MetricSupplier if none is registered.
+      *
+      * @param name     the name of the metric
+      * @param supplier a MetricSupplier that can be used to manufacture a counter.
+      * @return a new or pre-existing {@link Counter}
+      */
+     public Counter counter(String name, final MetricSupplier<Counter> supplier) {
+         return getOrAdd(name, new MetricBuilder<Counter>() {
+             @Override
+             public Counter newMetric() {
+                 return supplier.newMetric();
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Counter.class.isInstance(metric);
+             }
+         });
+     }
+ 
+     /**
+      * Return the {@link Histogram} registered under this name; or create and register
+      * a new {@link Histogram} if none is registered.
+      *
+      * @param name the name of the metric
+      * @return a new or pre-existing {@link Histogram}
+      */
+     public Histogram histogram(String name) {
+         return getOrAdd(name, MetricBuilder.HISTOGRAMS);
+     }
+ 
+     /**
+      * Return the {@link Histogram} registered under this name; or create and register
+      * a new {@link Histogram} using the provided MetricSupplier if none is registered.
+      *
+      * @param name     the name of the metric
+      * @param supplier a MetricSupplier that can be used to manufacture a histogram
+      * @return a new or pre-existing {@link Histogram}
+      */
+     public Histogram histogram(String name, final MetricSupplier<Histogram> supplier) {
+         return getOrAdd(name, new MetricBuilder<Histogram>() {
+             @Override
+             public Histogram newMetric() {
+                 return supplier.newMetric();
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Histogram.class.isInstance(metric);
+             }
+         });
+     }
+ 
+     /**
+      * Return the {@link Meter} registered under this name; or create and register
+      * a new {@link Meter} if none is registered.
+      *
+      * @param name the name of the metric
+      * @return a new or pre-existing {@link Meter}
+      */
+     public Meter meter(String name) {
+         return getOrAdd(name, MetricBuilder.METERS);
+     }
+ 
+     /**
+      * Return the {@link Meter} registered under this name; or create and register
+      * a new {@link Meter} using the provided MetricSupplier if none is registered.
+      *
+      * @param name     the name of the metric
+      * @param supplier a MetricSupplier that can be used to manufacture a Meter
+      * @return a new or pre-existing {@link Meter}
+      */
+     public Meter meter(String name, final MetricSupplier<Meter> supplier) {
+         return getOrAdd(name, new MetricBuilder<Meter>() {
+             @Override
+             public Meter newMetric() {
+                 return supplier.newMetric();
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Meter.class.isInstance(metric);
+             }
+         });
+     }
+ 
+     /**
+      * Return the {@link Timer} registered under this name; or create and register
+      * a new {@link Timer} if none is registered.
+      *
+      * @param name the name of the metric
+      * @return a new or pre-existing {@link Timer}
+      */
+     public Timer timer(String name) {
+         return getOrAdd(name, MetricBuilder.TIMERS);
+     }
+ 
+     /**
+      * Return the {@link Timer} registered under this name; or create and register
+      * a new {@link Timer} using the provided MetricSupplier if none is registered.
+      *
+      * @param name     the name of the metric
+      * @param supplier a MetricSupplier that can be used to manufacture a Timer
+      * @return a new or pre-existing {@link Timer}
+      */
+     public Timer timer(String name, final MetricSupplier<Timer> supplier) {
+         return getOrAdd(name, new MetricBuilder<Timer>() {
+             @Override
+             public Timer newMetric() {
+                 return supplier.newMetric();
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Timer.class.isInstance(metric);
+             }
+         });
+     }
+ 
+     /**
+      * Return the {@link Gauge} registered under this name; or create and register
+      * a new {@link SettableGauge} if none is registered.
+      *
+      * @param name the name of the metric
+      * @return a pre-existing {@link Gauge} or a new {@link SettableGauge}
+      * @since 4.2
+      */
+     @SuppressWarnings({"rawtypes", "unchecked"})
+     public <T extends Gauge> T gauge(String name) {
+         return (T) getOrAdd(name, MetricBuilder.GAUGES);
+     }
+ 
+     /**
+      * Return the {@link Gauge} registered under this name; or create and register
+      * a new {@link Gauge} using the provided MetricSupplier if none is registered.
+      *
+      * @param name     the name of the metric
+      * @param supplier a MetricSupplier that can be used to manufacture a Gauge
+      * @return a new or pre-existing {@link Gauge}
+      */
+     @SuppressWarnings("rawtypes")
+     public <T extends Gauge> T gauge(String name, final MetricSupplier<T> supplier) {
+         return getOrAdd(name, new MetricBuilder<T>() {
+             @Override
+             public T newMetric() {
+                 return supplier.newMetric();
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Gauge.class.isInstance(metric);
+             }
+         });
+     }
+ 
+ 
+     /**
+      * Removes the metric with the given name.
+      *
+      * @param name the name of the metric
+      * @return whether or not the metric was removed
+      */
+     public boolean remove(String name) {
+         final Metric metric = metrics.remove(name);
+         if (metric != null) {
+             onMetricRemoved(name, metric);
+             return true;
+         }
+         return false;
+     }
+ 
+     /**
+      * Removes all metrics which match the given filter.
+      *
+      * @param filter a filter
+      */
+     public void removeMatching(MetricFilter filter) {
+         for (Map.Entry<String, Metric> entry : metrics.entrySet()) {
+             if (filter.matches(entry.getKey(), entry.getValue())) {
+                 remove(entry.getKey());
+             }
+         }
+     }
+ 
+     /**
+      * Adds a {@link MetricRegistryListener} to a collection of listeners that will be notified on
+      * metric creation.  Listeners will be notified in the order in which they are added.
+      * <p>
+      * <b>N.B.:</b> The listener will be notified of all existing metrics when it first registers.
+      *
+      * @param listener the listener that will be notified
+      */
+     public void addListener(MetricRegistryListener listener) {
+         listeners.add(listener);
+ 
+         for (Map.Entry<String, Metric> entry : metrics.entrySet()) {
+             notifyListenerOfAddedMetric(listener, entry.getValue(), entry.getKey());
+         }
+     }
+ 
+     /**
+      * Removes a {@link MetricRegistryListener} from this registry's collection of listeners.
+      *
+      * @param listener the listener that will be removed
+      */
+     public void removeListener(MetricRegistryListener listener) {
+         listeners.remove(listener);
+     }
+ 
+     /**
+      * Returns a set of the names of all the metrics in the registry.
+      *
+      * @return the names of all the metrics
+      */
+     public SortedSet<String> getNames() {
+         return Collections.unmodifiableSortedSet(new TreeSet<>(metrics.keySet()));
+     }
+ 
+     /**
+      * Returns a map of all the gauges in the registry and their names.
+      *
+      * @return all the gauges in the registry
+      */
+     @SuppressWarnings("rawtypes")
+     public SortedMap<String, Gauge> getGauges() {
+         return getGauges(MetricFilter.ALL);
+     }
+ 
+     /**
+      * Returns a map of all the gauges in the registry and their names which match the given filter.
+      *
+      * @param filter the metric filter to match
+      * @return all the gauges in the registry
+      */
+     @SuppressWarnings("rawtypes")
+     public SortedMap<String, Gauge> getGauges(MetricFilter filter) {
+         return getMetrics(Gauge.class, filter);
+     }
+ 
+     /**
+      * Returns a map of all the counters in the registry and their names.
+      *
+      * @return all the counters in the registry
+      */
+     public SortedMap<String, Counter> getCounters() {
+         return getCounters(MetricFilter.ALL);
+     }
+ 
+     /**
+      * Returns a map of all the counters in the registry and their names which match the given
+      * filter.
+      *
+      * @param filter the metric filter to match
+      * @return all the counters in the registry
+      */
+     public SortedMap<String, Counter> getCounters(MetricFilter filter) {
+         return getMetrics(Counter.class, filter);
+     }
+ 
+     /**
+      * Returns a map of all the histograms in the registry and their names.
+      *
+      * @return all the histograms in the registry
+      */
+     public SortedMap<String, Histogram> getHistograms() {
+         return getHistograms(MetricFilter.ALL);
+     }
+ 
+     /**
+      * Returns a map of all the histograms in the registry and their names which match the given
+      * filter.
+      *
+      * @param filter the metric filter to match
+      * @return all the histograms in the registry
+      */
+     public SortedMap<String, Histogram> getHistograms(MetricFilter filter) {
+         return getMetrics(Histogram.class, filter);
+     }
+ 
+     /**
+      * Returns a map of all the meters in the registry and their names.
+      *
+      * @return all the meters in the registry
+      */
+     public SortedMap<String, Meter> getMeters() {
+         return getMeters(MetricFilter.ALL);
+     }
+ 
+     /**
+      * Returns a map of all the meters in the registry and their names which match the given filter.
+      *
+      * @param filter the metric filter to match
+      * @return all the meters in the registry
+      */
+     public SortedMap<String, Meter> getMeters(MetricFilter filter) {
+         return getMetrics(Meter.class, filter);
+     }
+ 
+     /**
+      * Returns a map of all the timers in the registry and their names.
+      *
+      * @return all the timers in the registry
+      */
+     public SortedMap<String, Timer> getTimers() {
+         return getTimers(MetricFilter.ALL);
+     }
+ 
+     /**
+      * Returns a map of all the timers in the registry and their names which match the given filter.
+      *
+      * @param filter the metric filter to match
+      * @return all the timers in the registry
+      */
+     public SortedMap<String, Timer> getTimers(MetricFilter filter) {
+         return getMetrics(Timer.class, filter);
+     }
+ 
+     @SuppressWarnings("unchecked")
+     private <T extends Metric> T getOrAdd(String name, MetricBuilder<T> builder) {
+         final Metric metric = metrics.get(name);
+         if (builder.isInstance(metric)) {
+             return (T) metric;
+         } else if (metric == null) {
+             try {
+                 return register(name, builder.newMetric());
+             } catch (IllegalArgumentException e) {
+                 final Metric added = metrics.get(name);
+                 if (builder.isInstance(added)) {
+                     return (T) added;
+                 }
+             }
+         }
+         throw new IllegalArgumentException(name + " is already used for a different type of metric");
+     }
+ 
+     @SuppressWarnings("unchecked")
+     private <T extends Metric> SortedMap<String, T> getMetrics(Class<T> klass, MetricFilter filter) {
+         final TreeMap<String, T> timers = new TreeMap<>();
+         for (Map.Entry<String, Metric> entry : metrics.entrySet()) {
+             if (klass.isInstance(entry.getValue()) && filter.matches(entry.getKey(),
+                     entry.getValue())) {
+                 timers.put(entry.getKey(), (T) entry.getValue());
+             }
+         }
+         return Collections.unmodifiableSortedMap(timers);
+     }
+ 
+     private void onMetricAdded(String name, Metric metric) {
+         for (MetricRegistryListener listener : listeners) {
+             notifyListenerOfAddedMetric(listener, metric, name);
+         }
+     }
+ 
+     private void notifyListenerOfAddedMetric(MetricRegistryListener listener, Metric metric, String name) {
+         if (metric instanceof Gauge) {
+             listener.onGaugeAdded(name, (Gauge<?>) metric);
+         } else if (metric instanceof Counter) {
+             listener.onCounterAdded(name, (Counter) metric);
+         } else if (metric instanceof Histogram) {
+             listener.onHistogramAdded(name, (Histogram) metric);
+         } else if (metric instanceof Meter) {
+             listener.onMeterAdded(name, (Meter) metric);
+         } else if (metric instanceof Timer) {
+             listener.onTimerAdded(name, (Timer) metric);
+         } else {
+             throw new IllegalArgumentException("Unknown metric type: " + metric.getClass());
+         }
+     }
+ 
+     private void onMetricRemoved(String name, Metric metric) {
+         for (MetricRegistryListener listener : listeners) {
+             notifyListenerOfRemovedMetric(name, metric, listener);
+         }
+     }
+ 
+     private void notifyListenerOfRemovedMetric(String name, Metric metric, MetricRegistryListener listener) {
+         if (metric instanceof Gauge) {
+             listener.onGaugeRemoved(name);
+         } else if (metric instanceof Counter) {
+             listener.onCounterRemoved(name);
+         } else if (metric instanceof Histogram) {
+             listener.onHistogramRemoved(name);
+         } else if (metric instanceof Meter) {
+             listener.onMeterRemoved(name);
+         } else if (metric instanceof Timer) {
+             listener.onTimerRemoved(name);
+         } else {
+             throw new IllegalArgumentException("Unknown metric type: " + metric.getClass());
+         }
+     }
+ 
+     /**
+      * Given a metric set, registers them with the given prefix prepended to their names.
+      *
+      * @param prefix a name prefix
+      * @param metrics a set of metrics
+      * @throws IllegalArgumentException if any of the names are already registered
+      */
+     public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
+         for (Map.Entry<String, Metric> entry : metrics.getMetrics().entrySet()) {
+             if (entry.getValue() instanceof MetricSet) {
+                 registerAll(name(prefix, entry.getKey()), (MetricSet) entry.getValue());
+             } else {
+                 register(name(prefix, entry.getKey()), entry.getValue());
+             }
+         }
+     }
+ 
+     @Override
+     public Map<String, Metric> getMetrics() {
+         return Collections.unmodifiableMap(metrics);
+     }
+ 
+     @FunctionalInterface
+     public interface MetricSupplier<T extends Metric> {
+         T newMetric();
+     }
+ 
+     /**
+      * A quick and easy way of capturing the notion of default metrics.
+      */
+     private interface MetricBuilder<T extends Metric> {
+         MetricBuilder<Counter> COUNTERS = new MetricBuilder<Counter>() {
+             @Override
+             public Counter newMetric() {
+                 return new Counter();
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Counter.class.isInstance(metric);
+             }
+         };
+ 
+         MetricBuilder<Histogram> HISTOGRAMS = new MetricBuilder<Histogram>() {
+             @Override
+             public Histogram newMetric() {
+                 return new Histogram(new ExponentiallyDecayingReservoir());
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Histogram.class.isInstance(metric);
+             }
+         };
+ 
+         MetricBuilder<Meter> METERS = new MetricBuilder<Meter>() {
+             @Override
+             public Meter newMetric() {
+                 return new Meter();
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Meter.class.isInstance(metric);
+             }
+         };
+ 
+         MetricBuilder<Timer> TIMERS = new MetricBuilder<Timer>() {
+             @Override
+             public Timer newMetric() {
+                 return new Timer();
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Timer.class.isInstance(metric);
+             }
+         };
+ 
+         @SuppressWarnings("rawtypes")
+         MetricBuilder<Gauge> GAUGES = new MetricBuilder<Gauge>() {
+             @Override
+             public Gauge newMetric() {
+                 return new DefaultSettableGauge<>();
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Gauge.class.isInstance(metric);
+             }
+         };
+ 
+         T newMetric();
+ 
+         boolean isInstance(Metric metric);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-16.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-16.html new file mode 100644 index 0000000000..b5ceaa4b12 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-16.html @@ -0,0 +1,275 @@ + + + + + + + + Coverage Report > MetricRegistryListener + + + + + + +
+ + +

Coverage Summary for Class: MetricRegistryListener (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
MetricRegistryListener$Base + + 100% + + + (11/11) + + + + 100% + + + (11/11) + +
MetricRegistryListener$MockitoMock$bBAqK8Rp
MetricRegistryListener$MockitoMock$bBAqK8Rp$auxiliary$kc3WhlPd
MetricRegistryListener$MockitoMock$bBAqK8Rp$auxiliary$WxcZc5Nx
MetricRegistryListener$MockitoMock$EMx0XVUf
MetricRegistryListener$MockitoMock$EMx0XVUf$auxiliary$krK504rI
MetricRegistryListener$MockitoMock$EMx0XVUf$auxiliary$wKr6IMOU
MetricRegistryListener$MockitoMock$tHZUiESM
MetricRegistryListener$MockitoMock$tHZUiESM$auxiliary$9DOHHjXd
MetricRegistryListener$MockitoMock$tHZUiESM$auxiliary$ztuf8DfG
MetricRegistryListener$MockitoMock$YQLkFUNB
MetricRegistryListener$MockitoMock$YQLkFUNB$auxiliary$hFZQcRWP
MetricRegistryListener$MockitoMock$YQLkFUNB$auxiliary$Z8XAJUEo
Total + + 100% + + + (11/11) + + + + 100% + + + (11/11) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.EventListener;
+ 
+ /**
+  * Listeners for events from the registry.  Listeners must be thread-safe.
+  */
+ public interface MetricRegistryListener extends EventListener {
+     /**
+      * A no-op implementation of {@link MetricRegistryListener}.
+      */
+     abstract class Base implements MetricRegistryListener {
+         @Override
+         public void onGaugeAdded(String name, Gauge<?> gauge) {
+         }
+ 
+         @Override
+         public void onGaugeRemoved(String name) {
+         }
+ 
+         @Override
+         public void onCounterAdded(String name, Counter counter) {
+         }
+ 
+         @Override
+         public void onCounterRemoved(String name) {
+         }
+ 
+         @Override
+         public void onHistogramAdded(String name, Histogram histogram) {
+         }
+ 
+         @Override
+         public void onHistogramRemoved(String name) {
+         }
+ 
+         @Override
+         public void onMeterAdded(String name, Meter meter) {
+         }
+ 
+         @Override
+         public void onMeterRemoved(String name) {
+         }
+ 
+         @Override
+         public void onTimerAdded(String name, Timer timer) {
+         }
+ 
+         @Override
+         public void onTimerRemoved(String name) {
+         }
+     }
+ 
+     /**
+      * Called when a {@link Gauge} is added to the registry.
+      *
+      * @param name  the gauge's name
+      * @param gauge the gauge
+      */
+     void onGaugeAdded(String name, Gauge<?> gauge);
+ 
+     /**
+      * Called when a {@link Gauge} is removed from the registry.
+      *
+      * @param name the gauge's name
+      */
+     void onGaugeRemoved(String name);
+ 
+     /**
+      * Called when a {@link Counter} is added to the registry.
+      *
+      * @param name    the counter's name
+      * @param counter the counter
+      */
+     void onCounterAdded(String name, Counter counter);
+ 
+     /**
+      * Called when a {@link Counter} is removed from the registry.
+      *
+      * @param name the counter's name
+      */
+     void onCounterRemoved(String name);
+ 
+     /**
+      * Called when a {@link Histogram} is added to the registry.
+      *
+      * @param name      the histogram's name
+      * @param histogram the histogram
+      */
+     void onHistogramAdded(String name, Histogram histogram);
+ 
+     /**
+      * Called when a {@link Histogram} is removed from the registry.
+      *
+      * @param name the histogram's name
+      */
+     void onHistogramRemoved(String name);
+ 
+     /**
+      * Called when a {@link Meter} is added to the registry.
+      *
+      * @param name  the meter's name
+      * @param meter the meter
+      */
+     void onMeterAdded(String name, Meter meter);
+ 
+     /**
+      * Called when a {@link Meter} is removed from the registry.
+      *
+      * @param name the meter's name
+      */
+     void onMeterRemoved(String name);
+ 
+     /**
+      * Called when a {@link Timer} is added to the registry.
+      *
+      * @param name  the timer's name
+      * @param timer the timer
+      */
+     void onTimerAdded(String name, Timer timer);
+ 
+     /**
+      * Called when a {@link Timer} is removed from the registry.
+      *
+      * @param name the timer's name
+      */
+     void onTimerRemoved(String name);
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-17.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-17.html new file mode 100644 index 0000000000..c9b6d91bf9 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-17.html @@ -0,0 +1,1117 @@ + + + + + + + + Coverage Report > NoopMetricRegistry + + + + + + +
+ + +

Coverage Summary for Class: NoopMetricRegistry (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
NoopMetricRegistry + + 81.2% + + + (26/32) + + + + 0% + + + (0/2) + + + + 82.4% + + + (28/34) + +
NoopMetricRegistry$1
NoopMetricRegistry$EmptyConcurrentMap + + 5.9% + + + (1/17) + + + + 5.9% + + + (1/17) + +
NoopMetricRegistry$EmptySnapshot + + 0% + + + (0/10) + + + + 0% + + + (0/11) + +
NoopMetricRegistry$NoopCounter + + 28.6% + + + (2/7) + + + + 28.6% + + + (2/7) + +
NoopMetricRegistry$NoopGauge + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
NoopMetricRegistry$NoopHistogram + + 42.9% + + + (3/7) + + + + 44.4% + + + (4/9) + +
NoopMetricRegistry$NoopHistogram$1 + + 25% + + + (1/4) + + + + 25% + + + (1/4) + +
NoopMetricRegistry$NoopMeter + + 22.2% + + + (2/9) + + + + 22.2% + + + (2/9) + +
NoopMetricRegistry$NoopTimer + + 14.3% + + + (2/14) + + + + 20% + + + (3/15) + +
NoopMetricRegistry$NoopTimer$Context + + 60% + + + (3/5) + + + + 50% + + + (3/6) + +
NoopMetricRegistry$NoopTimer$Context$1 + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
Total + + 39.6% + + + (44/111) + + + + 0% + + + (0/2) + + + + 40.7% + + + (48/118) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.io.OutputStream;
+ import java.time.Duration;
+ import java.util.Collection;
+ import java.util.Collections;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.SortedMap;
+ import java.util.SortedSet;
+ import java.util.concurrent.Callable;
+ import java.util.concurrent.ConcurrentMap;
+ import java.util.concurrent.TimeUnit;
+ import java.util.function.Supplier;
+ 
+ /**
+  * A registry of metric instances which never creates or registers any metrics and returns no-op implementations of any metric type.
+  *
+  * @since 4.1.17
+  */
+ public final class NoopMetricRegistry extends MetricRegistry {
+     private static final EmptyConcurrentMap<String, Metric> EMPTY_CONCURRENT_MAP = new EmptyConcurrentMap<>();
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     protected ConcurrentMap<String, Metric> buildMap() {
+         return EMPTY_CONCURRENT_MAP;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T extends Metric> T register(String name, T metric) throws IllegalArgumentException {
+         if (metric == null) {
+             throw new NullPointerException("metric == null");
+         }
+         return metric;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void registerAll(MetricSet metrics) throws IllegalArgumentException {
+         // NOP
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Counter counter(String name) {
+         return NoopCounter.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Counter counter(String name, MetricSupplier<Counter> supplier) {
+         return NoopCounter.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Histogram histogram(String name) {
+         return NoopHistogram.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Histogram histogram(String name, MetricSupplier<Histogram> supplier) {
+         return NoopHistogram.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Meter meter(String name) {
+         return NoopMeter.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Meter meter(String name, MetricSupplier<Meter> supplier) {
+         return NoopMeter.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Timer timer(String name) {
+         return NoopTimer.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Timer timer(String name, MetricSupplier<Timer> supplier) {
+         return NoopTimer.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      *
+      * @since 4.2
+      */
+     @Override
+     @SuppressWarnings({"rawtypes", "unchecked"})
+     public <T extends Gauge> T gauge(String name) {
+         return (T) NoopGauge.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     @SuppressWarnings({"rawtypes", "unchecked"})
+     public <T extends Gauge> T gauge(String name, MetricSupplier<T> supplier) {
+         return (T) NoopGauge.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public boolean remove(String name) {
+         return false;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void removeMatching(MetricFilter filter) {
+         // NOP
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void addListener(MetricRegistryListener listener) {
+         // NOP
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void removeListener(MetricRegistryListener listener) {
+         // NOP
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public SortedSet<String> getNames() {
+         return Collections.emptySortedSet();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     @SuppressWarnings("rawtypes")
+     public SortedMap<String, Gauge> getGauges() {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     @SuppressWarnings("rawtypes")
+     public SortedMap<String, Gauge> getGauges(MetricFilter filter) {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public SortedMap<String, Counter> getCounters() {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public SortedMap<String, Counter> getCounters(MetricFilter filter) {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public SortedMap<String, Histogram> getHistograms() {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public SortedMap<String, Histogram> getHistograms(MetricFilter filter) {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public SortedMap<String, Meter> getMeters() {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public SortedMap<String, Meter> getMeters(MetricFilter filter) {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public SortedMap<String, Timer> getTimers() {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public SortedMap<String, Timer> getTimers(MetricFilter filter) {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
+         // NOP
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Map<String, Metric> getMetrics() {
+         return Collections.emptyMap();
+     }
+ 
+     static final class NoopGauge<T> implements Gauge<T> {
+         private static final NoopGauge<?> INSTANCE = new NoopGauge<>();
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public T getValue() {
+             return null;
+         }
+     }
+ 
+     private static final class EmptySnapshot extends Snapshot {
+         private static final EmptySnapshot INSTANCE = new EmptySnapshot();
+         private static final long[] EMPTY_LONG_ARRAY = new long[0];
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getValue(double quantile) {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public long[] getValues() {
+             return EMPTY_LONG_ARRAY;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public int size() {
+             return 0;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public long getMax() {
+             return 0L;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getMean() {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public long getMin() {
+             return 0L;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getStdDev() {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void dump(OutputStream output) {
+             // NOP
+         }
+     }
+ 
+     static final class NoopTimer extends Timer {
+         private static final NoopTimer INSTANCE = new NoopTimer();
+         private static final Timer.Context CONTEXT = new NoopTimer.Context();
+ 
+         private static class Context extends Timer.Context {
+             private static final Clock CLOCK = new Clock() {
+                 /**
+                  * {@inheritDoc}
+                  */
+                 @Override
+                 public long getTick() {
+                     return 0L;
+                 }
+ 
+                 /**
+                  * {@inheritDoc}
+                  */
+                 @Override
+                 public long getTime() {
+                     return 0L;
+                 }
+             };
+ 
+             private Context() {
+                 super(INSTANCE, CLOCK);
+             }
+ 
+             /**
+              * {@inheritDoc}
+              */
+             @Override
+             public long stop() {
+                 return 0L;
+             }
+ 
+             /**
+              * {@inheritDoc}
+              */
+             @Override
+             public void close() {
+                 // NOP
+             }
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void update(long duration, TimeUnit unit) {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void update(Duration duration) {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public <T> T time(Callable<T> event) throws Exception {
+             return event.call();
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public <T> T timeSupplier(Supplier<T> event) {
+             return event.get();
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void time(Runnable event) {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public Timer.Context time() {
+             return CONTEXT;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public long getCount() {
+             return 0L;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getFifteenMinuteRate() {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getFiveMinuteRate() {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getMeanRate() {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getOneMinuteRate() {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public Snapshot getSnapshot() {
+             return EmptySnapshot.INSTANCE;
+         }
+     }
+ 
+     static final class NoopHistogram extends Histogram {
+         private static final NoopHistogram INSTANCE = new NoopHistogram();
+         private static final Reservoir EMPTY_RESERVOIR = new Reservoir() {
+             /**
+              * {@inheritDoc}
+              */
+             @Override
+             public int size() {
+                 return 0;
+             }
+ 
+             /**
+              * {@inheritDoc}
+              */
+             @Override
+             public void update(long value) {
+                 // NOP
+             }
+ 
+             /**
+              * {@inheritDoc}
+              */
+             @Override
+             public Snapshot getSnapshot() {
+                 return EmptySnapshot.INSTANCE;
+             }
+         };
+ 
+         private NoopHistogram() {
+             super(EMPTY_RESERVOIR);
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void update(int value) {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void update(long value) {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public long getCount() {
+             return 0L;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public Snapshot getSnapshot() {
+             return EmptySnapshot.INSTANCE;
+         }
+     }
+ 
+     static final class NoopCounter extends Counter {
+         private static final NoopCounter INSTANCE = new NoopCounter();
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void inc() {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void inc(long n) {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void dec() {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void dec(long n) {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public long getCount() {
+             return 0L;
+         }
+     }
+ 
+     static final class NoopMeter extends Meter {
+         private static final NoopMeter INSTANCE = new NoopMeter();
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void mark() {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void mark(long n) {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public long getCount() {
+             return 0L;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getFifteenMinuteRate() {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getFiveMinuteRate() {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getMeanRate() {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getOneMinuteRate() {
+             return 0D;
+         }
+     }
+ 
+     private static final class EmptyConcurrentMap<K, V> implements ConcurrentMap<K, V> {
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public V putIfAbsent(K key, V value) {
+             return null;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public boolean remove(Object key, Object value) {
+             return false;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public boolean replace(K key, V oldValue, V newValue) {
+             return false;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public V replace(K key, V value) {
+             return null;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public int size() {
+             return 0;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public boolean isEmpty() {
+             return true;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public boolean containsKey(Object key) {
+             return false;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public boolean containsValue(Object value) {
+             return false;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public V get(Object key) {
+             return null;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public V put(K key, V value) {
+             return null;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public V remove(Object key) {
+             return null;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void putAll(Map<? extends K, ? extends V> m) {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void clear() {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public Set<K> keySet() {
+             return Collections.emptySet();
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public Collection<V> values() {
+             return Collections.emptySet();
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public Set<Entry<K, V>> entrySet() {
+             return Collections.emptySet();
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-18.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-18.html new file mode 100644 index 0000000000..844c31fbb8 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-18.html @@ -0,0 +1,216 @@ + + + + + + + + Coverage Report > RatioGauge + + + + + + +
+ + +

Coverage Summary for Class: RatioGauge (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (2/2) + +
RatioGauge$Ratio + + 100% + + + (4/4) + + + + 0% + + + (0/6) + + + + 90% + + + (9/10) + +
Total + + 100% + + + (6/6) + + + + 0% + + + (0/6) + + + + 91.7% + + + (11/12) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import static java.lang.Double.isInfinite;
+ import static java.lang.Double.isNaN;
+ 
+ /**
+  * A gauge which measures the ratio of one value to another.
+  * <p>
+  * If the denominator is zero, not a number, or infinite, the resulting ratio is not a number.
+  */
+ public abstract class RatioGauge implements Gauge<Double> {
+     /**
+      * A ratio of one quantity to another.
+      */
+     public static class Ratio {
+         /**
+          * Creates a new ratio with the given numerator and denominator.
+          *
+          * @param numerator   the numerator of the ratio
+          * @param denominator the denominator of the ratio
+          * @return {@code numerator:denominator}
+          */
+         public static Ratio of(double numerator, double denominator) {
+             return new Ratio(numerator, denominator);
+         }
+ 
+         private final double numerator;
+         private final double denominator;
+ 
+         private Ratio(double numerator, double denominator) {
+             this.numerator = numerator;
+             this.denominator = denominator;
+         }
+ 
+         /**
+          * Returns the ratio, which is either a {@code double} between 0 and 1 (inclusive) or
+          * {@code NaN}.
+          *
+          * @return the ratio
+          */
+         public double getValue() {
+             final double d = denominator;
+             if (isNaN(d) || isInfinite(d) || d == 0) {
+                 return Double.NaN;
+             }
+             return numerator / d;
+         }
+ 
+         @Override
+         public String toString() {
+             return numerator + ":" + denominator;
+         }
+     }
+ 
+     /**
+      * Returns the {@link Ratio} which is the gauge's current value.
+      *
+      * @return the {@link Ratio} which is the gauge's current value
+      */
+     protected abstract Ratio getRatio();
+ 
+     @Override
+     public Double getValue() {
+         return getRatio().getValue();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-19.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-19.html new file mode 100644 index 0000000000..32e2e5e8e7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-19.html @@ -0,0 +1,495 @@ + + + + + + + + Coverage Report > ScheduledReporter + + + + + + +
+ + +

Coverage Summary for Class: ScheduledReporter (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
ScheduledReporter + + 91.3% + + + (21/23) + + + + 0% + + + (0/20) + + + + 65.8% + + + (52/79) + +
ScheduledReporter$1
ScheduledReporter$NamedThreadFactory + + 100% + + + (3/3) + + + + 0% + + + (0/4) + + + + 83.3% + + + (10/12) + +
Total + + 92.3% + + + (24/26) + + + + 0% + + + (0/24) + + + + 68.1% + + + (62/91) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import java.io.Closeable;
+ import java.util.Collections;
+ import java.util.Locale;
+ import java.util.Set;
+ import java.util.SortedMap;
+ import java.util.concurrent.Executor;
+ import java.util.concurrent.Executors;
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.ScheduledFuture;
+ import java.util.concurrent.ThreadFactory;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicInteger;
+ 
+ /**
+  * The abstract base class for all scheduled reporters (i.e., reporters which process a registry's
+  * metrics periodically).
+  *
+  * @see ConsoleReporter
+  * @see CsvReporter
+  * @see Slf4jReporter
+  */
+ public abstract class ScheduledReporter implements Closeable, Reporter {
+ 
+     private static final Logger LOG = LoggerFactory.getLogger(ScheduledReporter.class);
+ 
+     /**
+      * A simple named thread factory.
+      */
+     @SuppressWarnings("NullableProblems")
+     private static class NamedThreadFactory implements ThreadFactory {
+         private final ThreadGroup group;
+         private final AtomicInteger threadNumber = new AtomicInteger(1);
+         private final String namePrefix;
+ 
+         private NamedThreadFactory(String name) {
+             final SecurityManager s = System.getSecurityManager();
+             this.group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();
+             this.namePrefix = "metrics-" + name + "-thread-";
+         }
+ 
+         @Override
+         public Thread newThread(Runnable r) {
+             final Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);
+             t.setDaemon(true);
+             if (t.getPriority() != Thread.NORM_PRIORITY) {
+                 t.setPriority(Thread.NORM_PRIORITY);
+             }
+             return t;
+         }
+     }
+ 
+     private static final AtomicInteger FACTORY_ID = new AtomicInteger();
+ 
+     private final MetricRegistry registry;
+     private final ScheduledExecutorService executor;
+     private final boolean shutdownExecutorOnStop;
+     private final Set<MetricAttribute> disabledMetricAttributes;
+     private ScheduledFuture<?> scheduledFuture;
+     private final MetricFilter filter;
+     private final long durationFactor;
+     private final String durationUnit;
+     private final long rateFactor;
+     private final String rateUnit;
+ 
+     /**
+      * Creates a new {@link ScheduledReporter} instance.
+      *
+      * @param registry     the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
+      *                     reporter will report
+      * @param name         the reporter's name
+      * @param filter       the filter for which metrics to report
+      * @param rateUnit     a unit of time
+      * @param durationUnit a unit of time
+      */
+     protected ScheduledReporter(MetricRegistry registry,
+                                 String name,
+                                 MetricFilter filter,
+                                 TimeUnit rateUnit,
+                                 TimeUnit durationUnit) {
+         this(registry, name, filter, rateUnit, durationUnit, createDefaultExecutor(name));
+     }
+ 
+     /**
+      * Creates a new {@link ScheduledReporter} instance.
+      *
+      * @param registry the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
+      *                 reporter will report
+      * @param name     the reporter's name
+      * @param filter   the filter for which metrics to report
+      * @param executor the executor to use while scheduling reporting of metrics.
+      */
+     protected ScheduledReporter(MetricRegistry registry,
+                                 String name,
+                                 MetricFilter filter,
+                                 TimeUnit rateUnit,
+                                 TimeUnit durationUnit,
+                                 ScheduledExecutorService executor) {
+         this(registry, name, filter, rateUnit, durationUnit, executor, true);
+     }
+ 
+     /**
+      * Creates a new {@link ScheduledReporter} instance.
+      *
+      * @param registry               the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
+      *                               reporter will report
+      * @param name                   the reporter's name
+      * @param filter                 the filter for which metrics to report
+      * @param executor               the executor to use while scheduling reporting of metrics.
+      * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
+      */
+     protected ScheduledReporter(MetricRegistry registry,
+                                 String name,
+                                 MetricFilter filter,
+                                 TimeUnit rateUnit,
+                                 TimeUnit durationUnit,
+                                 ScheduledExecutorService executor,
+                                 boolean shutdownExecutorOnStop) {
+         this(registry, name, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, Collections.emptySet());
+     }
+ 
+     protected ScheduledReporter(MetricRegistry registry,
+                                 String name,
+                                 MetricFilter filter,
+                                 TimeUnit rateUnit,
+                                 TimeUnit durationUnit,
+                                 ScheduledExecutorService executor,
+                                 boolean shutdownExecutorOnStop,
+                                 Set<MetricAttribute> disabledMetricAttributes) {
+ 
+         if (registry == null) {
+             throw new NullPointerException("registry == null");
+         }
+ 
+         this.registry = registry;
+         this.filter = filter;
+         this.executor = executor == null ? createDefaultExecutor(name) : executor;
+         this.shutdownExecutorOnStop = shutdownExecutorOnStop;
+         this.rateFactor = rateUnit.toSeconds(1);
+         this.rateUnit = calculateRateUnit(rateUnit);
+         this.durationFactor = durationUnit.toNanos(1);
+         this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);
+         this.disabledMetricAttributes = disabledMetricAttributes != null ? disabledMetricAttributes :
+                 Collections.emptySet();
+     }
+ 
+     /**
+      * Starts the reporter polling at the given period.
+      *
+      * @param period the amount of time between polls
+      * @param unit   the unit for {@code period}
+      */
+     public void start(long period, TimeUnit unit) {
+         start(period, period, unit);
+     }
+ 
+     /**
+      * Starts the reporter polling at the given period with the specific runnable action.
+      * Visible only for testing.
+      */
+     synchronized void start(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
+         if (this.scheduledFuture != null) {
+             throw new IllegalArgumentException("Reporter already started");
+         }
+ 
+         this.scheduledFuture = getScheduledFuture(initialDelay, period, unit, runnable);
+     }
+ 
+ 
+     /**
+      * Schedule the task, and return a future.
+      *
+      * @deprecated Use {@link #getScheduledFuture(long, long, TimeUnit, Runnable, ScheduledExecutorService)} instead.
+      */
+     @SuppressWarnings("DeprecatedIsStillUsed")
+     @Deprecated
+     protected ScheduledFuture<?> getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
+         return getScheduledFuture(initialDelay, period, unit, runnable, this.executor);
+     }
+ 
+     /**
+      * Schedule the task, and return a future.
+      * The current implementation uses scheduleWithFixedDelay, replacing scheduleWithFixedRate. This avoids queueing issues, but may
+      * cause some reporters to skip metrics, as scheduleWithFixedDelay introduces a growing delta from the original start point.
+      *
+      * Overriding this in a subclass to revert to the old behavior is permitted.
+      */
+     protected ScheduledFuture<?> getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable, ScheduledExecutorService executor) {
+         return executor.scheduleWithFixedDelay(runnable, initialDelay, period, unit);
+     }
+ 
+     /**
+      * Starts the reporter polling at the given period.
+      *
+      * @param initialDelay the time to delay the first execution
+      * @param period       the amount of time between polls
+      * @param unit         the unit for {@code period} and {@code initialDelay}
+      */
+     synchronized public void start(long initialDelay, long period, TimeUnit unit) {
+         start(initialDelay, period, unit, () -> {
+             try {
+                 report();
+             } catch (Throwable ex) {
+                 LOG.error("Exception thrown from {}#report. Exception was suppressed.", ScheduledReporter.this.getClass().getSimpleName(), ex);
+             }
+         });
+     }
+ 
+     /**
+      * Stops the reporter and if shutdownExecutorOnStop is true then shuts down its thread of execution.
+      * <p>
+      * Uses the shutdown pattern from http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html
+      */
+     public void stop() {
+         if (shutdownExecutorOnStop) {
+             executor.shutdown(); // Disable new tasks from being submitted
+         }
+ 
+         try {
+             report(); // Report metrics one last time
+         } catch (Exception e) {
+             LOG.warn("Final reporting of metrics failed.", e);
+         }
+ 
+         if (shutdownExecutorOnStop) {
+             try {
+                 // Wait a while for existing tasks to terminate
+                 if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {
+                     executor.shutdownNow(); // Cancel currently executing tasks
+                     // Wait a while for tasks to respond to being cancelled
+                     if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {
+                         LOG.warn("ScheduledExecutorService did not terminate.");
+                     }
+                 }
+             } catch (InterruptedException ie) {
+                 // (Re-)Cancel if current thread also interrupted
+                 executor.shutdownNow();
+                 // Preserve interrupt status
+                 Thread.currentThread().interrupt();
+             }
+         } else {
+             // The external manager (like JEE container) responsible for lifecycle of executor
+             cancelScheduledFuture();
+         }
+     }
+ 
+     private synchronized void cancelScheduledFuture() {
+         if (this.scheduledFuture == null) {
+             // was never started
+             return;
+         }
+         if (this.scheduledFuture.isCancelled()) {
+             // already cancelled
+             return;
+         }
+         // just cancel the scheduledFuture and exit
+         this.scheduledFuture.cancel(false);
+     }
+ 
+     /**
+      * Stops the reporter and shuts down its thread of execution.
+      */
+     @Override
+     public void close() {
+         stop();
+     }
+ 
+     /**
+      * Report the current values of all metrics in the registry.
+      */
+     public void report() {
+         synchronized (this) {
+             report(registry.getGauges(filter),
+                     registry.getCounters(filter),
+                     registry.getHistograms(filter),
+                     registry.getMeters(filter),
+                     registry.getTimers(filter));
+         }
+     }
+ 
+     /**
+      * Called periodically by the polling thread. Subclasses should report all the given metrics.
+      *
+      * @param gauges     all of the gauges in the registry
+      * @param counters   all of the counters in the registry
+      * @param histograms all of the histograms in the registry
+      * @param meters     all of the meters in the registry
+      * @param timers     all of the timers in the registry
+      */
+     @SuppressWarnings("rawtypes")
+     public abstract void report(SortedMap<String, Gauge> gauges,
+                                 SortedMap<String, Counter> counters,
+                                 SortedMap<String, Histogram> histograms,
+                                 SortedMap<String, Meter> meters,
+                                 SortedMap<String, Timer> timers);
+ 
+     protected String getRateUnit() {
+         return rateUnit;
+     }
+ 
+     protected String getDurationUnit() {
+         return durationUnit;
+     }
+ 
+     protected double convertDuration(double duration) {
+         return duration / durationFactor;
+     }
+ 
+     protected double convertRate(double rate) {
+         return rate * rateFactor;
+     }
+ 
+     protected boolean isShutdownExecutorOnStop() {
+         return shutdownExecutorOnStop;
+     }
+ 
+     protected Set<MetricAttribute> getDisabledMetricAttributes() {
+         return disabledMetricAttributes;
+     }
+ 
+     private String calculateRateUnit(TimeUnit unit) {
+         final String s = unit.toString().toLowerCase(Locale.US);
+         return s.substring(0, s.length() - 1);
+     }
+ 
+     private static ScheduledExecutorService createDefaultExecutor(String name) {
+         return Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(name + '-' + FACTORY_ID.incrementAndGet()));
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1a.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1a.html new file mode 100644 index 0000000000..fa2760d6ed --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1a.html @@ -0,0 +1,223 @@ + + + + + + + + Coverage Report > SharedMetricRegistries + + + + + + +
+ + +

Coverage Summary for Class: SharedMetricRegistries (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 0% + + + (0/10) + + + + 87.5% + + + (28/32) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ import java.util.concurrent.atomic.AtomicReference;
+ 
+ /**
+  * A map of shared, named metric registries.
+  */
+ public class SharedMetricRegistries {
+     private static final ConcurrentMap<String, MetricRegistry> REGISTRIES =
+             new ConcurrentHashMap<>();
+ 
+     private static AtomicReference<String> defaultRegistryName = new AtomicReference<>();
+ 
+     /* Visible for testing */
+     static void setDefaultRegistryName(AtomicReference<String> defaultRegistryName) {
+         SharedMetricRegistries.defaultRegistryName = defaultRegistryName;
+     }
+ 
+     private SharedMetricRegistries() { /* singleton */ }
+ 
+     public static void clear() {
+         REGISTRIES.clear();
+     }
+ 
+     public static Set<String> names() {
+         return REGISTRIES.keySet();
+     }
+ 
+     public static void remove(String key) {
+         REGISTRIES.remove(key);
+     }
+ 
+     public static MetricRegistry add(String name, MetricRegistry registry) {
+         return REGISTRIES.putIfAbsent(name, registry);
+     }
+ 
+     public static MetricRegistry getOrCreate(String name) {
+         final MetricRegistry existing = REGISTRIES.get(name);
+         if (existing == null) {
+             final MetricRegistry created = new MetricRegistry();
+             final MetricRegistry raced = add(name, created);
+             if (raced == null) {
+                 return created;
+             }
+             return raced;
+         }
+         return existing;
+     }
+ 
+     /**
+      * Creates a new registry and sets it as the default one under the provided name.
+      *
+      * @param name the registry name
+      * @return the default registry
+      * @throws IllegalStateException if the name has already been set
+      */
+     public synchronized static MetricRegistry setDefault(String name) {
+         final MetricRegistry registry = getOrCreate(name);
+         return setDefault(name, registry);
+     }
+ 
+     /**
+      * Sets the provided registry as the default one under the provided name
+      *
+      * @param name           the default registry name
+      * @param metricRegistry the default registry
+      * @throws IllegalStateException if the default registry has already been set
+      */
+     public static MetricRegistry setDefault(String name, MetricRegistry metricRegistry) {
+         if (defaultRegistryName.compareAndSet(null, name)) {
+             add(name, metricRegistry);
+             return metricRegistry;
+         }
+         throw new IllegalStateException("Default metric registry name is already set.");
+     }
+ 
+     /**
+      * Gets the name of the default registry, if it has been set
+      *
+      * @return the default registry
+      * @throws IllegalStateException if the default has not been set
+      */
+     public static MetricRegistry getDefault() {
+         MetricRegistry metricRegistry = tryGetDefault();
+         if (metricRegistry == null) {
+             throw new IllegalStateException("Default registry name has not been set.");
+         }
+         return metricRegistry;
+     }
+ 
+     /**
+      * Same as {@link #getDefault()} except returns null when the default registry has not been set.
+      *
+      * @return the default registry or null
+      */
+     public static MetricRegistry tryGetDefault() {
+         final String name = defaultRegistryName.get();
+         if (name != null) {
+             return getOrCreate(name);
+         } else {
+             return null;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1b.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1b.html new file mode 100644 index 0000000000..65e1d60bc7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1b.html @@ -0,0 +1,810 @@ + + + + + + + + Coverage Report > Slf4jReporter + + + + + + +
+ + +

Coverage Summary for Class: Slf4jReporter (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
Slf4jReporter + + 100% + + + (22/22) + + + + 0% + + + (0/24) + + + + 84.3% + + + (97/115) + +
Slf4jReporter$1
Slf4jReporter$Builder + + 84.6% + + + (11/13) + + + + 0% + + + (0/5) + + + + 77.8% + + + (35/45) + +
Slf4jReporter$DebugLoggerProxy + + 0% + + + (0/3) + + + + 0% + + + (0/5) + +
Slf4jReporter$ErrorLoggerProxy + + 100% + + + (3/3) + + + + 60% + + + (3/5) + +
Slf4jReporter$InfoLoggerProxy + + 100% + + + (3/3) + + + + 60% + + + (3/5) + +
Slf4jReporter$LoggerProxy + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + +
Slf4jReporter$LoggingLevel + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
Slf4jReporter$TraceLoggerProxy + + 0% + + + (0/3) + + + + 0% + + + (0/5) + +
Slf4jReporter$WarnLoggerProxy + + 0% + + + (0/3) + + + + 0% + + + (0/5) + +
Total + + 78.8% + + + (41/52) + + + + 0% + + + (0/29) + + + + 74.6% + + + (141/189) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ import org.slf4j.Marker;
+ 
+ import java.util.Collections;
+ import java.util.Map.Entry;
+ import java.util.Set;
+ import java.util.SortedMap;
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.TimeUnit;
+ import java.util.function.Supplier;
+ 
+ import static com.codahale.metrics.MetricAttribute.COUNT;
+ import static com.codahale.metrics.MetricAttribute.M15_RATE;
+ import static com.codahale.metrics.MetricAttribute.M1_RATE;
+ import static com.codahale.metrics.MetricAttribute.M5_RATE;
+ import static com.codahale.metrics.MetricAttribute.MAX;
+ import static com.codahale.metrics.MetricAttribute.MEAN;
+ import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
+ import static com.codahale.metrics.MetricAttribute.MIN;
+ import static com.codahale.metrics.MetricAttribute.P50;
+ import static com.codahale.metrics.MetricAttribute.P75;
+ import static com.codahale.metrics.MetricAttribute.P95;
+ import static com.codahale.metrics.MetricAttribute.P98;
+ import static com.codahale.metrics.MetricAttribute.P99;
+ import static com.codahale.metrics.MetricAttribute.P999;
+ import static com.codahale.metrics.MetricAttribute.STDDEV;
+ 
+ /**
+  * A reporter class for logging metrics values to a SLF4J {@link Logger} periodically, similar to
+  * {@link ConsoleReporter} or {@link CsvReporter}, but using the SLF4J framework instead. It also
+  * supports specifying a {@link Marker} instance that can be used by custom appenders and filters
+  * for the bound logging toolkit to further process metrics reports.
+  */
+ public class Slf4jReporter extends ScheduledReporter {
+     /**
+      * Returns a new {@link Builder} for {@link Slf4jReporter}.
+      *
+      * @param registry the registry to report
+      * @return a {@link Builder} instance for a {@link Slf4jReporter}
+      */
+     public static Builder forRegistry(MetricRegistry registry) {
+         return new Builder(registry);
+     }
+ 
+     public enum LoggingLevel { TRACE, DEBUG, INFO, WARN, ERROR }
+ 
+     /**
+      * A builder for {@link Slf4jReporter} instances. Defaults to logging to {@code metrics}, not
+      * using a marker, converting rates to events/second, converting durations to milliseconds, and
+      * not filtering metrics.
+      */
+     public static class Builder {
+         private final MetricRegistry registry;
+         private Logger logger;
+         private LoggingLevel loggingLevel;
+         private Marker marker;
+         private String prefix;
+         private TimeUnit rateUnit;
+         private TimeUnit durationUnit;
+         private MetricFilter filter;
+         private ScheduledExecutorService executor;
+         private boolean shutdownExecutorOnStop;
+         private Set<MetricAttribute> disabledMetricAttributes;
+ 
+         private Builder(MetricRegistry registry) {
+             this.registry = registry;
+             this.logger = LoggerFactory.getLogger("metrics");
+             this.marker = null;
+             this.prefix = "";
+             this.rateUnit = TimeUnit.SECONDS;
+             this.durationUnit = TimeUnit.MILLISECONDS;
+             this.filter = MetricFilter.ALL;
+             this.loggingLevel = LoggingLevel.INFO;
+             this.executor = null;
+             this.shutdownExecutorOnStop = true;
+             this.disabledMetricAttributes = Collections.emptySet();
+         }
+ 
+         /**
+          * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
+          * Default value is true.
+          * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
+          *
+          * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
+          * @return {@code this}
+          */
+         public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
+             this.shutdownExecutorOnStop = shutdownExecutorOnStop;
+             return this;
+         }
+ 
+         /**
+          * Specifies the executor to use while scheduling reporting of metrics.
+          * Default value is null.
+          * Null value leads to executor will be auto created on start.
+          *
+          * @param executor the executor to use while scheduling reporting of metrics.
+          * @return {@code this}
+          */
+         public Builder scheduleOn(ScheduledExecutorService executor) {
+             this.executor = executor;
+             return this;
+         }
+ 
+         /**
+          * Log metrics to the given logger.
+          *
+          * @param logger an SLF4J {@link Logger}
+          * @return {@code this}
+          */
+         public Builder outputTo(Logger logger) {
+             this.logger = logger;
+             return this;
+         }
+ 
+         /**
+          * Mark all logged metrics with the given marker.
+          *
+          * @param marker an SLF4J {@link Marker}
+          * @return {@code this}
+          */
+         public Builder markWith(Marker marker) {
+             this.marker = marker;
+             return this;
+         }
+ 
+         /**
+          * Prefix all metric names with the given string.
+          *
+          * @param prefix the prefix for all metric names
+          * @return {@code this}
+          */
+         public Builder prefixedWith(String prefix) {
+             this.prefix = prefix;
+             return this;
+         }
+ 
+         /**
+          * Convert rates to the given time unit.
+          *
+          * @param rateUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertRatesTo(TimeUnit rateUnit) {
+             this.rateUnit = rateUnit;
+             return this;
+         }
+ 
+         /**
+          * Convert durations to the given time unit.
+          *
+          * @param durationUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertDurationsTo(TimeUnit durationUnit) {
+             this.durationUnit = durationUnit;
+             return this;
+         }
+ 
+         /**
+          * Only report metrics which match the given filter.
+          *
+          * @param filter a {@link MetricFilter}
+          * @return {@code this}
+          */
+         public Builder filter(MetricFilter filter) {
+             this.filter = filter;
+             return this;
+         }
+ 
+         /**
+          * Use Logging Level when reporting.
+          *
+          * @param loggingLevel a (@link Slf4jReporter.LoggingLevel}
+          * @return {@code this}
+          */
+         public Builder withLoggingLevel(LoggingLevel loggingLevel) {
+             this.loggingLevel = loggingLevel;
+             return this;
+         }
+ 
+         /**
+          * Don't report the passed metric attributes for all metrics (e.g. "p999", "stddev" or "m15").
+          * See {@link MetricAttribute}.
+          *
+          * @param disabledMetricAttributes a set of {@link MetricAttribute}
+          * @return {@code this}
+          */
+         public Builder disabledMetricAttributes(Set<MetricAttribute> disabledMetricAttributes) {
+             this.disabledMetricAttributes = disabledMetricAttributes;
+             return this;
+         }
+ 
+         /**
+          * Builds a {@link Slf4jReporter} with the given properties.
+          *
+          * @return a {@link Slf4jReporter}
+          */
+         public Slf4jReporter build() {
+             LoggerProxy loggerProxy;
+             switch (loggingLevel) {
+                 case TRACE:
+                     loggerProxy = new TraceLoggerProxy(logger);
+                     break;
+                 case INFO:
+                     loggerProxy = new InfoLoggerProxy(logger);
+                     break;
+                 case WARN:
+                     loggerProxy = new WarnLoggerProxy(logger);
+                     break;
+                 case ERROR:
+                     loggerProxy = new ErrorLoggerProxy(logger);
+                     break;
+                 default:
+                 case DEBUG:
+                     loggerProxy = new DebugLoggerProxy(logger);
+                     break;
+             }
+             return new Slf4jReporter(registry, loggerProxy, marker, prefix, rateUnit, durationUnit, filter, executor,
+                     shutdownExecutorOnStop, disabledMetricAttributes);
+         }
+     }
+ 
+     private final LoggerProxy loggerProxy;
+     private final Marker marker;
+     private final String prefix;
+ 
+     private Slf4jReporter(MetricRegistry registry,
+                           LoggerProxy loggerProxy,
+                           Marker marker,
+                           String prefix,
+                           TimeUnit rateUnit,
+                           TimeUnit durationUnit,
+                           MetricFilter filter,
+                           ScheduledExecutorService executor,
+                           boolean shutdownExecutorOnStop,
+                           Set<MetricAttribute> disabledMetricAttributes) {
+         super(registry, "logger-reporter", filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,
+                 disabledMetricAttributes);
+         this.loggerProxy = loggerProxy;
+         this.marker = marker;
+         this.prefix = prefix;
+     }
+ 
+     @Override
+     @SuppressWarnings("rawtypes")
+     public void report(SortedMap<String, Gauge> gauges,
+                        SortedMap<String, Counter> counters,
+                        SortedMap<String, Histogram> histograms,
+                        SortedMap<String, Meter> meters,
+                        SortedMap<String, Timer> timers) {
+         if (loggerProxy.isEnabled(marker)) {
+             StringBuilder b = new StringBuilder();
+             for (Entry<String, Gauge> entry : gauges.entrySet()) {
+                 logGauge(b, entry.getKey(), entry.getValue());
+             }
+ 
+             for (Entry<String, Counter> entry : counters.entrySet()) {
+                 logCounter(b, entry.getKey(), entry.getValue());
+             }
+ 
+             for (Entry<String, Histogram> entry : histograms.entrySet()) {
+                 logHistogram(b, entry.getKey(), entry.getValue());
+             }
+ 
+             for (Entry<String, Meter> entry : meters.entrySet()) {
+                 logMeter(b, entry.getKey(), entry.getValue());
+             }
+ 
+             for (Entry<String, Timer> entry : timers.entrySet()) {
+                 logTimer(b, entry.getKey(), entry.getValue());
+             }
+         }
+     }
+ 
+     private void logTimer(StringBuilder b, String name, Timer timer) {
+         final Snapshot snapshot = timer.getSnapshot();
+         b.setLength(0);
+         b.append("type=TIMER");
+         append(b, "name", prefix(name));
+         appendCountIfEnabled(b, timer);
+         appendLongDurationIfEnabled(b, MIN, snapshot::getMin);
+         appendLongDurationIfEnabled(b, MAX, snapshot::getMax);
+         appendDoubleDurationIfEnabled(b, MEAN, snapshot::getMean);
+         appendDoubleDurationIfEnabled(b, STDDEV, snapshot::getStdDev);
+         appendDoubleDurationIfEnabled(b, P50, snapshot::getMedian);
+         appendDoubleDurationIfEnabled(b, P75, snapshot::get75thPercentile);
+         appendDoubleDurationIfEnabled(b, P95, snapshot::get95thPercentile);
+         appendDoubleDurationIfEnabled(b, P98, snapshot::get98thPercentile);
+         appendDoubleDurationIfEnabled(b, P99, snapshot::get99thPercentile);
+         appendDoubleDurationIfEnabled(b, P999, snapshot::get999thPercentile);
+         appendMetered(b, timer);
+         append(b, "rate_unit", getRateUnit());
+         append(b, "duration_unit", getDurationUnit());
+         loggerProxy.log(marker, b.toString());
+     }
+ 
+     private void logMeter(StringBuilder b, String name, Meter meter) {
+         b.setLength(0);
+         b.append("type=METER");
+         append(b, "name", prefix(name));
+         appendCountIfEnabled(b, meter);
+         appendMetered(b, meter);
+         append(b, "rate_unit", getRateUnit());
+         loggerProxy.log(marker, b.toString());
+     }
+ 
+     private void logHistogram(StringBuilder b, String name, Histogram histogram) {
+         final Snapshot snapshot = histogram.getSnapshot();
+         b.setLength(0);
+         b.append("type=HISTOGRAM");
+         append(b, "name", prefix(name));
+         appendCountIfEnabled(b, histogram);
+         appendLongIfEnabled(b, MIN, snapshot::getMin);
+         appendLongIfEnabled(b, MAX, snapshot::getMax);
+         appendDoubleIfEnabled(b, MEAN, snapshot::getMean);
+         appendDoubleIfEnabled(b, STDDEV, snapshot::getStdDev);
+         appendDoubleIfEnabled(b, P50, snapshot::getMedian);
+         appendDoubleIfEnabled(b, P75, snapshot::get75thPercentile);
+         appendDoubleIfEnabled(b, P95, snapshot::get95thPercentile);
+         appendDoubleIfEnabled(b, P98, snapshot::get98thPercentile);
+         appendDoubleIfEnabled(b, P99, snapshot::get99thPercentile);
+         appendDoubleIfEnabled(b, P999, snapshot::get999thPercentile);
+         loggerProxy.log(marker, b.toString());
+     }
+ 
+     private void logCounter(StringBuilder b, String name, Counter counter) {
+         b.setLength(0);
+         b.append("type=COUNTER");
+         append(b, "name", prefix(name));
+         append(b, COUNT.getCode(), counter.getCount());
+         loggerProxy.log(marker, b.toString());
+     }
+ 
+     private void logGauge(StringBuilder b, String name, Gauge<?> gauge) {
+         b.setLength(0);
+         b.append("type=GAUGE");
+         append(b, "name", prefix(name));
+         append(b, "value", gauge.getValue());
+         loggerProxy.log(marker, b.toString());
+     }
+ 
+     private void appendLongDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
+                                              Supplier<Long> durationSupplier) {
+         if (!getDisabledMetricAttributes().contains(metricAttribute)) {
+             append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));
+         }
+     }
+ 
+     private void appendDoubleDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
+                                                Supplier<Double> durationSupplier) {
+         if (!getDisabledMetricAttributes().contains(metricAttribute)) {
+             append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));
+         }
+     }
+ 
+     private void appendLongIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
+                                      Supplier<Long> valueSupplier) {
+         if (!getDisabledMetricAttributes().contains(metricAttribute)) {
+             append(b, metricAttribute.getCode(), valueSupplier.get());
+         }
+     }
+ 
+     private void appendDoubleIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
+                                        Supplier<Double> valueSupplier) {
+         if (!getDisabledMetricAttributes().contains(metricAttribute)) {
+             append(b, metricAttribute.getCode(), valueSupplier.get());
+         }
+     }
+ 
+     private void appendCountIfEnabled(StringBuilder b, Counting counting) {
+         if (!getDisabledMetricAttributes().contains(COUNT)) {
+             append(b, COUNT.getCode(), counting.getCount());
+         }
+     }
+ 
+     private void appendMetered(StringBuilder b, Metered meter) {
+         appendRateIfEnabled(b, M1_RATE, meter::getOneMinuteRate);
+         appendRateIfEnabled(b, M5_RATE, meter::getFiveMinuteRate);
+         appendRateIfEnabled(b, M15_RATE,  meter::getFifteenMinuteRate);
+         appendRateIfEnabled(b, MEAN_RATE,  meter::getMeanRate);
+     }
+ 
+     private void appendRateIfEnabled(StringBuilder b, MetricAttribute metricAttribute, Supplier<Double> rateSupplier) {
+         if (!getDisabledMetricAttributes().contains(metricAttribute)) {
+             append(b, metricAttribute.getCode(), convertRate(rateSupplier.get()));
+         }
+     }
+ 
+     private void append(StringBuilder b, String key, long value) {
+         b.append(", ").append(key).append('=').append(value);
+     }
+ 
+     private void append(StringBuilder b, String key, double value) {
+         b.append(", ").append(key).append('=').append(value);
+     }
+ 
+     private void append(StringBuilder b, String key, String value) {
+         b.append(", ").append(key).append('=').append(value);
+     }
+ 
+     private void append(StringBuilder b, String key, Object value) {
+         b.append(", ").append(key).append('=').append(value);
+     }
+ 
+     @Override
+     protected String getRateUnit() {
+         return "events/" + super.getRateUnit();
+     }
+ 
+     private String prefix(String... components) {
+         return MetricRegistry.name(prefix, components);
+     }
+ 
+     /* private class to allow logger configuration */
+     static abstract class LoggerProxy {
+         protected final Logger logger;
+ 
+         public LoggerProxy(Logger logger) {
+             this.logger = logger;
+         }
+ 
+         abstract void log(Marker marker, String format);
+ 
+         abstract boolean isEnabled(Marker marker);
+     }
+ 
+     /* private class to allow logger configuration */
+     private static class DebugLoggerProxy extends LoggerProxy {
+         public DebugLoggerProxy(Logger logger) {
+             super(logger);
+         }
+ 
+         @Override
+         public void log(Marker marker, String format) {
+             logger.debug(marker, format);
+         }
+ 
+         @Override
+         public boolean isEnabled(Marker marker) {
+             return logger.isDebugEnabled(marker);
+         }
+     }
+ 
+     /* private class to allow logger configuration */
+     private static class TraceLoggerProxy extends LoggerProxy {
+         public TraceLoggerProxy(Logger logger) {
+             super(logger);
+         }
+ 
+         @Override
+         public void log(Marker marker, String format) {
+             logger.trace(marker, format);
+         }
+ 
+         @Override
+         public boolean isEnabled(Marker marker) {
+             return logger.isTraceEnabled(marker);
+         }
+     }
+ 
+     /* private class to allow logger configuration */
+     private static class InfoLoggerProxy extends LoggerProxy {
+         public InfoLoggerProxy(Logger logger) {
+             super(logger);
+         }
+ 
+         @Override
+         public void log(Marker marker, String format) {
+             logger.info(marker, format);
+         }
+ 
+         @Override
+         public boolean isEnabled(Marker marker) {
+             return logger.isInfoEnabled(marker);
+         }
+     }
+ 
+     /* private class to allow logger configuration */
+     private static class WarnLoggerProxy extends LoggerProxy {
+         public WarnLoggerProxy(Logger logger) {
+             super(logger);
+         }
+ 
+         @Override
+         public void log(Marker marker, String format) {
+             logger.warn(marker, format);
+         }
+ 
+         @Override
+         public boolean isEnabled(Marker marker) {
+             return logger.isWarnEnabled(marker);
+         }
+     }
+ 
+     /* private class to allow logger configuration */
+     private static class ErrorLoggerProxy extends LoggerProxy {
+         public ErrorLoggerProxy(Logger logger) {
+             super(logger);
+         }
+ 
+         @Override
+         public void log(Marker marker, String format) {
+             logger.error(marker, format);
+         }
+ 
+         @Override
+         public boolean isEnabled(Marker marker) {
+             return logger.isErrorEnabled(marker);
+         }
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1c.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1c.html new file mode 100644 index 0000000000..f0e4e7657c --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1c.html @@ -0,0 +1,217 @@ + + + + + + + + Coverage Report > SlidingTimeWindowArrayReservoir + + + + + + +
+ + +

Coverage Summary for Class: SlidingTimeWindowArrayReservoir (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/14) + + + + 78.4% + + + (29/37) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicLong;
+ 
+ /**
+  * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
+  * in the last {@code N} seconds (or other time unit).
+  */
+ public class SlidingTimeWindowArrayReservoir implements Reservoir {
+     // allow for this many duplicate ticks before overwriting measurements
+     private static final long COLLISION_BUFFER = 256L;
+     // only trim on updating once every N
+     private static final long TRIM_THRESHOLD = 256L;
+     private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;
+ 
+     private final Clock clock;
+     private final ChunkedAssociativeLongArray measurements;
+     private final long window;
+     private final AtomicLong lastTick;
+     private final AtomicLong count;
+     private final long startTick;
+ 
+     /**
+      * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given window of time.
+      *
+      * @param window     the window of time
+      * @param windowUnit the unit of {@code window}
+      */
+     public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit) {
+         this(window, windowUnit, Clock.defaultClock());
+     }
+ 
+     /**
+      * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given clock and window of time.
+      *
+      * @param window     the window of time
+      * @param windowUnit the unit of {@code window}
+      * @param clock      the {@link Clock} to use
+      */
+     public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit, Clock clock) {
+         this.startTick = clock.getTick();
+         this.clock = clock;
+         this.measurements = new ChunkedAssociativeLongArray();
+         this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;
+         this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);
+         this.count = new AtomicLong();
+     }
+ 
+     @Override
+     public int size() {
+         trim();
+         return measurements.size();
+     }
+ 
+     @Override
+     public void update(long value) {
+         long newTick;
+         do {
+             if (count.incrementAndGet() % TRIM_THRESHOLD == 0L) {
+                 trim();
+             }
+             long lastTick = this.lastTick.get();
+             newTick = getTick();
+             boolean longOverflow = newTick < lastTick;
+             if (longOverflow) {
+                 measurements.clear();
+             }
+         } while (!measurements.put(newTick, value));
+     }
+ 
+     @Override
+     public Snapshot getSnapshot() {
+         trim();
+         return new UniformSnapshot(measurements.values());
+     }
+ 
+     private long getTick() {
+         for ( ;; ) {
+             final long oldTick = lastTick.get();
+             final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;
+             // ensure the tick is strictly incrementing even if there are duplicate ticks
+             final long newTick = tick - oldTick > 0L ? tick : oldTick + 1L;
+             if (lastTick.compareAndSet(oldTick, newTick)) {
+                 return newTick;
+             }
+         }
+     }
+ 
+     void trim() {
+         final long now = getTick();
+         final long windowStart = now - window;
+         final long windowEnd = now + CLEAR_BUFFER;
+         if (windowStart < windowEnd) {
+             measurements.trim(windowStart, windowEnd);
+         } else {
+             // long overflow handling that can happen only after 1 year after class loading
+             measurements.clear();
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1d.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1d.html new file mode 100644 index 0000000000..4a370be887 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1d.html @@ -0,0 +1,217 @@ + + + + + + + + Coverage Report > SlidingTimeWindowArrayReservoirTrimReadTest + + + + + + +
+ + +

Coverage Summary for Class: SlidingTimeWindowArrayReservoirTrimReadTest (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/4) + + + + 0% + + + (0/2) + + + + 0% + + + (0/12) + +
SlidingTimeWindowArrayReservoirTrimReadTest$1 + + 0% + + + (0/2) + + + + 0% + + + (0/2) + +
Total + + 0% + + + (0/6) + + + + 0% + + + (0/2) + + + + 0% + + + (0/14) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import org.openjdk.jcstress.annotations.Actor;
+ import org.openjdk.jcstress.annotations.Expect;
+ import org.openjdk.jcstress.annotations.JCStressTest;
+ import org.openjdk.jcstress.annotations.Outcome;
+ import org.openjdk.jcstress.annotations.State;
+ import org.openjdk.jcstress.infra.results.L_Result;
+ 
+ import java.util.Arrays;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicLong;
+ 
+ @JCStressTest
+ @Outcome(
+     id = "\\[240, 241, 242, 243, 244, 245, 246, 247, 248, 249\\]",
+     expect = Expect.ACCEPTABLE,
+     desc = "Actor1 made read before Actor2 even started"
+     )
+ @Outcome(
+     id = "\\[243, 244, 245, 246, 247, 248, 249\\]",
+     expect = Expect.ACCEPTABLE,
+     desc = "Actor2 made trim before Actor1 even started"
+     )
+ @Outcome(
+     id = "\\[244, 245, 246, 247, 248, 249\\]",
+     expect = Expect.ACCEPTABLE,
+     desc = "Actor1 made trim, then Actor2 started trim and made startIndex change, " +
+         "before Actor1 concurrent read."
+     )
+ @Outcome(
+     id = "\\[243, 244, 245, 246, 247, 248\\]",
+     expect = Expect.ACCEPTABLE,
+     desc = "Actor1 made trim, then Actor2 started trim, but not finished startIndex change, before Actor1 concurrent read."
+     )
+ @State
+ public class SlidingTimeWindowArrayReservoirTrimReadTest {
+     private final AtomicLong ticks = new AtomicLong(0);
+     private final SlidingTimeWindowArrayReservoir reservoir;
+ 
+     public SlidingTimeWindowArrayReservoirTrimReadTest() {
+         reservoir = new SlidingTimeWindowArrayReservoir(10, TimeUnit.NANOSECONDS, new Clock() {
+             @Override
+             public long getTick() {
+                 return ticks.get();
+             }
+         });
+ 
+         for (int i = 0; i < 250; i++) {
+             ticks.set(i);
+             reservoir.update(i);
+         }
+     }
+ 
+     @Actor
+     public void actor1(L_Result r) {
+         Snapshot snapshot = reservoir.getSnapshot();
+         String stringValues = Arrays.toString(snapshot.getValues());
+         r.r1 = stringValues;
+     }
+ 
+     @Actor
+     public void actor2() {
+         ticks.set(253);
+         reservoir.trim();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1e.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1e.html new file mode 100644 index 0000000000..eb7f62c9a7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1e.html @@ -0,0 +1,161 @@ + + + + + + + + Coverage Report > SlidingTimeWindowArrayReservoirWriteReadAllocate + + + + + + +
+ + +

Coverage Summary for Class: SlidingTimeWindowArrayReservoirWriteReadAllocate (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/2) + + + + 0% + + + (0/10) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import org.openjdk.jcstress.annotations.Actor;
+ import org.openjdk.jcstress.annotations.Arbiter;
+ import org.openjdk.jcstress.annotations.Expect;
+ import org.openjdk.jcstress.annotations.JCStressTest;
+ import org.openjdk.jcstress.annotations.Outcome;
+ import org.openjdk.jcstress.annotations.State;
+ import org.openjdk.jcstress.infra.results.L_Result;
+ 
+ import java.util.Arrays;
+ import java.util.concurrent.TimeUnit;
+ 
+ @JCStressTest
+ @Outcome(id = "\\[1023, 1029, 1034\\]", expect = Expect.ACCEPTABLE)
+ @State
+ public class SlidingTimeWindowArrayReservoirWriteReadAllocate {
+ 
+     private final SlidingTimeWindowArrayReservoir reservoir;
+ 
+     public SlidingTimeWindowArrayReservoirWriteReadAllocate() {
+         reservoir = new SlidingTimeWindowArrayReservoir(500, TimeUnit.SECONDS);
+         for (int i = 0; i < 1024; i++) {
+             reservoir.update(i);
+         }
+     }
+ 
+     @Actor
+     public void actor1() {
+         reservoir.update(1029L);
+     }
+ 
+     @Actor
+     public void actor2() {
+         reservoir.update(1034L);
+     }
+ 
+     @Arbiter
+     public void arbiter(L_Result r) {
+         Snapshot snapshot = reservoir.getSnapshot();
+         long[] values = snapshot.getValues();
+         String stringValues = Arrays.toString(Arrays.copyOfRange(values, values.length - 3, values.length));
+         r.r1 = stringValues;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1f.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1f.html new file mode 100644 index 0000000000..382e707398 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1f.html @@ -0,0 +1,149 @@ + + + + + + + + Coverage Report > SlidingTimeWindowArrayReservoirWriteReadTest + + + + + + +
+ + +

Coverage Summary for Class: SlidingTimeWindowArrayReservoirWriteReadTest (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/7) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import org.openjdk.jcstress.annotations.Actor;
+ import org.openjdk.jcstress.annotations.Expect;
+ import org.openjdk.jcstress.annotations.JCStressTest;
+ import org.openjdk.jcstress.annotations.Outcome;
+ import org.openjdk.jcstress.annotations.State;
+ import org.openjdk.jcstress.infra.results.L_Result;
+ 
+ import java.util.Arrays;
+ import java.util.concurrent.TimeUnit;
+ 
+ @JCStressTest
+ @Outcome(id = "\\[\\]", expect = Expect.ACCEPTABLE)
+ @Outcome(id = "\\[31\\]", expect = Expect.ACCEPTABLE)
+ @Outcome(id = "\\[15\\]", expect = Expect.ACCEPTABLE)
+ @Outcome(id = "\\[31, 15\\]", expect = Expect.ACCEPTABLE)
+ @Outcome(id = "\\[15, 31\\]", expect = Expect.ACCEPTABLE)
+ @State
+ public class SlidingTimeWindowArrayReservoirWriteReadTest {
+ 
+     private final SlidingTimeWindowArrayReservoir reservoir;
+ 
+     public SlidingTimeWindowArrayReservoirWriteReadTest() {
+         reservoir = new SlidingTimeWindowArrayReservoir(1, TimeUnit.SECONDS);
+     }
+ 
+     @Actor
+     public void actor1() {
+         reservoir.update(31L);
+     }
+ 
+     @Actor
+     public void actor2() {
+         reservoir.update(15L);
+     }
+ 
+     @Actor
+     public void actor3(L_Result r) {
+         Snapshot snapshot = reservoir.getSnapshot();
+         String stringValues = Arrays.toString(snapshot.getValues());
+         r.r1 = stringValues;
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2.html new file mode 100644 index 0000000000..c45bf3866b --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2.html @@ -0,0 +1,353 @@ + + + + + + + + Coverage Report > ChunkedAssociativeLongArray + + + + + + +
+ + +

Coverage Summary for Class: ChunkedAssociativeLongArray (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
ChunkedAssociativeLongArray + + 92.9% + + + (13/14) + + + + 0% + + + (0/52) + + + + 90% + + + (81/90) + +
ChunkedAssociativeLongArray$1
ChunkedAssociativeLongArray$Chunk + + 100% + + + (3/3) + + + + 83.3% + + + (10/12) + +
Total + + 94.1% + + + (16/17) + + + + 0% + + + (0/52) + + + + 89.2% + + + (91/102) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.lang.ref.SoftReference;
+ import java.util.ArrayDeque;
+ import java.util.Deque;
+ import java.util.Iterator;
+ 
+ import static java.lang.System.arraycopy;
+ import static java.util.Arrays.binarySearch;
+ 
+ class ChunkedAssociativeLongArray {
+     private static final long[] EMPTY = new long[0];
+     private static final int DEFAULT_CHUNK_SIZE = 512;
+     private static final int MAX_CACHE_SIZE = 128;
+ 
+     private final int defaultChunkSize;
+ 
+     /*
+      * We use this ArrayDeque as cache to store chunks that are expired and removed from main data structure.
+      * Then instead of allocating new Chunk immediately we are trying to poll one from this deque.
+      * So if you have constant or slowly changing load ChunkedAssociativeLongArray will never
+      * throw away old chunks or allocate new ones which makes this data structure almost garbage free.
+      */
+     private final ArrayDeque<SoftReference<Chunk>> chunksCache = new ArrayDeque<>();
+ 
+     private final Deque<Chunk> chunks = new ArrayDeque<>();
+ 
+     ChunkedAssociativeLongArray() {
+         this(DEFAULT_CHUNK_SIZE);
+     }
+ 
+     ChunkedAssociativeLongArray(int chunkSize) {
+         this.defaultChunkSize = chunkSize;
+     }
+ 
+     private Chunk allocateChunk() {
+         while (true) {
+             final SoftReference<Chunk> chunkRef = chunksCache.pollLast();
+             if (chunkRef == null) {
+                 return new Chunk(defaultChunkSize);
+             }
+             final Chunk chunk = chunkRef.get();
+             if (chunk != null) {
+                 chunk.cursor = 0;
+                 chunk.startIndex = 0;
+                 chunk.chunkSize = chunk.keys.length;
+                 return chunk;
+             }
+         }
+     }
+ 
+     private void freeChunk(Chunk chunk) {
+         if (chunksCache.size() < MAX_CACHE_SIZE) {
+             chunksCache.add(new SoftReference<>(chunk));
+         }
+     }
+ 
+     synchronized boolean put(long key, long value) {
+         Chunk activeChunk = chunks.peekLast();
+         if (activeChunk != null && activeChunk.cursor != 0 && activeChunk.keys[activeChunk.cursor - 1] > key) {
+             // key should be the same as last inserted or bigger
+             return false;
+         }
+         if (activeChunk == null || activeChunk.cursor - activeChunk.startIndex == activeChunk.chunkSize) {
+             // The last chunk doesn't exist or full
+             activeChunk = allocateChunk();
+             chunks.add(activeChunk);
+         }
+         activeChunk.append(key, value);
+         return true;
+     }
+ 
+     synchronized long[] values() {
+         final int valuesSize = size();
+         if (valuesSize == 0) {
+             return EMPTY;
+         }
+ 
+         final long[] values = new long[valuesSize];
+         int valuesIndex = 0;
+         for (Chunk chunk : chunks) {
+             int length = chunk.cursor - chunk.startIndex;
+             int itemsToCopy = Math.min(valuesSize - valuesIndex, length);
+             arraycopy(chunk.values, chunk.startIndex, values, valuesIndex, itemsToCopy);
+             valuesIndex += length;
+         }
+         return values;
+     }
+ 
+     synchronized int size() {
+         int result = 0;
+         for (Chunk chunk : chunks) {
+             result += chunk.cursor - chunk.startIndex;
+         }
+         return result;
+     }
+ 
+     synchronized String out() {
+         final StringBuilder builder = new StringBuilder();
+         final Iterator<Chunk> iterator = chunks.iterator();
+         while (iterator.hasNext()) {
+             final Chunk chunk = iterator.next();
+             builder.append('[');
+             for (int i = chunk.startIndex; i < chunk.cursor; i++) {
+                 builder.append('(').append(chunk.keys[i]).append(": ")
+                         .append(chunk.values[i]).append(')').append(' ');
+             }
+             builder.append(']');
+             if (iterator.hasNext()) {
+                 builder.append("->");
+             }
+         }
+         return builder.toString();
+     }
+ 
+     /**
+      * Try to trim all beyond specified boundaries.
+      *
+      * @param startKey the start value for which all elements less than it should be removed.
+      * @param endKey   the end value for which all elements greater/equals than it should be removed.
+      */
+     synchronized void trim(long startKey, long endKey) {
+         /*
+          * [3, 4, 5, 9] -> [10, 13, 14, 15] -> [21, 24, 29, 30] -> [31] :: start layout
+          *       |5______________________________23|                    :: trim(5, 23)
+          *       [5, 9] -> [10, 13, 14, 15] -> [21]                     :: result layout
+          */
+         final Iterator<Chunk> descendingIterator = chunks.descendingIterator();
+         while (descendingIterator.hasNext()) {
+             final Chunk currentTail = descendingIterator.next();
+             if (isFirstElementIsEmptyOrGreaterEqualThanKey(currentTail, endKey)) {
+                 freeChunk(currentTail);
+                 descendingIterator.remove();
+             } else {
+                 currentTail.cursor = findFirstIndexOfGreaterEqualElements(currentTail.keys, currentTail.startIndex,
+                         currentTail.cursor, endKey);
+                 break;
+             }
+         }
+ 
+         final Iterator<Chunk> iterator = chunks.iterator();
+         while (iterator.hasNext()) {
+             final Chunk currentHead = iterator.next();
+             if (isLastElementIsLessThanKey(currentHead, startKey)) {
+                 freeChunk(currentHead);
+                 iterator.remove();
+             } else {
+                 final int newStartIndex = findFirstIndexOfGreaterEqualElements(currentHead.keys, currentHead.startIndex,
+                         currentHead.cursor, startKey);
+                 if (currentHead.startIndex != newStartIndex) {
+                     currentHead.startIndex = newStartIndex;
+                     currentHead.chunkSize = currentHead.cursor - currentHead.startIndex;
+                 }
+                 break;
+             }
+         }
+     }
+ 
+     synchronized void clear() {
+         chunks.clear();
+     }
+ 
+     private boolean isFirstElementIsEmptyOrGreaterEqualThanKey(Chunk chunk, long key) {
+         return chunk.cursor == chunk.startIndex || chunk.keys[chunk.startIndex] >= key;
+     }
+ 
+     private boolean isLastElementIsLessThanKey(Chunk chunk, long key) {
+         return chunk.cursor == chunk.startIndex || chunk.keys[chunk.cursor - 1] < key;
+     }
+ 
+     private int findFirstIndexOfGreaterEqualElements(long[] array, int startIndex, int endIndex, long minKey) {
+         if (endIndex == startIndex || array[startIndex] >= minKey) {
+             return startIndex;
+         }
+         final int keyIndex = binarySearch(array, startIndex, endIndex, minKey);
+         return keyIndex < 0 ? -(keyIndex + 1) : keyIndex;
+     }
+ 
+     private static class Chunk {
+ 
+         private final long[] keys;
+         private final long[] values;
+ 
+         private int chunkSize; // can differ from keys.length after half clear()
+         private int startIndex = 0;
+         private int cursor = 0;
+ 
+         private Chunk(int chunkSize) {
+             this.chunkSize = chunkSize;
+             this.keys = new long[chunkSize];
+             this.values = new long[chunkSize];
+         }
+ 
+         private void append(long key, long value) {
+             keys[cursor] = key;
+             values[cursor] = value;
+             cursor++;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-20.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-20.html new file mode 100644 index 0000000000..ae4611d14c --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-20.html @@ -0,0 +1,313 @@ + + + + + + + + Coverage Report > SlidingTimeWindowMovingAverages + + + + + + +
+ + +

Coverage Summary for Class: SlidingTimeWindowMovingAverages (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 0% + + + (0/22) + + + + 90% + + + (63/70) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.time.Duration;
+ import java.time.Instant;
+ import java.util.ArrayList;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicLong;
+ import java.util.concurrent.atomic.LongAdder;
+ 
+ /**
+  * A triple of simple moving average rates (one, five and fifteen minutes rates) as needed by {@link Meter}.
+  * <p>
+  * The averages are unweighted, i.e. they include strictly only the events in the
+  * sliding time window, every event having the same weight. Unlike the
+  * the more widely used {@link ExponentialMovingAverages} implementation,
+  * with this class the moving average rate drops immediately to zero if the last
+  * marked event is older than the time window.
+  * <p>
+  * A {@link Meter} with {@link SlidingTimeWindowMovingAverages} works similarly to
+  * a {@link Histogram} with an {@link SlidingTimeWindowArrayReservoir}, but as a Meter
+  * needs to keep track only of the count of events (not the events itself), the memory
+  * overhead is much smaller. SlidingTimeWindowMovingAverages uses buckets with just one
+  * counter to accumulate the number of events (one bucket per seconds, giving 900 buckets
+  * for the 15 minutes time window).
+  */
+ public class SlidingTimeWindowMovingAverages implements MovingAverages {
+ 
+     private static final long TIME_WINDOW_DURATION_MINUTES = 15;
+     private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(1);
+     private static final Duration TIME_WINDOW_DURATION = Duration.ofMinutes(TIME_WINDOW_DURATION_MINUTES);
+ 
+     // package private for the benefit of the unit test
+     static final int NUMBER_OF_BUCKETS = (int) (TIME_WINDOW_DURATION.toNanos() / TICK_INTERVAL);
+ 
+     private final AtomicLong lastTick;
+     private final Clock clock;
+ 
+     /**
+      * One counter per time bucket/slot (i.e. per second, see TICK_INTERVAL) for the entire
+      * time window (i.e. 15 minutes, see TIME_WINDOW_DURATION_MINUTES)
+      */
+     private ArrayList<LongAdder> buckets;
+ 
+     /**
+      * Index into buckets, pointing at the bucket containing the oldest counts
+      */
+     private int oldestBucketIndex;
+ 
+     /**
+      * Index into buckets, pointing at the bucket with the count for the current time (tick)
+      */
+     private int currentBucketIndex;
+ 
+     /**
+      * Instant at creation time of the time window. Used to calculate the currentBucketIndex
+      * for the instant of a given tick (instant modulo time window duration)
+      */
+     private final Instant bucketBaseTime;
+ 
+     /**
+      * Instant of the bucket with index oldestBucketIndex
+      */
+     Instant oldestBucketTime;
+ 
+     /**
+      * Creates a new {@link SlidingTimeWindowMovingAverages}.
+      */
+     public SlidingTimeWindowMovingAverages() {
+         this(Clock.defaultClock());
+     }
+ 
+     /**
+      * Creates a new {@link SlidingTimeWindowMovingAverages}.
+      *
+      * @param clock the clock to use for the meter ticks
+      */
+     public SlidingTimeWindowMovingAverages(Clock clock) {
+         this.clock = clock;
+         final long startTime = clock.getTick();
+         lastTick = new AtomicLong(startTime);
+ 
+         buckets = new ArrayList<>(NUMBER_OF_BUCKETS);
+         for (int i = 0; i < NUMBER_OF_BUCKETS; i++) {
+             buckets.add(new LongAdder());
+         }
+         bucketBaseTime = Instant.ofEpochSecond(0L, startTime);
+         oldestBucketTime = bucketBaseTime;
+         oldestBucketIndex = 0;
+         currentBucketIndex = 0;
+     }
+ 
+     @Override
+     public void update(long n) {
+         buckets.get(currentBucketIndex).add(n);
+     }
+ 
+     @Override
+     public void tickIfNecessary() {
+         final long oldTick = lastTick.get();
+         final long newTick = clock.getTick();
+         final long age = newTick - oldTick;
+         if (age >= TICK_INTERVAL) {
+             // - the newTick doesn't fall into the same slot as the oldTick anymore
+             // - newLastTick is the lower border time of the new currentBucketIndex slot
+             final long newLastTick = newTick - age % TICK_INTERVAL;
+             if (lastTick.compareAndSet(oldTick, newLastTick)) {
+                 Instant currentInstant = Instant.ofEpochSecond(0L, newLastTick);
+                 currentBucketIndex = normalizeIndex(calculateIndexOfTick(currentInstant));
+                 cleanOldBuckets(currentInstant);
+             }
+         }
+     }
+ 
+     @Override
+     public double getM15Rate() {
+         return getMinuteRate(15);
+     }
+ 
+     @Override
+     public double getM5Rate() {
+         return getMinuteRate(5);
+     }
+ 
+     @Override
+     public double getM1Rate() {
+         return getMinuteRate(1);
+     }
+ 
+     private double getMinuteRate(int minutes) {
+         Instant now = Instant.ofEpochSecond(0L, lastTick.get());
+         return sumBuckets(now, (int) (TimeUnit.MINUTES.toNanos(minutes) / TICK_INTERVAL));
+     }
+ 
+     int calculateIndexOfTick(Instant tickTime) {
+         return (int) (Duration.between(bucketBaseTime, tickTime).toNanos() / TICK_INTERVAL);
+     }
+ 
+     int normalizeIndex(int index) {
+         int mod = index % NUMBER_OF_BUCKETS;
+         return mod >= 0 ? mod : mod + NUMBER_OF_BUCKETS;
+     }
+ 
+     private void cleanOldBuckets(Instant currentTick) {
+         int newOldestIndex;
+         Instant oldestStillNeededTime = currentTick.minus(TIME_WINDOW_DURATION).plusNanos(TICK_INTERVAL);
+         Instant youngestNotInWindow = oldestBucketTime.plus(TIME_WINDOW_DURATION);
+         if (oldestStillNeededTime.isAfter(youngestNotInWindow)) {
+             // there was no update() call for more than two whole TIME_WINDOW_DURATION
+             newOldestIndex = oldestBucketIndex;
+             oldestBucketTime = currentTick;
+         } else if (oldestStillNeededTime.isAfter(oldestBucketTime)) {
+             newOldestIndex = normalizeIndex(calculateIndexOfTick(oldestStillNeededTime));
+             oldestBucketTime = oldestStillNeededTime;
+         } else {
+             return;
+         }
+ 
+         cleanBucketRange(oldestBucketIndex, newOldestIndex);
+         oldestBucketIndex = newOldestIndex;
+     }
+ 
+     private void cleanBucketRange(int fromIndex, int toIndex) {
+         if (fromIndex < toIndex) {
+             for (int i = fromIndex; i < toIndex; i++) {
+                 buckets.get(i).reset();
+             }
+         } else {
+             for (int i = fromIndex; i < NUMBER_OF_BUCKETS; i++) {
+                 buckets.get(i).reset();
+             }
+             for (int i = 0; i < toIndex; i++) {
+                 buckets.get(i).reset();
+             }
+         }
+     }
+ 
+     private long sumBuckets(Instant toTime, int numberOfBuckets) {
+ 
+         // increment toIndex to include the current bucket into the sum
+         int toIndex = normalizeIndex(calculateIndexOfTick(toTime) + 1);
+         int fromIndex = normalizeIndex(toIndex - numberOfBuckets);
+         LongAdder adder = new LongAdder();
+ 
+         if (fromIndex < toIndex) {
+             buckets.stream()
+                     .skip(fromIndex)
+                     .limit(toIndex - fromIndex)
+                     .mapToLong(LongAdder::longValue)
+                     .forEach(adder::add);
+         } else {
+             buckets.stream().limit(toIndex).mapToLong(LongAdder::longValue).forEach(adder::add);
+             buckets.stream().skip(fromIndex).mapToLong(LongAdder::longValue).forEach(adder::add);
+         }
+         long retval = adder.longValue();
+         return retval;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-21.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-21.html new file mode 100644 index 0000000000..2738109be0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-21.html @@ -0,0 +1,211 @@ + + + + + + + + Coverage Report > SlidingTimeWindowReservoir + + + + + + +
+ + +

Coverage Summary for Class: SlidingTimeWindowReservoir (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 0% + + + (0/8) + + + + 81.8% + + + (27/33) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.ConcurrentSkipListMap;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicLong;
+ 
+ /**
+  * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
+  * in the last {@code N} seconds (or other time unit).
+  */
+ public class SlidingTimeWindowReservoir implements Reservoir {
+     // allow for this many duplicate ticks before overwriting measurements
+     private static final int COLLISION_BUFFER = 256;
+     // only trim on updating once every N
+     private static final int TRIM_THRESHOLD = 256;
+     // offsets the front of the time window for the purposes of clearing the buffer in trim
+     private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;
+ 
+     private final Clock clock;
+     private final ConcurrentSkipListMap<Long, Long> measurements;
+     private final long window;
+     private final AtomicLong lastTick;
+     private final AtomicLong count;
+     private final long startTick;
+ 
+     /**
+      * Creates a new {@link SlidingTimeWindowReservoir} with the given window of time.
+      *
+      * @param window     the window of time
+      * @param windowUnit the unit of {@code window}
+      */
+     public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit) {
+         this(window, windowUnit, Clock.defaultClock());
+     }
+ 
+     /**
+      * Creates a new {@link SlidingTimeWindowReservoir} with the given clock and window of time.
+      *
+      * @param window     the window of time
+      * @param windowUnit the unit of {@code window}
+      * @param clock      the {@link Clock} to use
+      */
+     public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit, Clock clock) {
+         this.startTick = clock.getTick();
+         this.clock = clock;
+         this.measurements = new ConcurrentSkipListMap<>();
+         this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;
+         this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);
+         this.count = new AtomicLong();
+     }
+ 
+     @Override
+     public int size() {
+         trim();
+         return measurements.size();
+     }
+ 
+     @Override
+     public void update(long value) {
+         if (count.incrementAndGet() % TRIM_THRESHOLD == 0) {
+             trim();
+         }
+         measurements.put(getTick(), value);
+     }
+ 
+     @Override
+     public Snapshot getSnapshot() {
+         trim();
+         return new UniformSnapshot(measurements.values());
+     }
+ 
+     private long getTick() {
+         for ( ;; ) {
+             final long oldTick = lastTick.get();
+             final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;
+             // ensure the tick is strictly incrementing even if there are duplicate ticks
+             final long newTick = tick - oldTick > 0 ? tick : oldTick + 1;
+             if (lastTick.compareAndSet(oldTick, newTick)) {
+                 return newTick;
+             }
+         }
+     }
+ 
+     private void trim() {
+         final long now = getTick();
+         final long windowStart = now - window;
+         final long windowEnd = now + CLEAR_BUFFER;
+         if (windowStart < windowEnd) {
+             measurements.headMap(windowStart).clear();
+             measurements.tailMap(windowEnd).clear();
+         } else {
+             measurements.subMap(windowEnd, windowStart).clear();
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-22.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-22.html new file mode 100644 index 0000000000..31752e0cfa --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-22.html @@ -0,0 +1,159 @@ + + + + + + + + Coverage Report > SlidingWindowReservoir + + + + + + +
+ + +

Coverage Summary for Class: SlidingWindowReservoir (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 0% + + + (0/2) + + + + 84.6% + + + (11/13) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import static java.lang.Math.min;
+ 
+ /**
+  * A {@link Reservoir} implementation backed by a sliding window that stores the last {@code N}
+  * measurements.
+  */
+ public class SlidingWindowReservoir implements Reservoir {
+     private final long[] measurements;
+     private long count;
+ 
+     /**
+      * Creates a new {@link SlidingWindowReservoir} which stores the last {@code size} measurements.
+      *
+      * @param size the number of measurements to store
+      */
+     public SlidingWindowReservoir(int size) {
+         this.measurements = new long[size];
+         this.count = 0;
+     }
+ 
+     @Override
+     public synchronized int size() {
+         return (int) min(count, measurements.length);
+     }
+ 
+     @Override
+     public synchronized void update(long value) {
+         measurements[(int) (count++ % measurements.length)] = value;
+     }
+ 
+     @Override
+     public Snapshot getSnapshot() {
+         final long[] values = new long[size()];
+         for (int i = 0; i < values.length; i++) {
+             synchronized (this) {
+                 values[i] = measurements[i];
+             }
+         }
+         return new UniformSnapshot(values);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-23.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-23.html new file mode 100644 index 0000000000..b9918af14d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-23.html @@ -0,0 +1,286 @@ + + + + + + + + Coverage Report > Snapshot + + + + + + +
+ + +

Coverage Summary for Class: Snapshot (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
Snapshot + + 100% + + + (7/7) + + + + 100% + + + (7/7) + +
Snapshot$MockitoMock$13ZN2lIT
Snapshot$MockitoMock$13ZN2lIT$auxiliary$ghyMfif7
Snapshot$MockitoMock$13ZN2lIT$auxiliary$vgx4u6lT
Snapshot$MockitoMock$3e01HklY
Snapshot$MockitoMock$3e01HklY$auxiliary$GlDuXJPt
Snapshot$MockitoMock$3e01HklY$auxiliary$orPbaUDm
Snapshot$MockitoMock$FpF5gbVb
Snapshot$MockitoMock$FpF5gbVb$auxiliary$VRjpK2ON
Snapshot$MockitoMock$FpF5gbVb$auxiliary$WtvcI0Gj
Snapshot$MockitoMock$Kb3VKrRE
Snapshot$MockitoMock$Kb3VKrRE$auxiliary$BtEytXpR
Snapshot$MockitoMock$Kb3VKrRE$auxiliary$h748o3kg
Snapshot$MockitoMock$Nv4MMHFh
Snapshot$MockitoMock$Nv4MMHFh$auxiliary$qeB0uPlv
Snapshot$MockitoMock$Nv4MMHFh$auxiliary$uyYKI7Ne
Snapshot$MockitoMock$YDUbr5om
Snapshot$MockitoMock$YDUbr5om$auxiliary$DrMOvmDt
Snapshot$MockitoMock$YDUbr5om$auxiliary$TzUuRMoR
Total + + 100% + + + (7/7) + + + + 100% + + + (7/7) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.io.OutputStream;
+ 
+ /**
+  * A statistical snapshot of a {@link Snapshot}.
+  */
+ public abstract class Snapshot {
+ 
+     /**
+      * Returns the value at the given quantile.
+      *
+      * @param quantile a given quantile, in {@code [0..1]}
+      * @return the value in the distribution at {@code quantile}
+      */
+     public abstract double getValue(double quantile);
+ 
+     /**
+      * Returns the entire set of values in the snapshot.
+      *
+      * @return the entire set of values
+      */
+     public abstract long[] getValues();
+ 
+     /**
+      * Returns the number of values in the snapshot.
+      *
+      * @return the number of values
+      */
+     public abstract int size();
+ 
+     /**
+      * Returns the median value in the distribution.
+      *
+      * @return the median value
+      */
+     public double getMedian() {
+         return getValue(0.5);
+     }
+ 
+     /**
+      * Returns the value at the 75th percentile in the distribution.
+      *
+      * @return the value at the 75th percentile
+      */
+     public double get75thPercentile() {
+         return getValue(0.75);
+     }
+ 
+     /**
+      * Returns the value at the 95th percentile in the distribution.
+      *
+      * @return the value at the 95th percentile
+      */
+     public double get95thPercentile() {
+         return getValue(0.95);
+     }
+ 
+     /**
+      * Returns the value at the 98th percentile in the distribution.
+      *
+      * @return the value at the 98th percentile
+      */
+     public double get98thPercentile() {
+         return getValue(0.98);
+     }
+ 
+     /**
+      * Returns the value at the 99th percentile in the distribution.
+      *
+      * @return the value at the 99th percentile
+      */
+     public double get99thPercentile() {
+         return getValue(0.99);
+     }
+ 
+     /**
+      * Returns the value at the 99.9th percentile in the distribution.
+      *
+      * @return the value at the 99.9th percentile
+      */
+     public double get999thPercentile() {
+         return getValue(0.999);
+     }
+ 
+     /**
+      * Returns the highest value in the snapshot.
+      *
+      * @return the highest value
+      */
+     public abstract long getMax();
+ 
+     /**
+      * Returns the arithmetic mean of the values in the snapshot.
+      *
+      * @return the arithmetic mean
+      */
+     public abstract double getMean();
+ 
+     /**
+      * Returns the lowest value in the snapshot.
+      *
+      * @return the lowest value
+      */
+     public abstract long getMin();
+ 
+     /**
+      * Returns the standard deviation of the values in the snapshot.
+      *
+      * @return the standard value
+      */
+     public abstract double getStdDev();
+ 
+     /**
+      * Writes the values of the snapshot to the given stream.
+      *
+      * @param output an output stream
+      */
+     public abstract void dump(OutputStream output);
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-24.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-24.html new file mode 100644 index 0000000000..4463fd158e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-24.html @@ -0,0 +1,353 @@ + + + + + + + + Coverage Report > Timer + + + + + + +
+ + +

Coverage Summary for Class: Timer (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
Timer + + 100% + + + (17/17) + + + + 50% + + + (1/2) + + + + 89.7% + + + (35/39) + +
Timer$Context + + 100% + + + (3/3) + + + + 80% + + + (8/10) + +
Total + + 100% + + + (20/20) + + + + 50% + + + (1/2) + + + + 87.8% + + + (43/49) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.time.Duration;
+ import java.util.concurrent.Callable;
+ import java.util.concurrent.TimeUnit;
+ import java.util.function.Supplier;
+ 
+ /**
+  * A timer metric which aggregates timing durations and provides duration statistics, plus
+  * throughput statistics via {@link Meter}.
+  */
+ public class Timer implements Metered, Sampling {
+     /**
+      * A timing context.
+      *
+      * @see Timer#time()
+      */
+     public static class Context implements AutoCloseable {
+         private final Timer timer;
+         private final Clock clock;
+         private final long startTime;
+ 
+         Context(Timer timer, Clock clock) {
+             this.timer = timer;
+             this.clock = clock;
+             this.startTime = clock.getTick();
+         }
+ 
+         /**
+          * Updates the timer with the difference between current and start time. Call to this method will
+          * not reset the start time. Multiple calls result in multiple updates.
+          *
+          * @return the elapsed time in nanoseconds
+          */
+         public long stop() {
+             final long elapsed = clock.getTick() - startTime;
+             timer.update(elapsed, TimeUnit.NANOSECONDS);
+             return elapsed;
+         }
+ 
+         /**
+          * Equivalent to calling {@link #stop()}.
+          */
+         @Override
+         public void close() {
+             stop();
+         }
+     }
+ 
+     private final Meter meter;
+     private final Histogram histogram;
+     private final Clock clock;
+ 
+     /**
+      * Creates a new {@link Timer} using an {@link ExponentiallyDecayingReservoir} and the default
+      * {@link Clock}.
+      */
+     public Timer() {
+         this(new ExponentiallyDecayingReservoir());
+     }
+ 
+     /**
+      * Creates a new {@link Timer} that uses the given {@link Reservoir}.
+      *
+      * @param reservoir the {@link Reservoir} implementation the timer should use
+      */
+     public Timer(Reservoir reservoir) {
+         this(reservoir, Clock.defaultClock());
+     }
+ 
+     /**
+      * Creates a new {@link Timer} that uses the given {@link Reservoir} and {@link Clock}.
+      *
+      * @param reservoir the {@link Reservoir} implementation the timer should use
+      * @param clock     the {@link Clock} implementation the timer should use
+      */
+     public Timer(Reservoir reservoir, Clock clock) {
+         this(new Meter(clock), new Histogram(reservoir), clock);
+     }
+ 
+     public Timer(Meter meter, Histogram histogram, Clock clock) {
+         this.meter = meter;
+         this.histogram = histogram;
+         this.clock = clock;
+     }
+ 
+     /**
+      * Adds a recorded duration.
+      *
+      * @param duration the length of the duration
+      * @param unit     the scale unit of {@code duration}
+      */
+     public void update(long duration, TimeUnit unit) {
+         update(unit.toNanos(duration));
+     }
+ 
+     /**
+      * Adds a recorded duration.
+      *
+      * @param duration the {@link Duration} to add to the timer. Negative or zero value are ignored.
+      */
+     public void update(Duration duration) {
+         update(duration.toNanos());
+     }
+ 
+     /**
+      * Times and records the duration of event.
+      *
+      * @param event a {@link Callable} whose {@link Callable#call()} method implements a process
+      *              whose duration should be timed
+      * @param <T>   the type of the value returned by {@code event}
+      * @return the value returned by {@code event}
+      * @throws Exception if {@code event} throws an {@link Exception}
+      */
+     public <T> T time(Callable<T> event) throws Exception {
+         final long startTime = clock.getTick();
+         try {
+             return event.call();
+         } finally {
+             update(clock.getTick() - startTime);
+         }
+     }
+ 
+     /**
+      * Times and records the duration of event. Should not throw exceptions, for that use the
+      * {@link #time(Callable)} method.
+      *
+      * @param event a {@link Supplier} whose {@link Supplier#get()} method implements a process
+      *              whose duration should be timed
+      * @param <T>   the type of the value returned by {@code event}
+      * @return the value returned by {@code event}
+      */
+     public <T> T timeSupplier(Supplier<T> event) {
+         final long startTime = clock.getTick();
+         try {
+             return event.get();
+         } finally {
+             update(clock.getTick() - startTime);
+         }
+     }
+ 
+     /**
+      * Times and records the duration of event.
+      *
+      * @param event a {@link Runnable} whose {@link Runnable#run()} method implements a process
+      *              whose duration should be timed
+      */
+     public void time(Runnable event) {
+         final long startTime = clock.getTick();
+         try {
+             event.run();
+         } finally {
+             update(clock.getTick() - startTime);
+         }
+     }
+ 
+     /**
+      * Returns a new {@link Context}.
+      *
+      * @return a new {@link Context}
+      * @see Context
+      */
+     public Context time() {
+         return new Context(this, clock);
+     }
+ 
+     @Override
+     public long getCount() {
+         return histogram.getCount();
+     }
+ 
+     @Override
+     public double getFifteenMinuteRate() {
+         return meter.getFifteenMinuteRate();
+     }
+ 
+     @Override
+     public double getFiveMinuteRate() {
+         return meter.getFiveMinuteRate();
+     }
+ 
+     @Override
+     public double getMeanRate() {
+         return meter.getMeanRate();
+     }
+ 
+     @Override
+     public double getOneMinuteRate() {
+         return meter.getOneMinuteRate();
+     }
+ 
+     @Override
+     public Snapshot getSnapshot() {
+         return histogram.getSnapshot();
+     }
+ 
+     private void update(long duration) {
+         if (duration >= 0) {
+             histogram.update(duration);
+             meter.mark();
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-25.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-25.html new file mode 100644 index 0000000000..1f7d599e8e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-25.html @@ -0,0 +1,186 @@ + + + + + + + + Coverage Report > UniformReservoir + + + + + + +
+ + +

Coverage Summary for Class: UniformReservoir (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 0% + + + (0/10) + + + + 84% + + + (21/25) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.ThreadLocalRandom;
+ import java.util.concurrent.atomic.AtomicLong;
+ import java.util.concurrent.atomic.AtomicLongArray;
+ 
+ /**
+  * A random sampling reservoir of a stream of {@code long}s. Uses Vitter's Algorithm R to produce a
+  * statistically representative sample.
+  *
+  * @see <a href="http://www.cs.umd.edu/~samir/498/vitter.pdf">Random Sampling with a Reservoir</a>
+  */
+ public class UniformReservoir implements Reservoir {
+     private static final int DEFAULT_SIZE = 1028;
+     private final AtomicLong count = new AtomicLong();
+     private final AtomicLongArray values;
+ 
+     /**
+      * Creates a new {@link UniformReservoir} of 1028 elements, which offers a 99.9% confidence level
+      * with a 5% margin of error assuming a normal distribution.
+      */
+     public UniformReservoir() {
+         this(DEFAULT_SIZE);
+     }
+ 
+     /**
+      * Creates a new {@link UniformReservoir}.
+      *
+      * @param size the number of samples to keep in the sampling reservoir
+      */
+     public UniformReservoir(int size) {
+         this.values = new AtomicLongArray(size);
+         for (int i = 0; i < values.length(); i++) {
+             values.set(i, 0);
+         }
+         count.set(0);
+     }
+ 
+     @Override
+     public int size() {
+         final long c = count.get();
+         if (c > values.length()) {
+             return values.length();
+         }
+         return (int) c;
+     }
+ 
+     @Override
+     public void update(long value) {
+         final long c = count.incrementAndGet();
+         if (c <= values.length()) {
+             values.set((int) c - 1, value);
+         } else {
+             final long r = ThreadLocalRandom.current().nextLong(c);
+             if (r < values.length()) {
+                 values.set((int) r, value);
+             }
+         }
+     }
+ 
+     @Override
+     public Snapshot getSnapshot() {
+         final int s = size();
+         long[] copy = new long[s];
+         for (int i = 0; i < s; i++) {
+             copy[i] = values.get(i);
+         }
+         return new UniformSnapshot(copy);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-26.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-26.html new file mode 100644 index 0000000000..891f3c57d0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-26.html @@ -0,0 +1,293 @@ + + + + + + + + Coverage Report > UniformSnapshot + + + + + + +
+ + +

Coverage Summary for Class: UniformSnapshot (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 0% + + + (0/28) + + + + 92.3% + + + (48/52) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.io.OutputStream;
+ import java.io.OutputStreamWriter;
+ import java.io.PrintWriter;
+ import java.util.Arrays;
+ import java.util.Collection;
+ 
+ import static java.lang.Math.floor;
+ import static java.nio.charset.StandardCharsets.UTF_8;
+ 
+ /**
+  * A statistical snapshot of a {@link UniformSnapshot}.
+  */
+ public class UniformSnapshot extends Snapshot {
+ 
+     private final long[] values;
+ 
+     /**
+      * Create a new {@link Snapshot} with the given values.
+      *
+      * @param values an unordered set of values in the reservoir
+      */
+     public UniformSnapshot(Collection<Long> values) {
+         final Object[] copy = values.toArray();
+         this.values = new long[copy.length];
+         for (int i = 0; i < copy.length; i++) {
+             this.values[i] = (Long) copy[i];
+         }
+         Arrays.sort(this.values);
+     }
+ 
+     /**
+      * Create a new {@link Snapshot} with the given values.
+      *
+      * @param values an unordered set of values in the reservoir that can be used by this class directly
+      */
+     public UniformSnapshot(long[] values) {
+         this.values = Arrays.copyOf(values, values.length);
+         Arrays.sort(this.values);
+     }
+ 
+     /**
+      * Returns the value at the given quantile.
+      *
+      * @param quantile a given quantile, in {@code [0..1]}
+      * @return the value in the distribution at {@code quantile}
+      */
+     @Override
+     public double getValue(double quantile) {
+         if (quantile < 0.0 || quantile > 1.0 || Double.isNaN(quantile)) {
+             throw new IllegalArgumentException(quantile + " is not in [0..1]");
+         }
+ 
+         if (values.length == 0) {
+             return 0.0;
+         }
+ 
+         final double pos = quantile * (values.length + 1);
+         final int index = (int) pos;
+ 
+         if (index < 1) {
+             return values[0];
+         }
+ 
+         if (index >= values.length) {
+             return values[values.length - 1];
+         }
+ 
+         final double lower = values[index - 1];
+         final double upper = values[index];
+         return lower + (pos - floor(pos)) * (upper - lower);
+     }
+ 
+     /**
+      * Returns the number of values in the snapshot.
+      *
+      * @return the number of values
+      */
+     @Override
+     public int size() {
+         return values.length;
+     }
+ 
+     /**
+      * Returns the entire set of values in the snapshot.
+      *
+      * @return the entire set of values
+      */
+     @Override
+     public long[] getValues() {
+         return Arrays.copyOf(values, values.length);
+     }
+ 
+     /**
+      * Returns the highest value in the snapshot.
+      *
+      * @return the highest value
+      */
+     @Override
+     public long getMax() {
+         if (values.length == 0) {
+             return 0;
+         }
+         return values[values.length - 1];
+     }
+ 
+     /**
+      * Returns the lowest value in the snapshot.
+      *
+      * @return the lowest value
+      */
+     @Override
+     public long getMin() {
+         if (values.length == 0) {
+             return 0;
+         }
+         return values[0];
+     }
+ 
+     /**
+      * Returns the arithmetic mean of the values in the snapshot.
+      *
+      * @return the arithmetic mean
+      */
+     @Override
+     public double getMean() {
+         if (values.length == 0) {
+             return 0;
+         }
+ 
+         double sum = 0;
+         for (long value : values) {
+             sum += value;
+         }
+         return sum / values.length;
+     }
+ 
+     /**
+      * Returns the standard deviation of the values in the snapshot.
+      *
+      * @return the standard deviation value
+      */
+     @Override
+     public double getStdDev() {
+         // two-pass algorithm for variance, avoids numeric overflow
+ 
+         if (values.length <= 1) {
+             return 0;
+         }
+ 
+         final double mean = getMean();
+         double sum = 0;
+ 
+         for (long value : values) {
+             final double diff = value - mean;
+             sum += diff * diff;
+         }
+ 
+         final double variance = sum / (values.length - 1);
+         return Math.sqrt(variance);
+     }
+ 
+     /**
+      * Writes the values of the snapshot to the given stream.
+      *
+      * @param output an output stream
+      */
+     @Override
+     public void dump(OutputStream output) {
+         try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {
+             for (long value : values) {
+                 out.printf("%d%n", value);
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-27.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-27.html new file mode 100644 index 0000000000..33ae618ca7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-27.html @@ -0,0 +1,345 @@ + + + + + + + + Coverage Report > WeightedSnapshot + + + + + + +
+ + +

Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
WeightedSnapshot + + 100% + + + (9/9) + + + + 0% + + + (0/36) + + + + 94.4% + + + (51/54) + +
WeightedSnapshot$WeightedSample + + 100% + + + (1/1) + + + + 100% + + + (4/4) + +
Total + + 100% + + + (10/10) + + + + 0% + + + (0/36) + + + + 94.8% + + + (55/58) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.io.OutputStream;
+ import java.io.OutputStreamWriter;
+ import java.io.PrintWriter;
+ import java.util.Arrays;
+ import java.util.Collection;
+ import java.util.Comparator;
+ 
+ import static java.nio.charset.StandardCharsets.UTF_8;
+ 
+ /**
+  * A statistical snapshot of a {@link WeightedSnapshot}.
+  */
+ public class WeightedSnapshot extends Snapshot {
+ 
+     /**
+      * A single sample item with value and its weights for {@link WeightedSnapshot}.
+      */
+     public static class WeightedSample {
+         public final long value;
+         public final double weight;
+ 
+         public WeightedSample(long value, double weight) {
+             this.value = value;
+             this.weight = weight;
+         }
+     }
+ 
+     private final long[] values;
+     private final double[] normWeights;
+     private final double[] quantiles;
+ 
+     /**
+      * Create a new {@link Snapshot} with the given values.
+      *
+      * @param values an unordered set of values in the reservoir
+      */
+     public WeightedSnapshot(Collection<WeightedSample> values) {
+         final WeightedSample[] copy = values.toArray(new WeightedSample[]{});
+ 
+         Arrays.sort(copy, Comparator.comparingLong(w -> w.value));
+ 
+         this.values = new long[copy.length];
+         this.normWeights = new double[copy.length];
+         this.quantiles = new double[copy.length];
+ 
+         double sumWeight = 0;
+         for (WeightedSample sample : copy) {
+             sumWeight += sample.weight;
+         }
+ 
+         for (int i = 0; i < copy.length; i++) {
+             this.values[i] = copy[i].value;
+             this.normWeights[i] = sumWeight != 0 ? copy[i].weight / sumWeight : 0;
+         }
+ 
+         for (int i = 1; i < copy.length; i++) {
+             this.quantiles[i] = this.quantiles[i - 1] + this.normWeights[i - 1];
+         }
+     }
+ 
+     /**
+      * Returns the value at the given quantile.
+      *
+      * @param quantile a given quantile, in {@code [0..1]}
+      * @return the value in the distribution at {@code quantile}
+      */
+     @Override
+     public double getValue(double quantile) {
+         if (quantile < 0.0 || quantile > 1.0 || Double.isNaN(quantile)) {
+             throw new IllegalArgumentException(quantile + " is not in [0..1]");
+         }
+ 
+         if (values.length == 0) {
+             return 0.0;
+         }
+ 
+         int posx = Arrays.binarySearch(quantiles, quantile);
+         if (posx < 0)
+             posx = ((-posx) - 1) - 1;
+ 
+         if (posx < 1) {
+             return values[0];
+         }
+ 
+         if (posx >= values.length) {
+             return values[values.length - 1];
+         }
+ 
+         return values[posx];
+     }
+ 
+     /**
+      * Returns the number of values in the snapshot.
+      *
+      * @return the number of values
+      */
+     @Override
+     public int size() {
+         return values.length;
+     }
+ 
+     /**
+      * Returns the entire set of values in the snapshot.
+      *
+      * @return the entire set of values
+      */
+     @Override
+     public long[] getValues() {
+         return Arrays.copyOf(values, values.length);
+     }
+ 
+     /**
+      * Returns the highest value in the snapshot.
+      *
+      * @return the highest value
+      */
+     @Override
+     public long getMax() {
+         if (values.length == 0) {
+             return 0;
+         }
+         return values[values.length - 1];
+     }
+ 
+     /**
+      * Returns the lowest value in the snapshot.
+      *
+      * @return the lowest value
+      */
+     @Override
+     public long getMin() {
+         if (values.length == 0) {
+             return 0;
+         }
+         return values[0];
+     }
+ 
+     /**
+      * Returns the weighted arithmetic mean of the values in the snapshot.
+      *
+      * @return the weighted arithmetic mean
+      */
+     @Override
+     public double getMean() {
+         if (values.length == 0) {
+             return 0;
+         }
+ 
+         double sum = 0;
+         for (int i = 0; i < values.length; i++) {
+             sum += values[i] * normWeights[i];
+         }
+         return sum;
+     }
+ 
+     /**
+      * Returns the weighted standard deviation of the values in the snapshot.
+      *
+      * @return the weighted standard deviation value
+      */
+     @Override
+     public double getStdDev() {
+         // two-pass algorithm for variance, avoids numeric overflow
+ 
+         if (values.length <= 1) {
+             return 0;
+         }
+ 
+         final double mean = getMean();
+         double variance = 0;
+ 
+         for (int i = 0; i < values.length; i++) {
+             final double diff = values[i] - mean;
+             variance += normWeights[i] * diff * diff;
+         }
+ 
+         return Math.sqrt(variance);
+     }
+ 
+     /**
+      * Writes the values of the snapshot to the given stream.
+      *
+      * @param output an output stream
+      */
+     @Override
+     public void dump(OutputStream output) {
+         try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {
+             for (long value : values) {
+                 out.printf("%d%n", value);
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-28.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-28.html new file mode 100644 index 0000000000..44cee0b3ae --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-28.html @@ -0,0 +1,85 @@ + + + + + + + + Coverage Report > MetricSet + + + + + + +
+ + +

Coverage Summary for Class: MetricSet (com.codahale.metrics)

+ + + + + + + + + +
Class
MetricSet
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.Map;
+ 
+ /**
+  * A set of named metrics.
+  *
+  * @see MetricRegistry#registerAll(MetricSet)
+  */
+ public interface MetricSet extends Metric {
+     /**
+      * A map of metric names to metrics.
+      *
+      * @return the metrics
+      */
+     Map<String, Metric> getMetrics();
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-29.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-29.html new file mode 100644 index 0000000000..f733f9e9d0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-29.html @@ -0,0 +1,116 @@ + + + + + + + + Coverage Report > Metered + + + + + + +
+ + +

Coverage Summary for Class: Metered (com.codahale.metrics)

+ + + + + + + + + +
Class
Metered
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * An object which maintains mean and moving average rates.
+  */
+ public interface Metered extends Metric, Counting {
+     /**
+      * Returns the number of events which have been marked.
+      *
+      * @return the number of events which have been marked
+      */
+     @Override
+     long getCount();
+ 
+     /**
+      * Returns the fifteen-minute moving average rate at which events have
+      * occurred since the meter was created.
+      *
+      * @return the fifteen-minute moving average rate at which events have
+      * occurred since the meter was created
+      */
+     double getFifteenMinuteRate();
+ 
+     /**
+      * Returns the five-minute moving average rate at which events have
+      * occurred since the meter was created.
+      *
+      * @return the five-minute moving average rate at which events have
+      * occurred since the meter was created
+      */
+     double getFiveMinuteRate();
+ 
+     /**
+      * Returns the mean rate at which events have occurred since the meter was created.
+      *
+      * @return the mean rate at which events have occurred since the meter was created
+      */
+     double getMeanRate();
+ 
+     /**
+      * Returns the one-minute moving average rate at which events have
+      * occurred since the meter was created.
+      *
+      * @return the one-minute moving average rate at which events have
+      * occurred since the meter was created
+      */
+     double getOneMinuteRate();
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2a.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2a.html new file mode 100644 index 0000000000..9ee18ac0de --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2a.html @@ -0,0 +1,89 @@ + + + + + + + + Coverage Report > CsvFileProvider + + + + + + +
+ + +

Coverage Summary for Class: CsvFileProvider (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + +
Class
CsvFileProvider$MockitoMock$MWmzLYei
CsvFileProvider$MockitoMock$MWmzLYei$auxiliary$ehSg8rMB
CsvFileProvider$MockitoMock$MWmzLYei$auxiliary$risk2MOH
Total
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.io.File;
+ 
+ /**
+  * This interface allows a pluggable implementation of what file names
+  * the {@link CsvReporter} will write to.
+  */
+ public interface CsvFileProvider {
+ 
+     File getFile(File directory, String metricName);
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2b.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2b.html new file mode 100644 index 0000000000..a2876cacc6 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2b.html @@ -0,0 +1,82 @@ + + + + + + + + Coverage Report > SettableGauge + + + + + + +
+ + +

Coverage Summary for Class: SettableGauge (com.codahale.metrics)

+ + + + + + + + + +
Class
SettableGauge
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * <p>
+  * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
+  * See {@link DefaultSettableGauge}.
+  * </p>
+  */
+ public interface SettableGauge<T> extends Gauge<T> {
+     /**
+      * Set the metric to a new value.
+      */
+     void setValue(T value);
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2c.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2c.html new file mode 100644 index 0000000000..0e4cae4c3d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2c.html @@ -0,0 +1,81 @@ + + + + + + + + Coverage Report > Sampling + + + + + + +
+ + +

Coverage Summary for Class: Sampling (com.codahale.metrics)

+ + + + + + + + + +
Class
Sampling
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * An object which samples values.
+  */
+ public interface Sampling {
+     /**
+      * Returns a snapshot of the values.
+      *
+      * @return a snapshot of the values
+      */
+     Snapshot getSnapshot();
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2d.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2d.html new file mode 100644 index 0000000000..debafd3c86 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2d.html @@ -0,0 +1,116 @@ + + + + + + + + Coverage Report > MovingAverages + + + + + + +
+ + +

Coverage Summary for Class: MovingAverages (com.codahale.metrics)

+ + + + + + + + + +
Class
MovingAverages
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * A triple of moving averages (one-, five-, and fifteen-minute
+  * moving average) as needed by {@link Meter}.
+  * <p>
+  * Included implementations are:
+  * <ul>
+  * <li>{@link ExponentialMovingAverages} exponential decaying average similar to the {@code top} Unix command.
+  * <li>{@link SlidingTimeWindowMovingAverages} simple (unweighted) moving average
+  * </ul>
+  */
+ public interface MovingAverages {
+ 
+     /**
+      * Tick the internal clock of the MovingAverages implementation if needed
+      * (according to the internal ticking interval)
+      */
+     void tickIfNecessary();
+ 
+     /**
+      * Update all three moving averages with n events having occurred since the last update.
+      *
+      * @param n
+      */
+     void update(long n);
+ 
+     /**
+      * Returns the one-minute moving average rate
+      *
+      * @return the one-minute moving average rate
+      */
+     double getM1Rate();
+ 
+     /**
+      * Returns the five-minute moving average rate
+      *
+      * @return the five-minute moving average rate
+      */
+     double getM5Rate();
+ 
+     /**
+      * Returns the fifteen-minute moving average rate
+      *
+      * @return the fifteen-minute moving average rate
+      */
+     double getM15Rate();
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2e.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2e.html new file mode 100644 index 0000000000..5e99d94d82 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2e.html @@ -0,0 +1,104 @@ + + + + + + + + Coverage Report > Reservoir + + + + + + +
+ + +

Coverage Summary for Class: Reservoir (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + +
Class
Reservoir$MockitoMock$Xat00O0m
Reservoir$MockitoMock$Xat00O0m$auxiliary$gyX0mddj
Reservoir$MockitoMock$Xat00O0m$auxiliary$tkDMhoo8
Total
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * A statistically representative reservoir of a data stream.
+  */
+ public interface Reservoir {
+     /**
+      * Returns the number of values recorded.
+      *
+      * @return the number of values recorded
+      */
+     int size();
+ 
+     /**
+      * Adds a new recorded value to the reservoir.
+      *
+      * @param value a new recorded value
+      */
+     void update(long value);
+ 
+     /**
+      * Returns a snapshot of the reservoir's values.
+      *
+      * @return a snapshot of the reservoir's values
+      */
+     Snapshot getSnapshot();
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2f.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2f.html new file mode 100644 index 0000000000..30d26568ea --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2f.html @@ -0,0 +1,85 @@ + + + + + + + + Coverage Report > Metric + + + + + + +
+ + +

Coverage Summary for Class: Metric (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + +
Class
Metric$MockitoMock$dZBiHsat
Metric$MockitoMock$dZBiHsat$auxiliary$0tPOIYMW
Metric$MockitoMock$dZBiHsat$auxiliary$G2h14riK
Total
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * A tag interface to indicate that a class is a metric.
+  */
+ public interface Metric {
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-3.html new file mode 100644 index 0000000000..e2bbedc66b --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-3.html @@ -0,0 +1,231 @@ + + + + + + + + Coverage Report > Clock + + + + + + +
+ + +

Coverage Summary for Class: Clock (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
Clock + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
Clock$MockitoMock$3DDItCNt
Clock$MockitoMock$3DDItCNt$auxiliary$aKMvv3Z3
Clock$MockitoMock$3DDItCNt$auxiliary$Ef7MSYlh
Clock$MockitoMock$5GGVOxxm
Clock$MockitoMock$5GGVOxxm$auxiliary$C1RbGPuA
Clock$MockitoMock$5GGVOxxm$auxiliary$QNg7USyl
Clock$MockitoMock$7oOqxfOc
Clock$MockitoMock$7oOqxfOc$auxiliary$0DestJlY
Clock$MockitoMock$7oOqxfOc$auxiliary$Y8I7ouOC
Clock$MockitoMock$P9YUk269
Clock$MockitoMock$P9YUk269$auxiliary$rwa1mito
Clock$MockitoMock$P9YUk269$auxiliary$u5yThMoW
Clock$UserTimeClock + + 100% + + + (2/2) + + + + 100% + + + (2/2) + +
Clock$UserTimeClockHolder + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
Total + + 100% + + + (6/6) + + + + 100% + + + (6/6) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * An abstraction for how time passes. It is passed to {@link Timer} to track timing.
+  */
+ public abstract class Clock {
+     /**
+      * Returns the current time tick.
+      *
+      * @return time tick in nanoseconds
+      */
+     public abstract long getTick();
+ 
+     /**
+      * Returns the current time in milliseconds.
+      *
+      * @return time in milliseconds
+      */
+     public long getTime() {
+         return System.currentTimeMillis();
+     }
+ 
+     /**
+      * The default clock to use.
+      *
+      * @return the default {@link Clock} instance
+      * @see Clock.UserTimeClock
+      */
+     public static Clock defaultClock() {
+         return UserTimeClockHolder.DEFAULT;
+     }
+ 
+     /**
+      * A clock implementation which returns the current time in epoch nanoseconds.
+      */
+     public static class UserTimeClock extends Clock {
+         @Override
+         public long getTick() {
+             return System.nanoTime();
+         }
+     }
+ 
+     private static class UserTimeClockHolder {
+         private static final Clock DEFAULT = new UserTimeClock();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-30.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-30.html new file mode 100644 index 0000000000..d73b6f3954 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-30.html @@ -0,0 +1,78 @@ + + + + + + + + Coverage Report > Reporter + + + + + + +
+ + +

Coverage Summary for Class: Reporter (com.codahale.metrics)

+ + + + + + + + + +
Class
Reporter
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.io.Closeable;
+ 
+ /*
+  * A tag interface to indicate that a class is a Reporter.
+  */
+ public interface Reporter extends Closeable {
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-31.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-31.html new file mode 100644 index 0000000000..0f6839b6bc --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-31.html @@ -0,0 +1,103 @@ + + + + + + + + Coverage Report > Gauge + + + + + + +
+ + +

Coverage Summary for Class: Gauge (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + +
Class
Gauge$MockitoMock$tAyrEU4k
Gauge$MockitoMock$tAyrEU4k$auxiliary$a6SOc20Q
Gauge$MockitoMock$tAyrEU4k$auxiliary$Kz9ao93C
Total
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ 
+ /**
+  * A gauge metric is an instantaneous reading of a particular value. To instrument a queue's depth,
+  * for example:<br>
+  * <pre><code>
+  * final Queue&lt;String&gt; queue = new ConcurrentLinkedQueue&lt;String&gt;();
+  * final Gauge&lt;Integer&gt; queueDepth = new Gauge&lt;Integer&gt;() {
+  *     public Integer getValue() {
+  *         return queue.size();
+  *     }
+  * };
+  * </code></pre>
+  *
+  * @param <T> the type of the metric's value
+  */
+ @FunctionalInterface
+ public interface Gauge<T> extends Metric {
+     /**
+      * Returns the metric's current value.
+      *
+      * @return the metric's current value
+      */
+     T getValue();
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-32.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-32.html new file mode 100644 index 0000000000..65f26bd97e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-32.html @@ -0,0 +1,81 @@ + + + + + + + + Coverage Report > Counting + + + + + + +
+ + +

Coverage Summary for Class: Counting (com.codahale.metrics)

+ + + + + + + + + +
Class
Counting
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * An interface for metric types which have counts.
+  */
+ public interface Counting {
+     /**
+      * Returns the current count.
+      *
+      * @return the current count
+      */
+     long getCount();
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-4.html new file mode 100644 index 0000000000..8f971fa7fc --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-4.html @@ -0,0 +1,510 @@ + + + + + + + + Coverage Report > ConsoleReporter + + + + + + +
+ + +

Coverage Summary for Class: ConsoleReporter (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
ConsoleReporter + + 100% + + + (11/11) + + + + 0% + + + (0/24) + + + + 90% + + + (90/100) + +
ConsoleReporter$1
ConsoleReporter$Builder + + 84.6% + + + (11/13) + + + + 85.7% + + + (30/35) + +
Total + + 91.7% + + + (22/24) + + + + 0% + + + (0/24) + + + + 88.9% + + + (120/135) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.io.PrintStream;
+ import java.text.DateFormat;
+ import java.util.Collections;
+ import java.util.Date;
+ import java.util.Locale;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.SortedMap;
+ import java.util.TimeZone;
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * A reporter which outputs measurements to a {@link PrintStream}, like {@code System.out}.
+  */
+ public class ConsoleReporter extends ScheduledReporter {
+     /**
+      * Returns a new {@link Builder} for {@link ConsoleReporter}.
+      *
+      * @param registry the registry to report
+      * @return a {@link Builder} instance for a {@link ConsoleReporter}
+      */
+     public static Builder forRegistry(MetricRegistry registry) {
+         return new Builder(registry);
+     }
+ 
+     /**
+      * A builder for {@link ConsoleReporter} instances. Defaults to using the default locale and
+      * time zone, writing to {@code System.out}, converting rates to events/second, converting
+      * durations to milliseconds, and not filtering metrics.
+      */
+     public static class Builder {
+         private final MetricRegistry registry;
+         private PrintStream output;
+         private Locale locale;
+         private Clock clock;
+         private TimeZone timeZone;
+         private TimeUnit rateUnit;
+         private TimeUnit durationUnit;
+         private MetricFilter filter;
+         private ScheduledExecutorService executor;
+         private boolean shutdownExecutorOnStop;
+         private Set<MetricAttribute> disabledMetricAttributes;
+ 
+         private Builder(MetricRegistry registry) {
+             this.registry = registry;
+             this.output = System.out;
+             this.locale = Locale.getDefault();
+             this.clock = Clock.defaultClock();
+             this.timeZone = TimeZone.getDefault();
+             this.rateUnit = TimeUnit.SECONDS;
+             this.durationUnit = TimeUnit.MILLISECONDS;
+             this.filter = MetricFilter.ALL;
+             this.executor = null;
+             this.shutdownExecutorOnStop = true;
+             disabledMetricAttributes = Collections.emptySet();
+         }
+ 
+         /**
+          * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
+          * Default value is true.
+          * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
+          *
+          * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
+          * @return {@code this}
+          */
+         public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
+             this.shutdownExecutorOnStop = shutdownExecutorOnStop;
+             return this;
+         }
+ 
+         /**
+          * Specifies the executor to use while scheduling reporting of metrics.
+          * Default value is null.
+          * Null value leads to executor will be auto created on start.
+          *
+          * @param executor the executor to use while scheduling reporting of metrics.
+          * @return {@code this}
+          */
+         public Builder scheduleOn(ScheduledExecutorService executor) {
+             this.executor = executor;
+             return this;
+         }
+ 
+         /**
+          * Write to the given {@link PrintStream}.
+          *
+          * @param output a {@link PrintStream} instance.
+          * @return {@code this}
+          */
+         public Builder outputTo(PrintStream output) {
+             this.output = output;
+             return this;
+         }
+ 
+         /**
+          * Format numbers for the given {@link Locale}.
+          *
+          * @param locale a {@link Locale}
+          * @return {@code this}
+          */
+         public Builder formattedFor(Locale locale) {
+             this.locale = locale;
+             return this;
+         }
+ 
+         /**
+          * Use the given {@link Clock} instance for the time.
+          *
+          * @param clock a {@link Clock} instance
+          * @return {@code this}
+          */
+         public Builder withClock(Clock clock) {
+             this.clock = clock;
+             return this;
+         }
+ 
+         /**
+          * Use the given {@link TimeZone} for the time.
+          *
+          * @param timeZone a {@link TimeZone}
+          * @return {@code this}
+          */
+         public Builder formattedFor(TimeZone timeZone) {
+             this.timeZone = timeZone;
+             return this;
+         }
+ 
+         /**
+          * Convert rates to the given time unit.
+          *
+          * @param rateUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertRatesTo(TimeUnit rateUnit) {
+             this.rateUnit = rateUnit;
+             return this;
+         }
+ 
+         /**
+          * Convert durations to the given time unit.
+          *
+          * @param durationUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertDurationsTo(TimeUnit durationUnit) {
+             this.durationUnit = durationUnit;
+             return this;
+         }
+ 
+         /**
+          * Only report metrics which match the given filter.
+          *
+          * @param filter a {@link MetricFilter}
+          * @return {@code this}
+          */
+         public Builder filter(MetricFilter filter) {
+             this.filter = filter;
+             return this;
+         }
+ 
+         /**
+          * Don't report the passed metric attributes for all metrics (e.g. "p999", "stddev" or "m15").
+          * See {@link MetricAttribute}.
+          *
+          * @param disabledMetricAttributes a {@link MetricFilter}
+          * @return {@code this}
+          */
+         public Builder disabledMetricAttributes(Set<MetricAttribute> disabledMetricAttributes) {
+             this.disabledMetricAttributes = disabledMetricAttributes;
+             return this;
+         }
+ 
+         /**
+          * Builds a {@link ConsoleReporter} with the given properties.
+          *
+          * @return a {@link ConsoleReporter}
+          */
+         public ConsoleReporter build() {
+             return new ConsoleReporter(registry,
+                     output,
+                     locale,
+                     clock,
+                     timeZone,
+                     rateUnit,
+                     durationUnit,
+                     filter,
+                     executor,
+                     shutdownExecutorOnStop,
+                     disabledMetricAttributes);
+         }
+     }
+ 
+     private static final int CONSOLE_WIDTH = 80;
+ 
+     private final PrintStream output;
+     private final Locale locale;
+     private final Clock clock;
+     private final DateFormat dateFormat;
+ 
+     private ConsoleReporter(MetricRegistry registry,
+                             PrintStream output,
+                             Locale locale,
+                             Clock clock,
+                             TimeZone timeZone,
+                             TimeUnit rateUnit,
+                             TimeUnit durationUnit,
+                             MetricFilter filter,
+                             ScheduledExecutorService executor,
+                             boolean shutdownExecutorOnStop,
+                             Set<MetricAttribute> disabledMetricAttributes) {
+         super(registry, "console-reporter", filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, disabledMetricAttributes);
+         this.output = output;
+         this.locale = locale;
+         this.clock = clock;
+         this.dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT,
+                 DateFormat.MEDIUM,
+                 locale);
+         dateFormat.setTimeZone(timeZone);
+     }
+ 
+     @Override
+     @SuppressWarnings("rawtypes")
+     public void report(SortedMap<String, Gauge> gauges,
+                        SortedMap<String, Counter> counters,
+                        SortedMap<String, Histogram> histograms,
+                        SortedMap<String, Meter> meters,
+                        SortedMap<String, Timer> timers) {
+         final String dateTime = dateFormat.format(new Date(clock.getTime()));
+         printWithBanner(dateTime, '=');
+         output.println();
+ 
+         if (!gauges.isEmpty()) {
+             printWithBanner("-- Gauges", '-');
+             for (Map.Entry<String, Gauge> entry : gauges.entrySet()) {
+                 output.println(entry.getKey());
+                 printGauge(entry.getValue());
+             }
+             output.println();
+         }
+ 
+         if (!counters.isEmpty()) {
+             printWithBanner("-- Counters", '-');
+             for (Map.Entry<String, Counter> entry : counters.entrySet()) {
+                 output.println(entry.getKey());
+                 printCounter(entry);
+             }
+             output.println();
+         }
+ 
+         if (!histograms.isEmpty()) {
+             printWithBanner("-- Histograms", '-');
+             for (Map.Entry<String, Histogram> entry : histograms.entrySet()) {
+                 output.println(entry.getKey());
+                 printHistogram(entry.getValue());
+             }
+             output.println();
+         }
+ 
+         if (!meters.isEmpty()) {
+             printWithBanner("-- Meters", '-');
+             for (Map.Entry<String, Meter> entry : meters.entrySet()) {
+                 output.println(entry.getKey());
+                 printMeter(entry.getValue());
+             }
+             output.println();
+         }
+ 
+         if (!timers.isEmpty()) {
+             printWithBanner("-- Timers", '-');
+             for (Map.Entry<String, Timer> entry : timers.entrySet()) {
+                 output.println(entry.getKey());
+                 printTimer(entry.getValue());
+             }
+             output.println();
+         }
+ 
+         output.println();
+         output.flush();
+     }
+ 
+     private void printMeter(Meter meter) {
+         printIfEnabled(MetricAttribute.COUNT, String.format(locale, "             count = %d", meter.getCount()));
+         printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, "         mean rate = %2.2f events/%s", convertRate(meter.getMeanRate()), getRateUnit()));
+         printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, "     1-minute rate = %2.2f events/%s", convertRate(meter.getOneMinuteRate()), getRateUnit()));
+         printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, "     5-minute rate = %2.2f events/%s", convertRate(meter.getFiveMinuteRate()), getRateUnit()));
+         printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, "    15-minute rate = %2.2f events/%s", convertRate(meter.getFifteenMinuteRate()), getRateUnit()));
+     }
+ 
+     private void printCounter(Map.Entry<String, Counter> entry) {
+         output.printf(locale, "             count = %d%n", entry.getValue().getCount());
+     }
+ 
+     private void printGauge(Gauge<?> gauge) {
+         output.printf(locale, "             value = %s%n", gauge.getValue());
+     }
+ 
+     private void printHistogram(Histogram histogram) {
+         printIfEnabled(MetricAttribute.COUNT, String.format(locale, "             count = %d", histogram.getCount()));
+         Snapshot snapshot = histogram.getSnapshot();
+         printIfEnabled(MetricAttribute.MIN, String.format(locale, "               min = %d", snapshot.getMin()));
+         printIfEnabled(MetricAttribute.MAX, String.format(locale, "               max = %d", snapshot.getMax()));
+         printIfEnabled(MetricAttribute.MEAN, String.format(locale, "              mean = %2.2f", snapshot.getMean()));
+         printIfEnabled(MetricAttribute.STDDEV, String.format(locale, "            stddev = %2.2f", snapshot.getStdDev()));
+         printIfEnabled(MetricAttribute.P50, String.format(locale, "            median = %2.2f", snapshot.getMedian()));
+         printIfEnabled(MetricAttribute.P75, String.format(locale, "              75%% <= %2.2f", snapshot.get75thPercentile()));
+         printIfEnabled(MetricAttribute.P95, String.format(locale, "              95%% <= %2.2f", snapshot.get95thPercentile()));
+         printIfEnabled(MetricAttribute.P98, String.format(locale, "              98%% <= %2.2f", snapshot.get98thPercentile()));
+         printIfEnabled(MetricAttribute.P99, String.format(locale, "              99%% <= %2.2f", snapshot.get99thPercentile()));
+         printIfEnabled(MetricAttribute.P999, String.format(locale, "            99.9%% <= %2.2f", snapshot.get999thPercentile()));
+     }
+ 
+     private void printTimer(Timer timer) {
+         final Snapshot snapshot = timer.getSnapshot();
+         printIfEnabled(MetricAttribute.COUNT, String.format(locale, "             count = %d", timer.getCount()));
+         printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, "         mean rate = %2.2f calls/%s", convertRate(timer.getMeanRate()), getRateUnit()));
+         printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, "     1-minute rate = %2.2f calls/%s", convertRate(timer.getOneMinuteRate()), getRateUnit()));
+         printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, "     5-minute rate = %2.2f calls/%s", convertRate(timer.getFiveMinuteRate()), getRateUnit()));
+         printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, "    15-minute rate = %2.2f calls/%s", convertRate(timer.getFifteenMinuteRate()), getRateUnit()));
+ 
+         printIfEnabled(MetricAttribute.MIN, String.format(locale, "               min = %2.2f %s", convertDuration(snapshot.getMin()), getDurationUnit()));
+         printIfEnabled(MetricAttribute.MAX, String.format(locale, "               max = %2.2f %s", convertDuration(snapshot.getMax()), getDurationUnit()));
+         printIfEnabled(MetricAttribute.MEAN, String.format(locale, "              mean = %2.2f %s", convertDuration(snapshot.getMean()), getDurationUnit()));
+         printIfEnabled(MetricAttribute.STDDEV, String.format(locale, "            stddev = %2.2f %s", convertDuration(snapshot.getStdDev()), getDurationUnit()));
+         printIfEnabled(MetricAttribute.P50, String.format(locale, "            median = %2.2f %s", convertDuration(snapshot.getMedian()), getDurationUnit()));
+         printIfEnabled(MetricAttribute.P75, String.format(locale, "              75%% <= %2.2f %s", convertDuration(snapshot.get75thPercentile()), getDurationUnit()));
+         printIfEnabled(MetricAttribute.P95, String.format(locale, "              95%% <= %2.2f %s", convertDuration(snapshot.get95thPercentile()), getDurationUnit()));
+         printIfEnabled(MetricAttribute.P98, String.format(locale, "              98%% <= %2.2f %s", convertDuration(snapshot.get98thPercentile()), getDurationUnit()));
+         printIfEnabled(MetricAttribute.P99, String.format(locale, "              99%% <= %2.2f %s", convertDuration(snapshot.get99thPercentile()), getDurationUnit()));
+         printIfEnabled(MetricAttribute.P999, String.format(locale, "            99.9%% <= %2.2f %s", convertDuration(snapshot.get999thPercentile()), getDurationUnit()));
+     }
+ 
+     private void printWithBanner(String s, char c) {
+         output.print(s);
+         output.print(' ');
+         for (int i = 0; i < (CONSOLE_WIDTH - s.length() - 1); i++) {
+             output.print(c);
+         }
+         output.println();
+     }
+ 
+     /**
+      * Print only if the attribute is enabled
+      *
+      * @param type   Metric attribute
+      * @param status Status to be logged
+      */
+     private void printIfEnabled(MetricAttribute type, String status) {
+         if (getDisabledMetricAttributes().contains(type)) {
+             return;
+         }
+ 
+         output.println(status);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-5.html new file mode 100644 index 0000000000..c7720a18d8 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-5.html @@ -0,0 +1,160 @@ + + + + + + + + Coverage Report > Counter + + + + + + +
+ + +

Coverage Summary for Class: Counter (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 75% + + + (9/12) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.atomic.LongAdder;
+ 
+ /**
+  * An incrementing and decrementing counter metric.
+  */
+ public class Counter implements Metric, Counting {
+     private final LongAdder count;
+ 
+     public Counter() {
+         this.count = new LongAdder();
+     }
+ 
+     /**
+      * Increment the counter by one.
+      */
+     public void inc() {
+         inc(1);
+     }
+ 
+     /**
+      * Increment the counter by {@code n}.
+      *
+      * @param n the amount by which the counter will be increased
+      */
+     public void inc(long n) {
+         count.add(n);
+     }
+ 
+     /**
+      * Decrement the counter by one.
+      */
+     public void dec() {
+         dec(1);
+     }
+ 
+     /**
+      * Decrement the counter by {@code n}.
+      *
+      * @param n the amount by which the counter will be decreased
+      */
+     public void dec(long n) {
+         count.add(-n);
+     }
+ 
+     /**
+      * Returns the counter's current value.
+      *
+      * @return the counter's current value
+      */
+     @Override
+     public long getCount() {
+         return count.sum();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-6.html new file mode 100644 index 0000000000..822d1403e4 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-6.html @@ -0,0 +1,497 @@ + + + + + + + + Coverage Report > CsvReporter + + + + + + +
+ + +

Coverage Summary for Class: CsvReporter (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
CsvReporter + + 91.7% + + + (11/12) + + + + 0% + + + (0/16) + + + + 88% + + + (81/92) + +
CsvReporter$1
CsvReporter$Builder + + 83.3% + + + (10/12) + + + + 84.4% + + + (27/32) + +
Total + + 87.5% + + + (21/24) + + + + 0% + + + (0/16) + + + + 87.1% + + + (108/124) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import java.io.File;
+ import java.io.FileOutputStream;
+ import java.io.IOException;
+ import java.io.OutputStreamWriter;
+ import java.io.PrintWriter;
+ import java.util.Locale;
+ import java.util.Map;
+ import java.util.SortedMap;
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.TimeUnit;
+ 
+ import static java.nio.charset.StandardCharsets.UTF_8;
+ 
+ /**
+  * A reporter which creates a comma-separated values file of the measurements for each metric.
+  */
+ public class CsvReporter extends ScheduledReporter {
+     private static final String DEFAULT_SEPARATOR = ",";
+ 
+     /**
+      * Returns a new {@link Builder} for {@link CsvReporter}.
+      *
+      * @param registry the registry to report
+      * @return a {@link Builder} instance for a {@link CsvReporter}
+      */
+     public static Builder forRegistry(MetricRegistry registry) {
+         return new Builder(registry);
+     }
+ 
+     /**
+      * A builder for {@link CsvReporter} instances. Defaults to using the default locale, converting
+      * rates to events/second, converting durations to milliseconds, and not filtering metrics.
+      */
+     public static class Builder {
+         private final MetricRegistry registry;
+         private Locale locale;
+         private String separator;
+         private TimeUnit rateUnit;
+         private TimeUnit durationUnit;
+         private Clock clock;
+         private MetricFilter filter;
+         private ScheduledExecutorService executor;
+         private boolean shutdownExecutorOnStop;
+         private CsvFileProvider csvFileProvider;
+ 
+         private Builder(MetricRegistry registry) {
+             this.registry = registry;
+             this.locale = Locale.getDefault();
+             this.separator = DEFAULT_SEPARATOR;
+             this.rateUnit = TimeUnit.SECONDS;
+             this.durationUnit = TimeUnit.MILLISECONDS;
+             this.clock = Clock.defaultClock();
+             this.filter = MetricFilter.ALL;
+             this.executor = null;
+             this.shutdownExecutorOnStop = true;
+             this.csvFileProvider = new FixedNameCsvFileProvider();
+         }
+ 
+         /**
+          * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
+          * Default value is true.
+          * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
+          *
+          * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
+          * @return {@code this}
+          */
+         public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
+             this.shutdownExecutorOnStop = shutdownExecutorOnStop;
+             return this;
+         }
+ 
+         /**
+          * Specifies the executor to use while scheduling reporting of metrics.
+          * Default value is null.
+          * Null value leads to executor will be auto created on start.
+          *
+          * @param executor the executor to use while scheduling reporting of metrics.
+          * @return {@code this}
+          */
+         public Builder scheduleOn(ScheduledExecutorService executor) {
+             this.executor = executor;
+             return this;
+         }
+ 
+         /**
+          * Format numbers for the given {@link Locale}.
+          *
+          * @param locale a {@link Locale}
+          * @return {@code this}
+          */
+         public Builder formatFor(Locale locale) {
+             this.locale = locale;
+             return this;
+         }
+ 
+         /**
+          * Convert rates to the given time unit.
+          *
+          * @param rateUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertRatesTo(TimeUnit rateUnit) {
+             this.rateUnit = rateUnit;
+             return this;
+         }
+ 
+         /**
+          * Convert durations to the given time unit.
+          *
+          * @param durationUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertDurationsTo(TimeUnit durationUnit) {
+             this.durationUnit = durationUnit;
+             return this;
+         }
+ 
+         /**
+          * Use the given string to use as the separator for values.
+          *
+          * @param separator the string to use for the separator.
+          * @return {@code this}
+          */
+         public Builder withSeparator(String separator) {
+             this.separator = separator;
+             return this;
+         }
+ 
+         /**
+          * Use the given {@link Clock} instance for the time.
+          *
+          * @param clock a {@link Clock} instance
+          * @return {@code this}
+          */
+         public Builder withClock(Clock clock) {
+             this.clock = clock;
+             return this;
+         }
+ 
+         /**
+          * Only report metrics which match the given filter.
+          *
+          * @param filter a {@link MetricFilter}
+          * @return {@code this}
+          */
+         public Builder filter(MetricFilter filter) {
+             this.filter = filter;
+             return this;
+         }
+ 
+         public Builder withCsvFileProvider(CsvFileProvider csvFileProvider) {
+             this.csvFileProvider = csvFileProvider;
+             return this;
+         }
+ 
+         /**
+          * Builds a {@link CsvReporter} with the given properties, writing {@code .csv} files to the
+          * given directory.
+          *
+          * @param directory the directory in which the {@code .csv} files will be created
+          * @return a {@link CsvReporter}
+          */
+         public CsvReporter build(File directory) {
+             return new CsvReporter(registry,
+                     directory,
+                     locale,
+                     separator,
+                     rateUnit,
+                     durationUnit,
+                     clock,
+                     filter,
+                     executor,
+                     shutdownExecutorOnStop,
+                     csvFileProvider);
+         }
+     }
+ 
+     private static final Logger LOGGER = LoggerFactory.getLogger(CsvReporter.class);
+ 
+     private final File directory;
+     private final Locale locale;
+     private final String separator;
+     private final Clock clock;
+     private final CsvFileProvider csvFileProvider;
+ 
+     private final String histogramFormat;
+     private final String meterFormat;
+     private final String timerFormat;
+ 
+     private final String timerHeader;
+     private final String meterHeader;
+     private final String histogramHeader;
+ 
+     private CsvReporter(MetricRegistry registry,
+                         File directory,
+                         Locale locale,
+                         String separator,
+                         TimeUnit rateUnit,
+                         TimeUnit durationUnit,
+                         Clock clock,
+                         MetricFilter filter,
+                         ScheduledExecutorService executor,
+                         boolean shutdownExecutorOnStop,
+                         CsvFileProvider csvFileProvider) {
+         super(registry, "csv-reporter", filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop);
+         this.directory = directory;
+         this.locale = locale;
+         this.separator = separator;
+         this.clock = clock;
+         this.csvFileProvider = csvFileProvider;
+ 
+         this.histogramFormat = String.join(separator, "%d", "%d", "%f", "%d", "%f", "%f", "%f", "%f", "%f", "%f", "%f");
+         this.meterFormat = String.join(separator, "%d", "%f", "%f", "%f", "%f", "events/%s");
+         this.timerFormat = String.join(separator, "%d", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "calls/%s", "%s");
+ 
+         this.timerHeader = String.join(separator, "count", "max", "mean", "min", "stddev", "p50", "p75", "p95", "p98", "p99", "p999", "mean_rate", "m1_rate", "m5_rate", "m15_rate", "rate_unit", "duration_unit");
+         this.meterHeader = String.join(separator, "count", "mean_rate", "m1_rate", "m5_rate", "m15_rate", "rate_unit");
+         this.histogramHeader = String.join(separator, "count", "max", "mean", "min", "stddev", "p50", "p75", "p95", "p98", "p99", "p999");
+     }
+ 
+     @Override
+     @SuppressWarnings("rawtypes")
+     public void report(SortedMap<String, Gauge> gauges,
+                        SortedMap<String, Counter> counters,
+                        SortedMap<String, Histogram> histograms,
+                        SortedMap<String, Meter> meters,
+                        SortedMap<String, Timer> timers) {
+         final long timestamp = TimeUnit.MILLISECONDS.toSeconds(clock.getTime());
+ 
+         for (Map.Entry<String, Gauge> entry : gauges.entrySet()) {
+             reportGauge(timestamp, entry.getKey(), entry.getValue());
+         }
+ 
+         for (Map.Entry<String, Counter> entry : counters.entrySet()) {
+             reportCounter(timestamp, entry.getKey(), entry.getValue());
+         }
+ 
+         for (Map.Entry<String, Histogram> entry : histograms.entrySet()) {
+             reportHistogram(timestamp, entry.getKey(), entry.getValue());
+         }
+ 
+         for (Map.Entry<String, Meter> entry : meters.entrySet()) {
+             reportMeter(timestamp, entry.getKey(), entry.getValue());
+         }
+ 
+         for (Map.Entry<String, Timer> entry : timers.entrySet()) {
+             reportTimer(timestamp, entry.getKey(), entry.getValue());
+         }
+     }
+ 
+     private void reportTimer(long timestamp, String name, Timer timer) {
+         final Snapshot snapshot = timer.getSnapshot();
+ 
+         report(timestamp,
+                 name,
+                 timerHeader,
+                 timerFormat,
+                 timer.getCount(),
+                 convertDuration(snapshot.getMax()),
+                 convertDuration(snapshot.getMean()),
+                 convertDuration(snapshot.getMin()),
+                 convertDuration(snapshot.getStdDev()),
+                 convertDuration(snapshot.getMedian()),
+                 convertDuration(snapshot.get75thPercentile()),
+                 convertDuration(snapshot.get95thPercentile()),
+                 convertDuration(snapshot.get98thPercentile()),
+                 convertDuration(snapshot.get99thPercentile()),
+                 convertDuration(snapshot.get999thPercentile()),
+                 convertRate(timer.getMeanRate()),
+                 convertRate(timer.getOneMinuteRate()),
+                 convertRate(timer.getFiveMinuteRate()),
+                 convertRate(timer.getFifteenMinuteRate()),
+                 getRateUnit(),
+                 getDurationUnit());
+     }
+ 
+     private void reportMeter(long timestamp, String name, Meter meter) {
+         report(timestamp,
+                 name,
+                 meterHeader,
+                 meterFormat,
+                 meter.getCount(),
+                 convertRate(meter.getMeanRate()),
+                 convertRate(meter.getOneMinuteRate()),
+                 convertRate(meter.getFiveMinuteRate()),
+                 convertRate(meter.getFifteenMinuteRate()),
+                 getRateUnit());
+     }
+ 
+     private void reportHistogram(long timestamp, String name, Histogram histogram) {
+         final Snapshot snapshot = histogram.getSnapshot();
+ 
+         report(timestamp,
+                 name,
+                 histogramHeader,
+                 histogramFormat,
+                 histogram.getCount(),
+                 snapshot.getMax(),
+                 snapshot.getMean(),
+                 snapshot.getMin(),
+                 snapshot.getStdDev(),
+                 snapshot.getMedian(),
+                 snapshot.get75thPercentile(),
+                 snapshot.get95thPercentile(),
+                 snapshot.get98thPercentile(),
+                 snapshot.get99thPercentile(),
+                 snapshot.get999thPercentile());
+     }
+ 
+     private void reportCounter(long timestamp, String name, Counter counter) {
+         report(timestamp, name, "count", "%d", counter.getCount());
+     }
+ 
+     private void reportGauge(long timestamp, String name, Gauge<?> gauge) {
+         report(timestamp, name, "value", "%s", gauge.getValue());
+     }
+ 
+     private void report(long timestamp, String name, String header, String line, Object... values) {
+         try {
+             final File file = csvFileProvider.getFile(directory, name);
+             final boolean fileAlreadyExists = file.exists();
+             if (fileAlreadyExists || file.createNewFile()) {
+                 try (PrintWriter out = new PrintWriter(new OutputStreamWriter(
+                         new FileOutputStream(file, true), UTF_8))) {
+                     if (!fileAlreadyExists) {
+                         out.println("t" + separator + header);
+                     }
+                     out.printf(locale, String.format(locale, "%d" + separator + "%s%n", timestamp, line), values);
+                 }
+             }
+         } catch (IOException e) {
+             LOGGER.warn("Error writing to {}", name, e);
+         }
+     }
+ 
+     protected String sanitize(String name) {
+         return name;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-7.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-7.html new file mode 100644 index 0000000000..a02f6e5d47 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-7.html @@ -0,0 +1,147 @@ + + + + + + + + Coverage Report > DefaultSettableGauge + + + + + + +
+ + +

Coverage Summary for Class: DefaultSettableGauge (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 62.5% + + + (5/8) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
+  */
+ public class DefaultSettableGauge<T> implements SettableGauge<T> {
+     private volatile T value;
+ 
+     /**
+      * Create an instance with no default value.
+      */
+     public DefaultSettableGauge() {
+         this(null);
+     }
+ 
+     /**
+      * Create an instance with a default value.
+      *
+      * @param defaultValue default value
+      */
+     public DefaultSettableGauge(T defaultValue) {
+         this.value = defaultValue;
+     }
+ 
+     /**
+      * Set the metric to a new value.
+      */
+     @Override
+     public void setValue(T value) {
+         this.value = value;
+     }
+ 
+     /**
+      * Returns the current value.
+      *
+      * @return the current value
+      */
+     @Override
+     public T getValue() {
+         return value;
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-8.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-8.html new file mode 100644 index 0000000000..b9f65e3722 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-8.html @@ -0,0 +1,137 @@ + + + + + + + + Coverage Report > DerivativeGauge + + + + + + +
+ + +

Coverage Summary for Class: DerivativeGauge (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 75% + + + (3/4) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * A gauge whose value is derived from the value of another gauge.
+  *
+  * @param <F> the base gauge's value type
+  * @param <T> the derivative type
+  */
+ public abstract class DerivativeGauge<F, T> implements Gauge<T> {
+     private final Gauge<F> base;
+ 
+     /**
+      * Creates a new derivative with the given base gauge.
+      *
+      * @param base the gauge from which to derive this gauge's value
+      */
+     protected DerivativeGauge(Gauge<F> base) {
+         this.base = base;
+     }
+ 
+     @Override
+     public T getValue() {
+         return transform(base.getValue());
+     }
+ 
+     /**
+      * Transforms the value of the base gauge to the value of this gauge.
+      *
+      * @param value the value of the base gauge
+      * @return this gauge's value
+      */
+     protected abstract T transform(F value);
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-9.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-9.html new file mode 100644 index 0000000000..9c06cc46b0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-9.html @@ -0,0 +1,224 @@ + + + + + + + + Coverage Report > EWMA + + + + + + +
+ + +

Coverage Summary for Class: EWMA (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 0% + + + (0/2) + + + + 96% + + + (24/25) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.LongAdder;
+ 
+ import static java.lang.Math.exp;
+ 
+ /**
+  * An exponentially-weighted moving average.
+  *
+  * @see <a href="http://www.teamquest.com/pdfs/whitepaper/ldavg1.pdf">UNIX Load Average Part 1: How
+  * It Works</a>
+  * @see <a href="http://www.teamquest.com/pdfs/whitepaper/ldavg2.pdf">UNIX Load Average Part 2: Not
+  * Your Average Average</a>
+  * @see <a href="http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average">EMA</a>
+  */
+ public class EWMA {
+     private static final int INTERVAL = 5;
+     private static final double SECONDS_PER_MINUTE = 60.0;
+     private static final int ONE_MINUTE = 1;
+     private static final int FIVE_MINUTES = 5;
+     private static final int FIFTEEN_MINUTES = 15;
+     private static final double M1_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / ONE_MINUTE);
+     private static final double M5_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIVE_MINUTES);
+     private static final double M15_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIFTEEN_MINUTES);
+ 
+     private volatile boolean initialized = false;
+     private volatile double rate = 0.0;
+ 
+     private final LongAdder uncounted = new LongAdder();
+     private final double alpha, interval;
+ 
+     /**
+      * Creates a new EWMA which is equivalent to the UNIX one minute load average and which expects
+      * to be ticked every 5 seconds.
+      *
+      * @return a one-minute EWMA
+      */
+     public static EWMA oneMinuteEWMA() {
+         return new EWMA(M1_ALPHA, INTERVAL, TimeUnit.SECONDS);
+     }
+ 
+     /**
+      * Creates a new EWMA which is equivalent to the UNIX five minute load average and which expects
+      * to be ticked every 5 seconds.
+      *
+      * @return a five-minute EWMA
+      */
+     public static EWMA fiveMinuteEWMA() {
+         return new EWMA(M5_ALPHA, INTERVAL, TimeUnit.SECONDS);
+     }
+ 
+     /**
+      * Creates a new EWMA which is equivalent to the UNIX fifteen minute load average and which
+      * expects to be ticked every 5 seconds.
+      *
+      * @return a fifteen-minute EWMA
+      */
+     public static EWMA fifteenMinuteEWMA() {
+         return new EWMA(M15_ALPHA, INTERVAL, TimeUnit.SECONDS);
+     }
+ 
+     /**
+      * Create a new EWMA with a specific smoothing constant.
+      *
+      * @param alpha        the smoothing constant
+      * @param interval     the expected tick interval
+      * @param intervalUnit the time unit of the tick interval
+      */
+     public EWMA(double alpha, long interval, TimeUnit intervalUnit) {
+         this.interval = intervalUnit.toNanos(interval);
+         this.alpha = alpha;
+     }
+ 
+     /**
+      * Update the moving average with a new value.
+      *
+      * @param n the new value
+      */
+     public void update(long n) {
+         uncounted.add(n);
+     }
+ 
+     /**
+      * Mark the passage of time and decay the current rate accordingly.
+      */
+     public void tick() {
+         final long count = uncounted.sumThenReset();
+         final double instantRate = count / interval;
+         if (initialized) {
+             final double oldRate = this.rate;
+             rate = oldRate + (alpha * (instantRate - oldRate));
+         } else {
+             rate = instantRate;
+             initialized = true;
+         }
+     }
+ 
+     /**
+      * Returns the rate in the given units of time.
+      *
+      * @param rateUnit the unit of time
+      * @return the rate
+      */
+     public double getRate(TimeUnit rateUnit) {
+         return rate * (double) rateUnit.toNanos(1);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-a.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-a.html new file mode 100644 index 0000000000..f55a85b212 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-a.html @@ -0,0 +1,193 @@ + + + + + + + + Coverage Report > ExponentialMovingAverages + + + + + + +
+ + +

Coverage Summary for Class: ExponentialMovingAverages (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 16.7% + + + (1/6) + + + + 93.1% + + + (27/29) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicLong;
+ 
+ /**
+  * A triple (one, five and fifteen minutes) of exponentially-weighted moving average rates as needed by {@link Meter}.
+  * <p>
+  * The rates have the same exponential decay factor as the fifteen-minute load average in the
+  * {@code top} Unix command.
+  */
+ public class ExponentialMovingAverages implements MovingAverages {
+ 
+     private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(5);
+ 
+     private final EWMA m1Rate = EWMA.oneMinuteEWMA();
+     private final EWMA m5Rate = EWMA.fiveMinuteEWMA();
+     private final EWMA m15Rate = EWMA.fifteenMinuteEWMA();
+ 
+     private final AtomicLong lastTick;
+     private final Clock clock;
+ 
+     /**
+      * Creates a new {@link ExponentialMovingAverages}.
+      */
+     public ExponentialMovingAverages() {
+         this(Clock.defaultClock());
+     }
+ 
+     /**
+      * Creates a new {@link ExponentialMovingAverages}.
+      */
+     public ExponentialMovingAverages(Clock clock) {
+         this.clock = clock;
+         this.lastTick = new AtomicLong(this.clock.getTick());
+     }
+ 
+     @Override
+     public void update(long n) {
+         m1Rate.update(n);
+         m5Rate.update(n);
+         m15Rate.update(n);
+     }
+ 
+     @Override
+     public void tickIfNecessary() {
+         final long oldTick = lastTick.get();
+         final long newTick = clock.getTick();
+         final long age = newTick - oldTick;
+         if (age > TICK_INTERVAL) {
+             final long newIntervalStartTick = newTick - age % TICK_INTERVAL;
+             if (lastTick.compareAndSet(oldTick, newIntervalStartTick)) {
+                 final long requiredTicks = age / TICK_INTERVAL;
+                 for (long i = 0; i < requiredTicks; i++) {
+                     m1Rate.tick();
+                     m5Rate.tick();
+                     m15Rate.tick();
+                 }
+             }
+         }
+     }
+ 
+     @Override
+     public double getM1Rate() {
+         return m1Rate.getRate(TimeUnit.SECONDS);
+     }
+ 
+     @Override
+     public double getM5Rate() {
+         return m5Rate.getRate(TimeUnit.SECONDS);
+     }
+ 
+     @Override
+     public double getM15Rate() {
+         return m15Rate.getRate(TimeUnit.SECONDS);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-b.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-b.html new file mode 100644 index 0000000000..1658ce6942 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-b.html @@ -0,0 +1,323 @@ + + + + + + + + Coverage Report > ExponentiallyDecayingReservoir + + + + + + +
+ + +

Coverage Summary for Class: ExponentiallyDecayingReservoir (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 10% + + + (2/20) + + + + 93.1% + + + (67/72) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.ArrayList;
+ import java.util.concurrent.ConcurrentSkipListMap;
+ import java.util.concurrent.ThreadLocalRandom;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicLong;
+ import java.util.concurrent.locks.ReentrantReadWriteLock;
+ 
+ import static java.lang.Math.exp;
+ import static java.lang.Math.min;
+ 
+ import com.codahale.metrics.WeightedSnapshot.WeightedSample;
+ 
+ /**
+  * An exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al's
+  * forward-decaying priority reservoir sampling method to produce a statistically representative
+  * sampling reservoir, exponentially biased towards newer entries.
+  *
+  * @see <a href="http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf">
+  * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE '09:
+  * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)</a>
+  */
+ public class ExponentiallyDecayingReservoir implements Reservoir {
+     private static final int DEFAULT_SIZE = 1028;
+     private static final double DEFAULT_ALPHA = 0.015;
+     private static final long RESCALE_THRESHOLD = TimeUnit.HOURS.toNanos(1);
+ 
+     private final ConcurrentSkipListMap<Double, WeightedSample> values;
+     private final ReentrantReadWriteLock lock;
+     private final double alpha;
+     private final int size;
+     private final AtomicLong count;
+     private volatile long startTime;
+     private final AtomicLong lastScaleTick;
+     private final Clock clock;
+ 
+     /**
+      * Creates a new {@link ExponentiallyDecayingReservoir} of 1028 elements, which offers a 99.9%
+      * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
+      * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
+      */
+     public ExponentiallyDecayingReservoir() {
+         this(DEFAULT_SIZE, DEFAULT_ALPHA);
+     }
+ 
+     /**
+      * Creates a new {@link ExponentiallyDecayingReservoir}.
+      *
+      * @param size  the number of samples to keep in the sampling reservoir
+      * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
+      *              will be towards newer values
+      */
+     public ExponentiallyDecayingReservoir(int size, double alpha) {
+         this(size, alpha, Clock.defaultClock());
+     }
+ 
+     /**
+      * Creates a new {@link ExponentiallyDecayingReservoir}.
+      *
+      * @param size  the number of samples to keep in the sampling reservoir
+      * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
+      *              will be towards newer values
+      * @param clock the clock used to timestamp samples and track rescaling
+      */
+     public ExponentiallyDecayingReservoir(int size, double alpha, Clock clock) {
+         this.values = new ConcurrentSkipListMap<>();
+         this.lock = new ReentrantReadWriteLock();
+         this.alpha = alpha;
+         this.size = size;
+         this.clock = clock;
+         this.count = new AtomicLong(0);
+         this.startTime = currentTimeInSeconds();
+         this.lastScaleTick = new AtomicLong(clock.getTick());
+     }
+ 
+     @Override
+     public int size() {
+         return (int) min(size, count.get());
+     }
+ 
+     @Override
+     public void update(long value) {
+         update(value, currentTimeInSeconds());
+     }
+ 
+     /**
+      * Adds an old value with a fixed timestamp to the reservoir.
+      *
+      * @param value     the value to be added
+      * @param timestamp the epoch timestamp of {@code value} in seconds
+      */
+     public void update(long value, long timestamp) {
+         rescaleIfNeeded();
+         lockForRegularUsage();
+         try {
+             final double itemWeight = weight(timestamp - startTime);
+             final WeightedSample sample = new WeightedSample(value, itemWeight);
+             final double priority = itemWeight / ThreadLocalRandom.current().nextDouble();
+ 
+             final long newCount = count.incrementAndGet();
+             if (newCount <= size || values.isEmpty()) {
+                 values.put(priority, sample);
+             } else {
+                 Double first = values.firstKey();
+                 if (first < priority && values.putIfAbsent(priority, sample) == null) {
+                     // ensure we always remove an item
+                     while (values.remove(first) == null) {
+                         first = values.firstKey();
+                     }
+                 }
+             }
+         } finally {
+             unlockForRegularUsage();
+         }
+     }
+ 
+     private void rescaleIfNeeded() {
+         final long now = clock.getTick();
+         final long lastScaleTickSnapshot = lastScaleTick.get();
+         if (now - lastScaleTickSnapshot >= RESCALE_THRESHOLD) {
+             rescale(now, lastScaleTickSnapshot);
+         }
+     }
+ 
+     @Override
+     public Snapshot getSnapshot() {
+         rescaleIfNeeded();
+         lockForRegularUsage();
+         try {
+             return new WeightedSnapshot(values.values());
+         } finally {
+             unlockForRegularUsage();
+         }
+     }
+ 
+     private long currentTimeInSeconds() {
+         return TimeUnit.MILLISECONDS.toSeconds(clock.getTime());
+     }
+ 
+     private double weight(long t) {
+         return exp(alpha * t);
+     }
+ 
+     /* "A common feature of the above techniques—indeed, the key technique that
+      * allows us to track the decayed weights efficiently—is that they maintain
+      * counts and other quantities based on g(ti ? L), and only scale by g(t ? L)
+      * at query time. But while g(ti ?L)/g(t?L) is guaranteed to lie between zero
+      * and one, the intermediate values of g(ti ? L) could become very large. For
+      * polynomial functions, these values should not grow too large, and should be
+      * effectively represented in practice by floating point values without loss of
+      * precision. For exponential functions, these values could grow quite large as
+      * new values of (ti ? L) become large, and potentially exceed the capacity of
+      * common floating point types. However, since the values stored by the
+      * algorithms are linear combinations of g values (scaled sums), they can be
+      * rescaled relative to a new landmark. That is, by the analysis of exponential
+      * decay in Section III-A, the choice of L does not affect the final result. We
+      * can therefore multiply each value based on L by a factor of exp(??(L? ? L)),
+      * and obtain the correct value as if we had instead computed relative to a new
+      * landmark L? (and then use this new L? at query time). This can be done with
+      * a linear pass over whatever data structure is being used."
+      */
+     private void rescale(long now, long lastTick) {
+         lockForRescale();
+         try {
+             if (lastScaleTick.compareAndSet(lastTick, now)) {
+                 final long oldStartTime = startTime;
+                 this.startTime = currentTimeInSeconds();
+                 final double scalingFactor = exp(-alpha * (startTime - oldStartTime));
+                 if (Double.compare(scalingFactor, 0) == 0) {
+                     values.clear();
+                 } else {
+                     final ArrayList<Double> keys = new ArrayList<>(values.keySet());
+                     for (Double key : keys) {
+                         final WeightedSample sample = values.remove(key);
+                         final WeightedSample newSample = new WeightedSample(sample.value, sample.weight * scalingFactor);
+                         if (Double.compare(newSample.weight, 0) == 0) {
+                             continue;
+                         }
+                         values.put(key * scalingFactor, newSample);
+                     }
+                 }
+ 
+                 // make sure the counter is in sync with the number of stored samples.
+                 count.set(values.size());
+             }
+         } finally {
+             unlockForRescale();
+         }
+     }
+ 
+     private void unlockForRescale() {
+         lock.writeLock().unlock();
+     }
+ 
+     private void lockForRescale() {
+         lock.writeLock().lock();
+     }
+ 
+     private void lockForRegularUsage() {
+         lock.readLock().lock();
+     }
+ 
+     private void unlockForRegularUsage() {
+         lock.readLock().unlock();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-c.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-c.html new file mode 100644 index 0000000000..4487cfad81 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-c.html @@ -0,0 +1,125 @@ + + + + + + + + Coverage Report > FixedNameCsvFileProvider + + + + + + +
+ + +

Coverage Summary for Class: FixedNameCsvFileProvider (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.io.File;
+ 
+ /**
+  * This implementation of the {@link CsvFileProvider} will always return the same name
+  * for the same metric. This means the CSV file will grow indefinitely.
+  */
+ public class FixedNameCsvFileProvider implements CsvFileProvider {
+ 
+     @Override
+     public File getFile(File directory, String metricName) {
+         return new File(directory, sanitize(metricName) + ".csv");
+     }
+ 
+     protected String sanitize(String metricName) {
+         //Forward slash character is definitely illegal in both Windows and Linux
+         //https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
+         return metricName.replaceFirst("^/", "").replaceAll("/", ".");
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-d.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-d.html new file mode 100644 index 0000000000..5a2e71c7c9 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-d.html @@ -0,0 +1,162 @@ + + + + + + + + Coverage Report > Histogram + + + + + + +
+ + +

Coverage Summary for Class: Histogram (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (11/11) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.atomic.LongAdder;
+ 
+ /**
+  * A metric which calculates the distribution of a value.
+  *
+  * @see <a href="http://www.johndcook.com/standard_deviation.html">Accurately computing running
+  * variance</a>
+  */
+ public class Histogram implements Metric, Sampling, Counting {
+     private final Reservoir reservoir;
+     private final LongAdder count;
+ 
+     /**
+      * Creates a new {@link Histogram} with the given reservoir.
+      *
+      * @param reservoir the reservoir to create a histogram from
+      */
+     public Histogram(Reservoir reservoir) {
+         this.reservoir = reservoir;
+         this.count = new LongAdder();
+     }
+ 
+     /**
+      * Adds a recorded value.
+      *
+      * @param value the length of the value
+      */
+     public void update(int value) {
+         update((long) value);
+     }
+ 
+     /**
+      * Adds a recorded value.
+      *
+      * @param value the length of the value
+      */
+     public void update(long value) {
+         count.increment();
+         reservoir.update(value);
+     }
+ 
+     /**
+      * Returns the number of values recorded.
+      *
+      * @return the number of values recorded
+      */
+     @Override
+     public long getCount() {
+         return count.sum();
+     }
+ 
+     @Override
+     public Snapshot getSnapshot() {
+         return reservoir.getSnapshot();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-e.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-e.html new file mode 100644 index 0000000000..056438e5ed --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-e.html @@ -0,0 +1,410 @@ + + + + + + + + Coverage Report > InstrumentedExecutorService + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedExecutorService (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
InstrumentedExecutorService + + 38.9% + + + (7/18) + + + + 0% + + + (0/6) + + + + 59.2% + + + (42/71) + +
InstrumentedExecutorService$InstrumentedCallable + + 100% + + + (2/2) + + + + 83.3% + + + (10/12) + +
InstrumentedExecutorService$InstrumentedRunnable + + 100% + + + (2/2) + + + + 84.6% + + + (11/13) + +
Total + + 50% + + + (11/22) + + + + 0% + + + (0/6) + + + + 65.6% + + + (63/96) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.ArrayList;
+ import java.util.Collection;
+ import java.util.List;
+ import java.util.concurrent.BlockingQueue;
+ import java.util.concurrent.Callable;
+ import java.util.concurrent.ExecutionException;
+ import java.util.concurrent.ExecutorService;
+ import java.util.concurrent.ForkJoinPool;
+ import java.util.concurrent.Future;
+ import java.util.concurrent.ThreadPoolExecutor;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.TimeoutException;
+ import java.util.concurrent.atomic.AtomicLong;
+ 
+ /**
+  * An {@link ExecutorService} that monitors the number of tasks submitted, running,
+  * completed and also keeps a {@link Timer} for the task duration.
+  * <p>
+  * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
+  * "your-executor-service.submitted", "your-executor-service.running", etc.
+  */
+ public class InstrumentedExecutorService implements ExecutorService {
+     private static final AtomicLong NAME_COUNTER = new AtomicLong();
+ 
+     private final ExecutorService delegate;
+     private final Meter submitted;
+     private final Counter running;
+     private final Meter completed;
+     private final Timer idle;
+     private final Timer duration;
+ 
+     /**
+      * Wraps an {@link ExecutorService} uses an auto-generated default name.
+      *
+      * @param delegate {@link ExecutorService} to wrap.
+      * @param registry {@link MetricRegistry} that will contain the metrics.
+      */
+     public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry) {
+         this(delegate, registry, "instrumented-delegate-" + NAME_COUNTER.incrementAndGet());
+     }
+ 
+     /**
+      * Wraps an {@link ExecutorService} with an explicit name.
+      *
+      * @param delegate {@link ExecutorService} to wrap.
+      * @param registry {@link MetricRegistry} that will contain the metrics.
+      * @param name     name for this executor service.
+      */
+     public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry, String name) {
+         this.delegate = delegate;
+         this.submitted = registry.meter(MetricRegistry.name(name, "submitted"));
+         this.running = registry.counter(MetricRegistry.name(name, "running"));
+         this.completed = registry.meter(MetricRegistry.name(name, "completed"));
+         this.idle = registry.timer(MetricRegistry.name(name, "idle"));
+         this.duration = registry.timer(MetricRegistry.name(name, "duration"));
+ 
+         if (delegate instanceof ThreadPoolExecutor) {
+             ThreadPoolExecutor executor = (ThreadPoolExecutor) delegate;
+             registry.registerGauge(MetricRegistry.name(name, "pool.size"),
+                     executor::getPoolSize);
+             registry.registerGauge(MetricRegistry.name(name, "pool.core"),
+                     executor::getCorePoolSize);
+             registry.registerGauge(MetricRegistry.name(name, "pool.max"),
+                     executor::getMaximumPoolSize);
+             final BlockingQueue<Runnable> queue = executor.getQueue();
+             registry.registerGauge(MetricRegistry.name(name, "tasks.active"),
+                     executor::getActiveCount);
+             registry.registerGauge(MetricRegistry.name(name, "tasks.completed"),
+                     executor::getCompletedTaskCount);
+             registry.registerGauge(MetricRegistry.name(name, "tasks.queued"),
+                     queue::size);
+             registry.registerGauge(MetricRegistry.name(name, "tasks.capacity"),
+                     queue::remainingCapacity);
+         } else if (delegate instanceof ForkJoinPool) {
+             ForkJoinPool forkJoinPool = (ForkJoinPool) delegate;
+             registry.registerGauge(MetricRegistry.name(name, "tasks.stolen"),
+                     forkJoinPool::getStealCount);
+             registry.registerGauge(MetricRegistry.name(name, "tasks.queued"),
+                     forkJoinPool::getQueuedTaskCount);
+             registry.registerGauge(MetricRegistry.name(name, "threads.active"),
+                     forkJoinPool::getActiveThreadCount);
+             registry.registerGauge(MetricRegistry.name(name, "threads.running"),
+                     forkJoinPool::getRunningThreadCount);
+         }
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void execute(Runnable runnable) {
+         submitted.mark();
+         delegate.execute(new InstrumentedRunnable(runnable));
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Future<?> submit(Runnable runnable) {
+         submitted.mark();
+         return delegate.submit(new InstrumentedRunnable(runnable));
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> Future<T> submit(Runnable runnable, T result) {
+         submitted.mark();
+         return delegate.submit(new InstrumentedRunnable(runnable), result);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> Future<T> submit(Callable<T> task) {
+         submitted.mark();
+         return delegate.submit(new InstrumentedCallable<>(task));
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException {
+         submitted.mark(tasks.size());
+         Collection<? extends Callable<T>> instrumented = instrument(tasks);
+         return delegate.invokeAll(instrumented);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException {
+         submitted.mark(tasks.size());
+         Collection<? extends Callable<T>> instrumented = instrument(tasks);
+         return delegate.invokeAll(instrumented, timeout, unit);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws ExecutionException, InterruptedException {
+         submitted.mark(tasks.size());
+         Collection<? extends Callable<T>> instrumented = instrument(tasks);
+         return delegate.invokeAny(instrumented);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws ExecutionException, InterruptedException, TimeoutException {
+         submitted.mark(tasks.size());
+         Collection<? extends Callable<T>> instrumented = instrument(tasks);
+         return delegate.invokeAny(instrumented, timeout, unit);
+     }
+ 
+     private <T> Collection<? extends Callable<T>> instrument(Collection<? extends Callable<T>> tasks) {
+         final List<InstrumentedCallable<T>> instrumented = new ArrayList<>(tasks.size());
+         for (Callable<T> task : tasks) {
+             instrumented.add(new InstrumentedCallable<>(task));
+         }
+         return instrumented;
+     }
+ 
+     @Override
+     public void shutdown() {
+         delegate.shutdown();
+     }
+ 
+     @Override
+     public List<Runnable> shutdownNow() {
+         return delegate.shutdownNow();
+     }
+ 
+     @Override
+     public boolean isShutdown() {
+         return delegate.isShutdown();
+     }
+ 
+     @Override
+     public boolean isTerminated() {
+         return delegate.isTerminated();
+     }
+ 
+     @Override
+     public boolean awaitTermination(long l, TimeUnit timeUnit) throws InterruptedException {
+         return delegate.awaitTermination(l, timeUnit);
+     }
+ 
+     private class InstrumentedRunnable implements Runnable {
+         private final Runnable task;
+         private final Timer.Context idleContext;
+ 
+         InstrumentedRunnable(Runnable task) {
+             this.task = task;
+             this.idleContext = idle.time();
+         }
+ 
+         @Override
+         public void run() {
+             idleContext.stop();
+             running.inc();
+             try (Timer.Context durationContext = duration.time()) {
+                 task.run();
+             } finally {
+                 running.dec();
+                 completed.mark();
+             }
+         }
+     }
+ 
+     private class InstrumentedCallable<T> implements Callable<T> {
+         private final Callable<T> callable;
+         private final Timer.Context idleContext;
+ 
+         InstrumentedCallable(Callable<T> callable) {
+             this.callable = callable;
+             this.idleContext = idle.time();
+         }
+ 
+         @Override
+         public T call() throws Exception {
+             idleContext.stop();
+             running.inc();
+             try (Timer.Context context = duration.time()) {
+                 return callable.call();
+             } finally {
+                 running.dec();
+                 completed.mark();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-f.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-f.html new file mode 100644 index 0000000000..00db2d2e0b --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-f.html @@ -0,0 +1,493 @@ + + + + + + + + Coverage Report > InstrumentedScheduledExecutorService + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedScheduledExecutorService (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
InstrumentedScheduledExecutorService + + 50% + + + (11/22) + + + + 0% + + + (0/2) + + + + 47.3% + + + (26/55) + +
InstrumentedScheduledExecutorService$InstrumentedCallable + + 100% + + + (2/2) + + + + 80% + + + (8/10) + +
InstrumentedScheduledExecutorService$InstrumentedPeriodicRunnable + + 100% + + + (2/2) + + + + 0% + + + (0/2) + + + + 86.7% + + + (13/15) + +
InstrumentedScheduledExecutorService$InstrumentedRunnable + + 100% + + + (2/2) + + + + 81.8% + + + (9/11) + +
Total + + 60.7% + + + (17/28) + + + + 0% + + + (0/4) + + + + 61.5% + + + (56/91) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.ArrayList;
+ import java.util.Collection;
+ import java.util.List;
+ import java.util.concurrent.Callable;
+ import java.util.concurrent.ExecutionException;
+ import java.util.concurrent.Future;
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.ScheduledFuture;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.TimeoutException;
+ import java.util.concurrent.atomic.AtomicLong;
+ 
+ /**
+  * An {@link ScheduledExecutorService} that monitors the number of tasks submitted, running,
+  * completed and also keeps a {@link Timer} for the task duration.
+  * <p>
+  * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
+  * "your-executor-service.submitted", "your-executor-service.running", etc.
+  */
+ public class InstrumentedScheduledExecutorService implements ScheduledExecutorService {
+     private static final AtomicLong NAME_COUNTER = new AtomicLong();
+ 
+     private final ScheduledExecutorService delegate;
+ 
+     private final Meter submitted;
+     private final Counter running;
+     private final Meter completed;
+     private final Timer duration;
+ 
+     private final Meter scheduledOnce;
+     private final Meter scheduledRepetitively;
+     private final Counter scheduledOverrun;
+     private final Histogram percentOfPeriod;
+ 
+     /**
+      * Wraps an {@link ScheduledExecutorService} uses an auto-generated default name.
+      *
+      * @param delegate {@link ScheduledExecutorService} to wrap.
+      * @param registry {@link MetricRegistry} that will contain the metrics.
+      */
+     public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry) {
+         this(delegate, registry, "instrumented-scheduled-executor-service-" + NAME_COUNTER.incrementAndGet());
+     }
+ 
+     /**
+      * Wraps an {@link ScheduledExecutorService} with an explicit name.
+      *
+      * @param delegate {@link ScheduledExecutorService} to wrap.
+      * @param registry {@link MetricRegistry} that will contain the metrics.
+      * @param name     name for this executor service.
+      */
+     public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry, String name) {
+         this.delegate = delegate;
+ 
+         this.submitted = registry.meter(MetricRegistry.name(name, "submitted"));
+ 
+         this.running = registry.counter(MetricRegistry.name(name, "running"));
+         this.completed = registry.meter(MetricRegistry.name(name, "completed"));
+         this.duration = registry.timer(MetricRegistry.name(name, "duration"));
+ 
+         this.scheduledOnce = registry.meter(MetricRegistry.name(name, "scheduled.once"));
+         this.scheduledRepetitively = registry.meter(MetricRegistry.name(name, "scheduled.repetitively"));
+         this.scheduledOverrun = registry.counter(MetricRegistry.name(name, "scheduled.overrun"));
+         this.percentOfPeriod = registry.histogram(MetricRegistry.name(name, "scheduled.percent-of-period"));
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit) {
+         scheduledOnce.mark();
+         return delegate.schedule(new InstrumentedRunnable(command), delay, unit);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <V> ScheduledFuture<V> schedule(Callable<V> callable, long delay, TimeUnit unit) {
+         scheduledOnce.mark();
+         return delegate.schedule(new InstrumentedCallable<>(callable), delay, unit);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) {
+         scheduledRepetitively.mark();
+         return delegate.scheduleAtFixedRate(new InstrumentedPeriodicRunnable(command, period, unit), initialDelay, period, unit);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) {
+         scheduledRepetitively.mark();
+         return delegate.scheduleWithFixedDelay(new InstrumentedRunnable(command), initialDelay, delay, unit);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void shutdown() {
+         delegate.shutdown();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public List<Runnable> shutdownNow() {
+         return delegate.shutdownNow();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public boolean isShutdown() {
+         return delegate.isShutdown();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public boolean isTerminated() {
+         return delegate.isTerminated();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {
+         return delegate.awaitTermination(timeout, unit);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> Future<T> submit(Callable<T> task) {
+         submitted.mark();
+         return delegate.submit(new InstrumentedCallable<>(task));
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> Future<T> submit(Runnable task, T result) {
+         submitted.mark();
+         return delegate.submit(new InstrumentedRunnable(task), result);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Future<?> submit(Runnable task) {
+         submitted.mark();
+         return delegate.submit(new InstrumentedRunnable(task));
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException {
+         submitted.mark(tasks.size());
+         Collection<? extends Callable<T>> instrumented = instrument(tasks);
+         return delegate.invokeAll(instrumented);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException {
+         submitted.mark(tasks.size());
+         Collection<? extends Callable<T>> instrumented = instrument(tasks);
+         return delegate.invokeAll(instrumented, timeout, unit);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws InterruptedException, ExecutionException {
+         submitted.mark(tasks.size());
+         Collection<? extends Callable<T>> instrumented = instrument(tasks);
+         return delegate.invokeAny(instrumented);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
+         submitted.mark(tasks.size());
+         Collection<? extends Callable<T>> instrumented = instrument(tasks);
+         return delegate.invokeAny(instrumented, timeout, unit);
+     }
+ 
+     private <T> Collection<? extends Callable<T>> instrument(Collection<? extends Callable<T>> tasks) {
+         final List<InstrumentedCallable<T>> instrumented = new ArrayList<>(tasks.size());
+         for (Callable<T> task : tasks) {
+             instrumented.add(new InstrumentedCallable<>(task));
+         }
+         return instrumented;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void execute(Runnable command) {
+         submitted.mark();
+         delegate.execute(new InstrumentedRunnable(command));
+     }
+ 
+     private class InstrumentedRunnable implements Runnable {
+         private final Runnable command;
+ 
+         InstrumentedRunnable(Runnable command) {
+             this.command = command;
+         }
+ 
+         @Override
+         public void run() {
+             running.inc();
+             final Timer.Context context = duration.time();
+             try {
+                 command.run();
+             } finally {
+                 context.stop();
+                 running.dec();
+                 completed.mark();
+             }
+         }
+     }
+ 
+     private class InstrumentedPeriodicRunnable implements Runnable {
+         private final Runnable command;
+         private final long periodInNanos;
+ 
+         InstrumentedPeriodicRunnable(Runnable command, long period, TimeUnit unit) {
+             this.command = command;
+             this.periodInNanos = unit.toNanos(period);
+         }
+ 
+         @Override
+         public void run() {
+             running.inc();
+             final Timer.Context context = duration.time();
+             try {
+                 command.run();
+             } finally {
+                 final long elapsed = context.stop();
+                 running.dec();
+                 completed.mark();
+                 if (elapsed > periodInNanos) {
+                     scheduledOverrun.inc();
+                 }
+                 percentOfPeriod.update((100L * elapsed) / periodInNanos);
+             }
+         }
+     }
+ 
+     private class InstrumentedCallable<T> implements Callable<T> {
+         private final Callable<T> task;
+ 
+         InstrumentedCallable(Callable<T> task) {
+             this.task = task;
+         }
+ 
+         @Override
+         public T call() throws Exception {
+             running.inc();
+             final Timer.Context context = duration.time();
+             try {
+                 return task.call();
+             } finally {
+                 context.stop();
+                 running.dec();
+                 completed.mark();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index.html new file mode 100644 index 0000000000..7ce236b385 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-10/index.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..b02f8c40f8 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..456d536dbf --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..c171764117 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..e03a69a0c9 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..2dcefa174f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_LINE.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..5c57c4b5d2 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..be52632163 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..80744d13dc --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..1d102617ff --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-1.html new file mode 100644 index 0000000000..8993e8792d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-1.html @@ -0,0 +1,112 @@ + + + + + + + + Coverage Report > BasicSqlNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi.strategies;
+ 
+ public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
+     public BasicSqlNameStrategy() {
+         super(NameStrategies.CHECK_EMPTY,
+                 NameStrategies.SQL_OBJECT);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-2.html new file mode 100644 index 0000000000..2146cda3b3 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-2.html @@ -0,0 +1,119 @@ + + + + + + + + Coverage Report > ContextNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: ContextNameStrategy (com.codahale.metrics.jdbi.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi.strategies;
+ 
+ 
+ /**
+  * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_GROUP} and {@link
+  * NameStrategies#STATEMENT_NAME} for group based display.
+  */
+ public class ContextNameStrategy extends DelegatingStatementNameStrategy {
+     public ContextNameStrategy() {
+         super(NameStrategies.CHECK_EMPTY,
+                 NameStrategies.CHECK_RAW,
+                 NameStrategies.CONTEXT_NAME,
+                 NameStrategies.NAIVE_NAME);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-3.html new file mode 100644 index 0000000000..05dc68cf43 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-3.html @@ -0,0 +1,135 @@ + + + + + + + + Coverage Report > DelegatingStatementNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi.strategies;
+ 
+ import org.skife.jdbi.v2.StatementContext;
+ 
+ import java.util.ArrayList;
+ import java.util.Arrays;
+ import java.util.List;
+ 
+ public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
+     private final List<StatementNameStrategy> strategies = new ArrayList<>();
+ 
+     protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {
+         registerStrategies(strategies);
+     }
+ 
+     protected void registerStrategies(StatementNameStrategy... strategies) {
+         this.strategies.addAll(Arrays.asList(strategies));
+     }
+ 
+     @Override
+     public String getStatementName(StatementContext statementContext) {
+         for (StatementNameStrategy strategy : strategies) {
+             final String statementName = strategy.getStatementName(statementContext);
+             if (statementName != null) {
+                 return statementName;
+             }
+         }
+ 
+         return NameStrategies.UNKNOWN_SQL;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-4.html new file mode 100644 index 0000000000..d0071b432f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-4.html @@ -0,0 +1,116 @@ + + + + + + + + Coverage Report > NaiveNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi.strategies;
+ 
+ /**
+  * Very simple strategy, can be used with any JDBI loader to build basic statistics.
+  */
+ public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
+     public NaiveNameStrategy() {
+         super(NameStrategies.CHECK_EMPTY,
+                 NameStrategies.CHECK_RAW,
+                 NameStrategies.NAIVE_NAME);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-5.html new file mode 100644 index 0000000000..fb7bc4076e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-5.html @@ -0,0 +1,422 @@ + + + + + + + + Coverage Report > NameStrategies + + + + + + +
+ + +

Coverage Summary for Class: NameStrategies (com.codahale.metrics.jdbi.strategies)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
NameStrategies + + 100% + + + (3/3) + + + + 100% + + + (8/8) + +
NameStrategies$1
NameStrategies$CheckEmptyStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + +
NameStrategies$CheckRawStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + +
NameStrategies$ContextClassStrategy + + 100% + + + (3/3) + + + + 92.3% + + + (12/13) + +
NameStrategies$ContextNameStrategy + + 100% + + + (4/4) + + + + 100% + + + (19/19) + +
NameStrategies$NaiveNameStrategy + + 100% + + + (3/3) + + + + 66.7% + + + (6/9) + +
NameStrategies$SqlObjectStrategy + + 100% + + + (3/3) + + + + 100% + + + (11/11) + +
Total + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi.strategies;
+ 
+ import org.skife.jdbi.v2.ClasspathStatementLocator;
+ import org.skife.jdbi.v2.StatementContext;
+ 
+ import java.lang.reflect.Method;
+ import java.util.regex.Matcher;
+ import java.util.regex.Pattern;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ public final class NameStrategies {
+     public static final StatementNameStrategy CHECK_EMPTY = new CheckEmptyStrategy();
+     public static final StatementNameStrategy CHECK_RAW = new CheckRawStrategy();
+     public static final StatementNameStrategy SQL_OBJECT = new SqlObjectStrategy();
+     public static final StatementNameStrategy NAIVE_NAME = new NaiveNameStrategy();
+     public static final StatementNameStrategy CONTEXT_CLASS = new ContextClassStrategy();
+     public static final StatementNameStrategy CONTEXT_NAME = new ContextNameStrategy();
+ 
+     /**
+      * An empty SQL statement.
+      */
+     private static final String EMPTY_SQL = "sql.empty";
+ 
+     /**
+      * Unknown SQL.
+      */
+     static final String UNKNOWN_SQL = "sql.unknown";
+ 
+     /**
+      * Context attribute name for the metric class.
+      */
+     public static final String STATEMENT_CLASS = "_metric_class";
+ 
+     /**
+      * Context attribute name for the metric group.
+      */
+     public static final String STATEMENT_GROUP = "_metric_group";
+ 
+     /**
+      * Context attribute name for the metric type.
+      */
+     public static final String STATEMENT_TYPE = "_metric_type";
+ 
+     /**
+      * Context attribute name for the metric name.
+      */
+     public static final String STATEMENT_NAME = "_metric_name";
+ 
+     private static String forRawSql(String rawSql) {
+         return name("sql", "raw", rawSql);
+     }
+ 
+     static final class CheckEmptyStrategy implements StatementNameStrategy {
+         private CheckEmptyStrategy() {
+         }
+ 
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             final String rawSql = statementContext.getRawSql();
+ 
+             if (rawSql == null || rawSql.length() == 0) {
+                 return EMPTY_SQL;
+             }
+             return null;
+         }
+     }
+ 
+     static final class CheckRawStrategy implements StatementNameStrategy {
+         private CheckRawStrategy() {
+         }
+ 
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             final String rawSql = statementContext.getRawSql();
+ 
+             if (ClasspathStatementLocator.looksLikeSql(rawSql)) {
+                 return forRawSql(rawSql);
+             }
+             return null;
+         }
+     }
+ 
+     static final class NaiveNameStrategy implements StatementNameStrategy {
+         private NaiveNameStrategy() {
+         }
+ 
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             final String rawSql = statementContext.getRawSql();
+ 
+             // Is it using the template loader?
+             final int colon = rawSql.indexOf(':');
+ 
+             if (colon == -1) {
+                 // No package? Just return the name, JDBI figured out somehow on how to find the raw sql for this statement.
+                 return forRawSql(rawSql);
+             }
+ 
+             final String group = rawSql.substring(0, colon);
+             final String name = rawSql.substring(colon + 1);
+             return name(group, name);
+         }
+     }
+ 
+     static final class SqlObjectStrategy implements StatementNameStrategy {
+         private SqlObjectStrategy() {
+         }
+ 
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             final Class<?> clazz = statementContext.getSqlObjectType();
+             final Method method = statementContext.getSqlObjectMethod();
+             if (clazz != null) {
+                 final String rawSql = statementContext.getRawSql();
+ 
+                 final String group = clazz.getPackage().getName();
+                 final String name = clazz.getSimpleName();
+                 final String type = method == null ? rawSql : method.getName();
+                 return name(group, name, type);
+             }
+             return null;
+         }
+     }
+ 
+     static final class ContextClassStrategy implements StatementNameStrategy {
+         private ContextClassStrategy() {
+         }
+ 
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             final Object classObj = statementContext.getAttribute(STATEMENT_CLASS);
+             final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);
+ 
+             if (classObj == null || nameObj == null) {
+                 return null;
+             }
+ 
+             final String className = (String) classObj;
+             final String statementName = (String) nameObj;
+ 
+             final int dotPos = className.lastIndexOf('.');
+             if (dotPos == -1) {
+                 return null;
+             }
+ 
+             return name(className.substring(0, dotPos),
+                     className.substring(dotPos + 1),
+                     statementName);
+         }
+     }
+ 
+     static final class ContextNameStrategy implements StatementNameStrategy {
+         /**
+          * File pattern to shorten the group name.
+          */
+         private static final Pattern SHORT_PATTERN = Pattern.compile("^(.*?)/(.*?)(-sql)?\\.st(g)?$");
+ 
+         private ContextNameStrategy() {
+         }
+ 
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             final Object groupObj = statementContext.getAttribute(STATEMENT_GROUP);
+             final Object typeObj = statementContext.getAttribute(STATEMENT_TYPE);
+             final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);
+ 
+             if (groupObj == null || nameObj == null) {
+                 return null;
+             }
+ 
+             final String group = (String) groupObj;
+             final String statementName = (String) nameObj;
+ 
+             if (typeObj == null) {
+                 final Matcher matcher = SHORT_PATTERN.matcher(group);
+                 if (matcher.matches()) {
+                     final String groupName = matcher.group(1);
+                     final String typeName = matcher.group(2);
+                     return name(groupName, typeName, statementName);
+                 }
+ 
+                 return name(group, statementName, "");
+             } else {
+                 final String type = (String) typeObj;
+ 
+                 return name(group, type, statementName);
+             }
+         }
+     }
+ 
+     private NameStrategies() {
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-6.html new file mode 100644 index 0000000000..1e3351d7f8 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-6.html @@ -0,0 +1,239 @@ + + + + + + + + Coverage Report > ShortNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: ShortNameStrategy (com.codahale.metrics.jdbi.strategies)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
ShortNameStrategy + + 100% + + + (2/2) + + + + 100% + + + (5/5) + +
ShortNameStrategy$1
ShortNameStrategy$ShortContextClassStrategy + + 100% + + + (2/2) + + + + 86.7% + + + (13/15) + +
ShortNameStrategy$ShortSqlObjectStrategy + + 100% + + + (2/2) + + + + 80% + + + (12/15) + +
Total + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi.strategies;
+ 
+ import org.skife.jdbi.v2.StatementContext;
+ 
+ import java.lang.reflect.Method;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * Assembles all JDBI stats under a common prefix (passed in at constructor time). Stats are grouped
+  * by class name and method; a shortening strategy is applied to make the JMX output nicer.
+  */
+ public final class ShortNameStrategy extends DelegatingStatementNameStrategy {
+     private final ConcurrentMap<String, String> shortClassNames = new ConcurrentHashMap<>();
+ 
+     private final String baseJmxName;
+ 
+     public ShortNameStrategy(String baseJmxName) {
+         this.baseJmxName = baseJmxName;
+ 
+         // Java does not allow super (..., new ShortContextClassStrategy(), new ShortSqlObjectStrategy(), ...);
+         // ==> No enclosing instance of type <xxx> is available due to some intermediate constructor invocation. Lame.
+         registerStrategies(NameStrategies.CHECK_EMPTY,
+                 new ShortContextClassStrategy(),
+                 new ShortSqlObjectStrategy(),
+                 NameStrategies.CHECK_RAW,
+                 NameStrategies.NAIVE_NAME);
+     }
+ 
+     private final class ShortContextClassStrategy implements StatementNameStrategy {
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             final Object classObj = statementContext.getAttribute(NameStrategies.STATEMENT_CLASS);
+             final Object nameObj = statementContext.getAttribute(NameStrategies.STATEMENT_NAME);
+ 
+             if (classObj == null || nameObj == null) {
+                 return null;
+             }
+ 
+             final String className = (String) classObj;
+             final String statementName = (String) nameObj;
+ 
+             final int dotPos = className.lastIndexOf('.');
+             if (dotPos == -1) {
+                 return null;
+             }
+ 
+             final String shortName = className.substring(dotPos + 1);
+ 
+             final String oldClassName = shortClassNames.putIfAbsent(shortName, className);
+             if (oldClassName == null || oldClassName.equals(className)) {
+                 return name(baseJmxName, shortName, statementName);
+             } else {
+                 return name(baseJmxName, className, statementName);
+             }
+         }
+     }
+ 
+     private final class ShortSqlObjectStrategy implements StatementNameStrategy {
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             final Class<?> clazz = statementContext.getSqlObjectType();
+             final Method method = statementContext.getSqlObjectMethod();
+             if (clazz != null && method != null) {
+                 final String className = clazz.getName();
+                 final String statementName = method.getName();
+ 
+                 final int dotPos = className.lastIndexOf('.');
+                 if (dotPos == -1) {
+                     return null;
+                 }
+ 
+                 final String shortName = className.substring(dotPos + 1);
+ 
+                 final String oldClassName = shortClassNames.putIfAbsent(shortName, className);
+                 if (oldClassName == null || oldClassName.equals(className)) {
+                     return name(baseJmxName, shortName, statementName);
+                 } else {
+                     return name(baseJmxName, className, statementName);
+                 }
+             }
+             return null;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-7.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-7.html new file mode 100644 index 0000000000..893c59e865 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-7.html @@ -0,0 +1,124 @@ + + + + + + + + Coverage Report > SmartNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi.strategies;
+ 
+ 
+ /**
+  * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_CLASS} and {@link
+  * NameStrategies#STATEMENT_NAME} for class based display or {@link NameStrategies#STATEMENT_GROUP}
+  * and {@link NameStrategies#STATEMENT_NAME} for group based display.
+  * <p>
+  * Also knows how to deal with SQL Object statements.
+  */
+ public class SmartNameStrategy extends DelegatingStatementNameStrategy {
+     public SmartNameStrategy() {
+         super(NameStrategies.CHECK_EMPTY,
+                 NameStrategies.CONTEXT_CLASS,
+                 NameStrategies.CONTEXT_NAME,
+                 NameStrategies.SQL_OBJECT,
+                 NameStrategies.CHECK_RAW,
+                 NameStrategies.NAIVE_NAME);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-8.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-8.html new file mode 100644 index 0000000000..37ef347efe --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-8.html @@ -0,0 +1,78 @@ + + + + + + + + Coverage Report > StatementNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi.strategies)

+ + + + + + + + + +
Class
StatementNameStrategy
+ +
+
+ + +
+ package com.codahale.metrics.jdbi.strategies;
+ 
+ import org.skife.jdbi.v2.StatementContext;
+ 
+ /**
+  * Interface for strategies to statement contexts to metric names.
+  */
+ public interface StatementNameStrategy {
+     String getStatementName(StatementContext statementContext);
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index.html new file mode 100644 index 0000000000..5a6cb7ac06 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-11/index.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..5d00cc776a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..ec85271d44 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..7c616bed66 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..1a9c20fed2 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..b194e8baaf --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_LINE.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..056bd6be8e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..bbe3dc6234 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..6a50195627 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..e0668a5e88 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/sources/source-1.html new file mode 100644 index 0000000000..950d9043ba --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-11/sources/source-1.html @@ -0,0 +1,152 @@ + + + + + + + + Coverage Report > InstrumentedSqlLogger + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedSqlLogger (com.codahale.metrics.jdbi3)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi3;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
+ import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
+ import org.jdbi.v3.core.statement.SqlLogger;
+ import org.jdbi.v3.core.statement.StatementContext;
+ 
+ import java.sql.SQLException;
+ import java.time.temporal.ChronoUnit;
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * A {@link SqlLogger} implementation for JDBI which uses the SQL objects' class names and
+  * method names for nanosecond-precision timers.
+  */
+ public class InstrumentedSqlLogger implements SqlLogger {
+     private final MetricRegistry registry;
+     private final StatementNameStrategy statementNameStrategy;
+ 
+     public InstrumentedSqlLogger(MetricRegistry registry) {
+         this(registry, new SmartNameStrategy());
+     }
+ 
+     public InstrumentedSqlLogger(MetricRegistry registry,
+                                  StatementNameStrategy statementNameStrategy) {
+         this.registry = registry;
+         this.statementNameStrategy = statementNameStrategy;
+     }
+ 
+     @Override
+     public void logAfterExecution(StatementContext context) {
+         log(context);
+     }
+ 
+     @Override
+     public void logException(StatementContext context, SQLException ex) {
+         log(context);
+     }
+ 
+     private void log(StatementContext context) {
+         String statementName = statementNameStrategy.getStatementName(context);
+         if (statementName != null) {
+             final long elapsed = context.getElapsedTime(ChronoUnit.NANOS);
+             registry.timer(statementName).update(elapsed, TimeUnit.NANOSECONDS);
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/sources/source-2.html new file mode 100644 index 0000000000..08ce54f2d0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-11/sources/source-2.html @@ -0,0 +1,145 @@ + + + + + + + + Coverage Report > InstrumentedTimingCollector + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi3)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi3;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
+ import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
+ import org.jdbi.v3.core.statement.SqlLogger;
+ import org.jdbi.v3.core.statement.StatementContext;
+ import org.jdbi.v3.core.statement.TimingCollector;
+ 
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * A {@link TimingCollector} implementation for JDBI which uses the SQL objects' class names and
+  * method names for millisecond-precision timers.
+  *
+  * @deprecated Use {@link InstrumentedSqlLogger} and {@link org.jdbi.v3.core.Jdbi#setSqlLogger(SqlLogger)} instead.
+  */
+ @Deprecated
+ public class InstrumentedTimingCollector implements TimingCollector {
+ 
+     private final MetricRegistry registry;
+     private final StatementNameStrategy statementNameStrategy;
+ 
+     public InstrumentedTimingCollector(MetricRegistry registry) {
+         this(registry, new SmartNameStrategy());
+     }
+ 
+     public InstrumentedTimingCollector(MetricRegistry registry,
+                                        StatementNameStrategy statementNameStrategy) {
+         this.registry = registry;
+         this.statementNameStrategy = statementNameStrategy;
+     }
+ 
+     @Override
+     public void collect(long elapsedTime, StatementContext ctx) {
+         String statementName = statementNameStrategy.getStatementName(ctx);
+         if (statementName != null) {
+             registry.timer(statementName).update(elapsedTime, TimeUnit.NANOSECONDS);
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index.html new file mode 100644 index 0000000000..8f31320dec --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-12/index.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..aa7abd6bf0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..bbfd93f76b --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..7e17ddbff7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..2dc754d25d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..457bbe3979 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_LINE.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..e321116fd3 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..5382646af4 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..8e25b12d83 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..0dc72710a3 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-1.html new file mode 100644 index 0000000000..bc18100579 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-1.html @@ -0,0 +1,116 @@ + + + + + + + + Coverage Report > BasicSqlNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi3.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi3.strategies;
+ 
+ /**
+  * Collects metrics by respective SQLObject methods.
+  */
+ public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
+ 
+     public BasicSqlNameStrategy() {
+         super(DefaultNameStrategy.CHECK_EMPTY,
+                 DefaultNameStrategy.SQL_OBJECT);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-2.html new file mode 100644 index 0000000000..abb8534afd --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-2.html @@ -0,0 +1,246 @@ + + + + + + + + Coverage Report > DefaultNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: DefaultNameStrategy (com.codahale.metrics.jdbi3.strategies)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
DefaultNameStrategy + + 100% + + + (2/2) + + + + 100% + + + (5/5) + +
DefaultNameStrategy$1 + + 100% + + + (2/2) + + + + 100% + + + (3/3) + +
DefaultNameStrategy$2 + + 100% + + + (2/2) + + + + 100% + + + (5/5) + +
DefaultNameStrategy$3 + + 100% + + + (2/2) + + + + 100% + + + (2/2) + +
DefaultNameStrategy$4 + + 100% + + + (2/2) + + + + 100% + + + (2/2) + +
Total + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi3.strategies;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.jdbi.v3.core.extension.ExtensionMethod;
+ import org.jdbi.v3.core.statement.StatementContext;
+ 
+ /**
+  * Default strategies which build a basis of more complex strategies
+  */
+ public enum DefaultNameStrategy implements StatementNameStrategy {
+ 
+     /**
+      * If no SQL in the context, returns `sql.empty`, otherwise falls through
+      */
+     CHECK_EMPTY {
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             final String rawSql = statementContext.getRawSql();
+             return rawSql == null || rawSql.isEmpty() ? "sql.empty" : null;
+         }
+     },
+ 
+     /**
+      * If there is an SQL object attached to the context, returns the name package,
+      * the class and the method on which SQL is declared. If not SQL object is attached,
+      * falls through
+      */
+     SQL_OBJECT {
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             ExtensionMethod extensionMethod = statementContext.getExtensionMethod();
+             if (extensionMethod != null) {
+                 return MetricRegistry.name(extensionMethod.getType(), extensionMethod.getMethod().getName());
+             }
+             return null;
+         }
+     },
+ 
+     /**
+      * Returns a raw SQL in the context (even if it's not exist)
+      */
+     NAIVE_NAME {
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             return statementContext.getRawSql();
+         }
+     },
+ 
+     /**
+      * Returns the `sql.raw` constant
+      */
+     CONSTANT_SQL_RAW {
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             return "sql.raw";
+         }
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-3.html new file mode 100644 index 0000000000..89b8e39d07 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-3.html @@ -0,0 +1,136 @@ + + + + + + + + Coverage Report > DelegatingStatementNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi3.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi3.strategies;
+ 
+ import org.jdbi.v3.core.statement.StatementContext;
+ 
+ import java.util.Arrays;
+ import java.util.List;
+ 
+ public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
+ 
+     /**
+      * Unknown SQL.
+      */
+     private static final String UNKNOWN_SQL = "sql.unknown";
+ 
+     private final List<StatementNameStrategy> strategies;
+ 
+     protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {
+         this.strategies = Arrays.asList(strategies);
+     }
+ 
+     @Override
+     public String getStatementName(StatementContext statementContext) {
+         for (StatementNameStrategy strategy : strategies) {
+             final String statementName = strategy.getStatementName(statementContext);
+             if (statementName != null) {
+                 return statementName;
+             }
+         }
+ 
+         return UNKNOWN_SQL;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-4.html new file mode 100644 index 0000000000..ef93105350 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-4.html @@ -0,0 +1,116 @@ + + + + + + + + Coverage Report > NaiveNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi3.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi3.strategies;
+ 
+ /**
+  * Very simple strategy, can be used with any JDBI loader to build basic statistics.
+  */
+ public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
+ 
+     public NaiveNameStrategy() {
+         super(DefaultNameStrategy.CHECK_EMPTY,
+               DefaultNameStrategy.NAIVE_NAME);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-5.html new file mode 100644 index 0000000000..7d116ea245 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-5.html @@ -0,0 +1,117 @@ + + + + + + + + Coverage Report > SmartNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi3.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi3.strategies;
+ 
+ /**
+  * Uses a {@link BasicSqlNameStrategy} and fallbacks to {@link DefaultNameStrategy#CONSTANT_SQL_RAW}
+  */
+ public class SmartNameStrategy extends DelegatingStatementNameStrategy {
+ 
+     public SmartNameStrategy() {
+         super(DefaultNameStrategy.CHECK_EMPTY,
+                 DefaultNameStrategy.SQL_OBJECT,
+                 DefaultNameStrategy.CONSTANT_SQL_RAW);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-6.html new file mode 100644 index 0000000000..6591d33de1 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-6.html @@ -0,0 +1,151 @@ + + + + + + + + Coverage Report > TimedAnnotationNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: TimedAnnotationNameStrategy (com.codahale.metrics.jdbi3.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi3.strategies;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.annotation.Timed;
+ import org.jdbi.v3.core.extension.ExtensionMethod;
+ import org.jdbi.v3.core.statement.StatementContext;
+ 
+ import java.lang.reflect.Method;
+ 
+ /**
+  * Takes into account the {@link Timed} annotation on extension methods
+  */
+ public class TimedAnnotationNameStrategy implements StatementNameStrategy {
+ 
+     @Override
+     public String getStatementName(StatementContext statementContext) {
+         final ExtensionMethod extensionMethod = statementContext.getExtensionMethod();
+         if (extensionMethod == null) {
+             return null;
+         }
+ 
+         final Class<?> clazz = extensionMethod.getType();
+         final Timed classTimed = clazz.getAnnotation(Timed.class);
+         final Method method = extensionMethod.getMethod();
+         final Timed methodTimed = method.getAnnotation(Timed.class);
+ 
+         // If the method is timed, figure out the name
+         if (methodTimed != null) {
+             String methodName = methodTimed.name().isEmpty() ? method.getName() : methodTimed.name();
+             if (methodTimed.absolute()) {
+                 return methodName;
+             } else {
+                 // We need to check if the class has a custom timer name
+                 return classTimed == null || classTimed.name().isEmpty() ?
+                         MetricRegistry.name(clazz, methodName) :
+                         MetricRegistry.name(classTimed.name(), methodName);
+             }
+         } else if (classTimed != null) {
+             // Maybe the class is timed?
+             return classTimed.name().isEmpty() ? MetricRegistry.name(clazz, method.getName()) :
+                     MetricRegistry.name(classTimed.name(), method.getName());
+         } else {
+             // No timers neither on the method or the class
+             return null;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-7.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-7.html new file mode 100644 index 0000000000..d6bcc77960 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-7.html @@ -0,0 +1,89 @@ + + + + + + + + Coverage Report > StatementNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi3.strategies)

+ + + + + + + + + + + + + + + + + + +
Class
StatementNameStrategy$MockitoMock$wZbYeQ8O
StatementNameStrategy$MockitoMock$wZbYeQ8O$auxiliary$EjHL0NaR
StatementNameStrategy$MockitoMock$wZbYeQ8O$auxiliary$kFmlIXLI
Total
+ +
+
+ + +
+ package com.codahale.metrics.jdbi3.strategies;
+ 
+ import org.jdbi.v3.core.statement.StatementContext;
+ 
+ /**
+  * Interface for strategies to statement contexts to metric names.
+  */
+ @FunctionalInterface
+ public interface StatementNameStrategy {
+ 
+     String getStatementName(StatementContext statementContext);
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index.html new file mode 100644 index 0000000000..40d4e78717 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-13/index.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..1eadf4de43 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..f7e12bcf75 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..9264cd7bc0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..c4b31ffb49 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..686730a7fd --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_LINE.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..9104569922 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..c2a1d29331 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..a42563ff5f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..898e95b3a8 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/sources/source-1.html new file mode 100644 index 0000000000..9281f9b5eb --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-13/sources/source-1.html @@ -0,0 +1,831 @@ + + + + + + + + Coverage Report > InstrumentedResourceMethodApplicationListener + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey2)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 88.9% + + + (16/18) + + + + 92.1% + + + (82/89) + +
InstrumentedResourceMethodApplicationListener$1 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener + + 100% + + + (3/3) + + + + 100% + + + (5/5) + +
InstrumentedResourceMethodApplicationListener$EventTypeAndMethod + + 100% + + + (8/8) + + + + 84.2% + + + (16/19) + +
InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric + + 100% + + + (1/1) + + + + 100% + + + (5/5) + +
InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener + + 100% + + + (2/2) + + + + 100% + + + (11/11) + +
InstrumentedResourceMethodApplicationListener$MeterRequestEventListener + + 100% + + + (2/2) + + + + 100% + + + (6/6) + +
InstrumentedResourceMethodApplicationListener$ResponseMeterMetric + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener + + 100% + + + (2/2) + + + + 100% + + + (12/12) + +
InstrumentedResourceMethodApplicationListener$TimerRequestEventListener + + 100% + + + (4/4) + + + + 100% + + + (28/28) + +
Total + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+
+ + +
+ package com.codahale.metrics.jersey2;
+ 
+ import com.codahale.metrics.Clock;
+ import com.codahale.metrics.ExponentiallyDecayingReservoir;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Reservoir;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ExceptionMetered;
+ import com.codahale.metrics.annotation.Metered;
+ import com.codahale.metrics.annotation.ResponseMetered;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import com.codahale.metrics.annotation.Timed;
+ import org.glassfish.jersey.server.ContainerResponse;
+ import org.glassfish.jersey.server.model.ModelProcessor;
+ import org.glassfish.jersey.server.model.Resource;
+ import org.glassfish.jersey.server.model.ResourceMethod;
+ import org.glassfish.jersey.server.model.ResourceModel;
+ import org.glassfish.jersey.server.monitoring.ApplicationEvent;
+ import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
+ import org.glassfish.jersey.server.monitoring.RequestEvent;
+ import org.glassfish.jersey.server.monitoring.RequestEventListener;
+ 
+ import javax.ws.rs.core.Configuration;
+ import javax.ws.rs.ext.Provider;
+ import java.lang.annotation.Annotation;
+ import java.lang.reflect.Method;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.EnumSet;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ import java.util.concurrent.TimeUnit;
+ import java.util.function.Supplier;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ 
+ /**
+  * An application event listener that listens for Jersey application initialization to
+  * be finished, then creates a map of resource method that have metrics annotations.
+  * <p>
+  * Finally, it listens for method start events, and returns a {@link RequestEventListener}
+  * that updates the relevant metric for suitably annotated methods when it gets the
+  * request events indicating that the method is about to be invoked, or just got done
+  * being invoked.
+  */
+ @Provider
+ public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
+ 
+     private static final String[] REQUEST_FILTERING = {"request", "filtering"};
+     private static final String[] RESPONSE_FILTERING = {"response", "filtering"};
+     private static final String TOTAL = "total";
+ 
+     private final MetricRegistry metrics;
+     private final ConcurrentMap<EventTypeAndMethod, Timer> timers = new ConcurrentHashMap<>();
+     private final ConcurrentMap<Method, Meter> meters = new ConcurrentHashMap<>();
+     private final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters = new ConcurrentHashMap<>();
+     private final ConcurrentMap<Method, ResponseMeterMetric> responseMeters = new ConcurrentHashMap<>();
+ 
+     private final Clock clock;
+     private final boolean trackFilters;
+     private final Supplier<Reservoir> reservoirSupplier;
+ 
+     /**
+      * Construct an application event listener using the given metrics registry.
+      * <p>
+      * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
+      * should be added to a Jersey {@code ResourceConfig} as a singleton.
+      *
+      * @param metrics a {@link MetricRegistry}
+      */
+     public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
+         this(metrics, Clock.defaultClock(), false);
+     }
+ 
+     /**
+      * Constructs a custom application listener.
+      *
+      * @param metrics      the metrics registry where the metrics will be stored
+      * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters whether the processing time for request and response filters should be tracked
+      */
+     public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
+                                                          final boolean trackFilters) {
+         this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);
+     }
+ 
+     /**
+      * Constructs a custom application listener.
+      *
+      * @param metrics           the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters      whether the processing time for request and response filters should be tracked
+      * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
+      */
+     public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
+                                                          final boolean trackFilters,
+                                                          final Supplier<Reservoir> reservoirSupplier) {
+         this.metrics = metrics;
+         this.clock = clock;
+         this.trackFilters = trackFilters;
+         this.reservoirSupplier = reservoirSupplier;
+     }
+ 
+     /**
+      * A private class to maintain the metric for a method annotated with the
+      * {@link ExceptionMetered} annotation, which needs to maintain both a meter
+      * and a cause for which the meter should be updated.
+      */
+     private static class ExceptionMeterMetric {
+         public final Meter meter;
+         public final Class<? extends Throwable> cause;
+ 
+         public ExceptionMeterMetric(final MetricRegistry registry,
+                                     final ResourceMethod method,
+                                     final ExceptionMetered exceptionMetered) {
+             final String name = chooseName(exceptionMetered.name(),
+                     exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);
+             this.meter = registry.meter(name);
+             this.cause = exceptionMetered.cause();
+         }
+     }
+ 
+     /**
+      * A private class to maintain the metrics for a method annotated with the
+      * {@link ResponseMetered} annotation, which needs to maintain meters for
+      * different response codes
+      */
+     private static class ResponseMeterMetric {
+         private static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+         private static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+         private final List<Meter> meters;
+         private final Map<Integer, Meter> responseCodeMeters;
+         private final MetricRegistry metricRegistry;
+         private final String metricName;
+         private final ResponseMeteredLevel level;
+ 
+         public ResponseMeterMetric(final MetricRegistry registry,
+                                    final ResourceMethod method,
+                                    final ResponseMetered responseMetered) {
+             this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);
+             this.level = responseMetered.level();
+             this.meters = COARSE_METER_LEVELS.contains(level) ?
+                     Collections.unmodifiableList(Arrays.asList(
+                     registry.meter(name(metricName, "1xx-responses")), // 1xx
+                     registry.meter(name(metricName, "2xx-responses")), // 2xx
+                     registry.meter(name(metricName, "3xx-responses")), // 3xx
+                     registry.meter(name(metricName, "4xx-responses")), // 4xx
+                     registry.meter(name(metricName, "5xx-responses"))  // 5xx
+             )) : Collections.emptyList();
+             this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+             this.metricRegistry = registry;
+         }
+ 
+         public void mark(int statusCode) {
+             if (DETAILED_METER_LEVELS.contains(level)) {
+                 getResponseCodeMeter(statusCode).mark();
+             }
+ 
+             if (COARSE_METER_LEVELS.contains(level)) {
+                 final int responseStatus = statusCode / 100;
+                 if (responseStatus >= 1 && responseStatus <= 5) {
+                     meters.get(responseStatus - 1).mark();
+                 }
+             }
+         }
+ 
+         private Meter getResponseCodeMeter(int statusCode) {
+             return responseCodeMeters
+                     .computeIfAbsent(statusCode, sc -> metricRegistry
+                             .meter(name(metricName, String.format("%d-responses", sc))));
+         }
+     }
+ 
+     private static class TimerRequestEventListener implements RequestEventListener {
+ 
+         private final ConcurrentMap<EventTypeAndMethod, Timer> timers;
+         private final Clock clock;
+         private final long start;
+         private Timer.Context resourceMethodStartContext;
+         private Timer.Context requestMatchedContext;
+         private Timer.Context responseFiltersStartContext;
+ 
+         public TimerRequestEventListener(final ConcurrentMap<EventTypeAndMethod, Timer> timers, final Clock clock) {
+             this.timers = timers;
+             this.clock = clock;
+             start = clock.getTick();
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             switch (event.getType()) {
+                 case RESOURCE_METHOD_START:
+                     resourceMethodStartContext = context(event);
+                     break;
+                 case REQUEST_MATCHED:
+                     requestMatchedContext = context(event);
+                     break;
+                 case RESP_FILTERS_START:
+                     responseFiltersStartContext = context(event);
+                     break;
+                 case RESOURCE_METHOD_FINISHED:
+                     if (resourceMethodStartContext != null) {
+                         resourceMethodStartContext.close();
+                     }
+                     break;
+                 case REQUEST_FILTERED:
+                     if (requestMatchedContext != null) {
+                         requestMatchedContext.close();
+                     }
+                     break;
+                 case RESP_FILTERS_FINISHED:
+                     if (responseFiltersStartContext != null) {
+                         responseFiltersStartContext.close();
+                     }
+                     break;
+                 case FINISHED:
+                     if (requestMatchedContext != null && responseFiltersStartContext != null) {
+                         final Timer timer = timer(event);
+                         if (timer != null) {
+                             timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);
+                         }
+                     }
+                     break;
+                 default:
+                     break;
+             }
+         }
+ 
+         private Timer timer(RequestEvent event) {
+             final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();
+             if (resourceMethod == null) {
+                 return null;
+             }
+             return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));
+         }
+ 
+         private Timer.Context context(RequestEvent event) {
+             final Timer timer = timer(event);
+             return timer != null ? timer.time() : null;
+         }
+     }
+ 
+     private static class MeterRequestEventListener implements RequestEventListener {
+         private final ConcurrentMap<Method, Meter> meters;
+ 
+         public MeterRequestEventListener(final ConcurrentMap<Method, Meter> meters) {
+             this.meters = meters;
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {
+                 final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());
+                 if (meter != null) {
+                     meter.mark();
+                 }
+             }
+         }
+     }
+ 
+     private static class ExceptionMeterRequestEventListener implements RequestEventListener {
+         private final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters;
+ 
+         public ExceptionMeterRequestEventListener(final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters) {
+             this.exceptionMeters = exceptionMeters;
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {
+                 final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();
+                 final ExceptionMeterMetric metric = (method != null) ?
+                         this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;
+ 
+                 if (metric != null) {
+                     if (metric.cause.isAssignableFrom(event.getException().getClass()) ||
+                             (event.getException().getCause() != null &&
+                                     metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {
+                         metric.meter.mark();
+                     }
+                 }
+             }
+         }
+     }
+ 
+     private static class ResponseMeterRequestEventListener implements RequestEventListener {
+         private final ConcurrentMap<Method, ResponseMeterMetric> responseMeters;
+ 
+         public ResponseMeterRequestEventListener(final ConcurrentMap<Method, ResponseMeterMetric> responseMeters) {
+             this.responseMeters = responseMeters;
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             if (event.getType() == RequestEvent.Type.FINISHED) {
+                 final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();
+                 final ResponseMeterMetric metric = (method != null) ?
+                         this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;
+ 
+                 if (metric != null) {
+                     ContainerResponse containerResponse = event.getContainerResponse();
+                     if (containerResponse == null && event.getException() != null) {
+                         metric.mark(500);
+                     } else if (containerResponse != null) {
+                         metric.mark(containerResponse.getStatus());
+                     }
+                 }
+             }
+         }
+     }
+ 
+     private static class ChainedRequestEventListener implements RequestEventListener {
+         private final RequestEventListener[] listeners;
+ 
+         private ChainedRequestEventListener(final RequestEventListener... listeners) {
+             this.listeners = listeners;
+         }
+ 
+         @Override
+         public void onEvent(final RequestEvent event) {
+             for (RequestEventListener listener : listeners) {
+                 listener.onEvent(event);
+             }
+         }
+     }
+ 
+     @Override
+     public void onEvent(ApplicationEvent event) {
+         if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {
+             registerMetricsForModel(event.getResourceModel());
+         }
+     }
+ 
+     @Override
+     public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
+         return resourceModel;
+     }
+ 
+     @Override
+     public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
+         registerMetricsForModel(subResourceModel);
+         return subResourceModel;
+     }
+ 
+     private void registerMetricsForModel(ResourceModel resourceModel) {
+         for (final Resource resource : resourceModel.getResources()) {
+ 
+             final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);
+             final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);
+             final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);
+             final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);
+ 
+             for (final ResourceMethod method : resource.getAllMethods()) {
+                 registerTimedAnnotations(method, classLevelTimed);
+                 registerMeteredAnnotations(method, classLevelMetered);
+                 registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);
+                 registerResponseMeteredAnnotations(method, classLevelResponseMetered);
+             }
+ 
+             for (final Resource childResource : resource.getChildResources()) {
+ 
+                 final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);
+                 final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);
+                 final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);
+                 final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);
+ 
+                 for (final ResourceMethod method : childResource.getAllMethods()) {
+                     registerTimedAnnotations(method, classLevelTimedChild);
+                     registerMeteredAnnotations(method, classLevelMeteredChild);
+                     registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);
+                     registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);
+                 }
+             }
+         }
+     }
+ 
+     @Override
+     public RequestEventListener onRequest(final RequestEvent event) {
+         final RequestEventListener listener = new ChainedRequestEventListener(
+                 new TimerRequestEventListener(timers, clock),
+                 new MeterRequestEventListener(meters),
+                 new ExceptionMeterRequestEventListener(exceptionMeters),
+                 new ResponseMeterRequestEventListener(responseMeters));
+ 
+         return listener;
+     }
+ 
+     private <T extends Annotation> T getClassLevelAnnotation(final Resource resource, final Class<T> annotationClazz) {
+         T annotation = null;
+ 
+         for (final Class<?> clazz : resource.getHandlerClasses()) {
+             annotation = clazz.getAnnotation(annotationClazz);
+ 
+             if (annotation != null) {
+                 break;
+             }
+         }
+         return annotation;
+     }
+ 
+     private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+         if (classLevelTimed != null) {
+             registerTimers(method, definitionMethod, classLevelTimed);
+             return;
+         }
+ 
+         final Timed annotation = definitionMethod.getAnnotation(Timed.class);
+         if (annotation != null) {
+             registerTimers(method, definitionMethod, annotation);
+         }
+     }
+ 
+     private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
+         timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));
+         if (trackFilters) {
+             timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));
+             timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));
+             timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));
+         }
+     }
+ 
+     private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+ 
+         if (classLevelMetered != null) {
+             meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));
+             return;
+         }
+         final Metered annotation = definitionMethod.getAnnotation(Metered.class);
+ 
+         if (annotation != null) {
+             meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));
+         }
+     }
+ 
+     private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+ 
+         if (classLevelExceptionMetered != null) {
+             exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));
+             return;
+         }
+         final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);
+ 
+         if (annotation != null) {
+             exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));
+         }
+     }
+ 
+     private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+ 
+         if (classLevelResponseMetered != null) {
+             responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));
+             return;
+         }
+         final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);
+ 
+         if (annotation != null) {
+             responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));
+         }
+     }
+ 
+     private Timer timerMetric(final MetricRegistry registry,
+                               final ResourceMethod method,
+                               final Timed timed,
+                               final String... suffixes) {
+         final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);
+         return registry.timer(name, () -> new Timer(reservoirSupplier.get(), clock));
+     }
+ 
+     private Meter meterMetric(final MetricRegistry registry,
+                               final ResourceMethod method,
+                               final Metered metered) {
+         final String name = chooseName(metered.name(), metered.absolute(), method);
+         return registry.meter(name, () -> new Meter(clock));
+     }
+ 
+     protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
+                                        final String... suffixes) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+         final String metricName;
+         if (explicitName != null && !explicitName.isEmpty()) {
+             metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);
+         } else {
+             metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());
+         }
+         return name(metricName, suffixes);
+     }
+ 
+     private static class EventTypeAndMethod {
+ 
+         private final RequestEvent.Type type;
+         private final Method method;
+ 
+         private EventTypeAndMethod(RequestEvent.Type type, Method method) {
+             this.type = type;
+             this.method = method;
+         }
+ 
+         static EventTypeAndMethod requestMethodStart(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);
+         }
+ 
+         static EventTypeAndMethod requestMatched(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);
+         }
+ 
+         static EventTypeAndMethod respFiltersStart(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);
+         }
+ 
+         static EventTypeAndMethod finished(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);
+         }
+ 
+         @Override
+         public boolean equals(Object o) {
+             if (this == o) {
+                 return true;
+             }
+             if (o == null || getClass() != o.getClass()) {
+                 return false;
+             }
+ 
+             EventTypeAndMethod that = (EventTypeAndMethod) o;
+ 
+             if (type != that.type) {
+                 return false;
+             }
+             return method.equals(that.method);
+         }
+ 
+         @Override
+         public int hashCode() {
+             int result = type.hashCode();
+             result = 31 * result + method.hashCode();
+             return result;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/sources/source-2.html new file mode 100644 index 0000000000..04c6d07518 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-13/sources/source-2.html @@ -0,0 +1,201 @@ + + + + + + + + Coverage Report > MetricsFeature + + + + + + +
+ + +

Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey2)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+
+ + +
+ package com.codahale.metrics.jersey2;
+ 
+ import com.codahale.metrics.Clock;
+ import com.codahale.metrics.ExponentiallyDecayingReservoir;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Reservoir;
+ import com.codahale.metrics.SharedMetricRegistries;
+ 
+ import javax.ws.rs.core.Feature;
+ import javax.ws.rs.core.FeatureContext;
+ import java.util.function.Supplier;
+ 
+ /**
+  * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
+  * for recording request events.
+  */
+ public class MetricsFeature implements Feature {
+ 
+     private final MetricRegistry registry;
+     private final Clock clock;
+     private final boolean trackFilters;
+     private final Supplier<Reservoir> reservoirSupplier;
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      */
+     public MetricsFeature(MetricRegistry registry) {
+         this(registry, Clock.defaultClock());
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
+      */
+     public MetricsFeature(MetricRegistry registry, Supplier<Reservoir> reservoirSupplier) {
+         this(registry, Clock.defaultClock(), false, reservoirSupplier);
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      */
+     public MetricsFeature(MetricRegistry registry, Clock clock) {
+         this(registry, clock, false);
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters      whether the processing time for request and response filters should be tracked
+      */
+     public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
+         this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters      whether the processing time for request and response filters should be tracked
+      * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
+      */
+     public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier<Reservoir> reservoirSupplier) {
+         this.registry = registry;
+         this.clock = clock;
+         this.trackFilters = trackFilters;
+         this.reservoirSupplier = reservoirSupplier;
+     }
+ 
+     public MetricsFeature(String registryName) {
+         this(SharedMetricRegistries.getOrCreate(registryName));
+     }
+ 
+     /**
+      * A call-back method called when the feature is to be enabled in a given
+      * runtime configuration scope.
+      * <p>
+      * The responsibility of the feature is to properly update the supplied runtime configuration context
+      * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
+      * <p>
+      * Note that under some circumstances the feature may decide not to enable itself, which
+      * is indicated by returning {@code false}. In such case the configuration context does
+      * not add the feature to the collection of enabled features and a subsequent call to
+      * {@link javax.ws.rs.core.Configuration#isEnabled(javax.ws.rs.core.Feature)} or
+      * {@link javax.ws.rs.core.Configuration#isEnabled(Class)} method
+      * would return {@code false}.
+      * <p>
+      *
+      * @param context configurable context in which the feature should be enabled.
+      * @return {@code true} if the feature was successfully enabled, {@code false}
+      * otherwise.
+      */
+     @Override
+     public boolean configure(FeatureContext context) {
+         context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));
+         return true;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index.html new file mode 100644 index 0000000000..8c0b067f8a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-14/index.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..cba76c82d0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..757aaeb716 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..2d21fbb41b --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..e09a3ef870 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..cb21b2f57a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_LINE.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..1836348fd5 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..2ac1887e3d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..535e293978 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..454145ede1 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/sources/source-1.html new file mode 100644 index 0000000000..a8c19465d4 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-14/sources/source-1.html @@ -0,0 +1,832 @@ + + + + + + + + Coverage Report > InstrumentedResourceMethodApplicationListener + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey3)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 88.9% + + + (16/18) + + + + 92.1% + + + (82/89) + +
InstrumentedResourceMethodApplicationListener$1 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener + + 100% + + + (3/3) + + + + 100% + + + (5/5) + +
InstrumentedResourceMethodApplicationListener$EventTypeAndMethod + + 100% + + + (8/8) + + + + 84.2% + + + (16/19) + +
InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric + + 100% + + + (1/1) + + + + 100% + + + (5/5) + +
InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener + + 100% + + + (2/2) + + + + 100% + + + (11/11) + +
InstrumentedResourceMethodApplicationListener$MeterRequestEventListener + + 100% + + + (2/2) + + + + 100% + + + (6/6) + +
InstrumentedResourceMethodApplicationListener$ResponseMeterMetric + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener + + 100% + + + (2/2) + + + + 100% + + + (12/12) + +
InstrumentedResourceMethodApplicationListener$TimerRequestEventListener + + 100% + + + (4/4) + + + + 100% + + + (28/28) + +
Total + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+
+ + +
+ package com.codahale.metrics.jersey3;
+ 
+ import com.codahale.metrics.Clock;
+ import com.codahale.metrics.ExponentiallyDecayingReservoir;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Reservoir;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ExceptionMetered;
+ import com.codahale.metrics.annotation.Metered;
+ import com.codahale.metrics.annotation.ResponseMetered;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import com.codahale.metrics.annotation.Timed;
+ import jakarta.ws.rs.core.Configuration;
+ import jakarta.ws.rs.ext.Provider;
+ import org.glassfish.jersey.server.ContainerResponse;
+ import org.glassfish.jersey.server.model.ModelProcessor;
+ import org.glassfish.jersey.server.model.Resource;
+ import org.glassfish.jersey.server.model.ResourceMethod;
+ import org.glassfish.jersey.server.model.ResourceModel;
+ import org.glassfish.jersey.server.monitoring.ApplicationEvent;
+ import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
+ import org.glassfish.jersey.server.monitoring.RequestEvent;
+ import org.glassfish.jersey.server.monitoring.RequestEventListener;
+ 
+ import java.lang.annotation.Annotation;
+ import java.lang.reflect.Method;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.EnumSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ import java.util.concurrent.TimeUnit;
+ import java.util.function.Supplier;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ 
+ 
+ /**
+  * An application event listener that listens for Jersey application initialization to
+  * be finished, then creates a map of resource method that have metrics annotations.
+  * <p>
+  * Finally, it listens for method start events, and returns a {@link RequestEventListener}
+  * that updates the relevant metric for suitably annotated methods when it gets the
+  * request events indicating that the method is about to be invoked, or just got done
+  * being invoked.
+  */
+ @Provider
+ public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
+ 
+     private static final String[] REQUEST_FILTERING = {"request", "filtering"};
+     private static final String[] RESPONSE_FILTERING = {"response", "filtering"};
+     private static final String TOTAL = "total";
+ 
+     private final MetricRegistry metrics;
+     private final ConcurrentMap<EventTypeAndMethod, Timer> timers = new ConcurrentHashMap<>();
+     private final ConcurrentMap<Method, Meter> meters = new ConcurrentHashMap<>();
+     private final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters = new ConcurrentHashMap<>();
+     private final ConcurrentMap<Method, ResponseMeterMetric> responseMeters = new ConcurrentHashMap<>();
+ 
+     private final Clock clock;
+     private final boolean trackFilters;
+     private final Supplier<Reservoir> reservoirSupplier;
+ 
+     /**
+      * Construct an application event listener using the given metrics registry.
+      * <p>
+      * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
+      * should be added to a Jersey {@code ResourceConfig} as a singleton.
+      *
+      * @param metrics a {@link MetricRegistry}
+      */
+     public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
+         this(metrics, Clock.defaultClock(), false);
+     }
+ 
+     /**
+      * Constructs a custom application listener.
+      *
+      * @param metrics      the metrics registry where the metrics will be stored
+      * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters whether the processing time for request and response filters should be tracked
+      */
+     public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
+                                                          final boolean trackFilters) {
+         this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);
+     }
+ 
+     /**
+      * Constructs a custom application listener.
+      *
+      * @param metrics           the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters      whether the processing time for request and response filters should be tracked
+      * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
+      */
+     public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
+                                                          final boolean trackFilters,
+                                                          final Supplier<Reservoir> reservoirSupplier) {
+         this.metrics = metrics;
+         this.clock = clock;
+         this.trackFilters = trackFilters;
+         this.reservoirSupplier = reservoirSupplier;
+     }
+ 
+     /**
+      * A private class to maintain the metric for a method annotated with the
+      * {@link ExceptionMetered} annotation, which needs to maintain both a meter
+      * and a cause for which the meter should be updated.
+      */
+     private static class ExceptionMeterMetric {
+         public final Meter meter;
+         public final Class<? extends Throwable> cause;
+ 
+         public ExceptionMeterMetric(final MetricRegistry registry,
+                                     final ResourceMethod method,
+                                     final ExceptionMetered exceptionMetered) {
+             final String name = chooseName(exceptionMetered.name(),
+                     exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);
+             this.meter = registry.meter(name);
+             this.cause = exceptionMetered.cause();
+         }
+     }
+ 
+     /**
+      * A private class to maintain the metrics for a method annotated with the
+      * {@link ResponseMetered} annotation, which needs to maintain meters for
+      * different response codes
+      */
+     private static class ResponseMeterMetric {
+         private static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+         private static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+         private final List<Meter> meters;
+         private final Map<Integer, Meter> responseCodeMeters;
+         private final MetricRegistry metricRegistry;
+         private final String metricName;
+         private final ResponseMeteredLevel level;
+ 
+         public ResponseMeterMetric(final MetricRegistry registry,
+                                    final ResourceMethod method,
+                                    final ResponseMetered responseMetered) {
+             this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);
+             this.level = responseMetered.level();
+             this.meters = COARSE_METER_LEVELS.contains(level) ?
+                     Collections.unmodifiableList(Arrays.asList(
+                             registry.meter(name(metricName, "1xx-responses")), // 1xx
+                             registry.meter(name(metricName, "2xx-responses")), // 2xx
+                             registry.meter(name(metricName, "3xx-responses")), // 3xx
+                             registry.meter(name(metricName, "4xx-responses")), // 4xx
+                             registry.meter(name(metricName, "5xx-responses"))  // 5xx
+                     )) : Collections.emptyList();
+             this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+             this.metricRegistry = registry;
+         }
+ 
+         public void mark(int statusCode) {
+             if (DETAILED_METER_LEVELS.contains(level)) {
+                 getResponseCodeMeter(statusCode).mark();
+             }
+ 
+             if (COARSE_METER_LEVELS.contains(level)) {
+                 final int responseStatus = statusCode / 100;
+                 if (responseStatus >= 1 && responseStatus <= 5) {
+                     meters.get(responseStatus - 1).mark();
+                 }
+             }
+         }
+ 
+         private Meter getResponseCodeMeter(int statusCode) {
+             return responseCodeMeters
+                     .computeIfAbsent(statusCode, sc -> metricRegistry
+                             .meter(name(metricName, String.format("%d-responses", sc))));
+         }
+     }
+ 
+     private static class TimerRequestEventListener implements RequestEventListener {
+ 
+         private final ConcurrentMap<EventTypeAndMethod, Timer> timers;
+         private final Clock clock;
+         private final long start;
+         private Timer.Context resourceMethodStartContext;
+         private Timer.Context requestMatchedContext;
+         private Timer.Context responseFiltersStartContext;
+ 
+         public TimerRequestEventListener(final ConcurrentMap<EventTypeAndMethod, Timer> timers, final Clock clock) {
+             this.timers = timers;
+             this.clock = clock;
+             start = clock.getTick();
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             switch (event.getType()) {
+                 case RESOURCE_METHOD_START:
+                     resourceMethodStartContext = context(event);
+                     break;
+                 case REQUEST_MATCHED:
+                     requestMatchedContext = context(event);
+                     break;
+                 case RESP_FILTERS_START:
+                     responseFiltersStartContext = context(event);
+                     break;
+                 case RESOURCE_METHOD_FINISHED:
+                     if (resourceMethodStartContext != null) {
+                         resourceMethodStartContext.close();
+                     }
+                     break;
+                 case REQUEST_FILTERED:
+                     if (requestMatchedContext != null) {
+                         requestMatchedContext.close();
+                     }
+                     break;
+                 case RESP_FILTERS_FINISHED:
+                     if (responseFiltersStartContext != null) {
+                         responseFiltersStartContext.close();
+                     }
+                     break;
+                 case FINISHED:
+                     if (requestMatchedContext != null && responseFiltersStartContext != null) {
+                         final Timer timer = timer(event);
+                         if (timer != null) {
+                             timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);
+                         }
+                     }
+                     break;
+                 default:
+                     break;
+             }
+         }
+ 
+         private Timer timer(RequestEvent event) {
+             final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();
+             if (resourceMethod == null) {
+                 return null;
+             }
+             return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));
+         }
+ 
+         private Timer.Context context(RequestEvent event) {
+             final Timer timer = timer(event);
+             return timer != null ? timer.time() : null;
+         }
+     }
+ 
+     private static class MeterRequestEventListener implements RequestEventListener {
+         private final ConcurrentMap<Method, Meter> meters;
+ 
+         public MeterRequestEventListener(final ConcurrentMap<Method, Meter> meters) {
+             this.meters = meters;
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {
+                 final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());
+                 if (meter != null) {
+                     meter.mark();
+                 }
+             }
+         }
+     }
+ 
+     private static class ExceptionMeterRequestEventListener implements RequestEventListener {
+         private final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters;
+ 
+         public ExceptionMeterRequestEventListener(final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters) {
+             this.exceptionMeters = exceptionMeters;
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {
+                 final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();
+                 final ExceptionMeterMetric metric = (method != null) ?
+                         this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;
+ 
+                 if (metric != null) {
+                     if (metric.cause.isAssignableFrom(event.getException().getClass()) ||
+                             (event.getException().getCause() != null &&
+                                     metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {
+                         metric.meter.mark();
+                     }
+                 }
+             }
+         }
+     }
+ 
+     private static class ResponseMeterRequestEventListener implements RequestEventListener {
+         private final ConcurrentMap<Method, ResponseMeterMetric> responseMeters;
+ 
+         public ResponseMeterRequestEventListener(final ConcurrentMap<Method, ResponseMeterMetric> responseMeters) {
+             this.responseMeters = responseMeters;
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             if (event.getType() == RequestEvent.Type.FINISHED) {
+                 final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();
+                 final ResponseMeterMetric metric = (method != null) ?
+                         this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;
+ 
+                 if (metric != null) {
+                     ContainerResponse containerResponse = event.getContainerResponse();
+                     if (containerResponse == null && event.getException() != null) {
+                         metric.mark(500);
+                     } else if (containerResponse != null) {
+                         metric.mark(containerResponse.getStatus());
+                     }
+                 }
+             }
+         }
+     }
+ 
+     private static class ChainedRequestEventListener implements RequestEventListener {
+         private final RequestEventListener[] listeners;
+ 
+         private ChainedRequestEventListener(final RequestEventListener... listeners) {
+             this.listeners = listeners;
+         }
+ 
+         @Override
+         public void onEvent(final RequestEvent event) {
+             for (RequestEventListener listener : listeners) {
+                 listener.onEvent(event);
+             }
+         }
+     }
+ 
+     @Override
+     public void onEvent(ApplicationEvent event) {
+         if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {
+             registerMetricsForModel(event.getResourceModel());
+         }
+     }
+ 
+     @Override
+     public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
+         return resourceModel;
+     }
+ 
+     @Override
+     public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
+         registerMetricsForModel(subResourceModel);
+         return subResourceModel;
+     }
+ 
+     private void registerMetricsForModel(ResourceModel resourceModel) {
+         for (final Resource resource : resourceModel.getResources()) {
+ 
+             final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);
+             final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);
+             final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);
+             final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);
+ 
+             for (final ResourceMethod method : resource.getAllMethods()) {
+                 registerTimedAnnotations(method, classLevelTimed);
+                 registerMeteredAnnotations(method, classLevelMetered);
+                 registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);
+                 registerResponseMeteredAnnotations(method, classLevelResponseMetered);
+             }
+ 
+             for (final Resource childResource : resource.getChildResources()) {
+ 
+                 final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);
+                 final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);
+                 final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);
+                 final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);
+ 
+                 for (final ResourceMethod method : childResource.getAllMethods()) {
+                     registerTimedAnnotations(method, classLevelTimedChild);
+                     registerMeteredAnnotations(method, classLevelMeteredChild);
+                     registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);
+                     registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);
+                 }
+             }
+         }
+     }
+ 
+     @Override
+     public RequestEventListener onRequest(final RequestEvent event) {
+         final RequestEventListener listener = new ChainedRequestEventListener(
+                 new TimerRequestEventListener(timers, clock),
+                 new MeterRequestEventListener(meters),
+                 new ExceptionMeterRequestEventListener(exceptionMeters),
+                 new ResponseMeterRequestEventListener(responseMeters));
+ 
+         return listener;
+     }
+ 
+     private <T extends Annotation> T getClassLevelAnnotation(final Resource resource, final Class<T> annotationClazz) {
+         T annotation = null;
+ 
+         for (final Class<?> clazz : resource.getHandlerClasses()) {
+             annotation = clazz.getAnnotation(annotationClazz);
+ 
+             if (annotation != null) {
+                 break;
+             }
+         }
+         return annotation;
+     }
+ 
+     private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+         if (classLevelTimed != null) {
+             registerTimers(method, definitionMethod, classLevelTimed);
+             return;
+         }
+ 
+         final Timed annotation = definitionMethod.getAnnotation(Timed.class);
+         if (annotation != null) {
+             registerTimers(method, definitionMethod, annotation);
+         }
+     }
+ 
+     private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
+         timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));
+         if (trackFilters) {
+             timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));
+             timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));
+             timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));
+         }
+     }
+ 
+     private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+ 
+         if (classLevelMetered != null) {
+             meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));
+             return;
+         }
+         final Metered annotation = definitionMethod.getAnnotation(Metered.class);
+ 
+         if (annotation != null) {
+             meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));
+         }
+     }
+ 
+     private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+ 
+         if (classLevelExceptionMetered != null) {
+             exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));
+             return;
+         }
+         final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);
+ 
+         if (annotation != null) {
+             exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));
+         }
+     }
+ 
+     private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+ 
+         if (classLevelResponseMetered != null) {
+             responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));
+             return;
+         }
+         final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);
+ 
+         if (annotation != null) {
+             responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));
+         }
+     }
+ 
+     private Timer timerMetric(final MetricRegistry registry,
+                               final ResourceMethod method,
+                               final Timed timed,
+                               final String... suffixes) {
+         final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);
+         return registry.timer(name, () -> new Timer(reservoirSupplier.get(), clock));
+     }
+ 
+     private Meter meterMetric(final MetricRegistry registry,
+                               final ResourceMethod method,
+                               final Metered metered) {
+         final String name = chooseName(metered.name(), metered.absolute(), method);
+         return registry.meter(name, () -> new Meter(clock));
+     }
+ 
+     protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
+                                        final String... suffixes) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+         final String metricName;
+         if (explicitName != null && !explicitName.isEmpty()) {
+             metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);
+         } else {
+             metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());
+         }
+         return name(metricName, suffixes);
+     }
+ 
+     private static class EventTypeAndMethod {
+ 
+         private final RequestEvent.Type type;
+         private final Method method;
+ 
+         private EventTypeAndMethod(RequestEvent.Type type, Method method) {
+             this.type = type;
+             this.method = method;
+         }
+ 
+         static EventTypeAndMethod requestMethodStart(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);
+         }
+ 
+         static EventTypeAndMethod requestMatched(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);
+         }
+ 
+         static EventTypeAndMethod respFiltersStart(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);
+         }
+ 
+         static EventTypeAndMethod finished(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);
+         }
+ 
+         @Override
+         public boolean equals(Object o) {
+             if (this == o) {
+                 return true;
+             }
+             if (o == null || getClass() != o.getClass()) {
+                 return false;
+             }
+ 
+             EventTypeAndMethod that = (EventTypeAndMethod) o;
+ 
+             if (type != that.type) {
+                 return false;
+             }
+             return method.equals(that.method);
+         }
+ 
+         @Override
+         public int hashCode() {
+             int result = type.hashCode();
+             result = 31 * result + method.hashCode();
+             return result;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/sources/source-2.html new file mode 100644 index 0000000000..da68379389 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-14/sources/source-2.html @@ -0,0 +1,201 @@ + + + + + + + + Coverage Report > MetricsFeature + + + + + + +
+ + +

Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey3)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+
+ + +
+ package com.codahale.metrics.jersey3;
+ 
+ import com.codahale.metrics.Clock;
+ import com.codahale.metrics.ExponentiallyDecayingReservoir;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Reservoir;
+ import com.codahale.metrics.SharedMetricRegistries;
+ import jakarta.ws.rs.core.Feature;
+ import jakarta.ws.rs.core.FeatureContext;
+ 
+ import java.util.function.Supplier;
+ 
+ /**
+  * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
+  * for recording request events.
+  */
+ public class MetricsFeature implements Feature {
+ 
+     private final MetricRegistry registry;
+     private final Clock clock;
+     private final boolean trackFilters;
+     private final Supplier<Reservoir> reservoirSupplier;
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      */
+     public MetricsFeature(MetricRegistry registry) {
+         this(registry, Clock.defaultClock());
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
+      */
+     public MetricsFeature(MetricRegistry registry, Supplier<Reservoir> reservoirSupplier) {
+         this(registry, Clock.defaultClock(), false, reservoirSupplier);
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      */
+     public MetricsFeature(MetricRegistry registry, Clock clock) {
+         this(registry, clock, false);
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters      whether the processing time for request and response filters should be tracked
+      */
+     public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
+         this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters      whether the processing time for request and response filters should be tracked
+      * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
+      */
+     public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier<Reservoir> reservoirSupplier) {
+         this.registry = registry;
+         this.clock = clock;
+         this.trackFilters = trackFilters;
+         this.reservoirSupplier = reservoirSupplier;
+     }
+ 
+     public MetricsFeature(String registryName) {
+         this(SharedMetricRegistries.getOrCreate(registryName));
+     }
+ 
+     /**
+      * A call-back method called when the feature is to be enabled in a given
+      * runtime configuration scope.
+      * <p>
+      * The responsibility of the feature is to properly update the supplied runtime configuration context
+      * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
+      * <p>
+      * Note that under some circumstances the feature may decide not to enable itself, which
+      * is indicated by returning {@code false}. In such case the configuration context does
+      * not add the feature to the collection of enabled features and a subsequent call to
+      * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
+      * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
+      * would return {@code false}.
+      * <p>
+      *
+      * @param context configurable context in which the feature should be enabled.
+      * @return {@code true} if the feature was successfully enabled, {@code false}
+      * otherwise.
+      */
+     @Override
+     public boolean configure(FeatureContext context) {
+         context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));
+         return true;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index.html new file mode 100644 index 0000000000..7d4011a2b8 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-15/index.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.4% + + + (123/170) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + + 81.8% + + + (27/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..2d7817253d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + + 81.8% + + + (27/33) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.4% + + + (123/170) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..a1239f07e9 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.4% + + + (123/170) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + + 81.8% + + + (27/33) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..eb2985602d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.4% + + + (123/170) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + + 81.8% + + + (27/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..3c1945aa9d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + + 81.8% + + + (27/33) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.4% + + + (123/170) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..06f2266fe0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_LINE.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.4% + + + (123/170) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + + 81.8% + + + (27/33) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..e344a00507 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + + 81.8% + + + (27/33) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.4% + + + (123/170) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..ef8596c45b --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.4% + + + (123/170) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + + 81.8% + + + (27/33) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..3f29b2a6d6 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + + 81.8% + + + (27/33) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.4% + + + (123/170) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..df63a23a65 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 0% + + + (0/2) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + + 81.8% + + + (27/33) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.4% + + + (123/170) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-1.html new file mode 100644 index 0000000000..a8dbce6887 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-1.html @@ -0,0 +1,193 @@ + + + + + + + + Coverage Report > InstrumentedConnectionFactory + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedConnectionFactory (com.codahale.metrics.jetty9)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedConnectionFactory + + 83.3% + + + (5/6) + + + + 91.7% + + + (11/12) + +
InstrumentedConnectionFactory$1 + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
Total + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+
+ + +
+ package com.codahale.metrics.jetty9;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Timer;
+ import org.eclipse.jetty.io.Connection;
+ import org.eclipse.jetty.io.EndPoint;
+ import org.eclipse.jetty.server.ConnectionFactory;
+ import org.eclipse.jetty.server.Connector;
+ import org.eclipse.jetty.util.component.ContainerLifeCycle;
+ 
+ import java.util.List;
+ 
+ public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {
+     private final ConnectionFactory connectionFactory;
+     private final Timer timer;
+     private final Counter counter;
+ 
+     public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
+         this(connectionFactory, timer, null);
+     }
+ 
+     public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {
+         this.connectionFactory = connectionFactory;
+         this.timer = timer;
+         this.counter = counter;
+         addBean(connectionFactory);
+     }
+ 
+     @Override
+     public String getProtocol() {
+         return connectionFactory.getProtocol();
+     }
+ 
+     @Override
+     public List<String> getProtocols() {
+         return connectionFactory.getProtocols();
+     }
+ 
+     @Override
+     public Connection newConnection(Connector connector, EndPoint endPoint) {
+         final Connection connection = connectionFactory.newConnection(connector, endPoint);
+         connection.addListener(new Connection.Listener() {
+             private Timer.Context context;
+ 
+             @Override
+             public void onOpened(Connection connection) {
+                 this.context = timer.time();
+                 if (counter != null) {
+                     counter.inc();
+                 }
+             }
+ 
+             @Override
+             public void onClosed(Connection connection) {
+                 context.stop();
+                 if (counter != null) {
+                     counter.dec();
+                 }
+             }
+         });
+         return connection;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-2.html new file mode 100644 index 0000000000..65bc7ec5da --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-2.html @@ -0,0 +1,754 @@ + + + + + + + + Coverage Report > InstrumentedHandler + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHandler (com.codahale.metrics.jetty9)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
InstrumentedHandler + + 81.2% + + + (13/16) + + + + 85.2% + + + (115/135) + +
InstrumentedHandler$1 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$2 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$4 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$5 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$6 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$7 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
InstrumentedHandler$AsyncAttachingListener + + 20% + + + (1/5) + + + + 20% + + + (1/5) + +
InstrumentedHandler$InstrumentedAsyncListener + + 0% + + + (0/5) + + + + 0% + + + (0/2) + + + + 0% + + + (0/11) + +
Total + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.4% + + + (123/170) + +
+ +
+
+ + +
+ package com.codahale.metrics.jetty9;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import org.eclipse.jetty.http.HttpMethod;
+ import org.eclipse.jetty.server.AsyncContextState;
+ import org.eclipse.jetty.server.Handler;
+ import org.eclipse.jetty.server.HttpChannelState;
+ import org.eclipse.jetty.server.Request;
+ import org.eclipse.jetty.server.handler.HandlerWrapper;
+ 
+ import javax.servlet.AsyncEvent;
+ import javax.servlet.AsyncListener;
+ import javax.servlet.ServletException;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ import java.io.IOException;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.EnumSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ 
+ /**
+  * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
+  * instance.
+  */
+ public class InstrumentedHandler extends HandlerWrapper {
+     private static final String NAME_REQUESTS = "requests";
+     private static final String NAME_DISPATCHES = "dispatches";
+     private static final String NAME_ACTIVE_REQUESTS = "active-requests";
+     private static final String NAME_ACTIVE_DISPATCHES = "active-dispatches";
+     private static final String NAME_ACTIVE_SUSPENDED = "active-suspended";
+     private static final String NAME_ASYNC_DISPATCHES = "async-dispatches";
+     private static final String NAME_ASYNC_TIMEOUTS = "async-timeouts";
+     private static final String NAME_1XX_RESPONSES = "1xx-responses";
+     private static final String NAME_2XX_RESPONSES = "2xx-responses";
+     private static final String NAME_3XX_RESPONSES = "3xx-responses";
+     private static final String NAME_4XX_RESPONSES = "4xx-responses";
+     private static final String NAME_5XX_RESPONSES = "5xx-responses";
+     private static final String NAME_GET_REQUESTS = "get-requests";
+     private static final String NAME_POST_REQUESTS = "post-requests";
+     private static final String NAME_HEAD_REQUESTS = "head-requests";
+     private static final String NAME_PUT_REQUESTS = "put-requests";
+     private static final String NAME_DELETE_REQUESTS = "delete-requests";
+     private static final String NAME_OPTIONS_REQUESTS = "options-requests";
+     private static final String NAME_TRACE_REQUESTS = "trace-requests";
+     private static final String NAME_CONNECT_REQUESTS = "connect-requests";
+     private static final String NAME_MOVE_REQUESTS = "move-requests";
+     private static final String NAME_OTHER_REQUESTS = "other-requests";
+     private static final String NAME_PERCENT_4XX_1M = "percent-4xx-1m";
+     private static final String NAME_PERCENT_4XX_5M = "percent-4xx-5m";
+     private static final String NAME_PERCENT_4XX_15M = "percent-4xx-15m";
+     private static final String NAME_PERCENT_5XX_1M = "percent-5xx-1m";
+     private static final String NAME_PERCENT_5XX_5M = "percent-5xx-5m";
+     private static final String NAME_PERCENT_5XX_15M = "percent-5xx-15m";
+     private static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+     private static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+ 
+     private final MetricRegistry metricRegistry;
+ 
+     private String name;
+     private final String prefix;
+ 
+     // the requests handled by this handler, excluding active
+     private Timer requests;
+ 
+     // the number of dispatches seen by this handler, excluding active
+     private Timer dispatches;
+ 
+     // the number of active requests
+     private Counter activeRequests;
+ 
+     // the number of active dispatches
+     private Counter activeDispatches;
+ 
+     // the number of requests currently suspended.
+     private Counter activeSuspended;
+ 
+     // the number of requests that have been asynchronously dispatched
+     private Meter asyncDispatches;
+ 
+     // the number of requests that expired while suspended
+     private Meter asyncTimeouts;
+ 
+     private final ResponseMeteredLevel responseMeteredLevel;
+     private List<Meter> responses;
+     private Map<Integer, Meter> responseCodeMeters;
+ 
+     private Timer getRequests;
+     private Timer postRequests;
+     private Timer headRequests;
+     private Timer putRequests;
+     private Timer deleteRequests;
+     private Timer optionsRequests;
+     private Timer traceRequests;
+     private Timer connectRequests;
+     private Timer moveRequests;
+     private Timer otherRequests;
+ 
+     private AsyncListener listener;
+ 
+     private HttpChannelState.State DISPATCHED_HACK;
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      */
+     public InstrumentedHandler(MetricRegistry registry) {
+         this(registry, null);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      */
+     public InstrumentedHandler(MetricRegistry registry, String prefix) {
+         this(registry, prefix, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
+      */
+     public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {
+         this.metricRegistry = registry;
+         this.prefix = prefix;
+         this.responseMeteredLevel = responseMeteredLevel;
+ 
+         try {
+             DISPATCHED_HACK = HttpChannelState.State.valueOf("HANDLING");
+         } catch (IllegalArgumentException e) {
+             DISPATCHED_HACK = HttpChannelState.State.valueOf("DISPATCHED");
+         }
+     }
+ 
+     public String getName() {
+         return name;
+     }
+ 
+     public void setName(String name) {
+         this.name = name;
+     }
+ 
+     @Override
+     protected void doStart() throws Exception {
+         super.doStart();
+ 
+         final String prefix = getMetricPrefix();
+ 
+         this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));
+         this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));
+ 
+         this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));
+         this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));
+         this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));
+ 
+         this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));
+         this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));
+ 
+         this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+ 
+         this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));
+         this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));
+         this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));
+         this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));
+         this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));
+         this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));
+         this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));
+         this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));
+         this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));
+         this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             this.responses = Collections.unmodifiableList(Arrays.asList(
+                     metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx
+                     metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx
+                     metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx
+                     metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx
+                     metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx
+             ));
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getOneMinuteRate(),
+                             requests.getOneMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getFiveMinuteRate(),
+                             requests.getFiveMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getFifteenMinuteRate(),
+                             requests.getFifteenMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getOneMinuteRate(),
+                             requests.getOneMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getFiveMinuteRate(),
+                             requests.getFiveMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {
+                 @Override
+                 public Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getFifteenMinuteRate(),
+                             requests.getFifteenMinuteRate());
+                 }
+             });
+         } else {
+             this.responses = Collections.emptyList();
+         }
+ 
+ 
+         this.listener = new AsyncAttachingListener();
+     }
+ 
+     @Override
+     protected void doStop() throws Exception {
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.remove(name(prefix, NAME_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));
+         metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));
+         metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));
+ 
+         if (responseCodeMeters != null) {
+             responseCodeMeters.keySet().stream()
+                     .map(sc -> name(getMetricPrefix(), String.format("%d-responses", sc)))
+                     .forEach(metricRegistry::remove);
+         }
+         super.doStop();
+     }
+ 
+     @Override
+     public void handle(String path,
+                        Request request,
+                        HttpServletRequest httpRequest,
+                        HttpServletResponse httpResponse) throws IOException, ServletException {
+ 
+         activeDispatches.inc();
+ 
+         final long start;
+         final HttpChannelState state = request.getHttpChannelState();
+         if (state.isInitial()) {
+             // new request
+             activeRequests.inc();
+             start = request.getTimeStamp();
+             state.addListener(listener);
+         } else {
+             // resumed request
+             start = System.currentTimeMillis();
+             activeSuspended.dec();
+             if (state.getState() == DISPATCHED_HACK) {
+                 asyncDispatches.mark();
+             }
+         }
+ 
+         try {
+             super.handle(path, request, httpRequest, httpResponse);
+         } finally {
+             final long now = System.currentTimeMillis();
+             final long dispatched = now - start;
+ 
+             activeDispatches.dec();
+             dispatches.update(dispatched, TimeUnit.MILLISECONDS);
+ 
+             if (state.isSuspended()) {
+                 activeSuspended.inc();
+             } else if (state.isInitial()) {
+                 updateResponses(httpRequest, httpResponse, start, request.isHandled());
+             }
+             // else onCompletion will handle it.
+         }
+     }
+ 
+     private Timer requestTimer(String method) {
+         final HttpMethod m = HttpMethod.fromString(method);
+         if (m == null) {
+             return otherRequests;
+         } else {
+             switch (m) {
+                 case GET:
+                     return getRequests;
+                 case POST:
+                     return postRequests;
+                 case PUT:
+                     return putRequests;
+                 case HEAD:
+                     return headRequests;
+                 case DELETE:
+                     return deleteRequests;
+                 case OPTIONS:
+                     return optionsRequests;
+                 case TRACE:
+                     return traceRequests;
+                 case CONNECT:
+                     return connectRequests;
+                 case MOVE:
+                     return moveRequests;
+                 default:
+                     return otherRequests;
+             }
+         }
+     }
+ 
+     private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
+         if (isHandled) {
+             mark(response.getStatus());
+         } else {
+             mark(404);; // will end up with a 404 response sent by HttpChannel.handle
+         }
+         activeRequests.dec();
+         final long elapsedTime = System.currentTimeMillis() - start;
+         requests.update(elapsedTime, TimeUnit.MILLISECONDS);
+         requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);
+     }
+ 
+     private void mark(int statusCode) {
+         if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {
+             getResponseCodeMeter(statusCode).mark();
+         }
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             final int responseStatus = statusCode / 100;
+             if (responseStatus >= 1 && responseStatus <= 5) {
+                 responses.get(responseStatus - 1).mark();
+             }
+         }
+     }
+ 
+     private Meter getResponseCodeMeter(int statusCode) {
+         return responseCodeMeters
+                 .computeIfAbsent(statusCode, sc -> metricRegistry
+                         .meter(name(getMetricPrefix(), String.format("%d-responses", sc))));
+     }
+ 
+     private String getMetricPrefix() {
+         return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);
+     }
+ 
+     private class AsyncAttachingListener implements AsyncListener {
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+             event.getAsyncContext().addListener(new InstrumentedAsyncListener());
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {}
+     };
+ 
+     private class InstrumentedAsyncListener implements AsyncListener {
+         private final long startTime;
+ 
+         InstrumentedAsyncListener() {
+             this.startTime = System.currentTimeMillis();
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             asyncTimeouts.mark();
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             final AsyncContextState state = (AsyncContextState) event.getAsyncContext();
+             final HttpServletRequest request = (HttpServletRequest) state.getRequest();
+             final HttpServletResponse response = (HttpServletResponse) state.getResponse();
+             updateResponses(request, response, startTime, true);
+             if (!state.getHttpChannelState().isSuspended()) {
+                 activeSuspended.dec();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-3.html new file mode 100644 index 0000000000..7230573278 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-3.html @@ -0,0 +1,708 @@ + + + + + + + + Coverage Report > InstrumentedHttpChannelListener + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpChannelListener (com.codahale.metrics.jetty9)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedHttpChannelListener + + 74.1% + + + (20/27) + + + + 82.6% + + + (90/109) + +
InstrumentedHttpChannelListener$1 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$2 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$4 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$5 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$6 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$7 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
InstrumentedHttpChannelListener$AsyncAttachingListener + + 40% + + + (2/5) + + + + 40% + + + (2/5) + +
InstrumentedHttpChannelListener$InstrumentedAsyncListener + + 40% + + + (2/5) + + + + 72.7% + + + (8/11) + +
Total + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
+ +
+
+ + +
+ package com.codahale.metrics.jetty9;
+ 
+ import java.io.IOException;
+ import java.nio.ByteBuffer;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.EnumSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.TimeUnit;
+ 
+ import javax.servlet.AsyncEvent;
+ import javax.servlet.AsyncListener;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import org.eclipse.jetty.http.HttpMethod;
+ import org.eclipse.jetty.server.AsyncContextState;
+ import org.eclipse.jetty.server.HttpChannel.Listener;
+ import org.eclipse.jetty.server.HttpChannelState;
+ import org.eclipse.jetty.server.Request;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ 
+ /**
+  * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
+  * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
+  * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
+  *
+  * @since TBD
+  */
+ public class InstrumentedHttpChannelListener
+     implements Listener
+ {
+     private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + ".start";
+     private static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+     private static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+ 
+     private final MetricRegistry metricRegistry;
+ 
+     // the requests handled by this handler, excluding active
+     private final Timer requests;
+ 
+     // the number of dispatches seen by this handler, excluding active
+     private final Timer dispatches;
+ 
+     // the number of active requests
+     private final Counter activeRequests;
+ 
+     // the number of active dispatches
+     private final Counter activeDispatches;
+ 
+     // the number of requests currently suspended.
+     private final Counter activeSuspended;
+ 
+     // the number of requests that have been asynchronously dispatched
+     private final Meter asyncDispatches;
+ 
+     // the number of requests that expired while suspended
+     private final Meter asyncTimeouts;
+ 
+     private final ResponseMeteredLevel responseMeteredLevel;
+     private final List<Meter> responses;
+     private final Map<Integer, Meter> responseCodeMeters;
+     private final String prefix;
+     private final Timer getRequests;
+     private final Timer postRequests;
+     private final Timer headRequests;
+     private final Timer putRequests;
+     private final Timer deleteRequests;
+     private final Timer optionsRequests;
+     private final Timer traceRequests;
+     private final Timer connectRequests;
+     private final Timer moveRequests;
+     private final Timer otherRequests;
+ 
+     private final AsyncListener listener;
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      */
+     public InstrumentedHttpChannelListener(MetricRegistry registry) {
+         this(registry, null, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param pref     the prefix to use for the metrics names
+      */
+     public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
+         this(registry, pref, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param pref     the prefix to use for the metrics names
+      * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
+      */
+     public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {
+         this.metricRegistry = registry;
+ 
+         this.prefix = (pref == null) ? getClass().getName() : pref;
+ 
+         this.requests = metricRegistry.timer(name(prefix, "requests"));
+         this.dispatches = metricRegistry.timer(name(prefix, "dispatches"));
+ 
+         this.activeRequests = metricRegistry.counter(name(prefix, "active-requests"));
+         this.activeDispatches = metricRegistry.counter(name(prefix, "active-dispatches"));
+         this.activeSuspended = metricRegistry.counter(name(prefix, "active-suspended"));
+ 
+         this.asyncDispatches = metricRegistry.meter(name(prefix, "async-dispatches"));
+         this.asyncTimeouts = metricRegistry.meter(name(prefix, "async-timeouts"));
+ 
+         this.responseMeteredLevel = responseMeteredLevel;
+         this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+         this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?
+                 Collections.unmodifiableList(Arrays.asList(
+                         registry.meter(name(prefix, "1xx-responses")), // 1xx
+                         registry.meter(name(prefix, "2xx-responses")), // 2xx
+                         registry.meter(name(prefix, "3xx-responses")), // 3xx
+                         registry.meter(name(prefix, "4xx-responses")), // 4xx
+                         registry.meter(name(prefix, "5xx-responses"))  // 5xx
+                 )) : Collections.emptyList();
+ 
+         this.getRequests = metricRegistry.timer(name(prefix, "get-requests"));
+         this.postRequests = metricRegistry.timer(name(prefix, "post-requests"));
+         this.headRequests = metricRegistry.timer(name(prefix, "head-requests"));
+         this.putRequests = metricRegistry.timer(name(prefix, "put-requests"));
+         this.deleteRequests = metricRegistry.timer(name(prefix, "delete-requests"));
+         this.optionsRequests = metricRegistry.timer(name(prefix, "options-requests"));
+         this.traceRequests = metricRegistry.timer(name(prefix, "trace-requests"));
+         this.connectRequests = metricRegistry.timer(name(prefix, "connect-requests"));
+         this.moveRequests = metricRegistry.timer(name(prefix, "move-requests"));
+         this.otherRequests = metricRegistry.timer(name(prefix, "other-requests"));
+ 
+         metricRegistry.register(name(prefix, "percent-4xx-1m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(3).getOneMinuteRate(),
+                     requests.getOneMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-4xx-5m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(3).getFiveMinuteRate(),
+                     requests.getFiveMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-4xx-15m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(3).getFifteenMinuteRate(),
+                     requests.getFifteenMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-5xx-1m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(4).getOneMinuteRate(),
+                     requests.getOneMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-5xx-5m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(4).getFiveMinuteRate(),
+                     requests.getFiveMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-5xx-15m"), new RatioGauge() {
+             @Override
+             public Ratio getRatio() {
+                 return Ratio.of(responses.get(4).getFifteenMinuteRate(),
+                     requests.getFifteenMinuteRate());
+             }
+         });
+ 
+         this.listener = new AsyncAttachingListener();
+     }
+ 
+     @Override
+     public void onRequestBegin(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onBeforeDispatch(final Request request) {
+         before(request);
+     }
+ 
+     @Override
+     public void onDispatchFailure(final Request request, final Throwable failure) {
+ 
+     }
+ 
+     @Override
+     public void onAfterDispatch(final Request request) {
+         after(request);
+     }
+ 
+     @Override
+     public void onRequestContent(final Request request, final ByteBuffer content) {
+ 
+     }
+ 
+     @Override
+     public void onRequestContentEnd(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onRequestTrailers(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onRequestEnd(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onRequestFailure(final Request request, final Throwable failure) {
+ 
+     }
+ 
+     @Override
+     public void onResponseBegin(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onResponseCommit(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onResponseContent(final Request request, final ByteBuffer content) {
+ 
+     }
+ 
+     @Override
+     public void onResponseEnd(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onResponseFailure(final Request request, final Throwable failure) {
+ 
+     }
+ 
+     @Override
+     public void onComplete(final Request request) {
+ 
+     }
+ 
+     private void before(final Request request) {
+         activeDispatches.inc();
+ 
+         final long start;
+         final HttpChannelState state = request.getHttpChannelState();
+         if (state.isInitial()) {
+             // new request
+             activeRequests.inc();
+             start = request.getTimeStamp();
+             state.addListener(listener);
+         } else {
+             // resumed request
+             start = System.currentTimeMillis();
+             activeSuspended.dec();
+             if (state.isAsyncStarted()) {
+                 asyncDispatches.mark();
+             }
+         }
+         request.setAttribute(START_ATTR, start);
+     }
+ 
+     private void after(final Request request) {
+         final long start = (long) request.getAttribute(START_ATTR);
+         final long now = System.currentTimeMillis();
+         final long dispatched = now - start;
+ 
+         activeDispatches.dec();
+         dispatches.update(dispatched, TimeUnit.MILLISECONDS);
+ 
+         final HttpChannelState state = request.getHttpChannelState();
+         if (state.isSuspended()) {
+             activeSuspended.inc();
+         } else if (state.isInitial()) {
+             updateResponses(request, request.getResponse(), start, request.isHandled());
+         }
+         // else onCompletion will handle it.
+     }
+ 
+     private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
+         if (isHandled) {
+             mark(response.getStatus());
+         } else {
+             mark(404); // will end up with a 404 response sent by HttpChannel.handle
+         }
+         activeRequests.dec();
+         final long elapsedTime = System.currentTimeMillis() - start;
+         requests.update(elapsedTime, TimeUnit.MILLISECONDS);
+         requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);
+     }
+ 
+     private void mark(int statusCode) {
+         if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {
+             getResponseCodeMeter(statusCode).mark();
+         }
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             final int responseStatus = statusCode / 100;
+             if (responseStatus >= 1 && responseStatus <= 5) {
+                 responses.get(responseStatus - 1).mark();
+             }
+         }
+     }
+ 
+     private Meter getResponseCodeMeter(int statusCode) {
+         return responseCodeMeters
+                 .computeIfAbsent(statusCode, sc -> metricRegistry
+                         .meter(name(prefix, String.format("%d-responses", sc))));
+     }
+ 
+     private Timer requestTimer(String method) {
+         final HttpMethod m = HttpMethod.fromString(method);
+         if (m == null) {
+             return otherRequests;
+         } else {
+             switch (m) {
+                 case GET:
+                     return getRequests;
+                 case POST:
+                     return postRequests;
+                 case PUT:
+                     return putRequests;
+                 case HEAD:
+                     return headRequests;
+                 case DELETE:
+                     return deleteRequests;
+                 case OPTIONS:
+                     return optionsRequests;
+                 case TRACE:
+                     return traceRequests;
+                 case CONNECT:
+                     return connectRequests;
+                 case MOVE:
+                     return moveRequests;
+                 default:
+                     return otherRequests;
+             }
+         }
+     }
+ 
+     private class AsyncAttachingListener implements AsyncListener {
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+             event.getAsyncContext().addListener(new InstrumentedAsyncListener());
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {}
+     };
+ 
+     private class InstrumentedAsyncListener implements AsyncListener {
+         private final long startTime;
+ 
+         InstrumentedAsyncListener() {
+             this.startTime = System.currentTimeMillis();
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             asyncTimeouts.mark();
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             final AsyncContextState state = (AsyncContextState) event.getAsyncContext();
+             final HttpServletRequest request = (HttpServletRequest) state.getRequest();
+             final HttpServletResponse response = (HttpServletResponse) state.getResponse();
+             updateResponses(request, response, startTime, true);
+             if (!state.getHttpChannelState().isSuspended()) {
+                 activeSuspended.dec();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-4.html new file mode 100644 index 0000000000..b3180de387 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-4.html @@ -0,0 +1,286 @@ + + + + + + + + Coverage Report > InstrumentedQueuedThreadPool + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedQueuedThreadPool (com.codahale.metrics.jetty9)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 83.3% + + + (10/12) + + + + 92.3% + + + (24/26) + +
InstrumentedQueuedThreadPool$1 + + 50% + + + (1/2) + + + + 50% + + + (1/2) + +
InstrumentedQueuedThreadPool$2 + + 50% + + + (1/2) + + + + 50% + + + (1/2) + +
InstrumentedQueuedThreadPool$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
Total + + 72.2% + + + (13/18) + + + + 81.8% + + + (27/33) + +
+ +
+
+ + +
+ package com.codahale.metrics.jetty9;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import org.eclipse.jetty.util.annotation.Name;
+ import org.eclipse.jetty.util.thread.QueuedThreadPool;
+ 
+ import java.util.concurrent.BlockingQueue;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ public class InstrumentedQueuedThreadPool extends QueuedThreadPool {
+     private static final String NAME_UTILIZATION = "utilization";
+     private static final String NAME_UTILIZATION_MAX = "utilization-max";
+     private static final String NAME_SIZE = "size";
+     private static final String NAME_JOBS = "jobs";
+     private static final String NAME_JOBS_QUEUE_UTILIZATION = "jobs-queue-utilization";
+ 
+     private final MetricRegistry metricRegistry;
+     private String prefix;
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry) {
+         this(registry, 200);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads) {
+         this(registry, maxThreads, 8);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads) {
+         this(registry, maxThreads, minThreads, 60000);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout) {
+         this(registry, maxThreads, minThreads, idleTimeout, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue) {
+         this(registry, maxThreads, minThreads, idleTimeout, queue, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("prefix") String prefix) {
+         super(maxThreads, minThreads, idleTimeout, queue);
+         this.metricRegistry = registry;
+         this.prefix = prefix;
+     }
+ 
+     public String getPrefix() {
+         return prefix;
+     }
+ 
+     public void setPrefix(String prefix) {
+         this.prefix = prefix;
+     }
+ 
+     @Override
+     protected void doStart() throws Exception {
+         super.doStart();
+ 
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(getThreads() - getIdleThreads(), getThreads());
+             }
+         });
+         metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());
+             }
+         });
+         metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);
+         // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
+         // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
+         metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -> getQueue().size());
+         metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 BlockingQueue<Runnable> queue = getQueue();
+                 return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());
+             }
+         });
+     }
+ 
+     @Override
+     protected void doStop() throws Exception {
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.remove(name(prefix, NAME_UTILIZATION));
+         metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));
+         metricRegistry.remove(name(prefix, NAME_SIZE));
+         metricRegistry.remove(name(prefix, NAME_JOBS));
+         metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));
+ 
+         super.doStop();
+     }
+ 
+     private String getMetricPrefix() {
+         return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index.html new file mode 100644 index 0000000000..1ed6428775 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-16/index.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..92648a2873 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..9d12d4b07a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..6be6c439fb --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..a5c09b8b39 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..0ea54e0274 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_LINE.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..3221f4e73d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..9ea14a8f5e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..a76822fb1b --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..e7a8083598 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-1.html new file mode 100644 index 0000000000..5eefdddce0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-1.html @@ -0,0 +1,173 @@ + + + + + + + + Coverage Report > DefaultObjectNameFactory + + + + + + +
+ + +

Coverage Summary for Class: DefaultObjectNameFactory (com.codahale.metrics.jmx)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
+ +
+
+ + +
+ package com.codahale.metrics.jmx;
+ 
+ import java.util.Hashtable;
+ 
+ import javax.management.MalformedObjectNameException;
+ import javax.management.ObjectName;
+ 
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ public class DefaultObjectNameFactory implements ObjectNameFactory {
+ 
+     private static final char[] QUOTABLE_CHARS = new char[] {',', '=', ':', '"'};
+     private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);
+ 
+     @Override
+     public ObjectName createName(String type, String domain, String name) {
+         try {
+             ObjectName objectName;
+             Hashtable<String, String> properties = new Hashtable<>();
+ 
+             properties.put("name", name);
+             properties.put("type", type);
+             objectName = new ObjectName(domain, properties);
+ 
+             /*
+              * The only way we can find out if we need to quote the properties is by
+              * checking an ObjectName that we've constructed.
+              */
+             if (objectName.isDomainPattern()) {
+                 domain = ObjectName.quote(domain);
+             }
+             if (objectName.isPropertyValuePattern("name") || shouldQuote(objectName.getKeyProperty("name"))) {
+                 properties.put("name", ObjectName.quote(name));
+             }
+             if (objectName.isPropertyValuePattern("type") || shouldQuote(objectName.getKeyProperty("type"))) {
+                 properties.put("type", ObjectName.quote(type));
+             }
+             objectName = new ObjectName(domain, properties);
+ 
+             return objectName;
+         } catch (MalformedObjectNameException e) {
+             try {
+                 return new ObjectName(domain, "name", ObjectName.quote(name));
+             } catch (MalformedObjectNameException e1) {
+                 LOGGER.warn("Unable to register {} {}", type, name, e1);
+                 throw new RuntimeException(e1);
+             }
+         }
+     }
+ 
+     /**
+      * Determines whether the value requires quoting.
+      * According to the {@link ObjectName} documentation, values can be quoted or unquoted. Unquoted
+      * values may not contain any of the characters comma, equals, colon, or quote.
+      *
+      * @param value a value to test
+      * @return true when it requires quoting, false otherwise
+      */
+     private boolean shouldQuote(final String value) {
+         for (char quotableChar : QUOTABLE_CHARS) {
+             if (value.indexOf(quotableChar) != -1) {
+                 return true;
+             }
+         }
+         return false;
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-2.html new file mode 100644 index 0000000000..79be6fcd6f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-2.html @@ -0,0 +1,1061 @@ + + + + + + + + Coverage Report > JmxReporter + + + + + + +
+ + +

Coverage Summary for Class: JmxReporter (com.codahale.metrics.jmx)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
JmxReporter + + 87.5% + + + (7/8) + + + + 90.9% + + + (10/11) + +
JmxReporter$1
JmxReporter$AbstractBean + + 50% + + + (1/2) + + + + 66.7% + + + (2/3) + +
JmxReporter$Builder + + 81.8% + + + (9/11) + + + + 84.4% + + + (27/32) + +
JmxReporter$JmxCounter + + 100% + + + (3/3) + + + + 100% + + + (4/4) + +
JmxReporter$JmxCounterMBean
JmxReporter$JmxGauge + + 100% + + + (4/4) + + + + 100% + + + (6/6) + +
JmxReporter$JmxGaugeMBean
JmxReporter$JmxHistogram + + 87.5% + + + (14/16) + + + + 88.9% + + + (16/18) + +
JmxReporter$JmxHistogramMBean
JmxReporter$JmxListener + + 68.8% + + + (11/16) + + + + 49.5% + + + (50/101) + +
JmxReporter$JmxMeter + + 100% + + + (9/9) + + + + 100% + + + (13/13) + +
JmxReporter$JmxMeterMBean
JmxReporter$JmxTimer + + 92.9% + + + (13/14) + + + + 94.1% + + + (16/17) + +
JmxReporter$JmxTimerMBean
JmxReporter$MetricMBean
JmxReporter$MetricTimeUnits + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
Total + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
+ +
+
+ + +
+ package com.codahale.metrics.jmx;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Gauge;
+ import com.codahale.metrics.Histogram;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.Metered;
+ import com.codahale.metrics.MetricFilter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.MetricRegistryListener;
+ import com.codahale.metrics.Reporter;
+ import com.codahale.metrics.Timer;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import javax.management.InstanceAlreadyExistsException;
+ import javax.management.InstanceNotFoundException;
+ import javax.management.JMException;
+ import javax.management.MBeanRegistrationException;
+ import javax.management.MBeanServer;
+ import javax.management.ObjectInstance;
+ import javax.management.ObjectName;
+ import java.io.Closeable;
+ import java.lang.management.ManagementFactory;
+ import java.util.Collections;
+ import java.util.Locale;
+ import java.util.Map;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * A reporter which listens for new metrics and exposes them as namespaced MBeans.
+  */
+ public class JmxReporter implements Reporter, Closeable {
+     /**
+      * Returns a new {@link Builder} for {@link JmxReporter}.
+      *
+      * @param registry the registry to report
+      * @return a {@link Builder} instance for a {@link JmxReporter}
+      */
+     public static Builder forRegistry(MetricRegistry registry) {
+         return new Builder(registry);
+     }
+ 
+     /**
+      * A builder for {@link JmxReporter} instances. Defaults to using the default MBean server and
+      * not filtering metrics.
+      */
+     public static class Builder {
+         private final MetricRegistry registry;
+         private MBeanServer mBeanServer;
+         private TimeUnit rateUnit;
+         private TimeUnit durationUnit;
+         private ObjectNameFactory objectNameFactory;
+         private MetricFilter filter = MetricFilter.ALL;
+         private String domain;
+         private Map<String, TimeUnit> specificDurationUnits;
+         private Map<String, TimeUnit> specificRateUnits;
+ 
+         private Builder(MetricRegistry registry) {
+             this.registry = registry;
+             this.rateUnit = TimeUnit.SECONDS;
+             this.durationUnit = TimeUnit.MILLISECONDS;
+             this.domain = "metrics";
+             this.objectNameFactory = new DefaultObjectNameFactory();
+             this.specificDurationUnits = Collections.emptyMap();
+             this.specificRateUnits = Collections.emptyMap();
+         }
+ 
+         /**
+          * Register MBeans with the given {@link MBeanServer}.
+          *
+          * @param mBeanServer an {@link MBeanServer}
+          * @return {@code this}
+          */
+         public Builder registerWith(MBeanServer mBeanServer) {
+             this.mBeanServer = mBeanServer;
+             return this;
+         }
+ 
+         /**
+          * Convert rates to the given time unit.
+          *
+          * @param rateUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertRatesTo(TimeUnit rateUnit) {
+             this.rateUnit = rateUnit;
+             return this;
+         }
+ 
+         public Builder createsObjectNamesWith(ObjectNameFactory onFactory) {
+             if (onFactory == null) {
+                 throw new IllegalArgumentException("null objectNameFactory");
+             }
+             this.objectNameFactory = onFactory;
+             return this;
+         }
+ 
+         /**
+          * Convert durations to the given time unit.
+          *
+          * @param durationUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertDurationsTo(TimeUnit durationUnit) {
+             this.durationUnit = durationUnit;
+             return this;
+         }
+ 
+         /**
+          * Only report metrics which match the given filter.
+          *
+          * @param filter a {@link MetricFilter}
+          * @return {@code this}
+          */
+         public Builder filter(MetricFilter filter) {
+             this.filter = filter;
+             return this;
+         }
+ 
+         public Builder inDomain(String domain) {
+             this.domain = domain;
+             return this;
+         }
+ 
+         /**
+          * Use specific {@link TimeUnit}s for the duration of the metrics with these names.
+          *
+          * @param specificDurationUnits a map of metric names and specific {@link TimeUnit}s
+          * @return {@code this}
+          */
+         public Builder specificDurationUnits(Map<String, TimeUnit> specificDurationUnits) {
+             this.specificDurationUnits = Collections.unmodifiableMap(specificDurationUnits);
+             return this;
+         }
+ 
+ 
+         /**
+          * Use specific {@link TimeUnit}s for the rate of the metrics with these names.
+          *
+          * @param specificRateUnits a map of metric names and specific {@link TimeUnit}s
+          * @return {@code this}
+          */
+         public Builder specificRateUnits(Map<String, TimeUnit> specificRateUnits) {
+             this.specificRateUnits = Collections.unmodifiableMap(specificRateUnits);
+             return this;
+         }
+ 
+         /**
+          * Builds a {@link JmxReporter} with the given properties.
+          *
+          * @return a {@link JmxReporter}
+          */
+         public JmxReporter build() {
+             final MetricTimeUnits timeUnits = new MetricTimeUnits(rateUnit, durationUnit, specificRateUnits, specificDurationUnits);
+             if (mBeanServer == null) {
+                 mBeanServer = ManagementFactory.getPlatformMBeanServer();
+             }
+             return new JmxReporter(mBeanServer, domain, registry, filter, timeUnits, objectNameFactory);
+         }
+     }
+ 
+     private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);
+ 
+     @SuppressWarnings("UnusedDeclaration")
+     public interface MetricMBean {
+         ObjectName objectName();
+     }
+ 
+     private abstract static class AbstractBean implements MetricMBean {
+         private final ObjectName objectName;
+ 
+         AbstractBean(ObjectName objectName) {
+             this.objectName = objectName;
+         }
+ 
+         @Override
+         public ObjectName objectName() {
+             return objectName;
+         }
+     }
+ 
+     @SuppressWarnings("UnusedDeclaration")
+     public interface JmxGaugeMBean extends MetricMBean {
+         Object getValue();
+         Number getNumber();
+     }
+ 
+     private static class JmxGauge extends AbstractBean implements JmxGaugeMBean {
+         private final Gauge<?> metric;
+ 
+         private JmxGauge(Gauge<?> metric, ObjectName objectName) {
+             super(objectName);
+             this.metric = metric;
+         }
+ 
+         @Override
+         public Object getValue() {
+             return metric.getValue();
+         }
+ 
+         @Override
+         public Number getNumber() {
+             Object value = metric.getValue();
+             return value instanceof Number ? (Number) value : 0;
+         }
+     }
+ 
+     @SuppressWarnings("UnusedDeclaration")
+     public interface JmxCounterMBean extends MetricMBean {
+         long getCount();
+     }
+ 
+     private static class JmxCounter extends AbstractBean implements JmxCounterMBean {
+         private final Counter metric;
+ 
+         private JmxCounter(Counter metric, ObjectName objectName) {
+             super(objectName);
+             this.metric = metric;
+         }
+ 
+         @Override
+         public long getCount() {
+             return metric.getCount();
+         }
+     }
+ 
+     @SuppressWarnings("UnusedDeclaration")
+     public interface JmxHistogramMBean extends MetricMBean {
+         long getCount();
+ 
+         long getMin();
+ 
+         long getMax();
+ 
+         double getMean();
+ 
+         double getStdDev();
+ 
+         double get50thPercentile();
+ 
+         double get75thPercentile();
+ 
+         double get95thPercentile();
+ 
+         double get98thPercentile();
+ 
+         double get99thPercentile();
+ 
+         double get999thPercentile();
+ 
+         long[] values();
+ 
+         long getSnapshotSize();
+     }
+ 
+     private static class JmxHistogram implements JmxHistogramMBean {
+         private final ObjectName objectName;
+         private final Histogram metric;
+ 
+         private JmxHistogram(Histogram metric, ObjectName objectName) {
+             this.metric = metric;
+             this.objectName = objectName;
+         }
+ 
+         @Override
+         public ObjectName objectName() {
+             return objectName;
+         }
+ 
+         @Override
+         public double get50thPercentile() {
+             return metric.getSnapshot().getMedian();
+         }
+ 
+         @Override
+         public long getCount() {
+             return metric.getCount();
+         }
+ 
+         @Override
+         public long getMin() {
+             return metric.getSnapshot().getMin();
+         }
+ 
+         @Override
+         public long getMax() {
+             return metric.getSnapshot().getMax();
+         }
+ 
+         @Override
+         public double getMean() {
+             return metric.getSnapshot().getMean();
+         }
+ 
+         @Override
+         public double getStdDev() {
+             return metric.getSnapshot().getStdDev();
+         }
+ 
+         @Override
+         public double get75thPercentile() {
+             return metric.getSnapshot().get75thPercentile();
+         }
+ 
+         @Override
+         public double get95thPercentile() {
+             return metric.getSnapshot().get95thPercentile();
+         }
+ 
+         @Override
+         public double get98thPercentile() {
+             return metric.getSnapshot().get98thPercentile();
+         }
+ 
+         @Override
+         public double get99thPercentile() {
+             return metric.getSnapshot().get99thPercentile();
+         }
+ 
+         @Override
+         public double get999thPercentile() {
+             return metric.getSnapshot().get999thPercentile();
+         }
+ 
+         @Override
+         public long[] values() {
+             return metric.getSnapshot().getValues();
+         }
+ 
+         @Override
+         public long getSnapshotSize() {
+             return metric.getSnapshot().size();
+         }
+     }
+ 
+     @SuppressWarnings("UnusedDeclaration")
+     public interface JmxMeterMBean extends MetricMBean {
+         long getCount();
+ 
+         double getMeanRate();
+ 
+         double getOneMinuteRate();
+ 
+         double getFiveMinuteRate();
+ 
+         double getFifteenMinuteRate();
+ 
+         String getRateUnit();
+     }
+ 
+     private static class JmxMeter extends AbstractBean implements JmxMeterMBean {
+         private final Metered metric;
+         private final double rateFactor;
+         private final String rateUnit;
+ 
+         private JmxMeter(Metered metric, ObjectName objectName, TimeUnit rateUnit) {
+             super(objectName);
+             this.metric = metric;
+             this.rateFactor = rateUnit.toSeconds(1);
+             this.rateUnit = ("events/" + calculateRateUnit(rateUnit)).intern();
+         }
+ 
+         @Override
+         public long getCount() {
+             return metric.getCount();
+         }
+ 
+         @Override
+         public double getMeanRate() {
+             return metric.getMeanRate() * rateFactor;
+         }
+ 
+         @Override
+         public double getOneMinuteRate() {
+             return metric.getOneMinuteRate() * rateFactor;
+         }
+ 
+         @Override
+         public double getFiveMinuteRate() {
+             return metric.getFiveMinuteRate() * rateFactor;
+         }
+ 
+         @Override
+         public double getFifteenMinuteRate() {
+             return metric.getFifteenMinuteRate() * rateFactor;
+         }
+ 
+         @Override
+         public String getRateUnit() {
+             return rateUnit;
+         }
+ 
+         private String calculateRateUnit(TimeUnit unit) {
+             final String s = unit.toString().toLowerCase(Locale.US);
+             return s.substring(0, s.length() - 1);
+         }
+     }
+ 
+     @SuppressWarnings("UnusedDeclaration")
+     public interface JmxTimerMBean extends JmxMeterMBean {
+         double getMin();
+ 
+         double getMax();
+ 
+         double getMean();
+ 
+         double getStdDev();
+ 
+         double get50thPercentile();
+ 
+         double get75thPercentile();
+ 
+         double get95thPercentile();
+ 
+         double get98thPercentile();
+ 
+         double get99thPercentile();
+ 
+         double get999thPercentile();
+ 
+         long[] values();
+ 
+         String getDurationUnit();
+     }
+ 
+     static class JmxTimer extends JmxMeter implements JmxTimerMBean {
+         private final Timer metric;
+         private final double durationFactor;
+         private final String durationUnit;
+ 
+         private JmxTimer(Timer metric,
+                          ObjectName objectName,
+                          TimeUnit rateUnit,
+                          TimeUnit durationUnit) {
+             super(metric, objectName, rateUnit);
+             this.metric = metric;
+             this.durationFactor = 1.0 / durationUnit.toNanos(1);
+             this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);
+         }
+ 
+         @Override
+         public double get50thPercentile() {
+             return metric.getSnapshot().getMedian() * durationFactor;
+         }
+ 
+         @Override
+         public double getMin() {
+             return metric.getSnapshot().getMin() * durationFactor;
+         }
+ 
+         @Override
+         public double getMax() {
+             return metric.getSnapshot().getMax() * durationFactor;
+         }
+ 
+         @Override
+         public double getMean() {
+             return metric.getSnapshot().getMean() * durationFactor;
+         }
+ 
+         @Override
+         public double getStdDev() {
+             return metric.getSnapshot().getStdDev() * durationFactor;
+         }
+ 
+         @Override
+         public double get75thPercentile() {
+             return metric.getSnapshot().get75thPercentile() * durationFactor;
+         }
+ 
+         @Override
+         public double get95thPercentile() {
+             return metric.getSnapshot().get95thPercentile() * durationFactor;
+         }
+ 
+         @Override
+         public double get98thPercentile() {
+             return metric.getSnapshot().get98thPercentile() * durationFactor;
+         }
+ 
+         @Override
+         public double get99thPercentile() {
+             return metric.getSnapshot().get99thPercentile() * durationFactor;
+         }
+ 
+         @Override
+         public double get999thPercentile() {
+             return metric.getSnapshot().get999thPercentile() * durationFactor;
+         }
+ 
+         @Override
+         public long[] values() {
+             return metric.getSnapshot().getValues();
+         }
+ 
+         @Override
+         public String getDurationUnit() {
+             return durationUnit;
+         }
+     }
+ 
+     private static class JmxListener implements MetricRegistryListener {
+         private final String name;
+         private final MBeanServer mBeanServer;
+         private final MetricFilter filter;
+         private final MetricTimeUnits timeUnits;
+         private final Map<ObjectName, ObjectName> registered;
+         private final ObjectNameFactory objectNameFactory;
+ 
+         private JmxListener(MBeanServer mBeanServer, String name, MetricFilter filter, MetricTimeUnits timeUnits, ObjectNameFactory objectNameFactory) {
+             this.mBeanServer = mBeanServer;
+             this.name = name;
+             this.filter = filter;
+             this.timeUnits = timeUnits;
+             this.registered = new ConcurrentHashMap<>();
+             this.objectNameFactory = objectNameFactory;
+         }
+ 
+         private void registerMBean(Object mBean, ObjectName objectName) throws InstanceAlreadyExistsException, JMException {
+             ObjectInstance objectInstance = mBeanServer.registerMBean(mBean, objectName);
+             if (objectInstance != null) {
+                 // the websphere mbeanserver rewrites the objectname to include
+                 // cell, node & server info
+                 // make sure we capture the new objectName for unregistration
+                 registered.put(objectName, objectInstance.getObjectName());
+             } else {
+                 registered.put(objectName, objectName);
+             }
+         }
+ 
+         private void unregisterMBean(ObjectName originalObjectName) throws InstanceNotFoundException, MBeanRegistrationException {
+             ObjectName storedObjectName = registered.remove(originalObjectName);
+             if (storedObjectName != null) {
+                 mBeanServer.unregisterMBean(storedObjectName);
+             } else {
+                 mBeanServer.unregisterMBean(originalObjectName);
+             }
+         }
+ 
+         @Override
+         public void onGaugeAdded(String name, Gauge<?> gauge) {
+             try {
+                 if (filter.matches(name, gauge)) {
+                     final ObjectName objectName = createName("gauges", name);
+                     registerMBean(new JmxGauge(gauge, objectName), objectName);
+                 }
+             } catch (InstanceAlreadyExistsException e) {
+                 LOGGER.debug("Unable to register gauge", e);
+             } catch (JMException e) {
+                 LOGGER.warn("Unable to register gauge", e);
+             }
+         }
+ 
+         @Override
+         public void onGaugeRemoved(String name) {
+             try {
+                 final ObjectName objectName = createName("gauges", name);
+                 unregisterMBean(objectName);
+             } catch (InstanceNotFoundException e) {
+                 LOGGER.debug("Unable to unregister gauge", e);
+             } catch (MBeanRegistrationException e) {
+                 LOGGER.warn("Unable to unregister gauge", e);
+             }
+         }
+ 
+         @Override
+         public void onCounterAdded(String name, Counter counter) {
+             try {
+                 if (filter.matches(name, counter)) {
+                     final ObjectName objectName = createName("counters", name);
+                     registerMBean(new JmxCounter(counter, objectName), objectName);
+                 }
+             } catch (InstanceAlreadyExistsException e) {
+                 LOGGER.debug("Unable to register counter", e);
+             } catch (JMException e) {
+                 LOGGER.warn("Unable to register counter", e);
+             }
+         }
+ 
+         @Override
+         public void onCounterRemoved(String name) {
+             try {
+                 final ObjectName objectName = createName("counters", name);
+                 unregisterMBean(objectName);
+             } catch (InstanceNotFoundException e) {
+                 LOGGER.debug("Unable to unregister counter", e);
+             } catch (MBeanRegistrationException e) {
+                 LOGGER.warn("Unable to unregister counter", e);
+             }
+         }
+ 
+         @Override
+         public void onHistogramAdded(String name, Histogram histogram) {
+             try {
+                 if (filter.matches(name, histogram)) {
+                     final ObjectName objectName = createName("histograms", name);
+                     registerMBean(new JmxHistogram(histogram, objectName), objectName);
+                 }
+             } catch (InstanceAlreadyExistsException e) {
+                 LOGGER.debug("Unable to register histogram", e);
+             } catch (JMException e) {
+                 LOGGER.warn("Unable to register histogram", e);
+             }
+         }
+ 
+         @Override
+         public void onHistogramRemoved(String name) {
+             try {
+                 final ObjectName objectName = createName("histograms", name);
+                 unregisterMBean(objectName);
+             } catch (InstanceNotFoundException e) {
+                 LOGGER.debug("Unable to unregister histogram", e);
+             } catch (MBeanRegistrationException e) {
+                 LOGGER.warn("Unable to unregister histogram", e);
+             }
+         }
+ 
+         @Override
+         public void onMeterAdded(String name, Meter meter) {
+             try {
+                 if (filter.matches(name, meter)) {
+                     final ObjectName objectName = createName("meters", name);
+                     registerMBean(new JmxMeter(meter, objectName, timeUnits.rateFor(name)), objectName);
+                 }
+             } catch (InstanceAlreadyExistsException e) {
+                 LOGGER.debug("Unable to register meter", e);
+             } catch (JMException e) {
+                 LOGGER.warn("Unable to register meter", e);
+             }
+         }
+ 
+         @Override
+         public void onMeterRemoved(String name) {
+             try {
+                 final ObjectName objectName = createName("meters", name);
+                 unregisterMBean(objectName);
+             } catch (InstanceNotFoundException e) {
+                 LOGGER.debug("Unable to unregister meter", e);
+             } catch (MBeanRegistrationException e) {
+                 LOGGER.warn("Unable to unregister meter", e);
+             }
+         }
+ 
+         @Override
+         public void onTimerAdded(String name, Timer timer) {
+             try {
+                 if (filter.matches(name, timer)) {
+                     final ObjectName objectName = createName("timers", name);
+                     registerMBean(new JmxTimer(timer, objectName, timeUnits.rateFor(name), timeUnits.durationFor(name)), objectName);
+                 }
+             } catch (InstanceAlreadyExistsException e) {
+                 LOGGER.debug("Unable to register timer", e);
+             } catch (JMException e) {
+                 LOGGER.warn("Unable to register timer", e);
+             }
+         }
+ 
+         @Override
+         public void onTimerRemoved(String name) {
+             try {
+                 final ObjectName objectName = createName("timers", name);
+                 unregisterMBean(objectName);
+             } catch (InstanceNotFoundException e) {
+                 LOGGER.debug("Unable to unregister timer", e);
+             } catch (MBeanRegistrationException e) {
+                 LOGGER.warn("Unable to unregister timer", e);
+             }
+         }
+ 
+         private ObjectName createName(String type, String name) {
+             return objectNameFactory.createName(type, this.name, name);
+         }
+ 
+         void unregisterAll() {
+             for (ObjectName name : registered.keySet()) {
+                 try {
+                     unregisterMBean(name);
+                 } catch (InstanceNotFoundException e) {
+                     LOGGER.debug("Unable to unregister metric", e);
+                 } catch (MBeanRegistrationException e) {
+                     LOGGER.warn("Unable to unregister metric", e);
+                 }
+             }
+             registered.clear();
+         }
+     }
+ 
+     private static class MetricTimeUnits {
+         private final TimeUnit defaultRate;
+         private final TimeUnit defaultDuration;
+         private final Map<String, TimeUnit> rateOverrides;
+         private final Map<String, TimeUnit> durationOverrides;
+ 
+         MetricTimeUnits(TimeUnit defaultRate,
+                         TimeUnit defaultDuration,
+                         Map<String, TimeUnit> rateOverrides,
+                         Map<String, TimeUnit> durationOverrides) {
+             this.defaultRate = defaultRate;
+             this.defaultDuration = defaultDuration;
+             this.rateOverrides = rateOverrides;
+             this.durationOverrides = durationOverrides;
+         }
+ 
+         public TimeUnit durationFor(String name) {
+             return durationOverrides.getOrDefault(name, defaultDuration);
+         }
+ 
+         public TimeUnit rateFor(String name) {
+             return rateOverrides.getOrDefault(name, defaultRate);
+         }
+     }
+ 
+     private final MetricRegistry registry;
+     private final JmxListener listener;
+ 
+     private JmxReporter(MBeanServer mBeanServer,
+                         String domain,
+                         MetricRegistry registry,
+                         MetricFilter filter,
+                         MetricTimeUnits timeUnits,
+                         ObjectNameFactory objectNameFactory) {
+         this.registry = registry;
+         this.listener = new JmxListener(mBeanServer, domain, filter, timeUnits, objectNameFactory);
+     }
+ 
+     /**
+      * Starts the reporter.
+      */
+     public void start() {
+         registry.addListener(listener);
+     }
+ 
+     /**
+      * Stops the reporter.
+      */
+     public void stop() {
+         registry.removeListener(listener);
+         listener.unregisterAll();
+     }
+ 
+     /**
+      * Stops the reporter.
+      */
+     @Override
+     public void close() {
+         stop();
+     }
+ 
+     /**
+      * Visible for testing
+      */
+     ObjectNameFactory getObjectNameFactory() {
+         return listener.objectNameFactory;
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-3.html new file mode 100644 index 0000000000..52fd7cca92 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-3.html @@ -0,0 +1,85 @@ + + + + + + + + Coverage Report > ObjectNameFactory + + + + + + +
+ + +

Coverage Summary for Class: ObjectNameFactory (com.codahale.metrics.jmx)

+ + + + + + + + + + + + + + + + + + +
Class
ObjectNameFactory$MockitoMock$T1LlDgYl
ObjectNameFactory$MockitoMock$T1LlDgYl$auxiliary$EaMiz7jr
ObjectNameFactory$MockitoMock$T1LlDgYl$auxiliary$wQu19Bip
Total
+ +
+
+ + +
+ package com.codahale.metrics.jmx;
+ 
+ import javax.management.ObjectName;
+ 
+ public interface ObjectNameFactory {
+ 
+     ObjectName createName(String type, String domain, String name);
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index.html new file mode 100644 index 0000000000..829f2f7bec --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-17/index.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..62d581b5ea --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..d61e169b7f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..7130a034eb --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..db323a0187 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..5193d6e8b0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_LINE.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..562ff1bce2 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..c7df55f188 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..cbae21db5c --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..82a2db8ca5 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/sources/source-1.html new file mode 100644 index 0000000000..dac3b719a4 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-17/sources/source-1.html @@ -0,0 +1,217 @@ + + + + + + + + Coverage Report > HealthCheckModule + + + + + + +
+ + +

Coverage Summary for Class: HealthCheckModule (com.codahale.metrics.json)

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
HealthCheckModule + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
HealthCheckModule$1
HealthCheckModule$HealthCheckResultSerializer + + 100% + + + (4/4) + + + + 100% + + + (27/27) + +
Total + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
+ +
+
+ + +
+ package com.codahale.metrics.json;
+ 
+ import com.codahale.metrics.health.HealthCheck;
+ import com.fasterxml.jackson.core.JsonGenerator;
+ import com.fasterxml.jackson.core.Version;
+ import com.fasterxml.jackson.databind.Module;
+ import com.fasterxml.jackson.databind.SerializerProvider;
+ import com.fasterxml.jackson.databind.module.SimpleSerializers;
+ import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+ 
+ import java.io.IOException;
+ import java.util.Collections;
+ import java.util.Map;
+ 
+ public class HealthCheckModule extends Module {
+     private static class HealthCheckResultSerializer extends StdSerializer<HealthCheck.Result> {
+ 
+         private static final long serialVersionUID = 1L;
+ 
+         private HealthCheckResultSerializer() {
+             super(HealthCheck.Result.class);
+         }
+ 
+         @Override
+         public void serialize(HealthCheck.Result result,
+                               JsonGenerator json,
+                               SerializerProvider provider) throws IOException {
+             json.writeStartObject();
+             json.writeBooleanField("healthy", result.isHealthy());
+ 
+             final String message = result.getMessage();
+             if (message != null) {
+                 json.writeStringField("message", message);
+             }
+ 
+             serializeThrowable(json, result.getError(), "error");
+             json.writeNumberField("duration", result.getDuration());
+ 
+             Map<String, Object> details = result.getDetails();
+             if (details != null && !details.isEmpty()) {
+                 for (Map.Entry<String, Object> e : details.entrySet()) {
+                     json.writeObjectField(e.getKey(), e.getValue());
+                 }
+             }
+ 
+             json.writeStringField("timestamp", result.getTimestamp());
+             json.writeEndObject();
+         }
+ 
+         private void serializeThrowable(JsonGenerator json, Throwable error, String name) throws IOException {
+             if (error != null) {
+                 json.writeObjectFieldStart(name);
+                 json.writeStringField("type", error.getClass().getTypeName());
+                 json.writeStringField("message", error.getMessage());
+                 json.writeArrayFieldStart("stack");
+                 for (StackTraceElement element : error.getStackTrace()) {
+                     json.writeString(element.toString());
+                 }
+                 json.writeEndArray();
+ 
+                 if (error.getCause() != null) {
+                     serializeThrowable(json, error.getCause(), "cause");
+                 }
+ 
+                 json.writeEndObject();
+             }
+         }
+     }
+ 
+     @Override
+     public String getModuleName() {
+         return "healthchecks";
+     }
+ 
+     @Override
+     public Version version() {
+         return MetricsModule.VERSION;
+     }
+ 
+     @Override
+     public void setupModule(SetupContext context) {
+         context.addSerializers(new SimpleSerializers(Collections.singletonList(new HealthCheckResultSerializer())));
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/sources/source-2.html new file mode 100644 index 0000000000..625503aed3 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-17/sources/source-2.html @@ -0,0 +1,489 @@ + + + + + + + + Coverage Report > MetricsModule + + + + + + +
+ + +

Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
MetricsModule + + 87.5% + + + (7/8) + + + + 92.3% + + + (12/13) + +
MetricsModule$1
MetricsModule$CounterSerializer + + 100% + + + (3/3) + + + + 100% + + + (5/5) + +
MetricsModule$GaugeSerializer + + 100% + + + (3/3) + + + + 100% + + + (9/9) + +
MetricsModule$HistogramSerializer + + 100% + + + (3/3) + + + + 100% + + + (19/19) + +
MetricsModule$MeterSerializer + + 100% + + + (2/2) + + + + 100% + + + (11/11) + +
MetricsModule$MetricRegistrySerializer + + 100% + + + (3/3) + + + + 100% + + + (11/11) + +
MetricsModule$TimerSerializer + + 100% + + + (3/3) + + + + 100% + + + (33/33) + +
Total + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
+ +
+
+ + +
+ package com.codahale.metrics.json;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Gauge;
+ import com.codahale.metrics.Histogram;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricFilter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Snapshot;
+ import com.codahale.metrics.Timer;
+ import com.fasterxml.jackson.core.JsonGenerator;
+ import com.fasterxml.jackson.core.Version;
+ import com.fasterxml.jackson.databind.Module;
+ import com.fasterxml.jackson.databind.SerializerProvider;
+ import com.fasterxml.jackson.databind.module.SimpleSerializers;
+ import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+ 
+ import java.io.IOException;
+ import java.util.Arrays;
+ import java.util.Locale;
+ import java.util.concurrent.TimeUnit;
+ 
+ public class MetricsModule extends Module {
+     static final Version VERSION = new Version(4, 0, 0, "", "io.dropwizard.metrics", "metrics-json");
+ 
+     @SuppressWarnings("rawtypes")
+     private static class GaugeSerializer extends StdSerializer<Gauge> {
+ 
+         private static final long serialVersionUID = 1L;
+ 
+         private GaugeSerializer() {
+             super(Gauge.class);
+         }
+ 
+         @Override
+         public void serialize(Gauge gauge,
+                               JsonGenerator json,
+                               SerializerProvider provider) throws IOException {
+             json.writeStartObject();
+             final Object value;
+             try {
+                 value = gauge.getValue();
+                 json.writeObjectField("value", value);
+             } catch (RuntimeException e) {
+                 json.writeObjectField("error", e.toString());
+             }
+             json.writeEndObject();
+         }
+     }
+ 
+     private static class CounterSerializer extends StdSerializer<Counter> {
+ 
+         private static final long serialVersionUID = 1L;
+ 
+         private CounterSerializer() {
+             super(Counter.class);
+         }
+ 
+         @Override
+         public void serialize(Counter counter,
+                               JsonGenerator json,
+                               SerializerProvider provider) throws IOException {
+             json.writeStartObject();
+             json.writeNumberField("count", counter.getCount());
+             json.writeEndObject();
+         }
+     }
+ 
+     private static class HistogramSerializer extends StdSerializer<Histogram> {
+ 
+         private static final long serialVersionUID = 1L;
+ 
+         private final boolean showSamples;
+ 
+         private HistogramSerializer(boolean showSamples) {
+             super(Histogram.class);
+             this.showSamples = showSamples;
+         }
+ 
+         @Override
+         public void serialize(Histogram histogram,
+                               JsonGenerator json,
+                               SerializerProvider provider) throws IOException {
+             json.writeStartObject();
+             final Snapshot snapshot = histogram.getSnapshot();
+             json.writeNumberField("count", histogram.getCount());
+             json.writeNumberField("max", snapshot.getMax());
+             json.writeNumberField("mean", snapshot.getMean());
+             json.writeNumberField("min", snapshot.getMin());
+             json.writeNumberField("p50", snapshot.getMedian());
+             json.writeNumberField("p75", snapshot.get75thPercentile());
+             json.writeNumberField("p95", snapshot.get95thPercentile());
+             json.writeNumberField("p98", snapshot.get98thPercentile());
+             json.writeNumberField("p99", snapshot.get99thPercentile());
+             json.writeNumberField("p999", snapshot.get999thPercentile());
+ 
+             if (showSamples) {
+                 json.writeObjectField("values", snapshot.getValues());
+             }
+ 
+             json.writeNumberField("stddev", snapshot.getStdDev());
+             json.writeEndObject();
+         }
+     }
+ 
+     private static class MeterSerializer extends StdSerializer<Meter> {
+ 
+         private static final long serialVersionUID = 1L;
+ 
+         private final String rateUnit;
+         private final double rateFactor;
+ 
+         public MeterSerializer(TimeUnit rateUnit) {
+             super(Meter.class);
+             this.rateFactor = rateUnit.toSeconds(1);
+             this.rateUnit = calculateRateUnit(rateUnit, "events");
+         }
+ 
+         @Override
+         public void serialize(Meter meter,
+                               JsonGenerator json,
+                               SerializerProvider provider) throws IOException {
+             json.writeStartObject();
+             json.writeNumberField("count", meter.getCount());
+             json.writeNumberField("m15_rate", meter.getFifteenMinuteRate() * rateFactor);
+             json.writeNumberField("m1_rate", meter.getOneMinuteRate() * rateFactor);
+             json.writeNumberField("m5_rate", meter.getFiveMinuteRate() * rateFactor);
+             json.writeNumberField("mean_rate", meter.getMeanRate() * rateFactor);
+             json.writeStringField("units", rateUnit);
+             json.writeEndObject();
+         }
+     }
+ 
+     private static class TimerSerializer extends StdSerializer<Timer> {
+ 
+         private static final long serialVersionUID = 1L;
+ 
+         private final String rateUnit;
+         private final double rateFactor;
+         private final String durationUnit;
+         private final double durationFactor;
+         private final boolean showSamples;
+ 
+         private TimerSerializer(TimeUnit rateUnit,
+                                 TimeUnit durationUnit,
+                                 boolean showSamples) {
+             super(Timer.class);
+             this.rateUnit = calculateRateUnit(rateUnit, "calls");
+             this.rateFactor = rateUnit.toSeconds(1);
+             this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);
+             this.durationFactor = 1.0 / durationUnit.toNanos(1);
+             this.showSamples = showSamples;
+         }
+ 
+         @Override
+         public void serialize(Timer timer,
+                               JsonGenerator json,
+                               SerializerProvider provider) throws IOException {
+             json.writeStartObject();
+             final Snapshot snapshot = timer.getSnapshot();
+             json.writeNumberField("count", timer.getCount());
+             json.writeNumberField("max", snapshot.getMax() * durationFactor);
+             json.writeNumberField("mean", snapshot.getMean() * durationFactor);
+             json.writeNumberField("min", snapshot.getMin() * durationFactor);
+ 
+             json.writeNumberField("p50", snapshot.getMedian() * durationFactor);
+             json.writeNumberField("p75", snapshot.get75thPercentile() * durationFactor);
+             json.writeNumberField("p95", snapshot.get95thPercentile() * durationFactor);
+             json.writeNumberField("p98", snapshot.get98thPercentile() * durationFactor);
+             json.writeNumberField("p99", snapshot.get99thPercentile() * durationFactor);
+             json.writeNumberField("p999", snapshot.get999thPercentile() * durationFactor);
+ 
+             if (showSamples) {
+                 final long[] values = snapshot.getValues();
+                 final double[] scaledValues = new double[values.length];
+                 for (int i = 0; i < values.length; i++) {
+                     scaledValues[i] = values[i] * durationFactor;
+                 }
+                 json.writeObjectField("values", scaledValues);
+             }
+ 
+             json.writeNumberField("stddev", snapshot.getStdDev() * durationFactor);
+             json.writeNumberField("m15_rate", timer.getFifteenMinuteRate() * rateFactor);
+             json.writeNumberField("m1_rate", timer.getOneMinuteRate() * rateFactor);
+             json.writeNumberField("m5_rate", timer.getFiveMinuteRate() * rateFactor);
+             json.writeNumberField("mean_rate", timer.getMeanRate() * rateFactor);
+             json.writeStringField("duration_units", durationUnit);
+             json.writeStringField("rate_units", rateUnit);
+             json.writeEndObject();
+         }
+     }
+ 
+     private static class MetricRegistrySerializer extends StdSerializer<MetricRegistry> {
+ 
+         private static final long serialVersionUID = 1L;
+ 
+         private final MetricFilter filter;
+ 
+         private MetricRegistrySerializer(MetricFilter filter) {
+             super(MetricRegistry.class);
+             this.filter = filter;
+         }
+ 
+         @Override
+         public void serialize(MetricRegistry registry,
+                               JsonGenerator json,
+                               SerializerProvider provider) throws IOException {
+             json.writeStartObject();
+             json.writeStringField("version", VERSION.toString());
+             json.writeObjectField("gauges", registry.getGauges(filter));
+             json.writeObjectField("counters", registry.getCounters(filter));
+             json.writeObjectField("histograms", registry.getHistograms(filter));
+             json.writeObjectField("meters", registry.getMeters(filter));
+             json.writeObjectField("timers", registry.getTimers(filter));
+             json.writeEndObject();
+         }
+     }
+ 
+     protected final TimeUnit rateUnit;
+     protected final TimeUnit durationUnit;
+     protected final boolean showSamples;
+     protected final MetricFilter filter;
+ 
+     public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples) {
+         this(rateUnit, durationUnit, showSamples, MetricFilter.ALL);
+     }
+ 
+     public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples, MetricFilter filter) {
+         this.rateUnit = rateUnit;
+         this.durationUnit = durationUnit;
+         this.showSamples = showSamples;
+         this.filter = filter;
+     }
+ 
+     @Override
+     public String getModuleName() {
+         return "metrics";
+     }
+ 
+     @Override
+     public Version version() {
+         return VERSION;
+     }
+ 
+     @Override
+     public void setupModule(SetupContext context) {
+         context.addSerializers(new SimpleSerializers(Arrays.asList(
+                 new GaugeSerializer(),
+                 new CounterSerializer(),
+                 new HistogramSerializer(showSamples),
+                 new MeterSerializer(rateUnit),
+                 new TimerSerializer(rateUnit, durationUnit, showSamples),
+                 new MetricRegistrySerializer(filter)
+         )));
+     }
+ 
+     private static String calculateRateUnit(TimeUnit unit, String name) {
+         final String s = unit.toString().toLowerCase(Locale.US);
+         return name + '/' + s.substring(0, s.length() - 1);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index.html new file mode 100644 index 0000000000..8005ff5fca --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/index.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + 92.7% + + + (204/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BufferPoolMetricSet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (18/18) + +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
ClassLoadingGaugeSet + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
CpuTimeClock + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
FileDescriptorRatioGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
GarbageCollectorMetricSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (13/13) + +
JvmAttributeGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
MemoryUsageGaugeSet + + 100% + + + (4/4) + + + + 100% + + + (16/16) + + + + 100% + + + (47/47) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (20/20) + +
ThreadDump + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 83.3% + + + (40/48) + +
ThreadStatesGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (22/22) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..69e8412ab4 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + 92.7% + + + (204/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BufferPoolMetricSet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (18/18) + +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
ClassLoadingGaugeSet + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
CpuTimeClock + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
FileDescriptorRatioGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
GarbageCollectorMetricSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (13/13) + +
JvmAttributeGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
MemoryUsageGaugeSet + + 100% + + + (4/4) + + + + 100% + + + (16/16) + + + + 100% + + + (47/47) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (20/20) + +
ThreadDump + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 83.3% + + + (40/48) + +
ThreadStatesGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (22/22) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..9f20e01432 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + 92.7% + + + (204/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadStatesGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (22/22) + +
ThreadDump + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 83.3% + + + (40/48) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (20/20) + +
MemoryUsageGaugeSet + + 100% + + + (4/4) + + + + 100% + + + (16/16) + + + + 100% + + + (47/47) + +
JvmAttributeGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (13/13) + +
GarbageCollectorMetricSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
FileDescriptorRatioGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
CpuTimeClock + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
ClassLoadingGaugeSet + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
BufferPoolMetricSet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (18/18) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..9ca83431cb --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + 92.7% + + + (204/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
BufferPoolMetricSet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (18/18) + +
ClassLoadingGaugeSet + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
CpuTimeClock + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
FileDescriptorRatioGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
GarbageCollectorMetricSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (13/13) + +
JvmAttributeGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
MemoryUsageGaugeSet + + 100% + + + (4/4) + + + + 100% + + + (16/16) + + + + 100% + + + (47/47) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (20/20) + +
ThreadDump + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 83.3% + + + (40/48) + +
ThreadStatesGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (22/22) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..acb68b7c82 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + 92.7% + + + (204/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadStatesGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (22/22) + +
ThreadDump + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 83.3% + + + (40/48) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (20/20) + +
MemoryUsageGaugeSet + + 100% + + + (4/4) + + + + 100% + + + (16/16) + + + + 100% + + + (47/47) + +
JvmAttributeGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (13/13) + +
GarbageCollectorMetricSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
FileDescriptorRatioGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
CpuTimeClock + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
ClassLoadingGaugeSet + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
BufferPoolMetricSet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (18/18) + +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..94c1c4beba --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_LINE.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + 92.7% + + + (204/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
ThreadDump + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 83.3% + + + (40/48) + +
ClassLoadingGaugeSet + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
BufferPoolMetricSet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (18/18) + +
CpuTimeClock + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
FileDescriptorRatioGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
GarbageCollectorMetricSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (13/13) + +
JvmAttributeGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
MemoryUsageGaugeSet + + 100% + + + (4/4) + + + + 100% + + + (16/16) + + + + 100% + + + (47/47) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (20/20) + +
ThreadStatesGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (22/22) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..eb0f671267 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + 92.7% + + + (204/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadStatesGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (22/22) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (20/20) + +
MemoryUsageGaugeSet + + 100% + + + (4/4) + + + + 100% + + + (16/16) + + + + 100% + + + (47/47) + +
JvmAttributeGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (13/13) + +
GarbageCollectorMetricSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
FileDescriptorRatioGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
CpuTimeClock + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
BufferPoolMetricSet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (18/18) + +
ClassLoadingGaugeSet + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
ThreadDump + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 83.3% + + + (40/48) + +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..a01235e4ec --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + 92.7% + + + (204/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
ClassLoadingGaugeSet + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
BufferPoolMetricSet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (18/18) + +
CpuTimeClock + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
FileDescriptorRatioGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
GarbageCollectorMetricSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (13/13) + +
JvmAttributeGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
MemoryUsageGaugeSet + + 100% + + + (4/4) + + + + 100% + + + (16/16) + + + + 100% + + + (47/47) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (20/20) + +
ThreadDump + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 83.3% + + + (40/48) + +
ThreadStatesGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (22/22) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..711648f6b8 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + 92.7% + + + (204/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadStatesGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (22/22) + +
ThreadDump + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 83.3% + + + (40/48) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (20/20) + +
MemoryUsageGaugeSet + + 100% + + + (4/4) + + + + 100% + + + (16/16) + + + + 100% + + + (47/47) + +
JvmAttributeGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (13/13) + +
GarbageCollectorMetricSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
FileDescriptorRatioGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
CpuTimeClock + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
BufferPoolMetricSet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (18/18) + +
ClassLoadingGaugeSet + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..0a5f6ea7a0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 87.5% + + + (14/16) + + + + 88.1% + + + (52/59) + + + + 92.7% + + + (204/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadStatesGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (22/22) + +
ThreadDump + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 83.3% + + + (40/48) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (20/20) + +
MemoryUsageGaugeSet + + 100% + + + (4/4) + + + + 100% + + + (16/16) + + + + 100% + + + (47/47) + +
JvmAttributeGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (13/13) + +
GarbageCollectorMetricSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
FileDescriptorRatioGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
CpuTimeClock + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
ClassLoadingGaugeSet + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
BufferPoolMetricSet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (18/18) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-1.html new file mode 100644 index 0000000000..18cbfade7c --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-1.html @@ -0,0 +1,156 @@ + + + + + + + + Coverage Report > BufferPoolMetricSet + + + + + + +
+ + +

Coverage Summary for Class: BufferPoolMetricSet (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
BufferPoolMetricSet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (18/18) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import com.codahale.metrics.Metric;
+ import com.codahale.metrics.MetricSet;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import javax.management.JMException;
+ import javax.management.MBeanServer;
+ import javax.management.ObjectName;
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.Map;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A set of gauges for the count, usage, and capacity of the JVM's direct and mapped buffer pools.
+  * <p>
+  * These JMX objects are only available on Java 7 and above.
+  */
+ public class BufferPoolMetricSet implements MetricSet {
+     private static final Logger LOGGER = LoggerFactory.getLogger(BufferPoolMetricSet.class);
+     private static final String[] ATTRIBUTES = {"Count", "MemoryUsed", "TotalCapacity"};
+     private static final String[] NAMES = {"count", "used", "capacity"};
+     private static final String[] POOLS = {"direct", "mapped"};
+ 
+     private final MBeanServer mBeanServer;
+ 
+     public BufferPoolMetricSet(MBeanServer mBeanServer) {
+         this.mBeanServer = mBeanServer;
+     }
+ 
+     @Override
+     public Map<String, Metric> getMetrics() {
+         final Map<String, Metric> gauges = new HashMap<>();
+         for (String pool : POOLS) {
+             for (int i = 0; i < ATTRIBUTES.length; i++) {
+                 final String attribute = ATTRIBUTES[i];
+                 final String name = NAMES[i];
+                 try {
+                     final ObjectName on = new ObjectName("java.nio:type=BufferPool,name=" + pool);
+                     mBeanServer.getMBeanInfo(on);
+                     gauges.put(name(pool, name), new JmxAttributeGauge(mBeanServer, on, attribute));
+                 } catch (JMException ignored) {
+                     LOGGER.debug("Unable to load buffer pool MBeans, possibly running on Java 6");
+                 }
+             }
+         }
+         return Collections.unmodifiableMap(gauges);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-2.html new file mode 100644 index 0000000000..87e2a786cc --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-2.html @@ -0,0 +1,184 @@ + + + + + + + + Coverage Report > CachedThreadStatesGaugeSet + + + + + + +
+ + +

Coverage Summary for Class: CachedThreadStatesGaugeSet (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
CachedThreadStatesGaugeSet + + 0% + + + (0/4) + + + + 0% + + + (0/5) + +
CachedThreadStatesGaugeSet$1 + + 0% + + + (0/2) + + + + 0% + + + (0/2) + +
Total + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import java.lang.management.ManagementFactory;
+ import java.lang.management.ThreadInfo;
+ import java.lang.management.ThreadMXBean;
+ import java.util.concurrent.TimeUnit;
+ 
+ import com.codahale.metrics.CachedGauge;
+ 
+ /**
+  * A variation of ThreadStatesGaugeSet that caches the ThreadInfo[] objects for
+  * a given interval.
+  */
+ public class CachedThreadStatesGaugeSet extends ThreadStatesGaugeSet {
+ 
+     private final CachedGauge<ThreadInfo[]> threadInfo;
+ 
+     /**
+      * Creates a new set of gauges using the given MXBean and detector.
+      * Caches the information for the given interval and time unit.
+      *
+      * @param threadMXBean     a thread MXBean
+      * @param deadlockDetector a deadlock detector
+      * @param interval         cache interval
+      * @param unit             cache interval time unit
+      */
+     public CachedThreadStatesGaugeSet(final ThreadMXBean threadMXBean, ThreadDeadlockDetector deadlockDetector,
+                                       long interval, TimeUnit unit) {
+         super(threadMXBean, deadlockDetector);
+         threadInfo = new CachedGauge<ThreadInfo[]>(interval, unit) {
+             @Override
+             protected ThreadInfo[] loadValue() {
+                 return CachedThreadStatesGaugeSet.super.getThreadInfo();
+             }
+         };
+     }
+ 
+     /**
+      * Creates a new set of gauges using the default MXBeans.
+      * Caches the information for the given interval and time unit.
+      *
+      * @param interval cache interval
+      * @param unit     cache interval time unit
+      */
+     public CachedThreadStatesGaugeSet(long interval, TimeUnit unit) {
+         this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector(), interval, unit);
+     }
+ 
+     @Override
+     ThreadInfo[] getThreadInfo() {
+         return threadInfo.getValue();
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-3.html new file mode 100644 index 0000000000..f40f049c63 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-3.html @@ -0,0 +1,139 @@ + + + + + + + + Coverage Report > ClassLoadingGaugeSet + + + + + + +
+ + +

Coverage Summary for Class: ClassLoadingGaugeSet (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ClassLoadingGaugeSet + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import com.codahale.metrics.Gauge;
+ import com.codahale.metrics.Metric;
+ import com.codahale.metrics.MetricSet;
+ 
+ import java.lang.management.ClassLoadingMXBean;
+ import java.lang.management.ManagementFactory;
+ import java.util.HashMap;
+ import java.util.Map;
+ 
+ /**
+  * A set of gauges for JVM classloader usage.
+  */
+ public class ClassLoadingGaugeSet implements MetricSet {
+ 
+     private final ClassLoadingMXBean mxBean;
+ 
+     public ClassLoadingGaugeSet() {
+         this(ManagementFactory.getClassLoadingMXBean());
+     }
+ 
+     public ClassLoadingGaugeSet(ClassLoadingMXBean mxBean) {
+         this.mxBean = mxBean;
+     }
+ 
+     @Override
+     public Map<String, Metric> getMetrics() {
+         final Map<String, Metric> gauges = new HashMap<>();
+         gauges.put("loaded", (Gauge<Long>) mxBean::getTotalLoadedClassCount);
+         gauges.put("unloaded", (Gauge<Long>) mxBean::getUnloadedClassCount);
+ 
+         return gauges;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-4.html new file mode 100644 index 0000000000..43a0e40fed --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-4.html @@ -0,0 +1,123 @@ + + + + + + + + Coverage Report > CpuTimeClock + + + + + + +
+ + +

Coverage Summary for Class: CpuTimeClock (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
CpuTimeClock + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import com.codahale.metrics.Clock;
+ 
+ import java.lang.management.ManagementFactory;
+ import java.lang.management.ThreadMXBean;
+ 
+ /**
+  * A clock implementation which returns the current thread's CPU time.
+  */
+ public class CpuTimeClock extends Clock {
+ 
+     private static final ThreadMXBean THREAD_MX_BEAN = ManagementFactory.getThreadMXBean();
+ 
+     @Override
+     public long getTick() {
+         return THREAD_MX_BEAN.getCurrentThreadCpuTime();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-5.html new file mode 100644 index 0000000000..c4759f3255 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-5.html @@ -0,0 +1,154 @@ + + + + + + + + Coverage Report > FileDescriptorRatioGauge + + + + + + +
+ + +

Coverage Summary for Class: FileDescriptorRatioGauge (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
FileDescriptorRatioGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import com.codahale.metrics.RatioGauge;
+ 
+ import java.lang.management.ManagementFactory;
+ import java.lang.management.OperatingSystemMXBean;
+ 
+ /**
+  * A gauge for the ratio of used to total file descriptors.
+  */
+ public class FileDescriptorRatioGauge extends RatioGauge {
+     private static boolean unixOperatingSystemMXBeanExists = false;
+ 
+     private final OperatingSystemMXBean os;
+ 
+     static {
+         try {
+             Class.forName("com.sun.management.UnixOperatingSystemMXBean");
+             unixOperatingSystemMXBeanExists = true;
+         } catch (ClassNotFoundException e) {
+             // do nothing
+         }
+     }
+ 
+     /**
+      * Creates a new gauge using the platform OS bean.
+      */
+     public FileDescriptorRatioGauge() {
+         this(ManagementFactory.getOperatingSystemMXBean());
+     }
+ 
+     /**
+      * Creates a new gauge using the given OS bean.
+      *
+      * @param os an {@link OperatingSystemMXBean}
+      */
+     public FileDescriptorRatioGauge(OperatingSystemMXBean os) {
+         this.os = os;
+     }
+ 
+     @Override
+     protected Ratio getRatio() {
+         if (unixOperatingSystemMXBeanExists && os instanceof com.sun.management.UnixOperatingSystemMXBean) {
+             final com.sun.management.UnixOperatingSystemMXBean unixOs = (com.sun.management.UnixOperatingSystemMXBean) os;
+             return Ratio.of(unixOs.getOpenFileDescriptorCount(), unixOs.getMaxFileDescriptorCount());
+         } else {
+             return Ratio.of(Double.NaN, Double.NaN);
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-6.html new file mode 100644 index 0000000000..9a1050c762 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-6.html @@ -0,0 +1,157 @@ + + + + + + + + Coverage Report > GarbageCollectorMetricSet + + + + + + +
+ + +

Coverage Summary for Class: GarbageCollectorMetricSet (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
GarbageCollectorMetricSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import com.codahale.metrics.Gauge;
+ import com.codahale.metrics.Metric;
+ import com.codahale.metrics.MetricSet;
+ 
+ import java.lang.management.GarbageCollectorMXBean;
+ import java.lang.management.ManagementFactory;
+ import java.util.ArrayList;
+ import java.util.Collection;
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.regex.Pattern;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A set of gauges for the counts and elapsed times of garbage collections.
+  */
+ public class GarbageCollectorMetricSet implements MetricSet {
+     private static final Pattern WHITESPACE = Pattern.compile("[\\s]+");
+ 
+     private final List<GarbageCollectorMXBean> garbageCollectors;
+ 
+     /**
+      * Creates a new set of gauges for all discoverable garbage collectors.
+      */
+     public GarbageCollectorMetricSet() {
+         this(ManagementFactory.getGarbageCollectorMXBeans());
+     }
+ 
+     /**
+      * Creates a new set of gauges for the given collection of garbage collectors.
+      *
+      * @param garbageCollectors the garbage collectors
+      */
+     public GarbageCollectorMetricSet(Collection<GarbageCollectorMXBean> garbageCollectors) {
+         this.garbageCollectors = new ArrayList<>(garbageCollectors);
+     }
+ 
+     @Override
+     public Map<String, Metric> getMetrics() {
+         final Map<String, Metric> gauges = new HashMap<>();
+         for (final GarbageCollectorMXBean gc : garbageCollectors) {
+             final String name = WHITESPACE.matcher(gc.getName()).replaceAll("-");
+             gauges.put(name(name, "count"), (Gauge<Long>) gc::getCollectionCount);
+             gauges.put(name(name, "time"), (Gauge<Long>) gc::getCollectionTime);
+         }
+         return Collections.unmodifiableMap(gauges);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-7.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-7.html new file mode 100644 index 0000000000..a71fd3acb3 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-7.html @@ -0,0 +1,165 @@ + + + + + + + + Coverage Report > JmxAttributeGauge + + + + + + +
+ + +

Coverage Summary for Class: JmxAttributeGauge (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (13/13) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import com.codahale.metrics.Gauge;
+ 
+ import java.io.IOException;
+ import javax.management.JMException;
+ import javax.management.MBeanServerConnection;
+ import javax.management.ObjectName;
+ import java.lang.management.ManagementFactory;
+ import java.util.Set;
+ 
+ /**
+  * A {@link Gauge} implementation which queries an {@link MBeanServerConnection} for an attribute of an object.
+  */
+ public class JmxAttributeGauge implements Gauge<Object> {
+     private final MBeanServerConnection mBeanServerConn;
+     private final ObjectName objectName;
+     private final String attributeName;
+ 
+     /**
+      * Creates a new JmxAttributeGauge.
+      *
+      * @param objectName    the name of the object
+      * @param attributeName the name of the object's attribute
+      */
+     public JmxAttributeGauge(ObjectName objectName, String attributeName) {
+         this(ManagementFactory.getPlatformMBeanServer(), objectName, attributeName);
+     }
+ 
+     /**
+      * Creates a new JmxAttributeGauge.
+      *
+      * @param mBeanServerConn the {@link MBeanServerConnection}
+      * @param objectName      the name of the object
+      * @param attributeName   the name of the object's attribute
+      */
+     public JmxAttributeGauge(MBeanServerConnection mBeanServerConn, ObjectName objectName, String attributeName) {
+         this.mBeanServerConn = mBeanServerConn;
+         this.objectName = objectName;
+         this.attributeName = attributeName;
+     }
+ 
+     @Override
+     public Object getValue() {
+         try {
+             return mBeanServerConn.getAttribute(getObjectName(), attributeName);
+         } catch (IOException | JMException e) {
+             return null;
+         }
+     }
+ 
+     private ObjectName getObjectName() throws IOException {
+         if (objectName.isPattern()) {
+             Set<ObjectName> foundNames = mBeanServerConn.queryNames(objectName, null);
+             if (foundNames.size() == 1) {
+                 return foundNames.iterator().next();
+             }
+         }
+         return objectName;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-8.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-8.html new file mode 100644 index 0000000000..a2fe6ef271 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-8.html @@ -0,0 +1,155 @@ + + + + + + + + Coverage Report > JvmAttributeGaugeSet + + + + + + +
+ + +

Coverage Summary for Class: JvmAttributeGaugeSet (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
JvmAttributeGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (12/12) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import com.codahale.metrics.Gauge;
+ import com.codahale.metrics.Metric;
+ import com.codahale.metrics.MetricSet;
+ 
+ import java.lang.management.ManagementFactory;
+ import java.lang.management.RuntimeMXBean;
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.Locale;
+ import java.util.Map;
+ 
+ /**
+  * A set of gauges for the JVM name, vendor, and uptime.
+  */
+ public class JvmAttributeGaugeSet implements MetricSet {
+     private final RuntimeMXBean runtime;
+ 
+     /**
+      * Creates a new set of gauges.
+      */
+     public JvmAttributeGaugeSet() {
+         this(ManagementFactory.getRuntimeMXBean());
+     }
+ 
+     /**
+      * Creates a new set of gauges with the given {@link RuntimeMXBean}.
+      *
+      * @param runtime JVM management interface with access to system properties
+      */
+     public JvmAttributeGaugeSet(RuntimeMXBean runtime) {
+         this.runtime = runtime;
+     }
+ 
+     @Override
+     public Map<String, Metric> getMetrics() {
+         final Map<String, Metric> gauges = new HashMap<>();
+ 
+         gauges.put("name", (Gauge<String>) runtime::getName);
+         gauges.put("vendor", (Gauge<String>) () -> String.format(Locale.US,
+                 "%s %s %s (%s)",
+                 runtime.getVmVendor(),
+                 runtime.getVmName(),
+                 runtime.getVmVersion(),
+                 runtime.getSpecVersion()));
+         gauges.put("uptime", (Gauge<Long>) runtime::getUptime);
+ 
+         return Collections.unmodifiableMap(gauges);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-9.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-9.html new file mode 100644 index 0000000000..b4469883fd --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-9.html @@ -0,0 +1,274 @@ + + + + + + + + Coverage Report > MemoryUsageGaugeSet + + + + + + +
+ + +

Coverage Summary for Class: MemoryUsageGaugeSet (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
MemoryUsageGaugeSet + + 100% + + + (10/10) + + + + 100% + + + (37/37) + +
MemoryUsageGaugeSet$1 + + 100% + + + (2/2) + + + + 100% + + + (3/3) + +
MemoryUsageGaugeSet$2 + + 100% + + + (2/2) + + + + 100% + + + (3/3) + +
MemoryUsageGaugeSet$3 + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
Total + + 100% + + + (16/16) + + + + 100% + + + (47/47) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import com.codahale.metrics.Gauge;
+ import com.codahale.metrics.Metric;
+ import com.codahale.metrics.MetricSet;
+ import com.codahale.metrics.RatioGauge;
+ 
+ import java.lang.management.ManagementFactory;
+ import java.lang.management.MemoryMXBean;
+ import java.lang.management.MemoryPoolMXBean;
+ import java.lang.management.MemoryUsage;
+ import java.util.ArrayList;
+ import java.util.Collection;
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.regex.Pattern;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A set of gauges for JVM memory usage, including stats on heap vs. non-heap memory, plus
+  * GC-specific memory pools.
+  */
+ public class MemoryUsageGaugeSet implements MetricSet {
+     private static final Pattern WHITESPACE = Pattern.compile("[\\s]+");
+ 
+     private final MemoryMXBean mxBean;
+     private final List<MemoryPoolMXBean> memoryPools;
+ 
+     public MemoryUsageGaugeSet() {
+         this(ManagementFactory.getMemoryMXBean(), ManagementFactory.getMemoryPoolMXBeans());
+     }
+ 
+     public MemoryUsageGaugeSet(MemoryMXBean mxBean,
+                                Collection<MemoryPoolMXBean> memoryPools) {
+         this.mxBean = mxBean;
+         this.memoryPools = new ArrayList<>(memoryPools);
+     }
+ 
+     @Override
+     public Map<String, Metric> getMetrics() {
+         final Map<String, Metric> gauges = new HashMap<>();
+ 
+         gauges.put("total.init", (Gauge<Long>) () -> mxBean.getHeapMemoryUsage().getInit() +
+                 mxBean.getNonHeapMemoryUsage().getInit());
+         gauges.put("total.used", (Gauge<Long>) () -> mxBean.getHeapMemoryUsage().getUsed() +
+                 mxBean.getNonHeapMemoryUsage().getUsed());
+         gauges.put("total.max", (Gauge<Long>) () -> mxBean.getNonHeapMemoryUsage().getMax() == -1 ?
+                 -1 : mxBean.getHeapMemoryUsage().getMax() + mxBean.getNonHeapMemoryUsage().getMax());
+         gauges.put("total.committed", (Gauge<Long>) () -> mxBean.getHeapMemoryUsage().getCommitted() +
+                 mxBean.getNonHeapMemoryUsage().getCommitted());
+ 
+         gauges.put("heap.init", (Gauge<Long>) () -> mxBean.getHeapMemoryUsage().getInit());
+         gauges.put("heap.used", (Gauge<Long>) () -> mxBean.getHeapMemoryUsage().getUsed());
+         gauges.put("heap.max", (Gauge<Long>) () -> mxBean.getHeapMemoryUsage().getMax());
+         gauges.put("heap.committed", (Gauge<Long>) () -> mxBean.getHeapMemoryUsage().getCommitted());
+         gauges.put("heap.usage", new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 final MemoryUsage usage = mxBean.getHeapMemoryUsage();
+                 return Ratio.of(usage.getUsed(), usage.getMax());
+             }
+         });
+ 
+         gauges.put("non-heap.init", (Gauge<Long>) () -> mxBean.getNonHeapMemoryUsage().getInit());
+         gauges.put("non-heap.used", (Gauge<Long>) () -> mxBean.getNonHeapMemoryUsage().getUsed());
+         gauges.put("non-heap.max", (Gauge<Long>) () -> mxBean.getNonHeapMemoryUsage().getMax());
+         gauges.put("non-heap.committed", (Gauge<Long>) () -> mxBean.getNonHeapMemoryUsage().getCommitted());
+         gauges.put("non-heap.usage", new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 final MemoryUsage usage = mxBean.getNonHeapMemoryUsage();
+                 return Ratio.of(usage.getUsed(), usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());
+             }
+         });
+ 
+         for (final MemoryPoolMXBean pool : memoryPools) {
+             final String poolName = name("pools", WHITESPACE.matcher(pool.getName()).replaceAll("-"));
+ 
+             gauges.put(name(poolName, "usage"), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     MemoryUsage usage = pool.getUsage();
+                     return Ratio.of(usage.getUsed(),
+                             usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());
+                 }
+             });
+ 
+             gauges.put(name(poolName, "max"), (Gauge<Long>) () -> pool.getUsage().getMax());
+             gauges.put(name(poolName, "used"), (Gauge<Long>) () -> pool.getUsage().getUsed());
+             gauges.put(name(poolName, "committed"), (Gauge<Long>) () -> pool.getUsage().getCommitted());
+ 
+             // Only register GC usage metrics if the memory pool supports usage statistics.
+             if (pool.getCollectionUsage() != null) {
+                 gauges.put(name(poolName, "used-after-gc"), (Gauge<Long>) () ->
+                         pool.getCollectionUsage().getUsed());
+             }
+ 
+             gauges.put(name(poolName, "init"), (Gauge<Long>) () -> pool.getUsage().getInit());
+         }
+ 
+         return Collections.unmodifiableMap(gauges);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-a.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-a.html new file mode 100644 index 0000000000..a5d6def34d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-a.html @@ -0,0 +1,169 @@ + + + + + + + + Coverage Report > ThreadDeadlockDetector + + + + + + +
+ + +

Coverage Summary for Class: ThreadDeadlockDetector (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (20/20) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import java.lang.management.ManagementFactory;
+ import java.lang.management.ThreadInfo;
+ import java.lang.management.ThreadMXBean;
+ import java.util.Collections;
+ import java.util.HashSet;
+ import java.util.Set;
+ 
+ /**
+  * A utility class for detecting deadlocked threads.
+  */
+ public class ThreadDeadlockDetector {
+     private static final int MAX_STACK_TRACE_DEPTH = 100;
+ 
+     private final ThreadMXBean threads;
+ 
+     /**
+      * Creates a new detector.
+      */
+     public ThreadDeadlockDetector() {
+         this(ManagementFactory.getThreadMXBean());
+     }
+ 
+     /**
+      * Creates a new detector using the given {@link ThreadMXBean}.
+      *
+      * @param threads a {@link ThreadMXBean}
+      */
+     public ThreadDeadlockDetector(ThreadMXBean threads) {
+         this.threads = threads;
+     }
+ 
+     /**
+      * Returns a set of diagnostic stack traces for any deadlocked threads. If no threads are
+      * deadlocked, returns an empty set.
+      *
+      * @return stack traces for deadlocked threads or an empty set
+      */
+     public Set<String> getDeadlockedThreads() {
+         final long[] ids = threads.findDeadlockedThreads();
+         if (ids != null) {
+             final Set<String> deadlocks = new HashSet<>();
+             for (ThreadInfo info : threads.getThreadInfo(ids, MAX_STACK_TRACE_DEPTH)) {
+                 final StringBuilder stackTrace = new StringBuilder();
+                 for (StackTraceElement element : info.getStackTrace()) {
+                     stackTrace.append("\t at ")
+                             .append(element.toString())
+                             .append(String.format("%n"));
+                 }
+ 
+                 deadlocks.add(
+                         String.format("%s locked on %s (owned by %s):%n%s",
+                                 info.getThreadName(),
+                                 info.getLockName(),
+                                 info.getLockOwnerName(),
+                                 stackTrace.toString()
+                         )
+                 );
+             }
+             return Collections.unmodifiableSet(deadlocks);
+         }
+         return Collections.emptySet();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-b.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-b.html new file mode 100644 index 0000000000..887eeae2b5 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-b.html @@ -0,0 +1,217 @@ + + + + + + + + Coverage Report > ThreadDump + + + + + + +
+ + +

Coverage Summary for Class: ThreadDump (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ThreadDump + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 83.3% + + + (40/48) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import java.io.OutputStream;
+ import java.io.OutputStreamWriter;
+ import java.io.PrintWriter;
+ import java.lang.management.LockInfo;
+ import java.lang.management.MonitorInfo;
+ import java.lang.management.ThreadInfo;
+ import java.lang.management.ThreadMXBean;
+ 
+ import static java.nio.charset.StandardCharsets.UTF_8;
+ 
+ 
+ /**
+  * A convenience class for getting a thread dump.
+  */
+ public class ThreadDump {
+ 
+     private final ThreadMXBean threadMXBean;
+ 
+     public ThreadDump(ThreadMXBean threadMXBean) {
+         this.threadMXBean = threadMXBean;
+     }
+ 
+     /**
+      * Dumps all of the threads' current information, including synchronization, to an output stream.
+      *
+      * @param out an output stream
+      */
+     public void dump(OutputStream out) {
+         dump(true, true, out);
+     }
+ 
+     /**
+      * Dumps all of the threads' current information, optionally including synchronization, to an output stream.
+      *
+      * Having control over including synchronization info allows using this method (and its wrappers, i.e.
+      * ThreadDumpServlet) in environments where getting object monitor and/or ownable synchronizer usage is not
+      * supported. It can also speed things up.
+      *
+      * See {@link ThreadMXBean#dumpAllThreads(boolean, boolean)}
+      *
+      * @param lockedMonitors dump all locked monitors if true
+      * @param lockedSynchronizers dump all locked ownable synchronizers if true
+      * @param out an output stream
+      */
+     public void dump(boolean lockedMonitors, boolean lockedSynchronizers, OutputStream out) {
+         final ThreadInfo[] threads = this.threadMXBean.dumpAllThreads(lockedMonitors, lockedSynchronizers);
+         final PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, UTF_8));
+ 
+         for (int ti = threads.length - 1; ti >= 0; ti--) {
+             final ThreadInfo t = threads[ti];
+             writer.printf("\"%s\" id=%d state=%s",
+                     t.getThreadName(),
+                     t.getThreadId(),
+                     t.getThreadState());
+             final LockInfo lock = t.getLockInfo();
+             if (lock != null && t.getThreadState() != Thread.State.BLOCKED) {
+                 writer.printf("%n    - waiting on <0x%08x> (a %s)",
+                         lock.getIdentityHashCode(),
+                         lock.getClassName());
+                 writer.printf("%n    - locked <0x%08x> (a %s)",
+                         lock.getIdentityHashCode(),
+                         lock.getClassName());
+             } else if (lock != null && t.getThreadState() == Thread.State.BLOCKED) {
+                 writer.printf("%n    - waiting to lock <0x%08x> (a %s)",
+                         lock.getIdentityHashCode(),
+                         lock.getClassName());
+             }
+ 
+             if (t.isSuspended()) {
+                 writer.print(" (suspended)");
+             }
+ 
+             if (t.isInNative()) {
+                 writer.print(" (running in native)");
+             }
+ 
+             writer.println();
+             if (t.getLockOwnerName() != null) {
+                 writer.printf("     owned by %s id=%d%n", t.getLockOwnerName(), t.getLockOwnerId());
+             }
+ 
+             final StackTraceElement[] elements = t.getStackTrace();
+             final MonitorInfo[] monitors = t.getLockedMonitors();
+ 
+             for (int i = 0; i < elements.length; i++) {
+                 final StackTraceElement element = elements[i];
+                 writer.printf("    at %s%n", element);
+                 for (int j = 1; j < monitors.length; j++) {
+                     final MonitorInfo monitor = monitors[j];
+                     if (monitor.getLockedStackDepth() == i) {
+                         writer.printf("      - locked %s%n", monitor);
+                     }
+                 }
+             }
+             writer.println();
+ 
+             final LockInfo[] locks = t.getLockedSynchronizers();
+             if (locks.length > 0) {
+                 writer.printf("    Locked synchronizers: count = %d%n", locks.length);
+                 for (LockInfo l : locks) {
+                     writer.printf("      - %s%n", l);
+                 }
+                 writer.println();
+             }
+         }
+ 
+         writer.println();
+         writer.flush();
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-c.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-c.html new file mode 100644 index 0000000000..365b02e7ca --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-c.html @@ -0,0 +1,185 @@ + + + + + + + + Coverage Report > ThreadStatesGaugeSet + + + + + + +
+ + +

Coverage Summary for Class: ThreadStatesGaugeSet (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ThreadStatesGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (22/22) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import com.codahale.metrics.Gauge;
+ import com.codahale.metrics.Metric;
+ import com.codahale.metrics.MetricSet;
+ 
+ import java.lang.management.ManagementFactory;
+ import java.lang.management.ThreadInfo;
+ import java.lang.management.ThreadMXBean;
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.Map;
+ import java.util.Set;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A set of gauges for the number of threads in their various states and deadlock detection.
+  */
+ public class ThreadStatesGaugeSet implements MetricSet {
+ 
+     // do not compute stack traces.
+     private final static int STACK_TRACE_DEPTH = 0;
+ 
+     private final ThreadMXBean threads;
+     private final ThreadDeadlockDetector deadlockDetector;
+ 
+     /**
+      * Creates a new set of gauges using the default MXBeans.
+      */
+     public ThreadStatesGaugeSet() {
+         this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector());
+     }
+ 
+     /**
+      * Creates a new set of gauges using the given MXBean and detector.
+      *
+      * @param threads          a thread MXBean
+      * @param deadlockDetector a deadlock detector
+      */
+     public ThreadStatesGaugeSet(ThreadMXBean threads,
+                                 ThreadDeadlockDetector deadlockDetector) {
+         this.threads = threads;
+         this.deadlockDetector = deadlockDetector;
+     }
+ 
+     @Override
+     public Map<String, Metric> getMetrics() {
+         final Map<String, Metric> gauges = new HashMap<>();
+ 
+         for (final Thread.State state : Thread.State.values()) {
+             gauges.put(name(state.toString().toLowerCase(), "count"),
+                     (Gauge<Object>) () -> getThreadCount(state));
+         }
+ 
+         gauges.put("count", (Gauge<Integer>) threads::getThreadCount);
+         gauges.put("daemon.count", (Gauge<Integer>) threads::getDaemonThreadCount);
+         gauges.put("peak.count", (Gauge<Integer>) threads::getPeakThreadCount);
+         gauges.put("total_started.count", (Gauge<Long>) threads::getTotalStartedThreadCount);
+         gauges.put("deadlock.count", (Gauge<Integer>) () -> deadlockDetector.getDeadlockedThreads().size());
+         gauges.put("deadlocks", (Gauge<Set<String>>) deadlockDetector::getDeadlockedThreads);
+ 
+         return Collections.unmodifiableMap(gauges);
+     }
+ 
+     private int getThreadCount(Thread.State state) {
+         final ThreadInfo[] allThreads = getThreadInfo();
+         int count = 0;
+         for (ThreadInfo info : allThreads) {
+             if (info != null && info.getThreadState() == state) {
+                 count++;
+             }
+         }
+         return count;
+     }
+ 
+     ThreadInfo[] getThreadInfo() {
+         return threads.getThreadInfo(threads.getAllThreadIds(), STACK_TRACE_DEPTH);
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index.html new file mode 100644 index 0000000000..dbc57624d2 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-19/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..fc4ace51f2 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..18d803126e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..21262fd872 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..7f47c2bf77 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..aa1eae798f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..8d6b3175ad --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..053ea88d3b --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..c8b3075dfe --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..5328245106 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/sources/source-1.html new file mode 100644 index 0000000000..56a47acc3e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-19/sources/source-1.html @@ -0,0 +1,268 @@ + + + + + + + + Coverage Report > InstrumentedAppender + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.log4j2)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedAppender + + 87.5% + + + (7/8) + + + + 96.7% + + + (29/30) + +
InstrumentedAppender$1 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
Total + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + +
+ package com.codahale.metrics.log4j2;
+ 
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.SharedMetricRegistries;
+ import org.apache.logging.log4j.core.Appender;
+ import org.apache.logging.log4j.core.Filter;
+ import org.apache.logging.log4j.core.Layout;
+ import org.apache.logging.log4j.core.LogEvent;
+ import org.apache.logging.log4j.core.appender.AbstractAppender;
+ import org.apache.logging.log4j.core.config.plugins.Plugin;
+ import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
+ import org.apache.logging.log4j.core.config.plugins.PluginFactory;
+ 
+ import java.io.Serializable;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A Log4J 2.x {@link Appender} which has seven meters, one for each logging level and one for the total
+  * number of statements being logged. The meter names are the logging level names appended to the
+  * name of the appender.
+  */
+ @Plugin(name = "MetricsAppender", category = "Core", elementType = "appender")
+ public class InstrumentedAppender extends AbstractAppender {
+ 
+     private transient final MetricRegistry registry;
+ 
+     private transient Meter all;
+     private transient Meter trace;
+     private transient Meter debug;
+     private transient Meter info;
+     private transient Meter warn;
+     private transient Meter error;
+     private transient Meter fatal;
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      *
+      * @param registryName     the name of the registry in {@link SharedMetricRegistries}
+      * @param filter           The Filter to associate with the Appender.
+      * @param layout           The layout to use to format the event.
+      * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
+      *                         logged and then passed to the application.
+      */
+     public InstrumentedAppender(String registryName, Filter filter, Layout<? extends Serializable> layout, boolean ignoreExceptions) {
+         this(SharedMetricRegistries.getOrCreate(registryName), filter, layout, ignoreExceptions);
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      *
+      * @param registryName the name of the registry in {@link SharedMetricRegistries}
+      */
+     public InstrumentedAppender(String registryName) {
+         this(SharedMetricRegistries.getOrCreate(registryName));
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry.
+      *
+      * @param registry the metric registry
+      */
+     public InstrumentedAppender(MetricRegistry registry) {
+         this(registry, null, null, true);
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry.
+      *
+      * @param registry         the metric registry
+      * @param filter           The Filter to associate with the Appender.
+      * @param layout           The layout to use to format the event.
+      * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
+      *                         logged and then passed to the application.
+      */
+     public InstrumentedAppender(MetricRegistry registry, Filter filter, Layout<? extends Serializable> layout, boolean ignoreExceptions) {
+         super(name(Appender.class), filter, layout, ignoreExceptions);
+         this.registry = registry;
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given appender name and registry.
+      *
+      * @param appenderName The name of the appender.
+      * @param registry     the metric registry
+      */
+     public InstrumentedAppender(String appenderName, MetricRegistry registry) {
+         super(appenderName, null, null, true);
+         this.registry = registry;
+     }
+ 
+     @PluginFactory
+     public static InstrumentedAppender createAppender(
+             @PluginAttribute("name") String name,
+             @PluginAttribute(value = "registryName", defaultString = "log4j2Metrics") String registry) {
+         return new InstrumentedAppender(name, SharedMetricRegistries.getOrCreate(registry));
+     }
+ 
+     @Override
+     public void start() {
+         this.all = registry.meter(name(getName(), "all"));
+         this.trace = registry.meter(name(getName(), "trace"));
+         this.debug = registry.meter(name(getName(), "debug"));
+         this.info = registry.meter(name(getName(), "info"));
+         this.warn = registry.meter(name(getName(), "warn"));
+         this.error = registry.meter(name(getName(), "error"));
+         this.fatal = registry.meter(name(getName(), "fatal"));
+         super.start();
+     }
+ 
+     @Override
+     public void append(LogEvent event) {
+         all.mark();
+         switch (event.getLevel().getStandardLevel()) {
+             case TRACE:
+                 trace.mark();
+                 break;
+             case DEBUG:
+                 debug.mark();
+                 break;
+             case INFO:
+                 info.mark();
+                 break;
+             case WARN:
+                 warn.mark();
+                 break;
+             case ERROR:
+                 error.mark();
+                 break;
+             case FATAL:
+                 fatal.mark();
+                 break;
+             default:
+                 break;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index.html new file mode 100644 index 0000000000..a99e348bd1 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..c5f5b85d62 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..7c0505aa90 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..e003c00082 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..c2050704b2 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..8b5f2fba70 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..8fe6af8c05 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..e1d09dfde9 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..e041b3d60a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..57ab2c1a2a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/sources/source-1.html new file mode 100644 index 0000000000..9abe2bceda --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1a/sources/source-1.html @@ -0,0 +1,195 @@ + + + + + + + + Coverage Report > InstrumentedAppender + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.logback)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + +
+ package com.codahale.metrics.logback;
+ 
+ import ch.qos.logback.classic.Level;
+ import ch.qos.logback.classic.spi.ILoggingEvent;
+ import ch.qos.logback.core.Appender;
+ import ch.qos.logback.core.UnsynchronizedAppenderBase;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.SharedMetricRegistries;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
+  * number of statements being logged. The meter names are the logging level names appended to the
+  * name of the appender.
+  */
+ public class InstrumentedAppender extends UnsynchronizedAppenderBase<ILoggingEvent> {
+     private final MetricRegistry registry;
+     public static final String DEFAULT_REGISTRY = "logback-metrics";
+     public static final String REGISTRY_PROPERTY_NAME = "metrics.logback.registry";
+ 
+     private Meter all;
+     private Meter trace;
+     private Meter debug;
+     private Meter info;
+     private Meter warn;
+     private Meter error;
+ 
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      */
+     public InstrumentedAppender() {
+         this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      *
+      * @param registryName the name of the registry in {@link SharedMetricRegistries}
+      */
+     public InstrumentedAppender(String registryName) {
+         this(SharedMetricRegistries.getOrCreate(registryName));
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry.
+      *
+      * @param registry the metric registry
+      */
+     public InstrumentedAppender(MetricRegistry registry) {
+         this.registry = registry;
+         setName(Appender.class.getName());
+     }
+ 
+     @Override
+     public void start() {
+         this.all = registry.meter(name(getName(), "all"));
+         this.trace = registry.meter(name(getName(), "trace"));
+         this.debug = registry.meter(name(getName(), "debug"));
+         this.info = registry.meter(name(getName(), "info"));
+         this.warn = registry.meter(name(getName(), "warn"));
+         this.error = registry.meter(name(getName(), "error"));
+         super.start();
+     }
+ 
+     @Override
+     protected void append(ILoggingEvent event) {
+         all.mark();
+         switch (event.getLevel().toInt()) {
+             case Level.TRACE_INT:
+                 trace.mark();
+                 break;
+             case Level.DEBUG_INT:
+                 debug.mark();
+                 break;
+             case Level.INFO_INT:
+                 info.mark();
+                 break;
+             case Level.WARN_INT:
+                 warn.mark();
+                 break;
+             case Level.ERROR_INT:
+                 error.mark();
+                 break;
+             default:
+                 break;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index.html new file mode 100644 index 0000000000..08f2965c76 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..fed280ec71 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..a2542f3cde --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..4ff13824ff --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..23d653ab91 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..60d541774c --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..4d542648fd --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..cae1056d52 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..a86ff0e298 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..216e805f8a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-1.html new file mode 100644 index 0000000000..cd85b10449 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-1.html @@ -0,0 +1,387 @@ + + + + + + + + Coverage Report > AbstractInstrumentedFilter + + + + + + +
+ + +

Coverage Summary for Class: AbstractInstrumentedFilter (com.codahale.metrics.servlet)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/7) + + + + 0% + + + (0/45) + +
AbstractInstrumentedFilter$AsyncResultListener + + 0% + + + (0/5) + + + + 0% + + + (0/2) + + + + 0% + + + (0/17) + +
AbstractInstrumentedFilter$StatusExposingServletResponse + + 0% + + + (0/6) + + + + 0% + + + (0/11) + +
Total + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
+ +
+
+ + +
+ package com.codahale.metrics.servlet;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ 
+ import javax.servlet.AsyncEvent;
+ import javax.servlet.AsyncListener;
+ import javax.servlet.Filter;
+ import javax.servlet.FilterChain;
+ import javax.servlet.FilterConfig;
+ import javax.servlet.ServletException;
+ import javax.servlet.ServletRequest;
+ import javax.servlet.ServletResponse;
+ import javax.servlet.http.HttpServletResponse;
+ import javax.servlet.http.HttpServletResponseWrapper;
+ import java.io.IOException;
+ import java.util.Map;
+ import java.util.Map.Entry;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * {@link Filter} implementation which captures request information and a breakdown of the response
+  * codes being returned.
+  */
+ public abstract class AbstractInstrumentedFilter implements Filter {
+     static final String METRIC_PREFIX = "name-prefix";
+ 
+     private final String otherMetricName;
+     private final Map<Integer, String> meterNamesByStatusCode;
+     private final String registryAttribute;
+ 
+     // initialized after call of init method
+     private ConcurrentMap<Integer, Meter> metersByStatusCode;
+     private Meter otherMeter;
+     private Meter timeoutsMeter;
+     private Meter errorsMeter;
+     private Counter activeRequests;
+     private Timer requestTimer;
+ 
+ 
+     /**
+      * Creates a new instance of the filter.
+      *
+      * @param registryAttribute      the attribute used to look up the metrics registry in the
+      *                               servlet context
+      * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
+      *                               interested in.
+      * @param otherMetricName        The name used for the catch-all meter.
+      */
+     protected AbstractInstrumentedFilter(String registryAttribute,
+                                          Map<Integer, String> meterNamesByStatusCode,
+                                          String otherMetricName) {
+         this.registryAttribute = registryAttribute;
+         this.otherMetricName = otherMetricName;
+         this.meterNamesByStatusCode = meterNamesByStatusCode;
+     }
+ 
+     @Override
+     public void init(FilterConfig filterConfig) throws ServletException {
+         final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);
+ 
+         String metricName = filterConfig.getInitParameter(METRIC_PREFIX);
+         if (metricName == null || metricName.isEmpty()) {
+             metricName = getClass().getName();
+         }
+ 
+         this.metersByStatusCode = new ConcurrentHashMap<>(meterNamesByStatusCode.size());
+         for (Entry<Integer, String> entry : meterNamesByStatusCode.entrySet()) {
+             metersByStatusCode.put(entry.getKey(),
+                     metricsRegistry.meter(name(metricName, entry.getValue())));
+         }
+         this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));
+         this.timeoutsMeter = metricsRegistry.meter(name(metricName, "timeouts"));
+         this.errorsMeter = metricsRegistry.meter(name(metricName, "errors"));
+         this.activeRequests = metricsRegistry.counter(name(metricName, "activeRequests"));
+         this.requestTimer = metricsRegistry.timer(name(metricName, "requests"));
+ 
+     }
+ 
+     private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
+         final MetricRegistry metricsRegistry;
+ 
+         final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);
+         if (o instanceof MetricRegistry) {
+             metricsRegistry = (MetricRegistry) o;
+         } else {
+             metricsRegistry = new MetricRegistry();
+         }
+         return metricsRegistry;
+     }
+ 
+     @Override
+     public void destroy() {
+ 
+     }
+ 
+     @Override
+     public void doFilter(ServletRequest request,
+                          ServletResponse response,
+                          FilterChain chain) throws IOException, ServletException {
+         final StatusExposingServletResponse wrappedResponse =
+                 new StatusExposingServletResponse((HttpServletResponse) response);
+         activeRequests.inc();
+         final Timer.Context context = requestTimer.time();
+         boolean error = false;
+         try {
+             chain.doFilter(request, wrappedResponse);
+         } catch (IOException | RuntimeException | ServletException e) {
+             error = true;
+             throw e;
+         } finally {
+             if (!error && request.isAsyncStarted()) {
+                 request.getAsyncContext().addListener(new AsyncResultListener(context));
+             } else {
+                 context.stop();
+                 activeRequests.dec();
+                 if (error) {
+                     errorsMeter.mark();
+                 } else {
+                     markMeterForStatusCode(wrappedResponse.getStatus());
+                 }
+             }
+         }
+     }
+ 
+     private void markMeterForStatusCode(int status) {
+         final Meter metric = metersByStatusCode.get(status);
+         if (metric != null) {
+             metric.mark();
+         } else {
+             otherMeter.mark();
+         }
+     }
+ 
+     private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
+         // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
+         private int httpStatus = 200;
+ 
+         public StatusExposingServletResponse(HttpServletResponse response) {
+             super(response);
+         }
+ 
+         @Override
+         public void sendError(int sc) throws IOException {
+             httpStatus = sc;
+             super.sendError(sc);
+         }
+ 
+         @Override
+         public void sendError(int sc, String msg) throws IOException {
+             httpStatus = sc;
+             super.sendError(sc, msg);
+         }
+ 
+         @Override
+         public void setStatus(int sc) {
+             httpStatus = sc;
+             super.setStatus(sc);
+         }
+ 
+         @Override
+         @SuppressWarnings("deprecation")
+         public void setStatus(int sc, String sm) {
+             httpStatus = sc;
+             super.setStatus(sc, sm);
+         }
+ 
+         @Override
+         public int getStatus() {
+             return httpStatus;
+         }
+     }
+ 
+     private class AsyncResultListener implements AsyncListener {
+         private Timer.Context context;
+         private boolean done = false;
+ 
+         public AsyncResultListener(Timer.Context context) {
+             this.context = context;
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             if (!done) {
+                 HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();
+                 context.stop();
+                 activeRequests.dec();
+                 markMeterForStatusCode(suppliedResponse.getStatus());
+             }
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             context.stop();
+             activeRequests.dec();
+             timeoutsMeter.mark();
+             done = true;
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+             context.stop();
+             activeRequests.dec();
+             errorsMeter.mark();
+             done = true;
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+ 
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-2.html new file mode 100644 index 0000000000..b66c6e749f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-2.html @@ -0,0 +1,152 @@ + + + + + + + + Coverage Report > InstrumentedFilter + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedFilter (com.codahale.metrics.servlet)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
+ +
+
+ + +
+ package com.codahale.metrics.servlet;
+ 
+ import java.util.HashMap;
+ import java.util.Map;
+ 
+ /**
+  * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
+  * to capture information about. <p>Use it in your servlet.xml like this:<p>
+  * <pre>{@code
+  * <filter>
+  *     <filter-name>instrumentedFilter</filter-name>
+  *     <filter-class>com.codahale.metrics.servlet.InstrumentedFilter</filter-class>
+  * </filter>
+  * <filter-mapping>
+  *     <filter-name>instrumentedFilter</filter-name>
+  *     <url-pattern>/*</url-pattern>
+  * </filter-mapping>
+  * }</pre>
+  */
+ public class InstrumentedFilter extends AbstractInstrumentedFilter {
+     public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + ".registry";
+ 
+     private static final String NAME_PREFIX = "responseCodes.";
+     private static final int OK = 200;
+     private static final int CREATED = 201;
+     private static final int NO_CONTENT = 204;
+     private static final int BAD_REQUEST = 400;
+     private static final int NOT_FOUND = 404;
+     private static final int SERVER_ERROR = 500;
+ 
+     /**
+      * Creates a new instance of the filter.
+      */
+     public InstrumentedFilter() {
+         super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + "other");
+     }
+ 
+     private static Map<Integer, String> createMeterNamesByStatusCode() {
+         final Map<Integer, String> meterNamesByStatusCode = new HashMap<>(6);
+         meterNamesByStatusCode.put(OK, NAME_PREFIX + "ok");
+         meterNamesByStatusCode.put(CREATED, NAME_PREFIX + "created");
+         meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + "noContent");
+         meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + "badRequest");
+         meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + "notFound");
+         meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + "serverError");
+         return meterNamesByStatusCode;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-3.html new file mode 100644 index 0000000000..d6ca81b1b3 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-3.html @@ -0,0 +1,131 @@ + + + + + + + + Coverage Report > InstrumentedFilterContextListener + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedFilterContextListener (com.codahale.metrics.servlet)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+
+ + +
+ package com.codahale.metrics.servlet;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ 
+ import javax.servlet.ServletContextEvent;
+ import javax.servlet.ServletContextListener;
+ 
+ /**
+  * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
+  * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
+  * application.
+  */
+ public abstract class InstrumentedFilterContextListener implements ServletContextListener {
+     /**
+      * @return the {@link MetricRegistry} to inject into the servlet context.
+      */
+     protected abstract MetricRegistry getMetricRegistry();
+ 
+     @Override
+     public void contextInitialized(ServletContextEvent sce) {
+         sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());
+     }
+ 
+     @Override
+     public void contextDestroyed(ServletContextEvent sce) {
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index.html new file mode 100644 index 0000000000..f86cef87c7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..aa581c5c6a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..d76fdc7412 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..615054a179 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..9e38816a24 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..1be0471788 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..c0bc2bd4b5 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..592c3589e1 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..b6b57daee5 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..c95cf65403 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-1.html new file mode 100644 index 0000000000..013ccff6d6 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-1.html @@ -0,0 +1,293 @@ + + + + + + + + Coverage Report > AdminServlet + + + + + + +
+ + +

Coverage Summary for Class: AdminServlet (com.codahale.metrics.servlets)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
+ +
+
+ + +
+ package com.codahale.metrics.servlets;
+ 
+ import javax.servlet.ServletConfig;
+ import javax.servlet.ServletContext;
+ import javax.servlet.ServletException;
+ import javax.servlet.http.HttpServlet;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ import java.io.IOException;
+ import java.io.PrintWriter;
+ import java.text.MessageFormat;
+ 
+ public class AdminServlet extends HttpServlet {
+     public static final String DEFAULT_HEALTHCHECK_URI = "/healthcheck";
+     public static final String DEFAULT_METRICS_URI = "/metrics";
+     public static final String DEFAULT_PING_URI = "/ping";
+     public static final String DEFAULT_THREADS_URI = "/threads";
+     public static final String DEFAULT_CPU_PROFILE_URI = "/pprof";
+ 
+     public static final String METRICS_ENABLED_PARAM_KEY = "metrics-enabled";
+     public static final String METRICS_URI_PARAM_KEY = "metrics-uri";
+     public static final String PING_ENABLED_PARAM_KEY = "ping-enabled";
+     public static final String PING_URI_PARAM_KEY = "ping-uri";
+     public static final String THREADS_ENABLED_PARAM_KEY = "threads-enabled";
+     public static final String THREADS_URI_PARAM_KEY = "threads-uri";
+     public static final String HEALTHCHECK_ENABLED_PARAM_KEY = "healthcheck-enabled";
+     public static final String HEALTHCHECK_URI_PARAM_KEY = "healthcheck-uri";
+     public static final String SERVICE_NAME_PARAM_KEY = "service-name";
+     public static final String CPU_PROFILE_ENABLED_PARAM_KEY = "cpu-profile-enabled";
+     public static final String CPU_PROFILE_URI_PARAM_KEY = "cpu-profile-uri";
+ 
+     private static final String BASE_TEMPLATE =
+             "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"%n" +
+                     "        \"http://www.w3.org/TR/html4/loose.dtd\">%n" +
+                     "<html>%n" +
+                     "<head>%n" +
+                     "  <title>Metrics{10}</title>%n" +
+                     "</head>%n" +
+                     "<body>%n" +
+                     "  <h1>Operational Menu{10}</h1>%n" +
+                     "  <ul>%n" +
+                     "%s" +
+                     "  </ul>%n" +
+                     "</body>%n" +
+                     "</html>";
+     private static final String METRICS_LINK = "    <li><a href=\"{0}{1}?pretty=true\">Metrics</a></li>%n";
+     private static final String PING_LINK = "    <li><a href=\"{2}{3}\">Ping</a></li>%n" ;
+     private static final String THREADS_LINK = "    <li><a href=\"{4}{5}\">Threads</a></li>%n" ;
+     private static final String HEALTHCHECK_LINK = "    <li><a href=\"{6}{7}?pretty=true\">Healthcheck</a></li>%n" ;
+     private static final String CPU_PROFILE_LINK = "    <li><a href=\"{8}{9}\">CPU Profile</a></li>%n" +
+             "    <li><a href=\"{8}{9}?state=blocked\">CPU Contention</a></li>%n";
+ 
+ 
+     private static final String CONTENT_TYPE = "text/html";
+     private static final long serialVersionUID = -2850794040708785318L;
+ 
+     private transient HealthCheckServlet healthCheckServlet;
+     private transient MetricsServlet metricsServlet;
+     private transient PingServlet pingServlet;
+     private transient ThreadDumpServlet threadDumpServlet;
+     private transient CpuProfileServlet cpuProfileServlet;
+     private transient boolean metricsEnabled;
+     private transient String metricsUri;
+     private transient boolean pingEnabled;
+     private transient String pingUri;
+     private transient boolean threadsEnabled;
+     private transient String threadsUri;
+     private transient boolean healthcheckEnabled;
+     private transient String healthcheckUri;
+     private transient boolean cpuProfileEnabled;
+     private transient String cpuProfileUri;
+     private transient String serviceName;
+     private transient String pageContentTemplate;
+ 
+     @Override
+     public void init(ServletConfig config) throws ServletException {
+         super.init(config);
+ 
+         final ServletContext context = config.getServletContext();
+         final StringBuilder servletLinks = new StringBuilder();
+ 
+         this.metricsEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), "true"));
+         if (this.metricsEnabled) {
+             servletLinks.append(METRICS_LINK);
+         }
+         this.metricsServlet = new MetricsServlet();
+         metricsServlet.init(config);
+ 
+         this.pingEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), "true"));
+         if (this.pingEnabled) {
+             servletLinks.append(PING_LINK);
+         }
+         this.pingServlet = new PingServlet();
+         pingServlet.init(config);
+ 
+         this.threadsEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), "true"));
+         if (this.threadsEnabled) {
+             servletLinks.append(THREADS_LINK);
+         }
+         this.threadDumpServlet = new ThreadDumpServlet();
+         threadDumpServlet.init(config);
+ 
+         this.healthcheckEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), "true"));
+         if (this.healthcheckEnabled) {
+             servletLinks.append(HEALTHCHECK_LINK);
+         }
+         this.healthCheckServlet = new HealthCheckServlet();
+         healthCheckServlet.init(config);
+ 
+         this.cpuProfileEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), "true"));
+         if (this.cpuProfileEnabled) {
+             servletLinks.append(CPU_PROFILE_LINK);
+         }
+         this.cpuProfileServlet = new CpuProfileServlet();
+         cpuProfileServlet.init(config);
+ 
+         pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));
+ 
+         this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);
+         this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);
+         this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);
+         this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);
+         this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);
+         this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);
+     }
+ 
+     @Override
+     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+         final String path = req.getContextPath() + req.getServletPath();
+ 
+         resp.setStatus(HttpServletResponse.SC_OK);
+         resp.setHeader("Cache-Control", "must-revalidate,no-cache,no-store");
+         resp.setContentType(CONTENT_TYPE);
+         try (PrintWriter writer = resp.getWriter()) {
+             writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,
+                     threadsUri, path, healthcheckUri, path, cpuProfileUri,
+                     serviceName == null ? "" : " (" + serviceName + ")"));
+         }
+     }
+ 
+     @Override
+     protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+         final String uri = req.getPathInfo();
+         if (uri == null || uri.equals("/")) {
+             super.service(req, resp);
+         } else if (uri.equals(healthcheckUri)) {
+             if (healthcheckEnabled) {
+                 healthCheckServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else if (uri.startsWith(metricsUri)) {
+             if (metricsEnabled) {
+                 metricsServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else if (uri.equals(pingUri)) {
+             if (pingEnabled) {
+                 pingServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else if (uri.equals(threadsUri)) {
+             if (threadsEnabled) {
+                 threadDumpServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else if (uri.equals(cpuProfileUri)) {
+             if (cpuProfileEnabled) {
+                 cpuProfileServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else {
+             resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+         }
+     }
+ 
+     private static String getParam(String initParam, String defaultValue) {
+         return initParam == null ? defaultValue : initParam;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-2.html new file mode 100644 index 0000000000..94d81a0213 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-2.html @@ -0,0 +1,183 @@ + + + + + + + + Coverage Report > CpuProfileServlet + + + + + + +
+ + +

Coverage Summary for Class: CpuProfileServlet (com.codahale.metrics.servlets)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
+ +
+
+ + +
+ package com.codahale.metrics.servlets;
+ 
+ import java.io.IOException;
+ import java.io.OutputStream;
+ import java.time.Duration;
+ import java.util.concurrent.locks.Lock;
+ import java.util.concurrent.locks.ReentrantLock;
+ import javax.servlet.ServletException;
+ import javax.servlet.http.HttpServlet;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ 
+ import com.papertrail.profiler.CpuProfile;
+ 
+ /**
+  * An HTTP servlets which outputs a <a href="https://github.com/gperftools/gperftools">pprof</a> parseable response.
+  */
+ public class CpuProfileServlet extends HttpServlet {
+     private static final long serialVersionUID = -668666696530287501L;
+     private static final String CONTENT_TYPE = "pprof/raw";
+     private static final String CACHE_CONTROL = "Cache-Control";
+     private static final String NO_CACHE = "must-revalidate,no-cache,no-store";
+     private final Lock lock = new ReentrantLock();
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+ 
+         int duration = 10;
+         if (req.getParameter("duration") != null) {
+             try {
+                 duration = Integer.parseInt(req.getParameter("duration"));
+             } catch (NumberFormatException e) {
+                 duration = 10;
+             }
+         }
+ 
+         int frequency = 100;
+         if (req.getParameter("frequency") != null) {
+             try {
+                 frequency = Integer.parseInt(req.getParameter("frequency"));
+                 frequency = Math.min(Math.max(frequency, 1), 1000);
+             } catch (NumberFormatException e) {
+                 frequency = 100;
+             }
+         }
+ 
+         final Thread.State state;
+         if ("blocked".equalsIgnoreCase(req.getParameter("state"))) {
+             state = Thread.State.BLOCKED;
+         } else {
+             state = Thread.State.RUNNABLE;
+         }
+ 
+         resp.setStatus(HttpServletResponse.SC_OK);
+         resp.setHeader(CACHE_CONTROL, NO_CACHE);
+         resp.setContentType(CONTENT_TYPE);
+         try (OutputStream output = resp.getOutputStream()) {
+             doProfile(output, duration, frequency, state);
+         }
+     }
+ 
+     protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
+         if (lock.tryLock()) {
+             try {
+                 CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),
+                         frequency, state);
+                 if (profile == null) {
+                     throw new RuntimeException("could not create CpuProfile");
+                 }
+                 profile.writeGoogleProfile(out);
+                 return;
+             } finally {
+                 lock.unlock();
+             }
+         }
+         throw new RuntimeException("Only one profile request may be active at a time");
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-3.html new file mode 100644 index 0000000000..10c3f4c66d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-3.html @@ -0,0 +1,325 @@ + + + + + + + + Coverage Report > HealthCheckServlet + + + + + + +
+ + +

Coverage Summary for Class: HealthCheckServlet (com.codahale.metrics.servlets)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
HealthCheckServlet + + 100% + + + (10/10) + + + + 96.7% + + + (59/61) + +
HealthCheckServlet$ContextListener + + 0% + + + (0/6) + + + + 0% + + + (0/9) + +
Total + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
+ +
+
+ + +
+ package com.codahale.metrics.servlets;
+ 
+ import com.codahale.metrics.health.HealthCheck;
+ import com.codahale.metrics.health.HealthCheckFilter;
+ import com.codahale.metrics.health.HealthCheckRegistry;
+ import com.codahale.metrics.json.HealthCheckModule;
+ import com.fasterxml.jackson.databind.ObjectMapper;
+ import com.fasterxml.jackson.databind.ObjectWriter;
+ 
+ import javax.servlet.ServletConfig;
+ import javax.servlet.ServletContext;
+ import javax.servlet.ServletContextEvent;
+ import javax.servlet.ServletContextListener;
+ import javax.servlet.ServletException;
+ import javax.servlet.http.HttpServlet;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ import java.io.IOException;
+ import java.io.OutputStream;
+ import java.util.Map;
+ import java.util.SortedMap;
+ import java.util.concurrent.ExecutorService;
+ 
+ public class HealthCheckServlet extends HttpServlet {
+     public static abstract class ContextListener implements ServletContextListener {
+         /**
+          * @return the {@link HealthCheckRegistry} to inject into the servlet context.
+          */
+         protected abstract HealthCheckRegistry getHealthCheckRegistry();
+ 
+         /**
+          * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
+          * if the health checks should be run in the servlet worker thread.
+          */
+         protected ExecutorService getExecutorService() {
+             // don't use a thread pool by default
+             return null;
+         }
+ 
+         /**
+          * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
+          * or {@link HealthCheckFilter#ALL} if the default should be used.
+          */
+         protected HealthCheckFilter getHealthCheckFilter() {
+             return HealthCheckFilter.ALL;
+         }
+ 
+         /**
+          * @return the {@link ObjectMapper} that shall be used to render health checks,
+          * or {@code null} if the default object mapper should be used.
+          */
+         protected ObjectMapper getObjectMapper() {
+             // don't use an object mapper by default
+             return null;
+         }
+ 
+         @Override
+         public void contextInitialized(ServletContextEvent event) {
+             final ServletContext context = event.getServletContext();
+             context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());
+             context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());
+             context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());
+         }
+ 
+         @Override
+         public void contextDestroyed(ServletContextEvent event) {
+             // no-op
+         }
+     }
+ 
+     public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + ".registry";
+     public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + ".executor";
+     public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + ".healthCheckFilter";
+     public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + ".mapper";
+     public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + ".httpStatusIndicator";
+ 
+     private static final long serialVersionUID = -8432996484889177321L;
+     private static final String CONTENT_TYPE = "application/json";
+     private static final String HTTP_STATUS_INDICATOR_PARAM = "httpStatusIndicator";
+ 
+     private transient HealthCheckRegistry registry;
+     private transient ExecutorService executorService;
+     private transient HealthCheckFilter filter;
+     private transient ObjectMapper mapper;
+     private transient boolean httpStatusIndicator;
+ 
+     public HealthCheckServlet() {
+     }
+ 
+     public HealthCheckServlet(HealthCheckRegistry registry) {
+         this.registry = registry;
+     }
+ 
+     @Override
+     public void init(ServletConfig config) throws ServletException {
+         super.init(config);
+ 
+         final ServletContext context = config.getServletContext();
+         if (null == registry) {
+             final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);
+             if (registryAttr instanceof HealthCheckRegistry) {
+                 this.registry = (HealthCheckRegistry) registryAttr;
+             } else {
+                 throw new ServletException("Couldn't find a HealthCheckRegistry instance.");
+             }
+         }
+ 
+         final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);
+         if (executorAttr instanceof ExecutorService) {
+             this.executorService = (ExecutorService) executorAttr;
+         }
+ 
+         final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);
+         if (filterAttr instanceof HealthCheckFilter) {
+             filter = (HealthCheckFilter) filterAttr;
+         }
+         if (filter == null) {
+             filter = HealthCheckFilter.ALL;
+         }
+ 
+         final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);
+         if (mapperAttr instanceof ObjectMapper) {
+             this.mapper = (ObjectMapper) mapperAttr;
+         } else {
+             this.mapper = new ObjectMapper();
+         }
+         this.mapper.registerModule(new HealthCheckModule());
+ 
+         final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);
+         if (httpStatusIndicatorAttr instanceof Boolean) {
+             this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;
+         } else {
+             this.httpStatusIndicator = true;
+         }
+     }
+ 
+     @Override
+     public void destroy() {
+         super.destroy();
+         registry.shutdown();
+     }
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+         final SortedMap<String, HealthCheck.Result> results = runHealthChecks();
+         resp.setContentType(CONTENT_TYPE);
+         resp.setHeader("Cache-Control", "must-revalidate,no-cache,no-store");
+         if (results.isEmpty()) {
+             resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);
+         } else {
+             final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);
+             final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);
+             final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;
+             if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {
+                 resp.setStatus(HttpServletResponse.SC_OK);
+             } else {
+                 resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+             }
+         }
+ 
+         try (OutputStream output = resp.getOutputStream()) {
+             getWriter(req).writeValue(output, results);
+         }
+     }
+ 
+     private ObjectWriter getWriter(HttpServletRequest request) {
+         final boolean prettyPrint = Boolean.parseBoolean(request.getParameter("pretty"));
+         if (prettyPrint) {
+             return mapper.writerWithDefaultPrettyPrinter();
+         }
+         return mapper.writer();
+     }
+ 
+     private SortedMap<String, HealthCheck.Result> runHealthChecks() {
+         if (executorService == null) {
+             return registry.runHealthChecks(filter);
+         }
+         return registry.runHealthChecks(executorService, filter);
+     }
+ 
+     private static boolean isAllHealthy(Map<String, HealthCheck.Result> results) {
+         for (HealthCheck.Result result : results.values()) {
+             if (!result.isHealthy()) {
+                 return false;
+             }
+         }
+         return true;
+     }
+ 
+     // visible for testing
+     ObjectMapper getMapper() {
+         return mapper;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-4.html new file mode 100644 index 0000000000..fa79054c74 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-4.html @@ -0,0 +1,329 @@ + + + + + + + + Coverage Report > MetricsServlet + + + + + + +
+ + +

Coverage Summary for Class: MetricsServlet (com.codahale.metrics.servlets)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
MetricsServlet + + 100% + + + (8/8) + + + + 100% + + + (44/44) + +
MetricsServlet$ContextListener + + 62.5% + + + (5/8) + + + + 77.8% + + + (14/18) + +
Total + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
+ +
+
+ + +
+ package com.codahale.metrics.servlets;
+ 
+ import java.io.IOException;
+ import java.io.OutputStream;
+ import java.util.Locale;
+ import java.util.concurrent.TimeUnit;
+ 
+ import javax.servlet.ServletConfig;
+ import javax.servlet.ServletContext;
+ import javax.servlet.ServletContextEvent;
+ import javax.servlet.ServletContextListener;
+ import javax.servlet.ServletException;
+ import javax.servlet.http.HttpServlet;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ 
+ import com.codahale.metrics.MetricFilter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.json.MetricsModule;
+ import com.fasterxml.jackson.databind.ObjectMapper;
+ import com.fasterxml.jackson.databind.ObjectWriter;
+ import com.fasterxml.jackson.databind.util.JSONPObject;
+ 
+ /**
+  * A servlet which returns the metrics in a given registry as an {@code application/json} response.
+  */
+ public class MetricsServlet extends HttpServlet {
+     /**
+      * An abstract {@link ServletContextListener} which allows you to programmatically inject the
+      * {@link MetricRegistry}, rate and duration units, and allowed origin for
+      * {@link MetricsServlet}.
+      */
+     public static abstract class ContextListener implements ServletContextListener {
+         /**
+          * @return the {@link MetricRegistry} to inject into the servlet context.
+          */
+         protected abstract MetricRegistry getMetricRegistry();
+ 
+         /**
+          * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
+          * default should be used.
+          */
+         protected TimeUnit getRateUnit() {
+             // use the default
+             return null;
+         }
+ 
+         /**
+          * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
+          * the default should be used.
+          */
+         protected TimeUnit getDurationUnit() {
+             // use the default
+             return null;
+         }
+ 
+         /**
+          * @return the {@code Access-Control-Allow-Origin} header value, if any.
+          */
+         protected String getAllowedOrigin() {
+             // use the default
+             return null;
+         }
+ 
+         /**
+          * Returns the name of the parameter used to specify the jsonp callback, if any.
+          */
+         protected String getJsonpCallbackParameter() {
+             return null;
+         }
+ 
+         /**
+          * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
+          * the default should be used.
+          */
+         protected MetricFilter getMetricFilter() {
+             // use the default
+             return MetricFilter.ALL;
+         }
+ 
+         @Override
+         public void contextInitialized(ServletContextEvent event) {
+             final ServletContext context = event.getServletContext();
+             context.setAttribute(METRICS_REGISTRY, getMetricRegistry());
+             context.setAttribute(METRIC_FILTER, getMetricFilter());
+             if (getDurationUnit() != null) {
+                 context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());
+             }
+             if (getRateUnit() != null) {
+                 context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());
+             }
+             if (getAllowedOrigin() != null) {
+                 context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());
+             }
+             if (getJsonpCallbackParameter() != null) {
+                 context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());
+             }
+         }
+ 
+         @Override
+         public void contextDestroyed(ServletContextEvent event) {
+             // no-op
+         }
+     }
+ 
+     public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + ".rateUnit";
+     public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + ".durationUnit";
+     public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + ".showSamples";
+     public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + ".registry";
+     public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + ".allowedOrigin";
+     public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + ".metricFilter";
+     public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + ".jsonpCallback";
+ 
+     private static final long serialVersionUID = 1049773947734939602L;
+     private static final String CONTENT_TYPE = "application/json";
+ 
+     protected String allowedOrigin;
+     protected String jsonpParamName;
+     protected transient MetricRegistry registry;
+     protected transient ObjectMapper mapper;
+ 
+     public MetricsServlet() {
+     }
+ 
+     public MetricsServlet(MetricRegistry registry) {
+         this.registry = registry;
+     }
+ 
+     @Override
+     public void init(ServletConfig config) throws ServletException {
+         super.init(config);
+ 
+         final ServletContext context = config.getServletContext();
+         if (null == registry) {
+             final Object registryAttr = context.getAttribute(METRICS_REGISTRY);
+             if (registryAttr instanceof MetricRegistry) {
+                 this.registry = (MetricRegistry) registryAttr;
+             } else {
+                 throw new ServletException("Couldn't find a MetricRegistry instance.");
+             }
+         }
+         this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);
+         this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);
+ 
+         setupMetricsModule(context);
+     }
+ 
+     protected void setupMetricsModule(ServletContext context) {
+         final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),
+                 TimeUnit.SECONDS);
+         final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),
+                 TimeUnit.SECONDS);
+         final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));
+         MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);
+         if (filter == null) {
+             filter = MetricFilter.ALL;
+         }
+ 
+         this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,
+                 durationUnit,
+                 showSamples,
+                 filter));
+     }
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+         resp.setContentType(CONTENT_TYPE);
+         if (allowedOrigin != null) {
+             resp.setHeader("Access-Control-Allow-Origin", allowedOrigin);
+         }
+         resp.setHeader("Cache-Control", "must-revalidate,no-cache,no-store");
+         resp.setStatus(HttpServletResponse.SC_OK);
+ 
+         try (OutputStream output = resp.getOutputStream()) {
+             if (jsonpParamName != null && req.getParameter(jsonpParamName) != null) {
+                 getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));
+             } else {
+                 getWriter(req).writeValue(output, registry);
+             }
+         }
+     }
+ 
+     protected ObjectWriter getWriter(HttpServletRequest request) {
+         final boolean prettyPrint = Boolean.parseBoolean(request.getParameter("pretty"));
+         if (prettyPrint) {
+             return mapper.writerWithDefaultPrettyPrinter();
+         }
+         return mapper.writer();
+     }
+ 
+     protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
+         try {
+             return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));
+         } catch (IllegalArgumentException e) {
+             return defaultValue;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-5.html new file mode 100644 index 0000000000..bb71277ce1 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-5.html @@ -0,0 +1,134 @@ + + + + + + + + Coverage Report > PingServlet + + + + + + +
+ + +

Coverage Summary for Class: PingServlet (com.codahale.metrics.servlets)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
+ +
+
+ + +
+ package com.codahale.metrics.servlets;
+ 
+ import javax.servlet.ServletException;
+ import javax.servlet.http.HttpServlet;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ import java.io.IOException;
+ import java.io.PrintWriter;
+ 
+ /**
+  * An HTTP servlets which outputs a {@code text/plain} {@code "pong"} response.
+  */
+ public class PingServlet extends HttpServlet {
+     private static final long serialVersionUID = 3772654177231086757L;
+     private static final String CONTENT_TYPE = "text/plain";
+     private static final String CONTENT = "pong";
+     private static final String CACHE_CONTROL = "Cache-Control";
+     private static final String NO_CACHE = "must-revalidate,no-cache,no-store";
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+         resp.setStatus(HttpServletResponse.SC_OK);
+         resp.setHeader(CACHE_CONTROL, NO_CACHE);
+         resp.setContentType(CONTENT_TYPE);
+         try (PrintWriter writer = resp.getWriter()) {
+             writer.println(CONTENT);
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-6.html new file mode 100644 index 0000000000..e25c1cc204 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-6.html @@ -0,0 +1,159 @@ + + + + + + + + Coverage Report > ThreadDumpServlet + + + + + + +
+ + +

Coverage Summary for Class: ThreadDumpServlet (com.codahale.metrics.servlets)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+
+ + +
+ package com.codahale.metrics.servlets;
+ 
+ import com.codahale.metrics.jvm.ThreadDump;
+ 
+ import javax.servlet.ServletException;
+ import javax.servlet.http.HttpServlet;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ import java.io.IOException;
+ import java.io.OutputStream;
+ import java.lang.management.ManagementFactory;
+ 
+ /**
+  * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
+  * the VM. Only responds to {@code GET} requests.
+  */
+ public class ThreadDumpServlet extends HttpServlet {
+ 
+     private static final long serialVersionUID = -2690343532336103046L;
+     private static final String CONTENT_TYPE = "text/plain";
+ 
+     private transient ThreadDump threadDump;
+ 
+     @Override
+     public void init() throws ServletException {
+         try {
+             // Some PaaS like Google App Engine blacklist java.lang.managament
+             this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());
+         } catch (NoClassDefFoundError ncdfe) {
+             this.threadDump = null; // we won't be able to provide thread dump
+         }
+     }
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+         final boolean includeMonitors = getParam(req.getParameter("monitors"), true);
+         final boolean includeSynchronizers = getParam(req.getParameter("synchronizers"), true);
+ 
+         resp.setStatus(HttpServletResponse.SC_OK);
+         resp.setContentType(CONTENT_TYPE);
+         resp.setHeader("Cache-Control", "must-revalidate,no-cache,no-store");
+         if (threadDump == null) {
+             resp.getWriter().println("Sorry your runtime environment does not allow to dump threads.");
+             return;
+         }
+         try (OutputStream output = resp.getOutputStream()) {
+             threadDump.dump(includeMonitors, includeSynchronizers, output);
+         }
+     }
+ 
+     private static Boolean getParam(String initParam, boolean defaultValue) {
+         return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index.html new file mode 100644 index 0000000000..6dcaa74214 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..c777b7760e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..e07ab4ba92 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..67a8c69e54 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..ad06f1b112 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..59b0ec355d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..22ee6aa165 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..c15bcce057 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..59ede161e0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..b4683f2d28 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/sources/source-1.html new file mode 100644 index 0000000000..af29399007 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1d/sources/source-1.html @@ -0,0 +1,220 @@ + + + + + + + + Coverage Report > MetricsStatsCounter + + + + + + +
+ + +

Coverage Summary for Class: MetricsStatsCounter (io.dropwizard.metrics.caffeine3)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + +
+ /*
+  * Copyright 2016 Ben Manes. All Rights Reserved.
+  *
+  * Licensed under the Apache License, Version 2.0 (the "License");
+  * you may not use this file except in compliance with the License.
+  * You may obtain a copy of the License at
+  *
+  *     http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  */
+ package io.dropwizard.metrics.caffeine3;
+ 
+ import static java.util.Objects.requireNonNull;
+ 
+ import java.util.EnumMap;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.LongAdder;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Histogram;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import com.github.benmanes.caffeine.cache.RemovalCause;
+ import com.github.benmanes.caffeine.cache.stats.CacheStats;
+ import com.github.benmanes.caffeine.cache.stats.StatsCounter;
+ import org.checkerframework.checker.index.qual.NonNegative;
+ 
+ /**
+  * A {@link StatsCounter} instrumented with Dropwizard Metrics.
+  *
+  * @author ben.manes@gmail.com (Ben Manes)
+  * @author John Karp
+  */
+ public final class MetricsStatsCounter implements StatsCounter {
+   private final Counter hitCount;
+   private final Counter missCount;
+   private final Timer loadSuccess;
+   private final Timer loadFailure;
+   private final Counter evictionWeight;
+   private final EnumMap<RemovalCause, Histogram> evictionsWithCause;
+ 
+   // for implementing snapshot()
+   private final LongAdder totalLoadTime = new LongAdder();
+ 
+   /**
+    * Constructs an instance for use by a single cache.
+    *
+    * @param registry the registry of metric instances
+    * @param metricsPrefix the prefix name for the metrics
+    */
+   public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {
+     requireNonNull(metricsPrefix);
+     hitCount = registry.counter(MetricRegistry.name(metricsPrefix, "hits"));
+     missCount = registry.counter(MetricRegistry.name(metricsPrefix, "misses"));
+     loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, "loads-success"));
+     loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, "loads-failure"));
+     evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, "evictions-weight"));
+ 
+     evictionsWithCause = new EnumMap<>(RemovalCause.class);
+     for (RemovalCause cause : RemovalCause.values()) {
+       evictionsWithCause.put(
+           cause,
+           registry.histogram(MetricRegistry.name(metricsPrefix, "evictions", cause.name())));
+     }
+   }
+ 
+   @Override
+   public void recordHits(int count) {
+     hitCount.inc(count);
+   }
+ 
+   @Override
+   public void recordMisses(int count) {
+     missCount.inc(count);
+   }
+ 
+   @Override
+   public void recordLoadSuccess(long loadTime) {
+     loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);
+     totalLoadTime.add(loadTime);
+   }
+ 
+   @Override
+   public void recordLoadFailure(long loadTime) {
+     loadFailure.update(loadTime, TimeUnit.NANOSECONDS);
+     totalLoadTime.add(loadTime);
+   }
+ 
+   @Override
+   public void recordEviction(@NonNegative int weight, RemovalCause cause) {
+     evictionsWithCause.get(cause).update(weight);
+     evictionWeight.inc(weight);
+   }
+ 
+   @Override
+   public CacheStats snapshot() {
+     return CacheStats.of(
+         hitCount.getCount(),
+         missCount.getCount(),
+         loadSuccess.getCount(),
+         loadFailure.getCount(),
+         totalLoadTime.sum(),
+         evictionsWithCause.values().stream().mapToLong(Histogram::getCount).sum(),
+         evictionWeight.getCount());
+   }
+ 
+   @Override
+   public String toString() {
+     return snapshot().toString();
+   }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index.html new file mode 100644 index 0000000000..b45153ee24 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..0d8f6a95bf --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..076393d8ad --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..e8c7c2869c --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..dbf164e14f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..748d5f0e2a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..42a31bc1ed --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..77caa94734 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..3c965322d2 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..3ca7d98d28 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/sources/source-1.html new file mode 100644 index 0000000000..08ed1d827f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1e/sources/source-1.html @@ -0,0 +1,831 @@ + + + + + + + + Coverage Report > InstrumentedResourceMethodApplicationListener + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (io.dropwizard.metrics.jersey31)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 88.9% + + + (16/18) + + + + 92.1% + + + (82/89) + +
InstrumentedResourceMethodApplicationListener$1 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener + + 100% + + + (3/3) + + + + 100% + + + (5/5) + +
InstrumentedResourceMethodApplicationListener$EventTypeAndMethod + + 100% + + + (8/8) + + + + 84.2% + + + (16/19) + +
InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric + + 100% + + + (1/1) + + + + 100% + + + (5/5) + +
InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener + + 100% + + + (2/2) + + + + 100% + + + (11/11) + +
InstrumentedResourceMethodApplicationListener$MeterRequestEventListener + + 100% + + + (2/2) + + + + 100% + + + (6/6) + +
InstrumentedResourceMethodApplicationListener$ResponseMeterMetric + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener + + 100% + + + (2/2) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener$TimerRequestEventListener + + 100% + + + (4/4) + + + + 100% + + + (28/28) + +
Total + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jersey31;
+ 
+ import com.codahale.metrics.Clock;
+ import com.codahale.metrics.ExponentiallyDecayingReservoir;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Reservoir;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ExceptionMetered;
+ import com.codahale.metrics.annotation.Metered;
+ import com.codahale.metrics.annotation.ResponseMetered;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import com.codahale.metrics.annotation.Timed;
+ import jakarta.ws.rs.core.Configuration;
+ import jakarta.ws.rs.ext.Provider;
+ import org.glassfish.jersey.server.ContainerResponse;
+ import org.glassfish.jersey.server.model.ModelProcessor;
+ import org.glassfish.jersey.server.model.Resource;
+ import org.glassfish.jersey.server.model.ResourceMethod;
+ import org.glassfish.jersey.server.model.ResourceModel;
+ import org.glassfish.jersey.server.monitoring.ApplicationEvent;
+ import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
+ import org.glassfish.jersey.server.monitoring.RequestEvent;
+ import org.glassfish.jersey.server.monitoring.RequestEventListener;
+ 
+ import java.lang.annotation.Annotation;
+ import java.lang.reflect.Method;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.EnumSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ import java.util.concurrent.TimeUnit;
+ import java.util.function.Supplier;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ 
+ /**
+  * An application event listener that listens for Jersey application initialization to
+  * be finished, then creates a map of resource method that have metrics annotations.
+  * <p>
+  * Finally, it listens for method start events, and returns a {@link RequestEventListener}
+  * that updates the relevant metric for suitably annotated methods when it gets the
+  * request events indicating that the method is about to be invoked, or just got done
+  * being invoked.
+  */
+ @Provider
+ public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
+ 
+     private static final String[] REQUEST_FILTERING = {"request", "filtering"};
+     private static final String[] RESPONSE_FILTERING = {"response", "filtering"};
+     private static final String TOTAL = "total";
+ 
+     private final MetricRegistry metrics;
+     private final ConcurrentMap<EventTypeAndMethod, Timer> timers = new ConcurrentHashMap<>();
+     private final ConcurrentMap<Method, Meter> meters = new ConcurrentHashMap<>();
+     private final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters = new ConcurrentHashMap<>();
+     private final ConcurrentMap<Method, ResponseMeterMetric> responseMeters = new ConcurrentHashMap<>();
+ 
+     private final Clock clock;
+     private final boolean trackFilters;
+     private final Supplier<Reservoir> reservoirSupplier;
+ 
+     /**
+      * Construct an application event listener using the given metrics registry.
+      * <p>
+      * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
+      * should be added to a Jersey {@code ResourceConfig} as a singleton.
+      *
+      * @param metrics a {@link MetricRegistry}
+      */
+     public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
+         this(metrics, Clock.defaultClock(), false);
+     }
+ 
+     /**
+      * Constructs a custom application listener.
+      *
+      * @param metrics      the metrics registry where the metrics will be stored
+      * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters whether the processing time for request and response filters should be tracked
+      */
+     public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
+                                                          final boolean trackFilters) {
+         this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);
+     }
+ 
+     /**
+      * Constructs a custom application listener.
+      *
+      * @param metrics           the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters      whether the processing time for request and response filters should be tracked
+      * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
+      */
+     public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
+                                                          final boolean trackFilters,
+                                                          final Supplier<Reservoir> reservoirSupplier) {
+         this.metrics = metrics;
+         this.clock = clock;
+         this.trackFilters = trackFilters;
+         this.reservoirSupplier = reservoirSupplier;
+     }
+ 
+     /**
+      * A private class to maintain the metric for a method annotated with the
+      * {@link ExceptionMetered} annotation, which needs to maintain both a meter
+      * and a cause for which the meter should be updated.
+      */
+     private static class ExceptionMeterMetric {
+         public final Meter meter;
+         public final Class<? extends Throwable> cause;
+ 
+         public ExceptionMeterMetric(final MetricRegistry registry,
+                                     final ResourceMethod method,
+                                     final ExceptionMetered exceptionMetered) {
+             final String name = chooseName(exceptionMetered.name(),
+                     exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);
+             this.meter = registry.meter(name);
+             this.cause = exceptionMetered.cause();
+         }
+     }
+ 
+     /**
+      * A private class to maintain the metrics for a method annotated with the
+      * {@link ResponseMetered} annotation, which needs to maintain meters for
+      * different response codes
+      */
+     private static class ResponseMeterMetric {
+         private static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+         private static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+         private final List<Meter> meters;
+         private final Map<Integer, Meter> responseCodeMeters;
+         private final MetricRegistry metricRegistry;
+         private final String metricName;
+         private final ResponseMeteredLevel level;
+ 
+         public ResponseMeterMetric(final MetricRegistry registry,
+                                    final ResourceMethod method,
+                                    final ResponseMetered responseMetered) {
+             this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);
+             this.level = responseMetered.level();
+             this.meters = COARSE_METER_LEVELS.contains(level) ?
+                     Collections.unmodifiableList(Arrays.asList(
+                             registry.meter(name(metricName, "1xx-responses")), // 1xx
+                             registry.meter(name(metricName, "2xx-responses")), // 2xx
+                             registry.meter(name(metricName, "3xx-responses")), // 3xx
+                             registry.meter(name(metricName, "4xx-responses")), // 4xx
+                             registry.meter(name(metricName, "5xx-responses"))  // 5xx
+                     )) : Collections.emptyList();
+             this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+             this.metricRegistry = registry;
+         }
+ 
+         public void mark(int statusCode) {
+             if (DETAILED_METER_LEVELS.contains(level)) {
+                 getResponseCodeMeter(statusCode).mark();
+             }
+ 
+             if (COARSE_METER_LEVELS.contains(level)) {
+                 final int responseStatus = statusCode / 100;
+                 if (responseStatus >= 1 && responseStatus <= 5) {
+                     meters.get(responseStatus - 1).mark();
+                 }
+             }
+         }
+ 
+         private Meter getResponseCodeMeter(int statusCode) {
+             return responseCodeMeters
+                     .computeIfAbsent(statusCode, sc -> metricRegistry
+                             .meter(name(metricName, String.format("%d-responses", sc))));
+         }
+     }
+ 
+     private static class TimerRequestEventListener implements RequestEventListener {
+ 
+         private final ConcurrentMap<EventTypeAndMethod, Timer> timers;
+         private final Clock clock;
+         private final long start;
+         private Timer.Context resourceMethodStartContext;
+         private Timer.Context requestMatchedContext;
+         private Timer.Context responseFiltersStartContext;
+ 
+         public TimerRequestEventListener(final ConcurrentMap<EventTypeAndMethod, Timer> timers, final Clock clock) {
+             this.timers = timers;
+             this.clock = clock;
+             start = clock.getTick();
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             switch (event.getType()) {
+                 case RESOURCE_METHOD_START:
+                     resourceMethodStartContext = context(event);
+                     break;
+                 case REQUEST_MATCHED:
+                     requestMatchedContext = context(event);
+                     break;
+                 case RESP_FILTERS_START:
+                     responseFiltersStartContext = context(event);
+                     break;
+                 case RESOURCE_METHOD_FINISHED:
+                     if (resourceMethodStartContext != null) {
+                         resourceMethodStartContext.close();
+                     }
+                     break;
+                 case REQUEST_FILTERED:
+                     if (requestMatchedContext != null) {
+                         requestMatchedContext.close();
+                     }
+                     break;
+                 case RESP_FILTERS_FINISHED:
+                     if (responseFiltersStartContext != null) {
+                         responseFiltersStartContext.close();
+                     }
+                     break;
+                 case FINISHED:
+                     if (requestMatchedContext != null && responseFiltersStartContext != null) {
+                         final Timer timer = timer(event);
+                         if (timer != null) {
+                             timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);
+                         }
+                     }
+                     break;
+                 default:
+                     break;
+             }
+         }
+ 
+         private Timer timer(RequestEvent event) {
+             final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();
+             if (resourceMethod == null) {
+                 return null;
+             }
+             return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));
+         }
+ 
+         private Timer.Context context(RequestEvent event) {
+             final Timer timer = timer(event);
+             return timer != null ? timer.time() : null;
+         }
+     }
+ 
+     private static class MeterRequestEventListener implements RequestEventListener {
+         private final ConcurrentMap<Method, Meter> meters;
+ 
+         public MeterRequestEventListener(final ConcurrentMap<Method, Meter> meters) {
+             this.meters = meters;
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {
+                 final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());
+                 if (meter != null) {
+                     meter.mark();
+                 }
+             }
+         }
+     }
+ 
+     private static class ExceptionMeterRequestEventListener implements RequestEventListener {
+         private final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters;
+ 
+         public ExceptionMeterRequestEventListener(final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters) {
+             this.exceptionMeters = exceptionMeters;
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {
+                 final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();
+                 final ExceptionMeterMetric metric = (method != null) ?
+                         this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;
+ 
+                 if (metric != null) {
+                     if (metric.cause.isAssignableFrom(event.getException().getClass()) ||
+                             (event.getException().getCause() != null &&
+                                     metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {
+                         metric.meter.mark();
+                     }
+                 }
+             }
+         }
+     }
+ 
+     private static class ResponseMeterRequestEventListener implements RequestEventListener {
+         private final ConcurrentMap<Method, ResponseMeterMetric> responseMeters;
+ 
+         public ResponseMeterRequestEventListener(final ConcurrentMap<Method, ResponseMeterMetric> responseMeters) {
+             this.responseMeters = responseMeters;
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             if (event.getType() == RequestEvent.Type.FINISHED) {
+                 final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();
+                 final ResponseMeterMetric metric = (method != null) ?
+                         this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;
+ 
+                 if (metric != null) {
+                     ContainerResponse containerResponse = event.getContainerResponse();
+                     if (containerResponse == null && event.getException() != null) {
+                         metric.mark(500);
+                     } else if (containerResponse != null) {
+                         metric.mark(containerResponse.getStatus());
+                     }
+                 }
+             }
+         }
+     }
+ 
+     private static class ChainedRequestEventListener implements RequestEventListener {
+         private final RequestEventListener[] listeners;
+ 
+         private ChainedRequestEventListener(final RequestEventListener... listeners) {
+             this.listeners = listeners;
+         }
+ 
+         @Override
+         public void onEvent(final RequestEvent event) {
+             for (RequestEventListener listener : listeners) {
+                 listener.onEvent(event);
+             }
+         }
+     }
+ 
+     @Override
+     public void onEvent(ApplicationEvent event) {
+         if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {
+             registerMetricsForModel(event.getResourceModel());
+         }
+     }
+ 
+     @Override
+     public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
+         return resourceModel;
+     }
+ 
+     @Override
+     public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
+         registerMetricsForModel(subResourceModel);
+         return subResourceModel;
+     }
+ 
+     private void registerMetricsForModel(ResourceModel resourceModel) {
+         for (final Resource resource : resourceModel.getResources()) {
+ 
+             final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);
+             final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);
+             final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);
+             final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);
+ 
+             for (final ResourceMethod method : resource.getAllMethods()) {
+                 registerTimedAnnotations(method, classLevelTimed);
+                 registerMeteredAnnotations(method, classLevelMetered);
+                 registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);
+                 registerResponseMeteredAnnotations(method, classLevelResponseMetered);
+             }
+ 
+             for (final Resource childResource : resource.getChildResources()) {
+ 
+                 final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);
+                 final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);
+                 final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);
+                 final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);
+ 
+                 for (final ResourceMethod method : childResource.getAllMethods()) {
+                     registerTimedAnnotations(method, classLevelTimedChild);
+                     registerMeteredAnnotations(method, classLevelMeteredChild);
+                     registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);
+                     registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);
+                 }
+             }
+         }
+     }
+ 
+     @Override
+     public RequestEventListener onRequest(final RequestEvent event) {
+         final RequestEventListener listener = new ChainedRequestEventListener(
+                 new TimerRequestEventListener(timers, clock),
+                 new MeterRequestEventListener(meters),
+                 new ExceptionMeterRequestEventListener(exceptionMeters),
+                 new ResponseMeterRequestEventListener(responseMeters));
+ 
+         return listener;
+     }
+ 
+     private <T extends Annotation> T getClassLevelAnnotation(final Resource resource, final Class<T> annotationClazz) {
+         T annotation = null;
+ 
+         for (final Class<?> clazz : resource.getHandlerClasses()) {
+             annotation = clazz.getAnnotation(annotationClazz);
+ 
+             if (annotation != null) {
+                 break;
+             }
+         }
+         return annotation;
+     }
+ 
+     private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+         if (classLevelTimed != null) {
+             registerTimers(method, definitionMethod, classLevelTimed);
+             return;
+         }
+ 
+         final Timed annotation = definitionMethod.getAnnotation(Timed.class);
+         if (annotation != null) {
+             registerTimers(method, definitionMethod, annotation);
+         }
+     }
+ 
+     private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
+         timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));
+         if (trackFilters) {
+             timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));
+             timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));
+             timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));
+         }
+     }
+ 
+     private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+ 
+         if (classLevelMetered != null) {
+             meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));
+             return;
+         }
+         final Metered annotation = definitionMethod.getAnnotation(Metered.class);
+ 
+         if (annotation != null) {
+             meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));
+         }
+     }
+ 
+     private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+ 
+         if (classLevelExceptionMetered != null) {
+             exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));
+             return;
+         }
+         final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);
+ 
+         if (annotation != null) {
+             exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));
+         }
+     }
+ 
+     private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+ 
+         if (classLevelResponseMetered != null) {
+             responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));
+             return;
+         }
+         final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);
+ 
+         if (annotation != null) {
+             responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));
+         }
+     }
+ 
+     private Timer timerMetric(final MetricRegistry registry,
+                               final ResourceMethod method,
+                               final Timed timed,
+                               final String... suffixes) {
+         final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);
+         return registry.timer(name, () -> new Timer(reservoirSupplier.get(), clock));
+     }
+ 
+     private Meter meterMetric(final MetricRegistry registry,
+                               final ResourceMethod method,
+                               final Metered metered) {
+         final String name = chooseName(metered.name(), metered.absolute(), method);
+         return registry.meter(name, () -> new Meter(clock));
+     }
+ 
+     protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
+                                        final String... suffixes) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+         final String metricName;
+         if (explicitName != null && !explicitName.isEmpty()) {
+             metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);
+         } else {
+             metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());
+         }
+         return name(metricName, suffixes);
+     }
+ 
+     private static class EventTypeAndMethod {
+ 
+         private final RequestEvent.Type type;
+         private final Method method;
+ 
+         private EventTypeAndMethod(RequestEvent.Type type, Method method) {
+             this.type = type;
+             this.method = method;
+         }
+ 
+         static EventTypeAndMethod requestMethodStart(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);
+         }
+ 
+         static EventTypeAndMethod requestMatched(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);
+         }
+ 
+         static EventTypeAndMethod respFiltersStart(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);
+         }
+ 
+         static EventTypeAndMethod finished(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);
+         }
+ 
+         @Override
+         public boolean equals(Object o) {
+             if (this == o) {
+                 return true;
+             }
+             if (o == null || getClass() != o.getClass()) {
+                 return false;
+             }
+ 
+             EventTypeAndMethod that = (EventTypeAndMethod) o;
+ 
+             if (type != that.type) {
+                 return false;
+             }
+             return method.equals(that.method);
+         }
+ 
+         @Override
+         public int hashCode() {
+             int result = type.hashCode();
+             result = 31 * result + method.hashCode();
+             return result;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/sources/source-2.html new file mode 100644 index 0000000000..9941bad8cc --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1e/sources/source-2.html @@ -0,0 +1,201 @@ + + + + + + + + Coverage Report > MetricsFeature + + + + + + +
+ + +

Coverage Summary for Class: MetricsFeature (io.dropwizard.metrics.jersey31)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jersey31;
+ 
+ import com.codahale.metrics.Clock;
+ import com.codahale.metrics.ExponentiallyDecayingReservoir;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Reservoir;
+ import com.codahale.metrics.SharedMetricRegistries;
+ import jakarta.ws.rs.core.Feature;
+ import jakarta.ws.rs.core.FeatureContext;
+ 
+ import java.util.function.Supplier;
+ 
+ /**
+  * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
+  * for recording request events.
+  */
+ public class MetricsFeature implements Feature {
+ 
+     private final MetricRegistry registry;
+     private final Clock clock;
+     private final boolean trackFilters;
+     private final Supplier<Reservoir> reservoirSupplier;
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      */
+     public MetricsFeature(MetricRegistry registry) {
+         this(registry, Clock.defaultClock());
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
+      */
+     public MetricsFeature(MetricRegistry registry, Supplier<Reservoir> reservoirSupplier) {
+         this(registry, Clock.defaultClock(), false, reservoirSupplier);
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      */
+     public MetricsFeature(MetricRegistry registry, Clock clock) {
+         this(registry, clock, false);
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters      whether the processing time for request and response filters should be tracked
+      */
+     public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
+         this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters      whether the processing time for request and response filters should be tracked
+      * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
+      */
+     public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier<Reservoir> reservoirSupplier) {
+         this.registry = registry;
+         this.clock = clock;
+         this.trackFilters = trackFilters;
+         this.reservoirSupplier = reservoirSupplier;
+     }
+ 
+     public MetricsFeature(String registryName) {
+         this(SharedMetricRegistries.getOrCreate(registryName));
+     }
+ 
+     /**
+      * A call-back method called when the feature is to be enabled in a given
+      * runtime configuration scope.
+      * <p>
+      * The responsibility of the feature is to properly update the supplied runtime configuration context
+      * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
+      * <p>
+      * Note that under some circumstances the feature may decide not to enable itself, which
+      * is indicated by returning {@code false}. In such case the configuration context does
+      * not add the feature to the collection of enabled features and a subsequent call to
+      * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
+      * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
+      * would return {@code false}.
+      * <p>
+      *
+      * @param context configurable context in which the feature should be enabled.
+      * @return {@code true} if the feature was successfully enabled, {@code false}
+      * otherwise.
+      */
+     @Override
+     public boolean configure(FeatureContext context) {
+         context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));
+         return true;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index.html new file mode 100644 index 0000000000..94236d8b6d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..eba8715560 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..3b04d201b7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..3f6a67908e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..47911dd296 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..d25700f167 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..ef9b75accf --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..7be758c391 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..f9bbf4d68f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..3fc4800b3c --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-1.html new file mode 100644 index 0000000000..6c96fd7730 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-1.html @@ -0,0 +1,193 @@ + + + + + + + + Coverage Report > InstrumentedConnectionFactory + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty10)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedConnectionFactory + + 83.3% + + + (5/6) + + + + 91.7% + + + (11/12) + +
InstrumentedConnectionFactory$1 + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
Total + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty10;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Timer;
+ import org.eclipse.jetty.io.Connection;
+ import org.eclipse.jetty.io.EndPoint;
+ import org.eclipse.jetty.server.ConnectionFactory;
+ import org.eclipse.jetty.server.Connector;
+ import org.eclipse.jetty.util.component.ContainerLifeCycle;
+ 
+ import java.util.List;
+ 
+ public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {
+     private final ConnectionFactory connectionFactory;
+     private final Timer timer;
+     private final Counter counter;
+ 
+     public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
+         this(connectionFactory, timer, null);
+     }
+ 
+     public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {
+         this.connectionFactory = connectionFactory;
+         this.timer = timer;
+         this.counter = counter;
+         addBean(connectionFactory);
+     }
+ 
+     @Override
+     public String getProtocol() {
+         return connectionFactory.getProtocol();
+     }
+ 
+     @Override
+     public List<String> getProtocols() {
+         return connectionFactory.getProtocols();
+     }
+ 
+     @Override
+     public Connection newConnection(Connector connector, EndPoint endPoint) {
+         final Connection connection = connectionFactory.newConnection(connector, endPoint);
+         connection.addEventListener(new Connection.Listener() {
+             private Timer.Context context;
+ 
+             @Override
+             public void onOpened(Connection connection) {
+                 this.context = timer.time();
+                 if (counter != null) {
+                     counter.inc();
+                 }
+             }
+ 
+             @Override
+             public void onClosed(Connection connection) {
+                 context.stop();
+                 if (counter != null) {
+                     counter.dec();
+                 }
+             }
+         });
+         return connection;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-2.html new file mode 100644 index 0000000000..b59b718f19 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-2.html @@ -0,0 +1,746 @@ + + + + + + + + Coverage Report > InstrumentedHandler + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty10)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
InstrumentedHandler + + 81.2% + + + (13/16) + + + + 86.3% + + + (113/131) + +
InstrumentedHandler$1 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$2 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$4 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$5 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$6 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$7 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
InstrumentedHandler$AsyncAttachingListener + + 20% + + + (1/5) + + + + 20% + + + (1/5) + +
InstrumentedHandler$InstrumentedAsyncListener + + 0% + + + (0/5) + + + + 0% + + + (0/2) + + + + 0% + + + (0/11) + +
Total + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty10;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import org.eclipse.jetty.http.HttpMethod;
+ import org.eclipse.jetty.server.AsyncContextState;
+ import org.eclipse.jetty.server.Handler;
+ import org.eclipse.jetty.server.HttpChannelState;
+ import org.eclipse.jetty.server.Request;
+ import org.eclipse.jetty.server.handler.HandlerWrapper;
+ 
+ import javax.servlet.AsyncEvent;
+ import javax.servlet.AsyncListener;
+ import javax.servlet.ServletException;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ import java.io.IOException;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.EnumSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ 
+ /**
+  * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
+  * instance.
+  */
+ public class InstrumentedHandler extends HandlerWrapper {
+     private static final String NAME_REQUESTS = "requests";
+     private static final String NAME_DISPATCHES = "dispatches";
+     private static final String NAME_ACTIVE_REQUESTS = "active-requests";
+     private static final String NAME_ACTIVE_DISPATCHES = "active-dispatches";
+     private static final String NAME_ACTIVE_SUSPENDED = "active-suspended";
+     private static final String NAME_ASYNC_DISPATCHES = "async-dispatches";
+     private static final String NAME_ASYNC_TIMEOUTS = "async-timeouts";
+     private static final String NAME_1XX_RESPONSES = "1xx-responses";
+     private static final String NAME_2XX_RESPONSES = "2xx-responses";
+     private static final String NAME_3XX_RESPONSES = "3xx-responses";
+     private static final String NAME_4XX_RESPONSES = "4xx-responses";
+     private static final String NAME_5XX_RESPONSES = "5xx-responses";
+     private static final String NAME_GET_REQUESTS = "get-requests";
+     private static final String NAME_POST_REQUESTS = "post-requests";
+     private static final String NAME_HEAD_REQUESTS = "head-requests";
+     private static final String NAME_PUT_REQUESTS = "put-requests";
+     private static final String NAME_DELETE_REQUESTS = "delete-requests";
+     private static final String NAME_OPTIONS_REQUESTS = "options-requests";
+     private static final String NAME_TRACE_REQUESTS = "trace-requests";
+     private static final String NAME_CONNECT_REQUESTS = "connect-requests";
+     private static final String NAME_MOVE_REQUESTS = "move-requests";
+     private static final String NAME_OTHER_REQUESTS = "other-requests";
+     private static final String NAME_PERCENT_4XX_1M = "percent-4xx-1m";
+     private static final String NAME_PERCENT_4XX_5M = "percent-4xx-5m";
+     private static final String NAME_PERCENT_4XX_15M = "percent-4xx-15m";
+     private static final String NAME_PERCENT_5XX_1M = "percent-5xx-1m";
+     private static final String NAME_PERCENT_5XX_5M = "percent-5xx-5m";
+     private static final String NAME_PERCENT_5XX_15M = "percent-5xx-15m";
+     private static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+     private static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+ 
+     private final MetricRegistry metricRegistry;
+ 
+     private String name;
+     private final String prefix;
+ 
+     // the requests handled by this handler, excluding active
+     private Timer requests;
+ 
+     // the number of dispatches seen by this handler, excluding active
+     private Timer dispatches;
+ 
+     // the number of active requests
+     private Counter activeRequests;
+ 
+     // the number of active dispatches
+     private Counter activeDispatches;
+ 
+     // the number of requests currently suspended.
+     private Counter activeSuspended;
+ 
+     // the number of requests that have been asynchronously dispatched
+     private Meter asyncDispatches;
+ 
+     // the number of requests that expired while suspended
+     private Meter asyncTimeouts;
+ 
+     private final ResponseMeteredLevel responseMeteredLevel;
+     private List<Meter> responses;
+     private Map<Integer, Meter> responseCodeMeters;
+ 
+     private Timer getRequests;
+     private Timer postRequests;
+     private Timer headRequests;
+     private Timer putRequests;
+     private Timer deleteRequests;
+     private Timer optionsRequests;
+     private Timer traceRequests;
+     private Timer connectRequests;
+     private Timer moveRequests;
+     private Timer otherRequests;
+ 
+     private AsyncListener listener;
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      */
+     public InstrumentedHandler(MetricRegistry registry) {
+         this(registry, null);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      */
+     public InstrumentedHandler(MetricRegistry registry, String prefix) {
+         this(registry, prefix, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
+      */
+     public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {
+         this.metricRegistry = registry;
+         this.prefix = prefix;
+         this.responseMeteredLevel = responseMeteredLevel;
+     }
+ 
+     public String getName() {
+         return name;
+     }
+ 
+     public void setName(String name) {
+         this.name = name;
+     }
+ 
+     @Override
+     protected void doStart() throws Exception {
+         super.doStart();
+ 
+         final String prefix = getMetricPrefix();
+ 
+         this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));
+         this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));
+ 
+         this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));
+         this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));
+         this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));
+ 
+         this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));
+         this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));
+ 
+         this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+ 
+         this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));
+         this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));
+         this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));
+         this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));
+         this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));
+         this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));
+         this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));
+         this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));
+         this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));
+         this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             this.responses = Collections.unmodifiableList(Arrays.asList(
+                     metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx
+                     metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx
+                     metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx
+                     metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx
+                     metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx
+             ));
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getOneMinuteRate(),
+                             requests.getOneMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getFiveMinuteRate(),
+                             requests.getFiveMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getFifteenMinuteRate(),
+                             requests.getFifteenMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getOneMinuteRate(),
+                             requests.getOneMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getFiveMinuteRate(),
+                             requests.getFiveMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {
+                 @Override
+                 public Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getFifteenMinuteRate(),
+                             requests.getFifteenMinuteRate());
+                 }
+             });
+         } else {
+             this.responses = Collections.emptyList();
+         }
+ 
+ 
+         this.listener = new AsyncAttachingListener();
+     }
+ 
+     @Override
+     protected void doStop() throws Exception {
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.remove(name(prefix, NAME_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));
+         metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));
+         metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));
+ 
+         if (responseCodeMeters != null) {
+             responseCodeMeters.keySet().stream()
+                     .map(sc -> name(getMetricPrefix(), String.format("%d-responses", sc)))
+                     .forEach(metricRegistry::remove);
+         }
+         super.doStop();
+     }
+ 
+     @Override
+     public void handle(String path,
+                        Request request,
+                        HttpServletRequest httpRequest,
+                        HttpServletResponse httpResponse) throws IOException, ServletException {
+ 
+         activeDispatches.inc();
+ 
+         final long start;
+         final HttpChannelState state = request.getHttpChannelState();
+         if (state.isInitial()) {
+             // new request
+             activeRequests.inc();
+             start = request.getTimeStamp();
+             state.addListener(listener);
+         } else {
+             // resumed request
+             start = System.currentTimeMillis();
+             activeSuspended.dec();
+             if (state.getState() == HttpChannelState.State.HANDLING) {
+                 asyncDispatches.mark();
+             }
+         }
+ 
+         try {
+             super.handle(path, request, httpRequest, httpResponse);
+         } finally {
+             final long now = System.currentTimeMillis();
+             final long dispatched = now - start;
+ 
+             activeDispatches.dec();
+             dispatches.update(dispatched, TimeUnit.MILLISECONDS);
+ 
+             if (state.isSuspended()) {
+                 activeSuspended.inc();
+             } else if (state.isInitial()) {
+                 updateResponses(httpRequest, httpResponse, start, request.isHandled());
+             }
+             // else onCompletion will handle it.
+         }
+     }
+ 
+     private Timer requestTimer(String method) {
+         final HttpMethod m = HttpMethod.fromString(method);
+         if (m == null) {
+             return otherRequests;
+         } else {
+             switch (m) {
+                 case GET:
+                     return getRequests;
+                 case POST:
+                     return postRequests;
+                 case PUT:
+                     return putRequests;
+                 case HEAD:
+                     return headRequests;
+                 case DELETE:
+                     return deleteRequests;
+                 case OPTIONS:
+                     return optionsRequests;
+                 case TRACE:
+                     return traceRequests;
+                 case CONNECT:
+                     return connectRequests;
+                 case MOVE:
+                     return moveRequests;
+                 default:
+                     return otherRequests;
+             }
+         }
+     }
+ 
+     private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
+         if (isHandled) {
+             mark(response.getStatus());
+         } else {
+             mark(404);; // will end up with a 404 response sent by HttpChannel.handle
+         }
+         activeRequests.dec();
+         final long elapsedTime = System.currentTimeMillis() - start;
+         requests.update(elapsedTime, TimeUnit.MILLISECONDS);
+         requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);
+     }
+ 
+     private void mark(int statusCode) {
+         if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {
+             getResponseCodeMeter(statusCode).mark();
+         }
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             final int responseStatus = statusCode / 100;
+             if (responseStatus >= 1 && responseStatus <= 5) {
+                 responses.get(responseStatus - 1).mark();
+             }
+         }
+     }
+ 
+     private Meter getResponseCodeMeter(int statusCode) {
+         return responseCodeMeters
+                 .computeIfAbsent(statusCode, sc -> metricRegistry
+                         .meter(name(getMetricPrefix(), String.format("%d-responses", sc))));
+     }
+ 
+     private String getMetricPrefix() {
+         return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);
+     }
+ 
+     private class AsyncAttachingListener implements AsyncListener {
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+             event.getAsyncContext().addListener(new InstrumentedAsyncListener());
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {}
+     };
+ 
+     private class InstrumentedAsyncListener implements AsyncListener {
+         private final long startTime;
+ 
+         InstrumentedAsyncListener() {
+             this.startTime = System.currentTimeMillis();
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             asyncTimeouts.mark();
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             final AsyncContextState state = (AsyncContextState) event.getAsyncContext();
+             final HttpServletRequest request = (HttpServletRequest) state.getRequest();
+             final HttpServletResponse response = (HttpServletResponse) state.getResponse();
+             updateResponses(request, response, startTime, true);
+             if (!state.getHttpChannelState().isSuspended()) {
+                 activeSuspended.dec();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-3.html new file mode 100644 index 0000000000..4e0d0044ab --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-3.html @@ -0,0 +1,706 @@ + + + + + + + + Coverage Report > InstrumentedHttpChannelListener + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty10)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedHttpChannelListener + + 74.1% + + + (20/27) + + + + 82.6% + + + (90/109) + +
InstrumentedHttpChannelListener$1 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$2 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$4 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$5 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$6 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$7 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
InstrumentedHttpChannelListener$AsyncAttachingListener + + 40% + + + (2/5) + + + + 40% + + + (2/5) + +
InstrumentedHttpChannelListener$InstrumentedAsyncListener + + 40% + + + (2/5) + + + + 72.7% + + + (8/11) + +
Total + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty10;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import org.eclipse.jetty.http.HttpMethod;
+ import org.eclipse.jetty.server.AsyncContextState;
+ import org.eclipse.jetty.server.HttpChannel.Listener;
+ import org.eclipse.jetty.server.HttpChannelState;
+ import org.eclipse.jetty.server.Request;
+ 
+ import javax.servlet.AsyncEvent;
+ import javax.servlet.AsyncListener;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ import java.io.IOException;
+ import java.nio.ByteBuffer;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.EnumSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ 
+ /**
+  * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
+  * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
+  * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
+  *
+  * @since TBD
+  */
+ public class InstrumentedHttpChannelListener
+         implements Listener {
+     private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + ".start";
+     private static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+     private static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+ 
+     private final MetricRegistry metricRegistry;
+ 
+     // the requests handled by this handler, excluding active
+     private final Timer requests;
+ 
+     // the number of dispatches seen by this handler, excluding active
+     private final Timer dispatches;
+ 
+     // the number of active requests
+     private final Counter activeRequests;
+ 
+     // the number of active dispatches
+     private final Counter activeDispatches;
+ 
+     // the number of requests currently suspended.
+     private final Counter activeSuspended;
+ 
+     // the number of requests that have been asynchronously dispatched
+     private final Meter asyncDispatches;
+ 
+     // the number of requests that expired while suspended
+     private final Meter asyncTimeouts;
+ 
+     private final ResponseMeteredLevel responseMeteredLevel;
+     private final List<Meter> responses;
+     private final Map<Integer, Meter> responseCodeMeters;
+     private final String prefix;
+     private final Timer getRequests;
+     private final Timer postRequests;
+     private final Timer headRequests;
+     private final Timer putRequests;
+     private final Timer deleteRequests;
+     private final Timer optionsRequests;
+     private final Timer traceRequests;
+     private final Timer connectRequests;
+     private final Timer moveRequests;
+     private final Timer otherRequests;
+ 
+     private final AsyncListener listener;
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      */
+     public InstrumentedHttpChannelListener(MetricRegistry registry) {
+         this(registry, null, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param pref     the prefix to use for the metrics names
+      */
+     public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
+         this(registry, pref, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param pref     the prefix to use for the metrics names
+      * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
+      */
+     public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {
+         this.metricRegistry = registry;
+ 
+         this.prefix = (pref == null) ? getClass().getName() : pref;
+ 
+         this.requests = metricRegistry.timer(name(prefix, "requests"));
+         this.dispatches = metricRegistry.timer(name(prefix, "dispatches"));
+ 
+         this.activeRequests = metricRegistry.counter(name(prefix, "active-requests"));
+         this.activeDispatches = metricRegistry.counter(name(prefix, "active-dispatches"));
+         this.activeSuspended = metricRegistry.counter(name(prefix, "active-suspended"));
+ 
+         this.asyncDispatches = metricRegistry.meter(name(prefix, "async-dispatches"));
+         this.asyncTimeouts = metricRegistry.meter(name(prefix, "async-timeouts"));
+ 
+         this.responseMeteredLevel = responseMeteredLevel;
+         this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+         this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?
+                 Collections.unmodifiableList(Arrays.asList(
+                         registry.meter(name(prefix, "1xx-responses")), // 1xx
+                         registry.meter(name(prefix, "2xx-responses")), // 2xx
+                         registry.meter(name(prefix, "3xx-responses")), // 3xx
+                         registry.meter(name(prefix, "4xx-responses")), // 4xx
+                         registry.meter(name(prefix, "5xx-responses"))  // 5xx
+                 )) : Collections.emptyList();
+ 
+         this.getRequests = metricRegistry.timer(name(prefix, "get-requests"));
+         this.postRequests = metricRegistry.timer(name(prefix, "post-requests"));
+         this.headRequests = metricRegistry.timer(name(prefix, "head-requests"));
+         this.putRequests = metricRegistry.timer(name(prefix, "put-requests"));
+         this.deleteRequests = metricRegistry.timer(name(prefix, "delete-requests"));
+         this.optionsRequests = metricRegistry.timer(name(prefix, "options-requests"));
+         this.traceRequests = metricRegistry.timer(name(prefix, "trace-requests"));
+         this.connectRequests = metricRegistry.timer(name(prefix, "connect-requests"));
+         this.moveRequests = metricRegistry.timer(name(prefix, "move-requests"));
+         this.otherRequests = metricRegistry.timer(name(prefix, "other-requests"));
+ 
+         metricRegistry.register(name(prefix, "percent-4xx-1m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(3).getOneMinuteRate(),
+                         requests.getOneMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-4xx-5m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(3).getFiveMinuteRate(),
+                         requests.getFiveMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-4xx-15m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(3).getFifteenMinuteRate(),
+                         requests.getFifteenMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-5xx-1m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(4).getOneMinuteRate(),
+                         requests.getOneMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-5xx-5m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(4).getFiveMinuteRate(),
+                         requests.getFiveMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-5xx-15m"), new RatioGauge() {
+             @Override
+             public Ratio getRatio() {
+                 return Ratio.of(responses.get(4).getFifteenMinuteRate(),
+                         requests.getFifteenMinuteRate());
+             }
+         });
+ 
+         this.listener = new AsyncAttachingListener();
+     }
+ 
+     @Override
+     public void onRequestBegin(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onBeforeDispatch(final Request request) {
+         before(request);
+     }
+ 
+     @Override
+     public void onDispatchFailure(final Request request, final Throwable failure) {
+ 
+     }
+ 
+     @Override
+     public void onAfterDispatch(final Request request) {
+         after(request);
+     }
+ 
+     @Override
+     public void onRequestContent(final Request request, final ByteBuffer content) {
+ 
+     }
+ 
+     @Override
+     public void onRequestContentEnd(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onRequestTrailers(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onRequestEnd(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onRequestFailure(final Request request, final Throwable failure) {
+ 
+     }
+ 
+     @Override
+     public void onResponseBegin(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onResponseCommit(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onResponseContent(final Request request, final ByteBuffer content) {
+ 
+     }
+ 
+     @Override
+     public void onResponseEnd(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onResponseFailure(final Request request, final Throwable failure) {
+ 
+     }
+ 
+     @Override
+     public void onComplete(final Request request) {
+ 
+     }
+ 
+     private void before(final Request request) {
+         activeDispatches.inc();
+ 
+         final long start;
+         final HttpChannelState state = request.getHttpChannelState();
+         if (state.isInitial()) {
+             // new request
+             activeRequests.inc();
+             start = request.getTimeStamp();
+             state.addListener(listener);
+         } else {
+             // resumed request
+             start = System.currentTimeMillis();
+             activeSuspended.dec();
+             if (state.isAsyncStarted()) {
+                 asyncDispatches.mark();
+             }
+         }
+         request.setAttribute(START_ATTR, start);
+     }
+ 
+     private void after(final Request request) {
+         final long start = (long) request.getAttribute(START_ATTR);
+         final long now = System.currentTimeMillis();
+         final long dispatched = now - start;
+ 
+         activeDispatches.dec();
+         dispatches.update(dispatched, TimeUnit.MILLISECONDS);
+ 
+         final HttpChannelState state = request.getHttpChannelState();
+         if (state.isSuspended()) {
+             activeSuspended.inc();
+         } else if (state.isInitial()) {
+             updateResponses(request, request.getResponse(), start, request.isHandled());
+         }
+         // else onCompletion will handle it.
+     }
+ 
+     private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
+         if (isHandled) {
+             mark(response.getStatus());
+         } else {
+             mark(404); // will end up with a 404 response sent by HttpChannel.handle
+         }
+         activeRequests.dec();
+         final long elapsedTime = System.currentTimeMillis() - start;
+         requests.update(elapsedTime, TimeUnit.MILLISECONDS);
+         requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);
+     }
+ 
+     private void mark(int statusCode) {
+         if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {
+             getResponseCodeMeter(statusCode).mark();
+         }
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             final int responseStatus = statusCode / 100;
+             if (responseStatus >= 1 && responseStatus <= 5) {
+                 responses.get(responseStatus - 1).mark();
+             }
+         }
+     }
+ 
+     private Meter getResponseCodeMeter(int statusCode) {
+         return responseCodeMeters
+                 .computeIfAbsent(statusCode, sc -> metricRegistry
+                         .meter(name(prefix, String.format("%d-responses", sc))));
+     }
+ 
+     private Timer requestTimer(String method) {
+         final HttpMethod m = HttpMethod.fromString(method);
+         if (m == null) {
+             return otherRequests;
+         } else {
+             switch (m) {
+                 case GET:
+                     return getRequests;
+                 case POST:
+                     return postRequests;
+                 case PUT:
+                     return putRequests;
+                 case HEAD:
+                     return headRequests;
+                 case DELETE:
+                     return deleteRequests;
+                 case OPTIONS:
+                     return optionsRequests;
+                 case TRACE:
+                     return traceRequests;
+                 case CONNECT:
+                     return connectRequests;
+                 case MOVE:
+                     return moveRequests;
+                 default:
+                     return otherRequests;
+             }
+         }
+     }
+ 
+     private class AsyncAttachingListener implements AsyncListener {
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+             event.getAsyncContext().addListener(new InstrumentedAsyncListener());
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {}
+     };
+ 
+     private class InstrumentedAsyncListener implements AsyncListener {
+         private final long startTime;
+ 
+         InstrumentedAsyncListener() {
+             this.startTime = System.currentTimeMillis();
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             asyncTimeouts.mark();
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             final AsyncContextState state = (AsyncContextState) event.getAsyncContext();
+             final HttpServletRequest request = (HttpServletRequest) state.getRequest();
+             final HttpServletResponse response = (HttpServletResponse) state.getResponse();
+             updateResponses(request, response, startTime, true);
+             if (!state.getHttpChannelState().isSuspended()) {
+                 activeSuspended.dec();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-4.html new file mode 100644 index 0000000000..03cc3eb115 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-4.html @@ -0,0 +1,345 @@ + + + + + + + + Coverage Report > InstrumentedQueuedThreadPool + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty10)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 72.2% + + + (13/18) + + + + 84.4% + + + (27/32) + +
InstrumentedQueuedThreadPool$1 + + 50% + + + (1/2) + + + + 50% + + + (1/2) + +
InstrumentedQueuedThreadPool$2 + + 50% + + + (1/2) + + + + 50% + + + (1/2) + +
InstrumentedQueuedThreadPool$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
Total + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty10;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import org.eclipse.jetty.util.annotation.Name;
+ import org.eclipse.jetty.util.thread.QueuedThreadPool;
+ 
+ import java.util.concurrent.BlockingQueue;
+ import java.util.concurrent.ThreadFactory;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ public class InstrumentedQueuedThreadPool extends QueuedThreadPool {
+     private static final String NAME_UTILIZATION = "utilization";
+     private static final String NAME_UTILIZATION_MAX = "utilization-max";
+     private static final String NAME_SIZE = "size";
+     private static final String NAME_JOBS = "jobs";
+     private static final String NAME_JOBS_QUEUE_UTILIZATION = "jobs-queue-utilization";
+ 
+     private final MetricRegistry metricRegistry;
+     private String prefix;
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry) {
+         this(registry, 200);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads) {
+         this(registry, maxThreads, 8);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads) {
+         this(registry, maxThreads, minThreads, 60000);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue) {
+         this(registry, maxThreads, minThreads, 60000, queue);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout) {
+         this(registry, maxThreads, minThreads, idleTimeout, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue) {
+         this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("prefix") String prefix) {
+         this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadFactory") ThreadFactory threadFactory) {
+         this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup) {
+         this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("reservedThreads") int reservedThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup) {
+         this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("reservedThreads") int reservedThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup,
+                                         @Name("threadFactory") ThreadFactory threadFactory) {
+         this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("reservedThreads") int reservedThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup,
+                                         @Name("threadFactory") ThreadFactory threadFactory,
+                                         @Name("prefix") String prefix) {
+         super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);
+         this.metricRegistry = registry;
+         this.prefix = prefix;
+     }
+ 
+     public String getPrefix() {
+         return prefix;
+     }
+ 
+     public void setPrefix(String prefix) {
+         this.prefix = prefix;
+     }
+ 
+     @Override
+     protected void doStart() throws Exception {
+         super.doStart();
+ 
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(getThreads() - getIdleThreads(), getThreads());
+             }
+         });
+         metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());
+             }
+         });
+         // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
+         // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
+         metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);
+         metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -> getQueue().size());
+         metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 BlockingQueue<Runnable> queue = getQueue();
+                 return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());
+             }
+         });
+     }
+ 
+     @Override
+     protected void doStop() throws Exception {
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.remove(name(prefix, NAME_UTILIZATION));
+         metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));
+         metricRegistry.remove(name(prefix, NAME_SIZE));
+         metricRegistry.remove(name(prefix, NAME_JOBS));
+         metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));
+ 
+         super.doStop();
+     }
+ 
+     private String getMetricPrefix() {
+         return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index.html new file mode 100644 index 0000000000..53f204acc2 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..31f997a4e0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..c0b7ccec9a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..baa9dedd13 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..1943510a97 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..3a16c5dc70 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..7623d81e76 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..85c9c026f7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..40e978a564 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..42e2ae12b9 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-1.html new file mode 100644 index 0000000000..2a2a3db8b5 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-1.html @@ -0,0 +1,127 @@ + + + + + + + + Coverage Report > ResponseMeteredLevel + + + + + + +
+ + +

Coverage Summary for Class: ResponseMeteredLevel (com.codahale.metrics.annotation)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + +
+ package com.codahale.metrics.annotation;
+ 
+ /**
+  * {@link ResponseMeteredLevel} is a parameter for the {@link ResponseMetered} annotation.
+  * The constants of this enumerated type decide what meters are included when a class
+  * or method is annotated with the {@link ResponseMetered} annotation.
+  */
+ public enum ResponseMeteredLevel {
+     /**
+      * Include meters for 1xx/2xx/3xx/4xx/5xx responses
+      */
+     COARSE,
+ 
+     /**
+      * Include meters for every response code (200, 201, 303, 304, 401, 404, 501, etc.)
+      */
+     DETAILED,
+ 
+     /**
+      * Include meters for every response code in addition to top level 1xx/2xx/3xx/4xx/5xx responses
+      */
+     ALL;
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-2.html new file mode 100644 index 0000000000..5a8a3dcc39 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-2.html @@ -0,0 +1,121 @@ + + + + + + + + Coverage Report > CachedGauge + + + + + + +
+ + +

Coverage Summary for Class: CachedGauge (com.codahale.metrics.annotation)

+ + + + + + + + + +
Class
CachedGauge
+ +
+
+ + +
+ package com.codahale.metrics.annotation;
+ 
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * An annotation for marking a method as a gauge, which caches the result for a specified time.
+  *
+  * <p>
+  * Given a method like this:
+  * <pre><code>
+  *     {@literal @}CachedGauge(name = "queueSize", timeout = 30, timeoutUnit = TimeUnit.SECONDS)
+  *     public int getQueueSize() {
+  *         return queue.getSize();
+  *     }
+  *
+  * </code></pre>
+  * <p>
+  *
+  * A gauge for the defining class with the name queueSize will be created which uses the annotated method's
+  * return value as its value, and which caches the result for 30 seconds.
+  *
+  * @since 3.1
+  */
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE })
+ public @interface CachedGauge {
+ 
+     /**
+      * @return The name of the counter.
+      */
+     String name() default "";
+ 
+     /**
+      * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
+      * relative to the annotated class.
+      */
+     boolean absolute() default false;
+ 
+     /**
+      * @return The amount of time to cache the result
+      */
+     long timeout();
+ 
+     /**
+      * @return The unit of timeout
+      */
+     TimeUnit timeoutUnit() default TimeUnit.MILLISECONDS;
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-3.html new file mode 100644 index 0000000000..3b57ebb172 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-3.html @@ -0,0 +1,107 @@ + + + + + + + + Coverage Report > Metered + + + + + + +
+ + +

Coverage Summary for Class: Metered (com.codahale.metrics.annotation)

+ + + + + + + + + +
Class
Metered
+ +
+
+ + +
+ package com.codahale.metrics.annotation;
+ 
+ import java.lang.annotation.Documented;
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Inherited;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
+ 
+ /**
+  * An annotation for marking a method of an annotated object as metered.
+  * <p>
+  * Given a method like this:
+  * <pre><code>
+  *     {@literal @}Metered(name = "fancyName")
+  *     public String fancyName(String name) {
+  *         return "Sir Captain " + name;
+  *     }
+  * </code></pre>
+  * <p>
+  * A meter for the defining class with the name {@code fancyName} will be created and each time the
+  * {@code #fancyName(String)} method is invoked, the meter will be marked.
+  */
+ @Inherited
+ @Documented
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
+ public @interface Metered {
+     /**
+      * @return The name of the meter.
+      */
+     String name() default "";
+ 
+     /**
+      * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
+      * relative to the annotated class. When annotating a class, this must be {@code false}.
+      */
+     boolean absolute() default false;
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-4.html new file mode 100644 index 0000000000..6c45ff2188 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-4.html @@ -0,0 +1,121 @@ + + + + + + + + Coverage Report > Counted + + + + + + +
+ + +

Coverage Summary for Class: Counted (com.codahale.metrics.annotation)

+ + + + + + + + + +
Class
Counted
+ +
+
+ + +
+ package com.codahale.metrics.annotation;
+ 
+ import java.lang.annotation.Documented;
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Inherited;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
+ 
+ /**
+  * An annotation for marking a method of an annotated object as counted.
+  *
+  * <p>
+  * Given a method like this:
+  * <pre><code>
+  *     {@literal @}Counted(name = "fancyName")
+  *     public String fancyName(String name) {
+  *         return "Sir Captain " + name;
+  *     }
+  * </code></pre>
+  * <p>
+  * A counter for the defining class with the name {@code fancyName} will be created and each time the
+  * {@code #fancyName(String)} method is invoked, the counter will be marked.
+  *
+  * @since 3.1
+  */
+ @Inherited
+ @Documented
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
+ public @interface Counted {
+ 
+     /**
+      * @return The name of the counter.
+      */
+     String name() default "";
+ 
+     /**
+      * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
+      * relative to the annotated class. When annotating a class, this must be {@code false}.
+      */
+     boolean absolute() default false;
+ 
+     /**
+      * @return 
+      * If {@code false} (default), the counter is decremented when the annotated
+      * method returns, counting current invocations of the annotated method.
+      * If {@code true}, the counter increases monotonically, counting total
+      * invocations of the annotated method.
+      */
+     boolean monotonic() default false;
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-5.html new file mode 100644 index 0000000000..138db6c155 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-5.html @@ -0,0 +1,116 @@ + + + + + + + + Coverage Report > Metric + + + + + + +
+ + +

Coverage Summary for Class: Metric (com.codahale.metrics.annotation)

+ + + + + + + + + +
Class
Metric
+ +
+
+ + +
+ package com.codahale.metrics.annotation;
+ 
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
+ 
+ /**
+  * An annotation requesting that a metric be injected or registered.
+  *
+  * <p>
+  * Given a field like this:
+  * <pre><code>
+  *     {@literal @}Metric
+  *     public Histogram histogram;
+  * </code></pre>
+  * <p>
+  * A meter of the field's type will be created and injected into managed objects.
+  * It will be up to the user to interact with the metric. This annotation
+  * can be used on fields of type Meter, Timer, Counter, and Histogram.
+  *
+  * <p>
+  * This may also be used to register a metric, which is useful for creating a histogram with
+  * a custom Reservoir.
+  * <pre><code>
+  *     {@literal @}Metric
+  *     public Histogram uniformHistogram = new Histogram(new UniformReservoir());
+  * </code></pre>
+  * <p>
+  *
+  * @since 3.1
+  */
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
+ public @interface Metric {
+ 
+     /**
+      * @return The name of the metric.
+      */
+     String name() default "";
+ 
+     /**
+      * @return If {@code true}, use the given name as an absolute name. If {@code false},
+      * use the given name relative to the annotated class.
+      */
+     boolean absolute() default false;
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-6.html new file mode 100644 index 0000000000..98a2d816d6 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-6.html @@ -0,0 +1,107 @@ + + + + + + + + Coverage Report > Timed + + + + + + +
+ + +

Coverage Summary for Class: Timed (com.codahale.metrics.annotation)

+ + + + + + + + + +
Class
Timed
+ +
+
+ + +
+ package com.codahale.metrics.annotation;
+ 
+ import java.lang.annotation.Documented;
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Inherited;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
+ 
+ /**
+  * An annotation for marking a method of an annotated object as timed.
+  * <p>
+  * Given a method like this:
+  * <pre><code>
+  *     {@literal @}Timed(name = "fancyName")
+  *     public String fancyName(String name) {
+  *         return "Sir Captain " + name;
+  *     }
+  * </code></pre>
+  * <p>
+  * A timer for the defining class with the name {@code fancyName} will be created and each time the
+  * {@code #fancyName(String)} method is invoked, the method's execution will be timed.
+  */
+ @Inherited
+ @Documented
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
+ public @interface Timed {
+     /**
+      * @return The name of the timer.
+      */
+     String name() default "";
+ 
+     /**
+      * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
+      * relative to the annotated class. When annotating a class, this must be {@code false}.
+      */
+     boolean absolute() default false;
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-7.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-7.html new file mode 100644 index 0000000000..e3139643e0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-7.html @@ -0,0 +1,103 @@ + + + + + + + + Coverage Report > Gauge + + + + + + +
+ + +

Coverage Summary for Class: Gauge (com.codahale.metrics.annotation)

+ + + + + + + + + +
Class
Gauge
+ +
+
+ + +
+ package com.codahale.metrics.annotation;
+ 
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
+ 
+ /**
+  * An annotation for marking a method of an annotated object as a gauge.
+  * <p>
+  * Given a method like this:
+  * <pre><code>
+  *     {@literal @}Gauge(name = "queueSize")
+  *     public int getQueueSize() {
+  *         return queue.size;
+  *     }
+  * </code></pre>
+  * <p>
+  * A gauge for the defining class with the name {@code queueSize} will be created which uses the
+  * annotated method's return value as its value.
+  */
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE })
+ public @interface Gauge {
+     /**
+      * @return The gauge's name.
+      */
+     String name() default "";
+ 
+     /**
+      * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
+      * relative to the annotated class.
+      */
+     boolean absolute() default false;
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-8.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-8.html new file mode 100644 index 0000000000..de4ea12a16 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-8.html @@ -0,0 +1,133 @@ + + + + + + + + Coverage Report > ExceptionMetered + + + + + + +
+ + +

Coverage Summary for Class: ExceptionMetered (com.codahale.metrics.annotation)

+ + + + + + + + + +
Class
ExceptionMetered
+ +
+
+ + +
+ package com.codahale.metrics.annotation;
+ 
+ import java.lang.annotation.Documented;
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Inherited;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
+ 
+ /**
+  * An annotation for marking a method of an annotated object as metered.
+  * <p>
+  * Given a method like this:
+  * <pre><code>
+  *     {@literal @}ExceptionMetered(name = "fancyName", cause=IllegalArgumentException.class)
+  *     public String fancyName(String name) {
+  *         return "Sir Captain " + name;
+  *     }
+  * </code></pre>
+  * <p>
+  * A meter for the defining class with the name {@code fancyName} will be created and each time the
+  * {@code #fancyName(String)} throws an exception of type {@code cause} (or a subclass), the meter
+  * will be marked.
+  * <p>
+  * A name for the metric can be specified as an annotation parameter, otherwise, the metric will be
+  * named based on the method name.
+  * <p>
+  * For instance, given a declaration of
+  * <pre><code>
+  *     {@literal @}ExceptionMetered
+  *     public String fancyName(String name) {
+  *         return "Sir Captain " + name;
+  *     }
+  * </code></pre>
+  * <p>
+  * A meter named {@code fancyName.exceptions} will be created and marked every time an exception is
+  * thrown.
+  */
+ @Inherited
+ @Documented
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
+ public @interface ExceptionMetered {
+     /**
+      * The default suffix for meter names.
+      */
+     String DEFAULT_NAME_SUFFIX = "exceptions";
+ 
+     /**
+      * @return The name of the meter. If not specified, the meter will be given a name based on the method
+      * it decorates and the suffix "Exceptions".
+      */
+     String name() default "";
+ 
+     /**
+      * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
+      * relative to the annotated class. When annotating a class, this must be {@code false}.
+      */
+     boolean absolute() default false;
+ 
+     /**
+      * @return The type of exceptions that the meter will catch and count.
+      */
+     Class<? extends Throwable> cause() default Exception.class;
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-9.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-9.html new file mode 100644 index 0000000000..5050796f36 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-9.html @@ -0,0 +1,113 @@ + + + + + + + + Coverage Report > ResponseMetered + + + + + + +
+ + +

Coverage Summary for Class: ResponseMetered (com.codahale.metrics.annotation)

+ + + + + + + + + +
Class
ResponseMetered
+ +
+
+ + +
+ package com.codahale.metrics.annotation;
+ 
+ import java.lang.annotation.Documented;
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Inherited;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
+ 
+ /**
+  * An annotation for marking a method of an annotated object as metered.
+  * <p>
+  * Given a method like this:
+  * <pre><code>
+  *     {@literal @}ResponseMetered(name = "fancyName", level = ResponseMeteredLevel.ALL)
+  *     public String fancyName(String name) {
+  *         return "Sir Captain " + name;
+  *     }
+  * </code></pre>
+  * <p>
+  * Meters for the defining class with the name {@code fancyName} will be created for response codes
+  * based on the ResponseMeteredLevel selected. Each time the {@code #fancyName(String)} method is invoked,
+  * the appropriate response meter will be marked.
+  */
+ @Inherited
+ @Documented
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
+ public @interface ResponseMetered {
+     /**
+      * @return The name of the meter.
+      */
+     String name() default "";
+ 
+     /**
+      * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
+      * relative to the annotated class. When annotating a class, this must be {@code false}.
+      */
+     boolean absolute() default false;
+ 
+     /**
+      * @return the ResponseMeteredLevel which decides which response code meters are marked.
+      */
+     ResponseMeteredLevel level() default ResponseMeteredLevel.COARSE;
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index.html new file mode 100644 index 0000000000..0fc443a238 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-20/index.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..e335bcb752 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..e8b11df121 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..3871d3f054 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..ea7320e6b6 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..a9be20ba86 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_LINE.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..6340edfc9a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..ab09b3ff9b --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..b6c9f99b54 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..c2f1c66d94 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 0% + + + (0/2) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-1.html new file mode 100644 index 0000000000..5eac92f9ba --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-1.html @@ -0,0 +1,193 @@ + + + + + + + + Coverage Report > InstrumentedConnectionFactory + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty11)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedConnectionFactory + + 83.3% + + + (5/6) + + + + 91.7% + + + (11/12) + +
InstrumentedConnectionFactory$1 + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
Total + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty11;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Timer;
+ import org.eclipse.jetty.io.Connection;
+ import org.eclipse.jetty.io.EndPoint;
+ import org.eclipse.jetty.server.ConnectionFactory;
+ import org.eclipse.jetty.server.Connector;
+ import org.eclipse.jetty.util.component.ContainerLifeCycle;
+ 
+ import java.util.List;
+ 
+ public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {
+     private final ConnectionFactory connectionFactory;
+     private final Timer timer;
+     private final Counter counter;
+ 
+     public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
+         this(connectionFactory, timer, null);
+     }
+ 
+     public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {
+         this.connectionFactory = connectionFactory;
+         this.timer = timer;
+         this.counter = counter;
+         addBean(connectionFactory);
+     }
+ 
+     @Override
+     public String getProtocol() {
+         return connectionFactory.getProtocol();
+     }
+ 
+     @Override
+     public List<String> getProtocols() {
+         return connectionFactory.getProtocols();
+     }
+ 
+     @Override
+     public Connection newConnection(Connector connector, EndPoint endPoint) {
+         final Connection connection = connectionFactory.newConnection(connector, endPoint);
+         connection.addEventListener(new Connection.Listener() {
+             private Timer.Context context;
+ 
+             @Override
+             public void onOpened(Connection connection) {
+                 this.context = timer.time();
+                 if (counter != null) {
+                     counter.inc();
+                 }
+             }
+ 
+             @Override
+             public void onClosed(Connection connection) {
+                 context.stop();
+                 if (counter != null) {
+                     counter.dec();
+                 }
+             }
+         });
+         return connection;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-2.html new file mode 100644 index 0000000000..87ee28e0a2 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-2.html @@ -0,0 +1,745 @@ + + + + + + + + Coverage Report > InstrumentedHandler + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty11)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
InstrumentedHandler + + 81.2% + + + (13/16) + + + + 86.3% + + + (113/131) + +
InstrumentedHandler$1 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$2 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$4 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$5 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$6 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$7 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
InstrumentedHandler$AsyncAttachingListener + + 20% + + + (1/5) + + + + 20% + + + (1/5) + +
InstrumentedHandler$InstrumentedAsyncListener + + 0% + + + (0/5) + + + + 0% + + + (0/2) + + + + 0% + + + (0/11) + +
Total + + 53.8% + + + (21/39) + + + + 0% + + + (0/2) + + + + 72.9% + + + (121/166) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty11;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import jakarta.servlet.AsyncEvent;
+ import jakarta.servlet.AsyncListener;
+ import jakarta.servlet.ServletException;
+ import jakarta.servlet.http.HttpServletRequest;
+ import jakarta.servlet.http.HttpServletResponse;
+ import org.eclipse.jetty.http.HttpMethod;
+ import org.eclipse.jetty.server.AsyncContextState;
+ import org.eclipse.jetty.server.Handler;
+ import org.eclipse.jetty.server.HttpChannelState;
+ import org.eclipse.jetty.server.Request;
+ import org.eclipse.jetty.server.handler.HandlerWrapper;
+ 
+ import java.io.IOException;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.EnumSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ 
+ /**
+  * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
+  * instance.
+  */
+ public class InstrumentedHandler extends HandlerWrapper {
+     private static final String NAME_REQUESTS = "requests";
+     private static final String NAME_DISPATCHES = "dispatches";
+     private static final String NAME_ACTIVE_REQUESTS = "active-requests";
+     private static final String NAME_ACTIVE_DISPATCHES = "active-dispatches";
+     private static final String NAME_ACTIVE_SUSPENDED = "active-suspended";
+     private static final String NAME_ASYNC_DISPATCHES = "async-dispatches";
+     private static final String NAME_ASYNC_TIMEOUTS = "async-timeouts";
+     private static final String NAME_1XX_RESPONSES = "1xx-responses";
+     private static final String NAME_2XX_RESPONSES = "2xx-responses";
+     private static final String NAME_3XX_RESPONSES = "3xx-responses";
+     private static final String NAME_4XX_RESPONSES = "4xx-responses";
+     private static final String NAME_5XX_RESPONSES = "5xx-responses";
+     private static final String NAME_GET_REQUESTS = "get-requests";
+     private static final String NAME_POST_REQUESTS = "post-requests";
+     private static final String NAME_HEAD_REQUESTS = "head-requests";
+     private static final String NAME_PUT_REQUESTS = "put-requests";
+     private static final String NAME_DELETE_REQUESTS = "delete-requests";
+     private static final String NAME_OPTIONS_REQUESTS = "options-requests";
+     private static final String NAME_TRACE_REQUESTS = "trace-requests";
+     private static final String NAME_CONNECT_REQUESTS = "connect-requests";
+     private static final String NAME_MOVE_REQUESTS = "move-requests";
+     private static final String NAME_OTHER_REQUESTS = "other-requests";
+     private static final String NAME_PERCENT_4XX_1M = "percent-4xx-1m";
+     private static final String NAME_PERCENT_4XX_5M = "percent-4xx-5m";
+     private static final String NAME_PERCENT_4XX_15M = "percent-4xx-15m";
+     private static final String NAME_PERCENT_5XX_1M = "percent-5xx-1m";
+     private static final String NAME_PERCENT_5XX_5M = "percent-5xx-5m";
+     private static final String NAME_PERCENT_5XX_15M = "percent-5xx-15m";
+     private static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+     private static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+ 
+     private final MetricRegistry metricRegistry;
+ 
+     private String name;
+     private final String prefix;
+ 
+     // the requests handled by this handler, excluding active
+     private Timer requests;
+ 
+     // the number of dispatches seen by this handler, excluding active
+     private Timer dispatches;
+ 
+     // the number of active requests
+     private Counter activeRequests;
+ 
+     // the number of active dispatches
+     private Counter activeDispatches;
+ 
+     // the number of requests currently suspended.
+     private Counter activeSuspended;
+ 
+     // the number of requests that have been asynchronously dispatched
+     private Meter asyncDispatches;
+ 
+     // the number of requests that expired while suspended
+     private Meter asyncTimeouts;
+ 
+     private final ResponseMeteredLevel responseMeteredLevel;
+     private List<Meter> responses;
+     private Map<Integer, Meter> responseCodeMeters;
+ 
+     private Timer getRequests;
+     private Timer postRequests;
+     private Timer headRequests;
+     private Timer putRequests;
+     private Timer deleteRequests;
+     private Timer optionsRequests;
+     private Timer traceRequests;
+     private Timer connectRequests;
+     private Timer moveRequests;
+     private Timer otherRequests;
+ 
+     private AsyncListener listener;
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      */
+     public InstrumentedHandler(MetricRegistry registry) {
+         this(registry, null);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      */
+     public InstrumentedHandler(MetricRegistry registry, String prefix) {
+         this(registry, prefix, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
+      */
+     public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {
+         this.responseMeteredLevel = responseMeteredLevel;
+         this.metricRegistry = registry;
+         this.prefix = prefix;
+     }
+ 
+     public String getName() {
+         return name;
+     }
+ 
+     public void setName(String name) {
+         this.name = name;
+     }
+ 
+     @Override
+     protected void doStart() throws Exception {
+         super.doStart();
+ 
+         final String prefix = getMetricPrefix();
+ 
+         this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));
+         this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));
+ 
+         this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));
+         this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));
+         this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));
+ 
+         this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));
+         this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));
+ 
+         this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+ 
+         this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));
+         this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));
+         this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));
+         this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));
+         this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));
+         this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));
+         this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));
+         this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));
+         this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));
+         this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             this.responses = Collections.unmodifiableList(Arrays.asList(
+                             metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx
+                             metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx
+                             metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx
+                             metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx
+                             metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx
+                     ));
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getOneMinuteRate(),
+                             requests.getOneMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getFiveMinuteRate(),
+                             requests.getFiveMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getFifteenMinuteRate(),
+                             requests.getFifteenMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getOneMinuteRate(),
+                             requests.getOneMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getFiveMinuteRate(),
+                             requests.getFiveMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {
+                 @Override
+                 public Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getFifteenMinuteRate(),
+                             requests.getFifteenMinuteRate());
+                 }
+             });
+         } else {
+             this.responses = Collections.emptyList();
+         }
+ 
+ 
+         this.listener = new AsyncAttachingListener();
+     }
+ 
+     @Override
+     protected void doStop() throws Exception {
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.remove(name(prefix, NAME_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));
+         metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));
+         metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));
+ 
+         if (responseCodeMeters != null) {
+             responseCodeMeters.keySet().stream()
+                     .map(sc -> name(getMetricPrefix(), String.format("%d-responses", sc)))
+                     .forEach(metricRegistry::remove);
+         }
+         super.doStop();
+     }
+ 
+     @Override
+     public void handle(String path,
+                        Request request,
+                        HttpServletRequest httpRequest,
+                        HttpServletResponse httpResponse) throws IOException, ServletException {
+ 
+         activeDispatches.inc();
+ 
+         final long start;
+         final HttpChannelState state = request.getHttpChannelState();
+         if (state.isInitial()) {
+             // new request
+             activeRequests.inc();
+             start = request.getTimeStamp();
+             state.addListener(listener);
+         } else {
+             // resumed request
+             start = System.currentTimeMillis();
+             activeSuspended.dec();
+             if (state.getState() == HttpChannelState.State.HANDLING) {
+                 asyncDispatches.mark();
+             }
+         }
+ 
+         try {
+             super.handle(path, request, httpRequest, httpResponse);
+         } finally {
+             final long now = System.currentTimeMillis();
+             final long dispatched = now - start;
+ 
+             activeDispatches.dec();
+             dispatches.update(dispatched, TimeUnit.MILLISECONDS);
+ 
+             if (state.isSuspended()) {
+                 activeSuspended.inc();
+             } else if (state.isInitial()) {
+                 updateResponses(httpRequest, httpResponse, start, request.isHandled());
+             }
+             // else onCompletion will handle it.
+         }
+     }
+ 
+     private Timer requestTimer(String method) {
+         final HttpMethod m = HttpMethod.fromString(method);
+         if (m == null) {
+             return otherRequests;
+         } else {
+             switch (m) {
+                 case GET:
+                     return getRequests;
+                 case POST:
+                     return postRequests;
+                 case PUT:
+                     return putRequests;
+                 case HEAD:
+                     return headRequests;
+                 case DELETE:
+                     return deleteRequests;
+                 case OPTIONS:
+                     return optionsRequests;
+                 case TRACE:
+                     return traceRequests;
+                 case CONNECT:
+                     return connectRequests;
+                 case MOVE:
+                     return moveRequests;
+                 default:
+                     return otherRequests;
+             }
+         }
+     }
+ 
+     private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
+         if (isHandled) {
+             mark(response.getStatus());
+         } else {
+             mark(404);; // will end up with a 404 response sent by HttpChannel.handle
+         }
+         activeRequests.dec();
+         final long elapsedTime = System.currentTimeMillis() - start;
+         requests.update(elapsedTime, TimeUnit.MILLISECONDS);
+         requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);
+     }
+ 
+     private void mark(int statusCode) {
+         if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {
+             getResponseCodeMeter(statusCode).mark();
+         }
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             final int responseStatus = statusCode / 100;
+             if (responseStatus >= 1 && responseStatus <= 5) {
+                 responses.get(responseStatus - 1).mark();
+             }
+         }
+     }
+ 
+     private Meter getResponseCodeMeter(int statusCode) {
+         return responseCodeMeters
+                 .computeIfAbsent(statusCode, sc -> metricRegistry
+                         .meter(name(getMetricPrefix(), String.format("%d-responses", sc))));
+     }
+ 
+     private String getMetricPrefix() {
+         return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);
+     }
+ 
+     private class AsyncAttachingListener implements AsyncListener {
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+             event.getAsyncContext().addListener(new InstrumentedAsyncListener());
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {}
+     };
+ 
+     private class InstrumentedAsyncListener implements AsyncListener {
+         private final long startTime;
+ 
+         InstrumentedAsyncListener() {
+             this.startTime = System.currentTimeMillis();
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             asyncTimeouts.mark();
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             final AsyncContextState state = (AsyncContextState) event.getAsyncContext();
+             final HttpServletRequest request = (HttpServletRequest) state.getRequest();
+             final HttpServletResponse response = (HttpServletResponse) state.getResponse();
+             updateResponses(request, response, startTime, true);
+             if (!state.getHttpChannelState().isSuspended()) {
+                 activeSuspended.dec();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-3.html new file mode 100644 index 0000000000..6dc9af81ef --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-3.html @@ -0,0 +1,706 @@ + + + + + + + + Coverage Report > InstrumentedHttpChannelListener + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty11)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedHttpChannelListener + + 74.1% + + + (20/27) + + + + 82.6% + + + (90/109) + +
InstrumentedHttpChannelListener$1 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$2 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$4 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$5 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$6 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$7 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
InstrumentedHttpChannelListener$AsyncAttachingListener + + 40% + + + (2/5) + + + + 40% + + + (2/5) + +
InstrumentedHttpChannelListener$InstrumentedAsyncListener + + 40% + + + (2/5) + + + + 72.7% + + + (8/11) + +
Total + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty11;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import jakarta.servlet.AsyncEvent;
+ import jakarta.servlet.AsyncListener;
+ import jakarta.servlet.http.HttpServletRequest;
+ import jakarta.servlet.http.HttpServletResponse;
+ import org.eclipse.jetty.http.HttpMethod;
+ import org.eclipse.jetty.server.AsyncContextState;
+ import org.eclipse.jetty.server.HttpChannel.Listener;
+ import org.eclipse.jetty.server.HttpChannelState;
+ import org.eclipse.jetty.server.Request;
+ 
+ import java.io.IOException;
+ import java.nio.ByteBuffer;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.EnumSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ 
+ /**
+  * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
+  * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
+  * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
+  *
+  * @since TBD
+  */
+ public class InstrumentedHttpChannelListener
+         implements Listener {
+     private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + ".start";
+     private static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+     private static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+ 
+     private final MetricRegistry metricRegistry;
+ 
+     // the requests handled by this handler, excluding active
+     private final Timer requests;
+ 
+     // the number of dispatches seen by this handler, excluding active
+     private final Timer dispatches;
+ 
+     // the number of active requests
+     private final Counter activeRequests;
+ 
+     // the number of active dispatches
+     private final Counter activeDispatches;
+ 
+     // the number of requests currently suspended.
+     private final Counter activeSuspended;
+ 
+     // the number of requests that have been asynchronously dispatched
+     private final Meter asyncDispatches;
+ 
+     // the number of requests that expired while suspended
+     private final Meter asyncTimeouts;
+ 
+     private final ResponseMeteredLevel responseMeteredLevel;
+     private final List<Meter> responses;
+     private final Map<Integer, Meter> responseCodeMeters;
+     private final String prefix;
+     private final Timer getRequests;
+     private final Timer postRequests;
+     private final Timer headRequests;
+     private final Timer putRequests;
+     private final Timer deleteRequests;
+     private final Timer optionsRequests;
+     private final Timer traceRequests;
+     private final Timer connectRequests;
+     private final Timer moveRequests;
+     private final Timer otherRequests;
+ 
+     private final AsyncListener listener;
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      */
+     public InstrumentedHttpChannelListener(MetricRegistry registry) {
+         this(registry, null, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param pref     the prefix to use for the metrics names
+      */
+     public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
+         this(registry, pref, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param pref     the prefix to use for the metrics names
+      * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
+      */
+     public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {
+         this.metricRegistry = registry;
+ 
+         this.prefix = (pref == null) ? getClass().getName() : pref;
+ 
+         this.requests = metricRegistry.timer(name(prefix, "requests"));
+         this.dispatches = metricRegistry.timer(name(prefix, "dispatches"));
+ 
+         this.activeRequests = metricRegistry.counter(name(prefix, "active-requests"));
+         this.activeDispatches = metricRegistry.counter(name(prefix, "active-dispatches"));
+         this.activeSuspended = metricRegistry.counter(name(prefix, "active-suspended"));
+ 
+         this.asyncDispatches = metricRegistry.meter(name(prefix, "async-dispatches"));
+         this.asyncTimeouts = metricRegistry.meter(name(prefix, "async-timeouts"));
+ 
+         this.responseMeteredLevel = responseMeteredLevel;
+         this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+         this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?
+                 Collections.unmodifiableList(Arrays.asList(
+                         registry.meter(name(prefix, "1xx-responses")), // 1xx
+                         registry.meter(name(prefix, "2xx-responses")), // 2xx
+                         registry.meter(name(prefix, "3xx-responses")), // 3xx
+                         registry.meter(name(prefix, "4xx-responses")), // 4xx
+                         registry.meter(name(prefix, "5xx-responses"))  // 5xx
+                 )) : Collections.emptyList();
+ 
+         this.getRequests = metricRegistry.timer(name(prefix, "get-requests"));
+         this.postRequests = metricRegistry.timer(name(prefix, "post-requests"));
+         this.headRequests = metricRegistry.timer(name(prefix, "head-requests"));
+         this.putRequests = metricRegistry.timer(name(prefix, "put-requests"));
+         this.deleteRequests = metricRegistry.timer(name(prefix, "delete-requests"));
+         this.optionsRequests = metricRegistry.timer(name(prefix, "options-requests"));
+         this.traceRequests = metricRegistry.timer(name(prefix, "trace-requests"));
+         this.connectRequests = metricRegistry.timer(name(prefix, "connect-requests"));
+         this.moveRequests = metricRegistry.timer(name(prefix, "move-requests"));
+         this.otherRequests = metricRegistry.timer(name(prefix, "other-requests"));
+ 
+         metricRegistry.register(name(prefix, "percent-4xx-1m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(3).getOneMinuteRate(),
+                         requests.getOneMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-4xx-5m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(3).getFiveMinuteRate(),
+                         requests.getFiveMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-4xx-15m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(3).getFifteenMinuteRate(),
+                         requests.getFifteenMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-5xx-1m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(4).getOneMinuteRate(),
+                         requests.getOneMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-5xx-5m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(4).getFiveMinuteRate(),
+                         requests.getFiveMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-5xx-15m"), new RatioGauge() {
+             @Override
+             public Ratio getRatio() {
+                 return Ratio.of(responses.get(4).getFifteenMinuteRate(),
+                         requests.getFifteenMinuteRate());
+             }
+         });
+ 
+         this.listener = new AsyncAttachingListener();
+     }
+ 
+     @Override
+     public void onRequestBegin(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onBeforeDispatch(final Request request) {
+         before(request);
+     }
+ 
+     @Override
+     public void onDispatchFailure(final Request request, final Throwable failure) {
+ 
+     }
+ 
+     @Override
+     public void onAfterDispatch(final Request request) {
+         after(request);
+     }
+ 
+     @Override
+     public void onRequestContent(final Request request, final ByteBuffer content) {
+ 
+     }
+ 
+     @Override
+     public void onRequestContentEnd(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onRequestTrailers(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onRequestEnd(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onRequestFailure(final Request request, final Throwable failure) {
+ 
+     }
+ 
+     @Override
+     public void onResponseBegin(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onResponseCommit(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onResponseContent(final Request request, final ByteBuffer content) {
+ 
+     }
+ 
+     @Override
+     public void onResponseEnd(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onResponseFailure(final Request request, final Throwable failure) {
+ 
+     }
+ 
+     @Override
+     public void onComplete(final Request request) {
+ 
+     }
+ 
+     private void before(final Request request) {
+         activeDispatches.inc();
+ 
+         final long start;
+         final HttpChannelState state = request.getHttpChannelState();
+         if (state.isInitial()) {
+             // new request
+             activeRequests.inc();
+             start = request.getTimeStamp();
+             state.addListener(listener);
+         } else {
+             // resumed request
+             start = System.currentTimeMillis();
+             activeSuspended.dec();
+             if (state.isAsyncStarted()) {
+                 asyncDispatches.mark();
+             }
+         }
+         request.setAttribute(START_ATTR, start);
+     }
+ 
+     private void after(final Request request) {
+         final long start = (long) request.getAttribute(START_ATTR);
+         final long now = System.currentTimeMillis();
+         final long dispatched = now - start;
+ 
+         activeDispatches.dec();
+         dispatches.update(dispatched, TimeUnit.MILLISECONDS);
+ 
+         final HttpChannelState state = request.getHttpChannelState();
+         if (state.isSuspended()) {
+             activeSuspended.inc();
+         } else if (state.isInitial()) {
+             updateResponses(request, request.getResponse(), start, request.isHandled());
+         }
+         // else onCompletion will handle it.
+     }
+ 
+     private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
+         if (isHandled) {
+             mark(response.getStatus());
+         } else {
+             mark(404); // will end up with a 404 response sent by HttpChannel.handle
+         }
+         activeRequests.dec();
+         final long elapsedTime = System.currentTimeMillis() - start;
+         requests.update(elapsedTime, TimeUnit.MILLISECONDS);
+         requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);
+     }
+ 
+     private void mark(int statusCode) {
+         if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {
+             getResponseCodeMeter(statusCode).mark();
+         }
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             final int responseStatus = statusCode / 100;
+             if (responseStatus >= 1 && responseStatus <= 5) {
+                 responses.get(responseStatus - 1).mark();
+             }
+         }
+     }
+ 
+     private Meter getResponseCodeMeter(int statusCode) {
+         return responseCodeMeters
+                 .computeIfAbsent(statusCode, sc -> metricRegistry
+                         .meter(name(prefix, String.format("%d-responses", sc))));
+     }
+ 
+     private Timer requestTimer(String method) {
+         final HttpMethod m = HttpMethod.fromString(method);
+         if (m == null) {
+             return otherRequests;
+         } else {
+             switch (m) {
+                 case GET:
+                     return getRequests;
+                 case POST:
+                     return postRequests;
+                 case PUT:
+                     return putRequests;
+                 case HEAD:
+                     return headRequests;
+                 case DELETE:
+                     return deleteRequests;
+                 case OPTIONS:
+                     return optionsRequests;
+                 case TRACE:
+                     return traceRequests;
+                 case CONNECT:
+                     return connectRequests;
+                 case MOVE:
+                     return moveRequests;
+                 default:
+                     return otherRequests;
+             }
+         }
+     }
+ 
+     private class AsyncAttachingListener implements AsyncListener {
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+             event.getAsyncContext().addListener(new InstrumentedAsyncListener());
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {}
+     };
+ 
+     private class InstrumentedAsyncListener implements AsyncListener {
+         private final long startTime;
+ 
+         InstrumentedAsyncListener() {
+             this.startTime = System.currentTimeMillis();
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             asyncTimeouts.mark();
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             final AsyncContextState state = (AsyncContextState) event.getAsyncContext();
+             final HttpServletRequest request = (HttpServletRequest) state.getRequest();
+             final HttpServletResponse response = (HttpServletResponse) state.getResponse();
+             updateResponses(request, response, startTime, true);
+             if (!state.getHttpChannelState().isSuspended()) {
+                 activeSuspended.dec();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-4.html new file mode 100644 index 0000000000..32f31432af --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-4.html @@ -0,0 +1,345 @@ + + + + + + + + Coverage Report > InstrumentedQueuedThreadPool + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty11)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 72.2% + + + (13/18) + + + + 84.4% + + + (27/32) + +
InstrumentedQueuedThreadPool$1 + + 50% + + + (1/2) + + + + 50% + + + (1/2) + +
InstrumentedQueuedThreadPool$2 + + 50% + + + (1/2) + + + + 50% + + + (1/2) + +
InstrumentedQueuedThreadPool$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
Total + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty11;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import org.eclipse.jetty.util.annotation.Name;
+ import org.eclipse.jetty.util.thread.QueuedThreadPool;
+ 
+ import java.util.concurrent.BlockingQueue;
+ import java.util.concurrent.ThreadFactory;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ public class InstrumentedQueuedThreadPool extends QueuedThreadPool {
+     private static final String NAME_UTILIZATION = "utilization";
+     private static final String NAME_UTILIZATION_MAX = "utilization-max";
+     private static final String NAME_SIZE = "size";
+     private static final String NAME_JOBS = "jobs";
+     private static final String NAME_JOBS_QUEUE_UTILIZATION = "jobs-queue-utilization";
+ 
+     private final MetricRegistry metricRegistry;
+     private String prefix;
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry) {
+         this(registry, 200);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads) {
+         this(registry, maxThreads, 8);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads) {
+         this(registry, maxThreads, minThreads, 60000);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue) {
+         this(registry, maxThreads, minThreads, 60000, queue);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout) {
+         this(registry, maxThreads, minThreads, idleTimeout, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue) {
+         this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("prefix") String prefix) {
+         this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadFactory") ThreadFactory threadFactory) {
+         this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup) {
+         this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("reservedThreads") int reservedThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup) {
+         this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("reservedThreads") int reservedThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup,
+                                         @Name("threadFactory") ThreadFactory threadFactory) {
+         this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("reservedThreads") int reservedThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup,
+                                         @Name("threadFactory") ThreadFactory threadFactory,
+                                         @Name("prefix") String prefix) {
+         super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);
+         this.metricRegistry = registry;
+         this.prefix = prefix;
+     }
+ 
+     public String getPrefix() {
+         return prefix;
+     }
+ 
+     public void setPrefix(String prefix) {
+         this.prefix = prefix;
+     }
+ 
+     @Override
+     protected void doStart() throws Exception {
+         super.doStart();
+ 
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(getThreads() - getIdleThreads(), getThreads());
+             }
+         });
+         metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());
+             }
+         });
+         metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);
+         // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
+         // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
+         metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -> getQueue().size());
+         metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 BlockingQueue<Runnable> queue = getQueue();
+                 return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());
+             }
+         });
+     }
+ 
+     @Override
+     protected void doStop() throws Exception {
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.remove(name(prefix, NAME_UTILIZATION));
+         metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));
+         metricRegistry.remove(name(prefix, NAME_SIZE));
+         metricRegistry.remove(name(prefix, NAME_JOBS));
+         metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));
+ 
+         super.doStop();
+     }
+ 
+     private String getMetricPrefix() {
+         return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index.html new file mode 100644 index 0000000000..7cb282582e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-21/index.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..b014dace19 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..b16dee2a94 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..3c1866d462 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..9563821099 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..f60c0709e7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_LINE.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..b4a710f4cf --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..9524603bc2 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..5864e08144 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..5ba4b8bc5a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-1.html new file mode 100644 index 0000000000..9654c90853 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-1.html @@ -0,0 +1,584 @@ + + + + + + + + Coverage Report > AbstractInstrumentedHandler + + + + + + +
+ + +

Coverage Summary for Class: AbstractInstrumentedHandler (io.dropwizard.metrics.jetty12)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
AbstractInstrumentedHandler + + 85.7% + + + (12/14) + + + + 88.1% + + + (96/109) + +
AbstractInstrumentedHandler$1 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
AbstractInstrumentedHandler$2 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
AbstractInstrumentedHandler$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
AbstractInstrumentedHandler$4 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
AbstractInstrumentedHandler$5 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
AbstractInstrumentedHandler$6 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
AbstractInstrumentedHandler$7 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
Total + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty12;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import org.eclipse.jetty.http.HttpMethod;
+ import org.eclipse.jetty.server.Handler;
+ import org.eclipse.jetty.server.Request;
+ import org.eclipse.jetty.server.Response;
+ 
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.EnumSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ 
+ /**
+  * An abstract base class of a Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
+  * instance.
+  */
+ public abstract class AbstractInstrumentedHandler extends Handler.Wrapper {
+     protected static final String NAME_REQUESTS = "requests";
+     protected static final String NAME_DISPATCHES = "dispatches";
+     protected static final String NAME_ACTIVE_REQUESTS = "active-requests";
+     protected static final String NAME_ACTIVE_DISPATCHES = "active-dispatches";
+     protected static final String NAME_ACTIVE_SUSPENDED = "active-suspended";
+     protected static final String NAME_ASYNC_DISPATCHES = "async-dispatches";
+     protected static final String NAME_ASYNC_TIMEOUTS = "async-timeouts";
+     protected static final String NAME_1XX_RESPONSES = "1xx-responses";
+     protected static final String NAME_2XX_RESPONSES = "2xx-responses";
+     protected static final String NAME_3XX_RESPONSES = "3xx-responses";
+     protected static final String NAME_4XX_RESPONSES = "4xx-responses";
+     protected static final String NAME_5XX_RESPONSES = "5xx-responses";
+     protected static final String NAME_GET_REQUESTS = "get-requests";
+     protected static final String NAME_POST_REQUESTS = "post-requests";
+     protected static final String NAME_HEAD_REQUESTS = "head-requests";
+     protected static final String NAME_PUT_REQUESTS = "put-requests";
+     protected static final String NAME_DELETE_REQUESTS = "delete-requests";
+     protected static final String NAME_OPTIONS_REQUESTS = "options-requests";
+     protected static final String NAME_TRACE_REQUESTS = "trace-requests";
+     protected static final String NAME_CONNECT_REQUESTS = "connect-requests";
+     protected static final String NAME_MOVE_REQUESTS = "move-requests";
+     protected static final String NAME_OTHER_REQUESTS = "other-requests";
+     protected static final String NAME_PERCENT_4XX_1M = "percent-4xx-1m";
+     protected static final String NAME_PERCENT_4XX_5M = "percent-4xx-5m";
+     protected static final String NAME_PERCENT_4XX_15M = "percent-4xx-15m";
+     protected static final String NAME_PERCENT_5XX_1M = "percent-5xx-1m";
+     protected static final String NAME_PERCENT_5XX_5M = "percent-5xx-5m";
+     protected static final String NAME_PERCENT_5XX_15M = "percent-5xx-15m";
+     protected static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+     protected static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+ 
+     protected final MetricRegistry metricRegistry;
+ 
+     private String name;
+     protected final String prefix;
+ 
+     // the requests handled by this handler, excluding active
+     protected Timer requests;
+ 
+     // the number of dispatches seen by this handler, excluding active
+     protected Timer dispatches;
+ 
+     // the number of active requests
+     protected Counter activeRequests;
+ 
+     // the number of active dispatches
+     protected Counter activeDispatches;
+ 
+     // the number of requests currently suspended.
+     protected Counter activeSuspended;
+ 
+     // the number of requests that have been asynchronously dispatched
+     protected Meter asyncDispatches;
+ 
+     // the number of requests that expired while suspended
+     protected Meter asyncTimeouts;
+ 
+     protected final ResponseMeteredLevel responseMeteredLevel;
+     protected List<Meter> responses;
+     protected Map<Integer, Meter> responseCodeMeters;
+ 
+     protected Timer getRequests;
+     protected Timer postRequests;
+     protected Timer headRequests;
+     protected Timer putRequests;
+     protected Timer deleteRequests;
+     protected Timer optionsRequests;
+     protected Timer traceRequests;
+     protected Timer connectRequests;
+     protected Timer moveRequests;
+     protected Timer otherRequests;
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      */
+     protected AbstractInstrumentedHandler(MetricRegistry registry) {
+         this(registry, null);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      */
+     protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix) {
+         this(registry, prefix, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
+      */
+     protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {
+         this.responseMeteredLevel = responseMeteredLevel;
+         this.metricRegistry = registry;
+         this.prefix = prefix;
+     }
+ 
+     public String getName() {
+         return name;
+     }
+ 
+     public void setName(String name) {
+         this.name = name;
+     }
+ 
+     @Override
+     protected void doStart() throws Exception {
+         super.doStart();
+ 
+         final String prefix = getMetricPrefix();
+ 
+         this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));
+         this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));
+ 
+         this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));
+         this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));
+         this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));
+ 
+         this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));
+         this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));
+ 
+         this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+ 
+         this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));
+         this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));
+         this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));
+         this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));
+         this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));
+         this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));
+         this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));
+         this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));
+         this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));
+         this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             this.responses = Collections.unmodifiableList(Arrays.asList(
+                             metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx
+                             metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx
+                             metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx
+                             metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx
+                             metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx
+                     ));
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getOneMinuteRate(),
+                             requests.getOneMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getFiveMinuteRate(),
+                             requests.getFiveMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getFifteenMinuteRate(),
+                             requests.getFifteenMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getOneMinuteRate(),
+                             requests.getOneMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getFiveMinuteRate(),
+                             requests.getFiveMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {
+                 @Override
+                 public Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getFifteenMinuteRate(),
+                             requests.getFifteenMinuteRate());
+                 }
+             });
+         } else {
+              this.responses = Collections.emptyList();
+         }
+     }
+ 
+     @Override
+     protected void doStop() throws Exception {
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.remove(name(prefix, NAME_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));
+         metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));
+         metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));
+ 
+         if (responseCodeMeters != null) {
+             responseCodeMeters.keySet().stream()
+                     .map(sc -> name(getMetricPrefix(), String.format("%d-responses", sc)))
+                     .forEach(metricRegistry::remove);
+         }
+         super.doStop();
+     }
+ 
+     protected Timer requestTimer(String method) {
+         final HttpMethod m = HttpMethod.fromString(method);
+         if (m == null) {
+             return otherRequests;
+         } else {
+             switch (m) {
+                 case GET:
+                     return getRequests;
+                 case POST:
+                     return postRequests;
+                 case PUT:
+                     return putRequests;
+                 case HEAD:
+                     return headRequests;
+                 case DELETE:
+                     return deleteRequests;
+                 case OPTIONS:
+                     return optionsRequests;
+                 case TRACE:
+                     return traceRequests;
+                 case CONNECT:
+                     return connectRequests;
+                 case MOVE:
+                     return moveRequests;
+                 default:
+                     return otherRequests;
+             }
+         }
+     }
+ 
+     protected void updateResponses(Request request, Response response, long start, boolean isHandled) {
+         if (isHandled) {
+             mark(response.getStatus());
+         } else {
+             mark(404);; // will end up with a 404 response sent by HttpChannel.handle
+         }
+         activeRequests.dec();
+         final long elapsedTime = System.currentTimeMillis() - start;
+         requests.update(elapsedTime, TimeUnit.MILLISECONDS);
+         requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);
+     }
+ 
+     protected void mark(int statusCode) {
+         if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {
+             getResponseCodeMeter(statusCode).mark();
+         }
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             final int responseStatus = statusCode / 100;
+             if (responseStatus >= 1 && responseStatus <= 5) {
+                 responses.get(responseStatus - 1).mark();
+             }
+         }
+     }
+ 
+     protected Meter getResponseCodeMeter(int statusCode) {
+         return responseCodeMeters
+                 .computeIfAbsent(statusCode, sc -> metricRegistry
+                         .meter(name(getMetricPrefix(), String.format("%d-responses", sc))));
+     }
+ 
+     protected String getMetricPrefix() {
+         return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-2.html new file mode 100644 index 0000000000..88d0e5ad52 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-2.html @@ -0,0 +1,193 @@ + + + + + + + + Coverage Report > InstrumentedConnectionFactory + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty12)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedConnectionFactory + + 83.3% + + + (5/6) + + + + 91.7% + + + (11/12) + +
InstrumentedConnectionFactory$1 + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
Total + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty12;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Timer;
+ import org.eclipse.jetty.io.Connection;
+ import org.eclipse.jetty.io.EndPoint;
+ import org.eclipse.jetty.server.ConnectionFactory;
+ import org.eclipse.jetty.server.Connector;
+ import org.eclipse.jetty.util.component.ContainerLifeCycle;
+ 
+ import java.util.List;
+ 
+ public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {
+     private final ConnectionFactory connectionFactory;
+     private final Timer timer;
+     private final Counter counter;
+ 
+     public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
+         this(connectionFactory, timer, null);
+     }
+ 
+     public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {
+         this.connectionFactory = connectionFactory;
+         this.timer = timer;
+         this.counter = counter;
+         addBean(connectionFactory);
+     }
+ 
+     @Override
+     public String getProtocol() {
+         return connectionFactory.getProtocol();
+     }
+ 
+     @Override
+     public List<String> getProtocols() {
+         return connectionFactory.getProtocols();
+     }
+ 
+     @Override
+     public Connection newConnection(Connector connector, EndPoint endPoint) {
+         final Connection connection = connectionFactory.newConnection(connector, endPoint);
+         connection.addEventListener(new Connection.Listener() {
+             private Timer.Context context;
+ 
+             @Override
+             public void onOpened(Connection connection) {
+                 this.context = timer.time();
+                 if (counter != null) {
+                     counter.inc();
+                 }
+             }
+ 
+             @Override
+             public void onClosed(Connection connection) {
+                 context.stop();
+                 if (counter != null) {
+                     counter.dec();
+                 }
+             }
+         });
+         return connection;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-3.html new file mode 100644 index 0000000000..d406498e84 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-3.html @@ -0,0 +1,336 @@ + + + + + + + + Coverage Report > InstrumentedQueuedThreadPool + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty12)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 76.5% + + + (13/17) + + + + 87.1% + + + (27/31) + +
InstrumentedQueuedThreadPool$1 + + 50% + + + (1/2) + + + + 50% + + + (1/2) + +
InstrumentedQueuedThreadPool$2 + + 50% + + + (1/2) + + + + 50% + + + (1/2) + +
InstrumentedQueuedThreadPool$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
Total + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty12;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import org.eclipse.jetty.util.annotation.Name;
+ import org.eclipse.jetty.util.thread.QueuedThreadPool;
+ 
+ import java.util.concurrent.BlockingQueue;
+ import java.util.concurrent.ThreadFactory;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ public class InstrumentedQueuedThreadPool extends QueuedThreadPool {
+     private static final String NAME_UTILIZATION = "utilization";
+     private static final String NAME_UTILIZATION_MAX = "utilization-max";
+     private static final String NAME_SIZE = "size";
+     private static final String NAME_JOBS = "jobs";
+     private static final String NAME_JOBS_QUEUE_UTILIZATION = "jobs-queue-utilization";
+ 
+     private final MetricRegistry metricRegistry;
+     private String prefix;
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry) {
+         this(registry, 200);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads) {
+         this(registry, maxThreads, 8);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads) {
+         this(registry, maxThreads, minThreads, 60000);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue) {
+         this(registry, maxThreads, minThreads, 60000, queue);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout) {
+         this(registry, maxThreads, minThreads, idleTimeout, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue) {
+         this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadFactory") ThreadFactory threadFactory) {
+         this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup) {
+         this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("reservedThreads") int reservedThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup) {
+         this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("reservedThreads") int reservedThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup,
+                                         @Name("threadFactory") ThreadFactory threadFactory) {
+         this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("reservedThreads") int reservedThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup,
+                                         @Name("threadFactory") ThreadFactory threadFactory,
+                                         @Name("prefix") String prefix) {
+         super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);
+         this.metricRegistry = registry;
+         this.prefix = prefix;
+     }
+ 
+     public String getPrefix() {
+         return prefix;
+     }
+ 
+     public void setPrefix(String prefix) {
+         this.prefix = prefix;
+     }
+ 
+     @Override
+     protected void doStart() throws Exception {
+         super.doStart();
+ 
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(getThreads() - getIdleThreads(), getThreads());
+             }
+         });
+         metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());
+             }
+         });
+         metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);
+         // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
+         // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
+         metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -> getQueue().size());
+         metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 BlockingQueue<Runnable> queue = getQueue();
+                 return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());
+             }
+         });
+     }
+ 
+     @Override
+     protected void doStop() throws Exception {
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.remove(name(prefix, NAME_UTILIZATION));
+         metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));
+         metricRegistry.remove(name(prefix, NAME_SIZE));
+         metricRegistry.remove(name(prefix, NAME_JOBS));
+         metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));
+ 
+         super.doStop();
+     }
+ 
+     private String getMetricPrefix() {
+         return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index.html new file mode 100644 index 0000000000..068ca3f96f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-22/index.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..cddd003e55 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..5184380dd3 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..e435cb8a1a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..d7569623cb --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..5a9cb768de --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_LINE.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..e496239e97 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..cdb975631c --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..8213df8818 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..3de0220078 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/sources/source-1.html new file mode 100644 index 0000000000..77a1d98378 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-22/sources/source-1.html @@ -0,0 +1,348 @@ + + + + + + + + Coverage Report > InstrumentedEE10Handler + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedEE10Handler (io.dropwizard.metrics.jetty12.ee10)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
InstrumentedEE10Handler + + 57.1% + + + (4/7) + + + + 71.9% + + + (23/32) + +
InstrumentedEE10Handler$1
InstrumentedEE10Handler$AsyncAttachingListener + + 20% + + + (1/5) + + + + 20% + + + (1/5) + +
InstrumentedEE10Handler$InstrumentedAsyncListener + + 0% + + + (0/5) + + + + 0% + + + (0/2) + + + + 0% + + + (0/13) + +
Total + + 29.4% + + + (5/17) + + + + 0% + + + (0/2) + + + + 48% + + + (24/50) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty12.ee10;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import io.dropwizard.metrics.jetty12.AbstractInstrumentedHandler;
+ import jakarta.servlet.AsyncEvent;
+ import jakarta.servlet.AsyncListener;
+ import org.eclipse.jetty.ee10.servlet.AsyncContextState;
+ import org.eclipse.jetty.ee10.servlet.ServletApiRequest;
+ import org.eclipse.jetty.ee10.servlet.ServletApiResponse;
+ import org.eclipse.jetty.ee10.servlet.ServletChannelState;
+ import org.eclipse.jetty.ee10.servlet.ServletContextRequest;
+ import org.eclipse.jetty.server.Handler;
+ import org.eclipse.jetty.server.Request;
+ import org.eclipse.jetty.server.Response;
+ import org.eclipse.jetty.util.Callback;
+ 
+ import java.io.IOException;
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ 
+ /**
+  * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
+  * instance. This {@link Handler} requires a {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} to be present.
+  * For correct behaviour, the {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} should be before this handler
+  * in the handler chain. To achieve this, one can use
+  * {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler#insertHandler(Singleton)}.
+  */
+ public class InstrumentedEE10Handler extends AbstractInstrumentedHandler {
+     private AsyncListener listener;
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      */
+     public InstrumentedEE10Handler(MetricRegistry registry) {
+         super(registry, null);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      */
+     public InstrumentedEE10Handler(MetricRegistry registry, String prefix) {
+         super(registry, prefix, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
+      */
+     public InstrumentedEE10Handler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {
+         super(registry, prefix, responseMeteredLevel);
+     }
+ 
+     @Override
+     protected void doStart() throws Exception {
+         super.doStart();
+ 
+         this.listener = new AsyncAttachingListener();
+     }
+ 
+     @Override
+     protected void doStop() throws Exception {
+         super.doStop();
+     }
+ 
+     @Override
+     public boolean handle(Request request, Response response, Callback callback) throws Exception {
+         ServletContextRequest servletContextRequest = Request.as(request, ServletContextRequest.class);
+ 
+         // only handle servlet requests with the InstrumentedHandler
+         // because it depends on the ServletRequestState
+         if (servletContextRequest == null) {
+             return super.handle(request, response, callback);
+         }
+ 
+         activeDispatches.inc();
+ 
+         final long start;
+         final ServletChannelState state = servletContextRequest.getServletRequestState();
+         if (state.isInitial()) {
+             // new request
+             activeRequests.inc();
+             start = Request.getTimeStamp(request);
+             state.addListener(listener);
+         } else {
+             // resumed request
+             start = System.currentTimeMillis();
+             activeSuspended.dec();
+             if (state.getState() == ServletChannelState.State.HANDLING) {
+                 asyncDispatches.mark();
+             }
+         }
+ 
+         boolean handled = false;
+ 
+         try {
+             handled = super.handle(request, response, callback);
+         } finally {
+             final long now = System.currentTimeMillis();
+             final long dispatched = now - start;
+ 
+             activeDispatches.dec();
+             dispatches.update(dispatched, TimeUnit.MILLISECONDS);
+ 
+             if (state.isSuspended()) {
+                 activeSuspended.inc();
+             } else if (state.isInitial()) {
+                 updateResponses(request, response, start, handled);
+             }
+             // else onCompletion will handle it.
+         }
+ 
+         return handled;
+     }
+ 
+     private class AsyncAttachingListener implements AsyncListener {
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+             event.getAsyncContext().addListener(new InstrumentedAsyncListener());
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {}
+     }
+ 
+     private class InstrumentedAsyncListener implements AsyncListener {
+         private final long startTime;
+ 
+         InstrumentedAsyncListener() {
+             this.startTime = System.currentTimeMillis();
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             asyncTimeouts.mark();
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             final AsyncContextState state = (AsyncContextState) event.getAsyncContext();
+             final ServletApiRequest request = (ServletApiRequest) state.getRequest();
+             final ServletApiResponse response = (ServletApiResponse) state.getResponse();
+             updateResponses(request.getRequest(), response.getResponse(), startTime, true);
+ 
+             final ServletContextRequest servletContextRequest = Request.as(request.getRequest(), ServletContextRequest.class);
+             final ServletChannelState servletRequestState = servletContextRequest.getServletRequestState();
+             if (!servletRequestState.isSuspended()) {
+                 activeSuspended.dec();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index.html new file mode 100644 index 0000000000..6c7860e965 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-23/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..9728b248d2 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..f0a8e98a57 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..1335cadc8c --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..86e63872e1 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..e81aa48ae0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..035e5b165c --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..acf392e864 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..50f4b9546f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..135862c3cd --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/sources/source-1.html new file mode 100644 index 0000000000..55cda14fbb --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-23/sources/source-1.html @@ -0,0 +1,195 @@ + + + + + + + + Coverage Report > InstrumentedAppender + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback13)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.logback13;
+ 
+ import ch.qos.logback.classic.Level;
+ import ch.qos.logback.classic.spi.ILoggingEvent;
+ import ch.qos.logback.core.Appender;
+ import ch.qos.logback.core.UnsynchronizedAppenderBase;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.SharedMetricRegistries;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
+  * number of statements being logged. The meter names are the logging level names appended to the
+  * name of the appender.
+  */
+ public class InstrumentedAppender extends UnsynchronizedAppenderBase<ILoggingEvent> {
+     private final MetricRegistry registry;
+     public static final String DEFAULT_REGISTRY = "logback-metrics";
+     public static final String REGISTRY_PROPERTY_NAME = "metrics.logback.registry";
+ 
+     private Meter all;
+     private Meter trace;
+     private Meter debug;
+     private Meter info;
+     private Meter warn;
+     private Meter error;
+ 
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      */
+     public InstrumentedAppender() {
+         this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      *
+      * @param registryName the name of the registry in {@link SharedMetricRegistries}
+      */
+     public InstrumentedAppender(String registryName) {
+         this(SharedMetricRegistries.getOrCreate(registryName));
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry.
+      *
+      * @param registry the metric registry
+      */
+     public InstrumentedAppender(MetricRegistry registry) {
+         this.registry = registry;
+         setName(Appender.class.getName());
+     }
+ 
+     @Override
+     public void start() {
+         this.all = registry.meter(name(getName(), "all"));
+         this.trace = registry.meter(name(getName(), "trace"));
+         this.debug = registry.meter(name(getName(), "debug"));
+         this.info = registry.meter(name(getName(), "info"));
+         this.warn = registry.meter(name(getName(), "warn"));
+         this.error = registry.meter(name(getName(), "error"));
+         super.start();
+     }
+ 
+     @Override
+     protected void append(ILoggingEvent event) {
+         all.mark();
+         switch (event.getLevel().toInt()) {
+             case Level.TRACE_INT:
+                 trace.mark();
+                 break;
+             case Level.DEBUG_INT:
+                 debug.mark();
+                 break;
+             case Level.INFO_INT:
+                 info.mark();
+                 break;
+             case Level.WARN_INT:
+                 warn.mark();
+                 break;
+             case Level.ERROR_INT:
+                 error.mark();
+                 break;
+             default:
+                 break;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index.html new file mode 100644 index 0000000000..eccb4801e1 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-24/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..8fb89e6d06 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..238467ab55 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..1ed9800a73 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..be4b7c05cc --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..0557445c37 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..6681b5ee71 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..aff72597d7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..97e6256357 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..2c237945ee --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/sources/source-1.html new file mode 100644 index 0000000000..66da238183 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-24/sources/source-1.html @@ -0,0 +1,195 @@ + + + + + + + + Coverage Report > InstrumentedAppender + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback14)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.logback14;
+ 
+ import ch.qos.logback.classic.Level;
+ import ch.qos.logback.classic.spi.ILoggingEvent;
+ import ch.qos.logback.core.Appender;
+ import ch.qos.logback.core.UnsynchronizedAppenderBase;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.SharedMetricRegistries;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
+  * number of statements being logged. The meter names are the logging level names appended to the
+  * name of the appender.
+  */
+ public class InstrumentedAppender extends UnsynchronizedAppenderBase<ILoggingEvent> {
+     private final MetricRegistry registry;
+     public static final String DEFAULT_REGISTRY = "logback-metrics";
+     public static final String REGISTRY_PROPERTY_NAME = "metrics.logback.registry";
+ 
+     private Meter all;
+     private Meter trace;
+     private Meter debug;
+     private Meter info;
+     private Meter warn;
+     private Meter error;
+ 
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      */
+     public InstrumentedAppender() {
+         this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      *
+      * @param registryName the name of the registry in {@link SharedMetricRegistries}
+      */
+     public InstrumentedAppender(String registryName) {
+         this(SharedMetricRegistries.getOrCreate(registryName));
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry.
+      *
+      * @param registry the metric registry
+      */
+     public InstrumentedAppender(MetricRegistry registry) {
+         this.registry = registry;
+         setName(Appender.class.getName());
+     }
+ 
+     @Override
+     public void start() {
+         this.all = registry.meter(name(getName(), "all"));
+         this.trace = registry.meter(name(getName(), "trace"));
+         this.debug = registry.meter(name(getName(), "debug"));
+         this.info = registry.meter(name(getName(), "info"));
+         this.warn = registry.meter(name(getName(), "warn"));
+         this.error = registry.meter(name(getName(), "error"));
+         super.start();
+     }
+ 
+     @Override
+     protected void append(ILoggingEvent event) {
+         all.mark();
+         switch (event.getLevel().toInt()) {
+             case Level.TRACE_INT:
+                 trace.mark();
+                 break;
+             case Level.DEBUG_INT:
+                 debug.mark();
+                 break;
+             case Level.INFO_INT:
+                 info.mark();
+                 break;
+             case Level.WARN_INT:
+                 warn.mark();
+                 break;
+             case Level.ERROR_INT:
+                 error.mark();
+                 break;
+             default:
+                 break;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index.html new file mode 100644 index 0000000000..59a8f2aa51 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-25/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..758b10bfb9 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..19c1958200 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..0d9bfcbd9b --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..dd50868fa8 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..4548d6d8d6 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..7e394f98a2 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..2578aab472 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..d2f06ffc80 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..f5f1f4ec18 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/sources/source-1.html new file mode 100644 index 0000000000..b3ab7386f8 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-25/sources/source-1.html @@ -0,0 +1,195 @@ + + + + + + + + Coverage Report > InstrumentedAppender + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback15)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.logback15;
+ 
+ import ch.qos.logback.classic.Level;
+ import ch.qos.logback.classic.spi.ILoggingEvent;
+ import ch.qos.logback.core.Appender;
+ import ch.qos.logback.core.UnsynchronizedAppenderBase;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.SharedMetricRegistries;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
+  * number of statements being logged. The meter names are the logging level names appended to the
+  * name of the appender.
+  */
+ public class InstrumentedAppender extends UnsynchronizedAppenderBase<ILoggingEvent> {
+     private final MetricRegistry registry;
+     public static final String DEFAULT_REGISTRY = "logback-metrics";
+     public static final String REGISTRY_PROPERTY_NAME = "metrics.logback.registry";
+ 
+     private Meter all;
+     private Meter trace;
+     private Meter debug;
+     private Meter info;
+     private Meter warn;
+     private Meter error;
+ 
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      */
+     public InstrumentedAppender() {
+         this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      *
+      * @param registryName the name of the registry in {@link SharedMetricRegistries}
+      */
+     public InstrumentedAppender(String registryName) {
+         this(SharedMetricRegistries.getOrCreate(registryName));
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry.
+      *
+      * @param registry the metric registry
+      */
+     public InstrumentedAppender(MetricRegistry registry) {
+         this.registry = registry;
+         setName(Appender.class.getName());
+     }
+ 
+     @Override
+     public void start() {
+         this.all = registry.meter(name(getName(), "all"));
+         this.trace = registry.meter(name(getName(), "trace"));
+         this.debug = registry.meter(name(getName(), "debug"));
+         this.info = registry.meter(name(getName(), "info"));
+         this.warn = registry.meter(name(getName(), "warn"));
+         this.error = registry.meter(name(getName(), "error"));
+         super.start();
+     }
+ 
+     @Override
+     protected void append(ILoggingEvent event) {
+         all.mark();
+         switch (event.getLevel().toInt()) {
+             case Level.TRACE_INT:
+                 trace.mark();
+                 break;
+             case Level.DEBUG_INT:
+                 debug.mark();
+                 break;
+             case Level.INFO_INT:
+                 info.mark();
+                 break;
+             case Level.WARN_INT:
+                 warn.mark();
+                 break;
+             case Level.ERROR_INT:
+                 error.mark();
+                 break;
+             default:
+                 break;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index.html new file mode 100644 index 0000000000..8d0fe87108 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-26/index.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..785133d223 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..dbd590e999 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..7ae2aa80d6 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..93a6a8b1b6 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..e777ff9a66 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_LINE.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..dfcaf8a8a6 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..9978b24db8 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..35cc1272cf --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..74cc968ce6 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 0% + + + (0/2) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-1.html new file mode 100644 index 0000000000..64c3e36547 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-1.html @@ -0,0 +1,387 @@ + + + + + + + + Coverage Report > AbstractInstrumentedFilter + + + + + + +
+ + +

Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/7) + + + + 0% + + + (0/45) + +
AbstractInstrumentedFilter$AsyncResultListener + + 0% + + + (0/5) + + + + 0% + + + (0/2) + + + + 0% + + + (0/17) + +
AbstractInstrumentedFilter$StatusExposingServletResponse + + 0% + + + (0/6) + + + + 0% + + + (0/11) + +
Total + + 0% + + + (0/18) + + + + 0% + + + (0/2) + + + + 0% + + + (0/73) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlet;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import jakarta.servlet.AsyncEvent;
+ import jakarta.servlet.AsyncListener;
+ import jakarta.servlet.Filter;
+ import jakarta.servlet.FilterChain;
+ import jakarta.servlet.FilterConfig;
+ import jakarta.servlet.ServletException;
+ import jakarta.servlet.ServletRequest;
+ import jakarta.servlet.ServletResponse;
+ import jakarta.servlet.http.HttpServletResponse;
+ import jakarta.servlet.http.HttpServletResponseWrapper;
+ 
+ import java.io.IOException;
+ import java.util.Map;
+ import java.util.Map.Entry;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * {@link Filter} implementation which captures request information and a breakdown of the response
+  * codes being returned.
+  */
+ public abstract class AbstractInstrumentedFilter implements Filter {
+     static final String METRIC_PREFIX = "name-prefix";
+ 
+     private final String otherMetricName;
+     private final Map<Integer, String> meterNamesByStatusCode;
+     private final String registryAttribute;
+ 
+     // initialized after call of init method
+     private ConcurrentMap<Integer, Meter> metersByStatusCode;
+     private Meter otherMeter;
+     private Meter timeoutsMeter;
+     private Meter errorsMeter;
+     private Counter activeRequests;
+     private Timer requestTimer;
+ 
+ 
+     /**
+      * Creates a new instance of the filter.
+      *
+      * @param registryAttribute      the attribute used to look up the metrics registry in the
+      *                               servlet context
+      * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
+      *                               interested in.
+      * @param otherMetricName        The name used for the catch-all meter.
+      */
+     protected AbstractInstrumentedFilter(String registryAttribute,
+                                          Map<Integer, String> meterNamesByStatusCode,
+                                          String otherMetricName) {
+         this.registryAttribute = registryAttribute;
+         this.otherMetricName = otherMetricName;
+         this.meterNamesByStatusCode = meterNamesByStatusCode;
+     }
+ 
+     @Override
+     public void init(FilterConfig filterConfig) throws ServletException {
+         final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);
+ 
+         String metricName = filterConfig.getInitParameter(METRIC_PREFIX);
+         if (metricName == null || metricName.isEmpty()) {
+             metricName = getClass().getName();
+         }
+ 
+         this.metersByStatusCode = new ConcurrentHashMap<>(meterNamesByStatusCode.size());
+         for (Entry<Integer, String> entry : meterNamesByStatusCode.entrySet()) {
+             metersByStatusCode.put(entry.getKey(),
+                     metricsRegistry.meter(name(metricName, entry.getValue())));
+         }
+         this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));
+         this.timeoutsMeter = metricsRegistry.meter(name(metricName, "timeouts"));
+         this.errorsMeter = metricsRegistry.meter(name(metricName, "errors"));
+         this.activeRequests = metricsRegistry.counter(name(metricName, "activeRequests"));
+         this.requestTimer = metricsRegistry.timer(name(metricName, "requests"));
+ 
+     }
+ 
+     private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
+         final MetricRegistry metricsRegistry;
+ 
+         final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);
+         if (o instanceof MetricRegistry) {
+             metricsRegistry = (MetricRegistry) o;
+         } else {
+             metricsRegistry = new MetricRegistry();
+         }
+         return metricsRegistry;
+     }
+ 
+     @Override
+     public void destroy() {
+ 
+     }
+ 
+     @Override
+     public void doFilter(ServletRequest request,
+                          ServletResponse response,
+                          FilterChain chain) throws IOException, ServletException {
+         final StatusExposingServletResponse wrappedResponse =
+                 new StatusExposingServletResponse((HttpServletResponse) response);
+         activeRequests.inc();
+         final Timer.Context context = requestTimer.time();
+         boolean error = false;
+         try {
+             chain.doFilter(request, wrappedResponse);
+         } catch (IOException | RuntimeException | ServletException e) {
+             error = true;
+             throw e;
+         } finally {
+             if (!error && request.isAsyncStarted()) {
+                 request.getAsyncContext().addListener(new AsyncResultListener(context));
+             } else {
+                 context.stop();
+                 activeRequests.dec();
+                 if (error) {
+                     errorsMeter.mark();
+                 } else {
+                     markMeterForStatusCode(wrappedResponse.getStatus());
+                 }
+             }
+         }
+     }
+ 
+     private void markMeterForStatusCode(int status) {
+         final Meter metric = metersByStatusCode.get(status);
+         if (metric != null) {
+             metric.mark();
+         } else {
+             otherMeter.mark();
+         }
+     }
+ 
+     private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
+         // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
+         private int httpStatus = 200;
+ 
+         public StatusExposingServletResponse(HttpServletResponse response) {
+             super(response);
+         }
+ 
+         @Override
+         public void sendError(int sc) throws IOException {
+             httpStatus = sc;
+             super.sendError(sc);
+         }
+ 
+         @Override
+         public void sendError(int sc, String msg) throws IOException {
+             httpStatus = sc;
+             super.sendError(sc, msg);
+         }
+ 
+         @Override
+         public void setStatus(int sc) {
+             httpStatus = sc;
+             super.setStatus(sc);
+         }
+ 
+         @Override
+         @SuppressWarnings("deprecation")
+         public void setStatus(int sc, String sm) {
+             httpStatus = sc;
+             super.setStatus(sc, sm);
+         }
+ 
+         @Override
+         public int getStatus() {
+             return httpStatus;
+         }
+     }
+ 
+     private class AsyncResultListener implements AsyncListener {
+         private Timer.Context context;
+         private boolean done = false;
+ 
+         public AsyncResultListener(Timer.Context context) {
+             this.context = context;
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             if (!done) {
+                 HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();
+                 context.stop();
+                 activeRequests.dec();
+                 markMeterForStatusCode(suppliedResponse.getStatus());
+             }
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             context.stop();
+             activeRequests.dec();
+             timeoutsMeter.mark();
+             done = true;
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+             context.stop();
+             activeRequests.dec();
+             errorsMeter.mark();
+             done = true;
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+ 
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-2.html new file mode 100644 index 0000000000..f6b67a2f47 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-2.html @@ -0,0 +1,152 @@ + + + + + + + + Coverage Report > InstrumentedFilter + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlet;
+ 
+ import java.util.HashMap;
+ import java.util.Map;
+ 
+ /**
+  * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
+  * to capture information about. <p>Use it in your servlet.xml like this:<p>
+  * <pre>{@code
+  * <filter>
+  *     <filter-name>instrumentedFilter</filter-name>
+  *     <filter-class>io.dropwizard.metrics.servlet.InstrumentedFilter</filter-class>
+  * </filter>
+  * <filter-mapping>
+  *     <filter-name>instrumentedFilter</filter-name>
+  *     <url-pattern>/*</url-pattern>
+  * </filter-mapping>
+  * }</pre>
+  */
+ public class InstrumentedFilter extends AbstractInstrumentedFilter {
+     public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + ".registry";
+ 
+     private static final String NAME_PREFIX = "responseCodes.";
+     private static final int OK = 200;
+     private static final int CREATED = 201;
+     private static final int NO_CONTENT = 204;
+     private static final int BAD_REQUEST = 400;
+     private static final int NOT_FOUND = 404;
+     private static final int SERVER_ERROR = 500;
+ 
+     /**
+      * Creates a new instance of the filter.
+      */
+     public InstrumentedFilter() {
+         super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + "other");
+     }
+ 
+     private static Map<Integer, String> createMeterNamesByStatusCode() {
+         final Map<Integer, String> meterNamesByStatusCode = new HashMap<>(6);
+         meterNamesByStatusCode.put(OK, NAME_PREFIX + "ok");
+         meterNamesByStatusCode.put(CREATED, NAME_PREFIX + "created");
+         meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + "noContent");
+         meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + "badRequest");
+         meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + "notFound");
+         meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + "serverError");
+         return meterNamesByStatusCode;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-3.html new file mode 100644 index 0000000000..615db9878c --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-3.html @@ -0,0 +1,130 @@ + + + + + + + + Coverage Report > InstrumentedFilterContextListener + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlet;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import jakarta.servlet.ServletContextEvent;
+ import jakarta.servlet.ServletContextListener;
+ 
+ /**
+  * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
+  * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
+  * application.
+  */
+ public abstract class InstrumentedFilterContextListener implements ServletContextListener {
+     /**
+      * @return the {@link MetricRegistry} to inject into the servlet context.
+      */
+     protected abstract MetricRegistry getMetricRegistry();
+ 
+     @Override
+     public void contextInitialized(ServletContextEvent sce) {
+         sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());
+     }
+ 
+     @Override
+     public void contextDestroyed(ServletContextEvent sce) {
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index.html new file mode 100644 index 0000000000..ee1e3e9b1d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-27/index.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/2) + + + + 0% + + + (0/71) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..eb9e4e7d58 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/2) + + + + 0% + + + (0/71) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..b725c8817d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/2) + + + + 0% + + + (0/71) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..64aa1f2f19 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/2) + + + + 0% + + + (0/71) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..d414a8d190 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/2) + + + + 0% + + + (0/71) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..fb6249e307 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_LINE.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/2) + + + + 0% + + + (0/71) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..e433c1d65a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/2) + + + + 0% + + + (0/71) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..cc2c20f548 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/2) + + + + 0% + + + (0/71) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..d551e048a7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/2) + + + + 0% + + + (0/71) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..218af02117 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,223 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 0% + + + (0/2) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/2) + + + + 0% + + + (0/71) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-1.html new file mode 100644 index 0000000000..aa412ddfe1 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-1.html @@ -0,0 +1,380 @@ + + + + + + + + Coverage Report > AbstractInstrumentedFilter + + + + + + +
+ + +

Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet6)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Branch, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/7) + + + + 0% + + + (0/45) + +
AbstractInstrumentedFilter$AsyncResultListener + + 0% + + + (0/5) + + + + 0% + + + (0/2) + + + + 0% + + + (0/17) + +
AbstractInstrumentedFilter$StatusExposingServletResponse + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
Total + + 0% + + + (0/17) + + + + 0% + + + (0/2) + + + + 0% + + + (0/71) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlet6;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import jakarta.servlet.AsyncEvent;
+ import jakarta.servlet.AsyncListener;
+ import jakarta.servlet.Filter;
+ import jakarta.servlet.FilterChain;
+ import jakarta.servlet.FilterConfig;
+ import jakarta.servlet.ServletException;
+ import jakarta.servlet.ServletRequest;
+ import jakarta.servlet.ServletResponse;
+ import jakarta.servlet.http.HttpServletResponse;
+ import jakarta.servlet.http.HttpServletResponseWrapper;
+ 
+ import java.io.IOException;
+ import java.util.Map;
+ import java.util.Map.Entry;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * {@link Filter} implementation which captures request information and a breakdown of the response
+  * codes being returned.
+  */
+ public abstract class AbstractInstrumentedFilter implements Filter {
+     static final String METRIC_PREFIX = "name-prefix";
+ 
+     private final String otherMetricName;
+     private final Map<Integer, String> meterNamesByStatusCode;
+     private final String registryAttribute;
+ 
+     // initialized after call of init method
+     private ConcurrentMap<Integer, Meter> metersByStatusCode;
+     private Meter otherMeter;
+     private Meter timeoutsMeter;
+     private Meter errorsMeter;
+     private Counter activeRequests;
+     private Timer requestTimer;
+ 
+ 
+     /**
+      * Creates a new instance of the filter.
+      *
+      * @param registryAttribute      the attribute used to look up the metrics registry in the
+      *                               servlet context
+      * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
+      *                               interested in.
+      * @param otherMetricName        The name used for the catch-all meter.
+      */
+     protected AbstractInstrumentedFilter(String registryAttribute,
+                                          Map<Integer, String> meterNamesByStatusCode,
+                                          String otherMetricName) {
+         this.registryAttribute = registryAttribute;
+         this.otherMetricName = otherMetricName;
+         this.meterNamesByStatusCode = meterNamesByStatusCode;
+     }
+ 
+     @Override
+     public void init(FilterConfig filterConfig) throws ServletException {
+         final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);
+ 
+         String metricName = filterConfig.getInitParameter(METRIC_PREFIX);
+         if (metricName == null || metricName.isEmpty()) {
+             metricName = getClass().getName();
+         }
+ 
+         this.metersByStatusCode = new ConcurrentHashMap<>(meterNamesByStatusCode.size());
+         for (Entry<Integer, String> entry : meterNamesByStatusCode.entrySet()) {
+             metersByStatusCode.put(entry.getKey(),
+                     metricsRegistry.meter(name(metricName, entry.getValue())));
+         }
+         this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));
+         this.timeoutsMeter = metricsRegistry.meter(name(metricName, "timeouts"));
+         this.errorsMeter = metricsRegistry.meter(name(metricName, "errors"));
+         this.activeRequests = metricsRegistry.counter(name(metricName, "activeRequests"));
+         this.requestTimer = metricsRegistry.timer(name(metricName, "requests"));
+ 
+     }
+ 
+     private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
+         final MetricRegistry metricsRegistry;
+ 
+         final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);
+         if (o instanceof MetricRegistry) {
+             metricsRegistry = (MetricRegistry) o;
+         } else {
+             metricsRegistry = new MetricRegistry();
+         }
+         return metricsRegistry;
+     }
+ 
+     @Override
+     public void destroy() {
+ 
+     }
+ 
+     @Override
+     public void doFilter(ServletRequest request,
+                          ServletResponse response,
+                          FilterChain chain) throws IOException, ServletException {
+         final StatusExposingServletResponse wrappedResponse =
+                 new StatusExposingServletResponse((HttpServletResponse) response);
+         activeRequests.inc();
+         final Timer.Context context = requestTimer.time();
+         boolean error = false;
+         try {
+             chain.doFilter(request, wrappedResponse);
+         } catch (IOException | RuntimeException | ServletException e) {
+             error = true;
+             throw e;
+         } finally {
+             if (!error && request.isAsyncStarted()) {
+                 request.getAsyncContext().addListener(new AsyncResultListener(context));
+             } else {
+                 context.stop();
+                 activeRequests.dec();
+                 if (error) {
+                     errorsMeter.mark();
+                 } else {
+                     markMeterForStatusCode(wrappedResponse.getStatus());
+                 }
+             }
+         }
+     }
+ 
+     private void markMeterForStatusCode(int status) {
+         final Meter metric = metersByStatusCode.get(status);
+         if (metric != null) {
+             metric.mark();
+         } else {
+             otherMeter.mark();
+         }
+     }
+ 
+     private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
+         // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
+         private int httpStatus = 200;
+ 
+         public StatusExposingServletResponse(HttpServletResponse response) {
+             super(response);
+         }
+ 
+         @Override
+         public void sendError(int sc) throws IOException {
+             httpStatus = sc;
+             super.sendError(sc);
+         }
+ 
+         @Override
+         public void sendError(int sc, String msg) throws IOException {
+             httpStatus = sc;
+             super.sendError(sc, msg);
+         }
+ 
+         @Override
+         public void setStatus(int sc) {
+             httpStatus = sc;
+             super.setStatus(sc);
+         }
+ 
+         @Override
+         public int getStatus() {
+             return httpStatus;
+         }
+     }
+ 
+     private class AsyncResultListener implements AsyncListener {
+         private final Timer.Context context;
+         private boolean done = false;
+ 
+         public AsyncResultListener(Timer.Context context) {
+             this.context = context;
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             if (!done) {
+                 HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();
+                 context.stop();
+                 activeRequests.dec();
+                 markMeterForStatusCode(suppliedResponse.getStatus());
+             }
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             context.stop();
+             activeRequests.dec();
+             timeoutsMeter.mark();
+             done = true;
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+             context.stop();
+             activeRequests.dec();
+             errorsMeter.mark();
+             done = true;
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+ 
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-2.html new file mode 100644 index 0000000000..db73c61ac9 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-2.html @@ -0,0 +1,152 @@ + + + + + + + + Coverage Report > InstrumentedFilter + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet6)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlet6;
+ 
+ import java.util.HashMap;
+ import java.util.Map;
+ 
+ /**
+  * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
+  * to capture information about. <p>Use it in your servlet.xml like this:<p>
+  * <pre>{@code
+  * <filter>
+  *     <filter-name>instrumentedFilter</filter-name>
+  *     <filter-class>io.dropwizard.metrics.servlet.InstrumentedFilter</filter-class>
+  * </filter>
+  * <filter-mapping>
+  *     <filter-name>instrumentedFilter</filter-name>
+  *     <url-pattern>/*</url-pattern>
+  * </filter-mapping>
+  * }</pre>
+  */
+ public class InstrumentedFilter extends AbstractInstrumentedFilter {
+     public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + ".registry";
+ 
+     private static final String NAME_PREFIX = "responseCodes.";
+     private static final int OK = 200;
+     private static final int CREATED = 201;
+     private static final int NO_CONTENT = 204;
+     private static final int BAD_REQUEST = 400;
+     private static final int NOT_FOUND = 404;
+     private static final int SERVER_ERROR = 500;
+ 
+     /**
+      * Creates a new instance of the filter.
+      */
+     public InstrumentedFilter() {
+         super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + "other");
+     }
+ 
+     private static Map<Integer, String> createMeterNamesByStatusCode() {
+         final Map<Integer, String> meterNamesByStatusCode = new HashMap<>(6);
+         meterNamesByStatusCode.put(OK, NAME_PREFIX + "ok");
+         meterNamesByStatusCode.put(CREATED, NAME_PREFIX + "created");
+         meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + "noContent");
+         meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + "badRequest");
+         meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + "notFound");
+         meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + "serverError");
+         return meterNamesByStatusCode;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-3.html new file mode 100644 index 0000000000..58256c306d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-3.html @@ -0,0 +1,130 @@ + + + + + + + + Coverage Report > InstrumentedFilterContextListener + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet6)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlet6;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import jakarta.servlet.ServletContextEvent;
+ import jakarta.servlet.ServletContextListener;
+ 
+ /**
+  * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
+  * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
+  * application.
+  */
+ public abstract class InstrumentedFilterContextListener implements ServletContextListener {
+     /**
+      * @return the {@link MetricRegistry} to inject into the servlet context.
+      */
+     protected abstract MetricRegistry getMetricRegistry();
+ 
+     @Override
+     public void contextInitialized(ServletContextEvent sce) {
+         sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());
+     }
+ 
+     @Override
+     public void contextDestroyed(ServletContextEvent sce) {
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index.html new file mode 100644 index 0000000000..bce8b2a5e7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-28/index.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..c0c8931e99 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..f5946f4d1c --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..aecd5ddbc4 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..cfaff88636 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..e8f7427c21 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_LINE.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..16149fcb90 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..0565b1dbac --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..2696a383fa --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..f29af64617 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-1.html new file mode 100644 index 0000000000..73018e97b8 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-1.html @@ -0,0 +1,294 @@ + + + + + + + + Coverage Report > AdminServlet + + + + + + +
+ + +

Coverage Summary for Class: AdminServlet (io.dropwizard.metrics.servlets)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlets;
+ 
+ import jakarta.servlet.ServletConfig;
+ import jakarta.servlet.ServletContext;
+ import jakarta.servlet.ServletException;
+ import jakarta.servlet.http.HttpServlet;
+ import jakarta.servlet.http.HttpServletRequest;
+ import jakarta.servlet.http.HttpServletResponse;
+ 
+ import java.io.IOException;
+ import java.io.PrintWriter;
+ import java.text.MessageFormat;
+ 
+ public class AdminServlet extends HttpServlet {
+     public static final String DEFAULT_HEALTHCHECK_URI = "/healthcheck";
+     public static final String DEFAULT_METRICS_URI = "/metrics";
+     public static final String DEFAULT_PING_URI = "/ping";
+     public static final String DEFAULT_THREADS_URI = "/threads";
+     public static final String DEFAULT_CPU_PROFILE_URI = "/pprof";
+ 
+     public static final String METRICS_ENABLED_PARAM_KEY = "metrics-enabled";
+     public static final String METRICS_URI_PARAM_KEY = "metrics-uri";
+     public static final String PING_ENABLED_PARAM_KEY = "ping-enabled";
+     public static final String PING_URI_PARAM_KEY = "ping-uri";
+     public static final String THREADS_ENABLED_PARAM_KEY = "threads-enabled";
+     public static final String THREADS_URI_PARAM_KEY = "threads-uri";
+     public static final String HEALTHCHECK_ENABLED_PARAM_KEY = "healthcheck-enabled";
+     public static final String HEALTHCHECK_URI_PARAM_KEY = "healthcheck-uri";
+     public static final String SERVICE_NAME_PARAM_KEY = "service-name";
+     public static final String CPU_PROFILE_ENABLED_PARAM_KEY = "cpu-profile-enabled";
+     public static final String CPU_PROFILE_URI_PARAM_KEY = "cpu-profile-uri";
+ 
+     private static final String BASE_TEMPLATE =
+             "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"%n" +
+                     "        \"http://www.w3.org/TR/html4/loose.dtd\">%n" +
+                     "<html>%n" +
+                     "<head>%n" +
+                     "  <title>Metrics{10}</title>%n" +
+                     "</head>%n" +
+                     "<body>%n" +
+                     "  <h1>Operational Menu{10}</h1>%n" +
+                     "  <ul>%n" +
+                     "%s" +
+                     "  </ul>%n" +
+                     "</body>%n" +
+                     "</html>";
+     private static final String METRICS_LINK = "    <li><a href=\"{0}{1}?pretty=true\">Metrics</a></li>%n";
+     private static final String PING_LINK = "    <li><a href=\"{2}{3}\">Ping</a></li>%n" ;
+     private static final String THREADS_LINK = "    <li><a href=\"{4}{5}\">Threads</a></li>%n" ;
+     private static final String HEALTHCHECK_LINK = "    <li><a href=\"{6}{7}?pretty=true\">Healthcheck</a></li>%n" ;
+     private static final String CPU_PROFILE_LINK = "    <li><a href=\"{8}{9}\">CPU Profile</a></li>%n" +
+             "    <li><a href=\"{8}{9}?state=blocked\">CPU Contention</a></li>%n";
+ 
+ 
+     private static final String CONTENT_TYPE = "text/html";
+     private static final long serialVersionUID = -2850794040708785318L;
+ 
+     private transient HealthCheckServlet healthCheckServlet;
+     private transient MetricsServlet metricsServlet;
+     private transient PingServlet pingServlet;
+     private transient ThreadDumpServlet threadDumpServlet;
+     private transient CpuProfileServlet cpuProfileServlet;
+     private transient boolean metricsEnabled;
+     private transient String metricsUri;
+     private transient boolean pingEnabled;
+     private transient String pingUri;
+     private transient boolean threadsEnabled;
+     private transient String threadsUri;
+     private transient boolean healthcheckEnabled;
+     private transient String healthcheckUri;
+     private transient boolean cpuProfileEnabled;
+     private transient String cpuProfileUri;
+     private transient String serviceName;
+     private transient String pageContentTemplate;
+ 
+     @Override
+     public void init(ServletConfig config) throws ServletException {
+         super.init(config);
+ 
+         final ServletContext context = config.getServletContext();
+         final StringBuilder servletLinks = new StringBuilder();
+ 
+         this.metricsEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), "true"));
+         if (this.metricsEnabled) {
+             servletLinks.append(METRICS_LINK);
+         }
+         this.metricsServlet = new MetricsServlet();
+         metricsServlet.init(config);
+ 
+         this.pingEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), "true"));
+         if (this.pingEnabled) {
+             servletLinks.append(PING_LINK);
+         }
+         this.pingServlet = new PingServlet();
+         pingServlet.init(config);
+ 
+         this.threadsEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), "true"));
+         if (this.threadsEnabled) {
+             servletLinks.append(THREADS_LINK);
+         }
+         this.threadDumpServlet = new ThreadDumpServlet();
+         threadDumpServlet.init(config);
+ 
+         this.healthcheckEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), "true"));
+         if (this.healthcheckEnabled) {
+             servletLinks.append(HEALTHCHECK_LINK);
+         }
+         this.healthCheckServlet = new HealthCheckServlet();
+         healthCheckServlet.init(config);
+ 
+         this.cpuProfileEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), "true"));
+         if (this.cpuProfileEnabled) {
+             servletLinks.append(CPU_PROFILE_LINK);
+         }
+         this.cpuProfileServlet = new CpuProfileServlet();
+         cpuProfileServlet.init(config);
+ 
+         pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));
+ 
+         this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);
+         this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);
+         this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);
+         this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);
+         this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);
+         this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);
+     }
+ 
+     @Override
+     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+         final String path = req.getContextPath() + req.getServletPath();
+ 
+         resp.setStatus(HttpServletResponse.SC_OK);
+         resp.setHeader("Cache-Control", "must-revalidate,no-cache,no-store");
+         resp.setContentType(CONTENT_TYPE);
+         try (PrintWriter writer = resp.getWriter()) {
+             writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,
+                     threadsUri, path, healthcheckUri, path, cpuProfileUri,
+                     serviceName == null ? "" : " (" + serviceName + ")"));
+         }
+     }
+ 
+     @Override
+     protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+         final String uri = req.getPathInfo();
+         if (uri == null || uri.equals("/")) {
+             super.service(req, resp);
+         } else if (uri.equals(healthcheckUri)) {
+             if (healthcheckEnabled) {
+                 healthCheckServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else if (uri.startsWith(metricsUri)) {
+             if (metricsEnabled) {
+                 metricsServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else if (uri.equals(pingUri)) {
+             if (pingEnabled) {
+                 pingServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else if (uri.equals(threadsUri)) {
+             if (threadsEnabled) {
+                 threadDumpServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else if (uri.equals(cpuProfileUri)) {
+             if (cpuProfileEnabled) {
+                 cpuProfileServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else {
+             resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+         }
+     }
+ 
+     private static String getParam(String initParam, String defaultValue) {
+         return initParam == null ? defaultValue : initParam;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-2.html new file mode 100644 index 0000000000..99cb06aae4 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-2.html @@ -0,0 +1,183 @@ + + + + + + + + Coverage Report > CpuProfileServlet + + + + + + +
+ + +

Coverage Summary for Class: CpuProfileServlet (io.dropwizard.metrics.servlets)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlets;
+ 
+ import com.papertrail.profiler.CpuProfile;
+ import jakarta.servlet.ServletException;
+ import jakarta.servlet.http.HttpServlet;
+ import jakarta.servlet.http.HttpServletRequest;
+ import jakarta.servlet.http.HttpServletResponse;
+ 
+ import java.io.IOException;
+ import java.io.OutputStream;
+ import java.time.Duration;
+ import java.util.concurrent.locks.Lock;
+ import java.util.concurrent.locks.ReentrantLock;
+ 
+ /**
+  * An HTTP servlets which outputs a <a href="https://github.com/gperftools/gperftools">pprof</a> parseable response.
+  */
+ public class CpuProfileServlet extends HttpServlet {
+     private static final long serialVersionUID = -668666696530287501L;
+     private static final String CONTENT_TYPE = "pprof/raw";
+     private static final String CACHE_CONTROL = "Cache-Control";
+     private static final String NO_CACHE = "must-revalidate,no-cache,no-store";
+     private final Lock lock = new ReentrantLock();
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+ 
+         int duration = 10;
+         if (req.getParameter("duration") != null) {
+             try {
+                 duration = Integer.parseInt(req.getParameter("duration"));
+             } catch (NumberFormatException e) {
+                 duration = 10;
+             }
+         }
+ 
+         int frequency = 100;
+         if (req.getParameter("frequency") != null) {
+             try {
+                 frequency = Integer.parseInt(req.getParameter("frequency"));
+                 frequency = Math.min(Math.max(frequency, 1), 1000);
+             } catch (NumberFormatException e) {
+                 frequency = 100;
+             }
+         }
+ 
+         final Thread.State state;
+         if ("blocked".equalsIgnoreCase(req.getParameter("state"))) {
+             state = Thread.State.BLOCKED;
+         } else {
+             state = Thread.State.RUNNABLE;
+         }
+ 
+         resp.setStatus(HttpServletResponse.SC_OK);
+         resp.setHeader(CACHE_CONTROL, NO_CACHE);
+         resp.setContentType(CONTENT_TYPE);
+         try (OutputStream output = resp.getOutputStream()) {
+             doProfile(output, duration, frequency, state);
+         }
+     }
+ 
+     protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
+         if (lock.tryLock()) {
+             try {
+                 CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),
+                         frequency, state);
+                 if (profile == null) {
+                     throw new RuntimeException("could not create CpuProfile");
+                 }
+                 profile.writeGoogleProfile(out);
+                 return;
+             } finally {
+                 lock.unlock();
+             }
+         }
+         throw new RuntimeException("Only one profile request may be active at a time");
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-3.html new file mode 100644 index 0000000000..df1652885f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-3.html @@ -0,0 +1,325 @@ + + + + + + + + Coverage Report > HealthCheckServlet + + + + + + +
+ + +

Coverage Summary for Class: HealthCheckServlet (io.dropwizard.metrics.servlets)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
HealthCheckServlet + + 100% + + + (10/10) + + + + 95.1% + + + (58/61) + +
HealthCheckServlet$ContextListener + + 0% + + + (0/6) + + + + 0% + + + (0/9) + +
Total + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlets;
+ 
+ import com.codahale.metrics.health.HealthCheck;
+ import com.codahale.metrics.health.HealthCheckFilter;
+ import com.codahale.metrics.health.HealthCheckRegistry;
+ import com.codahale.metrics.json.HealthCheckModule;
+ import com.fasterxml.jackson.databind.ObjectMapper;
+ import com.fasterxml.jackson.databind.ObjectWriter;
+ import jakarta.servlet.ServletConfig;
+ import jakarta.servlet.ServletContext;
+ import jakarta.servlet.ServletContextEvent;
+ import jakarta.servlet.ServletContextListener;
+ import jakarta.servlet.ServletException;
+ import jakarta.servlet.http.HttpServlet;
+ import jakarta.servlet.http.HttpServletRequest;
+ import jakarta.servlet.http.HttpServletResponse;
+ 
+ import java.io.IOException;
+ import java.io.OutputStream;
+ import java.util.Map;
+ import java.util.SortedMap;
+ import java.util.concurrent.ExecutorService;
+ 
+ public class HealthCheckServlet extends HttpServlet {
+     public static abstract class ContextListener implements ServletContextListener {
+         /**
+          * @return the {@link HealthCheckRegistry} to inject into the servlet context.
+          */
+         protected abstract HealthCheckRegistry getHealthCheckRegistry();
+ 
+         /**
+          * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
+          * if the health checks should be run in the servlet worker thread.
+          */
+         protected ExecutorService getExecutorService() {
+             // don't use a thread pool by default
+             return null;
+         }
+ 
+         /**
+          * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
+          * or {@link HealthCheckFilter#ALL} if the default should be used.
+          */
+         protected HealthCheckFilter getHealthCheckFilter() {
+             return HealthCheckFilter.ALL;
+         }
+ 
+         /**
+          * @return the {@link ObjectMapper} that shall be used to render health checks,
+          * or {@code null} if the default object mapper should be used.
+          */
+         protected ObjectMapper getObjectMapper() {
+             // don't use an object mapper by default
+             return null;
+         }
+ 
+         @Override
+         public void contextInitialized(ServletContextEvent event) {
+             final ServletContext context = event.getServletContext();
+             context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());
+             context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());
+             context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());
+         }
+ 
+         @Override
+         public void contextDestroyed(ServletContextEvent event) {
+             // no-op
+         }
+     }
+ 
+     public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + ".registry";
+     public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + ".executor";
+     public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + ".healthCheckFilter";
+     public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + ".mapper";
+     public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + ".httpStatusIndicator";
+ 
+     private static final long serialVersionUID = -8432996484889177321L;
+     private static final String CONTENT_TYPE = "application/json";
+     private static final String HTTP_STATUS_INDICATOR_PARAM = "httpStatusIndicator";
+ 
+     private transient HealthCheckRegistry registry;
+     private transient ExecutorService executorService;
+     private transient HealthCheckFilter filter;
+     private transient ObjectMapper mapper;
+     private transient boolean httpStatusIndicator;
+ 
+     public HealthCheckServlet() {
+     }
+ 
+     public HealthCheckServlet(HealthCheckRegistry registry) {
+         this.registry = registry;
+     }
+ 
+     @Override
+     public void init(ServletConfig config) throws ServletException {
+         super.init(config);
+ 
+         final ServletContext context = config.getServletContext();
+         if (null == registry) {
+             final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);
+             if (registryAttr instanceof HealthCheckRegistry) {
+                 this.registry = (HealthCheckRegistry) registryAttr;
+             } else {
+                 throw new ServletException("Couldn't find a HealthCheckRegistry instance.");
+             }
+         }
+ 
+         final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);
+         if (executorAttr instanceof ExecutorService) {
+             this.executorService = (ExecutorService) executorAttr;
+         }
+ 
+         final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);
+         if (filterAttr instanceof HealthCheckFilter) {
+             filter = (HealthCheckFilter) filterAttr;
+         }
+         if (filter == null) {
+             filter = HealthCheckFilter.ALL;
+         }
+ 
+         final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);
+         if (mapperAttr instanceof ObjectMapper) {
+             this.mapper = (ObjectMapper) mapperAttr;
+         } else {
+             this.mapper = new ObjectMapper();
+         }
+         this.mapper.registerModule(new HealthCheckModule());
+ 
+         final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);
+         if (httpStatusIndicatorAttr instanceof Boolean) {
+             this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;
+         } else {
+             this.httpStatusIndicator = true;
+         }
+     }
+ 
+     @Override
+     public void destroy() {
+         super.destroy();
+         registry.shutdown();
+     }
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+         final SortedMap<String, HealthCheck.Result> results = runHealthChecks();
+         resp.setContentType(CONTENT_TYPE);
+         resp.setHeader("Cache-Control", "must-revalidate,no-cache,no-store");
+         if (results.isEmpty()) {
+             resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);
+         } else {
+             final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);
+             final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);
+             final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;
+             if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {
+                 resp.setStatus(HttpServletResponse.SC_OK);
+             } else {
+                 resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+             }
+         }
+ 
+         try (OutputStream output = resp.getOutputStream()) {
+             getWriter(req).writeValue(output, results);
+         }
+     }
+ 
+     private ObjectWriter getWriter(HttpServletRequest request) {
+         final boolean prettyPrint = Boolean.parseBoolean(request.getParameter("pretty"));
+         if (prettyPrint) {
+             return mapper.writerWithDefaultPrettyPrinter();
+         }
+         return mapper.writer();
+     }
+ 
+     private SortedMap<String, HealthCheck.Result> runHealthChecks() {
+         if (executorService == null) {
+             return registry.runHealthChecks(filter);
+         }
+         return registry.runHealthChecks(executorService, filter);
+     }
+ 
+     private static boolean isAllHealthy(Map<String, HealthCheck.Result> results) {
+         for (HealthCheck.Result result : results.values()) {
+             if (!result.isHealthy()) {
+                 return false;
+             }
+         }
+         return true;
+     }
+ 
+     // visible for testing
+     ObjectMapper getMapper() {
+         return mapper;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-4.html new file mode 100644 index 0000000000..5196d1cc48 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-4.html @@ -0,0 +1,328 @@ + + + + + + + + Coverage Report > MetricsServlet + + + + + + +
+ + +

Coverage Summary for Class: MetricsServlet (io.dropwizard.metrics.servlets)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
MetricsServlet + + 100% + + + (8/8) + + + + 100% + + + (44/44) + +
MetricsServlet$ContextListener + + 62.5% + + + (5/8) + + + + 77.8% + + + (14/18) + +
Total + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlets;
+ 
+ import com.codahale.metrics.MetricFilter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.json.MetricsModule;
+ import com.fasterxml.jackson.databind.ObjectMapper;
+ import com.fasterxml.jackson.databind.ObjectWriter;
+ import com.fasterxml.jackson.databind.util.JSONPObject;
+ import jakarta.servlet.ServletConfig;
+ import jakarta.servlet.ServletContext;
+ import jakarta.servlet.ServletContextEvent;
+ import jakarta.servlet.ServletContextListener;
+ import jakarta.servlet.ServletException;
+ import jakarta.servlet.http.HttpServlet;
+ import jakarta.servlet.http.HttpServletRequest;
+ import jakarta.servlet.http.HttpServletResponse;
+ 
+ import java.io.IOException;
+ import java.io.OutputStream;
+ import java.util.Locale;
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * A servlet which returns the metrics in a given registry as an {@code application/json} response.
+  */
+ public class MetricsServlet extends HttpServlet {
+     /**
+      * An abstract {@link ServletContextListener} which allows you to programmatically inject the
+      * {@link MetricRegistry}, rate and duration units, and allowed origin for
+      * {@link MetricsServlet}.
+      */
+     public static abstract class ContextListener implements ServletContextListener {
+         /**
+          * @return the {@link MetricRegistry} to inject into the servlet context.
+          */
+         protected abstract MetricRegistry getMetricRegistry();
+ 
+         /**
+          * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
+          * default should be used.
+          */
+         protected TimeUnit getRateUnit() {
+             // use the default
+             return null;
+         }
+ 
+         /**
+          * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
+          * the default should be used.
+          */
+         protected TimeUnit getDurationUnit() {
+             // use the default
+             return null;
+         }
+ 
+         /**
+          * @return the {@code Access-Control-Allow-Origin} header value, if any.
+          */
+         protected String getAllowedOrigin() {
+             // use the default
+             return null;
+         }
+ 
+         /**
+          * Returns the name of the parameter used to specify the jsonp callback, if any.
+          */
+         protected String getJsonpCallbackParameter() {
+             return null;
+         }
+ 
+         /**
+          * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
+          * the default should be used.
+          */
+         protected MetricFilter getMetricFilter() {
+             // use the default
+             return MetricFilter.ALL;
+         }
+ 
+         @Override
+         public void contextInitialized(ServletContextEvent event) {
+             final ServletContext context = event.getServletContext();
+             context.setAttribute(METRICS_REGISTRY, getMetricRegistry());
+             context.setAttribute(METRIC_FILTER, getMetricFilter());
+             if (getDurationUnit() != null) {
+                 context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());
+             }
+             if (getRateUnit() != null) {
+                 context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());
+             }
+             if (getAllowedOrigin() != null) {
+                 context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());
+             }
+             if (getJsonpCallbackParameter() != null) {
+                 context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());
+             }
+         }
+ 
+         @Override
+         public void contextDestroyed(ServletContextEvent event) {
+             // no-op
+         }
+     }
+ 
+     public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + ".rateUnit";
+     public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + ".durationUnit";
+     public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + ".showSamples";
+     public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + ".registry";
+     public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + ".allowedOrigin";
+     public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + ".metricFilter";
+     public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + ".jsonpCallback";
+ 
+     private static final long serialVersionUID = 1049773947734939602L;
+     private static final String CONTENT_TYPE = "application/json";
+ 
+     protected String allowedOrigin;
+     protected String jsonpParamName;
+     protected transient MetricRegistry registry;
+     protected transient ObjectMapper mapper;
+ 
+     public MetricsServlet() {
+     }
+ 
+     public MetricsServlet(MetricRegistry registry) {
+         this.registry = registry;
+     }
+ 
+     @Override
+     public void init(ServletConfig config) throws ServletException {
+         super.init(config);
+ 
+         final ServletContext context = config.getServletContext();
+         if (null == registry) {
+             final Object registryAttr = context.getAttribute(METRICS_REGISTRY);
+             if (registryAttr instanceof MetricRegistry) {
+                 this.registry = (MetricRegistry) registryAttr;
+             } else {
+                 throw new ServletException("Couldn't find a MetricRegistry instance.");
+             }
+         }
+         this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);
+         this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);
+ 
+         setupMetricsModule(context);
+     }
+ 
+     protected void setupMetricsModule(ServletContext context) {
+         final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),
+                 TimeUnit.SECONDS);
+         final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),
+                 TimeUnit.SECONDS);
+         final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));
+         MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);
+         if (filter == null) {
+             filter = MetricFilter.ALL;
+         }
+ 
+         this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,
+                 durationUnit,
+                 showSamples,
+                 filter));
+     }
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+         resp.setContentType(CONTENT_TYPE);
+         if (allowedOrigin != null) {
+             resp.setHeader("Access-Control-Allow-Origin", allowedOrigin);
+         }
+         resp.setHeader("Cache-Control", "must-revalidate,no-cache,no-store");
+         resp.setStatus(HttpServletResponse.SC_OK);
+ 
+         try (OutputStream output = resp.getOutputStream()) {
+             if (jsonpParamName != null && req.getParameter(jsonpParamName) != null) {
+                 getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));
+             } else {
+                 getWriter(req).writeValue(output, registry);
+             }
+         }
+     }
+ 
+     protected ObjectWriter getWriter(HttpServletRequest request) {
+         final boolean prettyPrint = Boolean.parseBoolean(request.getParameter("pretty"));
+         if (prettyPrint) {
+             return mapper.writerWithDefaultPrettyPrinter();
+         }
+         return mapper.writer();
+     }
+ 
+     protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
+         try {
+             return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));
+         } catch (IllegalArgumentException e) {
+             return defaultValue;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-5.html new file mode 100644 index 0000000000..9374e0eac3 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-5.html @@ -0,0 +1,135 @@ + + + + + + + + Coverage Report > PingServlet + + + + + + +
+ + +

Coverage Summary for Class: PingServlet (io.dropwizard.metrics.servlets)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlets;
+ 
+ import jakarta.servlet.ServletException;
+ import jakarta.servlet.http.HttpServlet;
+ import jakarta.servlet.http.HttpServletRequest;
+ import jakarta.servlet.http.HttpServletResponse;
+ 
+ import java.io.IOException;
+ import java.io.PrintWriter;
+ 
+ /**
+  * An HTTP servlets which outputs a {@code text/plain} {@code "pong"} response.
+  */
+ public class PingServlet extends HttpServlet {
+     private static final long serialVersionUID = 3772654177231086757L;
+     private static final String CONTENT_TYPE = "text/plain";
+     private static final String CONTENT = "pong";
+     private static final String CACHE_CONTROL = "Cache-Control";
+     private static final String NO_CACHE = "must-revalidate,no-cache,no-store";
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+         resp.setStatus(HttpServletResponse.SC_OK);
+         resp.setHeader(CACHE_CONTROL, NO_CACHE);
+         resp.setContentType(CONTENT_TYPE);
+         try (PrintWriter writer = resp.getWriter()) {
+             writer.println(CONTENT);
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-6.html new file mode 100644 index 0000000000..09c7ca9c8e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-6.html @@ -0,0 +1,159 @@ + + + + + + + + Coverage Report > ThreadDumpServlet + + + + + + +
+ + +

Coverage Summary for Class: ThreadDumpServlet (io.dropwizard.metrics.servlets)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlets;
+ 
+ import com.codahale.metrics.jvm.ThreadDump;
+ import jakarta.servlet.ServletException;
+ import jakarta.servlet.http.HttpServlet;
+ import jakarta.servlet.http.HttpServletRequest;
+ import jakarta.servlet.http.HttpServletResponse;
+ 
+ import java.io.IOException;
+ import java.io.OutputStream;
+ import java.lang.management.ManagementFactory;
+ 
+ /**
+  * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
+  * the VM. Only responds to {@code GET} requests.
+  */
+ public class ThreadDumpServlet extends HttpServlet {
+ 
+     private static final long serialVersionUID = -2690343532336103046L;
+     private static final String CONTENT_TYPE = "text/plain";
+ 
+     private transient ThreadDump threadDump;
+ 
+     @Override
+     public void init() throws ServletException {
+         try {
+             // Some PaaS like Google App Engine blacklist java.lang.managament
+             this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());
+         } catch (NoClassDefFoundError ncdfe) {
+             this.threadDump = null; // we won't be able to provide thread dump
+         }
+     }
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+         final boolean includeMonitors = getParam(req.getParameter("monitors"), true);
+         final boolean includeSynchronizers = getParam(req.getParameter("synchronizers"), true);
+ 
+         resp.setStatus(HttpServletResponse.SC_OK);
+         resp.setContentType(CONTENT_TYPE);
+         resp.setHeader("Cache-Control", "must-revalidate,no-cache,no-store");
+         if (threadDump == null) {
+             resp.getWriter().println("Sorry your runtime environment does not allow to dump threads.");
+             return;
+         }
+         try (OutputStream output = resp.getOutputStream()) {
+             threadDump.dump(includeMonitors, includeSynchronizers, output);
+         }
+     }
+ 
+     private static Boolean getParam(String initParam, boolean defaultValue) {
+         return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index.html new file mode 100644 index 0000000000..68de28896f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-3/index.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..ec97a62ecb --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..dce1fe2599 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..fb9cbb6b33 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..cbda04732c --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..34d4e13023 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_LINE.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..574533d03d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..a8ef50cf5d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..6c6ee86c02 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..a79a445c7e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-1.html new file mode 100644 index 0000000000..9185763bc7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-1.html @@ -0,0 +1,176 @@ + + + + + + + + Coverage Report > CachedGaugeBenchmark + + + + + + +
+ + +

Coverage Summary for Class: CachedGaugeBenchmark (com.codahale.metrics.benchmarks)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
CachedGaugeBenchmark + + 0% + + + (0/3) + + + + 0% + + + (0/11) + +
CachedGaugeBenchmark$1 + + 0% + + + (0/2) + + + + 0% + + + (0/6) + +
Total + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
+ +
+
+ + +
+ package com.codahale.metrics.benchmarks;
+ 
+ import com.codahale.metrics.CachedGauge;
+ import org.openjdk.jmh.annotations.Benchmark;
+ import org.openjdk.jmh.annotations.Scope;
+ import org.openjdk.jmh.annotations.State;
+ import org.openjdk.jmh.infra.Blackhole;
+ import org.openjdk.jmh.runner.Runner;
+ import org.openjdk.jmh.runner.RunnerException;
+ import org.openjdk.jmh.runner.options.Options;
+ import org.openjdk.jmh.runner.options.OptionsBuilder;
+ 
+ import java.util.concurrent.TimeUnit;
+ 
+ @State(Scope.Benchmark)
+ public class CachedGaugeBenchmark {
+ 
+     private CachedGauge<Integer> cachedGauge = new CachedGauge<Integer>(100, TimeUnit.MILLISECONDS) {
+         @Override
+         protected Integer loadValue() {
+             try {
+                 Thread.sleep(10);
+             } catch (InterruptedException e) {
+                 throw new RuntimeException("Thread was interrupted", e);
+             }
+             return 12345;
+         }
+     };
+ 
+     @Benchmark
+     public void perfGetValue(Blackhole blackhole) {
+         blackhole.consume(cachedGauge.getValue());
+     }
+ 
+     public static void main(String[] args) throws RunnerException {
+         Options opt = new OptionsBuilder()
+                 .include(".*" + CachedGaugeBenchmark.class.getSimpleName() + ".*")
+                 .warmupIterations(3)
+                 .measurementIterations(5)
+                 .threads(4)
+                 .forks(1)
+                 .build();
+ 
+         new Runner(opt).run();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-2.html new file mode 100644 index 0000000000..122dcc976b --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-2.html @@ -0,0 +1,142 @@ + + + + + + + + Coverage Report > CounterBenchmark + + + + + + +
+ + +

Coverage Summary for Class: CounterBenchmark (com.codahale.metrics.benchmarks)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
+ +
+
+ + +
+ package com.codahale.metrics.benchmarks;
+ 
+ import com.codahale.metrics.Counter;
+ import org.openjdk.jmh.annotations.Benchmark;
+ import org.openjdk.jmh.annotations.Scope;
+ import org.openjdk.jmh.annotations.State;
+ import org.openjdk.jmh.runner.Runner;
+ import org.openjdk.jmh.runner.RunnerException;
+ import org.openjdk.jmh.runner.options.Options;
+ import org.openjdk.jmh.runner.options.OptionsBuilder;
+ 
+ @State(Scope.Benchmark)
+ public class CounterBenchmark {
+ 
+     private final Counter counter = new Counter();
+ 
+     // It's intentionally not declared as final to avoid constant folding
+     private long nextValue = 0xFBFBABBA;
+ 
+     @Benchmark
+     public Object perfIncrement() {
+         counter.inc(nextValue); 
+         return counter;
+     }
+ 
+     public static void main(String[] args) throws RunnerException {
+         Options opt = new OptionsBuilder()
+                 .include(".*" + CounterBenchmark.class.getSimpleName() + ".*")
+                 .warmupIterations(3)
+                 .measurementIterations(5)
+                 .threads(4)
+                 .forks(1)
+                 .build();
+ 
+         new Runner(opt).run();
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-3.html new file mode 100644 index 0000000000..f89e0d27a4 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-3.html @@ -0,0 +1,142 @@ + + + + + + + + Coverage Report > MeterBenchmark + + + + + + +
+ + +

Coverage Summary for Class: MeterBenchmark (com.codahale.metrics.benchmarks)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
+ +
+
+ + +
+ package com.codahale.metrics.benchmarks;
+ 
+ import com.codahale.metrics.Meter;
+ import org.openjdk.jmh.annotations.Benchmark;
+ import org.openjdk.jmh.annotations.Scope;
+ import org.openjdk.jmh.annotations.State;
+ import org.openjdk.jmh.runner.Runner;
+ import org.openjdk.jmh.runner.RunnerException;
+ import org.openjdk.jmh.runner.options.Options;
+ import org.openjdk.jmh.runner.options.OptionsBuilder;
+ 
+ @State(Scope.Benchmark)
+ public class MeterBenchmark {
+ 
+     private final Meter meter = new Meter();
+ 
+     // It's intentionally not declared as final to avoid constant folding
+     private long nextValue = 0xFBFBABBA;
+ 
+     @Benchmark
+     public Object perfMark() {
+         meter.mark(nextValue);
+         return meter;
+     }
+ 
+     public static void main(String[] args) throws RunnerException {
+         Options opt = new OptionsBuilder()
+                 .include(".*" + MeterBenchmark.class.getSimpleName() + ".*")
+                 .warmupIterations(3)
+                 .measurementIterations(5)
+                 .threads(4)
+                 .forks(1)
+                 .build();
+ 
+         new Runner(opt).run();
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-4.html new file mode 100644 index 0000000000..2cbe79ab4d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-4.html @@ -0,0 +1,192 @@ + + + + + + + + Coverage Report > ReservoirBenchmark + + + + + + +
+ + +

Coverage Summary for Class: ReservoirBenchmark (com.codahale.metrics.benchmarks)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
+ +
+
+ + +
+ package com.codahale.metrics.benchmarks;
+ 
+ import com.codahale.metrics.ExponentiallyDecayingReservoir;
+ import com.codahale.metrics.LockFreeExponentiallyDecayingReservoir;
+ import com.codahale.metrics.Reservoir;
+ import com.codahale.metrics.SlidingTimeWindowArrayReservoir;
+ import com.codahale.metrics.SlidingTimeWindowReservoir;
+ import com.codahale.metrics.SlidingWindowReservoir;
+ import com.codahale.metrics.UniformReservoir;
+ import org.openjdk.jmh.annotations.Benchmark;
+ import org.openjdk.jmh.annotations.Mode;
+ import org.openjdk.jmh.annotations.Scope;
+ import org.openjdk.jmh.annotations.State;
+ import org.openjdk.jmh.profile.GCProfiler;
+ import org.openjdk.jmh.runner.Runner;
+ import org.openjdk.jmh.runner.RunnerException;
+ import org.openjdk.jmh.runner.options.Options;
+ import org.openjdk.jmh.runner.options.OptionsBuilder;
+ import org.openjdk.jmh.runner.options.TimeValue;
+ 
+ import java.util.concurrent.TimeUnit;
+ 
+ @State(Scope.Benchmark)
+ public class ReservoirBenchmark {
+ 
+     private final UniformReservoir uniform = new UniformReservoir();
+     private final ExponentiallyDecayingReservoir exponential = new ExponentiallyDecayingReservoir();
+     private final Reservoir lockFreeExponential = LockFreeExponentiallyDecayingReservoir.builder().build();
+     private final SlidingWindowReservoir sliding = new SlidingWindowReservoir(1000);
+     private final SlidingTimeWindowReservoir slidingTime = new SlidingTimeWindowReservoir(200, TimeUnit.MILLISECONDS);
+     private final SlidingTimeWindowArrayReservoir arrTime = new SlidingTimeWindowArrayReservoir(200, TimeUnit.MILLISECONDS);
+ 
+     // It's intentionally not declared as final to avoid constant folding
+     private long nextValue = 0xFBFBABBA;
+ 
+     @Benchmark
+     public Object perfUniformReservoir() {
+         uniform.update(nextValue);
+         return uniform;
+     }
+ 
+     @Benchmark
+     public Object perfSlidingTimeWindowArrayReservoir() {
+         arrTime.update(nextValue);
+         return arrTime;
+     }
+ 
+     @Benchmark
+     public Object perfExponentiallyDecayingReservoir() {
+         exponential.update(nextValue);
+         return exponential;
+     }
+ 
+     @Benchmark
+     public Object perfSlidingWindowReservoir() {
+         sliding.update(nextValue);
+         return sliding;
+     }
+ 
+     @Benchmark
+     public Object perfSlidingTimeWindowReservoir() {
+         slidingTime.update(nextValue);
+         return slidingTime;
+     }
+ 
+     @Benchmark
+     public Object perfLockFreeExponentiallyDecayingReservoir() {
+         lockFreeExponential.update(nextValue);
+         return lockFreeExponential;
+     }
+ 
+     public static void main(String[] args) throws RunnerException {
+         Options opt = new OptionsBuilder()
+             .include(".*" + ReservoirBenchmark.class.getSimpleName() + ".*")
+             .warmupIterations(10)
+             .measurementIterations(10)
+             .addProfiler(GCProfiler.class)
+             .measurementTime(TimeValue.seconds(3))
+             .timeUnit(TimeUnit.MICROSECONDS)
+             .mode(Mode.AverageTime)
+             .threads(4)
+             .forks(1)
+             .build();
+ 
+         new Runner(opt).run();
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-5.html new file mode 100644 index 0000000000..22bb149ff3 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-5.html @@ -0,0 +1,184 @@ + + + + + + + + Coverage Report > SlidingTimeWindowReservoirsBenchmark + + + + + + +
+ + +

Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark (com.codahale.metrics.benchmarks)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
+ +
+
+ + +
+ package com.codahale.metrics.benchmarks;
+ 
+ import com.codahale.metrics.SlidingTimeWindowArrayReservoir;
+ import com.codahale.metrics.SlidingTimeWindowReservoir;
+ import com.codahale.metrics.Snapshot;
+ 
+ import org.openjdk.jmh.annotations.Benchmark;
+ import org.openjdk.jmh.annotations.Group;
+ import org.openjdk.jmh.annotations.GroupThreads;
+ import org.openjdk.jmh.annotations.Mode;
+ import org.openjdk.jmh.annotations.Scope;
+ import org.openjdk.jmh.annotations.State;
+ import org.openjdk.jmh.profile.GCProfiler;
+ import org.openjdk.jmh.runner.Runner;
+ import org.openjdk.jmh.runner.RunnerException;
+ import org.openjdk.jmh.runner.options.Options;
+ import org.openjdk.jmh.runner.options.OptionsBuilder;
+ import org.openjdk.jmh.runner.options.TimeValue;
+ 
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * @author bstorozhuk
+  */
+ @State(Scope.Benchmark)
+ public class SlidingTimeWindowReservoirsBenchmark {
+     private final SlidingTimeWindowReservoir slidingTime = new SlidingTimeWindowReservoir(200, TimeUnit.MILLISECONDS);
+     private final SlidingTimeWindowArrayReservoir arrTime = new SlidingTimeWindowArrayReservoir(200, TimeUnit.MILLISECONDS);
+ 
+     // It's intentionally not declared as final to avoid constant folding
+     private long nextValue = 0xFBFBABBA;
+ 
+     @Benchmark
+     @Group("slidingTime")
+     @GroupThreads(3)
+     public Object slidingTimeAddMeasurement() {
+         slidingTime.update(nextValue);
+         return slidingTime;
+     }
+ 
+     @Benchmark
+     @Group("slidingTime")
+     @GroupThreads(1)
+     public Object slidingTimeRead() {
+         Snapshot snapshot = slidingTime.getSnapshot();
+         return snapshot;
+     }
+ 
+     @Benchmark
+     @Group("arrTime")
+     @GroupThreads(3)
+     public Object arrTimeAddMeasurement() {
+         arrTime.update(nextValue);
+         return slidingTime;
+     }
+ 
+     @Benchmark
+     @Group("arrTime")
+     @GroupThreads(1)
+     public Object arrTimeRead() {
+         Snapshot snapshot = arrTime.getSnapshot();
+         return snapshot;
+     }
+ 
+     public static void main(String[] args) throws RunnerException {
+         Options opt = new OptionsBuilder()
+             .include(".*" + SlidingTimeWindowReservoirsBenchmark.class.getSimpleName() + ".*")
+             .warmupIterations(10)
+             .measurementIterations(10)
+             .addProfiler(GCProfiler.class)
+             .measurementTime(TimeValue.seconds(3))
+             .timeUnit(TimeUnit.MICROSECONDS)
+             .mode(Mode.AverageTime)
+             .forks(1)
+             .build();
+ 
+         new Runner(opt).run();
+     }
+ }
+ 
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index.html new file mode 100644 index 0000000000..71f3575a87 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-4/index.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..8fa528b750 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..33fafff26a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..0af92b3a30 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..eb12e46406 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..2d52e70489 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_LINE.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..9cf46680ea --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..00921a6b66 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..11cf3bc5d0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..fc139bc842 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,167 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Branch, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+
+ + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Branch, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/sources/source-1.html new file mode 100644 index 0000000000..965676611d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-4/sources/source-1.html @@ -0,0 +1,250 @@ + + + + + + + + Coverage Report > MetricsStatsCounter + + + + + + +
+ + +

Coverage Summary for Class: MetricsStatsCounter (com.codahale.metrics.caffeine)

+ + + + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Branch, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 100% + + + (2/2) + + + + 97.6% + + + (40/41) + +
+ +
+
+ + +
+ /*
+  * Copyright 2016 Ben Manes. All Rights Reserved.
+  *
+  * Licensed under the Apache License, Version 2.0 (the "License");
+  * you may not use this file except in compliance with the License.
+  * You may obtain a copy of the License at
+  *
+  *     http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  */
+ package com.codahale.metrics.caffeine;
+ 
+ import static java.util.Objects.requireNonNull;
+ 
+ import java.util.EnumMap;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.LongAdder;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Histogram;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import com.github.benmanes.caffeine.cache.RemovalCause;
+ import com.github.benmanes.caffeine.cache.stats.CacheStats;
+ import com.github.benmanes.caffeine.cache.stats.StatsCounter;
+ import org.checkerframework.checker.index.qual.NonNegative;
+ 
+ /**
+  * A {@link StatsCounter} instrumented with Dropwizard Metrics.
+  *
+  * @author ben.manes@gmail.com (Ben Manes)
+  * @author John Karp
+  */
+ public final class MetricsStatsCounter implements StatsCounter {
+   private final Counter hitCount;
+   private final Counter missCount;
+   private final Timer loadSuccess;
+   private final Timer loadFailure;
+   private final Histogram evictions;
+   private final Counter evictionWeight;
+   private final EnumMap<RemovalCause, Histogram> evictionsWithCause;
+ 
+   // for implementing snapshot()
+   private final LongAdder totalLoadTime = new LongAdder();
+ 
+   /**
+    * Constructs an instance for use by a single cache.
+    *
+    * @param registry the registry of metric instances
+    * @param metricsPrefix the prefix name for the metrics
+    */
+   public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {
+     requireNonNull(metricsPrefix);
+     hitCount = registry.counter(MetricRegistry.name(metricsPrefix, "hits"));
+     missCount = registry.counter(MetricRegistry.name(metricsPrefix, "misses"));
+     loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, "loads-success"));
+     loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, "loads-failure"));
+     evictions = registry.histogram(MetricRegistry.name(metricsPrefix, "evictions"));
+     evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, "evictions-weight"));
+ 
+     evictionsWithCause = new EnumMap<>(RemovalCause.class);
+     for (RemovalCause cause : RemovalCause.values()) {
+       evictionsWithCause.put(
+           cause,
+           registry.histogram(MetricRegistry.name(metricsPrefix, "evictions", cause.name())));
+     }
+   }
+ 
+   @Override
+   public void recordHits(int count) {
+     hitCount.inc(count);
+   }
+ 
+   @Override
+   public void recordMisses(int count) {
+     missCount.inc(count);
+   }
+ 
+   @Override
+   public void recordLoadSuccess(long loadTime) {
+     loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);
+     totalLoadTime.add(loadTime);
+   }
+ 
+   @Override
+   public void recordLoadFailure(long loadTime) {
+     loadFailure.update(loadTime, TimeUnit.NANOSECONDS);
+     totalLoadTime.add(loadTime);
+   }
+ 
+   // @Override -- Caffeine 2.x
+   @Deprecated
+   @SuppressWarnings("deprecation")
+   public void recordEviction() {
+     // This method is scheduled for removal in version 3.0 in favor of recordEviction(weight)
+     recordEviction(1);
+   }
+ 
+   // @Override -- Caffeine 2.x
+   @Deprecated
+   @SuppressWarnings("deprecation")
+   public void recordEviction(int weight) {
+     evictions.update(weight);
+     evictionWeight.inc(weight);
+   }
+ 
+   @Override
+   public void recordEviction(@NonNegative int weight, RemovalCause cause) {
+     evictionsWithCause.get(cause).update(weight);
+     evictionWeight.inc(weight);
+   }
+ 
+   @Override
+   public CacheStats snapshot() {
+     return CacheStats.of(
+         hitCount.getCount(),
+         missCount.getCount(),
+         loadSuccess.getCount(),
+         loadFailure.getCount(),
+         totalLoadTime.sum(),
+         evictions.getCount(),
+         evictionWeight.getCount());
+   }
+ 
+   @Override
+   public String toString() {
+     return snapshot().toString();
+   }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index.html new file mode 100644 index 0000000000..dedf292d52 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-5/index.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..fceb4c075f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..ae7ea852c8 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..125be413d7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..2f82a134c1 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..a53af2266f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_LINE.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..baab98233c --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..c7e62458dd --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..875af601ac --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..df1d2b1eca --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-1.html new file mode 100644 index 0000000000..5d8c9ca675 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-1.html @@ -0,0 +1,470 @@ + + + + + + + + Coverage Report > CollectdReporter + + + + + + +
+ + +

Coverage Summary for Class: CollectdReporter (com.codahale.metrics.collectd)

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
CollectdReporter + + 88.9% + + + (16/18) + + + + 84.9% + + + (79/93) + +
CollectdReporter$1
CollectdReporter$Builder + + 60% + + + (9/15) + + + + 72.1% + + + (31/43) + +
Total + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
+ +
+
+ + +
+ package com.codahale.metrics.collectd;
+ 
+ import com.codahale.metrics.Clock;
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Gauge;
+ import com.codahale.metrics.Histogram;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricAttribute;
+ import com.codahale.metrics.MetricFilter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.ScheduledReporter;
+ import com.codahale.metrics.Snapshot;
+ import com.codahale.metrics.Timer;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import java.io.IOException;
+ import java.net.InetAddress;
+ import java.util.Collections;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.SortedMap;
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.MetricAttribute.COUNT;
+ import static com.codahale.metrics.MetricAttribute.M15_RATE;
+ import static com.codahale.metrics.MetricAttribute.M1_RATE;
+ import static com.codahale.metrics.MetricAttribute.M5_RATE;
+ import static com.codahale.metrics.MetricAttribute.MAX;
+ import static com.codahale.metrics.MetricAttribute.MEAN;
+ import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
+ import static com.codahale.metrics.MetricAttribute.MIN;
+ import static com.codahale.metrics.MetricAttribute.P50;
+ import static com.codahale.metrics.MetricAttribute.P75;
+ import static com.codahale.metrics.MetricAttribute.P95;
+ import static com.codahale.metrics.MetricAttribute.P98;
+ import static com.codahale.metrics.MetricAttribute.P99;
+ import static com.codahale.metrics.MetricAttribute.P999;
+ import static com.codahale.metrics.MetricAttribute.STDDEV;
+ 
+ /**
+  * A reporter which publishes metric values to a Collectd server.
+  *
+  * @see <a href="https://collectd.org">collectd – The system statistics
+  * collection daemon</a>
+  */
+ public class CollectdReporter extends ScheduledReporter {
+ 
+     /**
+      * Returns a builder for the specified registry.
+      * <p>
+      * The default settings are:
+      * <ul>
+      * <li>hostName: InetAddress.getLocalHost().getHostName()</li>
+      * <li>executor: default executor created by {@code ScheduledReporter}</li>
+      * <li>shutdownExecutorOnStop: true</li>
+      * <li>clock: Clock.defaultClock()</li>
+      * <li>rateUnit: TimeUnit.SECONDS</li>
+      * <li>durationUnit: TimeUnit.MILLISECONDS</li>
+      * <li>filter: MetricFilter.ALL</li>
+      * <li>securityLevel: NONE</li>
+      * <li>username: ""</li>
+      * <li>password: ""</li>
+      * </ul>
+      */
+     public static Builder forRegistry(MetricRegistry registry) {
+         return new Builder(registry);
+     }
+ 
+     public static class Builder {
+ 
+         private final MetricRegistry registry;
+         private String hostName;
+         private ScheduledExecutorService executor;
+         private boolean shutdownExecutorOnStop = true;
+         private Clock clock = Clock.defaultClock();
+         private TimeUnit rateUnit = TimeUnit.SECONDS;
+         private TimeUnit durationUnit = TimeUnit.MILLISECONDS;
+         private MetricFilter filter = MetricFilter.ALL;
+         private SecurityLevel securityLevel = SecurityLevel.NONE;
+         private String username = "";
+         private String password = "";
+         private Set<MetricAttribute> disabledMetricAttributes = Collections.emptySet();
+         private int maxLength = Sanitize.DEFAULT_MAX_LENGTH;
+ 
+         private Builder(MetricRegistry registry) {
+             this.registry = registry;
+         }
+ 
+         public Builder withHostName(String hostName) {
+             this.hostName = hostName;
+             return this;
+         }
+ 
+         public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
+             this.shutdownExecutorOnStop = shutdownExecutorOnStop;
+             return this;
+         }
+ 
+         public Builder scheduleOn(ScheduledExecutorService executor) {
+             this.executor = executor;
+             return this;
+         }
+ 
+         public Builder withClock(Clock clock) {
+             this.clock = clock;
+             return this;
+         }
+ 
+         public Builder convertRatesTo(TimeUnit rateUnit) {
+             this.rateUnit = rateUnit;
+             return this;
+         }
+ 
+         public Builder convertDurationsTo(TimeUnit durationUnit) {
+             this.durationUnit = durationUnit;
+             return this;
+         }
+ 
+         public Builder filter(MetricFilter filter) {
+             this.filter = filter;
+             return this;
+         }
+ 
+         public Builder withUsername(String username) {
+             this.username = username;
+             return this;
+         }
+ 
+         public Builder withPassword(String password) {
+             this.password = password;
+             return this;
+         }
+ 
+         public Builder withSecurityLevel(SecurityLevel securityLevel) {
+             this.securityLevel = securityLevel;
+             return this;
+         }
+ 
+         public Builder disabledMetricAttributes(Set<MetricAttribute> attributes) {
+             this.disabledMetricAttributes = attributes;
+             return this;
+         }
+ 
+         public Builder withMaxLength(int maxLength) {
+             this.maxLength = maxLength;
+             return this;
+         }
+ 
+         public CollectdReporter build(Sender sender) {
+             if (securityLevel != SecurityLevel.NONE) {
+                 if (username.isEmpty()) {
+                     throw new IllegalArgumentException("username is required for securityLevel: " + securityLevel);
+                 }
+                 if (password.isEmpty()) {
+                     throw new IllegalArgumentException("password is required for securityLevel: " + securityLevel);
+                 }
+             }
+             return new CollectdReporter(registry,
+                     hostName, sender,
+                     executor, shutdownExecutorOnStop,
+                     clock, rateUnit, durationUnit,
+                     filter, disabledMetricAttributes,
+                     username, password, securityLevel, new Sanitize(maxLength));
+         }
+     }
+ 
+     private static final Logger LOG = LoggerFactory.getLogger(CollectdReporter.class);
+     private static final String REPORTER_NAME = "collectd-reporter";
+     private static final String FALLBACK_HOST_NAME = "localhost";
+     private static final String COLLECTD_TYPE_GAUGE = "gauge";
+ 
+     private String hostName;
+     private final Sender sender;
+     private final Clock clock;
+     private long period;
+     private final PacketWriter writer;
+     private final Sanitize sanitize;
+ 
+     private CollectdReporter(MetricRegistry registry,
+                              String hostname, Sender sender,
+                              ScheduledExecutorService executor, boolean shutdownExecutorOnStop,
+                              Clock clock, TimeUnit rateUnit, TimeUnit durationUnit,
+                              MetricFilter filter, Set<MetricAttribute> disabledMetricAttributes,
+                              String username, String password,
+                              SecurityLevel securityLevel, Sanitize sanitize) {
+         super(registry, REPORTER_NAME, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,
+                 disabledMetricAttributes);
+         this.hostName = (hostname != null) ? hostname : resolveHostName();
+         this.sender = sender;
+         this.clock = clock;
+         this.sanitize = sanitize;
+         writer = new PacketWriter(sender, username, password, securityLevel);
+     }
+ 
+     private String resolveHostName() {
+         try {
+             return InetAddress.getLocalHost().getHostName();
+         } catch (Exception e) {
+             LOG.error("Failed to lookup local host name: {}", e.getMessage(), e);
+             return FALLBACK_HOST_NAME;
+         }
+     }
+ 
+     @Override
+     public void start(long period, TimeUnit unit) {
+         this.period = period;
+         super.start(period, unit);
+     }
+ 
+     @Override
+     @SuppressWarnings("rawtypes")
+     public void report(SortedMap<String, Gauge> gauges, SortedMap<String, Counter> counters,
+             SortedMap<String, Histogram> histograms, SortedMap<String, Meter> meters, SortedMap<String, Timer> timers) {
+         MetaData.Builder metaData = new MetaData.Builder(sanitize, hostName, clock.getTime() / 1000, period)
+                 .type(COLLECTD_TYPE_GAUGE);
+         try {
+             connect(sender);
+             for (Map.Entry<String, Gauge> entry : gauges.entrySet()) {
+                 serializeGauge(metaData.plugin(entry.getKey()), entry.getValue());
+             }
+             for (Map.Entry<String, Counter> entry : counters.entrySet()) {
+                 serializeCounter(metaData.plugin(entry.getKey()), entry.getValue());
+             }
+             for (Map.Entry<String, Histogram> entry : histograms.entrySet()) {
+                 serializeHistogram(metaData.plugin(entry.getKey()), entry.getValue());
+             }
+             for (Map.Entry<String, Meter> entry : meters.entrySet()) {
+                 serializeMeter(metaData.plugin(entry.getKey()), entry.getValue());
+             }
+             for (Map.Entry<String, Timer> entry : timers.entrySet()) {
+                 serializeTimer(metaData.plugin(entry.getKey()), entry.getValue());
+             }
+         } catch (IOException e) {
+             LOG.warn("Unable to report to Collectd", e);
+         } finally {
+             disconnect(sender);
+         }
+     }
+ 
+     private void connect(Sender sender) throws IOException {
+         if (!sender.isConnected()) {
+             sender.connect();
+         }
+     }
+ 
+     private void disconnect(Sender sender) {
+         try {
+             sender.disconnect();
+         } catch (Exception e) {
+             LOG.warn("Error disconnecting from Collectd", e);
+         }
+     }
+ 
+     private void writeValue(MetaData.Builder metaData, MetricAttribute attribute, Number value) {
+         if (!getDisabledMetricAttributes().contains(attribute)) {
+             write(metaData.typeInstance(attribute.getCode()).get(), value);
+         }
+     }
+ 
+     private void writeRate(MetaData.Builder metaData, MetricAttribute attribute, double rate) {
+         writeValue(metaData, attribute, convertRate(rate));
+     }
+ 
+     private void writeDuration(MetaData.Builder metaData, MetricAttribute attribute, double duration) {
+         writeValue(metaData, attribute, convertDuration(duration));
+     }
+ 
+     private void write(MetaData metaData, Number value) {
+         try {
+             writer.write(metaData, value);
+         } catch (RuntimeException e) {
+             LOG.warn("Failed to process metric '" + metaData.getPlugin() + "': " + e.getMessage());
+         } catch (IOException e) {
+             LOG.error("Failed to send metric to collectd", e);
+         }
+     }
+ 
+     @SuppressWarnings("rawtypes")
+     private void serializeGauge(MetaData.Builder metaData, Gauge metric) {
+         if (metric.getValue() instanceof Number) {
+             write(metaData.typeInstance("value").get(), (Number) metric.getValue());
+         } else if (metric.getValue() instanceof Boolean) {
+             write(metaData.typeInstance("value").get(), ((Boolean) metric.getValue()) ? 1 : 0);
+         } else {
+             LOG.warn("Failed to process metric '{}'. Unsupported gauge of type: {} ", metaData.get().getPlugin(),
+                     metric.getValue().getClass().getName());
+         }
+     }
+ 
+     private void serializeMeter(MetaData.Builder metaData, Meter metric) {
+         writeValue(metaData, COUNT, (double) metric.getCount());
+         writeRate(metaData, M1_RATE, metric.getOneMinuteRate());
+         writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());
+         writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());
+         writeRate(metaData, MEAN_RATE, metric.getMeanRate());
+     }
+ 
+     private void serializeCounter(MetaData.Builder metaData, Counter metric) {
+         writeValue(metaData, COUNT, (double) metric.getCount());
+     }
+ 
+     private void serializeHistogram(MetaData.Builder metaData, Histogram metric) {
+         final Snapshot snapshot = metric.getSnapshot();
+         writeValue(metaData, COUNT, (double) metric.getCount());
+         writeValue(metaData, MAX, (double) snapshot.getMax());
+         writeValue(metaData, MEAN, snapshot.getMean());
+         writeValue(metaData, MIN, (double) snapshot.getMin());
+         writeValue(metaData, STDDEV, snapshot.getStdDev());
+         writeValue(metaData, P50, snapshot.getMedian());
+         writeValue(metaData, P75, snapshot.get75thPercentile());
+         writeValue(metaData, P95, snapshot.get95thPercentile());
+         writeValue(metaData, P98, snapshot.get98thPercentile());
+         writeValue(metaData, P99, snapshot.get99thPercentile());
+         writeValue(metaData, P999, snapshot.get999thPercentile());
+     }
+ 
+     private void serializeTimer(MetaData.Builder metaData, Timer metric) {
+         final Snapshot snapshot = metric.getSnapshot();
+         writeValue(metaData, COUNT, (double) metric.getCount());
+         writeDuration(metaData, MAX, (double) snapshot.getMax());
+         writeDuration(metaData, MEAN, snapshot.getMean());
+         writeDuration(metaData, MIN, (double) snapshot.getMin());
+         writeDuration(metaData, STDDEV, snapshot.getStdDev());
+         writeDuration(metaData, P50, snapshot.getMedian());
+         writeDuration(metaData, P75, snapshot.get75thPercentile());
+         writeDuration(metaData, P95, snapshot.get95thPercentile());
+         writeDuration(metaData, P98, snapshot.get98thPercentile());
+         writeDuration(metaData, P99, snapshot.get99thPercentile());
+         writeDuration(metaData, P999, snapshot.get999thPercentile());
+         writeRate(metaData, M1_RATE, metric.getOneMinuteRate());
+         writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());
+         writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());
+         writeRate(metaData, MEAN_RATE, metric.getMeanRate());
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-2.html new file mode 100644 index 0000000000..e5e1771687 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-2.html @@ -0,0 +1,228 @@ + + + + + + + + Coverage Report > MetaData + + + + + + +
+ + +

Coverage Summary for Class: MetaData (com.codahale.metrics.collectd)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
MetaData + + 100% + + + (8/8) + + + + 100% + + + (15/15) + +
MetaData$Builder + + 85.7% + + + (6/7) + + + + 86.7% + + + (13/15) + +
Total + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
+ +
+
+ + +
+ package com.codahale.metrics.collectd;
+ 
+ class MetaData {
+ 
+     private final String host;
+     private final String plugin;
+     private final String pluginInstance;
+     private final String type;
+     private final String typeInstance;
+     private final long timestamp;
+     private final long period;
+ 
+     MetaData(String host, String plugin, String pluginInstance, String type, String typeInstance,
+              long timestamp, long period) {
+         this.host = host;
+         this.plugin = plugin;
+         this.pluginInstance = pluginInstance;
+         this.type = type;
+         this.typeInstance = typeInstance;
+         this.timestamp = timestamp;
+         this.period = period;
+     }
+ 
+     String getHost() {
+         return host;
+     }
+ 
+     String getPlugin() {
+         return plugin;
+     }
+ 
+     String getPluginInstance() {
+         return pluginInstance;
+     }
+ 
+     String getType() {
+         return type;
+     }
+ 
+     String getTypeInstance() {
+         return typeInstance;
+     }
+ 
+     long getTimestamp() {
+         return timestamp;
+     }
+ 
+     long getPeriod() {
+         return period;
+     }
+ 
+     static class Builder {
+ 
+         private String host;
+         private String plugin;
+         private String pluginInstance;
+         private String type;
+         private String typeInstance;
+         private long timestamp;
+         private long period;
+         private Sanitize sanitize;
+ 
+         Builder(String host, long timestamp, long duration) {
+             this(new Sanitize(Sanitize.DEFAULT_MAX_LENGTH), host, timestamp, duration);
+         }
+ 
+         Builder(Sanitize sanitize, String host, long timestamp, long duration) {
+             this.sanitize = sanitize;
+             this.host = sanitize.instanceName(host);
+             this.timestamp = timestamp;
+             period = duration;
+         }
+ 
+         Builder plugin(String name) {
+             plugin = sanitize.name(name);
+             return this;
+         }
+ 
+         Builder pluginInstance(String name) {
+             pluginInstance = sanitize.instanceName(name);
+             return this;
+         }
+ 
+         Builder type(String name) {
+             type = sanitize.name(name);
+             return this;
+         }
+ 
+         Builder typeInstance(String name) {
+             typeInstance = sanitize.instanceName(name);
+             return this;
+         }
+ 
+         MetaData get() {
+             return new MetaData(host, plugin, pluginInstance, type, typeInstance, timestamp, period);
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-3.html new file mode 100644 index 0000000000..d805c74669 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-3.html @@ -0,0 +1,424 @@ + + + + + + + + Coverage Report > PacketWriter + + + + + + +
+ + +

Coverage Summary for Class: PacketWriter (com.codahale.metrics.collectd)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
PacketWriter + + 100% + + + (14/14) + + + + 85.4% + + + (88/103) + +
PacketWriter$1 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
PacketWriter$EncryptionResult + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
Total + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
+ +
+
+ + +
+ package com.codahale.metrics.collectd;
+ 
+ import javax.crypto.BadPaddingException;
+ import javax.crypto.Cipher;
+ import javax.crypto.IllegalBlockSizeException;
+ import javax.crypto.Mac;
+ import javax.crypto.NoSuchPaddingException;
+ import javax.crypto.ShortBufferException;
+ import javax.crypto.spec.IvParameterSpec;
+ import javax.crypto.spec.SecretKeySpec;
+ import java.io.IOException;
+ import java.nio.BufferOverflowException;
+ import java.nio.ByteBuffer;
+ import java.nio.ByteOrder;
+ import java.nio.charset.StandardCharsets;
+ import java.security.InvalidKeyException;
+ import java.security.MessageDigest;
+ import java.security.NoSuchAlgorithmException;
+ import java.security.spec.InvalidParameterSpecException;
+ import java.util.Arrays;
+ 
+ class PacketWriter {
+ 
+     private static final int TYPE_HOST = 0;
+     private static final int TYPE_TIME = 1;
+     private static final int TYPE_PLUGIN = 2;
+     private static final int TYPE_PLUGIN_INSTANCE = 3;
+     private static final int TYPE_TYPE = 4;
+     private static final int TYPE_TYPE_INSTANCE = 5;
+     private static final int TYPE_VALUES = 6;
+     private static final int TYPE_INTERVAL = 7;
+     private static final int TYPE_SIGN_SHA256 = 0x0200;
+     private static final int TYPE_ENCR_AES256 = 0x0210;
+ 
+     private static final int UINT16_LEN = 2;
+     private static final int UINT32_LEN = UINT16_LEN * 2;
+     private static final int UINT64_LEN = UINT32_LEN * 2;
+     private static final int HEADER_LEN = UINT16_LEN * 2;
+     private static final int BUFFER_SIZE = 1024;
+ 
+     private static final int VALUE_COUNT_LEN = UINT16_LEN;
+     private static final int NUMBER_LEN = HEADER_LEN + UINT64_LEN;
+     private static final int SIGNATURE_LEN = 36;      // 2b Type + 2b Length + 32b Hash
+     private static final int ENCRYPT_DATA_LEN = 22;   // 16b IV + 2b Type + 2b Length + 2b Username length
+     private static final int IV_LENGTH = 16;
+     private static final int SHA1_LENGTH = 20;
+ 
+     private static final int VALUE_LEN = 9;
+     private static final byte DATA_TYPE_GAUGE = (byte) 1;
+     private static final byte NULL = (byte) '\0';
+     private static final String HMAC_SHA256_ALGORITHM = "HmacSHA256";
+     private static final String AES_CYPHER = "AES_256/OFB/NoPadding";
+     private static final String AES = "AES";
+     private static final String SHA_256_ALGORITHM = "SHA-256";
+     private static final String SHA_1_ALGORITHM = "SHA1";
+ 
+     private final Sender sender;
+ 
+     private final SecurityLevel securityLevel;
+     private final byte[] username;
+     private final byte[] password;
+ 
+     PacketWriter(Sender sender, String username, String password, SecurityLevel securityLevel) {
+         this.sender = sender;
+         this.securityLevel = securityLevel;
+         this.username = username != null ? username.getBytes(StandardCharsets.UTF_8) : null;
+         this.password = password != null ? password.getBytes(StandardCharsets.UTF_8) : null;
+     }
+ 
+     void write(MetaData metaData, Number... values) throws BufferOverflowException, IOException {
+         final ByteBuffer packet = ByteBuffer.allocate(BUFFER_SIZE);
+         write(packet, metaData);
+         write(packet, values);
+         packet.flip();
+ 
+         switch (securityLevel) {
+             case NONE:
+                 sender.send(packet);
+                 break;
+             case SIGN:
+                 sender.send(signPacket(packet));
+                 break;
+             case ENCRYPT:
+                 sender.send(encryptPacket(packet));
+                 break;
+             default:
+                 throw new IllegalArgumentException("Unsupported security level: " + securityLevel);
+         }
+     }
+ 
+ 
+     private void write(ByteBuffer buffer, MetaData metaData) {
+         writeString(buffer, TYPE_HOST, metaData.getHost());
+         writeNumber(buffer, TYPE_TIME, metaData.getTimestamp());
+         writeString(buffer, TYPE_PLUGIN, metaData.getPlugin());
+         writeString(buffer, TYPE_PLUGIN_INSTANCE, metaData.getPluginInstance());
+         writeString(buffer, TYPE_TYPE, metaData.getType());
+         writeString(buffer, TYPE_TYPE_INSTANCE, metaData.getTypeInstance());
+         writeNumber(buffer, TYPE_INTERVAL, metaData.getPeriod());
+     }
+ 
+     private void write(ByteBuffer buffer, Number... values) {
+         final int numValues = values.length;
+         final int length = HEADER_LEN + VALUE_COUNT_LEN + numValues * VALUE_LEN;
+         writeHeader(buffer, TYPE_VALUES, length);
+         buffer.putShort((short) numValues);
+         buffer.put(nCopies(numValues, DATA_TYPE_GAUGE));
+         buffer.order(ByteOrder.LITTLE_ENDIAN);
+         for (Number value : values) {
+             buffer.putDouble(value.doubleValue());
+         }
+         buffer.order(ByteOrder.BIG_ENDIAN);
+     }
+ 
+     private byte[] nCopies(int n, byte value) {
+         final byte[] array = new byte[n];
+         Arrays.fill(array, value);
+         return array;
+     }
+ 
+     private void writeString(ByteBuffer buffer, int type, String val) {
+         if (val == null || val.length() == 0) {
+             return;
+         }
+         int len = HEADER_LEN + val.length() + 1;
+         writeHeader(buffer, type, len);
+         buffer.put(val.getBytes(StandardCharsets.US_ASCII)).put(NULL);
+     }
+ 
+     private void writeNumber(ByteBuffer buffer, int type, long val) {
+         writeHeader(buffer, type, NUMBER_LEN);
+         buffer.putLong(val);
+     }
+ 
+     private void writeHeader(ByteBuffer buffer, int type, int len) {
+         buffer.putShort((short) type);
+         buffer.putShort((short) len);
+     }
+ 
+     /**
+      * Signs the provided packet, so a CollectD server can verify that its authenticity.
+      * Wire format:
+      * <pre>
+      * +-------------------------------+-------------------------------+
+      * ! Type (0x0200)                 ! Length                        !
+      * +-------------------------------+-------------------------------+
+      * ! Signature (SHA2(username + packet))                           \
+      * +-------------------------------+-------------------------------+
+      * ! Username                      ! Packet                        \
+      * +---------------------------------------------------------------+
+      * </pre>
+      *
+      * @see <a href="https://collectd.org/wiki/index.php/Binary_protocol#Signature_part">
+      * Binary protocol - CollectD | Signature part</a>
+      */
+     private ByteBuffer signPacket(ByteBuffer packet) {
+         final byte[] signature = sign(password, (ByteBuffer) ByteBuffer.allocate(packet.remaining() + username.length)
+                 .put(username)
+                 .put(packet)
+                 .flip());
+         return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)
+                 .putShort((short) TYPE_SIGN_SHA256)
+                 .putShort((short) (username.length + SIGNATURE_LEN))
+                 .put(signature)
+                 .put(username)
+                 .put((ByteBuffer) packet.flip())
+                 .flip();
+     }
+ 
+     /**
+      * Encrypts the provided packet, so it's can't be eavesdropped during a transfer
+      * to a CollectD server. Wire format:
+      * <pre>
+      * +---------------------------------+-------------------------------+
+      * ! Type (0x0210)                   ! Length                        !
+      * +---------------------------------+-------------------------------+
+      * ! Username length in bytes        ! Username                      \
+      * +-----------------------------------------------------------------+
+      * ! Initialization Vector (IV)      !                               \
+      * +---------------------------------+-------------------------------+
+      * ! Encrypted bytes (AES (SHA1(packet) + packet))                   \
+      * +---------------------------------+-------------------------------+
+      * </pre>
+      *
+      * @see <a href="https://collectd.org/wiki/index.php/Binary_protocol#Encrypted_part">
+      * Binary protocol - CollectD | Encrypted part</a>
+      */
+     private ByteBuffer encryptPacket(ByteBuffer packet) {
+         final ByteBuffer payload = (ByteBuffer) ByteBuffer.allocate(SHA1_LENGTH + packet.remaining())
+                 .put(sha1(packet))
+                 .put((ByteBuffer) packet.flip())
+                 .flip();
+         final EncryptionResult er = encrypt(password, payload);
+         return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)
+                 .putShort((short) TYPE_ENCR_AES256)
+                 .putShort((short) (ENCRYPT_DATA_LEN + username.length + er.output.remaining()))
+                 .putShort((short) username.length)
+                 .put(username)
+                 .put(er.iv)
+                 .put(er.output)
+                 .flip();
+     }
+ 
+     private static byte[] sign(byte[] secret, ByteBuffer input) {
+         final Mac mac;
+         try {
+             mac = Mac.getInstance(HMAC_SHA256_ALGORITHM);
+             mac.init(new SecretKeySpec(secret, HMAC_SHA256_ALGORITHM));
+         } catch (NoSuchAlgorithmException | InvalidKeyException e) {
+             throw new RuntimeException(e);
+         }
+         mac.update(input);
+         return mac.doFinal();
+     }
+ 
+     private static EncryptionResult encrypt(byte[] password, ByteBuffer input) {
+         final Cipher cipher;
+         try {
+             cipher = Cipher.getInstance(AES_CYPHER);
+             cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(sha256(password), AES));
+         } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException e) {
+             throw new RuntimeException(e);
+         }
+         final byte[] iv;
+         try {
+             iv = cipher.getParameters().getParameterSpec(IvParameterSpec.class).getIV();
+         } catch (InvalidParameterSpecException e) {
+             throw new RuntimeException(e);
+         }
+         if (iv.length != IV_LENGTH) {
+             throw new IllegalStateException("Bad initialization vector");
+         }
+         final ByteBuffer output = ByteBuffer.allocate(input.remaining() * 2);
+         try {
+             cipher.doFinal(input, output);
+         } catch (ShortBufferException | IllegalBlockSizeException | BadPaddingException e) {
+             throw new RuntimeException(e);
+         }
+         return new EncryptionResult(iv, (ByteBuffer) output.flip());
+     }
+ 
+     private static byte[] sha256(byte[] input) {
+         try {
+             return MessageDigest.getInstance(SHA_256_ALGORITHM).digest(input);
+         } catch (NoSuchAlgorithmException e) {
+             throw new RuntimeException(e);
+         }
+     }
+ 
+     private static byte[] sha1(ByteBuffer input) {
+         try {
+             final MessageDigest digest = MessageDigest.getInstance(SHA_1_ALGORITHM);
+             digest.update(input);
+             final byte[] output = digest.digest();
+             if (output.length != SHA1_LENGTH) {
+                 throw new IllegalStateException("Bad SHA1 hash");
+             }
+             return output;
+         } catch (NoSuchAlgorithmException e) {
+             throw new RuntimeException(e);
+         }
+     }
+ 
+     private static class EncryptionResult {
+ 
+         private final byte[] iv;
+         private final ByteBuffer output;
+ 
+         private EncryptionResult(byte[] iv, ByteBuffer output) {
+             this.iv = iv;
+             this.output = output;
+         }
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-4.html new file mode 100644 index 0000000000..4e031be5b4 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-4.html @@ -0,0 +1,150 @@ + + + + + + + + Coverage Report > Sanitize + + + + + + +
+ + +

Coverage Summary for Class: Sanitize (com.codahale.metrics.collectd)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
+ +
+
+ + +
+ package com.codahale.metrics.collectd;
+ 
+ import java.util.Arrays;
+ import java.util.List;
+ 
+ /**
+  * @see <a href="https://collectd.org/wiki/index.php/Naming_schema>Collectd naming schema</a>
+  */
+ class Sanitize {
+ 
+     static final int DEFAULT_MAX_LENGTH = 63;
+ 
+     private static final char DASH = '-';
+     private static final char SLASH = '/';
+     private static final char NULL = '\0';
+     private static final char UNDERSCORE = '_';
+ 
+     private static final List<Character> INSTANCE_RESERVED = Arrays.asList(SLASH, NULL);
+     private static final List<Character> NAME_RESERVED = Arrays.asList(DASH, SLASH, NULL);
+ 
+     private final int maxLength;
+ 
+     Sanitize(int maxLength) {
+         this.maxLength = maxLength;
+     }
+ 
+     String name(String name) {
+         return sanitize(name, NAME_RESERVED);
+     }
+ 
+     String instanceName(String instanceName) {
+         return sanitize(instanceName, INSTANCE_RESERVED);
+     }
+ 
+     private String sanitize(String string, List<Character> reservedChars) {
+         final StringBuilder buffer = new StringBuilder(string.length());
+         final int len = Math.min(string.length(), maxLength);
+         for (int i = 0; i < len; i++) {
+             final char c = string.charAt(i);
+             final boolean legal = ((int) c) < 128 && !reservedChars.contains(c);
+             buffer.append(legal ? c : UNDERSCORE);
+         }
+         return buffer.toString();
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-5.html new file mode 100644 index 0000000000..0455d52e0e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-5.html @@ -0,0 +1,134 @@ + + + + + + + + Coverage Report > SecurityConfiguration + + + + + + +
+ + +

Coverage Summary for Class: SecurityConfiguration (com.codahale.metrics.collectd)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
+ +
+
+ + +
+ package com.codahale.metrics.collectd;
+ 
+ public class SecurityConfiguration {
+ 
+     private final byte[] username;
+     private final byte[] password;
+     private final SecurityLevel securityLevel;
+ 
+     public SecurityConfiguration(byte[] username, byte[] password, SecurityLevel securityLevel) {
+         this.username = username;
+         this.password = password;
+         this.securityLevel = securityLevel;
+     }
+ 
+     public static SecurityConfiguration none() {
+         return new SecurityConfiguration(null, null, SecurityLevel.NONE);
+     }
+ 
+     public byte[] getUsername() {
+         return username;
+     }
+ 
+     public byte[] getPassword() {
+         return password;
+     }
+ 
+     public SecurityLevel getSecurityLevel() {
+         return securityLevel;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-6.html new file mode 100644 index 0000000000..af49f6a187 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-6.html @@ -0,0 +1,112 @@ + + + + + + + + Coverage Report > SecurityLevel + + + + + + +
+ + +

Coverage Summary for Class: SecurityLevel (com.codahale.metrics.collectd)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + +
+ package com.codahale.metrics.collectd;
+ 
+ public enum SecurityLevel {
+ 
+     NONE,
+     SIGN,
+     ENCRYPT
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-7.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-7.html new file mode 100644 index 0000000000..220b215ae3 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-7.html @@ -0,0 +1,154 @@ + + + + + + + + Coverage Report > Sender + + + + + + +
+ + +

Coverage Summary for Class: Sender (com.codahale.metrics.collectd)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
+ +
+
+ + +
+ package com.codahale.metrics.collectd;
+ 
+ import java.io.IOException;
+ import java.net.InetSocketAddress;
+ import java.nio.ByteBuffer;
+ import java.nio.channels.DatagramChannel;
+ 
+ public class Sender {
+ 
+     private final String host;
+     private final int port;
+ 
+     private InetSocketAddress address;
+     private DatagramChannel channel;
+ 
+     public Sender(String host, int port) {
+         this.host = host;
+         this.port = port;
+     }
+ 
+     public void connect() throws IOException {
+         if (isConnected()) {
+             throw new IllegalStateException("Already connected");
+         }
+         if (host != null) {
+             address = new InetSocketAddress(host, port);
+         }
+         channel = DatagramChannel.open();
+     }
+ 
+     public boolean isConnected() {
+         return channel != null && !channel.socket().isClosed();
+     }
+ 
+     public void send(ByteBuffer buffer) throws IOException {
+         channel.send(buffer, address);
+     }
+ 
+     public void disconnect() throws IOException {
+         if (channel == null) {
+             return;
+         }
+         try {
+             channel.close();
+         } finally {
+             channel = null;
+         }
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index.html new file mode 100644 index 0000000000..9611669772 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-6/index.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..8d8754a22b --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..44944fc74a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..e3e3744f12 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..3c89630c4e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..9f94c303c7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_LINE.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..816546fe40 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..8674f1de53 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..68599089e4 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..b21df5ddfe --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/sources/source-1.html new file mode 100644 index 0000000000..36c6003858 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-6/sources/source-1.html @@ -0,0 +1,128 @@ + + + + + + + + Coverage Report > InstrumentedCacheDecoratorFactory + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedCacheDecoratorFactory (com.codahale.metrics.ehcache)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
+ +
+
+ + +
+ package com.codahale.metrics.ehcache;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.SharedMetricRegistries;
+ import net.sf.ehcache.Ehcache;
+ import net.sf.ehcache.constructs.CacheDecoratorFactory;
+ 
+ import java.util.Properties;
+ 
+ public class InstrumentedCacheDecoratorFactory extends CacheDecoratorFactory {
+     @Override
+     public Ehcache createDecoratedEhcache(Ehcache cache, Properties properties) {
+         final String name = properties.getProperty("metric-registry-name");
+         final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);
+         return InstrumentedEhcache.instrument(registry, cache);
+     }
+ 
+     @Override
+     public Ehcache createDefaultDecoratedEhcache(Ehcache cache, Properties properties) {
+         final String name = properties.getProperty("metric-registry-name");
+         final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);
+         return InstrumentedEhcache.instrument(registry, cache);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/sources/source-2.html new file mode 100644 index 0000000000..cc85a63d16 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-6/sources/source-2.html @@ -0,0 +1,335 @@ + + + + + + + + Coverage Report > InstrumentedEhcache + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedEhcache (com.codahale.metrics.ehcache)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
+ +
+
+ + +
+ package com.codahale.metrics.ehcache;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import net.sf.ehcache.CacheException;
+ import net.sf.ehcache.Ehcache;
+ import net.sf.ehcache.Element;
+ import net.sf.ehcache.constructs.EhcacheDecoratorAdapter;
+ import net.sf.ehcache.statistics.StatisticsGateway;
+ 
+ import java.io.Serializable;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * An instrumented {@link Ehcache} instance.
+  */
+ public class InstrumentedEhcache extends EhcacheDecoratorAdapter {
+     /**
+      * Instruments the given {@link Ehcache} instance with get and put timers
+      * and a set of gauges for Ehcache's built-in statistics:
+      * <p>
+      * <table>
+      * <caption>Ehcache timered metrics</caption>
+      * <tr>
+      * <td>{@code hits}</td>
+      * <td>The number of times a requested item was found in the
+      * cache.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code in-memory-hits}</td>
+      * <td>Number of times a requested item was found in the memory
+      * store.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code off-heap-hits}</td>
+      * <td>Number of times a requested item was found in the off-heap
+      * store.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code on-disk-hits}</td>
+      * <td>Number of times a requested item was found in the disk
+      * store.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code misses}</td>
+      * <td>Number of times a requested item was not found in the
+      * cache.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code in-memory-misses}</td>
+      * <td>Number of times a requested item was not found in the memory
+      * store.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code off-heap-misses}</td>
+      * <td>Number of times a requested item was not found in the
+      * off-heap store.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code on-disk-misses}</td>
+      * <td>Number of times a requested item was not found in the disk
+      * store.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code objects}</td>
+      * <td>Number of elements stored in the cache.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code in-memory-objects}</td>
+      * <td>Number of objects in the memory store.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code off-heap-objects}</td>
+      * <td>Number of objects in the off-heap store.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code on-disk-objects}</td>
+      * <td>Number of objects in the disk store.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code mean-get-time}</td>
+      * <td>The average get time. Because ehcache support JDK1.4.2, each
+      * get time uses {@link System#currentTimeMillis()}, rather than
+      * nanoseconds. The accuracy is thus limited.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code mean-search-time}</td>
+      * <td>The average execution time (in milliseconds) within the last
+      * sample period.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code eviction-count}</td>
+      * <td>The number of cache evictions, since the cache was created,
+      * or statistics were cleared.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code searches-per-second}</td>
+      * <td>The number of search executions that have completed in the
+      * last second.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code accuracy}</td>
+      * <td>A human readable description of the accuracy setting. One of
+      * "None", "Best Effort" or "Guaranteed".</td>
+      * </tr>
+      * </table>
+      * <p>
+      * <b>N.B.: This enables Ehcache's sampling statistics with an accuracy
+      * level of "none."</b>
+      *
+      * @param cache    an {@link Ehcache} instance
+      * @param registry a {@link MetricRegistry}
+      * @return an instrumented decorator for {@code cache}
+      * @see StatisticsGateway
+      */
+     public static Ehcache instrument(MetricRegistry registry, final Ehcache cache) {
+ 
+         final String prefix = name(cache.getClass(), cache.getName());
+         registry.registerGauge(name(prefix, "hits"),
+                 () -> cache.getStatistics().cacheHitCount());
+ 
+         registry.registerGauge(name(prefix, "in-memory-hits"),
+                 () -> cache.getStatistics().localHeapHitCount());
+ 
+         registry.registerGauge(name(prefix, "off-heap-hits"),
+                 () -> cache.getStatistics().localOffHeapHitCount());
+ 
+         registry.registerGauge(name(prefix, "on-disk-hits"),
+                 () -> cache.getStatistics().localDiskHitCount());
+ 
+         registry.registerGauge(name(prefix, "misses"),
+                 () -> cache.getStatistics().cacheMissCount());
+ 
+         registry.registerGauge(name(prefix, "in-memory-misses"),
+                 () -> cache.getStatistics().localHeapMissCount());
+ 
+         registry.registerGauge(name(prefix, "off-heap-misses"),
+                 () -> cache.getStatistics().localOffHeapMissCount());
+ 
+         registry.registerGauge(name(prefix, "on-disk-misses"),
+                 () -> cache.getStatistics().localDiskMissCount());
+ 
+         registry.registerGauge(name(prefix, "objects"),
+                 () -> cache.getStatistics().getSize());
+ 
+         registry.registerGauge(name(prefix, "in-memory-objects"),
+                 () -> cache.getStatistics().getLocalHeapSize());
+ 
+         registry.registerGauge(name(prefix, "off-heap-objects"),
+                 () -> cache.getStatistics().getLocalOffHeapSize());
+ 
+         registry.registerGauge(name(prefix, "on-disk-objects"),
+                 () -> cache.getStatistics().getLocalDiskSize());
+ 
+         registry.registerGauge(name(prefix, "mean-get-time"),
+                 () -> cache.getStatistics().cacheGetOperation().latency().average().value());
+ 
+         registry.registerGauge(name(prefix, "mean-search-time"),
+                 () -> cache.getStatistics().cacheSearchOperation().latency().average().value());
+ 
+         registry.registerGauge(name(prefix, "eviction-count"),
+                 () -> cache.getStatistics().cacheEvictionOperation().count().value());
+ 
+         registry.registerGauge(name(prefix, "searches-per-second"),
+                 () -> cache.getStatistics().cacheSearchOperation().rate().value());
+ 
+         registry.registerGauge(name(prefix, "writer-queue-size"),
+                 () -> cache.getStatistics().getWriterQueueLength());
+ 
+         return new InstrumentedEhcache(registry, cache);
+     }
+ 
+     private final Timer getTimer, putTimer;
+ 
+     private InstrumentedEhcache(MetricRegistry registry, Ehcache cache) {
+         super(cache);
+         this.getTimer = registry.timer(name(cache.getClass(), cache.getName(), "gets"));
+         this.putTimer = registry.timer(name(cache.getClass(), cache.getName(), "puts"));
+     }
+ 
+     @Override
+     public Element get(Object key) throws IllegalStateException, CacheException {
+         final Timer.Context ctx = getTimer.time();
+         try {
+             return underlyingCache.get(key);
+         } finally {
+             ctx.stop();
+         }
+     }
+ 
+     @Override
+     public Element get(Serializable key) throws IllegalStateException, CacheException {
+         final Timer.Context ctx = getTimer.time();
+         try {
+             return underlyingCache.get(key);
+         } finally {
+             ctx.stop();
+         }
+     }
+ 
+     @Override
+     public void put(Element element) throws IllegalArgumentException, IllegalStateException, CacheException {
+         final Timer.Context ctx = putTimer.time();
+         try {
+             underlyingCache.put(element);
+         } finally {
+             ctx.stop();
+         }
+     }
+ 
+     @Override
+     public void put(Element element, boolean doNotNotifyCacheReplicators) throws IllegalArgumentException, IllegalStateException, CacheException {
+         final Timer.Context ctx = putTimer.time();
+         try {
+             underlyingCache.put(element, doNotNotifyCacheReplicators);
+         } finally {
+             ctx.stop();
+         }
+     }
+ 
+     @Override
+     public Element putIfAbsent(Element element) throws NullPointerException {
+         final Timer.Context ctx = putTimer.time();
+         try {
+             return underlyingCache.putIfAbsent(element);
+         } finally {
+             ctx.stop();
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index.html new file mode 100644 index 0000000000..bb5dabe05f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-7/index.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..7f99b878d0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..768b4c7f2f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..1f6ad48c16 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..05109cc337 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..f9e8e02fbc --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_LINE.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..a36fb3760d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..66484e711b --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..3f63a3106b --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..87ecb8f30e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-1.html new file mode 100644 index 0000000000..aaa2a76f35 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-1.html @@ -0,0 +1,305 @@ + + + + + + + + Coverage Report > Graphite + + + + + + +
+ + +

Coverage Summary for Class: Graphite (com.codahale.metrics.graphite)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
+ +
+
+ + +
+ package com.codahale.metrics.graphite;
+ 
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import javax.net.SocketFactory;
+ import java.io.BufferedWriter;
+ import java.io.IOException;
+ import java.io.OutputStreamWriter;
+ import java.io.Writer;
+ import java.net.InetSocketAddress;
+ import java.net.Socket;
+ import java.net.UnknownHostException;
+ import java.nio.charset.Charset;
+ 
+ import static java.nio.charset.StandardCharsets.UTF_8;
+ import static java.util.Objects.requireNonNull;
+ 
+ /**
+  * A client to a Carbon server via TCP.
+  */
+ public class Graphite implements GraphiteSender {
+     // this may be optimistic about Carbon/Graphite
+ 
+     private final String hostname;
+     private final int port;
+     private final InetSocketAddress address;
+     private final SocketFactory socketFactory;
+     private final Charset charset;
+ 
+     private Socket socket;
+     private Writer writer;
+     private int failures;
+ 
+     private static final Logger LOGGER = LoggerFactory.getLogger(Graphite.class);
+ 
+     /**
+      * Creates a new client which connects to the given address using the default
+      * {@link SocketFactory}.
+      *
+      * @param hostname The hostname of the Carbon server
+      * @param port     The port of the Carbon server
+      */
+     public Graphite(String hostname, int port) {
+         this(hostname, port, SocketFactory.getDefault());
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address and socket factory.
+      *
+      * @param hostname      The hostname of the Carbon server
+      * @param port          The port of the Carbon server
+      * @param socketFactory the socket factory
+      */
+     public Graphite(String hostname, int port, SocketFactory socketFactory) {
+         this(hostname, port, socketFactory, UTF_8);
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address and socket factory using the given
+      * character set.
+      *
+      * @param hostname      The hostname of the Carbon server
+      * @param port          The port of the Carbon server
+      * @param socketFactory the socket factory
+      * @param charset       the character set used by the server
+      */
+     public Graphite(String hostname, int port, SocketFactory socketFactory, Charset charset) {
+         if (hostname == null || hostname.isEmpty()) {
+             throw new IllegalArgumentException("hostname must not be null or empty");
+         }
+ 
+         if (port < 0 || port > 65535) {
+             throw new IllegalArgumentException("port must be a valid IP port (0-65535)");
+         }
+ 
+         this.hostname = hostname;
+         this.port = port;
+         this.address = null;
+         this.socketFactory = requireNonNull(socketFactory, "socketFactory must not be null");
+         this.charset = requireNonNull(charset, "charset must not be null");
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address using the default
+      * {@link SocketFactory}.
+      *
+      * @param address the address of the Carbon server
+      */
+     public Graphite(InetSocketAddress address) {
+         this(address, SocketFactory.getDefault());
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address and socket factory.
+      *
+      * @param address       the address of the Carbon server
+      * @param socketFactory the socket factory
+      */
+     public Graphite(InetSocketAddress address, SocketFactory socketFactory) {
+         this(address, socketFactory, UTF_8);
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address and socket factory using the given
+      * character set.
+      *
+      * @param address       the address of the Carbon server
+      * @param socketFactory the socket factory
+      * @param charset       the character set used by the server
+      */
+     public Graphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset) {
+         this.hostname = null;
+         this.port = -1;
+         this.address = requireNonNull(address, "address must not be null");
+         this.socketFactory = requireNonNull(socketFactory, "socketFactory must not be null");
+         this.charset = requireNonNull(charset, "charset must not be null");
+     }
+ 
+     @Override
+     public void connect() throws IllegalStateException, IOException {
+         if (isConnected()) {
+             throw new IllegalStateException("Already connected");
+         }
+         InetSocketAddress address = this.address;
+         // the previous dns retry logic did not work, as address.getAddress would always return the cached value
+         // this version of the simplified logic will always cause a dns request if hostname has been supplied.
+         // InetAddress.getByName forces the dns lookup
+         // if an InetSocketAddress was supplied at create time that will take precedence.
+         if (address == null || address.getHostName() == null && hostname != null) {
+             address = new InetSocketAddress(hostname, port);
+         }
+ 
+         if (address.getAddress() == null) {
+             throw new UnknownHostException(address.getHostName());
+         }
+ 
+         this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());
+         this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));
+     }
+ 
+     @Override
+     public boolean isConnected() {
+         return socket != null && socket.isConnected() && !socket.isClosed();
+     }
+ 
+     @Override
+     public void send(String name, String value, long timestamp) throws IOException {
+         try {
+             writer.write(sanitize(name));
+             writer.write(' ');
+             writer.write(sanitize(value));
+             writer.write(' ');
+             writer.write(Long.toString(timestamp));
+             writer.write('\n');
+             this.failures = 0;
+         } catch (IOException e) {
+             failures++;
+             throw e;
+         }
+     }
+ 
+     @Override
+     public int getFailures() {
+         return failures;
+     }
+ 
+     @Override
+     public void flush() throws IOException {
+         if (writer != null) {
+             writer.flush();
+         }
+     }
+ 
+     @Override
+     public void close() throws IOException {
+         try {
+             if (writer != null) {
+                 writer.close();
+             }
+         } catch (IOException ex) {
+             LOGGER.debug("Error closing writer", ex);
+         } finally {
+             this.writer = null;
+         }
+ 
+         try {
+             if (socket != null) {
+                 socket.close();
+             }
+         } catch (IOException ex) {
+             LOGGER.debug("Error closing socket", ex);
+         } finally {
+             this.socket = null;
+         }
+     }
+ 
+     protected String sanitize(String s) {
+         return GraphiteSanitize.sanitize(s);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-2.html new file mode 100644 index 0000000000..44eca6b237 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-2.html @@ -0,0 +1,293 @@ + + + + + + + + Coverage Report > GraphiteRabbitMQ + + + + + + +
+ + +

Coverage Summary for Class: GraphiteRabbitMQ (com.codahale.metrics.graphite)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
GraphiteRabbitMQ + + 72.7% + + + (8/11) + + + + 63.2% + + + (24/38) + +
GraphiteRabbitMQ$1 + + 0% + + + (0/2) + + + + 0% + + + (0/3) + +
Total + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
+ +
+
+ + +
+ package com.codahale.metrics.graphite;
+ 
+ import com.rabbitmq.client.Channel;
+ import com.rabbitmq.client.Connection;
+ import com.rabbitmq.client.ConnectionFactory;
+ import com.rabbitmq.client.DefaultSocketConfigurator;
+ 
+ import java.io.IOException;
+ import java.net.Socket;
+ import java.util.concurrent.TimeoutException;
+ 
+ import static java.nio.charset.StandardCharsets.UTF_8;
+ 
+ /**
+  * A rabbit-mq client to a Carbon server.
+  */
+ public class GraphiteRabbitMQ implements GraphiteSender {
+ 
+     private static final Integer DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS = 500;
+     private static final Integer DEFAULT_RABBIT_SOCKET_TIMEOUT_MS = 5000;
+     private static final Integer DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC = 10;
+ 
+     private ConnectionFactory connectionFactory;
+     private Connection connection;
+     private Channel channel;
+     private String exchange;
+ 
+     private int failures;
+ 
+     /**
+      * Creates a new client with a given a {@link com.rabbitmq.client.ConnectionFactory} and an amqp exchange
+      *
+      * @param connectionFactory the {@link com.rabbitmq.client.ConnectionFactory} used to establish connection and publish to graphite server
+      * @param exchange          the amqp exchange
+      */
+     public GraphiteRabbitMQ(final ConnectionFactory connectionFactory, final String exchange) {
+         this.connectionFactory = connectionFactory;
+         this.exchange = exchange;
+     }
+ 
+     /**
+      * Creates a new client given connection details
+      *
+      * @param rabbitHost     the rabbitmq server host
+      * @param rabbitPort     the rabbitmq server port
+      * @param rabbitUsername the rabbitmq server username
+      * @param rabbitPassword the rabbitmq server password
+      * @param exchange       the amqp exchange
+      */
+     public GraphiteRabbitMQ(
+             final String rabbitHost,
+             final Integer rabbitPort,
+             final String rabbitUsername,
+             final String rabbitPassword,
+             final String exchange) {
+ 
+         this(rabbitHost,
+                 rabbitPort,
+                 rabbitUsername,
+                 rabbitPassword,
+                 exchange,
+                 DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS,
+                 DEFAULT_RABBIT_SOCKET_TIMEOUT_MS,
+                 DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC);
+     }
+ 
+     /**
+      * Creates a new client given connection details
+      *
+      * @param rabbitHost                        the rabbitmq server host
+      * @param rabbitPort                        the rabbitmq server port
+      * @param rabbitUsername                    the rabbitmq server username
+      * @param rabbitPassword                    the rabbitmq server password
+      * @param exchange                          the amqp exchange
+      * @param rabbitConnectionTimeoutMS         the connection timeout in milliseconds
+      * @param rabbitSocketTimeoutMS             the socket timeout in milliseconds
+      * @param rabbitRequestedHeartbeatInSeconds the hearthbeat in seconds
+      */
+     public GraphiteRabbitMQ(
+             final String rabbitHost,
+             final Integer rabbitPort,
+             final String rabbitUsername,
+             final String rabbitPassword,
+             final String exchange,
+             final Integer rabbitConnectionTimeoutMS,
+             final Integer rabbitSocketTimeoutMS,
+             final Integer rabbitRequestedHeartbeatInSeconds) {
+ 
+         this.exchange = exchange;
+ 
+         this.connectionFactory = new ConnectionFactory();
+ 
+         connectionFactory.setSocketConfigurator(new DefaultSocketConfigurator() {
+             @Override
+             public void configure(Socket socket) throws IOException {
+                 super.configure(socket);
+                 socket.setSoTimeout(rabbitSocketTimeoutMS);
+             }
+         });
+ 
+         connectionFactory.setConnectionTimeout(rabbitConnectionTimeoutMS);
+         connectionFactory.setRequestedHeartbeat(rabbitRequestedHeartbeatInSeconds);
+         connectionFactory.setHost(rabbitHost);
+         connectionFactory.setPort(rabbitPort);
+         connectionFactory.setUsername(rabbitUsername);
+         connectionFactory.setPassword(rabbitPassword);
+     }
+ 
+     @Override
+     public void connect() throws IllegalStateException, IOException {
+         if (isConnected()) {
+             throw new IllegalStateException("Already connected");
+         }
+ 
+         try {
+             connection = connectionFactory.newConnection();
+         } catch (TimeoutException e) {
+             throw new IllegalStateException(e);
+         }
+         channel = connection.createChannel();
+     }
+ 
+     @Override
+     public boolean isConnected() {
+         return connection != null && connection.isOpen();
+     }
+ 
+     @Override
+     public void send(String name, String value, long timestamp) throws IOException {
+         try {
+             final String sanitizedName = sanitize(name);
+             final String sanitizedValue = sanitize(value);
+ 
+             final String message = sanitizedName + ' ' + sanitizedValue + ' ' + Long.toString(timestamp) + '\n';
+             channel.basicPublish(exchange, sanitizedName, null, message.getBytes(UTF_8));
+         } catch (IOException e) {
+             failures++;
+             throw e;
+         }
+     }
+ 
+     @Override
+     public void flush() throws IOException {
+         // Nothing to do
+     }
+ 
+     @Override
+     public void close() throws IOException {
+         if (connection != null) {
+             connection.close();
+         }
+     }
+ 
+     @Override
+     public int getFailures() {
+         return failures;
+     }
+ 
+     public String sanitize(String s) {
+         return GraphiteSanitize.sanitize(s);
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-3.html new file mode 100644 index 0000000000..0e782c9324 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-3.html @@ -0,0 +1,655 @@ + + + + + + + + Coverage Report > GraphiteReporter + + + + + + +
+ + +

Coverage Summary for Class: GraphiteReporter (com.codahale.metrics.graphite)

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
GraphiteReporter + + 95.2% + + + (20/21) + + + + 90.5% + + + (95/105) + +
GraphiteReporter$1
GraphiteReporter$Builder + + 85.7% + + + (12/14) + + + + 88.6% + + + (31/35) + +
Total + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
+ +
+
+ + +
+ package com.codahale.metrics.graphite;
+ 
+ import com.codahale.metrics.Clock;
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Gauge;
+ import com.codahale.metrics.Histogram;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.Metered;
+ import com.codahale.metrics.MetricAttribute;
+ import com.codahale.metrics.MetricFilter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.ScheduledReporter;
+ import com.codahale.metrics.Snapshot;
+ import com.codahale.metrics.Timer;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import java.io.IOException;
+ import java.util.Collections;
+ import java.util.Locale;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.SortedMap;
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.TimeUnit;
+ import java.util.function.DoubleFunction;
+ 
+ import static com.codahale.metrics.MetricAttribute.COUNT;
+ import static com.codahale.metrics.MetricAttribute.M15_RATE;
+ import static com.codahale.metrics.MetricAttribute.M1_RATE;
+ import static com.codahale.metrics.MetricAttribute.M5_RATE;
+ import static com.codahale.metrics.MetricAttribute.MAX;
+ import static com.codahale.metrics.MetricAttribute.MEAN;
+ import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
+ import static com.codahale.metrics.MetricAttribute.MIN;
+ import static com.codahale.metrics.MetricAttribute.P50;
+ import static com.codahale.metrics.MetricAttribute.P75;
+ import static com.codahale.metrics.MetricAttribute.P95;
+ import static com.codahale.metrics.MetricAttribute.P98;
+ import static com.codahale.metrics.MetricAttribute.P99;
+ import static com.codahale.metrics.MetricAttribute.P999;
+ import static com.codahale.metrics.MetricAttribute.STDDEV;
+ 
+ /**
+  * A reporter which publishes metric values to a Graphite server.
+  *
+  * @see <a href="http://graphite.wikidot.com/">Graphite - Scalable Realtime Graphing</a>
+  */
+ public class GraphiteReporter extends ScheduledReporter {
+     /**
+      * Returns a new {@link Builder} for {@link GraphiteReporter}.
+      *
+      * @param registry the registry to report
+      * @return a {@link Builder} instance for a {@link GraphiteReporter}
+      */
+     public static Builder forRegistry(MetricRegistry registry) {
+         return new Builder(registry);
+     }
+ 
+     /**
+      * A builder for {@link GraphiteReporter} instances. Defaults to not using a prefix, using the
+      * default clock, converting rates to events/second, converting durations to milliseconds, and
+      * not filtering metrics.
+      */
+     public static class Builder {
+         private final MetricRegistry registry;
+         private Clock clock;
+         private String prefix;
+         private TimeUnit rateUnit;
+         private TimeUnit durationUnit;
+         private MetricFilter filter;
+         private ScheduledExecutorService executor;
+         private boolean shutdownExecutorOnStop;
+         private Set<MetricAttribute> disabledMetricAttributes;
+         private boolean addMetricAttributesAsTags;
+         private DoubleFunction<String> floatingPointFormatter;
+ 
+         private Builder(MetricRegistry registry) {
+             this.registry = registry;
+             this.clock = Clock.defaultClock();
+             this.prefix = null;
+             this.rateUnit = TimeUnit.SECONDS;
+             this.durationUnit = TimeUnit.MILLISECONDS;
+             this.filter = MetricFilter.ALL;
+             this.executor = null;
+             this.shutdownExecutorOnStop = true;
+             this.disabledMetricAttributes = Collections.emptySet();
+             this.addMetricAttributesAsTags = false;
+             this.floatingPointFormatter = DEFAULT_FP_FORMATTER;
+         }
+ 
+         /**
+          * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
+          * Default value is true.
+          * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
+          *
+          * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
+          * @return {@code this}
+          */
+         public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
+             this.shutdownExecutorOnStop = shutdownExecutorOnStop;
+             return this;
+         }
+ 
+         /**
+          * Specifies the executor to use while scheduling reporting of metrics.
+          * Default value is null.
+          * Null value leads to executor will be auto created on start.
+          *
+          * @param executor the executor to use while scheduling reporting of metrics.
+          * @return {@code this}
+          */
+         public Builder scheduleOn(ScheduledExecutorService executor) {
+             this.executor = executor;
+             return this;
+         }
+ 
+         /**
+          * Use the given {@link Clock} instance for the time.
+          *
+          * @param clock a {@link Clock} instance
+          * @return {@code this}
+          */
+         public Builder withClock(Clock clock) {
+             this.clock = clock;
+             return this;
+         }
+ 
+         /**
+          * Prefix all metric names with the given string.
+          *
+          * @param prefix the prefix for all metric names
+          * @return {@code this}
+          */
+         public Builder prefixedWith(String prefix) {
+             this.prefix = prefix;
+             return this;
+         }
+ 
+         /**
+          * Convert rates to the given time unit.
+          *
+          * @param rateUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertRatesTo(TimeUnit rateUnit) {
+             this.rateUnit = rateUnit;
+             return this;
+         }
+ 
+         /**
+          * Convert durations to the given time unit.
+          *
+          * @param durationUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertDurationsTo(TimeUnit durationUnit) {
+             this.durationUnit = durationUnit;
+             return this;
+         }
+ 
+         /**
+          * Only report metrics which match the given filter.
+          *
+          * @param filter a {@link MetricFilter}
+          * @return {@code this}
+          */
+         public Builder filter(MetricFilter filter) {
+             this.filter = filter;
+             return this;
+         }
+ 
+         /**
+          * Don't report the passed metric attributes for all metrics (e.g. "p999", "stddev" or "m15").
+          * See {@link MetricAttribute}.
+          *
+          * @param disabledMetricAttributes a set of {@link MetricAttribute}
+          * @return {@code this}
+          */
+         public Builder disabledMetricAttributes(Set<MetricAttribute> disabledMetricAttributes) {
+             this.disabledMetricAttributes = disabledMetricAttributes;
+             return this;
+         }
+ 
+ 
+         /**
+          * Specifies whether or not metric attributes (e.g. "p999", "stddev" or "m15") should be reported in the traditional dot delimited format or in the tag based format.
+          * Without tags (default): `my.metric.p99`
+          * With tags: `my.metric;metricattribute=p99`
+          *
+          * Note that this setting only modifies the metric attribute, and will not convert any other portion of the metric name to use tags.
+          * For mor information on Graphite tag support see https://graphite.readthedocs.io/en/latest/tags.html
+          * See {@link MetricAttribute}.
+          *
+          * @param addMetricAttributesAsTags if true, then metric attributes will be added as tags
+          * @return {@code this}
+          */
+         public Builder addMetricAttributesAsTags(boolean addMetricAttributesAsTags) {
+             this.addMetricAttributesAsTags = addMetricAttributesAsTags;
+             return this;
+         }
+ 
+         /**
+          * Use custom floating point formatter.
+          *
+          * @param floatingPointFormatter a custom formatter for floating point values
+          * @return {@code this}
+          */
+         public Builder withFloatingPointFormatter(DoubleFunction<String> floatingPointFormatter) {
+             this.floatingPointFormatter = floatingPointFormatter;
+             return this;
+         }
+ 
+         /**
+          * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
+          * given {@link GraphiteSender}.
+          * <p>
+          * Present for binary compatibility
+          *
+          * @param graphite a {@link Graphite}
+          * @return a {@link GraphiteReporter}
+          */
+         public GraphiteReporter build(Graphite graphite) {
+             return build((GraphiteSender) graphite);
+         }
+ 
+         /**
+          * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
+          * given {@link GraphiteSender}.
+          *
+          * @param graphite a {@link GraphiteSender}
+          * @return a {@link GraphiteReporter}
+          */
+         public GraphiteReporter build(GraphiteSender graphite) {
+             return new GraphiteReporter(registry,
+                     graphite,
+                     clock,
+                     prefix,
+                     rateUnit,
+                     durationUnit,
+                     filter,
+                     executor,
+                     shutdownExecutorOnStop,
+                     disabledMetricAttributes,
+                     addMetricAttributesAsTags,
+                     floatingPointFormatter);
+         }
+     }
+ 
+     private static final Logger LOGGER = LoggerFactory.getLogger(GraphiteReporter.class);
+     // the Carbon plaintext format is pretty underspecified, but it seems like it just wants US-formatted digits
+     private static final DoubleFunction<String> DEFAULT_FP_FORMATTER = fp -> String.format(Locale.US, "%2.2f", fp);
+ 
+     private final GraphiteSender graphite;
+     private final Clock clock;
+     private final String prefix;
+     private final boolean addMetricAttributesAsTags;
+     private final DoubleFunction<String> floatingPointFormatter;
+   
+   
+     /**
+      * Creates a new {@link GraphiteReporter} instance.
+      *
+      * @param registry                  the {@link MetricRegistry} containing the metrics this
+      *                                  reporter will report
+      * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
+      *                                  via a transport protocol
+      * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
+      * @param prefix                    the prefix of all metric names (may be null)
+      * @param rateUnit                  the time unit of in which rates will be converted
+      * @param durationUnit              the time unit of in which durations will be converted
+      * @param filter                    the filter for which metrics to report
+      * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
+      * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
+      * @param disabledMetricAttributes  do not report specific metric attributes
+      */
+     protected GraphiteReporter(MetricRegistry registry,
+                                GraphiteSender graphite,
+                                Clock clock,
+                                String prefix,
+                                TimeUnit rateUnit,
+                                TimeUnit durationUnit,
+                                MetricFilter filter,
+                                ScheduledExecutorService executor,
+                                boolean shutdownExecutorOnStop,
+                                Set<MetricAttribute> disabledMetricAttributes) {
+         this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,
+                 disabledMetricAttributes, false);
+     }
+ 
+ 
+     /**
+      * Creates a new {@link GraphiteReporter} instance.
+      *
+      * @param registry                  the {@link MetricRegistry} containing the metrics this
+      *                                  reporter will report
+      * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
+      *                                  via a transport protocol
+      * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
+      * @param prefix                    the prefix of all metric names (may be null)
+      * @param rateUnit                  the time unit of in which rates will be converted
+      * @param durationUnit              the time unit of in which durations will be converted
+      * @param filter                    the filter for which metrics to report
+      * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
+      * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
+      * @param disabledMetricAttributes  do not report specific metric attributes
+      * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
+      */
+     protected GraphiteReporter(MetricRegistry registry,
+                                GraphiteSender graphite,
+                                Clock clock,
+                                String prefix,
+                                TimeUnit rateUnit,
+                                TimeUnit durationUnit,
+                                MetricFilter filter,
+                                ScheduledExecutorService executor,
+                                boolean shutdownExecutorOnStop,
+                                Set<MetricAttribute> disabledMetricAttributes,
+                                boolean addMetricAttributesAsTags) {
+         this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,
+                 disabledMetricAttributes, addMetricAttributesAsTags, DEFAULT_FP_FORMATTER);
+     }
+ 
+     /**
+      * Creates a new {@link GraphiteReporter} instance.
+      *
+      * @param registry                  the {@link MetricRegistry} containing the metrics this
+      *                                  reporter will report
+      * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
+      *                                  via a transport protocol
+      * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
+      * @param prefix                    the prefix of all metric names (may be null)
+      * @param rateUnit                  the time unit of in which rates will be converted
+      * @param durationUnit              the time unit of in which durations will be converted
+      * @param filter                    the filter for which metrics to report
+      * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
+      * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
+      * @param disabledMetricAttributes  do not report specific metric attributes
+      * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
+      * @param floatingPointFormatter    custom floating point formatter
+      */
+     protected GraphiteReporter(MetricRegistry registry,
+                                GraphiteSender graphite,
+                                Clock clock,
+                                String prefix,
+                                TimeUnit rateUnit,
+                                TimeUnit durationUnit,
+                                MetricFilter filter,
+                                ScheduledExecutorService executor,
+                                boolean shutdownExecutorOnStop,
+                                Set<MetricAttribute> disabledMetricAttributes,
+                                boolean addMetricAttributesAsTags,
+                                DoubleFunction<String> floatingPointFormatter) {
+         super(registry, "graphite-reporter", filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,
+                 disabledMetricAttributes);
+         this.graphite = graphite;
+         this.clock = clock;
+         this.prefix = prefix;
+         this.addMetricAttributesAsTags = addMetricAttributesAsTags;
+         this.floatingPointFormatter = floatingPointFormatter;
+     }
+ 
+     @Override
+     @SuppressWarnings("rawtypes")
+     public void report(SortedMap<String, Gauge> gauges,
+                        SortedMap<String, Counter> counters,
+                        SortedMap<String, Histogram> histograms,
+                        SortedMap<String, Meter> meters,
+                        SortedMap<String, Timer> timers) {
+         final long timestamp = clock.getTime() / 1000;
+ 
+         // oh it'd be lovely to use Java 7 here
+         try {
+             graphite.connect();
+ 
+             for (Map.Entry<String, Gauge> entry : gauges.entrySet()) {
+                 reportGauge(entry.getKey(), entry.getValue(), timestamp);
+             }
+ 
+             for (Map.Entry<String, Counter> entry : counters.entrySet()) {
+                 reportCounter(entry.getKey(), entry.getValue(), timestamp);
+             }
+ 
+             for (Map.Entry<String, Histogram> entry : histograms.entrySet()) {
+                 reportHistogram(entry.getKey(), entry.getValue(), timestamp);
+             }
+ 
+             for (Map.Entry<String, Meter> entry : meters.entrySet()) {
+                 reportMetered(entry.getKey(), entry.getValue(), timestamp);
+             }
+ 
+             for (Map.Entry<String, Timer> entry : timers.entrySet()) {
+                 reportTimer(entry.getKey(), entry.getValue(), timestamp);
+             }
+             graphite.flush();
+         } catch (IOException e) {
+             LOGGER.warn("Unable to report to Graphite", graphite, e);
+         } finally {
+             try {
+                 graphite.close();
+             } catch (IOException e1) {
+                 LOGGER.warn("Error closing Graphite", graphite, e1);
+             }
+         }
+     }
+ 
+     @Override
+     public void stop() {
+         try {
+             super.stop();
+         } finally {
+             try {
+                 graphite.close();
+             } catch (IOException e) {
+                 LOGGER.debug("Error disconnecting from Graphite", graphite, e);
+             }
+         }
+     }
+ 
+     private void reportTimer(String name, Timer timer, long timestamp) throws IOException {
+         final Snapshot snapshot = timer.getSnapshot();
+         sendIfEnabled(MAX, name, convertDuration(snapshot.getMax()), timestamp);
+         sendIfEnabled(MEAN, name, convertDuration(snapshot.getMean()), timestamp);
+         sendIfEnabled(MIN, name, convertDuration(snapshot.getMin()), timestamp);
+         sendIfEnabled(STDDEV, name, convertDuration(snapshot.getStdDev()), timestamp);
+         sendIfEnabled(P50, name, convertDuration(snapshot.getMedian()), timestamp);
+         sendIfEnabled(P75, name, convertDuration(snapshot.get75thPercentile()), timestamp);
+         sendIfEnabled(P95, name, convertDuration(snapshot.get95thPercentile()), timestamp);
+         sendIfEnabled(P98, name, convertDuration(snapshot.get98thPercentile()), timestamp);
+         sendIfEnabled(P99, name, convertDuration(snapshot.get99thPercentile()), timestamp);
+         sendIfEnabled(P999, name, convertDuration(snapshot.get999thPercentile()), timestamp);
+         reportMetered(name, timer, timestamp);
+     }
+ 
+     private void reportMetered(String name, Metered meter, long timestamp) throws IOException {
+         sendIfEnabled(COUNT, name, meter.getCount(), timestamp);
+         sendIfEnabled(M1_RATE, name, convertRate(meter.getOneMinuteRate()), timestamp);
+         sendIfEnabled(M5_RATE, name, convertRate(meter.getFiveMinuteRate()), timestamp);
+         sendIfEnabled(M15_RATE, name, convertRate(meter.getFifteenMinuteRate()), timestamp);
+         sendIfEnabled(MEAN_RATE, name, convertRate(meter.getMeanRate()), timestamp);
+     }
+ 
+     private void reportHistogram(String name, Histogram histogram, long timestamp) throws IOException {
+         final Snapshot snapshot = histogram.getSnapshot();
+         sendIfEnabled(COUNT, name, histogram.getCount(), timestamp);
+         sendIfEnabled(MAX, name, snapshot.getMax(), timestamp);
+         sendIfEnabled(MEAN, name, snapshot.getMean(), timestamp);
+         sendIfEnabled(MIN, name, snapshot.getMin(), timestamp);
+         sendIfEnabled(STDDEV, name, snapshot.getStdDev(), timestamp);
+         sendIfEnabled(P50, name, snapshot.getMedian(), timestamp);
+         sendIfEnabled(P75, name, snapshot.get75thPercentile(), timestamp);
+         sendIfEnabled(P95, name, snapshot.get95thPercentile(), timestamp);
+         sendIfEnabled(P98, name, snapshot.get98thPercentile(), timestamp);
+         sendIfEnabled(P99, name, snapshot.get99thPercentile(), timestamp);
+         sendIfEnabled(P999, name, snapshot.get999thPercentile(), timestamp);
+     }
+ 
+     private void sendIfEnabled(MetricAttribute type, String name, double value, long timestamp) throws IOException {
+         if (getDisabledMetricAttributes().contains(type)) {
+             return;
+         }
+         graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);
+     }
+ 
+     private void sendIfEnabled(MetricAttribute type, String name, long value, long timestamp) throws IOException {
+         if (getDisabledMetricAttributes().contains(type)) {
+             return;
+         }
+         graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);
+     }
+ 
+     private void reportCounter(String name, Counter counter, long timestamp) throws IOException {
+         graphite.send(prefix(appendMetricAttribute(name, COUNT.getCode())), format(counter.getCount()), timestamp);
+     }
+ 
+     private void reportGauge(String name, Gauge<?> gauge, long timestamp) throws IOException {
+         final String value = format(gauge.getValue());
+         if (value != null) {
+             graphite.send(prefix(name), value, timestamp);
+         }
+     }
+ 
+     private String format(Object o) {
+         if (o instanceof Float) {
+             return format(((Float) o).doubleValue());
+         } else if (o instanceof Double) {
+             return format(((Double) o).doubleValue());
+         } else if (o instanceof Byte) {
+             return format(((Byte) o).longValue());
+         } else if (o instanceof Short) {
+             return format(((Short) o).longValue());
+         } else if (o instanceof Integer) {
+             return format(((Integer) o).longValue());
+         } else if (o instanceof Long) {
+             return format(((Long) o).longValue());
+         } else if (o instanceof Number) {
+             return format(((Number) o).doubleValue());
+         } else if (o instanceof Boolean) {
+             return format(((Boolean) o) ? 1 : 0);
+         }
+         return null;
+     }
+ 
+     private String prefix(String name) {
+         return MetricRegistry.name(prefix, name);
+     }
+ 
+     private String appendMetricAttribute(String name, String metricAttribute){
+         if (addMetricAttributesAsTags){
+             return name + ";metricattribute=" + metricAttribute;
+         }
+         return name + "." + metricAttribute;
+     }
+ 
+     private String format(long n) {
+         return Long.toString(n);
+     }
+ 
+     protected String format(double v) {
+         return floatingPointFormatter.apply(v);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-4.html new file mode 100644 index 0000000000..f4dfa70ff7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-4.html @@ -0,0 +1,120 @@ + + + + + + + + Coverage Report > GraphiteSanitize + + + + + + +
+ + +

Coverage Summary for Class: GraphiteSanitize (com.codahale.metrics.graphite)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+
+ + +
+ package com.codahale.metrics.graphite;
+ 
+ import java.util.regex.Pattern;
+ 
+ class GraphiteSanitize {
+ 
+     private static final Pattern WHITESPACE = Pattern.compile("[\\s]+");
+     private static final String DASH = "-";
+ 
+     /**
+      * Trims the string and replaces all whitespace characters with the provided symbol
+      */
+     static String sanitize(String string) {
+         return WHITESPACE.matcher(string.trim()).replaceAll(DASH);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-5.html new file mode 100644 index 0000000000..764f34bbc1 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-5.html @@ -0,0 +1,222 @@ + + + + + + + + Coverage Report > GraphiteUDP + + + + + + +
+ + +

Coverage Summary for Class: GraphiteUDP (com.codahale.metrics.graphite)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
+ +
+
+ + +
+ package com.codahale.metrics.graphite;
+ 
+ import java.io.IOException;
+ import java.net.InetSocketAddress;
+ import java.net.InetAddress;
+ import java.nio.ByteBuffer;
+ import java.nio.channels.DatagramChannel;
+ 
+ import static java.nio.charset.StandardCharsets.UTF_8;
+ 
+ /**
+  * A client to a Carbon server using unconnected UDP
+  */
+ public class GraphiteUDP implements GraphiteSender {
+ 
+     private final String hostname;
+     private final int port;
+     private InetSocketAddress address;
+ 
+     private DatagramChannel datagramChannel = null;
+     private int failures;
+ 
+     /**
+      * Creates a new client which sends data to given address using UDP
+      *
+      * @param hostname The hostname of the Carbon server
+      * @param port     The port of the Carbon server
+      */
+     public GraphiteUDP(String hostname, int port) {
+         this.hostname = hostname;
+         this.port = port;
+         this.address = null;
+     }
+ 
+     /**
+      * Creates a new client which sends data to given address using UDP
+      *
+      * @param address the address of the Carbon server
+      */
+     public GraphiteUDP(InetSocketAddress address) {
+         this.hostname = null;
+         this.port = -1;
+         this.address = address;
+     }
+ 
+     @Override
+     public void connect() throws IllegalStateException, IOException {
+         if (isConnected()) {
+             throw new IllegalStateException("Already connected");
+         }
+ 
+         // Resolve hostname
+         if (hostname != null) {
+             address = new InetSocketAddress(InetAddress.getByName(hostname), port);
+         }
+ 
+         datagramChannel = DatagramChannel.open();
+     }
+ 
+     @Override
+     public boolean isConnected() {
+         return datagramChannel != null && !datagramChannel.socket().isClosed();
+     }
+ 
+     @Override
+     public void send(String name, String value, long timestamp) throws IOException {
+         try {
+             String str = sanitize(name) + ' ' + sanitize(value) + ' ' + Long.toString(timestamp) + '\n';
+             ByteBuffer byteBuffer = ByteBuffer.wrap(str.getBytes(UTF_8));
+             datagramChannel.send(byteBuffer, address);
+             this.failures = 0;
+         } catch (IOException e) {
+             failures++;
+             throw e;
+         }
+     }
+ 
+     @Override
+     public int getFailures() {
+         return failures;
+     }
+ 
+     @Override
+     public void flush() throws IOException {
+         // Nothing to do
+     }
+ 
+     @Override
+     public void close() throws IOException {
+         if (datagramChannel != null) {
+             try {
+                 datagramChannel.close();
+             } finally {
+                 datagramChannel = null;
+             }
+         }
+     }
+ 
+     protected String sanitize(String s) {
+         return GraphiteSanitize.sanitize(s);
+     }
+ 
+     DatagramChannel getDatagramChannel() {
+         return datagramChannel;
+     }
+ 
+     void setDatagramChannel(DatagramChannel datagramChannel) {
+         this.datagramChannel = datagramChannel;
+     }
+ 
+     InetSocketAddress getAddress() {
+         return address;
+     }
+ 
+     void setAddress(InetSocketAddress address) {
+         this.address = address;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-6.html new file mode 100644 index 0000000000..73b3f26b7a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-6.html @@ -0,0 +1,467 @@ + + + + + + + + Coverage Report > PickledGraphite + + + + + + +
+ + +

Coverage Summary for Class: PickledGraphite (com.codahale.metrics.graphite)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
PickledGraphite + + 22.2% + + + (4/18) + + + + 16.5% + + + (15/91) + +
PickledGraphite$MetricTuple + + 0% + + + (0/1) + + + + 0% + + + (0/4) + +
Total + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
+ +
+
+ + +
+ package com.codahale.metrics.graphite;
+ 
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import javax.net.SocketFactory;
+ 
+ import java.io.BufferedWriter;
+ import java.io.ByteArrayOutputStream;
+ import java.io.IOException;
+ import java.io.OutputStream;
+ import java.io.OutputStreamWriter;
+ import java.io.Writer;
+ import java.net.InetSocketAddress;
+ import java.net.Socket;
+ import java.net.UnknownHostException;
+ import java.nio.ByteBuffer;
+ import java.nio.charset.Charset;
+ import java.util.ArrayList;
+ import java.util.List;
+ 
+ import static java.nio.charset.StandardCharsets.UTF_8;
+ 
+ /**
+  * A client to a Carbon server that sends all metrics after they have been pickled in configurable sized batches
+  */
+ public class PickledGraphite implements GraphiteSender {
+ 
+     static class MetricTuple {
+         String name;
+         long timestamp;
+         String value;
+ 
+         MetricTuple(String name, long timestamp, String value) {
+             this.name = name;
+             this.timestamp = timestamp;
+             this.value = value;
+         }
+     }
+ 
+     /**
+      * Minimally necessary pickle opcodes.
+      */
+     private static final char
+             MARK = '(',
+             STOP = '.',
+             LONG = 'L',
+             STRING = 'S',
+             APPEND = 'a',
+             LIST = 'l',
+             TUPLE = 't',
+             QUOTE = '\'',
+             LF = '\n';
+ 
+     private static final Logger LOGGER = LoggerFactory.getLogger(PickledGraphite.class);
+     private final static int DEFAULT_BATCH_SIZE = 100;
+ 
+     private int batchSize;
+     // graphite expects a python-pickled list of nested tuples.
+     private List<MetricTuple> metrics = new ArrayList<>();
+ 
+     private final String hostname;
+     private final int port;
+     private final InetSocketAddress address;
+     private final SocketFactory socketFactory;
+     private final Charset charset;
+ 
+     private Socket socket;
+     private Writer writer;
+     private int failures;
+ 
+     /**
+      * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
+      * to a batchSize of 100
+      *
+      * @param address the address of the Carbon server
+      */
+     public PickledGraphite(InetSocketAddress address) {
+         this(address, DEFAULT_BATCH_SIZE);
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address using the default {@link SocketFactory}.
+      *
+      * @param address   the address of the Carbon server
+      * @param batchSize how many metrics are bundled into a single pickle request to graphite
+      */
+     public PickledGraphite(InetSocketAddress address, int batchSize) {
+         this(address, SocketFactory.getDefault(), batchSize);
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address and socket factory.
+      *
+      * @param address       the address of the Carbon server
+      * @param socketFactory the socket factory
+      * @param batchSize     how many metrics are bundled into a single pickle request to graphite
+      */
+     public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, int batchSize) {
+         this(address, socketFactory, UTF_8, batchSize);
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address and socket factory using the given character set.
+      *
+      * @param address       the address of the Carbon server
+      * @param socketFactory the socket factory
+      * @param charset       the character set used by the server
+      * @param batchSize     how many metrics are bundled into a single pickle request to graphite
+      */
+     public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset, int batchSize) {
+         this.address = address;
+         this.hostname = null;
+         this.port = -1;
+         this.socketFactory = socketFactory;
+         this.charset = charset;
+         this.batchSize = batchSize;
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
+      * to a batchSize of 100
+      *
+      * @param hostname the hostname of the Carbon server
+      * @param port     the port of the Carbon server
+      */
+     public PickledGraphite(String hostname, int port) {
+         this(hostname, port, DEFAULT_BATCH_SIZE);
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address using the default {@link SocketFactory}.
+      *
+      * @param hostname  the hostname of the Carbon server
+      * @param port      the port of the Carbon server
+      * @param batchSize how many metrics are bundled into a single pickle request to graphite
+      */
+     public PickledGraphite(String hostname, int port, int batchSize) {
+         this(hostname, port, SocketFactory.getDefault(), batchSize);
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address and socket factory.
+      *
+      * @param hostname      the hostname of the Carbon server
+      * @param port          the port of the Carbon server
+      * @param socketFactory the socket factory
+      * @param batchSize     how many metrics are bundled into a single pickle request to graphite
+      */
+     public PickledGraphite(String hostname, int port, SocketFactory socketFactory, int batchSize) {
+         this(hostname, port, socketFactory, UTF_8, batchSize);
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address and socket factory using the given character set.
+      *
+      * @param hostname      the hostname of the Carbon server
+      * @param port          the port of the Carbon server
+      * @param socketFactory the socket factory
+      * @param charset       the character set used by the server
+      * @param batchSize     how many metrics are bundled into a single pickle request to graphite
+      */
+     public PickledGraphite(String hostname, int port, SocketFactory socketFactory, Charset charset, int batchSize) {
+         this.address = null;
+         this.hostname = hostname;
+         this.port = port;
+         this.socketFactory = socketFactory;
+         this.charset = charset;
+         this.batchSize = batchSize;
+     }
+ 
+     @Override
+     public void connect() throws IllegalStateException, IOException {
+         if (isConnected()) {
+             throw new IllegalStateException("Already connected");
+         }
+         InetSocketAddress address = this.address;
+         if (address == null) {
+             address = new InetSocketAddress(hostname, port);
+         }
+         if (address.getAddress() == null) {
+             throw new UnknownHostException(address.getHostName());
+         }
+ 
+         this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());
+         this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));
+     }
+ 
+     @Override
+     public boolean isConnected() {
+         return socket != null && socket.isConnected() && !socket.isClosed();
+     }
+ 
+     /**
+      * Convert the metric to a python tuple of the form:
+      * <p>
+      * (timestamp, (name, value))
+      * <p>
+      * And add it to the list of metrics. If we reach the batch size, write them out.
+      *
+      * @param name      the name of the metric
+      * @param value     the value of the metric
+      * @param timestamp the timestamp of the metric
+      * @throws IOException if there was an error sending the metric
+      */
+     @Override
+     public void send(String name, String value, long timestamp) throws IOException {
+         metrics.add(new MetricTuple(sanitize(name), timestamp, sanitize(value)));
+ 
+         if (metrics.size() >= batchSize) {
+             writeMetrics();
+         }
+     }
+ 
+     @Override
+     public void flush() throws IOException {
+         writeMetrics();
+         if (writer != null) {
+             writer.flush();
+         }
+     }
+ 
+     @Override
+     public void close() throws IOException {
+         try {
+             flush();
+             if (writer != null) {
+                 writer.close();
+             }
+         } catch (IOException ex) {
+             if (socket != null) {
+                 socket.close();
+             }
+         } finally {
+             this.socket = null;
+             this.writer = null;
+         }
+     }
+ 
+     @Override
+     public int getFailures() {
+         return failures;
+     }
+ 
+     /**
+      * 1. Run the pickler script to package all the pending metrics into a single message
+      * 2. Send the message to graphite
+      * 3. Clear out the list of metrics
+      */
+     private void writeMetrics() throws IOException {
+         if (metrics.size() > 0) {
+             try {
+                 byte[] payload = pickleMetrics(metrics);
+                 byte[] header = ByteBuffer.allocate(4).putInt(payload.length).array();
+ 
+                 @SuppressWarnings("resource")
+                 OutputStream outputStream = socket.getOutputStream();
+                 outputStream.write(header);
+                 outputStream.write(payload);
+                 outputStream.flush();
+ 
+                 if (LOGGER.isDebugEnabled()) {
+                     LOGGER.debug("Wrote {} metrics", metrics.size());
+                 }
+             } catch (IOException e) {
+                 this.failures++;
+                 throw e;
+             } finally {
+                 // if there was an error, we might miss some data. for now, drop those on the floor and
+                 // try to keep going.
+                 metrics.clear();
+             }
+ 
+         }
+     }
+ 
+     /**
+      * See: http://readthedocs.org/docs/graphite/en/1.0/feeding-carbon.html
+      *
+      * @throws IOException shouldn't happen because we write to memory.
+      */
+     byte[] pickleMetrics(List<MetricTuple> metrics) throws IOException {
+         // Extremely rough estimate of 75 bytes per message
+         ByteArrayOutputStream out = new ByteArrayOutputStream(metrics.size() * 75);
+         Writer pickled = new OutputStreamWriter(out, charset);
+ 
+         pickled.append(MARK);
+         pickled.append(LIST);
+ 
+         for (MetricTuple tuple : metrics) {
+             // start the outer tuple
+             pickled.append(MARK);
+ 
+             // the metric name is a string.
+             pickled.append(STRING);
+             // the single quotes are to match python's repr("abcd")
+             pickled.append(QUOTE);
+             pickled.append(tuple.name);
+             pickled.append(QUOTE);
+             pickled.append(LF);
+ 
+             // start the inner tuple
+             pickled.append(MARK);
+ 
+             // timestamp is a long
+             pickled.append(LONG);
+             pickled.append(Long.toString(tuple.timestamp));
+             // the trailing L is to match python's repr(long(1234))
+             pickled.append(LONG);
+             pickled.append(LF);
+ 
+             // and the value is a string.
+             pickled.append(STRING);
+             pickled.append(QUOTE);
+             pickled.append(tuple.value);
+             pickled.append(QUOTE);
+             pickled.append(LF);
+ 
+             pickled.append(TUPLE); // inner close
+             pickled.append(TUPLE); // outer close
+ 
+             pickled.append(APPEND);
+         }
+ 
+         // every pickle ends with STOP
+         pickled.append(STOP);
+ 
+         pickled.flush();
+ 
+         return out.toByteArray();
+     }
+ 
+     protected String sanitize(String s) {
+         return GraphiteSanitize.sanitize(s);
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-7.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-7.html new file mode 100644 index 0000000000..e78a8d893e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-7.html @@ -0,0 +1,113 @@ + + + + + + + + Coverage Report > GraphiteSender + + + + + + +
+ + +

Coverage Summary for Class: GraphiteSender (com.codahale.metrics.graphite)

+ + + + + + + + + +
Class
GraphiteSender
+ +
+
+ + +
+ package com.codahale.metrics.graphite;
+ 
+ import java.io.Closeable;
+ import java.io.IOException;
+ 
+ public interface GraphiteSender extends Closeable {
+ 
+     /**
+      * Connects to the server.
+      *
+      * @throws IllegalStateException if the client is already connected
+      * @throws IOException           if there is an error connecting
+      */
+     void connect() throws IllegalStateException, IOException;
+ 
+     /**
+      * Sends the given measurement to the server.
+      *
+      * @param name      the name of the metric
+      * @param value     the value of the metric
+      * @param timestamp the timestamp of the metric
+      * @throws IOException if there was an error sending the metric
+      */
+     void send(String name, String value, long timestamp) throws IOException;
+ 
+     /**
+      * Flushes buffer, if applicable
+      *
+      * @throws IOException if there was an error during flushing metrics to the socket
+      */
+     void flush() throws IOException;
+ 
+     /**
+      * Returns true if ready to send data
+      */
+     boolean isConnected();
+ 
+     /**
+      * Returns the number of failed writes to the server.
+      *
+      * @return the number of failed writes to the server
+      */
+     int getFailures();
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index.html new file mode 100644 index 0000000000..5cad9dd1c8 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-8/index.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..82f64a238d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..a650536dbf --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..53d32acf8c --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..fdcca8c19f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..1348011db1 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_LINE.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..b16ade82ca --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..6f23d5b9ee --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..2fedbdf4bf --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..683be50672 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-1.html new file mode 100644 index 0000000000..9fdde18e5e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-1.html @@ -0,0 +1,184 @@ + + + + + + + + Coverage Report > AsyncHealthCheckDecorator + + + + + + +
+ + +

Coverage Summary for Class: AsyncHealthCheckDecorator (com.codahale.metrics.health)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
+ +
+
+ + +
+ package com.codahale.metrics.health;
+ 
+ import com.codahale.metrics.Clock;
+ import com.codahale.metrics.health.annotation.Async;
+ 
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.ScheduledFuture;
+ 
+ /**
+  * A health check decorator to manage asynchronous executions.
+  */
+ public class AsyncHealthCheckDecorator extends HealthCheck implements Runnable {
+     private static final String NO_RESULT_YET_MESSAGE = "Waiting for first asynchronous check result.";
+     private final HealthCheck healthCheck;
+     private final ScheduledFuture<?> future;
+     private final long healthyTtl;
+     private final Clock clock;
+     private volatile Result result;
+ 
+     AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService, Clock clock) {
+         check(healthCheck != null, "healthCheck cannot be null");
+         check(executorService != null, "executorService cannot be null");
+         Async async = healthCheck.getClass().getAnnotation(Async.class);
+         check(async != null, "healthCheck must contain Async annotation");
+         check(async.period() > 0, "period cannot be less than or equal to zero");
+         check(async.initialDelay() >= 0, "initialDelay cannot be less than zero");
+ 
+ 
+         this.clock = clock;
+         this.healthCheck = healthCheck;
+         this.healthyTtl = async.unit().toMillis(async.healthyTtl() <= 0 ? 2 * async.period() : async.healthyTtl());
+         result = Async.InitialState.HEALTHY.equals(async.initialState()) ? Result.healthy(NO_RESULT_YET_MESSAGE) :
+                 Result.unhealthy(NO_RESULT_YET_MESSAGE);
+         if (Async.ScheduleType.FIXED_RATE.equals(async.scheduleType())) {
+             future = executorService.scheduleAtFixedRate(this, async.initialDelay(), async.period(), async.unit());
+         } else {
+             future = executorService.scheduleWithFixedDelay(this, async.initialDelay(), async.period(), async.unit());
+         }
+ 
+     }
+ 
+     AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService) {
+         this(healthCheck, executorService, Clock.defaultClock());
+     }
+ 
+     @Override
+     public void run() {
+         result = healthCheck.execute();
+     }
+ 
+     @Override
+     protected Result check() throws Exception {
+         long expiration = clock.getTime() - result.getTime() - healthyTtl;
+         if (expiration > 0) {
+             return Result.builder()
+                     .unhealthy()
+                     .usingClock(clock)
+                     .withMessage("Result was %s but it expired %d milliseconds ago",
+                             result.isHealthy() ? "healthy" : "unhealthy",
+                             expiration)
+                     .build();
+         }
+ 
+         return result;
+     }
+ 
+     boolean tearDown() {
+         return future.cancel(true);
+     }
+ 
+     public HealthCheck getHealthCheck() {
+         return healthCheck;
+     }
+ 
+     private static void check(boolean expression, String message) {
+         if (!expression) {
+             throw new IllegalArgumentException(message);
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-2.html new file mode 100644 index 0000000000..b9c90fe485 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-2.html @@ -0,0 +1,546 @@ + + + + + + + + Coverage Report > HealthCheck + + + + + + +
+ + +

Coverage Summary for Class: HealthCheck (com.codahale.metrics.health)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
HealthCheck + + 100% + + + (3/3) + + + + 100% + + + (9/9) + +
HealthCheck$1
HealthCheck$MockitoMock$CCpmiVOV
HealthCheck$MockitoMock$CCpmiVOV$auxiliary$LXIz4uJU
HealthCheck$MockitoMock$CCpmiVOV$auxiliary$xqbRQnBX
HealthCheck$Result + + 95.7% + + + (22/23) + + + + 84.5% + + + (49/58) + +
HealthCheck$ResultBuilder + + 100% + + + (10/10) + + + + 95.2% + + + (20/21) + +
Total + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
+ +
+
+ + +
+ package com.codahale.metrics.health;
+ 
+ import com.codahale.metrics.Clock;
+ 
+ import java.time.Instant;
+ import java.time.ZoneId;
+ import java.time.ZonedDateTime;
+ import java.time.format.DateTimeFormatter;
+ import java.util.Collections;
+ import java.util.LinkedHashMap;
+ import java.util.Map;
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * A health check for a component of your application.
+  */
+ public abstract class HealthCheck {
+ 
+     /**
+      * The result of a {@link HealthCheck} being run. It can be healthy (with an optional message and optional details)
+      * or unhealthy (with either an error message or a thrown exception and optional details).
+      */
+     public static class Result {
+         private static final DateTimeFormatter DATE_FORMAT_PATTERN =
+                 DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
+         private static final int PRIME = 31;
+ 
+         /**
+          * Returns a healthy {@link Result} with no additional message.
+          *
+          * @return a healthy {@link Result} with no additional message
+          */
+         public static Result healthy() {
+             return new Result(true, null, null);
+         }
+ 
+         /**
+          * Returns a healthy {@link Result} with an additional message.
+          *
+          * @param message an informative message
+          * @return a healthy {@link Result} with an additional message
+          */
+         public static Result healthy(String message) {
+             return new Result(true, message, null);
+         }
+ 
+         /**
+          * Returns a healthy {@link Result} with a formatted message.
+          * <p>
+          * Message formatting follows the same rules as {@link String#format(String, Object...)}.
+          *
+          * @param message a message format\\
+          * @param args    the arguments apply to the message format
+          * @return a healthy {@link Result} with an additional message
+          * @see String#format(String, Object...)
+          */
+         public static Result healthy(String message, Object... args) {
+             return healthy(String.format(message, args));
+         }
+ 
+         /**
+          * Returns an unhealthy {@link Result} with the given message.
+          *
+          * @param message an informative message describing how the health check failed
+          * @return an unhealthy {@link Result} with the given message
+          */
+         public static Result unhealthy(String message) {
+             return new Result(false, message, null);
+         }
+ 
+         /**
+          * Returns an unhealthy {@link Result} with a formatted message.
+          * <p>
+          * Message formatting follows the same rules as {@link String#format(String, Object...)}.
+          *
+          * @param message a message format
+          * @param args    the arguments apply to the message format
+          * @return an unhealthy {@link Result} with an additional message
+          * @see String#format(String, Object...)
+          */
+         public static Result unhealthy(String message, Object... args) {
+             return unhealthy(String.format(message, args));
+         }
+ 
+         /**
+          * Returns an unhealthy {@link Result} with the given error.
+          *
+          * @param error an exception thrown during the health check
+          * @return an unhealthy {@link Result} with the given {@code error}
+          */
+         public static Result unhealthy(Throwable error) {
+             return new Result(false, error.getMessage(), error);
+         }
+ 
+ 
+         /**
+          * Returns a new {@link ResultBuilder}
+          *
+          * @return the {@link ResultBuilder}
+          */
+         public static ResultBuilder builder() {
+             return new ResultBuilder();
+         }
+ 
+         private final boolean healthy;
+         private final String message;
+         private final Throwable error;
+         private final Map<String, Object> details;
+         private final long time;
+ 
+         private long duration; // Calculated field
+ 
+         private Result(boolean isHealthy, String message, Throwable error) {
+             this(isHealthy, message, error, null, Clock.defaultClock());
+         }
+ 
+         private Result(ResultBuilder builder) {
+             this(builder.healthy, builder.message, builder.error, builder.details, builder.clock);
+         }
+ 
+         private Result(boolean isHealthy, String message, Throwable error, Map<String, Object> details, Clock clock) {
+             this.healthy = isHealthy;
+             this.message = message;
+             this.error = error;
+             this.details = details == null ? null : Collections.unmodifiableMap(details);
+             this.time = clock.getTime();
+         }
+ 
+         /**
+          * Returns {@code true} if the result indicates the component is healthy; {@code false}
+          * otherwise.
+          *
+          * @return {@code true} if the result indicates the component is healthy
+          */
+         public boolean isHealthy() {
+             return healthy;
+         }
+ 
+         /**
+          * Returns any additional message for the result, or {@code null} if the result has no
+          * message.
+          *
+          * @return any additional message for the result, or {@code null}
+          */
+         public String getMessage() {
+             return message;
+         }
+ 
+         /**
+          * Returns any exception for the result, or {@code null} if the result has no exception.
+          *
+          * @return any exception for the result, or {@code null}
+          */
+         public Throwable getError() {
+             return error;
+         }
+ 
+         /**
+          * Returns the timestamp when the result was created as a formatted String.
+          *
+          * @return a formatted timestamp
+          */
+         public String getTimestamp() {
+             Instant currentInstant = Instant.ofEpochMilli(time);
+             ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(currentInstant, ZoneId.systemDefault());
+             return DATE_FORMAT_PATTERN.format(zonedDateTime);
+         }
+ 
+         /**
+          * Returns the time when the result was created, in milliseconds since Epoch
+          *
+          * @return the time when the result was created
+          */
+         public long getTime() {
+             return time;
+         }
+ 
+         /**
+          * Returns the duration in milliseconds that the healthcheck took to run
+          *
+          * @return the duration
+          */
+         public long getDuration() {
+             return duration;
+         }
+ 
+         /**
+          * Sets the duration in milliseconds. This will indicate the time it took to run the individual healthcheck
+          *
+          * @param duration The duration in milliseconds
+          */
+         public void setDuration(long duration) {
+             this.duration = duration;
+         }
+ 
+         public Map<String, Object> getDetails() {
+             return details;
+         }
+ 
+         @Override
+         public boolean equals(Object o) {
+             if (this == o) {
+                 return true;
+             }
+             if (o == null || getClass() != o.getClass()) {
+                 return false;
+             }
+             final Result result = (Result) o;
+             return healthy == result.healthy &&
+                     !(error != null ? !error.equals(result.error) : result.error != null) &&
+                     !(message != null ? !message.equals(result.message) : result.message != null) &&
+                     time == result.time;
+         }
+ 
+         @Override
+         public int hashCode() {
+             int result = healthy ? 1 : 0;
+             result = PRIME * result + (message != null ? message.hashCode() : 0);
+             result = PRIME * result + (error != null ? error.hashCode() : 0);
+             result = PRIME * result + (Long.hashCode(time));
+             return result;
+         }
+ 
+         @Override
+         public String toString() {
+             final StringBuilder builder = new StringBuilder("Result{isHealthy=");
+             builder.append(healthy);
+             if (message != null) {
+                 builder.append(", message=").append(message);
+             }
+             if (error != null) {
+                 builder.append(", error=").append(error);
+             }
+             builder.append(", duration=").append(duration);
+             builder.append(", timestamp=").append(getTimestamp());
+             if (details != null) {
+                 for (Map.Entry<String, Object> e : details.entrySet()) {
+                     builder.append(", ");
+                     builder.append(e.getKey())
+                             .append("=")
+                             .append(String.valueOf(e.getValue()));
+                 }
+             }
+             builder.append('}');
+             return builder.toString();
+         }
+     }
+ 
+     /**
+      * This a convenient builder for an {@link HealthCheck.Result}. It can be health (with optional message and detail)
+      * or unhealthy (with optional message, error and detail)
+      */
+     public static class ResultBuilder {
+         private boolean healthy;
+         private String message;
+         private Throwable error;
+         private Map<String, Object> details;
+         private Clock clock;
+ 
+         protected ResultBuilder() {
+             this.healthy = true;
+             this.details = new LinkedHashMap<>();
+             this.clock = Clock.defaultClock();
+         }
+ 
+         /**
+          * Configure an healthy result
+          *
+          * @return this builder with healthy status
+          */
+         public ResultBuilder healthy() {
+             this.healthy = true;
+             return this;
+         }
+ 
+         /**
+          * Configure an unhealthy result
+          *
+          * @return this builder with unhealthy status
+          */
+         public ResultBuilder unhealthy() {
+             this.healthy = false;
+             return this;
+         }
+ 
+         /**
+          * Configure an unhealthy result with an {@code error}
+          *
+          * @param error the error
+          * @return this builder with the given error
+          */
+         public ResultBuilder unhealthy(Throwable error) {
+             this.error = error;
+             return this.unhealthy().withMessage(error.getMessage());
+         }
+ 
+         /**
+          * Set an optional message
+          *
+          * @param message an informative message
+          * @return this builder with the given {@code message}
+          */
+         public ResultBuilder withMessage(String message) {
+             this.message = message;
+             return this;
+         }
+ 
+         /**
+          * Set an optional formatted message
+          * <p>
+          * Message formatting follows the same rules as {@link String#format(String, Object...)}.
+          *
+          * @param message a message format
+          * @param args    the arguments apply to the message format
+          * @return this builder with the given formatted {@code message}
+          * @see String#format(String, Object...)
+          */
+         public ResultBuilder withMessage(String message, Object... args) {
+             return withMessage(String.format(message, args));
+         }
+ 
+         /**
+          * Add an optional detail
+          *
+          * @param key  a key for this detail
+          * @param data an object representing the detail data
+          * @return this builder with the given detail added
+          */
+         public ResultBuilder withDetail(String key, Object data) {
+             if (this.details == null) {
+                 this.details = new LinkedHashMap<>();
+             }
+             this.details.put(key, data);
+             return this;
+         }
+ 
+         /**
+          * Configure this {@link ResultBuilder} to use the given {@code clock} instead of the default clock.
+          * If not specified, the default clock is {@link Clock#defaultClock()}.
+          *
+          * @param clock the {@link Clock} to use when generating the health check timestamp (useful for unit testing)
+          * @return this builder configured to use the given {@code clock}
+          */
+         public ResultBuilder usingClock(Clock clock) {
+             this.clock = clock;
+             return this;
+         }
+ 
+         public Result build() {
+             return new Result(this);
+         }
+     }
+ 
+     /**
+      * Perform a check of the application component.
+      *
+      * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
+      * Result} with a descriptive error message or exception
+      * @throws Exception if there is an unhandled error during the health check; this will result in
+      *                   a failed health check
+      */
+     protected abstract Result check() throws Exception;
+ 
+     /**
+      * Executes the health check, catching and handling any exceptions raised by {@link #check()}.
+      *
+      * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
+      * Result} with a descriptive error message or exception
+      */
+     public Result execute() {
+         long start = clock().getTick();
+         Result result;
+         try {
+             result = check();
+         } catch (Exception e) {
+             result = Result.unhealthy(e);
+         }
+         result.setDuration(TimeUnit.MILLISECONDS.convert(clock().getTick() - start, TimeUnit.NANOSECONDS));
+         return result;
+     }
+ 
+     protected Clock clock() {
+         return Clock.defaultClock();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-3.html new file mode 100644 index 0000000000..9198538c4c --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-3.html @@ -0,0 +1,125 @@ + + + + + + + + Coverage Report > HealthCheckFilter + + + + + + +
+ + +

Coverage Summary for Class: HealthCheckFilter (com.codahale.metrics.health)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+
+ + +
+ package com.codahale.metrics.health;
+ 
+ /**
+  * A filter used to determine whether or not a health check should be reported.
+  */
+ @FunctionalInterface
+ public interface HealthCheckFilter {
+     /**
+      * Matches all health checks, regardless of type or name.
+      */
+     HealthCheckFilter ALL = (name, healthCheck) -> true;
+ 
+     /**
+      * Returns {@code true} if the health check matches the filter; {@code false} otherwise.
+      *
+      * @param name        the health check's name
+      * @param healthCheck the health check
+      * @return {@code true} if the health check matches the filter
+      */
+     boolean matches(String name, HealthCheck healthCheck);
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-4.html new file mode 100644 index 0000000000..90b42474a8 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-4.html @@ -0,0 +1,418 @@ + + + + + + + + Coverage Report > HealthCheckRegistry + + + + + + +
+ + +

Coverage Summary for Class: HealthCheckRegistry (com.codahale.metrics.health)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
HealthCheckRegistry + + 94.7% + + + (18/19) + + + + 89.7% + + + (70/78) + +
HealthCheckRegistry$NamedThreadFactory + + 100% + + + (2/2) + + + + 90% + + + (9/10) + +
Total + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
+ +
+
+ + +
+ package com.codahale.metrics.health;
+ 
+ import com.codahale.metrics.health.annotation.Async;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.NoSuchElementException;
+ import java.util.SortedMap;
+ import java.util.SortedSet;
+ import java.util.TreeMap;
+ import java.util.TreeSet;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ import java.util.concurrent.CopyOnWriteArrayList;
+ import java.util.concurrent.ExecutorService;
+ import java.util.concurrent.Future;
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.ScheduledThreadPoolExecutor;
+ import java.util.concurrent.ThreadFactory;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicInteger;
+ 
+ import static com.codahale.metrics.health.HealthCheck.Result;
+ 
+ /**
+  * A registry for health checks.
+  */
+ public class HealthCheckRegistry {
+     private static final Logger LOGGER = LoggerFactory.getLogger(HealthCheckRegistry.class);
+     private static final int ASYNC_EXECUTOR_POOL_SIZE = 2;
+ 
+     private final ConcurrentMap<String, HealthCheck> healthChecks;
+     private final List<HealthCheckRegistryListener> listeners;
+     private final ScheduledExecutorService asyncExecutorService;
+     private final Object lock = new Object();
+ 
+     /**
+      * Creates a new {@link HealthCheckRegistry}.
+      */
+     public HealthCheckRegistry() {
+         this(ASYNC_EXECUTOR_POOL_SIZE);
+     }
+ 
+     /**
+      * Creates a new {@link HealthCheckRegistry}.
+      *
+      * @param asyncExecutorPoolSize core pool size for async health check executions
+      */
+     public HealthCheckRegistry(int asyncExecutorPoolSize) {
+         this(createExecutorService(asyncExecutorPoolSize));
+     }
+ 
+     /**
+      * Creates a new {@link HealthCheckRegistry}.
+      *
+      * @param asyncExecutorService executor service for async health check executions
+      */
+     public HealthCheckRegistry(ScheduledExecutorService asyncExecutorService) {
+         this.healthChecks = new ConcurrentHashMap<>();
+         this.listeners = new CopyOnWriteArrayList<>();
+         this.asyncExecutorService = asyncExecutorService;
+     }
+ 
+     /**
+      * Adds a {@link HealthCheckRegistryListener} to a collection of listeners that will be notified on health check
+      * registration. Listeners will be notified in the order in which they are added. The listener will be notified of all
+      * existing health checks when it first registers.
+      *
+      * @param listener listener to add
+      */
+     public void addListener(HealthCheckRegistryListener listener) {
+         listeners.add(listener);
+         for (Map.Entry<String, HealthCheck> entry : healthChecks.entrySet()) {
+             listener.onHealthCheckAdded(entry.getKey(), entry.getValue());
+         }
+     }
+ 
+     /**
+      * Removes a {@link HealthCheckRegistryListener} from this registry's collection of listeners.
+      *
+      * @param listener listener to remove
+      */
+     public void removeListener(HealthCheckRegistryListener listener) {
+         listeners.remove(listener);
+     }
+ 
+     /**
+      * Registers an application {@link HealthCheck}.
+      *
+      * @param name        the name of the health check
+      * @param healthCheck the {@link HealthCheck} instance
+      */
+     public void register(String name, HealthCheck healthCheck) {
+         HealthCheck registered;
+         synchronized (lock) {
+             if (healthChecks.containsKey(name)) {
+                 throw new IllegalArgumentException("A health check named " + name + " already exists");
+             }
+             registered = healthCheck;
+             if (healthCheck.getClass().isAnnotationPresent(Async.class)) {
+                 registered = new AsyncHealthCheckDecorator(healthCheck, asyncExecutorService);
+             }
+             healthChecks.put(name, registered);
+         }
+         onHealthCheckAdded(name, registered);
+     }
+ 
+     /**
+      * Unregisters the application {@link HealthCheck} with the given name.
+      *
+      * @param name the name of the {@link HealthCheck} instance
+      */
+     public void unregister(String name) {
+         HealthCheck healthCheck;
+         synchronized (lock) {
+             healthCheck = healthChecks.remove(name);
+             if (healthCheck instanceof AsyncHealthCheckDecorator) {
+                 ((AsyncHealthCheckDecorator) healthCheck).tearDown();
+             }
+         }
+         if (healthCheck != null) {
+             onHealthCheckRemoved(name, healthCheck);
+         }
+     }
+ 
+     /**
+      * Returns a set of the names of all registered health checks.
+      *
+      * @return the names of all registered health checks
+      */
+     public SortedSet<String> getNames() {
+         return Collections.unmodifiableSortedSet(new TreeSet<>(healthChecks.keySet()));
+     }
+ 
+     /**
+      * Returns the {@link HealthCheck} instance with a given name
+      *
+      * @param name the name of the {@link HealthCheck} instance
+      */
+     public HealthCheck getHealthCheck(String name) {
+         return healthChecks.get(name);
+     }
+ 
+     /**
+      * Runs the health check with the given name.
+      *
+      * @param name the health check's name
+      * @return the result of the health check
+      * @throws NoSuchElementException if there is no health check with the given name
+      */
+     public HealthCheck.Result runHealthCheck(String name) throws NoSuchElementException {
+         final HealthCheck healthCheck = healthChecks.get(name);
+         if (healthCheck == null) {
+             throw new NoSuchElementException("No health check named " + name + " exists");
+         }
+         return healthCheck.execute();
+     }
+ 
+     /**
+      * Runs the registered health checks and returns a map of the results.
+      *
+      * @return a map of the health check results
+      */
+     public SortedMap<String, HealthCheck.Result> runHealthChecks() {
+         return runHealthChecks(HealthCheckFilter.ALL);
+     }
+ 
+     /**
+      * Runs the registered health checks matching the filter and returns a map of the results.
+      *
+      * @param filter health check filter
+      * @return a map of the health check results
+      */
+     public SortedMap<String, HealthCheck.Result> runHealthChecks(HealthCheckFilter filter) {
+         final SortedMap<String, HealthCheck.Result> results = new TreeMap<>();
+         for (Map.Entry<String, HealthCheck> entry : healthChecks.entrySet()) {
+             final String name = entry.getKey();
+             final HealthCheck healthCheck = entry.getValue();
+             if (filter.matches(name, healthCheck)) {
+                 final Result result = entry.getValue().execute();
+                 results.put(entry.getKey(), result);
+             }
+         }
+         return Collections.unmodifiableSortedMap(results);
+     }
+ 
+     /**
+      * Runs the registered health checks in parallel and returns a map of the results.
+      *
+      * @param executor object to launch and track health checks progress
+      * @return a map of the health check results
+      */
+     public SortedMap<String, HealthCheck.Result> runHealthChecks(ExecutorService executor) {
+         return runHealthChecks(executor, HealthCheckFilter.ALL);
+     }
+ 
+     /**
+      * Runs the registered health checks matching the filter in parallel and returns a map of the results.
+      *
+      * @param executor object to launch and track health checks progress
+      * @param filter   health check filter
+      * @return a map of the health check results
+      */
+     public SortedMap<String, HealthCheck.Result> runHealthChecks(ExecutorService executor, HealthCheckFilter filter) {
+         final Map<String, Future<HealthCheck.Result>> futures = new HashMap<>();
+         for (final Map.Entry<String, HealthCheck> entry : healthChecks.entrySet()) {
+             final String name = entry.getKey();
+             final HealthCheck healthCheck = entry.getValue();
+             if (filter.matches(name, healthCheck)) {
+                 futures.put(name, executor.submit(() -> healthCheck.execute()));
+             }
+         }
+ 
+         final SortedMap<String, HealthCheck.Result> results = new TreeMap<>();
+         for (Map.Entry<String, Future<Result>> entry : futures.entrySet()) {
+             try {
+                 results.put(entry.getKey(), entry.getValue().get());
+             } catch (Exception e) {
+                 LOGGER.warn("Error executing health check {}", entry.getKey(), e);
+                 results.put(entry.getKey(), HealthCheck.Result.unhealthy(e));
+             }
+         }
+ 
+         return Collections.unmodifiableSortedMap(results);
+     }
+ 
+ 
+     private void onHealthCheckAdded(String name, HealthCheck healthCheck) {
+         for (HealthCheckRegistryListener listener : listeners) {
+             listener.onHealthCheckAdded(name, healthCheck);
+         }
+     }
+ 
+     private void onHealthCheckRemoved(String name, HealthCheck healthCheck) {
+         for (HealthCheckRegistryListener listener : listeners) {
+             listener.onHealthCheckRemoved(name, healthCheck);
+         }
+     }
+ 
+     /**
+      * Shuts down the scheduled executor for async health checks
+      */
+     public void shutdown() {
+         asyncExecutorService.shutdown(); // Disable new health checks from being submitted
+         try {
+             // Give some time to the current healtch checks to finish gracefully
+             if (!asyncExecutorService.awaitTermination(1, TimeUnit.SECONDS)) {
+                 asyncExecutorService.shutdownNow();
+             }
+         } catch (InterruptedException ie) {
+             asyncExecutorService.shutdownNow();
+             Thread.currentThread().interrupt();
+         }
+     }
+ 
+     private static ScheduledExecutorService createExecutorService(int corePoolSize) {
+         final ScheduledThreadPoolExecutor asyncExecutorService = new ScheduledThreadPoolExecutor(corePoolSize,
+                 new NamedThreadFactory("healthcheck-async-executor-"));
+         asyncExecutorService.setRemoveOnCancelPolicy(true);
+         return asyncExecutorService;
+     }
+ 
+     private static class NamedThreadFactory implements ThreadFactory {
+ 
+         private final ThreadGroup group;
+         private final AtomicInteger threadNumber = new AtomicInteger(1);
+         private final String namePrefix;
+ 
+         NamedThreadFactory(String namePrefix) {
+             SecurityManager s = System.getSecurityManager();
+             group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();
+             this.namePrefix = namePrefix;
+         }
+ 
+         @Override
+         public Thread newThread(Runnable r) {
+             Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);
+             t.setDaemon(true);
+             if (t.getPriority() != Thread.NORM_PRIORITY)
+                 t.setPriority(Thread.NORM_PRIORITY);
+             return t;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-5.html new file mode 100644 index 0000000000..8b93c1e1a2 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-5.html @@ -0,0 +1,210 @@ + + + + + + + + Coverage Report > SharedHealthCheckRegistries + + + + + + +
+ + +

Coverage Summary for Class: SharedHealthCheckRegistries (com.codahale.metrics.health)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + +
+ package com.codahale.metrics.health;
+ 
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ import java.util.concurrent.atomic.AtomicReference;
+ 
+ /**
+  * A map of shared, named health registries.
+  */
+ public class SharedHealthCheckRegistries {
+     private static final ConcurrentMap<String, HealthCheckRegistry> REGISTRIES =
+             new ConcurrentHashMap<>();
+ 
+     private static AtomicReference<String> defaultRegistryName = new AtomicReference<>();
+ 
+     /* Visible for testing */
+     static void setDefaultRegistryName(AtomicReference<String> defaultRegistryName) {
+         SharedHealthCheckRegistries.defaultRegistryName = defaultRegistryName;
+     }
+ 
+     private SharedHealthCheckRegistries() { /* singleton */ }
+ 
+     public static void clear() {
+         REGISTRIES.clear();
+     }
+ 
+     public static Set<String> names() {
+         return REGISTRIES.keySet();
+     }
+ 
+     public static void remove(String key) {
+         REGISTRIES.remove(key);
+     }
+ 
+     public static HealthCheckRegistry add(String name, HealthCheckRegistry registry) {
+         return REGISTRIES.putIfAbsent(name, registry);
+     }
+ 
+     public static HealthCheckRegistry getOrCreate(String name) {
+         final HealthCheckRegistry existing = REGISTRIES.get(name);
+         if (existing == null) {
+             final HealthCheckRegistry created = new HealthCheckRegistry();
+             final HealthCheckRegistry raced = add(name, created);
+             if (raced == null) {
+                 return created;
+             }
+             return raced;
+         }
+         return existing;
+     }
+ 
+     /**
+      * Creates a new registry and sets it as the default one under the provided name.
+      *
+      * @param name the registry name
+      * @return the default registry
+      * @throws IllegalStateException if the name has already been set
+      */
+     public synchronized static HealthCheckRegistry setDefault(String name) {
+         final HealthCheckRegistry registry = getOrCreate(name);
+         return setDefault(name, registry);
+     }
+ 
+     /**
+      * Sets the provided registry as the default one under the provided name
+      *
+      * @param name                the default registry name
+      * @param healthCheckRegistry the default registry
+      * @throws IllegalStateException if the default registry has already been set
+      */
+     public static HealthCheckRegistry setDefault(String name, HealthCheckRegistry healthCheckRegistry) {
+         if (defaultRegistryName.compareAndSet(null, name)) {
+             add(name, healthCheckRegistry);
+             return healthCheckRegistry;
+         }
+         throw new IllegalStateException("Default health check registry is already set.");
+     }
+ 
+     /**
+      * Gets the name of the default registry, if it has been set
+      *
+      * @return the default registry
+      * @throws IllegalStateException if the default has not been set
+      */
+     public static HealthCheckRegistry getDefault() {
+         final HealthCheckRegistry healthCheckRegistry = tryGetDefault();
+         if (healthCheckRegistry != null) {
+             return healthCheckRegistry;
+         }
+         throw new IllegalStateException("Default registry name has not been set.");
+     }
+ 
+     /**
+      * Same as {@link #getDefault()} except returns null when the default registry has not been set.
+      *
+      * @return the default registry or null
+      */
+     public static HealthCheckRegistry tryGetDefault() {
+         final String name = defaultRegistryName.get();
+         if (name != null) {
+             return getOrCreate(name);
+         }
+         return null;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-6.html new file mode 100644 index 0000000000..d2cc707e5f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-6.html @@ -0,0 +1,103 @@ + + + + + + + + Coverage Report > HealthCheckRegistryListener + + + + + + +
+ + +

Coverage Summary for Class: HealthCheckRegistryListener (com.codahale.metrics.health)

+ + + + + + + + + + + + + + + + + + +
Class
HealthCheckRegistryListener$MockitoMock$DWFowab2
HealthCheckRegistryListener$MockitoMock$DWFowab2$auxiliary$EV8bqb22
HealthCheckRegistryListener$MockitoMock$DWFowab2$auxiliary$IsjnkNVf
Total
+ +
+
+ + +
+ package com.codahale.metrics.health;
+ 
+ import java.util.EventListener;
+ 
+ /**
+  * A listener contract for {@link HealthCheckRegistry} events.
+  */
+ public interface HealthCheckRegistryListener extends EventListener {
+ 
+     /**
+      * Called when a new {@link HealthCheck} is added to the registry.
+      *
+      * @param name        the name of the health check
+      * @param healthCheck the health check
+      */
+     void onHealthCheckAdded(String name, HealthCheck healthCheck);
+ 
+     /**
+      * Called when a {@link HealthCheck} is removed from the registry.
+      *
+      * @param name        the name of the health check
+      * @param healthCheck the health check
+      */
+     void onHealthCheckRemoved(String name, HealthCheck healthCheck);
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index.html new file mode 100644 index 0000000000..728d74c355 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-9/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..6c389e560a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..4ac077651f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..33409d33e1 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..4c98eb79b3 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..6915e9b925 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..0859af6c17 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..df94b611d2 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..4fac26e430 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..cac4dcbf49 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/sources/source-1.html new file mode 100644 index 0000000000..ccf9f06fa7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-9/sources/source-1.html @@ -0,0 +1,205 @@ + + + + + + + + Coverage Report > Async + + + + + + +
+ + +

Coverage Summary for Class: Async (com.codahale.metrics.health.annotation)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
Async$InitialState + + 100% + + + (2/2) + + + + 100% + + + (2/2) + +
Async$ScheduleType + + 100% + + + (2/2) + + + + 100% + + + (2/2) + +
Total + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + +
+ package com.codahale.metrics.health.annotation;
+ 
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * An annotation for marking asynchronous health check execution.
+  */
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target(ElementType.TYPE)
+ public @interface Async {
+     /**
+      * Enum representing the initial health states.
+      */
+     enum InitialState {
+         HEALTHY, UNHEALTHY
+     }
+ 
+     /**
+      * Enum representing the possible schedule types.
+      */
+     enum ScheduleType {
+         FIXED_RATE, FIXED_DELAY
+     }
+ 
+     /**
+      * Period between executions.
+      *
+      * @return period
+      */
+     long period();
+ 
+     /**
+      * Scheduling type of asynchronous executions.
+      *
+      * @return schedule type
+      */
+     ScheduleType scheduleType() default ScheduleType.FIXED_RATE;
+ 
+     /**
+      * Initial delay of first execution.
+      *
+      * @return initial delay
+      */
+     long initialDelay() default 0;
+ 
+     /**
+      * Time unit of initial delay, period and healthyTtl.
+      *
+      * @return time unit
+      */
+     TimeUnit unit() default TimeUnit.SECONDS;
+ 
+     /**
+      * Initial health state until first asynchronous execution completes.
+      *
+      * @return initial health state
+      */
+     InitialState initialState() default InitialState.HEALTHY;
+ 
+     /**
+      * How long a healthy result is considered valid before being ignored.
+      *
+      * Handles cases where the asynchronous healthcheck did not run (for example thread starvation).
+      *
+      * Defaults to 2 * period
+      *
+      * @return healthy result time to live
+      */
+     long healthyTtl() default -1;
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index.html new file mode 100644 index 0000000000..4833c38c6d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-a/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..9d92030e60 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..29522deaa9 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..a25bcbe7cd --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..a5bb76c1a1 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..c9a6fd5ee9 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..19c9a67963 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..be06aa7f4b --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..3d27808192 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..77a48f15cb --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/sources/source-1.html new file mode 100644 index 0000000000..69476124f3 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-a/sources/source-1.html @@ -0,0 +1,142 @@ + + + + + + + + Coverage Report > ThreadDeadlockHealthCheck + + + + + + +
+ + +

Coverage Summary for Class: ThreadDeadlockHealthCheck (com.codahale.metrics.health.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + +
+ package com.codahale.metrics.health.jvm;
+ 
+ import com.codahale.metrics.health.HealthCheck;
+ import com.codahale.metrics.jvm.ThreadDeadlockDetector;
+ 
+ import java.util.Set;
+ 
+ /**
+  * A health check which returns healthy if no threads are deadlocked.
+  */
+ public class ThreadDeadlockHealthCheck extends HealthCheck {
+     private final ThreadDeadlockDetector detector;
+ 
+     /**
+      * Creates a new health check.
+      */
+     public ThreadDeadlockHealthCheck() {
+         this(new ThreadDeadlockDetector());
+     }
+ 
+     /**
+      * Creates a new health check with the given detector.
+      *
+      * @param detector a thread deadlock detector
+      */
+     public ThreadDeadlockHealthCheck(ThreadDeadlockDetector detector) {
+         this.detector = detector;
+     }
+ 
+     @Override
+     protected Result check() throws Exception {
+         final Set<String> threads = detector.getDeadlockedThreads();
+         if (threads.isEmpty()) {
+             return Result.healthy();
+         }
+         return Result.unhealthy(threads.toString());
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index.html new file mode 100644 index 0000000000..5d88dedccd --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-b/index.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..45e95d58cd --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..41a94be6e8 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..b7061331d4 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..6f9e5fffd1 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..94c2ec4708 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_LINE.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..c81462e483 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..f7cb4b1b8e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..a0a1fb453e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..37b8b5a3e5 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/sources/source-1.html new file mode 100644 index 0000000000..5b7cff6702 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-b/sources/source-1.html @@ -0,0 +1,140 @@ + + + + + + + + Coverage Report > InstrumentedNClientConnManager + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedNClientConnManager (com.codahale.metrics.httpasyncclient)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpasyncclient;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.apache.http.config.Registry;
+ import org.apache.http.conn.DnsResolver;
+ import org.apache.http.conn.SchemePortResolver;
+ import org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager;
+ import org.apache.http.nio.conn.ManagedNHttpClientConnection;
+ import org.apache.http.nio.conn.NHttpClientConnectionManager;
+ import org.apache.http.nio.conn.NHttpConnectionFactory;
+ import org.apache.http.nio.conn.SchemeIOSessionStrategy;
+ import org.apache.http.nio.reactor.ConnectingIOReactor;
+ 
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ public class InstrumentedNClientConnManager extends PoolingNHttpClientConnectionManager {
+ 
+     public InstrumentedNClientConnManager(final ConnectingIOReactor ioreactor, final NHttpConnectionFactory<ManagedNHttpClientConnection> connFactory, final SchemePortResolver schemePortResolver, final MetricRegistry metricRegistry, final Registry<SchemeIOSessionStrategy> iosessionFactoryRegistry, final long timeToLive, final TimeUnit tunit, final DnsResolver dnsResolver, final String name) {
+         super(ioreactor, connFactory, iosessionFactoryRegistry, schemePortResolver, dnsResolver, timeToLive, tunit);
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, "available-connections"),
+                 () -> getTotalStats().getAvailable());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, "leased-connections"),
+                 () -> getTotalStats().getLeased());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, "max-connections"),
+                 () -> getTotalStats().getMax());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, "pending-connections"),
+                 () -> getTotalStats().getPending());
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/sources/source-2.html new file mode 100644 index 0000000000..c50d79a933 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-b/sources/source-2.html @@ -0,0 +1,268 @@ + + + + + + + + Coverage Report > InstrumentedNHttpClientBuilder + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedNHttpClientBuilder (com.codahale.metrics.httpasyncclient)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedNHttpClientBuilder + + 71.4% + + + (5/7) + + + + 81.8% + + + (9/11) + +
InstrumentedNHttpClientBuilder$1 + + 60% + + + (3/5) + + + + 55.6% + + + (5/9) + +
InstrumentedNHttpClientBuilder$TimingFutureCallback + + 60% + + + (3/5) + + + + 46.2% + + + (6/13) + +
Total + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpasyncclient;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.httpclient.HttpClientMetricNameStrategies;
+ import com.codahale.metrics.httpclient.HttpClientMetricNameStrategy;
+ 
+ import java.io.IOException;
+ import java.util.concurrent.Future;
+ 
+ import org.apache.http.HttpException;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.concurrent.FutureCallback;
+ import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
+ import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
+ import org.apache.http.nio.protocol.HttpAsyncRequestProducer;
+ import org.apache.http.nio.protocol.HttpAsyncResponseConsumer;
+ import org.apache.http.protocol.HttpContext;
+ 
+ import static java.util.Objects.requireNonNull;
+ 
+ public class InstrumentedNHttpClientBuilder extends HttpAsyncClientBuilder {
+     private final MetricRegistry metricRegistry;
+     private final String name;
+     private final HttpClientMetricNameStrategy metricNameStrategy;
+ 
+     public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy, String name) {
+         super();
+         this.metricRegistry = metricRegistry;
+         this.metricNameStrategy = metricNameStrategy;
+         this.name = name;
+     }
+ 
+     public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry) {
+         this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, null);
+     }
+ 
+     public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy) {
+         this(metricRegistry, metricNameStrategy, null);
+     }
+ 
+     public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, String name) {
+         this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, name);
+     }
+ 
+     private Timer timer(HttpRequest request) {
+         return metricRegistry.timer(metricNameStrategy.getNameFor(name, request));
+     }
+ 
+     @Override
+     public CloseableHttpAsyncClient build() {
+         final CloseableHttpAsyncClient ac = super.build();
+         return new CloseableHttpAsyncClient() {
+ 
+             @Override
+             public boolean isRunning() {
+                 return ac.isRunning();
+             }
+ 
+             @Override
+             public void start() {
+                 ac.start();
+             }
+ 
+             @Override
+             public <T> Future<T> execute(HttpAsyncRequestProducer requestProducer, HttpAsyncResponseConsumer<T> responseConsumer, HttpContext context, FutureCallback<T> callback) {
+                 final Timer.Context timerContext;
+                 try {
+                     timerContext = timer(requestProducer.generateRequest()).time();
+                 } catch (IOException | HttpException ex) {
+                     throw new RuntimeException(ex);
+                 }
+                 return ac.execute(requestProducer, responseConsumer, context,
+                         new TimingFutureCallback<>(callback, timerContext));
+             }
+ 
+             @Override
+             public void close() throws IOException {
+                 ac.close();
+             }
+         };
+     }
+ 
+     private static class TimingFutureCallback<T> implements FutureCallback<T> {
+         private final FutureCallback<T> callback;
+         private final Timer.Context timerContext;
+ 
+         private TimingFutureCallback(FutureCallback<T> callback,
+                                      Timer.Context timerContext) {
+             this.callback = callback;
+             this.timerContext = requireNonNull(timerContext, "timerContext");
+         }
+ 
+         @Override
+         public void completed(T result) {
+             timerContext.stop();
+             if (callback != null) {
+                 callback.completed(result);
+             }
+         }
+ 
+         @Override
+         public void failed(Exception ex) {
+             timerContext.stop();
+             if (callback != null) {
+                 callback.failed(ex);
+             }
+         }
+ 
+         @Override
+         public void cancelled() {
+             timerContext.stop();
+             if (callback != null) {
+                 callback.cancelled();
+             }
+         }
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index.html new file mode 100644 index 0000000000..e9f1c635c5 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-c/index.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..e93b35e145 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..e5aba1ec31 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..c4844c38b2 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..6bfeada561 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..44b3366acc --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_LINE.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..215455890e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..a4610edee6 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..d17802a9fa --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..acc0df2ba2 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-1.html new file mode 100644 index 0000000000..e384c8c261 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-1.html @@ -0,0 +1,165 @@ + + + + + + + + Coverage Report > HttpClientMetricNameStrategies + + + + + + +
+ + +

Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient;
+ 
+ import org.apache.http.HttpRequest;
+ import org.apache.http.client.HttpClient;
+ import org.apache.http.client.methods.HttpRequestWrapper;
+ import org.apache.http.client.methods.HttpUriRequest;
+ import org.apache.http.client.utils.URIBuilder;
+ 
+ import java.net.URI;
+ import java.net.URISyntaxException;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ public class HttpClientMetricNameStrategies {
+ 
+     public static final HttpClientMetricNameStrategy METHOD_ONLY =
+         (name, request) -> name(HttpClient.class,
+             name,
+             methodNameString(request));
+ 
+     public static final HttpClientMetricNameStrategy HOST_AND_METHOD =
+         (name, request) -> name(HttpClient.class,
+             name,
+             requestURI(request).getHost(),
+             methodNameString(request));
+ 
+     public static final HttpClientMetricNameStrategy PATH_AND_METHOD =
+         (name, request) -> {
+             final URIBuilder url = new URIBuilder(requestURI(request));
+             return name(HttpClient.class,
+                 name,
+                 url.getPath(),
+                 methodNameString(request));
+         };
+ 
+     public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =
+         (name, request) -> {
+             try {
+                 final URIBuilder url = new URIBuilder(requestURI(request));
+                 return name(HttpClient.class,
+                     name,
+                     url.removeQuery().build().toString(),
+                     methodNameString(request));
+             } catch (URISyntaxException e) {
+                 throw new IllegalArgumentException(e);
+             }
+         };
+ 
+     private static String methodNameString(HttpRequest request) {
+         return request.getRequestLine().getMethod().toLowerCase() + "-requests";
+     }
+ 
+     private static URI requestURI(HttpRequest request) {
+         if (request instanceof HttpRequestWrapper)
+             return requestURI(((HttpRequestWrapper) request).getOriginal());
+ 
+         return (request instanceof HttpUriRequest) ?
+             ((HttpUriRequest) request).getURI() :
+             URI.create(request.getRequestLine().getUri());
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-2.html new file mode 100644 index 0000000000..0db53fab95 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-2.html @@ -0,0 +1,146 @@ + + + + + + + + Coverage Report > HttpClientMetricNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
HttpClientMetricNameStrategy$MockitoMock$JpdP8icp
HttpClientMetricNameStrategy$MockitoMock$JpdP8icp$auxiliary$8csMhxPh
HttpClientMetricNameStrategy$MockitoMock$JpdP8icp$auxiliary$yhTyAizy
HttpClientMetricNameStrategy$MockitoMock$KVATg9hs
HttpClientMetricNameStrategy$MockitoMock$KVATg9hs$auxiliary$piAy2yZt
HttpClientMetricNameStrategy$MockitoMock$KVATg9hs$auxiliary$QENwMWQC
Total + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.client.HttpClient;
+ 
+ @FunctionalInterface
+ public interface HttpClientMetricNameStrategy {
+ 
+     String getNameFor(String name, HttpRequest request);
+ 
+     default String getNameFor(String name, Exception exception) {
+         return MetricRegistry.name(HttpClient.class,
+                 name,
+                 exception.getClass().getSimpleName());
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-3.html new file mode 100644 index 0000000000..8fbd9b307a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-3.html @@ -0,0 +1,330 @@ + + + + + + + + Coverage Report > InstrumentedHttpClientConnectionManager + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedHttpClientConnectionManager + + 66.7% + + + (8/12) + + + + 84% + + + (21/25) + +
InstrumentedHttpClientConnectionManager$Builder + + 36.4% + + + (4/11) + + + + 46.2% + + + (12/26) + +
Total + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.apache.http.config.Registry;
+ import org.apache.http.config.RegistryBuilder;
+ import org.apache.http.conn.DnsResolver;
+ import org.apache.http.conn.HttpClientConnectionManager;
+ import org.apache.http.conn.HttpClientConnectionOperator;
+ import org.apache.http.conn.HttpConnectionFactory;
+ import org.apache.http.conn.ManagedHttpClientConnection;
+ import org.apache.http.conn.SchemePortResolver;
+ import org.apache.http.conn.routing.HttpRoute;
+ import org.apache.http.conn.socket.ConnectionSocketFactory;
+ import org.apache.http.conn.socket.PlainConnectionSocketFactory;
+ import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+ import org.apache.http.impl.conn.DefaultHttpClientConnectionOperator;
+ import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+ import org.apache.http.impl.conn.SystemDefaultDnsResolver;
+ 
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A {@link HttpClientConnectionManager} which monitors the number of open connections.
+  */
+ public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
+ 
+ 
+     protected static Registry<ConnectionSocketFactory> getDefaultRegistry() {
+         return RegistryBuilder.<ConnectionSocketFactory>create()
+             .register("http", PlainConnectionSocketFactory.getSocketFactory())
+             .register("https", SSLConnectionSocketFactory.getSocketFactory())
+             .build();
+     }
+ 
+     private final MetricRegistry metricsRegistry;
+     private final String name;
+ 
+     /**
+      * @deprecated Use {@link #builder(MetricRegistry)} instead.
+      */
+     @Deprecated
+     public InstrumentedHttpClientConnectionManager(MetricRegistry metricRegistry) {
+         this(metricRegistry, getDefaultRegistry());
+     }
+ 
+     /**
+      * @deprecated Use {@link #builder(MetricRegistry)} instead.
+      */
+     @Deprecated
+     public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
+                                                    Registry<ConnectionSocketFactory> socketFactoryRegistry) {
+         this(metricsRegistry, socketFactoryRegistry, -1, TimeUnit.MILLISECONDS);
+     }
+ 
+ 
+     /**
+      * @deprecated Use {@link #builder(MetricRegistry)} instead.
+      */
+     @Deprecated
+     public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
+                                                    Registry<ConnectionSocketFactory> socketFactoryRegistry,
+                                                    long connTTL,
+                                                    TimeUnit connTTLTimeUnit) {
+         this(metricsRegistry, socketFactoryRegistry, null, null, SystemDefaultDnsResolver.INSTANCE, connTTL, connTTLTimeUnit, null);
+     }
+ 
+ 
+     /**
+      * @deprecated Use {@link #builder(MetricRegistry)} instead.
+      */
+     @Deprecated
+     public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
+                                                    Registry<ConnectionSocketFactory> socketFactoryRegistry,
+                                                    HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection>
+                                                            connFactory,
+                                                    SchemePortResolver schemePortResolver,
+                                                    DnsResolver dnsResolver,
+                                                    long connTTL,
+                                                    TimeUnit connTTLTimeUnit,
+                                                    String name) {
+         this(metricsRegistry,
+              new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver),
+              connFactory,
+              connTTL,
+              connTTLTimeUnit,
+              name);
+     }
+ 
+     /**
+      * @deprecated Use {@link #builder(MetricRegistry)} instead.
+      */
+     @Deprecated
+     public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
+                                                    HttpClientConnectionOperator httpClientConnectionOperator,
+                                                    HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection>
+                                                            connFactory,
+                                                    long connTTL,
+                                                    TimeUnit connTTLTimeUnit,
+                                                    String name) {
+         super(httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit);
+         this.metricsRegistry = metricsRegistry;
+         this.name = name;
+ 
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, "available-connections"),
+                 () -> getTotalStats().getAvailable());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, "leased-connections"),
+                 () -> getTotalStats().getLeased());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, "max-connections"),
+                 () -> getTotalStats().getMax());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, "pending-connections"),
+                 () -> getTotalStats().getPending());
+     }
+ 
+     @Override
+     public void shutdown() {
+         super.shutdown();
+         metricsRegistry.remove(name(HttpClientConnectionManager.class, name, "available-connections"));
+         metricsRegistry.remove(name(HttpClientConnectionManager.class, name, "leased-connections"));
+         metricsRegistry.remove(name(HttpClientConnectionManager.class, name, "max-connections"));
+         metricsRegistry.remove(name(HttpClientConnectionManager.class, name, "pending-connections"));
+     }
+ 
+     public static Builder builder(MetricRegistry metricsRegistry) {
+         return new Builder().metricsRegistry(metricsRegistry);
+     }
+ 
+     public static class Builder {
+         private MetricRegistry metricsRegistry;
+         private HttpClientConnectionOperator httpClientConnectionOperator;
+         private Registry<ConnectionSocketFactory> socketFactoryRegistry = getDefaultRegistry();
+         private HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> connFactory;
+         private SchemePortResolver schemePortResolver;
+         private DnsResolver dnsResolver = SystemDefaultDnsResolver.INSTANCE;
+         private long connTTL = -1;
+         private TimeUnit connTTLTimeUnit = TimeUnit.MILLISECONDS;
+         private String name;
+ 
+         Builder() {
+         }
+ 
+         public Builder metricsRegistry(MetricRegistry metricsRegistry) {
+             this.metricsRegistry = metricsRegistry;
+             return this;
+         }
+ 
+         public Builder socketFactoryRegistry(Registry<ConnectionSocketFactory> socketFactoryRegistry) {
+             this.socketFactoryRegistry = socketFactoryRegistry;
+             return this;
+         }
+ 
+         public Builder connFactory(HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> connFactory) {
+             this.connFactory = connFactory;
+             return this;
+         }
+ 
+         public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
+             this.schemePortResolver = schemePortResolver;
+             return this;
+         }
+ 
+         public Builder dnsResolver(DnsResolver dnsResolver) {
+             this.dnsResolver = dnsResolver;
+             return this;
+         }
+ 
+         public Builder connTTL(long connTTL) {
+             this.connTTL = connTTL;
+             return this;
+         }
+ 
+         public Builder connTTLTimeUnit(TimeUnit connTTLTimeUnit) {
+             this.connTTLTimeUnit = connTTLTimeUnit;
+             return this;
+         }
+ 
+         public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
+             this.httpClientConnectionOperator = httpClientConnectionOperator;
+             return this;
+         }
+ 
+         public Builder name(final String name) {
+             this.name = name;
+             return this;
+         }
+ 
+         public InstrumentedHttpClientConnectionManager build() {
+             if (httpClientConnectionOperator == null) {
+                 httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver);
+             }
+             return new InstrumentedHttpClientConnectionManager(metricsRegistry, httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit, name);
+         }
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-4.html new file mode 100644 index 0000000000..5ed96ac4db --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-4.html @@ -0,0 +1,138 @@ + + + + + + + + Coverage Report > InstrumentedHttpClients + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.apache.http.impl.client.CloseableHttpClient;
+ import org.apache.http.impl.client.HttpClientBuilder;
+ 
+ import static com.codahale.metrics.httpclient.HttpClientMetricNameStrategies.METHOD_ONLY;
+ 
+ public class InstrumentedHttpClients {
+     private InstrumentedHttpClients() {
+         super();
+     }
+ 
+     public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
+         return createDefault(metricRegistry, METHOD_ONLY);
+     }
+ 
+     public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
+                                                     HttpClientMetricNameStrategy metricNameStrategy) {
+         return custom(metricRegistry, metricNameStrategy).build();
+     }
+ 
+     public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
+         return custom(metricRegistry, METHOD_ONLY);
+     }
+ 
+     public static HttpClientBuilder custom(MetricRegistry metricRegistry,
+                                            HttpClientMetricNameStrategy metricNameStrategy) {
+         return HttpClientBuilder.create()
+                 .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))
+                 .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-5.html new file mode 100644 index 0000000000..714211f9e2 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-5.html @@ -0,0 +1,166 @@ + + + + + + + + Coverage Report > InstrumentedHttpRequestExecutor + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import org.apache.http.HttpClientConnection;
+ import org.apache.http.HttpException;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpResponse;
+ import org.apache.http.protocol.HttpContext;
+ import org.apache.http.protocol.HttpRequestExecutor;
+ 
+ import com.codahale.metrics.Meter;
+ 
+ import java.io.IOException;
+ 
+ public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
+     private final MetricRegistry registry;
+     private final HttpClientMetricNameStrategy metricNameStrategy;
+     private final String name;
+ 
+     public InstrumentedHttpRequestExecutor(MetricRegistry registry,
+                                            HttpClientMetricNameStrategy metricNameStrategy) {
+         this(registry, metricNameStrategy, null);
+     }
+ 
+     public InstrumentedHttpRequestExecutor(MetricRegistry registry,
+                                            HttpClientMetricNameStrategy metricNameStrategy,
+                                            String name) {
+         this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);
+     }
+ 
+     public InstrumentedHttpRequestExecutor(MetricRegistry registry,
+                                            HttpClientMetricNameStrategy metricNameStrategy,
+                                            String name,
+                                            int waitForContinue) {
+         super(waitForContinue);
+         this.registry = registry;
+         this.name = name;
+         this.metricNameStrategy = metricNameStrategy;
+     }
+ 
+     @Override
+     public HttpResponse execute(HttpRequest request, HttpClientConnection conn, HttpContext context) throws HttpException, IOException {
+         final Timer.Context timerContext = timer(request).time();
+         try {
+             return super.execute(request, conn, context);
+         } catch (HttpException | IOException e) {
+             meter(e).mark();
+             throw e;
+         } finally {
+             timerContext.stop();
+         }
+     }
+ 
+     private Timer timer(HttpRequest request) {
+         return registry.timer(metricNameStrategy.getNameFor(name, request));
+     }
+ 
+     private Meter meter(Exception e) {
+         return registry.meter(metricNameStrategy.getNameFor(name, e));
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index.html new file mode 100644 index 0000000000..4011c3046f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-d/index.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..a19fed4731 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..37300d90bd --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..86f08aaf1f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..82af77499c --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..0f7dfd53cb --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_LINE.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..b4c6064664 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..5c81111d41 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..16ad11bcba --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..982163bcb2 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-1.html new file mode 100644 index 0000000000..d116ed905e --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-1.html @@ -0,0 +1,152 @@ + + + + + + + + Coverage Report > HttpClientMetricNameStrategies + + + + + + +
+ + +

Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient5)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient5;
+ 
+ import org.apache.hc.client5.http.classic.HttpClient;
+ import org.apache.hc.core5.http.HttpRequest;
+ import org.apache.hc.core5.net.URIBuilder;
+ 
+ import java.net.URISyntaxException;
+ import java.util.Locale;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ public class HttpClientMetricNameStrategies {
+ 
+     public static final HttpClientMetricNameStrategy METHOD_ONLY =
+             (name, request) -> name(HttpClient.class,
+                     name,
+                     methodNameString(request));
+ 
+     public static final HttpClientMetricNameStrategy HOST_AND_METHOD =
+             (name, request) -> {
+                 try {
+                     return name(HttpClient.class,
+                             name,
+                             request.getUri().getHost(),
+                             methodNameString(request));
+                 } catch (URISyntaxException e) {
+                     throw new IllegalArgumentException(e);
+                 }
+             };
+ 
+     public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =
+             (name, request) -> {
+                 try {
+                     final URIBuilder url = new URIBuilder(request.getUri());
+                     return name(HttpClient.class,
+                             name,
+                             url.removeQuery().build().toString(),
+                             methodNameString(request));
+                 } catch (URISyntaxException e) {
+                     throw new IllegalArgumentException(e);
+                 }
+             };
+ 
+     private static String methodNameString(HttpRequest request) {
+         return request.getMethod().toLowerCase(Locale.ROOT) + "-requests";
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-2.html new file mode 100644 index 0000000000..96801a835f --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-2.html @@ -0,0 +1,137 @@ + + + + + + + + Coverage Report > HttpClientMetricNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient5)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
HttpClientMetricNameStrategy$MockitoMock$WCZvq9Vv
HttpClientMetricNameStrategy$MockitoMock$WCZvq9Vv$auxiliary$wLZ8qSrM
HttpClientMetricNameStrategy$MockitoMock$WCZvq9Vv$auxiliary$X0UpyCp2
Total + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient5;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.apache.hc.client5.http.classic.HttpClient;
+ import org.apache.hc.core5.http.HttpRequest;
+ 
+ @FunctionalInterface
+ public interface HttpClientMetricNameStrategy {
+ 
+     String getNameFor(String name, HttpRequest request);
+ 
+     default String getNameFor(String name, Exception exception) {
+         return MetricRegistry.name(HttpClient.class,
+                 name,
+                 exception.getClass().getSimpleName());
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-3.html new file mode 100644 index 0000000000..e404a9285b --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-3.html @@ -0,0 +1,285 @@ + + + + + + + + Coverage Report > InstrumentedAsyncClientConnectionManager + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedAsyncClientConnectionManager (com.codahale.metrics.httpclient5)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedAsyncClientConnectionManager + + 100% + + + (10/10) + + + + 100% + + + (22/22) + +
InstrumentedAsyncClientConnectionManager$Builder + + 40% + + + (4/10) + + + + 40% + + + (8/20) + +
Total + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient5;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.apache.hc.client5.http.DnsResolver;
+ import org.apache.hc.client5.http.SchemePortResolver;
+ import org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager;
+ import org.apache.hc.client5.http.io.HttpClientConnectionManager;
+ import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
+ import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
+ import org.apache.hc.core5.http.URIScheme;
+ import org.apache.hc.core5.http.config.Lookup;
+ import org.apache.hc.core5.http.config.Registry;
+ import org.apache.hc.core5.http.config.RegistryBuilder;
+ import org.apache.hc.core5.http.nio.ssl.TlsStrategy;
+ import org.apache.hc.core5.io.CloseMode;
+ import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
+ import org.apache.hc.core5.pool.PoolReusePolicy;
+ import org.apache.hc.core5.util.TimeValue;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static java.util.Objects.requireNonNull;
+ 
+ /**
+  * A {@link HttpClientConnectionManager} which monitors the number of open connections.
+  */
+ public class InstrumentedAsyncClientConnectionManager extends PoolingAsyncClientConnectionManager {
+     private static final String METRICS_PREFIX = AsyncClientConnectionManager.class.getName();
+ 
+     protected static Registry<TlsStrategy> getDefaultTlsStrategy() {
+         return RegistryBuilder.<TlsStrategy>create()
+                 .register(URIScheme.HTTPS.id, DefaultClientTlsStrategy.getDefault())
+                 .build();
+     }
+ 
+     private final MetricRegistry metricsRegistry;
+     private final String name;
+ 
+     InstrumentedAsyncClientConnectionManager(final MetricRegistry metricRegistry,
+                                              final String name,
+                                              final Lookup<TlsStrategy> tlsStrategyLookup,
+                                              final PoolConcurrencyPolicy poolConcurrencyPolicy,
+                                              final PoolReusePolicy poolReusePolicy,
+                                              final TimeValue timeToLive,
+                                              final SchemePortResolver schemePortResolver,
+                                              final DnsResolver dnsResolver) {
+ 
+         super(tlsStrategyLookup, poolConcurrencyPolicy, poolReusePolicy, timeToLive, schemePortResolver, dnsResolver);
+         this.metricsRegistry = requireNonNull(metricRegistry, "metricRegistry");
+         this.name = name;
+ 
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(METRICS_PREFIX, name, "available-connections"),
+                 () -> getTotalStats().getAvailable());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(METRICS_PREFIX, name, "leased-connections"),
+                 () -> getTotalStats().getLeased());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(METRICS_PREFIX, name, "max-connections"),
+                 () -> getTotalStats().getMax());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(METRICS_PREFIX, name, "pending-connections"),
+                 () -> getTotalStats().getPending());
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void close() {
+         close(CloseMode.GRACEFUL);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void close(CloseMode closeMode) {
+         super.close(closeMode);
+         metricsRegistry.remove(name(METRICS_PREFIX, name, "available-connections"));
+         metricsRegistry.remove(name(METRICS_PREFIX, name, "leased-connections"));
+         metricsRegistry.remove(name(METRICS_PREFIX, name, "max-connections"));
+         metricsRegistry.remove(name(METRICS_PREFIX, name, "pending-connections"));
+     }
+ 
+     public static Builder builder(MetricRegistry metricsRegistry) {
+         return new Builder().metricsRegistry(metricsRegistry);
+     }
+ 
+     public static class Builder {
+         private MetricRegistry metricsRegistry;
+         private String name;
+         private Lookup<TlsStrategy> tlsStrategyLookup = getDefaultTlsStrategy();
+         private SchemePortResolver schemePortResolver;
+         private DnsResolver dnsResolver;
+         private PoolConcurrencyPolicy poolConcurrencyPolicy;
+         private PoolReusePolicy poolReusePolicy;
+         private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;
+ 
+         Builder() {
+         }
+ 
+         public Builder metricsRegistry(MetricRegistry metricRegistry) {
+             this.metricsRegistry = requireNonNull(metricRegistry, "metricRegistry");
+             return this;
+         }
+ 
+         public Builder name(final String name) {
+             this.name = name;
+             return this;
+         }
+ 
+         public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
+             this.schemePortResolver = schemePortResolver;
+             return this;
+         }
+ 
+         public Builder dnsResolver(DnsResolver dnsResolver) {
+             this.dnsResolver = dnsResolver;
+             return this;
+         }
+ 
+         public Builder timeToLive(TimeValue timeToLive) {
+             this.timeToLive = timeToLive;
+             return this;
+         }
+ 
+         public Builder tlsStrategyLookup(Lookup<TlsStrategy> tlsStrategyLookup) {
+             this.tlsStrategyLookup = tlsStrategyLookup;
+             return this;
+         }
+ 
+         public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
+             this.poolConcurrencyPolicy = poolConcurrencyPolicy;
+             return this;
+         }
+ 
+         public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
+             this.poolReusePolicy = poolReusePolicy;
+             return this;
+         }
+ 
+         public InstrumentedAsyncClientConnectionManager build() {
+             return new InstrumentedAsyncClientConnectionManager(
+                     metricsRegistry,
+                     name,
+                     tlsStrategyLookup,
+                     poolConcurrencyPolicy,
+                     poolReusePolicy,
+                     timeToLive,
+                     schemePortResolver,
+                     dnsResolver);
+         }
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-4.html new file mode 100644 index 0000000000..4443501674 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-4.html @@ -0,0 +1,229 @@ + + + + + + + + Coverage Report > InstrumentedAsyncExecChainHandler + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedAsyncExecChainHandler (com.codahale.metrics.httpclient5)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedAsyncExecChainHandler + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
InstrumentedAsyncExecChainHandler$InstrumentedAsyncExecCallback + + 85.7% + + + (6/7) + + + + 93.3% + + + (14/15) + +
Total + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient5;
+ 
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import org.apache.hc.client5.http.async.AsyncExecCallback;
+ import org.apache.hc.client5.http.async.AsyncExecChain;
+ import org.apache.hc.client5.http.async.AsyncExecChainHandler;
+ import org.apache.hc.core5.http.EntityDetails;
+ import org.apache.hc.core5.http.HttpException;
+ import org.apache.hc.core5.http.HttpRequest;
+ import org.apache.hc.core5.http.HttpResponse;
+ import org.apache.hc.core5.http.nio.AsyncDataConsumer;
+ import org.apache.hc.core5.http.nio.AsyncEntityProducer;
+ 
+ import java.io.IOException;
+ 
+ import static java.util.Objects.requireNonNull;
+ 
+ class InstrumentedAsyncExecChainHandler implements AsyncExecChainHandler {
+     private final MetricRegistry registry;
+     private final HttpClientMetricNameStrategy metricNameStrategy;
+     private final String name;
+ 
+     public InstrumentedAsyncExecChainHandler(MetricRegistry registry, HttpClientMetricNameStrategy metricNameStrategy) {
+         this(registry, metricNameStrategy, null);
+     }
+ 
+     public InstrumentedAsyncExecChainHandler(MetricRegistry registry,
+                                              HttpClientMetricNameStrategy metricNameStrategy,
+                                              String name) {
+         this.registry = requireNonNull(registry, "registry");
+         this.metricNameStrategy = requireNonNull(metricNameStrategy, "metricNameStrategy");
+         this.name = name;
+     }
+ 
+     @Override
+     public void execute(HttpRequest request,
+                         AsyncEntityProducer entityProducer,
+                         AsyncExecChain.Scope scope,
+                         AsyncExecChain chain,
+                         AsyncExecCallback asyncExecCallback) throws HttpException, IOException {
+         final InstrumentedAsyncExecCallback instrumentedAsyncExecCallback =
+                 new InstrumentedAsyncExecCallback(registry, metricNameStrategy, name, asyncExecCallback, request);
+         chain.proceed(request, entityProducer, scope, instrumentedAsyncExecCallback);
+ 
+     }
+ 
+     final static class InstrumentedAsyncExecCallback implements AsyncExecCallback {
+         private final MetricRegistry registry;
+         private final HttpClientMetricNameStrategy metricNameStrategy;
+         private final String name;
+         private final AsyncExecCallback delegate;
+         private final Timer.Context timerContext;
+ 
+         public InstrumentedAsyncExecCallback(MetricRegistry registry,
+                                              HttpClientMetricNameStrategy metricNameStrategy,
+                                              String name,
+                                              AsyncExecCallback delegate,
+                                              HttpRequest request) {
+             this.registry = registry;
+             this.metricNameStrategy = metricNameStrategy;
+             this.name = name;
+             this.delegate = delegate;
+             this.timerContext = timer(request).time();
+         }
+ 
+         @Override
+         public AsyncDataConsumer handleResponse(HttpResponse response, EntityDetails entityDetails) throws HttpException, IOException {
+             return delegate.handleResponse(response, entityDetails);
+         }
+ 
+         @Override
+         public void handleInformationResponse(HttpResponse response) throws HttpException, IOException {
+             delegate.handleInformationResponse(response);
+         }
+ 
+         @Override
+         public void completed() {
+             delegate.completed();
+             timerContext.stop();
+         }
+ 
+         @Override
+         public void failed(Exception cause) {
+             delegate.failed(cause);
+             meter(cause).mark();
+             timerContext.stop();
+         }
+ 
+         private Timer timer(HttpRequest request) {
+             return registry.timer(metricNameStrategy.getNameFor(name, request));
+         }
+ 
+         private Meter meter(Exception e) {
+             return registry.meter(metricNameStrategy.getNameFor(name, e));
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-5.html new file mode 100644 index 0000000000..1836817ec9 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-5.html @@ -0,0 +1,147 @@ + + + + + + + + Coverage Report > InstrumentedHttpAsyncClients + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpAsyncClients (com.codahale.metrics.httpclient5)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient5;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.apache.hc.client5.http.impl.ChainElement;
+ import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
+ import org.apache.hc.client5.http.impl.async.HttpAsyncClientBuilder;
+ import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
+ 
+ import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
+ 
+ public class InstrumentedHttpAsyncClients {
+     private InstrumentedHttpAsyncClients() {
+         super();
+     }
+ 
+     public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry) {
+         return createDefault(metricRegistry, METHOD_ONLY);
+     }
+ 
+     public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry,
+                                                          HttpClientMetricNameStrategy metricNameStrategy) {
+         return custom(metricRegistry, metricNameStrategy).build();
+     }
+ 
+     public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry) {
+         return custom(metricRegistry, METHOD_ONLY);
+     }
+ 
+     public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
+                                                 HttpClientMetricNameStrategy metricNameStrategy) {
+         return custom(metricRegistry, metricNameStrategy, InstrumentedAsyncClientConnectionManager.builder(metricRegistry).build());
+     }
+ 
+     public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
+                                                 HttpClientMetricNameStrategy metricNameStrategy,
+                                                 AsyncClientConnectionManager clientConnectionManager) {
+         return HttpAsyncClientBuilder.create()
+                 .setConnectionManager(clientConnectionManager)
+                 .addExecInterceptorBefore(ChainElement.CONNECT.name(), "dropwizard-metrics",
+                         new InstrumentedAsyncExecChainHandler(metricRegistry, metricNameStrategy));
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-6.html new file mode 100644 index 0000000000..bc88b97f74 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-6.html @@ -0,0 +1,308 @@ + + + + + + + + Coverage Report > InstrumentedHttpClientConnectionManager + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient5)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedHttpClientConnectionManager + + 100% + + + (10/10) + + + + 100% + + + (23/23) + +
InstrumentedHttpClientConnectionManager$Builder + + 33.3% + + + (4/12) + + + + 38.5% + + + (10/26) + +
Total + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient5;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.apache.hc.client5.http.DnsResolver;
+ import org.apache.hc.client5.http.SchemePortResolver;
+ import org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator;
+ import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
+ import org.apache.hc.client5.http.io.HttpClientConnectionManager;
+ import org.apache.hc.client5.http.io.HttpClientConnectionOperator;
+ import org.apache.hc.client5.http.io.ManagedHttpClientConnection;
+ import org.apache.hc.client5.http.socket.ConnectionSocketFactory;
+ import org.apache.hc.client5.http.socket.PlainConnectionSocketFactory;
+ import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
+ import org.apache.hc.core5.http.URIScheme;
+ import org.apache.hc.core5.http.config.Registry;
+ import org.apache.hc.core5.http.config.RegistryBuilder;
+ import org.apache.hc.core5.http.io.HttpConnectionFactory;
+ import org.apache.hc.core5.io.CloseMode;
+ import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
+ import org.apache.hc.core5.pool.PoolReusePolicy;
+ import org.apache.hc.core5.util.TimeValue;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static java.util.Objects.requireNonNull;
+ 
+ /**
+  * A {@link HttpClientConnectionManager} which monitors the number of open connections.
+  */
+ public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
+     private static final String METRICS_PREFIX = HttpClientConnectionManager.class.getName();
+ 
+     protected static Registry<ConnectionSocketFactory> getDefaultRegistry() {
+         return RegistryBuilder.<ConnectionSocketFactory>create()
+                 .register(URIScheme.HTTP.id, PlainConnectionSocketFactory.getSocketFactory())
+                 .register(URIScheme.HTTPS.id, SSLConnectionSocketFactory.getSocketFactory())
+                 .build();
+     }
+ 
+     private final MetricRegistry metricsRegistry;
+     private final String name;
+ 
+     InstrumentedHttpClientConnectionManager(final MetricRegistry metricRegistry,
+                                             final String name,
+                                             final HttpClientConnectionOperator httpClientConnectionOperator,
+                                             final PoolConcurrencyPolicy poolConcurrencyPolicy,
+                                             final PoolReusePolicy poolReusePolicy,
+                                             final TimeValue timeToLive,
+                                             final HttpConnectionFactory<ManagedHttpClientConnection> connFactory) {
+ 
+         super(httpClientConnectionOperator, poolConcurrencyPolicy, poolReusePolicy, timeToLive, connFactory);
+         this.metricsRegistry = requireNonNull(metricRegistry, "metricRegistry");
+         this.name = name;
+ 
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(METRICS_PREFIX, name, "available-connections"),
+                 () -> {
+                     return getTotalStats().getAvailable();
+                 });
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(METRICS_PREFIX, name, "leased-connections"),
+                 () -> getTotalStats().getLeased());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(METRICS_PREFIX, name, "max-connections"),
+                 () -> getTotalStats().getMax()
+         );
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(METRICS_PREFIX, name, "pending-connections"),
+                 () -> getTotalStats().getPending());
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void close() {
+         close(CloseMode.GRACEFUL);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void close(CloseMode closeMode) {
+         super.close(closeMode);
+         metricsRegistry.remove(name(METRICS_PREFIX, name, "available-connections"));
+         metricsRegistry.remove(name(METRICS_PREFIX, name, "leased-connections"));
+         metricsRegistry.remove(name(METRICS_PREFIX, name, "max-connections"));
+         metricsRegistry.remove(name(METRICS_PREFIX, name, "pending-connections"));
+     }
+ 
+     public static Builder builder(MetricRegistry metricsRegistry) {
+         return new Builder().metricsRegistry(metricsRegistry);
+     }
+ 
+     public static class Builder {
+         private MetricRegistry metricsRegistry;
+         private String name;
+         private HttpClientConnectionOperator httpClientConnectionOperator;
+         private Registry<ConnectionSocketFactory> socketFactoryRegistry = getDefaultRegistry();
+         private SchemePortResolver schemePortResolver;
+         private DnsResolver dnsResolver;
+         private PoolConcurrencyPolicy poolConcurrencyPolicy;
+         private PoolReusePolicy poolReusePolicy;
+         private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;
+         private HttpConnectionFactory<ManagedHttpClientConnection> connFactory;
+ 
+         Builder() {
+         }
+ 
+         public Builder metricsRegistry(MetricRegistry metricRegistry) {
+             this.metricsRegistry = requireNonNull(metricRegistry, "metricRegistry");
+             return this;
+         }
+ 
+         public Builder name(final String name) {
+             this.name = name;
+             return this;
+         }
+ 
+         public Builder socketFactoryRegistry(Registry<ConnectionSocketFactory> socketFactoryRegistry) {
+             this.socketFactoryRegistry = requireNonNull(socketFactoryRegistry, "socketFactoryRegistry");
+             return this;
+         }
+ 
+         public Builder connFactory(HttpConnectionFactory<ManagedHttpClientConnection> connFactory) {
+             this.connFactory = connFactory;
+             return this;
+         }
+ 
+         public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
+             this.schemePortResolver = schemePortResolver;
+             return this;
+         }
+ 
+         public Builder dnsResolver(DnsResolver dnsResolver) {
+             this.dnsResolver = dnsResolver;
+             return this;
+         }
+ 
+         public Builder timeToLive(TimeValue timeToLive) {
+             this.timeToLive = timeToLive;
+             return this;
+         }
+ 
+         public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
+             this.httpClientConnectionOperator = httpClientConnectionOperator;
+             return this;
+         }
+ 
+         public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
+             this.poolConcurrencyPolicy = poolConcurrencyPolicy;
+             return this;
+         }
+ 
+         public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
+             this.poolReusePolicy = poolReusePolicy;
+             return this;
+         }
+ 
+         public InstrumentedHttpClientConnectionManager build() {
+             if (httpClientConnectionOperator == null) {
+                 httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(
+                         socketFactoryRegistry,
+                         schemePortResolver,
+                         dnsResolver);
+             }
+ 
+             return new InstrumentedHttpClientConnectionManager(
+                     metricsRegistry,
+                     name,
+                     httpClientConnectionOperator,
+                     poolConcurrencyPolicy,
+                     poolReusePolicy,
+                     timeToLive,
+                     connFactory);
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-7.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-7.html new file mode 100644 index 0000000000..cb7f93e804 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-7.html @@ -0,0 +1,138 @@ + + + + + + + + Coverage Report > InstrumentedHttpClients + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient5)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient5;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
+ import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
+ 
+ import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
+ 
+ public class InstrumentedHttpClients {
+     private InstrumentedHttpClients() {
+         super();
+     }
+ 
+     public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
+         return createDefault(metricRegistry, METHOD_ONLY);
+     }
+ 
+     public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
+                                                     HttpClientMetricNameStrategy metricNameStrategy) {
+         return custom(metricRegistry, metricNameStrategy).build();
+     }
+ 
+     public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
+         return custom(metricRegistry, METHOD_ONLY);
+     }
+ 
+     public static HttpClientBuilder custom(MetricRegistry metricRegistry,
+                                            HttpClientMetricNameStrategy metricNameStrategy) {
+         return HttpClientBuilder.create()
+                 .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))
+                 .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-8.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-8.html new file mode 100644 index 0000000000..a5b617bde0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-8.html @@ -0,0 +1,182 @@ + + + + + + + + Coverage Report > InstrumentedHttpRequestExecutor + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient5)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient5;
+ 
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import org.apache.hc.core5.http.ClassicHttpRequest;
+ import org.apache.hc.core5.http.ClassicHttpResponse;
+ import org.apache.hc.core5.http.ConnectionReuseStrategy;
+ import org.apache.hc.core5.http.HttpException;
+ import org.apache.hc.core5.http.HttpRequest;
+ import org.apache.hc.core5.http.impl.Http1StreamListener;
+ import org.apache.hc.core5.http.impl.io.HttpRequestExecutor;
+ import org.apache.hc.core5.http.io.HttpClientConnection;
+ import org.apache.hc.core5.http.io.HttpResponseInformationCallback;
+ import org.apache.hc.core5.http.protocol.HttpContext;
+ import org.apache.hc.core5.util.Timeout;
+ 
+ import java.io.IOException;
+ 
+ public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
+     private final MetricRegistry registry;
+     private final HttpClientMetricNameStrategy metricNameStrategy;
+     private final String name;
+ 
+     public InstrumentedHttpRequestExecutor(MetricRegistry registry,
+                                            HttpClientMetricNameStrategy metricNameStrategy) {
+         this(registry, metricNameStrategy, null);
+     }
+ 
+     public InstrumentedHttpRequestExecutor(MetricRegistry registry,
+                                            HttpClientMetricNameStrategy metricNameStrategy,
+                                            String name) {
+         this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);
+     }
+ 
+     public InstrumentedHttpRequestExecutor(MetricRegistry registry,
+                                            HttpClientMetricNameStrategy metricNameStrategy,
+                                            String name,
+                                            Timeout waitForContinue) {
+         this(registry, metricNameStrategy, name, waitForContinue, null, null);
+     }
+ 
+     public InstrumentedHttpRequestExecutor(MetricRegistry registry,
+                                            HttpClientMetricNameStrategy metricNameStrategy,
+                                            String name,
+                                            Timeout waitForContinue,
+                                            ConnectionReuseStrategy connReuseStrategy,
+                                            Http1StreamListener streamListener) {
+         super(waitForContinue, connReuseStrategy, streamListener);
+         this.registry = registry;
+         this.name = name;
+         this.metricNameStrategy = metricNameStrategy;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public ClassicHttpResponse execute(ClassicHttpRequest request, HttpClientConnection conn, HttpResponseInformationCallback informationCallback, HttpContext context) throws IOException, HttpException {
+         final Timer.Context timerContext = timer(request).time();
+         try {
+             return super.execute(request, conn, informationCallback, context);
+         } catch (HttpException | IOException e) {
+             meter(e).mark();
+             throw e;
+         } finally {
+             timerContext.stop();
+         }
+     }
+ 
+     private Timer timer(HttpRequest request) {
+         return registry.timer(metricNameStrategy.getNameFor(name, request));
+     }
+ 
+     private Meter meter(Exception e) {
+         return registry.meter(metricNameStrategy.getNameFor(name, e));
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index.html new file mode 100644 index 0000000000..cb40098c84 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-e/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..561b2511f5 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..8db60cfd17 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..6ddc470915 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..12a39cb66d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..bba1821f6d --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..9df4827829 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..b8ce349201 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..41e555da35 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..208477debf --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/sources/source-1.html new file mode 100644 index 0000000000..570c5d4299 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-e/sources/source-1.html @@ -0,0 +1,189 @@ + + + + + + + + Coverage Report > JCacheGaugeSet + + + + + + +
+ + +

Coverage Summary for Class: JCacheGaugeSet (com.codahale.metrics.jcache)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + +
+ package com.codahale.metrics.jcache;
+ 
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import com.codahale.metrics.jvm.JmxAttributeGauge;
+ import com.codahale.metrics.Metric;
+ import com.codahale.metrics.MetricSet;
+ 
+ import java.lang.management.ManagementFactory;
+ import java.lang.reflect.Method;
+ import java.util.ArrayList;
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.List;
+ import java.util.Locale;
+ import java.util.Map;
+ import java.util.Set;
+ 
+ import javax.cache.management.CacheStatisticsMXBean;
+ import javax.management.MalformedObjectNameException;
+ import javax.management.ObjectInstance;
+ import javax.management.ObjectName;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * Gauge set retrieving JCache JMX attributes
+  *
+  * @author <a href="mailto:henri.tremblay@softwareag.com">Henri Tremblay</a>
+  * @author <a href="mailto:anthony.dahanne@softwareag.com">Anthony Dahanne</a>
+  */
+ public class JCacheGaugeSet implements MetricSet {
+ 
+     private static final String M_BEAN_COORDINATES = "javax.cache:type=CacheStatistics,CacheManager=*,Cache=*";
+ 
+     private static final Logger LOGGER = LoggerFactory.getLogger(JCacheGaugeSet.class);
+ 
+     @Override
+     public Map<String, Metric> getMetrics() {
+         Set<ObjectInstance> cacheBeans = getCacheBeans();
+         List<String> availableStatsNames = retrieveStatsNames();
+ 
+         Map<String, Metric> gauges = new HashMap<>(cacheBeans.size() * availableStatsNames.size());
+ 
+         for (ObjectInstance cacheBean : cacheBeans) {
+             ObjectName objectName = cacheBean.getObjectName();
+             String cacheName = objectName.getKeyProperty("Cache");
+ 
+             for (String statsName : availableStatsNames) {
+                 JmxAttributeGauge jmxAttributeGauge = new JmxAttributeGauge(objectName, statsName);
+                 gauges.put(name(cacheName, toSpinalCase(statsName)), jmxAttributeGauge);
+             }
+         }
+ 
+         return Collections.unmodifiableMap(gauges);
+     }
+ 
+     private Set<ObjectInstance> getCacheBeans() {
+         try {
+             return ManagementFactory.getPlatformMBeanServer().queryMBeans(ObjectName.getInstance(M_BEAN_COORDINATES), null);
+         } catch (MalformedObjectNameException e) {
+             LOGGER.error("Unable to retrieve {}. Are JCache statistics enabled?", M_BEAN_COORDINATES);
+             throw new RuntimeException(e);
+         }
+     }
+ 
+     private List<String> retrieveStatsNames() {
+         Method[] methods = CacheStatisticsMXBean.class.getDeclaredMethods();
+         List<String> availableStatsNames = new ArrayList<>(methods.length);
+ 
+         for (Method method : methods) {
+             String methodName = method.getName();
+             if (methodName.startsWith("get")) {
+                 availableStatsNames.add(methodName.substring(3));
+             }
+         }
+         return availableStatsNames;
+     }
+ 
+     private static String toSpinalCase(String camelCase) {
+         return camelCase.replaceAll("(.)(\\p{Upper})", "$1-$2").toLowerCase(Locale.US);
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index.html new file mode 100644 index 0000000000..eb94cafaf0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-f/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..b808eecc1a --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..cd46847176 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..3aea1dc115 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..055a0d70d0 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..54b48eb111 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..6ea95a0e63 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..c0d050d3c4 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..191b20a8c7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..fcb89e0eb7 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/sources/source-1.html new file mode 100644 index 0000000000..0892dda2a8 --- /dev/null +++ b/metrics-complete-branch-report-initial-htmlReport/ns-f/sources/source-1.html @@ -0,0 +1,143 @@ + + + + + + + + Coverage Report > InstrumentedTimingCollector + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.jdbi.strategies.SmartNameStrategy;
+ import com.codahale.metrics.jdbi.strategies.StatementNameStrategy;
+ import org.skife.jdbi.v2.StatementContext;
+ import org.skife.jdbi.v2.TimingCollector;
+ 
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * A {@link TimingCollector} implementation for JDBI which uses the SQL objects' class names and
+  * method names for millisecond-precision timers.
+  */
+ public class InstrumentedTimingCollector implements TimingCollector {
+     private final MetricRegistry registry;
+     private final StatementNameStrategy statementNameStrategy;
+ 
+     public InstrumentedTimingCollector(MetricRegistry registry) {
+         this(registry, new SmartNameStrategy());
+     }
+ 
+     public InstrumentedTimingCollector(MetricRegistry registry,
+                                        StatementNameStrategy statementNameStrategy) {
+         this.registry = registry;
+         this.statementNameStrategy = statementNameStrategy;
+     }
+ 
+     @Override
+     public void collect(long elapsedTime, StatementContext ctx) {
+         final Timer timer = getTimer(ctx);
+         timer.update(elapsedTime, TimeUnit.NANOSECONDS);
+     }
+ 
+     private Timer getTimer(StatementContext ctx) {
+         return registry.timer(statementNameStrategy.getStatementName(ctx));
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/css/coverage.css b/metrics-complete-report-initial-htmlReport/css/coverage.css new file mode 100644 index 0000000000..cef776517f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/css/coverage.css @@ -0,0 +1,154 @@ +/* + * Copyright 2000-2021 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +* { + margin: 0; + padding: 0; +} + +body { + background-color: #fff; + font-family: helvetica neue, tahoma, arial, sans-serif; + font-size: 82%; + color: #151515; +} + +h1 { + margin: 0.5em 0; + color: #010101; + font-weight: normal; + font-size: 18px; +} + +h2 { + margin: 0.5em 0; + color: #010101; + font-weight: normal; + font-size: 16px; +} + +a { + color: #1564C2; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + +span.separator { + color: #9BA9BA; + padding-left: 5px; + padding-right: 5px; +} + +div.content { + width: 99%; +} + +table.coverageStats { + width: 100%; + border-collapse: collapse; +} + +table.overallStats { + width: 20%; +} + +table.coverageStats td, table.coverageStats th { + padding: 4px 2px; + border-bottom: 1px solid #ccc; +} + +table.coverageStats th { + background-color: #959BA4; + border: none; + font-weight: bold; + text-align: left; + color: #FFF; +} + +table.coverageStats th.coverageStat { + width: 15%; +} + +table.coverageStats th a { + color: #FFF; +} + +table.coverageStats th a:hover { + text-decoration: none; +} + +table.coverageStats th.sortedDesc a { + background: url(../img/arrowDown.gif) no-repeat 100% 2px; + padding-right: 20px; +} + +table.coverageStats th.sortedAsc a { + background: url(../img/arrowUp.gif) no-repeat 100% 2px; + padding-right: 20px; +} + +div.footer { + margin: 2em .5em; + font-size: 85%; + text-align: left; + line-height: 140%; +} + +code.sourceCode { + width: 100%; + border: 1px solid #ccc; + font: normal 12px 'Menlo', 'Bitstream Vera Sans Mono', 'Courier New', 'Courier', monospace; + white-space: pre; +} + +code.sourceCode b { + font-weight: normal; +} + +code.sourceCode span.number { + color: #151515; +} + +code.sourceCode .fc { + background-color: #cfc; +} + +code.sourceCode .pc { + background-color: #ffc; +} + +code.sourceCode .nc { + background-color: #fcc; +} + +.percent, .absValue { + font-size: 90%; +} + +.percent .green, .absValue .green { + color: #32cc32; +} + +.percent .red, .absValue .red { + color: #f00; +} + +.percent .totalDiff { + color: #3f3f3f; +} diff --git a/metrics-complete-report-initial-htmlReport/css/idea.min.css b/metrics-complete-report-initial-htmlReport/css/idea.min.css new file mode 100644 index 0000000000..a8d5292bd5 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/css/idea.min.css @@ -0,0 +1,118 @@ +/* + * Copyright 2000-2021 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/* +Intellij Idea-like styling (c) Vasily Polovnyov +*/ + +.hljs { + color: #000; + background: #fff; +} + +.hljs-subst, +.hljs-title { + font-weight: normal; + color: #000; +} + +.hljs-comment, +.hljs-quote { + color: #808080; + font-style: italic; +} + +.hljs-meta { + color: #808000; +} + +.hljs-tag { + background: #efefef; +} + +.hljs-section, +.hljs-name, +.hljs-literal, +.hljs-keyword, +.hljs-selector-tag, +.hljs-type, +.hljs-selector-id, +.hljs-selector-class { + font-weight: bold; + color: #000080; +} + +.hljs-attribute, +.hljs-number, +.hljs-regexp, +.hljs-link { + font-weight: bold; + color: #0000ff; +} + +.hljs-number, +.hljs-regexp, +.hljs-link { + font-weight: normal; +} + +.hljs-string { + color: #008000; + font-weight: bold; +} + +.hljs-symbol, +.hljs-bullet, +.hljs-formula { + color: #000; + background: #d0eded; + font-style: italic; +} + +.hljs-doctag { + text-decoration: underline; +} + +.hljs-variable, +.hljs-template-variable { + color: #660e7a; +} + +.hljs-addition { + background: #baeeba; +} + +.hljs-deletion { + background: #ffc8bd; +} + +.hljs-emphasis { + font-style: italic; +} + +.hljs-strong { + font-weight: bold; +} + +.hljs-ln-numbers { + display: block; + float: left; + width: 3em; + border-right: 1px solid #ccc; + font-style: normal; + text-align: right; + background-color: #eee; +} diff --git a/metrics-complete-report-initial-htmlReport/img/arrowDown.gif b/metrics-complete-report-initial-htmlReport/img/arrowDown.gif new file mode 100644 index 0000000000000000000000000000000000000000..a4ac9b4b0f5eee9fc82deb7f03d0cc7f197b01c7 GIT binary patch literal 89 zcmZ?wbhEHbv%yJ&P?))?G g5?!@7agD+*@rGjs@joUks8}}Ha%HfNHz$KN0Orjd82|tP literal 0 HcmV?d00001 diff --git a/metrics-complete-report-initial-htmlReport/img/arrowUp.gif b/metrics-complete-report-initial-htmlReport/img/arrowUp.gif new file mode 100644 index 0000000000000000000000000000000000000000..d488db0089f15409b83a6f39718384cac89ea3c9 GIT binary patch literal 91 zcmZ?wbhEHbv%nBa6?))=2 j#jeJ<$W6!S$=vG=3s*2Wu3C5I!M+a(XH6zEFjxZs9OxeQ literal 0 HcmV?d00001 diff --git a/metrics-complete-report-initial-htmlReport/index.html b/metrics-complete-report-initial-htmlReport/index.html new file mode 100644 index 0000000000..db746ecdca --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/index.html @@ -0,0 +1,1195 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
all classes + + 86.6% + + + (330/381) + + + + 72.5% + + + (1553/2142) + + + + 76% + + + (5218/6863) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+
+ + + + + + + diff --git a/metrics-complete-report-initial-htmlReport/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..b314390b24 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/index_SORT_BY_BLOCK.html @@ -0,0 +1,1195 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
all classes + + 86.6% + + + (330/381) + + + + 72.5% + + + (1553/2142) + + + + 76% + + + (5218/6863) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+
+ + + + + + + diff --git a/metrics-complete-report-initial-htmlReport/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..6db459fee4 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,1195 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
all classes + + 86.6% + + + (330/381) + + + + 72.5% + + + (1553/2142) + + + + 76% + + + (5218/6863) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
+
+ + + + + + + diff --git a/metrics-complete-report-initial-htmlReport/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..b884de26ce --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/index_SORT_BY_CLASS.html @@ -0,0 +1,1195 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
all classes + + 86.6% + + + (330/381) + + + + 72.5% + + + (1553/2142) + + + + 76% + + + (5218/6863) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+
+ + + + + + + diff --git a/metrics-complete-report-initial-htmlReport/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..3defd461fb --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,1195 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
all classes + + 86.6% + + + (330/381) + + + + 72.5% + + + (1553/2142) + + + + 76% + + + (5218/6863) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+
+ + + + + + + diff --git a/metrics-complete-report-initial-htmlReport/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..3dbc5f7744 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/index_SORT_BY_LINE.html @@ -0,0 +1,1195 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
all classes + + 86.6% + + + (330/381) + + + + 72.5% + + + (1553/2142) + + + + 76% + + + (5218/6863) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+
+ + + + + + + diff --git a/metrics-complete-report-initial-htmlReport/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..347baad3a4 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,1195 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
all classes + + 86.6% + + + (330/381) + + + + 72.5% + + + (1553/2142) + + + + 76% + + + (5218/6863) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+
+ + + + + + + diff --git a/metrics-complete-report-initial-htmlReport/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..f0935e85e4 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/index_SORT_BY_METHOD.html @@ -0,0 +1,1195 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
all classes + + 86.6% + + + (330/381) + + + + 72.5% + + + (1553/2142) + + + + 76% + + + (5218/6863) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+
+ + + + + + + diff --git a/metrics-complete-report-initial-htmlReport/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..48ba6bd9fa --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,1195 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
all classes + + 86.6% + + + (330/381) + + + + 72.5% + + + (1553/2142) + + + + 76% + + + (5218/6863) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+
+ + + + + + + diff --git a/metrics-complete-report-initial-htmlReport/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..d2ef3d8aba --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,1195 @@ + + + + + + + Coverage Report > Summary + + + + + + +
+ + +

Overall Coverage Summary

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
all classes + + 86.6% + + + (330/381) + + + + 72.5% + + + (1553/2142) + + + + 76% + + + (5218/6863) + +
+ +
+

Coverage Breakdown

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
+
+ + + + + + + diff --git a/metrics-complete-report-initial-htmlReport/js/highlight.min.js b/metrics-complete-report-initial-htmlReport/js/highlight.min.js new file mode 100644 index 0000000000..e88731520e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/js/highlight.min.js @@ -0,0 +1,1388 @@ +/* + Highlight.js 10.7.2 (00233d63) + License: BSD-3-Clause + Copyright (c) 2006-2021, Ivan Sagalaev + + BSD 3-Clause License + + Copyright (c) 2006-2021, Ivan Sagalaev. + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + * Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +var hljs=function(){"use strict";function e(t){ +return t instanceof Map?t.clear=t.delete=t.set=()=>{ +throw Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=()=>{ +throw Error("set is read-only") +}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach((n=>{var i=t[n] +;"object"!=typeof i||Object.isFrozen(i)||e(i)})),t}var t=e,n=e;t.default=n +;class i{constructor(e){ +void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1} +ignoreMatch(){this.isMatchIgnored=!0}}function s(e){ +return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'") +}function a(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t] +;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const r=e=>!!e.kind +;class l{constructor(e,t){ +this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){ +this.buffer+=s(e)}openNode(e){if(!r(e))return;let t=e.kind +;e.sublanguage||(t=`${this.classPrefix}${t}`),this.span(t)}closeNode(e){ +r(e)&&(this.buffer+="")}value(){return this.buffer}span(e){ +this.buffer+=``}}class o{constructor(){this.rootNode={ +children:[]},this.stack=[this.rootNode]}get top(){ +return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){ +this.top.children.push(e)}openNode(e){const t={kind:e,children:[]} +;this.add(t),this.stack.push(t)}closeNode(){ +if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){ +for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} +walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){ +return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t), +t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){ +"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{ +o._collapse(e)})))}}class c extends o{constructor(e){super(),this.options=e} +addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())} +addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root +;n.kind=t,n.sublanguage=!0,this.add(n)}toHTML(){ +return new l(this,this.options).value()}finalize(){return!0}}function g(e){ +return e?"string"==typeof e?e:e.source:null} +const u=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,h="[a-zA-Z]\\w*",d="[a-zA-Z_]\\w*",f="\\b\\d+(\\.\\d+)?",p="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",m="\\b(0b[01]+)",b={ +begin:"\\\\[\\s\\S]",relevance:0},E={className:"string",begin:"'",end:"'", +illegal:"\\n",contains:[b]},x={className:"string",begin:'"',end:'"', +illegal:"\\n",contains:[b]},v={ +begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ +},w=(e,t,n={})=>{const i=a({className:"comment",begin:e,end:t,contains:[]},n) +;return i.contains.push(v),i.contains.push({className:"doctag", +begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),i +},y=w("//","$"),N=w("/\\*","\\*/"),R=w("#","$");var _=Object.freeze({ +__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:h,UNDERSCORE_IDENT_RE:d, +NUMBER_RE:f,C_NUMBER_RE:p,BINARY_NUMBER_RE:m, +RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", +SHEBANG:(e={})=>{const t=/^#![ ]*\// +;return e.binary&&(e.begin=((...e)=>e.map((e=>g(e))).join(""))(t,/.*\b/,e.binary,/\b.*/)), +a({className:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{ +0!==e.index&&t.ignoreMatch()}},e)},BACKSLASH_ESCAPE:b,APOS_STRING_MODE:E, +QUOTE_STRING_MODE:x,PHRASAL_WORDS_MODE:v,COMMENT:w,C_LINE_COMMENT_MODE:y, +C_BLOCK_COMMENT_MODE:N,HASH_COMMENT_MODE:R,NUMBER_MODE:{className:"number", +begin:f,relevance:0},C_NUMBER_MODE:{className:"number",begin:p,relevance:0}, +BINARY_NUMBER_MODE:{className:"number",begin:m,relevance:0},CSS_NUMBER_MODE:{ +className:"number", +begin:f+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", +relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp", +begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[b,{begin:/\[/,end:/\]/, +relevance:0,contains:[b]}]}]},TITLE_MODE:{className:"title",begin:h,relevance:0 +},UNDERSCORE_TITLE_MODE:{className:"title",begin:d,relevance:0},METHOD_GUARD:{ +begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{ +"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{ +t.data._beginMatch!==e[1]&&t.ignoreMatch()}})});function k(e,t){ +"."===e.input[e.index-1]&&t.ignoreMatch()}function M(e,t){ +t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)", +e.__beforeBegin=k,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords, +void 0===e.relevance&&(e.relevance=0))}function O(e,t){ +Array.isArray(e.illegal)&&(e.illegal=((...e)=>"("+e.map((e=>g(e))).join("|")+")")(...e.illegal)) +}function A(e,t){if(e.match){ +if(e.begin||e.end)throw Error("begin & end are not supported with match") +;e.begin=e.match,delete e.match}}function L(e,t){ +void 0===e.relevance&&(e.relevance=1)} +const I=["of","and","for","in","not","or","if","then","parent","list","value"] +;function j(e,t,n="keyword"){const i={} +;return"string"==typeof e?s(n,e.split(" ")):Array.isArray(e)?s(n,e):Object.keys(e).forEach((n=>{ +Object.assign(i,j(e[n],t,n))})),i;function s(e,n){ +t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|") +;i[n[0]]=[e,B(n[0],n[1])]}))}}function B(e,t){ +return t?Number(t):(e=>I.includes(e.toLowerCase()))(e)?0:1} +function T(e,{plugins:t}){function n(t,n){ +return RegExp(g(t),"m"+(e.case_insensitive?"i":"")+(n?"g":""))}class i{ +constructor(){ +this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} +addRule(e,t){ +t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]), +this.matchAt+=(e=>RegExp(e.toString()+"|").exec("").length-1)(e)+1}compile(){ +0===this.regexes.length&&(this.exec=()=>null) +;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(((e,t="|")=>{let n=0 +;return e.map((e=>{n+=1;const t=n;let i=g(e),s="";for(;i.length>0;){ +const e=u.exec(i);if(!e){s+=i;break} +s+=i.substring(0,e.index),i=i.substring(e.index+e[0].length), +"\\"===e[0][0]&&e[1]?s+="\\"+(Number(e[1])+t):(s+=e[0],"("===e[0]&&n++)}return s +})).map((e=>`(${e})`)).join(t)})(e),!0),this.lastIndex=0}exec(e){ +this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e) +;if(!t)return null +;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n] +;return t.splice(0,n),Object.assign(t,i)}}class s{constructor(){ +this.rules=[],this.multiRegexes=[], +this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){ +if(this.multiRegexes[e])return this.multiRegexes[e];const t=new i +;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))), +t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){ +return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){ +this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){ +const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex +;let n=t.exec(e) +;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{ +const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)} +return n&&(this.regexIndex+=n.position+1, +this.regexIndex===this.count&&this.considerAll()),n}} +if(e.compilerExtensions||(e.compilerExtensions=[]), +e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.") +;return e.classNameAliases=a(e.classNameAliases||{}),function t(i,r){const l=i +;if(i.isCompiled)return l +;[A].forEach((e=>e(i,r))),e.compilerExtensions.forEach((e=>e(i,r))), +i.__beforeBegin=null,[M,O,L].forEach((e=>e(i,r))),i.isCompiled=!0;let o=null +;if("object"==typeof i.keywords&&(o=i.keywords.$pattern, +delete i.keywords.$pattern), +i.keywords&&(i.keywords=j(i.keywords,e.case_insensitive)), +i.lexemes&&o)throw Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ") +;return o=o||i.lexemes||/\w+/, +l.keywordPatternRe=n(o,!0),r&&(i.begin||(i.begin=/\B|\b/), +l.beginRe=n(i.begin),i.endSameAsBegin&&(i.end=i.begin), +i.end||i.endsWithParent||(i.end=/\B|\b/), +i.end&&(l.endRe=n(i.end)),l.terminatorEnd=g(i.end)||"", +i.endsWithParent&&r.terminatorEnd&&(l.terminatorEnd+=(i.end?"|":"")+r.terminatorEnd)), +i.illegal&&(l.illegalRe=n(i.illegal)), +i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>a(e,{ +variants:null},t)))),e.cachedVariants?e.cachedVariants:S(e)?a(e,{ +starts:e.starts?a(e.starts):null +}):Object.isFrozen(e)?a(e):e))("self"===e?i:e)))),i.contains.forEach((e=>{t(e,l) +})),i.starts&&t(i.starts,r),l.matcher=(e=>{const t=new s +;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin" +}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end" +}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(l),l}(e)}function S(e){ +return!!e&&(e.endsWithParent||S(e.starts))}function P(e){const t={ +props:["language","code","autodetect"],data:()=>({detectedLanguage:"", +unknownLanguage:!1}),computed:{className(){ +return this.unknownLanguage?"":"hljs "+this.detectedLanguage},highlighted(){ +if(!this.autoDetect&&!e.getLanguage(this.language))return console.warn(`The language "${this.language}" you specified could not be found.`), +this.unknownLanguage=!0,s(this.code);let t={} +;return this.autoDetect?(t=e.highlightAuto(this.code), +this.detectedLanguage=t.language):(t=e.highlight(this.language,this.code,this.ignoreIllegals), +this.detectedLanguage=this.language),t.value},autoDetect(){ +return!(this.language&&(e=this.autodetect,!e&&""!==e));var e}, +ignoreIllegals:()=>!0},render(e){return e("pre",{},[e("code",{ +class:this.className,domProps:{innerHTML:this.highlighted}})])}};return{ +Component:t,VuePlugin:{install(e){e.component("highlightjs",t)}}}}const D={ +"after:highlightElement":({el:e,result:t,text:n})=>{const i=H(e) +;if(!i.length)return;const a=document.createElement("div") +;a.innerHTML=t.value,t.value=((e,t,n)=>{let i=0,a="";const r=[];function l(){ +return e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset"}function c(e){ +a+=""}function g(e){("start"===e.event?o:c)(e.node)} +for(;e.length||t.length;){let t=l() +;if(a+=s(n.substring(i,t[0].offset)),i=t[0].offset,t===e){r.reverse().forEach(c) +;do{g(t.splice(0,1)[0]),t=l()}while(t===e&&t.length&&t[0].offset===i) +;r.reverse().forEach(o) +}else"start"===t[0].event?r.push(t[0].node):r.pop(),g(t.splice(0,1)[0])} +return a+s(n.substr(i))})(i,H(a),n)}};function C(e){ +return e.nodeName.toLowerCase()}function H(e){const t=[];return function e(n,i){ +for(let s=n.firstChild;s;s=s.nextSibling)3===s.nodeType?i+=s.nodeValue.length:1===s.nodeType&&(t.push({ +event:"start",offset:i,node:s}),i=e(s,i),C(s).match(/br|hr|img|input/)||t.push({ +event:"stop",offset:i,node:s}));return i}(e,0),t}const $={},U=e=>{ +console.error(e)},z=(e,...t)=>{console.log("WARN: "+e,...t)},K=(e,t)=>{ +$[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),$[`${e}/${t}`]=!0) +},G=s,V=a,W=Symbol("nomatch");return(e=>{ +const n=Object.create(null),s=Object.create(null),a=[];let r=!0 +;const l=/(^(<[^>]+>|\t|)+|\n)/gm,o="Could not find the language '{}', did you forget to load/include a language module?",g={ +disableAutodetect:!0,name:"Plain text",contains:[]};let u={ +noHighlightRe:/^(no-?highlight)$/i, +languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-", +tabReplace:null,useBR:!1,languages:null,__emitter:c};function h(e){ +return u.noHighlightRe.test(e)}function d(e,t,n,i){let s="",a="" +;"object"==typeof t?(s=e, +n=t.ignoreIllegals,a=t.language,i=void 0):(K("10.7.0","highlight(lang, code, ...args) has been deprecated."), +K("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"), +a=e,s=t);const r={code:s,language:a};M("before:highlight",r) +;const l=r.result?r.result:f(r.language,r.code,n,i) +;return l.code=r.code,M("after:highlight",l),l}function f(e,t,s,l){ +function c(e,t){const n=v.case_insensitive?t[0].toLowerCase():t[0] +;return Object.prototype.hasOwnProperty.call(e.keywords,n)&&e.keywords[n]} +function g(){null!=R.subLanguage?(()=>{if(""===M)return;let e=null +;if("string"==typeof R.subLanguage){ +if(!n[R.subLanguage])return void k.addText(M) +;e=f(R.subLanguage,M,!0,_[R.subLanguage]),_[R.subLanguage]=e.top +}else e=p(M,R.subLanguage.length?R.subLanguage:null) +;R.relevance>0&&(O+=e.relevance),k.addSublanguage(e.emitter,e.language) +})():(()=>{if(!R.keywords)return void k.addText(M);let e=0 +;R.keywordPatternRe.lastIndex=0;let t=R.keywordPatternRe.exec(M),n="";for(;t;){ +n+=M.substring(e,t.index);const i=c(R,t);if(i){const[e,s]=i +;if(k.addText(n),n="",O+=s,e.startsWith("_"))n+=t[0];else{ +const n=v.classNameAliases[e]||e;k.addKeyword(t[0],n)}}else n+=t[0] +;e=R.keywordPatternRe.lastIndex,t=R.keywordPatternRe.exec(M)} +n+=M.substr(e),k.addText(n)})(),M=""}function h(e){ +return e.className&&k.openNode(v.classNameAliases[e.className]||e.className), +R=Object.create(e,{parent:{value:R}}),R}function d(e,t,n){let s=((e,t)=>{ +const n=e&&e.exec(t);return n&&0===n.index})(e.endRe,n);if(s){if(e["on:end"]){ +const n=new i(e);e["on:end"](t,n),n.isMatchIgnored&&(s=!1)}if(s){ +for(;e.endsParent&&e.parent;)e=e.parent;return e}} +if(e.endsWithParent)return d(e.parent,t,n)}function m(e){ +return 0===R.matcher.regexIndex?(M+=e[0],1):(I=!0,0)}function b(e){ +const n=e[0],i=t.substr(e.index),s=d(R,e,i);if(!s)return W;const a=R +;a.skip?M+=n:(a.returnEnd||a.excludeEnd||(M+=n),g(),a.excludeEnd&&(M=n));do{ +R.className&&k.closeNode(),R.skip||R.subLanguage||(O+=R.relevance),R=R.parent +}while(R!==s.parent) +;return s.starts&&(s.endSameAsBegin&&(s.starts.endRe=s.endRe), +h(s.starts)),a.returnEnd?0:n.length}let E={};function x(n,a){const l=a&&a[0] +;if(M+=n,null==l)return g(),0 +;if("begin"===E.type&&"end"===a.type&&E.index===a.index&&""===l){ +if(M+=t.slice(a.index,a.index+1),!r){const t=Error("0 width match regex") +;throw t.languageName=e,t.badRule=E.rule,t}return 1} +if(E=a,"begin"===a.type)return function(e){ +const t=e[0],n=e.rule,s=new i(n),a=[n.__beforeBegin,n["on:begin"]] +;for(const n of a)if(n&&(n(e,s),s.isMatchIgnored))return m(t) +;return n&&n.endSameAsBegin&&(n.endRe=RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")), +n.skip?M+=t:(n.excludeBegin&&(M+=t), +g(),n.returnBegin||n.excludeBegin||(M=t)),h(n),n.returnBegin?0:t.length}(a) +;if("illegal"===a.type&&!s){ +const e=Error('Illegal lexeme "'+l+'" for mode "'+(R.className||"")+'"') +;throw e.mode=R,e}if("end"===a.type){const e=b(a);if(e!==W)return e} +if("illegal"===a.type&&""===l)return 1 +;if(L>1e5&&L>3*a.index)throw Error("potential infinite loop, way more iterations than matches") +;return M+=l,l.length}const v=N(e) +;if(!v)throw U(o.replace("{}",e)),Error('Unknown language: "'+e+'"') +;const w=T(v,{plugins:a});let y="",R=l||w;const _={},k=new u.__emitter(u);(()=>{ +const e=[];for(let t=R;t!==v;t=t.parent)t.className&&e.unshift(t.className) +;e.forEach((e=>k.openNode(e)))})();let M="",O=0,A=0,L=0,I=!1;try{ +for(R.matcher.considerAll();;){ +L++,I?I=!1:R.matcher.considerAll(),R.matcher.lastIndex=A +;const e=R.matcher.exec(t);if(!e)break;const n=x(t.substring(A,e.index),e) +;A=e.index+n}return x(t.substr(A)),k.closeAllNodes(),k.finalize(),y=k.toHTML(),{ +relevance:Math.floor(O),value:y,language:e,illegal:!1,emitter:k,top:R}}catch(n){ +if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{ +msg:n.message,context:t.slice(A-100,A+100),mode:n.mode},sofar:y,relevance:0, +value:G(t),emitter:k};if(r)return{illegal:!1,relevance:0,value:G(t),emitter:k, +language:e,top:R,errorRaised:n};throw n}}function p(e,t){ +t=t||u.languages||Object.keys(n);const i=(e=>{const t={relevance:0, +emitter:new u.__emitter(u),value:G(e),illegal:!1,top:g} +;return t.emitter.addText(e),t})(e),s=t.filter(N).filter(k).map((t=>f(t,e,!1))) +;s.unshift(i);const a=s.sort(((e,t)=>{ +if(e.relevance!==t.relevance)return t.relevance-e.relevance +;if(e.language&&t.language){if(N(e.language).supersetOf===t.language)return 1 +;if(N(t.language).supersetOf===e.language)return-1}return 0})),[r,l]=a,o=r +;return o.second_best=l,o}const m={"before:highlightElement":({el:e})=>{ +u.useBR&&(e.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n")) +},"after:highlightElement":({result:e})=>{ +u.useBR&&(e.value=e.value.replace(/\n/g,"
"))}},b=/^(<[^>]+>|\t)+/gm,E={ +"after:highlightElement":({result:e})=>{ +u.tabReplace&&(e.value=e.value.replace(b,(e=>e.replace(/\t/g,u.tabReplace))))}} +;function x(e){let t=null;const n=(e=>{let t=e.className+" " +;t+=e.parentNode?e.parentNode.className:"";const n=u.languageDetectRe.exec(t) +;if(n){const t=N(n[1]) +;return t||(z(o.replace("{}",n[1])),z("Falling back to no-highlight mode for this block.",e)), +t?n[1]:"no-highlight"}return t.split(/\s+/).find((e=>h(e)||N(e)))})(e) +;if(h(n))return;M("before:highlightElement",{el:e,language:n}),t=e +;const i=t.textContent,a=n?d(i,{language:n,ignoreIllegals:!0}):p(i) +;M("after:highlightElement",{el:e,result:a,text:i +}),e.innerHTML=a.value,((e,t,n)=>{const i=t?s[t]:n +;e.classList.add("hljs"),i&&e.classList.add(i)})(e,n,a.language),e.result={ +language:a.language,re:a.relevance,relavance:a.relevance +},a.second_best&&(e.second_best={language:a.second_best.language, +re:a.second_best.relevance,relavance:a.second_best.relevance})}const v=()=>{ +v.called||(v.called=!0, +K("10.6.0","initHighlighting() is deprecated. Use highlightAll() instead."), +document.querySelectorAll("pre code").forEach(x))};let w=!1;function y(){ +"loading"!==document.readyState?document.querySelectorAll("pre code").forEach(x):w=!0 +}function N(e){return e=(e||"").toLowerCase(),n[e]||n[s[e]]} +function R(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{ +s[e.toLowerCase()]=t}))}function k(e){const t=N(e) +;return t&&!t.disableAutodetect}function M(e,t){const n=e;a.forEach((e=>{ +e[n]&&e[n](t)}))} +"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{ +w&&y()}),!1),Object.assign(e,{highlight:d,highlightAuto:p,highlightAll:y, +fixMarkup:e=>{ +return K("10.2.0","fixMarkup will be removed entirely in v11.0"),K("10.2.0","Please see https://github.com/highlightjs/highlight.js/issues/2534"), +t=e, +u.tabReplace||u.useBR?t.replace(l,(e=>"\n"===e?u.useBR?"
":e:u.tabReplace?e.replace(/\t/g,u.tabReplace):e)):t +;var t},highlightElement:x, +highlightBlock:e=>(K("10.7.0","highlightBlock will be removed entirely in v12.0"), +K("10.7.0","Please use highlightElement now."),x(e)),configure:e=>{ +e.useBR&&(K("10.3.0","'useBR' will be removed entirely in v11.0"), +K("10.3.0","Please see https://github.com/highlightjs/highlight.js/issues/2559")), +u=V(u,e)},initHighlighting:v,initHighlightingOnLoad:()=>{ +K("10.6.0","initHighlightingOnLoad() is deprecated. Use highlightAll() instead."), +w=!0},registerLanguage:(t,i)=>{let s=null;try{s=i(e)}catch(e){ +if(U("Language definition for '{}' could not be registered.".replace("{}",t)), +!r)throw e;U(e),s=g} +s.name||(s.name=t),n[t]=s,s.rawDefinition=i.bind(null,e),s.aliases&&R(s.aliases,{ +languageName:t})},unregisterLanguage:e=>{delete n[e] +;for(const t of Object.keys(s))s[t]===e&&delete s[t]}, +listLanguages:()=>Object.keys(n),getLanguage:N,registerAliases:R, +requireLanguage:e=>{ +K("10.4.0","requireLanguage will be removed entirely in v11."), +K("10.4.0","Please see https://github.com/highlightjs/highlight.js/pull/2844") +;const t=N(e);if(t)return t +;throw Error("The '{}' language is required, but not loaded.".replace("{}",e))}, +autoDetection:k,inherit:V,addPlugin:e=>{(e=>{ +e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{ +e["before:highlightBlock"](Object.assign({block:t.el},t)) +}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{ +e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),a.push(e)}, +vuePlugin:P(e).VuePlugin}),e.debugMode=()=>{r=!1},e.safeMode=()=>{r=!0 +},e.versionString="10.7.2";for(const e in _)"object"==typeof _[e]&&t(_[e]) +;return Object.assign(e,_),e.addPlugin(m),e.addPlugin(D),e.addPlugin(E),e})({}) +}();"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs); +hljs.registerLanguage("apache",(()=>{"use strict";return e=>{const n={ +className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/} +;return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0, +contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/, +contains:[n,{className:"number",begin:/:\d{1,5}/ +},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute", +begin:/\w+/,relevance:0,keywords:{ +nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername" +},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"}, +contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable", +begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}] +},n,{className:"number",begin:/\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}} +})()); +hljs.registerLanguage("bash",(()=>{"use strict";function e(...e){ +return e.map((e=>{return(s=e)?"string"==typeof s?s:s.source:null;var s +})).join("")}return s=>{const n={},t={begin:/\$\{/,end:/\}/,contains:["self",{ +begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{ +begin:e(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},t]});const a={ +className:"subst",begin:/\$\(/,end:/\)/,contains:[s.BACKSLASH_ESCAPE]},i={ +begin:/<<-?\s*(?=\w+)/,starts:{contains:[s.END_SAME_AS_BEGIN({begin:/(\w+)/, +end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/, +contains:[s.BACKSLASH_ESCAPE,n,a]};a.contains.push(c);const o={begin:/\$\(\(/, +end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},s.NUMBER_MODE,n] +},r=s.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 +}),l={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, +contains:[s.inherit(s.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{ +name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z._-]+\b/, +keyword:"if then else elif fi for while in do done case esac function", +literal:"true false", +built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp" +},contains:[r,s.SHEBANG(),l,o,s.HASH_COMMENT_MODE,i,c,{className:"",begin:/\\"/ +},{className:"string",begin:/'/,end:/'/},n]}}})()); +hljs.registerLanguage("c",(()=>{"use strict";function e(e){ +return((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(",e,")?") +}return t=>{const n=t.COMMENT("//","$",{contains:[{begin:/\\\n/}] +}),r="[a-zA-Z_]\\w*::",a="(decltype\\(auto\\)|"+e(r)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",i={ +className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string", +variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n", +contains:[t.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},t.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},t.inherit(s,{className:"meta-string"}),{ +className:"meta-string",begin:/<.*?>/},n,t.C_BLOCK_COMMENT_MODE]},l={ +className:"title",begin:e(r)+t.IDENT_RE,relevance:0 +},d=e(r)+t.IDENT_RE+"\\s*\\(",u={ +keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq", +built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary", +literal:"true false nullptr NULL"},m=[c,i,n,t.C_BLOCK_COMMENT_MODE,o,s],p={ +variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{ +beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:m.concat([{ +begin:/\(/,end:/\)/,keywords:u,contains:m.concat(["self"]),relevance:0}]), +relevance:0},_={className:"function",begin:"("+a+"[\\*&\\s]+)+"+d, +returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/, +contains:[{begin:"decltype\\(auto\\)",keywords:u,relevance:0},{begin:d, +returnBegin:!0,contains:[l],relevance:0},{className:"params",begin:/\(/, +end:/\)/,keywords:u,relevance:0,contains:[n,t.C_BLOCK_COMMENT_MODE,s,o,i,{ +begin:/\(/,end:/\)/,keywords:u,relevance:0, +contains:["self",n,t.C_BLOCK_COMMENT_MODE,s,o,i]}] +},i,n,t.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u, +disableAutodetect:!0,illegal:"",keywords:u,contains:["self",i]},{begin:t.IDENT_RE+"::",keywords:u},{ +className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/, +contains:[{beginKeywords:"final class struct"},t.TITLE_MODE]}]),exports:{ +preprocessor:c,strings:s,keywords:u}}}})()); +hljs.registerLanguage("coffeescript",(()=>{"use strict" +;const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]) +;return r=>{const t={ +keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((i=["var","const","let","function","static"], +e=>!i.includes(e))),literal:n.concat(["yes","no","on","off"]), +built_in:a.concat(["npm","print"])};var i;const s="[A-Za-z$_][0-9A-Za-z$_]*",o={ +className:"subst",begin:/#\{/,end:/\}/,keywords:t +},c=[r.BINARY_NUMBER_MODE,r.inherit(r.C_NUMBER_MODE,{starts:{end:"(\\s*/)?", +relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/, +contains:[r.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[r.BACKSLASH_ESCAPE] +},{begin:/"""/,end:/"""/,contains:[r.BACKSLASH_ESCAPE,o]},{begin:/"/,end:/"/, +contains:[r.BACKSLASH_ESCAPE,o]}]},{className:"regexp",variants:[{begin:"///", +end:"///",contains:[o,r.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)", +relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+s +},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{ +begin:"```",end:"```"},{begin:"`",end:"`"}]}];o.contains=c +;const l=r.inherit(r.TITLE_MODE,{begin:s}),d="(\\(.*\\)\\s*)?\\B[-=]>",g={ +className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/, +end:/\)/,keywords:t,contains:["self"].concat(c)}]};return{name:"CoffeeScript", +aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/, +contains:c.concat([r.COMMENT("###","###"),r.HASH_COMMENT_MODE,{ +className:"function",begin:"^\\s*"+s+"\\s*=\\s*"+d,end:"[-=]>",returnBegin:!0, +contains:[l,g]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function", +begin:d,end:"[-=]>",returnBegin:!0,contains:[g]}]},{className:"class", +beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{ +beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[l]},l] +},{begin:s+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}})()); +hljs.registerLanguage("cpp",(()=>{"use strict";function e(e){ +return t("(",e,")?")}function t(...e){return e.map((e=>{ +return(t=e)?"string"==typeof t?t:t.source:null;var t})).join("")}return n=>{ +const r=n.COMMENT("//","$",{contains:[{begin:/\\\n/}] +}),a="[a-zA-Z_]\\w*::",i="(decltype\\(auto\\)|"+e(a)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",s={ +className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string", +variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n", +contains:[n.BACKSLASH_ESCAPE]},{ +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)", +end:"'",illegal:"."},n.END_SAME_AS_BEGIN({ +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={ +className:"number",variants:[{begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)" +},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{ +"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include" +},contains:[{begin:/\\\n/,relevance:0},n.inherit(c,{className:"meta-string"}),{ +className:"meta-string",begin:/<.*?>/},r,n.C_BLOCK_COMMENT_MODE]},d={ +className:"title",begin:e(a)+n.IDENT_RE,relevance:0 +},u=e(a)+n.IDENT_RE+"\\s*\\(",m={ +keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq", +built_in:"_Bool _Complex _Imaginary", +_relevance_hints:["asin","atan2","atan","calloc","ceil","cosh","cos","exit","exp","fabs","floor","fmod","fprintf","fputs","free","frexp","auto_ptr","deque","list","queue","stack","vector","map","set","pair","bitset","multiset","multimap","unordered_set","fscanf","future","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","tolower","toupper","labs","ldexp","log10","log","malloc","realloc","memchr","memcmp","memcpy","memset","modf","pow","printf","putchar","puts","scanf","sinh","sin","snprintf","sprintf","sqrt","sscanf","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","tanh","tan","unordered_map","unordered_multiset","unordered_multimap","priority_queue","make_pair","array","shared_ptr","abort","terminate","abs","acos","vfprintf","vprintf","vsprintf","endl","initializer_list","unique_ptr","complex","imaginary","std","string","wstring","cin","cout","cerr","clog","stdin","stdout","stderr","stringstream","istringstream","ostringstream"], +literal:"true false nullptr NULL"},p={className:"function.dispatch",relevance:0, +keywords:m, +begin:t(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!while)/,n.IDENT_RE,(_=/\s*\(/, +t("(?=",_,")")))};var _;const g=[p,l,s,r,n.C_BLOCK_COMMENT_MODE,o,c],b={ +variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{ +beginKeywords:"new throw return else",end:/;/}],keywords:m,contains:g.concat([{ +begin:/\(/,end:/\)/,keywords:m,contains:g.concat(["self"]),relevance:0}]), +relevance:0},f={className:"function",begin:"("+i+"[\\*&\\s]+)+"+u, +returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:m,illegal:/[^\w\s\*&:<>.]/, +contains:[{begin:"decltype\\(auto\\)",keywords:m,relevance:0},{begin:u, +returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{begin:/:/, +endsWithParent:!0,contains:[c,o]},{className:"params",begin:/\(/,end:/\)/, +keywords:m,relevance:0,contains:[r,n.C_BLOCK_COMMENT_MODE,c,o,s,{begin:/\(/, +end:/\)/,keywords:m,relevance:0,contains:["self",r,n.C_BLOCK_COMMENT_MODE,c,o,s] +}]},s,r,n.C_BLOCK_COMMENT_MODE,l]};return{name:"C++", +aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:m,illegal:"",keywords:m,contains:["self",s]},{begin:n.IDENT_RE+"::",keywords:m},{ +className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/, +contains:[{beginKeywords:"final class struct"},n.TITLE_MODE]}]),exports:{ +preprocessor:l,strings:c,keywords:m}}}})()); +hljs.registerLanguage("csharp",(()=>{"use strict";return e=>{const n={ +keyword:["abstract","as","base","break","case","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]), +built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"], +literal:["default","false","null","true"]},a=e.inherit(e.TITLE_MODE,{ +begin:"[a-zA-Z](\\.?\\w)*"}),i={className:"number",variants:[{ +begin:"\\b(0b[01']+)"},{ +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{ +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)" +}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}] +},t=e.inherit(s,{illegal:/\n/}),r={className:"subst",begin:/\{/,end:/\}/, +keywords:n},l=e.inherit(r,{illegal:/\n/}),c={className:"string",begin:/\$"/, +end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/ +},e.BACKSLASH_ESCAPE,l]},o={className:"string",begin:/\$@"/,end:'"',contains:[{ +begin:/\{\{/},{begin:/\}\}/},{begin:'""'},r]},d=e.inherit(o,{illegal:/\n/, +contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},l]}) +;r.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE], +l.contains=[d,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.inherit(e.C_BLOCK_COMMENT_MODE,{ +illegal:/\n/})];const g={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},a] +},_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={ +begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"], +keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0, +contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{ +begin:"\x3c!--|--\x3e"},{begin:""}]}] +}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#", +end:"$",keywords:{ +"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum" +}},g,i,{beginKeywords:"class interface",relevance:0,end:/[{;=]/, +illegal:/[^\s:,]/,contains:[{beginKeywords:"where class" +},a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace", +relevance:0,end:/[{;=]/,illegal:/[^\s:]/, +contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ +beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/, +contains:[a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta", +begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{ +className:"meta-string",begin:/"/,end:/"/}]},{ +beginKeywords:"new return throw await else",relevance:0},{className:"function", +begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0, +end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{ +beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial", +relevance:0},{begin:e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0, +contains:[e.TITLE_MODE,E],relevance:0},{className:"params",begin:/\(/,end:/\)/, +excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0, +contains:[g,i,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}})()); +hljs.registerLanguage("css",(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse() +;return n=>{const a=(e=>({IMPORTANT:{className:"meta",begin:"!important"}, +HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"}, +ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/, +illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]} +}))(n),l=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS", +case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"}, +classNameAliases:{keyframePosition:"selector-tag"}, +contains:[n.C_BLOCK_COMMENT_MODE,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/ +},n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0 +},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0 +},a.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{ +begin:":("+i.join("|")+")"},{begin:"::("+o.join("|")+")"}]},{ +className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{begin:":",end:"[;}]", +contains:[a.HEXCOLOR,a.IMPORTANT,n.CSS_NUMBER_MODE,...l,{ +begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri" +},contains:[{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}] +},{className:"built_in",begin:/[\w-]+(?=\()/}]},{ +begin:(s=/@/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",s,")")), +end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword", +begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0, +relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only", +attribute:t.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute" +},...l,n.CSS_NUMBER_MODE]}]},{className:"selector-tag", +begin:"\\b("+e.join("|")+")\\b"}]};var s}})()); +hljs.registerLanguage("diff",(()=>{"use strict";return e=>({name:"Diff", +aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{ +begin:/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{ +begin:/^--- +\d+,\d+ +----$/}]},{className:"comment",variants:[{begin:/Index: /, +end:/$/},{begin:/^index/,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^-{3}/,end:/$/ +},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/^\*{15}$/},{ +begin:/^diff --git/,end:/$/}]},{className:"addition",begin:/^\+/,end:/$/},{ +className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/, +end:/$/}]})})()); +hljs.registerLanguage("go",(()=>{"use strict";return e=>{const n={ +keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune", +literal:"true false iota nil", +built_in:"append cap close complex copy imag len make new panic print println real recover delete" +};return{name:"Go",aliases:["golang"],keywords:n,illegal:"{"use strict";function e(...e){ +return e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null;var n +})).join("")}return n=>{const a="HTTP/(2|1\\.[01])",s={className:"attribute", +begin:e("^",/[A-Za-z][A-Za-z0-9-]*/,"(?=\\:\\s)"),starts:{contains:[{ +className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]} +},t=[s,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{ +name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+a+" \\d{3})", +end:/$/,contains:[{className:"meta",begin:a},{className:"number", +begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:t}},{ +begin:"(?=^[A-Z]+ (.*?) "+a+"$)",end:/$/,contains:[{className:"string", +begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:a},{ +className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:t} +},n.inherit(s,{relevance:0})]}}})()); +hljs.registerLanguage("ini",(()=>{"use strict";function e(e){ +return e?"string"==typeof e?e:e.source:null}function n(...n){ +return n.map((n=>e(n))).join("")}return s=>{const a={className:"number", +relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:s.NUMBER_RE}] +},i=s.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const t={ +className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/ +}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={ +className:"string",contains:[s.BACKSLASH_ESCAPE],variants:[{begin:"'''", +end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"' +},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[i,r,t,l,a,"self"], +relevance:0 +},g="("+[/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/].map((n=>e(n))).join("|")+")" +;return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/, +contains:[i,{className:"section",begin:/\[+/,end:/\]+/},{ +begin:n(g,"(\\s*\\.\\s*",g,")*",n("(?=",/\s*=\s*[^#\s]/,")")),className:"attr", +starts:{end:/$/,contains:[i,c,r,t,l,a]}}]}}})()); +hljs.registerLanguage("java",(()=>{"use strict" +;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={ +className:"number",variants:[{ +begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ +begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{ +begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{ +begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], +relevance:0};return e=>{ +var n="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",s={ +className:"meta",begin:"@[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*", +contains:[{begin:/\(/,end:/\)/,contains:["self"]}]};const r=a;return{ +name:"Java",aliases:["jsp"],keywords:n,illegal:/<\/|#/, +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/, +relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{ +begin:/import java\.[a-z]+\./,keywords:"import",relevance:2 +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{ +className:"class",beginKeywords:"class interface enum",end:/[{;=]/, +excludeEnd:!0,relevance:1,keywords:"class interface enum",illegal:/[:"\[\]]/, +contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{ +beginKeywords:"new throw return else",relevance:0},{className:"class", +begin:"record\\s+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,excludeEnd:!0, +end:/[{;=]/,keywords:n,contains:[{beginKeywords:"record"},{ +begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/, +keywords:n,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"function", +begin:"([\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*(<[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*(\\s*,\\s*[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(", +returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:n,contains:[{ +begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/, +keywords:n,relevance:0, +contains:[s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.C_BLOCK_COMMENT_MODE] +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},r,s]}}})()); +hljs.registerLanguage("javascript",(()=>{"use strict" +;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]) +;function r(e){return t("(?=",e,")")}function t(...e){return e.map((e=>{ +return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return i=>{ +const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/, +isTrulyOpeningTag:(e,n)=>{const a=e[0].length+e.index,s=e.input[a] +;"<"!==s?">"===s&&(((e,{after:n})=>{const a="", +returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{ +begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0 +},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}] +},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{ +variants:[{begin:"<>",end:""},{begin:o.begin,"on:begin":o.isTrulyOpeningTag, +end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0, +contains:["self"]}]}],relevance:0},{className:"function", +beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l, +contains:["self",i.inherit(i.TITLE_MODE,{begin:c}),p],illegal:/%/},{ +beginKeywords:"while if switch catch for"},{className:"function", +begin:i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", +returnBegin:!0,contains:[p,i.inherit(i.TITLE_MODE,{begin:c})]},{variants:[{ +begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class", +beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{ +beginKeywords:"extends"},i.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/, +end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:c}),"self",p] +},{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set", +contains:[i.inherit(i.TITLE_MODE,{begin:c}),{begin:/\(\)/},p]},{begin:/\$[(.]/}] +}}})()); +hljs.registerLanguage("json",(()=>{"use strict";return n=>{const e={ +literal:"true false null" +},i=[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],a=[n.QUOTE_STRING_MODE,n.C_NUMBER_MODE],l={ +end:",",endsWithParent:!0,excludeEnd:!0,contains:a,keywords:e},t={begin:/\{/, +end:/\}/,contains:[{className:"attr",begin:/"/,end:/"/, +contains:[n.BACKSLASH_ESCAPE],illegal:"\\n"},n.inherit(l,{begin:/:/ +})].concat(i),illegal:"\\S"},s={begin:"\\[",end:"\\]",contains:[n.inherit(l)], +illegal:"\\S"};return a.push(t,s),i.forEach((n=>{a.push(n)})),{name:"JSON", +contains:a,keywords:e,illegal:"\\S"}}})()); +hljs.registerLanguage("kotlin",(()=>{"use strict" +;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={ +className:"number",variants:[{ +begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{ +begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{ +begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b` +},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{ +begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}], +relevance:0};return e=>{const n={ +keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual", +built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing", +literal:"true false null"},i={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@" +},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},t={ +className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string", +variants:[{begin:'"""',end:'"""(?=[^"])',contains:[t,s]},{begin:"'",end:"'", +illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/, +contains:[e.BACKSLASH_ESCAPE,t,s]}]};s.contains.push(r);const l={ +className:"meta", +begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?" +},c={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/, +end:/\)/,contains:[e.inherit(r,{className:"meta-string"})]}] +},o=a,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),E={ +variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/, +contains:[]}]},d=E;return d.variants[1].contains=[E],E.variants[1].contains=[d], +{name:"Kotlin",aliases:["kt","kts"],keywords:n, +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag", +begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,{className:"keyword", +begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol", +begin:/@\w+/}]}},i,l,c,{className:"function",beginKeywords:"fun",end:"[(]|$", +returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{ +begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0, +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin://, +keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/, +endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/, +endsWithParent:!0,contains:[E,e.C_LINE_COMMENT_MODE,b],relevance:0 +},e.C_LINE_COMMENT_MODE,b,l,c,r,e.C_NUMBER_MODE]},b]},{className:"class", +beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0, +illegal:"extends implements",contains:[{ +beginKeywords:"public protected internal private constructor" +},e.UNDERSCORE_TITLE_MODE,{className:"type",begin://,excludeBegin:!0, +excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/, +excludeBegin:!0,returnEnd:!0},l,c]},r,{className:"meta",begin:"^#!/usr/bin/env", +end:"$",illegal:"\n"},o]}}})()); +hljs.registerLanguage("less",(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],n=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse(),r=i.concat(o) +;return a=>{const s=(e=>({IMPORTANT:{className:"meta",begin:"!important"}, +HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"}, +ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/, +illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]} +}))(a),l=r,d="([\\w-]+|@\\{[\\w-]+\\})",c=[],g=[],b=e=>({className:"string", +begin:"~?"+e+".*?"+e}),m=(e,t,i)=>({className:e,begin:t,relevance:i}),u={ +$pattern:/[a-z-]+/,keyword:"and or not only",attribute:t.join(" ")},p={ +begin:"\\(",end:"\\)",contains:g,keywords:u,relevance:0} +;g.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,b("'"),b('"'),a.CSS_NUMBER_MODE,{ +begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]", +excludeEnd:!0} +},s.HEXCOLOR,p,m("variable","@@?[\\w-]+",10),m("variable","@\\{[\\w-]+\\}"),m("built_in","~?`[^`]*?`"),{ +className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0 +},s.IMPORTANT);const f=g.concat({begin:/\{/,end:/\}/,contains:c}),h={ +beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not" +}].concat(g)},w={begin:d+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0, +contains:[{begin:/-(webkit|moz|ms|o)-/},{className:"attribute", +begin:"\\b("+n.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0, +illegal:"[<=$]",relevance:0,contains:g}}]},v={className:"keyword", +begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b", +starts:{end:"[;{}]",keywords:u,returnEnd:!0,contains:g,relevance:0}},y={ +className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{ +begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:f}},k={variants:[{ +begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:d,end:/\{/}],returnBegin:!0, +returnEnd:!0,illegal:"[<='$\"]",relevance:0, +contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,h,m("keyword","all\\b"),m("variable","@\\{[\\w-]+\\}"),{ +begin:"\\b("+e.join("|")+")\\b",className:"selector-tag" +},m("selector-tag",d+"%?",0),m("selector-id","#"+d),m("selector-class","\\."+d,0),m("selector-tag","&",0),s.ATTRIBUTE_SELECTOR_MODE,{ +className:"selector-pseudo",begin:":("+i.join("|")+")"},{ +className:"selector-pseudo",begin:"::("+o.join("|")+")"},{begin:"\\(",end:"\\)", +contains:f},{begin:"!important"}]},E={begin:`[\\w-]+:(:)?(${l.join("|")})`, +returnBegin:!0,contains:[k]} +;return c.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,v,y,E,w,k),{ +name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:c}}})()); +hljs.registerLanguage("lua",(()=>{"use strict";return e=>{ +const t="\\[=*\\[",a="\\]=*\\]",n={begin:t,end:a,contains:["self"] +},o=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[",a,{contains:[n], +relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE, +literal:"true false nil", +keyword:"and break do else elseif end for goto if in local not or repeat return then until while", +built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove" +},contains:o.concat([{className:"function",beginKeywords:"function",end:"\\)", +contains:[e.inherit(e.TITLE_MODE,{ +begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params", +begin:"\\(",endsWithParent:!0,contains:o}].concat(o) +},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string", +begin:t,end:a,contains:[n],relevance:5}])}}})()); +hljs.registerLanguage("makefile",(()=>{"use strict";return e=>{const i={ +className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)", +contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%{"use strict";function e(e){ +return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")} +function a(...n){return n.map((n=>e(n))).join("")}function s(...n){ +return"("+n.map((n=>e(n))).join("|")+")"}return e=>{ +const t=a(/[A-Z_]/,a("(",/[A-Z0-9_.-]*:/,")?"),/[A-Z0-9_.-]*/),i={ +className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},r={begin:/\s/, +contains:[{className:"meta-keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}] +},c=e.inherit(r,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{ +className:"meta-string"}),g=e.inherit(e.QUOTE_STRING_MODE,{ +className:"meta-string"}),m={endsWithParent:!0,illegal:/`]+/}]}] +}]};return{name:"HTML, XML", +aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"], +case_insensitive:!0,contains:[{className:"meta",begin://, +relevance:10,contains:[r,g,l,c,{begin:/\[/,end:/\]/,contains:[{className:"meta", +begin://,contains:[r,c,g,l]}]}]},e.COMMENT(//,{ +relevance:10}),{begin://,relevance:10},i,{ +className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"style"},contains:[m],starts:{ +end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"script"},contains:[m],starts:{ +end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{ +className:"tag",begin:/<>|<\/>/},{className:"tag", +begin:a(//,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name", +begin:t,relevance:0,starts:m}]},{className:"tag",begin:a(/<\//,n(a(t,/>/))), +contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0, +endsParent:!0}]}]}}})()); +hljs.registerLanguage("markdown",(()=>{"use strict";function n(...n){ +return n.map((n=>{return(e=n)?"string"==typeof e?e:e.source:null;var e +})).join("")}return e=>{const a={begin:/<\/?[A-Za-z_]/,end:">", +subLanguage:"xml",relevance:0},i={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0 +},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, +relevance:2},{begin:n(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/), +relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{ +begin:/\[.+?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{ +className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0, +returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)", +excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[", +end:"\\]",excludeBegin:!0,excludeEnd:!0}]},s={className:"strong",contains:[], +variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},c={ +className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{ +begin:/_(?!_)/,end:/_/,relevance:0}]};s.contains.push(c),c.contains.push(s) +;let t=[a,i] +;return s.contains=s.contains.concat(t),c.contains=c.contains.concat(t), +t=t.concat(s,c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ +className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:t},{ +begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n", +contains:t}]}]},a,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", +end:"\\s+",excludeEnd:!0},s,c,{className:"quote",begin:"^>\\s+",contains:t, +end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{ +begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{ +begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))", +contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{ +begin:"^[-\\*]{3,}",end:"$"},i,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{ +className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{ +className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}})()); +hljs.registerLanguage("nginx",(()=>{"use strict";return e=>{const n={ +className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/\}/},{ +begin:/[$@]/+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,keywords:{ +$pattern:"[a-z/_]+", +literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll" +},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string", +contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/ +}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n] +},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^", +end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{ +begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number", +begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{ +className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},n]};return{ +name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{ +begin:e.UNDERSCORE_IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\{/,contains:[{ +className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{ +begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|\\{",returnBegin:!0,contains:[{ +className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}], +illegal:"[^\\s\\}]"}}})()); +hljs.registerLanguage("objectivec",(()=>{"use strict";return e=>{ +const n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n, +keyword:"@interface @class @protocol @implementation"};return{ +name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"], +keywords:{$pattern:n, +keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN", +literal:"false true FALSE TRUE nil YES NO NULL", +built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once" +},illegal:"/,end:/$/, +illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{ +className:"class",begin:"("+_.keyword.split(" ").join("|")+")\\b",end:/(\{|$)/, +excludeEnd:!0,keywords:_,contains:[e.UNDERSCORE_TITLE_MODE]},{ +begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}})()); +hljs.registerLanguage("perl",(()=>{"use strict";function e(e){ +return e?"string"==typeof e?e:e.source:null}function n(...n){ +return n.map((n=>e(n))).join("")}function t(...n){ +return"("+n.map((n=>e(n))).join("|")+")"}return e=>{ +const r=/[dualxmsipngr]{0,12}/,s={$pattern:/[\w.]+/, +keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0" +},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:s},a={begin:/->\{/, +end:/\}/},o={variants:[{begin:/\$\d/},{ +begin:n(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])") +},{begin:/[$%@][^\s\w{]/,relevance:0}] +},c=[e.BACKSLASH_ESCAPE,i,o],g=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],l=(e,t,s="\\1")=>{ +const i="\\1"===s?s:n(s,t) +;return n(n("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,i,/(?:\\.|[^\\\/])*?/,s,r) +},d=(e,t,s)=>n(n("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,s,r),p=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{ +endsWithParent:!0}),a,{className:"string",contains:c,variants:[{ +begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[", +end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{ +begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">", +relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'", +contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`", +contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{ +begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number", +begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b", +relevance:0},{ +begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*", +keywords:"split return print reverse grep",relevance:0, +contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{ +begin:l("s|tr|y",t(...g))},{begin:l("s|tr|y","\\(","\\)")},{ +begin:l("s|tr|y","\\[","\\]")},{begin:l("s|tr|y","\\{","\\}")}],relevance:2},{ +className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{ +begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",t(...g),/\1/)},{ +begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{ +begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub", +end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{ +begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$", +subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}] +}];return i.contains=p,a.contains=p,{name:"Perl",aliases:["pl","pm"],keywords:s, +contains:p}}})()); +hljs.registerLanguage("php",(()=>{"use strict";return e=>{const r={ +className:"variable", +begin:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?![A-Za-z0-9])(?![$])"},t={ +className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{ +begin:/\?>/}]},a={className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/, +end:/\}/}]},n=e.inherit(e.APOS_STRING_MODE,{illegal:null +}),i=e.inherit(e.QUOTE_STRING_MODE,{illegal:null, +contains:e.QUOTE_STRING_MODE.contains.concat(a)}),o=e.END_SAME_AS_BEGIN({ +begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/, +contains:e.QUOTE_STRING_MODE.contains.concat(a)}),l={className:"string", +contains:[e.BACKSLASH_ESCAPE,t],variants:[e.inherit(n,{begin:"b'",end:"'" +}),e.inherit(i,{begin:'b"',end:'"'}),i,n,o]},s={className:"number",variants:[{ +begin:"\\b0b[01]+(?:_[01]+)*\\b"},{begin:"\\b0o[0-7]+(?:_[0-7]+)*\\b"},{ +begin:"\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b"},{ +begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:e[+-]?\\d+)?" +}],relevance:0},c={ +keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile enum eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list match|0 mixed new object or private protected public real return string switch throw trait try unset use var void while xor yield", +literal:"false null true", +built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException UnhandledMatchError ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Stringable Throwable Traversable WeakReference WeakMap Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass" +};return{aliases:["php3","php4","php5","php6","php7","php8"], +case_insensitive:!0,keywords:c, +contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[t] +}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}] +}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0, +keywords:"__halt_compiler"}),t,{className:"keyword",begin:/\$this\b/},r,{ +begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function", +relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0, +illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{ +begin:"=>",endsParent:!0},{className:"params",begin:"\\(",end:"\\)", +excludeBegin:!0,excludeEnd:!0,keywords:c, +contains:["self",r,e.C_BLOCK_COMMENT_MODE,l,s]}]},{className:"class",variants:[{ +beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait", +illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{ +beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{ +beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/, +contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",relevance:0,end:";", +contains:[e.UNDERSCORE_TITLE_MODE]},l,s]}}})()); +hljs.registerLanguage("php-template",(()=>{"use strict";return n=>({ +name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/, +subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"', +end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{ +illegal:null,className:null,contains:null,skip:!0 +}),n.inherit(n.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null, +skip:!0})]}]})})()); +hljs.registerLanguage("plaintext",(()=>{"use strict";return t=>({ +name:"Plain text",aliases:["text","txt"],disableAutodetect:!0})})()); +hljs.registerLanguage("properties",(()=>{"use strict";return e=>{ +var n="[ \\t\\f]*",a=n+"[:=]"+n,t="("+a+"|[ \\t\\f]+)",r="([^\\\\\\W:= \\t\\f\\n]|\\\\.)+",s="([^\\\\:= \\t\\f\\n]|\\\\.)+",i={ +end:t,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{ +begin:"\\\\\\\\"},{begin:"\\\\\\n"}]}};return{name:".properties", +case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{ +returnBegin:!0,variants:[{begin:r+a,relevance:1},{begin:r+"[ \\t\\f]+", +relevance:0}],contains:[{className:"attr",begin:r,endsParent:!0,relevance:0}], +starts:i},{begin:s+t,returnBegin:!0,relevance:0,contains:[{className:"meta", +begin:s,endsParent:!0,relevance:0}],starts:i},{className:"attr",relevance:0, +begin:s+n+"$"}]}}})()); +hljs.registerLanguage("python",(()=>{"use strict";return e=>{const n={ +$pattern:/[A-Za-z]\w+|__\w+__/, +keyword:["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"], +built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"], +literal:["__debug__","Ellipsis","False","None","NotImplemented","True"], +type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"] +},a={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/, +end:/\}/,keywords:n,illegal:/#/},s={begin:/\{\{/,relevance:0},t={ +className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{ +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/, +contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{ +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/, +contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{ +begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/, +contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/, +end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([uU]|[rR])'/,end:/'/, +relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{ +begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/, +end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/, +contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/, +contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE] +},r="[0-9](_?[0-9])*",l=`(\\b(${r}))?\\.(${r})|\\b(${r})\\.`,b={ +className:"number",relevance:0,variants:[{ +begin:`(\\b(${r})|(${l}))[eE][+-]?(${r})[jJ]?\\b`},{begin:`(${l})[jJ]?`},{ +begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{ +begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{ +begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${r})[jJ]\\b`}]},o={ +className:"comment", +begin:(d=/# type:/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",d,")")), +end:/$/,keywords:n,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/, +endsWithParent:!0}]},c={className:"params",variants:[{className:"", +begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0, +keywords:n,contains:["self",a,b,t,e.HASH_COMMENT_MODE]}]};var d +;return i.contains=[t,b,a],{name:"Python",aliases:["py","gyp","ipython"], +keywords:n,illegal:/(<\/|->|\?)|=>/,contains:[a,b,{begin:/\bself\b/},{ +beginKeywords:"if",relevance:0},t,o,e.HASH_COMMENT_MODE,{variants:[{ +className:"function",beginKeywords:"def"},{className:"class", +beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/, +contains:[e.UNDERSCORE_TITLE_MODE,c,{begin:/->/,endsWithParent:!0,keywords:n}] +},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[b,c,t]}]}}})()); +hljs.registerLanguage("python-repl",(()=>{"use strict";return s=>({ +aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$", +subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{ +begin:/^\.\.\.(?=[ ]|$)/}]}]})})()); +hljs.registerLanguage("r",(()=>{"use strict";function e(...e){return e.map((e=>{ +return(a=e)?"string"==typeof a?a:a.source:null;var a})).join("")}return a=>{ +const n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/;return{name:"R", +illegal:/->/,keywords:{$pattern:n, +keyword:"function if in break next repeat else for while", +literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10", +built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm" +},compilerExtensions:[(a,n)=>{if(!a.beforeMatch)return +;if(a.starts)throw Error("beforeMatch cannot be used with starts") +;const i=Object.assign({},a);Object.keys(a).forEach((e=>{delete a[e] +})),a.begin=e(i.beforeMatch,e("(?=",i.begin,")")),a.starts={relevance:0, +contains:[Object.assign(i,{endsParent:!0})]},a.relevance=0,delete i.beforeMatch +}],contains:[a.COMMENT(/#'/,/$/,{contains:[{className:"doctag", +begin:"@examples",starts:{contains:[{begin:/\n/},{begin:/#'\s*(?=@[a-zA-Z]+)/, +endsParent:!0},{begin:/#'/,end:/$/,excludeBegin:!0}]}},{className:"doctag", +begin:"@param",end:/$/,contains:[{className:"variable",variants:[{begin:n},{ +begin:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{className:"doctag", +begin:/@[a-zA-Z]+/},{className:"meta-keyword",begin:/\\[a-zA-Z]+/}] +}),a.HASH_COMMENT_MODE,{className:"string",contains:[a.BACKSLASH_ESCAPE], +variants:[a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/ +}),a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/ +}),a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/ +}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/ +}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/ +}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"', +relevance:0},{begin:"'",end:"'",relevance:0}]},{className:"number",relevance:0, +beforeMatch:/([^a-zA-Z0-9._])/,variants:[{ +match:/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/},{ +match:/0[xX][0-9a-fA-F]+([pP][+-]?\d+)?[Li]?/},{ +match:/(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?[Li]?/}]},{begin:"%",end:"%"},{ +begin:e(/[a-zA-Z][a-zA-Z_0-9]*/,"\\s+<-\\s+")},{begin:"`",end:"`",contains:[{ +begin:/\\./}]}]}}})()); +hljs.registerLanguage("ruby",(()=>{"use strict";function e(...e){ +return e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null;var n +})).join("")}return n=>{ +const a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",i={ +keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor __FILE__", +built_in:"proc lambda",literal:"true false nil"},s={className:"doctag", +begin:"@[A-Za-z]+"},r={begin:"#<",end:">"},b=[n.COMMENT("#","$",{contains:[s] +}),n.COMMENT("^=begin","^=end",{contains:[s],relevance:10 +}),n.COMMENT("^__END__","\\n$")],c={className:"subst",begin:/#\{/,end:/\}/, +keywords:i},t={className:"string",contains:[n.BACKSLASH_ESCAPE,c],variants:[{ +begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/, +end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{ +begin:/%[qQwWx]?/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/, +end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{ +begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{ +begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{ +begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{ +begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{ +begin:/<<[-~]?'?(\w+)\n(?:[^\n]*\n)*?\s*\1\b/,returnBegin:!0,contains:[{ +begin:/<<[-~]?'?/},n.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/, +contains:[n.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",d={className:"number", +relevance:0,variants:[{ +begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{ +begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b" +},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{ +begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{ +begin:"\\b0(_?[0-7])+r?i?\\b"}]},l={className:"params",begin:"\\(",end:"\\)", +endsParent:!0,keywords:i},o=[t,{className:"class",beginKeywords:"class module", +end:"$|;",illegal:/=/,contains:[n.inherit(n.TITLE_MODE,{ +begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|!)?"}),{begin:"<\\s*",contains:[{ +begin:"("+n.IDENT_RE+"::)?"+n.IDENT_RE,relevance:0}]}].concat(b)},{ +className:"function",begin:e(/def\s+/,(_=a+"\\s*(\\(|;|$)",e("(?=",_,")"))), +relevance:0,keywords:"def",end:"$|;",contains:[n.inherit(n.TITLE_MODE,{begin:a +}),l].concat(b)},{begin:n.IDENT_RE+"::"},{className:"symbol", +begin:n.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol", +begin:":(?!\\s)",contains:[t,{begin:a}],relevance:0},d,{className:"variable", +begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{ +className:"params",begin:/\|/,end:/\|/,relevance:0,keywords:i},{ +begin:"("+n.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{ +className:"regexp",contains:[n.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{ +begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(", +end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}] +}].concat(r,b),relevance:0}].concat(r,b);var _;c.contains=o,l.contains=o +;const E=[{begin:/^\s*=>/,starts:{end:"$",contains:o}},{className:"meta", +begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])", +starts:{end:"$",contains:o}}];return b.unshift(r),{name:"Ruby", +aliases:["rb","gemspec","podspec","thor","irb"],keywords:i,illegal:/\/\*/, +contains:[n.SHEBANG({binary:"ruby"})].concat(E).concat(b).concat(o)}}})()); +hljs.registerLanguage("rust",(()=>{"use strict";return e=>{ +const n="([ui](8|16|32|64|128|size)|f(32|64))?",t="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!" +;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?", +keyword:"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield", +literal:"true false Some None Ok Err",built_in:t},illegal:""}]}}})()); +hljs.registerLanguage("scss",(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse() +;return a=>{const n=(e=>({IMPORTANT:{className:"meta",begin:"!important"}, +HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"}, +ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/, +illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]} +}))(a),l=o,s=i,d="@[a-z-]+",c={className:"variable", +begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"};return{name:"SCSS",case_insensitive:!0, +illegal:"[=/|']",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{ +className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{ +className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0 +},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag", +begin:"\\b("+e.join("|")+")\\b",relevance:0},{className:"selector-pseudo", +begin:":("+s.join("|")+")"},{className:"selector-pseudo", +begin:"::("+l.join("|")+")"},c,{begin:/\(/,end:/\)/,contains:[a.CSS_NUMBER_MODE] +},{className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{ +begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b" +},{begin:":",end:";", +contains:[c,n.HEXCOLOR,a.CSS_NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.IMPORTANT] +},{begin:"@(page|font-face)",lexemes:d,keywords:"@page @font-face"},{begin:"@", +end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/, +keyword:"and or not only",attribute:t.join(" ")},contains:[{begin:d, +className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute" +},c,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.HEXCOLOR,a.CSS_NUMBER_MODE]}]}} +})()); +hljs.registerLanguage("shell",(()=>{"use strict";return s=>({ +name:"Shell Session",aliases:["console"],contains:[{className:"meta", +begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#]/,starts:{end:/[^\\](?=\s*$)/, +subLanguage:"bash"}}]})})()); +hljs.registerLanguage("sql",(()=>{"use strict";function e(e){ +return e?"string"==typeof e?e:e.source:null}function r(...r){ +return r.map((r=>e(r))).join("")}function t(...r){ +return"("+r.map((r=>e(r))).join("|")+")"}return e=>{ +const n=e.COMMENT("--","$"),a=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],s=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],o=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],c=s,l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update ","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!s.includes(e))),u={ +begin:r(/\b/,t(...c),/\s*\(/),keywords:{built_in:c}};return{name:"SQL", +case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/, +keyword:((e,{exceptions:r,when:t}={})=>{const n=t +;return r=r||[],e.map((e=>e.match(/\|\d+$/)||r.includes(e)?e:n(e)?e+"|0":e)) +})(l,{when:e=>e.length<3}),literal:a,type:i, +built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"] +},contains:[{begin:t(...o),keywords:{$pattern:/[\w\.]+/,keyword:l.concat(o), +literal:a,type:i}},{className:"type", +begin:t("double precision","large object","with timezone","without timezone") +},u,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{ +begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{ +begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"operator", +begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}})()); +hljs.registerLanguage("swift",(()=>{"use strict";function e(e){ +return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")} +function a(...n){return n.map((n=>e(n))).join("")}function t(...n){ +return"("+n.map((n=>e(n))).join("|")+")"} +const i=e=>a(/\b/,e,/\w$/.test(e)?/\b/:/\B/),s=["Protocol","Type"].map(i),u=["init","self"].map(i),c=["Any","Self"],r=["associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],o=["false","nil","true"],l=["assignment","associativity","higherThan","left","lowerThan","none","right"],m=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],d=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],p=t(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),F=t(p,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),b=a(p,F,"*"),h=t(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),f=t(h,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),w=a(h,f,"*"),y=a(/[A-Z]/,f,"*"),g=["autoclosure",a(/convention\(/,t("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",a(/objc\(/,w,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","testable","UIApplicationMain","unknown","usableFromInline"],E=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"] +;return e=>{const p={match:/\s+/,relevance:0},h=e.COMMENT("/\\*","\\*/",{ +contains:["self"]}),v=[e.C_LINE_COMMENT_MODE,h],N={className:"keyword", +begin:a(/\./,n(t(...s,...u))),end:t(...s,...u),excludeBegin:!0},A={ +match:a(/\./,t(...r)),relevance:0 +},C=r.filter((e=>"string"==typeof e)).concat(["_|0"]),_={variants:[{ +className:"keyword", +match:t(...r.filter((e=>"string"!=typeof e)).concat(c).map(i),...u)}]},D={ +$pattern:t(/\b\w+/,/#\w+/),keyword:C.concat(m),literal:o},B=[N,A,_],k=[{ +match:a(/\./,t(...d)),relevance:0},{className:"built_in", +match:a(/\b/,t(...d),/(?=\()/)}],M={match:/->/,relevance:0},S=[M,{ +className:"operator",relevance:0,variants:[{match:b},{match:`\\.(\\.|${F})+`}] +}],x="([0-9a-fA-F]_*)+",I={className:"number",relevance:0,variants:[{ +match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{ +match:`\\b0x(${x})(\\.(${x}))?([pP][+-]?(([0-9]_*)+))?\\b`},{ +match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},O=(e="")=>({ +className:"subst",variants:[{match:a(/\\/,e,/[0\\tnr"']/)},{ +match:a(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),T=(e="")=>({className:"subst", +match:a(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),L=(e="")=>({className:"subst", +label:"interpol",begin:a(/\\/,e,/\(/),end:/\)/}),P=(e="")=>({begin:a(e,/"""/), +end:a(/"""/,e),contains:[O(e),T(e),L(e)]}),$=(e="")=>({begin:a(e,/"/), +end:a(/"/,e),contains:[O(e),L(e)]}),K={className:"string", +variants:[P(),P("#"),P("##"),P("###"),$(),$("#"),$("##"),$("###")]},j={ +match:a(/`/,w,/`/)},z=[j,{className:"variable",match:/\$\d+/},{ +className:"variable",match:`\\$${f}+`}],q=[{match:/(@|#)available/, +className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:E, +contains:[...S,I,K]}]}},{className:"keyword",match:a(/@/,t(...g))},{ +className:"meta",match:a(/@/,w)}],U={match:n(/\b[A-Z]/),relevance:0,contains:[{ +className:"type", +match:a(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,f,"+") +},{className:"type",match:y,relevance:0},{match:/[?!]+/,relevance:0},{ +match:/\.\.\./,relevance:0},{match:a(/\s+&\s+/,n(y)),relevance:0}]},Z={ +begin://,keywords:D,contains:[...v,...B,...q,M,U]};U.contains.push(Z) +;const G={begin:/\(/,end:/\)/,relevance:0,keywords:D,contains:["self",{ +match:a(w,/\s*:/),keywords:"_|0",relevance:0 +},...v,...B,...k,...S,I,K,...z,...q,U]},H={beginKeywords:"func",contains:[{ +className:"title",match:t(j.match,w,b),endsParent:!0,relevance:0},p]},R={ +begin://,contains:[...v,U]},V={begin:/\(/,end:/\)/,keywords:D, +contains:[{begin:t(n(a(w,/\s*:/)),n(a(w,/\s+/,w,/\s*:/))),end:/:/,relevance:0, +contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:w}] +},...v,...B,...S,I,K,...q,U,G],endsParent:!0,illegal:/["']/},W={ +className:"function",match:n(/\bfunc\b/),contains:[H,R,V,p],illegal:[/\[/,/%/] +},X={className:"function",match:/\b(subscript|init[?!]?)\s*(?=[<(])/,keywords:{ +keyword:"subscript init init? init!",$pattern:/\w+[?!]?/},contains:[R,V,p], +illegal:/\[|%/},J={beginKeywords:"operator",end:e.MATCH_NOTHING_RE,contains:[{ +className:"title",match:b,endsParent:!0,relevance:0}]},Q={ +beginKeywords:"precedencegroup",end:e.MATCH_NOTHING_RE,contains:[{ +className:"title",match:y,relevance:0},{begin:/{/,end:/}/,relevance:0, +endsParent:!0,keywords:[...l,...o],contains:[U]}]};for(const e of K.variants){ +const n=e.contains.find((e=>"interpol"===e.label));n.keywords=D +;const a=[...B,...k,...S,I,K,...z];n.contains=[...a,{begin:/\(/,end:/\)/, +contains:["self",...a]}]}return{name:"Swift",keywords:D,contains:[...v,W,X,{ +className:"class",beginKeywords:"struct protocol class extension enum", +end:"\\{",excludeEnd:!0,keywords:D,contains:[e.inherit(e.TITLE_MODE,{ +begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...B]},J,Q,{ +beginKeywords:"import",end:/$/,contains:[...v],relevance:0 +},...B,...k,...S,I,K,...z,...q,U,G]}}})()); +hljs.registerLanguage("typescript",(()=>{"use strict" +;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"]) +;function t(e){return r("(?=",e,")")}function r(...e){return e.map((e=>{ +return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return i=>{ +const c={$pattern:e, +keyword:n.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]), +literal:a, +built_in:s.concat(["any","void","number","boolean","string","object","never","enum"]) +},o={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},l=(e,n,a)=>{ +const s=e.contains.findIndex((e=>e.label===n)) +;if(-1===s)throw Error("can not find mode to replace");e.contains.splice(s,1,a) +},b=(i=>{const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/, +end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{ +const a=e[0].length+e.index,s=e.input[a];"<"!==s?">"===s&&(((e,{after:n})=>{ +const a="", +returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{ +begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0 +},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}] +},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{ +variants:[{begin:"<>",end:""},{begin:o.begin,"on:begin":o.isTrulyOpeningTag, +end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0, +contains:["self"]}]}],relevance:0},{className:"function", +beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l, +contains:["self",i.inherit(i.TITLE_MODE,{begin:c}),A],illegal:/%/},{ +beginKeywords:"while if switch catch for"},{className:"function", +begin:i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{", +returnBegin:!0,contains:[A,i.inherit(i.TITLE_MODE,{begin:c})]},{variants:[{ +begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class", +beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{ +beginKeywords:"extends"},i.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/, +end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:c}),"self",A] +},{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set", +contains:[i.inherit(i.TITLE_MODE,{begin:c}),{begin:/\(\)/},A]},{begin:/\$[(.]/}] +}})(i) +;return Object.assign(b.keywords,c),b.exports.PARAMS_CONTAINS.push(o),b.contains=b.contains.concat([o,{ +beginKeywords:"namespace",end:/\{/,excludeEnd:!0},{beginKeywords:"interface", +end:/\{/,excludeEnd:!0,keywords:"interface extends" +}]),l(b,"shebang",i.SHEBANG()),l(b,"use_strict",{className:"meta",relevance:10, +begin:/^\s*['"]use strict['"]/ +}),b.contains.find((e=>"function"===e.className)).relevance=0,Object.assign(b,{ +name:"TypeScript",aliases:["ts","tsx"]}),b}})()); +hljs.registerLanguage("vbnet",(()=>{"use strict";function e(e){ +return e?"string"==typeof e?e:e.source:null}function n(...n){ +return n.map((n=>e(n))).join("")}function t(...n){ +return"("+n.map((n=>e(n))).join("|")+")"}return e=>{ +const a=/\d{1,2}\/\d{1,2}\/\d{4}/,i=/\d{4}-\d{1,2}-\d{1,2}/,s=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,o={ +className:"literal",variants:[{begin:n(/# */,t(i,a),/ *#/)},{ +begin:n(/# */,r,/ *#/)},{begin:n(/# */,s,/ *#/)},{ +begin:n(/# */,t(i,a),/ +/,t(s,r),/ *#/)}]},l=e.COMMENT(/'''/,/$/,{contains:[{ +className:"doctag",begin:/<\/?/,end:/>/}]}),c=e.COMMENT(null,/$/,{variants:[{ +begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET", +aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{ +keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield", +built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort", +type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort", +literal:"true false nothing"}, +illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{ +className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/, +end:/"/,illegal:/\n/,contains:[{begin:/""/}]},o,{className:"number",relevance:0, +variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/ +},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{ +begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{ +className:"label",begin:/^\w+:/},l,c,{className:"meta", +begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/, +end:/$/,keywords:{ +"meta-keyword":"const disable else elseif enable end externalsource if region then" +},contains:[c]}]}}})()); +hljs.registerLanguage("yaml",(()=>{"use strict";return e=>{ +var n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={ +className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ +},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable", +variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(s,{ +variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={ +end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},t={begin:/\{/, +end:/\}/,contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]", +contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{ +begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{ +begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$", +relevance:10},{className:"string", +begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{ +begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0, +relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type", +begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a +},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta", +begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)", +relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{ +className:"number", +begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b" +},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},t,g,s],r=[...b] +;return r.pop(),r.push(i),l.contains=r,{name:"YAML",case_insensitive:!0, +aliases:["yml"],contains:b}}})()); \ No newline at end of file diff --git a/metrics-complete-report-initial-htmlReport/js/highlightjs-line-numbers.min.js b/metrics-complete-report-initial-htmlReport/js/highlightjs-line-numbers.min.js new file mode 100644 index 0000000000..8548576704 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/js/highlightjs-line-numbers.min.js @@ -0,0 +1,24 @@ +/* +The MIT License (MIT) + +Copyright (c) 2017 Yauheni Pakala + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + */ +!function(r,o){"use strict";var e,i="hljs-ln",l="hljs-ln-line",h="hljs-ln-code",s="hljs-ln-numbers",c="hljs-ln-n",m="data-line-number",a=/\r\n|\r|\n/g;function u(e){for(var n=e.toString(),t=e.anchorNode;"TD"!==t.nodeName;)t=t.parentNode;for(var r=e.focusNode;"TD"!==r.nodeName;)r=r.parentNode;var o=parseInt(t.dataset.lineNumber),a=parseInt(r.dataset.lineNumber);if(o==a)return n;var i,l=t.textContent,s=r.textContent;for(a
{6}',[l,s,c,m,h,o+n.startFrom,0{1}',[i,r])}return e}(e.innerHTML,o)}function v(e){var n=e.className;if(/hljs-/.test(n)){for(var t=g(e.innerHTML),r=0,o="";r{1}
\n',[n,0 + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (20/20) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 95.8% + + + (91/95) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 100% + + + (6/6) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 96.8% + + + (120/124) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (7/7) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 93.9% + + + (108/115) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (5/5) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (3/3) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 100% + + + (22/22) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96% + + + (24/25) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 96.7% + + + (59/61) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (8/8) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 70.8% + + + (63/89) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 68.3% + + + (56/82) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + 94.7% + + + (18/19) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 93.8% + + + (75/80) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 95.7% + + + (22/23) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (19/19) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 90.7% + + + (147/162) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 100% + + + (11/11) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 41.4% + + + (48/116) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 100% + + + (11/11) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 81.6% + + + (62/76) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 88.7% + + + (141/159) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 87.9% + + + (29/33) + +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/14) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/7) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 100% + + + (63/63) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 93.1% + + + (27/29) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (7/7) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 94.9% + + + (37/39) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 95.5% + + + (21/22) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 98% + + + (48/49) + +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 98.2% + + + (54/55) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..3a745c404a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK.html @@ -0,0 +1,1169 @@ + + + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (20/20) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 95.8% + + + (91/95) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 100% + + + (6/6) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 96.8% + + + (120/124) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (7/7) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 93.9% + + + (108/115) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (5/5) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (3/3) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 100% + + + (22/22) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96% + + + (24/25) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 96.7% + + + (59/61) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (8/8) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 70.8% + + + (63/89) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 68.3% + + + (56/82) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + 94.7% + + + (18/19) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 93.8% + + + (75/80) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 95.7% + + + (22/23) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (19/19) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 90.7% + + + (147/162) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 100% + + + (11/11) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 41.4% + + + (48/116) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 100% + + + (11/11) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 81.6% + + + (62/76) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 88.7% + + + (141/159) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 87.9% + + + (29/33) + +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/14) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/7) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 100% + + + (63/63) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 93.1% + + + (27/29) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (7/7) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 94.9% + + + (37/39) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 95.5% + + + (21/22) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 98% + + + (48/49) + +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 98.2% + + + (54/55) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..259fb699bd --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,1169 @@ + + + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 98.2% + + + (54/55) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 98% + + + (48/49) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 95.5% + + + (21/22) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 94.9% + + + (37/39) + +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (7/7) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 93.1% + + + (27/29) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 100% + + + (63/63) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/7) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/14) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 87.9% + + + (29/33) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 88.7% + + + (141/159) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 81.6% + + + (62/76) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 100% + + + (11/11) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 41.4% + + + (48/116) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 100% + + + (11/11) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 90.7% + + + (147/162) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (19/19) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 95.7% + + + (22/23) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 93.8% + + + (75/80) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + 94.7% + + + (18/19) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 68.3% + + + (56/82) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 70.8% + + + (63/89) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (8/8) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 96.7% + + + (59/61) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96% + + + (24/25) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 100% + + + (22/22) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (3/3) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (5/5) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 93.9% + + + (108/115) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (7/7) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 96.8% + + + (120/124) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 100% + + + (6/6) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 95.8% + + + (91/95) + +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (20/20) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..705054f2ef --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS.html @@ -0,0 +1,1169 @@ + + + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/14) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/7) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 88.7% + + + (141/159) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 41.4% + + + (48/116) + +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (20/20) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 95.8% + + + (91/95) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 100% + + + (6/6) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 96.8% + + + (120/124) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (7/7) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 93.9% + + + (108/115) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (5/5) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (3/3) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 100% + + + (22/22) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96% + + + (24/25) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 96.7% + + + (59/61) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (8/8) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 70.8% + + + (63/89) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 68.3% + + + (56/82) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + 94.7% + + + (18/19) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 93.8% + + + (75/80) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 95.7% + + + (22/23) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (19/19) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 90.7% + + + (147/162) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 100% + + + (11/11) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 100% + + + (11/11) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 81.6% + + + (62/76) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 87.9% + + + (29/33) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 100% + + + (63/63) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 93.1% + + + (27/29) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (7/7) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 94.9% + + + (37/39) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 95.5% + + + (21/22) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 98% + + + (48/49) + +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 98.2% + + + (54/55) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..7506715fb7 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,1169 @@ + + + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 98.2% + + + (54/55) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 98% + + + (48/49) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 95.5% + + + (21/22) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 94.9% + + + (37/39) + +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (7/7) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 93.1% + + + (27/29) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 100% + + + (63/63) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 87.9% + + + (29/33) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 81.6% + + + (62/76) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 100% + + + (11/11) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 100% + + + (11/11) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 90.7% + + + (147/162) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (19/19) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 95.7% + + + (22/23) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 93.8% + + + (75/80) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + 94.7% + + + (18/19) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 68.3% + + + (56/82) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 70.8% + + + (63/89) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (8/8) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 96.7% + + + (59/61) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96% + + + (24/25) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 100% + + + (22/22) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (3/3) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (5/5) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 93.9% + + + (108/115) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (7/7) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 96.8% + + + (120/124) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 100% + + + (6/6) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 95.8% + + + (91/95) + +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (20/20) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 41.4% + + + (48/116) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 88.7% + + + (141/159) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/7) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/14) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..713505ed39 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_LINE.html @@ -0,0 +1,1169 @@ + + + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/14) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/7) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 41.4% + + + (48/116) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 68.3% + + + (56/82) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 70.8% + + + (63/89) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 81.6% + + + (62/76) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 87.9% + + + (29/33) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 88.7% + + + (141/159) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 90.7% + + + (147/162) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 93.1% + + + (27/29) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 93.8% + + + (75/80) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 93.9% + + + (108/115) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + 94.7% + + + (18/19) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 94.9% + + + (37/39) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 95.5% + + + (21/22) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 95.7% + + + (22/23) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 95.8% + + + (91/95) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96% + + + (24/25) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 96.7% + + + (59/61) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 96.8% + + + (120/124) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 98% + + + (48/49) + +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 98.2% + + + (54/55) + +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (20/20) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 100% + + + (6/6) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (7/7) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (5/5) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (3/3) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 100% + + + (22/22) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (8/8) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (19/19) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 100% + + + (11/11) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 100% + + + (11/11) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 100% + + + (63/63) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..dac3ec7505 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,1169 @@ + + + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (7/7) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 100% + + + (63/63) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 100% + + + (11/11) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 100% + + + (11/11) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (19/19) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (8/8) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 100% + + + (22/22) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (3/3) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (5/5) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (7/7) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 100% + + + (6/6) + +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (20/20) + +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 98.2% + + + (54/55) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 98% + + + (48/49) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 96.8% + + + (120/124) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 96.7% + + + (59/61) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96% + + + (24/25) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 95.8% + + + (91/95) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 95.7% + + + (22/23) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 95.5% + + + (21/22) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 94.9% + + + (37/39) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + 94.7% + + + (18/19) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 93.9% + + + (108/115) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 93.8% + + + (75/80) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 93.1% + + + (27/29) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 90.7% + + + (147/162) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 88.7% + + + (141/159) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 87.9% + + + (29/33) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 81.6% + + + (62/76) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 70.8% + + + (63/89) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 68.3% + + + (56/82) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 41.4% + + + (48/116) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/7) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/14) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..ba3e16e4fc --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD.html @@ -0,0 +1,1169 @@ + + + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/14) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/7) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 41.4% + + + (48/116) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 70.8% + + + (63/89) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 68.3% + + + (56/82) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 88.7% + + + (141/159) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + 94.7% + + + (18/19) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 93.9% + + + (108/115) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96% + + + (24/25) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 87.9% + + + (29/33) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 93.1% + + + (27/29) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 95.7% + + + (22/23) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 90.7% + + + (147/162) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 96.8% + + + (120/124) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 81.6% + + + (62/76) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 95.8% + + + (91/95) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 93.8% + + + (75/80) + +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (20/20) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 100% + + + (6/6) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (7/7) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (5/5) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (3/3) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 100% + + + (22/22) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 96.7% + + + (59/61) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (8/8) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (19/19) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 100% + + + (11/11) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 100% + + + (11/11) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 100% + + + (63/63) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (7/7) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 94.9% + + + (37/39) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 95.5% + + + (21/22) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 98% + + + (48/49) + +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 98.2% + + + (54/55) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..cad4eb56bf --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,1169 @@ + + + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 98.2% + + + (54/55) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 98% + + + (48/49) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 95.5% + + + (21/22) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 94.9% + + + (37/39) + +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (7/7) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 100% + + + (63/63) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 100% + + + (11/11) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 100% + + + (11/11) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (19/19) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (8/8) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 96.7% + + + (59/61) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 100% + + + (22/22) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (3/3) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (5/5) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (7/7) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 100% + + + (6/6) + +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (20/20) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 93.8% + + + (75/80) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 95.8% + + + (91/95) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 81.6% + + + (62/76) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 96.8% + + + (120/124) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 90.7% + + + (147/162) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 95.7% + + + (22/23) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 93.1% + + + (27/29) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 87.9% + + + (29/33) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96% + + + (24/25) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 93.9% + + + (108/115) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + 94.7% + + + (18/19) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 88.7% + + + (141/159) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 68.3% + + + (56/82) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 70.8% + + + (63/89) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 41.4% + + + (48/116) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/7) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/14) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..ac6eb4c840 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,1169 @@ + + + + + + Coverage Report > com.codahale.metrics + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics + + 90.9% + + + (80/88) + + + + 78.6% + + + (495/630) + + + + 86.3% + + + (1478/1713) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
WeightedSnapshot + + 100% + + + (2/2) + + + + 100% + + + (10/10) + + + + 98.2% + + + (54/55) + +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 98% + + + (48/49) + +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 95.5% + + + (21/22) + +
Timer + + 100% + + + (2/2) + + + + 100% + + + (20/20) + + + + 94.9% + + + (37/39) + +
Snapshot + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (7/7) + +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 93.1% + + + (27/29) + +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 100% + + + (63/63) + +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/7) + +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/10) + +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/14) + +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 87.9% + + + (29/33) + +
Slf4jReporter + + 66.7% + + + (6/9) + + + + 78.8% + + + (41/52) + + + + 88.7% + + + (141/159) + +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
ScheduledReporter + + 100% + + + (2/2) + + + + 92.3% + + + (24/26) + + + + 81.6% + + + (62/76) + +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (6/6) + + + + 100% + + + (11/11) + +
NoopMetricRegistry + + 90.9% + + + (10/11) + + + + 39.6% + + + (44/111) + + + + 41.4% + + + (48/116) + +
MetricRegistryListener + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 100% + + + (11/11) + +
MetricRegistry + + 100% + + + (13/13) + + + + 91.6% + + + (76/83) + + + + 90.7% + + + (147/162) + +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (19/19) + +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 95.7% + + + (22/23) + +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (4/4) + + + + 96.3% + + + (26/27) + + + + 93.8% + + + (75/80) + +
InstrumentedThreadFactory + + 100% + + + (2/2) + + + + 85.7% + + + (6/7) + + + + 94.7% + + + (18/19) + +
InstrumentedScheduledExecutorService + + 100% + + + (4/4) + + + + 60.7% + + + (17/28) + + + + 68.3% + + + (56/82) + +
InstrumentedExecutorService + + 100% + + + (3/3) + + + + 50% + + + (11/22) + + + + 70.8% + + + (63/89) + +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (8/8) + +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 96.7% + + + (59/61) + +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96% + + + (24/25) + +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 100% + + + (22/22) + +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (3/3) + +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (5/5) + +
CsvReporter + + 100% + + + (2/2) + + + + 87.5% + + + (21/24) + + + + 93.9% + + + (108/115) + +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (7/7) + +
ConsoleReporter + + 100% + + + (2/2) + + + + 91.7% + + + (22/24) + + + + 96.8% + + + (120/124) + +
Clock + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 100% + + + (6/6) + +
ChunkedAssociativeLongArray + + 100% + + + (2/2) + + + + 94.1% + + + (16/17) + + + + 95.8% + + + (91/95) + +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (20/20) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1.html new file mode 100644 index 0000000000..d82366b3cc --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1.html @@ -0,0 +1,178 @@ + + + + + + + + Coverage Report > CachedGauge + + + + + + +
+ + +

Coverage Summary for Class: CachedGauge (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
CachedGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (20/20) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicLong;
+ import java.util.concurrent.atomic.AtomicReference;
+ 
+ /**
+  * A {@link Gauge} implementation which caches its value for a period of time.
+  *
+  * @param <T> the type of the gauge's value
+  */
+ public abstract class CachedGauge<T> implements Gauge<T> {
+     private final Clock clock;
+     private final AtomicLong reloadAt;
+     private final long timeoutNS;
+     private final AtomicReference<T> value;
+ 
+     /**
+      * Creates a new cached gauge with the given timeout period.
+      *
+      * @param timeout     the timeout
+      * @param timeoutUnit the unit of {@code timeout}
+      */
+     protected CachedGauge(long timeout, TimeUnit timeoutUnit) {
+         this(Clock.defaultClock(), timeout, timeoutUnit);
+     }
+ 
+     /**
+      * Creates a new cached gauge with the given clock and timeout period.
+      *
+      * @param clock       the clock used to calculate the timeout
+      * @param timeout     the timeout
+      * @param timeoutUnit the unit of {@code timeout}
+      */
+     protected CachedGauge(Clock clock, long timeout, TimeUnit timeoutUnit) {
+         this.clock = clock;
+         this.reloadAt = new AtomicLong(clock.getTick());
+         this.timeoutNS = timeoutUnit.toNanos(timeout);
+         this.value = new AtomicReference<>();
+     }
+ 
+     /**
+      * Loads the value and returns it.
+      *
+      * @return the new value
+      */
+     protected abstract T loadValue();
+ 
+     @Override
+     public T getValue() {
+         T currentValue = this.value.get();
+         if (shouldLoad() || currentValue == null) {
+             T newValue = loadValue();
+             if (!this.value.compareAndSet(currentValue, newValue)) {
+                 return this.value.get();
+             }
+             return newValue;
+         }
+         return currentValue;
+     }
+ 
+     private boolean shouldLoad() {
+         for ( ;; ) {
+             final long time = clock.getTick();
+             final long current = reloadAt.get();
+             if (current > time) {
+                 return false;
+             }
+             if (reloadAt.compareAndSet(current, time + timeoutNS)) {
+                 return true;
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-10.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-10.html new file mode 100644 index 0000000000..0bdb354f27 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-10.html @@ -0,0 +1,203 @@ + + + + + + + + Coverage Report > InstrumentedThreadFactory + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedThreadFactory (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedThreadFactory + + 80% + + + (4/5) + + + + 91.7% + + + (11/12) + +
InstrumentedThreadFactory$InstrumentedRunnable + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
Total + + 85.7% + + + (6/7) + + + + 94.7% + + + (18/19) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.ThreadFactory;
+ import java.util.concurrent.atomic.AtomicLong;
+ 
+ /**
+  * A {@link ThreadFactory} that monitors the number of threads created, running and terminated.
+  * <p>
+  * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
+  * "your-thread-delegate.created", "your-thread-delegate.running", etc.
+  */
+ public class InstrumentedThreadFactory implements ThreadFactory {
+     private static final AtomicLong NAME_COUNTER = new AtomicLong();
+ 
+     private final ThreadFactory delegate;
+     private final Meter created;
+     private final Counter running;
+     private final Meter terminated;
+ 
+     /**
+      * Wraps a {@link ThreadFactory}, uses a default auto-generated name.
+      *
+      * @param delegate {@link ThreadFactory} to wrap.
+      * @param registry {@link MetricRegistry} that will contain the metrics.
+      */
+     public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry) {
+         this(delegate, registry, "instrumented-thread-delegate-" + NAME_COUNTER.incrementAndGet());
+     }
+ 
+     /**
+      * Wraps a {@link ThreadFactory} with an explicit name.
+      *
+      * @param delegate {@link ThreadFactory} to wrap.
+      * @param registry {@link MetricRegistry} that will contain the metrics.
+      * @param name     name for this delegate.
+      */
+     public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry, String name) {
+         this.delegate = delegate;
+         this.created = registry.meter(MetricRegistry.name(name, "created"));
+         this.running = registry.counter(MetricRegistry.name(name, "running"));
+         this.terminated = registry.meter(MetricRegistry.name(name, "terminated"));
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Thread newThread(Runnable runnable) {
+         Runnable wrappedRunnable = new InstrumentedRunnable(runnable);
+         Thread thread = delegate.newThread(wrappedRunnable);
+         created.mark();
+         return thread;
+     }
+ 
+     private class InstrumentedRunnable implements Runnable {
+         private final Runnable task;
+ 
+         InstrumentedRunnable(Runnable task) {
+             this.task = task;
+         }
+ 
+         @Override
+         public void run() {
+             running.inc();
+             try {
+                 task.run();
+             } finally {
+                 running.dec();
+                 terminated.mark();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-11.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-11.html new file mode 100644 index 0000000000..1e94b2fa67 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-11.html @@ -0,0 +1,441 @@ + + + + + + + + Coverage Report > LockFreeExponentiallyDecayingReservoir + + + + + + +
+ + +

Coverage Summary for Class: LockFreeExponentiallyDecayingReservoir (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
LockFreeExponentiallyDecayingReservoir + + 100% + + + (9/9) + + + + 100% + + + (23/23) + +
LockFreeExponentiallyDecayingReservoir$1
LockFreeExponentiallyDecayingReservoir$Builder + + 87.5% + + + (7/8) + + + + 83.3% + + + (15/18) + +
LockFreeExponentiallyDecayingReservoir$RescalingConsumer + + 100% + + + (3/3) + + + + 100% + + + (9/9) + +
LockFreeExponentiallyDecayingReservoir$State + + 100% + + + (7/7) + + + + 93.3% + + + (28/30) + +
Total + + 96.3% + + + (26/27) + + + + 93.8% + + + (75/80) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import com.codahale.metrics.WeightedSnapshot.WeightedSample;
+ 
+ import java.time.Duration;
+ import java.util.Objects;
+ import java.util.concurrent.ConcurrentSkipListMap;
+ import java.util.concurrent.ThreadLocalRandom;
+ import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
+ import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
+ import java.util.function.BiConsumer;
+ 
+ /**
+  * A lock-free exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al's
+  * forward-decaying priority reservoir sampling method to produce a statistically representative
+  * sampling reservoir, exponentially biased towards newer entries.
+  *
+  * @see <a href="http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf">
+  * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE '09:
+  * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)</a>
+  *
+  * {@link LockFreeExponentiallyDecayingReservoir} is based closely on the {@link ExponentiallyDecayingReservoir},
+  * however it provides looser guarantees while completely avoiding locks.
+  *
+  * Looser guarantees:
+  * <ul>
+  *     <li> Updates which occur concurrently with rescaling may be discarded if the orphaned state node is updated after
+  *     rescale has replaced it. This condition has a greater probability as the rescale interval is reduced due to the
+  *     increased frequency of rescaling. {@link #rescaleThresholdNanos} values below 30 seconds are not recommended.
+  *     <li> Given a small rescale threshold, updates may attempt to rescale into a new bucket, but lose the CAS race
+  *     and update into a newer bucket than expected. In these cases the measurement weight is reduced accordingly.
+  *     <li>In the worst case, all concurrent threads updating the reservoir may attempt to rescale rather than
+  *     a single thread holding an exclusive write lock. It's expected that the configuration is set such that
+  *     rescaling is substantially less common than updating at peak load. Even so, when size is reasonably small
+  *     it can be more efficient to rescale than to park and context switch.
+  * </ul>
+  *
+  * @author <a href="mailto:ckozak@ckozak.net">Carter Kozak</a>
+  */
+ public final class LockFreeExponentiallyDecayingReservoir implements Reservoir {
+ 
+     private static final double SECONDS_PER_NANO = .000_000_001D;
+     private static final AtomicReferenceFieldUpdater<LockFreeExponentiallyDecayingReservoir, State> stateUpdater =
+             AtomicReferenceFieldUpdater.newUpdater(LockFreeExponentiallyDecayingReservoir.class, State.class, "state");
+ 
+     private final int size;
+     private final long rescaleThresholdNanos;
+     private final Clock clock;
+ 
+     private volatile State state;
+ 
+     private static final class State {
+ 
+         private static final AtomicIntegerFieldUpdater<State> countUpdater =
+                 AtomicIntegerFieldUpdater.newUpdater(State.class, "count");
+ 
+         private final double alphaNanos;
+         private final int size;
+         private final long startTick;
+         // Count is updated after samples are successfully added to the map.
+         private final ConcurrentSkipListMap<Double, WeightedSample> values;
+ 
+         private volatile int count;
+ 
+         State(
+                 double alphaNanos,
+                 int size,
+                 long startTick,
+                 int count,
+                 ConcurrentSkipListMap<Double, WeightedSample> values) {
+             this.alphaNanos = alphaNanos;
+             this.size = size;
+             this.startTick = startTick;
+             this.values = values;
+             this.count = count;
+         }
+ 
+         private void update(long value, long timestampNanos) {
+             double itemWeight = weight(timestampNanos - startTick);
+             double priority = itemWeight / ThreadLocalRandom.current().nextDouble();
+             boolean mapIsFull = count >= size;
+             if (!mapIsFull || values.firstKey() < priority) {
+                 addSample(priority, value, itemWeight, mapIsFull);
+             }
+         }
+ 
+         private void addSample(double priority, long value, double itemWeight, boolean bypassIncrement) {
+             if (values.putIfAbsent(priority, new WeightedSample(value, itemWeight)) == null
+                     && (bypassIncrement || countUpdater.incrementAndGet(this) > size)) {
+                 values.pollFirstEntry();
+             }
+         }
+ 
+         /* "A common feature of the above techniques—indeed, the key technique that
+          * allows us to track the decayed weights efficiently—is that they maintain
+          * counts and other quantities based on g(ti ? L), and only scale by g(t ? L)
+          * at query time. But while g(ti ?L)/g(t?L) is guaranteed to lie between zero
+          * and one, the intermediate values of g(ti ? L) could become very large. For
+          * polynomial functions, these values should not grow too large, and should be
+          * effectively represented in practice by floating point values without loss of
+          * precision. For exponential functions, these values could grow quite large as
+          * new values of (ti ? L) become large, and potentially exceed the capacity of
+          * common floating point types. However, since the values stored by the
+          * algorithms are linear combinations of g values (scaled sums), they can be
+          * rescaled relative to a new landmark. That is, by the analysis of exponential
+          * decay in Section III-A, the choice of L does not affect the final result. We
+          * can therefore multiply each value based on L by a factor of exp(??(L? ? L)),
+          * and obtain the correct value as if we had instead computed relative to a new
+          * landmark L? (and then use this new L? at query time). This can be done with
+          * a linear pass over whatever data structure is being used."
+          */
+         State rescale(long newTick) {
+             long durationNanos = newTick - startTick;
+             double scalingFactor = Math.exp(-alphaNanos * durationNanos);
+             int newCount = 0;
+             ConcurrentSkipListMap<Double, WeightedSample> newValues = new ConcurrentSkipListMap<>();
+             if (Double.compare(scalingFactor, 0) != 0) {
+                 RescalingConsumer consumer = new RescalingConsumer(scalingFactor, newValues);
+                 values.forEach(consumer);
+                 // make sure the counter is in sync with the number of stored samples.
+                 newCount = consumer.count;
+             }
+             // It's possible that more values were added while the map was scanned, those with the
+             // minimum priorities are removed.
+             while (newCount > size) {
+                 Objects.requireNonNull(newValues.pollFirstEntry(), "Expected an entry");
+                 newCount--;
+             }
+             return new State(alphaNanos, size, newTick, newCount, newValues);
+         }
+ 
+         private double weight(long durationNanos) {
+             return Math.exp(alphaNanos * durationNanos);
+         }
+     }
+ 
+     private static final class RescalingConsumer implements BiConsumer<Double, WeightedSample> {
+         private final double scalingFactor;
+         private final ConcurrentSkipListMap<Double, WeightedSample> values;
+         private int count;
+ 
+         RescalingConsumer(double scalingFactor, ConcurrentSkipListMap<Double, WeightedSample> values) {
+             this.scalingFactor = scalingFactor;
+             this.values = values;
+         }
+ 
+         @Override
+         public void accept(Double priority, WeightedSample sample) {
+             double newWeight = sample.weight * scalingFactor;
+             if (Double.compare(newWeight, 0) == 0) {
+                 return;
+             }
+             WeightedSample newSample = new WeightedSample(sample.value, newWeight);
+             if (values.put(priority * scalingFactor, newSample) == null) {
+                 count++;
+             }
+         }
+     }
+ 
+     private LockFreeExponentiallyDecayingReservoir(int size, double alpha, Duration rescaleThreshold, Clock clock) {
+         // Scale alpha to nanoseconds
+         double alphaNanos = alpha * SECONDS_PER_NANO;
+         this.size = size;
+         this.clock = clock;
+         this.rescaleThresholdNanos = rescaleThreshold.toNanos();
+         this.state = new State(alphaNanos, size, clock.getTick(), 0, new ConcurrentSkipListMap<>());
+     }
+ 
+     @Override
+     public int size() {
+         return Math.min(size, state.count);
+     }
+ 
+     @Override
+     public void update(long value) {
+         long now = clock.getTick();
+         rescaleIfNeeded(now).update(value, now);
+     }
+ 
+     private State rescaleIfNeeded(long currentTick) {
+         // This method is optimized for size so the check may be quickly inlined.
+         // Rescaling occurs substantially less frequently than the check itself.
+         State stateSnapshot = this.state;
+         if (currentTick - stateSnapshot.startTick >= rescaleThresholdNanos) {
+             return doRescale(currentTick, stateSnapshot);
+         }
+         return stateSnapshot;
+     }
+ 
+     private State doRescale(long currentTick, State stateSnapshot) {
+         State newState = stateSnapshot.rescale(currentTick);
+         if (stateUpdater.compareAndSet(this, stateSnapshot, newState)) {
+             // newState successfully installed
+             return newState;
+         }
+         // Otherwise another thread has won the race and we can return the result of a volatile read.
+         // It's possible this has taken so long that another update is required, however that's unlikely
+         // and no worse than the standard race between a rescale and update.
+         return this.state;
+     }
+ 
+     @Override
+     public Snapshot getSnapshot() {
+         State stateSnapshot = rescaleIfNeeded(clock.getTick());
+         return new WeightedSnapshot(stateSnapshot.values.values());
+     }
+ 
+     public static Builder builder() {
+         return new Builder();
+     }
+ 
+     /**
+      * By default this uses a size of 1028 elements, which offers a 99.9%
+      * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
+      * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
+      */
+     public static final class Builder {
+         private static final int DEFAULT_SIZE = 1028;
+         private static final double DEFAULT_ALPHA = 0.015D;
+         private static final Duration DEFAULT_RESCALE_THRESHOLD = Duration.ofHours(1);
+ 
+         private int size = DEFAULT_SIZE;
+         private double alpha = DEFAULT_ALPHA;
+         private Duration rescaleThreshold = DEFAULT_RESCALE_THRESHOLD;
+         private Clock clock = Clock.defaultClock();
+ 
+         private Builder() {}
+ 
+         /**
+          * Maximum number of samples to keep in the reservoir. Once this number is reached older samples are
+          * replaced (based on weight, with some amount of random jitter).
+          */
+         public Builder size(int value) {
+             if (value <= 0) {
+                 throw new IllegalArgumentException(
+                         "LockFreeExponentiallyDecayingReservoir size must be positive: " + value);
+             }
+             this.size = value;
+             return this;
+         }
+ 
+         /**
+          * Alpha is the exponential decay factor. Higher values bias results more heavily toward newer values.
+          */
+         public Builder alpha(double value) {
+             this.alpha = value;
+             return this;
+         }
+ 
+         /**
+          * Interval at which this reservoir is rescaled.
+          */
+         public Builder rescaleThreshold(Duration value) {
+             this.rescaleThreshold = Objects.requireNonNull(value, "rescaleThreshold is required");
+             return this;
+         }
+ 
+         /**
+          * Clock instance used for decay.
+          */
+         public Builder clock(Clock value) {
+             this.clock = Objects.requireNonNull(value, "clock is required");
+             return this;
+         }
+ 
+         public Reservoir build() {
+             return new LockFreeExponentiallyDecayingReservoir(size, alpha, rescaleThreshold, clock);
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-12.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-12.html new file mode 100644 index 0000000000..dd0af680ce --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-12.html @@ -0,0 +1,210 @@ + + + + + + + + Coverage Report > Meter + + + + + + +
+ + +

Coverage Summary for Class: Meter (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
Meter + + 100% + + + (1/1) + + + + 90.9% + + + (10/11) + + + + 95.7% + + + (22/23) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.LongAdder;
+ 
+ /**
+  * A meter metric which measures mean throughput and one-, five-, and fifteen-minute
+  * moving average throughputs.
+  *
+  * @see MovingAverages
+  */
+ public class Meter implements Metered {
+ 
+     private final MovingAverages movingAverages;
+     private final LongAdder count = new LongAdder();
+     private final long startTime;
+     private final Clock clock;
+ 
+     /**
+      * Creates a new {@link Meter}.
+      *
+      * @param movingAverages the {@link MovingAverages} implementation to use
+      */
+     public Meter(MovingAverages movingAverages) {
+         this(movingAverages, Clock.defaultClock());
+     }
+ 
+     /**
+      * Creates a new {@link Meter}.
+      */
+     public Meter() {
+         this(Clock.defaultClock());
+     }
+ 
+     /**
+      * Creates a new {@link Meter}.
+      *
+      * @param clock the clock to use for the meter ticks
+      */
+     public Meter(Clock clock) {
+         this(new ExponentialMovingAverages(clock), clock);
+     }
+ 
+     /**
+      * Creates a new {@link Meter}.
+      *
+      * @param movingAverages the {@link MovingAverages} implementation to use
+      * @param clock          the clock to use for the meter ticks
+      */
+     public Meter(MovingAverages movingAverages, Clock clock) {
+         this.movingAverages = movingAverages;
+         this.clock = clock;
+         this.startTime = this.clock.getTick();
+     }
+ 
+     /**
+      * Mark the occurrence of an event.
+      */
+     public void mark() {
+         mark(1);
+     }
+ 
+     /**
+      * Mark the occurrence of a given number of events.
+      *
+      * @param n the number of events
+      */
+     public void mark(long n) {
+         movingAverages.tickIfNecessary();
+         count.add(n);
+         movingAverages.update(n);
+     }
+ 
+     @Override
+     public long getCount() {
+         return count.sum();
+     }
+ 
+     @Override
+     public double getFifteenMinuteRate() {
+         movingAverages.tickIfNecessary();
+         return movingAverages.getM15Rate();
+     }
+ 
+     @Override
+     public double getFiveMinuteRate() {
+         movingAverages.tickIfNecessary();
+         return movingAverages.getM5Rate();
+     }
+ 
+     @Override
+     public double getMeanRate() {
+         if (getCount() == 0) {
+             return 0.0;
+         } else {
+             final double elapsed = clock.getTick() - startTime;
+             return getCount() / elapsed * TimeUnit.SECONDS.toNanos(1);
+         }
+     }
+ 
+     @Override
+     public double getOneMinuteRate() {
+         movingAverages.tickIfNecessary();
+         return movingAverages.getM1Rate();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-13.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-13.html new file mode 100644 index 0000000000..85fc518da7 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-13.html @@ -0,0 +1,137 @@ + + + + + + + + Coverage Report > MetricAttribute + + + + + + +
+ + +

Coverage Summary for Class: MetricAttribute (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
MetricAttribute + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (19/19) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * Represents attributes of metrics which can be reported.
+  */
+ public enum MetricAttribute {
+ 
+     MAX("max"),
+     MEAN("mean"),
+     MIN("min"),
+     STDDEV("stddev"),
+     P50("p50"),
+     P75("p75"),
+     P95("p95"),
+     P98("p98"),
+     P99("p99"),
+     P999("p999"),
+     COUNT("count"),
+     M1_RATE("m1_rate"),
+     M5_RATE("m5_rate"),
+     M15_RATE("m15_rate"),
+     MEAN_RATE("mean_rate");
+ 
+     private final String code;
+ 
+     MetricAttribute(String code) {
+         this.code = code;
+     }
+ 
+     public String getCode() {
+         return code;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-14.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-14.html new file mode 100644 index 0000000000..d8d5bb8eeb --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-14.html @@ -0,0 +1,136 @@ + + + + + + + + Coverage Report > MetricFilter + + + + + + +
+ + +

Coverage Summary for Class: MetricFilter (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
MetricFilter + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * A filter used to determine whether or not a metric should be reported, among other things.
+  */
+ public interface MetricFilter {
+     /**
+      * Matches all metrics, regardless of type or name.
+      */
+     MetricFilter ALL = (name, metric) -> true;
+ 
+     static MetricFilter startsWith(String prefix) {
+         return (name, metric) -> name.startsWith(prefix);
+     }
+ 
+     static MetricFilter endsWith(String suffix) {
+         return (name, metric) -> name.endsWith(suffix);
+     }
+ 
+     static MetricFilter contains(String substring) {
+         return (name, metric) -> name.contains(substring);
+     }
+ 
+     /**
+      * Returns {@code true} if the metric matches the filter; {@code false} otherwise.
+      *
+      * @param name   the metric's name
+      * @param metric the metric
+      * @return {@code true} if the metric matches the filter
+      */
+     boolean matches(String name, Metric metric);
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-15.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-15.html new file mode 100644 index 0000000000..27e4a83157 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-15.html @@ -0,0 +1,1026 @@ + + + + + + + + Coverage Report > MetricRegistry + + + + + + +
+ + +

Coverage Summary for Class: MetricRegistry (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
MetricRegistry + + 100% + + + (41/41) + + + + 93.1% + + + (108/116) + +
MetricRegistry$1 + + 36.4% + + + (4/11) + + + + 36.4% + + + (4/11) + +
MetricRegistry$2 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$3 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$4 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$5 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$6 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$MetricBuilder + + 100% + + + (1/1) + + + + 100% + + + (5/5) + +
MetricRegistry$MetricBuilder$1 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$MetricBuilder$2 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$MetricBuilder$3 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$MetricBuilder$4 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$MetricBuilder$5 + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
MetricRegistry$MetricSupplier
Total + + 91.6% + + + (76/83) + + + + 90.7% + + + (147/162) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.Collections;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.SortedMap;
+ import java.util.SortedSet;
+ import java.util.TreeMap;
+ import java.util.TreeSet;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ import java.util.concurrent.CopyOnWriteArrayList;
+ 
+ /**
+  * A registry of metric instances.
+  */
+ public class MetricRegistry implements MetricSet {
+     /**
+      * Concatenates elements to form a dotted name, eliding any null values or empty strings.
+      *
+      * @param name  the first element of the name
+      * @param names the remaining elements of the name
+      * @return {@code name} and {@code names} concatenated by periods
+      */
+     public static String name(String name, String... names) {
+         final StringBuilder builder = new StringBuilder();
+         append(builder, name);
+         if (names != null) {
+             for (String s : names) {
+                 append(builder, s);
+             }
+         }
+         return builder.toString();
+     }
+ 
+     /**
+      * Concatenates a class name and elements to form a dotted name, eliding any null values or
+      * empty strings.
+      *
+      * @param klass the first element of the name
+      * @param names the remaining elements of the name
+      * @return {@code klass} and {@code names} concatenated by periods
+      */
+     public static String name(Class<?> klass, String... names) {
+         return name(klass.getName(), names);
+     }
+ 
+     private static void append(StringBuilder builder, String part) {
+         if (part != null && !part.isEmpty()) {
+             if (builder.length() > 0) {
+                 builder.append('.');
+             }
+             builder.append(part);
+         }
+     }
+ 
+     private final ConcurrentMap<String, Metric> metrics;
+     private final List<MetricRegistryListener> listeners;
+ 
+     /**
+      * Creates a new {@link MetricRegistry}.
+      */
+     public MetricRegistry() {
+         this.metrics = buildMap();
+         this.listeners = new CopyOnWriteArrayList<>();
+     }
+ 
+     /**
+      * Creates a new {@link ConcurrentMap} implementation for use inside the registry. Override this
+      * to create a {@link MetricRegistry} with space- or time-bounded metric lifecycles, for
+      * example.
+      *
+      * @return a new {@link ConcurrentMap}
+      */
+     protected ConcurrentMap<String, Metric> buildMap() {
+         return new ConcurrentHashMap<>();
+     }
+ 
+     /**
+      * Given a {@link Gauge}, registers it under the given name and returns it
+      *
+      * @param name the name of the gauge
+      * @param <T>  the type of the gauge's value
+      * @return the registered {@link Gauge}
+      * @since 4.2.10
+      */
+     public <T> Gauge<T> registerGauge(String name, Gauge<T> metric) throws IllegalArgumentException {
+         return register(name, metric);
+     }
+ 
+     /**
+      * Given a {@link Metric}, registers it under the given name.
+      *
+      * @param name   the name of the metric
+      * @param metric the metric
+      * @param <T>    the type of the metric
+      * @return {@code metric}
+      * @throws IllegalArgumentException if the name is already registered or metric variable is null
+      */
+     @SuppressWarnings("unchecked")
+     public <T extends Metric> T register(String name, T metric) throws IllegalArgumentException {
+ 
+         if (metric == null) {
+             throw new NullPointerException("metric == null");
+         }
+ 
+         if (metric instanceof MetricRegistry) {
+             final MetricRegistry childRegistry = (MetricRegistry) metric;
+             final String childName = name;
+             childRegistry.addListener(new MetricRegistryListener() {
+                 @Override
+                 public void onGaugeAdded(String name, Gauge<?> gauge) {
+                     register(name(childName, name), gauge);
+                 }
+ 
+                 @Override
+                 public void onGaugeRemoved(String name) {
+                     remove(name(childName, name));
+                 }
+ 
+                 @Override
+                 public void onCounterAdded(String name, Counter counter) {
+                     register(name(childName, name), counter);
+                 }
+ 
+                 @Override
+                 public void onCounterRemoved(String name) {
+                     remove(name(childName, name));
+                 }
+ 
+                 @Override
+                 public void onHistogramAdded(String name, Histogram histogram) {
+                     register(name(childName, name), histogram);
+                 }
+ 
+                 @Override
+                 public void onHistogramRemoved(String name) {
+                     remove(name(childName, name));
+                 }
+ 
+                 @Override
+                 public void onMeterAdded(String name, Meter meter) {
+                     register(name(childName, name), meter);
+                 }
+ 
+                 @Override
+                 public void onMeterRemoved(String name) {
+                     remove(name(childName, name));
+                 }
+ 
+                 @Override
+                 public void onTimerAdded(String name, Timer timer) {
+                     register(name(childName, name), timer);
+                 }
+ 
+                 @Override
+                 public void onTimerRemoved(String name) {
+                     remove(name(childName, name));
+                 }
+             });
+         } else if (metric instanceof MetricSet) {
+             registerAll(name, (MetricSet) metric);
+         } else {
+             final Metric existing = metrics.putIfAbsent(name, metric);
+             if (existing == null) {
+                 onMetricAdded(name, metric);
+             } else {
+                 throw new IllegalArgumentException("A metric named " + name + " already exists");
+             }
+         }
+         return metric;
+     }
+ 
+     /**
+      * Given a metric set, registers them.
+      *
+      * @param metrics a set of metrics
+      * @throws IllegalArgumentException if any of the names are already registered
+      */
+     public void registerAll(MetricSet metrics) throws IllegalArgumentException {
+         registerAll(null, metrics);
+     }
+ 
+     /**
+      * Return the {@link Counter} registered under this name; or create and register
+      * a new {@link Counter} if none is registered.
+      *
+      * @param name the name of the metric
+      * @return a new or pre-existing {@link Counter}
+      */
+     public Counter counter(String name) {
+         return getOrAdd(name, MetricBuilder.COUNTERS);
+     }
+ 
+     /**
+      * Return the {@link Counter} registered under this name; or create and register
+      * a new {@link Counter} using the provided MetricSupplier if none is registered.
+      *
+      * @param name     the name of the metric
+      * @param supplier a MetricSupplier that can be used to manufacture a counter.
+      * @return a new or pre-existing {@link Counter}
+      */
+     public Counter counter(String name, final MetricSupplier<Counter> supplier) {
+         return getOrAdd(name, new MetricBuilder<Counter>() {
+             @Override
+             public Counter newMetric() {
+                 return supplier.newMetric();
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Counter.class.isInstance(metric);
+             }
+         });
+     }
+ 
+     /**
+      * Return the {@link Histogram} registered under this name; or create and register
+      * a new {@link Histogram} if none is registered.
+      *
+      * @param name the name of the metric
+      * @return a new or pre-existing {@link Histogram}
+      */
+     public Histogram histogram(String name) {
+         return getOrAdd(name, MetricBuilder.HISTOGRAMS);
+     }
+ 
+     /**
+      * Return the {@link Histogram} registered under this name; or create and register
+      * a new {@link Histogram} using the provided MetricSupplier if none is registered.
+      *
+      * @param name     the name of the metric
+      * @param supplier a MetricSupplier that can be used to manufacture a histogram
+      * @return a new or pre-existing {@link Histogram}
+      */
+     public Histogram histogram(String name, final MetricSupplier<Histogram> supplier) {
+         return getOrAdd(name, new MetricBuilder<Histogram>() {
+             @Override
+             public Histogram newMetric() {
+                 return supplier.newMetric();
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Histogram.class.isInstance(metric);
+             }
+         });
+     }
+ 
+     /**
+      * Return the {@link Meter} registered under this name; or create and register
+      * a new {@link Meter} if none is registered.
+      *
+      * @param name the name of the metric
+      * @return a new or pre-existing {@link Meter}
+      */
+     public Meter meter(String name) {
+         return getOrAdd(name, MetricBuilder.METERS);
+     }
+ 
+     /**
+      * Return the {@link Meter} registered under this name; or create and register
+      * a new {@link Meter} using the provided MetricSupplier if none is registered.
+      *
+      * @param name     the name of the metric
+      * @param supplier a MetricSupplier that can be used to manufacture a Meter
+      * @return a new or pre-existing {@link Meter}
+      */
+     public Meter meter(String name, final MetricSupplier<Meter> supplier) {
+         return getOrAdd(name, new MetricBuilder<Meter>() {
+             @Override
+             public Meter newMetric() {
+                 return supplier.newMetric();
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Meter.class.isInstance(metric);
+             }
+         });
+     }
+ 
+     /**
+      * Return the {@link Timer} registered under this name; or create and register
+      * a new {@link Timer} if none is registered.
+      *
+      * @param name the name of the metric
+      * @return a new or pre-existing {@link Timer}
+      */
+     public Timer timer(String name) {
+         return getOrAdd(name, MetricBuilder.TIMERS);
+     }
+ 
+     /**
+      * Return the {@link Timer} registered under this name; or create and register
+      * a new {@link Timer} using the provided MetricSupplier if none is registered.
+      *
+      * @param name     the name of the metric
+      * @param supplier a MetricSupplier that can be used to manufacture a Timer
+      * @return a new or pre-existing {@link Timer}
+      */
+     public Timer timer(String name, final MetricSupplier<Timer> supplier) {
+         return getOrAdd(name, new MetricBuilder<Timer>() {
+             @Override
+             public Timer newMetric() {
+                 return supplier.newMetric();
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Timer.class.isInstance(metric);
+             }
+         });
+     }
+ 
+     /**
+      * Return the {@link Gauge} registered under this name; or create and register
+      * a new {@link SettableGauge} if none is registered.
+      *
+      * @param name the name of the metric
+      * @return a pre-existing {@link Gauge} or a new {@link SettableGauge}
+      * @since 4.2
+      */
+     @SuppressWarnings({"rawtypes", "unchecked"})
+     public <T extends Gauge> T gauge(String name) {
+         return (T) getOrAdd(name, MetricBuilder.GAUGES);
+     }
+ 
+     /**
+      * Return the {@link Gauge} registered under this name; or create and register
+      * a new {@link Gauge} using the provided MetricSupplier if none is registered.
+      *
+      * @param name     the name of the metric
+      * @param supplier a MetricSupplier that can be used to manufacture a Gauge
+      * @return a new or pre-existing {@link Gauge}
+      */
+     @SuppressWarnings("rawtypes")
+     public <T extends Gauge> T gauge(String name, final MetricSupplier<T> supplier) {
+         return getOrAdd(name, new MetricBuilder<T>() {
+             @Override
+             public T newMetric() {
+                 return supplier.newMetric();
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Gauge.class.isInstance(metric);
+             }
+         });
+     }
+ 
+ 
+     /**
+      * Removes the metric with the given name.
+      *
+      * @param name the name of the metric
+      * @return whether or not the metric was removed
+      */
+     public boolean remove(String name) {
+         final Metric metric = metrics.remove(name);
+         if (metric != null) {
+             onMetricRemoved(name, metric);
+             return true;
+         }
+         return false;
+     }
+ 
+     /**
+      * Removes all metrics which match the given filter.
+      *
+      * @param filter a filter
+      */
+     public void removeMatching(MetricFilter filter) {
+         for (Map.Entry<String, Metric> entry : metrics.entrySet()) {
+             if (filter.matches(entry.getKey(), entry.getValue())) {
+                 remove(entry.getKey());
+             }
+         }
+     }
+ 
+     /**
+      * Adds a {@link MetricRegistryListener} to a collection of listeners that will be notified on
+      * metric creation.  Listeners will be notified in the order in which they are added.
+      * <p>
+      * <b>N.B.:</b> The listener will be notified of all existing metrics when it first registers.
+      *
+      * @param listener the listener that will be notified
+      */
+     public void addListener(MetricRegistryListener listener) {
+         listeners.add(listener);
+ 
+         for (Map.Entry<String, Metric> entry : metrics.entrySet()) {
+             notifyListenerOfAddedMetric(listener, entry.getValue(), entry.getKey());
+         }
+     }
+ 
+     /**
+      * Removes a {@link MetricRegistryListener} from this registry's collection of listeners.
+      *
+      * @param listener the listener that will be removed
+      */
+     public void removeListener(MetricRegistryListener listener) {
+         listeners.remove(listener);
+     }
+ 
+     /**
+      * Returns a set of the names of all the metrics in the registry.
+      *
+      * @return the names of all the metrics
+      */
+     public SortedSet<String> getNames() {
+         return Collections.unmodifiableSortedSet(new TreeSet<>(metrics.keySet()));
+     }
+ 
+     /**
+      * Returns a map of all the gauges in the registry and their names.
+      *
+      * @return all the gauges in the registry
+      */
+     @SuppressWarnings("rawtypes")
+     public SortedMap<String, Gauge> getGauges() {
+         return getGauges(MetricFilter.ALL);
+     }
+ 
+     /**
+      * Returns a map of all the gauges in the registry and their names which match the given filter.
+      *
+      * @param filter the metric filter to match
+      * @return all the gauges in the registry
+      */
+     @SuppressWarnings("rawtypes")
+     public SortedMap<String, Gauge> getGauges(MetricFilter filter) {
+         return getMetrics(Gauge.class, filter);
+     }
+ 
+     /**
+      * Returns a map of all the counters in the registry and their names.
+      *
+      * @return all the counters in the registry
+      */
+     public SortedMap<String, Counter> getCounters() {
+         return getCounters(MetricFilter.ALL);
+     }
+ 
+     /**
+      * Returns a map of all the counters in the registry and their names which match the given
+      * filter.
+      *
+      * @param filter the metric filter to match
+      * @return all the counters in the registry
+      */
+     public SortedMap<String, Counter> getCounters(MetricFilter filter) {
+         return getMetrics(Counter.class, filter);
+     }
+ 
+     /**
+      * Returns a map of all the histograms in the registry and their names.
+      *
+      * @return all the histograms in the registry
+      */
+     public SortedMap<String, Histogram> getHistograms() {
+         return getHistograms(MetricFilter.ALL);
+     }
+ 
+     /**
+      * Returns a map of all the histograms in the registry and their names which match the given
+      * filter.
+      *
+      * @param filter the metric filter to match
+      * @return all the histograms in the registry
+      */
+     public SortedMap<String, Histogram> getHistograms(MetricFilter filter) {
+         return getMetrics(Histogram.class, filter);
+     }
+ 
+     /**
+      * Returns a map of all the meters in the registry and their names.
+      *
+      * @return all the meters in the registry
+      */
+     public SortedMap<String, Meter> getMeters() {
+         return getMeters(MetricFilter.ALL);
+     }
+ 
+     /**
+      * Returns a map of all the meters in the registry and their names which match the given filter.
+      *
+      * @param filter the metric filter to match
+      * @return all the meters in the registry
+      */
+     public SortedMap<String, Meter> getMeters(MetricFilter filter) {
+         return getMetrics(Meter.class, filter);
+     }
+ 
+     /**
+      * Returns a map of all the timers in the registry and their names.
+      *
+      * @return all the timers in the registry
+      */
+     public SortedMap<String, Timer> getTimers() {
+         return getTimers(MetricFilter.ALL);
+     }
+ 
+     /**
+      * Returns a map of all the timers in the registry and their names which match the given filter.
+      *
+      * @param filter the metric filter to match
+      * @return all the timers in the registry
+      */
+     public SortedMap<String, Timer> getTimers(MetricFilter filter) {
+         return getMetrics(Timer.class, filter);
+     }
+ 
+     @SuppressWarnings("unchecked")
+     private <T extends Metric> T getOrAdd(String name, MetricBuilder<T> builder) {
+         final Metric metric = metrics.get(name);
+         if (builder.isInstance(metric)) {
+             return (T) metric;
+         } else if (metric == null) {
+             try {
+                 return register(name, builder.newMetric());
+             } catch (IllegalArgumentException e) {
+                 final Metric added = metrics.get(name);
+                 if (builder.isInstance(added)) {
+                     return (T) added;
+                 }
+             }
+         }
+         throw new IllegalArgumentException(name + " is already used for a different type of metric");
+     }
+ 
+     @SuppressWarnings("unchecked")
+     private <T extends Metric> SortedMap<String, T> getMetrics(Class<T> klass, MetricFilter filter) {
+         final TreeMap<String, T> timers = new TreeMap<>();
+         for (Map.Entry<String, Metric> entry : metrics.entrySet()) {
+             if (klass.isInstance(entry.getValue()) && filter.matches(entry.getKey(),
+                     entry.getValue())) {
+                 timers.put(entry.getKey(), (T) entry.getValue());
+             }
+         }
+         return Collections.unmodifiableSortedMap(timers);
+     }
+ 
+     private void onMetricAdded(String name, Metric metric) {
+         for (MetricRegistryListener listener : listeners) {
+             notifyListenerOfAddedMetric(listener, metric, name);
+         }
+     }
+ 
+     private void notifyListenerOfAddedMetric(MetricRegistryListener listener, Metric metric, String name) {
+         if (metric instanceof Gauge) {
+             listener.onGaugeAdded(name, (Gauge<?>) metric);
+         } else if (metric instanceof Counter) {
+             listener.onCounterAdded(name, (Counter) metric);
+         } else if (metric instanceof Histogram) {
+             listener.onHistogramAdded(name, (Histogram) metric);
+         } else if (metric instanceof Meter) {
+             listener.onMeterAdded(name, (Meter) metric);
+         } else if (metric instanceof Timer) {
+             listener.onTimerAdded(name, (Timer) metric);
+         } else {
+             throw new IllegalArgumentException("Unknown metric type: " + metric.getClass());
+         }
+     }
+ 
+     private void onMetricRemoved(String name, Metric metric) {
+         for (MetricRegistryListener listener : listeners) {
+             notifyListenerOfRemovedMetric(name, metric, listener);
+         }
+     }
+ 
+     private void notifyListenerOfRemovedMetric(String name, Metric metric, MetricRegistryListener listener) {
+         if (metric instanceof Gauge) {
+             listener.onGaugeRemoved(name);
+         } else if (metric instanceof Counter) {
+             listener.onCounterRemoved(name);
+         } else if (metric instanceof Histogram) {
+             listener.onHistogramRemoved(name);
+         } else if (metric instanceof Meter) {
+             listener.onMeterRemoved(name);
+         } else if (metric instanceof Timer) {
+             listener.onTimerRemoved(name);
+         } else {
+             throw new IllegalArgumentException("Unknown metric type: " + metric.getClass());
+         }
+     }
+ 
+     /**
+      * Given a metric set, registers them with the given prefix prepended to their names.
+      *
+      * @param prefix a name prefix
+      * @param metrics a set of metrics
+      * @throws IllegalArgumentException if any of the names are already registered
+      */
+     public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
+         for (Map.Entry<String, Metric> entry : metrics.getMetrics().entrySet()) {
+             if (entry.getValue() instanceof MetricSet) {
+                 registerAll(name(prefix, entry.getKey()), (MetricSet) entry.getValue());
+             } else {
+                 register(name(prefix, entry.getKey()), entry.getValue());
+             }
+         }
+     }
+ 
+     @Override
+     public Map<String, Metric> getMetrics() {
+         return Collections.unmodifiableMap(metrics);
+     }
+ 
+     @FunctionalInterface
+     public interface MetricSupplier<T extends Metric> {
+         T newMetric();
+     }
+ 
+     /**
+      * A quick and easy way of capturing the notion of default metrics.
+      */
+     private interface MetricBuilder<T extends Metric> {
+         MetricBuilder<Counter> COUNTERS = new MetricBuilder<Counter>() {
+             @Override
+             public Counter newMetric() {
+                 return new Counter();
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Counter.class.isInstance(metric);
+             }
+         };
+ 
+         MetricBuilder<Histogram> HISTOGRAMS = new MetricBuilder<Histogram>() {
+             @Override
+             public Histogram newMetric() {
+                 return new Histogram(new ExponentiallyDecayingReservoir());
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Histogram.class.isInstance(metric);
+             }
+         };
+ 
+         MetricBuilder<Meter> METERS = new MetricBuilder<Meter>() {
+             @Override
+             public Meter newMetric() {
+                 return new Meter();
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Meter.class.isInstance(metric);
+             }
+         };
+ 
+         MetricBuilder<Timer> TIMERS = new MetricBuilder<Timer>() {
+             @Override
+             public Timer newMetric() {
+                 return new Timer();
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Timer.class.isInstance(metric);
+             }
+         };
+ 
+         @SuppressWarnings("rawtypes")
+         MetricBuilder<Gauge> GAUGES = new MetricBuilder<Gauge>() {
+             @Override
+             public Gauge newMetric() {
+                 return new DefaultSettableGauge<>();
+             }
+ 
+             @Override
+             public boolean isInstance(Metric metric) {
+                 return Gauge.class.isInstance(metric);
+             }
+         };
+ 
+         T newMetric();
+ 
+         boolean isInstance(Metric metric);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-16.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-16.html new file mode 100644 index 0000000000..02f0fc9149 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-16.html @@ -0,0 +1,284 @@ + + + + + + + + Coverage Report > MetricRegistryListener + + + + + + +
+ + +

Coverage Summary for Class: MetricRegistryListener (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
MetricRegistryListener$Base + + 100% + + + (11/11) + + + + 100% + + + (11/11) + +
MetricRegistryListener$MockitoMock$0ZB7i3aS
MetricRegistryListener$MockitoMock$0ZB7i3aS$auxiliary$2i8eMJCd
MetricRegistryListener$MockitoMock$0ZB7i3aS$auxiliary$YP16jRUf
MetricRegistryListener$MockitoMock$4lGnejmp
MetricRegistryListener$MockitoMock$4lGnejmp$auxiliary$0vzLcS8R
MetricRegistryListener$MockitoMock$4lGnejmp$auxiliary$r99ky9Xd
MetricRegistryListener$MockitoMock$7IK0weSN
MetricRegistryListener$MockitoMock$7IK0weSN$auxiliary$fyQqmWdo
MetricRegistryListener$MockitoMock$7IK0weSN$auxiliary$smCxXOu4
MetricRegistryListener$MockitoMock$bJRrWwWm
MetricRegistryListener$MockitoMock$bJRrWwWm$auxiliary$0cRM21Y3
MetricRegistryListener$MockitoMock$bJRrWwWm$auxiliary$zK4eZUwC
MetricRegistryListener$MockitoMock$CbJQcrzU
MetricRegistryListener$MockitoMock$CbJQcrzU$auxiliary$aXdr4H5w
MetricRegistryListener$MockitoMock$CbJQcrzU$auxiliary$mJWC2PAz
Total + + 100% + + + (11/11) + + + + 100% + + + (11/11) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.EventListener;
+ 
+ /**
+  * Listeners for events from the registry.  Listeners must be thread-safe.
+  */
+ public interface MetricRegistryListener extends EventListener {
+     /**
+      * A no-op implementation of {@link MetricRegistryListener}.
+      */
+     abstract class Base implements MetricRegistryListener {
+         @Override
+         public void onGaugeAdded(String name, Gauge<?> gauge) {
+         }
+ 
+         @Override
+         public void onGaugeRemoved(String name) {
+         }
+ 
+         @Override
+         public void onCounterAdded(String name, Counter counter) {
+         }
+ 
+         @Override
+         public void onCounterRemoved(String name) {
+         }
+ 
+         @Override
+         public void onHistogramAdded(String name, Histogram histogram) {
+         }
+ 
+         @Override
+         public void onHistogramRemoved(String name) {
+         }
+ 
+         @Override
+         public void onMeterAdded(String name, Meter meter) {
+         }
+ 
+         @Override
+         public void onMeterRemoved(String name) {
+         }
+ 
+         @Override
+         public void onTimerAdded(String name, Timer timer) {
+         }
+ 
+         @Override
+         public void onTimerRemoved(String name) {
+         }
+     }
+ 
+     /**
+      * Called when a {@link Gauge} is added to the registry.
+      *
+      * @param name  the gauge's name
+      * @param gauge the gauge
+      */
+     void onGaugeAdded(String name, Gauge<?> gauge);
+ 
+     /**
+      * Called when a {@link Gauge} is removed from the registry.
+      *
+      * @param name the gauge's name
+      */
+     void onGaugeRemoved(String name);
+ 
+     /**
+      * Called when a {@link Counter} is added to the registry.
+      *
+      * @param name    the counter's name
+      * @param counter the counter
+      */
+     void onCounterAdded(String name, Counter counter);
+ 
+     /**
+      * Called when a {@link Counter} is removed from the registry.
+      *
+      * @param name the counter's name
+      */
+     void onCounterRemoved(String name);
+ 
+     /**
+      * Called when a {@link Histogram} is added to the registry.
+      *
+      * @param name      the histogram's name
+      * @param histogram the histogram
+      */
+     void onHistogramAdded(String name, Histogram histogram);
+ 
+     /**
+      * Called when a {@link Histogram} is removed from the registry.
+      *
+      * @param name the histogram's name
+      */
+     void onHistogramRemoved(String name);
+ 
+     /**
+      * Called when a {@link Meter} is added to the registry.
+      *
+      * @param name  the meter's name
+      * @param meter the meter
+      */
+     void onMeterAdded(String name, Meter meter);
+ 
+     /**
+      * Called when a {@link Meter} is removed from the registry.
+      *
+      * @param name the meter's name
+      */
+     void onMeterRemoved(String name);
+ 
+     /**
+      * Called when a {@link Timer} is added to the registry.
+      *
+      * @param name  the timer's name
+      * @param timer the timer
+      */
+     void onTimerAdded(String name, Timer timer);
+ 
+     /**
+      * Called when a {@link Timer} is removed from the registry.
+      *
+      * @param name the timer's name
+      */
+     void onTimerRemoved(String name);
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-17.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-17.html new file mode 100644 index 0000000000..33322ee281 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-17.html @@ -0,0 +1,1097 @@ + + + + + + + + Coverage Report > NoopMetricRegistry + + + + + + +
+ + +

Coverage Summary for Class: NoopMetricRegistry (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
NoopMetricRegistry + + 81.2% + + + (26/32) + + + + 82.4% + + + (28/34) + +
NoopMetricRegistry$1
NoopMetricRegistry$EmptyConcurrentMap + + 5.9% + + + (1/17) + + + + 5.9% + + + (1/17) + +
NoopMetricRegistry$EmptySnapshot + + 0% + + + (0/10) + + + + 0% + + + (0/11) + +
NoopMetricRegistry$NoopCounter + + 28.6% + + + (2/7) + + + + 28.6% + + + (2/7) + +
NoopMetricRegistry$NoopGauge + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
NoopMetricRegistry$NoopHistogram + + 42.9% + + + (3/7) + + + + 50% + + + (4/8) + +
NoopMetricRegistry$NoopHistogram$1 + + 25% + + + (1/4) + + + + 25% + + + (1/4) + +
NoopMetricRegistry$NoopMeter + + 22.2% + + + (2/9) + + + + 22.2% + + + (2/9) + +
NoopMetricRegistry$NoopTimer + + 14.3% + + + (2/14) + + + + 20% + + + (3/15) + +
NoopMetricRegistry$NoopTimer$Context + + 60% + + + (3/5) + + + + 60% + + + (3/5) + +
NoopMetricRegistry$NoopTimer$Context$1 + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
Total + + 39.6% + + + (44/111) + + + + 41.4% + + + (48/116) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.io.OutputStream;
+ import java.time.Duration;
+ import java.util.Collection;
+ import java.util.Collections;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.SortedMap;
+ import java.util.SortedSet;
+ import java.util.concurrent.Callable;
+ import java.util.concurrent.ConcurrentMap;
+ import java.util.concurrent.TimeUnit;
+ import java.util.function.Supplier;
+ 
+ /**
+  * A registry of metric instances which never creates or registers any metrics and returns no-op implementations of any metric type.
+  *
+  * @since 4.1.17
+  */
+ public final class NoopMetricRegistry extends MetricRegistry {
+     private static final EmptyConcurrentMap<String, Metric> EMPTY_CONCURRENT_MAP = new EmptyConcurrentMap<>();
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     protected ConcurrentMap<String, Metric> buildMap() {
+         return EMPTY_CONCURRENT_MAP;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T extends Metric> T register(String name, T metric) throws IllegalArgumentException {
+         if (metric == null) {
+             throw new NullPointerException("metric == null");
+         }
+         return metric;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void registerAll(MetricSet metrics) throws IllegalArgumentException {
+         // NOP
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Counter counter(String name) {
+         return NoopCounter.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Counter counter(String name, MetricSupplier<Counter> supplier) {
+         return NoopCounter.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Histogram histogram(String name) {
+         return NoopHistogram.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Histogram histogram(String name, MetricSupplier<Histogram> supplier) {
+         return NoopHistogram.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Meter meter(String name) {
+         return NoopMeter.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Meter meter(String name, MetricSupplier<Meter> supplier) {
+         return NoopMeter.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Timer timer(String name) {
+         return NoopTimer.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Timer timer(String name, MetricSupplier<Timer> supplier) {
+         return NoopTimer.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      *
+      * @since 4.2
+      */
+     @Override
+     @SuppressWarnings({"rawtypes", "unchecked"})
+     public <T extends Gauge> T gauge(String name) {
+         return (T) NoopGauge.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     @SuppressWarnings({"rawtypes", "unchecked"})
+     public <T extends Gauge> T gauge(String name, MetricSupplier<T> supplier) {
+         return (T) NoopGauge.INSTANCE;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public boolean remove(String name) {
+         return false;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void removeMatching(MetricFilter filter) {
+         // NOP
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void addListener(MetricRegistryListener listener) {
+         // NOP
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void removeListener(MetricRegistryListener listener) {
+         // NOP
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public SortedSet<String> getNames() {
+         return Collections.emptySortedSet();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     @SuppressWarnings("rawtypes")
+     public SortedMap<String, Gauge> getGauges() {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     @SuppressWarnings("rawtypes")
+     public SortedMap<String, Gauge> getGauges(MetricFilter filter) {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public SortedMap<String, Counter> getCounters() {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public SortedMap<String, Counter> getCounters(MetricFilter filter) {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public SortedMap<String, Histogram> getHistograms() {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public SortedMap<String, Histogram> getHistograms(MetricFilter filter) {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public SortedMap<String, Meter> getMeters() {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public SortedMap<String, Meter> getMeters(MetricFilter filter) {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public SortedMap<String, Timer> getTimers() {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public SortedMap<String, Timer> getTimers(MetricFilter filter) {
+         return Collections.emptySortedMap();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
+         // NOP
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Map<String, Metric> getMetrics() {
+         return Collections.emptyMap();
+     }
+ 
+     static final class NoopGauge<T> implements Gauge<T> {
+         private static final NoopGauge<?> INSTANCE = new NoopGauge<>();
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public T getValue() {
+             return null;
+         }
+     }
+ 
+     private static final class EmptySnapshot extends Snapshot {
+         private static final EmptySnapshot INSTANCE = new EmptySnapshot();
+         private static final long[] EMPTY_LONG_ARRAY = new long[0];
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getValue(double quantile) {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public long[] getValues() {
+             return EMPTY_LONG_ARRAY;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public int size() {
+             return 0;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public long getMax() {
+             return 0L;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getMean() {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public long getMin() {
+             return 0L;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getStdDev() {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void dump(OutputStream output) {
+             // NOP
+         }
+     }
+ 
+     static final class NoopTimer extends Timer {
+         private static final NoopTimer INSTANCE = new NoopTimer();
+         private static final Timer.Context CONTEXT = new NoopTimer.Context();
+ 
+         private static class Context extends Timer.Context {
+             private static final Clock CLOCK = new Clock() {
+                 /**
+                  * {@inheritDoc}
+                  */
+                 @Override
+                 public long getTick() {
+                     return 0L;
+                 }
+ 
+                 /**
+                  * {@inheritDoc}
+                  */
+                 @Override
+                 public long getTime() {
+                     return 0L;
+                 }
+             };
+ 
+             private Context() {
+                 super(INSTANCE, CLOCK);
+             }
+ 
+             /**
+              * {@inheritDoc}
+              */
+             @Override
+             public long stop() {
+                 return 0L;
+             }
+ 
+             /**
+              * {@inheritDoc}
+              */
+             @Override
+             public void close() {
+                 // NOP
+             }
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void update(long duration, TimeUnit unit) {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void update(Duration duration) {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public <T> T time(Callable<T> event) throws Exception {
+             return event.call();
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public <T> T timeSupplier(Supplier<T> event) {
+             return event.get();
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void time(Runnable event) {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public Timer.Context time() {
+             return CONTEXT;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public long getCount() {
+             return 0L;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getFifteenMinuteRate() {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getFiveMinuteRate() {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getMeanRate() {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getOneMinuteRate() {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public Snapshot getSnapshot() {
+             return EmptySnapshot.INSTANCE;
+         }
+     }
+ 
+     static final class NoopHistogram extends Histogram {
+         private static final NoopHistogram INSTANCE = new NoopHistogram();
+         private static final Reservoir EMPTY_RESERVOIR = new Reservoir() {
+             /**
+              * {@inheritDoc}
+              */
+             @Override
+             public int size() {
+                 return 0;
+             }
+ 
+             /**
+              * {@inheritDoc}
+              */
+             @Override
+             public void update(long value) {
+                 // NOP
+             }
+ 
+             /**
+              * {@inheritDoc}
+              */
+             @Override
+             public Snapshot getSnapshot() {
+                 return EmptySnapshot.INSTANCE;
+             }
+         };
+ 
+         private NoopHistogram() {
+             super(EMPTY_RESERVOIR);
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void update(int value) {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void update(long value) {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public long getCount() {
+             return 0L;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public Snapshot getSnapshot() {
+             return EmptySnapshot.INSTANCE;
+         }
+     }
+ 
+     static final class NoopCounter extends Counter {
+         private static final NoopCounter INSTANCE = new NoopCounter();
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void inc() {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void inc(long n) {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void dec() {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void dec(long n) {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public long getCount() {
+             return 0L;
+         }
+     }
+ 
+     static final class NoopMeter extends Meter {
+         private static final NoopMeter INSTANCE = new NoopMeter();
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void mark() {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void mark(long n) {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public long getCount() {
+             return 0L;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getFifteenMinuteRate() {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getFiveMinuteRate() {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getMeanRate() {
+             return 0D;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public double getOneMinuteRate() {
+             return 0D;
+         }
+     }
+ 
+     private static final class EmptyConcurrentMap<K, V> implements ConcurrentMap<K, V> {
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public V putIfAbsent(K key, V value) {
+             return null;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public boolean remove(Object key, Object value) {
+             return false;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public boolean replace(K key, V oldValue, V newValue) {
+             return false;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public V replace(K key, V value) {
+             return null;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public int size() {
+             return 0;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public boolean isEmpty() {
+             return true;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public boolean containsKey(Object key) {
+             return false;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public boolean containsValue(Object value) {
+             return false;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public V get(Object key) {
+             return null;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public V put(K key, V value) {
+             return null;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public V remove(Object key) {
+             return null;
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void putAll(Map<? extends K, ? extends V> m) {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public void clear() {
+             // NOP
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public Set<K> keySet() {
+             return Collections.emptySet();
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public Collection<V> values() {
+             return Collections.emptySet();
+         }
+ 
+         /**
+          * {@inheritDoc}
+          */
+         @Override
+         public Set<Entry<K, V>> entrySet() {
+             return Collections.emptySet();
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-18.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-18.html new file mode 100644 index 0000000000..563a5def16 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-18.html @@ -0,0 +1,196 @@ + + + + + + + + Coverage Report > RatioGauge + + + + + + +
+ + +

Coverage Summary for Class: RatioGauge (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
RatioGauge + + 100% + + + (2/2) + + + + 100% + + + (2/2) + +
RatioGauge$Ratio + + 100% + + + (4/4) + + + + 100% + + + (9/9) + +
Total + + 100% + + + (6/6) + + + + 100% + + + (11/11) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import static java.lang.Double.isInfinite;
+ import static java.lang.Double.isNaN;
+ 
+ /**
+  * A gauge which measures the ratio of one value to another.
+  * <p>
+  * If the denominator is zero, not a number, or infinite, the resulting ratio is not a number.
+  */
+ public abstract class RatioGauge implements Gauge<Double> {
+     /**
+      * A ratio of one quantity to another.
+      */
+     public static class Ratio {
+         /**
+          * Creates a new ratio with the given numerator and denominator.
+          *
+          * @param numerator   the numerator of the ratio
+          * @param denominator the denominator of the ratio
+          * @return {@code numerator:denominator}
+          */
+         public static Ratio of(double numerator, double denominator) {
+             return new Ratio(numerator, denominator);
+         }
+ 
+         private final double numerator;
+         private final double denominator;
+ 
+         private Ratio(double numerator, double denominator) {
+             this.numerator = numerator;
+             this.denominator = denominator;
+         }
+ 
+         /**
+          * Returns the ratio, which is either a {@code double} between 0 and 1 (inclusive) or
+          * {@code NaN}.
+          *
+          * @return the ratio
+          */
+         public double getValue() {
+             final double d = denominator;
+             if (isNaN(d) || isInfinite(d) || d == 0) {
+                 return Double.NaN;
+             }
+             return numerator / d;
+         }
+ 
+         @Override
+         public String toString() {
+             return numerator + ":" + denominator;
+         }
+     }
+ 
+     /**
+      * Returns the {@link Ratio} which is the gauge's current value.
+      *
+      * @return the {@link Ratio} which is the gauge's current value
+      */
+     protected abstract Ratio getRatio();
+ 
+     @Override
+     public Double getValue() {
+         return getRatio().getValue();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-19.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-19.html new file mode 100644 index 0000000000..6ea49a09a1 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-19.html @@ -0,0 +1,467 @@ + + + + + + + + Coverage Report > ScheduledReporter + + + + + + +
+ + +

Coverage Summary for Class: ScheduledReporter (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
ScheduledReporter + + 91.3% + + + (21/23) + + + + 80% + + + (52/65) + +
ScheduledReporter$1
ScheduledReporter$NamedThreadFactory + + 100% + + + (3/3) + + + + 90.9% + + + (10/11) + +
Total + + 92.3% + + + (24/26) + + + + 81.6% + + + (62/76) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import java.io.Closeable;
+ import java.util.Collections;
+ import java.util.Locale;
+ import java.util.Set;
+ import java.util.SortedMap;
+ import java.util.concurrent.Executor;
+ import java.util.concurrent.Executors;
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.ScheduledFuture;
+ import java.util.concurrent.ThreadFactory;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicInteger;
+ 
+ /**
+  * The abstract base class for all scheduled reporters (i.e., reporters which process a registry's
+  * metrics periodically).
+  *
+  * @see ConsoleReporter
+  * @see CsvReporter
+  * @see Slf4jReporter
+  */
+ public abstract class ScheduledReporter implements Closeable, Reporter {
+ 
+     private static final Logger LOG = LoggerFactory.getLogger(ScheduledReporter.class);
+ 
+     /**
+      * A simple named thread factory.
+      */
+     @SuppressWarnings("NullableProblems")
+     private static class NamedThreadFactory implements ThreadFactory {
+         private final ThreadGroup group;
+         private final AtomicInteger threadNumber = new AtomicInteger(1);
+         private final String namePrefix;
+ 
+         private NamedThreadFactory(String name) {
+             final SecurityManager s = System.getSecurityManager();
+             this.group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();
+             this.namePrefix = "metrics-" + name + "-thread-";
+         }
+ 
+         @Override
+         public Thread newThread(Runnable r) {
+             final Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);
+             t.setDaemon(true);
+             if (t.getPriority() != Thread.NORM_PRIORITY) {
+                 t.setPriority(Thread.NORM_PRIORITY);
+             }
+             return t;
+         }
+     }
+ 
+     private static final AtomicInteger FACTORY_ID = new AtomicInteger();
+ 
+     private final MetricRegistry registry;
+     private final ScheduledExecutorService executor;
+     private final boolean shutdownExecutorOnStop;
+     private final Set<MetricAttribute> disabledMetricAttributes;
+     private ScheduledFuture<?> scheduledFuture;
+     private final MetricFilter filter;
+     private final long durationFactor;
+     private final String durationUnit;
+     private final long rateFactor;
+     private final String rateUnit;
+ 
+     /**
+      * Creates a new {@link ScheduledReporter} instance.
+      *
+      * @param registry     the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
+      *                     reporter will report
+      * @param name         the reporter's name
+      * @param filter       the filter for which metrics to report
+      * @param rateUnit     a unit of time
+      * @param durationUnit a unit of time
+      */
+     protected ScheduledReporter(MetricRegistry registry,
+                                 String name,
+                                 MetricFilter filter,
+                                 TimeUnit rateUnit,
+                                 TimeUnit durationUnit) {
+         this(registry, name, filter, rateUnit, durationUnit, createDefaultExecutor(name));
+     }
+ 
+     /**
+      * Creates a new {@link ScheduledReporter} instance.
+      *
+      * @param registry the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
+      *                 reporter will report
+      * @param name     the reporter's name
+      * @param filter   the filter for which metrics to report
+      * @param executor the executor to use while scheduling reporting of metrics.
+      */
+     protected ScheduledReporter(MetricRegistry registry,
+                                 String name,
+                                 MetricFilter filter,
+                                 TimeUnit rateUnit,
+                                 TimeUnit durationUnit,
+                                 ScheduledExecutorService executor) {
+         this(registry, name, filter, rateUnit, durationUnit, executor, true);
+     }
+ 
+     /**
+      * Creates a new {@link ScheduledReporter} instance.
+      *
+      * @param registry               the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
+      *                               reporter will report
+      * @param name                   the reporter's name
+      * @param filter                 the filter for which metrics to report
+      * @param executor               the executor to use while scheduling reporting of metrics.
+      * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
+      */
+     protected ScheduledReporter(MetricRegistry registry,
+                                 String name,
+                                 MetricFilter filter,
+                                 TimeUnit rateUnit,
+                                 TimeUnit durationUnit,
+                                 ScheduledExecutorService executor,
+                                 boolean shutdownExecutorOnStop) {
+         this(registry, name, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, Collections.emptySet());
+     }
+ 
+     protected ScheduledReporter(MetricRegistry registry,
+                                 String name,
+                                 MetricFilter filter,
+                                 TimeUnit rateUnit,
+                                 TimeUnit durationUnit,
+                                 ScheduledExecutorService executor,
+                                 boolean shutdownExecutorOnStop,
+                                 Set<MetricAttribute> disabledMetricAttributes) {
+ 
+         if (registry == null) {
+             throw new NullPointerException("registry == null");
+         }
+ 
+         this.registry = registry;
+         this.filter = filter;
+         this.executor = executor == null ? createDefaultExecutor(name) : executor;
+         this.shutdownExecutorOnStop = shutdownExecutorOnStop;
+         this.rateFactor = rateUnit.toSeconds(1);
+         this.rateUnit = calculateRateUnit(rateUnit);
+         this.durationFactor = durationUnit.toNanos(1);
+         this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);
+         this.disabledMetricAttributes = disabledMetricAttributes != null ? disabledMetricAttributes :
+                 Collections.emptySet();
+     }
+ 
+     /**
+      * Starts the reporter polling at the given period.
+      *
+      * @param period the amount of time between polls
+      * @param unit   the unit for {@code period}
+      */
+     public void start(long period, TimeUnit unit) {
+         start(period, period, unit);
+     }
+ 
+     /**
+      * Starts the reporter polling at the given period with the specific runnable action.
+      * Visible only for testing.
+      */
+     synchronized void start(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
+         if (this.scheduledFuture != null) {
+             throw new IllegalArgumentException("Reporter already started");
+         }
+ 
+         this.scheduledFuture = getScheduledFuture(initialDelay, period, unit, runnable);
+     }
+ 
+ 
+     /**
+      * Schedule the task, and return a future.
+      *
+      * @deprecated Use {@link #getScheduledFuture(long, long, TimeUnit, Runnable, ScheduledExecutorService)} instead.
+      */
+     @SuppressWarnings("DeprecatedIsStillUsed")
+     @Deprecated
+     protected ScheduledFuture<?> getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
+         return getScheduledFuture(initialDelay, period, unit, runnable, this.executor);
+     }
+ 
+     /**
+      * Schedule the task, and return a future.
+      * The current implementation uses scheduleWithFixedDelay, replacing scheduleWithFixedRate. This avoids queueing issues, but may
+      * cause some reporters to skip metrics, as scheduleWithFixedDelay introduces a growing delta from the original start point.
+      *
+      * Overriding this in a subclass to revert to the old behavior is permitted.
+      */
+     protected ScheduledFuture<?> getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable, ScheduledExecutorService executor) {
+         return executor.scheduleWithFixedDelay(runnable, initialDelay, period, unit);
+     }
+ 
+     /**
+      * Starts the reporter polling at the given period.
+      *
+      * @param initialDelay the time to delay the first execution
+      * @param period       the amount of time between polls
+      * @param unit         the unit for {@code period} and {@code initialDelay}
+      */
+     synchronized public void start(long initialDelay, long period, TimeUnit unit) {
+         start(initialDelay, period, unit, () -> {
+             try {
+                 report();
+             } catch (Throwable ex) {
+                 LOG.error("Exception thrown from {}#report. Exception was suppressed.", ScheduledReporter.this.getClass().getSimpleName(), ex);
+             }
+         });
+     }
+ 
+     /**
+      * Stops the reporter and if shutdownExecutorOnStop is true then shuts down its thread of execution.
+      * <p>
+      * Uses the shutdown pattern from http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html
+      */
+     public void stop() {
+         if (shutdownExecutorOnStop) {
+             executor.shutdown(); // Disable new tasks from being submitted
+         }
+ 
+         try {
+             report(); // Report metrics one last time
+         } catch (Exception e) {
+             LOG.warn("Final reporting of metrics failed.", e);
+         }
+ 
+         if (shutdownExecutorOnStop) {
+             try {
+                 // Wait a while for existing tasks to terminate
+                 if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {
+                     executor.shutdownNow(); // Cancel currently executing tasks
+                     // Wait a while for tasks to respond to being cancelled
+                     if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {
+                         LOG.warn("ScheduledExecutorService did not terminate.");
+                     }
+                 }
+             } catch (InterruptedException ie) {
+                 // (Re-)Cancel if current thread also interrupted
+                 executor.shutdownNow();
+                 // Preserve interrupt status
+                 Thread.currentThread().interrupt();
+             }
+         } else {
+             // The external manager (like JEE container) responsible for lifecycle of executor
+             cancelScheduledFuture();
+         }
+     }
+ 
+     private synchronized void cancelScheduledFuture() {
+         if (this.scheduledFuture == null) {
+             // was never started
+             return;
+         }
+         if (this.scheduledFuture.isCancelled()) {
+             // already cancelled
+             return;
+         }
+         // just cancel the scheduledFuture and exit
+         this.scheduledFuture.cancel(false);
+     }
+ 
+     /**
+      * Stops the reporter and shuts down its thread of execution.
+      */
+     @Override
+     public void close() {
+         stop();
+     }
+ 
+     /**
+      * Report the current values of all metrics in the registry.
+      */
+     public void report() {
+         synchronized (this) {
+             report(registry.getGauges(filter),
+                     registry.getCounters(filter),
+                     registry.getHistograms(filter),
+                     registry.getMeters(filter),
+                     registry.getTimers(filter));
+         }
+     }
+ 
+     /**
+      * Called periodically by the polling thread. Subclasses should report all the given metrics.
+      *
+      * @param gauges     all of the gauges in the registry
+      * @param counters   all of the counters in the registry
+      * @param histograms all of the histograms in the registry
+      * @param meters     all of the meters in the registry
+      * @param timers     all of the timers in the registry
+      */
+     @SuppressWarnings("rawtypes")
+     public abstract void report(SortedMap<String, Gauge> gauges,
+                                 SortedMap<String, Counter> counters,
+                                 SortedMap<String, Histogram> histograms,
+                                 SortedMap<String, Meter> meters,
+                                 SortedMap<String, Timer> timers);
+ 
+     protected String getRateUnit() {
+         return rateUnit;
+     }
+ 
+     protected String getDurationUnit() {
+         return durationUnit;
+     }
+ 
+     protected double convertDuration(double duration) {
+         return duration / durationFactor;
+     }
+ 
+     protected double convertRate(double rate) {
+         return rate * rateFactor;
+     }
+ 
+     protected boolean isShutdownExecutorOnStop() {
+         return shutdownExecutorOnStop;
+     }
+ 
+     protected Set<MetricAttribute> getDisabledMetricAttributes() {
+         return disabledMetricAttributes;
+     }
+ 
+     private String calculateRateUnit(TimeUnit unit) {
+         final String s = unit.toString().toLowerCase(Locale.US);
+         return s.substring(0, s.length() - 1);
+     }
+ 
+     private static ScheduledExecutorService createDefaultExecutor(String name) {
+         return Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(name + '-' + FACTORY_ID.incrementAndGet()));
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1a.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1a.html new file mode 100644 index 0000000000..5bffdf5b02 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1a.html @@ -0,0 +1,211 @@ + + + + + + + + Coverage Report > SharedMetricRegistries + + + + + + +
+ + +

Coverage Summary for Class: SharedMetricRegistries (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SharedMetricRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ import java.util.concurrent.atomic.AtomicReference;
+ 
+ /**
+  * A map of shared, named metric registries.
+  */
+ public class SharedMetricRegistries {
+     private static final ConcurrentMap<String, MetricRegistry> REGISTRIES =
+             new ConcurrentHashMap<>();
+ 
+     private static AtomicReference<String> defaultRegistryName = new AtomicReference<>();
+ 
+     /* Visible for testing */
+     static void setDefaultRegistryName(AtomicReference<String> defaultRegistryName) {
+         SharedMetricRegistries.defaultRegistryName = defaultRegistryName;
+     }
+ 
+     private SharedMetricRegistries() { /* singleton */ }
+ 
+     public static void clear() {
+         REGISTRIES.clear();
+     }
+ 
+     public static Set<String> names() {
+         return REGISTRIES.keySet();
+     }
+ 
+     public static void remove(String key) {
+         REGISTRIES.remove(key);
+     }
+ 
+     public static MetricRegistry add(String name, MetricRegistry registry) {
+         return REGISTRIES.putIfAbsent(name, registry);
+     }
+ 
+     public static MetricRegistry getOrCreate(String name) {
+         final MetricRegistry existing = REGISTRIES.get(name);
+         if (existing == null) {
+             final MetricRegistry created = new MetricRegistry();
+             final MetricRegistry raced = add(name, created);
+             if (raced == null) {
+                 return created;
+             }
+             return raced;
+         }
+         return existing;
+     }
+ 
+     /**
+      * Creates a new registry and sets it as the default one under the provided name.
+      *
+      * @param name the registry name
+      * @return the default registry
+      * @throws IllegalStateException if the name has already been set
+      */
+     public synchronized static MetricRegistry setDefault(String name) {
+         final MetricRegistry registry = getOrCreate(name);
+         return setDefault(name, registry);
+     }
+ 
+     /**
+      * Sets the provided registry as the default one under the provided name
+      *
+      * @param name           the default registry name
+      * @param metricRegistry the default registry
+      * @throws IllegalStateException if the default registry has already been set
+      */
+     public static MetricRegistry setDefault(String name, MetricRegistry metricRegistry) {
+         if (defaultRegistryName.compareAndSet(null, name)) {
+             add(name, metricRegistry);
+             return metricRegistry;
+         }
+         throw new IllegalStateException("Default metric registry name is already set.");
+     }
+ 
+     /**
+      * Gets the name of the default registry, if it has been set
+      *
+      * @return the default registry
+      * @throws IllegalStateException if the default has not been set
+      */
+     public static MetricRegistry getDefault() {
+         MetricRegistry metricRegistry = tryGetDefault();
+         if (metricRegistry == null) {
+             throw new IllegalStateException("Default registry name has not been set.");
+         }
+         return metricRegistry;
+     }
+ 
+     /**
+      * Same as {@link #getDefault()} except returns null when the default registry has not been set.
+      *
+      * @return the default registry or null
+      */
+     public static MetricRegistry tryGetDefault() {
+         final String name = defaultRegistryName.get();
+         if (name != null) {
+             return getOrCreate(name);
+         } else {
+             return null;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1b.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1b.html new file mode 100644 index 0000000000..af33d13e63 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1b.html @@ -0,0 +1,782 @@ + + + + + + + + Coverage Report > Slf4jReporter + + + + + + +
+ + +

Coverage Summary for Class: Slf4jReporter (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
Slf4jReporter + + 100% + + + (22/22) + + + + 100% + + + (97/97) + +
Slf4jReporter$1
Slf4jReporter$Builder + + 84.6% + + + (11/13) + + + + 79.5% + + + (35/44) + +
Slf4jReporter$DebugLoggerProxy + + 0% + + + (0/3) + + + + 0% + + + (0/3) + +
Slf4jReporter$ErrorLoggerProxy + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
Slf4jReporter$InfoLoggerProxy + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
Slf4jReporter$LoggerProxy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + +
Slf4jReporter$LoggingLevel + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
Slf4jReporter$TraceLoggerProxy + + 0% + + + (0/3) + + + + 0% + + + (0/3) + +
Slf4jReporter$WarnLoggerProxy + + 0% + + + (0/3) + + + + 0% + + + (0/3) + +
Total + + 78.8% + + + (41/52) + + + + 88.7% + + + (141/159) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ import org.slf4j.Marker;
+ 
+ import java.util.Collections;
+ import java.util.Map.Entry;
+ import java.util.Set;
+ import java.util.SortedMap;
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.TimeUnit;
+ import java.util.function.Supplier;
+ 
+ import static com.codahale.metrics.MetricAttribute.COUNT;
+ import static com.codahale.metrics.MetricAttribute.M15_RATE;
+ import static com.codahale.metrics.MetricAttribute.M1_RATE;
+ import static com.codahale.metrics.MetricAttribute.M5_RATE;
+ import static com.codahale.metrics.MetricAttribute.MAX;
+ import static com.codahale.metrics.MetricAttribute.MEAN;
+ import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
+ import static com.codahale.metrics.MetricAttribute.MIN;
+ import static com.codahale.metrics.MetricAttribute.P50;
+ import static com.codahale.metrics.MetricAttribute.P75;
+ import static com.codahale.metrics.MetricAttribute.P95;
+ import static com.codahale.metrics.MetricAttribute.P98;
+ import static com.codahale.metrics.MetricAttribute.P99;
+ import static com.codahale.metrics.MetricAttribute.P999;
+ import static com.codahale.metrics.MetricAttribute.STDDEV;
+ 
+ /**
+  * A reporter class for logging metrics values to a SLF4J {@link Logger} periodically, similar to
+  * {@link ConsoleReporter} or {@link CsvReporter}, but using the SLF4J framework instead. It also
+  * supports specifying a {@link Marker} instance that can be used by custom appenders and filters
+  * for the bound logging toolkit to further process metrics reports.
+  */
+ public class Slf4jReporter extends ScheduledReporter {
+     /**
+      * Returns a new {@link Builder} for {@link Slf4jReporter}.
+      *
+      * @param registry the registry to report
+      * @return a {@link Builder} instance for a {@link Slf4jReporter}
+      */
+     public static Builder forRegistry(MetricRegistry registry) {
+         return new Builder(registry);
+     }
+ 
+     public enum LoggingLevel { TRACE, DEBUG, INFO, WARN, ERROR }
+ 
+     /**
+      * A builder for {@link Slf4jReporter} instances. Defaults to logging to {@code metrics}, not
+      * using a marker, converting rates to events/second, converting durations to milliseconds, and
+      * not filtering metrics.
+      */
+     public static class Builder {
+         private final MetricRegistry registry;
+         private Logger logger;
+         private LoggingLevel loggingLevel;
+         private Marker marker;
+         private String prefix;
+         private TimeUnit rateUnit;
+         private TimeUnit durationUnit;
+         private MetricFilter filter;
+         private ScheduledExecutorService executor;
+         private boolean shutdownExecutorOnStop;
+         private Set<MetricAttribute> disabledMetricAttributes;
+ 
+         private Builder(MetricRegistry registry) {
+             this.registry = registry;
+             this.logger = LoggerFactory.getLogger("metrics");
+             this.marker = null;
+             this.prefix = "";
+             this.rateUnit = TimeUnit.SECONDS;
+             this.durationUnit = TimeUnit.MILLISECONDS;
+             this.filter = MetricFilter.ALL;
+             this.loggingLevel = LoggingLevel.INFO;
+             this.executor = null;
+             this.shutdownExecutorOnStop = true;
+             this.disabledMetricAttributes = Collections.emptySet();
+         }
+ 
+         /**
+          * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
+          * Default value is true.
+          * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
+          *
+          * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
+          * @return {@code this}
+          */
+         public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
+             this.shutdownExecutorOnStop = shutdownExecutorOnStop;
+             return this;
+         }
+ 
+         /**
+          * Specifies the executor to use while scheduling reporting of metrics.
+          * Default value is null.
+          * Null value leads to executor will be auto created on start.
+          *
+          * @param executor the executor to use while scheduling reporting of metrics.
+          * @return {@code this}
+          */
+         public Builder scheduleOn(ScheduledExecutorService executor) {
+             this.executor = executor;
+             return this;
+         }
+ 
+         /**
+          * Log metrics to the given logger.
+          *
+          * @param logger an SLF4J {@link Logger}
+          * @return {@code this}
+          */
+         public Builder outputTo(Logger logger) {
+             this.logger = logger;
+             return this;
+         }
+ 
+         /**
+          * Mark all logged metrics with the given marker.
+          *
+          * @param marker an SLF4J {@link Marker}
+          * @return {@code this}
+          */
+         public Builder markWith(Marker marker) {
+             this.marker = marker;
+             return this;
+         }
+ 
+         /**
+          * Prefix all metric names with the given string.
+          *
+          * @param prefix the prefix for all metric names
+          * @return {@code this}
+          */
+         public Builder prefixedWith(String prefix) {
+             this.prefix = prefix;
+             return this;
+         }
+ 
+         /**
+          * Convert rates to the given time unit.
+          *
+          * @param rateUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertRatesTo(TimeUnit rateUnit) {
+             this.rateUnit = rateUnit;
+             return this;
+         }
+ 
+         /**
+          * Convert durations to the given time unit.
+          *
+          * @param durationUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertDurationsTo(TimeUnit durationUnit) {
+             this.durationUnit = durationUnit;
+             return this;
+         }
+ 
+         /**
+          * Only report metrics which match the given filter.
+          *
+          * @param filter a {@link MetricFilter}
+          * @return {@code this}
+          */
+         public Builder filter(MetricFilter filter) {
+             this.filter = filter;
+             return this;
+         }
+ 
+         /**
+          * Use Logging Level when reporting.
+          *
+          * @param loggingLevel a (@link Slf4jReporter.LoggingLevel}
+          * @return {@code this}
+          */
+         public Builder withLoggingLevel(LoggingLevel loggingLevel) {
+             this.loggingLevel = loggingLevel;
+             return this;
+         }
+ 
+         /**
+          * Don't report the passed metric attributes for all metrics (e.g. "p999", "stddev" or "m15").
+          * See {@link MetricAttribute}.
+          *
+          * @param disabledMetricAttributes a set of {@link MetricAttribute}
+          * @return {@code this}
+          */
+         public Builder disabledMetricAttributes(Set<MetricAttribute> disabledMetricAttributes) {
+             this.disabledMetricAttributes = disabledMetricAttributes;
+             return this;
+         }
+ 
+         /**
+          * Builds a {@link Slf4jReporter} with the given properties.
+          *
+          * @return a {@link Slf4jReporter}
+          */
+         public Slf4jReporter build() {
+             LoggerProxy loggerProxy;
+             switch (loggingLevel) {
+                 case TRACE:
+                     loggerProxy = new TraceLoggerProxy(logger);
+                     break;
+                 case INFO:
+                     loggerProxy = new InfoLoggerProxy(logger);
+                     break;
+                 case WARN:
+                     loggerProxy = new WarnLoggerProxy(logger);
+                     break;
+                 case ERROR:
+                     loggerProxy = new ErrorLoggerProxy(logger);
+                     break;
+                 default:
+                 case DEBUG:
+                     loggerProxy = new DebugLoggerProxy(logger);
+                     break;
+             }
+             return new Slf4jReporter(registry, loggerProxy, marker, prefix, rateUnit, durationUnit, filter, executor,
+                     shutdownExecutorOnStop, disabledMetricAttributes);
+         }
+     }
+ 
+     private final LoggerProxy loggerProxy;
+     private final Marker marker;
+     private final String prefix;
+ 
+     private Slf4jReporter(MetricRegistry registry,
+                           LoggerProxy loggerProxy,
+                           Marker marker,
+                           String prefix,
+                           TimeUnit rateUnit,
+                           TimeUnit durationUnit,
+                           MetricFilter filter,
+                           ScheduledExecutorService executor,
+                           boolean shutdownExecutorOnStop,
+                           Set<MetricAttribute> disabledMetricAttributes) {
+         super(registry, "logger-reporter", filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,
+                 disabledMetricAttributes);
+         this.loggerProxy = loggerProxy;
+         this.marker = marker;
+         this.prefix = prefix;
+     }
+ 
+     @Override
+     @SuppressWarnings("rawtypes")
+     public void report(SortedMap<String, Gauge> gauges,
+                        SortedMap<String, Counter> counters,
+                        SortedMap<String, Histogram> histograms,
+                        SortedMap<String, Meter> meters,
+                        SortedMap<String, Timer> timers) {
+         if (loggerProxy.isEnabled(marker)) {
+             StringBuilder b = new StringBuilder();
+             for (Entry<String, Gauge> entry : gauges.entrySet()) {
+                 logGauge(b, entry.getKey(), entry.getValue());
+             }
+ 
+             for (Entry<String, Counter> entry : counters.entrySet()) {
+                 logCounter(b, entry.getKey(), entry.getValue());
+             }
+ 
+             for (Entry<String, Histogram> entry : histograms.entrySet()) {
+                 logHistogram(b, entry.getKey(), entry.getValue());
+             }
+ 
+             for (Entry<String, Meter> entry : meters.entrySet()) {
+                 logMeter(b, entry.getKey(), entry.getValue());
+             }
+ 
+             for (Entry<String, Timer> entry : timers.entrySet()) {
+                 logTimer(b, entry.getKey(), entry.getValue());
+             }
+         }
+     }
+ 
+     private void logTimer(StringBuilder b, String name, Timer timer) {
+         final Snapshot snapshot = timer.getSnapshot();
+         b.setLength(0);
+         b.append("type=TIMER");
+         append(b, "name", prefix(name));
+         appendCountIfEnabled(b, timer);
+         appendLongDurationIfEnabled(b, MIN, snapshot::getMin);
+         appendLongDurationIfEnabled(b, MAX, snapshot::getMax);
+         appendDoubleDurationIfEnabled(b, MEAN, snapshot::getMean);
+         appendDoubleDurationIfEnabled(b, STDDEV, snapshot::getStdDev);
+         appendDoubleDurationIfEnabled(b, P50, snapshot::getMedian);
+         appendDoubleDurationIfEnabled(b, P75, snapshot::get75thPercentile);
+         appendDoubleDurationIfEnabled(b, P95, snapshot::get95thPercentile);
+         appendDoubleDurationIfEnabled(b, P98, snapshot::get98thPercentile);
+         appendDoubleDurationIfEnabled(b, P99, snapshot::get99thPercentile);
+         appendDoubleDurationIfEnabled(b, P999, snapshot::get999thPercentile);
+         appendMetered(b, timer);
+         append(b, "rate_unit", getRateUnit());
+         append(b, "duration_unit", getDurationUnit());
+         loggerProxy.log(marker, b.toString());
+     }
+ 
+     private void logMeter(StringBuilder b, String name, Meter meter) {
+         b.setLength(0);
+         b.append("type=METER");
+         append(b, "name", prefix(name));
+         appendCountIfEnabled(b, meter);
+         appendMetered(b, meter);
+         append(b, "rate_unit", getRateUnit());
+         loggerProxy.log(marker, b.toString());
+     }
+ 
+     private void logHistogram(StringBuilder b, String name, Histogram histogram) {
+         final Snapshot snapshot = histogram.getSnapshot();
+         b.setLength(0);
+         b.append("type=HISTOGRAM");
+         append(b, "name", prefix(name));
+         appendCountIfEnabled(b, histogram);
+         appendLongIfEnabled(b, MIN, snapshot::getMin);
+         appendLongIfEnabled(b, MAX, snapshot::getMax);
+         appendDoubleIfEnabled(b, MEAN, snapshot::getMean);
+         appendDoubleIfEnabled(b, STDDEV, snapshot::getStdDev);
+         appendDoubleIfEnabled(b, P50, snapshot::getMedian);
+         appendDoubleIfEnabled(b, P75, snapshot::get75thPercentile);
+         appendDoubleIfEnabled(b, P95, snapshot::get95thPercentile);
+         appendDoubleIfEnabled(b, P98, snapshot::get98thPercentile);
+         appendDoubleIfEnabled(b, P99, snapshot::get99thPercentile);
+         appendDoubleIfEnabled(b, P999, snapshot::get999thPercentile);
+         loggerProxy.log(marker, b.toString());
+     }
+ 
+     private void logCounter(StringBuilder b, String name, Counter counter) {
+         b.setLength(0);
+         b.append("type=COUNTER");
+         append(b, "name", prefix(name));
+         append(b, COUNT.getCode(), counter.getCount());
+         loggerProxy.log(marker, b.toString());
+     }
+ 
+     private void logGauge(StringBuilder b, String name, Gauge<?> gauge) {
+         b.setLength(0);
+         b.append("type=GAUGE");
+         append(b, "name", prefix(name));
+         append(b, "value", gauge.getValue());
+         loggerProxy.log(marker, b.toString());
+     }
+ 
+     private void appendLongDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
+                                              Supplier<Long> durationSupplier) {
+         if (!getDisabledMetricAttributes().contains(metricAttribute)) {
+             append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));
+         }
+     }
+ 
+     private void appendDoubleDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
+                                                Supplier<Double> durationSupplier) {
+         if (!getDisabledMetricAttributes().contains(metricAttribute)) {
+             append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));
+         }
+     }
+ 
+     private void appendLongIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
+                                      Supplier<Long> valueSupplier) {
+         if (!getDisabledMetricAttributes().contains(metricAttribute)) {
+             append(b, metricAttribute.getCode(), valueSupplier.get());
+         }
+     }
+ 
+     private void appendDoubleIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
+                                        Supplier<Double> valueSupplier) {
+         if (!getDisabledMetricAttributes().contains(metricAttribute)) {
+             append(b, metricAttribute.getCode(), valueSupplier.get());
+         }
+     }
+ 
+     private void appendCountIfEnabled(StringBuilder b, Counting counting) {
+         if (!getDisabledMetricAttributes().contains(COUNT)) {
+             append(b, COUNT.getCode(), counting.getCount());
+         }
+     }
+ 
+     private void appendMetered(StringBuilder b, Metered meter) {
+         appendRateIfEnabled(b, M1_RATE, meter::getOneMinuteRate);
+         appendRateIfEnabled(b, M5_RATE, meter::getFiveMinuteRate);
+         appendRateIfEnabled(b, M15_RATE,  meter::getFifteenMinuteRate);
+         appendRateIfEnabled(b, MEAN_RATE,  meter::getMeanRate);
+     }
+ 
+     private void appendRateIfEnabled(StringBuilder b, MetricAttribute metricAttribute, Supplier<Double> rateSupplier) {
+         if (!getDisabledMetricAttributes().contains(metricAttribute)) {
+             append(b, metricAttribute.getCode(), convertRate(rateSupplier.get()));
+         }
+     }
+ 
+     private void append(StringBuilder b, String key, long value) {
+         b.append(", ").append(key).append('=').append(value);
+     }
+ 
+     private void append(StringBuilder b, String key, double value) {
+         b.append(", ").append(key).append('=').append(value);
+     }
+ 
+     private void append(StringBuilder b, String key, String value) {
+         b.append(", ").append(key).append('=').append(value);
+     }
+ 
+     private void append(StringBuilder b, String key, Object value) {
+         b.append(", ").append(key).append('=').append(value);
+     }
+ 
+     @Override
+     protected String getRateUnit() {
+         return "events/" + super.getRateUnit();
+     }
+ 
+     private String prefix(String... components) {
+         return MetricRegistry.name(prefix, components);
+     }
+ 
+     /* private class to allow logger configuration */
+     static abstract class LoggerProxy {
+         protected final Logger logger;
+ 
+         public LoggerProxy(Logger logger) {
+             this.logger = logger;
+         }
+ 
+         abstract void log(Marker marker, String format);
+ 
+         abstract boolean isEnabled(Marker marker);
+     }
+ 
+     /* private class to allow logger configuration */
+     private static class DebugLoggerProxy extends LoggerProxy {
+         public DebugLoggerProxy(Logger logger) {
+             super(logger);
+         }
+ 
+         @Override
+         public void log(Marker marker, String format) {
+             logger.debug(marker, format);
+         }
+ 
+         @Override
+         public boolean isEnabled(Marker marker) {
+             return logger.isDebugEnabled(marker);
+         }
+     }
+ 
+     /* private class to allow logger configuration */
+     private static class TraceLoggerProxy extends LoggerProxy {
+         public TraceLoggerProxy(Logger logger) {
+             super(logger);
+         }
+ 
+         @Override
+         public void log(Marker marker, String format) {
+             logger.trace(marker, format);
+         }
+ 
+         @Override
+         public boolean isEnabled(Marker marker) {
+             return logger.isTraceEnabled(marker);
+         }
+     }
+ 
+     /* private class to allow logger configuration */
+     private static class InfoLoggerProxy extends LoggerProxy {
+         public InfoLoggerProxy(Logger logger) {
+             super(logger);
+         }
+ 
+         @Override
+         public void log(Marker marker, String format) {
+             logger.info(marker, format);
+         }
+ 
+         @Override
+         public boolean isEnabled(Marker marker) {
+             return logger.isInfoEnabled(marker);
+         }
+     }
+ 
+     /* private class to allow logger configuration */
+     private static class WarnLoggerProxy extends LoggerProxy {
+         public WarnLoggerProxy(Logger logger) {
+             super(logger);
+         }
+ 
+         @Override
+         public void log(Marker marker, String format) {
+             logger.warn(marker, format);
+         }
+ 
+         @Override
+         public boolean isEnabled(Marker marker) {
+             return logger.isWarnEnabled(marker);
+         }
+     }
+ 
+     /* private class to allow logger configuration */
+     private static class ErrorLoggerProxy extends LoggerProxy {
+         public ErrorLoggerProxy(Logger logger) {
+             super(logger);
+         }
+ 
+         @Override
+         public void log(Marker marker, String format) {
+             logger.error(marker, format);
+         }
+ 
+         @Override
+         public boolean isEnabled(Marker marker) {
+             return logger.isErrorEnabled(marker);
+         }
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1c.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1c.html new file mode 100644 index 0000000000..be579c8bfa --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1c.html @@ -0,0 +1,205 @@ + + + + + + + + Coverage Report > SlidingTimeWindowArrayReservoir + + + + + + +
+ + +

Coverage Summary for Class: SlidingTimeWindowArrayReservoir (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowArrayReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 87.9% + + + (29/33) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicLong;
+ 
+ /**
+  * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
+  * in the last {@code N} seconds (or other time unit).
+  */
+ public class SlidingTimeWindowArrayReservoir implements Reservoir {
+     // allow for this many duplicate ticks before overwriting measurements
+     private static final long COLLISION_BUFFER = 256L;
+     // only trim on updating once every N
+     private static final long TRIM_THRESHOLD = 256L;
+     private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;
+ 
+     private final Clock clock;
+     private final ChunkedAssociativeLongArray measurements;
+     private final long window;
+     private final AtomicLong lastTick;
+     private final AtomicLong count;
+     private final long startTick;
+ 
+     /**
+      * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given window of time.
+      *
+      * @param window     the window of time
+      * @param windowUnit the unit of {@code window}
+      */
+     public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit) {
+         this(window, windowUnit, Clock.defaultClock());
+     }
+ 
+     /**
+      * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given clock and window of time.
+      *
+      * @param window     the window of time
+      * @param windowUnit the unit of {@code window}
+      * @param clock      the {@link Clock} to use
+      */
+     public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit, Clock clock) {
+         this.startTick = clock.getTick();
+         this.clock = clock;
+         this.measurements = new ChunkedAssociativeLongArray();
+         this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;
+         this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);
+         this.count = new AtomicLong();
+     }
+ 
+     @Override
+     public int size() {
+         trim();
+         return measurements.size();
+     }
+ 
+     @Override
+     public void update(long value) {
+         long newTick;
+         do {
+             if (count.incrementAndGet() % TRIM_THRESHOLD == 0L) {
+                 trim();
+             }
+             long lastTick = this.lastTick.get();
+             newTick = getTick();
+             boolean longOverflow = newTick < lastTick;
+             if (longOverflow) {
+                 measurements.clear();
+             }
+         } while (!measurements.put(newTick, value));
+     }
+ 
+     @Override
+     public Snapshot getSnapshot() {
+         trim();
+         return new UniformSnapshot(measurements.values());
+     }
+ 
+     private long getTick() {
+         for ( ;; ) {
+             final long oldTick = lastTick.get();
+             final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;
+             // ensure the tick is strictly incrementing even if there are duplicate ticks
+             final long newTick = tick - oldTick > 0L ? tick : oldTick + 1L;
+             if (lastTick.compareAndSet(oldTick, newTick)) {
+                 return newTick;
+             }
+         }
+     }
+ 
+     void trim() {
+         final long now = getTick();
+         final long windowStart = now - window;
+         final long windowEnd = now + CLEAR_BUFFER;
+         if (windowStart < windowEnd) {
+             measurements.trim(windowStart, windowEnd);
+         } else {
+             // long overflow handling that can happen only after 1 year after class loading
+             measurements.clear();
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1d.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1d.html new file mode 100644 index 0000000000..e3bd0a979e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1d.html @@ -0,0 +1,197 @@ + + + + + + + + Coverage Report > SlidingTimeWindowArrayReservoirTrimReadTest + + + + + + +
+ + +

Coverage Summary for Class: SlidingTimeWindowArrayReservoirTrimReadTest (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
SlidingTimeWindowArrayReservoirTrimReadTest + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
SlidingTimeWindowArrayReservoirTrimReadTest$1 + + 0% + + + (0/2) + + + + 0% + + + (0/2) + +
Total + + 0% + + + (0/6) + + + + 0% + + + (0/14) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import org.openjdk.jcstress.annotations.Actor;
+ import org.openjdk.jcstress.annotations.Expect;
+ import org.openjdk.jcstress.annotations.JCStressTest;
+ import org.openjdk.jcstress.annotations.Outcome;
+ import org.openjdk.jcstress.annotations.State;
+ import org.openjdk.jcstress.infra.results.L_Result;
+ 
+ import java.util.Arrays;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicLong;
+ 
+ @JCStressTest
+ @Outcome(
+     id = "\\[240, 241, 242, 243, 244, 245, 246, 247, 248, 249\\]",
+     expect = Expect.ACCEPTABLE,
+     desc = "Actor1 made read before Actor2 even started"
+     )
+ @Outcome(
+     id = "\\[243, 244, 245, 246, 247, 248, 249\\]",
+     expect = Expect.ACCEPTABLE,
+     desc = "Actor2 made trim before Actor1 even started"
+     )
+ @Outcome(
+     id = "\\[244, 245, 246, 247, 248, 249\\]",
+     expect = Expect.ACCEPTABLE,
+     desc = "Actor1 made trim, then Actor2 started trim and made startIndex change, " +
+         "before Actor1 concurrent read."
+     )
+ @Outcome(
+     id = "\\[243, 244, 245, 246, 247, 248\\]",
+     expect = Expect.ACCEPTABLE,
+     desc = "Actor1 made trim, then Actor2 started trim, but not finished startIndex change, before Actor1 concurrent read."
+     )
+ @State
+ public class SlidingTimeWindowArrayReservoirTrimReadTest {
+     private final AtomicLong ticks = new AtomicLong(0);
+     private final SlidingTimeWindowArrayReservoir reservoir;
+ 
+     public SlidingTimeWindowArrayReservoirTrimReadTest() {
+         reservoir = new SlidingTimeWindowArrayReservoir(10, TimeUnit.NANOSECONDS, new Clock() {
+             @Override
+             public long getTick() {
+                 return ticks.get();
+             }
+         });
+ 
+         for (int i = 0; i < 250; i++) {
+             ticks.set(i);
+             reservoir.update(i);
+         }
+     }
+ 
+     @Actor
+     public void actor1(L_Result r) {
+         Snapshot snapshot = reservoir.getSnapshot();
+         String stringValues = Arrays.toString(snapshot.getValues());
+         r.r1 = stringValues;
+     }
+ 
+     @Actor
+     public void actor2() {
+         ticks.set(253);
+         reservoir.trim();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1e.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1e.html new file mode 100644 index 0000000000..bce9ecd30c --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1e.html @@ -0,0 +1,149 @@ + + + + + + + + Coverage Report > SlidingTimeWindowArrayReservoirWriteReadAllocate + + + + + + +
+ + +

Coverage Summary for Class: SlidingTimeWindowArrayReservoirWriteReadAllocate (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowArrayReservoirWriteReadAllocate + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/10) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import org.openjdk.jcstress.annotations.Actor;
+ import org.openjdk.jcstress.annotations.Arbiter;
+ import org.openjdk.jcstress.annotations.Expect;
+ import org.openjdk.jcstress.annotations.JCStressTest;
+ import org.openjdk.jcstress.annotations.Outcome;
+ import org.openjdk.jcstress.annotations.State;
+ import org.openjdk.jcstress.infra.results.L_Result;
+ 
+ import java.util.Arrays;
+ import java.util.concurrent.TimeUnit;
+ 
+ @JCStressTest
+ @Outcome(id = "\\[1023, 1029, 1034\\]", expect = Expect.ACCEPTABLE)
+ @State
+ public class SlidingTimeWindowArrayReservoirWriteReadAllocate {
+ 
+     private final SlidingTimeWindowArrayReservoir reservoir;
+ 
+     public SlidingTimeWindowArrayReservoirWriteReadAllocate() {
+         reservoir = new SlidingTimeWindowArrayReservoir(500, TimeUnit.SECONDS);
+         for (int i = 0; i < 1024; i++) {
+             reservoir.update(i);
+         }
+     }
+ 
+     @Actor
+     public void actor1() {
+         reservoir.update(1029L);
+     }
+ 
+     @Actor
+     public void actor2() {
+         reservoir.update(1034L);
+     }
+ 
+     @Arbiter
+     public void arbiter(L_Result r) {
+         Snapshot snapshot = reservoir.getSnapshot();
+         long[] values = snapshot.getValues();
+         String stringValues = Arrays.toString(Arrays.copyOfRange(values, values.length - 3, values.length));
+         r.r1 = stringValues;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1f.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1f.html new file mode 100644 index 0000000000..d35f05f355 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1f.html @@ -0,0 +1,149 @@ + + + + + + + + Coverage Report > SlidingTimeWindowArrayReservoirWriteReadTest + + + + + + +
+ + +

Coverage Summary for Class: SlidingTimeWindowArrayReservoirWriteReadTest (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowArrayReservoirWriteReadTest + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/7) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import org.openjdk.jcstress.annotations.Actor;
+ import org.openjdk.jcstress.annotations.Expect;
+ import org.openjdk.jcstress.annotations.JCStressTest;
+ import org.openjdk.jcstress.annotations.Outcome;
+ import org.openjdk.jcstress.annotations.State;
+ import org.openjdk.jcstress.infra.results.L_Result;
+ 
+ import java.util.Arrays;
+ import java.util.concurrent.TimeUnit;
+ 
+ @JCStressTest
+ @Outcome(id = "\\[\\]", expect = Expect.ACCEPTABLE)
+ @Outcome(id = "\\[31\\]", expect = Expect.ACCEPTABLE)
+ @Outcome(id = "\\[15\\]", expect = Expect.ACCEPTABLE)
+ @Outcome(id = "\\[31, 15\\]", expect = Expect.ACCEPTABLE)
+ @Outcome(id = "\\[15, 31\\]", expect = Expect.ACCEPTABLE)
+ @State
+ public class SlidingTimeWindowArrayReservoirWriteReadTest {
+ 
+     private final SlidingTimeWindowArrayReservoir reservoir;
+ 
+     public SlidingTimeWindowArrayReservoirWriteReadTest() {
+         reservoir = new SlidingTimeWindowArrayReservoir(1, TimeUnit.SECONDS);
+     }
+ 
+     @Actor
+     public void actor1() {
+         reservoir.update(31L);
+     }
+ 
+     @Actor
+     public void actor2() {
+         reservoir.update(15L);
+     }
+ 
+     @Actor
+     public void actor3(L_Result r) {
+         Snapshot snapshot = reservoir.getSnapshot();
+         String stringValues = Arrays.toString(snapshot.getValues());
+         r.r1 = stringValues;
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2.html new file mode 100644 index 0000000000..4ad5500829 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2.html @@ -0,0 +1,333 @@ + + + + + + + + Coverage Report > ChunkedAssociativeLongArray + + + + + + +
+ + +

Coverage Summary for Class: ChunkedAssociativeLongArray (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
ChunkedAssociativeLongArray + + 92.9% + + + (13/14) + + + + 95.3% + + + (81/85) + +
ChunkedAssociativeLongArray$1
ChunkedAssociativeLongArray$Chunk + + 100% + + + (3/3) + + + + 100% + + + (10/10) + +
Total + + 94.1% + + + (16/17) + + + + 95.8% + + + (91/95) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.lang.ref.SoftReference;
+ import java.util.ArrayDeque;
+ import java.util.Deque;
+ import java.util.Iterator;
+ 
+ import static java.lang.System.arraycopy;
+ import static java.util.Arrays.binarySearch;
+ 
+ class ChunkedAssociativeLongArray {
+     private static final long[] EMPTY = new long[0];
+     private static final int DEFAULT_CHUNK_SIZE = 512;
+     private static final int MAX_CACHE_SIZE = 128;
+ 
+     private final int defaultChunkSize;
+ 
+     /*
+      * We use this ArrayDeque as cache to store chunks that are expired and removed from main data structure.
+      * Then instead of allocating new Chunk immediately we are trying to poll one from this deque.
+      * So if you have constant or slowly changing load ChunkedAssociativeLongArray will never
+      * throw away old chunks or allocate new ones which makes this data structure almost garbage free.
+      */
+     private final ArrayDeque<SoftReference<Chunk>> chunksCache = new ArrayDeque<>();
+ 
+     private final Deque<Chunk> chunks = new ArrayDeque<>();
+ 
+     ChunkedAssociativeLongArray() {
+         this(DEFAULT_CHUNK_SIZE);
+     }
+ 
+     ChunkedAssociativeLongArray(int chunkSize) {
+         this.defaultChunkSize = chunkSize;
+     }
+ 
+     private Chunk allocateChunk() {
+         while (true) {
+             final SoftReference<Chunk> chunkRef = chunksCache.pollLast();
+             if (chunkRef == null) {
+                 return new Chunk(defaultChunkSize);
+             }
+             final Chunk chunk = chunkRef.get();
+             if (chunk != null) {
+                 chunk.cursor = 0;
+                 chunk.startIndex = 0;
+                 chunk.chunkSize = chunk.keys.length;
+                 return chunk;
+             }
+         }
+     }
+ 
+     private void freeChunk(Chunk chunk) {
+         if (chunksCache.size() < MAX_CACHE_SIZE) {
+             chunksCache.add(new SoftReference<>(chunk));
+         }
+     }
+ 
+     synchronized boolean put(long key, long value) {
+         Chunk activeChunk = chunks.peekLast();
+         if (activeChunk != null && activeChunk.cursor != 0 && activeChunk.keys[activeChunk.cursor - 1] > key) {
+             // key should be the same as last inserted or bigger
+             return false;
+         }
+         if (activeChunk == null || activeChunk.cursor - activeChunk.startIndex == activeChunk.chunkSize) {
+             // The last chunk doesn't exist or full
+             activeChunk = allocateChunk();
+             chunks.add(activeChunk);
+         }
+         activeChunk.append(key, value);
+         return true;
+     }
+ 
+     synchronized long[] values() {
+         final int valuesSize = size();
+         if (valuesSize == 0) {
+             return EMPTY;
+         }
+ 
+         final long[] values = new long[valuesSize];
+         int valuesIndex = 0;
+         for (Chunk chunk : chunks) {
+             int length = chunk.cursor - chunk.startIndex;
+             int itemsToCopy = Math.min(valuesSize - valuesIndex, length);
+             arraycopy(chunk.values, chunk.startIndex, values, valuesIndex, itemsToCopy);
+             valuesIndex += length;
+         }
+         return values;
+     }
+ 
+     synchronized int size() {
+         int result = 0;
+         for (Chunk chunk : chunks) {
+             result += chunk.cursor - chunk.startIndex;
+         }
+         return result;
+     }
+ 
+     synchronized String out() {
+         final StringBuilder builder = new StringBuilder();
+         final Iterator<Chunk> iterator = chunks.iterator();
+         while (iterator.hasNext()) {
+             final Chunk chunk = iterator.next();
+             builder.append('[');
+             for (int i = chunk.startIndex; i < chunk.cursor; i++) {
+                 builder.append('(').append(chunk.keys[i]).append(": ")
+                         .append(chunk.values[i]).append(')').append(' ');
+             }
+             builder.append(']');
+             if (iterator.hasNext()) {
+                 builder.append("->");
+             }
+         }
+         return builder.toString();
+     }
+ 
+     /**
+      * Try to trim all beyond specified boundaries.
+      *
+      * @param startKey the start value for which all elements less than it should be removed.
+      * @param endKey   the end value for which all elements greater/equals than it should be removed.
+      */
+     synchronized void trim(long startKey, long endKey) {
+         /*
+          * [3, 4, 5, 9] -> [10, 13, 14, 15] -> [21, 24, 29, 30] -> [31] :: start layout
+          *       |5______________________________23|                    :: trim(5, 23)
+          *       [5, 9] -> [10, 13, 14, 15] -> [21]                     :: result layout
+          */
+         final Iterator<Chunk> descendingIterator = chunks.descendingIterator();
+         while (descendingIterator.hasNext()) {
+             final Chunk currentTail = descendingIterator.next();
+             if (isFirstElementIsEmptyOrGreaterEqualThanKey(currentTail, endKey)) {
+                 freeChunk(currentTail);
+                 descendingIterator.remove();
+             } else {
+                 currentTail.cursor = findFirstIndexOfGreaterEqualElements(currentTail.keys, currentTail.startIndex,
+                         currentTail.cursor, endKey);
+                 break;
+             }
+         }
+ 
+         final Iterator<Chunk> iterator = chunks.iterator();
+         while (iterator.hasNext()) {
+             final Chunk currentHead = iterator.next();
+             if (isLastElementIsLessThanKey(currentHead, startKey)) {
+                 freeChunk(currentHead);
+                 iterator.remove();
+             } else {
+                 final int newStartIndex = findFirstIndexOfGreaterEqualElements(currentHead.keys, currentHead.startIndex,
+                         currentHead.cursor, startKey);
+                 if (currentHead.startIndex != newStartIndex) {
+                     currentHead.startIndex = newStartIndex;
+                     currentHead.chunkSize = currentHead.cursor - currentHead.startIndex;
+                 }
+                 break;
+             }
+         }
+     }
+ 
+     synchronized void clear() {
+         chunks.clear();
+     }
+ 
+     private boolean isFirstElementIsEmptyOrGreaterEqualThanKey(Chunk chunk, long key) {
+         return chunk.cursor == chunk.startIndex || chunk.keys[chunk.startIndex] >= key;
+     }
+ 
+     private boolean isLastElementIsLessThanKey(Chunk chunk, long key) {
+         return chunk.cursor == chunk.startIndex || chunk.keys[chunk.cursor - 1] < key;
+     }
+ 
+     private int findFirstIndexOfGreaterEqualElements(long[] array, int startIndex, int endIndex, long minKey) {
+         if (endIndex == startIndex || array[startIndex] >= minKey) {
+             return startIndex;
+         }
+         final int keyIndex = binarySearch(array, startIndex, endIndex, minKey);
+         return keyIndex < 0 ? -(keyIndex + 1) : keyIndex;
+     }
+ 
+     private static class Chunk {
+ 
+         private final long[] keys;
+         private final long[] values;
+ 
+         private int chunkSize; // can differ from keys.length after half clear()
+         private int startIndex = 0;
+         private int cursor = 0;
+ 
+         private Chunk(int chunkSize) {
+             this.chunkSize = chunkSize;
+             this.keys = new long[chunkSize];
+             this.values = new long[chunkSize];
+         }
+ 
+         private void append(long key, long value) {
+             keys[cursor] = key;
+             values[cursor] = value;
+             cursor++;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-20.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-20.html new file mode 100644 index 0000000000..149da36872 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-20.html @@ -0,0 +1,301 @@ + + + + + + + + Coverage Report > SlidingTimeWindowMovingAverages + + + + + + +
+ + +

Coverage Summary for Class: SlidingTimeWindowMovingAverages (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowMovingAverages + + 100% + + + (1/1) + + + + 100% + + + (14/14) + + + + 100% + + + (63/63) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.time.Duration;
+ import java.time.Instant;
+ import java.util.ArrayList;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicLong;
+ import java.util.concurrent.atomic.LongAdder;
+ 
+ /**
+  * A triple of simple moving average rates (one, five and fifteen minutes rates) as needed by {@link Meter}.
+  * <p>
+  * The averages are unweighted, i.e. they include strictly only the events in the
+  * sliding time window, every event having the same weight. Unlike the
+  * the more widely used {@link ExponentialMovingAverages} implementation,
+  * with this class the moving average rate drops immediately to zero if the last
+  * marked event is older than the time window.
+  * <p>
+  * A {@link Meter} with {@link SlidingTimeWindowMovingAverages} works similarly to
+  * a {@link Histogram} with an {@link SlidingTimeWindowArrayReservoir}, but as a Meter
+  * needs to keep track only of the count of events (not the events itself), the memory
+  * overhead is much smaller. SlidingTimeWindowMovingAverages uses buckets with just one
+  * counter to accumulate the number of events (one bucket per seconds, giving 900 buckets
+  * for the 15 minutes time window).
+  */
+ public class SlidingTimeWindowMovingAverages implements MovingAverages {
+ 
+     private static final long TIME_WINDOW_DURATION_MINUTES = 15;
+     private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(1);
+     private static final Duration TIME_WINDOW_DURATION = Duration.ofMinutes(TIME_WINDOW_DURATION_MINUTES);
+ 
+     // package private for the benefit of the unit test
+     static final int NUMBER_OF_BUCKETS = (int) (TIME_WINDOW_DURATION.toNanos() / TICK_INTERVAL);
+ 
+     private final AtomicLong lastTick;
+     private final Clock clock;
+ 
+     /**
+      * One counter per time bucket/slot (i.e. per second, see TICK_INTERVAL) for the entire
+      * time window (i.e. 15 minutes, see TIME_WINDOW_DURATION_MINUTES)
+      */
+     private ArrayList<LongAdder> buckets;
+ 
+     /**
+      * Index into buckets, pointing at the bucket containing the oldest counts
+      */
+     private int oldestBucketIndex;
+ 
+     /**
+      * Index into buckets, pointing at the bucket with the count for the current time (tick)
+      */
+     private int currentBucketIndex;
+ 
+     /**
+      * Instant at creation time of the time window. Used to calculate the currentBucketIndex
+      * for the instant of a given tick (instant modulo time window duration)
+      */
+     private final Instant bucketBaseTime;
+ 
+     /**
+      * Instant of the bucket with index oldestBucketIndex
+      */
+     Instant oldestBucketTime;
+ 
+     /**
+      * Creates a new {@link SlidingTimeWindowMovingAverages}.
+      */
+     public SlidingTimeWindowMovingAverages() {
+         this(Clock.defaultClock());
+     }
+ 
+     /**
+      * Creates a new {@link SlidingTimeWindowMovingAverages}.
+      *
+      * @param clock the clock to use for the meter ticks
+      */
+     public SlidingTimeWindowMovingAverages(Clock clock) {
+         this.clock = clock;
+         final long startTime = clock.getTick();
+         lastTick = new AtomicLong(startTime);
+ 
+         buckets = new ArrayList<>(NUMBER_OF_BUCKETS);
+         for (int i = 0; i < NUMBER_OF_BUCKETS; i++) {
+             buckets.add(new LongAdder());
+         }
+         bucketBaseTime = Instant.ofEpochSecond(0L, startTime);
+         oldestBucketTime = bucketBaseTime;
+         oldestBucketIndex = 0;
+         currentBucketIndex = 0;
+     }
+ 
+     @Override
+     public void update(long n) {
+         buckets.get(currentBucketIndex).add(n);
+     }
+ 
+     @Override
+     public void tickIfNecessary() {
+         final long oldTick = lastTick.get();
+         final long newTick = clock.getTick();
+         final long age = newTick - oldTick;
+         if (age >= TICK_INTERVAL) {
+             // - the newTick doesn't fall into the same slot as the oldTick anymore
+             // - newLastTick is the lower border time of the new currentBucketIndex slot
+             final long newLastTick = newTick - age % TICK_INTERVAL;
+             if (lastTick.compareAndSet(oldTick, newLastTick)) {
+                 Instant currentInstant = Instant.ofEpochSecond(0L, newLastTick);
+                 currentBucketIndex = normalizeIndex(calculateIndexOfTick(currentInstant));
+                 cleanOldBuckets(currentInstant);
+             }
+         }
+     }
+ 
+     @Override
+     public double getM15Rate() {
+         return getMinuteRate(15);
+     }
+ 
+     @Override
+     public double getM5Rate() {
+         return getMinuteRate(5);
+     }
+ 
+     @Override
+     public double getM1Rate() {
+         return getMinuteRate(1);
+     }
+ 
+     private double getMinuteRate(int minutes) {
+         Instant now = Instant.ofEpochSecond(0L, lastTick.get());
+         return sumBuckets(now, (int) (TimeUnit.MINUTES.toNanos(minutes) / TICK_INTERVAL));
+     }
+ 
+     int calculateIndexOfTick(Instant tickTime) {
+         return (int) (Duration.between(bucketBaseTime, tickTime).toNanos() / TICK_INTERVAL);
+     }
+ 
+     int normalizeIndex(int index) {
+         int mod = index % NUMBER_OF_BUCKETS;
+         return mod >= 0 ? mod : mod + NUMBER_OF_BUCKETS;
+     }
+ 
+     private void cleanOldBuckets(Instant currentTick) {
+         int newOldestIndex;
+         Instant oldestStillNeededTime = currentTick.minus(TIME_WINDOW_DURATION).plusNanos(TICK_INTERVAL);
+         Instant youngestNotInWindow = oldestBucketTime.plus(TIME_WINDOW_DURATION);
+         if (oldestStillNeededTime.isAfter(youngestNotInWindow)) {
+             // there was no update() call for more than two whole TIME_WINDOW_DURATION
+             newOldestIndex = oldestBucketIndex;
+             oldestBucketTime = currentTick;
+         } else if (oldestStillNeededTime.isAfter(oldestBucketTime)) {
+             newOldestIndex = normalizeIndex(calculateIndexOfTick(oldestStillNeededTime));
+             oldestBucketTime = oldestStillNeededTime;
+         } else {
+             return;
+         }
+ 
+         cleanBucketRange(oldestBucketIndex, newOldestIndex);
+         oldestBucketIndex = newOldestIndex;
+     }
+ 
+     private void cleanBucketRange(int fromIndex, int toIndex) {
+         if (fromIndex < toIndex) {
+             for (int i = fromIndex; i < toIndex; i++) {
+                 buckets.get(i).reset();
+             }
+         } else {
+             for (int i = fromIndex; i < NUMBER_OF_BUCKETS; i++) {
+                 buckets.get(i).reset();
+             }
+             for (int i = 0; i < toIndex; i++) {
+                 buckets.get(i).reset();
+             }
+         }
+     }
+ 
+     private long sumBuckets(Instant toTime, int numberOfBuckets) {
+ 
+         // increment toIndex to include the current bucket into the sum
+         int toIndex = normalizeIndex(calculateIndexOfTick(toTime) + 1);
+         int fromIndex = normalizeIndex(toIndex - numberOfBuckets);
+         LongAdder adder = new LongAdder();
+ 
+         if (fromIndex < toIndex) {
+             buckets.stream()
+                     .skip(fromIndex)
+                     .limit(toIndex - fromIndex)
+                     .mapToLong(LongAdder::longValue)
+                     .forEach(adder::add);
+         } else {
+             buckets.stream().limit(toIndex).mapToLong(LongAdder::longValue).forEach(adder::add);
+             buckets.stream().skip(fromIndex).mapToLong(LongAdder::longValue).forEach(adder::add);
+         }
+         long retval = adder.longValue();
+         return retval;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-21.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-21.html new file mode 100644 index 0000000000..91b4482513 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-21.html @@ -0,0 +1,199 @@ + + + + + + + + Coverage Report > SlidingTimeWindowReservoir + + + + + + +
+ + +

Coverage Summary for Class: SlidingTimeWindowReservoir (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowReservoir + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 93.1% + + + (27/29) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.ConcurrentSkipListMap;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicLong;
+ 
+ /**
+  * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
+  * in the last {@code N} seconds (or other time unit).
+  */
+ public class SlidingTimeWindowReservoir implements Reservoir {
+     // allow for this many duplicate ticks before overwriting measurements
+     private static final int COLLISION_BUFFER = 256;
+     // only trim on updating once every N
+     private static final int TRIM_THRESHOLD = 256;
+     // offsets the front of the time window for the purposes of clearing the buffer in trim
+     private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;
+ 
+     private final Clock clock;
+     private final ConcurrentSkipListMap<Long, Long> measurements;
+     private final long window;
+     private final AtomicLong lastTick;
+     private final AtomicLong count;
+     private final long startTick;
+ 
+     /**
+      * Creates a new {@link SlidingTimeWindowReservoir} with the given window of time.
+      *
+      * @param window     the window of time
+      * @param windowUnit the unit of {@code window}
+      */
+     public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit) {
+         this(window, windowUnit, Clock.defaultClock());
+     }
+ 
+     /**
+      * Creates a new {@link SlidingTimeWindowReservoir} with the given clock and window of time.
+      *
+      * @param window     the window of time
+      * @param windowUnit the unit of {@code window}
+      * @param clock      the {@link Clock} to use
+      */
+     public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit, Clock clock) {
+         this.startTick = clock.getTick();
+         this.clock = clock;
+         this.measurements = new ConcurrentSkipListMap<>();
+         this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;
+         this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);
+         this.count = new AtomicLong();
+     }
+ 
+     @Override
+     public int size() {
+         trim();
+         return measurements.size();
+     }
+ 
+     @Override
+     public void update(long value) {
+         if (count.incrementAndGet() % TRIM_THRESHOLD == 0) {
+             trim();
+         }
+         measurements.put(getTick(), value);
+     }
+ 
+     @Override
+     public Snapshot getSnapshot() {
+         trim();
+         return new UniformSnapshot(measurements.values());
+     }
+ 
+     private long getTick() {
+         for ( ;; ) {
+             final long oldTick = lastTick.get();
+             final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;
+             // ensure the tick is strictly incrementing even if there are duplicate ticks
+             final long newTick = tick - oldTick > 0 ? tick : oldTick + 1;
+             if (lastTick.compareAndSet(oldTick, newTick)) {
+                 return newTick;
+             }
+         }
+     }
+ 
+     private void trim() {
+         final long now = getTick();
+         final long windowStart = now - window;
+         final long windowEnd = now + CLEAR_BUFFER;
+         if (windowStart < windowEnd) {
+             measurements.headMap(windowStart).clear();
+             measurements.tailMap(windowEnd).clear();
+         } else {
+             measurements.subMap(windowEnd, windowStart).clear();
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-22.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-22.html new file mode 100644 index 0000000000..7ddd3fba27 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-22.html @@ -0,0 +1,147 @@ + + + + + + + + Coverage Report > SlidingWindowReservoir + + + + + + +
+ + +

Coverage Summary for Class: SlidingWindowReservoir (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SlidingWindowReservoir + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (11/11) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import static java.lang.Math.min;
+ 
+ /**
+  * A {@link Reservoir} implementation backed by a sliding window that stores the last {@code N}
+  * measurements.
+  */
+ public class SlidingWindowReservoir implements Reservoir {
+     private final long[] measurements;
+     private long count;
+ 
+     /**
+      * Creates a new {@link SlidingWindowReservoir} which stores the last {@code size} measurements.
+      *
+      * @param size the number of measurements to store
+      */
+     public SlidingWindowReservoir(int size) {
+         this.measurements = new long[size];
+         this.count = 0;
+     }
+ 
+     @Override
+     public synchronized int size() {
+         return (int) min(count, measurements.length);
+     }
+ 
+     @Override
+     public synchronized void update(long value) {
+         measurements[(int) (count++ % measurements.length)] = value;
+     }
+ 
+     @Override
+     public Snapshot getSnapshot() {
+         final long[] values = new long[size()];
+         for (int i = 0; i < values.length; i++) {
+             synchronized (this) {
+                 values[i] = measurements[i];
+             }
+         }
+         return new UniformSnapshot(values);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-23.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-23.html new file mode 100644 index 0000000000..df8ad46b15 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-23.html @@ -0,0 +1,286 @@ + + + + + + + + Coverage Report > Snapshot + + + + + + +
+ + +

Coverage Summary for Class: Snapshot (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
Snapshot + + 100% + + + (7/7) + + + + 100% + + + (7/7) + +
Snapshot$MockitoMock$3kXMZ64y
Snapshot$MockitoMock$3kXMZ64y$auxiliary$1NW7YkO9
Snapshot$MockitoMock$3kXMZ64y$auxiliary$dWtzrfnD
Snapshot$MockitoMock$4bWVOwe9
Snapshot$MockitoMock$4bWVOwe9$auxiliary$og4T4FVZ
Snapshot$MockitoMock$4bWVOwe9$auxiliary$tN3cdbdL
Snapshot$MockitoMock$94PvCN3s
Snapshot$MockitoMock$94PvCN3s$auxiliary$9QoRiBtA
Snapshot$MockitoMock$94PvCN3s$auxiliary$AjC91p0n
Snapshot$MockitoMock$tKAmXFPy
Snapshot$MockitoMock$tKAmXFPy$auxiliary$dcb67hvc
Snapshot$MockitoMock$tKAmXFPy$auxiliary$T0BNGyBy
Snapshot$MockitoMock$ZjHDjKzV
Snapshot$MockitoMock$ZjHDjKzV$auxiliary$ANVS1ys2
Snapshot$MockitoMock$ZjHDjKzV$auxiliary$umaMZ1U4
Snapshot$MockitoMock$zSVi2g8z
Snapshot$MockitoMock$zSVi2g8z$auxiliary$1ghyIaKW
Snapshot$MockitoMock$zSVi2g8z$auxiliary$mth3Dt9W
Total + + 100% + + + (7/7) + + + + 100% + + + (7/7) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.io.OutputStream;
+ 
+ /**
+  * A statistical snapshot of a {@link Snapshot}.
+  */
+ public abstract class Snapshot {
+ 
+     /**
+      * Returns the value at the given quantile.
+      *
+      * @param quantile a given quantile, in {@code [0..1]}
+      * @return the value in the distribution at {@code quantile}
+      */
+     public abstract double getValue(double quantile);
+ 
+     /**
+      * Returns the entire set of values in the snapshot.
+      *
+      * @return the entire set of values
+      */
+     public abstract long[] getValues();
+ 
+     /**
+      * Returns the number of values in the snapshot.
+      *
+      * @return the number of values
+      */
+     public abstract int size();
+ 
+     /**
+      * Returns the median value in the distribution.
+      *
+      * @return the median value
+      */
+     public double getMedian() {
+         return getValue(0.5);
+     }
+ 
+     /**
+      * Returns the value at the 75th percentile in the distribution.
+      *
+      * @return the value at the 75th percentile
+      */
+     public double get75thPercentile() {
+         return getValue(0.75);
+     }
+ 
+     /**
+      * Returns the value at the 95th percentile in the distribution.
+      *
+      * @return the value at the 95th percentile
+      */
+     public double get95thPercentile() {
+         return getValue(0.95);
+     }
+ 
+     /**
+      * Returns the value at the 98th percentile in the distribution.
+      *
+      * @return the value at the 98th percentile
+      */
+     public double get98thPercentile() {
+         return getValue(0.98);
+     }
+ 
+     /**
+      * Returns the value at the 99th percentile in the distribution.
+      *
+      * @return the value at the 99th percentile
+      */
+     public double get99thPercentile() {
+         return getValue(0.99);
+     }
+ 
+     /**
+      * Returns the value at the 99.9th percentile in the distribution.
+      *
+      * @return the value at the 99.9th percentile
+      */
+     public double get999thPercentile() {
+         return getValue(0.999);
+     }
+ 
+     /**
+      * Returns the highest value in the snapshot.
+      *
+      * @return the highest value
+      */
+     public abstract long getMax();
+ 
+     /**
+      * Returns the arithmetic mean of the values in the snapshot.
+      *
+      * @return the arithmetic mean
+      */
+     public abstract double getMean();
+ 
+     /**
+      * Returns the lowest value in the snapshot.
+      *
+      * @return the lowest value
+      */
+     public abstract long getMin();
+ 
+     /**
+      * Returns the standard deviation of the values in the snapshot.
+      *
+      * @return the standard value
+      */
+     public abstract double getStdDev();
+ 
+     /**
+      * Writes the values of the snapshot to the given stream.
+      *
+      * @param output an output stream
+      */
+     public abstract void dump(OutputStream output);
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-24.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-24.html new file mode 100644 index 0000000000..a9420b5e24 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-24.html @@ -0,0 +1,333 @@ + + + + + + + + Coverage Report > Timer + + + + + + +
+ + +

Coverage Summary for Class: Timer (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
Timer + + 100% + + + (17/17) + + + + 93.5% + + + (29/31) + +
Timer$Context + + 100% + + + (3/3) + + + + 100% + + + (8/8) + +
Total + + 100% + + + (20/20) + + + + 94.9% + + + (37/39) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.time.Duration;
+ import java.util.concurrent.Callable;
+ import java.util.concurrent.TimeUnit;
+ import java.util.function.Supplier;
+ 
+ /**
+  * A timer metric which aggregates timing durations and provides duration statistics, plus
+  * throughput statistics via {@link Meter}.
+  */
+ public class Timer implements Metered, Sampling {
+     /**
+      * A timing context.
+      *
+      * @see Timer#time()
+      */
+     public static class Context implements AutoCloseable {
+         private final Timer timer;
+         private final Clock clock;
+         private final long startTime;
+ 
+         Context(Timer timer, Clock clock) {
+             this.timer = timer;
+             this.clock = clock;
+             this.startTime = clock.getTick();
+         }
+ 
+         /**
+          * Updates the timer with the difference between current and start time. Call to this method will
+          * not reset the start time. Multiple calls result in multiple updates.
+          *
+          * @return the elapsed time in nanoseconds
+          */
+         public long stop() {
+             final long elapsed = clock.getTick() - startTime;
+             timer.update(elapsed, TimeUnit.NANOSECONDS);
+             return elapsed;
+         }
+ 
+         /**
+          * Equivalent to calling {@link #stop()}.
+          */
+         @Override
+         public void close() {
+             stop();
+         }
+     }
+ 
+     private final Meter meter;
+     private final Histogram histogram;
+     private final Clock clock;
+ 
+     /**
+      * Creates a new {@link Timer} using an {@link ExponentiallyDecayingReservoir} and the default
+      * {@link Clock}.
+      */
+     public Timer() {
+         this(new ExponentiallyDecayingReservoir());
+     }
+ 
+     /**
+      * Creates a new {@link Timer} that uses the given {@link Reservoir}.
+      *
+      * @param reservoir the {@link Reservoir} implementation the timer should use
+      */
+     public Timer(Reservoir reservoir) {
+         this(reservoir, Clock.defaultClock());
+     }
+ 
+     /**
+      * Creates a new {@link Timer} that uses the given {@link Reservoir} and {@link Clock}.
+      *
+      * @param reservoir the {@link Reservoir} implementation the timer should use
+      * @param clock     the {@link Clock} implementation the timer should use
+      */
+     public Timer(Reservoir reservoir, Clock clock) {
+         this(new Meter(clock), new Histogram(reservoir), clock);
+     }
+ 
+     public Timer(Meter meter, Histogram histogram, Clock clock) {
+         this.meter = meter;
+         this.histogram = histogram;
+         this.clock = clock;
+     }
+ 
+     /**
+      * Adds a recorded duration.
+      *
+      * @param duration the length of the duration
+      * @param unit     the scale unit of {@code duration}
+      */
+     public void update(long duration, TimeUnit unit) {
+         update(unit.toNanos(duration));
+     }
+ 
+     /**
+      * Adds a recorded duration.
+      *
+      * @param duration the {@link Duration} to add to the timer. Negative or zero value are ignored.
+      */
+     public void update(Duration duration) {
+         update(duration.toNanos());
+     }
+ 
+     /**
+      * Times and records the duration of event.
+      *
+      * @param event a {@link Callable} whose {@link Callable#call()} method implements a process
+      *              whose duration should be timed
+      * @param <T>   the type of the value returned by {@code event}
+      * @return the value returned by {@code event}
+      * @throws Exception if {@code event} throws an {@link Exception}
+      */
+     public <T> T time(Callable<T> event) throws Exception {
+         final long startTime = clock.getTick();
+         try {
+             return event.call();
+         } finally {
+             update(clock.getTick() - startTime);
+         }
+     }
+ 
+     /**
+      * Times and records the duration of event. Should not throw exceptions, for that use the
+      * {@link #time(Callable)} method.
+      *
+      * @param event a {@link Supplier} whose {@link Supplier#get()} method implements a process
+      *              whose duration should be timed
+      * @param <T>   the type of the value returned by {@code event}
+      * @return the value returned by {@code event}
+      */
+     public <T> T timeSupplier(Supplier<T> event) {
+         final long startTime = clock.getTick();
+         try {
+             return event.get();
+         } finally {
+             update(clock.getTick() - startTime);
+         }
+     }
+ 
+     /**
+      * Times and records the duration of event.
+      *
+      * @param event a {@link Runnable} whose {@link Runnable#run()} method implements a process
+      *              whose duration should be timed
+      */
+     public void time(Runnable event) {
+         final long startTime = clock.getTick();
+         try {
+             event.run();
+         } finally {
+             update(clock.getTick() - startTime);
+         }
+     }
+ 
+     /**
+      * Returns a new {@link Context}.
+      *
+      * @return a new {@link Context}
+      * @see Context
+      */
+     public Context time() {
+         return new Context(this, clock);
+     }
+ 
+     @Override
+     public long getCount() {
+         return histogram.getCount();
+     }
+ 
+     @Override
+     public double getFifteenMinuteRate() {
+         return meter.getFifteenMinuteRate();
+     }
+ 
+     @Override
+     public double getFiveMinuteRate() {
+         return meter.getFiveMinuteRate();
+     }
+ 
+     @Override
+     public double getMeanRate() {
+         return meter.getMeanRate();
+     }
+ 
+     @Override
+     public double getOneMinuteRate() {
+         return meter.getOneMinuteRate();
+     }
+ 
+     @Override
+     public Snapshot getSnapshot() {
+         return histogram.getSnapshot();
+     }
+ 
+     private void update(long duration) {
+         if (duration >= 0) {
+             histogram.update(duration);
+             meter.mark();
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-25.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-25.html new file mode 100644 index 0000000000..80748ce1e4 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-25.html @@ -0,0 +1,174 @@ + + + + + + + + Coverage Report > UniformReservoir + + + + + + +
+ + +

Coverage Summary for Class: UniformReservoir (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
UniformReservoir + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 95.5% + + + (21/22) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.ThreadLocalRandom;
+ import java.util.concurrent.atomic.AtomicLong;
+ import java.util.concurrent.atomic.AtomicLongArray;
+ 
+ /**
+  * A random sampling reservoir of a stream of {@code long}s. Uses Vitter's Algorithm R to produce a
+  * statistically representative sample.
+  *
+  * @see <a href="http://www.cs.umd.edu/~samir/498/vitter.pdf">Random Sampling with a Reservoir</a>
+  */
+ public class UniformReservoir implements Reservoir {
+     private static final int DEFAULT_SIZE = 1028;
+     private final AtomicLong count = new AtomicLong();
+     private final AtomicLongArray values;
+ 
+     /**
+      * Creates a new {@link UniformReservoir} of 1028 elements, which offers a 99.9% confidence level
+      * with a 5% margin of error assuming a normal distribution.
+      */
+     public UniformReservoir() {
+         this(DEFAULT_SIZE);
+     }
+ 
+     /**
+      * Creates a new {@link UniformReservoir}.
+      *
+      * @param size the number of samples to keep in the sampling reservoir
+      */
+     public UniformReservoir(int size) {
+         this.values = new AtomicLongArray(size);
+         for (int i = 0; i < values.length(); i++) {
+             values.set(i, 0);
+         }
+         count.set(0);
+     }
+ 
+     @Override
+     public int size() {
+         final long c = count.get();
+         if (c > values.length()) {
+             return values.length();
+         }
+         return (int) c;
+     }
+ 
+     @Override
+     public void update(long value) {
+         final long c = count.incrementAndGet();
+         if (c <= values.length()) {
+             values.set((int) c - 1, value);
+         } else {
+             final long r = ThreadLocalRandom.current().nextLong(c);
+             if (r < values.length()) {
+                 values.set((int) r, value);
+             }
+         }
+     }
+ 
+     @Override
+     public Snapshot getSnapshot() {
+         final int s = size();
+         long[] copy = new long[s];
+         for (int i = 0; i < s; i++) {
+             copy[i] = values.get(i);
+         }
+         return new UniformSnapshot(copy);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-26.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-26.html new file mode 100644 index 0000000000..5966f2dc90 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-26.html @@ -0,0 +1,281 @@ + + + + + + + + Coverage Report > UniformSnapshot + + + + + + +
+ + +

Coverage Summary for Class: UniformSnapshot (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
UniformSnapshot + + 100% + + + (1/1) + + + + 100% + + + (10/10) + + + + 98% + + + (48/49) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.io.OutputStream;
+ import java.io.OutputStreamWriter;
+ import java.io.PrintWriter;
+ import java.util.Arrays;
+ import java.util.Collection;
+ 
+ import static java.lang.Math.floor;
+ import static java.nio.charset.StandardCharsets.UTF_8;
+ 
+ /**
+  * A statistical snapshot of a {@link UniformSnapshot}.
+  */
+ public class UniformSnapshot extends Snapshot {
+ 
+     private final long[] values;
+ 
+     /**
+      * Create a new {@link Snapshot} with the given values.
+      *
+      * @param values an unordered set of values in the reservoir
+      */
+     public UniformSnapshot(Collection<Long> values) {
+         final Object[] copy = values.toArray();
+         this.values = new long[copy.length];
+         for (int i = 0; i < copy.length; i++) {
+             this.values[i] = (Long) copy[i];
+         }
+         Arrays.sort(this.values);
+     }
+ 
+     /**
+      * Create a new {@link Snapshot} with the given values.
+      *
+      * @param values an unordered set of values in the reservoir that can be used by this class directly
+      */
+     public UniformSnapshot(long[] values) {
+         this.values = Arrays.copyOf(values, values.length);
+         Arrays.sort(this.values);
+     }
+ 
+     /**
+      * Returns the value at the given quantile.
+      *
+      * @param quantile a given quantile, in {@code [0..1]}
+      * @return the value in the distribution at {@code quantile}
+      */
+     @Override
+     public double getValue(double quantile) {
+         if (quantile < 0.0 || quantile > 1.0 || Double.isNaN(quantile)) {
+             throw new IllegalArgumentException(quantile + " is not in [0..1]");
+         }
+ 
+         if (values.length == 0) {
+             return 0.0;
+         }
+ 
+         final double pos = quantile * (values.length + 1);
+         final int index = (int) pos;
+ 
+         if (index < 1) {
+             return values[0];
+         }
+ 
+         if (index >= values.length) {
+             return values[values.length - 1];
+         }
+ 
+         final double lower = values[index - 1];
+         final double upper = values[index];
+         return lower + (pos - floor(pos)) * (upper - lower);
+     }
+ 
+     /**
+      * Returns the number of values in the snapshot.
+      *
+      * @return the number of values
+      */
+     @Override
+     public int size() {
+         return values.length;
+     }
+ 
+     /**
+      * Returns the entire set of values in the snapshot.
+      *
+      * @return the entire set of values
+      */
+     @Override
+     public long[] getValues() {
+         return Arrays.copyOf(values, values.length);
+     }
+ 
+     /**
+      * Returns the highest value in the snapshot.
+      *
+      * @return the highest value
+      */
+     @Override
+     public long getMax() {
+         if (values.length == 0) {
+             return 0;
+         }
+         return values[values.length - 1];
+     }
+ 
+     /**
+      * Returns the lowest value in the snapshot.
+      *
+      * @return the lowest value
+      */
+     @Override
+     public long getMin() {
+         if (values.length == 0) {
+             return 0;
+         }
+         return values[0];
+     }
+ 
+     /**
+      * Returns the arithmetic mean of the values in the snapshot.
+      *
+      * @return the arithmetic mean
+      */
+     @Override
+     public double getMean() {
+         if (values.length == 0) {
+             return 0;
+         }
+ 
+         double sum = 0;
+         for (long value : values) {
+             sum += value;
+         }
+         return sum / values.length;
+     }
+ 
+     /**
+      * Returns the standard deviation of the values in the snapshot.
+      *
+      * @return the standard deviation value
+      */
+     @Override
+     public double getStdDev() {
+         // two-pass algorithm for variance, avoids numeric overflow
+ 
+         if (values.length <= 1) {
+             return 0;
+         }
+ 
+         final double mean = getMean();
+         double sum = 0;
+ 
+         for (long value : values) {
+             final double diff = value - mean;
+             sum += diff * diff;
+         }
+ 
+         final double variance = sum / (values.length - 1);
+         return Math.sqrt(variance);
+     }
+ 
+     /**
+      * Writes the values of the snapshot to the given stream.
+      *
+      * @param output an output stream
+      */
+     @Override
+     public void dump(OutputStream output) {
+         try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {
+             for (long value : values) {
+                 out.printf("%d%n", value);
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-27.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-27.html new file mode 100644 index 0000000000..dbf727bb4f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-27.html @@ -0,0 +1,325 @@ + + + + + + + + Coverage Report > WeightedSnapshot + + + + + + +
+ + +

Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
WeightedSnapshot + + 100% + + + (9/9) + + + + 98.1% + + + (51/52) + +
WeightedSnapshot$WeightedSample + + 100% + + + (1/1) + + + + 100% + + + (3/3) + +
Total + + 100% + + + (10/10) + + + + 98.2% + + + (54/55) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.io.OutputStream;
+ import java.io.OutputStreamWriter;
+ import java.io.PrintWriter;
+ import java.util.Arrays;
+ import java.util.Collection;
+ import java.util.Comparator;
+ 
+ import static java.nio.charset.StandardCharsets.UTF_8;
+ 
+ /**
+  * A statistical snapshot of a {@link WeightedSnapshot}.
+  */
+ public class WeightedSnapshot extends Snapshot {
+ 
+     /**
+      * A single sample item with value and its weights for {@link WeightedSnapshot}.
+      */
+     public static class WeightedSample {
+         public final long value;
+         public final double weight;
+ 
+         public WeightedSample(long value, double weight) {
+             this.value = value;
+             this.weight = weight;
+         }
+     }
+ 
+     private final long[] values;
+     private final double[] normWeights;
+     private final double[] quantiles;
+ 
+     /**
+      * Create a new {@link Snapshot} with the given values.
+      *
+      * @param values an unordered set of values in the reservoir
+      */
+     public WeightedSnapshot(Collection<WeightedSample> values) {
+         final WeightedSample[] copy = values.toArray(new WeightedSample[]{});
+ 
+         Arrays.sort(copy, Comparator.comparingLong(w -> w.value));
+ 
+         this.values = new long[copy.length];
+         this.normWeights = new double[copy.length];
+         this.quantiles = new double[copy.length];
+ 
+         double sumWeight = 0;
+         for (WeightedSample sample : copy) {
+             sumWeight += sample.weight;
+         }
+ 
+         for (int i = 0; i < copy.length; i++) {
+             this.values[i] = copy[i].value;
+             this.normWeights[i] = sumWeight != 0 ? copy[i].weight / sumWeight : 0;
+         }
+ 
+         for (int i = 1; i < copy.length; i++) {
+             this.quantiles[i] = this.quantiles[i - 1] + this.normWeights[i - 1];
+         }
+     }
+ 
+     /**
+      * Returns the value at the given quantile.
+      *
+      * @param quantile a given quantile, in {@code [0..1]}
+      * @return the value in the distribution at {@code quantile}
+      */
+     @Override
+     public double getValue(double quantile) {
+         if (quantile < 0.0 || quantile > 1.0 || Double.isNaN(quantile)) {
+             throw new IllegalArgumentException(quantile + " is not in [0..1]");
+         }
+ 
+         if (values.length == 0) {
+             return 0.0;
+         }
+ 
+         int posx = Arrays.binarySearch(quantiles, quantile);
+         if (posx < 0)
+             posx = ((-posx) - 1) - 1;
+ 
+         if (posx < 1) {
+             return values[0];
+         }
+ 
+         if (posx >= values.length) {
+             return values[values.length - 1];
+         }
+ 
+         return values[posx];
+     }
+ 
+     /**
+      * Returns the number of values in the snapshot.
+      *
+      * @return the number of values
+      */
+     @Override
+     public int size() {
+         return values.length;
+     }
+ 
+     /**
+      * Returns the entire set of values in the snapshot.
+      *
+      * @return the entire set of values
+      */
+     @Override
+     public long[] getValues() {
+         return Arrays.copyOf(values, values.length);
+     }
+ 
+     /**
+      * Returns the highest value in the snapshot.
+      *
+      * @return the highest value
+      */
+     @Override
+     public long getMax() {
+         if (values.length == 0) {
+             return 0;
+         }
+         return values[values.length - 1];
+     }
+ 
+     /**
+      * Returns the lowest value in the snapshot.
+      *
+      * @return the lowest value
+      */
+     @Override
+     public long getMin() {
+         if (values.length == 0) {
+             return 0;
+         }
+         return values[0];
+     }
+ 
+     /**
+      * Returns the weighted arithmetic mean of the values in the snapshot.
+      *
+      * @return the weighted arithmetic mean
+      */
+     @Override
+     public double getMean() {
+         if (values.length == 0) {
+             return 0;
+         }
+ 
+         double sum = 0;
+         for (int i = 0; i < values.length; i++) {
+             sum += values[i] * normWeights[i];
+         }
+         return sum;
+     }
+ 
+     /**
+      * Returns the weighted standard deviation of the values in the snapshot.
+      *
+      * @return the weighted standard deviation value
+      */
+     @Override
+     public double getStdDev() {
+         // two-pass algorithm for variance, avoids numeric overflow
+ 
+         if (values.length <= 1) {
+             return 0;
+         }
+ 
+         final double mean = getMean();
+         double variance = 0;
+ 
+         for (int i = 0; i < values.length; i++) {
+             final double diff = values[i] - mean;
+             variance += normWeights[i] * diff * diff;
+         }
+ 
+         return Math.sqrt(variance);
+     }
+ 
+     /**
+      * Writes the values of the snapshot to the given stream.
+      *
+      * @param output an output stream
+      */
+     @Override
+     public void dump(OutputStream output) {
+         try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {
+             for (long value : values) {
+                 out.printf("%d%n", value);
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-28.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-28.html new file mode 100644 index 0000000000..d786e397b8 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-28.html @@ -0,0 +1,81 @@ + + + + + + + + Coverage Report > Sampling + + + + + + +
+ + +

Coverage Summary for Class: Sampling (com.codahale.metrics)

+ + + + + + + + + +
Class
Sampling
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * An object which samples values.
+  */
+ public interface Sampling {
+     /**
+      * Returns a snapshot of the values.
+      *
+      * @return a snapshot of the values
+      */
+     Snapshot getSnapshot();
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-29.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-29.html new file mode 100644 index 0000000000..81605a74c3 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-29.html @@ -0,0 +1,81 @@ + + + + + + + + Coverage Report > Counting + + + + + + +
+ + +

Coverage Summary for Class: Counting (com.codahale.metrics)

+ + + + + + + + + +
Class
Counting
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * An interface for metric types which have counts.
+  */
+ public interface Counting {
+     /**
+      * Returns the current count.
+      *
+      * @return the current count
+      */
+     long getCount();
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2a.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2a.html new file mode 100644 index 0000000000..1827aef43b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2a.html @@ -0,0 +1,103 @@ + + + + + + + + Coverage Report > Gauge + + + + + + +
+ + +

Coverage Summary for Class: Gauge (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + +
Class
Gauge$MockitoMock$x8oswAWK
Gauge$MockitoMock$x8oswAWK$auxiliary$093oUXhf
Gauge$MockitoMock$x8oswAWK$auxiliary$jNrnva1y
Total
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ 
+ /**
+  * A gauge metric is an instantaneous reading of a particular value. To instrument a queue's depth,
+  * for example:<br>
+  * <pre><code>
+  * final Queue&lt;String&gt; queue = new ConcurrentLinkedQueue&lt;String&gt;();
+  * final Gauge&lt;Integer&gt; queueDepth = new Gauge&lt;Integer&gt;() {
+  *     public Integer getValue() {
+  *         return queue.size();
+  *     }
+  * };
+  * </code></pre>
+  *
+  * @param <T> the type of the metric's value
+  */
+ @FunctionalInterface
+ public interface Gauge<T> extends Metric {
+     /**
+      * Returns the metric's current value.
+      *
+      * @return the metric's current value
+      */
+     T getValue();
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2b.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2b.html new file mode 100644 index 0000000000..bc330687c0 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2b.html @@ -0,0 +1,98 @@ + + + + + + + + Coverage Report > CsvFileProvider + + + + + + +
+ + +

Coverage Summary for Class: CsvFileProvider (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class
CsvFileProvider$MockitoMock$AsTM7qMN
CsvFileProvider$MockitoMock$AsTM7qMN$auxiliary$q90B05bY
CsvFileProvider$MockitoMock$AsTM7qMN$auxiliary$ZLJtm1Gf
CsvFileProvider$MockitoMock$mdqV55Am
CsvFileProvider$MockitoMock$mdqV55Am$auxiliary$QLjSYMki
CsvFileProvider$MockitoMock$mdqV55Am$auxiliary$wIlSPpRg
Total
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.io.File;
+ 
+ /**
+  * This interface allows a pluggable implementation of what file names
+  * the {@link CsvReporter} will write to.
+  */
+ public interface CsvFileProvider {
+ 
+     File getFile(File directory, String metricName);
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2c.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2c.html new file mode 100644 index 0000000000..3273bbec16 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2c.html @@ -0,0 +1,85 @@ + + + + + + + + Coverage Report > MetricSet + + + + + + +
+ + +

Coverage Summary for Class: MetricSet (com.codahale.metrics)

+ + + + + + + + + +
Class
MetricSet
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.Map;
+ 
+ /**
+  * A set of named metrics.
+  *
+  * @see MetricRegistry#registerAll(MetricSet)
+  */
+ public interface MetricSet extends Metric {
+     /**
+      * A map of metric names to metrics.
+      *
+      * @return the metrics
+      */
+     Map<String, Metric> getMetrics();
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2d.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2d.html new file mode 100644 index 0000000000..7a3ca60a01 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2d.html @@ -0,0 +1,113 @@ + + + + + + + + Coverage Report > Reservoir + + + + + + +
+ + +

Coverage Summary for Class: Reservoir (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class
Reservoir$MockitoMock$J44vlUGQ
Reservoir$MockitoMock$J44vlUGQ$auxiliary$Xh8YVFBQ
Reservoir$MockitoMock$J44vlUGQ$auxiliary$ZfchdzfL
Reservoir$MockitoMock$VvaiqT2J
Reservoir$MockitoMock$VvaiqT2J$auxiliary$bZRQqtYX
Reservoir$MockitoMock$VvaiqT2J$auxiliary$V91G1NUU
Total
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * A statistically representative reservoir of a data stream.
+  */
+ public interface Reservoir {
+     /**
+      * Returns the number of values recorded.
+      *
+      * @return the number of values recorded
+      */
+     int size();
+ 
+     /**
+      * Adds a new recorded value to the reservoir.
+      *
+      * @param value a new recorded value
+      */
+     void update(long value);
+ 
+     /**
+      * Returns a snapshot of the reservoir's values.
+      *
+      * @return a snapshot of the reservoir's values
+      */
+     Snapshot getSnapshot();
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2e.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2e.html new file mode 100644 index 0000000000..86063f0938 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2e.html @@ -0,0 +1,78 @@ + + + + + + + + Coverage Report > Reporter + + + + + + +
+ + +

Coverage Summary for Class: Reporter (com.codahale.metrics)

+ + + + + + + + + +
Class
Reporter
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.io.Closeable;
+ 
+ /*
+  * A tag interface to indicate that a class is a Reporter.
+  */
+ public interface Reporter extends Closeable {
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2f.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2f.html new file mode 100644 index 0000000000..ecbc8e7020 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2f.html @@ -0,0 +1,116 @@ + + + + + + + + Coverage Report > MovingAverages + + + + + + +
+ + +

Coverage Summary for Class: MovingAverages (com.codahale.metrics)

+ + + + + + + + + +
Class
MovingAverages
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * A triple of moving averages (one-, five-, and fifteen-minute
+  * moving average) as needed by {@link Meter}.
+  * <p>
+  * Included implementations are:
+  * <ul>
+  * <li>{@link ExponentialMovingAverages} exponential decaying average similar to the {@code top} Unix command.
+  * <li>{@link SlidingTimeWindowMovingAverages} simple (unweighted) moving average
+  * </ul>
+  */
+ public interface MovingAverages {
+ 
+     /**
+      * Tick the internal clock of the MovingAverages implementation if needed
+      * (according to the internal ticking interval)
+      */
+     void tickIfNecessary();
+ 
+     /**
+      * Update all three moving averages with n events having occurred since the last update.
+      *
+      * @param n
+      */
+     void update(long n);
+ 
+     /**
+      * Returns the one-minute moving average rate
+      *
+      * @return the one-minute moving average rate
+      */
+     double getM1Rate();
+ 
+     /**
+      * Returns the five-minute moving average rate
+      *
+      * @return the five-minute moving average rate
+      */
+     double getM5Rate();
+ 
+     /**
+      * Returns the fifteen-minute moving average rate
+      *
+      * @return the fifteen-minute moving average rate
+      */
+     double getM15Rate();
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-3.html new file mode 100644 index 0000000000..0e80730bd2 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-3.html @@ -0,0 +1,240 @@ + + + + + + + + Coverage Report > Clock + + + + + + +
+ + +

Coverage Summary for Class: Clock (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
Clock + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
Clock$MockitoMock$52MBwOxh
Clock$MockitoMock$52MBwOxh$auxiliary$95BiIqNK
Clock$MockitoMock$52MBwOxh$auxiliary$J4UtWZ6f
Clock$MockitoMock$7o1qk2SD
Clock$MockitoMock$7o1qk2SD$auxiliary$lPkMsG0G
Clock$MockitoMock$7o1qk2SD$auxiliary$xWTGiMkZ
Clock$MockitoMock$IokQtbTI
Clock$MockitoMock$IokQtbTI$auxiliary$1Hk8ebL3
Clock$MockitoMock$IokQtbTI$auxiliary$o1bITTY8
Clock$MockitoMock$nfpVaqy1
Clock$MockitoMock$nfpVaqy1$auxiliary$DT0yfKdk
Clock$MockitoMock$nfpVaqy1$auxiliary$PuyBKsay
Clock$MockitoMock$y96Y8VBC
Clock$MockitoMock$y96Y8VBC$auxiliary$t2PKegcD
Clock$MockitoMock$y96Y8VBC$auxiliary$xik9WU6C
Clock$UserTimeClock + + 100% + + + (2/2) + + + + 100% + + + (2/2) + +
Clock$UserTimeClockHolder + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
Total + + 100% + + + (6/6) + + + + 100% + + + (6/6) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * An abstraction for how time passes. It is passed to {@link Timer} to track timing.
+  */
+ public abstract class Clock {
+     /**
+      * Returns the current time tick.
+      *
+      * @return time tick in nanoseconds
+      */
+     public abstract long getTick();
+ 
+     /**
+      * Returns the current time in milliseconds.
+      *
+      * @return time in milliseconds
+      */
+     public long getTime() {
+         return System.currentTimeMillis();
+     }
+ 
+     /**
+      * The default clock to use.
+      *
+      * @return the default {@link Clock} instance
+      * @see Clock.UserTimeClock
+      */
+     public static Clock defaultClock() {
+         return UserTimeClockHolder.DEFAULT;
+     }
+ 
+     /**
+      * A clock implementation which returns the current time in epoch nanoseconds.
+      */
+     public static class UserTimeClock extends Clock {
+         @Override
+         public long getTick() {
+             return System.nanoTime();
+         }
+     }
+ 
+     private static class UserTimeClockHolder {
+         private static final Clock DEFAULT = new UserTimeClock();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-30.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-30.html new file mode 100644 index 0000000000..157733a7b2 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-30.html @@ -0,0 +1,94 @@ + + + + + + + + Coverage Report > Metric + + + + + + +
+ + +

Coverage Summary for Class: Metric (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class
Metric$MockitoMock$mZ6WthxG
Metric$MockitoMock$mZ6WthxG$auxiliary$R7gDKLyB
Metric$MockitoMock$mZ6WthxG$auxiliary$WPjvm4oY
Metric$MockitoMock$P3bfdWev
Metric$MockitoMock$P3bfdWev$auxiliary$6IokvHRO
Metric$MockitoMock$P3bfdWev$auxiliary$q8iEprB9
Total
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * A tag interface to indicate that a class is a metric.
+  */
+ public interface Metric {
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-31.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-31.html new file mode 100644 index 0000000000..a53e0fd253 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-31.html @@ -0,0 +1,82 @@ + + + + + + + + Coverage Report > SettableGauge + + + + + + +
+ + +

Coverage Summary for Class: SettableGauge (com.codahale.metrics)

+ + + + + + + + + +
Class
SettableGauge
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * <p>
+  * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
+  * See {@link DefaultSettableGauge}.
+  * </p>
+  */
+ public interface SettableGauge<T> extends Gauge<T> {
+     /**
+      * Set the metric to a new value.
+      */
+     void setValue(T value);
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-32.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-32.html new file mode 100644 index 0000000000..8bc67f0825 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-32.html @@ -0,0 +1,116 @@ + + + + + + + + Coverage Report > Metered + + + + + + +
+ + +

Coverage Summary for Class: Metered (com.codahale.metrics)

+ + + + + + + + + +
Class
Metered
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * An object which maintains mean and moving average rates.
+  */
+ public interface Metered extends Metric, Counting {
+     /**
+      * Returns the number of events which have been marked.
+      *
+      * @return the number of events which have been marked
+      */
+     @Override
+     long getCount();
+ 
+     /**
+      * Returns the fifteen-minute moving average rate at which events have
+      * occurred since the meter was created.
+      *
+      * @return the fifteen-minute moving average rate at which events have
+      * occurred since the meter was created
+      */
+     double getFifteenMinuteRate();
+ 
+     /**
+      * Returns the five-minute moving average rate at which events have
+      * occurred since the meter was created.
+      *
+      * @return the five-minute moving average rate at which events have
+      * occurred since the meter was created
+      */
+     double getFiveMinuteRate();
+ 
+     /**
+      * Returns the mean rate at which events have occurred since the meter was created.
+      *
+      * @return the mean rate at which events have occurred since the meter was created
+      */
+     double getMeanRate();
+ 
+     /**
+      * Returns the one-minute moving average rate at which events have
+      * occurred since the meter was created.
+      *
+      * @return the one-minute moving average rate at which events have
+      * occurred since the meter was created
+      */
+     double getOneMinuteRate();
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-4.html new file mode 100644 index 0000000000..563c220198 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-4.html @@ -0,0 +1,490 @@ + + + + + + + + Coverage Report > ConsoleReporter + + + + + + +
+ + +

Coverage Summary for Class: ConsoleReporter (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
ConsoleReporter + + 100% + + + (11/11) + + + + 100% + + + (90/90) + +
ConsoleReporter$1
ConsoleReporter$Builder + + 84.6% + + + (11/13) + + + + 88.2% + + + (30/34) + +
Total + + 91.7% + + + (22/24) + + + + 96.8% + + + (120/124) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.io.PrintStream;
+ import java.text.DateFormat;
+ import java.util.Collections;
+ import java.util.Date;
+ import java.util.Locale;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.SortedMap;
+ import java.util.TimeZone;
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * A reporter which outputs measurements to a {@link PrintStream}, like {@code System.out}.
+  */
+ public class ConsoleReporter extends ScheduledReporter {
+     /**
+      * Returns a new {@link Builder} for {@link ConsoleReporter}.
+      *
+      * @param registry the registry to report
+      * @return a {@link Builder} instance for a {@link ConsoleReporter}
+      */
+     public static Builder forRegistry(MetricRegistry registry) {
+         return new Builder(registry);
+     }
+ 
+     /**
+      * A builder for {@link ConsoleReporter} instances. Defaults to using the default locale and
+      * time zone, writing to {@code System.out}, converting rates to events/second, converting
+      * durations to milliseconds, and not filtering metrics.
+      */
+     public static class Builder {
+         private final MetricRegistry registry;
+         private PrintStream output;
+         private Locale locale;
+         private Clock clock;
+         private TimeZone timeZone;
+         private TimeUnit rateUnit;
+         private TimeUnit durationUnit;
+         private MetricFilter filter;
+         private ScheduledExecutorService executor;
+         private boolean shutdownExecutorOnStop;
+         private Set<MetricAttribute> disabledMetricAttributes;
+ 
+         private Builder(MetricRegistry registry) {
+             this.registry = registry;
+             this.output = System.out;
+             this.locale = Locale.getDefault();
+             this.clock = Clock.defaultClock();
+             this.timeZone = TimeZone.getDefault();
+             this.rateUnit = TimeUnit.SECONDS;
+             this.durationUnit = TimeUnit.MILLISECONDS;
+             this.filter = MetricFilter.ALL;
+             this.executor = null;
+             this.shutdownExecutorOnStop = true;
+             disabledMetricAttributes = Collections.emptySet();
+         }
+ 
+         /**
+          * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
+          * Default value is true.
+          * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
+          *
+          * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
+          * @return {@code this}
+          */
+         public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
+             this.shutdownExecutorOnStop = shutdownExecutorOnStop;
+             return this;
+         }
+ 
+         /**
+          * Specifies the executor to use while scheduling reporting of metrics.
+          * Default value is null.
+          * Null value leads to executor will be auto created on start.
+          *
+          * @param executor the executor to use while scheduling reporting of metrics.
+          * @return {@code this}
+          */
+         public Builder scheduleOn(ScheduledExecutorService executor) {
+             this.executor = executor;
+             return this;
+         }
+ 
+         /**
+          * Write to the given {@link PrintStream}.
+          *
+          * @param output a {@link PrintStream} instance.
+          * @return {@code this}
+          */
+         public Builder outputTo(PrintStream output) {
+             this.output = output;
+             return this;
+         }
+ 
+         /**
+          * Format numbers for the given {@link Locale}.
+          *
+          * @param locale a {@link Locale}
+          * @return {@code this}
+          */
+         public Builder formattedFor(Locale locale) {
+             this.locale = locale;
+             return this;
+         }
+ 
+         /**
+          * Use the given {@link Clock} instance for the time.
+          *
+          * @param clock a {@link Clock} instance
+          * @return {@code this}
+          */
+         public Builder withClock(Clock clock) {
+             this.clock = clock;
+             return this;
+         }
+ 
+         /**
+          * Use the given {@link TimeZone} for the time.
+          *
+          * @param timeZone a {@link TimeZone}
+          * @return {@code this}
+          */
+         public Builder formattedFor(TimeZone timeZone) {
+             this.timeZone = timeZone;
+             return this;
+         }
+ 
+         /**
+          * Convert rates to the given time unit.
+          *
+          * @param rateUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertRatesTo(TimeUnit rateUnit) {
+             this.rateUnit = rateUnit;
+             return this;
+         }
+ 
+         /**
+          * Convert durations to the given time unit.
+          *
+          * @param durationUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertDurationsTo(TimeUnit durationUnit) {
+             this.durationUnit = durationUnit;
+             return this;
+         }
+ 
+         /**
+          * Only report metrics which match the given filter.
+          *
+          * @param filter a {@link MetricFilter}
+          * @return {@code this}
+          */
+         public Builder filter(MetricFilter filter) {
+             this.filter = filter;
+             return this;
+         }
+ 
+         /**
+          * Don't report the passed metric attributes for all metrics (e.g. "p999", "stddev" or "m15").
+          * See {@link MetricAttribute}.
+          *
+          * @param disabledMetricAttributes a {@link MetricFilter}
+          * @return {@code this}
+          */
+         public Builder disabledMetricAttributes(Set<MetricAttribute> disabledMetricAttributes) {
+             this.disabledMetricAttributes = disabledMetricAttributes;
+             return this;
+         }
+ 
+         /**
+          * Builds a {@link ConsoleReporter} with the given properties.
+          *
+          * @return a {@link ConsoleReporter}
+          */
+         public ConsoleReporter build() {
+             return new ConsoleReporter(registry,
+                     output,
+                     locale,
+                     clock,
+                     timeZone,
+                     rateUnit,
+                     durationUnit,
+                     filter,
+                     executor,
+                     shutdownExecutorOnStop,
+                     disabledMetricAttributes);
+         }
+     }
+ 
+     private static final int CONSOLE_WIDTH = 80;
+ 
+     private final PrintStream output;
+     private final Locale locale;
+     private final Clock clock;
+     private final DateFormat dateFormat;
+ 
+     private ConsoleReporter(MetricRegistry registry,
+                             PrintStream output,
+                             Locale locale,
+                             Clock clock,
+                             TimeZone timeZone,
+                             TimeUnit rateUnit,
+                             TimeUnit durationUnit,
+                             MetricFilter filter,
+                             ScheduledExecutorService executor,
+                             boolean shutdownExecutorOnStop,
+                             Set<MetricAttribute> disabledMetricAttributes) {
+         super(registry, "console-reporter", filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, disabledMetricAttributes);
+         this.output = output;
+         this.locale = locale;
+         this.clock = clock;
+         this.dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT,
+                 DateFormat.MEDIUM,
+                 locale);
+         dateFormat.setTimeZone(timeZone);
+     }
+ 
+     @Override
+     @SuppressWarnings("rawtypes")
+     public void report(SortedMap<String, Gauge> gauges,
+                        SortedMap<String, Counter> counters,
+                        SortedMap<String, Histogram> histograms,
+                        SortedMap<String, Meter> meters,
+                        SortedMap<String, Timer> timers) {
+         final String dateTime = dateFormat.format(new Date(clock.getTime()));
+         printWithBanner(dateTime, '=');
+         output.println();
+ 
+         if (!gauges.isEmpty()) {
+             printWithBanner("-- Gauges", '-');
+             for (Map.Entry<String, Gauge> entry : gauges.entrySet()) {
+                 output.println(entry.getKey());
+                 printGauge(entry.getValue());
+             }
+             output.println();
+         }
+ 
+         if (!counters.isEmpty()) {
+             printWithBanner("-- Counters", '-');
+             for (Map.Entry<String, Counter> entry : counters.entrySet()) {
+                 output.println(entry.getKey());
+                 printCounter(entry);
+             }
+             output.println();
+         }
+ 
+         if (!histograms.isEmpty()) {
+             printWithBanner("-- Histograms", '-');
+             for (Map.Entry<String, Histogram> entry : histograms.entrySet()) {
+                 output.println(entry.getKey());
+                 printHistogram(entry.getValue());
+             }
+             output.println();
+         }
+ 
+         if (!meters.isEmpty()) {
+             printWithBanner("-- Meters", '-');
+             for (Map.Entry<String, Meter> entry : meters.entrySet()) {
+                 output.println(entry.getKey());
+                 printMeter(entry.getValue());
+             }
+             output.println();
+         }
+ 
+         if (!timers.isEmpty()) {
+             printWithBanner("-- Timers", '-');
+             for (Map.Entry<String, Timer> entry : timers.entrySet()) {
+                 output.println(entry.getKey());
+                 printTimer(entry.getValue());
+             }
+             output.println();
+         }
+ 
+         output.println();
+         output.flush();
+     }
+ 
+     private void printMeter(Meter meter) {
+         printIfEnabled(MetricAttribute.COUNT, String.format(locale, "             count = %d", meter.getCount()));
+         printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, "         mean rate = %2.2f events/%s", convertRate(meter.getMeanRate()), getRateUnit()));
+         printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, "     1-minute rate = %2.2f events/%s", convertRate(meter.getOneMinuteRate()), getRateUnit()));
+         printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, "     5-minute rate = %2.2f events/%s", convertRate(meter.getFiveMinuteRate()), getRateUnit()));
+         printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, "    15-minute rate = %2.2f events/%s", convertRate(meter.getFifteenMinuteRate()), getRateUnit()));
+     }
+ 
+     private void printCounter(Map.Entry<String, Counter> entry) {
+         output.printf(locale, "             count = %d%n", entry.getValue().getCount());
+     }
+ 
+     private void printGauge(Gauge<?> gauge) {
+         output.printf(locale, "             value = %s%n", gauge.getValue());
+     }
+ 
+     private void printHistogram(Histogram histogram) {
+         printIfEnabled(MetricAttribute.COUNT, String.format(locale, "             count = %d", histogram.getCount()));
+         Snapshot snapshot = histogram.getSnapshot();
+         printIfEnabled(MetricAttribute.MIN, String.format(locale, "               min = %d", snapshot.getMin()));
+         printIfEnabled(MetricAttribute.MAX, String.format(locale, "               max = %d", snapshot.getMax()));
+         printIfEnabled(MetricAttribute.MEAN, String.format(locale, "              mean = %2.2f", snapshot.getMean()));
+         printIfEnabled(MetricAttribute.STDDEV, String.format(locale, "            stddev = %2.2f", snapshot.getStdDev()));
+         printIfEnabled(MetricAttribute.P50, String.format(locale, "            median = %2.2f", snapshot.getMedian()));
+         printIfEnabled(MetricAttribute.P75, String.format(locale, "              75%% <= %2.2f", snapshot.get75thPercentile()));
+         printIfEnabled(MetricAttribute.P95, String.format(locale, "              95%% <= %2.2f", snapshot.get95thPercentile()));
+         printIfEnabled(MetricAttribute.P98, String.format(locale, "              98%% <= %2.2f", snapshot.get98thPercentile()));
+         printIfEnabled(MetricAttribute.P99, String.format(locale, "              99%% <= %2.2f", snapshot.get99thPercentile()));
+         printIfEnabled(MetricAttribute.P999, String.format(locale, "            99.9%% <= %2.2f", snapshot.get999thPercentile()));
+     }
+ 
+     private void printTimer(Timer timer) {
+         final Snapshot snapshot = timer.getSnapshot();
+         printIfEnabled(MetricAttribute.COUNT, String.format(locale, "             count = %d", timer.getCount()));
+         printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, "         mean rate = %2.2f calls/%s", convertRate(timer.getMeanRate()), getRateUnit()));
+         printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, "     1-minute rate = %2.2f calls/%s", convertRate(timer.getOneMinuteRate()), getRateUnit()));
+         printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, "     5-minute rate = %2.2f calls/%s", convertRate(timer.getFiveMinuteRate()), getRateUnit()));
+         printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, "    15-minute rate = %2.2f calls/%s", convertRate(timer.getFifteenMinuteRate()), getRateUnit()));
+ 
+         printIfEnabled(MetricAttribute.MIN, String.format(locale, "               min = %2.2f %s", convertDuration(snapshot.getMin()), getDurationUnit()));
+         printIfEnabled(MetricAttribute.MAX, String.format(locale, "               max = %2.2f %s", convertDuration(snapshot.getMax()), getDurationUnit()));
+         printIfEnabled(MetricAttribute.MEAN, String.format(locale, "              mean = %2.2f %s", convertDuration(snapshot.getMean()), getDurationUnit()));
+         printIfEnabled(MetricAttribute.STDDEV, String.format(locale, "            stddev = %2.2f %s", convertDuration(snapshot.getStdDev()), getDurationUnit()));
+         printIfEnabled(MetricAttribute.P50, String.format(locale, "            median = %2.2f %s", convertDuration(snapshot.getMedian()), getDurationUnit()));
+         printIfEnabled(MetricAttribute.P75, String.format(locale, "              75%% <= %2.2f %s", convertDuration(snapshot.get75thPercentile()), getDurationUnit()));
+         printIfEnabled(MetricAttribute.P95, String.format(locale, "              95%% <= %2.2f %s", convertDuration(snapshot.get95thPercentile()), getDurationUnit()));
+         printIfEnabled(MetricAttribute.P98, String.format(locale, "              98%% <= %2.2f %s", convertDuration(snapshot.get98thPercentile()), getDurationUnit()));
+         printIfEnabled(MetricAttribute.P99, String.format(locale, "              99%% <= %2.2f %s", convertDuration(snapshot.get99thPercentile()), getDurationUnit()));
+         printIfEnabled(MetricAttribute.P999, String.format(locale, "            99.9%% <= %2.2f %s", convertDuration(snapshot.get999thPercentile()), getDurationUnit()));
+     }
+ 
+     private void printWithBanner(String s, char c) {
+         output.print(s);
+         output.print(' ');
+         for (int i = 0; i < (CONSOLE_WIDTH - s.length() - 1); i++) {
+             output.print(c);
+         }
+         output.println();
+     }
+ 
+     /**
+      * Print only if the attribute is enabled
+      *
+      * @param type   Metric attribute
+      * @param status Status to be logged
+      */
+     private void printIfEnabled(MetricAttribute type, String status) {
+         if (getDisabledMetricAttributes().contains(type)) {
+             return;
+         }
+ 
+         output.println(status);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-5.html new file mode 100644 index 0000000000..0576a0ec12 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-5.html @@ -0,0 +1,160 @@ + + + + + + + + Coverage Report > Counter + + + + + + +
+ + +

Coverage Summary for Class: Counter (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
Counter + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (7/7) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.atomic.LongAdder;
+ 
+ /**
+  * An incrementing and decrementing counter metric.
+  */
+ public class Counter implements Metric, Counting {
+     private final LongAdder count;
+ 
+     public Counter() {
+         this.count = new LongAdder();
+     }
+ 
+     /**
+      * Increment the counter by one.
+      */
+     public void inc() {
+         inc(1);
+     }
+ 
+     /**
+      * Increment the counter by {@code n}.
+      *
+      * @param n the amount by which the counter will be increased
+      */
+     public void inc(long n) {
+         count.add(n);
+     }
+ 
+     /**
+      * Decrement the counter by one.
+      */
+     public void dec() {
+         dec(1);
+     }
+ 
+     /**
+      * Decrement the counter by {@code n}.
+      *
+      * @param n the amount by which the counter will be decreased
+      */
+     public void dec(long n) {
+         count.add(-n);
+     }
+ 
+     /**
+      * Returns the counter's current value.
+      *
+      * @return the counter's current value
+      */
+     @Override
+     public long getCount() {
+         return count.sum();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-6.html new file mode 100644 index 0000000000..9dac4e0c7f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-6.html @@ -0,0 +1,477 @@ + + + + + + + + Coverage Report > CsvReporter + + + + + + +
+ + +

Coverage Summary for Class: CsvReporter (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
CsvReporter + + 91.7% + + + (11/12) + + + + 96.4% + + + (81/84) + +
CsvReporter$1
CsvReporter$Builder + + 83.3% + + + (10/12) + + + + 87.1% + + + (27/31) + +
Total + + 87.5% + + + (21/24) + + + + 93.9% + + + (108/115) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import java.io.File;
+ import java.io.FileOutputStream;
+ import java.io.IOException;
+ import java.io.OutputStreamWriter;
+ import java.io.PrintWriter;
+ import java.util.Locale;
+ import java.util.Map;
+ import java.util.SortedMap;
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.TimeUnit;
+ 
+ import static java.nio.charset.StandardCharsets.UTF_8;
+ 
+ /**
+  * A reporter which creates a comma-separated values file of the measurements for each metric.
+  */
+ public class CsvReporter extends ScheduledReporter {
+     private static final String DEFAULT_SEPARATOR = ",";
+ 
+     /**
+      * Returns a new {@link Builder} for {@link CsvReporter}.
+      *
+      * @param registry the registry to report
+      * @return a {@link Builder} instance for a {@link CsvReporter}
+      */
+     public static Builder forRegistry(MetricRegistry registry) {
+         return new Builder(registry);
+     }
+ 
+     /**
+      * A builder for {@link CsvReporter} instances. Defaults to using the default locale, converting
+      * rates to events/second, converting durations to milliseconds, and not filtering metrics.
+      */
+     public static class Builder {
+         private final MetricRegistry registry;
+         private Locale locale;
+         private String separator;
+         private TimeUnit rateUnit;
+         private TimeUnit durationUnit;
+         private Clock clock;
+         private MetricFilter filter;
+         private ScheduledExecutorService executor;
+         private boolean shutdownExecutorOnStop;
+         private CsvFileProvider csvFileProvider;
+ 
+         private Builder(MetricRegistry registry) {
+             this.registry = registry;
+             this.locale = Locale.getDefault();
+             this.separator = DEFAULT_SEPARATOR;
+             this.rateUnit = TimeUnit.SECONDS;
+             this.durationUnit = TimeUnit.MILLISECONDS;
+             this.clock = Clock.defaultClock();
+             this.filter = MetricFilter.ALL;
+             this.executor = null;
+             this.shutdownExecutorOnStop = true;
+             this.csvFileProvider = new FixedNameCsvFileProvider();
+         }
+ 
+         /**
+          * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
+          * Default value is true.
+          * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
+          *
+          * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
+          * @return {@code this}
+          */
+         public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
+             this.shutdownExecutorOnStop = shutdownExecutorOnStop;
+             return this;
+         }
+ 
+         /**
+          * Specifies the executor to use while scheduling reporting of metrics.
+          * Default value is null.
+          * Null value leads to executor will be auto created on start.
+          *
+          * @param executor the executor to use while scheduling reporting of metrics.
+          * @return {@code this}
+          */
+         public Builder scheduleOn(ScheduledExecutorService executor) {
+             this.executor = executor;
+             return this;
+         }
+ 
+         /**
+          * Format numbers for the given {@link Locale}.
+          *
+          * @param locale a {@link Locale}
+          * @return {@code this}
+          */
+         public Builder formatFor(Locale locale) {
+             this.locale = locale;
+             return this;
+         }
+ 
+         /**
+          * Convert rates to the given time unit.
+          *
+          * @param rateUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertRatesTo(TimeUnit rateUnit) {
+             this.rateUnit = rateUnit;
+             return this;
+         }
+ 
+         /**
+          * Convert durations to the given time unit.
+          *
+          * @param durationUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertDurationsTo(TimeUnit durationUnit) {
+             this.durationUnit = durationUnit;
+             return this;
+         }
+ 
+         /**
+          * Use the given string to use as the separator for values.
+          *
+          * @param separator the string to use for the separator.
+          * @return {@code this}
+          */
+         public Builder withSeparator(String separator) {
+             this.separator = separator;
+             return this;
+         }
+ 
+         /**
+          * Use the given {@link Clock} instance for the time.
+          *
+          * @param clock a {@link Clock} instance
+          * @return {@code this}
+          */
+         public Builder withClock(Clock clock) {
+             this.clock = clock;
+             return this;
+         }
+ 
+         /**
+          * Only report metrics which match the given filter.
+          *
+          * @param filter a {@link MetricFilter}
+          * @return {@code this}
+          */
+         public Builder filter(MetricFilter filter) {
+             this.filter = filter;
+             return this;
+         }
+ 
+         public Builder withCsvFileProvider(CsvFileProvider csvFileProvider) {
+             this.csvFileProvider = csvFileProvider;
+             return this;
+         }
+ 
+         /**
+          * Builds a {@link CsvReporter} with the given properties, writing {@code .csv} files to the
+          * given directory.
+          *
+          * @param directory the directory in which the {@code .csv} files will be created
+          * @return a {@link CsvReporter}
+          */
+         public CsvReporter build(File directory) {
+             return new CsvReporter(registry,
+                     directory,
+                     locale,
+                     separator,
+                     rateUnit,
+                     durationUnit,
+                     clock,
+                     filter,
+                     executor,
+                     shutdownExecutorOnStop,
+                     csvFileProvider);
+         }
+     }
+ 
+     private static final Logger LOGGER = LoggerFactory.getLogger(CsvReporter.class);
+ 
+     private final File directory;
+     private final Locale locale;
+     private final String separator;
+     private final Clock clock;
+     private final CsvFileProvider csvFileProvider;
+ 
+     private final String histogramFormat;
+     private final String meterFormat;
+     private final String timerFormat;
+ 
+     private final String timerHeader;
+     private final String meterHeader;
+     private final String histogramHeader;
+ 
+     private CsvReporter(MetricRegistry registry,
+                         File directory,
+                         Locale locale,
+                         String separator,
+                         TimeUnit rateUnit,
+                         TimeUnit durationUnit,
+                         Clock clock,
+                         MetricFilter filter,
+                         ScheduledExecutorService executor,
+                         boolean shutdownExecutorOnStop,
+                         CsvFileProvider csvFileProvider) {
+         super(registry, "csv-reporter", filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop);
+         this.directory = directory;
+         this.locale = locale;
+         this.separator = separator;
+         this.clock = clock;
+         this.csvFileProvider = csvFileProvider;
+ 
+         this.histogramFormat = String.join(separator, "%d", "%d", "%f", "%d", "%f", "%f", "%f", "%f", "%f", "%f", "%f");
+         this.meterFormat = String.join(separator, "%d", "%f", "%f", "%f", "%f", "events/%s");
+         this.timerFormat = String.join(separator, "%d", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "calls/%s", "%s");
+ 
+         this.timerHeader = String.join(separator, "count", "max", "mean", "min", "stddev", "p50", "p75", "p95", "p98", "p99", "p999", "mean_rate", "m1_rate", "m5_rate", "m15_rate", "rate_unit", "duration_unit");
+         this.meterHeader = String.join(separator, "count", "mean_rate", "m1_rate", "m5_rate", "m15_rate", "rate_unit");
+         this.histogramHeader = String.join(separator, "count", "max", "mean", "min", "stddev", "p50", "p75", "p95", "p98", "p99", "p999");
+     }
+ 
+     @Override
+     @SuppressWarnings("rawtypes")
+     public void report(SortedMap<String, Gauge> gauges,
+                        SortedMap<String, Counter> counters,
+                        SortedMap<String, Histogram> histograms,
+                        SortedMap<String, Meter> meters,
+                        SortedMap<String, Timer> timers) {
+         final long timestamp = TimeUnit.MILLISECONDS.toSeconds(clock.getTime());
+ 
+         for (Map.Entry<String, Gauge> entry : gauges.entrySet()) {
+             reportGauge(timestamp, entry.getKey(), entry.getValue());
+         }
+ 
+         for (Map.Entry<String, Counter> entry : counters.entrySet()) {
+             reportCounter(timestamp, entry.getKey(), entry.getValue());
+         }
+ 
+         for (Map.Entry<String, Histogram> entry : histograms.entrySet()) {
+             reportHistogram(timestamp, entry.getKey(), entry.getValue());
+         }
+ 
+         for (Map.Entry<String, Meter> entry : meters.entrySet()) {
+             reportMeter(timestamp, entry.getKey(), entry.getValue());
+         }
+ 
+         for (Map.Entry<String, Timer> entry : timers.entrySet()) {
+             reportTimer(timestamp, entry.getKey(), entry.getValue());
+         }
+     }
+ 
+     private void reportTimer(long timestamp, String name, Timer timer) {
+         final Snapshot snapshot = timer.getSnapshot();
+ 
+         report(timestamp,
+                 name,
+                 timerHeader,
+                 timerFormat,
+                 timer.getCount(),
+                 convertDuration(snapshot.getMax()),
+                 convertDuration(snapshot.getMean()),
+                 convertDuration(snapshot.getMin()),
+                 convertDuration(snapshot.getStdDev()),
+                 convertDuration(snapshot.getMedian()),
+                 convertDuration(snapshot.get75thPercentile()),
+                 convertDuration(snapshot.get95thPercentile()),
+                 convertDuration(snapshot.get98thPercentile()),
+                 convertDuration(snapshot.get99thPercentile()),
+                 convertDuration(snapshot.get999thPercentile()),
+                 convertRate(timer.getMeanRate()),
+                 convertRate(timer.getOneMinuteRate()),
+                 convertRate(timer.getFiveMinuteRate()),
+                 convertRate(timer.getFifteenMinuteRate()),
+                 getRateUnit(),
+                 getDurationUnit());
+     }
+ 
+     private void reportMeter(long timestamp, String name, Meter meter) {
+         report(timestamp,
+                 name,
+                 meterHeader,
+                 meterFormat,
+                 meter.getCount(),
+                 convertRate(meter.getMeanRate()),
+                 convertRate(meter.getOneMinuteRate()),
+                 convertRate(meter.getFiveMinuteRate()),
+                 convertRate(meter.getFifteenMinuteRate()),
+                 getRateUnit());
+     }
+ 
+     private void reportHistogram(long timestamp, String name, Histogram histogram) {
+         final Snapshot snapshot = histogram.getSnapshot();
+ 
+         report(timestamp,
+                 name,
+                 histogramHeader,
+                 histogramFormat,
+                 histogram.getCount(),
+                 snapshot.getMax(),
+                 snapshot.getMean(),
+                 snapshot.getMin(),
+                 snapshot.getStdDev(),
+                 snapshot.getMedian(),
+                 snapshot.get75thPercentile(),
+                 snapshot.get95thPercentile(),
+                 snapshot.get98thPercentile(),
+                 snapshot.get99thPercentile(),
+                 snapshot.get999thPercentile());
+     }
+ 
+     private void reportCounter(long timestamp, String name, Counter counter) {
+         report(timestamp, name, "count", "%d", counter.getCount());
+     }
+ 
+     private void reportGauge(long timestamp, String name, Gauge<?> gauge) {
+         report(timestamp, name, "value", "%s", gauge.getValue());
+     }
+ 
+     private void report(long timestamp, String name, String header, String line, Object... values) {
+         try {
+             final File file = csvFileProvider.getFile(directory, name);
+             final boolean fileAlreadyExists = file.exists();
+             if (fileAlreadyExists || file.createNewFile()) {
+                 try (PrintWriter out = new PrintWriter(new OutputStreamWriter(
+                         new FileOutputStream(file, true), UTF_8))) {
+                     if (!fileAlreadyExists) {
+                         out.println("t" + separator + header);
+                     }
+                     out.printf(locale, String.format(locale, "%d" + separator + "%s%n", timestamp, line), values);
+                 }
+             }
+         } catch (IOException e) {
+             LOGGER.warn("Error writing to {}", name, e);
+         }
+     }
+ 
+     protected String sanitize(String name) {
+         return name;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-7.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-7.html new file mode 100644 index 0000000000..a09c4b63a7 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-7.html @@ -0,0 +1,147 @@ + + + + + + + + Coverage Report > DefaultSettableGauge + + + + + + +
+ + +

Coverage Summary for Class: DefaultSettableGauge (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
DefaultSettableGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 100% + + + (5/5) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
+  */
+ public class DefaultSettableGauge<T> implements SettableGauge<T> {
+     private volatile T value;
+ 
+     /**
+      * Create an instance with no default value.
+      */
+     public DefaultSettableGauge() {
+         this(null);
+     }
+ 
+     /**
+      * Create an instance with a default value.
+      *
+      * @param defaultValue default value
+      */
+     public DefaultSettableGauge(T defaultValue) {
+         this.value = defaultValue;
+     }
+ 
+     /**
+      * Set the metric to a new value.
+      */
+     @Override
+     public void setValue(T value) {
+         this.value = value;
+     }
+ 
+     /**
+      * Returns the current value.
+      *
+      * @return the current value
+      */
+     @Override
+     public T getValue() {
+         return value;
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-8.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-8.html new file mode 100644 index 0000000000..a25b048758 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-8.html @@ -0,0 +1,137 @@ + + + + + + + + Coverage Report > DerivativeGauge + + + + + + +
+ + +

Coverage Summary for Class: DerivativeGauge (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
DerivativeGauge + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (3/3) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ /**
+  * A gauge whose value is derived from the value of another gauge.
+  *
+  * @param <F> the base gauge's value type
+  * @param <T> the derivative type
+  */
+ public abstract class DerivativeGauge<F, T> implements Gauge<T> {
+     private final Gauge<F> base;
+ 
+     /**
+      * Creates a new derivative with the given base gauge.
+      *
+      * @param base the gauge from which to derive this gauge's value
+      */
+     protected DerivativeGauge(Gauge<F> base) {
+         this.base = base;
+     }
+ 
+     @Override
+     public T getValue() {
+         return transform(base.getValue());
+     }
+ 
+     /**
+      * Transforms the value of the base gauge to the value of this gauge.
+      *
+      * @param value the value of the base gauge
+      * @return this gauge's value
+      */
+     protected abstract T transform(F value);
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-9.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-9.html new file mode 100644 index 0000000000..17177d741b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-9.html @@ -0,0 +1,212 @@ + + + + + + + + Coverage Report > EWMA + + + + + + +
+ + +

Coverage Summary for Class: EWMA (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
EWMA + + 100% + + + (1/1) + + + + 100% + + + (8/8) + + + + 100% + + + (22/22) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.LongAdder;
+ 
+ import static java.lang.Math.exp;
+ 
+ /**
+  * An exponentially-weighted moving average.
+  *
+  * @see <a href="http://www.teamquest.com/pdfs/whitepaper/ldavg1.pdf">UNIX Load Average Part 1: How
+  * It Works</a>
+  * @see <a href="http://www.teamquest.com/pdfs/whitepaper/ldavg2.pdf">UNIX Load Average Part 2: Not
+  * Your Average Average</a>
+  * @see <a href="http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average">EMA</a>
+  */
+ public class EWMA {
+     private static final int INTERVAL = 5;
+     private static final double SECONDS_PER_MINUTE = 60.0;
+     private static final int ONE_MINUTE = 1;
+     private static final int FIVE_MINUTES = 5;
+     private static final int FIFTEEN_MINUTES = 15;
+     private static final double M1_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / ONE_MINUTE);
+     private static final double M5_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIVE_MINUTES);
+     private static final double M15_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIFTEEN_MINUTES);
+ 
+     private volatile boolean initialized = false;
+     private volatile double rate = 0.0;
+ 
+     private final LongAdder uncounted = new LongAdder();
+     private final double alpha, interval;
+ 
+     /**
+      * Creates a new EWMA which is equivalent to the UNIX one minute load average and which expects
+      * to be ticked every 5 seconds.
+      *
+      * @return a one-minute EWMA
+      */
+     public static EWMA oneMinuteEWMA() {
+         return new EWMA(M1_ALPHA, INTERVAL, TimeUnit.SECONDS);
+     }
+ 
+     /**
+      * Creates a new EWMA which is equivalent to the UNIX five minute load average and which expects
+      * to be ticked every 5 seconds.
+      *
+      * @return a five-minute EWMA
+      */
+     public static EWMA fiveMinuteEWMA() {
+         return new EWMA(M5_ALPHA, INTERVAL, TimeUnit.SECONDS);
+     }
+ 
+     /**
+      * Creates a new EWMA which is equivalent to the UNIX fifteen minute load average and which
+      * expects to be ticked every 5 seconds.
+      *
+      * @return a fifteen-minute EWMA
+      */
+     public static EWMA fifteenMinuteEWMA() {
+         return new EWMA(M15_ALPHA, INTERVAL, TimeUnit.SECONDS);
+     }
+ 
+     /**
+      * Create a new EWMA with a specific smoothing constant.
+      *
+      * @param alpha        the smoothing constant
+      * @param interval     the expected tick interval
+      * @param intervalUnit the time unit of the tick interval
+      */
+     public EWMA(double alpha, long interval, TimeUnit intervalUnit) {
+         this.interval = intervalUnit.toNanos(interval);
+         this.alpha = alpha;
+     }
+ 
+     /**
+      * Update the moving average with a new value.
+      *
+      * @param n the new value
+      */
+     public void update(long n) {
+         uncounted.add(n);
+     }
+ 
+     /**
+      * Mark the passage of time and decay the current rate accordingly.
+      */
+     public void tick() {
+         final long count = uncounted.sumThenReset();
+         final double instantRate = count / interval;
+         if (initialized) {
+             final double oldRate = this.rate;
+             rate = oldRate + (alpha * (instantRate - oldRate));
+         } else {
+             rate = instantRate;
+             initialized = true;
+         }
+     }
+ 
+     /**
+      * Returns the rate in the given units of time.
+      *
+      * @param rateUnit the unit of time
+      * @return the rate
+      */
+     public double getRate(TimeUnit rateUnit) {
+         return rate * (double) rateUnit.toNanos(1);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-a.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-a.html new file mode 100644 index 0000000000..8d5f0c37d1 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-a.html @@ -0,0 +1,181 @@ + + + + + + + + Coverage Report > ExponentialMovingAverages + + + + + + +
+ + +

Coverage Summary for Class: ExponentialMovingAverages (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ExponentialMovingAverages + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96% + + + (24/25) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicLong;
+ 
+ /**
+  * A triple (one, five and fifteen minutes) of exponentially-weighted moving average rates as needed by {@link Meter}.
+  * <p>
+  * The rates have the same exponential decay factor as the fifteen-minute load average in the
+  * {@code top} Unix command.
+  */
+ public class ExponentialMovingAverages implements MovingAverages {
+ 
+     private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(5);
+ 
+     private final EWMA m1Rate = EWMA.oneMinuteEWMA();
+     private final EWMA m5Rate = EWMA.fiveMinuteEWMA();
+     private final EWMA m15Rate = EWMA.fifteenMinuteEWMA();
+ 
+     private final AtomicLong lastTick;
+     private final Clock clock;
+ 
+     /**
+      * Creates a new {@link ExponentialMovingAverages}.
+      */
+     public ExponentialMovingAverages() {
+         this(Clock.defaultClock());
+     }
+ 
+     /**
+      * Creates a new {@link ExponentialMovingAverages}.
+      */
+     public ExponentialMovingAverages(Clock clock) {
+         this.clock = clock;
+         this.lastTick = new AtomicLong(this.clock.getTick());
+     }
+ 
+     @Override
+     public void update(long n) {
+         m1Rate.update(n);
+         m5Rate.update(n);
+         m15Rate.update(n);
+     }
+ 
+     @Override
+     public void tickIfNecessary() {
+         final long oldTick = lastTick.get();
+         final long newTick = clock.getTick();
+         final long age = newTick - oldTick;
+         if (age > TICK_INTERVAL) {
+             final long newIntervalStartTick = newTick - age % TICK_INTERVAL;
+             if (lastTick.compareAndSet(oldTick, newIntervalStartTick)) {
+                 final long requiredTicks = age / TICK_INTERVAL;
+                 for (long i = 0; i < requiredTicks; i++) {
+                     m1Rate.tick();
+                     m5Rate.tick();
+                     m15Rate.tick();
+                 }
+             }
+         }
+     }
+ 
+     @Override
+     public double getM1Rate() {
+         return m1Rate.getRate(TimeUnit.SECONDS);
+     }
+ 
+     @Override
+     public double getM5Rate() {
+         return m5Rate.getRate(TimeUnit.SECONDS);
+     }
+ 
+     @Override
+     public double getM15Rate() {
+         return m15Rate.getRate(TimeUnit.SECONDS);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-b.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-b.html new file mode 100644 index 0000000000..35c05aff51 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-b.html @@ -0,0 +1,311 @@ + + + + + + + + Coverage Report > ExponentiallyDecayingReservoir + + + + + + +
+ + +

Coverage Summary for Class: ExponentiallyDecayingReservoir (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ExponentiallyDecayingReservoir + + 100% + + + (1/1) + + + + 100% + + + (16/16) + + + + 96.7% + + + (59/61) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.ArrayList;
+ import java.util.concurrent.ConcurrentSkipListMap;
+ import java.util.concurrent.ThreadLocalRandom;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicLong;
+ import java.util.concurrent.locks.ReentrantReadWriteLock;
+ 
+ import static java.lang.Math.exp;
+ import static java.lang.Math.min;
+ 
+ import com.codahale.metrics.WeightedSnapshot.WeightedSample;
+ 
+ /**
+  * An exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al's
+  * forward-decaying priority reservoir sampling method to produce a statistically representative
+  * sampling reservoir, exponentially biased towards newer entries.
+  *
+  * @see <a href="http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf">
+  * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE '09:
+  * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)</a>
+  */
+ public class ExponentiallyDecayingReservoir implements Reservoir {
+     private static final int DEFAULT_SIZE = 1028;
+     private static final double DEFAULT_ALPHA = 0.015;
+     private static final long RESCALE_THRESHOLD = TimeUnit.HOURS.toNanos(1);
+ 
+     private final ConcurrentSkipListMap<Double, WeightedSample> values;
+     private final ReentrantReadWriteLock lock;
+     private final double alpha;
+     private final int size;
+     private final AtomicLong count;
+     private volatile long startTime;
+     private final AtomicLong lastScaleTick;
+     private final Clock clock;
+ 
+     /**
+      * Creates a new {@link ExponentiallyDecayingReservoir} of 1028 elements, which offers a 99.9%
+      * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
+      * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
+      */
+     public ExponentiallyDecayingReservoir() {
+         this(DEFAULT_SIZE, DEFAULT_ALPHA);
+     }
+ 
+     /**
+      * Creates a new {@link ExponentiallyDecayingReservoir}.
+      *
+      * @param size  the number of samples to keep in the sampling reservoir
+      * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
+      *              will be towards newer values
+      */
+     public ExponentiallyDecayingReservoir(int size, double alpha) {
+         this(size, alpha, Clock.defaultClock());
+     }
+ 
+     /**
+      * Creates a new {@link ExponentiallyDecayingReservoir}.
+      *
+      * @param size  the number of samples to keep in the sampling reservoir
+      * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
+      *              will be towards newer values
+      * @param clock the clock used to timestamp samples and track rescaling
+      */
+     public ExponentiallyDecayingReservoir(int size, double alpha, Clock clock) {
+         this.values = new ConcurrentSkipListMap<>();
+         this.lock = new ReentrantReadWriteLock();
+         this.alpha = alpha;
+         this.size = size;
+         this.clock = clock;
+         this.count = new AtomicLong(0);
+         this.startTime = currentTimeInSeconds();
+         this.lastScaleTick = new AtomicLong(clock.getTick());
+     }
+ 
+     @Override
+     public int size() {
+         return (int) min(size, count.get());
+     }
+ 
+     @Override
+     public void update(long value) {
+         update(value, currentTimeInSeconds());
+     }
+ 
+     /**
+      * Adds an old value with a fixed timestamp to the reservoir.
+      *
+      * @param value     the value to be added
+      * @param timestamp the epoch timestamp of {@code value} in seconds
+      */
+     public void update(long value, long timestamp) {
+         rescaleIfNeeded();
+         lockForRegularUsage();
+         try {
+             final double itemWeight = weight(timestamp - startTime);
+             final WeightedSample sample = new WeightedSample(value, itemWeight);
+             final double priority = itemWeight / ThreadLocalRandom.current().nextDouble();
+ 
+             final long newCount = count.incrementAndGet();
+             if (newCount <= size || values.isEmpty()) {
+                 values.put(priority, sample);
+             } else {
+                 Double first = values.firstKey();
+                 if (first < priority && values.putIfAbsent(priority, sample) == null) {
+                     // ensure we always remove an item
+                     while (values.remove(first) == null) {
+                         first = values.firstKey();
+                     }
+                 }
+             }
+         } finally {
+             unlockForRegularUsage();
+         }
+     }
+ 
+     private void rescaleIfNeeded() {
+         final long now = clock.getTick();
+         final long lastScaleTickSnapshot = lastScaleTick.get();
+         if (now - lastScaleTickSnapshot >= RESCALE_THRESHOLD) {
+             rescale(now, lastScaleTickSnapshot);
+         }
+     }
+ 
+     @Override
+     public Snapshot getSnapshot() {
+         rescaleIfNeeded();
+         lockForRegularUsage();
+         try {
+             return new WeightedSnapshot(values.values());
+         } finally {
+             unlockForRegularUsage();
+         }
+     }
+ 
+     private long currentTimeInSeconds() {
+         return TimeUnit.MILLISECONDS.toSeconds(clock.getTime());
+     }
+ 
+     private double weight(long t) {
+         return exp(alpha * t);
+     }
+ 
+     /* "A common feature of the above techniques—indeed, the key technique that
+      * allows us to track the decayed weights efficiently—is that they maintain
+      * counts and other quantities based on g(ti ? L), and only scale by g(t ? L)
+      * at query time. But while g(ti ?L)/g(t?L) is guaranteed to lie between zero
+      * and one, the intermediate values of g(ti ? L) could become very large. For
+      * polynomial functions, these values should not grow too large, and should be
+      * effectively represented in practice by floating point values without loss of
+      * precision. For exponential functions, these values could grow quite large as
+      * new values of (ti ? L) become large, and potentially exceed the capacity of
+      * common floating point types. However, since the values stored by the
+      * algorithms are linear combinations of g values (scaled sums), they can be
+      * rescaled relative to a new landmark. That is, by the analysis of exponential
+      * decay in Section III-A, the choice of L does not affect the final result. We
+      * can therefore multiply each value based on L by a factor of exp(??(L? ? L)),
+      * and obtain the correct value as if we had instead computed relative to a new
+      * landmark L? (and then use this new L? at query time). This can be done with
+      * a linear pass over whatever data structure is being used."
+      */
+     private void rescale(long now, long lastTick) {
+         lockForRescale();
+         try {
+             if (lastScaleTick.compareAndSet(lastTick, now)) {
+                 final long oldStartTime = startTime;
+                 this.startTime = currentTimeInSeconds();
+                 final double scalingFactor = exp(-alpha * (startTime - oldStartTime));
+                 if (Double.compare(scalingFactor, 0) == 0) {
+                     values.clear();
+                 } else {
+                     final ArrayList<Double> keys = new ArrayList<>(values.keySet());
+                     for (Double key : keys) {
+                         final WeightedSample sample = values.remove(key);
+                         final WeightedSample newSample = new WeightedSample(sample.value, sample.weight * scalingFactor);
+                         if (Double.compare(newSample.weight, 0) == 0) {
+                             continue;
+                         }
+                         values.put(key * scalingFactor, newSample);
+                     }
+                 }
+ 
+                 // make sure the counter is in sync with the number of stored samples.
+                 count.set(values.size());
+             }
+         } finally {
+             unlockForRescale();
+         }
+     }
+ 
+     private void unlockForRescale() {
+         lock.writeLock().unlock();
+     }
+ 
+     private void lockForRescale() {
+         lock.writeLock().lock();
+     }
+ 
+     private void lockForRegularUsage() {
+         lock.readLock().lock();
+     }
+ 
+     private void unlockForRegularUsage() {
+         lock.readLock().unlock();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-c.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-c.html new file mode 100644 index 0000000000..d6ae20e393 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-c.html @@ -0,0 +1,125 @@ + + + + + + + + Coverage Report > FixedNameCsvFileProvider + + + + + + +
+ + +

Coverage Summary for Class: FixedNameCsvFileProvider (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
FixedNameCsvFileProvider + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (3/3) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.io.File;
+ 
+ /**
+  * This implementation of the {@link CsvFileProvider} will always return the same name
+  * for the same metric. This means the CSV file will grow indefinitely.
+  */
+ public class FixedNameCsvFileProvider implements CsvFileProvider {
+ 
+     @Override
+     public File getFile(File directory, String metricName) {
+         return new File(directory, sanitize(metricName) + ".csv");
+     }
+ 
+     protected String sanitize(String metricName) {
+         //Forward slash character is definitely illegal in both Windows and Linux
+         //https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
+         return metricName.replaceFirst("^/", "").replaceAll("/", ".");
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-d.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-d.html new file mode 100644 index 0000000000..88789bd52b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-d.html @@ -0,0 +1,162 @@ + + + + + + + + Coverage Report > Histogram + + + + + + +
+ + +

Coverage Summary for Class: Histogram (com.codahale.metrics)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
Histogram + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (8/8) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.concurrent.atomic.LongAdder;
+ 
+ /**
+  * A metric which calculates the distribution of a value.
+  *
+  * @see <a href="http://www.johndcook.com/standard_deviation.html">Accurately computing running
+  * variance</a>
+  */
+ public class Histogram implements Metric, Sampling, Counting {
+     private final Reservoir reservoir;
+     private final LongAdder count;
+ 
+     /**
+      * Creates a new {@link Histogram} with the given reservoir.
+      *
+      * @param reservoir the reservoir to create a histogram from
+      */
+     public Histogram(Reservoir reservoir) {
+         this.reservoir = reservoir;
+         this.count = new LongAdder();
+     }
+ 
+     /**
+      * Adds a recorded value.
+      *
+      * @param value the length of the value
+      */
+     public void update(int value) {
+         update((long) value);
+     }
+ 
+     /**
+      * Adds a recorded value.
+      *
+      * @param value the length of the value
+      */
+     public void update(long value) {
+         count.increment();
+         reservoir.update(value);
+     }
+ 
+     /**
+      * Returns the number of values recorded.
+      *
+      * @return the number of values recorded
+      */
+     @Override
+     public long getCount() {
+         return count.sum();
+     }
+ 
+     @Override
+     public Snapshot getSnapshot() {
+         return reservoir.getSnapshot();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-e.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-e.html new file mode 100644 index 0000000000..f393ea6bce --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-e.html @@ -0,0 +1,390 @@ + + + + + + + + Coverage Report > InstrumentedExecutorService + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedExecutorService (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedExecutorService + + 38.9% + + + (7/18) + + + + 62.7% + + + (42/67) + +
InstrumentedExecutorService$InstrumentedCallable + + 100% + + + (2/2) + + + + 90.9% + + + (10/11) + +
InstrumentedExecutorService$InstrumentedRunnable + + 100% + + + (2/2) + + + + 100% + + + (11/11) + +
Total + + 50% + + + (11/22) + + + + 70.8% + + + (63/89) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.ArrayList;
+ import java.util.Collection;
+ import java.util.List;
+ import java.util.concurrent.BlockingQueue;
+ import java.util.concurrent.Callable;
+ import java.util.concurrent.ExecutionException;
+ import java.util.concurrent.ExecutorService;
+ import java.util.concurrent.ForkJoinPool;
+ import java.util.concurrent.Future;
+ import java.util.concurrent.ThreadPoolExecutor;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.TimeoutException;
+ import java.util.concurrent.atomic.AtomicLong;
+ 
+ /**
+  * An {@link ExecutorService} that monitors the number of tasks submitted, running,
+  * completed and also keeps a {@link Timer} for the task duration.
+  * <p>
+  * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
+  * "your-executor-service.submitted", "your-executor-service.running", etc.
+  */
+ public class InstrumentedExecutorService implements ExecutorService {
+     private static final AtomicLong NAME_COUNTER = new AtomicLong();
+ 
+     private final ExecutorService delegate;
+     private final Meter submitted;
+     private final Counter running;
+     private final Meter completed;
+     private final Timer idle;
+     private final Timer duration;
+ 
+     /**
+      * Wraps an {@link ExecutorService} uses an auto-generated default name.
+      *
+      * @param delegate {@link ExecutorService} to wrap.
+      * @param registry {@link MetricRegistry} that will contain the metrics.
+      */
+     public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry) {
+         this(delegate, registry, "instrumented-delegate-" + NAME_COUNTER.incrementAndGet());
+     }
+ 
+     /**
+      * Wraps an {@link ExecutorService} with an explicit name.
+      *
+      * @param delegate {@link ExecutorService} to wrap.
+      * @param registry {@link MetricRegistry} that will contain the metrics.
+      * @param name     name for this executor service.
+      */
+     public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry, String name) {
+         this.delegate = delegate;
+         this.submitted = registry.meter(MetricRegistry.name(name, "submitted"));
+         this.running = registry.counter(MetricRegistry.name(name, "running"));
+         this.completed = registry.meter(MetricRegistry.name(name, "completed"));
+         this.idle = registry.timer(MetricRegistry.name(name, "idle"));
+         this.duration = registry.timer(MetricRegistry.name(name, "duration"));
+ 
+         if (delegate instanceof ThreadPoolExecutor) {
+             ThreadPoolExecutor executor = (ThreadPoolExecutor) delegate;
+             registry.registerGauge(MetricRegistry.name(name, "pool.size"),
+                     executor::getPoolSize);
+             registry.registerGauge(MetricRegistry.name(name, "pool.core"),
+                     executor::getCorePoolSize);
+             registry.registerGauge(MetricRegistry.name(name, "pool.max"),
+                     executor::getMaximumPoolSize);
+             final BlockingQueue<Runnable> queue = executor.getQueue();
+             registry.registerGauge(MetricRegistry.name(name, "tasks.active"),
+                     executor::getActiveCount);
+             registry.registerGauge(MetricRegistry.name(name, "tasks.completed"),
+                     executor::getCompletedTaskCount);
+             registry.registerGauge(MetricRegistry.name(name, "tasks.queued"),
+                     queue::size);
+             registry.registerGauge(MetricRegistry.name(name, "tasks.capacity"),
+                     queue::remainingCapacity);
+         } else if (delegate instanceof ForkJoinPool) {
+             ForkJoinPool forkJoinPool = (ForkJoinPool) delegate;
+             registry.registerGauge(MetricRegistry.name(name, "tasks.stolen"),
+                     forkJoinPool::getStealCount);
+             registry.registerGauge(MetricRegistry.name(name, "tasks.queued"),
+                     forkJoinPool::getQueuedTaskCount);
+             registry.registerGauge(MetricRegistry.name(name, "threads.active"),
+                     forkJoinPool::getActiveThreadCount);
+             registry.registerGauge(MetricRegistry.name(name, "threads.running"),
+                     forkJoinPool::getRunningThreadCount);
+         }
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void execute(Runnable runnable) {
+         submitted.mark();
+         delegate.execute(new InstrumentedRunnable(runnable));
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Future<?> submit(Runnable runnable) {
+         submitted.mark();
+         return delegate.submit(new InstrumentedRunnable(runnable));
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> Future<T> submit(Runnable runnable, T result) {
+         submitted.mark();
+         return delegate.submit(new InstrumentedRunnable(runnable), result);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> Future<T> submit(Callable<T> task) {
+         submitted.mark();
+         return delegate.submit(new InstrumentedCallable<>(task));
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException {
+         submitted.mark(tasks.size());
+         Collection<? extends Callable<T>> instrumented = instrument(tasks);
+         return delegate.invokeAll(instrumented);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException {
+         submitted.mark(tasks.size());
+         Collection<? extends Callable<T>> instrumented = instrument(tasks);
+         return delegate.invokeAll(instrumented, timeout, unit);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws ExecutionException, InterruptedException {
+         submitted.mark(tasks.size());
+         Collection<? extends Callable<T>> instrumented = instrument(tasks);
+         return delegate.invokeAny(instrumented);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws ExecutionException, InterruptedException, TimeoutException {
+         submitted.mark(tasks.size());
+         Collection<? extends Callable<T>> instrumented = instrument(tasks);
+         return delegate.invokeAny(instrumented, timeout, unit);
+     }
+ 
+     private <T> Collection<? extends Callable<T>> instrument(Collection<? extends Callable<T>> tasks) {
+         final List<InstrumentedCallable<T>> instrumented = new ArrayList<>(tasks.size());
+         for (Callable<T> task : tasks) {
+             instrumented.add(new InstrumentedCallable<>(task));
+         }
+         return instrumented;
+     }
+ 
+     @Override
+     public void shutdown() {
+         delegate.shutdown();
+     }
+ 
+     @Override
+     public List<Runnable> shutdownNow() {
+         return delegate.shutdownNow();
+     }
+ 
+     @Override
+     public boolean isShutdown() {
+         return delegate.isShutdown();
+     }
+ 
+     @Override
+     public boolean isTerminated() {
+         return delegate.isTerminated();
+     }
+ 
+     @Override
+     public boolean awaitTermination(long l, TimeUnit timeUnit) throws InterruptedException {
+         return delegate.awaitTermination(l, timeUnit);
+     }
+ 
+     private class InstrumentedRunnable implements Runnable {
+         private final Runnable task;
+         private final Timer.Context idleContext;
+ 
+         InstrumentedRunnable(Runnable task) {
+             this.task = task;
+             this.idleContext = idle.time();
+         }
+ 
+         @Override
+         public void run() {
+             idleContext.stop();
+             running.inc();
+             try (Timer.Context durationContext = duration.time()) {
+                 task.run();
+             } finally {
+                 running.dec();
+                 completed.mark();
+             }
+         }
+     }
+ 
+     private class InstrumentedCallable<T> implements Callable<T> {
+         private final Callable<T> callable;
+         private final Timer.Context idleContext;
+ 
+         InstrumentedCallable(Callable<T> callable) {
+             this.callable = callable;
+             this.idleContext = idle.time();
+         }
+ 
+         @Override
+         public T call() throws Exception {
+             idleContext.stop();
+             running.inc();
+             try (Timer.Context context = duration.time()) {
+                 return callable.call();
+             } finally {
+                 running.dec();
+                 completed.mark();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-f.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-f.html new file mode 100644 index 0000000000..93c8253d7b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-f.html @@ -0,0 +1,465 @@ + + + + + + + + Coverage Report > InstrumentedScheduledExecutorService + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedScheduledExecutorService (com.codahale.metrics)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedScheduledExecutorService + + 50% + + + (11/22) + + + + 51% + + + (26/51) + +
InstrumentedScheduledExecutorService$InstrumentedCallable + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + +
InstrumentedScheduledExecutorService$InstrumentedPeriodicRunnable + + 100% + + + (2/2) + + + + 100% + + + (13/13) + +
InstrumentedScheduledExecutorService$InstrumentedRunnable + + 100% + + + (2/2) + + + + 100% + + + (9/9) + +
Total + + 60.7% + + + (17/28) + + + + 68.3% + + + (56/82) + +
+ +
+
+ + +
+ package com.codahale.metrics;
+ 
+ import java.util.ArrayList;
+ import java.util.Collection;
+ import java.util.List;
+ import java.util.concurrent.Callable;
+ import java.util.concurrent.ExecutionException;
+ import java.util.concurrent.Future;
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.ScheduledFuture;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.TimeoutException;
+ import java.util.concurrent.atomic.AtomicLong;
+ 
+ /**
+  * An {@link ScheduledExecutorService} that monitors the number of tasks submitted, running,
+  * completed and also keeps a {@link Timer} for the task duration.
+  * <p>
+  * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
+  * "your-executor-service.submitted", "your-executor-service.running", etc.
+  */
+ public class InstrumentedScheduledExecutorService implements ScheduledExecutorService {
+     private static final AtomicLong NAME_COUNTER = new AtomicLong();
+ 
+     private final ScheduledExecutorService delegate;
+ 
+     private final Meter submitted;
+     private final Counter running;
+     private final Meter completed;
+     private final Timer duration;
+ 
+     private final Meter scheduledOnce;
+     private final Meter scheduledRepetitively;
+     private final Counter scheduledOverrun;
+     private final Histogram percentOfPeriod;
+ 
+     /**
+      * Wraps an {@link ScheduledExecutorService} uses an auto-generated default name.
+      *
+      * @param delegate {@link ScheduledExecutorService} to wrap.
+      * @param registry {@link MetricRegistry} that will contain the metrics.
+      */
+     public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry) {
+         this(delegate, registry, "instrumented-scheduled-executor-service-" + NAME_COUNTER.incrementAndGet());
+     }
+ 
+     /**
+      * Wraps an {@link ScheduledExecutorService} with an explicit name.
+      *
+      * @param delegate {@link ScheduledExecutorService} to wrap.
+      * @param registry {@link MetricRegistry} that will contain the metrics.
+      * @param name     name for this executor service.
+      */
+     public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry, String name) {
+         this.delegate = delegate;
+ 
+         this.submitted = registry.meter(MetricRegistry.name(name, "submitted"));
+ 
+         this.running = registry.counter(MetricRegistry.name(name, "running"));
+         this.completed = registry.meter(MetricRegistry.name(name, "completed"));
+         this.duration = registry.timer(MetricRegistry.name(name, "duration"));
+ 
+         this.scheduledOnce = registry.meter(MetricRegistry.name(name, "scheduled.once"));
+         this.scheduledRepetitively = registry.meter(MetricRegistry.name(name, "scheduled.repetitively"));
+         this.scheduledOverrun = registry.counter(MetricRegistry.name(name, "scheduled.overrun"));
+         this.percentOfPeriod = registry.histogram(MetricRegistry.name(name, "scheduled.percent-of-period"));
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit) {
+         scheduledOnce.mark();
+         return delegate.schedule(new InstrumentedRunnable(command), delay, unit);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <V> ScheduledFuture<V> schedule(Callable<V> callable, long delay, TimeUnit unit) {
+         scheduledOnce.mark();
+         return delegate.schedule(new InstrumentedCallable<>(callable), delay, unit);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) {
+         scheduledRepetitively.mark();
+         return delegate.scheduleAtFixedRate(new InstrumentedPeriodicRunnable(command, period, unit), initialDelay, period, unit);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) {
+         scheduledRepetitively.mark();
+         return delegate.scheduleWithFixedDelay(new InstrumentedRunnable(command), initialDelay, delay, unit);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void shutdown() {
+         delegate.shutdown();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public List<Runnable> shutdownNow() {
+         return delegate.shutdownNow();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public boolean isShutdown() {
+         return delegate.isShutdown();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public boolean isTerminated() {
+         return delegate.isTerminated();
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {
+         return delegate.awaitTermination(timeout, unit);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> Future<T> submit(Callable<T> task) {
+         submitted.mark();
+         return delegate.submit(new InstrumentedCallable<>(task));
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> Future<T> submit(Runnable task, T result) {
+         submitted.mark();
+         return delegate.submit(new InstrumentedRunnable(task), result);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public Future<?> submit(Runnable task) {
+         submitted.mark();
+         return delegate.submit(new InstrumentedRunnable(task));
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException {
+         submitted.mark(tasks.size());
+         Collection<? extends Callable<T>> instrumented = instrument(tasks);
+         return delegate.invokeAll(instrumented);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException {
+         submitted.mark(tasks.size());
+         Collection<? extends Callable<T>> instrumented = instrument(tasks);
+         return delegate.invokeAll(instrumented, timeout, unit);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws InterruptedException, ExecutionException {
+         submitted.mark(tasks.size());
+         Collection<? extends Callable<T>> instrumented = instrument(tasks);
+         return delegate.invokeAny(instrumented);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
+         submitted.mark(tasks.size());
+         Collection<? extends Callable<T>> instrumented = instrument(tasks);
+         return delegate.invokeAny(instrumented, timeout, unit);
+     }
+ 
+     private <T> Collection<? extends Callable<T>> instrument(Collection<? extends Callable<T>> tasks) {
+         final List<InstrumentedCallable<T>> instrumented = new ArrayList<>(tasks.size());
+         for (Callable<T> task : tasks) {
+             instrumented.add(new InstrumentedCallable<>(task));
+         }
+         return instrumented;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void execute(Runnable command) {
+         submitted.mark();
+         delegate.execute(new InstrumentedRunnable(command));
+     }
+ 
+     private class InstrumentedRunnable implements Runnable {
+         private final Runnable command;
+ 
+         InstrumentedRunnable(Runnable command) {
+             this.command = command;
+         }
+ 
+         @Override
+         public void run() {
+             running.inc();
+             final Timer.Context context = duration.time();
+             try {
+                 command.run();
+             } finally {
+                 context.stop();
+                 running.dec();
+                 completed.mark();
+             }
+         }
+     }
+ 
+     private class InstrumentedPeriodicRunnable implements Runnable {
+         private final Runnable command;
+         private final long periodInNanos;
+ 
+         InstrumentedPeriodicRunnable(Runnable command, long period, TimeUnit unit) {
+             this.command = command;
+             this.periodInNanos = unit.toNanos(period);
+         }
+ 
+         @Override
+         public void run() {
+             running.inc();
+             final Timer.Context context = duration.time();
+             try {
+                 command.run();
+             } finally {
+                 final long elapsed = context.stop();
+                 running.dec();
+                 completed.mark();
+                 if (elapsed > periodInNanos) {
+                     scheduledOverrun.inc();
+                 }
+                 percentOfPeriod.update((100L * elapsed) / periodInNanos);
+             }
+         }
+     }
+ 
+     private class InstrumentedCallable<T> implements Callable<T> {
+         private final Callable<T> task;
+ 
+         InstrumentedCallable(Callable<T> task) {
+             this.task = task;
+         }
+ 
+         @Override
+         public T call() throws Exception {
+             running.inc();
+             final Timer.Context context = duration.time();
+             try {
+                 return task.call();
+             } finally {
+                 context.stop();
+                 running.dec();
+                 completed.mark();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index.html b/metrics-complete-report-initial-htmlReport/ns-10/index.html new file mode 100644 index 0000000000..f2f721fd53 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-10/index.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..1af29f213e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..57018c86b6 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..f0985ecf19 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..b82cabd3d4 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..0613ca7bc0 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_LINE.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..827385ba8e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..e9e099a0e1 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..1f81925c97 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..c7f5ec379d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi.strategies + + 80% + + + (12/15) + + + + 91.4% + + + (32/35) + + + + 89.3% + + + (108/121) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
ShortNameStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
NameStrategies + + 100% + + + (7/7) + + + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-1.html new file mode 100644 index 0000000000..749fc492cf --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-1.html @@ -0,0 +1,112 @@ + + + + + + + + Coverage Report > BasicSqlNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi.strategies;
+ 
+ public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
+     public BasicSqlNameStrategy() {
+         super(NameStrategies.CHECK_EMPTY,
+                 NameStrategies.SQL_OBJECT);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-2.html new file mode 100644 index 0000000000..be0ba350c0 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-2.html @@ -0,0 +1,119 @@ + + + + + + + + Coverage Report > ContextNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: ContextNameStrategy (com.codahale.metrics.jdbi.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ContextNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi.strategies;
+ 
+ 
+ /**
+  * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_GROUP} and {@link
+  * NameStrategies#STATEMENT_NAME} for group based display.
+  */
+ public class ContextNameStrategy extends DelegatingStatementNameStrategy {
+     public ContextNameStrategy() {
+         super(NameStrategies.CHECK_EMPTY,
+                 NameStrategies.CHECK_RAW,
+                 NameStrategies.CONTEXT_NAME,
+                 NameStrategies.NAIVE_NAME);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-3.html new file mode 100644 index 0000000000..ae6094756d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-3.html @@ -0,0 +1,135 @@ + + + + + + + + Coverage Report > DelegatingStatementNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 90% + + + (9/10) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi.strategies;
+ 
+ import org.skife.jdbi.v2.StatementContext;
+ 
+ import java.util.ArrayList;
+ import java.util.Arrays;
+ import java.util.List;
+ 
+ public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
+     private final List<StatementNameStrategy> strategies = new ArrayList<>();
+ 
+     protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {
+         registerStrategies(strategies);
+     }
+ 
+     protected void registerStrategies(StatementNameStrategy... strategies) {
+         this.strategies.addAll(Arrays.asList(strategies));
+     }
+ 
+     @Override
+     public String getStatementName(StatementContext statementContext) {
+         for (StatementNameStrategy strategy : strategies) {
+             final String statementName = strategy.getStatementName(statementContext);
+             if (statementName != null) {
+                 return statementName;
+             }
+         }
+ 
+         return NameStrategies.UNKNOWN_SQL;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-4.html new file mode 100644 index 0000000000..5afb820cc3 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-4.html @@ -0,0 +1,116 @@ + + + + + + + + Coverage Report > NaiveNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
NaiveNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/1) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi.strategies;
+ 
+ /**
+  * Very simple strategy, can be used with any JDBI loader to build basic statistics.
+  */
+ public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
+     public NaiveNameStrategy() {
+         super(NameStrategies.CHECK_EMPTY,
+                 NameStrategies.CHECK_RAW,
+                 NameStrategies.NAIVE_NAME);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-5.html new file mode 100644 index 0000000000..ce3031339e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-5.html @@ -0,0 +1,422 @@ + + + + + + + + Coverage Report > NameStrategies + + + + + + +
+ + +

Coverage Summary for Class: NameStrategies (com.codahale.metrics.jdbi.strategies)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
NameStrategies + + 100% + + + (3/3) + + + + 100% + + + (8/8) + +
NameStrategies$1
NameStrategies$CheckEmptyStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + +
NameStrategies$CheckRawStrategy + + 100% + + + (3/3) + + + + 100% + + + (6/6) + +
NameStrategies$ContextClassStrategy + + 100% + + + (3/3) + + + + 92.3% + + + (12/13) + +
NameStrategies$ContextNameStrategy + + 100% + + + (4/4) + + + + 100% + + + (19/19) + +
NameStrategies$NaiveNameStrategy + + 100% + + + (3/3) + + + + 66.7% + + + (6/9) + +
NameStrategies$SqlObjectStrategy + + 100% + + + (3/3) + + + + 100% + + + (11/11) + +
Total + + 100% + + + (22/22) + + + + 94.4% + + + (68/72) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi.strategies;
+ 
+ import org.skife.jdbi.v2.ClasspathStatementLocator;
+ import org.skife.jdbi.v2.StatementContext;
+ 
+ import java.lang.reflect.Method;
+ import java.util.regex.Matcher;
+ import java.util.regex.Pattern;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ public final class NameStrategies {
+     public static final StatementNameStrategy CHECK_EMPTY = new CheckEmptyStrategy();
+     public static final StatementNameStrategy CHECK_RAW = new CheckRawStrategy();
+     public static final StatementNameStrategy SQL_OBJECT = new SqlObjectStrategy();
+     public static final StatementNameStrategy NAIVE_NAME = new NaiveNameStrategy();
+     public static final StatementNameStrategy CONTEXT_CLASS = new ContextClassStrategy();
+     public static final StatementNameStrategy CONTEXT_NAME = new ContextNameStrategy();
+ 
+     /**
+      * An empty SQL statement.
+      */
+     private static final String EMPTY_SQL = "sql.empty";
+ 
+     /**
+      * Unknown SQL.
+      */
+     static final String UNKNOWN_SQL = "sql.unknown";
+ 
+     /**
+      * Context attribute name for the metric class.
+      */
+     public static final String STATEMENT_CLASS = "_metric_class";
+ 
+     /**
+      * Context attribute name for the metric group.
+      */
+     public static final String STATEMENT_GROUP = "_metric_group";
+ 
+     /**
+      * Context attribute name for the metric type.
+      */
+     public static final String STATEMENT_TYPE = "_metric_type";
+ 
+     /**
+      * Context attribute name for the metric name.
+      */
+     public static final String STATEMENT_NAME = "_metric_name";
+ 
+     private static String forRawSql(String rawSql) {
+         return name("sql", "raw", rawSql);
+     }
+ 
+     static final class CheckEmptyStrategy implements StatementNameStrategy {
+         private CheckEmptyStrategy() {
+         }
+ 
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             final String rawSql = statementContext.getRawSql();
+ 
+             if (rawSql == null || rawSql.length() == 0) {
+                 return EMPTY_SQL;
+             }
+             return null;
+         }
+     }
+ 
+     static final class CheckRawStrategy implements StatementNameStrategy {
+         private CheckRawStrategy() {
+         }
+ 
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             final String rawSql = statementContext.getRawSql();
+ 
+             if (ClasspathStatementLocator.looksLikeSql(rawSql)) {
+                 return forRawSql(rawSql);
+             }
+             return null;
+         }
+     }
+ 
+     static final class NaiveNameStrategy implements StatementNameStrategy {
+         private NaiveNameStrategy() {
+         }
+ 
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             final String rawSql = statementContext.getRawSql();
+ 
+             // Is it using the template loader?
+             final int colon = rawSql.indexOf(':');
+ 
+             if (colon == -1) {
+                 // No package? Just return the name, JDBI figured out somehow on how to find the raw sql for this statement.
+                 return forRawSql(rawSql);
+             }
+ 
+             final String group = rawSql.substring(0, colon);
+             final String name = rawSql.substring(colon + 1);
+             return name(group, name);
+         }
+     }
+ 
+     static final class SqlObjectStrategy implements StatementNameStrategy {
+         private SqlObjectStrategy() {
+         }
+ 
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             final Class<?> clazz = statementContext.getSqlObjectType();
+             final Method method = statementContext.getSqlObjectMethod();
+             if (clazz != null) {
+                 final String rawSql = statementContext.getRawSql();
+ 
+                 final String group = clazz.getPackage().getName();
+                 final String name = clazz.getSimpleName();
+                 final String type = method == null ? rawSql : method.getName();
+                 return name(group, name, type);
+             }
+             return null;
+         }
+     }
+ 
+     static final class ContextClassStrategy implements StatementNameStrategy {
+         private ContextClassStrategy() {
+         }
+ 
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             final Object classObj = statementContext.getAttribute(STATEMENT_CLASS);
+             final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);
+ 
+             if (classObj == null || nameObj == null) {
+                 return null;
+             }
+ 
+             final String className = (String) classObj;
+             final String statementName = (String) nameObj;
+ 
+             final int dotPos = className.lastIndexOf('.');
+             if (dotPos == -1) {
+                 return null;
+             }
+ 
+             return name(className.substring(0, dotPos),
+                     className.substring(dotPos + 1),
+                     statementName);
+         }
+     }
+ 
+     static final class ContextNameStrategy implements StatementNameStrategy {
+         /**
+          * File pattern to shorten the group name.
+          */
+         private static final Pattern SHORT_PATTERN = Pattern.compile("^(.*?)/(.*?)(-sql)?\\.st(g)?$");
+ 
+         private ContextNameStrategy() {
+         }
+ 
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             final Object groupObj = statementContext.getAttribute(STATEMENT_GROUP);
+             final Object typeObj = statementContext.getAttribute(STATEMENT_TYPE);
+             final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);
+ 
+             if (groupObj == null || nameObj == null) {
+                 return null;
+             }
+ 
+             final String group = (String) groupObj;
+             final String statementName = (String) nameObj;
+ 
+             if (typeObj == null) {
+                 final Matcher matcher = SHORT_PATTERN.matcher(group);
+                 if (matcher.matches()) {
+                     final String groupName = matcher.group(1);
+                     final String typeName = matcher.group(2);
+                     return name(groupName, typeName, statementName);
+                 }
+ 
+                 return name(group, statementName, "");
+             } else {
+                 final String type = (String) typeObj;
+ 
+                 return name(group, type, statementName);
+             }
+         }
+     }
+ 
+     private NameStrategies() {
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-6.html new file mode 100644 index 0000000000..f37df9d138 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-6.html @@ -0,0 +1,239 @@ + + + + + + + + Coverage Report > ShortNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: ShortNameStrategy (com.codahale.metrics.jdbi.strategies)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
ShortNameStrategy + + 100% + + + (2/2) + + + + 100% + + + (5/5) + +
ShortNameStrategy$1
ShortNameStrategy$ShortContextClassStrategy + + 100% + + + (2/2) + + + + 86.7% + + + (13/15) + +
ShortNameStrategy$ShortSqlObjectStrategy + + 100% + + + (2/2) + + + + 80% + + + (12/15) + +
Total + + 100% + + + (6/6) + + + + 85.7% + + + (30/35) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi.strategies;
+ 
+ import org.skife.jdbi.v2.StatementContext;
+ 
+ import java.lang.reflect.Method;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * Assembles all JDBI stats under a common prefix (passed in at constructor time). Stats are grouped
+  * by class name and method; a shortening strategy is applied to make the JMX output nicer.
+  */
+ public final class ShortNameStrategy extends DelegatingStatementNameStrategy {
+     private final ConcurrentMap<String, String> shortClassNames = new ConcurrentHashMap<>();
+ 
+     private final String baseJmxName;
+ 
+     public ShortNameStrategy(String baseJmxName) {
+         this.baseJmxName = baseJmxName;
+ 
+         // Java does not allow super (..., new ShortContextClassStrategy(), new ShortSqlObjectStrategy(), ...);
+         // ==> No enclosing instance of type <xxx> is available due to some intermediate constructor invocation. Lame.
+         registerStrategies(NameStrategies.CHECK_EMPTY,
+                 new ShortContextClassStrategy(),
+                 new ShortSqlObjectStrategy(),
+                 NameStrategies.CHECK_RAW,
+                 NameStrategies.NAIVE_NAME);
+     }
+ 
+     private final class ShortContextClassStrategy implements StatementNameStrategy {
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             final Object classObj = statementContext.getAttribute(NameStrategies.STATEMENT_CLASS);
+             final Object nameObj = statementContext.getAttribute(NameStrategies.STATEMENT_NAME);
+ 
+             if (classObj == null || nameObj == null) {
+                 return null;
+             }
+ 
+             final String className = (String) classObj;
+             final String statementName = (String) nameObj;
+ 
+             final int dotPos = className.lastIndexOf('.');
+             if (dotPos == -1) {
+                 return null;
+             }
+ 
+             final String shortName = className.substring(dotPos + 1);
+ 
+             final String oldClassName = shortClassNames.putIfAbsent(shortName, className);
+             if (oldClassName == null || oldClassName.equals(className)) {
+                 return name(baseJmxName, shortName, statementName);
+             } else {
+                 return name(baseJmxName, className, statementName);
+             }
+         }
+     }
+ 
+     private final class ShortSqlObjectStrategy implements StatementNameStrategy {
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             final Class<?> clazz = statementContext.getSqlObjectType();
+             final Method method = statementContext.getSqlObjectMethod();
+             if (clazz != null && method != null) {
+                 final String className = clazz.getName();
+                 final String statementName = method.getName();
+ 
+                 final int dotPos = className.lastIndexOf('.');
+                 if (dotPos == -1) {
+                     return null;
+                 }
+ 
+                 final String shortName = className.substring(dotPos + 1);
+ 
+                 final String oldClassName = shortClassNames.putIfAbsent(shortName, className);
+                 if (oldClassName == null || oldClassName.equals(className)) {
+                     return name(baseJmxName, shortName, statementName);
+                 } else {
+                     return name(baseJmxName, className, statementName);
+                 }
+             }
+             return null;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-7.html b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-7.html new file mode 100644 index 0000000000..d5180930ca --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-7.html @@ -0,0 +1,124 @@ + + + + + + + + Coverage Report > SmartNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi.strategies;
+ 
+ 
+ /**
+  * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_CLASS} and {@link
+  * NameStrategies#STATEMENT_NAME} for class based display or {@link NameStrategies#STATEMENT_GROUP}
+  * and {@link NameStrategies#STATEMENT_NAME} for group based display.
+  * <p>
+  * Also knows how to deal with SQL Object statements.
+  */
+ public class SmartNameStrategy extends DelegatingStatementNameStrategy {
+     public SmartNameStrategy() {
+         super(NameStrategies.CHECK_EMPTY,
+                 NameStrategies.CONTEXT_CLASS,
+                 NameStrategies.CONTEXT_NAME,
+                 NameStrategies.SQL_OBJECT,
+                 NameStrategies.CHECK_RAW,
+                 NameStrategies.NAIVE_NAME);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-8.html b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-8.html new file mode 100644 index 0000000000..622f14705b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-8.html @@ -0,0 +1,78 @@ + + + + + + + + Coverage Report > StatementNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi.strategies)

+ + + + + + + + + +
Class
StatementNameStrategy
+ +
+
+ + +
+ package com.codahale.metrics.jdbi.strategies;
+ 
+ import org.skife.jdbi.v2.StatementContext;
+ 
+ /**
+  * Interface for strategies to statement contexts to metric names.
+  */
+ public interface StatementNameStrategy {
+     String getStatementName(StatementContext statementContext);
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index.html b/metrics-complete-report-initial-htmlReport/ns-11/index.html new file mode 100644 index 0000000000..6dacf04962 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-11/index.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..2222802bd1 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..9837073cf8 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..67fe4ab5af --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..b01e61e331 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..12a3b27a25 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_LINE.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..3bfba26f8d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..c622818a87 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..88ba6b32c9 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..52a02910d1 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3 + + 100% + + + (2/2) + + + + 75% + + + (6/8) + + + + 88.2% + + + (15/17) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-11/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-11/sources/source-1.html new file mode 100644 index 0000000000..265877a59e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-11/sources/source-1.html @@ -0,0 +1,152 @@ + + + + + + + + Coverage Report > InstrumentedSqlLogger + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedSqlLogger (com.codahale.metrics.jdbi3)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedSqlLogger + + 100% + + + (1/1) + + + + 80% + + + (4/5) + + + + 90% + + + (9/10) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi3;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
+ import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
+ import org.jdbi.v3.core.statement.SqlLogger;
+ import org.jdbi.v3.core.statement.StatementContext;
+ 
+ import java.sql.SQLException;
+ import java.time.temporal.ChronoUnit;
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * A {@link SqlLogger} implementation for JDBI which uses the SQL objects' class names and
+  * method names for nanosecond-precision timers.
+  */
+ public class InstrumentedSqlLogger implements SqlLogger {
+     private final MetricRegistry registry;
+     private final StatementNameStrategy statementNameStrategy;
+ 
+     public InstrumentedSqlLogger(MetricRegistry registry) {
+         this(registry, new SmartNameStrategy());
+     }
+ 
+     public InstrumentedSqlLogger(MetricRegistry registry,
+                                  StatementNameStrategy statementNameStrategy) {
+         this.registry = registry;
+         this.statementNameStrategy = statementNameStrategy;
+     }
+ 
+     @Override
+     public void logAfterExecution(StatementContext context) {
+         log(context);
+     }
+ 
+     @Override
+     public void logException(StatementContext context, SQLException ex) {
+         log(context);
+     }
+ 
+     private void log(StatementContext context) {
+         String statementName = statementNameStrategy.getStatementName(context);
+         if (statementName != null) {
+             final long elapsed = context.getElapsedTime(ChronoUnit.NANOS);
+             registry.timer(statementName).update(elapsed, TimeUnit.NANOSECONDS);
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-11/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-11/sources/source-2.html new file mode 100644 index 0000000000..1e2ad23671 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-11/sources/source-2.html @@ -0,0 +1,145 @@ + + + + + + + + Coverage Report > InstrumentedTimingCollector + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi3)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi3;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
+ import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
+ import org.jdbi.v3.core.statement.SqlLogger;
+ import org.jdbi.v3.core.statement.StatementContext;
+ import org.jdbi.v3.core.statement.TimingCollector;
+ 
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * A {@link TimingCollector} implementation for JDBI which uses the SQL objects' class names and
+  * method names for millisecond-precision timers.
+  *
+  * @deprecated Use {@link InstrumentedSqlLogger} and {@link org.jdbi.v3.core.Jdbi#setSqlLogger(SqlLogger)} instead.
+  */
+ @Deprecated
+ public class InstrumentedTimingCollector implements TimingCollector {
+ 
+     private final MetricRegistry registry;
+     private final StatementNameStrategy statementNameStrategy;
+ 
+     public InstrumentedTimingCollector(MetricRegistry registry) {
+         this(registry, new SmartNameStrategy());
+     }
+ 
+     public InstrumentedTimingCollector(MetricRegistry registry,
+                                        StatementNameStrategy statementNameStrategy) {
+         this.registry = registry;
+         this.statementNameStrategy = statementNameStrategy;
+     }
+ 
+     @Override
+     public void collect(long elapsedTime, StatementContext ctx) {
+         String statementName = statementNameStrategy.getStatementName(ctx);
+         if (statementName != null) {
+             registry.timer(statementName).update(elapsedTime, TimeUnit.NANOSECONDS);
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index.html b/metrics-complete-report-initial-htmlReport/ns-12/index.html new file mode 100644 index 0000000000..ffd2d9c285 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-12/index.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..41845ad3a4 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..a789c173cb --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..7c9a302efc --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..dcdd04f56e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..a82a1e5a5c --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_LINE.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..862e414ea0 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..13931c1145 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..ca3561d906 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..6bcdf45702 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi3.strategies + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi3.strategies + + 100% + + + (10/10) + + + + 100% + + + (17/17) + + + + 95.7% + + + (45/47) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
DefaultNameStrategy + + 100% + + + (5/5) + + + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-1.html new file mode 100644 index 0000000000..819264e935 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-1.html @@ -0,0 +1,116 @@ + + + + + + + + Coverage Report > BasicSqlNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi3.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
BasicSqlNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi3.strategies;
+ 
+ /**
+  * Collects metrics by respective SQLObject methods.
+  */
+ public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
+ 
+     public BasicSqlNameStrategy() {
+         super(DefaultNameStrategy.CHECK_EMPTY,
+                 DefaultNameStrategy.SQL_OBJECT);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-2.html new file mode 100644 index 0000000000..868068b510 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-2.html @@ -0,0 +1,246 @@ + + + + + + + + Coverage Report > DefaultNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: DefaultNameStrategy (com.codahale.metrics.jdbi3.strategies)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
DefaultNameStrategy + + 100% + + + (2/2) + + + + 100% + + + (5/5) + +
DefaultNameStrategy$1 + + 100% + + + (2/2) + + + + 100% + + + (3/3) + +
DefaultNameStrategy$2 + + 100% + + + (2/2) + + + + 100% + + + (5/5) + +
DefaultNameStrategy$3 + + 100% + + + (2/2) + + + + 100% + + + (2/2) + +
DefaultNameStrategy$4 + + 100% + + + (2/2) + + + + 100% + + + (2/2) + +
Total + + 100% + + + (10/10) + + + + 100% + + + (17/17) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi3.strategies;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.jdbi.v3.core.extension.ExtensionMethod;
+ import org.jdbi.v3.core.statement.StatementContext;
+ 
+ /**
+  * Default strategies which build a basis of more complex strategies
+  */
+ public enum DefaultNameStrategy implements StatementNameStrategy {
+ 
+     /**
+      * If no SQL in the context, returns `sql.empty`, otherwise falls through
+      */
+     CHECK_EMPTY {
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             final String rawSql = statementContext.getRawSql();
+             return rawSql == null || rawSql.isEmpty() ? "sql.empty" : null;
+         }
+     },
+ 
+     /**
+      * If there is an SQL object attached to the context, returns the name package,
+      * the class and the method on which SQL is declared. If not SQL object is attached,
+      * falls through
+      */
+     SQL_OBJECT {
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             ExtensionMethod extensionMethod = statementContext.getExtensionMethod();
+             if (extensionMethod != null) {
+                 return MetricRegistry.name(extensionMethod.getType(), extensionMethod.getMethod().getName());
+             }
+             return null;
+         }
+     },
+ 
+     /**
+      * Returns a raw SQL in the context (even if it's not exist)
+      */
+     NAIVE_NAME {
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             return statementContext.getRawSql();
+         }
+     },
+ 
+     /**
+      * Returns the `sql.raw` constant
+      */
+     CONSTANT_SQL_RAW {
+         @Override
+         public String getStatementName(StatementContext statementContext) {
+             return "sql.raw";
+         }
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-3.html new file mode 100644 index 0000000000..397fdaf88d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-3.html @@ -0,0 +1,136 @@ + + + + + + + + Coverage Report > DelegatingStatementNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi3.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
DelegatingStatementNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 87.5% + + + (7/8) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi3.strategies;
+ 
+ import org.jdbi.v3.core.statement.StatementContext;
+ 
+ import java.util.Arrays;
+ import java.util.List;
+ 
+ public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
+ 
+     /**
+      * Unknown SQL.
+      */
+     private static final String UNKNOWN_SQL = "sql.unknown";
+ 
+     private final List<StatementNameStrategy> strategies;
+ 
+     protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {
+         this.strategies = Arrays.asList(strategies);
+     }
+ 
+     @Override
+     public String getStatementName(StatementContext statementContext) {
+         for (StatementNameStrategy strategy : strategies) {
+             final String statementName = strategy.getStatementName(statementContext);
+             if (statementName != null) {
+                 return statementName;
+             }
+         }
+ 
+         return UNKNOWN_SQL;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-4.html new file mode 100644 index 0000000000..2cd2f7de26 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-4.html @@ -0,0 +1,116 @@ + + + + + + + + Coverage Report > NaiveNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi3.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
NaiveNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi3.strategies;
+ 
+ /**
+  * Very simple strategy, can be used with any JDBI loader to build basic statistics.
+  */
+ public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
+ 
+     public NaiveNameStrategy() {
+         super(DefaultNameStrategy.CHECK_EMPTY,
+               DefaultNameStrategy.NAIVE_NAME);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-5.html new file mode 100644 index 0000000000..3cb90a5754 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-5.html @@ -0,0 +1,117 @@ + + + + + + + + Coverage Report > SmartNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi3.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SmartNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi3.strategies;
+ 
+ /**
+  * Uses a {@link BasicSqlNameStrategy} and fallbacks to {@link DefaultNameStrategy#CONSTANT_SQL_RAW}
+  */
+ public class SmartNameStrategy extends DelegatingStatementNameStrategy {
+ 
+     public SmartNameStrategy() {
+         super(DefaultNameStrategy.CHECK_EMPTY,
+                 DefaultNameStrategy.SQL_OBJECT,
+                 DefaultNameStrategy.CONSTANT_SQL_RAW);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-6.html new file mode 100644 index 0000000000..f634f47461 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-6.html @@ -0,0 +1,151 @@ + + + + + + + + Coverage Report > TimedAnnotationNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: TimedAnnotationNameStrategy (com.codahale.metrics.jdbi3.strategies)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
TimedAnnotationNameStrategy + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 94.7% + + + (18/19) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi3.strategies;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.annotation.Timed;
+ import org.jdbi.v3.core.extension.ExtensionMethod;
+ import org.jdbi.v3.core.statement.StatementContext;
+ 
+ import java.lang.reflect.Method;
+ 
+ /**
+  * Takes into account the {@link Timed} annotation on extension methods
+  */
+ public class TimedAnnotationNameStrategy implements StatementNameStrategy {
+ 
+     @Override
+     public String getStatementName(StatementContext statementContext) {
+         final ExtensionMethod extensionMethod = statementContext.getExtensionMethod();
+         if (extensionMethod == null) {
+             return null;
+         }
+ 
+         final Class<?> clazz = extensionMethod.getType();
+         final Timed classTimed = clazz.getAnnotation(Timed.class);
+         final Method method = extensionMethod.getMethod();
+         final Timed methodTimed = method.getAnnotation(Timed.class);
+ 
+         // If the method is timed, figure out the name
+         if (methodTimed != null) {
+             String methodName = methodTimed.name().isEmpty() ? method.getName() : methodTimed.name();
+             if (methodTimed.absolute()) {
+                 return methodName;
+             } else {
+                 // We need to check if the class has a custom timer name
+                 return classTimed == null || classTimed.name().isEmpty() ?
+                         MetricRegistry.name(clazz, methodName) :
+                         MetricRegistry.name(classTimed.name(), methodName);
+             }
+         } else if (classTimed != null) {
+             // Maybe the class is timed?
+             return classTimed.name().isEmpty() ? MetricRegistry.name(clazz, method.getName()) :
+                     MetricRegistry.name(classTimed.name(), method.getName());
+         } else {
+             // No timers neither on the method or the class
+             return null;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-7.html b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-7.html new file mode 100644 index 0000000000..c39ae49652 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-7.html @@ -0,0 +1,89 @@ + + + + + + + + Coverage Report > StatementNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi3.strategies)

+ + + + + + + + + + + + + + + + + + +
Class
StatementNameStrategy$MockitoMock$Fu5CcrDH
StatementNameStrategy$MockitoMock$Fu5CcrDH$auxiliary$A1skh5bR
StatementNameStrategy$MockitoMock$Fu5CcrDH$auxiliary$dXLqCYdg
Total
+ +
+
+ + +
+ package com.codahale.metrics.jdbi3.strategies;
+ 
+ import org.jdbi.v3.core.statement.StatementContext;
+ 
+ /**
+  * Interface for strategies to statement contexts to metric names.
+  */
+ @FunctionalInterface
+ public interface StatementNameStrategy {
+ 
+     String getStatementName(StatementContext statementContext);
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index.html b/metrics-complete-report-initial-htmlReport/ns-13/index.html new file mode 100644 index 0000000000..501547a054 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-13/index.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..5011b2207d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..173986b6cc --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..ae6af64806 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..9c2f5bb215 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..b93dd6899f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_LINE.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..8a2a04d793 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..ac26d8ec76 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..4fdb7fde50 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..df6f7ff8eb --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey2 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-13/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-13/sources/source-1.html new file mode 100644 index 0000000000..0485f574fb --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-13/sources/source-1.html @@ -0,0 +1,831 @@ + + + + + + + + Coverage Report > InstrumentedResourceMethodApplicationListener + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey2)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 88.9% + + + (16/18) + + + + 92.1% + + + (82/89) + +
InstrumentedResourceMethodApplicationListener$1 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener + + 100% + + + (3/3) + + + + 100% + + + (5/5) + +
InstrumentedResourceMethodApplicationListener$EventTypeAndMethod + + 100% + + + (8/8) + + + + 84.2% + + + (16/19) + +
InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric + + 100% + + + (1/1) + + + + 100% + + + (5/5) + +
InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener + + 100% + + + (2/2) + + + + 100% + + + (11/11) + +
InstrumentedResourceMethodApplicationListener$MeterRequestEventListener + + 100% + + + (2/2) + + + + 100% + + + (6/6) + +
InstrumentedResourceMethodApplicationListener$ResponseMeterMetric + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener + + 100% + + + (2/2) + + + + 100% + + + (12/12) + +
InstrumentedResourceMethodApplicationListener$TimerRequestEventListener + + 100% + + + (4/4) + + + + 100% + + + (28/28) + +
Total + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+
+ + +
+ package com.codahale.metrics.jersey2;
+ 
+ import com.codahale.metrics.Clock;
+ import com.codahale.metrics.ExponentiallyDecayingReservoir;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Reservoir;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ExceptionMetered;
+ import com.codahale.metrics.annotation.Metered;
+ import com.codahale.metrics.annotation.ResponseMetered;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import com.codahale.metrics.annotation.Timed;
+ import org.glassfish.jersey.server.ContainerResponse;
+ import org.glassfish.jersey.server.model.ModelProcessor;
+ import org.glassfish.jersey.server.model.Resource;
+ import org.glassfish.jersey.server.model.ResourceMethod;
+ import org.glassfish.jersey.server.model.ResourceModel;
+ import org.glassfish.jersey.server.monitoring.ApplicationEvent;
+ import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
+ import org.glassfish.jersey.server.monitoring.RequestEvent;
+ import org.glassfish.jersey.server.monitoring.RequestEventListener;
+ 
+ import javax.ws.rs.core.Configuration;
+ import javax.ws.rs.ext.Provider;
+ import java.lang.annotation.Annotation;
+ import java.lang.reflect.Method;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.EnumSet;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ import java.util.concurrent.TimeUnit;
+ import java.util.function.Supplier;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ 
+ /**
+  * An application event listener that listens for Jersey application initialization to
+  * be finished, then creates a map of resource method that have metrics annotations.
+  * <p>
+  * Finally, it listens for method start events, and returns a {@link RequestEventListener}
+  * that updates the relevant metric for suitably annotated methods when it gets the
+  * request events indicating that the method is about to be invoked, or just got done
+  * being invoked.
+  */
+ @Provider
+ public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
+ 
+     private static final String[] REQUEST_FILTERING = {"request", "filtering"};
+     private static final String[] RESPONSE_FILTERING = {"response", "filtering"};
+     private static final String TOTAL = "total";
+ 
+     private final MetricRegistry metrics;
+     private final ConcurrentMap<EventTypeAndMethod, Timer> timers = new ConcurrentHashMap<>();
+     private final ConcurrentMap<Method, Meter> meters = new ConcurrentHashMap<>();
+     private final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters = new ConcurrentHashMap<>();
+     private final ConcurrentMap<Method, ResponseMeterMetric> responseMeters = new ConcurrentHashMap<>();
+ 
+     private final Clock clock;
+     private final boolean trackFilters;
+     private final Supplier<Reservoir> reservoirSupplier;
+ 
+     /**
+      * Construct an application event listener using the given metrics registry.
+      * <p>
+      * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
+      * should be added to a Jersey {@code ResourceConfig} as a singleton.
+      *
+      * @param metrics a {@link MetricRegistry}
+      */
+     public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
+         this(metrics, Clock.defaultClock(), false);
+     }
+ 
+     /**
+      * Constructs a custom application listener.
+      *
+      * @param metrics      the metrics registry where the metrics will be stored
+      * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters whether the processing time for request and response filters should be tracked
+      */
+     public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
+                                                          final boolean trackFilters) {
+         this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);
+     }
+ 
+     /**
+      * Constructs a custom application listener.
+      *
+      * @param metrics           the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters      whether the processing time for request and response filters should be tracked
+      * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
+      */
+     public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
+                                                          final boolean trackFilters,
+                                                          final Supplier<Reservoir> reservoirSupplier) {
+         this.metrics = metrics;
+         this.clock = clock;
+         this.trackFilters = trackFilters;
+         this.reservoirSupplier = reservoirSupplier;
+     }
+ 
+     /**
+      * A private class to maintain the metric for a method annotated with the
+      * {@link ExceptionMetered} annotation, which needs to maintain both a meter
+      * and a cause for which the meter should be updated.
+      */
+     private static class ExceptionMeterMetric {
+         public final Meter meter;
+         public final Class<? extends Throwable> cause;
+ 
+         public ExceptionMeterMetric(final MetricRegistry registry,
+                                     final ResourceMethod method,
+                                     final ExceptionMetered exceptionMetered) {
+             final String name = chooseName(exceptionMetered.name(),
+                     exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);
+             this.meter = registry.meter(name);
+             this.cause = exceptionMetered.cause();
+         }
+     }
+ 
+     /**
+      * A private class to maintain the metrics for a method annotated with the
+      * {@link ResponseMetered} annotation, which needs to maintain meters for
+      * different response codes
+      */
+     private static class ResponseMeterMetric {
+         private static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+         private static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+         private final List<Meter> meters;
+         private final Map<Integer, Meter> responseCodeMeters;
+         private final MetricRegistry metricRegistry;
+         private final String metricName;
+         private final ResponseMeteredLevel level;
+ 
+         public ResponseMeterMetric(final MetricRegistry registry,
+                                    final ResourceMethod method,
+                                    final ResponseMetered responseMetered) {
+             this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);
+             this.level = responseMetered.level();
+             this.meters = COARSE_METER_LEVELS.contains(level) ?
+                     Collections.unmodifiableList(Arrays.asList(
+                     registry.meter(name(metricName, "1xx-responses")), // 1xx
+                     registry.meter(name(metricName, "2xx-responses")), // 2xx
+                     registry.meter(name(metricName, "3xx-responses")), // 3xx
+                     registry.meter(name(metricName, "4xx-responses")), // 4xx
+                     registry.meter(name(metricName, "5xx-responses"))  // 5xx
+             )) : Collections.emptyList();
+             this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+             this.metricRegistry = registry;
+         }
+ 
+         public void mark(int statusCode) {
+             if (DETAILED_METER_LEVELS.contains(level)) {
+                 getResponseCodeMeter(statusCode).mark();
+             }
+ 
+             if (COARSE_METER_LEVELS.contains(level)) {
+                 final int responseStatus = statusCode / 100;
+                 if (responseStatus >= 1 && responseStatus <= 5) {
+                     meters.get(responseStatus - 1).mark();
+                 }
+             }
+         }
+ 
+         private Meter getResponseCodeMeter(int statusCode) {
+             return responseCodeMeters
+                     .computeIfAbsent(statusCode, sc -> metricRegistry
+                             .meter(name(metricName, String.format("%d-responses", sc))));
+         }
+     }
+ 
+     private static class TimerRequestEventListener implements RequestEventListener {
+ 
+         private final ConcurrentMap<EventTypeAndMethod, Timer> timers;
+         private final Clock clock;
+         private final long start;
+         private Timer.Context resourceMethodStartContext;
+         private Timer.Context requestMatchedContext;
+         private Timer.Context responseFiltersStartContext;
+ 
+         public TimerRequestEventListener(final ConcurrentMap<EventTypeAndMethod, Timer> timers, final Clock clock) {
+             this.timers = timers;
+             this.clock = clock;
+             start = clock.getTick();
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             switch (event.getType()) {
+                 case RESOURCE_METHOD_START:
+                     resourceMethodStartContext = context(event);
+                     break;
+                 case REQUEST_MATCHED:
+                     requestMatchedContext = context(event);
+                     break;
+                 case RESP_FILTERS_START:
+                     responseFiltersStartContext = context(event);
+                     break;
+                 case RESOURCE_METHOD_FINISHED:
+                     if (resourceMethodStartContext != null) {
+                         resourceMethodStartContext.close();
+                     }
+                     break;
+                 case REQUEST_FILTERED:
+                     if (requestMatchedContext != null) {
+                         requestMatchedContext.close();
+                     }
+                     break;
+                 case RESP_FILTERS_FINISHED:
+                     if (responseFiltersStartContext != null) {
+                         responseFiltersStartContext.close();
+                     }
+                     break;
+                 case FINISHED:
+                     if (requestMatchedContext != null && responseFiltersStartContext != null) {
+                         final Timer timer = timer(event);
+                         if (timer != null) {
+                             timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);
+                         }
+                     }
+                     break;
+                 default:
+                     break;
+             }
+         }
+ 
+         private Timer timer(RequestEvent event) {
+             final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();
+             if (resourceMethod == null) {
+                 return null;
+             }
+             return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));
+         }
+ 
+         private Timer.Context context(RequestEvent event) {
+             final Timer timer = timer(event);
+             return timer != null ? timer.time() : null;
+         }
+     }
+ 
+     private static class MeterRequestEventListener implements RequestEventListener {
+         private final ConcurrentMap<Method, Meter> meters;
+ 
+         public MeterRequestEventListener(final ConcurrentMap<Method, Meter> meters) {
+             this.meters = meters;
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {
+                 final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());
+                 if (meter != null) {
+                     meter.mark();
+                 }
+             }
+         }
+     }
+ 
+     private static class ExceptionMeterRequestEventListener implements RequestEventListener {
+         private final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters;
+ 
+         public ExceptionMeterRequestEventListener(final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters) {
+             this.exceptionMeters = exceptionMeters;
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {
+                 final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();
+                 final ExceptionMeterMetric metric = (method != null) ?
+                         this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;
+ 
+                 if (metric != null) {
+                     if (metric.cause.isAssignableFrom(event.getException().getClass()) ||
+                             (event.getException().getCause() != null &&
+                                     metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {
+                         metric.meter.mark();
+                     }
+                 }
+             }
+         }
+     }
+ 
+     private static class ResponseMeterRequestEventListener implements RequestEventListener {
+         private final ConcurrentMap<Method, ResponseMeterMetric> responseMeters;
+ 
+         public ResponseMeterRequestEventListener(final ConcurrentMap<Method, ResponseMeterMetric> responseMeters) {
+             this.responseMeters = responseMeters;
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             if (event.getType() == RequestEvent.Type.FINISHED) {
+                 final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();
+                 final ResponseMeterMetric metric = (method != null) ?
+                         this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;
+ 
+                 if (metric != null) {
+                     ContainerResponse containerResponse = event.getContainerResponse();
+                     if (containerResponse == null && event.getException() != null) {
+                         metric.mark(500);
+                     } else if (containerResponse != null) {
+                         metric.mark(containerResponse.getStatus());
+                     }
+                 }
+             }
+         }
+     }
+ 
+     private static class ChainedRequestEventListener implements RequestEventListener {
+         private final RequestEventListener[] listeners;
+ 
+         private ChainedRequestEventListener(final RequestEventListener... listeners) {
+             this.listeners = listeners;
+         }
+ 
+         @Override
+         public void onEvent(final RequestEvent event) {
+             for (RequestEventListener listener : listeners) {
+                 listener.onEvent(event);
+             }
+         }
+     }
+ 
+     @Override
+     public void onEvent(ApplicationEvent event) {
+         if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {
+             registerMetricsForModel(event.getResourceModel());
+         }
+     }
+ 
+     @Override
+     public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
+         return resourceModel;
+     }
+ 
+     @Override
+     public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
+         registerMetricsForModel(subResourceModel);
+         return subResourceModel;
+     }
+ 
+     private void registerMetricsForModel(ResourceModel resourceModel) {
+         for (final Resource resource : resourceModel.getResources()) {
+ 
+             final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);
+             final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);
+             final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);
+             final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);
+ 
+             for (final ResourceMethod method : resource.getAllMethods()) {
+                 registerTimedAnnotations(method, classLevelTimed);
+                 registerMeteredAnnotations(method, classLevelMetered);
+                 registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);
+                 registerResponseMeteredAnnotations(method, classLevelResponseMetered);
+             }
+ 
+             for (final Resource childResource : resource.getChildResources()) {
+ 
+                 final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);
+                 final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);
+                 final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);
+                 final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);
+ 
+                 for (final ResourceMethod method : childResource.getAllMethods()) {
+                     registerTimedAnnotations(method, classLevelTimedChild);
+                     registerMeteredAnnotations(method, classLevelMeteredChild);
+                     registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);
+                     registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);
+                 }
+             }
+         }
+     }
+ 
+     @Override
+     public RequestEventListener onRequest(final RequestEvent event) {
+         final RequestEventListener listener = new ChainedRequestEventListener(
+                 new TimerRequestEventListener(timers, clock),
+                 new MeterRequestEventListener(meters),
+                 new ExceptionMeterRequestEventListener(exceptionMeters),
+                 new ResponseMeterRequestEventListener(responseMeters));
+ 
+         return listener;
+     }
+ 
+     private <T extends Annotation> T getClassLevelAnnotation(final Resource resource, final Class<T> annotationClazz) {
+         T annotation = null;
+ 
+         for (final Class<?> clazz : resource.getHandlerClasses()) {
+             annotation = clazz.getAnnotation(annotationClazz);
+ 
+             if (annotation != null) {
+                 break;
+             }
+         }
+         return annotation;
+     }
+ 
+     private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+         if (classLevelTimed != null) {
+             registerTimers(method, definitionMethod, classLevelTimed);
+             return;
+         }
+ 
+         final Timed annotation = definitionMethod.getAnnotation(Timed.class);
+         if (annotation != null) {
+             registerTimers(method, definitionMethod, annotation);
+         }
+     }
+ 
+     private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
+         timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));
+         if (trackFilters) {
+             timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));
+             timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));
+             timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));
+         }
+     }
+ 
+     private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+ 
+         if (classLevelMetered != null) {
+             meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));
+             return;
+         }
+         final Metered annotation = definitionMethod.getAnnotation(Metered.class);
+ 
+         if (annotation != null) {
+             meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));
+         }
+     }
+ 
+     private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+ 
+         if (classLevelExceptionMetered != null) {
+             exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));
+             return;
+         }
+         final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);
+ 
+         if (annotation != null) {
+             exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));
+         }
+     }
+ 
+     private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+ 
+         if (classLevelResponseMetered != null) {
+             responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));
+             return;
+         }
+         final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);
+ 
+         if (annotation != null) {
+             responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));
+         }
+     }
+ 
+     private Timer timerMetric(final MetricRegistry registry,
+                               final ResourceMethod method,
+                               final Timed timed,
+                               final String... suffixes) {
+         final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);
+         return registry.timer(name, () -> new Timer(reservoirSupplier.get(), clock));
+     }
+ 
+     private Meter meterMetric(final MetricRegistry registry,
+                               final ResourceMethod method,
+                               final Metered metered) {
+         final String name = chooseName(metered.name(), metered.absolute(), method);
+         return registry.meter(name, () -> new Meter(clock));
+     }
+ 
+     protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
+                                        final String... suffixes) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+         final String metricName;
+         if (explicitName != null && !explicitName.isEmpty()) {
+             metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);
+         } else {
+             metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());
+         }
+         return name(metricName, suffixes);
+     }
+ 
+     private static class EventTypeAndMethod {
+ 
+         private final RequestEvent.Type type;
+         private final Method method;
+ 
+         private EventTypeAndMethod(RequestEvent.Type type, Method method) {
+             this.type = type;
+             this.method = method;
+         }
+ 
+         static EventTypeAndMethod requestMethodStart(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);
+         }
+ 
+         static EventTypeAndMethod requestMatched(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);
+         }
+ 
+         static EventTypeAndMethod respFiltersStart(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);
+         }
+ 
+         static EventTypeAndMethod finished(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);
+         }
+ 
+         @Override
+         public boolean equals(Object o) {
+             if (this == o) {
+                 return true;
+             }
+             if (o == null || getClass() != o.getClass()) {
+                 return false;
+             }
+ 
+             EventTypeAndMethod that = (EventTypeAndMethod) o;
+ 
+             if (type != that.type) {
+                 return false;
+             }
+             return method.equals(that.method);
+         }
+ 
+         @Override
+         public int hashCode() {
+             int result = type.hashCode();
+             result = 31 * result + method.hashCode();
+             return result;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-13/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-13/sources/source-2.html new file mode 100644 index 0000000000..489a9cbf74 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-13/sources/source-2.html @@ -0,0 +1,201 @@ + + + + + + + + Coverage Report > MetricsFeature + + + + + + +
+ + +

Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey2)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+
+ + +
+ package com.codahale.metrics.jersey2;
+ 
+ import com.codahale.metrics.Clock;
+ import com.codahale.metrics.ExponentiallyDecayingReservoir;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Reservoir;
+ import com.codahale.metrics.SharedMetricRegistries;
+ 
+ import javax.ws.rs.core.Feature;
+ import javax.ws.rs.core.FeatureContext;
+ import java.util.function.Supplier;
+ 
+ /**
+  * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
+  * for recording request events.
+  */
+ public class MetricsFeature implements Feature {
+ 
+     private final MetricRegistry registry;
+     private final Clock clock;
+     private final boolean trackFilters;
+     private final Supplier<Reservoir> reservoirSupplier;
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      */
+     public MetricsFeature(MetricRegistry registry) {
+         this(registry, Clock.defaultClock());
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
+      */
+     public MetricsFeature(MetricRegistry registry, Supplier<Reservoir> reservoirSupplier) {
+         this(registry, Clock.defaultClock(), false, reservoirSupplier);
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      */
+     public MetricsFeature(MetricRegistry registry, Clock clock) {
+         this(registry, clock, false);
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters      whether the processing time for request and response filters should be tracked
+      */
+     public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
+         this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters      whether the processing time for request and response filters should be tracked
+      * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
+      */
+     public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier<Reservoir> reservoirSupplier) {
+         this.registry = registry;
+         this.clock = clock;
+         this.trackFilters = trackFilters;
+         this.reservoirSupplier = reservoirSupplier;
+     }
+ 
+     public MetricsFeature(String registryName) {
+         this(SharedMetricRegistries.getOrCreate(registryName));
+     }
+ 
+     /**
+      * A call-back method called when the feature is to be enabled in a given
+      * runtime configuration scope.
+      * <p>
+      * The responsibility of the feature is to properly update the supplied runtime configuration context
+      * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
+      * <p>
+      * Note that under some circumstances the feature may decide not to enable itself, which
+      * is indicated by returning {@code false}. In such case the configuration context does
+      * not add the feature to the collection of enabled features and a subsequent call to
+      * {@link javax.ws.rs.core.Configuration#isEnabled(javax.ws.rs.core.Feature)} or
+      * {@link javax.ws.rs.core.Configuration#isEnabled(Class)} method
+      * would return {@code false}.
+      * <p>
+      *
+      * @param context configurable context in which the feature should be enabled.
+      * @return {@code true} if the feature was successfully enabled, {@code false}
+      * otherwise.
+      */
+     @Override
+     public boolean configure(FeatureContext context) {
+         context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));
+         return true;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index.html b/metrics-complete-report-initial-htmlReport/ns-14/index.html new file mode 100644 index 0000000000..8d0c2e3133 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-14/index.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..b08a2b6c80 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..2f12673bda --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..98cd195f28 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..51c0d3c65c --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..f55cd4badd --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_LINE.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..7181335420 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..39757f9071 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..ba02ce8c8a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..e2d702939d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jersey3 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jersey3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jersey3 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.8% + + + (201/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-14/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-14/sources/source-1.html new file mode 100644 index 0000000000..a5c0c815a3 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-14/sources/source-1.html @@ -0,0 +1,832 @@ + + + + + + + + Coverage Report > InstrumentedResourceMethodApplicationListener + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey3)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 88.9% + + + (16/18) + + + + 92.1% + + + (82/89) + +
InstrumentedResourceMethodApplicationListener$1 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener + + 100% + + + (3/3) + + + + 100% + + + (5/5) + +
InstrumentedResourceMethodApplicationListener$EventTypeAndMethod + + 100% + + + (8/8) + + + + 84.2% + + + (16/19) + +
InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric + + 100% + + + (1/1) + + + + 100% + + + (5/5) + +
InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener + + 100% + + + (2/2) + + + + 100% + + + (11/11) + +
InstrumentedResourceMethodApplicationListener$MeterRequestEventListener + + 100% + + + (2/2) + + + + 100% + + + (6/6) + +
InstrumentedResourceMethodApplicationListener$ResponseMeterMetric + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener + + 100% + + + (2/2) + + + + 100% + + + (12/12) + +
InstrumentedResourceMethodApplicationListener$TimerRequestEventListener + + 100% + + + (4/4) + + + + 100% + + + (28/28) + +
Total + + 95.7% + + + (44/46) + + + + 95% + + + (190/200) + +
+ +
+
+ + +
+ package com.codahale.metrics.jersey3;
+ 
+ import com.codahale.metrics.Clock;
+ import com.codahale.metrics.ExponentiallyDecayingReservoir;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Reservoir;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ExceptionMetered;
+ import com.codahale.metrics.annotation.Metered;
+ import com.codahale.metrics.annotation.ResponseMetered;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import com.codahale.metrics.annotation.Timed;
+ import jakarta.ws.rs.core.Configuration;
+ import jakarta.ws.rs.ext.Provider;
+ import org.glassfish.jersey.server.ContainerResponse;
+ import org.glassfish.jersey.server.model.ModelProcessor;
+ import org.glassfish.jersey.server.model.Resource;
+ import org.glassfish.jersey.server.model.ResourceMethod;
+ import org.glassfish.jersey.server.model.ResourceModel;
+ import org.glassfish.jersey.server.monitoring.ApplicationEvent;
+ import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
+ import org.glassfish.jersey.server.monitoring.RequestEvent;
+ import org.glassfish.jersey.server.monitoring.RequestEventListener;
+ 
+ import java.lang.annotation.Annotation;
+ import java.lang.reflect.Method;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.EnumSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ import java.util.concurrent.TimeUnit;
+ import java.util.function.Supplier;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ 
+ 
+ /**
+  * An application event listener that listens for Jersey application initialization to
+  * be finished, then creates a map of resource method that have metrics annotations.
+  * <p>
+  * Finally, it listens for method start events, and returns a {@link RequestEventListener}
+  * that updates the relevant metric for suitably annotated methods when it gets the
+  * request events indicating that the method is about to be invoked, or just got done
+  * being invoked.
+  */
+ @Provider
+ public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
+ 
+     private static final String[] REQUEST_FILTERING = {"request", "filtering"};
+     private static final String[] RESPONSE_FILTERING = {"response", "filtering"};
+     private static final String TOTAL = "total";
+ 
+     private final MetricRegistry metrics;
+     private final ConcurrentMap<EventTypeAndMethod, Timer> timers = new ConcurrentHashMap<>();
+     private final ConcurrentMap<Method, Meter> meters = new ConcurrentHashMap<>();
+     private final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters = new ConcurrentHashMap<>();
+     private final ConcurrentMap<Method, ResponseMeterMetric> responseMeters = new ConcurrentHashMap<>();
+ 
+     private final Clock clock;
+     private final boolean trackFilters;
+     private final Supplier<Reservoir> reservoirSupplier;
+ 
+     /**
+      * Construct an application event listener using the given metrics registry.
+      * <p>
+      * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
+      * should be added to a Jersey {@code ResourceConfig} as a singleton.
+      *
+      * @param metrics a {@link MetricRegistry}
+      */
+     public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
+         this(metrics, Clock.defaultClock(), false);
+     }
+ 
+     /**
+      * Constructs a custom application listener.
+      *
+      * @param metrics      the metrics registry where the metrics will be stored
+      * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters whether the processing time for request and response filters should be tracked
+      */
+     public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
+                                                          final boolean trackFilters) {
+         this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);
+     }
+ 
+     /**
+      * Constructs a custom application listener.
+      *
+      * @param metrics           the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters      whether the processing time for request and response filters should be tracked
+      * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
+      */
+     public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
+                                                          final boolean trackFilters,
+                                                          final Supplier<Reservoir> reservoirSupplier) {
+         this.metrics = metrics;
+         this.clock = clock;
+         this.trackFilters = trackFilters;
+         this.reservoirSupplier = reservoirSupplier;
+     }
+ 
+     /**
+      * A private class to maintain the metric for a method annotated with the
+      * {@link ExceptionMetered} annotation, which needs to maintain both a meter
+      * and a cause for which the meter should be updated.
+      */
+     private static class ExceptionMeterMetric {
+         public final Meter meter;
+         public final Class<? extends Throwable> cause;
+ 
+         public ExceptionMeterMetric(final MetricRegistry registry,
+                                     final ResourceMethod method,
+                                     final ExceptionMetered exceptionMetered) {
+             final String name = chooseName(exceptionMetered.name(),
+                     exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);
+             this.meter = registry.meter(name);
+             this.cause = exceptionMetered.cause();
+         }
+     }
+ 
+     /**
+      * A private class to maintain the metrics for a method annotated with the
+      * {@link ResponseMetered} annotation, which needs to maintain meters for
+      * different response codes
+      */
+     private static class ResponseMeterMetric {
+         private static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+         private static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+         private final List<Meter> meters;
+         private final Map<Integer, Meter> responseCodeMeters;
+         private final MetricRegistry metricRegistry;
+         private final String metricName;
+         private final ResponseMeteredLevel level;
+ 
+         public ResponseMeterMetric(final MetricRegistry registry,
+                                    final ResourceMethod method,
+                                    final ResponseMetered responseMetered) {
+             this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);
+             this.level = responseMetered.level();
+             this.meters = COARSE_METER_LEVELS.contains(level) ?
+                     Collections.unmodifiableList(Arrays.asList(
+                             registry.meter(name(metricName, "1xx-responses")), // 1xx
+                             registry.meter(name(metricName, "2xx-responses")), // 2xx
+                             registry.meter(name(metricName, "3xx-responses")), // 3xx
+                             registry.meter(name(metricName, "4xx-responses")), // 4xx
+                             registry.meter(name(metricName, "5xx-responses"))  // 5xx
+                     )) : Collections.emptyList();
+             this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+             this.metricRegistry = registry;
+         }
+ 
+         public void mark(int statusCode) {
+             if (DETAILED_METER_LEVELS.contains(level)) {
+                 getResponseCodeMeter(statusCode).mark();
+             }
+ 
+             if (COARSE_METER_LEVELS.contains(level)) {
+                 final int responseStatus = statusCode / 100;
+                 if (responseStatus >= 1 && responseStatus <= 5) {
+                     meters.get(responseStatus - 1).mark();
+                 }
+             }
+         }
+ 
+         private Meter getResponseCodeMeter(int statusCode) {
+             return responseCodeMeters
+                     .computeIfAbsent(statusCode, sc -> metricRegistry
+                             .meter(name(metricName, String.format("%d-responses", sc))));
+         }
+     }
+ 
+     private static class TimerRequestEventListener implements RequestEventListener {
+ 
+         private final ConcurrentMap<EventTypeAndMethod, Timer> timers;
+         private final Clock clock;
+         private final long start;
+         private Timer.Context resourceMethodStartContext;
+         private Timer.Context requestMatchedContext;
+         private Timer.Context responseFiltersStartContext;
+ 
+         public TimerRequestEventListener(final ConcurrentMap<EventTypeAndMethod, Timer> timers, final Clock clock) {
+             this.timers = timers;
+             this.clock = clock;
+             start = clock.getTick();
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             switch (event.getType()) {
+                 case RESOURCE_METHOD_START:
+                     resourceMethodStartContext = context(event);
+                     break;
+                 case REQUEST_MATCHED:
+                     requestMatchedContext = context(event);
+                     break;
+                 case RESP_FILTERS_START:
+                     responseFiltersStartContext = context(event);
+                     break;
+                 case RESOURCE_METHOD_FINISHED:
+                     if (resourceMethodStartContext != null) {
+                         resourceMethodStartContext.close();
+                     }
+                     break;
+                 case REQUEST_FILTERED:
+                     if (requestMatchedContext != null) {
+                         requestMatchedContext.close();
+                     }
+                     break;
+                 case RESP_FILTERS_FINISHED:
+                     if (responseFiltersStartContext != null) {
+                         responseFiltersStartContext.close();
+                     }
+                     break;
+                 case FINISHED:
+                     if (requestMatchedContext != null && responseFiltersStartContext != null) {
+                         final Timer timer = timer(event);
+                         if (timer != null) {
+                             timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);
+                         }
+                     }
+                     break;
+                 default:
+                     break;
+             }
+         }
+ 
+         private Timer timer(RequestEvent event) {
+             final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();
+             if (resourceMethod == null) {
+                 return null;
+             }
+             return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));
+         }
+ 
+         private Timer.Context context(RequestEvent event) {
+             final Timer timer = timer(event);
+             return timer != null ? timer.time() : null;
+         }
+     }
+ 
+     private static class MeterRequestEventListener implements RequestEventListener {
+         private final ConcurrentMap<Method, Meter> meters;
+ 
+         public MeterRequestEventListener(final ConcurrentMap<Method, Meter> meters) {
+             this.meters = meters;
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {
+                 final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());
+                 if (meter != null) {
+                     meter.mark();
+                 }
+             }
+         }
+     }
+ 
+     private static class ExceptionMeterRequestEventListener implements RequestEventListener {
+         private final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters;
+ 
+         public ExceptionMeterRequestEventListener(final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters) {
+             this.exceptionMeters = exceptionMeters;
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {
+                 final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();
+                 final ExceptionMeterMetric metric = (method != null) ?
+                         this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;
+ 
+                 if (metric != null) {
+                     if (metric.cause.isAssignableFrom(event.getException().getClass()) ||
+                             (event.getException().getCause() != null &&
+                                     metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {
+                         metric.meter.mark();
+                     }
+                 }
+             }
+         }
+     }
+ 
+     private static class ResponseMeterRequestEventListener implements RequestEventListener {
+         private final ConcurrentMap<Method, ResponseMeterMetric> responseMeters;
+ 
+         public ResponseMeterRequestEventListener(final ConcurrentMap<Method, ResponseMeterMetric> responseMeters) {
+             this.responseMeters = responseMeters;
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             if (event.getType() == RequestEvent.Type.FINISHED) {
+                 final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();
+                 final ResponseMeterMetric metric = (method != null) ?
+                         this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;
+ 
+                 if (metric != null) {
+                     ContainerResponse containerResponse = event.getContainerResponse();
+                     if (containerResponse == null && event.getException() != null) {
+                         metric.mark(500);
+                     } else if (containerResponse != null) {
+                         metric.mark(containerResponse.getStatus());
+                     }
+                 }
+             }
+         }
+     }
+ 
+     private static class ChainedRequestEventListener implements RequestEventListener {
+         private final RequestEventListener[] listeners;
+ 
+         private ChainedRequestEventListener(final RequestEventListener... listeners) {
+             this.listeners = listeners;
+         }
+ 
+         @Override
+         public void onEvent(final RequestEvent event) {
+             for (RequestEventListener listener : listeners) {
+                 listener.onEvent(event);
+             }
+         }
+     }
+ 
+     @Override
+     public void onEvent(ApplicationEvent event) {
+         if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {
+             registerMetricsForModel(event.getResourceModel());
+         }
+     }
+ 
+     @Override
+     public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
+         return resourceModel;
+     }
+ 
+     @Override
+     public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
+         registerMetricsForModel(subResourceModel);
+         return subResourceModel;
+     }
+ 
+     private void registerMetricsForModel(ResourceModel resourceModel) {
+         for (final Resource resource : resourceModel.getResources()) {
+ 
+             final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);
+             final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);
+             final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);
+             final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);
+ 
+             for (final ResourceMethod method : resource.getAllMethods()) {
+                 registerTimedAnnotations(method, classLevelTimed);
+                 registerMeteredAnnotations(method, classLevelMetered);
+                 registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);
+                 registerResponseMeteredAnnotations(method, classLevelResponseMetered);
+             }
+ 
+             for (final Resource childResource : resource.getChildResources()) {
+ 
+                 final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);
+                 final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);
+                 final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);
+                 final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);
+ 
+                 for (final ResourceMethod method : childResource.getAllMethods()) {
+                     registerTimedAnnotations(method, classLevelTimedChild);
+                     registerMeteredAnnotations(method, classLevelMeteredChild);
+                     registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);
+                     registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);
+                 }
+             }
+         }
+     }
+ 
+     @Override
+     public RequestEventListener onRequest(final RequestEvent event) {
+         final RequestEventListener listener = new ChainedRequestEventListener(
+                 new TimerRequestEventListener(timers, clock),
+                 new MeterRequestEventListener(meters),
+                 new ExceptionMeterRequestEventListener(exceptionMeters),
+                 new ResponseMeterRequestEventListener(responseMeters));
+ 
+         return listener;
+     }
+ 
+     private <T extends Annotation> T getClassLevelAnnotation(final Resource resource, final Class<T> annotationClazz) {
+         T annotation = null;
+ 
+         for (final Class<?> clazz : resource.getHandlerClasses()) {
+             annotation = clazz.getAnnotation(annotationClazz);
+ 
+             if (annotation != null) {
+                 break;
+             }
+         }
+         return annotation;
+     }
+ 
+     private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+         if (classLevelTimed != null) {
+             registerTimers(method, definitionMethod, classLevelTimed);
+             return;
+         }
+ 
+         final Timed annotation = definitionMethod.getAnnotation(Timed.class);
+         if (annotation != null) {
+             registerTimers(method, definitionMethod, annotation);
+         }
+     }
+ 
+     private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
+         timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));
+         if (trackFilters) {
+             timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));
+             timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));
+             timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));
+         }
+     }
+ 
+     private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+ 
+         if (classLevelMetered != null) {
+             meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));
+             return;
+         }
+         final Metered annotation = definitionMethod.getAnnotation(Metered.class);
+ 
+         if (annotation != null) {
+             meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));
+         }
+     }
+ 
+     private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+ 
+         if (classLevelExceptionMetered != null) {
+             exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));
+             return;
+         }
+         final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);
+ 
+         if (annotation != null) {
+             exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));
+         }
+     }
+ 
+     private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+ 
+         if (classLevelResponseMetered != null) {
+             responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));
+             return;
+         }
+         final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);
+ 
+         if (annotation != null) {
+             responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));
+         }
+     }
+ 
+     private Timer timerMetric(final MetricRegistry registry,
+                               final ResourceMethod method,
+                               final Timed timed,
+                               final String... suffixes) {
+         final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);
+         return registry.timer(name, () -> new Timer(reservoirSupplier.get(), clock));
+     }
+ 
+     private Meter meterMetric(final MetricRegistry registry,
+                               final ResourceMethod method,
+                               final Metered metered) {
+         final String name = chooseName(metered.name(), metered.absolute(), method);
+         return registry.meter(name, () -> new Meter(clock));
+     }
+ 
+     protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
+                                        final String... suffixes) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+         final String metricName;
+         if (explicitName != null && !explicitName.isEmpty()) {
+             metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);
+         } else {
+             metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());
+         }
+         return name(metricName, suffixes);
+     }
+ 
+     private static class EventTypeAndMethod {
+ 
+         private final RequestEvent.Type type;
+         private final Method method;
+ 
+         private EventTypeAndMethod(RequestEvent.Type type, Method method) {
+             this.type = type;
+             this.method = method;
+         }
+ 
+         static EventTypeAndMethod requestMethodStart(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);
+         }
+ 
+         static EventTypeAndMethod requestMatched(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);
+         }
+ 
+         static EventTypeAndMethod respFiltersStart(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);
+         }
+ 
+         static EventTypeAndMethod finished(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);
+         }
+ 
+         @Override
+         public boolean equals(Object o) {
+             if (this == o) {
+                 return true;
+             }
+             if (o == null || getClass() != o.getClass()) {
+                 return false;
+             }
+ 
+             EventTypeAndMethod that = (EventTypeAndMethod) o;
+ 
+             if (type != that.type) {
+                 return false;
+             }
+             return method.equals(that.method);
+         }
+ 
+         @Override
+         public int hashCode() {
+             int result = type.hashCode();
+             result = 31 * result + method.hashCode();
+             return result;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-14/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-14/sources/source-2.html new file mode 100644 index 0000000000..987b3fbcad --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-14/sources/source-2.html @@ -0,0 +1,201 @@ + + + + + + + + Coverage Report > MetricsFeature + + + + + + +
+ + +

Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey3)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+
+ + +
+ package com.codahale.metrics.jersey3;
+ 
+ import com.codahale.metrics.Clock;
+ import com.codahale.metrics.ExponentiallyDecayingReservoir;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Reservoir;
+ import com.codahale.metrics.SharedMetricRegistries;
+ import jakarta.ws.rs.core.Feature;
+ import jakarta.ws.rs.core.FeatureContext;
+ 
+ import java.util.function.Supplier;
+ 
+ /**
+  * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
+  * for recording request events.
+  */
+ public class MetricsFeature implements Feature {
+ 
+     private final MetricRegistry registry;
+     private final Clock clock;
+     private final boolean trackFilters;
+     private final Supplier<Reservoir> reservoirSupplier;
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      */
+     public MetricsFeature(MetricRegistry registry) {
+         this(registry, Clock.defaultClock());
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
+      */
+     public MetricsFeature(MetricRegistry registry, Supplier<Reservoir> reservoirSupplier) {
+         this(registry, Clock.defaultClock(), false, reservoirSupplier);
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      */
+     public MetricsFeature(MetricRegistry registry, Clock clock) {
+         this(registry, clock, false);
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters      whether the processing time for request and response filters should be tracked
+      */
+     public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
+         this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters      whether the processing time for request and response filters should be tracked
+      * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
+      */
+     public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier<Reservoir> reservoirSupplier) {
+         this.registry = registry;
+         this.clock = clock;
+         this.trackFilters = trackFilters;
+         this.reservoirSupplier = reservoirSupplier;
+     }
+ 
+     public MetricsFeature(String registryName) {
+         this(SharedMetricRegistries.getOrCreate(registryName));
+     }
+ 
+     /**
+      * A call-back method called when the feature is to be enabled in a given
+      * runtime configuration scope.
+      * <p>
+      * The responsibility of the feature is to properly update the supplied runtime configuration context
+      * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
+      * <p>
+      * Note that under some circumstances the feature may decide not to enable itself, which
+      * is indicated by returning {@code false}. In such case the configuration context does
+      * not add the feature to the collection of enabled features and a subsequent call to
+      * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
+      * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
+      * would return {@code false}.
+      * <p>
+      *
+      * @param context configurable context in which the feature should be enabled.
+      * @return {@code true} if the feature was successfully enabled, {@code false}
+      * otherwise.
+      */
+     @Override
+     public boolean configure(FeatureContext context) {
+         context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));
+         return true;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index.html b/metrics-complete-report-initial-htmlReport/ns-15/index.html new file mode 100644 index 0000000000..8b25c6af87 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-15/index.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.4% + + + (123/170) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + 81.8% + + + (27/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..442ffefe43 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.4% + + + (123/170) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + 81.8% + + + (27/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..f91995803d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + 81.8% + + + (27/33) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.4% + + + (123/170) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..7f1c35cd50 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.4% + + + (123/170) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + 81.8% + + + (27/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..f094740882 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + 81.8% + + + (27/33) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.4% + + + (123/170) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..1a555a5661 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_LINE.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.4% + + + (123/170) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + 81.8% + + + (27/33) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..c7239d667b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + 81.8% + + + (27/33) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.4% + + + (123/170) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..93b38c2414 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.4% + + + (123/170) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + 81.8% + + + (27/33) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..2df814d10a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + 81.8% + + + (27/33) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.4% + + + (123/170) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..197285307f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > com.codahale.metrics.jetty9 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jetty9

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jetty9 + + 96.2% + + + (25/26) + + + + 62.9% + + + (73/116) + + + + 75.1% + + + (275/366) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 72.2% + + + (13/18) + + + + 81.8% + + + (27/33) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.4% + + + (123/170) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-15/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-15/sources/source-1.html new file mode 100644 index 0000000000..db602ae8f6 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-15/sources/source-1.html @@ -0,0 +1,193 @@ + + + + + + + + Coverage Report > InstrumentedConnectionFactory + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedConnectionFactory (com.codahale.metrics.jetty9)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedConnectionFactory + + 83.3% + + + (5/6) + + + + 91.7% + + + (11/12) + +
InstrumentedConnectionFactory$1 + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
Total + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+
+ + +
+ package com.codahale.metrics.jetty9;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Timer;
+ import org.eclipse.jetty.io.Connection;
+ import org.eclipse.jetty.io.EndPoint;
+ import org.eclipse.jetty.server.ConnectionFactory;
+ import org.eclipse.jetty.server.Connector;
+ import org.eclipse.jetty.util.component.ContainerLifeCycle;
+ 
+ import java.util.List;
+ 
+ public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {
+     private final ConnectionFactory connectionFactory;
+     private final Timer timer;
+     private final Counter counter;
+ 
+     public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
+         this(connectionFactory, timer, null);
+     }
+ 
+     public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {
+         this.connectionFactory = connectionFactory;
+         this.timer = timer;
+         this.counter = counter;
+         addBean(connectionFactory);
+     }
+ 
+     @Override
+     public String getProtocol() {
+         return connectionFactory.getProtocol();
+     }
+ 
+     @Override
+     public List<String> getProtocols() {
+         return connectionFactory.getProtocols();
+     }
+ 
+     @Override
+     public Connection newConnection(Connector connector, EndPoint endPoint) {
+         final Connection connection = connectionFactory.newConnection(connector, endPoint);
+         connection.addListener(new Connection.Listener() {
+             private Timer.Context context;
+ 
+             @Override
+             public void onOpened(Connection connection) {
+                 this.context = timer.time();
+                 if (counter != null) {
+                     counter.inc();
+                 }
+             }
+ 
+             @Override
+             public void onClosed(Connection connection) {
+                 context.stop();
+                 if (counter != null) {
+                     counter.dec();
+                 }
+             }
+         });
+         return connection;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-15/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-15/sources/source-2.html new file mode 100644 index 0000000000..ba9617decb --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-15/sources/source-2.html @@ -0,0 +1,734 @@ + + + + + + + + Coverage Report > InstrumentedHandler + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHandler (com.codahale.metrics.jetty9)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedHandler + + 81.2% + + + (13/16) + + + + 85.2% + + + (115/135) + +
InstrumentedHandler$1 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$2 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$4 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$5 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$6 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$7 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
InstrumentedHandler$AsyncAttachingListener + + 20% + + + (1/5) + + + + 20% + + + (1/5) + +
InstrumentedHandler$InstrumentedAsyncListener + + 0% + + + (0/5) + + + + 0% + + + (0/11) + +
Total + + 53.8% + + + (21/39) + + + + 72.4% + + + (123/170) + +
+ +
+
+ + +
+ package com.codahale.metrics.jetty9;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import org.eclipse.jetty.http.HttpMethod;
+ import org.eclipse.jetty.server.AsyncContextState;
+ import org.eclipse.jetty.server.Handler;
+ import org.eclipse.jetty.server.HttpChannelState;
+ import org.eclipse.jetty.server.Request;
+ import org.eclipse.jetty.server.handler.HandlerWrapper;
+ 
+ import javax.servlet.AsyncEvent;
+ import javax.servlet.AsyncListener;
+ import javax.servlet.ServletException;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ import java.io.IOException;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.EnumSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ 
+ /**
+  * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
+  * instance.
+  */
+ public class InstrumentedHandler extends HandlerWrapper {
+     private static final String NAME_REQUESTS = "requests";
+     private static final String NAME_DISPATCHES = "dispatches";
+     private static final String NAME_ACTIVE_REQUESTS = "active-requests";
+     private static final String NAME_ACTIVE_DISPATCHES = "active-dispatches";
+     private static final String NAME_ACTIVE_SUSPENDED = "active-suspended";
+     private static final String NAME_ASYNC_DISPATCHES = "async-dispatches";
+     private static final String NAME_ASYNC_TIMEOUTS = "async-timeouts";
+     private static final String NAME_1XX_RESPONSES = "1xx-responses";
+     private static final String NAME_2XX_RESPONSES = "2xx-responses";
+     private static final String NAME_3XX_RESPONSES = "3xx-responses";
+     private static final String NAME_4XX_RESPONSES = "4xx-responses";
+     private static final String NAME_5XX_RESPONSES = "5xx-responses";
+     private static final String NAME_GET_REQUESTS = "get-requests";
+     private static final String NAME_POST_REQUESTS = "post-requests";
+     private static final String NAME_HEAD_REQUESTS = "head-requests";
+     private static final String NAME_PUT_REQUESTS = "put-requests";
+     private static final String NAME_DELETE_REQUESTS = "delete-requests";
+     private static final String NAME_OPTIONS_REQUESTS = "options-requests";
+     private static final String NAME_TRACE_REQUESTS = "trace-requests";
+     private static final String NAME_CONNECT_REQUESTS = "connect-requests";
+     private static final String NAME_MOVE_REQUESTS = "move-requests";
+     private static final String NAME_OTHER_REQUESTS = "other-requests";
+     private static final String NAME_PERCENT_4XX_1M = "percent-4xx-1m";
+     private static final String NAME_PERCENT_4XX_5M = "percent-4xx-5m";
+     private static final String NAME_PERCENT_4XX_15M = "percent-4xx-15m";
+     private static final String NAME_PERCENT_5XX_1M = "percent-5xx-1m";
+     private static final String NAME_PERCENT_5XX_5M = "percent-5xx-5m";
+     private static final String NAME_PERCENT_5XX_15M = "percent-5xx-15m";
+     private static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+     private static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+ 
+     private final MetricRegistry metricRegistry;
+ 
+     private String name;
+     private final String prefix;
+ 
+     // the requests handled by this handler, excluding active
+     private Timer requests;
+ 
+     // the number of dispatches seen by this handler, excluding active
+     private Timer dispatches;
+ 
+     // the number of active requests
+     private Counter activeRequests;
+ 
+     // the number of active dispatches
+     private Counter activeDispatches;
+ 
+     // the number of requests currently suspended.
+     private Counter activeSuspended;
+ 
+     // the number of requests that have been asynchronously dispatched
+     private Meter asyncDispatches;
+ 
+     // the number of requests that expired while suspended
+     private Meter asyncTimeouts;
+ 
+     private final ResponseMeteredLevel responseMeteredLevel;
+     private List<Meter> responses;
+     private Map<Integer, Meter> responseCodeMeters;
+ 
+     private Timer getRequests;
+     private Timer postRequests;
+     private Timer headRequests;
+     private Timer putRequests;
+     private Timer deleteRequests;
+     private Timer optionsRequests;
+     private Timer traceRequests;
+     private Timer connectRequests;
+     private Timer moveRequests;
+     private Timer otherRequests;
+ 
+     private AsyncListener listener;
+ 
+     private HttpChannelState.State DISPATCHED_HACK;
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      */
+     public InstrumentedHandler(MetricRegistry registry) {
+         this(registry, null);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      */
+     public InstrumentedHandler(MetricRegistry registry, String prefix) {
+         this(registry, prefix, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
+      */
+     public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {
+         this.metricRegistry = registry;
+         this.prefix = prefix;
+         this.responseMeteredLevel = responseMeteredLevel;
+ 
+         try {
+             DISPATCHED_HACK = HttpChannelState.State.valueOf("HANDLING");
+         } catch (IllegalArgumentException e) {
+             DISPATCHED_HACK = HttpChannelState.State.valueOf("DISPATCHED");
+         }
+     }
+ 
+     public String getName() {
+         return name;
+     }
+ 
+     public void setName(String name) {
+         this.name = name;
+     }
+ 
+     @Override
+     protected void doStart() throws Exception {
+         super.doStart();
+ 
+         final String prefix = getMetricPrefix();
+ 
+         this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));
+         this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));
+ 
+         this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));
+         this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));
+         this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));
+ 
+         this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));
+         this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));
+ 
+         this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+ 
+         this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));
+         this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));
+         this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));
+         this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));
+         this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));
+         this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));
+         this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));
+         this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));
+         this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));
+         this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             this.responses = Collections.unmodifiableList(Arrays.asList(
+                     metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx
+                     metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx
+                     metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx
+                     metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx
+                     metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx
+             ));
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getOneMinuteRate(),
+                             requests.getOneMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getFiveMinuteRate(),
+                             requests.getFiveMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getFifteenMinuteRate(),
+                             requests.getFifteenMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getOneMinuteRate(),
+                             requests.getOneMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getFiveMinuteRate(),
+                             requests.getFiveMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {
+                 @Override
+                 public Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getFifteenMinuteRate(),
+                             requests.getFifteenMinuteRate());
+                 }
+             });
+         } else {
+             this.responses = Collections.emptyList();
+         }
+ 
+ 
+         this.listener = new AsyncAttachingListener();
+     }
+ 
+     @Override
+     protected void doStop() throws Exception {
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.remove(name(prefix, NAME_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));
+         metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));
+         metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));
+ 
+         if (responseCodeMeters != null) {
+             responseCodeMeters.keySet().stream()
+                     .map(sc -> name(getMetricPrefix(), String.format("%d-responses", sc)))
+                     .forEach(metricRegistry::remove);
+         }
+         super.doStop();
+     }
+ 
+     @Override
+     public void handle(String path,
+                        Request request,
+                        HttpServletRequest httpRequest,
+                        HttpServletResponse httpResponse) throws IOException, ServletException {
+ 
+         activeDispatches.inc();
+ 
+         final long start;
+         final HttpChannelState state = request.getHttpChannelState();
+         if (state.isInitial()) {
+             // new request
+             activeRequests.inc();
+             start = request.getTimeStamp();
+             state.addListener(listener);
+         } else {
+             // resumed request
+             start = System.currentTimeMillis();
+             activeSuspended.dec();
+             if (state.getState() == DISPATCHED_HACK) {
+                 asyncDispatches.mark();
+             }
+         }
+ 
+         try {
+             super.handle(path, request, httpRequest, httpResponse);
+         } finally {
+             final long now = System.currentTimeMillis();
+             final long dispatched = now - start;
+ 
+             activeDispatches.dec();
+             dispatches.update(dispatched, TimeUnit.MILLISECONDS);
+ 
+             if (state.isSuspended()) {
+                 activeSuspended.inc();
+             } else if (state.isInitial()) {
+                 updateResponses(httpRequest, httpResponse, start, request.isHandled());
+             }
+             // else onCompletion will handle it.
+         }
+     }
+ 
+     private Timer requestTimer(String method) {
+         final HttpMethod m = HttpMethod.fromString(method);
+         if (m == null) {
+             return otherRequests;
+         } else {
+             switch (m) {
+                 case GET:
+                     return getRequests;
+                 case POST:
+                     return postRequests;
+                 case PUT:
+                     return putRequests;
+                 case HEAD:
+                     return headRequests;
+                 case DELETE:
+                     return deleteRequests;
+                 case OPTIONS:
+                     return optionsRequests;
+                 case TRACE:
+                     return traceRequests;
+                 case CONNECT:
+                     return connectRequests;
+                 case MOVE:
+                     return moveRequests;
+                 default:
+                     return otherRequests;
+             }
+         }
+     }
+ 
+     private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
+         if (isHandled) {
+             mark(response.getStatus());
+         } else {
+             mark(404);; // will end up with a 404 response sent by HttpChannel.handle
+         }
+         activeRequests.dec();
+         final long elapsedTime = System.currentTimeMillis() - start;
+         requests.update(elapsedTime, TimeUnit.MILLISECONDS);
+         requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);
+     }
+ 
+     private void mark(int statusCode) {
+         if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {
+             getResponseCodeMeter(statusCode).mark();
+         }
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             final int responseStatus = statusCode / 100;
+             if (responseStatus >= 1 && responseStatus <= 5) {
+                 responses.get(responseStatus - 1).mark();
+             }
+         }
+     }
+ 
+     private Meter getResponseCodeMeter(int statusCode) {
+         return responseCodeMeters
+                 .computeIfAbsent(statusCode, sc -> metricRegistry
+                         .meter(name(getMetricPrefix(), String.format("%d-responses", sc))));
+     }
+ 
+     private String getMetricPrefix() {
+         return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);
+     }
+ 
+     private class AsyncAttachingListener implements AsyncListener {
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+             event.getAsyncContext().addListener(new InstrumentedAsyncListener());
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {}
+     };
+ 
+     private class InstrumentedAsyncListener implements AsyncListener {
+         private final long startTime;
+ 
+         InstrumentedAsyncListener() {
+             this.startTime = System.currentTimeMillis();
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             asyncTimeouts.mark();
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             final AsyncContextState state = (AsyncContextState) event.getAsyncContext();
+             final HttpServletRequest request = (HttpServletRequest) state.getRequest();
+             final HttpServletResponse response = (HttpServletResponse) state.getResponse();
+             updateResponses(request, response, startTime, true);
+             if (!state.getHttpChannelState().isSuspended()) {
+                 activeSuspended.dec();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-15/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-15/sources/source-3.html new file mode 100644 index 0000000000..d01a7ca180 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-15/sources/source-3.html @@ -0,0 +1,708 @@ + + + + + + + + Coverage Report > InstrumentedHttpChannelListener + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpChannelListener (com.codahale.metrics.jetty9)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedHttpChannelListener + + 74.1% + + + (20/27) + + + + 82.6% + + + (90/109) + +
InstrumentedHttpChannelListener$1 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$2 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$4 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$5 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$6 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$7 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
InstrumentedHttpChannelListener$AsyncAttachingListener + + 40% + + + (2/5) + + + + 40% + + + (2/5) + +
InstrumentedHttpChannelListener$InstrumentedAsyncListener + + 40% + + + (2/5) + + + + 72.7% + + + (8/11) + +
Total + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
+ +
+
+ + +
+ package com.codahale.metrics.jetty9;
+ 
+ import java.io.IOException;
+ import java.nio.ByteBuffer;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.EnumSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.TimeUnit;
+ 
+ import javax.servlet.AsyncEvent;
+ import javax.servlet.AsyncListener;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import org.eclipse.jetty.http.HttpMethod;
+ import org.eclipse.jetty.server.AsyncContextState;
+ import org.eclipse.jetty.server.HttpChannel.Listener;
+ import org.eclipse.jetty.server.HttpChannelState;
+ import org.eclipse.jetty.server.Request;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ 
+ /**
+  * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
+  * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
+  * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
+  *
+  * @since TBD
+  */
+ public class InstrumentedHttpChannelListener
+     implements Listener
+ {
+     private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + ".start";
+     private static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+     private static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+ 
+     private final MetricRegistry metricRegistry;
+ 
+     // the requests handled by this handler, excluding active
+     private final Timer requests;
+ 
+     // the number of dispatches seen by this handler, excluding active
+     private final Timer dispatches;
+ 
+     // the number of active requests
+     private final Counter activeRequests;
+ 
+     // the number of active dispatches
+     private final Counter activeDispatches;
+ 
+     // the number of requests currently suspended.
+     private final Counter activeSuspended;
+ 
+     // the number of requests that have been asynchronously dispatched
+     private final Meter asyncDispatches;
+ 
+     // the number of requests that expired while suspended
+     private final Meter asyncTimeouts;
+ 
+     private final ResponseMeteredLevel responseMeteredLevel;
+     private final List<Meter> responses;
+     private final Map<Integer, Meter> responseCodeMeters;
+     private final String prefix;
+     private final Timer getRequests;
+     private final Timer postRequests;
+     private final Timer headRequests;
+     private final Timer putRequests;
+     private final Timer deleteRequests;
+     private final Timer optionsRequests;
+     private final Timer traceRequests;
+     private final Timer connectRequests;
+     private final Timer moveRequests;
+     private final Timer otherRequests;
+ 
+     private final AsyncListener listener;
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      */
+     public InstrumentedHttpChannelListener(MetricRegistry registry) {
+         this(registry, null, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param pref     the prefix to use for the metrics names
+      */
+     public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
+         this(registry, pref, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param pref     the prefix to use for the metrics names
+      * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
+      */
+     public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {
+         this.metricRegistry = registry;
+ 
+         this.prefix = (pref == null) ? getClass().getName() : pref;
+ 
+         this.requests = metricRegistry.timer(name(prefix, "requests"));
+         this.dispatches = metricRegistry.timer(name(prefix, "dispatches"));
+ 
+         this.activeRequests = metricRegistry.counter(name(prefix, "active-requests"));
+         this.activeDispatches = metricRegistry.counter(name(prefix, "active-dispatches"));
+         this.activeSuspended = metricRegistry.counter(name(prefix, "active-suspended"));
+ 
+         this.asyncDispatches = metricRegistry.meter(name(prefix, "async-dispatches"));
+         this.asyncTimeouts = metricRegistry.meter(name(prefix, "async-timeouts"));
+ 
+         this.responseMeteredLevel = responseMeteredLevel;
+         this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+         this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?
+                 Collections.unmodifiableList(Arrays.asList(
+                         registry.meter(name(prefix, "1xx-responses")), // 1xx
+                         registry.meter(name(prefix, "2xx-responses")), // 2xx
+                         registry.meter(name(prefix, "3xx-responses")), // 3xx
+                         registry.meter(name(prefix, "4xx-responses")), // 4xx
+                         registry.meter(name(prefix, "5xx-responses"))  // 5xx
+                 )) : Collections.emptyList();
+ 
+         this.getRequests = metricRegistry.timer(name(prefix, "get-requests"));
+         this.postRequests = metricRegistry.timer(name(prefix, "post-requests"));
+         this.headRequests = metricRegistry.timer(name(prefix, "head-requests"));
+         this.putRequests = metricRegistry.timer(name(prefix, "put-requests"));
+         this.deleteRequests = metricRegistry.timer(name(prefix, "delete-requests"));
+         this.optionsRequests = metricRegistry.timer(name(prefix, "options-requests"));
+         this.traceRequests = metricRegistry.timer(name(prefix, "trace-requests"));
+         this.connectRequests = metricRegistry.timer(name(prefix, "connect-requests"));
+         this.moveRequests = metricRegistry.timer(name(prefix, "move-requests"));
+         this.otherRequests = metricRegistry.timer(name(prefix, "other-requests"));
+ 
+         metricRegistry.register(name(prefix, "percent-4xx-1m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(3).getOneMinuteRate(),
+                     requests.getOneMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-4xx-5m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(3).getFiveMinuteRate(),
+                     requests.getFiveMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-4xx-15m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(3).getFifteenMinuteRate(),
+                     requests.getFifteenMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-5xx-1m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(4).getOneMinuteRate(),
+                     requests.getOneMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-5xx-5m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(4).getFiveMinuteRate(),
+                     requests.getFiveMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-5xx-15m"), new RatioGauge() {
+             @Override
+             public Ratio getRatio() {
+                 return Ratio.of(responses.get(4).getFifteenMinuteRate(),
+                     requests.getFifteenMinuteRate());
+             }
+         });
+ 
+         this.listener = new AsyncAttachingListener();
+     }
+ 
+     @Override
+     public void onRequestBegin(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onBeforeDispatch(final Request request) {
+         before(request);
+     }
+ 
+     @Override
+     public void onDispatchFailure(final Request request, final Throwable failure) {
+ 
+     }
+ 
+     @Override
+     public void onAfterDispatch(final Request request) {
+         after(request);
+     }
+ 
+     @Override
+     public void onRequestContent(final Request request, final ByteBuffer content) {
+ 
+     }
+ 
+     @Override
+     public void onRequestContentEnd(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onRequestTrailers(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onRequestEnd(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onRequestFailure(final Request request, final Throwable failure) {
+ 
+     }
+ 
+     @Override
+     public void onResponseBegin(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onResponseCommit(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onResponseContent(final Request request, final ByteBuffer content) {
+ 
+     }
+ 
+     @Override
+     public void onResponseEnd(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onResponseFailure(final Request request, final Throwable failure) {
+ 
+     }
+ 
+     @Override
+     public void onComplete(final Request request) {
+ 
+     }
+ 
+     private void before(final Request request) {
+         activeDispatches.inc();
+ 
+         final long start;
+         final HttpChannelState state = request.getHttpChannelState();
+         if (state.isInitial()) {
+             // new request
+             activeRequests.inc();
+             start = request.getTimeStamp();
+             state.addListener(listener);
+         } else {
+             // resumed request
+             start = System.currentTimeMillis();
+             activeSuspended.dec();
+             if (state.isAsyncStarted()) {
+                 asyncDispatches.mark();
+             }
+         }
+         request.setAttribute(START_ATTR, start);
+     }
+ 
+     private void after(final Request request) {
+         final long start = (long) request.getAttribute(START_ATTR);
+         final long now = System.currentTimeMillis();
+         final long dispatched = now - start;
+ 
+         activeDispatches.dec();
+         dispatches.update(dispatched, TimeUnit.MILLISECONDS);
+ 
+         final HttpChannelState state = request.getHttpChannelState();
+         if (state.isSuspended()) {
+             activeSuspended.inc();
+         } else if (state.isInitial()) {
+             updateResponses(request, request.getResponse(), start, request.isHandled());
+         }
+         // else onCompletion will handle it.
+     }
+ 
+     private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
+         if (isHandled) {
+             mark(response.getStatus());
+         } else {
+             mark(404); // will end up with a 404 response sent by HttpChannel.handle
+         }
+         activeRequests.dec();
+         final long elapsedTime = System.currentTimeMillis() - start;
+         requests.update(elapsedTime, TimeUnit.MILLISECONDS);
+         requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);
+     }
+ 
+     private void mark(int statusCode) {
+         if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {
+             getResponseCodeMeter(statusCode).mark();
+         }
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             final int responseStatus = statusCode / 100;
+             if (responseStatus >= 1 && responseStatus <= 5) {
+                 responses.get(responseStatus - 1).mark();
+             }
+         }
+     }
+ 
+     private Meter getResponseCodeMeter(int statusCode) {
+         return responseCodeMeters
+                 .computeIfAbsent(statusCode, sc -> metricRegistry
+                         .meter(name(prefix, String.format("%d-responses", sc))));
+     }
+ 
+     private Timer requestTimer(String method) {
+         final HttpMethod m = HttpMethod.fromString(method);
+         if (m == null) {
+             return otherRequests;
+         } else {
+             switch (m) {
+                 case GET:
+                     return getRequests;
+                 case POST:
+                     return postRequests;
+                 case PUT:
+                     return putRequests;
+                 case HEAD:
+                     return headRequests;
+                 case DELETE:
+                     return deleteRequests;
+                 case OPTIONS:
+                     return optionsRequests;
+                 case TRACE:
+                     return traceRequests;
+                 case CONNECT:
+                     return connectRequests;
+                 case MOVE:
+                     return moveRequests;
+                 default:
+                     return otherRequests;
+             }
+         }
+     }
+ 
+     private class AsyncAttachingListener implements AsyncListener {
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+             event.getAsyncContext().addListener(new InstrumentedAsyncListener());
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {}
+     };
+ 
+     private class InstrumentedAsyncListener implements AsyncListener {
+         private final long startTime;
+ 
+         InstrumentedAsyncListener() {
+             this.startTime = System.currentTimeMillis();
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             asyncTimeouts.mark();
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             final AsyncContextState state = (AsyncContextState) event.getAsyncContext();
+             final HttpServletRequest request = (HttpServletRequest) state.getRequest();
+             final HttpServletResponse response = (HttpServletResponse) state.getResponse();
+             updateResponses(request, response, startTime, true);
+             if (!state.getHttpChannelState().isSuspended()) {
+                 activeSuspended.dec();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-15/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-15/sources/source-4.html new file mode 100644 index 0000000000..d19766740b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-15/sources/source-4.html @@ -0,0 +1,286 @@ + + + + + + + + Coverage Report > InstrumentedQueuedThreadPool + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedQueuedThreadPool (com.codahale.metrics.jetty9)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 83.3% + + + (10/12) + + + + 92.3% + + + (24/26) + +
InstrumentedQueuedThreadPool$1 + + 50% + + + (1/2) + + + + 50% + + + (1/2) + +
InstrumentedQueuedThreadPool$2 + + 50% + + + (1/2) + + + + 50% + + + (1/2) + +
InstrumentedQueuedThreadPool$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
Total + + 72.2% + + + (13/18) + + + + 81.8% + + + (27/33) + +
+ +
+
+ + +
+ package com.codahale.metrics.jetty9;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import org.eclipse.jetty.util.annotation.Name;
+ import org.eclipse.jetty.util.thread.QueuedThreadPool;
+ 
+ import java.util.concurrent.BlockingQueue;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ public class InstrumentedQueuedThreadPool extends QueuedThreadPool {
+     private static final String NAME_UTILIZATION = "utilization";
+     private static final String NAME_UTILIZATION_MAX = "utilization-max";
+     private static final String NAME_SIZE = "size";
+     private static final String NAME_JOBS = "jobs";
+     private static final String NAME_JOBS_QUEUE_UTILIZATION = "jobs-queue-utilization";
+ 
+     private final MetricRegistry metricRegistry;
+     private String prefix;
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry) {
+         this(registry, 200);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads) {
+         this(registry, maxThreads, 8);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads) {
+         this(registry, maxThreads, minThreads, 60000);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout) {
+         this(registry, maxThreads, minThreads, idleTimeout, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue) {
+         this(registry, maxThreads, minThreads, idleTimeout, queue, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("prefix") String prefix) {
+         super(maxThreads, minThreads, idleTimeout, queue);
+         this.metricRegistry = registry;
+         this.prefix = prefix;
+     }
+ 
+     public String getPrefix() {
+         return prefix;
+     }
+ 
+     public void setPrefix(String prefix) {
+         this.prefix = prefix;
+     }
+ 
+     @Override
+     protected void doStart() throws Exception {
+         super.doStart();
+ 
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(getThreads() - getIdleThreads(), getThreads());
+             }
+         });
+         metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());
+             }
+         });
+         metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);
+         // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
+         // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
+         metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -> getQueue().size());
+         metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 BlockingQueue<Runnable> queue = getQueue();
+                 return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());
+             }
+         });
+     }
+ 
+     @Override
+     protected void doStop() throws Exception {
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.remove(name(prefix, NAME_UTILIZATION));
+         metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));
+         metricRegistry.remove(name(prefix, NAME_SIZE));
+         metricRegistry.remove(name(prefix, NAME_JOBS));
+         metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));
+ 
+         super.doStop();
+     }
+ 
+     private String getMetricPrefix() {
+         return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index.html b/metrics-complete-report-initial-htmlReport/ns-16/index.html new file mode 100644 index 0000000000..1467f326f6 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-16/index.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..54f6846493 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..318f29e095 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..ed9629618a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..a641c5db4c --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..7fee6889dc --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_LINE.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..63a87bfabd --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..5a8e7b83c1 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..bf5347bcf1 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..68c28738dd --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.jmx + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jmx

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jmx + + 100% + + + (11/11) + + + + 86.7% + + + (78/90) + + + + 71.2% + + + (168/236) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JmxReporter + + 100% + + + (10/10) + + + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-16/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-16/sources/source-1.html new file mode 100644 index 0000000000..68b3a8610d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-16/sources/source-1.html @@ -0,0 +1,173 @@ + + + + + + + + Coverage Report > DefaultObjectNameFactory + + + + + + +
+ + +

Coverage Summary for Class: DefaultObjectNameFactory (com.codahale.metrics.jmx)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
DefaultObjectNameFactory + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 70.8% + + + (17/24) + +
+ +
+
+ + +
+ package com.codahale.metrics.jmx;
+ 
+ import java.util.Hashtable;
+ 
+ import javax.management.MalformedObjectNameException;
+ import javax.management.ObjectName;
+ 
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ public class DefaultObjectNameFactory implements ObjectNameFactory {
+ 
+     private static final char[] QUOTABLE_CHARS = new char[] {',', '=', ':', '"'};
+     private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);
+ 
+     @Override
+     public ObjectName createName(String type, String domain, String name) {
+         try {
+             ObjectName objectName;
+             Hashtable<String, String> properties = new Hashtable<>();
+ 
+             properties.put("name", name);
+             properties.put("type", type);
+             objectName = new ObjectName(domain, properties);
+ 
+             /*
+              * The only way we can find out if we need to quote the properties is by
+              * checking an ObjectName that we've constructed.
+              */
+             if (objectName.isDomainPattern()) {
+                 domain = ObjectName.quote(domain);
+             }
+             if (objectName.isPropertyValuePattern("name") || shouldQuote(objectName.getKeyProperty("name"))) {
+                 properties.put("name", ObjectName.quote(name));
+             }
+             if (objectName.isPropertyValuePattern("type") || shouldQuote(objectName.getKeyProperty("type"))) {
+                 properties.put("type", ObjectName.quote(type));
+             }
+             objectName = new ObjectName(domain, properties);
+ 
+             return objectName;
+         } catch (MalformedObjectNameException e) {
+             try {
+                 return new ObjectName(domain, "name", ObjectName.quote(name));
+             } catch (MalformedObjectNameException e1) {
+                 LOGGER.warn("Unable to register {} {}", type, name, e1);
+                 throw new RuntimeException(e1);
+             }
+         }
+     }
+ 
+     /**
+      * Determines whether the value requires quoting.
+      * According to the {@link ObjectName} documentation, values can be quoted or unquoted. Unquoted
+      * values may not contain any of the characters comma, equals, colon, or quote.
+      *
+      * @param value a value to test
+      * @return true when it requires quoting, false otherwise
+      */
+     private boolean shouldQuote(final String value) {
+         for (char quotableChar : QUOTABLE_CHARS) {
+             if (value.indexOf(quotableChar) != -1) {
+                 return true;
+             }
+         }
+         return false;
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-16/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-16/sources/source-2.html new file mode 100644 index 0000000000..e66a123b25 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-16/sources/source-2.html @@ -0,0 +1,1061 @@ + + + + + + + + Coverage Report > JmxReporter + + + + + + +
+ + +

Coverage Summary for Class: JmxReporter (com.codahale.metrics.jmx)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
JmxReporter + + 87.5% + + + (7/8) + + + + 90.9% + + + (10/11) + +
JmxReporter$1
JmxReporter$AbstractBean + + 50% + + + (1/2) + + + + 66.7% + + + (2/3) + +
JmxReporter$Builder + + 81.8% + + + (9/11) + + + + 84.4% + + + (27/32) + +
JmxReporter$JmxCounter + + 100% + + + (3/3) + + + + 100% + + + (4/4) + +
JmxReporter$JmxCounterMBean
JmxReporter$JmxGauge + + 100% + + + (4/4) + + + + 100% + + + (6/6) + +
JmxReporter$JmxGaugeMBean
JmxReporter$JmxHistogram + + 87.5% + + + (14/16) + + + + 88.9% + + + (16/18) + +
JmxReporter$JmxHistogramMBean
JmxReporter$JmxListener + + 68.8% + + + (11/16) + + + + 49.5% + + + (50/101) + +
JmxReporter$JmxMeter + + 100% + + + (9/9) + + + + 100% + + + (13/13) + +
JmxReporter$JmxMeterMBean
JmxReporter$JmxTimer + + 92.9% + + + (13/14) + + + + 94.1% + + + (16/17) + +
JmxReporter$JmxTimerMBean
JmxReporter$MetricMBean
JmxReporter$MetricTimeUnits + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
Total + + 86% + + + (74/86) + + + + 71.2% + + + (151/212) + +
+ +
+
+ + +
+ package com.codahale.metrics.jmx;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Gauge;
+ import com.codahale.metrics.Histogram;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.Metered;
+ import com.codahale.metrics.MetricFilter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.MetricRegistryListener;
+ import com.codahale.metrics.Reporter;
+ import com.codahale.metrics.Timer;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import javax.management.InstanceAlreadyExistsException;
+ import javax.management.InstanceNotFoundException;
+ import javax.management.JMException;
+ import javax.management.MBeanRegistrationException;
+ import javax.management.MBeanServer;
+ import javax.management.ObjectInstance;
+ import javax.management.ObjectName;
+ import java.io.Closeable;
+ import java.lang.management.ManagementFactory;
+ import java.util.Collections;
+ import java.util.Locale;
+ import java.util.Map;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * A reporter which listens for new metrics and exposes them as namespaced MBeans.
+  */
+ public class JmxReporter implements Reporter, Closeable {
+     /**
+      * Returns a new {@link Builder} for {@link JmxReporter}.
+      *
+      * @param registry the registry to report
+      * @return a {@link Builder} instance for a {@link JmxReporter}
+      */
+     public static Builder forRegistry(MetricRegistry registry) {
+         return new Builder(registry);
+     }
+ 
+     /**
+      * A builder for {@link JmxReporter} instances. Defaults to using the default MBean server and
+      * not filtering metrics.
+      */
+     public static class Builder {
+         private final MetricRegistry registry;
+         private MBeanServer mBeanServer;
+         private TimeUnit rateUnit;
+         private TimeUnit durationUnit;
+         private ObjectNameFactory objectNameFactory;
+         private MetricFilter filter = MetricFilter.ALL;
+         private String domain;
+         private Map<String, TimeUnit> specificDurationUnits;
+         private Map<String, TimeUnit> specificRateUnits;
+ 
+         private Builder(MetricRegistry registry) {
+             this.registry = registry;
+             this.rateUnit = TimeUnit.SECONDS;
+             this.durationUnit = TimeUnit.MILLISECONDS;
+             this.domain = "metrics";
+             this.objectNameFactory = new DefaultObjectNameFactory();
+             this.specificDurationUnits = Collections.emptyMap();
+             this.specificRateUnits = Collections.emptyMap();
+         }
+ 
+         /**
+          * Register MBeans with the given {@link MBeanServer}.
+          *
+          * @param mBeanServer an {@link MBeanServer}
+          * @return {@code this}
+          */
+         public Builder registerWith(MBeanServer mBeanServer) {
+             this.mBeanServer = mBeanServer;
+             return this;
+         }
+ 
+         /**
+          * Convert rates to the given time unit.
+          *
+          * @param rateUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertRatesTo(TimeUnit rateUnit) {
+             this.rateUnit = rateUnit;
+             return this;
+         }
+ 
+         public Builder createsObjectNamesWith(ObjectNameFactory onFactory) {
+             if (onFactory == null) {
+                 throw new IllegalArgumentException("null objectNameFactory");
+             }
+             this.objectNameFactory = onFactory;
+             return this;
+         }
+ 
+         /**
+          * Convert durations to the given time unit.
+          *
+          * @param durationUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertDurationsTo(TimeUnit durationUnit) {
+             this.durationUnit = durationUnit;
+             return this;
+         }
+ 
+         /**
+          * Only report metrics which match the given filter.
+          *
+          * @param filter a {@link MetricFilter}
+          * @return {@code this}
+          */
+         public Builder filter(MetricFilter filter) {
+             this.filter = filter;
+             return this;
+         }
+ 
+         public Builder inDomain(String domain) {
+             this.domain = domain;
+             return this;
+         }
+ 
+         /**
+          * Use specific {@link TimeUnit}s for the duration of the metrics with these names.
+          *
+          * @param specificDurationUnits a map of metric names and specific {@link TimeUnit}s
+          * @return {@code this}
+          */
+         public Builder specificDurationUnits(Map<String, TimeUnit> specificDurationUnits) {
+             this.specificDurationUnits = Collections.unmodifiableMap(specificDurationUnits);
+             return this;
+         }
+ 
+ 
+         /**
+          * Use specific {@link TimeUnit}s for the rate of the metrics with these names.
+          *
+          * @param specificRateUnits a map of metric names and specific {@link TimeUnit}s
+          * @return {@code this}
+          */
+         public Builder specificRateUnits(Map<String, TimeUnit> specificRateUnits) {
+             this.specificRateUnits = Collections.unmodifiableMap(specificRateUnits);
+             return this;
+         }
+ 
+         /**
+          * Builds a {@link JmxReporter} with the given properties.
+          *
+          * @return a {@link JmxReporter}
+          */
+         public JmxReporter build() {
+             final MetricTimeUnits timeUnits = new MetricTimeUnits(rateUnit, durationUnit, specificRateUnits, specificDurationUnits);
+             if (mBeanServer == null) {
+                 mBeanServer = ManagementFactory.getPlatformMBeanServer();
+             }
+             return new JmxReporter(mBeanServer, domain, registry, filter, timeUnits, objectNameFactory);
+         }
+     }
+ 
+     private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);
+ 
+     @SuppressWarnings("UnusedDeclaration")
+     public interface MetricMBean {
+         ObjectName objectName();
+     }
+ 
+     private abstract static class AbstractBean implements MetricMBean {
+         private final ObjectName objectName;
+ 
+         AbstractBean(ObjectName objectName) {
+             this.objectName = objectName;
+         }
+ 
+         @Override
+         public ObjectName objectName() {
+             return objectName;
+         }
+     }
+ 
+     @SuppressWarnings("UnusedDeclaration")
+     public interface JmxGaugeMBean extends MetricMBean {
+         Object getValue();
+         Number getNumber();
+     }
+ 
+     private static class JmxGauge extends AbstractBean implements JmxGaugeMBean {
+         private final Gauge<?> metric;
+ 
+         private JmxGauge(Gauge<?> metric, ObjectName objectName) {
+             super(objectName);
+             this.metric = metric;
+         }
+ 
+         @Override
+         public Object getValue() {
+             return metric.getValue();
+         }
+ 
+         @Override
+         public Number getNumber() {
+             Object value = metric.getValue();
+             return value instanceof Number ? (Number) value : 0;
+         }
+     }
+ 
+     @SuppressWarnings("UnusedDeclaration")
+     public interface JmxCounterMBean extends MetricMBean {
+         long getCount();
+     }
+ 
+     private static class JmxCounter extends AbstractBean implements JmxCounterMBean {
+         private final Counter metric;
+ 
+         private JmxCounter(Counter metric, ObjectName objectName) {
+             super(objectName);
+             this.metric = metric;
+         }
+ 
+         @Override
+         public long getCount() {
+             return metric.getCount();
+         }
+     }
+ 
+     @SuppressWarnings("UnusedDeclaration")
+     public interface JmxHistogramMBean extends MetricMBean {
+         long getCount();
+ 
+         long getMin();
+ 
+         long getMax();
+ 
+         double getMean();
+ 
+         double getStdDev();
+ 
+         double get50thPercentile();
+ 
+         double get75thPercentile();
+ 
+         double get95thPercentile();
+ 
+         double get98thPercentile();
+ 
+         double get99thPercentile();
+ 
+         double get999thPercentile();
+ 
+         long[] values();
+ 
+         long getSnapshotSize();
+     }
+ 
+     private static class JmxHistogram implements JmxHistogramMBean {
+         private final ObjectName objectName;
+         private final Histogram metric;
+ 
+         private JmxHistogram(Histogram metric, ObjectName objectName) {
+             this.metric = metric;
+             this.objectName = objectName;
+         }
+ 
+         @Override
+         public ObjectName objectName() {
+             return objectName;
+         }
+ 
+         @Override
+         public double get50thPercentile() {
+             return metric.getSnapshot().getMedian();
+         }
+ 
+         @Override
+         public long getCount() {
+             return metric.getCount();
+         }
+ 
+         @Override
+         public long getMin() {
+             return metric.getSnapshot().getMin();
+         }
+ 
+         @Override
+         public long getMax() {
+             return metric.getSnapshot().getMax();
+         }
+ 
+         @Override
+         public double getMean() {
+             return metric.getSnapshot().getMean();
+         }
+ 
+         @Override
+         public double getStdDev() {
+             return metric.getSnapshot().getStdDev();
+         }
+ 
+         @Override
+         public double get75thPercentile() {
+             return metric.getSnapshot().get75thPercentile();
+         }
+ 
+         @Override
+         public double get95thPercentile() {
+             return metric.getSnapshot().get95thPercentile();
+         }
+ 
+         @Override
+         public double get98thPercentile() {
+             return metric.getSnapshot().get98thPercentile();
+         }
+ 
+         @Override
+         public double get99thPercentile() {
+             return metric.getSnapshot().get99thPercentile();
+         }
+ 
+         @Override
+         public double get999thPercentile() {
+             return metric.getSnapshot().get999thPercentile();
+         }
+ 
+         @Override
+         public long[] values() {
+             return metric.getSnapshot().getValues();
+         }
+ 
+         @Override
+         public long getSnapshotSize() {
+             return metric.getSnapshot().size();
+         }
+     }
+ 
+     @SuppressWarnings("UnusedDeclaration")
+     public interface JmxMeterMBean extends MetricMBean {
+         long getCount();
+ 
+         double getMeanRate();
+ 
+         double getOneMinuteRate();
+ 
+         double getFiveMinuteRate();
+ 
+         double getFifteenMinuteRate();
+ 
+         String getRateUnit();
+     }
+ 
+     private static class JmxMeter extends AbstractBean implements JmxMeterMBean {
+         private final Metered metric;
+         private final double rateFactor;
+         private final String rateUnit;
+ 
+         private JmxMeter(Metered metric, ObjectName objectName, TimeUnit rateUnit) {
+             super(objectName);
+             this.metric = metric;
+             this.rateFactor = rateUnit.toSeconds(1);
+             this.rateUnit = ("events/" + calculateRateUnit(rateUnit)).intern();
+         }
+ 
+         @Override
+         public long getCount() {
+             return metric.getCount();
+         }
+ 
+         @Override
+         public double getMeanRate() {
+             return metric.getMeanRate() * rateFactor;
+         }
+ 
+         @Override
+         public double getOneMinuteRate() {
+             return metric.getOneMinuteRate() * rateFactor;
+         }
+ 
+         @Override
+         public double getFiveMinuteRate() {
+             return metric.getFiveMinuteRate() * rateFactor;
+         }
+ 
+         @Override
+         public double getFifteenMinuteRate() {
+             return metric.getFifteenMinuteRate() * rateFactor;
+         }
+ 
+         @Override
+         public String getRateUnit() {
+             return rateUnit;
+         }
+ 
+         private String calculateRateUnit(TimeUnit unit) {
+             final String s = unit.toString().toLowerCase(Locale.US);
+             return s.substring(0, s.length() - 1);
+         }
+     }
+ 
+     @SuppressWarnings("UnusedDeclaration")
+     public interface JmxTimerMBean extends JmxMeterMBean {
+         double getMin();
+ 
+         double getMax();
+ 
+         double getMean();
+ 
+         double getStdDev();
+ 
+         double get50thPercentile();
+ 
+         double get75thPercentile();
+ 
+         double get95thPercentile();
+ 
+         double get98thPercentile();
+ 
+         double get99thPercentile();
+ 
+         double get999thPercentile();
+ 
+         long[] values();
+ 
+         String getDurationUnit();
+     }
+ 
+     static class JmxTimer extends JmxMeter implements JmxTimerMBean {
+         private final Timer metric;
+         private final double durationFactor;
+         private final String durationUnit;
+ 
+         private JmxTimer(Timer metric,
+                          ObjectName objectName,
+                          TimeUnit rateUnit,
+                          TimeUnit durationUnit) {
+             super(metric, objectName, rateUnit);
+             this.metric = metric;
+             this.durationFactor = 1.0 / durationUnit.toNanos(1);
+             this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);
+         }
+ 
+         @Override
+         public double get50thPercentile() {
+             return metric.getSnapshot().getMedian() * durationFactor;
+         }
+ 
+         @Override
+         public double getMin() {
+             return metric.getSnapshot().getMin() * durationFactor;
+         }
+ 
+         @Override
+         public double getMax() {
+             return metric.getSnapshot().getMax() * durationFactor;
+         }
+ 
+         @Override
+         public double getMean() {
+             return metric.getSnapshot().getMean() * durationFactor;
+         }
+ 
+         @Override
+         public double getStdDev() {
+             return metric.getSnapshot().getStdDev() * durationFactor;
+         }
+ 
+         @Override
+         public double get75thPercentile() {
+             return metric.getSnapshot().get75thPercentile() * durationFactor;
+         }
+ 
+         @Override
+         public double get95thPercentile() {
+             return metric.getSnapshot().get95thPercentile() * durationFactor;
+         }
+ 
+         @Override
+         public double get98thPercentile() {
+             return metric.getSnapshot().get98thPercentile() * durationFactor;
+         }
+ 
+         @Override
+         public double get99thPercentile() {
+             return metric.getSnapshot().get99thPercentile() * durationFactor;
+         }
+ 
+         @Override
+         public double get999thPercentile() {
+             return metric.getSnapshot().get999thPercentile() * durationFactor;
+         }
+ 
+         @Override
+         public long[] values() {
+             return metric.getSnapshot().getValues();
+         }
+ 
+         @Override
+         public String getDurationUnit() {
+             return durationUnit;
+         }
+     }
+ 
+     private static class JmxListener implements MetricRegistryListener {
+         private final String name;
+         private final MBeanServer mBeanServer;
+         private final MetricFilter filter;
+         private final MetricTimeUnits timeUnits;
+         private final Map<ObjectName, ObjectName> registered;
+         private final ObjectNameFactory objectNameFactory;
+ 
+         private JmxListener(MBeanServer mBeanServer, String name, MetricFilter filter, MetricTimeUnits timeUnits, ObjectNameFactory objectNameFactory) {
+             this.mBeanServer = mBeanServer;
+             this.name = name;
+             this.filter = filter;
+             this.timeUnits = timeUnits;
+             this.registered = new ConcurrentHashMap<>();
+             this.objectNameFactory = objectNameFactory;
+         }
+ 
+         private void registerMBean(Object mBean, ObjectName objectName) throws InstanceAlreadyExistsException, JMException {
+             ObjectInstance objectInstance = mBeanServer.registerMBean(mBean, objectName);
+             if (objectInstance != null) {
+                 // the websphere mbeanserver rewrites the objectname to include
+                 // cell, node & server info
+                 // make sure we capture the new objectName for unregistration
+                 registered.put(objectName, objectInstance.getObjectName());
+             } else {
+                 registered.put(objectName, objectName);
+             }
+         }
+ 
+         private void unregisterMBean(ObjectName originalObjectName) throws InstanceNotFoundException, MBeanRegistrationException {
+             ObjectName storedObjectName = registered.remove(originalObjectName);
+             if (storedObjectName != null) {
+                 mBeanServer.unregisterMBean(storedObjectName);
+             } else {
+                 mBeanServer.unregisterMBean(originalObjectName);
+             }
+         }
+ 
+         @Override
+         public void onGaugeAdded(String name, Gauge<?> gauge) {
+             try {
+                 if (filter.matches(name, gauge)) {
+                     final ObjectName objectName = createName("gauges", name);
+                     registerMBean(new JmxGauge(gauge, objectName), objectName);
+                 }
+             } catch (InstanceAlreadyExistsException e) {
+                 LOGGER.debug("Unable to register gauge", e);
+             } catch (JMException e) {
+                 LOGGER.warn("Unable to register gauge", e);
+             }
+         }
+ 
+         @Override
+         public void onGaugeRemoved(String name) {
+             try {
+                 final ObjectName objectName = createName("gauges", name);
+                 unregisterMBean(objectName);
+             } catch (InstanceNotFoundException e) {
+                 LOGGER.debug("Unable to unregister gauge", e);
+             } catch (MBeanRegistrationException e) {
+                 LOGGER.warn("Unable to unregister gauge", e);
+             }
+         }
+ 
+         @Override
+         public void onCounterAdded(String name, Counter counter) {
+             try {
+                 if (filter.matches(name, counter)) {
+                     final ObjectName objectName = createName("counters", name);
+                     registerMBean(new JmxCounter(counter, objectName), objectName);
+                 }
+             } catch (InstanceAlreadyExistsException e) {
+                 LOGGER.debug("Unable to register counter", e);
+             } catch (JMException e) {
+                 LOGGER.warn("Unable to register counter", e);
+             }
+         }
+ 
+         @Override
+         public void onCounterRemoved(String name) {
+             try {
+                 final ObjectName objectName = createName("counters", name);
+                 unregisterMBean(objectName);
+             } catch (InstanceNotFoundException e) {
+                 LOGGER.debug("Unable to unregister counter", e);
+             } catch (MBeanRegistrationException e) {
+                 LOGGER.warn("Unable to unregister counter", e);
+             }
+         }
+ 
+         @Override
+         public void onHistogramAdded(String name, Histogram histogram) {
+             try {
+                 if (filter.matches(name, histogram)) {
+                     final ObjectName objectName = createName("histograms", name);
+                     registerMBean(new JmxHistogram(histogram, objectName), objectName);
+                 }
+             } catch (InstanceAlreadyExistsException e) {
+                 LOGGER.debug("Unable to register histogram", e);
+             } catch (JMException e) {
+                 LOGGER.warn("Unable to register histogram", e);
+             }
+         }
+ 
+         @Override
+         public void onHistogramRemoved(String name) {
+             try {
+                 final ObjectName objectName = createName("histograms", name);
+                 unregisterMBean(objectName);
+             } catch (InstanceNotFoundException e) {
+                 LOGGER.debug("Unable to unregister histogram", e);
+             } catch (MBeanRegistrationException e) {
+                 LOGGER.warn("Unable to unregister histogram", e);
+             }
+         }
+ 
+         @Override
+         public void onMeterAdded(String name, Meter meter) {
+             try {
+                 if (filter.matches(name, meter)) {
+                     final ObjectName objectName = createName("meters", name);
+                     registerMBean(new JmxMeter(meter, objectName, timeUnits.rateFor(name)), objectName);
+                 }
+             } catch (InstanceAlreadyExistsException e) {
+                 LOGGER.debug("Unable to register meter", e);
+             } catch (JMException e) {
+                 LOGGER.warn("Unable to register meter", e);
+             }
+         }
+ 
+         @Override
+         public void onMeterRemoved(String name) {
+             try {
+                 final ObjectName objectName = createName("meters", name);
+                 unregisterMBean(objectName);
+             } catch (InstanceNotFoundException e) {
+                 LOGGER.debug("Unable to unregister meter", e);
+             } catch (MBeanRegistrationException e) {
+                 LOGGER.warn("Unable to unregister meter", e);
+             }
+         }
+ 
+         @Override
+         public void onTimerAdded(String name, Timer timer) {
+             try {
+                 if (filter.matches(name, timer)) {
+                     final ObjectName objectName = createName("timers", name);
+                     registerMBean(new JmxTimer(timer, objectName, timeUnits.rateFor(name), timeUnits.durationFor(name)), objectName);
+                 }
+             } catch (InstanceAlreadyExistsException e) {
+                 LOGGER.debug("Unable to register timer", e);
+             } catch (JMException e) {
+                 LOGGER.warn("Unable to register timer", e);
+             }
+         }
+ 
+         @Override
+         public void onTimerRemoved(String name) {
+             try {
+                 final ObjectName objectName = createName("timers", name);
+                 unregisterMBean(objectName);
+             } catch (InstanceNotFoundException e) {
+                 LOGGER.debug("Unable to unregister timer", e);
+             } catch (MBeanRegistrationException e) {
+                 LOGGER.warn("Unable to unregister timer", e);
+             }
+         }
+ 
+         private ObjectName createName(String type, String name) {
+             return objectNameFactory.createName(type, this.name, name);
+         }
+ 
+         void unregisterAll() {
+             for (ObjectName name : registered.keySet()) {
+                 try {
+                     unregisterMBean(name);
+                 } catch (InstanceNotFoundException e) {
+                     LOGGER.debug("Unable to unregister metric", e);
+                 } catch (MBeanRegistrationException e) {
+                     LOGGER.warn("Unable to unregister metric", e);
+                 }
+             }
+             registered.clear();
+         }
+     }
+ 
+     private static class MetricTimeUnits {
+         private final TimeUnit defaultRate;
+         private final TimeUnit defaultDuration;
+         private final Map<String, TimeUnit> rateOverrides;
+         private final Map<String, TimeUnit> durationOverrides;
+ 
+         MetricTimeUnits(TimeUnit defaultRate,
+                         TimeUnit defaultDuration,
+                         Map<String, TimeUnit> rateOverrides,
+                         Map<String, TimeUnit> durationOverrides) {
+             this.defaultRate = defaultRate;
+             this.defaultDuration = defaultDuration;
+             this.rateOverrides = rateOverrides;
+             this.durationOverrides = durationOverrides;
+         }
+ 
+         public TimeUnit durationFor(String name) {
+             return durationOverrides.getOrDefault(name, defaultDuration);
+         }
+ 
+         public TimeUnit rateFor(String name) {
+             return rateOverrides.getOrDefault(name, defaultRate);
+         }
+     }
+ 
+     private final MetricRegistry registry;
+     private final JmxListener listener;
+ 
+     private JmxReporter(MBeanServer mBeanServer,
+                         String domain,
+                         MetricRegistry registry,
+                         MetricFilter filter,
+                         MetricTimeUnits timeUnits,
+                         ObjectNameFactory objectNameFactory) {
+         this.registry = registry;
+         this.listener = new JmxListener(mBeanServer, domain, filter, timeUnits, objectNameFactory);
+     }
+ 
+     /**
+      * Starts the reporter.
+      */
+     public void start() {
+         registry.addListener(listener);
+     }
+ 
+     /**
+      * Stops the reporter.
+      */
+     public void stop() {
+         registry.removeListener(listener);
+         listener.unregisterAll();
+     }
+ 
+     /**
+      * Stops the reporter.
+      */
+     @Override
+     public void close() {
+         stop();
+     }
+ 
+     /**
+      * Visible for testing
+      */
+     ObjectNameFactory getObjectNameFactory() {
+         return listener.objectNameFactory;
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-16/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-16/sources/source-3.html new file mode 100644 index 0000000000..025a4e92f3 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-16/sources/source-3.html @@ -0,0 +1,85 @@ + + + + + + + + Coverage Report > ObjectNameFactory + + + + + + +
+ + +

Coverage Summary for Class: ObjectNameFactory (com.codahale.metrics.jmx)

+ + + + + + + + + + + + + + + + + + +
Class
ObjectNameFactory$MockitoMock$WlF4PDAF
ObjectNameFactory$MockitoMock$WlF4PDAF$auxiliary$1CjbcZqB
ObjectNameFactory$MockitoMock$WlF4PDAF$auxiliary$35Hj81tk
Total
+ +
+
+ + +
+ package com.codahale.metrics.jmx;
+ 
+ import javax.management.ObjectName;
+ 
+ public interface ObjectNameFactory {
+ 
+     ObjectName createName(String type, String domain, String name);
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index.html b/metrics-complete-report-initial-htmlReport/ns-17/index.html new file mode 100644 index 0000000000..9f2a655f14 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-17/index.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..887006e005 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..77e355a3a7 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..6861c10dd6 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..090dc2538b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..22b108a3b7 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_LINE.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..38c06d1f8f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..fc1b6e25b0 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..a0b89a1740 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..426cb00467 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.json + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.json

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.json + + 100% + + + (9/9) + + + + 97% + + + (32/33) + + + + 99.2% + + + (131/132) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsModule + + 100% + + + (7/7) + + + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
HealthCheckModule + + 100% + + + (2/2) + + + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-17/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-17/sources/source-1.html new file mode 100644 index 0000000000..8f41c759de --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-17/sources/source-1.html @@ -0,0 +1,217 @@ + + + + + + + + Coverage Report > HealthCheckModule + + + + + + +
+ + +

Coverage Summary for Class: HealthCheckModule (com.codahale.metrics.json)

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
HealthCheckModule + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
HealthCheckModule$1
HealthCheckModule$HealthCheckResultSerializer + + 100% + + + (4/4) + + + + 100% + + + (27/27) + +
Total + + 100% + + + (8/8) + + + + 100% + + + (31/31) + +
+ +
+
+ + +
+ package com.codahale.metrics.json;
+ 
+ import com.codahale.metrics.health.HealthCheck;
+ import com.fasterxml.jackson.core.JsonGenerator;
+ import com.fasterxml.jackson.core.Version;
+ import com.fasterxml.jackson.databind.Module;
+ import com.fasterxml.jackson.databind.SerializerProvider;
+ import com.fasterxml.jackson.databind.module.SimpleSerializers;
+ import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+ 
+ import java.io.IOException;
+ import java.util.Collections;
+ import java.util.Map;
+ 
+ public class HealthCheckModule extends Module {
+     private static class HealthCheckResultSerializer extends StdSerializer<HealthCheck.Result> {
+ 
+         private static final long serialVersionUID = 1L;
+ 
+         private HealthCheckResultSerializer() {
+             super(HealthCheck.Result.class);
+         }
+ 
+         @Override
+         public void serialize(HealthCheck.Result result,
+                               JsonGenerator json,
+                               SerializerProvider provider) throws IOException {
+             json.writeStartObject();
+             json.writeBooleanField("healthy", result.isHealthy());
+ 
+             final String message = result.getMessage();
+             if (message != null) {
+                 json.writeStringField("message", message);
+             }
+ 
+             serializeThrowable(json, result.getError(), "error");
+             json.writeNumberField("duration", result.getDuration());
+ 
+             Map<String, Object> details = result.getDetails();
+             if (details != null && !details.isEmpty()) {
+                 for (Map.Entry<String, Object> e : details.entrySet()) {
+                     json.writeObjectField(e.getKey(), e.getValue());
+                 }
+             }
+ 
+             json.writeStringField("timestamp", result.getTimestamp());
+             json.writeEndObject();
+         }
+ 
+         private void serializeThrowable(JsonGenerator json, Throwable error, String name) throws IOException {
+             if (error != null) {
+                 json.writeObjectFieldStart(name);
+                 json.writeStringField("type", error.getClass().getTypeName());
+                 json.writeStringField("message", error.getMessage());
+                 json.writeArrayFieldStart("stack");
+                 for (StackTraceElement element : error.getStackTrace()) {
+                     json.writeString(element.toString());
+                 }
+                 json.writeEndArray();
+ 
+                 if (error.getCause() != null) {
+                     serializeThrowable(json, error.getCause(), "cause");
+                 }
+ 
+                 json.writeEndObject();
+             }
+         }
+     }
+ 
+     @Override
+     public String getModuleName() {
+         return "healthchecks";
+     }
+ 
+     @Override
+     public Version version() {
+         return MetricsModule.VERSION;
+     }
+ 
+     @Override
+     public void setupModule(SetupContext context) {
+         context.addSerializers(new SimpleSerializers(Collections.singletonList(new HealthCheckResultSerializer())));
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-17/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-17/sources/source-2.html new file mode 100644 index 0000000000..663294df0b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-17/sources/source-2.html @@ -0,0 +1,489 @@ + + + + + + + + Coverage Report > MetricsModule + + + + + + +
+ + +

Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
MetricsModule + + 87.5% + + + (7/8) + + + + 92.3% + + + (12/13) + +
MetricsModule$1
MetricsModule$CounterSerializer + + 100% + + + (3/3) + + + + 100% + + + (5/5) + +
MetricsModule$GaugeSerializer + + 100% + + + (3/3) + + + + 100% + + + (9/9) + +
MetricsModule$HistogramSerializer + + 100% + + + (3/3) + + + + 100% + + + (19/19) + +
MetricsModule$MeterSerializer + + 100% + + + (2/2) + + + + 100% + + + (11/11) + +
MetricsModule$MetricRegistrySerializer + + 100% + + + (3/3) + + + + 100% + + + (11/11) + +
MetricsModule$TimerSerializer + + 100% + + + (3/3) + + + + 100% + + + (33/33) + +
Total + + 96% + + + (24/25) + + + + 99% + + + (100/101) + +
+ +
+
+ + +
+ package com.codahale.metrics.json;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Gauge;
+ import com.codahale.metrics.Histogram;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricFilter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Snapshot;
+ import com.codahale.metrics.Timer;
+ import com.fasterxml.jackson.core.JsonGenerator;
+ import com.fasterxml.jackson.core.Version;
+ import com.fasterxml.jackson.databind.Module;
+ import com.fasterxml.jackson.databind.SerializerProvider;
+ import com.fasterxml.jackson.databind.module.SimpleSerializers;
+ import com.fasterxml.jackson.databind.ser.std.StdSerializer;
+ 
+ import java.io.IOException;
+ import java.util.Arrays;
+ import java.util.Locale;
+ import java.util.concurrent.TimeUnit;
+ 
+ public class MetricsModule extends Module {
+     static final Version VERSION = new Version(4, 0, 0, "", "io.dropwizard.metrics", "metrics-json");
+ 
+     @SuppressWarnings("rawtypes")
+     private static class GaugeSerializer extends StdSerializer<Gauge> {
+ 
+         private static final long serialVersionUID = 1L;
+ 
+         private GaugeSerializer() {
+             super(Gauge.class);
+         }
+ 
+         @Override
+         public void serialize(Gauge gauge,
+                               JsonGenerator json,
+                               SerializerProvider provider) throws IOException {
+             json.writeStartObject();
+             final Object value;
+             try {
+                 value = gauge.getValue();
+                 json.writeObjectField("value", value);
+             } catch (RuntimeException e) {
+                 json.writeObjectField("error", e.toString());
+             }
+             json.writeEndObject();
+         }
+     }
+ 
+     private static class CounterSerializer extends StdSerializer<Counter> {
+ 
+         private static final long serialVersionUID = 1L;
+ 
+         private CounterSerializer() {
+             super(Counter.class);
+         }
+ 
+         @Override
+         public void serialize(Counter counter,
+                               JsonGenerator json,
+                               SerializerProvider provider) throws IOException {
+             json.writeStartObject();
+             json.writeNumberField("count", counter.getCount());
+             json.writeEndObject();
+         }
+     }
+ 
+     private static class HistogramSerializer extends StdSerializer<Histogram> {
+ 
+         private static final long serialVersionUID = 1L;
+ 
+         private final boolean showSamples;
+ 
+         private HistogramSerializer(boolean showSamples) {
+             super(Histogram.class);
+             this.showSamples = showSamples;
+         }
+ 
+         @Override
+         public void serialize(Histogram histogram,
+                               JsonGenerator json,
+                               SerializerProvider provider) throws IOException {
+             json.writeStartObject();
+             final Snapshot snapshot = histogram.getSnapshot();
+             json.writeNumberField("count", histogram.getCount());
+             json.writeNumberField("max", snapshot.getMax());
+             json.writeNumberField("mean", snapshot.getMean());
+             json.writeNumberField("min", snapshot.getMin());
+             json.writeNumberField("p50", snapshot.getMedian());
+             json.writeNumberField("p75", snapshot.get75thPercentile());
+             json.writeNumberField("p95", snapshot.get95thPercentile());
+             json.writeNumberField("p98", snapshot.get98thPercentile());
+             json.writeNumberField("p99", snapshot.get99thPercentile());
+             json.writeNumberField("p999", snapshot.get999thPercentile());
+ 
+             if (showSamples) {
+                 json.writeObjectField("values", snapshot.getValues());
+             }
+ 
+             json.writeNumberField("stddev", snapshot.getStdDev());
+             json.writeEndObject();
+         }
+     }
+ 
+     private static class MeterSerializer extends StdSerializer<Meter> {
+ 
+         private static final long serialVersionUID = 1L;
+ 
+         private final String rateUnit;
+         private final double rateFactor;
+ 
+         public MeterSerializer(TimeUnit rateUnit) {
+             super(Meter.class);
+             this.rateFactor = rateUnit.toSeconds(1);
+             this.rateUnit = calculateRateUnit(rateUnit, "events");
+         }
+ 
+         @Override
+         public void serialize(Meter meter,
+                               JsonGenerator json,
+                               SerializerProvider provider) throws IOException {
+             json.writeStartObject();
+             json.writeNumberField("count", meter.getCount());
+             json.writeNumberField("m15_rate", meter.getFifteenMinuteRate() * rateFactor);
+             json.writeNumberField("m1_rate", meter.getOneMinuteRate() * rateFactor);
+             json.writeNumberField("m5_rate", meter.getFiveMinuteRate() * rateFactor);
+             json.writeNumberField("mean_rate", meter.getMeanRate() * rateFactor);
+             json.writeStringField("units", rateUnit);
+             json.writeEndObject();
+         }
+     }
+ 
+     private static class TimerSerializer extends StdSerializer<Timer> {
+ 
+         private static final long serialVersionUID = 1L;
+ 
+         private final String rateUnit;
+         private final double rateFactor;
+         private final String durationUnit;
+         private final double durationFactor;
+         private final boolean showSamples;
+ 
+         private TimerSerializer(TimeUnit rateUnit,
+                                 TimeUnit durationUnit,
+                                 boolean showSamples) {
+             super(Timer.class);
+             this.rateUnit = calculateRateUnit(rateUnit, "calls");
+             this.rateFactor = rateUnit.toSeconds(1);
+             this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);
+             this.durationFactor = 1.0 / durationUnit.toNanos(1);
+             this.showSamples = showSamples;
+         }
+ 
+         @Override
+         public void serialize(Timer timer,
+                               JsonGenerator json,
+                               SerializerProvider provider) throws IOException {
+             json.writeStartObject();
+             final Snapshot snapshot = timer.getSnapshot();
+             json.writeNumberField("count", timer.getCount());
+             json.writeNumberField("max", snapshot.getMax() * durationFactor);
+             json.writeNumberField("mean", snapshot.getMean() * durationFactor);
+             json.writeNumberField("min", snapshot.getMin() * durationFactor);
+ 
+             json.writeNumberField("p50", snapshot.getMedian() * durationFactor);
+             json.writeNumberField("p75", snapshot.get75thPercentile() * durationFactor);
+             json.writeNumberField("p95", snapshot.get95thPercentile() * durationFactor);
+             json.writeNumberField("p98", snapshot.get98thPercentile() * durationFactor);
+             json.writeNumberField("p99", snapshot.get99thPercentile() * durationFactor);
+             json.writeNumberField("p999", snapshot.get999thPercentile() * durationFactor);
+ 
+             if (showSamples) {
+                 final long[] values = snapshot.getValues();
+                 final double[] scaledValues = new double[values.length];
+                 for (int i = 0; i < values.length; i++) {
+                     scaledValues[i] = values[i] * durationFactor;
+                 }
+                 json.writeObjectField("values", scaledValues);
+             }
+ 
+             json.writeNumberField("stddev", snapshot.getStdDev() * durationFactor);
+             json.writeNumberField("m15_rate", timer.getFifteenMinuteRate() * rateFactor);
+             json.writeNumberField("m1_rate", timer.getOneMinuteRate() * rateFactor);
+             json.writeNumberField("m5_rate", timer.getFiveMinuteRate() * rateFactor);
+             json.writeNumberField("mean_rate", timer.getMeanRate() * rateFactor);
+             json.writeStringField("duration_units", durationUnit);
+             json.writeStringField("rate_units", rateUnit);
+             json.writeEndObject();
+         }
+     }
+ 
+     private static class MetricRegistrySerializer extends StdSerializer<MetricRegistry> {
+ 
+         private static final long serialVersionUID = 1L;
+ 
+         private final MetricFilter filter;
+ 
+         private MetricRegistrySerializer(MetricFilter filter) {
+             super(MetricRegistry.class);
+             this.filter = filter;
+         }
+ 
+         @Override
+         public void serialize(MetricRegistry registry,
+                               JsonGenerator json,
+                               SerializerProvider provider) throws IOException {
+             json.writeStartObject();
+             json.writeStringField("version", VERSION.toString());
+             json.writeObjectField("gauges", registry.getGauges(filter));
+             json.writeObjectField("counters", registry.getCounters(filter));
+             json.writeObjectField("histograms", registry.getHistograms(filter));
+             json.writeObjectField("meters", registry.getMeters(filter));
+             json.writeObjectField("timers", registry.getTimers(filter));
+             json.writeEndObject();
+         }
+     }
+ 
+     protected final TimeUnit rateUnit;
+     protected final TimeUnit durationUnit;
+     protected final boolean showSamples;
+     protected final MetricFilter filter;
+ 
+     public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples) {
+         this(rateUnit, durationUnit, showSamples, MetricFilter.ALL);
+     }
+ 
+     public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples, MetricFilter filter) {
+         this.rateUnit = rateUnit;
+         this.durationUnit = durationUnit;
+         this.showSamples = showSamples;
+         this.filter = filter;
+     }
+ 
+     @Override
+     public String getModuleName() {
+         return "metrics";
+     }
+ 
+     @Override
+     public Version version() {
+         return VERSION;
+     }
+ 
+     @Override
+     public void setupModule(SetupContext context) {
+         context.addSerializers(new SimpleSerializers(Arrays.asList(
+                 new GaugeSerializer(),
+                 new CounterSerializer(),
+                 new HistogramSerializer(showSamples),
+                 new MeterSerializer(rateUnit),
+                 new TimerSerializer(rateUnit, durationUnit, showSamples),
+                 new MetricRegistrySerializer(filter)
+         )));
+     }
+ 
+     private static String calculateRateUnit(TimeUnit unit, String name) {
+         final String s = unit.toString().toLowerCase(Locale.US);
+         return name + '/' + s.substring(0, s.length() - 1);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index.html b/metrics-complete-report-initial-htmlReport/ns-18/index.html new file mode 100644 index 0000000000..591440042e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/index.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BufferPoolMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/18) + +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
ClassLoadingGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/7) + +
CpuTimeClock + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/3) + +
FileDescriptorRatioGauge + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
GarbageCollectorMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/11) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 61.5% + + + (8/13) + +
JvmAttributeGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
MemoryUsageGaugeSet + + 0% + + + (0/4) + + + + 0% + + + (0/16) + + + + 0% + + + (0/47) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 30% + + + (6/20) + +
ThreadDump + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 81.2% + + + (39/48) + +
ThreadStatesGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/22) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..50fbf2cd2b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BufferPoolMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/18) + +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
ClassLoadingGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/7) + +
CpuTimeClock + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/3) + +
FileDescriptorRatioGauge + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
GarbageCollectorMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/11) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 61.5% + + + (8/13) + +
JvmAttributeGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
MemoryUsageGaugeSet + + 0% + + + (0/4) + + + + 0% + + + (0/16) + + + + 0% + + + (0/47) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 30% + + + (6/20) + +
ThreadDump + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 81.2% + + + (39/48) + +
ThreadStatesGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/22) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..b1ed42c845 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadStatesGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/22) + +
ThreadDump + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 81.2% + + + (39/48) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 30% + + + (6/20) + +
MemoryUsageGaugeSet + + 0% + + + (0/4) + + + + 0% + + + (0/16) + + + + 0% + + + (0/47) + +
JvmAttributeGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 61.5% + + + (8/13) + +
GarbageCollectorMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/11) + +
FileDescriptorRatioGauge + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
CpuTimeClock + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/3) + +
ClassLoadingGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/7) + +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
BufferPoolMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/18) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..f0767ff8cb --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BufferPoolMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/18) + +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
ClassLoadingGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/7) + +
CpuTimeClock + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/3) + +
FileDescriptorRatioGauge + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
GarbageCollectorMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/11) + +
JvmAttributeGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
MemoryUsageGaugeSet + + 0% + + + (0/4) + + + + 0% + + + (0/16) + + + + 0% + + + (0/47) + +
ThreadStatesGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/22) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 61.5% + + + (8/13) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 30% + + + (6/20) + +
ThreadDump + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 81.2% + + + (39/48) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..5d00fdb194 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDump + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 81.2% + + + (39/48) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 30% + + + (6/20) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 61.5% + + + (8/13) + +
ThreadStatesGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/22) + +
MemoryUsageGaugeSet + + 0% + + + (0/4) + + + + 0% + + + (0/16) + + + + 0% + + + (0/47) + +
JvmAttributeGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
GarbageCollectorMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/11) + +
FileDescriptorRatioGauge + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
CpuTimeClock + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/3) + +
ClassLoadingGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/7) + +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
BufferPoolMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/18) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..a99f509563 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_LINE.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BufferPoolMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/18) + +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
ClassLoadingGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/7) + +
CpuTimeClock + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/3) + +
FileDescriptorRatioGauge + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
GarbageCollectorMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/11) + +
JvmAttributeGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
MemoryUsageGaugeSet + + 0% + + + (0/4) + + + + 0% + + + (0/16) + + + + 0% + + + (0/47) + +
ThreadStatesGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/22) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 30% + + + (6/20) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 61.5% + + + (8/13) + +
ThreadDump + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 81.2% + + + (39/48) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..9d253c8698 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDump + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 81.2% + + + (39/48) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 61.5% + + + (8/13) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 30% + + + (6/20) + +
ThreadStatesGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/22) + +
MemoryUsageGaugeSet + + 0% + + + (0/4) + + + + 0% + + + (0/16) + + + + 0% + + + (0/47) + +
JvmAttributeGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
GarbageCollectorMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/11) + +
FileDescriptorRatioGauge + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
CpuTimeClock + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/3) + +
ClassLoadingGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/7) + +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
BufferPoolMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/18) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..50562da329 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
BufferPoolMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/18) + +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
ClassLoadingGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/7) + +
CpuTimeClock + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/3) + +
FileDescriptorRatioGauge + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
GarbageCollectorMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/11) + +
JvmAttributeGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
MemoryUsageGaugeSet + + 0% + + + (0/4) + + + + 0% + + + (0/16) + + + + 0% + + + (0/47) + +
ThreadStatesGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/22) + +
ThreadDump + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 81.2% + + + (39/48) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 61.5% + + + (8/13) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 30% + + + (6/20) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..d2df396c05 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 30% + + + (6/20) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 61.5% + + + (8/13) + +
ThreadDump + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 81.2% + + + (39/48) + +
ThreadStatesGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/22) + +
MemoryUsageGaugeSet + + 0% + + + (0/4) + + + + 0% + + + (0/16) + + + + 0% + + + (0/47) + +
JvmAttributeGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
GarbageCollectorMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/11) + +
FileDescriptorRatioGauge + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
CpuTimeClock + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/3) + +
ClassLoadingGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/7) + +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
BufferPoolMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/18) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..46cf3fe5ea --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,440 @@ + + + + + + Coverage Report > com.codahale.metrics.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jvm + + 18.8% + + + (3/16) + + + + 15.3% + + + (9/59) + + + + 24.1% + + + (53/220) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadStatesGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/22) + +
ThreadDump + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 81.2% + + + (39/48) + +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 30% + + + (6/20) + +
MemoryUsageGaugeSet + + 0% + + + (0/4) + + + + 0% + + + (0/16) + + + + 0% + + + (0/47) + +
JvmAttributeGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 61.5% + + + (8/13) + +
GarbageCollectorMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/11) + +
FileDescriptorRatioGauge + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
CpuTimeClock + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/3) + +
ClassLoadingGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/7) + +
CachedThreadStatesGaugeSet + + 0% + + + (0/2) + + + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
BufferPoolMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/18) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-1.html new file mode 100644 index 0000000000..7b28116177 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-1.html @@ -0,0 +1,156 @@ + + + + + + + + Coverage Report > BufferPoolMetricSet + + + + + + +
+ + +

Coverage Summary for Class: BufferPoolMetricSet (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
BufferPoolMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/18) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import com.codahale.metrics.Metric;
+ import com.codahale.metrics.MetricSet;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import javax.management.JMException;
+ import javax.management.MBeanServer;
+ import javax.management.ObjectName;
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.Map;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A set of gauges for the count, usage, and capacity of the JVM's direct and mapped buffer pools.
+  * <p>
+  * These JMX objects are only available on Java 7 and above.
+  */
+ public class BufferPoolMetricSet implements MetricSet {
+     private static final Logger LOGGER = LoggerFactory.getLogger(BufferPoolMetricSet.class);
+     private static final String[] ATTRIBUTES = {"Count", "MemoryUsed", "TotalCapacity"};
+     private static final String[] NAMES = {"count", "used", "capacity"};
+     private static final String[] POOLS = {"direct", "mapped"};
+ 
+     private final MBeanServer mBeanServer;
+ 
+     public BufferPoolMetricSet(MBeanServer mBeanServer) {
+         this.mBeanServer = mBeanServer;
+     }
+ 
+     @Override
+     public Map<String, Metric> getMetrics() {
+         final Map<String, Metric> gauges = new HashMap<>();
+         for (String pool : POOLS) {
+             for (int i = 0; i < ATTRIBUTES.length; i++) {
+                 final String attribute = ATTRIBUTES[i];
+                 final String name = NAMES[i];
+                 try {
+                     final ObjectName on = new ObjectName("java.nio:type=BufferPool,name=" + pool);
+                     mBeanServer.getMBeanInfo(on);
+                     gauges.put(name(pool, name), new JmxAttributeGauge(mBeanServer, on, attribute));
+                 } catch (JMException ignored) {
+                     LOGGER.debug("Unable to load buffer pool MBeans, possibly running on Java 6");
+                 }
+             }
+         }
+         return Collections.unmodifiableMap(gauges);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-2.html new file mode 100644 index 0000000000..b2a854a946 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-2.html @@ -0,0 +1,184 @@ + + + + + + + + Coverage Report > CachedThreadStatesGaugeSet + + + + + + +
+ + +

Coverage Summary for Class: CachedThreadStatesGaugeSet (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
CachedThreadStatesGaugeSet + + 0% + + + (0/4) + + + + 0% + + + (0/5) + +
CachedThreadStatesGaugeSet$1 + + 0% + + + (0/2) + + + + 0% + + + (0/2) + +
Total + + 0% + + + (0/6) + + + + 0% + + + (0/7) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import java.lang.management.ManagementFactory;
+ import java.lang.management.ThreadInfo;
+ import java.lang.management.ThreadMXBean;
+ import java.util.concurrent.TimeUnit;
+ 
+ import com.codahale.metrics.CachedGauge;
+ 
+ /**
+  * A variation of ThreadStatesGaugeSet that caches the ThreadInfo[] objects for
+  * a given interval.
+  */
+ public class CachedThreadStatesGaugeSet extends ThreadStatesGaugeSet {
+ 
+     private final CachedGauge<ThreadInfo[]> threadInfo;
+ 
+     /**
+      * Creates a new set of gauges using the given MXBean and detector.
+      * Caches the information for the given interval and time unit.
+      *
+      * @param threadMXBean     a thread MXBean
+      * @param deadlockDetector a deadlock detector
+      * @param interval         cache interval
+      * @param unit             cache interval time unit
+      */
+     public CachedThreadStatesGaugeSet(final ThreadMXBean threadMXBean, ThreadDeadlockDetector deadlockDetector,
+                                       long interval, TimeUnit unit) {
+         super(threadMXBean, deadlockDetector);
+         threadInfo = new CachedGauge<ThreadInfo[]>(interval, unit) {
+             @Override
+             protected ThreadInfo[] loadValue() {
+                 return CachedThreadStatesGaugeSet.super.getThreadInfo();
+             }
+         };
+     }
+ 
+     /**
+      * Creates a new set of gauges using the default MXBeans.
+      * Caches the information for the given interval and time unit.
+      *
+      * @param interval cache interval
+      * @param unit     cache interval time unit
+      */
+     public CachedThreadStatesGaugeSet(long interval, TimeUnit unit) {
+         this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector(), interval, unit);
+     }
+ 
+     @Override
+     ThreadInfo[] getThreadInfo() {
+         return threadInfo.getValue();
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-3.html new file mode 100644 index 0000000000..457cbd989a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-3.html @@ -0,0 +1,139 @@ + + + + + + + + Coverage Report > ClassLoadingGaugeSet + + + + + + +
+ + +

Coverage Summary for Class: ClassLoadingGaugeSet (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ClassLoadingGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/7) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import com.codahale.metrics.Gauge;
+ import com.codahale.metrics.Metric;
+ import com.codahale.metrics.MetricSet;
+ 
+ import java.lang.management.ClassLoadingMXBean;
+ import java.lang.management.ManagementFactory;
+ import java.util.HashMap;
+ import java.util.Map;
+ 
+ /**
+  * A set of gauges for JVM classloader usage.
+  */
+ public class ClassLoadingGaugeSet implements MetricSet {
+ 
+     private final ClassLoadingMXBean mxBean;
+ 
+     public ClassLoadingGaugeSet() {
+         this(ManagementFactory.getClassLoadingMXBean());
+     }
+ 
+     public ClassLoadingGaugeSet(ClassLoadingMXBean mxBean) {
+         this.mxBean = mxBean;
+     }
+ 
+     @Override
+     public Map<String, Metric> getMetrics() {
+         final Map<String, Metric> gauges = new HashMap<>();
+         gauges.put("loaded", (Gauge<Long>) mxBean::getTotalLoadedClassCount);
+         gauges.put("unloaded", (Gauge<Long>) mxBean::getUnloadedClassCount);
+ 
+         return gauges;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-4.html new file mode 100644 index 0000000000..0638b00d11 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-4.html @@ -0,0 +1,123 @@ + + + + + + + + Coverage Report > CpuTimeClock + + + + + + +
+ + +

Coverage Summary for Class: CpuTimeClock (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
CpuTimeClock + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/3) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import com.codahale.metrics.Clock;
+ 
+ import java.lang.management.ManagementFactory;
+ import java.lang.management.ThreadMXBean;
+ 
+ /**
+  * A clock implementation which returns the current thread's CPU time.
+  */
+ public class CpuTimeClock extends Clock {
+ 
+     private static final ThreadMXBean THREAD_MX_BEAN = ManagementFactory.getThreadMXBean();
+ 
+     @Override
+     public long getTick() {
+         return THREAD_MX_BEAN.getCurrentThreadCpuTime();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-5.html new file mode 100644 index 0000000000..195406974a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-5.html @@ -0,0 +1,154 @@ + + + + + + + + Coverage Report > FileDescriptorRatioGauge + + + + + + +
+ + +

Coverage Summary for Class: FileDescriptorRatioGauge (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
FileDescriptorRatioGauge + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import com.codahale.metrics.RatioGauge;
+ 
+ import java.lang.management.ManagementFactory;
+ import java.lang.management.OperatingSystemMXBean;
+ 
+ /**
+  * A gauge for the ratio of used to total file descriptors.
+  */
+ public class FileDescriptorRatioGauge extends RatioGauge {
+     private static boolean unixOperatingSystemMXBeanExists = false;
+ 
+     private final OperatingSystemMXBean os;
+ 
+     static {
+         try {
+             Class.forName("com.sun.management.UnixOperatingSystemMXBean");
+             unixOperatingSystemMXBeanExists = true;
+         } catch (ClassNotFoundException e) {
+             // do nothing
+         }
+     }
+ 
+     /**
+      * Creates a new gauge using the platform OS bean.
+      */
+     public FileDescriptorRatioGauge() {
+         this(ManagementFactory.getOperatingSystemMXBean());
+     }
+ 
+     /**
+      * Creates a new gauge using the given OS bean.
+      *
+      * @param os an {@link OperatingSystemMXBean}
+      */
+     public FileDescriptorRatioGauge(OperatingSystemMXBean os) {
+         this.os = os;
+     }
+ 
+     @Override
+     protected Ratio getRatio() {
+         if (unixOperatingSystemMXBeanExists && os instanceof com.sun.management.UnixOperatingSystemMXBean) {
+             final com.sun.management.UnixOperatingSystemMXBean unixOs = (com.sun.management.UnixOperatingSystemMXBean) os;
+             return Ratio.of(unixOs.getOpenFileDescriptorCount(), unixOs.getMaxFileDescriptorCount());
+         } else {
+             return Ratio.of(Double.NaN, Double.NaN);
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-6.html new file mode 100644 index 0000000000..dca0f5d868 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-6.html @@ -0,0 +1,157 @@ + + + + + + + + Coverage Report > GarbageCollectorMetricSet + + + + + + +
+ + +

Coverage Summary for Class: GarbageCollectorMetricSet (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
GarbageCollectorMetricSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/11) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import com.codahale.metrics.Gauge;
+ import com.codahale.metrics.Metric;
+ import com.codahale.metrics.MetricSet;
+ 
+ import java.lang.management.GarbageCollectorMXBean;
+ import java.lang.management.ManagementFactory;
+ import java.util.ArrayList;
+ import java.util.Collection;
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.regex.Pattern;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A set of gauges for the counts and elapsed times of garbage collections.
+  */
+ public class GarbageCollectorMetricSet implements MetricSet {
+     private static final Pattern WHITESPACE = Pattern.compile("[\\s]+");
+ 
+     private final List<GarbageCollectorMXBean> garbageCollectors;
+ 
+     /**
+      * Creates a new set of gauges for all discoverable garbage collectors.
+      */
+     public GarbageCollectorMetricSet() {
+         this(ManagementFactory.getGarbageCollectorMXBeans());
+     }
+ 
+     /**
+      * Creates a new set of gauges for the given collection of garbage collectors.
+      *
+      * @param garbageCollectors the garbage collectors
+      */
+     public GarbageCollectorMetricSet(Collection<GarbageCollectorMXBean> garbageCollectors) {
+         this.garbageCollectors = new ArrayList<>(garbageCollectors);
+     }
+ 
+     @Override
+     public Map<String, Metric> getMetrics() {
+         final Map<String, Metric> gauges = new HashMap<>();
+         for (final GarbageCollectorMXBean gc : garbageCollectors) {
+             final String name = WHITESPACE.matcher(gc.getName()).replaceAll("-");
+             gauges.put(name(name, "count"), (Gauge<Long>) gc::getCollectionCount);
+             gauges.put(name(name, "time"), (Gauge<Long>) gc::getCollectionTime);
+         }
+         return Collections.unmodifiableMap(gauges);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-7.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-7.html new file mode 100644 index 0000000000..9d79f838df --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-7.html @@ -0,0 +1,165 @@ + + + + + + + + Coverage Report > JmxAttributeGauge + + + + + + +
+ + +

Coverage Summary for Class: JmxAttributeGauge (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
JmxAttributeGauge + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 61.5% + + + (8/13) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import com.codahale.metrics.Gauge;
+ 
+ import java.io.IOException;
+ import javax.management.JMException;
+ import javax.management.MBeanServerConnection;
+ import javax.management.ObjectName;
+ import java.lang.management.ManagementFactory;
+ import java.util.Set;
+ 
+ /**
+  * A {@link Gauge} implementation which queries an {@link MBeanServerConnection} for an attribute of an object.
+  */
+ public class JmxAttributeGauge implements Gauge<Object> {
+     private final MBeanServerConnection mBeanServerConn;
+     private final ObjectName objectName;
+     private final String attributeName;
+ 
+     /**
+      * Creates a new JmxAttributeGauge.
+      *
+      * @param objectName    the name of the object
+      * @param attributeName the name of the object's attribute
+      */
+     public JmxAttributeGauge(ObjectName objectName, String attributeName) {
+         this(ManagementFactory.getPlatformMBeanServer(), objectName, attributeName);
+     }
+ 
+     /**
+      * Creates a new JmxAttributeGauge.
+      *
+      * @param mBeanServerConn the {@link MBeanServerConnection}
+      * @param objectName      the name of the object
+      * @param attributeName   the name of the object's attribute
+      */
+     public JmxAttributeGauge(MBeanServerConnection mBeanServerConn, ObjectName objectName, String attributeName) {
+         this.mBeanServerConn = mBeanServerConn;
+         this.objectName = objectName;
+         this.attributeName = attributeName;
+     }
+ 
+     @Override
+     public Object getValue() {
+         try {
+             return mBeanServerConn.getAttribute(getObjectName(), attributeName);
+         } catch (IOException | JMException e) {
+             return null;
+         }
+     }
+ 
+     private ObjectName getObjectName() throws IOException {
+         if (objectName.isPattern()) {
+             Set<ObjectName> foundNames = mBeanServerConn.queryNames(objectName, null);
+             if (foundNames.size() == 1) {
+                 return foundNames.iterator().next();
+             }
+         }
+         return objectName;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-8.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-8.html new file mode 100644 index 0000000000..8ff0015783 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-8.html @@ -0,0 +1,155 @@ + + + + + + + + Coverage Report > JvmAttributeGaugeSet + + + + + + +
+ + +

Coverage Summary for Class: JvmAttributeGaugeSet (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
JvmAttributeGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/4) + + + + 0% + + + (0/12) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import com.codahale.metrics.Gauge;
+ import com.codahale.metrics.Metric;
+ import com.codahale.metrics.MetricSet;
+ 
+ import java.lang.management.ManagementFactory;
+ import java.lang.management.RuntimeMXBean;
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.Locale;
+ import java.util.Map;
+ 
+ /**
+  * A set of gauges for the JVM name, vendor, and uptime.
+  */
+ public class JvmAttributeGaugeSet implements MetricSet {
+     private final RuntimeMXBean runtime;
+ 
+     /**
+      * Creates a new set of gauges.
+      */
+     public JvmAttributeGaugeSet() {
+         this(ManagementFactory.getRuntimeMXBean());
+     }
+ 
+     /**
+      * Creates a new set of gauges with the given {@link RuntimeMXBean}.
+      *
+      * @param runtime JVM management interface with access to system properties
+      */
+     public JvmAttributeGaugeSet(RuntimeMXBean runtime) {
+         this.runtime = runtime;
+     }
+ 
+     @Override
+     public Map<String, Metric> getMetrics() {
+         final Map<String, Metric> gauges = new HashMap<>();
+ 
+         gauges.put("name", (Gauge<String>) runtime::getName);
+         gauges.put("vendor", (Gauge<String>) () -> String.format(Locale.US,
+                 "%s %s %s (%s)",
+                 runtime.getVmVendor(),
+                 runtime.getVmName(),
+                 runtime.getVmVersion(),
+                 runtime.getSpecVersion()));
+         gauges.put("uptime", (Gauge<Long>) runtime::getUptime);
+ 
+         return Collections.unmodifiableMap(gauges);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-9.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-9.html new file mode 100644 index 0000000000..1157381526 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-9.html @@ -0,0 +1,274 @@ + + + + + + + + Coverage Report > MemoryUsageGaugeSet + + + + + + +
+ + +

Coverage Summary for Class: MemoryUsageGaugeSet (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
MemoryUsageGaugeSet + + 0% + + + (0/10) + + + + 0% + + + (0/37) + +
MemoryUsageGaugeSet$1 + + 0% + + + (0/2) + + + + 0% + + + (0/3) + +
MemoryUsageGaugeSet$2 + + 0% + + + (0/2) + + + + 0% + + + (0/3) + +
MemoryUsageGaugeSet$3 + + 0% + + + (0/2) + + + + 0% + + + (0/4) + +
Total + + 0% + + + (0/16) + + + + 0% + + + (0/47) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import com.codahale.metrics.Gauge;
+ import com.codahale.metrics.Metric;
+ import com.codahale.metrics.MetricSet;
+ import com.codahale.metrics.RatioGauge;
+ 
+ import java.lang.management.ManagementFactory;
+ import java.lang.management.MemoryMXBean;
+ import java.lang.management.MemoryPoolMXBean;
+ import java.lang.management.MemoryUsage;
+ import java.util.ArrayList;
+ import java.util.Collection;
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.regex.Pattern;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A set of gauges for JVM memory usage, including stats on heap vs. non-heap memory, plus
+  * GC-specific memory pools.
+  */
+ public class MemoryUsageGaugeSet implements MetricSet {
+     private static final Pattern WHITESPACE = Pattern.compile("[\\s]+");
+ 
+     private final MemoryMXBean mxBean;
+     private final List<MemoryPoolMXBean> memoryPools;
+ 
+     public MemoryUsageGaugeSet() {
+         this(ManagementFactory.getMemoryMXBean(), ManagementFactory.getMemoryPoolMXBeans());
+     }
+ 
+     public MemoryUsageGaugeSet(MemoryMXBean mxBean,
+                                Collection<MemoryPoolMXBean> memoryPools) {
+         this.mxBean = mxBean;
+         this.memoryPools = new ArrayList<>(memoryPools);
+     }
+ 
+     @Override
+     public Map<String, Metric> getMetrics() {
+         final Map<String, Metric> gauges = new HashMap<>();
+ 
+         gauges.put("total.init", (Gauge<Long>) () -> mxBean.getHeapMemoryUsage().getInit() +
+                 mxBean.getNonHeapMemoryUsage().getInit());
+         gauges.put("total.used", (Gauge<Long>) () -> mxBean.getHeapMemoryUsage().getUsed() +
+                 mxBean.getNonHeapMemoryUsage().getUsed());
+         gauges.put("total.max", (Gauge<Long>) () -> mxBean.getNonHeapMemoryUsage().getMax() == -1 ?
+                 -1 : mxBean.getHeapMemoryUsage().getMax() + mxBean.getNonHeapMemoryUsage().getMax());
+         gauges.put("total.committed", (Gauge<Long>) () -> mxBean.getHeapMemoryUsage().getCommitted() +
+                 mxBean.getNonHeapMemoryUsage().getCommitted());
+ 
+         gauges.put("heap.init", (Gauge<Long>) () -> mxBean.getHeapMemoryUsage().getInit());
+         gauges.put("heap.used", (Gauge<Long>) () -> mxBean.getHeapMemoryUsage().getUsed());
+         gauges.put("heap.max", (Gauge<Long>) () -> mxBean.getHeapMemoryUsage().getMax());
+         gauges.put("heap.committed", (Gauge<Long>) () -> mxBean.getHeapMemoryUsage().getCommitted());
+         gauges.put("heap.usage", new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 final MemoryUsage usage = mxBean.getHeapMemoryUsage();
+                 return Ratio.of(usage.getUsed(), usage.getMax());
+             }
+         });
+ 
+         gauges.put("non-heap.init", (Gauge<Long>) () -> mxBean.getNonHeapMemoryUsage().getInit());
+         gauges.put("non-heap.used", (Gauge<Long>) () -> mxBean.getNonHeapMemoryUsage().getUsed());
+         gauges.put("non-heap.max", (Gauge<Long>) () -> mxBean.getNonHeapMemoryUsage().getMax());
+         gauges.put("non-heap.committed", (Gauge<Long>) () -> mxBean.getNonHeapMemoryUsage().getCommitted());
+         gauges.put("non-heap.usage", new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 final MemoryUsage usage = mxBean.getNonHeapMemoryUsage();
+                 return Ratio.of(usage.getUsed(), usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());
+             }
+         });
+ 
+         for (final MemoryPoolMXBean pool : memoryPools) {
+             final String poolName = name("pools", WHITESPACE.matcher(pool.getName()).replaceAll("-"));
+ 
+             gauges.put(name(poolName, "usage"), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     MemoryUsage usage = pool.getUsage();
+                     return Ratio.of(usage.getUsed(),
+                             usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());
+                 }
+             });
+ 
+             gauges.put(name(poolName, "max"), (Gauge<Long>) () -> pool.getUsage().getMax());
+             gauges.put(name(poolName, "used"), (Gauge<Long>) () -> pool.getUsage().getUsed());
+             gauges.put(name(poolName, "committed"), (Gauge<Long>) () -> pool.getUsage().getCommitted());
+ 
+             // Only register GC usage metrics if the memory pool supports usage statistics.
+             if (pool.getCollectionUsage() != null) {
+                 gauges.put(name(poolName, "used-after-gc"), (Gauge<Long>) () ->
+                         pool.getCollectionUsage().getUsed());
+             }
+ 
+             gauges.put(name(poolName, "init"), (Gauge<Long>) () -> pool.getUsage().getInit());
+         }
+ 
+         return Collections.unmodifiableMap(gauges);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-a.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-a.html new file mode 100644 index 0000000000..521e58ae53 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-a.html @@ -0,0 +1,169 @@ + + + + + + + + Coverage Report > ThreadDeadlockDetector + + + + + + +
+ + +

Coverage Summary for Class: ThreadDeadlockDetector (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockDetector + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 30% + + + (6/20) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import java.lang.management.ManagementFactory;
+ import java.lang.management.ThreadInfo;
+ import java.lang.management.ThreadMXBean;
+ import java.util.Collections;
+ import java.util.HashSet;
+ import java.util.Set;
+ 
+ /**
+  * A utility class for detecting deadlocked threads.
+  */
+ public class ThreadDeadlockDetector {
+     private static final int MAX_STACK_TRACE_DEPTH = 100;
+ 
+     private final ThreadMXBean threads;
+ 
+     /**
+      * Creates a new detector.
+      */
+     public ThreadDeadlockDetector() {
+         this(ManagementFactory.getThreadMXBean());
+     }
+ 
+     /**
+      * Creates a new detector using the given {@link ThreadMXBean}.
+      *
+      * @param threads a {@link ThreadMXBean}
+      */
+     public ThreadDeadlockDetector(ThreadMXBean threads) {
+         this.threads = threads;
+     }
+ 
+     /**
+      * Returns a set of diagnostic stack traces for any deadlocked threads. If no threads are
+      * deadlocked, returns an empty set.
+      *
+      * @return stack traces for deadlocked threads or an empty set
+      */
+     public Set<String> getDeadlockedThreads() {
+         final long[] ids = threads.findDeadlockedThreads();
+         if (ids != null) {
+             final Set<String> deadlocks = new HashSet<>();
+             for (ThreadInfo info : threads.getThreadInfo(ids, MAX_STACK_TRACE_DEPTH)) {
+                 final StringBuilder stackTrace = new StringBuilder();
+                 for (StackTraceElement element : info.getStackTrace()) {
+                     stackTrace.append("\t at ")
+                             .append(element.toString())
+                             .append(String.format("%n"));
+                 }
+ 
+                 deadlocks.add(
+                         String.format("%s locked on %s (owned by %s):%n%s",
+                                 info.getThreadName(),
+                                 info.getLockName(),
+                                 info.getLockOwnerName(),
+                                 stackTrace.toString()
+                         )
+                 );
+             }
+             return Collections.unmodifiableSet(deadlocks);
+         }
+         return Collections.emptySet();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-b.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-b.html new file mode 100644 index 0000000000..dc652bf11f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-b.html @@ -0,0 +1,217 @@ + + + + + + + + Coverage Report > ThreadDump + + + + + + +
+ + +

Coverage Summary for Class: ThreadDump (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ThreadDump + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 81.2% + + + (39/48) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import java.io.OutputStream;
+ import java.io.OutputStreamWriter;
+ import java.io.PrintWriter;
+ import java.lang.management.LockInfo;
+ import java.lang.management.MonitorInfo;
+ import java.lang.management.ThreadInfo;
+ import java.lang.management.ThreadMXBean;
+ 
+ import static java.nio.charset.StandardCharsets.UTF_8;
+ 
+ 
+ /**
+  * A convenience class for getting a thread dump.
+  */
+ public class ThreadDump {
+ 
+     private final ThreadMXBean threadMXBean;
+ 
+     public ThreadDump(ThreadMXBean threadMXBean) {
+         this.threadMXBean = threadMXBean;
+     }
+ 
+     /**
+      * Dumps all of the threads' current information, including synchronization, to an output stream.
+      *
+      * @param out an output stream
+      */
+     public void dump(OutputStream out) {
+         dump(true, true, out);
+     }
+ 
+     /**
+      * Dumps all of the threads' current information, optionally including synchronization, to an output stream.
+      *
+      * Having control over including synchronization info allows using this method (and its wrappers, i.e.
+      * ThreadDumpServlet) in environments where getting object monitor and/or ownable synchronizer usage is not
+      * supported. It can also speed things up.
+      *
+      * See {@link ThreadMXBean#dumpAllThreads(boolean, boolean)}
+      *
+      * @param lockedMonitors dump all locked monitors if true
+      * @param lockedSynchronizers dump all locked ownable synchronizers if true
+      * @param out an output stream
+      */
+     public void dump(boolean lockedMonitors, boolean lockedSynchronizers, OutputStream out) {
+         final ThreadInfo[] threads = this.threadMXBean.dumpAllThreads(lockedMonitors, lockedSynchronizers);
+         final PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, UTF_8));
+ 
+         for (int ti = threads.length - 1; ti >= 0; ti--) {
+             final ThreadInfo t = threads[ti];
+             writer.printf("\"%s\" id=%d state=%s",
+                     t.getThreadName(),
+                     t.getThreadId(),
+                     t.getThreadState());
+             final LockInfo lock = t.getLockInfo();
+             if (lock != null && t.getThreadState() != Thread.State.BLOCKED) {
+                 writer.printf("%n    - waiting on <0x%08x> (a %s)",
+                         lock.getIdentityHashCode(),
+                         lock.getClassName());
+                 writer.printf("%n    - locked <0x%08x> (a %s)",
+                         lock.getIdentityHashCode(),
+                         lock.getClassName());
+             } else if (lock != null && t.getThreadState() == Thread.State.BLOCKED) {
+                 writer.printf("%n    - waiting to lock <0x%08x> (a %s)",
+                         lock.getIdentityHashCode(),
+                         lock.getClassName());
+             }
+ 
+             if (t.isSuspended()) {
+                 writer.print(" (suspended)");
+             }
+ 
+             if (t.isInNative()) {
+                 writer.print(" (running in native)");
+             }
+ 
+             writer.println();
+             if (t.getLockOwnerName() != null) {
+                 writer.printf("     owned by %s id=%d%n", t.getLockOwnerName(), t.getLockOwnerId());
+             }
+ 
+             final StackTraceElement[] elements = t.getStackTrace();
+             final MonitorInfo[] monitors = t.getLockedMonitors();
+ 
+             for (int i = 0; i < elements.length; i++) {
+                 final StackTraceElement element = elements[i];
+                 writer.printf("    at %s%n", element);
+                 for (int j = 1; j < monitors.length; j++) {
+                     final MonitorInfo monitor = monitors[j];
+                     if (monitor.getLockedStackDepth() == i) {
+                         writer.printf("      - locked %s%n", monitor);
+                     }
+                 }
+             }
+             writer.println();
+ 
+             final LockInfo[] locks = t.getLockedSynchronizers();
+             if (locks.length > 0) {
+                 writer.printf("    Locked synchronizers: count = %d%n", locks.length);
+                 for (LockInfo l : locks) {
+                     writer.printf("      - %s%n", l);
+                 }
+                 writer.println();
+             }
+         }
+ 
+         writer.println();
+         writer.flush();
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-c.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-c.html new file mode 100644 index 0000000000..6ed9cf1e83 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-c.html @@ -0,0 +1,185 @@ + + + + + + + + Coverage Report > ThreadStatesGaugeSet + + + + + + +
+ + +

Coverage Summary for Class: ThreadStatesGaugeSet (com.codahale.metrics.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ThreadStatesGaugeSet + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/22) + +
+ +
+
+ + +
+ package com.codahale.metrics.jvm;
+ 
+ import com.codahale.metrics.Gauge;
+ import com.codahale.metrics.Metric;
+ import com.codahale.metrics.MetricSet;
+ 
+ import java.lang.management.ManagementFactory;
+ import java.lang.management.ThreadInfo;
+ import java.lang.management.ThreadMXBean;
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.Map;
+ import java.util.Set;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A set of gauges for the number of threads in their various states and deadlock detection.
+  */
+ public class ThreadStatesGaugeSet implements MetricSet {
+ 
+     // do not compute stack traces.
+     private final static int STACK_TRACE_DEPTH = 0;
+ 
+     private final ThreadMXBean threads;
+     private final ThreadDeadlockDetector deadlockDetector;
+ 
+     /**
+      * Creates a new set of gauges using the default MXBeans.
+      */
+     public ThreadStatesGaugeSet() {
+         this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector());
+     }
+ 
+     /**
+      * Creates a new set of gauges using the given MXBean and detector.
+      *
+      * @param threads          a thread MXBean
+      * @param deadlockDetector a deadlock detector
+      */
+     public ThreadStatesGaugeSet(ThreadMXBean threads,
+                                 ThreadDeadlockDetector deadlockDetector) {
+         this.threads = threads;
+         this.deadlockDetector = deadlockDetector;
+     }
+ 
+     @Override
+     public Map<String, Metric> getMetrics() {
+         final Map<String, Metric> gauges = new HashMap<>();
+ 
+         for (final Thread.State state : Thread.State.values()) {
+             gauges.put(name(state.toString().toLowerCase(), "count"),
+                     (Gauge<Object>) () -> getThreadCount(state));
+         }
+ 
+         gauges.put("count", (Gauge<Integer>) threads::getThreadCount);
+         gauges.put("daemon.count", (Gauge<Integer>) threads::getDaemonThreadCount);
+         gauges.put("peak.count", (Gauge<Integer>) threads::getPeakThreadCount);
+         gauges.put("total_started.count", (Gauge<Long>) threads::getTotalStartedThreadCount);
+         gauges.put("deadlock.count", (Gauge<Integer>) () -> deadlockDetector.getDeadlockedThreads().size());
+         gauges.put("deadlocks", (Gauge<Set<String>>) deadlockDetector::getDeadlockedThreads);
+ 
+         return Collections.unmodifiableMap(gauges);
+     }
+ 
+     private int getThreadCount(Thread.State state) {
+         final ThreadInfo[] allThreads = getThreadInfo();
+         int count = 0;
+         for (ThreadInfo info : allThreads) {
+             if (info != null && info.getThreadState() == state) {
+                 count++;
+             }
+         }
+         return count;
+     }
+ 
+     ThreadInfo[] getThreadInfo() {
+         return threads.getThreadInfo(threads.getAllThreadIds(), STACK_TRACE_DEPTH);
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index.html b/metrics-complete-report-initial-htmlReport/ns-19/index.html new file mode 100644 index 0000000000..810f0dfbe7 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-19/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..15b22e3cf2 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..4261db1855 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..1d9c4f0f2d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..5e6109106e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..e71613c7dc --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..bdb827d910 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..a97efd3775 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..ec2c820ccf --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..79ad6ee01d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.log4j2 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.log4j2

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.log4j2 + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-19/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-19/sources/source-1.html new file mode 100644 index 0000000000..5963f3403a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-19/sources/source-1.html @@ -0,0 +1,268 @@ + + + + + + + + Coverage Report > InstrumentedAppender + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.log4j2)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedAppender + + 87.5% + + + (7/8) + + + + 96.7% + + + (29/30) + +
InstrumentedAppender$1 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
Total + + 88.9% + + + (8/9) + + + + 96.8% + + + (30/31) + +
+ +
+
+ + +
+ package com.codahale.metrics.log4j2;
+ 
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.SharedMetricRegistries;
+ import org.apache.logging.log4j.core.Appender;
+ import org.apache.logging.log4j.core.Filter;
+ import org.apache.logging.log4j.core.Layout;
+ import org.apache.logging.log4j.core.LogEvent;
+ import org.apache.logging.log4j.core.appender.AbstractAppender;
+ import org.apache.logging.log4j.core.config.plugins.Plugin;
+ import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
+ import org.apache.logging.log4j.core.config.plugins.PluginFactory;
+ 
+ import java.io.Serializable;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A Log4J 2.x {@link Appender} which has seven meters, one for each logging level and one for the total
+  * number of statements being logged. The meter names are the logging level names appended to the
+  * name of the appender.
+  */
+ @Plugin(name = "MetricsAppender", category = "Core", elementType = "appender")
+ public class InstrumentedAppender extends AbstractAppender {
+ 
+     private transient final MetricRegistry registry;
+ 
+     private transient Meter all;
+     private transient Meter trace;
+     private transient Meter debug;
+     private transient Meter info;
+     private transient Meter warn;
+     private transient Meter error;
+     private transient Meter fatal;
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      *
+      * @param registryName     the name of the registry in {@link SharedMetricRegistries}
+      * @param filter           The Filter to associate with the Appender.
+      * @param layout           The layout to use to format the event.
+      * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
+      *                         logged and then passed to the application.
+      */
+     public InstrumentedAppender(String registryName, Filter filter, Layout<? extends Serializable> layout, boolean ignoreExceptions) {
+         this(SharedMetricRegistries.getOrCreate(registryName), filter, layout, ignoreExceptions);
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      *
+      * @param registryName the name of the registry in {@link SharedMetricRegistries}
+      */
+     public InstrumentedAppender(String registryName) {
+         this(SharedMetricRegistries.getOrCreate(registryName));
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry.
+      *
+      * @param registry the metric registry
+      */
+     public InstrumentedAppender(MetricRegistry registry) {
+         this(registry, null, null, true);
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry.
+      *
+      * @param registry         the metric registry
+      * @param filter           The Filter to associate with the Appender.
+      * @param layout           The layout to use to format the event.
+      * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
+      *                         logged and then passed to the application.
+      */
+     public InstrumentedAppender(MetricRegistry registry, Filter filter, Layout<? extends Serializable> layout, boolean ignoreExceptions) {
+         super(name(Appender.class), filter, layout, ignoreExceptions);
+         this.registry = registry;
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given appender name and registry.
+      *
+      * @param appenderName The name of the appender.
+      * @param registry     the metric registry
+      */
+     public InstrumentedAppender(String appenderName, MetricRegistry registry) {
+         super(appenderName, null, null, true);
+         this.registry = registry;
+     }
+ 
+     @PluginFactory
+     public static InstrumentedAppender createAppender(
+             @PluginAttribute("name") String name,
+             @PluginAttribute(value = "registryName", defaultString = "log4j2Metrics") String registry) {
+         return new InstrumentedAppender(name, SharedMetricRegistries.getOrCreate(registry));
+     }
+ 
+     @Override
+     public void start() {
+         this.all = registry.meter(name(getName(), "all"));
+         this.trace = registry.meter(name(getName(), "trace"));
+         this.debug = registry.meter(name(getName(), "debug"));
+         this.info = registry.meter(name(getName(), "info"));
+         this.warn = registry.meter(name(getName(), "warn"));
+         this.error = registry.meter(name(getName(), "error"));
+         this.fatal = registry.meter(name(getName(), "fatal"));
+         super.start();
+     }
+ 
+     @Override
+     public void append(LogEvent event) {
+         all.mark();
+         switch (event.getLevel().getStandardLevel()) {
+             case TRACE:
+                 trace.mark();
+                 break;
+             case DEBUG:
+                 debug.mark();
+                 break;
+             case INFO:
+                 info.mark();
+                 break;
+             case WARN:
+                 warn.mark();
+                 break;
+             case ERROR:
+                 error.mark();
+                 break;
+             case FATAL:
+                 fatal.mark();
+                 break;
+             default:
+                 break;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index.html b/metrics-complete-report-initial-htmlReport/ns-1a/index.html new file mode 100644 index 0000000000..65059352e3 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1a/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..f803900c26 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..724a5b21da --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..1abc930665 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..e81fefb9c0 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..0901e96d3b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..4e37cadc12 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..c2492b6144 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..84c0789409 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..a8caf321eb --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.logback + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.logback

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.logback + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-1a/sources/source-1.html new file mode 100644 index 0000000000..ebbdcad800 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1a/sources/source-1.html @@ -0,0 +1,195 @@ + + + + + + + + Coverage Report > InstrumentedAppender + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.logback)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + +
+ package com.codahale.metrics.logback;
+ 
+ import ch.qos.logback.classic.Level;
+ import ch.qos.logback.classic.spi.ILoggingEvent;
+ import ch.qos.logback.core.Appender;
+ import ch.qos.logback.core.UnsynchronizedAppenderBase;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.SharedMetricRegistries;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
+  * number of statements being logged. The meter names are the logging level names appended to the
+  * name of the appender.
+  */
+ public class InstrumentedAppender extends UnsynchronizedAppenderBase<ILoggingEvent> {
+     private final MetricRegistry registry;
+     public static final String DEFAULT_REGISTRY = "logback-metrics";
+     public static final String REGISTRY_PROPERTY_NAME = "metrics.logback.registry";
+ 
+     private Meter all;
+     private Meter trace;
+     private Meter debug;
+     private Meter info;
+     private Meter warn;
+     private Meter error;
+ 
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      */
+     public InstrumentedAppender() {
+         this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      *
+      * @param registryName the name of the registry in {@link SharedMetricRegistries}
+      */
+     public InstrumentedAppender(String registryName) {
+         this(SharedMetricRegistries.getOrCreate(registryName));
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry.
+      *
+      * @param registry the metric registry
+      */
+     public InstrumentedAppender(MetricRegistry registry) {
+         this.registry = registry;
+         setName(Appender.class.getName());
+     }
+ 
+     @Override
+     public void start() {
+         this.all = registry.meter(name(getName(), "all"));
+         this.trace = registry.meter(name(getName(), "trace"));
+         this.debug = registry.meter(name(getName(), "debug"));
+         this.info = registry.meter(name(getName(), "info"));
+         this.warn = registry.meter(name(getName(), "warn"));
+         this.error = registry.meter(name(getName(), "error"));
+         super.start();
+     }
+ 
+     @Override
+     protected void append(ILoggingEvent event) {
+         all.mark();
+         switch (event.getLevel().toInt()) {
+             case Level.TRACE_INT:
+                 trace.mark();
+                 break;
+             case Level.DEBUG_INT:
+                 debug.mark();
+                 break;
+             case Level.INFO_INT:
+                 info.mark();
+                 break;
+             case Level.WARN_INT:
+                 warn.mark();
+                 break;
+             case Level.ERROR_INT:
+                 error.mark();
+                 break;
+             default:
+                 break;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index.html b/metrics-complete-report-initial-htmlReport/ns-1b/index.html new file mode 100644 index 0000000000..0dcc5ef7ef --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1b/index.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..8f52d8d26c --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..21093638d9 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..551a452f27 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..0392015768 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..0514c9853f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..9c9c6ef7dd --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..76d3acf9ce --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..bcb09112a2 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..f15c389769 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > com.codahale.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-1b/sources/source-1.html new file mode 100644 index 0000000000..95fdf70d97 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1b/sources/source-1.html @@ -0,0 +1,367 @@ + + + + + + + + Coverage Report > AbstractInstrumentedFilter + + + + + + +
+ + +

Coverage Summary for Class: AbstractInstrumentedFilter (com.codahale.metrics.servlet)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/7) + + + + 0% + + + (0/45) + +
AbstractInstrumentedFilter$AsyncResultListener + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
AbstractInstrumentedFilter$StatusExposingServletResponse + + 0% + + + (0/6) + + + + 0% + + + (0/11) + +
Total + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
+ +
+
+ + +
+ package com.codahale.metrics.servlet;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ 
+ import javax.servlet.AsyncEvent;
+ import javax.servlet.AsyncListener;
+ import javax.servlet.Filter;
+ import javax.servlet.FilterChain;
+ import javax.servlet.FilterConfig;
+ import javax.servlet.ServletException;
+ import javax.servlet.ServletRequest;
+ import javax.servlet.ServletResponse;
+ import javax.servlet.http.HttpServletResponse;
+ import javax.servlet.http.HttpServletResponseWrapper;
+ import java.io.IOException;
+ import java.util.Map;
+ import java.util.Map.Entry;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * {@link Filter} implementation which captures request information and a breakdown of the response
+  * codes being returned.
+  */
+ public abstract class AbstractInstrumentedFilter implements Filter {
+     static final String METRIC_PREFIX = "name-prefix";
+ 
+     private final String otherMetricName;
+     private final Map<Integer, String> meterNamesByStatusCode;
+     private final String registryAttribute;
+ 
+     // initialized after call of init method
+     private ConcurrentMap<Integer, Meter> metersByStatusCode;
+     private Meter otherMeter;
+     private Meter timeoutsMeter;
+     private Meter errorsMeter;
+     private Counter activeRequests;
+     private Timer requestTimer;
+ 
+ 
+     /**
+      * Creates a new instance of the filter.
+      *
+      * @param registryAttribute      the attribute used to look up the metrics registry in the
+      *                               servlet context
+      * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
+      *                               interested in.
+      * @param otherMetricName        The name used for the catch-all meter.
+      */
+     protected AbstractInstrumentedFilter(String registryAttribute,
+                                          Map<Integer, String> meterNamesByStatusCode,
+                                          String otherMetricName) {
+         this.registryAttribute = registryAttribute;
+         this.otherMetricName = otherMetricName;
+         this.meterNamesByStatusCode = meterNamesByStatusCode;
+     }
+ 
+     @Override
+     public void init(FilterConfig filterConfig) throws ServletException {
+         final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);
+ 
+         String metricName = filterConfig.getInitParameter(METRIC_PREFIX);
+         if (metricName == null || metricName.isEmpty()) {
+             metricName = getClass().getName();
+         }
+ 
+         this.metersByStatusCode = new ConcurrentHashMap<>(meterNamesByStatusCode.size());
+         for (Entry<Integer, String> entry : meterNamesByStatusCode.entrySet()) {
+             metersByStatusCode.put(entry.getKey(),
+                     metricsRegistry.meter(name(metricName, entry.getValue())));
+         }
+         this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));
+         this.timeoutsMeter = metricsRegistry.meter(name(metricName, "timeouts"));
+         this.errorsMeter = metricsRegistry.meter(name(metricName, "errors"));
+         this.activeRequests = metricsRegistry.counter(name(metricName, "activeRequests"));
+         this.requestTimer = metricsRegistry.timer(name(metricName, "requests"));
+ 
+     }
+ 
+     private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
+         final MetricRegistry metricsRegistry;
+ 
+         final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);
+         if (o instanceof MetricRegistry) {
+             metricsRegistry = (MetricRegistry) o;
+         } else {
+             metricsRegistry = new MetricRegistry();
+         }
+         return metricsRegistry;
+     }
+ 
+     @Override
+     public void destroy() {
+ 
+     }
+ 
+     @Override
+     public void doFilter(ServletRequest request,
+                          ServletResponse response,
+                          FilterChain chain) throws IOException, ServletException {
+         final StatusExposingServletResponse wrappedResponse =
+                 new StatusExposingServletResponse((HttpServletResponse) response);
+         activeRequests.inc();
+         final Timer.Context context = requestTimer.time();
+         boolean error = false;
+         try {
+             chain.doFilter(request, wrappedResponse);
+         } catch (IOException | RuntimeException | ServletException e) {
+             error = true;
+             throw e;
+         } finally {
+             if (!error && request.isAsyncStarted()) {
+                 request.getAsyncContext().addListener(new AsyncResultListener(context));
+             } else {
+                 context.stop();
+                 activeRequests.dec();
+                 if (error) {
+                     errorsMeter.mark();
+                 } else {
+                     markMeterForStatusCode(wrappedResponse.getStatus());
+                 }
+             }
+         }
+     }
+ 
+     private void markMeterForStatusCode(int status) {
+         final Meter metric = metersByStatusCode.get(status);
+         if (metric != null) {
+             metric.mark();
+         } else {
+             otherMeter.mark();
+         }
+     }
+ 
+     private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
+         // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
+         private int httpStatus = 200;
+ 
+         public StatusExposingServletResponse(HttpServletResponse response) {
+             super(response);
+         }
+ 
+         @Override
+         public void sendError(int sc) throws IOException {
+             httpStatus = sc;
+             super.sendError(sc);
+         }
+ 
+         @Override
+         public void sendError(int sc, String msg) throws IOException {
+             httpStatus = sc;
+             super.sendError(sc, msg);
+         }
+ 
+         @Override
+         public void setStatus(int sc) {
+             httpStatus = sc;
+             super.setStatus(sc);
+         }
+ 
+         @Override
+         @SuppressWarnings("deprecation")
+         public void setStatus(int sc, String sm) {
+             httpStatus = sc;
+             super.setStatus(sc, sm);
+         }
+ 
+         @Override
+         public int getStatus() {
+             return httpStatus;
+         }
+     }
+ 
+     private class AsyncResultListener implements AsyncListener {
+         private Timer.Context context;
+         private boolean done = false;
+ 
+         public AsyncResultListener(Timer.Context context) {
+             this.context = context;
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             if (!done) {
+                 HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();
+                 context.stop();
+                 activeRequests.dec();
+                 markMeterForStatusCode(suppliedResponse.getStatus());
+             }
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             context.stop();
+             activeRequests.dec();
+             timeoutsMeter.mark();
+             done = true;
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+             context.stop();
+             activeRequests.dec();
+             errorsMeter.mark();
+             done = true;
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+ 
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-1b/sources/source-2.html new file mode 100644 index 0000000000..adba313f17 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1b/sources/source-2.html @@ -0,0 +1,152 @@ + + + + + + + + Coverage Report > InstrumentedFilter + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedFilter (com.codahale.metrics.servlet)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
+ +
+
+ + +
+ package com.codahale.metrics.servlet;
+ 
+ import java.util.HashMap;
+ import java.util.Map;
+ 
+ /**
+  * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
+  * to capture information about. <p>Use it in your servlet.xml like this:<p>
+  * <pre>{@code
+  * <filter>
+  *     <filter-name>instrumentedFilter</filter-name>
+  *     <filter-class>com.codahale.metrics.servlet.InstrumentedFilter</filter-class>
+  * </filter>
+  * <filter-mapping>
+  *     <filter-name>instrumentedFilter</filter-name>
+  *     <url-pattern>/*</url-pattern>
+  * </filter-mapping>
+  * }</pre>
+  */
+ public class InstrumentedFilter extends AbstractInstrumentedFilter {
+     public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + ".registry";
+ 
+     private static final String NAME_PREFIX = "responseCodes.";
+     private static final int OK = 200;
+     private static final int CREATED = 201;
+     private static final int NO_CONTENT = 204;
+     private static final int BAD_REQUEST = 400;
+     private static final int NOT_FOUND = 404;
+     private static final int SERVER_ERROR = 500;
+ 
+     /**
+      * Creates a new instance of the filter.
+      */
+     public InstrumentedFilter() {
+         super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + "other");
+     }
+ 
+     private static Map<Integer, String> createMeterNamesByStatusCode() {
+         final Map<Integer, String> meterNamesByStatusCode = new HashMap<>(6);
+         meterNamesByStatusCode.put(OK, NAME_PREFIX + "ok");
+         meterNamesByStatusCode.put(CREATED, NAME_PREFIX + "created");
+         meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + "noContent");
+         meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + "badRequest");
+         meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + "notFound");
+         meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + "serverError");
+         return meterNamesByStatusCode;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-1b/sources/source-3.html new file mode 100644 index 0000000000..7461dc7bc9 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1b/sources/source-3.html @@ -0,0 +1,131 @@ + + + + + + + + Coverage Report > InstrumentedFilterContextListener + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedFilterContextListener (com.codahale.metrics.servlet)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+
+ + +
+ package com.codahale.metrics.servlet;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ 
+ import javax.servlet.ServletContextEvent;
+ import javax.servlet.ServletContextListener;
+ 
+ /**
+  * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
+  * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
+  * application.
+  */
+ public abstract class InstrumentedFilterContextListener implements ServletContextListener {
+     /**
+      * @return the {@link MetricRegistry} to inject into the servlet context.
+      */
+     protected abstract MetricRegistry getMetricRegistry();
+ 
+     @Override
+     public void contextInitialized(ServletContextEvent sce) {
+         sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());
+     }
+ 
+     @Override
+     public void contextDestroyed(ServletContextEvent sce) {
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index.html b/metrics-complete-report-initial-htmlReport/ns-1c/index.html new file mode 100644 index 0000000000..db5535719b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1c/index.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..b72995b365 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..b7bb3e5d6b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..f5ea8ea05e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..1468ccd754 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..9e1d1c444a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..d008c00f96 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..c51acb751e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..addd48ccff --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..448f64a921 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.8% + + + (211/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-1.html new file mode 100644 index 0000000000..9f42865228 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-1.html @@ -0,0 +1,293 @@ + + + + + + + + Coverage Report > AdminServlet + + + + + + +
+ + +

Coverage Summary for Class: AdminServlet (com.codahale.metrics.servlets)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
+ +
+
+ + +
+ package com.codahale.metrics.servlets;
+ 
+ import javax.servlet.ServletConfig;
+ import javax.servlet.ServletContext;
+ import javax.servlet.ServletException;
+ import javax.servlet.http.HttpServlet;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ import java.io.IOException;
+ import java.io.PrintWriter;
+ import java.text.MessageFormat;
+ 
+ public class AdminServlet extends HttpServlet {
+     public static final String DEFAULT_HEALTHCHECK_URI = "/healthcheck";
+     public static final String DEFAULT_METRICS_URI = "/metrics";
+     public static final String DEFAULT_PING_URI = "/ping";
+     public static final String DEFAULT_THREADS_URI = "/threads";
+     public static final String DEFAULT_CPU_PROFILE_URI = "/pprof";
+ 
+     public static final String METRICS_ENABLED_PARAM_KEY = "metrics-enabled";
+     public static final String METRICS_URI_PARAM_KEY = "metrics-uri";
+     public static final String PING_ENABLED_PARAM_KEY = "ping-enabled";
+     public static final String PING_URI_PARAM_KEY = "ping-uri";
+     public static final String THREADS_ENABLED_PARAM_KEY = "threads-enabled";
+     public static final String THREADS_URI_PARAM_KEY = "threads-uri";
+     public static final String HEALTHCHECK_ENABLED_PARAM_KEY = "healthcheck-enabled";
+     public static final String HEALTHCHECK_URI_PARAM_KEY = "healthcheck-uri";
+     public static final String SERVICE_NAME_PARAM_KEY = "service-name";
+     public static final String CPU_PROFILE_ENABLED_PARAM_KEY = "cpu-profile-enabled";
+     public static final String CPU_PROFILE_URI_PARAM_KEY = "cpu-profile-uri";
+ 
+     private static final String BASE_TEMPLATE =
+             "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"%n" +
+                     "        \"http://www.w3.org/TR/html4/loose.dtd\">%n" +
+                     "<html>%n" +
+                     "<head>%n" +
+                     "  <title>Metrics{10}</title>%n" +
+                     "</head>%n" +
+                     "<body>%n" +
+                     "  <h1>Operational Menu{10}</h1>%n" +
+                     "  <ul>%n" +
+                     "%s" +
+                     "  </ul>%n" +
+                     "</body>%n" +
+                     "</html>";
+     private static final String METRICS_LINK = "    <li><a href=\"{0}{1}?pretty=true\">Metrics</a></li>%n";
+     private static final String PING_LINK = "    <li><a href=\"{2}{3}\">Ping</a></li>%n" ;
+     private static final String THREADS_LINK = "    <li><a href=\"{4}{5}\">Threads</a></li>%n" ;
+     private static final String HEALTHCHECK_LINK = "    <li><a href=\"{6}{7}?pretty=true\">Healthcheck</a></li>%n" ;
+     private static final String CPU_PROFILE_LINK = "    <li><a href=\"{8}{9}\">CPU Profile</a></li>%n" +
+             "    <li><a href=\"{8}{9}?state=blocked\">CPU Contention</a></li>%n";
+ 
+ 
+     private static final String CONTENT_TYPE = "text/html";
+     private static final long serialVersionUID = -2850794040708785318L;
+ 
+     private transient HealthCheckServlet healthCheckServlet;
+     private transient MetricsServlet metricsServlet;
+     private transient PingServlet pingServlet;
+     private transient ThreadDumpServlet threadDumpServlet;
+     private transient CpuProfileServlet cpuProfileServlet;
+     private transient boolean metricsEnabled;
+     private transient String metricsUri;
+     private transient boolean pingEnabled;
+     private transient String pingUri;
+     private transient boolean threadsEnabled;
+     private transient String threadsUri;
+     private transient boolean healthcheckEnabled;
+     private transient String healthcheckUri;
+     private transient boolean cpuProfileEnabled;
+     private transient String cpuProfileUri;
+     private transient String serviceName;
+     private transient String pageContentTemplate;
+ 
+     @Override
+     public void init(ServletConfig config) throws ServletException {
+         super.init(config);
+ 
+         final ServletContext context = config.getServletContext();
+         final StringBuilder servletLinks = new StringBuilder();
+ 
+         this.metricsEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), "true"));
+         if (this.metricsEnabled) {
+             servletLinks.append(METRICS_LINK);
+         }
+         this.metricsServlet = new MetricsServlet();
+         metricsServlet.init(config);
+ 
+         this.pingEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), "true"));
+         if (this.pingEnabled) {
+             servletLinks.append(PING_LINK);
+         }
+         this.pingServlet = new PingServlet();
+         pingServlet.init(config);
+ 
+         this.threadsEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), "true"));
+         if (this.threadsEnabled) {
+             servletLinks.append(THREADS_LINK);
+         }
+         this.threadDumpServlet = new ThreadDumpServlet();
+         threadDumpServlet.init(config);
+ 
+         this.healthcheckEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), "true"));
+         if (this.healthcheckEnabled) {
+             servletLinks.append(HEALTHCHECK_LINK);
+         }
+         this.healthCheckServlet = new HealthCheckServlet();
+         healthCheckServlet.init(config);
+ 
+         this.cpuProfileEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), "true"));
+         if (this.cpuProfileEnabled) {
+             servletLinks.append(CPU_PROFILE_LINK);
+         }
+         this.cpuProfileServlet = new CpuProfileServlet();
+         cpuProfileServlet.init(config);
+ 
+         pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));
+ 
+         this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);
+         this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);
+         this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);
+         this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);
+         this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);
+         this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);
+     }
+ 
+     @Override
+     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+         final String path = req.getContextPath() + req.getServletPath();
+ 
+         resp.setStatus(HttpServletResponse.SC_OK);
+         resp.setHeader("Cache-Control", "must-revalidate,no-cache,no-store");
+         resp.setContentType(CONTENT_TYPE);
+         try (PrintWriter writer = resp.getWriter()) {
+             writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,
+                     threadsUri, path, healthcheckUri, path, cpuProfileUri,
+                     serviceName == null ? "" : " (" + serviceName + ")"));
+         }
+     }
+ 
+     @Override
+     protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+         final String uri = req.getPathInfo();
+         if (uri == null || uri.equals("/")) {
+             super.service(req, resp);
+         } else if (uri.equals(healthcheckUri)) {
+             if (healthcheckEnabled) {
+                 healthCheckServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else if (uri.startsWith(metricsUri)) {
+             if (metricsEnabled) {
+                 metricsServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else if (uri.equals(pingUri)) {
+             if (pingEnabled) {
+                 pingServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else if (uri.equals(threadsUri)) {
+             if (threadsEnabled) {
+                 threadDumpServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else if (uri.equals(cpuProfileUri)) {
+             if (cpuProfileEnabled) {
+                 cpuProfileServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else {
+             resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+         }
+     }
+ 
+     private static String getParam(String initParam, String defaultValue) {
+         return initParam == null ? defaultValue : initParam;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-2.html new file mode 100644 index 0000000000..6956f226f7 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-2.html @@ -0,0 +1,183 @@ + + + + + + + + Coverage Report > CpuProfileServlet + + + + + + +
+ + +

Coverage Summary for Class: CpuProfileServlet (com.codahale.metrics.servlets)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
+ +
+
+ + +
+ package com.codahale.metrics.servlets;
+ 
+ import java.io.IOException;
+ import java.io.OutputStream;
+ import java.time.Duration;
+ import java.util.concurrent.locks.Lock;
+ import java.util.concurrent.locks.ReentrantLock;
+ import javax.servlet.ServletException;
+ import javax.servlet.http.HttpServlet;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ 
+ import com.papertrail.profiler.CpuProfile;
+ 
+ /**
+  * An HTTP servlets which outputs a <a href="https://github.com/gperftools/gperftools">pprof</a> parseable response.
+  */
+ public class CpuProfileServlet extends HttpServlet {
+     private static final long serialVersionUID = -668666696530287501L;
+     private static final String CONTENT_TYPE = "pprof/raw";
+     private static final String CACHE_CONTROL = "Cache-Control";
+     private static final String NO_CACHE = "must-revalidate,no-cache,no-store";
+     private final Lock lock = new ReentrantLock();
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+ 
+         int duration = 10;
+         if (req.getParameter("duration") != null) {
+             try {
+                 duration = Integer.parseInt(req.getParameter("duration"));
+             } catch (NumberFormatException e) {
+                 duration = 10;
+             }
+         }
+ 
+         int frequency = 100;
+         if (req.getParameter("frequency") != null) {
+             try {
+                 frequency = Integer.parseInt(req.getParameter("frequency"));
+                 frequency = Math.min(Math.max(frequency, 1), 1000);
+             } catch (NumberFormatException e) {
+                 frequency = 100;
+             }
+         }
+ 
+         final Thread.State state;
+         if ("blocked".equalsIgnoreCase(req.getParameter("state"))) {
+             state = Thread.State.BLOCKED;
+         } else {
+             state = Thread.State.RUNNABLE;
+         }
+ 
+         resp.setStatus(HttpServletResponse.SC_OK);
+         resp.setHeader(CACHE_CONTROL, NO_CACHE);
+         resp.setContentType(CONTENT_TYPE);
+         try (OutputStream output = resp.getOutputStream()) {
+             doProfile(output, duration, frequency, state);
+         }
+     }
+ 
+     protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
+         if (lock.tryLock()) {
+             try {
+                 CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),
+                         frequency, state);
+                 if (profile == null) {
+                     throw new RuntimeException("could not create CpuProfile");
+                 }
+                 profile.writeGoogleProfile(out);
+                 return;
+             } finally {
+                 lock.unlock();
+             }
+         }
+         throw new RuntimeException("Only one profile request may be active at a time");
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-3.html new file mode 100644 index 0000000000..ac6ed9ec6f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-3.html @@ -0,0 +1,325 @@ + + + + + + + + Coverage Report > HealthCheckServlet + + + + + + +
+ + +

Coverage Summary for Class: HealthCheckServlet (com.codahale.metrics.servlets)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
HealthCheckServlet + + 100% + + + (10/10) + + + + 96.7% + + + (59/61) + +
HealthCheckServlet$ContextListener + + 0% + + + (0/6) + + + + 0% + + + (0/9) + +
Total + + 62.5% + + + (10/16) + + + + 84.3% + + + (59/70) + +
+ +
+
+ + +
+ package com.codahale.metrics.servlets;
+ 
+ import com.codahale.metrics.health.HealthCheck;
+ import com.codahale.metrics.health.HealthCheckFilter;
+ import com.codahale.metrics.health.HealthCheckRegistry;
+ import com.codahale.metrics.json.HealthCheckModule;
+ import com.fasterxml.jackson.databind.ObjectMapper;
+ import com.fasterxml.jackson.databind.ObjectWriter;
+ 
+ import javax.servlet.ServletConfig;
+ import javax.servlet.ServletContext;
+ import javax.servlet.ServletContextEvent;
+ import javax.servlet.ServletContextListener;
+ import javax.servlet.ServletException;
+ import javax.servlet.http.HttpServlet;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ import java.io.IOException;
+ import java.io.OutputStream;
+ import java.util.Map;
+ import java.util.SortedMap;
+ import java.util.concurrent.ExecutorService;
+ 
+ public class HealthCheckServlet extends HttpServlet {
+     public static abstract class ContextListener implements ServletContextListener {
+         /**
+          * @return the {@link HealthCheckRegistry} to inject into the servlet context.
+          */
+         protected abstract HealthCheckRegistry getHealthCheckRegistry();
+ 
+         /**
+          * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
+          * if the health checks should be run in the servlet worker thread.
+          */
+         protected ExecutorService getExecutorService() {
+             // don't use a thread pool by default
+             return null;
+         }
+ 
+         /**
+          * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
+          * or {@link HealthCheckFilter#ALL} if the default should be used.
+          */
+         protected HealthCheckFilter getHealthCheckFilter() {
+             return HealthCheckFilter.ALL;
+         }
+ 
+         /**
+          * @return the {@link ObjectMapper} that shall be used to render health checks,
+          * or {@code null} if the default object mapper should be used.
+          */
+         protected ObjectMapper getObjectMapper() {
+             // don't use an object mapper by default
+             return null;
+         }
+ 
+         @Override
+         public void contextInitialized(ServletContextEvent event) {
+             final ServletContext context = event.getServletContext();
+             context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());
+             context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());
+             context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());
+         }
+ 
+         @Override
+         public void contextDestroyed(ServletContextEvent event) {
+             // no-op
+         }
+     }
+ 
+     public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + ".registry";
+     public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + ".executor";
+     public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + ".healthCheckFilter";
+     public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + ".mapper";
+     public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + ".httpStatusIndicator";
+ 
+     private static final long serialVersionUID = -8432996484889177321L;
+     private static final String CONTENT_TYPE = "application/json";
+     private static final String HTTP_STATUS_INDICATOR_PARAM = "httpStatusIndicator";
+ 
+     private transient HealthCheckRegistry registry;
+     private transient ExecutorService executorService;
+     private transient HealthCheckFilter filter;
+     private transient ObjectMapper mapper;
+     private transient boolean httpStatusIndicator;
+ 
+     public HealthCheckServlet() {
+     }
+ 
+     public HealthCheckServlet(HealthCheckRegistry registry) {
+         this.registry = registry;
+     }
+ 
+     @Override
+     public void init(ServletConfig config) throws ServletException {
+         super.init(config);
+ 
+         final ServletContext context = config.getServletContext();
+         if (null == registry) {
+             final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);
+             if (registryAttr instanceof HealthCheckRegistry) {
+                 this.registry = (HealthCheckRegistry) registryAttr;
+             } else {
+                 throw new ServletException("Couldn't find a HealthCheckRegistry instance.");
+             }
+         }
+ 
+         final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);
+         if (executorAttr instanceof ExecutorService) {
+             this.executorService = (ExecutorService) executorAttr;
+         }
+ 
+         final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);
+         if (filterAttr instanceof HealthCheckFilter) {
+             filter = (HealthCheckFilter) filterAttr;
+         }
+         if (filter == null) {
+             filter = HealthCheckFilter.ALL;
+         }
+ 
+         final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);
+         if (mapperAttr instanceof ObjectMapper) {
+             this.mapper = (ObjectMapper) mapperAttr;
+         } else {
+             this.mapper = new ObjectMapper();
+         }
+         this.mapper.registerModule(new HealthCheckModule());
+ 
+         final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);
+         if (httpStatusIndicatorAttr instanceof Boolean) {
+             this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;
+         } else {
+             this.httpStatusIndicator = true;
+         }
+     }
+ 
+     @Override
+     public void destroy() {
+         super.destroy();
+         registry.shutdown();
+     }
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+         final SortedMap<String, HealthCheck.Result> results = runHealthChecks();
+         resp.setContentType(CONTENT_TYPE);
+         resp.setHeader("Cache-Control", "must-revalidate,no-cache,no-store");
+         if (results.isEmpty()) {
+             resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);
+         } else {
+             final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);
+             final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);
+             final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;
+             if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {
+                 resp.setStatus(HttpServletResponse.SC_OK);
+             } else {
+                 resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+             }
+         }
+ 
+         try (OutputStream output = resp.getOutputStream()) {
+             getWriter(req).writeValue(output, results);
+         }
+     }
+ 
+     private ObjectWriter getWriter(HttpServletRequest request) {
+         final boolean prettyPrint = Boolean.parseBoolean(request.getParameter("pretty"));
+         if (prettyPrint) {
+             return mapper.writerWithDefaultPrettyPrinter();
+         }
+         return mapper.writer();
+     }
+ 
+     private SortedMap<String, HealthCheck.Result> runHealthChecks() {
+         if (executorService == null) {
+             return registry.runHealthChecks(filter);
+         }
+         return registry.runHealthChecks(executorService, filter);
+     }
+ 
+     private static boolean isAllHealthy(Map<String, HealthCheck.Result> results) {
+         for (HealthCheck.Result result : results.values()) {
+             if (!result.isHealthy()) {
+                 return false;
+             }
+         }
+         return true;
+     }
+ 
+     // visible for testing
+     ObjectMapper getMapper() {
+         return mapper;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-4.html new file mode 100644 index 0000000000..5878dbfe9a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-4.html @@ -0,0 +1,329 @@ + + + + + + + + Coverage Report > MetricsServlet + + + + + + +
+ + +

Coverage Summary for Class: MetricsServlet (com.codahale.metrics.servlets)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
MetricsServlet + + 100% + + + (8/8) + + + + 100% + + + (44/44) + +
MetricsServlet$ContextListener + + 62.5% + + + (5/8) + + + + 77.8% + + + (14/18) + +
Total + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
+ +
+
+ + +
+ package com.codahale.metrics.servlets;
+ 
+ import java.io.IOException;
+ import java.io.OutputStream;
+ import java.util.Locale;
+ import java.util.concurrent.TimeUnit;
+ 
+ import javax.servlet.ServletConfig;
+ import javax.servlet.ServletContext;
+ import javax.servlet.ServletContextEvent;
+ import javax.servlet.ServletContextListener;
+ import javax.servlet.ServletException;
+ import javax.servlet.http.HttpServlet;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ 
+ import com.codahale.metrics.MetricFilter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.json.MetricsModule;
+ import com.fasterxml.jackson.databind.ObjectMapper;
+ import com.fasterxml.jackson.databind.ObjectWriter;
+ import com.fasterxml.jackson.databind.util.JSONPObject;
+ 
+ /**
+  * A servlet which returns the metrics in a given registry as an {@code application/json} response.
+  */
+ public class MetricsServlet extends HttpServlet {
+     /**
+      * An abstract {@link ServletContextListener} which allows you to programmatically inject the
+      * {@link MetricRegistry}, rate and duration units, and allowed origin for
+      * {@link MetricsServlet}.
+      */
+     public static abstract class ContextListener implements ServletContextListener {
+         /**
+          * @return the {@link MetricRegistry} to inject into the servlet context.
+          */
+         protected abstract MetricRegistry getMetricRegistry();
+ 
+         /**
+          * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
+          * default should be used.
+          */
+         protected TimeUnit getRateUnit() {
+             // use the default
+             return null;
+         }
+ 
+         /**
+          * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
+          * the default should be used.
+          */
+         protected TimeUnit getDurationUnit() {
+             // use the default
+             return null;
+         }
+ 
+         /**
+          * @return the {@code Access-Control-Allow-Origin} header value, if any.
+          */
+         protected String getAllowedOrigin() {
+             // use the default
+             return null;
+         }
+ 
+         /**
+          * Returns the name of the parameter used to specify the jsonp callback, if any.
+          */
+         protected String getJsonpCallbackParameter() {
+             return null;
+         }
+ 
+         /**
+          * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
+          * the default should be used.
+          */
+         protected MetricFilter getMetricFilter() {
+             // use the default
+             return MetricFilter.ALL;
+         }
+ 
+         @Override
+         public void contextInitialized(ServletContextEvent event) {
+             final ServletContext context = event.getServletContext();
+             context.setAttribute(METRICS_REGISTRY, getMetricRegistry());
+             context.setAttribute(METRIC_FILTER, getMetricFilter());
+             if (getDurationUnit() != null) {
+                 context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());
+             }
+             if (getRateUnit() != null) {
+                 context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());
+             }
+             if (getAllowedOrigin() != null) {
+                 context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());
+             }
+             if (getJsonpCallbackParameter() != null) {
+                 context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());
+             }
+         }
+ 
+         @Override
+         public void contextDestroyed(ServletContextEvent event) {
+             // no-op
+         }
+     }
+ 
+     public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + ".rateUnit";
+     public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + ".durationUnit";
+     public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + ".showSamples";
+     public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + ".registry";
+     public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + ".allowedOrigin";
+     public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + ".metricFilter";
+     public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + ".jsonpCallback";
+ 
+     private static final long serialVersionUID = 1049773947734939602L;
+     private static final String CONTENT_TYPE = "application/json";
+ 
+     protected String allowedOrigin;
+     protected String jsonpParamName;
+     protected transient MetricRegistry registry;
+     protected transient ObjectMapper mapper;
+ 
+     public MetricsServlet() {
+     }
+ 
+     public MetricsServlet(MetricRegistry registry) {
+         this.registry = registry;
+     }
+ 
+     @Override
+     public void init(ServletConfig config) throws ServletException {
+         super.init(config);
+ 
+         final ServletContext context = config.getServletContext();
+         if (null == registry) {
+             final Object registryAttr = context.getAttribute(METRICS_REGISTRY);
+             if (registryAttr instanceof MetricRegistry) {
+                 this.registry = (MetricRegistry) registryAttr;
+             } else {
+                 throw new ServletException("Couldn't find a MetricRegistry instance.");
+             }
+         }
+         this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);
+         this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);
+ 
+         setupMetricsModule(context);
+     }
+ 
+     protected void setupMetricsModule(ServletContext context) {
+         final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),
+                 TimeUnit.SECONDS);
+         final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),
+                 TimeUnit.SECONDS);
+         final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));
+         MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);
+         if (filter == null) {
+             filter = MetricFilter.ALL;
+         }
+ 
+         this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,
+                 durationUnit,
+                 showSamples,
+                 filter));
+     }
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+         resp.setContentType(CONTENT_TYPE);
+         if (allowedOrigin != null) {
+             resp.setHeader("Access-Control-Allow-Origin", allowedOrigin);
+         }
+         resp.setHeader("Cache-Control", "must-revalidate,no-cache,no-store");
+         resp.setStatus(HttpServletResponse.SC_OK);
+ 
+         try (OutputStream output = resp.getOutputStream()) {
+             if (jsonpParamName != null && req.getParameter(jsonpParamName) != null) {
+                 getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));
+             } else {
+                 getWriter(req).writeValue(output, registry);
+             }
+         }
+     }
+ 
+     protected ObjectWriter getWriter(HttpServletRequest request) {
+         final boolean prettyPrint = Boolean.parseBoolean(request.getParameter("pretty"));
+         if (prettyPrint) {
+             return mapper.writerWithDefaultPrettyPrinter();
+         }
+         return mapper.writer();
+     }
+ 
+     protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
+         try {
+             return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));
+         } catch (IllegalArgumentException e) {
+             return defaultValue;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-5.html new file mode 100644 index 0000000000..17ffafd888 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-5.html @@ -0,0 +1,134 @@ + + + + + + + + Coverage Report > PingServlet + + + + + + +
+ + +

Coverage Summary for Class: PingServlet (com.codahale.metrics.servlets)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
+ +
+
+ + +
+ package com.codahale.metrics.servlets;
+ 
+ import javax.servlet.ServletException;
+ import javax.servlet.http.HttpServlet;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ import java.io.IOException;
+ import java.io.PrintWriter;
+ 
+ /**
+  * An HTTP servlets which outputs a {@code text/plain} {@code "pong"} response.
+  */
+ public class PingServlet extends HttpServlet {
+     private static final long serialVersionUID = 3772654177231086757L;
+     private static final String CONTENT_TYPE = "text/plain";
+     private static final String CONTENT = "pong";
+     private static final String CACHE_CONTROL = "Cache-Control";
+     private static final String NO_CACHE = "must-revalidate,no-cache,no-store";
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+         resp.setStatus(HttpServletResponse.SC_OK);
+         resp.setHeader(CACHE_CONTROL, NO_CACHE);
+         resp.setContentType(CONTENT_TYPE);
+         try (PrintWriter writer = resp.getWriter()) {
+             writer.println(CONTENT);
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-6.html new file mode 100644 index 0000000000..8279791d22 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-6.html @@ -0,0 +1,159 @@ + + + + + + + + Coverage Report > ThreadDumpServlet + + + + + + +
+ + +

Coverage Summary for Class: ThreadDumpServlet (com.codahale.metrics.servlets)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+
+ + +
+ package com.codahale.metrics.servlets;
+ 
+ import com.codahale.metrics.jvm.ThreadDump;
+ 
+ import javax.servlet.ServletException;
+ import javax.servlet.http.HttpServlet;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ import java.io.IOException;
+ import java.io.OutputStream;
+ import java.lang.management.ManagementFactory;
+ 
+ /**
+  * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
+  * the VM. Only responds to {@code GET} requests.
+  */
+ public class ThreadDumpServlet extends HttpServlet {
+ 
+     private static final long serialVersionUID = -2690343532336103046L;
+     private static final String CONTENT_TYPE = "text/plain";
+ 
+     private transient ThreadDump threadDump;
+ 
+     @Override
+     public void init() throws ServletException {
+         try {
+             // Some PaaS like Google App Engine blacklist java.lang.managament
+             this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());
+         } catch (NoClassDefFoundError ncdfe) {
+             this.threadDump = null; // we won't be able to provide thread dump
+         }
+     }
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+         final boolean includeMonitors = getParam(req.getParameter("monitors"), true);
+         final boolean includeSynchronizers = getParam(req.getParameter("synchronizers"), true);
+ 
+         resp.setStatus(HttpServletResponse.SC_OK);
+         resp.setContentType(CONTENT_TYPE);
+         resp.setHeader("Cache-Control", "must-revalidate,no-cache,no-store");
+         if (threadDump == null) {
+             resp.getWriter().println("Sorry your runtime environment does not allow to dump threads.");
+             return;
+         }
+         try (OutputStream output = resp.getOutputStream()) {
+             threadDump.dump(includeMonitors, includeSynchronizers, output);
+         }
+     }
+ 
+     private static Boolean getParam(String initParam, boolean defaultValue) {
+         return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index.html b/metrics-complete-report-initial-htmlReport/ns-1d/index.html new file mode 100644 index 0000000000..eef9d08a79 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1d/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..125c32c4fd --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..8806dc8d5b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..a82c62dcf6 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..a2ed236a16 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..165a8acae9 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..12d71dccd9 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..e894c73bab --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..edb960312b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..ee60cec968 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.caffeine3 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.caffeine3

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.caffeine3 + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-1d/sources/source-1.html new file mode 100644 index 0000000000..e4a3151e68 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1d/sources/source-1.html @@ -0,0 +1,220 @@ + + + + + + + + Coverage Report > MetricsStatsCounter + + + + + + +
+ + +

Coverage Summary for Class: MetricsStatsCounter (io.dropwizard.metrics.caffeine3)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + +
+ /*
+  * Copyright 2016 Ben Manes. All Rights Reserved.
+  *
+  * Licensed under the Apache License, Version 2.0 (the "License");
+  * you may not use this file except in compliance with the License.
+  * You may obtain a copy of the License at
+  *
+  *     http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  */
+ package io.dropwizard.metrics.caffeine3;
+ 
+ import static java.util.Objects.requireNonNull;
+ 
+ import java.util.EnumMap;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.LongAdder;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Histogram;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import com.github.benmanes.caffeine.cache.RemovalCause;
+ import com.github.benmanes.caffeine.cache.stats.CacheStats;
+ import com.github.benmanes.caffeine.cache.stats.StatsCounter;
+ import org.checkerframework.checker.index.qual.NonNegative;
+ 
+ /**
+  * A {@link StatsCounter} instrumented with Dropwizard Metrics.
+  *
+  * @author ben.manes@gmail.com (Ben Manes)
+  * @author John Karp
+  */
+ public final class MetricsStatsCounter implements StatsCounter {
+   private final Counter hitCount;
+   private final Counter missCount;
+   private final Timer loadSuccess;
+   private final Timer loadFailure;
+   private final Counter evictionWeight;
+   private final EnumMap<RemovalCause, Histogram> evictionsWithCause;
+ 
+   // for implementing snapshot()
+   private final LongAdder totalLoadTime = new LongAdder();
+ 
+   /**
+    * Constructs an instance for use by a single cache.
+    *
+    * @param registry the registry of metric instances
+    * @param metricsPrefix the prefix name for the metrics
+    */
+   public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {
+     requireNonNull(metricsPrefix);
+     hitCount = registry.counter(MetricRegistry.name(metricsPrefix, "hits"));
+     missCount = registry.counter(MetricRegistry.name(metricsPrefix, "misses"));
+     loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, "loads-success"));
+     loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, "loads-failure"));
+     evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, "evictions-weight"));
+ 
+     evictionsWithCause = new EnumMap<>(RemovalCause.class);
+     for (RemovalCause cause : RemovalCause.values()) {
+       evictionsWithCause.put(
+           cause,
+           registry.histogram(MetricRegistry.name(metricsPrefix, "evictions", cause.name())));
+     }
+   }
+ 
+   @Override
+   public void recordHits(int count) {
+     hitCount.inc(count);
+   }
+ 
+   @Override
+   public void recordMisses(int count) {
+     missCount.inc(count);
+   }
+ 
+   @Override
+   public void recordLoadSuccess(long loadTime) {
+     loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);
+     totalLoadTime.add(loadTime);
+   }
+ 
+   @Override
+   public void recordLoadFailure(long loadTime) {
+     loadFailure.update(loadTime, TimeUnit.NANOSECONDS);
+     totalLoadTime.add(loadTime);
+   }
+ 
+   @Override
+   public void recordEviction(@NonNegative int weight, RemovalCause cause) {
+     evictionsWithCause.get(cause).update(weight);
+     evictionWeight.inc(weight);
+   }
+ 
+   @Override
+   public CacheStats snapshot() {
+     return CacheStats.of(
+         hitCount.getCount(),
+         missCount.getCount(),
+         loadSuccess.getCount(),
+         loadFailure.getCount(),
+         totalLoadTime.sum(),
+         evictionsWithCause.values().stream().mapToLong(Histogram::getCount).sum(),
+         evictionWeight.getCount());
+   }
+ 
+   @Override
+   public String toString() {
+     return snapshot().toString();
+   }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index.html b/metrics-complete-report-initial-htmlReport/ns-1e/index.html new file mode 100644 index 0000000000..2ac279c8e4 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1e/index.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..e84c320154 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..e0519592a4 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..1584888dd5 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..9fc3e5144a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..8c1efc2b42 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..7b67803572 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..dac5fd7d3a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..6c50117428 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..410ea6a40f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jersey31 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jersey31

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jersey31 + + 100% + + + (11/11) + + + + 94.3% + + + (50/53) + + + + 94.3% + + + (200/212) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener + + 100% + + + (10/10) + + + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-1e/sources/source-1.html new file mode 100644 index 0000000000..c0c590fe97 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1e/sources/source-1.html @@ -0,0 +1,831 @@ + + + + + + + + Coverage Report > InstrumentedResourceMethodApplicationListener + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (io.dropwizard.metrics.jersey31)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedResourceMethodApplicationListener + + 88.9% + + + (16/18) + + + + 92.1% + + + (82/89) + +
InstrumentedResourceMethodApplicationListener$1 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener + + 100% + + + (3/3) + + + + 100% + + + (5/5) + +
InstrumentedResourceMethodApplicationListener$EventTypeAndMethod + + 100% + + + (8/8) + + + + 84.2% + + + (16/19) + +
InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric + + 100% + + + (1/1) + + + + 100% + + + (5/5) + +
InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener + + 100% + + + (2/2) + + + + 100% + + + (11/11) + +
InstrumentedResourceMethodApplicationListener$MeterRequestEventListener + + 100% + + + (2/2) + + + + 100% + + + (6/6) + +
InstrumentedResourceMethodApplicationListener$ResponseMeterMetric + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener + + 100% + + + (2/2) + + + + 91.7% + + + (11/12) + +
InstrumentedResourceMethodApplicationListener$TimerRequestEventListener + + 100% + + + (4/4) + + + + 100% + + + (28/28) + +
Total + + 95.7% + + + (44/46) + + + + 94.5% + + + (189/200) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jersey31;
+ 
+ import com.codahale.metrics.Clock;
+ import com.codahale.metrics.ExponentiallyDecayingReservoir;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Reservoir;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ExceptionMetered;
+ import com.codahale.metrics.annotation.Metered;
+ import com.codahale.metrics.annotation.ResponseMetered;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import com.codahale.metrics.annotation.Timed;
+ import jakarta.ws.rs.core.Configuration;
+ import jakarta.ws.rs.ext.Provider;
+ import org.glassfish.jersey.server.ContainerResponse;
+ import org.glassfish.jersey.server.model.ModelProcessor;
+ import org.glassfish.jersey.server.model.Resource;
+ import org.glassfish.jersey.server.model.ResourceMethod;
+ import org.glassfish.jersey.server.model.ResourceModel;
+ import org.glassfish.jersey.server.monitoring.ApplicationEvent;
+ import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
+ import org.glassfish.jersey.server.monitoring.RequestEvent;
+ import org.glassfish.jersey.server.monitoring.RequestEventListener;
+ 
+ import java.lang.annotation.Annotation;
+ import java.lang.reflect.Method;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.EnumSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ import java.util.concurrent.TimeUnit;
+ import java.util.function.Supplier;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ 
+ /**
+  * An application event listener that listens for Jersey application initialization to
+  * be finished, then creates a map of resource method that have metrics annotations.
+  * <p>
+  * Finally, it listens for method start events, and returns a {@link RequestEventListener}
+  * that updates the relevant metric for suitably annotated methods when it gets the
+  * request events indicating that the method is about to be invoked, or just got done
+  * being invoked.
+  */
+ @Provider
+ public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
+ 
+     private static final String[] REQUEST_FILTERING = {"request", "filtering"};
+     private static final String[] RESPONSE_FILTERING = {"response", "filtering"};
+     private static final String TOTAL = "total";
+ 
+     private final MetricRegistry metrics;
+     private final ConcurrentMap<EventTypeAndMethod, Timer> timers = new ConcurrentHashMap<>();
+     private final ConcurrentMap<Method, Meter> meters = new ConcurrentHashMap<>();
+     private final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters = new ConcurrentHashMap<>();
+     private final ConcurrentMap<Method, ResponseMeterMetric> responseMeters = new ConcurrentHashMap<>();
+ 
+     private final Clock clock;
+     private final boolean trackFilters;
+     private final Supplier<Reservoir> reservoirSupplier;
+ 
+     /**
+      * Construct an application event listener using the given metrics registry.
+      * <p>
+      * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
+      * should be added to a Jersey {@code ResourceConfig} as a singleton.
+      *
+      * @param metrics a {@link MetricRegistry}
+      */
+     public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
+         this(metrics, Clock.defaultClock(), false);
+     }
+ 
+     /**
+      * Constructs a custom application listener.
+      *
+      * @param metrics      the metrics registry where the metrics will be stored
+      * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters whether the processing time for request and response filters should be tracked
+      */
+     public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
+                                                          final boolean trackFilters) {
+         this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);
+     }
+ 
+     /**
+      * Constructs a custom application listener.
+      *
+      * @param metrics           the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters      whether the processing time for request and response filters should be tracked
+      * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
+      */
+     public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
+                                                          final boolean trackFilters,
+                                                          final Supplier<Reservoir> reservoirSupplier) {
+         this.metrics = metrics;
+         this.clock = clock;
+         this.trackFilters = trackFilters;
+         this.reservoirSupplier = reservoirSupplier;
+     }
+ 
+     /**
+      * A private class to maintain the metric for a method annotated with the
+      * {@link ExceptionMetered} annotation, which needs to maintain both a meter
+      * and a cause for which the meter should be updated.
+      */
+     private static class ExceptionMeterMetric {
+         public final Meter meter;
+         public final Class<? extends Throwable> cause;
+ 
+         public ExceptionMeterMetric(final MetricRegistry registry,
+                                     final ResourceMethod method,
+                                     final ExceptionMetered exceptionMetered) {
+             final String name = chooseName(exceptionMetered.name(),
+                     exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);
+             this.meter = registry.meter(name);
+             this.cause = exceptionMetered.cause();
+         }
+     }
+ 
+     /**
+      * A private class to maintain the metrics for a method annotated with the
+      * {@link ResponseMetered} annotation, which needs to maintain meters for
+      * different response codes
+      */
+     private static class ResponseMeterMetric {
+         private static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+         private static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+         private final List<Meter> meters;
+         private final Map<Integer, Meter> responseCodeMeters;
+         private final MetricRegistry metricRegistry;
+         private final String metricName;
+         private final ResponseMeteredLevel level;
+ 
+         public ResponseMeterMetric(final MetricRegistry registry,
+                                    final ResourceMethod method,
+                                    final ResponseMetered responseMetered) {
+             this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);
+             this.level = responseMetered.level();
+             this.meters = COARSE_METER_LEVELS.contains(level) ?
+                     Collections.unmodifiableList(Arrays.asList(
+                             registry.meter(name(metricName, "1xx-responses")), // 1xx
+                             registry.meter(name(metricName, "2xx-responses")), // 2xx
+                             registry.meter(name(metricName, "3xx-responses")), // 3xx
+                             registry.meter(name(metricName, "4xx-responses")), // 4xx
+                             registry.meter(name(metricName, "5xx-responses"))  // 5xx
+                     )) : Collections.emptyList();
+             this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+             this.metricRegistry = registry;
+         }
+ 
+         public void mark(int statusCode) {
+             if (DETAILED_METER_LEVELS.contains(level)) {
+                 getResponseCodeMeter(statusCode).mark();
+             }
+ 
+             if (COARSE_METER_LEVELS.contains(level)) {
+                 final int responseStatus = statusCode / 100;
+                 if (responseStatus >= 1 && responseStatus <= 5) {
+                     meters.get(responseStatus - 1).mark();
+                 }
+             }
+         }
+ 
+         private Meter getResponseCodeMeter(int statusCode) {
+             return responseCodeMeters
+                     .computeIfAbsent(statusCode, sc -> metricRegistry
+                             .meter(name(metricName, String.format("%d-responses", sc))));
+         }
+     }
+ 
+     private static class TimerRequestEventListener implements RequestEventListener {
+ 
+         private final ConcurrentMap<EventTypeAndMethod, Timer> timers;
+         private final Clock clock;
+         private final long start;
+         private Timer.Context resourceMethodStartContext;
+         private Timer.Context requestMatchedContext;
+         private Timer.Context responseFiltersStartContext;
+ 
+         public TimerRequestEventListener(final ConcurrentMap<EventTypeAndMethod, Timer> timers, final Clock clock) {
+             this.timers = timers;
+             this.clock = clock;
+             start = clock.getTick();
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             switch (event.getType()) {
+                 case RESOURCE_METHOD_START:
+                     resourceMethodStartContext = context(event);
+                     break;
+                 case REQUEST_MATCHED:
+                     requestMatchedContext = context(event);
+                     break;
+                 case RESP_FILTERS_START:
+                     responseFiltersStartContext = context(event);
+                     break;
+                 case RESOURCE_METHOD_FINISHED:
+                     if (resourceMethodStartContext != null) {
+                         resourceMethodStartContext.close();
+                     }
+                     break;
+                 case REQUEST_FILTERED:
+                     if (requestMatchedContext != null) {
+                         requestMatchedContext.close();
+                     }
+                     break;
+                 case RESP_FILTERS_FINISHED:
+                     if (responseFiltersStartContext != null) {
+                         responseFiltersStartContext.close();
+                     }
+                     break;
+                 case FINISHED:
+                     if (requestMatchedContext != null && responseFiltersStartContext != null) {
+                         final Timer timer = timer(event);
+                         if (timer != null) {
+                             timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);
+                         }
+                     }
+                     break;
+                 default:
+                     break;
+             }
+         }
+ 
+         private Timer timer(RequestEvent event) {
+             final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();
+             if (resourceMethod == null) {
+                 return null;
+             }
+             return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));
+         }
+ 
+         private Timer.Context context(RequestEvent event) {
+             final Timer timer = timer(event);
+             return timer != null ? timer.time() : null;
+         }
+     }
+ 
+     private static class MeterRequestEventListener implements RequestEventListener {
+         private final ConcurrentMap<Method, Meter> meters;
+ 
+         public MeterRequestEventListener(final ConcurrentMap<Method, Meter> meters) {
+             this.meters = meters;
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {
+                 final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());
+                 if (meter != null) {
+                     meter.mark();
+                 }
+             }
+         }
+     }
+ 
+     private static class ExceptionMeterRequestEventListener implements RequestEventListener {
+         private final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters;
+ 
+         public ExceptionMeterRequestEventListener(final ConcurrentMap<Method, ExceptionMeterMetric> exceptionMeters) {
+             this.exceptionMeters = exceptionMeters;
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {
+                 final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();
+                 final ExceptionMeterMetric metric = (method != null) ?
+                         this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;
+ 
+                 if (metric != null) {
+                     if (metric.cause.isAssignableFrom(event.getException().getClass()) ||
+                             (event.getException().getCause() != null &&
+                                     metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {
+                         metric.meter.mark();
+                     }
+                 }
+             }
+         }
+     }
+ 
+     private static class ResponseMeterRequestEventListener implements RequestEventListener {
+         private final ConcurrentMap<Method, ResponseMeterMetric> responseMeters;
+ 
+         public ResponseMeterRequestEventListener(final ConcurrentMap<Method, ResponseMeterMetric> responseMeters) {
+             this.responseMeters = responseMeters;
+         }
+ 
+         @Override
+         public void onEvent(RequestEvent event) {
+             if (event.getType() == RequestEvent.Type.FINISHED) {
+                 final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();
+                 final ResponseMeterMetric metric = (method != null) ?
+                         this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;
+ 
+                 if (metric != null) {
+                     ContainerResponse containerResponse = event.getContainerResponse();
+                     if (containerResponse == null && event.getException() != null) {
+                         metric.mark(500);
+                     } else if (containerResponse != null) {
+                         metric.mark(containerResponse.getStatus());
+                     }
+                 }
+             }
+         }
+     }
+ 
+     private static class ChainedRequestEventListener implements RequestEventListener {
+         private final RequestEventListener[] listeners;
+ 
+         private ChainedRequestEventListener(final RequestEventListener... listeners) {
+             this.listeners = listeners;
+         }
+ 
+         @Override
+         public void onEvent(final RequestEvent event) {
+             for (RequestEventListener listener : listeners) {
+                 listener.onEvent(event);
+             }
+         }
+     }
+ 
+     @Override
+     public void onEvent(ApplicationEvent event) {
+         if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {
+             registerMetricsForModel(event.getResourceModel());
+         }
+     }
+ 
+     @Override
+     public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
+         return resourceModel;
+     }
+ 
+     @Override
+     public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
+         registerMetricsForModel(subResourceModel);
+         return subResourceModel;
+     }
+ 
+     private void registerMetricsForModel(ResourceModel resourceModel) {
+         for (final Resource resource : resourceModel.getResources()) {
+ 
+             final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);
+             final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);
+             final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);
+             final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);
+ 
+             for (final ResourceMethod method : resource.getAllMethods()) {
+                 registerTimedAnnotations(method, classLevelTimed);
+                 registerMeteredAnnotations(method, classLevelMetered);
+                 registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);
+                 registerResponseMeteredAnnotations(method, classLevelResponseMetered);
+             }
+ 
+             for (final Resource childResource : resource.getChildResources()) {
+ 
+                 final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);
+                 final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);
+                 final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);
+                 final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);
+ 
+                 for (final ResourceMethod method : childResource.getAllMethods()) {
+                     registerTimedAnnotations(method, classLevelTimedChild);
+                     registerMeteredAnnotations(method, classLevelMeteredChild);
+                     registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);
+                     registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);
+                 }
+             }
+         }
+     }
+ 
+     @Override
+     public RequestEventListener onRequest(final RequestEvent event) {
+         final RequestEventListener listener = new ChainedRequestEventListener(
+                 new TimerRequestEventListener(timers, clock),
+                 new MeterRequestEventListener(meters),
+                 new ExceptionMeterRequestEventListener(exceptionMeters),
+                 new ResponseMeterRequestEventListener(responseMeters));
+ 
+         return listener;
+     }
+ 
+     private <T extends Annotation> T getClassLevelAnnotation(final Resource resource, final Class<T> annotationClazz) {
+         T annotation = null;
+ 
+         for (final Class<?> clazz : resource.getHandlerClasses()) {
+             annotation = clazz.getAnnotation(annotationClazz);
+ 
+             if (annotation != null) {
+                 break;
+             }
+         }
+         return annotation;
+     }
+ 
+     private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+         if (classLevelTimed != null) {
+             registerTimers(method, definitionMethod, classLevelTimed);
+             return;
+         }
+ 
+         final Timed annotation = definitionMethod.getAnnotation(Timed.class);
+         if (annotation != null) {
+             registerTimers(method, definitionMethod, annotation);
+         }
+     }
+ 
+     private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
+         timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));
+         if (trackFilters) {
+             timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));
+             timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));
+             timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));
+         }
+     }
+ 
+     private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+ 
+         if (classLevelMetered != null) {
+             meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));
+             return;
+         }
+         final Metered annotation = definitionMethod.getAnnotation(Metered.class);
+ 
+         if (annotation != null) {
+             meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));
+         }
+     }
+ 
+     private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+ 
+         if (classLevelExceptionMetered != null) {
+             exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));
+             return;
+         }
+         final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);
+ 
+         if (annotation != null) {
+             exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));
+         }
+     }
+ 
+     private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+ 
+         if (classLevelResponseMetered != null) {
+             responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));
+             return;
+         }
+         final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);
+ 
+         if (annotation != null) {
+             responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));
+         }
+     }
+ 
+     private Timer timerMetric(final MetricRegistry registry,
+                               final ResourceMethod method,
+                               final Timed timed,
+                               final String... suffixes) {
+         final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);
+         return registry.timer(name, () -> new Timer(reservoirSupplier.get(), clock));
+     }
+ 
+     private Meter meterMetric(final MetricRegistry registry,
+                               final ResourceMethod method,
+                               final Metered metered) {
+         final String name = chooseName(metered.name(), metered.absolute(), method);
+         return registry.meter(name, () -> new Meter(clock));
+     }
+ 
+     protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
+                                        final String... suffixes) {
+         final Method definitionMethod = method.getInvocable().getDefinitionMethod();
+         final String metricName;
+         if (explicitName != null && !explicitName.isEmpty()) {
+             metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);
+         } else {
+             metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());
+         }
+         return name(metricName, suffixes);
+     }
+ 
+     private static class EventTypeAndMethod {
+ 
+         private final RequestEvent.Type type;
+         private final Method method;
+ 
+         private EventTypeAndMethod(RequestEvent.Type type, Method method) {
+             this.type = type;
+             this.method = method;
+         }
+ 
+         static EventTypeAndMethod requestMethodStart(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);
+         }
+ 
+         static EventTypeAndMethod requestMatched(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);
+         }
+ 
+         static EventTypeAndMethod respFiltersStart(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);
+         }
+ 
+         static EventTypeAndMethod finished(Method method) {
+             return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);
+         }
+ 
+         @Override
+         public boolean equals(Object o) {
+             if (this == o) {
+                 return true;
+             }
+             if (o == null || getClass() != o.getClass()) {
+                 return false;
+             }
+ 
+             EventTypeAndMethod that = (EventTypeAndMethod) o;
+ 
+             if (type != that.type) {
+                 return false;
+             }
+             return method.equals(that.method);
+         }
+ 
+         @Override
+         public int hashCode() {
+             int result = type.hashCode();
+             result = 31 * result + method.hashCode();
+             return result;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-1e/sources/source-2.html new file mode 100644 index 0000000000..f7a1733cf9 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1e/sources/source-2.html @@ -0,0 +1,201 @@ + + + + + + + + Coverage Report > MetricsFeature + + + + + + +
+ + +

Coverage Summary for Class: MetricsFeature (io.dropwizard.metrics.jersey31)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
MetricsFeature + + 100% + + + (1/1) + + + + 85.7% + + + (6/7) + + + + 91.7% + + + (11/12) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jersey31;
+ 
+ import com.codahale.metrics.Clock;
+ import com.codahale.metrics.ExponentiallyDecayingReservoir;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Reservoir;
+ import com.codahale.metrics.SharedMetricRegistries;
+ import jakarta.ws.rs.core.Feature;
+ import jakarta.ws.rs.core.FeatureContext;
+ 
+ import java.util.function.Supplier;
+ 
+ /**
+  * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
+  * for recording request events.
+  */
+ public class MetricsFeature implements Feature {
+ 
+     private final MetricRegistry registry;
+     private final Clock clock;
+     private final boolean trackFilters;
+     private final Supplier<Reservoir> reservoirSupplier;
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      */
+     public MetricsFeature(MetricRegistry registry) {
+         this(registry, Clock.defaultClock());
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
+      */
+     public MetricsFeature(MetricRegistry registry, Supplier<Reservoir> reservoirSupplier) {
+         this(registry, Clock.defaultClock(), false, reservoirSupplier);
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      */
+     public MetricsFeature(MetricRegistry registry, Clock clock) {
+         this(registry, clock, false);
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters      whether the processing time for request and response filters should be tracked
+      */
+     public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
+         this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);
+     }
+ 
+     /*
+      * @param registry          the metrics registry where the metrics will be stored
+      * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
+      * @param trackFilters      whether the processing time for request and response filters should be tracked
+      * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
+      */
+     public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier<Reservoir> reservoirSupplier) {
+         this.registry = registry;
+         this.clock = clock;
+         this.trackFilters = trackFilters;
+         this.reservoirSupplier = reservoirSupplier;
+     }
+ 
+     public MetricsFeature(String registryName) {
+         this(SharedMetricRegistries.getOrCreate(registryName));
+     }
+ 
+     /**
+      * A call-back method called when the feature is to be enabled in a given
+      * runtime configuration scope.
+      * <p>
+      * The responsibility of the feature is to properly update the supplied runtime configuration context
+      * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
+      * <p>
+      * Note that under some circumstances the feature may decide not to enable itself, which
+      * is indicated by returning {@code false}. In such case the configuration context does
+      * not add the feature to the collection of enabled features and a subsequent call to
+      * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
+      * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
+      * would return {@code false}.
+      * <p>
+      *
+      * @param context configurable context in which the feature should be enabled.
+      * @return {@code true} if the feature was successfully enabled, {@code false}
+      * otherwise.
+      */
+     @Override
+     public boolean configure(FeatureContext context) {
+         context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));
+         return true;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index.html b/metrics-complete-report-initial-htmlReport/ns-1f/index.html new file mode 100644 index 0000000000..1d062e3335 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1f/index.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..d022167c73 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..d14a54eae1 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..3c0b10cd36 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..33a6c0e086 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..9bed535e9f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..5faf9acf76 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..8c9cee8c28 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..61ebd3b476 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..3322698420 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty10 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-1.html new file mode 100644 index 0000000000..020d6a98b4 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-1.html @@ -0,0 +1,193 @@ + + + + + + + + Coverage Report > InstrumentedConnectionFactory + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty10)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedConnectionFactory + + 83.3% + + + (5/6) + + + + 91.7% + + + (11/12) + +
InstrumentedConnectionFactory$1 + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
Total + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty10;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Timer;
+ import org.eclipse.jetty.io.Connection;
+ import org.eclipse.jetty.io.EndPoint;
+ import org.eclipse.jetty.server.ConnectionFactory;
+ import org.eclipse.jetty.server.Connector;
+ import org.eclipse.jetty.util.component.ContainerLifeCycle;
+ 
+ import java.util.List;
+ 
+ public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {
+     private final ConnectionFactory connectionFactory;
+     private final Timer timer;
+     private final Counter counter;
+ 
+     public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
+         this(connectionFactory, timer, null);
+     }
+ 
+     public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {
+         this.connectionFactory = connectionFactory;
+         this.timer = timer;
+         this.counter = counter;
+         addBean(connectionFactory);
+     }
+ 
+     @Override
+     public String getProtocol() {
+         return connectionFactory.getProtocol();
+     }
+ 
+     @Override
+     public List<String> getProtocols() {
+         return connectionFactory.getProtocols();
+     }
+ 
+     @Override
+     public Connection newConnection(Connector connector, EndPoint endPoint) {
+         final Connection connection = connectionFactory.newConnection(connector, endPoint);
+         connection.addEventListener(new Connection.Listener() {
+             private Timer.Context context;
+ 
+             @Override
+             public void onOpened(Connection connection) {
+                 this.context = timer.time();
+                 if (counter != null) {
+                     counter.inc();
+                 }
+             }
+ 
+             @Override
+             public void onClosed(Connection connection) {
+                 context.stop();
+                 if (counter != null) {
+                     counter.dec();
+                 }
+             }
+         });
+         return connection;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-2.html new file mode 100644 index 0000000000..1960af08ec --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-2.html @@ -0,0 +1,726 @@ + + + + + + + + Coverage Report > InstrumentedHandler + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty10)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedHandler + + 81.2% + + + (13/16) + + + + 86.3% + + + (113/131) + +
InstrumentedHandler$1 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$2 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$4 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$5 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$6 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$7 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
InstrumentedHandler$AsyncAttachingListener + + 20% + + + (1/5) + + + + 20% + + + (1/5) + +
InstrumentedHandler$InstrumentedAsyncListener + + 0% + + + (0/5) + + + + 0% + + + (0/11) + +
Total + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty10;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import org.eclipse.jetty.http.HttpMethod;
+ import org.eclipse.jetty.server.AsyncContextState;
+ import org.eclipse.jetty.server.Handler;
+ import org.eclipse.jetty.server.HttpChannelState;
+ import org.eclipse.jetty.server.Request;
+ import org.eclipse.jetty.server.handler.HandlerWrapper;
+ 
+ import javax.servlet.AsyncEvent;
+ import javax.servlet.AsyncListener;
+ import javax.servlet.ServletException;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ import java.io.IOException;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.EnumSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ 
+ /**
+  * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
+  * instance.
+  */
+ public class InstrumentedHandler extends HandlerWrapper {
+     private static final String NAME_REQUESTS = "requests";
+     private static final String NAME_DISPATCHES = "dispatches";
+     private static final String NAME_ACTIVE_REQUESTS = "active-requests";
+     private static final String NAME_ACTIVE_DISPATCHES = "active-dispatches";
+     private static final String NAME_ACTIVE_SUSPENDED = "active-suspended";
+     private static final String NAME_ASYNC_DISPATCHES = "async-dispatches";
+     private static final String NAME_ASYNC_TIMEOUTS = "async-timeouts";
+     private static final String NAME_1XX_RESPONSES = "1xx-responses";
+     private static final String NAME_2XX_RESPONSES = "2xx-responses";
+     private static final String NAME_3XX_RESPONSES = "3xx-responses";
+     private static final String NAME_4XX_RESPONSES = "4xx-responses";
+     private static final String NAME_5XX_RESPONSES = "5xx-responses";
+     private static final String NAME_GET_REQUESTS = "get-requests";
+     private static final String NAME_POST_REQUESTS = "post-requests";
+     private static final String NAME_HEAD_REQUESTS = "head-requests";
+     private static final String NAME_PUT_REQUESTS = "put-requests";
+     private static final String NAME_DELETE_REQUESTS = "delete-requests";
+     private static final String NAME_OPTIONS_REQUESTS = "options-requests";
+     private static final String NAME_TRACE_REQUESTS = "trace-requests";
+     private static final String NAME_CONNECT_REQUESTS = "connect-requests";
+     private static final String NAME_MOVE_REQUESTS = "move-requests";
+     private static final String NAME_OTHER_REQUESTS = "other-requests";
+     private static final String NAME_PERCENT_4XX_1M = "percent-4xx-1m";
+     private static final String NAME_PERCENT_4XX_5M = "percent-4xx-5m";
+     private static final String NAME_PERCENT_4XX_15M = "percent-4xx-15m";
+     private static final String NAME_PERCENT_5XX_1M = "percent-5xx-1m";
+     private static final String NAME_PERCENT_5XX_5M = "percent-5xx-5m";
+     private static final String NAME_PERCENT_5XX_15M = "percent-5xx-15m";
+     private static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+     private static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+ 
+     private final MetricRegistry metricRegistry;
+ 
+     private String name;
+     private final String prefix;
+ 
+     // the requests handled by this handler, excluding active
+     private Timer requests;
+ 
+     // the number of dispatches seen by this handler, excluding active
+     private Timer dispatches;
+ 
+     // the number of active requests
+     private Counter activeRequests;
+ 
+     // the number of active dispatches
+     private Counter activeDispatches;
+ 
+     // the number of requests currently suspended.
+     private Counter activeSuspended;
+ 
+     // the number of requests that have been asynchronously dispatched
+     private Meter asyncDispatches;
+ 
+     // the number of requests that expired while suspended
+     private Meter asyncTimeouts;
+ 
+     private final ResponseMeteredLevel responseMeteredLevel;
+     private List<Meter> responses;
+     private Map<Integer, Meter> responseCodeMeters;
+ 
+     private Timer getRequests;
+     private Timer postRequests;
+     private Timer headRequests;
+     private Timer putRequests;
+     private Timer deleteRequests;
+     private Timer optionsRequests;
+     private Timer traceRequests;
+     private Timer connectRequests;
+     private Timer moveRequests;
+     private Timer otherRequests;
+ 
+     private AsyncListener listener;
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      */
+     public InstrumentedHandler(MetricRegistry registry) {
+         this(registry, null);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      */
+     public InstrumentedHandler(MetricRegistry registry, String prefix) {
+         this(registry, prefix, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
+      */
+     public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {
+         this.metricRegistry = registry;
+         this.prefix = prefix;
+         this.responseMeteredLevel = responseMeteredLevel;
+     }
+ 
+     public String getName() {
+         return name;
+     }
+ 
+     public void setName(String name) {
+         this.name = name;
+     }
+ 
+     @Override
+     protected void doStart() throws Exception {
+         super.doStart();
+ 
+         final String prefix = getMetricPrefix();
+ 
+         this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));
+         this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));
+ 
+         this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));
+         this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));
+         this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));
+ 
+         this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));
+         this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));
+ 
+         this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+ 
+         this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));
+         this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));
+         this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));
+         this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));
+         this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));
+         this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));
+         this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));
+         this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));
+         this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));
+         this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             this.responses = Collections.unmodifiableList(Arrays.asList(
+                     metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx
+                     metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx
+                     metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx
+                     metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx
+                     metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx
+             ));
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getOneMinuteRate(),
+                             requests.getOneMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getFiveMinuteRate(),
+                             requests.getFiveMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getFifteenMinuteRate(),
+                             requests.getFifteenMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getOneMinuteRate(),
+                             requests.getOneMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getFiveMinuteRate(),
+                             requests.getFiveMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {
+                 @Override
+                 public Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getFifteenMinuteRate(),
+                             requests.getFifteenMinuteRate());
+                 }
+             });
+         } else {
+             this.responses = Collections.emptyList();
+         }
+ 
+ 
+         this.listener = new AsyncAttachingListener();
+     }
+ 
+     @Override
+     protected void doStop() throws Exception {
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.remove(name(prefix, NAME_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));
+         metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));
+         metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));
+ 
+         if (responseCodeMeters != null) {
+             responseCodeMeters.keySet().stream()
+                     .map(sc -> name(getMetricPrefix(), String.format("%d-responses", sc)))
+                     .forEach(metricRegistry::remove);
+         }
+         super.doStop();
+     }
+ 
+     @Override
+     public void handle(String path,
+                        Request request,
+                        HttpServletRequest httpRequest,
+                        HttpServletResponse httpResponse) throws IOException, ServletException {
+ 
+         activeDispatches.inc();
+ 
+         final long start;
+         final HttpChannelState state = request.getHttpChannelState();
+         if (state.isInitial()) {
+             // new request
+             activeRequests.inc();
+             start = request.getTimeStamp();
+             state.addListener(listener);
+         } else {
+             // resumed request
+             start = System.currentTimeMillis();
+             activeSuspended.dec();
+             if (state.getState() == HttpChannelState.State.HANDLING) {
+                 asyncDispatches.mark();
+             }
+         }
+ 
+         try {
+             super.handle(path, request, httpRequest, httpResponse);
+         } finally {
+             final long now = System.currentTimeMillis();
+             final long dispatched = now - start;
+ 
+             activeDispatches.dec();
+             dispatches.update(dispatched, TimeUnit.MILLISECONDS);
+ 
+             if (state.isSuspended()) {
+                 activeSuspended.inc();
+             } else if (state.isInitial()) {
+                 updateResponses(httpRequest, httpResponse, start, request.isHandled());
+             }
+             // else onCompletion will handle it.
+         }
+     }
+ 
+     private Timer requestTimer(String method) {
+         final HttpMethod m = HttpMethod.fromString(method);
+         if (m == null) {
+             return otherRequests;
+         } else {
+             switch (m) {
+                 case GET:
+                     return getRequests;
+                 case POST:
+                     return postRequests;
+                 case PUT:
+                     return putRequests;
+                 case HEAD:
+                     return headRequests;
+                 case DELETE:
+                     return deleteRequests;
+                 case OPTIONS:
+                     return optionsRequests;
+                 case TRACE:
+                     return traceRequests;
+                 case CONNECT:
+                     return connectRequests;
+                 case MOVE:
+                     return moveRequests;
+                 default:
+                     return otherRequests;
+             }
+         }
+     }
+ 
+     private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
+         if (isHandled) {
+             mark(response.getStatus());
+         } else {
+             mark(404);; // will end up with a 404 response sent by HttpChannel.handle
+         }
+         activeRequests.dec();
+         final long elapsedTime = System.currentTimeMillis() - start;
+         requests.update(elapsedTime, TimeUnit.MILLISECONDS);
+         requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);
+     }
+ 
+     private void mark(int statusCode) {
+         if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {
+             getResponseCodeMeter(statusCode).mark();
+         }
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             final int responseStatus = statusCode / 100;
+             if (responseStatus >= 1 && responseStatus <= 5) {
+                 responses.get(responseStatus - 1).mark();
+             }
+         }
+     }
+ 
+     private Meter getResponseCodeMeter(int statusCode) {
+         return responseCodeMeters
+                 .computeIfAbsent(statusCode, sc -> metricRegistry
+                         .meter(name(getMetricPrefix(), String.format("%d-responses", sc))));
+     }
+ 
+     private String getMetricPrefix() {
+         return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);
+     }
+ 
+     private class AsyncAttachingListener implements AsyncListener {
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+             event.getAsyncContext().addListener(new InstrumentedAsyncListener());
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {}
+     };
+ 
+     private class InstrumentedAsyncListener implements AsyncListener {
+         private final long startTime;
+ 
+         InstrumentedAsyncListener() {
+             this.startTime = System.currentTimeMillis();
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             asyncTimeouts.mark();
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             final AsyncContextState state = (AsyncContextState) event.getAsyncContext();
+             final HttpServletRequest request = (HttpServletRequest) state.getRequest();
+             final HttpServletResponse response = (HttpServletResponse) state.getResponse();
+             updateResponses(request, response, startTime, true);
+             if (!state.getHttpChannelState().isSuspended()) {
+                 activeSuspended.dec();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-3.html new file mode 100644 index 0000000000..524c1cfaad --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-3.html @@ -0,0 +1,706 @@ + + + + + + + + Coverage Report > InstrumentedHttpChannelListener + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty10)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedHttpChannelListener + + 74.1% + + + (20/27) + + + + 82.6% + + + (90/109) + +
InstrumentedHttpChannelListener$1 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$2 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$4 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$5 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$6 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$7 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
InstrumentedHttpChannelListener$AsyncAttachingListener + + 40% + + + (2/5) + + + + 40% + + + (2/5) + +
InstrumentedHttpChannelListener$InstrumentedAsyncListener + + 40% + + + (2/5) + + + + 72.7% + + + (8/11) + +
Total + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty10;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import org.eclipse.jetty.http.HttpMethod;
+ import org.eclipse.jetty.server.AsyncContextState;
+ import org.eclipse.jetty.server.HttpChannel.Listener;
+ import org.eclipse.jetty.server.HttpChannelState;
+ import org.eclipse.jetty.server.Request;
+ 
+ import javax.servlet.AsyncEvent;
+ import javax.servlet.AsyncListener;
+ import javax.servlet.http.HttpServletRequest;
+ import javax.servlet.http.HttpServletResponse;
+ import java.io.IOException;
+ import java.nio.ByteBuffer;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.EnumSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ 
+ /**
+  * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
+  * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
+  * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
+  *
+  * @since TBD
+  */
+ public class InstrumentedHttpChannelListener
+         implements Listener {
+     private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + ".start";
+     private static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+     private static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+ 
+     private final MetricRegistry metricRegistry;
+ 
+     // the requests handled by this handler, excluding active
+     private final Timer requests;
+ 
+     // the number of dispatches seen by this handler, excluding active
+     private final Timer dispatches;
+ 
+     // the number of active requests
+     private final Counter activeRequests;
+ 
+     // the number of active dispatches
+     private final Counter activeDispatches;
+ 
+     // the number of requests currently suspended.
+     private final Counter activeSuspended;
+ 
+     // the number of requests that have been asynchronously dispatched
+     private final Meter asyncDispatches;
+ 
+     // the number of requests that expired while suspended
+     private final Meter asyncTimeouts;
+ 
+     private final ResponseMeteredLevel responseMeteredLevel;
+     private final List<Meter> responses;
+     private final Map<Integer, Meter> responseCodeMeters;
+     private final String prefix;
+     private final Timer getRequests;
+     private final Timer postRequests;
+     private final Timer headRequests;
+     private final Timer putRequests;
+     private final Timer deleteRequests;
+     private final Timer optionsRequests;
+     private final Timer traceRequests;
+     private final Timer connectRequests;
+     private final Timer moveRequests;
+     private final Timer otherRequests;
+ 
+     private final AsyncListener listener;
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      */
+     public InstrumentedHttpChannelListener(MetricRegistry registry) {
+         this(registry, null, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param pref     the prefix to use for the metrics names
+      */
+     public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
+         this(registry, pref, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param pref     the prefix to use for the metrics names
+      * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
+      */
+     public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {
+         this.metricRegistry = registry;
+ 
+         this.prefix = (pref == null) ? getClass().getName() : pref;
+ 
+         this.requests = metricRegistry.timer(name(prefix, "requests"));
+         this.dispatches = metricRegistry.timer(name(prefix, "dispatches"));
+ 
+         this.activeRequests = metricRegistry.counter(name(prefix, "active-requests"));
+         this.activeDispatches = metricRegistry.counter(name(prefix, "active-dispatches"));
+         this.activeSuspended = metricRegistry.counter(name(prefix, "active-suspended"));
+ 
+         this.asyncDispatches = metricRegistry.meter(name(prefix, "async-dispatches"));
+         this.asyncTimeouts = metricRegistry.meter(name(prefix, "async-timeouts"));
+ 
+         this.responseMeteredLevel = responseMeteredLevel;
+         this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+         this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?
+                 Collections.unmodifiableList(Arrays.asList(
+                         registry.meter(name(prefix, "1xx-responses")), // 1xx
+                         registry.meter(name(prefix, "2xx-responses")), // 2xx
+                         registry.meter(name(prefix, "3xx-responses")), // 3xx
+                         registry.meter(name(prefix, "4xx-responses")), // 4xx
+                         registry.meter(name(prefix, "5xx-responses"))  // 5xx
+                 )) : Collections.emptyList();
+ 
+         this.getRequests = metricRegistry.timer(name(prefix, "get-requests"));
+         this.postRequests = metricRegistry.timer(name(prefix, "post-requests"));
+         this.headRequests = metricRegistry.timer(name(prefix, "head-requests"));
+         this.putRequests = metricRegistry.timer(name(prefix, "put-requests"));
+         this.deleteRequests = metricRegistry.timer(name(prefix, "delete-requests"));
+         this.optionsRequests = metricRegistry.timer(name(prefix, "options-requests"));
+         this.traceRequests = metricRegistry.timer(name(prefix, "trace-requests"));
+         this.connectRequests = metricRegistry.timer(name(prefix, "connect-requests"));
+         this.moveRequests = metricRegistry.timer(name(prefix, "move-requests"));
+         this.otherRequests = metricRegistry.timer(name(prefix, "other-requests"));
+ 
+         metricRegistry.register(name(prefix, "percent-4xx-1m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(3).getOneMinuteRate(),
+                         requests.getOneMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-4xx-5m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(3).getFiveMinuteRate(),
+                         requests.getFiveMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-4xx-15m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(3).getFifteenMinuteRate(),
+                         requests.getFifteenMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-5xx-1m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(4).getOneMinuteRate(),
+                         requests.getOneMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-5xx-5m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(4).getFiveMinuteRate(),
+                         requests.getFiveMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-5xx-15m"), new RatioGauge() {
+             @Override
+             public Ratio getRatio() {
+                 return Ratio.of(responses.get(4).getFifteenMinuteRate(),
+                         requests.getFifteenMinuteRate());
+             }
+         });
+ 
+         this.listener = new AsyncAttachingListener();
+     }
+ 
+     @Override
+     public void onRequestBegin(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onBeforeDispatch(final Request request) {
+         before(request);
+     }
+ 
+     @Override
+     public void onDispatchFailure(final Request request, final Throwable failure) {
+ 
+     }
+ 
+     @Override
+     public void onAfterDispatch(final Request request) {
+         after(request);
+     }
+ 
+     @Override
+     public void onRequestContent(final Request request, final ByteBuffer content) {
+ 
+     }
+ 
+     @Override
+     public void onRequestContentEnd(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onRequestTrailers(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onRequestEnd(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onRequestFailure(final Request request, final Throwable failure) {
+ 
+     }
+ 
+     @Override
+     public void onResponseBegin(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onResponseCommit(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onResponseContent(final Request request, final ByteBuffer content) {
+ 
+     }
+ 
+     @Override
+     public void onResponseEnd(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onResponseFailure(final Request request, final Throwable failure) {
+ 
+     }
+ 
+     @Override
+     public void onComplete(final Request request) {
+ 
+     }
+ 
+     private void before(final Request request) {
+         activeDispatches.inc();
+ 
+         final long start;
+         final HttpChannelState state = request.getHttpChannelState();
+         if (state.isInitial()) {
+             // new request
+             activeRequests.inc();
+             start = request.getTimeStamp();
+             state.addListener(listener);
+         } else {
+             // resumed request
+             start = System.currentTimeMillis();
+             activeSuspended.dec();
+             if (state.isAsyncStarted()) {
+                 asyncDispatches.mark();
+             }
+         }
+         request.setAttribute(START_ATTR, start);
+     }
+ 
+     private void after(final Request request) {
+         final long start = (long) request.getAttribute(START_ATTR);
+         final long now = System.currentTimeMillis();
+         final long dispatched = now - start;
+ 
+         activeDispatches.dec();
+         dispatches.update(dispatched, TimeUnit.MILLISECONDS);
+ 
+         final HttpChannelState state = request.getHttpChannelState();
+         if (state.isSuspended()) {
+             activeSuspended.inc();
+         } else if (state.isInitial()) {
+             updateResponses(request, request.getResponse(), start, request.isHandled());
+         }
+         // else onCompletion will handle it.
+     }
+ 
+     private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
+         if (isHandled) {
+             mark(response.getStatus());
+         } else {
+             mark(404); // will end up with a 404 response sent by HttpChannel.handle
+         }
+         activeRequests.dec();
+         final long elapsedTime = System.currentTimeMillis() - start;
+         requests.update(elapsedTime, TimeUnit.MILLISECONDS);
+         requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);
+     }
+ 
+     private void mark(int statusCode) {
+         if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {
+             getResponseCodeMeter(statusCode).mark();
+         }
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             final int responseStatus = statusCode / 100;
+             if (responseStatus >= 1 && responseStatus <= 5) {
+                 responses.get(responseStatus - 1).mark();
+             }
+         }
+     }
+ 
+     private Meter getResponseCodeMeter(int statusCode) {
+         return responseCodeMeters
+                 .computeIfAbsent(statusCode, sc -> metricRegistry
+                         .meter(name(prefix, String.format("%d-responses", sc))));
+     }
+ 
+     private Timer requestTimer(String method) {
+         final HttpMethod m = HttpMethod.fromString(method);
+         if (m == null) {
+             return otherRequests;
+         } else {
+             switch (m) {
+                 case GET:
+                     return getRequests;
+                 case POST:
+                     return postRequests;
+                 case PUT:
+                     return putRequests;
+                 case HEAD:
+                     return headRequests;
+                 case DELETE:
+                     return deleteRequests;
+                 case OPTIONS:
+                     return optionsRequests;
+                 case TRACE:
+                     return traceRequests;
+                 case CONNECT:
+                     return connectRequests;
+                 case MOVE:
+                     return moveRequests;
+                 default:
+                     return otherRequests;
+             }
+         }
+     }
+ 
+     private class AsyncAttachingListener implements AsyncListener {
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+             event.getAsyncContext().addListener(new InstrumentedAsyncListener());
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {}
+     };
+ 
+     private class InstrumentedAsyncListener implements AsyncListener {
+         private final long startTime;
+ 
+         InstrumentedAsyncListener() {
+             this.startTime = System.currentTimeMillis();
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             asyncTimeouts.mark();
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             final AsyncContextState state = (AsyncContextState) event.getAsyncContext();
+             final HttpServletRequest request = (HttpServletRequest) state.getRequest();
+             final HttpServletResponse response = (HttpServletResponse) state.getResponse();
+             updateResponses(request, response, startTime, true);
+             if (!state.getHttpChannelState().isSuspended()) {
+                 activeSuspended.dec();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-4.html new file mode 100644 index 0000000000..9ba421571e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-4.html @@ -0,0 +1,345 @@ + + + + + + + + Coverage Report > InstrumentedQueuedThreadPool + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty10)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 72.2% + + + (13/18) + + + + 84.4% + + + (27/32) + +
InstrumentedQueuedThreadPool$1 + + 50% + + + (1/2) + + + + 50% + + + (1/2) + +
InstrumentedQueuedThreadPool$2 + + 50% + + + (1/2) + + + + 50% + + + (1/2) + +
InstrumentedQueuedThreadPool$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
Total + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty10;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import org.eclipse.jetty.util.annotation.Name;
+ import org.eclipse.jetty.util.thread.QueuedThreadPool;
+ 
+ import java.util.concurrent.BlockingQueue;
+ import java.util.concurrent.ThreadFactory;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ public class InstrumentedQueuedThreadPool extends QueuedThreadPool {
+     private static final String NAME_UTILIZATION = "utilization";
+     private static final String NAME_UTILIZATION_MAX = "utilization-max";
+     private static final String NAME_SIZE = "size";
+     private static final String NAME_JOBS = "jobs";
+     private static final String NAME_JOBS_QUEUE_UTILIZATION = "jobs-queue-utilization";
+ 
+     private final MetricRegistry metricRegistry;
+     private String prefix;
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry) {
+         this(registry, 200);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads) {
+         this(registry, maxThreads, 8);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads) {
+         this(registry, maxThreads, minThreads, 60000);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue) {
+         this(registry, maxThreads, minThreads, 60000, queue);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout) {
+         this(registry, maxThreads, minThreads, idleTimeout, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue) {
+         this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("prefix") String prefix) {
+         this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadFactory") ThreadFactory threadFactory) {
+         this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup) {
+         this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("reservedThreads") int reservedThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup) {
+         this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("reservedThreads") int reservedThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup,
+                                         @Name("threadFactory") ThreadFactory threadFactory) {
+         this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("reservedThreads") int reservedThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup,
+                                         @Name("threadFactory") ThreadFactory threadFactory,
+                                         @Name("prefix") String prefix) {
+         super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);
+         this.metricRegistry = registry;
+         this.prefix = prefix;
+     }
+ 
+     public String getPrefix() {
+         return prefix;
+     }
+ 
+     public void setPrefix(String prefix) {
+         this.prefix = prefix;
+     }
+ 
+     @Override
+     protected void doStart() throws Exception {
+         super.doStart();
+ 
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(getThreads() - getIdleThreads(), getThreads());
+             }
+         });
+         metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());
+             }
+         });
+         // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
+         // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
+         metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);
+         metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -> getQueue().size());
+         metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 BlockingQueue<Runnable> queue = getQueue();
+                 return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());
+             }
+         });
+     }
+ 
+     @Override
+     protected void doStop() throws Exception {
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.remove(name(prefix, NAME_UTILIZATION));
+         metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));
+         metricRegistry.remove(name(prefix, NAME_SIZE));
+         metricRegistry.remove(name(prefix, NAME_JOBS));
+         metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));
+ 
+         super.doStop();
+     }
+ 
+     private String getMetricPrefix() {
+         return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index.html b/metrics-complete-report-initial-htmlReport/ns-2/index.html new file mode 100644 index 0000000000..22f2346adc --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..ce498c58f1 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..d4650da0c7 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..6b513b8a30 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..fd5b9ff349 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..a18821de6e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..dc5661d246 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..076de61863 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..50f3ca8d6f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..afbad896e3 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.annotation + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-1.html new file mode 100644 index 0000000000..69f45e619f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-1.html @@ -0,0 +1,127 @@ + + + + + + + + Coverage Report > ResponseMeteredLevel + + + + + + +
+ + +

Coverage Summary for Class: ResponseMeteredLevel (com.codahale.metrics.annotation)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ResponseMeteredLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + +
+ package com.codahale.metrics.annotation;
+ 
+ /**
+  * {@link ResponseMeteredLevel} is a parameter for the {@link ResponseMetered} annotation.
+  * The constants of this enumerated type decide what meters are included when a class
+  * or method is annotated with the {@link ResponseMetered} annotation.
+  */
+ public enum ResponseMeteredLevel {
+     /**
+      * Include meters for 1xx/2xx/3xx/4xx/5xx responses
+      */
+     COARSE,
+ 
+     /**
+      * Include meters for every response code (200, 201, 303, 304, 401, 404, 501, etc.)
+      */
+     DETAILED,
+ 
+     /**
+      * Include meters for every response code in addition to top level 1xx/2xx/3xx/4xx/5xx responses
+      */
+     ALL;
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-2.html new file mode 100644 index 0000000000..9780b55bb2 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-2.html @@ -0,0 +1,107 @@ + + + + + + + + Coverage Report > Timed + + + + + + +
+ + +

Coverage Summary for Class: Timed (com.codahale.metrics.annotation)

+ + + + + + + + + +
Class
Timed
+ +
+
+ + +
+ package com.codahale.metrics.annotation;
+ 
+ import java.lang.annotation.Documented;
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Inherited;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
+ 
+ /**
+  * An annotation for marking a method of an annotated object as timed.
+  * <p>
+  * Given a method like this:
+  * <pre><code>
+  *     {@literal @}Timed(name = "fancyName")
+  *     public String fancyName(String name) {
+  *         return "Sir Captain " + name;
+  *     }
+  * </code></pre>
+  * <p>
+  * A timer for the defining class with the name {@code fancyName} will be created and each time the
+  * {@code #fancyName(String)} method is invoked, the method's execution will be timed.
+  */
+ @Inherited
+ @Documented
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
+ public @interface Timed {
+     /**
+      * @return The name of the timer.
+      */
+     String name() default "";
+ 
+     /**
+      * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
+      * relative to the annotated class. When annotating a class, this must be {@code false}.
+      */
+     boolean absolute() default false;
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-3.html new file mode 100644 index 0000000000..eb96a66db2 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-3.html @@ -0,0 +1,116 @@ + + + + + + + + Coverage Report > Metric + + + + + + +
+ + +

Coverage Summary for Class: Metric (com.codahale.metrics.annotation)

+ + + + + + + + + +
Class
Metric
+ +
+
+ + +
+ package com.codahale.metrics.annotation;
+ 
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
+ 
+ /**
+  * An annotation requesting that a metric be injected or registered.
+  *
+  * <p>
+  * Given a field like this:
+  * <pre><code>
+  *     {@literal @}Metric
+  *     public Histogram histogram;
+  * </code></pre>
+  * <p>
+  * A meter of the field's type will be created and injected into managed objects.
+  * It will be up to the user to interact with the metric. This annotation
+  * can be used on fields of type Meter, Timer, Counter, and Histogram.
+  *
+  * <p>
+  * This may also be used to register a metric, which is useful for creating a histogram with
+  * a custom Reservoir.
+  * <pre><code>
+  *     {@literal @}Metric
+  *     public Histogram uniformHistogram = new Histogram(new UniformReservoir());
+  * </code></pre>
+  * <p>
+  *
+  * @since 3.1
+  */
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
+ public @interface Metric {
+ 
+     /**
+      * @return The name of the metric.
+      */
+     String name() default "";
+ 
+     /**
+      * @return If {@code true}, use the given name as an absolute name. If {@code false},
+      * use the given name relative to the annotated class.
+      */
+     boolean absolute() default false;
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-4.html new file mode 100644 index 0000000000..c092acba0b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-4.html @@ -0,0 +1,133 @@ + + + + + + + + Coverage Report > ExceptionMetered + + + + + + +
+ + +

Coverage Summary for Class: ExceptionMetered (com.codahale.metrics.annotation)

+ + + + + + + + + +
Class
ExceptionMetered
+ +
+
+ + +
+ package com.codahale.metrics.annotation;
+ 
+ import java.lang.annotation.Documented;
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Inherited;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
+ 
+ /**
+  * An annotation for marking a method of an annotated object as metered.
+  * <p>
+  * Given a method like this:
+  * <pre><code>
+  *     {@literal @}ExceptionMetered(name = "fancyName", cause=IllegalArgumentException.class)
+  *     public String fancyName(String name) {
+  *         return "Sir Captain " + name;
+  *     }
+  * </code></pre>
+  * <p>
+  * A meter for the defining class with the name {@code fancyName} will be created and each time the
+  * {@code #fancyName(String)} throws an exception of type {@code cause} (or a subclass), the meter
+  * will be marked.
+  * <p>
+  * A name for the metric can be specified as an annotation parameter, otherwise, the metric will be
+  * named based on the method name.
+  * <p>
+  * For instance, given a declaration of
+  * <pre><code>
+  *     {@literal @}ExceptionMetered
+  *     public String fancyName(String name) {
+  *         return "Sir Captain " + name;
+  *     }
+  * </code></pre>
+  * <p>
+  * A meter named {@code fancyName.exceptions} will be created and marked every time an exception is
+  * thrown.
+  */
+ @Inherited
+ @Documented
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
+ public @interface ExceptionMetered {
+     /**
+      * The default suffix for meter names.
+      */
+     String DEFAULT_NAME_SUFFIX = "exceptions";
+ 
+     /**
+      * @return The name of the meter. If not specified, the meter will be given a name based on the method
+      * it decorates and the suffix "Exceptions".
+      */
+     String name() default "";
+ 
+     /**
+      * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
+      * relative to the annotated class. When annotating a class, this must be {@code false}.
+      */
+     boolean absolute() default false;
+ 
+     /**
+      * @return The type of exceptions that the meter will catch and count.
+      */
+     Class<? extends Throwable> cause() default Exception.class;
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-5.html new file mode 100644 index 0000000000..efca27b76d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-5.html @@ -0,0 +1,113 @@ + + + + + + + + Coverage Report > ResponseMetered + + + + + + +
+ + +

Coverage Summary for Class: ResponseMetered (com.codahale.metrics.annotation)

+ + + + + + + + + +
Class
ResponseMetered
+ +
+
+ + +
+ package com.codahale.metrics.annotation;
+ 
+ import java.lang.annotation.Documented;
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Inherited;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
+ 
+ /**
+  * An annotation for marking a method of an annotated object as metered.
+  * <p>
+  * Given a method like this:
+  * <pre><code>
+  *     {@literal @}ResponseMetered(name = "fancyName", level = ResponseMeteredLevel.ALL)
+  *     public String fancyName(String name) {
+  *         return "Sir Captain " + name;
+  *     }
+  * </code></pre>
+  * <p>
+  * Meters for the defining class with the name {@code fancyName} will be created for response codes
+  * based on the ResponseMeteredLevel selected. Each time the {@code #fancyName(String)} method is invoked,
+  * the appropriate response meter will be marked.
+  */
+ @Inherited
+ @Documented
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
+ public @interface ResponseMetered {
+     /**
+      * @return The name of the meter.
+      */
+     String name() default "";
+ 
+     /**
+      * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
+      * relative to the annotated class. When annotating a class, this must be {@code false}.
+      */
+     boolean absolute() default false;
+ 
+     /**
+      * @return the ResponseMeteredLevel which decides which response code meters are marked.
+      */
+     ResponseMeteredLevel level() default ResponseMeteredLevel.COARSE;
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-6.html new file mode 100644 index 0000000000..4b4c6413e6 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-6.html @@ -0,0 +1,103 @@ + + + + + + + + Coverage Report > Gauge + + + + + + +
+ + +

Coverage Summary for Class: Gauge (com.codahale.metrics.annotation)

+ + + + + + + + + +
Class
Gauge
+ +
+
+ + +
+ package com.codahale.metrics.annotation;
+ 
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
+ 
+ /**
+  * An annotation for marking a method of an annotated object as a gauge.
+  * <p>
+  * Given a method like this:
+  * <pre><code>
+  *     {@literal @}Gauge(name = "queueSize")
+  *     public int getQueueSize() {
+  *         return queue.size;
+  *     }
+  * </code></pre>
+  * <p>
+  * A gauge for the defining class with the name {@code queueSize} will be created which uses the
+  * annotated method's return value as its value.
+  */
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE })
+ public @interface Gauge {
+     /**
+      * @return The gauge's name.
+      */
+     String name() default "";
+ 
+     /**
+      * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
+      * relative to the annotated class.
+      */
+     boolean absolute() default false;
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-7.html b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-7.html new file mode 100644 index 0000000000..367d085d3d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-7.html @@ -0,0 +1,121 @@ + + + + + + + + Coverage Report > Counted + + + + + + +
+ + +

Coverage Summary for Class: Counted (com.codahale.metrics.annotation)

+ + + + + + + + + +
Class
Counted
+ +
+
+ + +
+ package com.codahale.metrics.annotation;
+ 
+ import java.lang.annotation.Documented;
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Inherited;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
+ 
+ /**
+  * An annotation for marking a method of an annotated object as counted.
+  *
+  * <p>
+  * Given a method like this:
+  * <pre><code>
+  *     {@literal @}Counted(name = "fancyName")
+  *     public String fancyName(String name) {
+  *         return "Sir Captain " + name;
+  *     }
+  * </code></pre>
+  * <p>
+  * A counter for the defining class with the name {@code fancyName} will be created and each time the
+  * {@code #fancyName(String)} method is invoked, the counter will be marked.
+  *
+  * @since 3.1
+  */
+ @Inherited
+ @Documented
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
+ public @interface Counted {
+ 
+     /**
+      * @return The name of the counter.
+      */
+     String name() default "";
+ 
+     /**
+      * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
+      * relative to the annotated class. When annotating a class, this must be {@code false}.
+      */
+     boolean absolute() default false;
+ 
+     /**
+      * @return 
+      * If {@code false} (default), the counter is decremented when the annotated
+      * method returns, counting current invocations of the annotated method.
+      * If {@code true}, the counter increases monotonically, counting total
+      * invocations of the annotated method.
+      */
+     boolean monotonic() default false;
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-8.html b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-8.html new file mode 100644 index 0000000000..7b21263eeb --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-8.html @@ -0,0 +1,121 @@ + + + + + + + + Coverage Report > CachedGauge + + + + + + +
+ + +

Coverage Summary for Class: CachedGauge (com.codahale.metrics.annotation)

+ + + + + + + + + +
Class
CachedGauge
+ +
+
+ + +
+ package com.codahale.metrics.annotation;
+ 
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * An annotation for marking a method as a gauge, which caches the result for a specified time.
+  *
+  * <p>
+  * Given a method like this:
+  * <pre><code>
+  *     {@literal @}CachedGauge(name = "queueSize", timeout = 30, timeoutUnit = TimeUnit.SECONDS)
+  *     public int getQueueSize() {
+  *         return queue.getSize();
+  *     }
+  *
+  * </code></pre>
+  * <p>
+  *
+  * A gauge for the defining class with the name queueSize will be created which uses the annotated method's
+  * return value as its value, and which caches the result for 30 seconds.
+  *
+  * @since 3.1
+  */
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE })
+ public @interface CachedGauge {
+ 
+     /**
+      * @return The name of the counter.
+      */
+     String name() default "";
+ 
+     /**
+      * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
+      * relative to the annotated class.
+      */
+     boolean absolute() default false;
+ 
+     /**
+      * @return The amount of time to cache the result
+      */
+     long timeout();
+ 
+     /**
+      * @return The unit of timeout
+      */
+     TimeUnit timeoutUnit() default TimeUnit.MILLISECONDS;
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-9.html b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-9.html new file mode 100644 index 0000000000..4bfe9db023 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-9.html @@ -0,0 +1,107 @@ + + + + + + + + Coverage Report > Metered + + + + + + +
+ + +

Coverage Summary for Class: Metered (com.codahale.metrics.annotation)

+ + + + + + + + + +
Class
Metered
+ +
+
+ + +
+ package com.codahale.metrics.annotation;
+ 
+ import java.lang.annotation.Documented;
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Inherited;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
+ 
+ /**
+  * An annotation for marking a method of an annotated object as metered.
+  * <p>
+  * Given a method like this:
+  * <pre><code>
+  *     {@literal @}Metered(name = "fancyName")
+  *     public String fancyName(String name) {
+  *         return "Sir Captain " + name;
+  *     }
+  * </code></pre>
+  * <p>
+  * A meter for the defining class with the name {@code fancyName} will be created and each time the
+  * {@code #fancyName(String)} method is invoked, the meter will be marked.
+  */
+ @Inherited
+ @Documented
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
+ public @interface Metered {
+     /**
+      * @return The name of the meter.
+      */
+     String name() default "";
+ 
+     /**
+      * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
+      * relative to the annotated class. When annotating a class, this must be {@code false}.
+      */
+     boolean absolute() default false;
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index.html b/metrics-complete-report-initial-htmlReport/ns-20/index.html new file mode 100644 index 0000000000..a35abc146f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-20/index.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..25aa0443db --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..d094460b92 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..1f721eb8a1 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..d2811a1f41 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..d9ddbe2bd3 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_LINE.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..bf21814075 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..cf284e2a4b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..5b4534535a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..c5dfb4977c --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,224 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty11 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty11

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty11 + + 96.2% + + + (25/26) + + + + 62.3% + + + (76/122) + + + + 75% + + + (276/368) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
InstrumentedHttpChannelListener + + 100% + + + (10/10) + + + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
InstrumentedHandler + + 90% + + + (9/10) + + + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-20/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-20/sources/source-1.html new file mode 100644 index 0000000000..df56ab075f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-20/sources/source-1.html @@ -0,0 +1,193 @@ + + + + + + + + Coverage Report > InstrumentedConnectionFactory + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty11)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedConnectionFactory + + 83.3% + + + (5/6) + + + + 91.7% + + + (11/12) + +
InstrumentedConnectionFactory$1 + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
Total + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty11;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Timer;
+ import org.eclipse.jetty.io.Connection;
+ import org.eclipse.jetty.io.EndPoint;
+ import org.eclipse.jetty.server.ConnectionFactory;
+ import org.eclipse.jetty.server.Connector;
+ import org.eclipse.jetty.util.component.ContainerLifeCycle;
+ 
+ import java.util.List;
+ 
+ public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {
+     private final ConnectionFactory connectionFactory;
+     private final Timer timer;
+     private final Counter counter;
+ 
+     public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
+         this(connectionFactory, timer, null);
+     }
+ 
+     public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {
+         this.connectionFactory = connectionFactory;
+         this.timer = timer;
+         this.counter = counter;
+         addBean(connectionFactory);
+     }
+ 
+     @Override
+     public String getProtocol() {
+         return connectionFactory.getProtocol();
+     }
+ 
+     @Override
+     public List<String> getProtocols() {
+         return connectionFactory.getProtocols();
+     }
+ 
+     @Override
+     public Connection newConnection(Connector connector, EndPoint endPoint) {
+         final Connection connection = connectionFactory.newConnection(connector, endPoint);
+         connection.addEventListener(new Connection.Listener() {
+             private Timer.Context context;
+ 
+             @Override
+             public void onOpened(Connection connection) {
+                 this.context = timer.time();
+                 if (counter != null) {
+                     counter.inc();
+                 }
+             }
+ 
+             @Override
+             public void onClosed(Connection connection) {
+                 context.stop();
+                 if (counter != null) {
+                     counter.dec();
+                 }
+             }
+         });
+         return connection;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-20/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-20/sources/source-2.html new file mode 100644 index 0000000000..38acef0465 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-20/sources/source-2.html @@ -0,0 +1,725 @@ + + + + + + + + Coverage Report > InstrumentedHandler + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty11)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedHandler + + 81.2% + + + (13/16) + + + + 86.3% + + + (113/131) + +
InstrumentedHandler$1 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$2 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$4 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$5 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$6 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHandler$7 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
InstrumentedHandler$AsyncAttachingListener + + 20% + + + (1/5) + + + + 20% + + + (1/5) + +
InstrumentedHandler$InstrumentedAsyncListener + + 0% + + + (0/5) + + + + 0% + + + (0/11) + +
Total + + 53.8% + + + (21/39) + + + + 72.9% + + + (121/166) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty11;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import jakarta.servlet.AsyncEvent;
+ import jakarta.servlet.AsyncListener;
+ import jakarta.servlet.ServletException;
+ import jakarta.servlet.http.HttpServletRequest;
+ import jakarta.servlet.http.HttpServletResponse;
+ import org.eclipse.jetty.http.HttpMethod;
+ import org.eclipse.jetty.server.AsyncContextState;
+ import org.eclipse.jetty.server.Handler;
+ import org.eclipse.jetty.server.HttpChannelState;
+ import org.eclipse.jetty.server.Request;
+ import org.eclipse.jetty.server.handler.HandlerWrapper;
+ 
+ import java.io.IOException;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.EnumSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ 
+ /**
+  * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
+  * instance.
+  */
+ public class InstrumentedHandler extends HandlerWrapper {
+     private static final String NAME_REQUESTS = "requests";
+     private static final String NAME_DISPATCHES = "dispatches";
+     private static final String NAME_ACTIVE_REQUESTS = "active-requests";
+     private static final String NAME_ACTIVE_DISPATCHES = "active-dispatches";
+     private static final String NAME_ACTIVE_SUSPENDED = "active-suspended";
+     private static final String NAME_ASYNC_DISPATCHES = "async-dispatches";
+     private static final String NAME_ASYNC_TIMEOUTS = "async-timeouts";
+     private static final String NAME_1XX_RESPONSES = "1xx-responses";
+     private static final String NAME_2XX_RESPONSES = "2xx-responses";
+     private static final String NAME_3XX_RESPONSES = "3xx-responses";
+     private static final String NAME_4XX_RESPONSES = "4xx-responses";
+     private static final String NAME_5XX_RESPONSES = "5xx-responses";
+     private static final String NAME_GET_REQUESTS = "get-requests";
+     private static final String NAME_POST_REQUESTS = "post-requests";
+     private static final String NAME_HEAD_REQUESTS = "head-requests";
+     private static final String NAME_PUT_REQUESTS = "put-requests";
+     private static final String NAME_DELETE_REQUESTS = "delete-requests";
+     private static final String NAME_OPTIONS_REQUESTS = "options-requests";
+     private static final String NAME_TRACE_REQUESTS = "trace-requests";
+     private static final String NAME_CONNECT_REQUESTS = "connect-requests";
+     private static final String NAME_MOVE_REQUESTS = "move-requests";
+     private static final String NAME_OTHER_REQUESTS = "other-requests";
+     private static final String NAME_PERCENT_4XX_1M = "percent-4xx-1m";
+     private static final String NAME_PERCENT_4XX_5M = "percent-4xx-5m";
+     private static final String NAME_PERCENT_4XX_15M = "percent-4xx-15m";
+     private static final String NAME_PERCENT_5XX_1M = "percent-5xx-1m";
+     private static final String NAME_PERCENT_5XX_5M = "percent-5xx-5m";
+     private static final String NAME_PERCENT_5XX_15M = "percent-5xx-15m";
+     private static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+     private static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+ 
+     private final MetricRegistry metricRegistry;
+ 
+     private String name;
+     private final String prefix;
+ 
+     // the requests handled by this handler, excluding active
+     private Timer requests;
+ 
+     // the number of dispatches seen by this handler, excluding active
+     private Timer dispatches;
+ 
+     // the number of active requests
+     private Counter activeRequests;
+ 
+     // the number of active dispatches
+     private Counter activeDispatches;
+ 
+     // the number of requests currently suspended.
+     private Counter activeSuspended;
+ 
+     // the number of requests that have been asynchronously dispatched
+     private Meter asyncDispatches;
+ 
+     // the number of requests that expired while suspended
+     private Meter asyncTimeouts;
+ 
+     private final ResponseMeteredLevel responseMeteredLevel;
+     private List<Meter> responses;
+     private Map<Integer, Meter> responseCodeMeters;
+ 
+     private Timer getRequests;
+     private Timer postRequests;
+     private Timer headRequests;
+     private Timer putRequests;
+     private Timer deleteRequests;
+     private Timer optionsRequests;
+     private Timer traceRequests;
+     private Timer connectRequests;
+     private Timer moveRequests;
+     private Timer otherRequests;
+ 
+     private AsyncListener listener;
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      */
+     public InstrumentedHandler(MetricRegistry registry) {
+         this(registry, null);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      */
+     public InstrumentedHandler(MetricRegistry registry, String prefix) {
+         this(registry, prefix, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
+      */
+     public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {
+         this.responseMeteredLevel = responseMeteredLevel;
+         this.metricRegistry = registry;
+         this.prefix = prefix;
+     }
+ 
+     public String getName() {
+         return name;
+     }
+ 
+     public void setName(String name) {
+         this.name = name;
+     }
+ 
+     @Override
+     protected void doStart() throws Exception {
+         super.doStart();
+ 
+         final String prefix = getMetricPrefix();
+ 
+         this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));
+         this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));
+ 
+         this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));
+         this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));
+         this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));
+ 
+         this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));
+         this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));
+ 
+         this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+ 
+         this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));
+         this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));
+         this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));
+         this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));
+         this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));
+         this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));
+         this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));
+         this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));
+         this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));
+         this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             this.responses = Collections.unmodifiableList(Arrays.asList(
+                             metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx
+                             metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx
+                             metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx
+                             metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx
+                             metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx
+                     ));
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getOneMinuteRate(),
+                             requests.getOneMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getFiveMinuteRate(),
+                             requests.getFiveMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getFifteenMinuteRate(),
+                             requests.getFifteenMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getOneMinuteRate(),
+                             requests.getOneMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getFiveMinuteRate(),
+                             requests.getFiveMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {
+                 @Override
+                 public Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getFifteenMinuteRate(),
+                             requests.getFifteenMinuteRate());
+                 }
+             });
+         } else {
+             this.responses = Collections.emptyList();
+         }
+ 
+ 
+         this.listener = new AsyncAttachingListener();
+     }
+ 
+     @Override
+     protected void doStop() throws Exception {
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.remove(name(prefix, NAME_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));
+         metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));
+         metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));
+ 
+         if (responseCodeMeters != null) {
+             responseCodeMeters.keySet().stream()
+                     .map(sc -> name(getMetricPrefix(), String.format("%d-responses", sc)))
+                     .forEach(metricRegistry::remove);
+         }
+         super.doStop();
+     }
+ 
+     @Override
+     public void handle(String path,
+                        Request request,
+                        HttpServletRequest httpRequest,
+                        HttpServletResponse httpResponse) throws IOException, ServletException {
+ 
+         activeDispatches.inc();
+ 
+         final long start;
+         final HttpChannelState state = request.getHttpChannelState();
+         if (state.isInitial()) {
+             // new request
+             activeRequests.inc();
+             start = request.getTimeStamp();
+             state.addListener(listener);
+         } else {
+             // resumed request
+             start = System.currentTimeMillis();
+             activeSuspended.dec();
+             if (state.getState() == HttpChannelState.State.HANDLING) {
+                 asyncDispatches.mark();
+             }
+         }
+ 
+         try {
+             super.handle(path, request, httpRequest, httpResponse);
+         } finally {
+             final long now = System.currentTimeMillis();
+             final long dispatched = now - start;
+ 
+             activeDispatches.dec();
+             dispatches.update(dispatched, TimeUnit.MILLISECONDS);
+ 
+             if (state.isSuspended()) {
+                 activeSuspended.inc();
+             } else if (state.isInitial()) {
+                 updateResponses(httpRequest, httpResponse, start, request.isHandled());
+             }
+             // else onCompletion will handle it.
+         }
+     }
+ 
+     private Timer requestTimer(String method) {
+         final HttpMethod m = HttpMethod.fromString(method);
+         if (m == null) {
+             return otherRequests;
+         } else {
+             switch (m) {
+                 case GET:
+                     return getRequests;
+                 case POST:
+                     return postRequests;
+                 case PUT:
+                     return putRequests;
+                 case HEAD:
+                     return headRequests;
+                 case DELETE:
+                     return deleteRequests;
+                 case OPTIONS:
+                     return optionsRequests;
+                 case TRACE:
+                     return traceRequests;
+                 case CONNECT:
+                     return connectRequests;
+                 case MOVE:
+                     return moveRequests;
+                 default:
+                     return otherRequests;
+             }
+         }
+     }
+ 
+     private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
+         if (isHandled) {
+             mark(response.getStatus());
+         } else {
+             mark(404);; // will end up with a 404 response sent by HttpChannel.handle
+         }
+         activeRequests.dec();
+         final long elapsedTime = System.currentTimeMillis() - start;
+         requests.update(elapsedTime, TimeUnit.MILLISECONDS);
+         requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);
+     }
+ 
+     private void mark(int statusCode) {
+         if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {
+             getResponseCodeMeter(statusCode).mark();
+         }
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             final int responseStatus = statusCode / 100;
+             if (responseStatus >= 1 && responseStatus <= 5) {
+                 responses.get(responseStatus - 1).mark();
+             }
+         }
+     }
+ 
+     private Meter getResponseCodeMeter(int statusCode) {
+         return responseCodeMeters
+                 .computeIfAbsent(statusCode, sc -> metricRegistry
+                         .meter(name(getMetricPrefix(), String.format("%d-responses", sc))));
+     }
+ 
+     private String getMetricPrefix() {
+         return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);
+     }
+ 
+     private class AsyncAttachingListener implements AsyncListener {
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+             event.getAsyncContext().addListener(new InstrumentedAsyncListener());
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {}
+     };
+ 
+     private class InstrumentedAsyncListener implements AsyncListener {
+         private final long startTime;
+ 
+         InstrumentedAsyncListener() {
+             this.startTime = System.currentTimeMillis();
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             asyncTimeouts.mark();
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             final AsyncContextState state = (AsyncContextState) event.getAsyncContext();
+             final HttpServletRequest request = (HttpServletRequest) state.getRequest();
+             final HttpServletResponse response = (HttpServletResponse) state.getResponse();
+             updateResponses(request, response, startTime, true);
+             if (!state.getHttpChannelState().isSuspended()) {
+                 activeSuspended.dec();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-20/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-20/sources/source-3.html new file mode 100644 index 0000000000..cf0924532a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-20/sources/source-3.html @@ -0,0 +1,706 @@ + + + + + + + + Coverage Report > InstrumentedHttpChannelListener + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty11)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedHttpChannelListener + + 74.1% + + + (20/27) + + + + 82.6% + + + (90/109) + +
InstrumentedHttpChannelListener$1 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$2 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$4 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$5 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$6 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
InstrumentedHttpChannelListener$7 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
InstrumentedHttpChannelListener$AsyncAttachingListener + + 40% + + + (2/5) + + + + 40% + + + (2/5) + +
InstrumentedHttpChannelListener$InstrumentedAsyncListener + + 40% + + + (2/5) + + + + 72.7% + + + (8/11) + +
Total + + 62% + + + (31/50) + + + + 74.3% + + + (107/144) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty11;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import jakarta.servlet.AsyncEvent;
+ import jakarta.servlet.AsyncListener;
+ import jakarta.servlet.http.HttpServletRequest;
+ import jakarta.servlet.http.HttpServletResponse;
+ import org.eclipse.jetty.http.HttpMethod;
+ import org.eclipse.jetty.server.AsyncContextState;
+ import org.eclipse.jetty.server.HttpChannel.Listener;
+ import org.eclipse.jetty.server.HttpChannelState;
+ import org.eclipse.jetty.server.Request;
+ 
+ import java.io.IOException;
+ import java.nio.ByteBuffer;
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.EnumSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ 
+ /**
+  * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
+  * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
+  * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
+  *
+  * @since TBD
+  */
+ public class InstrumentedHttpChannelListener
+         implements Listener {
+     private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + ".start";
+     private static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+     private static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+ 
+     private final MetricRegistry metricRegistry;
+ 
+     // the requests handled by this handler, excluding active
+     private final Timer requests;
+ 
+     // the number of dispatches seen by this handler, excluding active
+     private final Timer dispatches;
+ 
+     // the number of active requests
+     private final Counter activeRequests;
+ 
+     // the number of active dispatches
+     private final Counter activeDispatches;
+ 
+     // the number of requests currently suspended.
+     private final Counter activeSuspended;
+ 
+     // the number of requests that have been asynchronously dispatched
+     private final Meter asyncDispatches;
+ 
+     // the number of requests that expired while suspended
+     private final Meter asyncTimeouts;
+ 
+     private final ResponseMeteredLevel responseMeteredLevel;
+     private final List<Meter> responses;
+     private final Map<Integer, Meter> responseCodeMeters;
+     private final String prefix;
+     private final Timer getRequests;
+     private final Timer postRequests;
+     private final Timer headRequests;
+     private final Timer putRequests;
+     private final Timer deleteRequests;
+     private final Timer optionsRequests;
+     private final Timer traceRequests;
+     private final Timer connectRequests;
+     private final Timer moveRequests;
+     private final Timer otherRequests;
+ 
+     private final AsyncListener listener;
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      */
+     public InstrumentedHttpChannelListener(MetricRegistry registry) {
+         this(registry, null, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param pref     the prefix to use for the metrics names
+      */
+     public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
+         this(registry, pref, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param pref     the prefix to use for the metrics names
+      * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
+      */
+     public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {
+         this.metricRegistry = registry;
+ 
+         this.prefix = (pref == null) ? getClass().getName() : pref;
+ 
+         this.requests = metricRegistry.timer(name(prefix, "requests"));
+         this.dispatches = metricRegistry.timer(name(prefix, "dispatches"));
+ 
+         this.activeRequests = metricRegistry.counter(name(prefix, "active-requests"));
+         this.activeDispatches = metricRegistry.counter(name(prefix, "active-dispatches"));
+         this.activeSuspended = metricRegistry.counter(name(prefix, "active-suspended"));
+ 
+         this.asyncDispatches = metricRegistry.meter(name(prefix, "async-dispatches"));
+         this.asyncTimeouts = metricRegistry.meter(name(prefix, "async-timeouts"));
+ 
+         this.responseMeteredLevel = responseMeteredLevel;
+         this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+         this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?
+                 Collections.unmodifiableList(Arrays.asList(
+                         registry.meter(name(prefix, "1xx-responses")), // 1xx
+                         registry.meter(name(prefix, "2xx-responses")), // 2xx
+                         registry.meter(name(prefix, "3xx-responses")), // 3xx
+                         registry.meter(name(prefix, "4xx-responses")), // 4xx
+                         registry.meter(name(prefix, "5xx-responses"))  // 5xx
+                 )) : Collections.emptyList();
+ 
+         this.getRequests = metricRegistry.timer(name(prefix, "get-requests"));
+         this.postRequests = metricRegistry.timer(name(prefix, "post-requests"));
+         this.headRequests = metricRegistry.timer(name(prefix, "head-requests"));
+         this.putRequests = metricRegistry.timer(name(prefix, "put-requests"));
+         this.deleteRequests = metricRegistry.timer(name(prefix, "delete-requests"));
+         this.optionsRequests = metricRegistry.timer(name(prefix, "options-requests"));
+         this.traceRequests = metricRegistry.timer(name(prefix, "trace-requests"));
+         this.connectRequests = metricRegistry.timer(name(prefix, "connect-requests"));
+         this.moveRequests = metricRegistry.timer(name(prefix, "move-requests"));
+         this.otherRequests = metricRegistry.timer(name(prefix, "other-requests"));
+ 
+         metricRegistry.register(name(prefix, "percent-4xx-1m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(3).getOneMinuteRate(),
+                         requests.getOneMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-4xx-5m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(3).getFiveMinuteRate(),
+                         requests.getFiveMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-4xx-15m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(3).getFifteenMinuteRate(),
+                         requests.getFifteenMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-5xx-1m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(4).getOneMinuteRate(),
+                         requests.getOneMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-5xx-5m"), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(responses.get(4).getFiveMinuteRate(),
+                         requests.getFiveMinuteRate());
+             }
+         });
+ 
+         metricRegistry.register(name(prefix, "percent-5xx-15m"), new RatioGauge() {
+             @Override
+             public Ratio getRatio() {
+                 return Ratio.of(responses.get(4).getFifteenMinuteRate(),
+                         requests.getFifteenMinuteRate());
+             }
+         });
+ 
+         this.listener = new AsyncAttachingListener();
+     }
+ 
+     @Override
+     public void onRequestBegin(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onBeforeDispatch(final Request request) {
+         before(request);
+     }
+ 
+     @Override
+     public void onDispatchFailure(final Request request, final Throwable failure) {
+ 
+     }
+ 
+     @Override
+     public void onAfterDispatch(final Request request) {
+         after(request);
+     }
+ 
+     @Override
+     public void onRequestContent(final Request request, final ByteBuffer content) {
+ 
+     }
+ 
+     @Override
+     public void onRequestContentEnd(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onRequestTrailers(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onRequestEnd(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onRequestFailure(final Request request, final Throwable failure) {
+ 
+     }
+ 
+     @Override
+     public void onResponseBegin(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onResponseCommit(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onResponseContent(final Request request, final ByteBuffer content) {
+ 
+     }
+ 
+     @Override
+     public void onResponseEnd(final Request request) {
+ 
+     }
+ 
+     @Override
+     public void onResponseFailure(final Request request, final Throwable failure) {
+ 
+     }
+ 
+     @Override
+     public void onComplete(final Request request) {
+ 
+     }
+ 
+     private void before(final Request request) {
+         activeDispatches.inc();
+ 
+         final long start;
+         final HttpChannelState state = request.getHttpChannelState();
+         if (state.isInitial()) {
+             // new request
+             activeRequests.inc();
+             start = request.getTimeStamp();
+             state.addListener(listener);
+         } else {
+             // resumed request
+             start = System.currentTimeMillis();
+             activeSuspended.dec();
+             if (state.isAsyncStarted()) {
+                 asyncDispatches.mark();
+             }
+         }
+         request.setAttribute(START_ATTR, start);
+     }
+ 
+     private void after(final Request request) {
+         final long start = (long) request.getAttribute(START_ATTR);
+         final long now = System.currentTimeMillis();
+         final long dispatched = now - start;
+ 
+         activeDispatches.dec();
+         dispatches.update(dispatched, TimeUnit.MILLISECONDS);
+ 
+         final HttpChannelState state = request.getHttpChannelState();
+         if (state.isSuspended()) {
+             activeSuspended.inc();
+         } else if (state.isInitial()) {
+             updateResponses(request, request.getResponse(), start, request.isHandled());
+         }
+         // else onCompletion will handle it.
+     }
+ 
+     private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
+         if (isHandled) {
+             mark(response.getStatus());
+         } else {
+             mark(404); // will end up with a 404 response sent by HttpChannel.handle
+         }
+         activeRequests.dec();
+         final long elapsedTime = System.currentTimeMillis() - start;
+         requests.update(elapsedTime, TimeUnit.MILLISECONDS);
+         requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);
+     }
+ 
+     private void mark(int statusCode) {
+         if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {
+             getResponseCodeMeter(statusCode).mark();
+         }
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             final int responseStatus = statusCode / 100;
+             if (responseStatus >= 1 && responseStatus <= 5) {
+                 responses.get(responseStatus - 1).mark();
+             }
+         }
+     }
+ 
+     private Meter getResponseCodeMeter(int statusCode) {
+         return responseCodeMeters
+                 .computeIfAbsent(statusCode, sc -> metricRegistry
+                         .meter(name(prefix, String.format("%d-responses", sc))));
+     }
+ 
+     private Timer requestTimer(String method) {
+         final HttpMethod m = HttpMethod.fromString(method);
+         if (m == null) {
+             return otherRequests;
+         } else {
+             switch (m) {
+                 case GET:
+                     return getRequests;
+                 case POST:
+                     return postRequests;
+                 case PUT:
+                     return putRequests;
+                 case HEAD:
+                     return headRequests;
+                 case DELETE:
+                     return deleteRequests;
+                 case OPTIONS:
+                     return optionsRequests;
+                 case TRACE:
+                     return traceRequests;
+                 case CONNECT:
+                     return connectRequests;
+                 case MOVE:
+                     return moveRequests;
+                 default:
+                     return otherRequests;
+             }
+         }
+     }
+ 
+     private class AsyncAttachingListener implements AsyncListener {
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+             event.getAsyncContext().addListener(new InstrumentedAsyncListener());
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {}
+     };
+ 
+     private class InstrumentedAsyncListener implements AsyncListener {
+         private final long startTime;
+ 
+         InstrumentedAsyncListener() {
+             this.startTime = System.currentTimeMillis();
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             asyncTimeouts.mark();
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             final AsyncContextState state = (AsyncContextState) event.getAsyncContext();
+             final HttpServletRequest request = (HttpServletRequest) state.getRequest();
+             final HttpServletResponse response = (HttpServletResponse) state.getResponse();
+             updateResponses(request, response, startTime, true);
+             if (!state.getHttpChannelState().isSuspended()) {
+                 activeSuspended.dec();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-20/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-20/sources/source-4.html new file mode 100644 index 0000000000..729377d88f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-20/sources/source-4.html @@ -0,0 +1,345 @@ + + + + + + + + Coverage Report > InstrumentedQueuedThreadPool + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty11)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 72.2% + + + (13/18) + + + + 84.4% + + + (27/32) + +
InstrumentedQueuedThreadPool$1 + + 50% + + + (1/2) + + + + 50% + + + (1/2) + +
InstrumentedQueuedThreadPool$2 + + 50% + + + (1/2) + + + + 50% + + + (1/2) + +
InstrumentedQueuedThreadPool$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
Total + + 66.7% + + + (16/24) + + + + 76.9% + + + (30/39) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty11;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import org.eclipse.jetty.util.annotation.Name;
+ import org.eclipse.jetty.util.thread.QueuedThreadPool;
+ 
+ import java.util.concurrent.BlockingQueue;
+ import java.util.concurrent.ThreadFactory;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ public class InstrumentedQueuedThreadPool extends QueuedThreadPool {
+     private static final String NAME_UTILIZATION = "utilization";
+     private static final String NAME_UTILIZATION_MAX = "utilization-max";
+     private static final String NAME_SIZE = "size";
+     private static final String NAME_JOBS = "jobs";
+     private static final String NAME_JOBS_QUEUE_UTILIZATION = "jobs-queue-utilization";
+ 
+     private final MetricRegistry metricRegistry;
+     private String prefix;
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry) {
+         this(registry, 200);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads) {
+         this(registry, maxThreads, 8);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads) {
+         this(registry, maxThreads, minThreads, 60000);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue) {
+         this(registry, maxThreads, minThreads, 60000, queue);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout) {
+         this(registry, maxThreads, minThreads, idleTimeout, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue) {
+         this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("prefix") String prefix) {
+         this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadFactory") ThreadFactory threadFactory) {
+         this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup) {
+         this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("reservedThreads") int reservedThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup) {
+         this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("reservedThreads") int reservedThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup,
+                                         @Name("threadFactory") ThreadFactory threadFactory) {
+         this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("reservedThreads") int reservedThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup,
+                                         @Name("threadFactory") ThreadFactory threadFactory,
+                                         @Name("prefix") String prefix) {
+         super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);
+         this.metricRegistry = registry;
+         this.prefix = prefix;
+     }
+ 
+     public String getPrefix() {
+         return prefix;
+     }
+ 
+     public void setPrefix(String prefix) {
+         this.prefix = prefix;
+     }
+ 
+     @Override
+     protected void doStart() throws Exception {
+         super.doStart();
+ 
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(getThreads() - getIdleThreads(), getThreads());
+             }
+         });
+         metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());
+             }
+         });
+         metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);
+         // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
+         // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
+         metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -> getQueue().size());
+         metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 BlockingQueue<Runnable> queue = getQueue();
+                 return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());
+             }
+         });
+     }
+ 
+     @Override
+     protected void doStop() throws Exception {
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.remove(name(prefix, NAME_UTILIZATION));
+         metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));
+         metricRegistry.remove(name(prefix, NAME_SIZE));
+         metricRegistry.remove(name(prefix, NAME_JOBS));
+         metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));
+ 
+         super.doStop();
+     }
+ 
+     private String getMetricPrefix() {
+         return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index.html b/metrics-complete-report-initial-htmlReport/ns-21/index.html new file mode 100644 index 0000000000..e6c85a4bc0 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-21/index.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..0f43eba08c --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..c633257861 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..9f33e3c043 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..50b4959e2a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..ed9a1e6849 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_LINE.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..bc45f875c0 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..86a1395676 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..41508607c3 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..1c2bbb6095 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12 + + 100% + + + (14/14) + + + + 72.9% + + + (43/59) + + + + 81.6% + + + (151/185) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 100% + + + (4/4) + + + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
InstrumentedConnectionFactory + + 100% + + + (2/2) + + + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
AbstractInstrumentedHandler + + 100% + + + (8/8) + + + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-21/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-21/sources/source-1.html new file mode 100644 index 0000000000..b52c28979e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-21/sources/source-1.html @@ -0,0 +1,584 @@ + + + + + + + + Coverage Report > AbstractInstrumentedHandler + + + + + + +
+ + +

Coverage Summary for Class: AbstractInstrumentedHandler (io.dropwizard.metrics.jetty12)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
AbstractInstrumentedHandler + + 85.7% + + + (12/14) + + + + 88.1% + + + (96/109) + +
AbstractInstrumentedHandler$1 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
AbstractInstrumentedHandler$2 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
AbstractInstrumentedHandler$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
AbstractInstrumentedHandler$4 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
AbstractInstrumentedHandler$5 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
AbstractInstrumentedHandler$6 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
AbstractInstrumentedHandler$7 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
Total + + 70.4% + + + (19/27) + + + + 80.5% + + + (103/128) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty12;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import org.eclipse.jetty.http.HttpMethod;
+ import org.eclipse.jetty.server.Handler;
+ import org.eclipse.jetty.server.Request;
+ import org.eclipse.jetty.server.Response;
+ 
+ import java.util.Arrays;
+ import java.util.Collections;
+ import java.util.EnumSet;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
+ 
+ /**
+  * An abstract base class of a Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
+  * instance.
+  */
+ public abstract class AbstractInstrumentedHandler extends Handler.Wrapper {
+     protected static final String NAME_REQUESTS = "requests";
+     protected static final String NAME_DISPATCHES = "dispatches";
+     protected static final String NAME_ACTIVE_REQUESTS = "active-requests";
+     protected static final String NAME_ACTIVE_DISPATCHES = "active-dispatches";
+     protected static final String NAME_ACTIVE_SUSPENDED = "active-suspended";
+     protected static final String NAME_ASYNC_DISPATCHES = "async-dispatches";
+     protected static final String NAME_ASYNC_TIMEOUTS = "async-timeouts";
+     protected static final String NAME_1XX_RESPONSES = "1xx-responses";
+     protected static final String NAME_2XX_RESPONSES = "2xx-responses";
+     protected static final String NAME_3XX_RESPONSES = "3xx-responses";
+     protected static final String NAME_4XX_RESPONSES = "4xx-responses";
+     protected static final String NAME_5XX_RESPONSES = "5xx-responses";
+     protected static final String NAME_GET_REQUESTS = "get-requests";
+     protected static final String NAME_POST_REQUESTS = "post-requests";
+     protected static final String NAME_HEAD_REQUESTS = "head-requests";
+     protected static final String NAME_PUT_REQUESTS = "put-requests";
+     protected static final String NAME_DELETE_REQUESTS = "delete-requests";
+     protected static final String NAME_OPTIONS_REQUESTS = "options-requests";
+     protected static final String NAME_TRACE_REQUESTS = "trace-requests";
+     protected static final String NAME_CONNECT_REQUESTS = "connect-requests";
+     protected static final String NAME_MOVE_REQUESTS = "move-requests";
+     protected static final String NAME_OTHER_REQUESTS = "other-requests";
+     protected static final String NAME_PERCENT_4XX_1M = "percent-4xx-1m";
+     protected static final String NAME_PERCENT_4XX_5M = "percent-4xx-5m";
+     protected static final String NAME_PERCENT_4XX_15M = "percent-4xx-15m";
+     protected static final String NAME_PERCENT_5XX_1M = "percent-5xx-1m";
+     protected static final String NAME_PERCENT_5XX_5M = "percent-5xx-5m";
+     protected static final String NAME_PERCENT_5XX_15M = "percent-5xx-15m";
+     protected static final Set<ResponseMeteredLevel> COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);
+     protected static final Set<ResponseMeteredLevel> DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);
+ 
+     protected final MetricRegistry metricRegistry;
+ 
+     private String name;
+     protected final String prefix;
+ 
+     // the requests handled by this handler, excluding active
+     protected Timer requests;
+ 
+     // the number of dispatches seen by this handler, excluding active
+     protected Timer dispatches;
+ 
+     // the number of active requests
+     protected Counter activeRequests;
+ 
+     // the number of active dispatches
+     protected Counter activeDispatches;
+ 
+     // the number of requests currently suspended.
+     protected Counter activeSuspended;
+ 
+     // the number of requests that have been asynchronously dispatched
+     protected Meter asyncDispatches;
+ 
+     // the number of requests that expired while suspended
+     protected Meter asyncTimeouts;
+ 
+     protected final ResponseMeteredLevel responseMeteredLevel;
+     protected List<Meter> responses;
+     protected Map<Integer, Meter> responseCodeMeters;
+ 
+     protected Timer getRequests;
+     protected Timer postRequests;
+     protected Timer headRequests;
+     protected Timer putRequests;
+     protected Timer deleteRequests;
+     protected Timer optionsRequests;
+     protected Timer traceRequests;
+     protected Timer connectRequests;
+     protected Timer moveRequests;
+     protected Timer otherRequests;
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      */
+     protected AbstractInstrumentedHandler(MetricRegistry registry) {
+         this(registry, null);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      */
+     protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix) {
+         this(registry, prefix, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
+      */
+     protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {
+         this.responseMeteredLevel = responseMeteredLevel;
+         this.metricRegistry = registry;
+         this.prefix = prefix;
+     }
+ 
+     public String getName() {
+         return name;
+     }
+ 
+     public void setName(String name) {
+         this.name = name;
+     }
+ 
+     @Override
+     protected void doStart() throws Exception {
+         super.doStart();
+ 
+         final String prefix = getMetricPrefix();
+ 
+         this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));
+         this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));
+ 
+         this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));
+         this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));
+         this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));
+ 
+         this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));
+         this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));
+ 
+         this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap<>() : Collections.emptyMap();
+ 
+         this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));
+         this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));
+         this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));
+         this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));
+         this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));
+         this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));
+         this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));
+         this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));
+         this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));
+         this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             this.responses = Collections.unmodifiableList(Arrays.asList(
+                             metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx
+                             metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx
+                             metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx
+                             metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx
+                             metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx
+                     ));
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getOneMinuteRate(),
+                             requests.getOneMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getFiveMinuteRate(),
+                             requests.getFiveMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(3).getFifteenMinuteRate(),
+                             requests.getFifteenMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getOneMinuteRate(),
+                             requests.getOneMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {
+                 @Override
+                 protected Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getFiveMinuteRate(),
+                             requests.getFiveMinuteRate());
+                 }
+             });
+ 
+             metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {
+                 @Override
+                 public Ratio getRatio() {
+                     return Ratio.of(responses.get(4).getFifteenMinuteRate(),
+                             requests.getFifteenMinuteRate());
+                 }
+             });
+         } else {
+              this.responses = Collections.emptyList();
+         }
+     }
+ 
+     @Override
+     protected void doStop() throws Exception {
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.remove(name(prefix, NAME_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));
+         metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));
+         metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));
+         metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));
+         metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));
+         metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));
+ 
+         if (responseCodeMeters != null) {
+             responseCodeMeters.keySet().stream()
+                     .map(sc -> name(getMetricPrefix(), String.format("%d-responses", sc)))
+                     .forEach(metricRegistry::remove);
+         }
+         super.doStop();
+     }
+ 
+     protected Timer requestTimer(String method) {
+         final HttpMethod m = HttpMethod.fromString(method);
+         if (m == null) {
+             return otherRequests;
+         } else {
+             switch (m) {
+                 case GET:
+                     return getRequests;
+                 case POST:
+                     return postRequests;
+                 case PUT:
+                     return putRequests;
+                 case HEAD:
+                     return headRequests;
+                 case DELETE:
+                     return deleteRequests;
+                 case OPTIONS:
+                     return optionsRequests;
+                 case TRACE:
+                     return traceRequests;
+                 case CONNECT:
+                     return connectRequests;
+                 case MOVE:
+                     return moveRequests;
+                 default:
+                     return otherRequests;
+             }
+         }
+     }
+ 
+     protected void updateResponses(Request request, Response response, long start, boolean isHandled) {
+         if (isHandled) {
+             mark(response.getStatus());
+         } else {
+             mark(404);; // will end up with a 404 response sent by HttpChannel.handle
+         }
+         activeRequests.dec();
+         final long elapsedTime = System.currentTimeMillis() - start;
+         requests.update(elapsedTime, TimeUnit.MILLISECONDS);
+         requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);
+     }
+ 
+     protected void mark(int statusCode) {
+         if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {
+             getResponseCodeMeter(statusCode).mark();
+         }
+ 
+         if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {
+             final int responseStatus = statusCode / 100;
+             if (responseStatus >= 1 && responseStatus <= 5) {
+                 responses.get(responseStatus - 1).mark();
+             }
+         }
+     }
+ 
+     protected Meter getResponseCodeMeter(int statusCode) {
+         return responseCodeMeters
+                 .computeIfAbsent(statusCode, sc -> metricRegistry
+                         .meter(name(getMetricPrefix(), String.format("%d-responses", sc))));
+     }
+ 
+     protected String getMetricPrefix() {
+         return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-21/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-21/sources/source-2.html new file mode 100644 index 0000000000..21cea81948 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-21/sources/source-2.html @@ -0,0 +1,193 @@ + + + + + + + + Coverage Report > InstrumentedConnectionFactory + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty12)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedConnectionFactory + + 83.3% + + + (5/6) + + + + 91.7% + + + (11/12) + +
InstrumentedConnectionFactory$1 + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
Total + + 88.9% + + + (8/9) + + + + 94.7% + + + (18/19) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty12;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Timer;
+ import org.eclipse.jetty.io.Connection;
+ import org.eclipse.jetty.io.EndPoint;
+ import org.eclipse.jetty.server.ConnectionFactory;
+ import org.eclipse.jetty.server.Connector;
+ import org.eclipse.jetty.util.component.ContainerLifeCycle;
+ 
+ import java.util.List;
+ 
+ public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {
+     private final ConnectionFactory connectionFactory;
+     private final Timer timer;
+     private final Counter counter;
+ 
+     public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
+         this(connectionFactory, timer, null);
+     }
+ 
+     public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {
+         this.connectionFactory = connectionFactory;
+         this.timer = timer;
+         this.counter = counter;
+         addBean(connectionFactory);
+     }
+ 
+     @Override
+     public String getProtocol() {
+         return connectionFactory.getProtocol();
+     }
+ 
+     @Override
+     public List<String> getProtocols() {
+         return connectionFactory.getProtocols();
+     }
+ 
+     @Override
+     public Connection newConnection(Connector connector, EndPoint endPoint) {
+         final Connection connection = connectionFactory.newConnection(connector, endPoint);
+         connection.addEventListener(new Connection.Listener() {
+             private Timer.Context context;
+ 
+             @Override
+             public void onOpened(Connection connection) {
+                 this.context = timer.time();
+                 if (counter != null) {
+                     counter.inc();
+                 }
+             }
+ 
+             @Override
+             public void onClosed(Connection connection) {
+                 context.stop();
+                 if (counter != null) {
+                     counter.dec();
+                 }
+             }
+         });
+         return connection;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-21/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-21/sources/source-3.html new file mode 100644 index 0000000000..0c65fff9ef --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-21/sources/source-3.html @@ -0,0 +1,336 @@ + + + + + + + + Coverage Report > InstrumentedQueuedThreadPool + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty12)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedQueuedThreadPool + + 76.5% + + + (13/17) + + + + 87.1% + + + (27/31) + +
InstrumentedQueuedThreadPool$1 + + 50% + + + (1/2) + + + + 50% + + + (1/2) + +
InstrumentedQueuedThreadPool$2 + + 50% + + + (1/2) + + + + 50% + + + (1/2) + +
InstrumentedQueuedThreadPool$3 + + 50% + + + (1/2) + + + + 33.3% + + + (1/3) + +
Total + + 69.6% + + + (16/23) + + + + 78.9% + + + (30/38) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty12;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.RatioGauge;
+ import org.eclipse.jetty.util.annotation.Name;
+ import org.eclipse.jetty.util.thread.QueuedThreadPool;
+ 
+ import java.util.concurrent.BlockingQueue;
+ import java.util.concurrent.ThreadFactory;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ public class InstrumentedQueuedThreadPool extends QueuedThreadPool {
+     private static final String NAME_UTILIZATION = "utilization";
+     private static final String NAME_UTILIZATION_MAX = "utilization-max";
+     private static final String NAME_SIZE = "size";
+     private static final String NAME_JOBS = "jobs";
+     private static final String NAME_JOBS_QUEUE_UTILIZATION = "jobs-queue-utilization";
+ 
+     private final MetricRegistry metricRegistry;
+     private String prefix;
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry) {
+         this(registry, 200);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads) {
+         this(registry, maxThreads, 8);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads) {
+         this(registry, maxThreads, minThreads, 60000);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue) {
+         this(registry, maxThreads, minThreads, 60000, queue);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout) {
+         this(registry, maxThreads, minThreads, idleTimeout, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue) {
+         this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadFactory") ThreadFactory threadFactory) {
+         this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup) {
+         this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("reservedThreads") int reservedThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup) {
+         this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("reservedThreads") int reservedThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup,
+                                         @Name("threadFactory") ThreadFactory threadFactory) {
+         this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);
+     }
+ 
+     public InstrumentedQueuedThreadPool(@Name("registry") MetricRegistry registry,
+                                         @Name("maxThreads") int maxThreads,
+                                         @Name("minThreads") int minThreads,
+                                         @Name("idleTimeout") int idleTimeout,
+                                         @Name("reservedThreads") int reservedThreads,
+                                         @Name("queue") BlockingQueue<Runnable> queue,
+                                         @Name("threadGroup") ThreadGroup threadGroup,
+                                         @Name("threadFactory") ThreadFactory threadFactory,
+                                         @Name("prefix") String prefix) {
+         super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);
+         this.metricRegistry = registry;
+         this.prefix = prefix;
+     }
+ 
+     public String getPrefix() {
+         return prefix;
+     }
+ 
+     public void setPrefix(String prefix) {
+         this.prefix = prefix;
+     }
+ 
+     @Override
+     protected void doStart() throws Exception {
+         super.doStart();
+ 
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(getThreads() - getIdleThreads(), getThreads());
+             }
+         });
+         metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());
+             }
+         });
+         metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);
+         // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
+         // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
+         metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -> getQueue().size());
+         metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {
+             @Override
+             protected Ratio getRatio() {
+                 BlockingQueue<Runnable> queue = getQueue();
+                 return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());
+             }
+         });
+     }
+ 
+     @Override
+     protected void doStop() throws Exception {
+         final String prefix = getMetricPrefix();
+ 
+         metricRegistry.remove(name(prefix, NAME_UTILIZATION));
+         metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));
+         metricRegistry.remove(name(prefix, NAME_SIZE));
+         metricRegistry.remove(name(prefix, NAME_JOBS));
+         metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));
+ 
+         super.doStop();
+     }
+ 
+     private String getMetricPrefix() {
+         return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index.html b/metrics-complete-report-initial-htmlReport/ns-22/index.html new file mode 100644 index 0000000000..56e62bb688 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-22/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..43f0413a62 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..67766f8898 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..cbe48899ef --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..23d8621d8c --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..aee7d566d8 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..a033ddee11 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..8152ef6516 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..3126bb98be --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..c71a9b6efe --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.jetty12.ee10 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.jetty12.ee10 + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEE10Handler + + 66.7% + + + (2/3) + + + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-22/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-22/sources/source-1.html new file mode 100644 index 0000000000..52c10f828c --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-22/sources/source-1.html @@ -0,0 +1,328 @@ + + + + + + + + Coverage Report > InstrumentedEE10Handler + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedEE10Handler (io.dropwizard.metrics.jetty12.ee10)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedEE10Handler + + 57.1% + + + (4/7) + + + + 71.9% + + + (23/32) + +
InstrumentedEE10Handler$1
InstrumentedEE10Handler$AsyncAttachingListener + + 20% + + + (1/5) + + + + 20% + + + (1/5) + +
InstrumentedEE10Handler$InstrumentedAsyncListener + + 0% + + + (0/5) + + + + 0% + + + (0/13) + +
Total + + 29.4% + + + (5/17) + + + + 48% + + + (24/50) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.jetty12.ee10;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.annotation.ResponseMeteredLevel;
+ import io.dropwizard.metrics.jetty12.AbstractInstrumentedHandler;
+ import jakarta.servlet.AsyncEvent;
+ import jakarta.servlet.AsyncListener;
+ import org.eclipse.jetty.ee10.servlet.AsyncContextState;
+ import org.eclipse.jetty.ee10.servlet.ServletApiRequest;
+ import org.eclipse.jetty.ee10.servlet.ServletApiResponse;
+ import org.eclipse.jetty.ee10.servlet.ServletChannelState;
+ import org.eclipse.jetty.ee10.servlet.ServletContextRequest;
+ import org.eclipse.jetty.server.Handler;
+ import org.eclipse.jetty.server.Request;
+ import org.eclipse.jetty.server.Response;
+ import org.eclipse.jetty.util.Callback;
+ 
+ import java.io.IOException;
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
+ 
+ /**
+  * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
+  * instance. This {@link Handler} requires a {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} to be present.
+  * For correct behaviour, the {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} should be before this handler
+  * in the handler chain. To achieve this, one can use
+  * {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler#insertHandler(Singleton)}.
+  */
+ public class InstrumentedEE10Handler extends AbstractInstrumentedHandler {
+     private AsyncListener listener;
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      */
+     public InstrumentedEE10Handler(MetricRegistry registry) {
+         super(registry, null);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      */
+     public InstrumentedEE10Handler(MetricRegistry registry, String prefix) {
+         super(registry, prefix, COARSE);
+     }
+ 
+     /**
+      * Create a new instrumented handler using a given metrics registry.
+      *
+      * @param registry the registry for the metrics
+      * @param prefix   the prefix to use for the metrics names
+      * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
+      */
+     public InstrumentedEE10Handler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {
+         super(registry, prefix, responseMeteredLevel);
+     }
+ 
+     @Override
+     protected void doStart() throws Exception {
+         super.doStart();
+ 
+         this.listener = new AsyncAttachingListener();
+     }
+ 
+     @Override
+     protected void doStop() throws Exception {
+         super.doStop();
+     }
+ 
+     @Override
+     public boolean handle(Request request, Response response, Callback callback) throws Exception {
+         ServletContextRequest servletContextRequest = Request.as(request, ServletContextRequest.class);
+ 
+         // only handle servlet requests with the InstrumentedHandler
+         // because it depends on the ServletRequestState
+         if (servletContextRequest == null) {
+             return super.handle(request, response, callback);
+         }
+ 
+         activeDispatches.inc();
+ 
+         final long start;
+         final ServletChannelState state = servletContextRequest.getServletRequestState();
+         if (state.isInitial()) {
+             // new request
+             activeRequests.inc();
+             start = Request.getTimeStamp(request);
+             state.addListener(listener);
+         } else {
+             // resumed request
+             start = System.currentTimeMillis();
+             activeSuspended.dec();
+             if (state.getState() == ServletChannelState.State.HANDLING) {
+                 asyncDispatches.mark();
+             }
+         }
+ 
+         boolean handled = false;
+ 
+         try {
+             handled = super.handle(request, response, callback);
+         } finally {
+             final long now = System.currentTimeMillis();
+             final long dispatched = now - start;
+ 
+             activeDispatches.dec();
+             dispatches.update(dispatched, TimeUnit.MILLISECONDS);
+ 
+             if (state.isSuspended()) {
+                 activeSuspended.inc();
+             } else if (state.isInitial()) {
+                 updateResponses(request, response, start, handled);
+             }
+             // else onCompletion will handle it.
+         }
+ 
+         return handled;
+     }
+ 
+     private class AsyncAttachingListener implements AsyncListener {
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+             event.getAsyncContext().addListener(new InstrumentedAsyncListener());
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {}
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {}
+     }
+ 
+     private class InstrumentedAsyncListener implements AsyncListener {
+         private final long startTime;
+ 
+         InstrumentedAsyncListener() {
+             this.startTime = System.currentTimeMillis();
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             asyncTimeouts.mark();
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             final AsyncContextState state = (AsyncContextState) event.getAsyncContext();
+             final ServletApiRequest request = (ServletApiRequest) state.getRequest();
+             final ServletApiResponse response = (ServletApiResponse) state.getResponse();
+             updateResponses(request.getRequest(), response.getResponse(), startTime, true);
+ 
+             final ServletContextRequest servletContextRequest = Request.as(request.getRequest(), ServletContextRequest.class);
+             final ServletChannelState servletRequestState = servletContextRequest.getServletRequestState();
+             if (!servletRequestState.isSuspended()) {
+                 activeSuspended.dec();
+             }
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index.html b/metrics-complete-report-initial-htmlReport/ns-23/index.html new file mode 100644 index 0000000000..13f42e0d3f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-23/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..f36acfeb7b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..4c1d6849de --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..7c9d152432 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..16f7cc0ecc --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..cc2a9c216b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..5fea66ebf3 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..771dd676ba --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..57959817f1 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..65b4399e88 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback13 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback13

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback13 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-23/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-23/sources/source-1.html new file mode 100644 index 0000000000..1750f74921 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-23/sources/source-1.html @@ -0,0 +1,195 @@ + + + + + + + + Coverage Report > InstrumentedAppender + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback13)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.logback13;
+ 
+ import ch.qos.logback.classic.Level;
+ import ch.qos.logback.classic.spi.ILoggingEvent;
+ import ch.qos.logback.core.Appender;
+ import ch.qos.logback.core.UnsynchronizedAppenderBase;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.SharedMetricRegistries;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
+  * number of statements being logged. The meter names are the logging level names appended to the
+  * name of the appender.
+  */
+ public class InstrumentedAppender extends UnsynchronizedAppenderBase<ILoggingEvent> {
+     private final MetricRegistry registry;
+     public static final String DEFAULT_REGISTRY = "logback-metrics";
+     public static final String REGISTRY_PROPERTY_NAME = "metrics.logback.registry";
+ 
+     private Meter all;
+     private Meter trace;
+     private Meter debug;
+     private Meter info;
+     private Meter warn;
+     private Meter error;
+ 
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      */
+     public InstrumentedAppender() {
+         this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      *
+      * @param registryName the name of the registry in {@link SharedMetricRegistries}
+      */
+     public InstrumentedAppender(String registryName) {
+         this(SharedMetricRegistries.getOrCreate(registryName));
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry.
+      *
+      * @param registry the metric registry
+      */
+     public InstrumentedAppender(MetricRegistry registry) {
+         this.registry = registry;
+         setName(Appender.class.getName());
+     }
+ 
+     @Override
+     public void start() {
+         this.all = registry.meter(name(getName(), "all"));
+         this.trace = registry.meter(name(getName(), "trace"));
+         this.debug = registry.meter(name(getName(), "debug"));
+         this.info = registry.meter(name(getName(), "info"));
+         this.warn = registry.meter(name(getName(), "warn"));
+         this.error = registry.meter(name(getName(), "error"));
+         super.start();
+     }
+ 
+     @Override
+     protected void append(ILoggingEvent event) {
+         all.mark();
+         switch (event.getLevel().toInt()) {
+             case Level.TRACE_INT:
+                 trace.mark();
+                 break;
+             case Level.DEBUG_INT:
+                 debug.mark();
+                 break;
+             case Level.INFO_INT:
+                 info.mark();
+                 break;
+             case Level.WARN_INT:
+                 warn.mark();
+                 break;
+             case Level.ERROR_INT:
+                 error.mark();
+                 break;
+             default:
+                 break;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index.html b/metrics-complete-report-initial-htmlReport/ns-24/index.html new file mode 100644 index 0000000000..28a4d3ad19 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-24/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..733147805c --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..a07dfaf4e6 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..b412b7fb4e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..e6156806ed --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..cdc2bcada8 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..f3b9ba0e33 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..4f64874867 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..3bd5820783 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..4d8a0f63b7 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback14 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback14

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback14 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-24/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-24/sources/source-1.html new file mode 100644 index 0000000000..ca875739ea --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-24/sources/source-1.html @@ -0,0 +1,195 @@ + + + + + + + + Coverage Report > InstrumentedAppender + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback14)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.logback14;
+ 
+ import ch.qos.logback.classic.Level;
+ import ch.qos.logback.classic.spi.ILoggingEvent;
+ import ch.qos.logback.core.Appender;
+ import ch.qos.logback.core.UnsynchronizedAppenderBase;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.SharedMetricRegistries;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
+  * number of statements being logged. The meter names are the logging level names appended to the
+  * name of the appender.
+  */
+ public class InstrumentedAppender extends UnsynchronizedAppenderBase<ILoggingEvent> {
+     private final MetricRegistry registry;
+     public static final String DEFAULT_REGISTRY = "logback-metrics";
+     public static final String REGISTRY_PROPERTY_NAME = "metrics.logback.registry";
+ 
+     private Meter all;
+     private Meter trace;
+     private Meter debug;
+     private Meter info;
+     private Meter warn;
+     private Meter error;
+ 
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      */
+     public InstrumentedAppender() {
+         this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      *
+      * @param registryName the name of the registry in {@link SharedMetricRegistries}
+      */
+     public InstrumentedAppender(String registryName) {
+         this(SharedMetricRegistries.getOrCreate(registryName));
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry.
+      *
+      * @param registry the metric registry
+      */
+     public InstrumentedAppender(MetricRegistry registry) {
+         this.registry = registry;
+         setName(Appender.class.getName());
+     }
+ 
+     @Override
+     public void start() {
+         this.all = registry.meter(name(getName(), "all"));
+         this.trace = registry.meter(name(getName(), "trace"));
+         this.debug = registry.meter(name(getName(), "debug"));
+         this.info = registry.meter(name(getName(), "info"));
+         this.warn = registry.meter(name(getName(), "warn"));
+         this.error = registry.meter(name(getName(), "error"));
+         super.start();
+     }
+ 
+     @Override
+     protected void append(ILoggingEvent event) {
+         all.mark();
+         switch (event.getLevel().toInt()) {
+             case Level.TRACE_INT:
+                 trace.mark();
+                 break;
+             case Level.DEBUG_INT:
+                 debug.mark();
+                 break;
+             case Level.INFO_INT:
+                 info.mark();
+                 break;
+             case Level.WARN_INT:
+                 warn.mark();
+                 break;
+             case Level.ERROR_INT:
+                 error.mark();
+                 break;
+             default:
+                 break;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index.html b/metrics-complete-report-initial-htmlReport/ns-25/index.html new file mode 100644 index 0000000000..4c50c23c5a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-25/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..7e2a80b569 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..e6154295a7 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..14948f98c2 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..f3872d96eb --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..30f7c597a6 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..7c174f56b2 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..cb4a96e604 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..2e6d0897ee --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..1b358d35f6 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > io.dropwizard.metrics.logback15 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.logback15

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.logback15 + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-25/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-25/sources/source-1.html new file mode 100644 index 0000000000..368328d805 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-25/sources/source-1.html @@ -0,0 +1,195 @@ + + + + + + + + Coverage Report > InstrumentedAppender + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback15)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedAppender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (24/24) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.logback15;
+ 
+ import ch.qos.logback.classic.Level;
+ import ch.qos.logback.classic.spi.ILoggingEvent;
+ import ch.qos.logback.core.Appender;
+ import ch.qos.logback.core.UnsynchronizedAppenderBase;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.SharedMetricRegistries;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
+  * number of statements being logged. The meter names are the logging level names appended to the
+  * name of the appender.
+  */
+ public class InstrumentedAppender extends UnsynchronizedAppenderBase<ILoggingEvent> {
+     private final MetricRegistry registry;
+     public static final String DEFAULT_REGISTRY = "logback-metrics";
+     public static final String REGISTRY_PROPERTY_NAME = "metrics.logback.registry";
+ 
+     private Meter all;
+     private Meter trace;
+     private Meter debug;
+     private Meter info;
+     private Meter warn;
+     private Meter error;
+ 
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      */
+     public InstrumentedAppender() {
+         this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry name.
+      *
+      * @param registryName the name of the registry in {@link SharedMetricRegistries}
+      */
+     public InstrumentedAppender(String registryName) {
+         this(SharedMetricRegistries.getOrCreate(registryName));
+     }
+ 
+     /**
+      * Create a new instrumented appender using the given registry.
+      *
+      * @param registry the metric registry
+      */
+     public InstrumentedAppender(MetricRegistry registry) {
+         this.registry = registry;
+         setName(Appender.class.getName());
+     }
+ 
+     @Override
+     public void start() {
+         this.all = registry.meter(name(getName(), "all"));
+         this.trace = registry.meter(name(getName(), "trace"));
+         this.debug = registry.meter(name(getName(), "debug"));
+         this.info = registry.meter(name(getName(), "info"));
+         this.warn = registry.meter(name(getName(), "warn"));
+         this.error = registry.meter(name(getName(), "error"));
+         super.start();
+     }
+ 
+     @Override
+     protected void append(ILoggingEvent event) {
+         all.mark();
+         switch (event.getLevel().toInt()) {
+             case Level.TRACE_INT:
+                 trace.mark();
+                 break;
+             case Level.DEBUG_INT:
+                 debug.mark();
+                 break;
+             case Level.INFO_INT:
+                 info.mark();
+                 break;
+             case Level.WARN_INT:
+                 warn.mark();
+                 break;
+             case Level.ERROR_INT:
+                 error.mark();
+                 break;
+             default:
+                 break;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index.html b/metrics-complete-report-initial-htmlReport/ns-26/index.html new file mode 100644 index 0000000000..f6c089e44a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-26/index.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..dcc2556a79 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..102637c63f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..b34edd5b86 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..819778ca4b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..6f1cff2ce4 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_LINE.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..99d5d941b0 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..b02cd2b809 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..7a26bdf005 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..dc3c6b6565 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet + + 40% + + + (2/5) + + + + 12.5% + + + (3/24) + + + + 3.5% + + + (3/86) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-26/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-26/sources/source-1.html new file mode 100644 index 0000000000..4f06d9c32a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-26/sources/source-1.html @@ -0,0 +1,367 @@ + + + + + + + + Coverage Report > AbstractInstrumentedFilter + + + + + + +
+ + +

Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/7) + + + + 0% + + + (0/45) + +
AbstractInstrumentedFilter$AsyncResultListener + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
AbstractInstrumentedFilter$StatusExposingServletResponse + + 0% + + + (0/6) + + + + 0% + + + (0/11) + +
Total + + 0% + + + (0/18) + + + + 0% + + + (0/73) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlet;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import jakarta.servlet.AsyncEvent;
+ import jakarta.servlet.AsyncListener;
+ import jakarta.servlet.Filter;
+ import jakarta.servlet.FilterChain;
+ import jakarta.servlet.FilterConfig;
+ import jakarta.servlet.ServletException;
+ import jakarta.servlet.ServletRequest;
+ import jakarta.servlet.ServletResponse;
+ import jakarta.servlet.http.HttpServletResponse;
+ import jakarta.servlet.http.HttpServletResponseWrapper;
+ 
+ import java.io.IOException;
+ import java.util.Map;
+ import java.util.Map.Entry;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * {@link Filter} implementation which captures request information and a breakdown of the response
+  * codes being returned.
+  */
+ public abstract class AbstractInstrumentedFilter implements Filter {
+     static final String METRIC_PREFIX = "name-prefix";
+ 
+     private final String otherMetricName;
+     private final Map<Integer, String> meterNamesByStatusCode;
+     private final String registryAttribute;
+ 
+     // initialized after call of init method
+     private ConcurrentMap<Integer, Meter> metersByStatusCode;
+     private Meter otherMeter;
+     private Meter timeoutsMeter;
+     private Meter errorsMeter;
+     private Counter activeRequests;
+     private Timer requestTimer;
+ 
+ 
+     /**
+      * Creates a new instance of the filter.
+      *
+      * @param registryAttribute      the attribute used to look up the metrics registry in the
+      *                               servlet context
+      * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
+      *                               interested in.
+      * @param otherMetricName        The name used for the catch-all meter.
+      */
+     protected AbstractInstrumentedFilter(String registryAttribute,
+                                          Map<Integer, String> meterNamesByStatusCode,
+                                          String otherMetricName) {
+         this.registryAttribute = registryAttribute;
+         this.otherMetricName = otherMetricName;
+         this.meterNamesByStatusCode = meterNamesByStatusCode;
+     }
+ 
+     @Override
+     public void init(FilterConfig filterConfig) throws ServletException {
+         final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);
+ 
+         String metricName = filterConfig.getInitParameter(METRIC_PREFIX);
+         if (metricName == null || metricName.isEmpty()) {
+             metricName = getClass().getName();
+         }
+ 
+         this.metersByStatusCode = new ConcurrentHashMap<>(meterNamesByStatusCode.size());
+         for (Entry<Integer, String> entry : meterNamesByStatusCode.entrySet()) {
+             metersByStatusCode.put(entry.getKey(),
+                     metricsRegistry.meter(name(metricName, entry.getValue())));
+         }
+         this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));
+         this.timeoutsMeter = metricsRegistry.meter(name(metricName, "timeouts"));
+         this.errorsMeter = metricsRegistry.meter(name(metricName, "errors"));
+         this.activeRequests = metricsRegistry.counter(name(metricName, "activeRequests"));
+         this.requestTimer = metricsRegistry.timer(name(metricName, "requests"));
+ 
+     }
+ 
+     private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
+         final MetricRegistry metricsRegistry;
+ 
+         final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);
+         if (o instanceof MetricRegistry) {
+             metricsRegistry = (MetricRegistry) o;
+         } else {
+             metricsRegistry = new MetricRegistry();
+         }
+         return metricsRegistry;
+     }
+ 
+     @Override
+     public void destroy() {
+ 
+     }
+ 
+     @Override
+     public void doFilter(ServletRequest request,
+                          ServletResponse response,
+                          FilterChain chain) throws IOException, ServletException {
+         final StatusExposingServletResponse wrappedResponse =
+                 new StatusExposingServletResponse((HttpServletResponse) response);
+         activeRequests.inc();
+         final Timer.Context context = requestTimer.time();
+         boolean error = false;
+         try {
+             chain.doFilter(request, wrappedResponse);
+         } catch (IOException | RuntimeException | ServletException e) {
+             error = true;
+             throw e;
+         } finally {
+             if (!error && request.isAsyncStarted()) {
+                 request.getAsyncContext().addListener(new AsyncResultListener(context));
+             } else {
+                 context.stop();
+                 activeRequests.dec();
+                 if (error) {
+                     errorsMeter.mark();
+                 } else {
+                     markMeterForStatusCode(wrappedResponse.getStatus());
+                 }
+             }
+         }
+     }
+ 
+     private void markMeterForStatusCode(int status) {
+         final Meter metric = metersByStatusCode.get(status);
+         if (metric != null) {
+             metric.mark();
+         } else {
+             otherMeter.mark();
+         }
+     }
+ 
+     private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
+         // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
+         private int httpStatus = 200;
+ 
+         public StatusExposingServletResponse(HttpServletResponse response) {
+             super(response);
+         }
+ 
+         @Override
+         public void sendError(int sc) throws IOException {
+             httpStatus = sc;
+             super.sendError(sc);
+         }
+ 
+         @Override
+         public void sendError(int sc, String msg) throws IOException {
+             httpStatus = sc;
+             super.sendError(sc, msg);
+         }
+ 
+         @Override
+         public void setStatus(int sc) {
+             httpStatus = sc;
+             super.setStatus(sc);
+         }
+ 
+         @Override
+         @SuppressWarnings("deprecation")
+         public void setStatus(int sc, String sm) {
+             httpStatus = sc;
+             super.setStatus(sc, sm);
+         }
+ 
+         @Override
+         public int getStatus() {
+             return httpStatus;
+         }
+     }
+ 
+     private class AsyncResultListener implements AsyncListener {
+         private Timer.Context context;
+         private boolean done = false;
+ 
+         public AsyncResultListener(Timer.Context context) {
+             this.context = context;
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             if (!done) {
+                 HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();
+                 context.stop();
+                 activeRequests.dec();
+                 markMeterForStatusCode(suppliedResponse.getStatus());
+             }
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             context.stop();
+             activeRequests.dec();
+             timeoutsMeter.mark();
+             done = true;
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+             context.stop();
+             activeRequests.dec();
+             errorsMeter.mark();
+             done = true;
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+ 
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-26/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-26/sources/source-2.html new file mode 100644 index 0000000000..87aa589a6d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-26/sources/source-2.html @@ -0,0 +1,152 @@ + + + + + + + + Coverage Report > InstrumentedFilter + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlet;
+ 
+ import java.util.HashMap;
+ import java.util.Map;
+ 
+ /**
+  * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
+  * to capture information about. <p>Use it in your servlet.xml like this:<p>
+  * <pre>{@code
+  * <filter>
+  *     <filter-name>instrumentedFilter</filter-name>
+  *     <filter-class>io.dropwizard.metrics.servlet.InstrumentedFilter</filter-class>
+  * </filter>
+  * <filter-mapping>
+  *     <filter-name>instrumentedFilter</filter-name>
+  *     <url-pattern>/*</url-pattern>
+  * </filter-mapping>
+  * }</pre>
+  */
+ public class InstrumentedFilter extends AbstractInstrumentedFilter {
+     public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + ".registry";
+ 
+     private static final String NAME_PREFIX = "responseCodes.";
+     private static final int OK = 200;
+     private static final int CREATED = 201;
+     private static final int NO_CONTENT = 204;
+     private static final int BAD_REQUEST = 400;
+     private static final int NOT_FOUND = 404;
+     private static final int SERVER_ERROR = 500;
+ 
+     /**
+      * Creates a new instance of the filter.
+      */
+     public InstrumentedFilter() {
+         super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + "other");
+     }
+ 
+     private static Map<Integer, String> createMeterNamesByStatusCode() {
+         final Map<Integer, String> meterNamesByStatusCode = new HashMap<>(6);
+         meterNamesByStatusCode.put(OK, NAME_PREFIX + "ok");
+         meterNamesByStatusCode.put(CREATED, NAME_PREFIX + "created");
+         meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + "noContent");
+         meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + "badRequest");
+         meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + "notFound");
+         meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + "serverError");
+         return meterNamesByStatusCode;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-26/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-26/sources/source-3.html new file mode 100644 index 0000000000..68a051214a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-26/sources/source-3.html @@ -0,0 +1,130 @@ + + + + + + + + Coverage Report > InstrumentedFilterContextListener + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlet;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import jakarta.servlet.ServletContextEvent;
+ import jakarta.servlet.ServletContextListener;
+ 
+ /**
+  * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
+  * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
+  * application.
+  */
+ public abstract class InstrumentedFilterContextListener implements ServletContextListener {
+     /**
+      * @return the {@link MetricRegistry} to inject into the servlet context.
+      */
+     protected abstract MetricRegistry getMetricRegistry();
+ 
+     @Override
+     public void contextInitialized(ServletContextEvent sce) {
+         sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());
+     }
+ 
+     @Override
+     public void contextDestroyed(ServletContextEvent sce) {
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index.html b/metrics-complete-report-initial-htmlReport/ns-27/index.html new file mode 100644 index 0000000000..6e8073e796 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-27/index.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/71) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..a815cc4660 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/71) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..6890267e07 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/71) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..9aa3d1c6c7 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/71) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..ca990841cd --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/71) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..b1771164dd --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_LINE.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/71) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..2e594538db --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/71) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..c188f21320 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/71) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..fc27204c71 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/71) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..33404f0a85 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,197 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlet6 + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlet6

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlet6 + + 40% + + + (2/5) + + + + 13% + + + (3/23) + + + + 3.6% + + + (3/84) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
AbstractInstrumentedFilter + + 0% + + + (0/3) + + + + 0% + + + (0/17) + + + + 0% + + + (0/71) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-27/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-27/sources/source-1.html new file mode 100644 index 0000000000..cfe951a5ba --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-27/sources/source-1.html @@ -0,0 +1,360 @@ + + + + + + + + Coverage Report > AbstractInstrumentedFilter + + + + + + +
+ + +

Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet6)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
AbstractInstrumentedFilter + + 0% + + + (0/7) + + + + 0% + + + (0/45) + +
AbstractInstrumentedFilter$AsyncResultListener + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
AbstractInstrumentedFilter$StatusExposingServletResponse + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
Total + + 0% + + + (0/17) + + + + 0% + + + (0/71) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlet6;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import jakarta.servlet.AsyncEvent;
+ import jakarta.servlet.AsyncListener;
+ import jakarta.servlet.Filter;
+ import jakarta.servlet.FilterChain;
+ import jakarta.servlet.FilterConfig;
+ import jakarta.servlet.ServletException;
+ import jakarta.servlet.ServletRequest;
+ import jakarta.servlet.ServletResponse;
+ import jakarta.servlet.http.HttpServletResponse;
+ import jakarta.servlet.http.HttpServletResponseWrapper;
+ 
+ import java.io.IOException;
+ import java.util.Map;
+ import java.util.Map.Entry;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * {@link Filter} implementation which captures request information and a breakdown of the response
+  * codes being returned.
+  */
+ public abstract class AbstractInstrumentedFilter implements Filter {
+     static final String METRIC_PREFIX = "name-prefix";
+ 
+     private final String otherMetricName;
+     private final Map<Integer, String> meterNamesByStatusCode;
+     private final String registryAttribute;
+ 
+     // initialized after call of init method
+     private ConcurrentMap<Integer, Meter> metersByStatusCode;
+     private Meter otherMeter;
+     private Meter timeoutsMeter;
+     private Meter errorsMeter;
+     private Counter activeRequests;
+     private Timer requestTimer;
+ 
+ 
+     /**
+      * Creates a new instance of the filter.
+      *
+      * @param registryAttribute      the attribute used to look up the metrics registry in the
+      *                               servlet context
+      * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
+      *                               interested in.
+      * @param otherMetricName        The name used for the catch-all meter.
+      */
+     protected AbstractInstrumentedFilter(String registryAttribute,
+                                          Map<Integer, String> meterNamesByStatusCode,
+                                          String otherMetricName) {
+         this.registryAttribute = registryAttribute;
+         this.otherMetricName = otherMetricName;
+         this.meterNamesByStatusCode = meterNamesByStatusCode;
+     }
+ 
+     @Override
+     public void init(FilterConfig filterConfig) throws ServletException {
+         final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);
+ 
+         String metricName = filterConfig.getInitParameter(METRIC_PREFIX);
+         if (metricName == null || metricName.isEmpty()) {
+             metricName = getClass().getName();
+         }
+ 
+         this.metersByStatusCode = new ConcurrentHashMap<>(meterNamesByStatusCode.size());
+         for (Entry<Integer, String> entry : meterNamesByStatusCode.entrySet()) {
+             metersByStatusCode.put(entry.getKey(),
+                     metricsRegistry.meter(name(metricName, entry.getValue())));
+         }
+         this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));
+         this.timeoutsMeter = metricsRegistry.meter(name(metricName, "timeouts"));
+         this.errorsMeter = metricsRegistry.meter(name(metricName, "errors"));
+         this.activeRequests = metricsRegistry.counter(name(metricName, "activeRequests"));
+         this.requestTimer = metricsRegistry.timer(name(metricName, "requests"));
+ 
+     }
+ 
+     private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
+         final MetricRegistry metricsRegistry;
+ 
+         final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);
+         if (o instanceof MetricRegistry) {
+             metricsRegistry = (MetricRegistry) o;
+         } else {
+             metricsRegistry = new MetricRegistry();
+         }
+         return metricsRegistry;
+     }
+ 
+     @Override
+     public void destroy() {
+ 
+     }
+ 
+     @Override
+     public void doFilter(ServletRequest request,
+                          ServletResponse response,
+                          FilterChain chain) throws IOException, ServletException {
+         final StatusExposingServletResponse wrappedResponse =
+                 new StatusExposingServletResponse((HttpServletResponse) response);
+         activeRequests.inc();
+         final Timer.Context context = requestTimer.time();
+         boolean error = false;
+         try {
+             chain.doFilter(request, wrappedResponse);
+         } catch (IOException | RuntimeException | ServletException e) {
+             error = true;
+             throw e;
+         } finally {
+             if (!error && request.isAsyncStarted()) {
+                 request.getAsyncContext().addListener(new AsyncResultListener(context));
+             } else {
+                 context.stop();
+                 activeRequests.dec();
+                 if (error) {
+                     errorsMeter.mark();
+                 } else {
+                     markMeterForStatusCode(wrappedResponse.getStatus());
+                 }
+             }
+         }
+     }
+ 
+     private void markMeterForStatusCode(int status) {
+         final Meter metric = metersByStatusCode.get(status);
+         if (metric != null) {
+             metric.mark();
+         } else {
+             otherMeter.mark();
+         }
+     }
+ 
+     private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
+         // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
+         private int httpStatus = 200;
+ 
+         public StatusExposingServletResponse(HttpServletResponse response) {
+             super(response);
+         }
+ 
+         @Override
+         public void sendError(int sc) throws IOException {
+             httpStatus = sc;
+             super.sendError(sc);
+         }
+ 
+         @Override
+         public void sendError(int sc, String msg) throws IOException {
+             httpStatus = sc;
+             super.sendError(sc, msg);
+         }
+ 
+         @Override
+         public void setStatus(int sc) {
+             httpStatus = sc;
+             super.setStatus(sc);
+         }
+ 
+         @Override
+         public int getStatus() {
+             return httpStatus;
+         }
+     }
+ 
+     private class AsyncResultListener implements AsyncListener {
+         private final Timer.Context context;
+         private boolean done = false;
+ 
+         public AsyncResultListener(Timer.Context context) {
+             this.context = context;
+         }
+ 
+         @Override
+         public void onComplete(AsyncEvent event) throws IOException {
+             if (!done) {
+                 HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();
+                 context.stop();
+                 activeRequests.dec();
+                 markMeterForStatusCode(suppliedResponse.getStatus());
+             }
+         }
+ 
+         @Override
+         public void onTimeout(AsyncEvent event) throws IOException {
+             context.stop();
+             activeRequests.dec();
+             timeoutsMeter.mark();
+             done = true;
+         }
+ 
+         @Override
+         public void onError(AsyncEvent event) throws IOException {
+             context.stop();
+             activeRequests.dec();
+             errorsMeter.mark();
+             done = true;
+         }
+ 
+         @Override
+         public void onStartAsync(AsyncEvent event) throws IOException {
+ 
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-27/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-27/sources/source-2.html new file mode 100644 index 0000000000..6938c566e9 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-27/sources/source-2.html @@ -0,0 +1,152 @@ + + + + + + + + Coverage Report > InstrumentedFilter + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet6)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedFilter + + 100% + + + (1/1) + + + + 33.3% + + + (1/3) + + + + 10% + + + (1/10) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlet6;
+ 
+ import java.util.HashMap;
+ import java.util.Map;
+ 
+ /**
+  * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
+  * to capture information about. <p>Use it in your servlet.xml like this:<p>
+  * <pre>{@code
+  * <filter>
+  *     <filter-name>instrumentedFilter</filter-name>
+  *     <filter-class>io.dropwizard.metrics.servlet.InstrumentedFilter</filter-class>
+  * </filter>
+  * <filter-mapping>
+  *     <filter-name>instrumentedFilter</filter-name>
+  *     <url-pattern>/*</url-pattern>
+  * </filter-mapping>
+  * }</pre>
+  */
+ public class InstrumentedFilter extends AbstractInstrumentedFilter {
+     public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + ".registry";
+ 
+     private static final String NAME_PREFIX = "responseCodes.";
+     private static final int OK = 200;
+     private static final int CREATED = 201;
+     private static final int NO_CONTENT = 204;
+     private static final int BAD_REQUEST = 400;
+     private static final int NOT_FOUND = 404;
+     private static final int SERVER_ERROR = 500;
+ 
+     /**
+      * Creates a new instance of the filter.
+      */
+     public InstrumentedFilter() {
+         super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + "other");
+     }
+ 
+     private static Map<Integer, String> createMeterNamesByStatusCode() {
+         final Map<Integer, String> meterNamesByStatusCode = new HashMap<>(6);
+         meterNamesByStatusCode.put(OK, NAME_PREFIX + "ok");
+         meterNamesByStatusCode.put(CREATED, NAME_PREFIX + "created");
+         meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + "noContent");
+         meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + "badRequest");
+         meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + "notFound");
+         meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + "serverError");
+         return meterNamesByStatusCode;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-27/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-27/sources/source-3.html new file mode 100644 index 0000000000..a876200aaf --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-27/sources/source-3.html @@ -0,0 +1,130 @@ + + + + + + + + Coverage Report > InstrumentedFilterContextListener + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet6)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedFilterContextListener + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlet6;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import jakarta.servlet.ServletContextEvent;
+ import jakarta.servlet.ServletContextListener;
+ 
+ /**
+  * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
+  * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
+  * application.
+  */
+ public abstract class InstrumentedFilterContextListener implements ServletContextListener {
+     /**
+      * @return the {@link MetricRegistry} to inject into the servlet context.
+      */
+     protected abstract MetricRegistry getMetricRegistry();
+ 
+     @Override
+     public void contextInitialized(ServletContextEvent sce) {
+         sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());
+     }
+ 
+     @Override
+     public void contextDestroyed(ServletContextEvent sce) {
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index.html b/metrics-complete-report-initial-htmlReport/ns-28/index.html new file mode 100644 index 0000000000..637c4367ba --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-28/index.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..7bc0dc0d69 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..4cb32fafe0 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..82a799b973 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..fdea124b48 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..d3b5a54f88 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_LINE.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..e618546826 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..9514015b7d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..d8140ea45e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..ac71213922 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > io.dropwizard.metrics.servlets + + + + + + +
+ + + +

Coverage Summary for Package: io.dropwizard.metrics.servlets

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
io.dropwizard.metrics.servlets + + 87.5% + + + (7/8) + + + + 80.4% + + + (37/46) + + + + 80.5% + + + (210/261) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
MetricsServlet + + 100% + + + (2/2) + + + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
HealthCheckServlet + + 50% + + + (1/2) + + + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-28/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-28/sources/source-1.html new file mode 100644 index 0000000000..70406e5c00 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-28/sources/source-1.html @@ -0,0 +1,294 @@ + + + + + + + + Coverage Report > AdminServlet + + + + + + +
+ + +

Coverage Summary for Class: AdminServlet (io.dropwizard.metrics.servlets)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
AdminServlet + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 71.6% + + + (53/74) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlets;
+ 
+ import jakarta.servlet.ServletConfig;
+ import jakarta.servlet.ServletContext;
+ import jakarta.servlet.ServletException;
+ import jakarta.servlet.http.HttpServlet;
+ import jakarta.servlet.http.HttpServletRequest;
+ import jakarta.servlet.http.HttpServletResponse;
+ 
+ import java.io.IOException;
+ import java.io.PrintWriter;
+ import java.text.MessageFormat;
+ 
+ public class AdminServlet extends HttpServlet {
+     public static final String DEFAULT_HEALTHCHECK_URI = "/healthcheck";
+     public static final String DEFAULT_METRICS_URI = "/metrics";
+     public static final String DEFAULT_PING_URI = "/ping";
+     public static final String DEFAULT_THREADS_URI = "/threads";
+     public static final String DEFAULT_CPU_PROFILE_URI = "/pprof";
+ 
+     public static final String METRICS_ENABLED_PARAM_KEY = "metrics-enabled";
+     public static final String METRICS_URI_PARAM_KEY = "metrics-uri";
+     public static final String PING_ENABLED_PARAM_KEY = "ping-enabled";
+     public static final String PING_URI_PARAM_KEY = "ping-uri";
+     public static final String THREADS_ENABLED_PARAM_KEY = "threads-enabled";
+     public static final String THREADS_URI_PARAM_KEY = "threads-uri";
+     public static final String HEALTHCHECK_ENABLED_PARAM_KEY = "healthcheck-enabled";
+     public static final String HEALTHCHECK_URI_PARAM_KEY = "healthcheck-uri";
+     public static final String SERVICE_NAME_PARAM_KEY = "service-name";
+     public static final String CPU_PROFILE_ENABLED_PARAM_KEY = "cpu-profile-enabled";
+     public static final String CPU_PROFILE_URI_PARAM_KEY = "cpu-profile-uri";
+ 
+     private static final String BASE_TEMPLATE =
+             "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\"%n" +
+                     "        \"http://www.w3.org/TR/html4/loose.dtd\">%n" +
+                     "<html>%n" +
+                     "<head>%n" +
+                     "  <title>Metrics{10}</title>%n" +
+                     "</head>%n" +
+                     "<body>%n" +
+                     "  <h1>Operational Menu{10}</h1>%n" +
+                     "  <ul>%n" +
+                     "%s" +
+                     "  </ul>%n" +
+                     "</body>%n" +
+                     "</html>";
+     private static final String METRICS_LINK = "    <li><a href=\"{0}{1}?pretty=true\">Metrics</a></li>%n";
+     private static final String PING_LINK = "    <li><a href=\"{2}{3}\">Ping</a></li>%n" ;
+     private static final String THREADS_LINK = "    <li><a href=\"{4}{5}\">Threads</a></li>%n" ;
+     private static final String HEALTHCHECK_LINK = "    <li><a href=\"{6}{7}?pretty=true\">Healthcheck</a></li>%n" ;
+     private static final String CPU_PROFILE_LINK = "    <li><a href=\"{8}{9}\">CPU Profile</a></li>%n" +
+             "    <li><a href=\"{8}{9}?state=blocked\">CPU Contention</a></li>%n";
+ 
+ 
+     private static final String CONTENT_TYPE = "text/html";
+     private static final long serialVersionUID = -2850794040708785318L;
+ 
+     private transient HealthCheckServlet healthCheckServlet;
+     private transient MetricsServlet metricsServlet;
+     private transient PingServlet pingServlet;
+     private transient ThreadDumpServlet threadDumpServlet;
+     private transient CpuProfileServlet cpuProfileServlet;
+     private transient boolean metricsEnabled;
+     private transient String metricsUri;
+     private transient boolean pingEnabled;
+     private transient String pingUri;
+     private transient boolean threadsEnabled;
+     private transient String threadsUri;
+     private transient boolean healthcheckEnabled;
+     private transient String healthcheckUri;
+     private transient boolean cpuProfileEnabled;
+     private transient String cpuProfileUri;
+     private transient String serviceName;
+     private transient String pageContentTemplate;
+ 
+     @Override
+     public void init(ServletConfig config) throws ServletException {
+         super.init(config);
+ 
+         final ServletContext context = config.getServletContext();
+         final StringBuilder servletLinks = new StringBuilder();
+ 
+         this.metricsEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), "true"));
+         if (this.metricsEnabled) {
+             servletLinks.append(METRICS_LINK);
+         }
+         this.metricsServlet = new MetricsServlet();
+         metricsServlet.init(config);
+ 
+         this.pingEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), "true"));
+         if (this.pingEnabled) {
+             servletLinks.append(PING_LINK);
+         }
+         this.pingServlet = new PingServlet();
+         pingServlet.init(config);
+ 
+         this.threadsEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), "true"));
+         if (this.threadsEnabled) {
+             servletLinks.append(THREADS_LINK);
+         }
+         this.threadDumpServlet = new ThreadDumpServlet();
+         threadDumpServlet.init(config);
+ 
+         this.healthcheckEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), "true"));
+         if (this.healthcheckEnabled) {
+             servletLinks.append(HEALTHCHECK_LINK);
+         }
+         this.healthCheckServlet = new HealthCheckServlet();
+         healthCheckServlet.init(config);
+ 
+         this.cpuProfileEnabled =
+                 Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), "true"));
+         if (this.cpuProfileEnabled) {
+             servletLinks.append(CPU_PROFILE_LINK);
+         }
+         this.cpuProfileServlet = new CpuProfileServlet();
+         cpuProfileServlet.init(config);
+ 
+         pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));
+ 
+         this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);
+         this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);
+         this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);
+         this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);
+         this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);
+         this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);
+     }
+ 
+     @Override
+     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+         final String path = req.getContextPath() + req.getServletPath();
+ 
+         resp.setStatus(HttpServletResponse.SC_OK);
+         resp.setHeader("Cache-Control", "must-revalidate,no-cache,no-store");
+         resp.setContentType(CONTENT_TYPE);
+         try (PrintWriter writer = resp.getWriter()) {
+             writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,
+                     threadsUri, path, healthcheckUri, path, cpuProfileUri,
+                     serviceName == null ? "" : " (" + serviceName + ")"));
+         }
+     }
+ 
+     @Override
+     protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
+         final String uri = req.getPathInfo();
+         if (uri == null || uri.equals("/")) {
+             super.service(req, resp);
+         } else if (uri.equals(healthcheckUri)) {
+             if (healthcheckEnabled) {
+                 healthCheckServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else if (uri.startsWith(metricsUri)) {
+             if (metricsEnabled) {
+                 metricsServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else if (uri.equals(pingUri)) {
+             if (pingEnabled) {
+                 pingServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else if (uri.equals(threadsUri)) {
+             if (threadsEnabled) {
+                 threadDumpServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else if (uri.equals(cpuProfileUri)) {
+             if (cpuProfileEnabled) {
+                 cpuProfileServlet.service(req, resp);
+             } else {
+                 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+             }
+         } else {
+             resp.sendError(HttpServletResponse.SC_NOT_FOUND);
+         }
+     }
+ 
+     private static String getParam(String initParam, String defaultValue) {
+         return initParam == null ? defaultValue : initParam;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-28/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-28/sources/source-2.html new file mode 100644 index 0000000000..4de9b117f0 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-28/sources/source-2.html @@ -0,0 +1,183 @@ + + + + + + + + Coverage Report > CpuProfileServlet + + + + + + +
+ + +

Coverage Summary for Class: CpuProfileServlet (io.dropwizard.metrics.servlets)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
CpuProfileServlet + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 65.6% + + + (21/32) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlets;
+ 
+ import com.papertrail.profiler.CpuProfile;
+ import jakarta.servlet.ServletException;
+ import jakarta.servlet.http.HttpServlet;
+ import jakarta.servlet.http.HttpServletRequest;
+ import jakarta.servlet.http.HttpServletResponse;
+ 
+ import java.io.IOException;
+ import java.io.OutputStream;
+ import java.time.Duration;
+ import java.util.concurrent.locks.Lock;
+ import java.util.concurrent.locks.ReentrantLock;
+ 
+ /**
+  * An HTTP servlets which outputs a <a href="https://github.com/gperftools/gperftools">pprof</a> parseable response.
+  */
+ public class CpuProfileServlet extends HttpServlet {
+     private static final long serialVersionUID = -668666696530287501L;
+     private static final String CONTENT_TYPE = "pprof/raw";
+     private static final String CACHE_CONTROL = "Cache-Control";
+     private static final String NO_CACHE = "must-revalidate,no-cache,no-store";
+     private final Lock lock = new ReentrantLock();
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+ 
+         int duration = 10;
+         if (req.getParameter("duration") != null) {
+             try {
+                 duration = Integer.parseInt(req.getParameter("duration"));
+             } catch (NumberFormatException e) {
+                 duration = 10;
+             }
+         }
+ 
+         int frequency = 100;
+         if (req.getParameter("frequency") != null) {
+             try {
+                 frequency = Integer.parseInt(req.getParameter("frequency"));
+                 frequency = Math.min(Math.max(frequency, 1), 1000);
+             } catch (NumberFormatException e) {
+                 frequency = 100;
+             }
+         }
+ 
+         final Thread.State state;
+         if ("blocked".equalsIgnoreCase(req.getParameter("state"))) {
+             state = Thread.State.BLOCKED;
+         } else {
+             state = Thread.State.RUNNABLE;
+         }
+ 
+         resp.setStatus(HttpServletResponse.SC_OK);
+         resp.setHeader(CACHE_CONTROL, NO_CACHE);
+         resp.setContentType(CONTENT_TYPE);
+         try (OutputStream output = resp.getOutputStream()) {
+             doProfile(output, duration, frequency, state);
+         }
+     }
+ 
+     protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
+         if (lock.tryLock()) {
+             try {
+                 CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),
+                         frequency, state);
+                 if (profile == null) {
+                     throw new RuntimeException("could not create CpuProfile");
+                 }
+                 profile.writeGoogleProfile(out);
+                 return;
+             } finally {
+                 lock.unlock();
+             }
+         }
+         throw new RuntimeException("Only one profile request may be active at a time");
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-28/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-28/sources/source-3.html new file mode 100644 index 0000000000..fd79991cae --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-28/sources/source-3.html @@ -0,0 +1,325 @@ + + + + + + + + Coverage Report > HealthCheckServlet + + + + + + +
+ + +

Coverage Summary for Class: HealthCheckServlet (io.dropwizard.metrics.servlets)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
HealthCheckServlet + + 100% + + + (10/10) + + + + 95.1% + + + (58/61) + +
HealthCheckServlet$ContextListener + + 0% + + + (0/6) + + + + 0% + + + (0/9) + +
Total + + 62.5% + + + (10/16) + + + + 82.9% + + + (58/70) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlets;
+ 
+ import com.codahale.metrics.health.HealthCheck;
+ import com.codahale.metrics.health.HealthCheckFilter;
+ import com.codahale.metrics.health.HealthCheckRegistry;
+ import com.codahale.metrics.json.HealthCheckModule;
+ import com.fasterxml.jackson.databind.ObjectMapper;
+ import com.fasterxml.jackson.databind.ObjectWriter;
+ import jakarta.servlet.ServletConfig;
+ import jakarta.servlet.ServletContext;
+ import jakarta.servlet.ServletContextEvent;
+ import jakarta.servlet.ServletContextListener;
+ import jakarta.servlet.ServletException;
+ import jakarta.servlet.http.HttpServlet;
+ import jakarta.servlet.http.HttpServletRequest;
+ import jakarta.servlet.http.HttpServletResponse;
+ 
+ import java.io.IOException;
+ import java.io.OutputStream;
+ import java.util.Map;
+ import java.util.SortedMap;
+ import java.util.concurrent.ExecutorService;
+ 
+ public class HealthCheckServlet extends HttpServlet {
+     public static abstract class ContextListener implements ServletContextListener {
+         /**
+          * @return the {@link HealthCheckRegistry} to inject into the servlet context.
+          */
+         protected abstract HealthCheckRegistry getHealthCheckRegistry();
+ 
+         /**
+          * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
+          * if the health checks should be run in the servlet worker thread.
+          */
+         protected ExecutorService getExecutorService() {
+             // don't use a thread pool by default
+             return null;
+         }
+ 
+         /**
+          * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
+          * or {@link HealthCheckFilter#ALL} if the default should be used.
+          */
+         protected HealthCheckFilter getHealthCheckFilter() {
+             return HealthCheckFilter.ALL;
+         }
+ 
+         /**
+          * @return the {@link ObjectMapper} that shall be used to render health checks,
+          * or {@code null} if the default object mapper should be used.
+          */
+         protected ObjectMapper getObjectMapper() {
+             // don't use an object mapper by default
+             return null;
+         }
+ 
+         @Override
+         public void contextInitialized(ServletContextEvent event) {
+             final ServletContext context = event.getServletContext();
+             context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());
+             context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());
+             context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());
+         }
+ 
+         @Override
+         public void contextDestroyed(ServletContextEvent event) {
+             // no-op
+         }
+     }
+ 
+     public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + ".registry";
+     public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + ".executor";
+     public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + ".healthCheckFilter";
+     public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + ".mapper";
+     public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + ".httpStatusIndicator";
+ 
+     private static final long serialVersionUID = -8432996484889177321L;
+     private static final String CONTENT_TYPE = "application/json";
+     private static final String HTTP_STATUS_INDICATOR_PARAM = "httpStatusIndicator";
+ 
+     private transient HealthCheckRegistry registry;
+     private transient ExecutorService executorService;
+     private transient HealthCheckFilter filter;
+     private transient ObjectMapper mapper;
+     private transient boolean httpStatusIndicator;
+ 
+     public HealthCheckServlet() {
+     }
+ 
+     public HealthCheckServlet(HealthCheckRegistry registry) {
+         this.registry = registry;
+     }
+ 
+     @Override
+     public void init(ServletConfig config) throws ServletException {
+         super.init(config);
+ 
+         final ServletContext context = config.getServletContext();
+         if (null == registry) {
+             final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);
+             if (registryAttr instanceof HealthCheckRegistry) {
+                 this.registry = (HealthCheckRegistry) registryAttr;
+             } else {
+                 throw new ServletException("Couldn't find a HealthCheckRegistry instance.");
+             }
+         }
+ 
+         final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);
+         if (executorAttr instanceof ExecutorService) {
+             this.executorService = (ExecutorService) executorAttr;
+         }
+ 
+         final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);
+         if (filterAttr instanceof HealthCheckFilter) {
+             filter = (HealthCheckFilter) filterAttr;
+         }
+         if (filter == null) {
+             filter = HealthCheckFilter.ALL;
+         }
+ 
+         final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);
+         if (mapperAttr instanceof ObjectMapper) {
+             this.mapper = (ObjectMapper) mapperAttr;
+         } else {
+             this.mapper = new ObjectMapper();
+         }
+         this.mapper.registerModule(new HealthCheckModule());
+ 
+         final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);
+         if (httpStatusIndicatorAttr instanceof Boolean) {
+             this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;
+         } else {
+             this.httpStatusIndicator = true;
+         }
+     }
+ 
+     @Override
+     public void destroy() {
+         super.destroy();
+         registry.shutdown();
+     }
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+         final SortedMap<String, HealthCheck.Result> results = runHealthChecks();
+         resp.setContentType(CONTENT_TYPE);
+         resp.setHeader("Cache-Control", "must-revalidate,no-cache,no-store");
+         if (results.isEmpty()) {
+             resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);
+         } else {
+             final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);
+             final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);
+             final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;
+             if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {
+                 resp.setStatus(HttpServletResponse.SC_OK);
+             } else {
+                 resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+             }
+         }
+ 
+         try (OutputStream output = resp.getOutputStream()) {
+             getWriter(req).writeValue(output, results);
+         }
+     }
+ 
+     private ObjectWriter getWriter(HttpServletRequest request) {
+         final boolean prettyPrint = Boolean.parseBoolean(request.getParameter("pretty"));
+         if (prettyPrint) {
+             return mapper.writerWithDefaultPrettyPrinter();
+         }
+         return mapper.writer();
+     }
+ 
+     private SortedMap<String, HealthCheck.Result> runHealthChecks() {
+         if (executorService == null) {
+             return registry.runHealthChecks(filter);
+         }
+         return registry.runHealthChecks(executorService, filter);
+     }
+ 
+     private static boolean isAllHealthy(Map<String, HealthCheck.Result> results) {
+         for (HealthCheck.Result result : results.values()) {
+             if (!result.isHealthy()) {
+                 return false;
+             }
+         }
+         return true;
+     }
+ 
+     // visible for testing
+     ObjectMapper getMapper() {
+         return mapper;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-28/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-28/sources/source-4.html new file mode 100644 index 0000000000..1852e4036e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-28/sources/source-4.html @@ -0,0 +1,328 @@ + + + + + + + + Coverage Report > MetricsServlet + + + + + + +
+ + +

Coverage Summary for Class: MetricsServlet (io.dropwizard.metrics.servlets)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
MetricsServlet + + 100% + + + (8/8) + + + + 100% + + + (44/44) + +
MetricsServlet$ContextListener + + 62.5% + + + (5/8) + + + + 77.8% + + + (14/18) + +
Total + + 81.2% + + + (13/16) + + + + 93.5% + + + (58/62) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlets;
+ 
+ import com.codahale.metrics.MetricFilter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.json.MetricsModule;
+ import com.fasterxml.jackson.databind.ObjectMapper;
+ import com.fasterxml.jackson.databind.ObjectWriter;
+ import com.fasterxml.jackson.databind.util.JSONPObject;
+ import jakarta.servlet.ServletConfig;
+ import jakarta.servlet.ServletContext;
+ import jakarta.servlet.ServletContextEvent;
+ import jakarta.servlet.ServletContextListener;
+ import jakarta.servlet.ServletException;
+ import jakarta.servlet.http.HttpServlet;
+ import jakarta.servlet.http.HttpServletRequest;
+ import jakarta.servlet.http.HttpServletResponse;
+ 
+ import java.io.IOException;
+ import java.io.OutputStream;
+ import java.util.Locale;
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * A servlet which returns the metrics in a given registry as an {@code application/json} response.
+  */
+ public class MetricsServlet extends HttpServlet {
+     /**
+      * An abstract {@link ServletContextListener} which allows you to programmatically inject the
+      * {@link MetricRegistry}, rate and duration units, and allowed origin for
+      * {@link MetricsServlet}.
+      */
+     public static abstract class ContextListener implements ServletContextListener {
+         /**
+          * @return the {@link MetricRegistry} to inject into the servlet context.
+          */
+         protected abstract MetricRegistry getMetricRegistry();
+ 
+         /**
+          * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
+          * default should be used.
+          */
+         protected TimeUnit getRateUnit() {
+             // use the default
+             return null;
+         }
+ 
+         /**
+          * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
+          * the default should be used.
+          */
+         protected TimeUnit getDurationUnit() {
+             // use the default
+             return null;
+         }
+ 
+         /**
+          * @return the {@code Access-Control-Allow-Origin} header value, if any.
+          */
+         protected String getAllowedOrigin() {
+             // use the default
+             return null;
+         }
+ 
+         /**
+          * Returns the name of the parameter used to specify the jsonp callback, if any.
+          */
+         protected String getJsonpCallbackParameter() {
+             return null;
+         }
+ 
+         /**
+          * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
+          * the default should be used.
+          */
+         protected MetricFilter getMetricFilter() {
+             // use the default
+             return MetricFilter.ALL;
+         }
+ 
+         @Override
+         public void contextInitialized(ServletContextEvent event) {
+             final ServletContext context = event.getServletContext();
+             context.setAttribute(METRICS_REGISTRY, getMetricRegistry());
+             context.setAttribute(METRIC_FILTER, getMetricFilter());
+             if (getDurationUnit() != null) {
+                 context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());
+             }
+             if (getRateUnit() != null) {
+                 context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());
+             }
+             if (getAllowedOrigin() != null) {
+                 context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());
+             }
+             if (getJsonpCallbackParameter() != null) {
+                 context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());
+             }
+         }
+ 
+         @Override
+         public void contextDestroyed(ServletContextEvent event) {
+             // no-op
+         }
+     }
+ 
+     public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + ".rateUnit";
+     public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + ".durationUnit";
+     public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + ".showSamples";
+     public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + ".registry";
+     public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + ".allowedOrigin";
+     public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + ".metricFilter";
+     public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + ".jsonpCallback";
+ 
+     private static final long serialVersionUID = 1049773947734939602L;
+     private static final String CONTENT_TYPE = "application/json";
+ 
+     protected String allowedOrigin;
+     protected String jsonpParamName;
+     protected transient MetricRegistry registry;
+     protected transient ObjectMapper mapper;
+ 
+     public MetricsServlet() {
+     }
+ 
+     public MetricsServlet(MetricRegistry registry) {
+         this.registry = registry;
+     }
+ 
+     @Override
+     public void init(ServletConfig config) throws ServletException {
+         super.init(config);
+ 
+         final ServletContext context = config.getServletContext();
+         if (null == registry) {
+             final Object registryAttr = context.getAttribute(METRICS_REGISTRY);
+             if (registryAttr instanceof MetricRegistry) {
+                 this.registry = (MetricRegistry) registryAttr;
+             } else {
+                 throw new ServletException("Couldn't find a MetricRegistry instance.");
+             }
+         }
+         this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);
+         this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);
+ 
+         setupMetricsModule(context);
+     }
+ 
+     protected void setupMetricsModule(ServletContext context) {
+         final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),
+                 TimeUnit.SECONDS);
+         final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),
+                 TimeUnit.SECONDS);
+         final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));
+         MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);
+         if (filter == null) {
+             filter = MetricFilter.ALL;
+         }
+ 
+         this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,
+                 durationUnit,
+                 showSamples,
+                 filter));
+     }
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+         resp.setContentType(CONTENT_TYPE);
+         if (allowedOrigin != null) {
+             resp.setHeader("Access-Control-Allow-Origin", allowedOrigin);
+         }
+         resp.setHeader("Cache-Control", "must-revalidate,no-cache,no-store");
+         resp.setStatus(HttpServletResponse.SC_OK);
+ 
+         try (OutputStream output = resp.getOutputStream()) {
+             if (jsonpParamName != null && req.getParameter(jsonpParamName) != null) {
+                 getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));
+             } else {
+                 getWriter(req).writeValue(output, registry);
+             }
+         }
+     }
+ 
+     protected ObjectWriter getWriter(HttpServletRequest request) {
+         final boolean prettyPrint = Boolean.parseBoolean(request.getParameter("pretty"));
+         if (prettyPrint) {
+             return mapper.writerWithDefaultPrettyPrinter();
+         }
+         return mapper.writer();
+     }
+ 
+     protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
+         try {
+             return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));
+         } catch (IllegalArgumentException e) {
+             return defaultValue;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-28/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-28/sources/source-5.html new file mode 100644 index 0000000000..cc28cfae49 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-28/sources/source-5.html @@ -0,0 +1,135 @@ + + + + + + + + Coverage Report > PingServlet + + + + + + +
+ + +

Coverage Summary for Class: PingServlet (io.dropwizard.metrics.servlets)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
PingServlet + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (7/7) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlets;
+ 
+ import jakarta.servlet.ServletException;
+ import jakarta.servlet.http.HttpServlet;
+ import jakarta.servlet.http.HttpServletRequest;
+ import jakarta.servlet.http.HttpServletResponse;
+ 
+ import java.io.IOException;
+ import java.io.PrintWriter;
+ 
+ /**
+  * An HTTP servlets which outputs a {@code text/plain} {@code "pong"} response.
+  */
+ public class PingServlet extends HttpServlet {
+     private static final long serialVersionUID = 3772654177231086757L;
+     private static final String CONTENT_TYPE = "text/plain";
+     private static final String CONTENT = "pong";
+     private static final String CACHE_CONTROL = "Cache-Control";
+     private static final String NO_CACHE = "must-revalidate,no-cache,no-store";
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+         resp.setStatus(HttpServletResponse.SC_OK);
+         resp.setHeader(CACHE_CONTROL, NO_CACHE);
+         resp.setContentType(CONTENT_TYPE);
+         try (PrintWriter writer = resp.getWriter()) {
+             writer.println(CONTENT);
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-28/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-28/sources/source-6.html new file mode 100644 index 0000000000..50af851d18 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-28/sources/source-6.html @@ -0,0 +1,159 @@ + + + + + + + + Coverage Report > ThreadDumpServlet + + + + + + +
+ + +

Coverage Summary for Class: ThreadDumpServlet (io.dropwizard.metrics.servlets)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ThreadDumpServlet + + 100% + + + (1/1) + + + + 100% + + + (4/4) + + + + 81.2% + + + (13/16) + +
+ +
+
+ + +
+ package io.dropwizard.metrics.servlets;
+ 
+ import com.codahale.metrics.jvm.ThreadDump;
+ import jakarta.servlet.ServletException;
+ import jakarta.servlet.http.HttpServlet;
+ import jakarta.servlet.http.HttpServletRequest;
+ import jakarta.servlet.http.HttpServletResponse;
+ 
+ import java.io.IOException;
+ import java.io.OutputStream;
+ import java.lang.management.ManagementFactory;
+ 
+ /**
+  * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
+  * the VM. Only responds to {@code GET} requests.
+  */
+ public class ThreadDumpServlet extends HttpServlet {
+ 
+     private static final long serialVersionUID = -2690343532336103046L;
+     private static final String CONTENT_TYPE = "text/plain";
+ 
+     private transient ThreadDump threadDump;
+ 
+     @Override
+     public void init() throws ServletException {
+         try {
+             // Some PaaS like Google App Engine blacklist java.lang.managament
+             this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());
+         } catch (NoClassDefFoundError ncdfe) {
+             this.threadDump = null; // we won't be able to provide thread dump
+         }
+     }
+ 
+     @Override
+     protected void doGet(HttpServletRequest req,
+                          HttpServletResponse resp) throws ServletException, IOException {
+         final boolean includeMonitors = getParam(req.getParameter("monitors"), true);
+         final boolean includeSynchronizers = getParam(req.getParameter("synchronizers"), true);
+ 
+         resp.setStatus(HttpServletResponse.SC_OK);
+         resp.setContentType(CONTENT_TYPE);
+         resp.setHeader("Cache-Control", "must-revalidate,no-cache,no-store");
+         if (threadDump == null) {
+             resp.getWriter().println("Sorry your runtime environment does not allow to dump threads.");
+             return;
+         }
+         try (OutputStream output = resp.getOutputStream()) {
+             threadDump.dump(includeMonitors, includeSynchronizers, output);
+         }
+     }
+ 
+     private static Boolean getParam(String initParam, boolean defaultValue) {
+         return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index.html b/metrics-complete-report-initial-htmlReport/ns-3/index.html new file mode 100644 index 0000000000..9471f6c113 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-3/index.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..4d338aa88f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..22ba1d216a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..06e65e2199 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..479a92e46c --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..6fba80a9f0 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_LINE.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..ef27af4a54 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..9d06b8edb4 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..a5b6b39e77 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..ad200ed6a7 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.benchmarks + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.benchmarks

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.benchmarks + + 0% + + + (0/6) + + + + 0% + + + (0/25) + + + + 0% + + + (0/98) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
CachedGaugeBenchmark + + 0% + + + (0/2) + + + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-3/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-3/sources/source-1.html new file mode 100644 index 0000000000..50243f280d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-3/sources/source-1.html @@ -0,0 +1,176 @@ + + + + + + + + Coverage Report > CachedGaugeBenchmark + + + + + + +
+ + +

Coverage Summary for Class: CachedGaugeBenchmark (com.codahale.metrics.benchmarks)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
CachedGaugeBenchmark + + 0% + + + (0/3) + + + + 0% + + + (0/11) + +
CachedGaugeBenchmark$1 + + 0% + + + (0/2) + + + + 0% + + + (0/6) + +
Total + + 0% + + + (0/5) + + + + 0% + + + (0/17) + +
+ +
+
+ + +
+ package com.codahale.metrics.benchmarks;
+ 
+ import com.codahale.metrics.CachedGauge;
+ import org.openjdk.jmh.annotations.Benchmark;
+ import org.openjdk.jmh.annotations.Scope;
+ import org.openjdk.jmh.annotations.State;
+ import org.openjdk.jmh.infra.Blackhole;
+ import org.openjdk.jmh.runner.Runner;
+ import org.openjdk.jmh.runner.RunnerException;
+ import org.openjdk.jmh.runner.options.Options;
+ import org.openjdk.jmh.runner.options.OptionsBuilder;
+ 
+ import java.util.concurrent.TimeUnit;
+ 
+ @State(Scope.Benchmark)
+ public class CachedGaugeBenchmark {
+ 
+     private CachedGauge<Integer> cachedGauge = new CachedGauge<Integer>(100, TimeUnit.MILLISECONDS) {
+         @Override
+         protected Integer loadValue() {
+             try {
+                 Thread.sleep(10);
+             } catch (InterruptedException e) {
+                 throw new RuntimeException("Thread was interrupted", e);
+             }
+             return 12345;
+         }
+     };
+ 
+     @Benchmark
+     public void perfGetValue(Blackhole blackhole) {
+         blackhole.consume(cachedGauge.getValue());
+     }
+ 
+     public static void main(String[] args) throws RunnerException {
+         Options opt = new OptionsBuilder()
+                 .include(".*" + CachedGaugeBenchmark.class.getSimpleName() + ".*")
+                 .warmupIterations(3)
+                 .measurementIterations(5)
+                 .threads(4)
+                 .forks(1)
+                 .build();
+ 
+         new Runner(opt).run();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-3/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-3/sources/source-2.html new file mode 100644 index 0000000000..7bd634c046 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-3/sources/source-2.html @@ -0,0 +1,142 @@ + + + + + + + + Coverage Report > CounterBenchmark + + + + + + +
+ + +

Coverage Summary for Class: CounterBenchmark (com.codahale.metrics.benchmarks)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
CounterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
+ +
+
+ + +
+ package com.codahale.metrics.benchmarks;
+ 
+ import com.codahale.metrics.Counter;
+ import org.openjdk.jmh.annotations.Benchmark;
+ import org.openjdk.jmh.annotations.Scope;
+ import org.openjdk.jmh.annotations.State;
+ import org.openjdk.jmh.runner.Runner;
+ import org.openjdk.jmh.runner.RunnerException;
+ import org.openjdk.jmh.runner.options.Options;
+ import org.openjdk.jmh.runner.options.OptionsBuilder;
+ 
+ @State(Scope.Benchmark)
+ public class CounterBenchmark {
+ 
+     private final Counter counter = new Counter();
+ 
+     // It's intentionally not declared as final to avoid constant folding
+     private long nextValue = 0xFBFBABBA;
+ 
+     @Benchmark
+     public Object perfIncrement() {
+         counter.inc(nextValue); 
+         return counter;
+     }
+ 
+     public static void main(String[] args) throws RunnerException {
+         Options opt = new OptionsBuilder()
+                 .include(".*" + CounterBenchmark.class.getSimpleName() + ".*")
+                 .warmupIterations(3)
+                 .measurementIterations(5)
+                 .threads(4)
+                 .forks(1)
+                 .build();
+ 
+         new Runner(opt).run();
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-3/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-3/sources/source-3.html new file mode 100644 index 0000000000..6c15fb51a8 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-3/sources/source-3.html @@ -0,0 +1,142 @@ + + + + + + + + Coverage Report > MeterBenchmark + + + + + + +
+ + +

Coverage Summary for Class: MeterBenchmark (com.codahale.metrics.benchmarks)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
MeterBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/3) + + + + 0% + + + (0/13) + +
+ +
+
+ + +
+ package com.codahale.metrics.benchmarks;
+ 
+ import com.codahale.metrics.Meter;
+ import org.openjdk.jmh.annotations.Benchmark;
+ import org.openjdk.jmh.annotations.Scope;
+ import org.openjdk.jmh.annotations.State;
+ import org.openjdk.jmh.runner.Runner;
+ import org.openjdk.jmh.runner.RunnerException;
+ import org.openjdk.jmh.runner.options.Options;
+ import org.openjdk.jmh.runner.options.OptionsBuilder;
+ 
+ @State(Scope.Benchmark)
+ public class MeterBenchmark {
+ 
+     private final Meter meter = new Meter();
+ 
+     // It's intentionally not declared as final to avoid constant folding
+     private long nextValue = 0xFBFBABBA;
+ 
+     @Benchmark
+     public Object perfMark() {
+         meter.mark(nextValue);
+         return meter;
+     }
+ 
+     public static void main(String[] args) throws RunnerException {
+         Options opt = new OptionsBuilder()
+                 .include(".*" + MeterBenchmark.class.getSimpleName() + ".*")
+                 .warmupIterations(3)
+                 .measurementIterations(5)
+                 .threads(4)
+                 .forks(1)
+                 .build();
+ 
+         new Runner(opt).run();
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-3/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-3/sources/source-4.html new file mode 100644 index 0000000000..88fe1f29f8 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-3/sources/source-4.html @@ -0,0 +1,192 @@ + + + + + + + + Coverage Report > ReservoirBenchmark + + + + + + +
+ + +

Coverage Summary for Class: ReservoirBenchmark (com.codahale.metrics.benchmarks)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ReservoirBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/8) + + + + 0% + + + (0/32) + +
+ +
+
+ + +
+ package com.codahale.metrics.benchmarks;
+ 
+ import com.codahale.metrics.ExponentiallyDecayingReservoir;
+ import com.codahale.metrics.LockFreeExponentiallyDecayingReservoir;
+ import com.codahale.metrics.Reservoir;
+ import com.codahale.metrics.SlidingTimeWindowArrayReservoir;
+ import com.codahale.metrics.SlidingTimeWindowReservoir;
+ import com.codahale.metrics.SlidingWindowReservoir;
+ import com.codahale.metrics.UniformReservoir;
+ import org.openjdk.jmh.annotations.Benchmark;
+ import org.openjdk.jmh.annotations.Mode;
+ import org.openjdk.jmh.annotations.Scope;
+ import org.openjdk.jmh.annotations.State;
+ import org.openjdk.jmh.profile.GCProfiler;
+ import org.openjdk.jmh.runner.Runner;
+ import org.openjdk.jmh.runner.RunnerException;
+ import org.openjdk.jmh.runner.options.Options;
+ import org.openjdk.jmh.runner.options.OptionsBuilder;
+ import org.openjdk.jmh.runner.options.TimeValue;
+ 
+ import java.util.concurrent.TimeUnit;
+ 
+ @State(Scope.Benchmark)
+ public class ReservoirBenchmark {
+ 
+     private final UniformReservoir uniform = new UniformReservoir();
+     private final ExponentiallyDecayingReservoir exponential = new ExponentiallyDecayingReservoir();
+     private final Reservoir lockFreeExponential = LockFreeExponentiallyDecayingReservoir.builder().build();
+     private final SlidingWindowReservoir sliding = new SlidingWindowReservoir(1000);
+     private final SlidingTimeWindowReservoir slidingTime = new SlidingTimeWindowReservoir(200, TimeUnit.MILLISECONDS);
+     private final SlidingTimeWindowArrayReservoir arrTime = new SlidingTimeWindowArrayReservoir(200, TimeUnit.MILLISECONDS);
+ 
+     // It's intentionally not declared as final to avoid constant folding
+     private long nextValue = 0xFBFBABBA;
+ 
+     @Benchmark
+     public Object perfUniformReservoir() {
+         uniform.update(nextValue);
+         return uniform;
+     }
+ 
+     @Benchmark
+     public Object perfSlidingTimeWindowArrayReservoir() {
+         arrTime.update(nextValue);
+         return arrTime;
+     }
+ 
+     @Benchmark
+     public Object perfExponentiallyDecayingReservoir() {
+         exponential.update(nextValue);
+         return exponential;
+     }
+ 
+     @Benchmark
+     public Object perfSlidingWindowReservoir() {
+         sliding.update(nextValue);
+         return sliding;
+     }
+ 
+     @Benchmark
+     public Object perfSlidingTimeWindowReservoir() {
+         slidingTime.update(nextValue);
+         return slidingTime;
+     }
+ 
+     @Benchmark
+     public Object perfLockFreeExponentiallyDecayingReservoir() {
+         lockFreeExponential.update(nextValue);
+         return lockFreeExponential;
+     }
+ 
+     public static void main(String[] args) throws RunnerException {
+         Options opt = new OptionsBuilder()
+             .include(".*" + ReservoirBenchmark.class.getSimpleName() + ".*")
+             .warmupIterations(10)
+             .measurementIterations(10)
+             .addProfiler(GCProfiler.class)
+             .measurementTime(TimeValue.seconds(3))
+             .timeUnit(TimeUnit.MICROSECONDS)
+             .mode(Mode.AverageTime)
+             .threads(4)
+             .forks(1)
+             .build();
+ 
+         new Runner(opt).run();
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-3/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-3/sources/source-5.html new file mode 100644 index 0000000000..61d530a3dd --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-3/sources/source-5.html @@ -0,0 +1,184 @@ + + + + + + + + Coverage Report > SlidingTimeWindowReservoirsBenchmark + + + + + + +
+ + +

Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark (com.codahale.metrics.benchmarks)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SlidingTimeWindowReservoirsBenchmark + + 0% + + + (0/1) + + + + 0% + + + (0/6) + + + + 0% + + + (0/23) + +
+ +
+
+ + +
+ package com.codahale.metrics.benchmarks;
+ 
+ import com.codahale.metrics.SlidingTimeWindowArrayReservoir;
+ import com.codahale.metrics.SlidingTimeWindowReservoir;
+ import com.codahale.metrics.Snapshot;
+ 
+ import org.openjdk.jmh.annotations.Benchmark;
+ import org.openjdk.jmh.annotations.Group;
+ import org.openjdk.jmh.annotations.GroupThreads;
+ import org.openjdk.jmh.annotations.Mode;
+ import org.openjdk.jmh.annotations.Scope;
+ import org.openjdk.jmh.annotations.State;
+ import org.openjdk.jmh.profile.GCProfiler;
+ import org.openjdk.jmh.runner.Runner;
+ import org.openjdk.jmh.runner.RunnerException;
+ import org.openjdk.jmh.runner.options.Options;
+ import org.openjdk.jmh.runner.options.OptionsBuilder;
+ import org.openjdk.jmh.runner.options.TimeValue;
+ 
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * @author bstorozhuk
+  */
+ @State(Scope.Benchmark)
+ public class SlidingTimeWindowReservoirsBenchmark {
+     private final SlidingTimeWindowReservoir slidingTime = new SlidingTimeWindowReservoir(200, TimeUnit.MILLISECONDS);
+     private final SlidingTimeWindowArrayReservoir arrTime = new SlidingTimeWindowArrayReservoir(200, TimeUnit.MILLISECONDS);
+ 
+     // It's intentionally not declared as final to avoid constant folding
+     private long nextValue = 0xFBFBABBA;
+ 
+     @Benchmark
+     @Group("slidingTime")
+     @GroupThreads(3)
+     public Object slidingTimeAddMeasurement() {
+         slidingTime.update(nextValue);
+         return slidingTime;
+     }
+ 
+     @Benchmark
+     @Group("slidingTime")
+     @GroupThreads(1)
+     public Object slidingTimeRead() {
+         Snapshot snapshot = slidingTime.getSnapshot();
+         return snapshot;
+     }
+ 
+     @Benchmark
+     @Group("arrTime")
+     @GroupThreads(3)
+     public Object arrTimeAddMeasurement() {
+         arrTime.update(nextValue);
+         return slidingTime;
+     }
+ 
+     @Benchmark
+     @Group("arrTime")
+     @GroupThreads(1)
+     public Object arrTimeRead() {
+         Snapshot snapshot = arrTime.getSnapshot();
+         return snapshot;
+     }
+ 
+     public static void main(String[] args) throws RunnerException {
+         Options opt = new OptionsBuilder()
+             .include(".*" + SlidingTimeWindowReservoirsBenchmark.class.getSimpleName() + ".*")
+             .warmupIterations(10)
+             .measurementIterations(10)
+             .addProfiler(GCProfiler.class)
+             .measurementTime(TimeValue.seconds(3))
+             .timeUnit(TimeUnit.MICROSECONDS)
+             .mode(Mode.AverageTime)
+             .forks(1)
+             .build();
+ 
+         new Runner(opt).run();
+     }
+ }
+ 
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index.html b/metrics-complete-report-initial-htmlReport/ns-4/index.html new file mode 100644 index 0000000000..b44c03d27a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-4/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..3a028cacf6 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..2bfbb9561f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..dfbc48497a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..ff4ee71ff3 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..3f31c008e7 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..3a59704ec9 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..767e81fc23 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..ffe58bf5f2 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..9f69e43f78 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.caffeine + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.caffeine

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.caffeine + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-4/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-4/sources/source-1.html new file mode 100644 index 0000000000..c86e2cdc0a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-4/sources/source-1.html @@ -0,0 +1,238 @@ + + + + + + + + Coverage Report > MetricsStatsCounter + + + + + + +
+ + +

Coverage Summary for Class: MetricsStatsCounter (com.codahale.metrics.caffeine)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
MetricsStatsCounter + + 100% + + + (1/1) + + + + 90% + + + (9/10) + + + + 97% + + + (32/33) + +
+ +
+
+ + +
+ /*
+  * Copyright 2016 Ben Manes. All Rights Reserved.
+  *
+  * Licensed under the Apache License, Version 2.0 (the "License");
+  * you may not use this file except in compliance with the License.
+  * You may obtain a copy of the License at
+  *
+  *     http://www.apache.org/licenses/LICENSE-2.0
+  *
+  * Unless required by applicable law or agreed to in writing, software
+  * distributed under the License is distributed on an "AS IS" BASIS,
+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  * See the License for the specific language governing permissions and
+  * limitations under the License.
+  */
+ package com.codahale.metrics.caffeine;
+ 
+ import static java.util.Objects.requireNonNull;
+ 
+ import java.util.EnumMap;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.LongAdder;
+ 
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Histogram;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import com.github.benmanes.caffeine.cache.RemovalCause;
+ import com.github.benmanes.caffeine.cache.stats.CacheStats;
+ import com.github.benmanes.caffeine.cache.stats.StatsCounter;
+ import org.checkerframework.checker.index.qual.NonNegative;
+ 
+ /**
+  * A {@link StatsCounter} instrumented with Dropwizard Metrics.
+  *
+  * @author ben.manes@gmail.com (Ben Manes)
+  * @author John Karp
+  */
+ public final class MetricsStatsCounter implements StatsCounter {
+   private final Counter hitCount;
+   private final Counter missCount;
+   private final Timer loadSuccess;
+   private final Timer loadFailure;
+   private final Histogram evictions;
+   private final Counter evictionWeight;
+   private final EnumMap<RemovalCause, Histogram> evictionsWithCause;
+ 
+   // for implementing snapshot()
+   private final LongAdder totalLoadTime = new LongAdder();
+ 
+   /**
+    * Constructs an instance for use by a single cache.
+    *
+    * @param registry the registry of metric instances
+    * @param metricsPrefix the prefix name for the metrics
+    */
+   public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {
+     requireNonNull(metricsPrefix);
+     hitCount = registry.counter(MetricRegistry.name(metricsPrefix, "hits"));
+     missCount = registry.counter(MetricRegistry.name(metricsPrefix, "misses"));
+     loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, "loads-success"));
+     loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, "loads-failure"));
+     evictions = registry.histogram(MetricRegistry.name(metricsPrefix, "evictions"));
+     evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, "evictions-weight"));
+ 
+     evictionsWithCause = new EnumMap<>(RemovalCause.class);
+     for (RemovalCause cause : RemovalCause.values()) {
+       evictionsWithCause.put(
+           cause,
+           registry.histogram(MetricRegistry.name(metricsPrefix, "evictions", cause.name())));
+     }
+   }
+ 
+   @Override
+   public void recordHits(int count) {
+     hitCount.inc(count);
+   }
+ 
+   @Override
+   public void recordMisses(int count) {
+     missCount.inc(count);
+   }
+ 
+   @Override
+   public void recordLoadSuccess(long loadTime) {
+     loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);
+     totalLoadTime.add(loadTime);
+   }
+ 
+   @Override
+   public void recordLoadFailure(long loadTime) {
+     loadFailure.update(loadTime, TimeUnit.NANOSECONDS);
+     totalLoadTime.add(loadTime);
+   }
+ 
+   // @Override -- Caffeine 2.x
+   @Deprecated
+   @SuppressWarnings("deprecation")
+   public void recordEviction() {
+     // This method is scheduled for removal in version 3.0 in favor of recordEviction(weight)
+     recordEviction(1);
+   }
+ 
+   // @Override -- Caffeine 2.x
+   @Deprecated
+   @SuppressWarnings("deprecation")
+   public void recordEviction(int weight) {
+     evictions.update(weight);
+     evictionWeight.inc(weight);
+   }
+ 
+   @Override
+   public void recordEviction(@NonNegative int weight, RemovalCause cause) {
+     evictionsWithCause.get(cause).update(weight);
+     evictionWeight.inc(weight);
+   }
+ 
+   @Override
+   public CacheStats snapshot() {
+     return CacheStats.of(
+         hitCount.getCount(),
+         missCount.getCount(),
+         loadSuccess.getCount(),
+         loadFailure.getCount(),
+         totalLoadTime.sum(),
+         evictions.getCount(),
+         evictionWeight.getCount());
+   }
+ 
+   @Override
+   public String toString() {
+     return snapshot().toString();
+   }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index.html b/metrics-complete-report-initial-htmlReport/ns-5/index.html new file mode 100644 index 0000000000..54dbbd609d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-5/index.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..f41b08a521 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..16a0dab7e4 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..66cc1a08f5 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..49496a7f2f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..c5e94c0c30 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_LINE.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..000bdd2af8 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..3a18bcec7d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..c3878cf593 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..e08a912a17 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,305 @@ + + + + + + Coverage Report > com.codahale.metrics.collectd + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.collectd

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.collectd + + 90.9% + + + (10/11) + + + + 82.9% + + + (68/82) + + + + 83.4% + + + (261/313) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
PacketWriter + + 100% + + + (3/3) + + + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
MetaData + + 100% + + + (2/2) + + + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
CollectdReporter + + 100% + + + (2/2) + + + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-1.html new file mode 100644 index 0000000000..5531ce85b5 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-1.html @@ -0,0 +1,470 @@ + + + + + + + + Coverage Report > CollectdReporter + + + + + + +
+ + +

Coverage Summary for Class: CollectdReporter (com.codahale.metrics.collectd)

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
CollectdReporter + + 88.9% + + + (16/18) + + + + 84.9% + + + (79/93) + +
CollectdReporter$1
CollectdReporter$Builder + + 60% + + + (9/15) + + + + 72.1% + + + (31/43) + +
Total + + 75.8% + + + (25/33) + + + + 80.9% + + + (110/136) + +
+ +
+
+ + +
+ package com.codahale.metrics.collectd;
+ 
+ import com.codahale.metrics.Clock;
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Gauge;
+ import com.codahale.metrics.Histogram;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricAttribute;
+ import com.codahale.metrics.MetricFilter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.ScheduledReporter;
+ import com.codahale.metrics.Snapshot;
+ import com.codahale.metrics.Timer;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import java.io.IOException;
+ import java.net.InetAddress;
+ import java.util.Collections;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.SortedMap;
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.MetricAttribute.COUNT;
+ import static com.codahale.metrics.MetricAttribute.M15_RATE;
+ import static com.codahale.metrics.MetricAttribute.M1_RATE;
+ import static com.codahale.metrics.MetricAttribute.M5_RATE;
+ import static com.codahale.metrics.MetricAttribute.MAX;
+ import static com.codahale.metrics.MetricAttribute.MEAN;
+ import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
+ import static com.codahale.metrics.MetricAttribute.MIN;
+ import static com.codahale.metrics.MetricAttribute.P50;
+ import static com.codahale.metrics.MetricAttribute.P75;
+ import static com.codahale.metrics.MetricAttribute.P95;
+ import static com.codahale.metrics.MetricAttribute.P98;
+ import static com.codahale.metrics.MetricAttribute.P99;
+ import static com.codahale.metrics.MetricAttribute.P999;
+ import static com.codahale.metrics.MetricAttribute.STDDEV;
+ 
+ /**
+  * A reporter which publishes metric values to a Collectd server.
+  *
+  * @see <a href="https://collectd.org">collectd – The system statistics
+  * collection daemon</a>
+  */
+ public class CollectdReporter extends ScheduledReporter {
+ 
+     /**
+      * Returns a builder for the specified registry.
+      * <p>
+      * The default settings are:
+      * <ul>
+      * <li>hostName: InetAddress.getLocalHost().getHostName()</li>
+      * <li>executor: default executor created by {@code ScheduledReporter}</li>
+      * <li>shutdownExecutorOnStop: true</li>
+      * <li>clock: Clock.defaultClock()</li>
+      * <li>rateUnit: TimeUnit.SECONDS</li>
+      * <li>durationUnit: TimeUnit.MILLISECONDS</li>
+      * <li>filter: MetricFilter.ALL</li>
+      * <li>securityLevel: NONE</li>
+      * <li>username: ""</li>
+      * <li>password: ""</li>
+      * </ul>
+      */
+     public static Builder forRegistry(MetricRegistry registry) {
+         return new Builder(registry);
+     }
+ 
+     public static class Builder {
+ 
+         private final MetricRegistry registry;
+         private String hostName;
+         private ScheduledExecutorService executor;
+         private boolean shutdownExecutorOnStop = true;
+         private Clock clock = Clock.defaultClock();
+         private TimeUnit rateUnit = TimeUnit.SECONDS;
+         private TimeUnit durationUnit = TimeUnit.MILLISECONDS;
+         private MetricFilter filter = MetricFilter.ALL;
+         private SecurityLevel securityLevel = SecurityLevel.NONE;
+         private String username = "";
+         private String password = "";
+         private Set<MetricAttribute> disabledMetricAttributes = Collections.emptySet();
+         private int maxLength = Sanitize.DEFAULT_MAX_LENGTH;
+ 
+         private Builder(MetricRegistry registry) {
+             this.registry = registry;
+         }
+ 
+         public Builder withHostName(String hostName) {
+             this.hostName = hostName;
+             return this;
+         }
+ 
+         public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
+             this.shutdownExecutorOnStop = shutdownExecutorOnStop;
+             return this;
+         }
+ 
+         public Builder scheduleOn(ScheduledExecutorService executor) {
+             this.executor = executor;
+             return this;
+         }
+ 
+         public Builder withClock(Clock clock) {
+             this.clock = clock;
+             return this;
+         }
+ 
+         public Builder convertRatesTo(TimeUnit rateUnit) {
+             this.rateUnit = rateUnit;
+             return this;
+         }
+ 
+         public Builder convertDurationsTo(TimeUnit durationUnit) {
+             this.durationUnit = durationUnit;
+             return this;
+         }
+ 
+         public Builder filter(MetricFilter filter) {
+             this.filter = filter;
+             return this;
+         }
+ 
+         public Builder withUsername(String username) {
+             this.username = username;
+             return this;
+         }
+ 
+         public Builder withPassword(String password) {
+             this.password = password;
+             return this;
+         }
+ 
+         public Builder withSecurityLevel(SecurityLevel securityLevel) {
+             this.securityLevel = securityLevel;
+             return this;
+         }
+ 
+         public Builder disabledMetricAttributes(Set<MetricAttribute> attributes) {
+             this.disabledMetricAttributes = attributes;
+             return this;
+         }
+ 
+         public Builder withMaxLength(int maxLength) {
+             this.maxLength = maxLength;
+             return this;
+         }
+ 
+         public CollectdReporter build(Sender sender) {
+             if (securityLevel != SecurityLevel.NONE) {
+                 if (username.isEmpty()) {
+                     throw new IllegalArgumentException("username is required for securityLevel: " + securityLevel);
+                 }
+                 if (password.isEmpty()) {
+                     throw new IllegalArgumentException("password is required for securityLevel: " + securityLevel);
+                 }
+             }
+             return new CollectdReporter(registry,
+                     hostName, sender,
+                     executor, shutdownExecutorOnStop,
+                     clock, rateUnit, durationUnit,
+                     filter, disabledMetricAttributes,
+                     username, password, securityLevel, new Sanitize(maxLength));
+         }
+     }
+ 
+     private static final Logger LOG = LoggerFactory.getLogger(CollectdReporter.class);
+     private static final String REPORTER_NAME = "collectd-reporter";
+     private static final String FALLBACK_HOST_NAME = "localhost";
+     private static final String COLLECTD_TYPE_GAUGE = "gauge";
+ 
+     private String hostName;
+     private final Sender sender;
+     private final Clock clock;
+     private long period;
+     private final PacketWriter writer;
+     private final Sanitize sanitize;
+ 
+     private CollectdReporter(MetricRegistry registry,
+                              String hostname, Sender sender,
+                              ScheduledExecutorService executor, boolean shutdownExecutorOnStop,
+                              Clock clock, TimeUnit rateUnit, TimeUnit durationUnit,
+                              MetricFilter filter, Set<MetricAttribute> disabledMetricAttributes,
+                              String username, String password,
+                              SecurityLevel securityLevel, Sanitize sanitize) {
+         super(registry, REPORTER_NAME, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,
+                 disabledMetricAttributes);
+         this.hostName = (hostname != null) ? hostname : resolveHostName();
+         this.sender = sender;
+         this.clock = clock;
+         this.sanitize = sanitize;
+         writer = new PacketWriter(sender, username, password, securityLevel);
+     }
+ 
+     private String resolveHostName() {
+         try {
+             return InetAddress.getLocalHost().getHostName();
+         } catch (Exception e) {
+             LOG.error("Failed to lookup local host name: {}", e.getMessage(), e);
+             return FALLBACK_HOST_NAME;
+         }
+     }
+ 
+     @Override
+     public void start(long period, TimeUnit unit) {
+         this.period = period;
+         super.start(period, unit);
+     }
+ 
+     @Override
+     @SuppressWarnings("rawtypes")
+     public void report(SortedMap<String, Gauge> gauges, SortedMap<String, Counter> counters,
+             SortedMap<String, Histogram> histograms, SortedMap<String, Meter> meters, SortedMap<String, Timer> timers) {
+         MetaData.Builder metaData = new MetaData.Builder(sanitize, hostName, clock.getTime() / 1000, period)
+                 .type(COLLECTD_TYPE_GAUGE);
+         try {
+             connect(sender);
+             for (Map.Entry<String, Gauge> entry : gauges.entrySet()) {
+                 serializeGauge(metaData.plugin(entry.getKey()), entry.getValue());
+             }
+             for (Map.Entry<String, Counter> entry : counters.entrySet()) {
+                 serializeCounter(metaData.plugin(entry.getKey()), entry.getValue());
+             }
+             for (Map.Entry<String, Histogram> entry : histograms.entrySet()) {
+                 serializeHistogram(metaData.plugin(entry.getKey()), entry.getValue());
+             }
+             for (Map.Entry<String, Meter> entry : meters.entrySet()) {
+                 serializeMeter(metaData.plugin(entry.getKey()), entry.getValue());
+             }
+             for (Map.Entry<String, Timer> entry : timers.entrySet()) {
+                 serializeTimer(metaData.plugin(entry.getKey()), entry.getValue());
+             }
+         } catch (IOException e) {
+             LOG.warn("Unable to report to Collectd", e);
+         } finally {
+             disconnect(sender);
+         }
+     }
+ 
+     private void connect(Sender sender) throws IOException {
+         if (!sender.isConnected()) {
+             sender.connect();
+         }
+     }
+ 
+     private void disconnect(Sender sender) {
+         try {
+             sender.disconnect();
+         } catch (Exception e) {
+             LOG.warn("Error disconnecting from Collectd", e);
+         }
+     }
+ 
+     private void writeValue(MetaData.Builder metaData, MetricAttribute attribute, Number value) {
+         if (!getDisabledMetricAttributes().contains(attribute)) {
+             write(metaData.typeInstance(attribute.getCode()).get(), value);
+         }
+     }
+ 
+     private void writeRate(MetaData.Builder metaData, MetricAttribute attribute, double rate) {
+         writeValue(metaData, attribute, convertRate(rate));
+     }
+ 
+     private void writeDuration(MetaData.Builder metaData, MetricAttribute attribute, double duration) {
+         writeValue(metaData, attribute, convertDuration(duration));
+     }
+ 
+     private void write(MetaData metaData, Number value) {
+         try {
+             writer.write(metaData, value);
+         } catch (RuntimeException e) {
+             LOG.warn("Failed to process metric '" + metaData.getPlugin() + "': " + e.getMessage());
+         } catch (IOException e) {
+             LOG.error("Failed to send metric to collectd", e);
+         }
+     }
+ 
+     @SuppressWarnings("rawtypes")
+     private void serializeGauge(MetaData.Builder metaData, Gauge metric) {
+         if (metric.getValue() instanceof Number) {
+             write(metaData.typeInstance("value").get(), (Number) metric.getValue());
+         } else if (metric.getValue() instanceof Boolean) {
+             write(metaData.typeInstance("value").get(), ((Boolean) metric.getValue()) ? 1 : 0);
+         } else {
+             LOG.warn("Failed to process metric '{}'. Unsupported gauge of type: {} ", metaData.get().getPlugin(),
+                     metric.getValue().getClass().getName());
+         }
+     }
+ 
+     private void serializeMeter(MetaData.Builder metaData, Meter metric) {
+         writeValue(metaData, COUNT, (double) metric.getCount());
+         writeRate(metaData, M1_RATE, metric.getOneMinuteRate());
+         writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());
+         writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());
+         writeRate(metaData, MEAN_RATE, metric.getMeanRate());
+     }
+ 
+     private void serializeCounter(MetaData.Builder metaData, Counter metric) {
+         writeValue(metaData, COUNT, (double) metric.getCount());
+     }
+ 
+     private void serializeHistogram(MetaData.Builder metaData, Histogram metric) {
+         final Snapshot snapshot = metric.getSnapshot();
+         writeValue(metaData, COUNT, (double) metric.getCount());
+         writeValue(metaData, MAX, (double) snapshot.getMax());
+         writeValue(metaData, MEAN, snapshot.getMean());
+         writeValue(metaData, MIN, (double) snapshot.getMin());
+         writeValue(metaData, STDDEV, snapshot.getStdDev());
+         writeValue(metaData, P50, snapshot.getMedian());
+         writeValue(metaData, P75, snapshot.get75thPercentile());
+         writeValue(metaData, P95, snapshot.get95thPercentile());
+         writeValue(metaData, P98, snapshot.get98thPercentile());
+         writeValue(metaData, P99, snapshot.get99thPercentile());
+         writeValue(metaData, P999, snapshot.get999thPercentile());
+     }
+ 
+     private void serializeTimer(MetaData.Builder metaData, Timer metric) {
+         final Snapshot snapshot = metric.getSnapshot();
+         writeValue(metaData, COUNT, (double) metric.getCount());
+         writeDuration(metaData, MAX, (double) snapshot.getMax());
+         writeDuration(metaData, MEAN, snapshot.getMean());
+         writeDuration(metaData, MIN, (double) snapshot.getMin());
+         writeDuration(metaData, STDDEV, snapshot.getStdDev());
+         writeDuration(metaData, P50, snapshot.getMedian());
+         writeDuration(metaData, P75, snapshot.get75thPercentile());
+         writeDuration(metaData, P95, snapshot.get95thPercentile());
+         writeDuration(metaData, P98, snapshot.get98thPercentile());
+         writeDuration(metaData, P99, snapshot.get99thPercentile());
+         writeDuration(metaData, P999, snapshot.get999thPercentile());
+         writeRate(metaData, M1_RATE, metric.getOneMinuteRate());
+         writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());
+         writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());
+         writeRate(metaData, MEAN_RATE, metric.getMeanRate());
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-2.html new file mode 100644 index 0000000000..e46e4c6034 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-2.html @@ -0,0 +1,228 @@ + + + + + + + + Coverage Report > MetaData + + + + + + +
+ + +

Coverage Summary for Class: MetaData (com.codahale.metrics.collectd)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
MetaData + + 100% + + + (8/8) + + + + 100% + + + (15/15) + +
MetaData$Builder + + 85.7% + + + (6/7) + + + + 86.7% + + + (13/15) + +
Total + + 93.3% + + + (14/15) + + + + 93.3% + + + (28/30) + +
+ +
+
+ + +
+ package com.codahale.metrics.collectd;
+ 
+ class MetaData {
+ 
+     private final String host;
+     private final String plugin;
+     private final String pluginInstance;
+     private final String type;
+     private final String typeInstance;
+     private final long timestamp;
+     private final long period;
+ 
+     MetaData(String host, String plugin, String pluginInstance, String type, String typeInstance,
+              long timestamp, long period) {
+         this.host = host;
+         this.plugin = plugin;
+         this.pluginInstance = pluginInstance;
+         this.type = type;
+         this.typeInstance = typeInstance;
+         this.timestamp = timestamp;
+         this.period = period;
+     }
+ 
+     String getHost() {
+         return host;
+     }
+ 
+     String getPlugin() {
+         return plugin;
+     }
+ 
+     String getPluginInstance() {
+         return pluginInstance;
+     }
+ 
+     String getType() {
+         return type;
+     }
+ 
+     String getTypeInstance() {
+         return typeInstance;
+     }
+ 
+     long getTimestamp() {
+         return timestamp;
+     }
+ 
+     long getPeriod() {
+         return period;
+     }
+ 
+     static class Builder {
+ 
+         private String host;
+         private String plugin;
+         private String pluginInstance;
+         private String type;
+         private String typeInstance;
+         private long timestamp;
+         private long period;
+         private Sanitize sanitize;
+ 
+         Builder(String host, long timestamp, long duration) {
+             this(new Sanitize(Sanitize.DEFAULT_MAX_LENGTH), host, timestamp, duration);
+         }
+ 
+         Builder(Sanitize sanitize, String host, long timestamp, long duration) {
+             this.sanitize = sanitize;
+             this.host = sanitize.instanceName(host);
+             this.timestamp = timestamp;
+             period = duration;
+         }
+ 
+         Builder plugin(String name) {
+             plugin = sanitize.name(name);
+             return this;
+         }
+ 
+         Builder pluginInstance(String name) {
+             pluginInstance = sanitize.instanceName(name);
+             return this;
+         }
+ 
+         Builder type(String name) {
+             type = sanitize.name(name);
+             return this;
+         }
+ 
+         Builder typeInstance(String name) {
+             typeInstance = sanitize.instanceName(name);
+             return this;
+         }
+ 
+         MetaData get() {
+             return new MetaData(host, plugin, pluginInstance, type, typeInstance, timestamp, period);
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-3.html new file mode 100644 index 0000000000..7092d0fced --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-3.html @@ -0,0 +1,424 @@ + + + + + + + + Coverage Report > PacketWriter + + + + + + +
+ + +

Coverage Summary for Class: PacketWriter (com.codahale.metrics.collectd)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
PacketWriter + + 100% + + + (14/14) + + + + 85.4% + + + (88/103) + +
PacketWriter$1 + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
PacketWriter$EncryptionResult + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
Total + + 100% + + + (17/17) + + + + 86.1% + + + (93/108) + +
+ +
+
+ + +
+ package com.codahale.metrics.collectd;
+ 
+ import javax.crypto.BadPaddingException;
+ import javax.crypto.Cipher;
+ import javax.crypto.IllegalBlockSizeException;
+ import javax.crypto.Mac;
+ import javax.crypto.NoSuchPaddingException;
+ import javax.crypto.ShortBufferException;
+ import javax.crypto.spec.IvParameterSpec;
+ import javax.crypto.spec.SecretKeySpec;
+ import java.io.IOException;
+ import java.nio.BufferOverflowException;
+ import java.nio.ByteBuffer;
+ import java.nio.ByteOrder;
+ import java.nio.charset.StandardCharsets;
+ import java.security.InvalidKeyException;
+ import java.security.MessageDigest;
+ import java.security.NoSuchAlgorithmException;
+ import java.security.spec.InvalidParameterSpecException;
+ import java.util.Arrays;
+ 
+ class PacketWriter {
+ 
+     private static final int TYPE_HOST = 0;
+     private static final int TYPE_TIME = 1;
+     private static final int TYPE_PLUGIN = 2;
+     private static final int TYPE_PLUGIN_INSTANCE = 3;
+     private static final int TYPE_TYPE = 4;
+     private static final int TYPE_TYPE_INSTANCE = 5;
+     private static final int TYPE_VALUES = 6;
+     private static final int TYPE_INTERVAL = 7;
+     private static final int TYPE_SIGN_SHA256 = 0x0200;
+     private static final int TYPE_ENCR_AES256 = 0x0210;
+ 
+     private static final int UINT16_LEN = 2;
+     private static final int UINT32_LEN = UINT16_LEN * 2;
+     private static final int UINT64_LEN = UINT32_LEN * 2;
+     private static final int HEADER_LEN = UINT16_LEN * 2;
+     private static final int BUFFER_SIZE = 1024;
+ 
+     private static final int VALUE_COUNT_LEN = UINT16_LEN;
+     private static final int NUMBER_LEN = HEADER_LEN + UINT64_LEN;
+     private static final int SIGNATURE_LEN = 36;      // 2b Type + 2b Length + 32b Hash
+     private static final int ENCRYPT_DATA_LEN = 22;   // 16b IV + 2b Type + 2b Length + 2b Username length
+     private static final int IV_LENGTH = 16;
+     private static final int SHA1_LENGTH = 20;
+ 
+     private static final int VALUE_LEN = 9;
+     private static final byte DATA_TYPE_GAUGE = (byte) 1;
+     private static final byte NULL = (byte) '\0';
+     private static final String HMAC_SHA256_ALGORITHM = "HmacSHA256";
+     private static final String AES_CYPHER = "AES_256/OFB/NoPadding";
+     private static final String AES = "AES";
+     private static final String SHA_256_ALGORITHM = "SHA-256";
+     private static final String SHA_1_ALGORITHM = "SHA1";
+ 
+     private final Sender sender;
+ 
+     private final SecurityLevel securityLevel;
+     private final byte[] username;
+     private final byte[] password;
+ 
+     PacketWriter(Sender sender, String username, String password, SecurityLevel securityLevel) {
+         this.sender = sender;
+         this.securityLevel = securityLevel;
+         this.username = username != null ? username.getBytes(StandardCharsets.UTF_8) : null;
+         this.password = password != null ? password.getBytes(StandardCharsets.UTF_8) : null;
+     }
+ 
+     void write(MetaData metaData, Number... values) throws BufferOverflowException, IOException {
+         final ByteBuffer packet = ByteBuffer.allocate(BUFFER_SIZE);
+         write(packet, metaData);
+         write(packet, values);
+         packet.flip();
+ 
+         switch (securityLevel) {
+             case NONE:
+                 sender.send(packet);
+                 break;
+             case SIGN:
+                 sender.send(signPacket(packet));
+                 break;
+             case ENCRYPT:
+                 sender.send(encryptPacket(packet));
+                 break;
+             default:
+                 throw new IllegalArgumentException("Unsupported security level: " + securityLevel);
+         }
+     }
+ 
+ 
+     private void write(ByteBuffer buffer, MetaData metaData) {
+         writeString(buffer, TYPE_HOST, metaData.getHost());
+         writeNumber(buffer, TYPE_TIME, metaData.getTimestamp());
+         writeString(buffer, TYPE_PLUGIN, metaData.getPlugin());
+         writeString(buffer, TYPE_PLUGIN_INSTANCE, metaData.getPluginInstance());
+         writeString(buffer, TYPE_TYPE, metaData.getType());
+         writeString(buffer, TYPE_TYPE_INSTANCE, metaData.getTypeInstance());
+         writeNumber(buffer, TYPE_INTERVAL, metaData.getPeriod());
+     }
+ 
+     private void write(ByteBuffer buffer, Number... values) {
+         final int numValues = values.length;
+         final int length = HEADER_LEN + VALUE_COUNT_LEN + numValues * VALUE_LEN;
+         writeHeader(buffer, TYPE_VALUES, length);
+         buffer.putShort((short) numValues);
+         buffer.put(nCopies(numValues, DATA_TYPE_GAUGE));
+         buffer.order(ByteOrder.LITTLE_ENDIAN);
+         for (Number value : values) {
+             buffer.putDouble(value.doubleValue());
+         }
+         buffer.order(ByteOrder.BIG_ENDIAN);
+     }
+ 
+     private byte[] nCopies(int n, byte value) {
+         final byte[] array = new byte[n];
+         Arrays.fill(array, value);
+         return array;
+     }
+ 
+     private void writeString(ByteBuffer buffer, int type, String val) {
+         if (val == null || val.length() == 0) {
+             return;
+         }
+         int len = HEADER_LEN + val.length() + 1;
+         writeHeader(buffer, type, len);
+         buffer.put(val.getBytes(StandardCharsets.US_ASCII)).put(NULL);
+     }
+ 
+     private void writeNumber(ByteBuffer buffer, int type, long val) {
+         writeHeader(buffer, type, NUMBER_LEN);
+         buffer.putLong(val);
+     }
+ 
+     private void writeHeader(ByteBuffer buffer, int type, int len) {
+         buffer.putShort((short) type);
+         buffer.putShort((short) len);
+     }
+ 
+     /**
+      * Signs the provided packet, so a CollectD server can verify that its authenticity.
+      * Wire format:
+      * <pre>
+      * +-------------------------------+-------------------------------+
+      * ! Type (0x0200)                 ! Length                        !
+      * +-------------------------------+-------------------------------+
+      * ! Signature (SHA2(username + packet))                           \
+      * +-------------------------------+-------------------------------+
+      * ! Username                      ! Packet                        \
+      * +---------------------------------------------------------------+
+      * </pre>
+      *
+      * @see <a href="https://collectd.org/wiki/index.php/Binary_protocol#Signature_part">
+      * Binary protocol - CollectD | Signature part</a>
+      */
+     private ByteBuffer signPacket(ByteBuffer packet) {
+         final byte[] signature = sign(password, (ByteBuffer) ByteBuffer.allocate(packet.remaining() + username.length)
+                 .put(username)
+                 .put(packet)
+                 .flip());
+         return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)
+                 .putShort((short) TYPE_SIGN_SHA256)
+                 .putShort((short) (username.length + SIGNATURE_LEN))
+                 .put(signature)
+                 .put(username)
+                 .put((ByteBuffer) packet.flip())
+                 .flip();
+     }
+ 
+     /**
+      * Encrypts the provided packet, so it's can't be eavesdropped during a transfer
+      * to a CollectD server. Wire format:
+      * <pre>
+      * +---------------------------------+-------------------------------+
+      * ! Type (0x0210)                   ! Length                        !
+      * +---------------------------------+-------------------------------+
+      * ! Username length in bytes        ! Username                      \
+      * +-----------------------------------------------------------------+
+      * ! Initialization Vector (IV)      !                               \
+      * +---------------------------------+-------------------------------+
+      * ! Encrypted bytes (AES (SHA1(packet) + packet))                   \
+      * +---------------------------------+-------------------------------+
+      * </pre>
+      *
+      * @see <a href="https://collectd.org/wiki/index.php/Binary_protocol#Encrypted_part">
+      * Binary protocol - CollectD | Encrypted part</a>
+      */
+     private ByteBuffer encryptPacket(ByteBuffer packet) {
+         final ByteBuffer payload = (ByteBuffer) ByteBuffer.allocate(SHA1_LENGTH + packet.remaining())
+                 .put(sha1(packet))
+                 .put((ByteBuffer) packet.flip())
+                 .flip();
+         final EncryptionResult er = encrypt(password, payload);
+         return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)
+                 .putShort((short) TYPE_ENCR_AES256)
+                 .putShort((short) (ENCRYPT_DATA_LEN + username.length + er.output.remaining()))
+                 .putShort((short) username.length)
+                 .put(username)
+                 .put(er.iv)
+                 .put(er.output)
+                 .flip();
+     }
+ 
+     private static byte[] sign(byte[] secret, ByteBuffer input) {
+         final Mac mac;
+         try {
+             mac = Mac.getInstance(HMAC_SHA256_ALGORITHM);
+             mac.init(new SecretKeySpec(secret, HMAC_SHA256_ALGORITHM));
+         } catch (NoSuchAlgorithmException | InvalidKeyException e) {
+             throw new RuntimeException(e);
+         }
+         mac.update(input);
+         return mac.doFinal();
+     }
+ 
+     private static EncryptionResult encrypt(byte[] password, ByteBuffer input) {
+         final Cipher cipher;
+         try {
+             cipher = Cipher.getInstance(AES_CYPHER);
+             cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(sha256(password), AES));
+         } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException e) {
+             throw new RuntimeException(e);
+         }
+         final byte[] iv;
+         try {
+             iv = cipher.getParameters().getParameterSpec(IvParameterSpec.class).getIV();
+         } catch (InvalidParameterSpecException e) {
+             throw new RuntimeException(e);
+         }
+         if (iv.length != IV_LENGTH) {
+             throw new IllegalStateException("Bad initialization vector");
+         }
+         final ByteBuffer output = ByteBuffer.allocate(input.remaining() * 2);
+         try {
+             cipher.doFinal(input, output);
+         } catch (ShortBufferException | IllegalBlockSizeException | BadPaddingException e) {
+             throw new RuntimeException(e);
+         }
+         return new EncryptionResult(iv, (ByteBuffer) output.flip());
+     }
+ 
+     private static byte[] sha256(byte[] input) {
+         try {
+             return MessageDigest.getInstance(SHA_256_ALGORITHM).digest(input);
+         } catch (NoSuchAlgorithmException e) {
+             throw new RuntimeException(e);
+         }
+     }
+ 
+     private static byte[] sha1(ByteBuffer input) {
+         try {
+             final MessageDigest digest = MessageDigest.getInstance(SHA_1_ALGORITHM);
+             digest.update(input);
+             final byte[] output = digest.digest();
+             if (output.length != SHA1_LENGTH) {
+                 throw new IllegalStateException("Bad SHA1 hash");
+             }
+             return output;
+         } catch (NoSuchAlgorithmException e) {
+             throw new RuntimeException(e);
+         }
+     }
+ 
+     private static class EncryptionResult {
+ 
+         private final byte[] iv;
+         private final ByteBuffer output;
+ 
+         private EncryptionResult(byte[] iv, ByteBuffer output) {
+             this.iv = iv;
+             this.output = output;
+         }
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-4.html new file mode 100644 index 0000000000..f76723af1c --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-4.html @@ -0,0 +1,150 @@ + + + + + + + + Coverage Report > Sanitize + + + + + + +
+ + +

Coverage Summary for Class: Sanitize (com.codahale.metrics.collectd)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
Sanitize + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 100% + + + (13/13) + +
+ +
+
+ + +
+ package com.codahale.metrics.collectd;
+ 
+ import java.util.Arrays;
+ import java.util.List;
+ 
+ /**
+  * @see <a href="https://collectd.org/wiki/index.php/Naming_schema>Collectd naming schema</a>
+  */
+ class Sanitize {
+ 
+     static final int DEFAULT_MAX_LENGTH = 63;
+ 
+     private static final char DASH = '-';
+     private static final char SLASH = '/';
+     private static final char NULL = '\0';
+     private static final char UNDERSCORE = '_';
+ 
+     private static final List<Character> INSTANCE_RESERVED = Arrays.asList(SLASH, NULL);
+     private static final List<Character> NAME_RESERVED = Arrays.asList(DASH, SLASH, NULL);
+ 
+     private final int maxLength;
+ 
+     Sanitize(int maxLength) {
+         this.maxLength = maxLength;
+     }
+ 
+     String name(String name) {
+         return sanitize(name, NAME_RESERVED);
+     }
+ 
+     String instanceName(String instanceName) {
+         return sanitize(instanceName, INSTANCE_RESERVED);
+     }
+ 
+     private String sanitize(String string, List<Character> reservedChars) {
+         final StringBuilder buffer = new StringBuilder(string.length());
+         final int len = Math.min(string.length(), maxLength);
+         for (int i = 0; i < len; i++) {
+             final char c = string.charAt(i);
+             final boolean legal = ((int) c) < 128 && !reservedChars.contains(c);
+             buffer.append(legal ? c : UNDERSCORE);
+         }
+         return buffer.toString();
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-5.html new file mode 100644 index 0000000000..668fb4856a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-5.html @@ -0,0 +1,134 @@ + + + + + + + + Coverage Report > SecurityConfiguration + + + + + + +
+ + +

Coverage Summary for Class: SecurityConfiguration (com.codahale.metrics.collectd)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SecurityConfiguration + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/8) + +
+ +
+
+ + +
+ package com.codahale.metrics.collectd;
+ 
+ public class SecurityConfiguration {
+ 
+     private final byte[] username;
+     private final byte[] password;
+     private final SecurityLevel securityLevel;
+ 
+     public SecurityConfiguration(byte[] username, byte[] password, SecurityLevel securityLevel) {
+         this.username = username;
+         this.password = password;
+         this.securityLevel = securityLevel;
+     }
+ 
+     public static SecurityConfiguration none() {
+         return new SecurityConfiguration(null, null, SecurityLevel.NONE);
+     }
+ 
+     public byte[] getUsername() {
+         return username;
+     }
+ 
+     public byte[] getPassword() {
+         return password;
+     }
+ 
+     public SecurityLevel getSecurityLevel() {
+         return securityLevel;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-6.html new file mode 100644 index 0000000000..51c6723a05 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-6.html @@ -0,0 +1,112 @@ + + + + + + + + Coverage Report > SecurityLevel + + + + + + +
+ + +

Coverage Summary for Class: SecurityLevel (com.codahale.metrics.collectd)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SecurityLevel + + 100% + + + (1/1) + + + + 100% + + + (2/2) + + + + 100% + + + (4/4) + +
+ +
+
+ + +
+ package com.codahale.metrics.collectd;
+ 
+ public enum SecurityLevel {
+ 
+     NONE,
+     SIGN,
+     ENCRYPT
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-7.html b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-7.html new file mode 100644 index 0000000000..fbc21ba61d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-7.html @@ -0,0 +1,154 @@ + + + + + + + + Coverage Report > Sender + + + + + + +
+ + +

Coverage Summary for Class: Sender (com.codahale.metrics.collectd)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
Sender + + 100% + + + (1/1) + + + + 100% + + + (5/5) + + + + 92.9% + + + (13/14) + +
+ +
+
+ + +
+ package com.codahale.metrics.collectd;
+ 
+ import java.io.IOException;
+ import java.net.InetSocketAddress;
+ import java.nio.ByteBuffer;
+ import java.nio.channels.DatagramChannel;
+ 
+ public class Sender {
+ 
+     private final String host;
+     private final int port;
+ 
+     private InetSocketAddress address;
+     private DatagramChannel channel;
+ 
+     public Sender(String host, int port) {
+         this.host = host;
+         this.port = port;
+     }
+ 
+     public void connect() throws IOException {
+         if (isConnected()) {
+             throw new IllegalStateException("Already connected");
+         }
+         if (host != null) {
+             address = new InetSocketAddress(host, port);
+         }
+         channel = DatagramChannel.open();
+     }
+ 
+     public boolean isConnected() {
+         return channel != null && !channel.socket().isClosed();
+     }
+ 
+     public void send(ByteBuffer buffer) throws IOException {
+         channel.send(buffer, address);
+     }
+ 
+     public void disconnect() throws IOException {
+         if (channel == null) {
+             return;
+         }
+         try {
+             channel.close();
+         } finally {
+             channel = null;
+         }
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index.html b/metrics-complete-report-initial-htmlReport/ns-6/index.html new file mode 100644 index 0000000000..18cd213d19 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-6/index.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..dded8f6d8e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..57274c4459 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..7f7e8dd20d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..aa894e5cca --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..27b168fe25 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_LINE.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..ef57f5c6b1 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..99b43f3da0 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..1837ecfffa --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..2fd6f03e5e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.ehcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.ehcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.ehcache + + 100% + + + (2/2) + + + + 85.2% + + + (23/27) + + + + 75.8% + + + (50/66) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-6/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-6/sources/source-1.html new file mode 100644 index 0000000000..81160edd26 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-6/sources/source-1.html @@ -0,0 +1,128 @@ + + + + + + + + Coverage Report > InstrumentedCacheDecoratorFactory + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedCacheDecoratorFactory (com.codahale.metrics.ehcache)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedCacheDecoratorFactory + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 57.1% + + + (4/7) + +
+ +
+
+ + +
+ package com.codahale.metrics.ehcache;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.SharedMetricRegistries;
+ import net.sf.ehcache.Ehcache;
+ import net.sf.ehcache.constructs.CacheDecoratorFactory;
+ 
+ import java.util.Properties;
+ 
+ public class InstrumentedCacheDecoratorFactory extends CacheDecoratorFactory {
+     @Override
+     public Ehcache createDecoratedEhcache(Ehcache cache, Properties properties) {
+         final String name = properties.getProperty("metric-registry-name");
+         final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);
+         return InstrumentedEhcache.instrument(registry, cache);
+     }
+ 
+     @Override
+     public Ehcache createDefaultDecoratedEhcache(Ehcache cache, Properties properties) {
+         final String name = properties.getProperty("metric-registry-name");
+         final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);
+         return InstrumentedEhcache.instrument(registry, cache);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-6/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-6/sources/source-2.html new file mode 100644 index 0000000000..4ca7f94df8 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-6/sources/source-2.html @@ -0,0 +1,335 @@ + + + + + + + + Coverage Report > InstrumentedEhcache + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedEhcache (com.codahale.metrics.ehcache)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedEhcache + + 100% + + + (1/1) + + + + 87.5% + + + (21/24) + + + + 78% + + + (46/59) + +
+ +
+
+ + +
+ package com.codahale.metrics.ehcache;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import net.sf.ehcache.CacheException;
+ import net.sf.ehcache.Ehcache;
+ import net.sf.ehcache.Element;
+ import net.sf.ehcache.constructs.EhcacheDecoratorAdapter;
+ import net.sf.ehcache.statistics.StatisticsGateway;
+ 
+ import java.io.Serializable;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * An instrumented {@link Ehcache} instance.
+  */
+ public class InstrumentedEhcache extends EhcacheDecoratorAdapter {
+     /**
+      * Instruments the given {@link Ehcache} instance with get and put timers
+      * and a set of gauges for Ehcache's built-in statistics:
+      * <p>
+      * <table>
+      * <caption>Ehcache timered metrics</caption>
+      * <tr>
+      * <td>{@code hits}</td>
+      * <td>The number of times a requested item was found in the
+      * cache.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code in-memory-hits}</td>
+      * <td>Number of times a requested item was found in the memory
+      * store.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code off-heap-hits}</td>
+      * <td>Number of times a requested item was found in the off-heap
+      * store.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code on-disk-hits}</td>
+      * <td>Number of times a requested item was found in the disk
+      * store.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code misses}</td>
+      * <td>Number of times a requested item was not found in the
+      * cache.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code in-memory-misses}</td>
+      * <td>Number of times a requested item was not found in the memory
+      * store.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code off-heap-misses}</td>
+      * <td>Number of times a requested item was not found in the
+      * off-heap store.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code on-disk-misses}</td>
+      * <td>Number of times a requested item was not found in the disk
+      * store.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code objects}</td>
+      * <td>Number of elements stored in the cache.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code in-memory-objects}</td>
+      * <td>Number of objects in the memory store.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code off-heap-objects}</td>
+      * <td>Number of objects in the off-heap store.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code on-disk-objects}</td>
+      * <td>Number of objects in the disk store.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code mean-get-time}</td>
+      * <td>The average get time. Because ehcache support JDK1.4.2, each
+      * get time uses {@link System#currentTimeMillis()}, rather than
+      * nanoseconds. The accuracy is thus limited.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code mean-search-time}</td>
+      * <td>The average execution time (in milliseconds) within the last
+      * sample period.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code eviction-count}</td>
+      * <td>The number of cache evictions, since the cache was created,
+      * or statistics were cleared.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code searches-per-second}</td>
+      * <td>The number of search executions that have completed in the
+      * last second.</td>
+      * </tr>
+      * <tr>
+      * <td>{@code accuracy}</td>
+      * <td>A human readable description of the accuracy setting. One of
+      * "None", "Best Effort" or "Guaranteed".</td>
+      * </tr>
+      * </table>
+      * <p>
+      * <b>N.B.: This enables Ehcache's sampling statistics with an accuracy
+      * level of "none."</b>
+      *
+      * @param cache    an {@link Ehcache} instance
+      * @param registry a {@link MetricRegistry}
+      * @return an instrumented decorator for {@code cache}
+      * @see StatisticsGateway
+      */
+     public static Ehcache instrument(MetricRegistry registry, final Ehcache cache) {
+ 
+         final String prefix = name(cache.getClass(), cache.getName());
+         registry.registerGauge(name(prefix, "hits"),
+                 () -> cache.getStatistics().cacheHitCount());
+ 
+         registry.registerGauge(name(prefix, "in-memory-hits"),
+                 () -> cache.getStatistics().localHeapHitCount());
+ 
+         registry.registerGauge(name(prefix, "off-heap-hits"),
+                 () -> cache.getStatistics().localOffHeapHitCount());
+ 
+         registry.registerGauge(name(prefix, "on-disk-hits"),
+                 () -> cache.getStatistics().localDiskHitCount());
+ 
+         registry.registerGauge(name(prefix, "misses"),
+                 () -> cache.getStatistics().cacheMissCount());
+ 
+         registry.registerGauge(name(prefix, "in-memory-misses"),
+                 () -> cache.getStatistics().localHeapMissCount());
+ 
+         registry.registerGauge(name(prefix, "off-heap-misses"),
+                 () -> cache.getStatistics().localOffHeapMissCount());
+ 
+         registry.registerGauge(name(prefix, "on-disk-misses"),
+                 () -> cache.getStatistics().localDiskMissCount());
+ 
+         registry.registerGauge(name(prefix, "objects"),
+                 () -> cache.getStatistics().getSize());
+ 
+         registry.registerGauge(name(prefix, "in-memory-objects"),
+                 () -> cache.getStatistics().getLocalHeapSize());
+ 
+         registry.registerGauge(name(prefix, "off-heap-objects"),
+                 () -> cache.getStatistics().getLocalOffHeapSize());
+ 
+         registry.registerGauge(name(prefix, "on-disk-objects"),
+                 () -> cache.getStatistics().getLocalDiskSize());
+ 
+         registry.registerGauge(name(prefix, "mean-get-time"),
+                 () -> cache.getStatistics().cacheGetOperation().latency().average().value());
+ 
+         registry.registerGauge(name(prefix, "mean-search-time"),
+                 () -> cache.getStatistics().cacheSearchOperation().latency().average().value());
+ 
+         registry.registerGauge(name(prefix, "eviction-count"),
+                 () -> cache.getStatistics().cacheEvictionOperation().count().value());
+ 
+         registry.registerGauge(name(prefix, "searches-per-second"),
+                 () -> cache.getStatistics().cacheSearchOperation().rate().value());
+ 
+         registry.registerGauge(name(prefix, "writer-queue-size"),
+                 () -> cache.getStatistics().getWriterQueueLength());
+ 
+         return new InstrumentedEhcache(registry, cache);
+     }
+ 
+     private final Timer getTimer, putTimer;
+ 
+     private InstrumentedEhcache(MetricRegistry registry, Ehcache cache) {
+         super(cache);
+         this.getTimer = registry.timer(name(cache.getClass(), cache.getName(), "gets"));
+         this.putTimer = registry.timer(name(cache.getClass(), cache.getName(), "puts"));
+     }
+ 
+     @Override
+     public Element get(Object key) throws IllegalStateException, CacheException {
+         final Timer.Context ctx = getTimer.time();
+         try {
+             return underlyingCache.get(key);
+         } finally {
+             ctx.stop();
+         }
+     }
+ 
+     @Override
+     public Element get(Serializable key) throws IllegalStateException, CacheException {
+         final Timer.Context ctx = getTimer.time();
+         try {
+             return underlyingCache.get(key);
+         } finally {
+             ctx.stop();
+         }
+     }
+ 
+     @Override
+     public void put(Element element) throws IllegalArgumentException, IllegalStateException, CacheException {
+         final Timer.Context ctx = putTimer.time();
+         try {
+             underlyingCache.put(element);
+         } finally {
+             ctx.stop();
+         }
+     }
+ 
+     @Override
+     public void put(Element element, boolean doNotNotifyCacheReplicators) throws IllegalArgumentException, IllegalStateException, CacheException {
+         final Timer.Context ctx = putTimer.time();
+         try {
+             underlyingCache.put(element, doNotNotifyCacheReplicators);
+         } finally {
+             ctx.stop();
+         }
+     }
+ 
+     @Override
+     public Element putIfAbsent(Element element) throws NullPointerException {
+         final Timer.Context ctx = putTimer.time();
+         try {
+             return underlyingCache.putIfAbsent(element);
+         } finally {
+             ctx.stop();
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index.html b/metrics-complete-report-initial-htmlReport/ns-7/index.html new file mode 100644 index 0000000000..4408f0464d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-7/index.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..9e9f09fd37 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..c46b00fa03 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..51ea9452d6 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..4e238b6730 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..2f2cb780e5 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_LINE.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..5842cf99a0 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..16dc24a9e6 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..120070bd32 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..72c28d3e1b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,278 @@ + + + + + + Coverage Report > com.codahale.metrics.graphite + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.graphite

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.graphite + + 77.8% + + + (7/9) + + + + 63.9% + + + (62/97) + + + + 58% + + + (215/371) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
PickledGraphite + + 50% + + + (1/2) + + + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
GraphiteReporter + + 100% + + + (2/2) + + + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
GraphiteRabbitMQ + + 50% + + + (1/2) + + + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-1.html new file mode 100644 index 0000000000..b85b63c5fc --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-1.html @@ -0,0 +1,305 @@ + + + + + + + + Coverage Report > Graphite + + + + + + +
+ + +

Coverage Summary for Class: Graphite (com.codahale.metrics.graphite)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
Graphite + + 100% + + + (1/1) + + + + 64.3% + + + (9/14) + + + + 53.4% + + + (31/58) + +
+ +
+
+ + +
+ package com.codahale.metrics.graphite;
+ 
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import javax.net.SocketFactory;
+ import java.io.BufferedWriter;
+ import java.io.IOException;
+ import java.io.OutputStreamWriter;
+ import java.io.Writer;
+ import java.net.InetSocketAddress;
+ import java.net.Socket;
+ import java.net.UnknownHostException;
+ import java.nio.charset.Charset;
+ 
+ import static java.nio.charset.StandardCharsets.UTF_8;
+ import static java.util.Objects.requireNonNull;
+ 
+ /**
+  * A client to a Carbon server via TCP.
+  */
+ public class Graphite implements GraphiteSender {
+     // this may be optimistic about Carbon/Graphite
+ 
+     private final String hostname;
+     private final int port;
+     private final InetSocketAddress address;
+     private final SocketFactory socketFactory;
+     private final Charset charset;
+ 
+     private Socket socket;
+     private Writer writer;
+     private int failures;
+ 
+     private static final Logger LOGGER = LoggerFactory.getLogger(Graphite.class);
+ 
+     /**
+      * Creates a new client which connects to the given address using the default
+      * {@link SocketFactory}.
+      *
+      * @param hostname The hostname of the Carbon server
+      * @param port     The port of the Carbon server
+      */
+     public Graphite(String hostname, int port) {
+         this(hostname, port, SocketFactory.getDefault());
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address and socket factory.
+      *
+      * @param hostname      The hostname of the Carbon server
+      * @param port          The port of the Carbon server
+      * @param socketFactory the socket factory
+      */
+     public Graphite(String hostname, int port, SocketFactory socketFactory) {
+         this(hostname, port, socketFactory, UTF_8);
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address and socket factory using the given
+      * character set.
+      *
+      * @param hostname      The hostname of the Carbon server
+      * @param port          The port of the Carbon server
+      * @param socketFactory the socket factory
+      * @param charset       the character set used by the server
+      */
+     public Graphite(String hostname, int port, SocketFactory socketFactory, Charset charset) {
+         if (hostname == null || hostname.isEmpty()) {
+             throw new IllegalArgumentException("hostname must not be null or empty");
+         }
+ 
+         if (port < 0 || port > 65535) {
+             throw new IllegalArgumentException("port must be a valid IP port (0-65535)");
+         }
+ 
+         this.hostname = hostname;
+         this.port = port;
+         this.address = null;
+         this.socketFactory = requireNonNull(socketFactory, "socketFactory must not be null");
+         this.charset = requireNonNull(charset, "charset must not be null");
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address using the default
+      * {@link SocketFactory}.
+      *
+      * @param address the address of the Carbon server
+      */
+     public Graphite(InetSocketAddress address) {
+         this(address, SocketFactory.getDefault());
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address and socket factory.
+      *
+      * @param address       the address of the Carbon server
+      * @param socketFactory the socket factory
+      */
+     public Graphite(InetSocketAddress address, SocketFactory socketFactory) {
+         this(address, socketFactory, UTF_8);
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address and socket factory using the given
+      * character set.
+      *
+      * @param address       the address of the Carbon server
+      * @param socketFactory the socket factory
+      * @param charset       the character set used by the server
+      */
+     public Graphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset) {
+         this.hostname = null;
+         this.port = -1;
+         this.address = requireNonNull(address, "address must not be null");
+         this.socketFactory = requireNonNull(socketFactory, "socketFactory must not be null");
+         this.charset = requireNonNull(charset, "charset must not be null");
+     }
+ 
+     @Override
+     public void connect() throws IllegalStateException, IOException {
+         if (isConnected()) {
+             throw new IllegalStateException("Already connected");
+         }
+         InetSocketAddress address = this.address;
+         // the previous dns retry logic did not work, as address.getAddress would always return the cached value
+         // this version of the simplified logic will always cause a dns request if hostname has been supplied.
+         // InetAddress.getByName forces the dns lookup
+         // if an InetSocketAddress was supplied at create time that will take precedence.
+         if (address == null || address.getHostName() == null && hostname != null) {
+             address = new InetSocketAddress(hostname, port);
+         }
+ 
+         if (address.getAddress() == null) {
+             throw new UnknownHostException(address.getHostName());
+         }
+ 
+         this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());
+         this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));
+     }
+ 
+     @Override
+     public boolean isConnected() {
+         return socket != null && socket.isConnected() && !socket.isClosed();
+     }
+ 
+     @Override
+     public void send(String name, String value, long timestamp) throws IOException {
+         try {
+             writer.write(sanitize(name));
+             writer.write(' ');
+             writer.write(sanitize(value));
+             writer.write(' ');
+             writer.write(Long.toString(timestamp));
+             writer.write('\n');
+             this.failures = 0;
+         } catch (IOException e) {
+             failures++;
+             throw e;
+         }
+     }
+ 
+     @Override
+     public int getFailures() {
+         return failures;
+     }
+ 
+     @Override
+     public void flush() throws IOException {
+         if (writer != null) {
+             writer.flush();
+         }
+     }
+ 
+     @Override
+     public void close() throws IOException {
+         try {
+             if (writer != null) {
+                 writer.close();
+             }
+         } catch (IOException ex) {
+             LOGGER.debug("Error closing writer", ex);
+         } finally {
+             this.writer = null;
+         }
+ 
+         try {
+             if (socket != null) {
+                 socket.close();
+             }
+         } catch (IOException ex) {
+             LOGGER.debug("Error closing socket", ex);
+         } finally {
+             this.socket = null;
+         }
+     }
+ 
+     protected String sanitize(String s) {
+         return GraphiteSanitize.sanitize(s);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-2.html new file mode 100644 index 0000000000..398f4e3a79 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-2.html @@ -0,0 +1,293 @@ + + + + + + + + Coverage Report > GraphiteRabbitMQ + + + + + + +
+ + +

Coverage Summary for Class: GraphiteRabbitMQ (com.codahale.metrics.graphite)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
GraphiteRabbitMQ + + 72.7% + + + (8/11) + + + + 63.2% + + + (24/38) + +
GraphiteRabbitMQ$1 + + 0% + + + (0/2) + + + + 0% + + + (0/3) + +
Total + + 61.5% + + + (8/13) + + + + 58.5% + + + (24/41) + +
+ +
+
+ + +
+ package com.codahale.metrics.graphite;
+ 
+ import com.rabbitmq.client.Channel;
+ import com.rabbitmq.client.Connection;
+ import com.rabbitmq.client.ConnectionFactory;
+ import com.rabbitmq.client.DefaultSocketConfigurator;
+ 
+ import java.io.IOException;
+ import java.net.Socket;
+ import java.util.concurrent.TimeoutException;
+ 
+ import static java.nio.charset.StandardCharsets.UTF_8;
+ 
+ /**
+  * A rabbit-mq client to a Carbon server.
+  */
+ public class GraphiteRabbitMQ implements GraphiteSender {
+ 
+     private static final Integer DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS = 500;
+     private static final Integer DEFAULT_RABBIT_SOCKET_TIMEOUT_MS = 5000;
+     private static final Integer DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC = 10;
+ 
+     private ConnectionFactory connectionFactory;
+     private Connection connection;
+     private Channel channel;
+     private String exchange;
+ 
+     private int failures;
+ 
+     /**
+      * Creates a new client with a given a {@link com.rabbitmq.client.ConnectionFactory} and an amqp exchange
+      *
+      * @param connectionFactory the {@link com.rabbitmq.client.ConnectionFactory} used to establish connection and publish to graphite server
+      * @param exchange          the amqp exchange
+      */
+     public GraphiteRabbitMQ(final ConnectionFactory connectionFactory, final String exchange) {
+         this.connectionFactory = connectionFactory;
+         this.exchange = exchange;
+     }
+ 
+     /**
+      * Creates a new client given connection details
+      *
+      * @param rabbitHost     the rabbitmq server host
+      * @param rabbitPort     the rabbitmq server port
+      * @param rabbitUsername the rabbitmq server username
+      * @param rabbitPassword the rabbitmq server password
+      * @param exchange       the amqp exchange
+      */
+     public GraphiteRabbitMQ(
+             final String rabbitHost,
+             final Integer rabbitPort,
+             final String rabbitUsername,
+             final String rabbitPassword,
+             final String exchange) {
+ 
+         this(rabbitHost,
+                 rabbitPort,
+                 rabbitUsername,
+                 rabbitPassword,
+                 exchange,
+                 DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS,
+                 DEFAULT_RABBIT_SOCKET_TIMEOUT_MS,
+                 DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC);
+     }
+ 
+     /**
+      * Creates a new client given connection details
+      *
+      * @param rabbitHost                        the rabbitmq server host
+      * @param rabbitPort                        the rabbitmq server port
+      * @param rabbitUsername                    the rabbitmq server username
+      * @param rabbitPassword                    the rabbitmq server password
+      * @param exchange                          the amqp exchange
+      * @param rabbitConnectionTimeoutMS         the connection timeout in milliseconds
+      * @param rabbitSocketTimeoutMS             the socket timeout in milliseconds
+      * @param rabbitRequestedHeartbeatInSeconds the hearthbeat in seconds
+      */
+     public GraphiteRabbitMQ(
+             final String rabbitHost,
+             final Integer rabbitPort,
+             final String rabbitUsername,
+             final String rabbitPassword,
+             final String exchange,
+             final Integer rabbitConnectionTimeoutMS,
+             final Integer rabbitSocketTimeoutMS,
+             final Integer rabbitRequestedHeartbeatInSeconds) {
+ 
+         this.exchange = exchange;
+ 
+         this.connectionFactory = new ConnectionFactory();
+ 
+         connectionFactory.setSocketConfigurator(new DefaultSocketConfigurator() {
+             @Override
+             public void configure(Socket socket) throws IOException {
+                 super.configure(socket);
+                 socket.setSoTimeout(rabbitSocketTimeoutMS);
+             }
+         });
+ 
+         connectionFactory.setConnectionTimeout(rabbitConnectionTimeoutMS);
+         connectionFactory.setRequestedHeartbeat(rabbitRequestedHeartbeatInSeconds);
+         connectionFactory.setHost(rabbitHost);
+         connectionFactory.setPort(rabbitPort);
+         connectionFactory.setUsername(rabbitUsername);
+         connectionFactory.setPassword(rabbitPassword);
+     }
+ 
+     @Override
+     public void connect() throws IllegalStateException, IOException {
+         if (isConnected()) {
+             throw new IllegalStateException("Already connected");
+         }
+ 
+         try {
+             connection = connectionFactory.newConnection();
+         } catch (TimeoutException e) {
+             throw new IllegalStateException(e);
+         }
+         channel = connection.createChannel();
+     }
+ 
+     @Override
+     public boolean isConnected() {
+         return connection != null && connection.isOpen();
+     }
+ 
+     @Override
+     public void send(String name, String value, long timestamp) throws IOException {
+         try {
+             final String sanitizedName = sanitize(name);
+             final String sanitizedValue = sanitize(value);
+ 
+             final String message = sanitizedName + ' ' + sanitizedValue + ' ' + Long.toString(timestamp) + '\n';
+             channel.basicPublish(exchange, sanitizedName, null, message.getBytes(UTF_8));
+         } catch (IOException e) {
+             failures++;
+             throw e;
+         }
+     }
+ 
+     @Override
+     public void flush() throws IOException {
+         // Nothing to do
+     }
+ 
+     @Override
+     public void close() throws IOException {
+         if (connection != null) {
+             connection.close();
+         }
+     }
+ 
+     @Override
+     public int getFailures() {
+         return failures;
+     }
+ 
+     public String sanitize(String s) {
+         return GraphiteSanitize.sanitize(s);
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-3.html new file mode 100644 index 0000000000..d06444e84b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-3.html @@ -0,0 +1,655 @@ + + + + + + + + Coverage Report > GraphiteReporter + + + + + + +
+ + +

Coverage Summary for Class: GraphiteReporter (com.codahale.metrics.graphite)

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
GraphiteReporter + + 95.2% + + + (20/21) + + + + 90.5% + + + (95/105) + +
GraphiteReporter$1
GraphiteReporter$Builder + + 85.7% + + + (12/14) + + + + 88.6% + + + (31/35) + +
Total + + 91.4% + + + (32/35) + + + + 90% + + + (126/140) + +
+ +
+
+ + +
+ package com.codahale.metrics.graphite;
+ 
+ import com.codahale.metrics.Clock;
+ import com.codahale.metrics.Counter;
+ import com.codahale.metrics.Gauge;
+ import com.codahale.metrics.Histogram;
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.Metered;
+ import com.codahale.metrics.MetricAttribute;
+ import com.codahale.metrics.MetricFilter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.ScheduledReporter;
+ import com.codahale.metrics.Snapshot;
+ import com.codahale.metrics.Timer;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import java.io.IOException;
+ import java.util.Collections;
+ import java.util.Locale;
+ import java.util.Map;
+ import java.util.Set;
+ import java.util.SortedMap;
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.TimeUnit;
+ import java.util.function.DoubleFunction;
+ 
+ import static com.codahale.metrics.MetricAttribute.COUNT;
+ import static com.codahale.metrics.MetricAttribute.M15_RATE;
+ import static com.codahale.metrics.MetricAttribute.M1_RATE;
+ import static com.codahale.metrics.MetricAttribute.M5_RATE;
+ import static com.codahale.metrics.MetricAttribute.MAX;
+ import static com.codahale.metrics.MetricAttribute.MEAN;
+ import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
+ import static com.codahale.metrics.MetricAttribute.MIN;
+ import static com.codahale.metrics.MetricAttribute.P50;
+ import static com.codahale.metrics.MetricAttribute.P75;
+ import static com.codahale.metrics.MetricAttribute.P95;
+ import static com.codahale.metrics.MetricAttribute.P98;
+ import static com.codahale.metrics.MetricAttribute.P99;
+ import static com.codahale.metrics.MetricAttribute.P999;
+ import static com.codahale.metrics.MetricAttribute.STDDEV;
+ 
+ /**
+  * A reporter which publishes metric values to a Graphite server.
+  *
+  * @see <a href="http://graphite.wikidot.com/">Graphite - Scalable Realtime Graphing</a>
+  */
+ public class GraphiteReporter extends ScheduledReporter {
+     /**
+      * Returns a new {@link Builder} for {@link GraphiteReporter}.
+      *
+      * @param registry the registry to report
+      * @return a {@link Builder} instance for a {@link GraphiteReporter}
+      */
+     public static Builder forRegistry(MetricRegistry registry) {
+         return new Builder(registry);
+     }
+ 
+     /**
+      * A builder for {@link GraphiteReporter} instances. Defaults to not using a prefix, using the
+      * default clock, converting rates to events/second, converting durations to milliseconds, and
+      * not filtering metrics.
+      */
+     public static class Builder {
+         private final MetricRegistry registry;
+         private Clock clock;
+         private String prefix;
+         private TimeUnit rateUnit;
+         private TimeUnit durationUnit;
+         private MetricFilter filter;
+         private ScheduledExecutorService executor;
+         private boolean shutdownExecutorOnStop;
+         private Set<MetricAttribute> disabledMetricAttributes;
+         private boolean addMetricAttributesAsTags;
+         private DoubleFunction<String> floatingPointFormatter;
+ 
+         private Builder(MetricRegistry registry) {
+             this.registry = registry;
+             this.clock = Clock.defaultClock();
+             this.prefix = null;
+             this.rateUnit = TimeUnit.SECONDS;
+             this.durationUnit = TimeUnit.MILLISECONDS;
+             this.filter = MetricFilter.ALL;
+             this.executor = null;
+             this.shutdownExecutorOnStop = true;
+             this.disabledMetricAttributes = Collections.emptySet();
+             this.addMetricAttributesAsTags = false;
+             this.floatingPointFormatter = DEFAULT_FP_FORMATTER;
+         }
+ 
+         /**
+          * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
+          * Default value is true.
+          * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
+          *
+          * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
+          * @return {@code this}
+          */
+         public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
+             this.shutdownExecutorOnStop = shutdownExecutorOnStop;
+             return this;
+         }
+ 
+         /**
+          * Specifies the executor to use while scheduling reporting of metrics.
+          * Default value is null.
+          * Null value leads to executor will be auto created on start.
+          *
+          * @param executor the executor to use while scheduling reporting of metrics.
+          * @return {@code this}
+          */
+         public Builder scheduleOn(ScheduledExecutorService executor) {
+             this.executor = executor;
+             return this;
+         }
+ 
+         /**
+          * Use the given {@link Clock} instance for the time.
+          *
+          * @param clock a {@link Clock} instance
+          * @return {@code this}
+          */
+         public Builder withClock(Clock clock) {
+             this.clock = clock;
+             return this;
+         }
+ 
+         /**
+          * Prefix all metric names with the given string.
+          *
+          * @param prefix the prefix for all metric names
+          * @return {@code this}
+          */
+         public Builder prefixedWith(String prefix) {
+             this.prefix = prefix;
+             return this;
+         }
+ 
+         /**
+          * Convert rates to the given time unit.
+          *
+          * @param rateUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertRatesTo(TimeUnit rateUnit) {
+             this.rateUnit = rateUnit;
+             return this;
+         }
+ 
+         /**
+          * Convert durations to the given time unit.
+          *
+          * @param durationUnit a unit of time
+          * @return {@code this}
+          */
+         public Builder convertDurationsTo(TimeUnit durationUnit) {
+             this.durationUnit = durationUnit;
+             return this;
+         }
+ 
+         /**
+          * Only report metrics which match the given filter.
+          *
+          * @param filter a {@link MetricFilter}
+          * @return {@code this}
+          */
+         public Builder filter(MetricFilter filter) {
+             this.filter = filter;
+             return this;
+         }
+ 
+         /**
+          * Don't report the passed metric attributes for all metrics (e.g. "p999", "stddev" or "m15").
+          * See {@link MetricAttribute}.
+          *
+          * @param disabledMetricAttributes a set of {@link MetricAttribute}
+          * @return {@code this}
+          */
+         public Builder disabledMetricAttributes(Set<MetricAttribute> disabledMetricAttributes) {
+             this.disabledMetricAttributes = disabledMetricAttributes;
+             return this;
+         }
+ 
+ 
+         /**
+          * Specifies whether or not metric attributes (e.g. "p999", "stddev" or "m15") should be reported in the traditional dot delimited format or in the tag based format.
+          * Without tags (default): `my.metric.p99`
+          * With tags: `my.metric;metricattribute=p99`
+          *
+          * Note that this setting only modifies the metric attribute, and will not convert any other portion of the metric name to use tags.
+          * For mor information on Graphite tag support see https://graphite.readthedocs.io/en/latest/tags.html
+          * See {@link MetricAttribute}.
+          *
+          * @param addMetricAttributesAsTags if true, then metric attributes will be added as tags
+          * @return {@code this}
+          */
+         public Builder addMetricAttributesAsTags(boolean addMetricAttributesAsTags) {
+             this.addMetricAttributesAsTags = addMetricAttributesAsTags;
+             return this;
+         }
+ 
+         /**
+          * Use custom floating point formatter.
+          *
+          * @param floatingPointFormatter a custom formatter for floating point values
+          * @return {@code this}
+          */
+         public Builder withFloatingPointFormatter(DoubleFunction<String> floatingPointFormatter) {
+             this.floatingPointFormatter = floatingPointFormatter;
+             return this;
+         }
+ 
+         /**
+          * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
+          * given {@link GraphiteSender}.
+          * <p>
+          * Present for binary compatibility
+          *
+          * @param graphite a {@link Graphite}
+          * @return a {@link GraphiteReporter}
+          */
+         public GraphiteReporter build(Graphite graphite) {
+             return build((GraphiteSender) graphite);
+         }
+ 
+         /**
+          * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
+          * given {@link GraphiteSender}.
+          *
+          * @param graphite a {@link GraphiteSender}
+          * @return a {@link GraphiteReporter}
+          */
+         public GraphiteReporter build(GraphiteSender graphite) {
+             return new GraphiteReporter(registry,
+                     graphite,
+                     clock,
+                     prefix,
+                     rateUnit,
+                     durationUnit,
+                     filter,
+                     executor,
+                     shutdownExecutorOnStop,
+                     disabledMetricAttributes,
+                     addMetricAttributesAsTags,
+                     floatingPointFormatter);
+         }
+     }
+ 
+     private static final Logger LOGGER = LoggerFactory.getLogger(GraphiteReporter.class);
+     // the Carbon plaintext format is pretty underspecified, but it seems like it just wants US-formatted digits
+     private static final DoubleFunction<String> DEFAULT_FP_FORMATTER = fp -> String.format(Locale.US, "%2.2f", fp);
+ 
+     private final GraphiteSender graphite;
+     private final Clock clock;
+     private final String prefix;
+     private final boolean addMetricAttributesAsTags;
+     private final DoubleFunction<String> floatingPointFormatter;
+   
+   
+     /**
+      * Creates a new {@link GraphiteReporter} instance.
+      *
+      * @param registry                  the {@link MetricRegistry} containing the metrics this
+      *                                  reporter will report
+      * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
+      *                                  via a transport protocol
+      * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
+      * @param prefix                    the prefix of all metric names (may be null)
+      * @param rateUnit                  the time unit of in which rates will be converted
+      * @param durationUnit              the time unit of in which durations will be converted
+      * @param filter                    the filter for which metrics to report
+      * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
+      * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
+      * @param disabledMetricAttributes  do not report specific metric attributes
+      */
+     protected GraphiteReporter(MetricRegistry registry,
+                                GraphiteSender graphite,
+                                Clock clock,
+                                String prefix,
+                                TimeUnit rateUnit,
+                                TimeUnit durationUnit,
+                                MetricFilter filter,
+                                ScheduledExecutorService executor,
+                                boolean shutdownExecutorOnStop,
+                                Set<MetricAttribute> disabledMetricAttributes) {
+         this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,
+                 disabledMetricAttributes, false);
+     }
+ 
+ 
+     /**
+      * Creates a new {@link GraphiteReporter} instance.
+      *
+      * @param registry                  the {@link MetricRegistry} containing the metrics this
+      *                                  reporter will report
+      * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
+      *                                  via a transport protocol
+      * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
+      * @param prefix                    the prefix of all metric names (may be null)
+      * @param rateUnit                  the time unit of in which rates will be converted
+      * @param durationUnit              the time unit of in which durations will be converted
+      * @param filter                    the filter for which metrics to report
+      * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
+      * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
+      * @param disabledMetricAttributes  do not report specific metric attributes
+      * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
+      */
+     protected GraphiteReporter(MetricRegistry registry,
+                                GraphiteSender graphite,
+                                Clock clock,
+                                String prefix,
+                                TimeUnit rateUnit,
+                                TimeUnit durationUnit,
+                                MetricFilter filter,
+                                ScheduledExecutorService executor,
+                                boolean shutdownExecutorOnStop,
+                                Set<MetricAttribute> disabledMetricAttributes,
+                                boolean addMetricAttributesAsTags) {
+         this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,
+                 disabledMetricAttributes, addMetricAttributesAsTags, DEFAULT_FP_FORMATTER);
+     }
+ 
+     /**
+      * Creates a new {@link GraphiteReporter} instance.
+      *
+      * @param registry                  the {@link MetricRegistry} containing the metrics this
+      *                                  reporter will report
+      * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
+      *                                  via a transport protocol
+      * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
+      * @param prefix                    the prefix of all metric names (may be null)
+      * @param rateUnit                  the time unit of in which rates will be converted
+      * @param durationUnit              the time unit of in which durations will be converted
+      * @param filter                    the filter for which metrics to report
+      * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
+      * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
+      * @param disabledMetricAttributes  do not report specific metric attributes
+      * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
+      * @param floatingPointFormatter    custom floating point formatter
+      */
+     protected GraphiteReporter(MetricRegistry registry,
+                                GraphiteSender graphite,
+                                Clock clock,
+                                String prefix,
+                                TimeUnit rateUnit,
+                                TimeUnit durationUnit,
+                                MetricFilter filter,
+                                ScheduledExecutorService executor,
+                                boolean shutdownExecutorOnStop,
+                                Set<MetricAttribute> disabledMetricAttributes,
+                                boolean addMetricAttributesAsTags,
+                                DoubleFunction<String> floatingPointFormatter) {
+         super(registry, "graphite-reporter", filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,
+                 disabledMetricAttributes);
+         this.graphite = graphite;
+         this.clock = clock;
+         this.prefix = prefix;
+         this.addMetricAttributesAsTags = addMetricAttributesAsTags;
+         this.floatingPointFormatter = floatingPointFormatter;
+     }
+ 
+     @Override
+     @SuppressWarnings("rawtypes")
+     public void report(SortedMap<String, Gauge> gauges,
+                        SortedMap<String, Counter> counters,
+                        SortedMap<String, Histogram> histograms,
+                        SortedMap<String, Meter> meters,
+                        SortedMap<String, Timer> timers) {
+         final long timestamp = clock.getTime() / 1000;
+ 
+         // oh it'd be lovely to use Java 7 here
+         try {
+             graphite.connect();
+ 
+             for (Map.Entry<String, Gauge> entry : gauges.entrySet()) {
+                 reportGauge(entry.getKey(), entry.getValue(), timestamp);
+             }
+ 
+             for (Map.Entry<String, Counter> entry : counters.entrySet()) {
+                 reportCounter(entry.getKey(), entry.getValue(), timestamp);
+             }
+ 
+             for (Map.Entry<String, Histogram> entry : histograms.entrySet()) {
+                 reportHistogram(entry.getKey(), entry.getValue(), timestamp);
+             }
+ 
+             for (Map.Entry<String, Meter> entry : meters.entrySet()) {
+                 reportMetered(entry.getKey(), entry.getValue(), timestamp);
+             }
+ 
+             for (Map.Entry<String, Timer> entry : timers.entrySet()) {
+                 reportTimer(entry.getKey(), entry.getValue(), timestamp);
+             }
+             graphite.flush();
+         } catch (IOException e) {
+             LOGGER.warn("Unable to report to Graphite", graphite, e);
+         } finally {
+             try {
+                 graphite.close();
+             } catch (IOException e1) {
+                 LOGGER.warn("Error closing Graphite", graphite, e1);
+             }
+         }
+     }
+ 
+     @Override
+     public void stop() {
+         try {
+             super.stop();
+         } finally {
+             try {
+                 graphite.close();
+             } catch (IOException e) {
+                 LOGGER.debug("Error disconnecting from Graphite", graphite, e);
+             }
+         }
+     }
+ 
+     private void reportTimer(String name, Timer timer, long timestamp) throws IOException {
+         final Snapshot snapshot = timer.getSnapshot();
+         sendIfEnabled(MAX, name, convertDuration(snapshot.getMax()), timestamp);
+         sendIfEnabled(MEAN, name, convertDuration(snapshot.getMean()), timestamp);
+         sendIfEnabled(MIN, name, convertDuration(snapshot.getMin()), timestamp);
+         sendIfEnabled(STDDEV, name, convertDuration(snapshot.getStdDev()), timestamp);
+         sendIfEnabled(P50, name, convertDuration(snapshot.getMedian()), timestamp);
+         sendIfEnabled(P75, name, convertDuration(snapshot.get75thPercentile()), timestamp);
+         sendIfEnabled(P95, name, convertDuration(snapshot.get95thPercentile()), timestamp);
+         sendIfEnabled(P98, name, convertDuration(snapshot.get98thPercentile()), timestamp);
+         sendIfEnabled(P99, name, convertDuration(snapshot.get99thPercentile()), timestamp);
+         sendIfEnabled(P999, name, convertDuration(snapshot.get999thPercentile()), timestamp);
+         reportMetered(name, timer, timestamp);
+     }
+ 
+     private void reportMetered(String name, Metered meter, long timestamp) throws IOException {
+         sendIfEnabled(COUNT, name, meter.getCount(), timestamp);
+         sendIfEnabled(M1_RATE, name, convertRate(meter.getOneMinuteRate()), timestamp);
+         sendIfEnabled(M5_RATE, name, convertRate(meter.getFiveMinuteRate()), timestamp);
+         sendIfEnabled(M15_RATE, name, convertRate(meter.getFifteenMinuteRate()), timestamp);
+         sendIfEnabled(MEAN_RATE, name, convertRate(meter.getMeanRate()), timestamp);
+     }
+ 
+     private void reportHistogram(String name, Histogram histogram, long timestamp) throws IOException {
+         final Snapshot snapshot = histogram.getSnapshot();
+         sendIfEnabled(COUNT, name, histogram.getCount(), timestamp);
+         sendIfEnabled(MAX, name, snapshot.getMax(), timestamp);
+         sendIfEnabled(MEAN, name, snapshot.getMean(), timestamp);
+         sendIfEnabled(MIN, name, snapshot.getMin(), timestamp);
+         sendIfEnabled(STDDEV, name, snapshot.getStdDev(), timestamp);
+         sendIfEnabled(P50, name, snapshot.getMedian(), timestamp);
+         sendIfEnabled(P75, name, snapshot.get75thPercentile(), timestamp);
+         sendIfEnabled(P95, name, snapshot.get95thPercentile(), timestamp);
+         sendIfEnabled(P98, name, snapshot.get98thPercentile(), timestamp);
+         sendIfEnabled(P99, name, snapshot.get99thPercentile(), timestamp);
+         sendIfEnabled(P999, name, snapshot.get999thPercentile(), timestamp);
+     }
+ 
+     private void sendIfEnabled(MetricAttribute type, String name, double value, long timestamp) throws IOException {
+         if (getDisabledMetricAttributes().contains(type)) {
+             return;
+         }
+         graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);
+     }
+ 
+     private void sendIfEnabled(MetricAttribute type, String name, long value, long timestamp) throws IOException {
+         if (getDisabledMetricAttributes().contains(type)) {
+             return;
+         }
+         graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);
+     }
+ 
+     private void reportCounter(String name, Counter counter, long timestamp) throws IOException {
+         graphite.send(prefix(appendMetricAttribute(name, COUNT.getCode())), format(counter.getCount()), timestamp);
+     }
+ 
+     private void reportGauge(String name, Gauge<?> gauge, long timestamp) throws IOException {
+         final String value = format(gauge.getValue());
+         if (value != null) {
+             graphite.send(prefix(name), value, timestamp);
+         }
+     }
+ 
+     private String format(Object o) {
+         if (o instanceof Float) {
+             return format(((Float) o).doubleValue());
+         } else if (o instanceof Double) {
+             return format(((Double) o).doubleValue());
+         } else if (o instanceof Byte) {
+             return format(((Byte) o).longValue());
+         } else if (o instanceof Short) {
+             return format(((Short) o).longValue());
+         } else if (o instanceof Integer) {
+             return format(((Integer) o).longValue());
+         } else if (o instanceof Long) {
+             return format(((Long) o).longValue());
+         } else if (o instanceof Number) {
+             return format(((Number) o).doubleValue());
+         } else if (o instanceof Boolean) {
+             return format(((Boolean) o) ? 1 : 0);
+         }
+         return null;
+     }
+ 
+     private String prefix(String name) {
+         return MetricRegistry.name(prefix, name);
+     }
+ 
+     private String appendMetricAttribute(String name, String metricAttribute){
+         if (addMetricAttributesAsTags){
+             return name + ";metricattribute=" + metricAttribute;
+         }
+         return name + "." + metricAttribute;
+     }
+ 
+     private String format(long n) {
+         return Long.toString(n);
+     }
+ 
+     protected String format(double v) {
+         return floatingPointFormatter.apply(v);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-4.html new file mode 100644 index 0000000000..97ab0418f2 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-4.html @@ -0,0 +1,120 @@ + + + + + + + + Coverage Report > GraphiteSanitize + + + + + + +
+ + +

Coverage Summary for Class: GraphiteSanitize (com.codahale.metrics.graphite)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
GraphiteSanitize + + 100% + + + (1/1) + + + + 66.7% + + + (2/3) + + + + 66.7% + + + (2/3) + +
+ +
+
+ + +
+ package com.codahale.metrics.graphite;
+ 
+ import java.util.regex.Pattern;
+ 
+ class GraphiteSanitize {
+ 
+     private static final Pattern WHITESPACE = Pattern.compile("[\\s]+");
+     private static final String DASH = "-";
+ 
+     /**
+      * Trims the string and replaces all whitespace characters with the provided symbol
+      */
+     static String sanitize(String string) {
+         return WHITESPACE.matcher(string.trim()).replaceAll(DASH);
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-5.html new file mode 100644 index 0000000000..bab1a5c73a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-5.html @@ -0,0 +1,222 @@ + + + + + + + + Coverage Report > GraphiteUDP + + + + + + +
+ + +

Coverage Summary for Class: GraphiteUDP (com.codahale.metrics.graphite)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
GraphiteUDP + + 100% + + + (1/1) + + + + 53.8% + + + (7/13) + + + + 50% + + + (17/34) + +
+ +
+
+ + +
+ package com.codahale.metrics.graphite;
+ 
+ import java.io.IOException;
+ import java.net.InetSocketAddress;
+ import java.net.InetAddress;
+ import java.nio.ByteBuffer;
+ import java.nio.channels.DatagramChannel;
+ 
+ import static java.nio.charset.StandardCharsets.UTF_8;
+ 
+ /**
+  * A client to a Carbon server using unconnected UDP
+  */
+ public class GraphiteUDP implements GraphiteSender {
+ 
+     private final String hostname;
+     private final int port;
+     private InetSocketAddress address;
+ 
+     private DatagramChannel datagramChannel = null;
+     private int failures;
+ 
+     /**
+      * Creates a new client which sends data to given address using UDP
+      *
+      * @param hostname The hostname of the Carbon server
+      * @param port     The port of the Carbon server
+      */
+     public GraphiteUDP(String hostname, int port) {
+         this.hostname = hostname;
+         this.port = port;
+         this.address = null;
+     }
+ 
+     /**
+      * Creates a new client which sends data to given address using UDP
+      *
+      * @param address the address of the Carbon server
+      */
+     public GraphiteUDP(InetSocketAddress address) {
+         this.hostname = null;
+         this.port = -1;
+         this.address = address;
+     }
+ 
+     @Override
+     public void connect() throws IllegalStateException, IOException {
+         if (isConnected()) {
+             throw new IllegalStateException("Already connected");
+         }
+ 
+         // Resolve hostname
+         if (hostname != null) {
+             address = new InetSocketAddress(InetAddress.getByName(hostname), port);
+         }
+ 
+         datagramChannel = DatagramChannel.open();
+     }
+ 
+     @Override
+     public boolean isConnected() {
+         return datagramChannel != null && !datagramChannel.socket().isClosed();
+     }
+ 
+     @Override
+     public void send(String name, String value, long timestamp) throws IOException {
+         try {
+             String str = sanitize(name) + ' ' + sanitize(value) + ' ' + Long.toString(timestamp) + '\n';
+             ByteBuffer byteBuffer = ByteBuffer.wrap(str.getBytes(UTF_8));
+             datagramChannel.send(byteBuffer, address);
+             this.failures = 0;
+         } catch (IOException e) {
+             failures++;
+             throw e;
+         }
+     }
+ 
+     @Override
+     public int getFailures() {
+         return failures;
+     }
+ 
+     @Override
+     public void flush() throws IOException {
+         // Nothing to do
+     }
+ 
+     @Override
+     public void close() throws IOException {
+         if (datagramChannel != null) {
+             try {
+                 datagramChannel.close();
+             } finally {
+                 datagramChannel = null;
+             }
+         }
+     }
+ 
+     protected String sanitize(String s) {
+         return GraphiteSanitize.sanitize(s);
+     }
+ 
+     DatagramChannel getDatagramChannel() {
+         return datagramChannel;
+     }
+ 
+     void setDatagramChannel(DatagramChannel datagramChannel) {
+         this.datagramChannel = datagramChannel;
+     }
+ 
+     InetSocketAddress getAddress() {
+         return address;
+     }
+ 
+     void setAddress(InetSocketAddress address) {
+         this.address = address;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-6.html new file mode 100644 index 0000000000..f09886697a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-6.html @@ -0,0 +1,467 @@ + + + + + + + + Coverage Report > PickledGraphite + + + + + + +
+ + +

Coverage Summary for Class: PickledGraphite (com.codahale.metrics.graphite)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
PickledGraphite + + 22.2% + + + (4/18) + + + + 16.5% + + + (15/91) + +
PickledGraphite$MetricTuple + + 0% + + + (0/1) + + + + 0% + + + (0/4) + +
Total + + 21.1% + + + (4/19) + + + + 15.8% + + + (15/95) + +
+ +
+
+ + +
+ package com.codahale.metrics.graphite;
+ 
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import javax.net.SocketFactory;
+ 
+ import java.io.BufferedWriter;
+ import java.io.ByteArrayOutputStream;
+ import java.io.IOException;
+ import java.io.OutputStream;
+ import java.io.OutputStreamWriter;
+ import java.io.Writer;
+ import java.net.InetSocketAddress;
+ import java.net.Socket;
+ import java.net.UnknownHostException;
+ import java.nio.ByteBuffer;
+ import java.nio.charset.Charset;
+ import java.util.ArrayList;
+ import java.util.List;
+ 
+ import static java.nio.charset.StandardCharsets.UTF_8;
+ 
+ /**
+  * A client to a Carbon server that sends all metrics after they have been pickled in configurable sized batches
+  */
+ public class PickledGraphite implements GraphiteSender {
+ 
+     static class MetricTuple {
+         String name;
+         long timestamp;
+         String value;
+ 
+         MetricTuple(String name, long timestamp, String value) {
+             this.name = name;
+             this.timestamp = timestamp;
+             this.value = value;
+         }
+     }
+ 
+     /**
+      * Minimally necessary pickle opcodes.
+      */
+     private static final char
+             MARK = '(',
+             STOP = '.',
+             LONG = 'L',
+             STRING = 'S',
+             APPEND = 'a',
+             LIST = 'l',
+             TUPLE = 't',
+             QUOTE = '\'',
+             LF = '\n';
+ 
+     private static final Logger LOGGER = LoggerFactory.getLogger(PickledGraphite.class);
+     private final static int DEFAULT_BATCH_SIZE = 100;
+ 
+     private int batchSize;
+     // graphite expects a python-pickled list of nested tuples.
+     private List<MetricTuple> metrics = new ArrayList<>();
+ 
+     private final String hostname;
+     private final int port;
+     private final InetSocketAddress address;
+     private final SocketFactory socketFactory;
+     private final Charset charset;
+ 
+     private Socket socket;
+     private Writer writer;
+     private int failures;
+ 
+     /**
+      * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
+      * to a batchSize of 100
+      *
+      * @param address the address of the Carbon server
+      */
+     public PickledGraphite(InetSocketAddress address) {
+         this(address, DEFAULT_BATCH_SIZE);
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address using the default {@link SocketFactory}.
+      *
+      * @param address   the address of the Carbon server
+      * @param batchSize how many metrics are bundled into a single pickle request to graphite
+      */
+     public PickledGraphite(InetSocketAddress address, int batchSize) {
+         this(address, SocketFactory.getDefault(), batchSize);
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address and socket factory.
+      *
+      * @param address       the address of the Carbon server
+      * @param socketFactory the socket factory
+      * @param batchSize     how many metrics are bundled into a single pickle request to graphite
+      */
+     public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, int batchSize) {
+         this(address, socketFactory, UTF_8, batchSize);
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address and socket factory using the given character set.
+      *
+      * @param address       the address of the Carbon server
+      * @param socketFactory the socket factory
+      * @param charset       the character set used by the server
+      * @param batchSize     how many metrics are bundled into a single pickle request to graphite
+      */
+     public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset, int batchSize) {
+         this.address = address;
+         this.hostname = null;
+         this.port = -1;
+         this.socketFactory = socketFactory;
+         this.charset = charset;
+         this.batchSize = batchSize;
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
+      * to a batchSize of 100
+      *
+      * @param hostname the hostname of the Carbon server
+      * @param port     the port of the Carbon server
+      */
+     public PickledGraphite(String hostname, int port) {
+         this(hostname, port, DEFAULT_BATCH_SIZE);
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address using the default {@link SocketFactory}.
+      *
+      * @param hostname  the hostname of the Carbon server
+      * @param port      the port of the Carbon server
+      * @param batchSize how many metrics are bundled into a single pickle request to graphite
+      */
+     public PickledGraphite(String hostname, int port, int batchSize) {
+         this(hostname, port, SocketFactory.getDefault(), batchSize);
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address and socket factory.
+      *
+      * @param hostname      the hostname of the Carbon server
+      * @param port          the port of the Carbon server
+      * @param socketFactory the socket factory
+      * @param batchSize     how many metrics are bundled into a single pickle request to graphite
+      */
+     public PickledGraphite(String hostname, int port, SocketFactory socketFactory, int batchSize) {
+         this(hostname, port, socketFactory, UTF_8, batchSize);
+     }
+ 
+     /**
+      * Creates a new client which connects to the given address and socket factory using the given character set.
+      *
+      * @param hostname      the hostname of the Carbon server
+      * @param port          the port of the Carbon server
+      * @param socketFactory the socket factory
+      * @param charset       the character set used by the server
+      * @param batchSize     how many metrics are bundled into a single pickle request to graphite
+      */
+     public PickledGraphite(String hostname, int port, SocketFactory socketFactory, Charset charset, int batchSize) {
+         this.address = null;
+         this.hostname = hostname;
+         this.port = port;
+         this.socketFactory = socketFactory;
+         this.charset = charset;
+         this.batchSize = batchSize;
+     }
+ 
+     @Override
+     public void connect() throws IllegalStateException, IOException {
+         if (isConnected()) {
+             throw new IllegalStateException("Already connected");
+         }
+         InetSocketAddress address = this.address;
+         if (address == null) {
+             address = new InetSocketAddress(hostname, port);
+         }
+         if (address.getAddress() == null) {
+             throw new UnknownHostException(address.getHostName());
+         }
+ 
+         this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());
+         this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));
+     }
+ 
+     @Override
+     public boolean isConnected() {
+         return socket != null && socket.isConnected() && !socket.isClosed();
+     }
+ 
+     /**
+      * Convert the metric to a python tuple of the form:
+      * <p>
+      * (timestamp, (name, value))
+      * <p>
+      * And add it to the list of metrics. If we reach the batch size, write them out.
+      *
+      * @param name      the name of the metric
+      * @param value     the value of the metric
+      * @param timestamp the timestamp of the metric
+      * @throws IOException if there was an error sending the metric
+      */
+     @Override
+     public void send(String name, String value, long timestamp) throws IOException {
+         metrics.add(new MetricTuple(sanitize(name), timestamp, sanitize(value)));
+ 
+         if (metrics.size() >= batchSize) {
+             writeMetrics();
+         }
+     }
+ 
+     @Override
+     public void flush() throws IOException {
+         writeMetrics();
+         if (writer != null) {
+             writer.flush();
+         }
+     }
+ 
+     @Override
+     public void close() throws IOException {
+         try {
+             flush();
+             if (writer != null) {
+                 writer.close();
+             }
+         } catch (IOException ex) {
+             if (socket != null) {
+                 socket.close();
+             }
+         } finally {
+             this.socket = null;
+             this.writer = null;
+         }
+     }
+ 
+     @Override
+     public int getFailures() {
+         return failures;
+     }
+ 
+     /**
+      * 1. Run the pickler script to package all the pending metrics into a single message
+      * 2. Send the message to graphite
+      * 3. Clear out the list of metrics
+      */
+     private void writeMetrics() throws IOException {
+         if (metrics.size() > 0) {
+             try {
+                 byte[] payload = pickleMetrics(metrics);
+                 byte[] header = ByteBuffer.allocate(4).putInt(payload.length).array();
+ 
+                 @SuppressWarnings("resource")
+                 OutputStream outputStream = socket.getOutputStream();
+                 outputStream.write(header);
+                 outputStream.write(payload);
+                 outputStream.flush();
+ 
+                 if (LOGGER.isDebugEnabled()) {
+                     LOGGER.debug("Wrote {} metrics", metrics.size());
+                 }
+             } catch (IOException e) {
+                 this.failures++;
+                 throw e;
+             } finally {
+                 // if there was an error, we might miss some data. for now, drop those on the floor and
+                 // try to keep going.
+                 metrics.clear();
+             }
+ 
+         }
+     }
+ 
+     /**
+      * See: http://readthedocs.org/docs/graphite/en/1.0/feeding-carbon.html
+      *
+      * @throws IOException shouldn't happen because we write to memory.
+      */
+     byte[] pickleMetrics(List<MetricTuple> metrics) throws IOException {
+         // Extremely rough estimate of 75 bytes per message
+         ByteArrayOutputStream out = new ByteArrayOutputStream(metrics.size() * 75);
+         Writer pickled = new OutputStreamWriter(out, charset);
+ 
+         pickled.append(MARK);
+         pickled.append(LIST);
+ 
+         for (MetricTuple tuple : metrics) {
+             // start the outer tuple
+             pickled.append(MARK);
+ 
+             // the metric name is a string.
+             pickled.append(STRING);
+             // the single quotes are to match python's repr("abcd")
+             pickled.append(QUOTE);
+             pickled.append(tuple.name);
+             pickled.append(QUOTE);
+             pickled.append(LF);
+ 
+             // start the inner tuple
+             pickled.append(MARK);
+ 
+             // timestamp is a long
+             pickled.append(LONG);
+             pickled.append(Long.toString(tuple.timestamp));
+             // the trailing L is to match python's repr(long(1234))
+             pickled.append(LONG);
+             pickled.append(LF);
+ 
+             // and the value is a string.
+             pickled.append(STRING);
+             pickled.append(QUOTE);
+             pickled.append(tuple.value);
+             pickled.append(QUOTE);
+             pickled.append(LF);
+ 
+             pickled.append(TUPLE); // inner close
+             pickled.append(TUPLE); // outer close
+ 
+             pickled.append(APPEND);
+         }
+ 
+         // every pickle ends with STOP
+         pickled.append(STOP);
+ 
+         pickled.flush();
+ 
+         return out.toByteArray();
+     }
+ 
+     protected String sanitize(String s) {
+         return GraphiteSanitize.sanitize(s);
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-7.html b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-7.html new file mode 100644 index 0000000000..4d9f426a59 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-7.html @@ -0,0 +1,113 @@ + + + + + + + + Coverage Report > GraphiteSender + + + + + + +
+ + +

Coverage Summary for Class: GraphiteSender (com.codahale.metrics.graphite)

+ + + + + + + + + +
Class
GraphiteSender
+ +
+
+ + +
+ package com.codahale.metrics.graphite;
+ 
+ import java.io.Closeable;
+ import java.io.IOException;
+ 
+ public interface GraphiteSender extends Closeable {
+ 
+     /**
+      * Connects to the server.
+      *
+      * @throws IllegalStateException if the client is already connected
+      * @throws IOException           if there is an error connecting
+      */
+     void connect() throws IllegalStateException, IOException;
+ 
+     /**
+      * Sends the given measurement to the server.
+      *
+      * @param name      the name of the metric
+      * @param value     the value of the metric
+      * @param timestamp the timestamp of the metric
+      * @throws IOException if there was an error sending the metric
+      */
+     void send(String name, String value, long timestamp) throws IOException;
+ 
+     /**
+      * Flushes buffer, if applicable
+      *
+      * @throws IOException if there was an error during flushing metrics to the socket
+      */
+     void flush() throws IOException;
+ 
+     /**
+      * Returns true if ready to send data
+      */
+     boolean isConnected();
+ 
+     /**
+      * Returns the number of failed writes to the server.
+      *
+      * @return the number of failed writes to the server
+      */
+     int getFailures();
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index.html b/metrics-complete-report-initial-htmlReport/ns-8/index.html new file mode 100644 index 0000000000..94518966c0 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-8/index.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..134c144710 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..d15838ee7f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..6b02febb2a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..14cb354d76 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..04ad002d4f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_LINE.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..0b1a1840da --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..a954965094 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..83905741fd --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..3ae74420ce --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.health + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health + + 100% + + + (8/8) + + + + 97.4% + + + (74/76) + + + + 91.6% + + + (217/237) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
HealthCheckRegistry + + 100% + + + (2/2) + + + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
HealthCheck + + 100% + + + (3/3) + + + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-8/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-8/sources/source-1.html new file mode 100644 index 0000000000..e1eceadf9e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-8/sources/source-1.html @@ -0,0 +1,184 @@ + + + + + + + + Coverage Report > AsyncHealthCheckDecorator + + + + + + +
+ + +

Coverage Summary for Class: AsyncHealthCheckDecorator (com.codahale.metrics.health)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
AsyncHealthCheckDecorator + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (31/31) + +
+ +
+
+ + +
+ package com.codahale.metrics.health;
+ 
+ import com.codahale.metrics.Clock;
+ import com.codahale.metrics.health.annotation.Async;
+ 
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.ScheduledFuture;
+ 
+ /**
+  * A health check decorator to manage asynchronous executions.
+  */
+ public class AsyncHealthCheckDecorator extends HealthCheck implements Runnable {
+     private static final String NO_RESULT_YET_MESSAGE = "Waiting for first asynchronous check result.";
+     private final HealthCheck healthCheck;
+     private final ScheduledFuture<?> future;
+     private final long healthyTtl;
+     private final Clock clock;
+     private volatile Result result;
+ 
+     AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService, Clock clock) {
+         check(healthCheck != null, "healthCheck cannot be null");
+         check(executorService != null, "executorService cannot be null");
+         Async async = healthCheck.getClass().getAnnotation(Async.class);
+         check(async != null, "healthCheck must contain Async annotation");
+         check(async.period() > 0, "period cannot be less than or equal to zero");
+         check(async.initialDelay() >= 0, "initialDelay cannot be less than zero");
+ 
+ 
+         this.clock = clock;
+         this.healthCheck = healthCheck;
+         this.healthyTtl = async.unit().toMillis(async.healthyTtl() <= 0 ? 2 * async.period() : async.healthyTtl());
+         result = Async.InitialState.HEALTHY.equals(async.initialState()) ? Result.healthy(NO_RESULT_YET_MESSAGE) :
+                 Result.unhealthy(NO_RESULT_YET_MESSAGE);
+         if (Async.ScheduleType.FIXED_RATE.equals(async.scheduleType())) {
+             future = executorService.scheduleAtFixedRate(this, async.initialDelay(), async.period(), async.unit());
+         } else {
+             future = executorService.scheduleWithFixedDelay(this, async.initialDelay(), async.period(), async.unit());
+         }
+ 
+     }
+ 
+     AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService) {
+         this(healthCheck, executorService, Clock.defaultClock());
+     }
+ 
+     @Override
+     public void run() {
+         result = healthCheck.execute();
+     }
+ 
+     @Override
+     protected Result check() throws Exception {
+         long expiration = clock.getTime() - result.getTime() - healthyTtl;
+         if (expiration > 0) {
+             return Result.builder()
+                     .unhealthy()
+                     .usingClock(clock)
+                     .withMessage("Result was %s but it expired %d milliseconds ago",
+                             result.isHealthy() ? "healthy" : "unhealthy",
+                             expiration)
+                     .build();
+         }
+ 
+         return result;
+     }
+ 
+     boolean tearDown() {
+         return future.cancel(true);
+     }
+ 
+     public HealthCheck getHealthCheck() {
+         return healthCheck;
+     }
+ 
+     private static void check(boolean expression, String message) {
+         if (!expression) {
+             throw new IllegalArgumentException(message);
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-8/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-8/sources/source-2.html new file mode 100644 index 0000000000..fc788048f3 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-8/sources/source-2.html @@ -0,0 +1,546 @@ + + + + + + + + Coverage Report > HealthCheck + + + + + + +
+ + +

Coverage Summary for Class: HealthCheck (com.codahale.metrics.health)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
HealthCheck + + 100% + + + (3/3) + + + + 100% + + + (9/9) + +
HealthCheck$1
HealthCheck$MockitoMock$LDDApxy9
HealthCheck$MockitoMock$LDDApxy9$auxiliary$cPDb7ChG
HealthCheck$MockitoMock$LDDApxy9$auxiliary$xlB1E1HC
HealthCheck$Result + + 95.7% + + + (22/23) + + + + 84.5% + + + (49/58) + +
HealthCheck$ResultBuilder + + 100% + + + (10/10) + + + + 95.2% + + + (20/21) + +
Total + + 97.2% + + + (35/36) + + + + 88.6% + + + (78/88) + +
+ +
+
+ + +
+ package com.codahale.metrics.health;
+ 
+ import com.codahale.metrics.Clock;
+ 
+ import java.time.Instant;
+ import java.time.ZoneId;
+ import java.time.ZonedDateTime;
+ import java.time.format.DateTimeFormatter;
+ import java.util.Collections;
+ import java.util.LinkedHashMap;
+ import java.util.Map;
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * A health check for a component of your application.
+  */
+ public abstract class HealthCheck {
+ 
+     /**
+      * The result of a {@link HealthCheck} being run. It can be healthy (with an optional message and optional details)
+      * or unhealthy (with either an error message or a thrown exception and optional details).
+      */
+     public static class Result {
+         private static final DateTimeFormatter DATE_FORMAT_PATTERN =
+                 DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
+         private static final int PRIME = 31;
+ 
+         /**
+          * Returns a healthy {@link Result} with no additional message.
+          *
+          * @return a healthy {@link Result} with no additional message
+          */
+         public static Result healthy() {
+             return new Result(true, null, null);
+         }
+ 
+         /**
+          * Returns a healthy {@link Result} with an additional message.
+          *
+          * @param message an informative message
+          * @return a healthy {@link Result} with an additional message
+          */
+         public static Result healthy(String message) {
+             return new Result(true, message, null);
+         }
+ 
+         /**
+          * Returns a healthy {@link Result} with a formatted message.
+          * <p>
+          * Message formatting follows the same rules as {@link String#format(String, Object...)}.
+          *
+          * @param message a message format\\
+          * @param args    the arguments apply to the message format
+          * @return a healthy {@link Result} with an additional message
+          * @see String#format(String, Object...)
+          */
+         public static Result healthy(String message, Object... args) {
+             return healthy(String.format(message, args));
+         }
+ 
+         /**
+          * Returns an unhealthy {@link Result} with the given message.
+          *
+          * @param message an informative message describing how the health check failed
+          * @return an unhealthy {@link Result} with the given message
+          */
+         public static Result unhealthy(String message) {
+             return new Result(false, message, null);
+         }
+ 
+         /**
+          * Returns an unhealthy {@link Result} with a formatted message.
+          * <p>
+          * Message formatting follows the same rules as {@link String#format(String, Object...)}.
+          *
+          * @param message a message format
+          * @param args    the arguments apply to the message format
+          * @return an unhealthy {@link Result} with an additional message
+          * @see String#format(String, Object...)
+          */
+         public static Result unhealthy(String message, Object... args) {
+             return unhealthy(String.format(message, args));
+         }
+ 
+         /**
+          * Returns an unhealthy {@link Result} with the given error.
+          *
+          * @param error an exception thrown during the health check
+          * @return an unhealthy {@link Result} with the given {@code error}
+          */
+         public static Result unhealthy(Throwable error) {
+             return new Result(false, error.getMessage(), error);
+         }
+ 
+ 
+         /**
+          * Returns a new {@link ResultBuilder}
+          *
+          * @return the {@link ResultBuilder}
+          */
+         public static ResultBuilder builder() {
+             return new ResultBuilder();
+         }
+ 
+         private final boolean healthy;
+         private final String message;
+         private final Throwable error;
+         private final Map<String, Object> details;
+         private final long time;
+ 
+         private long duration; // Calculated field
+ 
+         private Result(boolean isHealthy, String message, Throwable error) {
+             this(isHealthy, message, error, null, Clock.defaultClock());
+         }
+ 
+         private Result(ResultBuilder builder) {
+             this(builder.healthy, builder.message, builder.error, builder.details, builder.clock);
+         }
+ 
+         private Result(boolean isHealthy, String message, Throwable error, Map<String, Object> details, Clock clock) {
+             this.healthy = isHealthy;
+             this.message = message;
+             this.error = error;
+             this.details = details == null ? null : Collections.unmodifiableMap(details);
+             this.time = clock.getTime();
+         }
+ 
+         /**
+          * Returns {@code true} if the result indicates the component is healthy; {@code false}
+          * otherwise.
+          *
+          * @return {@code true} if the result indicates the component is healthy
+          */
+         public boolean isHealthy() {
+             return healthy;
+         }
+ 
+         /**
+          * Returns any additional message for the result, or {@code null} if the result has no
+          * message.
+          *
+          * @return any additional message for the result, or {@code null}
+          */
+         public String getMessage() {
+             return message;
+         }
+ 
+         /**
+          * Returns any exception for the result, or {@code null} if the result has no exception.
+          *
+          * @return any exception for the result, or {@code null}
+          */
+         public Throwable getError() {
+             return error;
+         }
+ 
+         /**
+          * Returns the timestamp when the result was created as a formatted String.
+          *
+          * @return a formatted timestamp
+          */
+         public String getTimestamp() {
+             Instant currentInstant = Instant.ofEpochMilli(time);
+             ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(currentInstant, ZoneId.systemDefault());
+             return DATE_FORMAT_PATTERN.format(zonedDateTime);
+         }
+ 
+         /**
+          * Returns the time when the result was created, in milliseconds since Epoch
+          *
+          * @return the time when the result was created
+          */
+         public long getTime() {
+             return time;
+         }
+ 
+         /**
+          * Returns the duration in milliseconds that the healthcheck took to run
+          *
+          * @return the duration
+          */
+         public long getDuration() {
+             return duration;
+         }
+ 
+         /**
+          * Sets the duration in milliseconds. This will indicate the time it took to run the individual healthcheck
+          *
+          * @param duration The duration in milliseconds
+          */
+         public void setDuration(long duration) {
+             this.duration = duration;
+         }
+ 
+         public Map<String, Object> getDetails() {
+             return details;
+         }
+ 
+         @Override
+         public boolean equals(Object o) {
+             if (this == o) {
+                 return true;
+             }
+             if (o == null || getClass() != o.getClass()) {
+                 return false;
+             }
+             final Result result = (Result) o;
+             return healthy == result.healthy &&
+                     !(error != null ? !error.equals(result.error) : result.error != null) &&
+                     !(message != null ? !message.equals(result.message) : result.message != null) &&
+                     time == result.time;
+         }
+ 
+         @Override
+         public int hashCode() {
+             int result = healthy ? 1 : 0;
+             result = PRIME * result + (message != null ? message.hashCode() : 0);
+             result = PRIME * result + (error != null ? error.hashCode() : 0);
+             result = PRIME * result + (Long.hashCode(time));
+             return result;
+         }
+ 
+         @Override
+         public String toString() {
+             final StringBuilder builder = new StringBuilder("Result{isHealthy=");
+             builder.append(healthy);
+             if (message != null) {
+                 builder.append(", message=").append(message);
+             }
+             if (error != null) {
+                 builder.append(", error=").append(error);
+             }
+             builder.append(", duration=").append(duration);
+             builder.append(", timestamp=").append(getTimestamp());
+             if (details != null) {
+                 for (Map.Entry<String, Object> e : details.entrySet()) {
+                     builder.append(", ");
+                     builder.append(e.getKey())
+                             .append("=")
+                             .append(String.valueOf(e.getValue()));
+                 }
+             }
+             builder.append('}');
+             return builder.toString();
+         }
+     }
+ 
+     /**
+      * This a convenient builder for an {@link HealthCheck.Result}. It can be health (with optional message and detail)
+      * or unhealthy (with optional message, error and detail)
+      */
+     public static class ResultBuilder {
+         private boolean healthy;
+         private String message;
+         private Throwable error;
+         private Map<String, Object> details;
+         private Clock clock;
+ 
+         protected ResultBuilder() {
+             this.healthy = true;
+             this.details = new LinkedHashMap<>();
+             this.clock = Clock.defaultClock();
+         }
+ 
+         /**
+          * Configure an healthy result
+          *
+          * @return this builder with healthy status
+          */
+         public ResultBuilder healthy() {
+             this.healthy = true;
+             return this;
+         }
+ 
+         /**
+          * Configure an unhealthy result
+          *
+          * @return this builder with unhealthy status
+          */
+         public ResultBuilder unhealthy() {
+             this.healthy = false;
+             return this;
+         }
+ 
+         /**
+          * Configure an unhealthy result with an {@code error}
+          *
+          * @param error the error
+          * @return this builder with the given error
+          */
+         public ResultBuilder unhealthy(Throwable error) {
+             this.error = error;
+             return this.unhealthy().withMessage(error.getMessage());
+         }
+ 
+         /**
+          * Set an optional message
+          *
+          * @param message an informative message
+          * @return this builder with the given {@code message}
+          */
+         public ResultBuilder withMessage(String message) {
+             this.message = message;
+             return this;
+         }
+ 
+         /**
+          * Set an optional formatted message
+          * <p>
+          * Message formatting follows the same rules as {@link String#format(String, Object...)}.
+          *
+          * @param message a message format
+          * @param args    the arguments apply to the message format
+          * @return this builder with the given formatted {@code message}
+          * @see String#format(String, Object...)
+          */
+         public ResultBuilder withMessage(String message, Object... args) {
+             return withMessage(String.format(message, args));
+         }
+ 
+         /**
+          * Add an optional detail
+          *
+          * @param key  a key for this detail
+          * @param data an object representing the detail data
+          * @return this builder with the given detail added
+          */
+         public ResultBuilder withDetail(String key, Object data) {
+             if (this.details == null) {
+                 this.details = new LinkedHashMap<>();
+             }
+             this.details.put(key, data);
+             return this;
+         }
+ 
+         /**
+          * Configure this {@link ResultBuilder} to use the given {@code clock} instead of the default clock.
+          * If not specified, the default clock is {@link Clock#defaultClock()}.
+          *
+          * @param clock the {@link Clock} to use when generating the health check timestamp (useful for unit testing)
+          * @return this builder configured to use the given {@code clock}
+          */
+         public ResultBuilder usingClock(Clock clock) {
+             this.clock = clock;
+             return this;
+         }
+ 
+         public Result build() {
+             return new Result(this);
+         }
+     }
+ 
+     /**
+      * Perform a check of the application component.
+      *
+      * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
+      * Result} with a descriptive error message or exception
+      * @throws Exception if there is an unhandled error during the health check; this will result in
+      *                   a failed health check
+      */
+     protected abstract Result check() throws Exception;
+ 
+     /**
+      * Executes the health check, catching and handling any exceptions raised by {@link #check()}.
+      *
+      * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
+      * Result} with a descriptive error message or exception
+      */
+     public Result execute() {
+         long start = clock().getTick();
+         Result result;
+         try {
+             result = check();
+         } catch (Exception e) {
+             result = Result.unhealthy(e);
+         }
+         result.setDuration(TimeUnit.MILLISECONDS.convert(clock().getTick() - start, TimeUnit.NANOSECONDS));
+         return result;
+     }
+ 
+     protected Clock clock() {
+         return Clock.defaultClock();
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-8/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-8/sources/source-3.html new file mode 100644 index 0000000000..c14c96cbb2 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-8/sources/source-3.html @@ -0,0 +1,125 @@ + + + + + + + + Coverage Report > HealthCheckFilter + + + + + + +
+ + +

Coverage Summary for Class: HealthCheckFilter (com.codahale.metrics.health)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
HealthCheckFilter + + 100% + + + (1/1) + + + + 100% + + + (1/1) + + + + 100% + + + (1/1) + +
+ +
+
+ + +
+ package com.codahale.metrics.health;
+ 
+ /**
+  * A filter used to determine whether or not a health check should be reported.
+  */
+ @FunctionalInterface
+ public interface HealthCheckFilter {
+     /**
+      * Matches all health checks, regardless of type or name.
+      */
+     HealthCheckFilter ALL = (name, healthCheck) -> true;
+ 
+     /**
+      * Returns {@code true} if the health check matches the filter; {@code false} otherwise.
+      *
+      * @param name        the health check's name
+      * @param healthCheck the health check
+      * @return {@code true} if the health check matches the filter
+      */
+     boolean matches(String name, HealthCheck healthCheck);
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-8/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-8/sources/source-4.html new file mode 100644 index 0000000000..8676d96dc4 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-8/sources/source-4.html @@ -0,0 +1,418 @@ + + + + + + + + Coverage Report > HealthCheckRegistry + + + + + + +
+ + +

Coverage Summary for Class: HealthCheckRegistry (com.codahale.metrics.health)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
HealthCheckRegistry + + 94.7% + + + (18/19) + + + + 89.7% + + + (70/78) + +
HealthCheckRegistry$NamedThreadFactory + + 100% + + + (2/2) + + + + 90% + + + (9/10) + +
Total + + 95.2% + + + (20/21) + + + + 89.8% + + + (79/88) + +
+ +
+
+ + +
+ package com.codahale.metrics.health;
+ 
+ import com.codahale.metrics.health.annotation.Async;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.List;
+ import java.util.Map;
+ import java.util.NoSuchElementException;
+ import java.util.SortedMap;
+ import java.util.SortedSet;
+ import java.util.TreeMap;
+ import java.util.TreeSet;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ import java.util.concurrent.CopyOnWriteArrayList;
+ import java.util.concurrent.ExecutorService;
+ import java.util.concurrent.Future;
+ import java.util.concurrent.ScheduledExecutorService;
+ import java.util.concurrent.ScheduledThreadPoolExecutor;
+ import java.util.concurrent.ThreadFactory;
+ import java.util.concurrent.TimeUnit;
+ import java.util.concurrent.atomic.AtomicInteger;
+ 
+ import static com.codahale.metrics.health.HealthCheck.Result;
+ 
+ /**
+  * A registry for health checks.
+  */
+ public class HealthCheckRegistry {
+     private static final Logger LOGGER = LoggerFactory.getLogger(HealthCheckRegistry.class);
+     private static final int ASYNC_EXECUTOR_POOL_SIZE = 2;
+ 
+     private final ConcurrentMap<String, HealthCheck> healthChecks;
+     private final List<HealthCheckRegistryListener> listeners;
+     private final ScheduledExecutorService asyncExecutorService;
+     private final Object lock = new Object();
+ 
+     /**
+      * Creates a new {@link HealthCheckRegistry}.
+      */
+     public HealthCheckRegistry() {
+         this(ASYNC_EXECUTOR_POOL_SIZE);
+     }
+ 
+     /**
+      * Creates a new {@link HealthCheckRegistry}.
+      *
+      * @param asyncExecutorPoolSize core pool size for async health check executions
+      */
+     public HealthCheckRegistry(int asyncExecutorPoolSize) {
+         this(createExecutorService(asyncExecutorPoolSize));
+     }
+ 
+     /**
+      * Creates a new {@link HealthCheckRegistry}.
+      *
+      * @param asyncExecutorService executor service for async health check executions
+      */
+     public HealthCheckRegistry(ScheduledExecutorService asyncExecutorService) {
+         this.healthChecks = new ConcurrentHashMap<>();
+         this.listeners = new CopyOnWriteArrayList<>();
+         this.asyncExecutorService = asyncExecutorService;
+     }
+ 
+     /**
+      * Adds a {@link HealthCheckRegistryListener} to a collection of listeners that will be notified on health check
+      * registration. Listeners will be notified in the order in which they are added. The listener will be notified of all
+      * existing health checks when it first registers.
+      *
+      * @param listener listener to add
+      */
+     public void addListener(HealthCheckRegistryListener listener) {
+         listeners.add(listener);
+         for (Map.Entry<String, HealthCheck> entry : healthChecks.entrySet()) {
+             listener.onHealthCheckAdded(entry.getKey(), entry.getValue());
+         }
+     }
+ 
+     /**
+      * Removes a {@link HealthCheckRegistryListener} from this registry's collection of listeners.
+      *
+      * @param listener listener to remove
+      */
+     public void removeListener(HealthCheckRegistryListener listener) {
+         listeners.remove(listener);
+     }
+ 
+     /**
+      * Registers an application {@link HealthCheck}.
+      *
+      * @param name        the name of the health check
+      * @param healthCheck the {@link HealthCheck} instance
+      */
+     public void register(String name, HealthCheck healthCheck) {
+         HealthCheck registered;
+         synchronized (lock) {
+             if (healthChecks.containsKey(name)) {
+                 throw new IllegalArgumentException("A health check named " + name + " already exists");
+             }
+             registered = healthCheck;
+             if (healthCheck.getClass().isAnnotationPresent(Async.class)) {
+                 registered = new AsyncHealthCheckDecorator(healthCheck, asyncExecutorService);
+             }
+             healthChecks.put(name, registered);
+         }
+         onHealthCheckAdded(name, registered);
+     }
+ 
+     /**
+      * Unregisters the application {@link HealthCheck} with the given name.
+      *
+      * @param name the name of the {@link HealthCheck} instance
+      */
+     public void unregister(String name) {
+         HealthCheck healthCheck;
+         synchronized (lock) {
+             healthCheck = healthChecks.remove(name);
+             if (healthCheck instanceof AsyncHealthCheckDecorator) {
+                 ((AsyncHealthCheckDecorator) healthCheck).tearDown();
+             }
+         }
+         if (healthCheck != null) {
+             onHealthCheckRemoved(name, healthCheck);
+         }
+     }
+ 
+     /**
+      * Returns a set of the names of all registered health checks.
+      *
+      * @return the names of all registered health checks
+      */
+     public SortedSet<String> getNames() {
+         return Collections.unmodifiableSortedSet(new TreeSet<>(healthChecks.keySet()));
+     }
+ 
+     /**
+      * Returns the {@link HealthCheck} instance with a given name
+      *
+      * @param name the name of the {@link HealthCheck} instance
+      */
+     public HealthCheck getHealthCheck(String name) {
+         return healthChecks.get(name);
+     }
+ 
+     /**
+      * Runs the health check with the given name.
+      *
+      * @param name the health check's name
+      * @return the result of the health check
+      * @throws NoSuchElementException if there is no health check with the given name
+      */
+     public HealthCheck.Result runHealthCheck(String name) throws NoSuchElementException {
+         final HealthCheck healthCheck = healthChecks.get(name);
+         if (healthCheck == null) {
+             throw new NoSuchElementException("No health check named " + name + " exists");
+         }
+         return healthCheck.execute();
+     }
+ 
+     /**
+      * Runs the registered health checks and returns a map of the results.
+      *
+      * @return a map of the health check results
+      */
+     public SortedMap<String, HealthCheck.Result> runHealthChecks() {
+         return runHealthChecks(HealthCheckFilter.ALL);
+     }
+ 
+     /**
+      * Runs the registered health checks matching the filter and returns a map of the results.
+      *
+      * @param filter health check filter
+      * @return a map of the health check results
+      */
+     public SortedMap<String, HealthCheck.Result> runHealthChecks(HealthCheckFilter filter) {
+         final SortedMap<String, HealthCheck.Result> results = new TreeMap<>();
+         for (Map.Entry<String, HealthCheck> entry : healthChecks.entrySet()) {
+             final String name = entry.getKey();
+             final HealthCheck healthCheck = entry.getValue();
+             if (filter.matches(name, healthCheck)) {
+                 final Result result = entry.getValue().execute();
+                 results.put(entry.getKey(), result);
+             }
+         }
+         return Collections.unmodifiableSortedMap(results);
+     }
+ 
+     /**
+      * Runs the registered health checks in parallel and returns a map of the results.
+      *
+      * @param executor object to launch and track health checks progress
+      * @return a map of the health check results
+      */
+     public SortedMap<String, HealthCheck.Result> runHealthChecks(ExecutorService executor) {
+         return runHealthChecks(executor, HealthCheckFilter.ALL);
+     }
+ 
+     /**
+      * Runs the registered health checks matching the filter in parallel and returns a map of the results.
+      *
+      * @param executor object to launch and track health checks progress
+      * @param filter   health check filter
+      * @return a map of the health check results
+      */
+     public SortedMap<String, HealthCheck.Result> runHealthChecks(ExecutorService executor, HealthCheckFilter filter) {
+         final Map<String, Future<HealthCheck.Result>> futures = new HashMap<>();
+         for (final Map.Entry<String, HealthCheck> entry : healthChecks.entrySet()) {
+             final String name = entry.getKey();
+             final HealthCheck healthCheck = entry.getValue();
+             if (filter.matches(name, healthCheck)) {
+                 futures.put(name, executor.submit(() -> healthCheck.execute()));
+             }
+         }
+ 
+         final SortedMap<String, HealthCheck.Result> results = new TreeMap<>();
+         for (Map.Entry<String, Future<Result>> entry : futures.entrySet()) {
+             try {
+                 results.put(entry.getKey(), entry.getValue().get());
+             } catch (Exception e) {
+                 LOGGER.warn("Error executing health check {}", entry.getKey(), e);
+                 results.put(entry.getKey(), HealthCheck.Result.unhealthy(e));
+             }
+         }
+ 
+         return Collections.unmodifiableSortedMap(results);
+     }
+ 
+ 
+     private void onHealthCheckAdded(String name, HealthCheck healthCheck) {
+         for (HealthCheckRegistryListener listener : listeners) {
+             listener.onHealthCheckAdded(name, healthCheck);
+         }
+     }
+ 
+     private void onHealthCheckRemoved(String name, HealthCheck healthCheck) {
+         for (HealthCheckRegistryListener listener : listeners) {
+             listener.onHealthCheckRemoved(name, healthCheck);
+         }
+     }
+ 
+     /**
+      * Shuts down the scheduled executor for async health checks
+      */
+     public void shutdown() {
+         asyncExecutorService.shutdown(); // Disable new health checks from being submitted
+         try {
+             // Give some time to the current healtch checks to finish gracefully
+             if (!asyncExecutorService.awaitTermination(1, TimeUnit.SECONDS)) {
+                 asyncExecutorService.shutdownNow();
+             }
+         } catch (InterruptedException ie) {
+             asyncExecutorService.shutdownNow();
+             Thread.currentThread().interrupt();
+         }
+     }
+ 
+     private static ScheduledExecutorService createExecutorService(int corePoolSize) {
+         final ScheduledThreadPoolExecutor asyncExecutorService = new ScheduledThreadPoolExecutor(corePoolSize,
+                 new NamedThreadFactory("healthcheck-async-executor-"));
+         asyncExecutorService.setRemoveOnCancelPolicy(true);
+         return asyncExecutorService;
+     }
+ 
+     private static class NamedThreadFactory implements ThreadFactory {
+ 
+         private final ThreadGroup group;
+         private final AtomicInteger threadNumber = new AtomicInteger(1);
+         private final String namePrefix;
+ 
+         NamedThreadFactory(String namePrefix) {
+             SecurityManager s = System.getSecurityManager();
+             group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();
+             this.namePrefix = namePrefix;
+         }
+ 
+         @Override
+         public Thread newThread(Runnable r) {
+             Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);
+             t.setDaemon(true);
+             if (t.getPriority() != Thread.NORM_PRIORITY)
+                 t.setPriority(Thread.NORM_PRIORITY);
+             return t;
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-8/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-8/sources/source-5.html new file mode 100644 index 0000000000..8d34cfb544 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-8/sources/source-5.html @@ -0,0 +1,210 @@ + + + + + + + + Coverage Report > SharedHealthCheckRegistries + + + + + + +
+ + +

Coverage Summary for Class: SharedHealthCheckRegistries (com.codahale.metrics.health)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
SharedHealthCheckRegistries + + 100% + + + (1/1) + + + + 100% + + + (11/11) + + + + 96.6% + + + (28/29) + +
+ +
+
+ + +
+ package com.codahale.metrics.health;
+ 
+ import java.util.Set;
+ import java.util.concurrent.ConcurrentHashMap;
+ import java.util.concurrent.ConcurrentMap;
+ import java.util.concurrent.atomic.AtomicReference;
+ 
+ /**
+  * A map of shared, named health registries.
+  */
+ public class SharedHealthCheckRegistries {
+     private static final ConcurrentMap<String, HealthCheckRegistry> REGISTRIES =
+             new ConcurrentHashMap<>();
+ 
+     private static AtomicReference<String> defaultRegistryName = new AtomicReference<>();
+ 
+     /* Visible for testing */
+     static void setDefaultRegistryName(AtomicReference<String> defaultRegistryName) {
+         SharedHealthCheckRegistries.defaultRegistryName = defaultRegistryName;
+     }
+ 
+     private SharedHealthCheckRegistries() { /* singleton */ }
+ 
+     public static void clear() {
+         REGISTRIES.clear();
+     }
+ 
+     public static Set<String> names() {
+         return REGISTRIES.keySet();
+     }
+ 
+     public static void remove(String key) {
+         REGISTRIES.remove(key);
+     }
+ 
+     public static HealthCheckRegistry add(String name, HealthCheckRegistry registry) {
+         return REGISTRIES.putIfAbsent(name, registry);
+     }
+ 
+     public static HealthCheckRegistry getOrCreate(String name) {
+         final HealthCheckRegistry existing = REGISTRIES.get(name);
+         if (existing == null) {
+             final HealthCheckRegistry created = new HealthCheckRegistry();
+             final HealthCheckRegistry raced = add(name, created);
+             if (raced == null) {
+                 return created;
+             }
+             return raced;
+         }
+         return existing;
+     }
+ 
+     /**
+      * Creates a new registry and sets it as the default one under the provided name.
+      *
+      * @param name the registry name
+      * @return the default registry
+      * @throws IllegalStateException if the name has already been set
+      */
+     public synchronized static HealthCheckRegistry setDefault(String name) {
+         final HealthCheckRegistry registry = getOrCreate(name);
+         return setDefault(name, registry);
+     }
+ 
+     /**
+      * Sets the provided registry as the default one under the provided name
+      *
+      * @param name                the default registry name
+      * @param healthCheckRegistry the default registry
+      * @throws IllegalStateException if the default registry has already been set
+      */
+     public static HealthCheckRegistry setDefault(String name, HealthCheckRegistry healthCheckRegistry) {
+         if (defaultRegistryName.compareAndSet(null, name)) {
+             add(name, healthCheckRegistry);
+             return healthCheckRegistry;
+         }
+         throw new IllegalStateException("Default health check registry is already set.");
+     }
+ 
+     /**
+      * Gets the name of the default registry, if it has been set
+      *
+      * @return the default registry
+      * @throws IllegalStateException if the default has not been set
+      */
+     public static HealthCheckRegistry getDefault() {
+         final HealthCheckRegistry healthCheckRegistry = tryGetDefault();
+         if (healthCheckRegistry != null) {
+             return healthCheckRegistry;
+         }
+         throw new IllegalStateException("Default registry name has not been set.");
+     }
+ 
+     /**
+      * Same as {@link #getDefault()} except returns null when the default registry has not been set.
+      *
+      * @return the default registry or null
+      */
+     public static HealthCheckRegistry tryGetDefault() {
+         final String name = defaultRegistryName.get();
+         if (name != null) {
+             return getOrCreate(name);
+         }
+         return null;
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-8/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-8/sources/source-6.html new file mode 100644 index 0000000000..af00e9294f --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-8/sources/source-6.html @@ -0,0 +1,103 @@ + + + + + + + + Coverage Report > HealthCheckRegistryListener + + + + + + +
+ + +

Coverage Summary for Class: HealthCheckRegistryListener (com.codahale.metrics.health)

+ + + + + + + + + + + + + + + + + + +
Class
HealthCheckRegistryListener$MockitoMock$6emdc6Ec
HealthCheckRegistryListener$MockitoMock$6emdc6Ec$auxiliary$4gVc0c8a
HealthCheckRegistryListener$MockitoMock$6emdc6Ec$auxiliary$G5QVHLdb
Total
+ +
+
+ + +
+ package com.codahale.metrics.health;
+ 
+ import java.util.EventListener;
+ 
+ /**
+  * A listener contract for {@link HealthCheckRegistry} events.
+  */
+ public interface HealthCheckRegistryListener extends EventListener {
+ 
+     /**
+      * Called when a new {@link HealthCheck} is added to the registry.
+      *
+      * @param name        the name of the health check
+      * @param healthCheck the health check
+      */
+     void onHealthCheckAdded(String name, HealthCheck healthCheck);
+ 
+     /**
+      * Called when a {@link HealthCheck} is removed from the registry.
+      *
+      * @param name        the name of the health check
+      * @param healthCheck the health check
+      */
+     void onHealthCheckRemoved(String name, HealthCheck healthCheck);
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index.html b/metrics-complete-report-initial-htmlReport/ns-9/index.html new file mode 100644 index 0000000000..a164a5d5c4 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-9/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..4d395976ac --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..d39bfeff22 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..1aeab12071 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..a9699a89c6 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..3f5b80dd64 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..7d31622369 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..c32c5df8fe --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..24ce9474be --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..2a872fa51a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.annotation + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.annotation

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.annotation + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
Async + + 100% + + + (2/2) + + + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-9/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-9/sources/source-1.html new file mode 100644 index 0000000000..e69dbf2e64 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-9/sources/source-1.html @@ -0,0 +1,205 @@ + + + + + + + + Coverage Report > Async + + + + + + +
+ + +

Coverage Summary for Class: Async (com.codahale.metrics.health.annotation)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
Async$InitialState + + 100% + + + (2/2) + + + + 100% + + + (2/2) + +
Async$ScheduleType + + 100% + + + (2/2) + + + + 100% + + + (2/2) + +
Total + + 100% + + + (4/4) + + + + 100% + + + (4/4) + +
+ +
+
+ + +
+ package com.codahale.metrics.health.annotation;
+ 
+ import java.lang.annotation.ElementType;
+ import java.lang.annotation.Retention;
+ import java.lang.annotation.RetentionPolicy;
+ import java.lang.annotation.Target;
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * An annotation for marking asynchronous health check execution.
+  */
+ @Retention(RetentionPolicy.RUNTIME)
+ @Target(ElementType.TYPE)
+ public @interface Async {
+     /**
+      * Enum representing the initial health states.
+      */
+     enum InitialState {
+         HEALTHY, UNHEALTHY
+     }
+ 
+     /**
+      * Enum representing the possible schedule types.
+      */
+     enum ScheduleType {
+         FIXED_RATE, FIXED_DELAY
+     }
+ 
+     /**
+      * Period between executions.
+      *
+      * @return period
+      */
+     long period();
+ 
+     /**
+      * Scheduling type of asynchronous executions.
+      *
+      * @return schedule type
+      */
+     ScheduleType scheduleType() default ScheduleType.FIXED_RATE;
+ 
+     /**
+      * Initial delay of first execution.
+      *
+      * @return initial delay
+      */
+     long initialDelay() default 0;
+ 
+     /**
+      * Time unit of initial delay, period and healthyTtl.
+      *
+      * @return time unit
+      */
+     TimeUnit unit() default TimeUnit.SECONDS;
+ 
+     /**
+      * Initial health state until first asynchronous execution completes.
+      *
+      * @return initial health state
+      */
+     InitialState initialState() default InitialState.HEALTHY;
+ 
+     /**
+      * How long a healthy result is considered valid before being ignored.
+      *
+      * Handles cases where the asynchronous healthcheck did not run (for example thread starvation).
+      *
+      * Defaults to 2 * period
+      *
+      * @return healthy result time to live
+      */
+     long healthyTtl() default -1;
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index.html b/metrics-complete-report-initial-htmlReport/ns-a/index.html new file mode 100644 index 0000000000..33080a072b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-a/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..7b3e11bb99 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..e5b75a096a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..259657025e --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..cbe47edd0c --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..22f1e76a35 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..ebc701839a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..d568f9798b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..99a285b0a2 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..22f1771abe --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.health.jvm + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.health.jvm

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.health.jvm + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-a/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-a/sources/source-1.html new file mode 100644 index 0000000000..540dc34941 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-a/sources/source-1.html @@ -0,0 +1,142 @@ + + + + + + + + Coverage Report > ThreadDeadlockHealthCheck + + + + + + +
+ + +

Coverage Summary for Class: ThreadDeadlockHealthCheck (com.codahale.metrics.health.jvm)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
ThreadDeadlockHealthCheck + + 100% + + + (1/1) + + + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
+ +
+
+ + +
+ package com.codahale.metrics.health.jvm;
+ 
+ import com.codahale.metrics.health.HealthCheck;
+ import com.codahale.metrics.jvm.ThreadDeadlockDetector;
+ 
+ import java.util.Set;
+ 
+ /**
+  * A health check which returns healthy if no threads are deadlocked.
+  */
+ public class ThreadDeadlockHealthCheck extends HealthCheck {
+     private final ThreadDeadlockDetector detector;
+ 
+     /**
+      * Creates a new health check.
+      */
+     public ThreadDeadlockHealthCheck() {
+         this(new ThreadDeadlockDetector());
+     }
+ 
+     /**
+      * Creates a new health check with the given detector.
+      *
+      * @param detector a thread deadlock detector
+      */
+     public ThreadDeadlockHealthCheck(ThreadDeadlockDetector detector) {
+         this.detector = detector;
+     }
+ 
+     @Override
+     protected Result check() throws Exception {
+         final Set<String> threads = detector.getDeadlockedThreads();
+         if (threads.isEmpty()) {
+             return Result.healthy();
+         }
+         return Result.unhealthy(threads.toString());
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index.html b/metrics-complete-report-initial-htmlReport/ns-b/index.html new file mode 100644 index 0000000000..cf4f3d1d14 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-b/index.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..b1ffa0aaea --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..9742896175 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..b8f1ca08c6 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..645f445c84 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..70ebdc2019 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_LINE.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..d7a8f962fd --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..9634959ecc --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..8d8b9c6423 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..ead8e955db --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,170 @@ + + + + + + Coverage Report > com.codahale.metrics.httpasyncclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpasyncclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpasyncclient + + 75% + + + (3/4) + + + + 50% + + + (11/22) + + + + 47.6% + + + (20/42) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedNHttpClientBuilder + + 100% + + + (3/3) + + + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-b/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-b/sources/source-1.html new file mode 100644 index 0000000000..f1d33e63b9 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-b/sources/source-1.html @@ -0,0 +1,140 @@ + + + + + + + + Coverage Report > InstrumentedNClientConnManager + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedNClientConnManager (com.codahale.metrics.httpasyncclient)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedNClientConnManager + + 0% + + + (0/1) + + + + 0% + + + (0/5) + + + + 0% + + + (0/9) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpasyncclient;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.apache.http.config.Registry;
+ import org.apache.http.conn.DnsResolver;
+ import org.apache.http.conn.SchemePortResolver;
+ import org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager;
+ import org.apache.http.nio.conn.ManagedNHttpClientConnection;
+ import org.apache.http.nio.conn.NHttpClientConnectionManager;
+ import org.apache.http.nio.conn.NHttpConnectionFactory;
+ import org.apache.http.nio.conn.SchemeIOSessionStrategy;
+ import org.apache.http.nio.reactor.ConnectingIOReactor;
+ 
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ public class InstrumentedNClientConnManager extends PoolingNHttpClientConnectionManager {
+ 
+     public InstrumentedNClientConnManager(final ConnectingIOReactor ioreactor, final NHttpConnectionFactory<ManagedNHttpClientConnection> connFactory, final SchemePortResolver schemePortResolver, final MetricRegistry metricRegistry, final Registry<SchemeIOSessionStrategy> iosessionFactoryRegistry, final long timeToLive, final TimeUnit tunit, final DnsResolver dnsResolver, final String name) {
+         super(ioreactor, connFactory, iosessionFactoryRegistry, schemePortResolver, dnsResolver, timeToLive, tunit);
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, "available-connections"),
+                 () -> getTotalStats().getAvailable());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, "leased-connections"),
+                 () -> getTotalStats().getLeased());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, "max-connections"),
+                 () -> getTotalStats().getMax());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, "pending-connections"),
+                 () -> getTotalStats().getPending());
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-b/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-b/sources/source-2.html new file mode 100644 index 0000000000..fcba0b83da --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-b/sources/source-2.html @@ -0,0 +1,268 @@ + + + + + + + + Coverage Report > InstrumentedNHttpClientBuilder + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedNHttpClientBuilder (com.codahale.metrics.httpasyncclient)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedNHttpClientBuilder + + 71.4% + + + (5/7) + + + + 81.8% + + + (9/11) + +
InstrumentedNHttpClientBuilder$1 + + 60% + + + (3/5) + + + + 55.6% + + + (5/9) + +
InstrumentedNHttpClientBuilder$TimingFutureCallback + + 60% + + + (3/5) + + + + 46.2% + + + (6/13) + +
Total + + 64.7% + + + (11/17) + + + + 60.6% + + + (20/33) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpasyncclient;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.httpclient.HttpClientMetricNameStrategies;
+ import com.codahale.metrics.httpclient.HttpClientMetricNameStrategy;
+ 
+ import java.io.IOException;
+ import java.util.concurrent.Future;
+ 
+ import org.apache.http.HttpException;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.concurrent.FutureCallback;
+ import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
+ import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
+ import org.apache.http.nio.protocol.HttpAsyncRequestProducer;
+ import org.apache.http.nio.protocol.HttpAsyncResponseConsumer;
+ import org.apache.http.protocol.HttpContext;
+ 
+ import static java.util.Objects.requireNonNull;
+ 
+ public class InstrumentedNHttpClientBuilder extends HttpAsyncClientBuilder {
+     private final MetricRegistry metricRegistry;
+     private final String name;
+     private final HttpClientMetricNameStrategy metricNameStrategy;
+ 
+     public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy, String name) {
+         super();
+         this.metricRegistry = metricRegistry;
+         this.metricNameStrategy = metricNameStrategy;
+         this.name = name;
+     }
+ 
+     public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry) {
+         this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, null);
+     }
+ 
+     public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy) {
+         this(metricRegistry, metricNameStrategy, null);
+     }
+ 
+     public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, String name) {
+         this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, name);
+     }
+ 
+     private Timer timer(HttpRequest request) {
+         return metricRegistry.timer(metricNameStrategy.getNameFor(name, request));
+     }
+ 
+     @Override
+     public CloseableHttpAsyncClient build() {
+         final CloseableHttpAsyncClient ac = super.build();
+         return new CloseableHttpAsyncClient() {
+ 
+             @Override
+             public boolean isRunning() {
+                 return ac.isRunning();
+             }
+ 
+             @Override
+             public void start() {
+                 ac.start();
+             }
+ 
+             @Override
+             public <T> Future<T> execute(HttpAsyncRequestProducer requestProducer, HttpAsyncResponseConsumer<T> responseConsumer, HttpContext context, FutureCallback<T> callback) {
+                 final Timer.Context timerContext;
+                 try {
+                     timerContext = timer(requestProducer.generateRequest()).time();
+                 } catch (IOException | HttpException ex) {
+                     throw new RuntimeException(ex);
+                 }
+                 return ac.execute(requestProducer, responseConsumer, context,
+                         new TimingFutureCallback<>(callback, timerContext));
+             }
+ 
+             @Override
+             public void close() throws IOException {
+                 ac.close();
+             }
+         };
+     }
+ 
+     private static class TimingFutureCallback<T> implements FutureCallback<T> {
+         private final FutureCallback<T> callback;
+         private final Timer.Context timerContext;
+ 
+         private TimingFutureCallback(FutureCallback<T> callback,
+                                      Timer.Context timerContext) {
+             this.callback = callback;
+             this.timerContext = requireNonNull(timerContext, "timerContext");
+         }
+ 
+         @Override
+         public void completed(T result) {
+             timerContext.stop();
+             if (callback != null) {
+                 callback.completed(result);
+             }
+         }
+ 
+         @Override
+         public void failed(Exception ex) {
+             timerContext.stop();
+             if (callback != null) {
+                 callback.failed(ex);
+             }
+         }
+ 
+         @Override
+         public void cancelled() {
+             timerContext.stop();
+             if (callback != null) {
+                 callback.cancelled();
+             }
+         }
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index.html b/metrics-complete-report-initial-htmlReport/ns-c/index.html new file mode 100644 index 0000000000..82054a6f53 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-c/index.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..85924cca44 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..47bcc82b99 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..23855997cd --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..a0a8f05258 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..20be59dea5 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_LINE.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..21322a7774 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..6cca9dec0b --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..51abad2990 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..1eea4c59c5 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,251 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient + + 83.3% + + + (5/6) + + + + 61.9% + + + (26/42) + + + + 73% + + + (73/100) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-c/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-c/sources/source-1.html new file mode 100644 index 0000000000..63ee622013 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-c/sources/source-1.html @@ -0,0 +1,165 @@ + + + + + + + + Coverage Report > HttpClientMetricNameStrategies + + + + + + +
+ + +

Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 87.5% + + + (7/8) + + + + 84.6% + + + (22/26) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient;
+ 
+ import org.apache.http.HttpRequest;
+ import org.apache.http.client.HttpClient;
+ import org.apache.http.client.methods.HttpRequestWrapper;
+ import org.apache.http.client.methods.HttpUriRequest;
+ import org.apache.http.client.utils.URIBuilder;
+ 
+ import java.net.URI;
+ import java.net.URISyntaxException;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ public class HttpClientMetricNameStrategies {
+ 
+     public static final HttpClientMetricNameStrategy METHOD_ONLY =
+         (name, request) -> name(HttpClient.class,
+             name,
+             methodNameString(request));
+ 
+     public static final HttpClientMetricNameStrategy HOST_AND_METHOD =
+         (name, request) -> name(HttpClient.class,
+             name,
+             requestURI(request).getHost(),
+             methodNameString(request));
+ 
+     public static final HttpClientMetricNameStrategy PATH_AND_METHOD =
+         (name, request) -> {
+             final URIBuilder url = new URIBuilder(requestURI(request));
+             return name(HttpClient.class,
+                 name,
+                 url.getPath(),
+                 methodNameString(request));
+         };
+ 
+     public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =
+         (name, request) -> {
+             try {
+                 final URIBuilder url = new URIBuilder(requestURI(request));
+                 return name(HttpClient.class,
+                     name,
+                     url.removeQuery().build().toString(),
+                     methodNameString(request));
+             } catch (URISyntaxException e) {
+                 throw new IllegalArgumentException(e);
+             }
+         };
+ 
+     private static String methodNameString(HttpRequest request) {
+         return request.getRequestLine().getMethod().toLowerCase() + "-requests";
+     }
+ 
+     private static URI requestURI(HttpRequest request) {
+         if (request instanceof HttpRequestWrapper)
+             return requestURI(((HttpRequestWrapper) request).getOriginal());
+ 
+         return (request instanceof HttpUriRequest) ?
+             ((HttpUriRequest) request).getURI() :
+             URI.create(request.getRequestLine().getUri());
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-c/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-c/sources/source-2.html new file mode 100644 index 0000000000..66217ec14a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-c/sources/source-2.html @@ -0,0 +1,146 @@ + + + + + + + + Coverage Report > HttpClientMetricNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
HttpClientMetricNameStrategy$MockitoMock$6KszrCwA
HttpClientMetricNameStrategy$MockitoMock$6KszrCwA$auxiliary$dJm0piNA
HttpClientMetricNameStrategy$MockitoMock$6KszrCwA$auxiliary$VPCAssxE
HttpClientMetricNameStrategy$MockitoMock$RINEg8MI
HttpClientMetricNameStrategy$MockitoMock$RINEg8MI$auxiliary$Elo77oKt
HttpClientMetricNameStrategy$MockitoMock$RINEg8MI$auxiliary$erRXmNC7
Total + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.client.HttpClient;
+ 
+ @FunctionalInterface
+ public interface HttpClientMetricNameStrategy {
+ 
+     String getNameFor(String name, HttpRequest request);
+ 
+     default String getNameFor(String name, Exception exception) {
+         return MetricRegistry.name(HttpClient.class,
+                 name,
+                 exception.getClass().getSimpleName());
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-c/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-c/sources/source-3.html new file mode 100644 index 0000000000..04a125f139 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-c/sources/source-3.html @@ -0,0 +1,330 @@ + + + + + + + + Coverage Report > InstrumentedHttpClientConnectionManager + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedHttpClientConnectionManager + + 66.7% + + + (8/12) + + + + 84% + + + (21/25) + +
InstrumentedHttpClientConnectionManager$Builder + + 36.4% + + + (4/11) + + + + 46.2% + + + (12/26) + +
Total + + 52.2% + + + (12/23) + + + + 64.7% + + + (33/51) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.apache.http.config.Registry;
+ import org.apache.http.config.RegistryBuilder;
+ import org.apache.http.conn.DnsResolver;
+ import org.apache.http.conn.HttpClientConnectionManager;
+ import org.apache.http.conn.HttpClientConnectionOperator;
+ import org.apache.http.conn.HttpConnectionFactory;
+ import org.apache.http.conn.ManagedHttpClientConnection;
+ import org.apache.http.conn.SchemePortResolver;
+ import org.apache.http.conn.routing.HttpRoute;
+ import org.apache.http.conn.socket.ConnectionSocketFactory;
+ import org.apache.http.conn.socket.PlainConnectionSocketFactory;
+ import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
+ import org.apache.http.impl.conn.DefaultHttpClientConnectionOperator;
+ import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
+ import org.apache.http.impl.conn.SystemDefaultDnsResolver;
+ 
+ import java.util.concurrent.TimeUnit;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * A {@link HttpClientConnectionManager} which monitors the number of open connections.
+  */
+ public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
+ 
+ 
+     protected static Registry<ConnectionSocketFactory> getDefaultRegistry() {
+         return RegistryBuilder.<ConnectionSocketFactory>create()
+             .register("http", PlainConnectionSocketFactory.getSocketFactory())
+             .register("https", SSLConnectionSocketFactory.getSocketFactory())
+             .build();
+     }
+ 
+     private final MetricRegistry metricsRegistry;
+     private final String name;
+ 
+     /**
+      * @deprecated Use {@link #builder(MetricRegistry)} instead.
+      */
+     @Deprecated
+     public InstrumentedHttpClientConnectionManager(MetricRegistry metricRegistry) {
+         this(metricRegistry, getDefaultRegistry());
+     }
+ 
+     /**
+      * @deprecated Use {@link #builder(MetricRegistry)} instead.
+      */
+     @Deprecated
+     public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
+                                                    Registry<ConnectionSocketFactory> socketFactoryRegistry) {
+         this(metricsRegistry, socketFactoryRegistry, -1, TimeUnit.MILLISECONDS);
+     }
+ 
+ 
+     /**
+      * @deprecated Use {@link #builder(MetricRegistry)} instead.
+      */
+     @Deprecated
+     public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
+                                                    Registry<ConnectionSocketFactory> socketFactoryRegistry,
+                                                    long connTTL,
+                                                    TimeUnit connTTLTimeUnit) {
+         this(metricsRegistry, socketFactoryRegistry, null, null, SystemDefaultDnsResolver.INSTANCE, connTTL, connTTLTimeUnit, null);
+     }
+ 
+ 
+     /**
+      * @deprecated Use {@link #builder(MetricRegistry)} instead.
+      */
+     @Deprecated
+     public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
+                                                    Registry<ConnectionSocketFactory> socketFactoryRegistry,
+                                                    HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection>
+                                                            connFactory,
+                                                    SchemePortResolver schemePortResolver,
+                                                    DnsResolver dnsResolver,
+                                                    long connTTL,
+                                                    TimeUnit connTTLTimeUnit,
+                                                    String name) {
+         this(metricsRegistry,
+              new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver),
+              connFactory,
+              connTTL,
+              connTTLTimeUnit,
+              name);
+     }
+ 
+     /**
+      * @deprecated Use {@link #builder(MetricRegistry)} instead.
+      */
+     @Deprecated
+     public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
+                                                    HttpClientConnectionOperator httpClientConnectionOperator,
+                                                    HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection>
+                                                            connFactory,
+                                                    long connTTL,
+                                                    TimeUnit connTTLTimeUnit,
+                                                    String name) {
+         super(httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit);
+         this.metricsRegistry = metricsRegistry;
+         this.name = name;
+ 
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, "available-connections"),
+                 () -> getTotalStats().getAvailable());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, "leased-connections"),
+                 () -> getTotalStats().getLeased());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, "max-connections"),
+                 () -> getTotalStats().getMax());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, "pending-connections"),
+                 () -> getTotalStats().getPending());
+     }
+ 
+     @Override
+     public void shutdown() {
+         super.shutdown();
+         metricsRegistry.remove(name(HttpClientConnectionManager.class, name, "available-connections"));
+         metricsRegistry.remove(name(HttpClientConnectionManager.class, name, "leased-connections"));
+         metricsRegistry.remove(name(HttpClientConnectionManager.class, name, "max-connections"));
+         metricsRegistry.remove(name(HttpClientConnectionManager.class, name, "pending-connections"));
+     }
+ 
+     public static Builder builder(MetricRegistry metricsRegistry) {
+         return new Builder().metricsRegistry(metricsRegistry);
+     }
+ 
+     public static class Builder {
+         private MetricRegistry metricsRegistry;
+         private HttpClientConnectionOperator httpClientConnectionOperator;
+         private Registry<ConnectionSocketFactory> socketFactoryRegistry = getDefaultRegistry();
+         private HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> connFactory;
+         private SchemePortResolver schemePortResolver;
+         private DnsResolver dnsResolver = SystemDefaultDnsResolver.INSTANCE;
+         private long connTTL = -1;
+         private TimeUnit connTTLTimeUnit = TimeUnit.MILLISECONDS;
+         private String name;
+ 
+         Builder() {
+         }
+ 
+         public Builder metricsRegistry(MetricRegistry metricsRegistry) {
+             this.metricsRegistry = metricsRegistry;
+             return this;
+         }
+ 
+         public Builder socketFactoryRegistry(Registry<ConnectionSocketFactory> socketFactoryRegistry) {
+             this.socketFactoryRegistry = socketFactoryRegistry;
+             return this;
+         }
+ 
+         public Builder connFactory(HttpConnectionFactory<HttpRoute, ManagedHttpClientConnection> connFactory) {
+             this.connFactory = connFactory;
+             return this;
+         }
+ 
+         public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
+             this.schemePortResolver = schemePortResolver;
+             return this;
+         }
+ 
+         public Builder dnsResolver(DnsResolver dnsResolver) {
+             this.dnsResolver = dnsResolver;
+             return this;
+         }
+ 
+         public Builder connTTL(long connTTL) {
+             this.connTTL = connTTL;
+             return this;
+         }
+ 
+         public Builder connTTLTimeUnit(TimeUnit connTTLTimeUnit) {
+             this.connTTLTimeUnit = connTTLTimeUnit;
+             return this;
+         }
+ 
+         public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
+             this.httpClientConnectionOperator = httpClientConnectionOperator;
+             return this;
+         }
+ 
+         public Builder name(final String name) {
+             this.name = name;
+             return this;
+         }
+ 
+         public InstrumentedHttpClientConnectionManager build() {
+             if (httpClientConnectionOperator == null) {
+                 httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver);
+             }
+             return new InstrumentedHttpClientConnectionManager(metricsRegistry, httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit, name);
+         }
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-c/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-c/sources/source-4.html new file mode 100644 index 0000000000..46b12f1127 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-c/sources/source-4.html @@ -0,0 +1,138 @@ + + + + + + + + Coverage Report > InstrumentedHttpClients + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.apache.http.impl.client.CloseableHttpClient;
+ import org.apache.http.impl.client.HttpClientBuilder;
+ 
+ import static com.codahale.metrics.httpclient.HttpClientMetricNameStrategies.METHOD_ONLY;
+ 
+ public class InstrumentedHttpClients {
+     private InstrumentedHttpClients() {
+         super();
+     }
+ 
+     public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
+         return createDefault(metricRegistry, METHOD_ONLY);
+     }
+ 
+     public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
+                                                     HttpClientMetricNameStrategy metricNameStrategy) {
+         return custom(metricRegistry, metricNameStrategy).build();
+     }
+ 
+     public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
+         return custom(metricRegistry, METHOD_ONLY);
+     }
+ 
+     public static HttpClientBuilder custom(MetricRegistry metricRegistry,
+                                            HttpClientMetricNameStrategy metricNameStrategy) {
+         return HttpClientBuilder.create()
+                 .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))
+                 .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-c/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-c/sources/source-5.html new file mode 100644 index 0000000000..80456846b9 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-c/sources/source-5.html @@ -0,0 +1,166 @@ + + + + + + + + Coverage Report > InstrumentedHttpRequestExecutor + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 100% + + + (15/15) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import org.apache.http.HttpClientConnection;
+ import org.apache.http.HttpException;
+ import org.apache.http.HttpRequest;
+ import org.apache.http.HttpResponse;
+ import org.apache.http.protocol.HttpContext;
+ import org.apache.http.protocol.HttpRequestExecutor;
+ 
+ import com.codahale.metrics.Meter;
+ 
+ import java.io.IOException;
+ 
+ public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
+     private final MetricRegistry registry;
+     private final HttpClientMetricNameStrategy metricNameStrategy;
+     private final String name;
+ 
+     public InstrumentedHttpRequestExecutor(MetricRegistry registry,
+                                            HttpClientMetricNameStrategy metricNameStrategy) {
+         this(registry, metricNameStrategy, null);
+     }
+ 
+     public InstrumentedHttpRequestExecutor(MetricRegistry registry,
+                                            HttpClientMetricNameStrategy metricNameStrategy,
+                                            String name) {
+         this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);
+     }
+ 
+     public InstrumentedHttpRequestExecutor(MetricRegistry registry,
+                                            HttpClientMetricNameStrategy metricNameStrategy,
+                                            String name,
+                                            int waitForContinue) {
+         super(waitForContinue);
+         this.registry = registry;
+         this.name = name;
+         this.metricNameStrategy = metricNameStrategy;
+     }
+ 
+     @Override
+     public HttpResponse execute(HttpRequest request, HttpClientConnection conn, HttpContext context) throws HttpException, IOException {
+         final Timer.Context timerContext = timer(request).time();
+         try {
+             return super.execute(request, conn, context);
+         } catch (HttpException | IOException e) {
+             meter(e).mark();
+             throw e;
+         } finally {
+             timerContext.stop();
+         }
+     }
+ 
+     private Timer timer(HttpRequest request) {
+         return registry.timer(metricNameStrategy.getNameFor(name, request));
+     }
+ 
+     private Meter meter(Exception e) {
+         return registry.meter(metricNameStrategy.getNameFor(name, e));
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index.html b/metrics-complete-report-initial-htmlReport/ns-d/index.html new file mode 100644 index 0000000000..507c38804d --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-d/index.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..89083700f0 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..27b1d7cce4 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..a506e9f408 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..31cdef0ec8 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..2618ab8078 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_LINE.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..2a963e34be --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..20e1a9bc43 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..c835ab3246 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..df61374cb8 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,332 @@ + + + + + + Coverage Report > com.codahale.metrics.httpclient5 + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.httpclient5

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.httpclient5 + + 90.9% + + + (10/11) + + + + 69.3% + + + (52/75) + + + + 74.1% + + + (120/162) + +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
InstrumentedHttpClientConnectionManager + + 100% + + + (2/2) + + + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
InstrumentedAsyncExecChainHandler + + 100% + + + (2/2) + + + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
InstrumentedAsyncClientConnectionManager + + 100% + + + (2/2) + + + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-1.html new file mode 100644 index 0000000000..a76638bb7a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-1.html @@ -0,0 +1,152 @@ + + + + + + + + Coverage Report > HttpClientMetricNameStrategies + + + + + + +
+ + +

Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient5)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
HttpClientMetricNameStrategies + + 100% + + + (1/1) + + + + 83.3% + + + (5/6) + + + + 72.2% + + + (13/18) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient5;
+ 
+ import org.apache.hc.client5.http.classic.HttpClient;
+ import org.apache.hc.core5.http.HttpRequest;
+ import org.apache.hc.core5.net.URIBuilder;
+ 
+ import java.net.URISyntaxException;
+ import java.util.Locale;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ public class HttpClientMetricNameStrategies {
+ 
+     public static final HttpClientMetricNameStrategy METHOD_ONLY =
+             (name, request) -> name(HttpClient.class,
+                     name,
+                     methodNameString(request));
+ 
+     public static final HttpClientMetricNameStrategy HOST_AND_METHOD =
+             (name, request) -> {
+                 try {
+                     return name(HttpClient.class,
+                             name,
+                             request.getUri().getHost(),
+                             methodNameString(request));
+                 } catch (URISyntaxException e) {
+                     throw new IllegalArgumentException(e);
+                 }
+             };
+ 
+     public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =
+             (name, request) -> {
+                 try {
+                     final URIBuilder url = new URIBuilder(request.getUri());
+                     return name(HttpClient.class,
+                             name,
+                             url.removeQuery().build().toString(),
+                             methodNameString(request));
+                 } catch (URISyntaxException e) {
+                     throw new IllegalArgumentException(e);
+                 }
+             };
+ 
+     private static String methodNameString(HttpRequest request) {
+         return request.getMethod().toLowerCase(Locale.ROOT) + "-requests";
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-2.html new file mode 100644 index 0000000000..b6d5124853 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-2.html @@ -0,0 +1,137 @@ + + + + + + + + Coverage Report > HttpClientMetricNameStrategy + + + + + + +
+ + +

Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient5)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
HttpClientMetricNameStrategy + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
HttpClientMetricNameStrategy$MockitoMock$nKI5Fu8h
HttpClientMetricNameStrategy$MockitoMock$nKI5Fu8h$auxiliary$PBGtThL9
HttpClientMetricNameStrategy$MockitoMock$nKI5Fu8h$auxiliary$Z07E9CCB
Total + + 0% + + + (0/1) + + + + 0% + + + (0/2) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient5;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.apache.hc.client5.http.classic.HttpClient;
+ import org.apache.hc.core5.http.HttpRequest;
+ 
+ @FunctionalInterface
+ public interface HttpClientMetricNameStrategy {
+ 
+     String getNameFor(String name, HttpRequest request);
+ 
+     default String getNameFor(String name, Exception exception) {
+         return MetricRegistry.name(HttpClient.class,
+                 name,
+                 exception.getClass().getSimpleName());
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-3.html new file mode 100644 index 0000000000..4bb34ff2b9 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-3.html @@ -0,0 +1,285 @@ + + + + + + + + Coverage Report > InstrumentedAsyncClientConnectionManager + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedAsyncClientConnectionManager (com.codahale.metrics.httpclient5)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedAsyncClientConnectionManager + + 100% + + + (10/10) + + + + 100% + + + (22/22) + +
InstrumentedAsyncClientConnectionManager$Builder + + 40% + + + (4/10) + + + + 40% + + + (8/20) + +
Total + + 70% + + + (14/20) + + + + 71.4% + + + (30/42) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient5;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.apache.hc.client5.http.DnsResolver;
+ import org.apache.hc.client5.http.SchemePortResolver;
+ import org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager;
+ import org.apache.hc.client5.http.io.HttpClientConnectionManager;
+ import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
+ import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
+ import org.apache.hc.core5.http.URIScheme;
+ import org.apache.hc.core5.http.config.Lookup;
+ import org.apache.hc.core5.http.config.Registry;
+ import org.apache.hc.core5.http.config.RegistryBuilder;
+ import org.apache.hc.core5.http.nio.ssl.TlsStrategy;
+ import org.apache.hc.core5.io.CloseMode;
+ import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
+ import org.apache.hc.core5.pool.PoolReusePolicy;
+ import org.apache.hc.core5.util.TimeValue;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static java.util.Objects.requireNonNull;
+ 
+ /**
+  * A {@link HttpClientConnectionManager} which monitors the number of open connections.
+  */
+ public class InstrumentedAsyncClientConnectionManager extends PoolingAsyncClientConnectionManager {
+     private static final String METRICS_PREFIX = AsyncClientConnectionManager.class.getName();
+ 
+     protected static Registry<TlsStrategy> getDefaultTlsStrategy() {
+         return RegistryBuilder.<TlsStrategy>create()
+                 .register(URIScheme.HTTPS.id, DefaultClientTlsStrategy.getDefault())
+                 .build();
+     }
+ 
+     private final MetricRegistry metricsRegistry;
+     private final String name;
+ 
+     InstrumentedAsyncClientConnectionManager(final MetricRegistry metricRegistry,
+                                              final String name,
+                                              final Lookup<TlsStrategy> tlsStrategyLookup,
+                                              final PoolConcurrencyPolicy poolConcurrencyPolicy,
+                                              final PoolReusePolicy poolReusePolicy,
+                                              final TimeValue timeToLive,
+                                              final SchemePortResolver schemePortResolver,
+                                              final DnsResolver dnsResolver) {
+ 
+         super(tlsStrategyLookup, poolConcurrencyPolicy, poolReusePolicy, timeToLive, schemePortResolver, dnsResolver);
+         this.metricsRegistry = requireNonNull(metricRegistry, "metricRegistry");
+         this.name = name;
+ 
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(METRICS_PREFIX, name, "available-connections"),
+                 () -> getTotalStats().getAvailable());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(METRICS_PREFIX, name, "leased-connections"),
+                 () -> getTotalStats().getLeased());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(METRICS_PREFIX, name, "max-connections"),
+                 () -> getTotalStats().getMax());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(METRICS_PREFIX, name, "pending-connections"),
+                 () -> getTotalStats().getPending());
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void close() {
+         close(CloseMode.GRACEFUL);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void close(CloseMode closeMode) {
+         super.close(closeMode);
+         metricsRegistry.remove(name(METRICS_PREFIX, name, "available-connections"));
+         metricsRegistry.remove(name(METRICS_PREFIX, name, "leased-connections"));
+         metricsRegistry.remove(name(METRICS_PREFIX, name, "max-connections"));
+         metricsRegistry.remove(name(METRICS_PREFIX, name, "pending-connections"));
+     }
+ 
+     public static Builder builder(MetricRegistry metricsRegistry) {
+         return new Builder().metricsRegistry(metricsRegistry);
+     }
+ 
+     public static class Builder {
+         private MetricRegistry metricsRegistry;
+         private String name;
+         private Lookup<TlsStrategy> tlsStrategyLookup = getDefaultTlsStrategy();
+         private SchemePortResolver schemePortResolver;
+         private DnsResolver dnsResolver;
+         private PoolConcurrencyPolicy poolConcurrencyPolicy;
+         private PoolReusePolicy poolReusePolicy;
+         private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;
+ 
+         Builder() {
+         }
+ 
+         public Builder metricsRegistry(MetricRegistry metricRegistry) {
+             this.metricsRegistry = requireNonNull(metricRegistry, "metricRegistry");
+             return this;
+         }
+ 
+         public Builder name(final String name) {
+             this.name = name;
+             return this;
+         }
+ 
+         public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
+             this.schemePortResolver = schemePortResolver;
+             return this;
+         }
+ 
+         public Builder dnsResolver(DnsResolver dnsResolver) {
+             this.dnsResolver = dnsResolver;
+             return this;
+         }
+ 
+         public Builder timeToLive(TimeValue timeToLive) {
+             this.timeToLive = timeToLive;
+             return this;
+         }
+ 
+         public Builder tlsStrategyLookup(Lookup<TlsStrategy> tlsStrategyLookup) {
+             this.tlsStrategyLookup = tlsStrategyLookup;
+             return this;
+         }
+ 
+         public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
+             this.poolConcurrencyPolicy = poolConcurrencyPolicy;
+             return this;
+         }
+ 
+         public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
+             this.poolReusePolicy = poolReusePolicy;
+             return this;
+         }
+ 
+         public InstrumentedAsyncClientConnectionManager build() {
+             return new InstrumentedAsyncClientConnectionManager(
+                     metricsRegistry,
+                     name,
+                     tlsStrategyLookup,
+                     poolConcurrencyPolicy,
+                     poolReusePolicy,
+                     timeToLive,
+                     schemePortResolver,
+                     dnsResolver);
+         }
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-4.html new file mode 100644 index 0000000000..cb588e14ba --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-4.html @@ -0,0 +1,229 @@ + + + + + + + + Coverage Report > InstrumentedAsyncExecChainHandler + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedAsyncExecChainHandler (com.codahale.metrics.httpclient5)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedAsyncExecChainHandler + + 100% + + + (3/3) + + + + 100% + + + (7/7) + +
InstrumentedAsyncExecChainHandler$InstrumentedAsyncExecCallback + + 85.7% + + + (6/7) + + + + 93.3% + + + (14/15) + +
Total + + 90% + + + (9/10) + + + + 95.5% + + + (21/22) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient5;
+ 
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import org.apache.hc.client5.http.async.AsyncExecCallback;
+ import org.apache.hc.client5.http.async.AsyncExecChain;
+ import org.apache.hc.client5.http.async.AsyncExecChainHandler;
+ import org.apache.hc.core5.http.EntityDetails;
+ import org.apache.hc.core5.http.HttpException;
+ import org.apache.hc.core5.http.HttpRequest;
+ import org.apache.hc.core5.http.HttpResponse;
+ import org.apache.hc.core5.http.nio.AsyncDataConsumer;
+ import org.apache.hc.core5.http.nio.AsyncEntityProducer;
+ 
+ import java.io.IOException;
+ 
+ import static java.util.Objects.requireNonNull;
+ 
+ class InstrumentedAsyncExecChainHandler implements AsyncExecChainHandler {
+     private final MetricRegistry registry;
+     private final HttpClientMetricNameStrategy metricNameStrategy;
+     private final String name;
+ 
+     public InstrumentedAsyncExecChainHandler(MetricRegistry registry, HttpClientMetricNameStrategy metricNameStrategy) {
+         this(registry, metricNameStrategy, null);
+     }
+ 
+     public InstrumentedAsyncExecChainHandler(MetricRegistry registry,
+                                              HttpClientMetricNameStrategy metricNameStrategy,
+                                              String name) {
+         this.registry = requireNonNull(registry, "registry");
+         this.metricNameStrategy = requireNonNull(metricNameStrategy, "metricNameStrategy");
+         this.name = name;
+     }
+ 
+     @Override
+     public void execute(HttpRequest request,
+                         AsyncEntityProducer entityProducer,
+                         AsyncExecChain.Scope scope,
+                         AsyncExecChain chain,
+                         AsyncExecCallback asyncExecCallback) throws HttpException, IOException {
+         final InstrumentedAsyncExecCallback instrumentedAsyncExecCallback =
+                 new InstrumentedAsyncExecCallback(registry, metricNameStrategy, name, asyncExecCallback, request);
+         chain.proceed(request, entityProducer, scope, instrumentedAsyncExecCallback);
+ 
+     }
+ 
+     final static class InstrumentedAsyncExecCallback implements AsyncExecCallback {
+         private final MetricRegistry registry;
+         private final HttpClientMetricNameStrategy metricNameStrategy;
+         private final String name;
+         private final AsyncExecCallback delegate;
+         private final Timer.Context timerContext;
+ 
+         public InstrumentedAsyncExecCallback(MetricRegistry registry,
+                                              HttpClientMetricNameStrategy metricNameStrategy,
+                                              String name,
+                                              AsyncExecCallback delegate,
+                                              HttpRequest request) {
+             this.registry = registry;
+             this.metricNameStrategy = metricNameStrategy;
+             this.name = name;
+             this.delegate = delegate;
+             this.timerContext = timer(request).time();
+         }
+ 
+         @Override
+         public AsyncDataConsumer handleResponse(HttpResponse response, EntityDetails entityDetails) throws HttpException, IOException {
+             return delegate.handleResponse(response, entityDetails);
+         }
+ 
+         @Override
+         public void handleInformationResponse(HttpResponse response) throws HttpException, IOException {
+             delegate.handleInformationResponse(response);
+         }
+ 
+         @Override
+         public void completed() {
+             delegate.completed();
+             timerContext.stop();
+         }
+ 
+         @Override
+         public void failed(Exception cause) {
+             delegate.failed(cause);
+             meter(cause).mark();
+             timerContext.stop();
+         }
+ 
+         private Timer timer(HttpRequest request) {
+             return registry.timer(metricNameStrategy.getNameFor(name, request));
+         }
+ 
+         private Meter meter(Exception e) {
+             return registry.meter(metricNameStrategy.getNameFor(name, e));
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-5.html new file mode 100644 index 0000000000..4de18e4a71 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-5.html @@ -0,0 +1,147 @@ + + + + + + + + Coverage Report > InstrumentedHttpAsyncClients + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpAsyncClients (com.codahale.metrics.httpclient5)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpAsyncClients + + 100% + + + (1/1) + + + + 40% + + + (2/5) + + + + 57.1% + + + (4/7) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient5;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.apache.hc.client5.http.impl.ChainElement;
+ import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
+ import org.apache.hc.client5.http.impl.async.HttpAsyncClientBuilder;
+ import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
+ 
+ import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
+ 
+ public class InstrumentedHttpAsyncClients {
+     private InstrumentedHttpAsyncClients() {
+         super();
+     }
+ 
+     public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry) {
+         return createDefault(metricRegistry, METHOD_ONLY);
+     }
+ 
+     public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry,
+                                                          HttpClientMetricNameStrategy metricNameStrategy) {
+         return custom(metricRegistry, metricNameStrategy).build();
+     }
+ 
+     public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry) {
+         return custom(metricRegistry, METHOD_ONLY);
+     }
+ 
+     public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
+                                                 HttpClientMetricNameStrategy metricNameStrategy) {
+         return custom(metricRegistry, metricNameStrategy, InstrumentedAsyncClientConnectionManager.builder(metricRegistry).build());
+     }
+ 
+     public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
+                                                 HttpClientMetricNameStrategy metricNameStrategy,
+                                                 AsyncClientConnectionManager clientConnectionManager) {
+         return HttpAsyncClientBuilder.create()
+                 .setConnectionManager(clientConnectionManager)
+                 .addExecInterceptorBefore(ChainElement.CONNECT.name(), "dropwizard-metrics",
+                         new InstrumentedAsyncExecChainHandler(metricRegistry, metricNameStrategy));
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-6.html new file mode 100644 index 0000000000..f33b495d26 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-6.html @@ -0,0 +1,308 @@ + + + + + + + + Coverage Report > InstrumentedHttpClientConnectionManager + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient5)

+ + + + + + + + + + + + + + + + + + + + + + + +
Class + Method, % + + Line, % +
InstrumentedHttpClientConnectionManager + + 100% + + + (10/10) + + + + 100% + + + (23/23) + +
InstrumentedHttpClientConnectionManager$Builder + + 33.3% + + + (4/12) + + + + 38.5% + + + (10/26) + +
Total + + 63.6% + + + (14/22) + + + + 67.3% + + + (33/49) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient5;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.apache.hc.client5.http.DnsResolver;
+ import org.apache.hc.client5.http.SchemePortResolver;
+ import org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator;
+ import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
+ import org.apache.hc.client5.http.io.HttpClientConnectionManager;
+ import org.apache.hc.client5.http.io.HttpClientConnectionOperator;
+ import org.apache.hc.client5.http.io.ManagedHttpClientConnection;
+ import org.apache.hc.client5.http.socket.ConnectionSocketFactory;
+ import org.apache.hc.client5.http.socket.PlainConnectionSocketFactory;
+ import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
+ import org.apache.hc.core5.http.URIScheme;
+ import org.apache.hc.core5.http.config.Registry;
+ import org.apache.hc.core5.http.config.RegistryBuilder;
+ import org.apache.hc.core5.http.io.HttpConnectionFactory;
+ import org.apache.hc.core5.io.CloseMode;
+ import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
+ import org.apache.hc.core5.pool.PoolReusePolicy;
+ import org.apache.hc.core5.util.TimeValue;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ import static java.util.Objects.requireNonNull;
+ 
+ /**
+  * A {@link HttpClientConnectionManager} which monitors the number of open connections.
+  */
+ public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
+     private static final String METRICS_PREFIX = HttpClientConnectionManager.class.getName();
+ 
+     protected static Registry<ConnectionSocketFactory> getDefaultRegistry() {
+         return RegistryBuilder.<ConnectionSocketFactory>create()
+                 .register(URIScheme.HTTP.id, PlainConnectionSocketFactory.getSocketFactory())
+                 .register(URIScheme.HTTPS.id, SSLConnectionSocketFactory.getSocketFactory())
+                 .build();
+     }
+ 
+     private final MetricRegistry metricsRegistry;
+     private final String name;
+ 
+     InstrumentedHttpClientConnectionManager(final MetricRegistry metricRegistry,
+                                             final String name,
+                                             final HttpClientConnectionOperator httpClientConnectionOperator,
+                                             final PoolConcurrencyPolicy poolConcurrencyPolicy,
+                                             final PoolReusePolicy poolReusePolicy,
+                                             final TimeValue timeToLive,
+                                             final HttpConnectionFactory<ManagedHttpClientConnection> connFactory) {
+ 
+         super(httpClientConnectionOperator, poolConcurrencyPolicy, poolReusePolicy, timeToLive, connFactory);
+         this.metricsRegistry = requireNonNull(metricRegistry, "metricRegistry");
+         this.name = name;
+ 
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(METRICS_PREFIX, name, "available-connections"),
+                 () -> {
+                     return getTotalStats().getAvailable();
+                 });
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(METRICS_PREFIX, name, "leased-connections"),
+                 () -> getTotalStats().getLeased());
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(METRICS_PREFIX, name, "max-connections"),
+                 () -> getTotalStats().getMax()
+         );
+         // this acquires a lock on the connection pool; remove if contention sucks
+         metricRegistry.registerGauge(name(METRICS_PREFIX, name, "pending-connections"),
+                 () -> getTotalStats().getPending());
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void close() {
+         close(CloseMode.GRACEFUL);
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void close(CloseMode closeMode) {
+         super.close(closeMode);
+         metricsRegistry.remove(name(METRICS_PREFIX, name, "available-connections"));
+         metricsRegistry.remove(name(METRICS_PREFIX, name, "leased-connections"));
+         metricsRegistry.remove(name(METRICS_PREFIX, name, "max-connections"));
+         metricsRegistry.remove(name(METRICS_PREFIX, name, "pending-connections"));
+     }
+ 
+     public static Builder builder(MetricRegistry metricsRegistry) {
+         return new Builder().metricsRegistry(metricsRegistry);
+     }
+ 
+     public static class Builder {
+         private MetricRegistry metricsRegistry;
+         private String name;
+         private HttpClientConnectionOperator httpClientConnectionOperator;
+         private Registry<ConnectionSocketFactory> socketFactoryRegistry = getDefaultRegistry();
+         private SchemePortResolver schemePortResolver;
+         private DnsResolver dnsResolver;
+         private PoolConcurrencyPolicy poolConcurrencyPolicy;
+         private PoolReusePolicy poolReusePolicy;
+         private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;
+         private HttpConnectionFactory<ManagedHttpClientConnection> connFactory;
+ 
+         Builder() {
+         }
+ 
+         public Builder metricsRegistry(MetricRegistry metricRegistry) {
+             this.metricsRegistry = requireNonNull(metricRegistry, "metricRegistry");
+             return this;
+         }
+ 
+         public Builder name(final String name) {
+             this.name = name;
+             return this;
+         }
+ 
+         public Builder socketFactoryRegistry(Registry<ConnectionSocketFactory> socketFactoryRegistry) {
+             this.socketFactoryRegistry = requireNonNull(socketFactoryRegistry, "socketFactoryRegistry");
+             return this;
+         }
+ 
+         public Builder connFactory(HttpConnectionFactory<ManagedHttpClientConnection> connFactory) {
+             this.connFactory = connFactory;
+             return this;
+         }
+ 
+         public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
+             this.schemePortResolver = schemePortResolver;
+             return this;
+         }
+ 
+         public Builder dnsResolver(DnsResolver dnsResolver) {
+             this.dnsResolver = dnsResolver;
+             return this;
+         }
+ 
+         public Builder timeToLive(TimeValue timeToLive) {
+             this.timeToLive = timeToLive;
+             return this;
+         }
+ 
+         public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
+             this.httpClientConnectionOperator = httpClientConnectionOperator;
+             return this;
+         }
+ 
+         public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
+             this.poolConcurrencyPolicy = poolConcurrencyPolicy;
+             return this;
+         }
+ 
+         public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
+             this.poolReusePolicy = poolReusePolicy;
+             return this;
+         }
+ 
+         public InstrumentedHttpClientConnectionManager build() {
+             if (httpClientConnectionOperator == null) {
+                 httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(
+                         socketFactoryRegistry,
+                         schemePortResolver,
+                         dnsResolver);
+             }
+ 
+             return new InstrumentedHttpClientConnectionManager(
+                     metricsRegistry,
+                     name,
+                     httpClientConnectionOperator,
+                     poolConcurrencyPolicy,
+                     poolReusePolicy,
+                     timeToLive,
+                     connFactory);
+         }
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-7.html b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-7.html new file mode 100644 index 0000000000..04849b2912 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-7.html @@ -0,0 +1,138 @@ + + + + + + + + Coverage Report > InstrumentedHttpClients + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient5)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpClients + + 100% + + + (1/1) + + + + 25% + + + (1/4) + + + + 50% + + + (3/6) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient5;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
+ import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
+ 
+ import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
+ 
+ public class InstrumentedHttpClients {
+     private InstrumentedHttpClients() {
+         super();
+     }
+ 
+     public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
+         return createDefault(metricRegistry, METHOD_ONLY);
+     }
+ 
+     public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
+                                                     HttpClientMetricNameStrategy metricNameStrategy) {
+         return custom(metricRegistry, metricNameStrategy).build();
+     }
+ 
+     public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
+         return custom(metricRegistry, METHOD_ONLY);
+     }
+ 
+     public static HttpClientBuilder custom(MetricRegistry metricRegistry,
+                                            HttpClientMetricNameStrategy metricNameStrategy) {
+         return HttpClientBuilder.create()
+                 .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))
+                 .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-8.html b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-8.html new file mode 100644 index 0000000000..b12a60ece1 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-8.html @@ -0,0 +1,182 @@ + + + + + + + + Coverage Report > InstrumentedHttpRequestExecutor + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient5)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedHttpRequestExecutor + + 100% + + + (1/1) + + + + 100% + + + (7/7) + + + + 100% + + + (16/16) + +
+ +
+
+ + +
+ package com.codahale.metrics.httpclient5;
+ 
+ import com.codahale.metrics.Meter;
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import org.apache.hc.core5.http.ClassicHttpRequest;
+ import org.apache.hc.core5.http.ClassicHttpResponse;
+ import org.apache.hc.core5.http.ConnectionReuseStrategy;
+ import org.apache.hc.core5.http.HttpException;
+ import org.apache.hc.core5.http.HttpRequest;
+ import org.apache.hc.core5.http.impl.Http1StreamListener;
+ import org.apache.hc.core5.http.impl.io.HttpRequestExecutor;
+ import org.apache.hc.core5.http.io.HttpClientConnection;
+ import org.apache.hc.core5.http.io.HttpResponseInformationCallback;
+ import org.apache.hc.core5.http.protocol.HttpContext;
+ import org.apache.hc.core5.util.Timeout;
+ 
+ import java.io.IOException;
+ 
+ public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
+     private final MetricRegistry registry;
+     private final HttpClientMetricNameStrategy metricNameStrategy;
+     private final String name;
+ 
+     public InstrumentedHttpRequestExecutor(MetricRegistry registry,
+                                            HttpClientMetricNameStrategy metricNameStrategy) {
+         this(registry, metricNameStrategy, null);
+     }
+ 
+     public InstrumentedHttpRequestExecutor(MetricRegistry registry,
+                                            HttpClientMetricNameStrategy metricNameStrategy,
+                                            String name) {
+         this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);
+     }
+ 
+     public InstrumentedHttpRequestExecutor(MetricRegistry registry,
+                                            HttpClientMetricNameStrategy metricNameStrategy,
+                                            String name,
+                                            Timeout waitForContinue) {
+         this(registry, metricNameStrategy, name, waitForContinue, null, null);
+     }
+ 
+     public InstrumentedHttpRequestExecutor(MetricRegistry registry,
+                                            HttpClientMetricNameStrategy metricNameStrategy,
+                                            String name,
+                                            Timeout waitForContinue,
+                                            ConnectionReuseStrategy connReuseStrategy,
+                                            Http1StreamListener streamListener) {
+         super(waitForContinue, connReuseStrategy, streamListener);
+         this.registry = registry;
+         this.name = name;
+         this.metricNameStrategy = metricNameStrategy;
+     }
+ 
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public ClassicHttpResponse execute(ClassicHttpRequest request, HttpClientConnection conn, HttpResponseInformationCallback informationCallback, HttpContext context) throws IOException, HttpException {
+         final Timer.Context timerContext = timer(request).time();
+         try {
+             return super.execute(request, conn, informationCallback, context);
+         } catch (HttpException | IOException e) {
+             meter(e).mark();
+             throw e;
+         } finally {
+             timerContext.stop();
+         }
+     }
+ 
+     private Timer timer(HttpRequest request) {
+         return registry.timer(metricNameStrategy.getNameFor(name, request));
+     }
+ 
+     private Meter meter(Exception e) {
+         return registry.meter(metricNameStrategy.getNameFor(name, e));
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index.html b/metrics-complete-report-initial-htmlReport/ns-e/index.html new file mode 100644 index 0000000000..949d6c31d1 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-e/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..9ed1a066a4 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..d04e3dc3bb --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..9e66c91b73 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..e8d61524aa --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..49215c02ee --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..51813d3bf0 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..b8451e1866 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..97ae4deddf --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..e1d8b33075 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jcache + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jcache

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jcache + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-e/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-e/sources/source-1.html new file mode 100644 index 0000000000..7faedf5fdf --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-e/sources/source-1.html @@ -0,0 +1,189 @@ + + + + + + + + Coverage Report > JCacheGaugeSet + + + + + + +
+ + +

Coverage Summary for Class: JCacheGaugeSet (com.codahale.metrics.jcache)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
JCacheGaugeSet + + 100% + + + (1/1) + + + + 100% + + + (6/6) + + + + 88.5% + + + (23/26) + +
+ +
+
+ + +
+ package com.codahale.metrics.jcache;
+ 
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ 
+ import com.codahale.metrics.jvm.JmxAttributeGauge;
+ import com.codahale.metrics.Metric;
+ import com.codahale.metrics.MetricSet;
+ 
+ import java.lang.management.ManagementFactory;
+ import java.lang.reflect.Method;
+ import java.util.ArrayList;
+ import java.util.Collections;
+ import java.util.HashMap;
+ import java.util.List;
+ import java.util.Locale;
+ import java.util.Map;
+ import java.util.Set;
+ 
+ import javax.cache.management.CacheStatisticsMXBean;
+ import javax.management.MalformedObjectNameException;
+ import javax.management.ObjectInstance;
+ import javax.management.ObjectName;
+ 
+ import static com.codahale.metrics.MetricRegistry.name;
+ 
+ /**
+  * Gauge set retrieving JCache JMX attributes
+  *
+  * @author <a href="mailto:henri.tremblay@softwareag.com">Henri Tremblay</a>
+  * @author <a href="mailto:anthony.dahanne@softwareag.com">Anthony Dahanne</a>
+  */
+ public class JCacheGaugeSet implements MetricSet {
+ 
+     private static final String M_BEAN_COORDINATES = "javax.cache:type=CacheStatistics,CacheManager=*,Cache=*";
+ 
+     private static final Logger LOGGER = LoggerFactory.getLogger(JCacheGaugeSet.class);
+ 
+     @Override
+     public Map<String, Metric> getMetrics() {
+         Set<ObjectInstance> cacheBeans = getCacheBeans();
+         List<String> availableStatsNames = retrieveStatsNames();
+ 
+         Map<String, Metric> gauges = new HashMap<>(cacheBeans.size() * availableStatsNames.size());
+ 
+         for (ObjectInstance cacheBean : cacheBeans) {
+             ObjectName objectName = cacheBean.getObjectName();
+             String cacheName = objectName.getKeyProperty("Cache");
+ 
+             for (String statsName : availableStatsNames) {
+                 JmxAttributeGauge jmxAttributeGauge = new JmxAttributeGauge(objectName, statsName);
+                 gauges.put(name(cacheName, toSpinalCase(statsName)), jmxAttributeGauge);
+             }
+         }
+ 
+         return Collections.unmodifiableMap(gauges);
+     }
+ 
+     private Set<ObjectInstance> getCacheBeans() {
+         try {
+             return ManagementFactory.getPlatformMBeanServer().queryMBeans(ObjectName.getInstance(M_BEAN_COORDINATES), null);
+         } catch (MalformedObjectNameException e) {
+             LOGGER.error("Unable to retrieve {}. Are JCache statistics enabled?", M_BEAN_COORDINATES);
+             throw new RuntimeException(e);
+         }
+     }
+ 
+     private List<String> retrieveStatsNames() {
+         Method[] methods = CacheStatisticsMXBean.class.getDeclaredMethods();
+         List<String> availableStatsNames = new ArrayList<>(methods.length);
+ 
+         for (Method method : methods) {
+             String methodName = method.getName();
+             if (methodName.startsWith("get")) {
+                 availableStatsNames.add(methodName.substring(3));
+             }
+         }
+         return availableStatsNames;
+     }
+ 
+     private static String toSpinalCase(String camelCase) {
+         return camelCase.replaceAll("(.)(\\p{Upper})", "$1-$2").toLowerCase(Locale.US);
+     }
+ 
+ }
+
+
+
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index.html b/metrics-complete-report-initial-htmlReport/ns-f/index.html new file mode 100644 index 0000000000..f8b1117977 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-f/index.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK.html new file mode 100644 index 0000000000..73d3635ad4 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html new file mode 100644 index 0000000000..b39ec485b9 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS.html new file mode 100644 index 0000000000..bacec2aed5 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html new file mode 100644 index 0000000000..f282a7c2ae --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_LINE.html new file mode 100644 index 0000000000..29421c8b14 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_LINE.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html new file mode 100644 index 0000000000..c73d9e6890 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD.html new file mode 100644 index 0000000000..7e24c88ab2 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html new file mode 100644 index 0000000000..78dd046616 --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html new file mode 100644 index 0000000000..b9d0d557fd --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html @@ -0,0 +1,143 @@ + + + + + + Coverage Report > com.codahale.metrics.jdbi + + + + + + +
+ + + +

Coverage Summary for Package: com.codahale.metrics.jdbi

+ + + + + + + + + + + + + +
Package + Class, % + + Method, % + + Line, % +
com.codahale.metrics.jdbi + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + + + + + + + + + + + + + +
+Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+ + + + + + diff --git a/metrics-complete-report-initial-htmlReport/ns-f/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-f/sources/source-1.html new file mode 100644 index 0000000000..28e05d1f0a --- /dev/null +++ b/metrics-complete-report-initial-htmlReport/ns-f/sources/source-1.html @@ -0,0 +1,143 @@ + + + + + + + + Coverage Report > InstrumentedTimingCollector + + + + + + +
+ + +

Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi)

+ + + + + + + + + + + + + + + +
Class + Class, % + + Method, % + + Line, % +
InstrumentedTimingCollector + + 100% + + + (1/1) + + + + 75% + + + (3/4) + + + + 85.7% + + + (6/7) + +
+ +
+
+ + +
+ package com.codahale.metrics.jdbi;
+ 
+ import com.codahale.metrics.MetricRegistry;
+ import com.codahale.metrics.Timer;
+ import com.codahale.metrics.jdbi.strategies.SmartNameStrategy;
+ import com.codahale.metrics.jdbi.strategies.StatementNameStrategy;
+ import org.skife.jdbi.v2.StatementContext;
+ import org.skife.jdbi.v2.TimingCollector;
+ 
+ import java.util.concurrent.TimeUnit;
+ 
+ /**
+  * A {@link TimingCollector} implementation for JDBI which uses the SQL objects' class names and
+  * method names for millisecond-precision timers.
+  */
+ public class InstrumentedTimingCollector implements TimingCollector {
+     private final MetricRegistry registry;
+     private final StatementNameStrategy statementNameStrategy;
+ 
+     public InstrumentedTimingCollector(MetricRegistry registry) {
+         this(registry, new SmartNameStrategy());
+     }
+ 
+     public InstrumentedTimingCollector(MetricRegistry registry,
+                                        StatementNameStrategy statementNameStrategy) {
+         this.registry = registry;
+         this.statementNameStrategy = statementNameStrategy;
+     }
+ 
+     @Override
+     public void collect(long elapsedTime, StatementContext ctx) {
+         final Timer timer = getTimer(ctx);
+         timer.update(elapsedTime, TimeUnit.NANOSECONDS);
+     }
+ 
+     private Timer getTimer(StatementContext ctx) {
+         return registry.timer(statementNameStrategy.getStatementName(ctx));
+     }
+ }
+
+
+
+ + + + + + diff --git a/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/HttpClientTestBase.java b/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/HttpClientTestBase.java index 12ff992387..f78dbd07ab 100644 --- a/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/HttpClientTestBase.java +++ b/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/HttpClientTestBase.java @@ -62,6 +62,8 @@ public HttpHost startServerWithGlobalRequestHandler(HttpRequestHandler handler) return new HttpHost("localhost", address.getPort(), "http"); } + + @After public void tearDown() { if (server != null) { diff --git a/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedHttpClientsTest.java b/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedHttpClientsTest.java index f0decf33b3..55548d72d0 100644 --- a/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedHttpClientsTest.java +++ b/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedHttpClientsTest.java @@ -4,54 +4,124 @@ import com.codahale.metrics.MetricRegistryListener; import com.codahale.metrics.Timer; import com.codahale.metrics.httpclient.HttpClientMetricNameStrategy; +import com.codahale.metrics.httpclient.InstrumentedHttpClients; import org.apache.http.HttpRequest; import org.apache.http.HttpHost; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.nio.client.CloseableHttpAsyncClient; import org.apache.http.nio.client.HttpAsyncClient; import org.junit.Before; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; +import java.util.concurrent.ExecutionException; + +import static org.junit.Assert.assertNotNull; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +/** + * Test class for {@link InstrumentedHttpClients}. + * This class tests the registration of expected metrics using various configurations of metric registries, + * metric name strategies, and HTTP clients. + */ @RunWith(MockitoJUnitRunner.class) public class InstrumentedHttpClientsTest extends HttpClientTestBase { + // Metric registry for testing private final MetricRegistry metricRegistry = new MetricRegistry(); - + // HTTP client instance private HttpAsyncClient asyncHttpClient; + + // Mocked objects @Mock private HttpClientMetricNameStrategy metricNameStrategy; @Mock private MetricRegistryListener registryListener; + /** + * Test method to verify the registration of expected metrics using a given name strategy. + * + * @throws Exception if an error occurs during the test execution + */ @Test public void registersExpectedMetricsGivenNameStrategy() throws Exception { + // Arrange HttpHost host = startServerWithGlobalRequestHandler(STATUS_OK); final HttpGet get = new HttpGet("/q=anything"); final String metricName = MetricRegistry.name("some.made.up.metric.name"); - when(metricNameStrategy.getNameFor(any(), any(HttpRequest.class))) - .thenReturn(metricName); + // Stubbing behavior of the metric name strategy + when(metricNameStrategy.getNameFor(any(), any(HttpRequest.class))).thenReturn(metricName); + // Act asyncHttpClient.execute(host, get, null).get(); + // Assert verify(registryListener).onTimerAdded(eq(metricName), any(Timer.class)); } + /** + * Test method to verify the creation of a closeable HTTP async client with a metric registry and name strategy. + */ + @Test + public void testBuildWithMetricRegistryAndNameStrategy() { + // Arrange + InstrumentedNHttpClientBuilder builder = new InstrumentedNHttpClientBuilder(metricRegistry, metricNameStrategy, "test-client"); + + // Act + CloseableHttpAsyncClient client = builder.build(); + + // Assert + assertNotNull(client); + } + + /** + * Test method to verify the registration of expected metrics using a name strategy with a built client. + * + * @throws Exception if an error occurs during the test execution + */ + @Ignore // Ignored due to incomplete test setup + @Test + public void testRegistersExpectedMetricsGivenNameStrategy() throws Exception { + // Arrange + InstrumentedNHttpClientBuilder builder = new InstrumentedNHttpClientBuilder(metricRegistry, metricNameStrategy); + CloseableHttpAsyncClient asyncHttpClient = builder.build(); + asyncHttpClient.start(); + + HttpHost host = startServerWithGlobalRequestHandler(STATUS_OK); + HttpGet get = new HttpGet("/q=anything"); + asyncHttpClient.execute(host, get, null).get(); + + ArgumentCaptor metricNameCaptor = ArgumentCaptor.forClass(String.class); + + // Act + verify(metricNameStrategy).getNameFor(any(), any(HttpRequest.class)); + verify(registryListener).onTimerAdded(metricNameCaptor.capture(), any(Timer.class)); + } + + /** + * Set up method executed before each test case. + * Initializes the HTTP async client and adds a metric registry listener. + * + * @throws Exception if an error occurs during the setup + */ @Before public void setUp() throws Exception { + // Initialize the HTTP async client CloseableHttpAsyncClient chac = new InstrumentedNHttpClientBuilder(metricRegistry, metricNameStrategy).build(); chac.start(); asyncHttpClient = chac; + + // Add metric registry listener metricRegistry.addListener(registryListener); } } diff --git a/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedHttpClientsTimerTest.java b/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedHttpClientsTimerTest.java index 5a3063be2b..93da34cb61 100644 --- a/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedHttpClientsTimerTest.java +++ b/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedHttpClientsTimerTest.java @@ -9,6 +9,7 @@ import org.apache.http.concurrent.FutureCallback; import org.apache.http.impl.nio.client.CloseableHttpAsyncClient; import org.apache.http.nio.client.HttpAsyncClient; +import org.apache.http.nio.protocol.HttpAsyncRequestProducer; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; @@ -16,8 +17,11 @@ import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; +import java.io.IOException; +import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.Assert.fail; @@ -29,7 +33,7 @@ import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) -@Ignore("The tests are flaky") +//@Ignore("The tests are flaky") public class InstrumentedHttpClientsTimerTest extends HttpClientTestBase { private HttpAsyncClient asyncHttpClient; @@ -101,6 +105,9 @@ public void timerIsStoppedCorrectlyWithProvidedFutureCallbackCompleted() throws verify(context, timeout(200).times(1)).stop(); } + + + @Test @SuppressWarnings("unchecked") public void timerIsStoppedCorrectlyWithProvidedFutureCallbackFailed() throws Exception { @@ -131,4 +138,108 @@ public void timerIsStoppedCorrectlyWithProvidedFutureCallbackFailed() throws Exc verify(context, timeout(200).times(1)).stop(); } +// My + + /** + * Test method to verify that the timer is stopped correctly when multiple requests are executed concurrently. + * + * @throws Exception if an error occurs during the test execution + */ + @Test + public void timerIsStoppedCorrectlyWithConcurrentRequests() throws Exception { + HttpHost host = startServerWithGlobalRequestHandler(STATUS_OK); + HttpGet get = new HttpGet("/?q=concurrent"); + + // Timer hasn't been stopped prior to executing the requests + verify(context, never()).stop(); + + // Execute multiple requests concurrently + Future responseFuture1 = asyncHttpClient.execute(host, get, null); + Future responseFuture2 = asyncHttpClient.execute(host, get, null); + + // Wait for both requests to complete + responseFuture1.get(20, TimeUnit.SECONDS); + responseFuture2.get(20, TimeUnit.SECONDS); + + // After all computations are complete, the timer should be stopped + verify(context, timeout(200).times(2)).stop(); // Two requests were made + } + + /** + * Test method to verify that the timer is stopped correctly when a request is cancelled using a provided future callback. + * + * @throws Exception if an error occurs during the test execution + */ + @Test + @SuppressWarnings("unchecked") + public void timerIsStoppedCorrectlyWithProvidedFutureCallbackCancelled() throws Exception { + // Arrange + HttpHost host = startServerWithGlobalRequestHandler(STATUS_OK); + HttpGet get = new HttpGet("/?q=cancelled"); + + FutureCallback futureCallback = mock(FutureCallback.class); + + // Timer hasn't been stopped prior to executing the request + verify(context, never()).stop(); + + // Act + Future responseFuture = asyncHttpClient.execute(host, get, futureCallback); + responseFuture.cancel(true); // Cancel the future + + // Assert + // After the computation is cancelled, the timer must be stopped + verify(context, timeout(200).times(1)).stop(); + } + + /** + * Test method to verify that the timer is stopped correctly when a request fails using a provided future callback. + * + * @throws Exception if an error occurs during the test execution + */ + @Test + @SuppressWarnings("unchecked") + public void timerIsStoppedCorrectlyWithProvidedFutureCallbackAndFailure() throws Exception { + // Arrange + HttpHost host = startServerWithGlobalRequestHandler(STATUS_OK); + HttpGet get = new HttpGet("/?q=failure"); + + FutureCallback futureCallback = mock(FutureCallback.class); + + // Timer hasn't been stopped prior to executing the request + verify(context, never()).stop(); + + // Act + Future responseFuture = asyncHttpClient.execute(host, get, futureCallback); + responseFuture.get(20, TimeUnit.SECONDS); // Wait for the request to complete + + // Assert + // After the computation fails, the timer must be stopped + verify(context, timeout(200).times(1)).stop(); + } + + /** + * Test method to verify that the timer is stopped correctly when an exception occurs during the future get operation. + * + * @throws Exception if an error occurs during the test execution + */ + @Test + public void timerIsStoppedCorrectlyWithExceptionInFutureGet() throws Exception { + // Arrange + HttpHost host = startServerWithGlobalRequestHandler(STATUS_OK); + HttpGet get = new HttpGet("/?q=exception"); + + // Timer hasn't been stopped prior to executing the request + verify(context, never()).stop(); + + // Act + Future responseFuture = asyncHttpClient.execute(host, get, null); + responseFuture.get(); // Let the future throw an exception + + // Assert + // After the computation throws an exception, the timer must be stopped + verify(context, timeout(200).times(1)).stop(); + } + + + } diff --git a/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedNClientConnManagerTest.java b/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedNClientConnManagerTest.java new file mode 100644 index 0000000000..9715e51680 --- /dev/null +++ b/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedNClientConnManagerTest.java @@ -0,0 +1,61 @@ +package com.codahale.metrics.httpasyncclient; + +import com.codahale.metrics.Gauge; +import com.codahale.metrics.MetricRegistry; +import org.apache.http.config.Registry; +import org.apache.http.conn.DnsResolver; +import org.apache.http.conn.SchemePortResolver; +import org.apache.http.nio.conn.ManagedNHttpClientConnection; +import org.apache.http.nio.conn.NHttpConnectionFactory; +import org.apache.http.nio.conn.SchemeIOSessionStrategy; +import org.apache.http.nio.reactor.ConnectingIOReactor; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import java.util.concurrent.TimeUnit; + +import static org.mockito.Mockito.*; + +public class InstrumentedNClientConnManagerTest { + + @Mock + private MetricRegistry metricRegistry; + + @Mock + private ConnectingIOReactor ioreactor; + + @Mock + private NHttpConnectionFactory connFactory; + + @Mock + private Registry iosessionFactoryRegistry; + + @Mock + private SchemePortResolver schemePortResolver; + + @Mock + private DnsResolver dnsResolver; + + private InstrumentedNClientConnManager connManager; + + @Before + public void setup() { + MockitoAnnotations.initMocks(this); + + // Initialize the InstrumentedNClientConnManager instance + connManager = new InstrumentedNClientConnManager( + ioreactor, connFactory, schemePortResolver, metricRegistry, + iosessionFactoryRegistry, 100, TimeUnit.MILLISECONDS, dnsResolver, "test"); + } + + /** + * Test method to verify that metrics are registered correctly. + */ + @Test + public void testMetricsAreRegistered() { + // Verify that registerGauge is called for each metric + verify(metricRegistry, times(4)).registerGauge(anyString(), any(Gauge.class)); + } +} diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppender.html b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppender.html new file mode 100644 index 0000000000..476a1cc88b --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppender.html @@ -0,0 +1 @@ +InstrumentedAppender

InstrumentedAppender

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total8 of 18695%1 of 785%21423718
InstrumentedAppender(String, Filter, Layout, boolean)80%n/a112211
start()101100%n/a010901
append(LogEvent)35100%1685%1701501
InstrumentedAppender(MetricRegistry, Filter, Layout, boolean)13100%n/a010301
InstrumentedAppender(String, MetricRegistry)10100%n/a010301
InstrumentedAppender(MetricRegistry)7100%n/a010201
createAppender(String, String)7100%n/a010101
InstrumentedAppender(String)5100%n/a010201
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppender.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppender.java.html new file mode 100644 index 0000000000..a49447d290 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppender.java.html @@ -0,0 +1,139 @@ +InstrumentedAppender.java

InstrumentedAppender.java

package com.codahale.metrics.log4j2;
+
+import com.codahale.metrics.Meter;
+import com.codahale.metrics.MetricRegistry;
+import com.codahale.metrics.SharedMetricRegistries;
+import org.apache.logging.log4j.core.Appender;
+import org.apache.logging.log4j.core.Filter;
+import org.apache.logging.log4j.core.Layout;
+import org.apache.logging.log4j.core.LogEvent;
+import org.apache.logging.log4j.core.appender.AbstractAppender;
+import org.apache.logging.log4j.core.config.plugins.Plugin;
+import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
+import org.apache.logging.log4j.core.config.plugins.PluginFactory;
+
+import java.io.Serializable;
+
+import static com.codahale.metrics.MetricRegistry.name;
+
+/**
+ * A Log4J 2.x {@link Appender} which has seven meters, one for each logging level and one for the total
+ * number of statements being logged. The meter names are the logging level names appended to the
+ * name of the appender.
+ */
+@Plugin(name = "MetricsAppender", category = "Core", elementType = "appender")
+public class InstrumentedAppender extends AbstractAppender {
+
+    private transient final MetricRegistry registry;
+
+    private transient Meter all;
+    private transient Meter trace;
+    private transient Meter debug;
+    private transient Meter info;
+    private transient Meter warn;
+    private transient Meter error;
+    private transient Meter fatal;
+
+    /**
+     * Create a new instrumented appender using the given registry name.
+     *
+     * @param registryName     the name of the registry in {@link SharedMetricRegistries}
+     * @param filter           The Filter to associate with the Appender.
+     * @param layout           The layout to use to format the event.
+     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
+     *                         logged and then passed to the application.
+     */
+    public InstrumentedAppender(String registryName, Filter filter, Layout<? extends Serializable> layout, boolean ignoreExceptions) {
+        this(SharedMetricRegistries.getOrCreate(registryName), filter, layout, ignoreExceptions);
+    }
+
+    /**
+     * Create a new instrumented appender using the given registry name.
+     *
+     * @param registryName the name of the registry in {@link SharedMetricRegistries}
+     */
+    public InstrumentedAppender(String registryName) {
+        this(SharedMetricRegistries.getOrCreate(registryName));
+    }
+
+    /**
+     * Create a new instrumented appender using the given registry.
+     *
+     * @param registry the metric registry
+     */
+    public InstrumentedAppender(MetricRegistry registry) {
+        this(registry, null, null, true);
+    }
+
+    /**
+     * Create a new instrumented appender using the given registry.
+     *
+     * @param registry         the metric registry
+     * @param filter           The Filter to associate with the Appender.
+     * @param layout           The layout to use to format the event.
+     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
+     *                         logged and then passed to the application.
+     */
+    public InstrumentedAppender(MetricRegistry registry, Filter filter, Layout<? extends Serializable> layout, boolean ignoreExceptions) {
+        super(name(Appender.class), filter, layout, ignoreExceptions);
+        this.registry = registry;
+    }
+
+    /**
+     * Create a new instrumented appender using the given appender name and registry.
+     *
+     * @param appenderName The name of the appender.
+     * @param registry     the metric registry
+     */
+    public InstrumentedAppender(String appenderName, MetricRegistry registry) {
+        super(appenderName, null, null, true);
+        this.registry = registry;
+    }
+
+    @PluginFactory
+    public static InstrumentedAppender createAppender(
+            @PluginAttribute("name") String name,
+            @PluginAttribute(value = "registryName", defaultString = "log4j2Metrics") String registry) {
+        return new InstrumentedAppender(name, SharedMetricRegistries.getOrCreate(registry));
+    }
+
+    @Override
+    public void start() {
+        this.all = registry.meter(name(getName(), "all"));
+        this.trace = registry.meter(name(getName(), "trace"));
+        this.debug = registry.meter(name(getName(), "debug"));
+        this.info = registry.meter(name(getName(), "info"));
+        this.warn = registry.meter(name(getName(), "warn"));
+        this.error = registry.meter(name(getName(), "error"));
+        this.fatal = registry.meter(name(getName(), "fatal"));
+        super.start();
+    }
+
+    @Override
+    public void append(LogEvent event) {
+        all.mark();
+        switch (event.getLevel().getStandardLevel()) {
+            case TRACE:
+                trace.mark();
+                break;
+            case DEBUG:
+                debug.mark();
+                break;
+            case INFO:
+                info.mark();
+                break;
+            case WARN:
+                warn.mark();
+                break;
+            case ERROR:
+                error.mark();
+                break;
+            case FATAL:
+                fatal.mark();
+                break;
+            default:
+                break;
+        }
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderConfigTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderConfigTest.html new file mode 100644 index 0000000000..8c72781b27 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderConfigTest.html @@ -0,0 +1 @@ +InstrumentedAppenderConfigTest

InstrumentedAppenderConfigTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total0 of 110100%0 of 0n/a0602506
canRecordAll()28100%n/a010601
canRecordError()28100%n/a010601
noInvalidRecording()26100%n/a010601
setUp()17100%n/a010301
InstrumentedAppenderConfigTest()7100%n/a010201
tearDown()4100%n/a010201
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderConfigTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderConfigTest.java.html new file mode 100644 index 0000000000..03be9d75f1 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderConfigTest.java.html @@ -0,0 +1,67 @@ +InstrumentedAppenderConfigTest.java

InstrumentedAppenderConfigTest.java

package com.codahale.metrics.log4j2;
+
+import com.codahale.metrics.MetricRegistry;
+import com.codahale.metrics.SharedMetricRegistries;
+import org.apache.logging.log4j.core.Logger;
+import org.apache.logging.log4j.core.LoggerContext;
+import org.apache.logging.log4j.core.config.ConfigurationSource;
+import org.apache.logging.log4j.core.config.Configurator;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class InstrumentedAppenderConfigTest {
+    public static final String METRIC_NAME_PREFIX = "metrics";
+    public static final String REGISTRY_NAME = "shared-metrics-registry";
+
+    private final MetricRegistry registry = SharedMetricRegistries.getOrCreate(REGISTRY_NAME);
+    private ConfigurationSource source;
+    private LoggerContext context;
+
+    @Before
+    public void setUp() throws Exception {
+        source = new ConfigurationSource(this.getClass().getClassLoader().getResourceAsStream("log4j2-testconfig.xml"));
+        context = Configurator.initialize(null, source);
+    }
+
+    @After
+    public void tearDown() {
+        context.stop();
+    }
+
+    // The biggest test is that we can initialize the log4j2 config at all.
+
+    @Test
+    public void canRecordAll() {
+        Logger logger = context.getLogger(this.getClass().getName());
+
+        long initialAllCount = registry.meter(METRIC_NAME_PREFIX + ".all").getCount();
+        logger.error("an error message");
+        assertThat(registry.meter(METRIC_NAME_PREFIX + ".all").getCount())
+                .isEqualTo(initialAllCount + 1);
+    }
+
+    @Test
+    public void canRecordError() {
+        Logger logger = context.getLogger(this.getClass().getName());
+
+        long initialErrorCount = registry.meter(METRIC_NAME_PREFIX + ".error").getCount();
+        logger.error("an error message");
+        assertThat(registry.meter(METRIC_NAME_PREFIX + ".all").getCount())
+                .isEqualTo(initialErrorCount + 1);
+    }
+
+    @Test
+    public void noInvalidRecording() {
+        Logger logger = context.getLogger(this.getClass().getName());
+
+        long initialInfoCount = registry.meter(METRIC_NAME_PREFIX + ".info").getCount();
+        logger.error("an error message");
+        assertThat(registry.meter(METRIC_NAME_PREFIX + ".info").getCount())
+                .isEqualTo(initialInfoCount);
+    }
+
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderTest.html new file mode 100644 index 0000000000..70eb13d887 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderTest.html @@ -0,0 +1 @@ +InstrumentedAppenderTest

InstrumentedAppenderTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total0 of 247100%0 of 0n/a010059010
usesSharedRegistries()35100%n/a010901
metersTraceEvents()31100%n/a010701
metersDebugEvents()31100%n/a010701
metersInfoEvents()31100%n/a010701
metersWarnEvents()31100%n/a010701
metersErrorEvents()31100%n/a010701
metersFatalEvents()31100%n/a010701
InstrumentedAppenderTest()20100%n/a010401
setUp()4100%n/a010201
tearDown()2100%n/a010201
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderTest.java.html new file mode 100644 index 0000000000..a2f305c5a5 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderTest.java.html @@ -0,0 +1,130 @@ +InstrumentedAppenderTest.java

InstrumentedAppenderTest.java

package com.codahale.metrics.log4j2;
+
+import com.codahale.metrics.MetricRegistry;
+import com.codahale.metrics.SharedMetricRegistries;
+
+import org.apache.logging.log4j.Level;
+import org.apache.logging.log4j.core.LogEvent;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+public class InstrumentedAppenderTest {
+
+    public static final String METRIC_NAME_PREFIX = "org.apache.logging.log4j.core.Appender";
+
+    private final MetricRegistry registry = new MetricRegistry();
+    private final InstrumentedAppender appender = new InstrumentedAppender(registry);
+    private final LogEvent event = mock(LogEvent.class);
+
+    @Before
+    public void setUp() {
+        appender.start();
+    }
+
+    @After
+    public void tearDown() {
+        SharedMetricRegistries.clear();
+    }
+
+    @Test
+    public void metersTraceEvents() {
+        when(event.getLevel()).thenReturn(Level.TRACE);
+
+        appender.append(event);
+
+        assertThat(registry.meter(METRIC_NAME_PREFIX + ".all").getCount())
+                .isEqualTo(1);
+
+        assertThat(registry.meter(METRIC_NAME_PREFIX + ".trace").getCount())
+                .isEqualTo(1);
+    }
+
+    @Test
+    public void metersDebugEvents() {
+        when(event.getLevel()).thenReturn(Level.DEBUG);
+
+        appender.append(event);
+
+        assertThat(registry.meter(METRIC_NAME_PREFIX + ".all").getCount())
+                .isEqualTo(1);
+
+        assertThat(registry.meter(METRIC_NAME_PREFIX + ".debug").getCount())
+                .isEqualTo(1);
+    }
+
+    @Test
+    public void metersInfoEvents() {
+        when(event.getLevel()).thenReturn(Level.INFO);
+
+        appender.append(event);
+
+        assertThat(registry.meter(METRIC_NAME_PREFIX + ".all").getCount())
+                .isEqualTo(1);
+
+        assertThat(registry.meter(METRIC_NAME_PREFIX + ".info").getCount())
+                .isEqualTo(1);
+    }
+
+    @Test
+    public void metersWarnEvents() {
+        when(event.getLevel()).thenReturn(Level.WARN);
+
+        appender.append(event);
+
+        assertThat(registry.meter(METRIC_NAME_PREFIX + ".all").getCount())
+                .isEqualTo(1);
+
+        assertThat(registry.meter(METRIC_NAME_PREFIX + ".warn").getCount())
+                .isEqualTo(1);
+    }
+
+    @Test
+    public void metersErrorEvents() {
+        when(event.getLevel()).thenReturn(Level.ERROR);
+
+        appender.append(event);
+
+        assertThat(registry.meter(METRIC_NAME_PREFIX + ".all").getCount())
+                .isEqualTo(1);
+
+        assertThat(registry.meter(METRIC_NAME_PREFIX + ".error").getCount())
+                .isEqualTo(1);
+    }
+
+    @Test
+    public void metersFatalEvents() {
+        when(event.getLevel()).thenReturn(Level.FATAL);
+
+        appender.append(event);
+
+        assertThat(registry.meter(METRIC_NAME_PREFIX + ".all").getCount())
+                .isEqualTo(1);
+
+        assertThat(registry.meter(METRIC_NAME_PREFIX + ".fatal").getCount())
+                .isEqualTo(1);
+    }
+
+    @Test
+    public void usesSharedRegistries() {
+
+        String registryName = "registry";
+
+        SharedMetricRegistries.add(registryName, registry);
+
+        final InstrumentedAppender shared = new InstrumentedAppender(registryName);
+        shared.start();
+
+        when(event.getLevel()).thenReturn(Level.INFO);
+
+        shared.append(event);
+
+        assertThat(registry.meter(METRIC_NAME_PREFIX + ".info").getCount())
+                .isEqualTo(1);
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/index.html b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/index.html new file mode 100644 index 0000000000..c92bd136f3 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/index.html @@ -0,0 +1 @@ +com.codahale.metrics.log4j2

com.codahale.metrics.log4j2

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
Total8 of 54398%1 of 785%230212112403
InstrumentedAppender817895%1685%2142371801
InstrumentedAppenderTest247100%n/a01005901001
InstrumentedAppenderConfigTest110100%n/a060250601
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/index.source.html b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/index.source.html new file mode 100644 index 0000000000..2c4a1b9b94 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/index.source.html @@ -0,0 +1 @@ +com.codahale.metrics.log4j2

com.codahale.metrics.log4j2

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
Total8 of 54398%1 of 785%230212112403
InstrumentedAppender.java817895%1685%2142371801
InstrumentedAppenderTest.java247100%n/a01005901001
InstrumentedAppenderConfigTest.java110100%n/a060250601
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGauge.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGauge.html new file mode 100644 index 0000000000..71ccf665ff --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGauge.html @@ -0,0 +1 @@ +CachedGauge

CachedGauge

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total81 of 810%10 of 100%99222244
getValue()260%60%447711
shouldLoad()260%40%337711
CachedGauge(Clock, long, TimeUnit)230%n/a116611
CachedGauge(long, TimeUnit)60%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGauge.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGauge.java.html new file mode 100644 index 0000000000..6c02972ae3 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGauge.java.html @@ -0,0 +1,75 @@ +CachedGauge.java

CachedGauge.java

package com.codahale.metrics;
+
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicLong;
+import java.util.concurrent.atomic.AtomicReference;
+
+/**
+ * A {@link Gauge} implementation which caches its value for a period of time.
+ *
+ * @param <T> the type of the gauge's value
+ */
+public abstract class CachedGauge<T> implements Gauge<T> {
+    private final Clock clock;
+    private final AtomicLong reloadAt;
+    private final long timeoutNS;
+    private final AtomicReference<T> value;
+
+    /**
+     * Creates a new cached gauge with the given timeout period.
+     *
+     * @param timeout     the timeout
+     * @param timeoutUnit the unit of {@code timeout}
+     */
+    protected CachedGauge(long timeout, TimeUnit timeoutUnit) {
+        this(Clock.defaultClock(), timeout, timeoutUnit);
+    }
+
+    /**
+     * Creates a new cached gauge with the given clock and timeout period.
+     *
+     * @param clock       the clock used to calculate the timeout
+     * @param timeout     the timeout
+     * @param timeoutUnit the unit of {@code timeout}
+     */
+    protected CachedGauge(Clock clock, long timeout, TimeUnit timeoutUnit) {
+        this.clock = clock;
+        this.reloadAt = new AtomicLong(clock.getTick());
+        this.timeoutNS = timeoutUnit.toNanos(timeout);
+        this.value = new AtomicReference<>();
+    }
+
+    /**
+     * Loads the value and returns it.
+     *
+     * @return the new value
+     */
+    protected abstract T loadValue();
+
+    @Override
+    public T getValue() {
+        T currentValue = this.value.get();
+        if (shouldLoad() || currentValue == null) {
+            T newValue = loadValue();
+            if (!this.value.compareAndSet(currentValue, newValue)) {
+                return this.value.get();
+            }
+            return newValue;
+        }
+        return currentValue;
+    }
+
+    private boolean shouldLoad() {
+        for ( ;; ) {
+            final long time = clock.getTick();
+            final long current = reloadAt.get();
+            if (current > time) {
+                return false;
+            }
+            if (reloadAt.compareAndSet(current, time + timeoutNS)) {
+                return true;
+            }
+        }
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$1.html new file mode 100644 index 0000000000..d11d6531ff --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$1.html @@ -0,0 +1 @@ +CachedGaugeTest.new CachedGauge() {...}

CachedGaugeTest.new CachedGauge() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total14 of 140%0 of 0n/a222222
{...}80%n/a111111
loadValue()60%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$2.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$2.html new file mode 100644 index 0000000000..81958130cb --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$2.html @@ -0,0 +1 @@ +CachedGaugeTest.new CachedGauge() {...}

CachedGaugeTest.new CachedGauge() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total24 of 240%0 of 0n/a226622
loadValue()160%n/a115511
{...}80%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$3.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$3.html new file mode 100644 index 0000000000..ac6b69b847 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$3.html @@ -0,0 +1 @@ +CachedGaugeTest.new Clock() {...}

CachedGaugeTest.new Clock() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total13 of 130%0 of 0n/a222222
{...}90%n/a111111
getTick()40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$4.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$4.html new file mode 100644 index 0000000000..4cc5164a34 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$4.html @@ -0,0 +1 @@ +CachedGaugeTest.new CachedGauge() {...}

CachedGaugeTest.new CachedGauge() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total15 of 150%0 of 0n/a222222
{...}90%n/a111111
loadValue()60%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest.html new file mode 100644 index 0000000000..53693d63e2 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest.html @@ -0,0 +1 @@ +CachedGaugeTest

CachedGaugeTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total226 of 2260%10 of 100%1212535377
multipleThreadAccessReturnsConsistentResults()520%40%338811
reloadsCachedValueInNegativeTime()510%n/a11131311
lambda$multipleThreadAccessReturnsConsistentResults$0()420%60%44121211
CachedGaugeTest()290%n/a115511
reloadsTheCachedValueAfterTheGivenPeriod()270%n/a118811
cachesTheValueForTheGivenPeriod()170%n/a115511
static {...}80%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest.java.html new file mode 100644 index 0000000000..c7ddb68545 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest.java.html @@ -0,0 +1,132 @@ +CachedGaugeTest.java

CachedGaugeTest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.concurrent.atomic.AtomicLong;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.Assert.assertTrue;
+
+public class CachedGaugeTest {
+    private static final Logger LOGGER = LoggerFactory.getLogger(CachedGaugeTest.class);
+    private static final int THREAD_COUNT = 10;
+    private static final long RUNNING_TIME_MILLIS = TimeUnit.SECONDS.toMillis(10);
+
+    private final AtomicInteger value = new AtomicInteger(0);
+    private final Gauge<Integer> gauge = new CachedGauge<Integer>(100, TimeUnit.MILLISECONDS) {
+        @Override
+        protected Integer loadValue() {
+            return value.incrementAndGet();
+        }
+    };
+    private final Gauge<Integer> shortTimeoutGauge = new CachedGauge<Integer>(1, TimeUnit.MILLISECONDS) {
+        @Override
+        protected Integer loadValue() {
+            try {
+                Thread.sleep(5);
+            } catch (InterruptedException e) {
+                throw new RuntimeException("Thread was interrupted", e);
+            }
+            return value.incrementAndGet();
+        }
+    };
+    private final ExecutorService executor = Executors.newFixedThreadPool(THREAD_COUNT);
+
+    @Test
+    public void cachesTheValueForTheGivenPeriod() {
+        assertThat(gauge.getValue())
+                .isEqualTo(1);
+        assertThat(gauge.getValue())
+                .isEqualTo(1);
+    }
+
+    @Test
+    public void reloadsTheCachedValueAfterTheGivenPeriod() throws Exception {
+        assertThat(gauge.getValue())
+                .isEqualTo(1);
+
+        Thread.sleep(150);
+
+        assertThat(gauge.getValue())
+                .isEqualTo(2);
+
+        assertThat(gauge.getValue())
+                .isEqualTo(2);
+    }
+
+    @Test
+    public void reloadsCachedValueInNegativeTime() throws Exception {
+        AtomicLong time = new AtomicLong(-2L);
+        Clock clock = new Clock() {
+            @Override
+            public long getTick() {
+                return time.get();
+            }
+        };
+        Gauge<Integer> clockGauge = new CachedGauge<Integer>(clock, 1, TimeUnit.NANOSECONDS) {
+            @Override
+            protected Integer loadValue() {
+                return value.incrementAndGet();
+            }
+        };
+        assertThat(clockGauge.getValue())
+                .isEqualTo(1);
+        assertThat(clockGauge.getValue())
+                .isEqualTo(1);
+
+        time.set(-1L);
+
+        assertThat(clockGauge.getValue())
+                .isEqualTo(2);
+        assertThat(clockGauge.getValue())
+                .isEqualTo(2);
+    }
+
+    @Test
+    public void multipleThreadAccessReturnsConsistentResults() throws Exception {
+        List<Future<Boolean>> futures = new ArrayList<>(THREAD_COUNT);
+
+        for (int i = 0; i < THREAD_COUNT; i++) {
+            Future<Boolean> future = executor.submit(() -> {
+                long startTime = System.currentTimeMillis();
+                int lastValue = 0;
+
+                do {
+                    Integer newValue = shortTimeoutGauge.getValue();
+
+                    if (newValue == null) {
+                        LOGGER.warn("Cached gauge returned null value");
+                        return false;
+                    }
+
+                    if (newValue < lastValue) {
+                        LOGGER.error("Cached gauge returned stale value, last: {}, new: {}", lastValue, newValue);
+                        return false;
+                    }
+
+                    lastValue = newValue;
+                } while (System.currentTimeMillis() - startTime <= RUNNING_TIME_MILLIS);
+
+                return true;
+            });
+
+            futures.add(future);
+        }
+
+        for (int i = 0; i < futures.size(); i++) {
+            assertTrue("Future " + i + " failed", futures.get(i).get());
+        }
+
+        executor.shutdown();
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray$Chunk.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray$Chunk.html new file mode 100644 index 0000000000..3d7c6fb239 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray$Chunk.html @@ -0,0 +1 @@ +ChunkedAssociativeLongArray.Chunk

ChunkedAssociativeLongArray.Chunk

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total39 of 390%0 of 0n/a22111122
ChunkedAssociativeLongArray.Chunk(int)200%n/a117711
append(long, long)190%n/a114411
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray.html new file mode 100644 index 0000000000..829dec4554 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray.html @@ -0,0 +1 @@ +ChunkedAssociativeLongArray

ChunkedAssociativeLongArray

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total411 of 4110%52 of 520%404090901414
trim(long, long)870%100%66232311
out()630%60%44131311
values()500%40%33121211
put(long, long)460%100%668811
allocateChunk()370%40%33101011
findFirstIndexOfGreaterEqualElements(long[], int, int, long)260%60%444411
size()240%20%225511
isLastElementIsLessThanKey(ChunkedAssociativeLongArray.Chunk, long)190%40%331111
isFirstElementIsEmptyOrGreaterEqualThanKey(ChunkedAssociativeLongArray.Chunk, long)170%40%331111
ChunkedAssociativeLongArray(int)160%n/a115511
freeChunk(ChunkedAssociativeLongArray.Chunk)140%20%223311
ChunkedAssociativeLongArray()40%n/a112211
clear()40%n/a112211
static {...}40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray.java.html new file mode 100644 index 0000000000..0517e21daa --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray.java.html @@ -0,0 +1,201 @@ +ChunkedAssociativeLongArray.java

ChunkedAssociativeLongArray.java

package com.codahale.metrics;
+
+import java.lang.ref.SoftReference;
+import java.util.ArrayDeque;
+import java.util.Deque;
+import java.util.Iterator;
+
+import static java.lang.System.arraycopy;
+import static java.util.Arrays.binarySearch;
+
+class ChunkedAssociativeLongArray {
+    private static final long[] EMPTY = new long[0];
+    private static final int DEFAULT_CHUNK_SIZE = 512;
+    private static final int MAX_CACHE_SIZE = 128;
+
+    private final int defaultChunkSize;
+
+    /*
+     * We use this ArrayDeque as cache to store chunks that are expired and removed from main data structure.
+     * Then instead of allocating new Chunk immediately we are trying to poll one from this deque.
+     * So if you have constant or slowly changing load ChunkedAssociativeLongArray will never
+     * throw away old chunks or allocate new ones which makes this data structure almost garbage free.
+     */
+    private final ArrayDeque<SoftReference<Chunk>> chunksCache = new ArrayDeque<>();
+
+    private final Deque<Chunk> chunks = new ArrayDeque<>();
+
+    ChunkedAssociativeLongArray() {
+        this(DEFAULT_CHUNK_SIZE);
+    }
+
+    ChunkedAssociativeLongArray(int chunkSize) {
+        this.defaultChunkSize = chunkSize;
+    }
+
+    private Chunk allocateChunk() {
+        while (true) {
+            final SoftReference<Chunk> chunkRef = chunksCache.pollLast();
+            if (chunkRef == null) {
+                return new Chunk(defaultChunkSize);
+            }
+            final Chunk chunk = chunkRef.get();
+            if (chunk != null) {
+                chunk.cursor = 0;
+                chunk.startIndex = 0;
+                chunk.chunkSize = chunk.keys.length;
+                return chunk;
+            }
+        }
+    }
+
+    private void freeChunk(Chunk chunk) {
+        if (chunksCache.size() < MAX_CACHE_SIZE) {
+            chunksCache.add(new SoftReference<>(chunk));
+        }
+    }
+
+    synchronized boolean put(long key, long value) {
+        Chunk activeChunk = chunks.peekLast();
+        if (activeChunk != null && activeChunk.cursor != 0 && activeChunk.keys[activeChunk.cursor - 1] > key) {
+            // key should be the same as last inserted or bigger
+            return false;
+        }
+        if (activeChunk == null || activeChunk.cursor - activeChunk.startIndex == activeChunk.chunkSize) {
+            // The last chunk doesn't exist or full
+            activeChunk = allocateChunk();
+            chunks.add(activeChunk);
+        }
+        activeChunk.append(key, value);
+        return true;
+    }
+
+    synchronized long[] values() {
+        final int valuesSize = size();
+        if (valuesSize == 0) {
+            return EMPTY;
+        }
+
+        final long[] values = new long[valuesSize];
+        int valuesIndex = 0;
+        for (Chunk chunk : chunks) {
+            int length = chunk.cursor - chunk.startIndex;
+            int itemsToCopy = Math.min(valuesSize - valuesIndex, length);
+            arraycopy(chunk.values, chunk.startIndex, values, valuesIndex, itemsToCopy);
+            valuesIndex += length;
+        }
+        return values;
+    }
+
+    synchronized int size() {
+        int result = 0;
+        for (Chunk chunk : chunks) {
+            result += chunk.cursor - chunk.startIndex;
+        }
+        return result;
+    }
+
+    synchronized String out() {
+        final StringBuilder builder = new StringBuilder();
+        final Iterator<Chunk> iterator = chunks.iterator();
+        while (iterator.hasNext()) {
+            final Chunk chunk = iterator.next();
+            builder.append('[');
+            for (int i = chunk.startIndex; i < chunk.cursor; i++) {
+                builder.append('(').append(chunk.keys[i]).append(": ")
+                        .append(chunk.values[i]).append(')').append(' ');
+            }
+            builder.append(']');
+            if (iterator.hasNext()) {
+                builder.append("->");
+            }
+        }
+        return builder.toString();
+    }
+
+    /**
+     * Try to trim all beyond specified boundaries.
+     *
+     * @param startKey the start value for which all elements less than it should be removed.
+     * @param endKey   the end value for which all elements greater/equals than it should be removed.
+     */
+    synchronized void trim(long startKey, long endKey) {
+        /*
+         * [3, 4, 5, 9] -> [10, 13, 14, 15] -> [21, 24, 29, 30] -> [31] :: start layout
+         *       |5______________________________23|                    :: trim(5, 23)
+         *       [5, 9] -> [10, 13, 14, 15] -> [21]                     :: result layout
+         */
+        final Iterator<Chunk> descendingIterator = chunks.descendingIterator();
+        while (descendingIterator.hasNext()) {
+            final Chunk currentTail = descendingIterator.next();
+            if (isFirstElementIsEmptyOrGreaterEqualThanKey(currentTail, endKey)) {
+                freeChunk(currentTail);
+                descendingIterator.remove();
+            } else {
+                currentTail.cursor = findFirstIndexOfGreaterEqualElements(currentTail.keys, currentTail.startIndex,
+                        currentTail.cursor, endKey);
+                break;
+            }
+        }
+
+        final Iterator<Chunk> iterator = chunks.iterator();
+        while (iterator.hasNext()) {
+            final Chunk currentHead = iterator.next();
+            if (isLastElementIsLessThanKey(currentHead, startKey)) {
+                freeChunk(currentHead);
+                iterator.remove();
+            } else {
+                final int newStartIndex = findFirstIndexOfGreaterEqualElements(currentHead.keys, currentHead.startIndex,
+                        currentHead.cursor, startKey);
+                if (currentHead.startIndex != newStartIndex) {
+                    currentHead.startIndex = newStartIndex;
+                    currentHead.chunkSize = currentHead.cursor - currentHead.startIndex;
+                }
+                break;
+            }
+        }
+    }
+
+    synchronized void clear() {
+        chunks.clear();
+    }
+
+    private boolean isFirstElementIsEmptyOrGreaterEqualThanKey(Chunk chunk, long key) {
+        return chunk.cursor == chunk.startIndex || chunk.keys[chunk.startIndex] >= key;
+    }
+
+    private boolean isLastElementIsLessThanKey(Chunk chunk, long key) {
+        return chunk.cursor == chunk.startIndex || chunk.keys[chunk.cursor - 1] < key;
+    }
+
+    private int findFirstIndexOfGreaterEqualElements(long[] array, int startIndex, int endIndex, long minKey) {
+        if (endIndex == startIndex || array[startIndex] >= minKey) {
+            return startIndex;
+        }
+        final int keyIndex = binarySearch(array, startIndex, endIndex, minKey);
+        return keyIndex < 0 ? -(keyIndex + 1) : keyIndex;
+    }
+
+    private static class Chunk {
+
+        private final long[] keys;
+        private final long[] values;
+
+        private int chunkSize; // can differ from keys.length after half clear()
+        private int startIndex = 0;
+        private int cursor = 0;
+
+        private Chunk(int chunkSize) {
+            this.chunkSize = chunkSize;
+            this.keys = new long[chunkSize];
+            this.values = new long[chunkSize];
+        }
+
+        private void append(long key, long value) {
+            keys[cursor] = key;
+            values[cursor] = value;
+            cursor++;
+        }
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArrayTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArrayTest.html new file mode 100644 index 0000000000..e73262726a --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArrayTest.html @@ -0,0 +1 @@ +ChunkedAssociativeLongArrayTest

ChunkedAssociativeLongArrayTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total165 of 1650%0 of 0n/a22262622
testTrim()1620%n/a11252511
ChunkedAssociativeLongArrayTest()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArrayTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArrayTest.java.html new file mode 100644 index 0000000000..bba85682fb --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArrayTest.java.html @@ -0,0 +1,41 @@ +ChunkedAssociativeLongArrayTest.java

ChunkedAssociativeLongArrayTest.java

package com.codahale.metrics;
+
+import static org.assertj.core.api.BDDAssertions.then;
+
+import org.junit.Test;
+
+public class ChunkedAssociativeLongArrayTest {
+
+    @Test
+    public void testTrim() {
+        ChunkedAssociativeLongArray array = new ChunkedAssociativeLongArray(3);
+        array.put(-3, 3);
+        array.put(-2, 1);
+        array.put(0, 5);
+        array.put(3, 0);
+        array.put(9, 8);
+        array.put(15, 0);
+        array.put(19, 5);
+        array.put(21, 5);
+        array.put(34, -9);
+        array.put(109, 5);
+
+        then(array.out())
+                .isEqualTo("[(-3: 3) (-2: 1) (0: 5) ]->[(3: 0) (9: 8) (15: 0) ]->[(19: 5) (21: 5) (34: -9) ]->[(109: 5) ]");
+        then(array.values())
+                .isEqualTo(new long[]{3, 1, 5, 0, 8, 0, 5, 5, -9, 5});
+        then(array.size())
+                .isEqualTo(10);
+
+        array.trim(-2, 20);
+
+        then(array.out())
+                .isEqualTo("[(-2: 1) (0: 5) ]->[(3: 0) (9: 8) (15: 0) ]->[(19: 5) ]");
+        then(array.values())
+                .isEqualTo(new long[]{1, 5, 0, 8, 0, 5});
+        then(array.size())
+                .isEqualTo(6);
+
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ClassMetadataTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ClassMetadataTest.html new file mode 100644 index 0000000000..45521d450a --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ClassMetadataTest.html @@ -0,0 +1 @@ +ClassMetadataTest

ClassMetadataTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total23 of 230%0 of 0n/a334433
testParameterMetadataIsAvailable()140%n/a113311
lambda$testParameterMetadataIsAvailable$0(Parameter)60%n/a111111
ClassMetadataTest()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ClassMetadataTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ClassMetadataTest.java.html new file mode 100644 index 0000000000..5b0be8dd6c --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ClassMetadataTest.java.html @@ -0,0 +1,14 @@ +ClassMetadataTest.java

ClassMetadataTest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class ClassMetadataTest {
+    @Test
+    public void testParameterMetadataIsAvailable() throws NoSuchMethodException {
+        assertThat(DefaultSettableGauge.class.getConstructor(Object.class).getParameters())
+                .allSatisfy(parameter -> assertThat(parameter.isNamePresent()).isTrue());
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Clock$UserTimeClock.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Clock$UserTimeClock.html new file mode 100644 index 0000000000..c80659dee4 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Clock$UserTimeClock.html @@ -0,0 +1 @@ +Clock.UserTimeClock

Clock.UserTimeClock

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total0 of 5100%0 of 0n/a020202
Clock.UserTimeClock()3100%n/a010101
getTick()2100%n/a010101
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Clock$UserTimeClockHolder.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Clock$UserTimeClockHolder.html new file mode 100644 index 0000000000..20a62dda34 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Clock$UserTimeClockHolder.html @@ -0,0 +1 @@ +Clock.UserTimeClockHolder

Clock.UserTimeClockHolder

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total0 of 5100%0 of 0n/a010101
static {...}5100%n/a010101
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Clock.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Clock.html new file mode 100644 index 0000000000..4cb3077b9f --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Clock.html @@ -0,0 +1 @@ +Clock

Clock

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total2 of 771%0 of 0n/a131313
getTime()20%n/a111111
Clock()3100%n/a010101
defaultClock()2100%n/a010101
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Clock.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Clock.java.html new file mode 100644 index 0000000000..5135efee82 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Clock.java.html @@ -0,0 +1,47 @@ +Clock.java

Clock.java

package com.codahale.metrics;
+
+/**
+ * An abstraction for how time passes. It is passed to {@link Timer} to track timing.
+ */
+public abstract class Clock {
+    /**
+     * Returns the current time tick.
+     *
+     * @return time tick in nanoseconds
+     */
+    public abstract long getTick();
+
+    /**
+     * Returns the current time in milliseconds.
+     *
+     * @return time in milliseconds
+     */
+    public long getTime() {
+        return System.currentTimeMillis();
+    }
+
+    /**
+     * The default clock to use.
+     *
+     * @return the default {@link Clock} instance
+     * @see Clock.UserTimeClock
+     */
+    public static Clock defaultClock() {
+        return UserTimeClockHolder.DEFAULT;
+    }
+
+    /**
+     * A clock implementation which returns the current time in epoch nanoseconds.
+     */
+    public static class UserTimeClock extends Clock {
+        @Override
+        public long getTick() {
+            return System.nanoTime();
+        }
+    }
+
+    private static class UserTimeClockHolder {
+        private static final Clock DEFAULT = new UserTimeClock();
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ClockTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ClockTest.html new file mode 100644 index 0000000000..c488709c45 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ClockTest.html @@ -0,0 +1 @@ +ClockTest

ClockTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total36 of 360%0 of 0n/a33121233
userTimeClock()270%n/a118811
defaultsToUserTime()60%n/a113311
ClockTest()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ClockTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ClockTest.java.html new file mode 100644 index 0000000000..546d8586fd --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ClockTest.java.html @@ -0,0 +1,29 @@ +ClockTest.java

ClockTest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.offset;
+
+public class ClockTest {
+
+    @Test
+    public void userTimeClock() {
+        final Clock.UserTimeClock clock = new Clock.UserTimeClock();
+
+        assertThat((double) clock.getTime())
+                .isEqualTo(System.currentTimeMillis(),
+                        offset(100.0));
+
+        assertThat((double) clock.getTick())
+                .isEqualTo(System.nanoTime(),
+                        offset(1000000.0));
+    }
+
+    @Test
+    public void defaultsToUserTime() {
+        assertThat(Clock.defaultClock())
+                .isInstanceOf(Clock.UserTimeClock.class);
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter$Builder.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter$Builder.html new file mode 100644 index 0000000000..7959fa6788 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter$Builder.html @@ -0,0 +1 @@ +ConsoleReporter.Builder

ConsoleReporter.Builder

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total113 of 1130%0 of 0n/a121234341212
ConsoleReporter.Builder(MetricRegistry)360%n/a11131311
build()270%n/a111111
shutdownExecutorOnStop(boolean)50%n/a112211
scheduleOn(ScheduledExecutorService)50%n/a112211
outputTo(PrintStream)50%n/a112211
formattedFor(Locale)50%n/a112211
withClock(Clock)50%n/a112211
formattedFor(TimeZone)50%n/a112211
convertRatesTo(TimeUnit)50%n/a112211
convertDurationsTo(TimeUnit)50%n/a112211
filter(MetricFilter)50%n/a112211
disabledMetricAttributes(Set)50%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter.html new file mode 100644 index 0000000000..144a0bd88a --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter.html @@ -0,0 +1 @@ +ConsoleReporter

ConsoleReporter

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total897 of 8970%24 of 240%222299991010
printTimer(Timer)3290%n/a11171711
report(SortedMap, SortedMap, SortedMap, SortedMap, SortedMap)1870%200%1111414111
printHistogram(Histogram)1690%n/a11131311
printMeter(Meter)1040%n/a116611
ConsoleReporter(MetricRegistry, PrintStream, Locale, Clock, TimeZone, TimeUnit, TimeUnit, MetricFilter, ScheduledExecutorService, boolean, Set)300%n/a117711
printWithBanner(String, char)280%20%226611
printCounter(Map.Entry)180%n/a112211
printGauge(Gauge)150%n/a112211
printIfEnabled(MetricAttribute, String)110%20%224411
forRegistry(MetricRegistry)60%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter.java.html new file mode 100644 index 0000000000..7813a30756 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter.java.html @@ -0,0 +1,358 @@ +ConsoleReporter.java

ConsoleReporter.java

package com.codahale.metrics;
+
+import java.io.PrintStream;
+import java.text.DateFormat;
+import java.util.Collections;
+import java.util.Date;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Set;
+import java.util.SortedMap;
+import java.util.TimeZone;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * A reporter which outputs measurements to a {@link PrintStream}, like {@code System.out}.
+ */
+public class ConsoleReporter extends ScheduledReporter {
+    /**
+     * Returns a new {@link Builder} for {@link ConsoleReporter}.
+     *
+     * @param registry the registry to report
+     * @return a {@link Builder} instance for a {@link ConsoleReporter}
+     */
+    public static Builder forRegistry(MetricRegistry registry) {
+        return new Builder(registry);
+    }
+
+    /**
+     * A builder for {@link ConsoleReporter} instances. Defaults to using the default locale and
+     * time zone, writing to {@code System.out}, converting rates to events/second, converting
+     * durations to milliseconds, and not filtering metrics.
+     */
+    public static class Builder {
+        private final MetricRegistry registry;
+        private PrintStream output;
+        private Locale locale;
+        private Clock clock;
+        private TimeZone timeZone;
+        private TimeUnit rateUnit;
+        private TimeUnit durationUnit;
+        private MetricFilter filter;
+        private ScheduledExecutorService executor;
+        private boolean shutdownExecutorOnStop;
+        private Set<MetricAttribute> disabledMetricAttributes;
+
+        private Builder(MetricRegistry registry) {
+            this.registry = registry;
+            this.output = System.out;
+            this.locale = Locale.getDefault();
+            this.clock = Clock.defaultClock();
+            this.timeZone = TimeZone.getDefault();
+            this.rateUnit = TimeUnit.SECONDS;
+            this.durationUnit = TimeUnit.MILLISECONDS;
+            this.filter = MetricFilter.ALL;
+            this.executor = null;
+            this.shutdownExecutorOnStop = true;
+            disabledMetricAttributes = Collections.emptySet();
+        }
+
+        /**
+         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
+         * Default value is true.
+         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
+         *
+         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
+         * @return {@code this}
+         */
+        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
+            this.shutdownExecutorOnStop = shutdownExecutorOnStop;
+            return this;
+        }
+
+        /**
+         * Specifies the executor to use while scheduling reporting of metrics.
+         * Default value is null.
+         * Null value leads to executor will be auto created on start.
+         *
+         * @param executor the executor to use while scheduling reporting of metrics.
+         * @return {@code this}
+         */
+        public Builder scheduleOn(ScheduledExecutorService executor) {
+            this.executor = executor;
+            return this;
+        }
+
+        /**
+         * Write to the given {@link PrintStream}.
+         *
+         * @param output a {@link PrintStream} instance.
+         * @return {@code this}
+         */
+        public Builder outputTo(PrintStream output) {
+            this.output = output;
+            return this;
+        }
+
+        /**
+         * Format numbers for the given {@link Locale}.
+         *
+         * @param locale a {@link Locale}
+         * @return {@code this}
+         */
+        public Builder formattedFor(Locale locale) {
+            this.locale = locale;
+            return this;
+        }
+
+        /**
+         * Use the given {@link Clock} instance for the time.
+         *
+         * @param clock a {@link Clock} instance
+         * @return {@code this}
+         */
+        public Builder withClock(Clock clock) {
+            this.clock = clock;
+            return this;
+        }
+
+        /**
+         * Use the given {@link TimeZone} for the time.
+         *
+         * @param timeZone a {@link TimeZone}
+         * @return {@code this}
+         */
+        public Builder formattedFor(TimeZone timeZone) {
+            this.timeZone = timeZone;
+            return this;
+        }
+
+        /**
+         * Convert rates to the given time unit.
+         *
+         * @param rateUnit a unit of time
+         * @return {@code this}
+         */
+        public Builder convertRatesTo(TimeUnit rateUnit) {
+            this.rateUnit = rateUnit;
+            return this;
+        }
+
+        /**
+         * Convert durations to the given time unit.
+         *
+         * @param durationUnit a unit of time
+         * @return {@code this}
+         */
+        public Builder convertDurationsTo(TimeUnit durationUnit) {
+            this.durationUnit = durationUnit;
+            return this;
+        }
+
+        /**
+         * Only report metrics which match the given filter.
+         *
+         * @param filter a {@link MetricFilter}
+         * @return {@code this}
+         */
+        public Builder filter(MetricFilter filter) {
+            this.filter = filter;
+            return this;
+        }
+
+        /**
+         * Don't report the passed metric attributes for all metrics (e.g. "p999", "stddev" or "m15").
+         * See {@link MetricAttribute}.
+         *
+         * @param disabledMetricAttributes a {@link MetricFilter}
+         * @return {@code this}
+         */
+        public Builder disabledMetricAttributes(Set<MetricAttribute> disabledMetricAttributes) {
+            this.disabledMetricAttributes = disabledMetricAttributes;
+            return this;
+        }
+
+        /**
+         * Builds a {@link ConsoleReporter} with the given properties.
+         *
+         * @return a {@link ConsoleReporter}
+         */
+        public ConsoleReporter build() {
+            return new ConsoleReporter(registry,
+                    output,
+                    locale,
+                    clock,
+                    timeZone,
+                    rateUnit,
+                    durationUnit,
+                    filter,
+                    executor,
+                    shutdownExecutorOnStop,
+                    disabledMetricAttributes);
+        }
+    }
+
+    private static final int CONSOLE_WIDTH = 80;
+
+    private final PrintStream output;
+    private final Locale locale;
+    private final Clock clock;
+    private final DateFormat dateFormat;
+
+    private ConsoleReporter(MetricRegistry registry,
+                            PrintStream output,
+                            Locale locale,
+                            Clock clock,
+                            TimeZone timeZone,
+                            TimeUnit rateUnit,
+                            TimeUnit durationUnit,
+                            MetricFilter filter,
+                            ScheduledExecutorService executor,
+                            boolean shutdownExecutorOnStop,
+                            Set<MetricAttribute> disabledMetricAttributes) {
+        super(registry, "console-reporter", filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, disabledMetricAttributes);
+        this.output = output;
+        this.locale = locale;
+        this.clock = clock;
+        this.dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT,
+                DateFormat.MEDIUM,
+                locale);
+        dateFormat.setTimeZone(timeZone);
+    }
+
+    @Override
+    @SuppressWarnings("rawtypes")
+    public void report(SortedMap<String, Gauge> gauges,
+                       SortedMap<String, Counter> counters,
+                       SortedMap<String, Histogram> histograms,
+                       SortedMap<String, Meter> meters,
+                       SortedMap<String, Timer> timers) {
+        final String dateTime = dateFormat.format(new Date(clock.getTime()));
+        printWithBanner(dateTime, '=');
+        output.println();
+
+        if (!gauges.isEmpty()) {
+            printWithBanner("-- Gauges", '-');
+            for (Map.Entry<String, Gauge> entry : gauges.entrySet()) {
+                output.println(entry.getKey());
+                printGauge(entry.getValue());
+            }
+            output.println();
+        }
+
+        if (!counters.isEmpty()) {
+            printWithBanner("-- Counters", '-');
+            for (Map.Entry<String, Counter> entry : counters.entrySet()) {
+                output.println(entry.getKey());
+                printCounter(entry);
+            }
+            output.println();
+        }
+
+        if (!histograms.isEmpty()) {
+            printWithBanner("-- Histograms", '-');
+            for (Map.Entry<String, Histogram> entry : histograms.entrySet()) {
+                output.println(entry.getKey());
+                printHistogram(entry.getValue());
+            }
+            output.println();
+        }
+
+        if (!meters.isEmpty()) {
+            printWithBanner("-- Meters", '-');
+            for (Map.Entry<String, Meter> entry : meters.entrySet()) {
+                output.println(entry.getKey());
+                printMeter(entry.getValue());
+            }
+            output.println();
+        }
+
+        if (!timers.isEmpty()) {
+            printWithBanner("-- Timers", '-');
+            for (Map.Entry<String, Timer> entry : timers.entrySet()) {
+                output.println(entry.getKey());
+                printTimer(entry.getValue());
+            }
+            output.println();
+        }
+
+        output.println();
+        output.flush();
+    }
+
+    private void printMeter(Meter meter) {
+        printIfEnabled(MetricAttribute.COUNT, String.format(locale, "             count = %d", meter.getCount()));
+        printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, "         mean rate = %2.2f events/%s", convertRate(meter.getMeanRate()), getRateUnit()));
+        printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, "     1-minute rate = %2.2f events/%s", convertRate(meter.getOneMinuteRate()), getRateUnit()));
+        printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, "     5-minute rate = %2.2f events/%s", convertRate(meter.getFiveMinuteRate()), getRateUnit()));
+        printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, "    15-minute rate = %2.2f events/%s", convertRate(meter.getFifteenMinuteRate()), getRateUnit()));
+    }
+
+    private void printCounter(Map.Entry<String, Counter> entry) {
+        output.printf(locale, "             count = %d%n", entry.getValue().getCount());
+    }
+
+    private void printGauge(Gauge<?> gauge) {
+        output.printf(locale, "             value = %s%n", gauge.getValue());
+    }
+
+    private void printHistogram(Histogram histogram) {
+        printIfEnabled(MetricAttribute.COUNT, String.format(locale, "             count = %d", histogram.getCount()));
+        Snapshot snapshot = histogram.getSnapshot();
+        printIfEnabled(MetricAttribute.MIN, String.format(locale, "               min = %d", snapshot.getMin()));
+        printIfEnabled(MetricAttribute.MAX, String.format(locale, "               max = %d", snapshot.getMax()));
+        printIfEnabled(MetricAttribute.MEAN, String.format(locale, "              mean = %2.2f", snapshot.getMean()));
+        printIfEnabled(MetricAttribute.STDDEV, String.format(locale, "            stddev = %2.2f", snapshot.getStdDev()));
+        printIfEnabled(MetricAttribute.P50, String.format(locale, "            median = %2.2f", snapshot.getMedian()));
+        printIfEnabled(MetricAttribute.P75, String.format(locale, "              75%% <= %2.2f", snapshot.get75thPercentile()));
+        printIfEnabled(MetricAttribute.P95, String.format(locale, "              95%% <= %2.2f", snapshot.get95thPercentile()));
+        printIfEnabled(MetricAttribute.P98, String.format(locale, "              98%% <= %2.2f", snapshot.get98thPercentile()));
+        printIfEnabled(MetricAttribute.P99, String.format(locale, "              99%% <= %2.2f", snapshot.get99thPercentile()));
+        printIfEnabled(MetricAttribute.P999, String.format(locale, "            99.9%% <= %2.2f", snapshot.get999thPercentile()));
+    }
+
+    private void printTimer(Timer timer) {
+        final Snapshot snapshot = timer.getSnapshot();
+        printIfEnabled(MetricAttribute.COUNT, String.format(locale, "             count = %d", timer.getCount()));
+        printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, "         mean rate = %2.2f calls/%s", convertRate(timer.getMeanRate()), getRateUnit()));
+        printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, "     1-minute rate = %2.2f calls/%s", convertRate(timer.getOneMinuteRate()), getRateUnit()));
+        printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, "     5-minute rate = %2.2f calls/%s", convertRate(timer.getFiveMinuteRate()), getRateUnit()));
+        printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, "    15-minute rate = %2.2f calls/%s", convertRate(timer.getFifteenMinuteRate()), getRateUnit()));
+
+        printIfEnabled(MetricAttribute.MIN, String.format(locale, "               min = %2.2f %s", convertDuration(snapshot.getMin()), getDurationUnit()));
+        printIfEnabled(MetricAttribute.MAX, String.format(locale, "               max = %2.2f %s", convertDuration(snapshot.getMax()), getDurationUnit()));
+        printIfEnabled(MetricAttribute.MEAN, String.format(locale, "              mean = %2.2f %s", convertDuration(snapshot.getMean()), getDurationUnit()));
+        printIfEnabled(MetricAttribute.STDDEV, String.format(locale, "            stddev = %2.2f %s", convertDuration(snapshot.getStdDev()), getDurationUnit()));
+        printIfEnabled(MetricAttribute.P50, String.format(locale, "            median = %2.2f %s", convertDuration(snapshot.getMedian()), getDurationUnit()));
+        printIfEnabled(MetricAttribute.P75, String.format(locale, "              75%% <= %2.2f %s", convertDuration(snapshot.get75thPercentile()), getDurationUnit()));
+        printIfEnabled(MetricAttribute.P95, String.format(locale, "              95%% <= %2.2f %s", convertDuration(snapshot.get95thPercentile()), getDurationUnit()));
+        printIfEnabled(MetricAttribute.P98, String.format(locale, "              98%% <= %2.2f %s", convertDuration(snapshot.get98thPercentile()), getDurationUnit()));
+        printIfEnabled(MetricAttribute.P99, String.format(locale, "              99%% <= %2.2f %s", convertDuration(snapshot.get99thPercentile()), getDurationUnit()));
+        printIfEnabled(MetricAttribute.P999, String.format(locale, "            99.9%% <= %2.2f %s", convertDuration(snapshot.get999thPercentile()), getDurationUnit()));
+    }
+
+    private void printWithBanner(String s, char c) {
+        output.print(s);
+        output.print(' ');
+        for (int i = 0; i < (CONSOLE_WIDTH - s.length() - 1); i++) {
+            output.print(c);
+        }
+        output.println();
+    }
+
+    /**
+     * Print only if the attribute is enabled
+     *
+     * @param type   Metric attribute
+     * @param status Status to be logged
+     */
+    private void printIfEnabled(MetricAttribute type, String status) {
+        if (getDisabledMetricAttributes().contains(type)) {
+            return;
+        }
+
+        output.println(status);
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporterTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporterTest.html new file mode 100644 index 0000000000..4301f11873 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporterTest.html @@ -0,0 +1 @@ +ConsoleReporterTest

ConsoleReporterTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total1,465 of 1,4650%6 of 60%18182102101515
reportTimerWithDisabledAttributes()2860%n/a11383811
reportsTimerValues()2720%n/a11272711
reportHistogramWithDisabledAttributes()2100%n/a11333311
reportsHistogramValues()1960%n/a11222211
reportMeterWithDisabledAttributes()1310%n/a11252511
reportsMeterValues()1140%n/a11141411
reportsCounterValues()660%n/a11101011
ConsoleReporterTest()560%n/a11161611
reportsGaugeValues()560%n/a119911
lines(String[])320%20%224411
setUp()230%40%337711
map(String, Object)110%n/a113311
consoleOutput()50%n/a111111
map()40%n/a111111
lambda$reportsGaugeValues$0()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporterTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporterTest.java.html new file mode 100644 index 0000000000..58c4170e76 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporterTest.java.html @@ -0,0 +1,418 @@ +ConsoleReporterTest.java

ConsoleReporterTest.java

package com.codahale.metrics;
+
+import org.apache.commons.lang3.JavaVersion;
+import org.apache.commons.lang3.SystemUtils;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.io.ByteArrayOutputStream;
+import java.io.PrintStream;
+import java.io.UnsupportedEncodingException;
+import java.util.EnumSet;
+import java.util.Locale;
+import java.util.Set;
+import java.util.SortedMap;
+import java.util.TimeZone;
+import java.util.TreeMap;
+import java.util.concurrent.TimeUnit;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+public class ConsoleReporterTest {
+    private final Locale locale = Locale.US;
+    private final TimeZone timeZone = TimeZone.getTimeZone("America/Los_Angeles");
+
+    private final MetricRegistry registry = mock(MetricRegistry.class);
+    private final Clock clock = mock(Clock.class);
+    private final ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+    private final PrintStream output = new PrintStream(bytes);
+    private final ConsoleReporter reporter = ConsoleReporter.forRegistry(registry)
+            .outputTo(output)
+            .formattedFor(locale)
+            .withClock(clock)
+            .formattedFor(timeZone)
+            .convertRatesTo(TimeUnit.SECONDS)
+            .convertDurationsTo(TimeUnit.MILLISECONDS)
+            .filter(MetricFilter.ALL)
+            .build();
+    private String dateHeader;
+
+    @Before
+    public void setUp() throws Exception {
+        when(clock.getTime()).thenReturn(1363568676000L);
+        // JDK9 has changed the java.text.DateFormat API implementation according to Unicode.
+        // See http://mail.openjdk.java.net/pipermail/jdk9-dev/2017-April/005732.html
+        dateHeader = SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_8) ?
+                "3/17/13 6:04:36 PM =============================================================" :
+                // https://bugs.openjdk.org/browse/JDK-8304925
+                SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_20) ?
+                        "3/17/13, 6:04:36\u202FPM ============================================================" :
+                        "3/17/13, 6:04:36 PM ============================================================";
+    }
+
+    @Test
+    public void reportsGaugeValues() throws Exception {
+        final Gauge<Integer> gauge = () -> 1;
+
+        reporter.report(map("gauge", gauge),
+                map(),
+                map(),
+                map(),
+                map());
+
+        assertThat(consoleOutput())
+                .isEqualTo(lines(
+                        dateHeader,
+                        "",
+                        "-- Gauges ----------------------------------------------------------------------",
+                        "gauge",
+                        "             value = 1",
+                        "",
+                        ""
+                ));
+    }
+
+    @Test
+    public void reportsCounterValues() throws Exception {
+        final Counter counter = mock(Counter.class);
+        when(counter.getCount()).thenReturn(100L);
+
+        reporter.report(map(),
+                map("test.counter", counter),
+                map(),
+                map(),
+                map());
+
+        assertThat(consoleOutput())
+                .isEqualTo(lines(
+                        dateHeader,
+                        "",
+                        "-- Counters --------------------------------------------------------------------",
+                        "test.counter",
+                        "             count = 100",
+                        "",
+                        ""
+                ));
+    }
+
+    @Test
+    public void reportsHistogramValues() throws Exception {
+        final Histogram histogram = mock(Histogram.class);
+        when(histogram.getCount()).thenReturn(1L);
+
+        final Snapshot snapshot = mock(Snapshot.class);
+        when(snapshot.getMax()).thenReturn(2L);
+        when(snapshot.getMean()).thenReturn(3.0);
+        when(snapshot.getMin()).thenReturn(4L);
+        when(snapshot.getStdDev()).thenReturn(5.0);
+        when(snapshot.getMedian()).thenReturn(6.0);
+        when(snapshot.get75thPercentile()).thenReturn(7.0);
+        when(snapshot.get95thPercentile()).thenReturn(8.0);
+        when(snapshot.get98thPercentile()).thenReturn(9.0);
+        when(snapshot.get99thPercentile()).thenReturn(10.0);
+        when(snapshot.get999thPercentile()).thenReturn(11.0);
+
+        when(histogram.getSnapshot()).thenReturn(snapshot);
+
+        reporter.report(map(),
+                map(),
+                map("test.histogram", histogram),
+                map(),
+                map());
+
+        assertThat(consoleOutput())
+                .isEqualTo(lines(
+                        dateHeader,
+                        "",
+                        "-- Histograms ------------------------------------------------------------------",
+                        "test.histogram",
+                        "             count = 1",
+                        "               min = 4",
+                        "               max = 2",
+                        "              mean = 3.00",
+                        "            stddev = 5.00",
+                        "            median = 6.00",
+                        "              75% <= 7.00",
+                        "              95% <= 8.00",
+                        "              98% <= 9.00",
+                        "              99% <= 10.00",
+                        "            99.9% <= 11.00",
+                        "",
+                        ""
+                ));
+    }
+
+    @Test
+    public void reportsMeterValues() throws Exception {
+        final Meter meter = mock(Meter.class);
+        when(meter.getCount()).thenReturn(1L);
+        when(meter.getMeanRate()).thenReturn(2.0);
+        when(meter.getOneMinuteRate()).thenReturn(3.0);
+        when(meter.getFiveMinuteRate()).thenReturn(4.0);
+        when(meter.getFifteenMinuteRate()).thenReturn(5.0);
+
+        reporter.report(map(),
+                map(),
+                map(),
+                map("test.meter", meter),
+                map());
+
+        assertThat(consoleOutput())
+                .isEqualTo(lines(
+                        dateHeader,
+                        "",
+                        "-- Meters ----------------------------------------------------------------------",
+                        "test.meter",
+                        "             count = 1",
+                        "         mean rate = 2.00 events/second",
+                        "     1-minute rate = 3.00 events/second",
+                        "     5-minute rate = 4.00 events/second",
+                        "    15-minute rate = 5.00 events/second",
+                        "",
+                        ""
+                ));
+    }
+
+    @Test
+    public void reportsTimerValues() throws Exception {
+        final Timer timer = mock(Timer.class);
+        when(timer.getCount()).thenReturn(1L);
+        when(timer.getMeanRate()).thenReturn(2.0);
+        when(timer.getOneMinuteRate()).thenReturn(3.0);
+        when(timer.getFiveMinuteRate()).thenReturn(4.0);
+        when(timer.getFifteenMinuteRate()).thenReturn(5.0);
+
+        final Snapshot snapshot = mock(Snapshot.class);
+        when(snapshot.getMax()).thenReturn(TimeUnit.MILLISECONDS.toNanos(100));
+        when(snapshot.getMean()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(200));
+        when(snapshot.getMin()).thenReturn(TimeUnit.MILLISECONDS.toNanos(300));
+        when(snapshot.getStdDev()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(400));
+        when(snapshot.getMedian()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(500));
+        when(snapshot.get75thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(600));
+        when(snapshot.get95thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(700));
+        when(snapshot.get98thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(800));
+        when(snapshot.get99thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(900));
+        when(snapshot.get999thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS
+                .toNanos(1000));
+
+        when(timer.getSnapshot()).thenReturn(snapshot);
+
+        reporter.report(map(),
+                map(),
+                map(),
+                map(),
+                map("test.another.timer", timer));
+
+        assertThat(consoleOutput())
+                .isEqualTo(lines(
+                        dateHeader,
+                        "",
+                        "-- Timers ----------------------------------------------------------------------",
+                        "test.another.timer",
+                        "             count = 1",
+                        "         mean rate = 2.00 calls/second",
+                        "     1-minute rate = 3.00 calls/second",
+                        "     5-minute rate = 4.00 calls/second",
+                        "    15-minute rate = 5.00 calls/second",
+                        "               min = 300.00 milliseconds",
+                        "               max = 100.00 milliseconds",
+                        "              mean = 200.00 milliseconds",
+                        "            stddev = 400.00 milliseconds",
+                        "            median = 500.00 milliseconds",
+                        "              75% <= 600.00 milliseconds",
+                        "              95% <= 700.00 milliseconds",
+                        "              98% <= 800.00 milliseconds",
+                        "              99% <= 900.00 milliseconds",
+                        "            99.9% <= 1000.00 milliseconds",
+                        "",
+                        ""
+                ));
+    }
+
+    @Test
+    public void reportMeterWithDisabledAttributes() throws Exception {
+        Set<MetricAttribute> disabledMetricAttributes = EnumSet.of(MetricAttribute.M15_RATE, MetricAttribute.M5_RATE, MetricAttribute.COUNT);
+
+        final ConsoleReporter customReporter = ConsoleReporter.forRegistry(registry)
+                .outputTo(output)
+                .formattedFor(locale)
+                .withClock(clock)
+                .formattedFor(timeZone)
+                .convertRatesTo(TimeUnit.SECONDS)
+                .convertDurationsTo(TimeUnit.MILLISECONDS)
+                .filter(MetricFilter.ALL)
+                .disabledMetricAttributes(disabledMetricAttributes)
+                .build();
+
+        final Meter meter = mock(Meter.class);
+        when(meter.getCount()).thenReturn(1L);
+        when(meter.getMeanRate()).thenReturn(2.0);
+        when(meter.getOneMinuteRate()).thenReturn(3.0);
+        when(meter.getFiveMinuteRate()).thenReturn(4.0);
+        when(meter.getFifteenMinuteRate()).thenReturn(5.0);
+
+        customReporter.report(map(),
+                map(),
+                map(),
+                map("test.meter", meter),
+                map());
+
+        assertThat(consoleOutput())
+                .isEqualTo(lines(
+                        dateHeader,
+                        "",
+                        "-- Meters ----------------------------------------------------------------------",
+                        "test.meter",
+                        "         mean rate = 2.00 events/second",
+                        "     1-minute rate = 3.00 events/second",
+                        "",
+                        ""
+                ));
+    }
+
+    @Test
+    public void reportTimerWithDisabledAttributes() throws Exception {
+        Set<MetricAttribute> disabledMetricAttributes = EnumSet.of(MetricAttribute.P50, MetricAttribute.P999, MetricAttribute.M5_RATE, MetricAttribute.MAX);
+
+        final ConsoleReporter customReporter = ConsoleReporter.forRegistry(registry)
+                .outputTo(output)
+                .formattedFor(locale)
+                .withClock(clock)
+                .formattedFor(timeZone)
+                .convertRatesTo(TimeUnit.SECONDS)
+                .convertDurationsTo(TimeUnit.MILLISECONDS)
+                .filter(MetricFilter.ALL)
+                .disabledMetricAttributes(disabledMetricAttributes)
+                .build();
+
+        final Timer timer = mock(Timer.class);
+        when(timer.getCount()).thenReturn(1L);
+        when(timer.getMeanRate()).thenReturn(2.0);
+        when(timer.getOneMinuteRate()).thenReturn(3.0);
+        when(timer.getFiveMinuteRate()).thenReturn(4.0);
+        when(timer.getFifteenMinuteRate()).thenReturn(5.0);
+
+        final Snapshot snapshot = mock(Snapshot.class);
+        when(snapshot.getMax()).thenReturn(TimeUnit.MILLISECONDS.toNanos(100));
+        when(snapshot.getMean()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(200));
+        when(snapshot.getMin()).thenReturn(TimeUnit.MILLISECONDS.toNanos(300));
+        when(snapshot.getStdDev()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(400));
+        when(snapshot.getMedian()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(500));
+        when(snapshot.get75thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(600));
+        when(snapshot.get95thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(700));
+        when(snapshot.get98thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(800));
+        when(snapshot.get99thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(900));
+        when(snapshot.get999thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS
+                .toNanos(1000));
+
+        when(timer.getSnapshot()).thenReturn(snapshot);
+
+        customReporter.report(map(),
+                map(),
+                map(),
+                map(),
+                map("test.another.timer", timer));
+
+        assertThat(consoleOutput())
+                .isEqualTo(lines(
+                        dateHeader,
+                        "",
+                        "-- Timers ----------------------------------------------------------------------",
+                        "test.another.timer",
+                        "             count = 1",
+                        "         mean rate = 2.00 calls/second",
+                        "     1-minute rate = 3.00 calls/second",
+                        "    15-minute rate = 5.00 calls/second",
+                        "               min = 300.00 milliseconds",
+                        "              mean = 200.00 milliseconds",
+                        "            stddev = 400.00 milliseconds",
+                        "              75% <= 600.00 milliseconds",
+                        "              95% <= 700.00 milliseconds",
+                        "              98% <= 800.00 milliseconds",
+                        "              99% <= 900.00 milliseconds",
+                        "",
+                        ""
+                ));
+    }
+
+    @Test
+    public void reportHistogramWithDisabledAttributes() throws Exception {
+        Set<MetricAttribute> disabledMetricAttributes = EnumSet.of(MetricAttribute.MIN, MetricAttribute.MAX, MetricAttribute.STDDEV, MetricAttribute.P95);
+
+        final ConsoleReporter customReporter = ConsoleReporter.forRegistry(registry)
+                .outputTo(output)
+                .formattedFor(locale)
+                .withClock(clock)
+                .formattedFor(timeZone)
+                .convertRatesTo(TimeUnit.SECONDS)
+                .convertDurationsTo(TimeUnit.MILLISECONDS)
+                .filter(MetricFilter.ALL)
+                .disabledMetricAttributes(disabledMetricAttributes)
+                .build();
+
+        final Histogram histogram = mock(Histogram.class);
+        when(histogram.getCount()).thenReturn(1L);
+
+        final Snapshot snapshot = mock(Snapshot.class);
+        when(snapshot.getMax()).thenReturn(2L);
+        when(snapshot.getMean()).thenReturn(3.0);
+        when(snapshot.getMin()).thenReturn(4L);
+        when(snapshot.getStdDev()).thenReturn(5.0);
+        when(snapshot.getMedian()).thenReturn(6.0);
+        when(snapshot.get75thPercentile()).thenReturn(7.0);
+        when(snapshot.get95thPercentile()).thenReturn(8.0);
+        when(snapshot.get98thPercentile()).thenReturn(9.0);
+        when(snapshot.get99thPercentile()).thenReturn(10.0);
+        when(snapshot.get999thPercentile()).thenReturn(11.0);
+
+        when(histogram.getSnapshot()).thenReturn(snapshot);
+
+        customReporter.report(map(),
+                map(),
+                map("test.histogram", histogram),
+                map(),
+                map());
+
+        assertThat(consoleOutput())
+                .isEqualTo(lines(
+                        dateHeader,
+                        "",
+                        "-- Histograms ------------------------------------------------------------------",
+                        "test.histogram",
+                        "             count = 1",
+                        "              mean = 3.00",
+                        "            median = 6.00",
+                        "              75% <= 7.00",
+                        "              98% <= 9.00",
+                        "              99% <= 10.00",
+                        "            99.9% <= 11.00",
+                        "",
+                        ""
+                ));
+    }
+
+    private String lines(String... lines) {
+        final StringBuilder builder = new StringBuilder();
+        for (String line : lines) {
+            builder.append(line).append(String.format("%n"));
+        }
+        return builder.toString();
+    }
+
+    private String consoleOutput() throws UnsupportedEncodingException {
+        return bytes.toString("UTF-8");
+    }
+
+    private <T> SortedMap<String, T> map() {
+        return new TreeMap<>();
+    }
+
+    private <T> SortedMap<String, T> map(String name, T metric) {
+        final TreeMap<String, T> map = new TreeMap<>();
+        map.put(name, metric);
+        return map;
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Counter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Counter.html new file mode 100644 index 0000000000..e0835f551d --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Counter.html @@ -0,0 +1 @@ +Counter

Counter

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total31 of 310%0 of 0n/a66121266
Counter()80%n/a113311
dec(long)60%n/a112211
inc(long)50%n/a112211
inc()40%n/a112211
dec()40%n/a112211
getCount()40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Counter.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Counter.java.html new file mode 100644 index 0000000000..e915b5497e --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Counter.java.html @@ -0,0 +1,57 @@ +Counter.java

Counter.java

package com.codahale.metrics;
+
+import java.util.concurrent.atomic.LongAdder;
+
+/**
+ * An incrementing and decrementing counter metric.
+ */
+public class Counter implements Metric, Counting {
+    private final LongAdder count;
+
+    public Counter() {
+        this.count = new LongAdder();
+    }
+
+    /**
+     * Increment the counter by one.
+     */
+    public void inc() {
+        inc(1);
+    }
+
+    /**
+     * Increment the counter by {@code n}.
+     *
+     * @param n the amount by which the counter will be increased
+     */
+    public void inc(long n) {
+        count.add(n);
+    }
+
+    /**
+     * Decrement the counter by one.
+     */
+    public void dec() {
+        dec(1);
+    }
+
+    /**
+     * Decrement the counter by {@code n}.
+     *
+     * @param n the amount by which the counter will be decreased
+     */
+    public void dec(long n) {
+        count.add(-n);
+    }
+
+    /**
+     * Returns the counter's current value.
+     *
+     * @return the counter's current value
+     */
+    @Override
+    public long getCount() {
+        return count.sum();
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CounterTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CounterTest.html new file mode 100644 index 0000000000..a91eb2ffeb --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/CounterTest.html @@ -0,0 +1 @@ +CounterTest

CounterTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total85 of 850%0 of 0n/a88292988
incrementsByAnArbitraryDelta()120%n/a114411
decrementsByAnArbitraryDelta()120%n/a114411
incrementByNegativeDelta()120%n/a114411
decrementByNegativeDelta()120%n/a114411
incrementsByOne()110%n/a114411
decrementsByOne()110%n/a114411
CounterTest()80%n/a112211
startsAtZero()70%n/a113311
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CounterTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CounterTest.java.html new file mode 100644 index 0000000000..f888c3feaa --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/CounterTest.java.html @@ -0,0 +1,64 @@ +CounterTest.java

CounterTest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class CounterTest {
+    private final Counter counter = new Counter();
+
+    @Test
+    public void startsAtZero() {
+        assertThat(counter.getCount())
+                .isZero();
+    }
+
+    @Test
+    public void incrementsByOne() {
+        counter.inc();
+
+        assertThat(counter.getCount())
+                .isEqualTo(1);
+    }
+
+    @Test
+    public void incrementsByAnArbitraryDelta() {
+        counter.inc(12);
+
+        assertThat(counter.getCount())
+                .isEqualTo(12);
+    }
+
+    @Test
+    public void decrementsByOne() {
+        counter.dec();
+
+        assertThat(counter.getCount())
+                .isEqualTo(-1);
+    }
+
+    @Test
+    public void decrementsByAnArbitraryDelta() {
+        counter.dec(12);
+
+        assertThat(counter.getCount())
+                .isEqualTo(-12);
+    }
+
+    @Test
+    public void incrementByNegativeDelta() {
+        counter.inc(-12);
+
+        assertThat(counter.getCount())
+                .isEqualTo(-12);
+    }
+
+    @Test
+    public void decrementByNegativeDelta() {
+        counter.dec(-12);
+
+        assertThat(counter.getCount())
+                .isEqualTo(12);
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter$Builder.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter$Builder.html new file mode 100644 index 0000000000..1f0daa5026 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter$Builder.html @@ -0,0 +1 @@ +CsvReporter.Builder

CsvReporter.Builder

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total106 of 1060%0 of 0n/a111131311111
CsvReporter.Builder(MetricRegistry)350%n/a11121211
build(File)260%n/a111111
shutdownExecutorOnStop(boolean)50%n/a112211
scheduleOn(ScheduledExecutorService)50%n/a112211
formatFor(Locale)50%n/a112211
convertRatesTo(TimeUnit)50%n/a112211
convertDurationsTo(TimeUnit)50%n/a112211
withSeparator(String)50%n/a112211
withClock(Clock)50%n/a112211
filter(MetricFilter)50%n/a112211
withCsvFileProvider(CsvFileProvider)50%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter.html new file mode 100644 index 0000000000..6fb3b4310f --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter.html @@ -0,0 +1 @@ +CsvReporter

CsvReporter

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total846 of 8460%16 of 160%191990901111
CsvReporter(MetricRegistry, File, Locale, String, TimeUnit, TimeUnit, Clock, MetricFilter, ScheduledExecutorService, boolean, CsvFileProvider)3330%n/a11131311
reportTimer(long, String, Timer)1440%n/a11202011
report(SortedMap, SortedMap, SortedMap, SortedMap, SortedMap)1120%100%66171711
report(long, String, String, String, Object[])820%60%44111111
reportHistogram(long, String, Histogram)800%n/a11141411
reportMeter(long, String, Meter)540%n/a118811
reportCounter(long, String, Counter)150%n/a112211
reportGauge(long, String, Gauge)140%n/a112211
forRegistry(MetricRegistry)60%n/a111111
static {...}40%n/a111111
sanitize(String)0%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter.java.html new file mode 100644 index 0000000000..a856b5e66e --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter.java.html @@ -0,0 +1,345 @@ +CsvReporter.java

CsvReporter.java

package com.codahale.metrics;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.util.Locale;
+import java.util.Map;
+import java.util.SortedMap;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+
+import static java.nio.charset.StandardCharsets.UTF_8;
+
+/**
+ * A reporter which creates a comma-separated values file of the measurements for each metric.
+ */
+public class CsvReporter extends ScheduledReporter {
+    private static final String DEFAULT_SEPARATOR = ",";
+
+    /**
+     * Returns a new {@link Builder} for {@link CsvReporter}.
+     *
+     * @param registry the registry to report
+     * @return a {@link Builder} instance for a {@link CsvReporter}
+     */
+    public static Builder forRegistry(MetricRegistry registry) {
+        return new Builder(registry);
+    }
+
+    /**
+     * A builder for {@link CsvReporter} instances. Defaults to using the default locale, converting
+     * rates to events/second, converting durations to milliseconds, and not filtering metrics.
+     */
+    public static class Builder {
+        private final MetricRegistry registry;
+        private Locale locale;
+        private String separator;
+        private TimeUnit rateUnit;
+        private TimeUnit durationUnit;
+        private Clock clock;
+        private MetricFilter filter;
+        private ScheduledExecutorService executor;
+        private boolean shutdownExecutorOnStop;
+        private CsvFileProvider csvFileProvider;
+
+        private Builder(MetricRegistry registry) {
+            this.registry = registry;
+            this.locale = Locale.getDefault();
+            this.separator = DEFAULT_SEPARATOR;
+            this.rateUnit = TimeUnit.SECONDS;
+            this.durationUnit = TimeUnit.MILLISECONDS;
+            this.clock = Clock.defaultClock();
+            this.filter = MetricFilter.ALL;
+            this.executor = null;
+            this.shutdownExecutorOnStop = true;
+            this.csvFileProvider = new FixedNameCsvFileProvider();
+        }
+
+        /**
+         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
+         * Default value is true.
+         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
+         *
+         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
+         * @return {@code this}
+         */
+        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
+            this.shutdownExecutorOnStop = shutdownExecutorOnStop;
+            return this;
+        }
+
+        /**
+         * Specifies the executor to use while scheduling reporting of metrics.
+         * Default value is null.
+         * Null value leads to executor will be auto created on start.
+         *
+         * @param executor the executor to use while scheduling reporting of metrics.
+         * @return {@code this}
+         */
+        public Builder scheduleOn(ScheduledExecutorService executor) {
+            this.executor = executor;
+            return this;
+        }
+
+        /**
+         * Format numbers for the given {@link Locale}.
+         *
+         * @param locale a {@link Locale}
+         * @return {@code this}
+         */
+        public Builder formatFor(Locale locale) {
+            this.locale = locale;
+            return this;
+        }
+
+        /**
+         * Convert rates to the given time unit.
+         *
+         * @param rateUnit a unit of time
+         * @return {@code this}
+         */
+        public Builder convertRatesTo(TimeUnit rateUnit) {
+            this.rateUnit = rateUnit;
+            return this;
+        }
+
+        /**
+         * Convert durations to the given time unit.
+         *
+         * @param durationUnit a unit of time
+         * @return {@code this}
+         */
+        public Builder convertDurationsTo(TimeUnit durationUnit) {
+            this.durationUnit = durationUnit;
+            return this;
+        }
+
+        /**
+         * Use the given string to use as the separator for values.
+         *
+         * @param separator the string to use for the separator.
+         * @return {@code this}
+         */
+        public Builder withSeparator(String separator) {
+            this.separator = separator;
+            return this;
+        }
+
+        /**
+         * Use the given {@link Clock} instance for the time.
+         *
+         * @param clock a {@link Clock} instance
+         * @return {@code this}
+         */
+        public Builder withClock(Clock clock) {
+            this.clock = clock;
+            return this;
+        }
+
+        /**
+         * Only report metrics which match the given filter.
+         *
+         * @param filter a {@link MetricFilter}
+         * @return {@code this}
+         */
+        public Builder filter(MetricFilter filter) {
+            this.filter = filter;
+            return this;
+        }
+
+        public Builder withCsvFileProvider(CsvFileProvider csvFileProvider) {
+            this.csvFileProvider = csvFileProvider;
+            return this;
+        }
+
+        /**
+         * Builds a {@link CsvReporter} with the given properties, writing {@code .csv} files to the
+         * given directory.
+         *
+         * @param directory the directory in which the {@code .csv} files will be created
+         * @return a {@link CsvReporter}
+         */
+        public CsvReporter build(File directory) {
+            return new CsvReporter(registry,
+                    directory,
+                    locale,
+                    separator,
+                    rateUnit,
+                    durationUnit,
+                    clock,
+                    filter,
+                    executor,
+                    shutdownExecutorOnStop,
+                    csvFileProvider);
+        }
+    }
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(CsvReporter.class);
+
+    private final File directory;
+    private final Locale locale;
+    private final String separator;
+    private final Clock clock;
+    private final CsvFileProvider csvFileProvider;
+
+    private final String histogramFormat;
+    private final String meterFormat;
+    private final String timerFormat;
+
+    private final String timerHeader;
+    private final String meterHeader;
+    private final String histogramHeader;
+
+    private CsvReporter(MetricRegistry registry,
+                        File directory,
+                        Locale locale,
+                        String separator,
+                        TimeUnit rateUnit,
+                        TimeUnit durationUnit,
+                        Clock clock,
+                        MetricFilter filter,
+                        ScheduledExecutorService executor,
+                        boolean shutdownExecutorOnStop,
+                        CsvFileProvider csvFileProvider) {
+        super(registry, "csv-reporter", filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop);
+        this.directory = directory;
+        this.locale = locale;
+        this.separator = separator;
+        this.clock = clock;
+        this.csvFileProvider = csvFileProvider;
+
+        this.histogramFormat = String.join(separator, "%d", "%d", "%f", "%d", "%f", "%f", "%f", "%f", "%f", "%f", "%f");
+        this.meterFormat = String.join(separator, "%d", "%f", "%f", "%f", "%f", "events/%s");
+        this.timerFormat = String.join(separator, "%d", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "%f", "calls/%s", "%s");
+
+        this.timerHeader = String.join(separator, "count", "max", "mean", "min", "stddev", "p50", "p75", "p95", "p98", "p99", "p999", "mean_rate", "m1_rate", "m5_rate", "m15_rate", "rate_unit", "duration_unit");
+        this.meterHeader = String.join(separator, "count", "mean_rate", "m1_rate", "m5_rate", "m15_rate", "rate_unit");
+        this.histogramHeader = String.join(separator, "count", "max", "mean", "min", "stddev", "p50", "p75", "p95", "p98", "p99", "p999");
+    }
+
+    @Override
+    @SuppressWarnings("rawtypes")
+    public void report(SortedMap<String, Gauge> gauges,
+                       SortedMap<String, Counter> counters,
+                       SortedMap<String, Histogram> histograms,
+                       SortedMap<String, Meter> meters,
+                       SortedMap<String, Timer> timers) {
+        final long timestamp = TimeUnit.MILLISECONDS.toSeconds(clock.getTime());
+
+        for (Map.Entry<String, Gauge> entry : gauges.entrySet()) {
+            reportGauge(timestamp, entry.getKey(), entry.getValue());
+        }
+
+        for (Map.Entry<String, Counter> entry : counters.entrySet()) {
+            reportCounter(timestamp, entry.getKey(), entry.getValue());
+        }
+
+        for (Map.Entry<String, Histogram> entry : histograms.entrySet()) {
+            reportHistogram(timestamp, entry.getKey(), entry.getValue());
+        }
+
+        for (Map.Entry<String, Meter> entry : meters.entrySet()) {
+            reportMeter(timestamp, entry.getKey(), entry.getValue());
+        }
+
+        for (Map.Entry<String, Timer> entry : timers.entrySet()) {
+            reportTimer(timestamp, entry.getKey(), entry.getValue());
+        }
+    }
+
+    private void reportTimer(long timestamp, String name, Timer timer) {
+        final Snapshot snapshot = timer.getSnapshot();
+
+        report(timestamp,
+                name,
+                timerHeader,
+                timerFormat,
+                timer.getCount(),
+                convertDuration(snapshot.getMax()),
+                convertDuration(snapshot.getMean()),
+                convertDuration(snapshot.getMin()),
+                convertDuration(snapshot.getStdDev()),
+                convertDuration(snapshot.getMedian()),
+                convertDuration(snapshot.get75thPercentile()),
+                convertDuration(snapshot.get95thPercentile()),
+                convertDuration(snapshot.get98thPercentile()),
+                convertDuration(snapshot.get99thPercentile()),
+                convertDuration(snapshot.get999thPercentile()),
+                convertRate(timer.getMeanRate()),
+                convertRate(timer.getOneMinuteRate()),
+                convertRate(timer.getFiveMinuteRate()),
+                convertRate(timer.getFifteenMinuteRate()),
+                getRateUnit(),
+                getDurationUnit());
+    }
+
+    private void reportMeter(long timestamp, String name, Meter meter) {
+        report(timestamp,
+                name,
+                meterHeader,
+                meterFormat,
+                meter.getCount(),
+                convertRate(meter.getMeanRate()),
+                convertRate(meter.getOneMinuteRate()),
+                convertRate(meter.getFiveMinuteRate()),
+                convertRate(meter.getFifteenMinuteRate()),
+                getRateUnit());
+    }
+
+    private void reportHistogram(long timestamp, String name, Histogram histogram) {
+        final Snapshot snapshot = histogram.getSnapshot();
+
+        report(timestamp,
+                name,
+                histogramHeader,
+                histogramFormat,
+                histogram.getCount(),
+                snapshot.getMax(),
+                snapshot.getMean(),
+                snapshot.getMin(),
+                snapshot.getStdDev(),
+                snapshot.getMedian(),
+                snapshot.get75thPercentile(),
+                snapshot.get95thPercentile(),
+                snapshot.get98thPercentile(),
+                snapshot.get99thPercentile(),
+                snapshot.get999thPercentile());
+    }
+
+    private void reportCounter(long timestamp, String name, Counter counter) {
+        report(timestamp, name, "count", "%d", counter.getCount());
+    }
+
+    private void reportGauge(long timestamp, String name, Gauge<?> gauge) {
+        report(timestamp, name, "value", "%s", gauge.getValue());
+    }
+
+    private void report(long timestamp, String name, String header, String line, Object... values) {
+        try {
+            final File file = csvFileProvider.getFile(directory, name);
+            final boolean fileAlreadyExists = file.exists();
+            if (fileAlreadyExists || file.createNewFile()) {
+                try (PrintWriter out = new PrintWriter(new OutputStreamWriter(
+                        new FileOutputStream(file, true), UTF_8))) {
+                    if (!fileAlreadyExists) {
+                        out.println("t" + separator + header);
+                    }
+                    out.printf(locale, String.format(locale, "%d" + separator + "%s%n", timestamp, line), values);
+                }
+            }
+        } catch (IOException e) {
+            LOGGER.warn("Error writing to {}", name, e);
+        }
+    }
+
+    protected String sanitize(String name) {
+        return name;
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporterTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporterTest.html new file mode 100644 index 0000000000..4d00d89a93 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporterTest.html @@ -0,0 +1 @@ +CsvReporterTest

CsvReporterTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total723 of 7230%2 of 20%17171361361616
reportsTimerValues()1960%n/a11262611
reportsHistogramValues()1360%n/a11222211
itFormatsWithCustomSeparator()560%n/a11171711
testCsvFileProviderIsUsed()520%n/a11131311
reportsCounterValues()460%n/a11101011
mockMeter()460%n/a117711
reportsMeterValues()370%n/a119911
reportsGaugeValues()360%n/a119911
setUp()340%n/a11101011
csv(String[])320%20%224411
CsvReporterTest()180%n/a114411
fileContents(String)130%n/a111111
map(String, Object)110%n/a113311
map()40%n/a111111
lambda$testCsvFileProviderIsUsed$1()30%n/a111111
lambda$reportsGaugeValues$0()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporterTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporterTest.java.html new file mode 100644 index 0000000000..ce315fbff1 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporterTest.java.html @@ -0,0 +1,246 @@ +CsvReporterTest.java

CsvReporterTest.java

package com.codahale.metrics;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Files;
+import java.util.Locale;
+import java.util.SortedMap;
+import java.util.TreeMap;
+import java.util.concurrent.TimeUnit;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+public class CsvReporterTest {
+    @Rule
+    public final TemporaryFolder folder = new TemporaryFolder();
+
+    private final MetricRegistry registry = mock(MetricRegistry.class);
+    private final Clock clock = mock(Clock.class);
+
+    private File dataDirectory;
+    private CsvReporter reporter;
+
+    @Before
+    public void setUp() throws Exception {
+        when(clock.getTime()).thenReturn(19910191000L);
+
+        this.dataDirectory = folder.newFolder();
+
+        this.reporter = CsvReporter.forRegistry(registry)
+                .formatFor(Locale.US)
+                .convertRatesTo(TimeUnit.SECONDS)
+                .convertDurationsTo(TimeUnit.MILLISECONDS)
+                .withClock(clock)
+                .filter(MetricFilter.ALL)
+                .build(dataDirectory);
+    }
+
+    @Test
+    public void reportsGaugeValues() throws Exception {
+        final Gauge<Integer> gauge = () -> 1;
+
+        reporter.report(map("gauge", gauge),
+                map(),
+                map(),
+                map(),
+                map());
+
+        assertThat(fileContents("gauge.csv"))
+                .isEqualTo(csv(
+                        "t,value",
+                        "19910191,1"
+                ));
+    }
+
+    @Test
+    public void reportsCounterValues() throws Exception {
+        final Counter counter = mock(Counter.class);
+        when(counter.getCount()).thenReturn(100L);
+
+        reporter.report(map(),
+                map("test.counter", counter),
+                map(),
+                map(),
+                map());
+
+        assertThat(fileContents("test.counter.csv"))
+                .isEqualTo(csv(
+                        "t,count",
+                        "19910191,100"
+                ));
+    }
+
+    @Test
+    public void reportsHistogramValues() throws Exception {
+        final Histogram histogram = mock(Histogram.class);
+        when(histogram.getCount()).thenReturn(1L);
+
+        final Snapshot snapshot = mock(Snapshot.class);
+        when(snapshot.getMax()).thenReturn(2L);
+        when(snapshot.getMean()).thenReturn(3.0);
+        when(snapshot.getMin()).thenReturn(4L);
+        when(snapshot.getStdDev()).thenReturn(5.0);
+        when(snapshot.getMedian()).thenReturn(6.0);
+        when(snapshot.get75thPercentile()).thenReturn(7.0);
+        when(snapshot.get95thPercentile()).thenReturn(8.0);
+        when(snapshot.get98thPercentile()).thenReturn(9.0);
+        when(snapshot.get99thPercentile()).thenReturn(10.0);
+        when(snapshot.get999thPercentile()).thenReturn(11.0);
+
+        when(histogram.getSnapshot()).thenReturn(snapshot);
+
+        reporter.report(map(),
+                map(),
+                map("test.histogram", histogram),
+                map(),
+                map());
+
+        assertThat(fileContents("test.histogram.csv"))
+                .isEqualTo(csv(
+                        "t,count,max,mean,min,stddev,p50,p75,p95,p98,p99,p999",
+                        "19910191,1,2,3.000000,4,5.000000,6.000000,7.000000,8.000000,9.000000,10.000000,11.000000"
+                ));
+    }
+
+    @Test
+    public void reportsMeterValues() throws Exception {
+        final Meter meter = mockMeter();
+
+        reporter.report(map(),
+                map(),
+                map(),
+                map("test.meter", meter),
+                map());
+
+        assertThat(fileContents("test.meter.csv"))
+                .isEqualTo(csv(
+                        "t,count,mean_rate,m1_rate,m5_rate,m15_rate,rate_unit",
+                        "19910191,1,2.000000,3.000000,4.000000,5.000000,events/second"
+                ));
+    }
+
+    @Test
+    public void reportsTimerValues() throws Exception {
+        final Timer timer = mock(Timer.class);
+        when(timer.getCount()).thenReturn(1L);
+        when(timer.getMeanRate()).thenReturn(2.0);
+        when(timer.getOneMinuteRate()).thenReturn(3.0);
+        when(timer.getFiveMinuteRate()).thenReturn(4.0);
+        when(timer.getFifteenMinuteRate()).thenReturn(5.0);
+
+        final Snapshot snapshot = mock(Snapshot.class);
+        when(snapshot.getMax()).thenReturn(TimeUnit.MILLISECONDS.toNanos(100));
+        when(snapshot.getMean()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(200));
+        when(snapshot.getMin()).thenReturn(TimeUnit.MILLISECONDS.toNanos(300));
+        when(snapshot.getStdDev()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(400));
+        when(snapshot.getMedian()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(500));
+        when(snapshot.get75thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(600));
+        when(snapshot.get95thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(700));
+        when(snapshot.get98thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(800));
+        when(snapshot.get99thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(900));
+        when(snapshot.get999thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(1000));
+
+        when(timer.getSnapshot()).thenReturn(snapshot);
+
+        reporter.report(map(),
+                map(),
+                map(),
+                map(),
+                map("test.another.timer", timer));
+
+        assertThat(fileContents("test.another.timer.csv"))
+                .isEqualTo(csv(
+                        "t,count,max,mean,min,stddev,p50,p75,p95,p98,p99,p999,mean_rate,m1_rate,m5_rate,m15_rate,rate_unit,duration_unit",
+                        "19910191,1,100.000000,200.000000,300.000000,400.000000,500.000000,600.000000,700.000000,800.000000,900.000000,1000.000000,2.000000,3.000000,4.000000,5.000000,calls/second,milliseconds"
+                ));
+    }
+
+    @Test
+    public void testCsvFileProviderIsUsed() {
+        CsvFileProvider fileProvider = mock(CsvFileProvider.class);
+        when(fileProvider.getFile(dataDirectory, "gauge")).thenReturn(new File(dataDirectory, "guage.csv"));
+
+        CsvReporter reporter = CsvReporter.forRegistry(registry)
+                .withCsvFileProvider(fileProvider)
+                .build(dataDirectory);
+
+        final Gauge<Integer> gauge = () -> 1;
+
+        reporter.report(map("gauge", gauge),
+                map(),
+                map(),
+                map(),
+                map());
+
+        verify(fileProvider).getFile(dataDirectory, "gauge");
+    }
+
+    @Test
+    public void itFormatsWithCustomSeparator() throws Exception {
+        final Meter meter = mockMeter();
+
+        CsvReporter customSeparatorReporter = CsvReporter.forRegistry(registry)
+                .formatFor(Locale.US)
+                .withSeparator("|")
+                .convertRatesTo(TimeUnit.SECONDS)
+                .convertDurationsTo(TimeUnit.MILLISECONDS)
+                .withClock(clock)
+                .filter(MetricFilter.ALL)
+                .build(dataDirectory);
+
+        customSeparatorReporter.report(map(),
+                map(),
+                map(),
+                map("test.meter", meter),
+                map());
+
+        assertThat(fileContents("test.meter.csv"))
+                .isEqualTo(csv(
+                        "t|count|mean_rate|m1_rate|m5_rate|m15_rate|rate_unit",
+                        "19910191|1|2.000000|3.000000|4.000000|5.000000|events/second"
+                ));
+    }
+
+    private Meter mockMeter() {
+        final Meter meter = mock(Meter.class);
+        when(meter.getCount()).thenReturn(1L);
+        when(meter.getMeanRate()).thenReturn(2.0);
+        when(meter.getOneMinuteRate()).thenReturn(3.0);
+        when(meter.getFiveMinuteRate()).thenReturn(4.0);
+        when(meter.getFifteenMinuteRate()).thenReturn(5.0);
+
+        return meter;
+    }
+
+    private String csv(String... lines) {
+        final StringBuilder builder = new StringBuilder();
+        for (String line : lines) {
+            builder.append(line).append(String.format("%n"));
+        }
+        return builder.toString();
+    }
+
+    private String fileContents(String filename) throws IOException {
+        return new String(Files.readAllBytes(new File(dataDirectory, filename).toPath()), StandardCharsets.UTF_8);
+    }
+
+    private <T> SortedMap<String, T> map() {
+        return new TreeMap<>();
+    }
+
+    private <T> SortedMap<String, T> map(String name, T metric) {
+        final TreeMap<String, T> map = new TreeMap<>();
+        map.put(name, metric);
+        return map;
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGauge.html b/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGauge.html new file mode 100644 index 0000000000..df82f6d4c1 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGauge.html @@ -0,0 +1 @@ +DefaultSettableGauge

DefaultSettableGauge

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total17 of 170%0 of 0n/a448844
DefaultSettableGauge(Object)60%n/a113311
DefaultSettableGauge()40%n/a112211
setValue(Object)40%n/a112211
getValue()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGauge.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGauge.java.html new file mode 100644 index 0000000000..b1bb852786 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGauge.java.html @@ -0,0 +1,44 @@ +DefaultSettableGauge.java

DefaultSettableGauge.java

package com.codahale.metrics;
+
+/**
+ * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
+ */
+public class DefaultSettableGauge<T> implements SettableGauge<T> {
+    private volatile T value;
+
+    /**
+     * Create an instance with no default value.
+     */
+    public DefaultSettableGauge() {
+        this(null);
+    }
+
+    /**
+     * Create an instance with a default value.
+     *
+     * @param defaultValue default value
+     */
+    public DefaultSettableGauge(T defaultValue) {
+        this.value = defaultValue;
+    }
+
+    /**
+     * Set the metric to a new value.
+     */
+    @Override
+    public void setValue(T value) {
+        this.value = value;
+    }
+
+    /**
+     * Returns the current value.
+     *
+     * @return the current value
+     */
+    @Override
+    public T getValue() {
+        return value;
+    }
+
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGaugeTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGaugeTest.html new file mode 100644 index 0000000000..1d119c7e47 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGaugeTest.html @@ -0,0 +1 @@ +DefaultSettableGaugeTest

DefaultSettableGaugeTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total42 of 420%0 of 0n/a44111144
setValueOverwritesExistingValue()160%n/a114411
newSettableGaugeWithDefaultReturnsDefault()130%n/a113311
newSettableGaugeWithoutDefaultReturnsNull()100%n/a113311
DefaultSettableGaugeTest()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGaugeTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGaugeTest.java.html new file mode 100644 index 0000000000..100a6a0bd0 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGaugeTest.java.html @@ -0,0 +1,27 @@ +DefaultSettableGaugeTest.java

DefaultSettableGaugeTest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class DefaultSettableGaugeTest {
+    @Test
+    public void newSettableGaugeWithoutDefaultReturnsNull() {
+        DefaultSettableGauge<String> gauge = new DefaultSettableGauge<>();
+        assertThat(gauge.getValue()).isNull();
+    }
+
+    @Test
+    public void newSettableGaugeWithDefaultReturnsDefault() {
+        DefaultSettableGauge<String> gauge = new DefaultSettableGauge<>("default");
+        assertThat(gauge.getValue()).isEqualTo("default");
+    }
+
+    @Test
+    public void setValueOverwritesExistingValue() {
+        DefaultSettableGauge<String> gauge = new DefaultSettableGauge<>("default");
+        gauge.setValue("test");
+        assertThat(gauge.getValue()).isEqualTo("test");
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGauge.html b/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGauge.html new file mode 100644 index 0000000000..df7c3d9277 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGauge.html @@ -0,0 +1 @@ +DerivativeGauge

DerivativeGauge

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total12 of 120%0 of 0n/a224422
DerivativeGauge(Gauge)60%n/a113311
getValue()60%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGauge.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGauge.java.html new file mode 100644 index 0000000000..c5dfc3626c --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGauge.java.html @@ -0,0 +1,34 @@ +DerivativeGauge.java

DerivativeGauge.java

package com.codahale.metrics;
+
+/**
+ * A gauge whose value is derived from the value of another gauge.
+ *
+ * @param <F> the base gauge's value type
+ * @param <T> the derivative type
+ */
+public abstract class DerivativeGauge<F, T> implements Gauge<T> {
+    private final Gauge<F> base;
+
+    /**
+     * Creates a new derivative with the given base gauge.
+     *
+     * @param base the gauge from which to derive this gauge's value
+     */
+    protected DerivativeGauge(Gauge<F> base) {
+        this.base = base;
+    }
+
+    @Override
+    public T getValue() {
+        return transform(base.getValue());
+    }
+
+    /**
+     * Transforms the value of the base gauge to the value of this gauge.
+     *
+     * @param value the value of the base gauge
+     * @return this gauge's value
+     */
+    protected abstract T transform(F value);
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest$1.html new file mode 100644 index 0000000000..05e9b22dee --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest$1.html @@ -0,0 +1 @@ +DerivativeGaugeTest.new DerivativeGauge() {...}

DerivativeGaugeTest.new DerivativeGauge() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total11 of 110%0 of 0n/a222222
{...}70%n/a111111
transform(String)40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest.html new file mode 100644 index 0000000000..0c74ec739b --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest.html @@ -0,0 +1 @@ +DerivativeGaugeTest

DerivativeGaugeTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total25 of 250%0 of 0n/a336633
DerivativeGaugeTest()140%n/a113311
returnsATransformedValue()90%n/a113311
lambda$new$0()20%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest.java.html new file mode 100644 index 0000000000..c6822332e0 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest.java.html @@ -0,0 +1,22 @@ +DerivativeGaugeTest.java

DerivativeGaugeTest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class DerivativeGaugeTest {
+    private final Gauge<String> gauge1 = () -> "woo";
+    private final Gauge<Integer> gauge2 = new DerivativeGauge<String, Integer>(gauge1) {
+        @Override
+        protected Integer transform(String value) {
+            return value.length();
+        }
+    };
+
+    @Test
+    public void returnsATransformedValue() {
+        assertThat(gauge2.getValue())
+                .isEqualTo(3);
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/EWMA.html b/metrics-log4j2-htmlReport/com.codahale.metrics/EWMA.html new file mode 100644 index 0000000000..aaf630c927 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/EWMA.html @@ -0,0 +1 @@ +EWMA

EWMA

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total42 of 10760%2 of 20%39102528
tick()340%20%229911
getRate(TimeUnit)80%n/a111111
EWMA(double, long, TimeUnit)23100%n/a010701
static {...}16100%n/a010301
oneMinuteEWMA()7100%n/a010101
fiveMinuteEWMA()7100%n/a010101
fifteenMinuteEWMA()7100%n/a010101
update(long)5100%n/a010201
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/EWMA.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/EWMA.java.html new file mode 100644 index 0000000000..6acac24a3f --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/EWMA.java.html @@ -0,0 +1,109 @@ +EWMA.java

EWMA.java

package com.codahale.metrics;
+
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.LongAdder;
+
+import static java.lang.Math.exp;
+
+/**
+ * An exponentially-weighted moving average.
+ *
+ * @see <a href="http://www.teamquest.com/pdfs/whitepaper/ldavg1.pdf">UNIX Load Average Part 1: How
+ * It Works</a>
+ * @see <a href="http://www.teamquest.com/pdfs/whitepaper/ldavg2.pdf">UNIX Load Average Part 2: Not
+ * Your Average Average</a>
+ * @see <a href="http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average">EMA</a>
+ */
+public class EWMA {
+    private static final int INTERVAL = 5;
+    private static final double SECONDS_PER_MINUTE = 60.0;
+    private static final int ONE_MINUTE = 1;
+    private static final int FIVE_MINUTES = 5;
+    private static final int FIFTEEN_MINUTES = 15;
+    private static final double M1_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / ONE_MINUTE);
+    private static final double M5_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIVE_MINUTES);
+    private static final double M15_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIFTEEN_MINUTES);
+
+    private volatile boolean initialized = false;
+    private volatile double rate = 0.0;
+
+    private final LongAdder uncounted = new LongAdder();
+    private final double alpha, interval;
+
+    /**
+     * Creates a new EWMA which is equivalent to the UNIX one minute load average and which expects
+     * to be ticked every 5 seconds.
+     *
+     * @return a one-minute EWMA
+     */
+    public static EWMA oneMinuteEWMA() {
+        return new EWMA(M1_ALPHA, INTERVAL, TimeUnit.SECONDS);
+    }
+
+    /**
+     * Creates a new EWMA which is equivalent to the UNIX five minute load average and which expects
+     * to be ticked every 5 seconds.
+     *
+     * @return a five-minute EWMA
+     */
+    public static EWMA fiveMinuteEWMA() {
+        return new EWMA(M5_ALPHA, INTERVAL, TimeUnit.SECONDS);
+    }
+
+    /**
+     * Creates a new EWMA which is equivalent to the UNIX fifteen minute load average and which
+     * expects to be ticked every 5 seconds.
+     *
+     * @return a fifteen-minute EWMA
+     */
+    public static EWMA fifteenMinuteEWMA() {
+        return new EWMA(M15_ALPHA, INTERVAL, TimeUnit.SECONDS);
+    }
+
+    /**
+     * Create a new EWMA with a specific smoothing constant.
+     *
+     * @param alpha        the smoothing constant
+     * @param interval     the expected tick interval
+     * @param intervalUnit the time unit of the tick interval
+     */
+    public EWMA(double alpha, long interval, TimeUnit intervalUnit) {
+        this.interval = intervalUnit.toNanos(interval);
+        this.alpha = alpha;
+    }
+
+    /**
+     * Update the moving average with a new value.
+     *
+     * @param n the new value
+     */
+    public void update(long n) {
+        uncounted.add(n);
+    }
+
+    /**
+     * Mark the passage of time and decay the current rate accordingly.
+     */
+    public void tick() {
+        final long count = uncounted.sumThenReset();
+        final double instantRate = count / interval;
+        if (initialized) {
+            final double oldRate = this.rate;
+            rate = oldRate + (alpha * (instantRate - oldRate));
+        } else {
+            rate = instantRate;
+            initialized = true;
+        }
+    }
+
+    /**
+     * Returns the rate in the given units of time.
+     *
+     * @param rateUnit the unit of time
+     * @return the rate
+     */
+    public double getRate(TimeUnit rateUnit) {
+        return rate * (double) rateUnit.toNanos(1);
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/EWMATest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/EWMATest.html new file mode 100644 index 0000000000..3e3a4beec8 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/EWMATest.html @@ -0,0 +1 @@ +EWMATest

EWMATest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total652 of 6520%2 of 20%6610910955
aOneMinuteEWMAWithAValueOfThree()2130%n/a11353511
aFiveMinuteEWMAWithAValueOfThree()2130%n/a11353511
aFifteenMinuteEWMAWithAValueOfThree()2130%n/a11353511
elapseMinute(EWMA)100%20%223311
EWMATest()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/EWMATest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/EWMATest.java.html new file mode 100644 index 0000000000..21df9afa81 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/EWMATest.java.html @@ -0,0 +1,225 @@ +EWMATest.java

EWMATest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+
+import java.util.concurrent.TimeUnit;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.offset;
+
+public class EWMATest {
+    @Test
+    public void aOneMinuteEWMAWithAValueOfThree() {
+        final EWMA ewma = EWMA.oneMinuteEWMA();
+        ewma.update(3);
+        ewma.tick();
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.6, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.22072766, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.08120117, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.02987224, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.01098938, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00404277, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00148725, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00054713, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00020128, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00007405, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00002724, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00001002, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00000369, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00000136, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00000050, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00000018, offset(0.000001));
+    }
+
+    @Test
+    public void aFiveMinuteEWMAWithAValueOfThree() {
+        final EWMA ewma = EWMA.fiveMinuteEWMA();
+        ewma.update(3);
+        ewma.tick();
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.6, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.49123845, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.40219203, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.32928698, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.26959738, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.22072766, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.18071653, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.14795818, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.12113791, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.09917933, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.08120117, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.06648190, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.05443077, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.04456415, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.03648604, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.02987224, offset(0.000001));
+    }
+
+    @Test
+    public void aFifteenMinuteEWMAWithAValueOfThree() {
+        final EWMA ewma = EWMA.fifteenMinuteEWMA();
+        ewma.update(3);
+        ewma.tick();
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.6, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.56130419, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.52510399, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.49123845, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.45955700, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.42991879, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.40219203, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.37625345, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.35198773, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.32928698, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.30805027, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.28818318, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.26959738, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.25221023, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.23594443, offset(0.000001));
+
+        elapseMinute(ewma);
+
+        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.22072766, offset(0.000001));
+    }
+
+
+    private void elapseMinute(EWMA ewma) {
+        for (int i = 1; i <= 12; i++) {
+            ewma.tick();
+        }
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentialMovingAverages.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentialMovingAverages.html new file mode 100644 index 0000000000..bfbcc9f6fd --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentialMovingAverages.html @@ -0,0 +1 @@ +ExponentialMovingAverages

ExponentialMovingAverages

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total55 of 11351%5 of 616%711122948
tickIfNecessary()361732%5116%3471201
getM1Rate()50%n/a111111
getM5Rate()50%n/a111111
getM15Rate()50%n/a111111
ExponentialMovingAverages()40%n/a112211
ExponentialMovingAverages(Clock)23100%n/a010701
update(long)13100%n/a010401
static {...}5100%n/a010101
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentialMovingAverages.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentialMovingAverages.java.html new file mode 100644 index 0000000000..f8f817a707 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentialMovingAverages.java.html @@ -0,0 +1,78 @@ +ExponentialMovingAverages.java

ExponentialMovingAverages.java

package com.codahale.metrics;
+
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicLong;
+
+/**
+ * A triple (one, five and fifteen minutes) of exponentially-weighted moving average rates as needed by {@link Meter}.
+ * <p>
+ * The rates have the same exponential decay factor as the fifteen-minute load average in the
+ * {@code top} Unix command.
+ */
+public class ExponentialMovingAverages implements MovingAverages {
+
+    private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(5);
+
+    private final EWMA m1Rate = EWMA.oneMinuteEWMA();
+    private final EWMA m5Rate = EWMA.fiveMinuteEWMA();
+    private final EWMA m15Rate = EWMA.fifteenMinuteEWMA();
+
+    private final AtomicLong lastTick;
+    private final Clock clock;
+
+    /**
+     * Creates a new {@link ExponentialMovingAverages}.
+     */
+    public ExponentialMovingAverages() {
+        this(Clock.defaultClock());
+    }
+
+    /**
+     * Creates a new {@link ExponentialMovingAverages}.
+     */
+    public ExponentialMovingAverages(Clock clock) {
+        this.clock = clock;
+        this.lastTick = new AtomicLong(this.clock.getTick());
+    }
+
+    @Override
+    public void update(long n) {
+        m1Rate.update(n);
+        m5Rate.update(n);
+        m15Rate.update(n);
+    }
+
+    @Override
+    public void tickIfNecessary() {
+        final long oldTick = lastTick.get();
+        final long newTick = clock.getTick();
+        final long age = newTick - oldTick;
+        if (age > TICK_INTERVAL) {
+            final long newIntervalStartTick = newTick - age % TICK_INTERVAL;
+            if (lastTick.compareAndSet(oldTick, newIntervalStartTick)) {
+                final long requiredTicks = age / TICK_INTERVAL;
+                for (long i = 0; i < requiredTicks; i++) {
+                    m1Rate.tick();
+                    m5Rate.tick();
+                    m15Rate.tick();
+                }
+            }
+        }
+    }
+
+    @Override
+    public double getM1Rate() {
+        return m1Rate.getRate(TimeUnit.SECONDS);
+    }
+
+    @Override
+    public double getM5Rate() {
+        return m5Rate.getRate(TimeUnit.SECONDS);
+    }
+
+    @Override
+    public double getM15Rate() {
+        return m15Rate.getRate(TimeUnit.SECONDS);
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoir.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoir.html new file mode 100644 index 0000000000..95be7205cb --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoir.html @@ -0,0 +1 @@ +ExponentiallyDecayingReservoir

ExponentiallyDecayingReservoir

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total306 of 3060%20 of 200%262669691616
rescale(long, long)940%80%55181811
update(long, long)750%100%66141411
ExponentiallyDecayingReservoir(int, double, Clock)390%n/a11101011
rescaleIfNeeded()190%20%225511
getSnapshot()150%n/a114411
size()90%n/a111111
weight(long)70%n/a111111
ExponentiallyDecayingReservoir(int, double)60%n/a112211
update(long)60%n/a112211
currentTimeInSeconds()60%n/a111111
ExponentiallyDecayingReservoir()50%n/a112211
unlockForRescale()50%n/a112211
lockForRescale()50%n/a112211
lockForRegularUsage()50%n/a112211
unlockForRegularUsage()50%n/a112211
static {...}50%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoir.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoir.java.html new file mode 100644 index 0000000000..a67dd24d1b --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoir.java.html @@ -0,0 +1,208 @@ +ExponentiallyDecayingReservoir.java

ExponentiallyDecayingReservoir.java

package com.codahale.metrics;
+
+import java.util.ArrayList;
+import java.util.concurrent.ConcurrentSkipListMap;
+import java.util.concurrent.ThreadLocalRandom;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicLong;
+import java.util.concurrent.locks.ReentrantReadWriteLock;
+
+import static java.lang.Math.exp;
+import static java.lang.Math.min;
+
+import com.codahale.metrics.WeightedSnapshot.WeightedSample;
+
+/**
+ * An exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al's
+ * forward-decaying priority reservoir sampling method to produce a statistically representative
+ * sampling reservoir, exponentially biased towards newer entries.
+ *
+ * @see <a href="http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf">
+ * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE '09:
+ * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)</a>
+ */
+public class ExponentiallyDecayingReservoir implements Reservoir {
+    private static final int DEFAULT_SIZE = 1028;
+    private static final double DEFAULT_ALPHA = 0.015;
+    private static final long RESCALE_THRESHOLD = TimeUnit.HOURS.toNanos(1);
+
+    private final ConcurrentSkipListMap<Double, WeightedSample> values;
+    private final ReentrantReadWriteLock lock;
+    private final double alpha;
+    private final int size;
+    private final AtomicLong count;
+    private volatile long startTime;
+    private final AtomicLong lastScaleTick;
+    private final Clock clock;
+
+    /**
+     * Creates a new {@link ExponentiallyDecayingReservoir} of 1028 elements, which offers a 99.9%
+     * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
+     * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
+     */
+    public ExponentiallyDecayingReservoir() {
+        this(DEFAULT_SIZE, DEFAULT_ALPHA);
+    }
+
+    /**
+     * Creates a new {@link ExponentiallyDecayingReservoir}.
+     *
+     * @param size  the number of samples to keep in the sampling reservoir
+     * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
+     *              will be towards newer values
+     */
+    public ExponentiallyDecayingReservoir(int size, double alpha) {
+        this(size, alpha, Clock.defaultClock());
+    }
+
+    /**
+     * Creates a new {@link ExponentiallyDecayingReservoir}.
+     *
+     * @param size  the number of samples to keep in the sampling reservoir
+     * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
+     *              will be towards newer values
+     * @param clock the clock used to timestamp samples and track rescaling
+     */
+    public ExponentiallyDecayingReservoir(int size, double alpha, Clock clock) {
+        this.values = new ConcurrentSkipListMap<>();
+        this.lock = new ReentrantReadWriteLock();
+        this.alpha = alpha;
+        this.size = size;
+        this.clock = clock;
+        this.count = new AtomicLong(0);
+        this.startTime = currentTimeInSeconds();
+        this.lastScaleTick = new AtomicLong(clock.getTick());
+    }
+
+    @Override
+    public int size() {
+        return (int) min(size, count.get());
+    }
+
+    @Override
+    public void update(long value) {
+        update(value, currentTimeInSeconds());
+    }
+
+    /**
+     * Adds an old value with a fixed timestamp to the reservoir.
+     *
+     * @param value     the value to be added
+     * @param timestamp the epoch timestamp of {@code value} in seconds
+     */
+    public void update(long value, long timestamp) {
+        rescaleIfNeeded();
+        lockForRegularUsage();
+        try {
+            final double itemWeight = weight(timestamp - startTime);
+            final WeightedSample sample = new WeightedSample(value, itemWeight);
+            final double priority = itemWeight / ThreadLocalRandom.current().nextDouble();
+
+            final long newCount = count.incrementAndGet();
+            if (newCount <= size || values.isEmpty()) {
+                values.put(priority, sample);
+            } else {
+                Double first = values.firstKey();
+                if (first < priority && values.putIfAbsent(priority, sample) == null) {
+                    // ensure we always remove an item
+                    while (values.remove(first) == null) {
+                        first = values.firstKey();
+                    }
+                }
+            }
+        } finally {
+            unlockForRegularUsage();
+        }
+    }
+
+    private void rescaleIfNeeded() {
+        final long now = clock.getTick();
+        final long lastScaleTickSnapshot = lastScaleTick.get();
+        if (now - lastScaleTickSnapshot >= RESCALE_THRESHOLD) {
+            rescale(now, lastScaleTickSnapshot);
+        }
+    }
+
+    @Override
+    public Snapshot getSnapshot() {
+        rescaleIfNeeded();
+        lockForRegularUsage();
+        try {
+            return new WeightedSnapshot(values.values());
+        } finally {
+            unlockForRegularUsage();
+        }
+    }
+
+    private long currentTimeInSeconds() {
+        return TimeUnit.MILLISECONDS.toSeconds(clock.getTime());
+    }
+
+    private double weight(long t) {
+        return exp(alpha * t);
+    }
+
+    /* "A common feature of the above techniques—indeed, the key technique that
+     * allows us to track the decayed weights efficiently—is that they maintain
+     * counts and other quantities based on g(ti − L), and only scale by g(t − L)
+     * at query time. But while g(ti −L)/g(t−L) is guaranteed to lie between zero
+     * and one, the intermediate values of g(ti − L) could become very large. For
+     * polynomial functions, these values should not grow too large, and should be
+     * effectively represented in practice by floating point values without loss of
+     * precision. For exponential functions, these values could grow quite large as
+     * new values of (ti − L) become large, and potentially exceed the capacity of
+     * common floating point types. However, since the values stored by the
+     * algorithms are linear combinations of g values (scaled sums), they can be
+     * rescaled relative to a new landmark. That is, by the analysis of exponential
+     * decay in Section III-A, the choice of L does not affect the final result. We
+     * can therefore multiply each value based on L by a factor of exp(−α(L′ − L)),
+     * and obtain the correct value as if we had instead computed relative to a new
+     * landmark L′ (and then use this new L′ at query time). This can be done with
+     * a linear pass over whatever data structure is being used."
+     */
+    private void rescale(long now, long lastTick) {
+        lockForRescale();
+        try {
+            if (lastScaleTick.compareAndSet(lastTick, now)) {
+                final long oldStartTime = startTime;
+                this.startTime = currentTimeInSeconds();
+                final double scalingFactor = exp(-alpha * (startTime - oldStartTime));
+                if (Double.compare(scalingFactor, 0) == 0) {
+                    values.clear();
+                } else {
+                    final ArrayList<Double> keys = new ArrayList<>(values.keySet());
+                    for (Double key : keys) {
+                        final WeightedSample sample = values.remove(key);
+                        final WeightedSample newSample = new WeightedSample(sample.value, sample.weight * scalingFactor);
+                        if (Double.compare(newSample.weight, 0) == 0) {
+                            continue;
+                        }
+                        values.put(key * scalingFactor, newSample);
+                    }
+                }
+
+                // make sure the counter is in sync with the number of stored samples.
+                count.set(values.size());
+            }
+        } finally {
+            unlockForRescale();
+        }
+    }
+
+    private void unlockForRescale() {
+        lock.writeLock().unlock();
+    }
+
+    private void lockForRescale() {
+        lock.writeLock().lock();
+    }
+
+    private void lockForRegularUsage() {
+        lock.readLock().lock();
+    }
+
+    private void unlockForRegularUsage() {
+        lock.readLock().unlock();
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory$1.html new file mode 100644 index 0000000000..831c05804f --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory$1.html @@ -0,0 +1 @@ +ExponentiallyDecayingReservoirTest.ReservoirFactory.new ExponentiallyDecayingReservoirTest.ReservoirFactory() {...}

ExponentiallyDecayingReservoirTest.ReservoirFactory.new ExponentiallyDecayingReservoirTest.ReservoirFactory() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total13 of 130%0 of 0n/a222222
create(int, double, Clock)70%n/a111111
{...}60%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory$2.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory$2.html new file mode 100644 index 0000000000..5ab371ab2f --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory$2.html @@ -0,0 +1 @@ +ExponentiallyDecayingReservoirTest.ReservoirFactory.new ExponentiallyDecayingReservoirTest.ReservoirFactory() {...}

ExponentiallyDecayingReservoirTest.ReservoirFactory.new ExponentiallyDecayingReservoirTest.ReservoirFactory() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total15 of 150%0 of 0n/a226622
create(int, double, Clock)90%n/a115511
{...}60%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory.html new file mode 100644 index 0000000000..4385bc9a61 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory.html @@ -0,0 +1 @@ +ExponentiallyDecayingReservoirTest.ReservoirFactory

ExponentiallyDecayingReservoirTest.ReservoirFactory

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total21 of 210%0 of 0n/a224422
static {...}150%n/a113311
create(int, double)60%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest.html new file mode 100644 index 0000000000..5e7b023a94 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest.html @@ -0,0 +1 @@ +ExponentiallyDecayingReservoirTest

ExponentiallyDecayingReservoirTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total763 of 7630%40 of 400%38381851851818
multipleUpdatesAfterlongPeriodsOfInactivityShouldNotCorruptSamplingState()1090%80%55272711
longPeriodsOfInactivityShouldNotCorruptSamplingState()830%40%33202011
longPeriodsOfInactivity_fetchShouldResample()690%20%22151511
testShortPeriodShouldNotRescale(long)570%n/a11121211
spotLift()560%40%33131311
spotFall()560%40%33131311
quantiliesShouldBeBasedOnWeights()560%40%33141411
removeZeroWeightsInSamplesToPreventNaNInMeanValues()470%20%22101011
aReservoirOf100OutOf1000Elements()370%20%22101011
aReservoirOf100OutOf10Elements()370%20%22101011
aHeavilyBiasedReservoirOf100OutOf1000Elements()370%20%22101011
emptyReservoirSnapshot_shouldReturnZeroForAllValues()370%n/a117711
assertAllValuesBetween(Reservoir, double, double)270%20%225511
lambda$multipleUpdatesAfterlongPeriodsOfInactivityShouldNotCorruptSamplingState$1(AtomicBoolean, AtomicInteger, Reservoir, AtomicInteger)230%40%33101011
clockWrapShouldNotRescale()110%n/a113311
reservoirs()80%n/a113311
lambda$reservoirs$0(ExponentiallyDecayingReservoirTest.ReservoirFactory)70%n/a111111
ExponentiallyDecayingReservoirTest(ExponentiallyDecayingReservoirTest.ReservoirFactory)60%n/a113311
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest.java.html new file mode 100644 index 0000000000..9907a37a0f --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest.java.html @@ -0,0 +1,418 @@ +ExponentiallyDecayingReservoirTest.java

ExponentiallyDecayingReservoirTest.java

package com.codahale.metrics;
+
+import com.codahale.metrics.Timer.Context;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
+import java.util.stream.Collectors;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+@RunWith(Parameterized.class)
+public class ExponentiallyDecayingReservoirTest {
+
+    public enum ReservoirFactory {
+        EXPONENTIALLY_DECAYING() {
+            @Override
+            Reservoir create(int size, double alpha, Clock clock) {
+                return new ExponentiallyDecayingReservoir(size, alpha, clock);
+            }
+        },
+
+        LOCK_FREE_EXPONENTIALLY_DECAYING() {
+            @Override
+            Reservoir create(int size, double alpha, Clock clock) {
+                return LockFreeExponentiallyDecayingReservoir.builder()
+                        .size(size)
+                        .alpha(alpha)
+                        .clock(clock)
+                        .build();
+            }
+        };
+
+        abstract Reservoir create(int size, double alpha, Clock clock);
+
+        Reservoir create(int size, double alpha) {
+            return create(size, alpha, Clock.defaultClock());
+        }
+    }
+
+    @Parameterized.Parameters(name = "{index}: {0}")
+    public static Collection<Object[]> reservoirs() {
+        return Arrays.stream(ReservoirFactory.values())
+                .map(value -> new Object[] {value})
+                .collect(Collectors.toList());
+    }
+
+    private final ReservoirFactory reservoirFactory;
+
+    public ExponentiallyDecayingReservoirTest(ReservoirFactory reservoirFactory) {
+        this.reservoirFactory = reservoirFactory;
+    }
+
+    @Test
+    public void aReservoirOf100OutOf1000Elements() {
+        final Reservoir reservoir = reservoirFactory.create(100, 0.99);
+        for (int i = 0; i < 1000; i++) {
+            reservoir.update(i);
+        }
+
+        assertThat(reservoir.size())
+                .isEqualTo(100);
+
+        final Snapshot snapshot = reservoir.getSnapshot();
+
+        assertThat(snapshot.size())
+                .isEqualTo(100);
+
+        assertAllValuesBetween(reservoir, 0, 1000);
+    }
+
+    @Test
+    public void aReservoirOf100OutOf10Elements() {
+        final Reservoir reservoir = reservoirFactory.create(100, 0.99);
+        for (int i = 0; i < 10; i++) {
+            reservoir.update(i);
+        }
+
+        final Snapshot snapshot = reservoir.getSnapshot();
+
+        assertThat(snapshot.size())
+                .isEqualTo(10);
+
+        assertThat(snapshot.size())
+                .isEqualTo(10);
+
+        assertAllValuesBetween(reservoir, 0, 10);
+    }
+
+    @Test
+    public void aHeavilyBiasedReservoirOf100OutOf1000Elements() {
+        final Reservoir reservoir = reservoirFactory.create(1000, 0.01);
+        for (int i = 0; i < 100; i++) {
+            reservoir.update(i);
+        }
+
+
+        assertThat(reservoir.size())
+                .isEqualTo(100);
+
+        final Snapshot snapshot = reservoir.getSnapshot();
+
+        assertThat(snapshot.size())
+                .isEqualTo(100);
+
+        assertAllValuesBetween(reservoir, 0, 100);
+    }
+
+    @Test
+    public void longPeriodsOfInactivityShouldNotCorruptSamplingState() {
+        final ManualClock clock = new ManualClock();
+        final Reservoir reservoir = reservoirFactory.create(10, 0.15, clock);
+
+        // add 1000 values at a rate of 10 values/second
+        for (int i = 0; i < 1000; i++) {
+            reservoir.update(1000 + i);
+            clock.addMillis(100);
+        }
+        assertThat(reservoir.getSnapshot().size())
+                .isEqualTo(10);
+        assertAllValuesBetween(reservoir, 1000, 2000);
+
+        // wait for 15 hours and add another value.
+        // this should trigger a rescale. Note that the number of samples will be reduced to 1
+        // because scaling factor equal to zero will remove all existing entries after rescale.
+        clock.addHours(15);
+        reservoir.update(2000);
+        assertThat(reservoir.getSnapshot().size())
+                .isEqualTo(1);
+        assertAllValuesBetween(reservoir, 1000, 2001);
+
+
+        // add 1000 values at a rate of 10 values/second
+        for (int i = 0; i < 1000; i++) {
+            reservoir.update(3000 + i);
+            clock.addMillis(100);
+        }
+        assertThat(reservoir.getSnapshot().size())
+                .isEqualTo(10);
+        assertAllValuesBetween(reservoir, 3000, 4000);
+    }
+
+    @Test
+    public void longPeriodsOfInactivity_fetchShouldResample() {
+        final ManualClock clock = new ManualClock();
+        final Reservoir reservoir = reservoirFactory.create(10,
+                0.015,
+                clock);
+
+        // add 1000 values at a rate of 10 values/second
+        for (int i = 0; i < 1000; i++) {
+            reservoir.update(1000 + i);
+            clock.addMillis(100);
+        }
+        assertThat(reservoir.getSnapshot().size())
+                .isEqualTo(10);
+        assertAllValuesBetween(reservoir, 1000, 2000);
+
+        // wait for 20 hours and take snapshot.
+        // this should trigger a rescale. Note that the number of samples will be reduced to 0
+        // because scaling factor equal to zero will remove all existing entries after rescale.
+        clock.addHours(20);
+        Snapshot snapshot = reservoir.getSnapshot();
+        assertThat(snapshot.getMax()).isEqualTo(0);
+        assertThat(snapshot.getMean()).isEqualTo(0);
+        assertThat(snapshot.getMedian()).isEqualTo(0);
+        assertThat(snapshot.size()).isEqualTo(0);
+    }
+
+    @Test
+    public void emptyReservoirSnapshot_shouldReturnZeroForAllValues() {
+        final Reservoir reservoir = reservoirFactory.create(100, 0.015,
+                new ManualClock());
+
+        Snapshot snapshot = reservoir.getSnapshot();
+        assertThat(snapshot.getMax()).isEqualTo(0);
+        assertThat(snapshot.getMean()).isEqualTo(0);
+        assertThat(snapshot.getMedian()).isEqualTo(0);
+        assertThat(snapshot.size()).isEqualTo(0);
+    }
+
+    @Test
+    public void removeZeroWeightsInSamplesToPreventNaNInMeanValues() {
+        final ManualClock clock = new ManualClock();
+        final Reservoir reservoir = reservoirFactory.create(1028, 0.015, clock);
+        Timer timer = new Timer(reservoir, clock);
+
+        Context context = timer.time();
+        clock.addMillis(100);
+        context.stop();
+
+        for (int i = 1; i < 48; i++) {
+            clock.addHours(1);
+            assertThat(reservoir.getSnapshot().getMean()).isBetween(0.0, Double.MAX_VALUE);
+        }
+    }
+
+    @Test
+    public void multipleUpdatesAfterlongPeriodsOfInactivityShouldNotCorruptSamplingState() throws Exception {
+        // This test illustrates the potential race condition in rescale that
+        // can lead to a corrupt state.  Note that while this test uses updates
+        // exclusively to trigger the race condition, two concurrent updates
+        // may be made much more likely to trigger this behavior if executed
+        // while another thread is constructing a snapshot of the reservoir;
+        // that thread then holds the read lock when the two competing updates
+        // are executed and the race condition's window is substantially
+        // expanded.
+
+        // Run the test several times.
+        for (int attempt = 0; attempt < 10; attempt++) {
+            final ManualClock clock = new ManualClock();
+            final Reservoir reservoir = reservoirFactory.create(10,
+                    0.015,
+                    clock);
+
+            // Various atomics used to communicate between this thread and the
+            // thread created below.
+            final AtomicBoolean running = new AtomicBoolean(true);
+            final AtomicInteger threadUpdates = new AtomicInteger(0);
+            final AtomicInteger testUpdates = new AtomicInteger(0);
+
+            final Thread thread = new Thread(() -> {
+                int previous = 0;
+                while (running.get()) {
+                    // Wait for the test thread to update it's counter
+                    // before updaing the reservoir.
+                    while (true) {
+                        int next = testUpdates.get();
+                        if (previous < next) {
+                            previous = next;
+                            break;
+                        }
+                    }
+
+                    // Update the reservoir.  This needs to occur at the
+                    // same time as the test thread's update.
+                    reservoir.update(1000);
+
+                    // Signal the main thread; allows the next update
+                    // attempt to begin.
+                    threadUpdates.incrementAndGet();
+                }
+            });
+
+            thread.start();
+
+            int sum = 0;
+            int previous = -1;
+            for (int i = 0; i < 100; i++) {
+                // Wait for 15 hours before attempting the next concurrent
+                // update.  The delay here needs to be sufficiently long to
+                // overflow if an update attempt is allowed to add a value to
+                // the reservoir without rescaling.  Note that:
+                // e(alpha*(15*60*60)) =~ 10^351 >> Double.MAX_VALUE =~ 1.8*10^308.
+                clock.addHours(15);
+
+                // Signal the other thread; asynchronously updates the reservoir.
+                testUpdates.incrementAndGet();
+
+                // Delay a variable length of time.  Without a delay here this
+                // thread is heavily favored and the race condition is almost
+                // never observed.
+                for (int j = 0; j < i; j++)
+                    sum += j;
+
+                // Competing reservoir update.
+                reservoir.update(1000);
+
+                // Wait for the other thread to finish it's update.
+                while (true) {
+                    int next = threadUpdates.get();
+                    if (previous < next) {
+                        previous = next;
+                        break;
+                    }
+                }
+            }
+
+            // Terminate the thread.
+            running.set(false);
+            testUpdates.incrementAndGet();
+            thread.join();
+
+            // Test failures will result in normWeights that are not finite;
+            // checking the mean value here is sufficient.
+            assertThat(reservoir.getSnapshot().getMean()).isBetween(0.0, Double.MAX_VALUE);
+
+            // Check the value of sum; should prevent the JVM from optimizing
+            // out the delay loop entirely.
+            assertThat(sum).isEqualTo(161700);
+        }
+    }
+
+    @Test
+    public void spotLift() {
+        final ManualClock clock = new ManualClock();
+        final Reservoir reservoir = reservoirFactory.create(1000,
+                0.015,
+                clock);
+
+        final int valuesRatePerMinute = 10;
+        final int valuesIntervalMillis = (int) (TimeUnit.MINUTES.toMillis(1) / valuesRatePerMinute);
+        // mode 1: steady regime for 120 minutes
+        for (int i = 0; i < 120 * valuesRatePerMinute; i++) {
+            reservoir.update(177);
+            clock.addMillis(valuesIntervalMillis);
+        }
+
+        // switching to mode 2: 10 minutes more with the same rate, but larger value
+        for (int i = 0; i < 10 * valuesRatePerMinute; i++) {
+            reservoir.update(9999);
+            clock.addMillis(valuesIntervalMillis);
+        }
+
+        // expect that quantiles should be more about mode 2 after 10 minutes
+        assertThat(reservoir.getSnapshot().getMedian())
+                .isEqualTo(9999);
+    }
+
+    @Test
+    public void spotFall() {
+        final ManualClock clock = new ManualClock();
+        final Reservoir reservoir = reservoirFactory.create(1000,
+                0.015,
+                clock);
+
+        final int valuesRatePerMinute = 10;
+        final int valuesIntervalMillis = (int) (TimeUnit.MINUTES.toMillis(1) / valuesRatePerMinute);
+        // mode 1: steady regime for 120 minutes
+        for (int i = 0; i < 120 * valuesRatePerMinute; i++) {
+            reservoir.update(9998);
+            clock.addMillis(valuesIntervalMillis);
+        }
+
+        // switching to mode 2: 10 minutes more with the same rate, but smaller value
+        for (int i = 0; i < 10 * valuesRatePerMinute; i++) {
+            reservoir.update(178);
+            clock.addMillis(valuesIntervalMillis);
+        }
+
+        // expect that quantiles should be more about mode 2 after 10 minutes
+        assertThat(reservoir.getSnapshot().get95thPercentile())
+                .isEqualTo(178);
+    }
+
+    @Test
+    public void quantiliesShouldBeBasedOnWeights() {
+        final ManualClock clock = new ManualClock();
+        final Reservoir reservoir = reservoirFactory.create(1000,
+                0.015,
+                clock);
+        for (int i = 0; i < 40; i++) {
+            reservoir.update(177);
+        }
+
+        clock.addSeconds(120);
+
+        for (int i = 0; i < 10; i++) {
+            reservoir.update(9999);
+        }
+
+        assertThat(reservoir.getSnapshot().size())
+                .isEqualTo(50);
+
+        // the first added 40 items (177) have weights 1 
+        // the next added 10 items (9999) have weights ~6 
+        // so, it's 40 vs 60 distribution, not 40 vs 10
+        assertThat(reservoir.getSnapshot().getMedian())
+                .isEqualTo(9999);
+        assertThat(reservoir.getSnapshot().get75thPercentile())
+                .isEqualTo(9999);
+    }
+
+    @Test
+    public void clockWrapShouldNotRescale() {
+        // First verify the test works as expected given low values
+        testShortPeriodShouldNotRescale(0);
+        // Now revalidate using an edge case nanoTime value just prior to wrapping
+        testShortPeriodShouldNotRescale(Long.MAX_VALUE - TimeUnit.MINUTES.toNanos(30));
+    }
+
+    private void testShortPeriodShouldNotRescale(long startTimeNanos) {
+        final ManualClock clock = new ManualClock(startTimeNanos);
+        final Reservoir reservoir = reservoirFactory.create(10, 1, clock);
+
+        reservoir.update(1000);
+        assertThat(reservoir.getSnapshot().size()).isEqualTo(1);
+
+        assertAllValuesBetween(reservoir, 1000, 1001);
+
+        // wait for 10 millis and take snapshot.
+        // this should not trigger a rescale. Note that the number of samples will be reduced to 0
+        // because scaling factor equal to zero will remove all existing entries after rescale.
+        clock.addSeconds(20 * 60);
+        Snapshot snapshot = reservoir.getSnapshot();
+        assertThat(snapshot.getMax()).isEqualTo(1000);
+        assertThat(snapshot.getMean()).isEqualTo(1000);
+        assertThat(snapshot.getMedian()).isEqualTo(1000);
+        assertThat(snapshot.size()).isEqualTo(1);
+    }
+
+    private static void assertAllValuesBetween(Reservoir reservoir,
+                                               double min,
+                                               double max) {
+        for (double i : reservoir.getSnapshot().getValues()) {
+            assertThat(i)
+                    .isLessThan(max)
+                    .isGreaterThanOrEqualTo(min);
+        }
+    }
+
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProvider.html b/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProvider.html new file mode 100644 index 0000000000..4bc7302918 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProvider.html @@ -0,0 +1 @@ +FixedNameCsvFileProvider

FixedNameCsvFileProvider

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total26 of 260%0 of 0n/a333333
getFile(File, String)150%n/a111111
sanitize(String)80%n/a111111
FixedNameCsvFileProvider()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProvider.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProvider.java.html new file mode 100644 index 0000000000..9e6f78a997 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProvider.java.html @@ -0,0 +1,22 @@ +FixedNameCsvFileProvider.java

FixedNameCsvFileProvider.java

package com.codahale.metrics;
+
+import java.io.File;
+
+/**
+ * This implementation of the {@link CsvFileProvider} will always return the same name
+ * for the same metric. This means the CSV file will grow indefinitely.
+ */
+public class FixedNameCsvFileProvider implements CsvFileProvider {
+
+    @Override
+    public File getFile(File directory, String metricName) {
+        return new File(directory, sanitize(metricName) + ".csv");
+    }
+
+    protected String sanitize(String metricName) {
+        //Forward slash character is definitely illegal in both Windows and Linux
+        //https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
+        return metricName.replaceFirst("^/", "").replaceAll("/", ".");
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProviderTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProviderTest.html new file mode 100644 index 0000000000..93352540c9 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProviderTest.html @@ -0,0 +1 @@ +FixedNameCsvFileProviderTest

FixedNameCsvFileProviderTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total62 of 620%0 of 0n/a44141444
testGetFile()240%n/a115511
testGetFileSanitize()240%n/a115511
FixedNameCsvFileProviderTest()80%n/a112211
setUp()60%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProviderTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProviderTest.java.html new file mode 100644 index 0000000000..0c64195bc0 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProviderTest.java.html @@ -0,0 +1,39 @@ +FixedNameCsvFileProviderTest.java

FixedNameCsvFileProviderTest.java

package com.codahale.metrics;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
+
+import java.io.File;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class FixedNameCsvFileProviderTest {
+    @Rule
+    public final TemporaryFolder folder = new TemporaryFolder();
+
+    private File dataDirectory;
+
+    @Before
+    public void setUp() throws Exception {
+        this.dataDirectory = folder.newFolder();
+    }
+
+    @Test
+    public void testGetFile() {
+        FixedNameCsvFileProvider provider = new FixedNameCsvFileProvider();
+        File file = provider.getFile(dataDirectory, "test");
+        assertThat(file.getParentFile()).isEqualTo(dataDirectory);
+        assertThat(file.getName()).isEqualTo("test.csv");
+    }
+
+    @Test
+    public void testGetFileSanitize() {
+        FixedNameCsvFileProvider provider = new FixedNameCsvFileProvider();
+        File file = provider.getFile(dataDirectory, "/myfake/uri");
+        assertThat(file.getParentFile()).isEqualTo(dataDirectory);
+        assertThat(file.getName()).isEqualTo("myfake.uri.csv");
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Histogram.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Histogram.html new file mode 100644 index 0000000000..5d28c78749 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Histogram.html @@ -0,0 +1 @@ +Histogram

Histogram

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total32 of 320%0 of 0n/a55111155
Histogram(Reservoir)110%n/a114411
update(long)80%n/a113311
update(int)50%n/a112211
getCount()40%n/a111111
getSnapshot()40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Histogram.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Histogram.java.html new file mode 100644 index 0000000000..cfbda84f23 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Histogram.java.html @@ -0,0 +1,59 @@ +Histogram.java

Histogram.java

package com.codahale.metrics;
+
+import java.util.concurrent.atomic.LongAdder;
+
+/**
+ * A metric which calculates the distribution of a value.
+ *
+ * @see <a href="http://www.johndcook.com/standard_deviation.html">Accurately computing running
+ * variance</a>
+ */
+public class Histogram implements Metric, Sampling, Counting {
+    private final Reservoir reservoir;
+    private final LongAdder count;
+
+    /**
+     * Creates a new {@link Histogram} with the given reservoir.
+     *
+     * @param reservoir the reservoir to create a histogram from
+     */
+    public Histogram(Reservoir reservoir) {
+        this.reservoir = reservoir;
+        this.count = new LongAdder();
+    }
+
+    /**
+     * Adds a recorded value.
+     *
+     * @param value the length of the value
+     */
+    public void update(int value) {
+        update((long) value);
+    }
+
+    /**
+     * Adds a recorded value.
+     *
+     * @param value the length of the value
+     */
+    public void update(long value) {
+        count.increment();
+        reservoir.update(value);
+    }
+
+    /**
+     * Returns the number of values recorded.
+     *
+     * @return the number of values recorded
+     */
+    @Override
+    public long getCount() {
+        return count.sum();
+    }
+
+    @Override
+    public Snapshot getSnapshot() {
+        return reservoir.getSnapshot();
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/HistogramTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/HistogramTest.html new file mode 100644 index 0000000000..ad2afbfd09 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/HistogramTest.html @@ -0,0 +1 @@ +HistogramTest

HistogramTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total63 of 630%0 of 0n/a44171744
returnsTheSnapshotFromTheReservoir()190%n/a115511
updatesTheCountOnUpdates()180%n/a116611
HistogramTest()150%n/a113311
updatesTheReservoir()110%n/a113311
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/HistogramTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/HistogramTest.java.html new file mode 100644 index 0000000000..5690435bd4 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/HistogramTest.java.html @@ -0,0 +1,41 @@ +HistogramTest.java

HistogramTest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+public class HistogramTest {
+    private final Reservoir reservoir = mock(Reservoir.class);
+    private final Histogram histogram = new Histogram(reservoir);
+
+    @Test
+    public void updatesTheCountOnUpdates() {
+        assertThat(histogram.getCount())
+                .isZero();
+
+        histogram.update(1);
+
+        assertThat(histogram.getCount())
+                .isEqualTo(1);
+    }
+
+    @Test
+    public void returnsTheSnapshotFromTheReservoir() {
+        final Snapshot snapshot = mock(Snapshot.class);
+        when(reservoir.getSnapshot()).thenReturn(snapshot);
+
+        assertThat(histogram.getSnapshot())
+                .isEqualTo(snapshot);
+    }
+
+    @Test
+    public void updatesTheReservoir() throws Exception {
+        histogram.update(1);
+
+        verify(reservoir).update(1);
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService$InstrumentedCallable.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService$InstrumentedCallable.html new file mode 100644 index 0000000000..50d2c825b7 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService$InstrumentedCallable.html @@ -0,0 +1 @@ +InstrumentedExecutorService.InstrumentedCallable

InstrumentedExecutorService.InstrumentedCallable

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total41 of 410%0 of 0n/a22101022
call()270%n/a116611
InstrumentedExecutorService.InstrumentedCallable(InstrumentedExecutorService, Callable)140%n/a114411
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService$InstrumentedRunnable.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService$InstrumentedRunnable.html new file mode 100644 index 0000000000..838903144b --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService$InstrumentedRunnable.html @@ -0,0 +1 @@ +InstrumentedExecutorService.InstrumentedRunnable

InstrumentedExecutorService.InstrumentedRunnable

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total39 of 390%0 of 0n/a22111122
run()250%n/a117711
InstrumentedExecutorService.InstrumentedRunnable(InstrumentedExecutorService, Runnable)140%n/a114411
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService.html new file mode 100644 index 0000000000..afb45f6fb3 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService.html @@ -0,0 +1 @@ +InstrumentedExecutorService

InstrumentedExecutorService

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total439 of 4390%6 of 60%202070701717
InstrumentedExecutorService(ExecutorService, MetricRegistry, String)2580%40%33353511
instrument(Collection)270%20%225511
invokeAll(Collection, long, TimeUnit)170%n/a113311
invokeAny(Collection, long, TimeUnit)170%n/a113311
invokeAll(Collection)150%n/a113311
invokeAny(Collection)150%n/a113311
InstrumentedExecutorService(ExecutorService, MetricRegistry)140%n/a112211
submit(Runnable, Object)130%n/a112211
execute(Runnable)120%n/a113311
submit(Runnable)120%n/a112211
submit(Callable)120%n/a112211
awaitTermination(long, TimeUnit)60%n/a111111
static {...}50%n/a111111
shutdown()40%n/a112211
shutdownNow()40%n/a111111
isShutdown()40%n/a111111
isTerminated()40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService.java.html new file mode 100644 index 0000000000..280473b4ca --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService.java.html @@ -0,0 +1,242 @@ +InstrumentedExecutorService.java

InstrumentedExecutorService.java

package com.codahale.metrics;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ForkJoinPool;
+import java.util.concurrent.Future;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+import java.util.concurrent.atomic.AtomicLong;
+
+/**
+ * An {@link ExecutorService} that monitors the number of tasks submitted, running,
+ * completed and also keeps a {@link Timer} for the task duration.
+ * <p>
+ * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
+ * "your-executor-service.submitted", "your-executor-service.running", etc.
+ */
+public class InstrumentedExecutorService implements ExecutorService {
+    private static final AtomicLong NAME_COUNTER = new AtomicLong();
+
+    private final ExecutorService delegate;
+    private final Meter submitted;
+    private final Counter running;
+    private final Meter completed;
+    private final Timer idle;
+    private final Timer duration;
+
+    /**
+     * Wraps an {@link ExecutorService} uses an auto-generated default name.
+     *
+     * @param delegate {@link ExecutorService} to wrap.
+     * @param registry {@link MetricRegistry} that will contain the metrics.
+     */
+    public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry) {
+        this(delegate, registry, "instrumented-delegate-" + NAME_COUNTER.incrementAndGet());
+    }
+
+    /**
+     * Wraps an {@link ExecutorService} with an explicit name.
+     *
+     * @param delegate {@link ExecutorService} to wrap.
+     * @param registry {@link MetricRegistry} that will contain the metrics.
+     * @param name     name for this executor service.
+     */
+    public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry, String name) {
+        this.delegate = delegate;
+        this.submitted = registry.meter(MetricRegistry.name(name, "submitted"));
+        this.running = registry.counter(MetricRegistry.name(name, "running"));
+        this.completed = registry.meter(MetricRegistry.name(name, "completed"));
+        this.idle = registry.timer(MetricRegistry.name(name, "idle"));
+        this.duration = registry.timer(MetricRegistry.name(name, "duration"));
+
+        if (delegate instanceof ThreadPoolExecutor) {
+            ThreadPoolExecutor executor = (ThreadPoolExecutor) delegate;
+            registry.registerGauge(MetricRegistry.name(name, "pool.size"),
+                    executor::getPoolSize);
+            registry.registerGauge(MetricRegistry.name(name, "pool.core"),
+                    executor::getCorePoolSize);
+            registry.registerGauge(MetricRegistry.name(name, "pool.max"),
+                    executor::getMaximumPoolSize);
+            final BlockingQueue<Runnable> queue = executor.getQueue();
+            registry.registerGauge(MetricRegistry.name(name, "tasks.active"),
+                    executor::getActiveCount);
+            registry.registerGauge(MetricRegistry.name(name, "tasks.completed"),
+                    executor::getCompletedTaskCount);
+            registry.registerGauge(MetricRegistry.name(name, "tasks.queued"),
+                    queue::size);
+            registry.registerGauge(MetricRegistry.name(name, "tasks.capacity"),
+                    queue::remainingCapacity);
+        } else if (delegate instanceof ForkJoinPool) {
+            ForkJoinPool forkJoinPool = (ForkJoinPool) delegate;
+            registry.registerGauge(MetricRegistry.name(name, "tasks.stolen"),
+                    forkJoinPool::getStealCount);
+            registry.registerGauge(MetricRegistry.name(name, "tasks.queued"),
+                    forkJoinPool::getQueuedTaskCount);
+            registry.registerGauge(MetricRegistry.name(name, "threads.active"),
+                    forkJoinPool::getActiveThreadCount);
+            registry.registerGauge(MetricRegistry.name(name, "threads.running"),
+                    forkJoinPool::getRunningThreadCount);
+        }
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void execute(Runnable runnable) {
+        submitted.mark();
+        delegate.execute(new InstrumentedRunnable(runnable));
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Future<?> submit(Runnable runnable) {
+        submitted.mark();
+        return delegate.submit(new InstrumentedRunnable(runnable));
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public <T> Future<T> submit(Runnable runnable, T result) {
+        submitted.mark();
+        return delegate.submit(new InstrumentedRunnable(runnable), result);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public <T> Future<T> submit(Callable<T> task) {
+        submitted.mark();
+        return delegate.submit(new InstrumentedCallable<>(task));
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException {
+        submitted.mark(tasks.size());
+        Collection<? extends Callable<T>> instrumented = instrument(tasks);
+        return delegate.invokeAll(instrumented);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException {
+        submitted.mark(tasks.size());
+        Collection<? extends Callable<T>> instrumented = instrument(tasks);
+        return delegate.invokeAll(instrumented, timeout, unit);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws ExecutionException, InterruptedException {
+        submitted.mark(tasks.size());
+        Collection<? extends Callable<T>> instrumented = instrument(tasks);
+        return delegate.invokeAny(instrumented);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws ExecutionException, InterruptedException, TimeoutException {
+        submitted.mark(tasks.size());
+        Collection<? extends Callable<T>> instrumented = instrument(tasks);
+        return delegate.invokeAny(instrumented, timeout, unit);
+    }
+
+    private <T> Collection<? extends Callable<T>> instrument(Collection<? extends Callable<T>> tasks) {
+        final List<InstrumentedCallable<T>> instrumented = new ArrayList<>(tasks.size());
+        for (Callable<T> task : tasks) {
+            instrumented.add(new InstrumentedCallable<>(task));
+        }
+        return instrumented;
+    }
+
+    @Override
+    public void shutdown() {
+        delegate.shutdown();
+    }
+
+    @Override
+    public List<Runnable> shutdownNow() {
+        return delegate.shutdownNow();
+    }
+
+    @Override
+    public boolean isShutdown() {
+        return delegate.isShutdown();
+    }
+
+    @Override
+    public boolean isTerminated() {
+        return delegate.isTerminated();
+    }
+
+    @Override
+    public boolean awaitTermination(long l, TimeUnit timeUnit) throws InterruptedException {
+        return delegate.awaitTermination(l, timeUnit);
+    }
+
+    private class InstrumentedRunnable implements Runnable {
+        private final Runnable task;
+        private final Timer.Context idleContext;
+
+        InstrumentedRunnable(Runnable task) {
+            this.task = task;
+            this.idleContext = idle.time();
+        }
+
+        @Override
+        public void run() {
+            idleContext.stop();
+            running.inc();
+            try (Timer.Context durationContext = duration.time()) {
+                task.run();
+            } finally {
+                running.dec();
+                completed.mark();
+            }
+        }
+    }
+
+    private class InstrumentedCallable<T> implements Callable<T> {
+        private final Callable<T> callable;
+        private final Timer.Context idleContext;
+
+        InstrumentedCallable(Callable<T> callable) {
+            this.callable = callable;
+            this.idleContext = idle.time();
+        }
+
+        @Override
+        public T call() throws Exception {
+            idleContext.stop();
+            running.inc();
+            try (Timer.Context context = duration.time()) {
+                return callable.call();
+            } finally {
+                running.dec();
+                completed.mark();
+            }
+        }
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorServiceTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorServiceTest.html new file mode 100644 index 0000000000..3141eebc58 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorServiceTest.html @@ -0,0 +1 @@ +InstrumentedExecutorServiceTest

InstrumentedExecutorServiceTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total910 of 9100%2 of 20%13131451451212
reportsTasksInformationForThreadPoolExecutor()2610%n/a11383811
reportsTasksInformationForForkJoinPool()2040%n/a11313111
reportsTasksInformationForRunnable()980%n/a11161611
reportsTasksInformationForCallable()980%n/a11161611
lambda$reportsTasksInformationForForkJoinPool$3(Gauge, Gauge, Gauge)570%n/a119911
lambda$reportsTasksInformationForThreadPoolExecutor$2(Gauge, Gauge)500%n/a118811
setup()490%n/a119911
lambda$reportsTasksInformationForCallable$1()370%n/a116611
lambda$reportsTasksInformationForRunnable$0()360%n/a116611
tearDown()130%20%224411
static {...}40%n/a111111
InstrumentedExecutorServiceTest()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorServiceTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorServiceTest.java.html new file mode 100644 index 0000000000..48632f7439 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorServiceTest.java.html @@ -0,0 +1,219 @@ +InstrumentedExecutorServiceTest.java

InstrumentedExecutorServiceTest.java

package com.codahale.metrics;
+
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.time.Duration;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ForkJoinPool;
+import java.util.concurrent.Future;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class InstrumentedExecutorServiceTest {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(InstrumentedExecutorServiceTest.class);
+    private ExecutorService executor;
+    private MetricRegistry registry;
+    private InstrumentedExecutorService instrumentedExecutorService;
+    private Meter submitted;
+    private Counter running;
+    private Meter completed;
+    private Timer duration;
+    private Timer idle;
+
+    @Before
+    public void setup() {
+        executor = Executors.newCachedThreadPool();
+        registry = new MetricRegistry();
+        instrumentedExecutorService = new InstrumentedExecutorService(executor, registry, "xs");
+        submitted = registry.meter("xs.submitted");
+        running = registry.counter("xs.running");
+        completed = registry.meter("xs.completed");
+        duration = registry.timer("xs.duration");
+        idle = registry.timer("xs.idle");
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        instrumentedExecutorService.shutdown();
+        if (!instrumentedExecutorService.awaitTermination(2, TimeUnit.SECONDS)) {
+            LOGGER.error("InstrumentedExecutorService did not terminate.");
+        }
+    }
+
+    @Test
+    public void reportsTasksInformationForRunnable() throws Exception {
+
+        assertThat(submitted.getCount()).isEqualTo(0);
+        assertThat(running.getCount()).isEqualTo(0);
+        assertThat(completed.getCount()).isEqualTo(0);
+        assertThat(duration.getCount()).isEqualTo(0);
+        assertThat(idle.getCount()).isEqualTo(0);
+
+        Runnable runnable = () -> {
+            assertThat(submitted.getCount()).isEqualTo(1);
+            assertThat(running.getCount()).isEqualTo(1);
+            assertThat(completed.getCount()).isEqualTo(0);
+            assertThat(duration.getCount()).isEqualTo(0);
+            assertThat(idle.getCount()).isEqualTo(1);
+        };
+
+        Future<?> theFuture = instrumentedExecutorService.submit(runnable);
+
+        theFuture.get();
+
+        assertThat(submitted.getCount()).isEqualTo(1);
+        assertThat(running.getCount()).isEqualTo(0);
+        assertThat(completed.getCount()).isEqualTo(1);
+        assertThat(duration.getCount()).isEqualTo(1);
+        assertThat(duration.getSnapshot().size()).isEqualTo(1);
+        assertThat(idle.getCount()).isEqualTo(1);
+        assertThat(idle.getSnapshot().size()).isEqualTo(1);
+    }
+
+    @Test
+    public void reportsTasksInformationForCallable() throws Exception {
+
+        assertThat(submitted.getCount()).isEqualTo(0);
+        assertThat(running.getCount()).isEqualTo(0);
+        assertThat(completed.getCount()).isEqualTo(0);
+        assertThat(duration.getCount()).isEqualTo(0);
+        assertThat(idle.getCount()).isEqualTo(0);
+
+        Callable<Void> callable = () -> {
+            assertThat(submitted.getCount()).isEqualTo(1);
+            assertThat(running.getCount()).isEqualTo(1);
+            assertThat(completed.getCount()).isEqualTo(0);
+            assertThat(duration.getCount()).isEqualTo(0);
+            assertThat(idle.getCount()).isEqualTo(1);
+            return null;
+        };
+
+        Future<?> theFuture = instrumentedExecutorService.submit(callable);
+
+        theFuture.get();
+
+        assertThat(submitted.getCount()).isEqualTo(1);
+        assertThat(running.getCount()).isEqualTo(0);
+        assertThat(completed.getCount()).isEqualTo(1);
+        assertThat(duration.getCount()).isEqualTo(1);
+        assertThat(duration.getSnapshot().size()).isEqualTo(1);
+        assertThat(idle.getCount()).isEqualTo(1);
+        assertThat(idle.getSnapshot().size()).isEqualTo(1);
+    }
+
+    @Test
+    @SuppressWarnings("unchecked")
+    public void reportsTasksInformationForThreadPoolExecutor() throws Exception {
+        executor = new ThreadPoolExecutor(4, 16,
+                0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(32));
+        instrumentedExecutorService = new InstrumentedExecutorService(executor, registry, "tp");
+        submitted = registry.meter("tp.submitted");
+        running = registry.counter("tp.running");
+        completed = registry.meter("tp.completed");
+        duration = registry.timer("tp.duration");
+        idle = registry.timer("tp.idle");
+        final Gauge<Integer> poolSize = (Gauge<Integer>) registry.getGauges().get("tp.pool.size");
+        final Gauge<Integer> poolCoreSize = (Gauge<Integer>) registry.getGauges().get("tp.pool.core");
+        final Gauge<Integer> poolMaxSize = (Gauge<Integer>) registry.getGauges().get("tp.pool.max");
+        final Gauge<Integer> tasksActive = (Gauge<Integer>) registry.getGauges().get("tp.tasks.active");
+        final Gauge<Long> tasksCompleted = (Gauge<Long>) registry.getGauges().get("tp.tasks.completed");
+        final Gauge<Integer> tasksQueued = (Gauge<Integer>) registry.getGauges().get("tp.tasks.queued");
+        final Gauge<Integer> tasksCapacityRemaining = (Gauge<Integer>) registry.getGauges().get("tp.tasks.capacity");
+
+        assertThat(submitted.getCount()).isEqualTo(0);
+        assertThat(running.getCount()).isEqualTo(0);
+        assertThat(completed.getCount()).isEqualTo(0);
+        assertThat(duration.getCount()).isEqualTo(0);
+        assertThat(idle.getCount()).isEqualTo(0);
+        assertThat(poolSize.getValue()).isEqualTo(0);
+        assertThat(poolCoreSize.getValue()).isEqualTo(4);
+        assertThat(poolMaxSize.getValue()).isEqualTo(16);
+        assertThat(tasksActive.getValue()).isEqualTo(0);
+        assertThat(tasksCompleted.getValue()).isEqualTo(0L);
+        assertThat(tasksQueued.getValue()).isEqualTo(0);
+        assertThat(tasksCapacityRemaining.getValue()).isEqualTo(32);
+
+        Runnable runnable = () -> {
+            assertThat(submitted.getCount()).isEqualTo(1);
+            assertThat(running.getCount()).isEqualTo(1);
+            assertThat(completed.getCount()).isEqualTo(0);
+            assertThat(duration.getCount()).isEqualTo(0);
+            assertThat(idle.getCount()).isEqualTo(1);
+            assertThat(tasksActive.getValue()).isEqualTo(1);
+            assertThat(tasksQueued.getValue()).isEqualTo(0);
+        };
+
+        Future<?> theFuture = instrumentedExecutorService.submit(runnable);
+
+        assertThat(theFuture).succeedsWithin(Duration.ofSeconds(5L));
+
+        assertThat(submitted.getCount()).isEqualTo(1);
+        assertThat(running.getCount()).isEqualTo(0);
+        assertThat(completed.getCount()).isEqualTo(1);
+        assertThat(duration.getCount()).isEqualTo(1);
+        assertThat(duration.getSnapshot().size()).isEqualTo(1);
+        assertThat(idle.getCount()).isEqualTo(1);
+        assertThat(idle.getSnapshot().size()).isEqualTo(1);
+        assertThat(poolSize.getValue()).isEqualTo(1);
+    }
+
+    @Test
+    @SuppressWarnings("unchecked")
+    public void reportsTasksInformationForForkJoinPool() throws Exception {
+        executor = Executors.newWorkStealingPool(4);
+        instrumentedExecutorService = new InstrumentedExecutorService(executor, registry, "fjp");
+        submitted = registry.meter("fjp.submitted");
+        running = registry.counter("fjp.running");
+        completed = registry.meter("fjp.completed");
+        duration = registry.timer("fjp.duration");
+        idle = registry.timer("fjp.idle");
+        final Gauge<Long> tasksStolen = (Gauge<Long>) registry.getGauges().get("fjp.tasks.stolen");
+        final Gauge<Long> tasksQueued = (Gauge<Long>) registry.getGauges().get("fjp.tasks.queued");
+        final Gauge<Integer> threadsActive = (Gauge<Integer>) registry.getGauges().get("fjp.threads.active");
+        final Gauge<Integer> threadsRunning = (Gauge<Integer>) registry.getGauges().get("fjp.threads.running");
+
+        assertThat(submitted.getCount()).isEqualTo(0);
+        assertThat(running.getCount()).isEqualTo(0);
+        assertThat(completed.getCount()).isEqualTo(0);
+        assertThat(duration.getCount()).isEqualTo(0);
+        assertThat(idle.getCount()).isEqualTo(0);
+        assertThat(tasksStolen.getValue()).isEqualTo(0L);
+        assertThat(tasksQueued.getValue()).isEqualTo(0L);
+        assertThat(threadsActive.getValue()).isEqualTo(0);
+        assertThat(threadsRunning.getValue()).isEqualTo(0);
+
+        Runnable runnable = () -> {
+            assertThat(submitted.getCount()).isEqualTo(1);
+            assertThat(running.getCount()).isEqualTo(1);
+            assertThat(completed.getCount()).isEqualTo(0);
+            assertThat(duration.getCount()).isEqualTo(0);
+            assertThat(idle.getCount()).isEqualTo(1);
+            assertThat(tasksQueued.getValue()).isEqualTo(0L);
+            assertThat(threadsActive.getValue()).isEqualTo(1);
+            assertThat(threadsRunning.getValue()).isEqualTo(1);
+        };
+
+        Future<?> theFuture = instrumentedExecutorService.submit(runnable);
+
+        assertThat(theFuture).succeedsWithin(Duration.ofSeconds(5L));
+
+        assertThat(submitted.getCount()).isEqualTo(1);
+        assertThat(running.getCount()).isEqualTo(0);
+        assertThat(completed.getCount()).isEqualTo(1);
+        assertThat(duration.getCount()).isEqualTo(1);
+        assertThat(duration.getSnapshot().size()).isEqualTo(1);
+        assertThat(idle.getCount()).isEqualTo(1);
+        assertThat(idle.getSnapshot().size()).isEqualTo(1);
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedCallable.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedCallable.html new file mode 100644 index 0000000000..698ef61be1 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedCallable.html @@ -0,0 +1 @@ +InstrumentedScheduledExecutorService.InstrumentedCallable

InstrumentedScheduledExecutorService.InstrumentedCallable

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total35 of 350%0 of 0n/a229922
call()260%n/a116611
InstrumentedScheduledExecutorService.InstrumentedCallable(InstrumentedScheduledExecutorService, Callable)90%n/a113311
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedPeriodicRunnable.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedPeriodicRunnable.html new file mode 100644 index 0000000000..2e1834c454 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedPeriodicRunnable.html @@ -0,0 +1 @@ +InstrumentedScheduledExecutorService.InstrumentedPeriodicRunnable

InstrumentedScheduledExecutorService.InstrumentedPeriodicRunnable

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total57 of 570%2 of 20%33141422
run()430%20%22101011
InstrumentedScheduledExecutorService.InstrumentedPeriodicRunnable(InstrumentedScheduledExecutorService, Runnable, long, TimeUnit)140%n/a114411
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedRunnable.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedRunnable.html new file mode 100644 index 0000000000..cea4fed0dd --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedRunnable.html @@ -0,0 +1 @@ +InstrumentedScheduledExecutorService.InstrumentedRunnable

InstrumentedScheduledExecutorService.InstrumentedRunnable

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total33 of 330%0 of 0n/a22101022
run()240%n/a117711
InstrumentedScheduledExecutorService.InstrumentedRunnable(InstrumentedScheduledExecutorService, Runnable)90%n/a113311
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService.html new file mode 100644 index 0000000000..725e4c9e7d --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService.html @@ -0,0 +1 @@ +InstrumentedScheduledExecutorService

InstrumentedScheduledExecutorService

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total343 of 3430%2 of 20%222254542121
InstrumentedScheduledExecutorService(ScheduledExecutorService, MetricRegistry, String)1020%n/a11111111
instrument(Collection)270%20%225511
scheduleAtFixedRate(Runnable, long, long, TimeUnit)170%n/a112211
invokeAll(Collection, long, TimeUnit)170%n/a113311
invokeAny(Collection, long, TimeUnit)170%n/a113311
scheduleWithFixedDelay(Runnable, long, long, TimeUnit)150%n/a112211
invokeAll(Collection)150%n/a113311
invokeAny(Collection)150%n/a113311
InstrumentedScheduledExecutorService(ScheduledExecutorService, MetricRegistry)140%n/a112211
schedule(Runnable, long, TimeUnit)140%n/a112211
schedule(Callable, long, TimeUnit)140%n/a112211
submit(Runnable, Object)130%n/a112211
submit(Callable)120%n/a112211
submit(Runnable)120%n/a112211
execute(Runnable)120%n/a113311
awaitTermination(long, TimeUnit)60%n/a111111
static {...}50%n/a111111
shutdown()40%n/a112211
shutdownNow()40%n/a111111
isShutdown()40%n/a111111
isTerminated()40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService.java.html new file mode 100644 index 0000000000..9c0ca878b4 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService.java.html @@ -0,0 +1,298 @@ +InstrumentedScheduledExecutorService.java

InstrumentedScheduledExecutorService.java

package com.codahale.metrics;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+import java.util.concurrent.atomic.AtomicLong;
+
+/**
+ * An {@link ScheduledExecutorService} that monitors the number of tasks submitted, running,
+ * completed and also keeps a {@link Timer} for the task duration.
+ * <p>
+ * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
+ * "your-executor-service.submitted", "your-executor-service.running", etc.
+ */
+public class InstrumentedScheduledExecutorService implements ScheduledExecutorService {
+    private static final AtomicLong NAME_COUNTER = new AtomicLong();
+
+    private final ScheduledExecutorService delegate;
+
+    private final Meter submitted;
+    private final Counter running;
+    private final Meter completed;
+    private final Timer duration;
+
+    private final Meter scheduledOnce;
+    private final Meter scheduledRepetitively;
+    private final Counter scheduledOverrun;
+    private final Histogram percentOfPeriod;
+
+    /**
+     * Wraps an {@link ScheduledExecutorService} uses an auto-generated default name.
+     *
+     * @param delegate {@link ScheduledExecutorService} to wrap.
+     * @param registry {@link MetricRegistry} that will contain the metrics.
+     */
+    public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry) {
+        this(delegate, registry, "instrumented-scheduled-executor-service-" + NAME_COUNTER.incrementAndGet());
+    }
+
+    /**
+     * Wraps an {@link ScheduledExecutorService} with an explicit name.
+     *
+     * @param delegate {@link ScheduledExecutorService} to wrap.
+     * @param registry {@link MetricRegistry} that will contain the metrics.
+     * @param name     name for this executor service.
+     */
+    public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry, String name) {
+        this.delegate = delegate;
+
+        this.submitted = registry.meter(MetricRegistry.name(name, "submitted"));
+
+        this.running = registry.counter(MetricRegistry.name(name, "running"));
+        this.completed = registry.meter(MetricRegistry.name(name, "completed"));
+        this.duration = registry.timer(MetricRegistry.name(name, "duration"));
+
+        this.scheduledOnce = registry.meter(MetricRegistry.name(name, "scheduled.once"));
+        this.scheduledRepetitively = registry.meter(MetricRegistry.name(name, "scheduled.repetitively"));
+        this.scheduledOverrun = registry.counter(MetricRegistry.name(name, "scheduled.overrun"));
+        this.percentOfPeriod = registry.histogram(MetricRegistry.name(name, "scheduled.percent-of-period"));
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit) {
+        scheduledOnce.mark();
+        return delegate.schedule(new InstrumentedRunnable(command), delay, unit);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public <V> ScheduledFuture<V> schedule(Callable<V> callable, long delay, TimeUnit unit) {
+        scheduledOnce.mark();
+        return delegate.schedule(new InstrumentedCallable<>(callable), delay, unit);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) {
+        scheduledRepetitively.mark();
+        return delegate.scheduleAtFixedRate(new InstrumentedPeriodicRunnable(command, period, unit), initialDelay, period, unit);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) {
+        scheduledRepetitively.mark();
+        return delegate.scheduleWithFixedDelay(new InstrumentedRunnable(command), initialDelay, delay, unit);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void shutdown() {
+        delegate.shutdown();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public List<Runnable> shutdownNow() {
+        return delegate.shutdownNow();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public boolean isShutdown() {
+        return delegate.isShutdown();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public boolean isTerminated() {
+        return delegate.isTerminated();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {
+        return delegate.awaitTermination(timeout, unit);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public <T> Future<T> submit(Callable<T> task) {
+        submitted.mark();
+        return delegate.submit(new InstrumentedCallable<>(task));
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public <T> Future<T> submit(Runnable task, T result) {
+        submitted.mark();
+        return delegate.submit(new InstrumentedRunnable(task), result);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Future<?> submit(Runnable task) {
+        submitted.mark();
+        return delegate.submit(new InstrumentedRunnable(task));
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException {
+        submitted.mark(tasks.size());
+        Collection<? extends Callable<T>> instrumented = instrument(tasks);
+        return delegate.invokeAll(instrumented);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException {
+        submitted.mark(tasks.size());
+        Collection<? extends Callable<T>> instrumented = instrument(tasks);
+        return delegate.invokeAll(instrumented, timeout, unit);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws InterruptedException, ExecutionException {
+        submitted.mark(tasks.size());
+        Collection<? extends Callable<T>> instrumented = instrument(tasks);
+        return delegate.invokeAny(instrumented);
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
+        submitted.mark(tasks.size());
+        Collection<? extends Callable<T>> instrumented = instrument(tasks);
+        return delegate.invokeAny(instrumented, timeout, unit);
+    }
+
+    private <T> Collection<? extends Callable<T>> instrument(Collection<? extends Callable<T>> tasks) {
+        final List<InstrumentedCallable<T>> instrumented = new ArrayList<>(tasks.size());
+        for (Callable<T> task : tasks) {
+            instrumented.add(new InstrumentedCallable<>(task));
+        }
+        return instrumented;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void execute(Runnable command) {
+        submitted.mark();
+        delegate.execute(new InstrumentedRunnable(command));
+    }
+
+    private class InstrumentedRunnable implements Runnable {
+        private final Runnable command;
+
+        InstrumentedRunnable(Runnable command) {
+            this.command = command;
+        }
+
+        @Override
+        public void run() {
+            running.inc();
+            final Timer.Context context = duration.time();
+            try {
+                command.run();
+            } finally {
+                context.stop();
+                running.dec();
+                completed.mark();
+            }
+        }
+    }
+
+    private class InstrumentedPeriodicRunnable implements Runnable {
+        private final Runnable command;
+        private final long periodInNanos;
+
+        InstrumentedPeriodicRunnable(Runnable command, long period, TimeUnit unit) {
+            this.command = command;
+            this.periodInNanos = unit.toNanos(period);
+        }
+
+        @Override
+        public void run() {
+            running.inc();
+            final Timer.Context context = duration.time();
+            try {
+                command.run();
+            } finally {
+                final long elapsed = context.stop();
+                running.dec();
+                completed.mark();
+                if (elapsed > periodInNanos) {
+                    scheduledOverrun.inc();
+                }
+                percentOfPeriod.update((100L * elapsed) / periodInNanos);
+            }
+        }
+    }
+
+    private class InstrumentedCallable<T> implements Callable<T> {
+        private final Callable<T> task;
+
+        InstrumentedCallable(Callable<T> task) {
+            this.task = task;
+        }
+
+        @Override
+        public T call() throws Exception {
+            running.inc();
+            final Timer.Context context = duration.time();
+            try {
+                return task.call();
+            } finally {
+                context.stop();
+                running.dec();
+                completed.mark();
+            }
+        }
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorServiceTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorServiceTest.html new file mode 100644 index 0000000000..77206b9148 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorServiceTest.html @@ -0,0 +1 @@ +InstrumentedScheduledExecutorServiceTest

InstrumentedScheduledExecutorServiceTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total1,107 of 1,1070%2 of 20%16161991991515
testScheduleFixedRateCallable()1400%n/a11242411
testScheduleCallable()1270%n/a11212111
testSubmitCallable()1250%n/a11212111
testScheduleRunnable()1190%n/a11202011
testSubmitRunnable()1170%n/a11202011
testScheduleFixedDelayCallable()1130%n/a11202011
InstrumentedScheduledExecutorServiceTest()690%n/a11121211
lambda$testScheduleCallable$3(Object)520%n/a119911
lambda$testSubmitCallable$2(Object)520%n/a119911
lambda$testScheduleRunnable$1()510%n/a119911
lambda$testSubmitRunnable$0()510%n/a119911
lambda$testScheduleFixedDelayCallable$5(CountDownLatch)370%n/a11101011
lambda$testScheduleFixedRateCallable$4(CountDownLatch)370%n/a11101011
tearDown()130%20%224411
static {...}40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorServiceTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorServiceTest.java.html new file mode 100644 index 0000000000..1bab282903 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorServiceTest.java.html @@ -0,0 +1,306 @@ +InstrumentedScheduledExecutorServiceTest.java

InstrumentedScheduledExecutorServiceTest.java

package com.codahale.metrics;
+
+import org.junit.After;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class InstrumentedScheduledExecutorServiceTest {
+    private static final Logger LOGGER = LoggerFactory.getLogger(InstrumentedScheduledExecutorServiceTest.class);
+
+    private final ScheduledExecutorService scheduledExecutor = Executors.newSingleThreadScheduledExecutor();
+    private final MetricRegistry registry = new MetricRegistry();
+    private final InstrumentedScheduledExecutorService instrumentedScheduledExecutor = new InstrumentedScheduledExecutorService(scheduledExecutor, registry, "xs");
+
+    private final Meter submitted = registry.meter("xs.submitted");
+
+    private final Counter running = registry.counter("xs.running");
+    private final Meter completed = registry.meter("xs.completed");
+    private final Timer duration = registry.timer("xs.duration");
+
+    private final Meter scheduledOnce = registry.meter("xs.scheduled.once");
+    private final Meter scheduledRepetitively = registry.meter("xs.scheduled.repetitively");
+    private final Counter scheduledOverrun = registry.counter("xs.scheduled.overrun");
+    private final Histogram percentOfPeriod = registry.histogram("xs.scheduled.percent-of-period");
+
+    @Test
+    public void testSubmitRunnable() throws Exception {
+        assertThat(submitted.getCount()).isZero();
+
+        assertThat(running.getCount()).isZero();
+        assertThat(completed.getCount()).isZero();
+        assertThat(duration.getCount()).isZero();
+
+        assertThat(scheduledOnce.getCount()).isZero();
+        assertThat(scheduledRepetitively.getCount()).isZero();
+        assertThat(scheduledOverrun.getCount()).isZero();
+        assertThat(percentOfPeriod.getCount()).isZero();
+
+        Future<?> theFuture = instrumentedScheduledExecutor.submit(() -> {
+            assertThat(submitted.getCount()).isEqualTo(1);
+
+            assertThat(running.getCount()).isEqualTo(1);
+            assertThat(completed.getCount()).isZero();
+            assertThat(duration.getCount()).isZero();
+
+            assertThat(scheduledOnce.getCount()).isZero();
+            assertThat(scheduledRepetitively.getCount()).isZero();
+            assertThat(scheduledOverrun.getCount()).isZero();
+            assertThat(percentOfPeriod.getCount()).isZero();
+        });
+
+        theFuture.get();
+
+        assertThat(submitted.getCount()).isEqualTo(1);
+
+        assertThat(running.getCount()).isZero();
+        assertThat(completed.getCount()).isEqualTo(1);
+        assertThat(duration.getCount()).isEqualTo(1);
+        assertThat(duration.getSnapshot().size()).isEqualTo(1);
+
+        assertThat(scheduledOnce.getCount()).isZero();
+        assertThat(scheduledRepetitively.getCount()).isZero();
+        assertThat(scheduledOverrun.getCount()).isZero();
+        assertThat(percentOfPeriod.getCount()).isZero();
+    }
+
+    @Test
+    public void testScheduleRunnable() throws Exception {
+        assertThat(submitted.getCount()).isZero();
+
+        assertThat(running.getCount()).isZero();
+        assertThat(completed.getCount()).isZero();
+        assertThat(duration.getCount()).isZero();
+
+        assertThat(scheduledOnce.getCount()).isZero();
+        assertThat(scheduledRepetitively.getCount()).isZero();
+        assertThat(scheduledOverrun.getCount()).isZero();
+        assertThat(percentOfPeriod.getCount()).isZero();
+
+        ScheduledFuture<?> theFuture = instrumentedScheduledExecutor.schedule(() -> {
+            assertThat(submitted.getCount()).isZero();
+
+            assertThat(running.getCount()).isEqualTo(1);
+            assertThat(completed.getCount()).isZero();
+            assertThat(duration.getCount()).isZero();
+
+            assertThat(scheduledOnce.getCount()).isEqualTo(1);
+            assertThat(scheduledRepetitively.getCount()).isZero();
+            assertThat(scheduledOverrun.getCount()).isZero();
+            assertThat(percentOfPeriod.getCount()).isZero();
+        }, 10L, TimeUnit.MILLISECONDS);
+
+        theFuture.get();
+
+        assertThat(submitted.getCount()).isZero();
+
+        assertThat(running.getCount()).isZero();
+        assertThat(completed.getCount()).isEqualTo(1);
+        assertThat(duration.getCount()).isEqualTo(1);
+        assertThat(duration.getSnapshot().size()).isEqualTo(1);
+
+        assertThat(scheduledOnce.getCount()).isEqualTo(1);
+        assertThat(scheduledRepetitively.getCount()).isZero();
+        assertThat(scheduledOverrun.getCount()).isZero();
+        assertThat(percentOfPeriod.getCount()).isZero();
+    }
+
+    @Test
+    public void testSubmitCallable() throws Exception {
+        assertThat(submitted.getCount()).isZero();
+
+        assertThat(running.getCount()).isZero();
+        assertThat(completed.getCount()).isZero();
+        assertThat(duration.getCount()).isZero();
+
+        assertThat(scheduledOnce.getCount()).isZero();
+        assertThat(scheduledRepetitively.getCount()).isZero();
+        assertThat(scheduledOverrun.getCount()).isZero();
+        assertThat(percentOfPeriod.getCount()).isZero();
+
+        final Object obj = new Object();
+
+        Future<Object> theFuture = instrumentedScheduledExecutor.submit(() -> {
+            assertThat(submitted.getCount()).isEqualTo(1);
+
+            assertThat(running.getCount()).isEqualTo(1);
+            assertThat(completed.getCount()).isZero();
+            assertThat(duration.getCount()).isZero();
+
+            assertThat(scheduledOnce.getCount()).isZero();
+            assertThat(scheduledRepetitively.getCount()).isZero();
+            assertThat(scheduledOverrun.getCount()).isZero();
+            assertThat(percentOfPeriod.getCount()).isZero();
+
+            return obj;
+        });
+
+        assertThat(theFuture.get()).isEqualTo(obj);
+
+        assertThat(submitted.getCount()).isEqualTo(1);
+
+        assertThat(running.getCount()).isZero();
+        assertThat(completed.getCount()).isEqualTo(1);
+        assertThat(duration.getCount()).isEqualTo(1);
+        assertThat(duration.getSnapshot().size()).isEqualTo(1);
+
+        assertThat(scheduledOnce.getCount()).isZero();
+        assertThat(scheduledRepetitively.getCount()).isZero();
+        assertThat(scheduledOverrun.getCount()).isZero();
+        assertThat(percentOfPeriod.getCount()).isZero();
+    }
+
+    @Test
+    public void testScheduleCallable() throws Exception {
+        assertThat(submitted.getCount()).isZero();
+
+        assertThat(running.getCount()).isZero();
+        assertThat(completed.getCount()).isZero();
+        assertThat(duration.getCount()).isZero();
+
+        assertThat(scheduledOnce.getCount()).isZero();
+        assertThat(scheduledRepetitively.getCount()).isZero();
+        assertThat(scheduledOverrun.getCount()).isZero();
+        assertThat(percentOfPeriod.getCount()).isZero();
+
+        final Object obj = new Object();
+
+        ScheduledFuture<Object> theFuture = instrumentedScheduledExecutor.schedule(() -> {
+            assertThat(submitted.getCount()).isZero();
+
+            assertThat(running.getCount()).isEqualTo(1);
+            assertThat(completed.getCount()).isZero();
+            assertThat(duration.getCount()).isZero();
+
+            assertThat(scheduledOnce.getCount()).isEqualTo(1);
+            assertThat(scheduledRepetitively.getCount()).isZero();
+            assertThat(scheduledOverrun.getCount()).isZero();
+            assertThat(percentOfPeriod.getCount()).isZero();
+
+            return obj;
+        }, 10L, TimeUnit.MILLISECONDS);
+
+        assertThat(theFuture.get()).isEqualTo(obj);
+
+        assertThat(submitted.getCount()).isZero();
+
+        assertThat(running.getCount()).isZero();
+        assertThat(completed.getCount()).isEqualTo(1);
+        assertThat(duration.getCount()).isEqualTo(1);
+        assertThat(duration.getSnapshot().size()).isEqualTo(1);
+
+        assertThat(scheduledOnce.getCount()).isEqualTo(1);
+        assertThat(scheduledRepetitively.getCount()).isZero();
+        assertThat(scheduledOverrun.getCount()).isZero();
+        assertThat(percentOfPeriod.getCount()).isZero();
+    }
+
+    @Test
+    public void testScheduleFixedRateCallable() throws Exception {
+        assertThat(submitted.getCount()).isZero();
+
+        assertThat(running.getCount()).isZero();
+        assertThat(completed.getCount()).isZero();
+        assertThat(duration.getCount()).isZero();
+
+        assertThat(scheduledOnce.getCount()).isZero();
+        assertThat(scheduledRepetitively.getCount()).isZero();
+        assertThat(scheduledOverrun.getCount()).isZero();
+        assertThat(percentOfPeriod.getCount()).isZero();
+
+        CountDownLatch countDownLatch = new CountDownLatch(1);
+        ScheduledFuture<?> theFuture = instrumentedScheduledExecutor.scheduleAtFixedRate(() -> {
+            assertThat(submitted.getCount()).isZero();
+
+            assertThat(running.getCount()).isEqualTo(1);
+
+            assertThat(scheduledOnce.getCount()).isEqualTo(0);
+            assertThat(scheduledRepetitively.getCount()).isEqualTo(1);
+
+            try {
+                TimeUnit.MILLISECONDS.sleep(50);
+            } catch (InterruptedException ex) {
+                Thread.currentThread().interrupt();
+            }
+            countDownLatch.countDown();
+        }, 10L, 10L, TimeUnit.MILLISECONDS);
+        TimeUnit.MILLISECONDS.sleep(100); // Give some time for the task to be run
+        countDownLatch.await(5, TimeUnit.SECONDS); // Don't cancel until it didn't complete once
+        theFuture.cancel(true);
+        TimeUnit.MILLISECONDS.sleep(200);         // Wait while the task is cancelled
+
+        assertThat(submitted.getCount()).isZero();
+
+        assertThat(running.getCount()).isZero();
+        assertThat(completed.getCount()).isNotEqualTo(0);
+        assertThat(duration.getCount()).isNotEqualTo(0);
+        assertThat(duration.getSnapshot().size()).isNotEqualTo(0);
+
+        assertThat(scheduledOnce.getCount()).isZero();
+        assertThat(scheduledRepetitively.getCount()).isEqualTo(1);
+        assertThat(scheduledOverrun.getCount()).isNotEqualTo(0);
+        assertThat(percentOfPeriod.getCount()).isNotEqualTo(0);
+    }
+
+    @Test
+    public void testScheduleFixedDelayCallable() throws Exception {
+        assertThat(submitted.getCount()).isZero();
+
+        assertThat(running.getCount()).isZero();
+        assertThat(completed.getCount()).isZero();
+        assertThat(duration.getCount()).isZero();
+
+        assertThat(scheduledOnce.getCount()).isZero();
+        assertThat(scheduledRepetitively.getCount()).isZero();
+        assertThat(scheduledOverrun.getCount()).isZero();
+        assertThat(percentOfPeriod.getCount()).isZero();
+
+        CountDownLatch countDownLatch = new CountDownLatch(1);
+        ScheduledFuture<?> theFuture = instrumentedScheduledExecutor.scheduleWithFixedDelay(() -> {
+            assertThat(submitted.getCount()).isZero();
+
+            assertThat(running.getCount()).isEqualTo(1);
+
+            assertThat(scheduledOnce.getCount()).isEqualTo(0);
+            assertThat(scheduledRepetitively.getCount()).isEqualTo(1);
+
+            try {
+                TimeUnit.MILLISECONDS.sleep(50);
+            } catch (InterruptedException ex) {
+                Thread.currentThread().interrupt();
+            }
+            countDownLatch.countDown();
+        }, 10L, 10L, TimeUnit.MILLISECONDS);
+
+        TimeUnit.MILLISECONDS.sleep(100);
+        countDownLatch.await(5, TimeUnit.SECONDS);
+        theFuture.cancel(true);
+        TimeUnit.MILLISECONDS.sleep(200);
+
+        assertThat(submitted.getCount()).isZero();
+
+        assertThat(running.getCount()).isZero();
+        assertThat(completed.getCount()).isNotEqualTo(0);
+        assertThat(duration.getCount()).isNotEqualTo(0);
+        assertThat(duration.getSnapshot().size()).isNotEqualTo(0);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        instrumentedScheduledExecutor.shutdown();
+        if (!instrumentedScheduledExecutor.awaitTermination(2, TimeUnit.SECONDS)) {
+            LOGGER.error("InstrumentedScheduledExecutorService did not terminate.");
+        }
+    }
+
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory$InstrumentedRunnable.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory$InstrumentedRunnable.html new file mode 100644 index 0000000000..4939f8f6d4 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory$InstrumentedRunnable.html @@ -0,0 +1 @@ +InstrumentedThreadFactory.InstrumentedRunnable

InstrumentedThreadFactory.InstrumentedRunnable

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total25 of 250%0 of 0n/a228822
run()160%n/a115511
InstrumentedThreadFactory.InstrumentedRunnable(InstrumentedThreadFactory, Runnable)90%n/a113311
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory.html new file mode 100644 index 0000000000..75491ad484 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory.html @@ -0,0 +1 @@ +InstrumentedThreadFactory

InstrumentedThreadFactory

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total77 of 770%0 of 0n/a44131344
InstrumentedThreadFactory(ThreadFactory, MetricRegistry, String)420%n/a116611
newThread(Runnable)160%n/a114411
InstrumentedThreadFactory(ThreadFactory, MetricRegistry)140%n/a112211
static {...}50%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory.java.html new file mode 100644 index 0000000000..3330e7e765 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory.java.html @@ -0,0 +1,74 @@ +InstrumentedThreadFactory.java

InstrumentedThreadFactory.java

package com.codahale.metrics;
+
+import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.atomic.AtomicLong;
+
+/**
+ * A {@link ThreadFactory} that monitors the number of threads created, running and terminated.
+ * <p>
+ * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
+ * "your-thread-delegate.created", "your-thread-delegate.running", etc.
+ */
+public class InstrumentedThreadFactory implements ThreadFactory {
+    private static final AtomicLong NAME_COUNTER = new AtomicLong();
+
+    private final ThreadFactory delegate;
+    private final Meter created;
+    private final Counter running;
+    private final Meter terminated;
+
+    /**
+     * Wraps a {@link ThreadFactory}, uses a default auto-generated name.
+     *
+     * @param delegate {@link ThreadFactory} to wrap.
+     * @param registry {@link MetricRegistry} that will contain the metrics.
+     */
+    public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry) {
+        this(delegate, registry, "instrumented-thread-delegate-" + NAME_COUNTER.incrementAndGet());
+    }
+
+    /**
+     * Wraps a {@link ThreadFactory} with an explicit name.
+     *
+     * @param delegate {@link ThreadFactory} to wrap.
+     * @param registry {@link MetricRegistry} that will contain the metrics.
+     * @param name     name for this delegate.
+     */
+    public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry, String name) {
+        this.delegate = delegate;
+        this.created = registry.meter(MetricRegistry.name(name, "created"));
+        this.running = registry.counter(MetricRegistry.name(name, "running"));
+        this.terminated = registry.meter(MetricRegistry.name(name, "terminated"));
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Thread newThread(Runnable runnable) {
+        Runnable wrappedRunnable = new InstrumentedRunnable(runnable);
+        Thread thread = delegate.newThread(wrappedRunnable);
+        created.mark();
+        return thread;
+    }
+
+    private class InstrumentedRunnable implements Runnable {
+        private final Runnable task;
+
+        InstrumentedRunnable(Runnable task) {
+            this.task = task;
+        }
+
+        @Override
+        public void run() {
+            running.inc();
+            try {
+                task.run();
+            } finally {
+                running.dec();
+                terminated.mark();
+            }
+        }
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactoryTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactoryTest.html new file mode 100644 index 0000000000..f94d09fa0d --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactoryTest.html @@ -0,0 +1 @@ +InstrumentedThreadFactoryTest

InstrumentedThreadFactoryTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total129 of 1290%2 of 20%44303033
reportsThreadInformation()900%20%22181811
InstrumentedThreadFactoryTest()270%n/a115511
lambda$reportsThreadInformation$0(CountDownLatch, CountDownLatch, AtomicInteger)120%n/a117711
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactoryTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactoryTest.java.html new file mode 100644 index 0000000000..f430e6e18b --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactoryTest.java.html @@ -0,0 +1,78 @@ +InstrumentedThreadFactoryTest.java

InstrumentedThreadFactoryTest.java

package com.codahale.metrics;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
+import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import org.junit.Test;
+
+public class InstrumentedThreadFactoryTest {
+    private static final int THREAD_COUNT = 10;
+
+    private final ThreadFactory factory = Executors.defaultThreadFactory();
+    private final MetricRegistry registry = new MetricRegistry();
+    private final InstrumentedThreadFactory instrumentedFactory = new InstrumentedThreadFactory(factory, registry, "factory");
+    private final ExecutorService executor = Executors.newFixedThreadPool(THREAD_COUNT, instrumentedFactory);
+
+    /**
+     * Tests all parts of the InstrumentedThreadFactory except for termination since that
+     * is currently difficult to do without race conditions.
+     * TODO: Try not using real threads in a unit test?
+     */
+    @Test
+    public void reportsThreadInformation() throws Exception {
+        final CountDownLatch allTasksAreCreated = new CountDownLatch(THREAD_COUNT);
+        final CountDownLatch allTasksAreCounted = new CountDownLatch(1);
+        final AtomicInteger interrupted = new AtomicInteger();
+
+        Meter created = registry.meter("factory.created");
+        Meter terminated = registry.meter("factory.terminated");
+
+        assertThat(created.getCount()).isEqualTo(0);
+        assertThat(terminated.getCount()).isEqualTo(0);
+
+        // generate demand so the executor service creates the threads through our factory.
+        for (int i = 0; i < THREAD_COUNT + 1; i++) {
+            Future<?> t = executor.submit(() -> {
+                allTasksAreCreated.countDown();
+
+                // This asserts that all threads have wait wail the testing thread notifies all.
+                // We have to do this to guarantee that the thread pool has 10 LIVE threads
+                // before we check the 'created' Meter.
+                try {
+                    allTasksAreCounted.await();
+                } catch (InterruptedException e) {
+                    interrupted.incrementAndGet();
+                    Thread.currentThread().interrupt();
+                }
+            });
+            assertThat(t).isNotNull();
+        }
+
+        allTasksAreCreated.await(1, TimeUnit.SECONDS);
+        allTasksAreCounted.countDown();
+
+        assertThat(created.getCount()).isEqualTo(10);
+        assertThat(terminated.getCount()).isEqualTo(0);
+
+        // terminate all threads in the executor service.
+        executor.shutdown();
+        executor.awaitTermination(1, TimeUnit.SECONDS);
+
+        // assert that all threads from the factory have been terminated.
+        // TODO: Remove this?
+        //       There is no guarantee that all threads have entered the block where they are
+        //       counted as terminated by this time.
+        // assertThat(terminated.getCount()).isEqualTo(10);
+
+        // Check that none of the threads were interrupted.
+        assertThat(interrupted.get()).isEqualTo(0);
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$Builder.html b/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$Builder.html new file mode 100644 index 0000000000..280abf9377 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$Builder.html @@ -0,0 +1 @@ +LockFreeExponentiallyDecayingReservoir.Builder

LockFreeExponentiallyDecayingReservoir.Builder

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total72 of 720%2 of 20%88171777
size(int)190%20%224411
LockFreeExponentiallyDecayingReservoir.Builder()150%n/a115511
build()130%n/a111111
rescaleThreshold(Duration)80%n/a112211
clock(Clock)80%n/a112211
alpha(double)50%n/a112211
static {...}40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$RescalingConsumer.html b/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$RescalingConsumer.html new file mode 100644 index 0000000000..df5833be8e --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$RescalingConsumer.html @@ -0,0 +1 @@ +LockFreeExponentiallyDecayingReservoir.RescalingConsumer

LockFreeExponentiallyDecayingReservoir.RescalingConsumer

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total45 of 450%4 of 40%44111122
accept(Double, WeightedSnapshot.WeightedSample)360%40%337711
LockFreeExponentiallyDecayingReservoir.RescalingConsumer(double, ConcurrentSkipListMap)90%n/a114411
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$State.html b/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$State.html new file mode 100644 index 0000000000..c14e39eb66 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$State.html @@ -0,0 +1 @@ +LockFreeExponentiallyDecayingReservoir.State

LockFreeExponentiallyDecayingReservoir.State

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total150 of 1500%16 of 160%1414323266
rescale(long)580%40%33121211
update(long, long)380%60%446611
addSample(double, long, double, boolean)240%60%444411
LockFreeExponentiallyDecayingReservoir.State(double, int, long, int, ConcurrentSkipListMap)180%n/a117711
weight(long)70%n/a111111
static {...}50%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir.html b/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir.html new file mode 100644 index 0000000000..0734d0796c --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir.html @@ -0,0 +1 @@ +LockFreeExponentiallyDecayingReservoir

LockFreeExponentiallyDecayingReservoir

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total105 of 1050%4 of 40%1010242488
LockFreeExponentiallyDecayingReservoir(int, double, Duration, Clock)300%n/a117711
rescaleIfNeeded(long)180%20%224411
doRescale(long, LockFreeExponentiallyDecayingReservoir.State)150%20%224411
getSnapshot()130%n/a112211
update(long)110%n/a113311
size()70%n/a111111
static {...}60%n/a112211
builder()50%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir.java.html new file mode 100644 index 0000000000..2abc0793a9 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir.java.html @@ -0,0 +1,271 @@ +LockFreeExponentiallyDecayingReservoir.java

LockFreeExponentiallyDecayingReservoir.java

package com.codahale.metrics;
+
+import com.codahale.metrics.WeightedSnapshot.WeightedSample;
+
+import java.time.Duration;
+import java.util.Objects;
+import java.util.concurrent.ConcurrentSkipListMap;
+import java.util.concurrent.ThreadLocalRandom;
+import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
+import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
+import java.util.function.BiConsumer;
+
+/**
+ * A lock-free exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al's
+ * forward-decaying priority reservoir sampling method to produce a statistically representative
+ * sampling reservoir, exponentially biased towards newer entries.
+ *
+ * @see <a href="http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf">
+ * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE '09:
+ * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)</a>
+ *
+ * {@link LockFreeExponentiallyDecayingReservoir} is based closely on the {@link ExponentiallyDecayingReservoir},
+ * however it provides looser guarantees while completely avoiding locks.
+ *
+ * Looser guarantees:
+ * <ul>
+ *     <li> Updates which occur concurrently with rescaling may be discarded if the orphaned state node is updated after
+ *     rescale has replaced it. This condition has a greater probability as the rescale interval is reduced due to the
+ *     increased frequency of rescaling. {@link #rescaleThresholdNanos} values below 30 seconds are not recommended.
+ *     <li> Given a small rescale threshold, updates may attempt to rescale into a new bucket, but lose the CAS race
+ *     and update into a newer bucket than expected. In these cases the measurement weight is reduced accordingly.
+ *     <li>In the worst case, all concurrent threads updating the reservoir may attempt to rescale rather than
+ *     a single thread holding an exclusive write lock. It's expected that the configuration is set such that
+ *     rescaling is substantially less common than updating at peak load. Even so, when size is reasonably small
+ *     it can be more efficient to rescale than to park and context switch.
+ * </ul>
+ *
+ * @author <a href="mailto:ckozak@ckozak.net">Carter Kozak</a>
+ */
+public final class LockFreeExponentiallyDecayingReservoir implements Reservoir {
+
+    private static final double SECONDS_PER_NANO = .000_000_001D;
+    private static final AtomicReferenceFieldUpdater<LockFreeExponentiallyDecayingReservoir, State> stateUpdater =
+            AtomicReferenceFieldUpdater.newUpdater(LockFreeExponentiallyDecayingReservoir.class, State.class, "state");
+
+    private final int size;
+    private final long rescaleThresholdNanos;
+    private final Clock clock;
+
+    private volatile State state;
+
+    private static final class State {
+
+        private static final AtomicIntegerFieldUpdater<State> countUpdater =
+                AtomicIntegerFieldUpdater.newUpdater(State.class, "count");
+
+        private final double alphaNanos;
+        private final int size;
+        private final long startTick;
+        // Count is updated after samples are successfully added to the map.
+        private final ConcurrentSkipListMap<Double, WeightedSample> values;
+
+        private volatile int count;
+
+        State(
+                double alphaNanos,
+                int size,
+                long startTick,
+                int count,
+                ConcurrentSkipListMap<Double, WeightedSample> values) {
+            this.alphaNanos = alphaNanos;
+            this.size = size;
+            this.startTick = startTick;
+            this.values = values;
+            this.count = count;
+        }
+
+        private void update(long value, long timestampNanos) {
+            double itemWeight = weight(timestampNanos - startTick);
+            double priority = itemWeight / ThreadLocalRandom.current().nextDouble();
+            boolean mapIsFull = count >= size;
+            if (!mapIsFull || values.firstKey() < priority) {
+                addSample(priority, value, itemWeight, mapIsFull);
+            }
+        }
+
+        private void addSample(double priority, long value, double itemWeight, boolean bypassIncrement) {
+            if (values.putIfAbsent(priority, new WeightedSample(value, itemWeight)) == null
+                    && (bypassIncrement || countUpdater.incrementAndGet(this) > size)) {
+                values.pollFirstEntry();
+            }
+        }
+
+        /* "A common feature of the above techniques—indeed, the key technique that
+         * allows us to track the decayed weights efficiently—is that they maintain
+         * counts and other quantities based on g(ti − L), and only scale by g(t − L)
+         * at query time. But while g(ti −L)/g(t−L) is guaranteed to lie between zero
+         * and one, the intermediate values of g(ti − L) could become very large. For
+         * polynomial functions, these values should not grow too large, and should be
+         * effectively represented in practice by floating point values without loss of
+         * precision. For exponential functions, these values could grow quite large as
+         * new values of (ti − L) become large, and potentially exceed the capacity of
+         * common floating point types. However, since the values stored by the
+         * algorithms are linear combinations of g values (scaled sums), they can be
+         * rescaled relative to a new landmark. That is, by the analysis of exponential
+         * decay in Section III-A, the choice of L does not affect the final result. We
+         * can therefore multiply each value based on L by a factor of exp(−α(L′ − L)),
+         * and obtain the correct value as if we had instead computed relative to a new
+         * landmark L′ (and then use this new L′ at query time). This can be done with
+         * a linear pass over whatever data structure is being used."
+         */
+        State rescale(long newTick) {
+            long durationNanos = newTick - startTick;
+            double scalingFactor = Math.exp(-alphaNanos * durationNanos);
+            int newCount = 0;
+            ConcurrentSkipListMap<Double, WeightedSample> newValues = new ConcurrentSkipListMap<>();
+            if (Double.compare(scalingFactor, 0) != 0) {
+                RescalingConsumer consumer = new RescalingConsumer(scalingFactor, newValues);
+                values.forEach(consumer);
+                // make sure the counter is in sync with the number of stored samples.
+                newCount = consumer.count;
+            }
+            // It's possible that more values were added while the map was scanned, those with the
+            // minimum priorities are removed.
+            while (newCount > size) {
+                Objects.requireNonNull(newValues.pollFirstEntry(), "Expected an entry");
+                newCount--;
+            }
+            return new State(alphaNanos, size, newTick, newCount, newValues);
+        }
+
+        private double weight(long durationNanos) {
+            return Math.exp(alphaNanos * durationNanos);
+        }
+    }
+
+    private static final class RescalingConsumer implements BiConsumer<Double, WeightedSample> {
+        private final double scalingFactor;
+        private final ConcurrentSkipListMap<Double, WeightedSample> values;
+        private int count;
+
+        RescalingConsumer(double scalingFactor, ConcurrentSkipListMap<Double, WeightedSample> values) {
+            this.scalingFactor = scalingFactor;
+            this.values = values;
+        }
+
+        @Override
+        public void accept(Double priority, WeightedSample sample) {
+            double newWeight = sample.weight * scalingFactor;
+            if (Double.compare(newWeight, 0) == 0) {
+                return;
+            }
+            WeightedSample newSample = new WeightedSample(sample.value, newWeight);
+            if (values.put(priority * scalingFactor, newSample) == null) {
+                count++;
+            }
+        }
+    }
+
+    private LockFreeExponentiallyDecayingReservoir(int size, double alpha, Duration rescaleThreshold, Clock clock) {
+        // Scale alpha to nanoseconds
+        double alphaNanos = alpha * SECONDS_PER_NANO;
+        this.size = size;
+        this.clock = clock;
+        this.rescaleThresholdNanos = rescaleThreshold.toNanos();
+        this.state = new State(alphaNanos, size, clock.getTick(), 0, new ConcurrentSkipListMap<>());
+    }
+
+    @Override
+    public int size() {
+        return Math.min(size, state.count);
+    }
+
+    @Override
+    public void update(long value) {
+        long now = clock.getTick();
+        rescaleIfNeeded(now).update(value, now);
+    }
+
+    private State rescaleIfNeeded(long currentTick) {
+        // This method is optimized for size so the check may be quickly inlined.
+        // Rescaling occurs substantially less frequently than the check itself.
+        State stateSnapshot = this.state;
+        if (currentTick - stateSnapshot.startTick >= rescaleThresholdNanos) {
+            return doRescale(currentTick, stateSnapshot);
+        }
+        return stateSnapshot;
+    }
+
+    private State doRescale(long currentTick, State stateSnapshot) {
+        State newState = stateSnapshot.rescale(currentTick);
+        if (stateUpdater.compareAndSet(this, stateSnapshot, newState)) {
+            // newState successfully installed
+            return newState;
+        }
+        // Otherwise another thread has won the race and we can return the result of a volatile read.
+        // It's possible this has taken so long that another update is required, however that's unlikely
+        // and no worse than the standard race between a rescale and update.
+        return this.state;
+    }
+
+    @Override
+    public Snapshot getSnapshot() {
+        State stateSnapshot = rescaleIfNeeded(clock.getTick());
+        return new WeightedSnapshot(stateSnapshot.values.values());
+    }
+
+    public static Builder builder() {
+        return new Builder();
+    }
+
+    /**
+     * By default this uses a size of 1028 elements, which offers a 99.9%
+     * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
+     * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
+     */
+    public static final class Builder {
+        private static final int DEFAULT_SIZE = 1028;
+        private static final double DEFAULT_ALPHA = 0.015D;
+        private static final Duration DEFAULT_RESCALE_THRESHOLD = Duration.ofHours(1);
+
+        private int size = DEFAULT_SIZE;
+        private double alpha = DEFAULT_ALPHA;
+        private Duration rescaleThreshold = DEFAULT_RESCALE_THRESHOLD;
+        private Clock clock = Clock.defaultClock();
+
+        private Builder() {}
+
+        /**
+         * Maximum number of samples to keep in the reservoir. Once this number is reached older samples are
+         * replaced (based on weight, with some amount of random jitter).
+         */
+        public Builder size(int value) {
+            if (value <= 0) {
+                throw new IllegalArgumentException(
+                        "LockFreeExponentiallyDecayingReservoir size must be positive: " + value);
+            }
+            this.size = value;
+            return this;
+        }
+
+        /**
+         * Alpha is the exponential decay factor. Higher values bias results more heavily toward newer values.
+         */
+        public Builder alpha(double value) {
+            this.alpha = value;
+            return this;
+        }
+
+        /**
+         * Interval at which this reservoir is rescaled.
+         */
+        public Builder rescaleThreshold(Duration value) {
+            this.rescaleThreshold = Objects.requireNonNull(value, "rescaleThreshold is required");
+            return this;
+        }
+
+        /**
+         * Clock instance used for decay.
+         */
+        public Builder clock(Clock value) {
+            this.clock = Objects.requireNonNull(value, "clock is required");
+            return this;
+        }
+
+        public Reservoir build() {
+            return new LockFreeExponentiallyDecayingReservoir(size, alpha, rescaleThreshold, clock);
+        }
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ManualClock.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ManualClock.html new file mode 100644 index 0000000000..aa5617f3c4 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ManualClock.html @@ -0,0 +1 @@ +ManualClock

ManualClock

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total58 of 580%0 of 0n/a88161688
ManualClock(long)90%n/a114411
addSeconds(long)90%n/a112211
addMillis(long)90%n/a112211
addHours(long)90%n/a112211
getTime()80%n/a111111
addNanos(long)70%n/a112211
ManualClock()40%n/a112211
getTick()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ManualClock.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ManualClock.java.html new file mode 100644 index 0000000000..6f603df613 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ManualClock.java.html @@ -0,0 +1,45 @@ +ManualClock.java

ManualClock.java

package com.codahale.metrics;
+
+import java.util.concurrent.TimeUnit;
+
+public class ManualClock extends Clock {
+    private final long initialTicksInNanos;
+    long ticksInNanos;
+
+    public ManualClock(long initialTicksInNanos) {
+        this.initialTicksInNanos = initialTicksInNanos;
+        this.ticksInNanos = initialTicksInNanos;
+    }
+
+    public ManualClock() {
+        this(0L);
+    }
+
+    public synchronized void addNanos(long nanos) {
+        ticksInNanos += nanos;
+    }
+
+    public synchronized void addSeconds(long seconds) {
+        ticksInNanos += TimeUnit.SECONDS.toNanos(seconds);
+    }
+
+    public synchronized void addMillis(long millis) {
+        ticksInNanos += TimeUnit.MILLISECONDS.toNanos(millis);
+    }
+
+    public synchronized void addHours(long hours) {
+        ticksInNanos += TimeUnit.HOURS.toNanos(hours);
+    }
+
+    @Override
+    public synchronized long getTick() {
+        return ticksInNanos;
+    }
+
+    @Override
+    public synchronized long getTime() {
+        return TimeUnit.NANOSECONDS.toMillis(ticksInNanos - initialTicksInNanos);
+    }
+
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Meter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Meter.html new file mode 100644 index 0000000000..362580af5d --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Meter.html @@ -0,0 +1 @@ +Meter

Meter

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total52 of 10349%2 of 20%6121229511
getMeanRate()260%20%224411
getFifteenMinuteRate()70%n/a112211
getFiveMinuteRate()70%n/a112211
getOneMinuteRate()70%n/a112211
Meter(MovingAverages)50%n/a112211
Meter(MovingAverages, Clock)19100%n/a010601
mark(long)12100%n/a010401
Meter(Clock)8100%n/a010201
Meter()4100%n/a010201
mark()4100%n/a010201
getCount()4100%n/a010101
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Meter.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Meter.java.html new file mode 100644 index 0000000000..90542d674d --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Meter.java.html @@ -0,0 +1,107 @@ +Meter.java

Meter.java

package com.codahale.metrics;
+
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.LongAdder;
+
+/**
+ * A meter metric which measures mean throughput and one-, five-, and fifteen-minute
+ * moving average throughputs.
+ *
+ * @see MovingAverages
+ */
+public class Meter implements Metered {
+
+    private final MovingAverages movingAverages;
+    private final LongAdder count = new LongAdder();
+    private final long startTime;
+    private final Clock clock;
+
+    /**
+     * Creates a new {@link Meter}.
+     *
+     * @param movingAverages the {@link MovingAverages} implementation to use
+     */
+    public Meter(MovingAverages movingAverages) {
+        this(movingAverages, Clock.defaultClock());
+    }
+
+    /**
+     * Creates a new {@link Meter}.
+     */
+    public Meter() {
+        this(Clock.defaultClock());
+    }
+
+    /**
+     * Creates a new {@link Meter}.
+     *
+     * @param clock the clock to use for the meter ticks
+     */
+    public Meter(Clock clock) {
+        this(new ExponentialMovingAverages(clock), clock);
+    }
+
+    /**
+     * Creates a new {@link Meter}.
+     *
+     * @param movingAverages the {@link MovingAverages} implementation to use
+     * @param clock          the clock to use for the meter ticks
+     */
+    public Meter(MovingAverages movingAverages, Clock clock) {
+        this.movingAverages = movingAverages;
+        this.clock = clock;
+        this.startTime = this.clock.getTick();
+    }
+
+    /**
+     * Mark the occurrence of an event.
+     */
+    public void mark() {
+        mark(1);
+    }
+
+    /**
+     * Mark the occurrence of a given number of events.
+     *
+     * @param n the number of events
+     */
+    public void mark(long n) {
+        movingAverages.tickIfNecessary();
+        count.add(n);
+        movingAverages.update(n);
+    }
+
+    @Override
+    public long getCount() {
+        return count.sum();
+    }
+
+    @Override
+    public double getFifteenMinuteRate() {
+        movingAverages.tickIfNecessary();
+        return movingAverages.getM15Rate();
+    }
+
+    @Override
+    public double getFiveMinuteRate() {
+        movingAverages.tickIfNecessary();
+        return movingAverages.getM5Rate();
+    }
+
+    @Override
+    public double getMeanRate() {
+        if (getCount() == 0) {
+            return 0.0;
+        } else {
+            final double elapsed = clock.getTick() - startTime;
+            return getCount() / elapsed * TimeUnit.SECONDS.toNanos(1);
+        }
+    }
+
+    @Override
+    public double getOneMinuteRate() {
+        movingAverages.tickIfNecessary();
+        return movingAverages.getM1Rate();
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MeterApproximationTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MeterApproximationTest.html new file mode 100644 index 0000000000..a45f806492 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MeterApproximationTest.html @@ -0,0 +1 @@ +MeterApproximationTest

MeterApproximationTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total168 of 1680%2 of 20%77272766
ratesPerMinute()460%n/a113311
simulateMetronome(long, TimeUnit, long, TimeUnit)410%20%229911
controlMeter1MinuteMeanApproximation()250%n/a114411
controlMeter5MinuteMeanApproximation()250%n/a114411
controlMeter15MinuteMeanApproximation()250%n/a114411
MeterApproximationTest(long)60%n/a113311
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MeterApproximationTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MeterApproximationTest.java.html new file mode 100644 index 0000000000..162bd46a3f --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MeterApproximationTest.java.html @@ -0,0 +1,83 @@ +MeterApproximationTest.java

MeterApproximationTest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+import org.junit.runner.RunWith;
+
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.concurrent.TimeUnit;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.offset;
+
+@RunWith(value = Parameterized.class)
+public class MeterApproximationTest {
+
+    @Parameters
+    public static Collection<Object[]> ratesPerMinute() {
+        Object[][] data = new Object[][]{
+                {15}, {60}, {600}, {6000}
+        };
+        return Arrays.asList(data);
+    }
+
+    private final long ratePerMinute;
+
+    public MeterApproximationTest(long ratePerMinute) {
+        this.ratePerMinute = ratePerMinute;
+    }
+
+    @Test
+    public void controlMeter1MinuteMeanApproximation() {
+        final Meter meter = simulateMetronome(
+                62934, TimeUnit.MILLISECONDS,
+                3, TimeUnit.MINUTES);
+
+        assertThat(meter.getOneMinuteRate() * 60.0)
+                .isEqualTo(ratePerMinute, offset(0.1 * ratePerMinute));
+    }
+
+    @Test
+    public void controlMeter5MinuteMeanApproximation() {
+        final Meter meter = simulateMetronome(
+                62934, TimeUnit.MILLISECONDS,
+                13, TimeUnit.MINUTES);
+
+        assertThat(meter.getFiveMinuteRate() * 60.0)
+                .isEqualTo(ratePerMinute, offset(0.1 * ratePerMinute));
+    }
+
+    @Test
+    public void controlMeter15MinuteMeanApproximation() {
+        final Meter meter = simulateMetronome(
+                62934, TimeUnit.MILLISECONDS,
+                38, TimeUnit.MINUTES);
+
+        assertThat(meter.getFifteenMinuteRate() * 60.0)
+                .isEqualTo(ratePerMinute, offset(0.1 * ratePerMinute));
+    }
+
+    private Meter simulateMetronome(
+            long introDelay, TimeUnit introDelayUnit,
+            long duration, TimeUnit durationUnit) {
+
+        final ManualClock clock = new ManualClock();
+        final Meter meter = new Meter(clock);
+
+        clock.addNanos(introDelayUnit.toNanos(introDelay));
+
+        final long endTick = clock.getTick() + durationUnit.toNanos(duration);
+        final long marksIntervalInNanos = TimeUnit.MINUTES.toNanos(1) / ratePerMinute;
+
+        while (clock.getTick() <= endTick) {
+            clock.addNanos(marksIntervalInNanos);
+            meter.mark();
+        }
+
+        return meter;
+    }
+
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MeterTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MeterTest.html new file mode 100644 index 0000000000..54d69e33bf --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MeterTest.html @@ -0,0 +1 @@ +MeterTest

MeterTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total129 of 1290%0 of 0n/a44272744
marksEventsAndUpdatesRatesAndCount()480%n/a11111111
startsOutWithNoRatesOrCount()470%n/a11111111
setUp()190%n/a112211
MeterTest()150%n/a113311
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MeterTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MeterTest.java.html new file mode 100644 index 0000000000..e06c102c46 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MeterTest.java.html @@ -0,0 +1,59 @@ +MeterTest.java

MeterTest.java

package com.codahale.metrics;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.concurrent.TimeUnit;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.offset;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+public class MeterTest {
+    private final Clock clock = mock(Clock.class);
+    private final Meter meter = new Meter(clock);
+
+    @Before
+    public void setUp() throws Exception {
+        when(clock.getTick()).thenReturn(0L, TimeUnit.SECONDS.toNanos(10));
+
+    }
+
+    @Test
+    public void startsOutWithNoRatesOrCount() {
+        assertThat(meter.getCount())
+                .isZero();
+
+        assertThat(meter.getMeanRate())
+                .isEqualTo(0.0, offset(0.001));
+
+        assertThat(meter.getOneMinuteRate())
+                .isEqualTo(0.0, offset(0.001));
+
+        assertThat(meter.getFiveMinuteRate())
+                .isEqualTo(0.0, offset(0.001));
+
+        assertThat(meter.getFifteenMinuteRate())
+                .isEqualTo(0.0, offset(0.001));
+    }
+
+    @Test
+    public void marksEventsAndUpdatesRatesAndCount() {
+        meter.mark();
+        meter.mark(2);
+
+        assertThat(meter.getMeanRate())
+                .isEqualTo(0.3, offset(0.001));
+
+        assertThat(meter.getOneMinuteRate())
+                .isEqualTo(0.1840, offset(0.001));
+
+        assertThat(meter.getFiveMinuteRate())
+                .isEqualTo(0.1966, offset(0.001));
+
+        assertThat(meter.getFifteenMinuteRate())
+                .isEqualTo(0.1988, offset(0.001));
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricAttribute.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricAttribute.html new file mode 100644 index 0000000000..0bcb25ef8b --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricAttribute.html @@ -0,0 +1 @@ +MetricAttribute

MetricAttribute

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total119 of 1190%0 of 0n/a33202033
static {...}1080%n/a11161611
MetricAttribute(String, int, String)80%n/a113311
getCode()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricAttribute.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricAttribute.java.html new file mode 100644 index 0000000000..5e95998459 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricAttribute.java.html @@ -0,0 +1,34 @@ +MetricAttribute.java

MetricAttribute.java

package com.codahale.metrics;
+
+/**
+ * Represents attributes of metrics which can be reported.
+ */
+public enum MetricAttribute {
+
+    MAX("max"),
+    MEAN("mean"),
+    MIN("min"),
+    STDDEV("stddev"),
+    P50("p50"),
+    P75("p75"),
+    P95("p95"),
+    P98("p98"),
+    P99("p99"),
+    P999("p999"),
+    COUNT("count"),
+    M1_RATE("m1_rate"),
+    M5_RATE("m5_rate"),
+    M15_RATE("m15_rate"),
+    MEAN_RATE("mean_rate");
+
+    private final String code;
+
+    MetricAttribute(String code) {
+        this.code = code;
+    }
+
+    public String getCode() {
+        return code;
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilter.html new file mode 100644 index 0000000000..2687c3f695 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilter.html @@ -0,0 +1 @@ +MetricFilter

MetricFilter

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total26 of 260%0 of 0n/a884488
lambda$contains$3(String, String, Metric)40%n/a111111
lambda$endsWith$2(String, String, Metric)40%n/a111111
lambda$startsWith$1(String, String, Metric)40%n/a111111
startsWith(String)30%n/a111111
endsWith(String)30%n/a111111
contains(String)30%n/a111111
static {...}30%n/a111111
lambda$static$0(String, Metric)20%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilter.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilter.java.html new file mode 100644 index 0000000000..b006787402 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilter.java.html @@ -0,0 +1,33 @@ +MetricFilter.java

MetricFilter.java

package com.codahale.metrics;
+
+/**
+ * A filter used to determine whether or not a metric should be reported, among other things.
+ */
+public interface MetricFilter {
+    /**
+     * Matches all metrics, regardless of type or name.
+     */
+    MetricFilter ALL = (name, metric) -> true;
+
+    static MetricFilter startsWith(String prefix) {
+        return (name, metric) -> name.startsWith(prefix);
+    }
+
+    static MetricFilter endsWith(String suffix) {
+        return (name, metric) -> name.endsWith(suffix);
+    }
+
+    static MetricFilter contains(String substring) {
+        return (name, metric) -> name.contains(substring);
+    }
+
+    /**
+     * Returns {@code true} if the metric matches the filter; {@code false} otherwise.
+     *
+     * @param name   the metric's name
+     * @param metric the metric
+     * @return {@code true} if the metric matches the filter
+     */
+    boolean matches(String name, Metric metric);
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilterTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilterTest.html new file mode 100644 index 0000000000..8033442110 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilterTest.html @@ -0,0 +1 @@ +MetricFilterTest

MetricFilterTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total76 of 760%0 of 0n/a55191955
theStartsWithFilterMatches()210%n/a115511
theEndsWithFilterMatches()210%n/a115511
theContainsFilterMatches()210%n/a115511
theAllFilterMatchesAllMetrics()100%n/a113311
MetricFilterTest()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilterTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilterTest.java.html new file mode 100644 index 0000000000..c977ab9b2f --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilterTest.java.html @@ -0,0 +1,39 @@ +MetricFilterTest.java

MetricFilterTest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+
+public class MetricFilterTest {
+    @Test
+    public void theAllFilterMatchesAllMetrics() {
+        assertThat(MetricFilter.ALL.matches("", mock(Metric.class)))
+                .isTrue();
+    }
+
+    @Test
+    public void theStartsWithFilterMatches() {
+        assertThat(MetricFilter.startsWith("foo").matches("foo.bar", mock(Metric.class)))
+                .isTrue();
+        assertThat(MetricFilter.startsWith("foo").matches("bar.foo", mock(Metric.class)))
+                .isFalse();
+    }
+
+    @Test
+    public void theEndsWithFilterMatches() {
+        assertThat(MetricFilter.endsWith("foo").matches("foo.bar", mock(Metric.class)))
+                .isFalse();
+        assertThat(MetricFilter.endsWith("foo").matches("bar.foo", mock(Metric.class)))
+                .isTrue();
+    }
+
+    @Test
+    public void theContainsFilterMatches() {
+        assertThat(MetricFilter.contains("foo").matches("bar.foo.bar", mock(Metric.class)))
+                .isTrue();
+        assertThat(MetricFilter.contains("foo").matches("bar.bar", mock(Metric.class)))
+                .isFalse();
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$1.html new file mode 100644 index 0000000000..f6776564a5 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$1.html @@ -0,0 +1 @@ +MetricRegistry.new MetricRegistryListener() {...}

MetricRegistry.new MetricRegistryListener() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total154 of 1540%0 of 0n/a111121211111
onGaugeAdded(String, Gauge)150%n/a112211
onCounterAdded(String, Counter)150%n/a112211
onHistogramAdded(String, Histogram)150%n/a112211
onMeterAdded(String, Meter)150%n/a112211
onTimerAdded(String, Timer)150%n/a112211
onGaugeRemoved(String)140%n/a112211
onCounterRemoved(String)140%n/a112211
onHistogramRemoved(String)140%n/a112211
onMeterRemoved(String)140%n/a112211
onTimerRemoved(String)140%n/a112211
{...}90%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$2.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$2.html new file mode 100644 index 0000000000..0fe80791ac --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$2.html @@ -0,0 +1 @@ +MetricRegistry.new MetricRegistry.MetricBuilder() {...}

MetricRegistry.new MetricRegistry.MetricBuilder() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total18 of 180%0 of 0n/a333333
{...}90%n/a111111
newMetric()50%n/a111111
isInstance(Metric)40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$3.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$3.html new file mode 100644 index 0000000000..9f23c198b8 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$3.html @@ -0,0 +1 @@ +MetricRegistry.new MetricRegistry.MetricBuilder() {...}

MetricRegistry.new MetricRegistry.MetricBuilder() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total18 of 180%0 of 0n/a333333
{...}90%n/a111111
newMetric()50%n/a111111
isInstance(Metric)40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$4.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$4.html new file mode 100644 index 0000000000..f5bbc1d9a9 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$4.html @@ -0,0 +1 @@ +MetricRegistry.new MetricRegistry.MetricBuilder() {...}

MetricRegistry.new MetricRegistry.MetricBuilder() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total18 of 180%0 of 0n/a333333
{...}90%n/a111111
newMetric()50%n/a111111
isInstance(Metric)40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$5.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$5.html new file mode 100644 index 0000000000..e69bc0c351 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$5.html @@ -0,0 +1 @@ +MetricRegistry.new MetricRegistry.MetricBuilder() {...}

MetricRegistry.new MetricRegistry.MetricBuilder() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total18 of 180%0 of 0n/a333333
{...}90%n/a111111
newMetric()50%n/a111111
isInstance(Metric)40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$6.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$6.html new file mode 100644 index 0000000000..19163737c1 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$6.html @@ -0,0 +1 @@ +MetricRegistry.new MetricRegistry.MetricBuilder() {...}

MetricRegistry.new MetricRegistry.MetricBuilder() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total18 of 180%0 of 0n/a333333
{...}90%n/a111111
newMetric()50%n/a111111
isInstance(Metric)40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$1.html new file mode 100644 index 0000000000..c5e9def9c2 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$1.html @@ -0,0 +1 @@ +MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}

MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total8 of 1127%0 of 0n/a232323
newMetric()40%n/a111111
isInstance(Metric)40%n/a111111
{...}3100%n/a010101
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$2.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$2.html new file mode 100644 index 0000000000..aa9ee367bd --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$2.html @@ -0,0 +1 @@ +MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}

MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total11 of 1421%0 of 0n/a232323
newMetric()70%n/a111111
isInstance(Metric)40%n/a111111
{...}3100%n/a010101
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$3.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$3.html new file mode 100644 index 0000000000..533e0917a8 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$3.html @@ -0,0 +1 @@ +MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}

MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total0 of 11100%0 of 0n/a030303
newMetric()4100%n/a010101
isInstance(Metric)4100%n/a010101
{...}3100%n/a010101
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$4.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$4.html new file mode 100644 index 0000000000..9fb86cc37e --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$4.html @@ -0,0 +1 @@ +MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}

MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total8 of 1127%0 of 0n/a232323
newMetric()40%n/a111111
isInstance(Metric)40%n/a111111
{...}3100%n/a010101
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$5.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$5.html new file mode 100644 index 0000000000..77c5cb621a --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$5.html @@ -0,0 +1 @@ +MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}

MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total8 of 1127%0 of 0n/a232323
newMetric()40%n/a111111
isInstance(Metric)40%n/a111111
{...}3100%n/a010101
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder.html new file mode 100644 index 0000000000..5477b639b3 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder.html @@ -0,0 +1 @@ +MetricRegistry.MetricBuilder

MetricRegistry.MetricBuilder

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total0 of 21100%0 of 0n/a010501
static {...}21100%n/a010501
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry.html new file mode 100644 index 0000000000..85fee663ac --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry.html @@ -0,0 +1 @@ +MetricRegistry

MetricRegistry

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total513 of 64019%51 of 6622%6274951273241
notifyListenerOfAddedMetric(MetricRegistryListener, Metric, String)590%100%66121211
registerAll(String, MetricSet)500%40%336611
notifyListenerOfRemovedMetric(String, Metric, MetricRegistryListener)490%100%66121211
getMetrics(Class, MetricFilter)430%60%447711
register(String, Metric)382438%4450%4561301
removeMatching(MetricFilter)290%40%335511
addListener(MetricRegistryListener)280%20%225511
getOrAdd(String, MetricRegistry.MetricBuilder)252044%3350%2451001
onMetricRemoved(String, Metric)180%20%224411
remove(String)160%20%225511
onMetricAdded(String, Metric)10844%1150%122401
counter(String, MetricRegistry.MetricSupplier)100%n/a111111
histogram(String, MetricRegistry.MetricSupplier)100%n/a111111
meter(String, MetricRegistry.MetricSupplier)100%n/a111111
timer(String, MetricRegistry.MetricSupplier)100%n/a111111
gauge(String, MetricRegistry.MetricSupplier)100%n/a111111
getNames()80%n/a111111
registerGauge(String, Gauge)60%n/a111111
counter(String)60%n/a111111
histogram(String)60%n/a111111
timer(String)60%n/a111111
gauge(String)60%n/a111111
removeListener(MetricRegistryListener)60%n/a112211
registerAll(MetricSet)50%n/a112211
getGauges(MetricFilter)50%n/a111111
getCounters(MetricFilter)50%n/a111111
getHistograms(MetricFilter)50%n/a111111
getMeters(MetricFilter)50%n/a111111
getTimers(MetricFilter)50%n/a111111
getGauges()40%n/a111111
getCounters()40%n/a111111
getHistograms()40%n/a111111
getMeters()40%n/a111111
getTimers()40%n/a111111
getMetrics()40%n/a111111
name(String, String[])31100%1375%130601
append(StringBuilder, String)17100%2466%240501
MetricRegistry()12100%n/a010401
meter(String)6100%n/a010101
name(Class, String[])5100%n/a010101
buildMap()4100%n/a010101
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry.java.html new file mode 100644 index 0000000000..1cf450a492 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry.java.html @@ -0,0 +1,685 @@ +MetricRegistry.java

MetricRegistry.java

package com.codahale.metrics;
+
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.SortedMap;
+import java.util.SortedSet;
+import java.util.TreeMap;
+import java.util.TreeSet;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+/**
+ * A registry of metric instances.
+ */
+public class MetricRegistry implements MetricSet {
+    /**
+     * Concatenates elements to form a dotted name, eliding any null values or empty strings.
+     *
+     * @param name  the first element of the name
+     * @param names the remaining elements of the name
+     * @return {@code name} and {@code names} concatenated by periods
+     */
+    public static String name(String name, String... names) {
+        final StringBuilder builder = new StringBuilder();
+        append(builder, name);
+        if (names != null) {
+            for (String s : names) {
+                append(builder, s);
+            }
+        }
+        return builder.toString();
+    }
+
+    /**
+     * Concatenates a class name and elements to form a dotted name, eliding any null values or
+     * empty strings.
+     *
+     * @param klass the first element of the name
+     * @param names the remaining elements of the name
+     * @return {@code klass} and {@code names} concatenated by periods
+     */
+    public static String name(Class<?> klass, String... names) {
+        return name(klass.getName(), names);
+    }
+
+    private static void append(StringBuilder builder, String part) {
+        if (part != null && !part.isEmpty()) {
+            if (builder.length() > 0) {
+                builder.append('.');
+            }
+            builder.append(part);
+        }
+    }
+
+    private final ConcurrentMap<String, Metric> metrics;
+    private final List<MetricRegistryListener> listeners;
+
+    /**
+     * Creates a new {@link MetricRegistry}.
+     */
+    public MetricRegistry() {
+        this.metrics = buildMap();
+        this.listeners = new CopyOnWriteArrayList<>();
+    }
+
+    /**
+     * Creates a new {@link ConcurrentMap} implementation for use inside the registry. Override this
+     * to create a {@link MetricRegistry} with space- or time-bounded metric lifecycles, for
+     * example.
+     *
+     * @return a new {@link ConcurrentMap}
+     */
+    protected ConcurrentMap<String, Metric> buildMap() {
+        return new ConcurrentHashMap<>();
+    }
+
+    /**
+     * Given a {@link Gauge}, registers it under the given name and returns it
+     *
+     * @param name the name of the gauge
+     * @param <T>  the type of the gauge's value
+     * @return the registered {@link Gauge}
+     * @since 4.2.10
+     */
+    public <T> Gauge<T> registerGauge(String name, Gauge<T> metric) throws IllegalArgumentException {
+        return register(name, metric);
+    }
+
+    /**
+     * Given a {@link Metric}, registers it under the given name.
+     *
+     * @param name   the name of the metric
+     * @param metric the metric
+     * @param <T>    the type of the metric
+     * @return {@code metric}
+     * @throws IllegalArgumentException if the name is already registered or metric variable is null
+     */
+    @SuppressWarnings("unchecked")
+    public <T extends Metric> T register(String name, T metric) throws IllegalArgumentException {
+
+        if (metric == null) {
+            throw new NullPointerException("metric == null");
+        }
+
+        if (metric instanceof MetricRegistry) {
+            final MetricRegistry childRegistry = (MetricRegistry) metric;
+            final String childName = name;
+            childRegistry.addListener(new MetricRegistryListener() {
+                @Override
+                public void onGaugeAdded(String name, Gauge<?> gauge) {
+                    register(name(childName, name), gauge);
+                }
+
+                @Override
+                public void onGaugeRemoved(String name) {
+                    remove(name(childName, name));
+                }
+
+                @Override
+                public void onCounterAdded(String name, Counter counter) {
+                    register(name(childName, name), counter);
+                }
+
+                @Override
+                public void onCounterRemoved(String name) {
+                    remove(name(childName, name));
+                }
+
+                @Override
+                public void onHistogramAdded(String name, Histogram histogram) {
+                    register(name(childName, name), histogram);
+                }
+
+                @Override
+                public void onHistogramRemoved(String name) {
+                    remove(name(childName, name));
+                }
+
+                @Override
+                public void onMeterAdded(String name, Meter meter) {
+                    register(name(childName, name), meter);
+                }
+
+                @Override
+                public void onMeterRemoved(String name) {
+                    remove(name(childName, name));
+                }
+
+                @Override
+                public void onTimerAdded(String name, Timer timer) {
+                    register(name(childName, name), timer);
+                }
+
+                @Override
+                public void onTimerRemoved(String name) {
+                    remove(name(childName, name));
+                }
+            });
+        } else if (metric instanceof MetricSet) {
+            registerAll(name, (MetricSet) metric);
+        } else {
+            final Metric existing = metrics.putIfAbsent(name, metric);
+            if (existing == null) {
+                onMetricAdded(name, metric);
+            } else {
+                throw new IllegalArgumentException("A metric named " + name + " already exists");
+            }
+        }
+        return metric;
+    }
+
+    /**
+     * Given a metric set, registers them.
+     *
+     * @param metrics a set of metrics
+     * @throws IllegalArgumentException if any of the names are already registered
+     */
+    public void registerAll(MetricSet metrics) throws IllegalArgumentException {
+        registerAll(null, metrics);
+    }
+
+    /**
+     * Return the {@link Counter} registered under this name; or create and register
+     * a new {@link Counter} if none is registered.
+     *
+     * @param name the name of the metric
+     * @return a new or pre-existing {@link Counter}
+     */
+    public Counter counter(String name) {
+        return getOrAdd(name, MetricBuilder.COUNTERS);
+    }
+
+    /**
+     * Return the {@link Counter} registered under this name; or create and register
+     * a new {@link Counter} using the provided MetricSupplier if none is registered.
+     *
+     * @param name     the name of the metric
+     * @param supplier a MetricSupplier that can be used to manufacture a counter.
+     * @return a new or pre-existing {@link Counter}
+     */
+    public Counter counter(String name, final MetricSupplier<Counter> supplier) {
+        return getOrAdd(name, new MetricBuilder<Counter>() {
+            @Override
+            public Counter newMetric() {
+                return supplier.newMetric();
+            }
+
+            @Override
+            public boolean isInstance(Metric metric) {
+                return Counter.class.isInstance(metric);
+            }
+        });
+    }
+
+    /**
+     * Return the {@link Histogram} registered under this name; or create and register
+     * a new {@link Histogram} if none is registered.
+     *
+     * @param name the name of the metric
+     * @return a new or pre-existing {@link Histogram}
+     */
+    public Histogram histogram(String name) {
+        return getOrAdd(name, MetricBuilder.HISTOGRAMS);
+    }
+
+    /**
+     * Return the {@link Histogram} registered under this name; or create and register
+     * a new {@link Histogram} using the provided MetricSupplier if none is registered.
+     *
+     * @param name     the name of the metric
+     * @param supplier a MetricSupplier that can be used to manufacture a histogram
+     * @return a new or pre-existing {@link Histogram}
+     */
+    public Histogram histogram(String name, final MetricSupplier<Histogram> supplier) {
+        return getOrAdd(name, new MetricBuilder<Histogram>() {
+            @Override
+            public Histogram newMetric() {
+                return supplier.newMetric();
+            }
+
+            @Override
+            public boolean isInstance(Metric metric) {
+                return Histogram.class.isInstance(metric);
+            }
+        });
+    }
+
+    /**
+     * Return the {@link Meter} registered under this name; or create and register
+     * a new {@link Meter} if none is registered.
+     *
+     * @param name the name of the metric
+     * @return a new or pre-existing {@link Meter}
+     */
+    public Meter meter(String name) {
+        return getOrAdd(name, MetricBuilder.METERS);
+    }
+
+    /**
+     * Return the {@link Meter} registered under this name; or create and register
+     * a new {@link Meter} using the provided MetricSupplier if none is registered.
+     *
+     * @param name     the name of the metric
+     * @param supplier a MetricSupplier that can be used to manufacture a Meter
+     * @return a new or pre-existing {@link Meter}
+     */
+    public Meter meter(String name, final MetricSupplier<Meter> supplier) {
+        return getOrAdd(name, new MetricBuilder<Meter>() {
+            @Override
+            public Meter newMetric() {
+                return supplier.newMetric();
+            }
+
+            @Override
+            public boolean isInstance(Metric metric) {
+                return Meter.class.isInstance(metric);
+            }
+        });
+    }
+
+    /**
+     * Return the {@link Timer} registered under this name; or create and register
+     * a new {@link Timer} if none is registered.
+     *
+     * @param name the name of the metric
+     * @return a new or pre-existing {@link Timer}
+     */
+    public Timer timer(String name) {
+        return getOrAdd(name, MetricBuilder.TIMERS);
+    }
+
+    /**
+     * Return the {@link Timer} registered under this name; or create and register
+     * a new {@link Timer} using the provided MetricSupplier if none is registered.
+     *
+     * @param name     the name of the metric
+     * @param supplier a MetricSupplier that can be used to manufacture a Timer
+     * @return a new or pre-existing {@link Timer}
+     */
+    public Timer timer(String name, final MetricSupplier<Timer> supplier) {
+        return getOrAdd(name, new MetricBuilder<Timer>() {
+            @Override
+            public Timer newMetric() {
+                return supplier.newMetric();
+            }
+
+            @Override
+            public boolean isInstance(Metric metric) {
+                return Timer.class.isInstance(metric);
+            }
+        });
+    }
+
+    /**
+     * Return the {@link Gauge} registered under this name; or create and register
+     * a new {@link SettableGauge} if none is registered.
+     *
+     * @param name the name of the metric
+     * @return a pre-existing {@link Gauge} or a new {@link SettableGauge}
+     * @since 4.2
+     */
+    @SuppressWarnings({"rawtypes", "unchecked"})
+    public <T extends Gauge> T gauge(String name) {
+        return (T) getOrAdd(name, MetricBuilder.GAUGES);
+    }
+
+    /**
+     * Return the {@link Gauge} registered under this name; or create and register
+     * a new {@link Gauge} using the provided MetricSupplier if none is registered.
+     *
+     * @param name     the name of the metric
+     * @param supplier a MetricSupplier that can be used to manufacture a Gauge
+     * @return a new or pre-existing {@link Gauge}
+     */
+    @SuppressWarnings("rawtypes")
+    public <T extends Gauge> T gauge(String name, final MetricSupplier<T> supplier) {
+        return getOrAdd(name, new MetricBuilder<T>() {
+            @Override
+            public T newMetric() {
+                return supplier.newMetric();
+            }
+
+            @Override
+            public boolean isInstance(Metric metric) {
+                return Gauge.class.isInstance(metric);
+            }
+        });
+    }
+
+
+    /**
+     * Removes the metric with the given name.
+     *
+     * @param name the name of the metric
+     * @return whether or not the metric was removed
+     */
+    public boolean remove(String name) {
+        final Metric metric = metrics.remove(name);
+        if (metric != null) {
+            onMetricRemoved(name, metric);
+            return true;
+        }
+        return false;
+    }
+
+    /**
+     * Removes all metrics which match the given filter.
+     *
+     * @param filter a filter
+     */
+    public void removeMatching(MetricFilter filter) {
+        for (Map.Entry<String, Metric> entry : metrics.entrySet()) {
+            if (filter.matches(entry.getKey(), entry.getValue())) {
+                remove(entry.getKey());
+            }
+        }
+    }
+
+    /**
+     * Adds a {@link MetricRegistryListener} to a collection of listeners that will be notified on
+     * metric creation.  Listeners will be notified in the order in which they are added.
+     * <p>
+     * <b>N.B.:</b> The listener will be notified of all existing metrics when it first registers.
+     *
+     * @param listener the listener that will be notified
+     */
+    public void addListener(MetricRegistryListener listener) {
+        listeners.add(listener);
+
+        for (Map.Entry<String, Metric> entry : metrics.entrySet()) {
+            notifyListenerOfAddedMetric(listener, entry.getValue(), entry.getKey());
+        }
+    }
+
+    /**
+     * Removes a {@link MetricRegistryListener} from this registry's collection of listeners.
+     *
+     * @param listener the listener that will be removed
+     */
+    public void removeListener(MetricRegistryListener listener) {
+        listeners.remove(listener);
+    }
+
+    /**
+     * Returns a set of the names of all the metrics in the registry.
+     *
+     * @return the names of all the metrics
+     */
+    public SortedSet<String> getNames() {
+        return Collections.unmodifiableSortedSet(new TreeSet<>(metrics.keySet()));
+    }
+
+    /**
+     * Returns a map of all the gauges in the registry and their names.
+     *
+     * @return all the gauges in the registry
+     */
+    @SuppressWarnings("rawtypes")
+    public SortedMap<String, Gauge> getGauges() {
+        return getGauges(MetricFilter.ALL);
+    }
+
+    /**
+     * Returns a map of all the gauges in the registry and their names which match the given filter.
+     *
+     * @param filter the metric filter to match
+     * @return all the gauges in the registry
+     */
+    @SuppressWarnings("rawtypes")
+    public SortedMap<String, Gauge> getGauges(MetricFilter filter) {
+        return getMetrics(Gauge.class, filter);
+    }
+
+    /**
+     * Returns a map of all the counters in the registry and their names.
+     *
+     * @return all the counters in the registry
+     */
+    public SortedMap<String, Counter> getCounters() {
+        return getCounters(MetricFilter.ALL);
+    }
+
+    /**
+     * Returns a map of all the counters in the registry and their names which match the given
+     * filter.
+     *
+     * @param filter the metric filter to match
+     * @return all the counters in the registry
+     */
+    public SortedMap<String, Counter> getCounters(MetricFilter filter) {
+        return getMetrics(Counter.class, filter);
+    }
+
+    /**
+     * Returns a map of all the histograms in the registry and their names.
+     *
+     * @return all the histograms in the registry
+     */
+    public SortedMap<String, Histogram> getHistograms() {
+        return getHistograms(MetricFilter.ALL);
+    }
+
+    /**
+     * Returns a map of all the histograms in the registry and their names which match the given
+     * filter.
+     *
+     * @param filter the metric filter to match
+     * @return all the histograms in the registry
+     */
+    public SortedMap<String, Histogram> getHistograms(MetricFilter filter) {
+        return getMetrics(Histogram.class, filter);
+    }
+
+    /**
+     * Returns a map of all the meters in the registry and their names.
+     *
+     * @return all the meters in the registry
+     */
+    public SortedMap<String, Meter> getMeters() {
+        return getMeters(MetricFilter.ALL);
+    }
+
+    /**
+     * Returns a map of all the meters in the registry and their names which match the given filter.
+     *
+     * @param filter the metric filter to match
+     * @return all the meters in the registry
+     */
+    public SortedMap<String, Meter> getMeters(MetricFilter filter) {
+        return getMetrics(Meter.class, filter);
+    }
+
+    /**
+     * Returns a map of all the timers in the registry and their names.
+     *
+     * @return all the timers in the registry
+     */
+    public SortedMap<String, Timer> getTimers() {
+        return getTimers(MetricFilter.ALL);
+    }
+
+    /**
+     * Returns a map of all the timers in the registry and their names which match the given filter.
+     *
+     * @param filter the metric filter to match
+     * @return all the timers in the registry
+     */
+    public SortedMap<String, Timer> getTimers(MetricFilter filter) {
+        return getMetrics(Timer.class, filter);
+    }
+
+    @SuppressWarnings("unchecked")
+    private <T extends Metric> T getOrAdd(String name, MetricBuilder<T> builder) {
+        final Metric metric = metrics.get(name);
+        if (builder.isInstance(metric)) {
+            return (T) metric;
+        } else if (metric == null) {
+            try {
+                return register(name, builder.newMetric());
+            } catch (IllegalArgumentException e) {
+                final Metric added = metrics.get(name);
+                if (builder.isInstance(added)) {
+                    return (T) added;
+                }
+            }
+        }
+        throw new IllegalArgumentException(name + " is already used for a different type of metric");
+    }
+
+    @SuppressWarnings("unchecked")
+    private <T extends Metric> SortedMap<String, T> getMetrics(Class<T> klass, MetricFilter filter) {
+        final TreeMap<String, T> timers = new TreeMap<>();
+        for (Map.Entry<String, Metric> entry : metrics.entrySet()) {
+            if (klass.isInstance(entry.getValue()) && filter.matches(entry.getKey(),
+                    entry.getValue())) {
+                timers.put(entry.getKey(), (T) entry.getValue());
+            }
+        }
+        return Collections.unmodifiableSortedMap(timers);
+    }
+
+    private void onMetricAdded(String name, Metric metric) {
+        for (MetricRegistryListener listener : listeners) {
+            notifyListenerOfAddedMetric(listener, metric, name);
+        }
+    }
+
+    private void notifyListenerOfAddedMetric(MetricRegistryListener listener, Metric metric, String name) {
+        if (metric instanceof Gauge) {
+            listener.onGaugeAdded(name, (Gauge<?>) metric);
+        } else if (metric instanceof Counter) {
+            listener.onCounterAdded(name, (Counter) metric);
+        } else if (metric instanceof Histogram) {
+            listener.onHistogramAdded(name, (Histogram) metric);
+        } else if (metric instanceof Meter) {
+            listener.onMeterAdded(name, (Meter) metric);
+        } else if (metric instanceof Timer) {
+            listener.onTimerAdded(name, (Timer) metric);
+        } else {
+            throw new IllegalArgumentException("Unknown metric type: " + metric.getClass());
+        }
+    }
+
+    private void onMetricRemoved(String name, Metric metric) {
+        for (MetricRegistryListener listener : listeners) {
+            notifyListenerOfRemovedMetric(name, metric, listener);
+        }
+    }
+
+    private void notifyListenerOfRemovedMetric(String name, Metric metric, MetricRegistryListener listener) {
+        if (metric instanceof Gauge) {
+            listener.onGaugeRemoved(name);
+        } else if (metric instanceof Counter) {
+            listener.onCounterRemoved(name);
+        } else if (metric instanceof Histogram) {
+            listener.onHistogramRemoved(name);
+        } else if (metric instanceof Meter) {
+            listener.onMeterRemoved(name);
+        } else if (metric instanceof Timer) {
+            listener.onTimerRemoved(name);
+        } else {
+            throw new IllegalArgumentException("Unknown metric type: " + metric.getClass());
+        }
+    }
+
+    /**
+     * Given a metric set, registers them with the given prefix prepended to their names.
+     *
+     * @param prefix a name prefix
+     * @param metrics a set of metrics
+     * @throws IllegalArgumentException if any of the names are already registered
+     */
+    public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
+        for (Map.Entry<String, Metric> entry : metrics.getMetrics().entrySet()) {
+            if (entry.getValue() instanceof MetricSet) {
+                registerAll(name(prefix, entry.getKey()), (MetricSet) entry.getValue());
+            } else {
+                register(name(prefix, entry.getKey()), entry.getValue());
+            }
+        }
+    }
+
+    @Override
+    public Map<String, Metric> getMetrics() {
+        return Collections.unmodifiableMap(metrics);
+    }
+
+    @FunctionalInterface
+    public interface MetricSupplier<T extends Metric> {
+        T newMetric();
+    }
+
+    /**
+     * A quick and easy way of capturing the notion of default metrics.
+     */
+    private interface MetricBuilder<T extends Metric> {
+        MetricBuilder<Counter> COUNTERS = new MetricBuilder<Counter>() {
+            @Override
+            public Counter newMetric() {
+                return new Counter();
+            }
+
+            @Override
+            public boolean isInstance(Metric metric) {
+                return Counter.class.isInstance(metric);
+            }
+        };
+
+        MetricBuilder<Histogram> HISTOGRAMS = new MetricBuilder<Histogram>() {
+            @Override
+            public Histogram newMetric() {
+                return new Histogram(new ExponentiallyDecayingReservoir());
+            }
+
+            @Override
+            public boolean isInstance(Metric metric) {
+                return Histogram.class.isInstance(metric);
+            }
+        };
+
+        MetricBuilder<Meter> METERS = new MetricBuilder<Meter>() {
+            @Override
+            public Meter newMetric() {
+                return new Meter();
+            }
+
+            @Override
+            public boolean isInstance(Metric metric) {
+                return Meter.class.isInstance(metric);
+            }
+        };
+
+        MetricBuilder<Timer> TIMERS = new MetricBuilder<Timer>() {
+            @Override
+            public Timer newMetric() {
+                return new Timer();
+            }
+
+            @Override
+            public boolean isInstance(Metric metric) {
+                return Timer.class.isInstance(metric);
+            }
+        };
+
+        @SuppressWarnings("rawtypes")
+        MetricBuilder<Gauge> GAUGES = new MetricBuilder<Gauge>() {
+            @Override
+            public Gauge newMetric() {
+                return new DefaultSettableGauge<>();
+            }
+
+            @Override
+            public boolean isInstance(Metric metric) {
+                return Gauge.class.isInstance(metric);
+            }
+        };
+
+        T newMetric();
+
+        boolean isInstance(Metric metric);
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListener$Base.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListener$Base.html new file mode 100644 index 0000000000..7e23dbeff9 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListener$Base.html @@ -0,0 +1 @@ +MetricRegistryListener.Base

MetricRegistryListener.Base

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total13 of 130%0 of 0n/a111111111111
MetricRegistryListener.Base()30%n/a111111
onGaugeAdded(String, Gauge)10%n/a111111
onGaugeRemoved(String)10%n/a111111
onCounterAdded(String, Counter)10%n/a111111
onCounterRemoved(String)10%n/a111111
onHistogramAdded(String, Histogram)10%n/a111111
onHistogramRemoved(String)10%n/a111111
onMeterAdded(String, Meter)10%n/a111111
onMeterRemoved(String)10%n/a111111
onTimerAdded(String, Timer)10%n/a111111
onTimerRemoved(String)10%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListener.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListener.java.html new file mode 100644 index 0000000000..95e6c3787c --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListener.java.html @@ -0,0 +1,129 @@ +MetricRegistryListener.java

MetricRegistryListener.java

package com.codahale.metrics;
+
+import java.util.EventListener;
+
+/**
+ * Listeners for events from the registry.  Listeners must be thread-safe.
+ */
+public interface MetricRegistryListener extends EventListener {
+    /**
+     * A no-op implementation of {@link MetricRegistryListener}.
+     */
+    abstract class Base implements MetricRegistryListener {
+        @Override
+        public void onGaugeAdded(String name, Gauge<?> gauge) {
+        }
+
+        @Override
+        public void onGaugeRemoved(String name) {
+        }
+
+        @Override
+        public void onCounterAdded(String name, Counter counter) {
+        }
+
+        @Override
+        public void onCounterRemoved(String name) {
+        }
+
+        @Override
+        public void onHistogramAdded(String name, Histogram histogram) {
+        }
+
+        @Override
+        public void onHistogramRemoved(String name) {
+        }
+
+        @Override
+        public void onMeterAdded(String name, Meter meter) {
+        }
+
+        @Override
+        public void onMeterRemoved(String name) {
+        }
+
+        @Override
+        public void onTimerAdded(String name, Timer timer) {
+        }
+
+        @Override
+        public void onTimerRemoved(String name) {
+        }
+    }
+
+    /**
+     * Called when a {@link Gauge} is added to the registry.
+     *
+     * @param name  the gauge's name
+     * @param gauge the gauge
+     */
+    void onGaugeAdded(String name, Gauge<?> gauge);
+
+    /**
+     * Called when a {@link Gauge} is removed from the registry.
+     *
+     * @param name the gauge's name
+     */
+    void onGaugeRemoved(String name);
+
+    /**
+     * Called when a {@link Counter} is added to the registry.
+     *
+     * @param name    the counter's name
+     * @param counter the counter
+     */
+    void onCounterAdded(String name, Counter counter);
+
+    /**
+     * Called when a {@link Counter} is removed from the registry.
+     *
+     * @param name the counter's name
+     */
+    void onCounterRemoved(String name);
+
+    /**
+     * Called when a {@link Histogram} is added to the registry.
+     *
+     * @param name      the histogram's name
+     * @param histogram the histogram
+     */
+    void onHistogramAdded(String name, Histogram histogram);
+
+    /**
+     * Called when a {@link Histogram} is removed from the registry.
+     *
+     * @param name the histogram's name
+     */
+    void onHistogramRemoved(String name);
+
+    /**
+     * Called when a {@link Meter} is added to the registry.
+     *
+     * @param name  the meter's name
+     * @param meter the meter
+     */
+    void onMeterAdded(String name, Meter meter);
+
+    /**
+     * Called when a {@link Meter} is removed from the registry.
+     *
+     * @param name the meter's name
+     */
+    void onMeterRemoved(String name);
+
+    /**
+     * Called when a {@link Timer} is added to the registry.
+     *
+     * @param name  the timer's name
+     * @param timer the timer
+     */
+    void onTimerAdded(String name, Timer timer);
+
+    /**
+     * Called when a {@link Timer} is removed from the registry.
+     *
+     * @param name the timer's name
+     */
+    void onTimerRemoved(String name);
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest$1.html new file mode 100644 index 0000000000..5f9d5f960d --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest$1.html @@ -0,0 +1 @@ +MetricRegistryListenerTest.new MetricRegistryListener.Base() {...}

MetricRegistryListenerTest.new MetricRegistryListener.Base() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total6 of 60%0 of 0n/a111111
{...}60%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest.html new file mode 100644 index 0000000000..41b694fe9b --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest.html @@ -0,0 +1 @@ +MetricRegistryListenerTest

MetricRegistryListenerTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total121 of 1210%0 of 0n/a88272788
MetricRegistryListenerTest()290%n/a116611
doesNotExplodeWhenMetricsAreRemoved()210%n/a116611
noOpsOnCounterAdded()150%n/a113311
noOpsOnHistogramAdded()150%n/a113311
noOpsOnMeterAdded()150%n/a113311
noOpsOnTimerAdded()150%n/a113311
noOpsOnGaugeAdded()60%n/a112211
lambda$noOpsOnGaugeAdded$0()50%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest.java.html new file mode 100644 index 0000000000..65f9fbed63 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest.java.html @@ -0,0 +1,61 @@ +MetricRegistryListenerTest.java

MetricRegistryListenerTest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verifyNoInteractions;
+
+public class MetricRegistryListenerTest {
+    private final Counter counter = mock(Counter.class);
+    private final Histogram histogram = mock(Histogram.class);
+    private final Meter meter = mock(Meter.class);
+    private final Timer timer = mock(Timer.class);
+    private final MetricRegistryListener listener = new MetricRegistryListener.Base() {
+
+    };
+
+    @Test
+    public void noOpsOnGaugeAdded() {
+        listener.onGaugeAdded("blah", () -> {
+            throw new RuntimeException("Should not be called");
+        });
+    }
+
+    @Test
+    public void noOpsOnCounterAdded() {
+        listener.onCounterAdded("blah", counter);
+
+        verifyNoInteractions(counter);
+    }
+
+    @Test
+    public void noOpsOnHistogramAdded() {
+        listener.onHistogramAdded("blah", histogram);
+
+        verifyNoInteractions(histogram);
+    }
+
+    @Test
+    public void noOpsOnMeterAdded() {
+        listener.onMeterAdded("blah", meter);
+
+        verifyNoInteractions(meter);
+    }
+
+    @Test
+    public void noOpsOnTimerAdded() {
+        listener.onTimerAdded("blah", timer);
+
+        verifyNoInteractions(timer);
+    }
+
+    @Test
+    public void doesNotExplodeWhenMetricsAreRemoved() {
+        listener.onGaugeRemoved("blah");
+        listener.onCounterRemoved("blah");
+        listener.onHistogramRemoved("blah");
+        listener.onMeterRemoved("blah");
+        listener.onTimerRemoved("blah");
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryTest.html new file mode 100644 index 0000000000..8b8cdd25db --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryTest.html @@ -0,0 +1 @@ +MetricRegistryTest

MetricRegistryTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total1,842 of 1,8420%0 of 0n/a81813613618181
removingDeepChildMetricsAfterRegister()980%n/a11212111
addingDeepChildMetricsAfterRegister()880%n/a11202011
removesMetricsMatchingAFilter()800%n/a11131311
addingAListenerWithExistingMetricsCatchesItUp()790%n/a11131311
removingMultipleChildMetricsAfterRegister()700%n/a11151511
hasASetOfRegisteredMetricNames()640%n/a118811
removingChildMetricAfterRegister()540%n/a11121211
addingMultipleChildMetricsAfterRegister()480%n/a11121211
MetricRegistryTest()420%n/a119911
addingChildMetricAfterRegister()400%n/a11101011
accessingASettableGaugeRegistersAndReusesIt()340%n/a117711
accessingAnExistingGaugeReusesIt()320%n/a116611
accessingAnExistingSettableGaugeReusesIt()310%n/a116611
settableGaugeIsTreatedLikeAGauge()300%n/a117711
registersRecursiveMetricSets()300%n/a116611
aRemovedListenerDoesNotReceiveUpdates()290%n/a115511
registersMetricsFromAnotherRegistry()290%n/a115511
accessingACustomCounterRegistersAndReusesTheCounter()280%n/a117711
accessingACustomHistogramRegistersAndReusesIt()280%n/a117711
accessingACustomMeterRegistersAndReusesIt()280%n/a117711
accessingACustomTimerRegistersAndReusesIt()280%n/a117711
accessingACustomGaugeRegistersAndReusesIt()280%n/a117711
registersMultipleMetricsWithAPrefix()260%n/a115511
registersMultipleMetrics()240%n/a115511
accessingACounterRegistersAndReusesTheCounter()230%n/a116611
accessingAHistogramRegistersAndReusesIt()230%n/a116611
accessingAMeterRegistersAndReusesIt()230%n/a116611
accessingATimerRegistersAndReusesIt()230%n/a116611
hasAMapOfRegisteredGauges()230%n/a114411
hasAMapOfRegisteredCounters()230%n/a114411
hasAMapOfRegisteredHistograms()230%n/a114411
hasAMapOfRegisteredMeters()230%n/a114411
hasAMapOfRegisteredTimers()230%n/a114411
registeringAGaugeTriggersANotification()210%n/a114411
removingAGaugeTriggersANotification()210%n/a115511
registeringACounterTriggersANotification()210%n/a114411
removingACounterTriggersANotification()210%n/a115511
registeringAHistogramTriggersANotification()210%n/a114411
removingAHistogramTriggersANotification()210%n/a115511
registeringAMeterTriggersANotification()210%n/a114411
removingAMeterTriggersANotification()210%n/a115511
registeringATimerTriggersANotification()210%n/a114411
removingATimerTriggersANotification()210%n/a115511
concatenatesClassesWithoutCanonicalNamesWithStrings()200%n/a114411
registerNullMetric()180%n/a117711
lambda$registersMultipleMetricsWithAPrefix$12()180%n/a114411
lambda$registersMultipleMetrics$11()180%n/a114411
concatenatesStringsToFormADottedName()170%n/a113311
elidesNullValuesFromNamesWhenManyNullsPassedIn()170%n/a113311
elidesNullValuesFromNamesWhenNullAndNotNullPassedIn()170%n/a113311
elidesEmptyStringsFromNames()170%n/a113311
concatenatesClassNamesWithStringsToFormADottedName()170%n/a113311
registersGaugeAsLambda()170%n/a113311
lambda$registersRecursiveMetricSets$14(MetricSet)170%n/a114411
elidesNullValuesFromNamesWhenOnlyOneNullPassedIn()140%n/a113311
infersGaugeType()140%n/a113311
lambda$registersRecursiveMetricSets$13()120%n/a113311
lambda$removingDeepChildMetricsAfterRegister$24(String)90%n/a111111
lambda$removingDeepChildMetricsAfterRegister$23(String)90%n/a111111
lambda$removingMultipleChildMetricsAfterRegister$22(String)90%n/a111111
lambda$removingChildMetricAfterRegister$21(String)90%n/a111111
lambda$addingDeepChildMetricsAfterRegister$20(String)90%n/a111111
lambda$addingDeepChildMetricsAfterRegister$19(String)90%n/a111111
lambda$addingMultipleChildMetricsAfterRegister$18(String)90%n/a111111
lambda$addingChildMetricAfterRegister$17(String)90%n/a111111
setUp()60%n/a112211
lambda$accessingAnExistingSettableGaugeReusesIt$8()50%n/a111111
lambda$accessingAnExistingGaugeReusesIt$7()50%n/a111111
lambda$removesMetricsMatchingAFilter$16(String, Metric)40%n/a111111
lambda$registersGaugeAsLambda$26()30%n/a111111
lambda$infersGaugeType$25()30%n/a111111
lambda$settableGaugeIsTreatedLikeAGauge$10()30%n/a111111
lambda$accessingACustomGaugeRegistersAndReusesIt$9()30%n/a111111
lambda$accessingACustomTimerRegistersAndReusesIt$4()30%n/a111111
lambda$accessingACustomMeterRegistersAndReusesIt$3()30%n/a111111
lambda$accessingACustomHistogramRegistersAndReusesIt$2()30%n/a111111
lambda$accessingACustomCounterRegistersAndReusesTheCounter$1()30%n/a111111
lambda$concatenatesClassesWithoutCanonicalNamesWithStrings$15()20%n/a111111
lambda$accessingAnExistingGaugeReusesIt$6()20%n/a111111
lambda$accessingAnExistingGaugeReusesIt$5()20%n/a111111
lambda$new$0()20%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryTest.java.html new file mode 100644 index 0000000000..81f554be96 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryTest.java.html @@ -0,0 +1,644 @@ +MetricRegistryTest.java

MetricRegistryTest.java

package com.codahale.metrics;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import static com.codahale.metrics.MetricRegistry.name;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.entry;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+public class MetricRegistryTest {
+    private final MetricRegistryListener listener = mock(MetricRegistryListener.class);
+    private final MetricRegistry registry = new MetricRegistry();
+    private final Gauge<String> gauge = () -> "";
+    private final SettableGauge<String> settableGauge = new DefaultSettableGauge<>("");
+    private final Counter counter = mock(Counter.class);
+    private final Histogram histogram = mock(Histogram.class);
+    private final Meter meter = mock(Meter.class);
+    private final Timer timer = mock(Timer.class);
+
+    @Before
+    public void setUp() {
+        registry.addListener(listener);
+    }
+
+    @Test
+    public void registeringAGaugeTriggersANotification() {
+        assertThat(registry.register("thing", gauge))
+                .isEqualTo(gauge);
+
+        verify(listener).onGaugeAdded("thing", gauge);
+    }
+
+    @Test
+    public void removingAGaugeTriggersANotification() {
+        registry.register("thing", gauge);
+
+        assertThat(registry.remove("thing"))
+                .isTrue();
+
+        verify(listener).onGaugeRemoved("thing");
+    }
+
+    @Test
+    public void registeringACounterTriggersANotification() {
+        assertThat(registry.register("thing", counter))
+                .isEqualTo(counter);
+
+        verify(listener).onCounterAdded("thing", counter);
+    }
+
+    @Test
+    public void accessingACounterRegistersAndReusesTheCounter() {
+        final Counter counter1 = registry.counter("thing");
+        final Counter counter2 = registry.counter("thing");
+
+        assertThat(counter1)
+                .isSameAs(counter2);
+
+        verify(listener).onCounterAdded("thing", counter1);
+    }
+
+    @Test
+    public void accessingACustomCounterRegistersAndReusesTheCounter() {
+        final MetricRegistry.MetricSupplier<Counter> supplier = () -> counter;
+        final Counter counter1 = registry.counter("thing", supplier);
+        final Counter counter2 = registry.counter("thing", supplier);
+
+        assertThat(counter1)
+                .isSameAs(counter2);
+
+        verify(listener).onCounterAdded("thing", counter1);
+    }
+
+
+    @Test
+    public void removingACounterTriggersANotification() {
+        registry.register("thing", counter);
+
+        assertThat(registry.remove("thing"))
+                .isTrue();
+
+        verify(listener).onCounterRemoved("thing");
+    }
+
+    @Test
+    public void registeringAHistogramTriggersANotification() {
+        assertThat(registry.register("thing", histogram))
+                .isEqualTo(histogram);
+
+        verify(listener).onHistogramAdded("thing", histogram);
+    }
+
+    @Test
+    public void accessingAHistogramRegistersAndReusesIt() {
+        final Histogram histogram1 = registry.histogram("thing");
+        final Histogram histogram2 = registry.histogram("thing");
+
+        assertThat(histogram1)
+                .isSameAs(histogram2);
+
+        verify(listener).onHistogramAdded("thing", histogram1);
+    }
+
+    @Test
+    public void accessingACustomHistogramRegistersAndReusesIt() {
+        final MetricRegistry.MetricSupplier<Histogram> supplier = () -> histogram;
+        final Histogram histogram1 = registry.histogram("thing", supplier);
+        final Histogram histogram2 = registry.histogram("thing", supplier);
+
+        assertThat(histogram1)
+                .isSameAs(histogram2);
+
+        verify(listener).onHistogramAdded("thing", histogram1);
+    }
+
+    @Test
+    public void removingAHistogramTriggersANotification() {
+        registry.register("thing", histogram);
+
+        assertThat(registry.remove("thing"))
+                .isTrue();
+
+        verify(listener).onHistogramRemoved("thing");
+    }
+
+    @Test
+    public void registeringAMeterTriggersANotification() {
+        assertThat(registry.register("thing", meter))
+                .isEqualTo(meter);
+
+        verify(listener).onMeterAdded("thing", meter);
+    }
+
+    @Test
+    public void accessingAMeterRegistersAndReusesIt() {
+        final Meter meter1 = registry.meter("thing");
+        final Meter meter2 = registry.meter("thing");
+
+        assertThat(meter1)
+                .isSameAs(meter2);
+
+        verify(listener).onMeterAdded("thing", meter1);
+    }
+
+    @Test
+    public void accessingACustomMeterRegistersAndReusesIt() {
+        final MetricRegistry.MetricSupplier<Meter> supplier = () -> meter;
+        final Meter meter1 = registry.meter("thing", supplier);
+        final Meter meter2 = registry.meter("thing", supplier);
+
+        assertThat(meter1)
+                .isSameAs(meter2);
+
+        verify(listener).onMeterAdded("thing", meter1);
+    }
+
+    @Test
+    public void removingAMeterTriggersANotification() {
+        registry.register("thing", meter);
+
+        assertThat(registry.remove("thing"))
+                .isTrue();
+
+        verify(listener).onMeterRemoved("thing");
+    }
+
+    @Test
+    public void registeringATimerTriggersANotification() {
+        assertThat(registry.register("thing", timer))
+                .isEqualTo(timer);
+
+        verify(listener).onTimerAdded("thing", timer);
+    }
+
+    @Test
+    public void accessingATimerRegistersAndReusesIt() {
+        final Timer timer1 = registry.timer("thing");
+        final Timer timer2 = registry.timer("thing");
+
+        assertThat(timer1)
+                .isSameAs(timer2);
+
+        verify(listener).onTimerAdded("thing", timer1);
+    }
+
+    @Test
+    public void accessingACustomTimerRegistersAndReusesIt() {
+        final MetricRegistry.MetricSupplier<Timer> supplier = () -> timer;
+        final Timer timer1 = registry.timer("thing", supplier);
+        final Timer timer2 = registry.timer("thing", supplier);
+
+        assertThat(timer1)
+                .isSameAs(timer2);
+
+        verify(listener).onTimerAdded("thing", timer1);
+    }
+
+
+    @Test
+    public void removingATimerTriggersANotification() {
+        registry.register("thing", timer);
+
+        assertThat(registry.remove("thing"))
+                .isTrue();
+
+        verify(listener).onTimerRemoved("thing");
+    }
+
+    @Test
+    public void accessingASettableGaugeRegistersAndReusesIt() {
+        final SettableGauge<String> gauge1 = registry.gauge("thing");
+        gauge1.setValue("Test");
+        final Gauge<String> gauge2 = registry.gauge("thing");
+
+        assertThat(gauge1).isSameAs(gauge2);
+        assertThat(gauge2.getValue()).isEqualTo("Test");
+
+        verify(listener).onGaugeAdded("thing", gauge1);
+    }
+
+    @Test
+    public void accessingAnExistingGaugeReusesIt() {
+        final Gauge<String> gauge1 = registry.gauge("thing", () -> () -> "string-gauge");
+        final Gauge<String> gauge2 = registry.gauge("thing", () -> new DefaultSettableGauge<>("settable-gauge"));
+
+        assertThat(gauge1).isSameAs(gauge2);
+        assertThat(gauge2.getValue()).isEqualTo("string-gauge");
+
+        verify(listener).onGaugeAdded("thing", gauge1);
+    }
+
+    @Test
+    public void accessingAnExistingSettableGaugeReusesIt() {
+        final Gauge<String> gauge1 = registry.gauge("thing", () -> new DefaultSettableGauge<>("settable-gauge"));
+        final Gauge<String> gauge2 = registry.gauge("thing");
+
+        assertThat(gauge1).isSameAs(gauge2);
+        assertThat(gauge2.getValue()).isEqualTo("settable-gauge");
+
+        verify(listener).onGaugeAdded("thing", gauge1);
+    }
+
+    @Test
+    @SuppressWarnings("rawtypes")
+    public void accessingACustomGaugeRegistersAndReusesIt() {
+        final MetricRegistry.MetricSupplier<Gauge> supplier = () -> gauge;
+        final Gauge gauge1 = registry.gauge("thing", supplier);
+        final Gauge gauge2 = registry.gauge("thing", supplier);
+
+        assertThat(gauge1)
+                .isSameAs(gauge2);
+
+        verify(listener).onGaugeAdded("thing", gauge1);
+    }
+
+    @Test
+    public void settableGaugeIsTreatedLikeAGauge() {
+        final MetricRegistry.MetricSupplier<SettableGauge<String>> supplier = () -> settableGauge;
+        final SettableGauge<String> gauge1 = registry.gauge("thing", supplier);
+        final SettableGauge<String> gauge2 = registry.gauge("thing", supplier);
+
+        assertThat(gauge1)
+                .isSameAs(gauge2);
+
+        verify(listener).onGaugeAdded("thing", gauge1);
+    }
+
+    @Test
+    public void addingAListenerWithExistingMetricsCatchesItUp() {
+        registry.register("gauge", gauge);
+        registry.register("counter", counter);
+        registry.register("histogram", histogram);
+        registry.register("meter", meter);
+        registry.register("timer", timer);
+
+        final MetricRegistryListener other = mock(MetricRegistryListener.class);
+        registry.addListener(other);
+
+        verify(other).onGaugeAdded("gauge", gauge);
+        verify(other).onCounterAdded("counter", counter);
+        verify(other).onHistogramAdded("histogram", histogram);
+        verify(other).onMeterAdded("meter", meter);
+        verify(other).onTimerAdded("timer", timer);
+    }
+
+    @Test
+    public void aRemovedListenerDoesNotReceiveUpdates() {
+        registry.register("gauge", gauge);
+        registry.removeListener(listener);
+        registry.register("gauge2", gauge);
+
+        verify(listener, never()).onGaugeAdded("gauge2", gauge);
+    }
+
+    @Test
+    public void hasAMapOfRegisteredGauges() {
+        registry.register("gauge", gauge);
+
+        assertThat(registry.getGauges())
+                .contains(entry("gauge", gauge));
+    }
+
+    @Test
+    public void hasAMapOfRegisteredCounters() {
+        registry.register("counter", counter);
+
+        assertThat(registry.getCounters())
+                .contains(entry("counter", counter));
+    }
+
+    @Test
+    public void hasAMapOfRegisteredHistograms() {
+        registry.register("histogram", histogram);
+
+        assertThat(registry.getHistograms())
+                .contains(entry("histogram", histogram));
+    }
+
+    @Test
+    public void hasAMapOfRegisteredMeters() {
+        registry.register("meter", meter);
+
+        assertThat(registry.getMeters())
+                .contains(entry("meter", meter));
+    }
+
+    @Test
+    public void hasAMapOfRegisteredTimers() {
+        registry.register("timer", timer);
+
+        assertThat(registry.getTimers())
+                .contains(entry("timer", timer));
+    }
+
+    @Test
+    public void hasASetOfRegisteredMetricNames() {
+        registry.register("gauge", gauge);
+        registry.register("counter", counter);
+        registry.register("histogram", histogram);
+        registry.register("meter", meter);
+        registry.register("timer", timer);
+
+        assertThat(registry.getNames())
+                .containsOnly("gauge", "counter", "histogram", "meter", "timer");
+    }
+
+    @Test
+    public void registersMultipleMetrics() {
+        final MetricSet metrics = () -> {
+            final Map<String, Metric> m = new HashMap<>();
+            m.put("gauge", gauge);
+            m.put("counter", counter);
+            return m;
+        };
+
+        registry.registerAll(metrics);
+
+        assertThat(registry.getNames())
+                .containsOnly("gauge", "counter");
+    }
+
+    @Test
+    public void registersMultipleMetricsWithAPrefix() {
+        final MetricSet metrics = () -> {
+            final Map<String, Metric> m = new HashMap<>();
+            m.put("gauge", gauge);
+            m.put("counter", counter);
+            return m;
+        };
+
+        registry.register("my", metrics);
+
+        assertThat(registry.getNames())
+                .containsOnly("my.gauge", "my.counter");
+    }
+
+    @Test
+    public void registersRecursiveMetricSets() {
+        final MetricSet inner = () -> {
+            final Map<String, Metric> m = new HashMap<>();
+            m.put("gauge", gauge);
+            return m;
+        };
+
+        final MetricSet outer = () -> {
+            final Map<String, Metric> m = new HashMap<>();
+            m.put("inner", inner);
+            m.put("counter", counter);
+            return m;
+        };
+
+        registry.register("my", outer);
+
+        assertThat(registry.getNames())
+                .containsOnly("my.inner.gauge", "my.counter");
+    }
+
+    @Test
+    public void registersMetricsFromAnotherRegistry() {
+        MetricRegistry other = new MetricRegistry();
+        other.register("gauge", gauge);
+        registry.register("nested", other);
+        assertThat(registry.getNames()).containsOnly("nested.gauge");
+    }
+
+    @Test
+    public void concatenatesStringsToFormADottedName() {
+        assertThat(name("one", "two", "three"))
+                .isEqualTo("one.two.three");
+    }
+
+    @Test
+    @SuppressWarnings("NullArgumentToVariableArgMethod")
+    public void elidesNullValuesFromNamesWhenOnlyOneNullPassedIn() {
+        assertThat(name("one", (String) null))
+                .isEqualTo("one");
+    }
+
+    @Test
+    public void elidesNullValuesFromNamesWhenManyNullsPassedIn() {
+        assertThat(name("one", null, null))
+                .isEqualTo("one");
+    }
+
+    @Test
+    public void elidesNullValuesFromNamesWhenNullAndNotNullPassedIn() {
+        assertThat(name("one", null, "three"))
+                .isEqualTo("one.three");
+    }
+
+    @Test
+    public void elidesEmptyStringsFromNames() {
+        assertThat(name("one", "", "three"))
+                .isEqualTo("one.three");
+    }
+
+    @Test
+    public void concatenatesClassNamesWithStringsToFormADottedName() {
+        assertThat(name(MetricRegistryTest.class, "one", "two"))
+                .isEqualTo("com.codahale.metrics.MetricRegistryTest.one.two");
+    }
+
+    @Test
+    public void concatenatesClassesWithoutCanonicalNamesWithStrings() {
+        final Gauge<String> g = () -> null;
+
+        assertThat(name(g.getClass(), "one", "two"))
+                .matches("com\\.codahale\\.metrics\\.MetricRegistryTest.+?\\.one\\.two");
+    }
+
+    @Test
+    public void removesMetricsMatchingAFilter() {
+        registry.timer("timer-1");
+        registry.timer("timer-2");
+        registry.histogram("histogram-1");
+
+        assertThat(registry.getNames())
+                .contains("timer-1", "timer-2", "histogram-1");
+
+        registry.removeMatching((name, metric) -> name.endsWith("1"));
+
+        assertThat(registry.getNames())
+                .doesNotContain("timer-1", "histogram-1");
+        assertThat(registry.getNames())
+                .contains("timer-2");
+
+        verify(listener).onTimerRemoved("timer-1");
+        verify(listener).onHistogramRemoved("histogram-1");
+    }
+
+    @Test
+    public void addingChildMetricAfterRegister() {
+        MetricRegistry parent = new MetricRegistry();
+        MetricRegistry child = new MetricRegistry();
+
+        child.counter("test-1");
+        parent.register("child", child);
+        child.counter("test-2");
+
+        Set<String> parentMetrics = parent.getMetrics().keySet();
+        Set<String> childMetrics = child.getMetrics().keySet();
+
+        assertThat(parentMetrics)
+                .isEqualTo(childMetrics.stream().map(m -> "child." + m).collect(Collectors.toSet()));
+    }
+
+    @Test
+    public void addingMultipleChildMetricsAfterRegister() {
+        MetricRegistry parent = new MetricRegistry();
+        MetricRegistry child = new MetricRegistry();
+
+        child.counter("test-1");
+        child.counter("test-2");
+        parent.register("child", child);
+        child.counter("test-3");
+        child.counter("test-4");
+
+        Set<String> parentMetrics = parent.getMetrics().keySet();
+        Set<String> childMetrics = child.getMetrics().keySet();
+
+        assertThat(parentMetrics)
+                .isEqualTo(childMetrics.stream().map(m -> "child." + m).collect(Collectors.toSet()));
+    }
+
+    @Test
+    public void addingDeepChildMetricsAfterRegister() {
+        MetricRegistry parent = new MetricRegistry();
+        MetricRegistry child = new MetricRegistry();
+        MetricRegistry deepChild = new MetricRegistry();
+
+        deepChild.counter("test-1");
+        child.register("deep-child", deepChild);
+        deepChild.counter("test-2");
+
+        child.counter("test-3");
+        parent.register("child", child);
+        child.counter("test-4");
+
+        deepChild.counter("test-5");
+
+        Set<String> parentMetrics = parent.getMetrics().keySet();
+        Set<String> childMetrics = child.getMetrics().keySet();
+        Set<String> deepChildMetrics = deepChild.getMetrics().keySet();
+
+        assertThat(parentMetrics)
+                .isEqualTo(childMetrics.stream().map(m -> "child." + m).collect(Collectors.toSet()));
+
+        assertThat(childMetrics)
+                .containsAll(deepChildMetrics.stream().map(m -> "deep-child." + m).collect(Collectors.toSet()));
+
+        assertThat(deepChildMetrics.size()).isEqualTo(3);
+        assertThat(childMetrics.size()).isEqualTo(5);
+    }
+
+    @Test
+    public void removingChildMetricAfterRegister() {
+        MetricRegistry parent = new MetricRegistry();
+        MetricRegistry child = new MetricRegistry();
+
+        child.counter("test-1");
+        parent.register("child", child);
+        child.counter("test-2");
+
+        child.remove("test-1");
+
+        Set<String> parentMetrics = parent.getMetrics().keySet();
+        Set<String> childMetrics = child.getMetrics().keySet();
+
+        assertThat(parentMetrics)
+                .isEqualTo(childMetrics.stream().map(m -> "child." + m).collect(Collectors.toSet()));
+
+        assertThat(childMetrics).doesNotContain("test-1");
+    }
+
+    @Test
+    public void removingMultipleChildMetricsAfterRegister() {
+        MetricRegistry parent = new MetricRegistry();
+        MetricRegistry child = new MetricRegistry();
+
+        child.counter("test-1");
+        child.counter("test-2");
+        parent.register("child", child);
+        child.counter("test-3");
+        child.counter("test-4");
+
+        child.remove("test-1");
+        child.remove("test-3");
+
+        Set<String> parentMetrics = parent.getMetrics().keySet();
+        Set<String> childMetrics = child.getMetrics().keySet();
+
+        assertThat(parentMetrics)
+                .isEqualTo(childMetrics.stream().map(m -> "child." + m).collect(Collectors.toSet()));
+
+        assertThat(childMetrics).doesNotContain("test-1", "test-3");
+    }
+
+    @Test
+    public void removingDeepChildMetricsAfterRegister() {
+        MetricRegistry parent = new MetricRegistry();
+        MetricRegistry child = new MetricRegistry();
+        MetricRegistry deepChild = new MetricRegistry();
+
+        deepChild.counter("test-1");
+        child.register("deep-child", deepChild);
+        deepChild.counter("test-2");
+
+        child.counter("test-3");
+        parent.register("child", child);
+        child.counter("test-4");
+
+        deepChild.remove("test-2");
+
+        Set<String> parentMetrics = parent.getMetrics().keySet();
+        Set<String> childMetrics = child.getMetrics().keySet();
+        Set<String> deepChildMetrics = deepChild.getMetrics().keySet();
+
+        assertThat(parentMetrics)
+                .isEqualTo(childMetrics.stream().map(m -> "child." + m).collect(Collectors.toSet()));
+
+        assertThat(childMetrics)
+                .containsAll(deepChildMetrics.stream().map(m -> "deep-child." + m).collect(Collectors.toSet()));
+
+        assertThat(deepChildMetrics).doesNotContain("test-2");
+
+        assertThat(deepChildMetrics.size()).isEqualTo(1);
+        assertThat(childMetrics.size()).isEqualTo(3);
+    }
+
+    @Test
+    public void registerNullMetric() {
+        MetricRegistry registry = new MetricRegistry();
+        try {
+            registry.register("any_name", null);
+            Assert.fail("NullPointerException must be thrown !!!");
+        } catch (NullPointerException e) {
+            Assert.assertEquals("metric == null", e.getMessage());
+        }
+    }
+
+    @Test
+    public void infersGaugeType() {
+        Gauge<Long> gauge = registry.registerGauge("gauge", () -> 10_000_000_000L);
+
+        assertThat(gauge.getValue()).isEqualTo(10_000_000_000L);
+    }
+
+    @Test
+    public void registersGaugeAsLambda() {
+        registry.registerGauge("gauge", () -> 3.14);
+
+        assertThat(registry.gauge("gauge").getValue()).isEqualTo(3.14);
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$EmptyConcurrentMap.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$EmptyConcurrentMap.html new file mode 100644 index 0000000000..3bfe25dccb --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$EmptyConcurrentMap.html @@ -0,0 +1 @@ +NoopMetricRegistry.EmptyConcurrentMap

NoopMetricRegistry.EmptyConcurrentMap

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total30 of 300%0 of 0n/a161616161616
putIfAbsent(Object, Object)20%n/a111111
remove(Object, Object)20%n/a111111
replace(Object, Object, Object)20%n/a111111
replace(Object, Object)20%n/a111111
size()20%n/a111111
isEmpty()20%n/a111111
containsKey(Object)20%n/a111111
containsValue(Object)20%n/a111111
get(Object)20%n/a111111
put(Object, Object)20%n/a111111
remove(Object)20%n/a111111
keySet()20%n/a111111
values()20%n/a111111
entrySet()20%n/a111111
putAll(Map)10%n/a111111
clear()10%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$EmptySnapshot.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$EmptySnapshot.html new file mode 100644 index 0000000000..9faa21602b --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$EmptySnapshot.html @@ -0,0 +1 @@ +NoopMetricRegistry.EmptySnapshot

NoopMetricRegistry.EmptySnapshot

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total23 of 230%0 of 0n/a99101099
static {...}80%n/a112211
getValue(double)20%n/a111111
getValues()20%n/a111111
size()20%n/a111111
getMax()20%n/a111111
getMean()20%n/a111111
getMin()20%n/a111111
getStdDev()20%n/a111111
dump(OutputStream)10%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopCounter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopCounter.html new file mode 100644 index 0000000000..ae425fe501 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopCounter.html @@ -0,0 +1 @@ +NoopMetricRegistry.NoopCounter

NoopMetricRegistry.NoopCounter

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total14 of 140%0 of 0n/a777777
static {...}50%n/a111111
NoopMetricRegistry.NoopCounter()30%n/a111111
getCount()20%n/a111111
inc()10%n/a111111
inc(long)10%n/a111111
dec()10%n/a111111
dec(long)10%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopGauge.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopGauge.html new file mode 100644 index 0000000000..e890daa3e6 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopGauge.html @@ -0,0 +1 @@ +NoopMetricRegistry.NoopGauge

NoopMetricRegistry.NoopGauge

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total10 of 100%0 of 0n/a333333
static {...}50%n/a111111
NoopMetricRegistry.NoopGauge()30%n/a111111
getValue()20%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopHistogram$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopHistogram$1.html new file mode 100644 index 0000000000..0c87cc28df --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopHistogram$1.html @@ -0,0 +1 @@ +NoopMetricRegistry.NoopHistogram.new Reservoir() {...}

NoopMetricRegistry.NoopHistogram.new Reservoir() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total8 of 80%0 of 0n/a444444
{...}30%n/a111111
size()20%n/a111111
getSnapshot()20%n/a111111
update(long)10%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopHistogram.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopHistogram.html new file mode 100644 index 0000000000..aae4d9eb6a --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopHistogram.html @@ -0,0 +1 @@ +NoopMetricRegistry.NoopHistogram

NoopMetricRegistry.NoopHistogram

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total19 of 190%0 of 0n/a668866
static {...}90%n/a112211
NoopMetricRegistry.NoopHistogram()40%n/a112211
getCount()20%n/a111111
getSnapshot()20%n/a111111
update(int)10%n/a111111
update(long)10%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopMeter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopMeter.html new file mode 100644 index 0000000000..46d8559b73 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopMeter.html @@ -0,0 +1 @@ +NoopMetricRegistry.NoopMeter

NoopMetricRegistry.NoopMeter

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total20 of 200%0 of 0n/a999999
static {...}50%n/a111111
NoopMetricRegistry.NoopMeter()30%n/a111111
getCount()20%n/a111111
getFifteenMinuteRate()20%n/a111111
getFiveMinuteRate()20%n/a111111
getMeanRate()20%n/a111111
getOneMinuteRate()20%n/a111111
mark()10%n/a111111
mark(long)10%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer$Context$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer$Context$1.html new file mode 100644 index 0000000000..a8634dab3f --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer$Context$1.html @@ -0,0 +1 @@ +NoopMetricRegistry.NoopTimer.Context.new Clock() {...}

NoopMetricRegistry.NoopTimer.Context.new Clock() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total7 of 70%0 of 0n/a333333
{...}30%n/a111111
getTick()20%n/a111111
getTime()20%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer$Context.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer$Context.html new file mode 100644 index 0000000000..2e220cde21 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer$Context.html @@ -0,0 +1 @@ +NoopMetricRegistry.NoopTimer.Context

NoopMetricRegistry.NoopTimer.Context

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total13 of 130%0 of 0n/a445544
NoopMetricRegistry.NoopTimer.Context()50%n/a112211
static {...}50%n/a111111
stop()20%n/a111111
close()10%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer.html new file mode 100644 index 0000000000..e3140fddf0 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer.html @@ -0,0 +1 @@ +NoopMetricRegistry.NoopTimer

NoopMetricRegistry.NoopTimer

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total36 of 360%0 of 0n/a141415151414
static {...}100%n/a112211
NoopMetricRegistry.NoopTimer()30%n/a111111
time(Callable)30%n/a111111
timeSupplier(Supplier)30%n/a111111
time()20%n/a111111
getCount()20%n/a111111
getFifteenMinuteRate()20%n/a111111
getFiveMinuteRate()20%n/a111111
getMeanRate()20%n/a111111
getOneMinuteRate()20%n/a111111
getSnapshot()20%n/a111111
update(long, TimeUnit)10%n/a111111
update(Duration)10%n/a111111
time(Runnable)10%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry.html new file mode 100644 index 0000000000..505f4eb590 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry.html @@ -0,0 +1 @@ +NoopMetricRegistry

NoopMetricRegistry

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total71 of 710%2 of 20%333334343232
register(String, Metric)90%20%223311
static {...}60%n/a111111
NoopMetricRegistry()30%n/a111111
buildMap()20%n/a111111
counter(String)20%n/a111111
counter(String, MetricRegistry.MetricSupplier)20%n/a111111
histogram(String)20%n/a111111
histogram(String, MetricRegistry.MetricSupplier)20%n/a111111
meter(String)20%n/a111111
meter(String, MetricRegistry.MetricSupplier)20%n/a111111
timer(String)20%n/a111111
timer(String, MetricRegistry.MetricSupplier)20%n/a111111
gauge(String)20%n/a111111
gauge(String, MetricRegistry.MetricSupplier)20%n/a111111
remove(String)20%n/a111111
getNames()20%n/a111111
getGauges()20%n/a111111
getGauges(MetricFilter)20%n/a111111
getCounters()20%n/a111111
getCounters(MetricFilter)20%n/a111111
getHistograms()20%n/a111111
getHistograms(MetricFilter)20%n/a111111
getMeters()20%n/a111111
getMeters(MetricFilter)20%n/a111111
getTimers()20%n/a111111
getTimers(MetricFilter)20%n/a111111
getMetrics()20%n/a111111
registerAll(MetricSet)10%n/a111111
removeMatching(MetricFilter)10%n/a111111
addListener(MetricRegistryListener)10%n/a111111
removeListener(MetricRegistryListener)10%n/a111111
registerAll(String, MetricSet)10%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry.java.html new file mode 100644 index 0000000000..32280602a0 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry.java.html @@ -0,0 +1,794 @@ +NoopMetricRegistry.java

NoopMetricRegistry.java

package com.codahale.metrics;
+
+import java.io.OutputStream;
+import java.time.Duration;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Map;
+import java.util.Set;
+import java.util.SortedMap;
+import java.util.SortedSet;
+import java.util.concurrent.Callable;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.TimeUnit;
+import java.util.function.Supplier;
+
+/**
+ * A registry of metric instances which never creates or registers any metrics and returns no-op implementations of any metric type.
+ *
+ * @since 4.1.17
+ */
+public final class NoopMetricRegistry extends MetricRegistry {
+    private static final EmptyConcurrentMap<String, Metric> EMPTY_CONCURRENT_MAP = new EmptyConcurrentMap<>();
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    protected ConcurrentMap<String, Metric> buildMap() {
+        return EMPTY_CONCURRENT_MAP;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public <T extends Metric> T register(String name, T metric) throws IllegalArgumentException {
+        if (metric == null) {
+            throw new NullPointerException("metric == null");
+        }
+        return metric;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void registerAll(MetricSet metrics) throws IllegalArgumentException {
+        // NOP
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Counter counter(String name) {
+        return NoopCounter.INSTANCE;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Counter counter(String name, MetricSupplier<Counter> supplier) {
+        return NoopCounter.INSTANCE;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Histogram histogram(String name) {
+        return NoopHistogram.INSTANCE;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Histogram histogram(String name, MetricSupplier<Histogram> supplier) {
+        return NoopHistogram.INSTANCE;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Meter meter(String name) {
+        return NoopMeter.INSTANCE;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Meter meter(String name, MetricSupplier<Meter> supplier) {
+        return NoopMeter.INSTANCE;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Timer timer(String name) {
+        return NoopTimer.INSTANCE;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Timer timer(String name, MetricSupplier<Timer> supplier) {
+        return NoopTimer.INSTANCE;
+    }
+
+    /**
+     * {@inheritDoc}
+     *
+     * @since 4.2
+     */
+    @Override
+    @SuppressWarnings({"rawtypes", "unchecked"})
+    public <T extends Gauge> T gauge(String name) {
+        return (T) NoopGauge.INSTANCE;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    @SuppressWarnings({"rawtypes", "unchecked"})
+    public <T extends Gauge> T gauge(String name, MetricSupplier<T> supplier) {
+        return (T) NoopGauge.INSTANCE;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public boolean remove(String name) {
+        return false;
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void removeMatching(MetricFilter filter) {
+        // NOP
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void addListener(MetricRegistryListener listener) {
+        // NOP
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void removeListener(MetricRegistryListener listener) {
+        // NOP
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public SortedSet<String> getNames() {
+        return Collections.emptySortedSet();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    @SuppressWarnings("rawtypes")
+    public SortedMap<String, Gauge> getGauges() {
+        return Collections.emptySortedMap();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    @SuppressWarnings("rawtypes")
+    public SortedMap<String, Gauge> getGauges(MetricFilter filter) {
+        return Collections.emptySortedMap();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public SortedMap<String, Counter> getCounters() {
+        return Collections.emptySortedMap();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public SortedMap<String, Counter> getCounters(MetricFilter filter) {
+        return Collections.emptySortedMap();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public SortedMap<String, Histogram> getHistograms() {
+        return Collections.emptySortedMap();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public SortedMap<String, Histogram> getHistograms(MetricFilter filter) {
+        return Collections.emptySortedMap();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public SortedMap<String, Meter> getMeters() {
+        return Collections.emptySortedMap();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public SortedMap<String, Meter> getMeters(MetricFilter filter) {
+        return Collections.emptySortedMap();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public SortedMap<String, Timer> getTimers() {
+        return Collections.emptySortedMap();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public SortedMap<String, Timer> getTimers(MetricFilter filter) {
+        return Collections.emptySortedMap();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
+        // NOP
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public Map<String, Metric> getMetrics() {
+        return Collections.emptyMap();
+    }
+
+    static final class NoopGauge<T> implements Gauge<T> {
+        private static final NoopGauge<?> INSTANCE = new NoopGauge<>();
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public T getValue() {
+            return null;
+        }
+    }
+
+    private static final class EmptySnapshot extends Snapshot {
+        private static final EmptySnapshot INSTANCE = new EmptySnapshot();
+        private static final long[] EMPTY_LONG_ARRAY = new long[0];
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public double getValue(double quantile) {
+            return 0D;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public long[] getValues() {
+            return EMPTY_LONG_ARRAY;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public int size() {
+            return 0;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public long getMax() {
+            return 0L;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public double getMean() {
+            return 0D;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public long getMin() {
+            return 0L;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public double getStdDev() {
+            return 0D;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public void dump(OutputStream output) {
+            // NOP
+        }
+    }
+
+    static final class NoopTimer extends Timer {
+        private static final NoopTimer INSTANCE = new NoopTimer();
+        private static final Timer.Context CONTEXT = new NoopTimer.Context();
+
+        private static class Context extends Timer.Context {
+            private static final Clock CLOCK = new Clock() {
+                /**
+                 * {@inheritDoc}
+                 */
+                @Override
+                public long getTick() {
+                    return 0L;
+                }
+
+                /**
+                 * {@inheritDoc}
+                 */
+                @Override
+                public long getTime() {
+                    return 0L;
+                }
+            };
+
+            private Context() {
+                super(INSTANCE, CLOCK);
+            }
+
+            /**
+             * {@inheritDoc}
+             */
+            @Override
+            public long stop() {
+                return 0L;
+            }
+
+            /**
+             * {@inheritDoc}
+             */
+            @Override
+            public void close() {
+                // NOP
+            }
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public void update(long duration, TimeUnit unit) {
+            // NOP
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public void update(Duration duration) {
+            // NOP
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public <T> T time(Callable<T> event) throws Exception {
+            return event.call();
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public <T> T timeSupplier(Supplier<T> event) {
+            return event.get();
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public void time(Runnable event) {
+            // NOP
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public Timer.Context time() {
+            return CONTEXT;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public long getCount() {
+            return 0L;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public double getFifteenMinuteRate() {
+            return 0D;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public double getFiveMinuteRate() {
+            return 0D;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public double getMeanRate() {
+            return 0D;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public double getOneMinuteRate() {
+            return 0D;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public Snapshot getSnapshot() {
+            return EmptySnapshot.INSTANCE;
+        }
+    }
+
+    static final class NoopHistogram extends Histogram {
+        private static final NoopHistogram INSTANCE = new NoopHistogram();
+        private static final Reservoir EMPTY_RESERVOIR = new Reservoir() {
+            /**
+             * {@inheritDoc}
+             */
+            @Override
+            public int size() {
+                return 0;
+            }
+
+            /**
+             * {@inheritDoc}
+             */
+            @Override
+            public void update(long value) {
+                // NOP
+            }
+
+            /**
+             * {@inheritDoc}
+             */
+            @Override
+            public Snapshot getSnapshot() {
+                return EmptySnapshot.INSTANCE;
+            }
+        };
+
+        private NoopHistogram() {
+            super(EMPTY_RESERVOIR);
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public void update(int value) {
+            // NOP
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public void update(long value) {
+            // NOP
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public long getCount() {
+            return 0L;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public Snapshot getSnapshot() {
+            return EmptySnapshot.INSTANCE;
+        }
+    }
+
+    static final class NoopCounter extends Counter {
+        private static final NoopCounter INSTANCE = new NoopCounter();
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public void inc() {
+            // NOP
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public void inc(long n) {
+            // NOP
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public void dec() {
+            // NOP
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public void dec(long n) {
+            // NOP
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public long getCount() {
+            return 0L;
+        }
+    }
+
+    static final class NoopMeter extends Meter {
+        private static final NoopMeter INSTANCE = new NoopMeter();
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public void mark() {
+            // NOP
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public void mark(long n) {
+            // NOP
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public long getCount() {
+            return 0L;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public double getFifteenMinuteRate() {
+            return 0D;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public double getFiveMinuteRate() {
+            return 0D;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public double getMeanRate() {
+            return 0D;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public double getOneMinuteRate() {
+            return 0D;
+        }
+    }
+
+    private static final class EmptyConcurrentMap<K, V> implements ConcurrentMap<K, V> {
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public V putIfAbsent(K key, V value) {
+            return null;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public boolean remove(Object key, Object value) {
+            return false;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public boolean replace(K key, V oldValue, V newValue) {
+            return false;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public V replace(K key, V value) {
+            return null;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public int size() {
+            return 0;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public boolean isEmpty() {
+            return true;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public boolean containsKey(Object key) {
+            return false;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public boolean containsValue(Object value) {
+            return false;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public V get(Object key) {
+            return null;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public V put(K key, V value) {
+            return null;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public V remove(Object key) {
+            return null;
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public void putAll(Map<? extends K, ? extends V> m) {
+            // NOP
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public void clear() {
+            // NOP
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public Set<K> keySet() {
+            return Collections.emptySet();
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public Collection<V> values() {
+            return Collections.emptySet();
+        }
+
+        /**
+         * {@inheritDoc}
+         */
+        @Override
+        public Set<Entry<K, V>> entrySet() {
+            return Collections.emptySet();
+        }
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistryTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistryTest.html new file mode 100644 index 0000000000..0a19e7e346 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistryTest.html @@ -0,0 +1 @@ +NoopMetricRegistryTest

NoopMetricRegistryTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total1,340 of 1,3400%0 of 0n/a54542742745454
addingAListenerWithExistingMetricsDoesNotNotify()840%n/a11131311
removingDeepChildMetricsAfterRegister()650%n/a11161611
addingDeepChildMetricsAfterRegister()590%n/a11141411
removingMultipleChildMetricsAfterRegister()570%n/a11121211
removesMetricsMatchingAFilter()440%n/a119911
hasASetOfRegisteredMetricNames()410%n/a117711
accessingACustomCounterRegistersAndReusesTheCounter()390%n/a118811
accessingACustomHistogramRegistersAndReusesIt()390%n/a118811
accessingACustomMeterRegistersAndReusesIt()390%n/a118811
accessingACustomTimerRegistersAndReusesIt()390%n/a118811
accessingACustomGaugeRegistersAndReusesIt()390%n/a118811
NoopMetricRegistryTest()360%n/a118811
removingChildMetricAfterRegister()360%n/a119911
accessingACounterRegistersAndReusesTheCounter()340%n/a117711
accessingAHistogramRegistersAndReusesIt()340%n/a117711
accessingAMeterRegistersAndReusesIt()340%n/a117711
accessingATimerRegistersAndReusesIt()340%n/a117711
accessingAGaugeRegistersAndReusesIt()340%n/a117711
addingMultipleChildMetricsAfterRegister()340%n/a119911
aRemovedListenerDoesNotReceiveUpdates()290%n/a115511
addingChildMetricAfterRegister()260%n/a117711
registeringAGaugeTriggersNoNotification()220%n/a113311
removingAGaugeTriggersNoNotification()220%n/a114411
registeringACounterTriggersNoNotification()220%n/a113311
removingACounterTriggersNoNotification()220%n/a114411
registeringAHistogramTriggersNoNotification()220%n/a113311
removingAHistogramTriggersNoNotification()220%n/a114411
registeringAMeterTriggersNoNotification()220%n/a113311
removingAMeterTriggersNoNotification()220%n/a114411
registeringATimerTriggersNoNotification()220%n/a113311
removingATimerTriggersNoNotification()220%n/a114411
doesNotRegisterMetricsFromAnotherRegistry()220%n/a115511
doesNotRegisterRecursiveMetricSets()190%n/a115511
lambda$doesNotRegisterMultipleMetricsWithAPrefix$7()180%n/a114411
lambda$doesNotRegisterMultipleMetrics$6()180%n/a114411
lambda$doesNotRegisterRecursiveMetricSets$9(MetricSet)170%n/a114411
doesNotRegisterMultipleMetricsWithAPrefix()150%n/a114411
hasAMapOfRegisteredGauges()130%n/a113311
hasAMapOfRegisteredCounters()130%n/a113311
hasAMapOfRegisteredHistograms()130%n/a113311
hasAMapOfRegisteredMeters()130%n/a113311
hasAMapOfRegisteredTimers()130%n/a113311
doesNotRegisterMultipleMetrics()130%n/a114411
registerNullMetric()120%n/a115511
lambda$doesNotRegisterRecursiveMetricSets$8()120%n/a113311
setUp()60%n/a112211
lambda$registerNullMetric$11(MetricRegistry)60%n/a111111
lambda$removesMetricsMatchingAFilter$10(String, Metric)40%n/a111111
lambda$accessingACustomGaugeRegistersAndReusesIt$5()30%n/a111111
lambda$accessingACustomTimerRegistersAndReusesIt$4()30%n/a111111
lambda$accessingACustomMeterRegistersAndReusesIt$3()30%n/a111111
lambda$accessingACustomHistogramRegistersAndReusesIt$2()30%n/a111111
lambda$accessingACustomCounterRegistersAndReusesTheCounter$1()30%n/a111111
lambda$new$0()20%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistryTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistryTest.java.html new file mode 100644 index 0000000000..9252808e32 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistryTest.java.html @@ -0,0 +1,496 @@ +NoopMetricRegistryTest.java

NoopMetricRegistryTest.java

package com.codahale.metrics;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.assertThatNullPointerException;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.verify;
+
+public class NoopMetricRegistryTest {
+    private final MetricRegistryListener listener = mock(MetricRegistryListener.class);
+    private final NoopMetricRegistry registry = new NoopMetricRegistry();
+    private final Gauge<String> gauge = () -> "";
+    private final Counter counter = mock(Counter.class);
+    private final Histogram histogram = mock(Histogram.class);
+    private final Meter meter = mock(Meter.class);
+    private final Timer timer = mock(Timer.class);
+
+    @Before
+    public void setUp() {
+        registry.addListener(listener);
+    }
+
+    @Test
+    public void registeringAGaugeTriggersNoNotification() {
+        assertThat(registry.register("thing", gauge)).isEqualTo(gauge);
+
+        verify(listener, never()).onGaugeAdded("thing", gauge);
+    }
+
+    @Test
+    public void removingAGaugeTriggersNoNotification() {
+        registry.register("thing", gauge);
+
+        assertThat(registry.remove("thing")).isFalse();
+
+        verify(listener, never()).onGaugeRemoved("thing");
+    }
+
+    @Test
+    public void registeringACounterTriggersNoNotification() {
+        assertThat(registry.register("thing", counter)).isEqualTo(counter);
+
+        verify(listener, never()).onCounterAdded("thing", counter);
+    }
+
+    @Test
+    public void accessingACounterRegistersAndReusesTheCounter() {
+        final Counter counter1 = registry.counter("thing");
+        final Counter counter2 = registry.counter("thing");
+
+        assertThat(counter1).isExactlyInstanceOf(NoopMetricRegistry.NoopCounter.class);
+        assertThat(counter2).isExactlyInstanceOf(NoopMetricRegistry.NoopCounter.class);
+        assertThat(counter1).isSameAs(counter2);
+
+        verify(listener, never()).onCounterAdded("thing", counter1);
+    }
+
+    @Test
+    public void accessingACustomCounterRegistersAndReusesTheCounter() {
+        final MetricRegistry.MetricSupplier<Counter> supplier = () -> counter;
+        final Counter counter1 = registry.counter("thing", supplier);
+        final Counter counter2 = registry.counter("thing", supplier);
+
+        assertThat(counter1).isExactlyInstanceOf(NoopMetricRegistry.NoopCounter.class);
+        assertThat(counter2).isExactlyInstanceOf(NoopMetricRegistry.NoopCounter.class);
+        assertThat(counter1).isSameAs(counter2);
+
+        verify(listener, never()).onCounterAdded("thing", counter1);
+    }
+
+
+    @Test
+    public void removingACounterTriggersNoNotification() {
+        registry.register("thing", counter);
+
+        assertThat(registry.remove("thing")).isFalse();
+
+        verify(listener, never()).onCounterRemoved("thing");
+    }
+
+    @Test
+    public void registeringAHistogramTriggersNoNotification() {
+        assertThat(registry.register("thing", histogram)).isEqualTo(histogram);
+
+        verify(listener, never()).onHistogramAdded("thing", histogram);
+    }
+
+    @Test
+    public void accessingAHistogramRegistersAndReusesIt() {
+        final Histogram histogram1 = registry.histogram("thing");
+        final Histogram histogram2 = registry.histogram("thing");
+
+        assertThat(histogram1).isExactlyInstanceOf(NoopMetricRegistry.NoopHistogram.class);
+        assertThat(histogram2).isExactlyInstanceOf(NoopMetricRegistry.NoopHistogram.class);
+        assertThat(histogram1).isSameAs(histogram2);
+
+        verify(listener, never()).onHistogramAdded("thing", histogram1);
+    }
+
+    @Test
+    public void accessingACustomHistogramRegistersAndReusesIt() {
+        final MetricRegistry.MetricSupplier<Histogram> supplier = () -> histogram;
+        final Histogram histogram1 = registry.histogram("thing", supplier);
+        final Histogram histogram2 = registry.histogram("thing", supplier);
+
+        assertThat(histogram1).isExactlyInstanceOf(NoopMetricRegistry.NoopHistogram.class);
+        assertThat(histogram2).isExactlyInstanceOf(NoopMetricRegistry.NoopHistogram.class);
+        assertThat(histogram1).isSameAs(histogram2);
+
+        verify(listener, never()).onHistogramAdded("thing", histogram1);
+    }
+
+    @Test
+    public void removingAHistogramTriggersNoNotification() {
+        registry.register("thing", histogram);
+
+        assertThat(registry.remove("thing")).isFalse();
+
+        verify(listener, never()).onHistogramRemoved("thing");
+    }
+
+    @Test
+    public void registeringAMeterTriggersNoNotification() {
+        assertThat(registry.register("thing", meter)).isEqualTo(meter);
+
+        verify(listener, never()).onMeterAdded("thing", meter);
+    }
+
+    @Test
+    public void accessingAMeterRegistersAndReusesIt() {
+        final Meter meter1 = registry.meter("thing");
+        final Meter meter2 = registry.meter("thing");
+
+        assertThat(meter1).isExactlyInstanceOf(NoopMetricRegistry.NoopMeter.class);
+        assertThat(meter2).isExactlyInstanceOf(NoopMetricRegistry.NoopMeter.class);
+        assertThat(meter1).isSameAs(meter2);
+
+        verify(listener, never()).onMeterAdded("thing", meter1);
+    }
+
+    @Test
+    public void accessingACustomMeterRegistersAndReusesIt() {
+        final MetricRegistry.MetricSupplier<Meter> supplier = () -> meter;
+        final Meter meter1 = registry.meter("thing", supplier);
+        final Meter meter2 = registry.meter("thing", supplier);
+
+        assertThat(meter1).isExactlyInstanceOf(NoopMetricRegistry.NoopMeter.class);
+        assertThat(meter2).isExactlyInstanceOf(NoopMetricRegistry.NoopMeter.class);
+        assertThat(meter1).isSameAs(meter2);
+
+        verify(listener, never()).onMeterAdded("thing", meter1);
+    }
+
+    @Test
+    public void removingAMeterTriggersNoNotification() {
+        registry.register("thing", meter);
+
+        assertThat(registry.remove("thing")).isFalse();
+
+        verify(listener, never()).onMeterRemoved("thing");
+    }
+
+    @Test
+    public void registeringATimerTriggersNoNotification() {
+        assertThat(registry.register("thing", timer)).isEqualTo(timer);
+
+        verify(listener, never()).onTimerAdded("thing", timer);
+    }
+
+    @Test
+    public void accessingATimerRegistersAndReusesIt() {
+        final Timer timer1 = registry.timer("thing");
+        final Timer timer2 = registry.timer("thing");
+
+        assertThat(timer1).isExactlyInstanceOf(NoopMetricRegistry.NoopTimer.class);
+        assertThat(timer2).isExactlyInstanceOf(NoopMetricRegistry.NoopTimer.class);
+        assertThat(timer1).isSameAs(timer2);
+
+        verify(listener, never()).onTimerAdded("thing", timer1);
+    }
+
+    @Test
+    public void accessingACustomTimerRegistersAndReusesIt() {
+        final MetricRegistry.MetricSupplier<Timer> supplier = () -> timer;
+        final Timer timer1 = registry.timer("thing", supplier);
+        final Timer timer2 = registry.timer("thing", supplier);
+
+        assertThat(timer1).isExactlyInstanceOf(NoopMetricRegistry.NoopTimer.class);
+        assertThat(timer2).isExactlyInstanceOf(NoopMetricRegistry.NoopTimer.class);
+        assertThat(timer1).isSameAs(timer2);
+
+        verify(listener, never()).onTimerAdded("thing", timer1);
+    }
+
+
+    @Test
+    public void removingATimerTriggersNoNotification() {
+        registry.register("thing", timer);
+
+        assertThat(registry.remove("thing")).isFalse();
+
+        verify(listener, never()).onTimerRemoved("thing");
+    }
+
+    @Test
+    public void accessingAGaugeRegistersAndReusesIt() {
+        final Gauge<Void> gauge1 = registry.gauge("thing");
+        final Gauge<Void> gauge2 = registry.gauge("thing");
+
+        assertThat(gauge1).isExactlyInstanceOf(NoopMetricRegistry.NoopGauge.class);
+        assertThat(gauge2).isExactlyInstanceOf(NoopMetricRegistry.NoopGauge.class);
+        assertThat(gauge1).isSameAs(gauge2);
+
+        verify(listener, never()).onGaugeAdded("thing", gauge1);
+    }
+
+    @Test
+    @SuppressWarnings("rawtypes")
+    public void accessingACustomGaugeRegistersAndReusesIt() {
+        final MetricRegistry.MetricSupplier<Gauge> supplier = () -> gauge;
+        final Gauge gauge1 = registry.gauge("thing", supplier);
+        final Gauge gauge2 = registry.gauge("thing", supplier);
+
+        assertThat(gauge1).isExactlyInstanceOf(NoopMetricRegistry.NoopGauge.class);
+        assertThat(gauge2).isExactlyInstanceOf(NoopMetricRegistry.NoopGauge.class);
+        assertThat(gauge1).isSameAs(gauge2);
+
+        verify(listener, never()).onGaugeAdded("thing", gauge1);
+    }
+
+
+    @Test
+    public void addingAListenerWithExistingMetricsDoesNotNotify() {
+        registry.register("gauge", gauge);
+        registry.register("counter", counter);
+        registry.register("histogram", histogram);
+        registry.register("meter", meter);
+        registry.register("timer", timer);
+
+        final MetricRegistryListener other = mock(MetricRegistryListener.class);
+        registry.addListener(other);
+
+        verify(other, never()).onGaugeAdded("gauge", gauge);
+        verify(other, never()).onCounterAdded("counter", counter);
+        verify(other, never()).onHistogramAdded("histogram", histogram);
+        verify(other, never()).onMeterAdded("meter", meter);
+        verify(other, never()).onTimerAdded("timer", timer);
+    }
+
+    @Test
+    public void aRemovedListenerDoesNotReceiveUpdates() {
+        registry.register("gauge", gauge);
+        registry.removeListener(listener);
+        registry.register("gauge2", gauge);
+
+        verify(listener, never()).onGaugeAdded("gauge2", gauge);
+    }
+
+    @Test
+    public void hasAMapOfRegisteredGauges() {
+        registry.register("gauge", gauge);
+
+        assertThat(registry.getGauges()).isEmpty();
+    }
+
+    @Test
+    public void hasAMapOfRegisteredCounters() {
+        registry.register("counter", counter);
+
+        assertThat(registry.getCounters()).isEmpty();
+    }
+
+    @Test
+    public void hasAMapOfRegisteredHistograms() {
+        registry.register("histogram", histogram);
+
+        assertThat(registry.getHistograms()).isEmpty();
+    }
+
+    @Test
+    public void hasAMapOfRegisteredMeters() {
+        registry.register("meter", meter);
+
+        assertThat(registry.getMeters()).isEmpty();
+    }
+
+    @Test
+    public void hasAMapOfRegisteredTimers() {
+        registry.register("timer", timer);
+
+        assertThat(registry.getTimers()).isEmpty();
+    }
+
+    @Test
+    public void hasASetOfRegisteredMetricNames() {
+        registry.register("gauge", gauge);
+        registry.register("counter", counter);
+        registry.register("histogram", histogram);
+        registry.register("meter", meter);
+        registry.register("timer", timer);
+
+        assertThat(registry.getNames()).isEmpty();
+    }
+
+    @Test
+    public void doesNotRegisterMultipleMetrics() {
+        final MetricSet metrics = () -> {
+            final Map<String, Metric> m = new HashMap<>();
+            m.put("gauge", gauge);
+            m.put("counter", counter);
+            return m;
+        };
+
+        registry.registerAll(metrics);
+
+        assertThat(registry.getNames()).isEmpty();
+    }
+
+    @Test
+    public void doesNotRegisterMultipleMetricsWithAPrefix() {
+        final MetricSet metrics = () -> {
+            final Map<String, Metric> m = new HashMap<>();
+            m.put("gauge", gauge);
+            m.put("counter", counter);
+            return m;
+        };
+
+        registry.register("my", metrics);
+
+        assertThat(registry.getNames()).isEmpty();
+    }
+
+    @Test
+    public void doesNotRegisterRecursiveMetricSets() {
+        final MetricSet inner = () -> {
+            final Map<String, Metric> m = new HashMap<>();
+            m.put("gauge", gauge);
+            return m;
+        };
+
+        final MetricSet outer = () -> {
+            final Map<String, Metric> m = new HashMap<>();
+            m.put("inner", inner);
+            m.put("counter", counter);
+            return m;
+        };
+
+        registry.register("my", outer);
+
+        assertThat(registry.getNames()).isEmpty();
+    }
+
+    @Test
+    public void doesNotRegisterMetricsFromAnotherRegistry() {
+        MetricRegistry other = new MetricRegistry();
+        other.register("gauge", gauge);
+        registry.register("nested", other);
+        assertThat(registry.getNames()).isEmpty();
+    }
+
+    @Test
+    public void removesMetricsMatchingAFilter() {
+        registry.timer("timer-1");
+        registry.timer("timer-2");
+        registry.histogram("histogram-1");
+
+        assertThat(registry.getNames()).isEmpty();
+
+        registry.removeMatching((name, metric) -> name.endsWith("1"));
+
+        assertThat(registry.getNames()).isEmpty();
+
+        verify(listener, never()).onTimerRemoved("timer-1");
+        verify(listener, never()).onHistogramRemoved("histogram-1");
+    }
+
+    @Test
+    public void addingChildMetricAfterRegister() {
+        MetricRegistry parent = new NoopMetricRegistry();
+        MetricRegistry child = new MetricRegistry();
+
+        child.counter("test-1");
+        parent.register("child", child);
+        child.counter("test-2");
+
+        assertThat(parent.getMetrics()).isEmpty();
+    }
+
+    @Test
+    public void addingMultipleChildMetricsAfterRegister() {
+        MetricRegistry parent = new NoopMetricRegistry();
+        MetricRegistry child = new MetricRegistry();
+
+        child.counter("test-1");
+        child.counter("test-2");
+        parent.register("child", child);
+        child.counter("test-3");
+        child.counter("test-4");
+
+        assertThat(parent.getMetrics()).isEmpty();
+    }
+
+    @Test
+    public void addingDeepChildMetricsAfterRegister() {
+        MetricRegistry parent = new NoopMetricRegistry();
+        MetricRegistry child = new MetricRegistry();
+        MetricRegistry deepChild = new MetricRegistry();
+
+        deepChild.counter("test-1");
+        child.register("deep-child", deepChild);
+        deepChild.counter("test-2");
+
+        child.counter("test-3");
+        parent.register("child", child);
+        child.counter("test-4");
+
+        deepChild.counter("test-5");
+
+        assertThat(parent.getMetrics()).isEmpty();
+        assertThat(deepChild.getMetrics()).hasSize(3);
+        assertThat(child.getMetrics()).hasSize(5);
+    }
+
+    @Test
+    public void removingChildMetricAfterRegister() {
+        MetricRegistry parent = new NoopMetricRegistry();
+        MetricRegistry child = new MetricRegistry();
+
+        child.counter("test-1");
+        parent.register("child", child);
+        child.counter("test-2");
+
+        child.remove("test-1");
+
+        assertThat(parent.getMetrics()).isEmpty();
+        assertThat(child.getMetrics()).doesNotContainKey("test-1");
+    }
+
+    @Test
+    public void removingMultipleChildMetricsAfterRegister() {
+        MetricRegistry parent = new NoopMetricRegistry();
+        MetricRegistry child = new MetricRegistry();
+
+        child.counter("test-1");
+        child.counter("test-2");
+        parent.register("child", child);
+        child.counter("test-3");
+        child.counter("test-4");
+
+        child.remove("test-1");
+        child.remove("test-3");
+
+        assertThat(parent.getMetrics()).isEmpty();
+        assertThat(child.getMetrics()).doesNotContainKeys("test-1", "test-3");
+    }
+
+    @Test
+    public void removingDeepChildMetricsAfterRegister() {
+        MetricRegistry parent = new NoopMetricRegistry();
+        MetricRegistry child = new MetricRegistry();
+        MetricRegistry deepChild = new MetricRegistry();
+
+        deepChild.counter("test-1");
+        child.register("deep-child", deepChild);
+        deepChild.counter("test-2");
+
+        child.counter("test-3");
+        parent.register("child", child);
+        child.counter("test-4");
+
+        deepChild.remove("test-2");
+
+        Set<String> childMetrics = child.getMetrics().keySet();
+        Set<String> deepChildMetrics = deepChild.getMetrics().keySet();
+
+        assertThat(parent.getMetrics()).isEmpty();
+        assertThat(deepChildMetrics).hasSize(1);
+        assertThat(childMetrics).hasSize(3);
+    }
+
+    @Test
+    public void registerNullMetric() {
+        MetricRegistry registry = new NoopMetricRegistry();
+        assertThatNullPointerException()
+                .isThrownBy(() -> registry.register("any_name", null))
+                .withMessage("metric == null");
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge$Ratio.html b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge$Ratio.html new file mode 100644 index 0000000000..e904636175 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge$Ratio.html @@ -0,0 +1 @@ +RatioGauge.Ratio

RatioGauge.Ratio

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total48 of 480%6 of 60%77101044
getValue()200%60%444411
toString()130%n/a111111
RatioGauge.Ratio(double, double)90%n/a114411
of(double, double)60%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge.html b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge.html new file mode 100644 index 0000000000..cf5bb8ab5e --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge.html @@ -0,0 +1 @@ +RatioGauge

RatioGauge

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total8 of 80%0 of 0n/a222222
getValue()50%n/a111111
RatioGauge()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge.java.html new file mode 100644 index 0000000000..091e60f92b --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge.java.html @@ -0,0 +1,67 @@ +RatioGauge.java

RatioGauge.java

package com.codahale.metrics;
+
+import static java.lang.Double.isInfinite;
+import static java.lang.Double.isNaN;
+
+/**
+ * A gauge which measures the ratio of one value to another.
+ * <p>
+ * If the denominator is zero, not a number, or infinite, the resulting ratio is not a number.
+ */
+public abstract class RatioGauge implements Gauge<Double> {
+    /**
+     * A ratio of one quantity to another.
+     */
+    public static class Ratio {
+        /**
+         * Creates a new ratio with the given numerator and denominator.
+         *
+         * @param numerator   the numerator of the ratio
+         * @param denominator the denominator of the ratio
+         * @return {@code numerator:denominator}
+         */
+        public static Ratio of(double numerator, double denominator) {
+            return new Ratio(numerator, denominator);
+        }
+
+        private final double numerator;
+        private final double denominator;
+
+        private Ratio(double numerator, double denominator) {
+            this.numerator = numerator;
+            this.denominator = denominator;
+        }
+
+        /**
+         * Returns the ratio, which is either a {@code double} between 0 and 1 (inclusive) or
+         * {@code NaN}.
+         *
+         * @return the ratio
+         */
+        public double getValue() {
+            final double d = denominator;
+            if (isNaN(d) || isInfinite(d) || d == 0) {
+                return Double.NaN;
+            }
+            return numerator / d;
+        }
+
+        @Override
+        public String toString() {
+            return numerator + ":" + denominator;
+        }
+    }
+
+    /**
+     * Returns the {@link Ratio} which is the gauge's current value.
+     *
+     * @return the {@link Ratio} which is the gauge's current value
+     */
+    protected abstract Ratio getRatio();
+
+    @Override
+    public Double getValue() {
+        return getRatio().getValue();
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$1.html new file mode 100644 index 0000000000..c51c3f2c10 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$1.html @@ -0,0 +1 @@ +RatioGaugeTest.new RatioGauge() {...}

RatioGaugeTest.new RatioGauge() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total10 of 100%0 of 0n/a222222
{...}60%n/a111111
getRatio()40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$2.html b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$2.html new file mode 100644 index 0000000000..e1f0b3d224 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$2.html @@ -0,0 +1 @@ +RatioGaugeTest.new RatioGauge() {...}

RatioGaugeTest.new RatioGauge() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total10 of 100%0 of 0n/a222222
{...}60%n/a111111
getRatio()40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$3.html b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$3.html new file mode 100644 index 0000000000..f6f7720e4e --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$3.html @@ -0,0 +1 @@ +RatioGaugeTest.new RatioGauge() {...}

RatioGaugeTest.new RatioGauge() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total10 of 100%0 of 0n/a222222
{...}60%n/a111111
getRatio()40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$4.html b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$4.html new file mode 100644 index 0000000000..018c998c8e --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$4.html @@ -0,0 +1 @@ +RatioGaugeTest.new RatioGauge() {...}

RatioGaugeTest.new RatioGauge() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total10 of 100%0 of 0n/a222222
{...}60%n/a111111
getRatio()40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest.html new file mode 100644 index 0000000000..2ed8423f61 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest.html @@ -0,0 +1 @@ +RatioGaugeTest

RatioGaugeTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total59 of 590%0 of 0n/a66212166
calculatesTheRatioOfTheNumeratorToTheDenominator()120%n/a114411
ratiosAreHumanReadable()110%n/a114411
handlesDivideByZeroIssues()110%n/a114411
handlesInfiniteDenominators()110%n/a114411
handlesNaNDenominators()110%n/a114411
RatioGaugeTest()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest.java.html new file mode 100644 index 0000000000..89dc3d8068 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest.java.html @@ -0,0 +1,68 @@ +RatioGaugeTest.java

RatioGaugeTest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class RatioGaugeTest {
+    @Test
+    public void ratiosAreHumanReadable() {
+        final RatioGauge.Ratio ratio = RatioGauge.Ratio.of(100, 200);
+
+        assertThat(ratio.toString())
+                .isEqualTo("100.0:200.0");
+    }
+
+    @Test
+    public void calculatesTheRatioOfTheNumeratorToTheDenominator() {
+        final RatioGauge regular = new RatioGauge() {
+            @Override
+            protected Ratio getRatio() {
+                return RatioGauge.Ratio.of(2, 4);
+            }
+        };
+
+        assertThat(regular.getValue())
+                .isEqualTo(0.5);
+    }
+
+    @Test
+    public void handlesDivideByZeroIssues() {
+        final RatioGauge divByZero = new RatioGauge() {
+            @Override
+            protected Ratio getRatio() {
+                return Ratio.of(100, 0);
+            }
+        };
+
+        assertThat(divByZero.getValue())
+                .isNaN();
+    }
+
+    @Test
+    public void handlesInfiniteDenominators() {
+        final RatioGauge infinite = new RatioGauge() {
+            @Override
+            protected Ratio getRatio() {
+                return Ratio.of(10, Double.POSITIVE_INFINITY);
+            }
+        };
+
+        assertThat(infinite.getValue())
+                .isNaN();
+    }
+
+    @Test
+    public void handlesNaNDenominators() {
+        final RatioGauge nan = new RatioGauge() {
+            @Override
+            protected Ratio getRatio() {
+                return Ratio.of(10, Double.NaN);
+            }
+        };
+
+        assertThat(nan.getValue())
+                .isNaN();
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter$NamedThreadFactory.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter$NamedThreadFactory.html new file mode 100644 index 0000000000..fcbfa28071 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter$NamedThreadFactory.html @@ -0,0 +1 @@ +ScheduledReporter.NamedThreadFactory

ScheduledReporter.NamedThreadFactory

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total63 of 630%4 of 40%44111122
ScheduledReporter.NamedThreadFactory(String)320%20%226611
newThread(Runnable)310%20%225511
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter.html new file mode 100644 index 0000000000..843cf54f15 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter.html @@ -0,0 +1 @@ +ScheduledReporter

ScheduledReporter

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total308 of 3080%20 of 200%333379792323
ScheduledReporter(MetricRegistry, String, MetricFilter, TimeUnit, TimeUnit, ScheduledExecutorService, boolean, Set)550%60%44141411
stop()480%80%55171711
report()350%n/a118811
start(long, long, TimeUnit, Runnable)170%20%224411
createDefaultExecutor(String)170%n/a111111
cancelScheduledFuture()150%40%336611
calculateRateUnit(TimeUnit)130%n/a112211
lambda$start$0()120%n/a115511
ScheduledReporter(MetricRegistry, String, MetricFilter, TimeUnit, TimeUnit, ScheduledExecutorService, boolean)110%n/a112211
ScheduledReporter(MetricRegistry, String, MetricFilter, TimeUnit, TimeUnit)100%n/a112211
ScheduledReporter(MetricRegistry, String, MetricFilter, TimeUnit, TimeUnit, ScheduledExecutorService)100%n/a112211
getScheduledFuture(long, long, TimeUnit, Runnable)90%n/a111111
start(long, long, TimeUnit)80%n/a112211
static {...}80%n/a112211
getScheduledFuture(long, long, TimeUnit, Runnable, ScheduledExecutorService)70%n/a111111
start(long, TimeUnit)60%n/a112211
convertDuration(double)60%n/a111111
convertRate(double)60%n/a111111
close()30%n/a112211
getRateUnit()30%n/a111111
getDurationUnit()30%n/a111111
isShutdownExecutorOnStop()30%n/a111111
getDisabledMetricAttributes()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter.java.html new file mode 100644 index 0000000000..96367838e8 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter.java.html @@ -0,0 +1,335 @@ +ScheduledReporter.java

ScheduledReporter.java

package com.codahale.metrics;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.Closeable;
+import java.util.Collections;
+import java.util.Locale;
+import java.util.Set;
+import java.util.SortedMap;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * The abstract base class for all scheduled reporters (i.e., reporters which process a registry's
+ * metrics periodically).
+ *
+ * @see ConsoleReporter
+ * @see CsvReporter
+ * @see Slf4jReporter
+ */
+public abstract class ScheduledReporter implements Closeable, Reporter {
+
+    private static final Logger LOG = LoggerFactory.getLogger(ScheduledReporter.class);
+
+    /**
+     * A simple named thread factory.
+     */
+    @SuppressWarnings("NullableProblems")
+    private static class NamedThreadFactory implements ThreadFactory {
+        private final ThreadGroup group;
+        private final AtomicInteger threadNumber = new AtomicInteger(1);
+        private final String namePrefix;
+
+        private NamedThreadFactory(String name) {
+            final SecurityManager s = System.getSecurityManager();
+            this.group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();
+            this.namePrefix = "metrics-" + name + "-thread-";
+        }
+
+        @Override
+        public Thread newThread(Runnable r) {
+            final Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);
+            t.setDaemon(true);
+            if (t.getPriority() != Thread.NORM_PRIORITY) {
+                t.setPriority(Thread.NORM_PRIORITY);
+            }
+            return t;
+        }
+    }
+
+    private static final AtomicInteger FACTORY_ID = new AtomicInteger();
+
+    private final MetricRegistry registry;
+    private final ScheduledExecutorService executor;
+    private final boolean shutdownExecutorOnStop;
+    private final Set<MetricAttribute> disabledMetricAttributes;
+    private ScheduledFuture<?> scheduledFuture;
+    private final MetricFilter filter;
+    private final long durationFactor;
+    private final String durationUnit;
+    private final long rateFactor;
+    private final String rateUnit;
+
+    /**
+     * Creates a new {@link ScheduledReporter} instance.
+     *
+     * @param registry     the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
+     *                     reporter will report
+     * @param name         the reporter's name
+     * @param filter       the filter for which metrics to report
+     * @param rateUnit     a unit of time
+     * @param durationUnit a unit of time
+     */
+    protected ScheduledReporter(MetricRegistry registry,
+                                String name,
+                                MetricFilter filter,
+                                TimeUnit rateUnit,
+                                TimeUnit durationUnit) {
+        this(registry, name, filter, rateUnit, durationUnit, createDefaultExecutor(name));
+    }
+
+    /**
+     * Creates a new {@link ScheduledReporter} instance.
+     *
+     * @param registry the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
+     *                 reporter will report
+     * @param name     the reporter's name
+     * @param filter   the filter for which metrics to report
+     * @param executor the executor to use while scheduling reporting of metrics.
+     */
+    protected ScheduledReporter(MetricRegistry registry,
+                                String name,
+                                MetricFilter filter,
+                                TimeUnit rateUnit,
+                                TimeUnit durationUnit,
+                                ScheduledExecutorService executor) {
+        this(registry, name, filter, rateUnit, durationUnit, executor, true);
+    }
+
+    /**
+     * Creates a new {@link ScheduledReporter} instance.
+     *
+     * @param registry               the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
+     *                               reporter will report
+     * @param name                   the reporter's name
+     * @param filter                 the filter for which metrics to report
+     * @param executor               the executor to use while scheduling reporting of metrics.
+     * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
+     */
+    protected ScheduledReporter(MetricRegistry registry,
+                                String name,
+                                MetricFilter filter,
+                                TimeUnit rateUnit,
+                                TimeUnit durationUnit,
+                                ScheduledExecutorService executor,
+                                boolean shutdownExecutorOnStop) {
+        this(registry, name, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, Collections.emptySet());
+    }
+
+    protected ScheduledReporter(MetricRegistry registry,
+                                String name,
+                                MetricFilter filter,
+                                TimeUnit rateUnit,
+                                TimeUnit durationUnit,
+                                ScheduledExecutorService executor,
+                                boolean shutdownExecutorOnStop,
+                                Set<MetricAttribute> disabledMetricAttributes) {
+
+        if (registry == null) {
+            throw new NullPointerException("registry == null");
+        }
+
+        this.registry = registry;
+        this.filter = filter;
+        this.executor = executor == null ? createDefaultExecutor(name) : executor;
+        this.shutdownExecutorOnStop = shutdownExecutorOnStop;
+        this.rateFactor = rateUnit.toSeconds(1);
+        this.rateUnit = calculateRateUnit(rateUnit);
+        this.durationFactor = durationUnit.toNanos(1);
+        this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);
+        this.disabledMetricAttributes = disabledMetricAttributes != null ? disabledMetricAttributes :
+                Collections.emptySet();
+    }
+
+    /**
+     * Starts the reporter polling at the given period.
+     *
+     * @param period the amount of time between polls
+     * @param unit   the unit for {@code period}
+     */
+    public void start(long period, TimeUnit unit) {
+        start(period, period, unit);
+    }
+
+    /**
+     * Starts the reporter polling at the given period with the specific runnable action.
+     * Visible only for testing.
+     */
+    synchronized void start(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
+        if (this.scheduledFuture != null) {
+            throw new IllegalArgumentException("Reporter already started");
+        }
+
+        this.scheduledFuture = getScheduledFuture(initialDelay, period, unit, runnable);
+    }
+
+
+    /**
+     * Schedule the task, and return a future.
+     *
+     * @deprecated Use {@link #getScheduledFuture(long, long, TimeUnit, Runnable, ScheduledExecutorService)} instead.
+     */
+    @SuppressWarnings("DeprecatedIsStillUsed")
+    @Deprecated
+    protected ScheduledFuture<?> getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
+        return getScheduledFuture(initialDelay, period, unit, runnable, this.executor);
+    }
+
+    /**
+     * Schedule the task, and return a future.
+     * The current implementation uses scheduleWithFixedDelay, replacing scheduleWithFixedRate. This avoids queueing issues, but may
+     * cause some reporters to skip metrics, as scheduleWithFixedDelay introduces a growing delta from the original start point.
+     *
+     * Overriding this in a subclass to revert to the old behavior is permitted.
+     */
+    protected ScheduledFuture<?> getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable, ScheduledExecutorService executor) {
+        return executor.scheduleWithFixedDelay(runnable, initialDelay, period, unit);
+    }
+
+    /**
+     * Starts the reporter polling at the given period.
+     *
+     * @param initialDelay the time to delay the first execution
+     * @param period       the amount of time between polls
+     * @param unit         the unit for {@code period} and {@code initialDelay}
+     */
+    synchronized public void start(long initialDelay, long period, TimeUnit unit) {
+        start(initialDelay, period, unit, () -> {
+            try {
+                report();
+            } catch (Throwable ex) {
+                LOG.error("Exception thrown from {}#report. Exception was suppressed.", ScheduledReporter.this.getClass().getSimpleName(), ex);
+            }
+        });
+    }
+
+    /**
+     * Stops the reporter and if shutdownExecutorOnStop is true then shuts down its thread of execution.
+     * <p>
+     * Uses the shutdown pattern from http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html
+     */
+    public void stop() {
+        if (shutdownExecutorOnStop) {
+            executor.shutdown(); // Disable new tasks from being submitted
+        }
+
+        try {
+            report(); // Report metrics one last time
+        } catch (Exception e) {
+            LOG.warn("Final reporting of metrics failed.", e);
+        }
+
+        if (shutdownExecutorOnStop) {
+            try {
+                // Wait a while for existing tasks to terminate
+                if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {
+                    executor.shutdownNow(); // Cancel currently executing tasks
+                    // Wait a while for tasks to respond to being cancelled
+                    if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {
+                        LOG.warn("ScheduledExecutorService did not terminate.");
+                    }
+                }
+            } catch (InterruptedException ie) {
+                // (Re-)Cancel if current thread also interrupted
+                executor.shutdownNow();
+                // Preserve interrupt status
+                Thread.currentThread().interrupt();
+            }
+        } else {
+            // The external manager (like JEE container) responsible for lifecycle of executor
+            cancelScheduledFuture();
+        }
+    }
+
+    private synchronized void cancelScheduledFuture() {
+        if (this.scheduledFuture == null) {
+            // was never started
+            return;
+        }
+        if (this.scheduledFuture.isCancelled()) {
+            // already cancelled
+            return;
+        }
+        // just cancel the scheduledFuture and exit
+        this.scheduledFuture.cancel(false);
+    }
+
+    /**
+     * Stops the reporter and shuts down its thread of execution.
+     */
+    @Override
+    public void close() {
+        stop();
+    }
+
+    /**
+     * Report the current values of all metrics in the registry.
+     */
+    public void report() {
+        synchronized (this) {
+            report(registry.getGauges(filter),
+                    registry.getCounters(filter),
+                    registry.getHistograms(filter),
+                    registry.getMeters(filter),
+                    registry.getTimers(filter));
+        }
+    }
+
+    /**
+     * Called periodically by the polling thread. Subclasses should report all the given metrics.
+     *
+     * @param gauges     all of the gauges in the registry
+     * @param counters   all of the counters in the registry
+     * @param histograms all of the histograms in the registry
+     * @param meters     all of the meters in the registry
+     * @param timers     all of the timers in the registry
+     */
+    @SuppressWarnings("rawtypes")
+    public abstract void report(SortedMap<String, Gauge> gauges,
+                                SortedMap<String, Counter> counters,
+                                SortedMap<String, Histogram> histograms,
+                                SortedMap<String, Meter> meters,
+                                SortedMap<String, Timer> timers);
+
+    protected String getRateUnit() {
+        return rateUnit;
+    }
+
+    protected String getDurationUnit() {
+        return durationUnit;
+    }
+
+    protected double convertDuration(double duration) {
+        return duration / durationFactor;
+    }
+
+    protected double convertRate(double rate) {
+        return rate * rateFactor;
+    }
+
+    protected boolean isShutdownExecutorOnStop() {
+        return shutdownExecutorOnStop;
+    }
+
+    protected Set<MetricAttribute> getDisabledMetricAttributes() {
+        return disabledMetricAttributes;
+    }
+
+    private String calculateRateUnit(TimeUnit unit) {
+        final String s = unit.toString().toLowerCase(Locale.US);
+        return s.substring(0, s.length() - 1);
+    }
+
+    private static ScheduledExecutorService createDefaultExecutor(String name) {
+        return Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(name + '-' + FACTORY_ID.incrementAndGet()));
+    }
+
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest$DummyReporter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest$DummyReporter.html new file mode 100644 index 0000000000..7690a56202 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest$DummyReporter.html @@ -0,0 +1 @@ +ScheduledReporterTest.DummyReporter

ScheduledReporterTest.DummyReporter

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total47 of 470%0 of 0n/a449944
ScheduledReporterTest.DummyReporter(MetricRegistry, String, MetricFilter, TimeUnit, TimeUnit, ScheduledExecutorService, boolean)150%n/a113311
ScheduledReporterTest.DummyReporter(MetricRegistry, String, MetricFilter, TimeUnit, TimeUnit, ScheduledExecutorService)140%n/a113311
ScheduledReporterTest.DummyReporter(MetricRegistry, String, MetricFilter, TimeUnit, TimeUnit)130%n/a113311
report(SortedMap, SortedMap, SortedMap, SortedMap, SortedMap)50%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest.html new file mode 100644 index 0000000000..23ea251e1a --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest.html @@ -0,0 +1 @@ +ScheduledReporterTest

ScheduledReporterTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total653 of 6530%12 of 120%31311411412525
ScheduledReporterTest()1280%n/a11161611
shouldReportMetricsOnShutdown()550%n/a11111111
pollsPeriodically()520%n/a11101011
shouldAutoCreateExecutorWhenItNull()520%n/a11101011
shouldRescheduleAfterReportFinish()430%n/a119911
setUp()360%n/a116611
shouldNotFailWhenStoppingMultipleTimes()280%20%226611
createWithNullMetricRegistry()260%20%229911
shouldCancelScheduledFutureWhenStoppingWithExternallyManagedExecutor()260%n/a117711
shouldUsePeriodAsInitialDelayIfNotSpecifiedOtherwise()240%n/a114411
shouldStartWithSpecifiedInitialDelay()230%n/a114411
shouldNotFailOnStopIfReporterWasNotStared()200%20%223311
shouldNotShutdownExternallyManagedExecutorOnStop()170%n/a115511
tearDown()130%n/a115511
shouldShutdownExecutorOnStopByDefault()130%n/a114411
shouldDisallowToStartReportingMultiple()110%n/a113311
shouldDisallowToStartReportingMultipleTimesOnCustomExecutor()110%n/a113311
shouldDisallowToStartReportingMultipleTimesOnExternallyManagedExecutor()110%n/a113311
map(String, Object)110%n/a113311
lambda$shouldReportMetricsOnShutdown$3(CountDownLatch)110%20%224411
lambda$shouldAutoCreateExecutorWhenItNull$2(CountDownLatch)110%20%224411
lambda$pollsPeriodically$1(CountDownLatch)110%20%224411
lambda$shouldRescheduleAfterReportFinish$4()100%n/a116611
shouldConvertDurationToMillisecondsPrecisely()80%n/a112211
lambda$new$0()20%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest.java.html new file mode 100644 index 0000000000..5ab97b231f --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest.java.html @@ -0,0 +1,286 @@ +ScheduledReporterTest.java

ScheduledReporterTest.java

package com.codahale.metrics;
+
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+
+import java.util.SortedMap;
+import java.util.TreeMap;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
+import java.util.concurrent.atomic.AtomicInteger;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.any;
+import static org.mockito.Mockito.eq;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+
+public class ScheduledReporterTest {
+    private final Gauge<String> gauge = () -> "";
+    private final Counter counter = mock(Counter.class);
+    private final Histogram histogram = mock(Histogram.class);
+    private final Meter meter = mock(Meter.class);
+    private final Timer timer = mock(Timer.class);
+
+    private final ScheduledExecutorService mockExecutor = mock(ScheduledExecutorService.class);
+    private final ScheduledExecutorService customExecutor = Executors.newSingleThreadScheduledExecutor();
+    private final ScheduledExecutorService externalExecutor = Executors.newSingleThreadScheduledExecutor();
+
+    private final MetricRegistry registry = new MetricRegistry();
+    private final ScheduledReporter reporter = spy(
+            new DummyReporter(registry, "example", MetricFilter.ALL, TimeUnit.SECONDS, TimeUnit.MILLISECONDS)
+    );
+    private final ScheduledReporter reporterWithNullExecutor = spy(
+            new DummyReporter(registry, "example", MetricFilter.ALL, TimeUnit.SECONDS, TimeUnit.MILLISECONDS, null)
+    );
+    private final ScheduledReporter reporterWithCustomMockExecutor = new DummyReporter(registry, "example", MetricFilter.ALL, TimeUnit.SECONDS, TimeUnit.MILLISECONDS, mockExecutor);
+    private final ScheduledReporter reporterWithCustomExecutor = new DummyReporter(registry, "example", MetricFilter.ALL, TimeUnit.SECONDS, TimeUnit.MILLISECONDS, customExecutor);
+    private final DummyReporter reporterWithExternallyManagedExecutor = new DummyReporter(registry, "example", MetricFilter.ALL, TimeUnit.SECONDS, TimeUnit.MILLISECONDS, externalExecutor, false);
+    private final ScheduledReporter[] reporters = new ScheduledReporter[] {reporter, reporterWithCustomExecutor, reporterWithExternallyManagedExecutor};
+
+    @Before
+    @SuppressWarnings("unchecked")
+    public void setUp() throws Exception {
+        registry.register("gauge", gauge);
+        registry.register("counter", counter);
+        registry.register("histogram", histogram);
+        registry.register("meter", meter);
+        registry.register("timer", timer);
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        customExecutor.shutdown();
+        externalExecutor.shutdown();
+        reporter.stop();
+        reporterWithNullExecutor.stop();
+    }
+
+    @Test
+    public void createWithNullMetricRegistry() {
+        ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
+        DummyReporter r = null;
+        try {
+            r = new DummyReporter(null, "example", MetricFilter.ALL, TimeUnit.SECONDS, TimeUnit.MILLISECONDS, executor);
+            Assert.fail("NullPointerException must be thrown !!!");
+        } catch (NullPointerException e) {
+            Assert.assertEquals("registry == null", e.getMessage());
+        } finally {
+            if (r != null) {
+                r.close();
+            }
+        }
+    }
+
+    @Test
+    public void pollsPeriodically() throws Exception {
+        CountDownLatch latch = new CountDownLatch(2);
+        reporter.start(100, 100, TimeUnit.MILLISECONDS, () -> {
+            if (latch.getCount() > 0) {
+                reporter.report();
+                latch.countDown();
+            }
+        });
+        latch.await(5, TimeUnit.SECONDS);
+
+        verify(reporter, times(2)).report(
+                map("gauge", gauge),
+                map("counter", counter),
+                map("histogram", histogram),
+                map("meter", meter),
+                map("timer", timer)
+        );
+    }
+
+    @Test
+    public void shouldUsePeriodAsInitialDelayIfNotSpecifiedOtherwise() throws Exception {
+        reporterWithCustomMockExecutor.start(200, TimeUnit.MILLISECONDS);
+
+        verify(mockExecutor, times(1)).scheduleWithFixedDelay(
+            any(Runnable.class), eq(200L), eq(200L), eq(TimeUnit.MILLISECONDS)
+        );
+    }
+
+    @Test
+    public void shouldStartWithSpecifiedInitialDelay() throws Exception {
+        reporterWithCustomMockExecutor.start(350, 100, TimeUnit.MILLISECONDS);
+
+        verify(mockExecutor).scheduleWithFixedDelay(
+            any(Runnable.class), eq(350L), eq(100L), eq(TimeUnit.MILLISECONDS)
+        );
+    }
+
+    @Test
+    public void shouldAutoCreateExecutorWhenItNull() throws Exception {
+        CountDownLatch latch = new CountDownLatch(2);
+        reporterWithNullExecutor.start(100, 100, TimeUnit.MILLISECONDS, () -> {
+            if (latch.getCount() > 0) {
+                reporterWithNullExecutor.report();
+                latch.countDown();
+            }
+        });
+        latch.await(5, TimeUnit.SECONDS);
+        verify(reporterWithNullExecutor, times(2)).report(
+                map("gauge", gauge),
+                map("counter", counter),
+                map("histogram", histogram),
+                map("meter", meter),
+                map("timer", timer)
+        );
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void shouldDisallowToStartReportingMultiple() throws Exception {
+        reporter.start(200, TimeUnit.MILLISECONDS);
+        reporter.start(200, TimeUnit.MILLISECONDS);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void shouldDisallowToStartReportingMultipleTimesOnCustomExecutor() throws Exception {
+        reporterWithCustomExecutor.start(200, TimeUnit.MILLISECONDS);
+        reporterWithCustomExecutor.start(200, TimeUnit.MILLISECONDS);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void shouldDisallowToStartReportingMultipleTimesOnExternallyManagedExecutor() throws Exception {
+        reporterWithExternallyManagedExecutor.start(200, TimeUnit.MILLISECONDS);
+        reporterWithExternallyManagedExecutor.start(200, TimeUnit.MILLISECONDS);
+    }
+
+    @Test
+    public void shouldNotFailOnStopIfReporterWasNotStared() {
+        for (ScheduledReporter reporter : reporters) {
+            reporter.stop();
+        }
+    }
+
+    @Test
+    public void shouldNotFailWhenStoppingMultipleTimes() {
+        for (ScheduledReporter reporter : reporters) {
+            reporter.start(200, TimeUnit.MILLISECONDS);
+            reporter.stop();
+            reporter.stop();
+            reporter.stop();
+        }
+    }
+
+    @Test
+    public void shouldShutdownExecutorOnStopByDefault() {
+        reporterWithCustomExecutor.start(200, TimeUnit.MILLISECONDS);
+        reporterWithCustomExecutor.stop();
+        assertTrue(customExecutor.isTerminated());
+    }
+
+    @Test
+    public void shouldNotShutdownExternallyManagedExecutorOnStop() {
+        reporterWithExternallyManagedExecutor.start(200, TimeUnit.MILLISECONDS);
+        reporterWithExternallyManagedExecutor.stop();
+        assertFalse(mockExecutor.isTerminated());
+        assertFalse(mockExecutor.isShutdown());
+    }
+
+    @Test
+    public void shouldCancelScheduledFutureWhenStoppingWithExternallyManagedExecutor() throws InterruptedException, ExecutionException, TimeoutException {
+        // configure very frequency rate of execution
+        reporterWithExternallyManagedExecutor.start(1, TimeUnit.MILLISECONDS);
+        reporterWithExternallyManagedExecutor.stop();
+        Thread.sleep(100);
+
+        // executionCount should not increase when scheduled future is canceled properly
+        int executionCount = reporterWithExternallyManagedExecutor.executionCount.get();
+        Thread.sleep(500);
+        assertEquals(executionCount, reporterWithExternallyManagedExecutor.executionCount.get());
+    }
+
+    @Test
+    public void shouldConvertDurationToMillisecondsPrecisely() {
+        assertEquals(2.0E-5, reporter.convertDuration(20), 0.0);
+    }
+
+    @Test
+    public void shouldReportMetricsOnShutdown() throws Exception {
+        CountDownLatch latch = new CountDownLatch(1);
+        reporterWithNullExecutor.start(0, 10, TimeUnit.SECONDS, () -> {
+            if (latch.getCount() > 0) {
+                reporterWithNullExecutor.report();
+                latch.countDown();
+            }
+        });
+        latch.await(5, TimeUnit.SECONDS);
+        reporterWithNullExecutor.stop();
+
+        verify(reporterWithNullExecutor, times(2)).report(
+                map("gauge", gauge),
+                map("counter", counter),
+                map("histogram", histogram),
+                map("meter", meter),
+                map("timer", timer)
+        );
+    }
+
+    @Test
+    public void shouldRescheduleAfterReportFinish() throws Exception {
+        // the first report is triggered at T + 0.1 seconds and takes 0.8 seconds
+        // after the first report finishes at T + 0.9 seconds the next report is scheduled to run at T + 1.4 seconds
+        reporter.start(100, 500, TimeUnit.MILLISECONDS, () -> {
+            reporter.report();
+            try {
+                Thread.sleep(800);
+            } catch (InterruptedException e) {
+                Thread.currentThread().interrupt();
+            }
+        });
+
+        Thread.sleep(1_000);
+
+        verify(reporter, times(1)).report(
+                map("gauge", gauge),
+                map("counter", counter),
+                map("histogram", histogram),
+                map("meter", meter),
+                map("timer", timer)
+        );
+    }
+
+    private <T> SortedMap<String, T> map(String name, T value) {
+        final SortedMap<String, T> map = new TreeMap<>();
+        map.put(name, value);
+        return map;
+    }
+
+    private static class DummyReporter extends ScheduledReporter {
+
+        private AtomicInteger executionCount = new AtomicInteger();
+
+        DummyReporter(MetricRegistry registry, String name, MetricFilter filter, TimeUnit rateUnit, TimeUnit durationUnit) {
+            super(registry, name, filter, rateUnit, durationUnit);
+        }
+
+        DummyReporter(MetricRegistry registry, String name, MetricFilter filter, TimeUnit rateUnit, TimeUnit durationUnit, ScheduledExecutorService executor) {
+            super(registry, name, filter, rateUnit, durationUnit, executor);
+        }
+
+        DummyReporter(MetricRegistry registry, String name, MetricFilter filter, TimeUnit rateUnit, TimeUnit durationUnit, ScheduledExecutorService executor, boolean shutdownExecutorOnStop) {
+            super(registry, name, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop);
+        }
+
+        @Override
+        @SuppressWarnings("rawtypes")
+        public void report(SortedMap<String, Gauge> gauges, SortedMap<String, Counter> counters, SortedMap<String, Histogram> histograms, SortedMap<String, Meter> meters, SortedMap<String, Timer> timers) {
+            executionCount.incrementAndGet();
+            // nothing doing!
+        }
+    }
+
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistries.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistries.html new file mode 100644 index 0000000000..b06cdc37b9 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistries.html @@ -0,0 +1 @@ +SharedMetricRegistries

SharedMetricRegistries

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total58 of 9740%7 of 1030%11162032711
setDefault(String, MetricRegistry)160%20%224411
getDefault()110%20%224411
tryGetDefault()110%20%224411
setDefault(String)70%n/a112211
remove(String)50%n/a112211
setDefaultRegistryName(AtomicReference)30%n/a112211
names()30%n/a111111
getOrCreate(String)22191%1375%131801
static {...}9100%n/a010201
add(String, MetricRegistry)6100%n/a010101
clear()3100%n/a010201
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistries.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistries.java.html new file mode 100644 index 0000000000..9f500c0144 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistries.java.html @@ -0,0 +1,108 @@ +SharedMetricRegistries.java

SharedMetricRegistries.java

package com.codahale.metrics;
+
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
+import java.util.concurrent.atomic.AtomicReference;
+
+/**
+ * A map of shared, named metric registries.
+ */
+public class SharedMetricRegistries {
+    private static final ConcurrentMap<String, MetricRegistry> REGISTRIES =
+            new ConcurrentHashMap<>();
+
+    private static AtomicReference<String> defaultRegistryName = new AtomicReference<>();
+
+    /* Visible for testing */
+    static void setDefaultRegistryName(AtomicReference<String> defaultRegistryName) {
+        SharedMetricRegistries.defaultRegistryName = defaultRegistryName;
+    }
+
+    private SharedMetricRegistries() { /* singleton */ }
+
+    public static void clear() {
+        REGISTRIES.clear();
+    }
+
+    public static Set<String> names() {
+        return REGISTRIES.keySet();
+    }
+
+    public static void remove(String key) {
+        REGISTRIES.remove(key);
+    }
+
+    public static MetricRegistry add(String name, MetricRegistry registry) {
+        return REGISTRIES.putIfAbsent(name, registry);
+    }
+
+    public static MetricRegistry getOrCreate(String name) {
+        final MetricRegistry existing = REGISTRIES.get(name);
+        if (existing == null) {
+            final MetricRegistry created = new MetricRegistry();
+            final MetricRegistry raced = add(name, created);
+            if (raced == null) {
+                return created;
+            }
+            return raced;
+        }
+        return existing;
+    }
+
+    /**
+     * Creates a new registry and sets it as the default one under the provided name.
+     *
+     * @param name the registry name
+     * @return the default registry
+     * @throws IllegalStateException if the name has already been set
+     */
+    public synchronized static MetricRegistry setDefault(String name) {
+        final MetricRegistry registry = getOrCreate(name);
+        return setDefault(name, registry);
+    }
+
+    /**
+     * Sets the provided registry as the default one under the provided name
+     *
+     * @param name           the default registry name
+     * @param metricRegistry the default registry
+     * @throws IllegalStateException if the default registry has already been set
+     */
+    public static MetricRegistry setDefault(String name, MetricRegistry metricRegistry) {
+        if (defaultRegistryName.compareAndSet(null, name)) {
+            add(name, metricRegistry);
+            return metricRegistry;
+        }
+        throw new IllegalStateException("Default metric registry name is already set.");
+    }
+
+    /**
+     * Gets the name of the default registry, if it has been set
+     *
+     * @return the default registry
+     * @throws IllegalStateException if the default has not been set
+     */
+    public static MetricRegistry getDefault() {
+        MetricRegistry metricRegistry = tryGetDefault();
+        if (metricRegistry == null) {
+            throw new IllegalStateException("Default registry name has not been set.");
+        }
+        return metricRegistry;
+    }
+
+    /**
+     * Same as {@link #getDefault()} except returns null when the default registry has not been set.
+     *
+     * @return the default registry or null
+     */
+    public static MetricRegistry tryGetDefault() {
+        final String name = defaultRegistryName.get();
+        if (name != null) {
+            return getOrCreate(name);
+        } else {
+            return null;
+        }
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistriesTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistriesTest.html new file mode 100644 index 0000000000..74e5193182 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistriesTest.html @@ -0,0 +1 @@ +SharedMetricRegistriesTest

SharedMetricRegistriesTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total138 of 1380%0 of 0n/a101050501010
setsDefaultExistingRegistries()250%n/a116611
createsDefaultRegistries()210%n/a116611
removesRegistries()170%n/a118811
errorsWhenDefaultAlreadySet()150%n/a115511
hasASetOfNames()140%n/a114411
memorizesRegistriesByName()120%n/a115511
clearsRegistries()110%n/a116611
errorsWhenDefaultUnset()110%n/a114411
SharedMetricRegistriesTest()60%n/a113311
setUp()60%n/a113311
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistriesTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistriesTest.java.html new file mode 100644 index 0000000000..c52bf08907 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistriesTest.java.html @@ -0,0 +1,96 @@ +SharedMetricRegistriesTest.java

SharedMetricRegistriesTest.java

package com.codahale.metrics;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.Rule;
+import org.junit.rules.ExpectedException;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+import java.util.concurrent.atomic.AtomicReference;
+
+public class SharedMetricRegistriesTest {
+    @Rule
+    public ExpectedException exception = ExpectedException.none();
+
+    @Before
+    public void setUp() {
+        SharedMetricRegistries.setDefaultRegistryName(new AtomicReference<>());
+        SharedMetricRegistries.clear();
+    }
+
+    @Test
+    public void memorizesRegistriesByName() {
+        final MetricRegistry one = SharedMetricRegistries.getOrCreate("one");
+        final MetricRegistry two = SharedMetricRegistries.getOrCreate("one");
+
+        assertThat(one)
+                .isSameAs(two);
+    }
+
+    @Test
+    public void hasASetOfNames() {
+        SharedMetricRegistries.getOrCreate("one");
+
+        assertThat(SharedMetricRegistries.names())
+                .containsOnly("one");
+    }
+
+    @Test
+    public void removesRegistries() {
+        final MetricRegistry one = SharedMetricRegistries.getOrCreate("one");
+        SharedMetricRegistries.remove("one");
+
+        assertThat(SharedMetricRegistries.names())
+                .isEmpty();
+
+        final MetricRegistry two = SharedMetricRegistries.getOrCreate("one");
+        assertThat(two)
+                .isNotSameAs(one);
+    }
+
+    @Test
+    public void clearsRegistries() {
+        SharedMetricRegistries.getOrCreate("one");
+        SharedMetricRegistries.getOrCreate("two");
+
+        SharedMetricRegistries.clear();
+
+        assertThat(SharedMetricRegistries.names())
+                .isEmpty();
+    }
+
+    @Test
+    public void errorsWhenDefaultUnset() {
+        exception.expect(IllegalStateException.class);
+        exception.expectMessage("Default registry name has not been set.");
+        SharedMetricRegistries.getDefault();
+    }
+
+    @Test
+    public void createsDefaultRegistries() {
+        final String defaultName = "default";
+        final MetricRegistry registry = SharedMetricRegistries.setDefault(defaultName);
+        assertThat(registry).isNotNull();
+        assertThat(SharedMetricRegistries.getDefault()).isEqualTo(registry);
+        assertThat(SharedMetricRegistries.getOrCreate(defaultName)).isEqualTo(registry);
+    }
+
+    @Test
+    public void errorsWhenDefaultAlreadySet() {
+        SharedMetricRegistries.setDefault("foobah");
+        exception.expect(IllegalStateException.class);
+        exception.expectMessage("Default metric registry name is already set.");
+        SharedMetricRegistries.setDefault("borg");
+    }
+
+    @Test
+    public void setsDefaultExistingRegistries() {
+        final String defaultName = "default";
+        final MetricRegistry registry = new MetricRegistry();
+        assertThat(SharedMetricRegistries.setDefault(defaultName, registry)).isEqualTo(registry);
+        assertThat(SharedMetricRegistries.getDefault()).isEqualTo(registry);
+        assertThat(SharedMetricRegistries.getOrCreate(defaultName)).isEqualTo(registry);
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SimpleSettableGaugeTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SimpleSettableGaugeTest.html new file mode 100644 index 0000000000..f044a1abc2 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SimpleSettableGaugeTest.html @@ -0,0 +1 @@ +SimpleSettableGaugeTest

SimpleSettableGaugeTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total43 of 430%0 of 0n/a33121233
setValueAndThenGetValue()260%n/a118811
defaultValue()140%n/a113311
SimpleSettableGaugeTest()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SimpleSettableGaugeTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SimpleSettableGaugeTest.java.html new file mode 100644 index 0000000000..be727a4c96 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SimpleSettableGaugeTest.java.html @@ -0,0 +1,29 @@ +SimpleSettableGaugeTest.java

SimpleSettableGaugeTest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class SimpleSettableGaugeTest {
+
+    @Test
+    public void defaultValue() {
+        DefaultSettableGauge<Integer> settable = new DefaultSettableGauge<>(1);
+
+        assertThat(settable.getValue()).isEqualTo(1);
+    }
+
+    @Test
+    public void setValueAndThenGetValue() {
+        DefaultSettableGauge<String> settable = new DefaultSettableGauge<>("default");
+
+        settable.setValue("first");
+        assertThat(settable.getValue())
+                .isEqualTo("first");
+
+        settable.setValue("second");
+        assertThat(settable.getValue())
+                .isEqualTo("second");
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$Builder.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$Builder.html new file mode 100644 index 0000000000..86e0d35139 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$Builder.html @@ -0,0 +1 @@ +Slf4jReporter.Builder

Slf4jReporter.Builder

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total149 of 1490%5 of 50%161644441212
build()620%50%55111111
Slf4jReporter.Builder(MetricRegistry)370%n/a11131311
shutdownExecutorOnStop(boolean)50%n/a112211
scheduleOn(ScheduledExecutorService)50%n/a112211
outputTo(Logger)50%n/a112211
markWith(Marker)50%n/a112211
prefixedWith(String)50%n/a112211
convertRatesTo(TimeUnit)50%n/a112211
convertDurationsTo(TimeUnit)50%n/a112211
filter(MetricFilter)50%n/a112211
withLoggingLevel(Slf4jReporter.LoggingLevel)50%n/a112211
disabledMetricAttributes(Set)50%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$DebugLoggerProxy.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$DebugLoggerProxy.html new file mode 100644 index 0000000000..e85230c1ef --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$DebugLoggerProxy.html @@ -0,0 +1 @@ +Slf4jReporter.DebugLoggerProxy

Slf4jReporter.DebugLoggerProxy

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total15 of 150%0 of 0n/a335533
log(Marker, String)60%n/a112211
isEnabled(Marker)50%n/a111111
Slf4jReporter.DebugLoggerProxy(Logger)40%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$ErrorLoggerProxy.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$ErrorLoggerProxy.html new file mode 100644 index 0000000000..982d5fddff --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$ErrorLoggerProxy.html @@ -0,0 +1 @@ +Slf4jReporter.ErrorLoggerProxy

Slf4jReporter.ErrorLoggerProxy

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total15 of 150%0 of 0n/a335533
log(Marker, String)60%n/a112211
isEnabled(Marker)50%n/a111111
Slf4jReporter.ErrorLoggerProxy(Logger)40%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$InfoLoggerProxy.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$InfoLoggerProxy.html new file mode 100644 index 0000000000..8ad4ac7c0f --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$InfoLoggerProxy.html @@ -0,0 +1 @@ +Slf4jReporter.InfoLoggerProxy

Slf4jReporter.InfoLoggerProxy

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total15 of 150%0 of 0n/a335533
log(Marker, String)60%n/a112211
isEnabled(Marker)50%n/a111111
Slf4jReporter.InfoLoggerProxy(Logger)40%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$LoggerProxy.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$LoggerProxy.html new file mode 100644 index 0000000000..aba333d9c9 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$LoggerProxy.html @@ -0,0 +1 @@ +Slf4jReporter.LoggerProxy

Slf4jReporter.LoggerProxy

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total6 of 60%0 of 0n/a113311
Slf4jReporter.LoggerProxy(Logger)60%n/a113311
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$LoggingLevel.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$LoggingLevel.html new file mode 100644 index 0000000000..e319b3b4a9 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$LoggingLevel.html @@ -0,0 +1 @@ +Slf4jReporter.LoggingLevel

Slf4jReporter.LoggingLevel

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total33 of 330%0 of 0n/a111111
static {...}330%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$TraceLoggerProxy.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$TraceLoggerProxy.html new file mode 100644 index 0000000000..195d6ba957 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$TraceLoggerProxy.html @@ -0,0 +1 @@ +Slf4jReporter.TraceLoggerProxy

Slf4jReporter.TraceLoggerProxy

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total15 of 150%0 of 0n/a335533
log(Marker, String)60%n/a112211
isEnabled(Marker)50%n/a111111
Slf4jReporter.TraceLoggerProxy(Logger)40%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$WarnLoggerProxy.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$WarnLoggerProxy.html new file mode 100644 index 0000000000..4d9fdbc5cc --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$WarnLoggerProxy.html @@ -0,0 +1 @@ +Slf4jReporter.WarnLoggerProxy

Slf4jReporter.WarnLoggerProxy

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total15 of 150%0 of 0n/a335533
log(Marker, String)60%n/a112211
isEnabled(Marker)50%n/a111111
Slf4jReporter.WarnLoggerProxy(Logger)40%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter.html new file mode 100644 index 0000000000..8aa25139bf --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter.html @@ -0,0 +1 @@ +Slf4jReporter

Slf4jReporter

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total701 of 7010%24 of 240%33331141142121
logTimer(StringBuilder, String, Timer)1400%n/a11202011
logHistogram(StringBuilder, String, Histogram)1240%n/a11171711
report(SortedMap, SortedMap, SortedMap, SortedMap, SortedMap)1160%120%77181811
logMeter(StringBuilder, String, Meter)410%n/a118811
appendMetered(StringBuilder, Metered)370%n/a115511
logCounter(StringBuilder, String, Counter)340%n/a116611
logGauge(StringBuilder, String, Gauge)330%n/a116611
Slf4jReporter(MetricRegistry, Slf4jReporter.LoggerProxy, Marker, String, TimeUnit, TimeUnit, MetricFilter, ScheduledExecutorService, boolean, Set)200%n/a115511
appendLongDurationIfEnabled(StringBuilder, MetricAttribute, Supplier)180%20%223311
appendDoubleDurationIfEnabled(StringBuilder, MetricAttribute, Supplier)170%20%223311
appendRateIfEnabled(StringBuilder, MetricAttribute, Supplier)170%20%223311
appendLongIfEnabled(StringBuilder, MetricAttribute, Supplier)130%20%223311
appendDoubleIfEnabled(StringBuilder, MetricAttribute, Supplier)130%20%223311
appendCountIfEnabled(StringBuilder, Counting)130%20%223311
append(StringBuilder, String, long)110%n/a112211
append(StringBuilder, String, double)110%n/a112211
append(StringBuilder, String, String)110%n/a112211
append(StringBuilder, String, Object)110%n/a112211
getRateUnit()100%n/a111111
forRegistry(MetricRegistry)60%n/a111111
prefix(String[])50%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter.java.html new file mode 100644 index 0000000000..0e6f7a885d --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter.java.html @@ -0,0 +1,517 @@ +Slf4jReporter.java

Slf4jReporter.java

package com.codahale.metrics;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.Marker;
+
+import java.util.Collections;
+import java.util.Map.Entry;
+import java.util.Set;
+import java.util.SortedMap;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+import java.util.function.Supplier;
+
+import static com.codahale.metrics.MetricAttribute.COUNT;
+import static com.codahale.metrics.MetricAttribute.M15_RATE;
+import static com.codahale.metrics.MetricAttribute.M1_RATE;
+import static com.codahale.metrics.MetricAttribute.M5_RATE;
+import static com.codahale.metrics.MetricAttribute.MAX;
+import static com.codahale.metrics.MetricAttribute.MEAN;
+import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
+import static com.codahale.metrics.MetricAttribute.MIN;
+import static com.codahale.metrics.MetricAttribute.P50;
+import static com.codahale.metrics.MetricAttribute.P75;
+import static com.codahale.metrics.MetricAttribute.P95;
+import static com.codahale.metrics.MetricAttribute.P98;
+import static com.codahale.metrics.MetricAttribute.P99;
+import static com.codahale.metrics.MetricAttribute.P999;
+import static com.codahale.metrics.MetricAttribute.STDDEV;
+
+/**
+ * A reporter class for logging metrics values to a SLF4J {@link Logger} periodically, similar to
+ * {@link ConsoleReporter} or {@link CsvReporter}, but using the SLF4J framework instead. It also
+ * supports specifying a {@link Marker} instance that can be used by custom appenders and filters
+ * for the bound logging toolkit to further process metrics reports.
+ */
+public class Slf4jReporter extends ScheduledReporter {
+    /**
+     * Returns a new {@link Builder} for {@link Slf4jReporter}.
+     *
+     * @param registry the registry to report
+     * @return a {@link Builder} instance for a {@link Slf4jReporter}
+     */
+    public static Builder forRegistry(MetricRegistry registry) {
+        return new Builder(registry);
+    }
+
+    public enum LoggingLevel { TRACE, DEBUG, INFO, WARN, ERROR }
+
+    /**
+     * A builder for {@link Slf4jReporter} instances. Defaults to logging to {@code metrics}, not
+     * using a marker, converting rates to events/second, converting durations to milliseconds, and
+     * not filtering metrics.
+     */
+    public static class Builder {
+        private final MetricRegistry registry;
+        private Logger logger;
+        private LoggingLevel loggingLevel;
+        private Marker marker;
+        private String prefix;
+        private TimeUnit rateUnit;
+        private TimeUnit durationUnit;
+        private MetricFilter filter;
+        private ScheduledExecutorService executor;
+        private boolean shutdownExecutorOnStop;
+        private Set<MetricAttribute> disabledMetricAttributes;
+
+        private Builder(MetricRegistry registry) {
+            this.registry = registry;
+            this.logger = LoggerFactory.getLogger("metrics");
+            this.marker = null;
+            this.prefix = "";
+            this.rateUnit = TimeUnit.SECONDS;
+            this.durationUnit = TimeUnit.MILLISECONDS;
+            this.filter = MetricFilter.ALL;
+            this.loggingLevel = LoggingLevel.INFO;
+            this.executor = null;
+            this.shutdownExecutorOnStop = true;
+            this.disabledMetricAttributes = Collections.emptySet();
+        }
+
+        /**
+         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
+         * Default value is true.
+         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
+         *
+         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
+         * @return {@code this}
+         */
+        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
+            this.shutdownExecutorOnStop = shutdownExecutorOnStop;
+            return this;
+        }
+
+        /**
+         * Specifies the executor to use while scheduling reporting of metrics.
+         * Default value is null.
+         * Null value leads to executor will be auto created on start.
+         *
+         * @param executor the executor to use while scheduling reporting of metrics.
+         * @return {@code this}
+         */
+        public Builder scheduleOn(ScheduledExecutorService executor) {
+            this.executor = executor;
+            return this;
+        }
+
+        /**
+         * Log metrics to the given logger.
+         *
+         * @param logger an SLF4J {@link Logger}
+         * @return {@code this}
+         */
+        public Builder outputTo(Logger logger) {
+            this.logger = logger;
+            return this;
+        }
+
+        /**
+         * Mark all logged metrics with the given marker.
+         *
+         * @param marker an SLF4J {@link Marker}
+         * @return {@code this}
+         */
+        public Builder markWith(Marker marker) {
+            this.marker = marker;
+            return this;
+        }
+
+        /**
+         * Prefix all metric names with the given string.
+         *
+         * @param prefix the prefix for all metric names
+         * @return {@code this}
+         */
+        public Builder prefixedWith(String prefix) {
+            this.prefix = prefix;
+            return this;
+        }
+
+        /**
+         * Convert rates to the given time unit.
+         *
+         * @param rateUnit a unit of time
+         * @return {@code this}
+         */
+        public Builder convertRatesTo(TimeUnit rateUnit) {
+            this.rateUnit = rateUnit;
+            return this;
+        }
+
+        /**
+         * Convert durations to the given time unit.
+         *
+         * @param durationUnit a unit of time
+         * @return {@code this}
+         */
+        public Builder convertDurationsTo(TimeUnit durationUnit) {
+            this.durationUnit = durationUnit;
+            return this;
+        }
+
+        /**
+         * Only report metrics which match the given filter.
+         *
+         * @param filter a {@link MetricFilter}
+         * @return {@code this}
+         */
+        public Builder filter(MetricFilter filter) {
+            this.filter = filter;
+            return this;
+        }
+
+        /**
+         * Use Logging Level when reporting.
+         *
+         * @param loggingLevel a (@link Slf4jReporter.LoggingLevel}
+         * @return {@code this}
+         */
+        public Builder withLoggingLevel(LoggingLevel loggingLevel) {
+            this.loggingLevel = loggingLevel;
+            return this;
+        }
+
+        /**
+         * Don't report the passed metric attributes for all metrics (e.g. "p999", "stddev" or "m15").
+         * See {@link MetricAttribute}.
+         *
+         * @param disabledMetricAttributes a set of {@link MetricAttribute}
+         * @return {@code this}
+         */
+        public Builder disabledMetricAttributes(Set<MetricAttribute> disabledMetricAttributes) {
+            this.disabledMetricAttributes = disabledMetricAttributes;
+            return this;
+        }
+
+        /**
+         * Builds a {@link Slf4jReporter} with the given properties.
+         *
+         * @return a {@link Slf4jReporter}
+         */
+        public Slf4jReporter build() {
+            LoggerProxy loggerProxy;
+            switch (loggingLevel) {
+                case TRACE:
+                    loggerProxy = new TraceLoggerProxy(logger);
+                    break;
+                case INFO:
+                    loggerProxy = new InfoLoggerProxy(logger);
+                    break;
+                case WARN:
+                    loggerProxy = new WarnLoggerProxy(logger);
+                    break;
+                case ERROR:
+                    loggerProxy = new ErrorLoggerProxy(logger);
+                    break;
+                default:
+                case DEBUG:
+                    loggerProxy = new DebugLoggerProxy(logger);
+                    break;
+            }
+            return new Slf4jReporter(registry, loggerProxy, marker, prefix, rateUnit, durationUnit, filter, executor,
+                    shutdownExecutorOnStop, disabledMetricAttributes);
+        }
+    }
+
+    private final LoggerProxy loggerProxy;
+    private final Marker marker;
+    private final String prefix;
+
+    private Slf4jReporter(MetricRegistry registry,
+                          LoggerProxy loggerProxy,
+                          Marker marker,
+                          String prefix,
+                          TimeUnit rateUnit,
+                          TimeUnit durationUnit,
+                          MetricFilter filter,
+                          ScheduledExecutorService executor,
+                          boolean shutdownExecutorOnStop,
+                          Set<MetricAttribute> disabledMetricAttributes) {
+        super(registry, "logger-reporter", filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,
+                disabledMetricAttributes);
+        this.loggerProxy = loggerProxy;
+        this.marker = marker;
+        this.prefix = prefix;
+    }
+
+    @Override
+    @SuppressWarnings("rawtypes")
+    public void report(SortedMap<String, Gauge> gauges,
+                       SortedMap<String, Counter> counters,
+                       SortedMap<String, Histogram> histograms,
+                       SortedMap<String, Meter> meters,
+                       SortedMap<String, Timer> timers) {
+        if (loggerProxy.isEnabled(marker)) {
+            StringBuilder b = new StringBuilder();
+            for (Entry<String, Gauge> entry : gauges.entrySet()) {
+                logGauge(b, entry.getKey(), entry.getValue());
+            }
+
+            for (Entry<String, Counter> entry : counters.entrySet()) {
+                logCounter(b, entry.getKey(), entry.getValue());
+            }
+
+            for (Entry<String, Histogram> entry : histograms.entrySet()) {
+                logHistogram(b, entry.getKey(), entry.getValue());
+            }
+
+            for (Entry<String, Meter> entry : meters.entrySet()) {
+                logMeter(b, entry.getKey(), entry.getValue());
+            }
+
+            for (Entry<String, Timer> entry : timers.entrySet()) {
+                logTimer(b, entry.getKey(), entry.getValue());
+            }
+        }
+    }
+
+    private void logTimer(StringBuilder b, String name, Timer timer) {
+        final Snapshot snapshot = timer.getSnapshot();
+        b.setLength(0);
+        b.append("type=TIMER");
+        append(b, "name", prefix(name));
+        appendCountIfEnabled(b, timer);
+        appendLongDurationIfEnabled(b, MIN, snapshot::getMin);
+        appendLongDurationIfEnabled(b, MAX, snapshot::getMax);
+        appendDoubleDurationIfEnabled(b, MEAN, snapshot::getMean);
+        appendDoubleDurationIfEnabled(b, STDDEV, snapshot::getStdDev);
+        appendDoubleDurationIfEnabled(b, P50, snapshot::getMedian);
+        appendDoubleDurationIfEnabled(b, P75, snapshot::get75thPercentile);
+        appendDoubleDurationIfEnabled(b, P95, snapshot::get95thPercentile);
+        appendDoubleDurationIfEnabled(b, P98, snapshot::get98thPercentile);
+        appendDoubleDurationIfEnabled(b, P99, snapshot::get99thPercentile);
+        appendDoubleDurationIfEnabled(b, P999, snapshot::get999thPercentile);
+        appendMetered(b, timer);
+        append(b, "rate_unit", getRateUnit());
+        append(b, "duration_unit", getDurationUnit());
+        loggerProxy.log(marker, b.toString());
+    }
+
+    private void logMeter(StringBuilder b, String name, Meter meter) {
+        b.setLength(0);
+        b.append("type=METER");
+        append(b, "name", prefix(name));
+        appendCountIfEnabled(b, meter);
+        appendMetered(b, meter);
+        append(b, "rate_unit", getRateUnit());
+        loggerProxy.log(marker, b.toString());
+    }
+
+    private void logHistogram(StringBuilder b, String name, Histogram histogram) {
+        final Snapshot snapshot = histogram.getSnapshot();
+        b.setLength(0);
+        b.append("type=HISTOGRAM");
+        append(b, "name", prefix(name));
+        appendCountIfEnabled(b, histogram);
+        appendLongIfEnabled(b, MIN, snapshot::getMin);
+        appendLongIfEnabled(b, MAX, snapshot::getMax);
+        appendDoubleIfEnabled(b, MEAN, snapshot::getMean);
+        appendDoubleIfEnabled(b, STDDEV, snapshot::getStdDev);
+        appendDoubleIfEnabled(b, P50, snapshot::getMedian);
+        appendDoubleIfEnabled(b, P75, snapshot::get75thPercentile);
+        appendDoubleIfEnabled(b, P95, snapshot::get95thPercentile);
+        appendDoubleIfEnabled(b, P98, snapshot::get98thPercentile);
+        appendDoubleIfEnabled(b, P99, snapshot::get99thPercentile);
+        appendDoubleIfEnabled(b, P999, snapshot::get999thPercentile);
+        loggerProxy.log(marker, b.toString());
+    }
+
+    private void logCounter(StringBuilder b, String name, Counter counter) {
+        b.setLength(0);
+        b.append("type=COUNTER");
+        append(b, "name", prefix(name));
+        append(b, COUNT.getCode(), counter.getCount());
+        loggerProxy.log(marker, b.toString());
+    }
+
+    private void logGauge(StringBuilder b, String name, Gauge<?> gauge) {
+        b.setLength(0);
+        b.append("type=GAUGE");
+        append(b, "name", prefix(name));
+        append(b, "value", gauge.getValue());
+        loggerProxy.log(marker, b.toString());
+    }
+
+    private void appendLongDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
+                                             Supplier<Long> durationSupplier) {
+        if (!getDisabledMetricAttributes().contains(metricAttribute)) {
+            append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));
+        }
+    }
+
+    private void appendDoubleDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
+                                               Supplier<Double> durationSupplier) {
+        if (!getDisabledMetricAttributes().contains(metricAttribute)) {
+            append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));
+        }
+    }
+
+    private void appendLongIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
+                                     Supplier<Long> valueSupplier) {
+        if (!getDisabledMetricAttributes().contains(metricAttribute)) {
+            append(b, metricAttribute.getCode(), valueSupplier.get());
+        }
+    }
+
+    private void appendDoubleIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
+                                       Supplier<Double> valueSupplier) {
+        if (!getDisabledMetricAttributes().contains(metricAttribute)) {
+            append(b, metricAttribute.getCode(), valueSupplier.get());
+        }
+    }
+
+    private void appendCountIfEnabled(StringBuilder b, Counting counting) {
+        if (!getDisabledMetricAttributes().contains(COUNT)) {
+            append(b, COUNT.getCode(), counting.getCount());
+        }
+    }
+
+    private void appendMetered(StringBuilder b, Metered meter) {
+        appendRateIfEnabled(b, M1_RATE, meter::getOneMinuteRate);
+        appendRateIfEnabled(b, M5_RATE, meter::getFiveMinuteRate);
+        appendRateIfEnabled(b, M15_RATE,  meter::getFifteenMinuteRate);
+        appendRateIfEnabled(b, MEAN_RATE,  meter::getMeanRate);
+    }
+
+    private void appendRateIfEnabled(StringBuilder b, MetricAttribute metricAttribute, Supplier<Double> rateSupplier) {
+        if (!getDisabledMetricAttributes().contains(metricAttribute)) {
+            append(b, metricAttribute.getCode(), convertRate(rateSupplier.get()));
+        }
+    }
+
+    private void append(StringBuilder b, String key, long value) {
+        b.append(", ").append(key).append('=').append(value);
+    }
+
+    private void append(StringBuilder b, String key, double value) {
+        b.append(", ").append(key).append('=').append(value);
+    }
+
+    private void append(StringBuilder b, String key, String value) {
+        b.append(", ").append(key).append('=').append(value);
+    }
+
+    private void append(StringBuilder b, String key, Object value) {
+        b.append(", ").append(key).append('=').append(value);
+    }
+
+    @Override
+    protected String getRateUnit() {
+        return "events/" + super.getRateUnit();
+    }
+
+    private String prefix(String... components) {
+        return MetricRegistry.name(prefix, components);
+    }
+
+    /* private class to allow logger configuration */
+    static abstract class LoggerProxy {
+        protected final Logger logger;
+
+        public LoggerProxy(Logger logger) {
+            this.logger = logger;
+        }
+
+        abstract void log(Marker marker, String format);
+
+        abstract boolean isEnabled(Marker marker);
+    }
+
+    /* private class to allow logger configuration */
+    private static class DebugLoggerProxy extends LoggerProxy {
+        public DebugLoggerProxy(Logger logger) {
+            super(logger);
+        }
+
+        @Override
+        public void log(Marker marker, String format) {
+            logger.debug(marker, format);
+        }
+
+        @Override
+        public boolean isEnabled(Marker marker) {
+            return logger.isDebugEnabled(marker);
+        }
+    }
+
+    /* private class to allow logger configuration */
+    private static class TraceLoggerProxy extends LoggerProxy {
+        public TraceLoggerProxy(Logger logger) {
+            super(logger);
+        }
+
+        @Override
+        public void log(Marker marker, String format) {
+            logger.trace(marker, format);
+        }
+
+        @Override
+        public boolean isEnabled(Marker marker) {
+            return logger.isTraceEnabled(marker);
+        }
+    }
+
+    /* private class to allow logger configuration */
+    private static class InfoLoggerProxy extends LoggerProxy {
+        public InfoLoggerProxy(Logger logger) {
+            super(logger);
+        }
+
+        @Override
+        public void log(Marker marker, String format) {
+            logger.info(marker, format);
+        }
+
+        @Override
+        public boolean isEnabled(Marker marker) {
+            return logger.isInfoEnabled(marker);
+        }
+    }
+
+    /* private class to allow logger configuration */
+    private static class WarnLoggerProxy extends LoggerProxy {
+        public WarnLoggerProxy(Logger logger) {
+            super(logger);
+        }
+
+        @Override
+        public void log(Marker marker, String format) {
+            logger.warn(marker, format);
+        }
+
+        @Override
+        public boolean isEnabled(Marker marker) {
+            return logger.isWarnEnabled(marker);
+        }
+    }
+
+    /* private class to allow logger configuration */
+    private static class ErrorLoggerProxy extends LoggerProxy {
+        public ErrorLoggerProxy(Logger logger) {
+            super(logger);
+        }
+
+        @Override
+        public void log(Marker marker, String format) {
+            logger.error(marker, format);
+        }
+
+        @Override
+        public boolean isEnabled(Marker marker) {
+            return logger.isErrorEnabled(marker);
+        }
+    }
+
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporterTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporterTest.html new file mode 100644 index 0000000000..0d0d804032 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporterTest.html @@ -0,0 +1 @@ +Slf4jReporterTest

Slf4jReporterTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total932 of 9320%0 of 0n/a33331981983333
timer()1640%n/a11202011
histogram()1040%n/a11151511
reportsAllMetricsDefault()790%n/a11121211
meter()460%n/a117711
reportsCounterValuesAtError()380%n/a119911
reportsHistogramValuesAtError(String)380%n/a119911
reportsMeterValuesAtError(String)380%n/a119911
reportsTimerValuesAtError(String)380%n/a119911
reportsCounterValuesDefault()380%n/a119911
reportsHistogramValuesDefault()380%n/a119911
reportsMeterValuesDefault()380%n/a119911
reportsTimerValuesDefault()380%n/a119911
reportsGaugeValuesAtError()350%n/a118811
reportsGaugeValuesDefault()350%n/a118811
infoReporter()240%n/a11101011
errorReporter()220%n/a119911
Slf4jReporterTest()210%n/a115511
counter()140%n/a113311
reportsTimerValuesAtErrorWithDisabledMetricAttributes()110%n/a113311
map(String, Object)110%n/a113311
reportsHistogramValuesAtErrorWithDisabledMetricAttributes()100%n/a113311
reportsMeterValuesAtErrorWithDisabledMetricAttributes()100%n/a113311
reportsGaugeValuesAtErrorAllDisabled()70%n/a113311
reportsCounterValuesAtErrorAllDisabled()70%n/a113311
reportsHistogramValuesAtErrorDefault()40%n/a112211
reportsMeterValuesAtErrorDefault()40%n/a112211
reportsTimerValuesAtErrorDefault()40%n/a112211
map()40%n/a111111
reportsGaugeValuesAtErrorDefault()30%n/a112211
reportsCounterValuesAtErrorDefault()30%n/a112211
lambda$reportsAllMetricsDefault$2()20%n/a111111
lambda$reportsGaugeValuesDefault$1()20%n/a111111
lambda$reportsGaugeValuesAtError$0()20%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporterTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporterTest.java.html new file mode 100644 index 0000000000..d729741e75 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporterTest.java.html @@ -0,0 +1,363 @@ +Slf4jReporterTest.java

Slf4jReporterTest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.Marker;
+
+import java.util.EnumSet;
+import java.util.Set;
+import java.util.SortedMap;
+import java.util.TreeMap;
+import java.util.concurrent.TimeUnit;
+
+import static com.codahale.metrics.MetricAttribute.COUNT;
+import static com.codahale.metrics.MetricAttribute.M1_RATE;
+import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
+import static com.codahale.metrics.MetricAttribute.MIN;
+import static com.codahale.metrics.MetricAttribute.P50;
+import static com.codahale.metrics.MetricAttribute.P999;
+import static com.codahale.metrics.MetricAttribute.STDDEV;
+import static org.mockito.Mockito.when;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+
+public class Slf4jReporterTest {
+
+    private final Logger logger = mock(Logger.class);
+    private final Marker marker = mock(Marker.class);
+    private final MetricRegistry registry = mock(MetricRegistry.class);
+
+    /**
+     * The set of disabled metric attributes to pass to the Slf4jReporter builder
+     * in the default factory methods of {@link #infoReporter}
+     * and {@link #errorReporter}.
+     *
+     * This value can be overridden by tests before calling the {@link #infoReporter}
+     * and {@link #errorReporter} factory methods.
+     */
+    private Set<MetricAttribute> disabledMetricAttributes = null;
+
+    private Slf4jReporter infoReporter() {
+        return Slf4jReporter.forRegistry(registry)
+                .outputTo(logger)
+                .markWith(marker)
+                .prefixedWith("prefix")
+                .convertRatesTo(TimeUnit.SECONDS)
+                .convertDurationsTo(TimeUnit.MILLISECONDS)
+                .withLoggingLevel(Slf4jReporter.LoggingLevel.INFO)
+                .filter(MetricFilter.ALL)
+                .disabledMetricAttributes(disabledMetricAttributes)
+                .build();
+    }
+
+    private Slf4jReporter errorReporter() {
+        return Slf4jReporter.forRegistry(registry)
+                .outputTo(logger)
+                .markWith(marker)
+                .convertRatesTo(TimeUnit.SECONDS)
+                .convertDurationsTo(TimeUnit.MILLISECONDS)
+                .withLoggingLevel(Slf4jReporter.LoggingLevel.ERROR)
+                .filter(MetricFilter.ALL)
+                .disabledMetricAttributes(disabledMetricAttributes)
+                .build();
+    }
+
+    @Test
+    public void reportsGaugeValuesAtErrorDefault() {
+        reportsGaugeValuesAtError();
+    }
+
+    @Test
+    public void reportsGaugeValuesAtErrorAllDisabled() {
+        disabledMetricAttributes = EnumSet.allOf(MetricAttribute.class); // has no effect
+        reportsGaugeValuesAtError();
+    }
+
+    private void reportsGaugeValuesAtError() {
+        when(logger.isErrorEnabled(marker)).thenReturn(true);
+        errorReporter().report(map("gauge", () -> "value"),
+                map(),
+                map(),
+                map(),
+                map());
+
+        verify(logger).error(marker, "type=GAUGE, name=gauge, value=value");
+    }
+
+
+    private Timer timer() {
+        final Timer timer = mock(Timer.class);
+        when(timer.getCount()).thenReturn(1L);
+
+        when(timer.getMeanRate()).thenReturn(2.0);
+        when(timer.getOneMinuteRate()).thenReturn(3.0);
+        when(timer.getFiveMinuteRate()).thenReturn(4.0);
+        when(timer.getFifteenMinuteRate()).thenReturn(5.0);
+
+        final Snapshot snapshot = mock(Snapshot.class);
+        when(snapshot.getMax()).thenReturn(TimeUnit.MILLISECONDS.toNanos(100));
+        when(snapshot.getMean()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(200));
+        when(snapshot.getMin()).thenReturn(TimeUnit.MILLISECONDS.toNanos(300));
+        when(snapshot.getStdDev()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(400));
+        when(snapshot.getMedian()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(500));
+        when(snapshot.get75thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(600));
+        when(snapshot.get95thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(700));
+        when(snapshot.get98thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(800));
+        when(snapshot.get99thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(900));
+        when(snapshot.get999thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS
+                .toNanos(1000));
+
+        when(timer.getSnapshot()).thenReturn(snapshot);
+        return timer;
+    }
+
+    private Histogram histogram() {
+        final Histogram histogram = mock(Histogram.class);
+        when(histogram.getCount()).thenReturn(1L);
+
+        final Snapshot snapshot = mock(Snapshot.class);
+        when(snapshot.getMax()).thenReturn(2L);
+        when(snapshot.getMean()).thenReturn(3.0);
+        when(snapshot.getMin()).thenReturn(4L);
+        when(snapshot.getStdDev()).thenReturn(5.0);
+        when(snapshot.getMedian()).thenReturn(6.0);
+        when(snapshot.get75thPercentile()).thenReturn(7.0);
+        when(snapshot.get95thPercentile()).thenReturn(8.0);
+        when(snapshot.get98thPercentile()).thenReturn(9.0);
+        when(snapshot.get99thPercentile()).thenReturn(10.0);
+        when(snapshot.get999thPercentile()).thenReturn(11.0);
+
+        when(histogram.getSnapshot()).thenReturn(snapshot);
+        return histogram;
+    }
+
+    private Meter meter() {
+        final Meter meter = mock(Meter.class);
+        when(meter.getCount()).thenReturn(1L);
+        when(meter.getMeanRate()).thenReturn(2.0);
+        when(meter.getOneMinuteRate()).thenReturn(3.0);
+        when(meter.getFiveMinuteRate()).thenReturn(4.0);
+        when(meter.getFifteenMinuteRate()).thenReturn(5.0);
+        return meter;
+    }
+
+    private Counter counter() {
+        final Counter counter = mock(Counter.class);
+        when(counter.getCount()).thenReturn(100L);
+        return counter;
+    }
+
+    @Test
+    public void reportsCounterValuesAtErrorDefault() {
+        reportsCounterValuesAtError();
+    }
+
+    @Test
+    public void reportsCounterValuesAtErrorAllDisabled() {
+        disabledMetricAttributes = EnumSet.allOf(MetricAttribute.class); // has no effect
+        reportsCounterValuesAtError();
+    }
+
+    private void reportsCounterValuesAtError() {
+        final Counter counter = counter();
+        when(logger.isErrorEnabled(marker)).thenReturn(true);
+
+        errorReporter().report(map(),
+                map("test.counter", counter),
+                map(),
+                map(),
+                map());
+
+        verify(logger).error(marker, "type=COUNTER, name=test.counter, count=100");
+    }
+
+    @Test
+    public void reportsHistogramValuesAtErrorDefault() {
+        reportsHistogramValuesAtError("type=HISTOGRAM, name=test.histogram, count=1, min=4, " +
+                "max=2, mean=3.0, stddev=5.0, p50=6.0, p75=7.0, p95=8.0, p98=9.0, p99=10.0, p999=11.0");
+    }
+
+    @Test
+    public void reportsHistogramValuesAtErrorWithDisabledMetricAttributes() {
+        disabledMetricAttributes = EnumSet.of(COUNT, MIN, P50);
+        reportsHistogramValuesAtError("type=HISTOGRAM, name=test.histogram, max=2, mean=3.0, " +
+                "stddev=5.0, p75=7.0, p95=8.0, p98=9.0, p99=10.0, p999=11.0");
+    }
+
+    private void reportsHistogramValuesAtError(final String expectedLog) {
+        final Histogram histogram = histogram();
+        when(logger.isErrorEnabled(marker)).thenReturn(true);
+
+        errorReporter().report(map(),
+                map(),
+                map("test.histogram", histogram),
+                map(),
+                map());
+
+        verify(logger).error(marker, expectedLog);
+    }
+
+    @Test
+    public void reportsMeterValuesAtErrorDefault() {
+        reportsMeterValuesAtError("type=METER, name=test.meter, count=1, m1_rate=3.0, m5_rate=4.0, " +
+                "m15_rate=5.0, mean_rate=2.0, rate_unit=events/second");
+    }
+
+    @Test
+    public void reportsMeterValuesAtErrorWithDisabledMetricAttributes() {
+        disabledMetricAttributes = EnumSet.of(MIN, P50, M1_RATE);
+        reportsMeterValuesAtError("type=METER, name=test.meter, count=1, m5_rate=4.0, m15_rate=5.0, " +
+                "mean_rate=2.0, rate_unit=events/second");
+    }
+
+    private void reportsMeterValuesAtError(final String expectedLog) {
+        final Meter meter = meter();
+        when(logger.isErrorEnabled(marker)).thenReturn(true);
+
+        errorReporter().report(map(),
+                map(),
+                map(),
+                map("test.meter", meter),
+                map());
+
+        verify(logger).error(marker, expectedLog);
+    }
+
+
+    @Test
+    public void reportsTimerValuesAtErrorDefault() {
+        reportsTimerValuesAtError("type=TIMER, name=test.another.timer, count=1, min=300.0, max=100.0, " +
+                "mean=200.0, stddev=400.0, p50=500.0, p75=600.0, p95=700.0, p98=800.0, p99=900.0, p999=1000.0, " +
+                "m1_rate=3.0, m5_rate=4.0, m15_rate=5.0, mean_rate=2.0, rate_unit=events/second, " +
+                "duration_unit=milliseconds");
+    }
+
+    @Test
+    public void reportsTimerValuesAtErrorWithDisabledMetricAttributes() {
+        disabledMetricAttributes = EnumSet.of(MIN, STDDEV, P999, MEAN_RATE);
+        reportsTimerValuesAtError("type=TIMER, name=test.another.timer, count=1, max=100.0, mean=200.0, " +
+                "p50=500.0, p75=600.0, p95=700.0, p98=800.0, p99=900.0, m1_rate=3.0, m5_rate=4.0, m15_rate=5.0, " +
+                "rate_unit=events/second, duration_unit=milliseconds");
+    }
+
+    private void reportsTimerValuesAtError(final String expectedLog) {
+        final Timer timer = timer();
+
+        when(logger.isErrorEnabled(marker)).thenReturn(true);
+
+        errorReporter().report(map(),
+                map(),
+                map(),
+                map(),
+                map("test.another.timer", timer));
+
+        verify(logger).error(marker, expectedLog);
+    }
+
+    @Test
+    public void reportsGaugeValuesDefault() {
+        when(logger.isInfoEnabled(marker)).thenReturn(true);
+        infoReporter().report(map("gauge", () -> "value"),
+                map(),
+                map(),
+                map(),
+                map());
+
+        verify(logger).info(marker, "type=GAUGE, name=prefix.gauge, value=value");
+    }
+
+
+    @Test
+    public void reportsCounterValuesDefault() {
+        final Counter counter = counter();
+        when(logger.isInfoEnabled(marker)).thenReturn(true);
+
+        infoReporter().report(map(),
+                map("test.counter", counter),
+                map(),
+                map(),
+                map());
+
+        verify(logger).info(marker, "type=COUNTER, name=prefix.test.counter, count=100");
+    }
+
+    @Test
+    public void reportsHistogramValuesDefault() {
+        final Histogram histogram = histogram();
+        when(logger.isInfoEnabled(marker)).thenReturn(true);
+
+        infoReporter().report(map(),
+                map(),
+                map("test.histogram", histogram),
+                map(),
+                map());
+
+        verify(logger).info(marker, "type=HISTOGRAM, name=prefix.test.histogram, count=1, min=4, max=2, mean=3.0, " +
+                "stddev=5.0, p50=6.0, p75=7.0, p95=8.0, p98=9.0, p99=10.0, p999=11.0");
+    }
+
+    @Test
+    public void reportsMeterValuesDefault() {
+        final Meter meter = meter();
+        when(logger.isInfoEnabled(marker)).thenReturn(true);
+
+        infoReporter().report(map(),
+                map(),
+                map(),
+                map("test.meter", meter),
+                map());
+
+        verify(logger).info(marker, "type=METER, name=prefix.test.meter, count=1, m1_rate=3.0, m5_rate=4.0, " +
+                "m15_rate=5.0, mean_rate=2.0, rate_unit=events/second");
+    }
+
+    @Test
+    public void reportsTimerValuesDefault() {
+        final Timer timer = timer();
+        when(logger.isInfoEnabled(marker)).thenReturn(true);
+
+        infoReporter().report(map(),
+                map(),
+                map(),
+                map(),
+                map("test.another.timer", timer));
+
+        verify(logger).info(marker, "type=TIMER, name=prefix.test.another.timer, count=1, min=300.0, max=100.0, " +
+                "mean=200.0, stddev=400.0, p50=500.0, p75=600.0, p95=700.0, p98=800.0, p99=900.0, p999=1000.0," +
+                " m1_rate=3.0, m5_rate=4.0, m15_rate=5.0, mean_rate=2.0, rate_unit=events/second, duration_unit=milliseconds");
+    }
+
+
+    @Test
+    public void reportsAllMetricsDefault() {
+        when(logger.isInfoEnabled(marker)).thenReturn(true);
+
+        infoReporter().report(map("test.gauge", () -> "value"),
+                map("test.counter", counter()),
+                map("test.histogram", histogram()),
+                map("test.meter", meter()),
+                map("test.timer", timer()));
+
+        verify(logger).info(marker, "type=GAUGE, name=prefix.test.gauge, value=value");
+        verify(logger).info(marker, "type=COUNTER, name=prefix.test.counter, count=100");
+        verify(logger).info(marker, "type=HISTOGRAM, name=prefix.test.histogram, count=1, min=4, max=2, mean=3.0, " +
+                "stddev=5.0, p50=6.0, p75=7.0, p95=8.0, p98=9.0, p99=10.0, p999=11.0");
+        verify(logger).info(marker, "type=METER, name=prefix.test.meter, count=1, m1_rate=3.0, m5_rate=4.0, " +
+                "m15_rate=5.0, mean_rate=2.0, rate_unit=events/second");
+        verify(logger).info(marker, "type=TIMER, name=prefix.test.timer, count=1, min=300.0, max=100.0, " +
+                "mean=200.0, stddev=400.0, p50=500.0, p75=600.0, p95=700.0, p98=800.0, p99=900.0, p999=1000.0," +
+                " m1_rate=3.0, m5_rate=4.0, m15_rate=5.0, mean_rate=2.0, rate_unit=events/second, duration_unit=milliseconds");
+    }
+
+    private <T> SortedMap<String, T> map() {
+        return new TreeMap<>();
+    }
+
+    private <T> SortedMap<String, T> map(String name, T metric) {
+        final TreeMap<String, T> map = new TreeMap<>();
+        map.put(name, metric);
+        return map;
+    }
+
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoir.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoir.html new file mode 100644 index 0000000000..95be911e7f --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoir.html @@ -0,0 +1 @@ +SlidingTimeWindowArrayReservoir

SlidingTimeWindowArrayReservoir

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total164 of 1640%14 of 140%1515373788
SlidingTimeWindowArrayReservoir(long, TimeUnit, Clock)390%n/a118811
update(long)370%80%559911
getTick()340%40%336611
trim()260%20%227711
getSnapshot()90%n/a112211
static {...}70%n/a111111
SlidingTimeWindowArrayReservoir(long, TimeUnit)60%n/a112211
size()60%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoir.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoir.java.html new file mode 100644 index 0000000000..e8a2c9ba30 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoir.java.html @@ -0,0 +1,102 @@ +SlidingTimeWindowArrayReservoir.java

SlidingTimeWindowArrayReservoir.java

package com.codahale.metrics;
+
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicLong;
+
+/**
+ * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
+ * in the last {@code N} seconds (or other time unit).
+ */
+public class SlidingTimeWindowArrayReservoir implements Reservoir {
+    // allow for this many duplicate ticks before overwriting measurements
+    private static final long COLLISION_BUFFER = 256L;
+    // only trim on updating once every N
+    private static final long TRIM_THRESHOLD = 256L;
+    private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;
+
+    private final Clock clock;
+    private final ChunkedAssociativeLongArray measurements;
+    private final long window;
+    private final AtomicLong lastTick;
+    private final AtomicLong count;
+    private final long startTick;
+
+    /**
+     * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given window of time.
+     *
+     * @param window     the window of time
+     * @param windowUnit the unit of {@code window}
+     */
+    public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit) {
+        this(window, windowUnit, Clock.defaultClock());
+    }
+
+    /**
+     * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given clock and window of time.
+     *
+     * @param window     the window of time
+     * @param windowUnit the unit of {@code window}
+     * @param clock      the {@link Clock} to use
+     */
+    public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit, Clock clock) {
+        this.startTick = clock.getTick();
+        this.clock = clock;
+        this.measurements = new ChunkedAssociativeLongArray();
+        this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;
+        this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);
+        this.count = new AtomicLong();
+    }
+
+    @Override
+    public int size() {
+        trim();
+        return measurements.size();
+    }
+
+    @Override
+    public void update(long value) {
+        long newTick;
+        do {
+            if (count.incrementAndGet() % TRIM_THRESHOLD == 0L) {
+                trim();
+            }
+            long lastTick = this.lastTick.get();
+            newTick = getTick();
+            boolean longOverflow = newTick < lastTick;
+            if (longOverflow) {
+                measurements.clear();
+            }
+        } while (!measurements.put(newTick, value));
+    }
+
+    @Override
+    public Snapshot getSnapshot() {
+        trim();
+        return new UniformSnapshot(measurements.values());
+    }
+
+    private long getTick() {
+        for ( ;; ) {
+            final long oldTick = lastTick.get();
+            final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;
+            // ensure the tick is strictly incrementing even if there are duplicate ticks
+            final long newTick = tick - oldTick > 0L ? tick : oldTick + 1L;
+            if (lastTick.compareAndSet(oldTick, newTick)) {
+                return newTick;
+            }
+        }
+    }
+
+    void trim() {
+        final long now = getTick();
+        final long windowStart = now - window;
+        final long windowEnd = now + CLEAR_BUFFER;
+        if (windowStart < windowEnd) {
+            measurements.trim(windowStart, windowEnd);
+        } else {
+            // long overflow handling that can happen only after 1 year after class loading
+            measurements.clear();
+        }
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoirTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoirTest.html new file mode 100644 index 0000000000..48fff1e914 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoirTest.html @@ -0,0 +1 @@ +SlidingTimeWindowArrayReservoirTest

SlidingTimeWindowArrayReservoirTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total471 of 4710%18 of 180%1414747455
testGetTickOverflow()2520%120%77313111
comparisonResultsTest()910%60%44191911
boundsMeasurementsToATimeWindow()830%n/a11151511
storesMeasurementsWithDuplicateTicks()420%n/a118811
SlidingTimeWindowArrayReservoirTest()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoirTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoirTest.java.html new file mode 100644 index 0000000000..3dbb2e2030 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoirTest.java.html @@ -0,0 +1,151 @@ +SlidingTimeWindowArrayReservoirTest.java

SlidingTimeWindowArrayReservoirTest.java

package com.codahale.metrics;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import static java.util.concurrent.TimeUnit.NANOSECONDS;
+
+import org.junit.Test;
+
+import java.util.Arrays;
+import java.util.Random;
+import java.util.concurrent.ThreadLocalRandom;
+import java.util.concurrent.atomic.AtomicLong;
+
+@SuppressWarnings("Duplicates")
+public class SlidingTimeWindowArrayReservoirTest {
+
+    @Test
+    public void storesMeasurementsWithDuplicateTicks() {
+        final Clock clock = mock(Clock.class);
+        final SlidingTimeWindowArrayReservoir reservoir = new SlidingTimeWindowArrayReservoir(10, NANOSECONDS, clock);
+
+        when(clock.getTick()).thenReturn(20L);
+
+        reservoir.update(1);
+        reservoir.update(2);
+
+        assertThat(reservoir.getSnapshot().getValues())
+                .containsOnly(1, 2);
+    }
+
+    @Test
+    public void boundsMeasurementsToATimeWindow() {
+        final Clock clock = mock(Clock.class);
+        final SlidingTimeWindowArrayReservoir reservoir = new SlidingTimeWindowArrayReservoir(10, NANOSECONDS, clock);
+
+        when(clock.getTick()).thenReturn(0L);
+        reservoir.update(1);
+
+        when(clock.getTick()).thenReturn(5L);
+        reservoir.update(2);
+
+        when(clock.getTick()).thenReturn(10L);
+        reservoir.update(3);
+
+        when(clock.getTick()).thenReturn(15L);
+        reservoir.update(4);
+
+        when(clock.getTick()).thenReturn(20L);
+        reservoir.update(5);
+
+        assertThat(reservoir.getSnapshot().getValues())
+                .containsOnly(4, 5);
+    }
+
+    @Test
+    public void comparisonResultsTest() {
+        int cycles = 1000000;
+        long time = (Long.MAX_VALUE / 256) - (long) (cycles * 0.5);
+        ManualClock manualClock = new ManualClock();
+        manualClock.addNanos(time);
+        int window = 300;
+        Random random = new Random(ThreadLocalRandom.current().nextInt());
+
+        SlidingTimeWindowReservoir treeReservoir = new SlidingTimeWindowReservoir(window, NANOSECONDS, manualClock);
+        SlidingTimeWindowArrayReservoir arrayReservoir = new SlidingTimeWindowArrayReservoir(window, NANOSECONDS, manualClock);
+
+        for (int i = 0; i < cycles; i++) {
+            manualClock.addNanos(1);
+            treeReservoir.update(i);
+            arrayReservoir.update(i);
+            if (random.nextDouble() < 0.01) {
+                long[] treeValues = treeReservoir.getSnapshot().getValues();
+                long[] arrValues = arrayReservoir.getSnapshot().getValues();
+                assertThat(arrValues).isEqualTo(treeValues);
+            }
+            if (random.nextDouble() < 0.05) {
+                assertThat(arrayReservoir.size()).isEqualTo(treeReservoir.size());
+            }
+        }
+    }
+
+    @Test
+    public void testGetTickOverflow() {
+        final Random random = new Random(0);
+        final int window = 128;
+        AtomicLong counter = new AtomicLong(0L);
+
+        // Note: 'threshold' defines the number of updates submitted to the reservoir after overflowing
+        for (int threshold : Arrays.asList(0, 1, 2, 127, 128, 129, 255, 256, 257)) {
+
+            // Note: 'updatePerTick' defines the number of updates submitted to the reservoir between each tick
+            for (int updatesPerTick : Arrays.asList(1, 2, 127, 128, 129, 255, 256, 257)) {
+                //logger.info("Executing test: threshold={}, updatesPerTick={}", threshold, updatesPerTick);
+
+                // Set the clock to overflow in (2*window+1)ns
+                final ManualClock clock = new ManualClock();
+                clock.addNanos(Long.MAX_VALUE / 256 - 2 * window - clock.getTick());
+                assertThat(clock.getTick() * 256).isGreaterThan(0);
+
+                // Create the reservoir
+                final SlidingTimeWindowArrayReservoir reservoir = new SlidingTimeWindowArrayReservoir(window, NANOSECONDS, clock);
+                int updatesAfterThreshold = 0;
+                while (true) {
+                    // Update the reservoir
+                    for (int i = 0; i < updatesPerTick; i++) {
+                        long l = counter.incrementAndGet();
+                        reservoir.update(l);
+                    }
+
+                    // Randomly check the reservoir size
+                    if (random.nextDouble() < 0.1) {
+                        assertThat(reservoir.size())
+                                .as("Bad reservoir size with: threshold=%d, updatesPerTick=%d", threshold, updatesPerTick)
+                                .isLessThanOrEqualTo(window * 256);
+                    }
+
+                    // Update the clock
+                    clock.addNanos(1);
+
+                    // If the clock has overflowed start counting updates
+                    if ((clock.getTick() * 256) < 0) {
+                        if (updatesAfterThreshold++ >= threshold) {
+                            break;
+                        }
+                    }
+                }
+
+                // Check the final reservoir size
+                assertThat(reservoir.size())
+                        .as("Bad final reservoir size with: threshold=%d, updatesPerTick=%d", threshold, updatesPerTick)
+                        .isLessThanOrEqualTo(window * 256);
+
+                // Advance the clock far enough to clear the reservoir.  Note that here the window only loosely defines
+                // the reservoir window; when updatesPerTick is greater than 128 the sliding window will always be well
+                // ahead of the current clock time, and advances in getTick while in trim (called randomly above from
+                // size and every 256 updates).  Until the clock "catches up" advancing the clock will have no effect on
+                // the reservoir, and reservoir.size() will merely move the window forward 1/256th of a ns - as such, an
+                // arbitrary increment of 1s here was used instead to advance the clock well beyond any updates recorded
+                // above.
+                clock.addSeconds(1);
+
+                // The reservoir should now be empty
+                assertThat(reservoir.size())
+                        .as("Bad reservoir size after delay with: threshold=%d, updatesPerTick=%d", threshold, updatesPerTick)
+                        .isEqualTo(0);
+            }
+        }
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAverages.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAverages.html new file mode 100644 index 0000000000..2320b6e746 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAverages.html @@ -0,0 +1 @@ +SlidingTimeWindowMovingAverages

SlidingTimeWindowMovingAverages

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total336 of 3360%22 of 220%252570701414
sumBuckets(Instant, int)740%20%22131311
SlidingTimeWindowMovingAverages(Clock)500%20%22121211
cleanOldBuckets(Instant)470%40%33121211
cleanBucketRange(int, int)440%80%558811
tickIfNecessary()430%40%33101011
getMinuteRate(int)180%n/a112211
static {...}140%n/a113311
normalizeIndex(int)120%20%222211
update(long)90%n/a112211
calculateIndexOfTick(Instant)90%n/a111111
SlidingTimeWindowMovingAverages()40%n/a112211
getM15Rate()40%n/a111111
getM5Rate()40%n/a111111
getM1Rate()40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAverages.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAverages.java.html new file mode 100644 index 0000000000..150a7baa1d --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAverages.java.html @@ -0,0 +1,198 @@ +SlidingTimeWindowMovingAverages.java

SlidingTimeWindowMovingAverages.java

package com.codahale.metrics;
+
+import java.time.Duration;
+import java.time.Instant;
+import java.util.ArrayList;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicLong;
+import java.util.concurrent.atomic.LongAdder;
+
+/**
+ * A triple of simple moving average rates (one, five and fifteen minutes rates) as needed by {@link Meter}.
+ * <p>
+ * The averages are unweighted, i.e. they include strictly only the events in the
+ * sliding time window, every event having the same weight. Unlike the
+ * the more widely used {@link ExponentialMovingAverages} implementation,
+ * with this class the moving average rate drops immediately to zero if the last
+ * marked event is older than the time window.
+ * <p>
+ * A {@link Meter} with {@link SlidingTimeWindowMovingAverages} works similarly to
+ * a {@link Histogram} with an {@link SlidingTimeWindowArrayReservoir}, but as a Meter
+ * needs to keep track only of the count of events (not the events itself), the memory
+ * overhead is much smaller. SlidingTimeWindowMovingAverages uses buckets with just one
+ * counter to accumulate the number of events (one bucket per seconds, giving 900 buckets
+ * for the 15 minutes time window).
+ */
+public class SlidingTimeWindowMovingAverages implements MovingAverages {
+
+    private static final long TIME_WINDOW_DURATION_MINUTES = 15;
+    private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(1);
+    private static final Duration TIME_WINDOW_DURATION = Duration.ofMinutes(TIME_WINDOW_DURATION_MINUTES);
+
+    // package private for the benefit of the unit test
+    static final int NUMBER_OF_BUCKETS = (int) (TIME_WINDOW_DURATION.toNanos() / TICK_INTERVAL);
+
+    private final AtomicLong lastTick;
+    private final Clock clock;
+
+    /**
+     * One counter per time bucket/slot (i.e. per second, see TICK_INTERVAL) for the entire
+     * time window (i.e. 15 minutes, see TIME_WINDOW_DURATION_MINUTES)
+     */
+    private ArrayList<LongAdder> buckets;
+
+    /**
+     * Index into buckets, pointing at the bucket containing the oldest counts
+     */
+    private int oldestBucketIndex;
+
+    /**
+     * Index into buckets, pointing at the bucket with the count for the current time (tick)
+     */
+    private int currentBucketIndex;
+
+    /**
+     * Instant at creation time of the time window. Used to calculate the currentBucketIndex
+     * for the instant of a given tick (instant modulo time window duration)
+     */
+    private final Instant bucketBaseTime;
+
+    /**
+     * Instant of the bucket with index oldestBucketIndex
+     */
+    Instant oldestBucketTime;
+
+    /**
+     * Creates a new {@link SlidingTimeWindowMovingAverages}.
+     */
+    public SlidingTimeWindowMovingAverages() {
+        this(Clock.defaultClock());
+    }
+
+    /**
+     * Creates a new {@link SlidingTimeWindowMovingAverages}.
+     *
+     * @param clock the clock to use for the meter ticks
+     */
+    public SlidingTimeWindowMovingAverages(Clock clock) {
+        this.clock = clock;
+        final long startTime = clock.getTick();
+        lastTick = new AtomicLong(startTime);
+
+        buckets = new ArrayList<>(NUMBER_OF_BUCKETS);
+        for (int i = 0; i < NUMBER_OF_BUCKETS; i++) {
+            buckets.add(new LongAdder());
+        }
+        bucketBaseTime = Instant.ofEpochSecond(0L, startTime);
+        oldestBucketTime = bucketBaseTime;
+        oldestBucketIndex = 0;
+        currentBucketIndex = 0;
+    }
+
+    @Override
+    public void update(long n) {
+        buckets.get(currentBucketIndex).add(n);
+    }
+
+    @Override
+    public void tickIfNecessary() {
+        final long oldTick = lastTick.get();
+        final long newTick = clock.getTick();
+        final long age = newTick - oldTick;
+        if (age >= TICK_INTERVAL) {
+            // - the newTick doesn't fall into the same slot as the oldTick anymore
+            // - newLastTick is the lower border time of the new currentBucketIndex slot
+            final long newLastTick = newTick - age % TICK_INTERVAL;
+            if (lastTick.compareAndSet(oldTick, newLastTick)) {
+                Instant currentInstant = Instant.ofEpochSecond(0L, newLastTick);
+                currentBucketIndex = normalizeIndex(calculateIndexOfTick(currentInstant));
+                cleanOldBuckets(currentInstant);
+            }
+        }
+    }
+
+    @Override
+    public double getM15Rate() {
+        return getMinuteRate(15);
+    }
+
+    @Override
+    public double getM5Rate() {
+        return getMinuteRate(5);
+    }
+
+    @Override
+    public double getM1Rate() {
+        return getMinuteRate(1);
+    }
+
+    private double getMinuteRate(int minutes) {
+        Instant now = Instant.ofEpochSecond(0L, lastTick.get());
+        return sumBuckets(now, (int) (TimeUnit.MINUTES.toNanos(minutes) / TICK_INTERVAL));
+    }
+
+    int calculateIndexOfTick(Instant tickTime) {
+        return (int) (Duration.between(bucketBaseTime, tickTime).toNanos() / TICK_INTERVAL);
+    }
+
+    int normalizeIndex(int index) {
+        int mod = index % NUMBER_OF_BUCKETS;
+        return mod >= 0 ? mod : mod + NUMBER_OF_BUCKETS;
+    }
+
+    private void cleanOldBuckets(Instant currentTick) {
+        int newOldestIndex;
+        Instant oldestStillNeededTime = currentTick.minus(TIME_WINDOW_DURATION).plusNanos(TICK_INTERVAL);
+        Instant youngestNotInWindow = oldestBucketTime.plus(TIME_WINDOW_DURATION);
+        if (oldestStillNeededTime.isAfter(youngestNotInWindow)) {
+            // there was no update() call for more than two whole TIME_WINDOW_DURATION
+            newOldestIndex = oldestBucketIndex;
+            oldestBucketTime = currentTick;
+        } else if (oldestStillNeededTime.isAfter(oldestBucketTime)) {
+            newOldestIndex = normalizeIndex(calculateIndexOfTick(oldestStillNeededTime));
+            oldestBucketTime = oldestStillNeededTime;
+        } else {
+            return;
+        }
+
+        cleanBucketRange(oldestBucketIndex, newOldestIndex);
+        oldestBucketIndex = newOldestIndex;
+    }
+
+    private void cleanBucketRange(int fromIndex, int toIndex) {
+        if (fromIndex < toIndex) {
+            for (int i = fromIndex; i < toIndex; i++) {
+                buckets.get(i).reset();
+            }
+        } else {
+            for (int i = fromIndex; i < NUMBER_OF_BUCKETS; i++) {
+                buckets.get(i).reset();
+            }
+            for (int i = 0; i < toIndex; i++) {
+                buckets.get(i).reset();
+            }
+        }
+    }
+
+    private long sumBuckets(Instant toTime, int numberOfBuckets) {
+
+        // increment toIndex to include the current bucket into the sum
+        int toIndex = normalizeIndex(calculateIndexOfTick(toTime) + 1);
+        int fromIndex = normalizeIndex(toIndex - numberOfBuckets);
+        LongAdder adder = new LongAdder();
+
+        if (fromIndex < toIndex) {
+            buckets.stream()
+                    .skip(fromIndex)
+                    .limit(toIndex - fromIndex)
+                    .mapToLong(LongAdder::longValue)
+                    .forEach(adder::add);
+        } else {
+            buckets.stream().limit(toIndex).mapToLong(LongAdder::longValue).forEach(adder::add);
+            buckets.stream().skip(fromIndex).mapToLong(LongAdder::longValue).forEach(adder::add);
+        }
+        long retval = adder.longValue();
+        return retval;
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAveragesTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAveragesTest.html new file mode 100644 index 0000000000..63759cd4bf --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAveragesTest.html @@ -0,0 +1 @@ +SlidingTimeWindowMovingAveragesTest

SlidingTimeWindowMovingAveragesTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total412 of 4120%8 of 80%151578781111
normalizeIndex()610%n/a11101011
cleanup_window_wrap_around()590%n/a11111111
mark_first_cleanup()510%20%22101011
mark_max_without_cleanup()500%20%22101011
mark_10_values()470%20%229911
mark_1000_values()360%20%227711
cleanup_pause_shorter_than_window()300%n/a116611
cleanup_pause_longer_than_two_windows()300%n/a116611
calculateIndexOfTick()230%n/a114411
init()220%n/a114411
SlidingTimeWindowMovingAveragesTest()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAveragesTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAveragesTest.java.html new file mode 100644 index 0000000000..21018f5bf6 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAveragesTest.java.html @@ -0,0 +1,167 @@ +SlidingTimeWindowMovingAveragesTest.java

SlidingTimeWindowMovingAveragesTest.java

package com.codahale.metrics;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import java.time.Instant;
+
+import static com.codahale.metrics.SlidingTimeWindowMovingAverages.NUMBER_OF_BUCKETS;
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class SlidingTimeWindowMovingAveragesTest {
+
+    private ManualClock clock;
+    private SlidingTimeWindowMovingAverages movingAverages;
+    private Meter meter;
+
+    @Before
+    public void init() {
+        clock = new ManualClock();
+        movingAverages = new SlidingTimeWindowMovingAverages(clock);
+        meter = new Meter(movingAverages, clock);
+    }
+
+    @Test
+    public void normalizeIndex() {
+
+        SlidingTimeWindowMovingAverages stwm = new SlidingTimeWindowMovingAverages();
+
+        assertThat(stwm.normalizeIndex(0)).isEqualTo(0);
+        assertThat(stwm.normalizeIndex(900)).isEqualTo(0);
+        assertThat(stwm.normalizeIndex(9000)).isEqualTo(0);
+        assertThat(stwm.normalizeIndex(-900)).isEqualTo(0);
+
+        assertThat(stwm.normalizeIndex(1)).isEqualTo(1);
+
+        assertThat(stwm.normalizeIndex(899)).isEqualTo(899);
+        assertThat(stwm.normalizeIndex(-1)).isEqualTo(899);
+        assertThat(stwm.normalizeIndex(-901)).isEqualTo(899);
+    }
+
+    @Test
+    public void calculateIndexOfTick() {
+
+        SlidingTimeWindowMovingAverages stwm = new SlidingTimeWindowMovingAverages(clock);
+
+        assertThat(stwm.calculateIndexOfTick(Instant.ofEpochSecond(0L))).isEqualTo(0);
+        assertThat(stwm.calculateIndexOfTick(Instant.ofEpochSecond(1L))).isEqualTo(1);
+    }
+
+    @Test
+    public void mark_max_without_cleanup() {
+
+        int markCount = NUMBER_OF_BUCKETS;
+
+        // compensate the first addSeconds in the loop; first tick should be at zero
+        clock.addSeconds(-1);
+
+        for (int i = 0; i < markCount; i++) {
+            clock.addSeconds(1);
+            meter.mark();
+        }
+
+        // verify that no cleanup happened yet
+        assertThat(movingAverages.oldestBucketTime).isEqualTo(Instant.ofEpochSecond(0L));
+
+        assertThat(meter.getOneMinuteRate()).isEqualTo(60.0);
+        assertThat(meter.getFiveMinuteRate()).isEqualTo(300.0);
+        assertThat(meter.getFifteenMinuteRate()).isEqualTo(900.0);
+    }
+
+    @Test
+    public void mark_first_cleanup() {
+
+        int markCount = NUMBER_OF_BUCKETS + 1;
+
+        // compensate the first addSeconds in the loop; first tick should be at zero
+        clock.addSeconds(-1);
+
+        for (int i = 0; i < markCount; i++) {
+            clock.addSeconds(1);
+            meter.mark();
+        }
+
+        // verify that at least one cleanup happened
+        assertThat(movingAverages.oldestBucketTime).isNotEqualTo(Instant.EPOCH);
+
+        assertThat(meter.getOneMinuteRate()).isEqualTo(60.0);
+        assertThat(meter.getFiveMinuteRate()).isEqualTo(300.0);
+        assertThat(meter.getFifteenMinuteRate()).isEqualTo(900.0);
+    }
+
+    @Test
+    public void mark_10_values() {
+
+        // compensate the first addSeconds in the loop; first tick should be at zero
+        clock.addSeconds(-1);
+
+        for (int i = 0; i < 10; i++) {
+            clock.addSeconds(1);
+            meter.mark();
+        }
+
+        assertThat(meter.getCount()).isEqualTo(10L);
+        assertThat(meter.getOneMinuteRate()).isEqualTo(10.0);
+        assertThat(meter.getFiveMinuteRate()).isEqualTo(10.0);
+        assertThat(meter.getFifteenMinuteRate()).isEqualTo(10.0);
+    }
+
+    @Test
+    public void mark_1000_values() {
+
+        for (int i = 0; i < 1000; i++) {
+            clock.addSeconds(1);
+            meter.mark();
+        }
+
+        // only 60/300/900 of the 1000 events took place in the last 1/5/15 minute(s)
+        assertThat(meter.getOneMinuteRate()).isEqualTo(60.0);
+        assertThat(meter.getFiveMinuteRate()).isEqualTo(300.0);
+        assertThat(meter.getFifteenMinuteRate()).isEqualTo(900.0);
+    }
+
+    @Test
+    public void cleanup_pause_shorter_than_window() {
+
+        meter.mark(10);
+
+        // no mark for three minutes
+        clock.addSeconds(180);
+        assertThat(meter.getOneMinuteRate()).isEqualTo(0.0);
+        assertThat(meter.getFiveMinuteRate()).isEqualTo(10.0);
+        assertThat(meter.getFifteenMinuteRate()).isEqualTo(10.0);
+    }
+
+    @Test
+    public void cleanup_window_wrap_around() {
+
+        // mark at 14:40 minutes of the 15 minute window...
+        clock.addSeconds(880);
+        meter.mark(10);
+
+        // and query at 15:30 minutes (the bucket index must have wrapped around)
+        clock.addSeconds(50);
+        assertThat(meter.getOneMinuteRate()).isEqualTo(10.0);
+        assertThat(meter.getFiveMinuteRate()).isEqualTo(10.0);
+        assertThat(meter.getFifteenMinuteRate()).isEqualTo(10.0);
+
+        // and query at 30:10 minutes (the bucket index must have wrapped around for the second time)
+        clock.addSeconds(880);
+        assertThat(meter.getOneMinuteRate()).isEqualTo(0.0);
+        assertThat(meter.getFiveMinuteRate()).isEqualTo(0.0);
+        assertThat(meter.getFifteenMinuteRate()).isEqualTo(0.0);
+    }
+
+    @Test
+    public void cleanup_pause_longer_than_two_windows() {
+
+        meter.mark(10);
+
+        // after forty minutes all rates should be zero
+        clock.addSeconds(2400);
+        assertThat(meter.getOneMinuteRate()).isEqualTo(0.0);
+        assertThat(meter.getFiveMinuteRate()).isEqualTo(0.0);
+        assertThat(meter.getFifteenMinuteRate()).isEqualTo(0.0);
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoir.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoir.html new file mode 100644 index 0000000000..31f61e4496 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoir.html @@ -0,0 +1 @@ +SlidingTimeWindowReservoir

SlidingTimeWindowReservoir

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total159 of 1590%8 of 80%1212333388
SlidingTimeWindowReservoir(long, TimeUnit, Clock)390%n/a118811
trim()380%20%228811
getTick()340%40%336611
update(long)200%20%224411
getSnapshot()90%n/a112211
static {...}70%n/a111111
SlidingTimeWindowReservoir(long, TimeUnit)60%n/a112211
size()60%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoir.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoir.java.html new file mode 100644 index 0000000000..acafbad34f --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoir.java.html @@ -0,0 +1,96 @@ +SlidingTimeWindowReservoir.java

SlidingTimeWindowReservoir.java

package com.codahale.metrics;
+
+import java.util.concurrent.ConcurrentSkipListMap;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicLong;
+
+/**
+ * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
+ * in the last {@code N} seconds (or other time unit).
+ */
+public class SlidingTimeWindowReservoir implements Reservoir {
+    // allow for this many duplicate ticks before overwriting measurements
+    private static final int COLLISION_BUFFER = 256;
+    // only trim on updating once every N
+    private static final int TRIM_THRESHOLD = 256;
+    // offsets the front of the time window for the purposes of clearing the buffer in trim
+    private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;
+
+    private final Clock clock;
+    private final ConcurrentSkipListMap<Long, Long> measurements;
+    private final long window;
+    private final AtomicLong lastTick;
+    private final AtomicLong count;
+    private final long startTick;
+
+    /**
+     * Creates a new {@link SlidingTimeWindowReservoir} with the given window of time.
+     *
+     * @param window     the window of time
+     * @param windowUnit the unit of {@code window}
+     */
+    public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit) {
+        this(window, windowUnit, Clock.defaultClock());
+    }
+
+    /**
+     * Creates a new {@link SlidingTimeWindowReservoir} with the given clock and window of time.
+     *
+     * @param window     the window of time
+     * @param windowUnit the unit of {@code window}
+     * @param clock      the {@link Clock} to use
+     */
+    public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit, Clock clock) {
+        this.startTick = clock.getTick();
+        this.clock = clock;
+        this.measurements = new ConcurrentSkipListMap<>();
+        this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;
+        this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);
+        this.count = new AtomicLong();
+    }
+
+    @Override
+    public int size() {
+        trim();
+        return measurements.size();
+    }
+
+    @Override
+    public void update(long value) {
+        if (count.incrementAndGet() % TRIM_THRESHOLD == 0) {
+            trim();
+        }
+        measurements.put(getTick(), value);
+    }
+
+    @Override
+    public Snapshot getSnapshot() {
+        trim();
+        return new UniformSnapshot(measurements.values());
+    }
+
+    private long getTick() {
+        for ( ;; ) {
+            final long oldTick = lastTick.get();
+            final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;
+            // ensure the tick is strictly incrementing even if there are duplicate ticks
+            final long newTick = tick - oldTick > 0 ? tick : oldTick + 1;
+            if (lastTick.compareAndSet(oldTick, newTick)) {
+                return newTick;
+            }
+        }
+    }
+
+    private void trim() {
+        final long now = getTick();
+        final long windowStart = now - window;
+        final long windowEnd = now + CLEAR_BUFFER;
+        if (windowStart < windowEnd) {
+            measurements.headMap(windowStart).clear();
+            measurements.tailMap(windowEnd).clear();
+        } else {
+            measurements.subMap(windowEnd, windowStart).clear();
+        }
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoirTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoirTest.html new file mode 100644 index 0000000000..87aad5f2c4 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoirTest.html @@ -0,0 +1 @@ +SlidingTimeWindowReservoirTest

SlidingTimeWindowReservoirTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total380 of 3800%12 of 120%1010545444
testGetTickOverflow()2440%120%77292911
boundsMeasurementsToATimeWindow()910%n/a11161611
storesMeasurementsWithDuplicateTicks()420%n/a118811
SlidingTimeWindowReservoirTest()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoirTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoirTest.java.html new file mode 100644 index 0000000000..23c3c22e19 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoirTest.java.html @@ -0,0 +1,120 @@ +SlidingTimeWindowReservoirTest.java

SlidingTimeWindowReservoirTest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+
+import java.util.Arrays;
+import java.util.Random;
+
+import static java.util.concurrent.TimeUnit.NANOSECONDS;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+public class SlidingTimeWindowReservoirTest {
+    @Test
+    public void storesMeasurementsWithDuplicateTicks() {
+        final Clock clock = mock(Clock.class);
+        final SlidingTimeWindowReservoir reservoir = new SlidingTimeWindowReservoir(10, NANOSECONDS, clock);
+
+        when(clock.getTick()).thenReturn(20L);
+
+        reservoir.update(1);
+        reservoir.update(2);
+
+        assertThat(reservoir.getSnapshot().getValues())
+                .containsOnly(1, 2);
+    }
+
+    @Test
+    public void boundsMeasurementsToATimeWindow() {
+        final Clock clock = mock(Clock.class);
+        when(clock.getTick()).thenReturn(0L);
+
+        final SlidingTimeWindowReservoir reservoir = new SlidingTimeWindowReservoir(10, NANOSECONDS, clock);
+
+        when(clock.getTick()).thenReturn(0L);
+        reservoir.update(1);
+
+        when(clock.getTick()).thenReturn(5L);
+        reservoir.update(2);
+
+        when(clock.getTick()).thenReturn(10L);
+        reservoir.update(3);
+
+        when(clock.getTick()).thenReturn(15L);
+        reservoir.update(4);
+
+        when(clock.getTick()).thenReturn(20L);
+        reservoir.update(5);
+
+        assertThat(reservoir.getSnapshot().getValues())
+                .containsOnly(4, 5);
+    }
+
+    @Test
+    public void testGetTickOverflow() {
+        final Random random = new Random(0);
+        final int window = 128;
+
+        // Note: 'threshold' defines the number of updates submitted to the reservoir after overflowing
+        for (int threshold : Arrays.asList(0, 1, 2, 127, 128, 129, 255, 256, 257)) {
+
+            // Note: 'updatePerTick' defines the number of updates submitted to the reservoir between each tick
+            for (int updatesPerTick : Arrays.asList(1, 2, 127, 128, 129, 255, 256, 257)) {
+                //logger.info("Executing test: threshold={}, updatesPerTick={}", threshold, updatesPerTick);
+
+                final ManualClock clock = new ManualClock();
+
+                // Create the reservoir
+                final SlidingTimeWindowReservoir reservoir = new SlidingTimeWindowReservoir(window, NANOSECONDS, clock);
+
+                // Set the clock to overflow in (2*window+1)ns
+                clock.addNanos(Long.MAX_VALUE / 256 - 2 * window - clock.getTick());
+                assertThat(clock.getTick() * 256).isGreaterThan(0);
+
+                int updatesAfterThreshold = 0;
+                while (true) {
+                    // Update the reservoir
+                    for (int i = 0; i < updatesPerTick; i++)
+                        reservoir.update(0);
+
+                    // Randomly check the reservoir size
+                    if (random.nextDouble() < 0.1) {
+                        assertThat(reservoir.size())
+                                .as("Bad reservoir size with: threshold=%d, updatesPerTick=%d", threshold, updatesPerTick)
+                                .isLessThanOrEqualTo(window * 256);
+                    }
+
+                    // Update the clock
+                    clock.addNanos(1);
+
+                    // If the clock has overflowed start counting updates
+                    if ((clock.getTick() * 256) < 0) {
+                        if (updatesAfterThreshold++ >= threshold)
+                            break;
+                    }
+                }
+
+                // Check the final reservoir size
+                assertThat(reservoir.size())
+                        .as("Bad final reservoir size with: threshold=%d, updatesPerTick=%d", threshold, updatesPerTick)
+                        .isLessThanOrEqualTo(window * 256);
+
+                // Advance the clock far enough to clear the reservoir.  Note that here the window only loosely defines
+                // the reservoir window; when updatesPerTick is greater than 128 the sliding window will always be well
+                // ahead of the current clock time, and advances in getTick while in trim (called randomly above from
+                // size and every 256 updates).  Until the clock "catches up" advancing the clock will have no effect on
+                // the reservoir, and reservoir.size() will merely move the window forward 1/256th of a ns - as such, an
+                // arbitrary increment of 1s here was used instead to advance the clock well beyond any updates recorded
+                // above.
+                clock.addSeconds(1);
+
+                // The reservoir should now be empty
+                assertThat(reservoir.size())
+                        .as("Bad reservoir size after delay with: threshold=%d, updatesPerTick=%d", threshold, updatesPerTick)
+                        .isEqualTo(0);
+            }
+        }
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoir.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoir.html new file mode 100644 index 0000000000..91a0741156 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoir.html @@ -0,0 +1 @@ +SlidingWindowReservoir

SlidingWindowReservoir

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total68 of 680%2 of 20%55131344
getSnapshot()310%20%226611
update(long)180%n/a112211
SlidingWindowReservoir(int)100%n/a114411
size()90%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoir.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoir.java.html new file mode 100644 index 0000000000..2b73d1ff6f --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoir.java.html @@ -0,0 +1,44 @@ +SlidingWindowReservoir.java

SlidingWindowReservoir.java

package com.codahale.metrics;
+
+import static java.lang.Math.min;
+
+/**
+ * A {@link Reservoir} implementation backed by a sliding window that stores the last {@code N}
+ * measurements.
+ */
+public class SlidingWindowReservoir implements Reservoir {
+    private final long[] measurements;
+    private long count;
+
+    /**
+     * Creates a new {@link SlidingWindowReservoir} which stores the last {@code size} measurements.
+     *
+     * @param size the number of measurements to store
+     */
+    public SlidingWindowReservoir(int size) {
+        this.measurements = new long[size];
+        this.count = 0;
+    }
+
+    @Override
+    public synchronized int size() {
+        return (int) min(count, measurements.length);
+    }
+
+    @Override
+    public synchronized void update(long value) {
+        measurements[(int) (count++ % measurements.length)] = value;
+    }
+
+    @Override
+    public Snapshot getSnapshot() {
+        final long[] values = new long[size()];
+        for (int i = 0; i < values.length; i++) {
+            synchronized (this) {
+                values[i] = measurements[i];
+            }
+        }
+        return new UniformSnapshot(values);
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoirTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoirTest.html new file mode 100644 index 0000000000..07b637df15 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoirTest.html @@ -0,0 +1 @@ +SlidingWindowReservoirTest

SlidingWindowReservoirTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total73 of 730%0 of 0n/a33141433
onlyKeepsTheMostRecentFromBigDataStreams()380%n/a117711
handlesSmallDataStreams()260%n/a115511
SlidingWindowReservoirTest()90%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoirTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoirTest.java.html new file mode 100644 index 0000000000..0550d86123 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoirTest.java.html @@ -0,0 +1,30 @@ +SlidingWindowReservoirTest.java

SlidingWindowReservoirTest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class SlidingWindowReservoirTest {
+    private final SlidingWindowReservoir reservoir = new SlidingWindowReservoir(3);
+
+    @Test
+    public void handlesSmallDataStreams() {
+        reservoir.update(1);
+        reservoir.update(2);
+
+        assertThat(reservoir.getSnapshot().getValues())
+                .containsOnly(1, 2);
+    }
+
+    @Test
+    public void onlyKeepsTheMostRecentFromBigDataStreams() {
+        reservoir.update(1);
+        reservoir.update(2);
+        reservoir.update(3);
+        reservoir.update(4);
+
+        assertThat(reservoir.getSnapshot().getValues())
+                .containsOnly(2, 3, 4);
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Snapshot.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Snapshot.html new file mode 100644 index 0000000000..024c0a42d5 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Snapshot.html @@ -0,0 +1 @@ +Snapshot

Snapshot

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total27 of 270%0 of 0n/a777777
getMedian()40%n/a111111
get75thPercentile()40%n/a111111
get95thPercentile()40%n/a111111
get98thPercentile()40%n/a111111
get99thPercentile()40%n/a111111
get999thPercentile()40%n/a111111
Snapshot()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Snapshot.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Snapshot.java.html new file mode 100644 index 0000000000..0b920b61f7 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Snapshot.java.html @@ -0,0 +1,122 @@ +Snapshot.java

Snapshot.java

package com.codahale.metrics;
+
+import java.io.OutputStream;
+
+/**
+ * A statistical snapshot of a {@link Snapshot}.
+ */
+public abstract class Snapshot {
+
+    /**
+     * Returns the value at the given quantile.
+     *
+     * @param quantile a given quantile, in {@code [0..1]}
+     * @return the value in the distribution at {@code quantile}
+     */
+    public abstract double getValue(double quantile);
+
+    /**
+     * Returns the entire set of values in the snapshot.
+     *
+     * @return the entire set of values
+     */
+    public abstract long[] getValues();
+
+    /**
+     * Returns the number of values in the snapshot.
+     *
+     * @return the number of values
+     */
+    public abstract int size();
+
+    /**
+     * Returns the median value in the distribution.
+     *
+     * @return the median value
+     */
+    public double getMedian() {
+        return getValue(0.5);
+    }
+
+    /**
+     * Returns the value at the 75th percentile in the distribution.
+     *
+     * @return the value at the 75th percentile
+     */
+    public double get75thPercentile() {
+        return getValue(0.75);
+    }
+
+    /**
+     * Returns the value at the 95th percentile in the distribution.
+     *
+     * @return the value at the 95th percentile
+     */
+    public double get95thPercentile() {
+        return getValue(0.95);
+    }
+
+    /**
+     * Returns the value at the 98th percentile in the distribution.
+     *
+     * @return the value at the 98th percentile
+     */
+    public double get98thPercentile() {
+        return getValue(0.98);
+    }
+
+    /**
+     * Returns the value at the 99th percentile in the distribution.
+     *
+     * @return the value at the 99th percentile
+     */
+    public double get99thPercentile() {
+        return getValue(0.99);
+    }
+
+    /**
+     * Returns the value at the 99.9th percentile in the distribution.
+     *
+     * @return the value at the 99.9th percentile
+     */
+    public double get999thPercentile() {
+        return getValue(0.999);
+    }
+
+    /**
+     * Returns the highest value in the snapshot.
+     *
+     * @return the highest value
+     */
+    public abstract long getMax();
+
+    /**
+     * Returns the arithmetic mean of the values in the snapshot.
+     *
+     * @return the arithmetic mean
+     */
+    public abstract double getMean();
+
+    /**
+     * Returns the lowest value in the snapshot.
+     *
+     * @return the lowest value
+     */
+    public abstract long getMin();
+
+    /**
+     * Returns the standard deviation of the values in the snapshot.
+     *
+     * @return the standard value
+     */
+    public abstract double getStdDev();
+
+    /**
+     * Writes the values of the snapshot to the given stream.
+     *
+     * @param output an output stream
+     */
+    public abstract void dump(OutputStream output);
+
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Timer$Context.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Timer$Context.html new file mode 100644 index 0000000000..b29101721a --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Timer$Context.html @@ -0,0 +1 @@ +Timer.Context

Timer.Context

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total31 of 310%0 of 0n/a33101033
stop()140%n/a113311
Timer.Context(Timer, Clock)130%n/a115511
close()40%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Timer.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Timer.html new file mode 100644 index 0000000000..3229942c8f --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Timer.html @@ -0,0 +1 @@ +Timer

Timer

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total135 of 1350%2 of 20%181836361717
time(Callable)160%n/a113311
timeSupplier(Supplier)160%n/a113311
time(Runnable)140%n/a114411
Timer(Reservoir, Clock)120%n/a112211
Timer(Meter, Histogram, Clock)120%n/a115511
update(long)120%20%224411
time()70%n/a111111
Timer()60%n/a112211
update(long, TimeUnit)60%n/a112211
Timer(Reservoir)50%n/a112211
update(Duration)50%n/a112211
getCount()40%n/a111111
getFifteenMinuteRate()40%n/a111111
getFiveMinuteRate()40%n/a111111
getMeanRate()40%n/a111111
getOneMinuteRate()40%n/a111111
getSnapshot()40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Timer.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Timer.java.html new file mode 100644 index 0000000000..5086e4adff --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/Timer.java.html @@ -0,0 +1,204 @@ +Timer.java

Timer.java

package com.codahale.metrics;
+
+import java.time.Duration;
+import java.util.concurrent.Callable;
+import java.util.concurrent.TimeUnit;
+import java.util.function.Supplier;
+
+/**
+ * A timer metric which aggregates timing durations and provides duration statistics, plus
+ * throughput statistics via {@link Meter}.
+ */
+public class Timer implements Metered, Sampling {
+    /**
+     * A timing context.
+     *
+     * @see Timer#time()
+     */
+    public static class Context implements AutoCloseable {
+        private final Timer timer;
+        private final Clock clock;
+        private final long startTime;
+
+        Context(Timer timer, Clock clock) {
+            this.timer = timer;
+            this.clock = clock;
+            this.startTime = clock.getTick();
+        }
+
+        /**
+         * Updates the timer with the difference between current and start time. Call to this method will
+         * not reset the start time. Multiple calls result in multiple updates.
+         *
+         * @return the elapsed time in nanoseconds
+         */
+        public long stop() {
+            final long elapsed = clock.getTick() - startTime;
+            timer.update(elapsed, TimeUnit.NANOSECONDS);
+            return elapsed;
+        }
+
+        /**
+         * Equivalent to calling {@link #stop()}.
+         */
+        @Override
+        public void close() {
+            stop();
+        }
+    }
+
+    private final Meter meter;
+    private final Histogram histogram;
+    private final Clock clock;
+
+    /**
+     * Creates a new {@link Timer} using an {@link ExponentiallyDecayingReservoir} and the default
+     * {@link Clock}.
+     */
+    public Timer() {
+        this(new ExponentiallyDecayingReservoir());
+    }
+
+    /**
+     * Creates a new {@link Timer} that uses the given {@link Reservoir}.
+     *
+     * @param reservoir the {@link Reservoir} implementation the timer should use
+     */
+    public Timer(Reservoir reservoir) {
+        this(reservoir, Clock.defaultClock());
+    }
+
+    /**
+     * Creates a new {@link Timer} that uses the given {@link Reservoir} and {@link Clock}.
+     *
+     * @param reservoir the {@link Reservoir} implementation the timer should use
+     * @param clock     the {@link Clock} implementation the timer should use
+     */
+    public Timer(Reservoir reservoir, Clock clock) {
+        this(new Meter(clock), new Histogram(reservoir), clock);
+    }
+
+    public Timer(Meter meter, Histogram histogram, Clock clock) {
+        this.meter = meter;
+        this.histogram = histogram;
+        this.clock = clock;
+    }
+
+    /**
+     * Adds a recorded duration.
+     *
+     * @param duration the length of the duration
+     * @param unit     the scale unit of {@code duration}
+     */
+    public void update(long duration, TimeUnit unit) {
+        update(unit.toNanos(duration));
+    }
+
+    /**
+     * Adds a recorded duration.
+     *
+     * @param duration the {@link Duration} to add to the timer. Negative or zero value are ignored.
+     */
+    public void update(Duration duration) {
+        update(duration.toNanos());
+    }
+
+    /**
+     * Times and records the duration of event.
+     *
+     * @param event a {@link Callable} whose {@link Callable#call()} method implements a process
+     *              whose duration should be timed
+     * @param <T>   the type of the value returned by {@code event}
+     * @return the value returned by {@code event}
+     * @throws Exception if {@code event} throws an {@link Exception}
+     */
+    public <T> T time(Callable<T> event) throws Exception {
+        final long startTime = clock.getTick();
+        try {
+            return event.call();
+        } finally {
+            update(clock.getTick() - startTime);
+        }
+    }
+
+    /**
+     * Times and records the duration of event. Should not throw exceptions, for that use the
+     * {@link #time(Callable)} method.
+     *
+     * @param event a {@link Supplier} whose {@link Supplier#get()} method implements a process
+     *              whose duration should be timed
+     * @param <T>   the type of the value returned by {@code event}
+     * @return the value returned by {@code event}
+     */
+    public <T> T timeSupplier(Supplier<T> event) {
+        final long startTime = clock.getTick();
+        try {
+            return event.get();
+        } finally {
+            update(clock.getTick() - startTime);
+        }
+    }
+
+    /**
+     * Times and records the duration of event.
+     *
+     * @param event a {@link Runnable} whose {@link Runnable#run()} method implements a process
+     *              whose duration should be timed
+     */
+    public void time(Runnable event) {
+        final long startTime = clock.getTick();
+        try {
+            event.run();
+        } finally {
+            update(clock.getTick() - startTime);
+        }
+    }
+
+    /**
+     * Returns a new {@link Context}.
+     *
+     * @return a new {@link Context}
+     * @see Context
+     */
+    public Context time() {
+        return new Context(this, clock);
+    }
+
+    @Override
+    public long getCount() {
+        return histogram.getCount();
+    }
+
+    @Override
+    public double getFifteenMinuteRate() {
+        return meter.getFifteenMinuteRate();
+    }
+
+    @Override
+    public double getFiveMinuteRate() {
+        return meter.getFiveMinuteRate();
+    }
+
+    @Override
+    public double getMeanRate() {
+        return meter.getMeanRate();
+    }
+
+    @Override
+    public double getOneMinuteRate() {
+        return meter.getOneMinuteRate();
+    }
+
+    @Override
+    public Snapshot getSnapshot() {
+        return histogram.getSnapshot();
+    }
+
+    private void update(long duration) {
+        if (duration >= 0) {
+            histogram.update(duration);
+            meter.mark();
+        }
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest$1.html new file mode 100644 index 0000000000..82408aed5a --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest$1.html @@ -0,0 +1 @@ +TimerTest.new Clock() {...}

TimerTest.new Clock() {...}

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total17 of 170%0 of 0n/a223322
{...}90%n/a112211
getTick()80%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest.html new file mode 100644 index 0000000000..aba3c5f0bd --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest.html @@ -0,0 +1 @@ +TimerTest

TimerTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total308 of 3080%0 of 0n/a151576761515
hasRates()470%n/a11111111
tryWithResourcesWork()360%n/a11101011
timesRunnableInstances()280%n/a118811
timesCallableInstances()250%n/a117711
timesSuppliedInstances()250%n/a117711
TimerTest()230%n/a114411
ignoresNegativeValues()200%n/a115511
java8NegativeDuration()200%n/a114411
updatesTheCountOnUpdates()190%n/a116611
timesContexts()190%n/a115511
returnsTheSnapshotFromTheReservoir()190%n/a115511
java8Duration()190%n/a114411
lambda$timesRunnableInstances$2(AtomicBoolean)40%n/a111111
lambda$timesSuppliedInstances$1()20%n/a111111
lambda$timesCallableInstances$0()20%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest.java.html new file mode 100644 index 0000000000..86b0e1e3e0 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest.java.html @@ -0,0 +1,162 @@ +TimerTest.java

TimerTest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+
+import java.time.Duration;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.offset;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoInteractions;
+import static org.mockito.Mockito.when;
+
+public class TimerTest {
+    private final Reservoir reservoir = mock(Reservoir.class);
+    private final Clock clock = new Clock() {
+        // a mock clock that increments its ticker by 50msec per call
+        private long val = 0;
+
+        @Override
+        public long getTick() {
+            return val += 50000000;
+        }
+    };
+    private final Timer timer = new Timer(reservoir, clock);
+
+    @Test
+    public void hasRates() {
+        assertThat(timer.getCount())
+                .isZero();
+
+        assertThat(timer.getMeanRate())
+                .isEqualTo(0.0, offset(0.001));
+
+        assertThat(timer.getOneMinuteRate())
+                .isEqualTo(0.0, offset(0.001));
+
+        assertThat(timer.getFiveMinuteRate())
+                .isEqualTo(0.0, offset(0.001));
+
+        assertThat(timer.getFifteenMinuteRate())
+                .isEqualTo(0.0, offset(0.001));
+    }
+
+    @Test
+    public void updatesTheCountOnUpdates() {
+        assertThat(timer.getCount())
+                .isZero();
+
+        timer.update(1, TimeUnit.SECONDS);
+
+        assertThat(timer.getCount())
+                .isEqualTo(1);
+    }
+
+    @Test
+    public void timesCallableInstances() throws Exception {
+        final String value = timer.time(() -> "one");
+
+        assertThat(timer.getCount())
+                .isEqualTo(1);
+
+        assertThat(value)
+                .isEqualTo("one");
+
+        verify(reservoir).update(50000000);
+    }
+
+    @Test
+    public void timesSuppliedInstances() {
+        final String value = timer.timeSupplier(() -> "one");
+
+        assertThat(timer.getCount())
+                .isEqualTo(1);
+
+        assertThat(value)
+                .isEqualTo("one");
+
+        verify(reservoir).update(50000000);
+    }
+
+    @Test
+    public void timesRunnableInstances() {
+        final AtomicBoolean called = new AtomicBoolean();
+        timer.time(() -> called.set(true));
+
+        assertThat(timer.getCount())
+                .isEqualTo(1);
+
+        assertThat(called.get())
+                .isTrue();
+
+        verify(reservoir).update(50000000);
+    }
+
+    @Test
+    public void timesContexts() {
+        timer.time().stop();
+
+        assertThat(timer.getCount())
+                .isEqualTo(1);
+
+        verify(reservoir).update(50000000);
+    }
+
+    @Test
+    public void returnsTheSnapshotFromTheReservoir() {
+        final Snapshot snapshot = mock(Snapshot.class);
+        when(reservoir.getSnapshot()).thenReturn(snapshot);
+
+        assertThat(timer.getSnapshot())
+                .isEqualTo(snapshot);
+    }
+
+    @Test
+    public void ignoresNegativeValues() {
+        timer.update(-1, TimeUnit.SECONDS);
+
+        assertThat(timer.getCount())
+                .isZero();
+
+        verifyNoInteractions(reservoir);
+    }
+
+    @Test
+    public void java8Duration() {
+        timer.update(Duration.ofSeconds(1234));
+
+        assertThat(timer.getCount()).isEqualTo(1);
+
+        verify(reservoir).update((long) 1234e9);
+    }
+
+    @Test
+    public void java8NegativeDuration() {
+        timer.update(Duration.ofMillis(-5678));
+
+        assertThat(timer.getCount()).isZero();
+
+        verifyNoInteractions(reservoir);
+    }
+
+    @Test
+    public void tryWithResourcesWork() {
+        assertThat(timer.getCount()).isZero();
+
+        int dummy = 0;
+        try (Timer.Context context = timer.time()) {
+            assertThat(context).isNotNull();
+            dummy += 1;
+        }
+        assertThat(dummy).isEqualTo(1);
+        assertThat(timer.getCount())
+                .isEqualTo(1);
+
+        verify(reservoir).update(50000000);
+    }
+
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoir.html b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoir.html new file mode 100644 index 0000000000..d4a03a7b63 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoir.html @@ -0,0 +1 @@ +UniformReservoir

UniformReservoir

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total117 of 1170%10 of 100%1010252555
update(long)380%40%337711
UniformReservoir(int)320%20%227711
getSnapshot()250%20%225511
size()180%20%224411
UniformReservoir()40%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoir.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoir.java.html new file mode 100644 index 0000000000..447f96ab27 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoir.java.html @@ -0,0 +1,71 @@ +UniformReservoir.java

UniformReservoir.java

package com.codahale.metrics;
+
+import java.util.concurrent.ThreadLocalRandom;
+import java.util.concurrent.atomic.AtomicLong;
+import java.util.concurrent.atomic.AtomicLongArray;
+
+/**
+ * A random sampling reservoir of a stream of {@code long}s. Uses Vitter's Algorithm R to produce a
+ * statistically representative sample.
+ *
+ * @see <a href="http://www.cs.umd.edu/~samir/498/vitter.pdf">Random Sampling with a Reservoir</a>
+ */
+public class UniformReservoir implements Reservoir {
+    private static final int DEFAULT_SIZE = 1028;
+    private final AtomicLong count = new AtomicLong();
+    private final AtomicLongArray values;
+
+    /**
+     * Creates a new {@link UniformReservoir} of 1028 elements, which offers a 99.9% confidence level
+     * with a 5% margin of error assuming a normal distribution.
+     */
+    public UniformReservoir() {
+        this(DEFAULT_SIZE);
+    }
+
+    /**
+     * Creates a new {@link UniformReservoir}.
+     *
+     * @param size the number of samples to keep in the sampling reservoir
+     */
+    public UniformReservoir(int size) {
+        this.values = new AtomicLongArray(size);
+        for (int i = 0; i < values.length(); i++) {
+            values.set(i, 0);
+        }
+        count.set(0);
+    }
+
+    @Override
+    public int size() {
+        final long c = count.get();
+        if (c > values.length()) {
+            return values.length();
+        }
+        return (int) c;
+    }
+
+    @Override
+    public void update(long value) {
+        final long c = count.incrementAndGet();
+        if (c <= values.length()) {
+            values.set((int) c - 1, value);
+        } else {
+            final long r = ThreadLocalRandom.current().nextLong(c);
+            if (r < values.length()) {
+                values.set((int) r, value);
+            }
+        }
+    }
+
+    @Override
+    public Snapshot getSnapshot() {
+        final int s = size();
+        long[] copy = new long[s];
+        for (int i = 0; i < s; i++) {
+            copy[i] = values.get(i);
+        }
+        return new UniformSnapshot(copy);
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoirTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoirTest.html new file mode 100644 index 0000000000..a91f65141a --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoirTest.html @@ -0,0 +1 @@ +UniformReservoirTest

UniformReservoirTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total60 of 600%4 of 40%44141422
aReservoirOf100OutOf1000Elements()570%40%33131311
UniformReservoirTest()30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoirTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoirTest.java.html new file mode 100644 index 0000000000..14a53c4e30 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoirTest.java.html @@ -0,0 +1,32 @@ +UniformReservoirTest.java

UniformReservoirTest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+
+import static org.assertj.core.api.Assertions.assertThat;
+
+public class UniformReservoirTest {
+    @Test
+    @SuppressWarnings("unchecked")
+    public void aReservoirOf100OutOf1000Elements() {
+        final UniformReservoir reservoir = new UniformReservoir(100);
+        for (int i = 0; i < 1000; i++) {
+            reservoir.update(i);
+        }
+
+        final Snapshot snapshot = reservoir.getSnapshot();
+
+        assertThat(reservoir.size())
+                .isEqualTo(100);
+
+        assertThat(snapshot.size())
+                .isEqualTo(100);
+
+        for (double i : snapshot.getValues()) {
+            assertThat(i)
+                    .isLessThan(1000)
+                    .isGreaterThanOrEqualTo(0);
+        }
+    }
+
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshot.html b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshot.html new file mode 100644 index 0000000000..9122aa8ddf --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshot.html @@ -0,0 +1 @@ +UniformSnapshot

UniformSnapshot

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total297 of 2970%28 of 280%242451511010
getValue(double)900%120%77131311
getStdDev()520%40%339911
dump(OutputStream)380%20%224411
getMean()370%40%336611
UniformSnapshot(Collection)310%20%227711
getMax()150%20%223311
UniformSnapshot(long[])120%n/a114411
getMin()110%20%223311
getValues()70%n/a111111
size()40%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshot.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshot.java.html new file mode 100644 index 0000000000..4773f3ff2a --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshot.java.html @@ -0,0 +1,178 @@ +UniformSnapshot.java

UniformSnapshot.java

package com.codahale.metrics;
+
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.util.Arrays;
+import java.util.Collection;
+
+import static java.lang.Math.floor;
+import static java.nio.charset.StandardCharsets.UTF_8;
+
+/**
+ * A statistical snapshot of a {@link UniformSnapshot}.
+ */
+public class UniformSnapshot extends Snapshot {
+
+    private final long[] values;
+
+    /**
+     * Create a new {@link Snapshot} with the given values.
+     *
+     * @param values an unordered set of values in the reservoir
+     */
+    public UniformSnapshot(Collection<Long> values) {
+        final Object[] copy = values.toArray();
+        this.values = new long[copy.length];
+        for (int i = 0; i < copy.length; i++) {
+            this.values[i] = (Long) copy[i];
+        }
+        Arrays.sort(this.values);
+    }
+
+    /**
+     * Create a new {@link Snapshot} with the given values.
+     *
+     * @param values an unordered set of values in the reservoir that can be used by this class directly
+     */
+    public UniformSnapshot(long[] values) {
+        this.values = Arrays.copyOf(values, values.length);
+        Arrays.sort(this.values);
+    }
+
+    /**
+     * Returns the value at the given quantile.
+     *
+     * @param quantile a given quantile, in {@code [0..1]}
+     * @return the value in the distribution at {@code quantile}
+     */
+    @Override
+    public double getValue(double quantile) {
+        if (quantile < 0.0 || quantile > 1.0 || Double.isNaN(quantile)) {
+            throw new IllegalArgumentException(quantile + " is not in [0..1]");
+        }
+
+        if (values.length == 0) {
+            return 0.0;
+        }
+
+        final double pos = quantile * (values.length + 1);
+        final int index = (int) pos;
+
+        if (index < 1) {
+            return values[0];
+        }
+
+        if (index >= values.length) {
+            return values[values.length - 1];
+        }
+
+        final double lower = values[index - 1];
+        final double upper = values[index];
+        return lower + (pos - floor(pos)) * (upper - lower);
+    }
+
+    /**
+     * Returns the number of values in the snapshot.
+     *
+     * @return the number of values
+     */
+    @Override
+    public int size() {
+        return values.length;
+    }
+
+    /**
+     * Returns the entire set of values in the snapshot.
+     *
+     * @return the entire set of values
+     */
+    @Override
+    public long[] getValues() {
+        return Arrays.copyOf(values, values.length);
+    }
+
+    /**
+     * Returns the highest value in the snapshot.
+     *
+     * @return the highest value
+     */
+    @Override
+    public long getMax() {
+        if (values.length == 0) {
+            return 0;
+        }
+        return values[values.length - 1];
+    }
+
+    /**
+     * Returns the lowest value in the snapshot.
+     *
+     * @return the lowest value
+     */
+    @Override
+    public long getMin() {
+        if (values.length == 0) {
+            return 0;
+        }
+        return values[0];
+    }
+
+    /**
+     * Returns the arithmetic mean of the values in the snapshot.
+     *
+     * @return the arithmetic mean
+     */
+    @Override
+    public double getMean() {
+        if (values.length == 0) {
+            return 0;
+        }
+
+        double sum = 0;
+        for (long value : values) {
+            sum += value;
+        }
+        return sum / values.length;
+    }
+
+    /**
+     * Returns the standard deviation of the values in the snapshot.
+     *
+     * @return the standard deviation value
+     */
+    @Override
+    public double getStdDev() {
+        // two-pass algorithm for variance, avoids numeric overflow
+
+        if (values.length <= 1) {
+            return 0;
+        }
+
+        final double mean = getMean();
+        double sum = 0;
+
+        for (long value : values) {
+            final double diff = value - mean;
+            sum += diff * diff;
+        }
+
+        final double variance = sum / (values.length - 1);
+        return Math.sqrt(variance);
+    }
+
+    /**
+     * Writes the values of the snapshot to the given stream.
+     *
+     * @param output an output stream
+     */
+    @Override
+    public void dump(OutputStream output) {
+        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {
+            for (long value : values) {
+                out.printf("%d%n", value);
+            }
+        }
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshotTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshotTest.html new file mode 100644 index 0000000000..5cb19bd84d --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshotTest.html @@ -0,0 +1 @@ +UniformSnapshotTest

UniformSnapshotTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total413 of 4130%2 of 20%282888882727
canAlsoBeCreatedFromACollectionOfLongs()600%n/a114411
correctlyCreatedFromCollectionWithWeakIterator()440%n/a11101011
UniformSnapshotTest()300%n/a112211
hasValues()290%n/a113311
dumpsToAStream()180%n/a115511
lambda$correctlyCreatedFromCollectionWithWeakIterator$0(ConcurrentSkipListSet, CountDownLatch)170%20%225511
calculatesAStdDevOfZeroForASingletonSnapshot()160%n/a114411
smallQuantilesAreTheFirstValue()120%n/a113311
bigQuantilesAreTheLastValue()120%n/a113311
calculatesAMinOfZeroForAnEmptySnapshot()120%n/a114411
calculatesAMaxOfZeroForAnEmptySnapshot()120%n/a114411
calculatesAMeanOfZeroForAnEmptySnapshot()120%n/a114411
calculatesAStdDevOfZeroForAnEmptySnapshot()120%n/a114411
hasAMedian()110%n/a112211
hasAp75()110%n/a112211
hasAp95()110%n/a112211
hasAp98()110%n/a112211
hasAp99()110%n/a112211
hasAp999()110%n/a112211
calculatesTheStdDev()110%n/a113311
hasASize()80%n/a113311
calculatesTheMinimumValue()80%n/a113311
calculatesTheMaximumValue()80%n/a113311
calculatesTheMeanValue()80%n/a113311
disallowsNotANumberQuantile()60%n/a112211
disallowsNegativeQuantile()60%n/a112211
disallowsQuantileOverOne()60%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshotTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshotTest.java.html new file mode 100644 index 0000000000..598c7623b7 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshotTest.java.html @@ -0,0 +1,199 @@ +UniformSnapshotTest.java

UniformSnapshotTest.java

package com.codahale.metrics;
+
+import org.junit.Test;
+
+import java.io.ByteArrayOutputStream;
+import java.util.Random;
+import java.util.concurrent.ConcurrentSkipListSet;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import static java.util.Arrays.asList;
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.offset;
+
+public class UniformSnapshotTest {
+    private final Snapshot snapshot = new UniformSnapshot(new long[]{5, 1, 2, 3, 4});
+
+    @Test
+    public void smallQuantilesAreTheFirstValue() {
+        assertThat(snapshot.getValue(0.0))
+                .isEqualTo(1, offset(0.1));
+    }
+
+    @Test
+    public void bigQuantilesAreTheLastValue() {
+        assertThat(snapshot.getValue(1.0))
+                .isEqualTo(5, offset(0.1));
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void disallowsNotANumberQuantile() {
+        snapshot.getValue(Double.NaN);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void disallowsNegativeQuantile() {
+        snapshot.getValue(-0.5);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void disallowsQuantileOverOne() {
+        snapshot.getValue(1.5);
+    }
+
+    @Test
+    public void hasAMedian() {
+        assertThat(snapshot.getMedian()).isEqualTo(3, offset(0.1));
+    }
+
+    @Test
+    public void hasAp75() {
+        assertThat(snapshot.get75thPercentile()).isEqualTo(4.5, offset(0.1));
+    }
+
+    @Test
+    public void hasAp95() {
+        assertThat(snapshot.get95thPercentile()).isEqualTo(5.0, offset(0.1));
+    }
+
+    @Test
+    public void hasAp98() {
+        assertThat(snapshot.get98thPercentile()).isEqualTo(5.0, offset(0.1));
+    }
+
+    @Test
+    public void hasAp99() {
+        assertThat(snapshot.get99thPercentile()).isEqualTo(5.0, offset(0.1));
+    }
+
+    @Test
+    public void hasAp999() {
+        assertThat(snapshot.get999thPercentile()).isEqualTo(5.0, offset(0.1));
+    }
+
+    @Test
+    public void hasValues() {
+        assertThat(snapshot.getValues())
+                .containsOnly(1, 2, 3, 4, 5);
+    }
+
+    @Test
+    public void hasASize() {
+        assertThat(snapshot.size())
+                .isEqualTo(5);
+    }
+
+    @Test
+    public void canAlsoBeCreatedFromACollectionOfLongs() {
+        final Snapshot other = new UniformSnapshot(asList(5L, 1L, 2L, 3L, 4L));
+
+        assertThat(other.getValues())
+                .containsOnly(1, 2, 3, 4, 5);
+    }
+
+    @Test
+    public void correctlyCreatedFromCollectionWithWeakIterator() throws Exception {
+        final ConcurrentSkipListSet<Long> values = new ConcurrentSkipListSet<>();
+
+        // Create a latch to make sure that the background thread has started and
+        // pushed some data to the collection.
+        final CountDownLatch latch = new CountDownLatch(10);
+        final Thread backgroundThread = new Thread(() -> {
+            final Random random = new Random();
+            // Update the collection in the loop to trigger a potential `ArrayOutOfBoundException`
+            // and verify that the snapshot doesn't make assumptions about the size of the iterator.
+            while (!Thread.currentThread().isInterrupted()) {
+                values.add(random.nextLong());
+                latch.countDown();
+            }
+        });
+        backgroundThread.start();
+
+        try {
+            latch.await(5, TimeUnit.SECONDS);
+            assertThat(latch.getCount()).isEqualTo(0);
+
+            // Create a snapshot while the  collection is being updated.
+            final Snapshot snapshot = new UniformSnapshot(values);
+            assertThat(snapshot.getValues().length).isGreaterThanOrEqualTo(10);
+        } finally {
+            backgroundThread.interrupt();
+        }
+    }
+
+    @Test
+    public void dumpsToAStream() {
+        final ByteArrayOutputStream output = new ByteArrayOutputStream();
+
+        snapshot.dump(output);
+
+        assertThat(output.toString())
+                .isEqualTo(String.format("1%n2%n3%n4%n5%n"));
+    }
+
+    @Test
+    public void calculatesTheMinimumValue() {
+        assertThat(snapshot.getMin())
+                .isEqualTo(1);
+    }
+
+    @Test
+    public void calculatesTheMaximumValue() {
+        assertThat(snapshot.getMax())
+                .isEqualTo(5);
+    }
+
+    @Test
+    public void calculatesTheMeanValue() {
+        assertThat(snapshot.getMean())
+                .isEqualTo(3.0);
+    }
+
+    @Test
+    public void calculatesTheStdDev() {
+        assertThat(snapshot.getStdDev())
+                .isEqualTo(1.5811, offset(0.0001));
+    }
+
+    @Test
+    public void calculatesAMinOfZeroForAnEmptySnapshot() {
+        final Snapshot emptySnapshot = new UniformSnapshot(new long[]{});
+
+        assertThat(emptySnapshot.getMin())
+                .isZero();
+    }
+
+    @Test
+    public void calculatesAMaxOfZeroForAnEmptySnapshot() {
+        final Snapshot emptySnapshot = new UniformSnapshot(new long[]{});
+
+        assertThat(emptySnapshot.getMax())
+                .isZero();
+    }
+
+    @Test
+    public void calculatesAMeanOfZeroForAnEmptySnapshot() {
+        final Snapshot emptySnapshot = new UniformSnapshot(new long[]{});
+
+        assertThat(emptySnapshot.getMean())
+                .isZero();
+    }
+
+    @Test
+    public void calculatesAStdDevOfZeroForAnEmptySnapshot() {
+        final Snapshot emptySnapshot = new UniformSnapshot(new long[]{});
+
+        assertThat(emptySnapshot.getStdDev())
+                .isZero();
+    }
+
+    @Test
+    public void calculatesAStdDevOfZeroForASingletonSnapshot() {
+        final Snapshot singleItemSnapshot = new UniformSnapshot(new long[]{1});
+
+        assertThat(singleItemSnapshot.getStdDev())
+                .isZero();
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot$WeightedSample.html b/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot$WeightedSample.html new file mode 100644 index 0000000000..0f22c93f29 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot$WeightedSample.html @@ -0,0 +1 @@ +WeightedSnapshot.WeightedSample

WeightedSnapshot.WeightedSample

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total9 of 90%0 of 0n/a114411
WeightedSnapshot.WeightedSample(long, double)90%n/a114411
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot.html b/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot.html new file mode 100644 index 0000000000..524829a3c3 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot.html @@ -0,0 +1 @@ +WeightedSnapshot

WeightedSnapshot

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total334 of 3340%36 of 360%282853531010
WeightedSnapshot(Collection)1080%80%55151511
getValue(double)730%140%88121211
getStdDev()430%40%338811
dump(OutputStream)380%20%224411
getMean()320%40%336611
getMax()150%20%223311
getMin()110%20%223311
getValues()70%n/a111111
size()40%n/a111111
lambda$new$0(WeightedSnapshot.WeightedSample)30%n/a111111
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot.java.html new file mode 100644 index 0000000000..6fdfe91734 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot.java.html @@ -0,0 +1,196 @@ +WeightedSnapshot.java

WeightedSnapshot.java

package com.codahale.metrics;
+
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Comparator;
+
+import static java.nio.charset.StandardCharsets.UTF_8;
+
+/**
+ * A statistical snapshot of a {@link WeightedSnapshot}.
+ */
+public class WeightedSnapshot extends Snapshot {
+
+    /**
+     * A single sample item with value and its weights for {@link WeightedSnapshot}.
+     */
+    public static class WeightedSample {
+        public final long value;
+        public final double weight;
+
+        public WeightedSample(long value, double weight) {
+            this.value = value;
+            this.weight = weight;
+        }
+    }
+
+    private final long[] values;
+    private final double[] normWeights;
+    private final double[] quantiles;
+
+    /**
+     * Create a new {@link Snapshot} with the given values.
+     *
+     * @param values an unordered set of values in the reservoir
+     */
+    public WeightedSnapshot(Collection<WeightedSample> values) {
+        final WeightedSample[] copy = values.toArray(new WeightedSample[]{});
+
+        Arrays.sort(copy, Comparator.comparingLong(w -> w.value));
+
+        this.values = new long[copy.length];
+        this.normWeights = new double[copy.length];
+        this.quantiles = new double[copy.length];
+
+        double sumWeight = 0;
+        for (WeightedSample sample : copy) {
+            sumWeight += sample.weight;
+        }
+
+        for (int i = 0; i < copy.length; i++) {
+            this.values[i] = copy[i].value;
+            this.normWeights[i] = sumWeight != 0 ? copy[i].weight / sumWeight : 0;
+        }
+
+        for (int i = 1; i < copy.length; i++) {
+            this.quantiles[i] = this.quantiles[i - 1] + this.normWeights[i - 1];
+        }
+    }
+
+    /**
+     * Returns the value at the given quantile.
+     *
+     * @param quantile a given quantile, in {@code [0..1]}
+     * @return the value in the distribution at {@code quantile}
+     */
+    @Override
+    public double getValue(double quantile) {
+        if (quantile < 0.0 || quantile > 1.0 || Double.isNaN(quantile)) {
+            throw new IllegalArgumentException(quantile + " is not in [0..1]");
+        }
+
+        if (values.length == 0) {
+            return 0.0;
+        }
+
+        int posx = Arrays.binarySearch(quantiles, quantile);
+        if (posx < 0)
+            posx = ((-posx) - 1) - 1;
+
+        if (posx < 1) {
+            return values[0];
+        }
+
+        if (posx >= values.length) {
+            return values[values.length - 1];
+        }
+
+        return values[posx];
+    }
+
+    /**
+     * Returns the number of values in the snapshot.
+     *
+     * @return the number of values
+     */
+    @Override
+    public int size() {
+        return values.length;
+    }
+
+    /**
+     * Returns the entire set of values in the snapshot.
+     *
+     * @return the entire set of values
+     */
+    @Override
+    public long[] getValues() {
+        return Arrays.copyOf(values, values.length);
+    }
+
+    /**
+     * Returns the highest value in the snapshot.
+     *
+     * @return the highest value
+     */
+    @Override
+    public long getMax() {
+        if (values.length == 0) {
+            return 0;
+        }
+        return values[values.length - 1];
+    }
+
+    /**
+     * Returns the lowest value in the snapshot.
+     *
+     * @return the lowest value
+     */
+    @Override
+    public long getMin() {
+        if (values.length == 0) {
+            return 0;
+        }
+        return values[0];
+    }
+
+    /**
+     * Returns the weighted arithmetic mean of the values in the snapshot.
+     *
+     * @return the weighted arithmetic mean
+     */
+    @Override
+    public double getMean() {
+        if (values.length == 0) {
+            return 0;
+        }
+
+        double sum = 0;
+        for (int i = 0; i < values.length; i++) {
+            sum += values[i] * normWeights[i];
+        }
+        return sum;
+    }
+
+    /**
+     * Returns the weighted standard deviation of the values in the snapshot.
+     *
+     * @return the weighted standard deviation value
+     */
+    @Override
+    public double getStdDev() {
+        // two-pass algorithm for variance, avoids numeric overflow
+
+        if (values.length <= 1) {
+            return 0;
+        }
+
+        final double mean = getMean();
+        double variance = 0;
+
+        for (int i = 0; i < values.length; i++) {
+            final double diff = values[i] - mean;
+            variance += normWeights[i] * diff * diff;
+        }
+
+        return Math.sqrt(variance);
+    }
+
+    /**
+     * Writes the values of the snapshot to the given stream.
+     *
+     * @param output an output stream
+     */
+    @Override
+    public void dump(OutputStream output) {
+        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {
+            for (long value : values) {
+                out.printf("%d%n", value);
+            }
+        }
+    }
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshotTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshotTest.html new file mode 100644 index 0000000000..565caa6af1 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshotTest.html @@ -0,0 +1 @@ +WeightedSnapshotTest

WeightedSnapshotTest

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethods
Total685 of 6850%4 of 40%31311061062929
worksWithUnderestimatedCollections()1110%n/a118811
worksWithOverestimatedCollections()1110%n/a118811
WeightedSnapshotTest()530%n/a113311
weightedArray(long[], double[])490%40%336611
expectNoOverflowForLowWeights()400%n/a115511
doesNotProduceNaNValues()400%n/a114411
hasValues()290%n/a113311
calculatesAStdDevOfZeroForASingletonSnapshot()230%n/a115511
dumpsToAStream()180%n/a115511
calculatesAMinOfZeroForAnEmptySnapshot()150%n/a115511
calculatesAMaxOfZeroForAnEmptySnapshot()150%n/a115511
calculatesAMeanOfZeroForAnEmptySnapshot()150%n/a115511
calculatesAStdDevOfZeroForAnEmptySnapshot()150%n/a115511
smallQuantilesAreTheFirstValue()120%n/a113311
bigQuantilesAreTheLastValue()120%n/a113311
hasAMedian()110%n/a112211
hasAp75()110%n/a112211
hasAp95()110%n/a112211
hasAp98()110%n/a112211
hasAp99()110%n/a112211
hasAp999()110%n/a112211
calculatesTheStdDev()110%n/a113311
hasASize()80%n/a113311
calculatesTheMinimumValue()80%n/a113311
calculatesTheMaximumValue()80%n/a113311
calculatesTheMeanValue()80%n/a113311
disallowsNotANumberQuantile()60%n/a112211
disallowsNegativeQuantile()60%n/a112211
disallowsQuantileOverOne()60%n/a112211
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshotTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshotTest.java.html new file mode 100644 index 0000000000..1307bb6707 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshotTest.java.html @@ -0,0 +1,230 @@ +WeightedSnapshotTest.java

WeightedSnapshotTest.java

package com.codahale.metrics;
+
+import com.codahale.metrics.WeightedSnapshot.WeightedSample;
+import org.junit.Test;
+import org.mockito.ArgumentMatchers;
+
+import java.io.ByteArrayOutputStream;
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.offset;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.when;
+
+public class WeightedSnapshotTest {
+
+    private static List<WeightedSample> weightedArray(long[] values, double[] weights) {
+        if (values.length != weights.length) {
+            throw new IllegalArgumentException("Mismatched lengths: " + values.length + " vs " + weights.length);
+        }
+
+        final List<WeightedSample> samples = new ArrayList<>();
+        for (int i = 0; i < values.length; i++) {
+            samples.add(new WeightedSnapshot.WeightedSample(values[i], weights[i]));
+        }
+
+        return samples;
+    }
+
+    private final Snapshot snapshot = new WeightedSnapshot(
+            weightedArray(new long[]{5, 1, 2, 3, 4}, new double[]{1, 2, 3, 2, 2}));
+
+    @Test
+    public void smallQuantilesAreTheFirstValue() {
+        assertThat(snapshot.getValue(0.0))
+                .isEqualTo(1.0, offset(0.1));
+    }
+
+    @Test
+    public void bigQuantilesAreTheLastValue() {
+        assertThat(snapshot.getValue(1.0))
+                .isEqualTo(5.0, offset(0.1));
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void disallowsNotANumberQuantile() {
+        snapshot.getValue(Double.NaN);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void disallowsNegativeQuantile() {
+        snapshot.getValue(-0.5);
+    }
+
+    @Test(expected = IllegalArgumentException.class)
+    public void disallowsQuantileOverOne() {
+        snapshot.getValue(1.5);
+    }
+
+    @Test
+    public void hasAMedian() {
+        assertThat(snapshot.getMedian()).isEqualTo(3.0, offset(0.1));
+    }
+
+    @Test
+    public void hasAp75() {
+        assertThat(snapshot.get75thPercentile()).isEqualTo(4.0, offset(0.1));
+    }
+
+    @Test
+    public void hasAp95() {
+        assertThat(snapshot.get95thPercentile()).isEqualTo(5.0, offset(0.1));
+    }
+
+    @Test
+    public void hasAp98() {
+        assertThat(snapshot.get98thPercentile()).isEqualTo(5.0, offset(0.1));
+    }
+
+    @Test
+    public void hasAp99() {
+        assertThat(snapshot.get99thPercentile()).isEqualTo(5.0, offset(0.1));
+    }
+
+    @Test
+    public void hasAp999() {
+        assertThat(snapshot.get999thPercentile()).isEqualTo(5.0, offset(0.1));
+    }
+
+    @Test
+    public void hasValues() {
+        assertThat(snapshot.getValues())
+                .containsOnly(1, 2, 3, 4, 5);
+    }
+
+    @Test
+    public void hasASize() {
+        assertThat(snapshot.size())
+                .isEqualTo(5);
+    }
+
+    @Test
+    public void worksWithUnderestimatedCollections() {
+        final List<WeightedSample> originalItems = weightedArray(new long[]{5, 1, 2, 3, 4}, new double[]{1, 2, 3, 2, 2});
+        final List<WeightedSample> spyItems = spy(originalItems);
+        doReturn(originalItems.toArray(new WeightedSample[]{})).when(spyItems).toArray(ArgumentMatchers.any(WeightedSample[].class));
+        when(spyItems.size()).thenReturn(4, 5);
+
+        final Snapshot other = new WeightedSnapshot(spyItems);
+
+        assertThat(other.getValues())
+                .containsOnly(1, 2, 3, 4, 5);
+    }
+
+    @Test
+    public void worksWithOverestimatedCollections() {
+        final List<WeightedSample> originalItems = weightedArray(new long[]{5, 1, 2, 3, 4}, new double[]{1, 2, 3, 2, 2});
+        final List<WeightedSample> spyItems = spy(originalItems);
+        doReturn(originalItems.toArray(new WeightedSample[]{})).when(spyItems).toArray(ArgumentMatchers.any(WeightedSample[].class));
+        when(spyItems.size()).thenReturn(6, 5);
+
+        final Snapshot other = new WeightedSnapshot(spyItems);
+
+        assertThat(other.getValues())
+                .containsOnly(1, 2, 3, 4, 5);
+    }
+
+    @Test
+    public void dumpsToAStream() {
+        final ByteArrayOutputStream output = new ByteArrayOutputStream();
+
+        snapshot.dump(output);
+
+        assertThat(output.toString())
+                .isEqualTo(String.format("1%n2%n3%n4%n5%n"));
+    }
+
+    @Test
+    public void calculatesTheMinimumValue() {
+        assertThat(snapshot.getMin())
+                .isEqualTo(1);
+    }
+
+    @Test
+    public void calculatesTheMaximumValue() {
+        assertThat(snapshot.getMax())
+                .isEqualTo(5);
+    }
+
+    @Test
+    public void calculatesTheMeanValue() {
+        assertThat(snapshot.getMean())
+                .isEqualTo(2.7);
+    }
+
+    @Test
+    public void calculatesTheStdDev() {
+        assertThat(snapshot.getStdDev())
+                .isEqualTo(1.2688, offset(0.0001));
+    }
+
+    @Test
+    public void calculatesAMinOfZeroForAnEmptySnapshot() {
+        final Snapshot emptySnapshot = new WeightedSnapshot(
+                weightedArray(new long[]{}, new double[]{}));
+
+        assertThat(emptySnapshot.getMin())
+                .isZero();
+    }
+
+    @Test
+    public void calculatesAMaxOfZeroForAnEmptySnapshot() {
+        final Snapshot emptySnapshot = new WeightedSnapshot(
+                weightedArray(new long[]{}, new double[]{}));
+
+        assertThat(emptySnapshot.getMax())
+                .isZero();
+    }
+
+    @Test
+    public void calculatesAMeanOfZeroForAnEmptySnapshot() {
+        final Snapshot emptySnapshot = new WeightedSnapshot(
+                weightedArray(new long[]{}, new double[]{}));
+
+        assertThat(emptySnapshot.getMean())
+                .isZero();
+    }
+
+    @Test
+    public void calculatesAStdDevOfZeroForAnEmptySnapshot() {
+        final Snapshot emptySnapshot = new WeightedSnapshot(
+                weightedArray(new long[]{}, new double[]{}));
+
+        assertThat(emptySnapshot.getStdDev())
+                .isZero();
+    }
+
+    @Test
+    public void calculatesAStdDevOfZeroForASingletonSnapshot() {
+        final Snapshot singleItemSnapshot = new WeightedSnapshot(
+                weightedArray(new long[]{1}, new double[]{1.0}));
+
+        assertThat(singleItemSnapshot.getStdDev())
+                .isZero();
+    }
+
+    @Test
+    public void expectNoOverflowForLowWeights() {
+        final Snapshot scatteredSnapshot = new WeightedSnapshot(
+                weightedArray(
+                        new long[]{1, 2, 3},
+                        new double[]{Double.MIN_VALUE, Double.MIN_VALUE, Double.MIN_VALUE}
+                )
+        );
+
+        assertThat(scatteredSnapshot.getMean())
+                .isEqualTo(2);
+    }
+
+    @Test
+    public void doesNotProduceNaNValues() {
+        WeightedSnapshot weightedSnapshot = new WeightedSnapshot(
+                weightedArray(new long[]{1, 2, 3}, new double[]{0, 0, 0}));
+        assertThat(weightedSnapshot.getMean()).isEqualTo(0);
+    }
+
+}
+
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/index.html b/metrics-log4j2-htmlReport/com.codahale.metrics/index.html new file mode 100644 index 0000000000..b51c86dabf --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/index.html @@ -0,0 +1 @@ +com.codahale.metrics

com.codahale.metrics

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
Total23,929 of 24,3281%536 of 5553%1,3261,3724,6274,7321,0511,093121135
MetricRegistryTest1,8420%n/a8181361361818111
ConsoleReporterTest1,4650%60%1818210210151511
NoopMetricRegistryTest1,3400%n/a5454274274545411
InstrumentedScheduledExecutorServiceTest1,1070%20%1616199199151511
Slf4jReporterTest9320%n/a3333198198333311
InstrumentedExecutorServiceTest9100%20%1313145145121211
ConsoleReporter8970%240%22229999101011
CsvReporter8460%160%19199090111111
ExponentiallyDecayingReservoirTest7630%400%3838185185181811
CsvReporterTest7230%20%1717136136161611
Slf4jReporter7010%240%3333114114212111
WeightedSnapshotTest6850%40%3131106106292911
ScheduledReporterTest6530%120%3131141141252511
EWMATest6520%20%661091095511
MetricRegistry51312719%511522%627495127324101
SlidingTimeWindowArrayReservoirTest4710%180%141474745511
InstrumentedExecutorService4390%60%20207070171711
UniformSnapshotTest4130%20%28288888272711
SlidingTimeWindowMovingAveragesTest4120%80%15157878111111
ChunkedAssociativeLongArray4110%520%40409090141411
SlidingTimeWindowReservoirTest3800%120%101054544411
InstrumentedScheduledExecutorService3430%20%22225454212111
SlidingTimeWindowMovingAverages3360%220%25257070141411
WeightedSnapshot3340%360%28285353101011
TimerTest3080%n/a15157676151511
ScheduledReporter3080%200%33337979232311
ExponentiallyDecayingReservoir3060%200%26266969161611
UniformSnapshot2970%280%24245151101011
CachedGaugeTest2260%100%121253537711
MeterApproximationTest1680%20%7727276611
ChunkedAssociativeLongArrayTest1650%n/a2226262211
SlidingTimeWindowArrayReservoir1640%140%151537378811
SlidingTimeWindowReservoir1590%80%121233338811
MetricRegistry.new MetricRegistryListener() {...}1540%n/a11112121111111
LockFreeExponentiallyDecayingReservoir.State1500%160%141432326611
Slf4jReporter.Builder1490%50%16164444121211
SharedMetricRegistriesTest1380%n/a10105050101011
Timer1350%20%18183636171711
MeterTest1290%n/a4427274411
InstrumentedThreadFactoryTest1290%20%4430303311
MetricRegistryListenerTest1210%n/a8827278811
MetricAttribute1190%n/a3320203311
UniformReservoir1170%100%101025255511
ConsoleReporter.Builder1130%n/a12123434121211
CsvReporter.Builder1060%n/a11113131111111
LockFreeExponentiallyDecayingReservoir1050%40%101024248811
CounterTest850%n/a8829298811
CachedGauge810%100%9922224411
InstrumentedThreadFactory770%n/a4413134411
MetricFilterTest760%n/a5519195511
SlidingWindowReservoirTest730%n/a3314143311
LockFreeExponentiallyDecayingReservoir.Builder720%20%8817177711
NoopMetricRegistry710%20%33333434323211
SlidingWindowReservoir680%20%5513134411
HistogramTest630%n/a4417174411
ScheduledReporter.NamedThreadFactory630%40%4411112211
FixedNameCsvFileProviderTest620%n/a4414144411
UniformReservoirTest600%40%4414142211
RatioGaugeTest590%n/a6621216611
SharedMetricRegistries583940%7330%1116203271101
ManualClock580%n/a8816168811
InstrumentedScheduledExecutorService.InstrumentedPeriodicRunnable570%20%3314142211
ExponentialMovingAverages555851%5116%71112294801
Meter525149%20%612122951101
RatioGauge.Ratio480%60%7710104411
ScheduledReporterTest.DummyReporter470%n/a44994411
LockFreeExponentiallyDecayingReservoir.RescalingConsumer450%40%4411112211
SimpleSettableGaugeTest430%n/a3312123311
EWMA426560%20%3910252801
DefaultSettableGaugeTest420%n/a4411114411
InstrumentedExecutorService.InstrumentedCallable410%n/a2210102211
ChunkedAssociativeLongArray.Chunk390%n/a2211112211
InstrumentedExecutorService.InstrumentedRunnable390%n/a2211112211
NoopMetricRegistry.NoopTimer360%n/a14141515141411
ClockTest360%n/a3312123311
InstrumentedScheduledExecutorService.InstrumentedCallable350%n/a22992211
Slf4jReporter.LoggingLevel330%n/a11111111
InstrumentedScheduledExecutorService.InstrumentedRunnable330%n/a2210102211
Histogram320%n/a5511115511
Timer.Context310%n/a3310103311
Counter310%n/a6612126611
NoopMetricRegistry.EmptyConcurrentMap300%n/a16161616161611
Snapshot270%n/a77777711
MetricFilter260%n/a88448811
FixedNameCsvFileProvider260%n/a33333311
InstrumentedThreadFactory.InstrumentedRunnable250%n/a22882211
DerivativeGaugeTest250%n/a33663311
CachedGaugeTest.new CachedGauge() {...}240%n/a22662211
ClassMetadataTest230%n/a33443311
NoopMetricRegistry.EmptySnapshot230%n/a9910109911
ExponentiallyDecayingReservoirTest.ReservoirFactory210%n/a22442211
NoopMetricRegistry.NoopMeter200%n/a99999911
NoopMetricRegistry.NoopHistogram190%n/a66886611
MetricRegistry.new MetricRegistry.MetricBuilder() {...}180%n/a33333311
MetricRegistry.new MetricRegistry.MetricBuilder() {...}180%n/a33333311
MetricRegistry.new MetricRegistry.MetricBuilder() {...}180%n/a33333311
MetricRegistry.new MetricRegistry.MetricBuilder() {...}180%n/a33333311
MetricRegistry.new MetricRegistry.MetricBuilder() {...}180%n/a33333311
DefaultSettableGauge170%n/a44884411
TimerTest.new Clock() {...}170%n/a22332211
ExponentiallyDecayingReservoirTest.ReservoirFactory.new ExponentiallyDecayingReservoirTest.ReservoirFactory() {...}0%n/a22662211
Slf4jReporter.WarnLoggerProxy0%n/a33553311
Slf4jReporter.DebugLoggerProxy0%n/a33553311
CachedGaugeTest.new CachedGauge() {...}0%n/a22222211
Slf4jReporter.ErrorLoggerProxy0%n/a33553311
Slf4jReporter.TraceLoggerProxy0%n/a33553311
Slf4jReporter.InfoLoggerProxy0%n/a33553311
NoopMetricRegistry.NoopCounter0%n/a77777711
CachedGaugeTest.new CachedGauge() {...}0%n/a22222211
NoopMetricRegistry.NoopTimer.Context0%n/a44554411
ExponentiallyDecayingReservoirTest.ReservoirFactory.new ExponentiallyDecayingReservoirTest.ReservoirFactory() {...}0%n/a22222211
CachedGaugeTest.new Clock() {...}0%n/a22222211
MetricRegistryListener.Base0%n/a11111111111111
DerivativeGauge0%n/a22442211
MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}21%n/a23232301
DerivativeGaugeTest.new DerivativeGauge() {...}0%n/a22222211
RatioGaugeTest.new RatioGauge() {...}0%n/a22222211
NoopMetricRegistry.NoopGauge0%n/a33333311
RatioGaugeTest.new RatioGauge() {...}0%n/a22222211
RatioGaugeTest.new RatioGauge() {...}0%n/a22222211
RatioGaugeTest.new RatioGauge() {...}0%n/a22222211
WeightedSnapshot.WeightedSample0%n/a11441111
MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}27%n/a23232301
MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}27%n/a23232301
MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}27%n/a23232301
NoopMetricRegistry.NoopHistogram.new Reservoir() {...}0%n/a44444411
RatioGauge0%n/a22222211
NoopMetricRegistry.NoopTimer.Context.new Clock() {...}0%n/a33333311
MetricRegistryListenerTest.new MetricRegistryListener.Base() {...}0%n/a11111111
Slf4jReporter.LoggerProxy0%n/a11331111
Clock71%n/a13131301
MetricRegistry.MetricBuilder21100%n/a01050101
MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}100%n/a03030301
Clock.UserTimeClockHolder100%n/a01010101
Clock.UserTimeClock100%n/a02020201
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/index.source.html b/metrics-log4j2-htmlReport/com.codahale.metrics/index.source.html new file mode 100644 index 0000000000..4941fc2d65 --- /dev/null +++ b/metrics-log4j2-htmlReport/com.codahale.metrics/index.source.html @@ -0,0 +1 @@ +com.codahale.metrics

com.codahale.metrics

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
Total23,929 of 24,3281%536 of 5553%1,3261,3724,6274,7321,0511,093121135
MetricRegistryTest.java1,8420%n/a8181361361818111
ConsoleReporterTest.java1,4650%60%1818210210151511
NoopMetricRegistryTest.java1,3400%n/a5454274274545411
InstrumentedScheduledExecutorServiceTest.java1,1070%20%1616199199151511
ConsoleReporter.java1,0100%240%3434133133222222
Slf4jReporter.java9640%290%6666187187505099
CsvReporter.java9520%160%3030121121222222
Slf4jReporterTest.java9320%n/a3333198198333311
InstrumentedExecutorServiceTest.java9100%20%1313145145121211
ExponentiallyDecayingReservoirTest.java8120%400%4444195195242444
MetricRegistry.java79217117%511522%961161331726683613
CsvReporterTest.java7230%20%1717136136161611
ScheduledReporterTest.java7000%120%3535150150292922
WeightedSnapshotTest.java6850%40%3131106106292911
EWMATest.java6520%20%661091095511
InstrumentedExecutorService.java5190%60%24249191212133
SlidingTimeWindowArrayReservoirTest.java4710%180%141474745511
InstrumentedScheduledExecutorService.java4680%40%29298787272744
ChunkedAssociativeLongArray.java4500%520%4242101101161622
UniformSnapshotTest.java4130%20%28288888272711
SlidingTimeWindowMovingAveragesTest.java4120%80%15157878111111
SlidingTimeWindowReservoirTest.java3800%120%101054544411
LockFreeExponentiallyDecayingReservoir.java3720%260%36368484232344
ScheduledReporter.java3710%240%37379090252522
WeightedSnapshot.java3430%360%29295757111122
SlidingTimeWindowMovingAverages.java3360%220%25257070141411
TimerTest.java3250%n/a17177878171722
ExponentiallyDecayingReservoir.java3060%200%26266969161611
UniformSnapshot.java2970%280%24245151101011
CachedGaugeTest.java2920%100%20206161151555
NoopMetricRegistry.java2510%20%1081081121121071071111
MeterApproximationTest.java1680%20%7727276611
Timer.java1660%20%21214646202022
ChunkedAssociativeLongArrayTest.java1650%n/a2226262211
SlidingTimeWindowArrayReservoir.java1640%140%151537378811
SlidingTimeWindowReservoir.java1590%80%121233338811
SharedMetricRegistriesTest.java1380%n/a10105050101011
MeterTest.java1290%n/a4427274411
InstrumentedThreadFactoryTest.java1290%20%4430303311
MetricRegistryListenerTest.java1270%n/a9927279922
MetricAttribute.java1190%n/a3320203311
UniformReservoir.java1170%100%101025255511
InstrumentedThreadFactory.java1020%n/a6621216622
RatioGaugeTest.java990%n/a14142525141455
CounterTest.java850%n/a8829298811
CachedGauge.java810%100%9922224411
MetricFilterTest.java760%n/a5519195511
SlidingWindowReservoirTest.java730%n/a3314143311
SlidingWindowReservoir.java680%20%5513134411
HistogramTest.java630%n/a4417174411
FixedNameCsvFileProviderTest.java620%n/a4414144411
UniformReservoirTest.java600%40%4414142211
SharedMetricRegistries.java583940%7330%1116203271101
ManualClock.java580%n/a8816168811
RatioGauge.java560%60%9912126622
ExponentialMovingAverages.java555851%5116%71112294801
Meter.java525149%20%612122951101
SimpleSettableGaugeTest.java430%n/a3312123311
EWMA.java426560%20%3910252801
DefaultSettableGaugeTest.java420%n/a4411114411
DerivativeGaugeTest.java360%n/a55775522
ClockTest.java360%n/a3312123311
Histogram.java320%n/a5511115511
Counter.java310%n/a6612126611
Snapshot.java270%n/a77777711
FixedNameCsvFileProvider.java260%n/a33333311
MetricFilter.java260%n/a88448811
ClassMetadataTest.java230%n/a33443311
DefaultSettableGauge.java170%n/a44884411
MetricRegistryListener.java0%n/a11111111111111
DerivativeGauge.java0%n/a22442211
Clock.java88%n/a16161603
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/index.html b/metrics-log4j2-htmlReport/index.html new file mode 100644 index 0000000000..281dcfef1d --- /dev/null +++ b/metrics-log4j2-htmlReport/index.html @@ -0,0 +1 @@ +All in metrics-log4j2 Coverage Results

All in metrics-log4j2 Coverage Results

ElementMissed InstructionsCov.Missed BranchesCov.MissedCxtyMissedLinesMissedMethodsMissedClasses
Total23,937 of 24,8713%537 of 5624%1,3281,4024,6294,8531,0521,117121138
com.codahale.metrics23,9293991%536193%1,3261,3724,6274,7321,0511,093121135
com.codahale.metrics.log4j253598%685%230212112403
\ No newline at end of file diff --git a/metrics-log4j2-htmlReport/jacoco-resources/branchfc.gif b/metrics-log4j2-htmlReport/jacoco-resources/branchfc.gif new file mode 100644 index 0000000000000000000000000000000000000000..989b46d30469b56b014758f846ee6c5abfda16aa GIT binary patch literal 91 zcmZ?wbhEHb6=b<*h$V|V6X-NwhSNb literal 0 HcmV?d00001 diff --git a/metrics-log4j2-htmlReport/jacoco-resources/branchnc.gif b/metrics-log4j2-htmlReport/jacoco-resources/branchnc.gif new file mode 100644 index 0000000000000000000000000000000000000000..1933e07c376bb71bdd9aac91cf858da3fcdb0f1c GIT binary patch literal 91 zcmZ?wbhEHb6=b<*h$V|V6X-N9U38B literal 0 HcmV?d00001 diff --git a/metrics-log4j2-htmlReport/jacoco-resources/branchpc.gif b/metrics-log4j2-htmlReport/jacoco-resources/branchpc.gif new file mode 100644 index 0000000000000000000000000000000000000000..cbf711b7030929b733f22f7a0cf3dbf61fe7868f GIT binary patch literal 91 zcmZ?wbhEHbm$mi>nCYN#As;!%lJz1A{dHmlPuc literal 0 HcmV?d00001 diff --git a/metrics-log4j2-htmlReport/jacoco-resources/bundle.gif b/metrics-log4j2-htmlReport/jacoco-resources/bundle.gif new file mode 100644 index 0000000000000000000000000000000000000000..fca9c53e629a7a5c07186ac1e2a1e37d8d6e88f4 GIT binary patch literal 709 zcmZ?wbhEHb6krfwxXQrrpW*-7BK;o8CDEUD?$vun5^UNelT%D!ODhRsX(Ohwq+z^!{nkw1lu( zDPc2HV&`P7KEHX-jYA>R6T@ewM9fTyo0E0x)!k_2wz@P-Sk{|^LE{K>+|z);Vi!vF-J zIALI4-caAv+|t_C-oY&>$uA|y-ND80=rPrik*keM);A(7JS@bMXJ#`uzjsjN>eYc> zj1!vJoq|_~`Ugb%`8WwRvs$=Bx;h_qcXM-KZDthLjMNep5fPP;Q{vk%FCD3^prRsd zAfR@-Nl4k$GSW~(G16XNhoM=9$H>NPjk%o(&&DPp6ODz*?)|b>X&fF28jY>Ox-nZU Y5*r^bWMyL$kZ52~Skzz7#K>R`0G8r7i~s-t literal 0 HcmV?d00001 diff --git a/metrics-log4j2-htmlReport/jacoco-resources/down.gif b/metrics-log4j2-htmlReport/jacoco-resources/down.gif new file mode 100644 index 0000000000000000000000000000000000000000..440a14db74e76c2b6e854eacac1c44414b166271 GIT binary patch literal 67 zcmZ?wbhEHbZ%p}jXB Ub$^Lu-Ncq(ygK&ScM%3_0Po}%Qvd(} literal 0 HcmV?d00001 diff --git a/metrics-log4j2-htmlReport/jacoco-resources/greenbar.gif b/metrics-log4j2-htmlReport/jacoco-resources/greenbar.gif new file mode 100644 index 0000000000000000000000000000000000000000..0ba65672530ee09f086821a26156836d0c91bd74 GIT binary patch literal 91 zcmZ?wbhEHbWMtrCc+ADXzmZ>do2<@m9j_x^v8Q5duh#b5>RIq$!Lmoo);w9mu$BQ0 eDgI<(1nOeYVE_V<84N5O20cYWMlKB;4AuaIXBwOU literal 0 HcmV?d00001 diff --git a/metrics-log4j2-htmlReport/jacoco-resources/group.gif b/metrics-log4j2-htmlReport/jacoco-resources/group.gif new file mode 100644 index 0000000000000000000000000000000000000000..a4ea580d278fb727e4ae692838877fa63c4becf9 GIT binary patch literal 351 zcmZ?wbhEHb6krfwxXQpVwXtJrV`pb|Z&Bgo_>{Q`Df1G5Wa`}H^qKLgbHn221;#86 zie2Oyy23SVg;&(l)`=%9{nuIstg#PSrQx<&&vS#m*G7G>4W@o;CvAN*Y1^AgTVGGw z_ImEoPjiobns@ZmyknnMUi-Q7>W`Jzer$aB_t(pL-|kQQ|MAfO*PGv5?Ee3B$^ToO z|A8VGOaEW3eSEO?=BC06Ybq|Tt-P?N@;?|b;0205Sr{1@Oc``Qsz82XV5>PWtH47? zs^4Q~P@BxTjDV;&5*!R(s==>VnJe}-&SEIintfiq!@CwnVRxXubL!4|)qjO}gg>klxZ?TGXw~#-V zU_Y2&N}FX?r*L1YbYiM-aj|xBv2}#Mgo3?-guaA=wSS1Yfrz+)iMWB7#*ml2h^x<; ztIwFU(w+bR{{R30A^8LW0015UEC2ui01yBW000F(peK%GX`X1Rt}L1aL$Vf5mpMgx vG+WO#2NYmJDM}^)l;8n@L?90V%CN9pFcyU&MPO(u48jTlL$uClRtNw)MiWcq literal 0 HcmV?d00001 diff --git a/metrics-log4j2-htmlReport/jacoco-resources/package.gif b/metrics-log4j2-htmlReport/jacoco-resources/package.gif new file mode 100644 index 0000000000000000000000000000000000000000..131c28da405493661e3253ef79a68bd273039295 GIT binary patch literal 227 zcmZ?wbhEHb6krfwIKsg2^W*Nf7neOfxp04z;n8NJ+xzDotkS){bH@Hst%K#-*LO_c zo~yCDQ0v_4?v)A3lSAd#C95utQCbkGxF}NT_=2WF8}WGs5taT9|NsAIzy=h5vM@3* zNHFMtBtdpEuqG&|^`&Ia(}-MpBVo@mW@+b{B25<}cFdc?!Kkoc14n0vkh1`XOwU>7 z#al8o_@;D=?hdfkdC)D9Q@O@%Lfqp;ZBt~9C*29`GMF2XzQp8akWQVjDvMC75PzEx Mi%z;upCW@b03m@=3jhEB literal 0 HcmV?d00001 diff --git a/metrics-log4j2-htmlReport/jacoco-resources/prettify.css b/metrics-log4j2-htmlReport/jacoco-resources/prettify.css new file mode 100644 index 0000000000..be5166e0fc --- /dev/null +++ b/metrics-log4j2-htmlReport/jacoco-resources/prettify.css @@ -0,0 +1,13 @@ +/* Pretty printing styles. Used with prettify.js. */ + +.str { color: #2A00FF; } +.kwd { color: #7F0055; font-weight:bold; } +.com { color: #3F5FBF; } +.typ { color: #606; } +.lit { color: #066; } +.pun { color: #660; } +.pln { color: #000; } +.tag { color: #008; } +.atn { color: #606; } +.atv { color: #080; } +.dec { color: #606; } diff --git a/metrics-log4j2-htmlReport/jacoco-resources/prettify.js b/metrics-log4j2-htmlReport/jacoco-resources/prettify.js new file mode 100644 index 0000000000..b2766fe0a3 --- /dev/null +++ b/metrics-log4j2-htmlReport/jacoco-resources/prettify.js @@ -0,0 +1,1510 @@ +// Copyright (C) 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + + +/** + * @fileoverview + * some functions for browser-side pretty printing of code contained in html. + *

+ * + * For a fairly comprehensive set of languages see the + * README + * file that came with this source. At a minimum, the lexer should work on a + * number of languages including C and friends, Java, Python, Bash, SQL, HTML, + * XML, CSS, Javascript, and Makefiles. It works passably on Ruby, PHP and Awk + * and a subset of Perl, but, because of commenting conventions, doesn't work on + * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class. + *

+ * Usage:

    + *
  1. include this source file in an html page via + * {@code } + *
  2. define style rules. See the example page for examples. + *
  3. mark the {@code
    } and {@code } tags in your source with
    + *    {@code class=prettyprint.}
    + *    You can also use the (html deprecated) {@code } tag, but the pretty
    + *    printer needs to do more substantial DOM manipulations to support that, so
    + *    some css styles may not be preserved.
    + * </ol>
    + * That's it.  I wanted to keep the API as simple as possible, so there's no
    + * need to specify which language the code is in, but if you wish, you can add
    + * another class to the {@code <pre>} or {@code <code>} element to specify the
    + * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
    + * starts with "lang-" followed by a file extension, specifies the file type.
    + * See the "lang-*.js" files in this directory for code that implements
    + * per-language file handlers.
    + * <p>
    + * Change log:<br>
    + * cbeust, 2006/08/22
    + * <blockquote>
    + *   Java annotations (start with "@") are now captured as literals ("lit")
    + * </blockquote>
    + * @requires console
    + */
    +
    +// JSLint declarations
    +/*global console, document, navigator, setTimeout, window */
    +
    +/**
    + * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
    + * UI events.
    + * If set to {@code false}, {@code prettyPrint()} is synchronous.
    + */
    +window['PR_SHOULD_USE_CONTINUATION'] = true;
    +
    +/** the number of characters between tab columns */
    +window['PR_TAB_WIDTH'] = 8;
    +
    +/** Walks the DOM returning a properly escaped version of innerHTML.
    +  * @param {Node} node
    +  * @param {Array.<string>} out output buffer that receives chunks of HTML.
    +  */
    +window['PR_normalizedHtml']
    +
    +/** Contains functions for creating and registering new language handlers.
    +  * @type {Object}
    +  */
    +  = window['PR']
    +
    +/** Pretty print a chunk of code.
    +  *
    +  * @param {string} sourceCodeHtml code as html
    +  * @return {string} code as html, but prettier
    +  */
    +  = window['prettyPrintOne']
    +/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with
    +  * {@code class=prettyprint} and prettify them.
    +  * @param {Function?} opt_whenDone if specified, called when the last entry
    +  *     has been finished.
    +  */
    +  = window['prettyPrint'] = void 0;
    +
    +/** browser detection. @extern @returns false if not IE, otherwise the major version. */
    +window['_pr_isIE6'] = function () {
    +  var ieVersion = navigator && navigator.userAgent &&
    +      navigator.userAgent.match(/\bMSIE ([678])\./);
    +  ieVersion = ieVersion ? +ieVersion[1] : false;
    +  window['_pr_isIE6'] = function () { return ieVersion; };
    +  return ieVersion;
    +};
    +
    +
    +(function () {
    +  // Keyword lists for various languages.
    +  var FLOW_CONTROL_KEYWORDS =
    +      "break continue do else for if return while ";
    +  var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
    +      "double enum extern float goto int long register short signed sizeof " +
    +      "static struct switch typedef union unsigned void volatile ";
    +  var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
    +      "new operator private protected public this throw true try typeof ";
    +  var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
    +      "concept concept_map const_cast constexpr decltype " +
    +      "dynamic_cast explicit export friend inline late_check " +
    +      "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
    +      "template typeid typename using virtual wchar_t where ";
    +  var JAVA_KEYWORDS = COMMON_KEYWORDS +
    +      "abstract boolean byte extends final finally implements import " +
    +      "instanceof null native package strictfp super synchronized throws " +
    +      "transient ";
    +  var CSHARP_KEYWORDS = JAVA_KEYWORDS +
    +      "as base by checked decimal delegate descending event " +
    +      "fixed foreach from group implicit in interface internal into is lock " +
    +      "object out override orderby params partial readonly ref sbyte sealed " +
    +      "stackalloc string select uint ulong unchecked unsafe ushort var ";
    +  var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
    +      "debugger eval export function get null set undefined var with " +
    +      "Infinity NaN ";
    +  var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
    +      "goto if import last local my next no our print package redo require " +
    +      "sub undef unless until use wantarray while BEGIN END ";
    +  var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
    +      "elif except exec finally from global import in is lambda " +
    +      "nonlocal not or pass print raise try with yield " +
    +      "False True None ";
    +  var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
    +      " defined elsif end ensure false in module next nil not or redo rescue " +
    +      "retry self super then true undef unless until when yield BEGIN END ";
    +  var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
    +      "function in local set then until ";
    +  var ALL_KEYWORDS = (
    +      CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
    +      PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
    +
    +  // token style names.  correspond to css classes
    +  /** token style for a string literal */
    +  var PR_STRING = 'str';
    +  /** token style for a keyword */
    +  var PR_KEYWORD = 'kwd';
    +  /** token style for a comment */
    +  var PR_COMMENT = 'com';
    +  /** token style for a type */
    +  var PR_TYPE = 'typ';
    +  /** token style for a literal value.  e.g. 1, null, true. */
    +  var PR_LITERAL = 'lit';
    +  /** token style for a punctuation string. */
    +  var PR_PUNCTUATION = 'pun';
    +  /** token style for a punctuation string. */
    +  var PR_PLAIN = 'pln';
    +
    +  /** token style for an sgml tag. */
    +  var PR_TAG = 'tag';
    +  /** token style for a markup declaration such as a DOCTYPE. */
    +  var PR_DECLARATION = 'dec';
    +  /** token style for embedded source. */
    +  var PR_SOURCE = 'src';
    +  /** token style for an sgml attribute name. */
    +  var PR_ATTRIB_NAME = 'atn';
    +  /** token style for an sgml attribute value. */
    +  var PR_ATTRIB_VALUE = 'atv';
    +
    +  /**
    +   * A class that indicates a section of markup that is not code, e.g. to allow
    +   * embedding of line numbers within code listings.
    +   */
    +  var PR_NOCODE = 'nocode';
    +
    +  /** A set of tokens that can precede a regular expression literal in
    +    * javascript.
    +    * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
    +    * list, but I've removed ones that might be problematic when seen in
    +    * languages that don't support regular expression literals.
    +    *
    +    * <p>Specifically, I've removed any keywords that can't precede a regexp
    +    * literal in a syntactically legal javascript program, and I've removed the
    +    * "in" keyword since it's not a keyword in many languages, and might be used
    +    * as a count of inches.
    +    *
    +    * <p>The link a above does not accurately describe EcmaScript rules since
    +    * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
    +    * very well in practice.
    +    *
    +    * @private
    +    */
    +  var REGEXP_PRECEDER_PATTERN = function () {
    +      var preceders = [
    +          "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
    +          "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
    +          "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
    +          "<", "<<", "<<=", "<=", "=", "==", "===", ">",
    +          ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
    +          "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
    +          "||=", "~" /* handles =~ and !~ */,
    +          "break", "case", "continue", "delete",
    +          "do", "else", "finally", "instanceof",
    +          "return", "throw", "try", "typeof"
    +          ];
    +      var pattern = '(?:^^|[+-]';
    +      for (var i = 0; i < preceders.length; ++i) {
    +        pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
    +      }
    +      pattern += ')\\s*';  // matches at end, and matches empty string
    +      return pattern;
    +      // CAVEAT: this does not properly handle the case where a regular
    +      // expression immediately follows another since a regular expression may
    +      // have flags for case-sensitivity and the like.  Having regexp tokens
    +      // adjacent is not valid in any language I'm aware of, so I'm punting.
    +      // TODO: maybe style special characters inside a regexp as punctuation.
    +    }();
    +
    +  // Define regexps here so that the interpreter doesn't have to create an
    +  // object each time the function containing them is called.
    +  // The language spec requires a new object created even if you don't access
    +  // the $1 members.
    +  var pr_amp = /&/g;
    +  var pr_lt = /</g;
    +  var pr_gt = />/g;
    +  var pr_quot = /\"/g;
    +  /** like textToHtml but escapes double quotes to be attribute safe. */
    +  function attribToHtml(str) {
    +    return str.replace(pr_amp, '&amp;')
    +        .replace(pr_lt, '&lt;')
    +        .replace(pr_gt, '&gt;')
    +        .replace(pr_quot, '&quot;');
    +  }
    +
    +  /** escapest html special characters to html. */
    +  function textToHtml(str) {
    +    return str.replace(pr_amp, '&amp;')
    +        .replace(pr_lt, '&lt;')
    +        .replace(pr_gt, '&gt;');
    +  }
    +
    +
    +  var pr_ltEnt = /&lt;/g;
    +  var pr_gtEnt = /&gt;/g;
    +  var pr_aposEnt = /&apos;/g;
    +  var pr_quotEnt = /&quot;/g;
    +  var pr_ampEnt = /&amp;/g;
    +  var pr_nbspEnt = /&nbsp;/g;
    +  /** unescapes html to plain text. */
    +  function htmlToText(html) {
    +    var pos = html.indexOf('&');
    +    if (pos < 0) { return html; }
    +    // Handle numeric entities specially.  We can't use functional substitution
    +    // since that doesn't work in older versions of Safari.
    +    // These should be rare since most browsers convert them to normal chars.
    +    for (--pos; (pos = html.indexOf('&#', pos + 1)) >= 0;) {
    +      var end = html.indexOf(';', pos);
    +      if (end >= 0) {
    +        var num = html.substring(pos + 3, end);
    +        var radix = 10;
    +        if (num && num.charAt(0) === 'x') {
    +          num = num.substring(1);
    +          radix = 16;
    +        }
    +        var codePoint = parseInt(num, radix);
    +        if (!isNaN(codePoint)) {
    +          html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
    +                  html.substring(end + 1));
    +        }
    +      }
    +    }
    +
    +    return html.replace(pr_ltEnt, '<')
    +        .replace(pr_gtEnt, '>')
    +        .replace(pr_aposEnt, "'")
    +        .replace(pr_quotEnt, '"')
    +        .replace(pr_nbspEnt, ' ')
    +        .replace(pr_ampEnt, '&');
    +  }
    +
    +  /** is the given node's innerHTML normally unescaped? */
    +  function isRawContent(node) {
    +    return 'XMP' === node.tagName;
    +  }
    +
    +  var newlineRe = /[\r\n]/g;
    +  /**
    +   * Are newlines and adjacent spaces significant in the given node's innerHTML?
    +   */
    +  function isPreformatted(node, content) {
    +    // PRE means preformatted, and is a very common case, so don't create
    +    // unnecessary computed style objects.
    +    if ('PRE' === node.tagName) { return true; }
    +    if (!newlineRe.test(content)) { return true; }  // Don't care
    +    var whitespace = '';
    +    // For disconnected nodes, IE has no currentStyle.
    +    if (node.currentStyle) {
    +      whitespace = node.currentStyle.whiteSpace;
    +    } else if (window.getComputedStyle) {
    +      // Firefox makes a best guess if node is disconnected whereas Safari
    +      // returns the empty string.
    +      whitespace = window.getComputedStyle(node, null).whiteSpace;
    +    }
    +    return !whitespace || whitespace === 'pre';
    +  }
    +
    +  function normalizedHtml(node, out, opt_sortAttrs) {
    +    switch (node.nodeType) {
    +      case 1:  // an element
    +        var name = node.tagName.toLowerCase();
    +
    +        out.push('<', name);
    +        var attrs = node.attributes;
    +        var n = attrs.length;
    +        if (n) {
    +          if (opt_sortAttrs) {
    +            var sortedAttrs = [];
    +            for (var i = n; --i >= 0;) { sortedAttrs[i] = attrs[i]; }
    +            sortedAttrs.sort(function (a, b) {
    +                return (a.name < b.name) ? -1 : a.name === b.name ? 0 : 1;
    +              });
    +            attrs = sortedAttrs;
    +          }
    +          for (var i = 0; i < n; ++i) {
    +            var attr = attrs[i];
    +            if (!attr.specified) { continue; }
    +            out.push(' ', attr.name.toLowerCase(),
    +                     '="', attribToHtml(attr.value), '"');
    +          }
    +        }
    +        out.push('>');
    +        for (var child = node.firstChild; child; child = child.nextSibling) {
    +          normalizedHtml(child, out, opt_sortAttrs);
    +        }
    +        if (node.firstChild || !/^(?:br|link|img)$/.test(name)) {
    +          out.push('<\/', name, '>');
    +        }
    +        break;
    +      case 3: case 4: // text
    +        out.push(textToHtml(node.nodeValue));
    +        break;
    +    }
    +  }
    +
    +  /**
    +   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
    +   * matches the union o the sets o strings matched d by the input RegExp.
    +   * Since it matches globally, if the input strings have a start-of-input
    +   * anchor (/^.../), it is ignored for the purposes of unioning.
    +   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
    +   * @return {RegExp} a global regex.
    +   */
    +  function combinePrefixPatterns(regexs) {
    +    var capturedGroupIndex = 0;
    +
    +    var needToFoldCase = false;
    +    var ignoreCase = false;
    +    for (var i = 0, n = regexs.length; i < n; ++i) {
    +      var regex = regexs[i];
    +      if (regex.ignoreCase) {
    +        ignoreCase = true;
    +      } else if (/[a-z]/i.test(regex.source.replace(
    +                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
    +        needToFoldCase = true;
    +        ignoreCase = false;
    +        break;
    +      }
    +    }
    +
    +    function decodeEscape(charsetPart) {
    +      if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
    +      switch (charsetPart.charAt(1)) {
    +        case 'b': return 8;
    +        case 't': return 9;
    +        case 'n': return 0xa;
    +        case 'v': return 0xb;
    +        case 'f': return 0xc;
    +        case 'r': return 0xd;
    +        case 'u': case 'x':
    +          return parseInt(charsetPart.substring(2), 16)
    +              || charsetPart.charCodeAt(1);
    +        case '0': case '1': case '2': case '3': case '4':
    +        case '5': case '6': case '7':
    +          return parseInt(charsetPart.substring(1), 8);
    +        default: return charsetPart.charCodeAt(1);
    +      }
    +    }
    +
    +    function encodeEscape(charCode) {
    +      if (charCode < 0x20) {
    +        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
    +      }
    +      var ch = String.fromCharCode(charCode);
    +      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
    +        ch = '\\' + ch;
    +      }
    +      return ch;
    +    }
    +
    +    function caseFoldCharset(charSet) {
    +      var charsetParts = charSet.substring(1, charSet.length - 1).match(
    +          new RegExp(
    +              '\\\\u[0-9A-Fa-f]{4}'
    +              + '|\\\\x[0-9A-Fa-f]{2}'
    +              + '|\\\\[0-3][0-7]{0,2}'
    +              + '|\\\\[0-7]{1,2}'
    +              + '|\\\\[\\s\\S]'
    +              + '|-'
    +              + '|[^-\\\\]',
    +              'g'));
    +      var groups = [];
    +      var ranges = [];
    +      var inverse = charsetParts[0] === '^';
    +      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
    +        var p = charsetParts[i];
    +        switch (p) {
    +          case '\\B': case '\\b':
    +          case '\\D': case '\\d':
    +          case '\\S': case '\\s':
    +          case '\\W': case '\\w':
    +            groups.push(p);
    +            continue;
    +        }
    +        var start = decodeEscape(p);
    +        var end;
    +        if (i + 2 < n && '-' === charsetParts[i + 1]) {
    +          end = decodeEscape(charsetParts[i + 2]);
    +          i += 2;
    +        } else {
    +          end = start;
    +        }
    +        ranges.push([start, end]);
    +        // If the range might intersect letters, then expand it.
    +        if (!(end < 65 || start > 122)) {
    +          if (!(end < 65 || start > 90)) {
    +            ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
    +          }
    +          if (!(end < 97 || start > 122)) {
    +            ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
    +          }
    +        }
    +      }
    +
    +      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
    +      // -> [[1, 12], [14, 14], [16, 17]]
    +      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
    +      var consolidatedRanges = [];
    +      var lastRange = [NaN, NaN];
    +      for (var i = 0; i < ranges.length; ++i) {
    +        var range = ranges[i];
    +        if (range[0] <= lastRange[1] + 1) {
    +          lastRange[1] = Math.max(lastRange[1], range[1]);
    +        } else {
    +          consolidatedRanges.push(lastRange = range);
    +        }
    +      }
    +
    +      var out = ['['];
    +      if (inverse) { out.push('^'); }
    +      out.push.apply(out, groups);
    +      for (var i = 0; i < consolidatedRanges.length; ++i) {
    +        var range = consolidatedRanges[i];
    +        out.push(encodeEscape(range[0]));
    +        if (range[1] > range[0]) {
    +          if (range[1] + 1 > range[0]) { out.push('-'); }
    +          out.push(encodeEscape(range[1]));
    +        }
    +      }
    +      out.push(']');
    +      return out.join('');
    +    }
    +
    +    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
    +      // Split into character sets, escape sequences, punctuation strings
    +      // like ('(', '(?:', ')', '^'), and runs of characters that do not
    +      // include any of the above.
    +      var parts = regex.source.match(
    +          new RegExp(
    +              '(?:'
    +              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
    +              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
    +              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
    +              + '|\\\\[0-9]+'  // a back-reference or octal escape
    +              + '|\\\\[^ux0-9]'  // other escape sequence
    +              + '|\\(\\?[:!=]'  // start of a non-capturing group
    +              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
    +              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
    +              + ')',
    +              'g'));
    +      var n = parts.length;
    +
    +      // Maps captured group numbers to the number they will occupy in
    +      // the output or to -1 if that has not been determined, or to
    +      // undefined if they need not be capturing in the output.
    +      var capturedGroups = [];
    +
    +      // Walk over and identify back references to build the capturedGroups
    +      // mapping.
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        var p = parts[i];
    +        if (p === '(') {
    +          // groups are 1-indexed, so max group index is count of '('
    +          ++groupIndex;
    +        } else if ('\\' === p.charAt(0)) {
    +          var decimalValue = +p.substring(1);
    +          if (decimalValue && decimalValue <= groupIndex) {
    +            capturedGroups[decimalValue] = -1;
    +          }
    +        }
    +      }
    +
    +      // Renumber groups and reduce capturing groups to non-capturing groups
    +      // where possible.
    +      for (var i = 1; i < capturedGroups.length; ++i) {
    +        if (-1 === capturedGroups[i]) {
    +          capturedGroups[i] = ++capturedGroupIndex;
    +        }
    +      }
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        var p = parts[i];
    +        if (p === '(') {
    +          ++groupIndex;
    +          if (capturedGroups[groupIndex] === undefined) {
    +            parts[i] = '(?:';
    +          }
    +        } else if ('\\' === p.charAt(0)) {
    +          var decimalValue = +p.substring(1);
    +          if (decimalValue && decimalValue <= groupIndex) {
    +            parts[i] = '\\' + capturedGroups[groupIndex];
    +          }
    +        }
    +      }
    +
    +      // Remove any prefix anchors so that the output will match anywhere.
    +      // ^^ really does mean an anchored match though.
    +      for (var i = 0, groupIndex = 0; i < n; ++i) {
    +        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
    +      }
    +
    +      // Expand letters to groupts to handle mixing of case-sensitive and
    +      // case-insensitive patterns if necessary.
    +      if (regex.ignoreCase && needToFoldCase) {
    +        for (var i = 0; i < n; ++i) {
    +          var p = parts[i];
    +          var ch0 = p.charAt(0);
    +          if (p.length >= 2 && ch0 === '[') {
    +            parts[i] = caseFoldCharset(p);
    +          } else if (ch0 !== '\\') {
    +            // TODO: handle letters in numeric escapes.
    +            parts[i] = p.replace(
    +                /[a-zA-Z]/g,
    +                function (ch) {
    +                  var cc = ch.charCodeAt(0);
    +                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
    +                });
    +          }
    +        }
    +      }
    +
    +      return parts.join('');
    +    }
    +
    +    var rewritten = [];
    +    for (var i = 0, n = regexs.length; i < n; ++i) {
    +      var regex = regexs[i];
    +      if (regex.global || regex.multiline) { throw new Error('' + regex); }
    +      rewritten.push(
    +          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
    +    }
    +
    +    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
    +  }
    +
    +  var PR_innerHtmlWorks = null;
    +  function getInnerHtml(node) {
    +    // inner html is hopelessly broken in Safari 2.0.4 when the content is
    +    // an html description of well formed XML and the containing tag is a PRE
    +    // tag, so we detect that case and emulate innerHTML.
    +    if (null === PR_innerHtmlWorks) {
    +      var testNode = document.createElement('PRE');
    +      testNode.appendChild(
    +          document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));
    +      PR_innerHtmlWorks = !/</.test(testNode.innerHTML);
    +    }
    +
    +    if (PR_innerHtmlWorks) {
    +      var content = node.innerHTML;
    +      // XMP tags contain unescaped entities so require special handling.
    +      if (isRawContent(node)) {
    +        content = textToHtml(content);
    +      } else if (!isPreformatted(node, content)) {
    +        content = content.replace(/(<br\s*\/?>)[\r\n]+/g, '$1')
    +            .replace(/(?:[\r\n]+[ \t]*)+/g, ' ');
    +      }
    +      return content;
    +    }
    +
    +    var out = [];
    +    for (var child = node.firstChild; child; child = child.nextSibling) {
    +      normalizedHtml(child, out);
    +    }
    +    return out.join('');
    +  }
    +
    +  /** returns a function that expand tabs to spaces.  This function can be fed
    +    * successive chunks of text, and will maintain its own internal state to
    +    * keep track of how tabs are expanded.
    +    * @return {function (string) : string} a function that takes
    +    *   plain text and return the text with tabs expanded.
    +    * @private
    +    */
    +  function makeTabExpander(tabWidth) {
    +    var SPACES = '                ';
    +    var charInLine = 0;
    +
    +    return function (plainText) {
    +      // walk over each character looking for tabs and newlines.
    +      // On tabs, expand them.  On newlines, reset charInLine.
    +      // Otherwise increment charInLine
    +      var out = null;
    +      var pos = 0;
    +      for (var i = 0, n = plainText.length; i < n; ++i) {
    +        var ch = plainText.charAt(i);
    +
    +        switch (ch) {
    +          case '\t':
    +            if (!out) { out = []; }
    +            out.push(plainText.substring(pos, i));
    +            // calculate how much space we need in front of this part
    +            // nSpaces is the amount of padding -- the number of spaces needed
    +            // to move us to the next column, where columns occur at factors of
    +            // tabWidth.
    +            var nSpaces = tabWidth - (charInLine % tabWidth);
    +            charInLine += nSpaces;
    +            for (; nSpaces >= 0; nSpaces -= SPACES.length) {
    +              out.push(SPACES.substring(0, nSpaces));
    +            }
    +            pos = i + 1;
    +            break;
    +          case '\n':
    +            charInLine = 0;
    +            break;
    +          default:
    +            ++charInLine;
    +        }
    +      }
    +      if (!out) { return plainText; }
    +      out.push(plainText.substring(pos));
    +      return out.join('');
    +    };
    +  }
    +
    +  var pr_chunkPattern = new RegExp(
    +      '[^<]+'  // A run of characters other than '<'
    +      + '|<\!--[\\s\\S]*?--\>'  // an HTML comment
    +      + '|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>'  // a CDATA section
    +      // a probable tag that should not be highlighted
    +      + '|<\/?[a-zA-Z](?:[^>\"\']|\'[^\']*\'|\"[^\"]*\")*>'
    +      + '|<',  // A '<' that does not begin a larger chunk
    +      'g');
    +  var pr_commentPrefix = /^<\!--/;
    +  var pr_cdataPrefix = /^<!\[CDATA\[/;
    +  var pr_brPrefix = /^<br\b/i;
    +  var pr_tagNameRe = /^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/;
    +
    +  /** split markup into chunks of html tags (style null) and
    +    * plain text (style {@link #PR_PLAIN}), converting tags which are
    +    * significant for tokenization (<br>) into their textual equivalent.
    +    *
    +    * @param {string} s html where whitespace is considered significant.
    +    * @return {Object} source code and extracted tags.
    +    * @private
    +    */
    +  function extractTags(s) {
    +    // since the pattern has the 'g' modifier and defines no capturing groups,
    +    // this will return a list of all chunks which we then classify and wrap as
    +    // PR_Tokens
    +    var matches = s.match(pr_chunkPattern);
    +    var sourceBuf = [];
    +    var sourceBufLen = 0;
    +    var extractedTags = [];
    +    if (matches) {
    +      for (var i = 0, n = matches.length; i < n; ++i) {
    +        var match = matches[i];
    +        if (match.length > 1 && match.charAt(0) === '<') {
    +          if (pr_commentPrefix.test(match)) { continue; }
    +          if (pr_cdataPrefix.test(match)) {
    +            // strip CDATA prefix and suffix.  Don't unescape since it's CDATA
    +            sourceBuf.push(match.substring(9, match.length - 3));
    +            sourceBufLen += match.length - 12;
    +          } else if (pr_brPrefix.test(match)) {
    +            // <br> tags are lexically significant so convert them to text.
    +            // This is undone later.
    +            sourceBuf.push('\n');
    +            ++sourceBufLen;
    +          } else {
    +            if (match.indexOf(PR_NOCODE) >= 0 && isNoCodeTag(match)) {
    +              // A <span class="nocode"> will start a section that should be
    +              // ignored.  Continue walking the list until we see a matching end
    +              // tag.
    +              var name = match.match(pr_tagNameRe)[2];
    +              var depth = 1;
    +              var j;
    +              end_tag_loop:
    +              for (j = i + 1; j < n; ++j) {
    +                var name2 = matches[j].match(pr_tagNameRe);
    +                if (name2 && name2[2] === name) {
    +                  if (name2[1] === '/') {
    +                    if (--depth === 0) { break end_tag_loop; }
    +                  } else {
    +                    ++depth;
    +                  }
    +                }
    +              }
    +              if (j < n) {
    +                extractedTags.push(
    +                    sourceBufLen, matches.slice(i, j + 1).join(''));
    +                i = j;
    +              } else {  // Ignore unclosed sections.
    +                extractedTags.push(sourceBufLen, match);
    +              }
    +            } else {
    +              extractedTags.push(sourceBufLen, match);
    +            }
    +          }
    +        } else {
    +          var literalText = htmlToText(match);
    +          sourceBuf.push(literalText);
    +          sourceBufLen += literalText.length;
    +        }
    +      }
    +    }
    +    return { source: sourceBuf.join(''), tags: extractedTags };
    +  }
    +
    +  /** True if the given tag contains a class attribute with the nocode class. */
    +  function isNoCodeTag(tag) {
    +    return !!tag
    +        // First canonicalize the representation of attributes
    +        .replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,
    +                 ' $1="$2$3$4"')
    +        // Then look for the attribute we want.
    +        .match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/);
    +  }
    +
    +  /**
    +   * Apply the given language handler to sourceCode and add the resulting
    +   * decorations to out.
    +   * @param {number} basePos the index of sourceCode within the chunk of source
    +   *    whose decorations are already present on out.
    +   */
    +  function appendDecorations(basePos, sourceCode, langHandler, out) {
    +    if (!sourceCode) { return; }
    +    var job = {
    +      source: sourceCode,
    +      basePos: basePos
    +    };
    +    langHandler(job);
    +    out.push.apply(out, job.decorations);
    +  }
    +
    +  /** Given triples of [style, pattern, context] returns a lexing function,
    +    * The lexing function interprets the patterns to find token boundaries and
    +    * returns a decoration list of the form
    +    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
    +    * where index_n is an index into the sourceCode, and style_n is a style
    +    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
    +    * all characters in sourceCode[index_n-1:index_n].
    +    *
    +    * The stylePatterns is a list whose elements have the form
    +    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
    +    *
    +    * Style is a style constant like PR_PLAIN, or can be a string of the
    +    * form 'lang-FOO', where FOO is a language extension describing the
    +    * language of the portion of the token in $1 after pattern executes.
    +    * E.g., if style is 'lang-lisp', and group 1 contains the text
    +    * '(hello (world))', then that portion of the token will be passed to the
    +    * registered lisp handler for formatting.
    +    * The text before and after group 1 will be restyled using this decorator
    +    * so decorators should take care that this doesn't result in infinite
    +    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
    +    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
    +    * '<script>foo()<\/script>', which would cause the current decorator to
    +    * be called with '<script>' which would not match the same rule since
    +    * group 1 must not be empty, so it would be instead styled as PR_TAG by
    +    * the generic tag rule.  The handler registered for the 'js' extension would
    +    * then be called with 'foo()', and finally, the current decorator would
    +    * be called with '<\/script>' which would not match the original rule and
    +    * so the generic tag rule would identify it as a tag.
    +    *
    +    * Pattern must only match prefixes, and if it matches a prefix, then that
    +    * match is considered a token with the same style.
    +    *
    +    * Context is applied to the last non-whitespace, non-comment token
    +    * recognized.
    +    *
    +    * Shortcut is an optional string of characters, any of which, if the first
    +    * character, gurantee that this pattern and only this pattern matches.
    +    *
    +    * @param {Array} shortcutStylePatterns patterns that always start with
    +    *   a known character.  Must have a shortcut string.
    +    * @param {Array} fallthroughStylePatterns patterns that will be tried in
    +    *   order if the shortcut ones fail.  May have shortcuts.
    +    *
    +    * @return {function (Object)} a
    +    *   function that takes source code and returns a list of decorations.
    +    */
    +  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
    +    var shortcuts = {};
    +    var tokenizer;
    +    (function () {
    +      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
    +      var allRegexs = [];
    +      var regexKeys = {};
    +      for (var i = 0, n = allPatterns.length; i < n; ++i) {
    +        var patternParts = allPatterns[i];
    +        var shortcutChars = patternParts[3];
    +        if (shortcutChars) {
    +          for (var c = shortcutChars.length; --c >= 0;) {
    +            shortcuts[shortcutChars.charAt(c)] = patternParts;
    +          }
    +        }
    +        var regex = patternParts[1];
    +        var k = '' + regex;
    +        if (!regexKeys.hasOwnProperty(k)) {
    +          allRegexs.push(regex);
    +          regexKeys[k] = null;
    +        }
    +      }
    +      allRegexs.push(/[\0-\uffff]/);
    +      tokenizer = combinePrefixPatterns(allRegexs);
    +    })();
    +
    +    var nPatterns = fallthroughStylePatterns.length;
    +    var notWs = /\S/;
    +
    +    /**
    +     * Lexes job.source and produces an output array job.decorations of style
    +     * classes preceded by the position at which they start in job.source in
    +     * order.
    +     *
    +     * @param {Object} job an object like {@code
    +     *    source: {string} sourceText plain text,
    +     *    basePos: {int} position of job.source in the larger chunk of
    +     *        sourceCode.
    +     * }
    +     */
    +    var decorate = function (job) {
    +      var sourceCode = job.source, basePos = job.basePos;
    +      /** Even entries are positions in source in ascending order.  Odd enties
    +        * are style markers (e.g., PR_COMMENT) that run from that position until
    +        * the end.
    +        * @type {Array.<number|string>}
    +        */
    +      var decorations = [basePos, PR_PLAIN];
    +      var pos = 0;  // index into sourceCode
    +      var tokens = sourceCode.match(tokenizer) || [];
    +      var styleCache = {};
    +
    +      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
    +        var token = tokens[ti];
    +        var style = styleCache[token];
    +        var match = void 0;
    +
    +        var isEmbedded;
    +        if (typeof style === 'string') {
    +          isEmbedded = false;
    +        } else {
    +          var patternParts = shortcuts[token.charAt(0)];
    +          if (patternParts) {
    +            match = token.match(patternParts[1]);
    +            style = patternParts[0];
    +          } else {
    +            for (var i = 0; i < nPatterns; ++i) {
    +              patternParts = fallthroughStylePatterns[i];
    +              match = token.match(patternParts[1]);
    +              if (match) {
    +                style = patternParts[0];
    +                break;
    +              }
    +            }
    +
    +            if (!match) {  // make sure that we make progress
    +              style = PR_PLAIN;
    +            }
    +          }
    +
    +          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
    +          if (isEmbedded && !(match && typeof match[1] === 'string')) {
    +            isEmbedded = false;
    +            style = PR_SOURCE;
    +          }
    +
    +          if (!isEmbedded) { styleCache[token] = style; }
    +        }
    +
    +        var tokenStart = pos;
    +        pos += token.length;
    +
    +        if (!isEmbedded) {
    +          decorations.push(basePos + tokenStart, style);
    +        } else {  // Treat group 1 as an embedded block of source code.
    +          var embeddedSource = match[1];
    +          var embeddedSourceStart = token.indexOf(embeddedSource);
    +          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
    +          if (match[2]) {
    +            // If embeddedSource can be blank, then it would match at the
    +            // beginning which would cause us to infinitely recurse on the
    +            // entire token, so we catch the right context in match[2].
    +            embeddedSourceEnd = token.length - match[2].length;
    +            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
    +          }
    +          var lang = style.substring(5);
    +          // Decorate the left of the embedded source
    +          appendDecorations(
    +              basePos + tokenStart,
    +              token.substring(0, embeddedSourceStart),
    +              decorate, decorations);
    +          // Decorate the embedded source
    +          appendDecorations(
    +              basePos + tokenStart + embeddedSourceStart,
    +              embeddedSource,
    +              langHandlerForExtension(lang, embeddedSource),
    +              decorations);
    +          // Decorate the right of the embedded section
    +          appendDecorations(
    +              basePos + tokenStart + embeddedSourceEnd,
    +              token.substring(embeddedSourceEnd),
    +              decorate, decorations);
    +        }
    +      }
    +      job.decorations = decorations;
    +    };
    +    return decorate;
    +  }
    +
    +  /** returns a function that produces a list of decorations from source text.
    +    *
    +    * This code treats ", ', and ` as string delimiters, and \ as a string
    +    * escape.  It does not recognize perl's qq() style strings.
    +    * It has no special handling for double delimiter escapes as in basic, or
    +    * the tripled delimiters used in python, but should work on those regardless
    +    * although in those cases a single string literal may be broken up into
    +    * multiple adjacent string literals.
    +    *
    +    * It recognizes C, C++, and shell style comments.
    +    *
    +    * @param {Object} options a set of optional parameters.
    +    * @return {function (Object)} a function that examines the source code
    +    *     in the input job and builds the decoration list.
    +    */
    +  function sourceDecorator(options) {
    +    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
    +    if (options['tripleQuotedStrings']) {
    +      // '''multi-line-string''', 'single-line-string', and double-quoted
    +      shortcutStylePatterns.push(
    +          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
    +           null, '\'"']);
    +    } else if (options['multiLineStrings']) {
    +      // 'multi-line-string', "multi-line-string"
    +      shortcutStylePatterns.push(
    +          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
    +           null, '\'"`']);
    +    } else {
    +      // 'single-line-string', "single-line-string"
    +      shortcutStylePatterns.push(
    +          [PR_STRING,
    +           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
    +           null, '"\'']);
    +    }
    +    if (options['verbatimStrings']) {
    +      // verbatim-string-literal production from the C# grammar.  See issue 93.
    +      fallthroughStylePatterns.push(
    +          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
    +    }
    +    if (options['hashComments']) {
    +      if (options['cStyleComments']) {
    +        // Stop C preprocessor declarations at an unclosed open comment
    +        shortcutStylePatterns.push(
    +            [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
    +             null, '#']);
    +        fallthroughStylePatterns.push(
    +            [PR_STRING,
    +             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
    +             null]);
    +      } else {
    +        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
    +      }
    +    }
    +    if (options['cStyleComments']) {
    +      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
    +      fallthroughStylePatterns.push(
    +          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
    +    }
    +    if (options['regexLiterals']) {
    +      var REGEX_LITERAL = (
    +          // A regular expression literal starts with a slash that is
    +          // not followed by * or / so that it is not confused with
    +          // comments.
    +          '/(?=[^/*])'
    +          // and then contains any number of raw characters,
    +          + '(?:[^/\\x5B\\x5C]'
    +          // escape sequences (\x5C),
    +          +    '|\\x5C[\\s\\S]'
    +          // or non-nesting character sets (\x5B\x5D);
    +          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
    +          // finally closed by a /.
    +          + '/');
    +      fallthroughStylePatterns.push(
    +          ['lang-regex',
    +           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
    +           ]);
    +    }
    +
    +    var keywords = options['keywords'].replace(/^\s+|\s+$/g, '');
    +    if (keywords.length) {
    +      fallthroughStylePatterns.push(
    +          [PR_KEYWORD,
    +           new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]);
    +    }
    +
    +    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
    +    fallthroughStylePatterns.push(
    +        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
    +        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
    +        [PR_TYPE,        /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
    +        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
    +        [PR_LITERAL,
    +         new RegExp(
    +             '^(?:'
    +             // A hex number
    +             + '0x[a-f0-9]+'
    +             // or an octal or decimal number,
    +             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
    +             // possibly in scientific notation
    +             + '(?:e[+\\-]?\\d+)?'
    +             + ')'
    +             // with an optional modifier like UL for unsigned long
    +             + '[a-z]*', 'i'),
    +         null, '0123456789'],
    +        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#]*/, null]);
    +
    +    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
    +  }
    +
    +  var decorateSource = sourceDecorator({
    +        'keywords': ALL_KEYWORDS,
    +        'hashComments': true,
    +        'cStyleComments': true,
    +        'multiLineStrings': true,
    +        'regexLiterals': true
    +      });
    +
    +  /** Breaks {@code job.source} around style boundaries in
    +    * {@code job.decorations} while re-interleaving {@code job.extractedTags},
    +    * and leaves the result in {@code job.prettyPrintedHtml}.
    +    * @param {Object} job like {
    +    *    source: {string} source as plain text,
    +    *    extractedTags: {Array.<number|string>} extractedTags chunks of raw
    +    *                   html preceded by their position in {@code job.source}
    +    *                   in order
    +    *    decorations: {Array.<number|string} an array of style classes preceded
    +    *                 by the position at which they start in job.source in order
    +    * }
    +    * @private
    +    */
    +  function recombineTagsAndDecorations(job) {
    +    var sourceText = job.source;
    +    var extractedTags = job.extractedTags;
    +    var decorations = job.decorations;
    +
    +    var html = [];
    +    // index past the last char in sourceText written to html
    +    var outputIdx = 0;
    +
    +    var openDecoration = null;
    +    var currentDecoration = null;
    +    var tagPos = 0;  // index into extractedTags
    +    var decPos = 0;  // index into decorations
    +    var tabExpander = makeTabExpander(window['PR_TAB_WIDTH']);
    +
    +    var adjacentSpaceRe = /([\r\n ]) /g;
    +    var startOrSpaceRe = /(^| ) /gm;
    +    var newlineRe = /\r\n?|\n/g;
    +    var trailingSpaceRe = /[ \r\n]$/;
    +    var lastWasSpace = true;  // the last text chunk emitted ended with a space.
    +
    +    // See bug 71 and http://stackoverflow.com/questions/136443/why-doesnt-ie7-
    +    var isIE678 = window['_pr_isIE6']();
    +    var lineBreakHtml = (
    +        isIE678
    +        ? (job.sourceNode.tagName === 'PRE'
    +           // Use line feeds instead of <br>s so that copying and pasting works
    +           // on IE.
    +           // Doing this on other browsers breaks lots of stuff since \r\n is
    +           // treated as two newlines on Firefox.
    +           ? (isIE678 === 6 ? '&#160;\r\n' :
    +              isIE678 === 7 ? '&#160;<br>\r' : '&#160;\r')
    +           // IE collapses multiple adjacent <br>s into 1 line break.
    +           // Prefix every newline with '&#160;' to prevent such behavior.
    +           // &nbsp; is the same as &#160; but works in XML as well as HTML.
    +           : '&#160;<br />')
    +        : '<br />');
    +
    +    // Look for a class like linenums or linenums:<n> where <n> is the 1-indexed
    +    // number of the first line.
    +    var numberLines = job.sourceNode.className.match(/\blinenums\b(?::(\d+))?/);
    +    var lineBreaker;
    +    if (numberLines) {
    +      var lineBreaks = [];
    +      for (var i = 0; i < 10; ++i) {
    +        lineBreaks[i] = lineBreakHtml + '</li><li class="L' + i + '">';
    +      }
    +      var lineNum = numberLines[1] && numberLines[1].length
    +          ? numberLines[1] - 1 : 0;  // Lines are 1-indexed
    +      html.push('<ol class="linenums"><li class="L', (lineNum) % 10, '"');
    +      if (lineNum) {
    +        html.push(' value="', lineNum + 1, '"');
    +      }
    +      html.push('>');
    +      lineBreaker = function () {
    +        var lb = lineBreaks[++lineNum % 10];
    +        // If a decoration is open, we need to close it before closing a list-item
    +        // and reopen it on the other side of the list item.
    +        return openDecoration
    +            ? ('</span>' + lb + '<span class="' + openDecoration + '">') : lb;
    +      };
    +    } else {
    +      lineBreaker = lineBreakHtml;
    +    }
    +
    +    // A helper function that is responsible for opening sections of decoration
    +    // and outputing properly escaped chunks of source
    +    function emitTextUpTo(sourceIdx) {
    +      if (sourceIdx > outputIdx) {
    +        if (openDecoration && openDecoration !== currentDecoration) {
    +          // Close the current decoration
    +          html.push('</span>');
    +          openDecoration = null;
    +        }
    +        if (!openDecoration && currentDecoration) {
    +          openDecoration = currentDecoration;
    +          html.push('<span class="', openDecoration, '">');
    +        }
    +        // This interacts badly with some wikis which introduces paragraph tags
    +        // into pre blocks for some strange reason.
    +        // It's necessary for IE though which seems to lose the preformattedness
    +        // of <pre> tags when their innerHTML is assigned.
    +        // http://stud3.tuwien.ac.at/~e0226430/innerHtmlQuirk.html
    +        // and it serves to undo the conversion of <br>s to newlines done in
    +        // chunkify.
    +        var htmlChunk = textToHtml(
    +            tabExpander(sourceText.substring(outputIdx, sourceIdx)))
    +            .replace(lastWasSpace
    +                     ? startOrSpaceRe
    +                     : adjacentSpaceRe, '$1&#160;');
    +        // Keep track of whether we need to escape space at the beginning of the
    +        // next chunk.
    +        lastWasSpace = trailingSpaceRe.test(htmlChunk);
    +        html.push(htmlChunk.replace(newlineRe, lineBreaker));
    +        outputIdx = sourceIdx;
    +      }
    +    }
    +
    +    while (true) {
    +      // Determine if we're going to consume a tag this time around.  Otherwise
    +      // we consume a decoration or exit.
    +      var outputTag;
    +      if (tagPos < extractedTags.length) {
    +        if (decPos < decorations.length) {
    +          // Pick one giving preference to extractedTags since we shouldn't open
    +          // a new style that we're going to have to immediately close in order
    +          // to output a tag.
    +          outputTag = extractedTags[tagPos] <= decorations[decPos];
    +        } else {
    +          outputTag = true;
    +        }
    +      } else {
    +        outputTag = false;
    +      }
    +      // Consume either a decoration or a tag or exit.
    +      if (outputTag) {
    +        emitTextUpTo(extractedTags[tagPos]);
    +        if (openDecoration) {
    +          // Close the current decoration
    +          html.push('</span>');
    +          openDecoration = null;
    +        }
    +        html.push(extractedTags[tagPos + 1]);
    +        tagPos += 2;
    +      } else if (decPos < decorations.length) {
    +        emitTextUpTo(decorations[decPos]);
    +        currentDecoration = decorations[decPos + 1];
    +        decPos += 2;
    +      } else {
    +        break;
    +      }
    +    }
    +    emitTextUpTo(sourceText.length);
    +    if (openDecoration) {
    +      html.push('</span>');
    +    }
    +    if (numberLines) { html.push('</li></ol>'); }
    +    job.prettyPrintedHtml = html.join('');
    +  }
    +
    +  /** Maps language-specific file extensions to handlers. */
    +  var langHandlerRegistry = {};
    +  /** Register a language handler for the given file extensions.
    +    * @param {function (Object)} handler a function from source code to a list
    +    *      of decorations.  Takes a single argument job which describes the
    +    *      state of the computation.   The single parameter has the form
    +    *      {@code {
    +    *        source: {string} as plain text.
    +    *        decorations: {Array.<number|string>} an array of style classes
    +    *                     preceded by the position at which they start in
    +    *                     job.source in order.
    +    *                     The language handler should assigned this field.
    +    *        basePos: {int} the position of source in the larger source chunk.
    +    *                 All positions in the output decorations array are relative
    +    *                 to the larger source chunk.
    +    *      } }
    +    * @param {Array.<string>} fileExtensions
    +    */
    +  function registerLangHandler(handler, fileExtensions) {
    +    for (var i = fileExtensions.length; --i >= 0;) {
    +      var ext = fileExtensions[i];
    +      if (!langHandlerRegistry.hasOwnProperty(ext)) {
    +        langHandlerRegistry[ext] = handler;
    +      } else if ('console' in window) {
    +        console['warn']('cannot override language handler %s', ext);
    +      }
    +    }
    +  }
    +  function langHandlerForExtension(extension, source) {
    +    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
    +      // Treat it as markup if the first non whitespace character is a < and
    +      // the last non-whitespace character is a >.
    +      extension = /^\s*</.test(source)
    +          ? 'default-markup'
    +          : 'default-code';
    +    }
    +    return langHandlerRegistry[extension];
    +  }
    +  registerLangHandler(decorateSource, ['default-code']);
    +  registerLangHandler(
    +      createSimpleLexer(
    +          [],
    +          [
    +           [PR_PLAIN,       /^[^<?]+/],
    +           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
    +           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
    +           // Unescaped content in an unknown language
    +           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
    +           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
    +           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
    +           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
    +           // Unescaped content in javascript.  (Or possibly vbscript).
    +           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
    +           // Contains unescaped stylesheet content
    +           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
    +           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
    +          ]),
    +      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
    +  registerLangHandler(
    +      createSimpleLexer(
    +          [
    +           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
    +           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
    +           ],
    +          [
    +           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
    +           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
    +           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
    +           [PR_PUNCTUATION,  /^[=<>\/]+/],
    +           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
    +           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
    +           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
    +           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
    +           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
    +           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
    +           ]),
    +      ['in.tag']);
    +  registerLangHandler(
    +      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': CPP_KEYWORDS,
    +          'hashComments': true,
    +          'cStyleComments': true
    +        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': 'null true false'
    +        }), ['json']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': CSHARP_KEYWORDS,
    +          'hashComments': true,
    +          'cStyleComments': true,
    +          'verbatimStrings': true
    +        }), ['cs']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': JAVA_KEYWORDS,
    +          'cStyleComments': true
    +        }), ['java']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': SH_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true
    +        }), ['bsh', 'csh', 'sh']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': PYTHON_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'tripleQuotedStrings': true
    +        }), ['cv', 'py']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': PERL_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'regexLiterals': true
    +        }), ['perl', 'pl', 'pm']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': RUBY_KEYWORDS,
    +          'hashComments': true,
    +          'multiLineStrings': true,
    +          'regexLiterals': true
    +        }), ['rb']);
    +  registerLangHandler(sourceDecorator({
    +          'keywords': JSCRIPT_KEYWORDS,
    +          'cStyleComments': true,
    +          'regexLiterals': true
    +        }), ['js']);
    +  registerLangHandler(
    +      createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
    +
    +  function applyDecorator(job) {
    +    var sourceCodeHtml = job.sourceCodeHtml;
    +    var opt_langExtension = job.langExtension;
    +
    +    // Prepopulate output in case processing fails with an exception.
    +    job.prettyPrintedHtml = sourceCodeHtml;
    +
    +    try {
    +      // Extract tags, and convert the source code to plain text.
    +      var sourceAndExtractedTags = extractTags(sourceCodeHtml);
    +      /** Plain text. @type {string} */
    +      var source = sourceAndExtractedTags.source;
    +      job.source = source;
    +      job.basePos = 0;
    +
    +      /** Even entries are positions in source in ascending order.  Odd entries
    +        * are tags that were extracted at that position.
    +        * @type {Array.<number|string>}
    +        */
    +      job.extractedTags = sourceAndExtractedTags.tags;
    +
    +      // Apply the appropriate language handler
    +      langHandlerForExtension(opt_langExtension, source)(job);
    +      // Integrate the decorations and tags back into the source code to produce
    +      // a decorated html string which is left in job.prettyPrintedHtml.
    +      recombineTagsAndDecorations(job);
    +    } catch (e) {
    +      if ('console' in window) {
    +        console['log'](e && e['stack'] ? e['stack'] : e);
    +      }
    +    }
    +  }
    +
    +  function prettyPrintOne(sourceCodeHtml, opt_langExtension) {
    +    var job = {
    +      sourceCodeHtml: sourceCodeHtml,
    +      langExtension: opt_langExtension
    +    };
    +    applyDecorator(job);
    +    return job.prettyPrintedHtml;
    +  }
    +
    +  function prettyPrint(opt_whenDone) {
    +    function byTagName(tn) { return document.getElementsByTagName(tn); }
    +    // fetch a list of nodes to rewrite
    +    var codeSegments = [byTagName('pre'), byTagName('code'), byTagName('xmp')];
    +    var elements = [];
    +    for (var i = 0; i < codeSegments.length; ++i) {
    +      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
    +        elements.push(codeSegments[i][j]);
    +      }
    +    }
    +    codeSegments = null;
    +
    +    var clock = Date;
    +    if (!clock['now']) {
    +      clock = { 'now': function () { return (new Date).getTime(); } };
    +    }
    +
    +    // The loop is broken into a series of continuations to make sure that we
    +    // don't make the browser unresponsive when rewriting a large page.
    +    var k = 0;
    +    var prettyPrintingJob;
    +
    +    function doWork() {
    +      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
    +                     clock.now() + 250 /* ms */ :
    +                     Infinity);
    +      for (; k < elements.length && clock.now() < endTime; k++) {
    +        var cs = elements[k];
    +        // [JACOCO] 'prettyprint' -> 'source'
    +        if (cs.className && cs.className.indexOf('source') >= 0) {
    +          // If the classes includes a language extensions, use it.
    +          // Language extensions can be specified like
    +          //     <pre class="prettyprint lang-cpp">
    +          // the language extension "cpp" is used to find a language handler as
    +          // passed to PR_registerLangHandler.
    +          var langExtension = cs.className.match(/\blang-(\w+)\b/);
    +          if (langExtension) { langExtension = langExtension[1]; }
    +
    +          // make sure this is not nested in an already prettified element
    +          var nested = false;
    +          for (var p = cs.parentNode; p; p = p.parentNode) {
    +            if ((p.tagName === 'pre' || p.tagName === 'code' ||
    +                 p.tagName === 'xmp') &&
    +                // [JACOCO] 'prettyprint' -> 'source'
    +                p.className && p.className.indexOf('source') >= 0) {
    +              nested = true;
    +              break;
    +            }
    +          }
    +          if (!nested) {
    +            // fetch the content as a snippet of properly escaped HTML.
    +            // Firefox adds newlines at the end.
    +            var content = getInnerHtml(cs);
    +            content = content.replace(/(?:\r\n?|\n)$/, '');
    +
    +            // do the pretty printing
    +            prettyPrintingJob = {
    +              sourceCodeHtml: content,
    +              langExtension: langExtension,
    +              sourceNode: cs
    +            };
    +            applyDecorator(prettyPrintingJob);
    +            replaceWithPrettyPrintedHtml();
    +          }
    +        }
    +      }
    +      if (k < elements.length) {
    +        // finish up in a continuation
    +        setTimeout(doWork, 250);
    +      } else if (opt_whenDone) {
    +        opt_whenDone();
    +      }
    +    }
    +
    +    function replaceWithPrettyPrintedHtml() {
    +      var newContent = prettyPrintingJob.prettyPrintedHtml;
    +      if (!newContent) { return; }
    +      var cs = prettyPrintingJob.sourceNode;
    +
    +      // push the prettified html back into the tag.
    +      if (!isRawContent(cs)) {
    +        // just replace the old html with the new
    +        cs.innerHTML = newContent;
    +      } else {
    +        // we need to change the tag to a <pre> since <xmp>s do not allow
    +        // embedded tags such as the span tags used to attach styles to
    +        // sections of source code.
    +        var pre = document.createElement('PRE');
    +        for (var i = 0; i < cs.attributes.length; ++i) {
    +          var a = cs.attributes[i];
    +          if (a.specified) {
    +            var aname = a.name.toLowerCase();
    +            if (aname === 'class') {
    +              pre.className = a.value;  // For IE 6
    +            } else {
    +              pre.setAttribute(a.name, a.value);
    +            }
    +          }
    +        }
    +        pre.innerHTML = newContent;
    +
    +        // remove the old
    +        cs.parentNode.replaceChild(pre, cs);
    +        cs = pre;
    +      }
    +    }
    +
    +    doWork();
    +  }
    +
    +  window['PR_normalizedHtml'] = normalizedHtml;
    +  window['prettyPrintOne'] = prettyPrintOne;
    +  window['prettyPrint'] = prettyPrint;
    +  window['PR'] = {
    +        'combinePrefixPatterns': combinePrefixPatterns,
    +        'createSimpleLexer': createSimpleLexer,
    +        'registerLangHandler': registerLangHandler,
    +        'sourceDecorator': sourceDecorator,
    +        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
    +        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
    +        'PR_COMMENT': PR_COMMENT,
    +        'PR_DECLARATION': PR_DECLARATION,
    +        'PR_KEYWORD': PR_KEYWORD,
    +        'PR_LITERAL': PR_LITERAL,
    +        'PR_NOCODE': PR_NOCODE,
    +        'PR_PLAIN': PR_PLAIN,
    +        'PR_PUNCTUATION': PR_PUNCTUATION,
    +        'PR_SOURCE': PR_SOURCE,
    +        'PR_STRING': PR_STRING,
    +        'PR_TAG': PR_TAG,
    +        'PR_TYPE': PR_TYPE
    +      };
    +})();
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/redbar.gif b/metrics-log4j2-htmlReport/jacoco-resources/redbar.gif
    new file mode 100644
    index 0000000000000000000000000000000000000000..c2f71469ba995289439d86ea39b1b33edb03388c
    GIT binary patch
    literal 91
    zcmZ?wbhEHbWMtrCc+AD{pP&D~tn7aso&R25|6^nS*Vg{;>G{84!T)8;{;yfXu$BQ0
    fDgI<(<YM4w&|v@qkQodt90ol_LPjnP91PX~3&9+X
    
    literal 0
    HcmV?d00001
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/report.css b/metrics-log4j2-htmlReport/jacoco-resources/report.css
    new file mode 100644
    index 0000000000..dd936bca54
    --- /dev/null
    +++ b/metrics-log4j2-htmlReport/jacoco-resources/report.css
    @@ -0,0 +1,243 @@
    +body, td {
    +  font-family:sans-serif;
    +  font-size:10pt;
    +}
    +
    +h1 {
    +  font-weight:bold;
    +  font-size:18pt;
    +}
    +
    +.breadcrumb {
    +  border:#d6d3ce 1px solid;
    +  padding:2px 4px 2px 4px;
    +}
    +
    +.breadcrumb .info {
    +  float:right;
    +}
    +
    +.breadcrumb .info a {
    +  margin-left:8px;
    +}
    +
    +.el_report {
    +  padding-left:18px;
    +  background-image:url(report.gif);
    +  background-position:left center;
    +  background-repeat:no-repeat;
    +}
    +
    +.el_group {
    +  padding-left:18px;
    +  background-image:url(group.gif);
    +  background-position:left center;
    +  background-repeat:no-repeat;
    +}
    +
    +.el_bundle {
    +  padding-left:18px;
    +  background-image:url(bundle.gif);
    +  background-position:left center;
    +  background-repeat:no-repeat;
    +}
    +
    +.el_package {
    +  padding-left:18px;
    +  background-image:url(package.gif);
    +  background-position:left center;
    +  background-repeat:no-repeat;
    +}
    +
    +.el_class {
    +  padding-left:18px;
    +  background-image:url(class.gif);
    +  background-position:left center;
    +  background-repeat:no-repeat;
    +}
    +
    +.el_source {
    +  padding-left:18px;
    +  background-image:url(source.gif);
    +  background-position:left center;
    +  background-repeat:no-repeat;
    +}
    +
    +.el_method {
    +  padding-left:18px;
    +  background-image:url(method.gif);
    +  background-position:left center;
    +  background-repeat:no-repeat;
    +}
    +
    +.el_session {
    +  padding-left:18px;
    +  background-image:url(session.gif);
    +  background-position:left center;
    +  background-repeat:no-repeat;
    +}
    +
    +pre.source {
    +  border:#d6d3ce 1px solid;
    +  font-family:monospace;
    +}
    +
    +pre.source ol {
    +  margin-bottom: 0px;
    +  margin-top: 0px;
    +}
    +
    +pre.source li {
    +  border-left: 1px solid #D6D3CE;
    +  color: #A0A0A0;
    +  padding-left: 0px;
    +}
    +
    +pre.source span.fc {
    +  background-color:#ccffcc;
    +}
    +
    +pre.source span.nc {
    +  background-color:#ffaaaa;
    +}
    +
    +pre.source span.pc {
    +  background-color:#ffffcc;
    +}
    +
    +pre.source span.bfc {
    +  background-image: url(branchfc.gif);
    +  background-repeat: no-repeat;
    +  background-position: 2px center;
    +}
    +
    +pre.source span.bfc:hover {
    +  background-color:#80ff80;
    +}
    +
    +pre.source span.bnc {
    +  background-image: url(branchnc.gif);
    +  background-repeat: no-repeat;
    +  background-position: 2px center;
    +}
    +
    +pre.source span.bnc:hover {
    +  background-color:#ff8080;
    +}
    +
    +pre.source span.bpc {
    +  background-image: url(branchpc.gif);
    +  background-repeat: no-repeat;
    +  background-position: 2px center;
    +}
    +
    +pre.source span.bpc:hover {
    +  background-color:#ffff80;
    +}
    +
    +table.coverage {
    +  empty-cells:show;
    +  border-collapse:collapse;
    +}
    +
    +table.coverage thead {
    +  background-color:#e0e0e0;
    +}
    +
    +table.coverage thead td {
    +  white-space:nowrap;
    +  padding:2px 14px 0px 6px;
    +  border-bottom:#b0b0b0 1px solid;
    +}
    +
    +table.coverage thead td.bar {
    +  border-left:#cccccc 1px solid;
    +}
    +
    +table.coverage thead td.ctr1 {
    +  text-align:right;
    +  border-left:#cccccc 1px solid;
    +}
    +
    +table.coverage thead td.ctr2 {
    +  text-align:right;
    +  padding-left:2px;
    +}
    +
    +table.coverage thead td.sortable {
    +  cursor:pointer;
    +  background-image:url(sort.gif);
    +  background-position:right center;
    +  background-repeat:no-repeat;
    +}
    +
    +table.coverage thead td.up {
    +  background-image:url(up.gif);
    +}
    +
    +table.coverage thead td.down {
    +  background-image:url(down.gif);
    +}
    +
    +table.coverage tbody td {
    +  white-space:nowrap;
    +  padding:2px 6px 2px 6px;
    +  border-bottom:#d6d3ce 1px solid;
    +}
    +
    +table.coverage tbody tr:hover {
    +  background: #f0f0d0 !important;
    +}
    +
    +table.coverage tbody td.bar {
    +  border-left:#e8e8e8 1px solid;
    +}
    +
    +table.coverage tbody td.ctr1 {
    +  text-align:right;
    +  padding-right:14px;
    +  border-left:#e8e8e8 1px solid;
    +}
    +
    +table.coverage tbody td.ctr2 {
    +  text-align:right;
    +  padding-right:14px;
    +  padding-left:2px;
    +}
    +
    +table.coverage tfoot td {
    +  white-space:nowrap;
    +  padding:2px 6px 2px 6px;
    +}
    +
    +table.coverage tfoot td.bar {
    +  border-left:#e8e8e8 1px solid;
    +}
    +
    +table.coverage tfoot td.ctr1 {
    +  text-align:right;
    +  padding-right:14px;
    +  border-left:#e8e8e8 1px solid;
    +}
    +
    +table.coverage tfoot td.ctr2 {
    +  text-align:right;
    +  padding-right:14px;
    +  padding-left:2px;
    +}
    +
    +.footer {
    +  margin-top:20px;
    +  border-top:#d6d3ce 1px solid;
    +  padding-top:2px;
    +  font-size:8pt;
    +  color:#a0a0a0;
    +}
    +
    +.footer a {
    +  color:#a0a0a0;
    +}
    +
    +.right {
    +  float:right;
    +}
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/report.gif b/metrics-log4j2-htmlReport/jacoco-resources/report.gif
    new file mode 100644
    index 0000000000000000000000000000000000000000..8547be50bf3e97e725920927b5aa4cdb031f4823
    GIT binary patch
    literal 363
    zcmZ?wbhEHb6krfwSZc{In}J~s1H&!`1_uX+xVSjMb&S>db~X8S)dhAn1$OlXwvB~0
    zO@%hC#Wq5_7&^+V`^qgRRa;E2HJ?*&DsqWoev|2fCetO&CQDmPR<;_iXfs~ZZnVC`
    za8s8-+pK*(^AAm4c5K#~(^ocST-lU)byMc8y)_R`^xu2&{oaco_g{R!|Ki8Pmp>lA
    z{_*VHkC*R%zWMa)!{^_hzyAL8?f2(zzrTL}{q@K1Z$Ey2|M}<VuRs5>0mYvzj9d)%
    z3_1)z0P+(9TgQR<1s*zF)+bahX*_u_??Pbv&V#KE^V2&`bhGjjR;*MxC8EFO_3_}<
    zH?w9WrJ7AX`tJM8r525X{~8+WorLsRL^?W{nR=L*odosT`KItOGtTI963}JgV_m??
    z%&>&9-=1G*^3>@wm-A|~FmK+nbvd`DhNhP0UUhXIS1vYAPL5-o?Ce}VXI&i`tO1G(
    BvdRDe
    
    literal 0
    HcmV?d00001
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/session.gif b/metrics-log4j2-htmlReport/jacoco-resources/session.gif
    new file mode 100644
    index 0000000000000000000000000000000000000000..0151bad8a001e5cc5cc7723a608185f746b7f8c1
    GIT binary patch
    literal 213
    zcmZ?wbhEHb6krfwXc1xPS$gU4xw~t2pG#?5#^Be>V3WrXI-S9<hrzA(|Nr^_@5k?-
    zZ~y=IhyVNSXZ04}pKqV%t9oe5k~tY+Ar=Pzi2#Z}Sr{1@<Qa4rfB<AC18dL&^}dwM
    zX_r*ys<8N;e6mS?i^dP8jVmAd@U^}&$uv>xc~m$hYN?d{@xrG~CzZCfhpBIRC}Q>I
    kiQ?_Ai=3VZEOFW9fBwaksdwMK(Err)E%VcVRYeAC06w^MK>z>%
    
    literal 0
    HcmV?d00001
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/sort.gif b/metrics-log4j2-htmlReport/jacoco-resources/sort.gif
    new file mode 100644
    index 0000000000000000000000000000000000000000..6757c2c32b57d768f3c12c4ae99a28bc32c9cbd7
    GIT binary patch
    literal 58
    zcmZ?wbhEHb<YC}qXkcX6uwldh|Nj+#vM_QnFf!;c00|xjP6h@h!JfpGjC*fB>i!bx
    N`t(%z_h<$NYXI&b5{m!;
    
    literal 0
    HcmV?d00001
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/sort.js b/metrics-log4j2-htmlReport/jacoco-resources/sort.js
    new file mode 100644
    index 0000000000..65f8d0e50d
    --- /dev/null
    +++ b/metrics-log4j2-htmlReport/jacoco-resources/sort.js
    @@ -0,0 +1,148 @@
    +/*******************************************************************************
    + * Copyright (c) 2009, 2023 Mountainminds GmbH & Co. KG and Contributors
    + * This program and the accompanying materials are made available under
    + * the terms of the Eclipse Public License 2.0 which is available at
    + * http://www.eclipse.org/legal/epl-2.0
    + *
    + * SPDX-License-Identifier: EPL-2.0
    + *
    + * Contributors:
    + *    Marc R. Hoffmann - initial API and implementation
    + *
    + *******************************************************************************/
    +
    +(function () {
    +
    +  /**
    +   * Sets the initial sorting derived from the hash.
    +   *
    +   * @param linkelementids
    +   *          list of element ids to search for links to add sort inidcator
    +   *          hash links
    +   */
    +  function initialSort(linkelementids) {
    +    window.linkelementids = linkelementids;
    +    var hash = window.location.hash;
    +    if (hash) {
    +      var m = hash.match(/up-./);
    +      if (m) {
    +        var header = window.document.getElementById(m[0].charAt(3));
    +        if (header) {
    +          sortColumn(header, true);
    +        }
    +        return;
    +      }
    +      var m = hash.match(/dn-./);
    +      if (m) {
    +        var header = window.document.getElementById(m[0].charAt(3));
    +        if (header) {
    +          sortColumn(header, false);
    +        }
    +        return
    +      }
    +    }
    +  }
    +
    +  /**
    +   * Sorts the columns with the given header dependening on the current sort state.
    +   */
    +  function toggleSort(header) {
    +    var sortup = header.className.indexOf('down ') == 0;
    +    sortColumn(header, sortup);
    +  }
    +
    +  /**
    +   * Sorts the columns with the given header in the given direction.
    +   */
    +  function sortColumn(header, sortup) {
    +    var table = header.parentNode.parentNode.parentNode;
    +    var body = table.tBodies[0];
    +    var colidx = getNodePosition(header);
    +
    +    resetSortedStyle(table);
    +
    +    var rows = body.rows;
    +    var sortedrows = [];
    +    for (var i = 0; i < rows.length; i++) {
    +      r = rows[i];
    +      sortedrows[parseInt(r.childNodes[colidx].id.slice(1))] = r;
    +    }
    +
    +    var hash;
    +
    +    if (sortup) {
    +      for (var i = sortedrows.length - 1; i >= 0; i--) {
    +        body.appendChild(sortedrows[i]);
    +      }
    +      header.className = 'up ' + header.className;
    +      hash = 'up-' + header.id;
    +    } else {
    +      for (var i = 0; i < sortedrows.length; i++) {
    +        body.appendChild(sortedrows[i]);
    +      }
    +      header.className = 'down ' + header.className;
    +      hash = 'dn-' + header.id;
    +    }
    +
    +    setHash(hash);
    +  }
    +
    +  /**
    +   * Adds the sort indicator as a hash to the document URL and all links.
    +   */
    +  function setHash(hash) {
    +    window.document.location.hash = hash;
    +    ids = window.linkelementids;
    +    for (var i = 0; i < ids.length; i++) {
    +        setHashOnAllLinks(document.getElementById(ids[i]), hash);
    +    }
    +  }
    +
    +  /**
    +   * Extend all links within the given tag with the given hash.
    +   */
    +  function setHashOnAllLinks(tag, hash) {
    +    links = tag.getElementsByTagName("a");
    +    for (var i = 0; i < links.length; i++) {
    +        var a = links[i];
    +        var href = a.href;
    +        var hashpos = href.indexOf("#");
    +        if (hashpos != -1) {
    +            href = href.substring(0, hashpos);
    +        }
    +        a.href = href + "#" + hash;
    +    }
    +  }
    +
    +  /**
    +   * Calculates the position of a element within its parent.
    +   */
    +  function getNodePosition(element) {
    +    var pos = -1;
    +    while (element) {
    +      element = element.previousSibling;
    +      pos++;
    +    }
    +    return pos;
    +  }
    +
    +  /**
    +   * Remove the sorting indicator style from all headers.
    +   */
    +  function resetSortedStyle(table) {
    +    for (var c = table.tHead.firstChild.firstChild; c; c = c.nextSibling) {
    +      if (c.className) {
    +        if (c.className.indexOf('down ') == 0) {
    +          c.className = c.className.slice(5);
    +        }
    +        if (c.className.indexOf('up ') == 0) {
    +          c.className = c.className.slice(3);
    +        }
    +      }
    +    }
    +  }
    +
    +  window['initialSort'] = initialSort;
    +  window['toggleSort'] = toggleSort;
    +
    +})();
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/source.gif b/metrics-log4j2-htmlReport/jacoco-resources/source.gif
    new file mode 100644
    index 0000000000000000000000000000000000000000..b226e41c5276581db33d71525298ef572cc5d7ce
    GIT binary patch
    literal 354
    zcmZ?wbhEHb6krfwxXQrr`Rnf=KmWY@^y|~t-#>r-`SJ62+pK*(^ACOa@_X{KW3$$r
    zUbOlAiXE5N?74dH#gDtszu$lH{mGl3&)@xg`{~!`Z@=#VMPB~6_u~7*S3h2T`1$R}
    z?`Q9Re)#(P)3@JWfBgRb^LKTLe^s%6bxA;7sb4jaQ5?`-<<ng5TVLWgvEHM%)~l!1
    zYi_IS^d`3r{dQ}59F})EE$?<()ZzT#ME{lvwpTV~T-lU)Yj4ffO_~4y|7XAeia%Kx
    z85k@XbU-p7KQXY?ADC0%p(B)eLgkXi62W-^(!DQ#v2a~Gz-z9%&!+3h!38t#X02Ds
    zad;WPFvUVOY)YY2k84HG1kp%gVW!3wVI5ap$%?8ZHc4GqO=+PiQzvV>Y72H(vk7Xs
    us!1$fvP8{QU92ZrK%7tARasP&f6JDw8m_8J3W|I7DyXXX9C3DJum%7=h^`F)
    
    literal 0
    HcmV?d00001
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/up.gif b/metrics-log4j2-htmlReport/jacoco-resources/up.gif
    new file mode 100644
    index 0000000000000000000000000000000000000000..58ed21660ec467736a4d2af17d91341f7cfb556c
    GIT binary patch
    literal 67
    zcmZ?wbhEHb<YC}qSjfcSX{EDa!-oH0p!k!8k&A(eL5G2Xk%5PSlYxOrWJ=;nroA^G
    Ub$^Kz-Nct)ygK&ScM%3_0PmU?SpWb4
    
    literal 0
    HcmV?d00001
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-sessions.html b/metrics-log4j2-htmlReport/jacoco-sessions.html
    new file mode 100644
    index 0000000000..cde9743aae
    --- /dev/null
    +++ b/metrics-log4j2-htmlReport/jacoco-sessions.html
    @@ -0,0 +1 @@
    +<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">SRONZ-a5a4e612</span></td><td>Feb. 27, 2024, 1:12:42 a.m.</td><td>Feb. 27, 2024, 1:12:46 a.m.</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><a href="com.codahale.metrics/Clock.html" class="el_class">com.codahale.metrics.Clock</a></td><td><code>c0f92dbf4454540f</code></td></tr><tr><td><a href="com.codahale.metrics/Clock$UserTimeClock.html" class="el_class">com.codahale.metrics.Clock.UserTimeClock</a></td><td><code>4fa424bfd9606921</code></td></tr><tr><td><a href="com.codahale.metrics/Clock$UserTimeClockHolder.html" class="el_class">com.codahale.metrics.Clock.UserTimeClockHolder</a></td><td><code>cbbd3dc091a26d63</code></td></tr><tr><td><a href="com.codahale.metrics/EWMA.html" class="el_class">com.codahale.metrics.EWMA</a></td><td><code>a4b0d1b3a2493ac8</code></td></tr><tr><td><a href="com.codahale.metrics/ExponentialMovingAverages.html" class="el_class">com.codahale.metrics.ExponentialMovingAverages</a></td><td><code>9a5bffa06476e87a</code></td></tr><tr><td><a href="com.codahale.metrics/Meter.html" class="el_class">com.codahale.metrics.Meter</a></td><td><code>0175f8fa04619429</code></td></tr><tr><td><a href="com.codahale.metrics/MetricRegistry.html" class="el_class">com.codahale.metrics.MetricRegistry</a></td><td><code>34f5727550368b5d</code></td></tr><tr><td><a href="com.codahale.metrics/MetricRegistry$MetricBuilder.html" class="el_class">com.codahale.metrics.MetricRegistry.MetricBuilder</a></td><td><code>7102e94fb3e3cb11</code></td></tr><tr><td><a href="com.codahale.metrics/MetricRegistry$MetricBuilder$1.html" class="el_class">com.codahale.metrics.MetricRegistry.MetricBuilder.1</a></td><td><code>b65f53171e2c1ccf</code></td></tr><tr><td><a href="com.codahale.metrics/MetricRegistry$MetricBuilder$2.html" class="el_class">com.codahale.metrics.MetricRegistry.MetricBuilder.2</a></td><td><code>736b1dd6400d647c</code></td></tr><tr><td><a href="com.codahale.metrics/MetricRegistry$MetricBuilder$3.html" class="el_class">com.codahale.metrics.MetricRegistry.MetricBuilder.3</a></td><td><code>fc805c84c947e6ea</code></td></tr><tr><td><a href="com.codahale.metrics/MetricRegistry$MetricBuilder$4.html" class="el_class">com.codahale.metrics.MetricRegistry.MetricBuilder.4</a></td><td><code>90355ca0864970b9</code></td></tr><tr><td><a href="com.codahale.metrics/MetricRegistry$MetricBuilder$5.html" class="el_class">com.codahale.metrics.MetricRegistry.MetricBuilder.5</a></td><td><code>3de6a4e8b649f0ee</code></td></tr><tr><td><a href="com.codahale.metrics/SharedMetricRegistries.html" class="el_class">com.codahale.metrics.SharedMetricRegistries</a></td><td><code>d4f157c77fa72db0</code></td></tr><tr><td><a href="com.codahale.metrics.log4j2/InstrumentedAppender.html" class="el_class">com.codahale.metrics.log4j2.InstrumentedAppender</a></td><td><code>bb772e963b26dc6f</code></td></tr><tr><td><span class="el_class">com.codahale.metrics.log4j2.InstrumentedAppender.1</span></td><td><code>f339f4995152acb1</code></td></tr><tr><td><a href="com.codahale.metrics.log4j2/InstrumentedAppenderConfigTest.html" class="el_class">com.codahale.metrics.log4j2.InstrumentedAppenderConfigTest</a></td><td><code>7069540d959584c7</code></td></tr><tr><td><a href="com.codahale.metrics.log4j2/InstrumentedAppenderTest.html" class="el_class">com.codahale.metrics.log4j2.InstrumentedAppenderTest</a></td><td><code>f50612c7813b4eb0</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.IdeaSuite</span></td><td><code>c9ad52e6c76e5132</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.IdeaSuite48</span></td><td><code>9955ceb163320f68</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.JUnit46ClassesRequestBuilder</span></td><td><code>2a301a97338fde1c</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.JUnit4IdeaTestRunner</span></td><td><code>e7382a92d3be9e03</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.JUnit4ReflectionUtil</span></td><td><code>aafd18bf6fabed4f</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.JUnit4TestListener</span></td><td><code>2ad5f091bf745759</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.JUnit4TestRunnerUtil</span></td><td><code>a8e98a2f3a521a28</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.JUnitTestTreeNodeManager</span></td><td><code>81500539dcb3895f</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.JUnitTestTreeNodeManager.1</span></td><td><code>d1714f703e71fcfc</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.JUnitTestTreeNodeManager.TestNodePresentation</span></td><td><code>cb1b8b2d4997b294</code></td></tr><tr><td><span class="el_class">com.intellij.rt.execution.application.AppMainV2</span></td><td><code>8f5addea8be676f6</code></td></tr><tr><td><span class="el_class">com.intellij.rt.execution.application.AppMainV2.1</span></td><td><code>4a5f8da5016dd0ef</code></td></tr><tr><td><span class="el_class">com.intellij.rt.execution.application.AppMainV2.Agent</span></td><td><code>3d35746f65afc57a</code></td></tr><tr><td><span class="el_class">com.intellij.rt.execution.junit.MapSerializerUtil</span></td><td><code>bbebf79d8bef80f5</code></td></tr><tr><td><span class="el_class">com.intellij.rt.execution.junit.MapSerializerUtil.1</span></td><td><code>129427471cc24822</code></td></tr><tr><td><span class="el_class">com.intellij.rt.execution.junit.RepeatCount</span></td><td><code>7c8bf2ef6e35a816</code></td></tr><tr><td><span class="el_class">com.intellij.rt.execution.junit.TestsRepeater</span></td><td><code>b64f92a81ed06715</code></td></tr><tr><td><span class="el_class">com.intellij.rt.junit.IdeaTestRunner.Repeater</span></td><td><code>19f36bd79e8f259b</code></td></tr><tr><td><span class="el_class">com.intellij.rt.junit.IdeaTestRunner.Repeater.1</span></td><td><code>b95614d9d28e8159</code></td></tr><tr><td><span class="el_class">com.intellij.rt.junit.JUnitStarter</span></td><td><code>d89f5e4b1eb35db4</code></td></tr><tr><td><span class="el_class">junit.runner.BaseTestRunner</span></td><td><code>2ff9f73ecc56231d</code></td></tr><tr><td><span class="el_class">junit.textui.ResultPrinter</span></td><td><code>5549a2a924c61105</code></td></tr><tr><td><span class="el_class">junit.textui.TestRunner</span></td><td><code>a8728b5dcbc4a845</code></td></tr><tr><td><span class="el_class">net.bytebuddy.ByteBuddy</span></td><td><code>d4e5f2084d659ff9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.ClassFileVersion</span></td><td><code>5a180fbf72d4efca</code></td></tr><tr><td><span class="el_class">net.bytebuddy.ClassFileVersion.VersionLocator.Resolved</span></td><td><code>9ac78bd064c76f8d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.ClassFileVersion.VersionLocator.Resolver</span></td><td><code>8e3a1b13b270b126</code></td></tr><tr><td><span class="el_class">net.bytebuddy.NamingStrategy.AbstractBase</span></td><td><code>77e9d686c976f6e6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.NamingStrategy.Suffixing</span></td><td><code>65bfa03c85847dc9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.NamingStrategy.Suffixing.BaseNameResolver.ForUnnamedType</span></td><td><code>1fb9c5c929a4a173</code></td></tr><tr><td><span class="el_class">net.bytebuddy.NamingStrategy.SuffixingRandom</span></td><td><code>cdbdedcf0cea0a02</code></td></tr><tr><td><span class="el_class">net.bytebuddy.TypeCache</span></td><td><code>aced8dc0367a5d96</code></td></tr><tr><td><span class="el_class">net.bytebuddy.TypeCache.LookupKey</span></td><td><code>b75da15a4577d948</code></td></tr><tr><td><span class="el_class">net.bytebuddy.TypeCache.SimpleKey</span></td><td><code>99731a44c3f39c30</code></td></tr><tr><td><span class="el_class">net.bytebuddy.TypeCache.Sort</span></td><td><code>3f135d4f310abf3c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.TypeCache.Sort.1</span></td><td><code>3be4336e35a8cbfd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.TypeCache.Sort.2</span></td><td><code>5a2bb9e71930a24a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.TypeCache.Sort.3</span></td><td><code>5792db85826ac4ba</code></td></tr><tr><td><span class="el_class">net.bytebuddy.TypeCache.StorageKey</span></td><td><code>da984e48de27d4a8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.TypeCache.WithInlineExpunction</span></td><td><code>6677b9b25e623b8e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent</span></td><td><code>85368e26d13e3c56</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AgentProvider.ForByteBuddyAgent</span></td><td><code>fe8cbe1473b95e48</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider</span></td><td><code>4826a0fe82451c35</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider.Accessor.ExternalAttachment</span></td><td><code>4b2f9e9caed71e3a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider.Accessor.Simple</span></td><td><code>bba5a2d727bc5490</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider.Accessor.Simple.WithExternalAttachment</span></td><td><code>be89f3c26d8c6829</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider.Compound</span></td><td><code>109a0f4e85a6a84d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider.ForEmulatedAttachment</span></td><td><code>805a79faa9572ddd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider.ForJ9Vm</span></td><td><code>f397c97b500a9f98</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider.ForModularizedVm</span></td><td><code>b5e43c36e86c3b16</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider.ForStandardToolsJarVm</span></td><td><code>652f99825b68dd53</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider.ForUserDefinedToolsJar</span></td><td><code>ad443dd056d4df39</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentTypeEvaluator.ForJava9CapableVm</span></td><td><code>6e4e1cbaf19c955d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentTypeEvaluator.InstallationAction</span></td><td><code>7a539ffcee11d415</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.ProcessProvider.ForCurrentVm</span></td><td><code>3f895cda6cbdc0a8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.ProcessProvider.ForCurrentVm.ForJava9CapableVm</span></td><td><code>fe8124e88e78e9e4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.Installer</span></td><td><code>9e98232f904ea6a2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice</span></td><td><code>b0fe0e71ff93f6a2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Delegator.ForRegularInvocation.Factory</span></td><td><code>e7dcdbb5632c4506</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.Inactive</span></td><td><code>a13dc542cf03f457</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.Inlining</span></td><td><code>1b83da6e9958efde</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.Inlining.Resolved</span></td><td><code>1e1b96480eaea567</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.Inlining.Resolved.ForMethodEnter</span></td><td><code>e929ebf550c55851</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.Inlining.Resolved.ForMethodEnter.WithRetainedEnterType</span></td><td><code>139fc9dd84ba1ad8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.Inlining.Resolved.ForMethodExit</span></td><td><code>c69284241c1b3445</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.Inlining.Resolved.ForMethodExit.WithoutExceptionHandler</span></td><td><code>5adae1b615780074</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.Disabled</span></td><td><code>ed10720f26a0d31e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForType</span></td><td><code>3b066a9d3f666f4c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue</span></td><td><code>21b7e337be103b41</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.1</span></td><td><code>f1ea8721b31006cf</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.2</span></td><td><code>bc34ad47414e0f07</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.3</span></td><td><code>d99f2964a4c438e0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.4</span></td><td><code>9b014a42d62ebb0d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.5</span></td><td><code>adf8695c364423b7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.6</span></td><td><code>f91d433bf6f0e8f4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.7</span></td><td><code>a58a3762973241d2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.8</span></td><td><code>dbadbaf38f927982</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.9</span></td><td><code>cfdb6f4b0a938de0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.OfNonDefault</span></td><td><code>a420d28f71701fd2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.Resolved.AbstractBase</span></td><td><code>af5b7d4001b00d6e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.SuppressionHandler.NoOp</span></td><td><code>f2f80b491afb88db</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.SuppressionHandler.Suppressing</span></td><td><code>598c1efafb391d42</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.ExceptionHandler.Default</span></td><td><code>6cd2b41098d8fd56</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.ExceptionHandler.Default.1</span></td><td><code>369fe84b86e7a731</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.ExceptionHandler.Default.2</span></td><td><code>12562a8df114f4c1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.ExceptionHandler.Default.3</span></td><td><code>c20d4b7a29ac2993</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.Factory.AdviceType</span></td><td><code>222344ae47fda22a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.Factory.Illegal</span></td><td><code>b824ec4854bde89c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForAllArguments</span></td><td><code>1473b7bf9fc4e1b5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForAllArguments.Factory</span></td><td><code>98148d6454b592af</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForArgument</span></td><td><code>bf5687f0da9f282c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForArgument.Unresolved</span></td><td><code>70d54b6bc8b1a165</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForArgument.Unresolved.Factory</span></td><td><code>c81d13dcb77ae44a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForEnterValue</span></td><td><code>5f66c9717dc9cd52</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForEnterValue.Factory</span></td><td><code>00d9225ad08c457a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForExitValue.Factory</span></td><td><code>4cceb48fab57271e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForField.Unresolved.Factory</span></td><td><code>0ea3c196b6e38c75</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForFieldHandle.Unresolved.ReaderFactory</span></td><td><code>34b038446b31ef68</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForFieldHandle.Unresolved.WriterFactory</span></td><td><code>0932f02483480c5e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForInstrumentedMethod</span></td><td><code>65354e871d8adbde</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForInstrumentedMethod.1</span></td><td><code>4a0705f218dbb9fc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForInstrumentedMethod.2</span></td><td><code>d19b1cccf33a5a8f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForInstrumentedMethod.3</span></td><td><code>8de7b4c791e41ff3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForInstrumentedMethod.4</span></td><td><code>7ef55ab4ec291ec2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForInstrumentedMethod.5</span></td><td><code>a42feaf4b03f011c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForInstrumentedType</span></td><td><code>c6ccb02973e68c83</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForLocalValue.Factory</span></td><td><code>0d73abcfe4f6cd84</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForOrigin.Factory</span></td><td><code>ba9fe45627be64ec</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForReturnValue</span></td><td><code>037de4c0de22ee60</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForReturnValue.Factory</span></td><td><code>8c33b59194419c40</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForSelfCallHandle.Factory</span></td><td><code>2e0b5be7f8d227d2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForStackManipulation</span></td><td><code>893f7d56b99ed2f9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForStackManipulation.Factory</span></td><td><code>ff46cb5a042d7392</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForStubValue</span></td><td><code>0d0dac7cedadacd4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForThisReference</span></td><td><code>4a18584d2e6f227a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForThisReference.Factory</span></td><td><code>4fd20920981119f6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForThrowable.Factory</span></td><td><code>66521af76037a434</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForUnusedValue.Factory</span></td><td><code>9f8c6b55fbfa959d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.PostProcessor.NoOp</span></td><td><code>1734734198eaa842</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.WithCustomMapping</span></td><td><code>4d9fd736a5d0e45e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.AsmVisitorWrapper.AbstractBase</span></td><td><code>3cd03b050731d22c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.AsmVisitorWrapper.Compound</span></td><td><code>7b1e520e5f4262e6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.AsmVisitorWrapper.ForDeclaredMethods</span></td><td><code>573191880a5a4e0d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.AsmVisitorWrapper.ForDeclaredMethods.DispatchingVisitor</span></td><td><code>ac51d486f8ec0e4b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.AsmVisitorWrapper.ForDeclaredMethods.Entry</span></td><td><code>28eb46b4467366d6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.AsmVisitorWrapper.NoOp</span></td><td><code>a613c160b15bbc65</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.MemberRemoval</span></td><td><code>005cb62907cc0df7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.MemberRemoval.MemberRemovingClassVisitor</span></td><td><code>fe382217ff7273dc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.ByteCodeElement.Token.TokenList</span></td><td><code>5956eb03e0839596</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.ModifierReviewable.AbstractBase</span></td><td><code>0b625f401d945e23</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.NamedElement.WithDescriptor</span></td><td><code>69f25e85d31086f5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.TypeVariableSource.AbstractBase</span></td><td><code>4471bc67a44c1ef1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationDescription</span></td><td><code>7e080fcc4ab41eb1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationDescription.AbstractBase</span></td><td><code>55a8b2f7b58a15aa</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationDescription.ForLoadedAnnotation</span></td><td><code>a2b247526c4d26ca</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationList.AbstractBase</span></td><td><code>8e489ae727355271</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationList.Empty</span></td><td><code>7f4960ffee633b85</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationList.Explicit</span></td><td><code>f438077a66a539b8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationList.ForLoadedAnnotations</span></td><td><code>443952df3e869f3e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue</span></td><td><code>e46e60f3e4357d8a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.AbstractBase</span></td><td><code>6b46c288929d794a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant</span></td><td><code>650f7b88da7502df</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType</span></td><td><code>8683233734d98d81</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.1</span></td><td><code>ecf694f5c718a013</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.2</span></td><td><code>113fe247f14fdcdd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.3</span></td><td><code>ad40ce4c8d647d57</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.4</span></td><td><code>649136274570c878</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.5</span></td><td><code>25519a3723562b18</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.6</span></td><td><code>d0a4ee1eb78e8925</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.7</span></td><td><code>5cc6d38c7688ce9e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.8</span></td><td><code>542fa217a5fe4c51</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.9</span></td><td><code>9adc51229ebb26c9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForDescriptionArray</span></td><td><code>198e8cb892ebb0c6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForEnumerationDescription</span></td><td><code>451401174e8ca82f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForEnumerationDescription.Loaded</span></td><td><code>fda0610025cc12ff</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForTypeDescription</span></td><td><code>256f9475d7baab5e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.Loaded.AbstractBase</span></td><td><code>1a834bbf25c86ab4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.State</span></td><td><code>db0e0a0878d7e335</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.enumeration.EnumerationDescription.AbstractBase</span></td><td><code>36efae2fe3237ba9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.enumeration.EnumerationDescription.ForLoadedEnumeration</span></td><td><code>5b47cbeca30adac0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldDescription</span></td><td><code>53da8eaebbfbddbb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldDescription.AbstractBase</span></td><td><code>a20f5231a76bb980</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldDescription.InDefinedShape.AbstractBase</span></td><td><code>7b3d946febaf5d33</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldDescription.Latent</span></td><td><code>b47200ad7e88dffb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldDescription.SignatureToken</span></td><td><code>3e1967b3504d4f43</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldDescription.Token</span></td><td><code>966f799bfb7c0668</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldList.AbstractBase</span></td><td><code>78739d279005d8a4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldList.Explicit</span></td><td><code>323b76a02a64f9a7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldList.ForLoadedFields</span></td><td><code>fc8cc870e5f42b89</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldList.ForTokens</span></td><td><code>ea98dba6ef4eb758</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription</span></td><td><code>4242f9f3ec05d9d8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.AbstractBase</span></td><td><code>41720d451cc94237</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.ForLoadedConstructor</span></td><td><code>c634ab9c8e587e89</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.ForLoadedMethod</span></td><td><code>483c8f6d97caf847</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.InDefinedShape.AbstractBase</span></td><td><code>b33d93bb8cbd26c6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.InDefinedShape.AbstractBase.ForLoadedExecutable</span></td><td><code>2c34e3cd1c4620d7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.Latent</span></td><td><code>eba047d0ce33d6c2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.Latent.TypeInitializer</span></td><td><code>c77dbea1c1a57995</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.SignatureToken</span></td><td><code>806effdacef53f94</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.Token</span></td><td><code>d7a148a88bb734b4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.TypeSubstituting</span></td><td><code>78d976a6f400ec70</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.TypeToken</span></td><td><code>ef258f0fca0278e0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodList.AbstractBase</span></td><td><code>b054427f9b6a48f1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodList.Explicit</span></td><td><code>b03ab4c21a93dfd0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodList.ForLoadedMethods</span></td><td><code>38bd1bf17eb05676</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodList.ForTokens</span></td><td><code>40aa960dc7616ac5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodList.TypeSubstituting</span></td><td><code>f1f510557a04392e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterDescription.AbstractBase</span></td><td><code>244fa52c57557e62</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterDescription.ForLoadedParameter</span></td><td><code>b764f219b6fb497f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterDescription.ForLoadedParameter.OfMethod</span></td><td><code>8bd70a245946537e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterDescription.InDefinedShape.AbstractBase</span></td><td><code>717f5d8d90c005f1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterDescription.Latent</span></td><td><code>eb41c7e5a8c26f4d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterDescription.Token</span></td><td><code>6f6ff151883ddc85</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterDescription.Token.TypeList</span></td><td><code>0a24417518716030</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterDescription.TypeSubstituting</span></td><td><code>fbb01b7a5d680315</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterList.AbstractBase</span></td><td><code>6fe6f7a3a2c191ea</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterList.Empty</span></td><td><code>8f4a45d2f54ed28b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterList.Explicit.ForTypes</span></td><td><code>75d84e0b4fcd99a9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterList.ForLoadedExecutable</span></td><td><code>1456c072c3be7105</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterList.ForLoadedExecutable.OfConstructor</span></td><td><code>6d7eaa8911075319</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterList.ForLoadedExecutable.OfMethod</span></td><td><code>f0835708e2d15fb4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterList.ForTokens</span></td><td><code>b77d0ee711552f0c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterList.TypeSubstituting</span></td><td><code>293f1f350b97c439</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.modifier.FieldManifestation</span></td><td><code>61ed9ad5f460d425</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.modifier.ModifierContributor.Resolver</span></td><td><code>4c37457cc5fe415c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.modifier.Ownership</span></td><td><code>03978521bbedeaac</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.modifier.SynchronizationState</span></td><td><code>1ee1e76d573ad75b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.modifier.SyntheticState</span></td><td><code>0ea0b3d14a159257</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.modifier.TypeManifestation</span></td><td><code>823497b74af56cf0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.modifier.Visibility</span></td><td><code>eddec8671a9488f2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.modifier.Visibility.1</span></td><td><code>d7e383ada6123e01</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.PackageDescription.AbstractBase</span></td><td><code>fbc5f3918eb9463b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.PackageDescription.ForLoadedPackage</span></td><td><code>647cf445f49b7cf5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.PackageDescription.Simple</span></td><td><code>0cb49b8e5cdceb1d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.RecordComponentList.AbstractBase</span></td><td><code>fa2d664156de0c87</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.RecordComponentList.Empty</span></td><td><code>facb71157fa46ed2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.RecordComponentList.ForTokens</span></td><td><code>b72447d1fcbe18bd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDefinition.Sort</span></td><td><code>e252ac8a021f4082</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDefinition.SuperClassIterator</span></td><td><code>dcc41092c6176f54</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription</span></td><td><code>36fd0fa20ad52135</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.AbstractBase</span></td><td><code>66d4e449e5bf075c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.AbstractBase.OfSimpleType</span></td><td><code>9a7c3b38170308c1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.ArrayProjection</span></td><td><code>200eb5a8bdb24241</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.ForLoadedType</span></td><td><code>f3adb1846cd261fe</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic</span></td><td><code>5601518ac3dba89e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AbstractBase</span></td><td><code>3e49593313e4528f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator</span></td><td><code>b0fc4c110c19aecd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.Chained</span></td><td><code>ce5936070db33961</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedExecutableExceptionType</span></td><td><code>83ae335cad65ee98</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedExecutableParameterType</span></td><td><code>3db4d13b1a55ffe8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedInterface</span></td><td><code>25bcc5acc7d6039e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedMethodReturnType</span></td><td><code>68fd86a349490e9d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedSuperClass</span></td><td><code>64cbe4cf03033a19</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedTypeVariable</span></td><td><code>607805b81a44c1a4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.Simple</span></td><td><code>58348630fb7f5660</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.ForComponentType</span></td><td><code>0f95408415168381</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.ForTypeArgument</span></td><td><code>c4c5a6817a5b11ba</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.ForTypeVariableBoundType</span></td><td><code>260242c433f7db80</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.ForTypeVariableBoundType.OfFormalTypeVariable</span></td><td><code>14bd8a3cecc2168a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.ForWildcardUpperBoundType</span></td><td><code>3ebd458a5a263baf</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.NoOp</span></td><td><code>7d262d1efdc1a658</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection</span></td><td><code>0ee749354388952f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.ForLoadedReturnType</span></td><td><code>09e831a0a48649e7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.ForLoadedSuperClass</span></td><td><code>4097c89a98a6a8c7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.OfMethodParameter</span></td><td><code>cc35cbb5a12db70b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithEagerNavigation</span></td><td><code>ba4ed13a2c16fa27</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithEagerNavigation.OfAnnotatedElement</span></td><td><code>5bccd0ca3c6cf39e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithLazyNavigation</span></td><td><code>5734f0b82230f143</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithLazyNavigation.OfAnnotatedElement</span></td><td><code>2203d6c2cc2e43d7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithResolvedErasure</span></td><td><code>5656afa8f8c7fa04</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProxy</span></td><td><code>837c46ba31dd9215</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfGenericArray</span></td><td><code>d13b176c2d3dc84b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfGenericArray.ForLoadedType</span></td><td><code>a6c044aee537c5ef</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfGenericArray.Latent</span></td><td><code>5d23c8971e97c94c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfNonGenericType</span></td><td><code>ffefd02f303394e6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfNonGenericType.ForErasure</span></td><td><code>d952d613f637b449</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfNonGenericType.ForLoadedType</span></td><td><code>f00423b3668c6a6d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfNonGenericType.Latent</span></td><td><code>7f6b65eac82ccacd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType</span></td><td><code>91d595189a038777</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType.ForGenerifiedErasure</span></td><td><code>4fa1e7c89c00c97f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType.ForLoadedType</span></td><td><code>68b564e96aa7b7f7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType.ForLoadedType.ParameterArgumentTypeList</span></td><td><code>186a3e289af3008c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType.Latent</span></td><td><code>0563e8e02d018d81</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfTypeVariable</span></td><td><code>c522788ac45e74aa</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfTypeVariable.ForLoadedType</span></td><td><code>e9a761f5db6d7559</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfTypeVariable.ForLoadedType.TypeVariableBoundList</span></td><td><code>732848281d848591</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfTypeVariable.Symbolic</span></td><td><code>7fc3f163d6308332</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfTypeVariable.WithAnnotationOverlay</span></td><td><code>ff4f9bd6f4dd76ad</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfWildcardType</span></td><td><code>eb4830fed7178b97</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfWildcardType.ForLoadedType</span></td><td><code>db7fcf43960281f7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfWildcardType.ForLoadedType.WildcardLowerBoundTypeList</span></td><td><code>24942c2b7fad7535</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfWildcardType.ForLoadedType.WildcardUpperBoundTypeList</span></td><td><code>5882d1d8d1e8b70d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfWildcardType.Latent</span></td><td><code>cbb90f0dea0557f2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.ForRawType</span></td><td><code>2730ba635b3e4dae</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.ForSignatureVisitor</span></td><td><code>7c9ee6e3c386d02f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.ForSignatureVisitor.OfTypeArgument</span></td><td><code>d8e6035b10ed1222</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Reducing</span></td><td><code>6646869e65b4683e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Reifying</span></td><td><code>f695f950ef96d452</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Reifying.1</span></td><td><code>3887b35198c64c3f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Reifying.2</span></td><td><code>dda2c47b308dfe77</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Substitutor</span></td><td><code>65dc96c548e3e991</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Substitutor.ForAttachment</span></td><td><code>da6e736f271084bb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Substitutor.ForDetachment</span></td><td><code>84581ab83cefe0ba</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Substitutor.WithoutTypeSubstitution</span></td><td><code>17ef049604f02334</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Validator</span></td><td><code>13ff0a7ec71a9596</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Validator.1</span></td><td><code>3122adbd7aaaeca9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Validator.2</span></td><td><code>36d36c5061f2243e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Validator.3</span></td><td><code>ca3595549a574d77</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Validator.ForTypeAnnotations</span></td><td><code>f22bf42b89621378</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.LazyProxy</span></td><td><code>7201bc42fc3a279c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList</span></td><td><code>da60a7cfb717d0a8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.AbstractBase</span></td><td><code>4700315364477234</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Empty</span></td><td><code>59d00ad7b53c811a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Explicit</span></td><td><code>81495dfc3a359dfe</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.ForLoadedTypes</span></td><td><code>4356a7471aec6f20</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.AbstractBase</span></td><td><code>5376e1d2298a6512</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.Empty</span></td><td><code>df9431d33e66dbb4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.Explicit</span></td><td><code>1ab8c93e54ee2ac6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.ForDetachedTypes</span></td><td><code>1b6544725fdb45a6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.ForDetachedTypes.OfTypeVariables</span></td><td><code>05b85732c40f12b7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.ForDetachedTypes.OfTypeVariables.AttachedTypeVariable</span></td><td><code>8133514c5d90955c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.ForDetachedTypes.WithResolvedErasure</span></td><td><code>3ae7efc80de7c3db</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.ForLoadedTypes</span></td><td><code>c603bfa8790b860c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.ForLoadedTypes.OfTypeVariables</span></td><td><code>d713fc161a8b3c83</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.OfConstructorExceptionTypes</span></td><td><code>41a985dd07ed867c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.OfLoadedInterfaceTypes</span></td><td><code>99d4f3faf0ed1337</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.OfLoadedInterfaceTypes.TypeProjection</span></td><td><code>7f6f3c7654719119</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.OfMethodExceptionTypes</span></td><td><code>74966b175ac75ab9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.OfMethodExceptionTypes.TypeProjection</span></td><td><code>2d651d381fd3d0a8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeVariableToken</span></td><td><code>0b904605bce2d673</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.ClassFileLocator.ForClassLoader</span></td><td><code>bc2296cfb91301b0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.ClassFileLocator.ForClassLoader.BootLoaderProxyCreationAction</span></td><td><code>bef49ddd37f152e7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.ClassFileLocator.Resolution.Explicit</span></td><td><code>a44d2b3d4cf22e0e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.ClassFileLocator.Simple</span></td><td><code>5ec3e1fe094d9677</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase</span></td><td><code>8b697109899c9f1c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter</span></td><td><code>c239cebb09dc521b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.FieldDefinitionAdapter</span></td><td><code>95f089373e121f7c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodDefinitionAdapter</span></td><td><code>2e966526edcb873d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodDefinitionAdapter.AnnotationAdapter</span></td><td><code>8158ace8dc815026</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodDefinitionAdapter.SimpleParameterAnnotationAdapter</span></td><td><code>47371bc63761204d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodMatchAdapter</span></td><td><code>3d734adb6ddc1b18</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodMatchAdapter.AnnotationAdapter</span></td><td><code>870c4a748d272702</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.OptionalMethodMatchAdapter</span></td><td><code>8ae5d509775196fa</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Delegator</span></td><td><code>3f1fabfaec45a27c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.UsingTypeWriter</span></td><td><code>3ca14d92cfc3bc3b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.FieldDefinition.Optional.AbstractBase</span></td><td><code>7ff3ef3d7a52aeda</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.FieldDefinition.Optional.Valuable.AbstractBase</span></td><td><code>6f4cbe7b3cf65d41</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.FieldDefinition.Optional.Valuable.AbstractBase.Adapter</span></td><td><code>f6c60e62d9344f54</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.AbstractBase</span></td><td><code>3bf64c5f90a05b38</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.AbstractBase.Adapter</span></td><td><code>e1416bad6f01b268</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ExceptionDefinition.AbstractBase</span></td><td><code>6a660545adbbedde</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ImplementationDefinition.AbstractBase</span></td><td><code>8233c005598191ed</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.AbstractBase</span></td><td><code>af2910a38e7ac02e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Initial.AbstractBase</span></td><td><code>d24c948296af6d68</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Simple.AbstractBase</span></td><td><code>9b31315749acebaf</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Simple.Annotatable.AbstractBase</span></td><td><code>6c42f489e12f3841</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Simple.Annotatable.AbstractBase.Adapter</span></td><td><code>18ee5a7716255e41</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ReceiverTypeDefinition.AbstractBase</span></td><td><code>2531fe5794acf41f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.TypeVariableDefinition.AbstractBase</span></td><td><code>433828b210243d94</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Default</span></td><td><code>0f62ddd57860b9e1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Default.Loaded</span></td><td><code>973a422e6432796e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Default.Unloaded</span></td><td><code>cd577d53be4c22d5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.TargetType</span></td><td><code>26c139b5f2f58862</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.Transformer.Compound</span></td><td><code>a5a52522b43091ef</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.Transformer.ForMethod</span></td><td><code>22ab387d59f6c970</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.Transformer.ForMethod.MethodModifierTransformer</span></td><td><code>829c18ff395159ba</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.Transformer.ForMethod.TransformedMethod</span></td><td><code>083bfd5734c4504d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.Transformer.ForMethod.TransformedMethod.AttachmentVisitor</span></td><td><code>43014c50e1310fbf</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.Transformer.ForMethod.TransformedMethod.TransformedParameter</span></td><td><code>84642c4a6f0d1bdc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.Transformer.ForMethod.TransformedMethod.TransformedParameterList</span></td><td><code>54d561afbee57f99</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.Transformer.NoOp</span></td><td><code>49cd89a2b3b975a3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.TypeResolutionStrategy.Passive</span></td><td><code>d5784ee7fb36ce53</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.VisibilityBridgeStrategy.Default</span></td><td><code>ae8d9f7fd85c6aad</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.VisibilityBridgeStrategy.Default.1</span></td><td><code>63c0d42260c7599e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.VisibilityBridgeStrategy.Default.2</span></td><td><code>a8389e9d32c4ecd7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.VisibilityBridgeStrategy.Default.3</span></td><td><code>30f7afc5a8be245c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ByteArrayClassLoader</span></td><td><code>d00c8733dea299dd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ByteArrayClassLoader.ClassDefinitionAction</span></td><td><code>25513de2d7f3a1cc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ByteArrayClassLoader.PackageLookupStrategy.CreationAction</span></td><td><code>5ab9077977a569a3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ByteArrayClassLoader.PackageLookupStrategy.ForJava9CapableVm</span></td><td><code>f72740caac2e4fba</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ByteArrayClassLoader.PersistenceHandler</span></td><td><code>6d61f61ae555258a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ByteArrayClassLoader.PersistenceHandler.1</span></td><td><code>680488d6e62d40d1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ByteArrayClassLoader.PersistenceHandler.2</span></td><td><code>6bf6915f86de0792</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ByteArrayClassLoader.SynchronizationStrategy.CreationAction</span></td><td><code>49781f9101d11acc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ByteArrayClassLoader.SynchronizationStrategy.ForJava8CapableVm</span></td><td><code>ccca5f228cf2a595</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassFilePostProcessor.NoOp</span></td><td><code>3c8088887326744a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassInjector.AbstractBase</span></td><td><code>331215a38873f162</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassInjector.UsingReflection</span></td><td><code>9b4c6d016e86d89d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassInjector.UsingReflection.Dispatcher.CreationAction</span></td><td><code>e95efd9bc7c2fbec</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassInjector.UsingReflection.Dispatcher.UsingUnsafeInjection</span></td><td><code>ee369f8a9915cac0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassInjector.UsingUnsafe</span></td><td><code>6f205111f44e745f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassInjector.UsingUnsafe.Dispatcher.CreationAction</span></td><td><code>acadd9b7008a78d6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassInjector.UsingUnsafe.Dispatcher.Enabled</span></td><td><code>a365360113d70680</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassLoadingStrategy</span></td><td><code>17fb081ccc92f99c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassLoadingStrategy.Default</span></td><td><code>7390ec8634515594</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassLoadingStrategy.Default.InjectionDispatcher</span></td><td><code>759cb7a298fc98b7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassLoadingStrategy.Default.WrappingDispatcher</span></td><td><code>88c49bdd78533ba6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassLoadingStrategy.ForUnsafeInjection</span></td><td><code>fae0995eb7740944</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.InjectionClassLoader</span></td><td><code>cbd809288c0dad36</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.MultipleParentClassLoader.Builder</span></td><td><code>c6fb9f2d63f216f9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.PackageDefinitionStrategy.Definition.Trivial</span></td><td><code>b136ce1c9387d14f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.PackageDefinitionStrategy.Definition.Undefined</span></td><td><code>2f1d95f3613d9f49</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.PackageDefinitionStrategy.NoOp</span></td><td><code>3d34f5f46e1c0610</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.PackageDefinitionStrategy.Trivial</span></td><td><code>848dce81f4e8d105</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.ClassWriterStrategy.Default</span></td><td><code>f0774d4bbe85a809</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.ClassWriterStrategy.Default.1</span></td><td><code>09a3c2cfe88a5ae4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.ClassWriterStrategy.Default.2</span></td><td><code>76afb59bd5abdd5f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.ClassWriterStrategy.FrameComputingClassWriter</span></td><td><code>52e278e8d81b4dc4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.FieldLocator.AbstractBase</span></td><td><code>54f490d54da29c16</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.FieldLocator.ForClassHierarchy</span></td><td><code>166417044cd009a4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.FieldLocator.ForClassHierarchy.Factory</span></td><td><code>f656bc98a970fd47</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.FieldLocator.Resolution.Illegal</span></td><td><code>a9972cd13cf8462c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.FieldLocator.Resolution.Simple</span></td><td><code>de8883fdeb865c93</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.FieldRegistry.Default</span></td><td><code>cc5265630d0906f2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.FieldRegistry.Default.Compiled</span></td><td><code>00933225bc77b175</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.FieldRegistry.Default.Compiled.Entry</span></td><td><code>0ec1361a69a955fd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.FieldRegistry.Default.Entry</span></td><td><code>a7413622fd851aa9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.InstrumentedType.Default</span></td><td><code>83177f7ca587cf30</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.InstrumentedType.Factory.Default</span></td><td><code>cd900ae01efd903f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.InstrumentedType.Factory.Default.1</span></td><td><code>a7ce85bb2f37ff77</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.InstrumentedType.Factory.Default.2</span></td><td><code>ad157a47dace4f55</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler</span></td><td><code>fc88be698cc4a50f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.AbstractBase</span></td><td><code>ad55505e167100d9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default</span></td><td><code>af94c7ab11c1fcdd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Harmonizer.ForJavaMethod</span></td><td><code>7031164d2b791e9e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Harmonizer.ForJavaMethod.Token</span></td><td><code>7182cc44c6651e89</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key</span></td><td><code>a65d37875a395ddb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Detached</span></td><td><code>3f02da9703ce5c2d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Harmonized</span></td><td><code>388d8cbf8e63aa90</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store</span></td><td><code>1a1546093db6edc8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Entry.Initial</span></td><td><code>ea7f0be36536a4bb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Entry.Resolved</span></td><td><code>ba93041ed575e0c7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Entry.Resolved.Node</span></td><td><code>1f19152a07e27690</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Graph</span></td><td><code>dd183a5630da8a82</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Merger.Directional</span></td><td><code>431cb1fc240f1328</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.ForDeclaredMethods</span></td><td><code>80835a5a4610b1d3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Empty</span></td><td><code>de57d507ae61b464</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Linked.Delegation</span></td><td><code>7341085250d5f338</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Node.Simple</span></td><td><code>f9767f80e7124acc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Node.Sort</span></td><td><code>8e20af4bf9dad8a0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Node.Unresolved</span></td><td><code>c42332646fb3e771</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.NodeList</span></td><td><code>15622cc8eb6ac006</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Simple</span></td><td><code>3ab25bf2fa755adb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodRegistry.Default</span></td><td><code>a688cfda627119db</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Compiled</span></td><td><code>dcd52aed23ae0b55</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Compiled.Entry</span></td><td><code>44710ee8541c44cf</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Entry</span></td><td><code>b1cbe9bdfc76e994</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Prepared</span></td><td><code>9bba4ee547c8082c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Prepared.Entry</span></td><td><code>53689d93cf82f768</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodRegistry.Handler.ForImplementation</span></td><td><code>ea77701fcbc47e2c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodRegistry.Handler.ForImplementation.Compiled</span></td><td><code>7b000ab44a4af2cc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.RecordComponentRegistry.Default</span></td><td><code>eec49897d441dcbe</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.RecordComponentRegistry.Default.Compiled</span></td><td><code>1d64a300c478cbd4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeInitializer.Drain.Default</span></td><td><code>a3bc2736d5ad95f5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeInitializer.None</span></td><td><code>d062b02ed3f4d342</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeInitializer.Simple</span></td><td><code>3429322f4d42e2d4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeValidation</span></td><td><code>b9ab70dc0d5e3c60</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default</span></td><td><code>c13cf997e386f3cc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ClassDumpAction.Dispatcher.Disabled</span></td><td><code>d4f0d2e7fbcab045</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ForCreation</span></td><td><code>fc9ad618be46b3c0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ForInlining</span></td><td><code>299c2478af802227</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ForInlining.ContextRegistry</span></td><td><code>dfee6deed9a49e33</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ForInlining.WithFullProcessing</span></td><td><code>bf4cd0530bebc828</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ForInlining.WithFullProcessing.InitializationHandler.Creating</span></td><td><code>b01ca83867dc0a50</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ForInlining.WithFullProcessing.OpenedClassRemapper</span></td><td><code>9e0d8af34c811602</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ForInlining.WithFullProcessing.RedefinitionClassVisitor</span></td><td><code>f41a382ab3215f3e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.SignatureKey</span></td><td><code>d20a5d7220afbb42</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.UnresolvedType</span></td><td><code>3f5380fd3549f07e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ValidatingClassVisitor</span></td><td><code>0449b85d73902e5f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ValidatingClassVisitor.Constraint.Compound</span></td><td><code>522fa4e49e512828</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ValidatingClassVisitor.Constraint.ForClass</span></td><td><code>73e7f3e477121987</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ValidatingClassVisitor.Constraint.ForClassFileVersion</span></td><td><code>9e87393ba441dbdc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ValidatingClassVisitor.ValidatingFieldVisitor</span></td><td><code>32779ab29633e9ef</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ValidatingClassVisitor.ValidatingMethodVisitor</span></td><td><code>a412717a1b97aba3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.FieldPool.Record.ForExplicitField</span></td><td><code>a03e0587988aae1f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.AccessBridgeWrapper</span></td><td><code>9527fd76169900c9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.ForDefinedMethod</span></td><td><code>e3fde8a86929682d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.ForDefinedMethod.WithBody</span></td><td><code>963047d43410ba83</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.ForNonImplementedMethod</span></td><td><code>28a00d78fb553a8c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.Sort</span></td><td><code>928d954d831a88bc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.inline.AbstractInliningDynamicTypeBuilder</span></td><td><code>3dcbe96c7737ffda</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.inline.InliningImplementationMatcher</span></td><td><code>385ec334716921a9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.inline.MethodRebaseResolver.Disabled</span></td><td><code>687ef4457dff2d12</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.inline.RedefinitionDynamicTypeBuilder</span></td><td><code>cc7957febfc5cb21</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default</span></td><td><code>0d114e09a2faac83</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.1</span></td><td><code>16fc5c99e02d7f9f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.2</span></td><td><code>dd199479878d5739</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.3</span></td><td><code>792ea5ce51475037</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.4</span></td><td><code>98fceb895a262b45</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.5</span></td><td><code>f0898605f9020c16</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.SubclassDynamicTypeBuilder</span></td><td><code>15df30285a830f7f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.SubclassDynamicTypeBuilder.InstrumentableMatcher</span></td><td><code>c2850d79fc87446b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget</span></td><td><code>17f509a8b52b39f3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget.Factory</span></td><td><code>f6c0a700d93e9d10</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget.OriginTypeResolver</span></td><td><code>282c73cc811d5b71</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget.OriginTypeResolver.1</span></td><td><code>2eb773d398b87160</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget.OriginTypeResolver.2</span></td><td><code>903a99da03746eb8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.FieldAccessor</span></td><td><code>c717fff4ac23e0ca</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.FieldAccessor.FieldLocation.Relative</span></td><td><code>b3e919957424f848</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.FieldAccessor.FieldLocation.Relative.Prepared</span></td><td><code>aa68ebf60b4f0bef</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.FieldAccessor.FieldNameExtractor.ForBeanProperty</span></td><td><code>b178a2653a5bafe9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.FieldAccessor.FieldNameExtractor.ForBeanProperty.1</span></td><td><code>e8b3de54c6138911</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.FieldAccessor.FieldNameExtractor.ForBeanProperty.2</span></td><td><code>7de6825165503ed1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.FieldAccessor.ForImplicitProperty</span></td><td><code>2077b83bedb8edde</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.FieldAccessor.ForImplicitProperty.Appender</span></td><td><code>b07cb6f14ea187be</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Default</span></td><td><code>8e12655fc557738e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Default.AbstractPropertyAccessorMethod</span></td><td><code>f23dc6369a1530e9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Default.AccessorMethod</span></td><td><code>9be66f5be8d9fa45</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Default.AccessorMethodDelegation</span></td><td><code>542747c99b66ec54</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Default.CacheValueField</span></td><td><code>31a151ad62bab895</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Default.DelegationRecord</span></td><td><code>70526320a1ad9cc3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Default.Factory</span></td><td><code>d24c34bb404ca859</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Default.FieldCacheEntry</span></td><td><code>8e7d6b7ed6743234</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Disabled</span></td><td><code>53c73dd8eaae49ac</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Disabled.Factory</span></td><td><code>adbbab47d629267a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.ExtractableView.AbstractBase</span></td><td><code>959623d5e0291105</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.FrameGeneration</span></td><td><code>a627c6d2ae1b5444</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.FrameGeneration.1</span></td><td><code>aaa6feaf64d85e8c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.FrameGeneration.2</span></td><td><code>a780e343d57d9071</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.FrameGeneration.3</span></td><td><code>2c34a94c8147f015</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.SpecialMethodInvocation.AbstractBase</span></td><td><code>a38cf2d5897906e6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.SpecialMethodInvocation.Illegal</span></td><td><code>0c59caca158bef52</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.SpecialMethodInvocation.Simple</span></td><td><code>1d406914f1f50463</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Target.AbstractBase</span></td><td><code>f7115dc2601ca003</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Target.AbstractBase.DefaultMethodInvocation</span></td><td><code>d1fa9bdfb38c1038</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Target.AbstractBase.DefaultMethodInvocation.1</span></td><td><code>5721353bb15366ec</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Target.AbstractBase.DefaultMethodInvocation.2</span></td><td><code>a3a810091d4e9086</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.LoadedTypeInitializer.NoOp</span></td><td><code>1af8ca0d9b7adbe8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodAccessorFactory.AccessType</span></td><td><code>a8b1b417256441f1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall</span></td><td><code>ae4dca29f42e39d5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.Appender</span></td><td><code>36c14b929a5d9485</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.ArgumentLoader.ForMethodParameter</span></td><td><code>f435ec4bd832341c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.ArgumentLoader.ForMethodParameter.Factory</span></td><td><code>14d10834f68773ca</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.MethodInvoker.ForContextualInvocation</span></td><td><code>67d21233b61c5c16</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.MethodInvoker.ForContextualInvocation.Factory</span></td><td><code>473b92f68bfbccba</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.MethodInvoker.ForVirtualInvocation.WithImplicitType</span></td><td><code>a39c338c28e91204</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.MethodLocator.ForExplicitMethod</span></td><td><code>98c72c41253ed08a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TargetHandler.ForMethodCall</span></td><td><code>0caad707b30ae193</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TargetHandler.ForMethodCall.Factory</span></td><td><code>c1832cb5d54736e4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TargetHandler.ForMethodCall.Resolved</span></td><td><code>7bf0e6eeede8ac9d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TargetHandler.ForMethodParameter</span></td><td><code>7f338183a38839e1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TargetHandler.ForMethodParameter.Resolved</span></td><td><code>6392db92c53c1bb9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TargetHandler.ForSelfOrStaticInvocation</span></td><td><code>d1b18e3b58b886f7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TargetHandler.ForSelfOrStaticInvocation.Factory</span></td><td><code>ce3c235283ac0dd6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TargetHandler.ForSelfOrStaticInvocation.Resolved</span></td><td><code>1c1abf86b318738e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TerminationHandler.Simple</span></td><td><code>6690aed6e7a18218</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TerminationHandler.Simple.1</span></td><td><code>295d1288fc335ed1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TerminationHandler.Simple.2</span></td><td><code>9e9230bbbb470354</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TerminationHandler.Simple.3</span></td><td><code>f579959891e14d29</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.WithoutSpecifiedTarget</span></td><td><code>d0b373c9e0216c67</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodDelegation</span></td><td><code>c1415fee7b21870c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodDelegation.Appender</span></td><td><code>f1ea47b04d738fac</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodDelegation.ImplementationDelegate.Compiled.ForStaticCall</span></td><td><code>2afafc9e131f3a8c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodDelegation.ImplementationDelegate.ForStaticMethod</span></td><td><code>5b03f5bbc3a0bfa2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodDelegation.WithCustomProperties</span></td><td><code>15991377debf2c67</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.SuperMethodCall</span></td><td><code>48a9709638c71f00</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.SuperMethodCall.Appender</span></td><td><code>1278488d60ed8e86</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.SuperMethodCall.Appender.TerminationHandler</span></td><td><code>35d2e0ef6d7f630d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.SuperMethodCall.Appender.TerminationHandler.1</span></td><td><code>05664af3a3b6738b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.SuperMethodCall.Appender.TerminationHandler.2</span></td><td><code>be670f96c6d93831</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationAppender.1</span></td><td><code>09e39802151aefbf</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationAppender.Default</span></td><td><code>7787cf7f483d6685</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationAppender.ForTypeAnnotations</span></td><td><code>040d5aab72de4582</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationAppender.Target.OnField</span></td><td><code>52ad3ce83f52621f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationAppender.Target.OnMethod</span></td><td><code>b2534f024a4880dd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationAppender.Target.OnMethodParameter</span></td><td><code>c9f39d80b694c092</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationAppender.Target.OnType</span></td><td><code>db8f4f1dbbcf3c3e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationRetention</span></td><td><code>6dca59a58d56874f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationValueFilter.Default</span></td><td><code>190882f8828de18a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationValueFilter.Default.1</span></td><td><code>593737e47cc84848</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationValueFilter.Default.2</span></td><td><code>a61861baa0bc96ee</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.FieldAttributeAppender.ForInstrumentedField</span></td><td><code>ca19f51ae14fb7b4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.MethodAttributeAppender.Compound</span></td><td><code>87d24d92007e506e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.MethodAttributeAppender.Factory.Compound</span></td><td><code>85113e9ca3ae38c3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.MethodAttributeAppender.ForInstrumentedMethod</span></td><td><code>4e40a53e08d4cbbb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.MethodAttributeAppender.ForInstrumentedMethod.1</span></td><td><code>a3b87b1a75d290fd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.MethodAttributeAppender.ForInstrumentedMethod.2</span></td><td><code>10e734a991eea3bf</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.MethodAttributeAppender.NoOp</span></td><td><code>aa6841038c96aed0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.TypeAttributeAppender.ForInstrumentedType</span></td><td><code>537a1dac83c99ae9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.TypeAttributeAppender.ForInstrumentedType.Differentiating</span></td><td><code>542ad65dee4078dd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.auxiliary.AuxiliaryType</span></td><td><code>577555a7861b5701</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.auxiliary.AuxiliaryType.NamingStrategy.SuffixingRandom</span></td><td><code>9ff4d19573d987f3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.auxiliary.MethodCallProxy</span></td><td><code>e4ad67673bba91b3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.auxiliary.MethodCallProxy.AssignableSignatureCall</span></td><td><code>e32307e618f933aa</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.auxiliary.MethodCallProxy.ConstructorCall</span></td><td><code>b40129a97ef170e6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.auxiliary.MethodCallProxy.ConstructorCall.Appender</span></td><td><code>6a4a35552c21bf78</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.auxiliary.MethodCallProxy.MethodCall</span></td><td><code>d2f0f120376a3b4f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.auxiliary.MethodCallProxy.MethodCall.Appender</span></td><td><code>df4a3b2e219da333</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.auxiliary.MethodCallProxy.PrecomputedMethodGraph</span></td><td><code>7fb29fbd9d22e04c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.ArgumentTypeResolver</span></td><td><code>74973272be85ce17</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.ArgumentTypeResolver.ParameterIndexToken</span></td><td><code>a8052b758f0a0361</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.DeclaringTypeResolver</span></td><td><code>d1000b5d5bf7bd79</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.1</span></td><td><code>54de841f73ee4eae</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.AmbiguityResolver</span></td><td><code>7d40b5a2d5d69397</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.AmbiguityResolver.Compound</span></td><td><code>eab4a548d2693cd2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.AmbiguityResolver.Resolution</span></td><td><code>e8ca39d95b4ade42</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.BindingResolver.Default</span></td><td><code>ed3f9e212bdf4696</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.MethodBinding.Builder</span></td><td><code>ffaacecf2e1956bd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.MethodBinding.Builder.Build</span></td><td><code>fbe15ed2c0b7c26f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.MethodBinding.Illegal</span></td><td><code>ca301be97fe35cde</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.MethodInvoker.Simple</span></td><td><code>dafea2ba3b2f164b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.ParameterBinding.Anonymous</span></td><td><code>30b0f734840f8b2c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.ParameterBinding.Illegal</span></td><td><code>470dc52d77c3898e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.ParameterBinding.Unique</span></td><td><code>c60c100f523804e4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.Processor</span></td><td><code>1dd9238ba412581f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.TerminationHandler.Default</span></td><td><code>946265fda2ca27e8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.TerminationHandler.Default.1</span></td><td><code>db109132d7373fda</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.TerminationHandler.Default.2</span></td><td><code>cb3895b610bd15d5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodNameEqualityResolver</span></td><td><code>65a8d1431b34fdcd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.ParameterLengthResolver</span></td><td><code>58a025cd0f10dff1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.AllArguments.Assignment</span></td><td><code>a9a852c11b320ab1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.AllArguments.Binder</span></td><td><code>70d2d38d942236e9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.Argument.Binder</span></td><td><code>d9599526792299bc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.Argument.BindingMechanic</span></td><td><code>3c1577b22755160a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.Argument.BindingMechanic.1</span></td><td><code>0d55bcd6ddcb95ce</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.Argument.BindingMechanic.2</span></td><td><code>a10c7561f9e6f193</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.BindingPriority.Resolver</span></td><td><code>2fd170c18c979895</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.Default.Binder</span></td><td><code>fdd8dd2baa86d3db</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.DefaultCall.Binder</span></td><td><code>da1f6e99880fdd81</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.DefaultCallHandle.Binder</span></td><td><code>e06c83e6a5d67914</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.DefaultMethod.Binder</span></td><td><code>03d209c7b50b3b07</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.DefaultMethodHandle.Binder</span></td><td><code>a2ceb680358bbf3b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.Empty.Binder</span></td><td><code>7c3892404f623e5a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.FieldGetterHandle.Binder</span></td><td><code>861b7c22fc0276d1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.FieldGetterHandle.Binder.Delegate</span></td><td><code>311d13f023d8289a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.FieldSetterHandle.Binder</span></td><td><code>73928d415965e531</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.FieldSetterHandle.Binder.Delegate</span></td><td><code>87df40b62880da89</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.FieldValue.Binder</span></td><td><code>62660cf02a28bd16</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.FieldValue.Binder.Delegate</span></td><td><code>0f20336b20b2e19e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.IgnoreForBinding.Verifier</span></td><td><code>f6eaa0a37f2ce769</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.Origin.Binder</span></td><td><code>de6b5494873daefa</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.RuntimeType.Verifier</span></td><td><code>79ef98193cf36f83</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.StubValue.Binder</span></td><td><code>47dfbe906a0f1712</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.Super.Binder</span></td><td><code>159db3adf8f80917</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.SuperCall.Binder</span></td><td><code>ab7d9c4bff4cce1f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.SuperCallHandle.Binder</span></td><td><code>7b8a4c06e71007ba</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.SuperMethod.Binder</span></td><td><code>787b81ea7c3cf9d1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.SuperMethodHandle.Binder</span></td><td><code>24c923e11496eb8f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder</span></td><td><code>07e504cb3c546aab</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.DelegationProcessor</span></td><td><code>2084514b37eafe57</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.DelegationProcessor.Handler.Bound</span></td><td><code>ef7d428377a4cc32</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.DelegationProcessor.Handler.Unbound</span></td><td><code>268e0923d2bba678</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.ParameterBinder</span></td><td><code>ba9707c8f3fe13d6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.ParameterBinder.ForFieldBinding</span></td><td><code>94bb239add34e1bc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.ParameterBinder.ForFixedValue</span></td><td><code>655436a01f544525</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.ParameterBinder.ForFixedValue.OfConstant</span></td><td><code>1a94e96610690841</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.Record</span></td><td><code>e5a54c271a13fa1e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.This.Binder</span></td><td><code>365ed9c01801d8a8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.ByteCodeAppender.Compound</span></td><td><code>0f6ce72d7ea48338</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.ByteCodeAppender.Simple</span></td><td><code>3d7cd79d87926f75</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.ByteCodeAppender.Size</span></td><td><code>897030ac0b46252c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.Duplication</span></td><td><code>87726ed8bb6e39de</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.Duplication.1</span></td><td><code>6cbf4aae44bb9c6a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.Duplication.2</span></td><td><code>204abf23cbf37c68</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.Duplication.3</span></td><td><code>0631976e078609bd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.Removal</span></td><td><code>6d539a300caa5092</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.Removal.1</span></td><td><code>ab763f3b743f79a5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.Removal.2</span></td><td><code>fd766afb93ac2a09</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.StackManipulation.AbstractBase</span></td><td><code>31ac4a0904ac3e09</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.StackManipulation.Compound</span></td><td><code>96939a22aac4c91b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.StackManipulation.Illegal</span></td><td><code>d75e2eb0d394f6c3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.StackManipulation.Size</span></td><td><code>e69b15cd3e8d4461</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.StackManipulation.Trivial</span></td><td><code>56f2787cdbce4d40</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.StackSize</span></td><td><code>80f94e8effa2f7bb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.TypeCreation</span></td><td><code>4865d2e454028bc1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.Assigner</span></td><td><code>7e67d52e9390b000</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.Assigner.Typing</span></td><td><code>b09adf7fa17d04b8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.TypeCasting</span></td><td><code>1a445bd188e2931d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveBoxingDelegate</span></td><td><code>dac9a66a711d1bdb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveBoxingDelegate.BoxingStackManipulation</span></td><td><code>96e0379915a5a251</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveTypeAwareAssigner</span></td><td><code>c888a19b998b7769</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveUnboxingDelegate</span></td><td><code>14e47d44e5cebb1d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveUnboxingDelegate.ImplicitlyTypedUnboxingResponsible</span></td><td><code>adf7d49661fe0566</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveWideningDelegate</span></td><td><code>1008755d8fe45330</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveWideningDelegate.WideningStackManipulation</span></td><td><code>796408ff7247d988</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.primitive.VoidAwareAssigner</span></td><td><code>3df36760b29d387a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.reference.GenericTypeAwareAssigner</span></td><td><code>3623cb487284bb53</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.reference.ReferenceTypeAwareAssigner</span></td><td><code>59b5f6f8641c87f2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.collection.ArrayFactory</span></td><td><code>f2dcfb1430649b3e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.collection.ArrayFactory.ArrayCreator</span></td><td><code>7ff584cc516e3f40</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.collection.ArrayFactory.ArrayCreator.ForReferenceType</span></td><td><code>2ffee25860dde2e1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.collection.ArrayFactory.ArrayStackManipulation</span></td><td><code>2420354f9fdfb502</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.ClassConstant</span></td><td><code>8c2c8e360f844ad5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.ClassConstant.ForReferenceType</span></td><td><code>a779a54b4d7fcd6c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.DefaultValue</span></td><td><code>56544d5987e5a6d8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.DoubleConstant</span></td><td><code>829c95b7b67e95cf</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.FloatConstant</span></td><td><code>bdee038754940fff</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.IntegerConstant</span></td><td><code>58a28f871a6a0499</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.LongConstant</span></td><td><code>113f925135fa3020</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.MethodConstant</span></td><td><code>4af2674773bedc86</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.MethodConstant.CachedMethod</span></td><td><code>927dce16203d5f6c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.MethodConstant.ForMethod</span></td><td><code>5c66dba4a8bfbcea</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.NullConstant</span></td><td><code>9cf4bfc5c52a2517</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.TextConstant</span></td><td><code>76b9599de59f2aeb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.FieldAccess</span></td><td><code>e098860a4703e90a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.FieldAccess.AccessDispatcher</span></td><td><code>20c90535a547e3cd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.FieldAccess.AccessDispatcher.AbstractFieldInstruction</span></td><td><code>75724b7b6b2e4a66</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.FieldAccess.AccessDispatcher.FieldGetInstruction</span></td><td><code>adcac7724ac0272c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.FieldAccess.AccessDispatcher.FieldPutInstruction</span></td><td><code>aeaedb775e139b65</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.MethodInvocation</span></td><td><code>14726e4d8770e5c2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.MethodInvocation.Invocation</span></td><td><code>fa9ba5217301f030</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.MethodReturn</span></td><td><code>3cbfd6833fda70dd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.MethodVariableAccess</span></td><td><code>7ec211e72c6c3719</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.MethodLoading</span></td><td><code>0b690307be533e18</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.MethodLoading.TypeCastingHandler.NoOp</span></td><td><code>3f3d0d86b569e241</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.OffsetLoading</span></td><td><code>4794627822a950ec</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.AnnotationVisitor</span></td><td><code>ab01c26438b8cd7b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.AnnotationWriter</span></td><td><code>0932d72e909ca807</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.Attribute</span></td><td><code>706e3dca943537f4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.ByteVector</span></td><td><code>202001c737179f70</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.ClassReader</span></td><td><code>8fd6d8ea4b62a848</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.ClassVisitor</span></td><td><code>98826fd4e883df65</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.ClassWriter</span></td><td><code>73765ecc9041df5a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.Context</span></td><td><code>e9c1b62b23feb9ea</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.FieldVisitor</span></td><td><code>21cf79e64cb95598</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.FieldWriter</span></td><td><code>3c4ebfcb2bc7032e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.Handler</span></td><td><code>763c7a3b0dc4fc7e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.MethodVisitor</span></td><td><code>3a3fa5cb8e06f5c0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.MethodWriter</span></td><td><code>4dbf32aaa5d7bc68</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.Symbol</span></td><td><code>667e508aa34354b1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.SymbolTable</span></td><td><code>539884500485885f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.SymbolTable.Entry</span></td><td><code>9be5b08b0e9ad0e4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.Type</span></td><td><code>64291fd6c758fa3d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.TypeReference</span></td><td><code>7c2c246da0bafedc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.commons.ClassRemapper</span></td><td><code>3b51d3b9fc7535e2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.commons.FieldRemapper</span></td><td><code>98cdb08947bd5f18</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.commons.Remapper</span></td><td><code>8ff8deecbcc3631a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.commons.SignatureRemapper</span></td><td><code>cd6e68dcee40cdbd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.commons.SimpleRemapper</span></td><td><code>2b864e7450e7f441</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.signature.SignatureReader</span></td><td><code>011d12c758b95e5f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.signature.SignatureVisitor</span></td><td><code>b9cc80f05fd1a1b5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.signature.SignatureWriter</span></td><td><code>4b49360620cb7f6c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.AnnotationTypeMatcher</span></td><td><code>4c083a293a95675e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.BooleanMatcher</span></td><td><code>fc276a6c128e2875</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.CollectionErasureMatcher</span></td><td><code>76b5d2cc623cc312</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.CollectionItemMatcher</span></td><td><code>640386844f0e29b8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.CollectionOneToOneMatcher</span></td><td><code>670278e525ff9bfc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.CollectionSizeMatcher</span></td><td><code>8f59b8be9ab4a58b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.DeclaringAnnotationMatcher</span></td><td><code>72a4630003105f69</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.DeclaringTypeMatcher</span></td><td><code>76e282c5482618bb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.DescriptorMatcher</span></td><td><code>e5d21259f82507a7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.ElementMatcher.Junction.AbstractBase</span></td><td><code>d129e1a5bbea50cb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.ElementMatcher.Junction.Conjunction</span></td><td><code>6586c7d2abf8bf59</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.ElementMatcher.Junction.Disjunction</span></td><td><code>78eb86ff19c5e913</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.ElementMatcher.Junction.ForNonNullValues</span></td><td><code>40b97e222b442c20</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.ElementMatchers</span></td><td><code>5da3055b8ba94b32</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.EqualityMatcher</span></td><td><code>7ddcccca3867f2c6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.ErasureMatcher</span></td><td><code>327b39df894c794a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.FailSafeMatcher</span></td><td><code>e67ae39af120023b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.FilterableList.AbstractBase</span></td><td><code>acc833b482b3e913</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.FilterableList.Empty</span></td><td><code>994e694dc878695f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.LatentMatcher.Disjunction</span></td><td><code>cf547e86976c153f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.LatentMatcher.ForFieldToken</span></td><td><code>08b4951ce99afdff</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.LatentMatcher.ForFieldToken.ResolvedMatcher</span></td><td><code>7a313b55df92d5ce</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.LatentMatcher.ForMethodToken</span></td><td><code>acf53d7e0ad9c66c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.LatentMatcher.ForMethodToken.ResolvedMatcher</span></td><td><code>a1b47b682cdd16e5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.LatentMatcher.Resolved</span></td><td><code>838bf93f64347719</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodParameterTypeMatcher</span></td><td><code>d565dce3bed4679b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodParameterTypesMatcher</span></td><td><code>4f9a1c61c2ca1d30</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodParametersMatcher</span></td><td><code>754bf9d07553d1f9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodReturnTypeMatcher</span></td><td><code>1b6fa22a35a706bc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodSortMatcher</span></td><td><code>d9a4a7f8ba8d705a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodSortMatcher.Sort</span></td><td><code>df4da3ccf1c43fb2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodSortMatcher.Sort.1</span></td><td><code>9f8edcf420246fae</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodSortMatcher.Sort.2</span></td><td><code>5b30e294f2304972</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodSortMatcher.Sort.3</span></td><td><code>9c8b9e468a9ba4ee</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodSortMatcher.Sort.4</span></td><td><code>4c3709005a13f932</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodSortMatcher.Sort.5</span></td><td><code>93400b67a6230353</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.ModifierMatcher</span></td><td><code>c0d2e66fbd31c083</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.ModifierMatcher.Mode</span></td><td><code>09bd88f8f539be92</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.NameMatcher</span></td><td><code>b901fc4b35799fa4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.NegatingMatcher</span></td><td><code>a7d93978e9d78d7e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.SignatureTokenMatcher</span></td><td><code>60c758b99c3d9148</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher</span></td><td><code>236df1d1d60ab580</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode</span></td><td><code>78a8ab1a5e998326</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode.1</span></td><td><code>197cd818fecbf0dc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode.2</span></td><td><code>130a12e752b093e0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode.3</span></td><td><code>37e1825b2b41bae8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode.4</span></td><td><code>34a59e75ad57ee16</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode.5</span></td><td><code>6b18de0e0195fcc7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode.6</span></td><td><code>bdaf5299d13e3bfe</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode.7</span></td><td><code>f608050eb76b29c9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode.8</span></td><td><code>7a1f43a330aa49e3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode.9</span></td><td><code>d97cfe0669542624</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.SuperTypeMatcher</span></td><td><code>5f65e9ccb1649334</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.TypeSortMatcher</span></td><td><code>bea3cd319f7a9ab6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.VisibilityMatcher</span></td><td><code>6f0d2c70b6ce50e1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.pool.TypePool.AbstractBase</span></td><td><code>9fb6083dd80a22fc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.pool.TypePool.AbstractBase.Hierarchical</span></td><td><code>af09d201760be842</code></td></tr><tr><td><span class="el_class">net.bytebuddy.pool.TypePool.CacheProvider.NoOp</span></td><td><code>174576454ae1c349</code></td></tr><tr><td><span class="el_class">net.bytebuddy.pool.TypePool.CacheProvider.Simple</span></td><td><code>7bfcbb81282fd7ba</code></td></tr><tr><td><span class="el_class">net.bytebuddy.pool.TypePool.ClassLoading</span></td><td><code>eacd715670bb9cf5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.pool.TypePool.Default</span></td><td><code>d652b7abbf41681e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.pool.TypePool.Default.ReaderMode</span></td><td><code>c7c49aee0ee313c2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.pool.TypePool.Empty</span></td><td><code>3dd3d1db982dbfc3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.pool.TypePool.Explicit</span></td><td><code>eceae2bc3c0ef42b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.CompoundList</span></td><td><code>b8b501baeee21c20</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.ConstantValue.Simple</span></td><td><code>e3630dc7d69b95ee</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.ConstructorComparator</span></td><td><code>c7333b6b982e8e09</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.FieldComparator</span></td><td><code>040e57b459196f7f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.GraalImageCode</span></td><td><code>99c2d8870a99ec8c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.Invoker.Dispatcher</span></td><td><code>b9b5f67cf01bb049</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.JavaConstant.Simple</span></td><td><code>5b025f7cd4895fd5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.JavaConstant.Simple.OfTrivialValue</span></td><td><code>d0617f655417a3d4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.JavaConstant.Simple.OfTrivialValue.ForString</span></td><td><code>45e71adc753caccd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.JavaModule</span></td><td><code>6655d87ef5c48770</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.MethodComparator</span></td><td><code>4e5549fe1a1bb16a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.OpenedClassReader</span></td><td><code>03aca7f7509a23be</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.RandomString</span></td><td><code>475c5a28b2a65671</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.StreamDrainer</span></td><td><code>264534737ce95d78</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher</span></td><td><code>787d0fb443c33196</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForContainerCreation</span></td><td><code>6d0da494448f50f0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForInstanceCheck</span></td><td><code>348c5ed1a0ea72ea</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForNonStaticMethod</span></td><td><code>bf4d2158c4101736</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForStaticMethod</span></td><td><code>2cbd19f9947661fd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher.DynamicClassLoader</span></td><td><code>fb77b168217827f2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher.DynamicClassLoader.Resolver.CreationAction</span></td><td><code>8ca4ae6007eb9fd7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher.DynamicClassLoader.Resolver.ForModuleSystem</span></td><td><code>9a96cee67ed31732</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher.InvokerCreationAction</span></td><td><code>8b81db7b9bb021a1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher.ProxiedInvocationHandler</span></td><td><code>a4eb032d57e965fc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.privilege.GetMethodAction</span></td><td><code>74124300a1be96ce</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.privilege.GetSystemPropertyAction</span></td><td><code>3dcb9c5481b99d57</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.visitor.MetadataAwareClassVisitor</span></td><td><code>01777504b2dd8fd6</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.Level</span></td><td><code>c16ba76d799f3791</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.LogManager</span></td><td><code>f5f59bb1e8d3dbc7</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.MarkerManager</span></td><td><code>d897a1d7c5ddda81</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.MarkerManager.Log4jMarker</span></td><td><code>d177266193b10c21</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.ThreadContext</span></td><td><code>6369b329f1834450</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.ThreadContext.EmptyIterator</span></td><td><code>84d6701ae7b776c3</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.ThreadContext.EmptyThreadContextStack</span></td><td><code>5bf000d3ccd83ae6</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.AbstractLifeCycle</span></td><td><code>4a58edc7839a2101</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.Appender</span></td><td><code>557c71036724f367</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.LifeCycle.State</span></td><td><code>9cbfc1c6e8933760</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.LogEvent.MockitoMock.Ge9oha9s</span></td><td><code>8e1ebed7eb500e5d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.Logger</span></td><td><code>75da8821ad625e16</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.Logger.PrivateConfig</span></td><td><code>6b8b9d9b24a277cd</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.LoggerContext</span></td><td><code>aa34388b1e29d271</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.LoggerContext.1</span></td><td><code>e8cab04b536a4cb5</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.Version</span></td><td><code>15ac13f915374f41</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.AbstractAppender</span></td><td><code>40cda5085efffc6b</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.AbstractManager</span></td><td><code>1765196ff610f169</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender</span></td><td><code>37ad3d4f25c6ed11</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.ConsoleAppender</span></td><td><code>e745fb3892e8290c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.ConsoleAppender.ConsoleManagerFactory</span></td><td><code>c641512c925e519d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.ConsoleAppender.FactoryData</span></td><td><code>755b4d9f9149611e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.ConsoleAppender.Target</span></td><td><code>9531df58085e28b1</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.ConsoleAppender.Target.1</span></td><td><code>5a7aa65a6a4a036b</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.ConsoleAppender.Target.2</span></td><td><code>1c59522fc927120d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.DefaultErrorHandler</span></td><td><code>ac43bc36cd775348</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.OutputStreamManager</span></td><td><code>9c94c036dc8a3cb2</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.async.InternalAsyncUtil</span></td><td><code>ed63a026039835c9</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.async.ThreadNameCachingStrategy</span></td><td><code>c4d7e4cfba12c4e8</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.async.ThreadNameCachingStrategy.1</span></td><td><code>eb70dccb31d54d63</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.async.ThreadNameCachingStrategy.2</span></td><td><code>7360500ad82b76f6</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.AbstractConfiguration</span></td><td><code>2a8412d318399585</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.AppenderControl</span></td><td><code>2bc71d1f8e4bb2ba</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.AppenderControlArraySet</span></td><td><code>08eed8aa3c165162</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.AppenderRef</span></td><td><code>459880ba180f97e9</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.AppendersPlugin</span></td><td><code>fad5dd1b676a7b81</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy</span></td><td><code>f1c10a071c4b02d3</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.ConfigurationFactory</span></td><td><code>619f9a533a599b9f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.ConfigurationFactory.Factory</span></td><td><code>fe633a431762f1b2</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.ConfigurationScheduler</span></td><td><code>1b6781e32c572e82</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.ConfigurationSource</span></td><td><code>d15ffd251c6a7293</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.Configurator</span></td><td><code>a49560a5c55098fc</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.DefaultAdvertiser</span></td><td><code>695aae846bfa5a4a</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.DefaultConfiguration</span></td><td><code>55d57adf720da5ed</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.DefaultReliabilityStrategy</span></td><td><code>1a139964ed367c5c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.LoggerConfig</span></td><td><code>f07a1cac03204d3f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.LoggerConfig.LevelAndRefs</span></td><td><code>75c9d630b74c3d27</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.LoggerConfig.LoggerConfigPredicate</span></td><td><code>de48990d804549bf</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.LoggerConfig.LoggerConfigPredicate.1</span></td><td><code>e845dba89d98c7ab</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.LoggerConfig.LoggerConfigPredicate.2</span></td><td><code>05257e6b98719290</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.LoggerConfig.LoggerConfigPredicate.3</span></td><td><code>794393f4e037523f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.LoggerConfig.RootLogger</span></td><td><code>dc2ff6559c952246</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.LoggerConfig.RootLogger.Builder</span></td><td><code>bc4a6d928992057b</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.Loggers</span></td><td><code>c8a7997331251d55</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.LoggersPlugin</span></td><td><code>e785576ec131cbea</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.Node</span></td><td><code>290cfdc0878668fd</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.NullConfiguration</span></td><td><code>7bd3cc265969ff51</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.OrderComparator</span></td><td><code>93b80d16945d2745</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.Property</span></td><td><code>7a41d860312c8998</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.ReliabilityStrategyFactory</span></td><td><code>bad12f7133e6c776</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory</span></td><td><code>53e68b18d786eb59</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.json.JsonConfigurationFactory</span></td><td><code>386e1b25a3474fca</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverterRegistry</span></td><td><code>6c433cdb117cfc71</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters</span></td><td><code>4069627b42503140</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.BigDecimalConverter</span></td><td><code>e2907b6b27803aad</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.BigIntegerConverter</span></td><td><code>d3240da8993617fd</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.BooleanConverter</span></td><td><code>7162b725cab23a17</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.ByteArrayConverter</span></td><td><code>4798190b99b680f3</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.ByteConverter</span></td><td><code>6a967183aa843ca8</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.CharArrayConverter</span></td><td><code>bbcc971d3b219349</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.CharacterConverter</span></td><td><code>fba843c062ba4cc8</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.CharsetConverter</span></td><td><code>31408326aa229560</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.ClassConverter</span></td><td><code>38a6158dbb82c315</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.CronExpressionConverter</span></td><td><code>eed3f8e89a95d1fe</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.DoubleConverter</span></td><td><code>003f457eb1a58591</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.DurationConverter</span></td><td><code>7dda10281f0f5673</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.FileConverter</span></td><td><code>485d82abf973a596</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.FloatConverter</span></td><td><code>fc196475fd2eb79d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.InetAddressConverter</span></td><td><code>087b90fd19cb18f1</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.IntegerConverter</span></td><td><code>bc5d5e522cad1c4e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.LevelConverter</span></td><td><code>83296c38a58daa2c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.LongConverter</span></td><td><code>5343e2c657b46a9e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.PathConverter</span></td><td><code>72c75215eb1c2739</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.PatternConverter</span></td><td><code>a0818c9a342e9ae2</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.SecurityProviderConverter</span></td><td><code>a7c120286237f797</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.ShortConverter</span></td><td><code>40addf04a5c60d41</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.StringConverter</span></td><td><code>7dac10f4dddbad6f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.UriConverter</span></td><td><code>b4d097f70a07f7e1</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.UrlConverter</span></td><td><code>2f567dff6e2c4f2f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.UuidConverter</span></td><td><code>c2d2ed7b23392e18</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.processor.PluginCache</span></td><td><code>86df9597e851d48f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.processor.PluginEntry</span></td><td><code>87e280306f71b42f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.util.PluginBuilder</span></td><td><code>0ac2b7cce613e350</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.util.PluginManager</span></td><td><code>d3d98ebd8ac5d556</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.util.PluginRegistry</span></td><td><code>d6918979a7f3951a</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.util.PluginRegistry.PluginTest</span></td><td><code>fa3f773f19eb356f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.util.PluginType</span></td><td><code>97d0f069df1c9e5f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.util.ResolverUtil</span></td><td><code>c4f033d655decb8a</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.validation.ConstraintValidators</span></td><td><code>e7244981f70838a7</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.visitors.AbstractPluginVisitor</span></td><td><code>bf4c1a8533e826e9</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.visitors.PluginAttributeVisitor</span></td><td><code>c78ad0b71073020b</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.visitors.PluginBuilderAttributeVisitor</span></td><td><code>2ec63d51726e1827</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.visitors.PluginConfigurationVisitor</span></td><td><code>1e0eae69e1645e74</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.visitors.PluginElementVisitor</span></td><td><code>ed1cfbd56d268259</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.visitors.PluginVisitors</span></td><td><code>f679534f19c5c183</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.properties.PropertiesConfigurationFactory</span></td><td><code>0850da00471d2708</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.status.StatusConfiguration</span></td><td><code>65a1274d04bd11eb</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.xml.XmlConfiguration</span></td><td><code>31cdd51a6d6b44b2</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.xml.XmlConfigurationFactory</span></td><td><code>568b2130a8a4ad7b</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.yaml.YamlConfigurationFactory</span></td><td><code>0e62bac5b54be9d6</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.filter.AbstractFilterable</span></td><td><code>f4c143a59f77a4ac</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.ContextAnchor</span></td><td><code>d748e48c1790f8ea</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.ContextDataFactory</span></td><td><code>32ba51a83ef76280</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.ContextDataInjectorFactory</span></td><td><code>299322a21d083e32</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.Log4jContextFactory</span></td><td><code>feda5598c0646484</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.Log4jLogEvent</span></td><td><code>3e089274ee4b50f2</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.Log4jProvider</span></td><td><code>b08171171b267469</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.MutableLogEvent</span></td><td><code>0b7ce743db2c84da</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.ReusableLogEventFactory</span></td><td><code>92775d2f515843ea</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.ThreadContextDataInjector</span></td><td><code>b9831bf4ce554e10</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.ThreadContextDataInjector.ForCopyOnWriteThreadContextMap</span></td><td><code>f5a513131dae96b2</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.ThreadContextDataProvider</span></td><td><code>fdfc555804f50eb3</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.ThrowableFormatOptions</span></td><td><code>9c4c29401a9fa329</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.jmx.AppenderAdmin</span></td><td><code>6c67c9235e321799</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.jmx.ContextSelectorAdmin</span></td><td><code>0d84571db0a23c98</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.jmx.LoggerConfigAdmin</span></td><td><code>aff502d5e02a532f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.jmx.LoggerContextAdmin</span></td><td><code>bf881aeb9f24ef97</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.jmx.Server</span></td><td><code>35c068c0ae9cb2c3</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.jmx.StatusLoggerAdmin</span></td><td><code>d7139c573ff431ad</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.layout.AbstractLayout</span></td><td><code>0b084f5625073f84</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.layout.AbstractStringLayout</span></td><td><code>c22b33932ce6c04f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.layout.PatternLayout</span></td><td><code>d86f3301893c06a7</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.layout.PatternLayout.Builder</span></td><td><code>b140a4cae3f87733</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.layout.PatternLayout.PatternFormatterPatternSerializer</span></td><td><code>2af05564cbbdea7a</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.layout.PatternLayout.SerializerBuilder</span></td><td><code>fa59d54d31faa345</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.layout.StringBuilderEncoder</span></td><td><code>899256500215c572</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.AbstractConfigurationAwareLookup</span></td><td><code>722110a4ac296631</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.AbstractLookup</span></td><td><code>1f360837d7e0642d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.ConfigurationStrSubstitutor</span></td><td><code>2afd63deca12779d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.ContextMapLookup</span></td><td><code>c93bc323ef94ca39</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.DateLookup</span></td><td><code>3ae19541a6febc2d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.EnvironmentLookup</span></td><td><code>d90b57ecaffaf99f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.EventLookup</span></td><td><code>a884ead0e6a3b95d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.Interpolator</span></td><td><code>0ccab67bad77d8b8</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.JavaLookup</span></td><td><code>b7c95024f5056538</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.JmxRuntimeInputArgumentsLookup</span></td><td><code>604bdbe2ae156e88</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.Log4jLookup</span></td><td><code>dbc1a81ffd959959</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.LowerLookup</span></td><td><code>a37db657219239dd</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.MainMapLookup</span></td><td><code>54299475832bc7dd</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.MapLookup</span></td><td><code>861dc5ef7f9eba17</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.MarkerLookup</span></td><td><code>0e6cfb87a0c7358e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.PropertiesLookup</span></td><td><code>f67aa3f01fef3433</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.ResourceBundleLookup</span></td><td><code>f3b9ec48b1712bc2</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.RuntimeStrSubstitutor</span></td><td><code>590e1a41e3dea09c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.StrMatcher</span></td><td><code>1efbae8b860a175f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.StrMatcher.CharMatcher</span></td><td><code>8ee16bc7eefdf569</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.StrMatcher.CharSetMatcher</span></td><td><code>b965ec92a009031a</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.StrMatcher.NoMatcher</span></td><td><code>a92cace2c0d9c44d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.StrMatcher.StringMatcher</span></td><td><code>977cacda8d9639a8</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.StrMatcher.TrimMatcher</span></td><td><code>7ac4238f6f5fd9f5</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.StrSubstitutor</span></td><td><code>a76f6e3acd82ceba</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.StructuredDataLookup</span></td><td><code>57f335aa16a287a4</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.SystemPropertiesLookup</span></td><td><code>ea304698f3e20ff3</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.UpperLookup</span></td><td><code>400c3db1f9e8f866</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.net.JndiManager</span></td><td><code>0bec1837194dbed6</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.net.JndiManager.JndiManagerFactory</span></td><td><code>1aa22ef35e7b39e1</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.AbstractPatternConverter</span></td><td><code>fb665c01ac606a82</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.DatePatternConverter</span></td><td><code>1dc508e389cc0471</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.DatePatternConverter.CachedTime</span></td><td><code>bd3e877d1391b293</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.DatePatternConverter.FixedFormatter</span></td><td><code>028519c79cead7f9</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.DatePatternConverter.Formatter</span></td><td><code>becfbef9baa3f895</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.DynamicWordAbbreviator</span></td><td><code>48d3cdaa1be59494</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter</span></td><td><code>b3c9c67b5123815e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.FormattingInfo</span></td><td><code>bfa167f743991357</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.LevelPatternConverter</span></td><td><code>4918fd998a7f9ded</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.LevelPatternConverter.SimpleLevelPatternConverter</span></td><td><code>3b1fac638d67c2a6</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.LineSeparatorPatternConverter</span></td><td><code>2e62c0a555195b17</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.LiteralPatternConverter</span></td><td><code>02c30894357c76b4</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.LogEventPatternConverter</span></td><td><code>88e6eb5d3c6bb5f2</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.LoggerPatternConverter</span></td><td><code>972bf08c68b4e811</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.MessagePatternConverter</span></td><td><code>979226f199ca1ff0</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.MessagePatternConverter.SimpleMessagePatternConverter</span></td><td><code>f8ae3ee84ca03ad6</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.NameAbbreviator</span></td><td><code>b960cd704f59fe01</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.NameAbbreviator.MaxElementAbbreviator</span></td><td><code>a799f552b2e89e70</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.NameAbbreviator.MaxElementAbbreviator.Strategy</span></td><td><code>153d2509a8dfc5a1</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.NameAbbreviator.MaxElementAbbreviator.Strategy.1</span></td><td><code>0bd22bf7dc3870c5</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.NameAbbreviator.MaxElementAbbreviator.Strategy.2</span></td><td><code>67ac3c720f88fd1c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.NameAbbreviator.NOPAbbreviator</span></td><td><code>f0d119705d83ce82</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.NamePatternConverter</span></td><td><code>0732e348918fa3b4</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.PatternFormatter</span></td><td><code>1963738e5ade04be</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.PatternParser</span></td><td><code>a3a403c3e1b24f14</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.PatternParser.1</span></td><td><code>187a586abe201b3c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.PatternParser.ParserState</span></td><td><code>dcd60ed2b152eb24</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.PlainTextRenderer</span></td><td><code>3f856ba5906c793c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.SimpleLiteralPatternConverter</span></td><td><code>52ce65d84183dea7</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.SimpleLiteralPatternConverter.Space</span></td><td><code>79ff5216fc0c0bdd</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.SimpleLiteralPatternConverter.StringValue</span></td><td><code>23e3525555bcd95b</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.ThreadNamePatternConverter</span></td><td><code>3fc82aae7d398d40</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.ThrowablePatternConverter</span></td><td><code>ac65b0607632b78e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.selector.ClassLoaderContextSelector</span></td><td><code>503a4e8e9026d582</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.time.MutableInstant</span></td><td><code>2c9f37fecc94af66</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.BasicAuthorizationProvider</span></td><td><code>91fb6f421e386e2e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.ClockFactory</span></td><td><code>db9e6b37e1499815</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.CloseShieldOutputStream</span></td><td><code>a8ceb873be4f4648</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.Closer</span></td><td><code>07ec2ceb73d38d9f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.Constants</span></td><td><code>a0dd9318b1aa97f5</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry</span></td><td><code>fe7e78055d6ed7e9</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry.RegisteredCancellable</span></td><td><code>d05cfcef69b80229</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.DummyNanoClock</span></td><td><code>e9842706c10ce8fe</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.ExecutorServices</span></td><td><code>0b1502384d7b4f9d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.Integers</span></td><td><code>a24bab05e3df8181</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.Loader</span></td><td><code>a6b6fe81d9bd2e7e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.Log4jThreadFactory</span></td><td><code>c826143ca92543b4</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.NameUtil</span></td><td><code>c65e140f2edce6e0</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.NetUtils</span></td><td><code>85aa383ac97033d8</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.OptionConverter</span></td><td><code>b9e1547bd051ff6f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.Patterns</span></td><td><code>25904b465279f47d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.ReflectionUtil</span></td><td><code>e2f901f8fe40d1d0</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.ShutdownCallbackRegistry</span></td><td><code>bdd0c536e9a68d83</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.SystemClock</span></td><td><code>96230c7e58fd2ab1</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.TypeUtil</span></td><td><code>123af7991e2fd49c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.WatchManager</span></td><td><code>7dddd25bee88a1ba</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.WatchManager.LocalUUID</span></td><td><code>7cd3237924702c0c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.datetime.FixedDateFormat</span></td><td><code>dcd0f039f36ff5be</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.datetime.FixedDateFormat.FixedFormat</span></td><td><code>2d48c8773f657d7f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.datetime.FixedDateFormat.FixedTimeZoneFormat</span></td><td><code>1f0b7fbd399e1357</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.internal.LogManagerStatus</span></td><td><code>72283b78de816d5d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.message.AbstractMessageFactory</span></td><td><code>e9dac4515df8ce23</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.message.DefaultFlowMessageFactory</span></td><td><code>4027bdc03cb851d4</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.message.ParameterizedMessageFactory</span></td><td><code>b844767fa1b9909b</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.message.ParameterizedNoReferenceMessageFactory</span></td><td><code>ce2d29c2691e3be3</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.message.ReusableMessageFactory</span></td><td><code>6d203970db43c096</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.message.SimpleMessage</span></td><td><code>8febf49cfcf775d1</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.AbstractLogger</span></td><td><code>45c40d48e73ab93d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.CopyOnWriteSortedArrayThreadContextMap</span></td><td><code>01d83f93368a95a6</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.DefaultThreadContextMap</span></td><td><code>8f0beff2dec656e8</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.DefaultThreadContextStack</span></td><td><code>c2a6db52b37d2193</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.GarbageFreeSortedArrayThreadContextMap</span></td><td><code>29c7de9ae4ead2f3</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.LoggerContext</span></td><td><code>d2a836bfefe5bd0e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.LoggerRegistry</span></td><td><code>cf29fc9ed8bd3398</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.LoggerRegistry.ConcurrentMapFactory</span></td><td><code>a009c2100e5ad58d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.Provider</span></td><td><code>f95484c82704055e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.StandardLevel</span></td><td><code>08a88bb529c47d3e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.ThreadContextMapFactory</span></td><td><code>5eca38a306bc0031</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.status.StatusConsoleListener</span></td><td><code>ba0340263daaeaf4</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.status.StatusData</span></td><td><code>0b005f1fd85dcf95</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.status.StatusLogger</span></td><td><code>4b9bc5923fcf6330</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.status.StatusLogger.Config</span></td><td><code>77ff6bd953fb687a</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.status.StatusLogger.InstanceHolder</span></td><td><code>73732b59158cb563</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.Cast</span></td><td><code>b2f6f75e8d8aff5b</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.Constants</span></td><td><code>42a85a722c4ee8c5</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.EnvironmentPropertySource</span></td><td><code>c461150ae9e7ce91</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.Lazy</span></td><td><code>c6b050660b91ae2c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.LazyBoolean</span></td><td><code>865766ba7d157306</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.LazyUtil</span></td><td><code>f41dc66f7b046ec3</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.LazyUtil.1</span></td><td><code>816b401ccf54f5ea</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.LazyUtil.SafeLazy</span></td><td><code>25af67911aa147a9</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.LoaderUtil</span></td><td><code>57506497ed99fe55</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.LoaderUtil.ThreadContextClassLoaderGetter</span></td><td><code>eba780344e5c0127</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.OsgiServiceLocator</span></td><td><code>c89525c8372e0124</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.PropertiesPropertySource</span></td><td><code>8b861a658c8213b9</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.PropertiesUtil</span></td><td><code>aa7a22bd78cfd29c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.PropertiesUtil.Environment</span></td><td><code>ead57f3eaefd4c85</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.PropertyFilePropertySource</span></td><td><code>80f16eefe583b64d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.PropertySource.Comparator</span></td><td><code>b80634a1f3528c45</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.PropertySource.Util</span></td><td><code>0d07272b6b0251d9</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.ProviderUtil</span></td><td><code>8ad59c5eeb8b10a9</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.ServiceLoaderUtil</span></td><td><code>04c444c8890c61b1</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.ServiceLoaderUtil.ServiceLoaderSpliterator</span></td><td><code>5878ba8bd151ecdb</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.SortedArrayStringMap</span></td><td><code>6b5e92babe960348</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.StackLocator</span></td><td><code>d81cfbddd684fee7</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.StackLocatorUtil</span></td><td><code>3d238f2763343500</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.StringBuilders</span></td><td><code>327273e1ece4e010</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.Strings</span></td><td><code>61c13661cc218046</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.SystemPropertiesPropertySource</span></td><td><code>bcc53f8595b18cd2</code></td></tr><tr><td><span class="el_class">org.assertj.core.api.AbstractAssert</span></td><td><code>350d4a3c45c0d8b2</code></td></tr><tr><td><span class="el_class">org.assertj.core.api.AbstractComparableAssert</span></td><td><code>4bc0b15e745cd2bd</code></td></tr><tr><td><span class="el_class">org.assertj.core.api.AbstractLongAssert</span></td><td><code>559ad7d6ac9183fe</code></td></tr><tr><td><span class="el_class">org.assertj.core.api.AbstractObjectAssert</span></td><td><code>9efff4a69b305ce5</code></td></tr><tr><td><span class="el_class">org.assertj.core.api.Assertions</span></td><td><code>4edb27c6dadb3b26</code></td></tr><tr><td><span class="el_class">org.assertj.core.api.AssertionsForClassTypes</span></td><td><code>485dd7e71971d9a1</code></td></tr><tr><td><span class="el_class">org.assertj.core.api.LongAssert</span></td><td><code>cd40a5f106cfe37a</code></td></tr><tr><td><span class="el_class">org.assertj.core.api.WritableAssertionInfo</span></td><td><code>cfe8767c89787032</code></td></tr><tr><td><span class="el_class">org.assertj.core.configuration.Configuration</span></td><td><code>6ea356a40ee80ccf</code></td></tr><tr><td><span class="el_class">org.assertj.core.configuration.ConfigurationProvider</span></td><td><code>3346c4801f784bb9</code></td></tr><tr><td><span class="el_class">org.assertj.core.configuration.PreferredAssumptionException</span></td><td><code>2789214dba489051</code></td></tr><tr><td><span class="el_class">org.assertj.core.configuration.PreferredAssumptionException.1</span></td><td><code>1eab9d24cce924d2</code></td></tr><tr><td><span class="el_class">org.assertj.core.configuration.Services</span></td><td><code>3dc1dd22400d3099</code></td></tr><tr><td><span class="el_class">org.assertj.core.error.AssertionErrorCreator</span></td><td><code>744bd205226ec15f</code></td></tr><tr><td><span class="el_class">org.assertj.core.error.ConstructorInvoker</span></td><td><code>dbd17ff2cbb8bc28</code></td></tr><tr><td><span class="el_class">org.assertj.core.error.GroupTypeDescription</span></td><td><code>e2d30a487eec2c68</code></td></tr><tr><td><span class="el_class">org.assertj.core.internal.AbstractComparisonStrategy</span></td><td><code>40fb8687fd6113a4</code></td></tr><tr><td><span class="el_class">org.assertj.core.internal.Comparables</span></td><td><code>492c5254e1e386a8</code></td></tr><tr><td><span class="el_class">org.assertj.core.internal.Conditions</span></td><td><code>e092e4d723bc2314</code></td></tr><tr><td><span class="el_class">org.assertj.core.internal.Failures</span></td><td><code>2cd3f6ce6070185b</code></td></tr><tr><td><span class="el_class">org.assertj.core.internal.Longs</span></td><td><code>46033b1be2bc7d8e</code></td></tr><tr><td><span class="el_class">org.assertj.core.internal.Numbers</span></td><td><code>b1c5a72fc2773178</code></td></tr><tr><td><span class="el_class">org.assertj.core.internal.Objects</span></td><td><code>fe71671260ce8f9c</code></td></tr><tr><td><span class="el_class">org.assertj.core.internal.StandardComparisonStrategy</span></td><td><code>cb180b5c43beb144</code></td></tr><tr><td><span class="el_class">org.assertj.core.presentation.CompositeRepresentation</span></td><td><code>3230199b443ac68a</code></td></tr><tr><td><span class="el_class">org.assertj.core.presentation.StandardRepresentation</span></td><td><code>6d33658e7677a603</code></td></tr><tr><td><span class="el_class">org.assertj.core.util.Arrays</span></td><td><code>20c1f3363764d24e</code></td></tr><tr><td><span class="el_class">org.assertj.core.util.Lists</span></td><td><code>5895215344293d99</code></td></tr><tr><td><span class="el_class">org.assertj.core.util.Streams</span></td><td><code>d730dd591d3325a8</code></td></tr><tr><td><span class="el_class">org.assertj.core.util.introspection.FieldSupport</span></td><td><code>1f44f51b62bb0ce5</code></td></tr><tr><td><span class="el_class">org.assertj.core.util.introspection.PropertySupport</span></td><td><code>381c5ad4b48534d7</code></td></tr><tr><td><span class="el_class">org.junit.Assert</span></td><td><code>eda6db924019425b</code></td></tr><tr><td><span class="el_class">org.junit.internal.Checks</span></td><td><code>5f543b0bb87b92da</code></td></tr><tr><td><span class="el_class">org.junit.internal.MethodSorter</span></td><td><code>a26607ae067f7352</code></td></tr><tr><td><span class="el_class">org.junit.internal.MethodSorter.1</span></td><td><code>d3997b4bdb7889c1</code></td></tr><tr><td><span class="el_class">org.junit.internal.MethodSorter.2</span></td><td><code>c8e6351cbf098013</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.AllDefaultPossibilitiesBuilder</span></td><td><code>4f18a1d7932cb8ab</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.AnnotatedBuilder</span></td><td><code>0faf353d180c9332</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.IgnoredBuilder</span></td><td><code>e152f333c53967a6</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.JUnit3Builder</span></td><td><code>4a2cc8e608e1275e</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.JUnit4Builder</span></td><td><code>f2e00a3e1fc23005</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.NullBuilder</span></td><td><code>2c8f3561ed8ea9c5</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.SuiteMethodBuilder</span></td><td><code>1df136431e07e393</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.model.EachTestNotifier</span></td><td><code>077481995383e000</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.model.ReflectiveCallable</span></td><td><code>d591724635588bcb</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator</span></td><td><code>95b5ee2068ec6875</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.Builder</span></td><td><code>f24845fa6fd065af</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.DeclaringClassMustBePublic</span></td><td><code>1de994463c748d89</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeARule</span></td><td><code>e24e9f59de6fe5b7</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeATestRule</span></td><td><code>690823bd2992f52e</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeNonStaticOrAlsoClassRule</span></td><td><code>1e703fb3e7f4e533</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBePublic</span></td><td><code>806c174eb921b478</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeStatic</span></td><td><code>ac28a03dd36b2b5a</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeARule</span></td><td><code>88ea4a2237de2b8b</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeATestRule</span></td><td><code>9f4dd18a26005c18</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.statements.InvokeMethod</span></td><td><code>05a7aa636afa2c39</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.statements.RunAfters</span></td><td><code>14a998d07920cd7b</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.statements.RunBefores</span></td><td><code>ef86a61ca3ab20ba</code></td></tr><tr><td><span class="el_class">org.junit.runner.Description</span></td><td><code>1d6f7ddbbf223f9a</code></td></tr><tr><td><span class="el_class">org.junit.runner.JUnitCore</span></td><td><code>712fa1527248c316</code></td></tr><tr><td><span class="el_class">org.junit.runner.Request</span></td><td><code>214d9ade1c7dc38d</code></td></tr><tr><td><span class="el_class">org.junit.runner.Request.1</span></td><td><code>171f628b721d7eea</code></td></tr><tr><td><span class="el_class">org.junit.runner.Result</span></td><td><code>ecf6c1c04298ff7d</code></td></tr><tr><td><span class="el_class">org.junit.runner.Result.Listener</span></td><td><code>cf649a4ffbe55db9</code></td></tr><tr><td><span class="el_class">org.junit.runner.Runner</span></td><td><code>f5abacc70e2e08a4</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunListener</span></td><td><code>69d2c783b42f6720</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier</span></td><td><code>f6313076e2224ebb</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.1</span></td><td><code>e31025c12b4dbdee</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.2</span></td><td><code>4c7314c6d595dc3e</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.3</span></td><td><code>df2bada5cb3794f3</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.4</span></td><td><code>fbdd84204c215de7</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.5</span></td><td><code>f62dc396b601f8bd</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.9</span></td><td><code>c3c3d54b8ed47ee1</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.SafeNotifier</span></td><td><code>0b43c10299733bfb</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.SynchronizedRunListener</span></td><td><code>2b59d5cb3b105225</code></td></tr><tr><td><span class="el_class">org.junit.runners.BlockJUnit4ClassRunner</span></td><td><code>95752fb34ff12f3f</code></td></tr><tr><td><span class="el_class">org.junit.runners.BlockJUnit4ClassRunner.1</span></td><td><code>d0f63145230a5f42</code></td></tr><tr><td><span class="el_class">org.junit.runners.BlockJUnit4ClassRunner.2</span></td><td><code>f93eace695ddd30e</code></td></tr><tr><td><span class="el_class">org.junit.runners.BlockJUnit4ClassRunner.RuleCollector</span></td><td><code>9c768e710e39c989</code></td></tr><tr><td><span class="el_class">org.junit.runners.JUnit4</span></td><td><code>6d26e2305347fe01</code></td></tr><tr><td><span class="el_class">org.junit.runners.ParentRunner</span></td><td><code>335ee90b10f96ea1</code></td></tr><tr><td><span class="el_class">org.junit.runners.ParentRunner.1</span></td><td><code>ecc6961e8bc209c4</code></td></tr><tr><td><span class="el_class">org.junit.runners.ParentRunner.2</span></td><td><code>c5cb913a629ec4c8</code></td></tr><tr><td><span class="el_class">org.junit.runners.ParentRunner.3</span></td><td><code>20bad8188aebc0f2</code></td></tr><tr><td><span class="el_class">org.junit.runners.ParentRunner.4</span></td><td><code>80476dbdcb8d52cc</code></td></tr><tr><td><span class="el_class">org.junit.runners.ParentRunner.ClassRuleCollector</span></td><td><code>26f7fb338afcd13b</code></td></tr><tr><td><span class="el_class">org.junit.runners.RuleContainer</span></td><td><code>d44c3ba6dc65af53</code></td></tr><tr><td><span class="el_class">org.junit.runners.RuleContainer.1</span></td><td><code>57bbc73f6f47763b</code></td></tr><tr><td><span class="el_class">org.junit.runners.Suite</span></td><td><code>154944342f498508</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.FrameworkField</span></td><td><code>7e72cbdad175a997</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.FrameworkMember</span></td><td><code>bfd059486f267475</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.FrameworkMethod</span></td><td><code>f293b82d5aa86323</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.FrameworkMethod.1</span></td><td><code>8fd5e02769c0e0c2</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.MultipleFailureException</span></td><td><code>187a72c573c34bac</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.RunnerBuilder</span></td><td><code>585cad2d320dc86e</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.Statement</span></td><td><code>9a75aa5de27bf4d5</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.TestClass</span></td><td><code>7e71209792391ee8</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.TestClass.FieldComparator</span></td><td><code>1b96cd3d5c4aeb07</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.TestClass.MethodComparator</span></td><td><code>0369eb29eb04248a</code></td></tr><tr><td><span class="el_class">org.junit.validator.AnnotationValidatorFactory</span></td><td><code>e1e5570798173ab9</code></td></tr><tr><td><span class="el_class">org.junit.validator.AnnotationsValidator</span></td><td><code>6cbe8454c9a93bb8</code></td></tr><tr><td><span class="el_class">org.junit.validator.AnnotationsValidator.AnnotatableValidator</span></td><td><code>d211a963f22be103</code></td></tr><tr><td><span class="el_class">org.junit.validator.AnnotationsValidator.ClassValidator</span></td><td><code>1b463c4e6642e880</code></td></tr><tr><td><span class="el_class">org.junit.validator.AnnotationsValidator.FieldValidator</span></td><td><code>64068b954dc56a31</code></td></tr><tr><td><span class="el_class">org.junit.validator.AnnotationsValidator.MethodValidator</span></td><td><code>f16b57f17c787036</code></td></tr><tr><td><span class="el_class">org.junit.validator.PublicClassValidator</span></td><td><code>3bac248cf06b18e4</code></td></tr><tr><td><span class="el_class">org.mockito.Answers</span></td><td><code>afd86bd70185fc83</code></td></tr><tr><td><span class="el_class">org.mockito.Mockito</span></td><td><code>5e987adfdd19a5b2</code></td></tr><tr><td><span class="el_class">org.mockito.configuration.DefaultMockitoConfiguration</span></td><td><code>b174879ae8ed115e</code></td></tr><tr><td><span class="el_class">org.mockito.internal.MockitoCore</span></td><td><code>f49bfbc3fe5350e5</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.CaptorAnnotationProcessor</span></td><td><code>2f21a4570b50b64a</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.ClassPathLoader</span></td><td><code>173a7c62160e6dbf</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.DefaultDoNotMockEnforcer</span></td><td><code>6a7cb49285062e7d</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.GlobalConfiguration</span></td><td><code>0df96c19dabdcfc0</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.IndependentAnnotationEngine</span></td><td><code>54aaab1155cc41fd</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.InjectingAnnotationEngine</span></td><td><code>3402d3906098d7e2</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.MockAnnotationProcessor</span></td><td><code>f32d9954d5c65205</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.SpyAnnotationEngine</span></td><td><code>6b53375c8a8a5cc1</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.plugins.DefaultMockitoPlugins</span></td><td><code>f2b7ceb1ff6789f3</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.plugins.DefaultPluginSwitch</span></td><td><code>bae35df711d1f747</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.plugins.PluginFinder</span></td><td><code>bd3cbb4ee283ccc1</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.plugins.PluginInitializer</span></td><td><code>7b55758cab21a0db</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.plugins.PluginLoader</span></td><td><code>1702b486e8f8c9ad</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.plugins.PluginRegistry</span></td><td><code>edba7ea1c6a85364</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.plugins.Plugins</span></td><td><code>b0a44acc68acdddb</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.DelegatingMethod</span></td><td><code>aa9a3605cadc5938</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.MockSettingsImpl</span></td><td><code>3040d7b3b87e5329</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.SuspendMethod</span></td><td><code>5807a496dfc9c4c6</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.ByteBuddyCrossClassLoaderSerializationSupport</span></td><td><code>cc16221692a6ad40</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.BytecodeGenerator</span></td><td><code>b96181544d17b32a</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker</span></td><td><code>a1a0ac895421946d</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator</span></td><td><code>4d280bd4890c7bfc</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.ParameterWritingVisitorWrapper</span></td><td><code>f687cffac707cab0</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.ParameterWritingVisitorWrapper.MethodParameterStrippingMethodVisitor</span></td><td><code>f73bf14929b93218</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.ParameterWritingVisitorWrapper.ParameterAddingClassVisitor</span></td><td><code>d9e075cf41f65b6b</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker</span></td><td><code>60d0c826d258f2c7</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.1</span></td><td><code>8ed606a1d3b15b19</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.MockFeatures</span></td><td><code>3948e31575d7accd</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.MockMethodAdvice</span></td><td><code>f2359792dc3778e4</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.MockMethodAdvice.ConstructorShortcut</span></td><td><code>e37fbd5282bb870b</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.MockMethodAdvice.SelfCallInfo</span></td><td><code>23361b97116d3bc6</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.MockMethodInterceptor</span></td><td><code>0cc689df0bc804c0</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.DispatcherDefaultingToRealMethod</span></td><td><code>dcca41190d27ae99</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.ModuleHandler</span></td><td><code>a9609957ab4bbbbb</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.ModuleHandler.ModuleSystemFound</span></td><td><code>8d938a4ac4779d75</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.StackWalkerChecker</span></td><td><code>68e569e3f7178506</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.SubclassBytecodeGenerator</span></td><td><code>4c19068b417bbacb</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.SubclassInjectionLoader</span></td><td><code>b44aeab62a314e0f</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.SubclassInjectionLoader.WithReflection</span></td><td><code>4fa50c5021fa78c0</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator</span></td><td><code>9b77b7f9f15ce65b</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator.MockitoMockKey</span></td><td><code>6ab1c48e921f0e50</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator.TypeCachingLock</span></td><td><code>f3718822abb34b6b</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.TypeSupport</span></td><td><code>d98a4f5abd337730</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.instance.DefaultInstantiatorProvider</span></td><td><code>844386c7887007f1</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.instance.ObjenesisInstantiator</span></td><td><code>7a7c1771759c8b2f</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.settings.CreationSettings</span></td><td><code>1d27e65e4db303b9</code></td></tr><tr><td><span class="el_class">org.mockito.internal.debugging.LocationFactory</span></td><td><code>20c7d5b8c58d83b6</code></td></tr><tr><td><span class="el_class">org.mockito.internal.debugging.LocationFactory.DefaultLocationFactory</span></td><td><code>f8e464fb84825981</code></td></tr><tr><td><span class="el_class">org.mockito.internal.debugging.LocationImpl</span></td><td><code>530a4709e6947f60</code></td></tr><tr><td><span class="el_class">org.mockito.internal.debugging.LocationImpl.MetadataShim</span></td><td><code>e0e02617575176a4</code></td></tr><tr><td><span class="el_class">org.mockito.internal.exceptions.stacktrace.DefaultStackTraceCleaner</span></td><td><code>ccefdaf75b25508d</code></td></tr><tr><td><span class="el_class">org.mockito.internal.exceptions.stacktrace.DefaultStackTraceCleanerProvider</span></td><td><code>b96ca03f68c6b0bc</code></td></tr><tr><td><span class="el_class">org.mockito.internal.handler.InvocationNotifierHandler</span></td><td><code>81a88d2a9823ca2e</code></td></tr><tr><td><span class="el_class">org.mockito.internal.handler.MockHandlerFactory</span></td><td><code>60aaf611c9f037ba</code></td></tr><tr><td><span class="el_class">org.mockito.internal.handler.MockHandlerImpl</span></td><td><code>40af730c41726d19</code></td></tr><tr><td><span class="el_class">org.mockito.internal.handler.NullResultGuardian</span></td><td><code>887855f598dc7f26</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.ArgumentsProcessor</span></td><td><code>48a63d334fbe1568</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.DefaultInvocationFactory</span></td><td><code>fd7a2f1ca0abf244</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.InterceptedInvocation</span></td><td><code>2bc1759562590122</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.InterceptedInvocation.1</span></td><td><code>a808ee7e12b0c370</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.InvocationMatcher</span></td><td><code>a60a277cde788c00</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.InvocationMatcher.1</span></td><td><code>d5c4b96c4388ebd1</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.MatcherApplicationStrategy</span></td><td><code>c26110ae251954b2</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.MatchersBinder</span></td><td><code>7855054a8c7718ee</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.RealMethod.IsIllegal</span></td><td><code>64f3caff97edef01</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.StubInfoImpl</span></td><td><code>9766984c92e9959b</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.TypeSafeMatching</span></td><td><code>db8fac8befb40512</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.mockref.MockWeakReference</span></td><td><code>1fbf38ee01ef223b</code></td></tr><tr><td><span class="el_class">org.mockito.internal.listeners.StubbingLookupNotifier</span></td><td><code>6f87fdb14780b091</code></td></tr><tr><td><span class="el_class">org.mockito.internal.progress.ArgumentMatcherStorageImpl</span></td><td><code>bd022035831d5c7c</code></td></tr><tr><td><span class="el_class">org.mockito.internal.progress.MockingProgressImpl</span></td><td><code>b4b478523e99786f</code></td></tr><tr><td><span class="el_class">org.mockito.internal.progress.MockingProgressImpl.1</span></td><td><code>9f7db825fdcdf194</code></td></tr><tr><td><span class="el_class">org.mockito.internal.progress.SequenceNumber</span></td><td><code>a68ee1dd45f51b97</code></td></tr><tr><td><span class="el_class">org.mockito.internal.progress.ThreadSafeMockingProgress</span></td><td><code>452aa6e38ddff43e</code></td></tr><tr><td><span class="el_class">org.mockito.internal.progress.ThreadSafeMockingProgress.1</span></td><td><code>79ae9726492f0c4f</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.BaseStubbing</span></td><td><code>7fb9abb0c3eadb7f</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.ConsecutiveStubbing</span></td><td><code>557234368bf5ca41</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.DoAnswerStyleStubbing</span></td><td><code>6e7ca0308caa0784</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.InvocationContainerImpl</span></td><td><code>67208a7429ee203f</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.OngoingStubbingImpl</span></td><td><code>747b28f7f0499aba</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.StubbedInvocationMatcher</span></td><td><code>73693c29dbd5f1d4</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.answers.CallsRealMethods</span></td><td><code>e57edbc68b0e39e6</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.answers.DefaultAnswerValidator</span></td><td><code>bc157688cbf26d9c</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.answers.InvocationInfo</span></td><td><code>35c4a7d4431e2604</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.answers.Returns</span></td><td><code>419d0de7c8cd9ec2</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.defaultanswers.GloballyConfiguredAnswer</span></td><td><code>b4af5d0cc4127c43</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.defaultanswers.ReturnsDeepStubs</span></td><td><code>9290a19f5dbdf1b2</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.defaultanswers.ReturnsEmptyValues</span></td><td><code>d6ed669583d1bf96</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.defaultanswers.ReturnsMocks</span></td><td><code>99d9220ab6ee9e86</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.defaultanswers.ReturnsMoreEmptyValues</span></td><td><code>708bd411a28382b5</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.defaultanswers.ReturnsSmartNulls</span></td><td><code>f434f2f732e6e80e</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.defaultanswers.TriesToReturnSelf</span></td><td><code>13e6f22c3923267d</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.Checks</span></td><td><code>693b7ec3dc9db88a</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.ConsoleMockitoLogger</span></td><td><code>8eb43018d32cf683</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.KotlinInlineClassUtil</span></td><td><code>8f2e65801baf9ad5</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.MockCreationValidator</span></td><td><code>83a10f2760252cf3</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.MockNameImpl</span></td><td><code>009cd5fc276ed0dd</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.MockUtil</span></td><td><code>8cedd1d6aa623c6c</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.ObjectMethodsGuru</span></td><td><code>e958146f93547352</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.Primitives</span></td><td><code>6b6a08aaf147839f</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.StringUtil</span></td><td><code>0a51b9987b23cb8a</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.collections.Iterables</span></td><td><code>f7eb3a38de601237</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.concurrent.DetachedThreadLocal</span></td><td><code>24c845c0cee0c23b</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.concurrent.DetachedThreadLocal.1</span></td><td><code>defaf890898faa64</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.concurrent.DetachedThreadLocal.Cleaner</span></td><td><code>fe82f09eda153c82</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.concurrent.WeakConcurrentMap</span></td><td><code>317df0cbe9bf65e4</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.concurrent.WeakConcurrentMap.LatentKey</span></td><td><code>49d0008ff01c2270</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.concurrent.WeakConcurrentMap.WeakKey</span></td><td><code>c9b8ab481aee9c32</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.concurrent.WeakConcurrentMap.WithInlinedExpunction</span></td><td><code>2900bb8f66594337</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.concurrent.WeakConcurrentSet</span></td><td><code>01665a2956990716</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.concurrent.WeakConcurrentSet.Cleaner</span></td><td><code>8e47207f365780a7</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.reflection.GenericMetadataSupport</span></td><td><code>fa7ecde5970c0e5d</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.reflection.GenericMetadataSupport.FromClassGenericMetadataSupport</span></td><td><code>99c88b2ac93b8f3f</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.reflection.GenericMetadataSupport.NotGenericReturnTypeSupport</span></td><td><code>8c611ef213f94120</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.reflection.InstrumentationMemberAccessor</span></td><td><code>9e6d6acd35084d39</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.reflection.ModuleMemberAccessor</span></td><td><code>df6459cdb157634f</code></td></tr><tr><td><span class="el_class">org.mockito.internal.verification.DefaultRegisteredInvocations</span></td><td><code>48184ff2108397ec</code></td></tr><tr><td><span class="el_class">org.mockito.mock.MockType</span></td><td><code>0b5105452bbd0790</code></td></tr><tr><td><span class="el_class">org.mockito.mock.SerializableMode</span></td><td><code>d8db118920e53367</code></td></tr><tr><td><span class="el_class">org.mockito.plugins.DoNotMockEnforcer</span></td><td><code>d84a80636a3b2091</code></td></tr><tr><td><span class="el_class">org.mockito.plugins.DoNotMockEnforcer.Cache</span></td><td><code>7ad724250d9a8fd2</code></td></tr><tr><td><span class="el_class">org.objenesis.ObjenesisBase</span></td><td><code>0c1d2fd83029257f</code></td></tr><tr><td><span class="el_class">org.objenesis.ObjenesisStd</span></td><td><code>f35c83a75caea811</code></td></tr><tr><td><span class="el_class">org.objenesis.strategy.BaseInstantiatorStrategy</span></td><td><code>b0aaa6460452f5ce</code></td></tr><tr><td><span class="el_class">org.objenesis.strategy.StdInstantiatorStrategy</span></td><td><code>abae05ba56ea35a6</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>cea799461486d92b</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.NonBaseLocaleDataMetaInfo</span></td><td><code>054ae92f6b367f49</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/pom.xml b/pom.xml
    index 8cd17ce053..c03efa3787 100644
    --- a/pom.xml
    +++ b/pom.xml
    @@ -156,6 +156,7 @@
                             </configuration>
                         </plugin>
                     </plugins>
    +
                 </build>
             </profile>
             <profile>
    @@ -238,6 +239,27 @@
                                 </execution>
                             </executions>
                         </plugin>
    +                    <plugin>
    +                        <groupId>org.jacoco</groupId>
    +                        <artifactId>jacoco-maven-plugin</artifactId>
    +                        <version>0.8.11</version>
    +                        <executions>
    +                            <execution>
    +                                <id>prepare-agent</id>
    +                                <goals>
    +                                    <goal>prepare-agent</goal>
    +                                </goals>
    +                            </execution>
    +                            <execution>
    +                                <id>report</id>
    +                                <phase>prepare-package</phase>
    +                                <goals>
    +                                    <goal>report</goal>
    +                                </goals>
    +                            </execution>
    +                        </executions>
    +                    </plugin>
    +
                         <plugin>
                             <groupId>org.apache.maven.plugins</groupId>
                             <artifactId>maven-gpg-plugin</artifactId>
    
    From e707f463cf8611d635b29b28e0f0416d202ccab6 Mon Sep 17 00:00:00 2001
    From: Ovaiz Ali <ov778752@dal.ca>
    Date: Thu, 29 Feb 2024 00:24:39 -0400
    Subject: [PATCH 2/6] Add Test Cases for JVM
    
    ---
     .../InstrumentedHttpClientsTimerTest.java     |  9 -----
     .../jvm/CachedThreadStatesGaugeSetTest.java   | 36 +++++++++++++++++++
     2 files changed, 36 insertions(+), 9 deletions(-)
     create mode 100644 metrics-jvm/src/test/java/com/codahale/metrics/jvm/CachedThreadStatesGaugeSetTest.java
    
    diff --git a/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedHttpClientsTimerTest.java b/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedHttpClientsTimerTest.java
    index 93da34cb61..4bbe51043e 100644
    --- a/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedHttpClientsTimerTest.java
    +++ b/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedHttpClientsTimerTest.java
    @@ -138,8 +138,6 @@ public void timerIsStoppedCorrectlyWithProvidedFutureCallbackFailed() throws Exc
             verify(context, timeout(200).times(1)).stop();
         }
     
    -//    My
    -
         /**
          * Test method to verify that the timer is stopped correctly when multiple requests are executed concurrently.
          *
    @@ -171,9 +169,7 @@ public void timerIsStoppedCorrectlyWithConcurrentRequests() throws Exception {
          * @throws Exception if an error occurs during the test execution
          */
         @Test
    -    @SuppressWarnings("unchecked")
         public void timerIsStoppedCorrectlyWithProvidedFutureCallbackCancelled() throws Exception {
    -        // Arrange
             HttpHost host = startServerWithGlobalRequestHandler(STATUS_OK);
             HttpGet get = new HttpGet("/?q=cancelled");
     
    @@ -182,11 +178,9 @@ public void timerIsStoppedCorrectlyWithProvidedFutureCallbackCancelled() throws
             // Timer hasn't been stopped prior to executing the request
             verify(context, never()).stop();
     
    -        // Act
             Future<HttpResponse> responseFuture = asyncHttpClient.execute(host, get, futureCallback);
             responseFuture.cancel(true); // Cancel the future
     
    -        // Assert
             // After the computation is cancelled, the timer must be stopped
             verify(context, timeout(200).times(1)).stop();
         }
    @@ -199,7 +193,6 @@ public void timerIsStoppedCorrectlyWithProvidedFutureCallbackCancelled() throws
         @Test
         @SuppressWarnings("unchecked")
         public void timerIsStoppedCorrectlyWithProvidedFutureCallbackAndFailure() throws Exception {
    -        // Arrange
             HttpHost host = startServerWithGlobalRequestHandler(STATUS_OK);
             HttpGet get = new HttpGet("/?q=failure");
     
    @@ -208,11 +201,9 @@ public void timerIsStoppedCorrectlyWithProvidedFutureCallbackAndFailure() throws
             // Timer hasn't been stopped prior to executing the request
             verify(context, never()).stop();
     
    -        // Act
             Future<HttpResponse> responseFuture = asyncHttpClient.execute(host, get, futureCallback);
             responseFuture.get(20, TimeUnit.SECONDS); // Wait for the request to complete
     
    -        // Assert
             // After the computation fails, the timer must be stopped
             verify(context, timeout(200).times(1)).stop();
         }
    diff --git a/metrics-jvm/src/test/java/com/codahale/metrics/jvm/CachedThreadStatesGaugeSetTest.java b/metrics-jvm/src/test/java/com/codahale/metrics/jvm/CachedThreadStatesGaugeSetTest.java
    new file mode 100644
    index 0000000000..dc2791b081
    --- /dev/null
    +++ b/metrics-jvm/src/test/java/com/codahale/metrics/jvm/CachedThreadStatesGaugeSetTest.java
    @@ -0,0 +1,36 @@
    +package com.codahale.metrics.jvm;
    +
    +import org.junit.Test;
    +
    +import java.lang.management.ManagementFactory;
    +import java.lang.management.ThreadInfo;
    +import java.lang.management.ThreadMXBean;
    +import java.util.concurrent.TimeUnit;
    +
    +import static org.junit.Assert.assertNotNull;
    +
    +public class CachedThreadStatesGaugeSetTest {
    +
    +    /**
    +     * Test method to verify that the thread state gauges obtained from the CachedThreadStatesGaugeSet
    +     * are not null.
    +     */
    +    @Test
    +    public void testThreadStatesGaugesAreNotNull() {
    +        // Set cache interval to 1 second for testing
    +        long interval = 1;
    +        TimeUnit unit = TimeUnit.SECONDS;
    +
    +        // Create a new CachedThreadStatesGaugeSet instance
    +        CachedThreadStatesGaugeSet gaugeSet = new CachedThreadStatesGaugeSet(interval, unit);
    +
    +        // Retrieve the thread states gauges
    +        ThreadMXBean threadMXBean = ManagementFactory.getThreadMXBean();
    +        ThreadInfo[] threadInfos = threadMXBean.dumpAllThreads(true, true);
    +        assertNotNull(threadInfos);
    +
    +        // Ensure that the gauges are not null
    +        assertNotNull(gaugeSet.getThreadInfo());
    +    }
    +
    +}
    
    From 3e6442c2ef4778f00ccc995c3635783d5ed58848 Mon Sep 17 00:00:00 2001
    From: Ovaiz Ali <ov778752@dal.ca>
    Date: Thu, 29 Feb 2024 23:44:51 -0400
    Subject: [PATCH 3/6] Add Final Report
    
    ---
     .../css/coverage.css                          |  154 ++
     .../css/idea.min.css                          |  118 ++
     .../img/arrowDown.gif                         |  Bin 0 -> 89 bytes
     .../img/arrowUp.gif                           |  Bin 0 -> 91 bytes
     .../index.html                                | 1314 ++++++++++++++++
     .../index_SORT_BY_BLOCK.html                  | 1314 ++++++++++++++++
     .../index_SORT_BY_BLOCK_DESC.html             | 1314 ++++++++++++++++
     .../index_SORT_BY_CLASS.html                  | 1314 ++++++++++++++++
     .../index_SORT_BY_CLASS_DESC.html             | 1314 ++++++++++++++++
     .../index_SORT_BY_LINE.html                   | 1314 ++++++++++++++++
     .../index_SORT_BY_LINE_DESC.html              | 1314 ++++++++++++++++
     .../index_SORT_BY_METHOD.html                 | 1314 ++++++++++++++++
     .../index_SORT_BY_METHOD_DESC.html            | 1314 ++++++++++++++++
     .../index_SORT_BY_NAME_DESC.html              | 1314 ++++++++++++++++
     .../js/highlight.min.js                       | 1388 +++++++++++++++++
     .../js/highlightjs-line-numbers.min.js        |   24 +
     .../ns-1/index.html                           | 1238 +++++++++++++++
     .../ns-1/index_SORT_BY_BLOCK.html             | 1238 +++++++++++++++
     .../ns-1/index_SORT_BY_BLOCK_DESC.html        | 1238 +++++++++++++++
     .../ns-1/index_SORT_BY_CLASS.html             | 1238 +++++++++++++++
     .../ns-1/index_SORT_BY_CLASS_DESC.html        | 1238 +++++++++++++++
     .../ns-1/index_SORT_BY_LINE.html              | 1238 +++++++++++++++
     .../ns-1/index_SORT_BY_LINE_DESC.html         | 1238 +++++++++++++++
     .../ns-1/index_SORT_BY_METHOD.html            | 1238 +++++++++++++++
     .../ns-1/index_SORT_BY_METHOD_DESC.html       | 1238 +++++++++++++++
     .../ns-1/index_SORT_BY_NAME_DESC.html         | 1238 +++++++++++++++
     .../ns-1/sources/source-1.html                |  178 +++
     .../ns-1/sources/source-10.html               |  203 +++
     .../ns-1/sources/source-11.html               |  441 ++++++
     .../ns-1/sources/source-12.html               |  210 +++
     .../ns-1/sources/source-13.html               |  137 ++
     .../ns-1/sources/source-14.html               |  136 ++
     .../ns-1/sources/source-15.html               | 1026 ++++++++++++
     .../ns-1/sources/source-16.html               |  275 ++++
     .../ns-1/sources/source-17.html               | 1097 +++++++++++++
     .../ns-1/sources/source-18.html               |  196 +++
     .../ns-1/sources/source-19.html               |  467 ++++++
     .../ns-1/sources/source-1a.html               |  211 +++
     .../ns-1/sources/source-1b.html               |  782 ++++++++++
     .../ns-1/sources/source-1c.html               |  205 +++
     .../ns-1/sources/source-1d.html               |  217 +++
     .../ns-1/sources/source-1e.html               |  161 ++
     .../ns-1/sources/source-1f.html               |  149 ++
     .../ns-1/sources/source-2.html                |  333 ++++
     .../ns-1/sources/source-20.html               |  301 ++++
     .../ns-1/sources/source-21.html               |  199 +++
     .../ns-1/sources/source-22.html               |  147 ++
     .../ns-1/sources/source-23.html               |  277 ++++
     .../ns-1/sources/source-24.html               |  333 ++++
     .../ns-1/sources/source-25.html               |  174 +++
     .../ns-1/sources/source-26.html               |  281 ++++
     .../ns-1/sources/source-27.html               |  325 ++++
     .../ns-1/sources/source-28.html               |  116 ++
     .../ns-1/sources/source-29.html               |   78 +
     .../ns-1/sources/source-2a.html               |   85 +
     .../ns-1/sources/source-2b.html               |  104 ++
     .../ns-1/sources/source-2c.html               |  116 ++
     .../ns-1/sources/source-2d.html               |   81 +
     .../ns-1/sources/source-2e.html               |   82 +
     .../ns-1/sources/source-2f.html               |   81 +
     .../ns-1/sources/source-3.html                |  231 +++
     .../ns-1/sources/source-30.html               |   85 +
     .../ns-1/sources/source-31.html               |   89 ++
     .../ns-1/sources/source-32.html               |  103 ++
     .../ns-1/sources/source-4.html                |  490 ++++++
     .../ns-1/sources/source-5.html                |  160 ++
     .../ns-1/sources/source-6.html                |  477 ++++++
     .../ns-1/sources/source-7.html                |  147 ++
     .../ns-1/sources/source-8.html                |  137 ++
     .../ns-1/sources/source-9.html                |  212 +++
     .../ns-1/sources/source-a.html                |  181 +++
     .../ns-1/sources/source-b.html                |  311 ++++
     .../ns-1/sources/source-c.html                |  125 ++
     .../ns-1/sources/source-d.html                |  162 ++
     .../ns-1/sources/source-e.html                |  390 +++++
     .../ns-1/sources/source-f.html                |  465 ++++++
     .../ns-10/index.html                          |  305 ++++
     .../ns-10/index_SORT_BY_BLOCK.html            |  305 ++++
     .../ns-10/index_SORT_BY_BLOCK_DESC.html       |  305 ++++
     .../ns-10/index_SORT_BY_CLASS.html            |  305 ++++
     .../ns-10/index_SORT_BY_CLASS_DESC.html       |  305 ++++
     .../ns-10/index_SORT_BY_LINE.html             |  305 ++++
     .../ns-10/index_SORT_BY_LINE_DESC.html        |  305 ++++
     .../ns-10/index_SORT_BY_METHOD.html           |  305 ++++
     .../ns-10/index_SORT_BY_METHOD_DESC.html      |  305 ++++
     .../ns-10/index_SORT_BY_NAME_DESC.html        |  305 ++++
     .../ns-10/sources/source-1.html               |  112 ++
     .../ns-10/sources/source-2.html               |  119 ++
     .../ns-10/sources/source-3.html               |  135 ++
     .../ns-10/sources/source-4.html               |  116 ++
     .../ns-10/sources/source-5.html               |  422 +++++
     .../ns-10/sources/source-6.html               |  239 +++
     .../ns-10/sources/source-7.html               |  124 ++
     .../ns-10/sources/source-8.html               |   78 +
     .../ns-11/index.html                          |  170 ++
     .../ns-11/index_SORT_BY_BLOCK.html            |  170 ++
     .../ns-11/index_SORT_BY_BLOCK_DESC.html       |  170 ++
     .../ns-11/index_SORT_BY_CLASS.html            |  170 ++
     .../ns-11/index_SORT_BY_CLASS_DESC.html       |  170 ++
     .../ns-11/index_SORT_BY_LINE.html             |  170 ++
     .../ns-11/index_SORT_BY_LINE_DESC.html        |  170 ++
     .../ns-11/index_SORT_BY_METHOD.html           |  170 ++
     .../ns-11/index_SORT_BY_METHOD_DESC.html      |  170 ++
     .../ns-11/index_SORT_BY_NAME_DESC.html        |  170 ++
     .../ns-11/sources/source-1.html               |  152 ++
     .../ns-11/sources/source-2.html               |  145 ++
     .../ns-12/index.html                          |  278 ++++
     .../ns-12/index_SORT_BY_BLOCK.html            |  278 ++++
     .../ns-12/index_SORT_BY_BLOCK_DESC.html       |  278 ++++
     .../ns-12/index_SORT_BY_CLASS.html            |  278 ++++
     .../ns-12/index_SORT_BY_CLASS_DESC.html       |  278 ++++
     .../ns-12/index_SORT_BY_LINE.html             |  278 ++++
     .../ns-12/index_SORT_BY_LINE_DESC.html        |  278 ++++
     .../ns-12/index_SORT_BY_METHOD.html           |  278 ++++
     .../ns-12/index_SORT_BY_METHOD_DESC.html      |  278 ++++
     .../ns-12/index_SORT_BY_NAME_DESC.html        |  278 ++++
     .../ns-12/sources/source-1.html               |  116 ++
     .../ns-12/sources/source-2.html               |  246 +++
     .../ns-12/sources/source-3.html               |  136 ++
     .../ns-12/sources/source-4.html               |  116 ++
     .../ns-12/sources/source-5.html               |  117 ++
     .../ns-12/sources/source-6.html               |  151 ++
     .../ns-12/sources/source-7.html               |   89 ++
     .../ns-13/index.html                          |  170 ++
     .../ns-13/index_SORT_BY_BLOCK.html            |  170 ++
     .../ns-13/index_SORT_BY_BLOCK_DESC.html       |  170 ++
     .../ns-13/index_SORT_BY_CLASS.html            |  170 ++
     .../ns-13/index_SORT_BY_CLASS_DESC.html       |  170 ++
     .../ns-13/index_SORT_BY_LINE.html             |  170 ++
     .../ns-13/index_SORT_BY_LINE_DESC.html        |  170 ++
     .../ns-13/index_SORT_BY_METHOD.html           |  170 ++
     .../ns-13/index_SORT_BY_METHOD_DESC.html      |  170 ++
     .../ns-13/index_SORT_BY_NAME_DESC.html        |  170 ++
     .../ns-13/sources/source-1.html               |  831 ++++++++++
     .../ns-13/sources/source-2.html               |  201 +++
     .../ns-14/index.html                          |  170 ++
     .../ns-14/index_SORT_BY_BLOCK.html            |  170 ++
     .../ns-14/index_SORT_BY_BLOCK_DESC.html       |  170 ++
     .../ns-14/index_SORT_BY_CLASS.html            |  170 ++
     .../ns-14/index_SORT_BY_CLASS_DESC.html       |  170 ++
     .../ns-14/index_SORT_BY_LINE.html             |  170 ++
     .../ns-14/index_SORT_BY_LINE_DESC.html        |  170 ++
     .../ns-14/index_SORT_BY_METHOD.html           |  170 ++
     .../ns-14/index_SORT_BY_METHOD_DESC.html      |  170 ++
     .../ns-14/index_SORT_BY_NAME_DESC.html        |  170 ++
     .../ns-14/sources/source-1.html               |  832 ++++++++++
     .../ns-14/sources/source-2.html               |  201 +++
     .../ns-15/index.html                          |  251 +++
     .../ns-15/index_SORT_BY_BLOCK.html            |  251 +++
     .../ns-15/index_SORT_BY_BLOCK_DESC.html       |  251 +++
     .../ns-15/index_SORT_BY_CLASS.html            |  251 +++
     .../ns-15/index_SORT_BY_CLASS_DESC.html       |  251 +++
     .../ns-15/index_SORT_BY_LINE.html             |  251 +++
     .../ns-15/index_SORT_BY_LINE_DESC.html        |  251 +++
     .../ns-15/index_SORT_BY_METHOD.html           |  251 +++
     .../ns-15/index_SORT_BY_METHOD_DESC.html      |  251 +++
     .../ns-15/index_SORT_BY_NAME_DESC.html        |  251 +++
     .../ns-15/sources/source-1.html               |  193 +++
     .../ns-15/sources/source-2.html               |  754 +++++++++
     .../ns-15/sources/source-3.html               |  708 +++++++++
     .../ns-15/sources/source-4.html               |  286 ++++
     .../ns-16/index.html                          |  170 ++
     .../ns-16/index_SORT_BY_BLOCK.html            |  170 ++
     .../ns-16/index_SORT_BY_BLOCK_DESC.html       |  170 ++
     .../ns-16/index_SORT_BY_CLASS.html            |  170 ++
     .../ns-16/index_SORT_BY_CLASS_DESC.html       |  170 ++
     .../ns-16/index_SORT_BY_LINE.html             |  170 ++
     .../ns-16/index_SORT_BY_LINE_DESC.html        |  170 ++
     .../ns-16/index_SORT_BY_METHOD.html           |  170 ++
     .../ns-16/index_SORT_BY_METHOD_DESC.html      |  170 ++
     .../ns-16/index_SORT_BY_NAME_DESC.html        |  170 ++
     .../ns-16/sources/source-1.html               |  173 ++
     .../ns-16/sources/source-2.html               | 1061 +++++++++++++
     .../ns-16/sources/source-3.html               |   85 +
     .../ns-17/index.html                          |  170 ++
     .../ns-17/index_SORT_BY_BLOCK.html            |  170 ++
     .../ns-17/index_SORT_BY_BLOCK_DESC.html       |  170 ++
     .../ns-17/index_SORT_BY_CLASS.html            |  170 ++
     .../ns-17/index_SORT_BY_CLASS_DESC.html       |  170 ++
     .../ns-17/index_SORT_BY_LINE.html             |  170 ++
     .../ns-17/index_SORT_BY_LINE_DESC.html        |  170 ++
     .../ns-17/index_SORT_BY_METHOD.html           |  170 ++
     .../ns-17/index_SORT_BY_METHOD_DESC.html      |  170 ++
     .../ns-17/index_SORT_BY_NAME_DESC.html        |  170 ++
     .../ns-17/sources/source-1.html               |  217 +++
     .../ns-17/sources/source-2.html               |  489 ++++++
     .../ns-18/index.html                          |  440 ++++++
     .../ns-18/index_SORT_BY_BLOCK.html            |  440 ++++++
     .../ns-18/index_SORT_BY_BLOCK_DESC.html       |  440 ++++++
     .../ns-18/index_SORT_BY_CLASS.html            |  440 ++++++
     .../ns-18/index_SORT_BY_CLASS_DESC.html       |  440 ++++++
     .../ns-18/index_SORT_BY_LINE.html             |  440 ++++++
     .../ns-18/index_SORT_BY_LINE_DESC.html        |  440 ++++++
     .../ns-18/index_SORT_BY_METHOD.html           |  440 ++++++
     .../ns-18/index_SORT_BY_METHOD_DESC.html      |  440 ++++++
     .../ns-18/index_SORT_BY_NAME_DESC.html        |  440 ++++++
     .../ns-18/sources/source-1.html               |  156 ++
     .../ns-18/sources/source-2.html               |  184 +++
     .../ns-18/sources/source-3.html               |  139 ++
     .../ns-18/sources/source-4.html               |  123 ++
     .../ns-18/sources/source-5.html               |  154 ++
     .../ns-18/sources/source-6.html               |  157 ++
     .../ns-18/sources/source-7.html               |  165 ++
     .../ns-18/sources/source-8.html               |  155 ++
     .../ns-18/sources/source-9.html               |  274 ++++
     .../ns-18/sources/source-a.html               |  169 ++
     .../ns-18/sources/source-b.html               |  217 +++
     .../ns-18/sources/source-c.html               |  185 +++
     .../ns-19/index.html                          |  143 ++
     .../ns-19/index_SORT_BY_BLOCK.html            |  143 ++
     .../ns-19/index_SORT_BY_BLOCK_DESC.html       |  143 ++
     .../ns-19/index_SORT_BY_CLASS.html            |  143 ++
     .../ns-19/index_SORT_BY_CLASS_DESC.html       |  143 ++
     .../ns-19/index_SORT_BY_LINE.html             |  143 ++
     .../ns-19/index_SORT_BY_LINE_DESC.html        |  143 ++
     .../ns-19/index_SORT_BY_METHOD.html           |  143 ++
     .../ns-19/index_SORT_BY_METHOD_DESC.html      |  143 ++
     .../ns-19/index_SORT_BY_NAME_DESC.html        |  143 ++
     .../ns-19/sources/source-1.html               |  268 ++++
     .../ns-1a/index.html                          |  143 ++
     .../ns-1a/index_SORT_BY_BLOCK.html            |  143 ++
     .../ns-1a/index_SORT_BY_BLOCK_DESC.html       |  143 ++
     .../ns-1a/index_SORT_BY_CLASS.html            |  143 ++
     .../ns-1a/index_SORT_BY_CLASS_DESC.html       |  143 ++
     .../ns-1a/index_SORT_BY_LINE.html             |  143 ++
     .../ns-1a/index_SORT_BY_LINE_DESC.html        |  143 ++
     .../ns-1a/index_SORT_BY_METHOD.html           |  143 ++
     .../ns-1a/index_SORT_BY_METHOD_DESC.html      |  143 ++
     .../ns-1a/index_SORT_BY_NAME_DESC.html        |  143 ++
     .../ns-1a/sources/source-1.html               |  195 +++
     .../ns-1b/index.html                          |  223 +++
     .../ns-1b/index_SORT_BY_BLOCK.html            |  223 +++
     .../ns-1b/index_SORT_BY_BLOCK_DESC.html       |  223 +++
     .../ns-1b/index_SORT_BY_CLASS.html            |  223 +++
     .../ns-1b/index_SORT_BY_CLASS_DESC.html       |  223 +++
     .../ns-1b/index_SORT_BY_LINE.html             |  223 +++
     .../ns-1b/index_SORT_BY_LINE_DESC.html        |  223 +++
     .../ns-1b/index_SORT_BY_METHOD.html           |  223 +++
     .../ns-1b/index_SORT_BY_METHOD_DESC.html      |  223 +++
     .../ns-1b/index_SORT_BY_NAME_DESC.html        |  223 +++
     .../ns-1b/sources/source-1.html               |  387 +++++
     .../ns-1b/sources/source-2.html               |  152 ++
     .../ns-1b/sources/source-3.html               |  131 ++
     .../ns-1c/index.html                          |  278 ++++
     .../ns-1c/index_SORT_BY_BLOCK.html            |  278 ++++
     .../ns-1c/index_SORT_BY_BLOCK_DESC.html       |  278 ++++
     .../ns-1c/index_SORT_BY_CLASS.html            |  278 ++++
     .../ns-1c/index_SORT_BY_CLASS_DESC.html       |  278 ++++
     .../ns-1c/index_SORT_BY_LINE.html             |  278 ++++
     .../ns-1c/index_SORT_BY_LINE_DESC.html        |  278 ++++
     .../ns-1c/index_SORT_BY_METHOD.html           |  278 ++++
     .../ns-1c/index_SORT_BY_METHOD_DESC.html      |  278 ++++
     .../ns-1c/index_SORT_BY_NAME_DESC.html        |  278 ++++
     .../ns-1c/sources/source-1.html               |  293 ++++
     .../ns-1c/sources/source-2.html               |  183 +++
     .../ns-1c/sources/source-3.html               |  325 ++++
     .../ns-1c/sources/source-4.html               |  329 ++++
     .../ns-1c/sources/source-5.html               |  134 ++
     .../ns-1c/sources/source-6.html               |  159 ++
     .../ns-1d/index.html                          |  143 ++
     .../ns-1d/index_SORT_BY_BLOCK.html            |  143 ++
     .../ns-1d/index_SORT_BY_BLOCK_DESC.html       |  143 ++
     .../ns-1d/index_SORT_BY_CLASS.html            |  143 ++
     .../ns-1d/index_SORT_BY_CLASS_DESC.html       |  143 ++
     .../ns-1d/index_SORT_BY_LINE.html             |  143 ++
     .../ns-1d/index_SORT_BY_LINE_DESC.html        |  143 ++
     .../ns-1d/index_SORT_BY_METHOD.html           |  143 ++
     .../ns-1d/index_SORT_BY_METHOD_DESC.html      |  143 ++
     .../ns-1d/index_SORT_BY_NAME_DESC.html        |  143 ++
     .../ns-1d/sources/source-1.html               |  220 +++
     .../ns-1e/index.html                          |  195 +++
     .../ns-1e/index_SORT_BY_BLOCK.html            |  195 +++
     .../ns-1e/index_SORT_BY_BLOCK_DESC.html       |  195 +++
     .../ns-1e/index_SORT_BY_CLASS.html            |  195 +++
     .../ns-1e/index_SORT_BY_CLASS_DESC.html       |  195 +++
     .../ns-1e/index_SORT_BY_LINE.html             |  195 +++
     .../ns-1e/index_SORT_BY_LINE_DESC.html        |  195 +++
     .../ns-1e/index_SORT_BY_METHOD.html           |  195 +++
     .../ns-1e/index_SORT_BY_METHOD_DESC.html      |  195 +++
     .../ns-1e/index_SORT_BY_NAME_DESC.html        |  195 +++
     .../ns-1e/sources/source-1.html               |  907 +++++++++++
     .../ns-1e/sources/source-2.html               |  201 +++
     .../ns-1f/index.html                          |  251 +++
     .../ns-1f/index_SORT_BY_BLOCK.html            |  251 +++
     .../ns-1f/index_SORT_BY_BLOCK_DESC.html       |  251 +++
     .../ns-1f/index_SORT_BY_CLASS.html            |  251 +++
     .../ns-1f/index_SORT_BY_CLASS_DESC.html       |  251 +++
     .../ns-1f/index_SORT_BY_LINE.html             |  251 +++
     .../ns-1f/index_SORT_BY_LINE_DESC.html        |  251 +++
     .../ns-1f/index_SORT_BY_METHOD.html           |  251 +++
     .../ns-1f/index_SORT_BY_METHOD_DESC.html      |  251 +++
     .../ns-1f/index_SORT_BY_NAME_DESC.html        |  251 +++
     .../ns-1f/sources/source-1.html               |  193 +++
     .../ns-1f/sources/source-2.html               |  746 +++++++++
     .../ns-1f/sources/source-3.html               |  706 +++++++++
     .../ns-1f/sources/source-4.html               |  345 ++++
     .../ns-2/index.html                           |  143 ++
     .../ns-2/index_SORT_BY_BLOCK.html             |  143 ++
     .../ns-2/index_SORT_BY_BLOCK_DESC.html        |  143 ++
     .../ns-2/index_SORT_BY_CLASS.html             |  143 ++
     .../ns-2/index_SORT_BY_CLASS_DESC.html        |  143 ++
     .../ns-2/index_SORT_BY_LINE.html              |  143 ++
     .../ns-2/index_SORT_BY_LINE_DESC.html         |  143 ++
     .../ns-2/index_SORT_BY_METHOD.html            |  143 ++
     .../ns-2/index_SORT_BY_METHOD_DESC.html       |  143 ++
     .../ns-2/index_SORT_BY_NAME_DESC.html         |  143 ++
     .../ns-2/sources/source-1.html                |  127 ++
     .../ns-2/sources/source-2.html                |  107 ++
     .../ns-2/sources/source-3.html                |  113 ++
     .../ns-2/sources/source-4.html                |  121 ++
     .../ns-2/sources/source-5.html                |  133 ++
     .../ns-2/sources/source-6.html                |  107 ++
     .../ns-2/sources/source-7.html                |  103 ++
     .../ns-2/sources/source-8.html                |  121 ++
     .../ns-2/sources/source-9.html                |  116 ++
     .../ns-20/index.html                          |  251 +++
     .../ns-20/index_SORT_BY_BLOCK.html            |  251 +++
     .../ns-20/index_SORT_BY_BLOCK_DESC.html       |  251 +++
     .../ns-20/index_SORT_BY_CLASS.html            |  251 +++
     .../ns-20/index_SORT_BY_CLASS_DESC.html       |  251 +++
     .../ns-20/index_SORT_BY_LINE.html             |  251 +++
     .../ns-20/index_SORT_BY_LINE_DESC.html        |  251 +++
     .../ns-20/index_SORT_BY_METHOD.html           |  251 +++
     .../ns-20/index_SORT_BY_METHOD_DESC.html      |  251 +++
     .../ns-20/index_SORT_BY_NAME_DESC.html        |  251 +++
     .../ns-20/sources/source-1.html               |  193 +++
     .../ns-20/sources/source-2.html               |  745 +++++++++
     .../ns-20/sources/source-3.html               |  706 +++++++++
     .../ns-20/sources/source-4.html               |  345 ++++
     .../ns-21/index.html                          |  197 +++
     .../ns-21/index_SORT_BY_BLOCK.html            |  197 +++
     .../ns-21/index_SORT_BY_BLOCK_DESC.html       |  197 +++
     .../ns-21/index_SORT_BY_CLASS.html            |  197 +++
     .../ns-21/index_SORT_BY_CLASS_DESC.html       |  197 +++
     .../ns-21/index_SORT_BY_LINE.html             |  197 +++
     .../ns-21/index_SORT_BY_LINE_DESC.html        |  197 +++
     .../ns-21/index_SORT_BY_METHOD.html           |  197 +++
     .../ns-21/index_SORT_BY_METHOD_DESC.html      |  197 +++
     .../ns-21/index_SORT_BY_NAME_DESC.html        |  197 +++
     .../ns-21/sources/source-1.html               |  584 +++++++
     .../ns-21/sources/source-2.html               |  193 +++
     .../ns-21/sources/source-3.html               |  336 ++++
     .../ns-22/index.html                          |  167 ++
     .../ns-22/index_SORT_BY_BLOCK.html            |  167 ++
     .../ns-22/index_SORT_BY_BLOCK_DESC.html       |  167 ++
     .../ns-22/index_SORT_BY_CLASS.html            |  167 ++
     .../ns-22/index_SORT_BY_CLASS_DESC.html       |  167 ++
     .../ns-22/index_SORT_BY_LINE.html             |  167 ++
     .../ns-22/index_SORT_BY_LINE_DESC.html        |  167 ++
     .../ns-22/index_SORT_BY_METHOD.html           |  167 ++
     .../ns-22/index_SORT_BY_METHOD_DESC.html      |  167 ++
     .../ns-22/index_SORT_BY_NAME_DESC.html        |  167 ++
     .../ns-22/sources/source-1.html               |  348 +++++
     .../ns-23/index.html                          |  143 ++
     .../ns-23/index_SORT_BY_BLOCK.html            |  143 ++
     .../ns-23/index_SORT_BY_BLOCK_DESC.html       |  143 ++
     .../ns-23/index_SORT_BY_CLASS.html            |  143 ++
     .../ns-23/index_SORT_BY_CLASS_DESC.html       |  143 ++
     .../ns-23/index_SORT_BY_LINE.html             |  143 ++
     .../ns-23/index_SORT_BY_LINE_DESC.html        |  143 ++
     .../ns-23/index_SORT_BY_METHOD.html           |  143 ++
     .../ns-23/index_SORT_BY_METHOD_DESC.html      |  143 ++
     .../ns-23/index_SORT_BY_NAME_DESC.html        |  143 ++
     .../ns-23/sources/source-1.html               |  195 +++
     .../ns-24/index.html                          |  143 ++
     .../ns-24/index_SORT_BY_BLOCK.html            |  143 ++
     .../ns-24/index_SORT_BY_BLOCK_DESC.html       |  143 ++
     .../ns-24/index_SORT_BY_CLASS.html            |  143 ++
     .../ns-24/index_SORT_BY_CLASS_DESC.html       |  143 ++
     .../ns-24/index_SORT_BY_LINE.html             |  143 ++
     .../ns-24/index_SORT_BY_LINE_DESC.html        |  143 ++
     .../ns-24/index_SORT_BY_METHOD.html           |  143 ++
     .../ns-24/index_SORT_BY_METHOD_DESC.html      |  143 ++
     .../ns-24/index_SORT_BY_NAME_DESC.html        |  143 ++
     .../ns-24/sources/source-1.html               |  195 +++
     .../ns-25/index.html                          |  143 ++
     .../ns-25/index_SORT_BY_BLOCK.html            |  143 ++
     .../ns-25/index_SORT_BY_BLOCK_DESC.html       |  143 ++
     .../ns-25/index_SORT_BY_CLASS.html            |  143 ++
     .../ns-25/index_SORT_BY_CLASS_DESC.html       |  143 ++
     .../ns-25/index_SORT_BY_LINE.html             |  143 ++
     .../ns-25/index_SORT_BY_LINE_DESC.html        |  143 ++
     .../ns-25/index_SORT_BY_METHOD.html           |  143 ++
     .../ns-25/index_SORT_BY_METHOD_DESC.html      |  143 ++
     .../ns-25/index_SORT_BY_NAME_DESC.html        |  143 ++
     .../ns-25/sources/source-1.html               |  195 +++
     .../ns-26/index.html                          |  223 +++
     .../ns-26/index_SORT_BY_BLOCK.html            |  223 +++
     .../ns-26/index_SORT_BY_BLOCK_DESC.html       |  223 +++
     .../ns-26/index_SORT_BY_CLASS.html            |  223 +++
     .../ns-26/index_SORT_BY_CLASS_DESC.html       |  223 +++
     .../ns-26/index_SORT_BY_LINE.html             |  223 +++
     .../ns-26/index_SORT_BY_LINE_DESC.html        |  223 +++
     .../ns-26/index_SORT_BY_METHOD.html           |  223 +++
     .../ns-26/index_SORT_BY_METHOD_DESC.html      |  223 +++
     .../ns-26/index_SORT_BY_NAME_DESC.html        |  223 +++
     .../ns-26/sources/source-1.html               |  387 +++++
     .../ns-26/sources/source-2.html               |  152 ++
     .../ns-26/sources/source-3.html               |  130 ++
     .../ns-27/index.html                          |  223 +++
     .../ns-27/index_SORT_BY_BLOCK.html            |  223 +++
     .../ns-27/index_SORT_BY_BLOCK_DESC.html       |  223 +++
     .../ns-27/index_SORT_BY_CLASS.html            |  223 +++
     .../ns-27/index_SORT_BY_CLASS_DESC.html       |  223 +++
     .../ns-27/index_SORT_BY_LINE.html             |  223 +++
     .../ns-27/index_SORT_BY_LINE_DESC.html        |  223 +++
     .../ns-27/index_SORT_BY_METHOD.html           |  223 +++
     .../ns-27/index_SORT_BY_METHOD_DESC.html      |  223 +++
     .../ns-27/index_SORT_BY_NAME_DESC.html        |  223 +++
     .../ns-27/sources/source-1.html               |  380 +++++
     .../ns-27/sources/source-2.html               |  152 ++
     .../ns-27/sources/source-3.html               |  130 ++
     .../ns-28/index.html                          |  278 ++++
     .../ns-28/index_SORT_BY_BLOCK.html            |  278 ++++
     .../ns-28/index_SORT_BY_BLOCK_DESC.html       |  278 ++++
     .../ns-28/index_SORT_BY_CLASS.html            |  278 ++++
     .../ns-28/index_SORT_BY_CLASS_DESC.html       |  278 ++++
     .../ns-28/index_SORT_BY_LINE.html             |  278 ++++
     .../ns-28/index_SORT_BY_LINE_DESC.html        |  278 ++++
     .../ns-28/index_SORT_BY_METHOD.html           |  278 ++++
     .../ns-28/index_SORT_BY_METHOD_DESC.html      |  278 ++++
     .../ns-28/index_SORT_BY_NAME_DESC.html        |  278 ++++
     .../ns-28/sources/source-1.html               |  294 ++++
     .../ns-28/sources/source-2.html               |  183 +++
     .../ns-28/sources/source-3.html               |  325 ++++
     .../ns-28/sources/source-4.html               |  328 ++++
     .../ns-28/sources/source-5.html               |  135 ++
     .../ns-28/sources/source-6.html               |  159 ++
     .../ns-3/index.html                           |  251 +++
     .../ns-3/index_SORT_BY_BLOCK.html             |  251 +++
     .../ns-3/index_SORT_BY_BLOCK_DESC.html        |  251 +++
     .../ns-3/index_SORT_BY_CLASS.html             |  251 +++
     .../ns-3/index_SORT_BY_CLASS_DESC.html        |  251 +++
     .../ns-3/index_SORT_BY_LINE.html              |  251 +++
     .../ns-3/index_SORT_BY_LINE_DESC.html         |  251 +++
     .../ns-3/index_SORT_BY_METHOD.html            |  251 +++
     .../ns-3/index_SORT_BY_METHOD_DESC.html       |  251 +++
     .../ns-3/index_SORT_BY_NAME_DESC.html         |  251 +++
     .../ns-3/sources/source-1.html                |  176 +++
     .../ns-3/sources/source-2.html                |  142 ++
     .../ns-3/sources/source-3.html                |  142 ++
     .../ns-3/sources/source-4.html                |  192 +++
     .../ns-3/sources/source-5.html                |  184 +++
     .../ns-4/index.html                           |  143 ++
     .../ns-4/index_SORT_BY_BLOCK.html             |  143 ++
     .../ns-4/index_SORT_BY_BLOCK_DESC.html        |  143 ++
     .../ns-4/index_SORT_BY_CLASS.html             |  143 ++
     .../ns-4/index_SORT_BY_CLASS_DESC.html        |  143 ++
     .../ns-4/index_SORT_BY_LINE.html              |  143 ++
     .../ns-4/index_SORT_BY_LINE_DESC.html         |  143 ++
     .../ns-4/index_SORT_BY_METHOD.html            |  143 ++
     .../ns-4/index_SORT_BY_METHOD_DESC.html       |  143 ++
     .../ns-4/index_SORT_BY_NAME_DESC.html         |  143 ++
     .../ns-4/sources/source-1.html                |  238 +++
     .../ns-5/index.html                           |  305 ++++
     .../ns-5/index_SORT_BY_BLOCK.html             |  305 ++++
     .../ns-5/index_SORT_BY_BLOCK_DESC.html        |  305 ++++
     .../ns-5/index_SORT_BY_CLASS.html             |  305 ++++
     .../ns-5/index_SORT_BY_CLASS_DESC.html        |  305 ++++
     .../ns-5/index_SORT_BY_LINE.html              |  305 ++++
     .../ns-5/index_SORT_BY_LINE_DESC.html         |  305 ++++
     .../ns-5/index_SORT_BY_METHOD.html            |  305 ++++
     .../ns-5/index_SORT_BY_METHOD_DESC.html       |  305 ++++
     .../ns-5/index_SORT_BY_NAME_DESC.html         |  305 ++++
     .../ns-5/sources/source-1.html                |  470 ++++++
     .../ns-5/sources/source-2.html                |  228 +++
     .../ns-5/sources/source-3.html                |  424 +++++
     .../ns-5/sources/source-4.html                |  150 ++
     .../ns-5/sources/source-5.html                |  134 ++
     .../ns-5/sources/source-6.html                |  112 ++
     .../ns-5/sources/source-7.html                |  154 ++
     .../ns-6/index.html                           |  170 ++
     .../ns-6/index_SORT_BY_BLOCK.html             |  170 ++
     .../ns-6/index_SORT_BY_BLOCK_DESC.html        |  170 ++
     .../ns-6/index_SORT_BY_CLASS.html             |  170 ++
     .../ns-6/index_SORT_BY_CLASS_DESC.html        |  170 ++
     .../ns-6/index_SORT_BY_LINE.html              |  170 ++
     .../ns-6/index_SORT_BY_LINE_DESC.html         |  170 ++
     .../ns-6/index_SORT_BY_METHOD.html            |  170 ++
     .../ns-6/index_SORT_BY_METHOD_DESC.html       |  170 ++
     .../ns-6/index_SORT_BY_NAME_DESC.html         |  170 ++
     .../ns-6/sources/source-1.html                |  128 ++
     .../ns-6/sources/source-2.html                |  335 ++++
     .../ns-7/index.html                           |  278 ++++
     .../ns-7/index_SORT_BY_BLOCK.html             |  278 ++++
     .../ns-7/index_SORT_BY_BLOCK_DESC.html        |  278 ++++
     .../ns-7/index_SORT_BY_CLASS.html             |  278 ++++
     .../ns-7/index_SORT_BY_CLASS_DESC.html        |  278 ++++
     .../ns-7/index_SORT_BY_LINE.html              |  278 ++++
     .../ns-7/index_SORT_BY_LINE_DESC.html         |  278 ++++
     .../ns-7/index_SORT_BY_METHOD.html            |  278 ++++
     .../ns-7/index_SORT_BY_METHOD_DESC.html       |  278 ++++
     .../ns-7/index_SORT_BY_NAME_DESC.html         |  278 ++++
     .../ns-7/sources/source-1.html                |  305 ++++
     .../ns-7/sources/source-2.html                |  293 ++++
     .../ns-7/sources/source-3.html                |  655 ++++++++
     .../ns-7/sources/source-4.html                |  120 ++
     .../ns-7/sources/source-5.html                |  222 +++
     .../ns-7/sources/source-6.html                |  467 ++++++
     .../ns-7/sources/source-7.html                |  113 ++
     .../ns-8/index.html                           |  251 +++
     .../ns-8/index_SORT_BY_BLOCK.html             |  251 +++
     .../ns-8/index_SORT_BY_BLOCK_DESC.html        |  251 +++
     .../ns-8/index_SORT_BY_CLASS.html             |  251 +++
     .../ns-8/index_SORT_BY_CLASS_DESC.html        |  251 +++
     .../ns-8/index_SORT_BY_LINE.html              |  251 +++
     .../ns-8/index_SORT_BY_LINE_DESC.html         |  251 +++
     .../ns-8/index_SORT_BY_METHOD.html            |  251 +++
     .../ns-8/index_SORT_BY_METHOD_DESC.html       |  251 +++
     .../ns-8/index_SORT_BY_NAME_DESC.html         |  251 +++
     .../ns-8/sources/source-1.html                |  184 +++
     .../ns-8/sources/source-2.html                |  546 +++++++
     .../ns-8/sources/source-3.html                |  125 ++
     .../ns-8/sources/source-4.html                |  418 +++++
     .../ns-8/sources/source-5.html                |  210 +++
     .../ns-8/sources/source-6.html                |  103 ++
     .../ns-9/index.html                           |  143 ++
     .../ns-9/index_SORT_BY_BLOCK.html             |  143 ++
     .../ns-9/index_SORT_BY_BLOCK_DESC.html        |  143 ++
     .../ns-9/index_SORT_BY_CLASS.html             |  143 ++
     .../ns-9/index_SORT_BY_CLASS_DESC.html        |  143 ++
     .../ns-9/index_SORT_BY_LINE.html              |  143 ++
     .../ns-9/index_SORT_BY_LINE_DESC.html         |  143 ++
     .../ns-9/index_SORT_BY_METHOD.html            |  143 ++
     .../ns-9/index_SORT_BY_METHOD_DESC.html       |  143 ++
     .../ns-9/index_SORT_BY_NAME_DESC.html         |  143 ++
     .../ns-9/sources/source-1.html                |  205 +++
     .../ns-a/index.html                           |  143 ++
     .../ns-a/index_SORT_BY_BLOCK.html             |  143 ++
     .../ns-a/index_SORT_BY_BLOCK_DESC.html        |  143 ++
     .../ns-a/index_SORT_BY_CLASS.html             |  143 ++
     .../ns-a/index_SORT_BY_CLASS_DESC.html        |  143 ++
     .../ns-a/index_SORT_BY_LINE.html              |  143 ++
     .../ns-a/index_SORT_BY_LINE_DESC.html         |  143 ++
     .../ns-a/index_SORT_BY_METHOD.html            |  143 ++
     .../ns-a/index_SORT_BY_METHOD_DESC.html       |  143 ++
     .../ns-a/index_SORT_BY_NAME_DESC.html         |  143 ++
     .../ns-a/sources/source-1.html                |  142 ++
     .../ns-b/index.html                           |  170 ++
     .../ns-b/index_SORT_BY_BLOCK.html             |  170 ++
     .../ns-b/index_SORT_BY_BLOCK_DESC.html        |  170 ++
     .../ns-b/index_SORT_BY_CLASS.html             |  170 ++
     .../ns-b/index_SORT_BY_CLASS_DESC.html        |  170 ++
     .../ns-b/index_SORT_BY_LINE.html              |  170 ++
     .../ns-b/index_SORT_BY_LINE_DESC.html         |  170 ++
     .../ns-b/index_SORT_BY_METHOD.html            |  170 ++
     .../ns-b/index_SORT_BY_METHOD_DESC.html       |  170 ++
     .../ns-b/index_SORT_BY_NAME_DESC.html         |  170 ++
     .../ns-b/sources/source-1.html                |  140 ++
     .../ns-b/sources/source-2.html                |  268 ++++
     .../ns-c/index.html                           |  251 +++
     .../ns-c/index_SORT_BY_BLOCK.html             |  251 +++
     .../ns-c/index_SORT_BY_BLOCK_DESC.html        |  251 +++
     .../ns-c/index_SORT_BY_CLASS.html             |  251 +++
     .../ns-c/index_SORT_BY_CLASS_DESC.html        |  251 +++
     .../ns-c/index_SORT_BY_LINE.html              |  251 +++
     .../ns-c/index_SORT_BY_LINE_DESC.html         |  251 +++
     .../ns-c/index_SORT_BY_METHOD.html            |  251 +++
     .../ns-c/index_SORT_BY_METHOD_DESC.html       |  251 +++
     .../ns-c/index_SORT_BY_NAME_DESC.html         |  251 +++
     .../ns-c/sources/source-1.html                |  165 ++
     .../ns-c/sources/source-2.html                |  146 ++
     .../ns-c/sources/source-3.html                |  330 ++++
     .../ns-c/sources/source-4.html                |  138 ++
     .../ns-c/sources/source-5.html                |  166 ++
     .../ns-d/index.html                           |  332 ++++
     .../ns-d/index_SORT_BY_BLOCK.html             |  332 ++++
     .../ns-d/index_SORT_BY_BLOCK_DESC.html        |  332 ++++
     .../ns-d/index_SORT_BY_CLASS.html             |  332 ++++
     .../ns-d/index_SORT_BY_CLASS_DESC.html        |  332 ++++
     .../ns-d/index_SORT_BY_LINE.html              |  332 ++++
     .../ns-d/index_SORT_BY_LINE_DESC.html         |  332 ++++
     .../ns-d/index_SORT_BY_METHOD.html            |  332 ++++
     .../ns-d/index_SORT_BY_METHOD_DESC.html       |  332 ++++
     .../ns-d/index_SORT_BY_NAME_DESC.html         |  332 ++++
     .../ns-d/sources/source-1.html                |  152 ++
     .../ns-d/sources/source-2.html                |  137 ++
     .../ns-d/sources/source-3.html                |  285 ++++
     .../ns-d/sources/source-4.html                |  229 +++
     .../ns-d/sources/source-5.html                |  147 ++
     .../ns-d/sources/source-6.html                |  308 ++++
     .../ns-d/sources/source-7.html                |  138 ++
     .../ns-d/sources/source-8.html                |  182 +++
     .../ns-e/index.html                           |  143 ++
     .../ns-e/index_SORT_BY_BLOCK.html             |  143 ++
     .../ns-e/index_SORT_BY_BLOCK_DESC.html        |  143 ++
     .../ns-e/index_SORT_BY_CLASS.html             |  143 ++
     .../ns-e/index_SORT_BY_CLASS_DESC.html        |  143 ++
     .../ns-e/index_SORT_BY_LINE.html              |  143 ++
     .../ns-e/index_SORT_BY_LINE_DESC.html         |  143 ++
     .../ns-e/index_SORT_BY_METHOD.html            |  143 ++
     .../ns-e/index_SORT_BY_METHOD_DESC.html       |  143 ++
     .../ns-e/index_SORT_BY_NAME_DESC.html         |  143 ++
     .../ns-e/sources/source-1.html                |  189 +++
     .../ns-f/index.html                           |  143 ++
     .../ns-f/index_SORT_BY_BLOCK.html             |  143 ++
     .../ns-f/index_SORT_BY_BLOCK_DESC.html        |  143 ++
     .../ns-f/index_SORT_BY_CLASS.html             |  143 ++
     .../ns-f/index_SORT_BY_CLASS_DESC.html        |  143 ++
     .../ns-f/index_SORT_BY_LINE.html              |  143 ++
     .../ns-f/index_SORT_BY_LINE_DESC.html         |  143 ++
     .../ns-f/index_SORT_BY_METHOD.html            |  143 ++
     .../ns-f/index_SORT_BY_METHOD_DESC.html       |  143 ++
     .../ns-f/index_SORT_BY_NAME_DESC.html         |  143 ++
     .../ns-f/sources/source-1.html                |  143 ++
     .../InstrumentedHttpClientsTimerTest.java     |    4 +-
     606 files changed, 156528 insertions(+), 3 deletions(-)
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/css/coverage.css
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/css/idea.min.css
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/img/arrowDown.gif
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/img/arrowUp.gif
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/js/highlight.min.js
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/js/highlightjs-line-numbers.min.js
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-10.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-11.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-12.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-13.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-14.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-15.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-16.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-17.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-18.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-19.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1a.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1b.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1c.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1d.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1e.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1f.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-20.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-21.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-22.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-23.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-24.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-25.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-26.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-27.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-28.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-29.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2a.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2b.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2c.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2d.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2e.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2f.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-30.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-31.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-32.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-8.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-9.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-a.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-b.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-c.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-d.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-e.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-f.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-8.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-8.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-9.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-a.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-b.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-c.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-8.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-9.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-8.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/sources/source-1.html
    
    diff --git a/metrics-complete-branch-report-Final-htmlReport/css/coverage.css b/metrics-complete-branch-report-Final-htmlReport/css/coverage.css
    new file mode 100644
    index 0000000000..cef776517f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/css/coverage.css
    @@ -0,0 +1,154 @@
    +/*
    + * Copyright 2000-2021 JetBrains s.r.o.
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *   http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +* {
    +  margin: 0;
    +  padding: 0;
    +}
    +
    +body {
    +  background-color: #fff;
    +  font-family: helvetica neue, tahoma, arial, sans-serif;
    +  font-size: 82%;
    +  color: #151515;
    +}
    +
    +h1 {
    +  margin: 0.5em 0;
    +  color: #010101;
    +  font-weight: normal;
    +  font-size: 18px;
    +}
    +
    +h2 {
    +  margin: 0.5em 0;
    +  color: #010101;
    +  font-weight: normal;
    +  font-size: 16px;
    +}
    +
    +a {
    +  color: #1564C2;
    +  text-decoration: none;
    +}
    +
    +a:hover {
    +  text-decoration: underline;
    +}
    +
    +span.separator {
    +  color: #9BA9BA;
    +  padding-left: 5px;
    +  padding-right: 5px;
    +}
    +
    +div.content {
    +  width: 99%;
    +}
    +
    +table.coverageStats {
    +  width: 100%;
    +  border-collapse: collapse;
    +}
    +
    +table.overallStats {
    +  width: 20%;
    +}
    +
    +table.coverageStats td, table.coverageStats th {
    +  padding: 4px 2px;
    +  border-bottom: 1px solid #ccc;
    +}
    +
    +table.coverageStats th {
    +  background-color: #959BA4;
    +  border: none;
    +  font-weight: bold;
    +  text-align: left;
    +  color: #FFF;
    +}
    +
    +table.coverageStats th.coverageStat {
    +  width: 15%;
    +}
    +
    +table.coverageStats th a {
    +  color: #FFF;
    +}
    +
    +table.coverageStats th a:hover {
    +  text-decoration: none;
    +}
    +
    +table.coverageStats th.sortedDesc a {
    +  background: url(../img/arrowDown.gif) no-repeat 100% 2px;
    +  padding-right: 20px;
    +}
    +
    +table.coverageStats th.sortedAsc a {
    +  background: url(../img/arrowUp.gif) no-repeat 100% 2px;
    +  padding-right: 20px;
    +}
    +
    +div.footer {
    +  margin: 2em .5em;
    +  font-size: 85%;
    +  text-align: left;
    +  line-height: 140%;
    +}
    +
    +code.sourceCode {
    +  width: 100%;
    +  border: 1px solid #ccc;
    +  font: normal 12px 'Menlo', 'Bitstream Vera Sans Mono', 'Courier New', 'Courier', monospace;
    +  white-space: pre;
    +}
    +
    +code.sourceCode b {
    +  font-weight: normal;
    +}
    +
    +code.sourceCode span.number {
    +  color: #151515;
    +}
    +
    +code.sourceCode .fc {
    +  background-color: #cfc;
    +}
    +
    +code.sourceCode .pc {
    +  background-color: #ffc;
    +}
    +
    +code.sourceCode .nc {
    +  background-color: #fcc;
    +}
    +
    +.percent, .absValue {
    +  font-size: 90%;
    +}
    +
    +.percent .green, .absValue .green {
    +  color: #32cc32;
    +}
    +
    +.percent .red, .absValue .red {
    +  color: #f00;
    +}
    +
    +.percent .totalDiff {
    +  color: #3f3f3f;
    +}
    diff --git a/metrics-complete-branch-report-Final-htmlReport/css/idea.min.css b/metrics-complete-branch-report-Final-htmlReport/css/idea.min.css
    new file mode 100644
    index 0000000000..a8d5292bd5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/css/idea.min.css
    @@ -0,0 +1,118 @@
    +/*
    + * Copyright 2000-2021 JetBrains s.r.o.
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *   http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +/*
    +Intellij Idea-like styling (c) Vasily Polovnyov <vast@whiteants.net>
    +*/
    +
    +.hljs {
    +    color: #000;
    +    background: #fff;
    +}
    +
    +.hljs-subst,
    +.hljs-title {
    +    font-weight: normal;
    +    color: #000;
    +}
    +
    +.hljs-comment,
    +.hljs-quote {
    +    color: #808080;
    +    font-style: italic;
    +}
    +
    +.hljs-meta {
    +    color: #808000;
    +}
    +
    +.hljs-tag {
    +    background: #efefef;
    +}
    +
    +.hljs-section,
    +.hljs-name,
    +.hljs-literal,
    +.hljs-keyword,
    +.hljs-selector-tag,
    +.hljs-type,
    +.hljs-selector-id,
    +.hljs-selector-class {
    +    font-weight: bold;
    +    color: #000080;
    +}
    +
    +.hljs-attribute,
    +.hljs-number,
    +.hljs-regexp,
    +.hljs-link {
    +    font-weight: bold;
    +    color: #0000ff;
    +}
    +
    +.hljs-number,
    +.hljs-regexp,
    +.hljs-link {
    +    font-weight: normal;
    +}
    +
    +.hljs-string {
    +    color: #008000;
    +    font-weight: bold;
    +}
    +
    +.hljs-symbol,
    +.hljs-bullet,
    +.hljs-formula {
    +    color: #000;
    +    background: #d0eded;
    +    font-style: italic;
    +}
    +
    +.hljs-doctag {
    +    text-decoration: underline;
    +}
    +
    +.hljs-variable,
    +.hljs-template-variable {
    +    color: #660e7a;
    +}
    +
    +.hljs-addition {
    +    background: #baeeba;
    +}
    +
    +.hljs-deletion {
    +    background: #ffc8bd;
    +}
    +
    +.hljs-emphasis {
    +    font-style: italic;
    +}
    +
    +.hljs-strong {
    +    font-weight: bold;
    +}
    +
    +.hljs-ln-numbers {
    +    display: block;
    +    float: left;
    +    width: 3em;
    +    border-right: 1px solid #ccc;
    +    font-style: normal;
    +    text-align: right;
    +    background-color: #eee;
    +}
    diff --git a/metrics-complete-branch-report-Final-htmlReport/img/arrowDown.gif b/metrics-complete-branch-report-Final-htmlReport/img/arrowDown.gif
    new file mode 100644
    index 0000000000000000000000000000000000000000..a4ac9b4b0f5eee9fc82deb7f03d0cc7f197b01c7
    GIT binary patch
    literal 89
    zcmZ?wbhEHb<YVAtSj56GVZwyGyu5~nhW}u|00W9YSr{1@SQvCb0wA>v%yJ&P?))?G
    g5?!@7agD+*@rGjs@joUks8}}Ha%HfNHz$KN0Orjd82|tP
    
    literal 0
    HcmV?d00001
    
    diff --git a/metrics-complete-branch-report-Final-htmlReport/img/arrowUp.gif b/metrics-complete-branch-report-Final-htmlReport/img/arrowUp.gif
    new file mode 100644
    index 0000000000000000000000000000000000000000..d488db0089f15409b83a6f39718384cac89ea3c9
    GIT binary patch
    literal 91
    zcmZ?wbhEHb<YVAtSj51PmzOtT!i0u~hW}u|00W9YSr{1@SQvCb0wA>v%nBa6?))=2
    j#jeJ<$W6!S$=vG=3s*2Wu3C5I!M+a(XH6zEFjxZs9OxeQ
    
    literal 0
    HcmV?d00001
    
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index.html b/metrics-complete-branch-report-Final-htmlReport/index.html
    new file mode 100644
    index 0000000000..4259f9c095
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/index.html
    @@ -0,0 +1,1314 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.4%
    +  </span>
    +  <span class="absValue">
    +    (333/381)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.6%
    +  </span>
    +  <span class="absValue">
    +    (1555/2142)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/129)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.6%
    +  </span>
    +  <span class="absValue">
    +    (5188/6863)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Package</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..b84235b891
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,1314 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.4%
    +  </span>
    +  <span class="absValue">
    +    (333/381)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.6%
    +  </span>
    +  <span class="absValue">
    +    (1555/2142)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/129)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.6%
    +  </span>
    +  <span class="absValue">
    +    (5188/6863)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Package</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index_SORT_BY_BLOCK.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index_SORT_BY_BLOCK.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_BLOCK.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_BLOCK.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index_SORT_BY_BLOCK.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_BLOCK.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index_SORT_BY_BLOCK.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_BLOCK.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index_SORT_BY_BLOCK.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index_SORT_BY_BLOCK.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index_SORT_BY_BLOCK.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_BLOCK.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index_SORT_BY_BLOCK.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index_SORT_BY_BLOCK.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_BLOCK.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index_SORT_BY_BLOCK.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_BLOCK.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_BLOCK.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index_SORT_BY_BLOCK.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_BLOCK.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_BLOCK.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..149eb9e2eb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,1314 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.4%
    +  </span>
    +  <span class="absValue">
    +    (333/381)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.6%
    +  </span>
    +  <span class="absValue">
    +    (1555/2142)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/129)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.6%
    +  </span>
    +  <span class="absValue">
    +    (5188/6863)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Package</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..febcc1696c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS.html
    @@ -0,0 +1,1314 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.4%
    +  </span>
    +  <span class="absValue">
    +    (333/381)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.6%
    +  </span>
    +  <span class="absValue">
    +    (1555/2142)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/129)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.6%
    +  </span>
    +  <span class="absValue">
    +    (5188/6863)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Package</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index_SORT_BY_CLASS.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_CLASS.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_CLASS.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index_SORT_BY_CLASS.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_CLASS.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index_SORT_BY_CLASS.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_CLASS.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index_SORT_BY_CLASS.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_CLASS.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index_SORT_BY_CLASS.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_CLASS.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index_SORT_BY_CLASS.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index_SORT_BY_CLASS.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_CLASS.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index_SORT_BY_CLASS.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index_SORT_BY_CLASS.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index_SORT_BY_CLASS.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index_SORT_BY_CLASS.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_CLASS.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index_SORT_BY_CLASS.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index_SORT_BY_CLASS.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_CLASS.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index_SORT_BY_CLASS.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_CLASS.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_CLASS.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..3ed7f533ad
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,1314 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.4%
    +  </span>
    +  <span class="absValue">
    +    (333/381)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.6%
    +  </span>
    +  <span class="absValue">
    +    (1555/2142)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/129)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.6%
    +  </span>
    +  <span class="absValue">
    +    (5188/6863)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Package</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..e879afa160
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE.html
    @@ -0,0 +1,1314 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.4%
    +  </span>
    +  <span class="absValue">
    +    (333/381)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.6%
    +  </span>
    +  <span class="absValue">
    +    (1555/2142)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/129)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.6%
    +  </span>
    +  <span class="absValue">
    +    (5188/6863)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Package</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index_SORT_BY_LINE.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_LINE.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_LINE.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_LINE.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index_SORT_BY_LINE.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index_SORT_BY_LINE.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index_SORT_BY_LINE.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_LINE.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index_SORT_BY_LINE.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index_SORT_BY_LINE.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_LINE.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_LINE.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index_SORT_BY_LINE.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index_SORT_BY_LINE.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index_SORT_BY_LINE.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index_SORT_BY_LINE.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_LINE.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_LINE.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_LINE.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index_SORT_BY_LINE.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_LINE.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index_SORT_BY_LINE.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index_SORT_BY_LINE.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_LINE.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index_SORT_BY_LINE.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_LINE.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..5110bf2006
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,1314 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.4%
    +  </span>
    +  <span class="absValue">
    +    (333/381)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.6%
    +  </span>
    +  <span class="absValue">
    +    (1555/2142)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/129)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.6%
    +  </span>
    +  <span class="absValue">
    +    (5188/6863)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Package</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index_SORT_BY_LINE_DESC.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..cca065aff7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD.html
    @@ -0,0 +1,1314 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.4%
    +  </span>
    +  <span class="absValue">
    +    (333/381)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.6%
    +  </span>
    +  <span class="absValue">
    +    (1555/2142)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/129)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.6%
    +  </span>
    +  <span class="absValue">
    +    (5188/6863)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Package</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index_SORT_BY_METHOD.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_METHOD.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index_SORT_BY_METHOD.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_METHOD.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index_SORT_BY_METHOD.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_METHOD.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index_SORT_BY_METHOD.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index_SORT_BY_METHOD.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_METHOD.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_METHOD.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index_SORT_BY_METHOD.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index_SORT_BY_METHOD.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_METHOD.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index_SORT_BY_METHOD.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_METHOD.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index_SORT_BY_METHOD.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_METHOD.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index_SORT_BY_METHOD.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index_SORT_BY_METHOD.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_METHOD.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index_SORT_BY_METHOD.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_METHOD.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index_SORT_BY_METHOD.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index_SORT_BY_METHOD.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_METHOD.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..8a72da2afd
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,1314 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.4%
    +  </span>
    +  <span class="absValue">
    +    (333/381)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.6%
    +  </span>
    +  <span class="absValue">
    +    (1555/2142)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/129)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.6%
    +  </span>
    +  <span class="absValue">
    +    (5188/6863)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Package</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..6a14960f07
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,1314 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.4%
    +  </span>
    +  <span class="absValue">
    +    (333/381)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.6%
    +  </span>
    +  <span class="absValue">
    +    (1555/2142)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/129)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.6%
    +  </span>
    +  <span class="absValue">
    +    (5188/6863)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Package</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index_SORT_BY_NAME_DESC.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-htmlReport/js/highlight.min.js b/metrics-complete-branch-report-Final-htmlReport/js/highlight.min.js
    new file mode 100644
    index 0000000000..e88731520e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/js/highlight.min.js
    @@ -0,0 +1,1388 @@
    +/*
    +  Highlight.js 10.7.2 (00233d63)
    +  License: BSD-3-Clause
    +  Copyright (c) 2006-2021, Ivan Sagalaev
    +
    +  BSD 3-Clause License
    +
    +  Copyright (c) 2006-2021, Ivan Sagalaev.
    +  All rights reserved.
    +
    +  Redistribution and use in source and binary forms, with or without
    +  modification, are permitted provided that the following conditions are met:
    +
    +  * Redistributions of source code must retain the above copyright notice, this
    +    list of conditions and the following disclaimer.
    +
    +  * Redistributions in binary form must reproduce the above copyright notice,
    +    this list of conditions and the following disclaimer in the documentation
    +    and/or other materials provided with the distribution.
    +
    +  * Neither the name of the copyright holder nor the names of its
    +    contributors may be used to endorse or promote products derived from
    +    this software without specific prior written permission.
    +
    +  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    +  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    +  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    +  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    +  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
    +  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    +  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    +  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +*/
    +var hljs=function(){"use strict";function e(t){
    +return t instanceof Map?t.clear=t.delete=t.set=()=>{
    +throw Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=()=>{
    +throw Error("set is read-only")
    +}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach((n=>{var i=t[n]
    +;"object"!=typeof i||Object.isFrozen(i)||e(i)})),t}var t=e,n=e;t.default=n
    +;class i{constructor(e){
    +void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}
    +ignoreMatch(){this.isMatchIgnored=!0}}function s(e){
    +return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")
    +}function a(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t]
    +;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const r=e=>!!e.kind
    +;class l{constructor(e,t){
    +this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){
    +this.buffer+=s(e)}openNode(e){if(!r(e))return;let t=e.kind
    +;e.sublanguage||(t=`${this.classPrefix}${t}`),this.span(t)}closeNode(e){
    +r(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){
    +this.buffer+=`<span class="${e}">`}}class o{constructor(){this.rootNode={
    +children:[]},this.stack=[this.rootNode]}get top(){
    +return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){
    +this.top.children.push(e)}openNode(e){const t={kind:e,children:[]}
    +;this.add(t),this.stack.push(t)}closeNode(){
    +if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){
    +for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
    +walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){
    +return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),
    +t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){
    +"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{
    +o._collapse(e)})))}}class c extends o{constructor(e){super(),this.options=e}
    +addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())}
    +addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root
    +;n.kind=t,n.sublanguage=!0,this.add(n)}toHTML(){
    +return new l(this,this.options).value()}finalize(){return!0}}function g(e){
    +return e?"string"==typeof e?e:e.source:null}
    +const u=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,h="[a-zA-Z]\\w*",d="[a-zA-Z_]\\w*",f="\\b\\d+(\\.\\d+)?",p="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",m="\\b(0b[01]+)",b={
    +begin:"\\\\[\\s\\S]",relevance:0},E={className:"string",begin:"'",end:"'",
    +illegal:"\\n",contains:[b]},x={className:"string",begin:'"',end:'"',
    +illegal:"\\n",contains:[b]},v={
    +begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
    +},w=(e,t,n={})=>{const i=a({className:"comment",begin:e,end:t,contains:[]},n)
    +;return i.contains.push(v),i.contains.push({className:"doctag",
    +begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),i
    +},y=w("//","$"),N=w("/\\*","\\*/"),R=w("#","$");var _=Object.freeze({
    +__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:h,UNDERSCORE_IDENT_RE:d,
    +NUMBER_RE:f,C_NUMBER_RE:p,BINARY_NUMBER_RE:m,
    +RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
    +SHEBANG:(e={})=>{const t=/^#![ ]*\//
    +;return e.binary&&(e.begin=((...e)=>e.map((e=>g(e))).join(""))(t,/.*\b/,e.binary,/\b.*/)),
    +a({className:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{
    +0!==e.index&&t.ignoreMatch()}},e)},BACKSLASH_ESCAPE:b,APOS_STRING_MODE:E,
    +QUOTE_STRING_MODE:x,PHRASAL_WORDS_MODE:v,COMMENT:w,C_LINE_COMMENT_MODE:y,
    +C_BLOCK_COMMENT_MODE:N,HASH_COMMENT_MODE:R,NUMBER_MODE:{className:"number",
    +begin:f,relevance:0},C_NUMBER_MODE:{className:"number",begin:p,relevance:0},
    +BINARY_NUMBER_MODE:{className:"number",begin:m,relevance:0},CSS_NUMBER_MODE:{
    +className:"number",
    +begin:f+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
    +relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",
    +begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[b,{begin:/\[/,end:/\]/,
    +relevance:0,contains:[b]}]}]},TITLE_MODE:{className:"title",begin:h,relevance:0
    +},UNDERSCORE_TITLE_MODE:{className:"title",begin:d,relevance:0},METHOD_GUARD:{
    +begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{
    +"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{
    +t.data._beginMatch!==e[1]&&t.ignoreMatch()}})});function k(e,t){
    +"."===e.input[e.index-1]&&t.ignoreMatch()}function M(e,t){
    +t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",
    +e.__beforeBegin=k,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,
    +void 0===e.relevance&&(e.relevance=0))}function O(e,t){
    +Array.isArray(e.illegal)&&(e.illegal=((...e)=>"("+e.map((e=>g(e))).join("|")+")")(...e.illegal))
    +}function A(e,t){if(e.match){
    +if(e.begin||e.end)throw Error("begin & end are not supported with match")
    +;e.begin=e.match,delete e.match}}function L(e,t){
    +void 0===e.relevance&&(e.relevance=1)}
    +const I=["of","and","for","in","not","or","if","then","parent","list","value"]
    +;function j(e,t,n="keyword"){const i={}
    +;return"string"==typeof e?s(n,e.split(" ")):Array.isArray(e)?s(n,e):Object.keys(e).forEach((n=>{
    +Object.assign(i,j(e[n],t,n))})),i;function s(e,n){
    +t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|")
    +;i[n[0]]=[e,B(n[0],n[1])]}))}}function B(e,t){
    +return t?Number(t):(e=>I.includes(e.toLowerCase()))(e)?0:1}
    +function T(e,{plugins:t}){function n(t,n){
    +return RegExp(g(t),"m"+(e.case_insensitive?"i":"")+(n?"g":""))}class i{
    +constructor(){
    +this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}
    +addRule(e,t){
    +t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),
    +this.matchAt+=(e=>RegExp(e.toString()+"|").exec("").length-1)(e)+1}compile(){
    +0===this.regexes.length&&(this.exec=()=>null)
    +;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(((e,t="|")=>{let n=0
    +;return e.map((e=>{n+=1;const t=n;let i=g(e),s="";for(;i.length>0;){
    +const e=u.exec(i);if(!e){s+=i;break}
    +s+=i.substring(0,e.index),i=i.substring(e.index+e[0].length),
    +"\\"===e[0][0]&&e[1]?s+="\\"+(Number(e[1])+t):(s+=e[0],"("===e[0]&&n++)}return s
    +})).map((e=>`(${e})`)).join(t)})(e),!0),this.lastIndex=0}exec(e){
    +this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e)
    +;if(!t)return null
    +;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n]
    +;return t.splice(0,n),Object.assign(t,i)}}class s{constructor(){
    +this.rules=[],this.multiRegexes=[],
    +this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){
    +if(this.multiRegexes[e])return this.multiRegexes[e];const t=new i
    +;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))),
    +t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){
    +return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){
    +this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){
    +const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex
    +;let n=t.exec(e)
    +;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{
    +const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}
    +return n&&(this.regexIndex+=n.position+1,
    +this.regexIndex===this.count&&this.considerAll()),n}}
    +if(e.compilerExtensions||(e.compilerExtensions=[]),
    +e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.")
    +;return e.classNameAliases=a(e.classNameAliases||{}),function t(i,r){const l=i
    +;if(i.isCompiled)return l
    +;[A].forEach((e=>e(i,r))),e.compilerExtensions.forEach((e=>e(i,r))),
    +i.__beforeBegin=null,[M,O,L].forEach((e=>e(i,r))),i.isCompiled=!0;let o=null
    +;if("object"==typeof i.keywords&&(o=i.keywords.$pattern,
    +delete i.keywords.$pattern),
    +i.keywords&&(i.keywords=j(i.keywords,e.case_insensitive)),
    +i.lexemes&&o)throw Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ")
    +;return o=o||i.lexemes||/\w+/,
    +l.keywordPatternRe=n(o,!0),r&&(i.begin||(i.begin=/\B|\b/),
    +l.beginRe=n(i.begin),i.endSameAsBegin&&(i.end=i.begin),
    +i.end||i.endsWithParent||(i.end=/\B|\b/),
    +i.end&&(l.endRe=n(i.end)),l.terminatorEnd=g(i.end)||"",
    +i.endsWithParent&&r.terminatorEnd&&(l.terminatorEnd+=(i.end?"|":"")+r.terminatorEnd)),
    +i.illegal&&(l.illegalRe=n(i.illegal)),
    +i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>a(e,{
    +variants:null},t)))),e.cachedVariants?e.cachedVariants:S(e)?a(e,{
    +starts:e.starts?a(e.starts):null
    +}):Object.isFrozen(e)?a(e):e))("self"===e?i:e)))),i.contains.forEach((e=>{t(e,l)
    +})),i.starts&&t(i.starts,r),l.matcher=(e=>{const t=new s
    +;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"
    +}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"
    +}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(l),l}(e)}function S(e){
    +return!!e&&(e.endsWithParent||S(e.starts))}function P(e){const t={
    +props:["language","code","autodetect"],data:()=>({detectedLanguage:"",
    +unknownLanguage:!1}),computed:{className(){
    +return this.unknownLanguage?"":"hljs "+this.detectedLanguage},highlighted(){
    +if(!this.autoDetect&&!e.getLanguage(this.language))return console.warn(`The language "${this.language}" you specified could not be found.`),
    +this.unknownLanguage=!0,s(this.code);let t={}
    +;return this.autoDetect?(t=e.highlightAuto(this.code),
    +this.detectedLanguage=t.language):(t=e.highlight(this.language,this.code,this.ignoreIllegals),
    +this.detectedLanguage=this.language),t.value},autoDetect(){
    +return!(this.language&&(e=this.autodetect,!e&&""!==e));var e},
    +ignoreIllegals:()=>!0},render(e){return e("pre",{},[e("code",{
    +class:this.className,domProps:{innerHTML:this.highlighted}})])}};return{
    +Component:t,VuePlugin:{install(e){e.component("highlightjs",t)}}}}const D={
    +"after:highlightElement":({el:e,result:t,text:n})=>{const i=H(e)
    +;if(!i.length)return;const a=document.createElement("div")
    +;a.innerHTML=t.value,t.value=((e,t,n)=>{let i=0,a="";const r=[];function l(){
    +return e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset<t[0].offset?e:t:"start"===t[0].event?e:t:e.length?e:t
    +}function o(e){a+="<"+C(e)+[].map.call(e.attributes,(function(e){
    +return" "+e.nodeName+'="'+s(e.value)+'"'})).join("")+">"}function c(e){
    +a+="</"+C(e)+">"}function g(e){("start"===e.event?o:c)(e.node)}
    +for(;e.length||t.length;){let t=l()
    +;if(a+=s(n.substring(i,t[0].offset)),i=t[0].offset,t===e){r.reverse().forEach(c)
    +;do{g(t.splice(0,1)[0]),t=l()}while(t===e&&t.length&&t[0].offset===i)
    +;r.reverse().forEach(o)
    +}else"start"===t[0].event?r.push(t[0].node):r.pop(),g(t.splice(0,1)[0])}
    +return a+s(n.substr(i))})(i,H(a),n)}};function C(e){
    +return e.nodeName.toLowerCase()}function H(e){const t=[];return function e(n,i){
    +for(let s=n.firstChild;s;s=s.nextSibling)3===s.nodeType?i+=s.nodeValue.length:1===s.nodeType&&(t.push({
    +event:"start",offset:i,node:s}),i=e(s,i),C(s).match(/br|hr|img|input/)||t.push({
    +event:"stop",offset:i,node:s}));return i}(e,0),t}const $={},U=e=>{
    +console.error(e)},z=(e,...t)=>{console.log("WARN: "+e,...t)},K=(e,t)=>{
    +$[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),$[`${e}/${t}`]=!0)
    +},G=s,V=a,W=Symbol("nomatch");return(e=>{
    +const n=Object.create(null),s=Object.create(null),a=[];let r=!0
    +;const l=/(^(<[^>]+>|\t|)+|\n)/gm,o="Could not find the language '{}', did you forget to load/include a language module?",g={
    +disableAutodetect:!0,name:"Plain text",contains:[]};let u={
    +noHighlightRe:/^(no-?highlight)$/i,
    +languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",
    +tabReplace:null,useBR:!1,languages:null,__emitter:c};function h(e){
    +return u.noHighlightRe.test(e)}function d(e,t,n,i){let s="",a=""
    +;"object"==typeof t?(s=e,
    +n=t.ignoreIllegals,a=t.language,i=void 0):(K("10.7.0","highlight(lang, code, ...args) has been deprecated."),
    +K("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
    +a=e,s=t);const r={code:s,language:a};M("before:highlight",r)
    +;const l=r.result?r.result:f(r.language,r.code,n,i)
    +;return l.code=r.code,M("after:highlight",l),l}function f(e,t,s,l){
    +function c(e,t){const n=v.case_insensitive?t[0].toLowerCase():t[0]
    +;return Object.prototype.hasOwnProperty.call(e.keywords,n)&&e.keywords[n]}
    +function g(){null!=R.subLanguage?(()=>{if(""===M)return;let e=null
    +;if("string"==typeof R.subLanguage){
    +if(!n[R.subLanguage])return void k.addText(M)
    +;e=f(R.subLanguage,M,!0,_[R.subLanguage]),_[R.subLanguage]=e.top
    +}else e=p(M,R.subLanguage.length?R.subLanguage:null)
    +;R.relevance>0&&(O+=e.relevance),k.addSublanguage(e.emitter,e.language)
    +})():(()=>{if(!R.keywords)return void k.addText(M);let e=0
    +;R.keywordPatternRe.lastIndex=0;let t=R.keywordPatternRe.exec(M),n="";for(;t;){
    +n+=M.substring(e,t.index);const i=c(R,t);if(i){const[e,s]=i
    +;if(k.addText(n),n="",O+=s,e.startsWith("_"))n+=t[0];else{
    +const n=v.classNameAliases[e]||e;k.addKeyword(t[0],n)}}else n+=t[0]
    +;e=R.keywordPatternRe.lastIndex,t=R.keywordPatternRe.exec(M)}
    +n+=M.substr(e),k.addText(n)})(),M=""}function h(e){
    +return e.className&&k.openNode(v.classNameAliases[e.className]||e.className),
    +R=Object.create(e,{parent:{value:R}}),R}function d(e,t,n){let s=((e,t)=>{
    +const n=e&&e.exec(t);return n&&0===n.index})(e.endRe,n);if(s){if(e["on:end"]){
    +const n=new i(e);e["on:end"](t,n),n.isMatchIgnored&&(s=!1)}if(s){
    +for(;e.endsParent&&e.parent;)e=e.parent;return e}}
    +if(e.endsWithParent)return d(e.parent,t,n)}function m(e){
    +return 0===R.matcher.regexIndex?(M+=e[0],1):(I=!0,0)}function b(e){
    +const n=e[0],i=t.substr(e.index),s=d(R,e,i);if(!s)return W;const a=R
    +;a.skip?M+=n:(a.returnEnd||a.excludeEnd||(M+=n),g(),a.excludeEnd&&(M=n));do{
    +R.className&&k.closeNode(),R.skip||R.subLanguage||(O+=R.relevance),R=R.parent
    +}while(R!==s.parent)
    +;return s.starts&&(s.endSameAsBegin&&(s.starts.endRe=s.endRe),
    +h(s.starts)),a.returnEnd?0:n.length}let E={};function x(n,a){const l=a&&a[0]
    +;if(M+=n,null==l)return g(),0
    +;if("begin"===E.type&&"end"===a.type&&E.index===a.index&&""===l){
    +if(M+=t.slice(a.index,a.index+1),!r){const t=Error("0 width match regex")
    +;throw t.languageName=e,t.badRule=E.rule,t}return 1}
    +if(E=a,"begin"===a.type)return function(e){
    +const t=e[0],n=e.rule,s=new i(n),a=[n.__beforeBegin,n["on:begin"]]
    +;for(const n of a)if(n&&(n(e,s),s.isMatchIgnored))return m(t)
    +;return n&&n.endSameAsBegin&&(n.endRe=RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")),
    +n.skip?M+=t:(n.excludeBegin&&(M+=t),
    +g(),n.returnBegin||n.excludeBegin||(M=t)),h(n),n.returnBegin?0:t.length}(a)
    +;if("illegal"===a.type&&!s){
    +const e=Error('Illegal lexeme "'+l+'" for mode "'+(R.className||"<unnamed>")+'"')
    +;throw e.mode=R,e}if("end"===a.type){const e=b(a);if(e!==W)return e}
    +if("illegal"===a.type&&""===l)return 1
    +;if(L>1e5&&L>3*a.index)throw Error("potential infinite loop, way more iterations than matches")
    +;return M+=l,l.length}const v=N(e)
    +;if(!v)throw U(o.replace("{}",e)),Error('Unknown language: "'+e+'"')
    +;const w=T(v,{plugins:a});let y="",R=l||w;const _={},k=new u.__emitter(u);(()=>{
    +const e=[];for(let t=R;t!==v;t=t.parent)t.className&&e.unshift(t.className)
    +;e.forEach((e=>k.openNode(e)))})();let M="",O=0,A=0,L=0,I=!1;try{
    +for(R.matcher.considerAll();;){
    +L++,I?I=!1:R.matcher.considerAll(),R.matcher.lastIndex=A
    +;const e=R.matcher.exec(t);if(!e)break;const n=x(t.substring(A,e.index),e)
    +;A=e.index+n}return x(t.substr(A)),k.closeAllNodes(),k.finalize(),y=k.toHTML(),{
    +relevance:Math.floor(O),value:y,language:e,illegal:!1,emitter:k,top:R}}catch(n){
    +if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{
    +msg:n.message,context:t.slice(A-100,A+100),mode:n.mode},sofar:y,relevance:0,
    +value:G(t),emitter:k};if(r)return{illegal:!1,relevance:0,value:G(t),emitter:k,
    +language:e,top:R,errorRaised:n};throw n}}function p(e,t){
    +t=t||u.languages||Object.keys(n);const i=(e=>{const t={relevance:0,
    +emitter:new u.__emitter(u),value:G(e),illegal:!1,top:g}
    +;return t.emitter.addText(e),t})(e),s=t.filter(N).filter(k).map((t=>f(t,e,!1)))
    +;s.unshift(i);const a=s.sort(((e,t)=>{
    +if(e.relevance!==t.relevance)return t.relevance-e.relevance
    +;if(e.language&&t.language){if(N(e.language).supersetOf===t.language)return 1
    +;if(N(t.language).supersetOf===e.language)return-1}return 0})),[r,l]=a,o=r
    +;return o.second_best=l,o}const m={"before:highlightElement":({el:e})=>{
    +u.useBR&&(e.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ /]*>/g,"\n"))
    +},"after:highlightElement":({result:e})=>{
    +u.useBR&&(e.value=e.value.replace(/\n/g,"<br>"))}},b=/^(<[^>]+>|\t)+/gm,E={
    +"after:highlightElement":({result:e})=>{
    +u.tabReplace&&(e.value=e.value.replace(b,(e=>e.replace(/\t/g,u.tabReplace))))}}
    +;function x(e){let t=null;const n=(e=>{let t=e.className+" "
    +;t+=e.parentNode?e.parentNode.className:"";const n=u.languageDetectRe.exec(t)
    +;if(n){const t=N(n[1])
    +;return t||(z(o.replace("{}",n[1])),z("Falling back to no-highlight mode for this block.",e)),
    +t?n[1]:"no-highlight"}return t.split(/\s+/).find((e=>h(e)||N(e)))})(e)
    +;if(h(n))return;M("before:highlightElement",{el:e,language:n}),t=e
    +;const i=t.textContent,a=n?d(i,{language:n,ignoreIllegals:!0}):p(i)
    +;M("after:highlightElement",{el:e,result:a,text:i
    +}),e.innerHTML=a.value,((e,t,n)=>{const i=t?s[t]:n
    +;e.classList.add("hljs"),i&&e.classList.add(i)})(e,n,a.language),e.result={
    +language:a.language,re:a.relevance,relavance:a.relevance
    +},a.second_best&&(e.second_best={language:a.second_best.language,
    +re:a.second_best.relevance,relavance:a.second_best.relevance})}const v=()=>{
    +v.called||(v.called=!0,
    +K("10.6.0","initHighlighting() is deprecated.  Use highlightAll() instead."),
    +document.querySelectorAll("pre code").forEach(x))};let w=!1;function y(){
    +"loading"!==document.readyState?document.querySelectorAll("pre code").forEach(x):w=!0
    +}function N(e){return e=(e||"").toLowerCase(),n[e]||n[s[e]]}
    +function R(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{
    +s[e.toLowerCase()]=t}))}function k(e){const t=N(e)
    +;return t&&!t.disableAutodetect}function M(e,t){const n=e;a.forEach((e=>{
    +e[n]&&e[n](t)}))}
    +"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{
    +w&&y()}),!1),Object.assign(e,{highlight:d,highlightAuto:p,highlightAll:y,
    +fixMarkup:e=>{
    +return K("10.2.0","fixMarkup will be removed entirely in v11.0"),K("10.2.0","Please see https://github.com/highlightjs/highlight.js/issues/2534"),
    +t=e,
    +u.tabReplace||u.useBR?t.replace(l,(e=>"\n"===e?u.useBR?"<br>":e:u.tabReplace?e.replace(/\t/g,u.tabReplace):e)):t
    +;var t},highlightElement:x,
    +highlightBlock:e=>(K("10.7.0","highlightBlock will be removed entirely in v12.0"),
    +K("10.7.0","Please use highlightElement now."),x(e)),configure:e=>{
    +e.useBR&&(K("10.3.0","'useBR' will be removed entirely in v11.0"),
    +K("10.3.0","Please see https://github.com/highlightjs/highlight.js/issues/2559")),
    +u=V(u,e)},initHighlighting:v,initHighlightingOnLoad:()=>{
    +K("10.6.0","initHighlightingOnLoad() is deprecated.  Use highlightAll() instead."),
    +w=!0},registerLanguage:(t,i)=>{let s=null;try{s=i(e)}catch(e){
    +if(U("Language definition for '{}' could not be registered.".replace("{}",t)),
    +!r)throw e;U(e),s=g}
    +s.name||(s.name=t),n[t]=s,s.rawDefinition=i.bind(null,e),s.aliases&&R(s.aliases,{
    +languageName:t})},unregisterLanguage:e=>{delete n[e]
    +;for(const t of Object.keys(s))s[t]===e&&delete s[t]},
    +listLanguages:()=>Object.keys(n),getLanguage:N,registerAliases:R,
    +requireLanguage:e=>{
    +K("10.4.0","requireLanguage will be removed entirely in v11."),
    +K("10.4.0","Please see https://github.com/highlightjs/highlight.js/pull/2844")
    +;const t=N(e);if(t)return t
    +;throw Error("The '{}' language is required, but not loaded.".replace("{}",e))},
    +autoDetection:k,inherit:V,addPlugin:e=>{(e=>{
    +e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{
    +e["before:highlightBlock"](Object.assign({block:t.el},t))
    +}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{
    +e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),a.push(e)},
    +vuePlugin:P(e).VuePlugin}),e.debugMode=()=>{r=!1},e.safeMode=()=>{r=!0
    +},e.versionString="10.7.2";for(const e in _)"object"==typeof _[e]&&t(_[e])
    +;return Object.assign(e,_),e.addPlugin(m),e.addPlugin(D),e.addPlugin(E),e})({})
    +}();"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);
    +hljs.registerLanguage("apache",(()=>{"use strict";return e=>{const n={
    +className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/}
    +;return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,
    +contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,
    +contains:[n,{className:"number",begin:/:\d{1,5}/
    +},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",
    +begin:/\w+/,relevance:0,keywords:{
    +nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"
    +},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},
    +contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",
    +begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}]
    +},n,{className:"number",begin:/\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}
    +})());
    +hljs.registerLanguage("bash",(()=>{"use strict";function e(...e){
    +return e.map((e=>{return(s=e)?"string"==typeof s?s:s.source:null;var s
    +})).join("")}return s=>{const n={},t={begin:/\$\{/,end:/\}/,contains:["self",{
    +begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{
    +begin:e(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},t]});const a={
    +className:"subst",begin:/\$\(/,end:/\)/,contains:[s.BACKSLASH_ESCAPE]},i={
    +begin:/<<-?\s*(?=\w+)/,starts:{contains:[s.END_SAME_AS_BEGIN({begin:/(\w+)/,
    +end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/,
    +contains:[s.BACKSLASH_ESCAPE,n,a]};a.contains.push(c);const o={begin:/\$\(\(/,
    +end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},s.NUMBER_MODE,n]
    +},r=s.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10
    +}),l={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,
    +contains:[s.inherit(s.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{
    +name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z._-]+\b/,
    +keyword:"if then else elif fi for while in do done case esac function",
    +literal:"true false",
    +built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp"
    +},contains:[r,s.SHEBANG(),l,o,s.HASH_COMMENT_MODE,i,c,{className:"",begin:/\\"/
    +},{className:"string",begin:/'/,end:/'/},n]}}})());
    +hljs.registerLanguage("c",(()=>{"use strict";function e(e){
    +return((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(",e,")?")
    +}return t=>{const n=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]
    +}),r="[a-zA-Z_]\\w*::",a="(decltype\\(auto\\)|"+e(r)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",i={
    +className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",
    +variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",
    +contains:[t.BACKSLASH_ESCAPE]},{
    +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
    +end:"'",illegal:"."},t.END_SAME_AS_BEGIN({
    +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={
    +className:"number",variants:[{begin:"\\b(0b[01']+)"},{
    +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
    +},{
    +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    +}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
    +"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
    +},contains:[{begin:/\\\n/,relevance:0},t.inherit(s,{className:"meta-string"}),{
    +className:"meta-string",begin:/<.*?>/},n,t.C_BLOCK_COMMENT_MODE]},l={
    +className:"title",begin:e(r)+t.IDENT_RE,relevance:0
    +},d=e(r)+t.IDENT_RE+"\\s*\\(",u={
    +keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",
    +built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary",
    +literal:"true false nullptr NULL"},m=[c,i,n,t.C_BLOCK_COMMENT_MODE,o,s],p={
    +variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{
    +beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:m.concat([{
    +begin:/\(/,end:/\)/,keywords:u,contains:m.concat(["self"]),relevance:0}]),
    +relevance:0},_={className:"function",begin:"("+a+"[\\*&\\s]+)+"+d,
    +returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/,
    +contains:[{begin:"decltype\\(auto\\)",keywords:u,relevance:0},{begin:d,
    +returnBegin:!0,contains:[l],relevance:0},{className:"params",begin:/\(/,
    +end:/\)/,keywords:u,relevance:0,contains:[n,t.C_BLOCK_COMMENT_MODE,s,o,i,{
    +begin:/\(/,end:/\)/,keywords:u,relevance:0,
    +contains:["self",n,t.C_BLOCK_COMMENT_MODE,s,o,i]}]
    +},i,n,t.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u,
    +disableAutodetect:!0,illegal:"</",contains:[].concat(p,_,m,[c,{
    +begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",
    +end:">",keywords:u,contains:["self",i]},{begin:t.IDENT_RE+"::",keywords:u},{
    +className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,
    +contains:[{beginKeywords:"final class struct"},t.TITLE_MODE]}]),exports:{
    +preprocessor:c,strings:s,keywords:u}}}})());
    +hljs.registerLanguage("coffeescript",(()=>{"use strict"
    +;const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
    +;return r=>{const t={
    +keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((i=["var","const","let","function","static"],
    +e=>!i.includes(e))),literal:n.concat(["yes","no","on","off"]),
    +built_in:a.concat(["npm","print"])};var i;const s="[A-Za-z$_][0-9A-Za-z$_]*",o={
    +className:"subst",begin:/#\{/,end:/\}/,keywords:t
    +},c=[r.BINARY_NUMBER_MODE,r.inherit(r.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",
    +relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,
    +contains:[r.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[r.BACKSLASH_ESCAPE]
    +},{begin:/"""/,end:/"""/,contains:[r.BACKSLASH_ESCAPE,o]},{begin:/"/,end:/"/,
    +contains:[r.BACKSLASH_ESCAPE,o]}]},{className:"regexp",variants:[{begin:"///",
    +end:"///",contains:[o,r.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)",
    +relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+s
    +},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{
    +begin:"```",end:"```"},{begin:"`",end:"`"}]}];o.contains=c
    +;const l=r.inherit(r.TITLE_MODE,{begin:s}),d="(\\(.*\\)\\s*)?\\B[-=]>",g={
    +className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,
    +end:/\)/,keywords:t,contains:["self"].concat(c)}]};return{name:"CoffeeScript",
    +aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/,
    +contains:c.concat([r.COMMENT("###","###"),r.HASH_COMMENT_MODE,{
    +className:"function",begin:"^\\s*"+s+"\\s*=\\s*"+d,end:"[-=]>",returnBegin:!0,
    +contains:[l,g]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",
    +begin:d,end:"[-=]>",returnBegin:!0,contains:[g]}]},{className:"class",
    +beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{
    +beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[l]},l]
    +},{begin:s+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}})());
    +hljs.registerLanguage("cpp",(()=>{"use strict";function e(e){
    +return t("(",e,")?")}function t(...e){return e.map((e=>{
    +return(t=e)?"string"==typeof t?t:t.source:null;var t})).join("")}return n=>{
    +const r=n.COMMENT("//","$",{contains:[{begin:/\\\n/}]
    +}),a="[a-zA-Z_]\\w*::",i="(decltype\\(auto\\)|"+e(a)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",s={
    +className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",
    +variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",
    +contains:[n.BACKSLASH_ESCAPE]},{
    +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
    +end:"'",illegal:"."},n.END_SAME_AS_BEGIN({
    +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={
    +className:"number",variants:[{begin:"\\b(0b[01']+)"},{
    +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
    +},{
    +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    +}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
    +"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
    +},contains:[{begin:/\\\n/,relevance:0},n.inherit(c,{className:"meta-string"}),{
    +className:"meta-string",begin:/<.*?>/},r,n.C_BLOCK_COMMENT_MODE]},d={
    +className:"title",begin:e(a)+n.IDENT_RE,relevance:0
    +},u=e(a)+n.IDENT_RE+"\\s*\\(",m={
    +keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",
    +built_in:"_Bool _Complex _Imaginary",
    +_relevance_hints:["asin","atan2","atan","calloc","ceil","cosh","cos","exit","exp","fabs","floor","fmod","fprintf","fputs","free","frexp","auto_ptr","deque","list","queue","stack","vector","map","set","pair","bitset","multiset","multimap","unordered_set","fscanf","future","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","tolower","toupper","labs","ldexp","log10","log","malloc","realloc","memchr","memcmp","memcpy","memset","modf","pow","printf","putchar","puts","scanf","sinh","sin","snprintf","sprintf","sqrt","sscanf","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","tanh","tan","unordered_map","unordered_multiset","unordered_multimap","priority_queue","make_pair","array","shared_ptr","abort","terminate","abs","acos","vfprintf","vprintf","vsprintf","endl","initializer_list","unique_ptr","complex","imaginary","std","string","wstring","cin","cout","cerr","clog","stdin","stdout","stderr","stringstream","istringstream","ostringstream"],
    +literal:"true false nullptr NULL"},p={className:"function.dispatch",relevance:0,
    +keywords:m,
    +begin:t(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!while)/,n.IDENT_RE,(_=/\s*\(/,
    +t("(?=",_,")")))};var _;const g=[p,l,s,r,n.C_BLOCK_COMMENT_MODE,o,c],b={
    +variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{
    +beginKeywords:"new throw return else",end:/;/}],keywords:m,contains:g.concat([{
    +begin:/\(/,end:/\)/,keywords:m,contains:g.concat(["self"]),relevance:0}]),
    +relevance:0},f={className:"function",begin:"("+i+"[\\*&\\s]+)+"+u,
    +returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:m,illegal:/[^\w\s\*&:<>.]/,
    +contains:[{begin:"decltype\\(auto\\)",keywords:m,relevance:0},{begin:u,
    +returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{begin:/:/,
    +endsWithParent:!0,contains:[c,o]},{className:"params",begin:/\(/,end:/\)/,
    +keywords:m,relevance:0,contains:[r,n.C_BLOCK_COMMENT_MODE,c,o,s,{begin:/\(/,
    +end:/\)/,keywords:m,relevance:0,contains:["self",r,n.C_BLOCK_COMMENT_MODE,c,o,s]
    +}]},s,r,n.C_BLOCK_COMMENT_MODE,l]};return{name:"C++",
    +aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:m,illegal:"</",
    +classNameAliases:{"function.dispatch":"built_in"},
    +contains:[].concat(b,f,p,g,[l,{
    +begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",
    +end:">",keywords:m,contains:["self",s]},{begin:n.IDENT_RE+"::",keywords:m},{
    +className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,
    +contains:[{beginKeywords:"final class struct"},n.TITLE_MODE]}]),exports:{
    +preprocessor:l,strings:c,keywords:m}}}})());
    +hljs.registerLanguage("csharp",(()=>{"use strict";return e=>{const n={
    +keyword:["abstract","as","base","break","case","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]),
    +built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],
    +literal:["default","false","null","true"]},a=e.inherit(e.TITLE_MODE,{
    +begin:"[a-zA-Z](\\.?\\w)*"}),i={className:"number",variants:[{
    +begin:"\\b(0b[01']+)"},{
    +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{
    +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    +}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]
    +},t=e.inherit(s,{illegal:/\n/}),r={className:"subst",begin:/\{/,end:/\}/,
    +keywords:n},l=e.inherit(r,{illegal:/\n/}),c={className:"string",begin:/\$"/,
    +end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/
    +},e.BACKSLASH_ESCAPE,l]},o={className:"string",begin:/\$@"/,end:'"',contains:[{
    +begin:/\{\{/},{begin:/\}\}/},{begin:'""'},r]},d=e.inherit(o,{illegal:/\n/,
    +contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},l]})
    +;r.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE],
    +l.contains=[d,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.inherit(e.C_BLOCK_COMMENT_MODE,{
    +illegal:/\n/})];const g={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
    +},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},a]
    +},_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={
    +begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],
    +keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,
    +contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{
    +begin:"\x3c!--|--\x3e"},{begin:"</?",end:">"}]}]
    +}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",
    +end:"$",keywords:{
    +"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"
    +}},g,i,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,
    +illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"
    +},a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",
    +relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
    +contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
    +beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
    +contains:[a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",
    +begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{
    +className:"meta-string",begin:/"/,end:/"/}]},{
    +beginKeywords:"new return throw await else",relevance:0},{className:"function",
    +begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0,
    +end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{
    +beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial",
    +relevance:0},{begin:e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0,
    +contains:[e.TITLE_MODE,E],relevance:0},{className:"params",begin:/\(/,end:/\)/,
    +excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,
    +contains:[g,i,e.C_BLOCK_COMMENT_MODE]
    +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}})());
    +hljs.registerLanguage("css",(()=>{"use strict"
    +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse()
    +;return n=>{const a=(e=>({IMPORTANT:{className:"meta",begin:"!important"},
    +HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},
    +ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,
    +illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}
    +}))(n),l=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS",
    +case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},
    +classNameAliases:{keyframePosition:"selector-tag"},
    +contains:[n.C_BLOCK_COMMENT_MODE,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/
    +},n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0
    +},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0
    +},a.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{
    +begin:":("+i.join("|")+")"},{begin:"::("+o.join("|")+")"}]},{
    +className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{begin:":",end:"[;}]",
    +contains:[a.HEXCOLOR,a.IMPORTANT,n.CSS_NUMBER_MODE,...l,{
    +begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"
    +},contains:[{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]
    +},{className:"built_in",begin:/[\w-]+(?=\()/}]},{
    +begin:(s=/@/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",s,")")),
    +end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",
    +begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,
    +relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",
    +attribute:t.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"
    +},...l,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",
    +begin:"\\b("+e.join("|")+")\\b"}]};var s}})());
    +hljs.registerLanguage("diff",(()=>{"use strict";return e=>({name:"Diff",
    +aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{
    +begin:/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{
    +begin:/^--- +\d+,\d+ +----$/}]},{className:"comment",variants:[{begin:/Index: /,
    +end:/$/},{begin:/^index/,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^-{3}/,end:/$/
    +},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/^\*{15}$/},{
    +begin:/^diff --git/,end:/$/}]},{className:"addition",begin:/^\+/,end:/$/},{
    +className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,
    +end:/$/}]})})());
    +hljs.registerLanguage("go",(()=>{"use strict";return e=>{const n={
    +keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",
    +literal:"true false iota nil",
    +built_in:"append cap close complex copy imag len make new panic print println real recover delete"
    +};return{name:"Go",aliases:["golang"],keywords:n,illegal:"</",
    +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",
    +variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{
    +className:"number",variants:[{begin:e.C_NUMBER_RE+"[i]",relevance:1
    +},e.C_NUMBER_MODE]},{begin:/:=/},{className:"function",beginKeywords:"func",
    +end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",
    +begin:/\(/,end:/\)/,keywords:n,illegal:/["']/}]}]}}})());
    +hljs.registerLanguage("http",(()=>{"use strict";function e(...e){
    +return e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null;var n
    +})).join("")}return n=>{const a="HTTP/(2|1\\.[01])",s={className:"attribute",
    +begin:e("^",/[A-Za-z][A-Za-z0-9-]*/,"(?=\\:\\s)"),starts:{contains:[{
    +className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]}
    +},t=[s,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{
    +name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+a+" \\d{3})",
    +end:/$/,contains:[{className:"meta",begin:a},{className:"number",
    +begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:t}},{
    +begin:"(?=^[A-Z]+ (.*?) "+a+"$)",end:/$/,contains:[{className:"string",
    +begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:a},{
    +className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:t}
    +},n.inherit(s,{relevance:0})]}}})());
    +hljs.registerLanguage("ini",(()=>{"use strict";function e(e){
    +return e?"string"==typeof e?e:e.source:null}function n(...n){
    +return n.map((n=>e(n))).join("")}return s=>{const a={className:"number",
    +relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:s.NUMBER_RE}]
    +},i=s.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const t={
    +className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/
    +}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={
    +className:"string",contains:[s.BACKSLASH_ESCAPE],variants:[{begin:"'''",
    +end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'
    +},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[i,r,t,l,a,"self"],
    +relevance:0
    +},g="("+[/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/].map((n=>e(n))).join("|")+")"
    +;return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,
    +contains:[i,{className:"section",begin:/\[+/,end:/\]+/},{
    +begin:n(g,"(\\s*\\.\\s*",g,")*",n("(?=",/\s*=\s*[^#\s]/,")")),className:"attr",
    +starts:{end:/$/,contains:[i,c,r,t,l,a]}}]}}})());
    +hljs.registerLanguage("java",(()=>{"use strict"
    +;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={
    +className:"number",variants:[{
    +begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    +},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
    +begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{
    +begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    +},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{
    +begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
    +relevance:0};return e=>{
    +var n="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",s={
    +className:"meta",begin:"@[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",
    +contains:[{begin:/\(/,end:/\)/,contains:["self"]}]};const r=a;return{
    +name:"Java",aliases:["jsp"],keywords:n,illegal:/<\/|#/,
    +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,
    +relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{
    +begin:/import java\.[a-z]+\./,keywords:"import",relevance:2
    +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{
    +className:"class",beginKeywords:"class interface enum",end:/[{;=]/,
    +excludeEnd:!0,relevance:1,keywords:"class interface enum",illegal:/[:"\[\]]/,
    +contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{
    +beginKeywords:"new throw return else",relevance:0},{className:"class",
    +begin:"record\\s+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,excludeEnd:!0,
    +end:/[{;=]/,keywords:n,contains:[{beginKeywords:"record"},{
    +begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,
    +keywords:n,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE]
    +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"function",
    +begin:"([\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*(<[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*(\\s*,\\s*[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",
    +returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:n,contains:[{
    +begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,
    +keywords:n,relevance:0,
    +contains:[s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.C_BLOCK_COMMENT_MODE]
    +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},r,s]}}})());
    +hljs.registerLanguage("javascript",(()=>{"use strict"
    +;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
    +;function r(e){return t("(?=",e,")")}function t(...e){return e.map((e=>{
    +return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return i=>{
    +const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,
    +isTrulyOpeningTag:(e,n)=>{const a=e[0].length+e.index,s=e.input[a]
    +;"<"!==s?">"===s&&(((e,{after:n})=>{const a="</"+e[0].slice(1)
    +;return-1!==e.input.indexOf(a,n)})(e,{after:a
    +})||n.ignoreMatch()):n.ignoreMatch()}},l={$pattern:e,keyword:n,literal:a,
    +built_in:s},g="\\.([0-9](_?[0-9])*)",b="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",d={
    +className:"number",variants:[{
    +begin:`(\\b(${b})((${g})|\\.)?|(${g}))[eE][+-]?([0-9](_?[0-9])*)\\b`},{
    +begin:`\\b(${b})\\b((${g})\\b|\\.)?|(${g})\\b`},{
    +begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
    +begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
    +begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
    +begin:"\\b0[0-7]+n?\\b"}],relevance:0},E={className:"subst",begin:"\\$\\{",
    +end:"\\}",keywords:l,contains:[]},u={begin:"html`",end:"",starts:{end:"`",
    +returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,E],subLanguage:"xml"}},_={
    +begin:"css`",end:"",starts:{end:"`",returnEnd:!1,
    +contains:[i.BACKSLASH_ESCAPE,E],subLanguage:"css"}},m={className:"string",
    +begin:"`",end:"`",contains:[i.BACKSLASH_ESCAPE,E]},y={className:"comment",
    +variants:[i.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
    +className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",
    +end:"\\}",relevance:0},{className:"variable",begin:c+"(?=\\s*(-)|$)",
    +endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
    +}),i.C_BLOCK_COMMENT_MODE,i.C_LINE_COMMENT_MODE]
    +},N=[i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,u,_,m,d,i.REGEXP_MODE]
    +;E.contains=N.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(N)
    +});const A=[].concat(y,E.contains),f=A.concat([{begin:/\(/,end:/\)/,keywords:l,
    +contains:["self"].concat(A)}]),p={className:"params",begin:/\(/,end:/\)/,
    +excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f};return{name:"Javascript",
    +aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:f},
    +illegal:/#(?![$_A-z])/,contains:[i.SHEBANG({label:"shebang",binary:"node",
    +relevance:5}),{label:"use_strict",className:"meta",relevance:10,
    +begin:/^\s*['"]use (strict|asm)['"]/
    +},i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,u,_,m,y,d,{
    +begin:t(/[{,\n]\s*/,r(t(/(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/,c+"\\s*:"))),
    +relevance:0,contains:[{className:"attr",begin:c+r("\\s*:"),relevance:0}]},{
    +begin:"("+i.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
    +keywords:"return throw case",contains:[y,i.REGEXP_MODE,{className:"function",
    +begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+i.UNDERSCORE_IDENT_RE+")\\s*=>",
    +returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{
    +begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0
    +},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}]
    +},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{
    +variants:[{begin:"<>",end:"</>"},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,
    +end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,
    +contains:["self"]}]}],relevance:0},{className:"function",
    +beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l,
    +contains:["self",i.inherit(i.TITLE_MODE,{begin:c}),p],illegal:/%/},{
    +beginKeywords:"while if switch catch for"},{className:"function",
    +begin:i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
    +returnBegin:!0,contains:[p,i.inherit(i.TITLE_MODE,{begin:c})]},{variants:[{
    +begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class",
    +beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{
    +beginKeywords:"extends"},i.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/,
    +end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:c}),"self",p]
    +},{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set",
    +contains:[i.inherit(i.TITLE_MODE,{begin:c}),{begin:/\(\)/},p]},{begin:/\$[(.]/}]
    +}}})());
    +hljs.registerLanguage("json",(()=>{"use strict";return n=>{const e={
    +literal:"true false null"
    +},i=[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],a=[n.QUOTE_STRING_MODE,n.C_NUMBER_MODE],l={
    +end:",",endsWithParent:!0,excludeEnd:!0,contains:a,keywords:e},t={begin:/\{/,
    +end:/\}/,contains:[{className:"attr",begin:/"/,end:/"/,
    +contains:[n.BACKSLASH_ESCAPE],illegal:"\\n"},n.inherit(l,{begin:/:/
    +})].concat(i),illegal:"\\S"},s={begin:"\\[",end:"\\]",contains:[n.inherit(l)],
    +illegal:"\\S"};return a.push(t,s),i.forEach((n=>{a.push(n)})),{name:"JSON",
    +contains:a,keywords:e,illegal:"\\S"}}})());
    +hljs.registerLanguage("kotlin",(()=>{"use strict"
    +;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={
    +className:"number",variants:[{
    +begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    +},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
    +begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{
    +begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    +},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{
    +begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
    +relevance:0};return e=>{const n={
    +keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",
    +built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",
    +literal:"true false null"},i={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"
    +},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},t={
    +className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string",
    +variants:[{begin:'"""',end:'"""(?=[^"])',contains:[t,s]},{begin:"'",end:"'",
    +illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,
    +contains:[e.BACKSLASH_ESCAPE,t,s]}]};s.contains.push(r);const l={
    +className:"meta",
    +begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"
    +},c={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,
    +end:/\)/,contains:[e.inherit(r,{className:"meta-string"})]}]
    +},o=a,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),E={
    +variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,
    +contains:[]}]},d=E;return d.variants[1].contains=[E],E.variants[1].contains=[d],
    +{name:"Kotlin",aliases:["kt","kts"],keywords:n,
    +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",
    +begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,{className:"keyword",
    +begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",
    +begin:/@\w+/}]}},i,l,c,{className:"function",beginKeywords:"fun",end:"[(]|$",
    +returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{
    +begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,
    +keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,
    +endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,
    +endsWithParent:!0,contains:[E,e.C_LINE_COMMENT_MODE,b],relevance:0
    +},e.C_LINE_COMMENT_MODE,b,l,c,r,e.C_NUMBER_MODE]},b]},{className:"class",
    +beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,
    +illegal:"extends implements",contains:[{
    +beginKeywords:"public protected internal private constructor"
    +},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,
    +excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,
    +excludeBegin:!0,returnEnd:!0},l,c]},r,{className:"meta",begin:"^#!/usr/bin/env",
    +end:"$",illegal:"\n"},o]}}})());
    +hljs.registerLanguage("less",(()=>{"use strict"
    +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],n=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse(),r=i.concat(o)
    +;return a=>{const s=(e=>({IMPORTANT:{className:"meta",begin:"!important"},
    +HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},
    +ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,
    +illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}
    +}))(a),l=r,d="([\\w-]+|@\\{[\\w-]+\\})",c=[],g=[],b=e=>({className:"string",
    +begin:"~?"+e+".*?"+e}),m=(e,t,i)=>({className:e,begin:t,relevance:i}),u={
    +$pattern:/[a-z-]+/,keyword:"and or not only",attribute:t.join(" ")},p={
    +begin:"\\(",end:"\\)",contains:g,keywords:u,relevance:0}
    +;g.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,b("'"),b('"'),a.CSS_NUMBER_MODE,{
    +begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",
    +excludeEnd:!0}
    +},s.HEXCOLOR,p,m("variable","@@?[\\w-]+",10),m("variable","@\\{[\\w-]+\\}"),m("built_in","~?`[^`]*?`"),{
    +className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0
    +},s.IMPORTANT);const f=g.concat({begin:/\{/,end:/\}/,contains:c}),h={
    +beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"
    +}].concat(g)},w={begin:d+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,
    +contains:[{begin:/-(webkit|moz|ms|o)-/},{className:"attribute",
    +begin:"\\b("+n.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,
    +illegal:"[<=$]",relevance:0,contains:g}}]},v={className:"keyword",
    +begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",
    +starts:{end:"[;{}]",keywords:u,returnEnd:!0,contains:g,relevance:0}},y={
    +className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{
    +begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:f}},k={variants:[{
    +begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:d,end:/\{/}],returnBegin:!0,
    +returnEnd:!0,illegal:"[<='$\"]",relevance:0,
    +contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,h,m("keyword","all\\b"),m("variable","@\\{[\\w-]+\\}"),{
    +begin:"\\b("+e.join("|")+")\\b",className:"selector-tag"
    +},m("selector-tag",d+"%?",0),m("selector-id","#"+d),m("selector-class","\\."+d,0),m("selector-tag","&",0),s.ATTRIBUTE_SELECTOR_MODE,{
    +className:"selector-pseudo",begin:":("+i.join("|")+")"},{
    +className:"selector-pseudo",begin:"::("+o.join("|")+")"},{begin:"\\(",end:"\\)",
    +contains:f},{begin:"!important"}]},E={begin:`[\\w-]+:(:)?(${l.join("|")})`,
    +returnBegin:!0,contains:[k]}
    +;return c.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,v,y,E,w,k),{
    +name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:c}}})());
    +hljs.registerLanguage("lua",(()=>{"use strict";return e=>{
    +const t="\\[=*\\[",a="\\]=*\\]",n={begin:t,end:a,contains:["self"]
    +},o=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[",a,{contains:[n],
    +relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,
    +literal:"true false nil",
    +keyword:"and break do else elseif end for goto if in local not or repeat return then until while",
    +built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"
    +},contains:o.concat([{className:"function",beginKeywords:"function",end:"\\)",
    +contains:[e.inherit(e.TITLE_MODE,{
    +begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",
    +begin:"\\(",endsWithParent:!0,contains:o}].concat(o)
    +},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",
    +begin:t,end:a,contains:[n],relevance:5}])}}})());
    +hljs.registerLanguage("makefile",(()=>{"use strict";return e=>{const i={
    +className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",
    +contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},a={className:"string",
    +begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i]},n={className:"variable",
    +begin:/\$\([\w-]+\s/,end:/\)/,keywords:{
    +built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"
    +},contains:[i]},s={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},r={
    +className:"section",begin:/^[^\s]+:/,end:/$/,contains:[i]};return{
    +name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,
    +keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"
    +},contains:[e.HASH_COMMENT_MODE,i,a,n,s,{className:"meta",begin:/^\.PHONY:/,
    +end:/$/,keywords:{$pattern:/[\.\w]+/,"meta-keyword":".PHONY"}},r]}}})());
    +hljs.registerLanguage("xml",(()=>{"use strict";function e(e){
    +return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")}
    +function a(...n){return n.map((n=>e(n))).join("")}function s(...n){
    +return"("+n.map((n=>e(n))).join("|")+")"}return e=>{
    +const t=a(/[A-Z_]/,a("(",/[A-Z0-9_.-]*:/,")?"),/[A-Z0-9_.-]*/),i={
    +className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},r={begin:/\s/,
    +contains:[{className:"meta-keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]
    +},c=e.inherit(r,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{
    +className:"meta-string"}),g=e.inherit(e.QUOTE_STRING_MODE,{
    +className:"meta-string"}),m={endsWithParent:!0,illegal:/</,relevance:0,
    +contains:[{className:"attr",begin:/[A-Za-z0-9._:-]+/,relevance:0},{begin:/=\s*/,
    +relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,
    +end:/"/,contains:[i]},{begin:/'/,end:/'/,contains:[i]},{begin:/[^\s"'=<>`]+/}]}]
    +}]};return{name:"HTML, XML",
    +aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],
    +case_insensitive:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,
    +relevance:10,contains:[r,g,l,c,{begin:/\[/,end:/\]/,contains:[{className:"meta",
    +begin:/<![a-z]/,end:/>/,contains:[r,c,g,l]}]}]},e.COMMENT(/<!--/,/-->/,{
    +relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},i,{
    +className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",
    +begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[m],starts:{
    +end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",
    +begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[m],starts:{
    +end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{
    +className:"tag",begin:/<>|<\/>/},{className:"tag",
    +begin:a(/</,n(a(t,s(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",
    +begin:t,relevance:0,starts:m}]},{className:"tag",begin:a(/<\//,n(a(t,/>/))),
    +contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,
    +endsParent:!0}]}]}}})());
    +hljs.registerLanguage("markdown",(()=>{"use strict";function n(...n){
    +return n.map((n=>{return(e=n)?"string"==typeof e?e:e.source:null;var e
    +})).join("")}return e=>{const a={begin:/<\/?[A-Za-z_]/,end:">",
    +subLanguage:"xml",relevance:0},i={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0
    +},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,
    +relevance:2},{begin:n(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),
    +relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{
    +begin:/\[.+?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{
    +className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,
    +returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",
    +excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",
    +end:"\\]",excludeBegin:!0,excludeEnd:!0}]},s={className:"strong",contains:[],
    +variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},c={
    +className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{
    +begin:/_(?!_)/,end:/_/,relevance:0}]};s.contains.push(c),c.contains.push(s)
    +;let t=[a,i]
    +;return s.contains=s.contains.concat(t),c.contains=c.contains.concat(t),
    +t=t.concat(s,c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{
    +className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:t},{
    +begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",
    +contains:t}]}]},a,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",
    +end:"\\s+",excludeEnd:!0},s,c,{className:"quote",begin:"^>\\s+",contains:t,
    +end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{
    +begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{
    +begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",
    +contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{
    +begin:"^[-\\*]{3,}",end:"$"},i,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{
    +className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{
    +className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}})());
    +hljs.registerLanguage("nginx",(()=>{"use strict";return e=>{const n={
    +className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/\}/},{
    +begin:/[$@]/+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,keywords:{
    +$pattern:"[a-z/_]+",
    +literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"
    +},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",
    +contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/
    +}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]
    +},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",
    +end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{
    +begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",
    +begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{
    +className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},n]};return{
    +name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{
    +begin:e.UNDERSCORE_IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\{/,contains:[{
    +className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{
    +begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|\\{",returnBegin:!0,contains:[{
    +className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}],
    +illegal:"[^\\s\\}]"}}})());
    +hljs.registerLanguage("objectivec",(()=>{"use strict";return e=>{
    +const n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n,
    +keyword:"@interface @class @protocol @implementation"};return{
    +name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],
    +keywords:{$pattern:n,
    +keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",
    +literal:"false true FALSE TRUE nil YES NO NULL",
    +built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"
    +},illegal:"</",contains:[{className:"built_in",
    +begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"
    +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{
    +className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",
    +contains:[e.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,
    +keywords:{
    +"meta-keyword":"if else elif endif define undef warning error line pragma ifdef ifndef include"
    +},contains:[{begin:/\\\n/,relevance:0},e.inherit(e.QUOTE_STRING_MODE,{
    +className:"meta-string"}),{className:"meta-string",begin:/<.*?>/,end:/$/,
    +illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
    +className:"class",begin:"("+_.keyword.split(" ").join("|")+")\\b",end:/(\{|$)/,
    +excludeEnd:!0,keywords:_,contains:[e.UNDERSCORE_TITLE_MODE]},{
    +begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}})());
    +hljs.registerLanguage("perl",(()=>{"use strict";function e(e){
    +return e?"string"==typeof e?e:e.source:null}function n(...n){
    +return n.map((n=>e(n))).join("")}function t(...n){
    +return"("+n.map((n=>e(n))).join("|")+")"}return e=>{
    +const r=/[dualxmsipngr]{0,12}/,s={$pattern:/[\w.]+/,
    +keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0"
    +},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:s},a={begin:/->\{/,
    +end:/\}/},o={variants:[{begin:/\$\d/},{
    +begin:n(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")
    +},{begin:/[$%@][^\s\w{]/,relevance:0}]
    +},c=[e.BACKSLASH_ESCAPE,i,o],g=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],l=(e,t,s="\\1")=>{
    +const i="\\1"===s?s:n(s,t)
    +;return n(n("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,i,/(?:\\.|[^\\\/])*?/,s,r)
    +},d=(e,t,s)=>n(n("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,s,r),p=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{
    +endsWithParent:!0}),a,{className:"string",contains:c,variants:[{
    +begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",
    +end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{
    +begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",
    +relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",
    +contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",
    +contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{
    +begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",
    +begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",
    +relevance:0},{
    +begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",
    +keywords:"split return print reverse grep",relevance:0,
    +contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{
    +begin:l("s|tr|y",t(...g))},{begin:l("s|tr|y","\\(","\\)")},{
    +begin:l("s|tr|y","\\[","\\]")},{begin:l("s|tr|y","\\{","\\}")}],relevance:2},{
    +className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{
    +begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",t(...g),/\1/)},{
    +begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{
    +begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",
    +end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{
    +begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",
    +subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]
    +}];return i.contains=p,a.contains=p,{name:"Perl",aliases:["pl","pm"],keywords:s,
    +contains:p}}})());
    +hljs.registerLanguage("php",(()=>{"use strict";return e=>{const r={
    +className:"variable",
    +begin:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?![A-Za-z0-9])(?![$])"},t={
    +className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{
    +begin:/\?>/}]},a={className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,
    +end:/\}/}]},n=e.inherit(e.APOS_STRING_MODE,{illegal:null
    +}),i=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,
    +contains:e.QUOTE_STRING_MODE.contains.concat(a)}),o=e.END_SAME_AS_BEGIN({
    +begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/,
    +contains:e.QUOTE_STRING_MODE.contains.concat(a)}),l={className:"string",
    +contains:[e.BACKSLASH_ESCAPE,t],variants:[e.inherit(n,{begin:"b'",end:"'"
    +}),e.inherit(i,{begin:'b"',end:'"'}),i,n,o]},s={className:"number",variants:[{
    +begin:"\\b0b[01]+(?:_[01]+)*\\b"},{begin:"\\b0o[0-7]+(?:_[0-7]+)*\\b"},{
    +begin:"\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b"},{
    +begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:e[+-]?\\d+)?"
    +}],relevance:0},c={
    +keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile enum eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list match|0 mixed new object or private protected public real return string switch throw trait try unset use var void while xor yield",
    +literal:"false null true",
    +built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException UnhandledMatchError ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Stringable Throwable Traversable WeakReference WeakMap Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass"
    +};return{aliases:["php3","php4","php5","php6","php7","php8"],
    +case_insensitive:!0,keywords:c,
    +contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[t]
    +}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]
    +}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,
    +keywords:"__halt_compiler"}),t,{className:"keyword",begin:/\$this\b/},r,{
    +begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",
    +relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,
    +illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{
    +begin:"=>",endsParent:!0},{className:"params",begin:"\\(",end:"\\)",
    +excludeBegin:!0,excludeEnd:!0,keywords:c,
    +contains:["self",r,e.C_BLOCK_COMMENT_MODE,l,s]}]},{className:"class",variants:[{
    +beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",
    +illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{
    +beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{
    +beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,
    +contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",relevance:0,end:";",
    +contains:[e.UNDERSCORE_TITLE_MODE]},l,s]}}})());
    +hljs.registerLanguage("php-template",(()=>{"use strict";return n=>({
    +name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,
    +subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',
    +end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{
    +illegal:null,className:null,contains:null,skip:!0
    +}),n.inherit(n.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,
    +skip:!0})]}]})})());
    +hljs.registerLanguage("plaintext",(()=>{"use strict";return t=>({
    +name:"Plain text",aliases:["text","txt"],disableAutodetect:!0})})());
    +hljs.registerLanguage("properties",(()=>{"use strict";return e=>{
    +var n="[ \\t\\f]*",a=n+"[:=]"+n,t="("+a+"|[ \\t\\f]+)",r="([^\\\\\\W:= \\t\\f\\n]|\\\\.)+",s="([^\\\\:= \\t\\f\\n]|\\\\.)+",i={
    +end:t,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{
    +begin:"\\\\\\\\"},{begin:"\\\\\\n"}]}};return{name:".properties",
    +case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{
    +returnBegin:!0,variants:[{begin:r+a,relevance:1},{begin:r+"[ \\t\\f]+",
    +relevance:0}],contains:[{className:"attr",begin:r,endsParent:!0,relevance:0}],
    +starts:i},{begin:s+t,returnBegin:!0,relevance:0,contains:[{className:"meta",
    +begin:s,endsParent:!0,relevance:0}],starts:i},{className:"attr",relevance:0,
    +begin:s+n+"$"}]}}})());
    +hljs.registerLanguage("python",(()=>{"use strict";return e=>{const n={
    +$pattern:/[A-Za-z]\w+|__\w+__/,
    +keyword:["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],
    +built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],
    +literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],
    +type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]
    +},a={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/,
    +end:/\}/,keywords:n,illegal:/#/},s={begin:/\{\{/,relevance:0},t={
    +className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{
    +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,
    +contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{
    +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,
    +contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{
    +begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,
    +contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,
    +end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([uU]|[rR])'/,end:/'/,
    +relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{
    +begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,
    +end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,
    +contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,
    +contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
    +},r="[0-9](_?[0-9])*",l=`(\\b(${r}))?\\.(${r})|\\b(${r})\\.`,b={
    +className:"number",relevance:0,variants:[{
    +begin:`(\\b(${r})|(${l}))[eE][+-]?(${r})[jJ]?\\b`},{begin:`(${l})[jJ]?`},{
    +begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{
    +begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{
    +begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${r})[jJ]\\b`}]},o={
    +className:"comment",
    +begin:(d=/# type:/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",d,")")),
    +end:/$/,keywords:n,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,
    +endsWithParent:!0}]},c={className:"params",variants:[{className:"",
    +begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,
    +keywords:n,contains:["self",a,b,t,e.HASH_COMMENT_MODE]}]};var d
    +;return i.contains=[t,b,a],{name:"Python",aliases:["py","gyp","ipython"],
    +keywords:n,illegal:/(<\/|->|\?)|=>/,contains:[a,b,{begin:/\bself\b/},{
    +beginKeywords:"if",relevance:0},t,o,e.HASH_COMMENT_MODE,{variants:[{
    +className:"function",beginKeywords:"def"},{className:"class",
    +beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,
    +contains:[e.UNDERSCORE_TITLE_MODE,c,{begin:/->/,endsWithParent:!0,keywords:n}]
    +},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[b,c,t]}]}}})());
    +hljs.registerLanguage("python-repl",(()=>{"use strict";return s=>({
    +aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",
    +subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{
    +begin:/^\.\.\.(?=[ ]|$)/}]}]})})());
    +hljs.registerLanguage("r",(()=>{"use strict";function e(...e){return e.map((e=>{
    +return(a=e)?"string"==typeof a?a:a.source:null;var a})).join("")}return a=>{
    +const n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/;return{name:"R",
    +illegal:/->/,keywords:{$pattern:n,
    +keyword:"function if in break next repeat else for while",
    +literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",
    +built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"
    +},compilerExtensions:[(a,n)=>{if(!a.beforeMatch)return
    +;if(a.starts)throw Error("beforeMatch cannot be used with starts")
    +;const i=Object.assign({},a);Object.keys(a).forEach((e=>{delete a[e]
    +})),a.begin=e(i.beforeMatch,e("(?=",i.begin,")")),a.starts={relevance:0,
    +contains:[Object.assign(i,{endsParent:!0})]},a.relevance=0,delete i.beforeMatch
    +}],contains:[a.COMMENT(/#'/,/$/,{contains:[{className:"doctag",
    +begin:"@examples",starts:{contains:[{begin:/\n/},{begin:/#'\s*(?=@[a-zA-Z]+)/,
    +endsParent:!0},{begin:/#'/,end:/$/,excludeBegin:!0}]}},{className:"doctag",
    +begin:"@param",end:/$/,contains:[{className:"variable",variants:[{begin:n},{
    +begin:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{className:"doctag",
    +begin:/@[a-zA-Z]+/},{className:"meta-keyword",begin:/\\[a-zA-Z]+/}]
    +}),a.HASH_COMMENT_MODE,{className:"string",contains:[a.BACKSLASH_ESCAPE],
    +variants:[a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/
    +}),a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/
    +}),a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/
    +}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/
    +}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/
    +}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',
    +relevance:0},{begin:"'",end:"'",relevance:0}]},{className:"number",relevance:0,
    +beforeMatch:/([^a-zA-Z0-9._])/,variants:[{
    +match:/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/},{
    +match:/0[xX][0-9a-fA-F]+([pP][+-]?\d+)?[Li]?/},{
    +match:/(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?[Li]?/}]},{begin:"%",end:"%"},{
    +begin:e(/[a-zA-Z][a-zA-Z_0-9]*/,"\\s+<-\\s+")},{begin:"`",end:"`",contains:[{
    +begin:/\\./}]}]}}})());
    +hljs.registerLanguage("ruby",(()=>{"use strict";function e(...e){
    +return e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null;var n
    +})).join("")}return n=>{
    +const a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",i={
    +keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor __FILE__",
    +built_in:"proc lambda",literal:"true false nil"},s={className:"doctag",
    +begin:"@[A-Za-z]+"},r={begin:"#<",end:">"},b=[n.COMMENT("#","$",{contains:[s]
    +}),n.COMMENT("^=begin","^=end",{contains:[s],relevance:10
    +}),n.COMMENT("^__END__","\\n$")],c={className:"subst",begin:/#\{/,end:/\}/,
    +keywords:i},t={className:"string",contains:[n.BACKSLASH_ESCAPE,c],variants:[{
    +begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,
    +end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{
    +begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,
    +end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{
    +begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{
    +begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{
    +begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{
    +begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{
    +begin:/<<[-~]?'?(\w+)\n(?:[^\n]*\n)*?\s*\1\b/,returnBegin:!0,contains:[{
    +begin:/<<[-~]?'?/},n.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,
    +contains:[n.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",d={className:"number",
    +relevance:0,variants:[{
    +begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{
    +begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"
    +},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{
    +begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{
    +begin:"\\b0(_?[0-7])+r?i?\\b"}]},l={className:"params",begin:"\\(",end:"\\)",
    +endsParent:!0,keywords:i},o=[t,{className:"class",beginKeywords:"class module",
    +end:"$|;",illegal:/=/,contains:[n.inherit(n.TITLE_MODE,{
    +begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|!)?"}),{begin:"<\\s*",contains:[{
    +begin:"("+n.IDENT_RE+"::)?"+n.IDENT_RE,relevance:0}]}].concat(b)},{
    +className:"function",begin:e(/def\s+/,(_=a+"\\s*(\\(|;|$)",e("(?=",_,")"))),
    +relevance:0,keywords:"def",end:"$|;",contains:[n.inherit(n.TITLE_MODE,{begin:a
    +}),l].concat(b)},{begin:n.IDENT_RE+"::"},{className:"symbol",
    +begin:n.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",
    +begin:":(?!\\s)",contains:[t,{begin:a}],relevance:0},d,{className:"variable",
    +begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{
    +className:"params",begin:/\|/,end:/\|/,relevance:0,keywords:i},{
    +begin:"("+n.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{
    +className:"regexp",contains:[n.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{
    +begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",
    +end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]
    +}].concat(r,b),relevance:0}].concat(r,b);var _;c.contains=o,l.contains=o
    +;const E=[{begin:/^\s*=>/,starts:{end:"$",contains:o}},{className:"meta",
    +begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",
    +starts:{end:"$",contains:o}}];return b.unshift(r),{name:"Ruby",
    +aliases:["rb","gemspec","podspec","thor","irb"],keywords:i,illegal:/\/\*/,
    +contains:[n.SHEBANG({binary:"ruby"})].concat(E).concat(b).concat(o)}}})());
    +hljs.registerLanguage("rust",(()=>{"use strict";return e=>{
    +const n="([ui](8|16|32|64|128|size)|f(32|64))?",t="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!"
    +;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",
    +keyword:"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield",
    +literal:"true false Some None Ok Err",built_in:t},illegal:"</",
    +contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]
    +}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{
    +className:"string",variants:[{begin:/r(#*)"(.|\n)*?"\1(?!#)/},{
    +begin:/b?'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/}]},{className:"symbol",
    +begin:/'[a-zA-Z_][a-zA-Z0-9_]*/},{className:"number",variants:[{
    +begin:"\\b0b([01_]+)"+n},{begin:"\\b0o([0-7_]+)"+n},{
    +begin:"\\b0x([A-Fa-f0-9_]+)"+n},{
    +begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+n}],relevance:0},{
    +className:"function",beginKeywords:"fn",end:"(\\(|<)",excludeEnd:!0,
    +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"meta",begin:"#!?\\[",end:"\\]",
    +contains:[{className:"meta-string",begin:/"/,end:/"/}]},{className:"class",
    +beginKeywords:"type",end:";",contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{
    +endsParent:!0})],illegal:"\\S"},{className:"class",
    +beginKeywords:"trait enum struct union",end:/\{/,
    +contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{endsParent:!0})],illegal:"[\\w\\d]"
    +},{begin:e.IDENT_RE+"::",keywords:{built_in:t}},{begin:"->"}]}}})());
    +hljs.registerLanguage("scss",(()=>{"use strict"
    +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse()
    +;return a=>{const n=(e=>({IMPORTANT:{className:"meta",begin:"!important"},
    +HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},
    +ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,
    +illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}
    +}))(a),l=o,s=i,d="@[a-z-]+",c={className:"variable",
    +begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"};return{name:"SCSS",case_insensitive:!0,
    +illegal:"[=/|']",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{
    +className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{
    +className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0
    +},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",
    +begin:"\\b("+e.join("|")+")\\b",relevance:0},{className:"selector-pseudo",
    +begin:":("+s.join("|")+")"},{className:"selector-pseudo",
    +begin:"::("+l.join("|")+")"},c,{begin:/\(/,end:/\)/,contains:[a.CSS_NUMBER_MODE]
    +},{className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{
    +begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"
    +},{begin:":",end:";",
    +contains:[c,n.HEXCOLOR,a.CSS_NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.IMPORTANT]
    +},{begin:"@(page|font-face)",lexemes:d,keywords:"@page @font-face"},{begin:"@",
    +end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,
    +keyword:"and or not only",attribute:t.join(" ")},contains:[{begin:d,
    +className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"
    +},c,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.HEXCOLOR,a.CSS_NUMBER_MODE]}]}}
    +})());
    +hljs.registerLanguage("shell",(()=>{"use strict";return s=>({
    +name:"Shell Session",aliases:["console"],contains:[{className:"meta",
    +begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#]/,starts:{end:/[^\\](?=\s*$)/,
    +subLanguage:"bash"}}]})})());
    +hljs.registerLanguage("sql",(()=>{"use strict";function e(e){
    +return e?"string"==typeof e?e:e.source:null}function r(...r){
    +return r.map((r=>e(r))).join("")}function t(...r){
    +return"("+r.map((r=>e(r))).join("|")+")"}return e=>{
    +const n=e.COMMENT("--","$"),a=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],s=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],o=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],c=s,l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update   ","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!s.includes(e))),u={
    +begin:r(/\b/,t(...c),/\s*\(/),keywords:{built_in:c}};return{name:"SQL",
    +case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,
    +keyword:((e,{exceptions:r,when:t}={})=>{const n=t
    +;return r=r||[],e.map((e=>e.match(/\|\d+$/)||r.includes(e)?e:n(e)?e+"|0":e))
    +})(l,{when:e=>e.length<3}),literal:a,type:i,
    +built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]
    +},contains:[{begin:t(...o),keywords:{$pattern:/[\w\.]+/,keyword:l.concat(o),
    +literal:a,type:i}},{className:"type",
    +begin:t("double precision","large object","with timezone","without timezone")
    +},u,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{
    +begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{
    +begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"operator",
    +begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}})());
    +hljs.registerLanguage("swift",(()=>{"use strict";function e(e){
    +return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")}
    +function a(...n){return n.map((n=>e(n))).join("")}function t(...n){
    +return"("+n.map((n=>e(n))).join("|")+")"}
    +const i=e=>a(/\b/,e,/\w$/.test(e)?/\b/:/\B/),s=["Protocol","Type"].map(i),u=["init","self"].map(i),c=["Any","Self"],r=["associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],o=["false","nil","true"],l=["assignment","associativity","higherThan","left","lowerThan","none","right"],m=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],d=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],p=t(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),F=t(p,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),b=a(p,F,"*"),h=t(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),f=t(h,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),w=a(h,f,"*"),y=a(/[A-Z]/,f,"*"),g=["autoclosure",a(/convention\(/,t("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",a(/objc\(/,w,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","testable","UIApplicationMain","unknown","usableFromInline"],E=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"]
    +;return e=>{const p={match:/\s+/,relevance:0},h=e.COMMENT("/\\*","\\*/",{
    +contains:["self"]}),v=[e.C_LINE_COMMENT_MODE,h],N={className:"keyword",
    +begin:a(/\./,n(t(...s,...u))),end:t(...s,...u),excludeBegin:!0},A={
    +match:a(/\./,t(...r)),relevance:0
    +},C=r.filter((e=>"string"==typeof e)).concat(["_|0"]),_={variants:[{
    +className:"keyword",
    +match:t(...r.filter((e=>"string"!=typeof e)).concat(c).map(i),...u)}]},D={
    +$pattern:t(/\b\w+/,/#\w+/),keyword:C.concat(m),literal:o},B=[N,A,_],k=[{
    +match:a(/\./,t(...d)),relevance:0},{className:"built_in",
    +match:a(/\b/,t(...d),/(?=\()/)}],M={match:/->/,relevance:0},S=[M,{
    +className:"operator",relevance:0,variants:[{match:b},{match:`\\.(\\.|${F})+`}]
    +}],x="([0-9a-fA-F]_*)+",I={className:"number",relevance:0,variants:[{
    +match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{
    +match:`\\b0x(${x})(\\.(${x}))?([pP][+-]?(([0-9]_*)+))?\\b`},{
    +match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},O=(e="")=>({
    +className:"subst",variants:[{match:a(/\\/,e,/[0\\tnr"']/)},{
    +match:a(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),T=(e="")=>({className:"subst",
    +match:a(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),L=(e="")=>({className:"subst",
    +label:"interpol",begin:a(/\\/,e,/\(/),end:/\)/}),P=(e="")=>({begin:a(e,/"""/),
    +end:a(/"""/,e),contains:[O(e),T(e),L(e)]}),$=(e="")=>({begin:a(e,/"/),
    +end:a(/"/,e),contains:[O(e),L(e)]}),K={className:"string",
    +variants:[P(),P("#"),P("##"),P("###"),$(),$("#"),$("##"),$("###")]},j={
    +match:a(/`/,w,/`/)},z=[j,{className:"variable",match:/\$\d+/},{
    +className:"variable",match:`\\$${f}+`}],q=[{match:/(@|#)available/,
    +className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:E,
    +contains:[...S,I,K]}]}},{className:"keyword",match:a(/@/,t(...g))},{
    +className:"meta",match:a(/@/,w)}],U={match:n(/\b[A-Z]/),relevance:0,contains:[{
    +className:"type",
    +match:a(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,f,"+")
    +},{className:"type",match:y,relevance:0},{match:/[?!]+/,relevance:0},{
    +match:/\.\.\./,relevance:0},{match:a(/\s+&\s+/,n(y)),relevance:0}]},Z={
    +begin:/</,end:/>/,keywords:D,contains:[...v,...B,...q,M,U]};U.contains.push(Z)
    +;const G={begin:/\(/,end:/\)/,relevance:0,keywords:D,contains:["self",{
    +match:a(w,/\s*:/),keywords:"_|0",relevance:0
    +},...v,...B,...k,...S,I,K,...z,...q,U]},H={beginKeywords:"func",contains:[{
    +className:"title",match:t(j.match,w,b),endsParent:!0,relevance:0},p]},R={
    +begin:/</,end:/>/,contains:[...v,U]},V={begin:/\(/,end:/\)/,keywords:D,
    +contains:[{begin:t(n(a(w,/\s*:/)),n(a(w,/\s+/,w,/\s*:/))),end:/:/,relevance:0,
    +contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:w}]
    +},...v,...B,...S,I,K,...q,U,G],endsParent:!0,illegal:/["']/},W={
    +className:"function",match:n(/\bfunc\b/),contains:[H,R,V,p],illegal:[/\[/,/%/]
    +},X={className:"function",match:/\b(subscript|init[?!]?)\s*(?=[<(])/,keywords:{
    +keyword:"subscript init init? init!",$pattern:/\w+[?!]?/},contains:[R,V,p],
    +illegal:/\[|%/},J={beginKeywords:"operator",end:e.MATCH_NOTHING_RE,contains:[{
    +className:"title",match:b,endsParent:!0,relevance:0}]},Q={
    +beginKeywords:"precedencegroup",end:e.MATCH_NOTHING_RE,contains:[{
    +className:"title",match:y,relevance:0},{begin:/{/,end:/}/,relevance:0,
    +endsParent:!0,keywords:[...l,...o],contains:[U]}]};for(const e of K.variants){
    +const n=e.contains.find((e=>"interpol"===e.label));n.keywords=D
    +;const a=[...B,...k,...S,I,K,...z];n.contains=[...a,{begin:/\(/,end:/\)/,
    +contains:["self",...a]}]}return{name:"Swift",keywords:D,contains:[...v,W,X,{
    +className:"class",beginKeywords:"struct protocol class extension enum",
    +end:"\\{",excludeEnd:!0,keywords:D,contains:[e.inherit(e.TITLE_MODE,{
    +begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...B]},J,Q,{
    +beginKeywords:"import",end:/$/,contains:[...v],relevance:0
    +},...B,...k,...S,I,K,...z,...q,U,G]}}})());
    +hljs.registerLanguage("typescript",(()=>{"use strict"
    +;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
    +;function t(e){return r("(?=",e,")")}function r(...e){return e.map((e=>{
    +return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return i=>{
    +const c={$pattern:e,
    +keyword:n.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]),
    +literal:a,
    +built_in:s.concat(["any","void","number","boolean","string","object","never","enum"])
    +},o={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},l=(e,n,a)=>{
    +const s=e.contains.findIndex((e=>e.label===n))
    +;if(-1===s)throw Error("can not find mode to replace");e.contains.splice(s,1,a)
    +},b=(i=>{const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/,
    +end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{
    +const a=e[0].length+e.index,s=e.input[a];"<"!==s?">"===s&&(((e,{after:n})=>{
    +const a="</"+e[0].slice(1);return-1!==e.input.indexOf(a,n)})(e,{after:a
    +})||n.ignoreMatch()):n.ignoreMatch()}},l={$pattern:e,keyword:n,literal:a,
    +built_in:s},b="\\.([0-9](_?[0-9])*)",d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",g={
    +className:"number",variants:[{
    +begin:`(\\b(${d})((${b})|\\.)?|(${b}))[eE][+-]?([0-9](_?[0-9])*)\\b`},{
    +begin:`\\b(${d})\\b((${b})\\b|\\.)?|(${b})\\b`},{
    +begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
    +begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
    +begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
    +begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",
    +end:"\\}",keywords:l,contains:[]},E={begin:"html`",end:"",starts:{end:"`",
    +returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},m={
    +begin:"css`",end:"",starts:{end:"`",returnEnd:!1,
    +contains:[i.BACKSLASH_ESCAPE,u],subLanguage:"css"}},y={className:"string",
    +begin:"`",end:"`",contains:[i.BACKSLASH_ESCAPE,u]},_={className:"comment",
    +variants:[i.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
    +className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",
    +end:"\\}",relevance:0},{className:"variable",begin:c+"(?=\\s*(-)|$)",
    +endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
    +}),i.C_BLOCK_COMMENT_MODE,i.C_LINE_COMMENT_MODE]
    +},p=[i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,E,m,y,g,i.REGEXP_MODE]
    +;u.contains=p.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(p)
    +});const N=[].concat(_,u.contains),f=N.concat([{begin:/\(/,end:/\)/,keywords:l,
    +contains:["self"].concat(N)}]),A={className:"params",begin:/\(/,end:/\)/,
    +excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f};return{name:"Javascript",
    +aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:f},
    +illegal:/#(?![$_A-z])/,contains:[i.SHEBANG({label:"shebang",binary:"node",
    +relevance:5}),{label:"use_strict",className:"meta",relevance:10,
    +begin:/^\s*['"]use (strict|asm)['"]/
    +},i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,E,m,y,_,g,{
    +begin:r(/[{,\n]\s*/,t(r(/(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/,c+"\\s*:"))),
    +relevance:0,contains:[{className:"attr",begin:c+t("\\s*:"),relevance:0}]},{
    +begin:"("+i.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
    +keywords:"return throw case",contains:[_,i.REGEXP_MODE,{className:"function",
    +begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+i.UNDERSCORE_IDENT_RE+")\\s*=>",
    +returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{
    +begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0
    +},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}]
    +},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{
    +variants:[{begin:"<>",end:"</>"},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,
    +end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,
    +contains:["self"]}]}],relevance:0},{className:"function",
    +beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l,
    +contains:["self",i.inherit(i.TITLE_MODE,{begin:c}),A],illegal:/%/},{
    +beginKeywords:"while if switch catch for"},{className:"function",
    +begin:i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
    +returnBegin:!0,contains:[A,i.inherit(i.TITLE_MODE,{begin:c})]},{variants:[{
    +begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class",
    +beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{
    +beginKeywords:"extends"},i.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/,
    +end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:c}),"self",A]
    +},{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set",
    +contains:[i.inherit(i.TITLE_MODE,{begin:c}),{begin:/\(\)/},A]},{begin:/\$[(.]/}]
    +}})(i)
    +;return Object.assign(b.keywords,c),b.exports.PARAMS_CONTAINS.push(o),b.contains=b.contains.concat([o,{
    +beginKeywords:"namespace",end:/\{/,excludeEnd:!0},{beginKeywords:"interface",
    +end:/\{/,excludeEnd:!0,keywords:"interface extends"
    +}]),l(b,"shebang",i.SHEBANG()),l(b,"use_strict",{className:"meta",relevance:10,
    +begin:/^\s*['"]use strict['"]/
    +}),b.contains.find((e=>"function"===e.className)).relevance=0,Object.assign(b,{
    +name:"TypeScript",aliases:["ts","tsx"]}),b}})());
    +hljs.registerLanguage("vbnet",(()=>{"use strict";function e(e){
    +return e?"string"==typeof e?e:e.source:null}function n(...n){
    +return n.map((n=>e(n))).join("")}function t(...n){
    +return"("+n.map((n=>e(n))).join("|")+")"}return e=>{
    +const a=/\d{1,2}\/\d{1,2}\/\d{4}/,i=/\d{4}-\d{1,2}-\d{1,2}/,s=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,o={
    +className:"literal",variants:[{begin:n(/# */,t(i,a),/ *#/)},{
    +begin:n(/# */,r,/ *#/)},{begin:n(/# */,s,/ *#/)},{
    +begin:n(/# */,t(i,a),/ +/,t(s,r),/ *#/)}]},l=e.COMMENT(/'''/,/$/,{contains:[{
    +className:"doctag",begin:/<\/?/,end:/>/}]}),c=e.COMMENT(null,/$/,{variants:[{
    +begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",
    +aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{
    +keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",
    +built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",
    +type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",
    +literal:"true false nothing"},
    +illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{
    +className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,
    +end:/"/,illegal:/\n/,contains:[{begin:/""/}]},o,{className:"number",relevance:0,
    +variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/
    +},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{
    +begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{
    +className:"label",begin:/^\w+:/},l,c,{className:"meta",
    +begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,
    +end:/$/,keywords:{
    +"meta-keyword":"const disable else elseif enable end externalsource if region then"
    +},contains:[c]}]}}})());
    +hljs.registerLanguage("yaml",(()=>{"use strict";return e=>{
    +var n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={
    +className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/
    +},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",
    +variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(s,{
    +variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={
    +end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},t={begin:/\{/,
    +end:/\}/,contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]",
    +contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{
    +begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{
    +begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$",
    +relevance:10},{className:"string",
    +begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{
    +begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,
    +relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",
    +begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a
    +},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",
    +begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",
    +relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{
    +className:"number",
    +begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"
    +},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},t,g,s],r=[...b]
    +;return r.pop(),r.push(i),l.contains=r,{name:"YAML",case_insensitive:!0,
    +aliases:["yml"],contains:b}}})());
    \ No newline at end of file
    diff --git a/metrics-complete-branch-report-Final-htmlReport/js/highlightjs-line-numbers.min.js b/metrics-complete-branch-report-Final-htmlReport/js/highlightjs-line-numbers.min.js
    new file mode 100644
    index 0000000000..8548576704
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/js/highlightjs-line-numbers.min.js
    @@ -0,0 +1,24 @@
    +/*
    +The MIT License (MIT)
    +
    +Copyright (c) 2017 Yauheni Pakala
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    + */
    +!function(r,o){"use strict";var e,i="hljs-ln",l="hljs-ln-line",h="hljs-ln-code",s="hljs-ln-numbers",c="hljs-ln-n",m="data-line-number",a=/\r\n|\r|\n/g;function u(e){for(var n=e.toString(),t=e.anchorNode;"TD"!==t.nodeName;)t=t.parentNode;for(var r=e.focusNode;"TD"!==r.nodeName;)r=r.parentNode;var o=parseInt(t.dataset.lineNumber),a=parseInt(r.dataset.lineNumber);if(o==a)return n;var i,l=t.textContent,s=r.textContent;for(a<o&&(i=o,o=a,a=i,i=l,l=s,s=i);0!==n.indexOf(l);)l=l.slice(1);for(;-1===n.lastIndexOf(s);)s=s.slice(0,-1);for(var c=l,u=function(e){for(var n=e;"TABLE"!==n.nodeName;)n=n.parentNode;return n}(t),d=o+1;d<a;++d){var f=p('.{0}[{1}="{2}"]',[h,m,d]);c+="\n"+u.querySelector(f).textContent}return c+="\n"+s}function n(e){try{var n=o.querySelectorAll("code.hljs,code.nohighlight");for(var t in n)n.hasOwnProperty(t)&&(n[t].classList.contains("nohljsln")||d(n[t],e))}catch(e){r.console.error("LineNumbers error: ",e)}}function d(e,n){"object"==typeof e&&r.setTimeout(function(){e.innerHTML=f(e,n)},0)}function f(e,n){var t,r,o=(t=e,{singleLine:function(e){return!!e.singleLine&&e.singleLine}(r=(r=n)||{}),startFrom:function(e,n){var t=1;isFinite(n.startFrom)&&(t=n.startFrom);var r=function(e,n){return e.hasAttribute(n)?e.getAttribute(n):null}(e,"data-ln-start-from");return null!==r&&(t=function(e,n){if(!e)return n;var t=Number(e);return isFinite(t)?t:n}(r,1)),t}(t,r)});return function e(n){var t=n.childNodes;for(var r in t){var o;t.hasOwnProperty(r)&&(o=t[r],0<(o.textContent.trim().match(a)||[]).length&&(0<o.childNodes.length?e(o):v(o.parentNode)))}}(e),function(e,n){var t=g(e);""===t[t.length-1].trim()&&t.pop();if(1<t.length||n.singleLine){for(var r="",o=0,a=t.length;o<a;o++)r+=p('<tr><td class="{0} {1}" {3}="{5}"><div class="{2}" {3}="{5}"></div></td><td class="{0} {4}" {3}="{5}">{6}</td></tr>',[l,s,c,m,h,o+n.startFrom,0<t[o].length?t[o]:" "]);return p('<table class="{0}">{1}</table>',[i,r])}return e}(e.innerHTML,o)}function v(e){var n=e.className;if(/hljs-/.test(n)){for(var t=g(e.innerHTML),r=0,o="";r<t.length;r++){o+=p('<span class="{0}">{1}</span>\n',[n,0<t[r].length?t[r]:" "])}e.innerHTML=o.trim()}}function g(e){return 0===e.length?[]:e.split(a)}function p(e,t){return e.replace(/\{(\d+)\}/g,function(e,n){return void 0!==t[n]?t[n]:e})}r.hljs?(r.hljs.initLineNumbersOnLoad=function(e){"interactive"===o.readyState||"complete"===o.readyState?n(e):r.addEventListener("DOMContentLoaded",function(){n(e)})},r.hljs.lineNumbersBlock=d,r.hljs.lineNumbersValue=function(e,n){if("string"!=typeof e)return;var t=document.createElement("code");return t.innerHTML=e,f(t,n)},(e=o.createElement("style")).type="text/css",e.innerHTML=p(".{0}{border-collapse:collapse}.{0} td{padding:0}.{1}:before{content:attr({2})}",[i,c,m]),o.getElementsByTagName("head")[0].appendChild(e)):r.console.error("highlight.js not detected!"),document.addEventListener("copy",function(e){var n,t=window.getSelection();!function(e){for(var n=e;n;){if(n.className&&-1!==n.className.indexOf("hljs-ln-code"))return 1;n=n.parentNode}}(t.anchorNode)||(n=-1!==window.navigator.userAgent.indexOf("Edge")?u(t):t.toString(),e.clipboardData.setData("text/plain",n),e.preventDefault())})}(window,document);
    \ No newline at end of file
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index.html
    new file mode 100644
    index 0000000000..e8e4ad4031
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index.html
    @@ -0,0 +1,1238 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..411eecf70b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,1238 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..bd225e5eac
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,1238 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..f141717257
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS.html
    @@ -0,0 +1,1238 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..1625ff1c98
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,1238 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..432d6d826e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE.html
    @@ -0,0 +1,1238 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..d0a925d382
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,1238 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..a64b40727e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD.html
    @@ -0,0 +1,1238 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..57fa666c8f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,1238 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..4b2d1f03a1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,1238 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1.html
    new file mode 100644
    index 0000000000..061e94252c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1.html
    @@ -0,0 +1,178 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CachedGauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CachedGauge (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CachedGauge</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;import java.util.concurrent.atomic.AtomicReference;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link Gauge} implementation which caches its value for a period of time.
    +&nbsp; *
    +&nbsp; * @param &lt;T&gt; the type of the gauge&#39;s value
    +&nbsp; */
    +&nbsp;public abstract class CachedGauge&lt;T&gt; implements Gauge&lt;T&gt; {
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final AtomicLong reloadAt;
    +&nbsp;    private final long timeoutNS;
    +&nbsp;    private final AtomicReference&lt;T&gt; value;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new cached gauge with the given timeout period.
    +&nbsp;     *
    +&nbsp;     * @param timeout     the timeout
    +&nbsp;     * @param timeoutUnit the unit of {@code timeout}
    +&nbsp;     */
    +&nbsp;    protected CachedGauge(long timeout, TimeUnit timeoutUnit) {
    +<b class="fc">&nbsp;        this(Clock.defaultClock(), timeout, timeoutUnit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new cached gauge with the given clock and timeout period.
    +&nbsp;     *
    +&nbsp;     * @param clock       the clock used to calculate the timeout
    +&nbsp;     * @param timeout     the timeout
    +&nbsp;     * @param timeoutUnit the unit of {@code timeout}
    +&nbsp;     */
    +<b class="fc">&nbsp;    protected CachedGauge(Clock clock, long timeout, TimeUnit timeoutUnit) {</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.reloadAt = new AtomicLong(clock.getTick());</b>
    +<b class="fc">&nbsp;        this.timeoutNS = timeoutUnit.toNanos(timeout);</b>
    +<b class="fc">&nbsp;        this.value = new AtomicReference&lt;&gt;();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Loads the value and returns it.
    +&nbsp;     *
    +&nbsp;     * @return the new value
    +&nbsp;     */
    +&nbsp;    protected abstract T loadValue();
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public T getValue() {
    +<b class="fc">&nbsp;        T currentValue = this.value.get();</b>
    +<b class="fc">&nbsp;        if (shouldLoad() || currentValue == null) {</b>
    +<b class="fc">&nbsp;            T newValue = loadValue();</b>
    +<b class="fc">&nbsp;            if (!this.value.compareAndSet(currentValue, newValue)) {</b>
    +<b class="fc">&nbsp;                return this.value.get();</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return newValue;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return currentValue;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private boolean shouldLoad() {
    +&nbsp;        for ( ;; ) {
    +<b class="fc">&nbsp;            final long time = clock.getTick();</b>
    +<b class="fc">&nbsp;            final long current = reloadAt.get();</b>
    +<b class="fc">&nbsp;            if (current &gt; time) {</b>
    +<b class="fc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (reloadAt.compareAndSet(current, time + timeoutNS)) {</b>
    +<b class="fc">&nbsp;                return true;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-10.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-10.html
    new file mode 100644
    index 0000000000..d4241a2964
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-10.html
    @@ -0,0 +1,203 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedThreadFactory</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedThreadFactory (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedThreadFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedThreadFactory$InstrumentedRunnable</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.ThreadFactory;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link ThreadFactory} that monitors the number of threads created, running and terminated.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    +&nbsp; * &quot;your-thread-delegate.created&quot;, &quot;your-thread-delegate.running&quot;, etc.
    +&nbsp; */
    +<b class="fc">&nbsp;public class InstrumentedThreadFactory implements ThreadFactory {</b>
    +<b class="fc">&nbsp;    private static final AtomicLong NAME_COUNTER = new AtomicLong();</b>
    +&nbsp;
    +&nbsp;    private final ThreadFactory delegate;
    +&nbsp;    private final Meter created;
    +&nbsp;    private final Counter running;
    +&nbsp;    private final Meter terminated;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Wraps a {@link ThreadFactory}, uses a default auto-generated name.
    +&nbsp;     *
    +&nbsp;     * @param delegate {@link ThreadFactory} to wrap.
    +&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    +&nbsp;     */
    +&nbsp;    public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(delegate, registry, &quot;instrumented-thread-delegate-&quot; + NAME_COUNTER.incrementAndGet());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Wraps a {@link ThreadFactory} with an explicit name.
    +&nbsp;     *
    +&nbsp;     * @param delegate {@link ThreadFactory} to wrap.
    +&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    +&nbsp;     * @param name     name for this delegate.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry, String name) {</b>
    +<b class="fc">&nbsp;        this.delegate = delegate;</b>
    +<b class="fc">&nbsp;        this.created = registry.meter(MetricRegistry.name(name, &quot;created&quot;));</b>
    +<b class="fc">&nbsp;        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</b>
    +<b class="fc">&nbsp;        this.terminated = registry.meter(MetricRegistry.name(name, &quot;terminated&quot;));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Thread newThread(Runnable runnable) {
    +<b class="fc">&nbsp;        Runnable wrappedRunnable = new InstrumentedRunnable(runnable);</b>
    +<b class="fc">&nbsp;        Thread thread = delegate.newThread(wrappedRunnable);</b>
    +<b class="fc">&nbsp;        created.mark();</b>
    +<b class="fc">&nbsp;        return thread;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class InstrumentedRunnable implements Runnable {
    +&nbsp;        private final Runnable task;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedRunnable(Runnable task) {</b>
    +<b class="fc">&nbsp;            this.task = task;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void run() {
    +<b class="fc">&nbsp;            running.inc();</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                task.run();</b>
    +&nbsp;            } finally {
    +<b class="fc">&nbsp;                running.dec();</b>
    +<b class="fc">&nbsp;                terminated.mark();</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-11.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-11.html
    new file mode 100644
    index 0000000000..ce2aa50210
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-11.html
    @@ -0,0 +1,441 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > LockFreeExponentiallyDecayingReservoir</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: LockFreeExponentiallyDecayingReservoir (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">LockFreeExponentiallyDecayingReservoir</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (23/23)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">LockFreeExponentiallyDecayingReservoir$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">LockFreeExponentiallyDecayingReservoir$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (15/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">LockFreeExponentiallyDecayingReservoir$RescalingConsumer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">LockFreeExponentiallyDecayingReservoir$State</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.WeightedSnapshot.WeightedSample;
    +&nbsp;
    +&nbsp;import java.time.Duration;
    +&nbsp;import java.util.Objects;
    +&nbsp;import java.util.concurrent.ConcurrentSkipListMap;
    +&nbsp;import java.util.concurrent.ThreadLocalRandom;
    +&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    +&nbsp;import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
    +&nbsp;import java.util.function.BiConsumer;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A lock-free exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al&#39;s
    +&nbsp; * forward-decaying priority reservoir sampling method to produce a statistically representative
    +&nbsp; * sampling reservoir, exponentially biased towards newer entries.
    +&nbsp; *
    +&nbsp; * @see &lt;a href=&quot;http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf&quot;&gt;
    +&nbsp; * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE &#39;09:
    +&nbsp; * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)&lt;/a&gt;
    +&nbsp; *
    +&nbsp; * {@link LockFreeExponentiallyDecayingReservoir} is based closely on the {@link ExponentiallyDecayingReservoir},
    +&nbsp; * however it provides looser guarantees while completely avoiding locks.
    +&nbsp; *
    +&nbsp; * Looser guarantees:
    +&nbsp; * &lt;ul&gt;
    +&nbsp; *     &lt;li&gt; Updates which occur concurrently with rescaling may be discarded if the orphaned state node is updated after
    +&nbsp; *     rescale has replaced it. This condition has a greater probability as the rescale interval is reduced due to the
    +&nbsp; *     increased frequency of rescaling. {@link #rescaleThresholdNanos} values below 30 seconds are not recommended.
    +&nbsp; *     &lt;li&gt; Given a small rescale threshold, updates may attempt to rescale into a new bucket, but lose the CAS race
    +&nbsp; *     and update into a newer bucket than expected. In these cases the measurement weight is reduced accordingly.
    +&nbsp; *     &lt;li&gt;In the worst case, all concurrent threads updating the reservoir may attempt to rescale rather than
    +&nbsp; *     a single thread holding an exclusive write lock. It&#39;s expected that the configuration is set such that
    +&nbsp; *     rescaling is substantially less common than updating at peak load. Even so, when size is reasonably small
    +&nbsp; *     it can be more efficient to rescale than to park and context switch.
    +&nbsp; * &lt;/ul&gt;
    +&nbsp; *
    +&nbsp; * @author &lt;a href=&quot;mailto:ckozak@ckozak.net&quot;&gt;Carter Kozak&lt;/a&gt;
    +&nbsp; */
    +<b class="fc">&nbsp;public final class LockFreeExponentiallyDecayingReservoir implements Reservoir {</b>
    +&nbsp;
    +&nbsp;    private static final double SECONDS_PER_NANO = .000_000_001D;
    +<b class="fc">&nbsp;    private static final AtomicReferenceFieldUpdater&lt;LockFreeExponentiallyDecayingReservoir, State&gt; stateUpdater =</b>
    +<b class="fc">&nbsp;            AtomicReferenceFieldUpdater.newUpdater(LockFreeExponentiallyDecayingReservoir.class, State.class, &quot;state&quot;);</b>
    +&nbsp;
    +&nbsp;    private final int size;
    +&nbsp;    private final long rescaleThresholdNanos;
    +&nbsp;    private final Clock clock;
    +&nbsp;
    +&nbsp;    private volatile State state;
    +&nbsp;
    +<b class="fc">&nbsp;    private static final class State {</b>
    +&nbsp;
    +<b class="fc">&nbsp;        private static final AtomicIntegerFieldUpdater&lt;State&gt; countUpdater =</b>
    +<b class="fc">&nbsp;                AtomicIntegerFieldUpdater.newUpdater(State.class, &quot;count&quot;);</b>
    +&nbsp;
    +&nbsp;        private final double alphaNanos;
    +&nbsp;        private final int size;
    +&nbsp;        private final long startTick;
    +&nbsp;        // Count is updated after samples are successfully added to the map.
    +&nbsp;        private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    +&nbsp;
    +&nbsp;        private volatile int count;
    +&nbsp;
    +&nbsp;        State(
    +&nbsp;                double alphaNanos,
    +&nbsp;                int size,
    +&nbsp;                long startTick,
    +&nbsp;                int count,
    +<b class="fc">&nbsp;                ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values) {</b>
    +<b class="fc">&nbsp;            this.alphaNanos = alphaNanos;</b>
    +<b class="fc">&nbsp;            this.size = size;</b>
    +<b class="fc">&nbsp;            this.startTick = startTick;</b>
    +<b class="fc">&nbsp;            this.values = values;</b>
    +<b class="fc">&nbsp;            this.count = count;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private void update(long value, long timestampNanos) {
    +<b class="fc">&nbsp;            double itemWeight = weight(timestampNanos - startTick);</b>
    +<b class="fc">&nbsp;            double priority = itemWeight / ThreadLocalRandom.current().nextDouble();</b>
    +<b class="fc">&nbsp;            boolean mapIsFull = count &gt;= size;</b>
    +<b class="fc">&nbsp;            if (!mapIsFull || values.firstKey() &lt; priority) {</b>
    +<b class="fc">&nbsp;                addSample(priority, value, itemWeight, mapIsFull);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private void addSample(double priority, long value, double itemWeight, boolean bypassIncrement) {
    +<b class="fc">&nbsp;            if (values.putIfAbsent(priority, new WeightedSample(value, itemWeight)) == null</b>
    +<b class="fc">&nbsp;                    &amp;&amp; (bypassIncrement || countUpdater.incrementAndGet(this) &gt; size)) {</b>
    +<b class="fc">&nbsp;                values.pollFirstEntry();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /* &quot;A common feature of the above techniques—indeed, the key technique that
    +&nbsp;         * allows us to track the decayed weights efficiently—is that they maintain
    +&nbsp;         * counts and other quantities based on g(ti ? L), and only scale by g(t ? L)
    +&nbsp;         * at query time. But while g(ti ?L)/g(t?L) is guaranteed to lie between zero
    +&nbsp;         * and one, the intermediate values of g(ti ? L) could become very large. For
    +&nbsp;         * polynomial functions, these values should not grow too large, and should be
    +&nbsp;         * effectively represented in practice by floating point values without loss of
    +&nbsp;         * precision. For exponential functions, these values could grow quite large as
    +&nbsp;         * new values of (ti ? L) become large, and potentially exceed the capacity of
    +&nbsp;         * common floating point types. However, since the values stored by the
    +&nbsp;         * algorithms are linear combinations of g values (scaled sums), they can be
    +&nbsp;         * rescaled relative to a new landmark. That is, by the analysis of exponential
    +&nbsp;         * decay in Section III-A, the choice of L does not affect the final result. We
    +&nbsp;         * can therefore multiply each value based on L by a factor of exp(??(L? ? L)),
    +&nbsp;         * and obtain the correct value as if we had instead computed relative to a new
    +&nbsp;         * landmark L? (and then use this new L? at query time). This can be done with
    +&nbsp;         * a linear pass over whatever data structure is being used.&quot;
    +&nbsp;         */
    +&nbsp;        State rescale(long newTick) {
    +<b class="fc">&nbsp;            long durationNanos = newTick - startTick;</b>
    +<b class="fc">&nbsp;            double scalingFactor = Math.exp(-alphaNanos * durationNanos);</b>
    +<b class="fc">&nbsp;            int newCount = 0;</b>
    +<b class="fc">&nbsp;            ConcurrentSkipListMap&lt;Double, WeightedSample&gt; newValues = new ConcurrentSkipListMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;            if (Double.compare(scalingFactor, 0) != 0) {</b>
    +<b class="fc">&nbsp;                RescalingConsumer consumer = new RescalingConsumer(scalingFactor, newValues);</b>
    +<b class="fc">&nbsp;                values.forEach(consumer);</b>
    +&nbsp;                // make sure the counter is in sync with the number of stored samples.
    +<b class="fc">&nbsp;                newCount = consumer.count;</b>
    +&nbsp;            }
    +&nbsp;            // It&#39;s possible that more values were added while the map was scanned, those with the
    +&nbsp;            // minimum priorities are removed.
    +<b class="fc">&nbsp;            while (newCount &gt; size) {</b>
    +<b class="nc">&nbsp;                Objects.requireNonNull(newValues.pollFirstEntry(), &quot;Expected an entry&quot;);</b>
    +<b class="nc">&nbsp;                newCount--;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return new State(alphaNanos, size, newTick, newCount, newValues);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private double weight(long durationNanos) {
    +<b class="fc">&nbsp;            return Math.exp(alphaNanos * durationNanos);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static final class RescalingConsumer implements BiConsumer&lt;Double, WeightedSample&gt; {</b>
    +&nbsp;        private final double scalingFactor;
    +&nbsp;        private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    +&nbsp;        private int count;
    +&nbsp;
    +<b class="fc">&nbsp;        RescalingConsumer(double scalingFactor, ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values) {</b>
    +<b class="fc">&nbsp;            this.scalingFactor = scalingFactor;</b>
    +<b class="fc">&nbsp;            this.values = values;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void accept(Double priority, WeightedSample sample) {
    +<b class="fc">&nbsp;            double newWeight = sample.weight * scalingFactor;</b>
    +<b class="fc">&nbsp;            if (Double.compare(newWeight, 0) == 0) {</b>
    +&nbsp;                return;
    +&nbsp;            }
    +<b class="fc">&nbsp;            WeightedSample newSample = new WeightedSample(sample.value, newWeight);</b>
    +<b class="fc">&nbsp;            if (values.put(priority * scalingFactor, newSample) == null) {</b>
    +<b class="fc">&nbsp;                count++;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private LockFreeExponentiallyDecayingReservoir(int size, double alpha, Duration rescaleThreshold, Clock clock) {</b>
    +&nbsp;        // Scale alpha to nanoseconds
    +<b class="fc">&nbsp;        double alphaNanos = alpha * SECONDS_PER_NANO;</b>
    +<b class="fc">&nbsp;        this.size = size;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.rescaleThresholdNanos = rescaleThreshold.toNanos();</b>
    +<b class="fc">&nbsp;        this.state = new State(alphaNanos, size, clock.getTick(), 0, new ConcurrentSkipListMap&lt;&gt;());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int size() {
    +<b class="fc">&nbsp;        return Math.min(size, state.count);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void update(long value) {
    +<b class="fc">&nbsp;        long now = clock.getTick();</b>
    +<b class="fc">&nbsp;        rescaleIfNeeded(now).update(value, now);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private State rescaleIfNeeded(long currentTick) {
    +&nbsp;        // This method is optimized for size so the check may be quickly inlined.
    +&nbsp;        // Rescaling occurs substantially less frequently than the check itself.
    +<b class="fc">&nbsp;        State stateSnapshot = this.state;</b>
    +<b class="fc">&nbsp;        if (currentTick - stateSnapshot.startTick &gt;= rescaleThresholdNanos) {</b>
    +<b class="fc">&nbsp;            return doRescale(currentTick, stateSnapshot);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return stateSnapshot;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private State doRescale(long currentTick, State stateSnapshot) {
    +<b class="fc">&nbsp;        State newState = stateSnapshot.rescale(currentTick);</b>
    +<b class="fc">&nbsp;        if (stateUpdater.compareAndSet(this, stateSnapshot, newState)) {</b>
    +&nbsp;            // newState successfully installed
    +<b class="fc">&nbsp;            return newState;</b>
    +&nbsp;        }
    +&nbsp;        // Otherwise another thread has won the race and we can return the result of a volatile read.
    +&nbsp;        // It&#39;s possible this has taken so long that another update is required, however that&#39;s unlikely
    +&nbsp;        // and no worse than the standard race between a rescale and update.
    +<b class="fc">&nbsp;        return this.state;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Snapshot getSnapshot() {
    +<b class="fc">&nbsp;        State stateSnapshot = rescaleIfNeeded(clock.getTick());</b>
    +<b class="fc">&nbsp;        return new WeightedSnapshot(stateSnapshot.values.values());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static Builder builder() {
    +<b class="fc">&nbsp;        return new Builder();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * By default this uses a size of 1028 elements, which offers a 99.9%
    +&nbsp;     * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
    +&nbsp;     * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static final class Builder {</b>
    +&nbsp;        private static final int DEFAULT_SIZE = 1028;
    +&nbsp;        private static final double DEFAULT_ALPHA = 0.015D;
    +<b class="fc">&nbsp;        private static final Duration DEFAULT_RESCALE_THRESHOLD = Duration.ofHours(1);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        private int size = DEFAULT_SIZE;</b>
    +<b class="fc">&nbsp;        private double alpha = DEFAULT_ALPHA;</b>
    +<b class="fc">&nbsp;        private Duration rescaleThreshold = DEFAULT_RESCALE_THRESHOLD;</b>
    +<b class="fc">&nbsp;        private Clock clock = Clock.defaultClock();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        private Builder() {}</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Maximum number of samples to keep in the reservoir. Once this number is reached older samples are
    +&nbsp;         * replaced (based on weight, with some amount of random jitter).
    +&nbsp;         */
    +&nbsp;        public Builder size(int value) {
    +<b class="fc">&nbsp;            if (value &lt;= 0) {</b>
    +<b class="nc">&nbsp;                throw new IllegalArgumentException(</b>
    +&nbsp;                        &quot;LockFreeExponentiallyDecayingReservoir size must be positive: &quot; + value);
    +&nbsp;            }
    +<b class="fc">&nbsp;            this.size = value;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Alpha is the exponential decay factor. Higher values bias results more heavily toward newer values.
    +&nbsp;         */
    +&nbsp;        public Builder alpha(double value) {
    +<b class="fc">&nbsp;            this.alpha = value;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Interval at which this reservoir is rescaled.
    +&nbsp;         */
    +&nbsp;        public Builder rescaleThreshold(Duration value) {
    +<b class="nc">&nbsp;            this.rescaleThreshold = Objects.requireNonNull(value, &quot;rescaleThreshold is required&quot;);</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Clock instance used for decay.
    +&nbsp;         */
    +&nbsp;        public Builder clock(Clock value) {
    +<b class="fc">&nbsp;            this.clock = Objects.requireNonNull(value, &quot;clock is required&quot;);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Reservoir build() {
    +<b class="fc">&nbsp;            return new LockFreeExponentiallyDecayingReservoir(size, alpha, rescaleThreshold, clock);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-12.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-12.html
    new file mode 100644
    index 0000000000..44389d5bf6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-12.html
    @@ -0,0 +1,210 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Meter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Meter (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Meter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.LongAdder;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A meter metric which measures mean throughput and one-, five-, and fifteen-minute
    +&nbsp; * moving average throughputs.
    +&nbsp; *
    +&nbsp; * @see MovingAverages
    +&nbsp; */
    +&nbsp;public class Meter implements Metered {
    +&nbsp;
    +&nbsp;    private final MovingAverages movingAverages;
    +<b class="fc">&nbsp;    private final LongAdder count = new LongAdder();</b>
    +&nbsp;    private final long startTime;
    +&nbsp;    private final Clock clock;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link Meter}.
    +&nbsp;     *
    +&nbsp;     * @param movingAverages the {@link MovingAverages} implementation to use
    +&nbsp;     */
    +&nbsp;    public Meter(MovingAverages movingAverages) {
    +<b class="nc">&nbsp;        this(movingAverages, Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link Meter}.
    +&nbsp;     */
    +&nbsp;    public Meter() {
    +<b class="fc">&nbsp;        this(Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link Meter}.
    +&nbsp;     *
    +&nbsp;     * @param clock the clock to use for the meter ticks
    +&nbsp;     */
    +&nbsp;    public Meter(Clock clock) {
    +<b class="fc">&nbsp;        this(new ExponentialMovingAverages(clock), clock);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link Meter}.
    +&nbsp;     *
    +&nbsp;     * @param movingAverages the {@link MovingAverages} implementation to use
    +&nbsp;     * @param clock          the clock to use for the meter ticks
    +&nbsp;     */
    +<b class="fc">&nbsp;    public Meter(MovingAverages movingAverages, Clock clock) {</b>
    +<b class="fc">&nbsp;        this.movingAverages = movingAverages;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.startTime = this.clock.getTick();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Mark the occurrence of an event.
    +&nbsp;     */
    +&nbsp;    public void mark() {
    +<b class="fc">&nbsp;        mark(1);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Mark the occurrence of a given number of events.
    +&nbsp;     *
    +&nbsp;     * @param n the number of events
    +&nbsp;     */
    +&nbsp;    public void mark(long n) {
    +<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    +<b class="fc">&nbsp;        count.add(n);</b>
    +<b class="fc">&nbsp;        movingAverages.update(n);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public long getCount() {
    +<b class="fc">&nbsp;        return count.sum();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getFifteenMinuteRate() {
    +<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    +<b class="fc">&nbsp;        return movingAverages.getM15Rate();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getFiveMinuteRate() {
    +<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    +<b class="fc">&nbsp;        return movingAverages.getM5Rate();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getMeanRate() {
    +<b class="fc">&nbsp;        if (getCount() == 0) {</b>
    +<b class="fc">&nbsp;            return 0.0;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            final double elapsed = clock.getTick() - startTime;</b>
    +<b class="fc">&nbsp;            return getCount() / elapsed * TimeUnit.SECONDS.toNanos(1);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getOneMinuteRate() {
    +<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    +<b class="fc">&nbsp;        return movingAverages.getM1Rate();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-13.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-13.html
    new file mode 100644
    index 0000000000..2cfb95d683
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-13.html
    @@ -0,0 +1,137 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricAttribute</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricAttribute (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricAttribute</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Represents attributes of metrics which can be reported.
    +&nbsp; */
    +<b class="fc">&nbsp;public enum MetricAttribute {</b>
    +&nbsp;
    +<b class="fc">&nbsp;    MAX(&quot;max&quot;),</b>
    +<b class="fc">&nbsp;    MEAN(&quot;mean&quot;),</b>
    +<b class="fc">&nbsp;    MIN(&quot;min&quot;),</b>
    +<b class="fc">&nbsp;    STDDEV(&quot;stddev&quot;),</b>
    +<b class="fc">&nbsp;    P50(&quot;p50&quot;),</b>
    +<b class="fc">&nbsp;    P75(&quot;p75&quot;),</b>
    +<b class="fc">&nbsp;    P95(&quot;p95&quot;),</b>
    +<b class="fc">&nbsp;    P98(&quot;p98&quot;),</b>
    +<b class="fc">&nbsp;    P99(&quot;p99&quot;),</b>
    +<b class="fc">&nbsp;    P999(&quot;p999&quot;),</b>
    +<b class="fc">&nbsp;    COUNT(&quot;count&quot;),</b>
    +<b class="fc">&nbsp;    M1_RATE(&quot;m1_rate&quot;),</b>
    +<b class="fc">&nbsp;    M5_RATE(&quot;m5_rate&quot;),</b>
    +<b class="fc">&nbsp;    M15_RATE(&quot;m15_rate&quot;),</b>
    +<b class="fc">&nbsp;    MEAN_RATE(&quot;mean_rate&quot;);</b>
    +&nbsp;
    +&nbsp;    private final String code;
    +&nbsp;
    +<b class="fc">&nbsp;    MetricAttribute(String code) {</b>
    +<b class="fc">&nbsp;        this.code = code;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getCode() {
    +<b class="fc">&nbsp;        return code;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-14.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-14.html
    new file mode 100644
    index 0000000000..01fc57deb0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-14.html
    @@ -0,0 +1,136 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricFilter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricFilter (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A filter used to determine whether or not a metric should be reported, among other things.
    +&nbsp; */
    +&nbsp;public interface MetricFilter {
    +&nbsp;    /**
    +&nbsp;     * Matches all metrics, regardless of type or name.
    +&nbsp;     */
    +<b class="fc">&nbsp;    MetricFilter ALL = (name, metric) -&gt; true;</b>
    +&nbsp;
    +&nbsp;    static MetricFilter startsWith(String prefix) {
    +<b class="fc">&nbsp;        return (name, metric) -&gt; name.startsWith(prefix);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    static MetricFilter endsWith(String suffix) {
    +<b class="fc">&nbsp;        return (name, metric) -&gt; name.endsWith(suffix);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    static MetricFilter contains(String substring) {
    +<b class="fc">&nbsp;        return (name, metric) -&gt; name.contains(substring);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns {@code true} if the metric matches the filter; {@code false} otherwise.
    +&nbsp;     *
    +&nbsp;     * @param name   the metric&#39;s name
    +&nbsp;     * @param metric the metric
    +&nbsp;     * @return {@code true} if the metric matches the filter
    +&nbsp;     */
    +&nbsp;    boolean matches(String name, Metric metric);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-15.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-15.html
    new file mode 100644
    index 0000000000..129376d963
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-15.html
    @@ -0,0 +1,1026 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricRegistry</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricRegistry</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (41/41)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (108/116)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">MetricRegistry$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    36.4%
    +  </span>
    +  <span class="absValue">
    +    (4/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    36.4%
    +  </span>
    +  <span class="absValue">
    +    (4/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$MetricBuilder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$MetricBuilder$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$MetricBuilder$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$MetricBuilder$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$MetricBuilder$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$MetricBuilder$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$MetricSupplier</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.SortedSet;
    +&nbsp;import java.util.TreeMap;
    +&nbsp;import java.util.TreeSet;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.CopyOnWriteArrayList;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A registry of metric instances.
    +&nbsp; */
    +&nbsp;public class MetricRegistry implements MetricSet {
    +&nbsp;    /**
    +&nbsp;     * Concatenates elements to form a dotted name, eliding any null values or empty strings.
    +&nbsp;     *
    +&nbsp;     * @param name  the first element of the name
    +&nbsp;     * @param names the remaining elements of the name
    +&nbsp;     * @return {@code name} and {@code names} concatenated by periods
    +&nbsp;     */
    +&nbsp;    public static String name(String name, String... names) {
    +<b class="fc">&nbsp;        final StringBuilder builder = new StringBuilder();</b>
    +<b class="fc">&nbsp;        append(builder, name);</b>
    +<b class="fc">&nbsp;        if (names != null) {</b>
    +<b class="fc">&nbsp;            for (String s : names) {</b>
    +<b class="fc">&nbsp;                append(builder, s);</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        return builder.toString();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Concatenates a class name and elements to form a dotted name, eliding any null values or
    +&nbsp;     * empty strings.
    +&nbsp;     *
    +&nbsp;     * @param klass the first element of the name
    +&nbsp;     * @param names the remaining elements of the name
    +&nbsp;     * @return {@code klass} and {@code names} concatenated by periods
    +&nbsp;     */
    +&nbsp;    public static String name(Class&lt;?&gt; klass, String... names) {
    +<b class="fc">&nbsp;        return name(klass.getName(), names);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static void append(StringBuilder builder, String part) {
    +<b class="fc">&nbsp;        if (part != null &amp;&amp; !part.isEmpty()) {</b>
    +<b class="fc">&nbsp;            if (builder.length() &gt; 0) {</b>
    +<b class="fc">&nbsp;                builder.append(&#39;.&#39;);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            builder.append(part);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final ConcurrentMap&lt;String, Metric&gt; metrics;
    +&nbsp;    private final List&lt;MetricRegistryListener&gt; listeners;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link MetricRegistry}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public MetricRegistry() {</b>
    +<b class="fc">&nbsp;        this.metrics = buildMap();</b>
    +<b class="fc">&nbsp;        this.listeners = new CopyOnWriteArrayList&lt;&gt;();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link ConcurrentMap} implementation for use inside the registry. Override this
    +&nbsp;     * to create a {@link MetricRegistry} with space- or time-bounded metric lifecycles, for
    +&nbsp;     * example.
    +&nbsp;     *
    +&nbsp;     * @return a new {@link ConcurrentMap}
    +&nbsp;     */
    +&nbsp;    protected ConcurrentMap&lt;String, Metric&gt; buildMap() {
    +<b class="fc">&nbsp;        return new ConcurrentHashMap&lt;&gt;();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Given a {@link Gauge}, registers it under the given name and returns it
    +&nbsp;     *
    +&nbsp;     * @param name the name of the gauge
    +&nbsp;     * @param &lt;T&gt;  the type of the gauge&#39;s value
    +&nbsp;     * @return the registered {@link Gauge}
    +&nbsp;     * @since 4.2.10
    +&nbsp;     */
    +&nbsp;    public &lt;T&gt; Gauge&lt;T&gt; registerGauge(String name, Gauge&lt;T&gt; metric) throws IllegalArgumentException {
    +<b class="fc">&nbsp;        return register(name, metric);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Given a {@link Metric}, registers it under the given name.
    +&nbsp;     *
    +&nbsp;     * @param name   the name of the metric
    +&nbsp;     * @param metric the metric
    +&nbsp;     * @param &lt;T&gt;    the type of the metric
    +&nbsp;     * @return {@code metric}
    +&nbsp;     * @throws IllegalArgumentException if the name is already registered or metric variable is null
    +&nbsp;     */
    +&nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
    +&nbsp;    public &lt;T extends Metric&gt; T register(String name, T metric) throws IllegalArgumentException {
    +&nbsp;
    +<b class="fc">&nbsp;        if (metric == null) {</b>
    +<b class="fc">&nbsp;            throw new NullPointerException(&quot;metric == null&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (metric instanceof MetricRegistry) {</b>
    +<b class="fc">&nbsp;            final MetricRegistry childRegistry = (MetricRegistry) metric;</b>
    +<b class="fc">&nbsp;            final String childName = name;</b>
    +<b class="fc">&nbsp;            childRegistry.addListener(new MetricRegistryListener() {</b>
    +&nbsp;                @Override
    +&nbsp;                public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    +<b class="fc">&nbsp;                    register(name(childName, name), gauge);</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                @Override
    +&nbsp;                public void onGaugeRemoved(String name) {
    +<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                @Override
    +&nbsp;                public void onCounterAdded(String name, Counter counter) {
    +<b class="fc">&nbsp;                    register(name(childName, name), counter);</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                @Override
    +&nbsp;                public void onCounterRemoved(String name) {
    +<b class="fc">&nbsp;                    remove(name(childName, name));</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                @Override
    +&nbsp;                public void onHistogramAdded(String name, Histogram histogram) {
    +<b class="nc">&nbsp;                    register(name(childName, name), histogram);</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                @Override
    +&nbsp;                public void onHistogramRemoved(String name) {
    +<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                @Override
    +&nbsp;                public void onMeterAdded(String name, Meter meter) {
    +<b class="nc">&nbsp;                    register(name(childName, name), meter);</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                @Override
    +&nbsp;                public void onMeterRemoved(String name) {
    +<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                @Override
    +&nbsp;                public void onTimerAdded(String name, Timer timer) {
    +<b class="nc">&nbsp;                    register(name(childName, name), timer);</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                @Override
    +&nbsp;                public void onTimerRemoved(String name) {
    +<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    +&nbsp;                }
    +&nbsp;            });
    +<b class="fc">&nbsp;        } else if (metric instanceof MetricSet) {</b>
    +<b class="fc">&nbsp;            registerAll(name, (MetricSet) metric);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            final Metric existing = metrics.putIfAbsent(name, metric);</b>
    +<b class="fc">&nbsp;            if (existing == null) {</b>
    +<b class="fc">&nbsp;                onMetricAdded(name, metric);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;A metric named &quot; + name + &quot; already exists&quot;);</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        return metric;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Given a metric set, registers them.
    +&nbsp;     *
    +&nbsp;     * @param metrics a set of metrics
    +&nbsp;     * @throws IllegalArgumentException if any of the names are already registered
    +&nbsp;     */
    +&nbsp;    public void registerAll(MetricSet metrics) throws IllegalArgumentException {
    +<b class="fc">&nbsp;        registerAll(null, metrics);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Counter} registered under this name; or create and register
    +&nbsp;     * a new {@link Counter} if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name the name of the metric
    +&nbsp;     * @return a new or pre-existing {@link Counter}
    +&nbsp;     */
    +&nbsp;    public Counter counter(String name) {
    +<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.COUNTERS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Counter} registered under this name; or create and register
    +&nbsp;     * a new {@link Counter} using the provided MetricSupplier if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name     the name of the metric
    +&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a counter.
    +&nbsp;     * @return a new or pre-existing {@link Counter}
    +&nbsp;     */
    +&nbsp;    public Counter counter(String name, final MetricSupplier&lt;Counter&gt; supplier) {
    +<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Counter&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Counter newMetric() {
    +<b class="fc">&nbsp;                return supplier.newMetric();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Counter.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Histogram} registered under this name; or create and register
    +&nbsp;     * a new {@link Histogram} if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name the name of the metric
    +&nbsp;     * @return a new or pre-existing {@link Histogram}
    +&nbsp;     */
    +&nbsp;    public Histogram histogram(String name) {
    +<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.HISTOGRAMS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Histogram} registered under this name; or create and register
    +&nbsp;     * a new {@link Histogram} using the provided MetricSupplier if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name     the name of the metric
    +&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a histogram
    +&nbsp;     * @return a new or pre-existing {@link Histogram}
    +&nbsp;     */
    +&nbsp;    public Histogram histogram(String name, final MetricSupplier&lt;Histogram&gt; supplier) {
    +<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Histogram&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Histogram newMetric() {
    +<b class="fc">&nbsp;                return supplier.newMetric();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Histogram.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Meter} registered under this name; or create and register
    +&nbsp;     * a new {@link Meter} if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name the name of the metric
    +&nbsp;     * @return a new or pre-existing {@link Meter}
    +&nbsp;     */
    +&nbsp;    public Meter meter(String name) {
    +<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.METERS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Meter} registered under this name; or create and register
    +&nbsp;     * a new {@link Meter} using the provided MetricSupplier if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name     the name of the metric
    +&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a Meter
    +&nbsp;     * @return a new or pre-existing {@link Meter}
    +&nbsp;     */
    +&nbsp;    public Meter meter(String name, final MetricSupplier&lt;Meter&gt; supplier) {
    +<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Meter&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Meter newMetric() {
    +<b class="fc">&nbsp;                return supplier.newMetric();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Meter.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Timer} registered under this name; or create and register
    +&nbsp;     * a new {@link Timer} if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name the name of the metric
    +&nbsp;     * @return a new or pre-existing {@link Timer}
    +&nbsp;     */
    +&nbsp;    public Timer timer(String name) {
    +<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.TIMERS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Timer} registered under this name; or create and register
    +&nbsp;     * a new {@link Timer} using the provided MetricSupplier if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name     the name of the metric
    +&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a Timer
    +&nbsp;     * @return a new or pre-existing {@link Timer}
    +&nbsp;     */
    +&nbsp;    public Timer timer(String name, final MetricSupplier&lt;Timer&gt; supplier) {
    +<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Timer&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Timer newMetric() {
    +<b class="fc">&nbsp;                return supplier.newMetric();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Timer.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Gauge} registered under this name; or create and register
    +&nbsp;     * a new {@link SettableGauge} if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name the name of the metric
    +&nbsp;     * @return a pre-existing {@link Gauge} or a new {@link SettableGauge}
    +&nbsp;     * @since 4.2
    +&nbsp;     */
    +&nbsp;    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    +&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name) {
    +<b class="fc">&nbsp;        return (T) getOrAdd(name, MetricBuilder.GAUGES);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Gauge} registered under this name; or create and register
    +&nbsp;     * a new {@link Gauge} using the provided MetricSupplier if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name     the name of the metric
    +&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a Gauge
    +&nbsp;     * @return a new or pre-existing {@link Gauge}
    +&nbsp;     */
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name, final MetricSupplier&lt;T&gt; supplier) {
    +<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;T&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public T newMetric() {
    +<b class="fc">&nbsp;                return supplier.newMetric();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Gauge.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Removes the metric with the given name.
    +&nbsp;     *
    +&nbsp;     * @param name the name of the metric
    +&nbsp;     * @return whether or not the metric was removed
    +&nbsp;     */
    +&nbsp;    public boolean remove(String name) {
    +<b class="fc">&nbsp;        final Metric metric = metrics.remove(name);</b>
    +<b class="fc">&nbsp;        if (metric != null) {</b>
    +<b class="fc">&nbsp;            onMetricRemoved(name, metric);</b>
    +<b class="fc">&nbsp;            return true;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return false;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Removes all metrics which match the given filter.
    +&nbsp;     *
    +&nbsp;     * @param filter a filter
    +&nbsp;     */
    +&nbsp;    public void removeMatching(MetricFilter filter) {
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    +<b class="fc">&nbsp;            if (filter.matches(entry.getKey(), entry.getValue())) {</b>
    +<b class="fc">&nbsp;                remove(entry.getKey());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Adds a {@link MetricRegistryListener} to a collection of listeners that will be notified on
    +&nbsp;     * metric creation.  Listeners will be notified in the order in which they are added.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * &lt;b&gt;N.B.:&lt;/b&gt; The listener will be notified of all existing metrics when it first registers.
    +&nbsp;     *
    +&nbsp;     * @param listener the listener that will be notified
    +&nbsp;     */
    +&nbsp;    public void addListener(MetricRegistryListener listener) {
    +<b class="fc">&nbsp;        listeners.add(listener);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    +<b class="fc">&nbsp;            notifyListenerOfAddedMetric(listener, entry.getValue(), entry.getKey());</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Removes a {@link MetricRegistryListener} from this registry&#39;s collection of listeners.
    +&nbsp;     *
    +&nbsp;     * @param listener the listener that will be removed
    +&nbsp;     */
    +&nbsp;    public void removeListener(MetricRegistryListener listener) {
    +<b class="fc">&nbsp;        listeners.remove(listener);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a set of the names of all the metrics in the registry.
    +&nbsp;     *
    +&nbsp;     * @return the names of all the metrics
    +&nbsp;     */
    +&nbsp;    public SortedSet&lt;String&gt; getNames() {
    +<b class="fc">&nbsp;        return Collections.unmodifiableSortedSet(new TreeSet&lt;&gt;(metrics.keySet()));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the gauges in the registry and their names.
    +&nbsp;     *
    +&nbsp;     * @return all the gauges in the registry
    +&nbsp;     */
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges() {
    +<b class="fc">&nbsp;        return getGauges(MetricFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the gauges in the registry and their names which match the given filter.
    +&nbsp;     *
    +&nbsp;     * @param filter the metric filter to match
    +&nbsp;     * @return all the gauges in the registry
    +&nbsp;     */
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges(MetricFilter filter) {
    +<b class="fc">&nbsp;        return getMetrics(Gauge.class, filter);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the counters in the registry and their names.
    +&nbsp;     *
    +&nbsp;     * @return all the counters in the registry
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters() {
    +<b class="fc">&nbsp;        return getCounters(MetricFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the counters in the registry and their names which match the given
    +&nbsp;     * filter.
    +&nbsp;     *
    +&nbsp;     * @param filter the metric filter to match
    +&nbsp;     * @return all the counters in the registry
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters(MetricFilter filter) {
    +<b class="fc">&nbsp;        return getMetrics(Counter.class, filter);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the histograms in the registry and their names.
    +&nbsp;     *
    +&nbsp;     * @return all the histograms in the registry
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms() {
    +<b class="fc">&nbsp;        return getHistograms(MetricFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the histograms in the registry and their names which match the given
    +&nbsp;     * filter.
    +&nbsp;     *
    +&nbsp;     * @param filter the metric filter to match
    +&nbsp;     * @return all the histograms in the registry
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms(MetricFilter filter) {
    +<b class="fc">&nbsp;        return getMetrics(Histogram.class, filter);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the meters in the registry and their names.
    +&nbsp;     *
    +&nbsp;     * @return all the meters in the registry
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters() {
    +<b class="fc">&nbsp;        return getMeters(MetricFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the meters in the registry and their names which match the given filter.
    +&nbsp;     *
    +&nbsp;     * @param filter the metric filter to match
    +&nbsp;     * @return all the meters in the registry
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters(MetricFilter filter) {
    +<b class="fc">&nbsp;        return getMetrics(Meter.class, filter);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the timers in the registry and their names.
    +&nbsp;     *
    +&nbsp;     * @return all the timers in the registry
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers() {
    +<b class="fc">&nbsp;        return getTimers(MetricFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the timers in the registry and their names which match the given filter.
    +&nbsp;     *
    +&nbsp;     * @param filter the metric filter to match
    +&nbsp;     * @return all the timers in the registry
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers(MetricFilter filter) {
    +<b class="fc">&nbsp;        return getMetrics(Timer.class, filter);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
    +&nbsp;    private &lt;T extends Metric&gt; T getOrAdd(String name, MetricBuilder&lt;T&gt; builder) {
    +<b class="fc">&nbsp;        final Metric metric = metrics.get(name);</b>
    +<b class="fc">&nbsp;        if (builder.isInstance(metric)) {</b>
    +<b class="fc">&nbsp;            return (T) metric;</b>
    +<b class="fc">&nbsp;        } else if (metric == null) {</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                return register(name, builder.newMetric());</b>
    +<b class="nc">&nbsp;            } catch (IllegalArgumentException e) {</b>
    +<b class="nc">&nbsp;                final Metric added = metrics.get(name);</b>
    +<b class="nc">&nbsp;                if (builder.isInstance(added)) {</b>
    +<b class="nc">&nbsp;                    return (T) added;</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +<b class="nc">&nbsp;        throw new IllegalArgumentException(name + &quot; is already used for a different type of metric&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
    +&nbsp;    private &lt;T extends Metric&gt; SortedMap&lt;String, T&gt; getMetrics(Class&lt;T&gt; klass, MetricFilter filter) {
    +<b class="fc">&nbsp;        final TreeMap&lt;String, T&gt; timers = new TreeMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    +<b class="fc">&nbsp;            if (klass.isInstance(entry.getValue()) &amp;&amp; filter.matches(entry.getKey(),</b>
    +<b class="fc">&nbsp;                    entry.getValue())) {</b>
    +<b class="fc">&nbsp;                timers.put(entry.getKey(), (T) entry.getValue());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(timers);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void onMetricAdded(String name, Metric metric) {
    +<b class="fc">&nbsp;        for (MetricRegistryListener listener : listeners) {</b>
    +<b class="fc">&nbsp;            notifyListenerOfAddedMetric(listener, metric, name);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void notifyListenerOfAddedMetric(MetricRegistryListener listener, Metric metric, String name) {
    +<b class="fc">&nbsp;        if (metric instanceof Gauge) {</b>
    +<b class="fc">&nbsp;            listener.onGaugeAdded(name, (Gauge&lt;?&gt;) metric);</b>
    +<b class="fc">&nbsp;        } else if (metric instanceof Counter) {</b>
    +<b class="fc">&nbsp;            listener.onCounterAdded(name, (Counter) metric);</b>
    +<b class="fc">&nbsp;        } else if (metric instanceof Histogram) {</b>
    +<b class="fc">&nbsp;            listener.onHistogramAdded(name, (Histogram) metric);</b>
    +<b class="fc">&nbsp;        } else if (metric instanceof Meter) {</b>
    +<b class="fc">&nbsp;            listener.onMeterAdded(name, (Meter) metric);</b>
    +<b class="fc">&nbsp;        } else if (metric instanceof Timer) {</b>
    +<b class="fc">&nbsp;            listener.onTimerAdded(name, (Timer) metric);</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;Unknown metric type: &quot; + metric.getClass());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void onMetricRemoved(String name, Metric metric) {
    +<b class="fc">&nbsp;        for (MetricRegistryListener listener : listeners) {</b>
    +<b class="fc">&nbsp;            notifyListenerOfRemovedMetric(name, metric, listener);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void notifyListenerOfRemovedMetric(String name, Metric metric, MetricRegistryListener listener) {
    +<b class="fc">&nbsp;        if (metric instanceof Gauge) {</b>
    +<b class="fc">&nbsp;            listener.onGaugeRemoved(name);</b>
    +<b class="fc">&nbsp;        } else if (metric instanceof Counter) {</b>
    +<b class="fc">&nbsp;            listener.onCounterRemoved(name);</b>
    +<b class="fc">&nbsp;        } else if (metric instanceof Histogram) {</b>
    +<b class="fc">&nbsp;            listener.onHistogramRemoved(name);</b>
    +<b class="fc">&nbsp;        } else if (metric instanceof Meter) {</b>
    +<b class="fc">&nbsp;            listener.onMeterRemoved(name);</b>
    +<b class="fc">&nbsp;        } else if (metric instanceof Timer) {</b>
    +<b class="fc">&nbsp;            listener.onTimerRemoved(name);</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;Unknown metric type: &quot; + metric.getClass());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Given a metric set, registers them with the given prefix prepended to their names.
    +&nbsp;     *
    +&nbsp;     * @param prefix a name prefix
    +&nbsp;     * @param metrics a set of metrics
    +&nbsp;     * @throws IllegalArgumentException if any of the names are already registered
    +&nbsp;     */
    +&nbsp;    public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.getMetrics().entrySet()) {</b>
    +<b class="fc">&nbsp;            if (entry.getValue() instanceof MetricSet) {</b>
    +<b class="fc">&nbsp;                registerAll(name(prefix, entry.getKey()), (MetricSet) entry.getValue());</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                register(name(prefix, entry.getKey()), entry.getValue());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(metrics);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @FunctionalInterface
    +&nbsp;    public interface MetricSupplier&lt;T extends Metric&gt; {
    +&nbsp;        T newMetric();
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A quick and easy way of capturing the notion of default metrics.
    +&nbsp;     */
    +&nbsp;    private interface MetricBuilder&lt;T extends Metric&gt; {
    +<b class="fc">&nbsp;        MetricBuilder&lt;Counter&gt; COUNTERS = new MetricBuilder&lt;Counter&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Counter newMetric() {
    +<b class="fc">&nbsp;                return new Counter();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Counter.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;
    +<b class="fc">&nbsp;        MetricBuilder&lt;Histogram&gt; HISTOGRAMS = new MetricBuilder&lt;Histogram&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Histogram newMetric() {
    +<b class="fc">&nbsp;                return new Histogram(new ExponentiallyDecayingReservoir());</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Histogram.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;
    +<b class="fc">&nbsp;        MetricBuilder&lt;Meter&gt; METERS = new MetricBuilder&lt;Meter&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Meter newMetric() {
    +<b class="fc">&nbsp;                return new Meter();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Meter.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;
    +<b class="fc">&nbsp;        MetricBuilder&lt;Timer&gt; TIMERS = new MetricBuilder&lt;Timer&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Timer newMetric() {
    +<b class="fc">&nbsp;                return new Timer();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Timer.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;
    +&nbsp;        @SuppressWarnings(&quot;rawtypes&quot;)
    +<b class="fc">&nbsp;        MetricBuilder&lt;Gauge&gt; GAUGES = new MetricBuilder&lt;Gauge&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Gauge newMetric() {
    +<b class="fc">&nbsp;                return new DefaultSettableGauge&lt;&gt;();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Gauge.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;
    +&nbsp;        T newMetric();
    +&nbsp;
    +&nbsp;        boolean isInstance(Metric metric);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-16.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-16.html
    new file mode 100644
    index 0000000000..a3f7dd6215
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-16.html
    @@ -0,0 +1,275 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricRegistryListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricRegistryListener (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$Base</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$17YfnNXT</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$17YfnNXT$auxiliary$chkhkDg3</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$17YfnNXT$auxiliary$obf86OVP</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$3FrTZ1tj</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$3FrTZ1tj$auxiliary$n8ZobbGB</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$3FrTZ1tj$auxiliary$rtxplSKv</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$hjLpqAKM</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$hjLpqAKM$auxiliary$JNmgluwX</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$hjLpqAKM$auxiliary$mz9kL0zg</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$QmmXdimO</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$QmmXdimO$auxiliary$bvbPAgzX</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$QmmXdimO$auxiliary$eGE6xX64</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.EventListener;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Listeners for events from the registry.  Listeners must be thread-safe.
    +&nbsp; */
    +&nbsp;public interface MetricRegistryListener extends EventListener {
    +&nbsp;    /**
    +&nbsp;     * A no-op implementation of {@link MetricRegistryListener}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    abstract class Base implements MetricRegistryListener {</b>
    +&nbsp;        @Override
    +&nbsp;        public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onGaugeRemoved(String name) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onCounterAdded(String name, Counter counter) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onCounterRemoved(String name) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onHistogramAdded(String name, Histogram histogram) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onHistogramRemoved(String name) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onMeterAdded(String name, Meter meter) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onMeterRemoved(String name) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimerAdded(String name, Timer timer) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimerRemoved(String name) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Gauge} is added to the registry.
    +&nbsp;     *
    +&nbsp;     * @param name  the gauge&#39;s name
    +&nbsp;     * @param gauge the gauge
    +&nbsp;     */
    +&nbsp;    void onGaugeAdded(String name, Gauge&lt;?&gt; gauge);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Gauge} is removed from the registry.
    +&nbsp;     *
    +&nbsp;     * @param name the gauge&#39;s name
    +&nbsp;     */
    +&nbsp;    void onGaugeRemoved(String name);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Counter} is added to the registry.
    +&nbsp;     *
    +&nbsp;     * @param name    the counter&#39;s name
    +&nbsp;     * @param counter the counter
    +&nbsp;     */
    +&nbsp;    void onCounterAdded(String name, Counter counter);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Counter} is removed from the registry.
    +&nbsp;     *
    +&nbsp;     * @param name the counter&#39;s name
    +&nbsp;     */
    +&nbsp;    void onCounterRemoved(String name);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Histogram} is added to the registry.
    +&nbsp;     *
    +&nbsp;     * @param name      the histogram&#39;s name
    +&nbsp;     * @param histogram the histogram
    +&nbsp;     */
    +&nbsp;    void onHistogramAdded(String name, Histogram histogram);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Histogram} is removed from the registry.
    +&nbsp;     *
    +&nbsp;     * @param name the histogram&#39;s name
    +&nbsp;     */
    +&nbsp;    void onHistogramRemoved(String name);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Meter} is added to the registry.
    +&nbsp;     *
    +&nbsp;     * @param name  the meter&#39;s name
    +&nbsp;     * @param meter the meter
    +&nbsp;     */
    +&nbsp;    void onMeterAdded(String name, Meter meter);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Meter} is removed from the registry.
    +&nbsp;     *
    +&nbsp;     * @param name the meter&#39;s name
    +&nbsp;     */
    +&nbsp;    void onMeterRemoved(String name);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Timer} is added to the registry.
    +&nbsp;     *
    +&nbsp;     * @param name  the timer&#39;s name
    +&nbsp;     * @param timer the timer
    +&nbsp;     */
    +&nbsp;    void onTimerAdded(String name, Timer timer);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Timer} is removed from the registry.
    +&nbsp;     *
    +&nbsp;     * @param name the timer&#39;s name
    +&nbsp;     */
    +&nbsp;    void onTimerRemoved(String name);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-17.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-17.html
    new file mode 100644
    index 0000000000..1154d835d3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-17.html
    @@ -0,0 +1,1097 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > NoopMetricRegistry</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: NoopMetricRegistry (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">NoopMetricRegistry</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (26/32)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.4%
    +  </span>
    +  <span class="absValue">
    +    (28/34)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$EmptyConcurrentMap</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    5.9%
    +  </span>
    +  <span class="absValue">
    +    (1/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    5.9%
    +  </span>
    +  <span class="absValue">
    +    (1/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$EmptySnapshot</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$NoopCounter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    28.6%
    +  </span>
    +  <span class="absValue">
    +    (2/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    28.6%
    +  </span>
    +  <span class="absValue">
    +    (2/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$NoopGauge</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$NoopHistogram</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    42.9%
    +  </span>
    +  <span class="absValue">
    +    (3/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (4/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$NoopHistogram$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$NoopMeter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    22.2%
    +  </span>
    +  <span class="absValue">
    +    (2/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    22.2%
    +  </span>
    +  <span class="absValue">
    +    (2/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$NoopTimer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    14.3%
    +  </span>
    +  <span class="absValue">
    +    (2/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (3/15)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$NoopTimer$Context</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60%
    +  </span>
    +  <span class="absValue">
    +    (3/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60%
    +  </span>
    +  <span class="absValue">
    +    (3/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$NoopTimer$Context$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.time.Duration;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.SortedSet;
    +&nbsp;import java.util.concurrent.Callable;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A registry of metric instances which never creates or registers any metrics and returns no-op implementations of any metric type.
    +&nbsp; *
    +&nbsp; * @since 4.1.17
    +&nbsp; */
    +<b class="fc">&nbsp;public final class NoopMetricRegistry extends MetricRegistry {</b>
    +<b class="fc">&nbsp;    private static final EmptyConcurrentMap&lt;String, Metric&gt; EMPTY_CONCURRENT_MAP = new EmptyConcurrentMap&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    protected ConcurrentMap&lt;String, Metric&gt; buildMap() {
    +<b class="fc">&nbsp;        return EMPTY_CONCURRENT_MAP;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T extends Metric&gt; T register(String name, T metric) throws IllegalArgumentException {
    +<b class="fc">&nbsp;        if (metric == null) {</b>
    +<b class="fc">&nbsp;            throw new NullPointerException(&quot;metric == null&quot;);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return metric;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void registerAll(MetricSet metrics) throws IllegalArgumentException {
    +&nbsp;        // NOP
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Counter counter(String name) {
    +<b class="fc">&nbsp;        return NoopCounter.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Counter counter(String name, MetricSupplier&lt;Counter&gt; supplier) {
    +<b class="fc">&nbsp;        return NoopCounter.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Histogram histogram(String name) {
    +<b class="fc">&nbsp;        return NoopHistogram.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Histogram histogram(String name, MetricSupplier&lt;Histogram&gt; supplier) {
    +<b class="fc">&nbsp;        return NoopHistogram.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Meter meter(String name) {
    +<b class="fc">&nbsp;        return NoopMeter.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Meter meter(String name, MetricSupplier&lt;Meter&gt; supplier) {
    +<b class="fc">&nbsp;        return NoopMeter.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Timer timer(String name) {
    +<b class="fc">&nbsp;        return NoopTimer.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Timer timer(String name, MetricSupplier&lt;Timer&gt; supplier) {
    +<b class="fc">&nbsp;        return NoopTimer.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     *
    +&nbsp;     * @since 4.2
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    +&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name) {
    +<b class="fc">&nbsp;        return (T) NoopGauge.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    +&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name, MetricSupplier&lt;T&gt; supplier) {
    +<b class="fc">&nbsp;        return (T) NoopGauge.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public boolean remove(String name) {
    +<b class="fc">&nbsp;        return false;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void removeMatching(MetricFilter filter) {
    +&nbsp;        // NOP
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void addListener(MetricRegistryListener listener) {
    +&nbsp;        // NOP
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void removeListener(MetricRegistryListener listener) {
    +&nbsp;        // NOP
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public SortedSet&lt;String&gt; getNames() {
    +<b class="fc">&nbsp;        return Collections.emptySortedSet();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges() {
    +<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges(MetricFilter filter) {
    +<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters() {
    +<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters(MetricFilter filter) {
    +<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms() {
    +<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms(MetricFilter filter) {
    +<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters() {
    +<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters(MetricFilter filter) {
    +<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers() {
    +<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers(MetricFilter filter) {
    +<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
    +&nbsp;        // NOP
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        return Collections.emptyMap();</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class NoopGauge&lt;T&gt; implements Gauge&lt;T&gt; {</b>
    +<b class="fc">&nbsp;        private static final NoopGauge&lt;?&gt; INSTANCE = new NoopGauge&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public T getValue() {
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="nc">&nbsp;    private static final class EmptySnapshot extends Snapshot {</b>
    +<b class="nc">&nbsp;        private static final EmptySnapshot INSTANCE = new EmptySnapshot();</b>
    +<b class="nc">&nbsp;        private static final long[] EMPTY_LONG_ARRAY = new long[0];</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getValue(double quantile) {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public long[] getValues() {
    +<b class="nc">&nbsp;            return EMPTY_LONG_ARRAY;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public int size() {
    +<b class="nc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public long getMax() {
    +<b class="nc">&nbsp;            return 0L;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getMean() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public long getMin() {
    +<b class="nc">&nbsp;            return 0L;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getStdDev() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void dump(OutputStream output) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class NoopTimer extends Timer {</b>
    +<b class="fc">&nbsp;        private static final NoopTimer INSTANCE = new NoopTimer();</b>
    +<b class="fc">&nbsp;        private static final Timer.Context CONTEXT = new NoopTimer.Context();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        private static class Context extends Timer.Context {</b>
    +<b class="fc">&nbsp;            private static final Clock CLOCK = new Clock() {</b>
    +&nbsp;                /**
    +&nbsp;                 * {@inheritDoc}
    +&nbsp;                 */
    +&nbsp;                @Override
    +&nbsp;                public long getTick() {
    +<b class="fc">&nbsp;                    return 0L;</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                /**
    +&nbsp;                 * {@inheritDoc}
    +&nbsp;                 */
    +&nbsp;                @Override
    +&nbsp;                public long getTime() {
    +<b class="nc">&nbsp;                    return 0L;</b>
    +&nbsp;                }
    +&nbsp;            };
    +&nbsp;
    +&nbsp;            private Context() {
    +<b class="fc">&nbsp;                super(INSTANCE, CLOCK);</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            /**
    +&nbsp;             * {@inheritDoc}
    +&nbsp;             */
    +&nbsp;            @Override
    +&nbsp;            public long stop() {
    +<b class="nc">&nbsp;                return 0L;</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            /**
    +&nbsp;             * {@inheritDoc}
    +&nbsp;             */
    +&nbsp;            @Override
    +&nbsp;            public void close() {
    +&nbsp;                // NOP
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void update(long duration, TimeUnit unit) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void update(Duration duration) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public &lt;T&gt; T time(Callable&lt;T&gt; event) throws Exception {
    +<b class="nc">&nbsp;            return event.call();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public &lt;T&gt; T timeSupplier(Supplier&lt;T&gt; event) {
    +<b class="nc">&nbsp;            return event.get();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void time(Runnable event) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public Timer.Context time() {
    +<b class="nc">&nbsp;            return CONTEXT;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public long getCount() {
    +<b class="nc">&nbsp;            return 0L;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getFifteenMinuteRate() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getFiveMinuteRate() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getMeanRate() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getOneMinuteRate() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public Snapshot getSnapshot() {
    +<b class="nc">&nbsp;            return EmptySnapshot.INSTANCE;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class NoopHistogram extends Histogram {</b>
    +<b class="fc">&nbsp;        private static final NoopHistogram INSTANCE = new NoopHistogram();</b>
    +<b class="fc">&nbsp;        private static final Reservoir EMPTY_RESERVOIR = new Reservoir() {</b>
    +&nbsp;            /**
    +&nbsp;             * {@inheritDoc}
    +&nbsp;             */
    +&nbsp;            @Override
    +&nbsp;            public int size() {
    +<b class="nc">&nbsp;                return 0;</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            /**
    +&nbsp;             * {@inheritDoc}
    +&nbsp;             */
    +&nbsp;            @Override
    +&nbsp;            public void update(long value) {
    +&nbsp;                // NOP
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;
    +&nbsp;            /**
    +&nbsp;             * {@inheritDoc}
    +&nbsp;             */
    +&nbsp;            @Override
    +&nbsp;            public Snapshot getSnapshot() {
    +<b class="nc">&nbsp;                return EmptySnapshot.INSTANCE;</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;
    +&nbsp;        private NoopHistogram() {
    +<b class="fc">&nbsp;            super(EMPTY_RESERVOIR);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void update(int value) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void update(long value) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public long getCount() {
    +<b class="nc">&nbsp;            return 0L;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public Snapshot getSnapshot() {
    +<b class="nc">&nbsp;            return EmptySnapshot.INSTANCE;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class NoopCounter extends Counter {</b>
    +<b class="fc">&nbsp;        private static final NoopCounter INSTANCE = new NoopCounter();</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void inc() {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void inc(long n) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void dec() {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void dec(long n) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public long getCount() {
    +<b class="nc">&nbsp;            return 0L;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class NoopMeter extends Meter {</b>
    +<b class="fc">&nbsp;        private static final NoopMeter INSTANCE = new NoopMeter();</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void mark() {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void mark(long n) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public long getCount() {
    +<b class="nc">&nbsp;            return 0L;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getFifteenMinuteRate() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getFiveMinuteRate() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getMeanRate() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getOneMinuteRate() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static final class EmptyConcurrentMap&lt;K, V&gt; implements ConcurrentMap&lt;K, V&gt; {</b>
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public V putIfAbsent(K key, V value) {
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public boolean remove(Object key, Object value) {
    +<b class="nc">&nbsp;            return false;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public boolean replace(K key, V oldValue, V newValue) {
    +<b class="nc">&nbsp;            return false;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public V replace(K key, V value) {
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public int size() {
    +<b class="nc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public boolean isEmpty() {
    +<b class="nc">&nbsp;            return true;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public boolean containsKey(Object key) {
    +<b class="nc">&nbsp;            return false;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public boolean containsValue(Object value) {
    +<b class="nc">&nbsp;            return false;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public V get(Object key) {
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public V put(K key, V value) {
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public V remove(Object key) {
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void putAll(Map&lt;? extends K, ? extends V&gt; m) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void clear() {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public Set&lt;K&gt; keySet() {
    +<b class="nc">&nbsp;            return Collections.emptySet();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public Collection&lt;V&gt; values() {
    +<b class="nc">&nbsp;            return Collections.emptySet();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public Set&lt;Entry&lt;K, V&gt;&gt; entrySet() {
    +<b class="nc">&nbsp;            return Collections.emptySet();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-18.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-18.html
    new file mode 100644
    index 0000000000..4310e7d262
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-18.html
    @@ -0,0 +1,196 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > RatioGauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: RatioGauge (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">RatioGauge</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">RatioGauge$Ratio</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import static java.lang.Double.isInfinite;
    +&nbsp;import static java.lang.Double.isNaN;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A gauge which measures the ratio of one value to another.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * If the denominator is zero, not a number, or infinite, the resulting ratio is not a number.
    +&nbsp; */
    +<b class="fc">&nbsp;public abstract class RatioGauge implements Gauge&lt;Double&gt; {</b>
    +&nbsp;    /**
    +&nbsp;     * A ratio of one quantity to another.
    +&nbsp;     */
    +&nbsp;    public static class Ratio {
    +&nbsp;        /**
    +&nbsp;         * Creates a new ratio with the given numerator and denominator.
    +&nbsp;         *
    +&nbsp;         * @param numerator   the numerator of the ratio
    +&nbsp;         * @param denominator the denominator of the ratio
    +&nbsp;         * @return {@code numerator:denominator}
    +&nbsp;         */
    +&nbsp;        public static Ratio of(double numerator, double denominator) {
    +<b class="fc">&nbsp;            return new Ratio(numerator, denominator);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private final double numerator;
    +&nbsp;        private final double denominator;
    +&nbsp;
    +<b class="fc">&nbsp;        private Ratio(double numerator, double denominator) {</b>
    +<b class="fc">&nbsp;            this.numerator = numerator;</b>
    +<b class="fc">&nbsp;            this.denominator = denominator;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the ratio, which is either a {@code double} between 0 and 1 (inclusive) or
    +&nbsp;         * {@code NaN}.
    +&nbsp;         *
    +&nbsp;         * @return the ratio
    +&nbsp;         */
    +&nbsp;        public double getValue() {
    +<b class="fc">&nbsp;            final double d = denominator;</b>
    +<b class="fc">&nbsp;            if (isNaN(d) || isInfinite(d) || d == 0) {</b>
    +<b class="fc">&nbsp;                return Double.NaN;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return numerator / d;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String toString() {
    +<b class="fc">&nbsp;            return numerator + &quot;:&quot; + denominator;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the {@link Ratio} which is the gauge&#39;s current value.
    +&nbsp;     *
    +&nbsp;     * @return the {@link Ratio} which is the gauge&#39;s current value
    +&nbsp;     */
    +&nbsp;    protected abstract Ratio getRatio();
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Double getValue() {
    +<b class="fc">&nbsp;        return getRatio().getValue();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-19.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-19.html
    new file mode 100644
    index 0000000000..fca815d403
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-19.html
    @@ -0,0 +1,467 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ScheduledReporter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ScheduledReporter (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ScheduledReporter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.3%
    +  </span>
    +  <span class="absValue">
    +    (21/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (52/65)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">ScheduledReporter$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">ScheduledReporter$NamedThreadFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import java.io.Closeable;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.concurrent.Executor;
    +&nbsp;import java.util.concurrent.Executors;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.ScheduledFuture;
    +&nbsp;import java.util.concurrent.ThreadFactory;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * The abstract base class for all scheduled reporters (i.e., reporters which process a registry&#39;s
    +&nbsp; * metrics periodically).
    +&nbsp; *
    +&nbsp; * @see ConsoleReporter
    +&nbsp; * @see CsvReporter
    +&nbsp; * @see Slf4jReporter
    +&nbsp; */
    +&nbsp;public abstract class ScheduledReporter implements Closeable, Reporter {
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOG = LoggerFactory.getLogger(ScheduledReporter.class);</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A simple named thread factory.
    +&nbsp;     */
    +&nbsp;    @SuppressWarnings(&quot;NullableProblems&quot;)
    +<b class="fc">&nbsp;    private static class NamedThreadFactory implements ThreadFactory {</b>
    +&nbsp;        private final ThreadGroup group;
    +<b class="fc">&nbsp;        private final AtomicInteger threadNumber = new AtomicInteger(1);</b>
    +&nbsp;        private final String namePrefix;
    +&nbsp;
    +<b class="fc">&nbsp;        private NamedThreadFactory(String name) {</b>
    +<b class="fc">&nbsp;            final SecurityManager s = System.getSecurityManager();</b>
    +<b class="fc">&nbsp;            this.group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();</b>
    +<b class="fc">&nbsp;            this.namePrefix = &quot;metrics-&quot; + name + &quot;-thread-&quot;;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public Thread newThread(Runnable r) {
    +<b class="fc">&nbsp;            final Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);</b>
    +<b class="fc">&nbsp;            t.setDaemon(true);</b>
    +<b class="fc">&nbsp;            if (t.getPriority() != Thread.NORM_PRIORITY) {</b>
    +<b class="nc">&nbsp;                t.setPriority(Thread.NORM_PRIORITY);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return t;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static final AtomicInteger FACTORY_ID = new AtomicInteger();</b>
    +&nbsp;
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final ScheduledExecutorService executor;
    +&nbsp;    private final boolean shutdownExecutorOnStop;
    +&nbsp;    private final Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    +&nbsp;    private ScheduledFuture&lt;?&gt; scheduledFuture;
    +&nbsp;    private final MetricFilter filter;
    +&nbsp;    private final long durationFactor;
    +&nbsp;    private final String durationUnit;
    +&nbsp;    private final long rateFactor;
    +&nbsp;    private final String rateUnit;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link ScheduledReporter} instance.
    +&nbsp;     *
    +&nbsp;     * @param registry     the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    +&nbsp;     *                     reporter will report
    +&nbsp;     * @param name         the reporter&#39;s name
    +&nbsp;     * @param filter       the filter for which metrics to report
    +&nbsp;     * @param rateUnit     a unit of time
    +&nbsp;     * @param durationUnit a unit of time
    +&nbsp;     */
    +&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    +&nbsp;                                String name,
    +&nbsp;                                MetricFilter filter,
    +&nbsp;                                TimeUnit rateUnit,
    +&nbsp;                                TimeUnit durationUnit) {
    +<b class="fc">&nbsp;        this(registry, name, filter, rateUnit, durationUnit, createDefaultExecutor(name));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link ScheduledReporter} instance.
    +&nbsp;     *
    +&nbsp;     * @param registry the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    +&nbsp;     *                 reporter will report
    +&nbsp;     * @param name     the reporter&#39;s name
    +&nbsp;     * @param filter   the filter for which metrics to report
    +&nbsp;     * @param executor the executor to use while scheduling reporting of metrics.
    +&nbsp;     */
    +&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    +&nbsp;                                String name,
    +&nbsp;                                MetricFilter filter,
    +&nbsp;                                TimeUnit rateUnit,
    +&nbsp;                                TimeUnit durationUnit,
    +&nbsp;                                ScheduledExecutorService executor) {
    +<b class="fc">&nbsp;        this(registry, name, filter, rateUnit, durationUnit, executor, true);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link ScheduledReporter} instance.
    +&nbsp;     *
    +&nbsp;     * @param registry               the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    +&nbsp;     *                               reporter will report
    +&nbsp;     * @param name                   the reporter&#39;s name
    +&nbsp;     * @param filter                 the filter for which metrics to report
    +&nbsp;     * @param executor               the executor to use while scheduling reporting of metrics.
    +&nbsp;     * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    +&nbsp;     */
    +&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    +&nbsp;                                String name,
    +&nbsp;                                MetricFilter filter,
    +&nbsp;                                TimeUnit rateUnit,
    +&nbsp;                                TimeUnit durationUnit,
    +&nbsp;                                ScheduledExecutorService executor,
    +&nbsp;                                boolean shutdownExecutorOnStop) {
    +<b class="fc">&nbsp;        this(registry, name, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, Collections.emptySet());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    +&nbsp;                                String name,
    +&nbsp;                                MetricFilter filter,
    +&nbsp;                                TimeUnit rateUnit,
    +&nbsp;                                TimeUnit durationUnit,
    +&nbsp;                                ScheduledExecutorService executor,
    +&nbsp;                                boolean shutdownExecutorOnStop,
    +<b class="fc">&nbsp;                                Set&lt;MetricAttribute&gt; disabledMetricAttributes) {</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (registry == null) {</b>
    +<b class="fc">&nbsp;            throw new NullPointerException(&quot;registry == null&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.filter = filter;</b>
    +<b class="fc">&nbsp;        this.executor = executor == null ? createDefaultExecutor(name) : executor;</b>
    +<b class="fc">&nbsp;        this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    +<b class="fc">&nbsp;        this.rateFactor = rateUnit.toSeconds(1);</b>
    +<b class="fc">&nbsp;        this.rateUnit = calculateRateUnit(rateUnit);</b>
    +<b class="fc">&nbsp;        this.durationFactor = durationUnit.toNanos(1);</b>
    +<b class="fc">&nbsp;        this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    +<b class="fc">&nbsp;        this.disabledMetricAttributes = disabledMetricAttributes != null ? disabledMetricAttributes :</b>
    +<b class="fc">&nbsp;                Collections.emptySet();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Starts the reporter polling at the given period.
    +&nbsp;     *
    +&nbsp;     * @param period the amount of time between polls
    +&nbsp;     * @param unit   the unit for {@code period}
    +&nbsp;     */
    +&nbsp;    public void start(long period, TimeUnit unit) {
    +<b class="fc">&nbsp;        start(period, period, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Starts the reporter polling at the given period with the specific runnable action.
    +&nbsp;     * Visible only for testing.
    +&nbsp;     */
    +&nbsp;    synchronized void start(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
    +<b class="fc">&nbsp;        if (this.scheduledFuture != null) {</b>
    +<b class="fc">&nbsp;            throw new IllegalArgumentException(&quot;Reporter already started&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        this.scheduledFuture = getScheduledFuture(initialDelay, period, unit, runnable);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Schedule the task, and return a future.
    +&nbsp;     *
    +&nbsp;     * @deprecated Use {@link #getScheduledFuture(long, long, TimeUnit, Runnable, ScheduledExecutorService)} instead.
    +&nbsp;     */
    +&nbsp;    @SuppressWarnings(&quot;DeprecatedIsStillUsed&quot;)
    +&nbsp;    @Deprecated
    +&nbsp;    protected ScheduledFuture&lt;?&gt; getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
    +<b class="fc">&nbsp;        return getScheduledFuture(initialDelay, period, unit, runnable, this.executor);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Schedule the task, and return a future.
    +&nbsp;     * The current implementation uses scheduleWithFixedDelay, replacing scheduleWithFixedRate. This avoids queueing issues, but may
    +&nbsp;     * cause some reporters to skip metrics, as scheduleWithFixedDelay introduces a growing delta from the original start point.
    +&nbsp;     *
    +&nbsp;     * Overriding this in a subclass to revert to the old behavior is permitted.
    +&nbsp;     */
    +&nbsp;    protected ScheduledFuture&lt;?&gt; getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable, ScheduledExecutorService executor) {
    +<b class="fc">&nbsp;        return executor.scheduleWithFixedDelay(runnable, initialDelay, period, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Starts the reporter polling at the given period.
    +&nbsp;     *
    +&nbsp;     * @param initialDelay the time to delay the first execution
    +&nbsp;     * @param period       the amount of time between polls
    +&nbsp;     * @param unit         the unit for {@code period} and {@code initialDelay}
    +&nbsp;     */
    +&nbsp;    synchronized public void start(long initialDelay, long period, TimeUnit unit) {
    +<b class="fc">&nbsp;        start(initialDelay, period, unit, () -&gt; {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                report();</b>
    +<b class="nc">&nbsp;            } catch (Throwable ex) {</b>
    +<b class="nc">&nbsp;                LOG.error(&quot;Exception thrown from {}#report. Exception was suppressed.&quot;, ScheduledReporter.this.getClass().getSimpleName(), ex);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Stops the reporter and if shutdownExecutorOnStop is true then shuts down its thread of execution.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * Uses the shutdown pattern from http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html
    +&nbsp;     */
    +&nbsp;    public void stop() {
    +<b class="fc">&nbsp;        if (shutdownExecutorOnStop) {</b>
    +<b class="fc">&nbsp;            executor.shutdown(); // Disable new tasks from being submitted</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            report(); // Report metrics one last time</b>
    +<b class="nc">&nbsp;        } catch (Exception e) {</b>
    +<b class="nc">&nbsp;            LOG.warn(&quot;Final reporting of metrics failed.&quot;, e);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (shutdownExecutorOnStop) {</b>
    +&nbsp;            try {
    +&nbsp;                // Wait a while for existing tasks to terminate
    +<b class="fc">&nbsp;                if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    +<b class="nc">&nbsp;                    executor.shutdownNow(); // Cancel currently executing tasks</b>
    +&nbsp;                    // Wait a while for tasks to respond to being cancelled
    +<b class="nc">&nbsp;                    if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    +<b class="nc">&nbsp;                        LOG.warn(&quot;ScheduledExecutorService did not terminate.&quot;);</b>
    +&nbsp;                    }
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (InterruptedException ie) {</b>
    +&nbsp;                // (Re-)Cancel if current thread also interrupted
    +<b class="nc">&nbsp;                executor.shutdownNow();</b>
    +&nbsp;                // Preserve interrupt status
    +<b class="nc">&nbsp;                Thread.currentThread().interrupt();</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        } else {
    +&nbsp;            // The external manager (like JEE container) responsible for lifecycle of executor
    +<b class="fc">&nbsp;            cancelScheduledFuture();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private synchronized void cancelScheduledFuture() {
    +<b class="fc">&nbsp;        if (this.scheduledFuture == null) {</b>
    +&nbsp;            // was never started
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        if (this.scheduledFuture.isCancelled()) {</b>
    +&nbsp;            // already cancelled
    +&nbsp;            return;
    +&nbsp;        }
    +&nbsp;        // just cancel the scheduledFuture and exit
    +<b class="fc">&nbsp;        this.scheduledFuture.cancel(false);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Stops the reporter and shuts down its thread of execution.
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void close() {
    +<b class="fc">&nbsp;        stop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Report the current values of all metrics in the registry.
    +&nbsp;     */
    +&nbsp;    public void report() {
    +<b class="fc">&nbsp;        synchronized (this) {</b>
    +<b class="fc">&nbsp;            report(registry.getGauges(filter),</b>
    +<b class="fc">&nbsp;                    registry.getCounters(filter),</b>
    +<b class="fc">&nbsp;                    registry.getHistograms(filter),</b>
    +<b class="fc">&nbsp;                    registry.getMeters(filter),</b>
    +<b class="fc">&nbsp;                    registry.getTimers(filter));</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called periodically by the polling thread. Subclasses should report all the given metrics.
    +&nbsp;     *
    +&nbsp;     * @param gauges     all of the gauges in the registry
    +&nbsp;     * @param counters   all of the counters in the registry
    +&nbsp;     * @param histograms all of the histograms in the registry
    +&nbsp;     * @param meters     all of the meters in the registry
    +&nbsp;     * @param timers     all of the timers in the registry
    +&nbsp;     */
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public abstract void report(SortedMap&lt;String, Gauge&gt; gauges,
    +&nbsp;                                SortedMap&lt;String, Counter&gt; counters,
    +&nbsp;                                SortedMap&lt;String, Histogram&gt; histograms,
    +&nbsp;                                SortedMap&lt;String, Meter&gt; meters,
    +&nbsp;                                SortedMap&lt;String, Timer&gt; timers);
    +&nbsp;
    +&nbsp;    protected String getRateUnit() {
    +<b class="fc">&nbsp;        return rateUnit;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String getDurationUnit() {
    +<b class="fc">&nbsp;        return durationUnit;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected double convertDuration(double duration) {
    +<b class="fc">&nbsp;        return duration / durationFactor;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected double convertRate(double rate) {
    +<b class="fc">&nbsp;        return rate * rateFactor;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected boolean isShutdownExecutorOnStop() {
    +<b class="nc">&nbsp;        return shutdownExecutorOnStop;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected Set&lt;MetricAttribute&gt; getDisabledMetricAttributes() {
    +<b class="fc">&nbsp;        return disabledMetricAttributes;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String calculateRateUnit(TimeUnit unit) {
    +<b class="fc">&nbsp;        final String s = unit.toString().toLowerCase(Locale.US);</b>
    +<b class="fc">&nbsp;        return s.substring(0, s.length() - 1);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static ScheduledExecutorService createDefaultExecutor(String name) {
    +<b class="fc">&nbsp;        return Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(name + &#39;-&#39; + FACTORY_ID.incrementAndGet()));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1a.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1a.html
    new file mode 100644
    index 0000000000..ed6be3d1ec
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1a.html
    @@ -0,0 +1,211 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SharedMetricRegistries</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SharedMetricRegistries (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SharedMetricRegistries</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.atomic.AtomicReference;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A map of shared, named metric registries.
    +&nbsp; */
    +&nbsp;public class SharedMetricRegistries {
    +<b class="fc">&nbsp;    private static final ConcurrentMap&lt;String, MetricRegistry&gt; REGISTRIES =</b>
    +&nbsp;            new ConcurrentHashMap&lt;&gt;();
    +&nbsp;
    +<b class="fc">&nbsp;    private static AtomicReference&lt;String&gt; defaultRegistryName = new AtomicReference&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    /* Visible for testing */
    +&nbsp;    static void setDefaultRegistryName(AtomicReference&lt;String&gt; defaultRegistryName) {
    +<b class="fc">&nbsp;        SharedMetricRegistries.defaultRegistryName = defaultRegistryName;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private SharedMetricRegistries() { /* singleton */ }
    +&nbsp;
    +&nbsp;    public static void clear() {
    +<b class="fc">&nbsp;        REGISTRIES.clear();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static Set&lt;String&gt; names() {
    +<b class="fc">&nbsp;        return REGISTRIES.keySet();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void remove(String key) {
    +<b class="fc">&nbsp;        REGISTRIES.remove(key);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static MetricRegistry add(String name, MetricRegistry registry) {
    +<b class="fc">&nbsp;        return REGISTRIES.putIfAbsent(name, registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static MetricRegistry getOrCreate(String name) {
    +<b class="fc">&nbsp;        final MetricRegistry existing = REGISTRIES.get(name);</b>
    +<b class="fc">&nbsp;        if (existing == null) {</b>
    +<b class="fc">&nbsp;            final MetricRegistry created = new MetricRegistry();</b>
    +<b class="fc">&nbsp;            final MetricRegistry raced = add(name, created);</b>
    +<b class="fc">&nbsp;            if (raced == null) {</b>
    +<b class="fc">&nbsp;                return created;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            return raced;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return existing;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new registry and sets it as the default one under the provided name.
    +&nbsp;     *
    +&nbsp;     * @param name the registry name
    +&nbsp;     * @return the default registry
    +&nbsp;     * @throws IllegalStateException if the name has already been set
    +&nbsp;     */
    +&nbsp;    public synchronized static MetricRegistry setDefault(String name) {
    +<b class="fc">&nbsp;        final MetricRegistry registry = getOrCreate(name);</b>
    +<b class="fc">&nbsp;        return setDefault(name, registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Sets the provided registry as the default one under the provided name
    +&nbsp;     *
    +&nbsp;     * @param name           the default registry name
    +&nbsp;     * @param metricRegistry the default registry
    +&nbsp;     * @throws IllegalStateException if the default registry has already been set
    +&nbsp;     */
    +&nbsp;    public static MetricRegistry setDefault(String name, MetricRegistry metricRegistry) {
    +<b class="fc">&nbsp;        if (defaultRegistryName.compareAndSet(null, name)) {</b>
    +<b class="fc">&nbsp;            add(name, metricRegistry);</b>
    +<b class="fc">&nbsp;            return metricRegistry;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default metric registry name is already set.&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Gets the name of the default registry, if it has been set
    +&nbsp;     *
    +&nbsp;     * @return the default registry
    +&nbsp;     * @throws IllegalStateException if the default has not been set
    +&nbsp;     */
    +&nbsp;    public static MetricRegistry getDefault() {
    +<b class="fc">&nbsp;        MetricRegistry metricRegistry = tryGetDefault();</b>
    +<b class="fc">&nbsp;        if (metricRegistry == null) {</b>
    +<b class="fc">&nbsp;            throw new IllegalStateException(&quot;Default registry name has not been set.&quot;);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return metricRegistry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Same as {@link #getDefault()} except returns null when the default registry has not been set.
    +&nbsp;     *
    +&nbsp;     * @return the default registry or null
    +&nbsp;     */
    +&nbsp;    public static MetricRegistry tryGetDefault() {
    +<b class="fc">&nbsp;        final String name = defaultRegistryName.get();</b>
    +<b class="fc">&nbsp;        if (name != null) {</b>
    +<b class="fc">&nbsp;            return getOrCreate(name);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1b.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1b.html
    new file mode 100644
    index 0000000000..5ec0554f1e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1b.html
    @@ -0,0 +1,782 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Slf4jReporter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Slf4jReporter (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Slf4jReporter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (97/97)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">Slf4jReporter$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Slf4jReporter$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (11/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    79.5%
    +  </span>
    +  <span class="absValue">
    +    (35/44)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Slf4jReporter$DebugLoggerProxy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Slf4jReporter$ErrorLoggerProxy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Slf4jReporter$InfoLoggerProxy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Slf4jReporter$LoggerProxy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Slf4jReporter$LoggingLevel</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Slf4jReporter$TraceLoggerProxy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Slf4jReporter$WarnLoggerProxy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;import org.slf4j.Marker;
    +&nbsp;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.Map.Entry;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A reporter class for logging metrics values to a SLF4J {@link Logger} periodically, similar to
    +&nbsp; * {@link ConsoleReporter} or {@link CsvReporter}, but using the SLF4J framework instead. It also
    +&nbsp; * supports specifying a {@link Marker} instance that can be used by custom appenders and filters
    +&nbsp; * for the bound logging toolkit to further process metrics reports.
    +&nbsp; */
    +<b class="fc">&nbsp;public class Slf4jReporter extends ScheduledReporter {</b>
    +&nbsp;    /**
    +&nbsp;     * Returns a new {@link Builder} for {@link Slf4jReporter}.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry to report
    +&nbsp;     * @return a {@link Builder} instance for a {@link Slf4jReporter}
    +&nbsp;     */
    +&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    +<b class="fc">&nbsp;        return new Builder(registry);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public enum LoggingLevel { TRACE, DEBUG, INFO, WARN, ERROR }</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A builder for {@link Slf4jReporter} instances. Defaults to logging to {@code metrics}, not
    +&nbsp;     * using a marker, converting rates to events/second, converting durations to milliseconds, and
    +&nbsp;     * not filtering metrics.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class Builder {</b>
    +&nbsp;        private final MetricRegistry registry;
    +&nbsp;        private Logger logger;
    +&nbsp;        private LoggingLevel loggingLevel;
    +&nbsp;        private Marker marker;
    +&nbsp;        private String prefix;
    +&nbsp;        private TimeUnit rateUnit;
    +&nbsp;        private TimeUnit durationUnit;
    +&nbsp;        private MetricFilter filter;
    +&nbsp;        private ScheduledExecutorService executor;
    +&nbsp;        private boolean shutdownExecutorOnStop;
    +&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    +&nbsp;
    +<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;            this.registry = registry;</b>
    +<b class="fc">&nbsp;            this.logger = LoggerFactory.getLogger(&quot;metrics&quot;);</b>
    +<b class="fc">&nbsp;            this.marker = null;</b>
    +<b class="fc">&nbsp;            this.prefix = &quot;&quot;;</b>
    +<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    +<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    +<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    +<b class="fc">&nbsp;            this.loggingLevel = LoggingLevel.INFO;</b>
    +<b class="fc">&nbsp;            this.executor = null;</b>
    +<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    +<b class="fc">&nbsp;            this.disabledMetricAttributes = Collections.emptySet();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    +&nbsp;         * Default value is true.
    +&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    +&nbsp;         *
    +&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    +<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    +&nbsp;         * Default value is null.
    +&nbsp;         * Null value leads to executor will be auto created on start.
    +&nbsp;         *
    +&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    +<b class="nc">&nbsp;            this.executor = executor;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Log metrics to the given logger.
    +&nbsp;         *
    +&nbsp;         * @param logger an SLF4J {@link Logger}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder outputTo(Logger logger) {
    +<b class="fc">&nbsp;            this.logger = logger;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Mark all logged metrics with the given marker.
    +&nbsp;         *
    +&nbsp;         * @param marker an SLF4J {@link Marker}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder markWith(Marker marker) {
    +<b class="fc">&nbsp;            this.marker = marker;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Prefix all metric names with the given string.
    +&nbsp;         *
    +&nbsp;         * @param prefix the prefix for all metric names
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder prefixedWith(String prefix) {
    +<b class="fc">&nbsp;            this.prefix = prefix;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert rates to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param rateUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    +<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert durations to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param durationUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    +<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Only report metrics which match the given filter.
    +&nbsp;         *
    +&nbsp;         * @param filter a {@link MetricFilter}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder filter(MetricFilter filter) {
    +<b class="fc">&nbsp;            this.filter = filter;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use Logging Level when reporting.
    +&nbsp;         *
    +&nbsp;         * @param loggingLevel a (@link Slf4jReporter.LoggingLevel}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder withLoggingLevel(LoggingLevel loggingLevel) {
    +<b class="fc">&nbsp;            this.loggingLevel = loggingLevel;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    +&nbsp;         * See {@link MetricAttribute}.
    +&nbsp;         *
    +&nbsp;         * @param disabledMetricAttributes a set of {@link MetricAttribute}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    +<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Builds a {@link Slf4jReporter} with the given properties.
    +&nbsp;         *
    +&nbsp;         * @return a {@link Slf4jReporter}
    +&nbsp;         */
    +&nbsp;        public Slf4jReporter build() {
    +&nbsp;            LoggerProxy loggerProxy;
    +<b class="fc">&nbsp;            switch (loggingLevel) {</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    loggerProxy = new TraceLoggerProxy(logger);</b>
    +<b class="nc">&nbsp;                    break;</b>
    +&nbsp;                case INFO:
    +<b class="fc">&nbsp;                    loggerProxy = new InfoLoggerProxy(logger);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case WARN:
    +<b class="nc">&nbsp;                    loggerProxy = new WarnLoggerProxy(logger);</b>
    +<b class="nc">&nbsp;                    break;</b>
    +&nbsp;                case ERROR:
    +<b class="fc">&nbsp;                    loggerProxy = new ErrorLoggerProxy(logger);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                default:
    +&nbsp;                case DEBUG:
    +<b class="nc">&nbsp;                    loggerProxy = new DebugLoggerProxy(logger);</b>
    +&nbsp;                    break;
    +&nbsp;            }
    +<b class="fc">&nbsp;            return new Slf4jReporter(registry, loggerProxy, marker, prefix, rateUnit, durationUnit, filter, executor,</b>
    +&nbsp;                    shutdownExecutorOnStop, disabledMetricAttributes);
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final LoggerProxy loggerProxy;
    +&nbsp;    private final Marker marker;
    +&nbsp;    private final String prefix;
    +&nbsp;
    +&nbsp;    private Slf4jReporter(MetricRegistry registry,
    +&nbsp;                          LoggerProxy loggerProxy,
    +&nbsp;                          Marker marker,
    +&nbsp;                          String prefix,
    +&nbsp;                          TimeUnit rateUnit,
    +&nbsp;                          TimeUnit durationUnit,
    +&nbsp;                          MetricFilter filter,
    +&nbsp;                          ScheduledExecutorService executor,
    +&nbsp;                          boolean shutdownExecutorOnStop,
    +&nbsp;                          Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    +<b class="fc">&nbsp;        super(registry, &quot;logger-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    +&nbsp;                disabledMetricAttributes);
    +<b class="fc">&nbsp;        this.loggerProxy = loggerProxy;</b>
    +<b class="fc">&nbsp;        this.marker = marker;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    +&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    +&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    +&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    +&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    +<b class="fc">&nbsp;        if (loggerProxy.isEnabled(marker)) {</b>
    +<b class="fc">&nbsp;            StringBuilder b = new StringBuilder();</b>
    +<b class="fc">&nbsp;            for (Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    +<b class="fc">&nbsp;                logGauge(b, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    +<b class="fc">&nbsp;                logCounter(b, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    +<b class="fc">&nbsp;                logHistogram(b, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    +<b class="fc">&nbsp;                logMeter(b, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    +<b class="fc">&nbsp;                logTimer(b, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void logTimer(StringBuilder b, String name, Timer timer) {
    +<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    +<b class="fc">&nbsp;        b.setLength(0);</b>
    +<b class="fc">&nbsp;        b.append(&quot;type=TIMER&quot;);</b>
    +<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    +<b class="fc">&nbsp;        appendCountIfEnabled(b, timer);</b>
    +<b class="fc">&nbsp;        appendLongDurationIfEnabled(b, MIN, snapshot::getMin);</b>
    +<b class="fc">&nbsp;        appendLongDurationIfEnabled(b, MAX, snapshot::getMax);</b>
    +<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, MEAN, snapshot::getMean);</b>
    +<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, STDDEV, snapshot::getStdDev);</b>
    +<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P50, snapshot::getMedian);</b>
    +<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P75, snapshot::get75thPercentile);</b>
    +<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P95, snapshot::get95thPercentile);</b>
    +<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P98, snapshot::get98thPercentile);</b>
    +<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P99, snapshot::get99thPercentile);</b>
    +<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P999, snapshot::get999thPercentile);</b>
    +<b class="fc">&nbsp;        appendMetered(b, timer);</b>
    +<b class="fc">&nbsp;        append(b, &quot;rate_unit&quot;, getRateUnit());</b>
    +<b class="fc">&nbsp;        append(b, &quot;duration_unit&quot;, getDurationUnit());</b>
    +<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void logMeter(StringBuilder b, String name, Meter meter) {
    +<b class="fc">&nbsp;        b.setLength(0);</b>
    +<b class="fc">&nbsp;        b.append(&quot;type=METER&quot;);</b>
    +<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    +<b class="fc">&nbsp;        appendCountIfEnabled(b, meter);</b>
    +<b class="fc">&nbsp;        appendMetered(b, meter);</b>
    +<b class="fc">&nbsp;        append(b, &quot;rate_unit&quot;, getRateUnit());</b>
    +<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void logHistogram(StringBuilder b, String name, Histogram histogram) {
    +<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    +<b class="fc">&nbsp;        b.setLength(0);</b>
    +<b class="fc">&nbsp;        b.append(&quot;type=HISTOGRAM&quot;);</b>
    +<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    +<b class="fc">&nbsp;        appendCountIfEnabled(b, histogram);</b>
    +<b class="fc">&nbsp;        appendLongIfEnabled(b, MIN, snapshot::getMin);</b>
    +<b class="fc">&nbsp;        appendLongIfEnabled(b, MAX, snapshot::getMax);</b>
    +<b class="fc">&nbsp;        appendDoubleIfEnabled(b, MEAN, snapshot::getMean);</b>
    +<b class="fc">&nbsp;        appendDoubleIfEnabled(b, STDDEV, snapshot::getStdDev);</b>
    +<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P50, snapshot::getMedian);</b>
    +<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P75, snapshot::get75thPercentile);</b>
    +<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P95, snapshot::get95thPercentile);</b>
    +<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P98, snapshot::get98thPercentile);</b>
    +<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P99, snapshot::get99thPercentile);</b>
    +<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P999, snapshot::get999thPercentile);</b>
    +<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void logCounter(StringBuilder b, String name, Counter counter) {
    +<b class="fc">&nbsp;        b.setLength(0);</b>
    +<b class="fc">&nbsp;        b.append(&quot;type=COUNTER&quot;);</b>
    +<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    +<b class="fc">&nbsp;        append(b, COUNT.getCode(), counter.getCount());</b>
    +<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void logGauge(StringBuilder b, String name, Gauge&lt;?&gt; gauge) {
    +<b class="fc">&nbsp;        b.setLength(0);</b>
    +<b class="fc">&nbsp;        b.append(&quot;type=GAUGE&quot;);</b>
    +<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    +<b class="fc">&nbsp;        append(b, &quot;value&quot;, gauge.getValue());</b>
    +<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void appendLongDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    +&nbsp;                                             Supplier&lt;Long&gt; durationSupplier) {
    +<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    +<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void appendDoubleDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    +&nbsp;                                               Supplier&lt;Double&gt; durationSupplier) {
    +<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    +<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void appendLongIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    +&nbsp;                                     Supplier&lt;Long&gt; valueSupplier) {
    +<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    +<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), valueSupplier.get());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void appendDoubleIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    +&nbsp;                                       Supplier&lt;Double&gt; valueSupplier) {
    +<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    +<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), valueSupplier.get());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void appendCountIfEnabled(StringBuilder b, Counting counting) {
    +<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(COUNT)) {</b>
    +<b class="fc">&nbsp;            append(b, COUNT.getCode(), counting.getCount());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void appendMetered(StringBuilder b, Metered meter) {
    +<b class="fc">&nbsp;        appendRateIfEnabled(b, M1_RATE, meter::getOneMinuteRate);</b>
    +<b class="fc">&nbsp;        appendRateIfEnabled(b, M5_RATE, meter::getFiveMinuteRate);</b>
    +<b class="fc">&nbsp;        appendRateIfEnabled(b, M15_RATE,  meter::getFifteenMinuteRate);</b>
    +<b class="fc">&nbsp;        appendRateIfEnabled(b, MEAN_RATE,  meter::getMeanRate);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void appendRateIfEnabled(StringBuilder b, MetricAttribute metricAttribute, Supplier&lt;Double&gt; rateSupplier) {
    +<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    +<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), convertRate(rateSupplier.get()));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void append(StringBuilder b, String key, long value) {
    +<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void append(StringBuilder b, String key, double value) {
    +<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void append(StringBuilder b, String key, String value) {
    +<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void append(StringBuilder b, String key, Object value) {
    +<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected String getRateUnit() {
    +<b class="fc">&nbsp;        return &quot;events/&quot; + super.getRateUnit();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String prefix(String... components) {
    +<b class="fc">&nbsp;        return MetricRegistry.name(prefix, components);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /* private class to allow logger configuration */
    +&nbsp;    static abstract class LoggerProxy {
    +&nbsp;        protected final Logger logger;
    +&nbsp;
    +<b class="fc">&nbsp;        public LoggerProxy(Logger logger) {</b>
    +<b class="fc">&nbsp;            this.logger = logger;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        abstract void log(Marker marker, String format);
    +&nbsp;
    +&nbsp;        abstract boolean isEnabled(Marker marker);
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /* private class to allow logger configuration */
    +&nbsp;    private static class DebugLoggerProxy extends LoggerProxy {
    +&nbsp;        public DebugLoggerProxy(Logger logger) {
    +<b class="nc">&nbsp;            super(logger);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void log(Marker marker, String format) {
    +<b class="nc">&nbsp;            logger.debug(marker, format);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean isEnabled(Marker marker) {
    +<b class="nc">&nbsp;            return logger.isDebugEnabled(marker);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /* private class to allow logger configuration */
    +&nbsp;    private static class TraceLoggerProxy extends LoggerProxy {
    +&nbsp;        public TraceLoggerProxy(Logger logger) {
    +<b class="nc">&nbsp;            super(logger);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void log(Marker marker, String format) {
    +<b class="nc">&nbsp;            logger.trace(marker, format);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean isEnabled(Marker marker) {
    +<b class="nc">&nbsp;            return logger.isTraceEnabled(marker);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /* private class to allow logger configuration */
    +&nbsp;    private static class InfoLoggerProxy extends LoggerProxy {
    +&nbsp;        public InfoLoggerProxy(Logger logger) {
    +<b class="fc">&nbsp;            super(logger);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void log(Marker marker, String format) {
    +<b class="fc">&nbsp;            logger.info(marker, format);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean isEnabled(Marker marker) {
    +<b class="fc">&nbsp;            return logger.isInfoEnabled(marker);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /* private class to allow logger configuration */
    +&nbsp;    private static class WarnLoggerProxy extends LoggerProxy {
    +&nbsp;        public WarnLoggerProxy(Logger logger) {
    +<b class="nc">&nbsp;            super(logger);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void log(Marker marker, String format) {
    +<b class="nc">&nbsp;            logger.warn(marker, format);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean isEnabled(Marker marker) {
    +<b class="nc">&nbsp;            return logger.isWarnEnabled(marker);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /* private class to allow logger configuration */
    +&nbsp;    private static class ErrorLoggerProxy extends LoggerProxy {
    +&nbsp;        public ErrorLoggerProxy(Logger logger) {
    +<b class="fc">&nbsp;            super(logger);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void log(Marker marker, String format) {
    +<b class="fc">&nbsp;            logger.error(marker, format);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean isEnabled(Marker marker) {
    +<b class="fc">&nbsp;            return logger.isErrorEnabled(marker);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1c.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1c.html
    new file mode 100644
    index 0000000000..d830e52a16
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1c.html
    @@ -0,0 +1,205 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowArrayReservoir</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoir (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowArrayReservoir</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
    +&nbsp; * in the last {@code N} seconds (or other time unit).
    +&nbsp; */
    +&nbsp;public class SlidingTimeWindowArrayReservoir implements Reservoir {
    +&nbsp;    // allow for this many duplicate ticks before overwriting measurements
    +&nbsp;    private static final long COLLISION_BUFFER = 256L;
    +&nbsp;    // only trim on updating once every N
    +&nbsp;    private static final long TRIM_THRESHOLD = 256L;
    +<b class="fc">&nbsp;    private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;</b>
    +&nbsp;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final ChunkedAssociativeLongArray measurements;
    +&nbsp;    private final long window;
    +&nbsp;    private final AtomicLong lastTick;
    +&nbsp;    private final AtomicLong count;
    +&nbsp;    private final long startTick;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given window of time.
    +&nbsp;     *
    +&nbsp;     * @param window     the window of time
    +&nbsp;     * @param windowUnit the unit of {@code window}
    +&nbsp;     */
    +&nbsp;    public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit) {
    +<b class="nc">&nbsp;        this(window, windowUnit, Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given clock and window of time.
    +&nbsp;     *
    +&nbsp;     * @param window     the window of time
    +&nbsp;     * @param windowUnit the unit of {@code window}
    +&nbsp;     * @param clock      the {@link Clock} to use
    +&nbsp;     */
    +<b class="fc">&nbsp;    public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit, Clock clock) {</b>
    +<b class="fc">&nbsp;        this.startTick = clock.getTick();</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.measurements = new ChunkedAssociativeLongArray();</b>
    +<b class="fc">&nbsp;        this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;</b>
    +<b class="fc">&nbsp;        this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);</b>
    +<b class="fc">&nbsp;        this.count = new AtomicLong();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int size() {
    +<b class="fc">&nbsp;        trim();</b>
    +<b class="fc">&nbsp;        return measurements.size();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void update(long value) {
    +&nbsp;        long newTick;
    +&nbsp;        do {
    +<b class="fc">&nbsp;            if (count.incrementAndGet() % TRIM_THRESHOLD == 0L) {</b>
    +<b class="fc">&nbsp;                trim();</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            long lastTick = this.lastTick.get();</b>
    +<b class="fc">&nbsp;            newTick = getTick();</b>
    +<b class="fc">&nbsp;            boolean longOverflow = newTick &lt; lastTick;</b>
    +<b class="fc">&nbsp;            if (longOverflow) {</b>
    +<b class="nc">&nbsp;                measurements.clear();</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        } while (!measurements.put(newTick, value));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Snapshot getSnapshot() {
    +<b class="fc">&nbsp;        trim();</b>
    +<b class="fc">&nbsp;        return new UniformSnapshot(measurements.values());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private long getTick() {
    +&nbsp;        for ( ;; ) {
    +<b class="fc">&nbsp;            final long oldTick = lastTick.get();</b>
    +<b class="fc">&nbsp;            final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;</b>
    +&nbsp;            // ensure the tick is strictly incrementing even if there are duplicate ticks
    +<b class="fc">&nbsp;            final long newTick = tick - oldTick &gt; 0L ? tick : oldTick + 1L;</b>
    +<b class="fc">&nbsp;            if (lastTick.compareAndSet(oldTick, newTick)) {</b>
    +<b class="fc">&nbsp;                return newTick;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    void trim() {
    +<b class="fc">&nbsp;        final long now = getTick();</b>
    +<b class="fc">&nbsp;        final long windowStart = now - window;</b>
    +<b class="fc">&nbsp;        final long windowEnd = now + CLEAR_BUFFER;</b>
    +<b class="fc">&nbsp;        if (windowStart &lt; windowEnd) {</b>
    +<b class="fc">&nbsp;            measurements.trim(windowStart, windowEnd);</b>
    +&nbsp;        } else {
    +&nbsp;            // long overflow handling that can happen only after 1 year after class loading
    +<b class="nc">&nbsp;            measurements.clear();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1d.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1d.html
    new file mode 100644
    index 0000000000..d3006c593b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1d.html
    @@ -0,0 +1,217 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowArrayReservoirTrimReadTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirTrimReadTest (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowArrayReservoirTrimReadTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/12)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">SlidingTimeWindowArrayReservoirTrimReadTest$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import org.openjdk.jcstress.annotations.Actor;
    +&nbsp;import org.openjdk.jcstress.annotations.Expect;
    +&nbsp;import org.openjdk.jcstress.annotations.JCStressTest;
    +&nbsp;import org.openjdk.jcstress.annotations.Outcome;
    +&nbsp;import org.openjdk.jcstress.annotations.State;
    +&nbsp;import org.openjdk.jcstress.infra.results.L_Result;
    +&nbsp;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;
    +&nbsp;@JCStressTest
    +&nbsp;@Outcome(
    +&nbsp;    id = &quot;\\[240, 241, 242, 243, 244, 245, 246, 247, 248, 249\\]&quot;,
    +&nbsp;    expect = Expect.ACCEPTABLE,
    +&nbsp;    desc = &quot;Actor1 made read before Actor2 even started&quot;
    +&nbsp;    )
    +&nbsp;@Outcome(
    +&nbsp;    id = &quot;\\[243, 244, 245, 246, 247, 248, 249\\]&quot;,
    +&nbsp;    expect = Expect.ACCEPTABLE,
    +&nbsp;    desc = &quot;Actor2 made trim before Actor1 even started&quot;
    +&nbsp;    )
    +&nbsp;@Outcome(
    +&nbsp;    id = &quot;\\[244, 245, 246, 247, 248, 249\\]&quot;,
    +&nbsp;    expect = Expect.ACCEPTABLE,
    +&nbsp;    desc = &quot;Actor1 made trim, then Actor2 started trim and made startIndex change, &quot; +
    +&nbsp;        &quot;before Actor1 concurrent read.&quot;
    +&nbsp;    )
    +&nbsp;@Outcome(
    +&nbsp;    id = &quot;\\[243, 244, 245, 246, 247, 248\\]&quot;,
    +&nbsp;    expect = Expect.ACCEPTABLE,
    +&nbsp;    desc = &quot;Actor1 made trim, then Actor2 started trim, but not finished startIndex change, before Actor1 concurrent read.&quot;
    +&nbsp;    )
    +&nbsp;@State
    +<b class="nc">&nbsp;public class SlidingTimeWindowArrayReservoirTrimReadTest {</b>
    +<b class="nc">&nbsp;    private final AtomicLong ticks = new AtomicLong(0);</b>
    +&nbsp;    private final SlidingTimeWindowArrayReservoir reservoir;
    +&nbsp;
    +<b class="nc">&nbsp;    public SlidingTimeWindowArrayReservoirTrimReadTest() {</b>
    +<b class="nc">&nbsp;        reservoir = new SlidingTimeWindowArrayReservoir(10, TimeUnit.NANOSECONDS, new Clock() {</b>
    +&nbsp;            @Override
    +&nbsp;            public long getTick() {
    +<b class="nc">&nbsp;                return ticks.get();</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="nc">&nbsp;        for (int i = 0; i &lt; 250; i++) {</b>
    +<b class="nc">&nbsp;            ticks.set(i);</b>
    +<b class="nc">&nbsp;            reservoir.update(i);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Actor
    +&nbsp;    public void actor1(L_Result r) {
    +<b class="nc">&nbsp;        Snapshot snapshot = reservoir.getSnapshot();</b>
    +<b class="nc">&nbsp;        String stringValues = Arrays.toString(snapshot.getValues());</b>
    +<b class="nc">&nbsp;        r.r1 = stringValues;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Actor
    +&nbsp;    public void actor2() {
    +<b class="nc">&nbsp;        ticks.set(253);</b>
    +<b class="nc">&nbsp;        reservoir.trim();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1e.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1e.html
    new file mode 100644
    index 0000000000..ebc846df0c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1e.html
    @@ -0,0 +1,161 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowArrayReservoirWriteReadAllocate</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirWriteReadAllocate (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowArrayReservoirWriteReadAllocate</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import org.openjdk.jcstress.annotations.Actor;
    +&nbsp;import org.openjdk.jcstress.annotations.Arbiter;
    +&nbsp;import org.openjdk.jcstress.annotations.Expect;
    +&nbsp;import org.openjdk.jcstress.annotations.JCStressTest;
    +&nbsp;import org.openjdk.jcstress.annotations.Outcome;
    +&nbsp;import org.openjdk.jcstress.annotations.State;
    +&nbsp;import org.openjdk.jcstress.infra.results.L_Result;
    +&nbsp;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;@JCStressTest
    +&nbsp;@Outcome(id = &quot;\\[1023, 1029, 1034\\]&quot;, expect = Expect.ACCEPTABLE)
    +&nbsp;@State
    +&nbsp;public class SlidingTimeWindowArrayReservoirWriteReadAllocate {
    +&nbsp;
    +&nbsp;    private final SlidingTimeWindowArrayReservoir reservoir;
    +&nbsp;
    +<b class="nc">&nbsp;    public SlidingTimeWindowArrayReservoirWriteReadAllocate() {</b>
    +<b class="nc">&nbsp;        reservoir = new SlidingTimeWindowArrayReservoir(500, TimeUnit.SECONDS);</b>
    +<b class="nc">&nbsp;        for (int i = 0; i &lt; 1024; i++) {</b>
    +<b class="nc">&nbsp;            reservoir.update(i);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Actor
    +&nbsp;    public void actor1() {
    +<b class="nc">&nbsp;        reservoir.update(1029L);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Actor
    +&nbsp;    public void actor2() {
    +<b class="nc">&nbsp;        reservoir.update(1034L);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Arbiter
    +&nbsp;    public void arbiter(L_Result r) {
    +<b class="nc">&nbsp;        Snapshot snapshot = reservoir.getSnapshot();</b>
    +<b class="nc">&nbsp;        long[] values = snapshot.getValues();</b>
    +<b class="nc">&nbsp;        String stringValues = Arrays.toString(Arrays.copyOfRange(values, values.length - 3, values.length));</b>
    +<b class="nc">&nbsp;        r.r1 = stringValues;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1f.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1f.html
    new file mode 100644
    index 0000000000..d16d552cba
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1f.html
    @@ -0,0 +1,149 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowArrayReservoirWriteReadTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirWriteReadTest (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowArrayReservoirWriteReadTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import org.openjdk.jcstress.annotations.Actor;
    +&nbsp;import org.openjdk.jcstress.annotations.Expect;
    +&nbsp;import org.openjdk.jcstress.annotations.JCStressTest;
    +&nbsp;import org.openjdk.jcstress.annotations.Outcome;
    +&nbsp;import org.openjdk.jcstress.annotations.State;
    +&nbsp;import org.openjdk.jcstress.infra.results.L_Result;
    +&nbsp;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;@JCStressTest
    +&nbsp;@Outcome(id = &quot;\\[\\]&quot;, expect = Expect.ACCEPTABLE)
    +&nbsp;@Outcome(id = &quot;\\[31\\]&quot;, expect = Expect.ACCEPTABLE)
    +&nbsp;@Outcome(id = &quot;\\[15\\]&quot;, expect = Expect.ACCEPTABLE)
    +&nbsp;@Outcome(id = &quot;\\[31, 15\\]&quot;, expect = Expect.ACCEPTABLE)
    +&nbsp;@Outcome(id = &quot;\\[15, 31\\]&quot;, expect = Expect.ACCEPTABLE)
    +&nbsp;@State
    +&nbsp;public class SlidingTimeWindowArrayReservoirWriteReadTest {
    +&nbsp;
    +&nbsp;    private final SlidingTimeWindowArrayReservoir reservoir;
    +&nbsp;
    +<b class="nc">&nbsp;    public SlidingTimeWindowArrayReservoirWriteReadTest() {</b>
    +<b class="nc">&nbsp;        reservoir = new SlidingTimeWindowArrayReservoir(1, TimeUnit.SECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Actor
    +&nbsp;    public void actor1() {
    +<b class="nc">&nbsp;        reservoir.update(31L);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Actor
    +&nbsp;    public void actor2() {
    +<b class="nc">&nbsp;        reservoir.update(15L);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Actor
    +&nbsp;    public void actor3(L_Result r) {
    +<b class="nc">&nbsp;        Snapshot snapshot = reservoir.getSnapshot();</b>
    +<b class="nc">&nbsp;        String stringValues = Arrays.toString(snapshot.getValues());</b>
    +<b class="nc">&nbsp;        r.r1 = stringValues;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2.html
    new file mode 100644
    index 0000000000..31d20341f4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2.html
    @@ -0,0 +1,333 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ChunkedAssociativeLongArray</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ChunkedAssociativeLongArray (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ChunkedAssociativeLongArray</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.3%
    +  </span>
    +  <span class="absValue">
    +    (81/85)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">ChunkedAssociativeLongArray$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">ChunkedAssociativeLongArray$Chunk</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.lang.ref.SoftReference;
    +&nbsp;import java.util.ArrayDeque;
    +&nbsp;import java.util.Deque;
    +&nbsp;import java.util.Iterator;
    +&nbsp;
    +&nbsp;import static java.lang.System.arraycopy;
    +&nbsp;import static java.util.Arrays.binarySearch;
    +&nbsp;
    +&nbsp;class ChunkedAssociativeLongArray {
    +<b class="fc">&nbsp;    private static final long[] EMPTY = new long[0];</b>
    +&nbsp;    private static final int DEFAULT_CHUNK_SIZE = 512;
    +&nbsp;    private static final int MAX_CACHE_SIZE = 128;
    +&nbsp;
    +&nbsp;    private final int defaultChunkSize;
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * We use this ArrayDeque as cache to store chunks that are expired and removed from main data structure.
    +&nbsp;     * Then instead of allocating new Chunk immediately we are trying to poll one from this deque.
    +&nbsp;     * So if you have constant or slowly changing load ChunkedAssociativeLongArray will never
    +&nbsp;     * throw away old chunks or allocate new ones which makes this data structure almost garbage free.
    +&nbsp;     */
    +<b class="fc">&nbsp;    private final ArrayDeque&lt;SoftReference&lt;Chunk&gt;&gt; chunksCache = new ArrayDeque&lt;&gt;();</b>
    +&nbsp;
    +<b class="fc">&nbsp;    private final Deque&lt;Chunk&gt; chunks = new ArrayDeque&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    ChunkedAssociativeLongArray() {
    +<b class="fc">&nbsp;        this(DEFAULT_CHUNK_SIZE);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    ChunkedAssociativeLongArray(int chunkSize) {</b>
    +<b class="fc">&nbsp;        this.defaultChunkSize = chunkSize;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Chunk allocateChunk() {
    +&nbsp;        while (true) {
    +<b class="fc">&nbsp;            final SoftReference&lt;Chunk&gt; chunkRef = chunksCache.pollLast();</b>
    +<b class="fc">&nbsp;            if (chunkRef == null) {</b>
    +<b class="fc">&nbsp;                return new Chunk(defaultChunkSize);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            final Chunk chunk = chunkRef.get();</b>
    +<b class="fc">&nbsp;            if (chunk != null) {</b>
    +<b class="fc">&nbsp;                chunk.cursor = 0;</b>
    +<b class="fc">&nbsp;                chunk.startIndex = 0;</b>
    +<b class="fc">&nbsp;                chunk.chunkSize = chunk.keys.length;</b>
    +<b class="fc">&nbsp;                return chunk;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void freeChunk(Chunk chunk) {
    +<b class="fc">&nbsp;        if (chunksCache.size() &lt; MAX_CACHE_SIZE) {</b>
    +<b class="fc">&nbsp;            chunksCache.add(new SoftReference&lt;&gt;(chunk));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    synchronized boolean put(long key, long value) {
    +<b class="fc">&nbsp;        Chunk activeChunk = chunks.peekLast();</b>
    +<b class="fc">&nbsp;        if (activeChunk != null &amp;&amp; activeChunk.cursor != 0 &amp;&amp; activeChunk.keys[activeChunk.cursor - 1] &gt; key) {</b>
    +&nbsp;            // key should be the same as last inserted or bigger
    +<b class="nc">&nbsp;            return false;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        if (activeChunk == null || activeChunk.cursor - activeChunk.startIndex == activeChunk.chunkSize) {</b>
    +&nbsp;            // The last chunk doesn&#39;t exist or full
    +<b class="fc">&nbsp;            activeChunk = allocateChunk();</b>
    +<b class="fc">&nbsp;            chunks.add(activeChunk);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeChunk.append(key, value);</b>
    +<b class="fc">&nbsp;        return true;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    synchronized long[] values() {
    +<b class="fc">&nbsp;        final int valuesSize = size();</b>
    +<b class="fc">&nbsp;        if (valuesSize == 0) {</b>
    +<b class="nc">&nbsp;            return EMPTY;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final long[] values = new long[valuesSize];</b>
    +<b class="fc">&nbsp;        int valuesIndex = 0;</b>
    +<b class="fc">&nbsp;        for (Chunk chunk : chunks) {</b>
    +<b class="fc">&nbsp;            int length = chunk.cursor - chunk.startIndex;</b>
    +<b class="fc">&nbsp;            int itemsToCopy = Math.min(valuesSize - valuesIndex, length);</b>
    +<b class="fc">&nbsp;            arraycopy(chunk.values, chunk.startIndex, values, valuesIndex, itemsToCopy);</b>
    +<b class="fc">&nbsp;            valuesIndex += length;</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return values;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    synchronized int size() {
    +<b class="fc">&nbsp;        int result = 0;</b>
    +<b class="fc">&nbsp;        for (Chunk chunk : chunks) {</b>
    +<b class="fc">&nbsp;            result += chunk.cursor - chunk.startIndex;</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return result;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    synchronized String out() {
    +<b class="fc">&nbsp;        final StringBuilder builder = new StringBuilder();</b>
    +<b class="fc">&nbsp;        final Iterator&lt;Chunk&gt; iterator = chunks.iterator();</b>
    +<b class="fc">&nbsp;        while (iterator.hasNext()) {</b>
    +<b class="fc">&nbsp;            final Chunk chunk = iterator.next();</b>
    +<b class="fc">&nbsp;            builder.append(&#39;[&#39;);</b>
    +<b class="fc">&nbsp;            for (int i = chunk.startIndex; i &lt; chunk.cursor; i++) {</b>
    +<b class="fc">&nbsp;                builder.append(&#39;(&#39;).append(chunk.keys[i]).append(&quot;: &quot;)</b>
    +<b class="fc">&nbsp;                        .append(chunk.values[i]).append(&#39;)&#39;).append(&#39; &#39;);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            builder.append(&#39;]&#39;);</b>
    +<b class="fc">&nbsp;            if (iterator.hasNext()) {</b>
    +<b class="fc">&nbsp;                builder.append(&quot;-&gt;&quot;);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return builder.toString();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Try to trim all beyond specified boundaries.
    +&nbsp;     *
    +&nbsp;     * @param startKey the start value for which all elements less than it should be removed.
    +&nbsp;     * @param endKey   the end value for which all elements greater/equals than it should be removed.
    +&nbsp;     */
    +&nbsp;    synchronized void trim(long startKey, long endKey) {
    +&nbsp;        /*
    +&nbsp;         * [3, 4, 5, 9] -&gt; [10, 13, 14, 15] -&gt; [21, 24, 29, 30] -&gt; [31] :: start layout
    +&nbsp;         *       |5______________________________23|                    :: trim(5, 23)
    +&nbsp;         *       [5, 9] -&gt; [10, 13, 14, 15] -&gt; [21]                     :: result layout
    +&nbsp;         */
    +<b class="fc">&nbsp;        final Iterator&lt;Chunk&gt; descendingIterator = chunks.descendingIterator();</b>
    +<b class="fc">&nbsp;        while (descendingIterator.hasNext()) {</b>
    +<b class="fc">&nbsp;            final Chunk currentTail = descendingIterator.next();</b>
    +<b class="fc">&nbsp;            if (isFirstElementIsEmptyOrGreaterEqualThanKey(currentTail, endKey)) {</b>
    +<b class="fc">&nbsp;                freeChunk(currentTail);</b>
    +<b class="fc">&nbsp;                descendingIterator.remove();</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                currentTail.cursor = findFirstIndexOfGreaterEqualElements(currentTail.keys, currentTail.startIndex,</b>
    +<b class="fc">&nbsp;                        currentTail.cursor, endKey);</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final Iterator&lt;Chunk&gt; iterator = chunks.iterator();</b>
    +<b class="fc">&nbsp;        while (iterator.hasNext()) {</b>
    +<b class="fc">&nbsp;            final Chunk currentHead = iterator.next();</b>
    +<b class="fc">&nbsp;            if (isLastElementIsLessThanKey(currentHead, startKey)) {</b>
    +<b class="fc">&nbsp;                freeChunk(currentHead);</b>
    +<b class="fc">&nbsp;                iterator.remove();</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                final int newStartIndex = findFirstIndexOfGreaterEqualElements(currentHead.keys, currentHead.startIndex,</b>
    +<b class="fc">&nbsp;                        currentHead.cursor, startKey);</b>
    +<b class="fc">&nbsp;                if (currentHead.startIndex != newStartIndex) {</b>
    +<b class="fc">&nbsp;                    currentHead.startIndex = newStartIndex;</b>
    +<b class="fc">&nbsp;                    currentHead.chunkSize = currentHead.cursor - currentHead.startIndex;</b>
    +&nbsp;                }
    +&nbsp;                break;
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    synchronized void clear() {
    +<b class="nc">&nbsp;        chunks.clear();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private boolean isFirstElementIsEmptyOrGreaterEqualThanKey(Chunk chunk, long key) {
    +<b class="fc">&nbsp;        return chunk.cursor == chunk.startIndex || chunk.keys[chunk.startIndex] &gt;= key;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private boolean isLastElementIsLessThanKey(Chunk chunk, long key) {
    +<b class="fc">&nbsp;        return chunk.cursor == chunk.startIndex || chunk.keys[chunk.cursor - 1] &lt; key;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private int findFirstIndexOfGreaterEqualElements(long[] array, int startIndex, int endIndex, long minKey) {
    +<b class="fc">&nbsp;        if (endIndex == startIndex || array[startIndex] &gt;= minKey) {</b>
    +<b class="fc">&nbsp;            return startIndex;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        final int keyIndex = binarySearch(array, startIndex, endIndex, minKey);</b>
    +<b class="fc">&nbsp;        return keyIndex &lt; 0 ? -(keyIndex + 1) : keyIndex;</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class Chunk {</b>
    +&nbsp;
    +&nbsp;        private final long[] keys;
    +&nbsp;        private final long[] values;
    +&nbsp;
    +&nbsp;        private int chunkSize; // can differ from keys.length after half clear()
    +<b class="fc">&nbsp;        private int startIndex = 0;</b>
    +<b class="fc">&nbsp;        private int cursor = 0;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        private Chunk(int chunkSize) {</b>
    +<b class="fc">&nbsp;            this.chunkSize = chunkSize;</b>
    +<b class="fc">&nbsp;            this.keys = new long[chunkSize];</b>
    +<b class="fc">&nbsp;            this.values = new long[chunkSize];</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private void append(long key, long value) {
    +<b class="fc">&nbsp;            keys[cursor] = key;</b>
    +<b class="fc">&nbsp;            values[cursor] = value;</b>
    +<b class="fc">&nbsp;            cursor++;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-20.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-20.html
    new file mode 100644
    index 0000000000..b34e53e344
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-20.html
    @@ -0,0 +1,301 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowMovingAverages</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowMovingAverages (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowMovingAverages</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.time.Duration;
    +&nbsp;import java.time.Instant;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;import java.util.concurrent.atomic.LongAdder;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A triple of simple moving average rates (one, five and fifteen minutes rates) as needed by {@link Meter}.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * The averages are unweighted, i.e. they include strictly only the events in the
    +&nbsp; * sliding time window, every event having the same weight. Unlike the
    +&nbsp; * the more widely used {@link ExponentialMovingAverages} implementation,
    +&nbsp; * with this class the moving average rate drops immediately to zero if the last
    +&nbsp; * marked event is older than the time window.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A {@link Meter} with {@link SlidingTimeWindowMovingAverages} works similarly to
    +&nbsp; * a {@link Histogram} with an {@link SlidingTimeWindowArrayReservoir}, but as a Meter
    +&nbsp; * needs to keep track only of the count of events (not the events itself), the memory
    +&nbsp; * overhead is much smaller. SlidingTimeWindowMovingAverages uses buckets with just one
    +&nbsp; * counter to accumulate the number of events (one bucket per seconds, giving 900 buckets
    +&nbsp; * for the 15 minutes time window).
    +&nbsp; */
    +&nbsp;public class SlidingTimeWindowMovingAverages implements MovingAverages {
    +&nbsp;
    +&nbsp;    private static final long TIME_WINDOW_DURATION_MINUTES = 15;
    +<b class="fc">&nbsp;    private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(1);</b>
    +<b class="fc">&nbsp;    private static final Duration TIME_WINDOW_DURATION = Duration.ofMinutes(TIME_WINDOW_DURATION_MINUTES);</b>
    +&nbsp;
    +&nbsp;    // package private for the benefit of the unit test
    +<b class="fc">&nbsp;    static final int NUMBER_OF_BUCKETS = (int) (TIME_WINDOW_DURATION.toNanos() / TICK_INTERVAL);</b>
    +&nbsp;
    +&nbsp;    private final AtomicLong lastTick;
    +&nbsp;    private final Clock clock;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * One counter per time bucket/slot (i.e. per second, see TICK_INTERVAL) for the entire
    +&nbsp;     * time window (i.e. 15 minutes, see TIME_WINDOW_DURATION_MINUTES)
    +&nbsp;     */
    +&nbsp;    private ArrayList&lt;LongAdder&gt; buckets;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Index into buckets, pointing at the bucket containing the oldest counts
    +&nbsp;     */
    +&nbsp;    private int oldestBucketIndex;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Index into buckets, pointing at the bucket with the count for the current time (tick)
    +&nbsp;     */
    +&nbsp;    private int currentBucketIndex;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Instant at creation time of the time window. Used to calculate the currentBucketIndex
    +&nbsp;     * for the instant of a given tick (instant modulo time window duration)
    +&nbsp;     */
    +&nbsp;    private final Instant bucketBaseTime;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Instant of the bucket with index oldestBucketIndex
    +&nbsp;     */
    +&nbsp;    Instant oldestBucketTime;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link SlidingTimeWindowMovingAverages}.
    +&nbsp;     */
    +&nbsp;    public SlidingTimeWindowMovingAverages() {
    +<b class="fc">&nbsp;        this(Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link SlidingTimeWindowMovingAverages}.
    +&nbsp;     *
    +&nbsp;     * @param clock the clock to use for the meter ticks
    +&nbsp;     */
    +<b class="fc">&nbsp;    public SlidingTimeWindowMovingAverages(Clock clock) {</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    +<b class="fc">&nbsp;        lastTick = new AtomicLong(startTime);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        buckets = new ArrayList&lt;&gt;(NUMBER_OF_BUCKETS);</b>
    +<b class="fc">&nbsp;        for (int i = 0; i &lt; NUMBER_OF_BUCKETS; i++) {</b>
    +<b class="fc">&nbsp;            buckets.add(new LongAdder());</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        bucketBaseTime = Instant.ofEpochSecond(0L, startTime);</b>
    +<b class="fc">&nbsp;        oldestBucketTime = bucketBaseTime;</b>
    +<b class="fc">&nbsp;        oldestBucketIndex = 0;</b>
    +<b class="fc">&nbsp;        currentBucketIndex = 0;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void update(long n) {
    +<b class="fc">&nbsp;        buckets.get(currentBucketIndex).add(n);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void tickIfNecessary() {
    +<b class="fc">&nbsp;        final long oldTick = lastTick.get();</b>
    +<b class="fc">&nbsp;        final long newTick = clock.getTick();</b>
    +<b class="fc">&nbsp;        final long age = newTick - oldTick;</b>
    +<b class="fc">&nbsp;        if (age &gt;= TICK_INTERVAL) {</b>
    +&nbsp;            // - the newTick doesn&#39;t fall into the same slot as the oldTick anymore
    +&nbsp;            // - newLastTick is the lower border time of the new currentBucketIndex slot
    +<b class="fc">&nbsp;            final long newLastTick = newTick - age % TICK_INTERVAL;</b>
    +<b class="fc">&nbsp;            if (lastTick.compareAndSet(oldTick, newLastTick)) {</b>
    +<b class="fc">&nbsp;                Instant currentInstant = Instant.ofEpochSecond(0L, newLastTick);</b>
    +<b class="fc">&nbsp;                currentBucketIndex = normalizeIndex(calculateIndexOfTick(currentInstant));</b>
    +<b class="fc">&nbsp;                cleanOldBuckets(currentInstant);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getM15Rate() {
    +<b class="fc">&nbsp;        return getMinuteRate(15);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getM5Rate() {
    +<b class="fc">&nbsp;        return getMinuteRate(5);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getM1Rate() {
    +<b class="fc">&nbsp;        return getMinuteRate(1);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private double getMinuteRate(int minutes) {
    +<b class="fc">&nbsp;        Instant now = Instant.ofEpochSecond(0L, lastTick.get());</b>
    +<b class="fc">&nbsp;        return sumBuckets(now, (int) (TimeUnit.MINUTES.toNanos(minutes) / TICK_INTERVAL));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    int calculateIndexOfTick(Instant tickTime) {
    +<b class="fc">&nbsp;        return (int) (Duration.between(bucketBaseTime, tickTime).toNanos() / TICK_INTERVAL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    int normalizeIndex(int index) {
    +<b class="fc">&nbsp;        int mod = index % NUMBER_OF_BUCKETS;</b>
    +<b class="fc">&nbsp;        return mod &gt;= 0 ? mod : mod + NUMBER_OF_BUCKETS;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void cleanOldBuckets(Instant currentTick) {
    +&nbsp;        int newOldestIndex;
    +<b class="fc">&nbsp;        Instant oldestStillNeededTime = currentTick.minus(TIME_WINDOW_DURATION).plusNanos(TICK_INTERVAL);</b>
    +<b class="fc">&nbsp;        Instant youngestNotInWindow = oldestBucketTime.plus(TIME_WINDOW_DURATION);</b>
    +<b class="fc">&nbsp;        if (oldestStillNeededTime.isAfter(youngestNotInWindow)) {</b>
    +&nbsp;            // there was no update() call for more than two whole TIME_WINDOW_DURATION
    +<b class="fc">&nbsp;            newOldestIndex = oldestBucketIndex;</b>
    +<b class="fc">&nbsp;            oldestBucketTime = currentTick;</b>
    +<b class="fc">&nbsp;        } else if (oldestStillNeededTime.isAfter(oldestBucketTime)) {</b>
    +<b class="fc">&nbsp;            newOldestIndex = normalizeIndex(calculateIndexOfTick(oldestStillNeededTime));</b>
    +<b class="fc">&nbsp;            oldestBucketTime = oldestStillNeededTime;</b>
    +&nbsp;        } else {
    +&nbsp;            return;
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        cleanBucketRange(oldestBucketIndex, newOldestIndex);</b>
    +<b class="fc">&nbsp;        oldestBucketIndex = newOldestIndex;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void cleanBucketRange(int fromIndex, int toIndex) {
    +<b class="fc">&nbsp;        if (fromIndex &lt; toIndex) {</b>
    +<b class="fc">&nbsp;            for (int i = fromIndex; i &lt; toIndex; i++) {</b>
    +<b class="fc">&nbsp;                buckets.get(i).reset();</b>
    +&nbsp;            }
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            for (int i = fromIndex; i &lt; NUMBER_OF_BUCKETS; i++) {</b>
    +<b class="fc">&nbsp;                buckets.get(i).reset();</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            for (int i = 0; i &lt; toIndex; i++) {</b>
    +<b class="fc">&nbsp;                buckets.get(i).reset();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private long sumBuckets(Instant toTime, int numberOfBuckets) {
    +&nbsp;
    +&nbsp;        // increment toIndex to include the current bucket into the sum
    +<b class="fc">&nbsp;        int toIndex = normalizeIndex(calculateIndexOfTick(toTime) + 1);</b>
    +<b class="fc">&nbsp;        int fromIndex = normalizeIndex(toIndex - numberOfBuckets);</b>
    +<b class="fc">&nbsp;        LongAdder adder = new LongAdder();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (fromIndex &lt; toIndex) {</b>
    +<b class="fc">&nbsp;            buckets.stream()</b>
    +<b class="fc">&nbsp;                    .skip(fromIndex)</b>
    +<b class="fc">&nbsp;                    .limit(toIndex - fromIndex)</b>
    +<b class="fc">&nbsp;                    .mapToLong(LongAdder::longValue)</b>
    +<b class="fc">&nbsp;                    .forEach(adder::add);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            buckets.stream().limit(toIndex).mapToLong(LongAdder::longValue).forEach(adder::add);</b>
    +<b class="fc">&nbsp;            buckets.stream().skip(fromIndex).mapToLong(LongAdder::longValue).forEach(adder::add);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        long retval = adder.longValue();</b>
    +<b class="fc">&nbsp;        return retval;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-21.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-21.html
    new file mode 100644
    index 0000000000..bccddf1f5c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-21.html
    @@ -0,0 +1,199 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowReservoir</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowReservoir (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowReservoir</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.ConcurrentSkipListMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
    +&nbsp; * in the last {@code N} seconds (or other time unit).
    +&nbsp; */
    +&nbsp;public class SlidingTimeWindowReservoir implements Reservoir {
    +&nbsp;    // allow for this many duplicate ticks before overwriting measurements
    +&nbsp;    private static final int COLLISION_BUFFER = 256;
    +&nbsp;    // only trim on updating once every N
    +&nbsp;    private static final int TRIM_THRESHOLD = 256;
    +&nbsp;    // offsets the front of the time window for the purposes of clearing the buffer in trim
    +<b class="fc">&nbsp;    private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;</b>
    +&nbsp;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final ConcurrentSkipListMap&lt;Long, Long&gt; measurements;
    +&nbsp;    private final long window;
    +&nbsp;    private final AtomicLong lastTick;
    +&nbsp;    private final AtomicLong count;
    +&nbsp;    private final long startTick;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link SlidingTimeWindowReservoir} with the given window of time.
    +&nbsp;     *
    +&nbsp;     * @param window     the window of time
    +&nbsp;     * @param windowUnit the unit of {@code window}
    +&nbsp;     */
    +&nbsp;    public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit) {
    +<b class="nc">&nbsp;        this(window, windowUnit, Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link SlidingTimeWindowReservoir} with the given clock and window of time.
    +&nbsp;     *
    +&nbsp;     * @param window     the window of time
    +&nbsp;     * @param windowUnit the unit of {@code window}
    +&nbsp;     * @param clock      the {@link Clock} to use
    +&nbsp;     */
    +<b class="fc">&nbsp;    public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit, Clock clock) {</b>
    +<b class="fc">&nbsp;        this.startTick = clock.getTick();</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.measurements = new ConcurrentSkipListMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;</b>
    +<b class="fc">&nbsp;        this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);</b>
    +<b class="fc">&nbsp;        this.count = new AtomicLong();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int size() {
    +<b class="fc">&nbsp;        trim();</b>
    +<b class="fc">&nbsp;        return measurements.size();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void update(long value) {
    +<b class="fc">&nbsp;        if (count.incrementAndGet() % TRIM_THRESHOLD == 0) {</b>
    +<b class="fc">&nbsp;            trim();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        measurements.put(getTick(), value);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Snapshot getSnapshot() {
    +<b class="fc">&nbsp;        trim();</b>
    +<b class="fc">&nbsp;        return new UniformSnapshot(measurements.values());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private long getTick() {
    +&nbsp;        for ( ;; ) {
    +<b class="fc">&nbsp;            final long oldTick = lastTick.get();</b>
    +<b class="fc">&nbsp;            final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;</b>
    +&nbsp;            // ensure the tick is strictly incrementing even if there are duplicate ticks
    +<b class="fc">&nbsp;            final long newTick = tick - oldTick &gt; 0 ? tick : oldTick + 1;</b>
    +<b class="fc">&nbsp;            if (lastTick.compareAndSet(oldTick, newTick)) {</b>
    +<b class="fc">&nbsp;                return newTick;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void trim() {
    +<b class="fc">&nbsp;        final long now = getTick();</b>
    +<b class="fc">&nbsp;        final long windowStart = now - window;</b>
    +<b class="fc">&nbsp;        final long windowEnd = now + CLEAR_BUFFER;</b>
    +<b class="fc">&nbsp;        if (windowStart &lt; windowEnd) {</b>
    +<b class="fc">&nbsp;            measurements.headMap(windowStart).clear();</b>
    +<b class="fc">&nbsp;            measurements.tailMap(windowEnd).clear();</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            measurements.subMap(windowEnd, windowStart).clear();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-22.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-22.html
    new file mode 100644
    index 0000000000..a971b4b40e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-22.html
    @@ -0,0 +1,147 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingWindowReservoir</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingWindowReservoir (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingWindowReservoir</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import static java.lang.Math.min;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link Reservoir} implementation backed by a sliding window that stores the last {@code N}
    +&nbsp; * measurements.
    +&nbsp; */
    +&nbsp;public class SlidingWindowReservoir implements Reservoir {
    +&nbsp;    private final long[] measurements;
    +&nbsp;    private long count;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link SlidingWindowReservoir} which stores the last {@code size} measurements.
    +&nbsp;     *
    +&nbsp;     * @param size the number of measurements to store
    +&nbsp;     */
    +<b class="fc">&nbsp;    public SlidingWindowReservoir(int size) {</b>
    +<b class="fc">&nbsp;        this.measurements = new long[size];</b>
    +<b class="fc">&nbsp;        this.count = 0;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public synchronized int size() {
    +<b class="fc">&nbsp;        return (int) min(count, measurements.length);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public synchronized void update(long value) {
    +<b class="fc">&nbsp;        measurements[(int) (count++ % measurements.length)] = value;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Snapshot getSnapshot() {
    +<b class="fc">&nbsp;        final long[] values = new long[size()];</b>
    +<b class="fc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    +<b class="fc">&nbsp;            synchronized (this) {</b>
    +<b class="fc">&nbsp;                values[i] = measurements[i];</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return new UniformSnapshot(values);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-23.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-23.html
    new file mode 100644
    index 0000000000..4db25abf89
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-23.html
    @@ -0,0 +1,277 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Snapshot</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Snapshot (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Snapshot</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$APfIuPki</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$APfIuPki$auxiliary$faBRdEga</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$APfIuPki$auxiliary$WLAbFZfS</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$dbmELJBz</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$dbmELJBz$auxiliary$01KbNvN3</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$dbmELJBz$auxiliary$6kiQVDxs</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$rE61TLWZ</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$rE61TLWZ$auxiliary$O5Md3wh2</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$rE61TLWZ$auxiliary$TtRUFvMH</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$tYzIKesx</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$tYzIKesx$auxiliary$9Jnbc6Sd</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$tYzIKesx$auxiliary$iUeFJkfT</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$uAF3XiYG</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$uAF3XiYG$auxiliary$FetHNyjG</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$uAF3XiYG$auxiliary$vhCEEj9x</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A statistical snapshot of a {@link Snapshot}.
    +&nbsp; */
    +<b class="fc">&nbsp;public abstract class Snapshot {</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the value at the given quantile.
    +&nbsp;     *
    +&nbsp;     * @param quantile a given quantile, in {@code [0..1]}
    +&nbsp;     * @return the value in the distribution at {@code quantile}
    +&nbsp;     */
    +&nbsp;    public abstract double getValue(double quantile);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the entire set of values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the entire set of values
    +&nbsp;     */
    +&nbsp;    public abstract long[] getValues();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the number of values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the number of values
    +&nbsp;     */
    +&nbsp;    public abstract int size();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the median value in the distribution.
    +&nbsp;     *
    +&nbsp;     * @return the median value
    +&nbsp;     */
    +&nbsp;    public double getMedian() {
    +<b class="fc">&nbsp;        return getValue(0.5);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the value at the 75th percentile in the distribution.
    +&nbsp;     *
    +&nbsp;     * @return the value at the 75th percentile
    +&nbsp;     */
    +&nbsp;    public double get75thPercentile() {
    +<b class="fc">&nbsp;        return getValue(0.75);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the value at the 95th percentile in the distribution.
    +&nbsp;     *
    +&nbsp;     * @return the value at the 95th percentile
    +&nbsp;     */
    +&nbsp;    public double get95thPercentile() {
    +<b class="fc">&nbsp;        return getValue(0.95);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the value at the 98th percentile in the distribution.
    +&nbsp;     *
    +&nbsp;     * @return the value at the 98th percentile
    +&nbsp;     */
    +&nbsp;    public double get98thPercentile() {
    +<b class="fc">&nbsp;        return getValue(0.98);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the value at the 99th percentile in the distribution.
    +&nbsp;     *
    +&nbsp;     * @return the value at the 99th percentile
    +&nbsp;     */
    +&nbsp;    public double get99thPercentile() {
    +<b class="fc">&nbsp;        return getValue(0.99);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the value at the 99.9th percentile in the distribution.
    +&nbsp;     *
    +&nbsp;     * @return the value at the 99.9th percentile
    +&nbsp;     */
    +&nbsp;    public double get999thPercentile() {
    +<b class="fc">&nbsp;        return getValue(0.999);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the highest value in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the highest value
    +&nbsp;     */
    +&nbsp;    public abstract long getMax();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the arithmetic mean of the values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the arithmetic mean
    +&nbsp;     */
    +&nbsp;    public abstract double getMean();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the lowest value in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the lowest value
    +&nbsp;     */
    +&nbsp;    public abstract long getMin();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the standard deviation of the values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the standard value
    +&nbsp;     */
    +&nbsp;    public abstract double getStdDev();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Writes the values of the snapshot to the given stream.
    +&nbsp;     *
    +&nbsp;     * @param output an output stream
    +&nbsp;     */
    +&nbsp;    public abstract void dump(OutputStream output);
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-24.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-24.html
    new file mode 100644
    index 0000000000..1480aec02d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-24.html
    @@ -0,0 +1,333 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Timer</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Timer (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Timer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (29/31)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">Timer$Context</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.time.Duration;
    +&nbsp;import java.util.concurrent.Callable;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A timer metric which aggregates timing durations and provides duration statistics, plus
    +&nbsp; * throughput statistics via {@link Meter}.
    +&nbsp; */
    +&nbsp;public class Timer implements Metered, Sampling {
    +&nbsp;    /**
    +&nbsp;     * A timing context.
    +&nbsp;     *
    +&nbsp;     * @see Timer#time()
    +&nbsp;     */
    +&nbsp;    public static class Context implements AutoCloseable {
    +&nbsp;        private final Timer timer;
    +&nbsp;        private final Clock clock;
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="fc">&nbsp;        Context(Timer timer, Clock clock) {</b>
    +<b class="fc">&nbsp;            this.timer = timer;</b>
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            this.startTime = clock.getTick();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Updates the timer with the difference between current and start time. Call to this method will
    +&nbsp;         * not reset the start time. Multiple calls result in multiple updates.
    +&nbsp;         *
    +&nbsp;         * @return the elapsed time in nanoseconds
    +&nbsp;         */
    +&nbsp;        public long stop() {
    +<b class="fc">&nbsp;            final long elapsed = clock.getTick() - startTime;</b>
    +<b class="fc">&nbsp;            timer.update(elapsed, TimeUnit.NANOSECONDS);</b>
    +<b class="fc">&nbsp;            return elapsed;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Equivalent to calling {@link #stop()}.
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void close() {
    +<b class="fc">&nbsp;            stop();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final Meter meter;
    +&nbsp;    private final Histogram histogram;
    +&nbsp;    private final Clock clock;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link Timer} using an {@link ExponentiallyDecayingReservoir} and the default
    +&nbsp;     * {@link Clock}.
    +&nbsp;     */
    +&nbsp;    public Timer() {
    +<b class="fc">&nbsp;        this(new ExponentiallyDecayingReservoir());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link Timer} that uses the given {@link Reservoir}.
    +&nbsp;     *
    +&nbsp;     * @param reservoir the {@link Reservoir} implementation the timer should use
    +&nbsp;     */
    +&nbsp;    public Timer(Reservoir reservoir) {
    +<b class="fc">&nbsp;        this(reservoir, Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link Timer} that uses the given {@link Reservoir} and {@link Clock}.
    +&nbsp;     *
    +&nbsp;     * @param reservoir the {@link Reservoir} implementation the timer should use
    +&nbsp;     * @param clock     the {@link Clock} implementation the timer should use
    +&nbsp;     */
    +&nbsp;    public Timer(Reservoir reservoir, Clock clock) {
    +<b class="fc">&nbsp;        this(new Meter(clock), new Histogram(reservoir), clock);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public Timer(Meter meter, Histogram histogram, Clock clock) {</b>
    +<b class="fc">&nbsp;        this.meter = meter;</b>
    +<b class="fc">&nbsp;        this.histogram = histogram;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Adds a recorded duration.
    +&nbsp;     *
    +&nbsp;     * @param duration the length of the duration
    +&nbsp;     * @param unit     the scale unit of {@code duration}
    +&nbsp;     */
    +&nbsp;    public void update(long duration, TimeUnit unit) {
    +<b class="fc">&nbsp;        update(unit.toNanos(duration));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Adds a recorded duration.
    +&nbsp;     *
    +&nbsp;     * @param duration the {@link Duration} to add to the timer. Negative or zero value are ignored.
    +&nbsp;     */
    +&nbsp;    public void update(Duration duration) {
    +<b class="fc">&nbsp;        update(duration.toNanos());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Times and records the duration of event.
    +&nbsp;     *
    +&nbsp;     * @param event a {@link Callable} whose {@link Callable#call()} method implements a process
    +&nbsp;     *              whose duration should be timed
    +&nbsp;     * @param &lt;T&gt;   the type of the value returned by {@code event}
    +&nbsp;     * @return the value returned by {@code event}
    +&nbsp;     * @throws Exception if {@code event} throws an {@link Exception}
    +&nbsp;     */
    +&nbsp;    public &lt;T&gt; T time(Callable&lt;T&gt; event) throws Exception {
    +<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return event.call();</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            update(clock.getTick() - startTime);</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Times and records the duration of event. Should not throw exceptions, for that use the
    +&nbsp;     * {@link #time(Callable)} method.
    +&nbsp;     *
    +&nbsp;     * @param event a {@link Supplier} whose {@link Supplier#get()} method implements a process
    +&nbsp;     *              whose duration should be timed
    +&nbsp;     * @param &lt;T&gt;   the type of the value returned by {@code event}
    +&nbsp;     * @return the value returned by {@code event}
    +&nbsp;     */
    +&nbsp;    public &lt;T&gt; T timeSupplier(Supplier&lt;T&gt; event) {
    +<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return event.get();</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            update(clock.getTick() - startTime);</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Times and records the duration of event.
    +&nbsp;     *
    +&nbsp;     * @param event a {@link Runnable} whose {@link Runnable#run()} method implements a process
    +&nbsp;     *              whose duration should be timed
    +&nbsp;     */
    +&nbsp;    public void time(Runnable event) {
    +<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            event.run();</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            update(clock.getTick() - startTime);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a new {@link Context}.
    +&nbsp;     *
    +&nbsp;     * @return a new {@link Context}
    +&nbsp;     * @see Context
    +&nbsp;     */
    +&nbsp;    public Context time() {
    +<b class="fc">&nbsp;        return new Context(this, clock);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public long getCount() {
    +<b class="fc">&nbsp;        return histogram.getCount();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getFifteenMinuteRate() {
    +<b class="fc">&nbsp;        return meter.getFifteenMinuteRate();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getFiveMinuteRate() {
    +<b class="fc">&nbsp;        return meter.getFiveMinuteRate();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getMeanRate() {
    +<b class="fc">&nbsp;        return meter.getMeanRate();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getOneMinuteRate() {
    +<b class="fc">&nbsp;        return meter.getOneMinuteRate();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Snapshot getSnapshot() {
    +<b class="fc">&nbsp;        return histogram.getSnapshot();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void update(long duration) {
    +<b class="fc">&nbsp;        if (duration &gt;= 0) {</b>
    +<b class="fc">&nbsp;            histogram.update(duration);</b>
    +<b class="fc">&nbsp;            meter.mark();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-25.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-25.html
    new file mode 100644
    index 0000000000..672842fffe
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-25.html
    @@ -0,0 +1,174 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > UniformReservoir</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: UniformReservoir (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">UniformReservoir</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.ThreadLocalRandom;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;import java.util.concurrent.atomic.AtomicLongArray;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A random sampling reservoir of a stream of {@code long}s. Uses Vitter&#39;s Algorithm R to produce a
    +&nbsp; * statistically representative sample.
    +&nbsp; *
    +&nbsp; * @see &lt;a href=&quot;http://www.cs.umd.edu/~samir/498/vitter.pdf&quot;&gt;Random Sampling with a Reservoir&lt;/a&gt;
    +&nbsp; */
    +&nbsp;public class UniformReservoir implements Reservoir {
    +&nbsp;    private static final int DEFAULT_SIZE = 1028;
    +<b class="fc">&nbsp;    private final AtomicLong count = new AtomicLong();</b>
    +&nbsp;    private final AtomicLongArray values;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link UniformReservoir} of 1028 elements, which offers a 99.9% confidence level
    +&nbsp;     * with a 5% margin of error assuming a normal distribution.
    +&nbsp;     */
    +&nbsp;    public UniformReservoir() {
    +<b class="fc">&nbsp;        this(DEFAULT_SIZE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link UniformReservoir}.
    +&nbsp;     *
    +&nbsp;     * @param size the number of samples to keep in the sampling reservoir
    +&nbsp;     */
    +<b class="fc">&nbsp;    public UniformReservoir(int size) {</b>
    +<b class="fc">&nbsp;        this.values = new AtomicLongArray(size);</b>
    +<b class="fc">&nbsp;        for (int i = 0; i &lt; values.length(); i++) {</b>
    +<b class="fc">&nbsp;            values.set(i, 0);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        count.set(0);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int size() {
    +<b class="fc">&nbsp;        final long c = count.get();</b>
    +<b class="fc">&nbsp;        if (c &gt; values.length()) {</b>
    +<b class="fc">&nbsp;            return values.length();</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        return (int) c;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void update(long value) {
    +<b class="fc">&nbsp;        final long c = count.incrementAndGet();</b>
    +<b class="fc">&nbsp;        if (c &lt;= values.length()) {</b>
    +<b class="fc">&nbsp;            values.set((int) c - 1, value);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            final long r = ThreadLocalRandom.current().nextLong(c);</b>
    +<b class="fc">&nbsp;            if (r &lt; values.length()) {</b>
    +<b class="fc">&nbsp;                values.set((int) r, value);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Snapshot getSnapshot() {
    +<b class="fc">&nbsp;        final int s = size();</b>
    +<b class="fc">&nbsp;        long[] copy = new long[s];</b>
    +<b class="fc">&nbsp;        for (int i = 0; i &lt; s; i++) {</b>
    +<b class="fc">&nbsp;            copy[i] = values.get(i);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return new UniformSnapshot(copy);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-26.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-26.html
    new file mode 100644
    index 0000000000..a328eab4e4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-26.html
    @@ -0,0 +1,281 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > UniformSnapshot</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: UniformSnapshot (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">UniformSnapshot</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.io.OutputStreamWriter;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collection;
    +&nbsp;
    +&nbsp;import static java.lang.Math.floor;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A statistical snapshot of a {@link UniformSnapshot}.
    +&nbsp; */
    +&nbsp;public class UniformSnapshot extends Snapshot {
    +&nbsp;
    +&nbsp;    private final long[] values;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new {@link Snapshot} with the given values.
    +&nbsp;     *
    +&nbsp;     * @param values an unordered set of values in the reservoir
    +&nbsp;     */
    +<b class="fc">&nbsp;    public UniformSnapshot(Collection&lt;Long&gt; values) {</b>
    +<b class="fc">&nbsp;        final Object[] copy = values.toArray();</b>
    +<b class="fc">&nbsp;        this.values = new long[copy.length];</b>
    +<b class="fc">&nbsp;        for (int i = 0; i &lt; copy.length; i++) {</b>
    +<b class="fc">&nbsp;            this.values[i] = (Long) copy[i];</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        Arrays.sort(this.values);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new {@link Snapshot} with the given values.
    +&nbsp;     *
    +&nbsp;     * @param values an unordered set of values in the reservoir that can be used by this class directly
    +&nbsp;     */
    +<b class="fc">&nbsp;    public UniformSnapshot(long[] values) {</b>
    +<b class="fc">&nbsp;        this.values = Arrays.copyOf(values, values.length);</b>
    +<b class="fc">&nbsp;        Arrays.sort(this.values);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the value at the given quantile.
    +&nbsp;     *
    +&nbsp;     * @param quantile a given quantile, in {@code [0..1]}
    +&nbsp;     * @return the value in the distribution at {@code quantile}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public double getValue(double quantile) {
    +<b class="fc">&nbsp;        if (quantile &lt; 0.0 || quantile &gt; 1.0 || Double.isNaN(quantile)) {</b>
    +<b class="fc">&nbsp;            throw new IllegalArgumentException(quantile + &quot; is not in [0..1]&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (values.length == 0) {</b>
    +<b class="nc">&nbsp;            return 0.0;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final double pos = quantile * (values.length + 1);</b>
    +<b class="fc">&nbsp;        final int index = (int) pos;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (index &lt; 1) {</b>
    +<b class="fc">&nbsp;            return values[0];</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (index &gt;= values.length) {</b>
    +<b class="fc">&nbsp;            return values[values.length - 1];</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final double lower = values[index - 1];</b>
    +<b class="fc">&nbsp;        final double upper = values[index];</b>
    +<b class="fc">&nbsp;        return lower + (pos - floor(pos)) * (upper - lower);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the number of values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the number of values
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public int size() {
    +<b class="fc">&nbsp;        return values.length;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the entire set of values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the entire set of values
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public long[] getValues() {
    +<b class="fc">&nbsp;        return Arrays.copyOf(values, values.length);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the highest value in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the highest value
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public long getMax() {
    +<b class="fc">&nbsp;        if (values.length == 0) {</b>
    +<b class="fc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return values[values.length - 1];</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the lowest value in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the lowest value
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public long getMin() {
    +<b class="fc">&nbsp;        if (values.length == 0) {</b>
    +<b class="fc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return values[0];</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the arithmetic mean of the values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the arithmetic mean
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public double getMean() {
    +<b class="fc">&nbsp;        if (values.length == 0) {</b>
    +<b class="fc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        double sum = 0;</b>
    +<b class="fc">&nbsp;        for (long value : values) {</b>
    +<b class="fc">&nbsp;            sum += value;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return sum / values.length;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the standard deviation of the values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the standard deviation value
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public double getStdDev() {
    +&nbsp;        // two-pass algorithm for variance, avoids numeric overflow
    +&nbsp;
    +<b class="fc">&nbsp;        if (values.length &lt;= 1) {</b>
    +<b class="fc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final double mean = getMean();</b>
    +<b class="fc">&nbsp;        double sum = 0;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (long value : values) {</b>
    +<b class="fc">&nbsp;            final double diff = value - mean;</b>
    +<b class="fc">&nbsp;            sum += diff * diff;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final double variance = sum / (values.length - 1);</b>
    +<b class="fc">&nbsp;        return Math.sqrt(variance);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Writes the values of the snapshot to the given stream.
    +&nbsp;     *
    +&nbsp;     * @param output an output stream
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void dump(OutputStream output) {
    +<b class="fc">&nbsp;        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {</b>
    +<b class="fc">&nbsp;            for (long value : values) {</b>
    +<b class="fc">&nbsp;                out.printf(&quot;%d%n&quot;, value);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-27.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-27.html
    new file mode 100644
    index 0000000000..30cc91d999
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-27.html
    @@ -0,0 +1,325 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > WeightedSnapshot</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">WeightedSnapshot</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.1%
    +  </span>
    +  <span class="absValue">
    +    (51/52)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">WeightedSnapshot$WeightedSample</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.io.OutputStreamWriter;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.Comparator;
    +&nbsp;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A statistical snapshot of a {@link WeightedSnapshot}.
    +&nbsp; */
    +&nbsp;public class WeightedSnapshot extends Snapshot {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A single sample item with value and its weights for {@link WeightedSnapshot}.
    +&nbsp;     */
    +&nbsp;    public static class WeightedSample {
    +&nbsp;        public final long value;
    +&nbsp;        public final double weight;
    +&nbsp;
    +<b class="fc">&nbsp;        public WeightedSample(long value, double weight) {</b>
    +<b class="fc">&nbsp;            this.value = value;</b>
    +<b class="fc">&nbsp;            this.weight = weight;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final long[] values;
    +&nbsp;    private final double[] normWeights;
    +&nbsp;    private final double[] quantiles;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new {@link Snapshot} with the given values.
    +&nbsp;     *
    +&nbsp;     * @param values an unordered set of values in the reservoir
    +&nbsp;     */
    +<b class="fc">&nbsp;    public WeightedSnapshot(Collection&lt;WeightedSample&gt; values) {</b>
    +<b class="fc">&nbsp;        final WeightedSample[] copy = values.toArray(new WeightedSample[]{});</b>
    +&nbsp;
    +<b class="fc">&nbsp;        Arrays.sort(copy, Comparator.comparingLong(w -&gt; w.value));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.values = new long[copy.length];</b>
    +<b class="fc">&nbsp;        this.normWeights = new double[copy.length];</b>
    +<b class="fc">&nbsp;        this.quantiles = new double[copy.length];</b>
    +&nbsp;
    +<b class="fc">&nbsp;        double sumWeight = 0;</b>
    +<b class="fc">&nbsp;        for (WeightedSample sample : copy) {</b>
    +<b class="fc">&nbsp;            sumWeight += sample.weight;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        for (int i = 0; i &lt; copy.length; i++) {</b>
    +<b class="fc">&nbsp;            this.values[i] = copy[i].value;</b>
    +<b class="fc">&nbsp;            this.normWeights[i] = sumWeight != 0 ? copy[i].weight / sumWeight : 0;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        for (int i = 1; i &lt; copy.length; i++) {</b>
    +<b class="fc">&nbsp;            this.quantiles[i] = this.quantiles[i - 1] + this.normWeights[i - 1];</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the value at the given quantile.
    +&nbsp;     *
    +&nbsp;     * @param quantile a given quantile, in {@code [0..1]}
    +&nbsp;     * @return the value in the distribution at {@code quantile}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public double getValue(double quantile) {
    +<b class="fc">&nbsp;        if (quantile &lt; 0.0 || quantile &gt; 1.0 || Double.isNaN(quantile)) {</b>
    +<b class="fc">&nbsp;            throw new IllegalArgumentException(quantile + &quot; is not in [0..1]&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (values.length == 0) {</b>
    +<b class="fc">&nbsp;            return 0.0;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        int posx = Arrays.binarySearch(quantiles, quantile);</b>
    +<b class="fc">&nbsp;        if (posx &lt; 0)</b>
    +<b class="fc">&nbsp;            posx = ((-posx) - 1) - 1;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (posx &lt; 1) {</b>
    +<b class="fc">&nbsp;            return values[0];</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (posx &gt;= values.length) {</b>
    +<b class="nc">&nbsp;            return values[values.length - 1];</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        return values[posx];</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the number of values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the number of values
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public int size() {
    +<b class="fc">&nbsp;        return values.length;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the entire set of values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the entire set of values
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public long[] getValues() {
    +<b class="fc">&nbsp;        return Arrays.copyOf(values, values.length);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the highest value in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the highest value
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public long getMax() {
    +<b class="fc">&nbsp;        if (values.length == 0) {</b>
    +<b class="fc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return values[values.length - 1];</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the lowest value in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the lowest value
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public long getMin() {
    +<b class="fc">&nbsp;        if (values.length == 0) {</b>
    +<b class="fc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return values[0];</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the weighted arithmetic mean of the values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the weighted arithmetic mean
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public double getMean() {
    +<b class="fc">&nbsp;        if (values.length == 0) {</b>
    +<b class="fc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        double sum = 0;</b>
    +<b class="fc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    +<b class="fc">&nbsp;            sum += values[i] * normWeights[i];</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return sum;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the weighted standard deviation of the values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the weighted standard deviation value
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public double getStdDev() {
    +&nbsp;        // two-pass algorithm for variance, avoids numeric overflow
    +&nbsp;
    +<b class="fc">&nbsp;        if (values.length &lt;= 1) {</b>
    +<b class="fc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final double mean = getMean();</b>
    +<b class="fc">&nbsp;        double variance = 0;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    +<b class="fc">&nbsp;            final double diff = values[i] - mean;</b>
    +<b class="fc">&nbsp;            variance += normWeights[i] * diff * diff;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        return Math.sqrt(variance);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Writes the values of the snapshot to the given stream.
    +&nbsp;     *
    +&nbsp;     * @param output an output stream
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void dump(OutputStream output) {
    +<b class="fc">&nbsp;        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {</b>
    +<b class="fc">&nbsp;            for (long value : values) {</b>
    +<b class="fc">&nbsp;                out.printf(&quot;%d%n&quot;, value);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-28.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-28.html
    new file mode 100644
    index 0000000000..06eb8b39e8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-28.html
    @@ -0,0 +1,116 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MovingAverages</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MovingAverages (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">MovingAverages</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A triple of moving averages (one-, five-, and fifteen-minute
    +&nbsp; * moving average) as needed by {@link Meter}.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Included implementations are:
    +&nbsp; * &lt;ul&gt;
    +&nbsp; * &lt;li&gt;{@link ExponentialMovingAverages} exponential decaying average similar to the {@code top} Unix command.
    +&nbsp; * &lt;li&gt;{@link SlidingTimeWindowMovingAverages} simple (unweighted) moving average
    +&nbsp; * &lt;/ul&gt;
    +&nbsp; */
    +&nbsp;public interface MovingAverages {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Tick the internal clock of the MovingAverages implementation if needed
    +&nbsp;     * (according to the internal ticking interval)
    +&nbsp;     */
    +&nbsp;    void tickIfNecessary();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Update all three moving averages with n events having occurred since the last update.
    +&nbsp;     *
    +&nbsp;     * @param n
    +&nbsp;     */
    +&nbsp;    void update(long n);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the one-minute moving average rate
    +&nbsp;     *
    +&nbsp;     * @return the one-minute moving average rate
    +&nbsp;     */
    +&nbsp;    double getM1Rate();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the five-minute moving average rate
    +&nbsp;     *
    +&nbsp;     * @return the five-minute moving average rate
    +&nbsp;     */
    +&nbsp;    double getM5Rate();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the fifteen-minute moving average rate
    +&nbsp;     *
    +&nbsp;     * @return the fifteen-minute moving average rate
    +&nbsp;     */
    +&nbsp;    double getM15Rate();
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-29.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-29.html
    new file mode 100644
    index 0000000000..5fedbadb61
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-29.html
    @@ -0,0 +1,78 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Reporter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Reporter (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">Reporter</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.io.Closeable;
    +&nbsp;
    +&nbsp;/*
    +&nbsp; * A tag interface to indicate that a class is a Reporter.
    +&nbsp; */
    +&nbsp;public interface Reporter extends Closeable {
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2a.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2a.html
    new file mode 100644
    index 0000000000..70b01c6af2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2a.html
    @@ -0,0 +1,85 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricSet (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricSet</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.Map;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of named metrics.
    +&nbsp; *
    +&nbsp; * @see MetricRegistry#registerAll(MetricSet)
    +&nbsp; */
    +&nbsp;public interface MetricSet extends Metric {
    +&nbsp;    /**
    +&nbsp;     * A map of metric names to metrics.
    +&nbsp;     *
    +&nbsp;     * @return the metrics
    +&nbsp;     */
    +&nbsp;    Map&lt;String, Metric&gt; getMetrics();
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2b.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2b.html
    new file mode 100644
    index 0000000000..d0fe1f254e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2b.html
    @@ -0,0 +1,104 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Reservoir</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Reservoir (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +  <tr>
    +    <td class="name">Reservoir$MockitoMock$8D80dqav</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Reservoir$MockitoMock$8D80dqav$auxiliary$KGzDpHA7</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Reservoir$MockitoMock$8D80dqav$auxiliary$lJ9cZIw6</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A statistically representative reservoir of a data stream.
    +&nbsp; */
    +&nbsp;public interface Reservoir {
    +&nbsp;    /**
    +&nbsp;     * Returns the number of values recorded.
    +&nbsp;     *
    +&nbsp;     * @return the number of values recorded
    +&nbsp;     */
    +&nbsp;    int size();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Adds a new recorded value to the reservoir.
    +&nbsp;     *
    +&nbsp;     * @param value a new recorded value
    +&nbsp;     */
    +&nbsp;    void update(long value);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a snapshot of the reservoir&#39;s values.
    +&nbsp;     *
    +&nbsp;     * @return a snapshot of the reservoir&#39;s values
    +&nbsp;     */
    +&nbsp;    Snapshot getSnapshot();
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2c.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2c.html
    new file mode 100644
    index 0000000000..e8b6056899
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2c.html
    @@ -0,0 +1,116 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Metered</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Metered (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">Metered</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An object which maintains mean and moving average rates.
    +&nbsp; */
    +&nbsp;public interface Metered extends Metric, Counting {
    +&nbsp;    /**
    +&nbsp;     * Returns the number of events which have been marked.
    +&nbsp;     *
    +&nbsp;     * @return the number of events which have been marked
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    long getCount();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the fifteen-minute moving average rate at which events have
    +&nbsp;     * occurred since the meter was created.
    +&nbsp;     *
    +&nbsp;     * @return the fifteen-minute moving average rate at which events have
    +&nbsp;     * occurred since the meter was created
    +&nbsp;     */
    +&nbsp;    double getFifteenMinuteRate();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the five-minute moving average rate at which events have
    +&nbsp;     * occurred since the meter was created.
    +&nbsp;     *
    +&nbsp;     * @return the five-minute moving average rate at which events have
    +&nbsp;     * occurred since the meter was created
    +&nbsp;     */
    +&nbsp;    double getFiveMinuteRate();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the mean rate at which events have occurred since the meter was created.
    +&nbsp;     *
    +&nbsp;     * @return the mean rate at which events have occurred since the meter was created
    +&nbsp;     */
    +&nbsp;    double getMeanRate();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the one-minute moving average rate at which events have
    +&nbsp;     * occurred since the meter was created.
    +&nbsp;     *
    +&nbsp;     * @return the one-minute moving average rate at which events have
    +&nbsp;     * occurred since the meter was created
    +&nbsp;     */
    +&nbsp;    double getOneMinuteRate();
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2d.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2d.html
    new file mode 100644
    index 0000000000..2f13811711
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2d.html
    @@ -0,0 +1,81 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Sampling</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Sampling (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">Sampling</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An object which samples values.
    +&nbsp; */
    +&nbsp;public interface Sampling {
    +&nbsp;    /**
    +&nbsp;     * Returns a snapshot of the values.
    +&nbsp;     *
    +&nbsp;     * @return a snapshot of the values
    +&nbsp;     */
    +&nbsp;    Snapshot getSnapshot();
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2e.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2e.html
    new file mode 100644
    index 0000000000..2c40ce883f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2e.html
    @@ -0,0 +1,82 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SettableGauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SettableGauge (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">SettableGauge</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
    +&nbsp; * See {@link DefaultSettableGauge}.
    +&nbsp; * &lt;/p&gt;
    +&nbsp; */
    +&nbsp;public interface SettableGauge&lt;T&gt; extends Gauge&lt;T&gt; {
    +&nbsp;    /**
    +&nbsp;     * Set the metric to a new value.
    +&nbsp;     */
    +&nbsp;    void setValue(T value);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2f.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2f.html
    new file mode 100644
    index 0000000000..481addb948
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2f.html
    @@ -0,0 +1,81 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Counting</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Counting (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">Counting</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An interface for metric types which have counts.
    +&nbsp; */
    +&nbsp;public interface Counting {
    +&nbsp;    /**
    +&nbsp;     * Returns the current count.
    +&nbsp;     *
    +&nbsp;     * @return the current count
    +&nbsp;     */
    +&nbsp;    long getCount();
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-3.html
    new file mode 100644
    index 0000000000..6c1517965e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-3.html
    @@ -0,0 +1,231 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Clock</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Clock (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Clock</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$JWBHhG4L</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$JWBHhG4L$auxiliary$lUA0zt5V</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$JWBHhG4L$auxiliary$RbMVLMZc</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$li0h3y9v</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$li0h3y9v$auxiliary$NYmKvI5n</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$li0h3y9v$auxiliary$xADvxTqm</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$O0sYkmKW</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$O0sYkmKW$auxiliary$3MIqI05a</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$O0sYkmKW$auxiliary$CPeOmT9H</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$ptO3x5uM</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$ptO3x5uM$auxiliary$meb1gR9d</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$ptO3x5uM$auxiliary$RsRvODSX</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$UserTimeClock</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$UserTimeClockHolder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An abstraction for how time passes. It is passed to {@link Timer} to track timing.
    +&nbsp; */
    +<b class="fc">&nbsp;public abstract class Clock {</b>
    +&nbsp;    /**
    +&nbsp;     * Returns the current time tick.
    +&nbsp;     *
    +&nbsp;     * @return time tick in nanoseconds
    +&nbsp;     */
    +&nbsp;    public abstract long getTick();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the current time in milliseconds.
    +&nbsp;     *
    +&nbsp;     * @return time in milliseconds
    +&nbsp;     */
    +&nbsp;    public long getTime() {
    +<b class="fc">&nbsp;        return System.currentTimeMillis();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * The default clock to use.
    +&nbsp;     *
    +&nbsp;     * @return the default {@link Clock} instance
    +&nbsp;     * @see Clock.UserTimeClock
    +&nbsp;     */
    +&nbsp;    public static Clock defaultClock() {
    +<b class="fc">&nbsp;        return UserTimeClockHolder.DEFAULT;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A clock implementation which returns the current time in epoch nanoseconds.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class UserTimeClock extends Clock {</b>
    +&nbsp;        @Override
    +&nbsp;        public long getTick() {
    +<b class="fc">&nbsp;            return System.nanoTime();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class UserTimeClockHolder {
    +<b class="fc">&nbsp;        private static final Clock DEFAULT = new UserTimeClock();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-30.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-30.html
    new file mode 100644
    index 0000000000..8eb28c9206
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-30.html
    @@ -0,0 +1,85 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Metric</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Metric (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +  <tr>
    +    <td class="name">Metric$MockitoMock$OASi9C4h</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Metric$MockitoMock$OASi9C4h$auxiliary$dXgkKNHA</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Metric$MockitoMock$OASi9C4h$auxiliary$fazH1lei</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A tag interface to indicate that a class is a metric.
    +&nbsp; */
    +&nbsp;public interface Metric {
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-31.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-31.html
    new file mode 100644
    index 0000000000..7a59af3b7f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-31.html
    @@ -0,0 +1,89 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CsvFileProvider</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CsvFileProvider (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +  <tr>
    +    <td class="name">CsvFileProvider$MockitoMock$kAQg5i0T</td>
    +  </tr>
    +  <tr>
    +    <td class="name">CsvFileProvider$MockitoMock$kAQg5i0T$auxiliary$HdubPpW7</td>
    +  </tr>
    +  <tr>
    +    <td class="name">CsvFileProvider$MockitoMock$kAQg5i0T$auxiliary$oQQufAtF</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.io.File;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * This interface allows a pluggable implementation of what file names
    +&nbsp; * the {@link CsvReporter} will write to.
    +&nbsp; */
    +&nbsp;public interface CsvFileProvider {
    +&nbsp;
    +&nbsp;    File getFile(File directory, String metricName);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-32.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-32.html
    new file mode 100644
    index 0000000000..002fa7156c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-32.html
    @@ -0,0 +1,103 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Gauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Gauge (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +  <tr>
    +    <td class="name">Gauge$MockitoMock$KSnylESQ</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Gauge$MockitoMock$KSnylESQ$auxiliary$H3iA5ZrO</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Gauge$MockitoMock$KSnylESQ$auxiliary$oaTpXMBj</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A gauge metric is an instantaneous reading of a particular value. To instrument a queue&#39;s depth,
    +&nbsp; * for example:&lt;br&gt;
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; * final Queue&amp;lt;String&amp;gt; queue = new ConcurrentLinkedQueue&amp;lt;String&amp;gt;();
    +&nbsp; * final Gauge&amp;lt;Integer&amp;gt; queueDepth = new Gauge&amp;lt;Integer&amp;gt;() {
    +&nbsp; *     public Integer getValue() {
    +&nbsp; *         return queue.size();
    +&nbsp; *     }
    +&nbsp; * };
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; *
    +&nbsp; * @param &lt;T&gt; the type of the metric&#39;s value
    +&nbsp; */
    +&nbsp;@FunctionalInterface
    +&nbsp;public interface Gauge&lt;T&gt; extends Metric {
    +&nbsp;    /**
    +&nbsp;     * Returns the metric&#39;s current value.
    +&nbsp;     *
    +&nbsp;     * @return the metric&#39;s current value
    +&nbsp;     */
    +&nbsp;    T getValue();
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-4.html
    new file mode 100644
    index 0000000000..5468d6bfbc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-4.html
    @@ -0,0 +1,490 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ConsoleReporter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ConsoleReporter (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ConsoleReporter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (90/90)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">ConsoleReporter$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">ConsoleReporter$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (11/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (30/34)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.io.PrintStream;
    +&nbsp;import java.text.DateFormat;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.Date;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.TimeZone;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A reporter which outputs measurements to a {@link PrintStream}, like {@code System.out}.
    +&nbsp; */
    +<b class="fc">&nbsp;public class ConsoleReporter extends ScheduledReporter {</b>
    +&nbsp;    /**
    +&nbsp;     * Returns a new {@link Builder} for {@link ConsoleReporter}.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry to report
    +&nbsp;     * @return a {@link Builder} instance for a {@link ConsoleReporter}
    +&nbsp;     */
    +&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    +<b class="fc">&nbsp;        return new Builder(registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A builder for {@link ConsoleReporter} instances. Defaults to using the default locale and
    +&nbsp;     * time zone, writing to {@code System.out}, converting rates to events/second, converting
    +&nbsp;     * durations to milliseconds, and not filtering metrics.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class Builder {</b>
    +&nbsp;        private final MetricRegistry registry;
    +&nbsp;        private PrintStream output;
    +&nbsp;        private Locale locale;
    +&nbsp;        private Clock clock;
    +&nbsp;        private TimeZone timeZone;
    +&nbsp;        private TimeUnit rateUnit;
    +&nbsp;        private TimeUnit durationUnit;
    +&nbsp;        private MetricFilter filter;
    +&nbsp;        private ScheduledExecutorService executor;
    +&nbsp;        private boolean shutdownExecutorOnStop;
    +&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    +&nbsp;
    +<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;            this.registry = registry;</b>
    +<b class="fc">&nbsp;            this.output = System.out;</b>
    +<b class="fc">&nbsp;            this.locale = Locale.getDefault();</b>
    +<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    +<b class="fc">&nbsp;            this.timeZone = TimeZone.getDefault();</b>
    +<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    +<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    +<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    +<b class="fc">&nbsp;            this.executor = null;</b>
    +<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    +<b class="fc">&nbsp;            disabledMetricAttributes = Collections.emptySet();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    +&nbsp;         * Default value is true.
    +&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    +&nbsp;         *
    +&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    +<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    +&nbsp;         * Default value is null.
    +&nbsp;         * Null value leads to executor will be auto created on start.
    +&nbsp;         *
    +&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    +<b class="nc">&nbsp;            this.executor = executor;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Write to the given {@link PrintStream}.
    +&nbsp;         *
    +&nbsp;         * @param output a {@link PrintStream} instance.
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder outputTo(PrintStream output) {
    +<b class="fc">&nbsp;            this.output = output;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Format numbers for the given {@link Locale}.
    +&nbsp;         *
    +&nbsp;         * @param locale a {@link Locale}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder formattedFor(Locale locale) {
    +<b class="fc">&nbsp;            this.locale = locale;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use the given {@link Clock} instance for the time.
    +&nbsp;         *
    +&nbsp;         * @param clock a {@link Clock} instance
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder withClock(Clock clock) {
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use the given {@link TimeZone} for the time.
    +&nbsp;         *
    +&nbsp;         * @param timeZone a {@link TimeZone}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder formattedFor(TimeZone timeZone) {
    +<b class="fc">&nbsp;            this.timeZone = timeZone;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert rates to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param rateUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    +<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert durations to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param durationUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    +<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Only report metrics which match the given filter.
    +&nbsp;         *
    +&nbsp;         * @param filter a {@link MetricFilter}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder filter(MetricFilter filter) {
    +<b class="fc">&nbsp;            this.filter = filter;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    +&nbsp;         * See {@link MetricAttribute}.
    +&nbsp;         *
    +&nbsp;         * @param disabledMetricAttributes a {@link MetricFilter}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    +<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Builds a {@link ConsoleReporter} with the given properties.
    +&nbsp;         *
    +&nbsp;         * @return a {@link ConsoleReporter}
    +&nbsp;         */
    +&nbsp;        public ConsoleReporter build() {
    +<b class="fc">&nbsp;            return new ConsoleReporter(registry,</b>
    +&nbsp;                    output,
    +&nbsp;                    locale,
    +&nbsp;                    clock,
    +&nbsp;                    timeZone,
    +&nbsp;                    rateUnit,
    +&nbsp;                    durationUnit,
    +&nbsp;                    filter,
    +&nbsp;                    executor,
    +&nbsp;                    shutdownExecutorOnStop,
    +&nbsp;                    disabledMetricAttributes);
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static final int CONSOLE_WIDTH = 80;
    +&nbsp;
    +&nbsp;    private final PrintStream output;
    +&nbsp;    private final Locale locale;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final DateFormat dateFormat;
    +&nbsp;
    +&nbsp;    private ConsoleReporter(MetricRegistry registry,
    +&nbsp;                            PrintStream output,
    +&nbsp;                            Locale locale,
    +&nbsp;                            Clock clock,
    +&nbsp;                            TimeZone timeZone,
    +&nbsp;                            TimeUnit rateUnit,
    +&nbsp;                            TimeUnit durationUnit,
    +&nbsp;                            MetricFilter filter,
    +&nbsp;                            ScheduledExecutorService executor,
    +&nbsp;                            boolean shutdownExecutorOnStop,
    +&nbsp;                            Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    +<b class="fc">&nbsp;        super(registry, &quot;console-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, disabledMetricAttributes);</b>
    +<b class="fc">&nbsp;        this.output = output;</b>
    +<b class="fc">&nbsp;        this.locale = locale;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT,</b>
    +&nbsp;                DateFormat.MEDIUM,
    +&nbsp;                locale);
    +<b class="fc">&nbsp;        dateFormat.setTimeZone(timeZone);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    +&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    +&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    +&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    +&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    +<b class="fc">&nbsp;        final String dateTime = dateFormat.format(new Date(clock.getTime()));</b>
    +<b class="fc">&nbsp;        printWithBanner(dateTime, &#39;=&#39;);</b>
    +<b class="fc">&nbsp;        output.println();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (!gauges.isEmpty()) {</b>
    +<b class="fc">&nbsp;            printWithBanner(&quot;-- Gauges&quot;, &#39;-&#39;);</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    +<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    +<b class="fc">&nbsp;                printGauge(entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            output.println();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (!counters.isEmpty()) {</b>
    +<b class="fc">&nbsp;            printWithBanner(&quot;-- Counters&quot;, &#39;-&#39;);</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    +<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    +<b class="fc">&nbsp;                printCounter(entry);</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            output.println();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (!histograms.isEmpty()) {</b>
    +<b class="fc">&nbsp;            printWithBanner(&quot;-- Histograms&quot;, &#39;-&#39;);</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    +<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    +<b class="fc">&nbsp;                printHistogram(entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            output.println();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (!meters.isEmpty()) {</b>
    +<b class="fc">&nbsp;            printWithBanner(&quot;-- Meters&quot;, &#39;-&#39;);</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    +<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    +<b class="fc">&nbsp;                printMeter(entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            output.println();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (!timers.isEmpty()) {</b>
    +<b class="fc">&nbsp;            printWithBanner(&quot;-- Timers&quot;, &#39;-&#39;);</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    +<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    +<b class="fc">&nbsp;                printTimer(entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            output.println();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        output.println();</b>
    +<b class="fc">&nbsp;        output.flush();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void printMeter(Meter meter) {
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, meter.getCount()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, &quot;         mean rate = %2.2f events/%s&quot;, convertRate(meter.getMeanRate()), getRateUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, &quot;     1-minute rate = %2.2f events/%s&quot;, convertRate(meter.getOneMinuteRate()), getRateUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, &quot;     5-minute rate = %2.2f events/%s&quot;, convertRate(meter.getFiveMinuteRate()), getRateUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, &quot;    15-minute rate = %2.2f events/%s&quot;, convertRate(meter.getFifteenMinuteRate()), getRateUnit()));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void printCounter(Map.Entry&lt;String, Counter&gt; entry) {
    +<b class="fc">&nbsp;        output.printf(locale, &quot;             count = %d%n&quot;, entry.getValue().getCount());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void printGauge(Gauge&lt;?&gt; gauge) {
    +<b class="fc">&nbsp;        output.printf(locale, &quot;             value = %s%n&quot;, gauge.getValue());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void printHistogram(Histogram histogram) {
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, histogram.getCount()));</b>
    +<b class="fc">&nbsp;        Snapshot snapshot = histogram.getSnapshot();</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MIN, String.format(locale, &quot;               min = %d&quot;, snapshot.getMin()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MAX, String.format(locale, &quot;               max = %d&quot;, snapshot.getMax()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN, String.format(locale, &quot;              mean = %2.2f&quot;, snapshot.getMean()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.STDDEV, String.format(locale, &quot;            stddev = %2.2f&quot;, snapshot.getStdDev()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P50, String.format(locale, &quot;            median = %2.2f&quot;, snapshot.getMedian()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P75, String.format(locale, &quot;              75%% &lt;= %2.2f&quot;, snapshot.get75thPercentile()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P95, String.format(locale, &quot;              95%% &lt;= %2.2f&quot;, snapshot.get95thPercentile()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P98, String.format(locale, &quot;              98%% &lt;= %2.2f&quot;, snapshot.get98thPercentile()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P99, String.format(locale, &quot;              99%% &lt;= %2.2f&quot;, snapshot.get99thPercentile()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P999, String.format(locale, &quot;            99.9%% &lt;= %2.2f&quot;, snapshot.get999thPercentile()));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void printTimer(Timer timer) {
    +<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, timer.getCount()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, &quot;         mean rate = %2.2f calls/%s&quot;, convertRate(timer.getMeanRate()), getRateUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, &quot;     1-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getOneMinuteRate()), getRateUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, &quot;     5-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getFiveMinuteRate()), getRateUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, &quot;    15-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getFifteenMinuteRate()), getRateUnit()));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MIN, String.format(locale, &quot;               min = %2.2f %s&quot;, convertDuration(snapshot.getMin()), getDurationUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MAX, String.format(locale, &quot;               max = %2.2f %s&quot;, convertDuration(snapshot.getMax()), getDurationUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN, String.format(locale, &quot;              mean = %2.2f %s&quot;, convertDuration(snapshot.getMean()), getDurationUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.STDDEV, String.format(locale, &quot;            stddev = %2.2f %s&quot;, convertDuration(snapshot.getStdDev()), getDurationUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P50, String.format(locale, &quot;            median = %2.2f %s&quot;, convertDuration(snapshot.getMedian()), getDurationUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P75, String.format(locale, &quot;              75%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get75thPercentile()), getDurationUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P95, String.format(locale, &quot;              95%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get95thPercentile()), getDurationUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P98, String.format(locale, &quot;              98%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get98thPercentile()), getDurationUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P99, String.format(locale, &quot;              99%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get99thPercentile()), getDurationUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P999, String.format(locale, &quot;            99.9%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get999thPercentile()), getDurationUnit()));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void printWithBanner(String s, char c) {
    +<b class="fc">&nbsp;        output.print(s);</b>
    +<b class="fc">&nbsp;        output.print(&#39; &#39;);</b>
    +<b class="fc">&nbsp;        for (int i = 0; i &lt; (CONSOLE_WIDTH - s.length() - 1); i++) {</b>
    +<b class="fc">&nbsp;            output.print(c);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        output.println();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Print only if the attribute is enabled
    +&nbsp;     *
    +&nbsp;     * @param type   Metric attribute
    +&nbsp;     * @param status Status to be logged
    +&nbsp;     */
    +&nbsp;    private void printIfEnabled(MetricAttribute type, String status) {
    +<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    +&nbsp;            return;
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        output.println(status);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-5.html
    new file mode 100644
    index 0000000000..9bc85d0299
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-5.html
    @@ -0,0 +1,160 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Counter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Counter (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Counter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.atomic.LongAdder;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An incrementing and decrementing counter metric.
    +&nbsp; */
    +&nbsp;public class Counter implements Metric, Counting {
    +&nbsp;    private final LongAdder count;
    +&nbsp;
    +<b class="fc">&nbsp;    public Counter() {</b>
    +<b class="fc">&nbsp;        this.count = new LongAdder();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Increment the counter by one.
    +&nbsp;     */
    +&nbsp;    public void inc() {
    +<b class="fc">&nbsp;        inc(1);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Increment the counter by {@code n}.
    +&nbsp;     *
    +&nbsp;     * @param n the amount by which the counter will be increased
    +&nbsp;     */
    +&nbsp;    public void inc(long n) {
    +<b class="fc">&nbsp;        count.add(n);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Decrement the counter by one.
    +&nbsp;     */
    +&nbsp;    public void dec() {
    +<b class="fc">&nbsp;        dec(1);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Decrement the counter by {@code n}.
    +&nbsp;     *
    +&nbsp;     * @param n the amount by which the counter will be decreased
    +&nbsp;     */
    +&nbsp;    public void dec(long n) {
    +<b class="fc">&nbsp;        count.add(-n);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the counter&#39;s current value.
    +&nbsp;     *
    +&nbsp;     * @return the counter&#39;s current value
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public long getCount() {
    +<b class="fc">&nbsp;        return count.sum();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-6.html
    new file mode 100644
    index 0000000000..4a4f2010b6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-6.html
    @@ -0,0 +1,477 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CsvReporter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CsvReporter (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CsvReporter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.4%
    +  </span>
    +  <span class="absValue">
    +    (81/84)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">CsvReporter$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">CsvReporter$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (10/12)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.1%
    +  </span>
    +  <span class="absValue">
    +    (27/31)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import java.io.File;
    +&nbsp;import java.io.FileOutputStream;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStreamWriter;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A reporter which creates a comma-separated values file of the measurements for each metric.
    +&nbsp; */
    +<b class="fc">&nbsp;public class CsvReporter extends ScheduledReporter {</b>
    +&nbsp;    private static final String DEFAULT_SEPARATOR = &quot;,&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a new {@link Builder} for {@link CsvReporter}.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry to report
    +&nbsp;     * @return a {@link Builder} instance for a {@link CsvReporter}
    +&nbsp;     */
    +&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    +<b class="fc">&nbsp;        return new Builder(registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A builder for {@link CsvReporter} instances. Defaults to using the default locale, converting
    +&nbsp;     * rates to events/second, converting durations to milliseconds, and not filtering metrics.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class Builder {</b>
    +&nbsp;        private final MetricRegistry registry;
    +&nbsp;        private Locale locale;
    +&nbsp;        private String separator;
    +&nbsp;        private TimeUnit rateUnit;
    +&nbsp;        private TimeUnit durationUnit;
    +&nbsp;        private Clock clock;
    +&nbsp;        private MetricFilter filter;
    +&nbsp;        private ScheduledExecutorService executor;
    +&nbsp;        private boolean shutdownExecutorOnStop;
    +&nbsp;        private CsvFileProvider csvFileProvider;
    +&nbsp;
    +<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;            this.registry = registry;</b>
    +<b class="fc">&nbsp;            this.locale = Locale.getDefault();</b>
    +<b class="fc">&nbsp;            this.separator = DEFAULT_SEPARATOR;</b>
    +<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    +<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    +<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    +<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    +<b class="fc">&nbsp;            this.executor = null;</b>
    +<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    +<b class="fc">&nbsp;            this.csvFileProvider = new FixedNameCsvFileProvider();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    +&nbsp;         * Default value is true.
    +&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    +&nbsp;         *
    +&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    +<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    +&nbsp;         * Default value is null.
    +&nbsp;         * Null value leads to executor will be auto created on start.
    +&nbsp;         *
    +&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    +<b class="nc">&nbsp;            this.executor = executor;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Format numbers for the given {@link Locale}.
    +&nbsp;         *
    +&nbsp;         * @param locale a {@link Locale}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder formatFor(Locale locale) {
    +<b class="fc">&nbsp;            this.locale = locale;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert rates to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param rateUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    +<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert durations to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param durationUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    +<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use the given string to use as the separator for values.
    +&nbsp;         *
    +&nbsp;         * @param separator the string to use for the separator.
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder withSeparator(String separator) {
    +<b class="fc">&nbsp;            this.separator = separator;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use the given {@link Clock} instance for the time.
    +&nbsp;         *
    +&nbsp;         * @param clock a {@link Clock} instance
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder withClock(Clock clock) {
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Only report metrics which match the given filter.
    +&nbsp;         *
    +&nbsp;         * @param filter a {@link MetricFilter}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder filter(MetricFilter filter) {
    +<b class="fc">&nbsp;            this.filter = filter;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withCsvFileProvider(CsvFileProvider csvFileProvider) {
    +<b class="fc">&nbsp;            this.csvFileProvider = csvFileProvider;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Builds a {@link CsvReporter} with the given properties, writing {@code .csv} files to the
    +&nbsp;         * given directory.
    +&nbsp;         *
    +&nbsp;         * @param directory the directory in which the {@code .csv} files will be created
    +&nbsp;         * @return a {@link CsvReporter}
    +&nbsp;         */
    +&nbsp;        public CsvReporter build(File directory) {
    +<b class="fc">&nbsp;            return new CsvReporter(registry,</b>
    +&nbsp;                    directory,
    +&nbsp;                    locale,
    +&nbsp;                    separator,
    +&nbsp;                    rateUnit,
    +&nbsp;                    durationUnit,
    +&nbsp;                    clock,
    +&nbsp;                    filter,
    +&nbsp;                    executor,
    +&nbsp;                    shutdownExecutorOnStop,
    +&nbsp;                    csvFileProvider);
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(CsvReporter.class);</b>
    +&nbsp;
    +&nbsp;    private final File directory;
    +&nbsp;    private final Locale locale;
    +&nbsp;    private final String separator;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final CsvFileProvider csvFileProvider;
    +&nbsp;
    +&nbsp;    private final String histogramFormat;
    +&nbsp;    private final String meterFormat;
    +&nbsp;    private final String timerFormat;
    +&nbsp;
    +&nbsp;    private final String timerHeader;
    +&nbsp;    private final String meterHeader;
    +&nbsp;    private final String histogramHeader;
    +&nbsp;
    +&nbsp;    private CsvReporter(MetricRegistry registry,
    +&nbsp;                        File directory,
    +&nbsp;                        Locale locale,
    +&nbsp;                        String separator,
    +&nbsp;                        TimeUnit rateUnit,
    +&nbsp;                        TimeUnit durationUnit,
    +&nbsp;                        Clock clock,
    +&nbsp;                        MetricFilter filter,
    +&nbsp;                        ScheduledExecutorService executor,
    +&nbsp;                        boolean shutdownExecutorOnStop,
    +&nbsp;                        CsvFileProvider csvFileProvider) {
    +<b class="fc">&nbsp;        super(registry, &quot;csv-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop);</b>
    +<b class="fc">&nbsp;        this.directory = directory;</b>
    +<b class="fc">&nbsp;        this.locale = locale;</b>
    +<b class="fc">&nbsp;        this.separator = separator;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.csvFileProvider = csvFileProvider;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.histogramFormat = String.join(separator, &quot;%d&quot;, &quot;%d&quot;, &quot;%f&quot;, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;);</b>
    +<b class="fc">&nbsp;        this.meterFormat = String.join(separator, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;events/%s&quot;);</b>
    +<b class="fc">&nbsp;        this.timerFormat = String.join(separator, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;calls/%s&quot;, &quot;%s&quot;);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.timerHeader = String.join(separator, &quot;count&quot;, &quot;max&quot;, &quot;mean&quot;, &quot;min&quot;, &quot;stddev&quot;, &quot;p50&quot;, &quot;p75&quot;, &quot;p95&quot;, &quot;p98&quot;, &quot;p99&quot;, &quot;p999&quot;, &quot;mean_rate&quot;, &quot;m1_rate&quot;, &quot;m5_rate&quot;, &quot;m15_rate&quot;, &quot;rate_unit&quot;, &quot;duration_unit&quot;);</b>
    +<b class="fc">&nbsp;        this.meterHeader = String.join(separator, &quot;count&quot;, &quot;mean_rate&quot;, &quot;m1_rate&quot;, &quot;m5_rate&quot;, &quot;m15_rate&quot;, &quot;rate_unit&quot;);</b>
    +<b class="fc">&nbsp;        this.histogramHeader = String.join(separator, &quot;count&quot;, &quot;max&quot;, &quot;mean&quot;, &quot;min&quot;, &quot;stddev&quot;, &quot;p50&quot;, &quot;p75&quot;, &quot;p95&quot;, &quot;p98&quot;, &quot;p99&quot;, &quot;p999&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    +&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    +&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    +&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    +&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    +<b class="fc">&nbsp;        final long timestamp = TimeUnit.MILLISECONDS.toSeconds(clock.getTime());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    +<b class="fc">&nbsp;            reportGauge(timestamp, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    +<b class="fc">&nbsp;            reportCounter(timestamp, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    +<b class="fc">&nbsp;            reportHistogram(timestamp, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    +<b class="fc">&nbsp;            reportMeter(timestamp, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    +<b class="fc">&nbsp;            reportTimer(timestamp, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportTimer(long timestamp, String name, Timer timer) {
    +<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        report(timestamp,</b>
    +&nbsp;                name,
    +&nbsp;                timerHeader,
    +&nbsp;                timerFormat,
    +<b class="fc">&nbsp;                timer.getCount(),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.getMax()),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.getMean()),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.getMin()),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.getStdDev()),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.getMedian()),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.get75thPercentile()),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.get95thPercentile()),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.get98thPercentile()),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.get99thPercentile()),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.get999thPercentile()),</b>
    +<b class="fc">&nbsp;                convertRate(timer.getMeanRate()),</b>
    +<b class="fc">&nbsp;                convertRate(timer.getOneMinuteRate()),</b>
    +<b class="fc">&nbsp;                convertRate(timer.getFiveMinuteRate()),</b>
    +<b class="fc">&nbsp;                convertRate(timer.getFifteenMinuteRate()),</b>
    +<b class="fc">&nbsp;                getRateUnit(),</b>
    +<b class="fc">&nbsp;                getDurationUnit());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportMeter(long timestamp, String name, Meter meter) {
    +<b class="fc">&nbsp;        report(timestamp,</b>
    +&nbsp;                name,
    +&nbsp;                meterHeader,
    +&nbsp;                meterFormat,
    +<b class="fc">&nbsp;                meter.getCount(),</b>
    +<b class="fc">&nbsp;                convertRate(meter.getMeanRate()),</b>
    +<b class="fc">&nbsp;                convertRate(meter.getOneMinuteRate()),</b>
    +<b class="fc">&nbsp;                convertRate(meter.getFiveMinuteRate()),</b>
    +<b class="fc">&nbsp;                convertRate(meter.getFifteenMinuteRate()),</b>
    +<b class="fc">&nbsp;                getRateUnit());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportHistogram(long timestamp, String name, Histogram histogram) {
    +<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        report(timestamp,</b>
    +&nbsp;                name,
    +&nbsp;                histogramHeader,
    +&nbsp;                histogramFormat,
    +<b class="fc">&nbsp;                histogram.getCount(),</b>
    +<b class="fc">&nbsp;                snapshot.getMax(),</b>
    +<b class="fc">&nbsp;                snapshot.getMean(),</b>
    +<b class="fc">&nbsp;                snapshot.getMin(),</b>
    +<b class="fc">&nbsp;                snapshot.getStdDev(),</b>
    +<b class="fc">&nbsp;                snapshot.getMedian(),</b>
    +<b class="fc">&nbsp;                snapshot.get75thPercentile(),</b>
    +<b class="fc">&nbsp;                snapshot.get95thPercentile(),</b>
    +<b class="fc">&nbsp;                snapshot.get98thPercentile(),</b>
    +<b class="fc">&nbsp;                snapshot.get99thPercentile(),</b>
    +<b class="fc">&nbsp;                snapshot.get999thPercentile());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportCounter(long timestamp, String name, Counter counter) {
    +<b class="fc">&nbsp;        report(timestamp, name, &quot;count&quot;, &quot;%d&quot;, counter.getCount());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportGauge(long timestamp, String name, Gauge&lt;?&gt; gauge) {
    +<b class="fc">&nbsp;        report(timestamp, name, &quot;value&quot;, &quot;%s&quot;, gauge.getValue());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void report(long timestamp, String name, String header, String line, Object... values) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            final File file = csvFileProvider.getFile(directory, name);</b>
    +<b class="fc">&nbsp;            final boolean fileAlreadyExists = file.exists();</b>
    +<b class="fc">&nbsp;            if (fileAlreadyExists || file.createNewFile()) {</b>
    +<b class="fc">&nbsp;                try (PrintWriter out = new PrintWriter(new OutputStreamWriter(</b>
    +&nbsp;                        new FileOutputStream(file, true), UTF_8))) {
    +<b class="fc">&nbsp;                    if (!fileAlreadyExists) {</b>
    +<b class="fc">&nbsp;                        out.println(&quot;t&quot; + separator + header);</b>
    +&nbsp;                    }
    +<b class="fc">&nbsp;                    out.printf(locale, String.format(locale, &quot;%d&quot; + separator + &quot;%s%n&quot;, timestamp, line), values);</b>
    +<b class="fc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } catch (IOException e) {</b>
    +<b class="nc">&nbsp;            LOGGER.warn(&quot;Error writing to {}&quot;, name, e);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String sanitize(String name) {
    +<b class="nc">&nbsp;        return name;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-7.html
    new file mode 100644
    index 0000000000..1fe7a543cb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-7.html
    @@ -0,0 +1,147 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > DefaultSettableGauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: DefaultSettableGauge (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">DefaultSettableGauge</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
    +&nbsp; */
    +&nbsp;public class DefaultSettableGauge&lt;T&gt; implements SettableGauge&lt;T&gt; {
    +&nbsp;    private volatile T value;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create an instance with no default value.
    +&nbsp;     */
    +&nbsp;    public DefaultSettableGauge() {
    +<b class="fc">&nbsp;        this(null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create an instance with a default value.
    +&nbsp;     *
    +&nbsp;     * @param defaultValue default value
    +&nbsp;     */
    +<b class="fc">&nbsp;    public DefaultSettableGauge(T defaultValue) {</b>
    +<b class="fc">&nbsp;        this.value = defaultValue;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Set the metric to a new value.
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void setValue(T value) {
    +<b class="fc">&nbsp;        this.value = value;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the current value.
    +&nbsp;     *
    +&nbsp;     * @return the current value
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public T getValue() {
    +<b class="fc">&nbsp;        return value;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-8.html
    new file mode 100644
    index 0000000000..3962165cd1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-8.html
    @@ -0,0 +1,137 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > DerivativeGauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: DerivativeGauge (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">DerivativeGauge</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A gauge whose value is derived from the value of another gauge.
    +&nbsp; *
    +&nbsp; * @param &lt;F&gt; the base gauge&#39;s value type
    +&nbsp; * @param &lt;T&gt; the derivative type
    +&nbsp; */
    +&nbsp;public abstract class DerivativeGauge&lt;F, T&gt; implements Gauge&lt;T&gt; {
    +&nbsp;    private final Gauge&lt;F&gt; base;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new derivative with the given base gauge.
    +&nbsp;     *
    +&nbsp;     * @param base the gauge from which to derive this gauge&#39;s value
    +&nbsp;     */
    +<b class="fc">&nbsp;    protected DerivativeGauge(Gauge&lt;F&gt; base) {</b>
    +<b class="fc">&nbsp;        this.base = base;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public T getValue() {
    +<b class="fc">&nbsp;        return transform(base.getValue());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Transforms the value of the base gauge to the value of this gauge.
    +&nbsp;     *
    +&nbsp;     * @param value the value of the base gauge
    +&nbsp;     * @return this gauge&#39;s value
    +&nbsp;     */
    +&nbsp;    protected abstract T transform(F value);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-9.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-9.html
    new file mode 100644
    index 0000000000..9951053317
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-9.html
    @@ -0,0 +1,212 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > EWMA</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: EWMA (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">EWMA</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.LongAdder;
    +&nbsp;
    +&nbsp;import static java.lang.Math.exp;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An exponentially-weighted moving average.
    +&nbsp; *
    +&nbsp; * @see &lt;a href=&quot;http://www.teamquest.com/pdfs/whitepaper/ldavg1.pdf&quot;&gt;UNIX Load Average Part 1: How
    +&nbsp; * It Works&lt;/a&gt;
    +&nbsp; * @see &lt;a href=&quot;http://www.teamquest.com/pdfs/whitepaper/ldavg2.pdf&quot;&gt;UNIX Load Average Part 2: Not
    +&nbsp; * Your Average Average&lt;/a&gt;
    +&nbsp; * @see &lt;a href=&quot;http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average&quot;&gt;EMA&lt;/a&gt;
    +&nbsp; */
    +&nbsp;public class EWMA {
    +&nbsp;    private static final int INTERVAL = 5;
    +&nbsp;    private static final double SECONDS_PER_MINUTE = 60.0;
    +&nbsp;    private static final int ONE_MINUTE = 1;
    +&nbsp;    private static final int FIVE_MINUTES = 5;
    +&nbsp;    private static final int FIFTEEN_MINUTES = 15;
    +<b class="fc">&nbsp;    private static final double M1_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / ONE_MINUTE);</b>
    +<b class="fc">&nbsp;    private static final double M5_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIVE_MINUTES);</b>
    +<b class="fc">&nbsp;    private static final double M15_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIFTEEN_MINUTES);</b>
    +&nbsp;
    +<b class="fc">&nbsp;    private volatile boolean initialized = false;</b>
    +<b class="fc">&nbsp;    private volatile double rate = 0.0;</b>
    +&nbsp;
    +<b class="fc">&nbsp;    private final LongAdder uncounted = new LongAdder();</b>
    +&nbsp;    private final double alpha, interval;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new EWMA which is equivalent to the UNIX one minute load average and which expects
    +&nbsp;     * to be ticked every 5 seconds.
    +&nbsp;     *
    +&nbsp;     * @return a one-minute EWMA
    +&nbsp;     */
    +&nbsp;    public static EWMA oneMinuteEWMA() {
    +<b class="fc">&nbsp;        return new EWMA(M1_ALPHA, INTERVAL, TimeUnit.SECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new EWMA which is equivalent to the UNIX five minute load average and which expects
    +&nbsp;     * to be ticked every 5 seconds.
    +&nbsp;     *
    +&nbsp;     * @return a five-minute EWMA
    +&nbsp;     */
    +&nbsp;    public static EWMA fiveMinuteEWMA() {
    +<b class="fc">&nbsp;        return new EWMA(M5_ALPHA, INTERVAL, TimeUnit.SECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new EWMA which is equivalent to the UNIX fifteen minute load average and which
    +&nbsp;     * expects to be ticked every 5 seconds.
    +&nbsp;     *
    +&nbsp;     * @return a fifteen-minute EWMA
    +&nbsp;     */
    +&nbsp;    public static EWMA fifteenMinuteEWMA() {
    +<b class="fc">&nbsp;        return new EWMA(M15_ALPHA, INTERVAL, TimeUnit.SECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new EWMA with a specific smoothing constant.
    +&nbsp;     *
    +&nbsp;     * @param alpha        the smoothing constant
    +&nbsp;     * @param interval     the expected tick interval
    +&nbsp;     * @param intervalUnit the time unit of the tick interval
    +&nbsp;     */
    +<b class="fc">&nbsp;    public EWMA(double alpha, long interval, TimeUnit intervalUnit) {</b>
    +<b class="fc">&nbsp;        this.interval = intervalUnit.toNanos(interval);</b>
    +<b class="fc">&nbsp;        this.alpha = alpha;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Update the moving average with a new value.
    +&nbsp;     *
    +&nbsp;     * @param n the new value
    +&nbsp;     */
    +&nbsp;    public void update(long n) {
    +<b class="fc">&nbsp;        uncounted.add(n);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Mark the passage of time and decay the current rate accordingly.
    +&nbsp;     */
    +&nbsp;    public void tick() {
    +<b class="fc">&nbsp;        final long count = uncounted.sumThenReset();</b>
    +<b class="fc">&nbsp;        final double instantRate = count / interval;</b>
    +<b class="fc">&nbsp;        if (initialized) {</b>
    +<b class="fc">&nbsp;            final double oldRate = this.rate;</b>
    +<b class="fc">&nbsp;            rate = oldRate + (alpha * (instantRate - oldRate));</b>
    +<b class="fc">&nbsp;        } else {</b>
    +<b class="fc">&nbsp;            rate = instantRate;</b>
    +<b class="fc">&nbsp;            initialized = true;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the rate in the given units of time.
    +&nbsp;     *
    +&nbsp;     * @param rateUnit the unit of time
    +&nbsp;     * @return the rate
    +&nbsp;     */
    +&nbsp;    public double getRate(TimeUnit rateUnit) {
    +<b class="fc">&nbsp;        return rate * (double) rateUnit.toNanos(1);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-a.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-a.html
    new file mode 100644
    index 0000000000..8327ed74af
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-a.html
    @@ -0,0 +1,181 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ExponentialMovingAverages</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ExponentialMovingAverages (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ExponentialMovingAverages</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A triple (one, five and fifteen minutes) of exponentially-weighted moving average rates as needed by {@link Meter}.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * The rates have the same exponential decay factor as the fifteen-minute load average in the
    +&nbsp; * {@code top} Unix command.
    +&nbsp; */
    +&nbsp;public class ExponentialMovingAverages implements MovingAverages {
    +&nbsp;
    +<b class="fc">&nbsp;    private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(5);</b>
    +&nbsp;
    +<b class="fc">&nbsp;    private final EWMA m1Rate = EWMA.oneMinuteEWMA();</b>
    +<b class="fc">&nbsp;    private final EWMA m5Rate = EWMA.fiveMinuteEWMA();</b>
    +<b class="fc">&nbsp;    private final EWMA m15Rate = EWMA.fifteenMinuteEWMA();</b>
    +&nbsp;
    +&nbsp;    private final AtomicLong lastTick;
    +&nbsp;    private final Clock clock;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link ExponentialMovingAverages}.
    +&nbsp;     */
    +&nbsp;    public ExponentialMovingAverages() {
    +<b class="nc">&nbsp;        this(Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link ExponentialMovingAverages}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public ExponentialMovingAverages(Clock clock) {</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.lastTick = new AtomicLong(this.clock.getTick());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void update(long n) {
    +<b class="fc">&nbsp;        m1Rate.update(n);</b>
    +<b class="fc">&nbsp;        m5Rate.update(n);</b>
    +<b class="fc">&nbsp;        m15Rate.update(n);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void tickIfNecessary() {
    +<b class="fc">&nbsp;        final long oldTick = lastTick.get();</b>
    +<b class="fc">&nbsp;        final long newTick = clock.getTick();</b>
    +<b class="fc">&nbsp;        final long age = newTick - oldTick;</b>
    +<b class="fc">&nbsp;        if (age &gt; TICK_INTERVAL) {</b>
    +<b class="fc">&nbsp;            final long newIntervalStartTick = newTick - age % TICK_INTERVAL;</b>
    +<b class="fc">&nbsp;            if (lastTick.compareAndSet(oldTick, newIntervalStartTick)) {</b>
    +<b class="fc">&nbsp;                final long requiredTicks = age / TICK_INTERVAL;</b>
    +<b class="fc">&nbsp;                for (long i = 0; i &lt; requiredTicks; i++) {</b>
    +<b class="fc">&nbsp;                    m1Rate.tick();</b>
    +<b class="fc">&nbsp;                    m5Rate.tick();</b>
    +<b class="fc">&nbsp;                    m15Rate.tick();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getM1Rate() {
    +<b class="fc">&nbsp;        return m1Rate.getRate(TimeUnit.SECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getM5Rate() {
    +<b class="fc">&nbsp;        return m5Rate.getRate(TimeUnit.SECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getM15Rate() {
    +<b class="fc">&nbsp;        return m15Rate.getRate(TimeUnit.SECONDS);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-b.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-b.html
    new file mode 100644
    index 0000000000..33c77d7d70
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-b.html
    @@ -0,0 +1,311 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ExponentiallyDecayingReservoir</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ExponentiallyDecayingReservoir (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ExponentiallyDecayingReservoir</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.ConcurrentSkipListMap;
    +&nbsp;import java.util.concurrent.ThreadLocalRandom;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;import java.util.concurrent.locks.ReentrantReadWriteLock;
    +&nbsp;
    +&nbsp;import static java.lang.Math.exp;
    +&nbsp;import static java.lang.Math.min;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.WeightedSnapshot.WeightedSample;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al&#39;s
    +&nbsp; * forward-decaying priority reservoir sampling method to produce a statistically representative
    +&nbsp; * sampling reservoir, exponentially biased towards newer entries.
    +&nbsp; *
    +&nbsp; * @see &lt;a href=&quot;http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf&quot;&gt;
    +&nbsp; * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE &#39;09:
    +&nbsp; * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)&lt;/a&gt;
    +&nbsp; */
    +&nbsp;public class ExponentiallyDecayingReservoir implements Reservoir {
    +&nbsp;    private static final int DEFAULT_SIZE = 1028;
    +&nbsp;    private static final double DEFAULT_ALPHA = 0.015;
    +<b class="fc">&nbsp;    private static final long RESCALE_THRESHOLD = TimeUnit.HOURS.toNanos(1);</b>
    +&nbsp;
    +&nbsp;    private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    +&nbsp;    private final ReentrantReadWriteLock lock;
    +&nbsp;    private final double alpha;
    +&nbsp;    private final int size;
    +&nbsp;    private final AtomicLong count;
    +&nbsp;    private volatile long startTime;
    +&nbsp;    private final AtomicLong lastScaleTick;
    +&nbsp;    private final Clock clock;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link ExponentiallyDecayingReservoir} of 1028 elements, which offers a 99.9%
    +&nbsp;     * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
    +&nbsp;     * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
    +&nbsp;     */
    +&nbsp;    public ExponentiallyDecayingReservoir() {
    +<b class="fc">&nbsp;        this(DEFAULT_SIZE, DEFAULT_ALPHA);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link ExponentiallyDecayingReservoir}.
    +&nbsp;     *
    +&nbsp;     * @param size  the number of samples to keep in the sampling reservoir
    +&nbsp;     * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
    +&nbsp;     *              will be towards newer values
    +&nbsp;     */
    +&nbsp;    public ExponentiallyDecayingReservoir(int size, double alpha) {
    +<b class="fc">&nbsp;        this(size, alpha, Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link ExponentiallyDecayingReservoir}.
    +&nbsp;     *
    +&nbsp;     * @param size  the number of samples to keep in the sampling reservoir
    +&nbsp;     * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
    +&nbsp;     *              will be towards newer values
    +&nbsp;     * @param clock the clock used to timestamp samples and track rescaling
    +&nbsp;     */
    +<b class="fc">&nbsp;    public ExponentiallyDecayingReservoir(int size, double alpha, Clock clock) {</b>
    +<b class="fc">&nbsp;        this.values = new ConcurrentSkipListMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        this.lock = new ReentrantReadWriteLock();</b>
    +<b class="fc">&nbsp;        this.alpha = alpha;</b>
    +<b class="fc">&nbsp;        this.size = size;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.count = new AtomicLong(0);</b>
    +<b class="fc">&nbsp;        this.startTime = currentTimeInSeconds();</b>
    +<b class="fc">&nbsp;        this.lastScaleTick = new AtomicLong(clock.getTick());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int size() {
    +<b class="fc">&nbsp;        return (int) min(size, count.get());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void update(long value) {
    +<b class="fc">&nbsp;        update(value, currentTimeInSeconds());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Adds an old value with a fixed timestamp to the reservoir.
    +&nbsp;     *
    +&nbsp;     * @param value     the value to be added
    +&nbsp;     * @param timestamp the epoch timestamp of {@code value} in seconds
    +&nbsp;     */
    +&nbsp;    public void update(long value, long timestamp) {
    +<b class="fc">&nbsp;        rescaleIfNeeded();</b>
    +<b class="fc">&nbsp;        lockForRegularUsage();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            final double itemWeight = weight(timestamp - startTime);</b>
    +<b class="fc">&nbsp;            final WeightedSample sample = new WeightedSample(value, itemWeight);</b>
    +<b class="fc">&nbsp;            final double priority = itemWeight / ThreadLocalRandom.current().nextDouble();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final long newCount = count.incrementAndGet();</b>
    +<b class="fc">&nbsp;            if (newCount &lt;= size || values.isEmpty()) {</b>
    +<b class="fc">&nbsp;                values.put(priority, sample);</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                Double first = values.firstKey();</b>
    +<b class="fc">&nbsp;                if (first &lt; priority &amp;&amp; values.putIfAbsent(priority, sample) == null) {</b>
    +&nbsp;                    // ensure we always remove an item
    +<b class="fc">&nbsp;                    while (values.remove(first) == null) {</b>
    +<b class="nc">&nbsp;                        first = values.firstKey();</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            unlockForRegularUsage();</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void rescaleIfNeeded() {
    +<b class="fc">&nbsp;        final long now = clock.getTick();</b>
    +<b class="fc">&nbsp;        final long lastScaleTickSnapshot = lastScaleTick.get();</b>
    +<b class="fc">&nbsp;        if (now - lastScaleTickSnapshot &gt;= RESCALE_THRESHOLD) {</b>
    +<b class="fc">&nbsp;            rescale(now, lastScaleTickSnapshot);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Snapshot getSnapshot() {
    +<b class="fc">&nbsp;        rescaleIfNeeded();</b>
    +<b class="fc">&nbsp;        lockForRegularUsage();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return new WeightedSnapshot(values.values());</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            unlockForRegularUsage();</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private long currentTimeInSeconds() {
    +<b class="fc">&nbsp;        return TimeUnit.MILLISECONDS.toSeconds(clock.getTime());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private double weight(long t) {
    +<b class="fc">&nbsp;        return exp(alpha * t);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /* &quot;A common feature of the above techniques—indeed, the key technique that
    +&nbsp;     * allows us to track the decayed weights efficiently—is that they maintain
    +&nbsp;     * counts and other quantities based on g(ti ? L), and only scale by g(t ? L)
    +&nbsp;     * at query time. But while g(ti ?L)/g(t?L) is guaranteed to lie between zero
    +&nbsp;     * and one, the intermediate values of g(ti ? L) could become very large. For
    +&nbsp;     * polynomial functions, these values should not grow too large, and should be
    +&nbsp;     * effectively represented in practice by floating point values without loss of
    +&nbsp;     * precision. For exponential functions, these values could grow quite large as
    +&nbsp;     * new values of (ti ? L) become large, and potentially exceed the capacity of
    +&nbsp;     * common floating point types. However, since the values stored by the
    +&nbsp;     * algorithms are linear combinations of g values (scaled sums), they can be
    +&nbsp;     * rescaled relative to a new landmark. That is, by the analysis of exponential
    +&nbsp;     * decay in Section III-A, the choice of L does not affect the final result. We
    +&nbsp;     * can therefore multiply each value based on L by a factor of exp(??(L? ? L)),
    +&nbsp;     * and obtain the correct value as if we had instead computed relative to a new
    +&nbsp;     * landmark L? (and then use this new L? at query time). This can be done with
    +&nbsp;     * a linear pass over whatever data structure is being used.&quot;
    +&nbsp;     */
    +&nbsp;    private void rescale(long now, long lastTick) {
    +<b class="fc">&nbsp;        lockForRescale();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            if (lastScaleTick.compareAndSet(lastTick, now)) {</b>
    +<b class="fc">&nbsp;                final long oldStartTime = startTime;</b>
    +<b class="fc">&nbsp;                this.startTime = currentTimeInSeconds();</b>
    +<b class="fc">&nbsp;                final double scalingFactor = exp(-alpha * (startTime - oldStartTime));</b>
    +<b class="fc">&nbsp;                if (Double.compare(scalingFactor, 0) == 0) {</b>
    +<b class="fc">&nbsp;                    values.clear();</b>
    +&nbsp;                } else {
    +<b class="fc">&nbsp;                    final ArrayList&lt;Double&gt; keys = new ArrayList&lt;&gt;(values.keySet());</b>
    +<b class="fc">&nbsp;                    for (Double key : keys) {</b>
    +<b class="fc">&nbsp;                        final WeightedSample sample = values.remove(key);</b>
    +<b class="fc">&nbsp;                        final WeightedSample newSample = new WeightedSample(sample.value, sample.weight * scalingFactor);</b>
    +<b class="fc">&nbsp;                        if (Double.compare(newSample.weight, 0) == 0) {</b>
    +<b class="fc">&nbsp;                            continue;</b>
    +&nbsp;                        }
    +<b class="fc">&nbsp;                        values.put(key * scalingFactor, newSample);</b>
    +<b class="fc">&nbsp;                    }</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                // make sure the counter is in sync with the number of stored samples.
    +<b class="fc">&nbsp;                count.set(values.size());</b>
    +&nbsp;            }
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            unlockForRescale();</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void unlockForRescale() {
    +<b class="fc">&nbsp;        lock.writeLock().unlock();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void lockForRescale() {
    +<b class="fc">&nbsp;        lock.writeLock().lock();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void lockForRegularUsage() {
    +<b class="fc">&nbsp;        lock.readLock().lock();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void unlockForRegularUsage() {
    +<b class="fc">&nbsp;        lock.readLock().unlock();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-c.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-c.html
    new file mode 100644
    index 0000000000..7c114df673
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-c.html
    @@ -0,0 +1,125 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > FixedNameCsvFileProvider</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: FixedNameCsvFileProvider (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">FixedNameCsvFileProvider</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.io.File;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * This implementation of the {@link CsvFileProvider} will always return the same name
    +&nbsp; * for the same metric. This means the CSV file will grow indefinitely.
    +&nbsp; */
    +<b class="fc">&nbsp;public class FixedNameCsvFileProvider implements CsvFileProvider {</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public File getFile(File directory, String metricName) {
    +<b class="fc">&nbsp;        return new File(directory, sanitize(metricName) + &quot;.csv&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String sanitize(String metricName) {
    +&nbsp;        //Forward slash character is definitely illegal in both Windows and Linux
    +&nbsp;        //https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
    +<b class="fc">&nbsp;        return metricName.replaceFirst(&quot;^/&quot;, &quot;&quot;).replaceAll(&quot;/&quot;, &quot;.&quot;);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-d.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-d.html
    new file mode 100644
    index 0000000000..151120e4c1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-d.html
    @@ -0,0 +1,162 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Histogram</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Histogram (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Histogram</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.atomic.LongAdder;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A metric which calculates the distribution of a value.
    +&nbsp; *
    +&nbsp; * @see &lt;a href=&quot;http://www.johndcook.com/standard_deviation.html&quot;&gt;Accurately computing running
    +&nbsp; * variance&lt;/a&gt;
    +&nbsp; */
    +&nbsp;public class Histogram implements Metric, Sampling, Counting {
    +&nbsp;    private final Reservoir reservoir;
    +&nbsp;    private final LongAdder count;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link Histogram} with the given reservoir.
    +&nbsp;     *
    +&nbsp;     * @param reservoir the reservoir to create a histogram from
    +&nbsp;     */
    +<b class="fc">&nbsp;    public Histogram(Reservoir reservoir) {</b>
    +<b class="fc">&nbsp;        this.reservoir = reservoir;</b>
    +<b class="fc">&nbsp;        this.count = new LongAdder();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Adds a recorded value.
    +&nbsp;     *
    +&nbsp;     * @param value the length of the value
    +&nbsp;     */
    +&nbsp;    public void update(int value) {
    +<b class="fc">&nbsp;        update((long) value);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Adds a recorded value.
    +&nbsp;     *
    +&nbsp;     * @param value the length of the value
    +&nbsp;     */
    +&nbsp;    public void update(long value) {
    +<b class="fc">&nbsp;        count.increment();</b>
    +<b class="fc">&nbsp;        reservoir.update(value);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the number of values recorded.
    +&nbsp;     *
    +&nbsp;     * @return the number of values recorded
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public long getCount() {
    +<b class="fc">&nbsp;        return count.sum();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Snapshot getSnapshot() {
    +<b class="fc">&nbsp;        return reservoir.getSnapshot();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-e.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-e.html
    new file mode 100644
    index 0000000000..a61325b1f4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-e.html
    @@ -0,0 +1,390 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedExecutorService</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedExecutorService (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedExecutorService</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    38.9%
    +  </span>
    +  <span class="absValue">
    +    (7/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.7%
    +  </span>
    +  <span class="absValue">
    +    (42/67)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedExecutorService$InstrumentedCallable</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedExecutorService$InstrumentedRunnable</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.BlockingQueue;
    +&nbsp;import java.util.concurrent.Callable;
    +&nbsp;import java.util.concurrent.ExecutionException;
    +&nbsp;import java.util.concurrent.ExecutorService;
    +&nbsp;import java.util.concurrent.ForkJoinPool;
    +&nbsp;import java.util.concurrent.Future;
    +&nbsp;import java.util.concurrent.ThreadPoolExecutor;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.TimeoutException;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An {@link ExecutorService} that monitors the number of tasks submitted, running,
    +&nbsp; * completed and also keeps a {@link Timer} for the task duration.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    +&nbsp; * &quot;your-executor-service.submitted&quot;, &quot;your-executor-service.running&quot;, etc.
    +&nbsp; */
    +<b class="fc">&nbsp;public class InstrumentedExecutorService implements ExecutorService {</b>
    +<b class="fc">&nbsp;    private static final AtomicLong NAME_COUNTER = new AtomicLong();</b>
    +&nbsp;
    +&nbsp;    private final ExecutorService delegate;
    +&nbsp;    private final Meter submitted;
    +&nbsp;    private final Counter running;
    +&nbsp;    private final Meter completed;
    +&nbsp;    private final Timer idle;
    +&nbsp;    private final Timer duration;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Wraps an {@link ExecutorService} uses an auto-generated default name.
    +&nbsp;     *
    +&nbsp;     * @param delegate {@link ExecutorService} to wrap.
    +&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    +&nbsp;     */
    +&nbsp;    public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(delegate, registry, &quot;instrumented-delegate-&quot; + NAME_COUNTER.incrementAndGet());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Wraps an {@link ExecutorService} with an explicit name.
    +&nbsp;     *
    +&nbsp;     * @param delegate {@link ExecutorService} to wrap.
    +&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    +&nbsp;     * @param name     name for this executor service.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry, String name) {</b>
    +<b class="fc">&nbsp;        this.delegate = delegate;</b>
    +<b class="fc">&nbsp;        this.submitted = registry.meter(MetricRegistry.name(name, &quot;submitted&quot;));</b>
    +<b class="fc">&nbsp;        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</b>
    +<b class="fc">&nbsp;        this.completed = registry.meter(MetricRegistry.name(name, &quot;completed&quot;));</b>
    +<b class="fc">&nbsp;        this.idle = registry.timer(MetricRegistry.name(name, &quot;idle&quot;));</b>
    +<b class="fc">&nbsp;        this.duration = registry.timer(MetricRegistry.name(name, &quot;duration&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (delegate instanceof ThreadPoolExecutor) {</b>
    +<b class="fc">&nbsp;            ThreadPoolExecutor executor = (ThreadPoolExecutor) delegate;</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;pool.size&quot;),</b>
    +<b class="fc">&nbsp;                    executor::getPoolSize);</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;pool.core&quot;),</b>
    +<b class="fc">&nbsp;                    executor::getCorePoolSize);</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;pool.max&quot;),</b>
    +<b class="fc">&nbsp;                    executor::getMaximumPoolSize);</b>
    +<b class="fc">&nbsp;            final BlockingQueue&lt;Runnable&gt; queue = executor.getQueue();</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.active&quot;),</b>
    +<b class="fc">&nbsp;                    executor::getActiveCount);</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.completed&quot;),</b>
    +<b class="fc">&nbsp;                    executor::getCompletedTaskCount);</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.queued&quot;),</b>
    +<b class="fc">&nbsp;                    queue::size);</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.capacity&quot;),</b>
    +<b class="fc">&nbsp;                    queue::remainingCapacity);</b>
    +<b class="fc">&nbsp;        } else if (delegate instanceof ForkJoinPool) {</b>
    +<b class="fc">&nbsp;            ForkJoinPool forkJoinPool = (ForkJoinPool) delegate;</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.stolen&quot;),</b>
    +<b class="fc">&nbsp;                    forkJoinPool::getStealCount);</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.queued&quot;),</b>
    +<b class="fc">&nbsp;                    forkJoinPool::getQueuedTaskCount);</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;threads.active&quot;),</b>
    +<b class="fc">&nbsp;                    forkJoinPool::getActiveThreadCount);</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;threads.running&quot;),</b>
    +<b class="fc">&nbsp;                    forkJoinPool::getRunningThreadCount);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void execute(Runnable runnable) {
    +<b class="nc">&nbsp;        submitted.mark();</b>
    +<b class="nc">&nbsp;        delegate.execute(new InstrumentedRunnable(runnable));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Future&lt;?&gt; submit(Runnable runnable) {
    +<b class="fc">&nbsp;        submitted.mark();</b>
    +<b class="fc">&nbsp;        return delegate.submit(new InstrumentedRunnable(runnable));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Runnable runnable, T result) {
    +<b class="nc">&nbsp;        submitted.mark();</b>
    +<b class="nc">&nbsp;        return delegate.submit(new InstrumentedRunnable(runnable), result);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Callable&lt;T&gt; task) {
    +<b class="fc">&nbsp;        submitted.mark();</b>
    +<b class="fc">&nbsp;        return delegate.submit(new InstrumentedCallable&lt;&gt;(task));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException {
    +<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    +<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    +<b class="nc">&nbsp;        return delegate.invokeAll(instrumented);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException {
    +<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    +<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    +<b class="nc">&nbsp;        return delegate.invokeAll(instrumented, timeout, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws ExecutionException, InterruptedException {
    +<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    +<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    +<b class="nc">&nbsp;        return delegate.invokeAny(instrumented);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws ExecutionException, InterruptedException, TimeoutException {
    +<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    +<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    +<b class="nc">&nbsp;        return delegate.invokeAny(instrumented, timeout, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private &lt;T&gt; Collection&lt;? extends Callable&lt;T&gt;&gt; instrument(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) {
    +<b class="nc">&nbsp;        final List&lt;InstrumentedCallable&lt;T&gt;&gt; instrumented = new ArrayList&lt;&gt;(tasks.size());</b>
    +<b class="nc">&nbsp;        for (Callable&lt;T&gt; task : tasks) {</b>
    +<b class="nc">&nbsp;            instrumented.add(new InstrumentedCallable&lt;&gt;(task));</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return instrumented;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void shutdown() {
    +<b class="fc">&nbsp;        delegate.shutdown();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public List&lt;Runnable&gt; shutdownNow() {
    +<b class="nc">&nbsp;        return delegate.shutdownNow();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public boolean isShutdown() {
    +<b class="nc">&nbsp;        return delegate.isShutdown();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public boolean isTerminated() {
    +<b class="nc">&nbsp;        return delegate.isTerminated();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public boolean awaitTermination(long l, TimeUnit timeUnit) throws InterruptedException {
    +<b class="fc">&nbsp;        return delegate.awaitTermination(l, timeUnit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class InstrumentedRunnable implements Runnable {
    +&nbsp;        private final Runnable task;
    +&nbsp;        private final Timer.Context idleContext;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedRunnable(Runnable task) {</b>
    +<b class="fc">&nbsp;            this.task = task;</b>
    +<b class="fc">&nbsp;            this.idleContext = idle.time();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void run() {
    +<b class="fc">&nbsp;            idleContext.stop();</b>
    +<b class="fc">&nbsp;            running.inc();</b>
    +<b class="fc">&nbsp;            try (Timer.Context durationContext = duration.time()) {</b>
    +<b class="fc">&nbsp;                task.run();</b>
    +<b class="fc">&nbsp;            } finally {</b>
    +<b class="fc">&nbsp;                running.dec();</b>
    +<b class="fc">&nbsp;                completed.mark();</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class InstrumentedCallable&lt;T&gt; implements Callable&lt;T&gt; {
    +&nbsp;        private final Callable&lt;T&gt; callable;
    +&nbsp;        private final Timer.Context idleContext;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedCallable(Callable&lt;T&gt; callable) {</b>
    +<b class="fc">&nbsp;            this.callable = callable;</b>
    +<b class="fc">&nbsp;            this.idleContext = idle.time();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public T call() throws Exception {
    +<b class="fc">&nbsp;            idleContext.stop();</b>
    +<b class="fc">&nbsp;            running.inc();</b>
    +<b class="fc">&nbsp;            try (Timer.Context context = duration.time()) {</b>
    +<b class="fc">&nbsp;                return callable.call();</b>
    +<b class="fc">&nbsp;            } finally {</b>
    +<b class="fc">&nbsp;                running.dec();</b>
    +<b class="fc">&nbsp;                completed.mark();</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-f.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-f.html
    new file mode 100644
    index 0000000000..e9d927c103
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-f.html
    @@ -0,0 +1,465 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedScheduledExecutorService</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedScheduledExecutorService (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedScheduledExecutorService</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    51%
    +  </span>
    +  <span class="absValue">
    +    (26/51)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedScheduledExecutorService$InstrumentedCallable</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedScheduledExecutorService$InstrumentedPeriodicRunnable</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedScheduledExecutorService$InstrumentedRunnable</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.Callable;
    +&nbsp;import java.util.concurrent.ExecutionException;
    +&nbsp;import java.util.concurrent.Future;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.ScheduledFuture;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.TimeoutException;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An {@link ScheduledExecutorService} that monitors the number of tasks submitted, running,
    +&nbsp; * completed and also keeps a {@link Timer} for the task duration.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    +&nbsp; * &quot;your-executor-service.submitted&quot;, &quot;your-executor-service.running&quot;, etc.
    +&nbsp; */
    +<b class="fc">&nbsp;public class InstrumentedScheduledExecutorService implements ScheduledExecutorService {</b>
    +<b class="fc">&nbsp;    private static final AtomicLong NAME_COUNTER = new AtomicLong();</b>
    +&nbsp;
    +&nbsp;    private final ScheduledExecutorService delegate;
    +&nbsp;
    +&nbsp;    private final Meter submitted;
    +&nbsp;    private final Counter running;
    +&nbsp;    private final Meter completed;
    +&nbsp;    private final Timer duration;
    +&nbsp;
    +&nbsp;    private final Meter scheduledOnce;
    +&nbsp;    private final Meter scheduledRepetitively;
    +&nbsp;    private final Counter scheduledOverrun;
    +&nbsp;    private final Histogram percentOfPeriod;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Wraps an {@link ScheduledExecutorService} uses an auto-generated default name.
    +&nbsp;     *
    +&nbsp;     * @param delegate {@link ScheduledExecutorService} to wrap.
    +&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    +&nbsp;     */
    +&nbsp;    public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(delegate, registry, &quot;instrumented-scheduled-executor-service-&quot; + NAME_COUNTER.incrementAndGet());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Wraps an {@link ScheduledExecutorService} with an explicit name.
    +&nbsp;     *
    +&nbsp;     * @param delegate {@link ScheduledExecutorService} to wrap.
    +&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    +&nbsp;     * @param name     name for this executor service.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry, String name) {</b>
    +<b class="fc">&nbsp;        this.delegate = delegate;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.submitted = registry.meter(MetricRegistry.name(name, &quot;submitted&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</b>
    +<b class="fc">&nbsp;        this.completed = registry.meter(MetricRegistry.name(name, &quot;completed&quot;));</b>
    +<b class="fc">&nbsp;        this.duration = registry.timer(MetricRegistry.name(name, &quot;duration&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.scheduledOnce = registry.meter(MetricRegistry.name(name, &quot;scheduled.once&quot;));</b>
    +<b class="fc">&nbsp;        this.scheduledRepetitively = registry.meter(MetricRegistry.name(name, &quot;scheduled.repetitively&quot;));</b>
    +<b class="fc">&nbsp;        this.scheduledOverrun = registry.counter(MetricRegistry.name(name, &quot;scheduled.overrun&quot;));</b>
    +<b class="fc">&nbsp;        this.percentOfPeriod = registry.histogram(MetricRegistry.name(name, &quot;scheduled.percent-of-period&quot;));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public ScheduledFuture&lt;?&gt; schedule(Runnable command, long delay, TimeUnit unit) {
    +<b class="fc">&nbsp;        scheduledOnce.mark();</b>
    +<b class="fc">&nbsp;        return delegate.schedule(new InstrumentedRunnable(command), delay, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;V&gt; ScheduledFuture&lt;V&gt; schedule(Callable&lt;V&gt; callable, long delay, TimeUnit unit) {
    +<b class="fc">&nbsp;        scheduledOnce.mark();</b>
    +<b class="fc">&nbsp;        return delegate.schedule(new InstrumentedCallable&lt;&gt;(callable), delay, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public ScheduledFuture&lt;?&gt; scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) {
    +<b class="fc">&nbsp;        scheduledRepetitively.mark();</b>
    +<b class="fc">&nbsp;        return delegate.scheduleAtFixedRate(new InstrumentedPeriodicRunnable(command, period, unit), initialDelay, period, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public ScheduledFuture&lt;?&gt; scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) {
    +<b class="fc">&nbsp;        scheduledRepetitively.mark();</b>
    +<b class="fc">&nbsp;        return delegate.scheduleWithFixedDelay(new InstrumentedRunnable(command), initialDelay, delay, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void shutdown() {
    +<b class="fc">&nbsp;        delegate.shutdown();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public List&lt;Runnable&gt; shutdownNow() {
    +<b class="nc">&nbsp;        return delegate.shutdownNow();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public boolean isShutdown() {
    +<b class="nc">&nbsp;        return delegate.isShutdown();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public boolean isTerminated() {
    +<b class="nc">&nbsp;        return delegate.isTerminated();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {
    +<b class="fc">&nbsp;        return delegate.awaitTermination(timeout, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Callable&lt;T&gt; task) {
    +<b class="fc">&nbsp;        submitted.mark();</b>
    +<b class="fc">&nbsp;        return delegate.submit(new InstrumentedCallable&lt;&gt;(task));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Runnable task, T result) {
    +<b class="nc">&nbsp;        submitted.mark();</b>
    +<b class="nc">&nbsp;        return delegate.submit(new InstrumentedRunnable(task), result);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Future&lt;?&gt; submit(Runnable task) {
    +<b class="fc">&nbsp;        submitted.mark();</b>
    +<b class="fc">&nbsp;        return delegate.submit(new InstrumentedRunnable(task));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException {
    +<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    +<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    +<b class="nc">&nbsp;        return delegate.invokeAll(instrumented);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException {
    +<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    +<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    +<b class="nc">&nbsp;        return delegate.invokeAll(instrumented, timeout, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException, ExecutionException {
    +<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    +<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    +<b class="nc">&nbsp;        return delegate.invokeAny(instrumented);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
    +<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    +<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    +<b class="nc">&nbsp;        return delegate.invokeAny(instrumented, timeout, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private &lt;T&gt; Collection&lt;? extends Callable&lt;T&gt;&gt; instrument(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) {
    +<b class="nc">&nbsp;        final List&lt;InstrumentedCallable&lt;T&gt;&gt; instrumented = new ArrayList&lt;&gt;(tasks.size());</b>
    +<b class="nc">&nbsp;        for (Callable&lt;T&gt; task : tasks) {</b>
    +<b class="nc">&nbsp;            instrumented.add(new InstrumentedCallable&lt;&gt;(task));</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return instrumented;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void execute(Runnable command) {
    +<b class="nc">&nbsp;        submitted.mark();</b>
    +<b class="nc">&nbsp;        delegate.execute(new InstrumentedRunnable(command));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class InstrumentedRunnable implements Runnable {
    +&nbsp;        private final Runnable command;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedRunnable(Runnable command) {</b>
    +<b class="fc">&nbsp;            this.command = command;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void run() {
    +<b class="fc">&nbsp;            running.inc();</b>
    +<b class="fc">&nbsp;            final Timer.Context context = duration.time();</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                command.run();</b>
    +&nbsp;            } finally {
    +<b class="fc">&nbsp;                context.stop();</b>
    +<b class="fc">&nbsp;                running.dec();</b>
    +<b class="fc">&nbsp;                completed.mark();</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class InstrumentedPeriodicRunnable implements Runnable {
    +&nbsp;        private final Runnable command;
    +&nbsp;        private final long periodInNanos;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedPeriodicRunnable(Runnable command, long period, TimeUnit unit) {</b>
    +<b class="fc">&nbsp;            this.command = command;</b>
    +<b class="fc">&nbsp;            this.periodInNanos = unit.toNanos(period);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void run() {
    +<b class="fc">&nbsp;            running.inc();</b>
    +<b class="fc">&nbsp;            final Timer.Context context = duration.time();</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                command.run();</b>
    +&nbsp;            } finally {
    +<b class="fc">&nbsp;                final long elapsed = context.stop();</b>
    +<b class="fc">&nbsp;                running.dec();</b>
    +<b class="fc">&nbsp;                completed.mark();</b>
    +<b class="fc">&nbsp;                if (elapsed &gt; periodInNanos) {</b>
    +<b class="fc">&nbsp;                    scheduledOverrun.inc();</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                percentOfPeriod.update((100L * elapsed) / periodInNanos);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class InstrumentedCallable&lt;T&gt; implements Callable&lt;T&gt; {
    +&nbsp;        private final Callable&lt;T&gt; task;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedCallable(Callable&lt;T&gt; task) {</b>
    +<b class="fc">&nbsp;            this.task = task;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public T call() throws Exception {
    +<b class="fc">&nbsp;            running.inc();</b>
    +<b class="fc">&nbsp;            final Timer.Context context = duration.time();</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                return task.call();</b>
    +&nbsp;            } finally {
    +<b class="fc">&nbsp;                context.stop();</b>
    +<b class="fc">&nbsp;                running.dec();</b>
    +<b class="fc">&nbsp;                completed.mark();</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index.html
    new file mode 100644
    index 0000000000..343588b639
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..7220ae3bf8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..c8cd194496
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..ae2523575f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..6ff1d6c9e5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..6357c01b10
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..43662a41e1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..9e0eb0d288
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..dccf4a463f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..f4f46fdb48
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-1.html
    new file mode 100644
    index 0000000000..51ca90aa51
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-1.html
    @@ -0,0 +1,112 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > BasicSqlNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">BasicSqlNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;    public BasicSqlNameStrategy() {
    +<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    +&nbsp;                NameStrategies.SQL_OBJECT);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-2.html
    new file mode 100644
    index 0000000000..20a34027a2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-2.html
    @@ -0,0 +1,119 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ContextNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ContextNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ContextNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_GROUP} and {@link
    +&nbsp; * NameStrategies#STATEMENT_NAME} for group based display.
    +&nbsp; */
    +&nbsp;public class ContextNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;    public ContextNameStrategy() {
    +<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    +&nbsp;                NameStrategies.CHECK_RAW,
    +&nbsp;                NameStrategies.CONTEXT_NAME,
    +&nbsp;                NameStrategies.NAIVE_NAME);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-3.html
    new file mode 100644
    index 0000000000..4725db5da8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-3.html
    @@ -0,0 +1,135 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > DelegatingStatementNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">DelegatingStatementNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;import org.skife.jdbi.v2.StatementContext;
    +&nbsp;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.List;
    +&nbsp;
    +&nbsp;public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
    +<b class="fc">&nbsp;    private final List&lt;StatementNameStrategy&gt; strategies = new ArrayList&lt;&gt;();</b>
    +&nbsp;
    +<b class="fc">&nbsp;    protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {</b>
    +<b class="fc">&nbsp;        registerStrategies(strategies);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void registerStrategies(StatementNameStrategy... strategies) {
    +<b class="fc">&nbsp;        this.strategies.addAll(Arrays.asList(strategies));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;        for (StatementNameStrategy strategy : strategies) {</b>
    +<b class="fc">&nbsp;            final String statementName = strategy.getStatementName(statementContext);</b>
    +<b class="fc">&nbsp;            if (statementName != null) {</b>
    +<b class="fc">&nbsp;                return statementName;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="nc">&nbsp;        return NameStrategies.UNKNOWN_SQL;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-4.html
    new file mode 100644
    index 0000000000..25a0687117
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-4.html
    @@ -0,0 +1,116 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > NaiveNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">NaiveNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Very simple strategy, can be used with any JDBI loader to build basic statistics.
    +&nbsp; */
    +&nbsp;public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;    public NaiveNameStrategy() {
    +<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    +&nbsp;                NameStrategies.CHECK_RAW,
    +&nbsp;                NameStrategies.NAIVE_NAME);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-5.html
    new file mode 100644
    index 0000000000..13075d2bdc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-5.html
    @@ -0,0 +1,422 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > NameStrategies</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: NameStrategies (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">NameStrategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">NameStrategies$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NameStrategies$CheckEmptyStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NameStrategies$CheckRawStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NameStrategies$ContextClassStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (12/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NameStrategies$ContextNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NameStrategies$NaiveNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NameStrategies$SqlObjectStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;import org.skife.jdbi.v2.ClasspathStatementLocator;
    +&nbsp;import org.skife.jdbi.v2.StatementContext;
    +&nbsp;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;import java.util.regex.Matcher;
    +&nbsp;import java.util.regex.Pattern;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +<b class="fc">&nbsp;public final class NameStrategies {</b>
    +<b class="fc">&nbsp;    public static final StatementNameStrategy CHECK_EMPTY = new CheckEmptyStrategy();</b>
    +<b class="fc">&nbsp;    public static final StatementNameStrategy CHECK_RAW = new CheckRawStrategy();</b>
    +<b class="fc">&nbsp;    public static final StatementNameStrategy SQL_OBJECT = new SqlObjectStrategy();</b>
    +<b class="fc">&nbsp;    public static final StatementNameStrategy NAIVE_NAME = new NaiveNameStrategy();</b>
    +<b class="fc">&nbsp;    public static final StatementNameStrategy CONTEXT_CLASS = new ContextClassStrategy();</b>
    +<b class="fc">&nbsp;    public static final StatementNameStrategy CONTEXT_NAME = new ContextNameStrategy();</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * An empty SQL statement.
    +&nbsp;     */
    +&nbsp;    private static final String EMPTY_SQL = &quot;sql.empty&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Unknown SQL.
    +&nbsp;     */
    +&nbsp;    static final String UNKNOWN_SQL = &quot;sql.unknown&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Context attribute name for the metric class.
    +&nbsp;     */
    +&nbsp;    public static final String STATEMENT_CLASS = &quot;_metric_class&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Context attribute name for the metric group.
    +&nbsp;     */
    +&nbsp;    public static final String STATEMENT_GROUP = &quot;_metric_group&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Context attribute name for the metric type.
    +&nbsp;     */
    +&nbsp;    public static final String STATEMENT_TYPE = &quot;_metric_type&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Context attribute name for the metric name.
    +&nbsp;     */
    +&nbsp;    public static final String STATEMENT_NAME = &quot;_metric_name&quot;;
    +&nbsp;
    +&nbsp;    private static String forRawSql(String rawSql) {
    +<b class="fc">&nbsp;        return name(&quot;sql&quot;, &quot;raw&quot;, rawSql);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class CheckEmptyStrategy implements StatementNameStrategy {</b>
    +<b class="fc">&nbsp;        private CheckEmptyStrategy() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (rawSql == null || rawSql.length() == 0) {</b>
    +<b class="fc">&nbsp;                return EMPTY_SQL;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class CheckRawStrategy implements StatementNameStrategy {</b>
    +<b class="fc">&nbsp;        private CheckRawStrategy() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (ClasspathStatementLocator.looksLikeSql(rawSql)) {</b>
    +<b class="fc">&nbsp;                return forRawSql(rawSql);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class NaiveNameStrategy implements StatementNameStrategy {</b>
    +<b class="fc">&nbsp;        private NaiveNameStrategy() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    +&nbsp;
    +&nbsp;            // Is it using the template loader?
    +<b class="fc">&nbsp;            final int colon = rawSql.indexOf(&#39;:&#39;);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (colon == -1) {</b>
    +&nbsp;                // No package? Just return the name, JDBI figured out somehow on how to find the raw sql for this statement.
    +<b class="fc">&nbsp;                return forRawSql(rawSql);</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            final String group = rawSql.substring(0, colon);</b>
    +<b class="nc">&nbsp;            final String name = rawSql.substring(colon + 1);</b>
    +<b class="nc">&nbsp;            return name(group, name);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class SqlObjectStrategy implements StatementNameStrategy {</b>
    +<b class="fc">&nbsp;        private SqlObjectStrategy() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final Class&lt;?&gt; clazz = statementContext.getSqlObjectType();</b>
    +<b class="fc">&nbsp;            final Method method = statementContext.getSqlObjectMethod();</b>
    +<b class="fc">&nbsp;            if (clazz != null) {</b>
    +<b class="fc">&nbsp;                final String rawSql = statementContext.getRawSql();</b>
    +&nbsp;
    +<b class="fc">&nbsp;                final String group = clazz.getPackage().getName();</b>
    +<b class="fc">&nbsp;                final String name = clazz.getSimpleName();</b>
    +<b class="fc">&nbsp;                final String type = method == null ? rawSql : method.getName();</b>
    +<b class="fc">&nbsp;                return name(group, name, type);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class ContextClassStrategy implements StatementNameStrategy {</b>
    +<b class="fc">&nbsp;        private ContextClassStrategy() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final Object classObj = statementContext.getAttribute(STATEMENT_CLASS);</b>
    +<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (classObj == null || nameObj == null) {</b>
    +<b class="fc">&nbsp;                return null;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            final String className = (String) classObj;</b>
    +<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    +<b class="fc">&nbsp;            if (dotPos == -1) {</b>
    +<b class="nc">&nbsp;                return null;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            return name(className.substring(0, dotPos),</b>
    +<b class="fc">&nbsp;                    className.substring(dotPos + 1),</b>
    +&nbsp;                    statementName);
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class ContextNameStrategy implements StatementNameStrategy {</b>
    +&nbsp;        /**
    +&nbsp;         * File pattern to shorten the group name.
    +&nbsp;         */
    +<b class="fc">&nbsp;        private static final Pattern SHORT_PATTERN = Pattern.compile(&quot;^(.*?)/(.*?)(-sql)?\\.st(g)?$&quot;);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        private ContextNameStrategy() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final Object groupObj = statementContext.getAttribute(STATEMENT_GROUP);</b>
    +<b class="fc">&nbsp;            final Object typeObj = statementContext.getAttribute(STATEMENT_TYPE);</b>
    +<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (groupObj == null || nameObj == null) {</b>
    +<b class="fc">&nbsp;                return null;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            final String group = (String) groupObj;</b>
    +<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (typeObj == null) {</b>
    +<b class="fc">&nbsp;                final Matcher matcher = SHORT_PATTERN.matcher(group);</b>
    +<b class="fc">&nbsp;                if (matcher.matches()) {</b>
    +<b class="fc">&nbsp;                    final String groupName = matcher.group(1);</b>
    +<b class="fc">&nbsp;                    final String typeName = matcher.group(2);</b>
    +<b class="fc">&nbsp;                    return name(groupName, typeName, statementName);</b>
    +&nbsp;                }
    +&nbsp;
    +<b class="fc">&nbsp;                return name(group, statementName, &quot;&quot;);</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                final String type = (String) typeObj;</b>
    +&nbsp;
    +<b class="fc">&nbsp;                return name(group, type, statementName);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private NameStrategies() {
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-6.html
    new file mode 100644
    index 0000000000..302010d737
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-6.html
    @@ -0,0 +1,239 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ShortNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ShortNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ShortNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">ShortNameStrategy$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">ShortNameStrategy$ShortContextClassStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (13/15)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">ShortNameStrategy$ShortSqlObjectStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;import org.skife.jdbi.v2.StatementContext;
    +&nbsp;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Assembles all JDBI stats under a common prefix (passed in at constructor time). Stats are grouped
    +&nbsp; * by class name and method; a shortening strategy is applied to make the JMX output nicer.
    +&nbsp; */
    +<b class="fc">&nbsp;public final class ShortNameStrategy extends DelegatingStatementNameStrategy {</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;String, String&gt; shortClassNames = new ConcurrentHashMap&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    private final String baseJmxName;
    +&nbsp;
    +<b class="fc">&nbsp;    public ShortNameStrategy(String baseJmxName) {</b>
    +<b class="fc">&nbsp;        this.baseJmxName = baseJmxName;</b>
    +&nbsp;
    +&nbsp;        // Java does not allow super (..., new ShortContextClassStrategy(), new ShortSqlObjectStrategy(), ...);
    +&nbsp;        // ==&gt; No enclosing instance of type &lt;xxx&gt; is available due to some intermediate constructor invocation. Lame.
    +<b class="fc">&nbsp;        registerStrategies(NameStrategies.CHECK_EMPTY,</b>
    +&nbsp;                new ShortContextClassStrategy(),
    +&nbsp;                new ShortSqlObjectStrategy(),
    +&nbsp;                NameStrategies.CHECK_RAW,
    +&nbsp;                NameStrategies.NAIVE_NAME);
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private final class ShortContextClassStrategy implements StatementNameStrategy {</b>
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final Object classObj = statementContext.getAttribute(NameStrategies.STATEMENT_CLASS);</b>
    +<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(NameStrategies.STATEMENT_NAME);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (classObj == null || nameObj == null) {</b>
    +<b class="fc">&nbsp;                return null;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            final String className = (String) classObj;</b>
    +<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    +<b class="fc">&nbsp;            if (dotPos == -1) {</b>
    +<b class="nc">&nbsp;                return null;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            final String shortName = className.substring(dotPos + 1);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final String oldClassName = shortClassNames.putIfAbsent(shortName, className);</b>
    +<b class="fc">&nbsp;            if (oldClassName == null || oldClassName.equals(className)) {</b>
    +<b class="fc">&nbsp;                return name(baseJmxName, shortName, statementName);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                return name(baseJmxName, className, statementName);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private final class ShortSqlObjectStrategy implements StatementNameStrategy {</b>
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final Class&lt;?&gt; clazz = statementContext.getSqlObjectType();</b>
    +<b class="fc">&nbsp;            final Method method = statementContext.getSqlObjectMethod();</b>
    +<b class="fc">&nbsp;            if (clazz != null &amp;&amp; method != null) {</b>
    +<b class="fc">&nbsp;                final String className = clazz.getName();</b>
    +<b class="fc">&nbsp;                final String statementName = method.getName();</b>
    +&nbsp;
    +<b class="fc">&nbsp;                final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    +<b class="fc">&nbsp;                if (dotPos == -1) {</b>
    +<b class="nc">&nbsp;                    return null;</b>
    +&nbsp;                }
    +&nbsp;
    +<b class="fc">&nbsp;                final String shortName = className.substring(dotPos + 1);</b>
    +&nbsp;
    +<b class="fc">&nbsp;                final String oldClassName = shortClassNames.putIfAbsent(shortName, className);</b>
    +<b class="fc">&nbsp;                if (oldClassName == null || oldClassName.equals(className)) {</b>
    +<b class="fc">&nbsp;                    return name(baseJmxName, shortName, statementName);</b>
    +&nbsp;                } else {
    +<b class="nc">&nbsp;                    return name(baseJmxName, className, statementName);</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-7.html
    new file mode 100644
    index 0000000000..1281dd6b47
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-7.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SmartNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SmartNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_CLASS} and {@link
    +&nbsp; * NameStrategies#STATEMENT_NAME} for class based display or {@link NameStrategies#STATEMENT_GROUP}
    +&nbsp; * and {@link NameStrategies#STATEMENT_NAME} for group based display.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Also knows how to deal with SQL Object statements.
    +&nbsp; */
    +&nbsp;public class SmartNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;    public SmartNameStrategy() {
    +<b class="fc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    +&nbsp;                NameStrategies.CONTEXT_CLASS,
    +&nbsp;                NameStrategies.CONTEXT_NAME,
    +&nbsp;                NameStrategies.SQL_OBJECT,
    +&nbsp;                NameStrategies.CHECK_RAW,
    +&nbsp;                NameStrategies.NAIVE_NAME);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-8.html
    new file mode 100644
    index 0000000000..3d76eb79c1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-8.html
    @@ -0,0 +1,78 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > StatementNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">StatementNameStrategy</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;import org.skife.jdbi.v2.StatementContext;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Interface for strategies to statement contexts to metric names.
    +&nbsp; */
    +&nbsp;public interface StatementNameStrategy {
    +&nbsp;    String getStatementName(StatementContext statementContext);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index.html
    new file mode 100644
    index 0000000000..01336ed03e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..f43faeca8a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..dbc4fbd19e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..8aea9d4819
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..97a225e8be
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..319deadc00
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..8795e4c37f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..7d83d66257
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..8817445f9f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..7662b67ee3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-1.html
    new file mode 100644
    index 0000000000..d36f0d31ea
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-1.html
    @@ -0,0 +1,152 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedSqlLogger</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedSqlLogger (com.codahale.metrics.jdbi3)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedSqlLogger</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
    +&nbsp;import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
    +&nbsp;import org.jdbi.v3.core.statement.SqlLogger;
    +&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    +&nbsp;
    +&nbsp;import java.sql.SQLException;
    +&nbsp;import java.time.temporal.ChronoUnit;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link SqlLogger} implementation for JDBI which uses the SQL objects&#39; class names and
    +&nbsp; * method names for nanosecond-precision timers.
    +&nbsp; */
    +&nbsp;public class InstrumentedSqlLogger implements SqlLogger {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final StatementNameStrategy statementNameStrategy;
    +&nbsp;
    +&nbsp;    public InstrumentedSqlLogger(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedSqlLogger(MetricRegistry registry,
    +<b class="fc">&nbsp;                                 StatementNameStrategy statementNameStrategy) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void logAfterExecution(StatementContext context) {
    +<b class="fc">&nbsp;        log(context);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void logException(StatementContext context, SQLException ex) {
    +<b class="fc">&nbsp;        log(context);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void log(StatementContext context) {
    +<b class="fc">&nbsp;        String statementName = statementNameStrategy.getStatementName(context);</b>
    +<b class="fc">&nbsp;        if (statementName != null) {</b>
    +<b class="fc">&nbsp;            final long elapsed = context.getElapsedTime(ChronoUnit.NANOS);</b>
    +<b class="fc">&nbsp;            registry.timer(statementName).update(elapsed, TimeUnit.NANOSECONDS);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-2.html
    new file mode 100644
    index 0000000000..2ec64a4d76
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-2.html
    @@ -0,0 +1,145 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedTimingCollector</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi3)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedTimingCollector</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
    +&nbsp;import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
    +&nbsp;import org.jdbi.v3.core.statement.SqlLogger;
    +&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    +&nbsp;import org.jdbi.v3.core.statement.TimingCollector;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link TimingCollector} implementation for JDBI which uses the SQL objects&#39; class names and
    +&nbsp; * method names for millisecond-precision timers.
    +&nbsp; *
    +&nbsp; * @deprecated Use {@link InstrumentedSqlLogger} and {@link org.jdbi.v3.core.Jdbi#setSqlLogger(SqlLogger)} instead.
    +&nbsp; */
    +&nbsp;@Deprecated
    +&nbsp;public class InstrumentedTimingCollector implements TimingCollector {
    +&nbsp;
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final StatementNameStrategy statementNameStrategy;
    +&nbsp;
    +&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry,
    +<b class="fc">&nbsp;                                       StatementNameStrategy statementNameStrategy) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void collect(long elapsedTime, StatementContext ctx) {
    +<b class="fc">&nbsp;        String statementName = statementNameStrategy.getStatementName(ctx);</b>
    +<b class="fc">&nbsp;        if (statementName != null) {</b>
    +<b class="fc">&nbsp;            registry.timer(statementName).update(elapsedTime, TimeUnit.NANOSECONDS);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index.html
    new file mode 100644
    index 0000000000..643a2240cc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..73ac4ee683
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..34b9b660a9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..7d6b0adfa7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..d183f3a19b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..78e7052298
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..c833bef2f5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..aa652a8a4e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..0817c944c1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..c134c79bc6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-1.html
    new file mode 100644
    index 0000000000..f0c73ec619
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-1.html
    @@ -0,0 +1,116 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > BasicSqlNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">BasicSqlNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Collects metrics by respective SQLObject methods.
    +&nbsp; */
    +&nbsp;public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;
    +&nbsp;    public BasicSqlNameStrategy() {
    +<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    +&nbsp;                DefaultNameStrategy.SQL_OBJECT);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-2.html
    new file mode 100644
    index 0000000000..29ed0add56
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-2.html
    @@ -0,0 +1,246 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > DefaultNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: DefaultNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">DefaultNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">DefaultNameStrategy$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">DefaultNameStrategy$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">DefaultNameStrategy$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">DefaultNameStrategy$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.jdbi.v3.core.extension.ExtensionMethod;
    +&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Default strategies which build a basis of more complex strategies
    +&nbsp; */
    +<b class="fc">&nbsp;public enum DefaultNameStrategy implements StatementNameStrategy {</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * If no SQL in the context, returns `sql.empty`, otherwise falls through
    +&nbsp;     */
    +<b class="fc">&nbsp;    CHECK_EMPTY {</b>
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    +<b class="fc">&nbsp;            return rawSql == null || rawSql.isEmpty() ? &quot;sql.empty&quot; : null;</b>
    +&nbsp;        }
    +&nbsp;    },
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * If there is an SQL object attached to the context, returns the name package,
    +&nbsp;     * the class and the method on which SQL is declared. If not SQL object is attached,
    +&nbsp;     * falls through
    +&nbsp;     */
    +<b class="fc">&nbsp;    SQL_OBJECT {</b>
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            ExtensionMethod extensionMethod = statementContext.getExtensionMethod();</b>
    +<b class="fc">&nbsp;            if (extensionMethod != null) {</b>
    +<b class="fc">&nbsp;                return MetricRegistry.name(extensionMethod.getType(), extensionMethod.getMethod().getName());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    },
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a raw SQL in the context (even if it&#39;s not exist)
    +&nbsp;     */
    +<b class="fc">&nbsp;    NAIVE_NAME {</b>
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            return statementContext.getRawSql();</b>
    +&nbsp;        }
    +&nbsp;    },
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the `sql.raw` constant
    +&nbsp;     */
    +<b class="fc">&nbsp;    CONSTANT_SQL_RAW {</b>
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            return &quot;sql.raw&quot;;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-3.html
    new file mode 100644
    index 0000000000..188cc7e618
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-3.html
    @@ -0,0 +1,136 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > DelegatingStatementNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">DelegatingStatementNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    +&nbsp;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.List;
    +&nbsp;
    +&nbsp;public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Unknown SQL.
    +&nbsp;     */
    +&nbsp;    private static final String UNKNOWN_SQL = &quot;sql.unknown&quot;;
    +&nbsp;
    +&nbsp;    private final List&lt;StatementNameStrategy&gt; strategies;
    +&nbsp;
    +<b class="fc">&nbsp;    protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {</b>
    +<b class="fc">&nbsp;        this.strategies = Arrays.asList(strategies);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;        for (StatementNameStrategy strategy : strategies) {</b>
    +<b class="fc">&nbsp;            final String statementName = strategy.getStatementName(statementContext);</b>
    +<b class="fc">&nbsp;            if (statementName != null) {</b>
    +<b class="fc">&nbsp;                return statementName;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="nc">&nbsp;        return UNKNOWN_SQL;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-4.html
    new file mode 100644
    index 0000000000..7f2526df50
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-4.html
    @@ -0,0 +1,116 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > NaiveNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">NaiveNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Very simple strategy, can be used with any JDBI loader to build basic statistics.
    +&nbsp; */
    +&nbsp;public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;
    +&nbsp;    public NaiveNameStrategy() {
    +<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    +&nbsp;              DefaultNameStrategy.NAIVE_NAME);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-5.html
    new file mode 100644
    index 0000000000..b1fabc227b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-5.html
    @@ -0,0 +1,117 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SmartNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SmartNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Uses a {@link BasicSqlNameStrategy} and fallbacks to {@link DefaultNameStrategy#CONSTANT_SQL_RAW}
    +&nbsp; */
    +&nbsp;public class SmartNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;
    +&nbsp;    public SmartNameStrategy() {
    +<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    +&nbsp;                DefaultNameStrategy.SQL_OBJECT,
    +&nbsp;                DefaultNameStrategy.CONSTANT_SQL_RAW);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-6.html
    new file mode 100644
    index 0000000000..39c02b10c7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-6.html
    @@ -0,0 +1,151 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > TimedAnnotationNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: TimedAnnotationNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">TimedAnnotationNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.annotation.Timed;
    +&nbsp;import org.jdbi.v3.core.extension.ExtensionMethod;
    +&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    +&nbsp;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Takes into account the {@link Timed} annotation on extension methods
    +&nbsp; */
    +<b class="fc">&nbsp;public class TimedAnnotationNameStrategy implements StatementNameStrategy {</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;        final ExtensionMethod extensionMethod = statementContext.getExtensionMethod();</b>
    +<b class="fc">&nbsp;        if (extensionMethod == null) {</b>
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Class&lt;?&gt; clazz = extensionMethod.getType();</b>
    +<b class="fc">&nbsp;        final Timed classTimed = clazz.getAnnotation(Timed.class);</b>
    +<b class="fc">&nbsp;        final Method method = extensionMethod.getMethod();</b>
    +<b class="fc">&nbsp;        final Timed methodTimed = method.getAnnotation(Timed.class);</b>
    +&nbsp;
    +&nbsp;        // If the method is timed, figure out the name
    +<b class="fc">&nbsp;        if (methodTimed != null) {</b>
    +<b class="fc">&nbsp;            String methodName = methodTimed.name().isEmpty() ? method.getName() : methodTimed.name();</b>
    +<b class="fc">&nbsp;            if (methodTimed.absolute()) {</b>
    +<b class="fc">&nbsp;                return methodName;</b>
    +&nbsp;            } else {
    +&nbsp;                // We need to check if the class has a custom timer name
    +<b class="fc">&nbsp;                return classTimed == null || classTimed.name().isEmpty() ?</b>
    +<b class="fc">&nbsp;                        MetricRegistry.name(clazz, methodName) :</b>
    +<b class="fc">&nbsp;                        MetricRegistry.name(classTimed.name(), methodName);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        } else if (classTimed != null) {</b>
    +&nbsp;            // Maybe the class is timed?
    +<b class="fc">&nbsp;            return classTimed.name().isEmpty() ? MetricRegistry.name(clazz, method.getName()) :</b>
    +<b class="nc">&nbsp;                    MetricRegistry.name(classTimed.name(), method.getName());</b>
    +&nbsp;        } else {
    +&nbsp;            // No timers neither on the method or the class
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-7.html
    new file mode 100644
    index 0000000000..45f21e271b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-7.html
    @@ -0,0 +1,89 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > StatementNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +  <tr>
    +    <td class="name">StatementNameStrategy$MockitoMock$7yVzeQzc</td>
    +  </tr>
    +  <tr>
    +    <td class="name">StatementNameStrategy$MockitoMock$7yVzeQzc$auxiliary$ayXR32Cf</td>
    +  </tr>
    +  <tr>
    +    <td class="name">StatementNameStrategy$MockitoMock$7yVzeQzc$auxiliary$BhC2mpYb</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Interface for strategies to statement contexts to metric names.
    +&nbsp; */
    +&nbsp;@FunctionalInterface
    +&nbsp;public interface StatementNameStrategy {
    +&nbsp;
    +&nbsp;    String getStatementName(StatementContext statementContext);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index.html
    new file mode 100644
    index 0000000000..a0edbb5671
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..2f98ac9054
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..2094152170
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..388ca4c798
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..c1cdd05956
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..c0a8b2d747
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..78920f0407
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..a5c5d4a043
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..b8c1b54cf8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..1713678421
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-1.html
    new file mode 100644
    index 0000000000..a94919e4cd
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-1.html
    @@ -0,0 +1,831 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jersey2</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey2)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (16/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.1%
    +  </span>
    +  <span class="absValue">
    +    (82/89)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.2%
    +  </span>
    +  <span class="absValue">
    +    (16/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (28/28)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey2;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Reservoir;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    +&nbsp;import com.codahale.metrics.annotation.Metered;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import com.codahale.metrics.annotation.Timed;
    +&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    +&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    +&nbsp;import org.glassfish.jersey.server.model.Resource;
    +&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    +&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    +&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    +&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    +&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    +&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    +&nbsp;
    +&nbsp;import javax.ws.rs.core.Configuration;
    +&nbsp;import javax.ws.rs.ext.Provider;
    +&nbsp;import java.lang.annotation.Annotation;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An application event listener that listens for Jersey application initialization to
    +&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    +&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    +&nbsp; * request events indicating that the method is about to be invoked, or just got done
    +&nbsp; * being invoked.
    +&nbsp; */
    +&nbsp;@Provider
    +&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    +&nbsp;
    +<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    +<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    +&nbsp;    private static final String TOTAL = &quot;total&quot;;
    +&nbsp;
    +&nbsp;    private final MetricRegistry metrics;
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final boolean trackFilters;
    +&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Construct an application event listener using the given metrics registry.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    +&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    +&nbsp;     *
    +&nbsp;     * @param metrics a {@link MetricRegistry}
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    +<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Constructs a custom application listener.
    +&nbsp;     *
    +&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    +&nbsp;                                                         final boolean trackFilters) {
    +<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Constructs a custom application listener.
    +&nbsp;     *
    +&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    +&nbsp;                                                         final boolean trackFilters,
    +<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    +<b class="fc">&nbsp;        this.metrics = metrics;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    +<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A private class to maintain the metric for a method annotated with the
    +&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    +&nbsp;     * and a cause for which the meter should be updated.
    +&nbsp;     */
    +&nbsp;    private static class ExceptionMeterMetric {
    +&nbsp;        public final Meter meter;
    +&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    +&nbsp;
    +&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    +&nbsp;                                    final ResourceMethod method,
    +<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    +<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    +<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    +<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    +<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A private class to maintain the metrics for a method annotated with the
    +&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    +&nbsp;     * different response codes
    +&nbsp;     */
    +&nbsp;    private static class ResponseMeterMetric {
    +<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;        private final List&lt;Meter&gt; meters;
    +&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;        private final MetricRegistry metricRegistry;
    +&nbsp;        private final String metricName;
    +&nbsp;        private final ResponseMeteredLevel level;
    +&nbsp;
    +&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    +&nbsp;                                   final ResourceMethod method,
    +<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    +<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    +<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    +<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    +<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    +<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    +<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    +<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    +<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    +<b class="fc">&nbsp;            )) : Collections.emptyList();</b>
    +<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public void mark(int statusCode) {
    +<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    +<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    +<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;            return responseCodeMeters</b>
    +<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    +&nbsp;
    +&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    +&nbsp;        private final Clock clock;
    +&nbsp;        private final long start;
    +&nbsp;        private Timer.Context resourceMethodStartContext;
    +&nbsp;        private Timer.Context requestMatchedContext;
    +&nbsp;        private Timer.Context responseFiltersStartContext;
    +&nbsp;
    +<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    +<b class="fc">&nbsp;            this.timers = timers;</b>
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            start = clock.getTick();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            switch (event.getType()) {</b>
    +&nbsp;                case RESOURCE_METHOD_START:
    +<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case REQUEST_MATCHED:
    +<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case RESP_FILTERS_START:
    +<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case RESOURCE_METHOD_FINISHED:
    +<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    +<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case REQUEST_FILTERED:
    +<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    +<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case RESP_FILTERS_FINISHED:
    +<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    +<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case FINISHED:
    +<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    +<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    +<b class="fc">&nbsp;                        if (timer != null) {</b>
    +<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    +&nbsp;                        }
    +<b class="fc">&nbsp;                    }</b>
    +&nbsp;                    break;
    +&nbsp;                default:
    +&nbsp;                    break;
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer timer(RequestEvent event) {
    +<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    +<b class="fc">&nbsp;                return null;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer.Context context(RequestEvent event) {
    +<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    +<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    +&nbsp;
    +<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    +<b class="fc">&nbsp;            this.meters = meters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    +<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    +<b class="fc">&nbsp;                if (meter != null) {</b>
    +<b class="fc">&nbsp;                    meter.mark();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    +&nbsp;
    +<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    +<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    +<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    +<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;                if (metric != null) {</b>
    +<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    +<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    +<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    +<b class="fc">&nbsp;                        metric.meter.mark();</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    +&nbsp;
    +<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    +<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    +<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    +<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;                if (metric != null) {</b>
    +<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    +<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    +<b class="fc">&nbsp;                        metric.mark(500);</b>
    +<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    +<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    +&nbsp;        private final RequestEventListener[] listeners;
    +&nbsp;
    +<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    +<b class="fc">&nbsp;            this.listeners = listeners;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(final RequestEvent event) {
    +<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    +<b class="fc">&nbsp;                listener.onEvent(event);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onEvent(ApplicationEvent event) {
    +<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    +<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    +<b class="fc">&nbsp;        return resourceModel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    +<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    +<b class="fc">&nbsp;        return subResourceModel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    +<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    +<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    +<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    +<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    +<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    +<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    +<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    +<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    +&nbsp;
    +<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    +<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    +<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    +<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    +<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    +<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    +<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    +<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    +<b class="fc">&nbsp;                }</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    +<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    +&nbsp;                new TimerRequestEventListener(timers, clock),
    +&nbsp;                new MeterRequestEventListener(meters),
    +&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    +&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    +&nbsp;
    +<b class="fc">&nbsp;        return listener;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    +<b class="fc">&nbsp;        T annotation = null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    +<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (annotation != null) {</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return annotation;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    +<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    +&nbsp;            return;
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    +<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    +<b class="fc">&nbsp;        if (trackFilters) {</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    +<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    +<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    +<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    +&nbsp;                              final ResourceMethod method,
    +&nbsp;                              final Timed timed,
    +&nbsp;                              final String... suffixes) {
    +<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    +<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    +&nbsp;                              final ResourceMethod method,
    +&nbsp;                              final Metered metered) {
    +<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    +<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    +&nbsp;                                       final String... suffixes) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;        final String metricName;
    +<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    +<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    +&nbsp;
    +&nbsp;        private final RequestEvent.Type type;
    +&nbsp;        private final Method method;
    +&nbsp;
    +<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    +<b class="fc">&nbsp;            this.type = type;</b>
    +<b class="fc">&nbsp;            this.method = method;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod finished(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean equals(Object o) {
    +<b class="fc">&nbsp;            if (this == o) {</b>
    +<b class="nc">&nbsp;                return true;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (type != that.type) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return method.equals(that.method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public int hashCode() {
    +<b class="fc">&nbsp;            int result = type.hashCode();</b>
    +<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    +<b class="fc">&nbsp;            return result;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-2.html
    new file mode 100644
    index 0000000000..a185a88f48
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-2.html
    @@ -0,0 +1,201 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricsFeature</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jersey2</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey2)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricsFeature</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey2;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Reservoir;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;
    +&nbsp;import javax.ws.rs.core.Feature;
    +&nbsp;import javax.ws.rs.core.FeatureContext;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    +&nbsp; * for recording request events.
    +&nbsp; */
    +&nbsp;public class MetricsFeature implements Feature {
    +&nbsp;
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final boolean trackFilters;
    +&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    +<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    +<b class="fc">&nbsp;        this(registry, clock, false);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    +<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    +<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public MetricsFeature(String registryName) {
    +<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A call-back method called when the feature is to be enabled in a given
    +&nbsp;     * runtime configuration scope.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    +&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    +&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    +&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    +&nbsp;     * {@link javax.ws.rs.core.Configuration#isEnabled(javax.ws.rs.core.Feature)} or
    +&nbsp;     * {@link javax.ws.rs.core.Configuration#isEnabled(Class)} method
    +&nbsp;     * would return {@code false}.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     *
    +&nbsp;     * @param context configurable context in which the feature should be enabled.
    +&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    +&nbsp;     * otherwise.
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public boolean configure(FeatureContext context) {
    +<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    +<b class="fc">&nbsp;        return true;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index.html
    new file mode 100644
    index 0000000000..2aa8133a36
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..7bf8720b08
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..712700d3d1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..a7e2f8f1cf
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..e9bfa77d9f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..523f5e5282
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..25094c4723
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..844cc64c38
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..068c835d53
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..0494d1401f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-1.html
    new file mode 100644
    index 0000000000..ed6ac48672
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-1.html
    @@ -0,0 +1,832 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jersey3</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey3)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (16/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.1%
    +  </span>
    +  <span class="absValue">
    +    (82/89)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.2%
    +  </span>
    +  <span class="absValue">
    +    (16/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (28/28)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey3;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Reservoir;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    +&nbsp;import com.codahale.metrics.annotation.Metered;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import com.codahale.metrics.annotation.Timed;
    +&nbsp;import jakarta.ws.rs.core.Configuration;
    +&nbsp;import jakarta.ws.rs.ext.Provider;
    +&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    +&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    +&nbsp;import org.glassfish.jersey.server.model.Resource;
    +&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    +&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    +&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    +&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    +&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    +&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    +&nbsp;
    +&nbsp;import java.lang.annotation.Annotation;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An application event listener that listens for Jersey application initialization to
    +&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    +&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    +&nbsp; * request events indicating that the method is about to be invoked, or just got done
    +&nbsp; * being invoked.
    +&nbsp; */
    +&nbsp;@Provider
    +&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    +&nbsp;
    +<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    +<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    +&nbsp;    private static final String TOTAL = &quot;total&quot;;
    +&nbsp;
    +&nbsp;    private final MetricRegistry metrics;
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final boolean trackFilters;
    +&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Construct an application event listener using the given metrics registry.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    +&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    +&nbsp;     *
    +&nbsp;     * @param metrics a {@link MetricRegistry}
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    +<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Constructs a custom application listener.
    +&nbsp;     *
    +&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    +&nbsp;                                                         final boolean trackFilters) {
    +<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Constructs a custom application listener.
    +&nbsp;     *
    +&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    +&nbsp;                                                         final boolean trackFilters,
    +<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    +<b class="fc">&nbsp;        this.metrics = metrics;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    +<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A private class to maintain the metric for a method annotated with the
    +&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    +&nbsp;     * and a cause for which the meter should be updated.
    +&nbsp;     */
    +&nbsp;    private static class ExceptionMeterMetric {
    +&nbsp;        public final Meter meter;
    +&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    +&nbsp;
    +&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    +&nbsp;                                    final ResourceMethod method,
    +<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    +<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    +<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    +<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    +<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A private class to maintain the metrics for a method annotated with the
    +&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    +&nbsp;     * different response codes
    +&nbsp;     */
    +&nbsp;    private static class ResponseMeterMetric {
    +<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;        private final List&lt;Meter&gt; meters;
    +&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;        private final MetricRegistry metricRegistry;
    +&nbsp;        private final String metricName;
    +&nbsp;        private final ResponseMeteredLevel level;
    +&nbsp;
    +&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    +&nbsp;                                   final ResourceMethod method,
    +<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    +<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    +<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    +<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    +<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    +<b class="fc">&nbsp;                    )) : Collections.emptyList();</b>
    +<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public void mark(int statusCode) {
    +<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    +<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    +<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;            return responseCodeMeters</b>
    +<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    +&nbsp;
    +&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    +&nbsp;        private final Clock clock;
    +&nbsp;        private final long start;
    +&nbsp;        private Timer.Context resourceMethodStartContext;
    +&nbsp;        private Timer.Context requestMatchedContext;
    +&nbsp;        private Timer.Context responseFiltersStartContext;
    +&nbsp;
    +<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    +<b class="fc">&nbsp;            this.timers = timers;</b>
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            start = clock.getTick();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            switch (event.getType()) {</b>
    +&nbsp;                case RESOURCE_METHOD_START:
    +<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case REQUEST_MATCHED:
    +<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case RESP_FILTERS_START:
    +<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case RESOURCE_METHOD_FINISHED:
    +<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    +<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case REQUEST_FILTERED:
    +<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    +<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case RESP_FILTERS_FINISHED:
    +<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    +<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case FINISHED:
    +<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    +<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    +<b class="fc">&nbsp;                        if (timer != null) {</b>
    +<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    +&nbsp;                        }
    +<b class="fc">&nbsp;                    }</b>
    +&nbsp;                    break;
    +&nbsp;                default:
    +&nbsp;                    break;
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer timer(RequestEvent event) {
    +<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    +<b class="fc">&nbsp;                return null;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer.Context context(RequestEvent event) {
    +<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    +<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    +&nbsp;
    +<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    +<b class="fc">&nbsp;            this.meters = meters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    +<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    +<b class="fc">&nbsp;                if (meter != null) {</b>
    +<b class="fc">&nbsp;                    meter.mark();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    +&nbsp;
    +<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    +<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    +<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    +<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;                if (metric != null) {</b>
    +<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    +<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    +<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    +<b class="fc">&nbsp;                        metric.meter.mark();</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    +&nbsp;
    +<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    +<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    +<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    +<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;                if (metric != null) {</b>
    +<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    +<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    +<b class="fc">&nbsp;                        metric.mark(500);</b>
    +<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    +<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    +&nbsp;        private final RequestEventListener[] listeners;
    +&nbsp;
    +<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    +<b class="fc">&nbsp;            this.listeners = listeners;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(final RequestEvent event) {
    +<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    +<b class="fc">&nbsp;                listener.onEvent(event);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onEvent(ApplicationEvent event) {
    +<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    +<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    +<b class="fc">&nbsp;        return resourceModel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    +<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    +<b class="fc">&nbsp;        return subResourceModel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    +<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    +<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    +<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    +<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    +<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    +<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    +<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    +<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    +&nbsp;
    +<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    +<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    +<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    +<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    +<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    +<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    +<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    +<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    +<b class="fc">&nbsp;                }</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    +<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    +&nbsp;                new TimerRequestEventListener(timers, clock),
    +&nbsp;                new MeterRequestEventListener(meters),
    +&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    +&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    +&nbsp;
    +<b class="fc">&nbsp;        return listener;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    +<b class="fc">&nbsp;        T annotation = null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    +<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (annotation != null) {</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return annotation;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    +<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    +&nbsp;            return;
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    +<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    +<b class="fc">&nbsp;        if (trackFilters) {</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    +<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    +<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    +<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    +&nbsp;                              final ResourceMethod method,
    +&nbsp;                              final Timed timed,
    +&nbsp;                              final String... suffixes) {
    +<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    +<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    +&nbsp;                              final ResourceMethod method,
    +&nbsp;                              final Metered metered) {
    +<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    +<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    +&nbsp;                                       final String... suffixes) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;        final String metricName;
    +<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    +<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    +&nbsp;
    +&nbsp;        private final RequestEvent.Type type;
    +&nbsp;        private final Method method;
    +&nbsp;
    +<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    +<b class="fc">&nbsp;            this.type = type;</b>
    +<b class="fc">&nbsp;            this.method = method;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod finished(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean equals(Object o) {
    +<b class="fc">&nbsp;            if (this == o) {</b>
    +<b class="nc">&nbsp;                return true;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (type != that.type) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return method.equals(that.method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public int hashCode() {
    +<b class="fc">&nbsp;            int result = type.hashCode();</b>
    +<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    +<b class="fc">&nbsp;            return result;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-2.html
    new file mode 100644
    index 0000000000..c7032ad6ac
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-2.html
    @@ -0,0 +1,201 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricsFeature</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jersey3</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey3)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricsFeature</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey3;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Reservoir;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;import jakarta.ws.rs.core.Feature;
    +&nbsp;import jakarta.ws.rs.core.FeatureContext;
    +&nbsp;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    +&nbsp; * for recording request events.
    +&nbsp; */
    +&nbsp;public class MetricsFeature implements Feature {
    +&nbsp;
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final boolean trackFilters;
    +&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    +<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    +<b class="fc">&nbsp;        this(registry, clock, false);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    +<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    +<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public MetricsFeature(String registryName) {
    +<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A call-back method called when the feature is to be enabled in a given
    +&nbsp;     * runtime configuration scope.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    +&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    +&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    +&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    +&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
    +&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
    +&nbsp;     * would return {@code false}.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     *
    +&nbsp;     * @param context configurable context in which the feature should be enabled.
    +&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    +&nbsp;     * otherwise.
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public boolean configure(FeatureContext context) {
    +<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    +<b class="fc">&nbsp;        return true;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index.html
    new file mode 100644
    index 0000000000..fa941b7b01
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..5ed6037431
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..b09780e4d8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..5f536eef51
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..d0ebea61a7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..1cdf47608f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..6f94288578
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..6343fc2544
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..2c65a8820b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..d9a09702ce
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-1.html
    new file mode 100644
    index 0000000000..29f3e5d428
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-1.html
    @@ -0,0 +1,193 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedConnectionFactory</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jetty9</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedConnectionFactory (com.codahale.metrics.jetty9)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedConnectionFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedConnectionFactory$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.eclipse.jetty.io.Connection;
    +&nbsp;import org.eclipse.jetty.io.EndPoint;
    +&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    +&nbsp;import org.eclipse.jetty.server.Connector;
    +&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;
    +<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    +&nbsp;    private final ConnectionFactory connectionFactory;
    +&nbsp;    private final Timer timer;
    +&nbsp;    private final Counter counter;
    +&nbsp;
    +&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    +<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    +<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    +<b class="fc">&nbsp;        this.timer = timer;</b>
    +<b class="fc">&nbsp;        this.counter = counter;</b>
    +<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getProtocol() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public List&lt;String&gt; getProtocols() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    +<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    +<b class="fc">&nbsp;        connection.addListener(new Connection.Listener() {</b>
    +&nbsp;            private Timer.Context context;
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onOpened(Connection connection) {
    +<b class="fc">&nbsp;                this.context = timer.time();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.inc();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onClosed(Connection connection) {
    +<b class="fc">&nbsp;                context.stop();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.dec();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        return connection;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-2.html
    new file mode 100644
    index 0000000000..d9ec8102ba
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-2.html
    @@ -0,0 +1,754 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHandler</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jetty9</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHandler (com.codahale.metrics.jetty9)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHandler</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (115/135)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$7</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
    +&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.server.Handler;
    +&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    +&nbsp;
    +&nbsp;import javax.servlet.AsyncEvent;
    +&nbsp;import javax.servlet.AsyncListener;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    +&nbsp; * instance.
    +&nbsp; */
    +<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    +&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    +&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    +&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    +&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    +&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    +&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    +&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    +&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    +&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    +&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    +&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    +&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    +&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    +&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    +&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    +&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    +&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    +&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    +&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;
    +&nbsp;    private String name;
    +&nbsp;    private final String prefix;
    +&nbsp;
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    private Timer requests;
    +&nbsp;
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    private Timer dispatches;
    +&nbsp;
    +&nbsp;    // the number of active requests
    +&nbsp;    private Counter activeRequests;
    +&nbsp;
    +&nbsp;    // the number of active dispatches
    +&nbsp;    private Counter activeDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    private Counter activeSuspended;
    +&nbsp;
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    private Meter asyncDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    private Meter asyncTimeouts;
    +&nbsp;
    +&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    private List&lt;Meter&gt; responses;
    +&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;
    +&nbsp;    private Timer getRequests;
    +&nbsp;    private Timer postRequests;
    +&nbsp;    private Timer headRequests;
    +&nbsp;    private Timer putRequests;
    +&nbsp;    private Timer deleteRequests;
    +&nbsp;    private Timer optionsRequests;
    +&nbsp;    private Timer traceRequests;
    +&nbsp;    private Timer connectRequests;
    +&nbsp;    private Timer moveRequests;
    +&nbsp;    private Timer otherRequests;
    +&nbsp;
    +&nbsp;    private AsyncListener listener;
    +&nbsp;
    +&nbsp;    private HttpChannelState.State DISPATCHED_HACK;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    +<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            DISPATCHED_HACK = HttpChannelState.State.valueOf(&quot;HANDLING&quot;);</b>
    +<b class="nc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    +<b class="nc">&nbsp;            DISPATCHED_HACK = HttpChannelState.State.valueOf(&quot;DISPATCHED&quot;);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getName() {
    +<b class="fc">&nbsp;        return name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setName(String name) {
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    +&nbsp;            ));
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                public Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    +<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    +<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    +<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void handle(String path,
    +&nbsp;                       Request request,
    +&nbsp;                       HttpServletRequest httpRequest,
    +&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="nc">&nbsp;            activeSuspended.dec();</b>
    +<b class="nc">&nbsp;            if (state.getState() == DISPATCHED_HACK) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            activeDispatches.dec();</b>
    +<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.inc();</b>
    +<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    +&nbsp;            }
    +&nbsp;            // else onCompletion will handle it.
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="fc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    };
    +&nbsp;
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    +<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    +<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    +<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.dec();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-3.html
    new file mode 100644
    index 0000000000..bbb508ef0f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-3.html
    @@ -0,0 +1,708 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jetty9</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (com.codahale.metrics.jetty9)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpChannelListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (20/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.6%
    +  </span>
    +  <span class="absValue">
    +    (90/109)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$7</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.7%
    +  </span>
    +  <span class="absValue">
    +    (8/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import javax.servlet.AsyncEvent;
    +&nbsp;import javax.servlet.AsyncListener;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
    +&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    +&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    +&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    +&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    +&nbsp; *
    +&nbsp; * @since TBD
    +&nbsp; */
    +<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    +&nbsp;    implements Listener
    +&nbsp;{
    +<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    private final Timer requests;
    +&nbsp;
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    private final Timer dispatches;
    +&nbsp;
    +&nbsp;    // the number of active requests
    +&nbsp;    private final Counter activeRequests;
    +&nbsp;
    +&nbsp;    // the number of active dispatches
    +&nbsp;    private final Counter activeDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    private final Counter activeSuspended;
    +&nbsp;
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    private final Meter asyncDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    private final Meter asyncTimeouts;
    +&nbsp;
    +&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    private final List&lt;Meter&gt; responses;
    +&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;    private final String prefix;
    +&nbsp;    private final Timer getRequests;
    +&nbsp;    private final Timer postRequests;
    +&nbsp;    private final Timer headRequests;
    +&nbsp;    private final Timer putRequests;
    +&nbsp;    private final Timer deleteRequests;
    +&nbsp;    private final Timer optionsRequests;
    +&nbsp;    private final Timer traceRequests;
    +&nbsp;    private final Timer connectRequests;
    +&nbsp;    private final Timer moveRequests;
    +&nbsp;    private final Timer otherRequests;
    +&nbsp;
    +&nbsp;    private final AsyncListener listener;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param pref     the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    +<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param pref     the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    +<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    +<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                    requests.getOneMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                    requests.getFiveMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                    requests.getFifteenMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                    requests.getOneMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                    requests.getFiveMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                    requests.getFifteenMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestBegin(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onBeforeDispatch(final Request request) {
    +<b class="fc">&nbsp;        before(request);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onAfterDispatch(final Request request) {
    +<b class="fc">&nbsp;        after(request);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestContentEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestTrailers(final Request request) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseBegin(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseCommit(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onComplete(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    private void before(final Request request) {
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            activeSuspended.dec();</b>
    +<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void after(final Request request) {
    +<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    +<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.dec();</b>
    +<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    +<b class="fc">&nbsp;            activeSuspended.inc();</b>
    +<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    +&nbsp;        }
    +&nbsp;        // else onCompletion will handle it.
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="fc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    };
    +&nbsp;
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    +<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    +<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    +<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    +<b class="fc">&nbsp;                activeSuspended.dec();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-4.html
    new file mode 100644
    index 0000000000..335ea09ff5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-4.html
    @@ -0,0 +1,286 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jetty9</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (com.codahale.metrics.jetty9)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedQueuedThreadPool</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (10/12)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import org.eclipse.jetty.util.annotation.Name;
    +&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    +&nbsp;
    +&nbsp;import java.util.concurrent.BlockingQueue;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    +&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    +&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    +&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    +&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    +&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;    private String prefix;
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, 200);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    +<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, queue);</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getPrefix() {
    +<b class="nc">&nbsp;        return prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setPrefix(String prefix) {
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    +&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    +&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    +<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index.html
    new file mode 100644
    index 0000000000..fe872caa91
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..d90337e13a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..986c2fae9e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..de2ec47cdc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..f65f24d957
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..3e7bf7c8dc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..e38f3dc0dd
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..4bbaadcdcd
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..35ca730818
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..1d3b0307e7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-1.html
    new file mode 100644
    index 0000000000..195c1c50aa
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-1.html
    @@ -0,0 +1,173 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > DefaultObjectNameFactory</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jmx</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: DefaultObjectNameFactory (com.codahale.metrics.jmx)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">DefaultObjectNameFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    +&nbsp;
    +&nbsp;import java.util.Hashtable;
    +&nbsp;
    +&nbsp;import javax.management.MalformedObjectNameException;
    +&nbsp;import javax.management.ObjectName;
    +&nbsp;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +<b class="fc">&nbsp;public class DefaultObjectNameFactory implements ObjectNameFactory {</b>
    +&nbsp;
    +<b class="fc">&nbsp;    private static final char[] QUOTABLE_CHARS = new char[] {&#39;,&#39;, &#39;=&#39;, &#39;:&#39;, &#39;&quot;&#39;};</b>
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public ObjectName createName(String type, String domain, String name) {
    +&nbsp;        try {
    +&nbsp;            ObjectName objectName;
    +<b class="fc">&nbsp;            Hashtable&lt;String, String&gt; properties = new Hashtable&lt;&gt;();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            properties.put(&quot;name&quot;, name);</b>
    +<b class="fc">&nbsp;            properties.put(&quot;type&quot;, type);</b>
    +<b class="fc">&nbsp;            objectName = new ObjectName(domain, properties);</b>
    +&nbsp;
    +&nbsp;            /*
    +&nbsp;             * The only way we can find out if we need to quote the properties is by
    +&nbsp;             * checking an ObjectName that we&#39;ve constructed.
    +&nbsp;             */
    +<b class="fc">&nbsp;            if (objectName.isDomainPattern()) {</b>
    +<b class="nc">&nbsp;                domain = ObjectName.quote(domain);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (objectName.isPropertyValuePattern(&quot;name&quot;) || shouldQuote(objectName.getKeyProperty(&quot;name&quot;))) {</b>
    +<b class="fc">&nbsp;                properties.put(&quot;name&quot;, ObjectName.quote(name));</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (objectName.isPropertyValuePattern(&quot;type&quot;) || shouldQuote(objectName.getKeyProperty(&quot;type&quot;))) {</b>
    +<b class="nc">&nbsp;                properties.put(&quot;type&quot;, ObjectName.quote(type));</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            objectName = new ObjectName(domain, properties);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            return objectName;</b>
    +<b class="nc">&nbsp;        } catch (MalformedObjectNameException e) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                return new ObjectName(domain, &quot;name&quot;, ObjectName.quote(name));</b>
    +<b class="nc">&nbsp;            } catch (MalformedObjectNameException e1) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register {} {}&quot;, type, name, e1);</b>
    +<b class="nc">&nbsp;                throw new RuntimeException(e1);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Determines whether the value requires quoting.
    +&nbsp;     * According to the {@link ObjectName} documentation, values can be quoted or unquoted. Unquoted
    +&nbsp;     * values may not contain any of the characters comma, equals, colon, or quote.
    +&nbsp;     *
    +&nbsp;     * @param value a value to test
    +&nbsp;     * @return true when it requires quoting, false otherwise
    +&nbsp;     */
    +&nbsp;    private boolean shouldQuote(final String value) {
    +<b class="fc">&nbsp;        for (char quotableChar : QUOTABLE_CHARS) {</b>
    +<b class="fc">&nbsp;            if (value.indexOf(quotableChar) != -1) {</b>
    +<b class="fc">&nbsp;                return true;</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        return false;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-2.html
    new file mode 100644
    index 0000000000..428b87d154
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-2.html
    @@ -0,0 +1,1061 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > JmxReporter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jmx</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: JmxReporter (com.codahale.metrics.jmx)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">JmxReporter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">JmxReporter$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$AbstractBean</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (9/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.4%
    +  </span>
    +  <span class="absValue">
    +    (27/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxCounter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxCounterMBean</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxGauge</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxGaugeMBean</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxHistogram</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (14/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (16/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxHistogramMBean</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.8%
    +  </span>
    +  <span class="absValue">
    +    (11/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    49.5%
    +  </span>
    +  <span class="absValue">
    +    (50/101)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxMeter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxMeterMBean</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxTimer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxTimerMBean</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$MetricMBean</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$MetricTimeUnits</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Histogram;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.Metered;
    +&nbsp;import com.codahale.metrics.MetricFilter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.MetricRegistryListener;
    +&nbsp;import com.codahale.metrics.Reporter;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import javax.management.InstanceAlreadyExistsException;
    +&nbsp;import javax.management.InstanceNotFoundException;
    +&nbsp;import javax.management.JMException;
    +&nbsp;import javax.management.MBeanRegistrationException;
    +&nbsp;import javax.management.MBeanServer;
    +&nbsp;import javax.management.ObjectInstance;
    +&nbsp;import javax.management.ObjectName;
    +&nbsp;import java.io.Closeable;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A reporter which listens for new metrics and exposes them as namespaced MBeans.
    +&nbsp; */
    +<b class="fc">&nbsp;public class JmxReporter implements Reporter, Closeable {</b>
    +&nbsp;    /**
    +&nbsp;     * Returns a new {@link Builder} for {@link JmxReporter}.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry to report
    +&nbsp;     * @return a {@link Builder} instance for a {@link JmxReporter}
    +&nbsp;     */
    +&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    +<b class="fc">&nbsp;        return new Builder(registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A builder for {@link JmxReporter} instances. Defaults to using the default MBean server and
    +&nbsp;     * not filtering metrics.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class Builder {</b>
    +&nbsp;        private final MetricRegistry registry;
    +&nbsp;        private MBeanServer mBeanServer;
    +&nbsp;        private TimeUnit rateUnit;
    +&nbsp;        private TimeUnit durationUnit;
    +&nbsp;        private ObjectNameFactory objectNameFactory;
    +<b class="fc">&nbsp;        private MetricFilter filter = MetricFilter.ALL;</b>
    +&nbsp;        private String domain;
    +&nbsp;        private Map&lt;String, TimeUnit&gt; specificDurationUnits;
    +&nbsp;        private Map&lt;String, TimeUnit&gt; specificRateUnits;
    +&nbsp;
    +<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;            this.registry = registry;</b>
    +<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    +<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    +<b class="fc">&nbsp;            this.domain = &quot;metrics&quot;;</b>
    +<b class="fc">&nbsp;            this.objectNameFactory = new DefaultObjectNameFactory();</b>
    +<b class="fc">&nbsp;            this.specificDurationUnits = Collections.emptyMap();</b>
    +<b class="fc">&nbsp;            this.specificRateUnits = Collections.emptyMap();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Register MBeans with the given {@link MBeanServer}.
    +&nbsp;         *
    +&nbsp;         * @param mBeanServer an {@link MBeanServer}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder registerWith(MBeanServer mBeanServer) {
    +<b class="fc">&nbsp;            this.mBeanServer = mBeanServer;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert rates to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param rateUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    +<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder createsObjectNamesWith(ObjectNameFactory onFactory) {
    +<b class="fc">&nbsp;            if (onFactory == null) {</b>
    +<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;null objectNameFactory&quot;);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            this.objectNameFactory = onFactory;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert durations to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param durationUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    +<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Only report metrics which match the given filter.
    +&nbsp;         *
    +&nbsp;         * @param filter a {@link MetricFilter}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder filter(MetricFilter filter) {
    +<b class="fc">&nbsp;            this.filter = filter;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder inDomain(String domain) {
    +<b class="fc">&nbsp;            this.domain = domain;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use specific {@link TimeUnit}s for the duration of the metrics with these names.
    +&nbsp;         *
    +&nbsp;         * @param specificDurationUnits a map of metric names and specific {@link TimeUnit}s
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder specificDurationUnits(Map&lt;String, TimeUnit&gt; specificDurationUnits) {
    +<b class="nc">&nbsp;            this.specificDurationUnits = Collections.unmodifiableMap(specificDurationUnits);</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use specific {@link TimeUnit}s for the rate of the metrics with these names.
    +&nbsp;         *
    +&nbsp;         * @param specificRateUnits a map of metric names and specific {@link TimeUnit}s
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder specificRateUnits(Map&lt;String, TimeUnit&gt; specificRateUnits) {
    +<b class="nc">&nbsp;            this.specificRateUnits = Collections.unmodifiableMap(specificRateUnits);</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Builds a {@link JmxReporter} with the given properties.
    +&nbsp;         *
    +&nbsp;         * @return a {@link JmxReporter}
    +&nbsp;         */
    +&nbsp;        public JmxReporter build() {
    +<b class="fc">&nbsp;            final MetricTimeUnits timeUnits = new MetricTimeUnits(rateUnit, durationUnit, specificRateUnits, specificDurationUnits);</b>
    +<b class="fc">&nbsp;            if (mBeanServer == null) {</b>
    +<b class="fc">&nbsp;                mBeanServer = ManagementFactory.getPlatformMBeanServer();</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return new JmxReporter(mBeanServer, domain, registry, filter, timeUnits, objectNameFactory);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);</b>
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    +&nbsp;    public interface MetricMBean {
    +&nbsp;        ObjectName objectName();
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private abstract static class AbstractBean implements MetricMBean {
    +&nbsp;        private final ObjectName objectName;
    +&nbsp;
    +<b class="fc">&nbsp;        AbstractBean(ObjectName objectName) {</b>
    +<b class="fc">&nbsp;            this.objectName = objectName;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public ObjectName objectName() {
    +<b class="nc">&nbsp;            return objectName;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    +&nbsp;    public interface JmxGaugeMBean extends MetricMBean {
    +&nbsp;        Object getValue();
    +&nbsp;        Number getNumber();
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class JmxGauge extends AbstractBean implements JmxGaugeMBean {</b>
    +&nbsp;        private final Gauge&lt;?&gt; metric;
    +&nbsp;
    +&nbsp;        private JmxGauge(Gauge&lt;?&gt; metric, ObjectName objectName) {
    +<b class="fc">&nbsp;            super(objectName);</b>
    +<b class="fc">&nbsp;            this.metric = metric;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public Object getValue() {
    +<b class="fc">&nbsp;            return metric.getValue();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public Number getNumber() {
    +<b class="fc">&nbsp;            Object value = metric.getValue();</b>
    +<b class="fc">&nbsp;            return value instanceof Number ? (Number) value : 0;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    +&nbsp;    public interface JmxCounterMBean extends MetricMBean {
    +&nbsp;        long getCount();
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class JmxCounter extends AbstractBean implements JmxCounterMBean {</b>
    +&nbsp;        private final Counter metric;
    +&nbsp;
    +&nbsp;        private JmxCounter(Counter metric, ObjectName objectName) {
    +<b class="fc">&nbsp;            super(objectName);</b>
    +<b class="fc">&nbsp;            this.metric = metric;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long getCount() {
    +<b class="fc">&nbsp;            return metric.getCount();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    +&nbsp;    public interface JmxHistogramMBean extends MetricMBean {
    +&nbsp;        long getCount();
    +&nbsp;
    +&nbsp;        long getMin();
    +&nbsp;
    +&nbsp;        long getMax();
    +&nbsp;
    +&nbsp;        double getMean();
    +&nbsp;
    +&nbsp;        double getStdDev();
    +&nbsp;
    +&nbsp;        double get50thPercentile();
    +&nbsp;
    +&nbsp;        double get75thPercentile();
    +&nbsp;
    +&nbsp;        double get95thPercentile();
    +&nbsp;
    +&nbsp;        double get98thPercentile();
    +&nbsp;
    +&nbsp;        double get99thPercentile();
    +&nbsp;
    +&nbsp;        double get999thPercentile();
    +&nbsp;
    +&nbsp;        long[] values();
    +&nbsp;
    +&nbsp;        long getSnapshotSize();
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class JmxHistogram implements JmxHistogramMBean {</b>
    +&nbsp;        private final ObjectName objectName;
    +&nbsp;        private final Histogram metric;
    +&nbsp;
    +<b class="fc">&nbsp;        private JmxHistogram(Histogram metric, ObjectName objectName) {</b>
    +<b class="fc">&nbsp;            this.metric = metric;</b>
    +<b class="fc">&nbsp;            this.objectName = objectName;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public ObjectName objectName() {
    +<b class="nc">&nbsp;            return objectName;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get50thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMedian();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long getCount() {
    +<b class="fc">&nbsp;            return metric.getCount();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long getMin() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMin();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long getMax() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMax();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getMean() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMean();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getStdDev() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getStdDev();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get75thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get75thPercentile();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get95thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get95thPercentile();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get98thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get98thPercentile();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get99thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get99thPercentile();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get999thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get999thPercentile();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long[] values() {
    +<b class="nc">&nbsp;            return metric.getSnapshot().getValues();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long getSnapshotSize() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().size();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    +&nbsp;    public interface JmxMeterMBean extends MetricMBean {
    +&nbsp;        long getCount();
    +&nbsp;
    +&nbsp;        double getMeanRate();
    +&nbsp;
    +&nbsp;        double getOneMinuteRate();
    +&nbsp;
    +&nbsp;        double getFiveMinuteRate();
    +&nbsp;
    +&nbsp;        double getFifteenMinuteRate();
    +&nbsp;
    +&nbsp;        String getRateUnit();
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class JmxMeter extends AbstractBean implements JmxMeterMBean {</b>
    +&nbsp;        private final Metered metric;
    +&nbsp;        private final double rateFactor;
    +&nbsp;        private final String rateUnit;
    +&nbsp;
    +&nbsp;        private JmxMeter(Metered metric, ObjectName objectName, TimeUnit rateUnit) {
    +<b class="fc">&nbsp;            super(objectName);</b>
    +<b class="fc">&nbsp;            this.metric = metric;</b>
    +<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    +<b class="fc">&nbsp;            this.rateUnit = (&quot;events/&quot; + calculateRateUnit(rateUnit)).intern();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long getCount() {
    +<b class="fc">&nbsp;            return metric.getCount();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getMeanRate() {
    +<b class="fc">&nbsp;            return metric.getMeanRate() * rateFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getOneMinuteRate() {
    +<b class="fc">&nbsp;            return metric.getOneMinuteRate() * rateFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getFiveMinuteRate() {
    +<b class="fc">&nbsp;            return metric.getFiveMinuteRate() * rateFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getFifteenMinuteRate() {
    +<b class="fc">&nbsp;            return metric.getFifteenMinuteRate() * rateFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getRateUnit() {
    +<b class="fc">&nbsp;            return rateUnit;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private String calculateRateUnit(TimeUnit unit) {
    +<b class="fc">&nbsp;            final String s = unit.toString().toLowerCase(Locale.US);</b>
    +<b class="fc">&nbsp;            return s.substring(0, s.length() - 1);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    +&nbsp;    public interface JmxTimerMBean extends JmxMeterMBean {
    +&nbsp;        double getMin();
    +&nbsp;
    +&nbsp;        double getMax();
    +&nbsp;
    +&nbsp;        double getMean();
    +&nbsp;
    +&nbsp;        double getStdDev();
    +&nbsp;
    +&nbsp;        double get50thPercentile();
    +&nbsp;
    +&nbsp;        double get75thPercentile();
    +&nbsp;
    +&nbsp;        double get95thPercentile();
    +&nbsp;
    +&nbsp;        double get98thPercentile();
    +&nbsp;
    +&nbsp;        double get99thPercentile();
    +&nbsp;
    +&nbsp;        double get999thPercentile();
    +&nbsp;
    +&nbsp;        long[] values();
    +&nbsp;
    +&nbsp;        String getDurationUnit();
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static class JmxTimer extends JmxMeter implements JmxTimerMBean {</b>
    +&nbsp;        private final Timer metric;
    +&nbsp;        private final double durationFactor;
    +&nbsp;        private final String durationUnit;
    +&nbsp;
    +&nbsp;        private JmxTimer(Timer metric,
    +&nbsp;                         ObjectName objectName,
    +&nbsp;                         TimeUnit rateUnit,
    +&nbsp;                         TimeUnit durationUnit) {
    +<b class="fc">&nbsp;            super(metric, objectName, rateUnit);</b>
    +<b class="fc">&nbsp;            this.metric = metric;</b>
    +<b class="fc">&nbsp;            this.durationFactor = 1.0 / durationUnit.toNanos(1);</b>
    +<b class="fc">&nbsp;            this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get50thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMedian() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getMin() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMin() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getMax() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMax() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getMean() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMean() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getStdDev() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getStdDev() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get75thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get75thPercentile() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get95thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get95thPercentile() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get98thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get98thPercentile() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get99thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get99thPercentile() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get999thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get999thPercentile() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long[] values() {
    +<b class="nc">&nbsp;            return metric.getSnapshot().getValues();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getDurationUnit() {
    +<b class="fc">&nbsp;            return durationUnit;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class JmxListener implements MetricRegistryListener {</b>
    +&nbsp;        private final String name;
    +&nbsp;        private final MBeanServer mBeanServer;
    +&nbsp;        private final MetricFilter filter;
    +&nbsp;        private final MetricTimeUnits timeUnits;
    +&nbsp;        private final Map&lt;ObjectName, ObjectName&gt; registered;
    +&nbsp;        private final ObjectNameFactory objectNameFactory;
    +&nbsp;
    +<b class="fc">&nbsp;        private JmxListener(MBeanServer mBeanServer, String name, MetricFilter filter, MetricTimeUnits timeUnits, ObjectNameFactory objectNameFactory) {</b>
    +<b class="fc">&nbsp;            this.mBeanServer = mBeanServer;</b>
    +<b class="fc">&nbsp;            this.name = name;</b>
    +<b class="fc">&nbsp;            this.filter = filter;</b>
    +<b class="fc">&nbsp;            this.timeUnits = timeUnits;</b>
    +<b class="fc">&nbsp;            this.registered = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;            this.objectNameFactory = objectNameFactory;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private void registerMBean(Object mBean, ObjectName objectName) throws InstanceAlreadyExistsException, JMException {
    +<b class="fc">&nbsp;            ObjectInstance objectInstance = mBeanServer.registerMBean(mBean, objectName);</b>
    +<b class="fc">&nbsp;            if (objectInstance != null) {</b>
    +&nbsp;                // the websphere mbeanserver rewrites the objectname to include
    +&nbsp;                // cell, node &amp; server info
    +&nbsp;                // make sure we capture the new objectName for unregistration
    +<b class="fc">&nbsp;                registered.put(objectName, objectInstance.getObjectName());</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                registered.put(objectName, objectName);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private void unregisterMBean(ObjectName originalObjectName) throws InstanceNotFoundException, MBeanRegistrationException {
    +<b class="fc">&nbsp;            ObjectName storedObjectName = registered.remove(originalObjectName);</b>
    +<b class="fc">&nbsp;            if (storedObjectName != null) {</b>
    +<b class="fc">&nbsp;                mBeanServer.unregisterMBean(storedObjectName);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                mBeanServer.unregisterMBean(originalObjectName);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    +&nbsp;            try {
    +<b class="fc">&nbsp;                if (filter.matches(name, gauge)) {</b>
    +<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;gauges&quot;, name);</b>
    +<b class="fc">&nbsp;                    registerMBean(new JmxGauge(gauge, objectName), objectName);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    +<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register gauge&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (JMException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register gauge&quot;, e);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onGaugeRemoved(String name) {
    +&nbsp;            try {
    +<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;gauges&quot;, name);</b>
    +<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    +<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister gauge&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister gauge&quot;, e);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onCounterAdded(String name, Counter counter) {
    +&nbsp;            try {
    +<b class="fc">&nbsp;                if (filter.matches(name, counter)) {</b>
    +<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;counters&quot;, name);</b>
    +<b class="fc">&nbsp;                    registerMBean(new JmxCounter(counter, objectName), objectName);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    +<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register counter&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (JMException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register counter&quot;, e);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onCounterRemoved(String name) {
    +&nbsp;            try {
    +<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;counters&quot;, name);</b>
    +<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    +<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister counter&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister counter&quot;, e);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onHistogramAdded(String name, Histogram histogram) {
    +&nbsp;            try {
    +<b class="fc">&nbsp;                if (filter.matches(name, histogram)) {</b>
    +<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;histograms&quot;, name);</b>
    +<b class="fc">&nbsp;                    registerMBean(new JmxHistogram(histogram, objectName), objectName);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    +<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register histogram&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (JMException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register histogram&quot;, e);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onHistogramRemoved(String name) {
    +&nbsp;            try {
    +<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;histograms&quot;, name);</b>
    +<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    +<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister histogram&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister histogram&quot;, e);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onMeterAdded(String name, Meter meter) {
    +&nbsp;            try {
    +<b class="fc">&nbsp;                if (filter.matches(name, meter)) {</b>
    +<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;meters&quot;, name);</b>
    +<b class="fc">&nbsp;                    registerMBean(new JmxMeter(meter, objectName, timeUnits.rateFor(name)), objectName);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    +<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register meter&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (JMException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register meter&quot;, e);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onMeterRemoved(String name) {
    +&nbsp;            try {
    +<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;meters&quot;, name);</b>
    +<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    +<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister meter&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister meter&quot;, e);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimerAdded(String name, Timer timer) {
    +&nbsp;            try {
    +<b class="fc">&nbsp;                if (filter.matches(name, timer)) {</b>
    +<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;timers&quot;, name);</b>
    +<b class="fc">&nbsp;                    registerMBean(new JmxTimer(timer, objectName, timeUnits.rateFor(name), timeUnits.durationFor(name)), objectName);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    +<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register timer&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (JMException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register timer&quot;, e);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimerRemoved(String name) {
    +&nbsp;            try {
    +<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;timers&quot;, name);</b>
    +<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    +<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister timer&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister timer&quot;, e);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private ObjectName createName(String type, String name) {
    +<b class="fc">&nbsp;            return objectNameFactory.createName(type, this.name, name);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        void unregisterAll() {
    +<b class="fc">&nbsp;            for (ObjectName name : registered.keySet()) {</b>
    +&nbsp;                try {
    +<b class="fc">&nbsp;                    unregisterMBean(name);</b>
    +<b class="nc">&nbsp;                } catch (InstanceNotFoundException e) {</b>
    +<b class="nc">&nbsp;                    LOGGER.debug(&quot;Unable to unregister metric&quot;, e);</b>
    +<b class="nc">&nbsp;                } catch (MBeanRegistrationException e) {</b>
    +<b class="nc">&nbsp;                    LOGGER.warn(&quot;Unable to unregister metric&quot;, e);</b>
    +<b class="fc">&nbsp;                }</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            registered.clear();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class MetricTimeUnits {
    +&nbsp;        private final TimeUnit defaultRate;
    +&nbsp;        private final TimeUnit defaultDuration;
    +&nbsp;        private final Map&lt;String, TimeUnit&gt; rateOverrides;
    +&nbsp;        private final Map&lt;String, TimeUnit&gt; durationOverrides;
    +&nbsp;
    +&nbsp;        MetricTimeUnits(TimeUnit defaultRate,
    +&nbsp;                        TimeUnit defaultDuration,
    +&nbsp;                        Map&lt;String, TimeUnit&gt; rateOverrides,
    +<b class="fc">&nbsp;                        Map&lt;String, TimeUnit&gt; durationOverrides) {</b>
    +<b class="fc">&nbsp;            this.defaultRate = defaultRate;</b>
    +<b class="fc">&nbsp;            this.defaultDuration = defaultDuration;</b>
    +<b class="fc">&nbsp;            this.rateOverrides = rateOverrides;</b>
    +<b class="fc">&nbsp;            this.durationOverrides = durationOverrides;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public TimeUnit durationFor(String name) {
    +<b class="fc">&nbsp;            return durationOverrides.getOrDefault(name, defaultDuration);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public TimeUnit rateFor(String name) {
    +<b class="fc">&nbsp;            return rateOverrides.getOrDefault(name, defaultRate);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final JmxListener listener;
    +&nbsp;
    +&nbsp;    private JmxReporter(MBeanServer mBeanServer,
    +&nbsp;                        String domain,
    +&nbsp;                        MetricRegistry registry,
    +&nbsp;                        MetricFilter filter,
    +&nbsp;                        MetricTimeUnits timeUnits,
    +<b class="fc">&nbsp;                        ObjectNameFactory objectNameFactory) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.listener = new JmxListener(mBeanServer, domain, filter, timeUnits, objectNameFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Starts the reporter.
    +&nbsp;     */
    +&nbsp;    public void start() {
    +<b class="fc">&nbsp;        registry.addListener(listener);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Stops the reporter.
    +&nbsp;     */
    +&nbsp;    public void stop() {
    +<b class="fc">&nbsp;        registry.removeListener(listener);</b>
    +<b class="fc">&nbsp;        listener.unregisterAll();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Stops the reporter.
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void close() {
    +<b class="nc">&nbsp;        stop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Visible for testing
    +&nbsp;     */
    +&nbsp;    ObjectNameFactory getObjectNameFactory() {
    +<b class="fc">&nbsp;        return listener.objectNameFactory;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-3.html
    new file mode 100644
    index 0000000000..d992b188b5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-3.html
    @@ -0,0 +1,85 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ObjectNameFactory</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jmx</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ObjectNameFactory (com.codahale.metrics.jmx)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +  <tr>
    +    <td class="name">ObjectNameFactory$MockitoMock$VEj5MjvT</td>
    +  </tr>
    +  <tr>
    +    <td class="name">ObjectNameFactory$MockitoMock$VEj5MjvT$auxiliary$HFd15fvI</td>
    +  </tr>
    +  <tr>
    +    <td class="name">ObjectNameFactory$MockitoMock$VEj5MjvT$auxiliary$xPLVN6iS</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    +&nbsp;
    +&nbsp;import javax.management.ObjectName;
    +&nbsp;
    +&nbsp;public interface ObjectNameFactory {
    +&nbsp;
    +&nbsp;    ObjectName createName(String type, String domain, String name);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index.html
    new file mode 100644
    index 0000000000..b7c56e0576
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..25b87b4574
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..c55de48875
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..657359e213
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..f88c8c98b7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..bf1c4e2c81
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..e0f863a81b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..574798f09d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..a0de758ca3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..bbec467a14
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-1.html
    new file mode 100644
    index 0000000000..55ebf577fc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-1.html
    @@ -0,0 +1,217 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheckModule</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.json</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheckModule (com.codahale.metrics.json)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HealthCheckModule</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HealthCheckModule$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheckModule$HealthCheckResultSerializer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (27/27)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.json;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.health.HealthCheck;
    +&nbsp;import com.fasterxml.jackson.core.JsonGenerator;
    +&nbsp;import com.fasterxml.jackson.core.Version;
    +&nbsp;import com.fasterxml.jackson.databind.Module;
    +&nbsp;import com.fasterxml.jackson.databind.SerializerProvider;
    +&nbsp;import com.fasterxml.jackson.databind.module.SimpleSerializers;
    +&nbsp;import com.fasterxml.jackson.databind.ser.std.StdSerializer;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.Map;
    +&nbsp;
    +<b class="fc">&nbsp;public class HealthCheckModule extends Module {</b>
    +<b class="fc">&nbsp;    private static class HealthCheckResultSerializer extends StdSerializer&lt;HealthCheck.Result&gt; {</b>
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private HealthCheckResultSerializer() {
    +<b class="fc">&nbsp;            super(HealthCheck.Result.class);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(HealthCheck.Result result,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +<b class="fc">&nbsp;            json.writeBooleanField(&quot;healthy&quot;, result.isHealthy());</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final String message = result.getMessage();</b>
    +<b class="fc">&nbsp;            if (message != null) {</b>
    +<b class="fc">&nbsp;                json.writeStringField(&quot;message&quot;, message);</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            serializeThrowable(json, result.getError(), &quot;error&quot;);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;duration&quot;, result.getDuration());</b>
    +&nbsp;
    +<b class="fc">&nbsp;            Map&lt;String, Object&gt; details = result.getDetails();</b>
    +<b class="fc">&nbsp;            if (details != null &amp;&amp; !details.isEmpty()) {</b>
    +<b class="fc">&nbsp;                for (Map.Entry&lt;String, Object&gt; e : details.entrySet()) {</b>
    +<b class="fc">&nbsp;                    json.writeObjectField(e.getKey(), e.getValue());</b>
    +<b class="fc">&nbsp;                }</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            json.writeStringField(&quot;timestamp&quot;, result.getTimestamp());</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private void serializeThrowable(JsonGenerator json, Throwable error, String name) throws IOException {
    +<b class="fc">&nbsp;            if (error != null) {</b>
    +<b class="fc">&nbsp;                json.writeObjectFieldStart(name);</b>
    +<b class="fc">&nbsp;                json.writeStringField(&quot;type&quot;, error.getClass().getTypeName());</b>
    +<b class="fc">&nbsp;                json.writeStringField(&quot;message&quot;, error.getMessage());</b>
    +<b class="fc">&nbsp;                json.writeArrayFieldStart(&quot;stack&quot;);</b>
    +<b class="fc">&nbsp;                for (StackTraceElement element : error.getStackTrace()) {</b>
    +<b class="fc">&nbsp;                    json.writeString(element.toString());</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                json.writeEndArray();</b>
    +&nbsp;
    +<b class="fc">&nbsp;                if (error.getCause() != null) {</b>
    +<b class="fc">&nbsp;                    serializeThrowable(json, error.getCause(), &quot;cause&quot;);</b>
    +&nbsp;                }
    +&nbsp;
    +<b class="fc">&nbsp;                json.writeEndObject();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getModuleName() {
    +<b class="fc">&nbsp;        return &quot;healthchecks&quot;;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Version version() {
    +<b class="fc">&nbsp;        return MetricsModule.VERSION;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void setupModule(SetupContext context) {
    +<b class="fc">&nbsp;        context.addSerializers(new SimpleSerializers(Collections.singletonList(new HealthCheckResultSerializer())));</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-2.html
    new file mode 100644
    index 0000000000..c25ac1eb83
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-2.html
    @@ -0,0 +1,489 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricsModule</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.json</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricsModule</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (12/13)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">MetricsModule$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricsModule$CounterSerializer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricsModule$GaugeSerializer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricsModule$HistogramSerializer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricsModule$MeterSerializer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricsModule$MetricRegistrySerializer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricsModule$TimerSerializer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (33/33)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.json;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Histogram;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricFilter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Snapshot;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.fasterxml.jackson.core.JsonGenerator;
    +&nbsp;import com.fasterxml.jackson.core.Version;
    +&nbsp;import com.fasterxml.jackson.databind.Module;
    +&nbsp;import com.fasterxml.jackson.databind.SerializerProvider;
    +&nbsp;import com.fasterxml.jackson.databind.module.SimpleSerializers;
    +&nbsp;import com.fasterxml.jackson.databind.ser.std.StdSerializer;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +<b class="fc">&nbsp;public class MetricsModule extends Module {</b>
    +<b class="fc">&nbsp;    static final Version VERSION = new Version(4, 0, 0, &quot;&quot;, &quot;io.dropwizard.metrics&quot;, &quot;metrics-json&quot;);</b>
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +<b class="fc">&nbsp;    private static class GaugeSerializer extends StdSerializer&lt;Gauge&gt; {</b>
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private GaugeSerializer() {
    +<b class="fc">&nbsp;            super(Gauge.class);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(Gauge gauge,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +&nbsp;            final Object value;
    +&nbsp;            try {
    +<b class="fc">&nbsp;                value = gauge.getValue();</b>
    +<b class="fc">&nbsp;                json.writeObjectField(&quot;value&quot;, value);</b>
    +<b class="fc">&nbsp;            } catch (RuntimeException e) {</b>
    +<b class="fc">&nbsp;                json.writeObjectField(&quot;error&quot;, e.toString());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class CounterSerializer extends StdSerializer&lt;Counter&gt; {</b>
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private CounterSerializer() {
    +<b class="fc">&nbsp;            super(Counter.class);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(Counter counter,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, counter.getCount());</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class HistogramSerializer extends StdSerializer&lt;Histogram&gt; {</b>
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private final boolean showSamples;
    +&nbsp;
    +&nbsp;        private HistogramSerializer(boolean showSamples) {
    +<b class="fc">&nbsp;            super(Histogram.class);</b>
    +<b class="fc">&nbsp;            this.showSamples = showSamples;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(Histogram histogram,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +<b class="fc">&nbsp;            final Snapshot snapshot = histogram.getSnapshot();</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, histogram.getCount());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;max&quot;, snapshot.getMax());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;mean&quot;, snapshot.getMean());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;min&quot;, snapshot.getMin());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p50&quot;, snapshot.getMedian());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p75&quot;, snapshot.get75thPercentile());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p95&quot;, snapshot.get95thPercentile());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p98&quot;, snapshot.get98thPercentile());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p99&quot;, snapshot.get99thPercentile());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p999&quot;, snapshot.get999thPercentile());</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (showSamples) {</b>
    +<b class="fc">&nbsp;                json.writeObjectField(&quot;values&quot;, snapshot.getValues());</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;stddev&quot;, snapshot.getStdDev());</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class MeterSerializer extends StdSerializer&lt;Meter&gt; {
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private final String rateUnit;
    +&nbsp;        private final double rateFactor;
    +&nbsp;
    +&nbsp;        public MeterSerializer(TimeUnit rateUnit) {
    +<b class="fc">&nbsp;            super(Meter.class);</b>
    +<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    +<b class="fc">&nbsp;            this.rateUnit = calculateRateUnit(rateUnit, &quot;events&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(Meter meter,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, meter.getCount());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;m15_rate&quot;, meter.getFifteenMinuteRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;m1_rate&quot;, meter.getOneMinuteRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;m5_rate&quot;, meter.getFiveMinuteRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;mean_rate&quot;, meter.getMeanRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeStringField(&quot;units&quot;, rateUnit);</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class TimerSerializer extends StdSerializer&lt;Timer&gt; {</b>
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private final String rateUnit;
    +&nbsp;        private final double rateFactor;
    +&nbsp;        private final String durationUnit;
    +&nbsp;        private final double durationFactor;
    +&nbsp;        private final boolean showSamples;
    +&nbsp;
    +&nbsp;        private TimerSerializer(TimeUnit rateUnit,
    +&nbsp;                                TimeUnit durationUnit,
    +&nbsp;                                boolean showSamples) {
    +<b class="fc">&nbsp;            super(Timer.class);</b>
    +<b class="fc">&nbsp;            this.rateUnit = calculateRateUnit(rateUnit, &quot;calls&quot;);</b>
    +<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    +<b class="fc">&nbsp;            this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    +<b class="fc">&nbsp;            this.durationFactor = 1.0 / durationUnit.toNanos(1);</b>
    +<b class="fc">&nbsp;            this.showSamples = showSamples;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(Timer timer,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +<b class="fc">&nbsp;            final Snapshot snapshot = timer.getSnapshot();</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, timer.getCount());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;max&quot;, snapshot.getMax() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;mean&quot;, snapshot.getMean() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;min&quot;, snapshot.getMin() * durationFactor);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p50&quot;, snapshot.getMedian() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p75&quot;, snapshot.get75thPercentile() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p95&quot;, snapshot.get95thPercentile() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p98&quot;, snapshot.get98thPercentile() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p99&quot;, snapshot.get99thPercentile() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p999&quot;, snapshot.get999thPercentile() * durationFactor);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (showSamples) {</b>
    +<b class="fc">&nbsp;                final long[] values = snapshot.getValues();</b>
    +<b class="fc">&nbsp;                final double[] scaledValues = new double[values.length];</b>
    +<b class="fc">&nbsp;                for (int i = 0; i &lt; values.length; i++) {</b>
    +<b class="fc">&nbsp;                    scaledValues[i] = values[i] * durationFactor;</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                json.writeObjectField(&quot;values&quot;, scaledValues);</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;stddev&quot;, snapshot.getStdDev() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;m15_rate&quot;, timer.getFifteenMinuteRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;m1_rate&quot;, timer.getOneMinuteRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;m5_rate&quot;, timer.getFiveMinuteRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;mean_rate&quot;, timer.getMeanRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeStringField(&quot;duration_units&quot;, durationUnit);</b>
    +<b class="fc">&nbsp;            json.writeStringField(&quot;rate_units&quot;, rateUnit);</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class MetricRegistrySerializer extends StdSerializer&lt;MetricRegistry&gt; {</b>
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private final MetricFilter filter;
    +&nbsp;
    +&nbsp;        private MetricRegistrySerializer(MetricFilter filter) {
    +<b class="fc">&nbsp;            super(MetricRegistry.class);</b>
    +<b class="fc">&nbsp;            this.filter = filter;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(MetricRegistry registry,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +<b class="fc">&nbsp;            json.writeStringField(&quot;version&quot;, VERSION.toString());</b>
    +<b class="fc">&nbsp;            json.writeObjectField(&quot;gauges&quot;, registry.getGauges(filter));</b>
    +<b class="fc">&nbsp;            json.writeObjectField(&quot;counters&quot;, registry.getCounters(filter));</b>
    +<b class="fc">&nbsp;            json.writeObjectField(&quot;histograms&quot;, registry.getHistograms(filter));</b>
    +<b class="fc">&nbsp;            json.writeObjectField(&quot;meters&quot;, registry.getMeters(filter));</b>
    +<b class="fc">&nbsp;            json.writeObjectField(&quot;timers&quot;, registry.getTimers(filter));</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected final TimeUnit rateUnit;
    +&nbsp;    protected final TimeUnit durationUnit;
    +&nbsp;    protected final boolean showSamples;
    +&nbsp;    protected final MetricFilter filter;
    +&nbsp;
    +&nbsp;    public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples) {
    +<b class="nc">&nbsp;        this(rateUnit, durationUnit, showSamples, MetricFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples, MetricFilter filter) {</b>
    +<b class="fc">&nbsp;        this.rateUnit = rateUnit;</b>
    +<b class="fc">&nbsp;        this.durationUnit = durationUnit;</b>
    +<b class="fc">&nbsp;        this.showSamples = showSamples;</b>
    +<b class="fc">&nbsp;        this.filter = filter;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getModuleName() {
    +<b class="fc">&nbsp;        return &quot;metrics&quot;;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Version version() {
    +<b class="fc">&nbsp;        return VERSION;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void setupModule(SetupContext context) {
    +<b class="fc">&nbsp;        context.addSerializers(new SimpleSerializers(Arrays.asList(</b>
    +&nbsp;                new GaugeSerializer(),
    +&nbsp;                new CounterSerializer(),
    +&nbsp;                new HistogramSerializer(showSamples),
    +&nbsp;                new MeterSerializer(rateUnit),
    +&nbsp;                new TimerSerializer(rateUnit, durationUnit, showSamples),
    +&nbsp;                new MetricRegistrySerializer(filter)
    +&nbsp;        )));
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static String calculateRateUnit(TimeUnit unit, String name) {
    +<b class="fc">&nbsp;        final String s = unit.toString().toLowerCase(Locale.US);</b>
    +<b class="fc">&nbsp;        return name + &#39;/&#39; + s.substring(0, s.length() - 1);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index.html
    new file mode 100644
    index 0000000000..694da4b4a7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..2af4387d01
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..f8d0c2e85d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..a71678fd11
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..25346c7c99
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..92cf0a4e41
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..fd0c1491b2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..9de0b4ab7d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..478c66df27
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..8430d7de88
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-1.html
    new file mode 100644
    index 0000000000..17df85cbdf
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-1.html
    @@ -0,0 +1,156 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > BufferPoolMetricSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: BufferPoolMetricSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">BufferPoolMetricSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import javax.management.JMException;
    +&nbsp;import javax.management.MBeanServer;
    +&nbsp;import javax.management.ObjectName;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Map;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of gauges for the count, usage, and capacity of the JVM&#39;s direct and mapped buffer pools.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * These JMX objects are only available on Java 7 and above.
    +&nbsp; */
    +&nbsp;public class BufferPoolMetricSet implements MetricSet {
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(BufferPoolMetricSet.class);</b>
    +<b class="fc">&nbsp;    private static final String[] ATTRIBUTES = {&quot;Count&quot;, &quot;MemoryUsed&quot;, &quot;TotalCapacity&quot;};</b>
    +<b class="fc">&nbsp;    private static final String[] NAMES = {&quot;count&quot;, &quot;used&quot;, &quot;capacity&quot;};</b>
    +<b class="fc">&nbsp;    private static final String[] POOLS = {&quot;direct&quot;, &quot;mapped&quot;};</b>
    +&nbsp;
    +&nbsp;    private final MBeanServer mBeanServer;
    +&nbsp;
    +<b class="fc">&nbsp;    public BufferPoolMetricSet(MBeanServer mBeanServer) {</b>
    +<b class="fc">&nbsp;        this.mBeanServer = mBeanServer;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        for (String pool : POOLS) {</b>
    +<b class="fc">&nbsp;            for (int i = 0; i &lt; ATTRIBUTES.length; i++) {</b>
    +<b class="fc">&nbsp;                final String attribute = ATTRIBUTES[i];</b>
    +<b class="fc">&nbsp;                final String name = NAMES[i];</b>
    +&nbsp;                try {
    +<b class="fc">&nbsp;                    final ObjectName on = new ObjectName(&quot;java.nio:type=BufferPool,name=&quot; + pool);</b>
    +<b class="fc">&nbsp;                    mBeanServer.getMBeanInfo(on);</b>
    +<b class="fc">&nbsp;                    gauges.put(name(pool, name), new JmxAttributeGauge(mBeanServer, on, attribute));</b>
    +<b class="fc">&nbsp;                } catch (JMException ignored) {</b>
    +<b class="fc">&nbsp;                    LOGGER.debug(&quot;Unable to load buffer pool MBeans, possibly running on Java 6&quot;);</b>
    +<b class="fc">&nbsp;                }</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-2.html
    new file mode 100644
    index 0000000000..cf259d8285
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-2.html
    @@ -0,0 +1,184 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CachedThreadStatesGaugeSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CachedThreadStatesGaugeSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CachedThreadStatesGaugeSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">CachedThreadStatesGaugeSet$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.ThreadInfo;
    +&nbsp;import java.lang.management.ThreadMXBean;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.CachedGauge;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A variation of ThreadStatesGaugeSet that caches the ThreadInfo[] objects for
    +&nbsp; * a given interval.
    +&nbsp; */
    +<b class="fc">&nbsp;public class CachedThreadStatesGaugeSet extends ThreadStatesGaugeSet {</b>
    +&nbsp;
    +&nbsp;    private final CachedGauge&lt;ThreadInfo[]&gt; threadInfo;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges using the given MXBean and detector.
    +&nbsp;     * Caches the information for the given interval and time unit.
    +&nbsp;     *
    +&nbsp;     * @param threadMXBean     a thread MXBean
    +&nbsp;     * @param deadlockDetector a deadlock detector
    +&nbsp;     * @param interval         cache interval
    +&nbsp;     * @param unit             cache interval time unit
    +&nbsp;     */
    +&nbsp;    public CachedThreadStatesGaugeSet(final ThreadMXBean threadMXBean, ThreadDeadlockDetector deadlockDetector,
    +&nbsp;                                      long interval, TimeUnit unit) {
    +<b class="fc">&nbsp;        super(threadMXBean, deadlockDetector);</b>
    +<b class="fc">&nbsp;        threadInfo = new CachedGauge&lt;ThreadInfo[]&gt;(interval, unit) {</b>
    +&nbsp;            @Override
    +&nbsp;            protected ThreadInfo[] loadValue() {
    +<b class="fc">&nbsp;                return CachedThreadStatesGaugeSet.super.getThreadInfo();</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges using the default MXBeans.
    +&nbsp;     * Caches the information for the given interval and time unit.
    +&nbsp;     *
    +&nbsp;     * @param interval cache interval
    +&nbsp;     * @param unit     cache interval time unit
    +&nbsp;     */
    +&nbsp;    public CachedThreadStatesGaugeSet(long interval, TimeUnit unit) {
    +<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector(), interval, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    ThreadInfo[] getThreadInfo() {
    +<b class="fc">&nbsp;        return threadInfo.getValue();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-3.html
    new file mode 100644
    index 0000000000..18362fde84
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-3.html
    @@ -0,0 +1,139 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ClassLoadingGaugeSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ClassLoadingGaugeSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ClassLoadingGaugeSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;
    +&nbsp;import java.lang.management.ClassLoadingMXBean;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Map;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of gauges for JVM classloader usage.
    +&nbsp; */
    +&nbsp;public class ClassLoadingGaugeSet implements MetricSet {
    +&nbsp;
    +&nbsp;    private final ClassLoadingMXBean mxBean;
    +&nbsp;
    +&nbsp;    public ClassLoadingGaugeSet() {
    +<b class="nc">&nbsp;        this(ManagementFactory.getClassLoadingMXBean());</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public ClassLoadingGaugeSet(ClassLoadingMXBean mxBean) {</b>
    +<b class="fc">&nbsp;        this.mxBean = mxBean;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;loaded&quot;, (Gauge&lt;Long&gt;) mxBean::getTotalLoadedClassCount);</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;unloaded&quot;, (Gauge&lt;Long&gt;) mxBean::getUnloadedClassCount);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return gauges;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-4.html
    new file mode 100644
    index 0000000000..91591f63d3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-4.html
    @@ -0,0 +1,123 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CpuTimeClock</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CpuTimeClock (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CpuTimeClock</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.ThreadMXBean;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A clock implementation which returns the current thread&#39;s CPU time.
    +&nbsp; */
    +<b class="fc">&nbsp;public class CpuTimeClock extends Clock {</b>
    +&nbsp;
    +<b class="fc">&nbsp;    private static final ThreadMXBean THREAD_MX_BEAN = ManagementFactory.getThreadMXBean();</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public long getTick() {
    +<b class="fc">&nbsp;        return THREAD_MX_BEAN.getCurrentThreadCpuTime();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-5.html
    new file mode 100644
    index 0000000000..dadd339bfc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-5.html
    @@ -0,0 +1,154 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > FileDescriptorRatioGauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: FileDescriptorRatioGauge (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">FileDescriptorRatioGauge</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.OperatingSystemMXBean;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A gauge for the ratio of used to total file descriptors.
    +&nbsp; */
    +&nbsp;public class FileDescriptorRatioGauge extends RatioGauge {
    +<b class="fc">&nbsp;    private static boolean unixOperatingSystemMXBeanExists = false;</b>
    +&nbsp;
    +&nbsp;    private final OperatingSystemMXBean os;
    +&nbsp;
    +&nbsp;    static {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            Class.forName(&quot;com.sun.management.UnixOperatingSystemMXBean&quot;);</b>
    +<b class="fc">&nbsp;            unixOperatingSystemMXBeanExists = true;</b>
    +<b class="fc">&nbsp;        } catch (ClassNotFoundException e) {</b>
    +&nbsp;            // do nothing
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new gauge using the platform OS bean.
    +&nbsp;     */
    +&nbsp;    public FileDescriptorRatioGauge() {
    +<b class="fc">&nbsp;        this(ManagementFactory.getOperatingSystemMXBean());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new gauge using the given OS bean.
    +&nbsp;     *
    +&nbsp;     * @param os an {@link OperatingSystemMXBean}
    +&nbsp;     */
    +<b class="fc">&nbsp;    public FileDescriptorRatioGauge(OperatingSystemMXBean os) {</b>
    +<b class="fc">&nbsp;        this.os = os;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected Ratio getRatio() {
    +<b class="fc">&nbsp;        if (unixOperatingSystemMXBeanExists &amp;&amp; os instanceof com.sun.management.UnixOperatingSystemMXBean) {</b>
    +<b class="fc">&nbsp;            final com.sun.management.UnixOperatingSystemMXBean unixOs = (com.sun.management.UnixOperatingSystemMXBean) os;</b>
    +<b class="fc">&nbsp;            return Ratio.of(unixOs.getOpenFileDescriptorCount(), unixOs.getMaxFileDescriptorCount());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            return Ratio.of(Double.NaN, Double.NaN);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-6.html
    new file mode 100644
    index 0000000000..3debb48638
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-6.html
    @@ -0,0 +1,157 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > GarbageCollectorMetricSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: GarbageCollectorMetricSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">GarbageCollectorMetricSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;
    +&nbsp;import java.lang.management.GarbageCollectorMXBean;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.regex.Pattern;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of gauges for the counts and elapsed times of garbage collections.
    +&nbsp; */
    +&nbsp;public class GarbageCollectorMetricSet implements MetricSet {
    +<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    +&nbsp;
    +&nbsp;    private final List&lt;GarbageCollectorMXBean&gt; garbageCollectors;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges for all discoverable garbage collectors.
    +&nbsp;     */
    +&nbsp;    public GarbageCollectorMetricSet() {
    +<b class="fc">&nbsp;        this(ManagementFactory.getGarbageCollectorMXBeans());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges for the given collection of garbage collectors.
    +&nbsp;     *
    +&nbsp;     * @param garbageCollectors the garbage collectors
    +&nbsp;     */
    +<b class="fc">&nbsp;    public GarbageCollectorMetricSet(Collection&lt;GarbageCollectorMXBean&gt; garbageCollectors) {</b>
    +<b class="fc">&nbsp;        this.garbageCollectors = new ArrayList&lt;&gt;(garbageCollectors);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        for (final GarbageCollectorMXBean gc : garbageCollectors) {</b>
    +<b class="fc">&nbsp;            final String name = WHITESPACE.matcher(gc.getName()).replaceAll(&quot;-&quot;);</b>
    +<b class="fc">&nbsp;            gauges.put(name(name, &quot;count&quot;), (Gauge&lt;Long&gt;) gc::getCollectionCount);</b>
    +<b class="fc">&nbsp;            gauges.put(name(name, &quot;time&quot;), (Gauge&lt;Long&gt;) gc::getCollectionTime);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-7.html
    new file mode 100644
    index 0000000000..3885fe0d6c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-7.html
    @@ -0,0 +1,165 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > JmxAttributeGauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: JmxAttributeGauge (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">JmxAttributeGauge</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import javax.management.JMException;
    +&nbsp;import javax.management.MBeanServerConnection;
    +&nbsp;import javax.management.ObjectName;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.util.Set;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link Gauge} implementation which queries an {@link MBeanServerConnection} for an attribute of an object.
    +&nbsp; */
    +&nbsp;public class JmxAttributeGauge implements Gauge&lt;Object&gt; {
    +&nbsp;    private final MBeanServerConnection mBeanServerConn;
    +&nbsp;    private final ObjectName objectName;
    +&nbsp;    private final String attributeName;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new JmxAttributeGauge.
    +&nbsp;     *
    +&nbsp;     * @param objectName    the name of the object
    +&nbsp;     * @param attributeName the name of the object&#39;s attribute
    +&nbsp;     */
    +&nbsp;    public JmxAttributeGauge(ObjectName objectName, String attributeName) {
    +<b class="fc">&nbsp;        this(ManagementFactory.getPlatformMBeanServer(), objectName, attributeName);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new JmxAttributeGauge.
    +&nbsp;     *
    +&nbsp;     * @param mBeanServerConn the {@link MBeanServerConnection}
    +&nbsp;     * @param objectName      the name of the object
    +&nbsp;     * @param attributeName   the name of the object&#39;s attribute
    +&nbsp;     */
    +<b class="fc">&nbsp;    public JmxAttributeGauge(MBeanServerConnection mBeanServerConn, ObjectName objectName, String attributeName) {</b>
    +<b class="fc">&nbsp;        this.mBeanServerConn = mBeanServerConn;</b>
    +<b class="fc">&nbsp;        this.objectName = objectName;</b>
    +<b class="fc">&nbsp;        this.attributeName = attributeName;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Object getValue() {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return mBeanServerConn.getAttribute(getObjectName(), attributeName);</b>
    +<b class="fc">&nbsp;        } catch (IOException | JMException e) {</b>
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private ObjectName getObjectName() throws IOException {
    +<b class="fc">&nbsp;        if (objectName.isPattern()) {</b>
    +<b class="fc">&nbsp;            Set&lt;ObjectName&gt; foundNames = mBeanServerConn.queryNames(objectName, null);</b>
    +<b class="fc">&nbsp;            if (foundNames.size() == 1) {</b>
    +<b class="fc">&nbsp;                return foundNames.iterator().next();</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        return objectName;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-8.html
    new file mode 100644
    index 0000000000..cea0dd6e3a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-8.html
    @@ -0,0 +1,155 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > JvmAttributeGaugeSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: JvmAttributeGaugeSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">JvmAttributeGaugeSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.RuntimeMXBean;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.Map;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of gauges for the JVM name, vendor, and uptime.
    +&nbsp; */
    +&nbsp;public class JvmAttributeGaugeSet implements MetricSet {
    +&nbsp;    private final RuntimeMXBean runtime;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges.
    +&nbsp;     */
    +&nbsp;    public JvmAttributeGaugeSet() {
    +<b class="fc">&nbsp;        this(ManagementFactory.getRuntimeMXBean());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges with the given {@link RuntimeMXBean}.
    +&nbsp;     *
    +&nbsp;     * @param runtime JVM management interface with access to system properties
    +&nbsp;     */
    +<b class="fc">&nbsp;    public JvmAttributeGaugeSet(RuntimeMXBean runtime) {</b>
    +<b class="fc">&nbsp;        this.runtime = runtime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        gauges.put(&quot;name&quot;, (Gauge&lt;String&gt;) runtime::getName);</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;vendor&quot;, (Gauge&lt;String&gt;) () -&gt; String.format(Locale.US,</b>
    +&nbsp;                &quot;%s %s %s (%s)&quot;,
    +<b class="fc">&nbsp;                runtime.getVmVendor(),</b>
    +<b class="fc">&nbsp;                runtime.getVmName(),</b>
    +<b class="fc">&nbsp;                runtime.getVmVersion(),</b>
    +<b class="fc">&nbsp;                runtime.getSpecVersion()));</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;uptime&quot;, (Gauge&lt;Long&gt;) runtime::getUptime);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-9.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-9.html
    new file mode 100644
    index 0000000000..e68ef44832
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-9.html
    @@ -0,0 +1,274 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MemoryUsageGaugeSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MemoryUsageGaugeSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MemoryUsageGaugeSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (37/37)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">MemoryUsageGaugeSet$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MemoryUsageGaugeSet$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MemoryUsageGaugeSet$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.MemoryMXBean;
    +&nbsp;import java.lang.management.MemoryPoolMXBean;
    +&nbsp;import java.lang.management.MemoryUsage;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.regex.Pattern;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of gauges for JVM memory usage, including stats on heap vs. non-heap memory, plus
    +&nbsp; * GC-specific memory pools.
    +&nbsp; */
    +<b class="fc">&nbsp;public class MemoryUsageGaugeSet implements MetricSet {</b>
    +<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    +&nbsp;
    +&nbsp;    private final MemoryMXBean mxBean;
    +&nbsp;    private final List&lt;MemoryPoolMXBean&gt; memoryPools;
    +&nbsp;
    +&nbsp;    public MemoryUsageGaugeSet() {
    +<b class="fc">&nbsp;        this(ManagementFactory.getMemoryMXBean(), ManagementFactory.getMemoryPoolMXBeans());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public MemoryUsageGaugeSet(MemoryMXBean mxBean,
    +<b class="fc">&nbsp;                               Collection&lt;MemoryPoolMXBean&gt; memoryPools) {</b>
    +<b class="fc">&nbsp;        this.mxBean = mxBean;</b>
    +<b class="fc">&nbsp;        this.memoryPools = new ArrayList&lt;&gt;(memoryPools);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        gauges.put(&quot;total.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getInit() +</b>
    +<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getInit());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;total.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getUsed() +</b>
    +<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getUsed());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;total.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getMax() == -1 ?</b>
    +<b class="fc">&nbsp;                -1 : mxBean.getHeapMemoryUsage().getMax() + mxBean.getNonHeapMemoryUsage().getMax());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;total.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getCommitted() +</b>
    +<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getCommitted());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        gauges.put(&quot;heap.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getInit());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;heap.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getUsed());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;heap.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getMax());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;heap.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getCommitted());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;heap.usage&quot;, new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="fc">&nbsp;                final MemoryUsage usage = mxBean.getHeapMemoryUsage();</b>
    +<b class="fc">&nbsp;                return Ratio.of(usage.getUsed(), usage.getMax());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        gauges.put(&quot;non-heap.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getInit());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;non-heap.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getUsed());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;non-heap.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getMax());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;non-heap.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getCommitted());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;non-heap.usage&quot;, new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="fc">&nbsp;                final MemoryUsage usage = mxBean.getNonHeapMemoryUsage();</b>
    +<b class="fc">&nbsp;                return Ratio.of(usage.getUsed(), usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        for (final MemoryPoolMXBean pool : memoryPools) {</b>
    +<b class="fc">&nbsp;            final String poolName = name(&quot;pools&quot;, WHITESPACE.matcher(pool.getName()).replaceAll(&quot;-&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;usage&quot;), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="fc">&nbsp;                    MemoryUsage usage = pool.getUsage();</b>
    +<b class="fc">&nbsp;                    return Ratio.of(usage.getUsed(),</b>
    +<b class="fc">&nbsp;                            usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;max&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getMax());</b>
    +<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;used&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getUsed());</b>
    +<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;committed&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getCommitted());</b>
    +&nbsp;
    +&nbsp;            // Only register GC usage metrics if the memory pool supports usage statistics.
    +<b class="fc">&nbsp;            if (pool.getCollectionUsage() != null) {</b>
    +<b class="fc">&nbsp;                gauges.put(name(poolName, &quot;used-after-gc&quot;), (Gauge&lt;Long&gt;) () -&gt;</b>
    +<b class="fc">&nbsp;                        pool.getCollectionUsage().getUsed());</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;init&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getInit());</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-a.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-a.html
    new file mode 100644
    index 0000000000..492d4a4da6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-a.html
    @@ -0,0 +1,169 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ThreadDeadlockDetector</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ThreadDeadlockDetector (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ThreadDeadlockDetector</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.ThreadInfo;
    +&nbsp;import java.lang.management.ThreadMXBean;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashSet;
    +&nbsp;import java.util.Set;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A utility class for detecting deadlocked threads.
    +&nbsp; */
    +&nbsp;public class ThreadDeadlockDetector {
    +&nbsp;    private static final int MAX_STACK_TRACE_DEPTH = 100;
    +&nbsp;
    +&nbsp;    private final ThreadMXBean threads;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new detector.
    +&nbsp;     */
    +&nbsp;    public ThreadDeadlockDetector() {
    +<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new detector using the given {@link ThreadMXBean}.
    +&nbsp;     *
    +&nbsp;     * @param threads a {@link ThreadMXBean}
    +&nbsp;     */
    +<b class="fc">&nbsp;    public ThreadDeadlockDetector(ThreadMXBean threads) {</b>
    +<b class="fc">&nbsp;        this.threads = threads;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a set of diagnostic stack traces for any deadlocked threads. If no threads are
    +&nbsp;     * deadlocked, returns an empty set.
    +&nbsp;     *
    +&nbsp;     * @return stack traces for deadlocked threads or an empty set
    +&nbsp;     */
    +&nbsp;    public Set&lt;String&gt; getDeadlockedThreads() {
    +<b class="fc">&nbsp;        final long[] ids = threads.findDeadlockedThreads();</b>
    +<b class="fc">&nbsp;        if (ids != null) {</b>
    +<b class="fc">&nbsp;            final Set&lt;String&gt; deadlocks = new HashSet&lt;&gt;();</b>
    +<b class="fc">&nbsp;            for (ThreadInfo info : threads.getThreadInfo(ids, MAX_STACK_TRACE_DEPTH)) {</b>
    +<b class="fc">&nbsp;                final StringBuilder stackTrace = new StringBuilder();</b>
    +<b class="fc">&nbsp;                for (StackTraceElement element : info.getStackTrace()) {</b>
    +<b class="fc">&nbsp;                    stackTrace.append(&quot;\t at &quot;)</b>
    +<b class="fc">&nbsp;                            .append(element.toString())</b>
    +<b class="fc">&nbsp;                            .append(String.format(&quot;%n&quot;));</b>
    +&nbsp;                }
    +&nbsp;
    +<b class="fc">&nbsp;                deadlocks.add(</b>
    +<b class="fc">&nbsp;                        String.format(&quot;%s locked on %s (owned by %s):%n%s&quot;,</b>
    +<b class="fc">&nbsp;                                info.getThreadName(),</b>
    +<b class="fc">&nbsp;                                info.getLockName(),</b>
    +<b class="fc">&nbsp;                                info.getLockOwnerName(),</b>
    +<b class="fc">&nbsp;                                stackTrace.toString()</b>
    +&nbsp;                        )
    +&nbsp;                );
    +&nbsp;            }
    +<b class="fc">&nbsp;            return Collections.unmodifiableSet(deadlocks);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return Collections.emptySet();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-b.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-b.html
    new file mode 100644
    index 0000000000..b3520e52bf
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-b.html
    @@ -0,0 +1,217 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ThreadDump</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ThreadDump (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ThreadDump</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.io.OutputStreamWriter;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;import java.lang.management.LockInfo;
    +&nbsp;import java.lang.management.MonitorInfo;
    +&nbsp;import java.lang.management.ThreadInfo;
    +&nbsp;import java.lang.management.ThreadMXBean;
    +&nbsp;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A convenience class for getting a thread dump.
    +&nbsp; */
    +&nbsp;public class ThreadDump {
    +&nbsp;
    +&nbsp;    private final ThreadMXBean threadMXBean;
    +&nbsp;
    +<b class="fc">&nbsp;    public ThreadDump(ThreadMXBean threadMXBean) {</b>
    +<b class="fc">&nbsp;        this.threadMXBean = threadMXBean;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Dumps all of the threads&#39; current information, including synchronization, to an output stream.
    +&nbsp;     *
    +&nbsp;     * @param out an output stream
    +&nbsp;     */
    +&nbsp;    public void dump(OutputStream out) {
    +<b class="fc">&nbsp;        dump(true, true, out);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Dumps all of the threads&#39; current information, optionally including synchronization, to an output stream.
    +&nbsp;     *
    +&nbsp;     * Having control over including synchronization info allows using this method (and its wrappers, i.e.
    +&nbsp;     * ThreadDumpServlet) in environments where getting object monitor and/or ownable synchronizer usage is not
    +&nbsp;     * supported. It can also speed things up.
    +&nbsp;     *
    +&nbsp;     * See {@link ThreadMXBean#dumpAllThreads(boolean, boolean)}
    +&nbsp;     *
    +&nbsp;     * @param lockedMonitors dump all locked monitors if true
    +&nbsp;     * @param lockedSynchronizers dump all locked ownable synchronizers if true
    +&nbsp;     * @param out an output stream
    +&nbsp;     */
    +&nbsp;    public void dump(boolean lockedMonitors, boolean lockedSynchronizers, OutputStream out) {
    +<b class="fc">&nbsp;        final ThreadInfo[] threads = this.threadMXBean.dumpAllThreads(lockedMonitors, lockedSynchronizers);</b>
    +<b class="fc">&nbsp;        final PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, UTF_8));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (int ti = threads.length - 1; ti &gt;= 0; ti--) {</b>
    +<b class="fc">&nbsp;            final ThreadInfo t = threads[ti];</b>
    +<b class="fc">&nbsp;            writer.printf(&quot;\&quot;%s\&quot; id=%d state=%s&quot;,</b>
    +<b class="fc">&nbsp;                    t.getThreadName(),</b>
    +<b class="fc">&nbsp;                    t.getThreadId(),</b>
    +<b class="fc">&nbsp;                    t.getThreadState());</b>
    +<b class="fc">&nbsp;            final LockInfo lock = t.getLockInfo();</b>
    +<b class="fc">&nbsp;            if (lock != null &amp;&amp; t.getThreadState() != Thread.State.BLOCKED) {</b>
    +<b class="fc">&nbsp;                writer.printf(&quot;%n    - waiting on &lt;0x%08x&gt; (a %s)&quot;,</b>
    +<b class="fc">&nbsp;                        lock.getIdentityHashCode(),</b>
    +<b class="fc">&nbsp;                        lock.getClassName());</b>
    +<b class="fc">&nbsp;                writer.printf(&quot;%n    - locked &lt;0x%08x&gt; (a %s)&quot;,</b>
    +<b class="fc">&nbsp;                        lock.getIdentityHashCode(),</b>
    +<b class="fc">&nbsp;                        lock.getClassName());</b>
    +<b class="fc">&nbsp;            } else if (lock != null &amp;&amp; t.getThreadState() == Thread.State.BLOCKED) {</b>
    +<b class="nc">&nbsp;                writer.printf(&quot;%n    - waiting to lock &lt;0x%08x&gt; (a %s)&quot;,</b>
    +<b class="nc">&nbsp;                        lock.getIdentityHashCode(),</b>
    +<b class="nc">&nbsp;                        lock.getClassName());</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            if (t.isSuspended()) {</b>
    +<b class="nc">&nbsp;                writer.print(&quot; (suspended)&quot;);</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            if (t.isInNative()) {</b>
    +<b class="fc">&nbsp;                writer.print(&quot; (running in native)&quot;);</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            writer.println();</b>
    +<b class="fc">&nbsp;            if (t.getLockOwnerName() != null) {</b>
    +<b class="nc">&nbsp;                writer.printf(&quot;     owned by %s id=%d%n&quot;, t.getLockOwnerName(), t.getLockOwnerId());</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            final StackTraceElement[] elements = t.getStackTrace();</b>
    +<b class="fc">&nbsp;            final MonitorInfo[] monitors = t.getLockedMonitors();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (int i = 0; i &lt; elements.length; i++) {</b>
    +<b class="fc">&nbsp;                final StackTraceElement element = elements[i];</b>
    +<b class="fc">&nbsp;                writer.printf(&quot;    at %s%n&quot;, element);</b>
    +<b class="fc">&nbsp;                for (int j = 1; j &lt; monitors.length; j++) {</b>
    +<b class="nc">&nbsp;                    final MonitorInfo monitor = monitors[j];</b>
    +<b class="nc">&nbsp;                    if (monitor.getLockedStackDepth() == i) {</b>
    +<b class="nc">&nbsp;                        writer.printf(&quot;      - locked %s%n&quot;, monitor);</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +<b class="fc">&nbsp;            writer.println();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final LockInfo[] locks = t.getLockedSynchronizers();</b>
    +<b class="fc">&nbsp;            if (locks.length &gt; 0) {</b>
    +<b class="fc">&nbsp;                writer.printf(&quot;    Locked synchronizers: count = %d%n&quot;, locks.length);</b>
    +<b class="fc">&nbsp;                for (LockInfo l : locks) {</b>
    +<b class="fc">&nbsp;                    writer.printf(&quot;      - %s%n&quot;, l);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                writer.println();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        writer.println();</b>
    +<b class="fc">&nbsp;        writer.flush();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-c.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-c.html
    new file mode 100644
    index 0000000000..ce6a59b5d5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-c.html
    @@ -0,0 +1,185 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ThreadStatesGaugeSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ThreadStatesGaugeSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ThreadStatesGaugeSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.ThreadInfo;
    +&nbsp;import java.lang.management.ThreadMXBean;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of gauges for the number of threads in their various states and deadlock detection.
    +&nbsp; */
    +&nbsp;public class ThreadStatesGaugeSet implements MetricSet {
    +&nbsp;
    +&nbsp;    // do not compute stack traces.
    +&nbsp;    private final static int STACK_TRACE_DEPTH = 0;
    +&nbsp;
    +&nbsp;    private final ThreadMXBean threads;
    +&nbsp;    private final ThreadDeadlockDetector deadlockDetector;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges using the default MXBeans.
    +&nbsp;     */
    +&nbsp;    public ThreadStatesGaugeSet() {
    +<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges using the given MXBean and detector.
    +&nbsp;     *
    +&nbsp;     * @param threads          a thread MXBean
    +&nbsp;     * @param deadlockDetector a deadlock detector
    +&nbsp;     */
    +&nbsp;    public ThreadStatesGaugeSet(ThreadMXBean threads,
    +<b class="fc">&nbsp;                                ThreadDeadlockDetector deadlockDetector) {</b>
    +<b class="fc">&nbsp;        this.threads = threads;</b>
    +<b class="fc">&nbsp;        this.deadlockDetector = deadlockDetector;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (final Thread.State state : Thread.State.values()) {</b>
    +<b class="fc">&nbsp;            gauges.put(name(state.toString().toLowerCase(), &quot;count&quot;),</b>
    +<b class="fc">&nbsp;                    (Gauge&lt;Object&gt;) () -&gt; getThreadCount(state));</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        gauges.put(&quot;count&quot;, (Gauge&lt;Integer&gt;) threads::getThreadCount);</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;daemon.count&quot;, (Gauge&lt;Integer&gt;) threads::getDaemonThreadCount);</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;peak.count&quot;, (Gauge&lt;Integer&gt;) threads::getPeakThreadCount);</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;total_started.count&quot;, (Gauge&lt;Long&gt;) threads::getTotalStartedThreadCount);</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;deadlock.count&quot;, (Gauge&lt;Integer&gt;) () -&gt; deadlockDetector.getDeadlockedThreads().size());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;deadlocks&quot;, (Gauge&lt;Set&lt;String&gt;&gt;) deadlockDetector::getDeadlockedThreads);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private int getThreadCount(Thread.State state) {
    +<b class="fc">&nbsp;        final ThreadInfo[] allThreads = getThreadInfo();</b>
    +<b class="fc">&nbsp;        int count = 0;</b>
    +<b class="fc">&nbsp;        for (ThreadInfo info : allThreads) {</b>
    +<b class="fc">&nbsp;            if (info != null &amp;&amp; info.getThreadState() == state) {</b>
    +<b class="fc">&nbsp;                count++;</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        return count;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    ThreadInfo[] getThreadInfo() {
    +<b class="fc">&nbsp;        return threads.getThreadInfo(threads.getAllThreadIds(), STACK_TRACE_DEPTH);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index.html
    new file mode 100644
    index 0000000000..cbcbdd88cb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..51cb88055a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..dc9fb5422c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..e3838a2499
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..ac9d5a505b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..78a6a3231e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..e81c0ce121
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..01a2f66a49
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..f4988d58af
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..922a2b7fc0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-1.html
    new file mode 100644
    index 0000000000..8cfa9693f9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-1.html
    @@ -0,0 +1,268 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedAppender</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.log4j2</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.log4j2)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedAppender</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (29/30)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedAppender$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.log4j2;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;import org.apache.logging.log4j.core.Appender;
    +&nbsp;import org.apache.logging.log4j.core.Filter;
    +&nbsp;import org.apache.logging.log4j.core.Layout;
    +&nbsp;import org.apache.logging.log4j.core.LogEvent;
    +&nbsp;import org.apache.logging.log4j.core.appender.AbstractAppender;
    +&nbsp;import org.apache.logging.log4j.core.config.plugins.Plugin;
    +&nbsp;import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
    +&nbsp;import org.apache.logging.log4j.core.config.plugins.PluginFactory;
    +&nbsp;
    +&nbsp;import java.io.Serializable;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Log4J 2.x {@link Appender} which has seven meters, one for each logging level and one for the total
    +&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    +&nbsp; * name of the appender.
    +&nbsp; */
    +&nbsp;@Plugin(name = &quot;MetricsAppender&quot;, category = &quot;Core&quot;, elementType = &quot;appender&quot;)
    +&nbsp;public class InstrumentedAppender extends AbstractAppender {
    +&nbsp;
    +&nbsp;    private transient final MetricRegistry registry;
    +&nbsp;
    +&nbsp;    private transient Meter all;
    +&nbsp;    private transient Meter trace;
    +&nbsp;    private transient Meter debug;
    +&nbsp;    private transient Meter info;
    +&nbsp;    private transient Meter warn;
    +&nbsp;    private transient Meter error;
    +&nbsp;    private transient Meter fatal;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     *
    +&nbsp;     * @param registryName     the name of the registry in {@link SharedMetricRegistries}
    +&nbsp;     * @param filter           The Filter to associate with the Appender.
    +&nbsp;     * @param layout           The layout to use to format the event.
    +&nbsp;     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
    +&nbsp;     *                         logged and then passed to the application.
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(String registryName, Filter filter, Layout&lt;? extends Serializable&gt; layout, boolean ignoreExceptions) {
    +<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName), filter, layout, ignoreExceptions);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     *
    +&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(String registryName) {
    +<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the metric registry
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, null, null, true);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry.
    +&nbsp;     *
    +&nbsp;     * @param registry         the metric registry
    +&nbsp;     * @param filter           The Filter to associate with the Appender.
    +&nbsp;     * @param layout           The layout to use to format the event.
    +&nbsp;     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
    +&nbsp;     *                         logged and then passed to the application.
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(MetricRegistry registry, Filter filter, Layout&lt;? extends Serializable&gt; layout, boolean ignoreExceptions) {
    +<b class="fc">&nbsp;        super(name(Appender.class), filter, layout, ignoreExceptions);</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given appender name and registry.
    +&nbsp;     *
    +&nbsp;     * @param appenderName The name of the appender.
    +&nbsp;     * @param registry     the metric registry
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(String appenderName, MetricRegistry registry) {
    +<b class="fc">&nbsp;        super(appenderName, null, null, true);</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @PluginFactory
    +&nbsp;    public static InstrumentedAppender createAppender(
    +&nbsp;            @PluginAttribute(&quot;name&quot;) String name,
    +&nbsp;            @PluginAttribute(value = &quot;registryName&quot;, defaultString = &quot;log4j2Metrics&quot;) String registry) {
    +<b class="fc">&nbsp;        return new InstrumentedAppender(name, SharedMetricRegistries.getOrCreate(registry));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void start() {
    +<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    +<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    +<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    +<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    +<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    +<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    +<b class="fc">&nbsp;        this.fatal = registry.meter(name(getName(), &quot;fatal&quot;));</b>
    +<b class="fc">&nbsp;        super.start();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void append(LogEvent event) {
    +<b class="fc">&nbsp;        all.mark();</b>
    +<b class="fc">&nbsp;        switch (event.getLevel().getStandardLevel()) {</b>
    +&nbsp;            case TRACE:
    +<b class="fc">&nbsp;                trace.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case DEBUG:
    +<b class="fc">&nbsp;                debug.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case INFO:
    +<b class="fc">&nbsp;                info.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case WARN:
    +<b class="fc">&nbsp;                warn.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case ERROR:
    +<b class="fc">&nbsp;                error.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case FATAL:
    +<b class="fc">&nbsp;                fatal.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            default:
    +&nbsp;                break;
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index.html
    new file mode 100644
    index 0000000000..fdbe6a856a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..ed0d397c64
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..84100eaa93
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..d0a1d20d1f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..5d4080cf79
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..f4d484888d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..63e1ed7ac1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..d4e40acdd1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..3e468af9bf
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..769cc53eae
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/sources/source-1.html
    new file mode 100644
    index 0000000000..90cf136f50
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/sources/source-1.html
    @@ -0,0 +1,195 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedAppender</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.logback</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.logback)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedAppender</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.logback;
    +&nbsp;
    +&nbsp;import ch.qos.logback.classic.Level;
    +&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    +&nbsp;import ch.qos.logback.core.Appender;
    +&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    +&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    +&nbsp; * name of the appender.
    +&nbsp; */
    +&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    +&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    +&nbsp;
    +&nbsp;    private Meter all;
    +&nbsp;    private Meter trace;
    +&nbsp;    private Meter debug;
    +&nbsp;    private Meter info;
    +&nbsp;    private Meter warn;
    +&nbsp;    private Meter error;
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender() {
    +<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     *
    +&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(String registryName) {
    +<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the metric registry
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void start() {
    +<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    +<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    +<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    +<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    +<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    +<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    +<b class="fc">&nbsp;        super.start();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void append(ILoggingEvent event) {
    +<b class="fc">&nbsp;        all.mark();</b>
    +<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    +&nbsp;            case Level.TRACE_INT:
    +<b class="fc">&nbsp;                trace.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.DEBUG_INT:
    +<b class="fc">&nbsp;                debug.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.INFO_INT:
    +<b class="fc">&nbsp;                info.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.WARN_INT:
    +<b class="fc">&nbsp;                warn.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.ERROR_INT:
    +<b class="fc">&nbsp;                error.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            default:
    +&nbsp;                break;
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index.html
    new file mode 100644
    index 0000000000..fdaa17bede
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..c6feed0d56
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..6841be0e40
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..f8a5a02e99
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..f0e340190d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..656e92a113
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..e3c58ea239
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..779882973c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..1e8c0e6744
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..700dc41eec
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-1.html
    new file mode 100644
    index 0000000000..fdd8715a6a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-1.html
    @@ -0,0 +1,387 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > AbstractInstrumentedFilter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlet</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: AbstractInstrumentedFilter (com.codahale.metrics.servlet)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">AbstractInstrumentedFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/45)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;
    +&nbsp;import javax.servlet.AsyncEvent;
    +&nbsp;import javax.servlet.AsyncListener;
    +&nbsp;import javax.servlet.Filter;
    +&nbsp;import javax.servlet.FilterChain;
    +&nbsp;import javax.servlet.FilterConfig;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.ServletRequest;
    +&nbsp;import javax.servlet.ServletResponse;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import javax.servlet.http.HttpServletResponseWrapper;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Map.Entry;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    +&nbsp; * codes being returned.
    +&nbsp; */
    +<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    +&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    +&nbsp;
    +&nbsp;    private final String otherMetricName;
    +&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    +&nbsp;    private final String registryAttribute;
    +&nbsp;
    +&nbsp;    // initialized after call of init method
    +&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    +&nbsp;    private Meter otherMeter;
    +&nbsp;    private Meter timeoutsMeter;
    +&nbsp;    private Meter errorsMeter;
    +&nbsp;    private Counter activeRequests;
    +&nbsp;    private Timer requestTimer;
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new instance of the filter.
    +&nbsp;     *
    +&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    +&nbsp;     *                               servlet context
    +&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    +&nbsp;     *                               interested in.
    +&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    +&nbsp;     */
    +&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    +&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    +<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    +<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    +<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    +<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    +<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    +<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    +<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    +<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    +<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    +<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    +<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    +<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    +<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    +<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    +&nbsp;
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    +&nbsp;        final MetricRegistry metricsRegistry;
    +&nbsp;
    +<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    +<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    +<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        return metricsRegistry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void destroy() {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void doFilter(ServletRequest request,
    +&nbsp;                         ServletResponse response,
    +&nbsp;                         FilterChain chain) throws IOException, ServletException {
    +<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    +&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    +<b class="nc">&nbsp;        activeRequests.inc();</b>
    +<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    +<b class="nc">&nbsp;        boolean error = false;</b>
    +&nbsp;        try {
    +<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    +<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    +<b class="nc">&nbsp;            error = true;</b>
    +<b class="nc">&nbsp;            throw e;</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    +<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                context.stop();</b>
    +<b class="nc">&nbsp;                activeRequests.dec();</b>
    +<b class="nc">&nbsp;                if (error) {</b>
    +<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    +&nbsp;                } else {
    +<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void markMeterForStatusCode(int status) {
    +<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    +<b class="nc">&nbsp;        if (metric != null) {</b>
    +<b class="nc">&nbsp;            metric.mark();</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            otherMeter.mark();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    +&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    +<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    +&nbsp;
    +&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    +<b class="nc">&nbsp;            super(response);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void sendError(int sc) throws IOException {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.sendError(sc);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void sendError(int sc, String msg) throws IOException {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void setStatus(int sc) {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.setStatus(sc);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        @SuppressWarnings(&quot;deprecation&quot;)
    +&nbsp;        public void setStatus(int sc, String sm) {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.setStatus(sc, sm);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public int getStatus() {
    +<b class="nc">&nbsp;            return httpStatus;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class AsyncResultListener implements AsyncListener {
    +&nbsp;        private Timer.Context context;
    +<b class="nc">&nbsp;        private boolean done = false;</b>
    +&nbsp;
    +<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    +<b class="nc">&nbsp;            this.context = context;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            if (!done) {</b>
    +<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    +<b class="nc">&nbsp;                context.stop();</b>
    +<b class="nc">&nbsp;                activeRequests.dec();</b>
    +<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            context.stop();</b>
    +<b class="nc">&nbsp;            activeRequests.dec();</b>
    +<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    +<b class="nc">&nbsp;            done = true;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            context.stop();</b>
    +<b class="nc">&nbsp;            activeRequests.dec();</b>
    +<b class="nc">&nbsp;            errorsMeter.mark();</b>
    +<b class="nc">&nbsp;            done = true;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +&nbsp;
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-2.html
    new file mode 100644
    index 0000000000..29242928bb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-2.html
    @@ -0,0 +1,152 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedFilter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlet</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedFilter (com.codahale.metrics.servlet)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    +&nbsp;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Map;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    +&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    +&nbsp; * &lt;pre&gt;{@code
    +&nbsp; * &lt;filter&gt;
    +&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    +&nbsp; *     &lt;filter-class&gt;com.codahale.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    +&nbsp; * &lt;/filter&gt;
    +&nbsp; * &lt;filter-mapping&gt;
    +&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    +&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    +&nbsp; * &lt;/filter-mapping&gt;
    +&nbsp; * }&lt;/pre&gt;
    +&nbsp; */
    +&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    +<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    +&nbsp;
    +&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    +&nbsp;    private static final int OK = 200;
    +&nbsp;    private static final int CREATED = 201;
    +&nbsp;    private static final int NO_CONTENT = 204;
    +&nbsp;    private static final int BAD_REQUEST = 400;
    +&nbsp;    private static final int NOT_FOUND = 404;
    +&nbsp;    private static final int SERVER_ERROR = 500;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new instance of the filter.
    +&nbsp;     */
    +&nbsp;    public InstrumentedFilter() {
    +<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    +<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    +<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-3.html
    new file mode 100644
    index 0000000000..61292c5575
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-3.html
    @@ -0,0 +1,131 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedFilterContextListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlet</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedFilterContextListener (com.codahale.metrics.servlet)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedFilterContextListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;
    +&nbsp;import javax.servlet.ServletContextEvent;
    +&nbsp;import javax.servlet.ServletContextListener;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    +&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    +&nbsp; * application.
    +&nbsp; */
    +<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    +&nbsp;    /**
    +&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    +&nbsp;     */
    +&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    +<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index.html
    new file mode 100644
    index 0000000000..3ccf4748a8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..7468974fbf
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..daec115e34
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..f3e8ca5a48
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..b0072c90fb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..3871c1e1d1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..83dc142a1e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..19d27f55ab
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..9d05a78705
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..2557fe869e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-1.html
    new file mode 100644
    index 0000000000..8e0b107152
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-1.html
    @@ -0,0 +1,293 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > AdminServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: AdminServlet (com.codahale.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">AdminServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +&nbsp;
    +&nbsp;import javax.servlet.ServletConfig;
    +&nbsp;import javax.servlet.ServletContext;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServlet;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;import java.text.MessageFormat;
    +&nbsp;
    +<b class="fc">&nbsp;public class AdminServlet extends HttpServlet {</b>
    +&nbsp;    public static final String DEFAULT_HEALTHCHECK_URI = &quot;/healthcheck&quot;;
    +&nbsp;    public static final String DEFAULT_METRICS_URI = &quot;/metrics&quot;;
    +&nbsp;    public static final String DEFAULT_PING_URI = &quot;/ping&quot;;
    +&nbsp;    public static final String DEFAULT_THREADS_URI = &quot;/threads&quot;;
    +&nbsp;    public static final String DEFAULT_CPU_PROFILE_URI = &quot;/pprof&quot;;
    +&nbsp;
    +&nbsp;    public static final String METRICS_ENABLED_PARAM_KEY = &quot;metrics-enabled&quot;;
    +&nbsp;    public static final String METRICS_URI_PARAM_KEY = &quot;metrics-uri&quot;;
    +&nbsp;    public static final String PING_ENABLED_PARAM_KEY = &quot;ping-enabled&quot;;
    +&nbsp;    public static final String PING_URI_PARAM_KEY = &quot;ping-uri&quot;;
    +&nbsp;    public static final String THREADS_ENABLED_PARAM_KEY = &quot;threads-enabled&quot;;
    +&nbsp;    public static final String THREADS_URI_PARAM_KEY = &quot;threads-uri&quot;;
    +&nbsp;    public static final String HEALTHCHECK_ENABLED_PARAM_KEY = &quot;healthcheck-enabled&quot;;
    +&nbsp;    public static final String HEALTHCHECK_URI_PARAM_KEY = &quot;healthcheck-uri&quot;;
    +&nbsp;    public static final String SERVICE_NAME_PARAM_KEY = &quot;service-name&quot;;
    +&nbsp;    public static final String CPU_PROFILE_ENABLED_PARAM_KEY = &quot;cpu-profile-enabled&quot;;
    +&nbsp;    public static final String CPU_PROFILE_URI_PARAM_KEY = &quot;cpu-profile-uri&quot;;
    +&nbsp;
    +&nbsp;    private static final String BASE_TEMPLATE =
    +&nbsp;            &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot;%n&quot; +
    +&nbsp;                    &quot;        \&quot;http://www.w3.org/TR/html4/loose.dtd\&quot;&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;html&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;head&gt;%n&quot; +
    +&nbsp;                    &quot;  &lt;title&gt;Metrics{10}&lt;/title&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;/head&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;body&gt;%n&quot; +
    +&nbsp;                    &quot;  &lt;h1&gt;Operational Menu{10}&lt;/h1&gt;%n&quot; +
    +&nbsp;                    &quot;  &lt;ul&gt;%n&quot; +
    +&nbsp;                    &quot;%s&quot; +
    +&nbsp;                    &quot;  &lt;/ul&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;/body&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;/html&gt;&quot;;
    +&nbsp;    private static final String METRICS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{0}{1}?pretty=true\&quot;&gt;Metrics&lt;/a&gt;&lt;/li&gt;%n&quot;;
    +&nbsp;    private static final String PING_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{2}{3}\&quot;&gt;Ping&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    +&nbsp;    private static final String THREADS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{4}{5}\&quot;&gt;Threads&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    +&nbsp;    private static final String HEALTHCHECK_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{6}{7}?pretty=true\&quot;&gt;Healthcheck&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    +&nbsp;    private static final String CPU_PROFILE_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}\&quot;&gt;CPU Profile&lt;/a&gt;&lt;/li&gt;%n&quot; +
    +&nbsp;            &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}?state=blocked\&quot;&gt;CPU Contention&lt;/a&gt;&lt;/li&gt;%n&quot;;
    +&nbsp;
    +&nbsp;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;text/html&quot;;
    +&nbsp;    private static final long serialVersionUID = -2850794040708785318L;
    +&nbsp;
    +&nbsp;    private transient HealthCheckServlet healthCheckServlet;
    +&nbsp;    private transient MetricsServlet metricsServlet;
    +&nbsp;    private transient PingServlet pingServlet;
    +&nbsp;    private transient ThreadDumpServlet threadDumpServlet;
    +&nbsp;    private transient CpuProfileServlet cpuProfileServlet;
    +&nbsp;    private transient boolean metricsEnabled;
    +&nbsp;    private transient String metricsUri;
    +&nbsp;    private transient boolean pingEnabled;
    +&nbsp;    private transient String pingUri;
    +&nbsp;    private transient boolean threadsEnabled;
    +&nbsp;    private transient String threadsUri;
    +&nbsp;    private transient boolean healthcheckEnabled;
    +&nbsp;    private transient String healthcheckUri;
    +&nbsp;    private transient boolean cpuProfileEnabled;
    +&nbsp;    private transient String cpuProfileUri;
    +&nbsp;    private transient String serviceName;
    +&nbsp;    private transient String pageContentTemplate;
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(ServletConfig config) throws ServletException {
    +<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    +<b class="fc">&nbsp;        final StringBuilder servletLinks = new StringBuilder();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.metricsEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.metricsEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(METRICS_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.metricsServlet = new MetricsServlet();</b>
    +<b class="fc">&nbsp;        metricsServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.pingEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.pingEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(PING_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.pingServlet = new PingServlet();</b>
    +<b class="fc">&nbsp;        pingServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.threadsEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.threadsEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(THREADS_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.threadDumpServlet = new ThreadDumpServlet();</b>
    +<b class="fc">&nbsp;        threadDumpServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.healthcheckEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.healthcheckEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(HEALTHCHECK_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.healthCheckServlet = new HealthCheckServlet();</b>
    +<b class="fc">&nbsp;        healthCheckServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.cpuProfileEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.cpuProfileEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(CPU_PROFILE_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.cpuProfileServlet = new CpuProfileServlet();</b>
    +<b class="fc">&nbsp;        cpuProfileServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);</b>
    +<b class="fc">&nbsp;        this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);</b>
    +<b class="fc">&nbsp;        this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);</b>
    +<b class="fc">&nbsp;        this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);</b>
    +<b class="fc">&nbsp;        this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);</b>
    +<b class="fc">&nbsp;        this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final String path = req.getContextPath() + req.getServletPath();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    +<b class="fc">&nbsp;            writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,</b>
    +&nbsp;                    threadsUri, path, healthcheckUri, path, cpuProfileUri,
    +<b class="fc">&nbsp;                    serviceName == null ? &quot;&quot; : &quot; (&quot; + serviceName + &quot;)&quot;));</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final String uri = req.getPathInfo();</b>
    +<b class="fc">&nbsp;        if (uri == null || uri.equals(&quot;/&quot;)) {</b>
    +<b class="fc">&nbsp;            super.service(req, resp);</b>
    +<b class="nc">&nbsp;        } else if (uri.equals(healthcheckUri)) {</b>
    +<b class="nc">&nbsp;            if (healthcheckEnabled) {</b>
    +<b class="nc">&nbsp;                healthCheckServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.startsWith(metricsUri)) {</b>
    +<b class="nc">&nbsp;            if (metricsEnabled) {</b>
    +<b class="nc">&nbsp;                metricsServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.equals(pingUri)) {</b>
    +<b class="nc">&nbsp;            if (pingEnabled) {</b>
    +<b class="nc">&nbsp;                pingServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.equals(threadsUri)) {</b>
    +<b class="nc">&nbsp;            if (threadsEnabled) {</b>
    +<b class="nc">&nbsp;                threadDumpServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.equals(cpuProfileUri)) {</b>
    +<b class="nc">&nbsp;            if (cpuProfileEnabled) {</b>
    +<b class="nc">&nbsp;                cpuProfileServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static String getParam(String initParam, String defaultValue) {
    +<b class="fc">&nbsp;        return initParam == null ? defaultValue : initParam;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-2.html
    new file mode 100644
    index 0000000000..abbf9e8ab9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-2.html
    @@ -0,0 +1,183 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CpuProfileServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CpuProfileServlet (com.codahale.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CpuProfileServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.time.Duration;
    +&nbsp;import java.util.concurrent.locks.Lock;
    +&nbsp;import java.util.concurrent.locks.ReentrantLock;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServlet;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import com.papertrail.profiler.CpuProfile;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An HTTP servlets which outputs a &lt;a href=&quot;https://github.com/gperftools/gperftools&quot;&gt;pprof&lt;/a&gt; parseable response.
    +&nbsp; */
    +<b class="fc">&nbsp;public class CpuProfileServlet extends HttpServlet {</b>
    +&nbsp;    private static final long serialVersionUID = -668666696530287501L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;pprof/raw&quot;;
    +&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    +&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    +<b class="fc">&nbsp;    private final Lock lock = new ReentrantLock();</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +&nbsp;
    +<b class="fc">&nbsp;        int duration = 10;</b>
    +<b class="fc">&nbsp;        if (req.getParameter(&quot;duration&quot;) != null) {</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                duration = Integer.parseInt(req.getParameter(&quot;duration&quot;));</b>
    +<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    +<b class="nc">&nbsp;                duration = 10;</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        int frequency = 100;</b>
    +<b class="fc">&nbsp;        if (req.getParameter(&quot;frequency&quot;) != null) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                frequency = Integer.parseInt(req.getParameter(&quot;frequency&quot;));</b>
    +<b class="nc">&nbsp;                frequency = Math.min(Math.max(frequency, 1), 1000);</b>
    +<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    +<b class="nc">&nbsp;                frequency = 100;</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        final Thread.State state;
    +<b class="fc">&nbsp;        if (&quot;blocked&quot;.equalsIgnoreCase(req.getParameter(&quot;state&quot;))) {</b>
    +<b class="nc">&nbsp;            state = Thread.State.BLOCKED;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            state = Thread.State.RUNNABLE;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            doProfile(output, duration, frequency, state);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
    +<b class="fc">&nbsp;        if (lock.tryLock()) {</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),</b>
    +&nbsp;                        frequency, state);
    +<b class="fc">&nbsp;                if (profile == null) {</b>
    +<b class="nc">&nbsp;                    throw new RuntimeException(&quot;could not create CpuProfile&quot;);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                profile.writeGoogleProfile(out);</b>
    +&nbsp;                return;
    +&nbsp;            } finally {
    +<b class="fc">&nbsp;                lock.unlock();</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        throw new RuntimeException(&quot;Only one profile request may be active at a time&quot;);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-3.html
    new file mode 100644
    index 0000000000..d55e041d62
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-3.html
    @@ -0,0 +1,325 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheckServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheckServlet (com.codahale.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HealthCheckServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HealthCheckServlet$ContextListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/9)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.health.HealthCheck;
    +&nbsp;import com.codahale.metrics.health.HealthCheckFilter;
    +&nbsp;import com.codahale.metrics.health.HealthCheckRegistry;
    +&nbsp;import com.codahale.metrics.json.HealthCheckModule;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    +&nbsp;
    +&nbsp;import javax.servlet.ServletConfig;
    +&nbsp;import javax.servlet.ServletContext;
    +&nbsp;import javax.servlet.ServletContextEvent;
    +&nbsp;import javax.servlet.ServletContextListener;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServlet;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.concurrent.ExecutorService;
    +&nbsp;
    +&nbsp;public class HealthCheckServlet extends HttpServlet {
    +<b class="nc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    +&nbsp;        /**
    +&nbsp;         * @return the {@link HealthCheckRegistry} to inject into the servlet context.
    +&nbsp;         */
    +&nbsp;        protected abstract HealthCheckRegistry getHealthCheckRegistry();
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
    +&nbsp;         * if the health checks should be run in the servlet worker thread.
    +&nbsp;         */
    +&nbsp;        protected ExecutorService getExecutorService() {
    +&nbsp;            // don&#39;t use a thread pool by default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
    +&nbsp;         * or {@link HealthCheckFilter#ALL} if the default should be used.
    +&nbsp;         */
    +&nbsp;        protected HealthCheckFilter getHealthCheckFilter() {
    +<b class="nc">&nbsp;            return HealthCheckFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link ObjectMapper} that shall be used to render health checks,
    +&nbsp;         * or {@code null} if the default object mapper should be used.
    +&nbsp;         */
    +&nbsp;        protected ObjectMapper getObjectMapper() {
    +&nbsp;            // don&#39;t use an object mapper by default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextInitialized(ServletContextEvent event) {
    +<b class="nc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    +<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());</b>
    +<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());</b>
    +<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    +&nbsp;            // no-op
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + &quot;.executor&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + &quot;.healthCheckFilter&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + &quot;.mapper&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + &quot;.httpStatusIndicator&quot;;</b>
    +&nbsp;
    +&nbsp;    private static final long serialVersionUID = -8432996484889177321L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    +&nbsp;    private static final String HTTP_STATUS_INDICATOR_PARAM = &quot;httpStatusIndicator&quot;;
    +&nbsp;
    +&nbsp;    private transient HealthCheckRegistry registry;
    +&nbsp;    private transient ExecutorService executorService;
    +&nbsp;    private transient HealthCheckFilter filter;
    +&nbsp;    private transient ObjectMapper mapper;
    +&nbsp;    private transient boolean httpStatusIndicator;
    +&nbsp;
    +<b class="fc">&nbsp;    public HealthCheckServlet() {</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public HealthCheckServlet(HealthCheckRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(ServletConfig config) throws ServletException {
    +<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    +<b class="fc">&nbsp;        if (null == registry) {</b>
    +<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);</b>
    +<b class="fc">&nbsp;            if (registryAttr instanceof HealthCheckRegistry) {</b>
    +<b class="fc">&nbsp;                this.registry = (HealthCheckRegistry) registryAttr;</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a HealthCheckRegistry instance.&quot;);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);</b>
    +<b class="fc">&nbsp;        if (executorAttr instanceof ExecutorService) {</b>
    +<b class="fc">&nbsp;            this.executorService = (ExecutorService) executorAttr;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);</b>
    +<b class="fc">&nbsp;        if (filterAttr instanceof HealthCheckFilter) {</b>
    +<b class="fc">&nbsp;            filter = (HealthCheckFilter) filterAttr;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        if (filter == null) {</b>
    +<b class="fc">&nbsp;            filter = HealthCheckFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);</b>
    +<b class="fc">&nbsp;        if (mapperAttr instanceof ObjectMapper) {</b>
    +<b class="fc">&nbsp;            this.mapper = (ObjectMapper) mapperAttr;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.mapper = new ObjectMapper();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.mapper.registerModule(new HealthCheckModule());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);</b>
    +<b class="fc">&nbsp;        if (httpStatusIndicatorAttr instanceof Boolean) {</b>
    +<b class="nc">&nbsp;            this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.httpStatusIndicator = true;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void destroy() {
    +<b class="fc">&nbsp;        super.destroy();</b>
    +<b class="fc">&nbsp;        registry.shutdown();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = runHealthChecks();</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        if (results.isEmpty()) {</b>
    +<b class="fc">&nbsp;            resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);</b>
    +<b class="fc">&nbsp;            final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);</b>
    +<b class="fc">&nbsp;            final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;</b>
    +<b class="fc">&nbsp;            if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {</b>
    +<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_OK);</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            getWriter(req).writeValue(output, results);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private ObjectWriter getWriter(HttpServletRequest request) {
    +<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    +<b class="fc">&nbsp;        if (prettyPrint) {</b>
    +<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return mapper.writer();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    +<b class="fc">&nbsp;        if (executorService == null) {</b>
    +<b class="nc">&nbsp;            return registry.runHealthChecks(filter);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return registry.runHealthChecks(executorService, filter);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static boolean isAllHealthy(Map&lt;String, HealthCheck.Result&gt; results) {
    +<b class="fc">&nbsp;        for (HealthCheck.Result result : results.values()) {</b>
    +<b class="fc">&nbsp;            if (!result.isHealthy()) {</b>
    +<b class="fc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return true;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    // visible for testing
    +&nbsp;    ObjectMapper getMapper() {
    +<b class="fc">&nbsp;        return mapper;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-4.html
    new file mode 100644
    index 0000000000..f251b4f021
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-4.html
    @@ -0,0 +1,329 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricsServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricsServlet (com.codahale.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricsServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (44/44)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">MetricsServlet$ContextListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (5/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (14/18)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import javax.servlet.ServletConfig;
    +&nbsp;import javax.servlet.ServletContext;
    +&nbsp;import javax.servlet.ServletContextEvent;
    +&nbsp;import javax.servlet.ServletContextListener;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServlet;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricFilter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.json.MetricsModule;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    +&nbsp;import com.fasterxml.jackson.databind.util.JSONPObject;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A servlet which returns the metrics in a given registry as an {@code application/json} response.
    +&nbsp; */
    +&nbsp;public class MetricsServlet extends HttpServlet {
    +&nbsp;    /**
    +&nbsp;     * An abstract {@link ServletContextListener} which allows you to programmatically inject the
    +&nbsp;     * {@link MetricRegistry}, rate and duration units, and allowed origin for
    +&nbsp;     * {@link MetricsServlet}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    +&nbsp;        /**
    +&nbsp;         * @return the {@link MetricRegistry} to inject into the servlet context.
    +&nbsp;         */
    +&nbsp;        protected abstract MetricRegistry getMetricRegistry();
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
    +&nbsp;         * default should be used.
    +&nbsp;         */
    +&nbsp;        protected TimeUnit getRateUnit() {
    +&nbsp;            // use the default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
    +&nbsp;         * the default should be used.
    +&nbsp;         */
    +&nbsp;        protected TimeUnit getDurationUnit() {
    +&nbsp;            // use the default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@code Access-Control-Allow-Origin} header value, if any.
    +&nbsp;         */
    +&nbsp;        protected String getAllowedOrigin() {
    +&nbsp;            // use the default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the name of the parameter used to specify the jsonp callback, if any.
    +&nbsp;         */
    +&nbsp;        protected String getJsonpCallbackParameter() {
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
    +&nbsp;         * the default should be used.
    +&nbsp;         */
    +&nbsp;        protected MetricFilter getMetricFilter() {
    +&nbsp;            // use the default
    +<b class="fc">&nbsp;            return MetricFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextInitialized(ServletContextEvent event) {
    +<b class="fc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    +<b class="fc">&nbsp;            context.setAttribute(METRICS_REGISTRY, getMetricRegistry());</b>
    +<b class="fc">&nbsp;            context.setAttribute(METRIC_FILTER, getMetricFilter());</b>
    +<b class="fc">&nbsp;            if (getDurationUnit() != null) {</b>
    +<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (getRateUnit() != null) {</b>
    +<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (getAllowedOrigin() != null) {</b>
    +<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (getJsonpCallbackParameter() != null) {</b>
    +<b class="nc">&nbsp;                context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    +&nbsp;            // no-op
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.rateUnit&quot;;</b>
    +<b class="fc">&nbsp;    public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.durationUnit&quot;;</b>
    +<b class="fc">&nbsp;    public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + &quot;.showSamples&quot;;</b>
    +<b class="fc">&nbsp;    public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    +<b class="fc">&nbsp;    public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + &quot;.allowedOrigin&quot;;</b>
    +<b class="fc">&nbsp;    public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + &quot;.metricFilter&quot;;</b>
    +<b class="fc">&nbsp;    public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + &quot;.jsonpCallback&quot;;</b>
    +&nbsp;
    +&nbsp;    private static final long serialVersionUID = 1049773947734939602L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    +&nbsp;
    +&nbsp;    protected String allowedOrigin;
    +&nbsp;    protected String jsonpParamName;
    +&nbsp;    protected transient MetricRegistry registry;
    +&nbsp;    protected transient ObjectMapper mapper;
    +&nbsp;
    +<b class="fc">&nbsp;    public MetricsServlet() {</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public MetricsServlet(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(ServletConfig config) throws ServletException {
    +<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    +<b class="fc">&nbsp;        if (null == registry) {</b>
    +<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(METRICS_REGISTRY);</b>
    +<b class="fc">&nbsp;            if (registryAttr instanceof MetricRegistry) {</b>
    +<b class="fc">&nbsp;                this.registry = (MetricRegistry) registryAttr;</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a MetricRegistry instance.&quot;);</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);</b>
    +<b class="fc">&nbsp;        this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        setupMetricsModule(context);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void setupMetricsModule(ServletContext context) {
    +<b class="fc">&nbsp;        final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),</b>
    +&nbsp;                TimeUnit.SECONDS);
    +<b class="fc">&nbsp;        final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),</b>
    +&nbsp;                TimeUnit.SECONDS);
    +<b class="fc">&nbsp;        final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));</b>
    +<b class="fc">&nbsp;        MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);</b>
    +<b class="fc">&nbsp;        if (filter == null) {</b>
    +<b class="fc">&nbsp;            filter = MetricFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,</b>
    +&nbsp;                durationUnit,
    +&nbsp;                showSamples,
    +&nbsp;                filter));
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        if (allowedOrigin != null) {</b>
    +<b class="fc">&nbsp;            resp.setHeader(&quot;Access-Control-Allow-Origin&quot;, allowedOrigin);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            if (jsonpParamName != null &amp;&amp; req.getParameter(jsonpParamName) != null) {</b>
    +<b class="fc">&nbsp;                getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                getWriter(req).writeValue(output, registry);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected ObjectWriter getWriter(HttpServletRequest request) {
    +<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    +<b class="fc">&nbsp;        if (prettyPrint) {</b>
    +<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return mapper.writer();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));</b>
    +<b class="fc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    +<b class="fc">&nbsp;            return defaultValue;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-5.html
    new file mode 100644
    index 0000000000..bfe9e1c528
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-5.html
    @@ -0,0 +1,134 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > PingServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: PingServlet (com.codahale.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">PingServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +&nbsp;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServlet;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An HTTP servlets which outputs a {@code text/plain} {@code &quot;pong&quot;} response.
    +&nbsp; */
    +<b class="fc">&nbsp;public class PingServlet extends HttpServlet {</b>
    +&nbsp;    private static final long serialVersionUID = 3772654177231086757L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    +&nbsp;    private static final String CONTENT = &quot;pong&quot;;
    +&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    +&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    +<b class="fc">&nbsp;            writer.println(CONTENT);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-6.html
    new file mode 100644
    index 0000000000..4767a043cd
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-6.html
    @@ -0,0 +1,159 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ThreadDumpServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ThreadDumpServlet (com.codahale.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ThreadDumpServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.jvm.ThreadDump;
    +&nbsp;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServlet;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
    +&nbsp; * the VM. Only responds to {@code GET} requests.
    +&nbsp; */
    +<b class="fc">&nbsp;public class ThreadDumpServlet extends HttpServlet {</b>
    +&nbsp;
    +&nbsp;    private static final long serialVersionUID = -2690343532336103046L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    +&nbsp;
    +&nbsp;    private transient ThreadDump threadDump;
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init() throws ServletException {
    +&nbsp;        try {
    +&nbsp;            // Some PaaS like Google App Engine blacklist java.lang.managament
    +<b class="fc">&nbsp;            this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());</b>
    +<b class="nc">&nbsp;        } catch (NoClassDefFoundError ncdfe) {</b>
    +<b class="nc">&nbsp;            this.threadDump = null; // we won&#39;t be able to provide thread dump</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final boolean includeMonitors = getParam(req.getParameter(&quot;monitors&quot;), true);</b>
    +<b class="fc">&nbsp;        final boolean includeSynchronizers = getParam(req.getParameter(&quot;synchronizers&quot;), true);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        if (threadDump == null) {</b>
    +<b class="nc">&nbsp;            resp.getWriter().println(&quot;Sorry your runtime environment does not allow to dump threads.&quot;);</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            threadDump.dump(includeMonitors, includeSynchronizers, output);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static Boolean getParam(String initParam, boolean defaultValue) {
    +<b class="fc">&nbsp;        return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index.html
    new file mode 100644
    index 0000000000..74375966aa
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..2076307aaa
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..126195c890
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..6b90c2bb30
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..dca0c0fe1e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..39fb37b461
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..f031f0420a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..6ff2ea69b8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..5d31731592
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..b072ea9262
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-1.html
    new file mode 100644
    index 0000000000..f632d8c5ce
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-1.html
    @@ -0,0 +1,220 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricsStatsCounter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.caffeine3</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricsStatsCounter (io.dropwizard.metrics.caffeine3)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricsStatsCounter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;/*
    +&nbsp; * Copyright 2016 Ben Manes. All Rights Reserved.
    +&nbsp; *
    +&nbsp; * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    +&nbsp; * you may not use this file except in compliance with the License.
    +&nbsp; * You may obtain a copy of the License at
    +&nbsp; *
    +&nbsp; *     http://www.apache.org/licenses/LICENSE-2.0
    +&nbsp; *
    +&nbsp; * Unless required by applicable law or agreed to in writing, software
    +&nbsp; * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    +&nbsp; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +&nbsp; * See the License for the specific language governing permissions and
    +&nbsp; * limitations under the License.
    +&nbsp; */
    +&nbsp;package io.dropwizard.metrics.caffeine3;
    +&nbsp;
    +&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;
    +&nbsp;import java.util.EnumMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.LongAdder;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Histogram;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.github.benmanes.caffeine.cache.RemovalCause;
    +&nbsp;import com.github.benmanes.caffeine.cache.stats.CacheStats;
    +&nbsp;import com.github.benmanes.caffeine.cache.stats.StatsCounter;
    +&nbsp;import org.checkerframework.checker.index.qual.NonNegative;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link StatsCounter} instrumented with Dropwizard Metrics.
    +&nbsp; *
    +&nbsp; * @author ben.manes@gmail.com (Ben Manes)
    +&nbsp; * @author John Karp
    +&nbsp; */
    +&nbsp;public final class MetricsStatsCounter implements StatsCounter {
    +&nbsp;  private final Counter hitCount;
    +&nbsp;  private final Counter missCount;
    +&nbsp;  private final Timer loadSuccess;
    +&nbsp;  private final Timer loadFailure;
    +&nbsp;  private final Counter evictionWeight;
    +&nbsp;  private final EnumMap&lt;RemovalCause, Histogram&gt; evictionsWithCause;
    +&nbsp;
    +&nbsp;  // for implementing snapshot()
    +<b class="fc">&nbsp;  private final LongAdder totalLoadTime = new LongAdder();</b>
    +&nbsp;
    +&nbsp;  /**
    +&nbsp;   * Constructs an instance for use by a single cache.
    +&nbsp;   *
    +&nbsp;   * @param registry the registry of metric instances
    +&nbsp;   * @param metricsPrefix the prefix name for the metrics
    +&nbsp;   */
    +<b class="fc">&nbsp;  public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {</b>
    +<b class="fc">&nbsp;    requireNonNull(metricsPrefix);</b>
    +<b class="fc">&nbsp;    hitCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;hits&quot;));</b>
    +<b class="fc">&nbsp;    missCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;misses&quot;));</b>
    +<b class="fc">&nbsp;    loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-success&quot;));</b>
    +<b class="fc">&nbsp;    loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-failure&quot;));</b>
    +<b class="fc">&nbsp;    evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, &quot;evictions-weight&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;    evictionsWithCause = new EnumMap&lt;&gt;(RemovalCause.class);</b>
    +<b class="fc">&nbsp;    for (RemovalCause cause : RemovalCause.values()) {</b>
    +<b class="fc">&nbsp;      evictionsWithCause.put(</b>
    +&nbsp;          cause,
    +<b class="fc">&nbsp;          registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;, cause.name())));</b>
    +&nbsp;    }
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordHits(int count) {
    +<b class="fc">&nbsp;    hitCount.inc(count);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordMisses(int count) {
    +<b class="fc">&nbsp;    missCount.inc(count);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordLoadSuccess(long loadTime) {
    +<b class="fc">&nbsp;    loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);</b>
    +<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordLoadFailure(long loadTime) {
    +<b class="fc">&nbsp;    loadFailure.update(loadTime, TimeUnit.NANOSECONDS);</b>
    +<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordEviction(@NonNegative int weight, RemovalCause cause) {
    +<b class="fc">&nbsp;    evictionsWithCause.get(cause).update(weight);</b>
    +<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public CacheStats snapshot() {
    +<b class="fc">&nbsp;    return CacheStats.of(</b>
    +<b class="fc">&nbsp;        hitCount.getCount(),</b>
    +<b class="fc">&nbsp;        missCount.getCount(),</b>
    +<b class="fc">&nbsp;        loadSuccess.getCount(),</b>
    +<b class="fc">&nbsp;        loadFailure.getCount(),</b>
    +<b class="fc">&nbsp;        totalLoadTime.sum(),</b>
    +<b class="fc">&nbsp;        evictionsWithCause.values().stream().mapToLong(Histogram::getCount).sum(),</b>
    +<b class="fc">&nbsp;        evictionWeight.getCount());</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public String toString() {
    +<b class="nc">&nbsp;    return snapshot().toString();</b>
    +&nbsp;  }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index.html
    new file mode 100644
    index 0000000000..fec920db5a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index.html
    @@ -0,0 +1,195 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..7524c26516
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,195 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..bffa97ef86
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,195 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..3e6670777f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS.html
    @@ -0,0 +1,195 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..cd9294affd
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,195 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..9ac59404a8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE.html
    @@ -0,0 +1,195 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..1173c10fd0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,195 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..6c4cedb781
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD.html
    @@ -0,0 +1,195 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..e21c19ba85
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,195 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..c666d9d7ef
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,195 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-1.html
    new file mode 100644
    index 0000000000..02eda3ac5a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-1.html
    @@ -0,0 +1,907 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jersey31</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (io.dropwizard.metrics.jersey31)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/38)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/89)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/12)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/12)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/12)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/28)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/200)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jersey31;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Reservoir;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    +&nbsp;import com.codahale.metrics.annotation.Metered;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import com.codahale.metrics.annotation.Timed;
    +&nbsp;import jakarta.ws.rs.core.Configuration;
    +&nbsp;import jakarta.ws.rs.ext.Provider;
    +&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    +&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    +&nbsp;import org.glassfish.jersey.server.model.Resource;
    +&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    +&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    +&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    +&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    +&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    +&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    +&nbsp;
    +&nbsp;import java.lang.annotation.Annotation;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An application event listener that listens for Jersey application initialization to
    +&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    +&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    +&nbsp; * request events indicating that the method is about to be invoked, or just got done
    +&nbsp; * being invoked.
    +&nbsp; */
    +&nbsp;@Provider
    +&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    +&nbsp;
    +<b class="nc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    +<b class="nc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    +&nbsp;    private static final String TOTAL = &quot;total&quot;;
    +&nbsp;
    +&nbsp;    private final MetricRegistry metrics;
    +<b class="nc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="nc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="nc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="nc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final boolean trackFilters;
    +&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Construct an application event listener using the given metrics registry.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    +&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    +&nbsp;     *
    +&nbsp;     * @param metrics a {@link MetricRegistry}
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    +<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Constructs a custom application listener.
    +&nbsp;     *
    +&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    +&nbsp;                                                         final boolean trackFilters) {
    +<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Constructs a custom application listener.
    +&nbsp;     *
    +&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    +&nbsp;                                                         final boolean trackFilters,
    +<b class="nc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    +<b class="nc">&nbsp;        this.metrics = metrics;</b>
    +<b class="nc">&nbsp;        this.clock = clock;</b>
    +<b class="nc">&nbsp;        this.trackFilters = trackFilters;</b>
    +<b class="nc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A private class to maintain the metric for a method annotated with the
    +&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    +&nbsp;     * and a cause for which the meter should be updated.
    +&nbsp;     */
    +&nbsp;    private static class ExceptionMeterMetric {
    +&nbsp;        public final Meter meter;
    +&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    +&nbsp;
    +&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    +&nbsp;                                    final ResourceMethod method,
    +<b class="nc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    +<b class="nc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    +<b class="nc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    +<b class="nc">&nbsp;            this.meter = registry.meter(name);</b>
    +<b class="nc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A private class to maintain the metrics for a method annotated with the
    +&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    +&nbsp;     * different response codes
    +&nbsp;     */
    +&nbsp;    private static class ResponseMeterMetric {
    +<b class="nc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="nc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;        private final List&lt;Meter&gt; meters;
    +&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;        private final MetricRegistry metricRegistry;
    +&nbsp;        private final String metricName;
    +&nbsp;        private final ResponseMeteredLevel level;
    +&nbsp;
    +&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    +&nbsp;                                   final ResourceMethod method,
    +<b class="nc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    +<b class="nc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    +<b class="nc">&nbsp;            this.level = responseMetered.level();</b>
    +<b class="nc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    +<b class="nc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="nc">&nbsp;                            registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    +<b class="nc">&nbsp;                            registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    +<b class="nc">&nbsp;                            registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    +<b class="nc">&nbsp;                            registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    +<b class="nc">&nbsp;                            registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    +<b class="nc">&nbsp;                    )) : Collections.emptyList();</b>
    +<b class="nc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +<b class="nc">&nbsp;            this.metricRegistry = registry;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public void mark(int statusCode) {
    +<b class="nc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    +<b class="nc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    +<b class="nc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    +<b class="nc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="nc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    +<b class="nc">&nbsp;            return responseCodeMeters</b>
    +<b class="nc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="nc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    +&nbsp;
    +&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    +&nbsp;        private final Clock clock;
    +&nbsp;        private final long start;
    +&nbsp;        private Timer.Context resourceMethodStartContext;
    +&nbsp;        private Timer.Context requestMatchedContext;
    +&nbsp;        private Timer.Context responseFiltersStartContext;
    +&nbsp;
    +<b class="nc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    +<b class="nc">&nbsp;            this.timers = timers;</b>
    +<b class="nc">&nbsp;            this.clock = clock;</b>
    +<b class="nc">&nbsp;            start = clock.getTick();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="nc">&nbsp;            switch (event.getType()) {</b>
    +&nbsp;                case RESOURCE_METHOD_START:
    +<b class="nc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    +<b class="nc">&nbsp;                    break;</b>
    +&nbsp;                case REQUEST_MATCHED:
    +<b class="nc">&nbsp;                    requestMatchedContext = context(event);</b>
    +<b class="nc">&nbsp;                    break;</b>
    +&nbsp;                case RESP_FILTERS_START:
    +<b class="nc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    +<b class="nc">&nbsp;                    break;</b>
    +&nbsp;                case RESOURCE_METHOD_FINISHED:
    +<b class="nc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    +<b class="nc">&nbsp;                        resourceMethodStartContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case REQUEST_FILTERED:
    +<b class="nc">&nbsp;                    if (requestMatchedContext != null) {</b>
    +<b class="nc">&nbsp;                        requestMatchedContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case RESP_FILTERS_FINISHED:
    +<b class="nc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    +<b class="nc">&nbsp;                        responseFiltersStartContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case FINISHED:
    +<b class="nc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    +<b class="nc">&nbsp;                        final Timer timer = timer(event);</b>
    +<b class="nc">&nbsp;                        if (timer != null) {</b>
    +<b class="nc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    +&nbsp;                        }
    +<b class="nc">&nbsp;                    }</b>
    +&nbsp;                    break;
    +&nbsp;                default:
    +&nbsp;                    break;
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer timer(RequestEvent event) {
    +<b class="nc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="nc">&nbsp;            if (resourceMethod == null) {</b>
    +<b class="nc">&nbsp;                return null;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer.Context context(RequestEvent event) {
    +<b class="nc">&nbsp;            final Timer timer = timer(event);</b>
    +<b class="nc">&nbsp;            return timer != null ? timer.time() : null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    +&nbsp;
    +<b class="nc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    +<b class="nc">&nbsp;            this.meters = meters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="nc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    +<b class="nc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    +<b class="nc">&nbsp;                if (meter != null) {</b>
    +<b class="nc">&nbsp;                    meter.mark();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    +&nbsp;
    +<b class="nc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    +<b class="nc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="nc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    +<b class="nc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="nc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    +<b class="nc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    +&nbsp;
    +<b class="nc">&nbsp;                if (metric != null) {</b>
    +<b class="nc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    +<b class="nc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    +<b class="nc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    +<b class="nc">&nbsp;                        metric.meter.mark();</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    +&nbsp;
    +<b class="nc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    +<b class="nc">&nbsp;            this.responseMeters = responseMeters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="nc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    +<b class="nc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="nc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    +<b class="nc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    +&nbsp;
    +<b class="nc">&nbsp;                if (metric != null) {</b>
    +<b class="nc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    +<b class="nc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    +<b class="nc">&nbsp;                        metric.mark(500);</b>
    +<b class="nc">&nbsp;                    } else if (containerResponse != null) {</b>
    +<b class="nc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="nc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    +&nbsp;        private final RequestEventListener[] listeners;
    +&nbsp;
    +<b class="nc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    +<b class="nc">&nbsp;            this.listeners = listeners;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(final RequestEvent event) {
    +<b class="nc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    +<b class="nc">&nbsp;                listener.onEvent(event);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onEvent(ApplicationEvent event) {
    +<b class="nc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    +<b class="nc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    +<b class="nc">&nbsp;        return resourceModel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    +<b class="nc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    +<b class="nc">&nbsp;        return subResourceModel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    +<b class="nc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    +&nbsp;
    +<b class="nc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    +<b class="nc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    +<b class="nc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    +<b class="nc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    +<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    +<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    +<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    +<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;
    +<b class="nc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    +&nbsp;
    +<b class="nc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    +<b class="nc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    +<b class="nc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    +<b class="nc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    +&nbsp;
    +<b class="nc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    +<b class="nc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    +<b class="nc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    +<b class="nc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    +<b class="nc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    +<b class="nc">&nbsp;                }</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    +<b class="nc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    +&nbsp;                new TimerRequestEventListener(timers, clock),
    +&nbsp;                new MeterRequestEventListener(meters),
    +&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    +&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    +&nbsp;
    +<b class="nc">&nbsp;        return listener;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    +<b class="nc">&nbsp;        T annotation = null;</b>
    +&nbsp;
    +<b class="nc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    +<b class="nc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (annotation != null) {</b>
    +<b class="nc">&nbsp;                break;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return annotation;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    +<b class="nc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +<b class="nc">&nbsp;        if (classLevelTimed != null) {</b>
    +<b class="nc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    +&nbsp;            return;
    +&nbsp;        }
    +&nbsp;
    +<b class="nc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    +<b class="nc">&nbsp;        if (annotation != null) {</b>
    +<b class="nc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    +<b class="nc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    +<b class="nc">&nbsp;        if (trackFilters) {</b>
    +<b class="nc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    +<b class="nc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    +<b class="nc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    +<b class="nc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        if (classLevelMetered != null) {</b>
    +<b class="nc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="nc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        if (annotation != null) {</b>
    +<b class="nc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    +<b class="nc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    +<b class="nc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="nc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        if (annotation != null) {</b>
    +<b class="nc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    +<b class="nc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    +<b class="nc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="nc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        if (annotation != null) {</b>
    +<b class="nc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    +&nbsp;                              final ResourceMethod method,
    +&nbsp;                              final Timed timed,
    +&nbsp;                              final String... suffixes) {
    +<b class="nc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    +<b class="nc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    +&nbsp;                              final ResourceMethod method,
    +&nbsp;                              final Metered metered) {
    +<b class="nc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    +<b class="nc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    +&nbsp;                                       final String... suffixes) {
    +<b class="nc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;        final String metricName;
    +<b class="nc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    +<b class="nc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        return name(metricName, suffixes);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="nc">&nbsp;    private static class EventTypeAndMethod {</b>
    +&nbsp;
    +&nbsp;        private final RequestEvent.Type type;
    +&nbsp;        private final Method method;
    +&nbsp;
    +<b class="nc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    +<b class="nc">&nbsp;            this.type = type;</b>
    +<b class="nc">&nbsp;            this.method = method;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    +<b class="nc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    +<b class="nc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    +<b class="nc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod finished(Method method) {
    +<b class="nc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean equals(Object o) {
    +<b class="nc">&nbsp;            if (this == o) {</b>
    +<b class="nc">&nbsp;                return true;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (type != that.type) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            return method.equals(that.method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public int hashCode() {
    +<b class="nc">&nbsp;            int result = type.hashCode();</b>
    +<b class="nc">&nbsp;            result = 31 * result + method.hashCode();</b>
    +<b class="nc">&nbsp;            return result;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-2.html
    new file mode 100644
    index 0000000000..b4fba1a9d9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-2.html
    @@ -0,0 +1,201 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricsFeature</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jersey31</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricsFeature (io.dropwizard.metrics.jersey31)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricsFeature</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/12)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jersey31;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Reservoir;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;import jakarta.ws.rs.core.Feature;
    +&nbsp;import jakarta.ws.rs.core.FeatureContext;
    +&nbsp;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    +&nbsp; * for recording request events.
    +&nbsp; */
    +&nbsp;public class MetricsFeature implements Feature {
    +&nbsp;
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final boolean trackFilters;
    +&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    +<b class="nc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    +<b class="nc">&nbsp;        this(registry, clock, false);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    +<b class="nc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +<b class="nc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    +<b class="nc">&nbsp;        this.registry = registry;</b>
    +<b class="nc">&nbsp;        this.clock = clock;</b>
    +<b class="nc">&nbsp;        this.trackFilters = trackFilters;</b>
    +<b class="nc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public MetricsFeature(String registryName) {
    +<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A call-back method called when the feature is to be enabled in a given
    +&nbsp;     * runtime configuration scope.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    +&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    +&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    +&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    +&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
    +&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
    +&nbsp;     * would return {@code false}.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     *
    +&nbsp;     * @param context configurable context in which the feature should be enabled.
    +&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    +&nbsp;     * otherwise.
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public boolean configure(FeatureContext context) {
    +<b class="nc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    +<b class="nc">&nbsp;        return true;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index.html
    new file mode 100644
    index 0000000000..861d5f6c9d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..f30a2b2425
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..02ee3a5d63
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..1c3ca1398f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..f3a427f43e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..b35354ee5d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..abcd1b5c0b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..68919af520
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..dd904d0b31
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..efbe0ac1c5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-1.html
    new file mode 100644
    index 0000000000..6a166c29a3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-1.html
    @@ -0,0 +1,193 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedConnectionFactory</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty10)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedConnectionFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedConnectionFactory$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.eclipse.jetty.io.Connection;
    +&nbsp;import org.eclipse.jetty.io.EndPoint;
    +&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    +&nbsp;import org.eclipse.jetty.server.Connector;
    +&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;
    +<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    +&nbsp;    private final ConnectionFactory connectionFactory;
    +&nbsp;    private final Timer timer;
    +&nbsp;    private final Counter counter;
    +&nbsp;
    +&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    +<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    +<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    +<b class="fc">&nbsp;        this.timer = timer;</b>
    +<b class="fc">&nbsp;        this.counter = counter;</b>
    +<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getProtocol() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public List&lt;String&gt; getProtocols() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    +<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    +<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    +&nbsp;            private Timer.Context context;
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onOpened(Connection connection) {
    +<b class="fc">&nbsp;                this.context = timer.time();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.inc();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onClosed(Connection connection) {
    +<b class="fc">&nbsp;                context.stop();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.dec();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        return connection;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-2.html
    new file mode 100644
    index 0000000000..c1976c2a35
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-2.html
    @@ -0,0 +1,746 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHandler</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty10)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHandler</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (113/131)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$7</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
    +&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.server.Handler;
    +&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    +&nbsp;
    +&nbsp;import javax.servlet.AsyncEvent;
    +&nbsp;import javax.servlet.AsyncListener;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    +&nbsp; * instance.
    +&nbsp; */
    +<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    +&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    +&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    +&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    +&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    +&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    +&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    +&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    +&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    +&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    +&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    +&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    +&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    +&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    +&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    +&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    +&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    +&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    +&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    +&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;
    +&nbsp;    private String name;
    +&nbsp;    private final String prefix;
    +&nbsp;
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    private Timer requests;
    +&nbsp;
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    private Timer dispatches;
    +&nbsp;
    +&nbsp;    // the number of active requests
    +&nbsp;    private Counter activeRequests;
    +&nbsp;
    +&nbsp;    // the number of active dispatches
    +&nbsp;    private Counter activeDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    private Counter activeSuspended;
    +&nbsp;
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    private Meter asyncDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    private Meter asyncTimeouts;
    +&nbsp;
    +&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    private List&lt;Meter&gt; responses;
    +&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;
    +&nbsp;    private Timer getRequests;
    +&nbsp;    private Timer postRequests;
    +&nbsp;    private Timer headRequests;
    +&nbsp;    private Timer putRequests;
    +&nbsp;    private Timer deleteRequests;
    +&nbsp;    private Timer optionsRequests;
    +&nbsp;    private Timer traceRequests;
    +&nbsp;    private Timer connectRequests;
    +&nbsp;    private Timer moveRequests;
    +&nbsp;    private Timer otherRequests;
    +&nbsp;
    +&nbsp;    private AsyncListener listener;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    +<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getName() {
    +<b class="fc">&nbsp;        return name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setName(String name) {
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    +&nbsp;            ));
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                public Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    +<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    +<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    +<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void handle(String path,
    +&nbsp;                       Request request,
    +&nbsp;                       HttpServletRequest httpRequest,
    +&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="nc">&nbsp;            activeSuspended.dec();</b>
    +<b class="nc">&nbsp;            if (state.getState() == HttpChannelState.State.HANDLING) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            activeDispatches.dec();</b>
    +<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.inc();</b>
    +<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    +&nbsp;            }
    +&nbsp;            // else onCompletion will handle it.
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="fc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    };
    +&nbsp;
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    +<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    +<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    +<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.dec();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-3.html
    new file mode 100644
    index 0000000000..56471c02fd
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-3.html
    @@ -0,0 +1,706 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty10)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpChannelListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (20/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.6%
    +  </span>
    +  <span class="absValue">
    +    (90/109)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$7</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.7%
    +  </span>
    +  <span class="absValue">
    +    (8/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
    +&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    +&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;
    +&nbsp;import javax.servlet.AsyncEvent;
    +&nbsp;import javax.servlet.AsyncListener;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    +&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    +&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    +&nbsp; *
    +&nbsp; * @since TBD
    +&nbsp; */
    +<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    +&nbsp;        implements Listener {
    +<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    private final Timer requests;
    +&nbsp;
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    private final Timer dispatches;
    +&nbsp;
    +&nbsp;    // the number of active requests
    +&nbsp;    private final Counter activeRequests;
    +&nbsp;
    +&nbsp;    // the number of active dispatches
    +&nbsp;    private final Counter activeDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    private final Counter activeSuspended;
    +&nbsp;
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    private final Meter asyncDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    private final Meter asyncTimeouts;
    +&nbsp;
    +&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    private final List&lt;Meter&gt; responses;
    +&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;    private final String prefix;
    +&nbsp;    private final Timer getRequests;
    +&nbsp;    private final Timer postRequests;
    +&nbsp;    private final Timer headRequests;
    +&nbsp;    private final Timer putRequests;
    +&nbsp;    private final Timer deleteRequests;
    +&nbsp;    private final Timer optionsRequests;
    +&nbsp;    private final Timer traceRequests;
    +&nbsp;    private final Timer connectRequests;
    +&nbsp;    private final Timer moveRequests;
    +&nbsp;    private final Timer otherRequests;
    +&nbsp;
    +&nbsp;    private final AsyncListener listener;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param pref     the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    +<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param pref     the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    +<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    +<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestBegin(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onBeforeDispatch(final Request request) {
    +<b class="fc">&nbsp;        before(request);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onAfterDispatch(final Request request) {
    +<b class="fc">&nbsp;        after(request);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestContentEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestTrailers(final Request request) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseBegin(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseCommit(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onComplete(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    private void before(final Request request) {
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            activeSuspended.dec();</b>
    +<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void after(final Request request) {
    +<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    +<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.dec();</b>
    +<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    +<b class="fc">&nbsp;            activeSuspended.inc();</b>
    +<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    +&nbsp;        }
    +&nbsp;        // else onCompletion will handle it.
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="fc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    };
    +&nbsp;
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    +<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    +<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    +<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    +<b class="fc">&nbsp;                activeSuspended.dec();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-4.html
    new file mode 100644
    index 0000000000..69851c4c51
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-4.html
    @@ -0,0 +1,345 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty10)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedQueuedThreadPool</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.4%
    +  </span>
    +  <span class="absValue">
    +    (27/32)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import org.eclipse.jetty.util.annotation.Name;
    +&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    +&nbsp;
    +&nbsp;import java.util.concurrent.BlockingQueue;
    +&nbsp;import java.util.concurrent.ThreadFactory;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    +&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    +&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    +&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    +&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    +&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;    private String prefix;
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, 200);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    +&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    +<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getPrefix() {
    +<b class="nc">&nbsp;        return prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setPrefix(String prefix) {
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    +&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    +<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index.html
    new file mode 100644
    index 0000000000..d0c164a96b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..08d3627fc9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..2c08d7992c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..d7eb4a907c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..675b0e9fd0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..c97450d649
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..3d68633d87
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..2c3ae2d14a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..44a7de1011
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..79653fab3d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-1.html
    new file mode 100644
    index 0000000000..7e45e1b449
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-1.html
    @@ -0,0 +1,127 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ResponseMeteredLevel</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ResponseMeteredLevel (com.codahale.metrics.annotation)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ResponseMeteredLevel</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * {@link ResponseMeteredLevel} is a parameter for the {@link ResponseMetered} annotation.
    +&nbsp; * The constants of this enumerated type decide what meters are included when a class
    +&nbsp; * or method is annotated with the {@link ResponseMetered} annotation.
    +&nbsp; */
    +<b class="fc">&nbsp;public enum ResponseMeteredLevel {</b>
    +&nbsp;    /**
    +&nbsp;     * Include meters for 1xx/2xx/3xx/4xx/5xx responses
    +&nbsp;     */
    +<b class="fc">&nbsp;    COARSE,</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Include meters for every response code (200, 201, 303, 304, 401, 404, 501, etc.)
    +&nbsp;     */
    +<b class="fc">&nbsp;    DETAILED,</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Include meters for every response code in addition to top level 1xx/2xx/3xx/4xx/5xx responses
    +&nbsp;     */
    +<b class="fc">&nbsp;    ALL;</b>
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-2.html
    new file mode 100644
    index 0000000000..a567d72980
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-2.html
    @@ -0,0 +1,107 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Timed</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Timed (com.codahale.metrics.annotation)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">Timed</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    +&nbsp;
    +&nbsp;import java.lang.annotation.Documented;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Inherited;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An annotation for marking a method of an annotated object as timed.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Given a method like this:
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}Timed(name = &quot;fancyName&quot;)
    +&nbsp; *     public String fancyName(String name) {
    +&nbsp; *         return &quot;Sir Captain &quot; + name;
    +&nbsp; *     }
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A timer for the defining class with the name {@code fancyName} will be created and each time the
    +&nbsp; * {@code #fancyName(String)} method is invoked, the method&#39;s execution will be timed.
    +&nbsp; */
    +&nbsp;@Inherited
    +&nbsp;@Documented
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface Timed {
    +&nbsp;    /**
    +&nbsp;     * @return The name of the timer.
    +&nbsp;     */
    +&nbsp;    String name() default &quot;&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    +&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    +&nbsp;     */
    +&nbsp;    boolean absolute() default false;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-3.html
    new file mode 100644
    index 0000000000..438b21af69
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-3.html
    @@ -0,0 +1,113 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ResponseMetered</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ResponseMetered (com.codahale.metrics.annotation)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">ResponseMetered</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    +&nbsp;
    +&nbsp;import java.lang.annotation.Documented;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Inherited;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An annotation for marking a method of an annotated object as metered.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Given a method like this:
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}ResponseMetered(name = &quot;fancyName&quot;, level = ResponseMeteredLevel.ALL)
    +&nbsp; *     public String fancyName(String name) {
    +&nbsp; *         return &quot;Sir Captain &quot; + name;
    +&nbsp; *     }
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Meters for the defining class with the name {@code fancyName} will be created for response codes
    +&nbsp; * based on the ResponseMeteredLevel selected. Each time the {@code #fancyName(String)} method is invoked,
    +&nbsp; * the appropriate response meter will be marked.
    +&nbsp; */
    +&nbsp;@Inherited
    +&nbsp;@Documented
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface ResponseMetered {
    +&nbsp;    /**
    +&nbsp;     * @return The name of the meter.
    +&nbsp;     */
    +&nbsp;    String name() default &quot;&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    +&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    +&nbsp;     */
    +&nbsp;    boolean absolute() default false;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return the ResponseMeteredLevel which decides which response code meters are marked.
    +&nbsp;     */
    +&nbsp;    ResponseMeteredLevel level() default ResponseMeteredLevel.COARSE;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-4.html
    new file mode 100644
    index 0000000000..2727eabba7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-4.html
    @@ -0,0 +1,121 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CachedGauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CachedGauge (com.codahale.metrics.annotation)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">CachedGauge</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    +&nbsp;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An annotation for marking a method as a gauge, which caches the result for a specified time.
    +&nbsp; *
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Given a method like this:
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}CachedGauge(name = &quot;queueSize&quot;, timeout = 30, timeoutUnit = TimeUnit.SECONDS)
    +&nbsp; *     public int getQueueSize() {
    +&nbsp; *         return queue.getSize();
    +&nbsp; *     }
    +&nbsp; *
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; *
    +&nbsp; * A gauge for the defining class with the name queueSize will be created which uses the annotated method&#39;s
    +&nbsp; * return value as its value, and which caches the result for 30 seconds.
    +&nbsp; *
    +&nbsp; * @since 3.1
    +&nbsp; */
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface CachedGauge {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return The name of the counter.
    +&nbsp;     */
    +&nbsp;    String name() default &quot;&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    +&nbsp;     * relative to the annotated class.
    +&nbsp;     */
    +&nbsp;    boolean absolute() default false;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return The amount of time to cache the result
    +&nbsp;     */
    +&nbsp;    long timeout();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return The unit of timeout
    +&nbsp;     */
    +&nbsp;    TimeUnit timeoutUnit() default TimeUnit.MILLISECONDS;
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-5.html
    new file mode 100644
    index 0000000000..386f8d6713
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-5.html
    @@ -0,0 +1,133 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ExceptionMetered</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ExceptionMetered (com.codahale.metrics.annotation)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">ExceptionMetered</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    +&nbsp;
    +&nbsp;import java.lang.annotation.Documented;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Inherited;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An annotation for marking a method of an annotated object as metered.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Given a method like this:
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}ExceptionMetered(name = &quot;fancyName&quot;, cause=IllegalArgumentException.class)
    +&nbsp; *     public String fancyName(String name) {
    +&nbsp; *         return &quot;Sir Captain &quot; + name;
    +&nbsp; *     }
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A meter for the defining class with the name {@code fancyName} will be created and each time the
    +&nbsp; * {@code #fancyName(String)} throws an exception of type {@code cause} (or a subclass), the meter
    +&nbsp; * will be marked.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A name for the metric can be specified as an annotation parameter, otherwise, the metric will be
    +&nbsp; * named based on the method name.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * For instance, given a declaration of
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}ExceptionMetered
    +&nbsp; *     public String fancyName(String name) {
    +&nbsp; *         return &quot;Sir Captain &quot; + name;
    +&nbsp; *     }
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A meter named {@code fancyName.exceptions} will be created and marked every time an exception is
    +&nbsp; * thrown.
    +&nbsp; */
    +&nbsp;@Inherited
    +&nbsp;@Documented
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface ExceptionMetered {
    +&nbsp;    /**
    +&nbsp;     * The default suffix for meter names.
    +&nbsp;     */
    +&nbsp;    String DEFAULT_NAME_SUFFIX = &quot;exceptions&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return The name of the meter. If not specified, the meter will be given a name based on the method
    +&nbsp;     * it decorates and the suffix &quot;Exceptions&quot;.
    +&nbsp;     */
    +&nbsp;    String name() default &quot;&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    +&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    +&nbsp;     */
    +&nbsp;    boolean absolute() default false;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return The type of exceptions that the meter will catch and count.
    +&nbsp;     */
    +&nbsp;    Class&lt;? extends Throwable&gt; cause() default Exception.class;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-6.html
    new file mode 100644
    index 0000000000..c24d81b2af
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-6.html
    @@ -0,0 +1,107 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Metered</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Metered (com.codahale.metrics.annotation)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">Metered</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    +&nbsp;
    +&nbsp;import java.lang.annotation.Documented;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Inherited;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An annotation for marking a method of an annotated object as metered.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Given a method like this:
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}Metered(name = &quot;fancyName&quot;)
    +&nbsp; *     public String fancyName(String name) {
    +&nbsp; *         return &quot;Sir Captain &quot; + name;
    +&nbsp; *     }
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A meter for the defining class with the name {@code fancyName} will be created and each time the
    +&nbsp; * {@code #fancyName(String)} method is invoked, the meter will be marked.
    +&nbsp; */
    +&nbsp;@Inherited
    +&nbsp;@Documented
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface Metered {
    +&nbsp;    /**
    +&nbsp;     * @return The name of the meter.
    +&nbsp;     */
    +&nbsp;    String name() default &quot;&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    +&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    +&nbsp;     */
    +&nbsp;    boolean absolute() default false;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-7.html
    new file mode 100644
    index 0000000000..71fb488d64
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-7.html
    @@ -0,0 +1,103 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Gauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Gauge (com.codahale.metrics.annotation)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">Gauge</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    +&nbsp;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An annotation for marking a method of an annotated object as a gauge.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Given a method like this:
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}Gauge(name = &quot;queueSize&quot;)
    +&nbsp; *     public int getQueueSize() {
    +&nbsp; *         return queue.size;
    +&nbsp; *     }
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A gauge for the defining class with the name {@code queueSize} will be created which uses the
    +&nbsp; * annotated method&#39;s return value as its value.
    +&nbsp; */
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface Gauge {
    +&nbsp;    /**
    +&nbsp;     * @return The gauge&#39;s name.
    +&nbsp;     */
    +&nbsp;    String name() default &quot;&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    +&nbsp;     * relative to the annotated class.
    +&nbsp;     */
    +&nbsp;    boolean absolute() default false;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-8.html
    new file mode 100644
    index 0000000000..14acd78297
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-8.html
    @@ -0,0 +1,121 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Counted</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Counted (com.codahale.metrics.annotation)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">Counted</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    +&nbsp;
    +&nbsp;import java.lang.annotation.Documented;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Inherited;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An annotation for marking a method of an annotated object as counted.
    +&nbsp; *
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Given a method like this:
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}Counted(name = &quot;fancyName&quot;)
    +&nbsp; *     public String fancyName(String name) {
    +&nbsp; *         return &quot;Sir Captain &quot; + name;
    +&nbsp; *     }
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A counter for the defining class with the name {@code fancyName} will be created and each time the
    +&nbsp; * {@code #fancyName(String)} method is invoked, the counter will be marked.
    +&nbsp; *
    +&nbsp; * @since 3.1
    +&nbsp; */
    +&nbsp;@Inherited
    +&nbsp;@Documented
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface Counted {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return The name of the counter.
    +&nbsp;     */
    +&nbsp;    String name() default &quot;&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    +&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    +&nbsp;     */
    +&nbsp;    boolean absolute() default false;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return 
    +&nbsp;     * If {@code false} (default), the counter is decremented when the annotated
    +&nbsp;     * method returns, counting current invocations of the annotated method.
    +&nbsp;     * If {@code true}, the counter increases monotonically, counting total
    +&nbsp;     * invocations of the annotated method.
    +&nbsp;     */
    +&nbsp;    boolean monotonic() default false;
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-9.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-9.html
    new file mode 100644
    index 0000000000..9790938733
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-9.html
    @@ -0,0 +1,116 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Metric</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Metric (com.codahale.metrics.annotation)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">Metric</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    +&nbsp;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An annotation requesting that a metric be injected or registered.
    +&nbsp; *
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Given a field like this:
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}Metric
    +&nbsp; *     public Histogram histogram;
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A meter of the field&#39;s type will be created and injected into managed objects.
    +&nbsp; * It will be up to the user to interact with the metric. This annotation
    +&nbsp; * can be used on fields of type Meter, Timer, Counter, and Histogram.
    +&nbsp; *
    +&nbsp; * &lt;p&gt;
    +&nbsp; * This may also be used to register a metric, which is useful for creating a histogram with
    +&nbsp; * a custom Reservoir.
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}Metric
    +&nbsp; *     public Histogram uniformHistogram = new Histogram(new UniformReservoir());
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; *
    +&nbsp; * @since 3.1
    +&nbsp; */
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface Metric {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return The name of the metric.
    +&nbsp;     */
    +&nbsp;    String name() default &quot;&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false},
    +&nbsp;     * use the given name relative to the annotated class.
    +&nbsp;     */
    +&nbsp;    boolean absolute() default false;
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index.html
    new file mode 100644
    index 0000000000..5ad53a6af1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..b375e67c72
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..c0ee8cf048
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..ef3076b41b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..5bcf56b174
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..60b3ff62b2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..2e11b0d4b8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..59bd9035fa
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..709934f424
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..439b43a4c3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-1.html
    new file mode 100644
    index 0000000000..2d8e158078
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-1.html
    @@ -0,0 +1,193 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedConnectionFactory</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty11)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedConnectionFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedConnectionFactory$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.eclipse.jetty.io.Connection;
    +&nbsp;import org.eclipse.jetty.io.EndPoint;
    +&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    +&nbsp;import org.eclipse.jetty.server.Connector;
    +&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;
    +<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    +&nbsp;    private final ConnectionFactory connectionFactory;
    +&nbsp;    private final Timer timer;
    +&nbsp;    private final Counter counter;
    +&nbsp;
    +&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    +<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    +<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    +<b class="fc">&nbsp;        this.timer = timer;</b>
    +<b class="fc">&nbsp;        this.counter = counter;</b>
    +<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getProtocol() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public List&lt;String&gt; getProtocols() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    +<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    +<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    +&nbsp;            private Timer.Context context;
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onOpened(Connection connection) {
    +<b class="fc">&nbsp;                this.context = timer.time();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.inc();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onClosed(Connection connection) {
    +<b class="fc">&nbsp;                context.stop();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.dec();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        return connection;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-2.html
    new file mode 100644
    index 0000000000..a1a4e879b2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-2.html
    @@ -0,0 +1,745 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHandler</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty11)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHandler</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (113/131)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$7</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import jakarta.servlet.AsyncEvent;
    +&nbsp;import jakarta.servlet.AsyncListener;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
    +&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.server.Handler;
    +&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    +&nbsp; * instance.
    +&nbsp; */
    +<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    +&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    +&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    +&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    +&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    +&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    +&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    +&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    +&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    +&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    +&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    +&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    +&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    +&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    +&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    +&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    +&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    +&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    +&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    +&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;
    +&nbsp;    private String name;
    +&nbsp;    private final String prefix;
    +&nbsp;
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    private Timer requests;
    +&nbsp;
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    private Timer dispatches;
    +&nbsp;
    +&nbsp;    // the number of active requests
    +&nbsp;    private Counter activeRequests;
    +&nbsp;
    +&nbsp;    // the number of active dispatches
    +&nbsp;    private Counter activeDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    private Counter activeSuspended;
    +&nbsp;
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    private Meter asyncDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    private Meter asyncTimeouts;
    +&nbsp;
    +&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    private List&lt;Meter&gt; responses;
    +&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;
    +&nbsp;    private Timer getRequests;
    +&nbsp;    private Timer postRequests;
    +&nbsp;    private Timer headRequests;
    +&nbsp;    private Timer putRequests;
    +&nbsp;    private Timer deleteRequests;
    +&nbsp;    private Timer optionsRequests;
    +&nbsp;    private Timer traceRequests;
    +&nbsp;    private Timer connectRequests;
    +&nbsp;    private Timer moveRequests;
    +&nbsp;    private Timer otherRequests;
    +&nbsp;
    +&nbsp;    private AsyncListener listener;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    +<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getName() {
    +<b class="fc">&nbsp;        return name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setName(String name) {
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    +&nbsp;                    ));
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                public Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    +<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    +<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    +<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void handle(String path,
    +&nbsp;                       Request request,
    +&nbsp;                       HttpServletRequest httpRequest,
    +&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="nc">&nbsp;            activeSuspended.dec();</b>
    +<b class="nc">&nbsp;            if (state.getState() == HttpChannelState.State.HANDLING) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            activeDispatches.dec();</b>
    +<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.inc();</b>
    +<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    +&nbsp;            }
    +&nbsp;            // else onCompletion will handle it.
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="fc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    };
    +&nbsp;
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    +<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    +<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    +<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.dec();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-3.html
    new file mode 100644
    index 0000000000..6d62d977cb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-3.html
    @@ -0,0 +1,706 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty11)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpChannelListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (20/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.6%
    +  </span>
    +  <span class="absValue">
    +    (90/109)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$7</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.7%
    +  </span>
    +  <span class="absValue">
    +    (8/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import jakarta.servlet.AsyncEvent;
    +&nbsp;import jakarta.servlet.AsyncListener;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
    +&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    +&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    +&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    +&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    +&nbsp; *
    +&nbsp; * @since TBD
    +&nbsp; */
    +<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    +&nbsp;        implements Listener {
    +<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    private final Timer requests;
    +&nbsp;
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    private final Timer dispatches;
    +&nbsp;
    +&nbsp;    // the number of active requests
    +&nbsp;    private final Counter activeRequests;
    +&nbsp;
    +&nbsp;    // the number of active dispatches
    +&nbsp;    private final Counter activeDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    private final Counter activeSuspended;
    +&nbsp;
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    private final Meter asyncDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    private final Meter asyncTimeouts;
    +&nbsp;
    +&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    private final List&lt;Meter&gt; responses;
    +&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;    private final String prefix;
    +&nbsp;    private final Timer getRequests;
    +&nbsp;    private final Timer postRequests;
    +&nbsp;    private final Timer headRequests;
    +&nbsp;    private final Timer putRequests;
    +&nbsp;    private final Timer deleteRequests;
    +&nbsp;    private final Timer optionsRequests;
    +&nbsp;    private final Timer traceRequests;
    +&nbsp;    private final Timer connectRequests;
    +&nbsp;    private final Timer moveRequests;
    +&nbsp;    private final Timer otherRequests;
    +&nbsp;
    +&nbsp;    private final AsyncListener listener;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param pref     the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    +<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param pref     the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    +<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    +<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestBegin(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onBeforeDispatch(final Request request) {
    +<b class="fc">&nbsp;        before(request);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onAfterDispatch(final Request request) {
    +<b class="fc">&nbsp;        after(request);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestContentEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestTrailers(final Request request) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseBegin(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseCommit(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onComplete(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    private void before(final Request request) {
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            activeSuspended.dec();</b>
    +<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void after(final Request request) {
    +<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    +<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.dec();</b>
    +<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    +<b class="fc">&nbsp;            activeSuspended.inc();</b>
    +<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    +&nbsp;        }
    +&nbsp;        // else onCompletion will handle it.
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="fc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    };
    +&nbsp;
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    +<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    +<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    +<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    +<b class="fc">&nbsp;                activeSuspended.dec();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-4.html
    new file mode 100644
    index 0000000000..1101fee0a5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-4.html
    @@ -0,0 +1,345 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty11)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedQueuedThreadPool</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.4%
    +  </span>
    +  <span class="absValue">
    +    (27/32)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import org.eclipse.jetty.util.annotation.Name;
    +&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    +&nbsp;
    +&nbsp;import java.util.concurrent.BlockingQueue;
    +&nbsp;import java.util.concurrent.ThreadFactory;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    +&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    +&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    +&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    +&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    +&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;    private String prefix;
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, 200);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    +&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    +<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getPrefix() {
    +<b class="nc">&nbsp;        return prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setPrefix(String prefix) {
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    +&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    +&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    +<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index.html
    new file mode 100644
    index 0000000000..b5e8b0b254
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..c603fa6c2d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..e0882b7f5f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..16cefd4337
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..f18e572b6f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..897c809a01
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..3ba4e9955d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..091166f293
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..b271fefae4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..697b153c3d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-1.html
    new file mode 100644
    index 0000000000..58eefc56da
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-1.html
    @@ -0,0 +1,584 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > AbstractInstrumentedHandler</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: AbstractInstrumentedHandler (io.dropwizard.metrics.jetty12)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">AbstractInstrumentedHandler</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (12/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.1%
    +  </span>
    +  <span class="absValue">
    +    (96/109)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedHandler$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedHandler$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedHandler$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedHandler$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedHandler$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedHandler$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedHandler$7</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
    +&nbsp;import org.eclipse.jetty.server.Handler;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;import org.eclipse.jetty.server.Response;
    +&nbsp;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An abstract base class of a Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    +&nbsp; * instance.
    +&nbsp; */
    +&nbsp;public abstract class AbstractInstrumentedHandler extends Handler.Wrapper {
    +&nbsp;    protected static final String NAME_REQUESTS = &quot;requests&quot;;
    +&nbsp;    protected static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    +&nbsp;    protected static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    +&nbsp;    protected static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    +&nbsp;    protected static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    +&nbsp;    protected static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    +&nbsp;    protected static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    +&nbsp;    protected static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    +&nbsp;    protected static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    +&nbsp;    protected static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    +&nbsp;    protected static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    +&nbsp;    protected static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    +&nbsp;    protected static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    +&nbsp;    protected static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    +&nbsp;    protected static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    +&nbsp;    protected static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    +&nbsp;    protected static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    +&nbsp;    protected static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    +&nbsp;    protected static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    +&nbsp;    protected static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    +&nbsp;    protected static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    +&nbsp;    protected static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    +&nbsp;    protected static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    +&nbsp;    protected static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    +&nbsp;    protected static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    +&nbsp;    protected static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    +&nbsp;    protected static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    +&nbsp;    protected static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    +<b class="fc">&nbsp;    protected static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    protected static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;
    +&nbsp;    protected final MetricRegistry metricRegistry;
    +&nbsp;
    +&nbsp;    private String name;
    +&nbsp;    protected final String prefix;
    +&nbsp;
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    protected Timer requests;
    +&nbsp;
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    protected Timer dispatches;
    +&nbsp;
    +&nbsp;    // the number of active requests
    +&nbsp;    protected Counter activeRequests;
    +&nbsp;
    +&nbsp;    // the number of active dispatches
    +&nbsp;    protected Counter activeDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    protected Counter activeSuspended;
    +&nbsp;
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    protected Meter asyncDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    protected Meter asyncTimeouts;
    +&nbsp;
    +&nbsp;    protected final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    protected List&lt;Meter&gt; responses;
    +&nbsp;    protected Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;
    +&nbsp;    protected Timer getRequests;
    +&nbsp;    protected Timer postRequests;
    +&nbsp;    protected Timer headRequests;
    +&nbsp;    protected Timer putRequests;
    +&nbsp;    protected Timer deleteRequests;
    +&nbsp;    protected Timer optionsRequests;
    +&nbsp;    protected Timer traceRequests;
    +&nbsp;    protected Timer connectRequests;
    +&nbsp;    protected Timer moveRequests;
    +&nbsp;    protected Timer otherRequests;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix) {
    +<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +<b class="fc">&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getName() {
    +<b class="fc">&nbsp;        return name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setName(String name) {
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    +&nbsp;                    ));
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                public Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;        } else {
    +<b class="fc">&nbsp;             this.responses = Collections.emptyList();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    +<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    +<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    +<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void updateResponses(Request request, Response response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="nc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-2.html
    new file mode 100644
    index 0000000000..1b02c1e6ec
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-2.html
    @@ -0,0 +1,193 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedConnectionFactory</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty12)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedConnectionFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedConnectionFactory$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.eclipse.jetty.io.Connection;
    +&nbsp;import org.eclipse.jetty.io.EndPoint;
    +&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    +&nbsp;import org.eclipse.jetty.server.Connector;
    +&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;
    +<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    +&nbsp;    private final ConnectionFactory connectionFactory;
    +&nbsp;    private final Timer timer;
    +&nbsp;    private final Counter counter;
    +&nbsp;
    +&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    +<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    +<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    +<b class="fc">&nbsp;        this.timer = timer;</b>
    +<b class="fc">&nbsp;        this.counter = counter;</b>
    +<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getProtocol() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public List&lt;String&gt; getProtocols() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    +<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    +<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    +&nbsp;            private Timer.Context context;
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onOpened(Connection connection) {
    +<b class="fc">&nbsp;                this.context = timer.time();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.inc();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onClosed(Connection connection) {
    +<b class="fc">&nbsp;                context.stop();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.dec();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        return connection;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-3.html
    new file mode 100644
    index 0000000000..c14bf506b2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-3.html
    @@ -0,0 +1,336 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty12)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedQueuedThreadPool</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.1%
    +  </span>
    +  <span class="absValue">
    +    (27/31)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import org.eclipse.jetty.util.annotation.Name;
    +&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    +&nbsp;
    +&nbsp;import java.util.concurrent.BlockingQueue;
    +&nbsp;import java.util.concurrent.ThreadFactory;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    +&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    +&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    +&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    +&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    +&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;    private String prefix;
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, 200);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    +&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    +<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getPrefix() {
    +<b class="nc">&nbsp;        return prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setPrefix(String prefix) {
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    +&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    +&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    +<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index.html
    new file mode 100644
    index 0000000000..8f8e60fdb6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..197c60e294
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..e4df5967b2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..fa6cb5ccfc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..c0c279add8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..97b8db1bc5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..d533e52b25
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..692baa9dfe
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..7f158601ba
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..126c37119c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-1.html
    new file mode 100644
    index 0000000000..05555e7019
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-1.html
    @@ -0,0 +1,348 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedEE10Handler</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty12.ee10</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedEE10Handler (io.dropwizard.metrics.jetty12.ee10)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedEE10Handler</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.9%
    +  </span>
    +  <span class="absValue">
    +    (23/32)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedEE10Handler$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedEE10Handler$AsyncAttachingListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedEE10Handler$InstrumentedAsyncListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12.ee10;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import io.dropwizard.metrics.jetty12.AbstractInstrumentedHandler;
    +&nbsp;import jakarta.servlet.AsyncEvent;
    +&nbsp;import jakarta.servlet.AsyncListener;
    +&nbsp;import org.eclipse.jetty.ee10.servlet.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.ee10.servlet.ServletApiRequest;
    +&nbsp;import org.eclipse.jetty.ee10.servlet.ServletApiResponse;
    +&nbsp;import org.eclipse.jetty.ee10.servlet.ServletChannelState;
    +&nbsp;import org.eclipse.jetty.ee10.servlet.ServletContextRequest;
    +&nbsp;import org.eclipse.jetty.server.Handler;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;import org.eclipse.jetty.server.Response;
    +&nbsp;import org.eclipse.jetty.util.Callback;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    +&nbsp; * instance. This {@link Handler} requires a {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} to be present.
    +&nbsp; * For correct behaviour, the {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} should be before this handler
    +&nbsp; * in the handler chain. To achieve this, one can use
    +&nbsp; * {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler#insertHandler(Singleton)}.
    +&nbsp; */
    +<b class="nc">&nbsp;public class InstrumentedEE10Handler extends AbstractInstrumentedHandler {</b>
    +&nbsp;    private AsyncListener listener;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry) {
    +<b class="nc">&nbsp;        super(registry, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry, String prefix) {
    +<b class="nc">&nbsp;        super(registry, prefix, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {
    +<b class="fc">&nbsp;        super(registry, prefix, responseMeteredLevel);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public boolean handle(Request request, Response response, Callback callback) throws Exception {
    +<b class="fc">&nbsp;        ServletContextRequest servletContextRequest = Request.as(request, ServletContextRequest.class);</b>
    +&nbsp;
    +&nbsp;        // only handle servlet requests with the InstrumentedHandler
    +&nbsp;        // because it depends on the ServletRequestState
    +<b class="fc">&nbsp;        if (servletContextRequest == null) {</b>
    +<b class="nc">&nbsp;            return super.handle(request, response, callback);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final ServletChannelState state = servletContextRequest.getServletRequestState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = Request.getTimeStamp(request);</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="nc">&nbsp;            activeSuspended.dec();</b>
    +<b class="nc">&nbsp;            if (state.getState() == ServletChannelState.State.HANDLING) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        boolean handled = false;</b>
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            handled = super.handle(request, response, callback);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            activeDispatches.dec();</b>
    +<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.inc();</b>
    +<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;                updateResponses(request, response, start, handled);</b>
    +&nbsp;            }
    +&nbsp;            // else onCompletion will handle it.
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return handled;</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="nc">&nbsp;            final ServletApiRequest request = (ServletApiRequest) state.getRequest();</b>
    +<b class="nc">&nbsp;            final ServletApiResponse response = (ServletApiResponse) state.getResponse();</b>
    +<b class="nc">&nbsp;            updateResponses(request.getRequest(), response.getResponse(), startTime, true);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            final ServletContextRequest servletContextRequest = Request.as(request.getRequest(), ServletContextRequest.class);</b>
    +<b class="nc">&nbsp;            final ServletChannelState servletRequestState = servletContextRequest.getServletRequestState();</b>
    +<b class="nc">&nbsp;            if (!servletRequestState.isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.dec();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index.html
    new file mode 100644
    index 0000000000..d3587cb0a0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..b6784d30ed
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..c9a02bdf99
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..2c1cd21aa0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..aca581b0ef
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..79fe030b6d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..1c73dc8170
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..7296ee6ca6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..6214c8e5ea
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..fde33ee499
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/sources/source-1.html
    new file mode 100644
    index 0000000000..4cbb537852
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/sources/source-1.html
    @@ -0,0 +1,195 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedAppender</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.logback13</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback13)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedAppender</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback13;
    +&nbsp;
    +&nbsp;import ch.qos.logback.classic.Level;
    +&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    +&nbsp;import ch.qos.logback.core.Appender;
    +&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    +&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    +&nbsp; * name of the appender.
    +&nbsp; */
    +&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    +&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    +&nbsp;
    +&nbsp;    private Meter all;
    +&nbsp;    private Meter trace;
    +&nbsp;    private Meter debug;
    +&nbsp;    private Meter info;
    +&nbsp;    private Meter warn;
    +&nbsp;    private Meter error;
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender() {
    +<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     *
    +&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(String registryName) {
    +<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the metric registry
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void start() {
    +<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    +<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    +<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    +<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    +<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    +<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    +<b class="fc">&nbsp;        super.start();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void append(ILoggingEvent event) {
    +<b class="fc">&nbsp;        all.mark();</b>
    +<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    +&nbsp;            case Level.TRACE_INT:
    +<b class="fc">&nbsp;                trace.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.DEBUG_INT:
    +<b class="fc">&nbsp;                debug.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.INFO_INT:
    +<b class="fc">&nbsp;                info.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.WARN_INT:
    +<b class="fc">&nbsp;                warn.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.ERROR_INT:
    +<b class="fc">&nbsp;                error.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            default:
    +&nbsp;                break;
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index.html
    new file mode 100644
    index 0000000000..be5222eb24
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..7ca78d7ab5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..241e60eb23
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..38dbe95975
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..8e46291ead
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..baec4751ec
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..16ddfe177a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..83b60e6e8a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..e43ed986e6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..46ff4e8b35
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/sources/source-1.html
    new file mode 100644
    index 0000000000..42ba3e4f3d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/sources/source-1.html
    @@ -0,0 +1,195 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedAppender</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.logback14</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback14)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedAppender</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback14;
    +&nbsp;
    +&nbsp;import ch.qos.logback.classic.Level;
    +&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    +&nbsp;import ch.qos.logback.core.Appender;
    +&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    +&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    +&nbsp; * name of the appender.
    +&nbsp; */
    +&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    +&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    +&nbsp;
    +&nbsp;    private Meter all;
    +&nbsp;    private Meter trace;
    +&nbsp;    private Meter debug;
    +&nbsp;    private Meter info;
    +&nbsp;    private Meter warn;
    +&nbsp;    private Meter error;
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender() {
    +<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     *
    +&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(String registryName) {
    +<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the metric registry
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void start() {
    +<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    +<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    +<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    +<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    +<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    +<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    +<b class="fc">&nbsp;        super.start();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void append(ILoggingEvent event) {
    +<b class="fc">&nbsp;        all.mark();</b>
    +<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    +&nbsp;            case Level.TRACE_INT:
    +<b class="fc">&nbsp;                trace.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.DEBUG_INT:
    +<b class="fc">&nbsp;                debug.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.INFO_INT:
    +<b class="fc">&nbsp;                info.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.WARN_INT:
    +<b class="fc">&nbsp;                warn.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.ERROR_INT:
    +<b class="fc">&nbsp;                error.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            default:
    +&nbsp;                break;
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index.html
    new file mode 100644
    index 0000000000..60a1a411ca
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..a450b3f558
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..ee31c2c351
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..3e1122404b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..90c718e323
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..de9e2c57b3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..214f784f46
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..375e70d485
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..b816fbdeb7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..aecb37bcab
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/sources/source-1.html
    new file mode 100644
    index 0000000000..ea3dc1c16b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/sources/source-1.html
    @@ -0,0 +1,195 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedAppender</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.logback15</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback15)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedAppender</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback15;
    +&nbsp;
    +&nbsp;import ch.qos.logback.classic.Level;
    +&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    +&nbsp;import ch.qos.logback.core.Appender;
    +&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    +&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    +&nbsp; * name of the appender.
    +&nbsp; */
    +&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    +&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    +&nbsp;
    +&nbsp;    private Meter all;
    +&nbsp;    private Meter trace;
    +&nbsp;    private Meter debug;
    +&nbsp;    private Meter info;
    +&nbsp;    private Meter warn;
    +&nbsp;    private Meter error;
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender() {
    +<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     *
    +&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(String registryName) {
    +<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the metric registry
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void start() {
    +<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    +<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    +<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    +<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    +<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    +<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    +<b class="fc">&nbsp;        super.start();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void append(ILoggingEvent event) {
    +<b class="fc">&nbsp;        all.mark();</b>
    +<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    +&nbsp;            case Level.TRACE_INT:
    +<b class="fc">&nbsp;                trace.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.DEBUG_INT:
    +<b class="fc">&nbsp;                debug.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.INFO_INT:
    +<b class="fc">&nbsp;                info.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.WARN_INT:
    +<b class="fc">&nbsp;                warn.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.ERROR_INT:
    +<b class="fc">&nbsp;                error.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            default:
    +&nbsp;                break;
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index.html
    new file mode 100644
    index 0000000000..cb4d72def4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..e5eec15be7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..b51be76aa6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..da65e97835
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..7ef222e980
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..1b1fdd4d99
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..c1b9e388b7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..681caba3d6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..f3ebf23bd1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..400e27bb79
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-1.html
    new file mode 100644
    index 0000000000..8ebf857ad4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-1.html
    @@ -0,0 +1,387 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > AbstractInstrumentedFilter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">AbstractInstrumentedFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/45)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import jakarta.servlet.AsyncEvent;
    +&nbsp;import jakarta.servlet.AsyncListener;
    +&nbsp;import jakarta.servlet.Filter;
    +&nbsp;import jakarta.servlet.FilterChain;
    +&nbsp;import jakarta.servlet.FilterConfig;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.ServletRequest;
    +&nbsp;import jakarta.servlet.ServletResponse;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;import jakarta.servlet.http.HttpServletResponseWrapper;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Map.Entry;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    +&nbsp; * codes being returned.
    +&nbsp; */
    +<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    +&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    +&nbsp;
    +&nbsp;    private final String otherMetricName;
    +&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    +&nbsp;    private final String registryAttribute;
    +&nbsp;
    +&nbsp;    // initialized after call of init method
    +&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    +&nbsp;    private Meter otherMeter;
    +&nbsp;    private Meter timeoutsMeter;
    +&nbsp;    private Meter errorsMeter;
    +&nbsp;    private Counter activeRequests;
    +&nbsp;    private Timer requestTimer;
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new instance of the filter.
    +&nbsp;     *
    +&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    +&nbsp;     *                               servlet context
    +&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    +&nbsp;     *                               interested in.
    +&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    +&nbsp;     */
    +&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    +&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    +<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    +<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    +<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    +<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    +<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    +<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    +<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    +<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    +<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    +<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    +<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    +<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    +<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    +<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    +&nbsp;
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    +&nbsp;        final MetricRegistry metricsRegistry;
    +&nbsp;
    +<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    +<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    +<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        return metricsRegistry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void destroy() {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void doFilter(ServletRequest request,
    +&nbsp;                         ServletResponse response,
    +&nbsp;                         FilterChain chain) throws IOException, ServletException {
    +<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    +&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    +<b class="nc">&nbsp;        activeRequests.inc();</b>
    +<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    +<b class="nc">&nbsp;        boolean error = false;</b>
    +&nbsp;        try {
    +<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    +<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    +<b class="nc">&nbsp;            error = true;</b>
    +<b class="nc">&nbsp;            throw e;</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    +<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                context.stop();</b>
    +<b class="nc">&nbsp;                activeRequests.dec();</b>
    +<b class="nc">&nbsp;                if (error) {</b>
    +<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    +&nbsp;                } else {
    +<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void markMeterForStatusCode(int status) {
    +<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    +<b class="nc">&nbsp;        if (metric != null) {</b>
    +<b class="nc">&nbsp;            metric.mark();</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            otherMeter.mark();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    +&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    +<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    +&nbsp;
    +&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    +<b class="nc">&nbsp;            super(response);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void sendError(int sc) throws IOException {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.sendError(sc);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void sendError(int sc, String msg) throws IOException {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void setStatus(int sc) {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.setStatus(sc);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        @SuppressWarnings(&quot;deprecation&quot;)
    +&nbsp;        public void setStatus(int sc, String sm) {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.setStatus(sc, sm);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public int getStatus() {
    +<b class="nc">&nbsp;            return httpStatus;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class AsyncResultListener implements AsyncListener {
    +&nbsp;        private Timer.Context context;
    +<b class="nc">&nbsp;        private boolean done = false;</b>
    +&nbsp;
    +<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    +<b class="nc">&nbsp;            this.context = context;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            if (!done) {</b>
    +<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    +<b class="nc">&nbsp;                context.stop();</b>
    +<b class="nc">&nbsp;                activeRequests.dec();</b>
    +<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            context.stop();</b>
    +<b class="nc">&nbsp;            activeRequests.dec();</b>
    +<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    +<b class="nc">&nbsp;            done = true;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            context.stop();</b>
    +<b class="nc">&nbsp;            activeRequests.dec();</b>
    +<b class="nc">&nbsp;            errorsMeter.mark();</b>
    +<b class="nc">&nbsp;            done = true;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +&nbsp;
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-2.html
    new file mode 100644
    index 0000000000..1bcae29ed1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-2.html
    @@ -0,0 +1,152 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedFilter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    +&nbsp;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Map;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    +&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    +&nbsp; * &lt;pre&gt;{@code
    +&nbsp; * &lt;filter&gt;
    +&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    +&nbsp; *     &lt;filter-class&gt;io.dropwizard.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    +&nbsp; * &lt;/filter&gt;
    +&nbsp; * &lt;filter-mapping&gt;
    +&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    +&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    +&nbsp; * &lt;/filter-mapping&gt;
    +&nbsp; * }&lt;/pre&gt;
    +&nbsp; */
    +&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    +<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    +&nbsp;
    +&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    +&nbsp;    private static final int OK = 200;
    +&nbsp;    private static final int CREATED = 201;
    +&nbsp;    private static final int NO_CONTENT = 204;
    +&nbsp;    private static final int BAD_REQUEST = 400;
    +&nbsp;    private static final int NOT_FOUND = 404;
    +&nbsp;    private static final int SERVER_ERROR = 500;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new instance of the filter.
    +&nbsp;     */
    +&nbsp;    public InstrumentedFilter() {
    +<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    +<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    +<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-3.html
    new file mode 100644
    index 0000000000..8fe874895b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-3.html
    @@ -0,0 +1,130 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedFilterContextListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedFilterContextListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import jakarta.servlet.ServletContextEvent;
    +&nbsp;import jakarta.servlet.ServletContextListener;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    +&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    +&nbsp; * application.
    +&nbsp; */
    +<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    +&nbsp;    /**
    +&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    +&nbsp;     */
    +&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    +<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index.html
    new file mode 100644
    index 0000000000..84f9f6cf66
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..865270b844
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..ed39156d21
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..acb8600327
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..8e1a3683dc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..a37dd191de
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..966d90e8bb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..93b9bb3bf6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..6992bc60f4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..a7bca70a6e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-1.html
    new file mode 100644
    index 0000000000..524ff8ee72
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-1.html
    @@ -0,0 +1,380 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > AbstractInstrumentedFilter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet6)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">AbstractInstrumentedFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/45)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/9)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import jakarta.servlet.AsyncEvent;
    +&nbsp;import jakarta.servlet.AsyncListener;
    +&nbsp;import jakarta.servlet.Filter;
    +&nbsp;import jakarta.servlet.FilterChain;
    +&nbsp;import jakarta.servlet.FilterConfig;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.ServletRequest;
    +&nbsp;import jakarta.servlet.ServletResponse;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;import jakarta.servlet.http.HttpServletResponseWrapper;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Map.Entry;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    +&nbsp; * codes being returned.
    +&nbsp; */
    +<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    +&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    +&nbsp;
    +&nbsp;    private final String otherMetricName;
    +&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    +&nbsp;    private final String registryAttribute;
    +&nbsp;
    +&nbsp;    // initialized after call of init method
    +&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    +&nbsp;    private Meter otherMeter;
    +&nbsp;    private Meter timeoutsMeter;
    +&nbsp;    private Meter errorsMeter;
    +&nbsp;    private Counter activeRequests;
    +&nbsp;    private Timer requestTimer;
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new instance of the filter.
    +&nbsp;     *
    +&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    +&nbsp;     *                               servlet context
    +&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    +&nbsp;     *                               interested in.
    +&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    +&nbsp;     */
    +&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    +&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    +<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    +<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    +<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    +<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    +<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    +<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    +<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    +<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    +<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    +<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    +<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    +<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    +<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    +<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    +&nbsp;
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    +&nbsp;        final MetricRegistry metricsRegistry;
    +&nbsp;
    +<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    +<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    +<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        return metricsRegistry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void destroy() {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void doFilter(ServletRequest request,
    +&nbsp;                         ServletResponse response,
    +&nbsp;                         FilterChain chain) throws IOException, ServletException {
    +<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    +&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    +<b class="nc">&nbsp;        activeRequests.inc();</b>
    +<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    +<b class="nc">&nbsp;        boolean error = false;</b>
    +&nbsp;        try {
    +<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    +<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    +<b class="nc">&nbsp;            error = true;</b>
    +<b class="nc">&nbsp;            throw e;</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    +<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                context.stop();</b>
    +<b class="nc">&nbsp;                activeRequests.dec();</b>
    +<b class="nc">&nbsp;                if (error) {</b>
    +<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    +&nbsp;                } else {
    +<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void markMeterForStatusCode(int status) {
    +<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    +<b class="nc">&nbsp;        if (metric != null) {</b>
    +<b class="nc">&nbsp;            metric.mark();</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            otherMeter.mark();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    +&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    +<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    +&nbsp;
    +&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    +<b class="nc">&nbsp;            super(response);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void sendError(int sc) throws IOException {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.sendError(sc);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void sendError(int sc, String msg) throws IOException {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void setStatus(int sc) {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.setStatus(sc);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public int getStatus() {
    +<b class="nc">&nbsp;            return httpStatus;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class AsyncResultListener implements AsyncListener {
    +&nbsp;        private final Timer.Context context;
    +<b class="nc">&nbsp;        private boolean done = false;</b>
    +&nbsp;
    +<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    +<b class="nc">&nbsp;            this.context = context;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            if (!done) {</b>
    +<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    +<b class="nc">&nbsp;                context.stop();</b>
    +<b class="nc">&nbsp;                activeRequests.dec();</b>
    +<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            context.stop();</b>
    +<b class="nc">&nbsp;            activeRequests.dec();</b>
    +<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    +<b class="nc">&nbsp;            done = true;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            context.stop();</b>
    +<b class="nc">&nbsp;            activeRequests.dec();</b>
    +<b class="nc">&nbsp;            errorsMeter.mark();</b>
    +<b class="nc">&nbsp;            done = true;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +&nbsp;
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-2.html
    new file mode 100644
    index 0000000000..18b35955bb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-2.html
    @@ -0,0 +1,152 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedFilter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet6)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    +&nbsp;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Map;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    +&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    +&nbsp; * &lt;pre&gt;{@code
    +&nbsp; * &lt;filter&gt;
    +&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    +&nbsp; *     &lt;filter-class&gt;io.dropwizard.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    +&nbsp; * &lt;/filter&gt;
    +&nbsp; * &lt;filter-mapping&gt;
    +&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    +&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    +&nbsp; * &lt;/filter-mapping&gt;
    +&nbsp; * }&lt;/pre&gt;
    +&nbsp; */
    +&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    +<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    +&nbsp;
    +&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    +&nbsp;    private static final int OK = 200;
    +&nbsp;    private static final int CREATED = 201;
    +&nbsp;    private static final int NO_CONTENT = 204;
    +&nbsp;    private static final int BAD_REQUEST = 400;
    +&nbsp;    private static final int NOT_FOUND = 404;
    +&nbsp;    private static final int SERVER_ERROR = 500;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new instance of the filter.
    +&nbsp;     */
    +&nbsp;    public InstrumentedFilter() {
    +<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    +<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    +<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-3.html
    new file mode 100644
    index 0000000000..6688092b09
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-3.html
    @@ -0,0 +1,130 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedFilterContextListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet6)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedFilterContextListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import jakarta.servlet.ServletContextEvent;
    +&nbsp;import jakarta.servlet.ServletContextListener;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    +&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    +&nbsp; * application.
    +&nbsp; */
    +<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    +&nbsp;    /**
    +&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    +&nbsp;     */
    +&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    +<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index.html
    new file mode 100644
    index 0000000000..abacd9fb3a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..5db50b015a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..51b96564f3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..6a9d32b734
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..2bf968ee80
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..f50bec9acd
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..59e4914a4e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..1c4063fa8e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..58fcb137b6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..d1cfebedd4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-1.html
    new file mode 100644
    index 0000000000..8d37f1362d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-1.html
    @@ -0,0 +1,294 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > AdminServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: AdminServlet (io.dropwizard.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">AdminServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +&nbsp;
    +&nbsp;import jakarta.servlet.ServletConfig;
    +&nbsp;import jakarta.servlet.ServletContext;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServlet;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;import java.text.MessageFormat;
    +&nbsp;
    +<b class="fc">&nbsp;public class AdminServlet extends HttpServlet {</b>
    +&nbsp;    public static final String DEFAULT_HEALTHCHECK_URI = &quot;/healthcheck&quot;;
    +&nbsp;    public static final String DEFAULT_METRICS_URI = &quot;/metrics&quot;;
    +&nbsp;    public static final String DEFAULT_PING_URI = &quot;/ping&quot;;
    +&nbsp;    public static final String DEFAULT_THREADS_URI = &quot;/threads&quot;;
    +&nbsp;    public static final String DEFAULT_CPU_PROFILE_URI = &quot;/pprof&quot;;
    +&nbsp;
    +&nbsp;    public static final String METRICS_ENABLED_PARAM_KEY = &quot;metrics-enabled&quot;;
    +&nbsp;    public static final String METRICS_URI_PARAM_KEY = &quot;metrics-uri&quot;;
    +&nbsp;    public static final String PING_ENABLED_PARAM_KEY = &quot;ping-enabled&quot;;
    +&nbsp;    public static final String PING_URI_PARAM_KEY = &quot;ping-uri&quot;;
    +&nbsp;    public static final String THREADS_ENABLED_PARAM_KEY = &quot;threads-enabled&quot;;
    +&nbsp;    public static final String THREADS_URI_PARAM_KEY = &quot;threads-uri&quot;;
    +&nbsp;    public static final String HEALTHCHECK_ENABLED_PARAM_KEY = &quot;healthcheck-enabled&quot;;
    +&nbsp;    public static final String HEALTHCHECK_URI_PARAM_KEY = &quot;healthcheck-uri&quot;;
    +&nbsp;    public static final String SERVICE_NAME_PARAM_KEY = &quot;service-name&quot;;
    +&nbsp;    public static final String CPU_PROFILE_ENABLED_PARAM_KEY = &quot;cpu-profile-enabled&quot;;
    +&nbsp;    public static final String CPU_PROFILE_URI_PARAM_KEY = &quot;cpu-profile-uri&quot;;
    +&nbsp;
    +&nbsp;    private static final String BASE_TEMPLATE =
    +&nbsp;            &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot;%n&quot; +
    +&nbsp;                    &quot;        \&quot;http://www.w3.org/TR/html4/loose.dtd\&quot;&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;html&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;head&gt;%n&quot; +
    +&nbsp;                    &quot;  &lt;title&gt;Metrics{10}&lt;/title&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;/head&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;body&gt;%n&quot; +
    +&nbsp;                    &quot;  &lt;h1&gt;Operational Menu{10}&lt;/h1&gt;%n&quot; +
    +&nbsp;                    &quot;  &lt;ul&gt;%n&quot; +
    +&nbsp;                    &quot;%s&quot; +
    +&nbsp;                    &quot;  &lt;/ul&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;/body&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;/html&gt;&quot;;
    +&nbsp;    private static final String METRICS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{0}{1}?pretty=true\&quot;&gt;Metrics&lt;/a&gt;&lt;/li&gt;%n&quot;;
    +&nbsp;    private static final String PING_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{2}{3}\&quot;&gt;Ping&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    +&nbsp;    private static final String THREADS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{4}{5}\&quot;&gt;Threads&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    +&nbsp;    private static final String HEALTHCHECK_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{6}{7}?pretty=true\&quot;&gt;Healthcheck&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    +&nbsp;    private static final String CPU_PROFILE_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}\&quot;&gt;CPU Profile&lt;/a&gt;&lt;/li&gt;%n&quot; +
    +&nbsp;            &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}?state=blocked\&quot;&gt;CPU Contention&lt;/a&gt;&lt;/li&gt;%n&quot;;
    +&nbsp;
    +&nbsp;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;text/html&quot;;
    +&nbsp;    private static final long serialVersionUID = -2850794040708785318L;
    +&nbsp;
    +&nbsp;    private transient HealthCheckServlet healthCheckServlet;
    +&nbsp;    private transient MetricsServlet metricsServlet;
    +&nbsp;    private transient PingServlet pingServlet;
    +&nbsp;    private transient ThreadDumpServlet threadDumpServlet;
    +&nbsp;    private transient CpuProfileServlet cpuProfileServlet;
    +&nbsp;    private transient boolean metricsEnabled;
    +&nbsp;    private transient String metricsUri;
    +&nbsp;    private transient boolean pingEnabled;
    +&nbsp;    private transient String pingUri;
    +&nbsp;    private transient boolean threadsEnabled;
    +&nbsp;    private transient String threadsUri;
    +&nbsp;    private transient boolean healthcheckEnabled;
    +&nbsp;    private transient String healthcheckUri;
    +&nbsp;    private transient boolean cpuProfileEnabled;
    +&nbsp;    private transient String cpuProfileUri;
    +&nbsp;    private transient String serviceName;
    +&nbsp;    private transient String pageContentTemplate;
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(ServletConfig config) throws ServletException {
    +<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    +<b class="fc">&nbsp;        final StringBuilder servletLinks = new StringBuilder();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.metricsEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.metricsEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(METRICS_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.metricsServlet = new MetricsServlet();</b>
    +<b class="fc">&nbsp;        metricsServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.pingEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.pingEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(PING_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.pingServlet = new PingServlet();</b>
    +<b class="fc">&nbsp;        pingServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.threadsEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.threadsEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(THREADS_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.threadDumpServlet = new ThreadDumpServlet();</b>
    +<b class="fc">&nbsp;        threadDumpServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.healthcheckEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.healthcheckEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(HEALTHCHECK_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.healthCheckServlet = new HealthCheckServlet();</b>
    +<b class="fc">&nbsp;        healthCheckServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.cpuProfileEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.cpuProfileEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(CPU_PROFILE_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.cpuProfileServlet = new CpuProfileServlet();</b>
    +<b class="fc">&nbsp;        cpuProfileServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);</b>
    +<b class="fc">&nbsp;        this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);</b>
    +<b class="fc">&nbsp;        this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);</b>
    +<b class="fc">&nbsp;        this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);</b>
    +<b class="fc">&nbsp;        this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);</b>
    +<b class="fc">&nbsp;        this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final String path = req.getContextPath() + req.getServletPath();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    +<b class="fc">&nbsp;            writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,</b>
    +&nbsp;                    threadsUri, path, healthcheckUri, path, cpuProfileUri,
    +<b class="fc">&nbsp;                    serviceName == null ? &quot;&quot; : &quot; (&quot; + serviceName + &quot;)&quot;));</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final String uri = req.getPathInfo();</b>
    +<b class="fc">&nbsp;        if (uri == null || uri.equals(&quot;/&quot;)) {</b>
    +<b class="fc">&nbsp;            super.service(req, resp);</b>
    +<b class="nc">&nbsp;        } else if (uri.equals(healthcheckUri)) {</b>
    +<b class="nc">&nbsp;            if (healthcheckEnabled) {</b>
    +<b class="nc">&nbsp;                healthCheckServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.startsWith(metricsUri)) {</b>
    +<b class="nc">&nbsp;            if (metricsEnabled) {</b>
    +<b class="nc">&nbsp;                metricsServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.equals(pingUri)) {</b>
    +<b class="nc">&nbsp;            if (pingEnabled) {</b>
    +<b class="nc">&nbsp;                pingServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.equals(threadsUri)) {</b>
    +<b class="nc">&nbsp;            if (threadsEnabled) {</b>
    +<b class="nc">&nbsp;                threadDumpServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.equals(cpuProfileUri)) {</b>
    +<b class="nc">&nbsp;            if (cpuProfileEnabled) {</b>
    +<b class="nc">&nbsp;                cpuProfileServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static String getParam(String initParam, String defaultValue) {
    +<b class="fc">&nbsp;        return initParam == null ? defaultValue : initParam;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-2.html
    new file mode 100644
    index 0000000000..f7d8d7b1d7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-2.html
    @@ -0,0 +1,183 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CpuProfileServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CpuProfileServlet (io.dropwizard.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CpuProfileServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +&nbsp;
    +&nbsp;import com.papertrail.profiler.CpuProfile;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServlet;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.time.Duration;
    +&nbsp;import java.util.concurrent.locks.Lock;
    +&nbsp;import java.util.concurrent.locks.ReentrantLock;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An HTTP servlets which outputs a &lt;a href=&quot;https://github.com/gperftools/gperftools&quot;&gt;pprof&lt;/a&gt; parseable response.
    +&nbsp; */
    +<b class="fc">&nbsp;public class CpuProfileServlet extends HttpServlet {</b>
    +&nbsp;    private static final long serialVersionUID = -668666696530287501L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;pprof/raw&quot;;
    +&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    +&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    +<b class="fc">&nbsp;    private final Lock lock = new ReentrantLock();</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +&nbsp;
    +<b class="fc">&nbsp;        int duration = 10;</b>
    +<b class="fc">&nbsp;        if (req.getParameter(&quot;duration&quot;) != null) {</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                duration = Integer.parseInt(req.getParameter(&quot;duration&quot;));</b>
    +<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    +<b class="nc">&nbsp;                duration = 10;</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        int frequency = 100;</b>
    +<b class="fc">&nbsp;        if (req.getParameter(&quot;frequency&quot;) != null) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                frequency = Integer.parseInt(req.getParameter(&quot;frequency&quot;));</b>
    +<b class="nc">&nbsp;                frequency = Math.min(Math.max(frequency, 1), 1000);</b>
    +<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    +<b class="nc">&nbsp;                frequency = 100;</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        final Thread.State state;
    +<b class="fc">&nbsp;        if (&quot;blocked&quot;.equalsIgnoreCase(req.getParameter(&quot;state&quot;))) {</b>
    +<b class="nc">&nbsp;            state = Thread.State.BLOCKED;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            state = Thread.State.RUNNABLE;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            doProfile(output, duration, frequency, state);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
    +<b class="fc">&nbsp;        if (lock.tryLock()) {</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),</b>
    +&nbsp;                        frequency, state);
    +<b class="fc">&nbsp;                if (profile == null) {</b>
    +<b class="nc">&nbsp;                    throw new RuntimeException(&quot;could not create CpuProfile&quot;);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                profile.writeGoogleProfile(out);</b>
    +&nbsp;                return;
    +&nbsp;            } finally {
    +<b class="fc">&nbsp;                lock.unlock();</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        throw new RuntimeException(&quot;Only one profile request may be active at a time&quot;);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-3.html
    new file mode 100644
    index 0000000000..7486d098fd
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-3.html
    @@ -0,0 +1,325 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheckServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheckServlet (io.dropwizard.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HealthCheckServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.1%
    +  </span>
    +  <span class="absValue">
    +    (58/61)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HealthCheckServlet$ContextListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/9)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.health.HealthCheck;
    +&nbsp;import com.codahale.metrics.health.HealthCheckFilter;
    +&nbsp;import com.codahale.metrics.health.HealthCheckRegistry;
    +&nbsp;import com.codahale.metrics.json.HealthCheckModule;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    +&nbsp;import jakarta.servlet.ServletConfig;
    +&nbsp;import jakarta.servlet.ServletContext;
    +&nbsp;import jakarta.servlet.ServletContextEvent;
    +&nbsp;import jakarta.servlet.ServletContextListener;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServlet;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.concurrent.ExecutorService;
    +&nbsp;
    +&nbsp;public class HealthCheckServlet extends HttpServlet {
    +<b class="nc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    +&nbsp;        /**
    +&nbsp;         * @return the {@link HealthCheckRegistry} to inject into the servlet context.
    +&nbsp;         */
    +&nbsp;        protected abstract HealthCheckRegistry getHealthCheckRegistry();
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
    +&nbsp;         * if the health checks should be run in the servlet worker thread.
    +&nbsp;         */
    +&nbsp;        protected ExecutorService getExecutorService() {
    +&nbsp;            // don&#39;t use a thread pool by default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
    +&nbsp;         * or {@link HealthCheckFilter#ALL} if the default should be used.
    +&nbsp;         */
    +&nbsp;        protected HealthCheckFilter getHealthCheckFilter() {
    +<b class="nc">&nbsp;            return HealthCheckFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link ObjectMapper} that shall be used to render health checks,
    +&nbsp;         * or {@code null} if the default object mapper should be used.
    +&nbsp;         */
    +&nbsp;        protected ObjectMapper getObjectMapper() {
    +&nbsp;            // don&#39;t use an object mapper by default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextInitialized(ServletContextEvent event) {
    +<b class="nc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    +<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());</b>
    +<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());</b>
    +<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    +&nbsp;            // no-op
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + &quot;.executor&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + &quot;.healthCheckFilter&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + &quot;.mapper&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + &quot;.httpStatusIndicator&quot;;</b>
    +&nbsp;
    +&nbsp;    private static final long serialVersionUID = -8432996484889177321L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    +&nbsp;    private static final String HTTP_STATUS_INDICATOR_PARAM = &quot;httpStatusIndicator&quot;;
    +&nbsp;
    +&nbsp;    private transient HealthCheckRegistry registry;
    +&nbsp;    private transient ExecutorService executorService;
    +&nbsp;    private transient HealthCheckFilter filter;
    +&nbsp;    private transient ObjectMapper mapper;
    +&nbsp;    private transient boolean httpStatusIndicator;
    +&nbsp;
    +<b class="fc">&nbsp;    public HealthCheckServlet() {</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public HealthCheckServlet(HealthCheckRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(ServletConfig config) throws ServletException {
    +<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    +<b class="fc">&nbsp;        if (null == registry) {</b>
    +<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);</b>
    +<b class="fc">&nbsp;            if (registryAttr instanceof HealthCheckRegistry) {</b>
    +<b class="fc">&nbsp;                this.registry = (HealthCheckRegistry) registryAttr;</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a HealthCheckRegistry instance.&quot;);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);</b>
    +<b class="fc">&nbsp;        if (executorAttr instanceof ExecutorService) {</b>
    +<b class="fc">&nbsp;            this.executorService = (ExecutorService) executorAttr;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);</b>
    +<b class="fc">&nbsp;        if (filterAttr instanceof HealthCheckFilter) {</b>
    +<b class="fc">&nbsp;            filter = (HealthCheckFilter) filterAttr;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        if (filter == null) {</b>
    +<b class="fc">&nbsp;            filter = HealthCheckFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);</b>
    +<b class="fc">&nbsp;        if (mapperAttr instanceof ObjectMapper) {</b>
    +<b class="nc">&nbsp;            this.mapper = (ObjectMapper) mapperAttr;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.mapper = new ObjectMapper();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.mapper.registerModule(new HealthCheckModule());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);</b>
    +<b class="fc">&nbsp;        if (httpStatusIndicatorAttr instanceof Boolean) {</b>
    +<b class="nc">&nbsp;            this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.httpStatusIndicator = true;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void destroy() {
    +<b class="fc">&nbsp;        super.destroy();</b>
    +<b class="fc">&nbsp;        registry.shutdown();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = runHealthChecks();</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        if (results.isEmpty()) {</b>
    +<b class="fc">&nbsp;            resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);</b>
    +<b class="fc">&nbsp;            final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);</b>
    +<b class="fc">&nbsp;            final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;</b>
    +<b class="fc">&nbsp;            if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {</b>
    +<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_OK);</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            getWriter(req).writeValue(output, results);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private ObjectWriter getWriter(HttpServletRequest request) {
    +<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    +<b class="fc">&nbsp;        if (prettyPrint) {</b>
    +<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return mapper.writer();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    +<b class="fc">&nbsp;        if (executorService == null) {</b>
    +<b class="nc">&nbsp;            return registry.runHealthChecks(filter);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return registry.runHealthChecks(executorService, filter);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static boolean isAllHealthy(Map&lt;String, HealthCheck.Result&gt; results) {
    +<b class="fc">&nbsp;        for (HealthCheck.Result result : results.values()) {</b>
    +<b class="fc">&nbsp;            if (!result.isHealthy()) {</b>
    +<b class="fc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return true;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    // visible for testing
    +&nbsp;    ObjectMapper getMapper() {
    +<b class="fc">&nbsp;        return mapper;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-4.html
    new file mode 100644
    index 0000000000..caca084349
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-4.html
    @@ -0,0 +1,328 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricsServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricsServlet (io.dropwizard.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricsServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (44/44)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">MetricsServlet$ContextListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (5/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (14/18)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricFilter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.json.MetricsModule;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    +&nbsp;import com.fasterxml.jackson.databind.util.JSONPObject;
    +&nbsp;import jakarta.servlet.ServletConfig;
    +&nbsp;import jakarta.servlet.ServletContext;
    +&nbsp;import jakarta.servlet.ServletContextEvent;
    +&nbsp;import jakarta.servlet.ServletContextListener;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServlet;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A servlet which returns the metrics in a given registry as an {@code application/json} response.
    +&nbsp; */
    +&nbsp;public class MetricsServlet extends HttpServlet {
    +&nbsp;    /**
    +&nbsp;     * An abstract {@link ServletContextListener} which allows you to programmatically inject the
    +&nbsp;     * {@link MetricRegistry}, rate and duration units, and allowed origin for
    +&nbsp;     * {@link MetricsServlet}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    +&nbsp;        /**
    +&nbsp;         * @return the {@link MetricRegistry} to inject into the servlet context.
    +&nbsp;         */
    +&nbsp;        protected abstract MetricRegistry getMetricRegistry();
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
    +&nbsp;         * default should be used.
    +&nbsp;         */
    +&nbsp;        protected TimeUnit getRateUnit() {
    +&nbsp;            // use the default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
    +&nbsp;         * the default should be used.
    +&nbsp;         */
    +&nbsp;        protected TimeUnit getDurationUnit() {
    +&nbsp;            // use the default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@code Access-Control-Allow-Origin} header value, if any.
    +&nbsp;         */
    +&nbsp;        protected String getAllowedOrigin() {
    +&nbsp;            // use the default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the name of the parameter used to specify the jsonp callback, if any.
    +&nbsp;         */
    +&nbsp;        protected String getJsonpCallbackParameter() {
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
    +&nbsp;         * the default should be used.
    +&nbsp;         */
    +&nbsp;        protected MetricFilter getMetricFilter() {
    +&nbsp;            // use the default
    +<b class="fc">&nbsp;            return MetricFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextInitialized(ServletContextEvent event) {
    +<b class="fc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    +<b class="fc">&nbsp;            context.setAttribute(METRICS_REGISTRY, getMetricRegistry());</b>
    +<b class="fc">&nbsp;            context.setAttribute(METRIC_FILTER, getMetricFilter());</b>
    +<b class="fc">&nbsp;            if (getDurationUnit() != null) {</b>
    +<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (getRateUnit() != null) {</b>
    +<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (getAllowedOrigin() != null) {</b>
    +<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (getJsonpCallbackParameter() != null) {</b>
    +<b class="nc">&nbsp;                context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    +&nbsp;            // no-op
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.rateUnit&quot;;</b>
    +<b class="fc">&nbsp;    public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.durationUnit&quot;;</b>
    +<b class="fc">&nbsp;    public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + &quot;.showSamples&quot;;</b>
    +<b class="fc">&nbsp;    public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    +<b class="fc">&nbsp;    public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + &quot;.allowedOrigin&quot;;</b>
    +<b class="fc">&nbsp;    public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + &quot;.metricFilter&quot;;</b>
    +<b class="fc">&nbsp;    public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + &quot;.jsonpCallback&quot;;</b>
    +&nbsp;
    +&nbsp;    private static final long serialVersionUID = 1049773947734939602L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    +&nbsp;
    +&nbsp;    protected String allowedOrigin;
    +&nbsp;    protected String jsonpParamName;
    +&nbsp;    protected transient MetricRegistry registry;
    +&nbsp;    protected transient ObjectMapper mapper;
    +&nbsp;
    +<b class="fc">&nbsp;    public MetricsServlet() {</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public MetricsServlet(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(ServletConfig config) throws ServletException {
    +<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    +<b class="fc">&nbsp;        if (null == registry) {</b>
    +<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(METRICS_REGISTRY);</b>
    +<b class="fc">&nbsp;            if (registryAttr instanceof MetricRegistry) {</b>
    +<b class="fc">&nbsp;                this.registry = (MetricRegistry) registryAttr;</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a MetricRegistry instance.&quot;);</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);</b>
    +<b class="fc">&nbsp;        this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        setupMetricsModule(context);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void setupMetricsModule(ServletContext context) {
    +<b class="fc">&nbsp;        final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),</b>
    +&nbsp;                TimeUnit.SECONDS);
    +<b class="fc">&nbsp;        final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),</b>
    +&nbsp;                TimeUnit.SECONDS);
    +<b class="fc">&nbsp;        final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));</b>
    +<b class="fc">&nbsp;        MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);</b>
    +<b class="fc">&nbsp;        if (filter == null) {</b>
    +<b class="fc">&nbsp;            filter = MetricFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,</b>
    +&nbsp;                durationUnit,
    +&nbsp;                showSamples,
    +&nbsp;                filter));
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        if (allowedOrigin != null) {</b>
    +<b class="fc">&nbsp;            resp.setHeader(&quot;Access-Control-Allow-Origin&quot;, allowedOrigin);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            if (jsonpParamName != null &amp;&amp; req.getParameter(jsonpParamName) != null) {</b>
    +<b class="fc">&nbsp;                getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                getWriter(req).writeValue(output, registry);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected ObjectWriter getWriter(HttpServletRequest request) {
    +<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    +<b class="fc">&nbsp;        if (prettyPrint) {</b>
    +<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return mapper.writer();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));</b>
    +<b class="fc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    +<b class="fc">&nbsp;            return defaultValue;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-5.html
    new file mode 100644
    index 0000000000..3a907c6c3d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-5.html
    @@ -0,0 +1,135 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > PingServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: PingServlet (io.dropwizard.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">PingServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +&nbsp;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServlet;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An HTTP servlets which outputs a {@code text/plain} {@code &quot;pong&quot;} response.
    +&nbsp; */
    +<b class="fc">&nbsp;public class PingServlet extends HttpServlet {</b>
    +&nbsp;    private static final long serialVersionUID = 3772654177231086757L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    +&nbsp;    private static final String CONTENT = &quot;pong&quot;;
    +&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    +&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    +<b class="fc">&nbsp;            writer.println(CONTENT);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-6.html
    new file mode 100644
    index 0000000000..ee3f76a370
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-6.html
    @@ -0,0 +1,159 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ThreadDumpServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ThreadDumpServlet (io.dropwizard.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ThreadDumpServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.jvm.ThreadDump;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServlet;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
    +&nbsp; * the VM. Only responds to {@code GET} requests.
    +&nbsp; */
    +<b class="fc">&nbsp;public class ThreadDumpServlet extends HttpServlet {</b>
    +&nbsp;
    +&nbsp;    private static final long serialVersionUID = -2690343532336103046L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    +&nbsp;
    +&nbsp;    private transient ThreadDump threadDump;
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init() throws ServletException {
    +&nbsp;        try {
    +&nbsp;            // Some PaaS like Google App Engine blacklist java.lang.managament
    +<b class="fc">&nbsp;            this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());</b>
    +<b class="nc">&nbsp;        } catch (NoClassDefFoundError ncdfe) {</b>
    +<b class="nc">&nbsp;            this.threadDump = null; // we won&#39;t be able to provide thread dump</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final boolean includeMonitors = getParam(req.getParameter(&quot;monitors&quot;), true);</b>
    +<b class="fc">&nbsp;        final boolean includeSynchronizers = getParam(req.getParameter(&quot;synchronizers&quot;), true);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        if (threadDump == null) {</b>
    +<b class="nc">&nbsp;            resp.getWriter().println(&quot;Sorry your runtime environment does not allow to dump threads.&quot;);</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            threadDump.dump(includeMonitors, includeSynchronizers, output);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static Boolean getParam(String initParam, boolean defaultValue) {
    +<b class="fc">&nbsp;        return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index.html
    new file mode 100644
    index 0000000000..ff70b27265
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..18609c756a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..d5800a3924
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..90ae736370
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..59921f4973
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..053d6fba95
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..a63d03f9bc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..6c13a3dc73
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..a5344b2ce8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..7ef7cf894f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-1.html
    new file mode 100644
    index 0000000000..1cd77c4fad
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-1.html
    @@ -0,0 +1,176 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CachedGaugeBenchmark</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CachedGaugeBenchmark (com.codahale.metrics.benchmarks)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CachedGaugeBenchmark</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">CachedGaugeBenchmark$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.CachedGauge;
    +&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    +&nbsp;import org.openjdk.jmh.annotations.Scope;
    +&nbsp;import org.openjdk.jmh.annotations.State;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.runner.Runner;
    +&nbsp;import org.openjdk.jmh.runner.RunnerException;
    +&nbsp;import org.openjdk.jmh.runner.options.Options;
    +&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;@State(Scope.Benchmark)
    +<b class="nc">&nbsp;public class CachedGaugeBenchmark {</b>
    +&nbsp;
    +<b class="nc">&nbsp;    private CachedGauge&lt;Integer&gt; cachedGauge = new CachedGauge&lt;Integer&gt;(100, TimeUnit.MILLISECONDS) {</b>
    +&nbsp;        @Override
    +&nbsp;        protected Integer loadValue() {
    +&nbsp;            try {
    +<b class="nc">&nbsp;                Thread.sleep(10);</b>
    +<b class="nc">&nbsp;            } catch (InterruptedException e) {</b>
    +<b class="nc">&nbsp;                throw new RuntimeException(&quot;Thread was interrupted&quot;, e);</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            return 12345;</b>
    +&nbsp;        }
    +&nbsp;    };
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    public void perfGetValue(Blackhole blackhole) {
    +<b class="nc">&nbsp;        blackhole.consume(cachedGauge.getValue());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void main(String[] args) throws RunnerException {
    +<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    +<b class="nc">&nbsp;                .include(&quot;.*&quot; + CachedGaugeBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    +<b class="nc">&nbsp;                .warmupIterations(3)</b>
    +<b class="nc">&nbsp;                .measurementIterations(5)</b>
    +<b class="nc">&nbsp;                .threads(4)</b>
    +<b class="nc">&nbsp;                .forks(1)</b>
    +<b class="nc">&nbsp;                .build();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        new Runner(opt).run();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-2.html
    new file mode 100644
    index 0000000000..0430a0cb21
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-2.html
    @@ -0,0 +1,142 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CounterBenchmark</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CounterBenchmark (com.codahale.metrics.benchmarks)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CounterBenchmark</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    +&nbsp;import org.openjdk.jmh.annotations.Scope;
    +&nbsp;import org.openjdk.jmh.annotations.State;
    +&nbsp;import org.openjdk.jmh.runner.Runner;
    +&nbsp;import org.openjdk.jmh.runner.RunnerException;
    +&nbsp;import org.openjdk.jmh.runner.options.Options;
    +&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    +&nbsp;
    +&nbsp;@State(Scope.Benchmark)
    +<b class="nc">&nbsp;public class CounterBenchmark {</b>
    +&nbsp;
    +<b class="nc">&nbsp;    private final Counter counter = new Counter();</b>
    +&nbsp;
    +&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    +<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    public Object perfIncrement() {
    +<b class="nc">&nbsp;        counter.inc(nextValue); </b>
    +<b class="nc">&nbsp;        return counter;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void main(String[] args) throws RunnerException {
    +<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    +<b class="nc">&nbsp;                .include(&quot;.*&quot; + CounterBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    +<b class="nc">&nbsp;                .warmupIterations(3)</b>
    +<b class="nc">&nbsp;                .measurementIterations(5)</b>
    +<b class="nc">&nbsp;                .threads(4)</b>
    +<b class="nc">&nbsp;                .forks(1)</b>
    +<b class="nc">&nbsp;                .build();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        new Runner(opt).run();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-3.html
    new file mode 100644
    index 0000000000..29fd0199e8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-3.html
    @@ -0,0 +1,142 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MeterBenchmark</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MeterBenchmark (com.codahale.metrics.benchmarks)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MeterBenchmark</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    +&nbsp;import org.openjdk.jmh.annotations.Scope;
    +&nbsp;import org.openjdk.jmh.annotations.State;
    +&nbsp;import org.openjdk.jmh.runner.Runner;
    +&nbsp;import org.openjdk.jmh.runner.RunnerException;
    +&nbsp;import org.openjdk.jmh.runner.options.Options;
    +&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    +&nbsp;
    +&nbsp;@State(Scope.Benchmark)
    +<b class="nc">&nbsp;public class MeterBenchmark {</b>
    +&nbsp;
    +<b class="nc">&nbsp;    private final Meter meter = new Meter();</b>
    +&nbsp;
    +&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    +<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    public Object perfMark() {
    +<b class="nc">&nbsp;        meter.mark(nextValue);</b>
    +<b class="nc">&nbsp;        return meter;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void main(String[] args) throws RunnerException {
    +<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    +<b class="nc">&nbsp;                .include(&quot;.*&quot; + MeterBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    +<b class="nc">&nbsp;                .warmupIterations(3)</b>
    +<b class="nc">&nbsp;                .measurementIterations(5)</b>
    +<b class="nc">&nbsp;                .threads(4)</b>
    +<b class="nc">&nbsp;                .forks(1)</b>
    +<b class="nc">&nbsp;                .build();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        new Runner(opt).run();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-4.html
    new file mode 100644
    index 0000000000..0e917edcc8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-4.html
    @@ -0,0 +1,192 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark (com.codahale.metrics.benchmarks)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    +&nbsp;import com.codahale.metrics.LockFreeExponentiallyDecayingReservoir;
    +&nbsp;import com.codahale.metrics.Reservoir;
    +&nbsp;import com.codahale.metrics.SlidingTimeWindowArrayReservoir;
    +&nbsp;import com.codahale.metrics.SlidingTimeWindowReservoir;
    +&nbsp;import com.codahale.metrics.SlidingWindowReservoir;
    +&nbsp;import com.codahale.metrics.UniformReservoir;
    +&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Scope;
    +&nbsp;import org.openjdk.jmh.annotations.State;
    +&nbsp;import org.openjdk.jmh.profile.GCProfiler;
    +&nbsp;import org.openjdk.jmh.runner.Runner;
    +&nbsp;import org.openjdk.jmh.runner.RunnerException;
    +&nbsp;import org.openjdk.jmh.runner.options.Options;
    +&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    +&nbsp;import org.openjdk.jmh.runner.options.TimeValue;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;@State(Scope.Benchmark)
    +<b class="nc">&nbsp;public class ReservoirBenchmark {</b>
    +&nbsp;
    +<b class="nc">&nbsp;    private final UniformReservoir uniform = new UniformReservoir();</b>
    +<b class="nc">&nbsp;    private final ExponentiallyDecayingReservoir exponential = new ExponentiallyDecayingReservoir();</b>
    +<b class="nc">&nbsp;    private final Reservoir lockFreeExponential = LockFreeExponentiallyDecayingReservoir.builder().build();</b>
    +<b class="nc">&nbsp;    private final SlidingWindowReservoir sliding = new SlidingWindowReservoir(1000);</b>
    +<b class="nc">&nbsp;    private final SlidingTimeWindowReservoir slidingTime = new SlidingTimeWindowReservoir(200, TimeUnit.MILLISECONDS);</b>
    +<b class="nc">&nbsp;    private final SlidingTimeWindowArrayReservoir arrTime = new SlidingTimeWindowArrayReservoir(200, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    +<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    public Object perfUniformReservoir() {
    +<b class="nc">&nbsp;        uniform.update(nextValue);</b>
    +<b class="nc">&nbsp;        return uniform;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    public Object perfSlidingTimeWindowArrayReservoir() {
    +<b class="nc">&nbsp;        arrTime.update(nextValue);</b>
    +<b class="nc">&nbsp;        return arrTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    public Object perfExponentiallyDecayingReservoir() {
    +<b class="nc">&nbsp;        exponential.update(nextValue);</b>
    +<b class="nc">&nbsp;        return exponential;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    public Object perfSlidingWindowReservoir() {
    +<b class="nc">&nbsp;        sliding.update(nextValue);</b>
    +<b class="nc">&nbsp;        return sliding;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    public Object perfSlidingTimeWindowReservoir() {
    +<b class="nc">&nbsp;        slidingTime.update(nextValue);</b>
    +<b class="nc">&nbsp;        return slidingTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    public Object perfLockFreeExponentiallyDecayingReservoir() {
    +<b class="nc">&nbsp;        lockFreeExponential.update(nextValue);</b>
    +<b class="nc">&nbsp;        return lockFreeExponential;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void main(String[] args) throws RunnerException {
    +<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    +<b class="nc">&nbsp;            .include(&quot;.*&quot; + ReservoirBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    +<b class="nc">&nbsp;            .warmupIterations(10)</b>
    +<b class="nc">&nbsp;            .measurementIterations(10)</b>
    +<b class="nc">&nbsp;            .addProfiler(GCProfiler.class)</b>
    +<b class="nc">&nbsp;            .measurementTime(TimeValue.seconds(3))</b>
    +<b class="nc">&nbsp;            .timeUnit(TimeUnit.MICROSECONDS)</b>
    +<b class="nc">&nbsp;            .mode(Mode.AverageTime)</b>
    +<b class="nc">&nbsp;            .threads(4)</b>
    +<b class="nc">&nbsp;            .forks(1)</b>
    +<b class="nc">&nbsp;            .build();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        new Runner(opt).run();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-5.html
    new file mode 100644
    index 0000000000..ac852e495e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-5.html
    @@ -0,0 +1,184 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark (com.codahale.metrics.benchmarks)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowReservoirsBenchmark</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.SlidingTimeWindowArrayReservoir;
    +&nbsp;import com.codahale.metrics.SlidingTimeWindowReservoir;
    +&nbsp;import com.codahale.metrics.Snapshot;
    +&nbsp;
    +&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    +&nbsp;import org.openjdk.jmh.annotations.Group;
    +&nbsp;import org.openjdk.jmh.annotations.GroupThreads;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Scope;
    +&nbsp;import org.openjdk.jmh.annotations.State;
    +&nbsp;import org.openjdk.jmh.profile.GCProfiler;
    +&nbsp;import org.openjdk.jmh.runner.Runner;
    +&nbsp;import org.openjdk.jmh.runner.RunnerException;
    +&nbsp;import org.openjdk.jmh.runner.options.Options;
    +&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    +&nbsp;import org.openjdk.jmh.runner.options.TimeValue;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * @author bstorozhuk
    +&nbsp; */
    +&nbsp;@State(Scope.Benchmark)
    +<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark {</b>
    +<b class="nc">&nbsp;    private final SlidingTimeWindowReservoir slidingTime = new SlidingTimeWindowReservoir(200, TimeUnit.MILLISECONDS);</b>
    +<b class="nc">&nbsp;    private final SlidingTimeWindowArrayReservoir arrTime = new SlidingTimeWindowArrayReservoir(200, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    +<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    @Group(&quot;slidingTime&quot;)
    +&nbsp;    @GroupThreads(3)
    +&nbsp;    public Object slidingTimeAddMeasurement() {
    +<b class="nc">&nbsp;        slidingTime.update(nextValue);</b>
    +<b class="nc">&nbsp;        return slidingTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    @Group(&quot;slidingTime&quot;)
    +&nbsp;    @GroupThreads(1)
    +&nbsp;    public Object slidingTimeRead() {
    +<b class="nc">&nbsp;        Snapshot snapshot = slidingTime.getSnapshot();</b>
    +<b class="nc">&nbsp;        return snapshot;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    @Group(&quot;arrTime&quot;)
    +&nbsp;    @GroupThreads(3)
    +&nbsp;    public Object arrTimeAddMeasurement() {
    +<b class="nc">&nbsp;        arrTime.update(nextValue);</b>
    +<b class="nc">&nbsp;        return slidingTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    @Group(&quot;arrTime&quot;)
    +&nbsp;    @GroupThreads(1)
    +&nbsp;    public Object arrTimeRead() {
    +<b class="nc">&nbsp;        Snapshot snapshot = arrTime.getSnapshot();</b>
    +<b class="nc">&nbsp;        return snapshot;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void main(String[] args) throws RunnerException {
    +<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    +<b class="nc">&nbsp;            .include(&quot;.*&quot; + SlidingTimeWindowReservoirsBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    +<b class="nc">&nbsp;            .warmupIterations(10)</b>
    +<b class="nc">&nbsp;            .measurementIterations(10)</b>
    +<b class="nc">&nbsp;            .addProfiler(GCProfiler.class)</b>
    +<b class="nc">&nbsp;            .measurementTime(TimeValue.seconds(3))</b>
    +<b class="nc">&nbsp;            .timeUnit(TimeUnit.MICROSECONDS)</b>
    +<b class="nc">&nbsp;            .mode(Mode.AverageTime)</b>
    +<b class="nc">&nbsp;            .forks(1)</b>
    +<b class="nc">&nbsp;            .build();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        new Runner(opt).run();</b>
    +&nbsp;    }
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index.html
    new file mode 100644
    index 0000000000..cf66eb6b35
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..cce2b7bfed
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..e2519e2bce
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..9285d98ae1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..c62e6e0a46
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..100ea3a449
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..38676fa22a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..2a341b31e6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..e4e5f99f81
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..22416509ea
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1.html
    new file mode 100644
    index 0000000000..db9b67bd25
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1.html
    @@ -0,0 +1,238 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricsStatsCounter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.caffeine</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricsStatsCounter (com.codahale.metrics.caffeine)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricsStatsCounter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;/*
    +&nbsp; * Copyright 2016 Ben Manes. All Rights Reserved.
    +&nbsp; *
    +&nbsp; * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    +&nbsp; * you may not use this file except in compliance with the License.
    +&nbsp; * You may obtain a copy of the License at
    +&nbsp; *
    +&nbsp; *     http://www.apache.org/licenses/LICENSE-2.0
    +&nbsp; *
    +&nbsp; * Unless required by applicable law or agreed to in writing, software
    +&nbsp; * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    +&nbsp; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +&nbsp; * See the License for the specific language governing permissions and
    +&nbsp; * limitations under the License.
    +&nbsp; */
    +&nbsp;package com.codahale.metrics.caffeine;
    +&nbsp;
    +&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;
    +&nbsp;import java.util.EnumMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.LongAdder;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Histogram;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.github.benmanes.caffeine.cache.RemovalCause;
    +&nbsp;import com.github.benmanes.caffeine.cache.stats.CacheStats;
    +&nbsp;import com.github.benmanes.caffeine.cache.stats.StatsCounter;
    +&nbsp;import org.checkerframework.checker.index.qual.NonNegative;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link StatsCounter} instrumented with Dropwizard Metrics.
    +&nbsp; *
    +&nbsp; * @author ben.manes@gmail.com (Ben Manes)
    +&nbsp; * @author John Karp
    +&nbsp; */
    +&nbsp;public final class MetricsStatsCounter implements StatsCounter {
    +&nbsp;  private final Counter hitCount;
    +&nbsp;  private final Counter missCount;
    +&nbsp;  private final Timer loadSuccess;
    +&nbsp;  private final Timer loadFailure;
    +&nbsp;  private final Histogram evictions;
    +&nbsp;  private final Counter evictionWeight;
    +&nbsp;  private final EnumMap&lt;RemovalCause, Histogram&gt; evictionsWithCause;
    +&nbsp;
    +&nbsp;  // for implementing snapshot()
    +<b class="fc">&nbsp;  private final LongAdder totalLoadTime = new LongAdder();</b>
    +&nbsp;
    +&nbsp;  /**
    +&nbsp;   * Constructs an instance for use by a single cache.
    +&nbsp;   *
    +&nbsp;   * @param registry the registry of metric instances
    +&nbsp;   * @param metricsPrefix the prefix name for the metrics
    +&nbsp;   */
    +<b class="fc">&nbsp;  public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {</b>
    +<b class="fc">&nbsp;    requireNonNull(metricsPrefix);</b>
    +<b class="fc">&nbsp;    hitCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;hits&quot;));</b>
    +<b class="fc">&nbsp;    missCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;misses&quot;));</b>
    +<b class="fc">&nbsp;    loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-success&quot;));</b>
    +<b class="fc">&nbsp;    loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-failure&quot;));</b>
    +<b class="fc">&nbsp;    evictions = registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;));</b>
    +<b class="fc">&nbsp;    evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, &quot;evictions-weight&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;    evictionsWithCause = new EnumMap&lt;&gt;(RemovalCause.class);</b>
    +<b class="fc">&nbsp;    for (RemovalCause cause : RemovalCause.values()) {</b>
    +<b class="fc">&nbsp;      evictionsWithCause.put(</b>
    +&nbsp;          cause,
    +<b class="fc">&nbsp;          registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;, cause.name())));</b>
    +&nbsp;    }
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordHits(int count) {
    +<b class="fc">&nbsp;    hitCount.inc(count);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordMisses(int count) {
    +<b class="fc">&nbsp;    missCount.inc(count);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordLoadSuccess(long loadTime) {
    +<b class="fc">&nbsp;    loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);</b>
    +<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordLoadFailure(long loadTime) {
    +<b class="fc">&nbsp;    loadFailure.update(loadTime, TimeUnit.NANOSECONDS);</b>
    +<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  // @Override -- Caffeine 2.x
    +&nbsp;  @Deprecated
    +&nbsp;  @SuppressWarnings(&quot;deprecation&quot;)
    +&nbsp;  public void recordEviction() {
    +&nbsp;    // This method is scheduled for removal in version 3.0 in favor of recordEviction(weight)
    +<b class="fc">&nbsp;    recordEviction(1);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  // @Override -- Caffeine 2.x
    +&nbsp;  @Deprecated
    +&nbsp;  @SuppressWarnings(&quot;deprecation&quot;)
    +&nbsp;  public void recordEviction(int weight) {
    +<b class="fc">&nbsp;    evictions.update(weight);</b>
    +<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordEviction(@NonNegative int weight, RemovalCause cause) {
    +<b class="fc">&nbsp;    evictionsWithCause.get(cause).update(weight);</b>
    +<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public CacheStats snapshot() {
    +<b class="fc">&nbsp;    return CacheStats.of(</b>
    +<b class="fc">&nbsp;        hitCount.getCount(),</b>
    +<b class="fc">&nbsp;        missCount.getCount(),</b>
    +<b class="fc">&nbsp;        loadSuccess.getCount(),</b>
    +<b class="fc">&nbsp;        loadFailure.getCount(),</b>
    +<b class="fc">&nbsp;        totalLoadTime.sum(),</b>
    +<b class="fc">&nbsp;        evictions.getCount(),</b>
    +<b class="fc">&nbsp;        evictionWeight.getCount());</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public String toString() {
    +<b class="nc">&nbsp;    return snapshot().toString();</b>
    +&nbsp;  }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index.html
    new file mode 100644
    index 0000000000..2383917d7f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..cedf62aa03
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..5d2903863e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..75673e7564
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..fb3b16996e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..397500bc8c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..bff77a0f99
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..a14173fcaa
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..ca645953c2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..da775dc7ef
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (68/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.4%
    +  </span>
    +  <span class="absValue">
    +    (261/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-1.html
    new file mode 100644
    index 0000000000..3712882772
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-1.html
    @@ -0,0 +1,470 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CollectdReporter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CollectdReporter (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CollectdReporter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (16/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.9%
    +  </span>
    +  <span class="absValue">
    +    (79/93)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">CollectdReporter$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">CollectdReporter$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60%
    +  </span>
    +  <span class="absValue">
    +    (9/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.1%
    +  </span>
    +  <span class="absValue">
    +    (31/43)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Histogram;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricAttribute;
    +&nbsp;import com.codahale.metrics.MetricFilter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.ScheduledReporter;
    +&nbsp;import com.codahale.metrics.Snapshot;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.net.InetAddress;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A reporter which publishes metric values to a Collectd server.
    +&nbsp; *
    +&nbsp; * @see &lt;a href=&quot;https://collectd.org&quot;&gt;collectd – The system statistics
    +&nbsp; * collection daemon&lt;/a&gt;
    +&nbsp; */
    +<b class="fc">&nbsp;public class CollectdReporter extends ScheduledReporter {</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a builder for the specified registry.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * The default settings are:
    +&nbsp;     * &lt;ul&gt;
    +&nbsp;     * &lt;li&gt;hostName: InetAddress.getLocalHost().getHostName()&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;executor: default executor created by {@code ScheduledReporter}&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;shutdownExecutorOnStop: true&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;clock: Clock.defaultClock()&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;rateUnit: TimeUnit.SECONDS&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;durationUnit: TimeUnit.MILLISECONDS&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;filter: MetricFilter.ALL&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;securityLevel: NONE&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;username: &quot;&quot;&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;password: &quot;&quot;&lt;/li&gt;
    +&nbsp;     * &lt;/ul&gt;
    +&nbsp;     */
    +&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    +<b class="fc">&nbsp;        return new Builder(registry);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public static class Builder {</b>
    +&nbsp;
    +&nbsp;        private final MetricRegistry registry;
    +&nbsp;        private String hostName;
    +&nbsp;        private ScheduledExecutorService executor;
    +<b class="fc">&nbsp;        private boolean shutdownExecutorOnStop = true;</b>
    +<b class="fc">&nbsp;        private Clock clock = Clock.defaultClock();</b>
    +<b class="fc">&nbsp;        private TimeUnit rateUnit = TimeUnit.SECONDS;</b>
    +<b class="fc">&nbsp;        private TimeUnit durationUnit = TimeUnit.MILLISECONDS;</b>
    +<b class="fc">&nbsp;        private MetricFilter filter = MetricFilter.ALL;</b>
    +<b class="fc">&nbsp;        private SecurityLevel securityLevel = SecurityLevel.NONE;</b>
    +<b class="fc">&nbsp;        private String username = &quot;&quot;;</b>
    +<b class="fc">&nbsp;        private String password = &quot;&quot;;</b>
    +<b class="fc">&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes = Collections.emptySet();</b>
    +<b class="fc">&nbsp;        private int maxLength = Sanitize.DEFAULT_MAX_LENGTH;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;            this.registry = registry;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withHostName(String hostName) {
    +<b class="fc">&nbsp;            this.hostName = hostName;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    +<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    +<b class="nc">&nbsp;            this.executor = executor;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withClock(Clock clock) {
    +<b class="nc">&nbsp;            this.clock = clock;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    +<b class="nc">&nbsp;            this.rateUnit = rateUnit;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    +<b class="nc">&nbsp;            this.durationUnit = durationUnit;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder filter(MetricFilter filter) {
    +<b class="nc">&nbsp;            this.filter = filter;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withUsername(String username) {
    +<b class="fc">&nbsp;            this.username = username;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withPassword(String password) {
    +<b class="fc">&nbsp;            this.password = password;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withSecurityLevel(SecurityLevel securityLevel) {
    +<b class="fc">&nbsp;            this.securityLevel = securityLevel;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; attributes) {
    +<b class="fc">&nbsp;            this.disabledMetricAttributes = attributes;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withMaxLength(int maxLength) {
    +<b class="fc">&nbsp;            this.maxLength = maxLength;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public CollectdReporter build(Sender sender) {
    +<b class="fc">&nbsp;            if (securityLevel != SecurityLevel.NONE) {</b>
    +<b class="fc">&nbsp;                if (username.isEmpty()) {</b>
    +<b class="fc">&nbsp;                    throw new IllegalArgumentException(&quot;username is required for securityLevel: &quot; + securityLevel);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                if (password.isEmpty()) {</b>
    +<b class="fc">&nbsp;                    throw new IllegalArgumentException(&quot;password is required for securityLevel: &quot; + securityLevel);</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="fc">&nbsp;            return new CollectdReporter(registry,</b>
    +&nbsp;                    hostName, sender,
    +&nbsp;                    executor, shutdownExecutorOnStop,
    +&nbsp;                    clock, rateUnit, durationUnit,
    +&nbsp;                    filter, disabledMetricAttributes,
    +&nbsp;                    username, password, securityLevel, new Sanitize(maxLength));
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOG = LoggerFactory.getLogger(CollectdReporter.class);</b>
    +&nbsp;    private static final String REPORTER_NAME = &quot;collectd-reporter&quot;;
    +&nbsp;    private static final String FALLBACK_HOST_NAME = &quot;localhost&quot;;
    +&nbsp;    private static final String COLLECTD_TYPE_GAUGE = &quot;gauge&quot;;
    +&nbsp;
    +&nbsp;    private String hostName;
    +&nbsp;    private final Sender sender;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private long period;
    +&nbsp;    private final PacketWriter writer;
    +&nbsp;    private final Sanitize sanitize;
    +&nbsp;
    +&nbsp;    private CollectdReporter(MetricRegistry registry,
    +&nbsp;                             String hostname, Sender sender,
    +&nbsp;                             ScheduledExecutorService executor, boolean shutdownExecutorOnStop,
    +&nbsp;                             Clock clock, TimeUnit rateUnit, TimeUnit durationUnit,
    +&nbsp;                             MetricFilter filter, Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    +&nbsp;                             String username, String password,
    +&nbsp;                             SecurityLevel securityLevel, Sanitize sanitize) {
    +<b class="fc">&nbsp;        super(registry, REPORTER_NAME, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    +&nbsp;                disabledMetricAttributes);
    +<b class="fc">&nbsp;        this.hostName = (hostname != null) ? hostname : resolveHostName();</b>
    +<b class="fc">&nbsp;        this.sender = sender;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.sanitize = sanitize;</b>
    +<b class="fc">&nbsp;        writer = new PacketWriter(sender, username, password, securityLevel);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String resolveHostName() {
    +&nbsp;        try {
    +<b class="nc">&nbsp;            return InetAddress.getLocalHost().getHostName();</b>
    +<b class="nc">&nbsp;        } catch (Exception e) {</b>
    +<b class="nc">&nbsp;            LOG.error(&quot;Failed to lookup local host name: {}&quot;, e.getMessage(), e);</b>
    +<b class="nc">&nbsp;            return FALLBACK_HOST_NAME;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void start(long period, TimeUnit unit) {
    +<b class="nc">&nbsp;        this.period = period;</b>
    +<b class="nc">&nbsp;        super.start(period, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges, SortedMap&lt;String, Counter&gt; counters,
    +&nbsp;            SortedMap&lt;String, Histogram&gt; histograms, SortedMap&lt;String, Meter&gt; meters, SortedMap&lt;String, Timer&gt; timers) {
    +<b class="fc">&nbsp;        MetaData.Builder metaData = new MetaData.Builder(sanitize, hostName, clock.getTime() / 1000, period)</b>
    +<b class="fc">&nbsp;                .type(COLLECTD_TYPE_GAUGE);</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            connect(sender);</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    +<b class="fc">&nbsp;                serializeGauge(metaData.plugin(entry.getKey()), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    +<b class="fc">&nbsp;                serializeCounter(metaData.plugin(entry.getKey()), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    +<b class="fc">&nbsp;                serializeHistogram(metaData.plugin(entry.getKey()), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    +<b class="fc">&nbsp;                serializeMeter(metaData.plugin(entry.getKey()), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    +<b class="fc">&nbsp;                serializeTimer(metaData.plugin(entry.getKey()), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        } catch (IOException e) {</b>
    +<b class="nc">&nbsp;            LOG.warn(&quot;Unable to report to Collectd&quot;, e);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            disconnect(sender);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void connect(Sender sender) throws IOException {
    +<b class="fc">&nbsp;        if (!sender.isConnected()) {</b>
    +<b class="fc">&nbsp;            sender.connect();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void disconnect(Sender sender) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            sender.disconnect();</b>
    +<b class="nc">&nbsp;        } catch (Exception e) {</b>
    +<b class="nc">&nbsp;            LOG.warn(&quot;Error disconnecting from Collectd&quot;, e);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void writeValue(MetaData.Builder metaData, MetricAttribute attribute, Number value) {
    +<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(attribute)) {</b>
    +<b class="fc">&nbsp;            write(metaData.typeInstance(attribute.getCode()).get(), value);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void writeRate(MetaData.Builder metaData, MetricAttribute attribute, double rate) {
    +<b class="fc">&nbsp;        writeValue(metaData, attribute, convertRate(rate));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void writeDuration(MetaData.Builder metaData, MetricAttribute attribute, double duration) {
    +<b class="fc">&nbsp;        writeValue(metaData, attribute, convertDuration(duration));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void write(MetaData metaData, Number value) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            writer.write(metaData, value);</b>
    +<b class="nc">&nbsp;        } catch (RuntimeException e) {</b>
    +<b class="nc">&nbsp;            LOG.warn(&quot;Failed to process metric &#39;&quot; + metaData.getPlugin() + &quot;&#39;: &quot; + e.getMessage());</b>
    +<b class="nc">&nbsp;        } catch (IOException e) {</b>
    +<b class="nc">&nbsp;            LOG.error(&quot;Failed to send metric to collectd&quot;, e);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    private void serializeGauge(MetaData.Builder metaData, Gauge metric) {
    +<b class="fc">&nbsp;        if (metric.getValue() instanceof Number) {</b>
    +<b class="fc">&nbsp;            write(metaData.typeInstance(&quot;value&quot;).get(), (Number) metric.getValue());</b>
    +<b class="fc">&nbsp;        } else if (metric.getValue() instanceof Boolean) {</b>
    +<b class="fc">&nbsp;            write(metaData.typeInstance(&quot;value&quot;).get(), ((Boolean) metric.getValue()) ? 1 : 0);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            LOG.warn(&quot;Failed to process metric &#39;{}&#39;. Unsupported gauge of type: {} &quot;, metaData.get().getPlugin(),</b>
    +<b class="fc">&nbsp;                    metric.getValue().getClass().getName());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void serializeMeter(MetaData.Builder metaData, Meter metric) {
    +<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, M1_RATE, metric.getOneMinuteRate());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, MEAN_RATE, metric.getMeanRate());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void serializeCounter(MetaData.Builder metaData, Counter metric) {
    +<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void serializeHistogram(MetaData.Builder metaData, Histogram metric) {
    +<b class="fc">&nbsp;        final Snapshot snapshot = metric.getSnapshot();</b>
    +<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, MAX, (double) snapshot.getMax());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, MEAN, snapshot.getMean());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, MIN, (double) snapshot.getMin());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, STDDEV, snapshot.getStdDev());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, P50, snapshot.getMedian());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, P75, snapshot.get75thPercentile());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, P95, snapshot.get95thPercentile());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, P98, snapshot.get98thPercentile());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, P99, snapshot.get99thPercentile());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, P999, snapshot.get999thPercentile());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void serializeTimer(MetaData.Builder metaData, Timer metric) {
    +<b class="fc">&nbsp;        final Snapshot snapshot = metric.getSnapshot();</b>
    +<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, MAX, (double) snapshot.getMax());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, MEAN, snapshot.getMean());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, MIN, (double) snapshot.getMin());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, STDDEV, snapshot.getStdDev());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, P50, snapshot.getMedian());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, P75, snapshot.get75thPercentile());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, P95, snapshot.get95thPercentile());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, P98, snapshot.get98thPercentile());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, P99, snapshot.get99thPercentile());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, P999, snapshot.get999thPercentile());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, M1_RATE, metric.getOneMinuteRate());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, MEAN_RATE, metric.getMeanRate());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-2.html
    new file mode 100644
    index 0000000000..7b578e7423
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-2.html
    @@ -0,0 +1,228 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetaData</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetaData (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetaData</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">MetaData$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (13/15)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +&nbsp;class MetaData {
    +&nbsp;
    +&nbsp;    private final String host;
    +&nbsp;    private final String plugin;
    +&nbsp;    private final String pluginInstance;
    +&nbsp;    private final String type;
    +&nbsp;    private final String typeInstance;
    +&nbsp;    private final long timestamp;
    +&nbsp;    private final long period;
    +&nbsp;
    +&nbsp;    MetaData(String host, String plugin, String pluginInstance, String type, String typeInstance,
    +<b class="fc">&nbsp;             long timestamp, long period) {</b>
    +<b class="fc">&nbsp;        this.host = host;</b>
    +<b class="fc">&nbsp;        this.plugin = plugin;</b>
    +<b class="fc">&nbsp;        this.pluginInstance = pluginInstance;</b>
    +<b class="fc">&nbsp;        this.type = type;</b>
    +<b class="fc">&nbsp;        this.typeInstance = typeInstance;</b>
    +<b class="fc">&nbsp;        this.timestamp = timestamp;</b>
    +<b class="fc">&nbsp;        this.period = period;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    String getHost() {
    +<b class="fc">&nbsp;        return host;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    String getPlugin() {
    +<b class="fc">&nbsp;        return plugin;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    String getPluginInstance() {
    +<b class="fc">&nbsp;        return pluginInstance;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    String getType() {
    +<b class="fc">&nbsp;        return type;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    String getTypeInstance() {
    +<b class="fc">&nbsp;        return typeInstance;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    long getTimestamp() {
    +<b class="fc">&nbsp;        return timestamp;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    long getPeriod() {
    +<b class="fc">&nbsp;        return period;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    static class Builder {
    +&nbsp;
    +&nbsp;        private String host;
    +&nbsp;        private String plugin;
    +&nbsp;        private String pluginInstance;
    +&nbsp;        private String type;
    +&nbsp;        private String typeInstance;
    +&nbsp;        private long timestamp;
    +&nbsp;        private long period;
    +&nbsp;        private Sanitize sanitize;
    +&nbsp;
    +&nbsp;        Builder(String host, long timestamp, long duration) {
    +<b class="fc">&nbsp;            this(new Sanitize(Sanitize.DEFAULT_MAX_LENGTH), host, timestamp, duration);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        Builder(Sanitize sanitize, String host, long timestamp, long duration) {</b>
    +<b class="fc">&nbsp;            this.sanitize = sanitize;</b>
    +<b class="fc">&nbsp;            this.host = sanitize.instanceName(host);</b>
    +<b class="fc">&nbsp;            this.timestamp = timestamp;</b>
    +<b class="fc">&nbsp;            period = duration;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        Builder plugin(String name) {
    +<b class="fc">&nbsp;            plugin = sanitize.name(name);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        Builder pluginInstance(String name) {
    +<b class="nc">&nbsp;            pluginInstance = sanitize.instanceName(name);</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        Builder type(String name) {
    +<b class="fc">&nbsp;            type = sanitize.name(name);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        Builder typeInstance(String name) {
    +<b class="fc">&nbsp;            typeInstance = sanitize.instanceName(name);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        MetaData get() {
    +<b class="fc">&nbsp;            return new MetaData(host, plugin, pluginInstance, type, typeInstance, timestamp, period);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-3.html
    new file mode 100644
    index 0000000000..7789f23d29
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-3.html
    @@ -0,0 +1,424 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > PacketWriter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: PacketWriter (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">PacketWriter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.4%
    +  </span>
    +  <span class="absValue">
    +    (88/103)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">PacketWriter$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">PacketWriter$EncryptionResult</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +&nbsp;import javax.crypto.BadPaddingException;
    +&nbsp;import javax.crypto.Cipher;
    +&nbsp;import javax.crypto.IllegalBlockSizeException;
    +&nbsp;import javax.crypto.Mac;
    +&nbsp;import javax.crypto.NoSuchPaddingException;
    +&nbsp;import javax.crypto.ShortBufferException;
    +&nbsp;import javax.crypto.spec.IvParameterSpec;
    +&nbsp;import javax.crypto.spec.SecretKeySpec;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.nio.BufferOverflowException;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.nio.ByteOrder;
    +&nbsp;import java.nio.charset.StandardCharsets;
    +&nbsp;import java.security.InvalidKeyException;
    +&nbsp;import java.security.MessageDigest;
    +&nbsp;import java.security.NoSuchAlgorithmException;
    +&nbsp;import java.security.spec.InvalidParameterSpecException;
    +&nbsp;import java.util.Arrays;
    +&nbsp;
    +&nbsp;class PacketWriter {
    +&nbsp;
    +&nbsp;    private static final int TYPE_HOST = 0;
    +&nbsp;    private static final int TYPE_TIME = 1;
    +&nbsp;    private static final int TYPE_PLUGIN = 2;
    +&nbsp;    private static final int TYPE_PLUGIN_INSTANCE = 3;
    +&nbsp;    private static final int TYPE_TYPE = 4;
    +&nbsp;    private static final int TYPE_TYPE_INSTANCE = 5;
    +&nbsp;    private static final int TYPE_VALUES = 6;
    +&nbsp;    private static final int TYPE_INTERVAL = 7;
    +&nbsp;    private static final int TYPE_SIGN_SHA256 = 0x0200;
    +&nbsp;    private static final int TYPE_ENCR_AES256 = 0x0210;
    +&nbsp;
    +&nbsp;    private static final int UINT16_LEN = 2;
    +&nbsp;    private static final int UINT32_LEN = UINT16_LEN * 2;
    +&nbsp;    private static final int UINT64_LEN = UINT32_LEN * 2;
    +&nbsp;    private static final int HEADER_LEN = UINT16_LEN * 2;
    +&nbsp;    private static final int BUFFER_SIZE = 1024;
    +&nbsp;
    +&nbsp;    private static final int VALUE_COUNT_LEN = UINT16_LEN;
    +&nbsp;    private static final int NUMBER_LEN = HEADER_LEN + UINT64_LEN;
    +&nbsp;    private static final int SIGNATURE_LEN = 36;      // 2b Type + 2b Length + 32b Hash
    +&nbsp;    private static final int ENCRYPT_DATA_LEN = 22;   // 16b IV + 2b Type + 2b Length + 2b Username length
    +&nbsp;    private static final int IV_LENGTH = 16;
    +&nbsp;    private static final int SHA1_LENGTH = 20;
    +&nbsp;
    +&nbsp;    private static final int VALUE_LEN = 9;
    +&nbsp;    private static final byte DATA_TYPE_GAUGE = (byte) 1;
    +&nbsp;    private static final byte NULL = (byte) &#39;\0&#39;;
    +&nbsp;    private static final String HMAC_SHA256_ALGORITHM = &quot;HmacSHA256&quot;;
    +&nbsp;    private static final String AES_CYPHER = &quot;AES_256/OFB/NoPadding&quot;;
    +&nbsp;    private static final String AES = &quot;AES&quot;;
    +&nbsp;    private static final String SHA_256_ALGORITHM = &quot;SHA-256&quot;;
    +&nbsp;    private static final String SHA_1_ALGORITHM = &quot;SHA1&quot;;
    +&nbsp;
    +&nbsp;    private final Sender sender;
    +&nbsp;
    +&nbsp;    private final SecurityLevel securityLevel;
    +&nbsp;    private final byte[] username;
    +&nbsp;    private final byte[] password;
    +&nbsp;
    +<b class="fc">&nbsp;    PacketWriter(Sender sender, String username, String password, SecurityLevel securityLevel) {</b>
    +<b class="fc">&nbsp;        this.sender = sender;</b>
    +<b class="fc">&nbsp;        this.securityLevel = securityLevel;</b>
    +<b class="fc">&nbsp;        this.username = username != null ? username.getBytes(StandardCharsets.UTF_8) : null;</b>
    +<b class="fc">&nbsp;        this.password = password != null ? password.getBytes(StandardCharsets.UTF_8) : null;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    void write(MetaData metaData, Number... values) throws BufferOverflowException, IOException {
    +<b class="fc">&nbsp;        final ByteBuffer packet = ByteBuffer.allocate(BUFFER_SIZE);</b>
    +<b class="fc">&nbsp;        write(packet, metaData);</b>
    +<b class="fc">&nbsp;        write(packet, values);</b>
    +<b class="fc">&nbsp;        packet.flip();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        switch (securityLevel) {</b>
    +&nbsp;            case NONE:
    +<b class="fc">&nbsp;                sender.send(packet);</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case SIGN:
    +<b class="fc">&nbsp;                sender.send(signPacket(packet));</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case ENCRYPT:
    +<b class="fc">&nbsp;                sender.send(encryptPacket(packet));</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            default:
    +<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;Unsupported security level: &quot; + securityLevel);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    private void write(ByteBuffer buffer, MetaData metaData) {
    +<b class="fc">&nbsp;        writeString(buffer, TYPE_HOST, metaData.getHost());</b>
    +<b class="fc">&nbsp;        writeNumber(buffer, TYPE_TIME, metaData.getTimestamp());</b>
    +<b class="fc">&nbsp;        writeString(buffer, TYPE_PLUGIN, metaData.getPlugin());</b>
    +<b class="fc">&nbsp;        writeString(buffer, TYPE_PLUGIN_INSTANCE, metaData.getPluginInstance());</b>
    +<b class="fc">&nbsp;        writeString(buffer, TYPE_TYPE, metaData.getType());</b>
    +<b class="fc">&nbsp;        writeString(buffer, TYPE_TYPE_INSTANCE, metaData.getTypeInstance());</b>
    +<b class="fc">&nbsp;        writeNumber(buffer, TYPE_INTERVAL, metaData.getPeriod());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void write(ByteBuffer buffer, Number... values) {
    +<b class="fc">&nbsp;        final int numValues = values.length;</b>
    +<b class="fc">&nbsp;        final int length = HEADER_LEN + VALUE_COUNT_LEN + numValues * VALUE_LEN;</b>
    +<b class="fc">&nbsp;        writeHeader(buffer, TYPE_VALUES, length);</b>
    +<b class="fc">&nbsp;        buffer.putShort((short) numValues);</b>
    +<b class="fc">&nbsp;        buffer.put(nCopies(numValues, DATA_TYPE_GAUGE));</b>
    +<b class="fc">&nbsp;        buffer.order(ByteOrder.LITTLE_ENDIAN);</b>
    +<b class="fc">&nbsp;        for (Number value : values) {</b>
    +<b class="fc">&nbsp;            buffer.putDouble(value.doubleValue());</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        buffer.order(ByteOrder.BIG_ENDIAN);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private byte[] nCopies(int n, byte value) {
    +<b class="fc">&nbsp;        final byte[] array = new byte[n];</b>
    +<b class="fc">&nbsp;        Arrays.fill(array, value);</b>
    +<b class="fc">&nbsp;        return array;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void writeString(ByteBuffer buffer, int type, String val) {
    +<b class="fc">&nbsp;        if (val == null || val.length() == 0) {</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        int len = HEADER_LEN + val.length() + 1;</b>
    +<b class="fc">&nbsp;        writeHeader(buffer, type, len);</b>
    +<b class="fc">&nbsp;        buffer.put(val.getBytes(StandardCharsets.US_ASCII)).put(NULL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void writeNumber(ByteBuffer buffer, int type, long val) {
    +<b class="fc">&nbsp;        writeHeader(buffer, type, NUMBER_LEN);</b>
    +<b class="fc">&nbsp;        buffer.putLong(val);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void writeHeader(ByteBuffer buffer, int type, int len) {
    +<b class="fc">&nbsp;        buffer.putShort((short) type);</b>
    +<b class="fc">&nbsp;        buffer.putShort((short) len);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Signs the provided packet, so a CollectD server can verify that its authenticity.
    +&nbsp;     * Wire format:
    +&nbsp;     * &lt;pre&gt;
    +&nbsp;     * +-------------------------------+-------------------------------+
    +&nbsp;     * ! Type (0x0200)                 ! Length                        !
    +&nbsp;     * +-------------------------------+-------------------------------+
    +&nbsp;     * ! Signature (SHA2(username + packet))                           \
    +&nbsp;     * +-------------------------------+-------------------------------+
    +&nbsp;     * ! Username                      ! Packet                        \
    +&nbsp;     * +---------------------------------------------------------------+
    +&nbsp;     * &lt;/pre&gt;
    +&nbsp;     *
    +&nbsp;     * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Binary_protocol#Signature_part&quot;&gt;
    +&nbsp;     * Binary protocol - CollectD | Signature part&lt;/a&gt;
    +&nbsp;     */
    +&nbsp;    private ByteBuffer signPacket(ByteBuffer packet) {
    +<b class="fc">&nbsp;        final byte[] signature = sign(password, (ByteBuffer) ByteBuffer.allocate(packet.remaining() + username.length)</b>
    +<b class="fc">&nbsp;                .put(username)</b>
    +<b class="fc">&nbsp;                .put(packet)</b>
    +<b class="fc">&nbsp;                .flip());</b>
    +<b class="fc">&nbsp;        return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)</b>
    +<b class="fc">&nbsp;                .putShort((short) TYPE_SIGN_SHA256)</b>
    +<b class="fc">&nbsp;                .putShort((short) (username.length + SIGNATURE_LEN))</b>
    +<b class="fc">&nbsp;                .put(signature)</b>
    +<b class="fc">&nbsp;                .put(username)</b>
    +<b class="fc">&nbsp;                .put((ByteBuffer) packet.flip())</b>
    +<b class="fc">&nbsp;                .flip();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Encrypts the provided packet, so it&#39;s can&#39;t be eavesdropped during a transfer
    +&nbsp;     * to a CollectD server. Wire format:
    +&nbsp;     * &lt;pre&gt;
    +&nbsp;     * +---------------------------------+-------------------------------+
    +&nbsp;     * ! Type (0x0210)                   ! Length                        !
    +&nbsp;     * +---------------------------------+-------------------------------+
    +&nbsp;     * ! Username length in bytes        ! Username                      \
    +&nbsp;     * +-----------------------------------------------------------------+
    +&nbsp;     * ! Initialization Vector (IV)      !                               \
    +&nbsp;     * +---------------------------------+-------------------------------+
    +&nbsp;     * ! Encrypted bytes (AES (SHA1(packet) + packet))                   \
    +&nbsp;     * +---------------------------------+-------------------------------+
    +&nbsp;     * &lt;/pre&gt;
    +&nbsp;     *
    +&nbsp;     * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Binary_protocol#Encrypted_part&quot;&gt;
    +&nbsp;     * Binary protocol - CollectD | Encrypted part&lt;/a&gt;
    +&nbsp;     */
    +&nbsp;    private ByteBuffer encryptPacket(ByteBuffer packet) {
    +<b class="fc">&nbsp;        final ByteBuffer payload = (ByteBuffer) ByteBuffer.allocate(SHA1_LENGTH + packet.remaining())</b>
    +<b class="fc">&nbsp;                .put(sha1(packet))</b>
    +<b class="fc">&nbsp;                .put((ByteBuffer) packet.flip())</b>
    +<b class="fc">&nbsp;                .flip();</b>
    +<b class="fc">&nbsp;        final EncryptionResult er = encrypt(password, payload);</b>
    +<b class="fc">&nbsp;        return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)</b>
    +<b class="fc">&nbsp;                .putShort((short) TYPE_ENCR_AES256)</b>
    +<b class="fc">&nbsp;                .putShort((short) (ENCRYPT_DATA_LEN + username.length + er.output.remaining()))</b>
    +<b class="fc">&nbsp;                .putShort((short) username.length)</b>
    +<b class="fc">&nbsp;                .put(username)</b>
    +<b class="fc">&nbsp;                .put(er.iv)</b>
    +<b class="fc">&nbsp;                .put(er.output)</b>
    +<b class="fc">&nbsp;                .flip();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static byte[] sign(byte[] secret, ByteBuffer input) {
    +&nbsp;        final Mac mac;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            mac = Mac.getInstance(HMAC_SHA256_ALGORITHM);</b>
    +<b class="fc">&nbsp;            mac.init(new SecretKeySpec(secret, HMAC_SHA256_ALGORITHM));</b>
    +<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException | InvalidKeyException e) {</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        mac.update(input);</b>
    +<b class="fc">&nbsp;        return mac.doFinal();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static EncryptionResult encrypt(byte[] password, ByteBuffer input) {
    +&nbsp;        final Cipher cipher;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            cipher = Cipher.getInstance(AES_CYPHER);</b>
    +<b class="fc">&nbsp;            cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(sha256(password), AES));</b>
    +<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException e) {</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;        final byte[] iv;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            iv = cipher.getParameters().getParameterSpec(IvParameterSpec.class).getIV();</b>
    +<b class="nc">&nbsp;        } catch (InvalidParameterSpecException e) {</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        if (iv.length != IV_LENGTH) {</b>
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Bad initialization vector&quot;);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        final ByteBuffer output = ByteBuffer.allocate(input.remaining() * 2);</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            cipher.doFinal(input, output);</b>
    +<b class="nc">&nbsp;        } catch (ShortBufferException | IllegalBlockSizeException | BadPaddingException e) {</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return new EncryptionResult(iv, (ByteBuffer) output.flip());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static byte[] sha256(byte[] input) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return MessageDigest.getInstance(SHA_256_ALGORITHM).digest(input);</b>
    +<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException e) {</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static byte[] sha1(ByteBuffer input) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            final MessageDigest digest = MessageDigest.getInstance(SHA_1_ALGORITHM);</b>
    +<b class="fc">&nbsp;            digest.update(input);</b>
    +<b class="fc">&nbsp;            final byte[] output = digest.digest();</b>
    +<b class="fc">&nbsp;            if (output.length != SHA1_LENGTH) {</b>
    +<b class="nc">&nbsp;                throw new IllegalStateException(&quot;Bad SHA1 hash&quot;);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return output;</b>
    +<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException e) {</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class EncryptionResult {</b>
    +&nbsp;
    +&nbsp;        private final byte[] iv;
    +&nbsp;        private final ByteBuffer output;
    +&nbsp;
    +<b class="fc">&nbsp;        private EncryptionResult(byte[] iv, ByteBuffer output) {</b>
    +<b class="fc">&nbsp;            this.iv = iv;</b>
    +<b class="fc">&nbsp;            this.output = output;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-4.html
    new file mode 100644
    index 0000000000..53f3db6cb7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-4.html
    @@ -0,0 +1,150 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Sanitize</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Sanitize (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Sanitize</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.List;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Naming_schema&gt;Collectd naming schema&lt;/a&gt;
    +&nbsp; */
    +&nbsp;class Sanitize {
    +&nbsp;
    +&nbsp;    static final int DEFAULT_MAX_LENGTH = 63;
    +&nbsp;
    +&nbsp;    private static final char DASH = &#39;-&#39;;
    +&nbsp;    private static final char SLASH = &#39;/&#39;;
    +&nbsp;    private static final char NULL = &#39;\0&#39;;
    +&nbsp;    private static final char UNDERSCORE = &#39;_&#39;;
    +&nbsp;
    +<b class="fc">&nbsp;    private static final List&lt;Character&gt; INSTANCE_RESERVED = Arrays.asList(SLASH, NULL);</b>
    +<b class="fc">&nbsp;    private static final List&lt;Character&gt; NAME_RESERVED = Arrays.asList(DASH, SLASH, NULL);</b>
    +&nbsp;
    +&nbsp;    private final int maxLength;
    +&nbsp;
    +<b class="fc">&nbsp;    Sanitize(int maxLength) {</b>
    +<b class="fc">&nbsp;        this.maxLength = maxLength;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    String name(String name) {
    +<b class="fc">&nbsp;        return sanitize(name, NAME_RESERVED);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    String instanceName(String instanceName) {
    +<b class="fc">&nbsp;        return sanitize(instanceName, INSTANCE_RESERVED);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String sanitize(String string, List&lt;Character&gt; reservedChars) {
    +<b class="fc">&nbsp;        final StringBuilder buffer = new StringBuilder(string.length());</b>
    +<b class="fc">&nbsp;        final int len = Math.min(string.length(), maxLength);</b>
    +<b class="fc">&nbsp;        for (int i = 0; i &lt; len; i++) {</b>
    +<b class="fc">&nbsp;            final char c = string.charAt(i);</b>
    +<b class="fc">&nbsp;            final boolean legal = ((int) c) &lt; 128 &amp;&amp; !reservedChars.contains(c);</b>
    +<b class="fc">&nbsp;            buffer.append(legal ? c : UNDERSCORE);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return buffer.toString();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-5.html
    new file mode 100644
    index 0000000000..6720d82240
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-5.html
    @@ -0,0 +1,134 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SecurityConfiguration</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SecurityConfiguration (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SecurityConfiguration</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +&nbsp;public class SecurityConfiguration {
    +&nbsp;
    +&nbsp;    private final byte[] username;
    +&nbsp;    private final byte[] password;
    +&nbsp;    private final SecurityLevel securityLevel;
    +&nbsp;
    +<b class="nc">&nbsp;    public SecurityConfiguration(byte[] username, byte[] password, SecurityLevel securityLevel) {</b>
    +<b class="nc">&nbsp;        this.username = username;</b>
    +<b class="nc">&nbsp;        this.password = password;</b>
    +<b class="nc">&nbsp;        this.securityLevel = securityLevel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static SecurityConfiguration none() {
    +<b class="nc">&nbsp;        return new SecurityConfiguration(null, null, SecurityLevel.NONE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public byte[] getUsername() {
    +<b class="nc">&nbsp;        return username;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public byte[] getPassword() {
    +<b class="nc">&nbsp;        return password;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public SecurityLevel getSecurityLevel() {
    +<b class="nc">&nbsp;        return securityLevel;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-6.html
    new file mode 100644
    index 0000000000..805e94cd49
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-6.html
    @@ -0,0 +1,112 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SecurityLevel</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SecurityLevel (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SecurityLevel</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +<b class="fc">&nbsp;public enum SecurityLevel {</b>
    +&nbsp;
    +<b class="fc">&nbsp;    NONE,</b>
    +<b class="fc">&nbsp;    SIGN,</b>
    +<b class="fc">&nbsp;    ENCRYPT</b>
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-7.html
    new file mode 100644
    index 0000000000..bfb3efdeb6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-7.html
    @@ -0,0 +1,154 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Sender</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Sender (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Sender</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.net.InetSocketAddress;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.nio.channels.DatagramChannel;
    +&nbsp;
    +&nbsp;public class Sender {
    +&nbsp;
    +&nbsp;    private final String host;
    +&nbsp;    private final int port;
    +&nbsp;
    +&nbsp;    private InetSocketAddress address;
    +&nbsp;    private DatagramChannel channel;
    +&nbsp;
    +<b class="fc">&nbsp;    public Sender(String host, int port) {</b>
    +<b class="fc">&nbsp;        this.host = host;</b>
    +<b class="fc">&nbsp;        this.port = port;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void connect() throws IOException {
    +<b class="fc">&nbsp;        if (isConnected()) {</b>
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        if (host != null) {</b>
    +<b class="fc">&nbsp;            address = new InetSocketAddress(host, port);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        channel = DatagramChannel.open();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public boolean isConnected() {
    +<b class="fc">&nbsp;        return channel != null &amp;&amp; !channel.socket().isClosed();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void send(ByteBuffer buffer) throws IOException {
    +<b class="fc">&nbsp;        channel.send(buffer, address);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void disconnect() throws IOException {
    +<b class="fc">&nbsp;        if (channel == null) {</b>
    +&nbsp;            return;
    +&nbsp;        }
    +&nbsp;        try {
    +<b class="fc">&nbsp;            channel.close();</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            channel = null;</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index.html
    new file mode 100644
    index 0000000000..834dd38ac3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..edf3c8454d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..473426f3a5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..5d08a19847
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..b1b863e022
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..e13d79469c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..550e939c13
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..2d8393f6b9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..b14cf8c16c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..a2f53c208e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-1.html
    new file mode 100644
    index 0000000000..fe4aeccfb0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-1.html
    @@ -0,0 +1,128 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedCacheDecoratorFactory</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.ehcache</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedCacheDecoratorFactory (com.codahale.metrics.ehcache)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedCacheDecoratorFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.ehcache;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;import net.sf.ehcache.Ehcache;
    +&nbsp;import net.sf.ehcache.constructs.CacheDecoratorFactory;
    +&nbsp;
    +&nbsp;import java.util.Properties;
    +&nbsp;
    +<b class="fc">&nbsp;public class InstrumentedCacheDecoratorFactory extends CacheDecoratorFactory {</b>
    +&nbsp;    @Override
    +&nbsp;    public Ehcache createDecoratedEhcache(Ehcache cache, Properties properties) {
    +<b class="fc">&nbsp;        final String name = properties.getProperty(&quot;metric-registry-name&quot;);</b>
    +<b class="fc">&nbsp;        final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);</b>
    +<b class="fc">&nbsp;        return InstrumentedEhcache.instrument(registry, cache);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Ehcache createDefaultDecoratedEhcache(Ehcache cache, Properties properties) {
    +<b class="nc">&nbsp;        final String name = properties.getProperty(&quot;metric-registry-name&quot;);</b>
    +<b class="nc">&nbsp;        final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);</b>
    +<b class="nc">&nbsp;        return InstrumentedEhcache.instrument(registry, cache);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-2.html
    new file mode 100644
    index 0000000000..5cfb592c7c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-2.html
    @@ -0,0 +1,335 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedEhcache</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.ehcache</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedEhcache (com.codahale.metrics.ehcache)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedEhcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.ehcache;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import net.sf.ehcache.CacheException;
    +&nbsp;import net.sf.ehcache.Ehcache;
    +&nbsp;import net.sf.ehcache.Element;
    +&nbsp;import net.sf.ehcache.constructs.EhcacheDecoratorAdapter;
    +&nbsp;import net.sf.ehcache.statistics.StatisticsGateway;
    +&nbsp;
    +&nbsp;import java.io.Serializable;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An instrumented {@link Ehcache} instance.
    +&nbsp; */
    +&nbsp;public class InstrumentedEhcache extends EhcacheDecoratorAdapter {
    +&nbsp;    /**
    +&nbsp;     * Instruments the given {@link Ehcache} instance with get and put timers
    +&nbsp;     * and a set of gauges for Ehcache&#39;s built-in statistics:
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * &lt;table&gt;
    +&nbsp;     * &lt;caption&gt;Ehcache timered metrics&lt;/caption&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code hits}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;The number of times a requested item was found in the
    +&nbsp;     * cache.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code in-memory-hits}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was found in the memory
    +&nbsp;     * store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code off-heap-hits}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was found in the off-heap
    +&nbsp;     * store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code on-disk-hits}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was found in the disk
    +&nbsp;     * store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code misses}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the
    +&nbsp;     * cache.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code in-memory-misses}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the memory
    +&nbsp;     * store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code off-heap-misses}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the
    +&nbsp;     * off-heap store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code on-disk-misses}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the disk
    +&nbsp;     * store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code objects}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of elements stored in the cache.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code in-memory-objects}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of objects in the memory store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code off-heap-objects}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of objects in the off-heap store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code on-disk-objects}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of objects in the disk store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code mean-get-time}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;The average get time. Because ehcache support JDK1.4.2, each
    +&nbsp;     * get time uses {@link System#currentTimeMillis()}, rather than
    +&nbsp;     * nanoseconds. The accuracy is thus limited.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code mean-search-time}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;The average execution time (in milliseconds) within the last
    +&nbsp;     * sample period.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code eviction-count}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;The number of cache evictions, since the cache was created,
    +&nbsp;     * or statistics were cleared.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code searches-per-second}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;The number of search executions that have completed in the
    +&nbsp;     * last second.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code accuracy}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;A human readable description of the accuracy setting. One of
    +&nbsp;     * &quot;None&quot;, &quot;Best Effort&quot; or &quot;Guaranteed&quot;.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;/table&gt;
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * &lt;b&gt;N.B.: This enables Ehcache&#39;s sampling statistics with an accuracy
    +&nbsp;     * level of &quot;none.&quot;&lt;/b&gt;
    +&nbsp;     *
    +&nbsp;     * @param cache    an {@link Ehcache} instance
    +&nbsp;     * @param registry a {@link MetricRegistry}
    +&nbsp;     * @return an instrumented decorator for {@code cache}
    +&nbsp;     * @see StatisticsGateway
    +&nbsp;     */
    +&nbsp;    public static Ehcache instrument(MetricRegistry registry, final Ehcache cache) {
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = name(cache.getClass(), cache.getName());</b>
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;hits&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheHitCount());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-hits&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localHeapHitCount());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-hits&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localOffHeapHitCount());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-hits&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localDiskHitCount());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;misses&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheMissCount());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-misses&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localHeapMissCount());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-misses&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localOffHeapMissCount());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-misses&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localDiskMissCount());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;objects&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getSize());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-objects&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalHeapSize());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-objects&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalOffHeapSize());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-objects&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalDiskSize());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;mean-get-time&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheGetOperation().latency().average().value());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;mean-search-time&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheSearchOperation().latency().average().value());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;eviction-count&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheEvictionOperation().count().value());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;searches-per-second&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheSearchOperation().rate().value());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;writer-queue-size&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getWriterQueueLength());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return new InstrumentedEhcache(registry, cache);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final Timer getTimer, putTimer;
    +&nbsp;
    +&nbsp;    private InstrumentedEhcache(MetricRegistry registry, Ehcache cache) {
    +<b class="fc">&nbsp;        super(cache);</b>
    +<b class="fc">&nbsp;        this.getTimer = registry.timer(name(cache.getClass(), cache.getName(), &quot;gets&quot;));</b>
    +<b class="fc">&nbsp;        this.putTimer = registry.timer(name(cache.getClass(), cache.getName(), &quot;puts&quot;));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Element get(Object key) throws IllegalStateException, CacheException {
    +<b class="nc">&nbsp;        final Timer.Context ctx = getTimer.time();</b>
    +&nbsp;        try {
    +<b class="nc">&nbsp;            return underlyingCache.get(key);</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            ctx.stop();</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Element get(Serializable key) throws IllegalStateException, CacheException {
    +<b class="fc">&nbsp;        final Timer.Context ctx = getTimer.time();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return underlyingCache.get(key);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            ctx.stop();</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void put(Element element) throws IllegalArgumentException, IllegalStateException, CacheException {
    +<b class="fc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            underlyingCache.put(element);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            ctx.stop();</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void put(Element element, boolean doNotNotifyCacheReplicators) throws IllegalArgumentException, IllegalStateException, CacheException {
    +<b class="nc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    +&nbsp;        try {
    +<b class="nc">&nbsp;            underlyingCache.put(element, doNotNotifyCacheReplicators);</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            ctx.stop();</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Element putIfAbsent(Element element) throws NullPointerException {
    +<b class="nc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    +&nbsp;        try {
    +<b class="nc">&nbsp;            return underlyingCache.putIfAbsent(element);</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            ctx.stop();</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index.html
    new file mode 100644
    index 0000000000..3a79e3ac18
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..9079b3cb42
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..2de8b4bedc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..ae403edacb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..b174958252
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..580172b39e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..371861bc9d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..bc2f6dce53
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..0dc07d6d19
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..91cbc6d656
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-1.html
    new file mode 100644
    index 0000000000..d843bebbd8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-1.html
    @@ -0,0 +1,305 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Graphite</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Graphite (com.codahale.metrics.graphite)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import javax.net.SocketFactory;
    +&nbsp;import java.io.BufferedWriter;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStreamWriter;
    +&nbsp;import java.io.Writer;
    +&nbsp;import java.net.InetSocketAddress;
    +&nbsp;import java.net.Socket;
    +&nbsp;import java.net.UnknownHostException;
    +&nbsp;import java.nio.charset.Charset;
    +&nbsp;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A client to a Carbon server via TCP.
    +&nbsp; */
    +&nbsp;public class Graphite implements GraphiteSender {
    +&nbsp;    // this may be optimistic about Carbon/Graphite
    +&nbsp;
    +&nbsp;    private final String hostname;
    +&nbsp;    private final int port;
    +&nbsp;    private final InetSocketAddress address;
    +&nbsp;    private final SocketFactory socketFactory;
    +&nbsp;    private final Charset charset;
    +&nbsp;
    +&nbsp;    private Socket socket;
    +&nbsp;    private Writer writer;
    +&nbsp;    private int failures;
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(Graphite.class);</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address using the default
    +&nbsp;     * {@link SocketFactory}.
    +&nbsp;     *
    +&nbsp;     * @param hostname The hostname of the Carbon server
    +&nbsp;     * @param port     The port of the Carbon server
    +&nbsp;     */
    +&nbsp;    public Graphite(String hostname, int port) {
    +<b class="nc">&nbsp;        this(hostname, port, SocketFactory.getDefault());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory.
    +&nbsp;     *
    +&nbsp;     * @param hostname      The hostname of the Carbon server
    +&nbsp;     * @param port          The port of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     */
    +&nbsp;    public Graphite(String hostname, int port, SocketFactory socketFactory) {
    +<b class="fc">&nbsp;        this(hostname, port, socketFactory, UTF_8);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory using the given
    +&nbsp;     * character set.
    +&nbsp;     *
    +&nbsp;     * @param hostname      The hostname of the Carbon server
    +&nbsp;     * @param port          The port of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     * @param charset       the character set used by the server
    +&nbsp;     */
    +<b class="fc">&nbsp;    public Graphite(String hostname, int port, SocketFactory socketFactory, Charset charset) {</b>
    +<b class="fc">&nbsp;        if (hostname == null || hostname.isEmpty()) {</b>
    +<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;hostname must not be null or empty&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (port &lt; 0 || port &gt; 65535) {</b>
    +<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;port must be a valid IP port (0-65535)&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        this.hostname = hostname;</b>
    +<b class="fc">&nbsp;        this.port = port;</b>
    +<b class="fc">&nbsp;        this.address = null;</b>
    +<b class="fc">&nbsp;        this.socketFactory = requireNonNull(socketFactory, &quot;socketFactory must not be null&quot;);</b>
    +<b class="fc">&nbsp;        this.charset = requireNonNull(charset, &quot;charset must not be null&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address using the default
    +&nbsp;     * {@link SocketFactory}.
    +&nbsp;     *
    +&nbsp;     * @param address the address of the Carbon server
    +&nbsp;     */
    +&nbsp;    public Graphite(InetSocketAddress address) {
    +<b class="nc">&nbsp;        this(address, SocketFactory.getDefault());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory.
    +&nbsp;     *
    +&nbsp;     * @param address       the address of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     */
    +&nbsp;    public Graphite(InetSocketAddress address, SocketFactory socketFactory) {
    +<b class="fc">&nbsp;        this(address, socketFactory, UTF_8);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory using the given
    +&nbsp;     * character set.
    +&nbsp;     *
    +&nbsp;     * @param address       the address of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     * @param charset       the character set used by the server
    +&nbsp;     */
    +<b class="fc">&nbsp;    public Graphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset) {</b>
    +<b class="fc">&nbsp;        this.hostname = null;</b>
    +<b class="fc">&nbsp;        this.port = -1;</b>
    +<b class="fc">&nbsp;        this.address = requireNonNull(address, &quot;address must not be null&quot;);</b>
    +<b class="fc">&nbsp;        this.socketFactory = requireNonNull(socketFactory, &quot;socketFactory must not be null&quot;);</b>
    +<b class="fc">&nbsp;        this.charset = requireNonNull(charset, &quot;charset must not be null&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void connect() throws IllegalStateException, IOException {
    +<b class="fc">&nbsp;        if (isConnected()) {</b>
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        InetSocketAddress address = this.address;</b>
    +&nbsp;        // the previous dns retry logic did not work, as address.getAddress would always return the cached value
    +&nbsp;        // this version of the simplified logic will always cause a dns request if hostname has been supplied.
    +&nbsp;        // InetAddress.getByName forces the dns lookup
    +&nbsp;        // if an InetSocketAddress was supplied at create time that will take precedence.
    +<b class="fc">&nbsp;        if (address == null || address.getHostName() == null &amp;&amp; hostname != null) {</b>
    +<b class="fc">&nbsp;            address = new InetSocketAddress(hostname, port);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (address.getAddress() == null) {</b>
    +<b class="fc">&nbsp;            throw new UnknownHostException(address.getHostName());</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="nc">&nbsp;        this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());</b>
    +<b class="nc">&nbsp;        this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public boolean isConnected() {
    +<b class="fc">&nbsp;        return socket != null &amp;&amp; socket.isConnected() &amp;&amp; !socket.isClosed();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    +&nbsp;        try {
    +<b class="nc">&nbsp;            writer.write(sanitize(name));</b>
    +<b class="nc">&nbsp;            writer.write(&#39; &#39;);</b>
    +<b class="nc">&nbsp;            writer.write(sanitize(value));</b>
    +<b class="nc">&nbsp;            writer.write(&#39; &#39;);</b>
    +<b class="nc">&nbsp;            writer.write(Long.toString(timestamp));</b>
    +<b class="nc">&nbsp;            writer.write(&#39;\n&#39;);</b>
    +<b class="nc">&nbsp;            this.failures = 0;</b>
    +<b class="nc">&nbsp;        } catch (IOException e) {</b>
    +<b class="nc">&nbsp;            failures++;</b>
    +<b class="nc">&nbsp;            throw e;</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int getFailures() {
    +<b class="fc">&nbsp;        return failures;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void flush() throws IOException {
    +<b class="nc">&nbsp;        if (writer != null) {</b>
    +<b class="nc">&nbsp;            writer.flush();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void close() throws IOException {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            if (writer != null) {</b>
    +<b class="nc">&nbsp;                writer.close();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    +<b class="nc">&nbsp;            LOGGER.debug(&quot;Error closing writer&quot;, ex);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            this.writer = null;</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            if (socket != null) {</b>
    +<b class="nc">&nbsp;                socket.close();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    +<b class="nc">&nbsp;            LOGGER.debug(&quot;Error closing socket&quot;, ex);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            this.socket = null;</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String sanitize(String s) {
    +<b class="nc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-2.html
    new file mode 100644
    index 0000000000..4279744a75
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-2.html
    @@ -0,0 +1,293 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > GraphiteRabbitMQ</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: GraphiteRabbitMQ (com.codahale.metrics.graphite)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">GraphiteRabbitMQ</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.7%
    +  </span>
    +  <span class="absValue">
    +    (8/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.2%
    +  </span>
    +  <span class="absValue">
    +    (24/38)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">GraphiteRabbitMQ$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import com.rabbitmq.client.Channel;
    +&nbsp;import com.rabbitmq.client.Connection;
    +&nbsp;import com.rabbitmq.client.ConnectionFactory;
    +&nbsp;import com.rabbitmq.client.DefaultSocketConfigurator;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.net.Socket;
    +&nbsp;import java.util.concurrent.TimeoutException;
    +&nbsp;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A rabbit-mq client to a Carbon server.
    +&nbsp; */
    +&nbsp;public class GraphiteRabbitMQ implements GraphiteSender {
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS = 500;</b>
    +<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_SOCKET_TIMEOUT_MS = 5000;</b>
    +<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC = 10;</b>
    +&nbsp;
    +&nbsp;    private ConnectionFactory connectionFactory;
    +&nbsp;    private Connection connection;
    +&nbsp;    private Channel channel;
    +&nbsp;    private String exchange;
    +&nbsp;
    +&nbsp;    private int failures;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client with a given a {@link com.rabbitmq.client.ConnectionFactory} and an amqp exchange
    +&nbsp;     *
    +&nbsp;     * @param connectionFactory the {@link com.rabbitmq.client.ConnectionFactory} used to establish connection and publish to graphite server
    +&nbsp;     * @param exchange          the amqp exchange
    +&nbsp;     */
    +<b class="fc">&nbsp;    public GraphiteRabbitMQ(final ConnectionFactory connectionFactory, final String exchange) {</b>
    +<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    +<b class="fc">&nbsp;        this.exchange = exchange;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client given connection details
    +&nbsp;     *
    +&nbsp;     * @param rabbitHost     the rabbitmq server host
    +&nbsp;     * @param rabbitPort     the rabbitmq server port
    +&nbsp;     * @param rabbitUsername the rabbitmq server username
    +&nbsp;     * @param rabbitPassword the rabbitmq server password
    +&nbsp;     * @param exchange       the amqp exchange
    +&nbsp;     */
    +&nbsp;    public GraphiteRabbitMQ(
    +&nbsp;            final String rabbitHost,
    +&nbsp;            final Integer rabbitPort,
    +&nbsp;            final String rabbitUsername,
    +&nbsp;            final String rabbitPassword,
    +&nbsp;            final String exchange) {
    +&nbsp;
    +<b class="nc">&nbsp;        this(rabbitHost,</b>
    +&nbsp;                rabbitPort,
    +&nbsp;                rabbitUsername,
    +&nbsp;                rabbitPassword,
    +&nbsp;                exchange,
    +&nbsp;                DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS,
    +&nbsp;                DEFAULT_RABBIT_SOCKET_TIMEOUT_MS,
    +&nbsp;                DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC);
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client given connection details
    +&nbsp;     *
    +&nbsp;     * @param rabbitHost                        the rabbitmq server host
    +&nbsp;     * @param rabbitPort                        the rabbitmq server port
    +&nbsp;     * @param rabbitUsername                    the rabbitmq server username
    +&nbsp;     * @param rabbitPassword                    the rabbitmq server password
    +&nbsp;     * @param exchange                          the amqp exchange
    +&nbsp;     * @param rabbitConnectionTimeoutMS         the connection timeout in milliseconds
    +&nbsp;     * @param rabbitSocketTimeoutMS             the socket timeout in milliseconds
    +&nbsp;     * @param rabbitRequestedHeartbeatInSeconds the hearthbeat in seconds
    +&nbsp;     */
    +&nbsp;    public GraphiteRabbitMQ(
    +&nbsp;            final String rabbitHost,
    +&nbsp;            final Integer rabbitPort,
    +&nbsp;            final String rabbitUsername,
    +&nbsp;            final String rabbitPassword,
    +&nbsp;            final String exchange,
    +&nbsp;            final Integer rabbitConnectionTimeoutMS,
    +&nbsp;            final Integer rabbitSocketTimeoutMS,
    +<b class="nc">&nbsp;            final Integer rabbitRequestedHeartbeatInSeconds) {</b>
    +&nbsp;
    +<b class="nc">&nbsp;        this.exchange = exchange;</b>
    +&nbsp;
    +<b class="nc">&nbsp;        this.connectionFactory = new ConnectionFactory();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        connectionFactory.setSocketConfigurator(new DefaultSocketConfigurator() {</b>
    +&nbsp;            @Override
    +&nbsp;            public void configure(Socket socket) throws IOException {
    +<b class="nc">&nbsp;                super.configure(socket);</b>
    +<b class="nc">&nbsp;                socket.setSoTimeout(rabbitSocketTimeoutMS);</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="nc">&nbsp;        connectionFactory.setConnectionTimeout(rabbitConnectionTimeoutMS);</b>
    +<b class="nc">&nbsp;        connectionFactory.setRequestedHeartbeat(rabbitRequestedHeartbeatInSeconds);</b>
    +<b class="nc">&nbsp;        connectionFactory.setHost(rabbitHost);</b>
    +<b class="nc">&nbsp;        connectionFactory.setPort(rabbitPort);</b>
    +<b class="nc">&nbsp;        connectionFactory.setUsername(rabbitUsername);</b>
    +<b class="nc">&nbsp;        connectionFactory.setPassword(rabbitPassword);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void connect() throws IllegalStateException, IOException {
    +<b class="fc">&nbsp;        if (isConnected()) {</b>
    +<b class="fc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            connection = connectionFactory.newConnection();</b>
    +<b class="nc">&nbsp;        } catch (TimeoutException e) {</b>
    +<b class="nc">&nbsp;            throw new IllegalStateException(e);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        channel = connection.createChannel();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public boolean isConnected() {
    +<b class="fc">&nbsp;        return connection != null &amp;&amp; connection.isOpen();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            final String sanitizedName = sanitize(name);</b>
    +<b class="fc">&nbsp;            final String sanitizedValue = sanitize(value);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final String message = sanitizedName + &#39; &#39; + sanitizedValue + &#39; &#39; + Long.toString(timestamp) + &#39;\n&#39;;</b>
    +<b class="fc">&nbsp;            channel.basicPublish(exchange, sanitizedName, null, message.getBytes(UTF_8));</b>
    +<b class="fc">&nbsp;        } catch (IOException e) {</b>
    +<b class="fc">&nbsp;            failures++;</b>
    +<b class="fc">&nbsp;            throw e;</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void flush() throws IOException {
    +&nbsp;        // Nothing to do
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void close() throws IOException {
    +<b class="fc">&nbsp;        if (connection != null) {</b>
    +<b class="fc">&nbsp;            connection.close();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int getFailures() {
    +<b class="fc">&nbsp;        return failures;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String sanitize(String s) {
    +<b class="fc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-3.html
    new file mode 100644
    index 0000000000..b6073f0586
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-3.html
    @@ -0,0 +1,655 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > GraphiteReporter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: GraphiteReporter (com.codahale.metrics.graphite)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">GraphiteReporter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.5%
    +  </span>
    +  <span class="absValue">
    +    (95/105)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">GraphiteReporter$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">GraphiteReporter$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (12/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (31/35)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Histogram;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.Metered;
    +&nbsp;import com.codahale.metrics.MetricAttribute;
    +&nbsp;import com.codahale.metrics.MetricFilter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.ScheduledReporter;
    +&nbsp;import com.codahale.metrics.Snapshot;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.function.DoubleFunction;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A reporter which publishes metric values to a Graphite server.
    +&nbsp; *
    +&nbsp; * @see &lt;a href=&quot;http://graphite.wikidot.com/&quot;&gt;Graphite - Scalable Realtime Graphing&lt;/a&gt;
    +&nbsp; */
    +<b class="fc">&nbsp;public class GraphiteReporter extends ScheduledReporter {</b>
    +&nbsp;    /**
    +&nbsp;     * Returns a new {@link Builder} for {@link GraphiteReporter}.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry to report
    +&nbsp;     * @return a {@link Builder} instance for a {@link GraphiteReporter}
    +&nbsp;     */
    +&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    +<b class="fc">&nbsp;        return new Builder(registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A builder for {@link GraphiteReporter} instances. Defaults to not using a prefix, using the
    +&nbsp;     * default clock, converting rates to events/second, converting durations to milliseconds, and
    +&nbsp;     * not filtering metrics.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class Builder {</b>
    +&nbsp;        private final MetricRegistry registry;
    +&nbsp;        private Clock clock;
    +&nbsp;        private String prefix;
    +&nbsp;        private TimeUnit rateUnit;
    +&nbsp;        private TimeUnit durationUnit;
    +&nbsp;        private MetricFilter filter;
    +&nbsp;        private ScheduledExecutorService executor;
    +&nbsp;        private boolean shutdownExecutorOnStop;
    +&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    +&nbsp;        private boolean addMetricAttributesAsTags;
    +&nbsp;        private DoubleFunction&lt;String&gt; floatingPointFormatter;
    +&nbsp;
    +<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;            this.registry = registry;</b>
    +<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    +<b class="fc">&nbsp;            this.prefix = null;</b>
    +<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    +<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    +<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    +<b class="fc">&nbsp;            this.executor = null;</b>
    +<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    +<b class="fc">&nbsp;            this.disabledMetricAttributes = Collections.emptySet();</b>
    +<b class="fc">&nbsp;            this.addMetricAttributesAsTags = false;</b>
    +<b class="fc">&nbsp;            this.floatingPointFormatter = DEFAULT_FP_FORMATTER;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    +&nbsp;         * Default value is true.
    +&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    +&nbsp;         *
    +&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    +<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    +&nbsp;         * Default value is null.
    +&nbsp;         * Null value leads to executor will be auto created on start.
    +&nbsp;         *
    +&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    +<b class="nc">&nbsp;            this.executor = executor;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use the given {@link Clock} instance for the time.
    +&nbsp;         *
    +&nbsp;         * @param clock a {@link Clock} instance
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder withClock(Clock clock) {
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Prefix all metric names with the given string.
    +&nbsp;         *
    +&nbsp;         * @param prefix the prefix for all metric names
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder prefixedWith(String prefix) {
    +<b class="fc">&nbsp;            this.prefix = prefix;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert rates to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param rateUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    +<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert durations to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param durationUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    +<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Only report metrics which match the given filter.
    +&nbsp;         *
    +&nbsp;         * @param filter a {@link MetricFilter}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder filter(MetricFilter filter) {
    +<b class="fc">&nbsp;            this.filter = filter;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    +&nbsp;         * See {@link MetricAttribute}.
    +&nbsp;         *
    +&nbsp;         * @param disabledMetricAttributes a set of {@link MetricAttribute}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    +<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies whether or not metric attributes (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;) should be reported in the traditional dot delimited format or in the tag based format.
    +&nbsp;         * Without tags (default): `my.metric.p99`
    +&nbsp;         * With tags: `my.metric;metricattribute=p99`
    +&nbsp;         *
    +&nbsp;         * Note that this setting only modifies the metric attribute, and will not convert any other portion of the metric name to use tags.
    +&nbsp;         * For mor information on Graphite tag support see https://graphite.readthedocs.io/en/latest/tags.html
    +&nbsp;         * See {@link MetricAttribute}.
    +&nbsp;         *
    +&nbsp;         * @param addMetricAttributesAsTags if true, then metric attributes will be added as tags
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder addMetricAttributesAsTags(boolean addMetricAttributesAsTags) {
    +<b class="fc">&nbsp;            this.addMetricAttributesAsTags = addMetricAttributesAsTags;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use custom floating point formatter.
    +&nbsp;         *
    +&nbsp;         * @param floatingPointFormatter a custom formatter for floating point values
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder withFloatingPointFormatter(DoubleFunction&lt;String&gt; floatingPointFormatter) {
    +<b class="fc">&nbsp;            this.floatingPointFormatter = floatingPointFormatter;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
    +&nbsp;         * given {@link GraphiteSender}.
    +&nbsp;         * &lt;p&gt;
    +&nbsp;         * Present for binary compatibility
    +&nbsp;         *
    +&nbsp;         * @param graphite a {@link Graphite}
    +&nbsp;         * @return a {@link GraphiteReporter}
    +&nbsp;         */
    +&nbsp;        public GraphiteReporter build(Graphite graphite) {
    +<b class="fc">&nbsp;            return build((GraphiteSender) graphite);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
    +&nbsp;         * given {@link GraphiteSender}.
    +&nbsp;         *
    +&nbsp;         * @param graphite a {@link GraphiteSender}
    +&nbsp;         * @return a {@link GraphiteReporter}
    +&nbsp;         */
    +&nbsp;        public GraphiteReporter build(GraphiteSender graphite) {
    +<b class="fc">&nbsp;            return new GraphiteReporter(registry,</b>
    +&nbsp;                    graphite,
    +&nbsp;                    clock,
    +&nbsp;                    prefix,
    +&nbsp;                    rateUnit,
    +&nbsp;                    durationUnit,
    +&nbsp;                    filter,
    +&nbsp;                    executor,
    +&nbsp;                    shutdownExecutorOnStop,
    +&nbsp;                    disabledMetricAttributes,
    +&nbsp;                    addMetricAttributesAsTags,
    +&nbsp;                    floatingPointFormatter);
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(GraphiteReporter.class);</b>
    +&nbsp;    // the Carbon plaintext format is pretty underspecified, but it seems like it just wants US-formatted digits
    +<b class="fc">&nbsp;    private static final DoubleFunction&lt;String&gt; DEFAULT_FP_FORMATTER = fp -&gt; String.format(Locale.US, &quot;%2.2f&quot;, fp);</b>
    +&nbsp;
    +&nbsp;    private final GraphiteSender graphite;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final String prefix;
    +&nbsp;    private final boolean addMetricAttributesAsTags;
    +&nbsp;    private final DoubleFunction&lt;String&gt; floatingPointFormatter;
    +&nbsp;  
    +&nbsp;  
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    +&nbsp;     *
    +&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    +&nbsp;     *                                  reporter will report
    +&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    +&nbsp;     *                                  via a transport protocol
    +&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    +&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    +&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    +&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    +&nbsp;     * @param filter                    the filter for which metrics to report
    +&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    +&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    +&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    +&nbsp;     */
    +&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    +&nbsp;                               GraphiteSender graphite,
    +&nbsp;                               Clock clock,
    +&nbsp;                               String prefix,
    +&nbsp;                               TimeUnit rateUnit,
    +&nbsp;                               TimeUnit durationUnit,
    +&nbsp;                               MetricFilter filter,
    +&nbsp;                               ScheduledExecutorService executor,
    +&nbsp;                               boolean shutdownExecutorOnStop,
    +&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    +<b class="nc">&nbsp;        this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,</b>
    +&nbsp;                disabledMetricAttributes, false);
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    +&nbsp;     *
    +&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    +&nbsp;     *                                  reporter will report
    +&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    +&nbsp;     *                                  via a transport protocol
    +&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    +&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    +&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    +&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    +&nbsp;     * @param filter                    the filter for which metrics to report
    +&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    +&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    +&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    +&nbsp;     * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
    +&nbsp;     */
    +&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    +&nbsp;                               GraphiteSender graphite,
    +&nbsp;                               Clock clock,
    +&nbsp;                               String prefix,
    +&nbsp;                               TimeUnit rateUnit,
    +&nbsp;                               TimeUnit durationUnit,
    +&nbsp;                               MetricFilter filter,
    +&nbsp;                               ScheduledExecutorService executor,
    +&nbsp;                               boolean shutdownExecutorOnStop,
    +&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    +&nbsp;                               boolean addMetricAttributesAsTags) {
    +<b class="fc">&nbsp;        this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,</b>
    +&nbsp;                disabledMetricAttributes, addMetricAttributesAsTags, DEFAULT_FP_FORMATTER);
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    +&nbsp;     *
    +&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    +&nbsp;     *                                  reporter will report
    +&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    +&nbsp;     *                                  via a transport protocol
    +&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    +&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    +&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    +&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    +&nbsp;     * @param filter                    the filter for which metrics to report
    +&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    +&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    +&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    +&nbsp;     * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
    +&nbsp;     * @param floatingPointFormatter    custom floating point formatter
    +&nbsp;     */
    +&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    +&nbsp;                               GraphiteSender graphite,
    +&nbsp;                               Clock clock,
    +&nbsp;                               String prefix,
    +&nbsp;                               TimeUnit rateUnit,
    +&nbsp;                               TimeUnit durationUnit,
    +&nbsp;                               MetricFilter filter,
    +&nbsp;                               ScheduledExecutorService executor,
    +&nbsp;                               boolean shutdownExecutorOnStop,
    +&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    +&nbsp;                               boolean addMetricAttributesAsTags,
    +&nbsp;                               DoubleFunction&lt;String&gt; floatingPointFormatter) {
    +<b class="fc">&nbsp;        super(registry, &quot;graphite-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    +&nbsp;                disabledMetricAttributes);
    +<b class="fc">&nbsp;        this.graphite = graphite;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +<b class="fc">&nbsp;        this.addMetricAttributesAsTags = addMetricAttributesAsTags;</b>
    +<b class="fc">&nbsp;        this.floatingPointFormatter = floatingPointFormatter;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    +&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    +&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    +&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    +&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    +<b class="fc">&nbsp;        final long timestamp = clock.getTime() / 1000;</b>
    +&nbsp;
    +&nbsp;        // oh it&#39;d be lovely to use Java 7 here
    +&nbsp;        try {
    +<b class="fc">&nbsp;            graphite.connect();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    +<b class="fc">&nbsp;                reportGauge(entry.getKey(), entry.getValue(), timestamp);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    +<b class="fc">&nbsp;                reportCounter(entry.getKey(), entry.getValue(), timestamp);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    +<b class="fc">&nbsp;                reportHistogram(entry.getKey(), entry.getValue(), timestamp);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    +<b class="fc">&nbsp;                reportMetered(entry.getKey(), entry.getValue(), timestamp);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    +<b class="fc">&nbsp;                reportTimer(entry.getKey(), entry.getValue(), timestamp);</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            graphite.flush();</b>
    +<b class="fc">&nbsp;        } catch (IOException e) {</b>
    +<b class="fc">&nbsp;            LOGGER.warn(&quot;Unable to report to Graphite&quot;, graphite, e);</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            try {</b>
    +<b class="fc">&nbsp;                graphite.close();</b>
    +<b class="nc">&nbsp;            } catch (IOException e1) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Error closing Graphite&quot;, graphite, e1);</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void stop() {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            super.stop();</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            try {</b>
    +<b class="fc">&nbsp;                graphite.close();</b>
    +<b class="nc">&nbsp;            } catch (IOException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.debug(&quot;Error disconnecting from Graphite&quot;, graphite, e);</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportTimer(String name, Timer timer, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MAX, name, convertDuration(snapshot.getMax()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MEAN, name, convertDuration(snapshot.getMean()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MIN, name, convertDuration(snapshot.getMin()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(STDDEV, name, convertDuration(snapshot.getStdDev()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P50, name, convertDuration(snapshot.getMedian()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P75, name, convertDuration(snapshot.get75thPercentile()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P95, name, convertDuration(snapshot.get95thPercentile()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P98, name, convertDuration(snapshot.get98thPercentile()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P99, name, convertDuration(snapshot.get99thPercentile()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P999, name, convertDuration(snapshot.get999thPercentile()), timestamp);</b>
    +<b class="fc">&nbsp;        reportMetered(name, timer, timestamp);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportMetered(String name, Metered meter, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        sendIfEnabled(COUNT, name, meter.getCount(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(M1_RATE, name, convertRate(meter.getOneMinuteRate()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(M5_RATE, name, convertRate(meter.getFiveMinuteRate()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(M15_RATE, name, convertRate(meter.getFifteenMinuteRate()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MEAN_RATE, name, convertRate(meter.getMeanRate()), timestamp);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportHistogram(String name, Histogram histogram, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    +<b class="fc">&nbsp;        sendIfEnabled(COUNT, name, histogram.getCount(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MAX, name, snapshot.getMax(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MEAN, name, snapshot.getMean(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MIN, name, snapshot.getMin(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(STDDEV, name, snapshot.getStdDev(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P50, name, snapshot.getMedian(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P75, name, snapshot.get75thPercentile(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P95, name, snapshot.get95thPercentile(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P98, name, snapshot.get98thPercentile(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P99, name, snapshot.get99thPercentile(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P999, name, snapshot.get999thPercentile(), timestamp);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void sendIfEnabled(MetricAttribute type, String name, double value, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void sendIfEnabled(MetricAttribute type, String name, long value, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportCounter(String name, Counter counter, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, COUNT.getCode())), format(counter.getCount()), timestamp);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportGauge(String name, Gauge&lt;?&gt; gauge, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        final String value = format(gauge.getValue());</b>
    +<b class="fc">&nbsp;        if (value != null) {</b>
    +<b class="fc">&nbsp;            graphite.send(prefix(name), value, timestamp);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String format(Object o) {
    +<b class="fc">&nbsp;        if (o instanceof Float) {</b>
    +<b class="fc">&nbsp;            return format(((Float) o).doubleValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Double) {</b>
    +<b class="fc">&nbsp;            return format(((Double) o).doubleValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Byte) {</b>
    +<b class="fc">&nbsp;            return format(((Byte) o).longValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Short) {</b>
    +<b class="fc">&nbsp;            return format(((Short) o).longValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Integer) {</b>
    +<b class="fc">&nbsp;            return format(((Integer) o).longValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Long) {</b>
    +<b class="fc">&nbsp;            return format(((Long) o).longValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Number) {</b>
    +<b class="nc">&nbsp;            return format(((Number) o).doubleValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Boolean) {</b>
    +<b class="fc">&nbsp;            return format(((Boolean) o) ? 1 : 0);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return null;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String prefix(String name) {
    +<b class="fc">&nbsp;        return MetricRegistry.name(prefix, name);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String appendMetricAttribute(String name, String metricAttribute){
    +<b class="fc">&nbsp;        if (addMetricAttributesAsTags){</b>
    +<b class="fc">&nbsp;            return name + &quot;;metricattribute=&quot; + metricAttribute;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return name + &quot;.&quot; + metricAttribute;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String format(long n) {
    +<b class="fc">&nbsp;        return Long.toString(n);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String format(double v) {
    +<b class="fc">&nbsp;        return floatingPointFormatter.apply(v);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-4.html
    new file mode 100644
    index 0000000000..bbaf98d97c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-4.html
    @@ -0,0 +1,120 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > GraphiteSanitize</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: GraphiteSanitize (com.codahale.metrics.graphite)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">GraphiteSanitize</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import java.util.regex.Pattern;
    +&nbsp;
    +<b class="nc">&nbsp;class GraphiteSanitize {</b>
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    +&nbsp;    private static final String DASH = &quot;-&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Trims the string and replaces all whitespace characters with the provided symbol
    +&nbsp;     */
    +&nbsp;    static String sanitize(String string) {
    +<b class="fc">&nbsp;        return WHITESPACE.matcher(string.trim()).replaceAll(DASH);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-5.html
    new file mode 100644
    index 0000000000..6298572cd2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-5.html
    @@ -0,0 +1,222 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > GraphiteUDP</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: GraphiteUDP (com.codahale.metrics.graphite)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">GraphiteUDP</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.net.InetSocketAddress;
    +&nbsp;import java.net.InetAddress;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.nio.channels.DatagramChannel;
    +&nbsp;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A client to a Carbon server using unconnected UDP
    +&nbsp; */
    +&nbsp;public class GraphiteUDP implements GraphiteSender {
    +&nbsp;
    +&nbsp;    private final String hostname;
    +&nbsp;    private final int port;
    +&nbsp;    private InetSocketAddress address;
    +&nbsp;
    +<b class="fc">&nbsp;    private DatagramChannel datagramChannel = null;</b>
    +&nbsp;    private int failures;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which sends data to given address using UDP
    +&nbsp;     *
    +&nbsp;     * @param hostname The hostname of the Carbon server
    +&nbsp;     * @param port     The port of the Carbon server
    +&nbsp;     */
    +<b class="fc">&nbsp;    public GraphiteUDP(String hostname, int port) {</b>
    +<b class="fc">&nbsp;        this.hostname = hostname;</b>
    +<b class="fc">&nbsp;        this.port = port;</b>
    +<b class="fc">&nbsp;        this.address = null;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which sends data to given address using UDP
    +&nbsp;     *
    +&nbsp;     * @param address the address of the Carbon server
    +&nbsp;     */
    +<b class="nc">&nbsp;    public GraphiteUDP(InetSocketAddress address) {</b>
    +<b class="nc">&nbsp;        this.hostname = null;</b>
    +<b class="nc">&nbsp;        this.port = -1;</b>
    +<b class="nc">&nbsp;        this.address = address;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void connect() throws IllegalStateException, IOException {
    +<b class="fc">&nbsp;        if (isConnected()) {</b>
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        // Resolve hostname
    +<b class="fc">&nbsp;        if (hostname != null) {</b>
    +<b class="fc">&nbsp;            address = new InetSocketAddress(InetAddress.getByName(hostname), port);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="nc">&nbsp;        datagramChannel = DatagramChannel.open();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public boolean isConnected() {
    +<b class="fc">&nbsp;        return datagramChannel != null &amp;&amp; !datagramChannel.socket().isClosed();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            String str = sanitize(name) + &#39; &#39; + sanitize(value) + &#39; &#39; + Long.toString(timestamp) + &#39;\n&#39;;</b>
    +<b class="fc">&nbsp;            ByteBuffer byteBuffer = ByteBuffer.wrap(str.getBytes(UTF_8));</b>
    +<b class="fc">&nbsp;            datagramChannel.send(byteBuffer, address);</b>
    +<b class="fc">&nbsp;            this.failures = 0;</b>
    +<b class="nc">&nbsp;        } catch (IOException e) {</b>
    +<b class="nc">&nbsp;            failures++;</b>
    +<b class="nc">&nbsp;            throw e;</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int getFailures() {
    +<b class="nc">&nbsp;        return failures;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void flush() throws IOException {
    +&nbsp;        // Nothing to do
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void close() throws IOException {
    +<b class="nc">&nbsp;        if (datagramChannel != null) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                datagramChannel.close();</b>
    +&nbsp;            } finally {
    +<b class="nc">&nbsp;                datagramChannel = null;</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String sanitize(String s) {
    +<b class="fc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    DatagramChannel getDatagramChannel() {
    +<b class="nc">&nbsp;        return datagramChannel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    void setDatagramChannel(DatagramChannel datagramChannel) {
    +<b class="fc">&nbsp;        this.datagramChannel = datagramChannel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    InetSocketAddress getAddress() {
    +<b class="nc">&nbsp;        return address;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    void setAddress(InetSocketAddress address) {
    +<b class="fc">&nbsp;        this.address = address;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-6.html
    new file mode 100644
    index 0000000000..c794350dc8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-6.html
    @@ -0,0 +1,467 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > PickledGraphite</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: PickledGraphite (com.codahale.metrics.graphite)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">PickledGraphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    22.2%
    +  </span>
    +  <span class="absValue">
    +    (4/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.5%
    +  </span>
    +  <span class="absValue">
    +    (15/91)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">PickledGraphite$MetricTuple</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import javax.net.SocketFactory;
    +&nbsp;
    +&nbsp;import java.io.BufferedWriter;
    +&nbsp;import java.io.ByteArrayOutputStream;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.io.OutputStreamWriter;
    +&nbsp;import java.io.Writer;
    +&nbsp;import java.net.InetSocketAddress;
    +&nbsp;import java.net.Socket;
    +&nbsp;import java.net.UnknownHostException;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.nio.charset.Charset;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.List;
    +&nbsp;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A client to a Carbon server that sends all metrics after they have been pickled in configurable sized batches
    +&nbsp; */
    +&nbsp;public class PickledGraphite implements GraphiteSender {
    +&nbsp;
    +&nbsp;    static class MetricTuple {
    +&nbsp;        String name;
    +&nbsp;        long timestamp;
    +&nbsp;        String value;
    +&nbsp;
    +<b class="nc">&nbsp;        MetricTuple(String name, long timestamp, String value) {</b>
    +<b class="nc">&nbsp;            this.name = name;</b>
    +<b class="nc">&nbsp;            this.timestamp = timestamp;</b>
    +<b class="nc">&nbsp;            this.value = value;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Minimally necessary pickle opcodes.
    +&nbsp;     */
    +&nbsp;    private static final char
    +&nbsp;            MARK = &#39;(&#39;,
    +&nbsp;            STOP = &#39;.&#39;,
    +&nbsp;            LONG = &#39;L&#39;,
    +&nbsp;            STRING = &#39;S&#39;,
    +&nbsp;            APPEND = &#39;a&#39;,
    +&nbsp;            LIST = &#39;l&#39;,
    +&nbsp;            TUPLE = &#39;t&#39;,
    +&nbsp;            QUOTE = &#39;\&#39;&#39;,
    +&nbsp;            LF = &#39;\n&#39;;
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(PickledGraphite.class);</b>
    +&nbsp;    private final static int DEFAULT_BATCH_SIZE = 100;
    +&nbsp;
    +&nbsp;    private int batchSize;
    +&nbsp;    // graphite expects a python-pickled list of nested tuples.
    +<b class="fc">&nbsp;    private List&lt;MetricTuple&gt; metrics = new ArrayList&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    private final String hostname;
    +&nbsp;    private final int port;
    +&nbsp;    private final InetSocketAddress address;
    +&nbsp;    private final SocketFactory socketFactory;
    +&nbsp;    private final Charset charset;
    +&nbsp;
    +&nbsp;    private Socket socket;
    +&nbsp;    private Writer writer;
    +&nbsp;    private int failures;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
    +&nbsp;     * to a batchSize of 100
    +&nbsp;     *
    +&nbsp;     * @param address the address of the Carbon server
    +&nbsp;     */
    +&nbsp;    public PickledGraphite(InetSocketAddress address) {
    +<b class="nc">&nbsp;        this(address, DEFAULT_BATCH_SIZE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}.
    +&nbsp;     *
    +&nbsp;     * @param address   the address of the Carbon server
    +&nbsp;     * @param batchSize how many metrics are bundled into a single pickle request to graphite
    +&nbsp;     */
    +&nbsp;    public PickledGraphite(InetSocketAddress address, int batchSize) {
    +<b class="nc">&nbsp;        this(address, SocketFactory.getDefault(), batchSize);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory.
    +&nbsp;     *
    +&nbsp;     * @param address       the address of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    +&nbsp;     */
    +&nbsp;    public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, int batchSize) {
    +<b class="nc">&nbsp;        this(address, socketFactory, UTF_8, batchSize);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory using the given character set.
    +&nbsp;     *
    +&nbsp;     * @param address       the address of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     * @param charset       the character set used by the server
    +&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    +&nbsp;     */
    +<b class="fc">&nbsp;    public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset, int batchSize) {</b>
    +<b class="fc">&nbsp;        this.address = address;</b>
    +<b class="fc">&nbsp;        this.hostname = null;</b>
    +<b class="fc">&nbsp;        this.port = -1;</b>
    +<b class="fc">&nbsp;        this.socketFactory = socketFactory;</b>
    +<b class="fc">&nbsp;        this.charset = charset;</b>
    +<b class="fc">&nbsp;        this.batchSize = batchSize;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
    +&nbsp;     * to a batchSize of 100
    +&nbsp;     *
    +&nbsp;     * @param hostname the hostname of the Carbon server
    +&nbsp;     * @param port     the port of the Carbon server
    +&nbsp;     */
    +&nbsp;    public PickledGraphite(String hostname, int port) {
    +<b class="nc">&nbsp;        this(hostname, port, DEFAULT_BATCH_SIZE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}.
    +&nbsp;     *
    +&nbsp;     * @param hostname  the hostname of the Carbon server
    +&nbsp;     * @param port      the port of the Carbon server
    +&nbsp;     * @param batchSize how many metrics are bundled into a single pickle request to graphite
    +&nbsp;     */
    +&nbsp;    public PickledGraphite(String hostname, int port, int batchSize) {
    +<b class="nc">&nbsp;        this(hostname, port, SocketFactory.getDefault(), batchSize);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory.
    +&nbsp;     *
    +&nbsp;     * @param hostname      the hostname of the Carbon server
    +&nbsp;     * @param port          the port of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    +&nbsp;     */
    +&nbsp;    public PickledGraphite(String hostname, int port, SocketFactory socketFactory, int batchSize) {
    +<b class="nc">&nbsp;        this(hostname, port, socketFactory, UTF_8, batchSize);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory using the given character set.
    +&nbsp;     *
    +&nbsp;     * @param hostname      the hostname of the Carbon server
    +&nbsp;     * @param port          the port of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     * @param charset       the character set used by the server
    +&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    +&nbsp;     */
    +<b class="nc">&nbsp;    public PickledGraphite(String hostname, int port, SocketFactory socketFactory, Charset charset, int batchSize) {</b>
    +<b class="nc">&nbsp;        this.address = null;</b>
    +<b class="nc">&nbsp;        this.hostname = hostname;</b>
    +<b class="nc">&nbsp;        this.port = port;</b>
    +<b class="nc">&nbsp;        this.socketFactory = socketFactory;</b>
    +<b class="nc">&nbsp;        this.charset = charset;</b>
    +<b class="nc">&nbsp;        this.batchSize = batchSize;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void connect() throws IllegalStateException, IOException {
    +<b class="fc">&nbsp;        if (isConnected()) {</b>
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        InetSocketAddress address = this.address;</b>
    +<b class="fc">&nbsp;        if (address == null) {</b>
    +<b class="nc">&nbsp;            address = new InetSocketAddress(hostname, port);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        if (address.getAddress() == null) {</b>
    +<b class="fc">&nbsp;            throw new UnknownHostException(address.getHostName());</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="nc">&nbsp;        this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());</b>
    +<b class="nc">&nbsp;        this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public boolean isConnected() {
    +<b class="fc">&nbsp;        return socket != null &amp;&amp; socket.isConnected() &amp;&amp; !socket.isClosed();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Convert the metric to a python tuple of the form:
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * (timestamp, (name, value))
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * And add it to the list of metrics. If we reach the batch size, write them out.
    +&nbsp;     *
    +&nbsp;     * @param name      the name of the metric
    +&nbsp;     * @param value     the value of the metric
    +&nbsp;     * @param timestamp the timestamp of the metric
    +&nbsp;     * @throws IOException if there was an error sending the metric
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    +<b class="nc">&nbsp;        metrics.add(new MetricTuple(sanitize(name), timestamp, sanitize(value)));</b>
    +&nbsp;
    +<b class="nc">&nbsp;        if (metrics.size() &gt;= batchSize) {</b>
    +<b class="nc">&nbsp;            writeMetrics();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void flush() throws IOException {
    +<b class="nc">&nbsp;        writeMetrics();</b>
    +<b class="nc">&nbsp;        if (writer != null) {</b>
    +<b class="nc">&nbsp;            writer.flush();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void close() throws IOException {
    +&nbsp;        try {
    +<b class="nc">&nbsp;            flush();</b>
    +<b class="nc">&nbsp;            if (writer != null) {</b>
    +<b class="nc">&nbsp;                writer.close();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    +<b class="nc">&nbsp;            if (socket != null) {</b>
    +<b class="nc">&nbsp;                socket.close();</b>
    +&nbsp;            }
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            this.socket = null;</b>
    +<b class="nc">&nbsp;            this.writer = null;</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int getFailures() {
    +<b class="nc">&nbsp;        return failures;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * 1. Run the pickler script to package all the pending metrics into a single message
    +&nbsp;     * 2. Send the message to graphite
    +&nbsp;     * 3. Clear out the list of metrics
    +&nbsp;     */
    +&nbsp;    private void writeMetrics() throws IOException {
    +<b class="nc">&nbsp;        if (metrics.size() &gt; 0) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                byte[] payload = pickleMetrics(metrics);</b>
    +<b class="nc">&nbsp;                byte[] header = ByteBuffer.allocate(4).putInt(payload.length).array();</b>
    +&nbsp;
    +&nbsp;                @SuppressWarnings(&quot;resource&quot;)
    +<b class="nc">&nbsp;                OutputStream outputStream = socket.getOutputStream();</b>
    +<b class="nc">&nbsp;                outputStream.write(header);</b>
    +<b class="nc">&nbsp;                outputStream.write(payload);</b>
    +<b class="nc">&nbsp;                outputStream.flush();</b>
    +&nbsp;
    +<b class="nc">&nbsp;                if (LOGGER.isDebugEnabled()) {</b>
    +<b class="nc">&nbsp;                    LOGGER.debug(&quot;Wrote {} metrics&quot;, metrics.size());</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (IOException e) {</b>
    +<b class="nc">&nbsp;                this.failures++;</b>
    +<b class="nc">&nbsp;                throw e;</b>
    +&nbsp;            } finally {
    +&nbsp;                // if there was an error, we might miss some data. for now, drop those on the floor and
    +&nbsp;                // try to keep going.
    +<b class="nc">&nbsp;                metrics.clear();</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * See: http://readthedocs.org/docs/graphite/en/1.0/feeding-carbon.html
    +&nbsp;     *
    +&nbsp;     * @throws IOException shouldn&#39;t happen because we write to memory.
    +&nbsp;     */
    +&nbsp;    byte[] pickleMetrics(List&lt;MetricTuple&gt; metrics) throws IOException {
    +&nbsp;        // Extremely rough estimate of 75 bytes per message
    +<b class="nc">&nbsp;        ByteArrayOutputStream out = new ByteArrayOutputStream(metrics.size() * 75);</b>
    +<b class="nc">&nbsp;        Writer pickled = new OutputStreamWriter(out, charset);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        pickled.append(MARK);</b>
    +<b class="nc">&nbsp;        pickled.append(LIST);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        for (MetricTuple tuple : metrics) {</b>
    +&nbsp;            // start the outer tuple
    +<b class="nc">&nbsp;            pickled.append(MARK);</b>
    +&nbsp;
    +&nbsp;            // the metric name is a string.
    +<b class="nc">&nbsp;            pickled.append(STRING);</b>
    +&nbsp;            // the single quotes are to match python&#39;s repr(&quot;abcd&quot;)
    +<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    +<b class="nc">&nbsp;            pickled.append(tuple.name);</b>
    +<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    +<b class="nc">&nbsp;            pickled.append(LF);</b>
    +&nbsp;
    +&nbsp;            // start the inner tuple
    +<b class="nc">&nbsp;            pickled.append(MARK);</b>
    +&nbsp;
    +&nbsp;            // timestamp is a long
    +<b class="nc">&nbsp;            pickled.append(LONG);</b>
    +<b class="nc">&nbsp;            pickled.append(Long.toString(tuple.timestamp));</b>
    +&nbsp;            // the trailing L is to match python&#39;s repr(long(1234))
    +<b class="nc">&nbsp;            pickled.append(LONG);</b>
    +<b class="nc">&nbsp;            pickled.append(LF);</b>
    +&nbsp;
    +&nbsp;            // and the value is a string.
    +<b class="nc">&nbsp;            pickled.append(STRING);</b>
    +<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    +<b class="nc">&nbsp;            pickled.append(tuple.value);</b>
    +<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    +<b class="nc">&nbsp;            pickled.append(LF);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            pickled.append(TUPLE); // inner close</b>
    +<b class="nc">&nbsp;            pickled.append(TUPLE); // outer close</b>
    +&nbsp;
    +<b class="nc">&nbsp;            pickled.append(APPEND);</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        // every pickle ends with STOP
    +<b class="nc">&nbsp;        pickled.append(STOP);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        pickled.flush();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        return out.toByteArray();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String sanitize(String s) {
    +<b class="nc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-7.html
    new file mode 100644
    index 0000000000..26ce0d9437
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-7.html
    @@ -0,0 +1,113 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > GraphiteSender</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: GraphiteSender (com.codahale.metrics.graphite)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">GraphiteSender</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import java.io.Closeable;
    +&nbsp;import java.io.IOException;
    +&nbsp;
    +&nbsp;public interface GraphiteSender extends Closeable {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Connects to the server.
    +&nbsp;     *
    +&nbsp;     * @throws IllegalStateException if the client is already connected
    +&nbsp;     * @throws IOException           if there is an error connecting
    +&nbsp;     */
    +&nbsp;    void connect() throws IllegalStateException, IOException;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Sends the given measurement to the server.
    +&nbsp;     *
    +&nbsp;     * @param name      the name of the metric
    +&nbsp;     * @param value     the value of the metric
    +&nbsp;     * @param timestamp the timestamp of the metric
    +&nbsp;     * @throws IOException if there was an error sending the metric
    +&nbsp;     */
    +&nbsp;    void send(String name, String value, long timestamp) throws IOException;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Flushes buffer, if applicable
    +&nbsp;     *
    +&nbsp;     * @throws IOException if there was an error during flushing metrics to the socket
    +&nbsp;     */
    +&nbsp;    void flush() throws IOException;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns true if ready to send data
    +&nbsp;     */
    +&nbsp;    boolean isConnected();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the number of failed writes to the server.
    +&nbsp;     *
    +&nbsp;     * @return the number of failed writes to the server
    +&nbsp;     */
    +&nbsp;    int getFailures();
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index.html
    new file mode 100644
    index 0000000000..301f01f888
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..73b9dcbbbb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..5d49023603
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..5dc8d952b3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..e76e18852a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..b2636e6c8b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..72dc77e6d4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..8e122cad46
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..5c374c8c6b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..4f9ab46484
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-1.html
    new file mode 100644
    index 0000000000..6ad0d9ff82
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-1.html
    @@ -0,0 +1,184 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > AsyncHealthCheckDecorator</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: AsyncHealthCheckDecorator (com.codahale.metrics.health)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">AsyncHealthCheckDecorator</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.health.annotation.Async;
    +&nbsp;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.ScheduledFuture;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A health check decorator to manage asynchronous executions.
    +&nbsp; */
    +&nbsp;public class AsyncHealthCheckDecorator extends HealthCheck implements Runnable {
    +&nbsp;    private static final String NO_RESULT_YET_MESSAGE = &quot;Waiting for first asynchronous check result.&quot;;
    +&nbsp;    private final HealthCheck healthCheck;
    +&nbsp;    private final ScheduledFuture&lt;?&gt; future;
    +&nbsp;    private final long healthyTtl;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private volatile Result result;
    +&nbsp;
    +<b class="fc">&nbsp;    AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService, Clock clock) {</b>
    +<b class="fc">&nbsp;        check(healthCheck != null, &quot;healthCheck cannot be null&quot;);</b>
    +<b class="fc">&nbsp;        check(executorService != null, &quot;executorService cannot be null&quot;);</b>
    +<b class="fc">&nbsp;        Async async = healthCheck.getClass().getAnnotation(Async.class);</b>
    +<b class="fc">&nbsp;        check(async != null, &quot;healthCheck must contain Async annotation&quot;);</b>
    +<b class="fc">&nbsp;        check(async.period() &gt; 0, &quot;period cannot be less than or equal to zero&quot;);</b>
    +<b class="fc">&nbsp;        check(async.initialDelay() &gt;= 0, &quot;initialDelay cannot be less than zero&quot;);</b>
    +&nbsp;
    +&nbsp;
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.healthCheck = healthCheck;</b>
    +<b class="fc">&nbsp;        this.healthyTtl = async.unit().toMillis(async.healthyTtl() &lt;= 0 ? 2 * async.period() : async.healthyTtl());</b>
    +<b class="fc">&nbsp;        result = Async.InitialState.HEALTHY.equals(async.initialState()) ? Result.healthy(NO_RESULT_YET_MESSAGE) :</b>
    +<b class="fc">&nbsp;                Result.unhealthy(NO_RESULT_YET_MESSAGE);</b>
    +<b class="fc">&nbsp;        if (Async.ScheduleType.FIXED_RATE.equals(async.scheduleType())) {</b>
    +<b class="fc">&nbsp;            future = executorService.scheduleAtFixedRate(this, async.initialDelay(), async.period(), async.unit());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            future = executorService.scheduleWithFixedDelay(this, async.initialDelay(), async.period(), async.unit());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService) {
    +<b class="fc">&nbsp;        this(healthCheck, executorService, Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void run() {
    +<b class="fc">&nbsp;        result = healthCheck.execute();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected Result check() throws Exception {
    +<b class="fc">&nbsp;        long expiration = clock.getTime() - result.getTime() - healthyTtl;</b>
    +<b class="fc">&nbsp;        if (expiration &gt; 0) {</b>
    +<b class="fc">&nbsp;            return Result.builder()</b>
    +<b class="fc">&nbsp;                    .unhealthy()</b>
    +<b class="fc">&nbsp;                    .usingClock(clock)</b>
    +<b class="fc">&nbsp;                    .withMessage(&quot;Result was %s but it expired %d milliseconds ago&quot;,</b>
    +<b class="fc">&nbsp;                            result.isHealthy() ? &quot;healthy&quot; : &quot;unhealthy&quot;,</b>
    +<b class="fc">&nbsp;                            expiration)</b>
    +<b class="fc">&nbsp;                    .build();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        return result;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    boolean tearDown() {
    +<b class="fc">&nbsp;        return future.cancel(true);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public HealthCheck getHealthCheck() {
    +<b class="fc">&nbsp;        return healthCheck;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static void check(boolean expression, String message) {
    +<b class="fc">&nbsp;        if (!expression) {</b>
    +<b class="fc">&nbsp;            throw new IllegalArgumentException(message);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-2.html
    new file mode 100644
    index 0000000000..6c7c85d99a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-2.html
    @@ -0,0 +1,546 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheck</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheck (com.codahale.metrics.health)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HealthCheck</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HealthCheck$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheck$MockitoMock$sT3Zwhu9</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheck$MockitoMock$sT3Zwhu9$auxiliary$mjBkPLSs</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheck$MockitoMock$sT3Zwhu9$auxiliary$y7yuGcJt</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheck$Result</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.5%
    +  </span>
    +  <span class="absValue">
    +    (49/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheck$ResultBuilder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;
    +&nbsp;import java.time.Instant;
    +&nbsp;import java.time.ZoneId;
    +&nbsp;import java.time.ZonedDateTime;
    +&nbsp;import java.time.format.DateTimeFormatter;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.LinkedHashMap;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A health check for a component of your application.
    +&nbsp; */
    +<b class="fc">&nbsp;public abstract class HealthCheck {</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * The result of a {@link HealthCheck} being run. It can be healthy (with an optional message and optional details)
    +&nbsp;     * or unhealthy (with either an error message or a thrown exception and optional details).
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class Result {</b>
    +<b class="fc">&nbsp;        private static final DateTimeFormatter DATE_FORMAT_PATTERN =</b>
    +<b class="fc">&nbsp;                DateTimeFormatter.ofPattern(&quot;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSSXXX&quot;);</b>
    +&nbsp;        private static final int PRIME = 31;
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns a healthy {@link Result} with no additional message.
    +&nbsp;         *
    +&nbsp;         * @return a healthy {@link Result} with no additional message
    +&nbsp;         */
    +&nbsp;        public static Result healthy() {
    +<b class="fc">&nbsp;            return new Result(true, null, null);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns a healthy {@link Result} with an additional message.
    +&nbsp;         *
    +&nbsp;         * @param message an informative message
    +&nbsp;         * @return a healthy {@link Result} with an additional message
    +&nbsp;         */
    +&nbsp;        public static Result healthy(String message) {
    +<b class="fc">&nbsp;            return new Result(true, message, null);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns a healthy {@link Result} with a formatted message.
    +&nbsp;         * &lt;p&gt;
    +&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    +&nbsp;         *
    +&nbsp;         * @param message a message format\\
    +&nbsp;         * @param args    the arguments apply to the message format
    +&nbsp;         * @return a healthy {@link Result} with an additional message
    +&nbsp;         * @see String#format(String, Object...)
    +&nbsp;         */
    +&nbsp;        public static Result healthy(String message, Object... args) {
    +<b class="fc">&nbsp;            return healthy(String.format(message, args));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns an unhealthy {@link Result} with the given message.
    +&nbsp;         *
    +&nbsp;         * @param message an informative message describing how the health check failed
    +&nbsp;         * @return an unhealthy {@link Result} with the given message
    +&nbsp;         */
    +&nbsp;        public static Result unhealthy(String message) {
    +<b class="fc">&nbsp;            return new Result(false, message, null);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns an unhealthy {@link Result} with a formatted message.
    +&nbsp;         * &lt;p&gt;
    +&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    +&nbsp;         *
    +&nbsp;         * @param message a message format
    +&nbsp;         * @param args    the arguments apply to the message format
    +&nbsp;         * @return an unhealthy {@link Result} with an additional message
    +&nbsp;         * @see String#format(String, Object...)
    +&nbsp;         */
    +&nbsp;        public static Result unhealthy(String message, Object... args) {
    +<b class="fc">&nbsp;            return unhealthy(String.format(message, args));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns an unhealthy {@link Result} with the given error.
    +&nbsp;         *
    +&nbsp;         * @param error an exception thrown during the health check
    +&nbsp;         * @return an unhealthy {@link Result} with the given {@code error}
    +&nbsp;         */
    +&nbsp;        public static Result unhealthy(Throwable error) {
    +<b class="fc">&nbsp;            return new Result(false, error.getMessage(), error);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns a new {@link ResultBuilder}
    +&nbsp;         *
    +&nbsp;         * @return the {@link ResultBuilder}
    +&nbsp;         */
    +&nbsp;        public static ResultBuilder builder() {
    +<b class="fc">&nbsp;            return new ResultBuilder();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private final boolean healthy;
    +&nbsp;        private final String message;
    +&nbsp;        private final Throwable error;
    +&nbsp;        private final Map&lt;String, Object&gt; details;
    +&nbsp;        private final long time;
    +&nbsp;
    +&nbsp;        private long duration; // Calculated field
    +&nbsp;
    +&nbsp;        private Result(boolean isHealthy, String message, Throwable error) {
    +<b class="fc">&nbsp;            this(isHealthy, message, error, null, Clock.defaultClock());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Result(ResultBuilder builder) {
    +<b class="fc">&nbsp;            this(builder.healthy, builder.message, builder.error, builder.details, builder.clock);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        private Result(boolean isHealthy, String message, Throwable error, Map&lt;String, Object&gt; details, Clock clock) {</b>
    +<b class="fc">&nbsp;            this.healthy = isHealthy;</b>
    +<b class="fc">&nbsp;            this.message = message;</b>
    +<b class="fc">&nbsp;            this.error = error;</b>
    +<b class="fc">&nbsp;            this.details = details == null ? null : Collections.unmodifiableMap(details);</b>
    +<b class="fc">&nbsp;            this.time = clock.getTime();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns {@code true} if the result indicates the component is healthy; {@code false}
    +&nbsp;         * otherwise.
    +&nbsp;         *
    +&nbsp;         * @return {@code true} if the result indicates the component is healthy
    +&nbsp;         */
    +&nbsp;        public boolean isHealthy() {
    +<b class="fc">&nbsp;            return healthy;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns any additional message for the result, or {@code null} if the result has no
    +&nbsp;         * message.
    +&nbsp;         *
    +&nbsp;         * @return any additional message for the result, or {@code null}
    +&nbsp;         */
    +&nbsp;        public String getMessage() {
    +<b class="fc">&nbsp;            return message;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns any exception for the result, or {@code null} if the result has no exception.
    +&nbsp;         *
    +&nbsp;         * @return any exception for the result, or {@code null}
    +&nbsp;         */
    +&nbsp;        public Throwable getError() {
    +<b class="fc">&nbsp;            return error;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the timestamp when the result was created as a formatted String.
    +&nbsp;         *
    +&nbsp;         * @return a formatted timestamp
    +&nbsp;         */
    +&nbsp;        public String getTimestamp() {
    +<b class="fc">&nbsp;            Instant currentInstant = Instant.ofEpochMilli(time);</b>
    +<b class="fc">&nbsp;            ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(currentInstant, ZoneId.systemDefault());</b>
    +<b class="fc">&nbsp;            return DATE_FORMAT_PATTERN.format(zonedDateTime);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the time when the result was created, in milliseconds since Epoch
    +&nbsp;         *
    +&nbsp;         * @return the time when the result was created
    +&nbsp;         */
    +&nbsp;        public long getTime() {
    +<b class="fc">&nbsp;            return time;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the duration in milliseconds that the healthcheck took to run
    +&nbsp;         *
    +&nbsp;         * @return the duration
    +&nbsp;         */
    +&nbsp;        public long getDuration() {
    +<b class="fc">&nbsp;            return duration;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Sets the duration in milliseconds. This will indicate the time it took to run the individual healthcheck
    +&nbsp;         *
    +&nbsp;         * @param duration The duration in milliseconds
    +&nbsp;         */
    +&nbsp;        public void setDuration(long duration) {
    +<b class="fc">&nbsp;            this.duration = duration;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Map&lt;String, Object&gt; getDetails() {
    +<b class="fc">&nbsp;            return details;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean equals(Object o) {
    +<b class="fc">&nbsp;            if (this == o) {</b>
    +<b class="fc">&nbsp;                return true;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            final Result result = (Result) o;</b>
    +<b class="fc">&nbsp;            return healthy == result.healthy &amp;&amp;</b>
    +<b class="nc">&nbsp;                    !(error != null ? !error.equals(result.error) : result.error != null) &amp;&amp;</b>
    +<b class="fc">&nbsp;                    !(message != null ? !message.equals(result.message) : result.message != null) &amp;&amp;</b>
    +&nbsp;                    time == result.time;
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public int hashCode() {
    +<b class="nc">&nbsp;            int result = healthy ? 1 : 0;</b>
    +<b class="nc">&nbsp;            result = PRIME * result + (message != null ? message.hashCode() : 0);</b>
    +<b class="nc">&nbsp;            result = PRIME * result + (error != null ? error.hashCode() : 0);</b>
    +<b class="nc">&nbsp;            result = PRIME * result + (Long.hashCode(time));</b>
    +<b class="nc">&nbsp;            return result;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String toString() {
    +<b class="fc">&nbsp;            final StringBuilder builder = new StringBuilder(&quot;Result{isHealthy=&quot;);</b>
    +<b class="fc">&nbsp;            builder.append(healthy);</b>
    +<b class="fc">&nbsp;            if (message != null) {</b>
    +<b class="nc">&nbsp;                builder.append(&quot;, message=&quot;).append(message);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (error != null) {</b>
    +<b class="nc">&nbsp;                builder.append(&quot;, error=&quot;).append(error);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            builder.append(&quot;, duration=&quot;).append(duration);</b>
    +<b class="fc">&nbsp;            builder.append(&quot;, timestamp=&quot;).append(getTimestamp());</b>
    +<b class="fc">&nbsp;            if (details != null) {</b>
    +<b class="fc">&nbsp;                for (Map.Entry&lt;String, Object&gt; e : details.entrySet()) {</b>
    +<b class="fc">&nbsp;                    builder.append(&quot;, &quot;);</b>
    +<b class="fc">&nbsp;                    builder.append(e.getKey())</b>
    +<b class="fc">&nbsp;                            .append(&quot;=&quot;)</b>
    +<b class="fc">&nbsp;                            .append(String.valueOf(e.getValue()));</b>
    +<b class="fc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            builder.append(&#39;}&#39;);</b>
    +<b class="fc">&nbsp;            return builder.toString();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * This a convenient builder for an {@link HealthCheck.Result}. It can be health (with optional message and detail)
    +&nbsp;     * or unhealthy (with optional message, error and detail)
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class ResultBuilder {</b>
    +&nbsp;        private boolean healthy;
    +&nbsp;        private String message;
    +&nbsp;        private Throwable error;
    +&nbsp;        private Map&lt;String, Object&gt; details;
    +&nbsp;        private Clock clock;
    +&nbsp;
    +<b class="fc">&nbsp;        protected ResultBuilder() {</b>
    +<b class="fc">&nbsp;            this.healthy = true;</b>
    +<b class="fc">&nbsp;            this.details = new LinkedHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Configure an healthy result
    +&nbsp;         *
    +&nbsp;         * @return this builder with healthy status
    +&nbsp;         */
    +&nbsp;        public ResultBuilder healthy() {
    +<b class="fc">&nbsp;            this.healthy = true;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Configure an unhealthy result
    +&nbsp;         *
    +&nbsp;         * @return this builder with unhealthy status
    +&nbsp;         */
    +&nbsp;        public ResultBuilder unhealthy() {
    +<b class="fc">&nbsp;            this.healthy = false;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Configure an unhealthy result with an {@code error}
    +&nbsp;         *
    +&nbsp;         * @param error the error
    +&nbsp;         * @return this builder with the given error
    +&nbsp;         */
    +&nbsp;        public ResultBuilder unhealthy(Throwable error) {
    +<b class="fc">&nbsp;            this.error = error;</b>
    +<b class="fc">&nbsp;            return this.unhealthy().withMessage(error.getMessage());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Set an optional message
    +&nbsp;         *
    +&nbsp;         * @param message an informative message
    +&nbsp;         * @return this builder with the given {@code message}
    +&nbsp;         */
    +&nbsp;        public ResultBuilder withMessage(String message) {
    +<b class="fc">&nbsp;            this.message = message;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Set an optional formatted message
    +&nbsp;         * &lt;p&gt;
    +&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    +&nbsp;         *
    +&nbsp;         * @param message a message format
    +&nbsp;         * @param args    the arguments apply to the message format
    +&nbsp;         * @return this builder with the given formatted {@code message}
    +&nbsp;         * @see String#format(String, Object...)
    +&nbsp;         */
    +&nbsp;        public ResultBuilder withMessage(String message, Object... args) {
    +<b class="fc">&nbsp;            return withMessage(String.format(message, args));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Add an optional detail
    +&nbsp;         *
    +&nbsp;         * @param key  a key for this detail
    +&nbsp;         * @param data an object representing the detail data
    +&nbsp;         * @return this builder with the given detail added
    +&nbsp;         */
    +&nbsp;        public ResultBuilder withDetail(String key, Object data) {
    +<b class="fc">&nbsp;            if (this.details == null) {</b>
    +<b class="nc">&nbsp;                this.details = new LinkedHashMap&lt;&gt;();</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            this.details.put(key, data);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Configure this {@link ResultBuilder} to use the given {@code clock} instead of the default clock.
    +&nbsp;         * If not specified, the default clock is {@link Clock#defaultClock()}.
    +&nbsp;         *
    +&nbsp;         * @param clock the {@link Clock} to use when generating the health check timestamp (useful for unit testing)
    +&nbsp;         * @return this builder configured to use the given {@code clock}
    +&nbsp;         */
    +&nbsp;        public ResultBuilder usingClock(Clock clock) {
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Result build() {
    +<b class="fc">&nbsp;            return new Result(this);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Perform a check of the application component.
    +&nbsp;     *
    +&nbsp;     * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
    +&nbsp;     * Result} with a descriptive error message or exception
    +&nbsp;     * @throws Exception if there is an unhandled error during the health check; this will result in
    +&nbsp;     *                   a failed health check
    +&nbsp;     */
    +&nbsp;    protected abstract Result check() throws Exception;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Executes the health check, catching and handling any exceptions raised by {@link #check()}.
    +&nbsp;     *
    +&nbsp;     * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
    +&nbsp;     * Result} with a descriptive error message or exception
    +&nbsp;     */
    +&nbsp;    public Result execute() {
    +<b class="fc">&nbsp;        long start = clock().getTick();</b>
    +&nbsp;        Result result;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            result = check();</b>
    +<b class="fc">&nbsp;        } catch (Exception e) {</b>
    +<b class="fc">&nbsp;            result = Result.unhealthy(e);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        result.setDuration(TimeUnit.MILLISECONDS.convert(clock().getTick() - start, TimeUnit.NANOSECONDS));</b>
    +<b class="fc">&nbsp;        return result;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected Clock clock() {
    +<b class="fc">&nbsp;        return Clock.defaultClock();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-3.html
    new file mode 100644
    index 0000000000..d5ca130822
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-3.html
    @@ -0,0 +1,125 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheckFilter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheckFilter (com.codahale.metrics.health)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HealthCheckFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A filter used to determine whether or not a health check should be reported.
    +&nbsp; */
    +&nbsp;@FunctionalInterface
    +&nbsp;public interface HealthCheckFilter {
    +&nbsp;    /**
    +&nbsp;     * Matches all health checks, regardless of type or name.
    +&nbsp;     */
    +<b class="fc">&nbsp;    HealthCheckFilter ALL = (name, healthCheck) -&gt; true;</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns {@code true} if the health check matches the filter; {@code false} otherwise.
    +&nbsp;     *
    +&nbsp;     * @param name        the health check&#39;s name
    +&nbsp;     * @param healthCheck the health check
    +&nbsp;     * @return {@code true} if the health check matches the filter
    +&nbsp;     */
    +&nbsp;    boolean matches(String name, HealthCheck healthCheck);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-4.html
    new file mode 100644
    index 0000000000..0fc4f8a2f8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-4.html
    @@ -0,0 +1,418 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheckRegistry</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheckRegistry (com.codahale.metrics.health)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HealthCheckRegistry</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.7%
    +  </span>
    +  <span class="absValue">
    +    (70/78)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HealthCheckRegistry$NamedThreadFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.health.annotation.Async;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.NoSuchElementException;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.SortedSet;
    +&nbsp;import java.util.TreeMap;
    +&nbsp;import java.util.TreeSet;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.CopyOnWriteArrayList;
    +&nbsp;import java.util.concurrent.ExecutorService;
    +&nbsp;import java.util.concurrent.Future;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.ScheduledThreadPoolExecutor;
    +&nbsp;import java.util.concurrent.ThreadFactory;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.health.HealthCheck.Result;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A registry for health checks.
    +&nbsp; */
    +&nbsp;public class HealthCheckRegistry {
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(HealthCheckRegistry.class);</b>
    +&nbsp;    private static final int ASYNC_EXECUTOR_POOL_SIZE = 2;
    +&nbsp;
    +&nbsp;    private final ConcurrentMap&lt;String, HealthCheck&gt; healthChecks;
    +&nbsp;    private final List&lt;HealthCheckRegistryListener&gt; listeners;
    +&nbsp;    private final ScheduledExecutorService asyncExecutorService;
    +<b class="fc">&nbsp;    private final Object lock = new Object();</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    +&nbsp;     */
    +&nbsp;    public HealthCheckRegistry() {
    +<b class="fc">&nbsp;        this(ASYNC_EXECUTOR_POOL_SIZE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    +&nbsp;     *
    +&nbsp;     * @param asyncExecutorPoolSize core pool size for async health check executions
    +&nbsp;     */
    +&nbsp;    public HealthCheckRegistry(int asyncExecutorPoolSize) {
    +<b class="fc">&nbsp;        this(createExecutorService(asyncExecutorPoolSize));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    +&nbsp;     *
    +&nbsp;     * @param asyncExecutorService executor service for async health check executions
    +&nbsp;     */
    +<b class="fc">&nbsp;    public HealthCheckRegistry(ScheduledExecutorService asyncExecutorService) {</b>
    +<b class="fc">&nbsp;        this.healthChecks = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        this.listeners = new CopyOnWriteArrayList&lt;&gt;();</b>
    +<b class="fc">&nbsp;        this.asyncExecutorService = asyncExecutorService;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Adds a {@link HealthCheckRegistryListener} to a collection of listeners that will be notified on health check
    +&nbsp;     * registration. Listeners will be notified in the order in which they are added. The listener will be notified of all
    +&nbsp;     * existing health checks when it first registers.
    +&nbsp;     *
    +&nbsp;     * @param listener listener to add
    +&nbsp;     */
    +&nbsp;    public void addListener(HealthCheckRegistryListener listener) {
    +<b class="fc">&nbsp;        listeners.add(listener);</b>
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    +<b class="fc">&nbsp;            listener.onHealthCheckAdded(entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Removes a {@link HealthCheckRegistryListener} from this registry&#39;s collection of listeners.
    +&nbsp;     *
    +&nbsp;     * @param listener listener to remove
    +&nbsp;     */
    +&nbsp;    public void removeListener(HealthCheckRegistryListener listener) {
    +<b class="fc">&nbsp;        listeners.remove(listener);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Registers an application {@link HealthCheck}.
    +&nbsp;     *
    +&nbsp;     * @param name        the name of the health check
    +&nbsp;     * @param healthCheck the {@link HealthCheck} instance
    +&nbsp;     */
    +&nbsp;    public void register(String name, HealthCheck healthCheck) {
    +&nbsp;        HealthCheck registered;
    +<b class="fc">&nbsp;        synchronized (lock) {</b>
    +<b class="fc">&nbsp;            if (healthChecks.containsKey(name)) {</b>
    +<b class="fc">&nbsp;                throw new IllegalArgumentException(&quot;A health check named &quot; + name + &quot; already exists&quot;);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            registered = healthCheck;</b>
    +<b class="fc">&nbsp;            if (healthCheck.getClass().isAnnotationPresent(Async.class)) {</b>
    +<b class="fc">&nbsp;                registered = new AsyncHealthCheckDecorator(healthCheck, asyncExecutorService);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            healthChecks.put(name, registered);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        onHealthCheckAdded(name, registered);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Unregisters the application {@link HealthCheck} with the given name.
    +&nbsp;     *
    +&nbsp;     * @param name the name of the {@link HealthCheck} instance
    +&nbsp;     */
    +&nbsp;    public void unregister(String name) {
    +&nbsp;        HealthCheck healthCheck;
    +<b class="fc">&nbsp;        synchronized (lock) {</b>
    +<b class="fc">&nbsp;            healthCheck = healthChecks.remove(name);</b>
    +<b class="fc">&nbsp;            if (healthCheck instanceof AsyncHealthCheckDecorator) {</b>
    +<b class="fc">&nbsp;                ((AsyncHealthCheckDecorator) healthCheck).tearDown();</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        if (healthCheck != null) {</b>
    +<b class="fc">&nbsp;            onHealthCheckRemoved(name, healthCheck);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a set of the names of all registered health checks.
    +&nbsp;     *
    +&nbsp;     * @return the names of all registered health checks
    +&nbsp;     */
    +&nbsp;    public SortedSet&lt;String&gt; getNames() {
    +<b class="fc">&nbsp;        return Collections.unmodifiableSortedSet(new TreeSet&lt;&gt;(healthChecks.keySet()));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the {@link HealthCheck} instance with a given name
    +&nbsp;     *
    +&nbsp;     * @param name the name of the {@link HealthCheck} instance
    +&nbsp;     */
    +&nbsp;    public HealthCheck getHealthCheck(String name) {
    +<b class="nc">&nbsp;        return healthChecks.get(name);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Runs the health check with the given name.
    +&nbsp;     *
    +&nbsp;     * @param name the health check&#39;s name
    +&nbsp;     * @return the result of the health check
    +&nbsp;     * @throws NoSuchElementException if there is no health check with the given name
    +&nbsp;     */
    +&nbsp;    public HealthCheck.Result runHealthCheck(String name) throws NoSuchElementException {
    +<b class="fc">&nbsp;        final HealthCheck healthCheck = healthChecks.get(name);</b>
    +<b class="fc">&nbsp;        if (healthCheck == null) {</b>
    +<b class="fc">&nbsp;            throw new NoSuchElementException(&quot;No health check named &quot; + name + &quot; exists&quot;);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return healthCheck.execute();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Runs the registered health checks and returns a map of the results.
    +&nbsp;     *
    +&nbsp;     * @return a map of the health check results
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    +<b class="fc">&nbsp;        return runHealthChecks(HealthCheckFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Runs the registered health checks matching the filter and returns a map of the results.
    +&nbsp;     *
    +&nbsp;     * @param filter health check filter
    +&nbsp;     * @return a map of the health check results
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(HealthCheckFilter filter) {
    +<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = new TreeMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    +<b class="fc">&nbsp;            final String name = entry.getKey();</b>
    +<b class="fc">&nbsp;            final HealthCheck healthCheck = entry.getValue();</b>
    +<b class="fc">&nbsp;            if (filter.matches(name, healthCheck)) {</b>
    +<b class="fc">&nbsp;                final Result result = entry.getValue().execute();</b>
    +<b class="fc">&nbsp;                results.put(entry.getKey(), result);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(results);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Runs the registered health checks in parallel and returns a map of the results.
    +&nbsp;     *
    +&nbsp;     * @param executor object to launch and track health checks progress
    +&nbsp;     * @return a map of the health check results
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(ExecutorService executor) {
    +<b class="fc">&nbsp;        return runHealthChecks(executor, HealthCheckFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Runs the registered health checks matching the filter in parallel and returns a map of the results.
    +&nbsp;     *
    +&nbsp;     * @param executor object to launch and track health checks progress
    +&nbsp;     * @param filter   health check filter
    +&nbsp;     * @return a map of the health check results
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(ExecutorService executor, HealthCheckFilter filter) {
    +<b class="fc">&nbsp;        final Map&lt;String, Future&lt;HealthCheck.Result&gt;&gt; futures = new HashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        for (final Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    +<b class="fc">&nbsp;            final String name = entry.getKey();</b>
    +<b class="fc">&nbsp;            final HealthCheck healthCheck = entry.getValue();</b>
    +<b class="fc">&nbsp;            if (filter.matches(name, healthCheck)) {</b>
    +<b class="fc">&nbsp;                futures.put(name, executor.submit(() -&gt; healthCheck.execute()));</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = new TreeMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, Future&lt;Result&gt;&gt; entry : futures.entrySet()) {</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                results.put(entry.getKey(), entry.getValue().get());</b>
    +<b class="nc">&nbsp;            } catch (Exception e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Error executing health check {}&quot;, entry.getKey(), e);</b>
    +<b class="nc">&nbsp;                results.put(entry.getKey(), HealthCheck.Result.unhealthy(e));</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(results);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    private void onHealthCheckAdded(String name, HealthCheck healthCheck) {
    +<b class="fc">&nbsp;        for (HealthCheckRegistryListener listener : listeners) {</b>
    +<b class="fc">&nbsp;            listener.onHealthCheckAdded(name, healthCheck);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void onHealthCheckRemoved(String name, HealthCheck healthCheck) {
    +<b class="fc">&nbsp;        for (HealthCheckRegistryListener listener : listeners) {</b>
    +<b class="fc">&nbsp;            listener.onHealthCheckRemoved(name, healthCheck);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Shuts down the scheduled executor for async health checks
    +&nbsp;     */
    +&nbsp;    public void shutdown() {
    +<b class="fc">&nbsp;        asyncExecutorService.shutdown(); // Disable new health checks from being submitted</b>
    +&nbsp;        try {
    +&nbsp;            // Give some time to the current healtch checks to finish gracefully
    +<b class="fc">&nbsp;            if (!asyncExecutorService.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    +<b class="nc">&nbsp;                asyncExecutorService.shutdownNow();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } catch (InterruptedException ie) {</b>
    +<b class="nc">&nbsp;            asyncExecutorService.shutdownNow();</b>
    +<b class="nc">&nbsp;            Thread.currentThread().interrupt();</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static ScheduledExecutorService createExecutorService(int corePoolSize) {
    +<b class="fc">&nbsp;        final ScheduledThreadPoolExecutor asyncExecutorService = new ScheduledThreadPoolExecutor(corePoolSize,</b>
    +&nbsp;                new NamedThreadFactory(&quot;healthcheck-async-executor-&quot;));
    +<b class="fc">&nbsp;        asyncExecutorService.setRemoveOnCancelPolicy(true);</b>
    +<b class="fc">&nbsp;        return asyncExecutorService;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class NamedThreadFactory implements ThreadFactory {
    +&nbsp;
    +&nbsp;        private final ThreadGroup group;
    +<b class="fc">&nbsp;        private final AtomicInteger threadNumber = new AtomicInteger(1);</b>
    +&nbsp;        private final String namePrefix;
    +&nbsp;
    +<b class="fc">&nbsp;        NamedThreadFactory(String namePrefix) {</b>
    +<b class="fc">&nbsp;            SecurityManager s = System.getSecurityManager();</b>
    +<b class="fc">&nbsp;            group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();</b>
    +<b class="fc">&nbsp;            this.namePrefix = namePrefix;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public Thread newThread(Runnable r) {
    +<b class="fc">&nbsp;            Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);</b>
    +<b class="fc">&nbsp;            t.setDaemon(true);</b>
    +<b class="fc">&nbsp;            if (t.getPriority() != Thread.NORM_PRIORITY)</b>
    +<b class="nc">&nbsp;                t.setPriority(Thread.NORM_PRIORITY);</b>
    +<b class="fc">&nbsp;            return t;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-5.html
    new file mode 100644
    index 0000000000..90f8dc912b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-5.html
    @@ -0,0 +1,210 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SharedHealthCheckRegistries</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SharedHealthCheckRegistries (com.codahale.metrics.health)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SharedHealthCheckRegistries</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +&nbsp;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.atomic.AtomicReference;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A map of shared, named health registries.
    +&nbsp; */
    +&nbsp;public class SharedHealthCheckRegistries {
    +<b class="fc">&nbsp;    private static final ConcurrentMap&lt;String, HealthCheckRegistry&gt; REGISTRIES =</b>
    +&nbsp;            new ConcurrentHashMap&lt;&gt;();
    +&nbsp;
    +<b class="fc">&nbsp;    private static AtomicReference&lt;String&gt; defaultRegistryName = new AtomicReference&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    /* Visible for testing */
    +&nbsp;    static void setDefaultRegistryName(AtomicReference&lt;String&gt; defaultRegistryName) {
    +<b class="fc">&nbsp;        SharedHealthCheckRegistries.defaultRegistryName = defaultRegistryName;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private SharedHealthCheckRegistries() { /* singleton */ }
    +&nbsp;
    +&nbsp;    public static void clear() {
    +<b class="fc">&nbsp;        REGISTRIES.clear();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static Set&lt;String&gt; names() {
    +<b class="fc">&nbsp;        return REGISTRIES.keySet();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void remove(String key) {
    +<b class="fc">&nbsp;        REGISTRIES.remove(key);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HealthCheckRegistry add(String name, HealthCheckRegistry registry) {
    +<b class="fc">&nbsp;        return REGISTRIES.putIfAbsent(name, registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HealthCheckRegistry getOrCreate(String name) {
    +<b class="fc">&nbsp;        final HealthCheckRegistry existing = REGISTRIES.get(name);</b>
    +<b class="fc">&nbsp;        if (existing == null) {</b>
    +<b class="fc">&nbsp;            final HealthCheckRegistry created = new HealthCheckRegistry();</b>
    +<b class="fc">&nbsp;            final HealthCheckRegistry raced = add(name, created);</b>
    +<b class="fc">&nbsp;            if (raced == null) {</b>
    +<b class="fc">&nbsp;                return created;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            return raced;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return existing;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new registry and sets it as the default one under the provided name.
    +&nbsp;     *
    +&nbsp;     * @param name the registry name
    +&nbsp;     * @return the default registry
    +&nbsp;     * @throws IllegalStateException if the name has already been set
    +&nbsp;     */
    +&nbsp;    public synchronized static HealthCheckRegistry setDefault(String name) {
    +<b class="fc">&nbsp;        final HealthCheckRegistry registry = getOrCreate(name);</b>
    +<b class="fc">&nbsp;        return setDefault(name, registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Sets the provided registry as the default one under the provided name
    +&nbsp;     *
    +&nbsp;     * @param name                the default registry name
    +&nbsp;     * @param healthCheckRegistry the default registry
    +&nbsp;     * @throws IllegalStateException if the default registry has already been set
    +&nbsp;     */
    +&nbsp;    public static HealthCheckRegistry setDefault(String name, HealthCheckRegistry healthCheckRegistry) {
    +<b class="fc">&nbsp;        if (defaultRegistryName.compareAndSet(null, name)) {</b>
    +<b class="fc">&nbsp;            add(name, healthCheckRegistry);</b>
    +<b class="fc">&nbsp;            return healthCheckRegistry;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default health check registry is already set.&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Gets the name of the default registry, if it has been set
    +&nbsp;     *
    +&nbsp;     * @return the default registry
    +&nbsp;     * @throws IllegalStateException if the default has not been set
    +&nbsp;     */
    +&nbsp;    public static HealthCheckRegistry getDefault() {
    +<b class="fc">&nbsp;        final HealthCheckRegistry healthCheckRegistry = tryGetDefault();</b>
    +<b class="fc">&nbsp;        if (healthCheckRegistry != null) {</b>
    +<b class="fc">&nbsp;            return healthCheckRegistry;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default registry name has not been set.&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Same as {@link #getDefault()} except returns null when the default registry has not been set.
    +&nbsp;     *
    +&nbsp;     * @return the default registry or null
    +&nbsp;     */
    +&nbsp;    public static HealthCheckRegistry tryGetDefault() {
    +<b class="fc">&nbsp;        final String name = defaultRegistryName.get();</b>
    +<b class="fc">&nbsp;        if (name != null) {</b>
    +<b class="fc">&nbsp;            return getOrCreate(name);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return null;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-6.html
    new file mode 100644
    index 0000000000..3930b508b8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-6.html
    @@ -0,0 +1,103 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheckRegistryListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheckRegistryListener (com.codahale.metrics.health)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +  <tr>
    +    <td class="name">HealthCheckRegistryListener$MockitoMock$sFTP3L4I</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheckRegistryListener$MockitoMock$sFTP3L4I$auxiliary$AUYhMVzg</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheckRegistryListener$MockitoMock$sFTP3L4I$auxiliary$roTKNywC</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +&nbsp;
    +&nbsp;import java.util.EventListener;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A listener contract for {@link HealthCheckRegistry} events.
    +&nbsp; */
    +&nbsp;public interface HealthCheckRegistryListener extends EventListener {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a new {@link HealthCheck} is added to the registry.
    +&nbsp;     *
    +&nbsp;     * @param name        the name of the health check
    +&nbsp;     * @param healthCheck the health check
    +&nbsp;     */
    +&nbsp;    void onHealthCheckAdded(String name, HealthCheck healthCheck);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link HealthCheck} is removed from the registry.
    +&nbsp;     *
    +&nbsp;     * @param name        the name of the health check
    +&nbsp;     * @param healthCheck the health check
    +&nbsp;     */
    +&nbsp;    void onHealthCheckRemoved(String name, HealthCheck healthCheck);
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index.html
    new file mode 100644
    index 0000000000..0e14ed751a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..560a304495
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..1e97b23e42
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..95d84c8d3f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..1a1c5447a6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..f549a34996
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..c7ec58c227
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..37fffa71cc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..ea9e392f42
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..ca216847a5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-1.html
    new file mode 100644
    index 0000000000..8fcca70e95
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-1.html
    @@ -0,0 +1,205 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Async</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Async (com.codahale.metrics.health.annotation)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name">Async$InitialState</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Async$ScheduleType</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health.annotation;
    +&nbsp;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An annotation for marking asynchronous health check execution.
    +&nbsp; */
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target(ElementType.TYPE)
    +&nbsp;public @interface Async {
    +&nbsp;    /**
    +&nbsp;     * Enum representing the initial health states.
    +&nbsp;     */
    +<b class="fc">&nbsp;    enum InitialState {</b>
    +<b class="fc">&nbsp;        HEALTHY, UNHEALTHY</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Enum representing the possible schedule types.
    +&nbsp;     */
    +<b class="fc">&nbsp;    enum ScheduleType {</b>
    +<b class="fc">&nbsp;        FIXED_RATE, FIXED_DELAY</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Period between executions.
    +&nbsp;     *
    +&nbsp;     * @return period
    +&nbsp;     */
    +&nbsp;    long period();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Scheduling type of asynchronous executions.
    +&nbsp;     *
    +&nbsp;     * @return schedule type
    +&nbsp;     */
    +&nbsp;    ScheduleType scheduleType() default ScheduleType.FIXED_RATE;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Initial delay of first execution.
    +&nbsp;     *
    +&nbsp;     * @return initial delay
    +&nbsp;     */
    +&nbsp;    long initialDelay() default 0;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Time unit of initial delay, period and healthyTtl.
    +&nbsp;     *
    +&nbsp;     * @return time unit
    +&nbsp;     */
    +&nbsp;    TimeUnit unit() default TimeUnit.SECONDS;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Initial health state until first asynchronous execution completes.
    +&nbsp;     *
    +&nbsp;     * @return initial health state
    +&nbsp;     */
    +&nbsp;    InitialState initialState() default InitialState.HEALTHY;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * How long a healthy result is considered valid before being ignored.
    +&nbsp;     *
    +&nbsp;     * Handles cases where the asynchronous healthcheck did not run (for example thread starvation).
    +&nbsp;     *
    +&nbsp;     * Defaults to 2 * period
    +&nbsp;     *
    +&nbsp;     * @return healthy result time to live
    +&nbsp;     */
    +&nbsp;    long healthyTtl() default -1;
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index.html
    new file mode 100644
    index 0000000000..106c4d14e8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..f66c5d47a6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..e6170eba07
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..b24e256bdb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..cf00e19272
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..4811859689
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..3327f7e293
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..62b9f641d7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..3af482efe3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..df99bac3d7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/sources/source-1.html
    new file mode 100644
    index 0000000000..a70ae02d2a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/sources/source-1.html
    @@ -0,0 +1,142 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ThreadDeadlockHealthCheck</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ThreadDeadlockHealthCheck (com.codahale.metrics.health.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ThreadDeadlockHealthCheck</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.health.HealthCheck;
    +&nbsp;import com.codahale.metrics.jvm.ThreadDeadlockDetector;
    +&nbsp;
    +&nbsp;import java.util.Set;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A health check which returns healthy if no threads are deadlocked.
    +&nbsp; */
    +&nbsp;public class ThreadDeadlockHealthCheck extends HealthCheck {
    +&nbsp;    private final ThreadDeadlockDetector detector;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new health check.
    +&nbsp;     */
    +&nbsp;    public ThreadDeadlockHealthCheck() {
    +<b class="fc">&nbsp;        this(new ThreadDeadlockDetector());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new health check with the given detector.
    +&nbsp;     *
    +&nbsp;     * @param detector a thread deadlock detector
    +&nbsp;     */
    +<b class="fc">&nbsp;    public ThreadDeadlockHealthCheck(ThreadDeadlockDetector detector) {</b>
    +<b class="fc">&nbsp;        this.detector = detector;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected Result check() throws Exception {
    +<b class="fc">&nbsp;        final Set&lt;String&gt; threads = detector.getDeadlockedThreads();</b>
    +<b class="fc">&nbsp;        if (threads.isEmpty()) {</b>
    +<b class="fc">&nbsp;            return Result.healthy();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return Result.unhealthy(threads.toString());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index.html
    new file mode 100644
    index 0000000000..b485c8471c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..53883ead56
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..c3ab3add3d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..021106a853
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..7450f2eac4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..5ec37d31b1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..eb22833e20
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..6c4868e7f8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..e355a86c3f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..508f60de14
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-1.html
    new file mode 100644
    index 0000000000..fcc22c79d8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-1.html
    @@ -0,0 +1,140 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedNClientConnManager</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpasyncclient</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedNClientConnManager (com.codahale.metrics.httpasyncclient)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedNClientConnManager</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpasyncclient;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.http.config.Registry;
    +&nbsp;import org.apache.http.conn.DnsResolver;
    +&nbsp;import org.apache.http.conn.SchemePortResolver;
    +&nbsp;import org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager;
    +&nbsp;import org.apache.http.nio.conn.ManagedNHttpClientConnection;
    +&nbsp;import org.apache.http.nio.conn.NHttpClientConnectionManager;
    +&nbsp;import org.apache.http.nio.conn.NHttpConnectionFactory;
    +&nbsp;import org.apache.http.nio.conn.SchemeIOSessionStrategy;
    +&nbsp;import org.apache.http.nio.reactor.ConnectingIOReactor;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;public class InstrumentedNClientConnManager extends PoolingNHttpClientConnectionManager {
    +&nbsp;
    +&nbsp;    public InstrumentedNClientConnManager(final ConnectingIOReactor ioreactor, final NHttpConnectionFactory&lt;ManagedNHttpClientConnection&gt; connFactory, final SchemePortResolver schemePortResolver, final MetricRegistry metricRegistry, final Registry&lt;SchemeIOSessionStrategy&gt; iosessionFactoryRegistry, final long timeToLive, final TimeUnit tunit, final DnsResolver dnsResolver, final String name) {
    +<b class="fc">&nbsp;        super(ioreactor, connFactory, iosessionFactoryRegistry, schemePortResolver, dnsResolver, timeToLive, tunit);</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;available-connections&quot;),</b>
    +<b class="nc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;leased-connections&quot;),</b>
    +<b class="nc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;max-connections&quot;),</b>
    +<b class="nc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;pending-connections&quot;),</b>
    +<b class="nc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-2.html
    new file mode 100644
    index 0000000000..aa7100b7e3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-2.html
    @@ -0,0 +1,268 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedNHttpClientBuilder</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpasyncclient</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedNHttpClientBuilder (com.codahale.metrics.httpasyncclient)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedNHttpClientBuilder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (5/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (9/11)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedNHttpClientBuilder$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60%
    +  </span>
    +  <span class="absValue">
    +    (3/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedNHttpClientBuilder$TimingFutureCallback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpasyncclient;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.httpclient.HttpClientMetricNameStrategies;
    +&nbsp;import com.codahale.metrics.httpclient.HttpClientMetricNameStrategy;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.concurrent.Future;
    +&nbsp;
    +&nbsp;import org.apache.http.HttpException;
    +&nbsp;import org.apache.http.HttpRequest;
    +&nbsp;import org.apache.http.concurrent.FutureCallback;
    +&nbsp;import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
    +&nbsp;import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
    +&nbsp;import org.apache.http.nio.protocol.HttpAsyncRequestProducer;
    +&nbsp;import org.apache.http.nio.protocol.HttpAsyncResponseConsumer;
    +&nbsp;import org.apache.http.protocol.HttpContext;
    +&nbsp;
    +&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;
    +<b class="fc">&nbsp;public class InstrumentedNHttpClientBuilder extends HttpAsyncClientBuilder {</b>
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;    private final String name;
    +&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    +&nbsp;
    +&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy, String name) {
    +<b class="fc">&nbsp;        super();</b>
    +<b class="fc">&nbsp;        this.metricRegistry = metricRegistry;</b>
    +<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        this(metricRegistry, metricNameStrategy, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, String name) {
    +<b class="nc">&nbsp;        this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, name);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer timer(HttpRequest request) {
    +<b class="fc">&nbsp;        return metricRegistry.timer(metricNameStrategy.getNameFor(name, request));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public CloseableHttpAsyncClient build() {
    +<b class="fc">&nbsp;        final CloseableHttpAsyncClient ac = super.build();</b>
    +<b class="fc">&nbsp;        return new CloseableHttpAsyncClient() {</b>
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isRunning() {
    +<b class="nc">&nbsp;                return ac.isRunning();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void start() {
    +<b class="fc">&nbsp;                ac.start();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public &lt;T&gt; Future&lt;T&gt; execute(HttpAsyncRequestProducer requestProducer, HttpAsyncResponseConsumer&lt;T&gt; responseConsumer, HttpContext context, FutureCallback&lt;T&gt; callback) {
    +&nbsp;                final Timer.Context timerContext;
    +&nbsp;                try {
    +<b class="fc">&nbsp;                    timerContext = timer(requestProducer.generateRequest()).time();</b>
    +<b class="nc">&nbsp;                } catch (IOException | HttpException ex) {</b>
    +<b class="nc">&nbsp;                    throw new RuntimeException(ex);</b>
    +<b class="fc">&nbsp;                }</b>
    +<b class="fc">&nbsp;                return ac.execute(requestProducer, responseConsumer, context,</b>
    +&nbsp;                        new TimingFutureCallback&lt;&gt;(callback, timerContext));
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void close() throws IOException {
    +<b class="nc">&nbsp;                ac.close();</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class TimingFutureCallback&lt;T&gt; implements FutureCallback&lt;T&gt; {</b>
    +&nbsp;        private final FutureCallback&lt;T&gt; callback;
    +&nbsp;        private final Timer.Context timerContext;
    +&nbsp;
    +&nbsp;        private TimingFutureCallback(FutureCallback&lt;T&gt; callback,
    +<b class="fc">&nbsp;                                     Timer.Context timerContext) {</b>
    +<b class="fc">&nbsp;            this.callback = callback;</b>
    +<b class="fc">&nbsp;            this.timerContext = requireNonNull(timerContext, &quot;timerContext&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void completed(T result) {
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +<b class="fc">&nbsp;            if (callback != null) {</b>
    +<b class="fc">&nbsp;                callback.completed(result);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void failed(Exception ex) {
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +<b class="fc">&nbsp;            if (callback != null) {</b>
    +<b class="fc">&nbsp;                callback.failed(ex);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void cancelled() {
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +<b class="fc">&nbsp;            if (callback != null) {</b>
    +<b class="fc">&nbsp;                callback.cancelled();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index.html
    new file mode 100644
    index 0000000000..d330c71d78
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..8847a179de
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..f1a6e3ad71
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..476fe2d63a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..a4c09ca42f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..70ec067727
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..aeb18b9b23
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..9393a59b3c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..75d51ed4ca
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..110cf189cf
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-1.html
    new file mode 100644
    index 0000000000..085c9f9d9a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-1.html
    @@ -0,0 +1,165 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HttpClientMetricNameStrategies</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HttpClientMetricNameStrategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    +&nbsp;
    +&nbsp;import org.apache.http.HttpRequest;
    +&nbsp;import org.apache.http.client.HttpClient;
    +&nbsp;import org.apache.http.client.methods.HttpRequestWrapper;
    +&nbsp;import org.apache.http.client.methods.HttpUriRequest;
    +&nbsp;import org.apache.http.client.utils.URIBuilder;
    +&nbsp;
    +&nbsp;import java.net.URI;
    +&nbsp;import java.net.URISyntaxException;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +<b class="nc">&nbsp;public class HttpClientMetricNameStrategies {</b>
    +&nbsp;
    +<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy METHOD_ONLY =</b>
    +<b class="fc">&nbsp;        (name, request) -&gt; name(HttpClient.class,</b>
    +&nbsp;            name,
    +<b class="fc">&nbsp;            methodNameString(request));</b>
    +&nbsp;
    +<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy HOST_AND_METHOD =</b>
    +<b class="fc">&nbsp;        (name, request) -&gt; name(HttpClient.class,</b>
    +&nbsp;            name,
    +<b class="fc">&nbsp;            requestURI(request).getHost(),</b>
    +<b class="fc">&nbsp;            methodNameString(request));</b>
    +&nbsp;
    +<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy PATH_AND_METHOD =</b>
    +&nbsp;        (name, request) -&gt; {
    +<b class="fc">&nbsp;            final URIBuilder url = new URIBuilder(requestURI(request));</b>
    +<b class="fc">&nbsp;            return name(HttpClient.class,</b>
    +&nbsp;                name,
    +<b class="fc">&nbsp;                url.getPath(),</b>
    +<b class="fc">&nbsp;                methodNameString(request));</b>
    +&nbsp;        };
    +&nbsp;
    +<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =</b>
    +&nbsp;        (name, request) -&gt; {
    +&nbsp;            try {
    +<b class="fc">&nbsp;                final URIBuilder url = new URIBuilder(requestURI(request));</b>
    +<b class="fc">&nbsp;                return name(HttpClient.class,</b>
    +&nbsp;                    name,
    +<b class="fc">&nbsp;                    url.removeQuery().build().toString(),</b>
    +<b class="fc">&nbsp;                    methodNameString(request));</b>
    +<b class="nc">&nbsp;            } catch (URISyntaxException e) {</b>
    +<b class="nc">&nbsp;                throw new IllegalArgumentException(e);</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;
    +&nbsp;    private static String methodNameString(HttpRequest request) {
    +<b class="fc">&nbsp;        return request.getRequestLine().getMethod().toLowerCase() + &quot;-requests&quot;;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static URI requestURI(HttpRequest request) {
    +<b class="fc">&nbsp;        if (request instanceof HttpRequestWrapper)</b>
    +<b class="fc">&nbsp;            return requestURI(((HttpRequestWrapper) request).getOriginal());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return (request instanceof HttpUriRequest) ?</b>
    +<b class="fc">&nbsp;            ((HttpUriRequest) request).getURI() :</b>
    +<b class="nc">&nbsp;            URI.create(request.getRequestLine().getUri());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-2.html
    new file mode 100644
    index 0000000000..cc5c10b010
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-2.html
    @@ -0,0 +1,146 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HttpClientMetricNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HttpClientMetricNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$bisTf2Zh</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$bisTf2Zh$auxiliary$74ZaAa0h</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$bisTf2Zh$auxiliary$8Lp7LQ9m</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$oc1ZK5EU</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$oc1ZK5EU$auxiliary$frDkmbIZ</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$oc1ZK5EU$auxiliary$pDr1BEM8</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.http.HttpRequest;
    +&nbsp;import org.apache.http.client.HttpClient;
    +&nbsp;
    +&nbsp;@FunctionalInterface
    +&nbsp;public interface HttpClientMetricNameStrategy {
    +&nbsp;
    +&nbsp;    String getNameFor(String name, HttpRequest request);
    +&nbsp;
    +&nbsp;    default String getNameFor(String name, Exception exception) {
    +<b class="nc">&nbsp;        return MetricRegistry.name(HttpClient.class,</b>
    +&nbsp;                name,
    +<b class="nc">&nbsp;                exception.getClass().getSimpleName());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-3.html
    new file mode 100644
    index 0000000000..343ac997e4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-3.html
    @@ -0,0 +1,330 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpClientConnectionManager</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpClientConnectionManager</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (8/12)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84%
    +  </span>
    +  <span class="absValue">
    +    (21/25)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpClientConnectionManager$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    36.4%
    +  </span>
    +  <span class="absValue">
    +    (4/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    46.2%
    +  </span>
    +  <span class="absValue">
    +    (12/26)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.http.config.Registry;
    +&nbsp;import org.apache.http.config.RegistryBuilder;
    +&nbsp;import org.apache.http.conn.DnsResolver;
    +&nbsp;import org.apache.http.conn.HttpClientConnectionManager;
    +&nbsp;import org.apache.http.conn.HttpClientConnectionOperator;
    +&nbsp;import org.apache.http.conn.HttpConnectionFactory;
    +&nbsp;import org.apache.http.conn.ManagedHttpClientConnection;
    +&nbsp;import org.apache.http.conn.SchemePortResolver;
    +&nbsp;import org.apache.http.conn.routing.HttpRoute;
    +&nbsp;import org.apache.http.conn.socket.ConnectionSocketFactory;
    +&nbsp;import org.apache.http.conn.socket.PlainConnectionSocketFactory;
    +&nbsp;import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
    +&nbsp;import org.apache.http.impl.conn.DefaultHttpClientConnectionOperator;
    +&nbsp;import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
    +&nbsp;import org.apache.http.impl.conn.SystemDefaultDnsResolver;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    +&nbsp; */
    +&nbsp;public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
    +&nbsp;
    +&nbsp;
    +&nbsp;    protected static Registry&lt;ConnectionSocketFactory&gt; getDefaultRegistry() {
    +<b class="fc">&nbsp;        return RegistryBuilder.&lt;ConnectionSocketFactory&gt;create()</b>
    +<b class="fc">&nbsp;            .register(&quot;http&quot;, PlainConnectionSocketFactory.getSocketFactory())</b>
    +<b class="fc">&nbsp;            .register(&quot;https&quot;, SSLConnectionSocketFactory.getSocketFactory())</b>
    +<b class="fc">&nbsp;            .build();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricsRegistry;
    +&nbsp;    private final String name;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    +&nbsp;     */
    +&nbsp;    @Deprecated
    +&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        this(metricRegistry, getDefaultRegistry());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    +&nbsp;     */
    +&nbsp;    @Deprecated
    +&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    +&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    +<b class="nc">&nbsp;        this(metricsRegistry, socketFactoryRegistry, -1, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    +&nbsp;     */
    +&nbsp;    @Deprecated
    +&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    +&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry,
    +&nbsp;                                                   long connTTL,
    +&nbsp;                                                   TimeUnit connTTLTimeUnit) {
    +<b class="nc">&nbsp;        this(metricsRegistry, socketFactoryRegistry, null, null, SystemDefaultDnsResolver.INSTANCE, connTTL, connTTLTimeUnit, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    +&nbsp;     */
    +&nbsp;    @Deprecated
    +&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    +&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry,
    +&nbsp;                                                   HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt;
    +&nbsp;                                                           connFactory,
    +&nbsp;                                                   SchemePortResolver schemePortResolver,
    +&nbsp;                                                   DnsResolver dnsResolver,
    +&nbsp;                                                   long connTTL,
    +&nbsp;                                                   TimeUnit connTTLTimeUnit,
    +&nbsp;                                                   String name) {
    +<b class="nc">&nbsp;        this(metricsRegistry,</b>
    +&nbsp;             new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver),
    +&nbsp;             connFactory,
    +&nbsp;             connTTL,
    +&nbsp;             connTTLTimeUnit,
    +&nbsp;             name);
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    +&nbsp;     */
    +&nbsp;    @Deprecated
    +&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    +&nbsp;                                                   HttpClientConnectionOperator httpClientConnectionOperator,
    +&nbsp;                                                   HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt;
    +&nbsp;                                                           connFactory,
    +&nbsp;                                                   long connTTL,
    +&nbsp;                                                   TimeUnit connTTLTimeUnit,
    +&nbsp;                                                   String name) {
    +<b class="fc">&nbsp;        super(httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit);</b>
    +<b class="fc">&nbsp;        this.metricsRegistry = metricsRegistry;</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;available-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;leased-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;max-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;pending-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void shutdown() {
    +<b class="fc">&nbsp;        super.shutdown();</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;available-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;leased-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;max-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;pending-connections&quot;));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    +<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static class Builder {
    +&nbsp;        private MetricRegistry metricsRegistry;
    +&nbsp;        private HttpClientConnectionOperator httpClientConnectionOperator;
    +<b class="fc">&nbsp;        private Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry = getDefaultRegistry();</b>
    +&nbsp;        private HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt; connFactory;
    +&nbsp;        private SchemePortResolver schemePortResolver;
    +<b class="fc">&nbsp;        private DnsResolver dnsResolver = SystemDefaultDnsResolver.INSTANCE;</b>
    +<b class="fc">&nbsp;        private long connTTL = -1;</b>
    +<b class="fc">&nbsp;        private TimeUnit connTTLTimeUnit = TimeUnit.MILLISECONDS;</b>
    +&nbsp;        private String name;
    +&nbsp;
    +<b class="fc">&nbsp;        Builder() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder metricsRegistry(MetricRegistry metricsRegistry) {
    +<b class="fc">&nbsp;            this.metricsRegistry = metricsRegistry;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder socketFactoryRegistry(Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    +<b class="nc">&nbsp;            this.socketFactoryRegistry = socketFactoryRegistry;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder connFactory(HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt; connFactory) {
    +<b class="nc">&nbsp;            this.connFactory = connFactory;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    +<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    +<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder connTTL(long connTTL) {
    +<b class="nc">&nbsp;            this.connTTL = connTTL;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder connTTLTimeUnit(TimeUnit connTTLTimeUnit) {
    +<b class="nc">&nbsp;            this.connTTLTimeUnit = connTTLTimeUnit;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
    +<b class="nc">&nbsp;            this.httpClientConnectionOperator = httpClientConnectionOperator;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder name(final String name) {
    +<b class="fc">&nbsp;            this.name = name;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public InstrumentedHttpClientConnectionManager build() {
    +<b class="fc">&nbsp;            if (httpClientConnectionOperator == null) {</b>
    +<b class="fc">&nbsp;                httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return new InstrumentedHttpClientConnectionManager(metricsRegistry, httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit, name);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-4.html
    new file mode 100644
    index 0000000000..62b5ec4942
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-4.html
    @@ -0,0 +1,138 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpClients</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpClients</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.http.impl.client.CloseableHttpClient;
    +&nbsp;import org.apache.http.impl.client.HttpClientBuilder;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.httpclient.HttpClientMetricNameStrategies.METHOD_ONLY;
    +&nbsp;
    +&nbsp;public class InstrumentedHttpClients {
    +&nbsp;    private InstrumentedHttpClients() {
    +&nbsp;        super();
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
    +&nbsp;                                                    HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        return HttpClientBuilder.create()</b>
    +<b class="fc">&nbsp;                .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))</b>
    +<b class="fc">&nbsp;                .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-5.html
    new file mode 100644
    index 0000000000..64b1bd1614
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-5.html
    @@ -0,0 +1,166 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpRequestExecutor</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpRequestExecutor</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.apache.http.HttpClientConnection;
    +&nbsp;import org.apache.http.HttpException;
    +&nbsp;import org.apache.http.HttpRequest;
    +&nbsp;import org.apache.http.HttpResponse;
    +&nbsp;import org.apache.http.protocol.HttpContext;
    +&nbsp;import org.apache.http.protocol.HttpRequestExecutor;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;
    +&nbsp;public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    +&nbsp;    private final String name;
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                           String name) {
    +<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                           String name,
    +&nbsp;                                           int waitForContinue) {
    +<b class="fc">&nbsp;        super(waitForContinue);</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public HttpResponse execute(HttpRequest request, HttpClientConnection conn, HttpContext context) throws HttpException, IOException {
    +<b class="fc">&nbsp;        final Timer.Context timerContext = timer(request).time();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return super.execute(request, conn, context);</b>
    +<b class="fc">&nbsp;        } catch (HttpException | IOException e) {</b>
    +<b class="fc">&nbsp;            meter(e).mark();</b>
    +<b class="fc">&nbsp;            throw e;</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer timer(HttpRequest request) {
    +<b class="fc">&nbsp;        return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter meter(Exception e) {
    +<b class="fc">&nbsp;        return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index.html
    new file mode 100644
    index 0000000000..d1d56cfc4e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..6e92897b06
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..b6213d1d45
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..8937ee7315
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..26a99bb549
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..dacc3534b4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..b2cfa172c8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..bdd5250912
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..39ceab3f43
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..83507bcf9b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-1.html
    new file mode 100644
    index 0000000000..0215157da9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-1.html
    @@ -0,0 +1,152 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HttpClientMetricNameStrategies</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HttpClientMetricNameStrategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import org.apache.hc.client5.http.classic.HttpClient;
    +&nbsp;import org.apache.hc.core5.http.HttpRequest;
    +&nbsp;import org.apache.hc.core5.net.URIBuilder;
    +&nbsp;
    +&nbsp;import java.net.URISyntaxException;
    +&nbsp;import java.util.Locale;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +<b class="nc">&nbsp;public class HttpClientMetricNameStrategies {</b>
    +&nbsp;
    +<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy METHOD_ONLY =</b>
    +<b class="fc">&nbsp;            (name, request) -&gt; name(HttpClient.class,</b>
    +&nbsp;                    name,
    +<b class="fc">&nbsp;                    methodNameString(request));</b>
    +&nbsp;
    +<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy HOST_AND_METHOD =</b>
    +&nbsp;            (name, request) -&gt; {
    +&nbsp;                try {
    +<b class="fc">&nbsp;                    return name(HttpClient.class,</b>
    +&nbsp;                            name,
    +<b class="fc">&nbsp;                            request.getUri().getHost(),</b>
    +<b class="fc">&nbsp;                            methodNameString(request));</b>
    +<b class="nc">&nbsp;                } catch (URISyntaxException e) {</b>
    +<b class="nc">&nbsp;                    throw new IllegalArgumentException(e);</b>
    +&nbsp;                }
    +&nbsp;            };
    +&nbsp;
    +<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =</b>
    +&nbsp;            (name, request) -&gt; {
    +&nbsp;                try {
    +<b class="fc">&nbsp;                    final URIBuilder url = new URIBuilder(request.getUri());</b>
    +<b class="fc">&nbsp;                    return name(HttpClient.class,</b>
    +&nbsp;                            name,
    +<b class="fc">&nbsp;                            url.removeQuery().build().toString(),</b>
    +<b class="fc">&nbsp;                            methodNameString(request));</b>
    +<b class="nc">&nbsp;                } catch (URISyntaxException e) {</b>
    +<b class="nc">&nbsp;                    throw new IllegalArgumentException(e);</b>
    +&nbsp;                }
    +&nbsp;            };
    +&nbsp;
    +&nbsp;    private static String methodNameString(HttpRequest request) {
    +<b class="fc">&nbsp;        return request.getMethod().toLowerCase(Locale.ROOT) + &quot;-requests&quot;;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-2.html
    new file mode 100644
    index 0000000000..1845d2d312
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-2.html
    @@ -0,0 +1,137 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HttpClientMetricNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HttpClientMetricNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$349Y1P2O</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$349Y1P2O$auxiliary$M1YqtWPO</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$349Y1P2O$auxiliary$xhZpTTks</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.hc.client5.http.classic.HttpClient;
    +&nbsp;import org.apache.hc.core5.http.HttpRequest;
    +&nbsp;
    +&nbsp;@FunctionalInterface
    +&nbsp;public interface HttpClientMetricNameStrategy {
    +&nbsp;
    +&nbsp;    String getNameFor(String name, HttpRequest request);
    +&nbsp;
    +&nbsp;    default String getNameFor(String name, Exception exception) {
    +<b class="nc">&nbsp;        return MetricRegistry.name(HttpClient.class,</b>
    +&nbsp;                name,
    +<b class="nc">&nbsp;                exception.getClass().getSimpleName());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-3.html
    new file mode 100644
    index 0000000000..3518f5d5e9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-3.html
    @@ -0,0 +1,285 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedAsyncClientConnectionManager</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedAsyncClientConnectionManager (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedAsyncClientConnectionManager</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedAsyncClientConnectionManager$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (4/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (8/20)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.hc.client5.http.DnsResolver;
    +&nbsp;import org.apache.hc.client5.http.SchemePortResolver;
    +&nbsp;import org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager;
    +&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionManager;
    +&nbsp;import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
    +&nbsp;import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
    +&nbsp;import org.apache.hc.core5.http.URIScheme;
    +&nbsp;import org.apache.hc.core5.http.config.Lookup;
    +&nbsp;import org.apache.hc.core5.http.config.Registry;
    +&nbsp;import org.apache.hc.core5.http.config.RegistryBuilder;
    +&nbsp;import org.apache.hc.core5.http.nio.ssl.TlsStrategy;
    +&nbsp;import org.apache.hc.core5.io.CloseMode;
    +&nbsp;import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
    +&nbsp;import org.apache.hc.core5.pool.PoolReusePolicy;
    +&nbsp;import org.apache.hc.core5.util.TimeValue;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    +&nbsp; */
    +&nbsp;public class InstrumentedAsyncClientConnectionManager extends PoolingAsyncClientConnectionManager {
    +<b class="fc">&nbsp;    private static final String METRICS_PREFIX = AsyncClientConnectionManager.class.getName();</b>
    +&nbsp;
    +&nbsp;    protected static Registry&lt;TlsStrategy&gt; getDefaultTlsStrategy() {
    +<b class="fc">&nbsp;        return RegistryBuilder.&lt;TlsStrategy&gt;create()</b>
    +<b class="fc">&nbsp;                .register(URIScheme.HTTPS.id, DefaultClientTlsStrategy.getDefault())</b>
    +<b class="fc">&nbsp;                .build();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricsRegistry;
    +&nbsp;    private final String name;
    +&nbsp;
    +&nbsp;    InstrumentedAsyncClientConnectionManager(final MetricRegistry metricRegistry,
    +&nbsp;                                             final String name,
    +&nbsp;                                             final Lookup&lt;TlsStrategy&gt; tlsStrategyLookup,
    +&nbsp;                                             final PoolConcurrencyPolicy poolConcurrencyPolicy,
    +&nbsp;                                             final PoolReusePolicy poolReusePolicy,
    +&nbsp;                                             final TimeValue timeToLive,
    +&nbsp;                                             final SchemePortResolver schemePortResolver,
    +&nbsp;                                             final DnsResolver dnsResolver) {
    +&nbsp;
    +<b class="fc">&nbsp;        super(tlsStrategyLookup, poolConcurrencyPolicy, poolReusePolicy, timeToLive, schemePortResolver, dnsResolver);</b>
    +<b class="fc">&nbsp;        this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;available-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;leased-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;max-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;pending-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void close() {
    +<b class="fc">&nbsp;        close(CloseMode.GRACEFUL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void close(CloseMode closeMode) {
    +<b class="fc">&nbsp;        super.close(closeMode);</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;available-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;leased-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;max-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;pending-connections&quot;));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    +<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static class Builder {
    +&nbsp;        private MetricRegistry metricsRegistry;
    +&nbsp;        private String name;
    +<b class="fc">&nbsp;        private Lookup&lt;TlsStrategy&gt; tlsStrategyLookup = getDefaultTlsStrategy();</b>
    +&nbsp;        private SchemePortResolver schemePortResolver;
    +&nbsp;        private DnsResolver dnsResolver;
    +&nbsp;        private PoolConcurrencyPolicy poolConcurrencyPolicy;
    +&nbsp;        private PoolReusePolicy poolReusePolicy;
    +<b class="fc">&nbsp;        private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        Builder() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder metricsRegistry(MetricRegistry metricRegistry) {
    +<b class="fc">&nbsp;            this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder name(final String name) {
    +<b class="fc">&nbsp;            this.name = name;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    +<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    +<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder timeToLive(TimeValue timeToLive) {
    +<b class="nc">&nbsp;            this.timeToLive = timeToLive;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder tlsStrategyLookup(Lookup&lt;TlsStrategy&gt; tlsStrategyLookup) {
    +<b class="nc">&nbsp;            this.tlsStrategyLookup = tlsStrategyLookup;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
    +<b class="nc">&nbsp;            this.poolConcurrencyPolicy = poolConcurrencyPolicy;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
    +<b class="nc">&nbsp;            this.poolReusePolicy = poolReusePolicy;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public InstrumentedAsyncClientConnectionManager build() {
    +<b class="fc">&nbsp;            return new InstrumentedAsyncClientConnectionManager(</b>
    +&nbsp;                    metricsRegistry,
    +&nbsp;                    name,
    +&nbsp;                    tlsStrategyLookup,
    +&nbsp;                    poolConcurrencyPolicy,
    +&nbsp;                    poolReusePolicy,
    +&nbsp;                    timeToLive,
    +&nbsp;                    schemePortResolver,
    +&nbsp;                    dnsResolver);
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-4.html
    new file mode 100644
    index 0000000000..db08ca2b19
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-4.html
    @@ -0,0 +1,229 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedAsyncExecChainHandler</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedAsyncExecChainHandler (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedAsyncExecChainHandler</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedAsyncExecChainHandler$InstrumentedAsyncExecCallback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.apache.hc.client5.http.async.AsyncExecCallback;
    +&nbsp;import org.apache.hc.client5.http.async.AsyncExecChain;
    +&nbsp;import org.apache.hc.client5.http.async.AsyncExecChainHandler;
    +&nbsp;import org.apache.hc.core5.http.EntityDetails;
    +&nbsp;import org.apache.hc.core5.http.HttpException;
    +&nbsp;import org.apache.hc.core5.http.HttpRequest;
    +&nbsp;import org.apache.hc.core5.http.HttpResponse;
    +&nbsp;import org.apache.hc.core5.http.nio.AsyncDataConsumer;
    +&nbsp;import org.apache.hc.core5.http.nio.AsyncEntityProducer;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;
    +&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;
    +&nbsp;class InstrumentedAsyncExecChainHandler implements AsyncExecChainHandler {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    +&nbsp;    private final String name;
    +&nbsp;
    +&nbsp;    public InstrumentedAsyncExecChainHandler(MetricRegistry registry, HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedAsyncExecChainHandler(MetricRegistry registry,
    +&nbsp;                                             HttpClientMetricNameStrategy metricNameStrategy,
    +<b class="fc">&nbsp;                                             String name) {</b>
    +<b class="fc">&nbsp;        this.registry = requireNonNull(registry, &quot;registry&quot;);</b>
    +<b class="fc">&nbsp;        this.metricNameStrategy = requireNonNull(metricNameStrategy, &quot;metricNameStrategy&quot;);</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void execute(HttpRequest request,
    +&nbsp;                        AsyncEntityProducer entityProducer,
    +&nbsp;                        AsyncExecChain.Scope scope,
    +&nbsp;                        AsyncExecChain chain,
    +&nbsp;                        AsyncExecCallback asyncExecCallback) throws HttpException, IOException {
    +<b class="fc">&nbsp;        final InstrumentedAsyncExecCallback instrumentedAsyncExecCallback =</b>
    +&nbsp;                new InstrumentedAsyncExecCallback(registry, metricNameStrategy, name, asyncExecCallback, request);
    +<b class="fc">&nbsp;        chain.proceed(request, entityProducer, scope, instrumentedAsyncExecCallback);</b>
    +&nbsp;
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    final static class InstrumentedAsyncExecCallback implements AsyncExecCallback {
    +&nbsp;        private final MetricRegistry registry;
    +&nbsp;        private final HttpClientMetricNameStrategy metricNameStrategy;
    +&nbsp;        private final String name;
    +&nbsp;        private final AsyncExecCallback delegate;
    +&nbsp;        private final Timer.Context timerContext;
    +&nbsp;
    +&nbsp;        public InstrumentedAsyncExecCallback(MetricRegistry registry,
    +&nbsp;                                             HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                             String name,
    +&nbsp;                                             AsyncExecCallback delegate,
    +<b class="fc">&nbsp;                                             HttpRequest request) {</b>
    +<b class="fc">&nbsp;            this.registry = registry;</b>
    +<b class="fc">&nbsp;            this.metricNameStrategy = metricNameStrategy;</b>
    +<b class="fc">&nbsp;            this.name = name;</b>
    +<b class="fc">&nbsp;            this.delegate = delegate;</b>
    +<b class="fc">&nbsp;            this.timerContext = timer(request).time();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public AsyncDataConsumer handleResponse(HttpResponse response, EntityDetails entityDetails) throws HttpException, IOException {
    +<b class="fc">&nbsp;            return delegate.handleResponse(response, entityDetails);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void handleInformationResponse(HttpResponse response) throws HttpException, IOException {
    +<b class="nc">&nbsp;            delegate.handleInformationResponse(response);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void completed() {
    +<b class="fc">&nbsp;            delegate.completed();</b>
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void failed(Exception cause) {
    +<b class="fc">&nbsp;            delegate.failed(cause);</b>
    +<b class="fc">&nbsp;            meter(cause).mark();</b>
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer timer(HttpRequest request) {
    +<b class="fc">&nbsp;            return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Meter meter(Exception e) {
    +<b class="fc">&nbsp;            return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-5.html
    new file mode 100644
    index 0000000000..3b1ba0492c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-5.html
    @@ -0,0 +1,147 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpAsyncClients</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpAsyncClients (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpAsyncClients</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.hc.client5.http.impl.ChainElement;
    +&nbsp;import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
    +&nbsp;import org.apache.hc.client5.http.impl.async.HttpAsyncClientBuilder;
    +&nbsp;import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
    +&nbsp;
    +&nbsp;public class InstrumentedHttpAsyncClients {
    +&nbsp;    private InstrumentedHttpAsyncClients() {
    +&nbsp;        super();
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry,
    +&nbsp;                                                         HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
    +&nbsp;                                                HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        return custom(metricRegistry, metricNameStrategy, InstrumentedAsyncClientConnectionManager.builder(metricRegistry).build());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
    +&nbsp;                                                HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                                AsyncClientConnectionManager clientConnectionManager) {
    +<b class="fc">&nbsp;        return HttpAsyncClientBuilder.create()</b>
    +<b class="fc">&nbsp;                .setConnectionManager(clientConnectionManager)</b>
    +<b class="fc">&nbsp;                .addExecInterceptorBefore(ChainElement.CONNECT.name(), &quot;dropwizard-metrics&quot;,</b>
    +&nbsp;                        new InstrumentedAsyncExecChainHandler(metricRegistry, metricNameStrategy));
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-6.html
    new file mode 100644
    index 0000000000..a3e2b23c91
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-6.html
    @@ -0,0 +1,308 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpClientConnectionManager</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpClientConnectionManager</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (23/23)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpClientConnectionManager$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (4/12)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    38.5%
    +  </span>
    +  <span class="absValue">
    +    (10/26)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.hc.client5.http.DnsResolver;
    +&nbsp;import org.apache.hc.client5.http.SchemePortResolver;
    +&nbsp;import org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator;
    +&nbsp;import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
    +&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionManager;
    +&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionOperator;
    +&nbsp;import org.apache.hc.client5.http.io.ManagedHttpClientConnection;
    +&nbsp;import org.apache.hc.client5.http.socket.ConnectionSocketFactory;
    +&nbsp;import org.apache.hc.client5.http.socket.PlainConnectionSocketFactory;
    +&nbsp;import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
    +&nbsp;import org.apache.hc.core5.http.URIScheme;
    +&nbsp;import org.apache.hc.core5.http.config.Registry;
    +&nbsp;import org.apache.hc.core5.http.config.RegistryBuilder;
    +&nbsp;import org.apache.hc.core5.http.io.HttpConnectionFactory;
    +&nbsp;import org.apache.hc.core5.io.CloseMode;
    +&nbsp;import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
    +&nbsp;import org.apache.hc.core5.pool.PoolReusePolicy;
    +&nbsp;import org.apache.hc.core5.util.TimeValue;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    +&nbsp; */
    +&nbsp;public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
    +<b class="fc">&nbsp;    private static final String METRICS_PREFIX = HttpClientConnectionManager.class.getName();</b>
    +&nbsp;
    +&nbsp;    protected static Registry&lt;ConnectionSocketFactory&gt; getDefaultRegistry() {
    +<b class="fc">&nbsp;        return RegistryBuilder.&lt;ConnectionSocketFactory&gt;create()</b>
    +<b class="fc">&nbsp;                .register(URIScheme.HTTP.id, PlainConnectionSocketFactory.getSocketFactory())</b>
    +<b class="fc">&nbsp;                .register(URIScheme.HTTPS.id, SSLConnectionSocketFactory.getSocketFactory())</b>
    +<b class="fc">&nbsp;                .build();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricsRegistry;
    +&nbsp;    private final String name;
    +&nbsp;
    +&nbsp;    InstrumentedHttpClientConnectionManager(final MetricRegistry metricRegistry,
    +&nbsp;                                            final String name,
    +&nbsp;                                            final HttpClientConnectionOperator httpClientConnectionOperator,
    +&nbsp;                                            final PoolConcurrencyPolicy poolConcurrencyPolicy,
    +&nbsp;                                            final PoolReusePolicy poolReusePolicy,
    +&nbsp;                                            final TimeValue timeToLive,
    +&nbsp;                                            final HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory) {
    +&nbsp;
    +<b class="fc">&nbsp;        super(httpClientConnectionOperator, poolConcurrencyPolicy, poolReusePolicy, timeToLive, connFactory);</b>
    +<b class="fc">&nbsp;        this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;available-connections&quot;),</b>
    +&nbsp;                () -&gt; {
    +<b class="fc">&nbsp;                    return getTotalStats().getAvailable();</b>
    +&nbsp;                });
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;leased-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;max-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax()</b>
    +&nbsp;        );
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;pending-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void close() {
    +<b class="fc">&nbsp;        close(CloseMode.GRACEFUL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void close(CloseMode closeMode) {
    +<b class="fc">&nbsp;        super.close(closeMode);</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;available-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;leased-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;max-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;pending-connections&quot;));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    +<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static class Builder {
    +&nbsp;        private MetricRegistry metricsRegistry;
    +&nbsp;        private String name;
    +&nbsp;        private HttpClientConnectionOperator httpClientConnectionOperator;
    +<b class="fc">&nbsp;        private Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry = getDefaultRegistry();</b>
    +&nbsp;        private SchemePortResolver schemePortResolver;
    +&nbsp;        private DnsResolver dnsResolver;
    +&nbsp;        private PoolConcurrencyPolicy poolConcurrencyPolicy;
    +&nbsp;        private PoolReusePolicy poolReusePolicy;
    +<b class="fc">&nbsp;        private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;</b>
    +&nbsp;        private HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory;
    +&nbsp;
    +<b class="fc">&nbsp;        Builder() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder metricsRegistry(MetricRegistry metricRegistry) {
    +<b class="fc">&nbsp;            this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder name(final String name) {
    +<b class="fc">&nbsp;            this.name = name;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder socketFactoryRegistry(Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    +<b class="nc">&nbsp;            this.socketFactoryRegistry = requireNonNull(socketFactoryRegistry, &quot;socketFactoryRegistry&quot;);</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder connFactory(HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory) {
    +<b class="nc">&nbsp;            this.connFactory = connFactory;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    +<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    +<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder timeToLive(TimeValue timeToLive) {
    +<b class="nc">&nbsp;            this.timeToLive = timeToLive;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
    +<b class="nc">&nbsp;            this.httpClientConnectionOperator = httpClientConnectionOperator;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
    +<b class="nc">&nbsp;            this.poolConcurrencyPolicy = poolConcurrencyPolicy;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
    +<b class="nc">&nbsp;            this.poolReusePolicy = poolReusePolicy;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public InstrumentedHttpClientConnectionManager build() {
    +<b class="fc">&nbsp;            if (httpClientConnectionOperator == null) {</b>
    +<b class="fc">&nbsp;                httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(</b>
    +&nbsp;                        socketFactoryRegistry,
    +&nbsp;                        schemePortResolver,
    +&nbsp;                        dnsResolver);
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            return new InstrumentedHttpClientConnectionManager(</b>
    +&nbsp;                    metricsRegistry,
    +&nbsp;                    name,
    +&nbsp;                    httpClientConnectionOperator,
    +&nbsp;                    poolConcurrencyPolicy,
    +&nbsp;                    poolReusePolicy,
    +&nbsp;                    timeToLive,
    +&nbsp;                    connFactory);
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-7.html
    new file mode 100644
    index 0000000000..9f1e43c5f5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-7.html
    @@ -0,0 +1,138 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpClients</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpClients</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
    +&nbsp;import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
    +&nbsp;
    +&nbsp;public class InstrumentedHttpClients {
    +&nbsp;    private InstrumentedHttpClients() {
    +&nbsp;        super();
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
    +&nbsp;                                                    HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        return HttpClientBuilder.create()</b>
    +<b class="fc">&nbsp;                .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))</b>
    +<b class="fc">&nbsp;                .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-8.html
    new file mode 100644
    index 0000000000..84b611b450
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-8.html
    @@ -0,0 +1,182 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpRequestExecutor</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpRequestExecutor</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.apache.hc.core5.http.ClassicHttpRequest;
    +&nbsp;import org.apache.hc.core5.http.ClassicHttpResponse;
    +&nbsp;import org.apache.hc.core5.http.ConnectionReuseStrategy;
    +&nbsp;import org.apache.hc.core5.http.HttpException;
    +&nbsp;import org.apache.hc.core5.http.HttpRequest;
    +&nbsp;import org.apache.hc.core5.http.impl.Http1StreamListener;
    +&nbsp;import org.apache.hc.core5.http.impl.io.HttpRequestExecutor;
    +&nbsp;import org.apache.hc.core5.http.io.HttpClientConnection;
    +&nbsp;import org.apache.hc.core5.http.io.HttpResponseInformationCallback;
    +&nbsp;import org.apache.hc.core5.http.protocol.HttpContext;
    +&nbsp;import org.apache.hc.core5.util.Timeout;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;
    +&nbsp;public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    +&nbsp;    private final String name;
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                           String name) {
    +<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                           String name,
    +&nbsp;                                           Timeout waitForContinue) {
    +<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, waitForContinue, null, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                           String name,
    +&nbsp;                                           Timeout waitForContinue,
    +&nbsp;                                           ConnectionReuseStrategy connReuseStrategy,
    +&nbsp;                                           Http1StreamListener streamListener) {
    +<b class="fc">&nbsp;        super(waitForContinue, connReuseStrategy, streamListener);</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public ClassicHttpResponse execute(ClassicHttpRequest request, HttpClientConnection conn, HttpResponseInformationCallback informationCallback, HttpContext context) throws IOException, HttpException {
    +<b class="fc">&nbsp;        final Timer.Context timerContext = timer(request).time();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return super.execute(request, conn, informationCallback, context);</b>
    +<b class="fc">&nbsp;        } catch (HttpException | IOException e) {</b>
    +<b class="fc">&nbsp;            meter(e).mark();</b>
    +<b class="fc">&nbsp;            throw e;</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer timer(HttpRequest request) {
    +<b class="fc">&nbsp;        return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter meter(Exception e) {
    +<b class="fc">&nbsp;        return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index.html
    new file mode 100644
    index 0000000000..a8276139d9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..c3070c0d84
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..2231671545
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..37b63e1c1f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..7ae4beeae9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..0e8d225851
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..a3522db0b0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..5c7837fa0b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..bf69e53567
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..d3bd9c4398
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-1.html
    new file mode 100644
    index 0000000000..8628543827
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-1.html
    @@ -0,0 +1,189 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > JCacheGaugeSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jcache</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: JCacheGaugeSet (com.codahale.metrics.jcache)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">JCacheGaugeSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jcache;
    +&nbsp;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.jvm.JmxAttributeGauge;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;
    +&nbsp;import javax.cache.management.CacheStatisticsMXBean;
    +&nbsp;import javax.management.MalformedObjectNameException;
    +&nbsp;import javax.management.ObjectInstance;
    +&nbsp;import javax.management.ObjectName;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Gauge set retrieving JCache JMX attributes
    +&nbsp; *
    +&nbsp; * @author &lt;a href=&quot;mailto:henri.tremblay@softwareag.com&quot;&gt;Henri Tremblay&lt;/a&gt;
    +&nbsp; * @author &lt;a href=&quot;mailto:anthony.dahanne@softwareag.com&quot;&gt;Anthony Dahanne&lt;/a&gt;
    +&nbsp; */
    +<b class="fc">&nbsp;public class JCacheGaugeSet implements MetricSet {</b>
    +&nbsp;
    +&nbsp;    private static final String M_BEAN_COORDINATES = &quot;javax.cache:type=CacheStatistics,CacheManager=*,Cache=*&quot;;
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JCacheGaugeSet.class);</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        Set&lt;ObjectInstance&gt; cacheBeans = getCacheBeans();</b>
    +<b class="fc">&nbsp;        List&lt;String&gt; availableStatsNames = retrieveStatsNames();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;(cacheBeans.size() * availableStatsNames.size());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (ObjectInstance cacheBean : cacheBeans) {</b>
    +<b class="fc">&nbsp;            ObjectName objectName = cacheBean.getObjectName();</b>
    +<b class="fc">&nbsp;            String cacheName = objectName.getKeyProperty(&quot;Cache&quot;);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (String statsName : availableStatsNames) {</b>
    +<b class="fc">&nbsp;                JmxAttributeGauge jmxAttributeGauge = new JmxAttributeGauge(objectName, statsName);</b>
    +<b class="fc">&nbsp;                gauges.put(name(cacheName, toSpinalCase(statsName)), jmxAttributeGauge);</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Set&lt;ObjectInstance&gt; getCacheBeans() {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return ManagementFactory.getPlatformMBeanServer().queryMBeans(ObjectName.getInstance(M_BEAN_COORDINATES), null);</b>
    +<b class="nc">&nbsp;        } catch (MalformedObjectNameException e) {</b>
    +<b class="nc">&nbsp;            LOGGER.error(&quot;Unable to retrieve {}. Are JCache statistics enabled?&quot;, M_BEAN_COORDINATES);</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private List&lt;String&gt; retrieveStatsNames() {
    +<b class="fc">&nbsp;        Method[] methods = CacheStatisticsMXBean.class.getDeclaredMethods();</b>
    +<b class="fc">&nbsp;        List&lt;String&gt; availableStatsNames = new ArrayList&lt;&gt;(methods.length);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (Method method : methods) {</b>
    +<b class="fc">&nbsp;            String methodName = method.getName();</b>
    +<b class="fc">&nbsp;            if (methodName.startsWith(&quot;get&quot;)) {</b>
    +<b class="fc">&nbsp;                availableStatsNames.add(methodName.substring(3));</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        return availableStatsNames;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static String toSpinalCase(String camelCase) {
    +<b class="fc">&nbsp;        return camelCase.replaceAll(&quot;(.)(\\p{Upper})&quot;, &quot;$1-$2&quot;).toLowerCase(Locale.US);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index.html
    new file mode 100644
    index 0000000000..3ba1d3b948
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..881cc74a62
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..867a8a697e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..e8ca235852
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..40ab3cc985
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..046fcd177a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..8ba6000d21
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..698a1485c0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..16b4a44ec6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..fff40e6c82
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/sources/source-1.html
    new file mode 100644
    index 0000000000..e73fc36601
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/sources/source-1.html
    @@ -0,0 +1,143 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedTimingCollector</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedTimingCollector</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.jdbi.strategies.SmartNameStrategy;
    +&nbsp;import com.codahale.metrics.jdbi.strategies.StatementNameStrategy;
    +&nbsp;import org.skife.jdbi.v2.StatementContext;
    +&nbsp;import org.skife.jdbi.v2.TimingCollector;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link TimingCollector} implementation for JDBI which uses the SQL objects&#39; class names and
    +&nbsp; * method names for millisecond-precision timers.
    +&nbsp; */
    +&nbsp;public class InstrumentedTimingCollector implements TimingCollector {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final StatementNameStrategy statementNameStrategy;
    +&nbsp;
    +&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry,
    +<b class="fc">&nbsp;                                       StatementNameStrategy statementNameStrategy) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void collect(long elapsedTime, StatementContext ctx) {
    +<b class="fc">&nbsp;        final Timer timer = getTimer(ctx);</b>
    +<b class="fc">&nbsp;        timer.update(elapsedTime, TimeUnit.NANOSECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer getTimer(StatementContext ctx) {
    +<b class="fc">&nbsp;        return registry.timer(statementNameStrategy.getStatementName(ctx));</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedHttpClientsTimerTest.java b/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedHttpClientsTimerTest.java
    index 4bbe51043e..0549740c42 100644
    --- a/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedHttpClientsTimerTest.java
    +++ b/metrics-httpasyncclient/src/test/java/com/codahale/metrics/httpasyncclient/InstrumentedHttpClientsTimerTest.java
    @@ -215,18 +215,16 @@ public void timerIsStoppedCorrectlyWithProvidedFutureCallbackAndFailure() throws
          */
         @Test
         public void timerIsStoppedCorrectlyWithExceptionInFutureGet() throws Exception {
    -        // Arrange
             HttpHost host = startServerWithGlobalRequestHandler(STATUS_OK);
             HttpGet get = new HttpGet("/?q=exception");
     
             // Timer hasn't been stopped prior to executing the request
             verify(context, never()).stop();
     
    -        // Act
    +
             Future<HttpResponse> responseFuture = asyncHttpClient.execute(host, get, null);
             responseFuture.get(); // Let the future throw an exception
     
    -        // Assert
             // After the computation throws an exception, the timer must be stopped
             verify(context, timeout(200).times(1)).stop();
         }
    
    From d19fbf30b9ac08b4e3a670a4d4e9632a2f4a7c18 Mon Sep 17 00:00:00 2001
    From: Ovaiz Ali <ov778752@dal.ca>
    Date: Fri, 1 Mar 2024 22:08:11 -0400
    Subject: [PATCH 4/6] Final Commit
    
    ---
     metrics-collectd/pom.xml                      |    6 +
     .../collectd/SecurityConfigurationTest.java   |   51 +
     .../css/coverage.css                          |  154 ++
     .../css/idea.min.css                          |  118 ++
     .../img/arrowDown.gif                         |  Bin 0 -> 89 bytes
     .../img/arrowUp.gif                           |  Bin 0 -> 91 bytes
     .../index.html                                | 1349 ++++++++++++++++
     .../index_SORT_BY_BLOCK.html                  | 1349 ++++++++++++++++
     .../index_SORT_BY_BLOCK_DESC.html             | 1349 ++++++++++++++++
     .../index_SORT_BY_CLASS.html                  | 1349 ++++++++++++++++
     .../index_SORT_BY_CLASS_DESC.html             | 1349 ++++++++++++++++
     .../index_SORT_BY_LINE.html                   | 1349 ++++++++++++++++
     .../index_SORT_BY_LINE_DESC.html              | 1349 ++++++++++++++++
     .../index_SORT_BY_METHOD.html                 | 1349 ++++++++++++++++
     .../index_SORT_BY_METHOD_DESC.html            | 1349 ++++++++++++++++
     .../index_SORT_BY_NAME_DESC.html              | 1349 ++++++++++++++++
     .../js/highlight.min.js                       | 1388 +++++++++++++++++
     .../js/highlightjs-line-numbers.min.js        |   24 +
     .../ns-1/index.html                           | 1287 +++++++++++++++
     .../ns-1/index_SORT_BY_BLOCK.html             | 1287 +++++++++++++++
     .../ns-1/index_SORT_BY_BLOCK_DESC.html        | 1287 +++++++++++++++
     .../ns-1/index_SORT_BY_CLASS.html             | 1287 +++++++++++++++
     .../ns-1/index_SORT_BY_CLASS_DESC.html        | 1287 +++++++++++++++
     .../ns-1/index_SORT_BY_LINE.html              | 1287 +++++++++++++++
     .../ns-1/index_SORT_BY_LINE_DESC.html         | 1287 +++++++++++++++
     .../ns-1/index_SORT_BY_METHOD.html            | 1287 +++++++++++++++
     .../ns-1/index_SORT_BY_METHOD_DESC.html       | 1287 +++++++++++++++
     .../ns-1/index_SORT_BY_NAME_DESC.html         | 1287 +++++++++++++++
     .../ns-1/sources/source-1.html                |  178 +++
     .../ns-1/sources/source-10.html               |  203 +++
     .../ns-1/sources/source-11.html               |  441 ++++++
     .../ns-1/sources/source-12.html               |  222 +++
     .../ns-1/sources/source-13.html               |  137 ++
     .../ns-1/sources/source-14.html               |  136 ++
     .../ns-1/sources/source-15.html               | 1046 +++++++++++++
     .../ns-1/sources/source-16.html               |  275 ++++
     .../ns-1/sources/source-17.html               | 1097 +++++++++++++
     .../ns-1/sources/source-18.html               |  196 +++
     .../ns-1/sources/source-19.html               |  467 ++++++
     .../ns-1/sources/source-1a.html               |  211 +++
     .../ns-1/sources/source-1b.html               |  782 ++++++++++
     .../ns-1/sources/source-1c.html               |  205 +++
     .../ns-1/sources/source-1d.html               |  217 +++
     .../ns-1/sources/source-1e.html               |  161 ++
     .../ns-1/sources/source-1f.html               |  149 ++
     .../ns-1/sources/source-2.html                |  333 ++++
     .../ns-1/sources/source-20.html               |  301 ++++
     .../ns-1/sources/source-21.html               |  199 +++
     .../ns-1/sources/source-22.html               |  147 ++
     .../ns-1/sources/source-23.html               |  277 ++++
     .../ns-1/sources/source-24.html               |  353 +++++
     .../ns-1/sources/source-25.html               |  174 +++
     .../ns-1/sources/source-26.html               |  281 ++++
     .../ns-1/sources/source-27.html               |  345 ++++
     .../ns-1/sources/source-28.html               |   78 +
     .../ns-1/sources/source-29.html               |   82 +
     .../ns-1/sources/source-2a.html               |   85 +
     .../ns-1/sources/source-2b.html               |   81 +
     .../ns-1/sources/source-2c.html               |   89 ++
     .../ns-1/sources/source-2d.html               |  103 ++
     .../ns-1/sources/source-2e.html               |  116 ++
     .../ns-1/sources/source-2f.html               |   81 +
     .../ns-1/sources/source-3.html                |  231 +++
     .../ns-1/sources/source-30.html               |  104 ++
     .../ns-1/sources/source-31.html               |  116 ++
     .../ns-1/sources/source-32.html               |   85 +
     .../ns-1/sources/source-4.html                |  490 ++++++
     .../ns-1/sources/source-5.html                |  160 ++
     .../ns-1/sources/source-6.html                |  477 ++++++
     .../ns-1/sources/source-7.html                |  147 ++
     .../ns-1/sources/source-8.html                |  137 ++
     .../ns-1/sources/source-9.html                |  224 +++
     .../ns-1/sources/source-a.html                |  193 +++
     .../ns-1/sources/source-b.html                |  323 ++++
     .../ns-1/sources/source-c.html                |  125 ++
     .../ns-1/sources/source-d.html                |  162 ++
     .../ns-1/sources/source-e.html                |  390 +++++
     .../ns-1/sources/source-f.html                |  465 ++++++
     .../ns-10/index.html                          |  143 ++
     .../ns-10/index_SORT_BY_BLOCK.html            |  143 ++
     .../ns-10/index_SORT_BY_BLOCK_DESC.html       |  143 ++
     .../ns-10/index_SORT_BY_CLASS.html            |  143 ++
     .../ns-10/index_SORT_BY_CLASS_DESC.html       |  143 ++
     .../ns-10/index_SORT_BY_LINE.html             |  143 ++
     .../ns-10/index_SORT_BY_LINE_DESC.html        |  143 ++
     .../ns-10/index_SORT_BY_METHOD.html           |  143 ++
     .../ns-10/index_SORT_BY_METHOD_DESC.html      |  143 ++
     .../ns-10/index_SORT_BY_NAME_DESC.html        |  143 ++
     .../ns-10/sources/source-1.html               |  143 ++
     .../ns-11/index.html                          |  305 ++++
     .../ns-11/index_SORT_BY_BLOCK.html            |  305 ++++
     .../ns-11/index_SORT_BY_BLOCK_DESC.html       |  305 ++++
     .../ns-11/index_SORT_BY_CLASS.html            |  305 ++++
     .../ns-11/index_SORT_BY_CLASS_DESC.html       |  305 ++++
     .../ns-11/index_SORT_BY_LINE.html             |  305 ++++
     .../ns-11/index_SORT_BY_LINE_DESC.html        |  305 ++++
     .../ns-11/index_SORT_BY_METHOD.html           |  305 ++++
     .../ns-11/index_SORT_BY_METHOD_DESC.html      |  305 ++++
     .../ns-11/index_SORT_BY_NAME_DESC.html        |  305 ++++
     .../ns-11/sources/source-1.html               |  112 ++
     .../ns-11/sources/source-2.html               |  119 ++
     .../ns-11/sources/source-3.html               |  135 ++
     .../ns-11/sources/source-4.html               |  116 ++
     .../ns-11/sources/source-5.html               |  422 +++++
     .../ns-11/sources/source-6.html               |  239 +++
     .../ns-11/sources/source-7.html               |  124 ++
     .../ns-11/sources/source-8.html               |   78 +
     .../ns-12/index.html                          |  170 ++
     .../ns-12/index_SORT_BY_BLOCK.html            |  170 ++
     .../ns-12/index_SORT_BY_BLOCK_DESC.html       |  170 ++
     .../ns-12/index_SORT_BY_CLASS.html            |  170 ++
     .../ns-12/index_SORT_BY_CLASS_DESC.html       |  170 ++
     .../ns-12/index_SORT_BY_LINE.html             |  170 ++
     .../ns-12/index_SORT_BY_LINE_DESC.html        |  170 ++
     .../ns-12/index_SORT_BY_METHOD.html           |  170 ++
     .../ns-12/index_SORT_BY_METHOD_DESC.html      |  170 ++
     .../ns-12/index_SORT_BY_NAME_DESC.html        |  170 ++
     .../ns-12/sources/source-1.html               |  152 ++
     .../ns-12/sources/source-2.html               |  145 ++
     .../ns-13/index.html                          |  278 ++++
     .../ns-13/index_SORT_BY_BLOCK.html            |  278 ++++
     .../ns-13/index_SORT_BY_BLOCK_DESC.html       |  278 ++++
     .../ns-13/index_SORT_BY_CLASS.html            |  278 ++++
     .../ns-13/index_SORT_BY_CLASS_DESC.html       |  278 ++++
     .../ns-13/index_SORT_BY_LINE.html             |  278 ++++
     .../ns-13/index_SORT_BY_LINE_DESC.html        |  278 ++++
     .../ns-13/index_SORT_BY_METHOD.html           |  278 ++++
     .../ns-13/index_SORT_BY_METHOD_DESC.html      |  278 ++++
     .../ns-13/index_SORT_BY_NAME_DESC.html        |  278 ++++
     .../ns-13/sources/source-1.html               |  116 ++
     .../ns-13/sources/source-2.html               |  246 +++
     .../ns-13/sources/source-3.html               |  136 ++
     .../ns-13/sources/source-4.html               |  116 ++
     .../ns-13/sources/source-5.html               |  117 ++
     .../ns-13/sources/source-6.html               |  151 ++
     .../ns-13/sources/source-7.html               |   89 ++
     .../ns-14/index.html                          |  170 ++
     .../ns-14/index_SORT_BY_BLOCK.html            |  170 ++
     .../ns-14/index_SORT_BY_BLOCK_DESC.html       |  170 ++
     .../ns-14/index_SORT_BY_CLASS.html            |  170 ++
     .../ns-14/index_SORT_BY_CLASS_DESC.html       |  170 ++
     .../ns-14/index_SORT_BY_LINE.html             |  170 ++
     .../ns-14/index_SORT_BY_LINE_DESC.html        |  170 ++
     .../ns-14/index_SORT_BY_METHOD.html           |  170 ++
     .../ns-14/index_SORT_BY_METHOD_DESC.html      |  170 ++
     .../ns-14/index_SORT_BY_NAME_DESC.html        |  170 ++
     .../ns-14/sources/source-1.html               |  831 ++++++++++
     .../ns-14/sources/source-2.html               |  201 +++
     .../ns-15/index.html                          |  170 ++
     .../ns-15/index_SORT_BY_BLOCK.html            |  170 ++
     .../ns-15/index_SORT_BY_BLOCK_DESC.html       |  170 ++
     .../ns-15/index_SORT_BY_CLASS.html            |  170 ++
     .../ns-15/index_SORT_BY_CLASS_DESC.html       |  170 ++
     .../ns-15/index_SORT_BY_LINE.html             |  170 ++
     .../ns-15/index_SORT_BY_LINE_DESC.html        |  170 ++
     .../ns-15/index_SORT_BY_METHOD.html           |  170 ++
     .../ns-15/index_SORT_BY_METHOD_DESC.html      |  170 ++
     .../ns-15/index_SORT_BY_NAME_DESC.html        |  170 ++
     .../ns-15/sources/source-1.html               |  832 ++++++++++
     .../ns-15/sources/source-2.html               |  201 +++
     .../ns-16/index.html                          |  251 +++
     .../ns-16/index_SORT_BY_BLOCK.html            |  251 +++
     .../ns-16/index_SORT_BY_BLOCK_DESC.html       |  251 +++
     .../ns-16/index_SORT_BY_CLASS.html            |  251 +++
     .../ns-16/index_SORT_BY_CLASS_DESC.html       |  251 +++
     .../ns-16/index_SORT_BY_LINE.html             |  251 +++
     .../ns-16/index_SORT_BY_LINE_DESC.html        |  251 +++
     .../ns-16/index_SORT_BY_METHOD.html           |  251 +++
     .../ns-16/index_SORT_BY_METHOD_DESC.html      |  251 +++
     .../ns-16/index_SORT_BY_NAME_DESC.html        |  251 +++
     .../ns-16/sources/source-1.html               |  193 +++
     .../ns-16/sources/source-2.html               |  754 +++++++++
     .../ns-16/sources/source-3.html               |  708 +++++++++
     .../ns-16/sources/source-4.html               |  286 ++++
     .../ns-17/index.html                          |  170 ++
     .../ns-17/index_SORT_BY_BLOCK.html            |  170 ++
     .../ns-17/index_SORT_BY_BLOCK_DESC.html       |  170 ++
     .../ns-17/index_SORT_BY_CLASS.html            |  170 ++
     .../ns-17/index_SORT_BY_CLASS_DESC.html       |  170 ++
     .../ns-17/index_SORT_BY_LINE.html             |  170 ++
     .../ns-17/index_SORT_BY_LINE_DESC.html        |  170 ++
     .../ns-17/index_SORT_BY_METHOD.html           |  170 ++
     .../ns-17/index_SORT_BY_METHOD_DESC.html      |  170 ++
     .../ns-17/index_SORT_BY_NAME_DESC.html        |  170 ++
     .../ns-17/sources/source-1.html               |  173 ++
     .../ns-17/sources/source-2.html               | 1061 +++++++++++++
     .../ns-17/sources/source-3.html               |   85 +
     .../ns-18/index.html                          |  170 ++
     .../ns-18/index_SORT_BY_BLOCK.html            |  170 ++
     .../ns-18/index_SORT_BY_BLOCK_DESC.html       |  170 ++
     .../ns-18/index_SORT_BY_CLASS.html            |  170 ++
     .../ns-18/index_SORT_BY_CLASS_DESC.html       |  170 ++
     .../ns-18/index_SORT_BY_LINE.html             |  170 ++
     .../ns-18/index_SORT_BY_LINE_DESC.html        |  170 ++
     .../ns-18/index_SORT_BY_METHOD.html           |  170 ++
     .../ns-18/index_SORT_BY_METHOD_DESC.html      |  170 ++
     .../ns-18/index_SORT_BY_NAME_DESC.html        |  170 ++
     .../ns-18/sources/source-1.html               |  217 +++
     .../ns-18/sources/source-2.html               |  489 ++++++
     .../ns-19/index.html                          |  440 ++++++
     .../ns-19/index_SORT_BY_BLOCK.html            |  440 ++++++
     .../ns-19/index_SORT_BY_BLOCK_DESC.html       |  440 ++++++
     .../ns-19/index_SORT_BY_CLASS.html            |  440 ++++++
     .../ns-19/index_SORT_BY_CLASS_DESC.html       |  440 ++++++
     .../ns-19/index_SORT_BY_LINE.html             |  440 ++++++
     .../ns-19/index_SORT_BY_LINE_DESC.html        |  440 ++++++
     .../ns-19/index_SORT_BY_METHOD.html           |  440 ++++++
     .../ns-19/index_SORT_BY_METHOD_DESC.html      |  440 ++++++
     .../ns-19/index_SORT_BY_NAME_DESC.html        |  440 ++++++
     .../ns-19/sources/source-1.html               |  156 ++
     .../ns-19/sources/source-2.html               |  184 +++
     .../ns-19/sources/source-3.html               |  139 ++
     .../ns-19/sources/source-4.html               |  123 ++
     .../ns-19/sources/source-5.html               |  154 ++
     .../ns-19/sources/source-6.html               |  157 ++
     .../ns-19/sources/source-7.html               |  165 ++
     .../ns-19/sources/source-8.html               |  155 ++
     .../ns-19/sources/source-9.html               |  274 ++++
     .../ns-19/sources/source-a.html               |  169 ++
     .../ns-19/sources/source-b.html               |  217 +++
     .../ns-19/sources/source-c.html               |  185 +++
     .../ns-1a/index.html                          |  143 ++
     .../ns-1a/index_SORT_BY_BLOCK.html            |  143 ++
     .../ns-1a/index_SORT_BY_BLOCK_DESC.html       |  143 ++
     .../ns-1a/index_SORT_BY_CLASS.html            |  143 ++
     .../ns-1a/index_SORT_BY_CLASS_DESC.html       |  143 ++
     .../ns-1a/index_SORT_BY_LINE.html             |  143 ++
     .../ns-1a/index_SORT_BY_LINE_DESC.html        |  143 ++
     .../ns-1a/index_SORT_BY_METHOD.html           |  143 ++
     .../ns-1a/index_SORT_BY_METHOD_DESC.html      |  143 ++
     .../ns-1a/index_SORT_BY_NAME_DESC.html        |  143 ++
     .../ns-1a/sources/source-1.html               |  268 ++++
     .../ns-1b/index.html                          |  143 ++
     .../ns-1b/index_SORT_BY_BLOCK.html            |  143 ++
     .../ns-1b/index_SORT_BY_BLOCK_DESC.html       |  143 ++
     .../ns-1b/index_SORT_BY_CLASS.html            |  143 ++
     .../ns-1b/index_SORT_BY_CLASS_DESC.html       |  143 ++
     .../ns-1b/index_SORT_BY_LINE.html             |  143 ++
     .../ns-1b/index_SORT_BY_LINE_DESC.html        |  143 ++
     .../ns-1b/index_SORT_BY_METHOD.html           |  143 ++
     .../ns-1b/index_SORT_BY_METHOD_DESC.html      |  143 ++
     .../ns-1b/index_SORT_BY_NAME_DESC.html        |  143 ++
     .../ns-1b/sources/source-1.html               |  195 +++
     .../ns-1c/index.html                          |  223 +++
     .../ns-1c/index_SORT_BY_BLOCK.html            |  223 +++
     .../ns-1c/index_SORT_BY_BLOCK_DESC.html       |  223 +++
     .../ns-1c/index_SORT_BY_CLASS.html            |  223 +++
     .../ns-1c/index_SORT_BY_CLASS_DESC.html       |  223 +++
     .../ns-1c/index_SORT_BY_LINE.html             |  223 +++
     .../ns-1c/index_SORT_BY_LINE_DESC.html        |  223 +++
     .../ns-1c/index_SORT_BY_METHOD.html           |  223 +++
     .../ns-1c/index_SORT_BY_METHOD_DESC.html      |  223 +++
     .../ns-1c/index_SORT_BY_NAME_DESC.html        |  223 +++
     .../ns-1c/sources/source-1.html               |  387 +++++
     .../ns-1c/sources/source-2.html               |  152 ++
     .../ns-1c/sources/source-3.html               |  131 ++
     .../ns-1d/index.html                          |  278 ++++
     .../ns-1d/index_SORT_BY_BLOCK.html            |  278 ++++
     .../ns-1d/index_SORT_BY_BLOCK_DESC.html       |  278 ++++
     .../ns-1d/index_SORT_BY_CLASS.html            |  278 ++++
     .../ns-1d/index_SORT_BY_CLASS_DESC.html       |  278 ++++
     .../ns-1d/index_SORT_BY_LINE.html             |  278 ++++
     .../ns-1d/index_SORT_BY_LINE_DESC.html        |  278 ++++
     .../ns-1d/index_SORT_BY_METHOD.html           |  278 ++++
     .../ns-1d/index_SORT_BY_METHOD_DESC.html      |  278 ++++
     .../ns-1d/index_SORT_BY_NAME_DESC.html        |  278 ++++
     .../ns-1d/sources/source-1.html               |  293 ++++
     .../ns-1d/sources/source-2.html               |  183 +++
     .../ns-1d/sources/source-3.html               |  325 ++++
     .../ns-1d/sources/source-4.html               |  329 ++++
     .../ns-1d/sources/source-5.html               |  134 ++
     .../ns-1d/sources/source-6.html               |  159 ++
     .../ns-1e/index.html                          |  143 ++
     .../ns-1e/index_SORT_BY_BLOCK.html            |  143 ++
     .../ns-1e/index_SORT_BY_BLOCK_DESC.html       |  143 ++
     .../ns-1e/index_SORT_BY_CLASS.html            |  143 ++
     .../ns-1e/index_SORT_BY_CLASS_DESC.html       |  143 ++
     .../ns-1e/index_SORT_BY_LINE.html             |  143 ++
     .../ns-1e/index_SORT_BY_LINE_DESC.html        |  143 ++
     .../ns-1e/index_SORT_BY_METHOD.html           |  143 ++
     .../ns-1e/index_SORT_BY_METHOD_DESC.html      |  143 ++
     .../ns-1e/index_SORT_BY_NAME_DESC.html        |  143 ++
     .../ns-1e/sources/source-1.html               |  220 +++
     .../ns-1f/index.html                          |  170 ++
     .../ns-1f/index_SORT_BY_BLOCK.html            |  170 ++
     .../ns-1f/index_SORT_BY_BLOCK_DESC.html       |  170 ++
     .../ns-1f/index_SORT_BY_CLASS.html            |  170 ++
     .../ns-1f/index_SORT_BY_CLASS_DESC.html       |  170 ++
     .../ns-1f/index_SORT_BY_LINE.html             |  170 ++
     .../ns-1f/index_SORT_BY_LINE_DESC.html        |  170 ++
     .../ns-1f/index_SORT_BY_METHOD.html           |  170 ++
     .../ns-1f/index_SORT_BY_METHOD_DESC.html      |  170 ++
     .../ns-1f/index_SORT_BY_NAME_DESC.html        |  170 ++
     .../ns-1f/sources/source-1.html               |  831 ++++++++++
     .../ns-1f/sources/source-2.html               |  201 +++
     .../ns-2/index.html                           |  143 ++
     .../ns-2/index_SORT_BY_BLOCK.html             |  143 ++
     .../ns-2/index_SORT_BY_BLOCK_DESC.html        |  143 ++
     .../ns-2/index_SORT_BY_CLASS.html             |  143 ++
     .../ns-2/index_SORT_BY_CLASS_DESC.html        |  143 ++
     .../ns-2/index_SORT_BY_LINE.html              |  143 ++
     .../ns-2/index_SORT_BY_LINE_DESC.html         |  143 ++
     .../ns-2/index_SORT_BY_METHOD.html            |  143 ++
     .../ns-2/index_SORT_BY_METHOD_DESC.html       |  143 ++
     .../ns-2/index_SORT_BY_NAME_DESC.html         |  143 ++
     .../ns-2/sources/source-1.html                |  127 ++
     .../ns-2/sources/source-2.html                |  133 ++
     .../ns-2/sources/source-3.html                |  121 ++
     .../ns-2/sources/source-4.html                |  107 ++
     .../ns-2/sources/source-5.html                |  121 ++
     .../ns-2/sources/source-6.html                |  103 ++
     .../ns-2/sources/source-7.html                |  113 ++
     .../ns-2/sources/source-8.html                |  107 ++
     .../ns-2/sources/source-9.html                |  116 ++
     .../ns-20/index.html                          |  251 +++
     .../ns-20/index_SORT_BY_BLOCK.html            |  251 +++
     .../ns-20/index_SORT_BY_BLOCK_DESC.html       |  251 +++
     .../ns-20/index_SORT_BY_CLASS.html            |  251 +++
     .../ns-20/index_SORT_BY_CLASS_DESC.html       |  251 +++
     .../ns-20/index_SORT_BY_LINE.html             |  251 +++
     .../ns-20/index_SORT_BY_LINE_DESC.html        |  251 +++
     .../ns-20/index_SORT_BY_METHOD.html           |  251 +++
     .../ns-20/index_SORT_BY_METHOD_DESC.html      |  251 +++
     .../ns-20/index_SORT_BY_NAME_DESC.html        |  251 +++
     .../ns-20/sources/source-1.html               |  193 +++
     .../ns-20/sources/source-2.html               |  746 +++++++++
     .../ns-20/sources/source-3.html               |  706 +++++++++
     .../ns-20/sources/source-4.html               |  345 ++++
     .../ns-21/index.html                          |  251 +++
     .../ns-21/index_SORT_BY_BLOCK.html            |  251 +++
     .../ns-21/index_SORT_BY_BLOCK_DESC.html       |  251 +++
     .../ns-21/index_SORT_BY_CLASS.html            |  251 +++
     .../ns-21/index_SORT_BY_CLASS_DESC.html       |  251 +++
     .../ns-21/index_SORT_BY_LINE.html             |  251 +++
     .../ns-21/index_SORT_BY_LINE_DESC.html        |  251 +++
     .../ns-21/index_SORT_BY_METHOD.html           |  251 +++
     .../ns-21/index_SORT_BY_METHOD_DESC.html      |  251 +++
     .../ns-21/index_SORT_BY_NAME_DESC.html        |  251 +++
     .../ns-21/sources/source-1.html               |  193 +++
     .../ns-21/sources/source-2.html               |  745 +++++++++
     .../ns-21/sources/source-3.html               |  706 +++++++++
     .../ns-21/sources/source-4.html               |  345 ++++
     .../ns-22/index.html                          |  197 +++
     .../ns-22/index_SORT_BY_BLOCK.html            |  197 +++
     .../ns-22/index_SORT_BY_BLOCK_DESC.html       |  197 +++
     .../ns-22/index_SORT_BY_CLASS.html            |  197 +++
     .../ns-22/index_SORT_BY_CLASS_DESC.html       |  197 +++
     .../ns-22/index_SORT_BY_LINE.html             |  197 +++
     .../ns-22/index_SORT_BY_LINE_DESC.html        |  197 +++
     .../ns-22/index_SORT_BY_METHOD.html           |  197 +++
     .../ns-22/index_SORT_BY_METHOD_DESC.html      |  197 +++
     .../ns-22/index_SORT_BY_NAME_DESC.html        |  197 +++
     .../ns-22/sources/source-1.html               |  584 +++++++
     .../ns-22/sources/source-2.html               |  193 +++
     .../ns-22/sources/source-3.html               |  336 ++++
     .../ns-23/index.html                          |  167 ++
     .../ns-23/index_SORT_BY_BLOCK.html            |  167 ++
     .../ns-23/index_SORT_BY_BLOCK_DESC.html       |  167 ++
     .../ns-23/index_SORT_BY_CLASS.html            |  167 ++
     .../ns-23/index_SORT_BY_CLASS_DESC.html       |  167 ++
     .../ns-23/index_SORT_BY_LINE.html             |  167 ++
     .../ns-23/index_SORT_BY_LINE_DESC.html        |  167 ++
     .../ns-23/index_SORT_BY_METHOD.html           |  167 ++
     .../ns-23/index_SORT_BY_METHOD_DESC.html      |  167 ++
     .../ns-23/index_SORT_BY_NAME_DESC.html        |  167 ++
     .../ns-23/sources/source-1.html               |  348 +++++
     .../ns-24/index.html                          |  143 ++
     .../ns-24/index_SORT_BY_BLOCK.html            |  143 ++
     .../ns-24/index_SORT_BY_BLOCK_DESC.html       |  143 ++
     .../ns-24/index_SORT_BY_CLASS.html            |  143 ++
     .../ns-24/index_SORT_BY_CLASS_DESC.html       |  143 ++
     .../ns-24/index_SORT_BY_LINE.html             |  143 ++
     .../ns-24/index_SORT_BY_LINE_DESC.html        |  143 ++
     .../ns-24/index_SORT_BY_METHOD.html           |  143 ++
     .../ns-24/index_SORT_BY_METHOD_DESC.html      |  143 ++
     .../ns-24/index_SORT_BY_NAME_DESC.html        |  143 ++
     .../ns-24/sources/source-1.html               |  195 +++
     .../ns-25/index.html                          |  143 ++
     .../ns-25/index_SORT_BY_BLOCK.html            |  143 ++
     .../ns-25/index_SORT_BY_BLOCK_DESC.html       |  143 ++
     .../ns-25/index_SORT_BY_CLASS.html            |  143 ++
     .../ns-25/index_SORT_BY_CLASS_DESC.html       |  143 ++
     .../ns-25/index_SORT_BY_LINE.html             |  143 ++
     .../ns-25/index_SORT_BY_LINE_DESC.html        |  143 ++
     .../ns-25/index_SORT_BY_METHOD.html           |  143 ++
     .../ns-25/index_SORT_BY_METHOD_DESC.html      |  143 ++
     .../ns-25/index_SORT_BY_NAME_DESC.html        |  143 ++
     .../ns-25/sources/source-1.html               |  195 +++
     .../ns-26/index.html                          |  143 ++
     .../ns-26/index_SORT_BY_BLOCK.html            |  143 ++
     .../ns-26/index_SORT_BY_BLOCK_DESC.html       |  143 ++
     .../ns-26/index_SORT_BY_CLASS.html            |  143 ++
     .../ns-26/index_SORT_BY_CLASS_DESC.html       |  143 ++
     .../ns-26/index_SORT_BY_LINE.html             |  143 ++
     .../ns-26/index_SORT_BY_LINE_DESC.html        |  143 ++
     .../ns-26/index_SORT_BY_METHOD.html           |  143 ++
     .../ns-26/index_SORT_BY_METHOD_DESC.html      |  143 ++
     .../ns-26/index_SORT_BY_NAME_DESC.html        |  143 ++
     .../ns-26/sources/source-1.html               |  195 +++
     .../ns-27/index.html                          |  223 +++
     .../ns-27/index_SORT_BY_BLOCK.html            |  223 +++
     .../ns-27/index_SORT_BY_BLOCK_DESC.html       |  223 +++
     .../ns-27/index_SORT_BY_CLASS.html            |  223 +++
     .../ns-27/index_SORT_BY_CLASS_DESC.html       |  223 +++
     .../ns-27/index_SORT_BY_LINE.html             |  223 +++
     .../ns-27/index_SORT_BY_LINE_DESC.html        |  223 +++
     .../ns-27/index_SORT_BY_METHOD.html           |  223 +++
     .../ns-27/index_SORT_BY_METHOD_DESC.html      |  223 +++
     .../ns-27/index_SORT_BY_NAME_DESC.html        |  223 +++
     .../ns-27/sources/source-1.html               |  387 +++++
     .../ns-27/sources/source-2.html               |  152 ++
     .../ns-27/sources/source-3.html               |  130 ++
     .../ns-28/index.html                          |  223 +++
     .../ns-28/index_SORT_BY_BLOCK.html            |  223 +++
     .../ns-28/index_SORT_BY_BLOCK_DESC.html       |  223 +++
     .../ns-28/index_SORT_BY_CLASS.html            |  223 +++
     .../ns-28/index_SORT_BY_CLASS_DESC.html       |  223 +++
     .../ns-28/index_SORT_BY_LINE.html             |  223 +++
     .../ns-28/index_SORT_BY_LINE_DESC.html        |  223 +++
     .../ns-28/index_SORT_BY_METHOD.html           |  223 +++
     .../ns-28/index_SORT_BY_METHOD_DESC.html      |  223 +++
     .../ns-28/index_SORT_BY_NAME_DESC.html        |  223 +++
     .../ns-28/sources/source-1.html               |  380 +++++
     .../ns-28/sources/source-2.html               |  152 ++
     .../ns-28/sources/source-3.html               |  130 ++
     .../ns-29/index.html                          |  278 ++++
     .../ns-29/index_SORT_BY_BLOCK.html            |  278 ++++
     .../ns-29/index_SORT_BY_BLOCK_DESC.html       |  278 ++++
     .../ns-29/index_SORT_BY_CLASS.html            |  278 ++++
     .../ns-29/index_SORT_BY_CLASS_DESC.html       |  278 ++++
     .../ns-29/index_SORT_BY_LINE.html             |  278 ++++
     .../ns-29/index_SORT_BY_LINE_DESC.html        |  278 ++++
     .../ns-29/index_SORT_BY_METHOD.html           |  278 ++++
     .../ns-29/index_SORT_BY_METHOD_DESC.html      |  278 ++++
     .../ns-29/index_SORT_BY_NAME_DESC.html        |  278 ++++
     .../ns-29/sources/source-1.html               |  294 ++++
     .../ns-29/sources/source-2.html               |  183 +++
     .../ns-29/sources/source-3.html               |  325 ++++
     .../ns-29/sources/source-4.html               |  328 ++++
     .../ns-29/sources/source-5.html               |  135 ++
     .../ns-29/sources/source-6.html               |  159 ++
     .../ns-3/index.html                           |  251 +++
     .../ns-3/index_SORT_BY_BLOCK.html             |  251 +++
     .../ns-3/index_SORT_BY_BLOCK_DESC.html        |  251 +++
     .../ns-3/index_SORT_BY_CLASS.html             |  251 +++
     .../ns-3/index_SORT_BY_CLASS_DESC.html        |  251 +++
     .../ns-3/index_SORT_BY_LINE.html              |  251 +++
     .../ns-3/index_SORT_BY_LINE_DESC.html         |  251 +++
     .../ns-3/index_SORT_BY_METHOD.html            |  251 +++
     .../ns-3/index_SORT_BY_METHOD_DESC.html       |  251 +++
     .../ns-3/index_SORT_BY_NAME_DESC.html         |  251 +++
     .../ns-3/sources/source-1.html                |  176 +++
     .../ns-3/sources/source-2.html                |  142 ++
     .../ns-3/sources/source-3.html                |  142 ++
     .../ns-3/sources/source-4.html                |  192 +++
     .../ns-3/sources/source-5.html                |  184 +++
     .../ns-4/index.html                           | 1077 +++++++++++++
     .../ns-4/index_SORT_BY_BLOCK.html             | 1077 +++++++++++++
     .../ns-4/index_SORT_BY_BLOCK_DESC.html        | 1077 +++++++++++++
     .../ns-4/index_SORT_BY_CLASS.html             | 1077 +++++++++++++
     .../ns-4/index_SORT_BY_CLASS_DESC.html        | 1077 +++++++++++++
     .../ns-4/index_SORT_BY_LINE.html              | 1077 +++++++++++++
     .../ns-4/index_SORT_BY_LINE_DESC.html         | 1077 +++++++++++++
     .../ns-4/index_SORT_BY_METHOD.html            | 1077 +++++++++++++
     .../ns-4/index_SORT_BY_METHOD_DESC.html       | 1077 +++++++++++++
     .../ns-4/index_SORT_BY_NAME_DESC.html         | 1077 +++++++++++++
     .../ns-4/sources/source-1.html                |  108 ++
     .../ns-4/sources/source-10.html               |  108 ++
     .../ns-4/sources/source-11.html               |  124 ++
     .../ns-4/sources/source-12.html               |  126 ++
     .../ns-4/sources/source-13.html               |  124 ++
     .../ns-4/sources/source-14.html               |  484 ++++++
     .../ns-4/sources/source-15.html               |  484 ++++++
     .../ns-4/sources/source-16.html               |  484 ++++++
     .../ns-4/sources/source-17.html               |  484 ++++++
     .../ns-4/sources/source-18.html               |  484 ++++++
     .../ns-4/sources/source-19.html               |  484 ++++++
     .../ns-4/sources/source-1a.html               |  724 +++++++++
     .../ns-4/sources/source-1b.html               |  108 ++
     .../ns-4/sources/source-1c.html               |  124 ++
     .../ns-4/sources/source-1d.html               |  126 ++
     .../ns-4/sources/source-1e.html               |  124 ++
     .../ns-4/sources/source-1f.html               |  724 +++++++++
     .../ns-4/sources/source-2.html                |  124 ++
     .../ns-4/sources/source-3.html                |  126 ++
     .../ns-4/sources/source-4.html                |  124 ++
     .../ns-4/sources/source-5.html                |  484 ++++++
     .../ns-4/sources/source-6.html                |  108 ++
     .../ns-4/sources/source-7.html                |  124 ++
     .../ns-4/sources/source-8.html                |  126 ++
     .../ns-4/sources/source-9.html                |  124 ++
     .../ns-4/sources/source-a.html                |  484 ++++++
     .../ns-4/sources/source-b.html                |  108 ++
     .../ns-4/sources/source-c.html                |  124 ++
     .../ns-4/sources/source-d.html                |  126 ++
     .../ns-4/sources/source-e.html                |  124 ++
     .../ns-4/sources/source-f.html                |  484 ++++++
     .../ns-5/index.html                           |  167 ++
     .../ns-5/index_SORT_BY_BLOCK.html             |  167 ++
     .../ns-5/index_SORT_BY_BLOCK_DESC.html        |  167 ++
     .../ns-5/index_SORT_BY_CLASS.html             |  167 ++
     .../ns-5/index_SORT_BY_CLASS_DESC.html        |  167 ++
     .../ns-5/index_SORT_BY_LINE.html              |  167 ++
     .../ns-5/index_SORT_BY_LINE_DESC.html         |  167 ++
     .../ns-5/index_SORT_BY_METHOD.html            |  167 ++
     .../ns-5/index_SORT_BY_METHOD_DESC.html       |  167 ++
     .../ns-5/index_SORT_BY_NAME_DESC.html         |  167 ++
     .../ns-5/sources/source-1.html                |  250 +++
     .../ns-6/index.html                           |  305 ++++
     .../ns-6/index_SORT_BY_BLOCK.html             |  305 ++++
     .../ns-6/index_SORT_BY_BLOCK_DESC.html        |  305 ++++
     .../ns-6/index_SORT_BY_CLASS.html             |  305 ++++
     .../ns-6/index_SORT_BY_CLASS_DESC.html        |  305 ++++
     .../ns-6/index_SORT_BY_LINE.html              |  305 ++++
     .../ns-6/index_SORT_BY_LINE_DESC.html         |  305 ++++
     .../ns-6/index_SORT_BY_METHOD.html            |  305 ++++
     .../ns-6/index_SORT_BY_METHOD_DESC.html       |  305 ++++
     .../ns-6/index_SORT_BY_NAME_DESC.html         |  305 ++++
     .../ns-6/sources/source-1.html                |  470 ++++++
     .../ns-6/sources/source-2.html                |  228 +++
     .../ns-6/sources/source-3.html                |  424 +++++
     .../ns-6/sources/source-4.html                |  150 ++
     .../ns-6/sources/source-5.html                |  134 ++
     .../ns-6/sources/source-6.html                |  112 ++
     .../ns-6/sources/source-7.html                |  154 ++
     .../ns-7/index.html                           |  170 ++
     .../ns-7/index_SORT_BY_BLOCK.html             |  170 ++
     .../ns-7/index_SORT_BY_BLOCK_DESC.html        |  170 ++
     .../ns-7/index_SORT_BY_CLASS.html             |  170 ++
     .../ns-7/index_SORT_BY_CLASS_DESC.html        |  170 ++
     .../ns-7/index_SORT_BY_LINE.html              |  170 ++
     .../ns-7/index_SORT_BY_LINE_DESC.html         |  170 ++
     .../ns-7/index_SORT_BY_METHOD.html            |  170 ++
     .../ns-7/index_SORT_BY_METHOD_DESC.html       |  170 ++
     .../ns-7/index_SORT_BY_NAME_DESC.html         |  170 ++
     .../ns-7/sources/source-1.html                |  128 ++
     .../ns-7/sources/source-2.html                |  335 ++++
     .../ns-8/index.html                           |  278 ++++
     .../ns-8/index_SORT_BY_BLOCK.html             |  278 ++++
     .../ns-8/index_SORT_BY_BLOCK_DESC.html        |  278 ++++
     .../ns-8/index_SORT_BY_CLASS.html             |  278 ++++
     .../ns-8/index_SORT_BY_CLASS_DESC.html        |  278 ++++
     .../ns-8/index_SORT_BY_LINE.html              |  278 ++++
     .../ns-8/index_SORT_BY_LINE_DESC.html         |  278 ++++
     .../ns-8/index_SORT_BY_METHOD.html            |  278 ++++
     .../ns-8/index_SORT_BY_METHOD_DESC.html       |  278 ++++
     .../ns-8/index_SORT_BY_NAME_DESC.html         |  278 ++++
     .../ns-8/sources/source-1.html                |  305 ++++
     .../ns-8/sources/source-2.html                |  293 ++++
     .../ns-8/sources/source-3.html                |  655 ++++++++
     .../ns-8/sources/source-4.html                |  120 ++
     .../ns-8/sources/source-5.html                |  222 +++
     .../ns-8/sources/source-6.html                |  467 ++++++
     .../ns-8/sources/source-7.html                |  113 ++
     .../ns-9/index.html                           |  251 +++
     .../ns-9/index_SORT_BY_BLOCK.html             |  251 +++
     .../ns-9/index_SORT_BY_BLOCK_DESC.html        |  251 +++
     .../ns-9/index_SORT_BY_CLASS.html             |  251 +++
     .../ns-9/index_SORT_BY_CLASS_DESC.html        |  251 +++
     .../ns-9/index_SORT_BY_LINE.html              |  251 +++
     .../ns-9/index_SORT_BY_LINE_DESC.html         |  251 +++
     .../ns-9/index_SORT_BY_METHOD.html            |  251 +++
     .../ns-9/index_SORT_BY_METHOD_DESC.html       |  251 +++
     .../ns-9/index_SORT_BY_NAME_DESC.html         |  251 +++
     .../ns-9/sources/source-1.html                |  184 +++
     .../ns-9/sources/source-2.html                |  546 +++++++
     .../ns-9/sources/source-3.html                |  125 ++
     .../ns-9/sources/source-4.html                |  418 +++++
     .../ns-9/sources/source-5.html                |  210 +++
     .../ns-9/sources/source-6.html                |  103 ++
     .../ns-a/index.html                           |  143 ++
     .../ns-a/index_SORT_BY_BLOCK.html             |  143 ++
     .../ns-a/index_SORT_BY_BLOCK_DESC.html        |  143 ++
     .../ns-a/index_SORT_BY_CLASS.html             |  143 ++
     .../ns-a/index_SORT_BY_CLASS_DESC.html        |  143 ++
     .../ns-a/index_SORT_BY_LINE.html              |  143 ++
     .../ns-a/index_SORT_BY_LINE_DESC.html         |  143 ++
     .../ns-a/index_SORT_BY_METHOD.html            |  143 ++
     .../ns-a/index_SORT_BY_METHOD_DESC.html       |  143 ++
     .../ns-a/index_SORT_BY_NAME_DESC.html         |  143 ++
     .../ns-a/sources/source-1.html                |  205 +++
     .../ns-b/index.html                           |  143 ++
     .../ns-b/index_SORT_BY_BLOCK.html             |  143 ++
     .../ns-b/index_SORT_BY_BLOCK_DESC.html        |  143 ++
     .../ns-b/index_SORT_BY_CLASS.html             |  143 ++
     .../ns-b/index_SORT_BY_CLASS_DESC.html        |  143 ++
     .../ns-b/index_SORT_BY_LINE.html              |  143 ++
     .../ns-b/index_SORT_BY_LINE_DESC.html         |  143 ++
     .../ns-b/index_SORT_BY_METHOD.html            |  143 ++
     .../ns-b/index_SORT_BY_METHOD_DESC.html       |  143 ++
     .../ns-b/index_SORT_BY_NAME_DESC.html         |  143 ++
     .../ns-b/sources/source-1.html                |  142 ++
     .../ns-c/index.html                           |  170 ++
     .../ns-c/index_SORT_BY_BLOCK.html             |  170 ++
     .../ns-c/index_SORT_BY_BLOCK_DESC.html        |  170 ++
     .../ns-c/index_SORT_BY_CLASS.html             |  170 ++
     .../ns-c/index_SORT_BY_CLASS_DESC.html        |  170 ++
     .../ns-c/index_SORT_BY_LINE.html              |  170 ++
     .../ns-c/index_SORT_BY_LINE_DESC.html         |  170 ++
     .../ns-c/index_SORT_BY_METHOD.html            |  170 ++
     .../ns-c/index_SORT_BY_METHOD_DESC.html       |  170 ++
     .../ns-c/index_SORT_BY_NAME_DESC.html         |  170 ++
     .../ns-c/sources/source-1.html                |  140 ++
     .../ns-c/sources/source-2.html                |  268 ++++
     .../ns-d/index.html                           |  251 +++
     .../ns-d/index_SORT_BY_BLOCK.html             |  251 +++
     .../ns-d/index_SORT_BY_BLOCK_DESC.html        |  251 +++
     .../ns-d/index_SORT_BY_CLASS.html             |  251 +++
     .../ns-d/index_SORT_BY_CLASS_DESC.html        |  251 +++
     .../ns-d/index_SORT_BY_LINE.html              |  251 +++
     .../ns-d/index_SORT_BY_LINE_DESC.html         |  251 +++
     .../ns-d/index_SORT_BY_METHOD.html            |  251 +++
     .../ns-d/index_SORT_BY_METHOD_DESC.html       |  251 +++
     .../ns-d/index_SORT_BY_NAME_DESC.html         |  251 +++
     .../ns-d/sources/source-1.html                |  165 ++
     .../ns-d/sources/source-2.html                |  146 ++
     .../ns-d/sources/source-3.html                |  330 ++++
     .../ns-d/sources/source-4.html                |  138 ++
     .../ns-d/sources/source-5.html                |  166 ++
     .../ns-e/index.html                           |  332 ++++
     .../ns-e/index_SORT_BY_BLOCK.html             |  332 ++++
     .../ns-e/index_SORT_BY_BLOCK_DESC.html        |  332 ++++
     .../ns-e/index_SORT_BY_CLASS.html             |  332 ++++
     .../ns-e/index_SORT_BY_CLASS_DESC.html        |  332 ++++
     .../ns-e/index_SORT_BY_LINE.html              |  332 ++++
     .../ns-e/index_SORT_BY_LINE_DESC.html         |  332 ++++
     .../ns-e/index_SORT_BY_METHOD.html            |  332 ++++
     .../ns-e/index_SORT_BY_METHOD_DESC.html       |  332 ++++
     .../ns-e/index_SORT_BY_NAME_DESC.html         |  332 ++++
     .../ns-e/sources/source-1.html                |  152 ++
     .../ns-e/sources/source-2.html                |  137 ++
     .../ns-e/sources/source-3.html                |  285 ++++
     .../ns-e/sources/source-4.html                |  229 +++
     .../ns-e/sources/source-5.html                |  147 ++
     .../ns-e/sources/source-6.html                |  308 ++++
     .../ns-e/sources/source-7.html                |  138 ++
     .../ns-e/sources/source-8.html                |  182 +++
     .../ns-f/index.html                           |  143 ++
     .../ns-f/index_SORT_BY_BLOCK.html             |  143 ++
     .../ns-f/index_SORT_BY_BLOCK_DESC.html        |  143 ++
     .../ns-f/index_SORT_BY_CLASS.html             |  143 ++
     .../ns-f/index_SORT_BY_CLASS_DESC.html        |  143 ++
     .../ns-f/index_SORT_BY_LINE.html              |  143 ++
     .../ns-f/index_SORT_BY_LINE_DESC.html         |  143 ++
     .../ns-f/index_SORT_BY_METHOD.html            |  143 ++
     .../ns-f/index_SORT_BY_METHOD_DESC.html       |  143 ++
     .../ns-f/index_SORT_BY_NAME_DESC.html         |  143 ++
     .../ns-f/sources/source-1.html                |  189 +++
     .../index.html                                |  173 +-
     .../index_SORT_BY_BLOCK.html                  |  267 ++--
     .../index_SORT_BY_BLOCK_DESC.html             |  269 ++--
     .../index_SORT_BY_CLASS.html                  |  195 ++-
     .../index_SORT_BY_CLASS_DESC.html             |  195 ++-
     .../index_SORT_BY_LINE.html                   |  163 +-
     .../index_SORT_BY_LINE_DESC.html              |  163 +-
     .../index_SORT_BY_METHOD.html                 |  193 ++-
     .../index_SORT_BY_METHOD_DESC.html            |  193 ++-
     .../index_SORT_BY_NAME_DESC.html              |  173 +-
     .../ns-1/index.html                           |   69 +-
     .../ns-1/index_SORT_BY_BLOCK.html             |  377 +++--
     .../ns-1/index_SORT_BY_BLOCK_DESC.html        |  377 +++--
     .../ns-1/index_SORT_BY_CLASS.html             |   69 +-
     .../ns-1/index_SORT_BY_CLASS_DESC.html        |   69 +-
     .../ns-1/index_SORT_BY_LINE.html              |   69 +-
     .../ns-1/index_SORT_BY_LINE_DESC.html         |   69 +-
     .../ns-1/index_SORT_BY_METHOD.html            |   69 +-
     .../ns-1/index_SORT_BY_METHOD_DESC.html       |   69 +-
     .../ns-1/index_SORT_BY_NAME_DESC.html         |   69 +-
     .../ns-1/sources/source-1.html                |    2 +-
     .../ns-1/sources/source-10.html               |    2 +-
     .../ns-1/sources/source-11.html               |    2 +-
     .../ns-1/sources/source-12.html               |   16 +-
     .../ns-1/sources/source-13.html               |    2 +-
     .../ns-1/sources/source-14.html               |    2 +-
     .../ns-1/sources/source-15.html               |   76 +-
     .../ns-1/sources/source-16.html               |   26 +-
     .../ns-1/sources/source-17.html               |    2 +-
     .../ns-1/sources/source-18.html               |    2 +-
     .../ns-1/sources/source-19.html               |    2 +-
     .../ns-1/sources/source-1a.html               |    2 +-
     .../ns-1/sources/source-1b.html               |    2 +-
     .../ns-1/sources/source-1c.html               |    2 +-
     .../ns-1/sources/source-1d.html               |    2 +-
     .../ns-1/sources/source-1e.html               |    2 +-
     .../ns-1/sources/source-1f.html               |    2 +-
     .../ns-1/sources/source-2.html                |    2 +-
     .../ns-1/sources/source-20.html               |    2 +-
     .../ns-1/sources/source-21.html               |    2 +-
     .../ns-1/sources/source-22.html               |    2 +-
     .../ns-1/sources/source-23.html               |   32 +-
     .../ns-1/sources/source-24.html               |   24 +-
     .../ns-1/sources/source-25.html               |    2 +-
     .../ns-1/sources/source-26.html               |    2 +-
     .../ns-1/sources/source-27.html               |   54 +-
     .../ns-1/sources/source-28.html               |    2 +-
     .../ns-1/sources/source-29.html               |   23 +-
     .../ns-1/sources/source-2a.html               |   25 +-
     .../ns-1/sources/source-2b.html               |   49 +-
     .../ns-1/sources/source-2c.html               |   57 +-
     .../ns-1/sources/source-2d.html               |   23 +-
     .../ns-1/sources/source-2e.html               |   46 +-
     .../ns-1/sources/source-2f.html               |    2 +-
     .../ns-1/sources/source-3.html                |   26 +-
     .../ns-1/sources/source-30.html               |   20 +-
     .../ns-1/sources/source-31.html               |   20 +-
     .../ns-1/sources/source-32.html               |   77 +-
     .../ns-1/sources/source-4.html                |    2 +-
     .../ns-1/sources/source-5.html                |    2 +-
     .../ns-1/sources/source-6.html                |    2 +-
     .../ns-1/sources/source-7.html                |    2 +-
     .../ns-1/sources/source-8.html                |    2 +-
     .../ns-1/sources/source-9.html                |   16 +-
     .../ns-1/sources/source-a.html                |   20 +-
     .../ns-1/sources/source-b.html                |   30 +-
     .../ns-1/sources/source-c.html                |    2 +-
     .../ns-1/sources/source-d.html                |    2 +-
     .../ns-1/sources/source-e.html                |    2 +-
     .../ns-1/sources/source-f.html                |    2 +-
     .../ns-10/index.html                          |  192 +--
     .../ns-10/index_SORT_BY_BLOCK.html            |  192 +--
     .../ns-10/index_SORT_BY_BLOCK_DESC.html       |  192 +--
     .../ns-10/index_SORT_BY_CLASS.html            |  192 +--
     .../ns-10/index_SORT_BY_CLASS_DESC.html       |  192 +--
     .../ns-10/index_SORT_BY_LINE.html             |  194 +--
     .../ns-10/index_SORT_BY_LINE_DESC.html        |  192 +--
     .../ns-10/index_SORT_BY_METHOD.html           |  192 +--
     .../ns-10/index_SORT_BY_METHOD_DESC.html      |  192 +--
     .../ns-10/index_SORT_BY_NAME_DESC.html        |  192 +--
     .../ns-10/sources/source-1.html               |   63 +-
     .../ns-11/index.html                          |  173 +-
     .../ns-11/index_SORT_BY_BLOCK.html            |  173 +-
     .../ns-11/index_SORT_BY_BLOCK_DESC.html       |  171 +-
     .../ns-11/index_SORT_BY_CLASS.html            |  173 +-
     .../ns-11/index_SORT_BY_CLASS_DESC.html       |  171 +-
     .../ns-11/index_SORT_BY_LINE.html             |  173 +-
     .../ns-11/index_SORT_BY_LINE_DESC.html        |  173 +-
     .../ns-11/index_SORT_BY_METHOD.html           |  175 ++-
     .../ns-11/index_SORT_BY_METHOD_DESC.html      |  177 ++-
     .../ns-11/index_SORT_BY_NAME_DESC.html        |  171 +-
     .../ns-11/sources/source-1.html               |   72 +-
     .../ns-11/sources/source-2.html               |   66 +-
     .../ns-11/sources/source-3.html               |  135 ++
     .../ns-11/sources/source-4.html               |  116 ++
     .../ns-11/sources/source-5.html               |  422 +++++
     .../ns-11/sources/source-6.html               |  239 +++
     .../ns-11/sources/source-7.html               |  124 ++
     .../ns-11/sources/source-8.html               |   78 +
     .../ns-12/index.html                          |  148 +-
     .../ns-12/index_SORT_BY_BLOCK.html            |  148 +-
     .../ns-12/index_SORT_BY_BLOCK_DESC.html       |  148 +-
     .../ns-12/index_SORT_BY_CLASS.html            |  148 +-
     .../ns-12/index_SORT_BY_CLASS_DESC.html       |  148 +-
     .../ns-12/index_SORT_BY_LINE.html             |  148 +-
     .../ns-12/index_SORT_BY_LINE_DESC.html        |  148 +-
     .../ns-12/index_SORT_BY_METHOD.html           |  148 +-
     .../ns-12/index_SORT_BY_METHOD_DESC.html      |  148 +-
     .../ns-12/index_SORT_BY_NAME_DESC.html        |  148 +-
     .../ns-12/sources/source-1.html               |   66 +-
     .../ns-12/sources/source-2.html               |  187 +--
     .../ns-13/index.html                          |  148 +-
     .../ns-13/index_SORT_BY_BLOCK.html            |  148 +-
     .../ns-13/index_SORT_BY_BLOCK_DESC.html       |  148 +-
     .../ns-13/index_SORT_BY_CLASS.html            |  148 +-
     .../ns-13/index_SORT_BY_CLASS_DESC.html       |  148 +-
     .../ns-13/index_SORT_BY_LINE.html             |  148 +-
     .../ns-13/index_SORT_BY_LINE_DESC.html        |  148 +-
     .../ns-13/index_SORT_BY_METHOD.html           |  148 +-
     .../ns-13/index_SORT_BY_METHOD_DESC.html      |  150 +-
     .../ns-13/index_SORT_BY_NAME_DESC.html        |  148 +-
     .../ns-13/sources/source-1.html               |  747 +--------
     .../ns-13/sources/source-2.html               |  237 +--
     .../ns-13/sources/source-3.html               |  136 ++
     .../ns-13/sources/source-4.html               |  116 ++
     .../ns-13/sources/source-5.html               |  117 ++
     .../ns-13/sources/source-6.html               |  151 ++
     .../ns-13/sources/source-7.html               |   89 ++
     .../ns-14/index.html                          |   10 +-
     .../ns-14/index_SORT_BY_BLOCK.html            |   10 +-
     .../ns-14/index_SORT_BY_BLOCK_DESC.html       |   10 +-
     .../ns-14/index_SORT_BY_CLASS.html            |   10 +-
     .../ns-14/index_SORT_BY_CLASS_DESC.html       |   10 +-
     .../ns-14/index_SORT_BY_LINE.html             |   10 +-
     .../ns-14/index_SORT_BY_LINE_DESC.html        |   10 +-
     .../ns-14/index_SORT_BY_METHOD.html           |   10 +-
     .../ns-14/index_SORT_BY_METHOD_DESC.html      |   10 +-
     .../ns-14/index_SORT_BY_NAME_DESC.html        |   10 +-
     .../ns-14/sources/source-1.html               |   29 +-
     .../ns-14/sources/source-2.html               |   16 +-
     .../ns-15/index.html                          |  125 +-
     .../ns-15/index_SORT_BY_BLOCK.html            |  125 +-
     .../ns-15/index_SORT_BY_BLOCK_DESC.html       |  125 +-
     .../ns-15/index_SORT_BY_CLASS.html            |  125 +-
     .../ns-15/index_SORT_BY_CLASS_DESC.html       |  125 +-
     .../ns-15/index_SORT_BY_LINE.html             |  127 +-
     .../ns-15/index_SORT_BY_LINE_DESC.html        |  127 +-
     .../ns-15/index_SORT_BY_METHOD.html           |  127 +-
     .../ns-15/index_SORT_BY_METHOD_DESC.html      |  127 +-
     .../ns-15/index_SORT_BY_NAME_DESC.html        |  125 +-
     .../ns-15/sources/source-1.html               |  751 ++++++++-
     .../ns-15/sources/source-2.html               |  719 +--------
     .../ns-16/index.html                          |  125 +-
     .../ns-16/index_SORT_BY_BLOCK.html            |  125 +-
     .../ns-16/index_SORT_BY_BLOCK_DESC.html       |  125 +-
     .../ns-16/index_SORT_BY_CLASS.html            |  125 +-
     .../ns-16/index_SORT_BY_CLASS_DESC.html       |  125 +-
     .../ns-16/index_SORT_BY_LINE.html             |  123 +-
     .../ns-16/index_SORT_BY_LINE_DESC.html        |  125 +-
     .../ns-16/index_SORT_BY_METHOD.html           |  123 +-
     .../ns-16/index_SORT_BY_METHOD_DESC.html      |  121 +-
     .../ns-16/index_SORT_BY_NAME_DESC.html        |  125 +-
     .../ns-16/sources/source-1.html               |  156 +-
     .../ns-16/sources/source-2.html               | 1197 ++++++--------
     .../ns-16/sources/source-3.html               |  645 +++++++-
     .../ns-16/sources/source-4.html               |  286 ++++
     .../ns-17/index.html                          |   42 +-
     .../ns-17/index_SORT_BY_BLOCK.html            |   42 +-
     .../ns-17/index_SORT_BY_BLOCK_DESC.html       |   42 +-
     .../ns-17/index_SORT_BY_CLASS.html            |   42 +-
     .../ns-17/index_SORT_BY_CLASS_DESC.html       |   42 +-
     .../ns-17/index_SORT_BY_LINE.html             |   44 +-
     .../ns-17/index_SORT_BY_LINE_DESC.html        |   44 +-
     .../ns-17/index_SORT_BY_METHOD.html           |   42 +-
     .../ns-17/index_SORT_BY_METHOD_DESC.html      |   42 +-
     .../ns-17/index_SORT_BY_NAME_DESC.html        |   42 +-
     .../ns-17/sources/source-1.html               |  178 +--
     .../ns-17/sources/source-2.html               |  992 +++++++++---
     .../ns-17/sources/source-3.html               |   85 +
     .../ns-18/index.html                          |  308 +---
     .../ns-18/index_SORT_BY_BLOCK.html            |  308 +---
     .../ns-18/index_SORT_BY_BLOCK_DESC.html       |  308 +---
     .../ns-18/index_SORT_BY_CLASS.html            |  308 +---
     .../ns-18/index_SORT_BY_CLASS_DESC.html       |  308 +---
     .../ns-18/index_SORT_BY_LINE.html             |  308 +---
     .../ns-18/index_SORT_BY_LINE_DESC.html        |  308 +---
     .../ns-18/index_SORT_BY_METHOD.html           |  308 +---
     .../ns-18/index_SORT_BY_METHOD_DESC.html      |  308 +---
     .../ns-18/index_SORT_BY_NAME_DESC.html        |  308 +---
     .../ns-18/sources/source-1.html               |  163 +-
     .../ns-18/sources/source-2.html               |  415 ++++-
     .../ns-19/index.html                          |  327 +++-
     .../ns-19/index_SORT_BY_BLOCK.html            |  327 +++-
     .../ns-19/index_SORT_BY_BLOCK_DESC.html       |  327 +++-
     .../ns-19/index_SORT_BY_CLASS.html            |  327 +++-
     .../ns-19/index_SORT_BY_CLASS_DESC.html       |  327 +++-
     .../ns-19/index_SORT_BY_LINE.html             |  327 +++-
     .../ns-19/index_SORT_BY_LINE_DESC.html        |  327 +++-
     .../ns-19/index_SORT_BY_METHOD.html           |  327 +++-
     .../ns-19/index_SORT_BY_METHOD_DESC.html      |  327 +++-
     .../ns-19/index_SORT_BY_NAME_DESC.html        |  327 +++-
     .../ns-19/sources/source-1.html               |  212 +--
     .../ns-19/sources/source-2.html               |  184 +++
     .../ns-19/sources/source-3.html               |  139 ++
     .../ns-19/sources/source-4.html               |  123 ++
     .../ns-19/sources/source-5.html               |  154 ++
     .../ns-19/sources/source-6.html               |  157 ++
     .../ns-19/sources/source-7.html               |  165 ++
     .../ns-19/sources/source-8.html               |  155 ++
     .../ns-19/sources/source-9.html               |  274 ++++
     .../ns-19/sources/source-a.html               |  169 ++
     .../ns-19/sources/source-b.html               |  217 +++
     .../ns-19/sources/source-c.html               |  185 +++
     .../ns-1a/index.html                          |   30 +-
     .../ns-1a/index_SORT_BY_BLOCK.html            |   30 +-
     .../ns-1a/index_SORT_BY_BLOCK_DESC.html       |   30 +-
     .../ns-1a/index_SORT_BY_CLASS.html            |   30 +-
     .../ns-1a/index_SORT_BY_CLASS_DESC.html       |   30 +-
     .../ns-1a/index_SORT_BY_LINE.html             |   30 +-
     .../ns-1a/index_SORT_BY_LINE_DESC.html        |   30 +-
     .../ns-1a/index_SORT_BY_METHOD.html           |   30 +-
     .../ns-1a/index_SORT_BY_METHOD_DESC.html      |   30 +-
     .../ns-1a/index_SORT_BY_NAME_DESC.html        |   30 +-
     .../ns-1a/sources/source-1.html               |  149 +-
     .../ns-1b/index.html                          |  110 +-
     .../ns-1b/index_SORT_BY_BLOCK.html            |  110 +-
     .../ns-1b/index_SORT_BY_BLOCK_DESC.html       |  110 +-
     .../ns-1b/index_SORT_BY_CLASS.html            |  110 +-
     .../ns-1b/index_SORT_BY_CLASS_DESC.html       |  110 +-
     .../ns-1b/index_SORT_BY_LINE.html             |  110 +-
     .../ns-1b/index_SORT_BY_LINE_DESC.html        |  110 +-
     .../ns-1b/index_SORT_BY_METHOD.html           |  110 +-
     .../ns-1b/index_SORT_BY_METHOD_DESC.html      |  110 +-
     .../ns-1b/index_SORT_BY_NAME_DESC.html        |  110 +-
     .../ns-1b/sources/source-1.html               |  352 +----
     .../ns-1c/index.html                          |  151 +-
     .../ns-1c/index_SORT_BY_BLOCK.html            |  151 +-
     .../ns-1c/index_SORT_BY_BLOCK_DESC.html       |  151 +-
     .../ns-1c/index_SORT_BY_CLASS.html            |  151 +-
     .../ns-1c/index_SORT_BY_CLASS_DESC.html       |  151 +-
     .../ns-1c/index_SORT_BY_LINE.html             |  151 +-
     .../ns-1c/index_SORT_BY_LINE_DESC.html        |  151 +-
     .../ns-1c/index_SORT_BY_METHOD.html           |  151 +-
     .../ns-1c/index_SORT_BY_METHOD_DESC.html      |  151 +-
     .../ns-1c/index_SORT_BY_NAME_DESC.html        |  151 +-
     .../ns-1c/sources/source-1.html               |  446 +++---
     .../ns-1c/sources/source-2.html               |  125 +-
     .../ns-1c/sources/source-3.html               |  256 +--
     .../ns-1d/index.html                          |  167 +-
     .../ns-1d/index_SORT_BY_BLOCK.html            |  167 +-
     .../ns-1d/index_SORT_BY_BLOCK_DESC.html       |  167 +-
     .../ns-1d/index_SORT_BY_CLASS.html            |  167 +-
     .../ns-1d/index_SORT_BY_CLASS_DESC.html       |  167 +-
     .../ns-1d/index_SORT_BY_LINE.html             |  167 +-
     .../ns-1d/index_SORT_BY_LINE_DESC.html        |  167 +-
     .../ns-1d/index_SORT_BY_METHOD.html           |  167 +-
     .../ns-1d/index_SORT_BY_METHOD_DESC.html      |  167 +-
     .../ns-1d/index_SORT_BY_NAME_DESC.html        |  167 +-
     .../ns-1d/sources/source-1.html               |  319 ++--
     .../ns-1d/sources/source-2.html               |  183 +++
     .../ns-1d/sources/source-3.html               |  325 ++++
     .../ns-1d/sources/source-4.html               |  329 ++++
     .../ns-1d/sources/source-5.html               |  134 ++
     .../ns-1d/sources/source-6.html               |  159 ++
     .../ns-1e/index.html                          |   88 +-
     .../ns-1e/index_SORT_BY_BLOCK.html            |   88 +-
     .../ns-1e/index_SORT_BY_BLOCK_DESC.html       |   88 +-
     .../ns-1e/index_SORT_BY_CLASS.html            |   88 +-
     .../ns-1e/index_SORT_BY_CLASS_DESC.html       |   88 +-
     .../ns-1e/index_SORT_BY_LINE.html             |   88 +-
     .../ns-1e/index_SORT_BY_LINE_DESC.html        |   88 +-
     .../ns-1e/index_SORT_BY_METHOD.html           |   88 +-
     .../ns-1e/index_SORT_BY_METHOD_DESC.html      |   88 +-
     .../ns-1e/index_SORT_BY_NAME_DESC.html        |   88 +-
     .../ns-1e/sources/source-1.html               |  931 ++---------
     .../ns-1f/index.html                          |  125 +-
     .../ns-1f/index_SORT_BY_BLOCK.html            |  125 +-
     .../ns-1f/index_SORT_BY_BLOCK_DESC.html       |  125 +-
     .../ns-1f/index_SORT_BY_CLASS.html            |  125 +-
     .../ns-1f/index_SORT_BY_CLASS_DESC.html       |  125 +-
     .../ns-1f/index_SORT_BY_LINE.html             |  127 +-
     .../ns-1f/index_SORT_BY_LINE_DESC.html        |  127 +-
     .../ns-1f/index_SORT_BY_METHOD.html           |  127 +-
     .../ns-1f/index_SORT_BY_METHOD_DESC.html      |  127 +-
     .../ns-1f/index_SORT_BY_NAME_DESC.html        |  125 +-
     .../ns-1f/sources/source-1.html               |  750 ++++++++-
     .../ns-1f/sources/source-2.html               |  711 +--------
     .../ns-2/index.html                           |    2 +-
     .../ns-2/index_SORT_BY_BLOCK.html             |    2 +-
     .../ns-2/index_SORT_BY_BLOCK_DESC.html        |    2 +-
     .../ns-2/index_SORT_BY_CLASS.html             |    2 +-
     .../ns-2/index_SORT_BY_CLASS_DESC.html        |    2 +-
     .../ns-2/index_SORT_BY_LINE.html              |    2 +-
     .../ns-2/index_SORT_BY_LINE_DESC.html         |    2 +-
     .../ns-2/index_SORT_BY_METHOD.html            |    2 +-
     .../ns-2/index_SORT_BY_METHOD_DESC.html       |    2 +-
     .../ns-2/index_SORT_BY_NAME_DESC.html         |    2 +-
     .../ns-2/sources/source-1.html                |    2 +-
     .../ns-2/sources/source-2.html                |    2 +-
     .../ns-2/sources/source-3.html                |   22 +-
     .../ns-2/sources/source-4.html                |   53 +-
     .../ns-2/sources/source-5.html                |   68 +-
     .../ns-2/sources/source-6.html                |   34 +-
     .../ns-2/sources/source-7.html                |   38 +-
     .../ns-2/sources/source-8.html                |   52 +-
     .../ns-2/sources/source-9.html                |   47 +-
     .../ns-20/index.html                          |   10 +-
     .../ns-20/index_SORT_BY_BLOCK.html            |   10 +-
     .../ns-20/index_SORT_BY_BLOCK_DESC.html       |   10 +-
     .../ns-20/index_SORT_BY_CLASS.html            |   10 +-
     .../ns-20/index_SORT_BY_CLASS_DESC.html       |   10 +-
     .../ns-20/index_SORT_BY_LINE.html             |   10 +-
     .../ns-20/index_SORT_BY_LINE_DESC.html        |   10 +-
     .../ns-20/index_SORT_BY_METHOD.html           |   10 +-
     .../ns-20/index_SORT_BY_METHOD_DESC.html      |   10 +-
     .../ns-20/index_SORT_BY_NAME_DESC.html        |   10 +-
     .../ns-20/sources/source-1.html               |    8 +-
     .../ns-20/sources/source-2.html               |   33 +-
     .../ns-20/sources/source-3.html               |   16 +-
     .../ns-20/sources/source-4.html               |   10 +-
     .../ns-21/index.html                          |  110 +-
     .../ns-21/index_SORT_BY_BLOCK.html            |  110 +-
     .../ns-21/index_SORT_BY_BLOCK_DESC.html       |  110 +-
     .../ns-21/index_SORT_BY_CLASS.html            |  102 +-
     .../ns-21/index_SORT_BY_CLASS_DESC.html       |  102 +-
     .../ns-21/index_SORT_BY_LINE.html             |  102 +-
     .../ns-21/index_SORT_BY_LINE_DESC.html        |  102 +-
     .../ns-21/index_SORT_BY_METHOD.html           |  102 +-
     .../ns-21/index_SORT_BY_METHOD_DESC.html      |  102 +-
     .../ns-21/index_SORT_BY_NAME_DESC.html        |  110 +-
     .../ns-21/sources/source-1.html               |  505 +-----
     .../ns-21/sources/source-2.html               |  664 +++++++-
     .../ns-21/sources/source-3.html               |  640 ++++++--
     .../ns-21/sources/source-4.html               |  345 ++++
     .../ns-22/index.html                          |  102 +-
     .../ns-22/index_SORT_BY_BLOCK.html            |  102 +-
     .../ns-22/index_SORT_BY_BLOCK_DESC.html       |  102 +-
     .../ns-22/index_SORT_BY_CLASS.html            |  102 +-
     .../ns-22/index_SORT_BY_CLASS_DESC.html       |  102 +-
     .../ns-22/index_SORT_BY_LINE.html             |  102 +-
     .../ns-22/index_SORT_BY_LINE_DESC.html        |  102 +-
     .../ns-22/index_SORT_BY_METHOD.html           |  102 +-
     .../ns-22/index_SORT_BY_METHOD_DESC.html      |  102 +-
     .../ns-22/index_SORT_BY_NAME_DESC.html        |  102 +-
     .../ns-22/sources/source-1.html               |  520 ++++--
     .../ns-22/sources/source-2.html               |  193 +++
     .../ns-22/sources/source-3.html               |  336 ++++
     .../ns-23/index.html                          |   60 +-
     .../ns-23/index_SORT_BY_BLOCK.html            |   60 +-
     .../ns-23/index_SORT_BY_BLOCK_DESC.html       |   60 +-
     .../ns-23/index_SORT_BY_CLASS.html            |   60 +-
     .../ns-23/index_SORT_BY_CLASS_DESC.html       |   60 +-
     .../ns-23/index_SORT_BY_LINE.html             |   60 +-
     .../ns-23/index_SORT_BY_LINE_DESC.html        |   60 +-
     .../ns-23/index_SORT_BY_METHOD.html           |   60 +-
     .../ns-23/index_SORT_BY_METHOD_DESC.html      |   60 +-
     .../ns-23/index_SORT_BY_NAME_DESC.html        |   60 +-
     .../ns-23/sources/source-1.html               |  307 +++-
     .../ns-24/index.html                          |   10 +-
     .../ns-24/index_SORT_BY_BLOCK.html            |   10 +-
     .../ns-24/index_SORT_BY_BLOCK_DESC.html       |   10 +-
     .../ns-24/index_SORT_BY_CLASS.html            |   10 +-
     .../ns-24/index_SORT_BY_CLASS_DESC.html       |   10 +-
     .../ns-24/index_SORT_BY_LINE.html             |   10 +-
     .../ns-24/index_SORT_BY_LINE_DESC.html        |   10 +-
     .../ns-24/index_SORT_BY_METHOD.html           |   10 +-
     .../ns-24/index_SORT_BY_METHOD_DESC.html      |   10 +-
     .../ns-24/index_SORT_BY_NAME_DESC.html        |   10 +-
     .../ns-24/sources/source-1.html               |    8 +-
     .../ns-25/index.html                          |   10 +-
     .../ns-25/index_SORT_BY_BLOCK.html            |   10 +-
     .../ns-25/index_SORT_BY_BLOCK_DESC.html       |   10 +-
     .../ns-25/index_SORT_BY_CLASS.html            |   10 +-
     .../ns-25/index_SORT_BY_CLASS_DESC.html       |   10 +-
     .../ns-25/index_SORT_BY_LINE.html             |   10 +-
     .../ns-25/index_SORT_BY_LINE_DESC.html        |   10 +-
     .../ns-25/index_SORT_BY_METHOD.html           |   10 +-
     .../ns-25/index_SORT_BY_METHOD_DESC.html      |   10 +-
     .../ns-25/index_SORT_BY_NAME_DESC.html        |   10 +-
     .../ns-25/sources/source-1.html               |    8 +-
     .../ns-26/index.html                          |  110 +-
     .../ns-26/index_SORT_BY_BLOCK.html            |  110 +-
     .../ns-26/index_SORT_BY_BLOCK_DESC.html       |  110 +-
     .../ns-26/index_SORT_BY_CLASS.html            |  110 +-
     .../ns-26/index_SORT_BY_CLASS_DESC.html       |  110 +-
     .../ns-26/index_SORT_BY_LINE.html             |  110 +-
     .../ns-26/index_SORT_BY_LINE_DESC.html        |  110 +-
     .../ns-26/index_SORT_BY_METHOD.html           |  110 +-
     .../ns-26/index_SORT_BY_METHOD_DESC.html      |  110 +-
     .../ns-26/index_SORT_BY_NAME_DESC.html        |  110 +-
     .../ns-26/sources/source-1.html               |  352 +----
     .../ns-27/index.html                          |   22 +-
     .../ns-27/index_SORT_BY_BLOCK.html            |   22 +-
     .../ns-27/index_SORT_BY_BLOCK_DESC.html       |   22 +-
     .../ns-27/index_SORT_BY_CLASS.html            |   22 +-
     .../ns-27/index_SORT_BY_CLASS_DESC.html       |   22 +-
     .../ns-27/index_SORT_BY_LINE.html             |   22 +-
     .../ns-27/index_SORT_BY_LINE_DESC.html        |   22 +-
     .../ns-27/index_SORT_BY_METHOD.html           |   22 +-
     .../ns-27/index_SORT_BY_METHOD_DESC.html      |   22 +-
     .../ns-27/index_SORT_BY_NAME_DESC.html        |   22 +-
     .../ns-27/sources/source-1.html               |   25 +-
     .../ns-27/sources/source-2.html               |    8 +-
     .../ns-27/sources/source-3.html               |    8 +-
     .../ns-28/index.html                          |  151 +-
     .../ns-28/index_SORT_BY_BLOCK.html            |  151 +-
     .../ns-28/index_SORT_BY_BLOCK_DESC.html       |  151 +-
     .../ns-28/index_SORT_BY_CLASS.html            |  151 +-
     .../ns-28/index_SORT_BY_CLASS_DESC.html       |  151 +-
     .../ns-28/index_SORT_BY_LINE.html             |  151 +-
     .../ns-28/index_SORT_BY_LINE_DESC.html        |  151 +-
     .../ns-28/index_SORT_BY_METHOD.html           |  151 +-
     .../ns-28/index_SORT_BY_METHOD_DESC.html      |  151 +-
     .../ns-28/index_SORT_BY_NAME_DESC.html        |  151 +-
     .../ns-28/sources/source-1.html               |  424 +++--
     .../ns-28/sources/source-2.html               |  125 +-
     .../ns-28/sources/source-3.html               |  257 +--
     .../ns-29/index.html                          |  278 ++++
     .../ns-29/index_SORT_BY_BLOCK.html            |  278 ++++
     .../ns-29/index_SORT_BY_BLOCK_DESC.html       |  278 ++++
     .../ns-29/index_SORT_BY_CLASS.html            |  278 ++++
     .../ns-29/index_SORT_BY_CLASS_DESC.html       |  278 ++++
     .../ns-29/index_SORT_BY_LINE.html             |  278 ++++
     .../ns-29/index_SORT_BY_LINE_DESC.html        |  278 ++++
     .../ns-29/index_SORT_BY_METHOD.html           |  278 ++++
     .../ns-29/index_SORT_BY_METHOD_DESC.html      |  278 ++++
     .../ns-29/index_SORT_BY_NAME_DESC.html        |  278 ++++
     .../ns-29/sources/source-1.html               |  294 ++++
     .../ns-29/sources/source-2.html               |  183 +++
     .../ns-29/sources/source-3.html               |  325 ++++
     .../ns-29/sources/source-4.html               |  328 ++++
     .../ns-29/sources/source-5.html               |  135 ++
     .../ns-29/sources/source-6.html               |  159 ++
     .../ns-3/index.html                           |    2 +-
     .../ns-3/index_SORT_BY_BLOCK.html             |    2 +-
     .../ns-3/index_SORT_BY_BLOCK_DESC.html        |    2 +-
     .../ns-3/index_SORT_BY_CLASS.html             |    2 +-
     .../ns-3/index_SORT_BY_CLASS_DESC.html        |    2 +-
     .../ns-3/index_SORT_BY_LINE.html              |    2 +-
     .../ns-3/index_SORT_BY_LINE_DESC.html         |    2 +-
     .../ns-3/index_SORT_BY_METHOD.html            |    2 +-
     .../ns-3/index_SORT_BY_METHOD_DESC.html       |    2 +-
     .../ns-3/index_SORT_BY_NAME_DESC.html         |    2 +-
     .../ns-3/sources/source-1.html                |    2 +-
     .../ns-3/sources/source-2.html                |    2 +-
     .../ns-3/sources/source-3.html                |    2 +-
     .../ns-3/sources/source-4.html                |    2 +-
     .../ns-3/sources/source-5.html                |    2 +-
     .../ns-4/index.html                           |  970 +++++++++++-
     .../ns-4/index_SORT_BY_BLOCK.html             |  970 +++++++++++-
     .../ns-4/index_SORT_BY_BLOCK_DESC.html        |  970 +++++++++++-
     .../ns-4/index_SORT_BY_CLASS.html             |  970 +++++++++++-
     .../ns-4/index_SORT_BY_CLASS_DESC.html        |  970 +++++++++++-
     .../ns-4/index_SORT_BY_LINE.html              |  970 +++++++++++-
     .../ns-4/index_SORT_BY_LINE_DESC.html         |  970 +++++++++++-
     .../ns-4/index_SORT_BY_METHOD.html            |  970 +++++++++++-
     .../ns-4/index_SORT_BY_METHOD_DESC.html       |  970 +++++++++++-
     .../ns-4/index_SORT_BY_NAME_DESC.html         |  970 +++++++++++-
     .../ns-4/sources/source-1.html                |  158 +-
     .../ns-4/sources/source-10.html               |  108 ++
     .../ns-4/sources/source-11.html               |  124 ++
     .../ns-4/sources/source-12.html               |  126 ++
     .../ns-4/sources/source-13.html               |  124 ++
     .../ns-4/sources/source-14.html               |  484 ++++++
     .../ns-4/sources/source-15.html               |  484 ++++++
     .../ns-4/sources/source-16.html               |  484 ++++++
     .../ns-4/sources/source-17.html               |  484 ++++++
     .../ns-4/sources/source-18.html               |  484 ++++++
     .../ns-4/sources/source-19.html               |  484 ++++++
     .../ns-4/sources/source-1a.html               |  724 +++++++++
     .../ns-4/sources/source-1b.html               |  108 ++
     .../ns-4/sources/source-1c.html               |  124 ++
     .../ns-4/sources/source-1d.html               |  126 ++
     .../ns-4/sources/source-1e.html               |  124 ++
     .../ns-4/sources/source-1f.html               |  724 +++++++++
     .../ns-4/sources/source-2.html                |  124 ++
     .../ns-4/sources/source-3.html                |  126 ++
     .../ns-4/sources/source-4.html                |  124 ++
     .../ns-4/sources/source-5.html                |  484 ++++++
     .../ns-4/sources/source-6.html                |  108 ++
     .../ns-4/sources/source-7.html                |  124 ++
     .../ns-4/sources/source-8.html                |  126 ++
     .../ns-4/sources/source-9.html                |  124 ++
     .../ns-4/sources/source-a.html                |  484 ++++++
     .../ns-4/sources/source-b.html                |  108 ++
     .../ns-4/sources/source-c.html                |  124 ++
     .../ns-4/sources/source-d.html                |  126 ++
     .../ns-4/sources/source-e.html                |  124 ++
     .../ns-4/sources/source-f.html                |  484 ++++++
     .../ns-5/index.html                           |  202 +--
     .../ns-5/index_SORT_BY_BLOCK.html             |  202 +--
     .../ns-5/index_SORT_BY_BLOCK_DESC.html        |  202 +--
     .../ns-5/index_SORT_BY_CLASS.html             |  202 +--
     .../ns-5/index_SORT_BY_CLASS_DESC.html        |  202 +--
     .../ns-5/index_SORT_BY_LINE.html              |  202 +--
     .../ns-5/index_SORT_BY_LINE_DESC.html         |  202 +--
     .../ns-5/index_SORT_BY_METHOD.html            |  202 +--
     .../ns-5/index_SORT_BY_METHOD_DESC.html       |  202 +--
     .../ns-5/index_SORT_BY_NAME_DESC.html         |  202 +--
     .../ns-5/sources/source-1.html                |  512 ++----
     .../ns-6/index.html                           |  175 ++-
     .../ns-6/index_SORT_BY_BLOCK.html             |  175 ++-
     .../ns-6/index_SORT_BY_BLOCK_DESC.html        |  175 ++-
     .../ns-6/index_SORT_BY_CLASS.html             |  175 ++-
     .../ns-6/index_SORT_BY_CLASS_DESC.html        |  175 ++-
     .../ns-6/index_SORT_BY_LINE.html              |  175 ++-
     .../ns-6/index_SORT_BY_LINE_DESC.html         |  175 ++-
     .../ns-6/index_SORT_BY_METHOD.html            |  175 ++-
     .../ns-6/index_SORT_BY_METHOD_DESC.html       |  175 ++-
     .../ns-6/index_SORT_BY_NAME_DESC.html         |  175 ++-
     .../ns-6/sources/source-1.html                |  402 ++++-
     .../ns-6/sources/source-2.html                |  353 ++---
     .../ns-6/sources/source-3.html                |  424 +++++
     .../ns-6/sources/source-4.html                |  150 ++
     .../ns-6/sources/source-5.html                |  134 ++
     .../ns-6/sources/source-6.html                |  112 ++
     .../ns-6/sources/source-7.html                |  154 ++
     .../ns-7/index.html                           |  146 +-
     .../ns-7/index_SORT_BY_BLOCK.html             |  146 +-
     .../ns-7/index_SORT_BY_BLOCK_DESC.html        |  146 +-
     .../ns-7/index_SORT_BY_CLASS.html             |  146 +-
     .../ns-7/index_SORT_BY_CLASS_DESC.html        |  146 +-
     .../ns-7/index_SORT_BY_LINE.html              |  148 +-
     .../ns-7/index_SORT_BY_LINE_DESC.html         |  148 +-
     .../ns-7/index_SORT_BY_METHOD.html            |  148 +-
     .../ns-7/index_SORT_BY_METHOD_DESC.html       |  148 +-
     .../ns-7/index_SORT_BY_NAME_DESC.html         |  146 +-
     .../ns-7/sources/source-1.html                |  225 +--
     .../ns-7/sources/source-2.html                |  378 +++--
     .../ns-8/index.html                           |  107 +-
     .../ns-8/index_SORT_BY_BLOCK.html             |  107 +-
     .../ns-8/index_SORT_BY_BLOCK_DESC.html        |  107 +-
     .../ns-8/index_SORT_BY_CLASS.html             |  105 +-
     .../ns-8/index_SORT_BY_CLASS_DESC.html        |  105 +-
     .../ns-8/index_SORT_BY_LINE.html              |  107 +-
     .../ns-8/index_SORT_BY_LINE_DESC.html         |  107 +-
     .../ns-8/index_SORT_BY_METHOD.html            |  107 +-
     .../ns-8/index_SORT_BY_METHOD_DESC.html       |  107 +-
     .../ns-8/index_SORT_BY_NAME_DESC.html         |  107 +-
     .../ns-8/sources/source-1.html                |  249 ++-
     .../ns-8/sources/source-2.html                |  559 ++-----
     .../ns-8/sources/source-3.html                |  584 ++++++-
     .../ns-8/sources/source-4.html                |  344 +---
     .../ns-8/sources/source-5.html                |  186 +--
     .../ns-8/sources/source-6.html                |  410 ++++-
     .../ns-8/sources/source-7.html                |  113 ++
     .../ns-9/index.html                           |  134 +-
     .../ns-9/index_SORT_BY_BLOCK.html             |  134 +-
     .../ns-9/index_SORT_BY_BLOCK_DESC.html        |  134 +-
     .../ns-9/index_SORT_BY_CLASS.html             |  134 +-
     .../ns-9/index_SORT_BY_CLASS_DESC.html        |  134 +-
     .../ns-9/index_SORT_BY_LINE.html              |  134 +-
     .../ns-9/index_SORT_BY_LINE_DESC.html         |  136 +-
     .../ns-9/index_SORT_BY_METHOD.html            |  134 +-
     .../ns-9/index_SORT_BY_METHOD_DESC.html       |  136 +-
     .../ns-9/index_SORT_BY_NAME_DESC.html         |  134 +-
     .../ns-9/sources/source-1.html                |  181 +--
     .../ns-9/sources/source-2.html                |  546 +++++++
     .../ns-9/sources/source-3.html                |  125 ++
     .../ns-9/sources/source-4.html                |  418 +++++
     .../ns-9/sources/source-5.html                |  210 +++
     .../ns-9/sources/source-6.html                |  103 ++
     .../ns-a/index.html                           |   24 +-
     .../ns-a/index_SORT_BY_BLOCK.html             |   24 +-
     .../ns-a/index_SORT_BY_BLOCK_DESC.html        |   24 +-
     .../ns-a/index_SORT_BY_CLASS.html             |   24 +-
     .../ns-a/index_SORT_BY_CLASS_DESC.html        |   24 +-
     .../ns-a/index_SORT_BY_LINE.html              |   24 +-
     .../ns-a/index_SORT_BY_LINE_DESC.html         |   24 +-
     .../ns-a/index_SORT_BY_METHOD.html            |   24 +-
     .../ns-a/index_SORT_BY_METHOD_DESC.html       |   24 +-
     .../ns-a/index_SORT_BY_NAME_DESC.html         |   24 +-
     .../ns-a/sources/source-1.html                |  139 +-
     .../ns-b/index.html                           |   53 +-
     .../ns-b/index_SORT_BY_BLOCK.html             |   53 +-
     .../ns-b/index_SORT_BY_BLOCK_DESC.html        |   57 +-
     .../ns-b/index_SORT_BY_CLASS.html             |   53 +-
     .../ns-b/index_SORT_BY_CLASS_DESC.html        |   57 +-
     .../ns-b/index_SORT_BY_LINE.html              |   53 +-
     .../ns-b/index_SORT_BY_LINE_DESC.html         |   57 +-
     .../ns-b/index_SORT_BY_METHOD.html            |   53 +-
     .../ns-b/index_SORT_BY_METHOD_DESC.html       |   57 +-
     .../ns-b/index_SORT_BY_NAME_DESC.html         |   57 +-
     .../ns-b/sources/source-1.html                |   76 +-
     .../ns-c/index.html                           |  125 +-
     .../ns-c/index_SORT_BY_BLOCK.html             |  125 +-
     .../ns-c/index_SORT_BY_BLOCK_DESC.html        |  125 +-
     .../ns-c/index_SORT_BY_CLASS.html             |  125 +-
     .../ns-c/index_SORT_BY_CLASS_DESC.html        |  125 +-
     .../ns-c/index_SORT_BY_LINE.html              |  125 +-
     .../ns-c/index_SORT_BY_LINE_DESC.html         |  125 +-
     .../ns-c/index_SORT_BY_METHOD.html            |  125 +-
     .../ns-c/index_SORT_BY_METHOD_DESC.html       |  125 +-
     .../ns-c/index_SORT_BY_NAME_DESC.html         |  125 +-
     .../ns-c/sources/source-1.html                |   97 +-
     .../ns-c/sources/source-2.html                |  194 ++-
     .../ns-d/index.html                           |  129 +-
     .../ns-d/index_SORT_BY_BLOCK.html             |  129 +-
     .../ns-d/index_SORT_BY_BLOCK_DESC.html        |  129 +-
     .../ns-d/index_SORT_BY_CLASS.html             |  129 +-
     .../ns-d/index_SORT_BY_CLASS_DESC.html        |  129 +-
     .../ns-d/index_SORT_BY_LINE.html              |  129 +-
     .../ns-d/index_SORT_BY_LINE_DESC.html         |  129 +-
     .../ns-d/index_SORT_BY_METHOD.html            |  129 +-
     .../ns-d/index_SORT_BY_METHOD_DESC.html       |  129 +-
     .../ns-d/index_SORT_BY_NAME_DESC.html         |  129 +-
     .../ns-d/sources/source-1.html                |   87 +-
     .../ns-d/sources/source-2.html                |   27 +-
     .../ns-d/sources/source-3.html                |  249 +--
     .../ns-d/sources/source-4.html                |  163 +-
     .../ns-d/sources/source-5.html                |   91 +-
     .../ns-e/index.html                           |  219 ++-
     .../ns-e/index_SORT_BY_BLOCK.html             |  219 ++-
     .../ns-e/index_SORT_BY_BLOCK_DESC.html        |  219 ++-
     .../ns-e/index_SORT_BY_CLASS.html             |  219 ++-
     .../ns-e/index_SORT_BY_CLASS_DESC.html        |  219 ++-
     .../ns-e/index_SORT_BY_LINE.html              |  219 ++-
     .../ns-e/index_SORT_BY_LINE_DESC.html         |  219 ++-
     .../ns-e/index_SORT_BY_METHOD.html            |  219 ++-
     .../ns-e/index_SORT_BY_METHOD_DESC.html       |  219 ++-
     .../ns-e/index_SORT_BY_NAME_DESC.html         |  219 ++-
     .../ns-e/sources/source-1.html                |  133 +-
     .../ns-e/sources/source-2.html                |  137 ++
     .../ns-e/sources/source-3.html                |  285 ++++
     .../ns-e/sources/source-4.html                |  229 +++
     .../ns-e/sources/source-5.html                |  147 ++
     .../ns-e/sources/source-6.html                |  308 ++++
     .../ns-e/sources/source-7.html                |  138 ++
     .../ns-e/sources/source-8.html                |  182 +++
     .../ns-f/index.html                           |   28 +-
     .../ns-f/index_SORT_BY_BLOCK.html             |   28 +-
     .../ns-f/index_SORT_BY_BLOCK_DESC.html        |   28 +-
     .../ns-f/index_SORT_BY_CLASS.html             |   28 +-
     .../ns-f/index_SORT_BY_CLASS_DESC.html        |   28 +-
     .../ns-f/index_SORT_BY_LINE.html              |   28 +-
     .../ns-f/index_SORT_BY_LINE_DESC.html         |   28 +-
     .../ns-f/index_SORT_BY_METHOD.html            |   28 +-
     .../ns-f/index_SORT_BY_METHOD_DESC.html       |   28 +-
     .../ns-f/index_SORT_BY_NAME_DESC.html         |   28 +-
     .../ns-f/sources/source-1.html                |  114 +-
     1288 files changed, 241873 insertions(+), 33629 deletions(-)
     create mode 100644 metrics-collectd/src/test/java/com/codahale/metrics/collectd/SecurityConfigurationTest.java
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/css/coverage.css
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/css/idea.min.css
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/img/arrowDown.gif
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/img/arrowUp.gif
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/js/highlight.min.js
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/js/highlightjs-line-numbers.min.js
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-10.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-11.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-12.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-13.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-14.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-15.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-16.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-17.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-18.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-19.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1a.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1b.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1c.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1d.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1e.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1f.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-20.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-21.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-22.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-23.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-24.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-25.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-26.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-27.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-28.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-29.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2a.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2b.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2c.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2d.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2e.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2f.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-30.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-31.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-32.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-8.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-9.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-a.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-b.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-c.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-d.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-e.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-f.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-8.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-8.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-9.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-a.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-b.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-c.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-8.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-9.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-10.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-11.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-12.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-13.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-14.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-15.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-16.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-17.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-18.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-19.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1a.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1b.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1c.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1d.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1e.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1f.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-8.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-9.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-a.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-b.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-c.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-d.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-e.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-f.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-8.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-8.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-8.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-9.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-a.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-b.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-c.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_BLOCK.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_BLOCK_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_CLASS.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_CLASS_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_LINE.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_LINE_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_METHOD.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_METHOD_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_NAME_DESC.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-1.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-10.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-11.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-12.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-13.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-14.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-15.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-16.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-17.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-18.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-19.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1a.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1b.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1c.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1d.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1e.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1f.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-8.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-9.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-a.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-b.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-c.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-d.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-e.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-f.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-2.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-3.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-4.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-5.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-6.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-7.html
     create mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-8.html
    
    diff --git a/metrics-collectd/pom.xml b/metrics-collectd/pom.xml
    index 8ece828206..fefc655642 100644
    --- a/metrics-collectd/pom.xml
    +++ b/metrics-collectd/pom.xml
    @@ -69,5 +69,11 @@
                 <version>1.0.3</version>
                 <scope>test</scope>
             </dependency>
    +        <dependency>
    +            <groupId>org.junit.jupiter</groupId>
    +            <artifactId>junit-jupiter</artifactId>
    +            <version>RELEASE</version>
    +            <scope>test</scope>
    +        </dependency>
         </dependencies>
     </project>
    diff --git a/metrics-collectd/src/test/java/com/codahale/metrics/collectd/SecurityConfigurationTest.java b/metrics-collectd/src/test/java/com/codahale/metrics/collectd/SecurityConfigurationTest.java
    new file mode 100644
    index 0000000000..d66abbd2d4
    --- /dev/null
    +++ b/metrics-collectd/src/test/java/com/codahale/metrics/collectd/SecurityConfigurationTest.java
    @@ -0,0 +1,51 @@
    +package com.codahale.metrics.collectd;
    +
    +import org.junit.jupiter.api.BeforeEach;
    +import org.junit.jupiter.api.Test;
    +
    +import static org.junit.jupiter.api.Assertions.assertArrayEquals;
    +import static org.junit.jupiter.api.Assertions.assertEquals;
    +import static org.junit.jupiter.api.Assertions.assertNull;
    +
    +public class SecurityConfigurationTest {
    +
    +    private byte[] username;
    +    private byte[] password;
    +    private SecurityLevel securityLevel;
    +
    +    @BeforeEach
    +    public void setUp() {
    +        username = "admin".getBytes();
    +        password = "password".getBytes();
    +        securityLevel = SecurityLevel.SIGN;
    +    }
    +
    +    /**
    +     * Test the constructor and getters of the SecurityConfiguration class.
    +     */
    +    @Test
    +    public void testConstructorAndGetters() {
    +        // When
    +        SecurityConfiguration config = new SecurityConfiguration(username, password, securityLevel);
    +
    +        // Then
    +        assertArrayEquals(username, config.getUsername(), "Username matched");
    +        assertArrayEquals(password, config.getPassword(), "Password matched");
    +        assertEquals(securityLevel, config.getSecurityLevel(), "Security level matched");
    +    }
    +
    +    /**
    +     * Test the none() factory method of SecurityConfiguration to ensure it creates
    +     * a configuration with no security settings.
    +     */
    +    @Test
    +    public void testNoneSecurityConfiguration() {
    +        // When
    +        SecurityConfiguration config = SecurityConfiguration.none();
    +
    +        // Then
    +        assertNull(config.getUsername(), "Username is null");
    +        assertNull(config.getPassword(), "Password is null");
    +        assertEquals(SecurityLevel.NONE, config.getSecurityLevel(), "Security level is NONE");
    +    }
    +}
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/css/coverage.css b/metrics-complete-branch-report-Final-Improved-htmlReport/css/coverage.css
    new file mode 100644
    index 0000000000..cef776517f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/css/coverage.css
    @@ -0,0 +1,154 @@
    +/*
    + * Copyright 2000-2021 JetBrains s.r.o.
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *   http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +* {
    +  margin: 0;
    +  padding: 0;
    +}
    +
    +body {
    +  background-color: #fff;
    +  font-family: helvetica neue, tahoma, arial, sans-serif;
    +  font-size: 82%;
    +  color: #151515;
    +}
    +
    +h1 {
    +  margin: 0.5em 0;
    +  color: #010101;
    +  font-weight: normal;
    +  font-size: 18px;
    +}
    +
    +h2 {
    +  margin: 0.5em 0;
    +  color: #010101;
    +  font-weight: normal;
    +  font-size: 16px;
    +}
    +
    +a {
    +  color: #1564C2;
    +  text-decoration: none;
    +}
    +
    +a:hover {
    +  text-decoration: underline;
    +}
    +
    +span.separator {
    +  color: #9BA9BA;
    +  padding-left: 5px;
    +  padding-right: 5px;
    +}
    +
    +div.content {
    +  width: 99%;
    +}
    +
    +table.coverageStats {
    +  width: 100%;
    +  border-collapse: collapse;
    +}
    +
    +table.overallStats {
    +  width: 20%;
    +}
    +
    +table.coverageStats td, table.coverageStats th {
    +  padding: 4px 2px;
    +  border-bottom: 1px solid #ccc;
    +}
    +
    +table.coverageStats th {
    +  background-color: #959BA4;
    +  border: none;
    +  font-weight: bold;
    +  text-align: left;
    +  color: #FFF;
    +}
    +
    +table.coverageStats th.coverageStat {
    +  width: 15%;
    +}
    +
    +table.coverageStats th a {
    +  color: #FFF;
    +}
    +
    +table.coverageStats th a:hover {
    +  text-decoration: none;
    +}
    +
    +table.coverageStats th.sortedDesc a {
    +  background: url(../img/arrowDown.gif) no-repeat 100% 2px;
    +  padding-right: 20px;
    +}
    +
    +table.coverageStats th.sortedAsc a {
    +  background: url(../img/arrowUp.gif) no-repeat 100% 2px;
    +  padding-right: 20px;
    +}
    +
    +div.footer {
    +  margin: 2em .5em;
    +  font-size: 85%;
    +  text-align: left;
    +  line-height: 140%;
    +}
    +
    +code.sourceCode {
    +  width: 100%;
    +  border: 1px solid #ccc;
    +  font: normal 12px 'Menlo', 'Bitstream Vera Sans Mono', 'Courier New', 'Courier', monospace;
    +  white-space: pre;
    +}
    +
    +code.sourceCode b {
    +  font-weight: normal;
    +}
    +
    +code.sourceCode span.number {
    +  color: #151515;
    +}
    +
    +code.sourceCode .fc {
    +  background-color: #cfc;
    +}
    +
    +code.sourceCode .pc {
    +  background-color: #ffc;
    +}
    +
    +code.sourceCode .nc {
    +  background-color: #fcc;
    +}
    +
    +.percent, .absValue {
    +  font-size: 90%;
    +}
    +
    +.percent .green, .absValue .green {
    +  color: #32cc32;
    +}
    +
    +.percent .red, .absValue .red {
    +  color: #f00;
    +}
    +
    +.percent .totalDiff {
    +  color: #3f3f3f;
    +}
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/css/idea.min.css b/metrics-complete-branch-report-Final-Improved-htmlReport/css/idea.min.css
    new file mode 100644
    index 0000000000..a8d5292bd5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/css/idea.min.css
    @@ -0,0 +1,118 @@
    +/*
    + * Copyright 2000-2021 JetBrains s.r.o.
    + *
    + * Licensed under the Apache License, Version 2.0 (the "License");
    + * you may not use this file except in compliance with the License.
    + * You may obtain a copy of the License at
    + *
    + *   http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +/*
    +Intellij Idea-like styling (c) Vasily Polovnyov <vast@whiteants.net>
    +*/
    +
    +.hljs {
    +    color: #000;
    +    background: #fff;
    +}
    +
    +.hljs-subst,
    +.hljs-title {
    +    font-weight: normal;
    +    color: #000;
    +}
    +
    +.hljs-comment,
    +.hljs-quote {
    +    color: #808080;
    +    font-style: italic;
    +}
    +
    +.hljs-meta {
    +    color: #808000;
    +}
    +
    +.hljs-tag {
    +    background: #efefef;
    +}
    +
    +.hljs-section,
    +.hljs-name,
    +.hljs-literal,
    +.hljs-keyword,
    +.hljs-selector-tag,
    +.hljs-type,
    +.hljs-selector-id,
    +.hljs-selector-class {
    +    font-weight: bold;
    +    color: #000080;
    +}
    +
    +.hljs-attribute,
    +.hljs-number,
    +.hljs-regexp,
    +.hljs-link {
    +    font-weight: bold;
    +    color: #0000ff;
    +}
    +
    +.hljs-number,
    +.hljs-regexp,
    +.hljs-link {
    +    font-weight: normal;
    +}
    +
    +.hljs-string {
    +    color: #008000;
    +    font-weight: bold;
    +}
    +
    +.hljs-symbol,
    +.hljs-bullet,
    +.hljs-formula {
    +    color: #000;
    +    background: #d0eded;
    +    font-style: italic;
    +}
    +
    +.hljs-doctag {
    +    text-decoration: underline;
    +}
    +
    +.hljs-variable,
    +.hljs-template-variable {
    +    color: #660e7a;
    +}
    +
    +.hljs-addition {
    +    background: #baeeba;
    +}
    +
    +.hljs-deletion {
    +    background: #ffc8bd;
    +}
    +
    +.hljs-emphasis {
    +    font-style: italic;
    +}
    +
    +.hljs-strong {
    +    font-weight: bold;
    +}
    +
    +.hljs-ln-numbers {
    +    display: block;
    +    float: left;
    +    width: 3em;
    +    border-right: 1px solid #ccc;
    +    font-style: normal;
    +    text-align: right;
    +    background-color: #eee;
    +}
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/img/arrowDown.gif b/metrics-complete-branch-report-Final-Improved-htmlReport/img/arrowDown.gif
    new file mode 100644
    index 0000000000000000000000000000000000000000..a4ac9b4b0f5eee9fc82deb7f03d0cc7f197b01c7
    GIT binary patch
    literal 89
    zcmZ?wbhEHb<YVAtSj56GVZwyGyu5~nhW}u|00W9YSr{1@SQvCb0wA>v%yJ&P?))?G
    g5?!@7agD+*@rGjs@joUks8}}Ha%HfNHz$KN0Orjd82|tP
    
    literal 0
    HcmV?d00001
    
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/img/arrowUp.gif b/metrics-complete-branch-report-Final-Improved-htmlReport/img/arrowUp.gif
    new file mode 100644
    index 0000000000000000000000000000000000000000..d488db0089f15409b83a6f39718384cac89ea3c9
    GIT binary patch
    literal 91
    zcmZ?wbhEHb<YVAtSj51PmzOtT!i0u~hW}u|00W9YSr{1@SQvCb0wA>v%nBa6?))=2
    j#jeJ<$W6!S$=vG=3s*2Wu3C5I!M+a(XH6zEFjxZs9OxeQ
    
    literal 0
    HcmV?d00001
    
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index.html
    new file mode 100644
    index 0000000000..8a3a853704
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/index.html
    @@ -0,0 +1,1349 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.7%
    +  </span>
    +  <span class="absValue">
    +    (345/412)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.5%
    +  </span>
    +  <span class="absValue">
    +    (1610/2285)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    1.7%
    +  </span>
    +  <span class="absValue">
    +    (20/1166)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.5%
    +  </span>
    +  <span class="absValue">
    +    (5396/9723)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Package</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-29/index.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..33ab9204e5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,1349 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.7%
    +  </span>
    +  <span class="absValue">
    +    (345/412)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.5%
    +  </span>
    +  <span class="absValue">
    +    (1610/2285)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    1.7%
    +  </span>
    +  <span class="absValue">
    +    (20/1166)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.5%
    +  </span>
    +  <span class="absValue">
    +    (5396/9723)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Package</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index_SORT_BY_BLOCK.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index_SORT_BY_BLOCK.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index_SORT_BY_BLOCK.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_BLOCK.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index_SORT_BY_BLOCK.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_BLOCK.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index_SORT_BY_BLOCK.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index_SORT_BY_BLOCK.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index_SORT_BY_BLOCK.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_BLOCK.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_BLOCK.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index_SORT_BY_BLOCK.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_BLOCK.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index_SORT_BY_BLOCK.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_BLOCK.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_BLOCK.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_BLOCK.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-29/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_BLOCK.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index_SORT_BY_BLOCK.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_BLOCK.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index_SORT_BY_BLOCK.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_BLOCK.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..31f0dfbc10
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,1349 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.7%
    +  </span>
    +  <span class="absValue">
    +    (345/412)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.5%
    +  </span>
    +  <span class="absValue">
    +    (1610/2285)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    1.7%
    +  </span>
    +  <span class="absValue">
    +    (20/1166)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.5%
    +  </span>
    +  <span class="absValue">
    +    (5396/9723)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Package</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-29/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..eaaeb5cc87
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_CLASS.html
    @@ -0,0 +1,1349 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.7%
    +  </span>
    +  <span class="absValue">
    +    (345/412)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.5%
    +  </span>
    +  <span class="absValue">
    +    (1610/2285)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    1.7%
    +  </span>
    +  <span class="absValue">
    +    (20/1166)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.5%
    +  </span>
    +  <span class="absValue">
    +    (5396/9723)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Package</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index_SORT_BY_CLASS.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_CLASS.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_CLASS.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index_SORT_BY_CLASS.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index_SORT_BY_CLASS.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_CLASS.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-29/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index_SORT_BY_CLASS.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index_SORT_BY_CLASS.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index_SORT_BY_CLASS.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index_SORT_BY_CLASS.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_CLASS.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index_SORT_BY_CLASS.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_CLASS.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_CLASS.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index_SORT_BY_CLASS.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index_SORT_BY_CLASS.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index_SORT_BY_CLASS.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index_SORT_BY_CLASS.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_CLASS.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_CLASS.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index_SORT_BY_CLASS.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_CLASS.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index_SORT_BY_CLASS.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_CLASS.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_CLASS.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_CLASS.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..33c2bc18a6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,1349 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.7%
    +  </span>
    +  <span class="absValue">
    +    (345/412)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.5%
    +  </span>
    +  <span class="absValue">
    +    (1610/2285)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    1.7%
    +  </span>
    +  <span class="absValue">
    +    (20/1166)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.5%
    +  </span>
    +  <span class="absValue">
    +    (5396/9723)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Package</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-29/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..6c5f08dae8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_LINE.html
    @@ -0,0 +1,1349 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.7%
    +  </span>
    +  <span class="absValue">
    +    (345/412)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.5%
    +  </span>
    +  <span class="absValue">
    +    (1610/2285)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    1.7%
    +  </span>
    +  <span class="absValue">
    +    (20/1166)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.5%
    +  </span>
    +  <span class="absValue">
    +    (5396/9723)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Package</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index_SORT_BY_LINE.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_LINE.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_LINE.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index_SORT_BY_LINE.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index_SORT_BY_LINE.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index_SORT_BY_LINE.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index_SORT_BY_LINE.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index_SORT_BY_LINE.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_LINE.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index_SORT_BY_LINE.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-29/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_LINE.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index_SORT_BY_LINE.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index_SORT_BY_LINE.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index_SORT_BY_LINE.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_LINE.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_LINE.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_LINE.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_LINE.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index_SORT_BY_LINE.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_LINE.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_LINE.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_LINE.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_LINE.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index_SORT_BY_LINE.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index_SORT_BY_LINE.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index_SORT_BY_LINE.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_LINE.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..42a13f4715
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,1349 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.7%
    +  </span>
    +  <span class="absValue">
    +    (345/412)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.5%
    +  </span>
    +  <span class="absValue">
    +    (1610/2285)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    1.7%
    +  </span>
    +  <span class="absValue">
    +    (20/1166)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.5%
    +  </span>
    +  <span class="absValue">
    +    (5396/9723)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Package</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index_SORT_BY_LINE_DESC.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-29/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..6fe9862021
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_METHOD.html
    @@ -0,0 +1,1349 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.7%
    +  </span>
    +  <span class="absValue">
    +    (345/412)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.5%
    +  </span>
    +  <span class="absValue">
    +    (1610/2285)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    1.7%
    +  </span>
    +  <span class="absValue">
    +    (20/1166)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.5%
    +  </span>
    +  <span class="absValue">
    +    (5396/9723)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Package</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index_SORT_BY_METHOD.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_METHOD.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_METHOD.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index_SORT_BY_METHOD.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index_SORT_BY_METHOD.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index_SORT_BY_METHOD.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index_SORT_BY_METHOD.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index_SORT_BY_METHOD.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index_SORT_BY_METHOD.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_METHOD.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-29/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_METHOD.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index_SORT_BY_METHOD.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_METHOD.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_METHOD.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index_SORT_BY_METHOD.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_METHOD.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_METHOD.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_METHOD.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_METHOD.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_METHOD.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index_SORT_BY_METHOD.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index_SORT_BY_METHOD.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index_SORT_BY_METHOD.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index_SORT_BY_METHOD.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index_SORT_BY_METHOD.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_METHOD.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..9f693373c3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,1349 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.7%
    +  </span>
    +  <span class="absValue">
    +    (345/412)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.5%
    +  </span>
    +  <span class="absValue">
    +    (1610/2285)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    1.7%
    +  </span>
    +  <span class="absValue">
    +    (20/1166)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.5%
    +  </span>
    +  <span class="absValue">
    +    (5396/9723)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Package</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-29/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..ff4a1cef9b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,1349 @@
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Summary</title>
    +  <style type="text/css">
    +    @import "./css/coverage.css";
    +    @import "./css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="./js/highlight.min.js"></script>
    +  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     all classes
    +</div>
    +
    +<h1>Overall Coverage Summary </h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">all classes</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.7%
    +  </span>
    +  <span class="absValue">
    +    (345/412)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.5%
    +  </span>
    +  <span class="absValue">
    +    (1610/2285)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    1.7%
    +  </span>
    +  <span class="absValue">
    +    (20/1166)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.5%
    +  </span>
    +  <span class="absValue">
    +    (5396/9723)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<h2>Coverage Breakdown</h2>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Package</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="ns-29/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-27/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-26/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback15</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-25/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback14</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-24/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback13</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-23/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-21/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-20/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.servlets</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.servlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.logback</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.log4j2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-19/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.json</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-17/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jmx</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-16/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jetty9</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jersey3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jersey2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-13/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-12/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-11/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-10/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-f/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-e/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpclient5</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-d/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-c/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-b/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health.jvm</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-a/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-8/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.ehcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-6/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.caffeine</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-3/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.benchmarks</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-2/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.annotation</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1/index_SORT_BY_NAME_DESC.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    +
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/js/highlight.min.js b/metrics-complete-branch-report-Final-Improved-htmlReport/js/highlight.min.js
    new file mode 100644
    index 0000000000..e88731520e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/js/highlight.min.js
    @@ -0,0 +1,1388 @@
    +/*
    +  Highlight.js 10.7.2 (00233d63)
    +  License: BSD-3-Clause
    +  Copyright (c) 2006-2021, Ivan Sagalaev
    +
    +  BSD 3-Clause License
    +
    +  Copyright (c) 2006-2021, Ivan Sagalaev.
    +  All rights reserved.
    +
    +  Redistribution and use in source and binary forms, with or without
    +  modification, are permitted provided that the following conditions are met:
    +
    +  * Redistributions of source code must retain the above copyright notice, this
    +    list of conditions and the following disclaimer.
    +
    +  * Redistributions in binary form must reproduce the above copyright notice,
    +    this list of conditions and the following disclaimer in the documentation
    +    and/or other materials provided with the distribution.
    +
    +  * Neither the name of the copyright holder nor the names of its
    +    contributors may be used to endorse or promote products derived from
    +    this software without specific prior written permission.
    +
    +  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    +  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    +  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    +  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    +  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    +  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    +  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
    +  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    +  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    +  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    +*/
    +var hljs=function(){"use strict";function e(t){
    +return t instanceof Map?t.clear=t.delete=t.set=()=>{
    +throw Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=()=>{
    +throw Error("set is read-only")
    +}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach((n=>{var i=t[n]
    +;"object"!=typeof i||Object.isFrozen(i)||e(i)})),t}var t=e,n=e;t.default=n
    +;class i{constructor(e){
    +void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}
    +ignoreMatch(){this.isMatchIgnored=!0}}function s(e){
    +return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")
    +}function a(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t]
    +;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const r=e=>!!e.kind
    +;class l{constructor(e,t){
    +this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){
    +this.buffer+=s(e)}openNode(e){if(!r(e))return;let t=e.kind
    +;e.sublanguage||(t=`${this.classPrefix}${t}`),this.span(t)}closeNode(e){
    +r(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){
    +this.buffer+=`<span class="${e}">`}}class o{constructor(){this.rootNode={
    +children:[]},this.stack=[this.rootNode]}get top(){
    +return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){
    +this.top.children.push(e)}openNode(e){const t={kind:e,children:[]}
    +;this.add(t),this.stack.push(t)}closeNode(){
    +if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){
    +for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
    +walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){
    +return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),
    +t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){
    +"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{
    +o._collapse(e)})))}}class c extends o{constructor(e){super(),this.options=e}
    +addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())}
    +addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root
    +;n.kind=t,n.sublanguage=!0,this.add(n)}toHTML(){
    +return new l(this,this.options).value()}finalize(){return!0}}function g(e){
    +return e?"string"==typeof e?e:e.source:null}
    +const u=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,h="[a-zA-Z]\\w*",d="[a-zA-Z_]\\w*",f="\\b\\d+(\\.\\d+)?",p="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",m="\\b(0b[01]+)",b={
    +begin:"\\\\[\\s\\S]",relevance:0},E={className:"string",begin:"'",end:"'",
    +illegal:"\\n",contains:[b]},x={className:"string",begin:'"',end:'"',
    +illegal:"\\n",contains:[b]},v={
    +begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
    +},w=(e,t,n={})=>{const i=a({className:"comment",begin:e,end:t,contains:[]},n)
    +;return i.contains.push(v),i.contains.push({className:"doctag",
    +begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),i
    +},y=w("//","$"),N=w("/\\*","\\*/"),R=w("#","$");var _=Object.freeze({
    +__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:h,UNDERSCORE_IDENT_RE:d,
    +NUMBER_RE:f,C_NUMBER_RE:p,BINARY_NUMBER_RE:m,
    +RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
    +SHEBANG:(e={})=>{const t=/^#![ ]*\//
    +;return e.binary&&(e.begin=((...e)=>e.map((e=>g(e))).join(""))(t,/.*\b/,e.binary,/\b.*/)),
    +a({className:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{
    +0!==e.index&&t.ignoreMatch()}},e)},BACKSLASH_ESCAPE:b,APOS_STRING_MODE:E,
    +QUOTE_STRING_MODE:x,PHRASAL_WORDS_MODE:v,COMMENT:w,C_LINE_COMMENT_MODE:y,
    +C_BLOCK_COMMENT_MODE:N,HASH_COMMENT_MODE:R,NUMBER_MODE:{className:"number",
    +begin:f,relevance:0},C_NUMBER_MODE:{className:"number",begin:p,relevance:0},
    +BINARY_NUMBER_MODE:{className:"number",begin:m,relevance:0},CSS_NUMBER_MODE:{
    +className:"number",
    +begin:f+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
    +relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",
    +begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[b,{begin:/\[/,end:/\]/,
    +relevance:0,contains:[b]}]}]},TITLE_MODE:{className:"title",begin:h,relevance:0
    +},UNDERSCORE_TITLE_MODE:{className:"title",begin:d,relevance:0},METHOD_GUARD:{
    +begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{
    +"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{
    +t.data._beginMatch!==e[1]&&t.ignoreMatch()}})});function k(e,t){
    +"."===e.input[e.index-1]&&t.ignoreMatch()}function M(e,t){
    +t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",
    +e.__beforeBegin=k,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,
    +void 0===e.relevance&&(e.relevance=0))}function O(e,t){
    +Array.isArray(e.illegal)&&(e.illegal=((...e)=>"("+e.map((e=>g(e))).join("|")+")")(...e.illegal))
    +}function A(e,t){if(e.match){
    +if(e.begin||e.end)throw Error("begin & end are not supported with match")
    +;e.begin=e.match,delete e.match}}function L(e,t){
    +void 0===e.relevance&&(e.relevance=1)}
    +const I=["of","and","for","in","not","or","if","then","parent","list","value"]
    +;function j(e,t,n="keyword"){const i={}
    +;return"string"==typeof e?s(n,e.split(" ")):Array.isArray(e)?s(n,e):Object.keys(e).forEach((n=>{
    +Object.assign(i,j(e[n],t,n))})),i;function s(e,n){
    +t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|")
    +;i[n[0]]=[e,B(n[0],n[1])]}))}}function B(e,t){
    +return t?Number(t):(e=>I.includes(e.toLowerCase()))(e)?0:1}
    +function T(e,{plugins:t}){function n(t,n){
    +return RegExp(g(t),"m"+(e.case_insensitive?"i":"")+(n?"g":""))}class i{
    +constructor(){
    +this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}
    +addRule(e,t){
    +t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),
    +this.matchAt+=(e=>RegExp(e.toString()+"|").exec("").length-1)(e)+1}compile(){
    +0===this.regexes.length&&(this.exec=()=>null)
    +;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(((e,t="|")=>{let n=0
    +;return e.map((e=>{n+=1;const t=n;let i=g(e),s="";for(;i.length>0;){
    +const e=u.exec(i);if(!e){s+=i;break}
    +s+=i.substring(0,e.index),i=i.substring(e.index+e[0].length),
    +"\\"===e[0][0]&&e[1]?s+="\\"+(Number(e[1])+t):(s+=e[0],"("===e[0]&&n++)}return s
    +})).map((e=>`(${e})`)).join(t)})(e),!0),this.lastIndex=0}exec(e){
    +this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e)
    +;if(!t)return null
    +;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n]
    +;return t.splice(0,n),Object.assign(t,i)}}class s{constructor(){
    +this.rules=[],this.multiRegexes=[],
    +this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){
    +if(this.multiRegexes[e])return this.multiRegexes[e];const t=new i
    +;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))),
    +t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){
    +return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){
    +this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){
    +const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex
    +;let n=t.exec(e)
    +;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{
    +const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}
    +return n&&(this.regexIndex+=n.position+1,
    +this.regexIndex===this.count&&this.considerAll()),n}}
    +if(e.compilerExtensions||(e.compilerExtensions=[]),
    +e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.")
    +;return e.classNameAliases=a(e.classNameAliases||{}),function t(i,r){const l=i
    +;if(i.isCompiled)return l
    +;[A].forEach((e=>e(i,r))),e.compilerExtensions.forEach((e=>e(i,r))),
    +i.__beforeBegin=null,[M,O,L].forEach((e=>e(i,r))),i.isCompiled=!0;let o=null
    +;if("object"==typeof i.keywords&&(o=i.keywords.$pattern,
    +delete i.keywords.$pattern),
    +i.keywords&&(i.keywords=j(i.keywords,e.case_insensitive)),
    +i.lexemes&&o)throw Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ")
    +;return o=o||i.lexemes||/\w+/,
    +l.keywordPatternRe=n(o,!0),r&&(i.begin||(i.begin=/\B|\b/),
    +l.beginRe=n(i.begin),i.endSameAsBegin&&(i.end=i.begin),
    +i.end||i.endsWithParent||(i.end=/\B|\b/),
    +i.end&&(l.endRe=n(i.end)),l.terminatorEnd=g(i.end)||"",
    +i.endsWithParent&&r.terminatorEnd&&(l.terminatorEnd+=(i.end?"|":"")+r.terminatorEnd)),
    +i.illegal&&(l.illegalRe=n(i.illegal)),
    +i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>a(e,{
    +variants:null},t)))),e.cachedVariants?e.cachedVariants:S(e)?a(e,{
    +starts:e.starts?a(e.starts):null
    +}):Object.isFrozen(e)?a(e):e))("self"===e?i:e)))),i.contains.forEach((e=>{t(e,l)
    +})),i.starts&&t(i.starts,r),l.matcher=(e=>{const t=new s
    +;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"
    +}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"
    +}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(l),l}(e)}function S(e){
    +return!!e&&(e.endsWithParent||S(e.starts))}function P(e){const t={
    +props:["language","code","autodetect"],data:()=>({detectedLanguage:"",
    +unknownLanguage:!1}),computed:{className(){
    +return this.unknownLanguage?"":"hljs "+this.detectedLanguage},highlighted(){
    +if(!this.autoDetect&&!e.getLanguage(this.language))return console.warn(`The language "${this.language}" you specified could not be found.`),
    +this.unknownLanguage=!0,s(this.code);let t={}
    +;return this.autoDetect?(t=e.highlightAuto(this.code),
    +this.detectedLanguage=t.language):(t=e.highlight(this.language,this.code,this.ignoreIllegals),
    +this.detectedLanguage=this.language),t.value},autoDetect(){
    +return!(this.language&&(e=this.autodetect,!e&&""!==e));var e},
    +ignoreIllegals:()=>!0},render(e){return e("pre",{},[e("code",{
    +class:this.className,domProps:{innerHTML:this.highlighted}})])}};return{
    +Component:t,VuePlugin:{install(e){e.component("highlightjs",t)}}}}const D={
    +"after:highlightElement":({el:e,result:t,text:n})=>{const i=H(e)
    +;if(!i.length)return;const a=document.createElement("div")
    +;a.innerHTML=t.value,t.value=((e,t,n)=>{let i=0,a="";const r=[];function l(){
    +return e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset<t[0].offset?e:t:"start"===t[0].event?e:t:e.length?e:t
    +}function o(e){a+="<"+C(e)+[].map.call(e.attributes,(function(e){
    +return" "+e.nodeName+'="'+s(e.value)+'"'})).join("")+">"}function c(e){
    +a+="</"+C(e)+">"}function g(e){("start"===e.event?o:c)(e.node)}
    +for(;e.length||t.length;){let t=l()
    +;if(a+=s(n.substring(i,t[0].offset)),i=t[0].offset,t===e){r.reverse().forEach(c)
    +;do{g(t.splice(0,1)[0]),t=l()}while(t===e&&t.length&&t[0].offset===i)
    +;r.reverse().forEach(o)
    +}else"start"===t[0].event?r.push(t[0].node):r.pop(),g(t.splice(0,1)[0])}
    +return a+s(n.substr(i))})(i,H(a),n)}};function C(e){
    +return e.nodeName.toLowerCase()}function H(e){const t=[];return function e(n,i){
    +for(let s=n.firstChild;s;s=s.nextSibling)3===s.nodeType?i+=s.nodeValue.length:1===s.nodeType&&(t.push({
    +event:"start",offset:i,node:s}),i=e(s,i),C(s).match(/br|hr|img|input/)||t.push({
    +event:"stop",offset:i,node:s}));return i}(e,0),t}const $={},U=e=>{
    +console.error(e)},z=(e,...t)=>{console.log("WARN: "+e,...t)},K=(e,t)=>{
    +$[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),$[`${e}/${t}`]=!0)
    +},G=s,V=a,W=Symbol("nomatch");return(e=>{
    +const n=Object.create(null),s=Object.create(null),a=[];let r=!0
    +;const l=/(^(<[^>]+>|\t|)+|\n)/gm,o="Could not find the language '{}', did you forget to load/include a language module?",g={
    +disableAutodetect:!0,name:"Plain text",contains:[]};let u={
    +noHighlightRe:/^(no-?highlight)$/i,
    +languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",
    +tabReplace:null,useBR:!1,languages:null,__emitter:c};function h(e){
    +return u.noHighlightRe.test(e)}function d(e,t,n,i){let s="",a=""
    +;"object"==typeof t?(s=e,
    +n=t.ignoreIllegals,a=t.language,i=void 0):(K("10.7.0","highlight(lang, code, ...args) has been deprecated."),
    +K("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
    +a=e,s=t);const r={code:s,language:a};M("before:highlight",r)
    +;const l=r.result?r.result:f(r.language,r.code,n,i)
    +;return l.code=r.code,M("after:highlight",l),l}function f(e,t,s,l){
    +function c(e,t){const n=v.case_insensitive?t[0].toLowerCase():t[0]
    +;return Object.prototype.hasOwnProperty.call(e.keywords,n)&&e.keywords[n]}
    +function g(){null!=R.subLanguage?(()=>{if(""===M)return;let e=null
    +;if("string"==typeof R.subLanguage){
    +if(!n[R.subLanguage])return void k.addText(M)
    +;e=f(R.subLanguage,M,!0,_[R.subLanguage]),_[R.subLanguage]=e.top
    +}else e=p(M,R.subLanguage.length?R.subLanguage:null)
    +;R.relevance>0&&(O+=e.relevance),k.addSublanguage(e.emitter,e.language)
    +})():(()=>{if(!R.keywords)return void k.addText(M);let e=0
    +;R.keywordPatternRe.lastIndex=0;let t=R.keywordPatternRe.exec(M),n="";for(;t;){
    +n+=M.substring(e,t.index);const i=c(R,t);if(i){const[e,s]=i
    +;if(k.addText(n),n="",O+=s,e.startsWith("_"))n+=t[0];else{
    +const n=v.classNameAliases[e]||e;k.addKeyword(t[0],n)}}else n+=t[0]
    +;e=R.keywordPatternRe.lastIndex,t=R.keywordPatternRe.exec(M)}
    +n+=M.substr(e),k.addText(n)})(),M=""}function h(e){
    +return e.className&&k.openNode(v.classNameAliases[e.className]||e.className),
    +R=Object.create(e,{parent:{value:R}}),R}function d(e,t,n){let s=((e,t)=>{
    +const n=e&&e.exec(t);return n&&0===n.index})(e.endRe,n);if(s){if(e["on:end"]){
    +const n=new i(e);e["on:end"](t,n),n.isMatchIgnored&&(s=!1)}if(s){
    +for(;e.endsParent&&e.parent;)e=e.parent;return e}}
    +if(e.endsWithParent)return d(e.parent,t,n)}function m(e){
    +return 0===R.matcher.regexIndex?(M+=e[0],1):(I=!0,0)}function b(e){
    +const n=e[0],i=t.substr(e.index),s=d(R,e,i);if(!s)return W;const a=R
    +;a.skip?M+=n:(a.returnEnd||a.excludeEnd||(M+=n),g(),a.excludeEnd&&(M=n));do{
    +R.className&&k.closeNode(),R.skip||R.subLanguage||(O+=R.relevance),R=R.parent
    +}while(R!==s.parent)
    +;return s.starts&&(s.endSameAsBegin&&(s.starts.endRe=s.endRe),
    +h(s.starts)),a.returnEnd?0:n.length}let E={};function x(n,a){const l=a&&a[0]
    +;if(M+=n,null==l)return g(),0
    +;if("begin"===E.type&&"end"===a.type&&E.index===a.index&&""===l){
    +if(M+=t.slice(a.index,a.index+1),!r){const t=Error("0 width match regex")
    +;throw t.languageName=e,t.badRule=E.rule,t}return 1}
    +if(E=a,"begin"===a.type)return function(e){
    +const t=e[0],n=e.rule,s=new i(n),a=[n.__beforeBegin,n["on:begin"]]
    +;for(const n of a)if(n&&(n(e,s),s.isMatchIgnored))return m(t)
    +;return n&&n.endSameAsBegin&&(n.endRe=RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")),
    +n.skip?M+=t:(n.excludeBegin&&(M+=t),
    +g(),n.returnBegin||n.excludeBegin||(M=t)),h(n),n.returnBegin?0:t.length}(a)
    +;if("illegal"===a.type&&!s){
    +const e=Error('Illegal lexeme "'+l+'" for mode "'+(R.className||"<unnamed>")+'"')
    +;throw e.mode=R,e}if("end"===a.type){const e=b(a);if(e!==W)return e}
    +if("illegal"===a.type&&""===l)return 1
    +;if(L>1e5&&L>3*a.index)throw Error("potential infinite loop, way more iterations than matches")
    +;return M+=l,l.length}const v=N(e)
    +;if(!v)throw U(o.replace("{}",e)),Error('Unknown language: "'+e+'"')
    +;const w=T(v,{plugins:a});let y="",R=l||w;const _={},k=new u.__emitter(u);(()=>{
    +const e=[];for(let t=R;t!==v;t=t.parent)t.className&&e.unshift(t.className)
    +;e.forEach((e=>k.openNode(e)))})();let M="",O=0,A=0,L=0,I=!1;try{
    +for(R.matcher.considerAll();;){
    +L++,I?I=!1:R.matcher.considerAll(),R.matcher.lastIndex=A
    +;const e=R.matcher.exec(t);if(!e)break;const n=x(t.substring(A,e.index),e)
    +;A=e.index+n}return x(t.substr(A)),k.closeAllNodes(),k.finalize(),y=k.toHTML(),{
    +relevance:Math.floor(O),value:y,language:e,illegal:!1,emitter:k,top:R}}catch(n){
    +if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{
    +msg:n.message,context:t.slice(A-100,A+100),mode:n.mode},sofar:y,relevance:0,
    +value:G(t),emitter:k};if(r)return{illegal:!1,relevance:0,value:G(t),emitter:k,
    +language:e,top:R,errorRaised:n};throw n}}function p(e,t){
    +t=t||u.languages||Object.keys(n);const i=(e=>{const t={relevance:0,
    +emitter:new u.__emitter(u),value:G(e),illegal:!1,top:g}
    +;return t.emitter.addText(e),t})(e),s=t.filter(N).filter(k).map((t=>f(t,e,!1)))
    +;s.unshift(i);const a=s.sort(((e,t)=>{
    +if(e.relevance!==t.relevance)return t.relevance-e.relevance
    +;if(e.language&&t.language){if(N(e.language).supersetOf===t.language)return 1
    +;if(N(t.language).supersetOf===e.language)return-1}return 0})),[r,l]=a,o=r
    +;return o.second_best=l,o}const m={"before:highlightElement":({el:e})=>{
    +u.useBR&&(e.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ /]*>/g,"\n"))
    +},"after:highlightElement":({result:e})=>{
    +u.useBR&&(e.value=e.value.replace(/\n/g,"<br>"))}},b=/^(<[^>]+>|\t)+/gm,E={
    +"after:highlightElement":({result:e})=>{
    +u.tabReplace&&(e.value=e.value.replace(b,(e=>e.replace(/\t/g,u.tabReplace))))}}
    +;function x(e){let t=null;const n=(e=>{let t=e.className+" "
    +;t+=e.parentNode?e.parentNode.className:"";const n=u.languageDetectRe.exec(t)
    +;if(n){const t=N(n[1])
    +;return t||(z(o.replace("{}",n[1])),z("Falling back to no-highlight mode for this block.",e)),
    +t?n[1]:"no-highlight"}return t.split(/\s+/).find((e=>h(e)||N(e)))})(e)
    +;if(h(n))return;M("before:highlightElement",{el:e,language:n}),t=e
    +;const i=t.textContent,a=n?d(i,{language:n,ignoreIllegals:!0}):p(i)
    +;M("after:highlightElement",{el:e,result:a,text:i
    +}),e.innerHTML=a.value,((e,t,n)=>{const i=t?s[t]:n
    +;e.classList.add("hljs"),i&&e.classList.add(i)})(e,n,a.language),e.result={
    +language:a.language,re:a.relevance,relavance:a.relevance
    +},a.second_best&&(e.second_best={language:a.second_best.language,
    +re:a.second_best.relevance,relavance:a.second_best.relevance})}const v=()=>{
    +v.called||(v.called=!0,
    +K("10.6.0","initHighlighting() is deprecated.  Use highlightAll() instead."),
    +document.querySelectorAll("pre code").forEach(x))};let w=!1;function y(){
    +"loading"!==document.readyState?document.querySelectorAll("pre code").forEach(x):w=!0
    +}function N(e){return e=(e||"").toLowerCase(),n[e]||n[s[e]]}
    +function R(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{
    +s[e.toLowerCase()]=t}))}function k(e){const t=N(e)
    +;return t&&!t.disableAutodetect}function M(e,t){const n=e;a.forEach((e=>{
    +e[n]&&e[n](t)}))}
    +"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{
    +w&&y()}),!1),Object.assign(e,{highlight:d,highlightAuto:p,highlightAll:y,
    +fixMarkup:e=>{
    +return K("10.2.0","fixMarkup will be removed entirely in v11.0"),K("10.2.0","Please see https://github.com/highlightjs/highlight.js/issues/2534"),
    +t=e,
    +u.tabReplace||u.useBR?t.replace(l,(e=>"\n"===e?u.useBR?"<br>":e:u.tabReplace?e.replace(/\t/g,u.tabReplace):e)):t
    +;var t},highlightElement:x,
    +highlightBlock:e=>(K("10.7.0","highlightBlock will be removed entirely in v12.0"),
    +K("10.7.0","Please use highlightElement now."),x(e)),configure:e=>{
    +e.useBR&&(K("10.3.0","'useBR' will be removed entirely in v11.0"),
    +K("10.3.0","Please see https://github.com/highlightjs/highlight.js/issues/2559")),
    +u=V(u,e)},initHighlighting:v,initHighlightingOnLoad:()=>{
    +K("10.6.0","initHighlightingOnLoad() is deprecated.  Use highlightAll() instead."),
    +w=!0},registerLanguage:(t,i)=>{let s=null;try{s=i(e)}catch(e){
    +if(U("Language definition for '{}' could not be registered.".replace("{}",t)),
    +!r)throw e;U(e),s=g}
    +s.name||(s.name=t),n[t]=s,s.rawDefinition=i.bind(null,e),s.aliases&&R(s.aliases,{
    +languageName:t})},unregisterLanguage:e=>{delete n[e]
    +;for(const t of Object.keys(s))s[t]===e&&delete s[t]},
    +listLanguages:()=>Object.keys(n),getLanguage:N,registerAliases:R,
    +requireLanguage:e=>{
    +K("10.4.0","requireLanguage will be removed entirely in v11."),
    +K("10.4.0","Please see https://github.com/highlightjs/highlight.js/pull/2844")
    +;const t=N(e);if(t)return t
    +;throw Error("The '{}' language is required, but not loaded.".replace("{}",e))},
    +autoDetection:k,inherit:V,addPlugin:e=>{(e=>{
    +e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{
    +e["before:highlightBlock"](Object.assign({block:t.el},t))
    +}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{
    +e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),a.push(e)},
    +vuePlugin:P(e).VuePlugin}),e.debugMode=()=>{r=!1},e.safeMode=()=>{r=!0
    +},e.versionString="10.7.2";for(const e in _)"object"==typeof _[e]&&t(_[e])
    +;return Object.assign(e,_),e.addPlugin(m),e.addPlugin(D),e.addPlugin(E),e})({})
    +}();"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);
    +hljs.registerLanguage("apache",(()=>{"use strict";return e=>{const n={
    +className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/}
    +;return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,
    +contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,
    +contains:[n,{className:"number",begin:/:\d{1,5}/
    +},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",
    +begin:/\w+/,relevance:0,keywords:{
    +nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"
    +},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},
    +contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",
    +begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}]
    +},n,{className:"number",begin:/\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}
    +})());
    +hljs.registerLanguage("bash",(()=>{"use strict";function e(...e){
    +return e.map((e=>{return(s=e)?"string"==typeof s?s:s.source:null;var s
    +})).join("")}return s=>{const n={},t={begin:/\$\{/,end:/\}/,contains:["self",{
    +begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{
    +begin:e(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},t]});const a={
    +className:"subst",begin:/\$\(/,end:/\)/,contains:[s.BACKSLASH_ESCAPE]},i={
    +begin:/<<-?\s*(?=\w+)/,starts:{contains:[s.END_SAME_AS_BEGIN({begin:/(\w+)/,
    +end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/,
    +contains:[s.BACKSLASH_ESCAPE,n,a]};a.contains.push(c);const o={begin:/\$\(\(/,
    +end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},s.NUMBER_MODE,n]
    +},r=s.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10
    +}),l={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,
    +contains:[s.inherit(s.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{
    +name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z._-]+\b/,
    +keyword:"if then else elif fi for while in do done case esac function",
    +literal:"true false",
    +built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp"
    +},contains:[r,s.SHEBANG(),l,o,s.HASH_COMMENT_MODE,i,c,{className:"",begin:/\\"/
    +},{className:"string",begin:/'/,end:/'/},n]}}})());
    +hljs.registerLanguage("c",(()=>{"use strict";function e(e){
    +return((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(",e,")?")
    +}return t=>{const n=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]
    +}),r="[a-zA-Z_]\\w*::",a="(decltype\\(auto\\)|"+e(r)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",i={
    +className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",
    +variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",
    +contains:[t.BACKSLASH_ESCAPE]},{
    +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
    +end:"'",illegal:"."},t.END_SAME_AS_BEGIN({
    +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={
    +className:"number",variants:[{begin:"\\b(0b[01']+)"},{
    +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
    +},{
    +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    +}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
    +"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
    +},contains:[{begin:/\\\n/,relevance:0},t.inherit(s,{className:"meta-string"}),{
    +className:"meta-string",begin:/<.*?>/},n,t.C_BLOCK_COMMENT_MODE]},l={
    +className:"title",begin:e(r)+t.IDENT_RE,relevance:0
    +},d=e(r)+t.IDENT_RE+"\\s*\\(",u={
    +keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",
    +built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary",
    +literal:"true false nullptr NULL"},m=[c,i,n,t.C_BLOCK_COMMENT_MODE,o,s],p={
    +variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{
    +beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:m.concat([{
    +begin:/\(/,end:/\)/,keywords:u,contains:m.concat(["self"]),relevance:0}]),
    +relevance:0},_={className:"function",begin:"("+a+"[\\*&\\s]+)+"+d,
    +returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/,
    +contains:[{begin:"decltype\\(auto\\)",keywords:u,relevance:0},{begin:d,
    +returnBegin:!0,contains:[l],relevance:0},{className:"params",begin:/\(/,
    +end:/\)/,keywords:u,relevance:0,contains:[n,t.C_BLOCK_COMMENT_MODE,s,o,i,{
    +begin:/\(/,end:/\)/,keywords:u,relevance:0,
    +contains:["self",n,t.C_BLOCK_COMMENT_MODE,s,o,i]}]
    +},i,n,t.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u,
    +disableAutodetect:!0,illegal:"</",contains:[].concat(p,_,m,[c,{
    +begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",
    +end:">",keywords:u,contains:["self",i]},{begin:t.IDENT_RE+"::",keywords:u},{
    +className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,
    +contains:[{beginKeywords:"final class struct"},t.TITLE_MODE]}]),exports:{
    +preprocessor:c,strings:s,keywords:u}}}})());
    +hljs.registerLanguage("coffeescript",(()=>{"use strict"
    +;const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
    +;return r=>{const t={
    +keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((i=["var","const","let","function","static"],
    +e=>!i.includes(e))),literal:n.concat(["yes","no","on","off"]),
    +built_in:a.concat(["npm","print"])};var i;const s="[A-Za-z$_][0-9A-Za-z$_]*",o={
    +className:"subst",begin:/#\{/,end:/\}/,keywords:t
    +},c=[r.BINARY_NUMBER_MODE,r.inherit(r.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",
    +relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,
    +contains:[r.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[r.BACKSLASH_ESCAPE]
    +},{begin:/"""/,end:/"""/,contains:[r.BACKSLASH_ESCAPE,o]},{begin:/"/,end:/"/,
    +contains:[r.BACKSLASH_ESCAPE,o]}]},{className:"regexp",variants:[{begin:"///",
    +end:"///",contains:[o,r.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)",
    +relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+s
    +},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{
    +begin:"```",end:"```"},{begin:"`",end:"`"}]}];o.contains=c
    +;const l=r.inherit(r.TITLE_MODE,{begin:s}),d="(\\(.*\\)\\s*)?\\B[-=]>",g={
    +className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,
    +end:/\)/,keywords:t,contains:["self"].concat(c)}]};return{name:"CoffeeScript",
    +aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/,
    +contains:c.concat([r.COMMENT("###","###"),r.HASH_COMMENT_MODE,{
    +className:"function",begin:"^\\s*"+s+"\\s*=\\s*"+d,end:"[-=]>",returnBegin:!0,
    +contains:[l,g]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",
    +begin:d,end:"[-=]>",returnBegin:!0,contains:[g]}]},{className:"class",
    +beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{
    +beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[l]},l]
    +},{begin:s+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}})());
    +hljs.registerLanguage("cpp",(()=>{"use strict";function e(e){
    +return t("(",e,")?")}function t(...e){return e.map((e=>{
    +return(t=e)?"string"==typeof t?t:t.source:null;var t})).join("")}return n=>{
    +const r=n.COMMENT("//","$",{contains:[{begin:/\\\n/}]
    +}),a="[a-zA-Z_]\\w*::",i="(decltype\\(auto\\)|"+e(a)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",s={
    +className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",
    +variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",
    +contains:[n.BACKSLASH_ESCAPE]},{
    +begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
    +end:"'",illegal:"."},n.END_SAME_AS_BEGIN({
    +begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={
    +className:"number",variants:[{begin:"\\b(0b[01']+)"},{
    +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
    +},{
    +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    +}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
    +"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
    +},contains:[{begin:/\\\n/,relevance:0},n.inherit(c,{className:"meta-string"}),{
    +className:"meta-string",begin:/<.*?>/},r,n.C_BLOCK_COMMENT_MODE]},d={
    +className:"title",begin:e(a)+n.IDENT_RE,relevance:0
    +},u=e(a)+n.IDENT_RE+"\\s*\\(",m={
    +keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",
    +built_in:"_Bool _Complex _Imaginary",
    +_relevance_hints:["asin","atan2","atan","calloc","ceil","cosh","cos","exit","exp","fabs","floor","fmod","fprintf","fputs","free","frexp","auto_ptr","deque","list","queue","stack","vector","map","set","pair","bitset","multiset","multimap","unordered_set","fscanf","future","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","tolower","toupper","labs","ldexp","log10","log","malloc","realloc","memchr","memcmp","memcpy","memset","modf","pow","printf","putchar","puts","scanf","sinh","sin","snprintf","sprintf","sqrt","sscanf","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","tanh","tan","unordered_map","unordered_multiset","unordered_multimap","priority_queue","make_pair","array","shared_ptr","abort","terminate","abs","acos","vfprintf","vprintf","vsprintf","endl","initializer_list","unique_ptr","complex","imaginary","std","string","wstring","cin","cout","cerr","clog","stdin","stdout","stderr","stringstream","istringstream","ostringstream"],
    +literal:"true false nullptr NULL"},p={className:"function.dispatch",relevance:0,
    +keywords:m,
    +begin:t(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!while)/,n.IDENT_RE,(_=/\s*\(/,
    +t("(?=",_,")")))};var _;const g=[p,l,s,r,n.C_BLOCK_COMMENT_MODE,o,c],b={
    +variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{
    +beginKeywords:"new throw return else",end:/;/}],keywords:m,contains:g.concat([{
    +begin:/\(/,end:/\)/,keywords:m,contains:g.concat(["self"]),relevance:0}]),
    +relevance:0},f={className:"function",begin:"("+i+"[\\*&\\s]+)+"+u,
    +returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:m,illegal:/[^\w\s\*&:<>.]/,
    +contains:[{begin:"decltype\\(auto\\)",keywords:m,relevance:0},{begin:u,
    +returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{begin:/:/,
    +endsWithParent:!0,contains:[c,o]},{className:"params",begin:/\(/,end:/\)/,
    +keywords:m,relevance:0,contains:[r,n.C_BLOCK_COMMENT_MODE,c,o,s,{begin:/\(/,
    +end:/\)/,keywords:m,relevance:0,contains:["self",r,n.C_BLOCK_COMMENT_MODE,c,o,s]
    +}]},s,r,n.C_BLOCK_COMMENT_MODE,l]};return{name:"C++",
    +aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:m,illegal:"</",
    +classNameAliases:{"function.dispatch":"built_in"},
    +contains:[].concat(b,f,p,g,[l,{
    +begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",
    +end:">",keywords:m,contains:["self",s]},{begin:n.IDENT_RE+"::",keywords:m},{
    +className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,
    +contains:[{beginKeywords:"final class struct"},n.TITLE_MODE]}]),exports:{
    +preprocessor:l,strings:c,keywords:m}}}})());
    +hljs.registerLanguage("csharp",(()=>{"use strict";return e=>{const n={
    +keyword:["abstract","as","base","break","case","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]),
    +built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],
    +literal:["default","false","null","true"]},a=e.inherit(e.TITLE_MODE,{
    +begin:"[a-zA-Z](\\.?\\w)*"}),i={className:"number",variants:[{
    +begin:"\\b(0b[01']+)"},{
    +begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{
    +begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    +}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]
    +},t=e.inherit(s,{illegal:/\n/}),r={className:"subst",begin:/\{/,end:/\}/,
    +keywords:n},l=e.inherit(r,{illegal:/\n/}),c={className:"string",begin:/\$"/,
    +end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/
    +},e.BACKSLASH_ESCAPE,l]},o={className:"string",begin:/\$@"/,end:'"',contains:[{
    +begin:/\{\{/},{begin:/\}\}/},{begin:'""'},r]},d=e.inherit(o,{illegal:/\n/,
    +contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},l]})
    +;r.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE],
    +l.contains=[d,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.inherit(e.C_BLOCK_COMMENT_MODE,{
    +illegal:/\n/})];const g={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
    +},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},a]
    +},_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={
    +begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],
    +keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,
    +contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{
    +begin:"\x3c!--|--\x3e"},{begin:"</?",end:">"}]}]
    +}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",
    +end:"$",keywords:{
    +"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"
    +}},g,i,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,
    +illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"
    +},a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",
    +relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
    +contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
    +beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
    +contains:[a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",
    +begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{
    +className:"meta-string",begin:/"/,end:/"/}]},{
    +beginKeywords:"new return throw await else",relevance:0},{className:"function",
    +begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0,
    +end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{
    +beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial",
    +relevance:0},{begin:e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0,
    +contains:[e.TITLE_MODE,E],relevance:0},{className:"params",begin:/\(/,end:/\)/,
    +excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,
    +contains:[g,i,e.C_BLOCK_COMMENT_MODE]
    +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}})());
    +hljs.registerLanguage("css",(()=>{"use strict"
    +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse()
    +;return n=>{const a=(e=>({IMPORTANT:{className:"meta",begin:"!important"},
    +HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},
    +ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,
    +illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}
    +}))(n),l=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS",
    +case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},
    +classNameAliases:{keyframePosition:"selector-tag"},
    +contains:[n.C_BLOCK_COMMENT_MODE,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/
    +},n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0
    +},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0
    +},a.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{
    +begin:":("+i.join("|")+")"},{begin:"::("+o.join("|")+")"}]},{
    +className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{begin:":",end:"[;}]",
    +contains:[a.HEXCOLOR,a.IMPORTANT,n.CSS_NUMBER_MODE,...l,{
    +begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"
    +},contains:[{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]
    +},{className:"built_in",begin:/[\w-]+(?=\()/}]},{
    +begin:(s=/@/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",s,")")),
    +end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",
    +begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,
    +relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",
    +attribute:t.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"
    +},...l,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",
    +begin:"\\b("+e.join("|")+")\\b"}]};var s}})());
    +hljs.registerLanguage("diff",(()=>{"use strict";return e=>({name:"Diff",
    +aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{
    +begin:/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{
    +begin:/^--- +\d+,\d+ +----$/}]},{className:"comment",variants:[{begin:/Index: /,
    +end:/$/},{begin:/^index/,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^-{3}/,end:/$/
    +},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/^\*{15}$/},{
    +begin:/^diff --git/,end:/$/}]},{className:"addition",begin:/^\+/,end:/$/},{
    +className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,
    +end:/$/}]})})());
    +hljs.registerLanguage("go",(()=>{"use strict";return e=>{const n={
    +keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",
    +literal:"true false iota nil",
    +built_in:"append cap close complex copy imag len make new panic print println real recover delete"
    +};return{name:"Go",aliases:["golang"],keywords:n,illegal:"</",
    +contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",
    +variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{
    +className:"number",variants:[{begin:e.C_NUMBER_RE+"[i]",relevance:1
    +},e.C_NUMBER_MODE]},{begin:/:=/},{className:"function",beginKeywords:"func",
    +end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",
    +begin:/\(/,end:/\)/,keywords:n,illegal:/["']/}]}]}}})());
    +hljs.registerLanguage("http",(()=>{"use strict";function e(...e){
    +return e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null;var n
    +})).join("")}return n=>{const a="HTTP/(2|1\\.[01])",s={className:"attribute",
    +begin:e("^",/[A-Za-z][A-Za-z0-9-]*/,"(?=\\:\\s)"),starts:{contains:[{
    +className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]}
    +},t=[s,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{
    +name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+a+" \\d{3})",
    +end:/$/,contains:[{className:"meta",begin:a},{className:"number",
    +begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:t}},{
    +begin:"(?=^[A-Z]+ (.*?) "+a+"$)",end:/$/,contains:[{className:"string",
    +begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:a},{
    +className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:t}
    +},n.inherit(s,{relevance:0})]}}})());
    +hljs.registerLanguage("ini",(()=>{"use strict";function e(e){
    +return e?"string"==typeof e?e:e.source:null}function n(...n){
    +return n.map((n=>e(n))).join("")}return s=>{const a={className:"number",
    +relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:s.NUMBER_RE}]
    +},i=s.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const t={
    +className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/
    +}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={
    +className:"string",contains:[s.BACKSLASH_ESCAPE],variants:[{begin:"'''",
    +end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'
    +},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[i,r,t,l,a,"self"],
    +relevance:0
    +},g="("+[/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/].map((n=>e(n))).join("|")+")"
    +;return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,
    +contains:[i,{className:"section",begin:/\[+/,end:/\]+/},{
    +begin:n(g,"(\\s*\\.\\s*",g,")*",n("(?=",/\s*=\s*[^#\s]/,")")),className:"attr",
    +starts:{end:/$/,contains:[i,c,r,t,l,a]}}]}}})());
    +hljs.registerLanguage("java",(()=>{"use strict"
    +;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={
    +className:"number",variants:[{
    +begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    +},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
    +begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{
    +begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    +},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{
    +begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
    +relevance:0};return e=>{
    +var n="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",s={
    +className:"meta",begin:"@[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",
    +contains:[{begin:/\(/,end:/\)/,contains:["self"]}]};const r=a;return{
    +name:"Java",aliases:["jsp"],keywords:n,illegal:/<\/|#/,
    +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,
    +relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{
    +begin:/import java\.[a-z]+\./,keywords:"import",relevance:2
    +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{
    +className:"class",beginKeywords:"class interface enum",end:/[{;=]/,
    +excludeEnd:!0,relevance:1,keywords:"class interface enum",illegal:/[:"\[\]]/,
    +contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{
    +beginKeywords:"new throw return else",relevance:0},{className:"class",
    +begin:"record\\s+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,excludeEnd:!0,
    +end:/[{;=]/,keywords:n,contains:[{beginKeywords:"record"},{
    +begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,
    +keywords:n,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE]
    +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"function",
    +begin:"([\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*(<[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*(\\s*,\\s*[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",
    +returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:n,contains:[{
    +begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,
    +keywords:n,relevance:0,
    +contains:[s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.C_BLOCK_COMMENT_MODE]
    +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},r,s]}}})());
    +hljs.registerLanguage("javascript",(()=>{"use strict"
    +;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
    +;function r(e){return t("(?=",e,")")}function t(...e){return e.map((e=>{
    +return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return i=>{
    +const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,
    +isTrulyOpeningTag:(e,n)=>{const a=e[0].length+e.index,s=e.input[a]
    +;"<"!==s?">"===s&&(((e,{after:n})=>{const a="</"+e[0].slice(1)
    +;return-1!==e.input.indexOf(a,n)})(e,{after:a
    +})||n.ignoreMatch()):n.ignoreMatch()}},l={$pattern:e,keyword:n,literal:a,
    +built_in:s},g="\\.([0-9](_?[0-9])*)",b="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",d={
    +className:"number",variants:[{
    +begin:`(\\b(${b})((${g})|\\.)?|(${g}))[eE][+-]?([0-9](_?[0-9])*)\\b`},{
    +begin:`\\b(${b})\\b((${g})\\b|\\.)?|(${g})\\b`},{
    +begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
    +begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
    +begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
    +begin:"\\b0[0-7]+n?\\b"}],relevance:0},E={className:"subst",begin:"\\$\\{",
    +end:"\\}",keywords:l,contains:[]},u={begin:"html`",end:"",starts:{end:"`",
    +returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,E],subLanguage:"xml"}},_={
    +begin:"css`",end:"",starts:{end:"`",returnEnd:!1,
    +contains:[i.BACKSLASH_ESCAPE,E],subLanguage:"css"}},m={className:"string",
    +begin:"`",end:"`",contains:[i.BACKSLASH_ESCAPE,E]},y={className:"comment",
    +variants:[i.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
    +className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",
    +end:"\\}",relevance:0},{className:"variable",begin:c+"(?=\\s*(-)|$)",
    +endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
    +}),i.C_BLOCK_COMMENT_MODE,i.C_LINE_COMMENT_MODE]
    +},N=[i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,u,_,m,d,i.REGEXP_MODE]
    +;E.contains=N.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(N)
    +});const A=[].concat(y,E.contains),f=A.concat([{begin:/\(/,end:/\)/,keywords:l,
    +contains:["self"].concat(A)}]),p={className:"params",begin:/\(/,end:/\)/,
    +excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f};return{name:"Javascript",
    +aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:f},
    +illegal:/#(?![$_A-z])/,contains:[i.SHEBANG({label:"shebang",binary:"node",
    +relevance:5}),{label:"use_strict",className:"meta",relevance:10,
    +begin:/^\s*['"]use (strict|asm)['"]/
    +},i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,u,_,m,y,d,{
    +begin:t(/[{,\n]\s*/,r(t(/(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/,c+"\\s*:"))),
    +relevance:0,contains:[{className:"attr",begin:c+r("\\s*:"),relevance:0}]},{
    +begin:"("+i.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
    +keywords:"return throw case",contains:[y,i.REGEXP_MODE,{className:"function",
    +begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+i.UNDERSCORE_IDENT_RE+")\\s*=>",
    +returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{
    +begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0
    +},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}]
    +},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{
    +variants:[{begin:"<>",end:"</>"},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,
    +end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,
    +contains:["self"]}]}],relevance:0},{className:"function",
    +beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l,
    +contains:["self",i.inherit(i.TITLE_MODE,{begin:c}),p],illegal:/%/},{
    +beginKeywords:"while if switch catch for"},{className:"function",
    +begin:i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
    +returnBegin:!0,contains:[p,i.inherit(i.TITLE_MODE,{begin:c})]},{variants:[{
    +begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class",
    +beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{
    +beginKeywords:"extends"},i.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/,
    +end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:c}),"self",p]
    +},{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set",
    +contains:[i.inherit(i.TITLE_MODE,{begin:c}),{begin:/\(\)/},p]},{begin:/\$[(.]/}]
    +}}})());
    +hljs.registerLanguage("json",(()=>{"use strict";return n=>{const e={
    +literal:"true false null"
    +},i=[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],a=[n.QUOTE_STRING_MODE,n.C_NUMBER_MODE],l={
    +end:",",endsWithParent:!0,excludeEnd:!0,contains:a,keywords:e},t={begin:/\{/,
    +end:/\}/,contains:[{className:"attr",begin:/"/,end:/"/,
    +contains:[n.BACKSLASH_ESCAPE],illegal:"\\n"},n.inherit(l,{begin:/:/
    +})].concat(i),illegal:"\\S"},s={begin:"\\[",end:"\\]",contains:[n.inherit(l)],
    +illegal:"\\S"};return a.push(t,s),i.forEach((n=>{a.push(n)})),{name:"JSON",
    +contains:a,keywords:e,illegal:"\\S"}}})());
    +hljs.registerLanguage("kotlin",(()=>{"use strict"
    +;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={
    +className:"number",variants:[{
    +begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    +},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
    +begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{
    +begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    +},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{
    +begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
    +relevance:0};return e=>{const n={
    +keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",
    +built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",
    +literal:"true false null"},i={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"
    +},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},t={
    +className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string",
    +variants:[{begin:'"""',end:'"""(?=[^"])',contains:[t,s]},{begin:"'",end:"'",
    +illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,
    +contains:[e.BACKSLASH_ESCAPE,t,s]}]};s.contains.push(r);const l={
    +className:"meta",
    +begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"
    +},c={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,
    +end:/\)/,contains:[e.inherit(r,{className:"meta-string"})]}]
    +},o=a,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),E={
    +variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,
    +contains:[]}]},d=E;return d.variants[1].contains=[E],E.variants[1].contains=[d],
    +{name:"Kotlin",aliases:["kt","kts"],keywords:n,
    +contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",
    +begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,{className:"keyword",
    +begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",
    +begin:/@\w+/}]}},i,l,c,{className:"function",beginKeywords:"fun",end:"[(]|$",
    +returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{
    +begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,
    +keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,
    +endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,
    +endsWithParent:!0,contains:[E,e.C_LINE_COMMENT_MODE,b],relevance:0
    +},e.C_LINE_COMMENT_MODE,b,l,c,r,e.C_NUMBER_MODE]},b]},{className:"class",
    +beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,
    +illegal:"extends implements",contains:[{
    +beginKeywords:"public protected internal private constructor"
    +},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,
    +excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,
    +excludeBegin:!0,returnEnd:!0},l,c]},r,{className:"meta",begin:"^#!/usr/bin/env",
    +end:"$",illegal:"\n"},o]}}})());
    +hljs.registerLanguage("less",(()=>{"use strict"
    +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],n=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse(),r=i.concat(o)
    +;return a=>{const s=(e=>({IMPORTANT:{className:"meta",begin:"!important"},
    +HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},
    +ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,
    +illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}
    +}))(a),l=r,d="([\\w-]+|@\\{[\\w-]+\\})",c=[],g=[],b=e=>({className:"string",
    +begin:"~?"+e+".*?"+e}),m=(e,t,i)=>({className:e,begin:t,relevance:i}),u={
    +$pattern:/[a-z-]+/,keyword:"and or not only",attribute:t.join(" ")},p={
    +begin:"\\(",end:"\\)",contains:g,keywords:u,relevance:0}
    +;g.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,b("'"),b('"'),a.CSS_NUMBER_MODE,{
    +begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",
    +excludeEnd:!0}
    +},s.HEXCOLOR,p,m("variable","@@?[\\w-]+",10),m("variable","@\\{[\\w-]+\\}"),m("built_in","~?`[^`]*?`"),{
    +className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0
    +},s.IMPORTANT);const f=g.concat({begin:/\{/,end:/\}/,contains:c}),h={
    +beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"
    +}].concat(g)},w={begin:d+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,
    +contains:[{begin:/-(webkit|moz|ms|o)-/},{className:"attribute",
    +begin:"\\b("+n.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,
    +illegal:"[<=$]",relevance:0,contains:g}}]},v={className:"keyword",
    +begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",
    +starts:{end:"[;{}]",keywords:u,returnEnd:!0,contains:g,relevance:0}},y={
    +className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{
    +begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:f}},k={variants:[{
    +begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:d,end:/\{/}],returnBegin:!0,
    +returnEnd:!0,illegal:"[<='$\"]",relevance:0,
    +contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,h,m("keyword","all\\b"),m("variable","@\\{[\\w-]+\\}"),{
    +begin:"\\b("+e.join("|")+")\\b",className:"selector-tag"
    +},m("selector-tag",d+"%?",0),m("selector-id","#"+d),m("selector-class","\\."+d,0),m("selector-tag","&",0),s.ATTRIBUTE_SELECTOR_MODE,{
    +className:"selector-pseudo",begin:":("+i.join("|")+")"},{
    +className:"selector-pseudo",begin:"::("+o.join("|")+")"},{begin:"\\(",end:"\\)",
    +contains:f},{begin:"!important"}]},E={begin:`[\\w-]+:(:)?(${l.join("|")})`,
    +returnBegin:!0,contains:[k]}
    +;return c.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,v,y,E,w,k),{
    +name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:c}}})());
    +hljs.registerLanguage("lua",(()=>{"use strict";return e=>{
    +const t="\\[=*\\[",a="\\]=*\\]",n={begin:t,end:a,contains:["self"]
    +},o=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[",a,{contains:[n],
    +relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,
    +literal:"true false nil",
    +keyword:"and break do else elseif end for goto if in local not or repeat return then until while",
    +built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"
    +},contains:o.concat([{className:"function",beginKeywords:"function",end:"\\)",
    +contains:[e.inherit(e.TITLE_MODE,{
    +begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",
    +begin:"\\(",endsWithParent:!0,contains:o}].concat(o)
    +},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",
    +begin:t,end:a,contains:[n],relevance:5}])}}})());
    +hljs.registerLanguage("makefile",(()=>{"use strict";return e=>{const i={
    +className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",
    +contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},a={className:"string",
    +begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i]},n={className:"variable",
    +begin:/\$\([\w-]+\s/,end:/\)/,keywords:{
    +built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"
    +},contains:[i]},s={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},r={
    +className:"section",begin:/^[^\s]+:/,end:/$/,contains:[i]};return{
    +name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,
    +keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"
    +},contains:[e.HASH_COMMENT_MODE,i,a,n,s,{className:"meta",begin:/^\.PHONY:/,
    +end:/$/,keywords:{$pattern:/[\.\w]+/,"meta-keyword":".PHONY"}},r]}}})());
    +hljs.registerLanguage("xml",(()=>{"use strict";function e(e){
    +return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")}
    +function a(...n){return n.map((n=>e(n))).join("")}function s(...n){
    +return"("+n.map((n=>e(n))).join("|")+")"}return e=>{
    +const t=a(/[A-Z_]/,a("(",/[A-Z0-9_.-]*:/,")?"),/[A-Z0-9_.-]*/),i={
    +className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},r={begin:/\s/,
    +contains:[{className:"meta-keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]
    +},c=e.inherit(r,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{
    +className:"meta-string"}),g=e.inherit(e.QUOTE_STRING_MODE,{
    +className:"meta-string"}),m={endsWithParent:!0,illegal:/</,relevance:0,
    +contains:[{className:"attr",begin:/[A-Za-z0-9._:-]+/,relevance:0},{begin:/=\s*/,
    +relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,
    +end:/"/,contains:[i]},{begin:/'/,end:/'/,contains:[i]},{begin:/[^\s"'=<>`]+/}]}]
    +}]};return{name:"HTML, XML",
    +aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],
    +case_insensitive:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,
    +relevance:10,contains:[r,g,l,c,{begin:/\[/,end:/\]/,contains:[{className:"meta",
    +begin:/<![a-z]/,end:/>/,contains:[r,c,g,l]}]}]},e.COMMENT(/<!--/,/-->/,{
    +relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},i,{
    +className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",
    +begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[m],starts:{
    +end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",
    +begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[m],starts:{
    +end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{
    +className:"tag",begin:/<>|<\/>/},{className:"tag",
    +begin:a(/</,n(a(t,s(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",
    +begin:t,relevance:0,starts:m}]},{className:"tag",begin:a(/<\//,n(a(t,/>/))),
    +contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,
    +endsParent:!0}]}]}}})());
    +hljs.registerLanguage("markdown",(()=>{"use strict";function n(...n){
    +return n.map((n=>{return(e=n)?"string"==typeof e?e:e.source:null;var e
    +})).join("")}return e=>{const a={begin:/<\/?[A-Za-z_]/,end:">",
    +subLanguage:"xml",relevance:0},i={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0
    +},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,
    +relevance:2},{begin:n(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),
    +relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{
    +begin:/\[.+?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{
    +className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,
    +returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",
    +excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",
    +end:"\\]",excludeBegin:!0,excludeEnd:!0}]},s={className:"strong",contains:[],
    +variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},c={
    +className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{
    +begin:/_(?!_)/,end:/_/,relevance:0}]};s.contains.push(c),c.contains.push(s)
    +;let t=[a,i]
    +;return s.contains=s.contains.concat(t),c.contains=c.contains.concat(t),
    +t=t.concat(s,c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{
    +className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:t},{
    +begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",
    +contains:t}]}]},a,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",
    +end:"\\s+",excludeEnd:!0},s,c,{className:"quote",begin:"^>\\s+",contains:t,
    +end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{
    +begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{
    +begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",
    +contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{
    +begin:"^[-\\*]{3,}",end:"$"},i,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{
    +className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{
    +className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}})());
    +hljs.registerLanguage("nginx",(()=>{"use strict";return e=>{const n={
    +className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/\}/},{
    +begin:/[$@]/+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,keywords:{
    +$pattern:"[a-z/_]+",
    +literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"
    +},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",
    +contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/
    +}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]
    +},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",
    +end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{
    +begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",
    +begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{
    +className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},n]};return{
    +name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{
    +begin:e.UNDERSCORE_IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\{/,contains:[{
    +className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{
    +begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|\\{",returnBegin:!0,contains:[{
    +className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}],
    +illegal:"[^\\s\\}]"}}})());
    +hljs.registerLanguage("objectivec",(()=>{"use strict";return e=>{
    +const n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n,
    +keyword:"@interface @class @protocol @implementation"};return{
    +name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],
    +keywords:{$pattern:n,
    +keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",
    +literal:"false true FALSE TRUE nil YES NO NULL",
    +built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"
    +},illegal:"</",contains:[{className:"built_in",
    +begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"
    +},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{
    +className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",
    +contains:[e.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,
    +keywords:{
    +"meta-keyword":"if else elif endif define undef warning error line pragma ifdef ifndef include"
    +},contains:[{begin:/\\\n/,relevance:0},e.inherit(e.QUOTE_STRING_MODE,{
    +className:"meta-string"}),{className:"meta-string",begin:/<.*?>/,end:/$/,
    +illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
    +className:"class",begin:"("+_.keyword.split(" ").join("|")+")\\b",end:/(\{|$)/,
    +excludeEnd:!0,keywords:_,contains:[e.UNDERSCORE_TITLE_MODE]},{
    +begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}})());
    +hljs.registerLanguage("perl",(()=>{"use strict";function e(e){
    +return e?"string"==typeof e?e:e.source:null}function n(...n){
    +return n.map((n=>e(n))).join("")}function t(...n){
    +return"("+n.map((n=>e(n))).join("|")+")"}return e=>{
    +const r=/[dualxmsipngr]{0,12}/,s={$pattern:/[\w.]+/,
    +keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0"
    +},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:s},a={begin:/->\{/,
    +end:/\}/},o={variants:[{begin:/\$\d/},{
    +begin:n(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")
    +},{begin:/[$%@][^\s\w{]/,relevance:0}]
    +},c=[e.BACKSLASH_ESCAPE,i,o],g=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],l=(e,t,s="\\1")=>{
    +const i="\\1"===s?s:n(s,t)
    +;return n(n("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,i,/(?:\\.|[^\\\/])*?/,s,r)
    +},d=(e,t,s)=>n(n("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,s,r),p=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{
    +endsWithParent:!0}),a,{className:"string",contains:c,variants:[{
    +begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",
    +end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{
    +begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",
    +relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",
    +contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",
    +contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{
    +begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",
    +begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",
    +relevance:0},{
    +begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",
    +keywords:"split return print reverse grep",relevance:0,
    +contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{
    +begin:l("s|tr|y",t(...g))},{begin:l("s|tr|y","\\(","\\)")},{
    +begin:l("s|tr|y","\\[","\\]")},{begin:l("s|tr|y","\\{","\\}")}],relevance:2},{
    +className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{
    +begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",t(...g),/\1/)},{
    +begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{
    +begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",
    +end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{
    +begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",
    +subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]
    +}];return i.contains=p,a.contains=p,{name:"Perl",aliases:["pl","pm"],keywords:s,
    +contains:p}}})());
    +hljs.registerLanguage("php",(()=>{"use strict";return e=>{const r={
    +className:"variable",
    +begin:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?![A-Za-z0-9])(?![$])"},t={
    +className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{
    +begin:/\?>/}]},a={className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,
    +end:/\}/}]},n=e.inherit(e.APOS_STRING_MODE,{illegal:null
    +}),i=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,
    +contains:e.QUOTE_STRING_MODE.contains.concat(a)}),o=e.END_SAME_AS_BEGIN({
    +begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/,
    +contains:e.QUOTE_STRING_MODE.contains.concat(a)}),l={className:"string",
    +contains:[e.BACKSLASH_ESCAPE,t],variants:[e.inherit(n,{begin:"b'",end:"'"
    +}),e.inherit(i,{begin:'b"',end:'"'}),i,n,o]},s={className:"number",variants:[{
    +begin:"\\b0b[01]+(?:_[01]+)*\\b"},{begin:"\\b0o[0-7]+(?:_[0-7]+)*\\b"},{
    +begin:"\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b"},{
    +begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:e[+-]?\\d+)?"
    +}],relevance:0},c={
    +keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile enum eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list match|0 mixed new object or private protected public real return string switch throw trait try unset use var void while xor yield",
    +literal:"false null true",
    +built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException UnhandledMatchError ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Stringable Throwable Traversable WeakReference WeakMap Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass"
    +};return{aliases:["php3","php4","php5","php6","php7","php8"],
    +case_insensitive:!0,keywords:c,
    +contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[t]
    +}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]
    +}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,
    +keywords:"__halt_compiler"}),t,{className:"keyword",begin:/\$this\b/},r,{
    +begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",
    +relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,
    +illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{
    +begin:"=>",endsParent:!0},{className:"params",begin:"\\(",end:"\\)",
    +excludeBegin:!0,excludeEnd:!0,keywords:c,
    +contains:["self",r,e.C_BLOCK_COMMENT_MODE,l,s]}]},{className:"class",variants:[{
    +beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",
    +illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{
    +beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{
    +beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,
    +contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",relevance:0,end:";",
    +contains:[e.UNDERSCORE_TITLE_MODE]},l,s]}}})());
    +hljs.registerLanguage("php-template",(()=>{"use strict";return n=>({
    +name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,
    +subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',
    +end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{
    +illegal:null,className:null,contains:null,skip:!0
    +}),n.inherit(n.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,
    +skip:!0})]}]})})());
    +hljs.registerLanguage("plaintext",(()=>{"use strict";return t=>({
    +name:"Plain text",aliases:["text","txt"],disableAutodetect:!0})})());
    +hljs.registerLanguage("properties",(()=>{"use strict";return e=>{
    +var n="[ \\t\\f]*",a=n+"[:=]"+n,t="("+a+"|[ \\t\\f]+)",r="([^\\\\\\W:= \\t\\f\\n]|\\\\.)+",s="([^\\\\:= \\t\\f\\n]|\\\\.)+",i={
    +end:t,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{
    +begin:"\\\\\\\\"},{begin:"\\\\\\n"}]}};return{name:".properties",
    +case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{
    +returnBegin:!0,variants:[{begin:r+a,relevance:1},{begin:r+"[ \\t\\f]+",
    +relevance:0}],contains:[{className:"attr",begin:r,endsParent:!0,relevance:0}],
    +starts:i},{begin:s+t,returnBegin:!0,relevance:0,contains:[{className:"meta",
    +begin:s,endsParent:!0,relevance:0}],starts:i},{className:"attr",relevance:0,
    +begin:s+n+"$"}]}}})());
    +hljs.registerLanguage("python",(()=>{"use strict";return e=>{const n={
    +$pattern:/[A-Za-z]\w+|__\w+__/,
    +keyword:["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],
    +built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],
    +literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],
    +type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]
    +},a={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/,
    +end:/\}/,keywords:n,illegal:/#/},s={begin:/\{\{/,relevance:0},t={
    +className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{
    +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,
    +contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{
    +begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,
    +contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{
    +begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,
    +contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,
    +end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([uU]|[rR])'/,end:/'/,
    +relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{
    +begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,
    +end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,
    +contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,
    +contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
    +},r="[0-9](_?[0-9])*",l=`(\\b(${r}))?\\.(${r})|\\b(${r})\\.`,b={
    +className:"number",relevance:0,variants:[{
    +begin:`(\\b(${r})|(${l}))[eE][+-]?(${r})[jJ]?\\b`},{begin:`(${l})[jJ]?`},{
    +begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{
    +begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{
    +begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${r})[jJ]\\b`}]},o={
    +className:"comment",
    +begin:(d=/# type:/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",d,")")),
    +end:/$/,keywords:n,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,
    +endsWithParent:!0}]},c={className:"params",variants:[{className:"",
    +begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,
    +keywords:n,contains:["self",a,b,t,e.HASH_COMMENT_MODE]}]};var d
    +;return i.contains=[t,b,a],{name:"Python",aliases:["py","gyp","ipython"],
    +keywords:n,illegal:/(<\/|->|\?)|=>/,contains:[a,b,{begin:/\bself\b/},{
    +beginKeywords:"if",relevance:0},t,o,e.HASH_COMMENT_MODE,{variants:[{
    +className:"function",beginKeywords:"def"},{className:"class",
    +beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,
    +contains:[e.UNDERSCORE_TITLE_MODE,c,{begin:/->/,endsWithParent:!0,keywords:n}]
    +},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[b,c,t]}]}}})());
    +hljs.registerLanguage("python-repl",(()=>{"use strict";return s=>({
    +aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",
    +subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{
    +begin:/^\.\.\.(?=[ ]|$)/}]}]})})());
    +hljs.registerLanguage("r",(()=>{"use strict";function e(...e){return e.map((e=>{
    +return(a=e)?"string"==typeof a?a:a.source:null;var a})).join("")}return a=>{
    +const n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/;return{name:"R",
    +illegal:/->/,keywords:{$pattern:n,
    +keyword:"function if in break next repeat else for while",
    +literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",
    +built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"
    +},compilerExtensions:[(a,n)=>{if(!a.beforeMatch)return
    +;if(a.starts)throw Error("beforeMatch cannot be used with starts")
    +;const i=Object.assign({},a);Object.keys(a).forEach((e=>{delete a[e]
    +})),a.begin=e(i.beforeMatch,e("(?=",i.begin,")")),a.starts={relevance:0,
    +contains:[Object.assign(i,{endsParent:!0})]},a.relevance=0,delete i.beforeMatch
    +}],contains:[a.COMMENT(/#'/,/$/,{contains:[{className:"doctag",
    +begin:"@examples",starts:{contains:[{begin:/\n/},{begin:/#'\s*(?=@[a-zA-Z]+)/,
    +endsParent:!0},{begin:/#'/,end:/$/,excludeBegin:!0}]}},{className:"doctag",
    +begin:"@param",end:/$/,contains:[{className:"variable",variants:[{begin:n},{
    +begin:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{className:"doctag",
    +begin:/@[a-zA-Z]+/},{className:"meta-keyword",begin:/\\[a-zA-Z]+/}]
    +}),a.HASH_COMMENT_MODE,{className:"string",contains:[a.BACKSLASH_ESCAPE],
    +variants:[a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/
    +}),a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/
    +}),a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/
    +}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/
    +}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/
    +}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',
    +relevance:0},{begin:"'",end:"'",relevance:0}]},{className:"number",relevance:0,
    +beforeMatch:/([^a-zA-Z0-9._])/,variants:[{
    +match:/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/},{
    +match:/0[xX][0-9a-fA-F]+([pP][+-]?\d+)?[Li]?/},{
    +match:/(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?[Li]?/}]},{begin:"%",end:"%"},{
    +begin:e(/[a-zA-Z][a-zA-Z_0-9]*/,"\\s+<-\\s+")},{begin:"`",end:"`",contains:[{
    +begin:/\\./}]}]}}})());
    +hljs.registerLanguage("ruby",(()=>{"use strict";function e(...e){
    +return e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null;var n
    +})).join("")}return n=>{
    +const a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",i={
    +keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor __FILE__",
    +built_in:"proc lambda",literal:"true false nil"},s={className:"doctag",
    +begin:"@[A-Za-z]+"},r={begin:"#<",end:">"},b=[n.COMMENT("#","$",{contains:[s]
    +}),n.COMMENT("^=begin","^=end",{contains:[s],relevance:10
    +}),n.COMMENT("^__END__","\\n$")],c={className:"subst",begin:/#\{/,end:/\}/,
    +keywords:i},t={className:"string",contains:[n.BACKSLASH_ESCAPE,c],variants:[{
    +begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,
    +end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{
    +begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,
    +end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{
    +begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{
    +begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{
    +begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{
    +begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{
    +begin:/<<[-~]?'?(\w+)\n(?:[^\n]*\n)*?\s*\1\b/,returnBegin:!0,contains:[{
    +begin:/<<[-~]?'?/},n.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,
    +contains:[n.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",d={className:"number",
    +relevance:0,variants:[{
    +begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{
    +begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"
    +},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{
    +begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{
    +begin:"\\b0(_?[0-7])+r?i?\\b"}]},l={className:"params",begin:"\\(",end:"\\)",
    +endsParent:!0,keywords:i},o=[t,{className:"class",beginKeywords:"class module",
    +end:"$|;",illegal:/=/,contains:[n.inherit(n.TITLE_MODE,{
    +begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|!)?"}),{begin:"<\\s*",contains:[{
    +begin:"("+n.IDENT_RE+"::)?"+n.IDENT_RE,relevance:0}]}].concat(b)},{
    +className:"function",begin:e(/def\s+/,(_=a+"\\s*(\\(|;|$)",e("(?=",_,")"))),
    +relevance:0,keywords:"def",end:"$|;",contains:[n.inherit(n.TITLE_MODE,{begin:a
    +}),l].concat(b)},{begin:n.IDENT_RE+"::"},{className:"symbol",
    +begin:n.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",
    +begin:":(?!\\s)",contains:[t,{begin:a}],relevance:0},d,{className:"variable",
    +begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{
    +className:"params",begin:/\|/,end:/\|/,relevance:0,keywords:i},{
    +begin:"("+n.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{
    +className:"regexp",contains:[n.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{
    +begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",
    +end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]
    +}].concat(r,b),relevance:0}].concat(r,b);var _;c.contains=o,l.contains=o
    +;const E=[{begin:/^\s*=>/,starts:{end:"$",contains:o}},{className:"meta",
    +begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",
    +starts:{end:"$",contains:o}}];return b.unshift(r),{name:"Ruby",
    +aliases:["rb","gemspec","podspec","thor","irb"],keywords:i,illegal:/\/\*/,
    +contains:[n.SHEBANG({binary:"ruby"})].concat(E).concat(b).concat(o)}}})());
    +hljs.registerLanguage("rust",(()=>{"use strict";return e=>{
    +const n="([ui](8|16|32|64|128|size)|f(32|64))?",t="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!"
    +;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",
    +keyword:"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield",
    +literal:"true false Some None Ok Err",built_in:t},illegal:"</",
    +contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]
    +}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{
    +className:"string",variants:[{begin:/r(#*)"(.|\n)*?"\1(?!#)/},{
    +begin:/b?'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/}]},{className:"symbol",
    +begin:/'[a-zA-Z_][a-zA-Z0-9_]*/},{className:"number",variants:[{
    +begin:"\\b0b([01_]+)"+n},{begin:"\\b0o([0-7_]+)"+n},{
    +begin:"\\b0x([A-Fa-f0-9_]+)"+n},{
    +begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+n}],relevance:0},{
    +className:"function",beginKeywords:"fn",end:"(\\(|<)",excludeEnd:!0,
    +contains:[e.UNDERSCORE_TITLE_MODE]},{className:"meta",begin:"#!?\\[",end:"\\]",
    +contains:[{className:"meta-string",begin:/"/,end:/"/}]},{className:"class",
    +beginKeywords:"type",end:";",contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{
    +endsParent:!0})],illegal:"\\S"},{className:"class",
    +beginKeywords:"trait enum struct union",end:/\{/,
    +contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{endsParent:!0})],illegal:"[\\w\\d]"
    +},{begin:e.IDENT_RE+"::",keywords:{built_in:t}},{begin:"->"}]}}})());
    +hljs.registerLanguage("scss",(()=>{"use strict"
    +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse()
    +;return a=>{const n=(e=>({IMPORTANT:{className:"meta",begin:"!important"},
    +HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},
    +ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,
    +illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}
    +}))(a),l=o,s=i,d="@[a-z-]+",c={className:"variable",
    +begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"};return{name:"SCSS",case_insensitive:!0,
    +illegal:"[=/|']",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{
    +className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{
    +className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0
    +},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",
    +begin:"\\b("+e.join("|")+")\\b",relevance:0},{className:"selector-pseudo",
    +begin:":("+s.join("|")+")"},{className:"selector-pseudo",
    +begin:"::("+l.join("|")+")"},c,{begin:/\(/,end:/\)/,contains:[a.CSS_NUMBER_MODE]
    +},{className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{
    +begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"
    +},{begin:":",end:";",
    +contains:[c,n.HEXCOLOR,a.CSS_NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.IMPORTANT]
    +},{begin:"@(page|font-face)",lexemes:d,keywords:"@page @font-face"},{begin:"@",
    +end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,
    +keyword:"and or not only",attribute:t.join(" ")},contains:[{begin:d,
    +className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"
    +},c,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.HEXCOLOR,a.CSS_NUMBER_MODE]}]}}
    +})());
    +hljs.registerLanguage("shell",(()=>{"use strict";return s=>({
    +name:"Shell Session",aliases:["console"],contains:[{className:"meta",
    +begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#]/,starts:{end:/[^\\](?=\s*$)/,
    +subLanguage:"bash"}}]})})());
    +hljs.registerLanguage("sql",(()=>{"use strict";function e(e){
    +return e?"string"==typeof e?e:e.source:null}function r(...r){
    +return r.map((r=>e(r))).join("")}function t(...r){
    +return"("+r.map((r=>e(r))).join("|")+")"}return e=>{
    +const n=e.COMMENT("--","$"),a=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],s=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],o=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],c=s,l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update   ","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!s.includes(e))),u={
    +begin:r(/\b/,t(...c),/\s*\(/),keywords:{built_in:c}};return{name:"SQL",
    +case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,
    +keyword:((e,{exceptions:r,when:t}={})=>{const n=t
    +;return r=r||[],e.map((e=>e.match(/\|\d+$/)||r.includes(e)?e:n(e)?e+"|0":e))
    +})(l,{when:e=>e.length<3}),literal:a,type:i,
    +built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]
    +},contains:[{begin:t(...o),keywords:{$pattern:/[\w\.]+/,keyword:l.concat(o),
    +literal:a,type:i}},{className:"type",
    +begin:t("double precision","large object","with timezone","without timezone")
    +},u,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{
    +begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{
    +begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"operator",
    +begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}})());
    +hljs.registerLanguage("swift",(()=>{"use strict";function e(e){
    +return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")}
    +function a(...n){return n.map((n=>e(n))).join("")}function t(...n){
    +return"("+n.map((n=>e(n))).join("|")+")"}
    +const i=e=>a(/\b/,e,/\w$/.test(e)?/\b/:/\B/),s=["Protocol","Type"].map(i),u=["init","self"].map(i),c=["Any","Self"],r=["associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],o=["false","nil","true"],l=["assignment","associativity","higherThan","left","lowerThan","none","right"],m=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],d=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],p=t(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),F=t(p,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),b=a(p,F,"*"),h=t(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),f=t(h,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),w=a(h,f,"*"),y=a(/[A-Z]/,f,"*"),g=["autoclosure",a(/convention\(/,t("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",a(/objc\(/,w,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","testable","UIApplicationMain","unknown","usableFromInline"],E=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"]
    +;return e=>{const p={match:/\s+/,relevance:0},h=e.COMMENT("/\\*","\\*/",{
    +contains:["self"]}),v=[e.C_LINE_COMMENT_MODE,h],N={className:"keyword",
    +begin:a(/\./,n(t(...s,...u))),end:t(...s,...u),excludeBegin:!0},A={
    +match:a(/\./,t(...r)),relevance:0
    +},C=r.filter((e=>"string"==typeof e)).concat(["_|0"]),_={variants:[{
    +className:"keyword",
    +match:t(...r.filter((e=>"string"!=typeof e)).concat(c).map(i),...u)}]},D={
    +$pattern:t(/\b\w+/,/#\w+/),keyword:C.concat(m),literal:o},B=[N,A,_],k=[{
    +match:a(/\./,t(...d)),relevance:0},{className:"built_in",
    +match:a(/\b/,t(...d),/(?=\()/)}],M={match:/->/,relevance:0},S=[M,{
    +className:"operator",relevance:0,variants:[{match:b},{match:`\\.(\\.|${F})+`}]
    +}],x="([0-9a-fA-F]_*)+",I={className:"number",relevance:0,variants:[{
    +match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{
    +match:`\\b0x(${x})(\\.(${x}))?([pP][+-]?(([0-9]_*)+))?\\b`},{
    +match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},O=(e="")=>({
    +className:"subst",variants:[{match:a(/\\/,e,/[0\\tnr"']/)},{
    +match:a(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),T=(e="")=>({className:"subst",
    +match:a(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),L=(e="")=>({className:"subst",
    +label:"interpol",begin:a(/\\/,e,/\(/),end:/\)/}),P=(e="")=>({begin:a(e,/"""/),
    +end:a(/"""/,e),contains:[O(e),T(e),L(e)]}),$=(e="")=>({begin:a(e,/"/),
    +end:a(/"/,e),contains:[O(e),L(e)]}),K={className:"string",
    +variants:[P(),P("#"),P("##"),P("###"),$(),$("#"),$("##"),$("###")]},j={
    +match:a(/`/,w,/`/)},z=[j,{className:"variable",match:/\$\d+/},{
    +className:"variable",match:`\\$${f}+`}],q=[{match:/(@|#)available/,
    +className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:E,
    +contains:[...S,I,K]}]}},{className:"keyword",match:a(/@/,t(...g))},{
    +className:"meta",match:a(/@/,w)}],U={match:n(/\b[A-Z]/),relevance:0,contains:[{
    +className:"type",
    +match:a(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,f,"+")
    +},{className:"type",match:y,relevance:0},{match:/[?!]+/,relevance:0},{
    +match:/\.\.\./,relevance:0},{match:a(/\s+&\s+/,n(y)),relevance:0}]},Z={
    +begin:/</,end:/>/,keywords:D,contains:[...v,...B,...q,M,U]};U.contains.push(Z)
    +;const G={begin:/\(/,end:/\)/,relevance:0,keywords:D,contains:["self",{
    +match:a(w,/\s*:/),keywords:"_|0",relevance:0
    +},...v,...B,...k,...S,I,K,...z,...q,U]},H={beginKeywords:"func",contains:[{
    +className:"title",match:t(j.match,w,b),endsParent:!0,relevance:0},p]},R={
    +begin:/</,end:/>/,contains:[...v,U]},V={begin:/\(/,end:/\)/,keywords:D,
    +contains:[{begin:t(n(a(w,/\s*:/)),n(a(w,/\s+/,w,/\s*:/))),end:/:/,relevance:0,
    +contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:w}]
    +},...v,...B,...S,I,K,...q,U,G],endsParent:!0,illegal:/["']/},W={
    +className:"function",match:n(/\bfunc\b/),contains:[H,R,V,p],illegal:[/\[/,/%/]
    +},X={className:"function",match:/\b(subscript|init[?!]?)\s*(?=[<(])/,keywords:{
    +keyword:"subscript init init? init!",$pattern:/\w+[?!]?/},contains:[R,V,p],
    +illegal:/\[|%/},J={beginKeywords:"operator",end:e.MATCH_NOTHING_RE,contains:[{
    +className:"title",match:b,endsParent:!0,relevance:0}]},Q={
    +beginKeywords:"precedencegroup",end:e.MATCH_NOTHING_RE,contains:[{
    +className:"title",match:y,relevance:0},{begin:/{/,end:/}/,relevance:0,
    +endsParent:!0,keywords:[...l,...o],contains:[U]}]};for(const e of K.variants){
    +const n=e.contains.find((e=>"interpol"===e.label));n.keywords=D
    +;const a=[...B,...k,...S,I,K,...z];n.contains=[...a,{begin:/\(/,end:/\)/,
    +contains:["self",...a]}]}return{name:"Swift",keywords:D,contains:[...v,W,X,{
    +className:"class",beginKeywords:"struct protocol class extension enum",
    +end:"\\{",excludeEnd:!0,keywords:D,contains:[e.inherit(e.TITLE_MODE,{
    +begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...B]},J,Q,{
    +beginKeywords:"import",end:/$/,contains:[...v],relevance:0
    +},...B,...k,...S,I,K,...z,...q,U,G]}}})());
    +hljs.registerLanguage("typescript",(()=>{"use strict"
    +;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
    +;function t(e){return r("(?=",e,")")}function r(...e){return e.map((e=>{
    +return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return i=>{
    +const c={$pattern:e,
    +keyword:n.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]),
    +literal:a,
    +built_in:s.concat(["any","void","number","boolean","string","object","never","enum"])
    +},o={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},l=(e,n,a)=>{
    +const s=e.contains.findIndex((e=>e.label===n))
    +;if(-1===s)throw Error("can not find mode to replace");e.contains.splice(s,1,a)
    +},b=(i=>{const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/,
    +end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{
    +const a=e[0].length+e.index,s=e.input[a];"<"!==s?">"===s&&(((e,{after:n})=>{
    +const a="</"+e[0].slice(1);return-1!==e.input.indexOf(a,n)})(e,{after:a
    +})||n.ignoreMatch()):n.ignoreMatch()}},l={$pattern:e,keyword:n,literal:a,
    +built_in:s},b="\\.([0-9](_?[0-9])*)",d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",g={
    +className:"number",variants:[{
    +begin:`(\\b(${d})((${b})|\\.)?|(${b}))[eE][+-]?([0-9](_?[0-9])*)\\b`},{
    +begin:`\\b(${d})\\b((${b})\\b|\\.)?|(${b})\\b`},{
    +begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
    +begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
    +begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
    +begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",
    +end:"\\}",keywords:l,contains:[]},E={begin:"html`",end:"",starts:{end:"`",
    +returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},m={
    +begin:"css`",end:"",starts:{end:"`",returnEnd:!1,
    +contains:[i.BACKSLASH_ESCAPE,u],subLanguage:"css"}},y={className:"string",
    +begin:"`",end:"`",contains:[i.BACKSLASH_ESCAPE,u]},_={className:"comment",
    +variants:[i.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
    +className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",
    +end:"\\}",relevance:0},{className:"variable",begin:c+"(?=\\s*(-)|$)",
    +endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
    +}),i.C_BLOCK_COMMENT_MODE,i.C_LINE_COMMENT_MODE]
    +},p=[i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,E,m,y,g,i.REGEXP_MODE]
    +;u.contains=p.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(p)
    +});const N=[].concat(_,u.contains),f=N.concat([{begin:/\(/,end:/\)/,keywords:l,
    +contains:["self"].concat(N)}]),A={className:"params",begin:/\(/,end:/\)/,
    +excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f};return{name:"Javascript",
    +aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:f},
    +illegal:/#(?![$_A-z])/,contains:[i.SHEBANG({label:"shebang",binary:"node",
    +relevance:5}),{label:"use_strict",className:"meta",relevance:10,
    +begin:/^\s*['"]use (strict|asm)['"]/
    +},i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,E,m,y,_,g,{
    +begin:r(/[{,\n]\s*/,t(r(/(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/,c+"\\s*:"))),
    +relevance:0,contains:[{className:"attr",begin:c+t("\\s*:"),relevance:0}]},{
    +begin:"("+i.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
    +keywords:"return throw case",contains:[_,i.REGEXP_MODE,{className:"function",
    +begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+i.UNDERSCORE_IDENT_RE+")\\s*=>",
    +returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{
    +begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0
    +},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}]
    +},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{
    +variants:[{begin:"<>",end:"</>"},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,
    +end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,
    +contains:["self"]}]}],relevance:0},{className:"function",
    +beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l,
    +contains:["self",i.inherit(i.TITLE_MODE,{begin:c}),A],illegal:/%/},{
    +beginKeywords:"while if switch catch for"},{className:"function",
    +begin:i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
    +returnBegin:!0,contains:[A,i.inherit(i.TITLE_MODE,{begin:c})]},{variants:[{
    +begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class",
    +beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{
    +beginKeywords:"extends"},i.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/,
    +end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:c}),"self",A]
    +},{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set",
    +contains:[i.inherit(i.TITLE_MODE,{begin:c}),{begin:/\(\)/},A]},{begin:/\$[(.]/}]
    +}})(i)
    +;return Object.assign(b.keywords,c),b.exports.PARAMS_CONTAINS.push(o),b.contains=b.contains.concat([o,{
    +beginKeywords:"namespace",end:/\{/,excludeEnd:!0},{beginKeywords:"interface",
    +end:/\{/,excludeEnd:!0,keywords:"interface extends"
    +}]),l(b,"shebang",i.SHEBANG()),l(b,"use_strict",{className:"meta",relevance:10,
    +begin:/^\s*['"]use strict['"]/
    +}),b.contains.find((e=>"function"===e.className)).relevance=0,Object.assign(b,{
    +name:"TypeScript",aliases:["ts","tsx"]}),b}})());
    +hljs.registerLanguage("vbnet",(()=>{"use strict";function e(e){
    +return e?"string"==typeof e?e:e.source:null}function n(...n){
    +return n.map((n=>e(n))).join("")}function t(...n){
    +return"("+n.map((n=>e(n))).join("|")+")"}return e=>{
    +const a=/\d{1,2}\/\d{1,2}\/\d{4}/,i=/\d{4}-\d{1,2}-\d{1,2}/,s=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,o={
    +className:"literal",variants:[{begin:n(/# */,t(i,a),/ *#/)},{
    +begin:n(/# */,r,/ *#/)},{begin:n(/# */,s,/ *#/)},{
    +begin:n(/# */,t(i,a),/ +/,t(s,r),/ *#/)}]},l=e.COMMENT(/'''/,/$/,{contains:[{
    +className:"doctag",begin:/<\/?/,end:/>/}]}),c=e.COMMENT(null,/$/,{variants:[{
    +begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",
    +aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{
    +keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",
    +built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",
    +type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",
    +literal:"true false nothing"},
    +illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{
    +className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,
    +end:/"/,illegal:/\n/,contains:[{begin:/""/}]},o,{className:"number",relevance:0,
    +variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/
    +},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{
    +begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{
    +className:"label",begin:/^\w+:/},l,c,{className:"meta",
    +begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,
    +end:/$/,keywords:{
    +"meta-keyword":"const disable else elseif enable end externalsource if region then"
    +},contains:[c]}]}}})());
    +hljs.registerLanguage("yaml",(()=>{"use strict";return e=>{
    +var n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={
    +className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/
    +},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",
    +variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(s,{
    +variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={
    +end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},t={begin:/\{/,
    +end:/\}/,contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]",
    +contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{
    +begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{
    +begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$",
    +relevance:10},{className:"string",
    +begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{
    +begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,
    +relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",
    +begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a
    +},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",
    +begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",
    +relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{
    +className:"number",
    +begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"
    +},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},t,g,s],r=[...b]
    +;return r.pop(),r.push(i),l.contains=r,{name:"YAML",case_insensitive:!0,
    +aliases:["yml"],contains:b}}})());
    \ No newline at end of file
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/js/highlightjs-line-numbers.min.js b/metrics-complete-branch-report-Final-Improved-htmlReport/js/highlightjs-line-numbers.min.js
    new file mode 100644
    index 0000000000..8548576704
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/js/highlightjs-line-numbers.min.js
    @@ -0,0 +1,24 @@
    +/*
    +The MIT License (MIT)
    +
    +Copyright (c) 2017 Yauheni Pakala
    +
    +Permission is hereby granted, free of charge, to any person obtaining a copy
    +of this software and associated documentation files (the "Software"), to deal
    +in the Software without restriction, including without limitation the rights
    +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    +copies of the Software, and to permit persons to whom the Software is
    +furnished to do so, subject to the following conditions:
    +
    +The above copyright notice and this permission notice shall be included in all
    +copies or substantial portions of the Software.
    +
    +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    +SOFTWARE.
    + */
    +!function(r,o){"use strict";var e,i="hljs-ln",l="hljs-ln-line",h="hljs-ln-code",s="hljs-ln-numbers",c="hljs-ln-n",m="data-line-number",a=/\r\n|\r|\n/g;function u(e){for(var n=e.toString(),t=e.anchorNode;"TD"!==t.nodeName;)t=t.parentNode;for(var r=e.focusNode;"TD"!==r.nodeName;)r=r.parentNode;var o=parseInt(t.dataset.lineNumber),a=parseInt(r.dataset.lineNumber);if(o==a)return n;var i,l=t.textContent,s=r.textContent;for(a<o&&(i=o,o=a,a=i,i=l,l=s,s=i);0!==n.indexOf(l);)l=l.slice(1);for(;-1===n.lastIndexOf(s);)s=s.slice(0,-1);for(var c=l,u=function(e){for(var n=e;"TABLE"!==n.nodeName;)n=n.parentNode;return n}(t),d=o+1;d<a;++d){var f=p('.{0}[{1}="{2}"]',[h,m,d]);c+="\n"+u.querySelector(f).textContent}return c+="\n"+s}function n(e){try{var n=o.querySelectorAll("code.hljs,code.nohighlight");for(var t in n)n.hasOwnProperty(t)&&(n[t].classList.contains("nohljsln")||d(n[t],e))}catch(e){r.console.error("LineNumbers error: ",e)}}function d(e,n){"object"==typeof e&&r.setTimeout(function(){e.innerHTML=f(e,n)},0)}function f(e,n){var t,r,o=(t=e,{singleLine:function(e){return!!e.singleLine&&e.singleLine}(r=(r=n)||{}),startFrom:function(e,n){var t=1;isFinite(n.startFrom)&&(t=n.startFrom);var r=function(e,n){return e.hasAttribute(n)?e.getAttribute(n):null}(e,"data-ln-start-from");return null!==r&&(t=function(e,n){if(!e)return n;var t=Number(e);return isFinite(t)?t:n}(r,1)),t}(t,r)});return function e(n){var t=n.childNodes;for(var r in t){var o;t.hasOwnProperty(r)&&(o=t[r],0<(o.textContent.trim().match(a)||[]).length&&(0<o.childNodes.length?e(o):v(o.parentNode)))}}(e),function(e,n){var t=g(e);""===t[t.length-1].trim()&&t.pop();if(1<t.length||n.singleLine){for(var r="",o=0,a=t.length;o<a;o++)r+=p('<tr><td class="{0} {1}" {3}="{5}"><div class="{2}" {3}="{5}"></div></td><td class="{0} {4}" {3}="{5}">{6}</td></tr>',[l,s,c,m,h,o+n.startFrom,0<t[o].length?t[o]:" "]);return p('<table class="{0}">{1}</table>',[i,r])}return e}(e.innerHTML,o)}function v(e){var n=e.className;if(/hljs-/.test(n)){for(var t=g(e.innerHTML),r=0,o="";r<t.length;r++){o+=p('<span class="{0}">{1}</span>\n',[n,0<t[r].length?t[r]:" "])}e.innerHTML=o.trim()}}function g(e){return 0===e.length?[]:e.split(a)}function p(e,t){return e.replace(/\{(\d+)\}/g,function(e,n){return void 0!==t[n]?t[n]:e})}r.hljs?(r.hljs.initLineNumbersOnLoad=function(e){"interactive"===o.readyState||"complete"===o.readyState?n(e):r.addEventListener("DOMContentLoaded",function(){n(e)})},r.hljs.lineNumbersBlock=d,r.hljs.lineNumbersValue=function(e,n){if("string"!=typeof e)return;var t=document.createElement("code");return t.innerHTML=e,f(t,n)},(e=o.createElement("style")).type="text/css",e.innerHTML=p(".{0}{border-collapse:collapse}.{0} td{padding:0}.{1}:before{content:attr({2})}",[i,c,m]),o.getElementsByTagName("head")[0].appendChild(e)):r.console.error("highlight.js not detected!"),document.addEventListener("copy",function(e){var n,t=window.getSelection();!function(e){for(var n=e;n;){if(n.className&&-1!==n.className.indexOf("hljs-ln-code"))return 1;n=n.parentNode}}(t.anchorNode)||(n=-1!==window.navigator.userAgent.indexOf("Edge")?u(t):t.toString(),e.clipboardData.setData("text/plain",n),e.preventDefault())})}(window,document);
    \ No newline at end of file
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index.html
    new file mode 100644
    index 0000000000..a54f92a46a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index.html
    @@ -0,0 +1,1287 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..0b25480ac3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,1287 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..d92933581d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,1287 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..7e3cc2bd46
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_CLASS.html
    @@ -0,0 +1,1287 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..44e547e36a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,1287 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..2bd8d18780
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_LINE.html
    @@ -0,0 +1,1287 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..f9f3a0d1d9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,1287 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..5e13672da9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_METHOD.html
    @@ -0,0 +1,1287 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..7bdca2f25e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,1287 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..0d42a1d6a6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,1287 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1.html
    new file mode 100644
    index 0000000000..0322c609fb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1.html
    @@ -0,0 +1,178 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CachedGauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CachedGauge (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CachedGauge</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;import java.util.concurrent.atomic.AtomicReference;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link Gauge} implementation which caches its value for a period of time.
    +&nbsp; *
    +&nbsp; * @param &lt;T&gt; the type of the gauge&#39;s value
    +&nbsp; */
    +&nbsp;public abstract class CachedGauge&lt;T&gt; implements Gauge&lt;T&gt; {
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final AtomicLong reloadAt;
    +&nbsp;    private final long timeoutNS;
    +&nbsp;    private final AtomicReference&lt;T&gt; value;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new cached gauge with the given timeout period.
    +&nbsp;     *
    +&nbsp;     * @param timeout     the timeout
    +&nbsp;     * @param timeoutUnit the unit of {@code timeout}
    +&nbsp;     */
    +&nbsp;    protected CachedGauge(long timeout, TimeUnit timeoutUnit) {
    +<b class="fc">&nbsp;        this(Clock.defaultClock(), timeout, timeoutUnit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new cached gauge with the given clock and timeout period.
    +&nbsp;     *
    +&nbsp;     * @param clock       the clock used to calculate the timeout
    +&nbsp;     * @param timeout     the timeout
    +&nbsp;     * @param timeoutUnit the unit of {@code timeout}
    +&nbsp;     */
    +<b class="fc">&nbsp;    protected CachedGauge(Clock clock, long timeout, TimeUnit timeoutUnit) {</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.reloadAt = new AtomicLong(clock.getTick());</b>
    +<b class="fc">&nbsp;        this.timeoutNS = timeoutUnit.toNanos(timeout);</b>
    +<b class="fc">&nbsp;        this.value = new AtomicReference&lt;&gt;();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Loads the value and returns it.
    +&nbsp;     *
    +&nbsp;     * @return the new value
    +&nbsp;     */
    +&nbsp;    protected abstract T loadValue();
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public T getValue() {
    +<b class="fc">&nbsp;        T currentValue = this.value.get();</b>
    +<b class="fc">&nbsp;        if (shouldLoad() || currentValue == null) {</b>
    +<b class="fc">&nbsp;            T newValue = loadValue();</b>
    +<b class="fc">&nbsp;            if (!this.value.compareAndSet(currentValue, newValue)) {</b>
    +<b class="fc">&nbsp;                return this.value.get();</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return newValue;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return currentValue;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private boolean shouldLoad() {
    +&nbsp;        for ( ;; ) {
    +<b class="fc">&nbsp;            final long time = clock.getTick();</b>
    +<b class="fc">&nbsp;            final long current = reloadAt.get();</b>
    +<b class="fc">&nbsp;            if (current &gt; time) {</b>
    +<b class="fc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (reloadAt.compareAndSet(current, time + timeoutNS)) {</b>
    +<b class="fc">&nbsp;                return true;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-10.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-10.html
    new file mode 100644
    index 0000000000..27df48391b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-10.html
    @@ -0,0 +1,203 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedThreadFactory</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedThreadFactory (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedThreadFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedThreadFactory$InstrumentedRunnable</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.ThreadFactory;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link ThreadFactory} that monitors the number of threads created, running and terminated.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    +&nbsp; * &quot;your-thread-delegate.created&quot;, &quot;your-thread-delegate.running&quot;, etc.
    +&nbsp; */
    +<b class="fc">&nbsp;public class InstrumentedThreadFactory implements ThreadFactory {</b>
    +<b class="fc">&nbsp;    private static final AtomicLong NAME_COUNTER = new AtomicLong();</b>
    +&nbsp;
    +&nbsp;    private final ThreadFactory delegate;
    +&nbsp;    private final Meter created;
    +&nbsp;    private final Counter running;
    +&nbsp;    private final Meter terminated;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Wraps a {@link ThreadFactory}, uses a default auto-generated name.
    +&nbsp;     *
    +&nbsp;     * @param delegate {@link ThreadFactory} to wrap.
    +&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    +&nbsp;     */
    +&nbsp;    public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(delegate, registry, &quot;instrumented-thread-delegate-&quot; + NAME_COUNTER.incrementAndGet());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Wraps a {@link ThreadFactory} with an explicit name.
    +&nbsp;     *
    +&nbsp;     * @param delegate {@link ThreadFactory} to wrap.
    +&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    +&nbsp;     * @param name     name for this delegate.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry, String name) {</b>
    +<b class="fc">&nbsp;        this.delegate = delegate;</b>
    +<b class="fc">&nbsp;        this.created = registry.meter(MetricRegistry.name(name, &quot;created&quot;));</b>
    +<b class="fc">&nbsp;        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</b>
    +<b class="fc">&nbsp;        this.terminated = registry.meter(MetricRegistry.name(name, &quot;terminated&quot;));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Thread newThread(Runnable runnable) {
    +<b class="fc">&nbsp;        Runnable wrappedRunnable = new InstrumentedRunnable(runnable);</b>
    +<b class="fc">&nbsp;        Thread thread = delegate.newThread(wrappedRunnable);</b>
    +<b class="fc">&nbsp;        created.mark();</b>
    +<b class="fc">&nbsp;        return thread;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class InstrumentedRunnable implements Runnable {
    +&nbsp;        private final Runnable task;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedRunnable(Runnable task) {</b>
    +<b class="fc">&nbsp;            this.task = task;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void run() {
    +<b class="fc">&nbsp;            running.inc();</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                task.run();</b>
    +&nbsp;            } finally {
    +<b class="fc">&nbsp;                running.dec();</b>
    +<b class="fc">&nbsp;                terminated.mark();</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-11.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-11.html
    new file mode 100644
    index 0000000000..b7fdac96be
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-11.html
    @@ -0,0 +1,441 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > LockFreeExponentiallyDecayingReservoir</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: LockFreeExponentiallyDecayingReservoir (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">LockFreeExponentiallyDecayingReservoir</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (23/23)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">LockFreeExponentiallyDecayingReservoir$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">LockFreeExponentiallyDecayingReservoir$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (15/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">LockFreeExponentiallyDecayingReservoir$RescalingConsumer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">LockFreeExponentiallyDecayingReservoir$State</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.3%
    +  </span>
    +  <span class="absValue">
    +    (26/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.8%
    +  </span>
    +  <span class="absValue">
    +    (75/80)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.WeightedSnapshot.WeightedSample;
    +&nbsp;
    +&nbsp;import java.time.Duration;
    +&nbsp;import java.util.Objects;
    +&nbsp;import java.util.concurrent.ConcurrentSkipListMap;
    +&nbsp;import java.util.concurrent.ThreadLocalRandom;
    +&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    +&nbsp;import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
    +&nbsp;import java.util.function.BiConsumer;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A lock-free exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al&#39;s
    +&nbsp; * forward-decaying priority reservoir sampling method to produce a statistically representative
    +&nbsp; * sampling reservoir, exponentially biased towards newer entries.
    +&nbsp; *
    +&nbsp; * @see &lt;a href=&quot;http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf&quot;&gt;
    +&nbsp; * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE &#39;09:
    +&nbsp; * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)&lt;/a&gt;
    +&nbsp; *
    +&nbsp; * {@link LockFreeExponentiallyDecayingReservoir} is based closely on the {@link ExponentiallyDecayingReservoir},
    +&nbsp; * however it provides looser guarantees while completely avoiding locks.
    +&nbsp; *
    +&nbsp; * Looser guarantees:
    +&nbsp; * &lt;ul&gt;
    +&nbsp; *     &lt;li&gt; Updates which occur concurrently with rescaling may be discarded if the orphaned state node is updated after
    +&nbsp; *     rescale has replaced it. This condition has a greater probability as the rescale interval is reduced due to the
    +&nbsp; *     increased frequency of rescaling. {@link #rescaleThresholdNanos} values below 30 seconds are not recommended.
    +&nbsp; *     &lt;li&gt; Given a small rescale threshold, updates may attempt to rescale into a new bucket, but lose the CAS race
    +&nbsp; *     and update into a newer bucket than expected. In these cases the measurement weight is reduced accordingly.
    +&nbsp; *     &lt;li&gt;In the worst case, all concurrent threads updating the reservoir may attempt to rescale rather than
    +&nbsp; *     a single thread holding an exclusive write lock. It&#39;s expected that the configuration is set such that
    +&nbsp; *     rescaling is substantially less common than updating at peak load. Even so, when size is reasonably small
    +&nbsp; *     it can be more efficient to rescale than to park and context switch.
    +&nbsp; * &lt;/ul&gt;
    +&nbsp; *
    +&nbsp; * @author &lt;a href=&quot;mailto:ckozak@ckozak.net&quot;&gt;Carter Kozak&lt;/a&gt;
    +&nbsp; */
    +<b class="fc">&nbsp;public final class LockFreeExponentiallyDecayingReservoir implements Reservoir {</b>
    +&nbsp;
    +&nbsp;    private static final double SECONDS_PER_NANO = .000_000_001D;
    +<b class="fc">&nbsp;    private static final AtomicReferenceFieldUpdater&lt;LockFreeExponentiallyDecayingReservoir, State&gt; stateUpdater =</b>
    +<b class="fc">&nbsp;            AtomicReferenceFieldUpdater.newUpdater(LockFreeExponentiallyDecayingReservoir.class, State.class, &quot;state&quot;);</b>
    +&nbsp;
    +&nbsp;    private final int size;
    +&nbsp;    private final long rescaleThresholdNanos;
    +&nbsp;    private final Clock clock;
    +&nbsp;
    +&nbsp;    private volatile State state;
    +&nbsp;
    +<b class="fc">&nbsp;    private static final class State {</b>
    +&nbsp;
    +<b class="fc">&nbsp;        private static final AtomicIntegerFieldUpdater&lt;State&gt; countUpdater =</b>
    +<b class="fc">&nbsp;                AtomicIntegerFieldUpdater.newUpdater(State.class, &quot;count&quot;);</b>
    +&nbsp;
    +&nbsp;        private final double alphaNanos;
    +&nbsp;        private final int size;
    +&nbsp;        private final long startTick;
    +&nbsp;        // Count is updated after samples are successfully added to the map.
    +&nbsp;        private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    +&nbsp;
    +&nbsp;        private volatile int count;
    +&nbsp;
    +&nbsp;        State(
    +&nbsp;                double alphaNanos,
    +&nbsp;                int size,
    +&nbsp;                long startTick,
    +&nbsp;                int count,
    +<b class="fc">&nbsp;                ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values) {</b>
    +<b class="fc">&nbsp;            this.alphaNanos = alphaNanos;</b>
    +<b class="fc">&nbsp;            this.size = size;</b>
    +<b class="fc">&nbsp;            this.startTick = startTick;</b>
    +<b class="fc">&nbsp;            this.values = values;</b>
    +<b class="fc">&nbsp;            this.count = count;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private void update(long value, long timestampNanos) {
    +<b class="fc">&nbsp;            double itemWeight = weight(timestampNanos - startTick);</b>
    +<b class="fc">&nbsp;            double priority = itemWeight / ThreadLocalRandom.current().nextDouble();</b>
    +<b class="fc">&nbsp;            boolean mapIsFull = count &gt;= size;</b>
    +<b class="fc">&nbsp;            if (!mapIsFull || values.firstKey() &lt; priority) {</b>
    +<b class="fc">&nbsp;                addSample(priority, value, itemWeight, mapIsFull);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private void addSample(double priority, long value, double itemWeight, boolean bypassIncrement) {
    +<b class="fc">&nbsp;            if (values.putIfAbsent(priority, new WeightedSample(value, itemWeight)) == null</b>
    +<b class="fc">&nbsp;                    &amp;&amp; (bypassIncrement || countUpdater.incrementAndGet(this) &gt; size)) {</b>
    +<b class="fc">&nbsp;                values.pollFirstEntry();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /* &quot;A common feature of the above techniques—indeed, the key technique that
    +&nbsp;         * allows us to track the decayed weights efficiently—is that they maintain
    +&nbsp;         * counts and other quantities based on g(ti ? L), and only scale by g(t ? L)
    +&nbsp;         * at query time. But while g(ti ?L)/g(t?L) is guaranteed to lie between zero
    +&nbsp;         * and one, the intermediate values of g(ti ? L) could become very large. For
    +&nbsp;         * polynomial functions, these values should not grow too large, and should be
    +&nbsp;         * effectively represented in practice by floating point values without loss of
    +&nbsp;         * precision. For exponential functions, these values could grow quite large as
    +&nbsp;         * new values of (ti ? L) become large, and potentially exceed the capacity of
    +&nbsp;         * common floating point types. However, since the values stored by the
    +&nbsp;         * algorithms are linear combinations of g values (scaled sums), they can be
    +&nbsp;         * rescaled relative to a new landmark. That is, by the analysis of exponential
    +&nbsp;         * decay in Section III-A, the choice of L does not affect the final result. We
    +&nbsp;         * can therefore multiply each value based on L by a factor of exp(??(L? ? L)),
    +&nbsp;         * and obtain the correct value as if we had instead computed relative to a new
    +&nbsp;         * landmark L? (and then use this new L? at query time). This can be done with
    +&nbsp;         * a linear pass over whatever data structure is being used.&quot;
    +&nbsp;         */
    +&nbsp;        State rescale(long newTick) {
    +<b class="fc">&nbsp;            long durationNanos = newTick - startTick;</b>
    +<b class="fc">&nbsp;            double scalingFactor = Math.exp(-alphaNanos * durationNanos);</b>
    +<b class="fc">&nbsp;            int newCount = 0;</b>
    +<b class="fc">&nbsp;            ConcurrentSkipListMap&lt;Double, WeightedSample&gt; newValues = new ConcurrentSkipListMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;            if (Double.compare(scalingFactor, 0) != 0) {</b>
    +<b class="fc">&nbsp;                RescalingConsumer consumer = new RescalingConsumer(scalingFactor, newValues);</b>
    +<b class="fc">&nbsp;                values.forEach(consumer);</b>
    +&nbsp;                // make sure the counter is in sync with the number of stored samples.
    +<b class="fc">&nbsp;                newCount = consumer.count;</b>
    +&nbsp;            }
    +&nbsp;            // It&#39;s possible that more values were added while the map was scanned, those with the
    +&nbsp;            // minimum priorities are removed.
    +<b class="fc">&nbsp;            while (newCount &gt; size) {</b>
    +<b class="nc">&nbsp;                Objects.requireNonNull(newValues.pollFirstEntry(), &quot;Expected an entry&quot;);</b>
    +<b class="nc">&nbsp;                newCount--;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return new State(alphaNanos, size, newTick, newCount, newValues);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private double weight(long durationNanos) {
    +<b class="fc">&nbsp;            return Math.exp(alphaNanos * durationNanos);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static final class RescalingConsumer implements BiConsumer&lt;Double, WeightedSample&gt; {</b>
    +&nbsp;        private final double scalingFactor;
    +&nbsp;        private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    +&nbsp;        private int count;
    +&nbsp;
    +<b class="fc">&nbsp;        RescalingConsumer(double scalingFactor, ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values) {</b>
    +<b class="fc">&nbsp;            this.scalingFactor = scalingFactor;</b>
    +<b class="fc">&nbsp;            this.values = values;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void accept(Double priority, WeightedSample sample) {
    +<b class="fc">&nbsp;            double newWeight = sample.weight * scalingFactor;</b>
    +<b class="fc">&nbsp;            if (Double.compare(newWeight, 0) == 0) {</b>
    +&nbsp;                return;
    +&nbsp;            }
    +<b class="fc">&nbsp;            WeightedSample newSample = new WeightedSample(sample.value, newWeight);</b>
    +<b class="fc">&nbsp;            if (values.put(priority * scalingFactor, newSample) == null) {</b>
    +<b class="fc">&nbsp;                count++;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private LockFreeExponentiallyDecayingReservoir(int size, double alpha, Duration rescaleThreshold, Clock clock) {</b>
    +&nbsp;        // Scale alpha to nanoseconds
    +<b class="fc">&nbsp;        double alphaNanos = alpha * SECONDS_PER_NANO;</b>
    +<b class="fc">&nbsp;        this.size = size;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.rescaleThresholdNanos = rescaleThreshold.toNanos();</b>
    +<b class="fc">&nbsp;        this.state = new State(alphaNanos, size, clock.getTick(), 0, new ConcurrentSkipListMap&lt;&gt;());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int size() {
    +<b class="fc">&nbsp;        return Math.min(size, state.count);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void update(long value) {
    +<b class="fc">&nbsp;        long now = clock.getTick();</b>
    +<b class="fc">&nbsp;        rescaleIfNeeded(now).update(value, now);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private State rescaleIfNeeded(long currentTick) {
    +&nbsp;        // This method is optimized for size so the check may be quickly inlined.
    +&nbsp;        // Rescaling occurs substantially less frequently than the check itself.
    +<b class="fc">&nbsp;        State stateSnapshot = this.state;</b>
    +<b class="fc">&nbsp;        if (currentTick - stateSnapshot.startTick &gt;= rescaleThresholdNanos) {</b>
    +<b class="fc">&nbsp;            return doRescale(currentTick, stateSnapshot);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return stateSnapshot;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private State doRescale(long currentTick, State stateSnapshot) {
    +<b class="fc">&nbsp;        State newState = stateSnapshot.rescale(currentTick);</b>
    +<b class="fc">&nbsp;        if (stateUpdater.compareAndSet(this, stateSnapshot, newState)) {</b>
    +&nbsp;            // newState successfully installed
    +<b class="fc">&nbsp;            return newState;</b>
    +&nbsp;        }
    +&nbsp;        // Otherwise another thread has won the race and we can return the result of a volatile read.
    +&nbsp;        // It&#39;s possible this has taken so long that another update is required, however that&#39;s unlikely
    +&nbsp;        // and no worse than the standard race between a rescale and update.
    +<b class="fc">&nbsp;        return this.state;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Snapshot getSnapshot() {
    +<b class="fc">&nbsp;        State stateSnapshot = rescaleIfNeeded(clock.getTick());</b>
    +<b class="fc">&nbsp;        return new WeightedSnapshot(stateSnapshot.values.values());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static Builder builder() {
    +<b class="fc">&nbsp;        return new Builder();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * By default this uses a size of 1028 elements, which offers a 99.9%
    +&nbsp;     * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
    +&nbsp;     * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static final class Builder {</b>
    +&nbsp;        private static final int DEFAULT_SIZE = 1028;
    +&nbsp;        private static final double DEFAULT_ALPHA = 0.015D;
    +<b class="fc">&nbsp;        private static final Duration DEFAULT_RESCALE_THRESHOLD = Duration.ofHours(1);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        private int size = DEFAULT_SIZE;</b>
    +<b class="fc">&nbsp;        private double alpha = DEFAULT_ALPHA;</b>
    +<b class="fc">&nbsp;        private Duration rescaleThreshold = DEFAULT_RESCALE_THRESHOLD;</b>
    +<b class="fc">&nbsp;        private Clock clock = Clock.defaultClock();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        private Builder() {}</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Maximum number of samples to keep in the reservoir. Once this number is reached older samples are
    +&nbsp;         * replaced (based on weight, with some amount of random jitter).
    +&nbsp;         */
    +&nbsp;        public Builder size(int value) {
    +<b class="fc">&nbsp;            if (value &lt;= 0) {</b>
    +<b class="nc">&nbsp;                throw new IllegalArgumentException(</b>
    +&nbsp;                        &quot;LockFreeExponentiallyDecayingReservoir size must be positive: &quot; + value);
    +&nbsp;            }
    +<b class="fc">&nbsp;            this.size = value;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Alpha is the exponential decay factor. Higher values bias results more heavily toward newer values.
    +&nbsp;         */
    +&nbsp;        public Builder alpha(double value) {
    +<b class="fc">&nbsp;            this.alpha = value;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Interval at which this reservoir is rescaled.
    +&nbsp;         */
    +&nbsp;        public Builder rescaleThreshold(Duration value) {
    +<b class="nc">&nbsp;            this.rescaleThreshold = Objects.requireNonNull(value, &quot;rescaleThreshold is required&quot;);</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Clock instance used for decay.
    +&nbsp;         */
    +&nbsp;        public Builder clock(Clock value) {
    +<b class="fc">&nbsp;            this.clock = Objects.requireNonNull(value, &quot;clock is required&quot;);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Reservoir build() {
    +<b class="fc">&nbsp;            return new LockFreeExponentiallyDecayingReservoir(size, alpha, rescaleThreshold, clock);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-12.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-12.html
    new file mode 100644
    index 0000000000..c7369f1499
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-12.html
    @@ -0,0 +1,222 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Meter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Meter (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Meter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.LongAdder;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A meter metric which measures mean throughput and one-, five-, and fifteen-minute
    +&nbsp; * moving average throughputs.
    +&nbsp; *
    +&nbsp; * @see MovingAverages
    +&nbsp; */
    +&nbsp;public class Meter implements Metered {
    +&nbsp;
    +&nbsp;    private final MovingAverages movingAverages;
    +<b class="fc">&nbsp;    private final LongAdder count = new LongAdder();</b>
    +&nbsp;    private final long startTime;
    +&nbsp;    private final Clock clock;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link Meter}.
    +&nbsp;     *
    +&nbsp;     * @param movingAverages the {@link MovingAverages} implementation to use
    +&nbsp;     */
    +&nbsp;    public Meter(MovingAverages movingAverages) {
    +<b class="nc">&nbsp;        this(movingAverages, Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link Meter}.
    +&nbsp;     */
    +&nbsp;    public Meter() {
    +<b class="fc">&nbsp;        this(Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link Meter}.
    +&nbsp;     *
    +&nbsp;     * @param clock the clock to use for the meter ticks
    +&nbsp;     */
    +&nbsp;    public Meter(Clock clock) {
    +<b class="fc">&nbsp;        this(new ExponentialMovingAverages(clock), clock);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link Meter}.
    +&nbsp;     *
    +&nbsp;     * @param movingAverages the {@link MovingAverages} implementation to use
    +&nbsp;     * @param clock          the clock to use for the meter ticks
    +&nbsp;     */
    +<b class="fc">&nbsp;    public Meter(MovingAverages movingAverages, Clock clock) {</b>
    +<b class="fc">&nbsp;        this.movingAverages = movingAverages;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.startTime = this.clock.getTick();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Mark the occurrence of an event.
    +&nbsp;     */
    +&nbsp;    public void mark() {
    +<b class="fc">&nbsp;        mark(1);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Mark the occurrence of a given number of events.
    +&nbsp;     *
    +&nbsp;     * @param n the number of events
    +&nbsp;     */
    +&nbsp;    public void mark(long n) {
    +<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    +<b class="fc">&nbsp;        count.add(n);</b>
    +<b class="fc">&nbsp;        movingAverages.update(n);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public long getCount() {
    +<b class="fc">&nbsp;        return count.sum();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getFifteenMinuteRate() {
    +<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    +<b class="fc">&nbsp;        return movingAverages.getM15Rate();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getFiveMinuteRate() {
    +<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    +<b class="fc">&nbsp;        return movingAverages.getM5Rate();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getMeanRate() {
    +<b class="pc">&nbsp;        if (getCount() == 0) {</b>
    +<b class="fc">&nbsp;            return 0.0;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            final double elapsed = clock.getTick() - startTime;</b>
    +<b class="fc">&nbsp;            return getCount() / elapsed * TimeUnit.SECONDS.toNanos(1);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getOneMinuteRate() {
    +<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    +<b class="fc">&nbsp;        return movingAverages.getM1Rate();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-13.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-13.html
    new file mode 100644
    index 0000000000..e5b15b8f03
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-13.html
    @@ -0,0 +1,137 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricAttribute</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricAttribute (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricAttribute</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Represents attributes of metrics which can be reported.
    +&nbsp; */
    +<b class="fc">&nbsp;public enum MetricAttribute {</b>
    +&nbsp;
    +<b class="fc">&nbsp;    MAX(&quot;max&quot;),</b>
    +<b class="fc">&nbsp;    MEAN(&quot;mean&quot;),</b>
    +<b class="fc">&nbsp;    MIN(&quot;min&quot;),</b>
    +<b class="fc">&nbsp;    STDDEV(&quot;stddev&quot;),</b>
    +<b class="fc">&nbsp;    P50(&quot;p50&quot;),</b>
    +<b class="fc">&nbsp;    P75(&quot;p75&quot;),</b>
    +<b class="fc">&nbsp;    P95(&quot;p95&quot;),</b>
    +<b class="fc">&nbsp;    P98(&quot;p98&quot;),</b>
    +<b class="fc">&nbsp;    P99(&quot;p99&quot;),</b>
    +<b class="fc">&nbsp;    P999(&quot;p999&quot;),</b>
    +<b class="fc">&nbsp;    COUNT(&quot;count&quot;),</b>
    +<b class="fc">&nbsp;    M1_RATE(&quot;m1_rate&quot;),</b>
    +<b class="fc">&nbsp;    M5_RATE(&quot;m5_rate&quot;),</b>
    +<b class="fc">&nbsp;    M15_RATE(&quot;m15_rate&quot;),</b>
    +<b class="fc">&nbsp;    MEAN_RATE(&quot;mean_rate&quot;);</b>
    +&nbsp;
    +&nbsp;    private final String code;
    +&nbsp;
    +<b class="fc">&nbsp;    MetricAttribute(String code) {</b>
    +<b class="fc">&nbsp;        this.code = code;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getCode() {
    +<b class="fc">&nbsp;        return code;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-14.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-14.html
    new file mode 100644
    index 0000000000..a589e530ff
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-14.html
    @@ -0,0 +1,136 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricFilter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricFilter (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A filter used to determine whether or not a metric should be reported, among other things.
    +&nbsp; */
    +&nbsp;public interface MetricFilter {
    +&nbsp;    /**
    +&nbsp;     * Matches all metrics, regardless of type or name.
    +&nbsp;     */
    +<b class="fc">&nbsp;    MetricFilter ALL = (name, metric) -&gt; true;</b>
    +&nbsp;
    +&nbsp;    static MetricFilter startsWith(String prefix) {
    +<b class="fc">&nbsp;        return (name, metric) -&gt; name.startsWith(prefix);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    static MetricFilter endsWith(String suffix) {
    +<b class="fc">&nbsp;        return (name, metric) -&gt; name.endsWith(suffix);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    static MetricFilter contains(String substring) {
    +<b class="fc">&nbsp;        return (name, metric) -&gt; name.contains(substring);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns {@code true} if the metric matches the filter; {@code false} otherwise.
    +&nbsp;     *
    +&nbsp;     * @param name   the metric&#39;s name
    +&nbsp;     * @param metric the metric
    +&nbsp;     * @return {@code true} if the metric matches the filter
    +&nbsp;     */
    +&nbsp;    boolean matches(String name, Metric metric);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-15.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-15.html
    new file mode 100644
    index 0000000000..42f3e6bc09
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-15.html
    @@ -0,0 +1,1046 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricRegistry</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricRegistry</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (41/41)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (108/116)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">MetricRegistry$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    36.4%
    +  </span>
    +  <span class="absValue">
    +    (4/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    36.4%
    +  </span>
    +  <span class="absValue">
    +    (4/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$MetricBuilder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$MetricBuilder$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$MetricBuilder$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$MetricBuilder$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$MetricBuilder$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$MetricBuilder$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistry$MetricSupplier</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.SortedSet;
    +&nbsp;import java.util.TreeMap;
    +&nbsp;import java.util.TreeSet;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.CopyOnWriteArrayList;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A registry of metric instances.
    +&nbsp; */
    +&nbsp;public class MetricRegistry implements MetricSet {
    +&nbsp;    /**
    +&nbsp;     * Concatenates elements to form a dotted name, eliding any null values or empty strings.
    +&nbsp;     *
    +&nbsp;     * @param name  the first element of the name
    +&nbsp;     * @param names the remaining elements of the name
    +&nbsp;     * @return {@code name} and {@code names} concatenated by periods
    +&nbsp;     */
    +&nbsp;    public static String name(String name, String... names) {
    +<b class="fc">&nbsp;        final StringBuilder builder = new StringBuilder();</b>
    +<b class="fc">&nbsp;        append(builder, name);</b>
    +<b class="pc">&nbsp;        if (names != null) {</b>
    +<b class="fc">&nbsp;            for (String s : names) {</b>
    +<b class="fc">&nbsp;                append(builder, s);</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        return builder.toString();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Concatenates a class name and elements to form a dotted name, eliding any null values or
    +&nbsp;     * empty strings.
    +&nbsp;     *
    +&nbsp;     * @param klass the first element of the name
    +&nbsp;     * @param names the remaining elements of the name
    +&nbsp;     * @return {@code klass} and {@code names} concatenated by periods
    +&nbsp;     */
    +&nbsp;    public static String name(Class&lt;?&gt; klass, String... names) {
    +<b class="fc">&nbsp;        return name(klass.getName(), names);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static void append(StringBuilder builder, String part) {
    +<b class="pc">&nbsp;        if (part != null &amp;&amp; !part.isEmpty()) {</b>
    +<b class="fc">&nbsp;            if (builder.length() &gt; 0) {</b>
    +<b class="fc">&nbsp;                builder.append(&#39;.&#39;);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            builder.append(part);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final ConcurrentMap&lt;String, Metric&gt; metrics;
    +&nbsp;    private final List&lt;MetricRegistryListener&gt; listeners;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link MetricRegistry}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public MetricRegistry() {</b>
    +<b class="fc">&nbsp;        this.metrics = buildMap();</b>
    +<b class="fc">&nbsp;        this.listeners = new CopyOnWriteArrayList&lt;&gt;();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link ConcurrentMap} implementation for use inside the registry. Override this
    +&nbsp;     * to create a {@link MetricRegistry} with space- or time-bounded metric lifecycles, for
    +&nbsp;     * example.
    +&nbsp;     *
    +&nbsp;     * @return a new {@link ConcurrentMap}
    +&nbsp;     */
    +&nbsp;    protected ConcurrentMap&lt;String, Metric&gt; buildMap() {
    +<b class="fc">&nbsp;        return new ConcurrentHashMap&lt;&gt;();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Given a {@link Gauge}, registers it under the given name and returns it
    +&nbsp;     *
    +&nbsp;     * @param name the name of the gauge
    +&nbsp;     * @param &lt;T&gt;  the type of the gauge&#39;s value
    +&nbsp;     * @return the registered {@link Gauge}
    +&nbsp;     * @since 4.2.10
    +&nbsp;     */
    +&nbsp;    public &lt;T&gt; Gauge&lt;T&gt; registerGauge(String name, Gauge&lt;T&gt; metric) throws IllegalArgumentException {
    +<b class="fc">&nbsp;        return register(name, metric);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Given a {@link Metric}, registers it under the given name.
    +&nbsp;     *
    +&nbsp;     * @param name   the name of the metric
    +&nbsp;     * @param metric the metric
    +&nbsp;     * @param &lt;T&gt;    the type of the metric
    +&nbsp;     * @return {@code metric}
    +&nbsp;     * @throws IllegalArgumentException if the name is already registered or metric variable is null
    +&nbsp;     */
    +&nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
    +&nbsp;    public &lt;T extends Metric&gt; T register(String name, T metric) throws IllegalArgumentException {
    +&nbsp;
    +<b class="pc">&nbsp;        if (metric == null) {</b>
    +<b class="fc">&nbsp;            throw new NullPointerException(&quot;metric == null&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="pc">&nbsp;        if (metric instanceof MetricRegistry) {</b>
    +<b class="fc">&nbsp;            final MetricRegistry childRegistry = (MetricRegistry) metric;</b>
    +<b class="fc">&nbsp;            final String childName = name;</b>
    +<b class="fc">&nbsp;            childRegistry.addListener(new MetricRegistryListener() {</b>
    +&nbsp;                @Override
    +&nbsp;                public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    +<b class="fc">&nbsp;                    register(name(childName, name), gauge);</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                @Override
    +&nbsp;                public void onGaugeRemoved(String name) {
    +<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                @Override
    +&nbsp;                public void onCounterAdded(String name, Counter counter) {
    +<b class="fc">&nbsp;                    register(name(childName, name), counter);</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                @Override
    +&nbsp;                public void onCounterRemoved(String name) {
    +<b class="fc">&nbsp;                    remove(name(childName, name));</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                @Override
    +&nbsp;                public void onHistogramAdded(String name, Histogram histogram) {
    +<b class="nc">&nbsp;                    register(name(childName, name), histogram);</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                @Override
    +&nbsp;                public void onHistogramRemoved(String name) {
    +<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                @Override
    +&nbsp;                public void onMeterAdded(String name, Meter meter) {
    +<b class="nc">&nbsp;                    register(name(childName, name), meter);</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                @Override
    +&nbsp;                public void onMeterRemoved(String name) {
    +<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                @Override
    +&nbsp;                public void onTimerAdded(String name, Timer timer) {
    +<b class="nc">&nbsp;                    register(name(childName, name), timer);</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                @Override
    +&nbsp;                public void onTimerRemoved(String name) {
    +<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    +&nbsp;                }
    +&nbsp;            });
    +<b class="pc">&nbsp;        } else if (metric instanceof MetricSet) {</b>
    +<b class="fc">&nbsp;            registerAll(name, (MetricSet) metric);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            final Metric existing = metrics.putIfAbsent(name, metric);</b>
    +<b class="pc">&nbsp;            if (existing == null) {</b>
    +<b class="fc">&nbsp;                onMetricAdded(name, metric);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;A metric named &quot; + name + &quot; already exists&quot;);</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        return metric;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Given a metric set, registers them.
    +&nbsp;     *
    +&nbsp;     * @param metrics a set of metrics
    +&nbsp;     * @throws IllegalArgumentException if any of the names are already registered
    +&nbsp;     */
    +&nbsp;    public void registerAll(MetricSet metrics) throws IllegalArgumentException {
    +<b class="fc">&nbsp;        registerAll(null, metrics);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Counter} registered under this name; or create and register
    +&nbsp;     * a new {@link Counter} if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name the name of the metric
    +&nbsp;     * @return a new or pre-existing {@link Counter}
    +&nbsp;     */
    +&nbsp;    public Counter counter(String name) {
    +<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.COUNTERS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Counter} registered under this name; or create and register
    +&nbsp;     * a new {@link Counter} using the provided MetricSupplier if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name     the name of the metric
    +&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a counter.
    +&nbsp;     * @return a new or pre-existing {@link Counter}
    +&nbsp;     */
    +&nbsp;    public Counter counter(String name, final MetricSupplier&lt;Counter&gt; supplier) {
    +<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Counter&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Counter newMetric() {
    +<b class="fc">&nbsp;                return supplier.newMetric();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Counter.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Histogram} registered under this name; or create and register
    +&nbsp;     * a new {@link Histogram} if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name the name of the metric
    +&nbsp;     * @return a new or pre-existing {@link Histogram}
    +&nbsp;     */
    +&nbsp;    public Histogram histogram(String name) {
    +<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.HISTOGRAMS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Histogram} registered under this name; or create and register
    +&nbsp;     * a new {@link Histogram} using the provided MetricSupplier if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name     the name of the metric
    +&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a histogram
    +&nbsp;     * @return a new or pre-existing {@link Histogram}
    +&nbsp;     */
    +&nbsp;    public Histogram histogram(String name, final MetricSupplier&lt;Histogram&gt; supplier) {
    +<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Histogram&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Histogram newMetric() {
    +<b class="fc">&nbsp;                return supplier.newMetric();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Histogram.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Meter} registered under this name; or create and register
    +&nbsp;     * a new {@link Meter} if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name the name of the metric
    +&nbsp;     * @return a new or pre-existing {@link Meter}
    +&nbsp;     */
    +&nbsp;    public Meter meter(String name) {
    +<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.METERS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Meter} registered under this name; or create and register
    +&nbsp;     * a new {@link Meter} using the provided MetricSupplier if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name     the name of the metric
    +&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a Meter
    +&nbsp;     * @return a new or pre-existing {@link Meter}
    +&nbsp;     */
    +&nbsp;    public Meter meter(String name, final MetricSupplier&lt;Meter&gt; supplier) {
    +<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Meter&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Meter newMetric() {
    +<b class="fc">&nbsp;                return supplier.newMetric();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Meter.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Timer} registered under this name; or create and register
    +&nbsp;     * a new {@link Timer} if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name the name of the metric
    +&nbsp;     * @return a new or pre-existing {@link Timer}
    +&nbsp;     */
    +&nbsp;    public Timer timer(String name) {
    +<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.TIMERS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Timer} registered under this name; or create and register
    +&nbsp;     * a new {@link Timer} using the provided MetricSupplier if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name     the name of the metric
    +&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a Timer
    +&nbsp;     * @return a new or pre-existing {@link Timer}
    +&nbsp;     */
    +&nbsp;    public Timer timer(String name, final MetricSupplier&lt;Timer&gt; supplier) {
    +<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Timer&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Timer newMetric() {
    +<b class="fc">&nbsp;                return supplier.newMetric();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Timer.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Gauge} registered under this name; or create and register
    +&nbsp;     * a new {@link SettableGauge} if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name the name of the metric
    +&nbsp;     * @return a pre-existing {@link Gauge} or a new {@link SettableGauge}
    +&nbsp;     * @since 4.2
    +&nbsp;     */
    +&nbsp;    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    +&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name) {
    +<b class="fc">&nbsp;        return (T) getOrAdd(name, MetricBuilder.GAUGES);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Return the {@link Gauge} registered under this name; or create and register
    +&nbsp;     * a new {@link Gauge} using the provided MetricSupplier if none is registered.
    +&nbsp;     *
    +&nbsp;     * @param name     the name of the metric
    +&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a Gauge
    +&nbsp;     * @return a new or pre-existing {@link Gauge}
    +&nbsp;     */
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name, final MetricSupplier&lt;T&gt; supplier) {
    +<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;T&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public T newMetric() {
    +<b class="fc">&nbsp;                return supplier.newMetric();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Gauge.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Removes the metric with the given name.
    +&nbsp;     *
    +&nbsp;     * @param name the name of the metric
    +&nbsp;     * @return whether or not the metric was removed
    +&nbsp;     */
    +&nbsp;    public boolean remove(String name) {
    +<b class="fc">&nbsp;        final Metric metric = metrics.remove(name);</b>
    +<b class="pc">&nbsp;        if (metric != null) {</b>
    +<b class="fc">&nbsp;            onMetricRemoved(name, metric);</b>
    +<b class="fc">&nbsp;            return true;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return false;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Removes all metrics which match the given filter.
    +&nbsp;     *
    +&nbsp;     * @param filter a filter
    +&nbsp;     */
    +&nbsp;    public void removeMatching(MetricFilter filter) {
    +<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    +<b class="pc">&nbsp;            if (filter.matches(entry.getKey(), entry.getValue())) {</b>
    +<b class="fc">&nbsp;                remove(entry.getKey());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Adds a {@link MetricRegistryListener} to a collection of listeners that will be notified on
    +&nbsp;     * metric creation.  Listeners will be notified in the order in which they are added.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * &lt;b&gt;N.B.:&lt;/b&gt; The listener will be notified of all existing metrics when it first registers.
    +&nbsp;     *
    +&nbsp;     * @param listener the listener that will be notified
    +&nbsp;     */
    +&nbsp;    public void addListener(MetricRegistryListener listener) {
    +<b class="fc">&nbsp;        listeners.add(listener);</b>
    +&nbsp;
    +<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    +<b class="fc">&nbsp;            notifyListenerOfAddedMetric(listener, entry.getValue(), entry.getKey());</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Removes a {@link MetricRegistryListener} from this registry&#39;s collection of listeners.
    +&nbsp;     *
    +&nbsp;     * @param listener the listener that will be removed
    +&nbsp;     */
    +&nbsp;    public void removeListener(MetricRegistryListener listener) {
    +<b class="fc">&nbsp;        listeners.remove(listener);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a set of the names of all the metrics in the registry.
    +&nbsp;     *
    +&nbsp;     * @return the names of all the metrics
    +&nbsp;     */
    +&nbsp;    public SortedSet&lt;String&gt; getNames() {
    +<b class="fc">&nbsp;        return Collections.unmodifiableSortedSet(new TreeSet&lt;&gt;(metrics.keySet()));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the gauges in the registry and their names.
    +&nbsp;     *
    +&nbsp;     * @return all the gauges in the registry
    +&nbsp;     */
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges() {
    +<b class="fc">&nbsp;        return getGauges(MetricFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the gauges in the registry and their names which match the given filter.
    +&nbsp;     *
    +&nbsp;     * @param filter the metric filter to match
    +&nbsp;     * @return all the gauges in the registry
    +&nbsp;     */
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges(MetricFilter filter) {
    +<b class="fc">&nbsp;        return getMetrics(Gauge.class, filter);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the counters in the registry and their names.
    +&nbsp;     *
    +&nbsp;     * @return all the counters in the registry
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters() {
    +<b class="fc">&nbsp;        return getCounters(MetricFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the counters in the registry and their names which match the given
    +&nbsp;     * filter.
    +&nbsp;     *
    +&nbsp;     * @param filter the metric filter to match
    +&nbsp;     * @return all the counters in the registry
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters(MetricFilter filter) {
    +<b class="fc">&nbsp;        return getMetrics(Counter.class, filter);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the histograms in the registry and their names.
    +&nbsp;     *
    +&nbsp;     * @return all the histograms in the registry
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms() {
    +<b class="fc">&nbsp;        return getHistograms(MetricFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the histograms in the registry and their names which match the given
    +&nbsp;     * filter.
    +&nbsp;     *
    +&nbsp;     * @param filter the metric filter to match
    +&nbsp;     * @return all the histograms in the registry
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms(MetricFilter filter) {
    +<b class="fc">&nbsp;        return getMetrics(Histogram.class, filter);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the meters in the registry and their names.
    +&nbsp;     *
    +&nbsp;     * @return all the meters in the registry
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters() {
    +<b class="fc">&nbsp;        return getMeters(MetricFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the meters in the registry and their names which match the given filter.
    +&nbsp;     *
    +&nbsp;     * @param filter the metric filter to match
    +&nbsp;     * @return all the meters in the registry
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters(MetricFilter filter) {
    +<b class="fc">&nbsp;        return getMetrics(Meter.class, filter);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the timers in the registry and their names.
    +&nbsp;     *
    +&nbsp;     * @return all the timers in the registry
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers() {
    +<b class="fc">&nbsp;        return getTimers(MetricFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a map of all the timers in the registry and their names which match the given filter.
    +&nbsp;     *
    +&nbsp;     * @param filter the metric filter to match
    +&nbsp;     * @return all the timers in the registry
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers(MetricFilter filter) {
    +<b class="fc">&nbsp;        return getMetrics(Timer.class, filter);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
    +&nbsp;    private &lt;T extends Metric&gt; T getOrAdd(String name, MetricBuilder&lt;T&gt; builder) {
    +<b class="fc">&nbsp;        final Metric metric = metrics.get(name);</b>
    +<b class="fc">&nbsp;        if (builder.isInstance(metric)) {</b>
    +<b class="fc">&nbsp;            return (T) metric;</b>
    +<b class="pc">&nbsp;        } else if (metric == null) {</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                return register(name, builder.newMetric());</b>
    +<b class="nc">&nbsp;            } catch (IllegalArgumentException e) {</b>
    +<b class="nc">&nbsp;                final Metric added = metrics.get(name);</b>
    +<b class="nc">&nbsp;                if (builder.isInstance(added)) {</b>
    +<b class="nc">&nbsp;                    return (T) added;</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +<b class="nc">&nbsp;        throw new IllegalArgumentException(name + &quot; is already used for a different type of metric&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
    +&nbsp;    private &lt;T extends Metric&gt; SortedMap&lt;String, T&gt; getMetrics(Class&lt;T&gt; klass, MetricFilter filter) {
    +<b class="fc">&nbsp;        final TreeMap&lt;String, T&gt; timers = new TreeMap&lt;&gt;();</b>
    +<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    +<b class="pc">&nbsp;            if (klass.isInstance(entry.getValue()) &amp;&amp; filter.matches(entry.getKey(),</b>
    +<b class="fc">&nbsp;                    entry.getValue())) {</b>
    +<b class="fc">&nbsp;                timers.put(entry.getKey(), (T) entry.getValue());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(timers);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void onMetricAdded(String name, Metric metric) {
    +<b class="pc">&nbsp;        for (MetricRegistryListener listener : listeners) {</b>
    +<b class="fc">&nbsp;            notifyListenerOfAddedMetric(listener, metric, name);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void notifyListenerOfAddedMetric(MetricRegistryListener listener, Metric metric, String name) {
    +<b class="pc">&nbsp;        if (metric instanceof Gauge) {</b>
    +<b class="fc">&nbsp;            listener.onGaugeAdded(name, (Gauge&lt;?&gt;) metric);</b>
    +<b class="pc">&nbsp;        } else if (metric instanceof Counter) {</b>
    +<b class="fc">&nbsp;            listener.onCounterAdded(name, (Counter) metric);</b>
    +<b class="pc">&nbsp;        } else if (metric instanceof Histogram) {</b>
    +<b class="fc">&nbsp;            listener.onHistogramAdded(name, (Histogram) metric);</b>
    +<b class="pc">&nbsp;        } else if (metric instanceof Meter) {</b>
    +<b class="fc">&nbsp;            listener.onMeterAdded(name, (Meter) metric);</b>
    +<b class="pc">&nbsp;        } else if (metric instanceof Timer) {</b>
    +<b class="fc">&nbsp;            listener.onTimerAdded(name, (Timer) metric);</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;Unknown metric type: &quot; + metric.getClass());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void onMetricRemoved(String name, Metric metric) {
    +<b class="pc">&nbsp;        for (MetricRegistryListener listener : listeners) {</b>
    +<b class="fc">&nbsp;            notifyListenerOfRemovedMetric(name, metric, listener);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void notifyListenerOfRemovedMetric(String name, Metric metric, MetricRegistryListener listener) {
    +<b class="pc">&nbsp;        if (metric instanceof Gauge) {</b>
    +<b class="fc">&nbsp;            listener.onGaugeRemoved(name);</b>
    +<b class="pc">&nbsp;        } else if (metric instanceof Counter) {</b>
    +<b class="fc">&nbsp;            listener.onCounterRemoved(name);</b>
    +<b class="pc">&nbsp;        } else if (metric instanceof Histogram) {</b>
    +<b class="fc">&nbsp;            listener.onHistogramRemoved(name);</b>
    +<b class="pc">&nbsp;        } else if (metric instanceof Meter) {</b>
    +<b class="fc">&nbsp;            listener.onMeterRemoved(name);</b>
    +<b class="pc">&nbsp;        } else if (metric instanceof Timer) {</b>
    +<b class="fc">&nbsp;            listener.onTimerRemoved(name);</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;Unknown metric type: &quot; + metric.getClass());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Given a metric set, registers them with the given prefix prepended to their names.
    +&nbsp;     *
    +&nbsp;     * @param prefix a name prefix
    +&nbsp;     * @param metrics a set of metrics
    +&nbsp;     * @throws IllegalArgumentException if any of the names are already registered
    +&nbsp;     */
    +&nbsp;    public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
    +<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.getMetrics().entrySet()) {</b>
    +<b class="pc">&nbsp;            if (entry.getValue() instanceof MetricSet) {</b>
    +<b class="fc">&nbsp;                registerAll(name(prefix, entry.getKey()), (MetricSet) entry.getValue());</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                register(name(prefix, entry.getKey()), entry.getValue());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(metrics);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @FunctionalInterface
    +&nbsp;    public interface MetricSupplier&lt;T extends Metric&gt; {
    +&nbsp;        T newMetric();
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A quick and easy way of capturing the notion of default metrics.
    +&nbsp;     */
    +&nbsp;    private interface MetricBuilder&lt;T extends Metric&gt; {
    +<b class="fc">&nbsp;        MetricBuilder&lt;Counter&gt; COUNTERS = new MetricBuilder&lt;Counter&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Counter newMetric() {
    +<b class="fc">&nbsp;                return new Counter();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Counter.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;
    +<b class="fc">&nbsp;        MetricBuilder&lt;Histogram&gt; HISTOGRAMS = new MetricBuilder&lt;Histogram&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Histogram newMetric() {
    +<b class="fc">&nbsp;                return new Histogram(new ExponentiallyDecayingReservoir());</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Histogram.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;
    +<b class="fc">&nbsp;        MetricBuilder&lt;Meter&gt; METERS = new MetricBuilder&lt;Meter&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Meter newMetric() {
    +<b class="fc">&nbsp;                return new Meter();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Meter.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;
    +<b class="fc">&nbsp;        MetricBuilder&lt;Timer&gt; TIMERS = new MetricBuilder&lt;Timer&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Timer newMetric() {
    +<b class="fc">&nbsp;                return new Timer();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Timer.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;
    +&nbsp;        @SuppressWarnings(&quot;rawtypes&quot;)
    +<b class="fc">&nbsp;        MetricBuilder&lt;Gauge&gt; GAUGES = new MetricBuilder&lt;Gauge&gt;() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Gauge newMetric() {
    +<b class="fc">&nbsp;                return new DefaultSettableGauge&lt;&gt;();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isInstance(Metric metric) {
    +<b class="fc">&nbsp;                return Gauge.class.isInstance(metric);</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;
    +&nbsp;        T newMetric();
    +&nbsp;
    +&nbsp;        boolean isInstance(Metric metric);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-16.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-16.html
    new file mode 100644
    index 0000000000..29e8684c29
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-16.html
    @@ -0,0 +1,275 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricRegistryListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricRegistryListener (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$Base</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$5iXysY5Q</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$5iXysY5Q$auxiliary$F51bE4gh</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$5iXysY5Q$auxiliary$nSg42jpw</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$anYeCRUA</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$anYeCRUA$auxiliary$O5Lcj3DO</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$anYeCRUA$auxiliary$yb2c8vsY</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$vvUgAxm2</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$vvUgAxm2$auxiliary$nZ3MWwF6</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$vvUgAxm2$auxiliary$PeryPf4J</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$xn3YAipE</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$xn3YAipE$auxiliary$rCGi501R</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricRegistryListener$MockitoMock$xn3YAipE$auxiliary$yejoCfwX</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.EventListener;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Listeners for events from the registry.  Listeners must be thread-safe.
    +&nbsp; */
    +&nbsp;public interface MetricRegistryListener extends EventListener {
    +&nbsp;    /**
    +&nbsp;     * A no-op implementation of {@link MetricRegistryListener}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    abstract class Base implements MetricRegistryListener {</b>
    +&nbsp;        @Override
    +&nbsp;        public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onGaugeRemoved(String name) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onCounterAdded(String name, Counter counter) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onCounterRemoved(String name) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onHistogramAdded(String name, Histogram histogram) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onHistogramRemoved(String name) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onMeterAdded(String name, Meter meter) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onMeterRemoved(String name) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimerAdded(String name, Timer timer) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimerRemoved(String name) {
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Gauge} is added to the registry.
    +&nbsp;     *
    +&nbsp;     * @param name  the gauge&#39;s name
    +&nbsp;     * @param gauge the gauge
    +&nbsp;     */
    +&nbsp;    void onGaugeAdded(String name, Gauge&lt;?&gt; gauge);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Gauge} is removed from the registry.
    +&nbsp;     *
    +&nbsp;     * @param name the gauge&#39;s name
    +&nbsp;     */
    +&nbsp;    void onGaugeRemoved(String name);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Counter} is added to the registry.
    +&nbsp;     *
    +&nbsp;     * @param name    the counter&#39;s name
    +&nbsp;     * @param counter the counter
    +&nbsp;     */
    +&nbsp;    void onCounterAdded(String name, Counter counter);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Counter} is removed from the registry.
    +&nbsp;     *
    +&nbsp;     * @param name the counter&#39;s name
    +&nbsp;     */
    +&nbsp;    void onCounterRemoved(String name);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Histogram} is added to the registry.
    +&nbsp;     *
    +&nbsp;     * @param name      the histogram&#39;s name
    +&nbsp;     * @param histogram the histogram
    +&nbsp;     */
    +&nbsp;    void onHistogramAdded(String name, Histogram histogram);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Histogram} is removed from the registry.
    +&nbsp;     *
    +&nbsp;     * @param name the histogram&#39;s name
    +&nbsp;     */
    +&nbsp;    void onHistogramRemoved(String name);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Meter} is added to the registry.
    +&nbsp;     *
    +&nbsp;     * @param name  the meter&#39;s name
    +&nbsp;     * @param meter the meter
    +&nbsp;     */
    +&nbsp;    void onMeterAdded(String name, Meter meter);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Meter} is removed from the registry.
    +&nbsp;     *
    +&nbsp;     * @param name the meter&#39;s name
    +&nbsp;     */
    +&nbsp;    void onMeterRemoved(String name);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Timer} is added to the registry.
    +&nbsp;     *
    +&nbsp;     * @param name  the timer&#39;s name
    +&nbsp;     * @param timer the timer
    +&nbsp;     */
    +&nbsp;    void onTimerAdded(String name, Timer timer);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link Timer} is removed from the registry.
    +&nbsp;     *
    +&nbsp;     * @param name the timer&#39;s name
    +&nbsp;     */
    +&nbsp;    void onTimerRemoved(String name);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-17.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-17.html
    new file mode 100644
    index 0000000000..adb259620d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-17.html
    @@ -0,0 +1,1097 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > NoopMetricRegistry</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: NoopMetricRegistry (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">NoopMetricRegistry</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (26/32)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.4%
    +  </span>
    +  <span class="absValue">
    +    (28/34)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$EmptyConcurrentMap</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    5.9%
    +  </span>
    +  <span class="absValue">
    +    (1/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    5.9%
    +  </span>
    +  <span class="absValue">
    +    (1/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$EmptySnapshot</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$NoopCounter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    28.6%
    +  </span>
    +  <span class="absValue">
    +    (2/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    28.6%
    +  </span>
    +  <span class="absValue">
    +    (2/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$NoopGauge</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$NoopHistogram</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    42.9%
    +  </span>
    +  <span class="absValue">
    +    (3/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (4/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$NoopHistogram$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$NoopMeter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    22.2%
    +  </span>
    +  <span class="absValue">
    +    (2/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    22.2%
    +  </span>
    +  <span class="absValue">
    +    (2/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$NoopTimer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    14.3%
    +  </span>
    +  <span class="absValue">
    +    (2/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (3/15)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$NoopTimer$Context</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60%
    +  </span>
    +  <span class="absValue">
    +    (3/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60%
    +  </span>
    +  <span class="absValue">
    +    (3/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NoopMetricRegistry$NoopTimer$Context$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    39.6%
    +  </span>
    +  <span class="absValue">
    +    (44/111)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    41.4%
    +  </span>
    +  <span class="absValue">
    +    (48/116)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.time.Duration;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.SortedSet;
    +&nbsp;import java.util.concurrent.Callable;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A registry of metric instances which never creates or registers any metrics and returns no-op implementations of any metric type.
    +&nbsp; *
    +&nbsp; * @since 4.1.17
    +&nbsp; */
    +<b class="fc">&nbsp;public final class NoopMetricRegistry extends MetricRegistry {</b>
    +<b class="fc">&nbsp;    private static final EmptyConcurrentMap&lt;String, Metric&gt; EMPTY_CONCURRENT_MAP = new EmptyConcurrentMap&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    protected ConcurrentMap&lt;String, Metric&gt; buildMap() {
    +<b class="fc">&nbsp;        return EMPTY_CONCURRENT_MAP;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T extends Metric&gt; T register(String name, T metric) throws IllegalArgumentException {
    +<b class="fc">&nbsp;        if (metric == null) {</b>
    +<b class="fc">&nbsp;            throw new NullPointerException(&quot;metric == null&quot;);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return metric;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void registerAll(MetricSet metrics) throws IllegalArgumentException {
    +&nbsp;        // NOP
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Counter counter(String name) {
    +<b class="fc">&nbsp;        return NoopCounter.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Counter counter(String name, MetricSupplier&lt;Counter&gt; supplier) {
    +<b class="fc">&nbsp;        return NoopCounter.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Histogram histogram(String name) {
    +<b class="fc">&nbsp;        return NoopHistogram.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Histogram histogram(String name, MetricSupplier&lt;Histogram&gt; supplier) {
    +<b class="fc">&nbsp;        return NoopHistogram.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Meter meter(String name) {
    +<b class="fc">&nbsp;        return NoopMeter.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Meter meter(String name, MetricSupplier&lt;Meter&gt; supplier) {
    +<b class="fc">&nbsp;        return NoopMeter.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Timer timer(String name) {
    +<b class="fc">&nbsp;        return NoopTimer.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Timer timer(String name, MetricSupplier&lt;Timer&gt; supplier) {
    +<b class="fc">&nbsp;        return NoopTimer.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     *
    +&nbsp;     * @since 4.2
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    +&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name) {
    +<b class="fc">&nbsp;        return (T) NoopGauge.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    +&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name, MetricSupplier&lt;T&gt; supplier) {
    +<b class="fc">&nbsp;        return (T) NoopGauge.INSTANCE;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public boolean remove(String name) {
    +<b class="fc">&nbsp;        return false;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void removeMatching(MetricFilter filter) {
    +&nbsp;        // NOP
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void addListener(MetricRegistryListener listener) {
    +&nbsp;        // NOP
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void removeListener(MetricRegistryListener listener) {
    +&nbsp;        // NOP
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public SortedSet&lt;String&gt; getNames() {
    +<b class="fc">&nbsp;        return Collections.emptySortedSet();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges() {
    +<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges(MetricFilter filter) {
    +<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters() {
    +<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters(MetricFilter filter) {
    +<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms() {
    +<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms(MetricFilter filter) {
    +<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters() {
    +<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters(MetricFilter filter) {
    +<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers() {
    +<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers(MetricFilter filter) {
    +<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
    +&nbsp;        // NOP
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        return Collections.emptyMap();</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class NoopGauge&lt;T&gt; implements Gauge&lt;T&gt; {</b>
    +<b class="fc">&nbsp;        private static final NoopGauge&lt;?&gt; INSTANCE = new NoopGauge&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public T getValue() {
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="nc">&nbsp;    private static final class EmptySnapshot extends Snapshot {</b>
    +<b class="nc">&nbsp;        private static final EmptySnapshot INSTANCE = new EmptySnapshot();</b>
    +<b class="nc">&nbsp;        private static final long[] EMPTY_LONG_ARRAY = new long[0];</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getValue(double quantile) {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public long[] getValues() {
    +<b class="nc">&nbsp;            return EMPTY_LONG_ARRAY;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public int size() {
    +<b class="nc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public long getMax() {
    +<b class="nc">&nbsp;            return 0L;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getMean() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public long getMin() {
    +<b class="nc">&nbsp;            return 0L;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getStdDev() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void dump(OutputStream output) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class NoopTimer extends Timer {</b>
    +<b class="fc">&nbsp;        private static final NoopTimer INSTANCE = new NoopTimer();</b>
    +<b class="fc">&nbsp;        private static final Timer.Context CONTEXT = new NoopTimer.Context();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        private static class Context extends Timer.Context {</b>
    +<b class="fc">&nbsp;            private static final Clock CLOCK = new Clock() {</b>
    +&nbsp;                /**
    +&nbsp;                 * {@inheritDoc}
    +&nbsp;                 */
    +&nbsp;                @Override
    +&nbsp;                public long getTick() {
    +<b class="fc">&nbsp;                    return 0L;</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                /**
    +&nbsp;                 * {@inheritDoc}
    +&nbsp;                 */
    +&nbsp;                @Override
    +&nbsp;                public long getTime() {
    +<b class="nc">&nbsp;                    return 0L;</b>
    +&nbsp;                }
    +&nbsp;            };
    +&nbsp;
    +&nbsp;            private Context() {
    +<b class="fc">&nbsp;                super(INSTANCE, CLOCK);</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            /**
    +&nbsp;             * {@inheritDoc}
    +&nbsp;             */
    +&nbsp;            @Override
    +&nbsp;            public long stop() {
    +<b class="nc">&nbsp;                return 0L;</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            /**
    +&nbsp;             * {@inheritDoc}
    +&nbsp;             */
    +&nbsp;            @Override
    +&nbsp;            public void close() {
    +&nbsp;                // NOP
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void update(long duration, TimeUnit unit) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void update(Duration duration) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public &lt;T&gt; T time(Callable&lt;T&gt; event) throws Exception {
    +<b class="nc">&nbsp;            return event.call();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public &lt;T&gt; T timeSupplier(Supplier&lt;T&gt; event) {
    +<b class="nc">&nbsp;            return event.get();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void time(Runnable event) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public Timer.Context time() {
    +<b class="nc">&nbsp;            return CONTEXT;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public long getCount() {
    +<b class="nc">&nbsp;            return 0L;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getFifteenMinuteRate() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getFiveMinuteRate() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getMeanRate() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getOneMinuteRate() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public Snapshot getSnapshot() {
    +<b class="nc">&nbsp;            return EmptySnapshot.INSTANCE;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class NoopHistogram extends Histogram {</b>
    +<b class="fc">&nbsp;        private static final NoopHistogram INSTANCE = new NoopHistogram();</b>
    +<b class="fc">&nbsp;        private static final Reservoir EMPTY_RESERVOIR = new Reservoir() {</b>
    +&nbsp;            /**
    +&nbsp;             * {@inheritDoc}
    +&nbsp;             */
    +&nbsp;            @Override
    +&nbsp;            public int size() {
    +<b class="nc">&nbsp;                return 0;</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            /**
    +&nbsp;             * {@inheritDoc}
    +&nbsp;             */
    +&nbsp;            @Override
    +&nbsp;            public void update(long value) {
    +&nbsp;                // NOP
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;
    +&nbsp;            /**
    +&nbsp;             * {@inheritDoc}
    +&nbsp;             */
    +&nbsp;            @Override
    +&nbsp;            public Snapshot getSnapshot() {
    +<b class="nc">&nbsp;                return EmptySnapshot.INSTANCE;</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;
    +&nbsp;        private NoopHistogram() {
    +<b class="fc">&nbsp;            super(EMPTY_RESERVOIR);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void update(int value) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void update(long value) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public long getCount() {
    +<b class="nc">&nbsp;            return 0L;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public Snapshot getSnapshot() {
    +<b class="nc">&nbsp;            return EmptySnapshot.INSTANCE;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class NoopCounter extends Counter {</b>
    +<b class="fc">&nbsp;        private static final NoopCounter INSTANCE = new NoopCounter();</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void inc() {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void inc(long n) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void dec() {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void dec(long n) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public long getCount() {
    +<b class="nc">&nbsp;            return 0L;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class NoopMeter extends Meter {</b>
    +<b class="fc">&nbsp;        private static final NoopMeter INSTANCE = new NoopMeter();</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void mark() {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void mark(long n) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public long getCount() {
    +<b class="nc">&nbsp;            return 0L;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getFifteenMinuteRate() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getFiveMinuteRate() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getMeanRate() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public double getOneMinuteRate() {
    +<b class="nc">&nbsp;            return 0D;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static final class EmptyConcurrentMap&lt;K, V&gt; implements ConcurrentMap&lt;K, V&gt; {</b>
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public V putIfAbsent(K key, V value) {
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public boolean remove(Object key, Object value) {
    +<b class="nc">&nbsp;            return false;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public boolean replace(K key, V oldValue, V newValue) {
    +<b class="nc">&nbsp;            return false;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public V replace(K key, V value) {
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public int size() {
    +<b class="nc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public boolean isEmpty() {
    +<b class="nc">&nbsp;            return true;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public boolean containsKey(Object key) {
    +<b class="nc">&nbsp;            return false;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public boolean containsValue(Object value) {
    +<b class="nc">&nbsp;            return false;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public V get(Object key) {
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public V put(K key, V value) {
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public V remove(Object key) {
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void putAll(Map&lt;? extends K, ? extends V&gt; m) {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void clear() {
    +&nbsp;            // NOP
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public Set&lt;K&gt; keySet() {
    +<b class="nc">&nbsp;            return Collections.emptySet();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public Collection&lt;V&gt; values() {
    +<b class="nc">&nbsp;            return Collections.emptySet();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * {@inheritDoc}
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public Set&lt;Entry&lt;K, V&gt;&gt; entrySet() {
    +<b class="nc">&nbsp;            return Collections.emptySet();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-18.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-18.html
    new file mode 100644
    index 0000000000..a819421106
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-18.html
    @@ -0,0 +1,196 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > RatioGauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: RatioGauge (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">RatioGauge</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">RatioGauge$Ratio</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import static java.lang.Double.isInfinite;
    +&nbsp;import static java.lang.Double.isNaN;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A gauge which measures the ratio of one value to another.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * If the denominator is zero, not a number, or infinite, the resulting ratio is not a number.
    +&nbsp; */
    +<b class="fc">&nbsp;public abstract class RatioGauge implements Gauge&lt;Double&gt; {</b>
    +&nbsp;    /**
    +&nbsp;     * A ratio of one quantity to another.
    +&nbsp;     */
    +&nbsp;    public static class Ratio {
    +&nbsp;        /**
    +&nbsp;         * Creates a new ratio with the given numerator and denominator.
    +&nbsp;         *
    +&nbsp;         * @param numerator   the numerator of the ratio
    +&nbsp;         * @param denominator the denominator of the ratio
    +&nbsp;         * @return {@code numerator:denominator}
    +&nbsp;         */
    +&nbsp;        public static Ratio of(double numerator, double denominator) {
    +<b class="fc">&nbsp;            return new Ratio(numerator, denominator);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private final double numerator;
    +&nbsp;        private final double denominator;
    +&nbsp;
    +<b class="fc">&nbsp;        private Ratio(double numerator, double denominator) {</b>
    +<b class="fc">&nbsp;            this.numerator = numerator;</b>
    +<b class="fc">&nbsp;            this.denominator = denominator;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the ratio, which is either a {@code double} between 0 and 1 (inclusive) or
    +&nbsp;         * {@code NaN}.
    +&nbsp;         *
    +&nbsp;         * @return the ratio
    +&nbsp;         */
    +&nbsp;        public double getValue() {
    +<b class="fc">&nbsp;            final double d = denominator;</b>
    +<b class="fc">&nbsp;            if (isNaN(d) || isInfinite(d) || d == 0) {</b>
    +<b class="fc">&nbsp;                return Double.NaN;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return numerator / d;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String toString() {
    +<b class="fc">&nbsp;            return numerator + &quot;:&quot; + denominator;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the {@link Ratio} which is the gauge&#39;s current value.
    +&nbsp;     *
    +&nbsp;     * @return the {@link Ratio} which is the gauge&#39;s current value
    +&nbsp;     */
    +&nbsp;    protected abstract Ratio getRatio();
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Double getValue() {
    +<b class="fc">&nbsp;        return getRatio().getValue();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-19.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-19.html
    new file mode 100644
    index 0000000000..7d4091965c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-19.html
    @@ -0,0 +1,467 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ScheduledReporter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ScheduledReporter (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ScheduledReporter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.3%
    +  </span>
    +  <span class="absValue">
    +    (21/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (52/65)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">ScheduledReporter$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">ScheduledReporter$NamedThreadFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (62/76)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import java.io.Closeable;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.concurrent.Executor;
    +&nbsp;import java.util.concurrent.Executors;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.ScheduledFuture;
    +&nbsp;import java.util.concurrent.ThreadFactory;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * The abstract base class for all scheduled reporters (i.e., reporters which process a registry&#39;s
    +&nbsp; * metrics periodically).
    +&nbsp; *
    +&nbsp; * @see ConsoleReporter
    +&nbsp; * @see CsvReporter
    +&nbsp; * @see Slf4jReporter
    +&nbsp; */
    +&nbsp;public abstract class ScheduledReporter implements Closeable, Reporter {
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOG = LoggerFactory.getLogger(ScheduledReporter.class);</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A simple named thread factory.
    +&nbsp;     */
    +&nbsp;    @SuppressWarnings(&quot;NullableProblems&quot;)
    +<b class="fc">&nbsp;    private static class NamedThreadFactory implements ThreadFactory {</b>
    +&nbsp;        private final ThreadGroup group;
    +<b class="fc">&nbsp;        private final AtomicInteger threadNumber = new AtomicInteger(1);</b>
    +&nbsp;        private final String namePrefix;
    +&nbsp;
    +<b class="fc">&nbsp;        private NamedThreadFactory(String name) {</b>
    +<b class="fc">&nbsp;            final SecurityManager s = System.getSecurityManager();</b>
    +<b class="fc">&nbsp;            this.group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();</b>
    +<b class="fc">&nbsp;            this.namePrefix = &quot;metrics-&quot; + name + &quot;-thread-&quot;;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public Thread newThread(Runnable r) {
    +<b class="fc">&nbsp;            final Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);</b>
    +<b class="fc">&nbsp;            t.setDaemon(true);</b>
    +<b class="fc">&nbsp;            if (t.getPriority() != Thread.NORM_PRIORITY) {</b>
    +<b class="nc">&nbsp;                t.setPriority(Thread.NORM_PRIORITY);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return t;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static final AtomicInteger FACTORY_ID = new AtomicInteger();</b>
    +&nbsp;
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final ScheduledExecutorService executor;
    +&nbsp;    private final boolean shutdownExecutorOnStop;
    +&nbsp;    private final Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    +&nbsp;    private ScheduledFuture&lt;?&gt; scheduledFuture;
    +&nbsp;    private final MetricFilter filter;
    +&nbsp;    private final long durationFactor;
    +&nbsp;    private final String durationUnit;
    +&nbsp;    private final long rateFactor;
    +&nbsp;    private final String rateUnit;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link ScheduledReporter} instance.
    +&nbsp;     *
    +&nbsp;     * @param registry     the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    +&nbsp;     *                     reporter will report
    +&nbsp;     * @param name         the reporter&#39;s name
    +&nbsp;     * @param filter       the filter for which metrics to report
    +&nbsp;     * @param rateUnit     a unit of time
    +&nbsp;     * @param durationUnit a unit of time
    +&nbsp;     */
    +&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    +&nbsp;                                String name,
    +&nbsp;                                MetricFilter filter,
    +&nbsp;                                TimeUnit rateUnit,
    +&nbsp;                                TimeUnit durationUnit) {
    +<b class="fc">&nbsp;        this(registry, name, filter, rateUnit, durationUnit, createDefaultExecutor(name));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link ScheduledReporter} instance.
    +&nbsp;     *
    +&nbsp;     * @param registry the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    +&nbsp;     *                 reporter will report
    +&nbsp;     * @param name     the reporter&#39;s name
    +&nbsp;     * @param filter   the filter for which metrics to report
    +&nbsp;     * @param executor the executor to use while scheduling reporting of metrics.
    +&nbsp;     */
    +&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    +&nbsp;                                String name,
    +&nbsp;                                MetricFilter filter,
    +&nbsp;                                TimeUnit rateUnit,
    +&nbsp;                                TimeUnit durationUnit,
    +&nbsp;                                ScheduledExecutorService executor) {
    +<b class="fc">&nbsp;        this(registry, name, filter, rateUnit, durationUnit, executor, true);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link ScheduledReporter} instance.
    +&nbsp;     *
    +&nbsp;     * @param registry               the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    +&nbsp;     *                               reporter will report
    +&nbsp;     * @param name                   the reporter&#39;s name
    +&nbsp;     * @param filter                 the filter for which metrics to report
    +&nbsp;     * @param executor               the executor to use while scheduling reporting of metrics.
    +&nbsp;     * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    +&nbsp;     */
    +&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    +&nbsp;                                String name,
    +&nbsp;                                MetricFilter filter,
    +&nbsp;                                TimeUnit rateUnit,
    +&nbsp;                                TimeUnit durationUnit,
    +&nbsp;                                ScheduledExecutorService executor,
    +&nbsp;                                boolean shutdownExecutorOnStop) {
    +<b class="fc">&nbsp;        this(registry, name, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, Collections.emptySet());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    +&nbsp;                                String name,
    +&nbsp;                                MetricFilter filter,
    +&nbsp;                                TimeUnit rateUnit,
    +&nbsp;                                TimeUnit durationUnit,
    +&nbsp;                                ScheduledExecutorService executor,
    +&nbsp;                                boolean shutdownExecutorOnStop,
    +<b class="fc">&nbsp;                                Set&lt;MetricAttribute&gt; disabledMetricAttributes) {</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (registry == null) {</b>
    +<b class="fc">&nbsp;            throw new NullPointerException(&quot;registry == null&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.filter = filter;</b>
    +<b class="fc">&nbsp;        this.executor = executor == null ? createDefaultExecutor(name) : executor;</b>
    +<b class="fc">&nbsp;        this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    +<b class="fc">&nbsp;        this.rateFactor = rateUnit.toSeconds(1);</b>
    +<b class="fc">&nbsp;        this.rateUnit = calculateRateUnit(rateUnit);</b>
    +<b class="fc">&nbsp;        this.durationFactor = durationUnit.toNanos(1);</b>
    +<b class="fc">&nbsp;        this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    +<b class="fc">&nbsp;        this.disabledMetricAttributes = disabledMetricAttributes != null ? disabledMetricAttributes :</b>
    +<b class="fc">&nbsp;                Collections.emptySet();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Starts the reporter polling at the given period.
    +&nbsp;     *
    +&nbsp;     * @param period the amount of time between polls
    +&nbsp;     * @param unit   the unit for {@code period}
    +&nbsp;     */
    +&nbsp;    public void start(long period, TimeUnit unit) {
    +<b class="fc">&nbsp;        start(period, period, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Starts the reporter polling at the given period with the specific runnable action.
    +&nbsp;     * Visible only for testing.
    +&nbsp;     */
    +&nbsp;    synchronized void start(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
    +<b class="fc">&nbsp;        if (this.scheduledFuture != null) {</b>
    +<b class="fc">&nbsp;            throw new IllegalArgumentException(&quot;Reporter already started&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        this.scheduledFuture = getScheduledFuture(initialDelay, period, unit, runnable);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Schedule the task, and return a future.
    +&nbsp;     *
    +&nbsp;     * @deprecated Use {@link #getScheduledFuture(long, long, TimeUnit, Runnable, ScheduledExecutorService)} instead.
    +&nbsp;     */
    +&nbsp;    @SuppressWarnings(&quot;DeprecatedIsStillUsed&quot;)
    +&nbsp;    @Deprecated
    +&nbsp;    protected ScheduledFuture&lt;?&gt; getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
    +<b class="fc">&nbsp;        return getScheduledFuture(initialDelay, period, unit, runnable, this.executor);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Schedule the task, and return a future.
    +&nbsp;     * The current implementation uses scheduleWithFixedDelay, replacing scheduleWithFixedRate. This avoids queueing issues, but may
    +&nbsp;     * cause some reporters to skip metrics, as scheduleWithFixedDelay introduces a growing delta from the original start point.
    +&nbsp;     *
    +&nbsp;     * Overriding this in a subclass to revert to the old behavior is permitted.
    +&nbsp;     */
    +&nbsp;    protected ScheduledFuture&lt;?&gt; getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable, ScheduledExecutorService executor) {
    +<b class="fc">&nbsp;        return executor.scheduleWithFixedDelay(runnable, initialDelay, period, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Starts the reporter polling at the given period.
    +&nbsp;     *
    +&nbsp;     * @param initialDelay the time to delay the first execution
    +&nbsp;     * @param period       the amount of time between polls
    +&nbsp;     * @param unit         the unit for {@code period} and {@code initialDelay}
    +&nbsp;     */
    +&nbsp;    synchronized public void start(long initialDelay, long period, TimeUnit unit) {
    +<b class="fc">&nbsp;        start(initialDelay, period, unit, () -&gt; {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                report();</b>
    +<b class="nc">&nbsp;            } catch (Throwable ex) {</b>
    +<b class="nc">&nbsp;                LOG.error(&quot;Exception thrown from {}#report. Exception was suppressed.&quot;, ScheduledReporter.this.getClass().getSimpleName(), ex);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Stops the reporter and if shutdownExecutorOnStop is true then shuts down its thread of execution.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * Uses the shutdown pattern from http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html
    +&nbsp;     */
    +&nbsp;    public void stop() {
    +<b class="fc">&nbsp;        if (shutdownExecutorOnStop) {</b>
    +<b class="fc">&nbsp;            executor.shutdown(); // Disable new tasks from being submitted</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            report(); // Report metrics one last time</b>
    +<b class="nc">&nbsp;        } catch (Exception e) {</b>
    +<b class="nc">&nbsp;            LOG.warn(&quot;Final reporting of metrics failed.&quot;, e);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (shutdownExecutorOnStop) {</b>
    +&nbsp;            try {
    +&nbsp;                // Wait a while for existing tasks to terminate
    +<b class="fc">&nbsp;                if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    +<b class="nc">&nbsp;                    executor.shutdownNow(); // Cancel currently executing tasks</b>
    +&nbsp;                    // Wait a while for tasks to respond to being cancelled
    +<b class="nc">&nbsp;                    if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    +<b class="nc">&nbsp;                        LOG.warn(&quot;ScheduledExecutorService did not terminate.&quot;);</b>
    +&nbsp;                    }
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (InterruptedException ie) {</b>
    +&nbsp;                // (Re-)Cancel if current thread also interrupted
    +<b class="nc">&nbsp;                executor.shutdownNow();</b>
    +&nbsp;                // Preserve interrupt status
    +<b class="nc">&nbsp;                Thread.currentThread().interrupt();</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        } else {
    +&nbsp;            // The external manager (like JEE container) responsible for lifecycle of executor
    +<b class="fc">&nbsp;            cancelScheduledFuture();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private synchronized void cancelScheduledFuture() {
    +<b class="fc">&nbsp;        if (this.scheduledFuture == null) {</b>
    +&nbsp;            // was never started
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        if (this.scheduledFuture.isCancelled()) {</b>
    +&nbsp;            // already cancelled
    +&nbsp;            return;
    +&nbsp;        }
    +&nbsp;        // just cancel the scheduledFuture and exit
    +<b class="fc">&nbsp;        this.scheduledFuture.cancel(false);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Stops the reporter and shuts down its thread of execution.
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void close() {
    +<b class="fc">&nbsp;        stop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Report the current values of all metrics in the registry.
    +&nbsp;     */
    +&nbsp;    public void report() {
    +<b class="fc">&nbsp;        synchronized (this) {</b>
    +<b class="fc">&nbsp;            report(registry.getGauges(filter),</b>
    +<b class="fc">&nbsp;                    registry.getCounters(filter),</b>
    +<b class="fc">&nbsp;                    registry.getHistograms(filter),</b>
    +<b class="fc">&nbsp;                    registry.getMeters(filter),</b>
    +<b class="fc">&nbsp;                    registry.getTimers(filter));</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called periodically by the polling thread. Subclasses should report all the given metrics.
    +&nbsp;     *
    +&nbsp;     * @param gauges     all of the gauges in the registry
    +&nbsp;     * @param counters   all of the counters in the registry
    +&nbsp;     * @param histograms all of the histograms in the registry
    +&nbsp;     * @param meters     all of the meters in the registry
    +&nbsp;     * @param timers     all of the timers in the registry
    +&nbsp;     */
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public abstract void report(SortedMap&lt;String, Gauge&gt; gauges,
    +&nbsp;                                SortedMap&lt;String, Counter&gt; counters,
    +&nbsp;                                SortedMap&lt;String, Histogram&gt; histograms,
    +&nbsp;                                SortedMap&lt;String, Meter&gt; meters,
    +&nbsp;                                SortedMap&lt;String, Timer&gt; timers);
    +&nbsp;
    +&nbsp;    protected String getRateUnit() {
    +<b class="fc">&nbsp;        return rateUnit;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String getDurationUnit() {
    +<b class="fc">&nbsp;        return durationUnit;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected double convertDuration(double duration) {
    +<b class="fc">&nbsp;        return duration / durationFactor;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected double convertRate(double rate) {
    +<b class="fc">&nbsp;        return rate * rateFactor;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected boolean isShutdownExecutorOnStop() {
    +<b class="nc">&nbsp;        return shutdownExecutorOnStop;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected Set&lt;MetricAttribute&gt; getDisabledMetricAttributes() {
    +<b class="fc">&nbsp;        return disabledMetricAttributes;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String calculateRateUnit(TimeUnit unit) {
    +<b class="fc">&nbsp;        final String s = unit.toString().toLowerCase(Locale.US);</b>
    +<b class="fc">&nbsp;        return s.substring(0, s.length() - 1);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static ScheduledExecutorService createDefaultExecutor(String name) {
    +<b class="fc">&nbsp;        return Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(name + &#39;-&#39; + FACTORY_ID.incrementAndGet()));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1a.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1a.html
    new file mode 100644
    index 0000000000..4b8c101550
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1a.html
    @@ -0,0 +1,211 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SharedMetricRegistries</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SharedMetricRegistries (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SharedMetricRegistries</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.atomic.AtomicReference;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A map of shared, named metric registries.
    +&nbsp; */
    +&nbsp;public class SharedMetricRegistries {
    +<b class="fc">&nbsp;    private static final ConcurrentMap&lt;String, MetricRegistry&gt; REGISTRIES =</b>
    +&nbsp;            new ConcurrentHashMap&lt;&gt;();
    +&nbsp;
    +<b class="fc">&nbsp;    private static AtomicReference&lt;String&gt; defaultRegistryName = new AtomicReference&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    /* Visible for testing */
    +&nbsp;    static void setDefaultRegistryName(AtomicReference&lt;String&gt; defaultRegistryName) {
    +<b class="fc">&nbsp;        SharedMetricRegistries.defaultRegistryName = defaultRegistryName;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private SharedMetricRegistries() { /* singleton */ }
    +&nbsp;
    +&nbsp;    public static void clear() {
    +<b class="fc">&nbsp;        REGISTRIES.clear();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static Set&lt;String&gt; names() {
    +<b class="fc">&nbsp;        return REGISTRIES.keySet();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void remove(String key) {
    +<b class="fc">&nbsp;        REGISTRIES.remove(key);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static MetricRegistry add(String name, MetricRegistry registry) {
    +<b class="fc">&nbsp;        return REGISTRIES.putIfAbsent(name, registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static MetricRegistry getOrCreate(String name) {
    +<b class="fc">&nbsp;        final MetricRegistry existing = REGISTRIES.get(name);</b>
    +<b class="fc">&nbsp;        if (existing == null) {</b>
    +<b class="fc">&nbsp;            final MetricRegistry created = new MetricRegistry();</b>
    +<b class="fc">&nbsp;            final MetricRegistry raced = add(name, created);</b>
    +<b class="fc">&nbsp;            if (raced == null) {</b>
    +<b class="fc">&nbsp;                return created;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            return raced;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return existing;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new registry and sets it as the default one under the provided name.
    +&nbsp;     *
    +&nbsp;     * @param name the registry name
    +&nbsp;     * @return the default registry
    +&nbsp;     * @throws IllegalStateException if the name has already been set
    +&nbsp;     */
    +&nbsp;    public synchronized static MetricRegistry setDefault(String name) {
    +<b class="fc">&nbsp;        final MetricRegistry registry = getOrCreate(name);</b>
    +<b class="fc">&nbsp;        return setDefault(name, registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Sets the provided registry as the default one under the provided name
    +&nbsp;     *
    +&nbsp;     * @param name           the default registry name
    +&nbsp;     * @param metricRegistry the default registry
    +&nbsp;     * @throws IllegalStateException if the default registry has already been set
    +&nbsp;     */
    +&nbsp;    public static MetricRegistry setDefault(String name, MetricRegistry metricRegistry) {
    +<b class="fc">&nbsp;        if (defaultRegistryName.compareAndSet(null, name)) {</b>
    +<b class="fc">&nbsp;            add(name, metricRegistry);</b>
    +<b class="fc">&nbsp;            return metricRegistry;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default metric registry name is already set.&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Gets the name of the default registry, if it has been set
    +&nbsp;     *
    +&nbsp;     * @return the default registry
    +&nbsp;     * @throws IllegalStateException if the default has not been set
    +&nbsp;     */
    +&nbsp;    public static MetricRegistry getDefault() {
    +<b class="fc">&nbsp;        MetricRegistry metricRegistry = tryGetDefault();</b>
    +<b class="fc">&nbsp;        if (metricRegistry == null) {</b>
    +<b class="fc">&nbsp;            throw new IllegalStateException(&quot;Default registry name has not been set.&quot;);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return metricRegistry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Same as {@link #getDefault()} except returns null when the default registry has not been set.
    +&nbsp;     *
    +&nbsp;     * @return the default registry or null
    +&nbsp;     */
    +&nbsp;    public static MetricRegistry tryGetDefault() {
    +<b class="fc">&nbsp;        final String name = defaultRegistryName.get();</b>
    +<b class="fc">&nbsp;        if (name != null) {</b>
    +<b class="fc">&nbsp;            return getOrCreate(name);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1b.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1b.html
    new file mode 100644
    index 0000000000..df0cc62e30
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1b.html
    @@ -0,0 +1,782 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Slf4jReporter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Slf4jReporter (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Slf4jReporter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (97/97)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">Slf4jReporter$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Slf4jReporter$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (11/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    79.5%
    +  </span>
    +  <span class="absValue">
    +    (35/44)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Slf4jReporter$DebugLoggerProxy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Slf4jReporter$ErrorLoggerProxy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Slf4jReporter$InfoLoggerProxy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Slf4jReporter$LoggerProxy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Slf4jReporter$LoggingLevel</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Slf4jReporter$TraceLoggerProxy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Slf4jReporter$WarnLoggerProxy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.8%
    +  </span>
    +  <span class="absValue">
    +    (41/52)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.7%
    +  </span>
    +  <span class="absValue">
    +    (141/159)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;import org.slf4j.Marker;
    +&nbsp;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.Map.Entry;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A reporter class for logging metrics values to a SLF4J {@link Logger} periodically, similar to
    +&nbsp; * {@link ConsoleReporter} or {@link CsvReporter}, but using the SLF4J framework instead. It also
    +&nbsp; * supports specifying a {@link Marker} instance that can be used by custom appenders and filters
    +&nbsp; * for the bound logging toolkit to further process metrics reports.
    +&nbsp; */
    +<b class="fc">&nbsp;public class Slf4jReporter extends ScheduledReporter {</b>
    +&nbsp;    /**
    +&nbsp;     * Returns a new {@link Builder} for {@link Slf4jReporter}.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry to report
    +&nbsp;     * @return a {@link Builder} instance for a {@link Slf4jReporter}
    +&nbsp;     */
    +&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    +<b class="fc">&nbsp;        return new Builder(registry);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public enum LoggingLevel { TRACE, DEBUG, INFO, WARN, ERROR }</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A builder for {@link Slf4jReporter} instances. Defaults to logging to {@code metrics}, not
    +&nbsp;     * using a marker, converting rates to events/second, converting durations to milliseconds, and
    +&nbsp;     * not filtering metrics.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class Builder {</b>
    +&nbsp;        private final MetricRegistry registry;
    +&nbsp;        private Logger logger;
    +&nbsp;        private LoggingLevel loggingLevel;
    +&nbsp;        private Marker marker;
    +&nbsp;        private String prefix;
    +&nbsp;        private TimeUnit rateUnit;
    +&nbsp;        private TimeUnit durationUnit;
    +&nbsp;        private MetricFilter filter;
    +&nbsp;        private ScheduledExecutorService executor;
    +&nbsp;        private boolean shutdownExecutorOnStop;
    +&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    +&nbsp;
    +<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;            this.registry = registry;</b>
    +<b class="fc">&nbsp;            this.logger = LoggerFactory.getLogger(&quot;metrics&quot;);</b>
    +<b class="fc">&nbsp;            this.marker = null;</b>
    +<b class="fc">&nbsp;            this.prefix = &quot;&quot;;</b>
    +<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    +<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    +<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    +<b class="fc">&nbsp;            this.loggingLevel = LoggingLevel.INFO;</b>
    +<b class="fc">&nbsp;            this.executor = null;</b>
    +<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    +<b class="fc">&nbsp;            this.disabledMetricAttributes = Collections.emptySet();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    +&nbsp;         * Default value is true.
    +&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    +&nbsp;         *
    +&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    +<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    +&nbsp;         * Default value is null.
    +&nbsp;         * Null value leads to executor will be auto created on start.
    +&nbsp;         *
    +&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    +<b class="nc">&nbsp;            this.executor = executor;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Log metrics to the given logger.
    +&nbsp;         *
    +&nbsp;         * @param logger an SLF4J {@link Logger}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder outputTo(Logger logger) {
    +<b class="fc">&nbsp;            this.logger = logger;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Mark all logged metrics with the given marker.
    +&nbsp;         *
    +&nbsp;         * @param marker an SLF4J {@link Marker}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder markWith(Marker marker) {
    +<b class="fc">&nbsp;            this.marker = marker;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Prefix all metric names with the given string.
    +&nbsp;         *
    +&nbsp;         * @param prefix the prefix for all metric names
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder prefixedWith(String prefix) {
    +<b class="fc">&nbsp;            this.prefix = prefix;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert rates to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param rateUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    +<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert durations to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param durationUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    +<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Only report metrics which match the given filter.
    +&nbsp;         *
    +&nbsp;         * @param filter a {@link MetricFilter}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder filter(MetricFilter filter) {
    +<b class="fc">&nbsp;            this.filter = filter;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use Logging Level when reporting.
    +&nbsp;         *
    +&nbsp;         * @param loggingLevel a (@link Slf4jReporter.LoggingLevel}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder withLoggingLevel(LoggingLevel loggingLevel) {
    +<b class="fc">&nbsp;            this.loggingLevel = loggingLevel;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    +&nbsp;         * See {@link MetricAttribute}.
    +&nbsp;         *
    +&nbsp;         * @param disabledMetricAttributes a set of {@link MetricAttribute}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    +<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Builds a {@link Slf4jReporter} with the given properties.
    +&nbsp;         *
    +&nbsp;         * @return a {@link Slf4jReporter}
    +&nbsp;         */
    +&nbsp;        public Slf4jReporter build() {
    +&nbsp;            LoggerProxy loggerProxy;
    +<b class="fc">&nbsp;            switch (loggingLevel) {</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    loggerProxy = new TraceLoggerProxy(logger);</b>
    +<b class="nc">&nbsp;                    break;</b>
    +&nbsp;                case INFO:
    +<b class="fc">&nbsp;                    loggerProxy = new InfoLoggerProxy(logger);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case WARN:
    +<b class="nc">&nbsp;                    loggerProxy = new WarnLoggerProxy(logger);</b>
    +<b class="nc">&nbsp;                    break;</b>
    +&nbsp;                case ERROR:
    +<b class="fc">&nbsp;                    loggerProxy = new ErrorLoggerProxy(logger);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                default:
    +&nbsp;                case DEBUG:
    +<b class="nc">&nbsp;                    loggerProxy = new DebugLoggerProxy(logger);</b>
    +&nbsp;                    break;
    +&nbsp;            }
    +<b class="fc">&nbsp;            return new Slf4jReporter(registry, loggerProxy, marker, prefix, rateUnit, durationUnit, filter, executor,</b>
    +&nbsp;                    shutdownExecutorOnStop, disabledMetricAttributes);
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final LoggerProxy loggerProxy;
    +&nbsp;    private final Marker marker;
    +&nbsp;    private final String prefix;
    +&nbsp;
    +&nbsp;    private Slf4jReporter(MetricRegistry registry,
    +&nbsp;                          LoggerProxy loggerProxy,
    +&nbsp;                          Marker marker,
    +&nbsp;                          String prefix,
    +&nbsp;                          TimeUnit rateUnit,
    +&nbsp;                          TimeUnit durationUnit,
    +&nbsp;                          MetricFilter filter,
    +&nbsp;                          ScheduledExecutorService executor,
    +&nbsp;                          boolean shutdownExecutorOnStop,
    +&nbsp;                          Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    +<b class="fc">&nbsp;        super(registry, &quot;logger-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    +&nbsp;                disabledMetricAttributes);
    +<b class="fc">&nbsp;        this.loggerProxy = loggerProxy;</b>
    +<b class="fc">&nbsp;        this.marker = marker;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    +&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    +&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    +&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    +&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    +<b class="fc">&nbsp;        if (loggerProxy.isEnabled(marker)) {</b>
    +<b class="fc">&nbsp;            StringBuilder b = new StringBuilder();</b>
    +<b class="fc">&nbsp;            for (Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    +<b class="fc">&nbsp;                logGauge(b, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    +<b class="fc">&nbsp;                logCounter(b, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    +<b class="fc">&nbsp;                logHistogram(b, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    +<b class="fc">&nbsp;                logMeter(b, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    +<b class="fc">&nbsp;                logTimer(b, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void logTimer(StringBuilder b, String name, Timer timer) {
    +<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    +<b class="fc">&nbsp;        b.setLength(0);</b>
    +<b class="fc">&nbsp;        b.append(&quot;type=TIMER&quot;);</b>
    +<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    +<b class="fc">&nbsp;        appendCountIfEnabled(b, timer);</b>
    +<b class="fc">&nbsp;        appendLongDurationIfEnabled(b, MIN, snapshot::getMin);</b>
    +<b class="fc">&nbsp;        appendLongDurationIfEnabled(b, MAX, snapshot::getMax);</b>
    +<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, MEAN, snapshot::getMean);</b>
    +<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, STDDEV, snapshot::getStdDev);</b>
    +<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P50, snapshot::getMedian);</b>
    +<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P75, snapshot::get75thPercentile);</b>
    +<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P95, snapshot::get95thPercentile);</b>
    +<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P98, snapshot::get98thPercentile);</b>
    +<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P99, snapshot::get99thPercentile);</b>
    +<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P999, snapshot::get999thPercentile);</b>
    +<b class="fc">&nbsp;        appendMetered(b, timer);</b>
    +<b class="fc">&nbsp;        append(b, &quot;rate_unit&quot;, getRateUnit());</b>
    +<b class="fc">&nbsp;        append(b, &quot;duration_unit&quot;, getDurationUnit());</b>
    +<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void logMeter(StringBuilder b, String name, Meter meter) {
    +<b class="fc">&nbsp;        b.setLength(0);</b>
    +<b class="fc">&nbsp;        b.append(&quot;type=METER&quot;);</b>
    +<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    +<b class="fc">&nbsp;        appendCountIfEnabled(b, meter);</b>
    +<b class="fc">&nbsp;        appendMetered(b, meter);</b>
    +<b class="fc">&nbsp;        append(b, &quot;rate_unit&quot;, getRateUnit());</b>
    +<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void logHistogram(StringBuilder b, String name, Histogram histogram) {
    +<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    +<b class="fc">&nbsp;        b.setLength(0);</b>
    +<b class="fc">&nbsp;        b.append(&quot;type=HISTOGRAM&quot;);</b>
    +<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    +<b class="fc">&nbsp;        appendCountIfEnabled(b, histogram);</b>
    +<b class="fc">&nbsp;        appendLongIfEnabled(b, MIN, snapshot::getMin);</b>
    +<b class="fc">&nbsp;        appendLongIfEnabled(b, MAX, snapshot::getMax);</b>
    +<b class="fc">&nbsp;        appendDoubleIfEnabled(b, MEAN, snapshot::getMean);</b>
    +<b class="fc">&nbsp;        appendDoubleIfEnabled(b, STDDEV, snapshot::getStdDev);</b>
    +<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P50, snapshot::getMedian);</b>
    +<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P75, snapshot::get75thPercentile);</b>
    +<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P95, snapshot::get95thPercentile);</b>
    +<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P98, snapshot::get98thPercentile);</b>
    +<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P99, snapshot::get99thPercentile);</b>
    +<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P999, snapshot::get999thPercentile);</b>
    +<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void logCounter(StringBuilder b, String name, Counter counter) {
    +<b class="fc">&nbsp;        b.setLength(0);</b>
    +<b class="fc">&nbsp;        b.append(&quot;type=COUNTER&quot;);</b>
    +<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    +<b class="fc">&nbsp;        append(b, COUNT.getCode(), counter.getCount());</b>
    +<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void logGauge(StringBuilder b, String name, Gauge&lt;?&gt; gauge) {
    +<b class="fc">&nbsp;        b.setLength(0);</b>
    +<b class="fc">&nbsp;        b.append(&quot;type=GAUGE&quot;);</b>
    +<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    +<b class="fc">&nbsp;        append(b, &quot;value&quot;, gauge.getValue());</b>
    +<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void appendLongDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    +&nbsp;                                             Supplier&lt;Long&gt; durationSupplier) {
    +<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    +<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void appendDoubleDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    +&nbsp;                                               Supplier&lt;Double&gt; durationSupplier) {
    +<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    +<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void appendLongIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    +&nbsp;                                     Supplier&lt;Long&gt; valueSupplier) {
    +<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    +<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), valueSupplier.get());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void appendDoubleIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    +&nbsp;                                       Supplier&lt;Double&gt; valueSupplier) {
    +<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    +<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), valueSupplier.get());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void appendCountIfEnabled(StringBuilder b, Counting counting) {
    +<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(COUNT)) {</b>
    +<b class="fc">&nbsp;            append(b, COUNT.getCode(), counting.getCount());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void appendMetered(StringBuilder b, Metered meter) {
    +<b class="fc">&nbsp;        appendRateIfEnabled(b, M1_RATE, meter::getOneMinuteRate);</b>
    +<b class="fc">&nbsp;        appendRateIfEnabled(b, M5_RATE, meter::getFiveMinuteRate);</b>
    +<b class="fc">&nbsp;        appendRateIfEnabled(b, M15_RATE,  meter::getFifteenMinuteRate);</b>
    +<b class="fc">&nbsp;        appendRateIfEnabled(b, MEAN_RATE,  meter::getMeanRate);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void appendRateIfEnabled(StringBuilder b, MetricAttribute metricAttribute, Supplier&lt;Double&gt; rateSupplier) {
    +<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    +<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), convertRate(rateSupplier.get()));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void append(StringBuilder b, String key, long value) {
    +<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void append(StringBuilder b, String key, double value) {
    +<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void append(StringBuilder b, String key, String value) {
    +<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void append(StringBuilder b, String key, Object value) {
    +<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected String getRateUnit() {
    +<b class="fc">&nbsp;        return &quot;events/&quot; + super.getRateUnit();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String prefix(String... components) {
    +<b class="fc">&nbsp;        return MetricRegistry.name(prefix, components);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /* private class to allow logger configuration */
    +&nbsp;    static abstract class LoggerProxy {
    +&nbsp;        protected final Logger logger;
    +&nbsp;
    +<b class="fc">&nbsp;        public LoggerProxy(Logger logger) {</b>
    +<b class="fc">&nbsp;            this.logger = logger;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        abstract void log(Marker marker, String format);
    +&nbsp;
    +&nbsp;        abstract boolean isEnabled(Marker marker);
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /* private class to allow logger configuration */
    +&nbsp;    private static class DebugLoggerProxy extends LoggerProxy {
    +&nbsp;        public DebugLoggerProxy(Logger logger) {
    +<b class="nc">&nbsp;            super(logger);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void log(Marker marker, String format) {
    +<b class="nc">&nbsp;            logger.debug(marker, format);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean isEnabled(Marker marker) {
    +<b class="nc">&nbsp;            return logger.isDebugEnabled(marker);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /* private class to allow logger configuration */
    +&nbsp;    private static class TraceLoggerProxy extends LoggerProxy {
    +&nbsp;        public TraceLoggerProxy(Logger logger) {
    +<b class="nc">&nbsp;            super(logger);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void log(Marker marker, String format) {
    +<b class="nc">&nbsp;            logger.trace(marker, format);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean isEnabled(Marker marker) {
    +<b class="nc">&nbsp;            return logger.isTraceEnabled(marker);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /* private class to allow logger configuration */
    +&nbsp;    private static class InfoLoggerProxy extends LoggerProxy {
    +&nbsp;        public InfoLoggerProxy(Logger logger) {
    +<b class="fc">&nbsp;            super(logger);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void log(Marker marker, String format) {
    +<b class="fc">&nbsp;            logger.info(marker, format);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean isEnabled(Marker marker) {
    +<b class="fc">&nbsp;            return logger.isInfoEnabled(marker);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /* private class to allow logger configuration */
    +&nbsp;    private static class WarnLoggerProxy extends LoggerProxy {
    +&nbsp;        public WarnLoggerProxy(Logger logger) {
    +<b class="nc">&nbsp;            super(logger);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void log(Marker marker, String format) {
    +<b class="nc">&nbsp;            logger.warn(marker, format);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean isEnabled(Marker marker) {
    +<b class="nc">&nbsp;            return logger.isWarnEnabled(marker);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /* private class to allow logger configuration */
    +&nbsp;    private static class ErrorLoggerProxy extends LoggerProxy {
    +&nbsp;        public ErrorLoggerProxy(Logger logger) {
    +<b class="fc">&nbsp;            super(logger);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void log(Marker marker, String format) {
    +<b class="fc">&nbsp;            logger.error(marker, format);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean isEnabled(Marker marker) {
    +<b class="fc">&nbsp;            return logger.isErrorEnabled(marker);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1c.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1c.html
    new file mode 100644
    index 0000000000..ac0c73327c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1c.html
    @@ -0,0 +1,205 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowArrayReservoir</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoir (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowArrayReservoir</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.9%
    +  </span>
    +  <span class="absValue">
    +    (29/33)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
    +&nbsp; * in the last {@code N} seconds (or other time unit).
    +&nbsp; */
    +&nbsp;public class SlidingTimeWindowArrayReservoir implements Reservoir {
    +&nbsp;    // allow for this many duplicate ticks before overwriting measurements
    +&nbsp;    private static final long COLLISION_BUFFER = 256L;
    +&nbsp;    // only trim on updating once every N
    +&nbsp;    private static final long TRIM_THRESHOLD = 256L;
    +<b class="fc">&nbsp;    private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;</b>
    +&nbsp;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final ChunkedAssociativeLongArray measurements;
    +&nbsp;    private final long window;
    +&nbsp;    private final AtomicLong lastTick;
    +&nbsp;    private final AtomicLong count;
    +&nbsp;    private final long startTick;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given window of time.
    +&nbsp;     *
    +&nbsp;     * @param window     the window of time
    +&nbsp;     * @param windowUnit the unit of {@code window}
    +&nbsp;     */
    +&nbsp;    public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit) {
    +<b class="nc">&nbsp;        this(window, windowUnit, Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given clock and window of time.
    +&nbsp;     *
    +&nbsp;     * @param window     the window of time
    +&nbsp;     * @param windowUnit the unit of {@code window}
    +&nbsp;     * @param clock      the {@link Clock} to use
    +&nbsp;     */
    +<b class="fc">&nbsp;    public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit, Clock clock) {</b>
    +<b class="fc">&nbsp;        this.startTick = clock.getTick();</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.measurements = new ChunkedAssociativeLongArray();</b>
    +<b class="fc">&nbsp;        this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;</b>
    +<b class="fc">&nbsp;        this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);</b>
    +<b class="fc">&nbsp;        this.count = new AtomicLong();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int size() {
    +<b class="fc">&nbsp;        trim();</b>
    +<b class="fc">&nbsp;        return measurements.size();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void update(long value) {
    +&nbsp;        long newTick;
    +&nbsp;        do {
    +<b class="fc">&nbsp;            if (count.incrementAndGet() % TRIM_THRESHOLD == 0L) {</b>
    +<b class="fc">&nbsp;                trim();</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            long lastTick = this.lastTick.get();</b>
    +<b class="fc">&nbsp;            newTick = getTick();</b>
    +<b class="fc">&nbsp;            boolean longOverflow = newTick &lt; lastTick;</b>
    +<b class="fc">&nbsp;            if (longOverflow) {</b>
    +<b class="nc">&nbsp;                measurements.clear();</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        } while (!measurements.put(newTick, value));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Snapshot getSnapshot() {
    +<b class="fc">&nbsp;        trim();</b>
    +<b class="fc">&nbsp;        return new UniformSnapshot(measurements.values());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private long getTick() {
    +&nbsp;        for ( ;; ) {
    +<b class="fc">&nbsp;            final long oldTick = lastTick.get();</b>
    +<b class="fc">&nbsp;            final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;</b>
    +&nbsp;            // ensure the tick is strictly incrementing even if there are duplicate ticks
    +<b class="fc">&nbsp;            final long newTick = tick - oldTick &gt; 0L ? tick : oldTick + 1L;</b>
    +<b class="fc">&nbsp;            if (lastTick.compareAndSet(oldTick, newTick)) {</b>
    +<b class="fc">&nbsp;                return newTick;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    void trim() {
    +<b class="fc">&nbsp;        final long now = getTick();</b>
    +<b class="fc">&nbsp;        final long windowStart = now - window;</b>
    +<b class="fc">&nbsp;        final long windowEnd = now + CLEAR_BUFFER;</b>
    +<b class="fc">&nbsp;        if (windowStart &lt; windowEnd) {</b>
    +<b class="fc">&nbsp;            measurements.trim(windowStart, windowEnd);</b>
    +&nbsp;        } else {
    +&nbsp;            // long overflow handling that can happen only after 1 year after class loading
    +<b class="nc">&nbsp;            measurements.clear();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1d.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1d.html
    new file mode 100644
    index 0000000000..b0e9644652
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1d.html
    @@ -0,0 +1,217 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowArrayReservoirTrimReadTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirTrimReadTest (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowArrayReservoirTrimReadTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/12)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">SlidingTimeWindowArrayReservoirTrimReadTest$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import org.openjdk.jcstress.annotations.Actor;
    +&nbsp;import org.openjdk.jcstress.annotations.Expect;
    +&nbsp;import org.openjdk.jcstress.annotations.JCStressTest;
    +&nbsp;import org.openjdk.jcstress.annotations.Outcome;
    +&nbsp;import org.openjdk.jcstress.annotations.State;
    +&nbsp;import org.openjdk.jcstress.infra.results.L_Result;
    +&nbsp;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;
    +&nbsp;@JCStressTest
    +&nbsp;@Outcome(
    +&nbsp;    id = &quot;\\[240, 241, 242, 243, 244, 245, 246, 247, 248, 249\\]&quot;,
    +&nbsp;    expect = Expect.ACCEPTABLE,
    +&nbsp;    desc = &quot;Actor1 made read before Actor2 even started&quot;
    +&nbsp;    )
    +&nbsp;@Outcome(
    +&nbsp;    id = &quot;\\[243, 244, 245, 246, 247, 248, 249\\]&quot;,
    +&nbsp;    expect = Expect.ACCEPTABLE,
    +&nbsp;    desc = &quot;Actor2 made trim before Actor1 even started&quot;
    +&nbsp;    )
    +&nbsp;@Outcome(
    +&nbsp;    id = &quot;\\[244, 245, 246, 247, 248, 249\\]&quot;,
    +&nbsp;    expect = Expect.ACCEPTABLE,
    +&nbsp;    desc = &quot;Actor1 made trim, then Actor2 started trim and made startIndex change, &quot; +
    +&nbsp;        &quot;before Actor1 concurrent read.&quot;
    +&nbsp;    )
    +&nbsp;@Outcome(
    +&nbsp;    id = &quot;\\[243, 244, 245, 246, 247, 248\\]&quot;,
    +&nbsp;    expect = Expect.ACCEPTABLE,
    +&nbsp;    desc = &quot;Actor1 made trim, then Actor2 started trim, but not finished startIndex change, before Actor1 concurrent read.&quot;
    +&nbsp;    )
    +&nbsp;@State
    +<b class="nc">&nbsp;public class SlidingTimeWindowArrayReservoirTrimReadTest {</b>
    +<b class="nc">&nbsp;    private final AtomicLong ticks = new AtomicLong(0);</b>
    +&nbsp;    private final SlidingTimeWindowArrayReservoir reservoir;
    +&nbsp;
    +<b class="nc">&nbsp;    public SlidingTimeWindowArrayReservoirTrimReadTest() {</b>
    +<b class="nc">&nbsp;        reservoir = new SlidingTimeWindowArrayReservoir(10, TimeUnit.NANOSECONDS, new Clock() {</b>
    +&nbsp;            @Override
    +&nbsp;            public long getTick() {
    +<b class="nc">&nbsp;                return ticks.get();</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="nc">&nbsp;        for (int i = 0; i &lt; 250; i++) {</b>
    +<b class="nc">&nbsp;            ticks.set(i);</b>
    +<b class="nc">&nbsp;            reservoir.update(i);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Actor
    +&nbsp;    public void actor1(L_Result r) {
    +<b class="nc">&nbsp;        Snapshot snapshot = reservoir.getSnapshot();</b>
    +<b class="nc">&nbsp;        String stringValues = Arrays.toString(snapshot.getValues());</b>
    +<b class="nc">&nbsp;        r.r1 = stringValues;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Actor
    +&nbsp;    public void actor2() {
    +<b class="nc">&nbsp;        ticks.set(253);</b>
    +<b class="nc">&nbsp;        reservoir.trim();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1e.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1e.html
    new file mode 100644
    index 0000000000..084f9bc815
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1e.html
    @@ -0,0 +1,161 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowArrayReservoirWriteReadAllocate</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirWriteReadAllocate (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowArrayReservoirWriteReadAllocate</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import org.openjdk.jcstress.annotations.Actor;
    +&nbsp;import org.openjdk.jcstress.annotations.Arbiter;
    +&nbsp;import org.openjdk.jcstress.annotations.Expect;
    +&nbsp;import org.openjdk.jcstress.annotations.JCStressTest;
    +&nbsp;import org.openjdk.jcstress.annotations.Outcome;
    +&nbsp;import org.openjdk.jcstress.annotations.State;
    +&nbsp;import org.openjdk.jcstress.infra.results.L_Result;
    +&nbsp;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;@JCStressTest
    +&nbsp;@Outcome(id = &quot;\\[1023, 1029, 1034\\]&quot;, expect = Expect.ACCEPTABLE)
    +&nbsp;@State
    +&nbsp;public class SlidingTimeWindowArrayReservoirWriteReadAllocate {
    +&nbsp;
    +&nbsp;    private final SlidingTimeWindowArrayReservoir reservoir;
    +&nbsp;
    +<b class="nc">&nbsp;    public SlidingTimeWindowArrayReservoirWriteReadAllocate() {</b>
    +<b class="nc">&nbsp;        reservoir = new SlidingTimeWindowArrayReservoir(500, TimeUnit.SECONDS);</b>
    +<b class="nc">&nbsp;        for (int i = 0; i &lt; 1024; i++) {</b>
    +<b class="nc">&nbsp;            reservoir.update(i);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Actor
    +&nbsp;    public void actor1() {
    +<b class="nc">&nbsp;        reservoir.update(1029L);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Actor
    +&nbsp;    public void actor2() {
    +<b class="nc">&nbsp;        reservoir.update(1034L);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Arbiter
    +&nbsp;    public void arbiter(L_Result r) {
    +<b class="nc">&nbsp;        Snapshot snapshot = reservoir.getSnapshot();</b>
    +<b class="nc">&nbsp;        long[] values = snapshot.getValues();</b>
    +<b class="nc">&nbsp;        String stringValues = Arrays.toString(Arrays.copyOfRange(values, values.length - 3, values.length));</b>
    +<b class="nc">&nbsp;        r.r1 = stringValues;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1f.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1f.html
    new file mode 100644
    index 0000000000..fab27ae2f9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1f.html
    @@ -0,0 +1,149 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowArrayReservoirWriteReadTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirWriteReadTest (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowArrayReservoirWriteReadTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import org.openjdk.jcstress.annotations.Actor;
    +&nbsp;import org.openjdk.jcstress.annotations.Expect;
    +&nbsp;import org.openjdk.jcstress.annotations.JCStressTest;
    +&nbsp;import org.openjdk.jcstress.annotations.Outcome;
    +&nbsp;import org.openjdk.jcstress.annotations.State;
    +&nbsp;import org.openjdk.jcstress.infra.results.L_Result;
    +&nbsp;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;@JCStressTest
    +&nbsp;@Outcome(id = &quot;\\[\\]&quot;, expect = Expect.ACCEPTABLE)
    +&nbsp;@Outcome(id = &quot;\\[31\\]&quot;, expect = Expect.ACCEPTABLE)
    +&nbsp;@Outcome(id = &quot;\\[15\\]&quot;, expect = Expect.ACCEPTABLE)
    +&nbsp;@Outcome(id = &quot;\\[31, 15\\]&quot;, expect = Expect.ACCEPTABLE)
    +&nbsp;@Outcome(id = &quot;\\[15, 31\\]&quot;, expect = Expect.ACCEPTABLE)
    +&nbsp;@State
    +&nbsp;public class SlidingTimeWindowArrayReservoirWriteReadTest {
    +&nbsp;
    +&nbsp;    private final SlidingTimeWindowArrayReservoir reservoir;
    +&nbsp;
    +<b class="nc">&nbsp;    public SlidingTimeWindowArrayReservoirWriteReadTest() {</b>
    +<b class="nc">&nbsp;        reservoir = new SlidingTimeWindowArrayReservoir(1, TimeUnit.SECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Actor
    +&nbsp;    public void actor1() {
    +<b class="nc">&nbsp;        reservoir.update(31L);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Actor
    +&nbsp;    public void actor2() {
    +<b class="nc">&nbsp;        reservoir.update(15L);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Actor
    +&nbsp;    public void actor3(L_Result r) {
    +<b class="nc">&nbsp;        Snapshot snapshot = reservoir.getSnapshot();</b>
    +<b class="nc">&nbsp;        String stringValues = Arrays.toString(snapshot.getValues());</b>
    +<b class="nc">&nbsp;        r.r1 = stringValues;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2.html
    new file mode 100644
    index 0000000000..1747c35140
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2.html
    @@ -0,0 +1,333 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ChunkedAssociativeLongArray</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ChunkedAssociativeLongArray (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ChunkedAssociativeLongArray</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.3%
    +  </span>
    +  <span class="absValue">
    +    (81/85)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">ChunkedAssociativeLongArray$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">ChunkedAssociativeLongArray$Chunk</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.8%
    +  </span>
    +  <span class="absValue">
    +    (91/95)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.lang.ref.SoftReference;
    +&nbsp;import java.util.ArrayDeque;
    +&nbsp;import java.util.Deque;
    +&nbsp;import java.util.Iterator;
    +&nbsp;
    +&nbsp;import static java.lang.System.arraycopy;
    +&nbsp;import static java.util.Arrays.binarySearch;
    +&nbsp;
    +&nbsp;class ChunkedAssociativeLongArray {
    +<b class="fc">&nbsp;    private static final long[] EMPTY = new long[0];</b>
    +&nbsp;    private static final int DEFAULT_CHUNK_SIZE = 512;
    +&nbsp;    private static final int MAX_CACHE_SIZE = 128;
    +&nbsp;
    +&nbsp;    private final int defaultChunkSize;
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * We use this ArrayDeque as cache to store chunks that are expired and removed from main data structure.
    +&nbsp;     * Then instead of allocating new Chunk immediately we are trying to poll one from this deque.
    +&nbsp;     * So if you have constant or slowly changing load ChunkedAssociativeLongArray will never
    +&nbsp;     * throw away old chunks or allocate new ones which makes this data structure almost garbage free.
    +&nbsp;     */
    +<b class="fc">&nbsp;    private final ArrayDeque&lt;SoftReference&lt;Chunk&gt;&gt; chunksCache = new ArrayDeque&lt;&gt;();</b>
    +&nbsp;
    +<b class="fc">&nbsp;    private final Deque&lt;Chunk&gt; chunks = new ArrayDeque&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    ChunkedAssociativeLongArray() {
    +<b class="fc">&nbsp;        this(DEFAULT_CHUNK_SIZE);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    ChunkedAssociativeLongArray(int chunkSize) {</b>
    +<b class="fc">&nbsp;        this.defaultChunkSize = chunkSize;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Chunk allocateChunk() {
    +&nbsp;        while (true) {
    +<b class="fc">&nbsp;            final SoftReference&lt;Chunk&gt; chunkRef = chunksCache.pollLast();</b>
    +<b class="fc">&nbsp;            if (chunkRef == null) {</b>
    +<b class="fc">&nbsp;                return new Chunk(defaultChunkSize);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            final Chunk chunk = chunkRef.get();</b>
    +<b class="fc">&nbsp;            if (chunk != null) {</b>
    +<b class="fc">&nbsp;                chunk.cursor = 0;</b>
    +<b class="fc">&nbsp;                chunk.startIndex = 0;</b>
    +<b class="fc">&nbsp;                chunk.chunkSize = chunk.keys.length;</b>
    +<b class="fc">&nbsp;                return chunk;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void freeChunk(Chunk chunk) {
    +<b class="fc">&nbsp;        if (chunksCache.size() &lt; MAX_CACHE_SIZE) {</b>
    +<b class="fc">&nbsp;            chunksCache.add(new SoftReference&lt;&gt;(chunk));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    synchronized boolean put(long key, long value) {
    +<b class="fc">&nbsp;        Chunk activeChunk = chunks.peekLast();</b>
    +<b class="fc">&nbsp;        if (activeChunk != null &amp;&amp; activeChunk.cursor != 0 &amp;&amp; activeChunk.keys[activeChunk.cursor - 1] &gt; key) {</b>
    +&nbsp;            // key should be the same as last inserted or bigger
    +<b class="nc">&nbsp;            return false;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        if (activeChunk == null || activeChunk.cursor - activeChunk.startIndex == activeChunk.chunkSize) {</b>
    +&nbsp;            // The last chunk doesn&#39;t exist or full
    +<b class="fc">&nbsp;            activeChunk = allocateChunk();</b>
    +<b class="fc">&nbsp;            chunks.add(activeChunk);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeChunk.append(key, value);</b>
    +<b class="fc">&nbsp;        return true;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    synchronized long[] values() {
    +<b class="fc">&nbsp;        final int valuesSize = size();</b>
    +<b class="fc">&nbsp;        if (valuesSize == 0) {</b>
    +<b class="nc">&nbsp;            return EMPTY;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final long[] values = new long[valuesSize];</b>
    +<b class="fc">&nbsp;        int valuesIndex = 0;</b>
    +<b class="fc">&nbsp;        for (Chunk chunk : chunks) {</b>
    +<b class="fc">&nbsp;            int length = chunk.cursor - chunk.startIndex;</b>
    +<b class="fc">&nbsp;            int itemsToCopy = Math.min(valuesSize - valuesIndex, length);</b>
    +<b class="fc">&nbsp;            arraycopy(chunk.values, chunk.startIndex, values, valuesIndex, itemsToCopy);</b>
    +<b class="fc">&nbsp;            valuesIndex += length;</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return values;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    synchronized int size() {
    +<b class="fc">&nbsp;        int result = 0;</b>
    +<b class="fc">&nbsp;        for (Chunk chunk : chunks) {</b>
    +<b class="fc">&nbsp;            result += chunk.cursor - chunk.startIndex;</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return result;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    synchronized String out() {
    +<b class="fc">&nbsp;        final StringBuilder builder = new StringBuilder();</b>
    +<b class="fc">&nbsp;        final Iterator&lt;Chunk&gt; iterator = chunks.iterator();</b>
    +<b class="fc">&nbsp;        while (iterator.hasNext()) {</b>
    +<b class="fc">&nbsp;            final Chunk chunk = iterator.next();</b>
    +<b class="fc">&nbsp;            builder.append(&#39;[&#39;);</b>
    +<b class="fc">&nbsp;            for (int i = chunk.startIndex; i &lt; chunk.cursor; i++) {</b>
    +<b class="fc">&nbsp;                builder.append(&#39;(&#39;).append(chunk.keys[i]).append(&quot;: &quot;)</b>
    +<b class="fc">&nbsp;                        .append(chunk.values[i]).append(&#39;)&#39;).append(&#39; &#39;);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            builder.append(&#39;]&#39;);</b>
    +<b class="fc">&nbsp;            if (iterator.hasNext()) {</b>
    +<b class="fc">&nbsp;                builder.append(&quot;-&gt;&quot;);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return builder.toString();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Try to trim all beyond specified boundaries.
    +&nbsp;     *
    +&nbsp;     * @param startKey the start value for which all elements less than it should be removed.
    +&nbsp;     * @param endKey   the end value for which all elements greater/equals than it should be removed.
    +&nbsp;     */
    +&nbsp;    synchronized void trim(long startKey, long endKey) {
    +&nbsp;        /*
    +&nbsp;         * [3, 4, 5, 9] -&gt; [10, 13, 14, 15] -&gt; [21, 24, 29, 30] -&gt; [31] :: start layout
    +&nbsp;         *       |5______________________________23|                    :: trim(5, 23)
    +&nbsp;         *       [5, 9] -&gt; [10, 13, 14, 15] -&gt; [21]                     :: result layout
    +&nbsp;         */
    +<b class="fc">&nbsp;        final Iterator&lt;Chunk&gt; descendingIterator = chunks.descendingIterator();</b>
    +<b class="fc">&nbsp;        while (descendingIterator.hasNext()) {</b>
    +<b class="fc">&nbsp;            final Chunk currentTail = descendingIterator.next();</b>
    +<b class="fc">&nbsp;            if (isFirstElementIsEmptyOrGreaterEqualThanKey(currentTail, endKey)) {</b>
    +<b class="fc">&nbsp;                freeChunk(currentTail);</b>
    +<b class="fc">&nbsp;                descendingIterator.remove();</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                currentTail.cursor = findFirstIndexOfGreaterEqualElements(currentTail.keys, currentTail.startIndex,</b>
    +<b class="fc">&nbsp;                        currentTail.cursor, endKey);</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final Iterator&lt;Chunk&gt; iterator = chunks.iterator();</b>
    +<b class="fc">&nbsp;        while (iterator.hasNext()) {</b>
    +<b class="fc">&nbsp;            final Chunk currentHead = iterator.next();</b>
    +<b class="fc">&nbsp;            if (isLastElementIsLessThanKey(currentHead, startKey)) {</b>
    +<b class="fc">&nbsp;                freeChunk(currentHead);</b>
    +<b class="fc">&nbsp;                iterator.remove();</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                final int newStartIndex = findFirstIndexOfGreaterEqualElements(currentHead.keys, currentHead.startIndex,</b>
    +<b class="fc">&nbsp;                        currentHead.cursor, startKey);</b>
    +<b class="fc">&nbsp;                if (currentHead.startIndex != newStartIndex) {</b>
    +<b class="fc">&nbsp;                    currentHead.startIndex = newStartIndex;</b>
    +<b class="fc">&nbsp;                    currentHead.chunkSize = currentHead.cursor - currentHead.startIndex;</b>
    +&nbsp;                }
    +&nbsp;                break;
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    synchronized void clear() {
    +<b class="nc">&nbsp;        chunks.clear();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private boolean isFirstElementIsEmptyOrGreaterEqualThanKey(Chunk chunk, long key) {
    +<b class="fc">&nbsp;        return chunk.cursor == chunk.startIndex || chunk.keys[chunk.startIndex] &gt;= key;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private boolean isLastElementIsLessThanKey(Chunk chunk, long key) {
    +<b class="fc">&nbsp;        return chunk.cursor == chunk.startIndex || chunk.keys[chunk.cursor - 1] &lt; key;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private int findFirstIndexOfGreaterEqualElements(long[] array, int startIndex, int endIndex, long minKey) {
    +<b class="fc">&nbsp;        if (endIndex == startIndex || array[startIndex] &gt;= minKey) {</b>
    +<b class="fc">&nbsp;            return startIndex;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        final int keyIndex = binarySearch(array, startIndex, endIndex, minKey);</b>
    +<b class="fc">&nbsp;        return keyIndex &lt; 0 ? -(keyIndex + 1) : keyIndex;</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class Chunk {</b>
    +&nbsp;
    +&nbsp;        private final long[] keys;
    +&nbsp;        private final long[] values;
    +&nbsp;
    +&nbsp;        private int chunkSize; // can differ from keys.length after half clear()
    +<b class="fc">&nbsp;        private int startIndex = 0;</b>
    +<b class="fc">&nbsp;        private int cursor = 0;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        private Chunk(int chunkSize) {</b>
    +<b class="fc">&nbsp;            this.chunkSize = chunkSize;</b>
    +<b class="fc">&nbsp;            this.keys = new long[chunkSize];</b>
    +<b class="fc">&nbsp;            this.values = new long[chunkSize];</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private void append(long key, long value) {
    +<b class="fc">&nbsp;            keys[cursor] = key;</b>
    +<b class="fc">&nbsp;            values[cursor] = value;</b>
    +<b class="fc">&nbsp;            cursor++;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-20.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-20.html
    new file mode 100644
    index 0000000000..48945a0690
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-20.html
    @@ -0,0 +1,301 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowMovingAverages</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowMovingAverages (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowMovingAverages</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (63/63)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.time.Duration;
    +&nbsp;import java.time.Instant;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;import java.util.concurrent.atomic.LongAdder;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A triple of simple moving average rates (one, five and fifteen minutes rates) as needed by {@link Meter}.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * The averages are unweighted, i.e. they include strictly only the events in the
    +&nbsp; * sliding time window, every event having the same weight. Unlike the
    +&nbsp; * the more widely used {@link ExponentialMovingAverages} implementation,
    +&nbsp; * with this class the moving average rate drops immediately to zero if the last
    +&nbsp; * marked event is older than the time window.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A {@link Meter} with {@link SlidingTimeWindowMovingAverages} works similarly to
    +&nbsp; * a {@link Histogram} with an {@link SlidingTimeWindowArrayReservoir}, but as a Meter
    +&nbsp; * needs to keep track only of the count of events (not the events itself), the memory
    +&nbsp; * overhead is much smaller. SlidingTimeWindowMovingAverages uses buckets with just one
    +&nbsp; * counter to accumulate the number of events (one bucket per seconds, giving 900 buckets
    +&nbsp; * for the 15 minutes time window).
    +&nbsp; */
    +&nbsp;public class SlidingTimeWindowMovingAverages implements MovingAverages {
    +&nbsp;
    +&nbsp;    private static final long TIME_WINDOW_DURATION_MINUTES = 15;
    +<b class="fc">&nbsp;    private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(1);</b>
    +<b class="fc">&nbsp;    private static final Duration TIME_WINDOW_DURATION = Duration.ofMinutes(TIME_WINDOW_DURATION_MINUTES);</b>
    +&nbsp;
    +&nbsp;    // package private for the benefit of the unit test
    +<b class="fc">&nbsp;    static final int NUMBER_OF_BUCKETS = (int) (TIME_WINDOW_DURATION.toNanos() / TICK_INTERVAL);</b>
    +&nbsp;
    +&nbsp;    private final AtomicLong lastTick;
    +&nbsp;    private final Clock clock;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * One counter per time bucket/slot (i.e. per second, see TICK_INTERVAL) for the entire
    +&nbsp;     * time window (i.e. 15 minutes, see TIME_WINDOW_DURATION_MINUTES)
    +&nbsp;     */
    +&nbsp;    private ArrayList&lt;LongAdder&gt; buckets;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Index into buckets, pointing at the bucket containing the oldest counts
    +&nbsp;     */
    +&nbsp;    private int oldestBucketIndex;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Index into buckets, pointing at the bucket with the count for the current time (tick)
    +&nbsp;     */
    +&nbsp;    private int currentBucketIndex;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Instant at creation time of the time window. Used to calculate the currentBucketIndex
    +&nbsp;     * for the instant of a given tick (instant modulo time window duration)
    +&nbsp;     */
    +&nbsp;    private final Instant bucketBaseTime;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Instant of the bucket with index oldestBucketIndex
    +&nbsp;     */
    +&nbsp;    Instant oldestBucketTime;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link SlidingTimeWindowMovingAverages}.
    +&nbsp;     */
    +&nbsp;    public SlidingTimeWindowMovingAverages() {
    +<b class="fc">&nbsp;        this(Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link SlidingTimeWindowMovingAverages}.
    +&nbsp;     *
    +&nbsp;     * @param clock the clock to use for the meter ticks
    +&nbsp;     */
    +<b class="fc">&nbsp;    public SlidingTimeWindowMovingAverages(Clock clock) {</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    +<b class="fc">&nbsp;        lastTick = new AtomicLong(startTime);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        buckets = new ArrayList&lt;&gt;(NUMBER_OF_BUCKETS);</b>
    +<b class="fc">&nbsp;        for (int i = 0; i &lt; NUMBER_OF_BUCKETS; i++) {</b>
    +<b class="fc">&nbsp;            buckets.add(new LongAdder());</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        bucketBaseTime = Instant.ofEpochSecond(0L, startTime);</b>
    +<b class="fc">&nbsp;        oldestBucketTime = bucketBaseTime;</b>
    +<b class="fc">&nbsp;        oldestBucketIndex = 0;</b>
    +<b class="fc">&nbsp;        currentBucketIndex = 0;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void update(long n) {
    +<b class="fc">&nbsp;        buckets.get(currentBucketIndex).add(n);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void tickIfNecessary() {
    +<b class="fc">&nbsp;        final long oldTick = lastTick.get();</b>
    +<b class="fc">&nbsp;        final long newTick = clock.getTick();</b>
    +<b class="fc">&nbsp;        final long age = newTick - oldTick;</b>
    +<b class="fc">&nbsp;        if (age &gt;= TICK_INTERVAL) {</b>
    +&nbsp;            // - the newTick doesn&#39;t fall into the same slot as the oldTick anymore
    +&nbsp;            // - newLastTick is the lower border time of the new currentBucketIndex slot
    +<b class="fc">&nbsp;            final long newLastTick = newTick - age % TICK_INTERVAL;</b>
    +<b class="fc">&nbsp;            if (lastTick.compareAndSet(oldTick, newLastTick)) {</b>
    +<b class="fc">&nbsp;                Instant currentInstant = Instant.ofEpochSecond(0L, newLastTick);</b>
    +<b class="fc">&nbsp;                currentBucketIndex = normalizeIndex(calculateIndexOfTick(currentInstant));</b>
    +<b class="fc">&nbsp;                cleanOldBuckets(currentInstant);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getM15Rate() {
    +<b class="fc">&nbsp;        return getMinuteRate(15);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getM5Rate() {
    +<b class="fc">&nbsp;        return getMinuteRate(5);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getM1Rate() {
    +<b class="fc">&nbsp;        return getMinuteRate(1);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private double getMinuteRate(int minutes) {
    +<b class="fc">&nbsp;        Instant now = Instant.ofEpochSecond(0L, lastTick.get());</b>
    +<b class="fc">&nbsp;        return sumBuckets(now, (int) (TimeUnit.MINUTES.toNanos(minutes) / TICK_INTERVAL));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    int calculateIndexOfTick(Instant tickTime) {
    +<b class="fc">&nbsp;        return (int) (Duration.between(bucketBaseTime, tickTime).toNanos() / TICK_INTERVAL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    int normalizeIndex(int index) {
    +<b class="fc">&nbsp;        int mod = index % NUMBER_OF_BUCKETS;</b>
    +<b class="fc">&nbsp;        return mod &gt;= 0 ? mod : mod + NUMBER_OF_BUCKETS;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void cleanOldBuckets(Instant currentTick) {
    +&nbsp;        int newOldestIndex;
    +<b class="fc">&nbsp;        Instant oldestStillNeededTime = currentTick.minus(TIME_WINDOW_DURATION).plusNanos(TICK_INTERVAL);</b>
    +<b class="fc">&nbsp;        Instant youngestNotInWindow = oldestBucketTime.plus(TIME_WINDOW_DURATION);</b>
    +<b class="fc">&nbsp;        if (oldestStillNeededTime.isAfter(youngestNotInWindow)) {</b>
    +&nbsp;            // there was no update() call for more than two whole TIME_WINDOW_DURATION
    +<b class="fc">&nbsp;            newOldestIndex = oldestBucketIndex;</b>
    +<b class="fc">&nbsp;            oldestBucketTime = currentTick;</b>
    +<b class="fc">&nbsp;        } else if (oldestStillNeededTime.isAfter(oldestBucketTime)) {</b>
    +<b class="fc">&nbsp;            newOldestIndex = normalizeIndex(calculateIndexOfTick(oldestStillNeededTime));</b>
    +<b class="fc">&nbsp;            oldestBucketTime = oldestStillNeededTime;</b>
    +&nbsp;        } else {
    +&nbsp;            return;
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        cleanBucketRange(oldestBucketIndex, newOldestIndex);</b>
    +<b class="fc">&nbsp;        oldestBucketIndex = newOldestIndex;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void cleanBucketRange(int fromIndex, int toIndex) {
    +<b class="fc">&nbsp;        if (fromIndex &lt; toIndex) {</b>
    +<b class="fc">&nbsp;            for (int i = fromIndex; i &lt; toIndex; i++) {</b>
    +<b class="fc">&nbsp;                buckets.get(i).reset();</b>
    +&nbsp;            }
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            for (int i = fromIndex; i &lt; NUMBER_OF_BUCKETS; i++) {</b>
    +<b class="fc">&nbsp;                buckets.get(i).reset();</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            for (int i = 0; i &lt; toIndex; i++) {</b>
    +<b class="fc">&nbsp;                buckets.get(i).reset();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private long sumBuckets(Instant toTime, int numberOfBuckets) {
    +&nbsp;
    +&nbsp;        // increment toIndex to include the current bucket into the sum
    +<b class="fc">&nbsp;        int toIndex = normalizeIndex(calculateIndexOfTick(toTime) + 1);</b>
    +<b class="fc">&nbsp;        int fromIndex = normalizeIndex(toIndex - numberOfBuckets);</b>
    +<b class="fc">&nbsp;        LongAdder adder = new LongAdder();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (fromIndex &lt; toIndex) {</b>
    +<b class="fc">&nbsp;            buckets.stream()</b>
    +<b class="fc">&nbsp;                    .skip(fromIndex)</b>
    +<b class="fc">&nbsp;                    .limit(toIndex - fromIndex)</b>
    +<b class="fc">&nbsp;                    .mapToLong(LongAdder::longValue)</b>
    +<b class="fc">&nbsp;                    .forEach(adder::add);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            buckets.stream().limit(toIndex).mapToLong(LongAdder::longValue).forEach(adder::add);</b>
    +<b class="fc">&nbsp;            buckets.stream().skip(fromIndex).mapToLong(LongAdder::longValue).forEach(adder::add);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        long retval = adder.longValue();</b>
    +<b class="fc">&nbsp;        return retval;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-21.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-21.html
    new file mode 100644
    index 0000000000..a8e37ee00f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-21.html
    @@ -0,0 +1,199 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowReservoir</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowReservoir (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowReservoir</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.1%
    +  </span>
    +  <span class="absValue">
    +    (27/29)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.ConcurrentSkipListMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
    +&nbsp; * in the last {@code N} seconds (or other time unit).
    +&nbsp; */
    +&nbsp;public class SlidingTimeWindowReservoir implements Reservoir {
    +&nbsp;    // allow for this many duplicate ticks before overwriting measurements
    +&nbsp;    private static final int COLLISION_BUFFER = 256;
    +&nbsp;    // only trim on updating once every N
    +&nbsp;    private static final int TRIM_THRESHOLD = 256;
    +&nbsp;    // offsets the front of the time window for the purposes of clearing the buffer in trim
    +<b class="fc">&nbsp;    private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;</b>
    +&nbsp;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final ConcurrentSkipListMap&lt;Long, Long&gt; measurements;
    +&nbsp;    private final long window;
    +&nbsp;    private final AtomicLong lastTick;
    +&nbsp;    private final AtomicLong count;
    +&nbsp;    private final long startTick;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link SlidingTimeWindowReservoir} with the given window of time.
    +&nbsp;     *
    +&nbsp;     * @param window     the window of time
    +&nbsp;     * @param windowUnit the unit of {@code window}
    +&nbsp;     */
    +&nbsp;    public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit) {
    +<b class="nc">&nbsp;        this(window, windowUnit, Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link SlidingTimeWindowReservoir} with the given clock and window of time.
    +&nbsp;     *
    +&nbsp;     * @param window     the window of time
    +&nbsp;     * @param windowUnit the unit of {@code window}
    +&nbsp;     * @param clock      the {@link Clock} to use
    +&nbsp;     */
    +<b class="fc">&nbsp;    public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit, Clock clock) {</b>
    +<b class="fc">&nbsp;        this.startTick = clock.getTick();</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.measurements = new ConcurrentSkipListMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;</b>
    +<b class="fc">&nbsp;        this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);</b>
    +<b class="fc">&nbsp;        this.count = new AtomicLong();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int size() {
    +<b class="fc">&nbsp;        trim();</b>
    +<b class="fc">&nbsp;        return measurements.size();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void update(long value) {
    +<b class="fc">&nbsp;        if (count.incrementAndGet() % TRIM_THRESHOLD == 0) {</b>
    +<b class="fc">&nbsp;            trim();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        measurements.put(getTick(), value);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Snapshot getSnapshot() {
    +<b class="fc">&nbsp;        trim();</b>
    +<b class="fc">&nbsp;        return new UniformSnapshot(measurements.values());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private long getTick() {
    +&nbsp;        for ( ;; ) {
    +<b class="fc">&nbsp;            final long oldTick = lastTick.get();</b>
    +<b class="fc">&nbsp;            final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;</b>
    +&nbsp;            // ensure the tick is strictly incrementing even if there are duplicate ticks
    +<b class="fc">&nbsp;            final long newTick = tick - oldTick &gt; 0 ? tick : oldTick + 1;</b>
    +<b class="fc">&nbsp;            if (lastTick.compareAndSet(oldTick, newTick)) {</b>
    +<b class="fc">&nbsp;                return newTick;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void trim() {
    +<b class="fc">&nbsp;        final long now = getTick();</b>
    +<b class="fc">&nbsp;        final long windowStart = now - window;</b>
    +<b class="fc">&nbsp;        final long windowEnd = now + CLEAR_BUFFER;</b>
    +<b class="fc">&nbsp;        if (windowStart &lt; windowEnd) {</b>
    +<b class="fc">&nbsp;            measurements.headMap(windowStart).clear();</b>
    +<b class="fc">&nbsp;            measurements.tailMap(windowEnd).clear();</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            measurements.subMap(windowEnd, windowStart).clear();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-22.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-22.html
    new file mode 100644
    index 0000000000..f574a2c3cc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-22.html
    @@ -0,0 +1,147 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingWindowReservoir</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingWindowReservoir (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingWindowReservoir</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import static java.lang.Math.min;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link Reservoir} implementation backed by a sliding window that stores the last {@code N}
    +&nbsp; * measurements.
    +&nbsp; */
    +&nbsp;public class SlidingWindowReservoir implements Reservoir {
    +&nbsp;    private final long[] measurements;
    +&nbsp;    private long count;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link SlidingWindowReservoir} which stores the last {@code size} measurements.
    +&nbsp;     *
    +&nbsp;     * @param size the number of measurements to store
    +&nbsp;     */
    +<b class="fc">&nbsp;    public SlidingWindowReservoir(int size) {</b>
    +<b class="fc">&nbsp;        this.measurements = new long[size];</b>
    +<b class="fc">&nbsp;        this.count = 0;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public synchronized int size() {
    +<b class="fc">&nbsp;        return (int) min(count, measurements.length);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public synchronized void update(long value) {
    +<b class="fc">&nbsp;        measurements[(int) (count++ % measurements.length)] = value;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Snapshot getSnapshot() {
    +<b class="fc">&nbsp;        final long[] values = new long[size()];</b>
    +<b class="fc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    +<b class="fc">&nbsp;            synchronized (this) {</b>
    +<b class="fc">&nbsp;                values[i] = measurements[i];</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return new UniformSnapshot(values);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-23.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-23.html
    new file mode 100644
    index 0000000000..45bf8d21e4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-23.html
    @@ -0,0 +1,277 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Snapshot</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Snapshot (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Snapshot</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$mZ3tmzjp</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$mZ3tmzjp$auxiliary$bgJwullp</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$mZ3tmzjp$auxiliary$smpCeeR7</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$TAy1oPp7</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$TAy1oPp7$auxiliary$2IY4yGwf</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$TAy1oPp7$auxiliary$m3D1oaOo</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$U8c8ic7C</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$U8c8ic7C$auxiliary$7Kz9rWWn</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$U8c8ic7C$auxiliary$DdIHODfL</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$vUeJ5rxj</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$vUeJ5rxj$auxiliary$Gg22ZTJQ</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$vUeJ5rxj$auxiliary$n0OOEY8a</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$w1t1NJKR</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$w1t1NJKR$auxiliary$2oCkK5Hg</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Snapshot$MockitoMock$w1t1NJKR$auxiliary$nGy7GYus</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A statistical snapshot of a {@link Snapshot}.
    +&nbsp; */
    +<b class="fc">&nbsp;public abstract class Snapshot {</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the value at the given quantile.
    +&nbsp;     *
    +&nbsp;     * @param quantile a given quantile, in {@code [0..1]}
    +&nbsp;     * @return the value in the distribution at {@code quantile}
    +&nbsp;     */
    +&nbsp;    public abstract double getValue(double quantile);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the entire set of values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the entire set of values
    +&nbsp;     */
    +&nbsp;    public abstract long[] getValues();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the number of values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the number of values
    +&nbsp;     */
    +&nbsp;    public abstract int size();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the median value in the distribution.
    +&nbsp;     *
    +&nbsp;     * @return the median value
    +&nbsp;     */
    +&nbsp;    public double getMedian() {
    +<b class="fc">&nbsp;        return getValue(0.5);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the value at the 75th percentile in the distribution.
    +&nbsp;     *
    +&nbsp;     * @return the value at the 75th percentile
    +&nbsp;     */
    +&nbsp;    public double get75thPercentile() {
    +<b class="fc">&nbsp;        return getValue(0.75);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the value at the 95th percentile in the distribution.
    +&nbsp;     *
    +&nbsp;     * @return the value at the 95th percentile
    +&nbsp;     */
    +&nbsp;    public double get95thPercentile() {
    +<b class="fc">&nbsp;        return getValue(0.95);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the value at the 98th percentile in the distribution.
    +&nbsp;     *
    +&nbsp;     * @return the value at the 98th percentile
    +&nbsp;     */
    +&nbsp;    public double get98thPercentile() {
    +<b class="fc">&nbsp;        return getValue(0.98);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the value at the 99th percentile in the distribution.
    +&nbsp;     *
    +&nbsp;     * @return the value at the 99th percentile
    +&nbsp;     */
    +&nbsp;    public double get99thPercentile() {
    +<b class="fc">&nbsp;        return getValue(0.99);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the value at the 99.9th percentile in the distribution.
    +&nbsp;     *
    +&nbsp;     * @return the value at the 99.9th percentile
    +&nbsp;     */
    +&nbsp;    public double get999thPercentile() {
    +<b class="fc">&nbsp;        return getValue(0.999);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the highest value in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the highest value
    +&nbsp;     */
    +&nbsp;    public abstract long getMax();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the arithmetic mean of the values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the arithmetic mean
    +&nbsp;     */
    +&nbsp;    public abstract double getMean();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the lowest value in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the lowest value
    +&nbsp;     */
    +&nbsp;    public abstract long getMin();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the standard deviation of the values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the standard value
    +&nbsp;     */
    +&nbsp;    public abstract double getStdDev();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Writes the values of the snapshot to the given stream.
    +&nbsp;     *
    +&nbsp;     * @param output an output stream
    +&nbsp;     */
    +&nbsp;    public abstract void dump(OutputStream output);
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-24.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-24.html
    new file mode 100644
    index 0000000000..ad2989f012
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-24.html
    @@ -0,0 +1,353 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Timer</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Timer (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Timer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (29/31)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">Timer$Context</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.time.Duration;
    +&nbsp;import java.util.concurrent.Callable;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A timer metric which aggregates timing durations and provides duration statistics, plus
    +&nbsp; * throughput statistics via {@link Meter}.
    +&nbsp; */
    +&nbsp;public class Timer implements Metered, Sampling {
    +&nbsp;    /**
    +&nbsp;     * A timing context.
    +&nbsp;     *
    +&nbsp;     * @see Timer#time()
    +&nbsp;     */
    +&nbsp;    public static class Context implements AutoCloseable {
    +&nbsp;        private final Timer timer;
    +&nbsp;        private final Clock clock;
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="fc">&nbsp;        Context(Timer timer, Clock clock) {</b>
    +<b class="fc">&nbsp;            this.timer = timer;</b>
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            this.startTime = clock.getTick();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Updates the timer with the difference between current and start time. Call to this method will
    +&nbsp;         * not reset the start time. Multiple calls result in multiple updates.
    +&nbsp;         *
    +&nbsp;         * @return the elapsed time in nanoseconds
    +&nbsp;         */
    +&nbsp;        public long stop() {
    +<b class="fc">&nbsp;            final long elapsed = clock.getTick() - startTime;</b>
    +<b class="fc">&nbsp;            timer.update(elapsed, TimeUnit.NANOSECONDS);</b>
    +<b class="fc">&nbsp;            return elapsed;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Equivalent to calling {@link #stop()}.
    +&nbsp;         */
    +&nbsp;        @Override
    +&nbsp;        public void close() {
    +<b class="fc">&nbsp;            stop();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final Meter meter;
    +&nbsp;    private final Histogram histogram;
    +&nbsp;    private final Clock clock;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link Timer} using an {@link ExponentiallyDecayingReservoir} and the default
    +&nbsp;     * {@link Clock}.
    +&nbsp;     */
    +&nbsp;    public Timer() {
    +<b class="fc">&nbsp;        this(new ExponentiallyDecayingReservoir());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link Timer} that uses the given {@link Reservoir}.
    +&nbsp;     *
    +&nbsp;     * @param reservoir the {@link Reservoir} implementation the timer should use
    +&nbsp;     */
    +&nbsp;    public Timer(Reservoir reservoir) {
    +<b class="fc">&nbsp;        this(reservoir, Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link Timer} that uses the given {@link Reservoir} and {@link Clock}.
    +&nbsp;     *
    +&nbsp;     * @param reservoir the {@link Reservoir} implementation the timer should use
    +&nbsp;     * @param clock     the {@link Clock} implementation the timer should use
    +&nbsp;     */
    +&nbsp;    public Timer(Reservoir reservoir, Clock clock) {
    +<b class="fc">&nbsp;        this(new Meter(clock), new Histogram(reservoir), clock);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public Timer(Meter meter, Histogram histogram, Clock clock) {</b>
    +<b class="fc">&nbsp;        this.meter = meter;</b>
    +<b class="fc">&nbsp;        this.histogram = histogram;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Adds a recorded duration.
    +&nbsp;     *
    +&nbsp;     * @param duration the length of the duration
    +&nbsp;     * @param unit     the scale unit of {@code duration}
    +&nbsp;     */
    +&nbsp;    public void update(long duration, TimeUnit unit) {
    +<b class="fc">&nbsp;        update(unit.toNanos(duration));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Adds a recorded duration.
    +&nbsp;     *
    +&nbsp;     * @param duration the {@link Duration} to add to the timer. Negative or zero value are ignored.
    +&nbsp;     */
    +&nbsp;    public void update(Duration duration) {
    +<b class="fc">&nbsp;        update(duration.toNanos());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Times and records the duration of event.
    +&nbsp;     *
    +&nbsp;     * @param event a {@link Callable} whose {@link Callable#call()} method implements a process
    +&nbsp;     *              whose duration should be timed
    +&nbsp;     * @param &lt;T&gt;   the type of the value returned by {@code event}
    +&nbsp;     * @return the value returned by {@code event}
    +&nbsp;     * @throws Exception if {@code event} throws an {@link Exception}
    +&nbsp;     */
    +&nbsp;    public &lt;T&gt; T time(Callable&lt;T&gt; event) throws Exception {
    +<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return event.call();</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            update(clock.getTick() - startTime);</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Times and records the duration of event. Should not throw exceptions, for that use the
    +&nbsp;     * {@link #time(Callable)} method.
    +&nbsp;     *
    +&nbsp;     * @param event a {@link Supplier} whose {@link Supplier#get()} method implements a process
    +&nbsp;     *              whose duration should be timed
    +&nbsp;     * @param &lt;T&gt;   the type of the value returned by {@code event}
    +&nbsp;     * @return the value returned by {@code event}
    +&nbsp;     */
    +&nbsp;    public &lt;T&gt; T timeSupplier(Supplier&lt;T&gt; event) {
    +<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return event.get();</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            update(clock.getTick() - startTime);</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Times and records the duration of event.
    +&nbsp;     *
    +&nbsp;     * @param event a {@link Runnable} whose {@link Runnable#run()} method implements a process
    +&nbsp;     *              whose duration should be timed
    +&nbsp;     */
    +&nbsp;    public void time(Runnable event) {
    +<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            event.run();</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            update(clock.getTick() - startTime);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a new {@link Context}.
    +&nbsp;     *
    +&nbsp;     * @return a new {@link Context}
    +&nbsp;     * @see Context
    +&nbsp;     */
    +&nbsp;    public Context time() {
    +<b class="fc">&nbsp;        return new Context(this, clock);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public long getCount() {
    +<b class="fc">&nbsp;        return histogram.getCount();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getFifteenMinuteRate() {
    +<b class="fc">&nbsp;        return meter.getFifteenMinuteRate();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getFiveMinuteRate() {
    +<b class="fc">&nbsp;        return meter.getFiveMinuteRate();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getMeanRate() {
    +<b class="fc">&nbsp;        return meter.getMeanRate();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getOneMinuteRate() {
    +<b class="fc">&nbsp;        return meter.getOneMinuteRate();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Snapshot getSnapshot() {
    +<b class="fc">&nbsp;        return histogram.getSnapshot();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void update(long duration) {
    +<b class="pc">&nbsp;        if (duration &gt;= 0) {</b>
    +<b class="fc">&nbsp;            histogram.update(duration);</b>
    +<b class="fc">&nbsp;            meter.mark();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-25.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-25.html
    new file mode 100644
    index 0000000000..228efc4674
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-25.html
    @@ -0,0 +1,174 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > UniformReservoir</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: UniformReservoir (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">UniformReservoir</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.ThreadLocalRandom;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;import java.util.concurrent.atomic.AtomicLongArray;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A random sampling reservoir of a stream of {@code long}s. Uses Vitter&#39;s Algorithm R to produce a
    +&nbsp; * statistically representative sample.
    +&nbsp; *
    +&nbsp; * @see &lt;a href=&quot;http://www.cs.umd.edu/~samir/498/vitter.pdf&quot;&gt;Random Sampling with a Reservoir&lt;/a&gt;
    +&nbsp; */
    +&nbsp;public class UniformReservoir implements Reservoir {
    +&nbsp;    private static final int DEFAULT_SIZE = 1028;
    +<b class="fc">&nbsp;    private final AtomicLong count = new AtomicLong();</b>
    +&nbsp;    private final AtomicLongArray values;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link UniformReservoir} of 1028 elements, which offers a 99.9% confidence level
    +&nbsp;     * with a 5% margin of error assuming a normal distribution.
    +&nbsp;     */
    +&nbsp;    public UniformReservoir() {
    +<b class="fc">&nbsp;        this(DEFAULT_SIZE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link UniformReservoir}.
    +&nbsp;     *
    +&nbsp;     * @param size the number of samples to keep in the sampling reservoir
    +&nbsp;     */
    +<b class="fc">&nbsp;    public UniformReservoir(int size) {</b>
    +<b class="fc">&nbsp;        this.values = new AtomicLongArray(size);</b>
    +<b class="fc">&nbsp;        for (int i = 0; i &lt; values.length(); i++) {</b>
    +<b class="fc">&nbsp;            values.set(i, 0);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        count.set(0);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int size() {
    +<b class="fc">&nbsp;        final long c = count.get();</b>
    +<b class="fc">&nbsp;        if (c &gt; values.length()) {</b>
    +<b class="fc">&nbsp;            return values.length();</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        return (int) c;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void update(long value) {
    +<b class="fc">&nbsp;        final long c = count.incrementAndGet();</b>
    +<b class="fc">&nbsp;        if (c &lt;= values.length()) {</b>
    +<b class="fc">&nbsp;            values.set((int) c - 1, value);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            final long r = ThreadLocalRandom.current().nextLong(c);</b>
    +<b class="fc">&nbsp;            if (r &lt; values.length()) {</b>
    +<b class="fc">&nbsp;                values.set((int) r, value);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Snapshot getSnapshot() {
    +<b class="fc">&nbsp;        final int s = size();</b>
    +<b class="fc">&nbsp;        long[] copy = new long[s];</b>
    +<b class="fc">&nbsp;        for (int i = 0; i &lt; s; i++) {</b>
    +<b class="fc">&nbsp;            copy[i] = values.get(i);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return new UniformSnapshot(copy);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-26.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-26.html
    new file mode 100644
    index 0000000000..fd086f2c23
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-26.html
    @@ -0,0 +1,281 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > UniformSnapshot</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: UniformSnapshot (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">UniformSnapshot</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98%
    +  </span>
    +  <span class="absValue">
    +    (48/49)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.io.OutputStreamWriter;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collection;
    +&nbsp;
    +&nbsp;import static java.lang.Math.floor;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A statistical snapshot of a {@link UniformSnapshot}.
    +&nbsp; */
    +&nbsp;public class UniformSnapshot extends Snapshot {
    +&nbsp;
    +&nbsp;    private final long[] values;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new {@link Snapshot} with the given values.
    +&nbsp;     *
    +&nbsp;     * @param values an unordered set of values in the reservoir
    +&nbsp;     */
    +<b class="fc">&nbsp;    public UniformSnapshot(Collection&lt;Long&gt; values) {</b>
    +<b class="fc">&nbsp;        final Object[] copy = values.toArray();</b>
    +<b class="fc">&nbsp;        this.values = new long[copy.length];</b>
    +<b class="fc">&nbsp;        for (int i = 0; i &lt; copy.length; i++) {</b>
    +<b class="fc">&nbsp;            this.values[i] = (Long) copy[i];</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        Arrays.sort(this.values);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new {@link Snapshot} with the given values.
    +&nbsp;     *
    +&nbsp;     * @param values an unordered set of values in the reservoir that can be used by this class directly
    +&nbsp;     */
    +<b class="fc">&nbsp;    public UniformSnapshot(long[] values) {</b>
    +<b class="fc">&nbsp;        this.values = Arrays.copyOf(values, values.length);</b>
    +<b class="fc">&nbsp;        Arrays.sort(this.values);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the value at the given quantile.
    +&nbsp;     *
    +&nbsp;     * @param quantile a given quantile, in {@code [0..1]}
    +&nbsp;     * @return the value in the distribution at {@code quantile}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public double getValue(double quantile) {
    +<b class="fc">&nbsp;        if (quantile &lt; 0.0 || quantile &gt; 1.0 || Double.isNaN(quantile)) {</b>
    +<b class="fc">&nbsp;            throw new IllegalArgumentException(quantile + &quot; is not in [0..1]&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (values.length == 0) {</b>
    +<b class="nc">&nbsp;            return 0.0;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final double pos = quantile * (values.length + 1);</b>
    +<b class="fc">&nbsp;        final int index = (int) pos;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (index &lt; 1) {</b>
    +<b class="fc">&nbsp;            return values[0];</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (index &gt;= values.length) {</b>
    +<b class="fc">&nbsp;            return values[values.length - 1];</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final double lower = values[index - 1];</b>
    +<b class="fc">&nbsp;        final double upper = values[index];</b>
    +<b class="fc">&nbsp;        return lower + (pos - floor(pos)) * (upper - lower);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the number of values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the number of values
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public int size() {
    +<b class="fc">&nbsp;        return values.length;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the entire set of values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the entire set of values
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public long[] getValues() {
    +<b class="fc">&nbsp;        return Arrays.copyOf(values, values.length);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the highest value in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the highest value
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public long getMax() {
    +<b class="fc">&nbsp;        if (values.length == 0) {</b>
    +<b class="fc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return values[values.length - 1];</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the lowest value in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the lowest value
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public long getMin() {
    +<b class="fc">&nbsp;        if (values.length == 0) {</b>
    +<b class="fc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return values[0];</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the arithmetic mean of the values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the arithmetic mean
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public double getMean() {
    +<b class="fc">&nbsp;        if (values.length == 0) {</b>
    +<b class="fc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        double sum = 0;</b>
    +<b class="fc">&nbsp;        for (long value : values) {</b>
    +<b class="fc">&nbsp;            sum += value;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return sum / values.length;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the standard deviation of the values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the standard deviation value
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public double getStdDev() {
    +&nbsp;        // two-pass algorithm for variance, avoids numeric overflow
    +&nbsp;
    +<b class="fc">&nbsp;        if (values.length &lt;= 1) {</b>
    +<b class="fc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final double mean = getMean();</b>
    +<b class="fc">&nbsp;        double sum = 0;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (long value : values) {</b>
    +<b class="fc">&nbsp;            final double diff = value - mean;</b>
    +<b class="fc">&nbsp;            sum += diff * diff;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final double variance = sum / (values.length - 1);</b>
    +<b class="fc">&nbsp;        return Math.sqrt(variance);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Writes the values of the snapshot to the given stream.
    +&nbsp;     *
    +&nbsp;     * @param output an output stream
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void dump(OutputStream output) {
    +<b class="fc">&nbsp;        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {</b>
    +<b class="fc">&nbsp;            for (long value : values) {</b>
    +<b class="fc">&nbsp;                out.printf(&quot;%d%n&quot;, value);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-27.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-27.html
    new file mode 100644
    index 0000000000..7ffefd5bae
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-27.html
    @@ -0,0 +1,345 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > WeightedSnapshot</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">WeightedSnapshot</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.1%
    +  </span>
    +  <span class="absValue">
    +    (51/52)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">WeightedSnapshot$WeightedSample</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.io.OutputStreamWriter;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.Comparator;
    +&nbsp;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A statistical snapshot of a {@link WeightedSnapshot}.
    +&nbsp; */
    +&nbsp;public class WeightedSnapshot extends Snapshot {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A single sample item with value and its weights for {@link WeightedSnapshot}.
    +&nbsp;     */
    +&nbsp;    public static class WeightedSample {
    +&nbsp;        public final long value;
    +&nbsp;        public final double weight;
    +&nbsp;
    +<b class="fc">&nbsp;        public WeightedSample(long value, double weight) {</b>
    +<b class="fc">&nbsp;            this.value = value;</b>
    +<b class="fc">&nbsp;            this.weight = weight;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final long[] values;
    +&nbsp;    private final double[] normWeights;
    +&nbsp;    private final double[] quantiles;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new {@link Snapshot} with the given values.
    +&nbsp;     *
    +&nbsp;     * @param values an unordered set of values in the reservoir
    +&nbsp;     */
    +<b class="fc">&nbsp;    public WeightedSnapshot(Collection&lt;WeightedSample&gt; values) {</b>
    +<b class="fc">&nbsp;        final WeightedSample[] copy = values.toArray(new WeightedSample[]{});</b>
    +&nbsp;
    +<b class="fc">&nbsp;        Arrays.sort(copy, Comparator.comparingLong(w -&gt; w.value));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.values = new long[copy.length];</b>
    +<b class="fc">&nbsp;        this.normWeights = new double[copy.length];</b>
    +<b class="fc">&nbsp;        this.quantiles = new double[copy.length];</b>
    +&nbsp;
    +<b class="fc">&nbsp;        double sumWeight = 0;</b>
    +<b class="pc">&nbsp;        for (WeightedSample sample : copy) {</b>
    +<b class="fc">&nbsp;            sumWeight += sample.weight;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="pc">&nbsp;        for (int i = 0; i &lt; copy.length; i++) {</b>
    +<b class="fc">&nbsp;            this.values[i] = copy[i].value;</b>
    +<b class="pc">&nbsp;            this.normWeights[i] = sumWeight != 0 ? copy[i].weight / sumWeight : 0;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="pc">&nbsp;        for (int i = 1; i &lt; copy.length; i++) {</b>
    +<b class="fc">&nbsp;            this.quantiles[i] = this.quantiles[i - 1] + this.normWeights[i - 1];</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the value at the given quantile.
    +&nbsp;     *
    +&nbsp;     * @param quantile a given quantile, in {@code [0..1]}
    +&nbsp;     * @return the value in the distribution at {@code quantile}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public double getValue(double quantile) {
    +<b class="pc">&nbsp;        if (quantile &lt; 0.0 || quantile &gt; 1.0 || Double.isNaN(quantile)) {</b>
    +<b class="fc">&nbsp;            throw new IllegalArgumentException(quantile + &quot; is not in [0..1]&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="pc">&nbsp;        if (values.length == 0) {</b>
    +<b class="fc">&nbsp;            return 0.0;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        int posx = Arrays.binarySearch(quantiles, quantile);</b>
    +<b class="pc">&nbsp;        if (posx &lt; 0)</b>
    +<b class="fc">&nbsp;            posx = ((-posx) - 1) - 1;</b>
    +&nbsp;
    +<b class="pc">&nbsp;        if (posx &lt; 1) {</b>
    +<b class="fc">&nbsp;            return values[0];</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="pc">&nbsp;        if (posx &gt;= values.length) {</b>
    +<b class="nc">&nbsp;            return values[values.length - 1];</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        return values[posx];</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the number of values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the number of values
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public int size() {
    +<b class="fc">&nbsp;        return values.length;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the entire set of values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the entire set of values
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public long[] getValues() {
    +<b class="fc">&nbsp;        return Arrays.copyOf(values, values.length);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the highest value in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the highest value
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public long getMax() {
    +<b class="pc">&nbsp;        if (values.length == 0) {</b>
    +<b class="fc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return values[values.length - 1];</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the lowest value in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the lowest value
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public long getMin() {
    +<b class="pc">&nbsp;        if (values.length == 0) {</b>
    +<b class="fc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return values[0];</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the weighted arithmetic mean of the values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the weighted arithmetic mean
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public double getMean() {
    +<b class="pc">&nbsp;        if (values.length == 0) {</b>
    +<b class="fc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        double sum = 0;</b>
    +<b class="pc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    +<b class="fc">&nbsp;            sum += values[i] * normWeights[i];</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return sum;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the weighted standard deviation of the values in the snapshot.
    +&nbsp;     *
    +&nbsp;     * @return the weighted standard deviation value
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public double getStdDev() {
    +&nbsp;        // two-pass algorithm for variance, avoids numeric overflow
    +&nbsp;
    +<b class="pc">&nbsp;        if (values.length &lt;= 1) {</b>
    +<b class="fc">&nbsp;            return 0;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final double mean = getMean();</b>
    +<b class="fc">&nbsp;        double variance = 0;</b>
    +&nbsp;
    +<b class="pc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    +<b class="fc">&nbsp;            final double diff = values[i] - mean;</b>
    +<b class="fc">&nbsp;            variance += normWeights[i] * diff * diff;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        return Math.sqrt(variance);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Writes the values of the snapshot to the given stream.
    +&nbsp;     *
    +&nbsp;     * @param output an output stream
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void dump(OutputStream output) {
    +<b class="fc">&nbsp;        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {</b>
    +<b class="pc">&nbsp;            for (long value : values) {</b>
    +<b class="fc">&nbsp;                out.printf(&quot;%d%n&quot;, value);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-28.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-28.html
    new file mode 100644
    index 0000000000..b4740e1582
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-28.html
    @@ -0,0 +1,78 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Reporter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Reporter (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">Reporter</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.io.Closeable;
    +&nbsp;
    +&nbsp;/*
    +&nbsp; * A tag interface to indicate that a class is a Reporter.
    +&nbsp; */
    +&nbsp;public interface Reporter extends Closeable {
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-29.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-29.html
    new file mode 100644
    index 0000000000..6e236442fe
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-29.html
    @@ -0,0 +1,82 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SettableGauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SettableGauge (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">SettableGauge</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
    +&nbsp; * See {@link DefaultSettableGauge}.
    +&nbsp; * &lt;/p&gt;
    +&nbsp; */
    +&nbsp;public interface SettableGauge&lt;T&gt; extends Gauge&lt;T&gt; {
    +&nbsp;    /**
    +&nbsp;     * Set the metric to a new value.
    +&nbsp;     */
    +&nbsp;    void setValue(T value);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2a.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2a.html
    new file mode 100644
    index 0000000000..2f5c31e0b0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2a.html
    @@ -0,0 +1,85 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Metric</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Metric (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +  <tr>
    +    <td class="name">Metric$MockitoMock$SoPFH6C1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Metric$MockitoMock$SoPFH6C1$auxiliary$9WaRnIG6</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Metric$MockitoMock$SoPFH6C1$auxiliary$MCMcHURq</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A tag interface to indicate that a class is a metric.
    +&nbsp; */
    +&nbsp;public interface Metric {
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2b.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2b.html
    new file mode 100644
    index 0000000000..2d15fb1780
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2b.html
    @@ -0,0 +1,81 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Counting</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Counting (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">Counting</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An interface for metric types which have counts.
    +&nbsp; */
    +&nbsp;public interface Counting {
    +&nbsp;    /**
    +&nbsp;     * Returns the current count.
    +&nbsp;     *
    +&nbsp;     * @return the current count
    +&nbsp;     */
    +&nbsp;    long getCount();
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2c.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2c.html
    new file mode 100644
    index 0000000000..6dd5273f73
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2c.html
    @@ -0,0 +1,89 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CsvFileProvider</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CsvFileProvider (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +  <tr>
    +    <td class="name">CsvFileProvider$MockitoMock$impgqtWu</td>
    +  </tr>
    +  <tr>
    +    <td class="name">CsvFileProvider$MockitoMock$impgqtWu$auxiliary$08Dorks3</td>
    +  </tr>
    +  <tr>
    +    <td class="name">CsvFileProvider$MockitoMock$impgqtWu$auxiliary$NMsmJS5i</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.io.File;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * This interface allows a pluggable implementation of what file names
    +&nbsp; * the {@link CsvReporter} will write to.
    +&nbsp; */
    +&nbsp;public interface CsvFileProvider {
    +&nbsp;
    +&nbsp;    File getFile(File directory, String metricName);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2d.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2d.html
    new file mode 100644
    index 0000000000..ff627b80fd
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2d.html
    @@ -0,0 +1,103 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Gauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Gauge (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +  <tr>
    +    <td class="name">Gauge$MockitoMock$16J7fyYM</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Gauge$MockitoMock$16J7fyYM$auxiliary$VXWBejxv</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Gauge$MockitoMock$16J7fyYM$auxiliary$YZRkD9Gi</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A gauge metric is an instantaneous reading of a particular value. To instrument a queue&#39;s depth,
    +&nbsp; * for example:&lt;br&gt;
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; * final Queue&amp;lt;String&amp;gt; queue = new ConcurrentLinkedQueue&amp;lt;String&amp;gt;();
    +&nbsp; * final Gauge&amp;lt;Integer&amp;gt; queueDepth = new Gauge&amp;lt;Integer&amp;gt;() {
    +&nbsp; *     public Integer getValue() {
    +&nbsp; *         return queue.size();
    +&nbsp; *     }
    +&nbsp; * };
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; *
    +&nbsp; * @param &lt;T&gt; the type of the metric&#39;s value
    +&nbsp; */
    +&nbsp;@FunctionalInterface
    +&nbsp;public interface Gauge&lt;T&gt; extends Metric {
    +&nbsp;    /**
    +&nbsp;     * Returns the metric&#39;s current value.
    +&nbsp;     *
    +&nbsp;     * @return the metric&#39;s current value
    +&nbsp;     */
    +&nbsp;    T getValue();
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2e.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2e.html
    new file mode 100644
    index 0000000000..7ee1515213
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2e.html
    @@ -0,0 +1,116 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Metered</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Metered (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">Metered</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An object which maintains mean and moving average rates.
    +&nbsp; */
    +&nbsp;public interface Metered extends Metric, Counting {
    +&nbsp;    /**
    +&nbsp;     * Returns the number of events which have been marked.
    +&nbsp;     *
    +&nbsp;     * @return the number of events which have been marked
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    long getCount();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the fifteen-minute moving average rate at which events have
    +&nbsp;     * occurred since the meter was created.
    +&nbsp;     *
    +&nbsp;     * @return the fifteen-minute moving average rate at which events have
    +&nbsp;     * occurred since the meter was created
    +&nbsp;     */
    +&nbsp;    double getFifteenMinuteRate();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the five-minute moving average rate at which events have
    +&nbsp;     * occurred since the meter was created.
    +&nbsp;     *
    +&nbsp;     * @return the five-minute moving average rate at which events have
    +&nbsp;     * occurred since the meter was created
    +&nbsp;     */
    +&nbsp;    double getFiveMinuteRate();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the mean rate at which events have occurred since the meter was created.
    +&nbsp;     *
    +&nbsp;     * @return the mean rate at which events have occurred since the meter was created
    +&nbsp;     */
    +&nbsp;    double getMeanRate();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the one-minute moving average rate at which events have
    +&nbsp;     * occurred since the meter was created.
    +&nbsp;     *
    +&nbsp;     * @return the one-minute moving average rate at which events have
    +&nbsp;     * occurred since the meter was created
    +&nbsp;     */
    +&nbsp;    double getOneMinuteRate();
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2f.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2f.html
    new file mode 100644
    index 0000000000..033263ac55
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2f.html
    @@ -0,0 +1,81 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Sampling</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Sampling (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">Sampling</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An object which samples values.
    +&nbsp; */
    +&nbsp;public interface Sampling {
    +&nbsp;    /**
    +&nbsp;     * Returns a snapshot of the values.
    +&nbsp;     *
    +&nbsp;     * @return a snapshot of the values
    +&nbsp;     */
    +&nbsp;    Snapshot getSnapshot();
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-3.html
    new file mode 100644
    index 0000000000..341576548a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-3.html
    @@ -0,0 +1,231 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Clock</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Clock (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Clock</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$j3mRmozx</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$j3mRmozx$auxiliary$GFSzcwb2</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$j3mRmozx$auxiliary$zZkFzVkC</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$lyFA7CGo</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$lyFA7CGo$auxiliary$2Ki750vQ</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$lyFA7CGo$auxiliary$Vkl0Ml51</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$P9aNbVxU</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$P9aNbVxU$auxiliary$sfUu9esv</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$P9aNbVxU$auxiliary$wDu3E1JB</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$qQ3d06jA</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$qQ3d06jA$auxiliary$GLKfHdTk</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$MockitoMock$qQ3d06jA$auxiliary$huRkNnHh</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$UserTimeClock</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Clock$UserTimeClockHolder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An abstraction for how time passes. It is passed to {@link Timer} to track timing.
    +&nbsp; */
    +<b class="fc">&nbsp;public abstract class Clock {</b>
    +&nbsp;    /**
    +&nbsp;     * Returns the current time tick.
    +&nbsp;     *
    +&nbsp;     * @return time tick in nanoseconds
    +&nbsp;     */
    +&nbsp;    public abstract long getTick();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the current time in milliseconds.
    +&nbsp;     *
    +&nbsp;     * @return time in milliseconds
    +&nbsp;     */
    +&nbsp;    public long getTime() {
    +<b class="fc">&nbsp;        return System.currentTimeMillis();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * The default clock to use.
    +&nbsp;     *
    +&nbsp;     * @return the default {@link Clock} instance
    +&nbsp;     * @see Clock.UserTimeClock
    +&nbsp;     */
    +&nbsp;    public static Clock defaultClock() {
    +<b class="fc">&nbsp;        return UserTimeClockHolder.DEFAULT;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A clock implementation which returns the current time in epoch nanoseconds.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class UserTimeClock extends Clock {</b>
    +&nbsp;        @Override
    +&nbsp;        public long getTick() {
    +<b class="fc">&nbsp;            return System.nanoTime();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class UserTimeClockHolder {
    +<b class="fc">&nbsp;        private static final Clock DEFAULT = new UserTimeClock();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-30.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-30.html
    new file mode 100644
    index 0000000000..0c4e59f29c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-30.html
    @@ -0,0 +1,104 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Reservoir</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Reservoir (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +  <tr>
    +    <td class="name">Reservoir$MockitoMock$STXzHw3s</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Reservoir$MockitoMock$STXzHw3s$auxiliary$oVK7dNvP</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Reservoir$MockitoMock$STXzHw3s$auxiliary$YxGDMzIi</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A statistically representative reservoir of a data stream.
    +&nbsp; */
    +&nbsp;public interface Reservoir {
    +&nbsp;    /**
    +&nbsp;     * Returns the number of values recorded.
    +&nbsp;     *
    +&nbsp;     * @return the number of values recorded
    +&nbsp;     */
    +&nbsp;    int size();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Adds a new recorded value to the reservoir.
    +&nbsp;     *
    +&nbsp;     * @param value a new recorded value
    +&nbsp;     */
    +&nbsp;    void update(long value);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a snapshot of the reservoir&#39;s values.
    +&nbsp;     *
    +&nbsp;     * @return a snapshot of the reservoir&#39;s values
    +&nbsp;     */
    +&nbsp;    Snapshot getSnapshot();
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-31.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-31.html
    new file mode 100644
    index 0000000000..612178b26c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-31.html
    @@ -0,0 +1,116 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MovingAverages</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MovingAverages (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">MovingAverages</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A triple of moving averages (one-, five-, and fifteen-minute
    +&nbsp; * moving average) as needed by {@link Meter}.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Included implementations are:
    +&nbsp; * &lt;ul&gt;
    +&nbsp; * &lt;li&gt;{@link ExponentialMovingAverages} exponential decaying average similar to the {@code top} Unix command.
    +&nbsp; * &lt;li&gt;{@link SlidingTimeWindowMovingAverages} simple (unweighted) moving average
    +&nbsp; * &lt;/ul&gt;
    +&nbsp; */
    +&nbsp;public interface MovingAverages {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Tick the internal clock of the MovingAverages implementation if needed
    +&nbsp;     * (according to the internal ticking interval)
    +&nbsp;     */
    +&nbsp;    void tickIfNecessary();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Update all three moving averages with n events having occurred since the last update.
    +&nbsp;     *
    +&nbsp;     * @param n
    +&nbsp;     */
    +&nbsp;    void update(long n);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the one-minute moving average rate
    +&nbsp;     *
    +&nbsp;     * @return the one-minute moving average rate
    +&nbsp;     */
    +&nbsp;    double getM1Rate();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the five-minute moving average rate
    +&nbsp;     *
    +&nbsp;     * @return the five-minute moving average rate
    +&nbsp;     */
    +&nbsp;    double getM5Rate();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the fifteen-minute moving average rate
    +&nbsp;     *
    +&nbsp;     * @return the fifteen-minute moving average rate
    +&nbsp;     */
    +&nbsp;    double getM15Rate();
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-32.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-32.html
    new file mode 100644
    index 0000000000..e51fb19d72
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-32.html
    @@ -0,0 +1,85 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricSet (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricSet</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.Map;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of named metrics.
    +&nbsp; *
    +&nbsp; * @see MetricRegistry#registerAll(MetricSet)
    +&nbsp; */
    +&nbsp;public interface MetricSet extends Metric {
    +&nbsp;    /**
    +&nbsp;     * A map of metric names to metrics.
    +&nbsp;     *
    +&nbsp;     * @return the metrics
    +&nbsp;     */
    +&nbsp;    Map&lt;String, Metric&gt; getMetrics();
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-4.html
    new file mode 100644
    index 0000000000..d3e455de44
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-4.html
    @@ -0,0 +1,490 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ConsoleReporter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ConsoleReporter (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ConsoleReporter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (90/90)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">ConsoleReporter$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">ConsoleReporter$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (11/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (30/34)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (22/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (120/124)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.io.PrintStream;
    +&nbsp;import java.text.DateFormat;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.Date;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.TimeZone;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A reporter which outputs measurements to a {@link PrintStream}, like {@code System.out}.
    +&nbsp; */
    +<b class="fc">&nbsp;public class ConsoleReporter extends ScheduledReporter {</b>
    +&nbsp;    /**
    +&nbsp;     * Returns a new {@link Builder} for {@link ConsoleReporter}.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry to report
    +&nbsp;     * @return a {@link Builder} instance for a {@link ConsoleReporter}
    +&nbsp;     */
    +&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    +<b class="fc">&nbsp;        return new Builder(registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A builder for {@link ConsoleReporter} instances. Defaults to using the default locale and
    +&nbsp;     * time zone, writing to {@code System.out}, converting rates to events/second, converting
    +&nbsp;     * durations to milliseconds, and not filtering metrics.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class Builder {</b>
    +&nbsp;        private final MetricRegistry registry;
    +&nbsp;        private PrintStream output;
    +&nbsp;        private Locale locale;
    +&nbsp;        private Clock clock;
    +&nbsp;        private TimeZone timeZone;
    +&nbsp;        private TimeUnit rateUnit;
    +&nbsp;        private TimeUnit durationUnit;
    +&nbsp;        private MetricFilter filter;
    +&nbsp;        private ScheduledExecutorService executor;
    +&nbsp;        private boolean shutdownExecutorOnStop;
    +&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    +&nbsp;
    +<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;            this.registry = registry;</b>
    +<b class="fc">&nbsp;            this.output = System.out;</b>
    +<b class="fc">&nbsp;            this.locale = Locale.getDefault();</b>
    +<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    +<b class="fc">&nbsp;            this.timeZone = TimeZone.getDefault();</b>
    +<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    +<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    +<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    +<b class="fc">&nbsp;            this.executor = null;</b>
    +<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    +<b class="fc">&nbsp;            disabledMetricAttributes = Collections.emptySet();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    +&nbsp;         * Default value is true.
    +&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    +&nbsp;         *
    +&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    +<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    +&nbsp;         * Default value is null.
    +&nbsp;         * Null value leads to executor will be auto created on start.
    +&nbsp;         *
    +&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    +<b class="nc">&nbsp;            this.executor = executor;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Write to the given {@link PrintStream}.
    +&nbsp;         *
    +&nbsp;         * @param output a {@link PrintStream} instance.
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder outputTo(PrintStream output) {
    +<b class="fc">&nbsp;            this.output = output;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Format numbers for the given {@link Locale}.
    +&nbsp;         *
    +&nbsp;         * @param locale a {@link Locale}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder formattedFor(Locale locale) {
    +<b class="fc">&nbsp;            this.locale = locale;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use the given {@link Clock} instance for the time.
    +&nbsp;         *
    +&nbsp;         * @param clock a {@link Clock} instance
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder withClock(Clock clock) {
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use the given {@link TimeZone} for the time.
    +&nbsp;         *
    +&nbsp;         * @param timeZone a {@link TimeZone}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder formattedFor(TimeZone timeZone) {
    +<b class="fc">&nbsp;            this.timeZone = timeZone;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert rates to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param rateUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    +<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert durations to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param durationUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    +<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Only report metrics which match the given filter.
    +&nbsp;         *
    +&nbsp;         * @param filter a {@link MetricFilter}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder filter(MetricFilter filter) {
    +<b class="fc">&nbsp;            this.filter = filter;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    +&nbsp;         * See {@link MetricAttribute}.
    +&nbsp;         *
    +&nbsp;         * @param disabledMetricAttributes a {@link MetricFilter}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    +<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Builds a {@link ConsoleReporter} with the given properties.
    +&nbsp;         *
    +&nbsp;         * @return a {@link ConsoleReporter}
    +&nbsp;         */
    +&nbsp;        public ConsoleReporter build() {
    +<b class="fc">&nbsp;            return new ConsoleReporter(registry,</b>
    +&nbsp;                    output,
    +&nbsp;                    locale,
    +&nbsp;                    clock,
    +&nbsp;                    timeZone,
    +&nbsp;                    rateUnit,
    +&nbsp;                    durationUnit,
    +&nbsp;                    filter,
    +&nbsp;                    executor,
    +&nbsp;                    shutdownExecutorOnStop,
    +&nbsp;                    disabledMetricAttributes);
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static final int CONSOLE_WIDTH = 80;
    +&nbsp;
    +&nbsp;    private final PrintStream output;
    +&nbsp;    private final Locale locale;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final DateFormat dateFormat;
    +&nbsp;
    +&nbsp;    private ConsoleReporter(MetricRegistry registry,
    +&nbsp;                            PrintStream output,
    +&nbsp;                            Locale locale,
    +&nbsp;                            Clock clock,
    +&nbsp;                            TimeZone timeZone,
    +&nbsp;                            TimeUnit rateUnit,
    +&nbsp;                            TimeUnit durationUnit,
    +&nbsp;                            MetricFilter filter,
    +&nbsp;                            ScheduledExecutorService executor,
    +&nbsp;                            boolean shutdownExecutorOnStop,
    +&nbsp;                            Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    +<b class="fc">&nbsp;        super(registry, &quot;console-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, disabledMetricAttributes);</b>
    +<b class="fc">&nbsp;        this.output = output;</b>
    +<b class="fc">&nbsp;        this.locale = locale;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT,</b>
    +&nbsp;                DateFormat.MEDIUM,
    +&nbsp;                locale);
    +<b class="fc">&nbsp;        dateFormat.setTimeZone(timeZone);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    +&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    +&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    +&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    +&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    +<b class="fc">&nbsp;        final String dateTime = dateFormat.format(new Date(clock.getTime()));</b>
    +<b class="fc">&nbsp;        printWithBanner(dateTime, &#39;=&#39;);</b>
    +<b class="fc">&nbsp;        output.println();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (!gauges.isEmpty()) {</b>
    +<b class="fc">&nbsp;            printWithBanner(&quot;-- Gauges&quot;, &#39;-&#39;);</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    +<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    +<b class="fc">&nbsp;                printGauge(entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            output.println();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (!counters.isEmpty()) {</b>
    +<b class="fc">&nbsp;            printWithBanner(&quot;-- Counters&quot;, &#39;-&#39;);</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    +<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    +<b class="fc">&nbsp;                printCounter(entry);</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            output.println();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (!histograms.isEmpty()) {</b>
    +<b class="fc">&nbsp;            printWithBanner(&quot;-- Histograms&quot;, &#39;-&#39;);</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    +<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    +<b class="fc">&nbsp;                printHistogram(entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            output.println();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (!meters.isEmpty()) {</b>
    +<b class="fc">&nbsp;            printWithBanner(&quot;-- Meters&quot;, &#39;-&#39;);</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    +<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    +<b class="fc">&nbsp;                printMeter(entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            output.println();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (!timers.isEmpty()) {</b>
    +<b class="fc">&nbsp;            printWithBanner(&quot;-- Timers&quot;, &#39;-&#39;);</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    +<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    +<b class="fc">&nbsp;                printTimer(entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            output.println();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        output.println();</b>
    +<b class="fc">&nbsp;        output.flush();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void printMeter(Meter meter) {
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, meter.getCount()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, &quot;         mean rate = %2.2f events/%s&quot;, convertRate(meter.getMeanRate()), getRateUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, &quot;     1-minute rate = %2.2f events/%s&quot;, convertRate(meter.getOneMinuteRate()), getRateUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, &quot;     5-minute rate = %2.2f events/%s&quot;, convertRate(meter.getFiveMinuteRate()), getRateUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, &quot;    15-minute rate = %2.2f events/%s&quot;, convertRate(meter.getFifteenMinuteRate()), getRateUnit()));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void printCounter(Map.Entry&lt;String, Counter&gt; entry) {
    +<b class="fc">&nbsp;        output.printf(locale, &quot;             count = %d%n&quot;, entry.getValue().getCount());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void printGauge(Gauge&lt;?&gt; gauge) {
    +<b class="fc">&nbsp;        output.printf(locale, &quot;             value = %s%n&quot;, gauge.getValue());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void printHistogram(Histogram histogram) {
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, histogram.getCount()));</b>
    +<b class="fc">&nbsp;        Snapshot snapshot = histogram.getSnapshot();</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MIN, String.format(locale, &quot;               min = %d&quot;, snapshot.getMin()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MAX, String.format(locale, &quot;               max = %d&quot;, snapshot.getMax()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN, String.format(locale, &quot;              mean = %2.2f&quot;, snapshot.getMean()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.STDDEV, String.format(locale, &quot;            stddev = %2.2f&quot;, snapshot.getStdDev()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P50, String.format(locale, &quot;            median = %2.2f&quot;, snapshot.getMedian()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P75, String.format(locale, &quot;              75%% &lt;= %2.2f&quot;, snapshot.get75thPercentile()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P95, String.format(locale, &quot;              95%% &lt;= %2.2f&quot;, snapshot.get95thPercentile()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P98, String.format(locale, &quot;              98%% &lt;= %2.2f&quot;, snapshot.get98thPercentile()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P99, String.format(locale, &quot;              99%% &lt;= %2.2f&quot;, snapshot.get99thPercentile()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P999, String.format(locale, &quot;            99.9%% &lt;= %2.2f&quot;, snapshot.get999thPercentile()));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void printTimer(Timer timer) {
    +<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, timer.getCount()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, &quot;         mean rate = %2.2f calls/%s&quot;, convertRate(timer.getMeanRate()), getRateUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, &quot;     1-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getOneMinuteRate()), getRateUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, &quot;     5-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getFiveMinuteRate()), getRateUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, &quot;    15-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getFifteenMinuteRate()), getRateUnit()));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MIN, String.format(locale, &quot;               min = %2.2f %s&quot;, convertDuration(snapshot.getMin()), getDurationUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MAX, String.format(locale, &quot;               max = %2.2f %s&quot;, convertDuration(snapshot.getMax()), getDurationUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN, String.format(locale, &quot;              mean = %2.2f %s&quot;, convertDuration(snapshot.getMean()), getDurationUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.STDDEV, String.format(locale, &quot;            stddev = %2.2f %s&quot;, convertDuration(snapshot.getStdDev()), getDurationUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P50, String.format(locale, &quot;            median = %2.2f %s&quot;, convertDuration(snapshot.getMedian()), getDurationUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P75, String.format(locale, &quot;              75%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get75thPercentile()), getDurationUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P95, String.format(locale, &quot;              95%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get95thPercentile()), getDurationUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P98, String.format(locale, &quot;              98%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get98thPercentile()), getDurationUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P99, String.format(locale, &quot;              99%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get99thPercentile()), getDurationUnit()));</b>
    +<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P999, String.format(locale, &quot;            99.9%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get999thPercentile()), getDurationUnit()));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void printWithBanner(String s, char c) {
    +<b class="fc">&nbsp;        output.print(s);</b>
    +<b class="fc">&nbsp;        output.print(&#39; &#39;);</b>
    +<b class="fc">&nbsp;        for (int i = 0; i &lt; (CONSOLE_WIDTH - s.length() - 1); i++) {</b>
    +<b class="fc">&nbsp;            output.print(c);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        output.println();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Print only if the attribute is enabled
    +&nbsp;     *
    +&nbsp;     * @param type   Metric attribute
    +&nbsp;     * @param status Status to be logged
    +&nbsp;     */
    +&nbsp;    private void printIfEnabled(MetricAttribute type, String status) {
    +<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    +&nbsp;            return;
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        output.println(status);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-5.html
    new file mode 100644
    index 0000000000..b733dae7d3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-5.html
    @@ -0,0 +1,160 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Counter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Counter (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Counter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.atomic.LongAdder;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An incrementing and decrementing counter metric.
    +&nbsp; */
    +&nbsp;public class Counter implements Metric, Counting {
    +&nbsp;    private final LongAdder count;
    +&nbsp;
    +<b class="fc">&nbsp;    public Counter() {</b>
    +<b class="fc">&nbsp;        this.count = new LongAdder();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Increment the counter by one.
    +&nbsp;     */
    +&nbsp;    public void inc() {
    +<b class="fc">&nbsp;        inc(1);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Increment the counter by {@code n}.
    +&nbsp;     *
    +&nbsp;     * @param n the amount by which the counter will be increased
    +&nbsp;     */
    +&nbsp;    public void inc(long n) {
    +<b class="fc">&nbsp;        count.add(n);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Decrement the counter by one.
    +&nbsp;     */
    +&nbsp;    public void dec() {
    +<b class="fc">&nbsp;        dec(1);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Decrement the counter by {@code n}.
    +&nbsp;     *
    +&nbsp;     * @param n the amount by which the counter will be decreased
    +&nbsp;     */
    +&nbsp;    public void dec(long n) {
    +<b class="fc">&nbsp;        count.add(-n);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the counter&#39;s current value.
    +&nbsp;     *
    +&nbsp;     * @return the counter&#39;s current value
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public long getCount() {
    +<b class="fc">&nbsp;        return count.sum();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-6.html
    new file mode 100644
    index 0000000000..ebf3188d24
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-6.html
    @@ -0,0 +1,477 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CsvReporter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CsvReporter (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CsvReporter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.4%
    +  </span>
    +  <span class="absValue">
    +    (81/84)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">CsvReporter$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">CsvReporter$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (10/12)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.1%
    +  </span>
    +  <span class="absValue">
    +    (27/31)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.9%
    +  </span>
    +  <span class="absValue">
    +    (108/115)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import java.io.File;
    +&nbsp;import java.io.FileOutputStream;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStreamWriter;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A reporter which creates a comma-separated values file of the measurements for each metric.
    +&nbsp; */
    +<b class="fc">&nbsp;public class CsvReporter extends ScheduledReporter {</b>
    +&nbsp;    private static final String DEFAULT_SEPARATOR = &quot;,&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a new {@link Builder} for {@link CsvReporter}.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry to report
    +&nbsp;     * @return a {@link Builder} instance for a {@link CsvReporter}
    +&nbsp;     */
    +&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    +<b class="fc">&nbsp;        return new Builder(registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A builder for {@link CsvReporter} instances. Defaults to using the default locale, converting
    +&nbsp;     * rates to events/second, converting durations to milliseconds, and not filtering metrics.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class Builder {</b>
    +&nbsp;        private final MetricRegistry registry;
    +&nbsp;        private Locale locale;
    +&nbsp;        private String separator;
    +&nbsp;        private TimeUnit rateUnit;
    +&nbsp;        private TimeUnit durationUnit;
    +&nbsp;        private Clock clock;
    +&nbsp;        private MetricFilter filter;
    +&nbsp;        private ScheduledExecutorService executor;
    +&nbsp;        private boolean shutdownExecutorOnStop;
    +&nbsp;        private CsvFileProvider csvFileProvider;
    +&nbsp;
    +<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;            this.registry = registry;</b>
    +<b class="fc">&nbsp;            this.locale = Locale.getDefault();</b>
    +<b class="fc">&nbsp;            this.separator = DEFAULT_SEPARATOR;</b>
    +<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    +<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    +<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    +<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    +<b class="fc">&nbsp;            this.executor = null;</b>
    +<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    +<b class="fc">&nbsp;            this.csvFileProvider = new FixedNameCsvFileProvider();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    +&nbsp;         * Default value is true.
    +&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    +&nbsp;         *
    +&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    +<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    +&nbsp;         * Default value is null.
    +&nbsp;         * Null value leads to executor will be auto created on start.
    +&nbsp;         *
    +&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    +<b class="nc">&nbsp;            this.executor = executor;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Format numbers for the given {@link Locale}.
    +&nbsp;         *
    +&nbsp;         * @param locale a {@link Locale}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder formatFor(Locale locale) {
    +<b class="fc">&nbsp;            this.locale = locale;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert rates to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param rateUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    +<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert durations to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param durationUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    +<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use the given string to use as the separator for values.
    +&nbsp;         *
    +&nbsp;         * @param separator the string to use for the separator.
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder withSeparator(String separator) {
    +<b class="fc">&nbsp;            this.separator = separator;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use the given {@link Clock} instance for the time.
    +&nbsp;         *
    +&nbsp;         * @param clock a {@link Clock} instance
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder withClock(Clock clock) {
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Only report metrics which match the given filter.
    +&nbsp;         *
    +&nbsp;         * @param filter a {@link MetricFilter}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder filter(MetricFilter filter) {
    +<b class="fc">&nbsp;            this.filter = filter;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withCsvFileProvider(CsvFileProvider csvFileProvider) {
    +<b class="fc">&nbsp;            this.csvFileProvider = csvFileProvider;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Builds a {@link CsvReporter} with the given properties, writing {@code .csv} files to the
    +&nbsp;         * given directory.
    +&nbsp;         *
    +&nbsp;         * @param directory the directory in which the {@code .csv} files will be created
    +&nbsp;         * @return a {@link CsvReporter}
    +&nbsp;         */
    +&nbsp;        public CsvReporter build(File directory) {
    +<b class="fc">&nbsp;            return new CsvReporter(registry,</b>
    +&nbsp;                    directory,
    +&nbsp;                    locale,
    +&nbsp;                    separator,
    +&nbsp;                    rateUnit,
    +&nbsp;                    durationUnit,
    +&nbsp;                    clock,
    +&nbsp;                    filter,
    +&nbsp;                    executor,
    +&nbsp;                    shutdownExecutorOnStop,
    +&nbsp;                    csvFileProvider);
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(CsvReporter.class);</b>
    +&nbsp;
    +&nbsp;    private final File directory;
    +&nbsp;    private final Locale locale;
    +&nbsp;    private final String separator;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final CsvFileProvider csvFileProvider;
    +&nbsp;
    +&nbsp;    private final String histogramFormat;
    +&nbsp;    private final String meterFormat;
    +&nbsp;    private final String timerFormat;
    +&nbsp;
    +&nbsp;    private final String timerHeader;
    +&nbsp;    private final String meterHeader;
    +&nbsp;    private final String histogramHeader;
    +&nbsp;
    +&nbsp;    private CsvReporter(MetricRegistry registry,
    +&nbsp;                        File directory,
    +&nbsp;                        Locale locale,
    +&nbsp;                        String separator,
    +&nbsp;                        TimeUnit rateUnit,
    +&nbsp;                        TimeUnit durationUnit,
    +&nbsp;                        Clock clock,
    +&nbsp;                        MetricFilter filter,
    +&nbsp;                        ScheduledExecutorService executor,
    +&nbsp;                        boolean shutdownExecutorOnStop,
    +&nbsp;                        CsvFileProvider csvFileProvider) {
    +<b class="fc">&nbsp;        super(registry, &quot;csv-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop);</b>
    +<b class="fc">&nbsp;        this.directory = directory;</b>
    +<b class="fc">&nbsp;        this.locale = locale;</b>
    +<b class="fc">&nbsp;        this.separator = separator;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.csvFileProvider = csvFileProvider;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.histogramFormat = String.join(separator, &quot;%d&quot;, &quot;%d&quot;, &quot;%f&quot;, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;);</b>
    +<b class="fc">&nbsp;        this.meterFormat = String.join(separator, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;events/%s&quot;);</b>
    +<b class="fc">&nbsp;        this.timerFormat = String.join(separator, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;calls/%s&quot;, &quot;%s&quot;);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.timerHeader = String.join(separator, &quot;count&quot;, &quot;max&quot;, &quot;mean&quot;, &quot;min&quot;, &quot;stddev&quot;, &quot;p50&quot;, &quot;p75&quot;, &quot;p95&quot;, &quot;p98&quot;, &quot;p99&quot;, &quot;p999&quot;, &quot;mean_rate&quot;, &quot;m1_rate&quot;, &quot;m5_rate&quot;, &quot;m15_rate&quot;, &quot;rate_unit&quot;, &quot;duration_unit&quot;);</b>
    +<b class="fc">&nbsp;        this.meterHeader = String.join(separator, &quot;count&quot;, &quot;mean_rate&quot;, &quot;m1_rate&quot;, &quot;m5_rate&quot;, &quot;m15_rate&quot;, &quot;rate_unit&quot;);</b>
    +<b class="fc">&nbsp;        this.histogramHeader = String.join(separator, &quot;count&quot;, &quot;max&quot;, &quot;mean&quot;, &quot;min&quot;, &quot;stddev&quot;, &quot;p50&quot;, &quot;p75&quot;, &quot;p95&quot;, &quot;p98&quot;, &quot;p99&quot;, &quot;p999&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    +&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    +&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    +&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    +&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    +<b class="fc">&nbsp;        final long timestamp = TimeUnit.MILLISECONDS.toSeconds(clock.getTime());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    +<b class="fc">&nbsp;            reportGauge(timestamp, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    +<b class="fc">&nbsp;            reportCounter(timestamp, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    +<b class="fc">&nbsp;            reportHistogram(timestamp, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    +<b class="fc">&nbsp;            reportMeter(timestamp, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    +<b class="fc">&nbsp;            reportTimer(timestamp, entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportTimer(long timestamp, String name, Timer timer) {
    +<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        report(timestamp,</b>
    +&nbsp;                name,
    +&nbsp;                timerHeader,
    +&nbsp;                timerFormat,
    +<b class="fc">&nbsp;                timer.getCount(),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.getMax()),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.getMean()),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.getMin()),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.getStdDev()),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.getMedian()),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.get75thPercentile()),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.get95thPercentile()),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.get98thPercentile()),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.get99thPercentile()),</b>
    +<b class="fc">&nbsp;                convertDuration(snapshot.get999thPercentile()),</b>
    +<b class="fc">&nbsp;                convertRate(timer.getMeanRate()),</b>
    +<b class="fc">&nbsp;                convertRate(timer.getOneMinuteRate()),</b>
    +<b class="fc">&nbsp;                convertRate(timer.getFiveMinuteRate()),</b>
    +<b class="fc">&nbsp;                convertRate(timer.getFifteenMinuteRate()),</b>
    +<b class="fc">&nbsp;                getRateUnit(),</b>
    +<b class="fc">&nbsp;                getDurationUnit());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportMeter(long timestamp, String name, Meter meter) {
    +<b class="fc">&nbsp;        report(timestamp,</b>
    +&nbsp;                name,
    +&nbsp;                meterHeader,
    +&nbsp;                meterFormat,
    +<b class="fc">&nbsp;                meter.getCount(),</b>
    +<b class="fc">&nbsp;                convertRate(meter.getMeanRate()),</b>
    +<b class="fc">&nbsp;                convertRate(meter.getOneMinuteRate()),</b>
    +<b class="fc">&nbsp;                convertRate(meter.getFiveMinuteRate()),</b>
    +<b class="fc">&nbsp;                convertRate(meter.getFifteenMinuteRate()),</b>
    +<b class="fc">&nbsp;                getRateUnit());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportHistogram(long timestamp, String name, Histogram histogram) {
    +<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        report(timestamp,</b>
    +&nbsp;                name,
    +&nbsp;                histogramHeader,
    +&nbsp;                histogramFormat,
    +<b class="fc">&nbsp;                histogram.getCount(),</b>
    +<b class="fc">&nbsp;                snapshot.getMax(),</b>
    +<b class="fc">&nbsp;                snapshot.getMean(),</b>
    +<b class="fc">&nbsp;                snapshot.getMin(),</b>
    +<b class="fc">&nbsp;                snapshot.getStdDev(),</b>
    +<b class="fc">&nbsp;                snapshot.getMedian(),</b>
    +<b class="fc">&nbsp;                snapshot.get75thPercentile(),</b>
    +<b class="fc">&nbsp;                snapshot.get95thPercentile(),</b>
    +<b class="fc">&nbsp;                snapshot.get98thPercentile(),</b>
    +<b class="fc">&nbsp;                snapshot.get99thPercentile(),</b>
    +<b class="fc">&nbsp;                snapshot.get999thPercentile());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportCounter(long timestamp, String name, Counter counter) {
    +<b class="fc">&nbsp;        report(timestamp, name, &quot;count&quot;, &quot;%d&quot;, counter.getCount());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportGauge(long timestamp, String name, Gauge&lt;?&gt; gauge) {
    +<b class="fc">&nbsp;        report(timestamp, name, &quot;value&quot;, &quot;%s&quot;, gauge.getValue());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void report(long timestamp, String name, String header, String line, Object... values) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            final File file = csvFileProvider.getFile(directory, name);</b>
    +<b class="fc">&nbsp;            final boolean fileAlreadyExists = file.exists();</b>
    +<b class="fc">&nbsp;            if (fileAlreadyExists || file.createNewFile()) {</b>
    +<b class="fc">&nbsp;                try (PrintWriter out = new PrintWriter(new OutputStreamWriter(</b>
    +&nbsp;                        new FileOutputStream(file, true), UTF_8))) {
    +<b class="fc">&nbsp;                    if (!fileAlreadyExists) {</b>
    +<b class="fc">&nbsp;                        out.println(&quot;t&quot; + separator + header);</b>
    +&nbsp;                    }
    +<b class="fc">&nbsp;                    out.printf(locale, String.format(locale, &quot;%d&quot; + separator + &quot;%s%n&quot;, timestamp, line), values);</b>
    +<b class="fc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } catch (IOException e) {</b>
    +<b class="nc">&nbsp;            LOGGER.warn(&quot;Error writing to {}&quot;, name, e);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String sanitize(String name) {
    +<b class="nc">&nbsp;        return name;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-7.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-7.html
    new file mode 100644
    index 0000000000..051a62e182
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-7.html
    @@ -0,0 +1,147 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > DefaultSettableGauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: DefaultSettableGauge (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">DefaultSettableGauge</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
    +&nbsp; */
    +&nbsp;public class DefaultSettableGauge&lt;T&gt; implements SettableGauge&lt;T&gt; {
    +&nbsp;    private volatile T value;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create an instance with no default value.
    +&nbsp;     */
    +&nbsp;    public DefaultSettableGauge() {
    +<b class="fc">&nbsp;        this(null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create an instance with a default value.
    +&nbsp;     *
    +&nbsp;     * @param defaultValue default value
    +&nbsp;     */
    +<b class="fc">&nbsp;    public DefaultSettableGauge(T defaultValue) {</b>
    +<b class="fc">&nbsp;        this.value = defaultValue;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Set the metric to a new value.
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void setValue(T value) {
    +<b class="fc">&nbsp;        this.value = value;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the current value.
    +&nbsp;     *
    +&nbsp;     * @return the current value
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public T getValue() {
    +<b class="fc">&nbsp;        return value;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-8.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-8.html
    new file mode 100644
    index 0000000000..2806c3364c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-8.html
    @@ -0,0 +1,137 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > DerivativeGauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: DerivativeGauge (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">DerivativeGauge</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A gauge whose value is derived from the value of another gauge.
    +&nbsp; *
    +&nbsp; * @param &lt;F&gt; the base gauge&#39;s value type
    +&nbsp; * @param &lt;T&gt; the derivative type
    +&nbsp; */
    +&nbsp;public abstract class DerivativeGauge&lt;F, T&gt; implements Gauge&lt;T&gt; {
    +&nbsp;    private final Gauge&lt;F&gt; base;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new derivative with the given base gauge.
    +&nbsp;     *
    +&nbsp;     * @param base the gauge from which to derive this gauge&#39;s value
    +&nbsp;     */
    +<b class="fc">&nbsp;    protected DerivativeGauge(Gauge&lt;F&gt; base) {</b>
    +<b class="fc">&nbsp;        this.base = base;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public T getValue() {
    +<b class="fc">&nbsp;        return transform(base.getValue());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Transforms the value of the base gauge to the value of this gauge.
    +&nbsp;     *
    +&nbsp;     * @param value the value of the base gauge
    +&nbsp;     * @return this gauge&#39;s value
    +&nbsp;     */
    +&nbsp;    protected abstract T transform(F value);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-9.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-9.html
    new file mode 100644
    index 0000000000..16d2bd12b6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-9.html
    @@ -0,0 +1,224 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > EWMA</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: EWMA (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">EWMA</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.LongAdder;
    +&nbsp;
    +&nbsp;import static java.lang.Math.exp;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An exponentially-weighted moving average.
    +&nbsp; *
    +&nbsp; * @see &lt;a href=&quot;http://www.teamquest.com/pdfs/whitepaper/ldavg1.pdf&quot;&gt;UNIX Load Average Part 1: How
    +&nbsp; * It Works&lt;/a&gt;
    +&nbsp; * @see &lt;a href=&quot;http://www.teamquest.com/pdfs/whitepaper/ldavg2.pdf&quot;&gt;UNIX Load Average Part 2: Not
    +&nbsp; * Your Average Average&lt;/a&gt;
    +&nbsp; * @see &lt;a href=&quot;http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average&quot;&gt;EMA&lt;/a&gt;
    +&nbsp; */
    +&nbsp;public class EWMA {
    +&nbsp;    private static final int INTERVAL = 5;
    +&nbsp;    private static final double SECONDS_PER_MINUTE = 60.0;
    +&nbsp;    private static final int ONE_MINUTE = 1;
    +&nbsp;    private static final int FIVE_MINUTES = 5;
    +&nbsp;    private static final int FIFTEEN_MINUTES = 15;
    +<b class="fc">&nbsp;    private static final double M1_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / ONE_MINUTE);</b>
    +<b class="fc">&nbsp;    private static final double M5_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIVE_MINUTES);</b>
    +<b class="fc">&nbsp;    private static final double M15_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIFTEEN_MINUTES);</b>
    +&nbsp;
    +<b class="fc">&nbsp;    private volatile boolean initialized = false;</b>
    +<b class="fc">&nbsp;    private volatile double rate = 0.0;</b>
    +&nbsp;
    +<b class="fc">&nbsp;    private final LongAdder uncounted = new LongAdder();</b>
    +&nbsp;    private final double alpha, interval;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new EWMA which is equivalent to the UNIX one minute load average and which expects
    +&nbsp;     * to be ticked every 5 seconds.
    +&nbsp;     *
    +&nbsp;     * @return a one-minute EWMA
    +&nbsp;     */
    +&nbsp;    public static EWMA oneMinuteEWMA() {
    +<b class="fc">&nbsp;        return new EWMA(M1_ALPHA, INTERVAL, TimeUnit.SECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new EWMA which is equivalent to the UNIX five minute load average and which expects
    +&nbsp;     * to be ticked every 5 seconds.
    +&nbsp;     *
    +&nbsp;     * @return a five-minute EWMA
    +&nbsp;     */
    +&nbsp;    public static EWMA fiveMinuteEWMA() {
    +<b class="fc">&nbsp;        return new EWMA(M5_ALPHA, INTERVAL, TimeUnit.SECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new EWMA which is equivalent to the UNIX fifteen minute load average and which
    +&nbsp;     * expects to be ticked every 5 seconds.
    +&nbsp;     *
    +&nbsp;     * @return a fifteen-minute EWMA
    +&nbsp;     */
    +&nbsp;    public static EWMA fifteenMinuteEWMA() {
    +<b class="fc">&nbsp;        return new EWMA(M15_ALPHA, INTERVAL, TimeUnit.SECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new EWMA with a specific smoothing constant.
    +&nbsp;     *
    +&nbsp;     * @param alpha        the smoothing constant
    +&nbsp;     * @param interval     the expected tick interval
    +&nbsp;     * @param intervalUnit the time unit of the tick interval
    +&nbsp;     */
    +<b class="fc">&nbsp;    public EWMA(double alpha, long interval, TimeUnit intervalUnit) {</b>
    +<b class="fc">&nbsp;        this.interval = intervalUnit.toNanos(interval);</b>
    +<b class="fc">&nbsp;        this.alpha = alpha;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Update the moving average with a new value.
    +&nbsp;     *
    +&nbsp;     * @param n the new value
    +&nbsp;     */
    +&nbsp;    public void update(long n) {
    +<b class="fc">&nbsp;        uncounted.add(n);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Mark the passage of time and decay the current rate accordingly.
    +&nbsp;     */
    +&nbsp;    public void tick() {
    +<b class="fc">&nbsp;        final long count = uncounted.sumThenReset();</b>
    +<b class="fc">&nbsp;        final double instantRate = count / interval;</b>
    +<b class="pc">&nbsp;        if (initialized) {</b>
    +<b class="fc">&nbsp;            final double oldRate = this.rate;</b>
    +<b class="fc">&nbsp;            rate = oldRate + (alpha * (instantRate - oldRate));</b>
    +<b class="fc">&nbsp;        } else {</b>
    +<b class="fc">&nbsp;            rate = instantRate;</b>
    +<b class="fc">&nbsp;            initialized = true;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the rate in the given units of time.
    +&nbsp;     *
    +&nbsp;     * @param rateUnit the unit of time
    +&nbsp;     * @return the rate
    +&nbsp;     */
    +&nbsp;    public double getRate(TimeUnit rateUnit) {
    +<b class="fc">&nbsp;        return rate * (double) rateUnit.toNanos(1);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-a.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-a.html
    new file mode 100644
    index 0000000000..77cce3b1c1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-a.html
    @@ -0,0 +1,193 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ExponentialMovingAverages</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ExponentialMovingAverages (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ExponentialMovingAverages</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A triple (one, five and fifteen minutes) of exponentially-weighted moving average rates as needed by {@link Meter}.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * The rates have the same exponential decay factor as the fifteen-minute load average in the
    +&nbsp; * {@code top} Unix command.
    +&nbsp; */
    +&nbsp;public class ExponentialMovingAverages implements MovingAverages {
    +&nbsp;
    +<b class="fc">&nbsp;    private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(5);</b>
    +&nbsp;
    +<b class="fc">&nbsp;    private final EWMA m1Rate = EWMA.oneMinuteEWMA();</b>
    +<b class="fc">&nbsp;    private final EWMA m5Rate = EWMA.fiveMinuteEWMA();</b>
    +<b class="fc">&nbsp;    private final EWMA m15Rate = EWMA.fifteenMinuteEWMA();</b>
    +&nbsp;
    +&nbsp;    private final AtomicLong lastTick;
    +&nbsp;    private final Clock clock;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link ExponentialMovingAverages}.
    +&nbsp;     */
    +&nbsp;    public ExponentialMovingAverages() {
    +<b class="nc">&nbsp;        this(Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link ExponentialMovingAverages}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public ExponentialMovingAverages(Clock clock) {</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.lastTick = new AtomicLong(this.clock.getTick());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void update(long n) {
    +<b class="fc">&nbsp;        m1Rate.update(n);</b>
    +<b class="fc">&nbsp;        m5Rate.update(n);</b>
    +<b class="fc">&nbsp;        m15Rate.update(n);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void tickIfNecessary() {
    +<b class="fc">&nbsp;        final long oldTick = lastTick.get();</b>
    +<b class="fc">&nbsp;        final long newTick = clock.getTick();</b>
    +<b class="fc">&nbsp;        final long age = newTick - oldTick;</b>
    +<b class="pc">&nbsp;        if (age &gt; TICK_INTERVAL) {</b>
    +<b class="fc">&nbsp;            final long newIntervalStartTick = newTick - age % TICK_INTERVAL;</b>
    +<b class="pc">&nbsp;            if (lastTick.compareAndSet(oldTick, newIntervalStartTick)) {</b>
    +<b class="fc">&nbsp;                final long requiredTicks = age / TICK_INTERVAL;</b>
    +<b class="pc">&nbsp;                for (long i = 0; i &lt; requiredTicks; i++) {</b>
    +<b class="fc">&nbsp;                    m1Rate.tick();</b>
    +<b class="fc">&nbsp;                    m5Rate.tick();</b>
    +<b class="fc">&nbsp;                    m15Rate.tick();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getM1Rate() {
    +<b class="fc">&nbsp;        return m1Rate.getRate(TimeUnit.SECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getM5Rate() {
    +<b class="fc">&nbsp;        return m5Rate.getRate(TimeUnit.SECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public double getM15Rate() {
    +<b class="fc">&nbsp;        return m15Rate.getRate(TimeUnit.SECONDS);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-b.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-b.html
    new file mode 100644
    index 0000000000..bfb3485136
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-b.html
    @@ -0,0 +1,323 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ExponentiallyDecayingReservoir</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ExponentiallyDecayingReservoir (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ExponentiallyDecayingReservoir</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.ConcurrentSkipListMap;
    +&nbsp;import java.util.concurrent.ThreadLocalRandom;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;import java.util.concurrent.locks.ReentrantReadWriteLock;
    +&nbsp;
    +&nbsp;import static java.lang.Math.exp;
    +&nbsp;import static java.lang.Math.min;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.WeightedSnapshot.WeightedSample;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al&#39;s
    +&nbsp; * forward-decaying priority reservoir sampling method to produce a statistically representative
    +&nbsp; * sampling reservoir, exponentially biased towards newer entries.
    +&nbsp; *
    +&nbsp; * @see &lt;a href=&quot;http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf&quot;&gt;
    +&nbsp; * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE &#39;09:
    +&nbsp; * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)&lt;/a&gt;
    +&nbsp; */
    +&nbsp;public class ExponentiallyDecayingReservoir implements Reservoir {
    +&nbsp;    private static final int DEFAULT_SIZE = 1028;
    +&nbsp;    private static final double DEFAULT_ALPHA = 0.015;
    +<b class="fc">&nbsp;    private static final long RESCALE_THRESHOLD = TimeUnit.HOURS.toNanos(1);</b>
    +&nbsp;
    +&nbsp;    private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    +&nbsp;    private final ReentrantReadWriteLock lock;
    +&nbsp;    private final double alpha;
    +&nbsp;    private final int size;
    +&nbsp;    private final AtomicLong count;
    +&nbsp;    private volatile long startTime;
    +&nbsp;    private final AtomicLong lastScaleTick;
    +&nbsp;    private final Clock clock;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link ExponentiallyDecayingReservoir} of 1028 elements, which offers a 99.9%
    +&nbsp;     * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
    +&nbsp;     * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
    +&nbsp;     */
    +&nbsp;    public ExponentiallyDecayingReservoir() {
    +<b class="fc">&nbsp;        this(DEFAULT_SIZE, DEFAULT_ALPHA);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link ExponentiallyDecayingReservoir}.
    +&nbsp;     *
    +&nbsp;     * @param size  the number of samples to keep in the sampling reservoir
    +&nbsp;     * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
    +&nbsp;     *              will be towards newer values
    +&nbsp;     */
    +&nbsp;    public ExponentiallyDecayingReservoir(int size, double alpha) {
    +<b class="fc">&nbsp;        this(size, alpha, Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link ExponentiallyDecayingReservoir}.
    +&nbsp;     *
    +&nbsp;     * @param size  the number of samples to keep in the sampling reservoir
    +&nbsp;     * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
    +&nbsp;     *              will be towards newer values
    +&nbsp;     * @param clock the clock used to timestamp samples and track rescaling
    +&nbsp;     */
    +<b class="fc">&nbsp;    public ExponentiallyDecayingReservoir(int size, double alpha, Clock clock) {</b>
    +<b class="fc">&nbsp;        this.values = new ConcurrentSkipListMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        this.lock = new ReentrantReadWriteLock();</b>
    +<b class="fc">&nbsp;        this.alpha = alpha;</b>
    +<b class="fc">&nbsp;        this.size = size;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.count = new AtomicLong(0);</b>
    +<b class="fc">&nbsp;        this.startTime = currentTimeInSeconds();</b>
    +<b class="fc">&nbsp;        this.lastScaleTick = new AtomicLong(clock.getTick());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int size() {
    +<b class="fc">&nbsp;        return (int) min(size, count.get());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void update(long value) {
    +<b class="fc">&nbsp;        update(value, currentTimeInSeconds());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Adds an old value with a fixed timestamp to the reservoir.
    +&nbsp;     *
    +&nbsp;     * @param value     the value to be added
    +&nbsp;     * @param timestamp the epoch timestamp of {@code value} in seconds
    +&nbsp;     */
    +&nbsp;    public void update(long value, long timestamp) {
    +<b class="fc">&nbsp;        rescaleIfNeeded();</b>
    +<b class="fc">&nbsp;        lockForRegularUsage();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            final double itemWeight = weight(timestamp - startTime);</b>
    +<b class="fc">&nbsp;            final WeightedSample sample = new WeightedSample(value, itemWeight);</b>
    +<b class="fc">&nbsp;            final double priority = itemWeight / ThreadLocalRandom.current().nextDouble();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final long newCount = count.incrementAndGet();</b>
    +<b class="pc">&nbsp;            if (newCount &lt;= size || values.isEmpty()) {</b>
    +<b class="fc">&nbsp;                values.put(priority, sample);</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                Double first = values.firstKey();</b>
    +<b class="pc">&nbsp;                if (first &lt; priority &amp;&amp; values.putIfAbsent(priority, sample) == null) {</b>
    +&nbsp;                    // ensure we always remove an item
    +<b class="pc">&nbsp;                    while (values.remove(first) == null) {</b>
    +<b class="nc">&nbsp;                        first = values.firstKey();</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            unlockForRegularUsage();</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void rescaleIfNeeded() {
    +<b class="fc">&nbsp;        final long now = clock.getTick();</b>
    +<b class="fc">&nbsp;        final long lastScaleTickSnapshot = lastScaleTick.get();</b>
    +<b class="pc">&nbsp;        if (now - lastScaleTickSnapshot &gt;= RESCALE_THRESHOLD) {</b>
    +<b class="fc">&nbsp;            rescale(now, lastScaleTickSnapshot);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Snapshot getSnapshot() {
    +<b class="fc">&nbsp;        rescaleIfNeeded();</b>
    +<b class="fc">&nbsp;        lockForRegularUsage();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return new WeightedSnapshot(values.values());</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            unlockForRegularUsage();</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private long currentTimeInSeconds() {
    +<b class="fc">&nbsp;        return TimeUnit.MILLISECONDS.toSeconds(clock.getTime());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private double weight(long t) {
    +<b class="fc">&nbsp;        return exp(alpha * t);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /* &quot;A common feature of the above techniques—indeed, the key technique that
    +&nbsp;     * allows us to track the decayed weights efficiently—is that they maintain
    +&nbsp;     * counts and other quantities based on g(ti ? L), and only scale by g(t ? L)
    +&nbsp;     * at query time. But while g(ti ?L)/g(t?L) is guaranteed to lie between zero
    +&nbsp;     * and one, the intermediate values of g(ti ? L) could become very large. For
    +&nbsp;     * polynomial functions, these values should not grow too large, and should be
    +&nbsp;     * effectively represented in practice by floating point values without loss of
    +&nbsp;     * precision. For exponential functions, these values could grow quite large as
    +&nbsp;     * new values of (ti ? L) become large, and potentially exceed the capacity of
    +&nbsp;     * common floating point types. However, since the values stored by the
    +&nbsp;     * algorithms are linear combinations of g values (scaled sums), they can be
    +&nbsp;     * rescaled relative to a new landmark. That is, by the analysis of exponential
    +&nbsp;     * decay in Section III-A, the choice of L does not affect the final result. We
    +&nbsp;     * can therefore multiply each value based on L by a factor of exp(??(L? ? L)),
    +&nbsp;     * and obtain the correct value as if we had instead computed relative to a new
    +&nbsp;     * landmark L? (and then use this new L? at query time). This can be done with
    +&nbsp;     * a linear pass over whatever data structure is being used.&quot;
    +&nbsp;     */
    +&nbsp;    private void rescale(long now, long lastTick) {
    +<b class="fc">&nbsp;        lockForRescale();</b>
    +&nbsp;        try {
    +<b class="pc">&nbsp;            if (lastScaleTick.compareAndSet(lastTick, now)) {</b>
    +<b class="fc">&nbsp;                final long oldStartTime = startTime;</b>
    +<b class="fc">&nbsp;                this.startTime = currentTimeInSeconds();</b>
    +<b class="fc">&nbsp;                final double scalingFactor = exp(-alpha * (startTime - oldStartTime));</b>
    +<b class="pc">&nbsp;                if (Double.compare(scalingFactor, 0) == 0) {</b>
    +<b class="fc">&nbsp;                    values.clear();</b>
    +&nbsp;                } else {
    +<b class="fc">&nbsp;                    final ArrayList&lt;Double&gt; keys = new ArrayList&lt;&gt;(values.keySet());</b>
    +<b class="pc">&nbsp;                    for (Double key : keys) {</b>
    +<b class="fc">&nbsp;                        final WeightedSample sample = values.remove(key);</b>
    +<b class="fc">&nbsp;                        final WeightedSample newSample = new WeightedSample(sample.value, sample.weight * scalingFactor);</b>
    +<b class="pc">&nbsp;                        if (Double.compare(newSample.weight, 0) == 0) {</b>
    +<b class="fc">&nbsp;                            continue;</b>
    +&nbsp;                        }
    +<b class="fc">&nbsp;                        values.put(key * scalingFactor, newSample);</b>
    +<b class="fc">&nbsp;                    }</b>
    +&nbsp;                }
    +&nbsp;
    +&nbsp;                // make sure the counter is in sync with the number of stored samples.
    +<b class="fc">&nbsp;                count.set(values.size());</b>
    +&nbsp;            }
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            unlockForRescale();</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void unlockForRescale() {
    +<b class="fc">&nbsp;        lock.writeLock().unlock();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void lockForRescale() {
    +<b class="fc">&nbsp;        lock.writeLock().lock();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void lockForRegularUsage() {
    +<b class="fc">&nbsp;        lock.readLock().lock();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void unlockForRegularUsage() {
    +<b class="fc">&nbsp;        lock.readLock().unlock();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-c.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-c.html
    new file mode 100644
    index 0000000000..89ec116f43
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-c.html
    @@ -0,0 +1,125 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > FixedNameCsvFileProvider</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: FixedNameCsvFileProvider (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">FixedNameCsvFileProvider</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.io.File;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * This implementation of the {@link CsvFileProvider} will always return the same name
    +&nbsp; * for the same metric. This means the CSV file will grow indefinitely.
    +&nbsp; */
    +<b class="fc">&nbsp;public class FixedNameCsvFileProvider implements CsvFileProvider {</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public File getFile(File directory, String metricName) {
    +<b class="fc">&nbsp;        return new File(directory, sanitize(metricName) + &quot;.csv&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String sanitize(String metricName) {
    +&nbsp;        //Forward slash character is definitely illegal in both Windows and Linux
    +&nbsp;        //https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
    +<b class="fc">&nbsp;        return metricName.replaceFirst(&quot;^/&quot;, &quot;&quot;).replaceAll(&quot;/&quot;, &quot;.&quot;);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-d.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-d.html
    new file mode 100644
    index 0000000000..1728a38aa7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-d.html
    @@ -0,0 +1,162 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Histogram</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Histogram (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Histogram</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.concurrent.atomic.LongAdder;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A metric which calculates the distribution of a value.
    +&nbsp; *
    +&nbsp; * @see &lt;a href=&quot;http://www.johndcook.com/standard_deviation.html&quot;&gt;Accurately computing running
    +&nbsp; * variance&lt;/a&gt;
    +&nbsp; */
    +&nbsp;public class Histogram implements Metric, Sampling, Counting {
    +&nbsp;    private final Reservoir reservoir;
    +&nbsp;    private final LongAdder count;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link Histogram} with the given reservoir.
    +&nbsp;     *
    +&nbsp;     * @param reservoir the reservoir to create a histogram from
    +&nbsp;     */
    +<b class="fc">&nbsp;    public Histogram(Reservoir reservoir) {</b>
    +<b class="fc">&nbsp;        this.reservoir = reservoir;</b>
    +<b class="fc">&nbsp;        this.count = new LongAdder();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Adds a recorded value.
    +&nbsp;     *
    +&nbsp;     * @param value the length of the value
    +&nbsp;     */
    +&nbsp;    public void update(int value) {
    +<b class="fc">&nbsp;        update((long) value);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Adds a recorded value.
    +&nbsp;     *
    +&nbsp;     * @param value the length of the value
    +&nbsp;     */
    +&nbsp;    public void update(long value) {
    +<b class="fc">&nbsp;        count.increment();</b>
    +<b class="fc">&nbsp;        reservoir.update(value);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the number of values recorded.
    +&nbsp;     *
    +&nbsp;     * @return the number of values recorded
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public long getCount() {
    +<b class="fc">&nbsp;        return count.sum();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Snapshot getSnapshot() {
    +<b class="fc">&nbsp;        return reservoir.getSnapshot();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-e.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-e.html
    new file mode 100644
    index 0000000000..5a9373b5e7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-e.html
    @@ -0,0 +1,390 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedExecutorService</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedExecutorService (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedExecutorService</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    38.9%
    +  </span>
    +  <span class="absValue">
    +    (7/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.7%
    +  </span>
    +  <span class="absValue">
    +    (42/67)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedExecutorService$InstrumentedCallable</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedExecutorService$InstrumentedRunnable</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (63/89)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.BlockingQueue;
    +&nbsp;import java.util.concurrent.Callable;
    +&nbsp;import java.util.concurrent.ExecutionException;
    +&nbsp;import java.util.concurrent.ExecutorService;
    +&nbsp;import java.util.concurrent.ForkJoinPool;
    +&nbsp;import java.util.concurrent.Future;
    +&nbsp;import java.util.concurrent.ThreadPoolExecutor;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.TimeoutException;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An {@link ExecutorService} that monitors the number of tasks submitted, running,
    +&nbsp; * completed and also keeps a {@link Timer} for the task duration.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    +&nbsp; * &quot;your-executor-service.submitted&quot;, &quot;your-executor-service.running&quot;, etc.
    +&nbsp; */
    +<b class="fc">&nbsp;public class InstrumentedExecutorService implements ExecutorService {</b>
    +<b class="fc">&nbsp;    private static final AtomicLong NAME_COUNTER = new AtomicLong();</b>
    +&nbsp;
    +&nbsp;    private final ExecutorService delegate;
    +&nbsp;    private final Meter submitted;
    +&nbsp;    private final Counter running;
    +&nbsp;    private final Meter completed;
    +&nbsp;    private final Timer idle;
    +&nbsp;    private final Timer duration;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Wraps an {@link ExecutorService} uses an auto-generated default name.
    +&nbsp;     *
    +&nbsp;     * @param delegate {@link ExecutorService} to wrap.
    +&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    +&nbsp;     */
    +&nbsp;    public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(delegate, registry, &quot;instrumented-delegate-&quot; + NAME_COUNTER.incrementAndGet());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Wraps an {@link ExecutorService} with an explicit name.
    +&nbsp;     *
    +&nbsp;     * @param delegate {@link ExecutorService} to wrap.
    +&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    +&nbsp;     * @param name     name for this executor service.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry, String name) {</b>
    +<b class="fc">&nbsp;        this.delegate = delegate;</b>
    +<b class="fc">&nbsp;        this.submitted = registry.meter(MetricRegistry.name(name, &quot;submitted&quot;));</b>
    +<b class="fc">&nbsp;        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</b>
    +<b class="fc">&nbsp;        this.completed = registry.meter(MetricRegistry.name(name, &quot;completed&quot;));</b>
    +<b class="fc">&nbsp;        this.idle = registry.timer(MetricRegistry.name(name, &quot;idle&quot;));</b>
    +<b class="fc">&nbsp;        this.duration = registry.timer(MetricRegistry.name(name, &quot;duration&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (delegate instanceof ThreadPoolExecutor) {</b>
    +<b class="fc">&nbsp;            ThreadPoolExecutor executor = (ThreadPoolExecutor) delegate;</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;pool.size&quot;),</b>
    +<b class="fc">&nbsp;                    executor::getPoolSize);</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;pool.core&quot;),</b>
    +<b class="fc">&nbsp;                    executor::getCorePoolSize);</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;pool.max&quot;),</b>
    +<b class="fc">&nbsp;                    executor::getMaximumPoolSize);</b>
    +<b class="fc">&nbsp;            final BlockingQueue&lt;Runnable&gt; queue = executor.getQueue();</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.active&quot;),</b>
    +<b class="fc">&nbsp;                    executor::getActiveCount);</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.completed&quot;),</b>
    +<b class="fc">&nbsp;                    executor::getCompletedTaskCount);</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.queued&quot;),</b>
    +<b class="fc">&nbsp;                    queue::size);</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.capacity&quot;),</b>
    +<b class="fc">&nbsp;                    queue::remainingCapacity);</b>
    +<b class="fc">&nbsp;        } else if (delegate instanceof ForkJoinPool) {</b>
    +<b class="fc">&nbsp;            ForkJoinPool forkJoinPool = (ForkJoinPool) delegate;</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.stolen&quot;),</b>
    +<b class="fc">&nbsp;                    forkJoinPool::getStealCount);</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.queued&quot;),</b>
    +<b class="fc">&nbsp;                    forkJoinPool::getQueuedTaskCount);</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;threads.active&quot;),</b>
    +<b class="fc">&nbsp;                    forkJoinPool::getActiveThreadCount);</b>
    +<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;threads.running&quot;),</b>
    +<b class="fc">&nbsp;                    forkJoinPool::getRunningThreadCount);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void execute(Runnable runnable) {
    +<b class="nc">&nbsp;        submitted.mark();</b>
    +<b class="nc">&nbsp;        delegate.execute(new InstrumentedRunnable(runnable));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Future&lt;?&gt; submit(Runnable runnable) {
    +<b class="fc">&nbsp;        submitted.mark();</b>
    +<b class="fc">&nbsp;        return delegate.submit(new InstrumentedRunnable(runnable));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Runnable runnable, T result) {
    +<b class="nc">&nbsp;        submitted.mark();</b>
    +<b class="nc">&nbsp;        return delegate.submit(new InstrumentedRunnable(runnable), result);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Callable&lt;T&gt; task) {
    +<b class="fc">&nbsp;        submitted.mark();</b>
    +<b class="fc">&nbsp;        return delegate.submit(new InstrumentedCallable&lt;&gt;(task));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException {
    +<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    +<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    +<b class="nc">&nbsp;        return delegate.invokeAll(instrumented);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException {
    +<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    +<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    +<b class="nc">&nbsp;        return delegate.invokeAll(instrumented, timeout, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws ExecutionException, InterruptedException {
    +<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    +<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    +<b class="nc">&nbsp;        return delegate.invokeAny(instrumented);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws ExecutionException, InterruptedException, TimeoutException {
    +<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    +<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    +<b class="nc">&nbsp;        return delegate.invokeAny(instrumented, timeout, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private &lt;T&gt; Collection&lt;? extends Callable&lt;T&gt;&gt; instrument(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) {
    +<b class="nc">&nbsp;        final List&lt;InstrumentedCallable&lt;T&gt;&gt; instrumented = new ArrayList&lt;&gt;(tasks.size());</b>
    +<b class="nc">&nbsp;        for (Callable&lt;T&gt; task : tasks) {</b>
    +<b class="nc">&nbsp;            instrumented.add(new InstrumentedCallable&lt;&gt;(task));</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return instrumented;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void shutdown() {
    +<b class="fc">&nbsp;        delegate.shutdown();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public List&lt;Runnable&gt; shutdownNow() {
    +<b class="nc">&nbsp;        return delegate.shutdownNow();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public boolean isShutdown() {
    +<b class="nc">&nbsp;        return delegate.isShutdown();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public boolean isTerminated() {
    +<b class="nc">&nbsp;        return delegate.isTerminated();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public boolean awaitTermination(long l, TimeUnit timeUnit) throws InterruptedException {
    +<b class="fc">&nbsp;        return delegate.awaitTermination(l, timeUnit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class InstrumentedRunnable implements Runnable {
    +&nbsp;        private final Runnable task;
    +&nbsp;        private final Timer.Context idleContext;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedRunnable(Runnable task) {</b>
    +<b class="fc">&nbsp;            this.task = task;</b>
    +<b class="fc">&nbsp;            this.idleContext = idle.time();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void run() {
    +<b class="fc">&nbsp;            idleContext.stop();</b>
    +<b class="fc">&nbsp;            running.inc();</b>
    +<b class="fc">&nbsp;            try (Timer.Context durationContext = duration.time()) {</b>
    +<b class="fc">&nbsp;                task.run();</b>
    +<b class="fc">&nbsp;            } finally {</b>
    +<b class="fc">&nbsp;                running.dec();</b>
    +<b class="fc">&nbsp;                completed.mark();</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class InstrumentedCallable&lt;T&gt; implements Callable&lt;T&gt; {
    +&nbsp;        private final Callable&lt;T&gt; callable;
    +&nbsp;        private final Timer.Context idleContext;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedCallable(Callable&lt;T&gt; callable) {</b>
    +<b class="fc">&nbsp;            this.callable = callable;</b>
    +<b class="fc">&nbsp;            this.idleContext = idle.time();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public T call() throws Exception {
    +<b class="fc">&nbsp;            idleContext.stop();</b>
    +<b class="fc">&nbsp;            running.inc();</b>
    +<b class="fc">&nbsp;            try (Timer.Context context = duration.time()) {</b>
    +<b class="fc">&nbsp;                return callable.call();</b>
    +<b class="fc">&nbsp;            } finally {</b>
    +<b class="fc">&nbsp;                running.dec();</b>
    +<b class="fc">&nbsp;                completed.mark();</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-f.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-f.html
    new file mode 100644
    index 0000000000..3d6e3562ee
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-f.html
    @@ -0,0 +1,465 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedScheduledExecutorService</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedScheduledExecutorService (com.codahale.metrics)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedScheduledExecutorService</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (11/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    51%
    +  </span>
    +  <span class="absValue">
    +    (26/51)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedScheduledExecutorService$InstrumentedCallable</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedScheduledExecutorService$InstrumentedPeriodicRunnable</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedScheduledExecutorService$InstrumentedRunnable</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60.7%
    +  </span>
    +  <span class="absValue">
    +    (17/28)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.3%
    +  </span>
    +  <span class="absValue">
    +    (56/82)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    +&nbsp;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.Callable;
    +&nbsp;import java.util.concurrent.ExecutionException;
    +&nbsp;import java.util.concurrent.Future;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.ScheduledFuture;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.TimeoutException;
    +&nbsp;import java.util.concurrent.atomic.AtomicLong;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An {@link ScheduledExecutorService} that monitors the number of tasks submitted, running,
    +&nbsp; * completed and also keeps a {@link Timer} for the task duration.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    +&nbsp; * &quot;your-executor-service.submitted&quot;, &quot;your-executor-service.running&quot;, etc.
    +&nbsp; */
    +<b class="fc">&nbsp;public class InstrumentedScheduledExecutorService implements ScheduledExecutorService {</b>
    +<b class="fc">&nbsp;    private static final AtomicLong NAME_COUNTER = new AtomicLong();</b>
    +&nbsp;
    +&nbsp;    private final ScheduledExecutorService delegate;
    +&nbsp;
    +&nbsp;    private final Meter submitted;
    +&nbsp;    private final Counter running;
    +&nbsp;    private final Meter completed;
    +&nbsp;    private final Timer duration;
    +&nbsp;
    +&nbsp;    private final Meter scheduledOnce;
    +&nbsp;    private final Meter scheduledRepetitively;
    +&nbsp;    private final Counter scheduledOverrun;
    +&nbsp;    private final Histogram percentOfPeriod;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Wraps an {@link ScheduledExecutorService} uses an auto-generated default name.
    +&nbsp;     *
    +&nbsp;     * @param delegate {@link ScheduledExecutorService} to wrap.
    +&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    +&nbsp;     */
    +&nbsp;    public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(delegate, registry, &quot;instrumented-scheduled-executor-service-&quot; + NAME_COUNTER.incrementAndGet());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Wraps an {@link ScheduledExecutorService} with an explicit name.
    +&nbsp;     *
    +&nbsp;     * @param delegate {@link ScheduledExecutorService} to wrap.
    +&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    +&nbsp;     * @param name     name for this executor service.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry, String name) {</b>
    +<b class="fc">&nbsp;        this.delegate = delegate;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.submitted = registry.meter(MetricRegistry.name(name, &quot;submitted&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</b>
    +<b class="fc">&nbsp;        this.completed = registry.meter(MetricRegistry.name(name, &quot;completed&quot;));</b>
    +<b class="fc">&nbsp;        this.duration = registry.timer(MetricRegistry.name(name, &quot;duration&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.scheduledOnce = registry.meter(MetricRegistry.name(name, &quot;scheduled.once&quot;));</b>
    +<b class="fc">&nbsp;        this.scheduledRepetitively = registry.meter(MetricRegistry.name(name, &quot;scheduled.repetitively&quot;));</b>
    +<b class="fc">&nbsp;        this.scheduledOverrun = registry.counter(MetricRegistry.name(name, &quot;scheduled.overrun&quot;));</b>
    +<b class="fc">&nbsp;        this.percentOfPeriod = registry.histogram(MetricRegistry.name(name, &quot;scheduled.percent-of-period&quot;));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public ScheduledFuture&lt;?&gt; schedule(Runnable command, long delay, TimeUnit unit) {
    +<b class="fc">&nbsp;        scheduledOnce.mark();</b>
    +<b class="fc">&nbsp;        return delegate.schedule(new InstrumentedRunnable(command), delay, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;V&gt; ScheduledFuture&lt;V&gt; schedule(Callable&lt;V&gt; callable, long delay, TimeUnit unit) {
    +<b class="fc">&nbsp;        scheduledOnce.mark();</b>
    +<b class="fc">&nbsp;        return delegate.schedule(new InstrumentedCallable&lt;&gt;(callable), delay, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public ScheduledFuture&lt;?&gt; scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) {
    +<b class="fc">&nbsp;        scheduledRepetitively.mark();</b>
    +<b class="fc">&nbsp;        return delegate.scheduleAtFixedRate(new InstrumentedPeriodicRunnable(command, period, unit), initialDelay, period, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public ScheduledFuture&lt;?&gt; scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) {
    +<b class="fc">&nbsp;        scheduledRepetitively.mark();</b>
    +<b class="fc">&nbsp;        return delegate.scheduleWithFixedDelay(new InstrumentedRunnable(command), initialDelay, delay, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void shutdown() {
    +<b class="fc">&nbsp;        delegate.shutdown();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public List&lt;Runnable&gt; shutdownNow() {
    +<b class="nc">&nbsp;        return delegate.shutdownNow();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public boolean isShutdown() {
    +<b class="nc">&nbsp;        return delegate.isShutdown();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public boolean isTerminated() {
    +<b class="nc">&nbsp;        return delegate.isTerminated();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {
    +<b class="fc">&nbsp;        return delegate.awaitTermination(timeout, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Callable&lt;T&gt; task) {
    +<b class="fc">&nbsp;        submitted.mark();</b>
    +<b class="fc">&nbsp;        return delegate.submit(new InstrumentedCallable&lt;&gt;(task));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Runnable task, T result) {
    +<b class="nc">&nbsp;        submitted.mark();</b>
    +<b class="nc">&nbsp;        return delegate.submit(new InstrumentedRunnable(task), result);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public Future&lt;?&gt; submit(Runnable task) {
    +<b class="fc">&nbsp;        submitted.mark();</b>
    +<b class="fc">&nbsp;        return delegate.submit(new InstrumentedRunnable(task));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException {
    +<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    +<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    +<b class="nc">&nbsp;        return delegate.invokeAll(instrumented);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException {
    +<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    +<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    +<b class="nc">&nbsp;        return delegate.invokeAll(instrumented, timeout, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException, ExecutionException {
    +<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    +<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    +<b class="nc">&nbsp;        return delegate.invokeAny(instrumented);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
    +<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    +<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    +<b class="nc">&nbsp;        return delegate.invokeAny(instrumented, timeout, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private &lt;T&gt; Collection&lt;? extends Callable&lt;T&gt;&gt; instrument(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) {
    +<b class="nc">&nbsp;        final List&lt;InstrumentedCallable&lt;T&gt;&gt; instrumented = new ArrayList&lt;&gt;(tasks.size());</b>
    +<b class="nc">&nbsp;        for (Callable&lt;T&gt; task : tasks) {</b>
    +<b class="nc">&nbsp;            instrumented.add(new InstrumentedCallable&lt;&gt;(task));</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return instrumented;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void execute(Runnable command) {
    +<b class="nc">&nbsp;        submitted.mark();</b>
    +<b class="nc">&nbsp;        delegate.execute(new InstrumentedRunnable(command));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class InstrumentedRunnable implements Runnable {
    +&nbsp;        private final Runnable command;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedRunnable(Runnable command) {</b>
    +<b class="fc">&nbsp;            this.command = command;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void run() {
    +<b class="fc">&nbsp;            running.inc();</b>
    +<b class="fc">&nbsp;            final Timer.Context context = duration.time();</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                command.run();</b>
    +&nbsp;            } finally {
    +<b class="fc">&nbsp;                context.stop();</b>
    +<b class="fc">&nbsp;                running.dec();</b>
    +<b class="fc">&nbsp;                completed.mark();</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class InstrumentedPeriodicRunnable implements Runnable {
    +&nbsp;        private final Runnable command;
    +&nbsp;        private final long periodInNanos;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedPeriodicRunnable(Runnable command, long period, TimeUnit unit) {</b>
    +<b class="fc">&nbsp;            this.command = command;</b>
    +<b class="fc">&nbsp;            this.periodInNanos = unit.toNanos(period);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void run() {
    +<b class="fc">&nbsp;            running.inc();</b>
    +<b class="fc">&nbsp;            final Timer.Context context = duration.time();</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                command.run();</b>
    +&nbsp;            } finally {
    +<b class="fc">&nbsp;                final long elapsed = context.stop();</b>
    +<b class="fc">&nbsp;                running.dec();</b>
    +<b class="fc">&nbsp;                completed.mark();</b>
    +<b class="fc">&nbsp;                if (elapsed &gt; periodInNanos) {</b>
    +<b class="fc">&nbsp;                    scheduledOverrun.inc();</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                percentOfPeriod.update((100L * elapsed) / periodInNanos);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class InstrumentedCallable&lt;T&gt; implements Callable&lt;T&gt; {
    +&nbsp;        private final Callable&lt;T&gt; task;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedCallable(Callable&lt;T&gt; task) {</b>
    +<b class="fc">&nbsp;            this.task = task;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public T call() throws Exception {
    +<b class="fc">&nbsp;            running.inc();</b>
    +<b class="fc">&nbsp;            final Timer.Context context = duration.time();</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                return task.call();</b>
    +&nbsp;            } finally {
    +<b class="fc">&nbsp;                context.stop();</b>
    +<b class="fc">&nbsp;                running.dec();</b>
    +<b class="fc">&nbsp;                completed.mark();</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index.html
    new file mode 100644
    index 0000000000..ed1fe58122
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..ab08c81356
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..47fef9f7de
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..fad9e40b13
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..86e2625905
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..877a26dde9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..1a48079dbb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..9d02c03676
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..6082f6e9e3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..67c9163723
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/sources/source-1.html
    new file mode 100644
    index 0000000000..b6d231a93d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/sources/source-1.html
    @@ -0,0 +1,143 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedTimingCollector</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedTimingCollector</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (3/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.jdbi.strategies.SmartNameStrategy;
    +&nbsp;import com.codahale.metrics.jdbi.strategies.StatementNameStrategy;
    +&nbsp;import org.skife.jdbi.v2.StatementContext;
    +&nbsp;import org.skife.jdbi.v2.TimingCollector;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link TimingCollector} implementation for JDBI which uses the SQL objects&#39; class names and
    +&nbsp; * method names for millisecond-precision timers.
    +&nbsp; */
    +&nbsp;public class InstrumentedTimingCollector implements TimingCollector {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final StatementNameStrategy statementNameStrategy;
    +&nbsp;
    +&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry,
    +<b class="fc">&nbsp;                                       StatementNameStrategy statementNameStrategy) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void collect(long elapsedTime, StatementContext ctx) {
    +<b class="fc">&nbsp;        final Timer timer = getTimer(ctx);</b>
    +<b class="fc">&nbsp;        timer.update(elapsedTime, TimeUnit.NANOSECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer getTimer(StatementContext ctx) {
    +<b class="fc">&nbsp;        return registry.timer(statementNameStrategy.getStatementName(ctx));</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index.html
    new file mode 100644
    index 0000000000..77f99d4959
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..92cd669ffb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..57e82d7708
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..9eafcea9a1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_CLASS.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..db87e4f525
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..0caa3fdfde
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_LINE.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..74df313628
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..26789bbed3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_METHOD.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..67d35b4e8c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..4b8dea0b1a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.3%
    +  </span>
    +  <span class="absValue">
    +    (108/121)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-1.html
    new file mode 100644
    index 0000000000..b628f329d9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-1.html
    @@ -0,0 +1,112 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > BasicSqlNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">BasicSqlNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;    public BasicSqlNameStrategy() {
    +<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    +&nbsp;                NameStrategies.SQL_OBJECT);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-2.html
    new file mode 100644
    index 0000000000..c8e58c5b5d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-2.html
    @@ -0,0 +1,119 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ContextNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ContextNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ContextNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_GROUP} and {@link
    +&nbsp; * NameStrategies#STATEMENT_NAME} for group based display.
    +&nbsp; */
    +&nbsp;public class ContextNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;    public ContextNameStrategy() {
    +<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    +&nbsp;                NameStrategies.CHECK_RAW,
    +&nbsp;                NameStrategies.CONTEXT_NAME,
    +&nbsp;                NameStrategies.NAIVE_NAME);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-3.html
    new file mode 100644
    index 0000000000..8b0286562e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-3.html
    @@ -0,0 +1,135 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > DelegatingStatementNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">DelegatingStatementNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;import org.skife.jdbi.v2.StatementContext;
    +&nbsp;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.List;
    +&nbsp;
    +&nbsp;public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
    +<b class="fc">&nbsp;    private final List&lt;StatementNameStrategy&gt; strategies = new ArrayList&lt;&gt;();</b>
    +&nbsp;
    +<b class="fc">&nbsp;    protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {</b>
    +<b class="fc">&nbsp;        registerStrategies(strategies);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void registerStrategies(StatementNameStrategy... strategies) {
    +<b class="fc">&nbsp;        this.strategies.addAll(Arrays.asList(strategies));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;        for (StatementNameStrategy strategy : strategies) {</b>
    +<b class="fc">&nbsp;            final String statementName = strategy.getStatementName(statementContext);</b>
    +<b class="fc">&nbsp;            if (statementName != null) {</b>
    +<b class="fc">&nbsp;                return statementName;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="nc">&nbsp;        return NameStrategies.UNKNOWN_SQL;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-4.html
    new file mode 100644
    index 0000000000..9c57ea1ee7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-4.html
    @@ -0,0 +1,116 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > NaiveNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">NaiveNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Very simple strategy, can be used with any JDBI loader to build basic statistics.
    +&nbsp; */
    +&nbsp;public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;    public NaiveNameStrategy() {
    +<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    +&nbsp;                NameStrategies.CHECK_RAW,
    +&nbsp;                NameStrategies.NAIVE_NAME);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-5.html
    new file mode 100644
    index 0000000000..237711f73f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-5.html
    @@ -0,0 +1,422 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > NameStrategies</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: NameStrategies (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">NameStrategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">NameStrategies$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NameStrategies$CheckEmptyStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NameStrategies$CheckRawStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NameStrategies$ContextClassStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (12/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NameStrategies$ContextNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NameStrategies$NaiveNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NameStrategies$SqlObjectStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;import org.skife.jdbi.v2.ClasspathStatementLocator;
    +&nbsp;import org.skife.jdbi.v2.StatementContext;
    +&nbsp;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;import java.util.regex.Matcher;
    +&nbsp;import java.util.regex.Pattern;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +<b class="fc">&nbsp;public final class NameStrategies {</b>
    +<b class="fc">&nbsp;    public static final StatementNameStrategy CHECK_EMPTY = new CheckEmptyStrategy();</b>
    +<b class="fc">&nbsp;    public static final StatementNameStrategy CHECK_RAW = new CheckRawStrategy();</b>
    +<b class="fc">&nbsp;    public static final StatementNameStrategy SQL_OBJECT = new SqlObjectStrategy();</b>
    +<b class="fc">&nbsp;    public static final StatementNameStrategy NAIVE_NAME = new NaiveNameStrategy();</b>
    +<b class="fc">&nbsp;    public static final StatementNameStrategy CONTEXT_CLASS = new ContextClassStrategy();</b>
    +<b class="fc">&nbsp;    public static final StatementNameStrategy CONTEXT_NAME = new ContextNameStrategy();</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * An empty SQL statement.
    +&nbsp;     */
    +&nbsp;    private static final String EMPTY_SQL = &quot;sql.empty&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Unknown SQL.
    +&nbsp;     */
    +&nbsp;    static final String UNKNOWN_SQL = &quot;sql.unknown&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Context attribute name for the metric class.
    +&nbsp;     */
    +&nbsp;    public static final String STATEMENT_CLASS = &quot;_metric_class&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Context attribute name for the metric group.
    +&nbsp;     */
    +&nbsp;    public static final String STATEMENT_GROUP = &quot;_metric_group&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Context attribute name for the metric type.
    +&nbsp;     */
    +&nbsp;    public static final String STATEMENT_TYPE = &quot;_metric_type&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Context attribute name for the metric name.
    +&nbsp;     */
    +&nbsp;    public static final String STATEMENT_NAME = &quot;_metric_name&quot;;
    +&nbsp;
    +&nbsp;    private static String forRawSql(String rawSql) {
    +<b class="fc">&nbsp;        return name(&quot;sql&quot;, &quot;raw&quot;, rawSql);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class CheckEmptyStrategy implements StatementNameStrategy {</b>
    +<b class="fc">&nbsp;        private CheckEmptyStrategy() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (rawSql == null || rawSql.length() == 0) {</b>
    +<b class="fc">&nbsp;                return EMPTY_SQL;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class CheckRawStrategy implements StatementNameStrategy {</b>
    +<b class="fc">&nbsp;        private CheckRawStrategy() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (ClasspathStatementLocator.looksLikeSql(rawSql)) {</b>
    +<b class="fc">&nbsp;                return forRawSql(rawSql);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class NaiveNameStrategy implements StatementNameStrategy {</b>
    +<b class="fc">&nbsp;        private NaiveNameStrategy() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    +&nbsp;
    +&nbsp;            // Is it using the template loader?
    +<b class="fc">&nbsp;            final int colon = rawSql.indexOf(&#39;:&#39;);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (colon == -1) {</b>
    +&nbsp;                // No package? Just return the name, JDBI figured out somehow on how to find the raw sql for this statement.
    +<b class="fc">&nbsp;                return forRawSql(rawSql);</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            final String group = rawSql.substring(0, colon);</b>
    +<b class="nc">&nbsp;            final String name = rawSql.substring(colon + 1);</b>
    +<b class="nc">&nbsp;            return name(group, name);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class SqlObjectStrategy implements StatementNameStrategy {</b>
    +<b class="fc">&nbsp;        private SqlObjectStrategy() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final Class&lt;?&gt; clazz = statementContext.getSqlObjectType();</b>
    +<b class="fc">&nbsp;            final Method method = statementContext.getSqlObjectMethod();</b>
    +<b class="fc">&nbsp;            if (clazz != null) {</b>
    +<b class="fc">&nbsp;                final String rawSql = statementContext.getRawSql();</b>
    +&nbsp;
    +<b class="fc">&nbsp;                final String group = clazz.getPackage().getName();</b>
    +<b class="fc">&nbsp;                final String name = clazz.getSimpleName();</b>
    +<b class="fc">&nbsp;                final String type = method == null ? rawSql : method.getName();</b>
    +<b class="fc">&nbsp;                return name(group, name, type);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class ContextClassStrategy implements StatementNameStrategy {</b>
    +<b class="fc">&nbsp;        private ContextClassStrategy() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final Object classObj = statementContext.getAttribute(STATEMENT_CLASS);</b>
    +<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (classObj == null || nameObj == null) {</b>
    +<b class="fc">&nbsp;                return null;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            final String className = (String) classObj;</b>
    +<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    +<b class="fc">&nbsp;            if (dotPos == -1) {</b>
    +<b class="nc">&nbsp;                return null;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            return name(className.substring(0, dotPos),</b>
    +<b class="fc">&nbsp;                    className.substring(dotPos + 1),</b>
    +&nbsp;                    statementName);
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class ContextNameStrategy implements StatementNameStrategy {</b>
    +&nbsp;        /**
    +&nbsp;         * File pattern to shorten the group name.
    +&nbsp;         */
    +<b class="fc">&nbsp;        private static final Pattern SHORT_PATTERN = Pattern.compile(&quot;^(.*?)/(.*?)(-sql)?\\.st(g)?$&quot;);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        private ContextNameStrategy() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final Object groupObj = statementContext.getAttribute(STATEMENT_GROUP);</b>
    +<b class="fc">&nbsp;            final Object typeObj = statementContext.getAttribute(STATEMENT_TYPE);</b>
    +<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (groupObj == null || nameObj == null) {</b>
    +<b class="fc">&nbsp;                return null;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            final String group = (String) groupObj;</b>
    +<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (typeObj == null) {</b>
    +<b class="fc">&nbsp;                final Matcher matcher = SHORT_PATTERN.matcher(group);</b>
    +<b class="fc">&nbsp;                if (matcher.matches()) {</b>
    +<b class="fc">&nbsp;                    final String groupName = matcher.group(1);</b>
    +<b class="fc">&nbsp;                    final String typeName = matcher.group(2);</b>
    +<b class="fc">&nbsp;                    return name(groupName, typeName, statementName);</b>
    +&nbsp;                }
    +&nbsp;
    +<b class="fc">&nbsp;                return name(group, statementName, &quot;&quot;);</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                final String type = (String) typeObj;</b>
    +&nbsp;
    +<b class="fc">&nbsp;                return name(group, type, statementName);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private NameStrategies() {
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-6.html
    new file mode 100644
    index 0000000000..85fad429af
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-6.html
    @@ -0,0 +1,239 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ShortNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ShortNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ShortNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">ShortNameStrategy$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">ShortNameStrategy$ShortContextClassStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (13/15)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">ShortNameStrategy$ShortSqlObjectStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;import org.skife.jdbi.v2.StatementContext;
    +&nbsp;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Assembles all JDBI stats under a common prefix (passed in at constructor time). Stats are grouped
    +&nbsp; * by class name and method; a shortening strategy is applied to make the JMX output nicer.
    +&nbsp; */
    +<b class="fc">&nbsp;public final class ShortNameStrategy extends DelegatingStatementNameStrategy {</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;String, String&gt; shortClassNames = new ConcurrentHashMap&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    private final String baseJmxName;
    +&nbsp;
    +<b class="fc">&nbsp;    public ShortNameStrategy(String baseJmxName) {</b>
    +<b class="fc">&nbsp;        this.baseJmxName = baseJmxName;</b>
    +&nbsp;
    +&nbsp;        // Java does not allow super (..., new ShortContextClassStrategy(), new ShortSqlObjectStrategy(), ...);
    +&nbsp;        // ==&gt; No enclosing instance of type &lt;xxx&gt; is available due to some intermediate constructor invocation. Lame.
    +<b class="fc">&nbsp;        registerStrategies(NameStrategies.CHECK_EMPTY,</b>
    +&nbsp;                new ShortContextClassStrategy(),
    +&nbsp;                new ShortSqlObjectStrategy(),
    +&nbsp;                NameStrategies.CHECK_RAW,
    +&nbsp;                NameStrategies.NAIVE_NAME);
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private final class ShortContextClassStrategy implements StatementNameStrategy {</b>
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final Object classObj = statementContext.getAttribute(NameStrategies.STATEMENT_CLASS);</b>
    +<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(NameStrategies.STATEMENT_NAME);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (classObj == null || nameObj == null) {</b>
    +<b class="fc">&nbsp;                return null;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            final String className = (String) classObj;</b>
    +<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    +<b class="fc">&nbsp;            if (dotPos == -1) {</b>
    +<b class="nc">&nbsp;                return null;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            final String shortName = className.substring(dotPos + 1);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final String oldClassName = shortClassNames.putIfAbsent(shortName, className);</b>
    +<b class="fc">&nbsp;            if (oldClassName == null || oldClassName.equals(className)) {</b>
    +<b class="fc">&nbsp;                return name(baseJmxName, shortName, statementName);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                return name(baseJmxName, className, statementName);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private final class ShortSqlObjectStrategy implements StatementNameStrategy {</b>
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final Class&lt;?&gt; clazz = statementContext.getSqlObjectType();</b>
    +<b class="fc">&nbsp;            final Method method = statementContext.getSqlObjectMethod();</b>
    +<b class="fc">&nbsp;            if (clazz != null &amp;&amp; method != null) {</b>
    +<b class="fc">&nbsp;                final String className = clazz.getName();</b>
    +<b class="fc">&nbsp;                final String statementName = method.getName();</b>
    +&nbsp;
    +<b class="fc">&nbsp;                final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    +<b class="fc">&nbsp;                if (dotPos == -1) {</b>
    +<b class="nc">&nbsp;                    return null;</b>
    +&nbsp;                }
    +&nbsp;
    +<b class="fc">&nbsp;                final String shortName = className.substring(dotPos + 1);</b>
    +&nbsp;
    +<b class="fc">&nbsp;                final String oldClassName = shortClassNames.putIfAbsent(shortName, className);</b>
    +<b class="fc">&nbsp;                if (oldClassName == null || oldClassName.equals(className)) {</b>
    +<b class="fc">&nbsp;                    return name(baseJmxName, shortName, statementName);</b>
    +&nbsp;                } else {
    +<b class="nc">&nbsp;                    return name(baseJmxName, className, statementName);</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-7.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-7.html
    new file mode 100644
    index 0000000000..6b9c298832
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-7.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SmartNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SmartNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_CLASS} and {@link
    +&nbsp; * NameStrategies#STATEMENT_NAME} for class based display or {@link NameStrategies#STATEMENT_GROUP}
    +&nbsp; * and {@link NameStrategies#STATEMENT_NAME} for group based display.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Also knows how to deal with SQL Object statements.
    +&nbsp; */
    +&nbsp;public class SmartNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;    public SmartNameStrategy() {
    +<b class="fc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    +&nbsp;                NameStrategies.CONTEXT_CLASS,
    +&nbsp;                NameStrategies.CONTEXT_NAME,
    +&nbsp;                NameStrategies.SQL_OBJECT,
    +&nbsp;                NameStrategies.CHECK_RAW,
    +&nbsp;                NameStrategies.NAIVE_NAME);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-8.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-8.html
    new file mode 100644
    index 0000000000..b651149286
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-8.html
    @@ -0,0 +1,78 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > StatementNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">StatementNameStrategy</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;import org.skife.jdbi.v2.StatementContext;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Interface for strategies to statement contexts to metric names.
    +&nbsp; */
    +&nbsp;public interface StatementNameStrategy {
    +&nbsp;    String getStatementName(StatementContext statementContext);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index.html
    new file mode 100644
    index 0000000000..72b19a2514
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..6bc6da6dc6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..d2ab6a4730
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..4a0b687720
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_CLASS.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..8d04c8e03b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..a5d26b42dc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_LINE.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..58eb93e004
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..c6d204c984
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_METHOD.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..85534ae299
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..7f9e1de80d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (6/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.2%
    +  </span>
    +  <span class="absValue">
    +    (15/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/sources/source-1.html
    new file mode 100644
    index 0000000000..4106127f48
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/sources/source-1.html
    @@ -0,0 +1,152 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedSqlLogger</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedSqlLogger (com.codahale.metrics.jdbi3)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedSqlLogger</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (4/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
    +&nbsp;import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
    +&nbsp;import org.jdbi.v3.core.statement.SqlLogger;
    +&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    +&nbsp;
    +&nbsp;import java.sql.SQLException;
    +&nbsp;import java.time.temporal.ChronoUnit;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link SqlLogger} implementation for JDBI which uses the SQL objects&#39; class names and
    +&nbsp; * method names for nanosecond-precision timers.
    +&nbsp; */
    +&nbsp;public class InstrumentedSqlLogger implements SqlLogger {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final StatementNameStrategy statementNameStrategy;
    +&nbsp;
    +&nbsp;    public InstrumentedSqlLogger(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedSqlLogger(MetricRegistry registry,
    +<b class="fc">&nbsp;                                 StatementNameStrategy statementNameStrategy) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void logAfterExecution(StatementContext context) {
    +<b class="fc">&nbsp;        log(context);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void logException(StatementContext context, SQLException ex) {
    +<b class="fc">&nbsp;        log(context);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void log(StatementContext context) {
    +<b class="fc">&nbsp;        String statementName = statementNameStrategy.getStatementName(context);</b>
    +<b class="fc">&nbsp;        if (statementName != null) {</b>
    +<b class="fc">&nbsp;            final long elapsed = context.getElapsedTime(ChronoUnit.NANOS);</b>
    +<b class="fc">&nbsp;            registry.timer(statementName).update(elapsed, TimeUnit.NANOSECONDS);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/sources/source-2.html
    new file mode 100644
    index 0000000000..1b8420c8ec
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/sources/source-2.html
    @@ -0,0 +1,145 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedTimingCollector</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi3)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedTimingCollector</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
    +&nbsp;import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
    +&nbsp;import org.jdbi.v3.core.statement.SqlLogger;
    +&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    +&nbsp;import org.jdbi.v3.core.statement.TimingCollector;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link TimingCollector} implementation for JDBI which uses the SQL objects&#39; class names and
    +&nbsp; * method names for millisecond-precision timers.
    +&nbsp; *
    +&nbsp; * @deprecated Use {@link InstrumentedSqlLogger} and {@link org.jdbi.v3.core.Jdbi#setSqlLogger(SqlLogger)} instead.
    +&nbsp; */
    +&nbsp;@Deprecated
    +&nbsp;public class InstrumentedTimingCollector implements TimingCollector {
    +&nbsp;
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final StatementNameStrategy statementNameStrategy;
    +&nbsp;
    +&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry,
    +<b class="fc">&nbsp;                                       StatementNameStrategy statementNameStrategy) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void collect(long elapsedTime, StatementContext ctx) {
    +<b class="fc">&nbsp;        String statementName = statementNameStrategy.getStatementName(ctx);</b>
    +<b class="fc">&nbsp;        if (statementName != null) {</b>
    +<b class="fc">&nbsp;            registry.timer(statementName).update(elapsedTime, TimeUnit.NANOSECONDS);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index.html
    new file mode 100644
    index 0000000000..e2f2556be1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..dbc3dd2546
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..ed3be724a7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..93415ab815
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_CLASS.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..e0b3466b0f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..dfa473b1fa
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_LINE.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..99b938fc4d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..dd8f4c8cb9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_METHOD.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..0340b765d4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..59c4d38b28
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jdbi3.strategies</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (45/47)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-1.html
    new file mode 100644
    index 0000000000..8089c2d98b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-1.html
    @@ -0,0 +1,116 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > BasicSqlNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">BasicSqlNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Collects metrics by respective SQLObject methods.
    +&nbsp; */
    +&nbsp;public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;
    +&nbsp;    public BasicSqlNameStrategy() {
    +<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    +&nbsp;                DefaultNameStrategy.SQL_OBJECT);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-2.html
    new file mode 100644
    index 0000000000..4c5f0e43de
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-2.html
    @@ -0,0 +1,246 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > DefaultNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: DefaultNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">DefaultNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">DefaultNameStrategy$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">DefaultNameStrategy$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">DefaultNameStrategy$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">DefaultNameStrategy$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.jdbi.v3.core.extension.ExtensionMethod;
    +&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Default strategies which build a basis of more complex strategies
    +&nbsp; */
    +<b class="fc">&nbsp;public enum DefaultNameStrategy implements StatementNameStrategy {</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * If no SQL in the context, returns `sql.empty`, otherwise falls through
    +&nbsp;     */
    +<b class="fc">&nbsp;    CHECK_EMPTY {</b>
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    +<b class="fc">&nbsp;            return rawSql == null || rawSql.isEmpty() ? &quot;sql.empty&quot; : null;</b>
    +&nbsp;        }
    +&nbsp;    },
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * If there is an SQL object attached to the context, returns the name package,
    +&nbsp;     * the class and the method on which SQL is declared. If not SQL object is attached,
    +&nbsp;     * falls through
    +&nbsp;     */
    +<b class="fc">&nbsp;    SQL_OBJECT {</b>
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            ExtensionMethod extensionMethod = statementContext.getExtensionMethod();</b>
    +<b class="fc">&nbsp;            if (extensionMethod != null) {</b>
    +<b class="fc">&nbsp;                return MetricRegistry.name(extensionMethod.getType(), extensionMethod.getMethod().getName());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    },
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a raw SQL in the context (even if it&#39;s not exist)
    +&nbsp;     */
    +<b class="fc">&nbsp;    NAIVE_NAME {</b>
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            return statementContext.getRawSql();</b>
    +&nbsp;        }
    +&nbsp;    },
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the `sql.raw` constant
    +&nbsp;     */
    +<b class="fc">&nbsp;    CONSTANT_SQL_RAW {</b>
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            return &quot;sql.raw&quot;;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-3.html
    new file mode 100644
    index 0000000000..db36b6c22f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-3.html
    @@ -0,0 +1,136 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > DelegatingStatementNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">DelegatingStatementNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    +&nbsp;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.List;
    +&nbsp;
    +&nbsp;public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Unknown SQL.
    +&nbsp;     */
    +&nbsp;    private static final String UNKNOWN_SQL = &quot;sql.unknown&quot;;
    +&nbsp;
    +&nbsp;    private final List&lt;StatementNameStrategy&gt; strategies;
    +&nbsp;
    +<b class="fc">&nbsp;    protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {</b>
    +<b class="fc">&nbsp;        this.strategies = Arrays.asList(strategies);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;        for (StatementNameStrategy strategy : strategies) {</b>
    +<b class="fc">&nbsp;            final String statementName = strategy.getStatementName(statementContext);</b>
    +<b class="fc">&nbsp;            if (statementName != null) {</b>
    +<b class="fc">&nbsp;                return statementName;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="nc">&nbsp;        return UNKNOWN_SQL;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-4.html
    new file mode 100644
    index 0000000000..047b6e3244
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-4.html
    @@ -0,0 +1,116 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > NaiveNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">NaiveNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Very simple strategy, can be used with any JDBI loader to build basic statistics.
    +&nbsp; */
    +&nbsp;public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;
    +&nbsp;    public NaiveNameStrategy() {
    +<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    +&nbsp;              DefaultNameStrategy.NAIVE_NAME);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-5.html
    new file mode 100644
    index 0000000000..3149f33f9b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-5.html
    @@ -0,0 +1,117 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SmartNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SmartNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Uses a {@link BasicSqlNameStrategy} and fallbacks to {@link DefaultNameStrategy#CONSTANT_SQL_RAW}
    +&nbsp; */
    +&nbsp;public class SmartNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;
    +&nbsp;    public SmartNameStrategy() {
    +<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    +&nbsp;                DefaultNameStrategy.SQL_OBJECT,
    +&nbsp;                DefaultNameStrategy.CONSTANT_SQL_RAW);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-6.html
    new file mode 100644
    index 0000000000..b4a136b344
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-6.html
    @@ -0,0 +1,151 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > TimedAnnotationNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: TimedAnnotationNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">TimedAnnotationNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.annotation.Timed;
    +&nbsp;import org.jdbi.v3.core.extension.ExtensionMethod;
    +&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    +&nbsp;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Takes into account the {@link Timed} annotation on extension methods
    +&nbsp; */
    +<b class="fc">&nbsp;public class TimedAnnotationNameStrategy implements StatementNameStrategy {</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;        final ExtensionMethod extensionMethod = statementContext.getExtensionMethod();</b>
    +<b class="fc">&nbsp;        if (extensionMethod == null) {</b>
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Class&lt;?&gt; clazz = extensionMethod.getType();</b>
    +<b class="fc">&nbsp;        final Timed classTimed = clazz.getAnnotation(Timed.class);</b>
    +<b class="fc">&nbsp;        final Method method = extensionMethod.getMethod();</b>
    +<b class="fc">&nbsp;        final Timed methodTimed = method.getAnnotation(Timed.class);</b>
    +&nbsp;
    +&nbsp;        // If the method is timed, figure out the name
    +<b class="fc">&nbsp;        if (methodTimed != null) {</b>
    +<b class="fc">&nbsp;            String methodName = methodTimed.name().isEmpty() ? method.getName() : methodTimed.name();</b>
    +<b class="fc">&nbsp;            if (methodTimed.absolute()) {</b>
    +<b class="fc">&nbsp;                return methodName;</b>
    +&nbsp;            } else {
    +&nbsp;                // We need to check if the class has a custom timer name
    +<b class="fc">&nbsp;                return classTimed == null || classTimed.name().isEmpty() ?</b>
    +<b class="fc">&nbsp;                        MetricRegistry.name(clazz, methodName) :</b>
    +<b class="fc">&nbsp;                        MetricRegistry.name(classTimed.name(), methodName);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        } else if (classTimed != null) {</b>
    +&nbsp;            // Maybe the class is timed?
    +<b class="fc">&nbsp;            return classTimed.name().isEmpty() ? MetricRegistry.name(clazz, method.getName()) :</b>
    +<b class="nc">&nbsp;                    MetricRegistry.name(classTimed.name(), method.getName());</b>
    +&nbsp;        } else {
    +&nbsp;            // No timers neither on the method or the class
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-7.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-7.html
    new file mode 100644
    index 0000000000..e42c4d80e9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-7.html
    @@ -0,0 +1,89 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > StatementNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +  <tr>
    +    <td class="name">StatementNameStrategy$MockitoMock$4ynm8yDG</td>
    +  </tr>
    +  <tr>
    +    <td class="name">StatementNameStrategy$MockitoMock$4ynm8yDG$auxiliary$G6TUrXev</td>
    +  </tr>
    +  <tr>
    +    <td class="name">StatementNameStrategy$MockitoMock$4ynm8yDG$auxiliary$xgsHqId4</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Interface for strategies to statement contexts to metric names.
    +&nbsp; */
    +&nbsp;@FunctionalInterface
    +&nbsp;public interface StatementNameStrategy {
    +&nbsp;
    +&nbsp;    String getStatementName(StatementContext statementContext);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index.html
    new file mode 100644
    index 0000000000..82cab34be2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..6e72df673d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..e1aacc2f5a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..2edd7b6f9a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_CLASS.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..6780e74a17
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..a0a786b566
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_LINE.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..7d4443341b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..b22b1f6ee1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_METHOD.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..44a81ccc05
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..14c281f22f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/sources/source-1.html
    new file mode 100644
    index 0000000000..39acbdb59f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/sources/source-1.html
    @@ -0,0 +1,831 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jersey2</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey2)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (16/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.1%
    +  </span>
    +  <span class="absValue">
    +    (82/89)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.2%
    +  </span>
    +  <span class="absValue">
    +    (16/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (28/28)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey2;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Reservoir;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    +&nbsp;import com.codahale.metrics.annotation.Metered;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import com.codahale.metrics.annotation.Timed;
    +&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    +&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    +&nbsp;import org.glassfish.jersey.server.model.Resource;
    +&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    +&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    +&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    +&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    +&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    +&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    +&nbsp;
    +&nbsp;import javax.ws.rs.core.Configuration;
    +&nbsp;import javax.ws.rs.ext.Provider;
    +&nbsp;import java.lang.annotation.Annotation;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An application event listener that listens for Jersey application initialization to
    +&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    +&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    +&nbsp; * request events indicating that the method is about to be invoked, or just got done
    +&nbsp; * being invoked.
    +&nbsp; */
    +&nbsp;@Provider
    +&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    +&nbsp;
    +<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    +<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    +&nbsp;    private static final String TOTAL = &quot;total&quot;;
    +&nbsp;
    +&nbsp;    private final MetricRegistry metrics;
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final boolean trackFilters;
    +&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Construct an application event listener using the given metrics registry.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    +&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    +&nbsp;     *
    +&nbsp;     * @param metrics a {@link MetricRegistry}
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    +<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Constructs a custom application listener.
    +&nbsp;     *
    +&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    +&nbsp;                                                         final boolean trackFilters) {
    +<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Constructs a custom application listener.
    +&nbsp;     *
    +&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    +&nbsp;                                                         final boolean trackFilters,
    +<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    +<b class="fc">&nbsp;        this.metrics = metrics;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    +<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A private class to maintain the metric for a method annotated with the
    +&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    +&nbsp;     * and a cause for which the meter should be updated.
    +&nbsp;     */
    +&nbsp;    private static class ExceptionMeterMetric {
    +&nbsp;        public final Meter meter;
    +&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    +&nbsp;
    +&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    +&nbsp;                                    final ResourceMethod method,
    +<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    +<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    +<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    +<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    +<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A private class to maintain the metrics for a method annotated with the
    +&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    +&nbsp;     * different response codes
    +&nbsp;     */
    +&nbsp;    private static class ResponseMeterMetric {
    +<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;        private final List&lt;Meter&gt; meters;
    +&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;        private final MetricRegistry metricRegistry;
    +&nbsp;        private final String metricName;
    +&nbsp;        private final ResponseMeteredLevel level;
    +&nbsp;
    +&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    +&nbsp;                                   final ResourceMethod method,
    +<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    +<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    +<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    +<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    +<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    +<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    +<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    +<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    +<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    +<b class="fc">&nbsp;            )) : Collections.emptyList();</b>
    +<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public void mark(int statusCode) {
    +<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    +<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    +<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;            return responseCodeMeters</b>
    +<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    +&nbsp;
    +&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    +&nbsp;        private final Clock clock;
    +&nbsp;        private final long start;
    +&nbsp;        private Timer.Context resourceMethodStartContext;
    +&nbsp;        private Timer.Context requestMatchedContext;
    +&nbsp;        private Timer.Context responseFiltersStartContext;
    +&nbsp;
    +<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    +<b class="fc">&nbsp;            this.timers = timers;</b>
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            start = clock.getTick();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            switch (event.getType()) {</b>
    +&nbsp;                case RESOURCE_METHOD_START:
    +<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case REQUEST_MATCHED:
    +<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case RESP_FILTERS_START:
    +<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case RESOURCE_METHOD_FINISHED:
    +<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    +<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case REQUEST_FILTERED:
    +<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    +<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case RESP_FILTERS_FINISHED:
    +<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    +<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case FINISHED:
    +<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    +<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    +<b class="fc">&nbsp;                        if (timer != null) {</b>
    +<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    +&nbsp;                        }
    +<b class="fc">&nbsp;                    }</b>
    +&nbsp;                    break;
    +&nbsp;                default:
    +&nbsp;                    break;
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer timer(RequestEvent event) {
    +<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    +<b class="fc">&nbsp;                return null;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer.Context context(RequestEvent event) {
    +<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    +<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    +&nbsp;
    +<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    +<b class="fc">&nbsp;            this.meters = meters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    +<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    +<b class="fc">&nbsp;                if (meter != null) {</b>
    +<b class="fc">&nbsp;                    meter.mark();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    +&nbsp;
    +<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    +<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    +<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    +<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;                if (metric != null) {</b>
    +<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    +<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    +<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    +<b class="fc">&nbsp;                        metric.meter.mark();</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    +&nbsp;
    +<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    +<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    +<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    +<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;                if (metric != null) {</b>
    +<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    +<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    +<b class="fc">&nbsp;                        metric.mark(500);</b>
    +<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    +<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    +&nbsp;        private final RequestEventListener[] listeners;
    +&nbsp;
    +<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    +<b class="fc">&nbsp;            this.listeners = listeners;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(final RequestEvent event) {
    +<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    +<b class="fc">&nbsp;                listener.onEvent(event);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onEvent(ApplicationEvent event) {
    +<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    +<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    +<b class="fc">&nbsp;        return resourceModel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    +<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    +<b class="fc">&nbsp;        return subResourceModel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    +<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    +<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    +<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    +<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    +<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    +<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    +<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    +<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    +&nbsp;
    +<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    +<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    +<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    +<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    +<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    +<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    +<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    +<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    +<b class="fc">&nbsp;                }</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    +<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    +&nbsp;                new TimerRequestEventListener(timers, clock),
    +&nbsp;                new MeterRequestEventListener(meters),
    +&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    +&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    +&nbsp;
    +<b class="fc">&nbsp;        return listener;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    +<b class="fc">&nbsp;        T annotation = null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    +<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (annotation != null) {</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return annotation;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    +<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    +&nbsp;            return;
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    +<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    +<b class="fc">&nbsp;        if (trackFilters) {</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    +<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    +<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    +<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    +&nbsp;                              final ResourceMethod method,
    +&nbsp;                              final Timed timed,
    +&nbsp;                              final String... suffixes) {
    +<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    +<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    +&nbsp;                              final ResourceMethod method,
    +&nbsp;                              final Metered metered) {
    +<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    +<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    +&nbsp;                                       final String... suffixes) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;        final String metricName;
    +<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    +<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    +&nbsp;
    +&nbsp;        private final RequestEvent.Type type;
    +&nbsp;        private final Method method;
    +&nbsp;
    +<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    +<b class="fc">&nbsp;            this.type = type;</b>
    +<b class="fc">&nbsp;            this.method = method;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod finished(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean equals(Object o) {
    +<b class="fc">&nbsp;            if (this == o) {</b>
    +<b class="nc">&nbsp;                return true;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (type != that.type) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return method.equals(that.method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public int hashCode() {
    +<b class="fc">&nbsp;            int result = type.hashCode();</b>
    +<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    +<b class="fc">&nbsp;            return result;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/sources/source-2.html
    new file mode 100644
    index 0000000000..74a9813d52
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/sources/source-2.html
    @@ -0,0 +1,201 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricsFeature</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jersey2</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey2)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricsFeature</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey2;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Reservoir;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;
    +&nbsp;import javax.ws.rs.core.Feature;
    +&nbsp;import javax.ws.rs.core.FeatureContext;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    +&nbsp; * for recording request events.
    +&nbsp; */
    +&nbsp;public class MetricsFeature implements Feature {
    +&nbsp;
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final boolean trackFilters;
    +&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    +<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    +<b class="fc">&nbsp;        this(registry, clock, false);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    +<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    +<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public MetricsFeature(String registryName) {
    +<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A call-back method called when the feature is to be enabled in a given
    +&nbsp;     * runtime configuration scope.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    +&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    +&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    +&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    +&nbsp;     * {@link javax.ws.rs.core.Configuration#isEnabled(javax.ws.rs.core.Feature)} or
    +&nbsp;     * {@link javax.ws.rs.core.Configuration#isEnabled(Class)} method
    +&nbsp;     * would return {@code false}.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     *
    +&nbsp;     * @param context configurable context in which the feature should be enabled.
    +&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    +&nbsp;     * otherwise.
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public boolean configure(FeatureContext context) {
    +<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    +<b class="fc">&nbsp;        return true;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index.html
    new file mode 100644
    index 0000000000..052135e591
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..301aed65ee
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..2d20cf9bca
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..d140c87621
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_CLASS.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..fa46be2724
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..808f547845
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_LINE.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..b852d7aa54
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..6a5e31e1f0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_METHOD.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..abb34c5f39
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..2b75c7a272
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jersey3</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jersey3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.8%
    +  </span>
    +  <span class="absValue">
    +    (201/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/sources/source-1.html
    new file mode 100644
    index 0000000000..9af08f0b3c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/sources/source-1.html
    @@ -0,0 +1,832 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jersey3</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey3)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (16/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.1%
    +  </span>
    +  <span class="absValue">
    +    (82/89)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.2%
    +  </span>
    +  <span class="absValue">
    +    (16/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (28/28)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95%
    +  </span>
    +  <span class="absValue">
    +    (190/200)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey3;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Reservoir;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    +&nbsp;import com.codahale.metrics.annotation.Metered;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import com.codahale.metrics.annotation.Timed;
    +&nbsp;import jakarta.ws.rs.core.Configuration;
    +&nbsp;import jakarta.ws.rs.ext.Provider;
    +&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    +&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    +&nbsp;import org.glassfish.jersey.server.model.Resource;
    +&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    +&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    +&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    +&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    +&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    +&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    +&nbsp;
    +&nbsp;import java.lang.annotation.Annotation;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An application event listener that listens for Jersey application initialization to
    +&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    +&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    +&nbsp; * request events indicating that the method is about to be invoked, or just got done
    +&nbsp; * being invoked.
    +&nbsp; */
    +&nbsp;@Provider
    +&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    +&nbsp;
    +<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    +<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    +&nbsp;    private static final String TOTAL = &quot;total&quot;;
    +&nbsp;
    +&nbsp;    private final MetricRegistry metrics;
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final boolean trackFilters;
    +&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Construct an application event listener using the given metrics registry.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    +&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    +&nbsp;     *
    +&nbsp;     * @param metrics a {@link MetricRegistry}
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    +<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Constructs a custom application listener.
    +&nbsp;     *
    +&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    +&nbsp;                                                         final boolean trackFilters) {
    +<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Constructs a custom application listener.
    +&nbsp;     *
    +&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    +&nbsp;                                                         final boolean trackFilters,
    +<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    +<b class="fc">&nbsp;        this.metrics = metrics;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    +<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A private class to maintain the metric for a method annotated with the
    +&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    +&nbsp;     * and a cause for which the meter should be updated.
    +&nbsp;     */
    +&nbsp;    private static class ExceptionMeterMetric {
    +&nbsp;        public final Meter meter;
    +&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    +&nbsp;
    +&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    +&nbsp;                                    final ResourceMethod method,
    +<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    +<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    +<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    +<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    +<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A private class to maintain the metrics for a method annotated with the
    +&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    +&nbsp;     * different response codes
    +&nbsp;     */
    +&nbsp;    private static class ResponseMeterMetric {
    +<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;        private final List&lt;Meter&gt; meters;
    +&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;        private final MetricRegistry metricRegistry;
    +&nbsp;        private final String metricName;
    +&nbsp;        private final ResponseMeteredLevel level;
    +&nbsp;
    +&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    +&nbsp;                                   final ResourceMethod method,
    +<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    +<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    +<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    +<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    +<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    +<b class="fc">&nbsp;                    )) : Collections.emptyList();</b>
    +<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public void mark(int statusCode) {
    +<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    +<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    +<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;            return responseCodeMeters</b>
    +<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    +&nbsp;
    +&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    +&nbsp;        private final Clock clock;
    +&nbsp;        private final long start;
    +&nbsp;        private Timer.Context resourceMethodStartContext;
    +&nbsp;        private Timer.Context requestMatchedContext;
    +&nbsp;        private Timer.Context responseFiltersStartContext;
    +&nbsp;
    +<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    +<b class="fc">&nbsp;            this.timers = timers;</b>
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            start = clock.getTick();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            switch (event.getType()) {</b>
    +&nbsp;                case RESOURCE_METHOD_START:
    +<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case REQUEST_MATCHED:
    +<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case RESP_FILTERS_START:
    +<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case RESOURCE_METHOD_FINISHED:
    +<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    +<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case REQUEST_FILTERED:
    +<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    +<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case RESP_FILTERS_FINISHED:
    +<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    +<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case FINISHED:
    +<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    +<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    +<b class="fc">&nbsp;                        if (timer != null) {</b>
    +<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    +&nbsp;                        }
    +<b class="fc">&nbsp;                    }</b>
    +&nbsp;                    break;
    +&nbsp;                default:
    +&nbsp;                    break;
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer timer(RequestEvent event) {
    +<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    +<b class="fc">&nbsp;                return null;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer.Context context(RequestEvent event) {
    +<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    +<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    +&nbsp;
    +<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    +<b class="fc">&nbsp;            this.meters = meters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    +<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    +<b class="fc">&nbsp;                if (meter != null) {</b>
    +<b class="fc">&nbsp;                    meter.mark();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    +&nbsp;
    +<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    +<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    +<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    +<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;                if (metric != null) {</b>
    +<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    +<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    +<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    +<b class="fc">&nbsp;                        metric.meter.mark();</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    +&nbsp;
    +<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    +<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    +<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    +<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;                if (metric != null) {</b>
    +<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    +<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    +<b class="fc">&nbsp;                        metric.mark(500);</b>
    +<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    +<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    +&nbsp;        private final RequestEventListener[] listeners;
    +&nbsp;
    +<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    +<b class="fc">&nbsp;            this.listeners = listeners;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(final RequestEvent event) {
    +<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    +<b class="fc">&nbsp;                listener.onEvent(event);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onEvent(ApplicationEvent event) {
    +<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    +<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    +<b class="fc">&nbsp;        return resourceModel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    +<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    +<b class="fc">&nbsp;        return subResourceModel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    +<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    +<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    +<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    +<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    +<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    +<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    +<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    +<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    +&nbsp;
    +<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    +<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    +<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    +<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    +<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    +<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    +<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    +<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    +<b class="fc">&nbsp;                }</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    +<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    +&nbsp;                new TimerRequestEventListener(timers, clock),
    +&nbsp;                new MeterRequestEventListener(meters),
    +&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    +&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    +&nbsp;
    +<b class="fc">&nbsp;        return listener;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    +<b class="fc">&nbsp;        T annotation = null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    +<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (annotation != null) {</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return annotation;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    +<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    +&nbsp;            return;
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    +<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    +<b class="fc">&nbsp;        if (trackFilters) {</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    +<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    +<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    +<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    +&nbsp;                              final ResourceMethod method,
    +&nbsp;                              final Timed timed,
    +&nbsp;                              final String... suffixes) {
    +<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    +<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    +&nbsp;                              final ResourceMethod method,
    +&nbsp;                              final Metered metered) {
    +<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    +<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    +&nbsp;                                       final String... suffixes) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;        final String metricName;
    +<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    +<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    +&nbsp;
    +&nbsp;        private final RequestEvent.Type type;
    +&nbsp;        private final Method method;
    +&nbsp;
    +<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    +<b class="fc">&nbsp;            this.type = type;</b>
    +<b class="fc">&nbsp;            this.method = method;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod finished(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean equals(Object o) {
    +<b class="fc">&nbsp;            if (this == o) {</b>
    +<b class="nc">&nbsp;                return true;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (type != that.type) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return method.equals(that.method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public int hashCode() {
    +<b class="fc">&nbsp;            int result = type.hashCode();</b>
    +<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    +<b class="fc">&nbsp;            return result;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/sources/source-2.html
    new file mode 100644
    index 0000000000..59c2e01035
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/sources/source-2.html
    @@ -0,0 +1,201 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricsFeature</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jersey3</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey3)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricsFeature</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey3;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Reservoir;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;import jakarta.ws.rs.core.Feature;
    +&nbsp;import jakarta.ws.rs.core.FeatureContext;
    +&nbsp;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    +&nbsp; * for recording request events.
    +&nbsp; */
    +&nbsp;public class MetricsFeature implements Feature {
    +&nbsp;
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final boolean trackFilters;
    +&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    +<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    +<b class="fc">&nbsp;        this(registry, clock, false);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    +<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    +<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public MetricsFeature(String registryName) {
    +<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A call-back method called when the feature is to be enabled in a given
    +&nbsp;     * runtime configuration scope.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    +&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    +&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    +&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    +&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
    +&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
    +&nbsp;     * would return {@code false}.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     *
    +&nbsp;     * @param context configurable context in which the feature should be enabled.
    +&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    +&nbsp;     * otherwise.
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public boolean configure(FeatureContext context) {
    +<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    +<b class="fc">&nbsp;        return true;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index.html
    new file mode 100644
    index 0000000000..f1a4465717
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..ed741daf7e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..fedb437c24
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..5d95e4e3ca
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_CLASS.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..da73659f08
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..234b4aafec
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_LINE.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..4d352e096d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..dcbad0c369
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_METHOD.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..082c74e582
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..80e21dd387
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jetty9</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jetty9</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
    +  </span>
    +  <span class="absValue">
    +    (73/116)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-1.html
    new file mode 100644
    index 0000000000..00390f8f71
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-1.html
    @@ -0,0 +1,193 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedConnectionFactory</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jetty9</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedConnectionFactory (com.codahale.metrics.jetty9)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedConnectionFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedConnectionFactory$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.eclipse.jetty.io.Connection;
    +&nbsp;import org.eclipse.jetty.io.EndPoint;
    +&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    +&nbsp;import org.eclipse.jetty.server.Connector;
    +&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;
    +<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    +&nbsp;    private final ConnectionFactory connectionFactory;
    +&nbsp;    private final Timer timer;
    +&nbsp;    private final Counter counter;
    +&nbsp;
    +&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    +<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    +<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    +<b class="fc">&nbsp;        this.timer = timer;</b>
    +<b class="fc">&nbsp;        this.counter = counter;</b>
    +<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getProtocol() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public List&lt;String&gt; getProtocols() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    +<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    +<b class="fc">&nbsp;        connection.addListener(new Connection.Listener() {</b>
    +&nbsp;            private Timer.Context context;
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onOpened(Connection connection) {
    +<b class="fc">&nbsp;                this.context = timer.time();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.inc();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onClosed(Connection connection) {
    +<b class="fc">&nbsp;                context.stop();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.dec();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        return connection;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-2.html
    new file mode 100644
    index 0000000000..e896b33c01
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-2.html
    @@ -0,0 +1,754 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHandler</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jetty9</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHandler (com.codahale.metrics.jetty9)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHandler</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (115/135)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$7</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
    +&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.server.Handler;
    +&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    +&nbsp;
    +&nbsp;import javax.servlet.AsyncEvent;
    +&nbsp;import javax.servlet.AsyncListener;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    +&nbsp; * instance.
    +&nbsp; */
    +<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    +&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    +&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    +&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    +&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    +&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    +&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    +&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    +&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    +&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    +&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    +&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    +&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    +&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    +&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    +&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    +&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    +&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    +&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    +&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;
    +&nbsp;    private String name;
    +&nbsp;    private final String prefix;
    +&nbsp;
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    private Timer requests;
    +&nbsp;
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    private Timer dispatches;
    +&nbsp;
    +&nbsp;    // the number of active requests
    +&nbsp;    private Counter activeRequests;
    +&nbsp;
    +&nbsp;    // the number of active dispatches
    +&nbsp;    private Counter activeDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    private Counter activeSuspended;
    +&nbsp;
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    private Meter asyncDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    private Meter asyncTimeouts;
    +&nbsp;
    +&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    private List&lt;Meter&gt; responses;
    +&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;
    +&nbsp;    private Timer getRequests;
    +&nbsp;    private Timer postRequests;
    +&nbsp;    private Timer headRequests;
    +&nbsp;    private Timer putRequests;
    +&nbsp;    private Timer deleteRequests;
    +&nbsp;    private Timer optionsRequests;
    +&nbsp;    private Timer traceRequests;
    +&nbsp;    private Timer connectRequests;
    +&nbsp;    private Timer moveRequests;
    +&nbsp;    private Timer otherRequests;
    +&nbsp;
    +&nbsp;    private AsyncListener listener;
    +&nbsp;
    +&nbsp;    private HttpChannelState.State DISPATCHED_HACK;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    +<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            DISPATCHED_HACK = HttpChannelState.State.valueOf(&quot;HANDLING&quot;);</b>
    +<b class="nc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    +<b class="nc">&nbsp;            DISPATCHED_HACK = HttpChannelState.State.valueOf(&quot;DISPATCHED&quot;);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getName() {
    +<b class="fc">&nbsp;        return name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setName(String name) {
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    +&nbsp;            ));
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                public Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    +<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    +<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    +<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void handle(String path,
    +&nbsp;                       Request request,
    +&nbsp;                       HttpServletRequest httpRequest,
    +&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="nc">&nbsp;            activeSuspended.dec();</b>
    +<b class="nc">&nbsp;            if (state.getState() == DISPATCHED_HACK) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            activeDispatches.dec();</b>
    +<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.inc();</b>
    +<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    +&nbsp;            }
    +&nbsp;            // else onCompletion will handle it.
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="fc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    };
    +&nbsp;
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    +<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    +<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    +<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.dec();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-3.html
    new file mode 100644
    index 0000000000..ad32a054cb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-3.html
    @@ -0,0 +1,708 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jetty9</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (com.codahale.metrics.jetty9)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpChannelListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (20/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.6%
    +  </span>
    +  <span class="absValue">
    +    (90/109)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$7</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.7%
    +  </span>
    +  <span class="absValue">
    +    (8/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import javax.servlet.AsyncEvent;
    +&nbsp;import javax.servlet.AsyncListener;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
    +&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    +&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    +&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    +&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    +&nbsp; *
    +&nbsp; * @since TBD
    +&nbsp; */
    +<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    +&nbsp;    implements Listener
    +&nbsp;{
    +<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    private final Timer requests;
    +&nbsp;
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    private final Timer dispatches;
    +&nbsp;
    +&nbsp;    // the number of active requests
    +&nbsp;    private final Counter activeRequests;
    +&nbsp;
    +&nbsp;    // the number of active dispatches
    +&nbsp;    private final Counter activeDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    private final Counter activeSuspended;
    +&nbsp;
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    private final Meter asyncDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    private final Meter asyncTimeouts;
    +&nbsp;
    +&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    private final List&lt;Meter&gt; responses;
    +&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;    private final String prefix;
    +&nbsp;    private final Timer getRequests;
    +&nbsp;    private final Timer postRequests;
    +&nbsp;    private final Timer headRequests;
    +&nbsp;    private final Timer putRequests;
    +&nbsp;    private final Timer deleteRequests;
    +&nbsp;    private final Timer optionsRequests;
    +&nbsp;    private final Timer traceRequests;
    +&nbsp;    private final Timer connectRequests;
    +&nbsp;    private final Timer moveRequests;
    +&nbsp;    private final Timer otherRequests;
    +&nbsp;
    +&nbsp;    private final AsyncListener listener;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param pref     the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    +<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param pref     the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    +<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    +<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                    requests.getOneMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                    requests.getFiveMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                    requests.getFifteenMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                    requests.getOneMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                    requests.getFiveMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                    requests.getFifteenMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestBegin(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onBeforeDispatch(final Request request) {
    +<b class="fc">&nbsp;        before(request);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onAfterDispatch(final Request request) {
    +<b class="fc">&nbsp;        after(request);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestContentEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestTrailers(final Request request) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseBegin(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseCommit(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onComplete(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    private void before(final Request request) {
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            activeSuspended.dec();</b>
    +<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void after(final Request request) {
    +<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    +<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.dec();</b>
    +<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    +<b class="fc">&nbsp;            activeSuspended.inc();</b>
    +<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    +&nbsp;        }
    +&nbsp;        // else onCompletion will handle it.
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="fc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    };
    +&nbsp;
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    +<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    +<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    +<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    +<b class="fc">&nbsp;                activeSuspended.dec();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-4.html
    new file mode 100644
    index 0000000000..37a43ac044
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-4.html
    @@ -0,0 +1,286 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jetty9</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (com.codahale.metrics.jetty9)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedQueuedThreadPool</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (10/12)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import org.eclipse.jetty.util.annotation.Name;
    +&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    +&nbsp;
    +&nbsp;import java.util.concurrent.BlockingQueue;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    +&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    +&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    +&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    +&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    +&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;    private String prefix;
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, 200);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    +<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, queue);</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getPrefix() {
    +<b class="nc">&nbsp;        return prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setPrefix(String prefix) {
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    +&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    +&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    +<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index.html
    new file mode 100644
    index 0000000000..6171074445
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..cc16599539
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..3b519c73c0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..7538a9b7eb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_CLASS.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..ce4693fb2a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..1c29dd6af8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_LINE.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..fffc535f19
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..3c6db143ed
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_METHOD.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..bc0fdaaef3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..721a1a4e1c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jmx</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jmx</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (78/90)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (168/236)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-1.html
    new file mode 100644
    index 0000000000..f9256897fd
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-1.html
    @@ -0,0 +1,173 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > DefaultObjectNameFactory</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jmx</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: DefaultObjectNameFactory (com.codahale.metrics.jmx)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">DefaultObjectNameFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.8%
    +  </span>
    +  <span class="absValue">
    +    (17/24)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    +&nbsp;
    +&nbsp;import java.util.Hashtable;
    +&nbsp;
    +&nbsp;import javax.management.MalformedObjectNameException;
    +&nbsp;import javax.management.ObjectName;
    +&nbsp;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +<b class="fc">&nbsp;public class DefaultObjectNameFactory implements ObjectNameFactory {</b>
    +&nbsp;
    +<b class="fc">&nbsp;    private static final char[] QUOTABLE_CHARS = new char[] {&#39;,&#39;, &#39;=&#39;, &#39;:&#39;, &#39;&quot;&#39;};</b>
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public ObjectName createName(String type, String domain, String name) {
    +&nbsp;        try {
    +&nbsp;            ObjectName objectName;
    +<b class="fc">&nbsp;            Hashtable&lt;String, String&gt; properties = new Hashtable&lt;&gt;();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            properties.put(&quot;name&quot;, name);</b>
    +<b class="fc">&nbsp;            properties.put(&quot;type&quot;, type);</b>
    +<b class="fc">&nbsp;            objectName = new ObjectName(domain, properties);</b>
    +&nbsp;
    +&nbsp;            /*
    +&nbsp;             * The only way we can find out if we need to quote the properties is by
    +&nbsp;             * checking an ObjectName that we&#39;ve constructed.
    +&nbsp;             */
    +<b class="fc">&nbsp;            if (objectName.isDomainPattern()) {</b>
    +<b class="nc">&nbsp;                domain = ObjectName.quote(domain);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (objectName.isPropertyValuePattern(&quot;name&quot;) || shouldQuote(objectName.getKeyProperty(&quot;name&quot;))) {</b>
    +<b class="fc">&nbsp;                properties.put(&quot;name&quot;, ObjectName.quote(name));</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (objectName.isPropertyValuePattern(&quot;type&quot;) || shouldQuote(objectName.getKeyProperty(&quot;type&quot;))) {</b>
    +<b class="nc">&nbsp;                properties.put(&quot;type&quot;, ObjectName.quote(type));</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            objectName = new ObjectName(domain, properties);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            return objectName;</b>
    +<b class="nc">&nbsp;        } catch (MalformedObjectNameException e) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                return new ObjectName(domain, &quot;name&quot;, ObjectName.quote(name));</b>
    +<b class="nc">&nbsp;            } catch (MalformedObjectNameException e1) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register {} {}&quot;, type, name, e1);</b>
    +<b class="nc">&nbsp;                throw new RuntimeException(e1);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Determines whether the value requires quoting.
    +&nbsp;     * According to the {@link ObjectName} documentation, values can be quoted or unquoted. Unquoted
    +&nbsp;     * values may not contain any of the characters comma, equals, colon, or quote.
    +&nbsp;     *
    +&nbsp;     * @param value a value to test
    +&nbsp;     * @return true when it requires quoting, false otherwise
    +&nbsp;     */
    +&nbsp;    private boolean shouldQuote(final String value) {
    +<b class="fc">&nbsp;        for (char quotableChar : QUOTABLE_CHARS) {</b>
    +<b class="fc">&nbsp;            if (value.indexOf(quotableChar) != -1) {</b>
    +<b class="fc">&nbsp;                return true;</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        return false;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-2.html
    new file mode 100644
    index 0000000000..4fdf892776
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-2.html
    @@ -0,0 +1,1061 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > JmxReporter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jmx</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: JmxReporter (com.codahale.metrics.jmx)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">JmxReporter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">JmxReporter$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$AbstractBean</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (9/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.4%
    +  </span>
    +  <span class="absValue">
    +    (27/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxCounter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxCounterMBean</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxGauge</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxGaugeMBean</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxHistogram</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (14/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (16/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxHistogramMBean</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.8%
    +  </span>
    +  <span class="absValue">
    +    (11/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    49.5%
    +  </span>
    +  <span class="absValue">
    +    (50/101)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxMeter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxMeterMBean</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxTimer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxTimerMBean</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$MetricMBean</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$MetricTimeUnits</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86%
    +  </span>
    +  <span class="absValue">
    +    (74/86)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.2%
    +  </span>
    +  <span class="absValue">
    +    (151/212)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Histogram;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.Metered;
    +&nbsp;import com.codahale.metrics.MetricFilter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.MetricRegistryListener;
    +&nbsp;import com.codahale.metrics.Reporter;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import javax.management.InstanceAlreadyExistsException;
    +&nbsp;import javax.management.InstanceNotFoundException;
    +&nbsp;import javax.management.JMException;
    +&nbsp;import javax.management.MBeanRegistrationException;
    +&nbsp;import javax.management.MBeanServer;
    +&nbsp;import javax.management.ObjectInstance;
    +&nbsp;import javax.management.ObjectName;
    +&nbsp;import java.io.Closeable;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A reporter which listens for new metrics and exposes them as namespaced MBeans.
    +&nbsp; */
    +<b class="fc">&nbsp;public class JmxReporter implements Reporter, Closeable {</b>
    +&nbsp;    /**
    +&nbsp;     * Returns a new {@link Builder} for {@link JmxReporter}.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry to report
    +&nbsp;     * @return a {@link Builder} instance for a {@link JmxReporter}
    +&nbsp;     */
    +&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    +<b class="fc">&nbsp;        return new Builder(registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A builder for {@link JmxReporter} instances. Defaults to using the default MBean server and
    +&nbsp;     * not filtering metrics.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class Builder {</b>
    +&nbsp;        private final MetricRegistry registry;
    +&nbsp;        private MBeanServer mBeanServer;
    +&nbsp;        private TimeUnit rateUnit;
    +&nbsp;        private TimeUnit durationUnit;
    +&nbsp;        private ObjectNameFactory objectNameFactory;
    +<b class="fc">&nbsp;        private MetricFilter filter = MetricFilter.ALL;</b>
    +&nbsp;        private String domain;
    +&nbsp;        private Map&lt;String, TimeUnit&gt; specificDurationUnits;
    +&nbsp;        private Map&lt;String, TimeUnit&gt; specificRateUnits;
    +&nbsp;
    +<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;            this.registry = registry;</b>
    +<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    +<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    +<b class="fc">&nbsp;            this.domain = &quot;metrics&quot;;</b>
    +<b class="fc">&nbsp;            this.objectNameFactory = new DefaultObjectNameFactory();</b>
    +<b class="fc">&nbsp;            this.specificDurationUnits = Collections.emptyMap();</b>
    +<b class="fc">&nbsp;            this.specificRateUnits = Collections.emptyMap();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Register MBeans with the given {@link MBeanServer}.
    +&nbsp;         *
    +&nbsp;         * @param mBeanServer an {@link MBeanServer}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder registerWith(MBeanServer mBeanServer) {
    +<b class="fc">&nbsp;            this.mBeanServer = mBeanServer;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert rates to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param rateUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    +<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder createsObjectNamesWith(ObjectNameFactory onFactory) {
    +<b class="fc">&nbsp;            if (onFactory == null) {</b>
    +<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;null objectNameFactory&quot;);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            this.objectNameFactory = onFactory;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert durations to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param durationUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    +<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Only report metrics which match the given filter.
    +&nbsp;         *
    +&nbsp;         * @param filter a {@link MetricFilter}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder filter(MetricFilter filter) {
    +<b class="fc">&nbsp;            this.filter = filter;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder inDomain(String domain) {
    +<b class="fc">&nbsp;            this.domain = domain;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use specific {@link TimeUnit}s for the duration of the metrics with these names.
    +&nbsp;         *
    +&nbsp;         * @param specificDurationUnits a map of metric names and specific {@link TimeUnit}s
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder specificDurationUnits(Map&lt;String, TimeUnit&gt; specificDurationUnits) {
    +<b class="nc">&nbsp;            this.specificDurationUnits = Collections.unmodifiableMap(specificDurationUnits);</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use specific {@link TimeUnit}s for the rate of the metrics with these names.
    +&nbsp;         *
    +&nbsp;         * @param specificRateUnits a map of metric names and specific {@link TimeUnit}s
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder specificRateUnits(Map&lt;String, TimeUnit&gt; specificRateUnits) {
    +<b class="nc">&nbsp;            this.specificRateUnits = Collections.unmodifiableMap(specificRateUnits);</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Builds a {@link JmxReporter} with the given properties.
    +&nbsp;         *
    +&nbsp;         * @return a {@link JmxReporter}
    +&nbsp;         */
    +&nbsp;        public JmxReporter build() {
    +<b class="fc">&nbsp;            final MetricTimeUnits timeUnits = new MetricTimeUnits(rateUnit, durationUnit, specificRateUnits, specificDurationUnits);</b>
    +<b class="fc">&nbsp;            if (mBeanServer == null) {</b>
    +<b class="fc">&nbsp;                mBeanServer = ManagementFactory.getPlatformMBeanServer();</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return new JmxReporter(mBeanServer, domain, registry, filter, timeUnits, objectNameFactory);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);</b>
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    +&nbsp;    public interface MetricMBean {
    +&nbsp;        ObjectName objectName();
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private abstract static class AbstractBean implements MetricMBean {
    +&nbsp;        private final ObjectName objectName;
    +&nbsp;
    +<b class="fc">&nbsp;        AbstractBean(ObjectName objectName) {</b>
    +<b class="fc">&nbsp;            this.objectName = objectName;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public ObjectName objectName() {
    +<b class="nc">&nbsp;            return objectName;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    +&nbsp;    public interface JmxGaugeMBean extends MetricMBean {
    +&nbsp;        Object getValue();
    +&nbsp;        Number getNumber();
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class JmxGauge extends AbstractBean implements JmxGaugeMBean {</b>
    +&nbsp;        private final Gauge&lt;?&gt; metric;
    +&nbsp;
    +&nbsp;        private JmxGauge(Gauge&lt;?&gt; metric, ObjectName objectName) {
    +<b class="fc">&nbsp;            super(objectName);</b>
    +<b class="fc">&nbsp;            this.metric = metric;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public Object getValue() {
    +<b class="fc">&nbsp;            return metric.getValue();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public Number getNumber() {
    +<b class="fc">&nbsp;            Object value = metric.getValue();</b>
    +<b class="fc">&nbsp;            return value instanceof Number ? (Number) value : 0;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    +&nbsp;    public interface JmxCounterMBean extends MetricMBean {
    +&nbsp;        long getCount();
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class JmxCounter extends AbstractBean implements JmxCounterMBean {</b>
    +&nbsp;        private final Counter metric;
    +&nbsp;
    +&nbsp;        private JmxCounter(Counter metric, ObjectName objectName) {
    +<b class="fc">&nbsp;            super(objectName);</b>
    +<b class="fc">&nbsp;            this.metric = metric;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long getCount() {
    +<b class="fc">&nbsp;            return metric.getCount();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    +&nbsp;    public interface JmxHistogramMBean extends MetricMBean {
    +&nbsp;        long getCount();
    +&nbsp;
    +&nbsp;        long getMin();
    +&nbsp;
    +&nbsp;        long getMax();
    +&nbsp;
    +&nbsp;        double getMean();
    +&nbsp;
    +&nbsp;        double getStdDev();
    +&nbsp;
    +&nbsp;        double get50thPercentile();
    +&nbsp;
    +&nbsp;        double get75thPercentile();
    +&nbsp;
    +&nbsp;        double get95thPercentile();
    +&nbsp;
    +&nbsp;        double get98thPercentile();
    +&nbsp;
    +&nbsp;        double get99thPercentile();
    +&nbsp;
    +&nbsp;        double get999thPercentile();
    +&nbsp;
    +&nbsp;        long[] values();
    +&nbsp;
    +&nbsp;        long getSnapshotSize();
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class JmxHistogram implements JmxHistogramMBean {</b>
    +&nbsp;        private final ObjectName objectName;
    +&nbsp;        private final Histogram metric;
    +&nbsp;
    +<b class="fc">&nbsp;        private JmxHistogram(Histogram metric, ObjectName objectName) {</b>
    +<b class="fc">&nbsp;            this.metric = metric;</b>
    +<b class="fc">&nbsp;            this.objectName = objectName;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public ObjectName objectName() {
    +<b class="nc">&nbsp;            return objectName;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get50thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMedian();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long getCount() {
    +<b class="fc">&nbsp;            return metric.getCount();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long getMin() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMin();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long getMax() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMax();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getMean() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMean();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getStdDev() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getStdDev();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get75thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get75thPercentile();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get95thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get95thPercentile();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get98thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get98thPercentile();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get99thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get99thPercentile();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get999thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get999thPercentile();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long[] values() {
    +<b class="nc">&nbsp;            return metric.getSnapshot().getValues();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long getSnapshotSize() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().size();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    +&nbsp;    public interface JmxMeterMBean extends MetricMBean {
    +&nbsp;        long getCount();
    +&nbsp;
    +&nbsp;        double getMeanRate();
    +&nbsp;
    +&nbsp;        double getOneMinuteRate();
    +&nbsp;
    +&nbsp;        double getFiveMinuteRate();
    +&nbsp;
    +&nbsp;        double getFifteenMinuteRate();
    +&nbsp;
    +&nbsp;        String getRateUnit();
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class JmxMeter extends AbstractBean implements JmxMeterMBean {</b>
    +&nbsp;        private final Metered metric;
    +&nbsp;        private final double rateFactor;
    +&nbsp;        private final String rateUnit;
    +&nbsp;
    +&nbsp;        private JmxMeter(Metered metric, ObjectName objectName, TimeUnit rateUnit) {
    +<b class="fc">&nbsp;            super(objectName);</b>
    +<b class="fc">&nbsp;            this.metric = metric;</b>
    +<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    +<b class="fc">&nbsp;            this.rateUnit = (&quot;events/&quot; + calculateRateUnit(rateUnit)).intern();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long getCount() {
    +<b class="fc">&nbsp;            return metric.getCount();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getMeanRate() {
    +<b class="fc">&nbsp;            return metric.getMeanRate() * rateFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getOneMinuteRate() {
    +<b class="fc">&nbsp;            return metric.getOneMinuteRate() * rateFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getFiveMinuteRate() {
    +<b class="fc">&nbsp;            return metric.getFiveMinuteRate() * rateFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getFifteenMinuteRate() {
    +<b class="fc">&nbsp;            return metric.getFifteenMinuteRate() * rateFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getRateUnit() {
    +<b class="fc">&nbsp;            return rateUnit;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private String calculateRateUnit(TimeUnit unit) {
    +<b class="fc">&nbsp;            final String s = unit.toString().toLowerCase(Locale.US);</b>
    +<b class="fc">&nbsp;            return s.substring(0, s.length() - 1);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    +&nbsp;    public interface JmxTimerMBean extends JmxMeterMBean {
    +&nbsp;        double getMin();
    +&nbsp;
    +&nbsp;        double getMax();
    +&nbsp;
    +&nbsp;        double getMean();
    +&nbsp;
    +&nbsp;        double getStdDev();
    +&nbsp;
    +&nbsp;        double get50thPercentile();
    +&nbsp;
    +&nbsp;        double get75thPercentile();
    +&nbsp;
    +&nbsp;        double get95thPercentile();
    +&nbsp;
    +&nbsp;        double get98thPercentile();
    +&nbsp;
    +&nbsp;        double get99thPercentile();
    +&nbsp;
    +&nbsp;        double get999thPercentile();
    +&nbsp;
    +&nbsp;        long[] values();
    +&nbsp;
    +&nbsp;        String getDurationUnit();
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static class JmxTimer extends JmxMeter implements JmxTimerMBean {</b>
    +&nbsp;        private final Timer metric;
    +&nbsp;        private final double durationFactor;
    +&nbsp;        private final String durationUnit;
    +&nbsp;
    +&nbsp;        private JmxTimer(Timer metric,
    +&nbsp;                         ObjectName objectName,
    +&nbsp;                         TimeUnit rateUnit,
    +&nbsp;                         TimeUnit durationUnit) {
    +<b class="fc">&nbsp;            super(metric, objectName, rateUnit);</b>
    +<b class="fc">&nbsp;            this.metric = metric;</b>
    +<b class="fc">&nbsp;            this.durationFactor = 1.0 / durationUnit.toNanos(1);</b>
    +<b class="fc">&nbsp;            this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get50thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMedian() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getMin() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMin() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getMax() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMax() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getMean() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMean() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getStdDev() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getStdDev() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get75thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get75thPercentile() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get95thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get95thPercentile() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get98thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get98thPercentile() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get99thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get99thPercentile() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get999thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get999thPercentile() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long[] values() {
    +<b class="nc">&nbsp;            return metric.getSnapshot().getValues();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getDurationUnit() {
    +<b class="fc">&nbsp;            return durationUnit;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class JmxListener implements MetricRegistryListener {</b>
    +&nbsp;        private final String name;
    +&nbsp;        private final MBeanServer mBeanServer;
    +&nbsp;        private final MetricFilter filter;
    +&nbsp;        private final MetricTimeUnits timeUnits;
    +&nbsp;        private final Map&lt;ObjectName, ObjectName&gt; registered;
    +&nbsp;        private final ObjectNameFactory objectNameFactory;
    +&nbsp;
    +<b class="fc">&nbsp;        private JmxListener(MBeanServer mBeanServer, String name, MetricFilter filter, MetricTimeUnits timeUnits, ObjectNameFactory objectNameFactory) {</b>
    +<b class="fc">&nbsp;            this.mBeanServer = mBeanServer;</b>
    +<b class="fc">&nbsp;            this.name = name;</b>
    +<b class="fc">&nbsp;            this.filter = filter;</b>
    +<b class="fc">&nbsp;            this.timeUnits = timeUnits;</b>
    +<b class="fc">&nbsp;            this.registered = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;            this.objectNameFactory = objectNameFactory;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private void registerMBean(Object mBean, ObjectName objectName) throws InstanceAlreadyExistsException, JMException {
    +<b class="fc">&nbsp;            ObjectInstance objectInstance = mBeanServer.registerMBean(mBean, objectName);</b>
    +<b class="fc">&nbsp;            if (objectInstance != null) {</b>
    +&nbsp;                // the websphere mbeanserver rewrites the objectname to include
    +&nbsp;                // cell, node &amp; server info
    +&nbsp;                // make sure we capture the new objectName for unregistration
    +<b class="fc">&nbsp;                registered.put(objectName, objectInstance.getObjectName());</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                registered.put(objectName, objectName);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private void unregisterMBean(ObjectName originalObjectName) throws InstanceNotFoundException, MBeanRegistrationException {
    +<b class="fc">&nbsp;            ObjectName storedObjectName = registered.remove(originalObjectName);</b>
    +<b class="fc">&nbsp;            if (storedObjectName != null) {</b>
    +<b class="fc">&nbsp;                mBeanServer.unregisterMBean(storedObjectName);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                mBeanServer.unregisterMBean(originalObjectName);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    +&nbsp;            try {
    +<b class="fc">&nbsp;                if (filter.matches(name, gauge)) {</b>
    +<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;gauges&quot;, name);</b>
    +<b class="fc">&nbsp;                    registerMBean(new JmxGauge(gauge, objectName), objectName);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    +<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register gauge&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (JMException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register gauge&quot;, e);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onGaugeRemoved(String name) {
    +&nbsp;            try {
    +<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;gauges&quot;, name);</b>
    +<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    +<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister gauge&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister gauge&quot;, e);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onCounterAdded(String name, Counter counter) {
    +&nbsp;            try {
    +<b class="fc">&nbsp;                if (filter.matches(name, counter)) {</b>
    +<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;counters&quot;, name);</b>
    +<b class="fc">&nbsp;                    registerMBean(new JmxCounter(counter, objectName), objectName);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    +<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register counter&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (JMException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register counter&quot;, e);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onCounterRemoved(String name) {
    +&nbsp;            try {
    +<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;counters&quot;, name);</b>
    +<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    +<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister counter&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister counter&quot;, e);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onHistogramAdded(String name, Histogram histogram) {
    +&nbsp;            try {
    +<b class="fc">&nbsp;                if (filter.matches(name, histogram)) {</b>
    +<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;histograms&quot;, name);</b>
    +<b class="fc">&nbsp;                    registerMBean(new JmxHistogram(histogram, objectName), objectName);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    +<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register histogram&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (JMException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register histogram&quot;, e);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onHistogramRemoved(String name) {
    +&nbsp;            try {
    +<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;histograms&quot;, name);</b>
    +<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    +<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister histogram&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister histogram&quot;, e);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onMeterAdded(String name, Meter meter) {
    +&nbsp;            try {
    +<b class="fc">&nbsp;                if (filter.matches(name, meter)) {</b>
    +<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;meters&quot;, name);</b>
    +<b class="fc">&nbsp;                    registerMBean(new JmxMeter(meter, objectName, timeUnits.rateFor(name)), objectName);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    +<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register meter&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (JMException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register meter&quot;, e);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onMeterRemoved(String name) {
    +&nbsp;            try {
    +<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;meters&quot;, name);</b>
    +<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    +<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister meter&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister meter&quot;, e);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimerAdded(String name, Timer timer) {
    +&nbsp;            try {
    +<b class="fc">&nbsp;                if (filter.matches(name, timer)) {</b>
    +<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;timers&quot;, name);</b>
    +<b class="fc">&nbsp;                    registerMBean(new JmxTimer(timer, objectName, timeUnits.rateFor(name), timeUnits.durationFor(name)), objectName);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    +<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register timer&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (JMException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register timer&quot;, e);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimerRemoved(String name) {
    +&nbsp;            try {
    +<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;timers&quot;, name);</b>
    +<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    +<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister timer&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister timer&quot;, e);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private ObjectName createName(String type, String name) {
    +<b class="fc">&nbsp;            return objectNameFactory.createName(type, this.name, name);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        void unregisterAll() {
    +<b class="fc">&nbsp;            for (ObjectName name : registered.keySet()) {</b>
    +&nbsp;                try {
    +<b class="fc">&nbsp;                    unregisterMBean(name);</b>
    +<b class="nc">&nbsp;                } catch (InstanceNotFoundException e) {</b>
    +<b class="nc">&nbsp;                    LOGGER.debug(&quot;Unable to unregister metric&quot;, e);</b>
    +<b class="nc">&nbsp;                } catch (MBeanRegistrationException e) {</b>
    +<b class="nc">&nbsp;                    LOGGER.warn(&quot;Unable to unregister metric&quot;, e);</b>
    +<b class="fc">&nbsp;                }</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            registered.clear();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class MetricTimeUnits {
    +&nbsp;        private final TimeUnit defaultRate;
    +&nbsp;        private final TimeUnit defaultDuration;
    +&nbsp;        private final Map&lt;String, TimeUnit&gt; rateOverrides;
    +&nbsp;        private final Map&lt;String, TimeUnit&gt; durationOverrides;
    +&nbsp;
    +&nbsp;        MetricTimeUnits(TimeUnit defaultRate,
    +&nbsp;                        TimeUnit defaultDuration,
    +&nbsp;                        Map&lt;String, TimeUnit&gt; rateOverrides,
    +<b class="fc">&nbsp;                        Map&lt;String, TimeUnit&gt; durationOverrides) {</b>
    +<b class="fc">&nbsp;            this.defaultRate = defaultRate;</b>
    +<b class="fc">&nbsp;            this.defaultDuration = defaultDuration;</b>
    +<b class="fc">&nbsp;            this.rateOverrides = rateOverrides;</b>
    +<b class="fc">&nbsp;            this.durationOverrides = durationOverrides;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public TimeUnit durationFor(String name) {
    +<b class="fc">&nbsp;            return durationOverrides.getOrDefault(name, defaultDuration);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public TimeUnit rateFor(String name) {
    +<b class="fc">&nbsp;            return rateOverrides.getOrDefault(name, defaultRate);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final JmxListener listener;
    +&nbsp;
    +&nbsp;    private JmxReporter(MBeanServer mBeanServer,
    +&nbsp;                        String domain,
    +&nbsp;                        MetricRegistry registry,
    +&nbsp;                        MetricFilter filter,
    +&nbsp;                        MetricTimeUnits timeUnits,
    +<b class="fc">&nbsp;                        ObjectNameFactory objectNameFactory) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.listener = new JmxListener(mBeanServer, domain, filter, timeUnits, objectNameFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Starts the reporter.
    +&nbsp;     */
    +&nbsp;    public void start() {
    +<b class="fc">&nbsp;        registry.addListener(listener);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Stops the reporter.
    +&nbsp;     */
    +&nbsp;    public void stop() {
    +<b class="fc">&nbsp;        registry.removeListener(listener);</b>
    +<b class="fc">&nbsp;        listener.unregisterAll();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Stops the reporter.
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void close() {
    +<b class="nc">&nbsp;        stop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Visible for testing
    +&nbsp;     */
    +&nbsp;    ObjectNameFactory getObjectNameFactory() {
    +<b class="fc">&nbsp;        return listener.objectNameFactory;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-3.html
    new file mode 100644
    index 0000000000..52db83b2c8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-3.html
    @@ -0,0 +1,85 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ObjectNameFactory</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jmx</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ObjectNameFactory (com.codahale.metrics.jmx)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +  <tr>
    +    <td class="name">ObjectNameFactory$MockitoMock$e52ggOF9</td>
    +  </tr>
    +  <tr>
    +    <td class="name">ObjectNameFactory$MockitoMock$e52ggOF9$auxiliary$32SCHgva</td>
    +  </tr>
    +  <tr>
    +    <td class="name">ObjectNameFactory$MockitoMock$e52ggOF9$auxiliary$g7yRCWs6</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    +&nbsp;
    +&nbsp;import javax.management.ObjectName;
    +&nbsp;
    +&nbsp;public interface ObjectNameFactory {
    +&nbsp;
    +&nbsp;    ObjectName createName(String type, String domain, String name);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index.html
    new file mode 100644
    index 0000000000..e63a6da580
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..9004b7c58e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..057a9a11e9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..ce6404c6ff
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_CLASS.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..f19e36b165
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..b493720c10
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_LINE.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..cbf31a92f2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..0b8baefc92
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_METHOD.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..d12b367dd8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..6dcf2d7c4f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.json</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.json</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99.2%
    +  </span>
    +  <span class="absValue">
    +    (131/132)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/sources/source-1.html
    new file mode 100644
    index 0000000000..a079f8f0cc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/sources/source-1.html
    @@ -0,0 +1,217 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheckModule</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.json</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheckModule (com.codahale.metrics.json)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HealthCheckModule</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HealthCheckModule$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheckModule$HealthCheckResultSerializer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (27/27)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.json;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.health.HealthCheck;
    +&nbsp;import com.fasterxml.jackson.core.JsonGenerator;
    +&nbsp;import com.fasterxml.jackson.core.Version;
    +&nbsp;import com.fasterxml.jackson.databind.Module;
    +&nbsp;import com.fasterxml.jackson.databind.SerializerProvider;
    +&nbsp;import com.fasterxml.jackson.databind.module.SimpleSerializers;
    +&nbsp;import com.fasterxml.jackson.databind.ser.std.StdSerializer;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.Map;
    +&nbsp;
    +<b class="fc">&nbsp;public class HealthCheckModule extends Module {</b>
    +<b class="fc">&nbsp;    private static class HealthCheckResultSerializer extends StdSerializer&lt;HealthCheck.Result&gt; {</b>
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private HealthCheckResultSerializer() {
    +<b class="fc">&nbsp;            super(HealthCheck.Result.class);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(HealthCheck.Result result,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +<b class="fc">&nbsp;            json.writeBooleanField(&quot;healthy&quot;, result.isHealthy());</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final String message = result.getMessage();</b>
    +<b class="fc">&nbsp;            if (message != null) {</b>
    +<b class="fc">&nbsp;                json.writeStringField(&quot;message&quot;, message);</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            serializeThrowable(json, result.getError(), &quot;error&quot;);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;duration&quot;, result.getDuration());</b>
    +&nbsp;
    +<b class="fc">&nbsp;            Map&lt;String, Object&gt; details = result.getDetails();</b>
    +<b class="fc">&nbsp;            if (details != null &amp;&amp; !details.isEmpty()) {</b>
    +<b class="fc">&nbsp;                for (Map.Entry&lt;String, Object&gt; e : details.entrySet()) {</b>
    +<b class="fc">&nbsp;                    json.writeObjectField(e.getKey(), e.getValue());</b>
    +<b class="fc">&nbsp;                }</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            json.writeStringField(&quot;timestamp&quot;, result.getTimestamp());</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private void serializeThrowable(JsonGenerator json, Throwable error, String name) throws IOException {
    +<b class="fc">&nbsp;            if (error != null) {</b>
    +<b class="fc">&nbsp;                json.writeObjectFieldStart(name);</b>
    +<b class="fc">&nbsp;                json.writeStringField(&quot;type&quot;, error.getClass().getTypeName());</b>
    +<b class="fc">&nbsp;                json.writeStringField(&quot;message&quot;, error.getMessage());</b>
    +<b class="fc">&nbsp;                json.writeArrayFieldStart(&quot;stack&quot;);</b>
    +<b class="fc">&nbsp;                for (StackTraceElement element : error.getStackTrace()) {</b>
    +<b class="fc">&nbsp;                    json.writeString(element.toString());</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                json.writeEndArray();</b>
    +&nbsp;
    +<b class="fc">&nbsp;                if (error.getCause() != null) {</b>
    +<b class="fc">&nbsp;                    serializeThrowable(json, error.getCause(), &quot;cause&quot;);</b>
    +&nbsp;                }
    +&nbsp;
    +<b class="fc">&nbsp;                json.writeEndObject();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getModuleName() {
    +<b class="fc">&nbsp;        return &quot;healthchecks&quot;;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Version version() {
    +<b class="fc">&nbsp;        return MetricsModule.VERSION;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void setupModule(SetupContext context) {
    +<b class="fc">&nbsp;        context.addSerializers(new SimpleSerializers(Collections.singletonList(new HealthCheckResultSerializer())));</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/sources/source-2.html
    new file mode 100644
    index 0000000000..694b769101
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/sources/source-2.html
    @@ -0,0 +1,489 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricsModule</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.json</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricsModule</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (12/13)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">MetricsModule$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricsModule$CounterSerializer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricsModule$GaugeSerializer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricsModule$HistogramSerializer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricsModule$MeterSerializer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricsModule$MetricRegistrySerializer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricsModule$TimerSerializer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (33/33)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.json;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Histogram;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricFilter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Snapshot;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.fasterxml.jackson.core.JsonGenerator;
    +&nbsp;import com.fasterxml.jackson.core.Version;
    +&nbsp;import com.fasterxml.jackson.databind.Module;
    +&nbsp;import com.fasterxml.jackson.databind.SerializerProvider;
    +&nbsp;import com.fasterxml.jackson.databind.module.SimpleSerializers;
    +&nbsp;import com.fasterxml.jackson.databind.ser.std.StdSerializer;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +<b class="fc">&nbsp;public class MetricsModule extends Module {</b>
    +<b class="fc">&nbsp;    static final Version VERSION = new Version(4, 0, 0, &quot;&quot;, &quot;io.dropwizard.metrics&quot;, &quot;metrics-json&quot;);</b>
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +<b class="fc">&nbsp;    private static class GaugeSerializer extends StdSerializer&lt;Gauge&gt; {</b>
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private GaugeSerializer() {
    +<b class="fc">&nbsp;            super(Gauge.class);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(Gauge gauge,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +&nbsp;            final Object value;
    +&nbsp;            try {
    +<b class="fc">&nbsp;                value = gauge.getValue();</b>
    +<b class="fc">&nbsp;                json.writeObjectField(&quot;value&quot;, value);</b>
    +<b class="fc">&nbsp;            } catch (RuntimeException e) {</b>
    +<b class="fc">&nbsp;                json.writeObjectField(&quot;error&quot;, e.toString());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class CounterSerializer extends StdSerializer&lt;Counter&gt; {</b>
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private CounterSerializer() {
    +<b class="fc">&nbsp;            super(Counter.class);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(Counter counter,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, counter.getCount());</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class HistogramSerializer extends StdSerializer&lt;Histogram&gt; {</b>
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private final boolean showSamples;
    +&nbsp;
    +&nbsp;        private HistogramSerializer(boolean showSamples) {
    +<b class="fc">&nbsp;            super(Histogram.class);</b>
    +<b class="fc">&nbsp;            this.showSamples = showSamples;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(Histogram histogram,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +<b class="fc">&nbsp;            final Snapshot snapshot = histogram.getSnapshot();</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, histogram.getCount());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;max&quot;, snapshot.getMax());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;mean&quot;, snapshot.getMean());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;min&quot;, snapshot.getMin());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p50&quot;, snapshot.getMedian());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p75&quot;, snapshot.get75thPercentile());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p95&quot;, snapshot.get95thPercentile());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p98&quot;, snapshot.get98thPercentile());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p99&quot;, snapshot.get99thPercentile());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p999&quot;, snapshot.get999thPercentile());</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (showSamples) {</b>
    +<b class="fc">&nbsp;                json.writeObjectField(&quot;values&quot;, snapshot.getValues());</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;stddev&quot;, snapshot.getStdDev());</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class MeterSerializer extends StdSerializer&lt;Meter&gt; {
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private final String rateUnit;
    +&nbsp;        private final double rateFactor;
    +&nbsp;
    +&nbsp;        public MeterSerializer(TimeUnit rateUnit) {
    +<b class="fc">&nbsp;            super(Meter.class);</b>
    +<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    +<b class="fc">&nbsp;            this.rateUnit = calculateRateUnit(rateUnit, &quot;events&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(Meter meter,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, meter.getCount());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;m15_rate&quot;, meter.getFifteenMinuteRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;m1_rate&quot;, meter.getOneMinuteRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;m5_rate&quot;, meter.getFiveMinuteRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;mean_rate&quot;, meter.getMeanRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeStringField(&quot;units&quot;, rateUnit);</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class TimerSerializer extends StdSerializer&lt;Timer&gt; {</b>
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private final String rateUnit;
    +&nbsp;        private final double rateFactor;
    +&nbsp;        private final String durationUnit;
    +&nbsp;        private final double durationFactor;
    +&nbsp;        private final boolean showSamples;
    +&nbsp;
    +&nbsp;        private TimerSerializer(TimeUnit rateUnit,
    +&nbsp;                                TimeUnit durationUnit,
    +&nbsp;                                boolean showSamples) {
    +<b class="fc">&nbsp;            super(Timer.class);</b>
    +<b class="fc">&nbsp;            this.rateUnit = calculateRateUnit(rateUnit, &quot;calls&quot;);</b>
    +<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    +<b class="fc">&nbsp;            this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    +<b class="fc">&nbsp;            this.durationFactor = 1.0 / durationUnit.toNanos(1);</b>
    +<b class="fc">&nbsp;            this.showSamples = showSamples;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(Timer timer,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +<b class="fc">&nbsp;            final Snapshot snapshot = timer.getSnapshot();</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, timer.getCount());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;max&quot;, snapshot.getMax() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;mean&quot;, snapshot.getMean() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;min&quot;, snapshot.getMin() * durationFactor);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p50&quot;, snapshot.getMedian() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p75&quot;, snapshot.get75thPercentile() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p95&quot;, snapshot.get95thPercentile() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p98&quot;, snapshot.get98thPercentile() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p99&quot;, snapshot.get99thPercentile() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p999&quot;, snapshot.get999thPercentile() * durationFactor);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (showSamples) {</b>
    +<b class="fc">&nbsp;                final long[] values = snapshot.getValues();</b>
    +<b class="fc">&nbsp;                final double[] scaledValues = new double[values.length];</b>
    +<b class="fc">&nbsp;                for (int i = 0; i &lt; values.length; i++) {</b>
    +<b class="fc">&nbsp;                    scaledValues[i] = values[i] * durationFactor;</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                json.writeObjectField(&quot;values&quot;, scaledValues);</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;stddev&quot;, snapshot.getStdDev() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;m15_rate&quot;, timer.getFifteenMinuteRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;m1_rate&quot;, timer.getOneMinuteRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;m5_rate&quot;, timer.getFiveMinuteRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;mean_rate&quot;, timer.getMeanRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeStringField(&quot;duration_units&quot;, durationUnit);</b>
    +<b class="fc">&nbsp;            json.writeStringField(&quot;rate_units&quot;, rateUnit);</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class MetricRegistrySerializer extends StdSerializer&lt;MetricRegistry&gt; {</b>
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private final MetricFilter filter;
    +&nbsp;
    +&nbsp;        private MetricRegistrySerializer(MetricFilter filter) {
    +<b class="fc">&nbsp;            super(MetricRegistry.class);</b>
    +<b class="fc">&nbsp;            this.filter = filter;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(MetricRegistry registry,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +<b class="fc">&nbsp;            json.writeStringField(&quot;version&quot;, VERSION.toString());</b>
    +<b class="fc">&nbsp;            json.writeObjectField(&quot;gauges&quot;, registry.getGauges(filter));</b>
    +<b class="fc">&nbsp;            json.writeObjectField(&quot;counters&quot;, registry.getCounters(filter));</b>
    +<b class="fc">&nbsp;            json.writeObjectField(&quot;histograms&quot;, registry.getHistograms(filter));</b>
    +<b class="fc">&nbsp;            json.writeObjectField(&quot;meters&quot;, registry.getMeters(filter));</b>
    +<b class="fc">&nbsp;            json.writeObjectField(&quot;timers&quot;, registry.getTimers(filter));</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected final TimeUnit rateUnit;
    +&nbsp;    protected final TimeUnit durationUnit;
    +&nbsp;    protected final boolean showSamples;
    +&nbsp;    protected final MetricFilter filter;
    +&nbsp;
    +&nbsp;    public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples) {
    +<b class="nc">&nbsp;        this(rateUnit, durationUnit, showSamples, MetricFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples, MetricFilter filter) {</b>
    +<b class="fc">&nbsp;        this.rateUnit = rateUnit;</b>
    +<b class="fc">&nbsp;        this.durationUnit = durationUnit;</b>
    +<b class="fc">&nbsp;        this.showSamples = showSamples;</b>
    +<b class="fc">&nbsp;        this.filter = filter;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getModuleName() {
    +<b class="fc">&nbsp;        return &quot;metrics&quot;;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Version version() {
    +<b class="fc">&nbsp;        return VERSION;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void setupModule(SetupContext context) {
    +<b class="fc">&nbsp;        context.addSerializers(new SimpleSerializers(Arrays.asList(</b>
    +&nbsp;                new GaugeSerializer(),
    +&nbsp;                new CounterSerializer(),
    +&nbsp;                new HistogramSerializer(showSamples),
    +&nbsp;                new MeterSerializer(rateUnit),
    +&nbsp;                new TimerSerializer(rateUnit, durationUnit, showSamples),
    +&nbsp;                new MetricRegistrySerializer(filter)
    +&nbsp;        )));
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static String calculateRateUnit(TimeUnit unit, String name) {
    +<b class="fc">&nbsp;        final String s = unit.toString().toLowerCase(Locale.US);</b>
    +<b class="fc">&nbsp;        return name + &#39;/&#39; + s.substring(0, s.length() - 1);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index.html
    new file mode 100644
    index 0000000000..06b735e1a0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..4a6a5de4bf
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..4b516253bc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..e243a1de5c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_CLASS.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..2d9f82564b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..82990ebd7b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_LINE.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..cc79e15be4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..64f8443f92
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_METHOD.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..e32677a054
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..bb6516226e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,440 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.3%
    +  </span>
    +  <span class="absValue">
    +    (58/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.9%
    +  </span>
    +  <span class="absValue">
    +    (211/220)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-1.html
    new file mode 100644
    index 0000000000..49735edcc5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-1.html
    @@ -0,0 +1,156 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > BufferPoolMetricSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: BufferPoolMetricSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">BufferPoolMetricSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import javax.management.JMException;
    +&nbsp;import javax.management.MBeanServer;
    +&nbsp;import javax.management.ObjectName;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Map;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of gauges for the count, usage, and capacity of the JVM&#39;s direct and mapped buffer pools.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * These JMX objects are only available on Java 7 and above.
    +&nbsp; */
    +&nbsp;public class BufferPoolMetricSet implements MetricSet {
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(BufferPoolMetricSet.class);</b>
    +<b class="fc">&nbsp;    private static final String[] ATTRIBUTES = {&quot;Count&quot;, &quot;MemoryUsed&quot;, &quot;TotalCapacity&quot;};</b>
    +<b class="fc">&nbsp;    private static final String[] NAMES = {&quot;count&quot;, &quot;used&quot;, &quot;capacity&quot;};</b>
    +<b class="fc">&nbsp;    private static final String[] POOLS = {&quot;direct&quot;, &quot;mapped&quot;};</b>
    +&nbsp;
    +&nbsp;    private final MBeanServer mBeanServer;
    +&nbsp;
    +<b class="fc">&nbsp;    public BufferPoolMetricSet(MBeanServer mBeanServer) {</b>
    +<b class="fc">&nbsp;        this.mBeanServer = mBeanServer;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        for (String pool : POOLS) {</b>
    +<b class="fc">&nbsp;            for (int i = 0; i &lt; ATTRIBUTES.length; i++) {</b>
    +<b class="fc">&nbsp;                final String attribute = ATTRIBUTES[i];</b>
    +<b class="fc">&nbsp;                final String name = NAMES[i];</b>
    +&nbsp;                try {
    +<b class="fc">&nbsp;                    final ObjectName on = new ObjectName(&quot;java.nio:type=BufferPool,name=&quot; + pool);</b>
    +<b class="fc">&nbsp;                    mBeanServer.getMBeanInfo(on);</b>
    +<b class="fc">&nbsp;                    gauges.put(name(pool, name), new JmxAttributeGauge(mBeanServer, on, attribute));</b>
    +<b class="fc">&nbsp;                } catch (JMException ignored) {</b>
    +<b class="fc">&nbsp;                    LOGGER.debug(&quot;Unable to load buffer pool MBeans, possibly running on Java 6&quot;);</b>
    +<b class="fc">&nbsp;                }</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-2.html
    new file mode 100644
    index 0000000000..b949f5dfac
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-2.html
    @@ -0,0 +1,184 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CachedThreadStatesGaugeSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CachedThreadStatesGaugeSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CachedThreadStatesGaugeSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">CachedThreadStatesGaugeSet$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.ThreadInfo;
    +&nbsp;import java.lang.management.ThreadMXBean;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.CachedGauge;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A variation of ThreadStatesGaugeSet that caches the ThreadInfo[] objects for
    +&nbsp; * a given interval.
    +&nbsp; */
    +<b class="fc">&nbsp;public class CachedThreadStatesGaugeSet extends ThreadStatesGaugeSet {</b>
    +&nbsp;
    +&nbsp;    private final CachedGauge&lt;ThreadInfo[]&gt; threadInfo;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges using the given MXBean and detector.
    +&nbsp;     * Caches the information for the given interval and time unit.
    +&nbsp;     *
    +&nbsp;     * @param threadMXBean     a thread MXBean
    +&nbsp;     * @param deadlockDetector a deadlock detector
    +&nbsp;     * @param interval         cache interval
    +&nbsp;     * @param unit             cache interval time unit
    +&nbsp;     */
    +&nbsp;    public CachedThreadStatesGaugeSet(final ThreadMXBean threadMXBean, ThreadDeadlockDetector deadlockDetector,
    +&nbsp;                                      long interval, TimeUnit unit) {
    +<b class="fc">&nbsp;        super(threadMXBean, deadlockDetector);</b>
    +<b class="fc">&nbsp;        threadInfo = new CachedGauge&lt;ThreadInfo[]&gt;(interval, unit) {</b>
    +&nbsp;            @Override
    +&nbsp;            protected ThreadInfo[] loadValue() {
    +<b class="fc">&nbsp;                return CachedThreadStatesGaugeSet.super.getThreadInfo();</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges using the default MXBeans.
    +&nbsp;     * Caches the information for the given interval and time unit.
    +&nbsp;     *
    +&nbsp;     * @param interval cache interval
    +&nbsp;     * @param unit     cache interval time unit
    +&nbsp;     */
    +&nbsp;    public CachedThreadStatesGaugeSet(long interval, TimeUnit unit) {
    +<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector(), interval, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    ThreadInfo[] getThreadInfo() {
    +<b class="fc">&nbsp;        return threadInfo.getValue();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-3.html
    new file mode 100644
    index 0000000000..d1a9a18d5c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-3.html
    @@ -0,0 +1,139 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ClassLoadingGaugeSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ClassLoadingGaugeSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ClassLoadingGaugeSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;
    +&nbsp;import java.lang.management.ClassLoadingMXBean;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Map;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of gauges for JVM classloader usage.
    +&nbsp; */
    +&nbsp;public class ClassLoadingGaugeSet implements MetricSet {
    +&nbsp;
    +&nbsp;    private final ClassLoadingMXBean mxBean;
    +&nbsp;
    +&nbsp;    public ClassLoadingGaugeSet() {
    +<b class="nc">&nbsp;        this(ManagementFactory.getClassLoadingMXBean());</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public ClassLoadingGaugeSet(ClassLoadingMXBean mxBean) {</b>
    +<b class="fc">&nbsp;        this.mxBean = mxBean;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;loaded&quot;, (Gauge&lt;Long&gt;) mxBean::getTotalLoadedClassCount);</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;unloaded&quot;, (Gauge&lt;Long&gt;) mxBean::getUnloadedClassCount);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return gauges;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-4.html
    new file mode 100644
    index 0000000000..f1b16541f7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-4.html
    @@ -0,0 +1,123 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CpuTimeClock</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CpuTimeClock (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CpuTimeClock</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.ThreadMXBean;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A clock implementation which returns the current thread&#39;s CPU time.
    +&nbsp; */
    +<b class="fc">&nbsp;public class CpuTimeClock extends Clock {</b>
    +&nbsp;
    +<b class="fc">&nbsp;    private static final ThreadMXBean THREAD_MX_BEAN = ManagementFactory.getThreadMXBean();</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public long getTick() {
    +<b class="fc">&nbsp;        return THREAD_MX_BEAN.getCurrentThreadCpuTime();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-5.html
    new file mode 100644
    index 0000000000..287366ae6b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-5.html
    @@ -0,0 +1,154 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > FileDescriptorRatioGauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: FileDescriptorRatioGauge (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">FileDescriptorRatioGauge</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.OperatingSystemMXBean;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A gauge for the ratio of used to total file descriptors.
    +&nbsp; */
    +&nbsp;public class FileDescriptorRatioGauge extends RatioGauge {
    +<b class="fc">&nbsp;    private static boolean unixOperatingSystemMXBeanExists = false;</b>
    +&nbsp;
    +&nbsp;    private final OperatingSystemMXBean os;
    +&nbsp;
    +&nbsp;    static {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            Class.forName(&quot;com.sun.management.UnixOperatingSystemMXBean&quot;);</b>
    +<b class="fc">&nbsp;            unixOperatingSystemMXBeanExists = true;</b>
    +<b class="fc">&nbsp;        } catch (ClassNotFoundException e) {</b>
    +&nbsp;            // do nothing
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new gauge using the platform OS bean.
    +&nbsp;     */
    +&nbsp;    public FileDescriptorRatioGauge() {
    +<b class="fc">&nbsp;        this(ManagementFactory.getOperatingSystemMXBean());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new gauge using the given OS bean.
    +&nbsp;     *
    +&nbsp;     * @param os an {@link OperatingSystemMXBean}
    +&nbsp;     */
    +<b class="fc">&nbsp;    public FileDescriptorRatioGauge(OperatingSystemMXBean os) {</b>
    +<b class="fc">&nbsp;        this.os = os;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected Ratio getRatio() {
    +<b class="fc">&nbsp;        if (unixOperatingSystemMXBeanExists &amp;&amp; os instanceof com.sun.management.UnixOperatingSystemMXBean) {</b>
    +<b class="fc">&nbsp;            final com.sun.management.UnixOperatingSystemMXBean unixOs = (com.sun.management.UnixOperatingSystemMXBean) os;</b>
    +<b class="fc">&nbsp;            return Ratio.of(unixOs.getOpenFileDescriptorCount(), unixOs.getMaxFileDescriptorCount());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            return Ratio.of(Double.NaN, Double.NaN);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-6.html
    new file mode 100644
    index 0000000000..390691f599
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-6.html
    @@ -0,0 +1,157 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > GarbageCollectorMetricSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: GarbageCollectorMetricSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">GarbageCollectorMetricSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;
    +&nbsp;import java.lang.management.GarbageCollectorMXBean;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.regex.Pattern;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of gauges for the counts and elapsed times of garbage collections.
    +&nbsp; */
    +&nbsp;public class GarbageCollectorMetricSet implements MetricSet {
    +<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    +&nbsp;
    +&nbsp;    private final List&lt;GarbageCollectorMXBean&gt; garbageCollectors;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges for all discoverable garbage collectors.
    +&nbsp;     */
    +&nbsp;    public GarbageCollectorMetricSet() {
    +<b class="fc">&nbsp;        this(ManagementFactory.getGarbageCollectorMXBeans());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges for the given collection of garbage collectors.
    +&nbsp;     *
    +&nbsp;     * @param garbageCollectors the garbage collectors
    +&nbsp;     */
    +<b class="fc">&nbsp;    public GarbageCollectorMetricSet(Collection&lt;GarbageCollectorMXBean&gt; garbageCollectors) {</b>
    +<b class="fc">&nbsp;        this.garbageCollectors = new ArrayList&lt;&gt;(garbageCollectors);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        for (final GarbageCollectorMXBean gc : garbageCollectors) {</b>
    +<b class="fc">&nbsp;            final String name = WHITESPACE.matcher(gc.getName()).replaceAll(&quot;-&quot;);</b>
    +<b class="fc">&nbsp;            gauges.put(name(name, &quot;count&quot;), (Gauge&lt;Long&gt;) gc::getCollectionCount);</b>
    +<b class="fc">&nbsp;            gauges.put(name(name, &quot;time&quot;), (Gauge&lt;Long&gt;) gc::getCollectionTime);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-7.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-7.html
    new file mode 100644
    index 0000000000..3aa7b9c149
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-7.html
    @@ -0,0 +1,165 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > JmxAttributeGauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: JmxAttributeGauge (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">JmxAttributeGauge</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import javax.management.JMException;
    +&nbsp;import javax.management.MBeanServerConnection;
    +&nbsp;import javax.management.ObjectName;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.util.Set;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link Gauge} implementation which queries an {@link MBeanServerConnection} for an attribute of an object.
    +&nbsp; */
    +&nbsp;public class JmxAttributeGauge implements Gauge&lt;Object&gt; {
    +&nbsp;    private final MBeanServerConnection mBeanServerConn;
    +&nbsp;    private final ObjectName objectName;
    +&nbsp;    private final String attributeName;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new JmxAttributeGauge.
    +&nbsp;     *
    +&nbsp;     * @param objectName    the name of the object
    +&nbsp;     * @param attributeName the name of the object&#39;s attribute
    +&nbsp;     */
    +&nbsp;    public JmxAttributeGauge(ObjectName objectName, String attributeName) {
    +<b class="fc">&nbsp;        this(ManagementFactory.getPlatformMBeanServer(), objectName, attributeName);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new JmxAttributeGauge.
    +&nbsp;     *
    +&nbsp;     * @param mBeanServerConn the {@link MBeanServerConnection}
    +&nbsp;     * @param objectName      the name of the object
    +&nbsp;     * @param attributeName   the name of the object&#39;s attribute
    +&nbsp;     */
    +<b class="fc">&nbsp;    public JmxAttributeGauge(MBeanServerConnection mBeanServerConn, ObjectName objectName, String attributeName) {</b>
    +<b class="fc">&nbsp;        this.mBeanServerConn = mBeanServerConn;</b>
    +<b class="fc">&nbsp;        this.objectName = objectName;</b>
    +<b class="fc">&nbsp;        this.attributeName = attributeName;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Object getValue() {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return mBeanServerConn.getAttribute(getObjectName(), attributeName);</b>
    +<b class="fc">&nbsp;        } catch (IOException | JMException e) {</b>
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private ObjectName getObjectName() throws IOException {
    +<b class="fc">&nbsp;        if (objectName.isPattern()) {</b>
    +<b class="fc">&nbsp;            Set&lt;ObjectName&gt; foundNames = mBeanServerConn.queryNames(objectName, null);</b>
    +<b class="fc">&nbsp;            if (foundNames.size() == 1) {</b>
    +<b class="fc">&nbsp;                return foundNames.iterator().next();</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        return objectName;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-8.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-8.html
    new file mode 100644
    index 0000000000..34b32742d0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-8.html
    @@ -0,0 +1,155 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > JvmAttributeGaugeSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: JvmAttributeGaugeSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">JvmAttributeGaugeSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.RuntimeMXBean;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.Map;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of gauges for the JVM name, vendor, and uptime.
    +&nbsp; */
    +&nbsp;public class JvmAttributeGaugeSet implements MetricSet {
    +&nbsp;    private final RuntimeMXBean runtime;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges.
    +&nbsp;     */
    +&nbsp;    public JvmAttributeGaugeSet() {
    +<b class="fc">&nbsp;        this(ManagementFactory.getRuntimeMXBean());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges with the given {@link RuntimeMXBean}.
    +&nbsp;     *
    +&nbsp;     * @param runtime JVM management interface with access to system properties
    +&nbsp;     */
    +<b class="fc">&nbsp;    public JvmAttributeGaugeSet(RuntimeMXBean runtime) {</b>
    +<b class="fc">&nbsp;        this.runtime = runtime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        gauges.put(&quot;name&quot;, (Gauge&lt;String&gt;) runtime::getName);</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;vendor&quot;, (Gauge&lt;String&gt;) () -&gt; String.format(Locale.US,</b>
    +&nbsp;                &quot;%s %s %s (%s)&quot;,
    +<b class="fc">&nbsp;                runtime.getVmVendor(),</b>
    +<b class="fc">&nbsp;                runtime.getVmName(),</b>
    +<b class="fc">&nbsp;                runtime.getVmVersion(),</b>
    +<b class="fc">&nbsp;                runtime.getSpecVersion()));</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;uptime&quot;, (Gauge&lt;Long&gt;) runtime::getUptime);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-9.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-9.html
    new file mode 100644
    index 0000000000..9e27a5464e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-9.html
    @@ -0,0 +1,274 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MemoryUsageGaugeSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MemoryUsageGaugeSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MemoryUsageGaugeSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (37/37)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">MemoryUsageGaugeSet$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MemoryUsageGaugeSet$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MemoryUsageGaugeSet$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.MemoryMXBean;
    +&nbsp;import java.lang.management.MemoryPoolMXBean;
    +&nbsp;import java.lang.management.MemoryUsage;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.regex.Pattern;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of gauges for JVM memory usage, including stats on heap vs. non-heap memory, plus
    +&nbsp; * GC-specific memory pools.
    +&nbsp; */
    +<b class="fc">&nbsp;public class MemoryUsageGaugeSet implements MetricSet {</b>
    +<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    +&nbsp;
    +&nbsp;    private final MemoryMXBean mxBean;
    +&nbsp;    private final List&lt;MemoryPoolMXBean&gt; memoryPools;
    +&nbsp;
    +&nbsp;    public MemoryUsageGaugeSet() {
    +<b class="fc">&nbsp;        this(ManagementFactory.getMemoryMXBean(), ManagementFactory.getMemoryPoolMXBeans());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public MemoryUsageGaugeSet(MemoryMXBean mxBean,
    +<b class="fc">&nbsp;                               Collection&lt;MemoryPoolMXBean&gt; memoryPools) {</b>
    +<b class="fc">&nbsp;        this.mxBean = mxBean;</b>
    +<b class="fc">&nbsp;        this.memoryPools = new ArrayList&lt;&gt;(memoryPools);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        gauges.put(&quot;total.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getInit() +</b>
    +<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getInit());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;total.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getUsed() +</b>
    +<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getUsed());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;total.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getMax() == -1 ?</b>
    +<b class="fc">&nbsp;                -1 : mxBean.getHeapMemoryUsage().getMax() + mxBean.getNonHeapMemoryUsage().getMax());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;total.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getCommitted() +</b>
    +<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getCommitted());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        gauges.put(&quot;heap.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getInit());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;heap.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getUsed());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;heap.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getMax());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;heap.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getCommitted());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;heap.usage&quot;, new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="fc">&nbsp;                final MemoryUsage usage = mxBean.getHeapMemoryUsage();</b>
    +<b class="fc">&nbsp;                return Ratio.of(usage.getUsed(), usage.getMax());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        gauges.put(&quot;non-heap.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getInit());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;non-heap.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getUsed());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;non-heap.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getMax());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;non-heap.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getCommitted());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;non-heap.usage&quot;, new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="fc">&nbsp;                final MemoryUsage usage = mxBean.getNonHeapMemoryUsage();</b>
    +<b class="fc">&nbsp;                return Ratio.of(usage.getUsed(), usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        for (final MemoryPoolMXBean pool : memoryPools) {</b>
    +<b class="fc">&nbsp;            final String poolName = name(&quot;pools&quot;, WHITESPACE.matcher(pool.getName()).replaceAll(&quot;-&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;usage&quot;), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="fc">&nbsp;                    MemoryUsage usage = pool.getUsage();</b>
    +<b class="fc">&nbsp;                    return Ratio.of(usage.getUsed(),</b>
    +<b class="fc">&nbsp;                            usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;max&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getMax());</b>
    +<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;used&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getUsed());</b>
    +<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;committed&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getCommitted());</b>
    +&nbsp;
    +&nbsp;            // Only register GC usage metrics if the memory pool supports usage statistics.
    +<b class="fc">&nbsp;            if (pool.getCollectionUsage() != null) {</b>
    +<b class="fc">&nbsp;                gauges.put(name(poolName, &quot;used-after-gc&quot;), (Gauge&lt;Long&gt;) () -&gt;</b>
    +<b class="fc">&nbsp;                        pool.getCollectionUsage().getUsed());</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;init&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getInit());</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-a.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-a.html
    new file mode 100644
    index 0000000000..edc61f807f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-a.html
    @@ -0,0 +1,169 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ThreadDeadlockDetector</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ThreadDeadlockDetector (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ThreadDeadlockDetector</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.ThreadInfo;
    +&nbsp;import java.lang.management.ThreadMXBean;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashSet;
    +&nbsp;import java.util.Set;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A utility class for detecting deadlocked threads.
    +&nbsp; */
    +&nbsp;public class ThreadDeadlockDetector {
    +&nbsp;    private static final int MAX_STACK_TRACE_DEPTH = 100;
    +&nbsp;
    +&nbsp;    private final ThreadMXBean threads;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new detector.
    +&nbsp;     */
    +&nbsp;    public ThreadDeadlockDetector() {
    +<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new detector using the given {@link ThreadMXBean}.
    +&nbsp;     *
    +&nbsp;     * @param threads a {@link ThreadMXBean}
    +&nbsp;     */
    +<b class="fc">&nbsp;    public ThreadDeadlockDetector(ThreadMXBean threads) {</b>
    +<b class="fc">&nbsp;        this.threads = threads;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a set of diagnostic stack traces for any deadlocked threads. If no threads are
    +&nbsp;     * deadlocked, returns an empty set.
    +&nbsp;     *
    +&nbsp;     * @return stack traces for deadlocked threads or an empty set
    +&nbsp;     */
    +&nbsp;    public Set&lt;String&gt; getDeadlockedThreads() {
    +<b class="fc">&nbsp;        final long[] ids = threads.findDeadlockedThreads();</b>
    +<b class="fc">&nbsp;        if (ids != null) {</b>
    +<b class="fc">&nbsp;            final Set&lt;String&gt; deadlocks = new HashSet&lt;&gt;();</b>
    +<b class="fc">&nbsp;            for (ThreadInfo info : threads.getThreadInfo(ids, MAX_STACK_TRACE_DEPTH)) {</b>
    +<b class="fc">&nbsp;                final StringBuilder stackTrace = new StringBuilder();</b>
    +<b class="fc">&nbsp;                for (StackTraceElement element : info.getStackTrace()) {</b>
    +<b class="fc">&nbsp;                    stackTrace.append(&quot;\t at &quot;)</b>
    +<b class="fc">&nbsp;                            .append(element.toString())</b>
    +<b class="fc">&nbsp;                            .append(String.format(&quot;%n&quot;));</b>
    +&nbsp;                }
    +&nbsp;
    +<b class="fc">&nbsp;                deadlocks.add(</b>
    +<b class="fc">&nbsp;                        String.format(&quot;%s locked on %s (owned by %s):%n%s&quot;,</b>
    +<b class="fc">&nbsp;                                info.getThreadName(),</b>
    +<b class="fc">&nbsp;                                info.getLockName(),</b>
    +<b class="fc">&nbsp;                                info.getLockOwnerName(),</b>
    +<b class="fc">&nbsp;                                stackTrace.toString()</b>
    +&nbsp;                        )
    +&nbsp;                );
    +&nbsp;            }
    +<b class="fc">&nbsp;            return Collections.unmodifiableSet(deadlocks);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return Collections.emptySet();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-b.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-b.html
    new file mode 100644
    index 0000000000..7e31e2c5cd
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-b.html
    @@ -0,0 +1,217 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ThreadDump</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ThreadDump (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ThreadDump</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.io.OutputStreamWriter;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;import java.lang.management.LockInfo;
    +&nbsp;import java.lang.management.MonitorInfo;
    +&nbsp;import java.lang.management.ThreadInfo;
    +&nbsp;import java.lang.management.ThreadMXBean;
    +&nbsp;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A convenience class for getting a thread dump.
    +&nbsp; */
    +&nbsp;public class ThreadDump {
    +&nbsp;
    +&nbsp;    private final ThreadMXBean threadMXBean;
    +&nbsp;
    +<b class="fc">&nbsp;    public ThreadDump(ThreadMXBean threadMXBean) {</b>
    +<b class="fc">&nbsp;        this.threadMXBean = threadMXBean;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Dumps all of the threads&#39; current information, including synchronization, to an output stream.
    +&nbsp;     *
    +&nbsp;     * @param out an output stream
    +&nbsp;     */
    +&nbsp;    public void dump(OutputStream out) {
    +<b class="fc">&nbsp;        dump(true, true, out);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Dumps all of the threads&#39; current information, optionally including synchronization, to an output stream.
    +&nbsp;     *
    +&nbsp;     * Having control over including synchronization info allows using this method (and its wrappers, i.e.
    +&nbsp;     * ThreadDumpServlet) in environments where getting object monitor and/or ownable synchronizer usage is not
    +&nbsp;     * supported. It can also speed things up.
    +&nbsp;     *
    +&nbsp;     * See {@link ThreadMXBean#dumpAllThreads(boolean, boolean)}
    +&nbsp;     *
    +&nbsp;     * @param lockedMonitors dump all locked monitors if true
    +&nbsp;     * @param lockedSynchronizers dump all locked ownable synchronizers if true
    +&nbsp;     * @param out an output stream
    +&nbsp;     */
    +&nbsp;    public void dump(boolean lockedMonitors, boolean lockedSynchronizers, OutputStream out) {
    +<b class="fc">&nbsp;        final ThreadInfo[] threads = this.threadMXBean.dumpAllThreads(lockedMonitors, lockedSynchronizers);</b>
    +<b class="fc">&nbsp;        final PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, UTF_8));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (int ti = threads.length - 1; ti &gt;= 0; ti--) {</b>
    +<b class="fc">&nbsp;            final ThreadInfo t = threads[ti];</b>
    +<b class="fc">&nbsp;            writer.printf(&quot;\&quot;%s\&quot; id=%d state=%s&quot;,</b>
    +<b class="fc">&nbsp;                    t.getThreadName(),</b>
    +<b class="fc">&nbsp;                    t.getThreadId(),</b>
    +<b class="fc">&nbsp;                    t.getThreadState());</b>
    +<b class="fc">&nbsp;            final LockInfo lock = t.getLockInfo();</b>
    +<b class="fc">&nbsp;            if (lock != null &amp;&amp; t.getThreadState() != Thread.State.BLOCKED) {</b>
    +<b class="fc">&nbsp;                writer.printf(&quot;%n    - waiting on &lt;0x%08x&gt; (a %s)&quot;,</b>
    +<b class="fc">&nbsp;                        lock.getIdentityHashCode(),</b>
    +<b class="fc">&nbsp;                        lock.getClassName());</b>
    +<b class="fc">&nbsp;                writer.printf(&quot;%n    - locked &lt;0x%08x&gt; (a %s)&quot;,</b>
    +<b class="fc">&nbsp;                        lock.getIdentityHashCode(),</b>
    +<b class="fc">&nbsp;                        lock.getClassName());</b>
    +<b class="fc">&nbsp;            } else if (lock != null &amp;&amp; t.getThreadState() == Thread.State.BLOCKED) {</b>
    +<b class="nc">&nbsp;                writer.printf(&quot;%n    - waiting to lock &lt;0x%08x&gt; (a %s)&quot;,</b>
    +<b class="nc">&nbsp;                        lock.getIdentityHashCode(),</b>
    +<b class="nc">&nbsp;                        lock.getClassName());</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            if (t.isSuspended()) {</b>
    +<b class="nc">&nbsp;                writer.print(&quot; (suspended)&quot;);</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            if (t.isInNative()) {</b>
    +<b class="fc">&nbsp;                writer.print(&quot; (running in native)&quot;);</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            writer.println();</b>
    +<b class="fc">&nbsp;            if (t.getLockOwnerName() != null) {</b>
    +<b class="nc">&nbsp;                writer.printf(&quot;     owned by %s id=%d%n&quot;, t.getLockOwnerName(), t.getLockOwnerId());</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            final StackTraceElement[] elements = t.getStackTrace();</b>
    +<b class="fc">&nbsp;            final MonitorInfo[] monitors = t.getLockedMonitors();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (int i = 0; i &lt; elements.length; i++) {</b>
    +<b class="fc">&nbsp;                final StackTraceElement element = elements[i];</b>
    +<b class="fc">&nbsp;                writer.printf(&quot;    at %s%n&quot;, element);</b>
    +<b class="fc">&nbsp;                for (int j = 1; j &lt; monitors.length; j++) {</b>
    +<b class="nc">&nbsp;                    final MonitorInfo monitor = monitors[j];</b>
    +<b class="nc">&nbsp;                    if (monitor.getLockedStackDepth() == i) {</b>
    +<b class="nc">&nbsp;                        writer.printf(&quot;      - locked %s%n&quot;, monitor);</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +<b class="fc">&nbsp;            writer.println();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final LockInfo[] locks = t.getLockedSynchronizers();</b>
    +<b class="fc">&nbsp;            if (locks.length &gt; 0) {</b>
    +<b class="fc">&nbsp;                writer.printf(&quot;    Locked synchronizers: count = %d%n&quot;, locks.length);</b>
    +<b class="fc">&nbsp;                for (LockInfo l : locks) {</b>
    +<b class="fc">&nbsp;                    writer.printf(&quot;      - %s%n&quot;, l);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                writer.println();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        writer.println();</b>
    +<b class="fc">&nbsp;        writer.flush();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-c.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-c.html
    new file mode 100644
    index 0000000000..e237c23a66
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-c.html
    @@ -0,0 +1,185 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ThreadStatesGaugeSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ThreadStatesGaugeSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ThreadStatesGaugeSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.ThreadInfo;
    +&nbsp;import java.lang.management.ThreadMXBean;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of gauges for the number of threads in their various states and deadlock detection.
    +&nbsp; */
    +&nbsp;public class ThreadStatesGaugeSet implements MetricSet {
    +&nbsp;
    +&nbsp;    // do not compute stack traces.
    +&nbsp;    private final static int STACK_TRACE_DEPTH = 0;
    +&nbsp;
    +&nbsp;    private final ThreadMXBean threads;
    +&nbsp;    private final ThreadDeadlockDetector deadlockDetector;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges using the default MXBeans.
    +&nbsp;     */
    +&nbsp;    public ThreadStatesGaugeSet() {
    +<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges using the given MXBean and detector.
    +&nbsp;     *
    +&nbsp;     * @param threads          a thread MXBean
    +&nbsp;     * @param deadlockDetector a deadlock detector
    +&nbsp;     */
    +&nbsp;    public ThreadStatesGaugeSet(ThreadMXBean threads,
    +<b class="fc">&nbsp;                                ThreadDeadlockDetector deadlockDetector) {</b>
    +<b class="fc">&nbsp;        this.threads = threads;</b>
    +<b class="fc">&nbsp;        this.deadlockDetector = deadlockDetector;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (final Thread.State state : Thread.State.values()) {</b>
    +<b class="fc">&nbsp;            gauges.put(name(state.toString().toLowerCase(), &quot;count&quot;),</b>
    +<b class="fc">&nbsp;                    (Gauge&lt;Object&gt;) () -&gt; getThreadCount(state));</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        gauges.put(&quot;count&quot;, (Gauge&lt;Integer&gt;) threads::getThreadCount);</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;daemon.count&quot;, (Gauge&lt;Integer&gt;) threads::getDaemonThreadCount);</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;peak.count&quot;, (Gauge&lt;Integer&gt;) threads::getPeakThreadCount);</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;total_started.count&quot;, (Gauge&lt;Long&gt;) threads::getTotalStartedThreadCount);</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;deadlock.count&quot;, (Gauge&lt;Integer&gt;) () -&gt; deadlockDetector.getDeadlockedThreads().size());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;deadlocks&quot;, (Gauge&lt;Set&lt;String&gt;&gt;) deadlockDetector::getDeadlockedThreads);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private int getThreadCount(Thread.State state) {
    +<b class="fc">&nbsp;        final ThreadInfo[] allThreads = getThreadInfo();</b>
    +<b class="fc">&nbsp;        int count = 0;</b>
    +<b class="fc">&nbsp;        for (ThreadInfo info : allThreads) {</b>
    +<b class="fc">&nbsp;            if (info != null &amp;&amp; info.getThreadState() == state) {</b>
    +<b class="fc">&nbsp;                count++;</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        return count;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    ThreadInfo[] getThreadInfo() {
    +<b class="fc">&nbsp;        return threads.getThreadInfo(threads.getAllThreadIds(), STACK_TRACE_DEPTH);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index.html
    new file mode 100644
    index 0000000000..6780c843b3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..fc1fc5cbae
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..7a73ae5dca
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..5fa996a33c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..3eb50b995f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..cba774648f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..e643386c43
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..237567bade
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..6c5758d2f0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..c520109875
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.log4j2</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.log4j2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/sources/source-1.html
    new file mode 100644
    index 0000000000..a4d983e113
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/sources/source-1.html
    @@ -0,0 +1,268 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedAppender</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.log4j2</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.log4j2)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedAppender</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (29/30)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedAppender$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
    +  </span>
    +  <span class="absValue">
    +    (30/31)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.log4j2;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;import org.apache.logging.log4j.core.Appender;
    +&nbsp;import org.apache.logging.log4j.core.Filter;
    +&nbsp;import org.apache.logging.log4j.core.Layout;
    +&nbsp;import org.apache.logging.log4j.core.LogEvent;
    +&nbsp;import org.apache.logging.log4j.core.appender.AbstractAppender;
    +&nbsp;import org.apache.logging.log4j.core.config.plugins.Plugin;
    +&nbsp;import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
    +&nbsp;import org.apache.logging.log4j.core.config.plugins.PluginFactory;
    +&nbsp;
    +&nbsp;import java.io.Serializable;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Log4J 2.x {@link Appender} which has seven meters, one for each logging level and one for the total
    +&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    +&nbsp; * name of the appender.
    +&nbsp; */
    +&nbsp;@Plugin(name = &quot;MetricsAppender&quot;, category = &quot;Core&quot;, elementType = &quot;appender&quot;)
    +&nbsp;public class InstrumentedAppender extends AbstractAppender {
    +&nbsp;
    +&nbsp;    private transient final MetricRegistry registry;
    +&nbsp;
    +&nbsp;    private transient Meter all;
    +&nbsp;    private transient Meter trace;
    +&nbsp;    private transient Meter debug;
    +&nbsp;    private transient Meter info;
    +&nbsp;    private transient Meter warn;
    +&nbsp;    private transient Meter error;
    +&nbsp;    private transient Meter fatal;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     *
    +&nbsp;     * @param registryName     the name of the registry in {@link SharedMetricRegistries}
    +&nbsp;     * @param filter           The Filter to associate with the Appender.
    +&nbsp;     * @param layout           The layout to use to format the event.
    +&nbsp;     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
    +&nbsp;     *                         logged and then passed to the application.
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(String registryName, Filter filter, Layout&lt;? extends Serializable&gt; layout, boolean ignoreExceptions) {
    +<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName), filter, layout, ignoreExceptions);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     *
    +&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(String registryName) {
    +<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the metric registry
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, null, null, true);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry.
    +&nbsp;     *
    +&nbsp;     * @param registry         the metric registry
    +&nbsp;     * @param filter           The Filter to associate with the Appender.
    +&nbsp;     * @param layout           The layout to use to format the event.
    +&nbsp;     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
    +&nbsp;     *                         logged and then passed to the application.
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(MetricRegistry registry, Filter filter, Layout&lt;? extends Serializable&gt; layout, boolean ignoreExceptions) {
    +<b class="fc">&nbsp;        super(name(Appender.class), filter, layout, ignoreExceptions);</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given appender name and registry.
    +&nbsp;     *
    +&nbsp;     * @param appenderName The name of the appender.
    +&nbsp;     * @param registry     the metric registry
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(String appenderName, MetricRegistry registry) {
    +<b class="fc">&nbsp;        super(appenderName, null, null, true);</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @PluginFactory
    +&nbsp;    public static InstrumentedAppender createAppender(
    +&nbsp;            @PluginAttribute(&quot;name&quot;) String name,
    +&nbsp;            @PluginAttribute(value = &quot;registryName&quot;, defaultString = &quot;log4j2Metrics&quot;) String registry) {
    +<b class="fc">&nbsp;        return new InstrumentedAppender(name, SharedMetricRegistries.getOrCreate(registry));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void start() {
    +<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    +<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    +<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    +<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    +<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    +<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    +<b class="fc">&nbsp;        this.fatal = registry.meter(name(getName(), &quot;fatal&quot;));</b>
    +<b class="fc">&nbsp;        super.start();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void append(LogEvent event) {
    +<b class="fc">&nbsp;        all.mark();</b>
    +<b class="fc">&nbsp;        switch (event.getLevel().getStandardLevel()) {</b>
    +&nbsp;            case TRACE:
    +<b class="fc">&nbsp;                trace.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case DEBUG:
    +<b class="fc">&nbsp;                debug.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case INFO:
    +<b class="fc">&nbsp;                info.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case WARN:
    +<b class="fc">&nbsp;                warn.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case ERROR:
    +<b class="fc">&nbsp;                error.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case FATAL:
    +<b class="fc">&nbsp;                fatal.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            default:
    +&nbsp;                break;
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index.html
    new file mode 100644
    index 0000000000..5a3d12507e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..a1fc631585
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..e123240efa
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..112d97f0fb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..d520fc2f15
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..5f899f26fa
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..4c30c331ba
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..8de9d15a24
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..0866e4f5ab
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..2b6691f955
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.logback</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.logback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/sources/source-1.html
    new file mode 100644
    index 0000000000..c5c12696de
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/sources/source-1.html
    @@ -0,0 +1,195 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedAppender</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.logback</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.logback)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedAppender</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.logback;
    +&nbsp;
    +&nbsp;import ch.qos.logback.classic.Level;
    +&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    +&nbsp;import ch.qos.logback.core.Appender;
    +&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    +&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    +&nbsp; * name of the appender.
    +&nbsp; */
    +&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    +&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    +&nbsp;
    +&nbsp;    private Meter all;
    +&nbsp;    private Meter trace;
    +&nbsp;    private Meter debug;
    +&nbsp;    private Meter info;
    +&nbsp;    private Meter warn;
    +&nbsp;    private Meter error;
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender() {
    +<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     *
    +&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(String registryName) {
    +<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the metric registry
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void start() {
    +<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    +<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    +<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    +<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    +<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    +<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    +<b class="fc">&nbsp;        super.start();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void append(ILoggingEvent event) {
    +<b class="fc">&nbsp;        all.mark();</b>
    +<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    +&nbsp;            case Level.TRACE_INT:
    +<b class="fc">&nbsp;                trace.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.DEBUG_INT:
    +<b class="fc">&nbsp;                debug.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.INFO_INT:
    +<b class="fc">&nbsp;                info.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.WARN_INT:
    +<b class="fc">&nbsp;                warn.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.ERROR_INT:
    +<b class="fc">&nbsp;                error.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            default:
    +&nbsp;                break;
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index.html
    new file mode 100644
    index 0000000000..3a2c05cca6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..ad85a52516
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..a1c0221180
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..1053f20165
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_CLASS.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..fb889fcee8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..de0981566e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_LINE.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..bc148699f6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..7c4425da92
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_METHOD.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..1fa56b8ac9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..1eba8d3d44
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-1.html
    new file mode 100644
    index 0000000000..c439ea488b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-1.html
    @@ -0,0 +1,387 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > AbstractInstrumentedFilter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlet</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: AbstractInstrumentedFilter (com.codahale.metrics.servlet)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">AbstractInstrumentedFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/45)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;
    +&nbsp;import javax.servlet.AsyncEvent;
    +&nbsp;import javax.servlet.AsyncListener;
    +&nbsp;import javax.servlet.Filter;
    +&nbsp;import javax.servlet.FilterChain;
    +&nbsp;import javax.servlet.FilterConfig;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.ServletRequest;
    +&nbsp;import javax.servlet.ServletResponse;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import javax.servlet.http.HttpServletResponseWrapper;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Map.Entry;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    +&nbsp; * codes being returned.
    +&nbsp; */
    +<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    +&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    +&nbsp;
    +&nbsp;    private final String otherMetricName;
    +&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    +&nbsp;    private final String registryAttribute;
    +&nbsp;
    +&nbsp;    // initialized after call of init method
    +&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    +&nbsp;    private Meter otherMeter;
    +&nbsp;    private Meter timeoutsMeter;
    +&nbsp;    private Meter errorsMeter;
    +&nbsp;    private Counter activeRequests;
    +&nbsp;    private Timer requestTimer;
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new instance of the filter.
    +&nbsp;     *
    +&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    +&nbsp;     *                               servlet context
    +&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    +&nbsp;     *                               interested in.
    +&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    +&nbsp;     */
    +&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    +&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    +<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    +<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    +<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    +<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    +<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    +<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    +<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    +<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    +<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    +<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    +<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    +<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    +<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    +<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    +&nbsp;
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    +&nbsp;        final MetricRegistry metricsRegistry;
    +&nbsp;
    +<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    +<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    +<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        return metricsRegistry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void destroy() {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void doFilter(ServletRequest request,
    +&nbsp;                         ServletResponse response,
    +&nbsp;                         FilterChain chain) throws IOException, ServletException {
    +<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    +&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    +<b class="nc">&nbsp;        activeRequests.inc();</b>
    +<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    +<b class="nc">&nbsp;        boolean error = false;</b>
    +&nbsp;        try {
    +<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    +<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    +<b class="nc">&nbsp;            error = true;</b>
    +<b class="nc">&nbsp;            throw e;</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    +<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                context.stop();</b>
    +<b class="nc">&nbsp;                activeRequests.dec();</b>
    +<b class="nc">&nbsp;                if (error) {</b>
    +<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    +&nbsp;                } else {
    +<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void markMeterForStatusCode(int status) {
    +<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    +<b class="nc">&nbsp;        if (metric != null) {</b>
    +<b class="nc">&nbsp;            metric.mark();</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            otherMeter.mark();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    +&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    +<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    +&nbsp;
    +&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    +<b class="nc">&nbsp;            super(response);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void sendError(int sc) throws IOException {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.sendError(sc);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void sendError(int sc, String msg) throws IOException {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void setStatus(int sc) {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.setStatus(sc);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        @SuppressWarnings(&quot;deprecation&quot;)
    +&nbsp;        public void setStatus(int sc, String sm) {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.setStatus(sc, sm);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public int getStatus() {
    +<b class="nc">&nbsp;            return httpStatus;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class AsyncResultListener implements AsyncListener {
    +&nbsp;        private Timer.Context context;
    +<b class="nc">&nbsp;        private boolean done = false;</b>
    +&nbsp;
    +<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    +<b class="nc">&nbsp;            this.context = context;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            if (!done) {</b>
    +<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    +<b class="nc">&nbsp;                context.stop();</b>
    +<b class="nc">&nbsp;                activeRequests.dec();</b>
    +<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            context.stop();</b>
    +<b class="nc">&nbsp;            activeRequests.dec();</b>
    +<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    +<b class="nc">&nbsp;            done = true;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            context.stop();</b>
    +<b class="nc">&nbsp;            activeRequests.dec();</b>
    +<b class="nc">&nbsp;            errorsMeter.mark();</b>
    +<b class="nc">&nbsp;            done = true;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +&nbsp;
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-2.html
    new file mode 100644
    index 0000000000..61852a1eec
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-2.html
    @@ -0,0 +1,152 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedFilter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlet</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedFilter (com.codahale.metrics.servlet)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    +&nbsp;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Map;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    +&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    +&nbsp; * &lt;pre&gt;{@code
    +&nbsp; * &lt;filter&gt;
    +&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    +&nbsp; *     &lt;filter-class&gt;com.codahale.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    +&nbsp; * &lt;/filter&gt;
    +&nbsp; * &lt;filter-mapping&gt;
    +&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    +&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    +&nbsp; * &lt;/filter-mapping&gt;
    +&nbsp; * }&lt;/pre&gt;
    +&nbsp; */
    +&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    +<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    +&nbsp;
    +&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    +&nbsp;    private static final int OK = 200;
    +&nbsp;    private static final int CREATED = 201;
    +&nbsp;    private static final int NO_CONTENT = 204;
    +&nbsp;    private static final int BAD_REQUEST = 400;
    +&nbsp;    private static final int NOT_FOUND = 404;
    +&nbsp;    private static final int SERVER_ERROR = 500;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new instance of the filter.
    +&nbsp;     */
    +&nbsp;    public InstrumentedFilter() {
    +<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    +<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    +<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-3.html
    new file mode 100644
    index 0000000000..52fd4a4abd
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-3.html
    @@ -0,0 +1,131 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedFilterContextListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlet</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedFilterContextListener (com.codahale.metrics.servlet)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedFilterContextListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;
    +&nbsp;import javax.servlet.ServletContextEvent;
    +&nbsp;import javax.servlet.ServletContextListener;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    +&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    +&nbsp; * application.
    +&nbsp; */
    +<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    +&nbsp;    /**
    +&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    +&nbsp;     */
    +&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    +<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index.html
    new file mode 100644
    index 0000000000..f90e0f4a0a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..00509d3c6b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..8c76b3768e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..11dced7d54
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_CLASS.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..ac850f25f6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..e011f93f65
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_LINE.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..c9f1a249e6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..1acc6dbc2b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_METHOD.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..e66f46202d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..a6756cb3f0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.8%
    +  </span>
    +  <span class="absValue">
    +    (211/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-1.html
    new file mode 100644
    index 0000000000..a654398afa
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-1.html
    @@ -0,0 +1,293 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > AdminServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: AdminServlet (com.codahale.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">AdminServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +&nbsp;
    +&nbsp;import javax.servlet.ServletConfig;
    +&nbsp;import javax.servlet.ServletContext;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServlet;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;import java.text.MessageFormat;
    +&nbsp;
    +<b class="fc">&nbsp;public class AdminServlet extends HttpServlet {</b>
    +&nbsp;    public static final String DEFAULT_HEALTHCHECK_URI = &quot;/healthcheck&quot;;
    +&nbsp;    public static final String DEFAULT_METRICS_URI = &quot;/metrics&quot;;
    +&nbsp;    public static final String DEFAULT_PING_URI = &quot;/ping&quot;;
    +&nbsp;    public static final String DEFAULT_THREADS_URI = &quot;/threads&quot;;
    +&nbsp;    public static final String DEFAULT_CPU_PROFILE_URI = &quot;/pprof&quot;;
    +&nbsp;
    +&nbsp;    public static final String METRICS_ENABLED_PARAM_KEY = &quot;metrics-enabled&quot;;
    +&nbsp;    public static final String METRICS_URI_PARAM_KEY = &quot;metrics-uri&quot;;
    +&nbsp;    public static final String PING_ENABLED_PARAM_KEY = &quot;ping-enabled&quot;;
    +&nbsp;    public static final String PING_URI_PARAM_KEY = &quot;ping-uri&quot;;
    +&nbsp;    public static final String THREADS_ENABLED_PARAM_KEY = &quot;threads-enabled&quot;;
    +&nbsp;    public static final String THREADS_URI_PARAM_KEY = &quot;threads-uri&quot;;
    +&nbsp;    public static final String HEALTHCHECK_ENABLED_PARAM_KEY = &quot;healthcheck-enabled&quot;;
    +&nbsp;    public static final String HEALTHCHECK_URI_PARAM_KEY = &quot;healthcheck-uri&quot;;
    +&nbsp;    public static final String SERVICE_NAME_PARAM_KEY = &quot;service-name&quot;;
    +&nbsp;    public static final String CPU_PROFILE_ENABLED_PARAM_KEY = &quot;cpu-profile-enabled&quot;;
    +&nbsp;    public static final String CPU_PROFILE_URI_PARAM_KEY = &quot;cpu-profile-uri&quot;;
    +&nbsp;
    +&nbsp;    private static final String BASE_TEMPLATE =
    +&nbsp;            &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot;%n&quot; +
    +&nbsp;                    &quot;        \&quot;http://www.w3.org/TR/html4/loose.dtd\&quot;&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;html&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;head&gt;%n&quot; +
    +&nbsp;                    &quot;  &lt;title&gt;Metrics{10}&lt;/title&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;/head&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;body&gt;%n&quot; +
    +&nbsp;                    &quot;  &lt;h1&gt;Operational Menu{10}&lt;/h1&gt;%n&quot; +
    +&nbsp;                    &quot;  &lt;ul&gt;%n&quot; +
    +&nbsp;                    &quot;%s&quot; +
    +&nbsp;                    &quot;  &lt;/ul&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;/body&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;/html&gt;&quot;;
    +&nbsp;    private static final String METRICS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{0}{1}?pretty=true\&quot;&gt;Metrics&lt;/a&gt;&lt;/li&gt;%n&quot;;
    +&nbsp;    private static final String PING_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{2}{3}\&quot;&gt;Ping&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    +&nbsp;    private static final String THREADS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{4}{5}\&quot;&gt;Threads&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    +&nbsp;    private static final String HEALTHCHECK_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{6}{7}?pretty=true\&quot;&gt;Healthcheck&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    +&nbsp;    private static final String CPU_PROFILE_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}\&quot;&gt;CPU Profile&lt;/a&gt;&lt;/li&gt;%n&quot; +
    +&nbsp;            &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}?state=blocked\&quot;&gt;CPU Contention&lt;/a&gt;&lt;/li&gt;%n&quot;;
    +&nbsp;
    +&nbsp;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;text/html&quot;;
    +&nbsp;    private static final long serialVersionUID = -2850794040708785318L;
    +&nbsp;
    +&nbsp;    private transient HealthCheckServlet healthCheckServlet;
    +&nbsp;    private transient MetricsServlet metricsServlet;
    +&nbsp;    private transient PingServlet pingServlet;
    +&nbsp;    private transient ThreadDumpServlet threadDumpServlet;
    +&nbsp;    private transient CpuProfileServlet cpuProfileServlet;
    +&nbsp;    private transient boolean metricsEnabled;
    +&nbsp;    private transient String metricsUri;
    +&nbsp;    private transient boolean pingEnabled;
    +&nbsp;    private transient String pingUri;
    +&nbsp;    private transient boolean threadsEnabled;
    +&nbsp;    private transient String threadsUri;
    +&nbsp;    private transient boolean healthcheckEnabled;
    +&nbsp;    private transient String healthcheckUri;
    +&nbsp;    private transient boolean cpuProfileEnabled;
    +&nbsp;    private transient String cpuProfileUri;
    +&nbsp;    private transient String serviceName;
    +&nbsp;    private transient String pageContentTemplate;
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(ServletConfig config) throws ServletException {
    +<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    +<b class="fc">&nbsp;        final StringBuilder servletLinks = new StringBuilder();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.metricsEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.metricsEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(METRICS_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.metricsServlet = new MetricsServlet();</b>
    +<b class="fc">&nbsp;        metricsServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.pingEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.pingEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(PING_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.pingServlet = new PingServlet();</b>
    +<b class="fc">&nbsp;        pingServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.threadsEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.threadsEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(THREADS_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.threadDumpServlet = new ThreadDumpServlet();</b>
    +<b class="fc">&nbsp;        threadDumpServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.healthcheckEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.healthcheckEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(HEALTHCHECK_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.healthCheckServlet = new HealthCheckServlet();</b>
    +<b class="fc">&nbsp;        healthCheckServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.cpuProfileEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.cpuProfileEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(CPU_PROFILE_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.cpuProfileServlet = new CpuProfileServlet();</b>
    +<b class="fc">&nbsp;        cpuProfileServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);</b>
    +<b class="fc">&nbsp;        this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);</b>
    +<b class="fc">&nbsp;        this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);</b>
    +<b class="fc">&nbsp;        this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);</b>
    +<b class="fc">&nbsp;        this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);</b>
    +<b class="fc">&nbsp;        this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final String path = req.getContextPath() + req.getServletPath();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    +<b class="fc">&nbsp;            writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,</b>
    +&nbsp;                    threadsUri, path, healthcheckUri, path, cpuProfileUri,
    +<b class="fc">&nbsp;                    serviceName == null ? &quot;&quot; : &quot; (&quot; + serviceName + &quot;)&quot;));</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final String uri = req.getPathInfo();</b>
    +<b class="fc">&nbsp;        if (uri == null || uri.equals(&quot;/&quot;)) {</b>
    +<b class="fc">&nbsp;            super.service(req, resp);</b>
    +<b class="nc">&nbsp;        } else if (uri.equals(healthcheckUri)) {</b>
    +<b class="nc">&nbsp;            if (healthcheckEnabled) {</b>
    +<b class="nc">&nbsp;                healthCheckServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.startsWith(metricsUri)) {</b>
    +<b class="nc">&nbsp;            if (metricsEnabled) {</b>
    +<b class="nc">&nbsp;                metricsServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.equals(pingUri)) {</b>
    +<b class="nc">&nbsp;            if (pingEnabled) {</b>
    +<b class="nc">&nbsp;                pingServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.equals(threadsUri)) {</b>
    +<b class="nc">&nbsp;            if (threadsEnabled) {</b>
    +<b class="nc">&nbsp;                threadDumpServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.equals(cpuProfileUri)) {</b>
    +<b class="nc">&nbsp;            if (cpuProfileEnabled) {</b>
    +<b class="nc">&nbsp;                cpuProfileServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static String getParam(String initParam, String defaultValue) {
    +<b class="fc">&nbsp;        return initParam == null ? defaultValue : initParam;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-2.html
    new file mode 100644
    index 0000000000..9febf64ef3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-2.html
    @@ -0,0 +1,183 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CpuProfileServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CpuProfileServlet (com.codahale.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CpuProfileServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.time.Duration;
    +&nbsp;import java.util.concurrent.locks.Lock;
    +&nbsp;import java.util.concurrent.locks.ReentrantLock;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServlet;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import com.papertrail.profiler.CpuProfile;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An HTTP servlets which outputs a &lt;a href=&quot;https://github.com/gperftools/gperftools&quot;&gt;pprof&lt;/a&gt; parseable response.
    +&nbsp; */
    +<b class="fc">&nbsp;public class CpuProfileServlet extends HttpServlet {</b>
    +&nbsp;    private static final long serialVersionUID = -668666696530287501L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;pprof/raw&quot;;
    +&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    +&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    +<b class="fc">&nbsp;    private final Lock lock = new ReentrantLock();</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +&nbsp;
    +<b class="fc">&nbsp;        int duration = 10;</b>
    +<b class="fc">&nbsp;        if (req.getParameter(&quot;duration&quot;) != null) {</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                duration = Integer.parseInt(req.getParameter(&quot;duration&quot;));</b>
    +<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    +<b class="nc">&nbsp;                duration = 10;</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        int frequency = 100;</b>
    +<b class="fc">&nbsp;        if (req.getParameter(&quot;frequency&quot;) != null) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                frequency = Integer.parseInt(req.getParameter(&quot;frequency&quot;));</b>
    +<b class="nc">&nbsp;                frequency = Math.min(Math.max(frequency, 1), 1000);</b>
    +<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    +<b class="nc">&nbsp;                frequency = 100;</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        final Thread.State state;
    +<b class="fc">&nbsp;        if (&quot;blocked&quot;.equalsIgnoreCase(req.getParameter(&quot;state&quot;))) {</b>
    +<b class="nc">&nbsp;            state = Thread.State.BLOCKED;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            state = Thread.State.RUNNABLE;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            doProfile(output, duration, frequency, state);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
    +<b class="fc">&nbsp;        if (lock.tryLock()) {</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),</b>
    +&nbsp;                        frequency, state);
    +<b class="fc">&nbsp;                if (profile == null) {</b>
    +<b class="nc">&nbsp;                    throw new RuntimeException(&quot;could not create CpuProfile&quot;);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                profile.writeGoogleProfile(out);</b>
    +&nbsp;                return;
    +&nbsp;            } finally {
    +<b class="fc">&nbsp;                lock.unlock();</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        throw new RuntimeException(&quot;Only one profile request may be active at a time&quot;);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-3.html
    new file mode 100644
    index 0000000000..2866bc453a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-3.html
    @@ -0,0 +1,325 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheckServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheckServlet (com.codahale.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HealthCheckServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HealthCheckServlet$ContextListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/9)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.health.HealthCheck;
    +&nbsp;import com.codahale.metrics.health.HealthCheckFilter;
    +&nbsp;import com.codahale.metrics.health.HealthCheckRegistry;
    +&nbsp;import com.codahale.metrics.json.HealthCheckModule;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    +&nbsp;
    +&nbsp;import javax.servlet.ServletConfig;
    +&nbsp;import javax.servlet.ServletContext;
    +&nbsp;import javax.servlet.ServletContextEvent;
    +&nbsp;import javax.servlet.ServletContextListener;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServlet;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.concurrent.ExecutorService;
    +&nbsp;
    +&nbsp;public class HealthCheckServlet extends HttpServlet {
    +<b class="nc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    +&nbsp;        /**
    +&nbsp;         * @return the {@link HealthCheckRegistry} to inject into the servlet context.
    +&nbsp;         */
    +&nbsp;        protected abstract HealthCheckRegistry getHealthCheckRegistry();
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
    +&nbsp;         * if the health checks should be run in the servlet worker thread.
    +&nbsp;         */
    +&nbsp;        protected ExecutorService getExecutorService() {
    +&nbsp;            // don&#39;t use a thread pool by default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
    +&nbsp;         * or {@link HealthCheckFilter#ALL} if the default should be used.
    +&nbsp;         */
    +&nbsp;        protected HealthCheckFilter getHealthCheckFilter() {
    +<b class="nc">&nbsp;            return HealthCheckFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link ObjectMapper} that shall be used to render health checks,
    +&nbsp;         * or {@code null} if the default object mapper should be used.
    +&nbsp;         */
    +&nbsp;        protected ObjectMapper getObjectMapper() {
    +&nbsp;            // don&#39;t use an object mapper by default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextInitialized(ServletContextEvent event) {
    +<b class="nc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    +<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());</b>
    +<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());</b>
    +<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    +&nbsp;            // no-op
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + &quot;.executor&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + &quot;.healthCheckFilter&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + &quot;.mapper&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + &quot;.httpStatusIndicator&quot;;</b>
    +&nbsp;
    +&nbsp;    private static final long serialVersionUID = -8432996484889177321L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    +&nbsp;    private static final String HTTP_STATUS_INDICATOR_PARAM = &quot;httpStatusIndicator&quot;;
    +&nbsp;
    +&nbsp;    private transient HealthCheckRegistry registry;
    +&nbsp;    private transient ExecutorService executorService;
    +&nbsp;    private transient HealthCheckFilter filter;
    +&nbsp;    private transient ObjectMapper mapper;
    +&nbsp;    private transient boolean httpStatusIndicator;
    +&nbsp;
    +<b class="fc">&nbsp;    public HealthCheckServlet() {</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public HealthCheckServlet(HealthCheckRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(ServletConfig config) throws ServletException {
    +<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    +<b class="fc">&nbsp;        if (null == registry) {</b>
    +<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);</b>
    +<b class="fc">&nbsp;            if (registryAttr instanceof HealthCheckRegistry) {</b>
    +<b class="fc">&nbsp;                this.registry = (HealthCheckRegistry) registryAttr;</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a HealthCheckRegistry instance.&quot;);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);</b>
    +<b class="fc">&nbsp;        if (executorAttr instanceof ExecutorService) {</b>
    +<b class="fc">&nbsp;            this.executorService = (ExecutorService) executorAttr;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);</b>
    +<b class="fc">&nbsp;        if (filterAttr instanceof HealthCheckFilter) {</b>
    +<b class="fc">&nbsp;            filter = (HealthCheckFilter) filterAttr;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        if (filter == null) {</b>
    +<b class="fc">&nbsp;            filter = HealthCheckFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);</b>
    +<b class="fc">&nbsp;        if (mapperAttr instanceof ObjectMapper) {</b>
    +<b class="fc">&nbsp;            this.mapper = (ObjectMapper) mapperAttr;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.mapper = new ObjectMapper();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.mapper.registerModule(new HealthCheckModule());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);</b>
    +<b class="fc">&nbsp;        if (httpStatusIndicatorAttr instanceof Boolean) {</b>
    +<b class="nc">&nbsp;            this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.httpStatusIndicator = true;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void destroy() {
    +<b class="fc">&nbsp;        super.destroy();</b>
    +<b class="fc">&nbsp;        registry.shutdown();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = runHealthChecks();</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        if (results.isEmpty()) {</b>
    +<b class="fc">&nbsp;            resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);</b>
    +<b class="fc">&nbsp;            final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);</b>
    +<b class="fc">&nbsp;            final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;</b>
    +<b class="fc">&nbsp;            if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {</b>
    +<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_OK);</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            getWriter(req).writeValue(output, results);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private ObjectWriter getWriter(HttpServletRequest request) {
    +<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    +<b class="fc">&nbsp;        if (prettyPrint) {</b>
    +<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return mapper.writer();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    +<b class="fc">&nbsp;        if (executorService == null) {</b>
    +<b class="nc">&nbsp;            return registry.runHealthChecks(filter);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return registry.runHealthChecks(executorService, filter);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static boolean isAllHealthy(Map&lt;String, HealthCheck.Result&gt; results) {
    +<b class="fc">&nbsp;        for (HealthCheck.Result result : results.values()) {</b>
    +<b class="fc">&nbsp;            if (!result.isHealthy()) {</b>
    +<b class="fc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return true;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    // visible for testing
    +&nbsp;    ObjectMapper getMapper() {
    +<b class="fc">&nbsp;        return mapper;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-4.html
    new file mode 100644
    index 0000000000..30ce5e2e70
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-4.html
    @@ -0,0 +1,329 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricsServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricsServlet (com.codahale.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricsServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (44/44)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">MetricsServlet$ContextListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (5/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (14/18)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import javax.servlet.ServletConfig;
    +&nbsp;import javax.servlet.ServletContext;
    +&nbsp;import javax.servlet.ServletContextEvent;
    +&nbsp;import javax.servlet.ServletContextListener;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServlet;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricFilter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.json.MetricsModule;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    +&nbsp;import com.fasterxml.jackson.databind.util.JSONPObject;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A servlet which returns the metrics in a given registry as an {@code application/json} response.
    +&nbsp; */
    +&nbsp;public class MetricsServlet extends HttpServlet {
    +&nbsp;    /**
    +&nbsp;     * An abstract {@link ServletContextListener} which allows you to programmatically inject the
    +&nbsp;     * {@link MetricRegistry}, rate and duration units, and allowed origin for
    +&nbsp;     * {@link MetricsServlet}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    +&nbsp;        /**
    +&nbsp;         * @return the {@link MetricRegistry} to inject into the servlet context.
    +&nbsp;         */
    +&nbsp;        protected abstract MetricRegistry getMetricRegistry();
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
    +&nbsp;         * default should be used.
    +&nbsp;         */
    +&nbsp;        protected TimeUnit getRateUnit() {
    +&nbsp;            // use the default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
    +&nbsp;         * the default should be used.
    +&nbsp;         */
    +&nbsp;        protected TimeUnit getDurationUnit() {
    +&nbsp;            // use the default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@code Access-Control-Allow-Origin} header value, if any.
    +&nbsp;         */
    +&nbsp;        protected String getAllowedOrigin() {
    +&nbsp;            // use the default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the name of the parameter used to specify the jsonp callback, if any.
    +&nbsp;         */
    +&nbsp;        protected String getJsonpCallbackParameter() {
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
    +&nbsp;         * the default should be used.
    +&nbsp;         */
    +&nbsp;        protected MetricFilter getMetricFilter() {
    +&nbsp;            // use the default
    +<b class="fc">&nbsp;            return MetricFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextInitialized(ServletContextEvent event) {
    +<b class="fc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    +<b class="fc">&nbsp;            context.setAttribute(METRICS_REGISTRY, getMetricRegistry());</b>
    +<b class="fc">&nbsp;            context.setAttribute(METRIC_FILTER, getMetricFilter());</b>
    +<b class="fc">&nbsp;            if (getDurationUnit() != null) {</b>
    +<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (getRateUnit() != null) {</b>
    +<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (getAllowedOrigin() != null) {</b>
    +<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (getJsonpCallbackParameter() != null) {</b>
    +<b class="nc">&nbsp;                context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    +&nbsp;            // no-op
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.rateUnit&quot;;</b>
    +<b class="fc">&nbsp;    public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.durationUnit&quot;;</b>
    +<b class="fc">&nbsp;    public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + &quot;.showSamples&quot;;</b>
    +<b class="fc">&nbsp;    public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    +<b class="fc">&nbsp;    public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + &quot;.allowedOrigin&quot;;</b>
    +<b class="fc">&nbsp;    public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + &quot;.metricFilter&quot;;</b>
    +<b class="fc">&nbsp;    public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + &quot;.jsonpCallback&quot;;</b>
    +&nbsp;
    +&nbsp;    private static final long serialVersionUID = 1049773947734939602L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    +&nbsp;
    +&nbsp;    protected String allowedOrigin;
    +&nbsp;    protected String jsonpParamName;
    +&nbsp;    protected transient MetricRegistry registry;
    +&nbsp;    protected transient ObjectMapper mapper;
    +&nbsp;
    +<b class="fc">&nbsp;    public MetricsServlet() {</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public MetricsServlet(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(ServletConfig config) throws ServletException {
    +<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    +<b class="fc">&nbsp;        if (null == registry) {</b>
    +<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(METRICS_REGISTRY);</b>
    +<b class="fc">&nbsp;            if (registryAttr instanceof MetricRegistry) {</b>
    +<b class="fc">&nbsp;                this.registry = (MetricRegistry) registryAttr;</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a MetricRegistry instance.&quot;);</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);</b>
    +<b class="fc">&nbsp;        this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        setupMetricsModule(context);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void setupMetricsModule(ServletContext context) {
    +<b class="fc">&nbsp;        final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),</b>
    +&nbsp;                TimeUnit.SECONDS);
    +<b class="fc">&nbsp;        final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),</b>
    +&nbsp;                TimeUnit.SECONDS);
    +<b class="fc">&nbsp;        final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));</b>
    +<b class="fc">&nbsp;        MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);</b>
    +<b class="fc">&nbsp;        if (filter == null) {</b>
    +<b class="fc">&nbsp;            filter = MetricFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,</b>
    +&nbsp;                durationUnit,
    +&nbsp;                showSamples,
    +&nbsp;                filter));
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        if (allowedOrigin != null) {</b>
    +<b class="fc">&nbsp;            resp.setHeader(&quot;Access-Control-Allow-Origin&quot;, allowedOrigin);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            if (jsonpParamName != null &amp;&amp; req.getParameter(jsonpParamName) != null) {</b>
    +<b class="fc">&nbsp;                getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                getWriter(req).writeValue(output, registry);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected ObjectWriter getWriter(HttpServletRequest request) {
    +<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    +<b class="fc">&nbsp;        if (prettyPrint) {</b>
    +<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return mapper.writer();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));</b>
    +<b class="fc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    +<b class="fc">&nbsp;            return defaultValue;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-5.html
    new file mode 100644
    index 0000000000..550e0ad9ba
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-5.html
    @@ -0,0 +1,134 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > PingServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: PingServlet (com.codahale.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">PingServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +&nbsp;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServlet;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An HTTP servlets which outputs a {@code text/plain} {@code &quot;pong&quot;} response.
    +&nbsp; */
    +<b class="fc">&nbsp;public class PingServlet extends HttpServlet {</b>
    +&nbsp;    private static final long serialVersionUID = 3772654177231086757L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    +&nbsp;    private static final String CONTENT = &quot;pong&quot;;
    +&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    +&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    +<b class="fc">&nbsp;            writer.println(CONTENT);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-6.html
    new file mode 100644
    index 0000000000..43aa93f3b5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-6.html
    @@ -0,0 +1,159 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ThreadDumpServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ThreadDumpServlet (com.codahale.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ThreadDumpServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.jvm.ThreadDump;
    +&nbsp;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServlet;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
    +&nbsp; * the VM. Only responds to {@code GET} requests.
    +&nbsp; */
    +<b class="fc">&nbsp;public class ThreadDumpServlet extends HttpServlet {</b>
    +&nbsp;
    +&nbsp;    private static final long serialVersionUID = -2690343532336103046L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    +&nbsp;
    +&nbsp;    private transient ThreadDump threadDump;
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init() throws ServletException {
    +&nbsp;        try {
    +&nbsp;            // Some PaaS like Google App Engine blacklist java.lang.managament
    +<b class="fc">&nbsp;            this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());</b>
    +<b class="nc">&nbsp;        } catch (NoClassDefFoundError ncdfe) {</b>
    +<b class="nc">&nbsp;            this.threadDump = null; // we won&#39;t be able to provide thread dump</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final boolean includeMonitors = getParam(req.getParameter(&quot;monitors&quot;), true);</b>
    +<b class="fc">&nbsp;        final boolean includeSynchronizers = getParam(req.getParameter(&quot;synchronizers&quot;), true);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        if (threadDump == null) {</b>
    +<b class="nc">&nbsp;            resp.getWriter().println(&quot;Sorry your runtime environment does not allow to dump threads.&quot;);</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            threadDump.dump(includeMonitors, includeSynchronizers, output);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static Boolean getParam(String initParam, boolean defaultValue) {
    +<b class="fc">&nbsp;        return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index.html
    new file mode 100644
    index 0000000000..da871b3c62
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..571b16505a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..15a0407037
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..6e5fca734a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..9af739fcd7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..88d343d17c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..fda4ce26b6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..4c4ba418ae
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..2fec7f7d5c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..b2607e9912
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.caffeine3</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/sources/source-1.html
    new file mode 100644
    index 0000000000..eaa5136998
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/sources/source-1.html
    @@ -0,0 +1,220 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricsStatsCounter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.caffeine3</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricsStatsCounter (io.dropwizard.metrics.caffeine3)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricsStatsCounter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;/*
    +&nbsp; * Copyright 2016 Ben Manes. All Rights Reserved.
    +&nbsp; *
    +&nbsp; * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    +&nbsp; * you may not use this file except in compliance with the License.
    +&nbsp; * You may obtain a copy of the License at
    +&nbsp; *
    +&nbsp; *     http://www.apache.org/licenses/LICENSE-2.0
    +&nbsp; *
    +&nbsp; * Unless required by applicable law or agreed to in writing, software
    +&nbsp; * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    +&nbsp; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +&nbsp; * See the License for the specific language governing permissions and
    +&nbsp; * limitations under the License.
    +&nbsp; */
    +&nbsp;package io.dropwizard.metrics.caffeine3;
    +&nbsp;
    +&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;
    +&nbsp;import java.util.EnumMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.LongAdder;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Histogram;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.github.benmanes.caffeine.cache.RemovalCause;
    +&nbsp;import com.github.benmanes.caffeine.cache.stats.CacheStats;
    +&nbsp;import com.github.benmanes.caffeine.cache.stats.StatsCounter;
    +&nbsp;import org.checkerframework.checker.index.qual.NonNegative;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link StatsCounter} instrumented with Dropwizard Metrics.
    +&nbsp; *
    +&nbsp; * @author ben.manes@gmail.com (Ben Manes)
    +&nbsp; * @author John Karp
    +&nbsp; */
    +&nbsp;public final class MetricsStatsCounter implements StatsCounter {
    +&nbsp;  private final Counter hitCount;
    +&nbsp;  private final Counter missCount;
    +&nbsp;  private final Timer loadSuccess;
    +&nbsp;  private final Timer loadFailure;
    +&nbsp;  private final Counter evictionWeight;
    +&nbsp;  private final EnumMap&lt;RemovalCause, Histogram&gt; evictionsWithCause;
    +&nbsp;
    +&nbsp;  // for implementing snapshot()
    +<b class="fc">&nbsp;  private final LongAdder totalLoadTime = new LongAdder();</b>
    +&nbsp;
    +&nbsp;  /**
    +&nbsp;   * Constructs an instance for use by a single cache.
    +&nbsp;   *
    +&nbsp;   * @param registry the registry of metric instances
    +&nbsp;   * @param metricsPrefix the prefix name for the metrics
    +&nbsp;   */
    +<b class="fc">&nbsp;  public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {</b>
    +<b class="fc">&nbsp;    requireNonNull(metricsPrefix);</b>
    +<b class="fc">&nbsp;    hitCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;hits&quot;));</b>
    +<b class="fc">&nbsp;    missCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;misses&quot;));</b>
    +<b class="fc">&nbsp;    loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-success&quot;));</b>
    +<b class="fc">&nbsp;    loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-failure&quot;));</b>
    +<b class="fc">&nbsp;    evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, &quot;evictions-weight&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;    evictionsWithCause = new EnumMap&lt;&gt;(RemovalCause.class);</b>
    +<b class="fc">&nbsp;    for (RemovalCause cause : RemovalCause.values()) {</b>
    +<b class="fc">&nbsp;      evictionsWithCause.put(</b>
    +&nbsp;          cause,
    +<b class="fc">&nbsp;          registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;, cause.name())));</b>
    +&nbsp;    }
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordHits(int count) {
    +<b class="fc">&nbsp;    hitCount.inc(count);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordMisses(int count) {
    +<b class="fc">&nbsp;    missCount.inc(count);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordLoadSuccess(long loadTime) {
    +<b class="fc">&nbsp;    loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);</b>
    +<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordLoadFailure(long loadTime) {
    +<b class="fc">&nbsp;    loadFailure.update(loadTime, TimeUnit.NANOSECONDS);</b>
    +<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordEviction(@NonNegative int weight, RemovalCause cause) {
    +<b class="fc">&nbsp;    evictionsWithCause.get(cause).update(weight);</b>
    +<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public CacheStats snapshot() {
    +<b class="fc">&nbsp;    return CacheStats.of(</b>
    +<b class="fc">&nbsp;        hitCount.getCount(),</b>
    +<b class="fc">&nbsp;        missCount.getCount(),</b>
    +<b class="fc">&nbsp;        loadSuccess.getCount(),</b>
    +<b class="fc">&nbsp;        loadFailure.getCount(),</b>
    +<b class="fc">&nbsp;        totalLoadTime.sum(),</b>
    +<b class="fc">&nbsp;        evictionsWithCause.values().stream().mapToLong(Histogram::getCount).sum(),</b>
    +<b class="fc">&nbsp;        evictionWeight.getCount());</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public String toString() {
    +<b class="nc">&nbsp;    return snapshot().toString();</b>
    +&nbsp;  }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index.html
    new file mode 100644
    index 0000000000..907ba91e62
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.5%
    +  </span>
    +  <span class="absValue">
    +    (189/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..d49106d5c7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.5%
    +  </span>
    +  <span class="absValue">
    +    (189/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..c5be4fe978
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.5%
    +  </span>
    +  <span class="absValue">
    +    (189/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..b8e34e9831
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_CLASS.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.5%
    +  </span>
    +  <span class="absValue">
    +    (189/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..ccbb113c3e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.5%
    +  </span>
    +  <span class="absValue">
    +    (189/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..77b329253d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_LINE.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.5%
    +  </span>
    +  <span class="absValue">
    +    (189/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..2755079e0c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.5%
    +  </span>
    +  <span class="absValue">
    +    (189/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..aa90ba7813
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_METHOD.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.5%
    +  </span>
    +  <span class="absValue">
    +    (189/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..795930bd95
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.5%
    +  </span>
    +  <span class="absValue">
    +    (189/200)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..1b2df9e361
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jersey31</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.5%
    +  </span>
    +  <span class="absValue">
    +    (189/200)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/sources/source-1.html
    new file mode 100644
    index 0000000000..6609b0feeb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/sources/source-1.html
    @@ -0,0 +1,831 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jersey31</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (io.dropwizard.metrics.jersey31)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (16/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.1%
    +  </span>
    +  <span class="absValue">
    +    (82/89)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.2%
    +  </span>
    +  <span class="absValue">
    +    (16/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (28/28)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (44/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.5%
    +  </span>
    +  <span class="absValue">
    +    (189/200)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jersey31;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Reservoir;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    +&nbsp;import com.codahale.metrics.annotation.Metered;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import com.codahale.metrics.annotation.Timed;
    +&nbsp;import jakarta.ws.rs.core.Configuration;
    +&nbsp;import jakarta.ws.rs.ext.Provider;
    +&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    +&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    +&nbsp;import org.glassfish.jersey.server.model.Resource;
    +&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    +&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    +&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    +&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    +&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    +&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    +&nbsp;
    +&nbsp;import java.lang.annotation.Annotation;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An application event listener that listens for Jersey application initialization to
    +&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    +&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    +&nbsp; * request events indicating that the method is about to be invoked, or just got done
    +&nbsp; * being invoked.
    +&nbsp; */
    +&nbsp;@Provider
    +&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    +&nbsp;
    +<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    +<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    +&nbsp;    private static final String TOTAL = &quot;total&quot;;
    +&nbsp;
    +&nbsp;    private final MetricRegistry metrics;
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final boolean trackFilters;
    +&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Construct an application event listener using the given metrics registry.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    +&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    +&nbsp;     *
    +&nbsp;     * @param metrics a {@link MetricRegistry}
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    +<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Constructs a custom application listener.
    +&nbsp;     *
    +&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    +&nbsp;                                                         final boolean trackFilters) {
    +<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Constructs a custom application listener.
    +&nbsp;     *
    +&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    +&nbsp;                                                         final boolean trackFilters,
    +<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    +<b class="fc">&nbsp;        this.metrics = metrics;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    +<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A private class to maintain the metric for a method annotated with the
    +&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    +&nbsp;     * and a cause for which the meter should be updated.
    +&nbsp;     */
    +&nbsp;    private static class ExceptionMeterMetric {
    +&nbsp;        public final Meter meter;
    +&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    +&nbsp;
    +&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    +&nbsp;                                    final ResourceMethod method,
    +<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    +<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    +<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    +<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    +<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A private class to maintain the metrics for a method annotated with the
    +&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    +&nbsp;     * different response codes
    +&nbsp;     */
    +&nbsp;    private static class ResponseMeterMetric {
    +<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;        private final List&lt;Meter&gt; meters;
    +&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;        private final MetricRegistry metricRegistry;
    +&nbsp;        private final String metricName;
    +&nbsp;        private final ResponseMeteredLevel level;
    +&nbsp;
    +&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    +&nbsp;                                   final ResourceMethod method,
    +<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    +<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    +<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    +<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    +<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    +<b class="fc">&nbsp;                    )) : Collections.emptyList();</b>
    +<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public void mark(int statusCode) {
    +<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    +<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    +<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;            return responseCodeMeters</b>
    +<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    +&nbsp;
    +&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    +&nbsp;        private final Clock clock;
    +&nbsp;        private final long start;
    +&nbsp;        private Timer.Context resourceMethodStartContext;
    +&nbsp;        private Timer.Context requestMatchedContext;
    +&nbsp;        private Timer.Context responseFiltersStartContext;
    +&nbsp;
    +<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    +<b class="fc">&nbsp;            this.timers = timers;</b>
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            start = clock.getTick();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            switch (event.getType()) {</b>
    +&nbsp;                case RESOURCE_METHOD_START:
    +<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case REQUEST_MATCHED:
    +<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case RESP_FILTERS_START:
    +<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case RESOURCE_METHOD_FINISHED:
    +<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    +<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case REQUEST_FILTERED:
    +<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    +<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case RESP_FILTERS_FINISHED:
    +<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    +<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case FINISHED:
    +<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    +<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    +<b class="fc">&nbsp;                        if (timer != null) {</b>
    +<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    +&nbsp;                        }
    +<b class="fc">&nbsp;                    }</b>
    +&nbsp;                    break;
    +&nbsp;                default:
    +&nbsp;                    break;
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer timer(RequestEvent event) {
    +<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    +<b class="fc">&nbsp;                return null;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer.Context context(RequestEvent event) {
    +<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    +<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    +&nbsp;
    +<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    +<b class="fc">&nbsp;            this.meters = meters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    +<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    +<b class="fc">&nbsp;                if (meter != null) {</b>
    +<b class="fc">&nbsp;                    meter.mark();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    +&nbsp;
    +<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    +<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    +<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    +<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;                if (metric != null) {</b>
    +<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    +<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    +<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    +<b class="fc">&nbsp;                        metric.meter.mark();</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    +&nbsp;
    +<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    +<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    +<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    +<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;                if (metric != null) {</b>
    +<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    +<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    +<b class="nc">&nbsp;                        metric.mark(500);</b>
    +<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    +<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    +&nbsp;        private final RequestEventListener[] listeners;
    +&nbsp;
    +<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    +<b class="fc">&nbsp;            this.listeners = listeners;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(final RequestEvent event) {
    +<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    +<b class="fc">&nbsp;                listener.onEvent(event);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onEvent(ApplicationEvent event) {
    +<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    +<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    +<b class="fc">&nbsp;        return resourceModel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    +<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    +<b class="fc">&nbsp;        return subResourceModel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    +<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    +<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    +<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    +<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    +<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    +<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    +<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    +<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    +&nbsp;
    +<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    +<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    +<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    +<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    +<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    +<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    +<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    +<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    +<b class="fc">&nbsp;                }</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    +<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    +&nbsp;                new TimerRequestEventListener(timers, clock),
    +&nbsp;                new MeterRequestEventListener(meters),
    +&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    +&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    +&nbsp;
    +<b class="fc">&nbsp;        return listener;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    +<b class="fc">&nbsp;        T annotation = null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    +<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (annotation != null) {</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return annotation;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    +<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    +&nbsp;            return;
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    +<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    +<b class="fc">&nbsp;        if (trackFilters) {</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    +<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    +<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    +<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    +&nbsp;                              final ResourceMethod method,
    +&nbsp;                              final Timed timed,
    +&nbsp;                              final String... suffixes) {
    +<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    +<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    +&nbsp;                              final ResourceMethod method,
    +&nbsp;                              final Metered metered) {
    +<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    +<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    +&nbsp;                                       final String... suffixes) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;        final String metricName;
    +<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    +<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    +&nbsp;
    +&nbsp;        private final RequestEvent.Type type;
    +&nbsp;        private final Method method;
    +&nbsp;
    +<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    +<b class="fc">&nbsp;            this.type = type;</b>
    +<b class="fc">&nbsp;            this.method = method;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod finished(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean equals(Object o) {
    +<b class="fc">&nbsp;            if (this == o) {</b>
    +<b class="nc">&nbsp;                return true;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (type != that.type) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return method.equals(that.method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public int hashCode() {
    +<b class="fc">&nbsp;            int result = type.hashCode();</b>
    +<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    +<b class="fc">&nbsp;            return result;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/sources/source-2.html
    new file mode 100644
    index 0000000000..86c318d674
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/sources/source-2.html
    @@ -0,0 +1,201 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricsFeature</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jersey31</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricsFeature (io.dropwizard.metrics.jersey31)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricsFeature</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jersey31;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Reservoir;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;import jakarta.ws.rs.core.Feature;
    +&nbsp;import jakarta.ws.rs.core.FeatureContext;
    +&nbsp;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    +&nbsp; * for recording request events.
    +&nbsp; */
    +&nbsp;public class MetricsFeature implements Feature {
    +&nbsp;
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final boolean trackFilters;
    +&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    +<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    +<b class="fc">&nbsp;        this(registry, clock, false);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    +<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    +<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public MetricsFeature(String registryName) {
    +<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A call-back method called when the feature is to be enabled in a given
    +&nbsp;     * runtime configuration scope.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    +&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    +&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    +&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    +&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
    +&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
    +&nbsp;     * would return {@code false}.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     *
    +&nbsp;     * @param context configurable context in which the feature should be enabled.
    +&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    +&nbsp;     * otherwise.
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public boolean configure(FeatureContext context) {
    +<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    +<b class="fc">&nbsp;        return true;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index.html
    new file mode 100644
    index 0000000000..625c7fa849
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..326f9a589a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..f07ac9a129
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..94862abdf0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..6847c2a2b8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..b27af96f09
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..0cd1a57133
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..234fea33be
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..9cd9b783df
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..5872132dc2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-1.html
    new file mode 100644
    index 0000000000..8f4c052913
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-1.html
    @@ -0,0 +1,127 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ResponseMeteredLevel</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ResponseMeteredLevel (com.codahale.metrics.annotation)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ResponseMeteredLevel</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * {@link ResponseMeteredLevel} is a parameter for the {@link ResponseMetered} annotation.
    +&nbsp; * The constants of this enumerated type decide what meters are included when a class
    +&nbsp; * or method is annotated with the {@link ResponseMetered} annotation.
    +&nbsp; */
    +<b class="fc">&nbsp;public enum ResponseMeteredLevel {</b>
    +&nbsp;    /**
    +&nbsp;     * Include meters for 1xx/2xx/3xx/4xx/5xx responses
    +&nbsp;     */
    +<b class="fc">&nbsp;    COARSE,</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Include meters for every response code (200, 201, 303, 304, 401, 404, 501, etc.)
    +&nbsp;     */
    +<b class="fc">&nbsp;    DETAILED,</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Include meters for every response code in addition to top level 1xx/2xx/3xx/4xx/5xx responses
    +&nbsp;     */
    +<b class="fc">&nbsp;    ALL;</b>
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-2.html
    new file mode 100644
    index 0000000000..30d47dedb0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-2.html
    @@ -0,0 +1,133 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ExceptionMetered</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ExceptionMetered (com.codahale.metrics.annotation)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">ExceptionMetered</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    +&nbsp;
    +&nbsp;import java.lang.annotation.Documented;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Inherited;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An annotation for marking a method of an annotated object as metered.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Given a method like this:
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}ExceptionMetered(name = &quot;fancyName&quot;, cause=IllegalArgumentException.class)
    +&nbsp; *     public String fancyName(String name) {
    +&nbsp; *         return &quot;Sir Captain &quot; + name;
    +&nbsp; *     }
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A meter for the defining class with the name {@code fancyName} will be created and each time the
    +&nbsp; * {@code #fancyName(String)} throws an exception of type {@code cause} (or a subclass), the meter
    +&nbsp; * will be marked.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A name for the metric can be specified as an annotation parameter, otherwise, the metric will be
    +&nbsp; * named based on the method name.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * For instance, given a declaration of
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}ExceptionMetered
    +&nbsp; *     public String fancyName(String name) {
    +&nbsp; *         return &quot;Sir Captain &quot; + name;
    +&nbsp; *     }
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A meter named {@code fancyName.exceptions} will be created and marked every time an exception is
    +&nbsp; * thrown.
    +&nbsp; */
    +&nbsp;@Inherited
    +&nbsp;@Documented
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface ExceptionMetered {
    +&nbsp;    /**
    +&nbsp;     * The default suffix for meter names.
    +&nbsp;     */
    +&nbsp;    String DEFAULT_NAME_SUFFIX = &quot;exceptions&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return The name of the meter. If not specified, the meter will be given a name based on the method
    +&nbsp;     * it decorates and the suffix &quot;Exceptions&quot;.
    +&nbsp;     */
    +&nbsp;    String name() default &quot;&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    +&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    +&nbsp;     */
    +&nbsp;    boolean absolute() default false;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return The type of exceptions that the meter will catch and count.
    +&nbsp;     */
    +&nbsp;    Class&lt;? extends Throwable&gt; cause() default Exception.class;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-3.html
    new file mode 100644
    index 0000000000..db03ffa0dc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-3.html
    @@ -0,0 +1,121 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CachedGauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CachedGauge (com.codahale.metrics.annotation)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">CachedGauge</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    +&nbsp;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An annotation for marking a method as a gauge, which caches the result for a specified time.
    +&nbsp; *
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Given a method like this:
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}CachedGauge(name = &quot;queueSize&quot;, timeout = 30, timeoutUnit = TimeUnit.SECONDS)
    +&nbsp; *     public int getQueueSize() {
    +&nbsp; *         return queue.getSize();
    +&nbsp; *     }
    +&nbsp; *
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; *
    +&nbsp; * A gauge for the defining class with the name queueSize will be created which uses the annotated method&#39;s
    +&nbsp; * return value as its value, and which caches the result for 30 seconds.
    +&nbsp; *
    +&nbsp; * @since 3.1
    +&nbsp; */
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface CachedGauge {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return The name of the counter.
    +&nbsp;     */
    +&nbsp;    String name() default &quot;&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    +&nbsp;     * relative to the annotated class.
    +&nbsp;     */
    +&nbsp;    boolean absolute() default false;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return The amount of time to cache the result
    +&nbsp;     */
    +&nbsp;    long timeout();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return The unit of timeout
    +&nbsp;     */
    +&nbsp;    TimeUnit timeoutUnit() default TimeUnit.MILLISECONDS;
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-4.html
    new file mode 100644
    index 0000000000..6b6d5c18a3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-4.html
    @@ -0,0 +1,107 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Timed</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Timed (com.codahale.metrics.annotation)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">Timed</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    +&nbsp;
    +&nbsp;import java.lang.annotation.Documented;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Inherited;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An annotation for marking a method of an annotated object as timed.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Given a method like this:
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}Timed(name = &quot;fancyName&quot;)
    +&nbsp; *     public String fancyName(String name) {
    +&nbsp; *         return &quot;Sir Captain &quot; + name;
    +&nbsp; *     }
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A timer for the defining class with the name {@code fancyName} will be created and each time the
    +&nbsp; * {@code #fancyName(String)} method is invoked, the method&#39;s execution will be timed.
    +&nbsp; */
    +&nbsp;@Inherited
    +&nbsp;@Documented
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface Timed {
    +&nbsp;    /**
    +&nbsp;     * @return The name of the timer.
    +&nbsp;     */
    +&nbsp;    String name() default &quot;&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    +&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    +&nbsp;     */
    +&nbsp;    boolean absolute() default false;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-5.html
    new file mode 100644
    index 0000000000..8267f7658a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-5.html
    @@ -0,0 +1,121 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Counted</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Counted (com.codahale.metrics.annotation)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">Counted</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    +&nbsp;
    +&nbsp;import java.lang.annotation.Documented;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Inherited;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An annotation for marking a method of an annotated object as counted.
    +&nbsp; *
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Given a method like this:
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}Counted(name = &quot;fancyName&quot;)
    +&nbsp; *     public String fancyName(String name) {
    +&nbsp; *         return &quot;Sir Captain &quot; + name;
    +&nbsp; *     }
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A counter for the defining class with the name {@code fancyName} will be created and each time the
    +&nbsp; * {@code #fancyName(String)} method is invoked, the counter will be marked.
    +&nbsp; *
    +&nbsp; * @since 3.1
    +&nbsp; */
    +&nbsp;@Inherited
    +&nbsp;@Documented
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface Counted {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return The name of the counter.
    +&nbsp;     */
    +&nbsp;    String name() default &quot;&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    +&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    +&nbsp;     */
    +&nbsp;    boolean absolute() default false;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return 
    +&nbsp;     * If {@code false} (default), the counter is decremented when the annotated
    +&nbsp;     * method returns, counting current invocations of the annotated method.
    +&nbsp;     * If {@code true}, the counter increases monotonically, counting total
    +&nbsp;     * invocations of the annotated method.
    +&nbsp;     */
    +&nbsp;    boolean monotonic() default false;
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-6.html
    new file mode 100644
    index 0000000000..c407c3398e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-6.html
    @@ -0,0 +1,103 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Gauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Gauge (com.codahale.metrics.annotation)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">Gauge</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    +&nbsp;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An annotation for marking a method of an annotated object as a gauge.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Given a method like this:
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}Gauge(name = &quot;queueSize&quot;)
    +&nbsp; *     public int getQueueSize() {
    +&nbsp; *         return queue.size;
    +&nbsp; *     }
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A gauge for the defining class with the name {@code queueSize} will be created which uses the
    +&nbsp; * annotated method&#39;s return value as its value.
    +&nbsp; */
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface Gauge {
    +&nbsp;    /**
    +&nbsp;     * @return The gauge&#39;s name.
    +&nbsp;     */
    +&nbsp;    String name() default &quot;&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    +&nbsp;     * relative to the annotated class.
    +&nbsp;     */
    +&nbsp;    boolean absolute() default false;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-7.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-7.html
    new file mode 100644
    index 0000000000..6661832e07
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-7.html
    @@ -0,0 +1,113 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ResponseMetered</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ResponseMetered (com.codahale.metrics.annotation)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">ResponseMetered</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    +&nbsp;
    +&nbsp;import java.lang.annotation.Documented;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Inherited;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An annotation for marking a method of an annotated object as metered.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Given a method like this:
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}ResponseMetered(name = &quot;fancyName&quot;, level = ResponseMeteredLevel.ALL)
    +&nbsp; *     public String fancyName(String name) {
    +&nbsp; *         return &quot;Sir Captain &quot; + name;
    +&nbsp; *     }
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Meters for the defining class with the name {@code fancyName} will be created for response codes
    +&nbsp; * based on the ResponseMeteredLevel selected. Each time the {@code #fancyName(String)} method is invoked,
    +&nbsp; * the appropriate response meter will be marked.
    +&nbsp; */
    +&nbsp;@Inherited
    +&nbsp;@Documented
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface ResponseMetered {
    +&nbsp;    /**
    +&nbsp;     * @return The name of the meter.
    +&nbsp;     */
    +&nbsp;    String name() default &quot;&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    +&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    +&nbsp;     */
    +&nbsp;    boolean absolute() default false;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return the ResponseMeteredLevel which decides which response code meters are marked.
    +&nbsp;     */
    +&nbsp;    ResponseMeteredLevel level() default ResponseMeteredLevel.COARSE;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-8.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-8.html
    new file mode 100644
    index 0000000000..667266c0b8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-8.html
    @@ -0,0 +1,107 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Metered</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Metered (com.codahale.metrics.annotation)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">Metered</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    +&nbsp;
    +&nbsp;import java.lang.annotation.Documented;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Inherited;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An annotation for marking a method of an annotated object as metered.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Given a method like this:
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}Metered(name = &quot;fancyName&quot;)
    +&nbsp; *     public String fancyName(String name) {
    +&nbsp; *         return &quot;Sir Captain &quot; + name;
    +&nbsp; *     }
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A meter for the defining class with the name {@code fancyName} will be created and each time the
    +&nbsp; * {@code #fancyName(String)} method is invoked, the meter will be marked.
    +&nbsp; */
    +&nbsp;@Inherited
    +&nbsp;@Documented
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface Metered {
    +&nbsp;    /**
    +&nbsp;     * @return The name of the meter.
    +&nbsp;     */
    +&nbsp;    String name() default &quot;&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    +&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    +&nbsp;     */
    +&nbsp;    boolean absolute() default false;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-9.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-9.html
    new file mode 100644
    index 0000000000..a96c1d585c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-9.html
    @@ -0,0 +1,116 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Metric</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Metric (com.codahale.metrics.annotation)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">Metric</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    +&nbsp;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An annotation requesting that a metric be injected or registered.
    +&nbsp; *
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Given a field like this:
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}Metric
    +&nbsp; *     public Histogram histogram;
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A meter of the field&#39;s type will be created and injected into managed objects.
    +&nbsp; * It will be up to the user to interact with the metric. This annotation
    +&nbsp; * can be used on fields of type Meter, Timer, Counter, and Histogram.
    +&nbsp; *
    +&nbsp; * &lt;p&gt;
    +&nbsp; * This may also be used to register a metric, which is useful for creating a histogram with
    +&nbsp; * a custom Reservoir.
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}Metric
    +&nbsp; *     public Histogram uniformHistogram = new Histogram(new UniformReservoir());
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; *
    +&nbsp; * @since 3.1
    +&nbsp; */
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface Metric {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return The name of the metric.
    +&nbsp;     */
    +&nbsp;    String name() default &quot;&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false},
    +&nbsp;     * use the given name relative to the annotated class.
    +&nbsp;     */
    +&nbsp;    boolean absolute() default false;
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index.html
    new file mode 100644
    index 0000000000..0fcd94843f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..c3cb7a12ff
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..69bbc96de3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..6a61c2b3fb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_CLASS.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..2dce3f4349
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..0234da2a6b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_LINE.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..7dc38e3ff9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..0e4b3d5339
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_METHOD.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..b3f568a386
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..fe61ce857d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-1.html
    new file mode 100644
    index 0000000000..898aab0a5d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-1.html
    @@ -0,0 +1,193 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedConnectionFactory</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty10)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedConnectionFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedConnectionFactory$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.eclipse.jetty.io.Connection;
    +&nbsp;import org.eclipse.jetty.io.EndPoint;
    +&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    +&nbsp;import org.eclipse.jetty.server.Connector;
    +&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;
    +<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    +&nbsp;    private final ConnectionFactory connectionFactory;
    +&nbsp;    private final Timer timer;
    +&nbsp;    private final Counter counter;
    +&nbsp;
    +&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    +<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    +<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    +<b class="fc">&nbsp;        this.timer = timer;</b>
    +<b class="fc">&nbsp;        this.counter = counter;</b>
    +<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getProtocol() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public List&lt;String&gt; getProtocols() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    +<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    +<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    +&nbsp;            private Timer.Context context;
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onOpened(Connection connection) {
    +<b class="fc">&nbsp;                this.context = timer.time();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.inc();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onClosed(Connection connection) {
    +<b class="fc">&nbsp;                context.stop();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.dec();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        return connection;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-2.html
    new file mode 100644
    index 0000000000..14375cc103
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-2.html
    @@ -0,0 +1,746 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHandler</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty10)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHandler</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (113/131)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$7</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
    +&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.server.Handler;
    +&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    +&nbsp;
    +&nbsp;import javax.servlet.AsyncEvent;
    +&nbsp;import javax.servlet.AsyncListener;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    +&nbsp; * instance.
    +&nbsp; */
    +<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    +&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    +&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    +&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    +&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    +&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    +&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    +&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    +&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    +&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    +&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    +&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    +&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    +&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    +&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    +&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    +&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    +&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    +&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    +&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;
    +&nbsp;    private String name;
    +&nbsp;    private final String prefix;
    +&nbsp;
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    private Timer requests;
    +&nbsp;
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    private Timer dispatches;
    +&nbsp;
    +&nbsp;    // the number of active requests
    +&nbsp;    private Counter activeRequests;
    +&nbsp;
    +&nbsp;    // the number of active dispatches
    +&nbsp;    private Counter activeDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    private Counter activeSuspended;
    +&nbsp;
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    private Meter asyncDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    private Meter asyncTimeouts;
    +&nbsp;
    +&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    private List&lt;Meter&gt; responses;
    +&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;
    +&nbsp;    private Timer getRequests;
    +&nbsp;    private Timer postRequests;
    +&nbsp;    private Timer headRequests;
    +&nbsp;    private Timer putRequests;
    +&nbsp;    private Timer deleteRequests;
    +&nbsp;    private Timer optionsRequests;
    +&nbsp;    private Timer traceRequests;
    +&nbsp;    private Timer connectRequests;
    +&nbsp;    private Timer moveRequests;
    +&nbsp;    private Timer otherRequests;
    +&nbsp;
    +&nbsp;    private AsyncListener listener;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    +<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getName() {
    +<b class="fc">&nbsp;        return name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setName(String name) {
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    +&nbsp;            ));
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                public Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    +<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    +<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    +<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void handle(String path,
    +&nbsp;                       Request request,
    +&nbsp;                       HttpServletRequest httpRequest,
    +&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="nc">&nbsp;            activeSuspended.dec();</b>
    +<b class="nc">&nbsp;            if (state.getState() == HttpChannelState.State.HANDLING) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            activeDispatches.dec();</b>
    +<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.inc();</b>
    +<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    +&nbsp;            }
    +&nbsp;            // else onCompletion will handle it.
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="fc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    };
    +&nbsp;
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    +<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    +<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    +<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.dec();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-3.html
    new file mode 100644
    index 0000000000..bdb47490d4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-3.html
    @@ -0,0 +1,706 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty10)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpChannelListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (20/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.6%
    +  </span>
    +  <span class="absValue">
    +    (90/109)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$7</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.7%
    +  </span>
    +  <span class="absValue">
    +    (8/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
    +&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    +&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;
    +&nbsp;import javax.servlet.AsyncEvent;
    +&nbsp;import javax.servlet.AsyncListener;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    +&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    +&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    +&nbsp; *
    +&nbsp; * @since TBD
    +&nbsp; */
    +<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    +&nbsp;        implements Listener {
    +<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    private final Timer requests;
    +&nbsp;
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    private final Timer dispatches;
    +&nbsp;
    +&nbsp;    // the number of active requests
    +&nbsp;    private final Counter activeRequests;
    +&nbsp;
    +&nbsp;    // the number of active dispatches
    +&nbsp;    private final Counter activeDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    private final Counter activeSuspended;
    +&nbsp;
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    private final Meter asyncDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    private final Meter asyncTimeouts;
    +&nbsp;
    +&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    private final List&lt;Meter&gt; responses;
    +&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;    private final String prefix;
    +&nbsp;    private final Timer getRequests;
    +&nbsp;    private final Timer postRequests;
    +&nbsp;    private final Timer headRequests;
    +&nbsp;    private final Timer putRequests;
    +&nbsp;    private final Timer deleteRequests;
    +&nbsp;    private final Timer optionsRequests;
    +&nbsp;    private final Timer traceRequests;
    +&nbsp;    private final Timer connectRequests;
    +&nbsp;    private final Timer moveRequests;
    +&nbsp;    private final Timer otherRequests;
    +&nbsp;
    +&nbsp;    private final AsyncListener listener;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param pref     the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    +<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param pref     the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    +<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    +<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestBegin(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onBeforeDispatch(final Request request) {
    +<b class="fc">&nbsp;        before(request);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onAfterDispatch(final Request request) {
    +<b class="fc">&nbsp;        after(request);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestContentEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestTrailers(final Request request) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseBegin(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseCommit(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onComplete(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    private void before(final Request request) {
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            activeSuspended.dec();</b>
    +<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void after(final Request request) {
    +<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    +<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.dec();</b>
    +<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    +<b class="fc">&nbsp;            activeSuspended.inc();</b>
    +<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    +&nbsp;        }
    +&nbsp;        // else onCompletion will handle it.
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="fc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    };
    +&nbsp;
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    +<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    +<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    +<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    +<b class="fc">&nbsp;                activeSuspended.dec();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-4.html
    new file mode 100644
    index 0000000000..9f900fb717
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-4.html
    @@ -0,0 +1,345 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty10)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedQueuedThreadPool</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.4%
    +  </span>
    +  <span class="absValue">
    +    (27/32)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import org.eclipse.jetty.util.annotation.Name;
    +&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    +&nbsp;
    +&nbsp;import java.util.concurrent.BlockingQueue;
    +&nbsp;import java.util.concurrent.ThreadFactory;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    +&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    +&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    +&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    +&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    +&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;    private String prefix;
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, 200);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    +&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    +<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getPrefix() {
    +<b class="nc">&nbsp;        return prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setPrefix(String prefix) {
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    +&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    +<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index.html
    new file mode 100644
    index 0000000000..06a1fda11a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..53f9613856
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..0679f0a8e6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..99936d076e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_CLASS.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..57344da59d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..24bafda1c0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_LINE.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..01a90656b1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..d22da20d1d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_METHOD.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..257137987a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..9fa1abd5a0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty11</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-1.html
    new file mode 100644
    index 0000000000..d7837deb00
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-1.html
    @@ -0,0 +1,193 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedConnectionFactory</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty11)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedConnectionFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedConnectionFactory$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.eclipse.jetty.io.Connection;
    +&nbsp;import org.eclipse.jetty.io.EndPoint;
    +&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    +&nbsp;import org.eclipse.jetty.server.Connector;
    +&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;
    +<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    +&nbsp;    private final ConnectionFactory connectionFactory;
    +&nbsp;    private final Timer timer;
    +&nbsp;    private final Counter counter;
    +&nbsp;
    +&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    +<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    +<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    +<b class="fc">&nbsp;        this.timer = timer;</b>
    +<b class="fc">&nbsp;        this.counter = counter;</b>
    +<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getProtocol() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public List&lt;String&gt; getProtocols() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    +<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    +<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    +&nbsp;            private Timer.Context context;
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onOpened(Connection connection) {
    +<b class="fc">&nbsp;                this.context = timer.time();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.inc();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onClosed(Connection connection) {
    +<b class="fc">&nbsp;                context.stop();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.dec();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        return connection;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-2.html
    new file mode 100644
    index 0000000000..bfc382a62f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-2.html
    @@ -0,0 +1,745 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHandler</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty11)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHandler</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (113/131)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$7</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import jakarta.servlet.AsyncEvent;
    +&nbsp;import jakarta.servlet.AsyncListener;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
    +&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.server.Handler;
    +&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    +&nbsp; * instance.
    +&nbsp; */
    +<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    +&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    +&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    +&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    +&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    +&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    +&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    +&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    +&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    +&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    +&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    +&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    +&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    +&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    +&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    +&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    +&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    +&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    +&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    +&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;
    +&nbsp;    private String name;
    +&nbsp;    private final String prefix;
    +&nbsp;
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    private Timer requests;
    +&nbsp;
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    private Timer dispatches;
    +&nbsp;
    +&nbsp;    // the number of active requests
    +&nbsp;    private Counter activeRequests;
    +&nbsp;
    +&nbsp;    // the number of active dispatches
    +&nbsp;    private Counter activeDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    private Counter activeSuspended;
    +&nbsp;
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    private Meter asyncDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    private Meter asyncTimeouts;
    +&nbsp;
    +&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    private List&lt;Meter&gt; responses;
    +&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;
    +&nbsp;    private Timer getRequests;
    +&nbsp;    private Timer postRequests;
    +&nbsp;    private Timer headRequests;
    +&nbsp;    private Timer putRequests;
    +&nbsp;    private Timer deleteRequests;
    +&nbsp;    private Timer optionsRequests;
    +&nbsp;    private Timer traceRequests;
    +&nbsp;    private Timer connectRequests;
    +&nbsp;    private Timer moveRequests;
    +&nbsp;    private Timer otherRequests;
    +&nbsp;
    +&nbsp;    private AsyncListener listener;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    +<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getName() {
    +<b class="fc">&nbsp;        return name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setName(String name) {
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    +&nbsp;                    ));
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                public Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    +<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    +<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    +<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void handle(String path,
    +&nbsp;                       Request request,
    +&nbsp;                       HttpServletRequest httpRequest,
    +&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="nc">&nbsp;            activeSuspended.dec();</b>
    +<b class="nc">&nbsp;            if (state.getState() == HttpChannelState.State.HANDLING) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            activeDispatches.dec();</b>
    +<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.inc();</b>
    +<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    +&nbsp;            }
    +&nbsp;            // else onCompletion will handle it.
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="fc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    };
    +&nbsp;
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    +<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    +<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    +<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.dec();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-3.html
    new file mode 100644
    index 0000000000..0d5f325b49
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-3.html
    @@ -0,0 +1,706 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty11)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpChannelListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (20/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.6%
    +  </span>
    +  <span class="absValue">
    +    (90/109)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$7</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.7%
    +  </span>
    +  <span class="absValue">
    +    (8/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import jakarta.servlet.AsyncEvent;
    +&nbsp;import jakarta.servlet.AsyncListener;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
    +&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    +&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    +&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    +&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    +&nbsp; *
    +&nbsp; * @since TBD
    +&nbsp; */
    +<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    +&nbsp;        implements Listener {
    +<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    private final Timer requests;
    +&nbsp;
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    private final Timer dispatches;
    +&nbsp;
    +&nbsp;    // the number of active requests
    +&nbsp;    private final Counter activeRequests;
    +&nbsp;
    +&nbsp;    // the number of active dispatches
    +&nbsp;    private final Counter activeDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    private final Counter activeSuspended;
    +&nbsp;
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    private final Meter asyncDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    private final Meter asyncTimeouts;
    +&nbsp;
    +&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    private final List&lt;Meter&gt; responses;
    +&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;    private final String prefix;
    +&nbsp;    private final Timer getRequests;
    +&nbsp;    private final Timer postRequests;
    +&nbsp;    private final Timer headRequests;
    +&nbsp;    private final Timer putRequests;
    +&nbsp;    private final Timer deleteRequests;
    +&nbsp;    private final Timer optionsRequests;
    +&nbsp;    private final Timer traceRequests;
    +&nbsp;    private final Timer connectRequests;
    +&nbsp;    private final Timer moveRequests;
    +&nbsp;    private final Timer otherRequests;
    +&nbsp;
    +&nbsp;    private final AsyncListener listener;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param pref     the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    +<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param pref     the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    +<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    +<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestBegin(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onBeforeDispatch(final Request request) {
    +<b class="fc">&nbsp;        before(request);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onAfterDispatch(final Request request) {
    +<b class="fc">&nbsp;        after(request);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestContentEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestTrailers(final Request request) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseBegin(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseCommit(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onComplete(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    private void before(final Request request) {
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            activeSuspended.dec();</b>
    +<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void after(final Request request) {
    +<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    +<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.dec();</b>
    +<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    +<b class="fc">&nbsp;            activeSuspended.inc();</b>
    +<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    +&nbsp;        }
    +&nbsp;        // else onCompletion will handle it.
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="fc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    };
    +&nbsp;
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    +<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    +<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    +<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    +<b class="fc">&nbsp;                activeSuspended.dec();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-4.html
    new file mode 100644
    index 0000000000..010ed0d405
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-4.html
    @@ -0,0 +1,345 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty11)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedQueuedThreadPool</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.4%
    +  </span>
    +  <span class="absValue">
    +    (27/32)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import org.eclipse.jetty.util.annotation.Name;
    +&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    +&nbsp;
    +&nbsp;import java.util.concurrent.BlockingQueue;
    +&nbsp;import java.util.concurrent.ThreadFactory;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    +&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    +&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    +&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    +&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    +&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;    private String prefix;
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, 200);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    +&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    +<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getPrefix() {
    +<b class="nc">&nbsp;        return prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setPrefix(String prefix) {
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    +&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    +&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    +<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index.html
    new file mode 100644
    index 0000000000..33cacc7b32
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..e6036444fe
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..eb81a50160
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..c1d897814b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_CLASS.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..246727bcd3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..477ffad05d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_LINE.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..a6f98c894a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..1be654d52f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_METHOD.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..7baffa8ac8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..0111f1cead
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,197 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (43/59)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.6%
    +  </span>
    +  <span class="absValue">
    +    (151/185)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-1.html
    new file mode 100644
    index 0000000000..ff6cafd4cc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-1.html
    @@ -0,0 +1,584 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > AbstractInstrumentedHandler</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: AbstractInstrumentedHandler (io.dropwizard.metrics.jetty12)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">AbstractInstrumentedHandler</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (12/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.1%
    +  </span>
    +  <span class="absValue">
    +    (96/109)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedHandler$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedHandler$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedHandler$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedHandler$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedHandler$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedHandler$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedHandler$7</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
    +&nbsp;import org.eclipse.jetty.server.Handler;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;import org.eclipse.jetty.server.Response;
    +&nbsp;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An abstract base class of a Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    +&nbsp; * instance.
    +&nbsp; */
    +&nbsp;public abstract class AbstractInstrumentedHandler extends Handler.Wrapper {
    +&nbsp;    protected static final String NAME_REQUESTS = &quot;requests&quot;;
    +&nbsp;    protected static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    +&nbsp;    protected static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    +&nbsp;    protected static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    +&nbsp;    protected static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    +&nbsp;    protected static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    +&nbsp;    protected static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    +&nbsp;    protected static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    +&nbsp;    protected static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    +&nbsp;    protected static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    +&nbsp;    protected static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    +&nbsp;    protected static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    +&nbsp;    protected static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    +&nbsp;    protected static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    +&nbsp;    protected static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    +&nbsp;    protected static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    +&nbsp;    protected static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    +&nbsp;    protected static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    +&nbsp;    protected static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    +&nbsp;    protected static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    +&nbsp;    protected static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    +&nbsp;    protected static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    +&nbsp;    protected static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    +&nbsp;    protected static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    +&nbsp;    protected static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    +&nbsp;    protected static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    +&nbsp;    protected static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    +&nbsp;    protected static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    +<b class="fc">&nbsp;    protected static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    protected static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;
    +&nbsp;    protected final MetricRegistry metricRegistry;
    +&nbsp;
    +&nbsp;    private String name;
    +&nbsp;    protected final String prefix;
    +&nbsp;
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    protected Timer requests;
    +&nbsp;
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    protected Timer dispatches;
    +&nbsp;
    +&nbsp;    // the number of active requests
    +&nbsp;    protected Counter activeRequests;
    +&nbsp;
    +&nbsp;    // the number of active dispatches
    +&nbsp;    protected Counter activeDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    protected Counter activeSuspended;
    +&nbsp;
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    protected Meter asyncDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    protected Meter asyncTimeouts;
    +&nbsp;
    +&nbsp;    protected final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    protected List&lt;Meter&gt; responses;
    +&nbsp;    protected Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;
    +&nbsp;    protected Timer getRequests;
    +&nbsp;    protected Timer postRequests;
    +&nbsp;    protected Timer headRequests;
    +&nbsp;    protected Timer putRequests;
    +&nbsp;    protected Timer deleteRequests;
    +&nbsp;    protected Timer optionsRequests;
    +&nbsp;    protected Timer traceRequests;
    +&nbsp;    protected Timer connectRequests;
    +&nbsp;    protected Timer moveRequests;
    +&nbsp;    protected Timer otherRequests;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix) {
    +<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +<b class="fc">&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getName() {
    +<b class="fc">&nbsp;        return name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setName(String name) {
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    +&nbsp;                    ));
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                public Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;        } else {
    +<b class="fc">&nbsp;             this.responses = Collections.emptyList();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    +<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    +<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    +<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void updateResponses(Request request, Response response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="nc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-2.html
    new file mode 100644
    index 0000000000..a64c301e58
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-2.html
    @@ -0,0 +1,193 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedConnectionFactory</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty12)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedConnectionFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedConnectionFactory$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.eclipse.jetty.io.Connection;
    +&nbsp;import org.eclipse.jetty.io.EndPoint;
    +&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    +&nbsp;import org.eclipse.jetty.server.Connector;
    +&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;
    +<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    +&nbsp;    private final ConnectionFactory connectionFactory;
    +&nbsp;    private final Timer timer;
    +&nbsp;    private final Counter counter;
    +&nbsp;
    +&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    +<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    +<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    +<b class="fc">&nbsp;        this.timer = timer;</b>
    +<b class="fc">&nbsp;        this.counter = counter;</b>
    +<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getProtocol() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public List&lt;String&gt; getProtocols() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    +<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    +<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    +&nbsp;            private Timer.Context context;
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onOpened(Connection connection) {
    +<b class="fc">&nbsp;                this.context = timer.time();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.inc();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onClosed(Connection connection) {
    +<b class="fc">&nbsp;                context.stop();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.dec();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        return connection;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-3.html
    new file mode 100644
    index 0000000000..6536f8e698
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-3.html
    @@ -0,0 +1,336 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty12)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedQueuedThreadPool</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.1%
    +  </span>
    +  <span class="absValue">
    +    (27/31)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import org.eclipse.jetty.util.annotation.Name;
    +&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    +&nbsp;
    +&nbsp;import java.util.concurrent.BlockingQueue;
    +&nbsp;import java.util.concurrent.ThreadFactory;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    +&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    +&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    +&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    +&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    +&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;    private String prefix;
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, 200);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    +&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    +<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getPrefix() {
    +<b class="nc">&nbsp;        return prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setPrefix(String prefix) {
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    +&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    +&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    +<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index.html
    new file mode 100644
    index 0000000000..7cb52f2cff
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..4cf89f0955
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..f50d96c805
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..003e679198
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_CLASS.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..d5684e66bb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..dd31fa659d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_LINE.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..432e814b7d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..3714b3c743
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_METHOD.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..388d63368f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..00e5fc84d5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.jetty12.ee10</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/sources/source-1.html
    new file mode 100644
    index 0000000000..a7ef776854
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/sources/source-1.html
    @@ -0,0 +1,348 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedEE10Handler</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty12.ee10</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedEE10Handler (io.dropwizard.metrics.jetty12.ee10)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedEE10Handler</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.9%
    +  </span>
    +  <span class="absValue">
    +    (23/32)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedEE10Handler$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedEE10Handler$AsyncAttachingListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedEE10Handler$InstrumentedAsyncListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12.ee10;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import io.dropwizard.metrics.jetty12.AbstractInstrumentedHandler;
    +&nbsp;import jakarta.servlet.AsyncEvent;
    +&nbsp;import jakarta.servlet.AsyncListener;
    +&nbsp;import org.eclipse.jetty.ee10.servlet.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.ee10.servlet.ServletApiRequest;
    +&nbsp;import org.eclipse.jetty.ee10.servlet.ServletApiResponse;
    +&nbsp;import org.eclipse.jetty.ee10.servlet.ServletChannelState;
    +&nbsp;import org.eclipse.jetty.ee10.servlet.ServletContextRequest;
    +&nbsp;import org.eclipse.jetty.server.Handler;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;import org.eclipse.jetty.server.Response;
    +&nbsp;import org.eclipse.jetty.util.Callback;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    +&nbsp; * instance. This {@link Handler} requires a {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} to be present.
    +&nbsp; * For correct behaviour, the {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} should be before this handler
    +&nbsp; * in the handler chain. To achieve this, one can use
    +&nbsp; * {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler#insertHandler(Singleton)}.
    +&nbsp; */
    +<b class="nc">&nbsp;public class InstrumentedEE10Handler extends AbstractInstrumentedHandler {</b>
    +&nbsp;    private AsyncListener listener;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry) {
    +<b class="nc">&nbsp;        super(registry, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry, String prefix) {
    +<b class="nc">&nbsp;        super(registry, prefix, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {
    +<b class="fc">&nbsp;        super(registry, prefix, responseMeteredLevel);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public boolean handle(Request request, Response response, Callback callback) throws Exception {
    +<b class="fc">&nbsp;        ServletContextRequest servletContextRequest = Request.as(request, ServletContextRequest.class);</b>
    +&nbsp;
    +&nbsp;        // only handle servlet requests with the InstrumentedHandler
    +&nbsp;        // because it depends on the ServletRequestState
    +<b class="fc">&nbsp;        if (servletContextRequest == null) {</b>
    +<b class="nc">&nbsp;            return super.handle(request, response, callback);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final ServletChannelState state = servletContextRequest.getServletRequestState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = Request.getTimeStamp(request);</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="nc">&nbsp;            activeSuspended.dec();</b>
    +<b class="nc">&nbsp;            if (state.getState() == ServletChannelState.State.HANDLING) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        boolean handled = false;</b>
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            handled = super.handle(request, response, callback);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            activeDispatches.dec();</b>
    +<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.inc();</b>
    +<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;                updateResponses(request, response, start, handled);</b>
    +&nbsp;            }
    +&nbsp;            // else onCompletion will handle it.
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return handled;</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="nc">&nbsp;            final ServletApiRequest request = (ServletApiRequest) state.getRequest();</b>
    +<b class="nc">&nbsp;            final ServletApiResponse response = (ServletApiResponse) state.getResponse();</b>
    +<b class="nc">&nbsp;            updateResponses(request.getRequest(), response.getResponse(), startTime, true);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            final ServletContextRequest servletContextRequest = Request.as(request.getRequest(), ServletContextRequest.class);</b>
    +<b class="nc">&nbsp;            final ServletChannelState servletRequestState = servletContextRequest.getServletRequestState();</b>
    +<b class="nc">&nbsp;            if (!servletRequestState.isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.dec();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index.html
    new file mode 100644
    index 0000000000..dcd5b3e67c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..4618d5edc7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..fdbe0f68c5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..904fb553cf
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..97c7ec329e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..a601b6280c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..356f6bca89
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..b0c3b77dc6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..5b125dee3c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..66e1708f89
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback13</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/sources/source-1.html
    new file mode 100644
    index 0000000000..95eaa92dea
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/sources/source-1.html
    @@ -0,0 +1,195 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedAppender</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.logback13</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback13)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedAppender</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback13;
    +&nbsp;
    +&nbsp;import ch.qos.logback.classic.Level;
    +&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    +&nbsp;import ch.qos.logback.core.Appender;
    +&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    +&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    +&nbsp; * name of the appender.
    +&nbsp; */
    +&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    +&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    +&nbsp;
    +&nbsp;    private Meter all;
    +&nbsp;    private Meter trace;
    +&nbsp;    private Meter debug;
    +&nbsp;    private Meter info;
    +&nbsp;    private Meter warn;
    +&nbsp;    private Meter error;
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender() {
    +<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     *
    +&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(String registryName) {
    +<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the metric registry
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void start() {
    +<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    +<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    +<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    +<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    +<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    +<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    +<b class="fc">&nbsp;        super.start();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void append(ILoggingEvent event) {
    +<b class="fc">&nbsp;        all.mark();</b>
    +<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    +&nbsp;            case Level.TRACE_INT:
    +<b class="fc">&nbsp;                trace.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.DEBUG_INT:
    +<b class="fc">&nbsp;                debug.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.INFO_INT:
    +<b class="fc">&nbsp;                info.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.WARN_INT:
    +<b class="fc">&nbsp;                warn.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.ERROR_INT:
    +<b class="fc">&nbsp;                error.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            default:
    +&nbsp;                break;
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index.html
    new file mode 100644
    index 0000000000..e7696813ef
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..f076b00281
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..0530697255
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..fbe2a6930c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..d4af2a7e7c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..d12a797cae
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..b52106e23f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..c15d4aa14c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..fcc19292c9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..7f9a4a90f2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback14</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/sources/source-1.html
    new file mode 100644
    index 0000000000..ad9a361aa5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/sources/source-1.html
    @@ -0,0 +1,195 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedAppender</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.logback14</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback14)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedAppender</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback14;
    +&nbsp;
    +&nbsp;import ch.qos.logback.classic.Level;
    +&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    +&nbsp;import ch.qos.logback.core.Appender;
    +&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    +&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    +&nbsp; * name of the appender.
    +&nbsp; */
    +&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    +&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    +&nbsp;
    +&nbsp;    private Meter all;
    +&nbsp;    private Meter trace;
    +&nbsp;    private Meter debug;
    +&nbsp;    private Meter info;
    +&nbsp;    private Meter warn;
    +&nbsp;    private Meter error;
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender() {
    +<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     *
    +&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(String registryName) {
    +<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the metric registry
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void start() {
    +<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    +<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    +<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    +<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    +<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    +<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    +<b class="fc">&nbsp;        super.start();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void append(ILoggingEvent event) {
    +<b class="fc">&nbsp;        all.mark();</b>
    +<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    +&nbsp;            case Level.TRACE_INT:
    +<b class="fc">&nbsp;                trace.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.DEBUG_INT:
    +<b class="fc">&nbsp;                debug.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.INFO_INT:
    +<b class="fc">&nbsp;                info.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.WARN_INT:
    +<b class="fc">&nbsp;                warn.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.ERROR_INT:
    +<b class="fc">&nbsp;                error.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            default:
    +&nbsp;                break;
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index.html
    new file mode 100644
    index 0000000000..7469a79f5b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..5214c778f5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..13a04bc48a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..e12bbf763b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..2a6b023df4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..a224b91e24
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..1a1ad4fdc1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..e303eb89c7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..c721bd0450
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..055904e5b5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.logback15</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/sources/source-1.html
    new file mode 100644
    index 0000000000..870c167528
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/sources/source-1.html
    @@ -0,0 +1,195 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedAppender</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.logback15</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback15)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedAppender</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback15;
    +&nbsp;
    +&nbsp;import ch.qos.logback.classic.Level;
    +&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    +&nbsp;import ch.qos.logback.core.Appender;
    +&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    +&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    +&nbsp; * name of the appender.
    +&nbsp; */
    +&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    +&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    +&nbsp;
    +&nbsp;    private Meter all;
    +&nbsp;    private Meter trace;
    +&nbsp;    private Meter debug;
    +&nbsp;    private Meter info;
    +&nbsp;    private Meter warn;
    +&nbsp;    private Meter error;
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender() {
    +<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     *
    +&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(String registryName) {
    +<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the metric registry
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void start() {
    +<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    +<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    +<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    +<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    +<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    +<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    +<b class="fc">&nbsp;        super.start();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void append(ILoggingEvent event) {
    +<b class="fc">&nbsp;        all.mark();</b>
    +<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    +&nbsp;            case Level.TRACE_INT:
    +<b class="fc">&nbsp;                trace.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.DEBUG_INT:
    +<b class="fc">&nbsp;                debug.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.INFO_INT:
    +<b class="fc">&nbsp;                info.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.WARN_INT:
    +<b class="fc">&nbsp;                warn.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.ERROR_INT:
    +<b class="fc">&nbsp;                error.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            default:
    +&nbsp;                break;
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index.html
    new file mode 100644
    index 0000000000..f38fe1e129
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..6ae47b88a4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..798fa7d0ff
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..c1f30f9361
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_CLASS.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..8b62feec0b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..cb943bed68
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_LINE.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..2a18318deb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..8c39faeba8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_METHOD.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..38c3737b2b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..351791dc30
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    12.5%
    +  </span>
    +  <span class="absValue">
    +    (3/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.5%
    +  </span>
    +  <span class="absValue">
    +    (3/86)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-1.html
    new file mode 100644
    index 0000000000..77351e6288
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-1.html
    @@ -0,0 +1,387 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > AbstractInstrumentedFilter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">AbstractInstrumentedFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/45)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/73)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import jakarta.servlet.AsyncEvent;
    +&nbsp;import jakarta.servlet.AsyncListener;
    +&nbsp;import jakarta.servlet.Filter;
    +&nbsp;import jakarta.servlet.FilterChain;
    +&nbsp;import jakarta.servlet.FilterConfig;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.ServletRequest;
    +&nbsp;import jakarta.servlet.ServletResponse;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;import jakarta.servlet.http.HttpServletResponseWrapper;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Map.Entry;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    +&nbsp; * codes being returned.
    +&nbsp; */
    +<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    +&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    +&nbsp;
    +&nbsp;    private final String otherMetricName;
    +&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    +&nbsp;    private final String registryAttribute;
    +&nbsp;
    +&nbsp;    // initialized after call of init method
    +&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    +&nbsp;    private Meter otherMeter;
    +&nbsp;    private Meter timeoutsMeter;
    +&nbsp;    private Meter errorsMeter;
    +&nbsp;    private Counter activeRequests;
    +&nbsp;    private Timer requestTimer;
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new instance of the filter.
    +&nbsp;     *
    +&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    +&nbsp;     *                               servlet context
    +&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    +&nbsp;     *                               interested in.
    +&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    +&nbsp;     */
    +&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    +&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    +<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    +<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    +<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    +<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    +<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    +<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    +<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    +<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    +<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    +<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    +<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    +<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    +<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    +<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    +&nbsp;
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    +&nbsp;        final MetricRegistry metricsRegistry;
    +&nbsp;
    +<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    +<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    +<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        return metricsRegistry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void destroy() {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void doFilter(ServletRequest request,
    +&nbsp;                         ServletResponse response,
    +&nbsp;                         FilterChain chain) throws IOException, ServletException {
    +<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    +&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    +<b class="nc">&nbsp;        activeRequests.inc();</b>
    +<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    +<b class="nc">&nbsp;        boolean error = false;</b>
    +&nbsp;        try {
    +<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    +<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    +<b class="nc">&nbsp;            error = true;</b>
    +<b class="nc">&nbsp;            throw e;</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    +<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                context.stop();</b>
    +<b class="nc">&nbsp;                activeRequests.dec();</b>
    +<b class="nc">&nbsp;                if (error) {</b>
    +<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    +&nbsp;                } else {
    +<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void markMeterForStatusCode(int status) {
    +<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    +<b class="nc">&nbsp;        if (metric != null) {</b>
    +<b class="nc">&nbsp;            metric.mark();</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            otherMeter.mark();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    +&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    +<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    +&nbsp;
    +&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    +<b class="nc">&nbsp;            super(response);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void sendError(int sc) throws IOException {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.sendError(sc);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void sendError(int sc, String msg) throws IOException {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void setStatus(int sc) {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.setStatus(sc);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        @SuppressWarnings(&quot;deprecation&quot;)
    +&nbsp;        public void setStatus(int sc, String sm) {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.setStatus(sc, sm);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public int getStatus() {
    +<b class="nc">&nbsp;            return httpStatus;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class AsyncResultListener implements AsyncListener {
    +&nbsp;        private Timer.Context context;
    +<b class="nc">&nbsp;        private boolean done = false;</b>
    +&nbsp;
    +<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    +<b class="nc">&nbsp;            this.context = context;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            if (!done) {</b>
    +<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    +<b class="nc">&nbsp;                context.stop();</b>
    +<b class="nc">&nbsp;                activeRequests.dec();</b>
    +<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            context.stop();</b>
    +<b class="nc">&nbsp;            activeRequests.dec();</b>
    +<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    +<b class="nc">&nbsp;            done = true;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            context.stop();</b>
    +<b class="nc">&nbsp;            activeRequests.dec();</b>
    +<b class="nc">&nbsp;            errorsMeter.mark();</b>
    +<b class="nc">&nbsp;            done = true;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +&nbsp;
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-2.html
    new file mode 100644
    index 0000000000..3a4fb57e68
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-2.html
    @@ -0,0 +1,152 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedFilter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    +&nbsp;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Map;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    +&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    +&nbsp; * &lt;pre&gt;{@code
    +&nbsp; * &lt;filter&gt;
    +&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    +&nbsp; *     &lt;filter-class&gt;io.dropwizard.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    +&nbsp; * &lt;/filter&gt;
    +&nbsp; * &lt;filter-mapping&gt;
    +&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    +&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    +&nbsp; * &lt;/filter-mapping&gt;
    +&nbsp; * }&lt;/pre&gt;
    +&nbsp; */
    +&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    +<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    +&nbsp;
    +&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    +&nbsp;    private static final int OK = 200;
    +&nbsp;    private static final int CREATED = 201;
    +&nbsp;    private static final int NO_CONTENT = 204;
    +&nbsp;    private static final int BAD_REQUEST = 400;
    +&nbsp;    private static final int NOT_FOUND = 404;
    +&nbsp;    private static final int SERVER_ERROR = 500;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new instance of the filter.
    +&nbsp;     */
    +&nbsp;    public InstrumentedFilter() {
    +<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    +<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    +<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-3.html
    new file mode 100644
    index 0000000000..b5d9034ea2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-3.html
    @@ -0,0 +1,130 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedFilterContextListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedFilterContextListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import jakarta.servlet.ServletContextEvent;
    +&nbsp;import jakarta.servlet.ServletContextListener;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    +&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    +&nbsp; * application.
    +&nbsp; */
    +<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    +&nbsp;    /**
    +&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    +&nbsp;     */
    +&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    +<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index.html
    new file mode 100644
    index 0000000000..23aef5eb86
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..d80ca0e0b1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..097ac423a9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..03bb521d4b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_CLASS.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..4c0bfdcee2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..d4712c3f05
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_LINE.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..aa22741fe2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..13fe3a6d5b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_METHOD.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..1def10f6fa
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..f82aa367d5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,223 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlet6</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (3/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    3.6%
    +  </span>
    +  <span class="absValue">
    +    (3/84)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-1.html
    new file mode 100644
    index 0000000000..90fe813683
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-1.html
    @@ -0,0 +1,380 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > AbstractInstrumentedFilter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet6)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">AbstractInstrumentedFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/45)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/9)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import jakarta.servlet.AsyncEvent;
    +&nbsp;import jakarta.servlet.AsyncListener;
    +&nbsp;import jakarta.servlet.Filter;
    +&nbsp;import jakarta.servlet.FilterChain;
    +&nbsp;import jakarta.servlet.FilterConfig;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.ServletRequest;
    +&nbsp;import jakarta.servlet.ServletResponse;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;import jakarta.servlet.http.HttpServletResponseWrapper;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Map.Entry;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    +&nbsp; * codes being returned.
    +&nbsp; */
    +<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    +&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    +&nbsp;
    +&nbsp;    private final String otherMetricName;
    +&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    +&nbsp;    private final String registryAttribute;
    +&nbsp;
    +&nbsp;    // initialized after call of init method
    +&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    +&nbsp;    private Meter otherMeter;
    +&nbsp;    private Meter timeoutsMeter;
    +&nbsp;    private Meter errorsMeter;
    +&nbsp;    private Counter activeRequests;
    +&nbsp;    private Timer requestTimer;
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new instance of the filter.
    +&nbsp;     *
    +&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    +&nbsp;     *                               servlet context
    +&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    +&nbsp;     *                               interested in.
    +&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    +&nbsp;     */
    +&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    +&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    +<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    +<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    +<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    +<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    +<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    +<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    +<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    +<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    +<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    +<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    +<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    +<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    +<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    +<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    +&nbsp;
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    +&nbsp;        final MetricRegistry metricsRegistry;
    +&nbsp;
    +<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    +<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    +<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        return metricsRegistry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void destroy() {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void doFilter(ServletRequest request,
    +&nbsp;                         ServletResponse response,
    +&nbsp;                         FilterChain chain) throws IOException, ServletException {
    +<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    +&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    +<b class="nc">&nbsp;        activeRequests.inc();</b>
    +<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    +<b class="nc">&nbsp;        boolean error = false;</b>
    +&nbsp;        try {
    +<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    +<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    +<b class="nc">&nbsp;            error = true;</b>
    +<b class="nc">&nbsp;            throw e;</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    +<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                context.stop();</b>
    +<b class="nc">&nbsp;                activeRequests.dec();</b>
    +<b class="nc">&nbsp;                if (error) {</b>
    +<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    +&nbsp;                } else {
    +<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void markMeterForStatusCode(int status) {
    +<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    +<b class="nc">&nbsp;        if (metric != null) {</b>
    +<b class="nc">&nbsp;            metric.mark();</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            otherMeter.mark();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    +&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    +<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    +&nbsp;
    +&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    +<b class="nc">&nbsp;            super(response);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void sendError(int sc) throws IOException {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.sendError(sc);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void sendError(int sc, String msg) throws IOException {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void setStatus(int sc) {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.setStatus(sc);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public int getStatus() {
    +<b class="nc">&nbsp;            return httpStatus;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class AsyncResultListener implements AsyncListener {
    +&nbsp;        private final Timer.Context context;
    +<b class="nc">&nbsp;        private boolean done = false;</b>
    +&nbsp;
    +<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    +<b class="nc">&nbsp;            this.context = context;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            if (!done) {</b>
    +<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    +<b class="nc">&nbsp;                context.stop();</b>
    +<b class="nc">&nbsp;                activeRequests.dec();</b>
    +<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            context.stop();</b>
    +<b class="nc">&nbsp;            activeRequests.dec();</b>
    +<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    +<b class="nc">&nbsp;            done = true;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            context.stop();</b>
    +<b class="nc">&nbsp;            activeRequests.dec();</b>
    +<b class="nc">&nbsp;            errorsMeter.mark();</b>
    +<b class="nc">&nbsp;            done = true;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +&nbsp;
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-2.html
    new file mode 100644
    index 0000000000..843e010470
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-2.html
    @@ -0,0 +1,152 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedFilter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet6)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (1/10)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    +&nbsp;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Map;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    +&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    +&nbsp; * &lt;pre&gt;{@code
    +&nbsp; * &lt;filter&gt;
    +&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    +&nbsp; *     &lt;filter-class&gt;io.dropwizard.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    +&nbsp; * &lt;/filter&gt;
    +&nbsp; * &lt;filter-mapping&gt;
    +&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    +&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    +&nbsp; * &lt;/filter-mapping&gt;
    +&nbsp; * }&lt;/pre&gt;
    +&nbsp; */
    +&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    +<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    +&nbsp;
    +&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    +&nbsp;    private static final int OK = 200;
    +&nbsp;    private static final int CREATED = 201;
    +&nbsp;    private static final int NO_CONTENT = 204;
    +&nbsp;    private static final int BAD_REQUEST = 400;
    +&nbsp;    private static final int NOT_FOUND = 404;
    +&nbsp;    private static final int SERVER_ERROR = 500;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new instance of the filter.
    +&nbsp;     */
    +&nbsp;    public InstrumentedFilter() {
    +<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    +<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    +<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-3.html
    new file mode 100644
    index 0000000000..fae5a3e4ba
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-3.html
    @@ -0,0 +1,130 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedFilterContextListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet6)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedFilterContextListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import jakarta.servlet.ServletContextEvent;
    +&nbsp;import jakarta.servlet.ServletContextListener;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    +&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    +&nbsp; * application.
    +&nbsp; */
    +<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    +&nbsp;    /**
    +&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    +&nbsp;     */
    +&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    +<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index.html
    new file mode 100644
    index 0000000000..fb0aa3f71d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..d5009fb1a8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..8aea275135
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..2900bd6db4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_CLASS.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..aa9b35039d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..3c49c422a4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_LINE.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..8ce2ea35b3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..8e8199a9dd
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_METHOD.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..5c1c657fd8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..0becde01b4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-1.html
    new file mode 100644
    index 0000000000..d7ec9d8449
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-1.html
    @@ -0,0 +1,294 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > AdminServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: AdminServlet (io.dropwizard.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">AdminServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +&nbsp;
    +&nbsp;import jakarta.servlet.ServletConfig;
    +&nbsp;import jakarta.servlet.ServletContext;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServlet;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;import java.text.MessageFormat;
    +&nbsp;
    +<b class="fc">&nbsp;public class AdminServlet extends HttpServlet {</b>
    +&nbsp;    public static final String DEFAULT_HEALTHCHECK_URI = &quot;/healthcheck&quot;;
    +&nbsp;    public static final String DEFAULT_METRICS_URI = &quot;/metrics&quot;;
    +&nbsp;    public static final String DEFAULT_PING_URI = &quot;/ping&quot;;
    +&nbsp;    public static final String DEFAULT_THREADS_URI = &quot;/threads&quot;;
    +&nbsp;    public static final String DEFAULT_CPU_PROFILE_URI = &quot;/pprof&quot;;
    +&nbsp;
    +&nbsp;    public static final String METRICS_ENABLED_PARAM_KEY = &quot;metrics-enabled&quot;;
    +&nbsp;    public static final String METRICS_URI_PARAM_KEY = &quot;metrics-uri&quot;;
    +&nbsp;    public static final String PING_ENABLED_PARAM_KEY = &quot;ping-enabled&quot;;
    +&nbsp;    public static final String PING_URI_PARAM_KEY = &quot;ping-uri&quot;;
    +&nbsp;    public static final String THREADS_ENABLED_PARAM_KEY = &quot;threads-enabled&quot;;
    +&nbsp;    public static final String THREADS_URI_PARAM_KEY = &quot;threads-uri&quot;;
    +&nbsp;    public static final String HEALTHCHECK_ENABLED_PARAM_KEY = &quot;healthcheck-enabled&quot;;
    +&nbsp;    public static final String HEALTHCHECK_URI_PARAM_KEY = &quot;healthcheck-uri&quot;;
    +&nbsp;    public static final String SERVICE_NAME_PARAM_KEY = &quot;service-name&quot;;
    +&nbsp;    public static final String CPU_PROFILE_ENABLED_PARAM_KEY = &quot;cpu-profile-enabled&quot;;
    +&nbsp;    public static final String CPU_PROFILE_URI_PARAM_KEY = &quot;cpu-profile-uri&quot;;
    +&nbsp;
    +&nbsp;    private static final String BASE_TEMPLATE =
    +&nbsp;            &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot;%n&quot; +
    +&nbsp;                    &quot;        \&quot;http://www.w3.org/TR/html4/loose.dtd\&quot;&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;html&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;head&gt;%n&quot; +
    +&nbsp;                    &quot;  &lt;title&gt;Metrics{10}&lt;/title&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;/head&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;body&gt;%n&quot; +
    +&nbsp;                    &quot;  &lt;h1&gt;Operational Menu{10}&lt;/h1&gt;%n&quot; +
    +&nbsp;                    &quot;  &lt;ul&gt;%n&quot; +
    +&nbsp;                    &quot;%s&quot; +
    +&nbsp;                    &quot;  &lt;/ul&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;/body&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;/html&gt;&quot;;
    +&nbsp;    private static final String METRICS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{0}{1}?pretty=true\&quot;&gt;Metrics&lt;/a&gt;&lt;/li&gt;%n&quot;;
    +&nbsp;    private static final String PING_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{2}{3}\&quot;&gt;Ping&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    +&nbsp;    private static final String THREADS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{4}{5}\&quot;&gt;Threads&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    +&nbsp;    private static final String HEALTHCHECK_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{6}{7}?pretty=true\&quot;&gt;Healthcheck&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    +&nbsp;    private static final String CPU_PROFILE_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}\&quot;&gt;CPU Profile&lt;/a&gt;&lt;/li&gt;%n&quot; +
    +&nbsp;            &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}?state=blocked\&quot;&gt;CPU Contention&lt;/a&gt;&lt;/li&gt;%n&quot;;
    +&nbsp;
    +&nbsp;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;text/html&quot;;
    +&nbsp;    private static final long serialVersionUID = -2850794040708785318L;
    +&nbsp;
    +&nbsp;    private transient HealthCheckServlet healthCheckServlet;
    +&nbsp;    private transient MetricsServlet metricsServlet;
    +&nbsp;    private transient PingServlet pingServlet;
    +&nbsp;    private transient ThreadDumpServlet threadDumpServlet;
    +&nbsp;    private transient CpuProfileServlet cpuProfileServlet;
    +&nbsp;    private transient boolean metricsEnabled;
    +&nbsp;    private transient String metricsUri;
    +&nbsp;    private transient boolean pingEnabled;
    +&nbsp;    private transient String pingUri;
    +&nbsp;    private transient boolean threadsEnabled;
    +&nbsp;    private transient String threadsUri;
    +&nbsp;    private transient boolean healthcheckEnabled;
    +&nbsp;    private transient String healthcheckUri;
    +&nbsp;    private transient boolean cpuProfileEnabled;
    +&nbsp;    private transient String cpuProfileUri;
    +&nbsp;    private transient String serviceName;
    +&nbsp;    private transient String pageContentTemplate;
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(ServletConfig config) throws ServletException {
    +<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    +<b class="fc">&nbsp;        final StringBuilder servletLinks = new StringBuilder();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.metricsEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.metricsEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(METRICS_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.metricsServlet = new MetricsServlet();</b>
    +<b class="fc">&nbsp;        metricsServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.pingEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.pingEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(PING_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.pingServlet = new PingServlet();</b>
    +<b class="fc">&nbsp;        pingServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.threadsEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.threadsEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(THREADS_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.threadDumpServlet = new ThreadDumpServlet();</b>
    +<b class="fc">&nbsp;        threadDumpServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.healthcheckEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.healthcheckEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(HEALTHCHECK_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.healthCheckServlet = new HealthCheckServlet();</b>
    +<b class="fc">&nbsp;        healthCheckServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.cpuProfileEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.cpuProfileEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(CPU_PROFILE_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.cpuProfileServlet = new CpuProfileServlet();</b>
    +<b class="fc">&nbsp;        cpuProfileServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);</b>
    +<b class="fc">&nbsp;        this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);</b>
    +<b class="fc">&nbsp;        this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);</b>
    +<b class="fc">&nbsp;        this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);</b>
    +<b class="fc">&nbsp;        this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);</b>
    +<b class="fc">&nbsp;        this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final String path = req.getContextPath() + req.getServletPath();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    +<b class="fc">&nbsp;            writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,</b>
    +&nbsp;                    threadsUri, path, healthcheckUri, path, cpuProfileUri,
    +<b class="fc">&nbsp;                    serviceName == null ? &quot;&quot; : &quot; (&quot; + serviceName + &quot;)&quot;));</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final String uri = req.getPathInfo();</b>
    +<b class="fc">&nbsp;        if (uri == null || uri.equals(&quot;/&quot;)) {</b>
    +<b class="fc">&nbsp;            super.service(req, resp);</b>
    +<b class="nc">&nbsp;        } else if (uri.equals(healthcheckUri)) {</b>
    +<b class="nc">&nbsp;            if (healthcheckEnabled) {</b>
    +<b class="nc">&nbsp;                healthCheckServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.startsWith(metricsUri)) {</b>
    +<b class="nc">&nbsp;            if (metricsEnabled) {</b>
    +<b class="nc">&nbsp;                metricsServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.equals(pingUri)) {</b>
    +<b class="nc">&nbsp;            if (pingEnabled) {</b>
    +<b class="nc">&nbsp;                pingServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.equals(threadsUri)) {</b>
    +<b class="nc">&nbsp;            if (threadsEnabled) {</b>
    +<b class="nc">&nbsp;                threadDumpServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.equals(cpuProfileUri)) {</b>
    +<b class="nc">&nbsp;            if (cpuProfileEnabled) {</b>
    +<b class="nc">&nbsp;                cpuProfileServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static String getParam(String initParam, String defaultValue) {
    +<b class="fc">&nbsp;        return initParam == null ? defaultValue : initParam;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-2.html
    new file mode 100644
    index 0000000000..7a2943419e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-2.html
    @@ -0,0 +1,183 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CpuProfileServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CpuProfileServlet (io.dropwizard.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CpuProfileServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +&nbsp;
    +&nbsp;import com.papertrail.profiler.CpuProfile;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServlet;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.time.Duration;
    +&nbsp;import java.util.concurrent.locks.Lock;
    +&nbsp;import java.util.concurrent.locks.ReentrantLock;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An HTTP servlets which outputs a &lt;a href=&quot;https://github.com/gperftools/gperftools&quot;&gt;pprof&lt;/a&gt; parseable response.
    +&nbsp; */
    +<b class="fc">&nbsp;public class CpuProfileServlet extends HttpServlet {</b>
    +&nbsp;    private static final long serialVersionUID = -668666696530287501L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;pprof/raw&quot;;
    +&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    +&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    +<b class="fc">&nbsp;    private final Lock lock = new ReentrantLock();</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +&nbsp;
    +<b class="fc">&nbsp;        int duration = 10;</b>
    +<b class="fc">&nbsp;        if (req.getParameter(&quot;duration&quot;) != null) {</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                duration = Integer.parseInt(req.getParameter(&quot;duration&quot;));</b>
    +<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    +<b class="nc">&nbsp;                duration = 10;</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        int frequency = 100;</b>
    +<b class="fc">&nbsp;        if (req.getParameter(&quot;frequency&quot;) != null) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                frequency = Integer.parseInt(req.getParameter(&quot;frequency&quot;));</b>
    +<b class="nc">&nbsp;                frequency = Math.min(Math.max(frequency, 1), 1000);</b>
    +<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    +<b class="nc">&nbsp;                frequency = 100;</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        final Thread.State state;
    +<b class="fc">&nbsp;        if (&quot;blocked&quot;.equalsIgnoreCase(req.getParameter(&quot;state&quot;))) {</b>
    +<b class="nc">&nbsp;            state = Thread.State.BLOCKED;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            state = Thread.State.RUNNABLE;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            doProfile(output, duration, frequency, state);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
    +<b class="fc">&nbsp;        if (lock.tryLock()) {</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),</b>
    +&nbsp;                        frequency, state);
    +<b class="fc">&nbsp;                if (profile == null) {</b>
    +<b class="nc">&nbsp;                    throw new RuntimeException(&quot;could not create CpuProfile&quot;);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                profile.writeGoogleProfile(out);</b>
    +&nbsp;                return;
    +&nbsp;            } finally {
    +<b class="fc">&nbsp;                lock.unlock();</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        throw new RuntimeException(&quot;Only one profile request may be active at a time&quot;);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-3.html
    new file mode 100644
    index 0000000000..d8ce47fd80
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-3.html
    @@ -0,0 +1,325 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheckServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheckServlet (io.dropwizard.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HealthCheckServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.1%
    +  </span>
    +  <span class="absValue">
    +    (58/61)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HealthCheckServlet$ContextListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/9)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.health.HealthCheck;
    +&nbsp;import com.codahale.metrics.health.HealthCheckFilter;
    +&nbsp;import com.codahale.metrics.health.HealthCheckRegistry;
    +&nbsp;import com.codahale.metrics.json.HealthCheckModule;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    +&nbsp;import jakarta.servlet.ServletConfig;
    +&nbsp;import jakarta.servlet.ServletContext;
    +&nbsp;import jakarta.servlet.ServletContextEvent;
    +&nbsp;import jakarta.servlet.ServletContextListener;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServlet;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.concurrent.ExecutorService;
    +&nbsp;
    +&nbsp;public class HealthCheckServlet extends HttpServlet {
    +<b class="nc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    +&nbsp;        /**
    +&nbsp;         * @return the {@link HealthCheckRegistry} to inject into the servlet context.
    +&nbsp;         */
    +&nbsp;        protected abstract HealthCheckRegistry getHealthCheckRegistry();
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
    +&nbsp;         * if the health checks should be run in the servlet worker thread.
    +&nbsp;         */
    +&nbsp;        protected ExecutorService getExecutorService() {
    +&nbsp;            // don&#39;t use a thread pool by default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
    +&nbsp;         * or {@link HealthCheckFilter#ALL} if the default should be used.
    +&nbsp;         */
    +&nbsp;        protected HealthCheckFilter getHealthCheckFilter() {
    +<b class="nc">&nbsp;            return HealthCheckFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link ObjectMapper} that shall be used to render health checks,
    +&nbsp;         * or {@code null} if the default object mapper should be used.
    +&nbsp;         */
    +&nbsp;        protected ObjectMapper getObjectMapper() {
    +&nbsp;            // don&#39;t use an object mapper by default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextInitialized(ServletContextEvent event) {
    +<b class="nc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    +<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());</b>
    +<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());</b>
    +<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    +&nbsp;            // no-op
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + &quot;.executor&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + &quot;.healthCheckFilter&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + &quot;.mapper&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + &quot;.httpStatusIndicator&quot;;</b>
    +&nbsp;
    +&nbsp;    private static final long serialVersionUID = -8432996484889177321L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    +&nbsp;    private static final String HTTP_STATUS_INDICATOR_PARAM = &quot;httpStatusIndicator&quot;;
    +&nbsp;
    +&nbsp;    private transient HealthCheckRegistry registry;
    +&nbsp;    private transient ExecutorService executorService;
    +&nbsp;    private transient HealthCheckFilter filter;
    +&nbsp;    private transient ObjectMapper mapper;
    +&nbsp;    private transient boolean httpStatusIndicator;
    +&nbsp;
    +<b class="fc">&nbsp;    public HealthCheckServlet() {</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public HealthCheckServlet(HealthCheckRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(ServletConfig config) throws ServletException {
    +<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    +<b class="fc">&nbsp;        if (null == registry) {</b>
    +<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);</b>
    +<b class="fc">&nbsp;            if (registryAttr instanceof HealthCheckRegistry) {</b>
    +<b class="fc">&nbsp;                this.registry = (HealthCheckRegistry) registryAttr;</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a HealthCheckRegistry instance.&quot;);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);</b>
    +<b class="fc">&nbsp;        if (executorAttr instanceof ExecutorService) {</b>
    +<b class="fc">&nbsp;            this.executorService = (ExecutorService) executorAttr;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);</b>
    +<b class="fc">&nbsp;        if (filterAttr instanceof HealthCheckFilter) {</b>
    +<b class="fc">&nbsp;            filter = (HealthCheckFilter) filterAttr;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        if (filter == null) {</b>
    +<b class="fc">&nbsp;            filter = HealthCheckFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);</b>
    +<b class="fc">&nbsp;        if (mapperAttr instanceof ObjectMapper) {</b>
    +<b class="nc">&nbsp;            this.mapper = (ObjectMapper) mapperAttr;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.mapper = new ObjectMapper();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.mapper.registerModule(new HealthCheckModule());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);</b>
    +<b class="fc">&nbsp;        if (httpStatusIndicatorAttr instanceof Boolean) {</b>
    +<b class="nc">&nbsp;            this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.httpStatusIndicator = true;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void destroy() {
    +<b class="fc">&nbsp;        super.destroy();</b>
    +<b class="fc">&nbsp;        registry.shutdown();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = runHealthChecks();</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        if (results.isEmpty()) {</b>
    +<b class="fc">&nbsp;            resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);</b>
    +<b class="fc">&nbsp;            final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);</b>
    +<b class="fc">&nbsp;            final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;</b>
    +<b class="fc">&nbsp;            if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {</b>
    +<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_OK);</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            getWriter(req).writeValue(output, results);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private ObjectWriter getWriter(HttpServletRequest request) {
    +<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    +<b class="fc">&nbsp;        if (prettyPrint) {</b>
    +<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return mapper.writer();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    +<b class="fc">&nbsp;        if (executorService == null) {</b>
    +<b class="nc">&nbsp;            return registry.runHealthChecks(filter);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return registry.runHealthChecks(executorService, filter);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static boolean isAllHealthy(Map&lt;String, HealthCheck.Result&gt; results) {
    +<b class="fc">&nbsp;        for (HealthCheck.Result result : results.values()) {</b>
    +<b class="fc">&nbsp;            if (!result.isHealthy()) {</b>
    +<b class="fc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return true;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    // visible for testing
    +&nbsp;    ObjectMapper getMapper() {
    +<b class="fc">&nbsp;        return mapper;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-4.html
    new file mode 100644
    index 0000000000..765c48cce4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-4.html
    @@ -0,0 +1,328 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricsServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricsServlet (io.dropwizard.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricsServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (44/44)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">MetricsServlet$ContextListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (5/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (14/18)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricFilter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.json.MetricsModule;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    +&nbsp;import com.fasterxml.jackson.databind.util.JSONPObject;
    +&nbsp;import jakarta.servlet.ServletConfig;
    +&nbsp;import jakarta.servlet.ServletContext;
    +&nbsp;import jakarta.servlet.ServletContextEvent;
    +&nbsp;import jakarta.servlet.ServletContextListener;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServlet;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A servlet which returns the metrics in a given registry as an {@code application/json} response.
    +&nbsp; */
    +&nbsp;public class MetricsServlet extends HttpServlet {
    +&nbsp;    /**
    +&nbsp;     * An abstract {@link ServletContextListener} which allows you to programmatically inject the
    +&nbsp;     * {@link MetricRegistry}, rate and duration units, and allowed origin for
    +&nbsp;     * {@link MetricsServlet}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    +&nbsp;        /**
    +&nbsp;         * @return the {@link MetricRegistry} to inject into the servlet context.
    +&nbsp;         */
    +&nbsp;        protected abstract MetricRegistry getMetricRegistry();
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
    +&nbsp;         * default should be used.
    +&nbsp;         */
    +&nbsp;        protected TimeUnit getRateUnit() {
    +&nbsp;            // use the default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
    +&nbsp;         * the default should be used.
    +&nbsp;         */
    +&nbsp;        protected TimeUnit getDurationUnit() {
    +&nbsp;            // use the default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@code Access-Control-Allow-Origin} header value, if any.
    +&nbsp;         */
    +&nbsp;        protected String getAllowedOrigin() {
    +&nbsp;            // use the default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the name of the parameter used to specify the jsonp callback, if any.
    +&nbsp;         */
    +&nbsp;        protected String getJsonpCallbackParameter() {
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
    +&nbsp;         * the default should be used.
    +&nbsp;         */
    +&nbsp;        protected MetricFilter getMetricFilter() {
    +&nbsp;            // use the default
    +<b class="fc">&nbsp;            return MetricFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextInitialized(ServletContextEvent event) {
    +<b class="fc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    +<b class="fc">&nbsp;            context.setAttribute(METRICS_REGISTRY, getMetricRegistry());</b>
    +<b class="fc">&nbsp;            context.setAttribute(METRIC_FILTER, getMetricFilter());</b>
    +<b class="fc">&nbsp;            if (getDurationUnit() != null) {</b>
    +<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (getRateUnit() != null) {</b>
    +<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (getAllowedOrigin() != null) {</b>
    +<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (getJsonpCallbackParameter() != null) {</b>
    +<b class="nc">&nbsp;                context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    +&nbsp;            // no-op
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.rateUnit&quot;;</b>
    +<b class="fc">&nbsp;    public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.durationUnit&quot;;</b>
    +<b class="fc">&nbsp;    public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + &quot;.showSamples&quot;;</b>
    +<b class="fc">&nbsp;    public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    +<b class="fc">&nbsp;    public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + &quot;.allowedOrigin&quot;;</b>
    +<b class="fc">&nbsp;    public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + &quot;.metricFilter&quot;;</b>
    +<b class="fc">&nbsp;    public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + &quot;.jsonpCallback&quot;;</b>
    +&nbsp;
    +&nbsp;    private static final long serialVersionUID = 1049773947734939602L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    +&nbsp;
    +&nbsp;    protected String allowedOrigin;
    +&nbsp;    protected String jsonpParamName;
    +&nbsp;    protected transient MetricRegistry registry;
    +&nbsp;    protected transient ObjectMapper mapper;
    +&nbsp;
    +<b class="fc">&nbsp;    public MetricsServlet() {</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public MetricsServlet(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(ServletConfig config) throws ServletException {
    +<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    +<b class="fc">&nbsp;        if (null == registry) {</b>
    +<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(METRICS_REGISTRY);</b>
    +<b class="fc">&nbsp;            if (registryAttr instanceof MetricRegistry) {</b>
    +<b class="fc">&nbsp;                this.registry = (MetricRegistry) registryAttr;</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a MetricRegistry instance.&quot;);</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);</b>
    +<b class="fc">&nbsp;        this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        setupMetricsModule(context);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void setupMetricsModule(ServletContext context) {
    +<b class="fc">&nbsp;        final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),</b>
    +&nbsp;                TimeUnit.SECONDS);
    +<b class="fc">&nbsp;        final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),</b>
    +&nbsp;                TimeUnit.SECONDS);
    +<b class="fc">&nbsp;        final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));</b>
    +<b class="fc">&nbsp;        MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);</b>
    +<b class="fc">&nbsp;        if (filter == null) {</b>
    +<b class="fc">&nbsp;            filter = MetricFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,</b>
    +&nbsp;                durationUnit,
    +&nbsp;                showSamples,
    +&nbsp;                filter));
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        if (allowedOrigin != null) {</b>
    +<b class="fc">&nbsp;            resp.setHeader(&quot;Access-Control-Allow-Origin&quot;, allowedOrigin);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            if (jsonpParamName != null &amp;&amp; req.getParameter(jsonpParamName) != null) {</b>
    +<b class="fc">&nbsp;                getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                getWriter(req).writeValue(output, registry);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected ObjectWriter getWriter(HttpServletRequest request) {
    +<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    +<b class="fc">&nbsp;        if (prettyPrint) {</b>
    +<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return mapper.writer();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));</b>
    +<b class="fc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    +<b class="fc">&nbsp;            return defaultValue;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-5.html
    new file mode 100644
    index 0000000000..a1c8a07acf
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-5.html
    @@ -0,0 +1,135 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > PingServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: PingServlet (io.dropwizard.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">PingServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +&nbsp;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServlet;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An HTTP servlets which outputs a {@code text/plain} {@code &quot;pong&quot;} response.
    +&nbsp; */
    +<b class="fc">&nbsp;public class PingServlet extends HttpServlet {</b>
    +&nbsp;    private static final long serialVersionUID = 3772654177231086757L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    +&nbsp;    private static final String CONTENT = &quot;pong&quot;;
    +&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    +&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    +<b class="fc">&nbsp;            writer.println(CONTENT);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-6.html
    new file mode 100644
    index 0000000000..42f8283881
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-6.html
    @@ -0,0 +1,159 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ThreadDumpServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ThreadDumpServlet (io.dropwizard.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ThreadDumpServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.jvm.ThreadDump;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServlet;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
    +&nbsp; * the VM. Only responds to {@code GET} requests.
    +&nbsp; */
    +<b class="fc">&nbsp;public class ThreadDumpServlet extends HttpServlet {</b>
    +&nbsp;
    +&nbsp;    private static final long serialVersionUID = -2690343532336103046L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    +&nbsp;
    +&nbsp;    private transient ThreadDump threadDump;
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init() throws ServletException {
    +&nbsp;        try {
    +&nbsp;            // Some PaaS like Google App Engine blacklist java.lang.managament
    +<b class="fc">&nbsp;            this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());</b>
    +<b class="nc">&nbsp;        } catch (NoClassDefFoundError ncdfe) {</b>
    +<b class="nc">&nbsp;            this.threadDump = null; // we won&#39;t be able to provide thread dump</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final boolean includeMonitors = getParam(req.getParameter(&quot;monitors&quot;), true);</b>
    +<b class="fc">&nbsp;        final boolean includeSynchronizers = getParam(req.getParameter(&quot;synchronizers&quot;), true);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        if (threadDump == null) {</b>
    +<b class="nc">&nbsp;            resp.getWriter().println(&quot;Sorry your runtime environment does not allow to dump threads.&quot;);</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            threadDump.dump(includeMonitors, includeSynchronizers, output);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static Boolean getParam(String initParam, boolean defaultValue) {
    +<b class="fc">&nbsp;        return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index.html
    new file mode 100644
    index 0000000000..4318f7a78a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..4c2c0c6c7b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..1c654f1a82
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..9da6bf97e7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_CLASS.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..8617e35746
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..bc6d1866b7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_LINE.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..4c557b82fb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..9063372325
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_METHOD.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..223a225272
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..01a1f2b17e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/98)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-1.html
    new file mode 100644
    index 0000000000..20977b165f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-1.html
    @@ -0,0 +1,176 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CachedGaugeBenchmark</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CachedGaugeBenchmark (com.codahale.metrics.benchmarks)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CachedGaugeBenchmark</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">CachedGaugeBenchmark$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.CachedGauge;
    +&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    +&nbsp;import org.openjdk.jmh.annotations.Scope;
    +&nbsp;import org.openjdk.jmh.annotations.State;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.runner.Runner;
    +&nbsp;import org.openjdk.jmh.runner.RunnerException;
    +&nbsp;import org.openjdk.jmh.runner.options.Options;
    +&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;@State(Scope.Benchmark)
    +<b class="nc">&nbsp;public class CachedGaugeBenchmark {</b>
    +&nbsp;
    +<b class="nc">&nbsp;    private CachedGauge&lt;Integer&gt; cachedGauge = new CachedGauge&lt;Integer&gt;(100, TimeUnit.MILLISECONDS) {</b>
    +&nbsp;        @Override
    +&nbsp;        protected Integer loadValue() {
    +&nbsp;            try {
    +<b class="nc">&nbsp;                Thread.sleep(10);</b>
    +<b class="nc">&nbsp;            } catch (InterruptedException e) {</b>
    +<b class="nc">&nbsp;                throw new RuntimeException(&quot;Thread was interrupted&quot;, e);</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            return 12345;</b>
    +&nbsp;        }
    +&nbsp;    };
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    public void perfGetValue(Blackhole blackhole) {
    +<b class="nc">&nbsp;        blackhole.consume(cachedGauge.getValue());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void main(String[] args) throws RunnerException {
    +<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    +<b class="nc">&nbsp;                .include(&quot;.*&quot; + CachedGaugeBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    +<b class="nc">&nbsp;                .warmupIterations(3)</b>
    +<b class="nc">&nbsp;                .measurementIterations(5)</b>
    +<b class="nc">&nbsp;                .threads(4)</b>
    +<b class="nc">&nbsp;                .forks(1)</b>
    +<b class="nc">&nbsp;                .build();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        new Runner(opt).run();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-2.html
    new file mode 100644
    index 0000000000..4908843585
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-2.html
    @@ -0,0 +1,142 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CounterBenchmark</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CounterBenchmark (com.codahale.metrics.benchmarks)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CounterBenchmark</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    +&nbsp;import org.openjdk.jmh.annotations.Scope;
    +&nbsp;import org.openjdk.jmh.annotations.State;
    +&nbsp;import org.openjdk.jmh.runner.Runner;
    +&nbsp;import org.openjdk.jmh.runner.RunnerException;
    +&nbsp;import org.openjdk.jmh.runner.options.Options;
    +&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    +&nbsp;
    +&nbsp;@State(Scope.Benchmark)
    +<b class="nc">&nbsp;public class CounterBenchmark {</b>
    +&nbsp;
    +<b class="nc">&nbsp;    private final Counter counter = new Counter();</b>
    +&nbsp;
    +&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    +<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    public Object perfIncrement() {
    +<b class="nc">&nbsp;        counter.inc(nextValue); </b>
    +<b class="nc">&nbsp;        return counter;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void main(String[] args) throws RunnerException {
    +<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    +<b class="nc">&nbsp;                .include(&quot;.*&quot; + CounterBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    +<b class="nc">&nbsp;                .warmupIterations(3)</b>
    +<b class="nc">&nbsp;                .measurementIterations(5)</b>
    +<b class="nc">&nbsp;                .threads(4)</b>
    +<b class="nc">&nbsp;                .forks(1)</b>
    +<b class="nc">&nbsp;                .build();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        new Runner(opt).run();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-3.html
    new file mode 100644
    index 0000000000..8e8851ad43
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-3.html
    @@ -0,0 +1,142 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MeterBenchmark</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MeterBenchmark (com.codahale.metrics.benchmarks)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MeterBenchmark</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    +&nbsp;import org.openjdk.jmh.annotations.Scope;
    +&nbsp;import org.openjdk.jmh.annotations.State;
    +&nbsp;import org.openjdk.jmh.runner.Runner;
    +&nbsp;import org.openjdk.jmh.runner.RunnerException;
    +&nbsp;import org.openjdk.jmh.runner.options.Options;
    +&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    +&nbsp;
    +&nbsp;@State(Scope.Benchmark)
    +<b class="nc">&nbsp;public class MeterBenchmark {</b>
    +&nbsp;
    +<b class="nc">&nbsp;    private final Meter meter = new Meter();</b>
    +&nbsp;
    +&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    +<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    public Object perfMark() {
    +<b class="nc">&nbsp;        meter.mark(nextValue);</b>
    +<b class="nc">&nbsp;        return meter;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void main(String[] args) throws RunnerException {
    +<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    +<b class="nc">&nbsp;                .include(&quot;.*&quot; + MeterBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    +<b class="nc">&nbsp;                .warmupIterations(3)</b>
    +<b class="nc">&nbsp;                .measurementIterations(5)</b>
    +<b class="nc">&nbsp;                .threads(4)</b>
    +<b class="nc">&nbsp;                .forks(1)</b>
    +<b class="nc">&nbsp;                .build();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        new Runner(opt).run();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-4.html
    new file mode 100644
    index 0000000000..a1ae4937c6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-4.html
    @@ -0,0 +1,192 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark (com.codahale.metrics.benchmarks)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/32)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    +&nbsp;import com.codahale.metrics.LockFreeExponentiallyDecayingReservoir;
    +&nbsp;import com.codahale.metrics.Reservoir;
    +&nbsp;import com.codahale.metrics.SlidingTimeWindowArrayReservoir;
    +&nbsp;import com.codahale.metrics.SlidingTimeWindowReservoir;
    +&nbsp;import com.codahale.metrics.SlidingWindowReservoir;
    +&nbsp;import com.codahale.metrics.UniformReservoir;
    +&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Scope;
    +&nbsp;import org.openjdk.jmh.annotations.State;
    +&nbsp;import org.openjdk.jmh.profile.GCProfiler;
    +&nbsp;import org.openjdk.jmh.runner.Runner;
    +&nbsp;import org.openjdk.jmh.runner.RunnerException;
    +&nbsp;import org.openjdk.jmh.runner.options.Options;
    +&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    +&nbsp;import org.openjdk.jmh.runner.options.TimeValue;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;@State(Scope.Benchmark)
    +<b class="nc">&nbsp;public class ReservoirBenchmark {</b>
    +&nbsp;
    +<b class="nc">&nbsp;    private final UniformReservoir uniform = new UniformReservoir();</b>
    +<b class="nc">&nbsp;    private final ExponentiallyDecayingReservoir exponential = new ExponentiallyDecayingReservoir();</b>
    +<b class="nc">&nbsp;    private final Reservoir lockFreeExponential = LockFreeExponentiallyDecayingReservoir.builder().build();</b>
    +<b class="nc">&nbsp;    private final SlidingWindowReservoir sliding = new SlidingWindowReservoir(1000);</b>
    +<b class="nc">&nbsp;    private final SlidingTimeWindowReservoir slidingTime = new SlidingTimeWindowReservoir(200, TimeUnit.MILLISECONDS);</b>
    +<b class="nc">&nbsp;    private final SlidingTimeWindowArrayReservoir arrTime = new SlidingTimeWindowArrayReservoir(200, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    +<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    public Object perfUniformReservoir() {
    +<b class="nc">&nbsp;        uniform.update(nextValue);</b>
    +<b class="nc">&nbsp;        return uniform;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    public Object perfSlidingTimeWindowArrayReservoir() {
    +<b class="nc">&nbsp;        arrTime.update(nextValue);</b>
    +<b class="nc">&nbsp;        return arrTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    public Object perfExponentiallyDecayingReservoir() {
    +<b class="nc">&nbsp;        exponential.update(nextValue);</b>
    +<b class="nc">&nbsp;        return exponential;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    public Object perfSlidingWindowReservoir() {
    +<b class="nc">&nbsp;        sliding.update(nextValue);</b>
    +<b class="nc">&nbsp;        return sliding;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    public Object perfSlidingTimeWindowReservoir() {
    +<b class="nc">&nbsp;        slidingTime.update(nextValue);</b>
    +<b class="nc">&nbsp;        return slidingTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    public Object perfLockFreeExponentiallyDecayingReservoir() {
    +<b class="nc">&nbsp;        lockFreeExponential.update(nextValue);</b>
    +<b class="nc">&nbsp;        return lockFreeExponential;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void main(String[] args) throws RunnerException {
    +<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    +<b class="nc">&nbsp;            .include(&quot;.*&quot; + ReservoirBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    +<b class="nc">&nbsp;            .warmupIterations(10)</b>
    +<b class="nc">&nbsp;            .measurementIterations(10)</b>
    +<b class="nc">&nbsp;            .addProfiler(GCProfiler.class)</b>
    +<b class="nc">&nbsp;            .measurementTime(TimeValue.seconds(3))</b>
    +<b class="nc">&nbsp;            .timeUnit(TimeUnit.MICROSECONDS)</b>
    +<b class="nc">&nbsp;            .mode(Mode.AverageTime)</b>
    +<b class="nc">&nbsp;            .threads(4)</b>
    +<b class="nc">&nbsp;            .forks(1)</b>
    +<b class="nc">&nbsp;            .build();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        new Runner(opt).run();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-5.html
    new file mode 100644
    index 0000000000..8b262b2e6f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-5.html
    @@ -0,0 +1,184 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark (com.codahale.metrics.benchmarks)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowReservoirsBenchmark</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/23)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.SlidingTimeWindowArrayReservoir;
    +&nbsp;import com.codahale.metrics.SlidingTimeWindowReservoir;
    +&nbsp;import com.codahale.metrics.Snapshot;
    +&nbsp;
    +&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    +&nbsp;import org.openjdk.jmh.annotations.Group;
    +&nbsp;import org.openjdk.jmh.annotations.GroupThreads;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Scope;
    +&nbsp;import org.openjdk.jmh.annotations.State;
    +&nbsp;import org.openjdk.jmh.profile.GCProfiler;
    +&nbsp;import org.openjdk.jmh.runner.Runner;
    +&nbsp;import org.openjdk.jmh.runner.RunnerException;
    +&nbsp;import org.openjdk.jmh.runner.options.Options;
    +&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    +&nbsp;import org.openjdk.jmh.runner.options.TimeValue;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * @author bstorozhuk
    +&nbsp; */
    +&nbsp;@State(Scope.Benchmark)
    +<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark {</b>
    +<b class="nc">&nbsp;    private final SlidingTimeWindowReservoir slidingTime = new SlidingTimeWindowReservoir(200, TimeUnit.MILLISECONDS);</b>
    +<b class="nc">&nbsp;    private final SlidingTimeWindowArrayReservoir arrTime = new SlidingTimeWindowArrayReservoir(200, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    +<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    @Group(&quot;slidingTime&quot;)
    +&nbsp;    @GroupThreads(3)
    +&nbsp;    public Object slidingTimeAddMeasurement() {
    +<b class="nc">&nbsp;        slidingTime.update(nextValue);</b>
    +<b class="nc">&nbsp;        return slidingTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    @Group(&quot;slidingTime&quot;)
    +&nbsp;    @GroupThreads(1)
    +&nbsp;    public Object slidingTimeRead() {
    +<b class="nc">&nbsp;        Snapshot snapshot = slidingTime.getSnapshot();</b>
    +<b class="nc">&nbsp;        return snapshot;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    @Group(&quot;arrTime&quot;)
    +&nbsp;    @GroupThreads(3)
    +&nbsp;    public Object arrTimeAddMeasurement() {
    +<b class="nc">&nbsp;        arrTime.update(nextValue);</b>
    +<b class="nc">&nbsp;        return slidingTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Benchmark
    +&nbsp;    @Group(&quot;arrTime&quot;)
    +&nbsp;    @GroupThreads(1)
    +&nbsp;    public Object arrTimeRead() {
    +<b class="nc">&nbsp;        Snapshot snapshot = arrTime.getSnapshot();</b>
    +<b class="nc">&nbsp;        return snapshot;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void main(String[] args) throws RunnerException {
    +<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    +<b class="nc">&nbsp;            .include(&quot;.*&quot; + SlidingTimeWindowReservoirsBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    +<b class="nc">&nbsp;            .warmupIterations(10)</b>
    +<b class="nc">&nbsp;            .measurementIterations(10)</b>
    +<b class="nc">&nbsp;            .addProfiler(GCProfiler.class)</b>
    +<b class="nc">&nbsp;            .measurementTime(TimeValue.seconds(3))</b>
    +<b class="nc">&nbsp;            .timeUnit(TimeUnit.MICROSECONDS)</b>
    +<b class="nc">&nbsp;            .mode(Mode.AverageTime)</b>
    +<b class="nc">&nbsp;            .forks(1)</b>
    +<b class="nc">&nbsp;            .build();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        new Runner(opt).run();</b>
    +&nbsp;    }
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index.html
    new file mode 100644
    index 0000000000..66ac462ad8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index.html
    @@ -0,0 +1,1077 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..1d3156bcc1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,1077 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..aa056b4b3d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,1077 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..b1f1a7e879
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_CLASS.html
    @@ -0,0 +1,1077 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..ee5c804b00
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,1077 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..86dc026a1a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_LINE.html
    @@ -0,0 +1,1077 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..7eac142a63
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,1077 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..db62a49d15
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_METHOD.html
    @@ -0,0 +1,1077 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..718dfa754c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,1077 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..abb60a4fdb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,1077 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1.html
    new file mode 100644
    index 0000000000..533cb2c90d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1.html
    @@ -0,0 +1,108 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CachedGaugeBenchmark_jmhType</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CachedGaugeBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CachedGaugeBenchmark_jmhType</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class CachedGaugeBenchmark_jmhType extends CachedGaugeBenchmark_jmhType_B3 {</b>
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-10.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-10.html
    new file mode 100644
    index 0000000000..6e6b5e522d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-10.html
    @@ -0,0 +1,108 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_jmhType</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_jmhType</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class ReservoirBenchmark_jmhType extends ReservoirBenchmark_jmhType_B3 {</b>
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-11.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-11.html
    new file mode 100644
    index 0000000000..cc4c91f1c5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-11.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_jmhType_B1</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_jmhType_B1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import com.codahale.metrics.benchmarks.ReservoirBenchmark;
    +<b class="nc">&nbsp;public class ReservoirBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.ReservoirBenchmark {</b>
    +&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    +&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    +&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    +&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    +&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    +&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    +&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    +&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    +&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    +&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    +&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    +&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    +&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    +&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    +&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    +&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-12.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-12.html
    new file mode 100644
    index 0000000000..0153ec0af9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-12.html
    @@ -0,0 +1,126 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_jmhType_B2</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_jmhType_B2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    +<b class="nc">&nbsp;public class ReservoirBenchmark_jmhType_B2 extends ReservoirBenchmark_jmhType_B1 {</b>
    +&nbsp;    public volatile int setupTrialMutex;
    +&nbsp;    public volatile int tearTrialMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupIterationMutex;
    +&nbsp;    public volatile int tearIterationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupInvocationMutex;
    +&nbsp;    public volatile int tearInvocationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile boolean readyTrial;
    +&nbsp;    public volatile boolean readyIteration;
    +&nbsp;    public volatile boolean readyInvocation;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-13.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-13.html
    new file mode 100644
    index 0000000000..b9b782e175
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-13.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_jmhType_B3</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_jmhType_B3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class ReservoirBenchmark_jmhType_B3 extends ReservoirBenchmark_jmhType_B2 {</b>
    +&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    +&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    +&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    +&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    +&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    +&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    +&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    +&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    +&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    +&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    +&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    +&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    +&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    +&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    +&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    +&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-14.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-14.html
    new file mode 100644
    index 0000000000..419fcd75b9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-14.html
    @@ -0,0 +1,484 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfExponentiallyDecayingReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfExponentiallyDecayingReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfExponentiallyDecayingReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfExponentiallyDecayingReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfExponentiallyDecayingReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfExponentiallyDecayingReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfExponentiallyDecayingReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfExponentiallyDecayingReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfExponentiallyDecayingReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            perfExponentiallyDecayingReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfExponentiallyDecayingReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfExponentiallyDecayingReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfExponentiallyDecayingReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            perfExponentiallyDecayingReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfExponentiallyDecayingReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfExponentiallyDecayingReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    +&nbsp;    
    +&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-15.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-15.html
    new file mode 100644
    index 0000000000..f0f040c5e4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-15.html
    @@ -0,0 +1,484 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfLockFreeExponentiallyDecayingReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfLockFreeExponentiallyDecayingReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfLockFreeExponentiallyDecayingReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfLockFreeExponentiallyDecayingReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfLockFreeExponentiallyDecayingReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfLockFreeExponentiallyDecayingReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfLockFreeExponentiallyDecayingReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfLockFreeExponentiallyDecayingReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfLockFreeExponentiallyDecayingReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            perfLockFreeExponentiallyDecayingReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfLockFreeExponentiallyDecayingReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfLockFreeExponentiallyDecayingReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfLockFreeExponentiallyDecayingReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            perfLockFreeExponentiallyDecayingReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfLockFreeExponentiallyDecayingReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfLockFreeExponentiallyDecayingReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    +&nbsp;    
    +&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-16.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-16.html
    new file mode 100644
    index 0000000000..8cb12e631f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-16.html
    @@ -0,0 +1,484 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowArrayReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfSlidingTimeWindowArrayReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowArrayReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingTimeWindowArrayReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowArrayReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfSlidingTimeWindowArrayReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowArrayReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingTimeWindowArrayReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowArrayReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            perfSlidingTimeWindowArrayReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowArrayReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingTimeWindowArrayReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowArrayReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            perfSlidingTimeWindowArrayReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowArrayReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingTimeWindowArrayReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    +&nbsp;    
    +&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-17.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-17.html
    new file mode 100644
    index 0000000000..e27e2e33da
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-17.html
    @@ -0,0 +1,484 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfSlidingTimeWindowReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingTimeWindowReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfSlidingTimeWindowReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingTimeWindowReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            perfSlidingTimeWindowReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingTimeWindowReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            perfSlidingTimeWindowReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingTimeWindowReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    +&nbsp;    
    +&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-18.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-18.html
    new file mode 100644
    index 0000000000..d42505e1a5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-18.html
    @@ -0,0 +1,484 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingWindowReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfSlidingWindowReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfSlidingWindowReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingWindowReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingWindowReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfSlidingWindowReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfSlidingWindowReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingWindowReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingWindowReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            perfSlidingWindowReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfSlidingWindowReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingWindowReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingWindowReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            perfSlidingWindowReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfSlidingWindowReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingWindowReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    +&nbsp;    
    +&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-19.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-19.html
    new file mode 100644
    index 0000000000..f3b65ca1a4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-19.html
    @@ -0,0 +1,484 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_perfUniformReservoir_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_perfUniformReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_perfUniformReservoir_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class ReservoirBenchmark_perfUniformReservoir_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfUniformReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfUniformReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfUniformReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfUniformReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfUniformReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfUniformReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfUniformReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfUniformReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfUniformReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            perfUniformReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfUniformReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfUniformReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfUniformReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            perfUniformReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfUniformReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfUniformReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    +&nbsp;    
    +&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1a.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1a.html
    new file mode 100644
    index 0000000000..9e4b72d1a5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1a.html
    @@ -0,0 +1,724 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.SlidingTimeWindowReservoirsBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult arrTime_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            arrTimeAddMeasurement_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.SECONDARY, &quot;arrTimeAddMeasurement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            arrTimeRead_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.SECONDARY, &quot;arrTimeRead&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void arrTimeAddMeasurement_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void arrTimeRead_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult arrTime_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            arrTimeAddMeasurement_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.SECONDARY, &quot;arrTimeAddMeasurement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            arrTimeRead_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.SECONDARY, &quot;arrTimeRead&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void arrTimeAddMeasurement_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void arrTimeRead_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult arrTime_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            arrTimeAddMeasurement_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;arrTime&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.SECONDARY, &quot;arrTimeAddMeasurement&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            arrTimeRead_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;arrTime&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.SECONDARY, &quot;arrTimeRead&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void arrTimeAddMeasurement_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void arrTimeRead_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult arrTime_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            arrTimeAddMeasurement_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.SECONDARY, &quot;arrTimeAddMeasurement&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            arrTimeRead_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.SECONDARY, &quot;arrTimeRead&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void arrTimeAddMeasurement_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void arrTimeRead_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile SlidingTimeWindowReservoirsBenchmark_jmhType f_slidingtimewindowreservoirsbenchmark0_G;
    +&nbsp;    
    +&nbsp;    SlidingTimeWindowReservoirsBenchmark_jmhType _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        SlidingTimeWindowReservoirsBenchmark_jmhType val = f_slidingtimewindowreservoirsbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_slidingtimewindowreservoirsbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new SlidingTimeWindowReservoirsBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_slidingtimewindowreservoirsbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1b.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1b.html
    new file mode 100644
    index 0000000000..e957cfcd9d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1b.html
    @@ -0,0 +1,108 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_jmhType</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowReservoirsBenchmark_jmhType</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark_jmhType extends SlidingTimeWindowReservoirsBenchmark_jmhType_B3 {</b>
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1c.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1c.html
    new file mode 100644
    index 0000000000..741cb2543c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1c.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_jmhType_B1</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import com.codahale.metrics.benchmarks.SlidingTimeWindowReservoirsBenchmark;
    +<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.SlidingTimeWindowReservoirsBenchmark {</b>
    +&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    +&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    +&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    +&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    +&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    +&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    +&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    +&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    +&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    +&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    +&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    +&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    +&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    +&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    +&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    +&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1d.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1d.html
    new file mode 100644
    index 0000000000..a8e466a94a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1d.html
    @@ -0,0 +1,126 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_jmhType_B2</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    +<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark_jmhType_B2 extends SlidingTimeWindowReservoirsBenchmark_jmhType_B1 {</b>
    +&nbsp;    public volatile int setupTrialMutex;
    +&nbsp;    public volatile int tearTrialMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupIterationMutex;
    +&nbsp;    public volatile int tearIterationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupInvocationMutex;
    +&nbsp;    public volatile int tearInvocationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile boolean readyTrial;
    +&nbsp;    public volatile boolean readyIteration;
    +&nbsp;    public volatile boolean readyInvocation;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1e.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1e.html
    new file mode 100644
    index 0000000000..824ac29ff4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1e.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_jmhType_B3</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark_jmhType_B3 extends SlidingTimeWindowReservoirsBenchmark_jmhType_B2 {</b>
    +&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    +&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    +&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    +&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    +&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    +&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    +&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    +&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    +&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    +&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    +&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    +&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    +&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    +&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    +&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    +&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1f.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1f.html
    new file mode 100644
    index 0000000000..7cc242b373
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1f.html
    @@ -0,0 +1,724 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.SlidingTimeWindowReservoirsBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult slidingTime_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            slidingTimeAddMeasurement_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.SECONDARY, &quot;slidingTimeAddMeasurement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            slidingTimeRead_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.SECONDARY, &quot;slidingTimeRead&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void slidingTimeAddMeasurement_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void slidingTimeRead_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult slidingTime_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            slidingTimeAddMeasurement_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.SECONDARY, &quot;slidingTimeAddMeasurement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            slidingTimeRead_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.SECONDARY, &quot;slidingTimeRead&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void slidingTimeAddMeasurement_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void slidingTimeRead_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult slidingTime_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            slidingTimeAddMeasurement_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.SECONDARY, &quot;slidingTimeAddMeasurement&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            slidingTimeRead_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.SECONDARY, &quot;slidingTimeRead&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void slidingTimeAddMeasurement_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void slidingTimeRead_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult slidingTime_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            slidingTimeAddMeasurement_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.SECONDARY, &quot;slidingTimeAddMeasurement&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            slidingTimeRead_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.SECONDARY, &quot;slidingTimeRead&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void slidingTimeAddMeasurement_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void slidingTimeRead_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile SlidingTimeWindowReservoirsBenchmark_jmhType f_slidingtimewindowreservoirsbenchmark0_G;
    +&nbsp;    
    +&nbsp;    SlidingTimeWindowReservoirsBenchmark_jmhType _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        SlidingTimeWindowReservoirsBenchmark_jmhType val = f_slidingtimewindowreservoirsbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_slidingtimewindowreservoirsbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new SlidingTimeWindowReservoirsBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_slidingtimewindowreservoirsbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-2.html
    new file mode 100644
    index 0000000000..96b200f231
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-2.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CachedGaugeBenchmark_jmhType_B1</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CachedGaugeBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CachedGaugeBenchmark_jmhType_B1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import com.codahale.metrics.benchmarks.CachedGaugeBenchmark;
    +<b class="nc">&nbsp;public class CachedGaugeBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.CachedGaugeBenchmark {</b>
    +&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    +&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    +&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    +&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    +&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    +&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    +&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    +&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    +&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    +&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    +&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    +&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    +&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    +&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    +&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    +&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-3.html
    new file mode 100644
    index 0000000000..82f8ad00c8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-3.html
    @@ -0,0 +1,126 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CachedGaugeBenchmark_jmhType_B2</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CachedGaugeBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CachedGaugeBenchmark_jmhType_B2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    +<b class="nc">&nbsp;public class CachedGaugeBenchmark_jmhType_B2 extends CachedGaugeBenchmark_jmhType_B1 {</b>
    +&nbsp;    public volatile int setupTrialMutex;
    +&nbsp;    public volatile int tearTrialMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupIterationMutex;
    +&nbsp;    public volatile int tearIterationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupInvocationMutex;
    +&nbsp;    public volatile int tearInvocationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile boolean readyTrial;
    +&nbsp;    public volatile boolean readyIteration;
    +&nbsp;    public volatile boolean readyInvocation;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-4.html
    new file mode 100644
    index 0000000000..947a5cdc1a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-4.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CachedGaugeBenchmark_jmhType_B3</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CachedGaugeBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CachedGaugeBenchmark_jmhType_B3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class CachedGaugeBenchmark_jmhType_B3 extends CachedGaugeBenchmark_jmhType_B2 {</b>
    +&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    +&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    +&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    +&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    +&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    +&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    +&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    +&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    +&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    +&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    +&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    +&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    +&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    +&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    +&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    +&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-5.html
    new file mode 100644
    index 0000000000..20fb751e65
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-5.html
    @@ -0,0 +1,484 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CachedGaugeBenchmark_perfGetValue_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CachedGaugeBenchmark_perfGetValue_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CachedGaugeBenchmark_perfGetValue_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.CachedGaugeBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class CachedGaugeBenchmark_perfGetValue_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfGetValue_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G = _jmh_tryInit_f_cachedgaugebenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfGetValue_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_cachedgaugebenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_cachedgaugebenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfGetValue&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfGetValue_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfGetValue_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G = _jmh_tryInit_f_cachedgaugebenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfGetValue_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_cachedgaugebenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_cachedgaugebenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfGetValue&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfGetValue_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfGetValue_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G = _jmh_tryInit_f_cachedgaugebenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            perfGetValue_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_cachedgaugebenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_cachedgaugebenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfGetValue&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfGetValue_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfGetValue_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G = _jmh_tryInit_f_cachedgaugebenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            perfGetValue_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_cachedgaugebenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_cachedgaugebenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfGetValue&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfGetValue_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile CachedGaugeBenchmark_jmhType f_cachedgaugebenchmark0_G;
    +&nbsp;    
    +&nbsp;    CachedGaugeBenchmark_jmhType _jmh_tryInit_f_cachedgaugebenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        CachedGaugeBenchmark_jmhType val = f_cachedgaugebenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_cachedgaugebenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new CachedGaugeBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_cachedgaugebenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-6.html
    new file mode 100644
    index 0000000000..f8b6d6c286
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-6.html
    @@ -0,0 +1,108 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CounterBenchmark_jmhType</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CounterBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CounterBenchmark_jmhType</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class CounterBenchmark_jmhType extends CounterBenchmark_jmhType_B3 {</b>
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-7.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-7.html
    new file mode 100644
    index 0000000000..363dab61d6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-7.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CounterBenchmark_jmhType_B1</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CounterBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CounterBenchmark_jmhType_B1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import com.codahale.metrics.benchmarks.CounterBenchmark;
    +<b class="nc">&nbsp;public class CounterBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.CounterBenchmark {</b>
    +&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    +&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    +&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    +&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    +&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    +&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    +&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    +&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    +&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    +&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    +&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    +&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    +&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    +&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    +&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    +&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-8.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-8.html
    new file mode 100644
    index 0000000000..1dbdcc2c3b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-8.html
    @@ -0,0 +1,126 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CounterBenchmark_jmhType_B2</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CounterBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CounterBenchmark_jmhType_B2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    +<b class="nc">&nbsp;public class CounterBenchmark_jmhType_B2 extends CounterBenchmark_jmhType_B1 {</b>
    +&nbsp;    public volatile int setupTrialMutex;
    +&nbsp;    public volatile int tearTrialMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupIterationMutex;
    +&nbsp;    public volatile int tearIterationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupInvocationMutex;
    +&nbsp;    public volatile int tearInvocationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile boolean readyTrial;
    +&nbsp;    public volatile boolean readyIteration;
    +&nbsp;    public volatile boolean readyInvocation;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-9.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-9.html
    new file mode 100644
    index 0000000000..d65d7ff7ec
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-9.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CounterBenchmark_jmhType_B3</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CounterBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CounterBenchmark_jmhType_B3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class CounterBenchmark_jmhType_B3 extends CounterBenchmark_jmhType_B2 {</b>
    +&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    +&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    +&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    +&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    +&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    +&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    +&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    +&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    +&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    +&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    +&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    +&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    +&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    +&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    +&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    +&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-a.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-a.html
    new file mode 100644
    index 0000000000..96311f3949
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-a.html
    @@ -0,0 +1,484 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CounterBenchmark_perfIncrement_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CounterBenchmark_perfIncrement_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CounterBenchmark_perfIncrement_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.CounterBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class CounterBenchmark_perfIncrement_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfIncrement_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            CounterBenchmark_jmhType l_counterbenchmark0_G = _jmh_tryInit_f_counterbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfIncrement_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_counterbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_counterbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfIncrement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfIncrement_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, CounterBenchmark_jmhType l_counterbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfIncrement_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            CounterBenchmark_jmhType l_counterbenchmark0_G = _jmh_tryInit_f_counterbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfIncrement_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_counterbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_counterbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfIncrement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfIncrement_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, CounterBenchmark_jmhType l_counterbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfIncrement_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            CounterBenchmark_jmhType l_counterbenchmark0_G = _jmh_tryInit_f_counterbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            perfIncrement_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_counterbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_counterbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfIncrement&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfIncrement_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, CounterBenchmark_jmhType l_counterbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfIncrement_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            CounterBenchmark_jmhType l_counterbenchmark0_G = _jmh_tryInit_f_counterbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            perfIncrement_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_counterbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_counterbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfIncrement&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfIncrement_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, CounterBenchmark_jmhType l_counterbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile CounterBenchmark_jmhType f_counterbenchmark0_G;
    +&nbsp;    
    +&nbsp;    CounterBenchmark_jmhType _jmh_tryInit_f_counterbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        CounterBenchmark_jmhType val = f_counterbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_counterbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new CounterBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_counterbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-b.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-b.html
    new file mode 100644
    index 0000000000..2ac33def82
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-b.html
    @@ -0,0 +1,108 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MeterBenchmark_jmhType</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MeterBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MeterBenchmark_jmhType</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class MeterBenchmark_jmhType extends MeterBenchmark_jmhType_B3 {</b>
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-c.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-c.html
    new file mode 100644
    index 0000000000..6685d86a15
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-c.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MeterBenchmark_jmhType_B1</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MeterBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MeterBenchmark_jmhType_B1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import com.codahale.metrics.benchmarks.MeterBenchmark;
    +<b class="nc">&nbsp;public class MeterBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.MeterBenchmark {</b>
    +&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    +&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    +&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    +&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    +&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    +&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    +&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    +&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    +&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    +&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    +&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    +&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    +&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    +&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    +&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    +&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-d.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-d.html
    new file mode 100644
    index 0000000000..b979571e4c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-d.html
    @@ -0,0 +1,126 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MeterBenchmark_jmhType_B2</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MeterBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MeterBenchmark_jmhType_B2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    +<b class="nc">&nbsp;public class MeterBenchmark_jmhType_B2 extends MeterBenchmark_jmhType_B1 {</b>
    +&nbsp;    public volatile int setupTrialMutex;
    +&nbsp;    public volatile int tearTrialMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupIterationMutex;
    +&nbsp;    public volatile int tearIterationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupInvocationMutex;
    +&nbsp;    public volatile int tearInvocationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile boolean readyTrial;
    +&nbsp;    public volatile boolean readyIteration;
    +&nbsp;    public volatile boolean readyInvocation;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-e.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-e.html
    new file mode 100644
    index 0000000000..74e0777cf9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-e.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MeterBenchmark_jmhType_B3</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MeterBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MeterBenchmark_jmhType_B3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class MeterBenchmark_jmhType_B3 extends MeterBenchmark_jmhType_B2 {</b>
    +&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    +&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    +&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    +&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    +&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    +&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    +&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    +&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    +&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    +&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    +&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    +&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    +&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    +&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    +&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    +&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-f.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-f.html
    new file mode 100644
    index 0000000000..346569be5c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-f.html
    @@ -0,0 +1,484 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MeterBenchmark_perfMark_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MeterBenchmark_perfMark_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MeterBenchmark_perfMark_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.MeterBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class MeterBenchmark_perfMark_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfMark_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            MeterBenchmark_jmhType l_meterbenchmark0_G = _jmh_tryInit_f_meterbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfMark_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_meterbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_meterbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfMark&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfMark_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, MeterBenchmark_jmhType l_meterbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfMark_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            MeterBenchmark_jmhType l_meterbenchmark0_G = _jmh_tryInit_f_meterbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfMark_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_meterbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_meterbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfMark&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfMark_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, MeterBenchmark_jmhType l_meterbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfMark_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            MeterBenchmark_jmhType l_meterbenchmark0_G = _jmh_tryInit_f_meterbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            perfMark_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_meterbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_meterbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfMark&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfMark_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, MeterBenchmark_jmhType l_meterbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfMark_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            MeterBenchmark_jmhType l_meterbenchmark0_G = _jmh_tryInit_f_meterbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            perfMark_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_meterbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_meterbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfMark&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfMark_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, MeterBenchmark_jmhType l_meterbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile MeterBenchmark_jmhType f_meterbenchmark0_G;
    +&nbsp;    
    +&nbsp;    MeterBenchmark_jmhType _jmh_tryInit_f_meterbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        MeterBenchmark_jmhType val = f_meterbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_meterbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new MeterBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_meterbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index.html
    new file mode 100644
    index 0000000000..592903c667
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..7b26e1136c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..23d6f24636
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..eb679e48da
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_CLASS.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..1c99a1b4b4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..3b9139e690
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_LINE.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..21db42b9d3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..a20459d49c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_METHOD.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..702194eafd
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..2ca5da7f35
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,167 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.caffeine</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/sources/source-1.html
    new file mode 100644
    index 0000000000..78e5e1accb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/sources/source-1.html
    @@ -0,0 +1,250 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricsStatsCounter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.caffeine</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricsStatsCounter (com.codahale.metrics.caffeine)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricsStatsCounter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;/*
    +&nbsp; * Copyright 2016 Ben Manes. All Rights Reserved.
    +&nbsp; *
    +&nbsp; * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    +&nbsp; * you may not use this file except in compliance with the License.
    +&nbsp; * You may obtain a copy of the License at
    +&nbsp; *
    +&nbsp; *     http://www.apache.org/licenses/LICENSE-2.0
    +&nbsp; *
    +&nbsp; * Unless required by applicable law or agreed to in writing, software
    +&nbsp; * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    +&nbsp; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +&nbsp; * See the License for the specific language governing permissions and
    +&nbsp; * limitations under the License.
    +&nbsp; */
    +&nbsp;package com.codahale.metrics.caffeine;
    +&nbsp;
    +&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;
    +&nbsp;import java.util.EnumMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.LongAdder;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Histogram;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.github.benmanes.caffeine.cache.RemovalCause;
    +&nbsp;import com.github.benmanes.caffeine.cache.stats.CacheStats;
    +&nbsp;import com.github.benmanes.caffeine.cache.stats.StatsCounter;
    +&nbsp;import org.checkerframework.checker.index.qual.NonNegative;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link StatsCounter} instrumented with Dropwizard Metrics.
    +&nbsp; *
    +&nbsp; * @author ben.manes@gmail.com (Ben Manes)
    +&nbsp; * @author John Karp
    +&nbsp; */
    +&nbsp;public final class MetricsStatsCounter implements StatsCounter {
    +&nbsp;  private final Counter hitCount;
    +&nbsp;  private final Counter missCount;
    +&nbsp;  private final Timer loadSuccess;
    +&nbsp;  private final Timer loadFailure;
    +&nbsp;  private final Histogram evictions;
    +&nbsp;  private final Counter evictionWeight;
    +&nbsp;  private final EnumMap&lt;RemovalCause, Histogram&gt; evictionsWithCause;
    +&nbsp;
    +&nbsp;  // for implementing snapshot()
    +<b class="fc">&nbsp;  private final LongAdder totalLoadTime = new LongAdder();</b>
    +&nbsp;
    +&nbsp;  /**
    +&nbsp;   * Constructs an instance for use by a single cache.
    +&nbsp;   *
    +&nbsp;   * @param registry the registry of metric instances
    +&nbsp;   * @param metricsPrefix the prefix name for the metrics
    +&nbsp;   */
    +<b class="fc">&nbsp;  public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {</b>
    +<b class="fc">&nbsp;    requireNonNull(metricsPrefix);</b>
    +<b class="fc">&nbsp;    hitCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;hits&quot;));</b>
    +<b class="fc">&nbsp;    missCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;misses&quot;));</b>
    +<b class="fc">&nbsp;    loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-success&quot;));</b>
    +<b class="fc">&nbsp;    loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-failure&quot;));</b>
    +<b class="fc">&nbsp;    evictions = registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;));</b>
    +<b class="fc">&nbsp;    evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, &quot;evictions-weight&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;    evictionsWithCause = new EnumMap&lt;&gt;(RemovalCause.class);</b>
    +<b class="fc">&nbsp;    for (RemovalCause cause : RemovalCause.values()) {</b>
    +<b class="fc">&nbsp;      evictionsWithCause.put(</b>
    +&nbsp;          cause,
    +<b class="fc">&nbsp;          registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;, cause.name())));</b>
    +&nbsp;    }
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordHits(int count) {
    +<b class="fc">&nbsp;    hitCount.inc(count);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordMisses(int count) {
    +<b class="fc">&nbsp;    missCount.inc(count);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordLoadSuccess(long loadTime) {
    +<b class="fc">&nbsp;    loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);</b>
    +<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordLoadFailure(long loadTime) {
    +<b class="fc">&nbsp;    loadFailure.update(loadTime, TimeUnit.NANOSECONDS);</b>
    +<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  // @Override -- Caffeine 2.x
    +&nbsp;  @Deprecated
    +&nbsp;  @SuppressWarnings(&quot;deprecation&quot;)
    +&nbsp;  public void recordEviction() {
    +&nbsp;    // This method is scheduled for removal in version 3.0 in favor of recordEviction(weight)
    +<b class="fc">&nbsp;    recordEviction(1);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  // @Override -- Caffeine 2.x
    +&nbsp;  @Deprecated
    +&nbsp;  @SuppressWarnings(&quot;deprecation&quot;)
    +&nbsp;  public void recordEviction(int weight) {
    +<b class="fc">&nbsp;    evictions.update(weight);</b>
    +<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordEviction(@NonNegative int weight, RemovalCause cause) {
    +<b class="fc">&nbsp;    evictionsWithCause.get(cause).update(weight);</b>
    +<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public CacheStats snapshot() {
    +<b class="fc">&nbsp;    return CacheStats.of(</b>
    +<b class="fc">&nbsp;        hitCount.getCount(),</b>
    +<b class="fc">&nbsp;        missCount.getCount(),</b>
    +<b class="fc">&nbsp;        loadSuccess.getCount(),</b>
    +<b class="fc">&nbsp;        loadFailure.getCount(),</b>
    +<b class="fc">&nbsp;        totalLoadTime.sum(),</b>
    +<b class="fc">&nbsp;        evictions.getCount(),</b>
    +<b class="fc">&nbsp;        evictionWeight.getCount());</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public String toString() {
    +<b class="nc">&nbsp;    return snapshot().toString();</b>
    +&nbsp;  }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index.html
    new file mode 100644
    index 0000000000..7a32b258a6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..f9025593dc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..a6a348ee2b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..7a43c9c8df
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_CLASS.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..a551a69948
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..05a1b0e99c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_LINE.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..ebbdfca255
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..0d55b084c0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_METHOD.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..41d69a336e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..4ae11f3765
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,305 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.collectd</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.collectd</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-1.html
    new file mode 100644
    index 0000000000..d9ab430aba
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-1.html
    @@ -0,0 +1,470 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CollectdReporter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CollectdReporter (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CollectdReporter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (16/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.9%
    +  </span>
    +  <span class="absValue">
    +    (79/93)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">CollectdReporter$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">CollectdReporter$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60%
    +  </span>
    +  <span class="absValue">
    +    (9/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.1%
    +  </span>
    +  <span class="absValue">
    +    (31/43)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Histogram;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricAttribute;
    +&nbsp;import com.codahale.metrics.MetricFilter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.ScheduledReporter;
    +&nbsp;import com.codahale.metrics.Snapshot;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.net.InetAddress;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A reporter which publishes metric values to a Collectd server.
    +&nbsp; *
    +&nbsp; * @see &lt;a href=&quot;https://collectd.org&quot;&gt;collectd – The system statistics
    +&nbsp; * collection daemon&lt;/a&gt;
    +&nbsp; */
    +<b class="fc">&nbsp;public class CollectdReporter extends ScheduledReporter {</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a builder for the specified registry.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * The default settings are:
    +&nbsp;     * &lt;ul&gt;
    +&nbsp;     * &lt;li&gt;hostName: InetAddress.getLocalHost().getHostName()&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;executor: default executor created by {@code ScheduledReporter}&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;shutdownExecutorOnStop: true&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;clock: Clock.defaultClock()&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;rateUnit: TimeUnit.SECONDS&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;durationUnit: TimeUnit.MILLISECONDS&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;filter: MetricFilter.ALL&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;securityLevel: NONE&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;username: &quot;&quot;&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;password: &quot;&quot;&lt;/li&gt;
    +&nbsp;     * &lt;/ul&gt;
    +&nbsp;     */
    +&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    +<b class="fc">&nbsp;        return new Builder(registry);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public static class Builder {</b>
    +&nbsp;
    +&nbsp;        private final MetricRegistry registry;
    +&nbsp;        private String hostName;
    +&nbsp;        private ScheduledExecutorService executor;
    +<b class="fc">&nbsp;        private boolean shutdownExecutorOnStop = true;</b>
    +<b class="fc">&nbsp;        private Clock clock = Clock.defaultClock();</b>
    +<b class="fc">&nbsp;        private TimeUnit rateUnit = TimeUnit.SECONDS;</b>
    +<b class="fc">&nbsp;        private TimeUnit durationUnit = TimeUnit.MILLISECONDS;</b>
    +<b class="fc">&nbsp;        private MetricFilter filter = MetricFilter.ALL;</b>
    +<b class="fc">&nbsp;        private SecurityLevel securityLevel = SecurityLevel.NONE;</b>
    +<b class="fc">&nbsp;        private String username = &quot;&quot;;</b>
    +<b class="fc">&nbsp;        private String password = &quot;&quot;;</b>
    +<b class="fc">&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes = Collections.emptySet();</b>
    +<b class="fc">&nbsp;        private int maxLength = Sanitize.DEFAULT_MAX_LENGTH;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;            this.registry = registry;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withHostName(String hostName) {
    +<b class="fc">&nbsp;            this.hostName = hostName;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    +<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    +<b class="nc">&nbsp;            this.executor = executor;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withClock(Clock clock) {
    +<b class="nc">&nbsp;            this.clock = clock;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    +<b class="nc">&nbsp;            this.rateUnit = rateUnit;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    +<b class="nc">&nbsp;            this.durationUnit = durationUnit;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder filter(MetricFilter filter) {
    +<b class="nc">&nbsp;            this.filter = filter;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withUsername(String username) {
    +<b class="fc">&nbsp;            this.username = username;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withPassword(String password) {
    +<b class="fc">&nbsp;            this.password = password;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withSecurityLevel(SecurityLevel securityLevel) {
    +<b class="fc">&nbsp;            this.securityLevel = securityLevel;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; attributes) {
    +<b class="fc">&nbsp;            this.disabledMetricAttributes = attributes;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withMaxLength(int maxLength) {
    +<b class="fc">&nbsp;            this.maxLength = maxLength;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public CollectdReporter build(Sender sender) {
    +<b class="fc">&nbsp;            if (securityLevel != SecurityLevel.NONE) {</b>
    +<b class="fc">&nbsp;                if (username.isEmpty()) {</b>
    +<b class="fc">&nbsp;                    throw new IllegalArgumentException(&quot;username is required for securityLevel: &quot; + securityLevel);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                if (password.isEmpty()) {</b>
    +<b class="fc">&nbsp;                    throw new IllegalArgumentException(&quot;password is required for securityLevel: &quot; + securityLevel);</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="fc">&nbsp;            return new CollectdReporter(registry,</b>
    +&nbsp;                    hostName, sender,
    +&nbsp;                    executor, shutdownExecutorOnStop,
    +&nbsp;                    clock, rateUnit, durationUnit,
    +&nbsp;                    filter, disabledMetricAttributes,
    +&nbsp;                    username, password, securityLevel, new Sanitize(maxLength));
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOG = LoggerFactory.getLogger(CollectdReporter.class);</b>
    +&nbsp;    private static final String REPORTER_NAME = &quot;collectd-reporter&quot;;
    +&nbsp;    private static final String FALLBACK_HOST_NAME = &quot;localhost&quot;;
    +&nbsp;    private static final String COLLECTD_TYPE_GAUGE = &quot;gauge&quot;;
    +&nbsp;
    +&nbsp;    private String hostName;
    +&nbsp;    private final Sender sender;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private long period;
    +&nbsp;    private final PacketWriter writer;
    +&nbsp;    private final Sanitize sanitize;
    +&nbsp;
    +&nbsp;    private CollectdReporter(MetricRegistry registry,
    +&nbsp;                             String hostname, Sender sender,
    +&nbsp;                             ScheduledExecutorService executor, boolean shutdownExecutorOnStop,
    +&nbsp;                             Clock clock, TimeUnit rateUnit, TimeUnit durationUnit,
    +&nbsp;                             MetricFilter filter, Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    +&nbsp;                             String username, String password,
    +&nbsp;                             SecurityLevel securityLevel, Sanitize sanitize) {
    +<b class="fc">&nbsp;        super(registry, REPORTER_NAME, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    +&nbsp;                disabledMetricAttributes);
    +<b class="fc">&nbsp;        this.hostName = (hostname != null) ? hostname : resolveHostName();</b>
    +<b class="fc">&nbsp;        this.sender = sender;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.sanitize = sanitize;</b>
    +<b class="fc">&nbsp;        writer = new PacketWriter(sender, username, password, securityLevel);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String resolveHostName() {
    +&nbsp;        try {
    +<b class="nc">&nbsp;            return InetAddress.getLocalHost().getHostName();</b>
    +<b class="nc">&nbsp;        } catch (Exception e) {</b>
    +<b class="nc">&nbsp;            LOG.error(&quot;Failed to lookup local host name: {}&quot;, e.getMessage(), e);</b>
    +<b class="nc">&nbsp;            return FALLBACK_HOST_NAME;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void start(long period, TimeUnit unit) {
    +<b class="nc">&nbsp;        this.period = period;</b>
    +<b class="nc">&nbsp;        super.start(period, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges, SortedMap&lt;String, Counter&gt; counters,
    +&nbsp;            SortedMap&lt;String, Histogram&gt; histograms, SortedMap&lt;String, Meter&gt; meters, SortedMap&lt;String, Timer&gt; timers) {
    +<b class="fc">&nbsp;        MetaData.Builder metaData = new MetaData.Builder(sanitize, hostName, clock.getTime() / 1000, period)</b>
    +<b class="fc">&nbsp;                .type(COLLECTD_TYPE_GAUGE);</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            connect(sender);</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    +<b class="fc">&nbsp;                serializeGauge(metaData.plugin(entry.getKey()), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    +<b class="fc">&nbsp;                serializeCounter(metaData.plugin(entry.getKey()), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    +<b class="fc">&nbsp;                serializeHistogram(metaData.plugin(entry.getKey()), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    +<b class="fc">&nbsp;                serializeMeter(metaData.plugin(entry.getKey()), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    +<b class="fc">&nbsp;                serializeTimer(metaData.plugin(entry.getKey()), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        } catch (IOException e) {</b>
    +<b class="nc">&nbsp;            LOG.warn(&quot;Unable to report to Collectd&quot;, e);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            disconnect(sender);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void connect(Sender sender) throws IOException {
    +<b class="fc">&nbsp;        if (!sender.isConnected()) {</b>
    +<b class="fc">&nbsp;            sender.connect();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void disconnect(Sender sender) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            sender.disconnect();</b>
    +<b class="nc">&nbsp;        } catch (Exception e) {</b>
    +<b class="nc">&nbsp;            LOG.warn(&quot;Error disconnecting from Collectd&quot;, e);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void writeValue(MetaData.Builder metaData, MetricAttribute attribute, Number value) {
    +<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(attribute)) {</b>
    +<b class="fc">&nbsp;            write(metaData.typeInstance(attribute.getCode()).get(), value);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void writeRate(MetaData.Builder metaData, MetricAttribute attribute, double rate) {
    +<b class="fc">&nbsp;        writeValue(metaData, attribute, convertRate(rate));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void writeDuration(MetaData.Builder metaData, MetricAttribute attribute, double duration) {
    +<b class="fc">&nbsp;        writeValue(metaData, attribute, convertDuration(duration));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void write(MetaData metaData, Number value) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            writer.write(metaData, value);</b>
    +<b class="nc">&nbsp;        } catch (RuntimeException e) {</b>
    +<b class="nc">&nbsp;            LOG.warn(&quot;Failed to process metric &#39;&quot; + metaData.getPlugin() + &quot;&#39;: &quot; + e.getMessage());</b>
    +<b class="nc">&nbsp;        } catch (IOException e) {</b>
    +<b class="nc">&nbsp;            LOG.error(&quot;Failed to send metric to collectd&quot;, e);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    private void serializeGauge(MetaData.Builder metaData, Gauge metric) {
    +<b class="fc">&nbsp;        if (metric.getValue() instanceof Number) {</b>
    +<b class="fc">&nbsp;            write(metaData.typeInstance(&quot;value&quot;).get(), (Number) metric.getValue());</b>
    +<b class="fc">&nbsp;        } else if (metric.getValue() instanceof Boolean) {</b>
    +<b class="fc">&nbsp;            write(metaData.typeInstance(&quot;value&quot;).get(), ((Boolean) metric.getValue()) ? 1 : 0);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            LOG.warn(&quot;Failed to process metric &#39;{}&#39;. Unsupported gauge of type: {} &quot;, metaData.get().getPlugin(),</b>
    +<b class="fc">&nbsp;                    metric.getValue().getClass().getName());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void serializeMeter(MetaData.Builder metaData, Meter metric) {
    +<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, M1_RATE, metric.getOneMinuteRate());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, MEAN_RATE, metric.getMeanRate());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void serializeCounter(MetaData.Builder metaData, Counter metric) {
    +<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void serializeHistogram(MetaData.Builder metaData, Histogram metric) {
    +<b class="fc">&nbsp;        final Snapshot snapshot = metric.getSnapshot();</b>
    +<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, MAX, (double) snapshot.getMax());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, MEAN, snapshot.getMean());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, MIN, (double) snapshot.getMin());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, STDDEV, snapshot.getStdDev());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, P50, snapshot.getMedian());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, P75, snapshot.get75thPercentile());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, P95, snapshot.get95thPercentile());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, P98, snapshot.get98thPercentile());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, P99, snapshot.get99thPercentile());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, P999, snapshot.get999thPercentile());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void serializeTimer(MetaData.Builder metaData, Timer metric) {
    +<b class="fc">&nbsp;        final Snapshot snapshot = metric.getSnapshot();</b>
    +<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, MAX, (double) snapshot.getMax());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, MEAN, snapshot.getMean());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, MIN, (double) snapshot.getMin());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, STDDEV, snapshot.getStdDev());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, P50, snapshot.getMedian());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, P75, snapshot.get75thPercentile());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, P95, snapshot.get95thPercentile());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, P98, snapshot.get98thPercentile());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, P99, snapshot.get99thPercentile());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, P999, snapshot.get999thPercentile());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, M1_RATE, metric.getOneMinuteRate());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, MEAN_RATE, metric.getMeanRate());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-2.html
    new file mode 100644
    index 0000000000..2d12258704
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-2.html
    @@ -0,0 +1,228 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetaData</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetaData (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetaData</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">MetaData$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (13/15)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +&nbsp;class MetaData {
    +&nbsp;
    +&nbsp;    private final String host;
    +&nbsp;    private final String plugin;
    +&nbsp;    private final String pluginInstance;
    +&nbsp;    private final String type;
    +&nbsp;    private final String typeInstance;
    +&nbsp;    private final long timestamp;
    +&nbsp;    private final long period;
    +&nbsp;
    +&nbsp;    MetaData(String host, String plugin, String pluginInstance, String type, String typeInstance,
    +<b class="fc">&nbsp;             long timestamp, long period) {</b>
    +<b class="fc">&nbsp;        this.host = host;</b>
    +<b class="fc">&nbsp;        this.plugin = plugin;</b>
    +<b class="fc">&nbsp;        this.pluginInstance = pluginInstance;</b>
    +<b class="fc">&nbsp;        this.type = type;</b>
    +<b class="fc">&nbsp;        this.typeInstance = typeInstance;</b>
    +<b class="fc">&nbsp;        this.timestamp = timestamp;</b>
    +<b class="fc">&nbsp;        this.period = period;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    String getHost() {
    +<b class="fc">&nbsp;        return host;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    String getPlugin() {
    +<b class="fc">&nbsp;        return plugin;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    String getPluginInstance() {
    +<b class="fc">&nbsp;        return pluginInstance;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    String getType() {
    +<b class="fc">&nbsp;        return type;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    String getTypeInstance() {
    +<b class="fc">&nbsp;        return typeInstance;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    long getTimestamp() {
    +<b class="fc">&nbsp;        return timestamp;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    long getPeriod() {
    +<b class="fc">&nbsp;        return period;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    static class Builder {
    +&nbsp;
    +&nbsp;        private String host;
    +&nbsp;        private String plugin;
    +&nbsp;        private String pluginInstance;
    +&nbsp;        private String type;
    +&nbsp;        private String typeInstance;
    +&nbsp;        private long timestamp;
    +&nbsp;        private long period;
    +&nbsp;        private Sanitize sanitize;
    +&nbsp;
    +&nbsp;        Builder(String host, long timestamp, long duration) {
    +<b class="fc">&nbsp;            this(new Sanitize(Sanitize.DEFAULT_MAX_LENGTH), host, timestamp, duration);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        Builder(Sanitize sanitize, String host, long timestamp, long duration) {</b>
    +<b class="fc">&nbsp;            this.sanitize = sanitize;</b>
    +<b class="fc">&nbsp;            this.host = sanitize.instanceName(host);</b>
    +<b class="fc">&nbsp;            this.timestamp = timestamp;</b>
    +<b class="fc">&nbsp;            period = duration;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        Builder plugin(String name) {
    +<b class="fc">&nbsp;            plugin = sanitize.name(name);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        Builder pluginInstance(String name) {
    +<b class="nc">&nbsp;            pluginInstance = sanitize.instanceName(name);</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        Builder type(String name) {
    +<b class="fc">&nbsp;            type = sanitize.name(name);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        Builder typeInstance(String name) {
    +<b class="fc">&nbsp;            typeInstance = sanitize.instanceName(name);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        MetaData get() {
    +<b class="fc">&nbsp;            return new MetaData(host, plugin, pluginInstance, type, typeInstance, timestamp, period);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-3.html
    new file mode 100644
    index 0000000000..f37528b1b1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-3.html
    @@ -0,0 +1,424 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > PacketWriter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: PacketWriter (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">PacketWriter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.4%
    +  </span>
    +  <span class="absValue">
    +    (88/103)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">PacketWriter$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">PacketWriter$EncryptionResult</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +&nbsp;import javax.crypto.BadPaddingException;
    +&nbsp;import javax.crypto.Cipher;
    +&nbsp;import javax.crypto.IllegalBlockSizeException;
    +&nbsp;import javax.crypto.Mac;
    +&nbsp;import javax.crypto.NoSuchPaddingException;
    +&nbsp;import javax.crypto.ShortBufferException;
    +&nbsp;import javax.crypto.spec.IvParameterSpec;
    +&nbsp;import javax.crypto.spec.SecretKeySpec;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.nio.BufferOverflowException;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.nio.ByteOrder;
    +&nbsp;import java.nio.charset.StandardCharsets;
    +&nbsp;import java.security.InvalidKeyException;
    +&nbsp;import java.security.MessageDigest;
    +&nbsp;import java.security.NoSuchAlgorithmException;
    +&nbsp;import java.security.spec.InvalidParameterSpecException;
    +&nbsp;import java.util.Arrays;
    +&nbsp;
    +&nbsp;class PacketWriter {
    +&nbsp;
    +&nbsp;    private static final int TYPE_HOST = 0;
    +&nbsp;    private static final int TYPE_TIME = 1;
    +&nbsp;    private static final int TYPE_PLUGIN = 2;
    +&nbsp;    private static final int TYPE_PLUGIN_INSTANCE = 3;
    +&nbsp;    private static final int TYPE_TYPE = 4;
    +&nbsp;    private static final int TYPE_TYPE_INSTANCE = 5;
    +&nbsp;    private static final int TYPE_VALUES = 6;
    +&nbsp;    private static final int TYPE_INTERVAL = 7;
    +&nbsp;    private static final int TYPE_SIGN_SHA256 = 0x0200;
    +&nbsp;    private static final int TYPE_ENCR_AES256 = 0x0210;
    +&nbsp;
    +&nbsp;    private static final int UINT16_LEN = 2;
    +&nbsp;    private static final int UINT32_LEN = UINT16_LEN * 2;
    +&nbsp;    private static final int UINT64_LEN = UINT32_LEN * 2;
    +&nbsp;    private static final int HEADER_LEN = UINT16_LEN * 2;
    +&nbsp;    private static final int BUFFER_SIZE = 1024;
    +&nbsp;
    +&nbsp;    private static final int VALUE_COUNT_LEN = UINT16_LEN;
    +&nbsp;    private static final int NUMBER_LEN = HEADER_LEN + UINT64_LEN;
    +&nbsp;    private static final int SIGNATURE_LEN = 36;      // 2b Type + 2b Length + 32b Hash
    +&nbsp;    private static final int ENCRYPT_DATA_LEN = 22;   // 16b IV + 2b Type + 2b Length + 2b Username length
    +&nbsp;    private static final int IV_LENGTH = 16;
    +&nbsp;    private static final int SHA1_LENGTH = 20;
    +&nbsp;
    +&nbsp;    private static final int VALUE_LEN = 9;
    +&nbsp;    private static final byte DATA_TYPE_GAUGE = (byte) 1;
    +&nbsp;    private static final byte NULL = (byte) &#39;\0&#39;;
    +&nbsp;    private static final String HMAC_SHA256_ALGORITHM = &quot;HmacSHA256&quot;;
    +&nbsp;    private static final String AES_CYPHER = &quot;AES_256/OFB/NoPadding&quot;;
    +&nbsp;    private static final String AES = &quot;AES&quot;;
    +&nbsp;    private static final String SHA_256_ALGORITHM = &quot;SHA-256&quot;;
    +&nbsp;    private static final String SHA_1_ALGORITHM = &quot;SHA1&quot;;
    +&nbsp;
    +&nbsp;    private final Sender sender;
    +&nbsp;
    +&nbsp;    private final SecurityLevel securityLevel;
    +&nbsp;    private final byte[] username;
    +&nbsp;    private final byte[] password;
    +&nbsp;
    +<b class="fc">&nbsp;    PacketWriter(Sender sender, String username, String password, SecurityLevel securityLevel) {</b>
    +<b class="fc">&nbsp;        this.sender = sender;</b>
    +<b class="fc">&nbsp;        this.securityLevel = securityLevel;</b>
    +<b class="fc">&nbsp;        this.username = username != null ? username.getBytes(StandardCharsets.UTF_8) : null;</b>
    +<b class="fc">&nbsp;        this.password = password != null ? password.getBytes(StandardCharsets.UTF_8) : null;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    void write(MetaData metaData, Number... values) throws BufferOverflowException, IOException {
    +<b class="fc">&nbsp;        final ByteBuffer packet = ByteBuffer.allocate(BUFFER_SIZE);</b>
    +<b class="fc">&nbsp;        write(packet, metaData);</b>
    +<b class="fc">&nbsp;        write(packet, values);</b>
    +<b class="fc">&nbsp;        packet.flip();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        switch (securityLevel) {</b>
    +&nbsp;            case NONE:
    +<b class="fc">&nbsp;                sender.send(packet);</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case SIGN:
    +<b class="fc">&nbsp;                sender.send(signPacket(packet));</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case ENCRYPT:
    +<b class="fc">&nbsp;                sender.send(encryptPacket(packet));</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            default:
    +<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;Unsupported security level: &quot; + securityLevel);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    private void write(ByteBuffer buffer, MetaData metaData) {
    +<b class="fc">&nbsp;        writeString(buffer, TYPE_HOST, metaData.getHost());</b>
    +<b class="fc">&nbsp;        writeNumber(buffer, TYPE_TIME, metaData.getTimestamp());</b>
    +<b class="fc">&nbsp;        writeString(buffer, TYPE_PLUGIN, metaData.getPlugin());</b>
    +<b class="fc">&nbsp;        writeString(buffer, TYPE_PLUGIN_INSTANCE, metaData.getPluginInstance());</b>
    +<b class="fc">&nbsp;        writeString(buffer, TYPE_TYPE, metaData.getType());</b>
    +<b class="fc">&nbsp;        writeString(buffer, TYPE_TYPE_INSTANCE, metaData.getTypeInstance());</b>
    +<b class="fc">&nbsp;        writeNumber(buffer, TYPE_INTERVAL, metaData.getPeriod());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void write(ByteBuffer buffer, Number... values) {
    +<b class="fc">&nbsp;        final int numValues = values.length;</b>
    +<b class="fc">&nbsp;        final int length = HEADER_LEN + VALUE_COUNT_LEN + numValues * VALUE_LEN;</b>
    +<b class="fc">&nbsp;        writeHeader(buffer, TYPE_VALUES, length);</b>
    +<b class="fc">&nbsp;        buffer.putShort((short) numValues);</b>
    +<b class="fc">&nbsp;        buffer.put(nCopies(numValues, DATA_TYPE_GAUGE));</b>
    +<b class="fc">&nbsp;        buffer.order(ByteOrder.LITTLE_ENDIAN);</b>
    +<b class="fc">&nbsp;        for (Number value : values) {</b>
    +<b class="fc">&nbsp;            buffer.putDouble(value.doubleValue());</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        buffer.order(ByteOrder.BIG_ENDIAN);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private byte[] nCopies(int n, byte value) {
    +<b class="fc">&nbsp;        final byte[] array = new byte[n];</b>
    +<b class="fc">&nbsp;        Arrays.fill(array, value);</b>
    +<b class="fc">&nbsp;        return array;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void writeString(ByteBuffer buffer, int type, String val) {
    +<b class="fc">&nbsp;        if (val == null || val.length() == 0) {</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        int len = HEADER_LEN + val.length() + 1;</b>
    +<b class="fc">&nbsp;        writeHeader(buffer, type, len);</b>
    +<b class="fc">&nbsp;        buffer.put(val.getBytes(StandardCharsets.US_ASCII)).put(NULL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void writeNumber(ByteBuffer buffer, int type, long val) {
    +<b class="fc">&nbsp;        writeHeader(buffer, type, NUMBER_LEN);</b>
    +<b class="fc">&nbsp;        buffer.putLong(val);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void writeHeader(ByteBuffer buffer, int type, int len) {
    +<b class="fc">&nbsp;        buffer.putShort((short) type);</b>
    +<b class="fc">&nbsp;        buffer.putShort((short) len);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Signs the provided packet, so a CollectD server can verify that its authenticity.
    +&nbsp;     * Wire format:
    +&nbsp;     * &lt;pre&gt;
    +&nbsp;     * +-------------------------------+-------------------------------+
    +&nbsp;     * ! Type (0x0200)                 ! Length                        !
    +&nbsp;     * +-------------------------------+-------------------------------+
    +&nbsp;     * ! Signature (SHA2(username + packet))                           \
    +&nbsp;     * +-------------------------------+-------------------------------+
    +&nbsp;     * ! Username                      ! Packet                        \
    +&nbsp;     * +---------------------------------------------------------------+
    +&nbsp;     * &lt;/pre&gt;
    +&nbsp;     *
    +&nbsp;     * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Binary_protocol#Signature_part&quot;&gt;
    +&nbsp;     * Binary protocol - CollectD | Signature part&lt;/a&gt;
    +&nbsp;     */
    +&nbsp;    private ByteBuffer signPacket(ByteBuffer packet) {
    +<b class="fc">&nbsp;        final byte[] signature = sign(password, (ByteBuffer) ByteBuffer.allocate(packet.remaining() + username.length)</b>
    +<b class="fc">&nbsp;                .put(username)</b>
    +<b class="fc">&nbsp;                .put(packet)</b>
    +<b class="fc">&nbsp;                .flip());</b>
    +<b class="fc">&nbsp;        return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)</b>
    +<b class="fc">&nbsp;                .putShort((short) TYPE_SIGN_SHA256)</b>
    +<b class="fc">&nbsp;                .putShort((short) (username.length + SIGNATURE_LEN))</b>
    +<b class="fc">&nbsp;                .put(signature)</b>
    +<b class="fc">&nbsp;                .put(username)</b>
    +<b class="fc">&nbsp;                .put((ByteBuffer) packet.flip())</b>
    +<b class="fc">&nbsp;                .flip();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Encrypts the provided packet, so it&#39;s can&#39;t be eavesdropped during a transfer
    +&nbsp;     * to a CollectD server. Wire format:
    +&nbsp;     * &lt;pre&gt;
    +&nbsp;     * +---------------------------------+-------------------------------+
    +&nbsp;     * ! Type (0x0210)                   ! Length                        !
    +&nbsp;     * +---------------------------------+-------------------------------+
    +&nbsp;     * ! Username length in bytes        ! Username                      \
    +&nbsp;     * +-----------------------------------------------------------------+
    +&nbsp;     * ! Initialization Vector (IV)      !                               \
    +&nbsp;     * +---------------------------------+-------------------------------+
    +&nbsp;     * ! Encrypted bytes (AES (SHA1(packet) + packet))                   \
    +&nbsp;     * +---------------------------------+-------------------------------+
    +&nbsp;     * &lt;/pre&gt;
    +&nbsp;     *
    +&nbsp;     * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Binary_protocol#Encrypted_part&quot;&gt;
    +&nbsp;     * Binary protocol - CollectD | Encrypted part&lt;/a&gt;
    +&nbsp;     */
    +&nbsp;    private ByteBuffer encryptPacket(ByteBuffer packet) {
    +<b class="fc">&nbsp;        final ByteBuffer payload = (ByteBuffer) ByteBuffer.allocate(SHA1_LENGTH + packet.remaining())</b>
    +<b class="fc">&nbsp;                .put(sha1(packet))</b>
    +<b class="fc">&nbsp;                .put((ByteBuffer) packet.flip())</b>
    +<b class="fc">&nbsp;                .flip();</b>
    +<b class="fc">&nbsp;        final EncryptionResult er = encrypt(password, payload);</b>
    +<b class="fc">&nbsp;        return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)</b>
    +<b class="fc">&nbsp;                .putShort((short) TYPE_ENCR_AES256)</b>
    +<b class="fc">&nbsp;                .putShort((short) (ENCRYPT_DATA_LEN + username.length + er.output.remaining()))</b>
    +<b class="fc">&nbsp;                .putShort((short) username.length)</b>
    +<b class="fc">&nbsp;                .put(username)</b>
    +<b class="fc">&nbsp;                .put(er.iv)</b>
    +<b class="fc">&nbsp;                .put(er.output)</b>
    +<b class="fc">&nbsp;                .flip();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static byte[] sign(byte[] secret, ByteBuffer input) {
    +&nbsp;        final Mac mac;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            mac = Mac.getInstance(HMAC_SHA256_ALGORITHM);</b>
    +<b class="fc">&nbsp;            mac.init(new SecretKeySpec(secret, HMAC_SHA256_ALGORITHM));</b>
    +<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException | InvalidKeyException e) {</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        mac.update(input);</b>
    +<b class="fc">&nbsp;        return mac.doFinal();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static EncryptionResult encrypt(byte[] password, ByteBuffer input) {
    +&nbsp;        final Cipher cipher;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            cipher = Cipher.getInstance(AES_CYPHER);</b>
    +<b class="fc">&nbsp;            cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(sha256(password), AES));</b>
    +<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException e) {</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;        final byte[] iv;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            iv = cipher.getParameters().getParameterSpec(IvParameterSpec.class).getIV();</b>
    +<b class="nc">&nbsp;        } catch (InvalidParameterSpecException e) {</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        if (iv.length != IV_LENGTH) {</b>
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Bad initialization vector&quot;);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        final ByteBuffer output = ByteBuffer.allocate(input.remaining() * 2);</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            cipher.doFinal(input, output);</b>
    +<b class="nc">&nbsp;        } catch (ShortBufferException | IllegalBlockSizeException | BadPaddingException e) {</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return new EncryptionResult(iv, (ByteBuffer) output.flip());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static byte[] sha256(byte[] input) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return MessageDigest.getInstance(SHA_256_ALGORITHM).digest(input);</b>
    +<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException e) {</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static byte[] sha1(ByteBuffer input) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            final MessageDigest digest = MessageDigest.getInstance(SHA_1_ALGORITHM);</b>
    +<b class="fc">&nbsp;            digest.update(input);</b>
    +<b class="fc">&nbsp;            final byte[] output = digest.digest();</b>
    +<b class="fc">&nbsp;            if (output.length != SHA1_LENGTH) {</b>
    +<b class="nc">&nbsp;                throw new IllegalStateException(&quot;Bad SHA1 hash&quot;);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return output;</b>
    +<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException e) {</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class EncryptionResult {</b>
    +&nbsp;
    +&nbsp;        private final byte[] iv;
    +&nbsp;        private final ByteBuffer output;
    +&nbsp;
    +<b class="fc">&nbsp;        private EncryptionResult(byte[] iv, ByteBuffer output) {</b>
    +<b class="fc">&nbsp;            this.iv = iv;</b>
    +<b class="fc">&nbsp;            this.output = output;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-4.html
    new file mode 100644
    index 0000000000..27a9b51f4d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-4.html
    @@ -0,0 +1,150 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Sanitize</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Sanitize (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Sanitize</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.List;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Naming_schema&gt;Collectd naming schema&lt;/a&gt;
    +&nbsp; */
    +&nbsp;class Sanitize {
    +&nbsp;
    +&nbsp;    static final int DEFAULT_MAX_LENGTH = 63;
    +&nbsp;
    +&nbsp;    private static final char DASH = &#39;-&#39;;
    +&nbsp;    private static final char SLASH = &#39;/&#39;;
    +&nbsp;    private static final char NULL = &#39;\0&#39;;
    +&nbsp;    private static final char UNDERSCORE = &#39;_&#39;;
    +&nbsp;
    +<b class="fc">&nbsp;    private static final List&lt;Character&gt; INSTANCE_RESERVED = Arrays.asList(SLASH, NULL);</b>
    +<b class="fc">&nbsp;    private static final List&lt;Character&gt; NAME_RESERVED = Arrays.asList(DASH, SLASH, NULL);</b>
    +&nbsp;
    +&nbsp;    private final int maxLength;
    +&nbsp;
    +<b class="fc">&nbsp;    Sanitize(int maxLength) {</b>
    +<b class="fc">&nbsp;        this.maxLength = maxLength;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    String name(String name) {
    +<b class="fc">&nbsp;        return sanitize(name, NAME_RESERVED);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    String instanceName(String instanceName) {
    +<b class="fc">&nbsp;        return sanitize(instanceName, INSTANCE_RESERVED);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String sanitize(String string, List&lt;Character&gt; reservedChars) {
    +<b class="fc">&nbsp;        final StringBuilder buffer = new StringBuilder(string.length());</b>
    +<b class="fc">&nbsp;        final int len = Math.min(string.length(), maxLength);</b>
    +<b class="fc">&nbsp;        for (int i = 0; i &lt; len; i++) {</b>
    +<b class="fc">&nbsp;            final char c = string.charAt(i);</b>
    +<b class="fc">&nbsp;            final boolean legal = ((int) c) &lt; 128 &amp;&amp; !reservedChars.contains(c);</b>
    +<b class="fc">&nbsp;            buffer.append(legal ? c : UNDERSCORE);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return buffer.toString();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-5.html
    new file mode 100644
    index 0000000000..227834b43c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-5.html
    @@ -0,0 +1,134 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SecurityConfiguration</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SecurityConfiguration (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SecurityConfiguration</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +&nbsp;public class SecurityConfiguration {
    +&nbsp;
    +&nbsp;    private final byte[] username;
    +&nbsp;    private final byte[] password;
    +&nbsp;    private final SecurityLevel securityLevel;
    +&nbsp;
    +<b class="fc">&nbsp;    public SecurityConfiguration(byte[] username, byte[] password, SecurityLevel securityLevel) {</b>
    +<b class="fc">&nbsp;        this.username = username;</b>
    +<b class="fc">&nbsp;        this.password = password;</b>
    +<b class="fc">&nbsp;        this.securityLevel = securityLevel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static SecurityConfiguration none() {
    +<b class="fc">&nbsp;        return new SecurityConfiguration(null, null, SecurityLevel.NONE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public byte[] getUsername() {
    +<b class="fc">&nbsp;        return username;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public byte[] getPassword() {
    +<b class="fc">&nbsp;        return password;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public SecurityLevel getSecurityLevel() {
    +<b class="fc">&nbsp;        return securityLevel;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-6.html
    new file mode 100644
    index 0000000000..21dbdaf49c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-6.html
    @@ -0,0 +1,112 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SecurityLevel</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SecurityLevel (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SecurityLevel</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +<b class="fc">&nbsp;public enum SecurityLevel {</b>
    +&nbsp;
    +<b class="fc">&nbsp;    NONE,</b>
    +<b class="fc">&nbsp;    SIGN,</b>
    +<b class="fc">&nbsp;    ENCRYPT</b>
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-7.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-7.html
    new file mode 100644
    index 0000000000..88d60aba3d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-7.html
    @@ -0,0 +1,154 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Sender</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Sender (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Sender</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.net.InetSocketAddress;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.nio.channels.DatagramChannel;
    +&nbsp;
    +&nbsp;public class Sender {
    +&nbsp;
    +&nbsp;    private final String host;
    +&nbsp;    private final int port;
    +&nbsp;
    +&nbsp;    private InetSocketAddress address;
    +&nbsp;    private DatagramChannel channel;
    +&nbsp;
    +<b class="fc">&nbsp;    public Sender(String host, int port) {</b>
    +<b class="fc">&nbsp;        this.host = host;</b>
    +<b class="fc">&nbsp;        this.port = port;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void connect() throws IOException {
    +<b class="fc">&nbsp;        if (isConnected()) {</b>
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        if (host != null) {</b>
    +<b class="fc">&nbsp;            address = new InetSocketAddress(host, port);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        channel = DatagramChannel.open();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public boolean isConnected() {
    +<b class="fc">&nbsp;        return channel != null &amp;&amp; !channel.socket().isClosed();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void send(ByteBuffer buffer) throws IOException {
    +<b class="fc">&nbsp;        channel.send(buffer, address);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void disconnect() throws IOException {
    +<b class="fc">&nbsp;        if (channel == null) {</b>
    +&nbsp;            return;
    +&nbsp;        }
    +&nbsp;        try {
    +<b class="fc">&nbsp;            channel.close();</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            channel = null;</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index.html
    new file mode 100644
    index 0000000000..b800684df6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..9ff000a506
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..15f2e64974
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..8bc7867eed
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_CLASS.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..fe4f348fe3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..070d804299
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_LINE.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..0ae0021a91
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..0416231c7a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_METHOD.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..9f2919811c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..c2b4c65d7e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.ehcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.ehcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.2%
    +  </span>
    +  <span class="absValue">
    +    (23/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (50/66)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/sources/source-1.html
    new file mode 100644
    index 0000000000..e04c97b9eb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/sources/source-1.html
    @@ -0,0 +1,128 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedCacheDecoratorFactory</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.ehcache</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedCacheDecoratorFactory (com.codahale.metrics.ehcache)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedCacheDecoratorFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.ehcache;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;import net.sf.ehcache.Ehcache;
    +&nbsp;import net.sf.ehcache.constructs.CacheDecoratorFactory;
    +&nbsp;
    +&nbsp;import java.util.Properties;
    +&nbsp;
    +<b class="fc">&nbsp;public class InstrumentedCacheDecoratorFactory extends CacheDecoratorFactory {</b>
    +&nbsp;    @Override
    +&nbsp;    public Ehcache createDecoratedEhcache(Ehcache cache, Properties properties) {
    +<b class="fc">&nbsp;        final String name = properties.getProperty(&quot;metric-registry-name&quot;);</b>
    +<b class="fc">&nbsp;        final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);</b>
    +<b class="fc">&nbsp;        return InstrumentedEhcache.instrument(registry, cache);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Ehcache createDefaultDecoratedEhcache(Ehcache cache, Properties properties) {
    +<b class="nc">&nbsp;        final String name = properties.getProperty(&quot;metric-registry-name&quot;);</b>
    +<b class="nc">&nbsp;        final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);</b>
    +<b class="nc">&nbsp;        return InstrumentedEhcache.instrument(registry, cache);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/sources/source-2.html
    new file mode 100644
    index 0000000000..cf86da567d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/sources/source-2.html
    @@ -0,0 +1,335 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedEhcache</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.ehcache</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedEhcache (com.codahale.metrics.ehcache)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedEhcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (21/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78%
    +  </span>
    +  <span class="absValue">
    +    (46/59)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.ehcache;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import net.sf.ehcache.CacheException;
    +&nbsp;import net.sf.ehcache.Ehcache;
    +&nbsp;import net.sf.ehcache.Element;
    +&nbsp;import net.sf.ehcache.constructs.EhcacheDecoratorAdapter;
    +&nbsp;import net.sf.ehcache.statistics.StatisticsGateway;
    +&nbsp;
    +&nbsp;import java.io.Serializable;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An instrumented {@link Ehcache} instance.
    +&nbsp; */
    +&nbsp;public class InstrumentedEhcache extends EhcacheDecoratorAdapter {
    +&nbsp;    /**
    +&nbsp;     * Instruments the given {@link Ehcache} instance with get and put timers
    +&nbsp;     * and a set of gauges for Ehcache&#39;s built-in statistics:
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * &lt;table&gt;
    +&nbsp;     * &lt;caption&gt;Ehcache timered metrics&lt;/caption&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code hits}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;The number of times a requested item was found in the
    +&nbsp;     * cache.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code in-memory-hits}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was found in the memory
    +&nbsp;     * store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code off-heap-hits}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was found in the off-heap
    +&nbsp;     * store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code on-disk-hits}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was found in the disk
    +&nbsp;     * store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code misses}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the
    +&nbsp;     * cache.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code in-memory-misses}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the memory
    +&nbsp;     * store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code off-heap-misses}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the
    +&nbsp;     * off-heap store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code on-disk-misses}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the disk
    +&nbsp;     * store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code objects}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of elements stored in the cache.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code in-memory-objects}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of objects in the memory store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code off-heap-objects}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of objects in the off-heap store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code on-disk-objects}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of objects in the disk store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code mean-get-time}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;The average get time. Because ehcache support JDK1.4.2, each
    +&nbsp;     * get time uses {@link System#currentTimeMillis()}, rather than
    +&nbsp;     * nanoseconds. The accuracy is thus limited.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code mean-search-time}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;The average execution time (in milliseconds) within the last
    +&nbsp;     * sample period.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code eviction-count}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;The number of cache evictions, since the cache was created,
    +&nbsp;     * or statistics were cleared.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code searches-per-second}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;The number of search executions that have completed in the
    +&nbsp;     * last second.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code accuracy}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;A human readable description of the accuracy setting. One of
    +&nbsp;     * &quot;None&quot;, &quot;Best Effort&quot; or &quot;Guaranteed&quot;.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;/table&gt;
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * &lt;b&gt;N.B.: This enables Ehcache&#39;s sampling statistics with an accuracy
    +&nbsp;     * level of &quot;none.&quot;&lt;/b&gt;
    +&nbsp;     *
    +&nbsp;     * @param cache    an {@link Ehcache} instance
    +&nbsp;     * @param registry a {@link MetricRegistry}
    +&nbsp;     * @return an instrumented decorator for {@code cache}
    +&nbsp;     * @see StatisticsGateway
    +&nbsp;     */
    +&nbsp;    public static Ehcache instrument(MetricRegistry registry, final Ehcache cache) {
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = name(cache.getClass(), cache.getName());</b>
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;hits&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheHitCount());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-hits&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localHeapHitCount());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-hits&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localOffHeapHitCount());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-hits&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localDiskHitCount());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;misses&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheMissCount());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-misses&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localHeapMissCount());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-misses&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localOffHeapMissCount());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-misses&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localDiskMissCount());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;objects&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getSize());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-objects&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalHeapSize());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-objects&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalOffHeapSize());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-objects&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalDiskSize());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;mean-get-time&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheGetOperation().latency().average().value());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;mean-search-time&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheSearchOperation().latency().average().value());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;eviction-count&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheEvictionOperation().count().value());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;searches-per-second&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheSearchOperation().rate().value());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;writer-queue-size&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getWriterQueueLength());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return new InstrumentedEhcache(registry, cache);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final Timer getTimer, putTimer;
    +&nbsp;
    +&nbsp;    private InstrumentedEhcache(MetricRegistry registry, Ehcache cache) {
    +<b class="fc">&nbsp;        super(cache);</b>
    +<b class="fc">&nbsp;        this.getTimer = registry.timer(name(cache.getClass(), cache.getName(), &quot;gets&quot;));</b>
    +<b class="fc">&nbsp;        this.putTimer = registry.timer(name(cache.getClass(), cache.getName(), &quot;puts&quot;));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Element get(Object key) throws IllegalStateException, CacheException {
    +<b class="nc">&nbsp;        final Timer.Context ctx = getTimer.time();</b>
    +&nbsp;        try {
    +<b class="nc">&nbsp;            return underlyingCache.get(key);</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            ctx.stop();</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Element get(Serializable key) throws IllegalStateException, CacheException {
    +<b class="fc">&nbsp;        final Timer.Context ctx = getTimer.time();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return underlyingCache.get(key);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            ctx.stop();</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void put(Element element) throws IllegalArgumentException, IllegalStateException, CacheException {
    +<b class="fc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            underlyingCache.put(element);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            ctx.stop();</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void put(Element element, boolean doNotNotifyCacheReplicators) throws IllegalArgumentException, IllegalStateException, CacheException {
    +<b class="nc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    +&nbsp;        try {
    +<b class="nc">&nbsp;            underlyingCache.put(element, doNotNotifyCacheReplicators);</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            ctx.stop();</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Element putIfAbsent(Element element) throws NullPointerException {
    +<b class="nc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    +&nbsp;        try {
    +<b class="nc">&nbsp;            return underlyingCache.putIfAbsent(element);</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            ctx.stop();</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index.html
    new file mode 100644
    index 0000000000..df6bc1969b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..e1c82037cb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..38a98eac46
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..712483b7d3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_CLASS.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..4b372d0a63
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..5bc113f5f8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_LINE.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..571925ed1b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..77e9cc60da
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_METHOD.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..983ba9041c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..b2ee351e36
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.graphite</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (7/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.9%
    +  </span>
    +  <span class="absValue">
    +    (62/97)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58%
    +  </span>
    +  <span class="absValue">
    +    (215/371)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-1.html
    new file mode 100644
    index 0000000000..ebfa2e414d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-1.html
    @@ -0,0 +1,305 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Graphite</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Graphite (com.codahale.metrics.graphite)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Graphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.3%
    +  </span>
    +  <span class="absValue">
    +    (9/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.4%
    +  </span>
    +  <span class="absValue">
    +    (31/58)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import javax.net.SocketFactory;
    +&nbsp;import java.io.BufferedWriter;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStreamWriter;
    +&nbsp;import java.io.Writer;
    +&nbsp;import java.net.InetSocketAddress;
    +&nbsp;import java.net.Socket;
    +&nbsp;import java.net.UnknownHostException;
    +&nbsp;import java.nio.charset.Charset;
    +&nbsp;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A client to a Carbon server via TCP.
    +&nbsp; */
    +&nbsp;public class Graphite implements GraphiteSender {
    +&nbsp;    // this may be optimistic about Carbon/Graphite
    +&nbsp;
    +&nbsp;    private final String hostname;
    +&nbsp;    private final int port;
    +&nbsp;    private final InetSocketAddress address;
    +&nbsp;    private final SocketFactory socketFactory;
    +&nbsp;    private final Charset charset;
    +&nbsp;
    +&nbsp;    private Socket socket;
    +&nbsp;    private Writer writer;
    +&nbsp;    private int failures;
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(Graphite.class);</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address using the default
    +&nbsp;     * {@link SocketFactory}.
    +&nbsp;     *
    +&nbsp;     * @param hostname The hostname of the Carbon server
    +&nbsp;     * @param port     The port of the Carbon server
    +&nbsp;     */
    +&nbsp;    public Graphite(String hostname, int port) {
    +<b class="nc">&nbsp;        this(hostname, port, SocketFactory.getDefault());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory.
    +&nbsp;     *
    +&nbsp;     * @param hostname      The hostname of the Carbon server
    +&nbsp;     * @param port          The port of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     */
    +&nbsp;    public Graphite(String hostname, int port, SocketFactory socketFactory) {
    +<b class="fc">&nbsp;        this(hostname, port, socketFactory, UTF_8);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory using the given
    +&nbsp;     * character set.
    +&nbsp;     *
    +&nbsp;     * @param hostname      The hostname of the Carbon server
    +&nbsp;     * @param port          The port of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     * @param charset       the character set used by the server
    +&nbsp;     */
    +<b class="fc">&nbsp;    public Graphite(String hostname, int port, SocketFactory socketFactory, Charset charset) {</b>
    +<b class="fc">&nbsp;        if (hostname == null || hostname.isEmpty()) {</b>
    +<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;hostname must not be null or empty&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (port &lt; 0 || port &gt; 65535) {</b>
    +<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;port must be a valid IP port (0-65535)&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        this.hostname = hostname;</b>
    +<b class="fc">&nbsp;        this.port = port;</b>
    +<b class="fc">&nbsp;        this.address = null;</b>
    +<b class="fc">&nbsp;        this.socketFactory = requireNonNull(socketFactory, &quot;socketFactory must not be null&quot;);</b>
    +<b class="fc">&nbsp;        this.charset = requireNonNull(charset, &quot;charset must not be null&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address using the default
    +&nbsp;     * {@link SocketFactory}.
    +&nbsp;     *
    +&nbsp;     * @param address the address of the Carbon server
    +&nbsp;     */
    +&nbsp;    public Graphite(InetSocketAddress address) {
    +<b class="nc">&nbsp;        this(address, SocketFactory.getDefault());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory.
    +&nbsp;     *
    +&nbsp;     * @param address       the address of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     */
    +&nbsp;    public Graphite(InetSocketAddress address, SocketFactory socketFactory) {
    +<b class="fc">&nbsp;        this(address, socketFactory, UTF_8);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory using the given
    +&nbsp;     * character set.
    +&nbsp;     *
    +&nbsp;     * @param address       the address of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     * @param charset       the character set used by the server
    +&nbsp;     */
    +<b class="fc">&nbsp;    public Graphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset) {</b>
    +<b class="fc">&nbsp;        this.hostname = null;</b>
    +<b class="fc">&nbsp;        this.port = -1;</b>
    +<b class="fc">&nbsp;        this.address = requireNonNull(address, &quot;address must not be null&quot;);</b>
    +<b class="fc">&nbsp;        this.socketFactory = requireNonNull(socketFactory, &quot;socketFactory must not be null&quot;);</b>
    +<b class="fc">&nbsp;        this.charset = requireNonNull(charset, &quot;charset must not be null&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void connect() throws IllegalStateException, IOException {
    +<b class="fc">&nbsp;        if (isConnected()) {</b>
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        InetSocketAddress address = this.address;</b>
    +&nbsp;        // the previous dns retry logic did not work, as address.getAddress would always return the cached value
    +&nbsp;        // this version of the simplified logic will always cause a dns request if hostname has been supplied.
    +&nbsp;        // InetAddress.getByName forces the dns lookup
    +&nbsp;        // if an InetSocketAddress was supplied at create time that will take precedence.
    +<b class="fc">&nbsp;        if (address == null || address.getHostName() == null &amp;&amp; hostname != null) {</b>
    +<b class="fc">&nbsp;            address = new InetSocketAddress(hostname, port);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (address.getAddress() == null) {</b>
    +<b class="fc">&nbsp;            throw new UnknownHostException(address.getHostName());</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="nc">&nbsp;        this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());</b>
    +<b class="nc">&nbsp;        this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public boolean isConnected() {
    +<b class="fc">&nbsp;        return socket != null &amp;&amp; socket.isConnected() &amp;&amp; !socket.isClosed();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    +&nbsp;        try {
    +<b class="nc">&nbsp;            writer.write(sanitize(name));</b>
    +<b class="nc">&nbsp;            writer.write(&#39; &#39;);</b>
    +<b class="nc">&nbsp;            writer.write(sanitize(value));</b>
    +<b class="nc">&nbsp;            writer.write(&#39; &#39;);</b>
    +<b class="nc">&nbsp;            writer.write(Long.toString(timestamp));</b>
    +<b class="nc">&nbsp;            writer.write(&#39;\n&#39;);</b>
    +<b class="nc">&nbsp;            this.failures = 0;</b>
    +<b class="nc">&nbsp;        } catch (IOException e) {</b>
    +<b class="nc">&nbsp;            failures++;</b>
    +<b class="nc">&nbsp;            throw e;</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int getFailures() {
    +<b class="fc">&nbsp;        return failures;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void flush() throws IOException {
    +<b class="nc">&nbsp;        if (writer != null) {</b>
    +<b class="nc">&nbsp;            writer.flush();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void close() throws IOException {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            if (writer != null) {</b>
    +<b class="nc">&nbsp;                writer.close();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    +<b class="nc">&nbsp;            LOGGER.debug(&quot;Error closing writer&quot;, ex);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            this.writer = null;</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            if (socket != null) {</b>
    +<b class="nc">&nbsp;                socket.close();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    +<b class="nc">&nbsp;            LOGGER.debug(&quot;Error closing socket&quot;, ex);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            this.socket = null;</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String sanitize(String s) {
    +<b class="nc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-2.html
    new file mode 100644
    index 0000000000..3d820e72f8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-2.html
    @@ -0,0 +1,293 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > GraphiteRabbitMQ</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: GraphiteRabbitMQ (com.codahale.metrics.graphite)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">GraphiteRabbitMQ</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.7%
    +  </span>
    +  <span class="absValue">
    +    (8/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.2%
    +  </span>
    +  <span class="absValue">
    +    (24/38)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">GraphiteRabbitMQ$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import com.rabbitmq.client.Channel;
    +&nbsp;import com.rabbitmq.client.Connection;
    +&nbsp;import com.rabbitmq.client.ConnectionFactory;
    +&nbsp;import com.rabbitmq.client.DefaultSocketConfigurator;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.net.Socket;
    +&nbsp;import java.util.concurrent.TimeoutException;
    +&nbsp;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A rabbit-mq client to a Carbon server.
    +&nbsp; */
    +&nbsp;public class GraphiteRabbitMQ implements GraphiteSender {
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS = 500;</b>
    +<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_SOCKET_TIMEOUT_MS = 5000;</b>
    +<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC = 10;</b>
    +&nbsp;
    +&nbsp;    private ConnectionFactory connectionFactory;
    +&nbsp;    private Connection connection;
    +&nbsp;    private Channel channel;
    +&nbsp;    private String exchange;
    +&nbsp;
    +&nbsp;    private int failures;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client with a given a {@link com.rabbitmq.client.ConnectionFactory} and an amqp exchange
    +&nbsp;     *
    +&nbsp;     * @param connectionFactory the {@link com.rabbitmq.client.ConnectionFactory} used to establish connection and publish to graphite server
    +&nbsp;     * @param exchange          the amqp exchange
    +&nbsp;     */
    +<b class="fc">&nbsp;    public GraphiteRabbitMQ(final ConnectionFactory connectionFactory, final String exchange) {</b>
    +<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    +<b class="fc">&nbsp;        this.exchange = exchange;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client given connection details
    +&nbsp;     *
    +&nbsp;     * @param rabbitHost     the rabbitmq server host
    +&nbsp;     * @param rabbitPort     the rabbitmq server port
    +&nbsp;     * @param rabbitUsername the rabbitmq server username
    +&nbsp;     * @param rabbitPassword the rabbitmq server password
    +&nbsp;     * @param exchange       the amqp exchange
    +&nbsp;     */
    +&nbsp;    public GraphiteRabbitMQ(
    +&nbsp;            final String rabbitHost,
    +&nbsp;            final Integer rabbitPort,
    +&nbsp;            final String rabbitUsername,
    +&nbsp;            final String rabbitPassword,
    +&nbsp;            final String exchange) {
    +&nbsp;
    +<b class="nc">&nbsp;        this(rabbitHost,</b>
    +&nbsp;                rabbitPort,
    +&nbsp;                rabbitUsername,
    +&nbsp;                rabbitPassword,
    +&nbsp;                exchange,
    +&nbsp;                DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS,
    +&nbsp;                DEFAULT_RABBIT_SOCKET_TIMEOUT_MS,
    +&nbsp;                DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC);
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client given connection details
    +&nbsp;     *
    +&nbsp;     * @param rabbitHost                        the rabbitmq server host
    +&nbsp;     * @param rabbitPort                        the rabbitmq server port
    +&nbsp;     * @param rabbitUsername                    the rabbitmq server username
    +&nbsp;     * @param rabbitPassword                    the rabbitmq server password
    +&nbsp;     * @param exchange                          the amqp exchange
    +&nbsp;     * @param rabbitConnectionTimeoutMS         the connection timeout in milliseconds
    +&nbsp;     * @param rabbitSocketTimeoutMS             the socket timeout in milliseconds
    +&nbsp;     * @param rabbitRequestedHeartbeatInSeconds the hearthbeat in seconds
    +&nbsp;     */
    +&nbsp;    public GraphiteRabbitMQ(
    +&nbsp;            final String rabbitHost,
    +&nbsp;            final Integer rabbitPort,
    +&nbsp;            final String rabbitUsername,
    +&nbsp;            final String rabbitPassword,
    +&nbsp;            final String exchange,
    +&nbsp;            final Integer rabbitConnectionTimeoutMS,
    +&nbsp;            final Integer rabbitSocketTimeoutMS,
    +<b class="nc">&nbsp;            final Integer rabbitRequestedHeartbeatInSeconds) {</b>
    +&nbsp;
    +<b class="nc">&nbsp;        this.exchange = exchange;</b>
    +&nbsp;
    +<b class="nc">&nbsp;        this.connectionFactory = new ConnectionFactory();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        connectionFactory.setSocketConfigurator(new DefaultSocketConfigurator() {</b>
    +&nbsp;            @Override
    +&nbsp;            public void configure(Socket socket) throws IOException {
    +<b class="nc">&nbsp;                super.configure(socket);</b>
    +<b class="nc">&nbsp;                socket.setSoTimeout(rabbitSocketTimeoutMS);</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="nc">&nbsp;        connectionFactory.setConnectionTimeout(rabbitConnectionTimeoutMS);</b>
    +<b class="nc">&nbsp;        connectionFactory.setRequestedHeartbeat(rabbitRequestedHeartbeatInSeconds);</b>
    +<b class="nc">&nbsp;        connectionFactory.setHost(rabbitHost);</b>
    +<b class="nc">&nbsp;        connectionFactory.setPort(rabbitPort);</b>
    +<b class="nc">&nbsp;        connectionFactory.setUsername(rabbitUsername);</b>
    +<b class="nc">&nbsp;        connectionFactory.setPassword(rabbitPassword);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void connect() throws IllegalStateException, IOException {
    +<b class="fc">&nbsp;        if (isConnected()) {</b>
    +<b class="fc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            connection = connectionFactory.newConnection();</b>
    +<b class="nc">&nbsp;        } catch (TimeoutException e) {</b>
    +<b class="nc">&nbsp;            throw new IllegalStateException(e);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        channel = connection.createChannel();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public boolean isConnected() {
    +<b class="fc">&nbsp;        return connection != null &amp;&amp; connection.isOpen();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            final String sanitizedName = sanitize(name);</b>
    +<b class="fc">&nbsp;            final String sanitizedValue = sanitize(value);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final String message = sanitizedName + &#39; &#39; + sanitizedValue + &#39; &#39; + Long.toString(timestamp) + &#39;\n&#39;;</b>
    +<b class="fc">&nbsp;            channel.basicPublish(exchange, sanitizedName, null, message.getBytes(UTF_8));</b>
    +<b class="fc">&nbsp;        } catch (IOException e) {</b>
    +<b class="fc">&nbsp;            failures++;</b>
    +<b class="fc">&nbsp;            throw e;</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void flush() throws IOException {
    +&nbsp;        // Nothing to do
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void close() throws IOException {
    +<b class="fc">&nbsp;        if (connection != null) {</b>
    +<b class="fc">&nbsp;            connection.close();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int getFailures() {
    +<b class="fc">&nbsp;        return failures;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String sanitize(String s) {
    +<b class="fc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-3.html
    new file mode 100644
    index 0000000000..0dd4e859ab
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-3.html
    @@ -0,0 +1,655 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > GraphiteReporter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: GraphiteReporter (com.codahale.metrics.graphite)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">GraphiteReporter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.5%
    +  </span>
    +  <span class="absValue">
    +    (95/105)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">GraphiteReporter$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">GraphiteReporter$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (12/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (31/35)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Histogram;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.Metered;
    +&nbsp;import com.codahale.metrics.MetricAttribute;
    +&nbsp;import com.codahale.metrics.MetricFilter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.ScheduledReporter;
    +&nbsp;import com.codahale.metrics.Snapshot;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.function.DoubleFunction;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A reporter which publishes metric values to a Graphite server.
    +&nbsp; *
    +&nbsp; * @see &lt;a href=&quot;http://graphite.wikidot.com/&quot;&gt;Graphite - Scalable Realtime Graphing&lt;/a&gt;
    +&nbsp; */
    +<b class="fc">&nbsp;public class GraphiteReporter extends ScheduledReporter {</b>
    +&nbsp;    /**
    +&nbsp;     * Returns a new {@link Builder} for {@link GraphiteReporter}.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry to report
    +&nbsp;     * @return a {@link Builder} instance for a {@link GraphiteReporter}
    +&nbsp;     */
    +&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    +<b class="fc">&nbsp;        return new Builder(registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A builder for {@link GraphiteReporter} instances. Defaults to not using a prefix, using the
    +&nbsp;     * default clock, converting rates to events/second, converting durations to milliseconds, and
    +&nbsp;     * not filtering metrics.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class Builder {</b>
    +&nbsp;        private final MetricRegistry registry;
    +&nbsp;        private Clock clock;
    +&nbsp;        private String prefix;
    +&nbsp;        private TimeUnit rateUnit;
    +&nbsp;        private TimeUnit durationUnit;
    +&nbsp;        private MetricFilter filter;
    +&nbsp;        private ScheduledExecutorService executor;
    +&nbsp;        private boolean shutdownExecutorOnStop;
    +&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    +&nbsp;        private boolean addMetricAttributesAsTags;
    +&nbsp;        private DoubleFunction&lt;String&gt; floatingPointFormatter;
    +&nbsp;
    +<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;            this.registry = registry;</b>
    +<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    +<b class="fc">&nbsp;            this.prefix = null;</b>
    +<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    +<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    +<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    +<b class="fc">&nbsp;            this.executor = null;</b>
    +<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    +<b class="fc">&nbsp;            this.disabledMetricAttributes = Collections.emptySet();</b>
    +<b class="fc">&nbsp;            this.addMetricAttributesAsTags = false;</b>
    +<b class="fc">&nbsp;            this.floatingPointFormatter = DEFAULT_FP_FORMATTER;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    +&nbsp;         * Default value is true.
    +&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    +&nbsp;         *
    +&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    +<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    +&nbsp;         * Default value is null.
    +&nbsp;         * Null value leads to executor will be auto created on start.
    +&nbsp;         *
    +&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    +<b class="nc">&nbsp;            this.executor = executor;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use the given {@link Clock} instance for the time.
    +&nbsp;         *
    +&nbsp;         * @param clock a {@link Clock} instance
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder withClock(Clock clock) {
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Prefix all metric names with the given string.
    +&nbsp;         *
    +&nbsp;         * @param prefix the prefix for all metric names
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder prefixedWith(String prefix) {
    +<b class="fc">&nbsp;            this.prefix = prefix;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert rates to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param rateUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    +<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert durations to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param durationUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    +<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Only report metrics which match the given filter.
    +&nbsp;         *
    +&nbsp;         * @param filter a {@link MetricFilter}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder filter(MetricFilter filter) {
    +<b class="fc">&nbsp;            this.filter = filter;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    +&nbsp;         * See {@link MetricAttribute}.
    +&nbsp;         *
    +&nbsp;         * @param disabledMetricAttributes a set of {@link MetricAttribute}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    +<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies whether or not metric attributes (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;) should be reported in the traditional dot delimited format or in the tag based format.
    +&nbsp;         * Without tags (default): `my.metric.p99`
    +&nbsp;         * With tags: `my.metric;metricattribute=p99`
    +&nbsp;         *
    +&nbsp;         * Note that this setting only modifies the metric attribute, and will not convert any other portion of the metric name to use tags.
    +&nbsp;         * For mor information on Graphite tag support see https://graphite.readthedocs.io/en/latest/tags.html
    +&nbsp;         * See {@link MetricAttribute}.
    +&nbsp;         *
    +&nbsp;         * @param addMetricAttributesAsTags if true, then metric attributes will be added as tags
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder addMetricAttributesAsTags(boolean addMetricAttributesAsTags) {
    +<b class="fc">&nbsp;            this.addMetricAttributesAsTags = addMetricAttributesAsTags;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use custom floating point formatter.
    +&nbsp;         *
    +&nbsp;         * @param floatingPointFormatter a custom formatter for floating point values
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder withFloatingPointFormatter(DoubleFunction&lt;String&gt; floatingPointFormatter) {
    +<b class="fc">&nbsp;            this.floatingPointFormatter = floatingPointFormatter;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
    +&nbsp;         * given {@link GraphiteSender}.
    +&nbsp;         * &lt;p&gt;
    +&nbsp;         * Present for binary compatibility
    +&nbsp;         *
    +&nbsp;         * @param graphite a {@link Graphite}
    +&nbsp;         * @return a {@link GraphiteReporter}
    +&nbsp;         */
    +&nbsp;        public GraphiteReporter build(Graphite graphite) {
    +<b class="fc">&nbsp;            return build((GraphiteSender) graphite);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
    +&nbsp;         * given {@link GraphiteSender}.
    +&nbsp;         *
    +&nbsp;         * @param graphite a {@link GraphiteSender}
    +&nbsp;         * @return a {@link GraphiteReporter}
    +&nbsp;         */
    +&nbsp;        public GraphiteReporter build(GraphiteSender graphite) {
    +<b class="fc">&nbsp;            return new GraphiteReporter(registry,</b>
    +&nbsp;                    graphite,
    +&nbsp;                    clock,
    +&nbsp;                    prefix,
    +&nbsp;                    rateUnit,
    +&nbsp;                    durationUnit,
    +&nbsp;                    filter,
    +&nbsp;                    executor,
    +&nbsp;                    shutdownExecutorOnStop,
    +&nbsp;                    disabledMetricAttributes,
    +&nbsp;                    addMetricAttributesAsTags,
    +&nbsp;                    floatingPointFormatter);
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(GraphiteReporter.class);</b>
    +&nbsp;    // the Carbon plaintext format is pretty underspecified, but it seems like it just wants US-formatted digits
    +<b class="fc">&nbsp;    private static final DoubleFunction&lt;String&gt; DEFAULT_FP_FORMATTER = fp -&gt; String.format(Locale.US, &quot;%2.2f&quot;, fp);</b>
    +&nbsp;
    +&nbsp;    private final GraphiteSender graphite;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final String prefix;
    +&nbsp;    private final boolean addMetricAttributesAsTags;
    +&nbsp;    private final DoubleFunction&lt;String&gt; floatingPointFormatter;
    +&nbsp;  
    +&nbsp;  
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    +&nbsp;     *
    +&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    +&nbsp;     *                                  reporter will report
    +&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    +&nbsp;     *                                  via a transport protocol
    +&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    +&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    +&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    +&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    +&nbsp;     * @param filter                    the filter for which metrics to report
    +&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    +&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    +&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    +&nbsp;     */
    +&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    +&nbsp;                               GraphiteSender graphite,
    +&nbsp;                               Clock clock,
    +&nbsp;                               String prefix,
    +&nbsp;                               TimeUnit rateUnit,
    +&nbsp;                               TimeUnit durationUnit,
    +&nbsp;                               MetricFilter filter,
    +&nbsp;                               ScheduledExecutorService executor,
    +&nbsp;                               boolean shutdownExecutorOnStop,
    +&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    +<b class="nc">&nbsp;        this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,</b>
    +&nbsp;                disabledMetricAttributes, false);
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    +&nbsp;     *
    +&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    +&nbsp;     *                                  reporter will report
    +&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    +&nbsp;     *                                  via a transport protocol
    +&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    +&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    +&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    +&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    +&nbsp;     * @param filter                    the filter for which metrics to report
    +&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    +&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    +&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    +&nbsp;     * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
    +&nbsp;     */
    +&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    +&nbsp;                               GraphiteSender graphite,
    +&nbsp;                               Clock clock,
    +&nbsp;                               String prefix,
    +&nbsp;                               TimeUnit rateUnit,
    +&nbsp;                               TimeUnit durationUnit,
    +&nbsp;                               MetricFilter filter,
    +&nbsp;                               ScheduledExecutorService executor,
    +&nbsp;                               boolean shutdownExecutorOnStop,
    +&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    +&nbsp;                               boolean addMetricAttributesAsTags) {
    +<b class="fc">&nbsp;        this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,</b>
    +&nbsp;                disabledMetricAttributes, addMetricAttributesAsTags, DEFAULT_FP_FORMATTER);
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    +&nbsp;     *
    +&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    +&nbsp;     *                                  reporter will report
    +&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    +&nbsp;     *                                  via a transport protocol
    +&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    +&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    +&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    +&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    +&nbsp;     * @param filter                    the filter for which metrics to report
    +&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    +&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    +&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    +&nbsp;     * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
    +&nbsp;     * @param floatingPointFormatter    custom floating point formatter
    +&nbsp;     */
    +&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    +&nbsp;                               GraphiteSender graphite,
    +&nbsp;                               Clock clock,
    +&nbsp;                               String prefix,
    +&nbsp;                               TimeUnit rateUnit,
    +&nbsp;                               TimeUnit durationUnit,
    +&nbsp;                               MetricFilter filter,
    +&nbsp;                               ScheduledExecutorService executor,
    +&nbsp;                               boolean shutdownExecutorOnStop,
    +&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    +&nbsp;                               boolean addMetricAttributesAsTags,
    +&nbsp;                               DoubleFunction&lt;String&gt; floatingPointFormatter) {
    +<b class="fc">&nbsp;        super(registry, &quot;graphite-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    +&nbsp;                disabledMetricAttributes);
    +<b class="fc">&nbsp;        this.graphite = graphite;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +<b class="fc">&nbsp;        this.addMetricAttributesAsTags = addMetricAttributesAsTags;</b>
    +<b class="fc">&nbsp;        this.floatingPointFormatter = floatingPointFormatter;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    +&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    +&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    +&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    +&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    +<b class="fc">&nbsp;        final long timestamp = clock.getTime() / 1000;</b>
    +&nbsp;
    +&nbsp;        // oh it&#39;d be lovely to use Java 7 here
    +&nbsp;        try {
    +<b class="fc">&nbsp;            graphite.connect();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    +<b class="fc">&nbsp;                reportGauge(entry.getKey(), entry.getValue(), timestamp);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    +<b class="fc">&nbsp;                reportCounter(entry.getKey(), entry.getValue(), timestamp);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    +<b class="fc">&nbsp;                reportHistogram(entry.getKey(), entry.getValue(), timestamp);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    +<b class="fc">&nbsp;                reportMetered(entry.getKey(), entry.getValue(), timestamp);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    +<b class="fc">&nbsp;                reportTimer(entry.getKey(), entry.getValue(), timestamp);</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            graphite.flush();</b>
    +<b class="fc">&nbsp;        } catch (IOException e) {</b>
    +<b class="fc">&nbsp;            LOGGER.warn(&quot;Unable to report to Graphite&quot;, graphite, e);</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            try {</b>
    +<b class="fc">&nbsp;                graphite.close();</b>
    +<b class="nc">&nbsp;            } catch (IOException e1) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Error closing Graphite&quot;, graphite, e1);</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void stop() {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            super.stop();</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            try {</b>
    +<b class="fc">&nbsp;                graphite.close();</b>
    +<b class="nc">&nbsp;            } catch (IOException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.debug(&quot;Error disconnecting from Graphite&quot;, graphite, e);</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportTimer(String name, Timer timer, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MAX, name, convertDuration(snapshot.getMax()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MEAN, name, convertDuration(snapshot.getMean()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MIN, name, convertDuration(snapshot.getMin()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(STDDEV, name, convertDuration(snapshot.getStdDev()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P50, name, convertDuration(snapshot.getMedian()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P75, name, convertDuration(snapshot.get75thPercentile()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P95, name, convertDuration(snapshot.get95thPercentile()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P98, name, convertDuration(snapshot.get98thPercentile()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P99, name, convertDuration(snapshot.get99thPercentile()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P999, name, convertDuration(snapshot.get999thPercentile()), timestamp);</b>
    +<b class="fc">&nbsp;        reportMetered(name, timer, timestamp);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportMetered(String name, Metered meter, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        sendIfEnabled(COUNT, name, meter.getCount(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(M1_RATE, name, convertRate(meter.getOneMinuteRate()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(M5_RATE, name, convertRate(meter.getFiveMinuteRate()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(M15_RATE, name, convertRate(meter.getFifteenMinuteRate()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MEAN_RATE, name, convertRate(meter.getMeanRate()), timestamp);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportHistogram(String name, Histogram histogram, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    +<b class="fc">&nbsp;        sendIfEnabled(COUNT, name, histogram.getCount(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MAX, name, snapshot.getMax(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MEAN, name, snapshot.getMean(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MIN, name, snapshot.getMin(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(STDDEV, name, snapshot.getStdDev(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P50, name, snapshot.getMedian(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P75, name, snapshot.get75thPercentile(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P95, name, snapshot.get95thPercentile(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P98, name, snapshot.get98thPercentile(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P99, name, snapshot.get99thPercentile(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P999, name, snapshot.get999thPercentile(), timestamp);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void sendIfEnabled(MetricAttribute type, String name, double value, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void sendIfEnabled(MetricAttribute type, String name, long value, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportCounter(String name, Counter counter, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, COUNT.getCode())), format(counter.getCount()), timestamp);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportGauge(String name, Gauge&lt;?&gt; gauge, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        final String value = format(gauge.getValue());</b>
    +<b class="fc">&nbsp;        if (value != null) {</b>
    +<b class="fc">&nbsp;            graphite.send(prefix(name), value, timestamp);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String format(Object o) {
    +<b class="fc">&nbsp;        if (o instanceof Float) {</b>
    +<b class="fc">&nbsp;            return format(((Float) o).doubleValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Double) {</b>
    +<b class="fc">&nbsp;            return format(((Double) o).doubleValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Byte) {</b>
    +<b class="fc">&nbsp;            return format(((Byte) o).longValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Short) {</b>
    +<b class="fc">&nbsp;            return format(((Short) o).longValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Integer) {</b>
    +<b class="fc">&nbsp;            return format(((Integer) o).longValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Long) {</b>
    +<b class="fc">&nbsp;            return format(((Long) o).longValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Number) {</b>
    +<b class="nc">&nbsp;            return format(((Number) o).doubleValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Boolean) {</b>
    +<b class="fc">&nbsp;            return format(((Boolean) o) ? 1 : 0);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return null;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String prefix(String name) {
    +<b class="fc">&nbsp;        return MetricRegistry.name(prefix, name);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String appendMetricAttribute(String name, String metricAttribute){
    +<b class="fc">&nbsp;        if (addMetricAttributesAsTags){</b>
    +<b class="fc">&nbsp;            return name + &quot;;metricattribute=&quot; + metricAttribute;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return name + &quot;.&quot; + metricAttribute;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String format(long n) {
    +<b class="fc">&nbsp;        return Long.toString(n);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String format(double v) {
    +<b class="fc">&nbsp;        return floatingPointFormatter.apply(v);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-4.html
    new file mode 100644
    index 0000000000..3799fb3b4b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-4.html
    @@ -0,0 +1,120 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > GraphiteSanitize</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: GraphiteSanitize (com.codahale.metrics.graphite)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">GraphiteSanitize</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import java.util.regex.Pattern;
    +&nbsp;
    +<b class="nc">&nbsp;class GraphiteSanitize {</b>
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    +&nbsp;    private static final String DASH = &quot;-&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Trims the string and replaces all whitespace characters with the provided symbol
    +&nbsp;     */
    +&nbsp;    static String sanitize(String string) {
    +<b class="fc">&nbsp;        return WHITESPACE.matcher(string.trim()).replaceAll(DASH);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-5.html
    new file mode 100644
    index 0000000000..32d3bae13f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-5.html
    @@ -0,0 +1,222 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > GraphiteUDP</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: GraphiteUDP (com.codahale.metrics.graphite)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">GraphiteUDP</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.net.InetSocketAddress;
    +&nbsp;import java.net.InetAddress;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.nio.channels.DatagramChannel;
    +&nbsp;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A client to a Carbon server using unconnected UDP
    +&nbsp; */
    +&nbsp;public class GraphiteUDP implements GraphiteSender {
    +&nbsp;
    +&nbsp;    private final String hostname;
    +&nbsp;    private final int port;
    +&nbsp;    private InetSocketAddress address;
    +&nbsp;
    +<b class="fc">&nbsp;    private DatagramChannel datagramChannel = null;</b>
    +&nbsp;    private int failures;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which sends data to given address using UDP
    +&nbsp;     *
    +&nbsp;     * @param hostname The hostname of the Carbon server
    +&nbsp;     * @param port     The port of the Carbon server
    +&nbsp;     */
    +<b class="fc">&nbsp;    public GraphiteUDP(String hostname, int port) {</b>
    +<b class="fc">&nbsp;        this.hostname = hostname;</b>
    +<b class="fc">&nbsp;        this.port = port;</b>
    +<b class="fc">&nbsp;        this.address = null;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which sends data to given address using UDP
    +&nbsp;     *
    +&nbsp;     * @param address the address of the Carbon server
    +&nbsp;     */
    +<b class="nc">&nbsp;    public GraphiteUDP(InetSocketAddress address) {</b>
    +<b class="nc">&nbsp;        this.hostname = null;</b>
    +<b class="nc">&nbsp;        this.port = -1;</b>
    +<b class="nc">&nbsp;        this.address = address;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void connect() throws IllegalStateException, IOException {
    +<b class="fc">&nbsp;        if (isConnected()) {</b>
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        // Resolve hostname
    +<b class="fc">&nbsp;        if (hostname != null) {</b>
    +<b class="fc">&nbsp;            address = new InetSocketAddress(InetAddress.getByName(hostname), port);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="nc">&nbsp;        datagramChannel = DatagramChannel.open();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public boolean isConnected() {
    +<b class="fc">&nbsp;        return datagramChannel != null &amp;&amp; !datagramChannel.socket().isClosed();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            String str = sanitize(name) + &#39; &#39; + sanitize(value) + &#39; &#39; + Long.toString(timestamp) + &#39;\n&#39;;</b>
    +<b class="fc">&nbsp;            ByteBuffer byteBuffer = ByteBuffer.wrap(str.getBytes(UTF_8));</b>
    +<b class="fc">&nbsp;            datagramChannel.send(byteBuffer, address);</b>
    +<b class="fc">&nbsp;            this.failures = 0;</b>
    +<b class="nc">&nbsp;        } catch (IOException e) {</b>
    +<b class="nc">&nbsp;            failures++;</b>
    +<b class="nc">&nbsp;            throw e;</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int getFailures() {
    +<b class="nc">&nbsp;        return failures;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void flush() throws IOException {
    +&nbsp;        // Nothing to do
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void close() throws IOException {
    +<b class="nc">&nbsp;        if (datagramChannel != null) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                datagramChannel.close();</b>
    +&nbsp;            } finally {
    +<b class="nc">&nbsp;                datagramChannel = null;</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String sanitize(String s) {
    +<b class="fc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    DatagramChannel getDatagramChannel() {
    +<b class="nc">&nbsp;        return datagramChannel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    void setDatagramChannel(DatagramChannel datagramChannel) {
    +<b class="fc">&nbsp;        this.datagramChannel = datagramChannel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    InetSocketAddress getAddress() {
    +<b class="nc">&nbsp;        return address;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    void setAddress(InetSocketAddress address) {
    +<b class="fc">&nbsp;        this.address = address;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-6.html
    new file mode 100644
    index 0000000000..b07f011c56
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-6.html
    @@ -0,0 +1,467 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > PickledGraphite</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: PickledGraphite (com.codahale.metrics.graphite)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">PickledGraphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    22.2%
    +  </span>
    +  <span class="absValue">
    +    (4/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.5%
    +  </span>
    +  <span class="absValue">
    +    (15/91)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">PickledGraphite$MetricTuple</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import javax.net.SocketFactory;
    +&nbsp;
    +&nbsp;import java.io.BufferedWriter;
    +&nbsp;import java.io.ByteArrayOutputStream;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.io.OutputStreamWriter;
    +&nbsp;import java.io.Writer;
    +&nbsp;import java.net.InetSocketAddress;
    +&nbsp;import java.net.Socket;
    +&nbsp;import java.net.UnknownHostException;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.nio.charset.Charset;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.List;
    +&nbsp;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A client to a Carbon server that sends all metrics after they have been pickled in configurable sized batches
    +&nbsp; */
    +&nbsp;public class PickledGraphite implements GraphiteSender {
    +&nbsp;
    +&nbsp;    static class MetricTuple {
    +&nbsp;        String name;
    +&nbsp;        long timestamp;
    +&nbsp;        String value;
    +&nbsp;
    +<b class="nc">&nbsp;        MetricTuple(String name, long timestamp, String value) {</b>
    +<b class="nc">&nbsp;            this.name = name;</b>
    +<b class="nc">&nbsp;            this.timestamp = timestamp;</b>
    +<b class="nc">&nbsp;            this.value = value;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Minimally necessary pickle opcodes.
    +&nbsp;     */
    +&nbsp;    private static final char
    +&nbsp;            MARK = &#39;(&#39;,
    +&nbsp;            STOP = &#39;.&#39;,
    +&nbsp;            LONG = &#39;L&#39;,
    +&nbsp;            STRING = &#39;S&#39;,
    +&nbsp;            APPEND = &#39;a&#39;,
    +&nbsp;            LIST = &#39;l&#39;,
    +&nbsp;            TUPLE = &#39;t&#39;,
    +&nbsp;            QUOTE = &#39;\&#39;&#39;,
    +&nbsp;            LF = &#39;\n&#39;;
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(PickledGraphite.class);</b>
    +&nbsp;    private final static int DEFAULT_BATCH_SIZE = 100;
    +&nbsp;
    +&nbsp;    private int batchSize;
    +&nbsp;    // graphite expects a python-pickled list of nested tuples.
    +<b class="fc">&nbsp;    private List&lt;MetricTuple&gt; metrics = new ArrayList&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    private final String hostname;
    +&nbsp;    private final int port;
    +&nbsp;    private final InetSocketAddress address;
    +&nbsp;    private final SocketFactory socketFactory;
    +&nbsp;    private final Charset charset;
    +&nbsp;
    +&nbsp;    private Socket socket;
    +&nbsp;    private Writer writer;
    +&nbsp;    private int failures;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
    +&nbsp;     * to a batchSize of 100
    +&nbsp;     *
    +&nbsp;     * @param address the address of the Carbon server
    +&nbsp;     */
    +&nbsp;    public PickledGraphite(InetSocketAddress address) {
    +<b class="nc">&nbsp;        this(address, DEFAULT_BATCH_SIZE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}.
    +&nbsp;     *
    +&nbsp;     * @param address   the address of the Carbon server
    +&nbsp;     * @param batchSize how many metrics are bundled into a single pickle request to graphite
    +&nbsp;     */
    +&nbsp;    public PickledGraphite(InetSocketAddress address, int batchSize) {
    +<b class="nc">&nbsp;        this(address, SocketFactory.getDefault(), batchSize);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory.
    +&nbsp;     *
    +&nbsp;     * @param address       the address of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    +&nbsp;     */
    +&nbsp;    public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, int batchSize) {
    +<b class="nc">&nbsp;        this(address, socketFactory, UTF_8, batchSize);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory using the given character set.
    +&nbsp;     *
    +&nbsp;     * @param address       the address of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     * @param charset       the character set used by the server
    +&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    +&nbsp;     */
    +<b class="fc">&nbsp;    public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset, int batchSize) {</b>
    +<b class="fc">&nbsp;        this.address = address;</b>
    +<b class="fc">&nbsp;        this.hostname = null;</b>
    +<b class="fc">&nbsp;        this.port = -1;</b>
    +<b class="fc">&nbsp;        this.socketFactory = socketFactory;</b>
    +<b class="fc">&nbsp;        this.charset = charset;</b>
    +<b class="fc">&nbsp;        this.batchSize = batchSize;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
    +&nbsp;     * to a batchSize of 100
    +&nbsp;     *
    +&nbsp;     * @param hostname the hostname of the Carbon server
    +&nbsp;     * @param port     the port of the Carbon server
    +&nbsp;     */
    +&nbsp;    public PickledGraphite(String hostname, int port) {
    +<b class="nc">&nbsp;        this(hostname, port, DEFAULT_BATCH_SIZE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}.
    +&nbsp;     *
    +&nbsp;     * @param hostname  the hostname of the Carbon server
    +&nbsp;     * @param port      the port of the Carbon server
    +&nbsp;     * @param batchSize how many metrics are bundled into a single pickle request to graphite
    +&nbsp;     */
    +&nbsp;    public PickledGraphite(String hostname, int port, int batchSize) {
    +<b class="nc">&nbsp;        this(hostname, port, SocketFactory.getDefault(), batchSize);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory.
    +&nbsp;     *
    +&nbsp;     * @param hostname      the hostname of the Carbon server
    +&nbsp;     * @param port          the port of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    +&nbsp;     */
    +&nbsp;    public PickledGraphite(String hostname, int port, SocketFactory socketFactory, int batchSize) {
    +<b class="nc">&nbsp;        this(hostname, port, socketFactory, UTF_8, batchSize);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory using the given character set.
    +&nbsp;     *
    +&nbsp;     * @param hostname      the hostname of the Carbon server
    +&nbsp;     * @param port          the port of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     * @param charset       the character set used by the server
    +&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    +&nbsp;     */
    +<b class="nc">&nbsp;    public PickledGraphite(String hostname, int port, SocketFactory socketFactory, Charset charset, int batchSize) {</b>
    +<b class="nc">&nbsp;        this.address = null;</b>
    +<b class="nc">&nbsp;        this.hostname = hostname;</b>
    +<b class="nc">&nbsp;        this.port = port;</b>
    +<b class="nc">&nbsp;        this.socketFactory = socketFactory;</b>
    +<b class="nc">&nbsp;        this.charset = charset;</b>
    +<b class="nc">&nbsp;        this.batchSize = batchSize;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void connect() throws IllegalStateException, IOException {
    +<b class="fc">&nbsp;        if (isConnected()) {</b>
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        InetSocketAddress address = this.address;</b>
    +<b class="fc">&nbsp;        if (address == null) {</b>
    +<b class="nc">&nbsp;            address = new InetSocketAddress(hostname, port);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        if (address.getAddress() == null) {</b>
    +<b class="fc">&nbsp;            throw new UnknownHostException(address.getHostName());</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="nc">&nbsp;        this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());</b>
    +<b class="nc">&nbsp;        this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public boolean isConnected() {
    +<b class="fc">&nbsp;        return socket != null &amp;&amp; socket.isConnected() &amp;&amp; !socket.isClosed();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Convert the metric to a python tuple of the form:
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * (timestamp, (name, value))
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * And add it to the list of metrics. If we reach the batch size, write them out.
    +&nbsp;     *
    +&nbsp;     * @param name      the name of the metric
    +&nbsp;     * @param value     the value of the metric
    +&nbsp;     * @param timestamp the timestamp of the metric
    +&nbsp;     * @throws IOException if there was an error sending the metric
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    +<b class="nc">&nbsp;        metrics.add(new MetricTuple(sanitize(name), timestamp, sanitize(value)));</b>
    +&nbsp;
    +<b class="nc">&nbsp;        if (metrics.size() &gt;= batchSize) {</b>
    +<b class="nc">&nbsp;            writeMetrics();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void flush() throws IOException {
    +<b class="nc">&nbsp;        writeMetrics();</b>
    +<b class="nc">&nbsp;        if (writer != null) {</b>
    +<b class="nc">&nbsp;            writer.flush();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void close() throws IOException {
    +&nbsp;        try {
    +<b class="nc">&nbsp;            flush();</b>
    +<b class="nc">&nbsp;            if (writer != null) {</b>
    +<b class="nc">&nbsp;                writer.close();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    +<b class="nc">&nbsp;            if (socket != null) {</b>
    +<b class="nc">&nbsp;                socket.close();</b>
    +&nbsp;            }
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            this.socket = null;</b>
    +<b class="nc">&nbsp;            this.writer = null;</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int getFailures() {
    +<b class="nc">&nbsp;        return failures;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * 1. Run the pickler script to package all the pending metrics into a single message
    +&nbsp;     * 2. Send the message to graphite
    +&nbsp;     * 3. Clear out the list of metrics
    +&nbsp;     */
    +&nbsp;    private void writeMetrics() throws IOException {
    +<b class="nc">&nbsp;        if (metrics.size() &gt; 0) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                byte[] payload = pickleMetrics(metrics);</b>
    +<b class="nc">&nbsp;                byte[] header = ByteBuffer.allocate(4).putInt(payload.length).array();</b>
    +&nbsp;
    +&nbsp;                @SuppressWarnings(&quot;resource&quot;)
    +<b class="nc">&nbsp;                OutputStream outputStream = socket.getOutputStream();</b>
    +<b class="nc">&nbsp;                outputStream.write(header);</b>
    +<b class="nc">&nbsp;                outputStream.write(payload);</b>
    +<b class="nc">&nbsp;                outputStream.flush();</b>
    +&nbsp;
    +<b class="nc">&nbsp;                if (LOGGER.isDebugEnabled()) {</b>
    +<b class="nc">&nbsp;                    LOGGER.debug(&quot;Wrote {} metrics&quot;, metrics.size());</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (IOException e) {</b>
    +<b class="nc">&nbsp;                this.failures++;</b>
    +<b class="nc">&nbsp;                throw e;</b>
    +&nbsp;            } finally {
    +&nbsp;                // if there was an error, we might miss some data. for now, drop those on the floor and
    +&nbsp;                // try to keep going.
    +<b class="nc">&nbsp;                metrics.clear();</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * See: http://readthedocs.org/docs/graphite/en/1.0/feeding-carbon.html
    +&nbsp;     *
    +&nbsp;     * @throws IOException shouldn&#39;t happen because we write to memory.
    +&nbsp;     */
    +&nbsp;    byte[] pickleMetrics(List&lt;MetricTuple&gt; metrics) throws IOException {
    +&nbsp;        // Extremely rough estimate of 75 bytes per message
    +<b class="nc">&nbsp;        ByteArrayOutputStream out = new ByteArrayOutputStream(metrics.size() * 75);</b>
    +<b class="nc">&nbsp;        Writer pickled = new OutputStreamWriter(out, charset);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        pickled.append(MARK);</b>
    +<b class="nc">&nbsp;        pickled.append(LIST);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        for (MetricTuple tuple : metrics) {</b>
    +&nbsp;            // start the outer tuple
    +<b class="nc">&nbsp;            pickled.append(MARK);</b>
    +&nbsp;
    +&nbsp;            // the metric name is a string.
    +<b class="nc">&nbsp;            pickled.append(STRING);</b>
    +&nbsp;            // the single quotes are to match python&#39;s repr(&quot;abcd&quot;)
    +<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    +<b class="nc">&nbsp;            pickled.append(tuple.name);</b>
    +<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    +<b class="nc">&nbsp;            pickled.append(LF);</b>
    +&nbsp;
    +&nbsp;            // start the inner tuple
    +<b class="nc">&nbsp;            pickled.append(MARK);</b>
    +&nbsp;
    +&nbsp;            // timestamp is a long
    +<b class="nc">&nbsp;            pickled.append(LONG);</b>
    +<b class="nc">&nbsp;            pickled.append(Long.toString(tuple.timestamp));</b>
    +&nbsp;            // the trailing L is to match python&#39;s repr(long(1234))
    +<b class="nc">&nbsp;            pickled.append(LONG);</b>
    +<b class="nc">&nbsp;            pickled.append(LF);</b>
    +&nbsp;
    +&nbsp;            // and the value is a string.
    +<b class="nc">&nbsp;            pickled.append(STRING);</b>
    +<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    +<b class="nc">&nbsp;            pickled.append(tuple.value);</b>
    +<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    +<b class="nc">&nbsp;            pickled.append(LF);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            pickled.append(TUPLE); // inner close</b>
    +<b class="nc">&nbsp;            pickled.append(TUPLE); // outer close</b>
    +&nbsp;
    +<b class="nc">&nbsp;            pickled.append(APPEND);</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        // every pickle ends with STOP
    +<b class="nc">&nbsp;        pickled.append(STOP);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        pickled.flush();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        return out.toByteArray();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String sanitize(String s) {
    +<b class="nc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-7.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-7.html
    new file mode 100644
    index 0000000000..a6fc3cdb10
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-7.html
    @@ -0,0 +1,113 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > GraphiteSender</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: GraphiteSender (com.codahale.metrics.graphite)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">GraphiteSender</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import java.io.Closeable;
    +&nbsp;import java.io.IOException;
    +&nbsp;
    +&nbsp;public interface GraphiteSender extends Closeable {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Connects to the server.
    +&nbsp;     *
    +&nbsp;     * @throws IllegalStateException if the client is already connected
    +&nbsp;     * @throws IOException           if there is an error connecting
    +&nbsp;     */
    +&nbsp;    void connect() throws IllegalStateException, IOException;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Sends the given measurement to the server.
    +&nbsp;     *
    +&nbsp;     * @param name      the name of the metric
    +&nbsp;     * @param value     the value of the metric
    +&nbsp;     * @param timestamp the timestamp of the metric
    +&nbsp;     * @throws IOException if there was an error sending the metric
    +&nbsp;     */
    +&nbsp;    void send(String name, String value, long timestamp) throws IOException;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Flushes buffer, if applicable
    +&nbsp;     *
    +&nbsp;     * @throws IOException if there was an error during flushing metrics to the socket
    +&nbsp;     */
    +&nbsp;    void flush() throws IOException;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns true if ready to send data
    +&nbsp;     */
    +&nbsp;    boolean isConnected();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the number of failed writes to the server.
    +&nbsp;     *
    +&nbsp;     * @return the number of failed writes to the server
    +&nbsp;     */
    +&nbsp;    int getFailures();
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index.html
    new file mode 100644
    index 0000000000..25b712cf04
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..dbd4d99b6c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..ee272e1f48
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..bda35eb97c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_CLASS.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..8b7c275b03
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..1c72321741
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_LINE.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..ce04555c62
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..077e9e9b5d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_METHOD.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..46d788c5a9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..d407c8a2b4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.4%
    +  </span>
    +  <span class="absValue">
    +    (74/76)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (217/237)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-1.html
    new file mode 100644
    index 0000000000..ace9deabe3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-1.html
    @@ -0,0 +1,184 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > AsyncHealthCheckDecorator</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: AsyncHealthCheckDecorator (com.codahale.metrics.health)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">AsyncHealthCheckDecorator</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.health.annotation.Async;
    +&nbsp;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.ScheduledFuture;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A health check decorator to manage asynchronous executions.
    +&nbsp; */
    +&nbsp;public class AsyncHealthCheckDecorator extends HealthCheck implements Runnable {
    +&nbsp;    private static final String NO_RESULT_YET_MESSAGE = &quot;Waiting for first asynchronous check result.&quot;;
    +&nbsp;    private final HealthCheck healthCheck;
    +&nbsp;    private final ScheduledFuture&lt;?&gt; future;
    +&nbsp;    private final long healthyTtl;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private volatile Result result;
    +&nbsp;
    +<b class="fc">&nbsp;    AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService, Clock clock) {</b>
    +<b class="fc">&nbsp;        check(healthCheck != null, &quot;healthCheck cannot be null&quot;);</b>
    +<b class="fc">&nbsp;        check(executorService != null, &quot;executorService cannot be null&quot;);</b>
    +<b class="fc">&nbsp;        Async async = healthCheck.getClass().getAnnotation(Async.class);</b>
    +<b class="fc">&nbsp;        check(async != null, &quot;healthCheck must contain Async annotation&quot;);</b>
    +<b class="fc">&nbsp;        check(async.period() &gt; 0, &quot;period cannot be less than or equal to zero&quot;);</b>
    +<b class="fc">&nbsp;        check(async.initialDelay() &gt;= 0, &quot;initialDelay cannot be less than zero&quot;);</b>
    +&nbsp;
    +&nbsp;
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.healthCheck = healthCheck;</b>
    +<b class="fc">&nbsp;        this.healthyTtl = async.unit().toMillis(async.healthyTtl() &lt;= 0 ? 2 * async.period() : async.healthyTtl());</b>
    +<b class="fc">&nbsp;        result = Async.InitialState.HEALTHY.equals(async.initialState()) ? Result.healthy(NO_RESULT_YET_MESSAGE) :</b>
    +<b class="fc">&nbsp;                Result.unhealthy(NO_RESULT_YET_MESSAGE);</b>
    +<b class="fc">&nbsp;        if (Async.ScheduleType.FIXED_RATE.equals(async.scheduleType())) {</b>
    +<b class="fc">&nbsp;            future = executorService.scheduleAtFixedRate(this, async.initialDelay(), async.period(), async.unit());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            future = executorService.scheduleWithFixedDelay(this, async.initialDelay(), async.period(), async.unit());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService) {
    +<b class="fc">&nbsp;        this(healthCheck, executorService, Clock.defaultClock());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void run() {
    +<b class="fc">&nbsp;        result = healthCheck.execute();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected Result check() throws Exception {
    +<b class="fc">&nbsp;        long expiration = clock.getTime() - result.getTime() - healthyTtl;</b>
    +<b class="fc">&nbsp;        if (expiration &gt; 0) {</b>
    +<b class="fc">&nbsp;            return Result.builder()</b>
    +<b class="fc">&nbsp;                    .unhealthy()</b>
    +<b class="fc">&nbsp;                    .usingClock(clock)</b>
    +<b class="fc">&nbsp;                    .withMessage(&quot;Result was %s but it expired %d milliseconds ago&quot;,</b>
    +<b class="fc">&nbsp;                            result.isHealthy() ? &quot;healthy&quot; : &quot;unhealthy&quot;,</b>
    +<b class="fc">&nbsp;                            expiration)</b>
    +<b class="fc">&nbsp;                    .build();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        return result;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    boolean tearDown() {
    +<b class="fc">&nbsp;        return future.cancel(true);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public HealthCheck getHealthCheck() {
    +<b class="fc">&nbsp;        return healthCheck;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static void check(boolean expression, String message) {
    +<b class="fc">&nbsp;        if (!expression) {</b>
    +<b class="fc">&nbsp;            throw new IllegalArgumentException(message);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-2.html
    new file mode 100644
    index 0000000000..a23b453fc2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-2.html
    @@ -0,0 +1,546 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheck</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheck (com.codahale.metrics.health)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HealthCheck</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HealthCheck$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheck$MockitoMock$N8CZXceh</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheck$MockitoMock$N8CZXceh$auxiliary$7kHSbsru</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheck$MockitoMock$N8CZXceh$auxiliary$qYd6qSxJ</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheck$Result</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.5%
    +  </span>
    +  <span class="absValue">
    +    (49/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheck$ResultBuilder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;
    +&nbsp;import java.time.Instant;
    +&nbsp;import java.time.ZoneId;
    +&nbsp;import java.time.ZonedDateTime;
    +&nbsp;import java.time.format.DateTimeFormatter;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.LinkedHashMap;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A health check for a component of your application.
    +&nbsp; */
    +<b class="fc">&nbsp;public abstract class HealthCheck {</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * The result of a {@link HealthCheck} being run. It can be healthy (with an optional message and optional details)
    +&nbsp;     * or unhealthy (with either an error message or a thrown exception and optional details).
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class Result {</b>
    +<b class="fc">&nbsp;        private static final DateTimeFormatter DATE_FORMAT_PATTERN =</b>
    +<b class="fc">&nbsp;                DateTimeFormatter.ofPattern(&quot;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSSXXX&quot;);</b>
    +&nbsp;        private static final int PRIME = 31;
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns a healthy {@link Result} with no additional message.
    +&nbsp;         *
    +&nbsp;         * @return a healthy {@link Result} with no additional message
    +&nbsp;         */
    +&nbsp;        public static Result healthy() {
    +<b class="fc">&nbsp;            return new Result(true, null, null);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns a healthy {@link Result} with an additional message.
    +&nbsp;         *
    +&nbsp;         * @param message an informative message
    +&nbsp;         * @return a healthy {@link Result} with an additional message
    +&nbsp;         */
    +&nbsp;        public static Result healthy(String message) {
    +<b class="fc">&nbsp;            return new Result(true, message, null);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns a healthy {@link Result} with a formatted message.
    +&nbsp;         * &lt;p&gt;
    +&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    +&nbsp;         *
    +&nbsp;         * @param message a message format\\
    +&nbsp;         * @param args    the arguments apply to the message format
    +&nbsp;         * @return a healthy {@link Result} with an additional message
    +&nbsp;         * @see String#format(String, Object...)
    +&nbsp;         */
    +&nbsp;        public static Result healthy(String message, Object... args) {
    +<b class="fc">&nbsp;            return healthy(String.format(message, args));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns an unhealthy {@link Result} with the given message.
    +&nbsp;         *
    +&nbsp;         * @param message an informative message describing how the health check failed
    +&nbsp;         * @return an unhealthy {@link Result} with the given message
    +&nbsp;         */
    +&nbsp;        public static Result unhealthy(String message) {
    +<b class="fc">&nbsp;            return new Result(false, message, null);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns an unhealthy {@link Result} with a formatted message.
    +&nbsp;         * &lt;p&gt;
    +&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    +&nbsp;         *
    +&nbsp;         * @param message a message format
    +&nbsp;         * @param args    the arguments apply to the message format
    +&nbsp;         * @return an unhealthy {@link Result} with an additional message
    +&nbsp;         * @see String#format(String, Object...)
    +&nbsp;         */
    +&nbsp;        public static Result unhealthy(String message, Object... args) {
    +<b class="fc">&nbsp;            return unhealthy(String.format(message, args));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns an unhealthy {@link Result} with the given error.
    +&nbsp;         *
    +&nbsp;         * @param error an exception thrown during the health check
    +&nbsp;         * @return an unhealthy {@link Result} with the given {@code error}
    +&nbsp;         */
    +&nbsp;        public static Result unhealthy(Throwable error) {
    +<b class="fc">&nbsp;            return new Result(false, error.getMessage(), error);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns a new {@link ResultBuilder}
    +&nbsp;         *
    +&nbsp;         * @return the {@link ResultBuilder}
    +&nbsp;         */
    +&nbsp;        public static ResultBuilder builder() {
    +<b class="fc">&nbsp;            return new ResultBuilder();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private final boolean healthy;
    +&nbsp;        private final String message;
    +&nbsp;        private final Throwable error;
    +&nbsp;        private final Map&lt;String, Object&gt; details;
    +&nbsp;        private final long time;
    +&nbsp;
    +&nbsp;        private long duration; // Calculated field
    +&nbsp;
    +&nbsp;        private Result(boolean isHealthy, String message, Throwable error) {
    +<b class="fc">&nbsp;            this(isHealthy, message, error, null, Clock.defaultClock());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Result(ResultBuilder builder) {
    +<b class="fc">&nbsp;            this(builder.healthy, builder.message, builder.error, builder.details, builder.clock);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        private Result(boolean isHealthy, String message, Throwable error, Map&lt;String, Object&gt; details, Clock clock) {</b>
    +<b class="fc">&nbsp;            this.healthy = isHealthy;</b>
    +<b class="fc">&nbsp;            this.message = message;</b>
    +<b class="fc">&nbsp;            this.error = error;</b>
    +<b class="fc">&nbsp;            this.details = details == null ? null : Collections.unmodifiableMap(details);</b>
    +<b class="fc">&nbsp;            this.time = clock.getTime();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns {@code true} if the result indicates the component is healthy; {@code false}
    +&nbsp;         * otherwise.
    +&nbsp;         *
    +&nbsp;         * @return {@code true} if the result indicates the component is healthy
    +&nbsp;         */
    +&nbsp;        public boolean isHealthy() {
    +<b class="fc">&nbsp;            return healthy;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns any additional message for the result, or {@code null} if the result has no
    +&nbsp;         * message.
    +&nbsp;         *
    +&nbsp;         * @return any additional message for the result, or {@code null}
    +&nbsp;         */
    +&nbsp;        public String getMessage() {
    +<b class="fc">&nbsp;            return message;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns any exception for the result, or {@code null} if the result has no exception.
    +&nbsp;         *
    +&nbsp;         * @return any exception for the result, or {@code null}
    +&nbsp;         */
    +&nbsp;        public Throwable getError() {
    +<b class="fc">&nbsp;            return error;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the timestamp when the result was created as a formatted String.
    +&nbsp;         *
    +&nbsp;         * @return a formatted timestamp
    +&nbsp;         */
    +&nbsp;        public String getTimestamp() {
    +<b class="fc">&nbsp;            Instant currentInstant = Instant.ofEpochMilli(time);</b>
    +<b class="fc">&nbsp;            ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(currentInstant, ZoneId.systemDefault());</b>
    +<b class="fc">&nbsp;            return DATE_FORMAT_PATTERN.format(zonedDateTime);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the time when the result was created, in milliseconds since Epoch
    +&nbsp;         *
    +&nbsp;         * @return the time when the result was created
    +&nbsp;         */
    +&nbsp;        public long getTime() {
    +<b class="fc">&nbsp;            return time;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the duration in milliseconds that the healthcheck took to run
    +&nbsp;         *
    +&nbsp;         * @return the duration
    +&nbsp;         */
    +&nbsp;        public long getDuration() {
    +<b class="fc">&nbsp;            return duration;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Sets the duration in milliseconds. This will indicate the time it took to run the individual healthcheck
    +&nbsp;         *
    +&nbsp;         * @param duration The duration in milliseconds
    +&nbsp;         */
    +&nbsp;        public void setDuration(long duration) {
    +<b class="fc">&nbsp;            this.duration = duration;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Map&lt;String, Object&gt; getDetails() {
    +<b class="fc">&nbsp;            return details;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean equals(Object o) {
    +<b class="fc">&nbsp;            if (this == o) {</b>
    +<b class="fc">&nbsp;                return true;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            final Result result = (Result) o;</b>
    +<b class="fc">&nbsp;            return healthy == result.healthy &amp;&amp;</b>
    +<b class="nc">&nbsp;                    !(error != null ? !error.equals(result.error) : result.error != null) &amp;&amp;</b>
    +<b class="fc">&nbsp;                    !(message != null ? !message.equals(result.message) : result.message != null) &amp;&amp;</b>
    +&nbsp;                    time == result.time;
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public int hashCode() {
    +<b class="nc">&nbsp;            int result = healthy ? 1 : 0;</b>
    +<b class="nc">&nbsp;            result = PRIME * result + (message != null ? message.hashCode() : 0);</b>
    +<b class="nc">&nbsp;            result = PRIME * result + (error != null ? error.hashCode() : 0);</b>
    +<b class="nc">&nbsp;            result = PRIME * result + (Long.hashCode(time));</b>
    +<b class="nc">&nbsp;            return result;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String toString() {
    +<b class="fc">&nbsp;            final StringBuilder builder = new StringBuilder(&quot;Result{isHealthy=&quot;);</b>
    +<b class="fc">&nbsp;            builder.append(healthy);</b>
    +<b class="fc">&nbsp;            if (message != null) {</b>
    +<b class="nc">&nbsp;                builder.append(&quot;, message=&quot;).append(message);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (error != null) {</b>
    +<b class="nc">&nbsp;                builder.append(&quot;, error=&quot;).append(error);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            builder.append(&quot;, duration=&quot;).append(duration);</b>
    +<b class="fc">&nbsp;            builder.append(&quot;, timestamp=&quot;).append(getTimestamp());</b>
    +<b class="fc">&nbsp;            if (details != null) {</b>
    +<b class="fc">&nbsp;                for (Map.Entry&lt;String, Object&gt; e : details.entrySet()) {</b>
    +<b class="fc">&nbsp;                    builder.append(&quot;, &quot;);</b>
    +<b class="fc">&nbsp;                    builder.append(e.getKey())</b>
    +<b class="fc">&nbsp;                            .append(&quot;=&quot;)</b>
    +<b class="fc">&nbsp;                            .append(String.valueOf(e.getValue()));</b>
    +<b class="fc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            builder.append(&#39;}&#39;);</b>
    +<b class="fc">&nbsp;            return builder.toString();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * This a convenient builder for an {@link HealthCheck.Result}. It can be health (with optional message and detail)
    +&nbsp;     * or unhealthy (with optional message, error and detail)
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class ResultBuilder {</b>
    +&nbsp;        private boolean healthy;
    +&nbsp;        private String message;
    +&nbsp;        private Throwable error;
    +&nbsp;        private Map&lt;String, Object&gt; details;
    +&nbsp;        private Clock clock;
    +&nbsp;
    +<b class="fc">&nbsp;        protected ResultBuilder() {</b>
    +<b class="fc">&nbsp;            this.healthy = true;</b>
    +<b class="fc">&nbsp;            this.details = new LinkedHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Configure an healthy result
    +&nbsp;         *
    +&nbsp;         * @return this builder with healthy status
    +&nbsp;         */
    +&nbsp;        public ResultBuilder healthy() {
    +<b class="fc">&nbsp;            this.healthy = true;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Configure an unhealthy result
    +&nbsp;         *
    +&nbsp;         * @return this builder with unhealthy status
    +&nbsp;         */
    +&nbsp;        public ResultBuilder unhealthy() {
    +<b class="fc">&nbsp;            this.healthy = false;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Configure an unhealthy result with an {@code error}
    +&nbsp;         *
    +&nbsp;         * @param error the error
    +&nbsp;         * @return this builder with the given error
    +&nbsp;         */
    +&nbsp;        public ResultBuilder unhealthy(Throwable error) {
    +<b class="fc">&nbsp;            this.error = error;</b>
    +<b class="fc">&nbsp;            return this.unhealthy().withMessage(error.getMessage());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Set an optional message
    +&nbsp;         *
    +&nbsp;         * @param message an informative message
    +&nbsp;         * @return this builder with the given {@code message}
    +&nbsp;         */
    +&nbsp;        public ResultBuilder withMessage(String message) {
    +<b class="fc">&nbsp;            this.message = message;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Set an optional formatted message
    +&nbsp;         * &lt;p&gt;
    +&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    +&nbsp;         *
    +&nbsp;         * @param message a message format
    +&nbsp;         * @param args    the arguments apply to the message format
    +&nbsp;         * @return this builder with the given formatted {@code message}
    +&nbsp;         * @see String#format(String, Object...)
    +&nbsp;         */
    +&nbsp;        public ResultBuilder withMessage(String message, Object... args) {
    +<b class="fc">&nbsp;            return withMessage(String.format(message, args));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Add an optional detail
    +&nbsp;         *
    +&nbsp;         * @param key  a key for this detail
    +&nbsp;         * @param data an object representing the detail data
    +&nbsp;         * @return this builder with the given detail added
    +&nbsp;         */
    +&nbsp;        public ResultBuilder withDetail(String key, Object data) {
    +<b class="fc">&nbsp;            if (this.details == null) {</b>
    +<b class="nc">&nbsp;                this.details = new LinkedHashMap&lt;&gt;();</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            this.details.put(key, data);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Configure this {@link ResultBuilder} to use the given {@code clock} instead of the default clock.
    +&nbsp;         * If not specified, the default clock is {@link Clock#defaultClock()}.
    +&nbsp;         *
    +&nbsp;         * @param clock the {@link Clock} to use when generating the health check timestamp (useful for unit testing)
    +&nbsp;         * @return this builder configured to use the given {@code clock}
    +&nbsp;         */
    +&nbsp;        public ResultBuilder usingClock(Clock clock) {
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Result build() {
    +<b class="fc">&nbsp;            return new Result(this);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Perform a check of the application component.
    +&nbsp;     *
    +&nbsp;     * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
    +&nbsp;     * Result} with a descriptive error message or exception
    +&nbsp;     * @throws Exception if there is an unhandled error during the health check; this will result in
    +&nbsp;     *                   a failed health check
    +&nbsp;     */
    +&nbsp;    protected abstract Result check() throws Exception;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Executes the health check, catching and handling any exceptions raised by {@link #check()}.
    +&nbsp;     *
    +&nbsp;     * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
    +&nbsp;     * Result} with a descriptive error message or exception
    +&nbsp;     */
    +&nbsp;    public Result execute() {
    +<b class="fc">&nbsp;        long start = clock().getTick();</b>
    +&nbsp;        Result result;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            result = check();</b>
    +<b class="fc">&nbsp;        } catch (Exception e) {</b>
    +<b class="fc">&nbsp;            result = Result.unhealthy(e);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        result.setDuration(TimeUnit.MILLISECONDS.convert(clock().getTick() - start, TimeUnit.NANOSECONDS));</b>
    +<b class="fc">&nbsp;        return result;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected Clock clock() {
    +<b class="fc">&nbsp;        return Clock.defaultClock();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-3.html
    new file mode 100644
    index 0000000000..3d5ce0a456
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-3.html
    @@ -0,0 +1,125 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheckFilter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheckFilter (com.codahale.metrics.health)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HealthCheckFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A filter used to determine whether or not a health check should be reported.
    +&nbsp; */
    +&nbsp;@FunctionalInterface
    +&nbsp;public interface HealthCheckFilter {
    +&nbsp;    /**
    +&nbsp;     * Matches all health checks, regardless of type or name.
    +&nbsp;     */
    +<b class="fc">&nbsp;    HealthCheckFilter ALL = (name, healthCheck) -&gt; true;</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns {@code true} if the health check matches the filter; {@code false} otherwise.
    +&nbsp;     *
    +&nbsp;     * @param name        the health check&#39;s name
    +&nbsp;     * @param healthCheck the health check
    +&nbsp;     * @return {@code true} if the health check matches the filter
    +&nbsp;     */
    +&nbsp;    boolean matches(String name, HealthCheck healthCheck);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-4.html
    new file mode 100644
    index 0000000000..52af3cfd6d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-4.html
    @@ -0,0 +1,418 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheckRegistry</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheckRegistry (com.codahale.metrics.health)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HealthCheckRegistry</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.7%
    +  </span>
    +  <span class="absValue">
    +    (70/78)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HealthCheckRegistry$NamedThreadFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.health.annotation.Async;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.NoSuchElementException;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.SortedSet;
    +&nbsp;import java.util.TreeMap;
    +&nbsp;import java.util.TreeSet;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.CopyOnWriteArrayList;
    +&nbsp;import java.util.concurrent.ExecutorService;
    +&nbsp;import java.util.concurrent.Future;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.ScheduledThreadPoolExecutor;
    +&nbsp;import java.util.concurrent.ThreadFactory;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.health.HealthCheck.Result;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A registry for health checks.
    +&nbsp; */
    +&nbsp;public class HealthCheckRegistry {
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(HealthCheckRegistry.class);</b>
    +&nbsp;    private static final int ASYNC_EXECUTOR_POOL_SIZE = 2;
    +&nbsp;
    +&nbsp;    private final ConcurrentMap&lt;String, HealthCheck&gt; healthChecks;
    +&nbsp;    private final List&lt;HealthCheckRegistryListener&gt; listeners;
    +&nbsp;    private final ScheduledExecutorService asyncExecutorService;
    +<b class="fc">&nbsp;    private final Object lock = new Object();</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    +&nbsp;     */
    +&nbsp;    public HealthCheckRegistry() {
    +<b class="fc">&nbsp;        this(ASYNC_EXECUTOR_POOL_SIZE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    +&nbsp;     *
    +&nbsp;     * @param asyncExecutorPoolSize core pool size for async health check executions
    +&nbsp;     */
    +&nbsp;    public HealthCheckRegistry(int asyncExecutorPoolSize) {
    +<b class="fc">&nbsp;        this(createExecutorService(asyncExecutorPoolSize));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    +&nbsp;     *
    +&nbsp;     * @param asyncExecutorService executor service for async health check executions
    +&nbsp;     */
    +<b class="fc">&nbsp;    public HealthCheckRegistry(ScheduledExecutorService asyncExecutorService) {</b>
    +<b class="fc">&nbsp;        this.healthChecks = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        this.listeners = new CopyOnWriteArrayList&lt;&gt;();</b>
    +<b class="fc">&nbsp;        this.asyncExecutorService = asyncExecutorService;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Adds a {@link HealthCheckRegistryListener} to a collection of listeners that will be notified on health check
    +&nbsp;     * registration. Listeners will be notified in the order in which they are added. The listener will be notified of all
    +&nbsp;     * existing health checks when it first registers.
    +&nbsp;     *
    +&nbsp;     * @param listener listener to add
    +&nbsp;     */
    +&nbsp;    public void addListener(HealthCheckRegistryListener listener) {
    +<b class="fc">&nbsp;        listeners.add(listener);</b>
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    +<b class="fc">&nbsp;            listener.onHealthCheckAdded(entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Removes a {@link HealthCheckRegistryListener} from this registry&#39;s collection of listeners.
    +&nbsp;     *
    +&nbsp;     * @param listener listener to remove
    +&nbsp;     */
    +&nbsp;    public void removeListener(HealthCheckRegistryListener listener) {
    +<b class="fc">&nbsp;        listeners.remove(listener);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Registers an application {@link HealthCheck}.
    +&nbsp;     *
    +&nbsp;     * @param name        the name of the health check
    +&nbsp;     * @param healthCheck the {@link HealthCheck} instance
    +&nbsp;     */
    +&nbsp;    public void register(String name, HealthCheck healthCheck) {
    +&nbsp;        HealthCheck registered;
    +<b class="fc">&nbsp;        synchronized (lock) {</b>
    +<b class="fc">&nbsp;            if (healthChecks.containsKey(name)) {</b>
    +<b class="fc">&nbsp;                throw new IllegalArgumentException(&quot;A health check named &quot; + name + &quot; already exists&quot;);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            registered = healthCheck;</b>
    +<b class="fc">&nbsp;            if (healthCheck.getClass().isAnnotationPresent(Async.class)) {</b>
    +<b class="fc">&nbsp;                registered = new AsyncHealthCheckDecorator(healthCheck, asyncExecutorService);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            healthChecks.put(name, registered);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        onHealthCheckAdded(name, registered);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Unregisters the application {@link HealthCheck} with the given name.
    +&nbsp;     *
    +&nbsp;     * @param name the name of the {@link HealthCheck} instance
    +&nbsp;     */
    +&nbsp;    public void unregister(String name) {
    +&nbsp;        HealthCheck healthCheck;
    +<b class="fc">&nbsp;        synchronized (lock) {</b>
    +<b class="fc">&nbsp;            healthCheck = healthChecks.remove(name);</b>
    +<b class="fc">&nbsp;            if (healthCheck instanceof AsyncHealthCheckDecorator) {</b>
    +<b class="fc">&nbsp;                ((AsyncHealthCheckDecorator) healthCheck).tearDown();</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        if (healthCheck != null) {</b>
    +<b class="fc">&nbsp;            onHealthCheckRemoved(name, healthCheck);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a set of the names of all registered health checks.
    +&nbsp;     *
    +&nbsp;     * @return the names of all registered health checks
    +&nbsp;     */
    +&nbsp;    public SortedSet&lt;String&gt; getNames() {
    +<b class="fc">&nbsp;        return Collections.unmodifiableSortedSet(new TreeSet&lt;&gt;(healthChecks.keySet()));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the {@link HealthCheck} instance with a given name
    +&nbsp;     *
    +&nbsp;     * @param name the name of the {@link HealthCheck} instance
    +&nbsp;     */
    +&nbsp;    public HealthCheck getHealthCheck(String name) {
    +<b class="nc">&nbsp;        return healthChecks.get(name);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Runs the health check with the given name.
    +&nbsp;     *
    +&nbsp;     * @param name the health check&#39;s name
    +&nbsp;     * @return the result of the health check
    +&nbsp;     * @throws NoSuchElementException if there is no health check with the given name
    +&nbsp;     */
    +&nbsp;    public HealthCheck.Result runHealthCheck(String name) throws NoSuchElementException {
    +<b class="fc">&nbsp;        final HealthCheck healthCheck = healthChecks.get(name);</b>
    +<b class="fc">&nbsp;        if (healthCheck == null) {</b>
    +<b class="fc">&nbsp;            throw new NoSuchElementException(&quot;No health check named &quot; + name + &quot; exists&quot;);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return healthCheck.execute();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Runs the registered health checks and returns a map of the results.
    +&nbsp;     *
    +&nbsp;     * @return a map of the health check results
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    +<b class="fc">&nbsp;        return runHealthChecks(HealthCheckFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Runs the registered health checks matching the filter and returns a map of the results.
    +&nbsp;     *
    +&nbsp;     * @param filter health check filter
    +&nbsp;     * @return a map of the health check results
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(HealthCheckFilter filter) {
    +<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = new TreeMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    +<b class="fc">&nbsp;            final String name = entry.getKey();</b>
    +<b class="fc">&nbsp;            final HealthCheck healthCheck = entry.getValue();</b>
    +<b class="fc">&nbsp;            if (filter.matches(name, healthCheck)) {</b>
    +<b class="fc">&nbsp;                final Result result = entry.getValue().execute();</b>
    +<b class="fc">&nbsp;                results.put(entry.getKey(), result);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(results);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Runs the registered health checks in parallel and returns a map of the results.
    +&nbsp;     *
    +&nbsp;     * @param executor object to launch and track health checks progress
    +&nbsp;     * @return a map of the health check results
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(ExecutorService executor) {
    +<b class="fc">&nbsp;        return runHealthChecks(executor, HealthCheckFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Runs the registered health checks matching the filter in parallel and returns a map of the results.
    +&nbsp;     *
    +&nbsp;     * @param executor object to launch and track health checks progress
    +&nbsp;     * @param filter   health check filter
    +&nbsp;     * @return a map of the health check results
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(ExecutorService executor, HealthCheckFilter filter) {
    +<b class="fc">&nbsp;        final Map&lt;String, Future&lt;HealthCheck.Result&gt;&gt; futures = new HashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        for (final Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    +<b class="fc">&nbsp;            final String name = entry.getKey();</b>
    +<b class="fc">&nbsp;            final HealthCheck healthCheck = entry.getValue();</b>
    +<b class="fc">&nbsp;            if (filter.matches(name, healthCheck)) {</b>
    +<b class="fc">&nbsp;                futures.put(name, executor.submit(() -&gt; healthCheck.execute()));</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = new TreeMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, Future&lt;Result&gt;&gt; entry : futures.entrySet()) {</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                results.put(entry.getKey(), entry.getValue().get());</b>
    +<b class="nc">&nbsp;            } catch (Exception e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Error executing health check {}&quot;, entry.getKey(), e);</b>
    +<b class="nc">&nbsp;                results.put(entry.getKey(), HealthCheck.Result.unhealthy(e));</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(results);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    private void onHealthCheckAdded(String name, HealthCheck healthCheck) {
    +<b class="fc">&nbsp;        for (HealthCheckRegistryListener listener : listeners) {</b>
    +<b class="fc">&nbsp;            listener.onHealthCheckAdded(name, healthCheck);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void onHealthCheckRemoved(String name, HealthCheck healthCheck) {
    +<b class="fc">&nbsp;        for (HealthCheckRegistryListener listener : listeners) {</b>
    +<b class="fc">&nbsp;            listener.onHealthCheckRemoved(name, healthCheck);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Shuts down the scheduled executor for async health checks
    +&nbsp;     */
    +&nbsp;    public void shutdown() {
    +<b class="fc">&nbsp;        asyncExecutorService.shutdown(); // Disable new health checks from being submitted</b>
    +&nbsp;        try {
    +&nbsp;            // Give some time to the current healtch checks to finish gracefully
    +<b class="fc">&nbsp;            if (!asyncExecutorService.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    +<b class="nc">&nbsp;                asyncExecutorService.shutdownNow();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } catch (InterruptedException ie) {</b>
    +<b class="nc">&nbsp;            asyncExecutorService.shutdownNow();</b>
    +<b class="nc">&nbsp;            Thread.currentThread().interrupt();</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static ScheduledExecutorService createExecutorService(int corePoolSize) {
    +<b class="fc">&nbsp;        final ScheduledThreadPoolExecutor asyncExecutorService = new ScheduledThreadPoolExecutor(corePoolSize,</b>
    +&nbsp;                new NamedThreadFactory(&quot;healthcheck-async-executor-&quot;));
    +<b class="fc">&nbsp;        asyncExecutorService.setRemoveOnCancelPolicy(true);</b>
    +<b class="fc">&nbsp;        return asyncExecutorService;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class NamedThreadFactory implements ThreadFactory {
    +&nbsp;
    +&nbsp;        private final ThreadGroup group;
    +<b class="fc">&nbsp;        private final AtomicInteger threadNumber = new AtomicInteger(1);</b>
    +&nbsp;        private final String namePrefix;
    +&nbsp;
    +<b class="fc">&nbsp;        NamedThreadFactory(String namePrefix) {</b>
    +<b class="fc">&nbsp;            SecurityManager s = System.getSecurityManager();</b>
    +<b class="fc">&nbsp;            group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();</b>
    +<b class="fc">&nbsp;            this.namePrefix = namePrefix;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public Thread newThread(Runnable r) {
    +<b class="fc">&nbsp;            Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);</b>
    +<b class="fc">&nbsp;            t.setDaemon(true);</b>
    +<b class="fc">&nbsp;            if (t.getPriority() != Thread.NORM_PRIORITY)</b>
    +<b class="nc">&nbsp;                t.setPriority(Thread.NORM_PRIORITY);</b>
    +<b class="fc">&nbsp;            return t;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-5.html
    new file mode 100644
    index 0000000000..a6da882202
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-5.html
    @@ -0,0 +1,210 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SharedHealthCheckRegistries</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SharedHealthCheckRegistries (com.codahale.metrics.health)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SharedHealthCheckRegistries</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +&nbsp;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.atomic.AtomicReference;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A map of shared, named health registries.
    +&nbsp; */
    +&nbsp;public class SharedHealthCheckRegistries {
    +<b class="fc">&nbsp;    private static final ConcurrentMap&lt;String, HealthCheckRegistry&gt; REGISTRIES =</b>
    +&nbsp;            new ConcurrentHashMap&lt;&gt;();
    +&nbsp;
    +<b class="fc">&nbsp;    private static AtomicReference&lt;String&gt; defaultRegistryName = new AtomicReference&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    /* Visible for testing */
    +&nbsp;    static void setDefaultRegistryName(AtomicReference&lt;String&gt; defaultRegistryName) {
    +<b class="fc">&nbsp;        SharedHealthCheckRegistries.defaultRegistryName = defaultRegistryName;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private SharedHealthCheckRegistries() { /* singleton */ }
    +&nbsp;
    +&nbsp;    public static void clear() {
    +<b class="fc">&nbsp;        REGISTRIES.clear();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static Set&lt;String&gt; names() {
    +<b class="fc">&nbsp;        return REGISTRIES.keySet();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void remove(String key) {
    +<b class="fc">&nbsp;        REGISTRIES.remove(key);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HealthCheckRegistry add(String name, HealthCheckRegistry registry) {
    +<b class="fc">&nbsp;        return REGISTRIES.putIfAbsent(name, registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HealthCheckRegistry getOrCreate(String name) {
    +<b class="fc">&nbsp;        final HealthCheckRegistry existing = REGISTRIES.get(name);</b>
    +<b class="fc">&nbsp;        if (existing == null) {</b>
    +<b class="fc">&nbsp;            final HealthCheckRegistry created = new HealthCheckRegistry();</b>
    +<b class="fc">&nbsp;            final HealthCheckRegistry raced = add(name, created);</b>
    +<b class="fc">&nbsp;            if (raced == null) {</b>
    +<b class="fc">&nbsp;                return created;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            return raced;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return existing;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new registry and sets it as the default one under the provided name.
    +&nbsp;     *
    +&nbsp;     * @param name the registry name
    +&nbsp;     * @return the default registry
    +&nbsp;     * @throws IllegalStateException if the name has already been set
    +&nbsp;     */
    +&nbsp;    public synchronized static HealthCheckRegistry setDefault(String name) {
    +<b class="fc">&nbsp;        final HealthCheckRegistry registry = getOrCreate(name);</b>
    +<b class="fc">&nbsp;        return setDefault(name, registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Sets the provided registry as the default one under the provided name
    +&nbsp;     *
    +&nbsp;     * @param name                the default registry name
    +&nbsp;     * @param healthCheckRegistry the default registry
    +&nbsp;     * @throws IllegalStateException if the default registry has already been set
    +&nbsp;     */
    +&nbsp;    public static HealthCheckRegistry setDefault(String name, HealthCheckRegistry healthCheckRegistry) {
    +<b class="fc">&nbsp;        if (defaultRegistryName.compareAndSet(null, name)) {</b>
    +<b class="fc">&nbsp;            add(name, healthCheckRegistry);</b>
    +<b class="fc">&nbsp;            return healthCheckRegistry;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default health check registry is already set.&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Gets the name of the default registry, if it has been set
    +&nbsp;     *
    +&nbsp;     * @return the default registry
    +&nbsp;     * @throws IllegalStateException if the default has not been set
    +&nbsp;     */
    +&nbsp;    public static HealthCheckRegistry getDefault() {
    +<b class="fc">&nbsp;        final HealthCheckRegistry healthCheckRegistry = tryGetDefault();</b>
    +<b class="fc">&nbsp;        if (healthCheckRegistry != null) {</b>
    +<b class="fc">&nbsp;            return healthCheckRegistry;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default registry name has not been set.&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Same as {@link #getDefault()} except returns null when the default registry has not been set.
    +&nbsp;     *
    +&nbsp;     * @return the default registry or null
    +&nbsp;     */
    +&nbsp;    public static HealthCheckRegistry tryGetDefault() {
    +<b class="fc">&nbsp;        final String name = defaultRegistryName.get();</b>
    +<b class="fc">&nbsp;        if (name != null) {</b>
    +<b class="fc">&nbsp;            return getOrCreate(name);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return null;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-6.html
    new file mode 100644
    index 0000000000..164154f841
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-6.html
    @@ -0,0 +1,103 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheckRegistryListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheckRegistryListener (com.codahale.metrics.health)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +  <tr>
    +    <td class="name">HealthCheckRegistryListener$MockitoMock$CZZYCxLV</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheckRegistryListener$MockitoMock$CZZYCxLV$auxiliary$mgpbJQeh</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheckRegistryListener$MockitoMock$CZZYCxLV$auxiliary$QeuBdlQf</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +&nbsp;
    +&nbsp;import java.util.EventListener;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A listener contract for {@link HealthCheckRegistry} events.
    +&nbsp; */
    +&nbsp;public interface HealthCheckRegistryListener extends EventListener {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a new {@link HealthCheck} is added to the registry.
    +&nbsp;     *
    +&nbsp;     * @param name        the name of the health check
    +&nbsp;     * @param healthCheck the health check
    +&nbsp;     */
    +&nbsp;    void onHealthCheckAdded(String name, HealthCheck healthCheck);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link HealthCheck} is removed from the registry.
    +&nbsp;     *
    +&nbsp;     * @param name        the name of the health check
    +&nbsp;     * @param healthCheck the health check
    +&nbsp;     */
    +&nbsp;    void onHealthCheckRemoved(String name, HealthCheck healthCheck);
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index.html
    new file mode 100644
    index 0000000000..5bcbd17fe9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..f4f9cc19dc
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..baa86b90be
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..dd752c8007
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..d79b52a4ac
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..a971760eec
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..458b5980d2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..e6d38c3e21
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..c46862402c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..741e22650d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.annotation</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/sources/source-1.html
    new file mode 100644
    index 0000000000..2047be9e9a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/sources/source-1.html
    @@ -0,0 +1,205 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Async</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health.annotation</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Async (com.codahale.metrics.health.annotation)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name">Async$InitialState</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Async$ScheduleType</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health.annotation;
    +&nbsp;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An annotation for marking asynchronous health check execution.
    +&nbsp; */
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target(ElementType.TYPE)
    +&nbsp;public @interface Async {
    +&nbsp;    /**
    +&nbsp;     * Enum representing the initial health states.
    +&nbsp;     */
    +<b class="fc">&nbsp;    enum InitialState {</b>
    +<b class="fc">&nbsp;        HEALTHY, UNHEALTHY</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Enum representing the possible schedule types.
    +&nbsp;     */
    +<b class="fc">&nbsp;    enum ScheduleType {</b>
    +<b class="fc">&nbsp;        FIXED_RATE, FIXED_DELAY</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Period between executions.
    +&nbsp;     *
    +&nbsp;     * @return period
    +&nbsp;     */
    +&nbsp;    long period();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Scheduling type of asynchronous executions.
    +&nbsp;     *
    +&nbsp;     * @return schedule type
    +&nbsp;     */
    +&nbsp;    ScheduleType scheduleType() default ScheduleType.FIXED_RATE;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Initial delay of first execution.
    +&nbsp;     *
    +&nbsp;     * @return initial delay
    +&nbsp;     */
    +&nbsp;    long initialDelay() default 0;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Time unit of initial delay, period and healthyTtl.
    +&nbsp;     *
    +&nbsp;     * @return time unit
    +&nbsp;     */
    +&nbsp;    TimeUnit unit() default TimeUnit.SECONDS;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Initial health state until first asynchronous execution completes.
    +&nbsp;     *
    +&nbsp;     * @return initial health state
    +&nbsp;     */
    +&nbsp;    InitialState initialState() default InitialState.HEALTHY;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * How long a healthy result is considered valid before being ignored.
    +&nbsp;     *
    +&nbsp;     * Handles cases where the asynchronous healthcheck did not run (for example thread starvation).
    +&nbsp;     *
    +&nbsp;     * Defaults to 2 * period
    +&nbsp;     *
    +&nbsp;     * @return healthy result time to live
    +&nbsp;     */
    +&nbsp;    long healthyTtl() default -1;
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index.html
    new file mode 100644
    index 0000000000..ac307f4b27
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..c47d3bb486
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..194a58ce17
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..596c7b1a05
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..16d1b9592b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..6e149dc2a0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..c01e841c84
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..a36f9ab29e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..18ba4ce880
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..3f149663cf
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.health.jvm</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/sources/source-1.html
    new file mode 100644
    index 0000000000..98c8f4cbe2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/sources/source-1.html
    @@ -0,0 +1,142 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ThreadDeadlockHealthCheck</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ThreadDeadlockHealthCheck (com.codahale.metrics.health.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ThreadDeadlockHealthCheck</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.health.HealthCheck;
    +&nbsp;import com.codahale.metrics.jvm.ThreadDeadlockDetector;
    +&nbsp;
    +&nbsp;import java.util.Set;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A health check which returns healthy if no threads are deadlocked.
    +&nbsp; */
    +&nbsp;public class ThreadDeadlockHealthCheck extends HealthCheck {
    +&nbsp;    private final ThreadDeadlockDetector detector;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new health check.
    +&nbsp;     */
    +&nbsp;    public ThreadDeadlockHealthCheck() {
    +<b class="fc">&nbsp;        this(new ThreadDeadlockDetector());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new health check with the given detector.
    +&nbsp;     *
    +&nbsp;     * @param detector a thread deadlock detector
    +&nbsp;     */
    +<b class="fc">&nbsp;    public ThreadDeadlockHealthCheck(ThreadDeadlockDetector detector) {</b>
    +<b class="fc">&nbsp;        this.detector = detector;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected Result check() throws Exception {
    +<b class="fc">&nbsp;        final Set&lt;String&gt; threads = detector.getDeadlockedThreads();</b>
    +<b class="fc">&nbsp;        if (threads.isEmpty()) {</b>
    +<b class="fc">&nbsp;            return Result.healthy();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return Result.unhealthy(threads.toString());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index.html
    new file mode 100644
    index 0000000000..ccd7ae802a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..4103a63c3e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..fd464e8881
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..6c02a01b30
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_CLASS.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..cd386a8eaf
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..e7965ca19d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_LINE.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..9921b3a333
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..ad13d92270
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_METHOD.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..85b2acf8cd
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..a88d692238
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,170 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpasyncclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.2%
    +  </span>
    +  <span class="absValue">
    +    (32/42)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/sources/source-1.html
    new file mode 100644
    index 0000000000..63684ee441
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/sources/source-1.html
    @@ -0,0 +1,140 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedNClientConnManager</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpasyncclient</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedNClientConnManager (com.codahale.metrics.httpasyncclient)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedNClientConnManager</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpasyncclient;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.http.config.Registry;
    +&nbsp;import org.apache.http.conn.DnsResolver;
    +&nbsp;import org.apache.http.conn.SchemePortResolver;
    +&nbsp;import org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager;
    +&nbsp;import org.apache.http.nio.conn.ManagedNHttpClientConnection;
    +&nbsp;import org.apache.http.nio.conn.NHttpClientConnectionManager;
    +&nbsp;import org.apache.http.nio.conn.NHttpConnectionFactory;
    +&nbsp;import org.apache.http.nio.conn.SchemeIOSessionStrategy;
    +&nbsp;import org.apache.http.nio.reactor.ConnectingIOReactor;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;public class InstrumentedNClientConnManager extends PoolingNHttpClientConnectionManager {
    +&nbsp;
    +&nbsp;    public InstrumentedNClientConnManager(final ConnectingIOReactor ioreactor, final NHttpConnectionFactory&lt;ManagedNHttpClientConnection&gt; connFactory, final SchemePortResolver schemePortResolver, final MetricRegistry metricRegistry, final Registry&lt;SchemeIOSessionStrategy&gt; iosessionFactoryRegistry, final long timeToLive, final TimeUnit tunit, final DnsResolver dnsResolver, final String name) {
    +<b class="fc">&nbsp;        super(ioreactor, connFactory, iosessionFactoryRegistry, schemePortResolver, dnsResolver, timeToLive, tunit);</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;available-connections&quot;),</b>
    +<b class="nc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;leased-connections&quot;),</b>
    +<b class="nc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;max-connections&quot;),</b>
    +<b class="nc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;pending-connections&quot;),</b>
    +<b class="nc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/sources/source-2.html
    new file mode 100644
    index 0000000000..c1d869bb04
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/sources/source-2.html
    @@ -0,0 +1,268 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedNHttpClientBuilder</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpasyncclient</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedNHttpClientBuilder (com.codahale.metrics.httpasyncclient)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedNHttpClientBuilder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (5/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (9/11)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedNHttpClientBuilder$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60%
    +  </span>
    +  <span class="absValue">
    +    (3/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedNHttpClientBuilder$TimingFutureCallback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpasyncclient;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.httpclient.HttpClientMetricNameStrategies;
    +&nbsp;import com.codahale.metrics.httpclient.HttpClientMetricNameStrategy;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.concurrent.Future;
    +&nbsp;
    +&nbsp;import org.apache.http.HttpException;
    +&nbsp;import org.apache.http.HttpRequest;
    +&nbsp;import org.apache.http.concurrent.FutureCallback;
    +&nbsp;import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
    +&nbsp;import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
    +&nbsp;import org.apache.http.nio.protocol.HttpAsyncRequestProducer;
    +&nbsp;import org.apache.http.nio.protocol.HttpAsyncResponseConsumer;
    +&nbsp;import org.apache.http.protocol.HttpContext;
    +&nbsp;
    +&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;
    +<b class="fc">&nbsp;public class InstrumentedNHttpClientBuilder extends HttpAsyncClientBuilder {</b>
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;    private final String name;
    +&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    +&nbsp;
    +&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy, String name) {
    +<b class="fc">&nbsp;        super();</b>
    +<b class="fc">&nbsp;        this.metricRegistry = metricRegistry;</b>
    +<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        this(metricRegistry, metricNameStrategy, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, String name) {
    +<b class="nc">&nbsp;        this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, name);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer timer(HttpRequest request) {
    +<b class="fc">&nbsp;        return metricRegistry.timer(metricNameStrategy.getNameFor(name, request));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public CloseableHttpAsyncClient build() {
    +<b class="fc">&nbsp;        final CloseableHttpAsyncClient ac = super.build();</b>
    +<b class="fc">&nbsp;        return new CloseableHttpAsyncClient() {</b>
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isRunning() {
    +<b class="nc">&nbsp;                return ac.isRunning();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void start() {
    +<b class="fc">&nbsp;                ac.start();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public &lt;T&gt; Future&lt;T&gt; execute(HttpAsyncRequestProducer requestProducer, HttpAsyncResponseConsumer&lt;T&gt; responseConsumer, HttpContext context, FutureCallback&lt;T&gt; callback) {
    +&nbsp;                final Timer.Context timerContext;
    +&nbsp;                try {
    +<b class="fc">&nbsp;                    timerContext = timer(requestProducer.generateRequest()).time();</b>
    +<b class="nc">&nbsp;                } catch (IOException | HttpException ex) {</b>
    +<b class="nc">&nbsp;                    throw new RuntimeException(ex);</b>
    +<b class="fc">&nbsp;                }</b>
    +<b class="fc">&nbsp;                return ac.execute(requestProducer, responseConsumer, context,</b>
    +&nbsp;                        new TimingFutureCallback&lt;&gt;(callback, timerContext));
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void close() throws IOException {
    +<b class="nc">&nbsp;                ac.close();</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class TimingFutureCallback&lt;T&gt; implements FutureCallback&lt;T&gt; {</b>
    +&nbsp;        private final FutureCallback&lt;T&gt; callback;
    +&nbsp;        private final Timer.Context timerContext;
    +&nbsp;
    +&nbsp;        private TimingFutureCallback(FutureCallback&lt;T&gt; callback,
    +<b class="fc">&nbsp;                                     Timer.Context timerContext) {</b>
    +<b class="fc">&nbsp;            this.callback = callback;</b>
    +<b class="fc">&nbsp;            this.timerContext = requireNonNull(timerContext, &quot;timerContext&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void completed(T result) {
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +<b class="fc">&nbsp;            if (callback != null) {</b>
    +<b class="fc">&nbsp;                callback.completed(result);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void failed(Exception ex) {
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +<b class="fc">&nbsp;            if (callback != null) {</b>
    +<b class="fc">&nbsp;                callback.failed(ex);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void cancelled() {
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +<b class="fc">&nbsp;            if (callback != null) {</b>
    +<b class="fc">&nbsp;                callback.cancelled();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index.html
    new file mode 100644
    index 0000000000..6f35d3d01d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..ce0879c510
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..f615c23b83
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..fb67d9facf
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_CLASS.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..da3ecf16db
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..19f3772abd
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_LINE.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..ab1f0abbe8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..414dffba11
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_METHOD.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..3e8bdfeb6e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..e0f2be4b71
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,251 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.9%
    +  </span>
    +  <span class="absValue">
    +    (26/42)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    73%
    +  </span>
    +  <span class="absValue">
    +    (73/100)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-1.html
    new file mode 100644
    index 0000000000..b1f532b772
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-1.html
    @@ -0,0 +1,165 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HttpClientMetricNameStrategies</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HttpClientMetricNameStrategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.6%
    +  </span>
    +  <span class="absValue">
    +    (22/26)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    +&nbsp;
    +&nbsp;import org.apache.http.HttpRequest;
    +&nbsp;import org.apache.http.client.HttpClient;
    +&nbsp;import org.apache.http.client.methods.HttpRequestWrapper;
    +&nbsp;import org.apache.http.client.methods.HttpUriRequest;
    +&nbsp;import org.apache.http.client.utils.URIBuilder;
    +&nbsp;
    +&nbsp;import java.net.URI;
    +&nbsp;import java.net.URISyntaxException;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +<b class="nc">&nbsp;public class HttpClientMetricNameStrategies {</b>
    +&nbsp;
    +<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy METHOD_ONLY =</b>
    +<b class="fc">&nbsp;        (name, request) -&gt; name(HttpClient.class,</b>
    +&nbsp;            name,
    +<b class="fc">&nbsp;            methodNameString(request));</b>
    +&nbsp;
    +<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy HOST_AND_METHOD =</b>
    +<b class="fc">&nbsp;        (name, request) -&gt; name(HttpClient.class,</b>
    +&nbsp;            name,
    +<b class="fc">&nbsp;            requestURI(request).getHost(),</b>
    +<b class="fc">&nbsp;            methodNameString(request));</b>
    +&nbsp;
    +<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy PATH_AND_METHOD =</b>
    +&nbsp;        (name, request) -&gt; {
    +<b class="fc">&nbsp;            final URIBuilder url = new URIBuilder(requestURI(request));</b>
    +<b class="fc">&nbsp;            return name(HttpClient.class,</b>
    +&nbsp;                name,
    +<b class="fc">&nbsp;                url.getPath(),</b>
    +<b class="fc">&nbsp;                methodNameString(request));</b>
    +&nbsp;        };
    +&nbsp;
    +<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =</b>
    +&nbsp;        (name, request) -&gt; {
    +&nbsp;            try {
    +<b class="fc">&nbsp;                final URIBuilder url = new URIBuilder(requestURI(request));</b>
    +<b class="fc">&nbsp;                return name(HttpClient.class,</b>
    +&nbsp;                    name,
    +<b class="fc">&nbsp;                    url.removeQuery().build().toString(),</b>
    +<b class="fc">&nbsp;                    methodNameString(request));</b>
    +<b class="nc">&nbsp;            } catch (URISyntaxException e) {</b>
    +<b class="nc">&nbsp;                throw new IllegalArgumentException(e);</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;
    +&nbsp;    private static String methodNameString(HttpRequest request) {
    +<b class="fc">&nbsp;        return request.getRequestLine().getMethod().toLowerCase() + &quot;-requests&quot;;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static URI requestURI(HttpRequest request) {
    +<b class="fc">&nbsp;        if (request instanceof HttpRequestWrapper)</b>
    +<b class="fc">&nbsp;            return requestURI(((HttpRequestWrapper) request).getOriginal());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return (request instanceof HttpUriRequest) ?</b>
    +<b class="fc">&nbsp;            ((HttpUriRequest) request).getURI() :</b>
    +<b class="nc">&nbsp;            URI.create(request.getRequestLine().getUri());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-2.html
    new file mode 100644
    index 0000000000..09ec2e49c7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-2.html
    @@ -0,0 +1,146 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HttpClientMetricNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HttpClientMetricNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$DMDxCMdT</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$DMDxCMdT$auxiliary$3CEX09I0</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$DMDxCMdT$auxiliary$r0oMeEq8</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$p46QRylP</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$p46QRylP$auxiliary$1MjLUKCg</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$p46QRylP$auxiliary$QkC4FQib</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.http.HttpRequest;
    +&nbsp;import org.apache.http.client.HttpClient;
    +&nbsp;
    +&nbsp;@FunctionalInterface
    +&nbsp;public interface HttpClientMetricNameStrategy {
    +&nbsp;
    +&nbsp;    String getNameFor(String name, HttpRequest request);
    +&nbsp;
    +&nbsp;    default String getNameFor(String name, Exception exception) {
    +<b class="nc">&nbsp;        return MetricRegistry.name(HttpClient.class,</b>
    +&nbsp;                name,
    +<b class="nc">&nbsp;                exception.getClass().getSimpleName());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-3.html
    new file mode 100644
    index 0000000000..44e8fc6812
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-3.html
    @@ -0,0 +1,330 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpClientConnectionManager</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpClientConnectionManager</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (8/12)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84%
    +  </span>
    +  <span class="absValue">
    +    (21/25)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpClientConnectionManager$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    36.4%
    +  </span>
    +  <span class="absValue">
    +    (4/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    46.2%
    +  </span>
    +  <span class="absValue">
    +    (12/26)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    52.2%
    +  </span>
    +  <span class="absValue">
    +    (12/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    64.7%
    +  </span>
    +  <span class="absValue">
    +    (33/51)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.http.config.Registry;
    +&nbsp;import org.apache.http.config.RegistryBuilder;
    +&nbsp;import org.apache.http.conn.DnsResolver;
    +&nbsp;import org.apache.http.conn.HttpClientConnectionManager;
    +&nbsp;import org.apache.http.conn.HttpClientConnectionOperator;
    +&nbsp;import org.apache.http.conn.HttpConnectionFactory;
    +&nbsp;import org.apache.http.conn.ManagedHttpClientConnection;
    +&nbsp;import org.apache.http.conn.SchemePortResolver;
    +&nbsp;import org.apache.http.conn.routing.HttpRoute;
    +&nbsp;import org.apache.http.conn.socket.ConnectionSocketFactory;
    +&nbsp;import org.apache.http.conn.socket.PlainConnectionSocketFactory;
    +&nbsp;import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
    +&nbsp;import org.apache.http.impl.conn.DefaultHttpClientConnectionOperator;
    +&nbsp;import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
    +&nbsp;import org.apache.http.impl.conn.SystemDefaultDnsResolver;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    +&nbsp; */
    +&nbsp;public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
    +&nbsp;
    +&nbsp;
    +&nbsp;    protected static Registry&lt;ConnectionSocketFactory&gt; getDefaultRegistry() {
    +<b class="fc">&nbsp;        return RegistryBuilder.&lt;ConnectionSocketFactory&gt;create()</b>
    +<b class="fc">&nbsp;            .register(&quot;http&quot;, PlainConnectionSocketFactory.getSocketFactory())</b>
    +<b class="fc">&nbsp;            .register(&quot;https&quot;, SSLConnectionSocketFactory.getSocketFactory())</b>
    +<b class="fc">&nbsp;            .build();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricsRegistry;
    +&nbsp;    private final String name;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    +&nbsp;     */
    +&nbsp;    @Deprecated
    +&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        this(metricRegistry, getDefaultRegistry());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    +&nbsp;     */
    +&nbsp;    @Deprecated
    +&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    +&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    +<b class="nc">&nbsp;        this(metricsRegistry, socketFactoryRegistry, -1, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    +&nbsp;     */
    +&nbsp;    @Deprecated
    +&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    +&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry,
    +&nbsp;                                                   long connTTL,
    +&nbsp;                                                   TimeUnit connTTLTimeUnit) {
    +<b class="nc">&nbsp;        this(metricsRegistry, socketFactoryRegistry, null, null, SystemDefaultDnsResolver.INSTANCE, connTTL, connTTLTimeUnit, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    +&nbsp;     */
    +&nbsp;    @Deprecated
    +&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    +&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry,
    +&nbsp;                                                   HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt;
    +&nbsp;                                                           connFactory,
    +&nbsp;                                                   SchemePortResolver schemePortResolver,
    +&nbsp;                                                   DnsResolver dnsResolver,
    +&nbsp;                                                   long connTTL,
    +&nbsp;                                                   TimeUnit connTTLTimeUnit,
    +&nbsp;                                                   String name) {
    +<b class="nc">&nbsp;        this(metricsRegistry,</b>
    +&nbsp;             new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver),
    +&nbsp;             connFactory,
    +&nbsp;             connTTL,
    +&nbsp;             connTTLTimeUnit,
    +&nbsp;             name);
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    +&nbsp;     */
    +&nbsp;    @Deprecated
    +&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    +&nbsp;                                                   HttpClientConnectionOperator httpClientConnectionOperator,
    +&nbsp;                                                   HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt;
    +&nbsp;                                                           connFactory,
    +&nbsp;                                                   long connTTL,
    +&nbsp;                                                   TimeUnit connTTLTimeUnit,
    +&nbsp;                                                   String name) {
    +<b class="fc">&nbsp;        super(httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit);</b>
    +<b class="fc">&nbsp;        this.metricsRegistry = metricsRegistry;</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;available-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;leased-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;max-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;pending-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void shutdown() {
    +<b class="fc">&nbsp;        super.shutdown();</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;available-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;leased-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;max-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;pending-connections&quot;));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    +<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static class Builder {
    +&nbsp;        private MetricRegistry metricsRegistry;
    +&nbsp;        private HttpClientConnectionOperator httpClientConnectionOperator;
    +<b class="fc">&nbsp;        private Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry = getDefaultRegistry();</b>
    +&nbsp;        private HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt; connFactory;
    +&nbsp;        private SchemePortResolver schemePortResolver;
    +<b class="fc">&nbsp;        private DnsResolver dnsResolver = SystemDefaultDnsResolver.INSTANCE;</b>
    +<b class="fc">&nbsp;        private long connTTL = -1;</b>
    +<b class="fc">&nbsp;        private TimeUnit connTTLTimeUnit = TimeUnit.MILLISECONDS;</b>
    +&nbsp;        private String name;
    +&nbsp;
    +<b class="fc">&nbsp;        Builder() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder metricsRegistry(MetricRegistry metricsRegistry) {
    +<b class="fc">&nbsp;            this.metricsRegistry = metricsRegistry;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder socketFactoryRegistry(Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    +<b class="nc">&nbsp;            this.socketFactoryRegistry = socketFactoryRegistry;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder connFactory(HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt; connFactory) {
    +<b class="nc">&nbsp;            this.connFactory = connFactory;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    +<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    +<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder connTTL(long connTTL) {
    +<b class="nc">&nbsp;            this.connTTL = connTTL;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder connTTLTimeUnit(TimeUnit connTTLTimeUnit) {
    +<b class="nc">&nbsp;            this.connTTLTimeUnit = connTTLTimeUnit;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
    +<b class="nc">&nbsp;            this.httpClientConnectionOperator = httpClientConnectionOperator;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder name(final String name) {
    +<b class="fc">&nbsp;            this.name = name;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public InstrumentedHttpClientConnectionManager build() {
    +<b class="fc">&nbsp;            if (httpClientConnectionOperator == null) {</b>
    +<b class="fc">&nbsp;                httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return new InstrumentedHttpClientConnectionManager(metricsRegistry, httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit, name);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-4.html
    new file mode 100644
    index 0000000000..0663ff29a5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-4.html
    @@ -0,0 +1,138 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpClients</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpClients</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.http.impl.client.CloseableHttpClient;
    +&nbsp;import org.apache.http.impl.client.HttpClientBuilder;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.httpclient.HttpClientMetricNameStrategies.METHOD_ONLY;
    +&nbsp;
    +&nbsp;public class InstrumentedHttpClients {
    +&nbsp;    private InstrumentedHttpClients() {
    +&nbsp;        super();
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
    +&nbsp;                                                    HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        return HttpClientBuilder.create()</b>
    +<b class="fc">&nbsp;                .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))</b>
    +<b class="fc">&nbsp;                .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-5.html
    new file mode 100644
    index 0000000000..33447d8c49
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-5.html
    @@ -0,0 +1,166 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpRequestExecutor</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpRequestExecutor</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.apache.http.HttpClientConnection;
    +&nbsp;import org.apache.http.HttpException;
    +&nbsp;import org.apache.http.HttpRequest;
    +&nbsp;import org.apache.http.HttpResponse;
    +&nbsp;import org.apache.http.protocol.HttpContext;
    +&nbsp;import org.apache.http.protocol.HttpRequestExecutor;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;
    +&nbsp;public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    +&nbsp;    private final String name;
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                           String name) {
    +<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                           String name,
    +&nbsp;                                           int waitForContinue) {
    +<b class="fc">&nbsp;        super(waitForContinue);</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public HttpResponse execute(HttpRequest request, HttpClientConnection conn, HttpContext context) throws HttpException, IOException {
    +<b class="fc">&nbsp;        final Timer.Context timerContext = timer(request).time();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return super.execute(request, conn, context);</b>
    +<b class="fc">&nbsp;        } catch (HttpException | IOException e) {</b>
    +<b class="fc">&nbsp;            meter(e).mark();</b>
    +<b class="fc">&nbsp;            throw e;</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer timer(HttpRequest request) {
    +<b class="fc">&nbsp;        return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter meter(Exception e) {
    +<b class="fc">&nbsp;        return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index.html
    new file mode 100644
    index 0000000000..111a25b87d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..d8b9118e12
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..e5f6d99229
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..93a2607e60
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_CLASS.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..a14381fa60
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..3384d25c60
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_LINE.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..bdd03a6650
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..55aa6e4038
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_METHOD.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..1ebb89a45c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..62900af831
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,332 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.httpclient5</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (10/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.3%
    +  </span>
    +  <span class="absValue">
    +    (52/75)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (120/162)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-1.html
    new file mode 100644
    index 0000000000..086e2d9d31
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-1.html
    @@ -0,0 +1,152 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HttpClientMetricNameStrategies</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HttpClientMetricNameStrategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import org.apache.hc.client5.http.classic.HttpClient;
    +&nbsp;import org.apache.hc.core5.http.HttpRequest;
    +&nbsp;import org.apache.hc.core5.net.URIBuilder;
    +&nbsp;
    +&nbsp;import java.net.URISyntaxException;
    +&nbsp;import java.util.Locale;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +<b class="nc">&nbsp;public class HttpClientMetricNameStrategies {</b>
    +&nbsp;
    +<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy METHOD_ONLY =</b>
    +<b class="fc">&nbsp;            (name, request) -&gt; name(HttpClient.class,</b>
    +&nbsp;                    name,
    +<b class="fc">&nbsp;                    methodNameString(request));</b>
    +&nbsp;
    +<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy HOST_AND_METHOD =</b>
    +&nbsp;            (name, request) -&gt; {
    +&nbsp;                try {
    +<b class="fc">&nbsp;                    return name(HttpClient.class,</b>
    +&nbsp;                            name,
    +<b class="fc">&nbsp;                            request.getUri().getHost(),</b>
    +<b class="fc">&nbsp;                            methodNameString(request));</b>
    +<b class="nc">&nbsp;                } catch (URISyntaxException e) {</b>
    +<b class="nc">&nbsp;                    throw new IllegalArgumentException(e);</b>
    +&nbsp;                }
    +&nbsp;            };
    +&nbsp;
    +<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =</b>
    +&nbsp;            (name, request) -&gt; {
    +&nbsp;                try {
    +<b class="fc">&nbsp;                    final URIBuilder url = new URIBuilder(request.getUri());</b>
    +<b class="fc">&nbsp;                    return name(HttpClient.class,</b>
    +&nbsp;                            name,
    +<b class="fc">&nbsp;                            url.removeQuery().build().toString(),</b>
    +<b class="fc">&nbsp;                            methodNameString(request));</b>
    +<b class="nc">&nbsp;                } catch (URISyntaxException e) {</b>
    +<b class="nc">&nbsp;                    throw new IllegalArgumentException(e);</b>
    +&nbsp;                }
    +&nbsp;            };
    +&nbsp;
    +&nbsp;    private static String methodNameString(HttpRequest request) {
    +<b class="fc">&nbsp;        return request.getMethod().toLowerCase(Locale.ROOT) + &quot;-requests&quot;;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-2.html
    new file mode 100644
    index 0000000000..d0a4978b7f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-2.html
    @@ -0,0 +1,137 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HttpClientMetricNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HttpClientMetricNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$lUdR5b3N</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$lUdR5b3N$auxiliary$kqfMgHbn</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$lUdR5b3N$auxiliary$Rx31mbKS</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.hc.client5.http.classic.HttpClient;
    +&nbsp;import org.apache.hc.core5.http.HttpRequest;
    +&nbsp;
    +&nbsp;@FunctionalInterface
    +&nbsp;public interface HttpClientMetricNameStrategy {
    +&nbsp;
    +&nbsp;    String getNameFor(String name, HttpRequest request);
    +&nbsp;
    +&nbsp;    default String getNameFor(String name, Exception exception) {
    +<b class="nc">&nbsp;        return MetricRegistry.name(HttpClient.class,</b>
    +&nbsp;                name,
    +<b class="nc">&nbsp;                exception.getClass().getSimpleName());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-3.html
    new file mode 100644
    index 0000000000..3e915f762a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-3.html
    @@ -0,0 +1,285 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedAsyncClientConnectionManager</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedAsyncClientConnectionManager (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedAsyncClientConnectionManager</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedAsyncClientConnectionManager$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (4/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (8/20)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.hc.client5.http.DnsResolver;
    +&nbsp;import org.apache.hc.client5.http.SchemePortResolver;
    +&nbsp;import org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager;
    +&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionManager;
    +&nbsp;import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
    +&nbsp;import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
    +&nbsp;import org.apache.hc.core5.http.URIScheme;
    +&nbsp;import org.apache.hc.core5.http.config.Lookup;
    +&nbsp;import org.apache.hc.core5.http.config.Registry;
    +&nbsp;import org.apache.hc.core5.http.config.RegistryBuilder;
    +&nbsp;import org.apache.hc.core5.http.nio.ssl.TlsStrategy;
    +&nbsp;import org.apache.hc.core5.io.CloseMode;
    +&nbsp;import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
    +&nbsp;import org.apache.hc.core5.pool.PoolReusePolicy;
    +&nbsp;import org.apache.hc.core5.util.TimeValue;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    +&nbsp; */
    +&nbsp;public class InstrumentedAsyncClientConnectionManager extends PoolingAsyncClientConnectionManager {
    +<b class="fc">&nbsp;    private static final String METRICS_PREFIX = AsyncClientConnectionManager.class.getName();</b>
    +&nbsp;
    +&nbsp;    protected static Registry&lt;TlsStrategy&gt; getDefaultTlsStrategy() {
    +<b class="fc">&nbsp;        return RegistryBuilder.&lt;TlsStrategy&gt;create()</b>
    +<b class="fc">&nbsp;                .register(URIScheme.HTTPS.id, DefaultClientTlsStrategy.getDefault())</b>
    +<b class="fc">&nbsp;                .build();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricsRegistry;
    +&nbsp;    private final String name;
    +&nbsp;
    +&nbsp;    InstrumentedAsyncClientConnectionManager(final MetricRegistry metricRegistry,
    +&nbsp;                                             final String name,
    +&nbsp;                                             final Lookup&lt;TlsStrategy&gt; tlsStrategyLookup,
    +&nbsp;                                             final PoolConcurrencyPolicy poolConcurrencyPolicy,
    +&nbsp;                                             final PoolReusePolicy poolReusePolicy,
    +&nbsp;                                             final TimeValue timeToLive,
    +&nbsp;                                             final SchemePortResolver schemePortResolver,
    +&nbsp;                                             final DnsResolver dnsResolver) {
    +&nbsp;
    +<b class="fc">&nbsp;        super(tlsStrategyLookup, poolConcurrencyPolicy, poolReusePolicy, timeToLive, schemePortResolver, dnsResolver);</b>
    +<b class="fc">&nbsp;        this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;available-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;leased-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;max-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;pending-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void close() {
    +<b class="fc">&nbsp;        close(CloseMode.GRACEFUL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void close(CloseMode closeMode) {
    +<b class="fc">&nbsp;        super.close(closeMode);</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;available-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;leased-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;max-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;pending-connections&quot;));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    +<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static class Builder {
    +&nbsp;        private MetricRegistry metricsRegistry;
    +&nbsp;        private String name;
    +<b class="fc">&nbsp;        private Lookup&lt;TlsStrategy&gt; tlsStrategyLookup = getDefaultTlsStrategy();</b>
    +&nbsp;        private SchemePortResolver schemePortResolver;
    +&nbsp;        private DnsResolver dnsResolver;
    +&nbsp;        private PoolConcurrencyPolicy poolConcurrencyPolicy;
    +&nbsp;        private PoolReusePolicy poolReusePolicy;
    +<b class="fc">&nbsp;        private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        Builder() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder metricsRegistry(MetricRegistry metricRegistry) {
    +<b class="fc">&nbsp;            this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder name(final String name) {
    +<b class="fc">&nbsp;            this.name = name;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    +<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    +<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder timeToLive(TimeValue timeToLive) {
    +<b class="nc">&nbsp;            this.timeToLive = timeToLive;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder tlsStrategyLookup(Lookup&lt;TlsStrategy&gt; tlsStrategyLookup) {
    +<b class="nc">&nbsp;            this.tlsStrategyLookup = tlsStrategyLookup;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
    +<b class="nc">&nbsp;            this.poolConcurrencyPolicy = poolConcurrencyPolicy;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
    +<b class="nc">&nbsp;            this.poolReusePolicy = poolReusePolicy;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public InstrumentedAsyncClientConnectionManager build() {
    +<b class="fc">&nbsp;            return new InstrumentedAsyncClientConnectionManager(</b>
    +&nbsp;                    metricsRegistry,
    +&nbsp;                    name,
    +&nbsp;                    tlsStrategyLookup,
    +&nbsp;                    poolConcurrencyPolicy,
    +&nbsp;                    poolReusePolicy,
    +&nbsp;                    timeToLive,
    +&nbsp;                    schemePortResolver,
    +&nbsp;                    dnsResolver);
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-4.html
    new file mode 100644
    index 0000000000..616e2640b5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-4.html
    @@ -0,0 +1,229 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedAsyncExecChainHandler</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedAsyncExecChainHandler (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedAsyncExecChainHandler</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedAsyncExecChainHandler$InstrumentedAsyncExecCallback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.apache.hc.client5.http.async.AsyncExecCallback;
    +&nbsp;import org.apache.hc.client5.http.async.AsyncExecChain;
    +&nbsp;import org.apache.hc.client5.http.async.AsyncExecChainHandler;
    +&nbsp;import org.apache.hc.core5.http.EntityDetails;
    +&nbsp;import org.apache.hc.core5.http.HttpException;
    +&nbsp;import org.apache.hc.core5.http.HttpRequest;
    +&nbsp;import org.apache.hc.core5.http.HttpResponse;
    +&nbsp;import org.apache.hc.core5.http.nio.AsyncDataConsumer;
    +&nbsp;import org.apache.hc.core5.http.nio.AsyncEntityProducer;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;
    +&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;
    +&nbsp;class InstrumentedAsyncExecChainHandler implements AsyncExecChainHandler {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    +&nbsp;    private final String name;
    +&nbsp;
    +&nbsp;    public InstrumentedAsyncExecChainHandler(MetricRegistry registry, HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedAsyncExecChainHandler(MetricRegistry registry,
    +&nbsp;                                             HttpClientMetricNameStrategy metricNameStrategy,
    +<b class="fc">&nbsp;                                             String name) {</b>
    +<b class="fc">&nbsp;        this.registry = requireNonNull(registry, &quot;registry&quot;);</b>
    +<b class="fc">&nbsp;        this.metricNameStrategy = requireNonNull(metricNameStrategy, &quot;metricNameStrategy&quot;);</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void execute(HttpRequest request,
    +&nbsp;                        AsyncEntityProducer entityProducer,
    +&nbsp;                        AsyncExecChain.Scope scope,
    +&nbsp;                        AsyncExecChain chain,
    +&nbsp;                        AsyncExecCallback asyncExecCallback) throws HttpException, IOException {
    +<b class="fc">&nbsp;        final InstrumentedAsyncExecCallback instrumentedAsyncExecCallback =</b>
    +&nbsp;                new InstrumentedAsyncExecCallback(registry, metricNameStrategy, name, asyncExecCallback, request);
    +<b class="fc">&nbsp;        chain.proceed(request, entityProducer, scope, instrumentedAsyncExecCallback);</b>
    +&nbsp;
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    final static class InstrumentedAsyncExecCallback implements AsyncExecCallback {
    +&nbsp;        private final MetricRegistry registry;
    +&nbsp;        private final HttpClientMetricNameStrategy metricNameStrategy;
    +&nbsp;        private final String name;
    +&nbsp;        private final AsyncExecCallback delegate;
    +&nbsp;        private final Timer.Context timerContext;
    +&nbsp;
    +&nbsp;        public InstrumentedAsyncExecCallback(MetricRegistry registry,
    +&nbsp;                                             HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                             String name,
    +&nbsp;                                             AsyncExecCallback delegate,
    +<b class="fc">&nbsp;                                             HttpRequest request) {</b>
    +<b class="fc">&nbsp;            this.registry = registry;</b>
    +<b class="fc">&nbsp;            this.metricNameStrategy = metricNameStrategy;</b>
    +<b class="fc">&nbsp;            this.name = name;</b>
    +<b class="fc">&nbsp;            this.delegate = delegate;</b>
    +<b class="fc">&nbsp;            this.timerContext = timer(request).time();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public AsyncDataConsumer handleResponse(HttpResponse response, EntityDetails entityDetails) throws HttpException, IOException {
    +<b class="fc">&nbsp;            return delegate.handleResponse(response, entityDetails);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void handleInformationResponse(HttpResponse response) throws HttpException, IOException {
    +<b class="nc">&nbsp;            delegate.handleInformationResponse(response);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void completed() {
    +<b class="fc">&nbsp;            delegate.completed();</b>
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void failed(Exception cause) {
    +<b class="fc">&nbsp;            delegate.failed(cause);</b>
    +<b class="fc">&nbsp;            meter(cause).mark();</b>
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer timer(HttpRequest request) {
    +<b class="fc">&nbsp;            return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Meter meter(Exception e) {
    +<b class="fc">&nbsp;            return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-5.html
    new file mode 100644
    index 0000000000..4d2c6eb921
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-5.html
    @@ -0,0 +1,147 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpAsyncClients</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpAsyncClients (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpAsyncClients</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.hc.client5.http.impl.ChainElement;
    +&nbsp;import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
    +&nbsp;import org.apache.hc.client5.http.impl.async.HttpAsyncClientBuilder;
    +&nbsp;import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
    +&nbsp;
    +&nbsp;public class InstrumentedHttpAsyncClients {
    +&nbsp;    private InstrumentedHttpAsyncClients() {
    +&nbsp;        super();
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry,
    +&nbsp;                                                         HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
    +&nbsp;                                                HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        return custom(metricRegistry, metricNameStrategy, InstrumentedAsyncClientConnectionManager.builder(metricRegistry).build());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
    +&nbsp;                                                HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                                AsyncClientConnectionManager clientConnectionManager) {
    +<b class="fc">&nbsp;        return HttpAsyncClientBuilder.create()</b>
    +<b class="fc">&nbsp;                .setConnectionManager(clientConnectionManager)</b>
    +<b class="fc">&nbsp;                .addExecInterceptorBefore(ChainElement.CONNECT.name(), &quot;dropwizard-metrics&quot;,</b>
    +&nbsp;                        new InstrumentedAsyncExecChainHandler(metricRegistry, metricNameStrategy));
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-6.html
    new file mode 100644
    index 0000000000..e6b63dd79f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-6.html
    @@ -0,0 +1,308 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpClientConnectionManager</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpClientConnectionManager</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (23/23)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpClientConnectionManager$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (4/12)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    38.5%
    +  </span>
    +  <span class="absValue">
    +    (10/26)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.hc.client5.http.DnsResolver;
    +&nbsp;import org.apache.hc.client5.http.SchemePortResolver;
    +&nbsp;import org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator;
    +&nbsp;import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
    +&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionManager;
    +&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionOperator;
    +&nbsp;import org.apache.hc.client5.http.io.ManagedHttpClientConnection;
    +&nbsp;import org.apache.hc.client5.http.socket.ConnectionSocketFactory;
    +&nbsp;import org.apache.hc.client5.http.socket.PlainConnectionSocketFactory;
    +&nbsp;import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
    +&nbsp;import org.apache.hc.core5.http.URIScheme;
    +&nbsp;import org.apache.hc.core5.http.config.Registry;
    +&nbsp;import org.apache.hc.core5.http.config.RegistryBuilder;
    +&nbsp;import org.apache.hc.core5.http.io.HttpConnectionFactory;
    +&nbsp;import org.apache.hc.core5.io.CloseMode;
    +&nbsp;import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
    +&nbsp;import org.apache.hc.core5.pool.PoolReusePolicy;
    +&nbsp;import org.apache.hc.core5.util.TimeValue;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    +&nbsp; */
    +&nbsp;public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
    +<b class="fc">&nbsp;    private static final String METRICS_PREFIX = HttpClientConnectionManager.class.getName();</b>
    +&nbsp;
    +&nbsp;    protected static Registry&lt;ConnectionSocketFactory&gt; getDefaultRegistry() {
    +<b class="fc">&nbsp;        return RegistryBuilder.&lt;ConnectionSocketFactory&gt;create()</b>
    +<b class="fc">&nbsp;                .register(URIScheme.HTTP.id, PlainConnectionSocketFactory.getSocketFactory())</b>
    +<b class="fc">&nbsp;                .register(URIScheme.HTTPS.id, SSLConnectionSocketFactory.getSocketFactory())</b>
    +<b class="fc">&nbsp;                .build();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricsRegistry;
    +&nbsp;    private final String name;
    +&nbsp;
    +&nbsp;    InstrumentedHttpClientConnectionManager(final MetricRegistry metricRegistry,
    +&nbsp;                                            final String name,
    +&nbsp;                                            final HttpClientConnectionOperator httpClientConnectionOperator,
    +&nbsp;                                            final PoolConcurrencyPolicy poolConcurrencyPolicy,
    +&nbsp;                                            final PoolReusePolicy poolReusePolicy,
    +&nbsp;                                            final TimeValue timeToLive,
    +&nbsp;                                            final HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory) {
    +&nbsp;
    +<b class="fc">&nbsp;        super(httpClientConnectionOperator, poolConcurrencyPolicy, poolReusePolicy, timeToLive, connFactory);</b>
    +<b class="fc">&nbsp;        this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;available-connections&quot;),</b>
    +&nbsp;                () -&gt; {
    +<b class="fc">&nbsp;                    return getTotalStats().getAvailable();</b>
    +&nbsp;                });
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;leased-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;max-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax()</b>
    +&nbsp;        );
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;pending-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void close() {
    +<b class="fc">&nbsp;        close(CloseMode.GRACEFUL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void close(CloseMode closeMode) {
    +<b class="fc">&nbsp;        super.close(closeMode);</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;available-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;leased-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;max-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;pending-connections&quot;));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    +<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static class Builder {
    +&nbsp;        private MetricRegistry metricsRegistry;
    +&nbsp;        private String name;
    +&nbsp;        private HttpClientConnectionOperator httpClientConnectionOperator;
    +<b class="fc">&nbsp;        private Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry = getDefaultRegistry();</b>
    +&nbsp;        private SchemePortResolver schemePortResolver;
    +&nbsp;        private DnsResolver dnsResolver;
    +&nbsp;        private PoolConcurrencyPolicy poolConcurrencyPolicy;
    +&nbsp;        private PoolReusePolicy poolReusePolicy;
    +<b class="fc">&nbsp;        private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;</b>
    +&nbsp;        private HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory;
    +&nbsp;
    +<b class="fc">&nbsp;        Builder() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder metricsRegistry(MetricRegistry metricRegistry) {
    +<b class="fc">&nbsp;            this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder name(final String name) {
    +<b class="fc">&nbsp;            this.name = name;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder socketFactoryRegistry(Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    +<b class="nc">&nbsp;            this.socketFactoryRegistry = requireNonNull(socketFactoryRegistry, &quot;socketFactoryRegistry&quot;);</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder connFactory(HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory) {
    +<b class="nc">&nbsp;            this.connFactory = connFactory;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    +<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    +<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder timeToLive(TimeValue timeToLive) {
    +<b class="nc">&nbsp;            this.timeToLive = timeToLive;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
    +<b class="nc">&nbsp;            this.httpClientConnectionOperator = httpClientConnectionOperator;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
    +<b class="nc">&nbsp;            this.poolConcurrencyPolicy = poolConcurrencyPolicy;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
    +<b class="nc">&nbsp;            this.poolReusePolicy = poolReusePolicy;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public InstrumentedHttpClientConnectionManager build() {
    +<b class="fc">&nbsp;            if (httpClientConnectionOperator == null) {</b>
    +<b class="fc">&nbsp;                httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(</b>
    +&nbsp;                        socketFactoryRegistry,
    +&nbsp;                        schemePortResolver,
    +&nbsp;                        dnsResolver);
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            return new InstrumentedHttpClientConnectionManager(</b>
    +&nbsp;                    metricsRegistry,
    +&nbsp;                    name,
    +&nbsp;                    httpClientConnectionOperator,
    +&nbsp;                    poolConcurrencyPolicy,
    +&nbsp;                    poolReusePolicy,
    +&nbsp;                    timeToLive,
    +&nbsp;                    connFactory);
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-7.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-7.html
    new file mode 100644
    index 0000000000..48ca7c44e3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-7.html
    @@ -0,0 +1,138 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpClients</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpClients</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
    +&nbsp;import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
    +&nbsp;
    +&nbsp;public class InstrumentedHttpClients {
    +&nbsp;    private InstrumentedHttpClients() {
    +&nbsp;        super();
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
    +&nbsp;                                                    HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        return HttpClientBuilder.create()</b>
    +<b class="fc">&nbsp;                .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))</b>
    +<b class="fc">&nbsp;                .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-8.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-8.html
    new file mode 100644
    index 0000000000..b0b1ada196
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-8.html
    @@ -0,0 +1,182 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpRequestExecutor</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpRequestExecutor</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.apache.hc.core5.http.ClassicHttpRequest;
    +&nbsp;import org.apache.hc.core5.http.ClassicHttpResponse;
    +&nbsp;import org.apache.hc.core5.http.ConnectionReuseStrategy;
    +&nbsp;import org.apache.hc.core5.http.HttpException;
    +&nbsp;import org.apache.hc.core5.http.HttpRequest;
    +&nbsp;import org.apache.hc.core5.http.impl.Http1StreamListener;
    +&nbsp;import org.apache.hc.core5.http.impl.io.HttpRequestExecutor;
    +&nbsp;import org.apache.hc.core5.http.io.HttpClientConnection;
    +&nbsp;import org.apache.hc.core5.http.io.HttpResponseInformationCallback;
    +&nbsp;import org.apache.hc.core5.http.protocol.HttpContext;
    +&nbsp;import org.apache.hc.core5.util.Timeout;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;
    +&nbsp;public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    +&nbsp;    private final String name;
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                           String name) {
    +<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                           String name,
    +&nbsp;                                           Timeout waitForContinue) {
    +<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, waitForContinue, null, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                           String name,
    +&nbsp;                                           Timeout waitForContinue,
    +&nbsp;                                           ConnectionReuseStrategy connReuseStrategy,
    +&nbsp;                                           Http1StreamListener streamListener) {
    +<b class="fc">&nbsp;        super(waitForContinue, connReuseStrategy, streamListener);</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public ClassicHttpResponse execute(ClassicHttpRequest request, HttpClientConnection conn, HttpResponseInformationCallback informationCallback, HttpContext context) throws IOException, HttpException {
    +<b class="fc">&nbsp;        final Timer.Context timerContext = timer(request).time();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return super.execute(request, conn, informationCallback, context);</b>
    +<b class="fc">&nbsp;        } catch (HttpException | IOException e) {</b>
    +<b class="fc">&nbsp;            meter(e).mark();</b>
    +<b class="fc">&nbsp;            throw e;</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer timer(HttpRequest request) {
    +<b class="fc">&nbsp;        return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter meter(Exception e) {
    +<b class="fc">&nbsp;        return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index.html
    new file mode 100644
    index 0000000000..beb1ea6ea2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..ba6cecd80f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..c10479486c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..d7b19fb45e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_CLASS.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..d08fc86df3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..247d51f952
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_LINE.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..f9c7c59656
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..9fefd657ff
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_METHOD.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..a240d97908
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..6f53ea4120
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,143 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +com.codahale.metrics.jcache</div>
    +
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">com.codahale.metrics.jcache</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/sources/source-1.html
    new file mode 100644
    index 0000000000..01cad6e4ae
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/sources/source-1.html
    @@ -0,0 +1,189 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > JCacheGaugeSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jcache</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: JCacheGaugeSet (com.codahale.metrics.jcache)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">JCacheGaugeSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.5%
    +  </span>
    +  <span class="absValue">
    +    (23/26)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jcache;
    +&nbsp;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.jvm.JmxAttributeGauge;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;
    +&nbsp;import javax.cache.management.CacheStatisticsMXBean;
    +&nbsp;import javax.management.MalformedObjectNameException;
    +&nbsp;import javax.management.ObjectInstance;
    +&nbsp;import javax.management.ObjectName;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Gauge set retrieving JCache JMX attributes
    +&nbsp; *
    +&nbsp; * @author &lt;a href=&quot;mailto:henri.tremblay@softwareag.com&quot;&gt;Henri Tremblay&lt;/a&gt;
    +&nbsp; * @author &lt;a href=&quot;mailto:anthony.dahanne@softwareag.com&quot;&gt;Anthony Dahanne&lt;/a&gt;
    +&nbsp; */
    +<b class="fc">&nbsp;public class JCacheGaugeSet implements MetricSet {</b>
    +&nbsp;
    +&nbsp;    private static final String M_BEAN_COORDINATES = &quot;javax.cache:type=CacheStatistics,CacheManager=*,Cache=*&quot;;
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JCacheGaugeSet.class);</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        Set&lt;ObjectInstance&gt; cacheBeans = getCacheBeans();</b>
    +<b class="fc">&nbsp;        List&lt;String&gt; availableStatsNames = retrieveStatsNames();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;(cacheBeans.size() * availableStatsNames.size());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (ObjectInstance cacheBean : cacheBeans) {</b>
    +<b class="fc">&nbsp;            ObjectName objectName = cacheBean.getObjectName();</b>
    +<b class="fc">&nbsp;            String cacheName = objectName.getKeyProperty(&quot;Cache&quot;);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (String statsName : availableStatsNames) {</b>
    +<b class="fc">&nbsp;                JmxAttributeGauge jmxAttributeGauge = new JmxAttributeGauge(objectName, statsName);</b>
    +<b class="fc">&nbsp;                gauges.put(name(cacheName, toSpinalCase(statsName)), jmxAttributeGauge);</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Set&lt;ObjectInstance&gt; getCacheBeans() {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return ManagementFactory.getPlatformMBeanServer().queryMBeans(ObjectName.getInstance(M_BEAN_COORDINATES), null);</b>
    +<b class="nc">&nbsp;        } catch (MalformedObjectNameException e) {</b>
    +<b class="nc">&nbsp;            LOGGER.error(&quot;Unable to retrieve {}. Are JCache statistics enabled?&quot;, M_BEAN_COORDINATES);</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private List&lt;String&gt; retrieveStatsNames() {
    +<b class="fc">&nbsp;        Method[] methods = CacheStatisticsMXBean.class.getDeclaredMethods();</b>
    +<b class="fc">&nbsp;        List&lt;String&gt; availableStatsNames = new ArrayList&lt;&gt;(methods.length);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (Method method : methods) {</b>
    +<b class="fc">&nbsp;            String methodName = method.getName();</b>
    +<b class="fc">&nbsp;            if (methodName.startsWith(&quot;get&quot;)) {</b>
    +<b class="fc">&nbsp;                availableStatsNames.add(methodName.substring(3));</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        return availableStatsNames;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static String toSpinalCase(String camelCase) {
    +<b class="fc">&nbsp;        return camelCase.replaceAll(&quot;(.)(\\p{Upper})&quot;, &quot;$1-$2&quot;).toLowerCase(Locale.US);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:42</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index.html b/metrics-complete-branch-report-Final-htmlReport/index.html
    index 4259f9c095..324554f25d 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/index.html
    @@ -44,34 +44,34 @@ <h1>Overall Coverage Summary </h1>
         <td class="name">all classes</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.4%
    +    83.7%
       </span>
       <span class="absValue">
    -    (333/381)
    +    (345/412)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.6%
    +    70.5%
       </span>
       <span class="absValue">
    -    (1555/2142)
    +    (1610/2285)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    1.7%
       </span>
       <span class="absValue">
    -    (0/129)
    +    (20/1166)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.6%
    +    55.5%
       </span>
       <span class="absValue">
    -    (5188/6863)
    +    (5396/9723)
       </span>
     </td>
       </tr>
    @@ -122,10 +122,10 @@ <h2>Coverage Breakdown</h2>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    13%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
    @@ -194,7 +194,42 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-4/index.html">com.codahale.metrics.caffeine</a></td>
    +    <td class="name"><a href="ns-4/index.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index.html">com.codahale.metrics.caffeine</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -211,7 +246,14 @@ <h2>Coverage Breakdown</h2>
         (9/10)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         97%
    @@ -222,35 +264,35 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-5/index.html">com.codahale.metrics.collectd</a></td>
    +    <td class="name"><a href="ns-6/index.html">com.codahale.metrics.collectd</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    100%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    89%
       </span>
       <span class="absValue">
    -    (68/82)
    +    (73/82)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    83.4%
    +    85.9%
       </span>
       <span class="absValue">
    -    (261/313)
    +    (269/313)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-6/index.html">com.codahale.metrics.ehcache</a></td>
    +    <td class="name"><a href="ns-7/index.html">com.codahale.metrics.ehcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -278,7 +320,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-7/index.html">com.codahale.metrics.graphite</a></td>
    +    <td class="name"><a href="ns-8/index.html">com.codahale.metrics.graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         77.8%
    @@ -306,7 +348,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-8/index.html">com.codahale.metrics.health</a></td>
    +    <td class="name"><a href="ns-9/index.html">com.codahale.metrics.health</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -334,7 +376,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-9/index.html">com.codahale.metrics.health.annotation</a></td>
    +    <td class="name"><a href="ns-a/index.html">com.codahale.metrics.health.annotation</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -362,7 +404,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-a/index.html">com.codahale.metrics.health.jvm</a></td>
    +    <td class="name"><a href="ns-b/index.html">com.codahale.metrics.health.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -390,7 +432,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-b/index.html">com.codahale.metrics.httpasyncclient</a></td>
    +    <td class="name"><a href="ns-c/index.html">com.codahale.metrics.httpasyncclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -418,7 +460,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-c/index.html">com.codahale.metrics.httpclient</a></td>
    +    <td class="name"><a href="ns-d/index.html">com.codahale.metrics.httpclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         83.3%
    @@ -446,7 +488,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-d/index.html">com.codahale.metrics.httpclient5</a></td>
    +    <td class="name"><a href="ns-e/index.html">com.codahale.metrics.httpclient5</a></td>
     <td class="coverageStat">
       <span class="percent">
         90.9%
    @@ -474,7 +516,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-e/index.html">com.codahale.metrics.jcache</a></td>
    +    <td class="name"><a href="ns-f/index.html">com.codahale.metrics.jcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -502,7 +544,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-f/index.html">com.codahale.metrics.jdbi</a></td>
    +    <td class="name"><a href="ns-10/index.html">com.codahale.metrics.jdbi</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -530,7 +572,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-10/index.html">com.codahale.metrics.jdbi.strategies</a></td>
    +    <td class="name"><a href="ns-11/index.html">com.codahale.metrics.jdbi.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         80%
    @@ -558,7 +600,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-11/index.html">com.codahale.metrics.jdbi3</a></td>
    +    <td class="name"><a href="ns-12/index.html">com.codahale.metrics.jdbi3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -586,7 +628,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-12/index.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +    <td class="name"><a href="ns-13/index.html">com.codahale.metrics.jdbi3.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -614,7 +656,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-13/index.html">com.codahale.metrics.jersey2</a></td>
    +    <td class="name"><a href="ns-14/index.html">com.codahale.metrics.jersey2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -642,7 +684,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-14/index.html">com.codahale.metrics.jersey3</a></td>
    +    <td class="name"><a href="ns-15/index.html">com.codahale.metrics.jersey3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -670,7 +712,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-15/index.html">com.codahale.metrics.jetty9</a></td>
    +    <td class="name"><a href="ns-16/index.html">com.codahale.metrics.jetty9</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -705,7 +747,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-16/index.html">com.codahale.metrics.jmx</a></td>
    +    <td class="name"><a href="ns-17/index.html">com.codahale.metrics.jmx</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -733,7 +775,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-17/index.html">com.codahale.metrics.json</a></td>
    +    <td class="name"><a href="ns-18/index.html">com.codahale.metrics.json</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -761,7 +803,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-18/index.html">com.codahale.metrics.jvm</a></td>
    +    <td class="name"><a href="ns-19/index.html">com.codahale.metrics.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -789,7 +831,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-19/index.html">com.codahale.metrics.log4j2</a></td>
    +    <td class="name"><a href="ns-1a/index.html">com.codahale.metrics.log4j2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -817,7 +859,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1a/index.html">com.codahale.metrics.logback</a></td>
    +    <td class="name"><a href="ns-1b/index.html">com.codahale.metrics.logback</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -845,7 +887,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1b/index.html">com.codahale.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-1c/index.html">com.codahale.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -880,7 +922,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1c/index.html">com.codahale.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-1d/index.html">com.codahale.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -908,7 +950,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1d/index.html">io.dropwizard.metrics.caffeine3</a></td>
    +    <td class="name"><a href="ns-1e/index.html">io.dropwizard.metrics.caffeine3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -936,42 +978,35 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1e/index.html">io.dropwizard.metrics.jersey31</a></td>
    +    <td class="name"><a href="ns-1f/index.html">io.dropwizard.metrics.jersey31</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (50/53)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (200/212)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1f/index.html">io.dropwizard.metrics.jetty10</a></td>
    +    <td class="name"><a href="ns-20/index.html">io.dropwizard.metrics.jetty10</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -1006,7 +1041,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-20/index.html">io.dropwizard.metrics.jetty11</a></td>
    +    <td class="name"><a href="ns-21/index.html">io.dropwizard.metrics.jetty11</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -1041,7 +1076,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-21/index.html">io.dropwizard.metrics.jetty12</a></td>
    +    <td class="name"><a href="ns-22/index.html">io.dropwizard.metrics.jetty12</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1069,7 +1104,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-22/index.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +    <td class="name"><a href="ns-23/index.html">io.dropwizard.metrics.jetty12.ee10</a></td>
     <td class="coverageStat">
       <span class="percent">
         66.7%
    @@ -1104,7 +1139,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-23/index.html">io.dropwizard.metrics.logback13</a></td>
    +    <td class="name"><a href="ns-24/index.html">io.dropwizard.metrics.logback13</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1132,7 +1167,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-24/index.html">io.dropwizard.metrics.logback14</a></td>
    +    <td class="name"><a href="ns-25/index.html">io.dropwizard.metrics.logback14</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1160,7 +1195,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-25/index.html">io.dropwizard.metrics.logback15</a></td>
    +    <td class="name"><a href="ns-26/index.html">io.dropwizard.metrics.logback15</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1188,7 +1223,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-26/index.html">io.dropwizard.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-27/index.html">io.dropwizard.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -1223,7 +1258,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-27/index.html">io.dropwizard.metrics.servlet6</a></td>
    +    <td class="name"><a href="ns-28/index.html">io.dropwizard.metrics.servlet6</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -1258,7 +1293,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-28/index.html">io.dropwizard.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-29/index.html">io.dropwizard.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -1307,7 +1342,7 @@ <h2>Coverage Breakdown</h2>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK.html
    index b84235b891..8ecd23439e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK.html
    @@ -44,34 +44,34 @@ <h1>Overall Coverage Summary </h1>
         <td class="name">all classes</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.4%
    +    83.7%
       </span>
       <span class="absValue">
    -    (333/381)
    +    (345/412)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.6%
    +    70.5%
       </span>
       <span class="absValue">
    -    (1555/2142)
    +    (1610/2285)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    1.7%
       </span>
       <span class="absValue">
    -    (0/129)
    +    (20/1166)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.6%
    +    55.5%
       </span>
       <span class="absValue">
    -    (5188/6863)
    +    (5396/9723)
       </span>
     </td>
       </tr>
    @@ -159,63 +159,35 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_BLOCK.html">com.codahale.metrics.caffeine</a></td>
    +    <td class="name"><a href="ns-6/index_SORT_BY_BLOCK.html">com.codahale.metrics.collectd</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_BLOCK.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    89%
       </span>
       <span class="absValue">
    -    (68/82)
    +    (73/82)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    83.4%
    +    85.9%
       </span>
       <span class="absValue">
    -    (261/313)
    +    (269/313)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_BLOCK.html">com.codahale.metrics.ehcache</a></td>
    +    <td class="name"><a href="ns-7/index_SORT_BY_BLOCK.html">com.codahale.metrics.ehcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -243,7 +215,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_BLOCK.html">com.codahale.metrics.graphite</a></td>
    +    <td class="name"><a href="ns-8/index_SORT_BY_BLOCK.html">com.codahale.metrics.graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         77.8%
    @@ -271,7 +243,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_BLOCK.html">com.codahale.metrics.health</a></td>
    +    <td class="name"><a href="ns-9/index_SORT_BY_BLOCK.html">com.codahale.metrics.health</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -299,7 +271,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_BLOCK.html">com.codahale.metrics.health.annotation</a></td>
    +    <td class="name"><a href="ns-a/index_SORT_BY_BLOCK.html">com.codahale.metrics.health.annotation</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -327,7 +299,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_BLOCK.html">com.codahale.metrics.health.jvm</a></td>
    +    <td class="name"><a href="ns-b/index_SORT_BY_BLOCK.html">com.codahale.metrics.health.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -355,7 +327,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpasyncclient</a></td>
    +    <td class="name"><a href="ns-c/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpasyncclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -383,7 +355,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpclient</a></td>
    +    <td class="name"><a href="ns-d/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         83.3%
    @@ -411,7 +383,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpclient5</a></td>
    +    <td class="name"><a href="ns-e/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpclient5</a></td>
     <td class="coverageStat">
       <span class="percent">
         90.9%
    @@ -439,7 +411,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_BLOCK.html">com.codahale.metrics.jcache</a></td>
    +    <td class="name"><a href="ns-f/index_SORT_BY_BLOCK.html">com.codahale.metrics.jcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -467,7 +439,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi</a></td>
    +    <td class="name"><a href="ns-10/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -495,7 +467,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi.strategies</a></td>
    +    <td class="name"><a href="ns-11/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         80%
    @@ -523,7 +495,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi3</a></td>
    +    <td class="name"><a href="ns-12/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -551,7 +523,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +    <td class="name"><a href="ns-13/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi3.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -579,7 +551,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_BLOCK.html">com.codahale.metrics.jersey2</a></td>
    +    <td class="name"><a href="ns-14/index_SORT_BY_BLOCK.html">com.codahale.metrics.jersey2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -607,7 +579,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_BLOCK.html">com.codahale.metrics.jersey3</a></td>
    +    <td class="name"><a href="ns-15/index_SORT_BY_BLOCK.html">com.codahale.metrics.jersey3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -635,7 +607,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_BLOCK.html">com.codahale.metrics.jmx</a></td>
    +    <td class="name"><a href="ns-17/index_SORT_BY_BLOCK.html">com.codahale.metrics.jmx</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -663,7 +635,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_BLOCK.html">com.codahale.metrics.json</a></td>
    +    <td class="name"><a href="ns-18/index_SORT_BY_BLOCK.html">com.codahale.metrics.json</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -691,7 +663,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_BLOCK.html">com.codahale.metrics.jvm</a></td>
    +    <td class="name"><a href="ns-19/index_SORT_BY_BLOCK.html">com.codahale.metrics.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -719,7 +691,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_BLOCK.html">com.codahale.metrics.log4j2</a></td>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_BLOCK.html">com.codahale.metrics.log4j2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -747,7 +719,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_BLOCK.html">com.codahale.metrics.logback</a></td>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_BLOCK.html">com.codahale.metrics.logback</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -775,7 +747,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_BLOCK.html">com.codahale.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_BLOCK.html">com.codahale.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -803,7 +775,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.caffeine3</a></td>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.caffeine3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -831,7 +803,35 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty12</a></td>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty12</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -859,7 +859,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback13</a></td>
    +    <td class="name"><a href="ns-24/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback13</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -887,7 +887,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback14</a></td>
    +    <td class="name"><a href="ns-25/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback14</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -915,7 +915,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback15</a></td>
    +    <td class="name"><a href="ns-26/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback15</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -943,7 +943,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-29/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -971,21 +971,21 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_BLOCK.html">com.codahale.metrics</a></td>
    +    <td class="name"><a href="ns-4/index_SORT_BY_BLOCK.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    0%
       </span>
       <span class="absValue">
    -    (80/88)
    +    (0/31)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    78.6%
    +    0%
       </span>
       <span class="absValue">
    -    (495/630)
    +    (0/143)
       </span>
     </td>
     <td class="coverageStat">
    @@ -993,20 +993,20 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (0/1012)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86.3%
    +    0%
       </span>
       <span class="absValue">
    -    (1478/1713)
    +    (0/2860)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_BLOCK.html">com.codahale.metrics.jetty9</a></td>
    +    <td class="name"><a href="ns-16/index_SORT_BY_BLOCK.html">com.codahale.metrics.jetty9</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -1041,7 +1041,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_BLOCK.html">com.codahale.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_BLOCK.html">com.codahale.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -1076,21 +1076,21 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jersey31</a></td>
    +    <td class="name"><a href="ns-20/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty10</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.2%
       </span>
       <span class="absValue">
    -    (0/11)
    +    (25/26)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    62.3%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (76/122)
       </span>
     </td>
     <td class="coverageStat">
    @@ -1098,20 +1098,20 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    75%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (276/368)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty10</a></td>
    +    <td class="name"><a href="ns-21/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty11</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -1146,21 +1146,21 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty11</a></td>
    +    <td class="name"><a href="ns-23/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty12.ee10</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    96.2%
    +    66.7%
       </span>
       <span class="absValue">
    -    (25/26)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62.3%
    +    29.4%
       </span>
       <span class="absValue">
    -    (76/122)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
    @@ -1173,29 +1173,29 @@ <h2>Coverage Breakdown</h2>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    48%
       </span>
       <span class="absValue">
    -    (276/368)
    +    (24/50)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +    <td class="name"><a href="ns-27/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    40%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (2/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    12.5%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
    @@ -1208,15 +1208,15 @@ <h2>Coverage Breakdown</h2>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    3.5%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (3/86)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-28/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlet6</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -1227,10 +1227,10 @@ <h2>Coverage Breakdown</h2>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    13%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (3/23)
       </span>
     </td>
     <td class="coverageStat">
    @@ -1243,21 +1243,29 @@ <h2>Coverage Breakdown</h2>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    3.6%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (3/84)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlet6</a></td>
    +    <td class="name"><a href="ns-1/index_SORT_BY_BLOCK.html">com.codahale.metrics</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    40%
    +    90.9%
       </span>
       <span class="absValue">
    -    (2/5)
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
       </span>
     </td>
     <td class="coverageStat">
    @@ -1265,23 +1273,50 @@ <h2>Coverage Breakdown</h2>
         13%
       </span>
       <span class="absValue">
    -    (3/23)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    86.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (1478/1713)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_BLOCK.html">com.codahale.metrics.caffeine</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    3.6%
    +    100%
       </span>
       <span class="absValue">
    -    (3/84)
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97%
    +  </span>
    +  <span class="absValue">
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -1307,7 +1342,7 @@ <h2>Coverage Breakdown</h2>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK_DESC.html
    index 149eb9e2eb..ed24d4e9c8 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK_DESC.html
    @@ -44,34 +44,34 @@ <h1>Overall Coverage Summary </h1>
         <td class="name">all classes</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.4%
    +    83.7%
       </span>
       <span class="absValue">
    -    (333/381)
    +    (345/412)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.6%
    +    70.5%
       </span>
       <span class="absValue">
    -    (1555/2142)
    +    (1610/2285)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    1.7%
       </span>
       <span class="absValue">
    -    (0/129)
    +    (20/1166)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.6%
    +    55.5%
       </span>
       <span class="absValue">
    -    (5188/6863)
    +    (5396/9723)
       </span>
     </td>
       </tr>
    @@ -103,42 +103,77 @@ <h2>Coverage Breakdown</h2>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    +    <td class="name"><a href="ns-5/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.caffeine</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    40%
    +    100%
       </span>
       <span class="absValue">
    -    (2/5)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    13%
    +    90%
       </span>
       <span class="absValue">
    -    (3/23)
    +    (9/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.6%
    +    97%
       </span>
       <span class="absValue">
    -    (3/84)
    +    (32/33)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-1/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.9%
    +  </span>
    +  <span class="absValue">
    +    (80/88)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.6%
    +  </span>
    +  <span class="absValue">
    +    (495/630)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    13%
    +  </span>
    +  <span class="absValue">
    +    (18/138)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.3%
    +  </span>
    +  <span class="absValue">
    +    (1478/1713)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-28/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlet6</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -149,10 +184,10 @@ <h2>Coverage Breakdown</h2>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    13%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (3/23)
       </span>
     </td>
     <td class="coverageStat">
    @@ -165,29 +200,29 @@ <h2>Coverage Breakdown</h2>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    3.6%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (3/84)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +    <td class="name"><a href="ns-27/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    40%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (2/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    12.5%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
    @@ -200,29 +235,29 @@ <h2>Coverage Breakdown</h2>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    3.5%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (3/86)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    +    <td class="name"><a href="ns-23/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    96.2%
    +    66.7%
       </span>
       <span class="absValue">
    -    (25/26)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62.3%
    +    29.4%
       </span>
       <span class="absValue">
    -    (76/122)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
    @@ -235,15 +270,15 @@ <h2>Coverage Breakdown</h2>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    48%
       </span>
       <span class="absValue">
    -    (276/368)
    +    (24/50)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    +    <td class="name"><a href="ns-21/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty11</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -278,21 +313,21 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    +    <td class="name"><a href="ns-20/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty10</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.2%
       </span>
       <span class="absValue">
    -    (0/11)
    +    (25/26)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    62.3%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (76/122)
       </span>
     </td>
     <td class="coverageStat">
    @@ -300,20 +335,20 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    75%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (276/368)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -348,7 +383,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jetty9</a></td>
    +    <td class="name"><a href="ns-16/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jetty9</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -383,21 +418,21 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics</a></td>
    +    <td class="name"><a href="ns-4/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    0%
       </span>
       <span class="absValue">
    -    (80/88)
    +    (0/31)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    78.6%
    +    0%
       </span>
       <span class="absValue">
    -    (495/630)
    +    (0/143)
       </span>
     </td>
     <td class="coverageStat">
    @@ -405,20 +440,20 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (0/1012)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86.3%
    +    0%
       </span>
       <span class="absValue">
    -    (1478/1713)
    +    (0/2860)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-29/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -446,7 +481,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback15</a></td>
    +    <td class="name"><a href="ns-26/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback15</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -474,7 +509,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback14</a></td>
    +    <td class="name"><a href="ns-25/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback14</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -502,7 +537,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback13</a></td>
    +    <td class="name"><a href="ns-24/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback13</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -530,7 +565,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    +    <td class="name"><a href="ns-22/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty12</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -558,7 +593,35 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -586,7 +649,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -614,7 +677,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.logback</a></td>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.logback</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -642,7 +705,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.log4j2</a></td>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.log4j2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -670,7 +733,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jvm</a></td>
    +    <td class="name"><a href="ns-19/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -698,7 +761,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.json</a></td>
    +    <td class="name"><a href="ns-18/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.json</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -726,7 +789,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jmx</a></td>
    +    <td class="name"><a href="ns-17/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jmx</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -754,7 +817,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jersey3</a></td>
    +    <td class="name"><a href="ns-15/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jersey3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -782,7 +845,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jersey2</a></td>
    +    <td class="name"><a href="ns-14/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jersey2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -810,7 +873,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +    <td class="name"><a href="ns-13/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -838,7 +901,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi3</a></td>
    +    <td class="name"><a href="ns-12/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -866,7 +929,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    +    <td class="name"><a href="ns-11/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         80%
    @@ -894,7 +957,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi</a></td>
    +    <td class="name"><a href="ns-10/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -922,7 +985,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jcache</a></td>
    +    <td class="name"><a href="ns-f/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -950,7 +1013,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpclient5</a></td>
    +    <td class="name"><a href="ns-e/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpclient5</a></td>
     <td class="coverageStat">
       <span class="percent">
         90.9%
    @@ -978,7 +1041,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpclient</a></td>
    +    <td class="name"><a href="ns-d/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         83.3%
    @@ -1006,7 +1069,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    +    <td class="name"><a href="ns-c/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1034,7 +1097,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health.jvm</a></td>
    +    <td class="name"><a href="ns-b/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1062,7 +1125,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health.annotation</a></td>
    +    <td class="name"><a href="ns-a/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health.annotation</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1090,7 +1153,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health</a></td>
    +    <td class="name"><a href="ns-9/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1118,7 +1181,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.graphite</a></td>
    +    <td class="name"><a href="ns-8/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         77.8%
    @@ -1146,7 +1209,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.ehcache</a></td>
    +    <td class="name"><a href="ns-7/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.ehcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1174,58 +1237,30 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.caffeine</a></td>
    +    <td class="name"><a href="ns-6/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.collectd</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    89%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (73/82)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    85.9%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (269/313)
       </span>
     </td>
       </tr>
    @@ -1307,7 +1342,7 @@ <h2>Coverage Breakdown</h2>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS.html
    index febcc1696c..938fdd0595 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS.html
    @@ -44,34 +44,34 @@ <h1>Overall Coverage Summary </h1>
         <td class="name">all classes</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.4%
    +    83.7%
       </span>
       <span class="absValue">
    -    (333/381)
    +    (345/412)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.6%
    +    70.5%
       </span>
       <span class="absValue">
    -    (1555/2142)
    +    (1610/2285)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    1.7%
       </span>
       <span class="absValue">
    -    (0/129)
    +    (20/1166)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.6%
    +    55.5%
       </span>
       <span class="absValue">
    -    (5188/6863)
    +    (5396/9723)
       </span>
     </td>
       </tr>
    @@ -131,13 +131,13 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jersey31</a></td>
    +    <td class="name"><a href="ns-4/index_SORT_BY_CLASS.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
     <td class="coverageStat">
       <span class="percent">
         0%
       </span>
       <span class="absValue">
    -    (0/11)
    +    (0/31)
       </span>
     </td>
     <td class="coverageStat">
    @@ -145,7 +145,7 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (0/143)
       </span>
     </td>
     <td class="coverageStat">
    @@ -153,7 +153,7 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (0/1012)
       </span>
     </td>
     <td class="coverageStat">
    @@ -161,12 +161,12 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (0/2860)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_CLASS.html">com.codahale.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_CLASS.html">com.codahale.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -201,7 +201,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-27/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -236,7 +236,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlet6</a></td>
    +    <td class="name"><a href="ns-28/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlet6</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -271,7 +271,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +    <td class="name"><a href="ns-23/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty12.ee10</a></td>
     <td class="coverageStat">
       <span class="percent">
         66.7%
    @@ -306,7 +306,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_CLASS.html">com.codahale.metrics.graphite</a></td>
    +    <td class="name"><a href="ns-8/index_SORT_BY_CLASS.html">com.codahale.metrics.graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         77.8%
    @@ -334,7 +334,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi.strategies</a></td>
    +    <td class="name"><a href="ns-11/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         80%
    @@ -362,7 +362,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_CLASS.html">com.codahale.metrics.httpclient</a></td>
    +    <td class="name"><a href="ns-d/index_SORT_BY_CLASS.html">com.codahale.metrics.httpclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         83.3%
    @@ -390,7 +390,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_CLASS.html">com.codahale.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_CLASS.html">com.codahale.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -418,7 +418,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-29/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -465,10 +465,10 @@ <h2>Coverage Breakdown</h2>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    13%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
    @@ -481,35 +481,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_CLASS.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_CLASS.html">com.codahale.metrics.httpclient5</a></td>
    +    <td class="name"><a href="ns-e/index_SORT_BY_CLASS.html">com.codahale.metrics.httpclient5</a></td>
     <td class="coverageStat">
       <span class="percent">
         90.9%
    @@ -537,7 +509,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_CLASS.html">com.codahale.metrics.jetty9</a></td>
    +    <td class="name"><a href="ns-16/index_SORT_BY_CLASS.html">com.codahale.metrics.jetty9</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -572,7 +544,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty10</a></td>
    +    <td class="name"><a href="ns-20/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty10</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -607,7 +579,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty11</a></td>
    +    <td class="name"><a href="ns-21/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty11</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -670,7 +642,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_CLASS.html">com.codahale.metrics.caffeine</a></td>
    +    <td class="name"><a href="ns-5/index_SORT_BY_CLASS.html">com.codahale.metrics.caffeine</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -687,7 +659,14 @@ <h2>Coverage Breakdown</h2>
         (9/10)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         97%
    @@ -698,7 +677,35 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_CLASS.html">com.codahale.metrics.ehcache</a></td>
    +    <td class="name"><a href="ns-6/index_SORT_BY_CLASS.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-7/index_SORT_BY_CLASS.html">com.codahale.metrics.ehcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -726,7 +733,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_CLASS.html">com.codahale.metrics.health</a></td>
    +    <td class="name"><a href="ns-9/index_SORT_BY_CLASS.html">com.codahale.metrics.health</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -754,7 +761,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_CLASS.html">com.codahale.metrics.health.annotation</a></td>
    +    <td class="name"><a href="ns-a/index_SORT_BY_CLASS.html">com.codahale.metrics.health.annotation</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -782,7 +789,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_CLASS.html">com.codahale.metrics.health.jvm</a></td>
    +    <td class="name"><a href="ns-b/index_SORT_BY_CLASS.html">com.codahale.metrics.health.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -810,7 +817,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_CLASS.html">com.codahale.metrics.httpasyncclient</a></td>
    +    <td class="name"><a href="ns-c/index_SORT_BY_CLASS.html">com.codahale.metrics.httpasyncclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -838,7 +845,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_CLASS.html">com.codahale.metrics.jcache</a></td>
    +    <td class="name"><a href="ns-f/index_SORT_BY_CLASS.html">com.codahale.metrics.jcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -866,7 +873,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi</a></td>
    +    <td class="name"><a href="ns-10/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -894,7 +901,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi3</a></td>
    +    <td class="name"><a href="ns-12/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -922,7 +929,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +    <td class="name"><a href="ns-13/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi3.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -950,7 +957,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_CLASS.html">com.codahale.metrics.jersey2</a></td>
    +    <td class="name"><a href="ns-14/index_SORT_BY_CLASS.html">com.codahale.metrics.jersey2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -978,7 +985,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_CLASS.html">com.codahale.metrics.jersey3</a></td>
    +    <td class="name"><a href="ns-15/index_SORT_BY_CLASS.html">com.codahale.metrics.jersey3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1006,7 +1013,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_CLASS.html">com.codahale.metrics.jmx</a></td>
    +    <td class="name"><a href="ns-17/index_SORT_BY_CLASS.html">com.codahale.metrics.jmx</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1034,7 +1041,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_CLASS.html">com.codahale.metrics.json</a></td>
    +    <td class="name"><a href="ns-18/index_SORT_BY_CLASS.html">com.codahale.metrics.json</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1062,7 +1069,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_CLASS.html">com.codahale.metrics.jvm</a></td>
    +    <td class="name"><a href="ns-19/index_SORT_BY_CLASS.html">com.codahale.metrics.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1090,7 +1097,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_CLASS.html">com.codahale.metrics.log4j2</a></td>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_CLASS.html">com.codahale.metrics.log4j2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1118,7 +1125,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_CLASS.html">com.codahale.metrics.logback</a></td>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_CLASS.html">com.codahale.metrics.logback</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1146,7 +1153,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_CLASS.html">io.dropwizard.metrics.caffeine3</a></td>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_CLASS.html">io.dropwizard.metrics.caffeine3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1174,7 +1181,35 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty12</a></td>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-22/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty12</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1202,7 +1237,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback13</a></td>
    +    <td class="name"><a href="ns-24/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback13</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1230,7 +1265,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback14</a></td>
    +    <td class="name"><a href="ns-25/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback14</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1258,7 +1293,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback15</a></td>
    +    <td class="name"><a href="ns-26/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback15</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1307,7 +1342,7 @@ <h2>Coverage Breakdown</h2>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS_DESC.html
    index 3ed7f533ad..c50973b8e8 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS_DESC.html
    @@ -44,34 +44,34 @@ <h1>Overall Coverage Summary </h1>
         <td class="name">all classes</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.4%
    +    83.7%
       </span>
       <span class="absValue">
    -    (333/381)
    +    (345/412)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.6%
    +    70.5%
       </span>
       <span class="absValue">
    -    (1555/2142)
    +    (1610/2285)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    1.7%
       </span>
       <span class="absValue">
    -    (0/129)
    +    (20/1166)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.6%
    +    55.5%
       </span>
       <span class="absValue">
    -    (5188/6863)
    +    (5396/9723)
       </span>
     </td>
       </tr>
    @@ -103,7 +103,7 @@ <h2>Coverage Breakdown</h2>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback15</a></td>
    +    <td class="name"><a href="ns-26/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback15</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -131,7 +131,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback14</a></td>
    +    <td class="name"><a href="ns-25/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback14</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -159,7 +159,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback13</a></td>
    +    <td class="name"><a href="ns-24/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback13</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -187,7 +187,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    +    <td class="name"><a href="ns-22/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty12</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -215,7 +215,35 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -243,7 +271,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.logback</a></td>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.logback</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -271,7 +299,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.log4j2</a></td>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.log4j2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -299,7 +327,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jvm</a></td>
    +    <td class="name"><a href="ns-19/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -327,7 +355,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.json</a></td>
    +    <td class="name"><a href="ns-18/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.json</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -355,7 +383,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jmx</a></td>
    +    <td class="name"><a href="ns-17/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jmx</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -383,7 +411,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jersey3</a></td>
    +    <td class="name"><a href="ns-15/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jersey3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -411,7 +439,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jersey2</a></td>
    +    <td class="name"><a href="ns-14/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jersey2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -439,7 +467,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +    <td class="name"><a href="ns-13/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -467,7 +495,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi3</a></td>
    +    <td class="name"><a href="ns-12/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -495,7 +523,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi</a></td>
    +    <td class="name"><a href="ns-10/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -523,7 +551,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jcache</a></td>
    +    <td class="name"><a href="ns-f/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -551,7 +579,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    +    <td class="name"><a href="ns-c/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -579,7 +607,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health.jvm</a></td>
    +    <td class="name"><a href="ns-b/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -607,7 +635,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health.annotation</a></td>
    +    <td class="name"><a href="ns-a/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health.annotation</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -635,7 +663,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health</a></td>
    +    <td class="name"><a href="ns-9/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -663,7 +691,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.ehcache</a></td>
    +    <td class="name"><a href="ns-7/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.ehcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -691,7 +719,35 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.caffeine</a></td>
    +    <td class="name"><a href="ns-6/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.collectd</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89%
    +  </span>
    +  <span class="absValue">
    +    (73/82)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.9%
    +  </span>
    +  <span class="absValue">
    +    (269/313)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-5/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.caffeine</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -708,7 +764,14 @@ <h2>Coverage Breakdown</h2>
         (9/10)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         97%
    @@ -747,7 +810,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    +    <td class="name"><a href="ns-21/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty11</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -782,7 +845,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    +    <td class="name"><a href="ns-20/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty10</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -817,7 +880,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jetty9</a></td>
    +    <td class="name"><a href="ns-16/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jetty9</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -852,7 +915,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpclient5</a></td>
    +    <td class="name"><a href="ns-e/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpclient5</a></td>
     <td class="coverageStat">
       <span class="percent">
         90.9%
    @@ -877,34 +940,6 @@ <h2>Coverage Breakdown</h2>
       <span class="absValue">
         (120/162)
       </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
     </td>
       </tr>
       <tr>
    @@ -927,10 +962,10 @@ <h2>Coverage Breakdown</h2>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    13%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
    @@ -943,7 +978,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-29/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -971,7 +1006,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -999,7 +1034,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpclient</a></td>
    +    <td class="name"><a href="ns-d/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         83.3%
    @@ -1027,7 +1062,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    +    <td class="name"><a href="ns-11/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         80%
    @@ -1055,7 +1090,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.graphite</a></td>
    +    <td class="name"><a href="ns-8/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         77.8%
    @@ -1083,7 +1118,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +    <td class="name"><a href="ns-23/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
     <td class="coverageStat">
       <span class="percent">
         66.7%
    @@ -1118,7 +1153,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    +    <td class="name"><a href="ns-28/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlet6</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -1153,7 +1188,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-27/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -1188,7 +1223,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -1223,13 +1258,13 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    +    <td class="name"><a href="ns-4/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
     <td class="coverageStat">
       <span class="percent">
         0%
       </span>
       <span class="absValue">
    -    (0/11)
    +    (0/31)
       </span>
     </td>
     <td class="coverageStat">
    @@ -1237,7 +1272,7 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (0/143)
       </span>
     </td>
     <td class="coverageStat">
    @@ -1245,7 +1280,7 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (0/1012)
       </span>
     </td>
     <td class="coverageStat">
    @@ -1253,7 +1288,7 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (0/2860)
       </span>
     </td>
       </tr>
    @@ -1307,7 +1342,7 @@ <h2>Coverage Breakdown</h2>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE.html
    index e879afa160..c0b07f4334 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE.html
    @@ -44,34 +44,34 @@ <h1>Overall Coverage Summary </h1>
         <td class="name">all classes</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.4%
    +    83.7%
       </span>
       <span class="absValue">
    -    (333/381)
    +    (345/412)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.6%
    +    70.5%
       </span>
       <span class="absValue">
    -    (1555/2142)
    +    (1610/2285)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    1.7%
       </span>
       <span class="absValue">
    -    (0/129)
    +    (20/1166)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.6%
    +    55.5%
       </span>
       <span class="absValue">
    -    (5188/6863)
    +    (5396/9723)
       </span>
     </td>
       </tr>
    @@ -131,13 +131,13 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_LINE.html">io.dropwizard.metrics.jersey31</a></td>
    +    <td class="name"><a href="ns-4/index_SORT_BY_LINE.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
     <td class="coverageStat">
       <span class="percent">
         0%
       </span>
       <span class="absValue">
    -    (0/11)
    +    (0/31)
       </span>
     </td>
     <td class="coverageStat">
    @@ -145,7 +145,7 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (0/143)
       </span>
     </td>
     <td class="coverageStat">
    @@ -153,7 +153,7 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (0/1012)
       </span>
     </td>
     <td class="coverageStat">
    @@ -161,12 +161,12 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (0/2860)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_LINE.html">com.codahale.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_LINE.html">com.codahale.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -201,7 +201,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-27/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -236,7 +236,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlet6</a></td>
    +    <td class="name"><a href="ns-28/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlet6</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -271,7 +271,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +    <td class="name"><a href="ns-23/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty12.ee10</a></td>
     <td class="coverageStat">
       <span class="percent">
         66.7%
    @@ -306,7 +306,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_LINE.html">com.codahale.metrics.graphite</a></td>
    +    <td class="name"><a href="ns-8/index_SORT_BY_LINE.html">com.codahale.metrics.graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         77.8%
    @@ -334,7 +334,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_LINE.html">com.codahale.metrics.jmx</a></td>
    +    <td class="name"><a href="ns-17/index_SORT_BY_LINE.html">com.codahale.metrics.jmx</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -362,7 +362,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_LINE.html">com.codahale.metrics.httpclient</a></td>
    +    <td class="name"><a href="ns-d/index_SORT_BY_LINE.html">com.codahale.metrics.httpclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         83.3%
    @@ -390,7 +390,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_LINE.html">com.codahale.metrics.httpclient5</a></td>
    +    <td class="name"><a href="ns-e/index_SORT_BY_LINE.html">com.codahale.metrics.httpclient5</a></td>
     <td class="coverageStat">
       <span class="percent">
         90.9%
    @@ -418,7 +418,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty10</a></td>
    +    <td class="name"><a href="ns-20/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty10</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -453,7 +453,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty11</a></td>
    +    <td class="name"><a href="ns-21/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty11</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -488,7 +488,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_LINE.html">com.codahale.metrics.jetty9</a></td>
    +    <td class="name"><a href="ns-16/index_SORT_BY_LINE.html">com.codahale.metrics.jetty9</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -523,7 +523,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_LINE.html">com.codahale.metrics.ehcache</a></td>
    +    <td class="name"><a href="ns-7/index_SORT_BY_LINE.html">com.codahale.metrics.ehcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -551,7 +551,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_LINE.html">com.codahale.metrics.httpasyncclient</a></td>
    +    <td class="name"><a href="ns-c/index_SORT_BY_LINE.html">com.codahale.metrics.httpasyncclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -579,7 +579,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-29/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -607,7 +607,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_LINE.html">com.codahale.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_LINE.html">com.codahale.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -635,7 +635,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty12</a></td>
    +    <td class="name"><a href="ns-22/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty12</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -663,58 +663,58 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_LINE.html">com.codahale.metrics.collectd</a></td>
    +    <td class="name"><a href="ns-10/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    100%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    75%
       </span>
       <span class="absValue">
    -    (68/82)
    +    (3/4)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    83.4%
    +    85.7%
       </span>
       <span class="absValue">
    -    (261/313)
    +    (6/7)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi</a></td>
    +    <td class="name"><a href="ns-6/index_SORT_BY_LINE.html">com.codahale.metrics.collectd</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    89%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (73/82)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    85.9%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (269/313)
       </span>
     </td>
       </tr>
    @@ -738,10 +738,10 @@ <h2>Coverage Breakdown</h2>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    13%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
    @@ -754,7 +754,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi3</a></td>
    +    <td class="name"><a href="ns-12/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -782,7 +782,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_LINE.html">com.codahale.metrics.jcache</a></td>
    +    <td class="name"><a href="ns-f/index_SORT_BY_LINE.html">com.codahale.metrics.jcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -810,7 +810,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi.strategies</a></td>
    +    <td class="name"><a href="ns-11/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         80%
    @@ -838,7 +838,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_LINE.html">com.codahale.metrics.health</a></td>
    +    <td class="name"><a href="ns-9/index_SORT_BY_LINE.html">com.codahale.metrics.health</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -866,7 +866,35 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_LINE.html">com.codahale.metrics.jersey2</a></td>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_LINE.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-14/index_SORT_BY_LINE.html">com.codahale.metrics.jersey2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -894,7 +922,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_LINE.html">com.codahale.metrics.jersey3</a></td>
    +    <td class="name"><a href="ns-15/index_SORT_BY_LINE.html">com.codahale.metrics.jersey3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -922,7 +950,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +    <td class="name"><a href="ns-13/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi3.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -950,7 +978,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_LINE.html">com.codahale.metrics.jvm</a></td>
    +    <td class="name"><a href="ns-19/index_SORT_BY_LINE.html">com.codahale.metrics.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -978,7 +1006,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_LINE.html">io.dropwizard.metrics.caffeine3</a></td>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_LINE.html">io.dropwizard.metrics.caffeine3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1006,7 +1034,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_LINE.html">com.codahale.metrics.log4j2</a></td>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_LINE.html">com.codahale.metrics.log4j2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1034,7 +1062,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_LINE.html">com.codahale.metrics.caffeine</a></td>
    +    <td class="name"><a href="ns-5/index_SORT_BY_LINE.html">com.codahale.metrics.caffeine</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1051,7 +1079,14 @@ <h2>Coverage Breakdown</h2>
         (9/10)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         97%
    @@ -1062,7 +1097,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_LINE.html">com.codahale.metrics.json</a></td>
    +    <td class="name"><a href="ns-18/index_SORT_BY_LINE.html">com.codahale.metrics.json</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1118,7 +1153,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_LINE.html">com.codahale.metrics.health.annotation</a></td>
    +    <td class="name"><a href="ns-a/index_SORT_BY_LINE.html">com.codahale.metrics.health.annotation</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1146,7 +1181,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_LINE.html">com.codahale.metrics.health.jvm</a></td>
    +    <td class="name"><a href="ns-b/index_SORT_BY_LINE.html">com.codahale.metrics.health.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1174,7 +1209,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_LINE.html">com.codahale.metrics.logback</a></td>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_LINE.html">com.codahale.metrics.logback</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1202,7 +1237,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback13</a></td>
    +    <td class="name"><a href="ns-24/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback13</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1230,7 +1265,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback14</a></td>
    +    <td class="name"><a href="ns-25/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback14</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1258,7 +1293,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback15</a></td>
    +    <td class="name"><a href="ns-26/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback15</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1307,7 +1342,7 @@ <h2>Coverage Breakdown</h2>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE_DESC.html
    index 5110bf2006..68bc84c994 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE_DESC.html
    @@ -44,34 +44,34 @@ <h1>Overall Coverage Summary </h1>
         <td class="name">all classes</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.4%
    +    83.7%
       </span>
       <span class="absValue">
    -    (333/381)
    +    (345/412)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.6%
    +    70.5%
       </span>
       <span class="absValue">
    -    (1555/2142)
    +    (1610/2285)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    1.7%
       </span>
       <span class="absValue">
    -    (0/129)
    +    (20/1166)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.6%
    +    55.5%
       </span>
       <span class="absValue">
    -    (5188/6863)
    +    (5396/9723)
       </span>
     </td>
       </tr>
    @@ -103,7 +103,7 @@ <h2>Coverage Breakdown</h2>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback15</a></td>
    +    <td class="name"><a href="ns-26/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback15</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -131,7 +131,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback14</a></td>
    +    <td class="name"><a href="ns-25/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback14</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -159,7 +159,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback13</a></td>
    +    <td class="name"><a href="ns-24/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback13</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -187,7 +187,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.logback</a></td>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.logback</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -215,7 +215,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health.jvm</a></td>
    +    <td class="name"><a href="ns-b/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -243,7 +243,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health.annotation</a></td>
    +    <td class="name"><a href="ns-a/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health.annotation</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -299,7 +299,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.json</a></td>
    +    <td class="name"><a href="ns-18/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.json</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -327,7 +327,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.caffeine</a></td>
    +    <td class="name"><a href="ns-5/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.caffeine</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -344,7 +344,14 @@ <h2>Coverage Breakdown</h2>
         (9/10)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         97%
    @@ -355,7 +362,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.log4j2</a></td>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.log4j2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -383,7 +390,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -411,7 +418,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jvm</a></td>
    +    <td class="name"><a href="ns-19/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -439,7 +446,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +    <td class="name"><a href="ns-13/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -467,7 +474,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jersey3</a></td>
    +    <td class="name"><a href="ns-15/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jersey3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -495,7 +502,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jersey2</a></td>
    +    <td class="name"><a href="ns-14/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jersey2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -523,7 +530,35 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health</a></td>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-9/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -551,7 +586,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    +    <td class="name"><a href="ns-11/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         80%
    @@ -579,7 +614,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jcache</a></td>
    +    <td class="name"><a href="ns-f/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -607,7 +642,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi3</a></td>
    +    <td class="name"><a href="ns-12/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -654,10 +689,10 @@ <h2>Coverage Breakdown</h2>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    13%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
    @@ -670,63 +705,63 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi</a></td>
    +    <td class="name"><a href="ns-6/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.collectd</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    89%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (73/82)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    85.9%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (269/313)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.collectd</a></td>
    +    <td class="name"><a href="ns-10/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    100%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    75%
       </span>
       <span class="absValue">
    -    (68/82)
    +    (3/4)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    83.4%
    +    85.7%
       </span>
       <span class="absValue">
    -    (261/313)
    +    (6/7)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    +    <td class="name"><a href="ns-22/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty12</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -754,7 +789,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -782,7 +817,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-29/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -810,7 +845,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    +    <td class="name"><a href="ns-c/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -838,7 +873,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.ehcache</a></td>
    +    <td class="name"><a href="ns-7/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.ehcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -866,7 +901,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jetty9</a></td>
    +    <td class="name"><a href="ns-16/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jetty9</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -901,7 +936,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    +    <td class="name"><a href="ns-21/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty11</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -936,7 +971,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    +    <td class="name"><a href="ns-20/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty10</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -971,7 +1006,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpclient5</a></td>
    +    <td class="name"><a href="ns-e/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpclient5</a></td>
     <td class="coverageStat">
       <span class="percent">
         90.9%
    @@ -999,7 +1034,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpclient</a></td>
    +    <td class="name"><a href="ns-d/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         83.3%
    @@ -1027,7 +1062,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jmx</a></td>
    +    <td class="name"><a href="ns-17/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jmx</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1055,7 +1090,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.graphite</a></td>
    +    <td class="name"><a href="ns-8/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         77.8%
    @@ -1083,7 +1118,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +    <td class="name"><a href="ns-23/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
     <td class="coverageStat">
       <span class="percent">
         66.7%
    @@ -1118,7 +1153,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    +    <td class="name"><a href="ns-28/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlet6</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -1153,7 +1188,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-27/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -1188,7 +1223,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -1223,13 +1258,13 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    +    <td class="name"><a href="ns-4/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
     <td class="coverageStat">
       <span class="percent">
         0%
       </span>
       <span class="absValue">
    -    (0/11)
    +    (0/31)
       </span>
     </td>
     <td class="coverageStat">
    @@ -1237,7 +1272,7 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (0/143)
       </span>
     </td>
     <td class="coverageStat">
    @@ -1245,7 +1280,7 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (0/1012)
       </span>
     </td>
     <td class="coverageStat">
    @@ -1253,7 +1288,7 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (0/2860)
       </span>
     </td>
       </tr>
    @@ -1307,7 +1342,7 @@ <h2>Coverage Breakdown</h2>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD.html
    index cca065aff7..06e82613be 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD.html
    @@ -44,34 +44,34 @@ <h1>Overall Coverage Summary </h1>
         <td class="name">all classes</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.4%
    +    83.7%
       </span>
       <span class="absValue">
    -    (333/381)
    +    (345/412)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.6%
    +    70.5%
       </span>
       <span class="absValue">
    -    (1555/2142)
    +    (1610/2285)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    1.7%
       </span>
       <span class="absValue">
    -    (0/129)
    +    (20/1166)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.6%
    +    55.5%
       </span>
       <span class="absValue">
    -    (5188/6863)
    +    (5396/9723)
       </span>
     </td>
       </tr>
    @@ -131,13 +131,13 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jersey31</a></td>
    +    <td class="name"><a href="ns-4/index_SORT_BY_METHOD.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
     <td class="coverageStat">
       <span class="percent">
         0%
       </span>
       <span class="absValue">
    -    (0/11)
    +    (0/31)
       </span>
     </td>
     <td class="coverageStat">
    @@ -145,7 +145,7 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (0/143)
       </span>
     </td>
     <td class="coverageStat">
    @@ -153,7 +153,7 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (0/1012)
       </span>
     </td>
     <td class="coverageStat">
    @@ -161,12 +161,12 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (0/2860)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_METHOD.html">com.codahale.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_METHOD.html">com.codahale.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -201,7 +201,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-27/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -236,7 +236,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlet6</a></td>
    +    <td class="name"><a href="ns-28/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlet6</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -271,7 +271,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +    <td class="name"><a href="ns-23/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty12.ee10</a></td>
     <td class="coverageStat">
       <span class="percent">
         66.7%
    @@ -306,7 +306,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_METHOD.html">com.codahale.metrics.httpclient</a></td>
    +    <td class="name"><a href="ns-d/index_SORT_BY_METHOD.html">com.codahale.metrics.httpclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         83.3%
    @@ -334,7 +334,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty10</a></td>
    +    <td class="name"><a href="ns-20/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty10</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -369,7 +369,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty11</a></td>
    +    <td class="name"><a href="ns-21/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty11</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -404,7 +404,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_METHOD.html">com.codahale.metrics.jetty9</a></td>
    +    <td class="name"><a href="ns-16/index_SORT_BY_METHOD.html">com.codahale.metrics.jetty9</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -439,7 +439,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_METHOD.html">com.codahale.metrics.httpasyncclient</a></td>
    +    <td class="name"><a href="ns-c/index_SORT_BY_METHOD.html">com.codahale.metrics.httpasyncclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -467,7 +467,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_METHOD.html">com.codahale.metrics.graphite</a></td>
    +    <td class="name"><a href="ns-8/index_SORT_BY_METHOD.html">com.codahale.metrics.graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         77.8%
    @@ -495,7 +495,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_METHOD.html">com.codahale.metrics.httpclient5</a></td>
    +    <td class="name"><a href="ns-e/index_SORT_BY_METHOD.html">com.codahale.metrics.httpclient5</a></td>
     <td class="coverageStat">
       <span class="percent">
         90.9%
    @@ -523,7 +523,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty12</a></td>
    +    <td class="name"><a href="ns-22/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty12</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -551,7 +551,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi</a></td>
    +    <td class="name"><a href="ns-10/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -579,7 +579,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi3</a></td>
    +    <td class="name"><a href="ns-12/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -626,10 +626,10 @@ <h2>Coverage Breakdown</h2>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    13%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
    @@ -642,7 +642,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_METHOD.html">com.codahale.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_METHOD.html">com.codahale.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -670,7 +670,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-29/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -698,147 +698,147 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_METHOD.html">com.codahale.metrics.collectd</a></td>
    +    <td class="name"><a href="ns-7/index_SORT_BY_METHOD.html">com.codahale.metrics.ehcache</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    100%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    85.2%
       </span>
       <span class="absValue">
    -    (68/82)
    +    (23/27)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    83.4%
    +    75.8%
       </span>
       <span class="absValue">
    -    (261/313)
    +    (50/66)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_METHOD.html">com.codahale.metrics.ehcache</a></td>
    +    <td class="name"><a href="ns-17/index_SORT_BY_METHOD.html">com.codahale.metrics.jmx</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.2%
    +    86.7%
       </span>
       <span class="absValue">
    -    (23/27)
    +    (78/90)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    75.8%
    +    71.2%
       </span>
       <span class="absValue">
    -    (50/66)
    +    (168/236)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_METHOD.html">com.codahale.metrics.jmx</a></td>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_METHOD.html">io.dropwizard.metrics.caffeine3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86.7%
    +    87.5%
       </span>
       <span class="absValue">
    -    (78/90)
    +    (7/8)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    96.6%
       </span>
       <span class="absValue">
    -    (168/236)
    +    (28/29)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_METHOD.html">io.dropwizard.metrics.caffeine3</a></td>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_METHOD.html">com.codahale.metrics.log4j2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    88.9%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (8/9)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    96.8%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (30/31)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_METHOD.html">com.codahale.metrics.log4j2</a></td>
    +    <td class="name"><a href="ns-6/index_SORT_BY_METHOD.html">com.codahale.metrics.collectd</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    89%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (73/82)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    85.9%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (269/313)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_METHOD.html">com.codahale.metrics.caffeine</a></td>
    +    <td class="name"><a href="ns-5/index_SORT_BY_METHOD.html">com.codahale.metrics.caffeine</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -855,7 +855,14 @@ <h2>Coverage Breakdown</h2>
         (9/10)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         97%
    @@ -866,7 +873,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi.strategies</a></td>
    +    <td class="name"><a href="ns-11/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         80%
    @@ -894,7 +901,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_METHOD.html">com.codahale.metrics.jersey2</a></td>
    +    <td class="name"><a href="ns-14/index_SORT_BY_METHOD.html">com.codahale.metrics.jersey2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -922,7 +929,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_METHOD.html">com.codahale.metrics.jersey3</a></td>
    +    <td class="name"><a href="ns-15/index_SORT_BY_METHOD.html">com.codahale.metrics.jersey3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -950,7 +957,35 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_METHOD.html">com.codahale.metrics.json</a></td>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-18/index_SORT_BY_METHOD.html">com.codahale.metrics.json</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -978,7 +1013,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_METHOD.html">com.codahale.metrics.health</a></td>
    +    <td class="name"><a href="ns-9/index_SORT_BY_METHOD.html">com.codahale.metrics.health</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1006,7 +1041,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_METHOD.html">com.codahale.metrics.jvm</a></td>
    +    <td class="name"><a href="ns-19/index_SORT_BY_METHOD.html">com.codahale.metrics.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1062,7 +1097,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_METHOD.html">com.codahale.metrics.health.annotation</a></td>
    +    <td class="name"><a href="ns-a/index_SORT_BY_METHOD.html">com.codahale.metrics.health.annotation</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1090,7 +1125,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_METHOD.html">com.codahale.metrics.health.jvm</a></td>
    +    <td class="name"><a href="ns-b/index_SORT_BY_METHOD.html">com.codahale.metrics.health.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1118,7 +1153,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_METHOD.html">com.codahale.metrics.jcache</a></td>
    +    <td class="name"><a href="ns-f/index_SORT_BY_METHOD.html">com.codahale.metrics.jcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1146,7 +1181,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +    <td class="name"><a href="ns-13/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi3.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1174,7 +1209,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_METHOD.html">com.codahale.metrics.logback</a></td>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_METHOD.html">com.codahale.metrics.logback</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1202,7 +1237,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback13</a></td>
    +    <td class="name"><a href="ns-24/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback13</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1230,7 +1265,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback14</a></td>
    +    <td class="name"><a href="ns-25/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback14</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1258,7 +1293,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback15</a></td>
    +    <td class="name"><a href="ns-26/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback15</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1307,7 +1342,7 @@ <h2>Coverage Breakdown</h2>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD_DESC.html
    index 8a72da2afd..c31aeaaaae 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD_DESC.html
    @@ -44,34 +44,34 @@ <h1>Overall Coverage Summary </h1>
         <td class="name">all classes</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.4%
    +    83.7%
       </span>
       <span class="absValue">
    -    (333/381)
    +    (345/412)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.6%
    +    70.5%
       </span>
       <span class="absValue">
    -    (1555/2142)
    +    (1610/2285)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    1.7%
       </span>
       <span class="absValue">
    -    (0/129)
    +    (20/1166)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.6%
    +    55.5%
       </span>
       <span class="absValue">
    -    (5188/6863)
    +    (5396/9723)
       </span>
     </td>
       </tr>
    @@ -103,7 +103,7 @@ <h2>Coverage Breakdown</h2>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback15</a></td>
    +    <td class="name"><a href="ns-26/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback15</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -131,7 +131,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback14</a></td>
    +    <td class="name"><a href="ns-25/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback14</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -159,7 +159,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback13</a></td>
    +    <td class="name"><a href="ns-24/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback13</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -187,7 +187,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.logback</a></td>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.logback</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -215,7 +215,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +    <td class="name"><a href="ns-13/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -243,7 +243,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jcache</a></td>
    +    <td class="name"><a href="ns-f/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -271,7 +271,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health.jvm</a></td>
    +    <td class="name"><a href="ns-b/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -299,7 +299,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health.annotation</a></td>
    +    <td class="name"><a href="ns-a/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health.annotation</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -355,7 +355,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jvm</a></td>
    +    <td class="name"><a href="ns-19/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -383,7 +383,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health</a></td>
    +    <td class="name"><a href="ns-9/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -411,7 +411,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.json</a></td>
    +    <td class="name"><a href="ns-18/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.json</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -439,7 +439,35 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jersey3</a></td>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (50/53)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.3%
    +  </span>
    +  <span class="absValue">
    +    (200/212)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-15/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jersey3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -467,7 +495,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jersey2</a></td>
    +    <td class="name"><a href="ns-14/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jersey2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -495,7 +523,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    +    <td class="name"><a href="ns-11/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         80%
    @@ -523,7 +551,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.caffeine</a></td>
    +    <td class="name"><a href="ns-5/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.caffeine</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -540,7 +568,14 @@ <h2>Coverage Breakdown</h2>
         (9/10)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         97%
    @@ -551,147 +586,147 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.log4j2</a></td>
    +    <td class="name"><a href="ns-6/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.collectd</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    89%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (73/82)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    85.9%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (269/313)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.log4j2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    88.9%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (8/9)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    96.8%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (30/31)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jmx</a></td>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86.7%
    +    87.5%
       </span>
       <span class="absValue">
    -    (78/90)
    +    (7/8)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    96.6%
       </span>
       <span class="absValue">
    -    (168/236)
    +    (28/29)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.ehcache</a></td>
    +    <td class="name"><a href="ns-17/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jmx</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.2%
    +    86.7%
       </span>
       <span class="absValue">
    -    (23/27)
    +    (78/90)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    75.8%
    +    71.2%
       </span>
       <span class="absValue">
    -    (50/66)
    +    (168/236)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.collectd</a></td>
    +    <td class="name"><a href="ns-7/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.ehcache</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    100%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    85.2%
       </span>
       <span class="absValue">
    -    (68/82)
    +    (23/27)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    83.4%
    +    75.8%
       </span>
       <span class="absValue">
    -    (261/313)
    +    (50/66)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-29/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -719,7 +754,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -766,10 +801,10 @@ <h2>Coverage Breakdown</h2>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    13%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
    @@ -782,7 +817,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi3</a></td>
    +    <td class="name"><a href="ns-12/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -810,7 +845,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi</a></td>
    +    <td class="name"><a href="ns-10/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -838,7 +873,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    +    <td class="name"><a href="ns-22/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty12</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -866,7 +901,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpclient5</a></td>
    +    <td class="name"><a href="ns-e/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpclient5</a></td>
     <td class="coverageStat">
       <span class="percent">
         90.9%
    @@ -894,7 +929,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.graphite</a></td>
    +    <td class="name"><a href="ns-8/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         77.8%
    @@ -922,7 +957,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    +    <td class="name"><a href="ns-c/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -950,7 +985,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jetty9</a></td>
    +    <td class="name"><a href="ns-16/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jetty9</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -985,7 +1020,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    +    <td class="name"><a href="ns-21/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty11</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -1020,7 +1055,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    +    <td class="name"><a href="ns-20/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty10</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -1055,7 +1090,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpclient</a></td>
    +    <td class="name"><a href="ns-d/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         83.3%
    @@ -1083,7 +1118,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +    <td class="name"><a href="ns-23/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
     <td class="coverageStat">
       <span class="percent">
         66.7%
    @@ -1118,7 +1153,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    +    <td class="name"><a href="ns-28/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlet6</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -1153,7 +1188,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-27/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -1188,7 +1223,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -1223,13 +1258,13 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    +    <td class="name"><a href="ns-4/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
     <td class="coverageStat">
       <span class="percent">
         0%
       </span>
       <span class="absValue">
    -    (0/11)
    +    (0/31)
       </span>
     </td>
     <td class="coverageStat">
    @@ -1237,7 +1272,7 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (0/143)
       </span>
     </td>
     <td class="coverageStat">
    @@ -1245,7 +1280,7 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (0/1012)
       </span>
     </td>
     <td class="coverageStat">
    @@ -1253,7 +1288,7 @@ <h2>Coverage Breakdown</h2>
         0%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (0/2860)
       </span>
     </td>
       </tr>
    @@ -1307,7 +1342,7 @@ <h2>Coverage Breakdown</h2>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_NAME_DESC.html
    index 6a14960f07..ec1dcb592b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_NAME_DESC.html
    @@ -44,34 +44,34 @@ <h1>Overall Coverage Summary </h1>
         <td class="name">all classes</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.4%
    +    83.7%
       </span>
       <span class="absValue">
    -    (333/381)
    +    (345/412)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.6%
    +    70.5%
       </span>
       <span class="absValue">
    -    (1555/2142)
    +    (1610/2285)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    1.7%
       </span>
       <span class="absValue">
    -    (0/129)
    +    (20/1166)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.6%
    +    55.5%
       </span>
       <span class="absValue">
    -    (5188/6863)
    +    (5396/9723)
       </span>
     </td>
       </tr>
    @@ -103,7 +103,7 @@ <h2>Coverage Breakdown</h2>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-29/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -131,7 +131,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    +    <td class="name"><a href="ns-28/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlet6</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -166,7 +166,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-27/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -201,7 +201,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback15</a></td>
    +    <td class="name"><a href="ns-26/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback15</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -229,7 +229,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback14</a></td>
    +    <td class="name"><a href="ns-25/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback14</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -257,7 +257,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback13</a></td>
    +    <td class="name"><a href="ns-24/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback13</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -285,7 +285,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    +    <td class="name"><a href="ns-23/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
     <td class="coverageStat">
       <span class="percent">
         66.7%
    @@ -320,7 +320,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    +    <td class="name"><a href="ns-22/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty12</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -348,7 +348,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    +    <td class="name"><a href="ns-21/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty11</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -383,7 +383,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    +    <td class="name"><a href="ns-20/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty10</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -418,42 +418,35 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    +    <td class="name"><a href="ns-1f/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jersey31</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (50/53)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (200/212)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    +    <td class="name"><a href="ns-1e/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -481,7 +474,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.servlets</a></td>
    +    <td class="name"><a href="ns-1d/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.servlets</a></td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -509,7 +502,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.servlet</a></td>
    +    <td class="name"><a href="ns-1c/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.servlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -544,7 +537,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.logback</a></td>
    +    <td class="name"><a href="ns-1b/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.logback</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -572,7 +565,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.log4j2</a></td>
    +    <td class="name"><a href="ns-1a/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.log4j2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -600,7 +593,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jvm</a></td>
    +    <td class="name"><a href="ns-19/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -628,7 +621,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.json</a></td>
    +    <td class="name"><a href="ns-18/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.json</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -656,7 +649,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jmx</a></td>
    +    <td class="name"><a href="ns-17/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jmx</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -684,7 +677,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jetty9</a></td>
    +    <td class="name"><a href="ns-16/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jetty9</a></td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -719,7 +712,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jersey3</a></td>
    +    <td class="name"><a href="ns-15/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jersey3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -747,7 +740,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jersey2</a></td>
    +    <td class="name"><a href="ns-14/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jersey2</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -775,7 +768,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    +    <td class="name"><a href="ns-13/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -803,7 +796,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi3</a></td>
    +    <td class="name"><a href="ns-12/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi3</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -831,7 +824,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    +    <td class="name"><a href="ns-11/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         80%
    @@ -859,7 +852,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi</a></td>
    +    <td class="name"><a href="ns-10/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -887,7 +880,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jcache</a></td>
    +    <td class="name"><a href="ns-f/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -915,7 +908,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpclient5</a></td>
    +    <td class="name"><a href="ns-e/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpclient5</a></td>
     <td class="coverageStat">
       <span class="percent">
         90.9%
    @@ -943,7 +936,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpclient</a></td>
    +    <td class="name"><a href="ns-d/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         83.3%
    @@ -971,7 +964,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    +    <td class="name"><a href="ns-c/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -999,7 +992,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health.jvm</a></td>
    +    <td class="name"><a href="ns-b/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health.jvm</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1027,7 +1020,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health.annotation</a></td>
    +    <td class="name"><a href="ns-a/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health.annotation</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1055,7 +1048,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health</a></td>
    +    <td class="name"><a href="ns-9/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1083,7 +1076,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.graphite</a></td>
    +    <td class="name"><a href="ns-8/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         77.8%
    @@ -1111,7 +1104,7 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.ehcache</a></td>
    +    <td class="name"><a href="ns-7/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.ehcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1139,35 +1132,35 @@ <h2>Coverage Breakdown</h2>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.collectd</a></td>
    +    <td class="name"><a href="ns-6/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.collectd</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    100%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    89%
       </span>
       <span class="absValue">
    -    (68/82)
    +    (73/82)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    83.4%
    +    85.9%
       </span>
       <span class="absValue">
    -    (261/313)
    +    (269/313)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.caffeine</a></td>
    +    <td class="name"><a href="ns-5/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.caffeine</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1184,7 +1177,14 @@ <h2>Coverage Breakdown</h2>
         (9/10)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         97%
    @@ -1192,6 +1192,41 @@ <h2>Coverage Breakdown</h2>
       <span class="absValue">
         (32/33)
       </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="ns-4/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/143)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1012)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2860)
    +  </span>
     </td>
       </tr>
       <tr>
    @@ -1270,10 +1305,10 @@ <h2>Coverage Breakdown</h2>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    13%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
    @@ -1307,7 +1342,7 @@ <h2>Coverage Breakdown</h2>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index.html
    index e8e4ad4031..ca7c49758a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index.html
    @@ -61,10 +61,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    13%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
    @@ -345,7 +345,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (8/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -373,7 +380,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (7/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         96%
    @@ -401,7 +415,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (16/16)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         96.7%
    @@ -597,7 +618,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (10/11)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         95.7%
    @@ -681,7 +709,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (76/83)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         90.7%
    @@ -1115,7 +1150,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (20/20)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         94.9%
    @@ -1199,7 +1241,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (10/10)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         98.2%
    @@ -1232,7 +1281,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK.html
    index 411eecf70b..204e22f774 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK.html
    @@ -61,10 +61,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    13%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
    @@ -325,90 +325,6 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
       <span class="absValue">
         (3/3)
       </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
     </td>
       </tr>
       <tr>
    @@ -577,34 +493,6 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
       <span class="absValue">
         (75/80)
       </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
     </td>
       </tr>
       <tr>
    @@ -661,34 +549,6 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
       <span class="absValue">
         (4/4)
       </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
     </td>
       </tr>
       <tr>
    @@ -1028,13 +888,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
    @@ -1042,21 +902,21 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         100%
       </span>
       <span class="absValue">
    -    (20/20)
    +    (5/5)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    94.9%
    +    95.5%
       </span>
       <span class="absValue">
    -    (37/39)
    +    (21/22)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1070,21 +930,21 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         100%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (10/10)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    95.5%
    +    98%
       </span>
       <span class="absValue">
    -    (21/22)
    +    (48/49)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1098,44 +958,58 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (8/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    98%
    +    0%
       </span>
       <span class="absValue">
    -    (48/49)
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90.9%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (10/11)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    98.2%
    +    0%
       </span>
       <span class="absValue">
    -    (54/55)
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
       </span>
     </td>
       </tr>
    @@ -1207,6 +1081,181 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
       <span class="absValue">
         (0/10)
       </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
     </td>
       </tr>
     </table>
    @@ -1232,7 +1281,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
    index bd225e5eac..67b0b7d335 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
    @@ -61,10 +61,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    13%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
    @@ -103,6 +103,181 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.9%
    +  </span>
    +  <span class="absValue">
    +    (37/39)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.6%
    +  </span>
    +  <span class="absValue">
    +    (76/83)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.7%
    +  </span>
    +  <span class="absValue">
    +    (147/162)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    98.2%
    +  </span>
    +  <span class="absValue">
    +    (54/55)
    +  </span>
    +</td>
    +  </tr>
       <tr>
         <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
     <td class="coverageStat">
    @@ -174,35 +349,42 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    +    <td class="name"><a href="sources/source-12.html">Meter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90.9%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (10/11)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    98.2%
    +    0%
       </span>
       <span class="absValue">
    -    (54/55)
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    +    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -216,21 +398,28 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (8/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    98%
    +    0%
       </span>
       <span class="absValue">
    -    (48/49)
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    +    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -244,27 +433,27 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         100%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (10/10)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    95.5%
    +    98%
       </span>
       <span class="absValue">
    -    (21/22)
    +    (48/49)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    +    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
    @@ -272,16 +461,16 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         100%
       </span>
       <span class="absValue">
    -    (20/20)
    +    (5/5)
       </span>
     </td>
         <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    94.9%
    +    95.5%
       </span>
       <span class="absValue">
    -    (37/39)
    +    (21/22)
       </span>
     </td>
       </tr>
    @@ -619,34 +808,6 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
       <span class="absValue">
         (11/11)
       </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
     </td>
       </tr>
       <tr>
    @@ -703,34 +864,6 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
       <span class="absValue">
         (19/19)
       </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
     </td>
       </tr>
       <tr>
    @@ -899,90 +1032,6 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
       <span class="absValue">
         (3/3)
       </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
     </td>
       </tr>
       <tr>
    @@ -1232,7 +1281,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS.html
    index f141717257..697f08edf5 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS.html
    @@ -61,10 +61,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    13%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
    @@ -499,7 +499,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (8/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -527,7 +534,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (7/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         96%
    @@ -555,7 +569,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (16/16)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         96.7%
    @@ -751,7 +772,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (10/11)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         95.7%
    @@ -835,7 +863,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (76/83)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         90.7%
    @@ -1115,7 +1150,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (20/20)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         94.9%
    @@ -1199,7 +1241,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (10/10)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         98.2%
    @@ -1232,7 +1281,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
    index 1625ff1c98..7be19bda33 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
    @@ -61,10 +61,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    13%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
    @@ -121,7 +121,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (10/10)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         98.2%
    @@ -205,7 +212,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (20/20)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         94.9%
    @@ -485,7 +499,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (76/83)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         90.7%
    @@ -569,7 +590,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (10/11)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         95.7%
    @@ -765,7 +793,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (16/16)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         96.7%
    @@ -793,7 +828,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (7/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         96%
    @@ -821,7 +863,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (8/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1232,7 +1281,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE.html
    index 432d6d826e..5779106f81 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE.html
    @@ -61,10 +61,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    13%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
    @@ -387,7 +387,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (76/83)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         90.7%
    @@ -527,7 +534,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (20/20)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         94.9%
    @@ -583,7 +597,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (10/11)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         95.7%
    @@ -639,7 +660,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (7/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         96%
    @@ -695,7 +723,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (16/16)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         96.7%
    @@ -779,7 +814,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (10/10)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         98.2%
    @@ -947,7 +989,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (8/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1232,7 +1281,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
    index d0a925d382..abe668aecc 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
    @@ -61,10 +61,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    13%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
    @@ -373,7 +373,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (8/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -541,7 +548,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (10/10)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         98.2%
    @@ -625,7 +639,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (16/16)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         96.7%
    @@ -681,7 +702,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (7/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         96%
    @@ -737,7 +765,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (10/11)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         95.7%
    @@ -793,7 +828,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (20/20)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         94.9%
    @@ -933,7 +975,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (76/83)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         90.7%
    @@ -1232,7 +1281,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD.html
    index a64b40727e..d5d0b517fd 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD.html
    @@ -61,10 +61,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    13%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
    @@ -387,7 +387,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (7/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         96%
    @@ -471,7 +478,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (10/11)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         95.7%
    @@ -499,7 +513,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (76/83)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         90.7%
    @@ -779,7 +800,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (8/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -807,7 +835,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (16/16)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         96.7%
    @@ -1115,7 +1150,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (20/20)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         94.9%
    @@ -1199,7 +1241,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (10/10)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         98.2%
    @@ -1232,7 +1281,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
    index 57fa666c8f..5e234bdf4c 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
    @@ -61,10 +61,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    13%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
    @@ -121,7 +121,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (10/10)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         98.2%
    @@ -205,7 +212,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (20/20)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         94.9%
    @@ -513,7 +527,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (16/16)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         96.7%
    @@ -541,7 +562,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (8/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -821,7 +849,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (76/83)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         90.7%
    @@ -849,7 +884,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (10/11)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         95.7%
    @@ -933,7 +975,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (7/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         96%
    @@ -1232,7 +1281,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
    index 4b2d1f03a1..a48284a0df 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
    @@ -61,10 +61,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    13%
       </span>
       <span class="absValue">
    -    (0/4)
    +    (18/138)
       </span>
     </td>
     <td class="coverageStat">
    @@ -121,7 +121,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (10/10)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         98.2%
    @@ -205,7 +212,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (20/20)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         94.9%
    @@ -639,7 +653,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (76/83)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         90.7%
    @@ -723,7 +744,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (10/11)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         95.7%
    @@ -919,7 +947,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (16/16)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         96.7%
    @@ -947,7 +982,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (7/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         96%
    @@ -975,7 +1017,14 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
         (8/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -1232,7 +1281,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1.html
    index 061e94252c..3ccec9c910 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1.html
    @@ -172,7 +172,7 @@ <h1>Coverage Summary for Class: CachedGauge (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-10.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-10.html
    index d4241a2964..6726234251 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-10.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-10.html
    @@ -197,7 +197,7 @@ <h1>Coverage Summary for Class: InstrumentedThreadFactory (com.codahale.metrics)
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-11.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-11.html
    index ce2aa50210..9cc4c087ad 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-11.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-11.html
    @@ -435,7 +435,7 @@ <h1>Coverage Summary for Class: LockFreeExponentiallyDecayingReservoir (com.coda
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-12.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-12.html
    index 44389d5bf6..fa0376762b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-12.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-12.html
    @@ -36,6 +36,10 @@ <h1>Coverage Summary for Class: Meter (com.codahale.metrics)</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
    @@ -58,6 +62,14 @@ <h1>Coverage Summary for Class: Meter (com.codahale.metrics)</h1>
         (10/11)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         95.7%
    @@ -167,7 +179,7 @@ <h1>Coverage Summary for Class: Meter (com.codahale.metrics)</h1>
     &nbsp;
     &nbsp;    @Override
     &nbsp;    public double getMeanRate() {
    -<b class="fc">&nbsp;        if (getCount() == 0) {</b>
    +<b class="pc">&nbsp;        if (getCount() == 0) {</b>
     <b class="fc">&nbsp;            return 0.0;</b>
     &nbsp;        } else {
     <b class="fc">&nbsp;            final double elapsed = clock.getTick() - startTime;</b>
    @@ -204,7 +216,7 @@ <h1>Coverage Summary for Class: Meter (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-13.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-13.html
    index 2cfb95d683..8c9aad9fee 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-13.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-13.html
    @@ -131,7 +131,7 @@ <h1>Coverage Summary for Class: MetricAttribute (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-14.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-14.html
    index 01fc57deb0..aeb8a2f485 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-14.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-14.html
    @@ -130,7 +130,7 @@ <h1>Coverage Summary for Class: MetricFilter (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-15.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-15.html
    index 129376d963..8d733eb502 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-15.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-15.html
    @@ -33,6 +33,10 @@ <h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
    @@ -47,6 +51,14 @@ <h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
         (41/41)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         93.1%
    @@ -297,6 +309,14 @@ <h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
         (76/83)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.2%
    +  </span>
    +  <span class="absValue">
    +    (14/66)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         90.7%
    @@ -340,7 +360,7 @@ <h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
     &nbsp;    public static String name(String name, String... names) {
     <b class="fc">&nbsp;        final StringBuilder builder = new StringBuilder();</b>
     <b class="fc">&nbsp;        append(builder, name);</b>
    -<b class="fc">&nbsp;        if (names != null) {</b>
    +<b class="pc">&nbsp;        if (names != null) {</b>
     <b class="fc">&nbsp;            for (String s : names) {</b>
     <b class="fc">&nbsp;                append(builder, s);</b>
     &nbsp;            }
    @@ -361,7 +381,7 @@ <h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
     &nbsp;    }
     &nbsp;
     &nbsp;    private static void append(StringBuilder builder, String part) {
    -<b class="fc">&nbsp;        if (part != null &amp;&amp; !part.isEmpty()) {</b>
    +<b class="pc">&nbsp;        if (part != null &amp;&amp; !part.isEmpty()) {</b>
     <b class="fc">&nbsp;            if (builder.length() &gt; 0) {</b>
     <b class="fc">&nbsp;                builder.append(&#39;.&#39;);</b>
     &nbsp;            }
    @@ -415,11 +435,11 @@ <h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
     &nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
     &nbsp;    public &lt;T extends Metric&gt; T register(String name, T metric) throws IllegalArgumentException {
     &nbsp;
    -<b class="fc">&nbsp;        if (metric == null) {</b>
    +<b class="pc">&nbsp;        if (metric == null) {</b>
     <b class="fc">&nbsp;            throw new NullPointerException(&quot;metric == null&quot;);</b>
     &nbsp;        }
     &nbsp;
    -<b class="fc">&nbsp;        if (metric instanceof MetricRegistry) {</b>
    +<b class="pc">&nbsp;        if (metric instanceof MetricRegistry) {</b>
     <b class="fc">&nbsp;            final MetricRegistry childRegistry = (MetricRegistry) metric;</b>
     <b class="fc">&nbsp;            final String childName = name;</b>
     <b class="fc">&nbsp;            childRegistry.addListener(new MetricRegistryListener() {</b>
    @@ -473,11 +493,11 @@ <h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
     <b class="nc">&nbsp;                    remove(name(childName, name));</b>
     &nbsp;                }
     &nbsp;            });
    -<b class="fc">&nbsp;        } else if (metric instanceof MetricSet) {</b>
    +<b class="pc">&nbsp;        } else if (metric instanceof MetricSet) {</b>
     <b class="fc">&nbsp;            registerAll(name, (MetricSet) metric);</b>
     &nbsp;        } else {
     <b class="fc">&nbsp;            final Metric existing = metrics.putIfAbsent(name, metric);</b>
    -<b class="fc">&nbsp;            if (existing == null) {</b>
    +<b class="pc">&nbsp;            if (existing == null) {</b>
     <b class="fc">&nbsp;                onMetricAdded(name, metric);</b>
     &nbsp;            } else {
     <b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;A metric named &quot; + name + &quot; already exists&quot;);</b>
    @@ -673,7 +693,7 @@ <h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
     &nbsp;     */
     &nbsp;    public boolean remove(String name) {
     <b class="fc">&nbsp;        final Metric metric = metrics.remove(name);</b>
    -<b class="fc">&nbsp;        if (metric != null) {</b>
    +<b class="pc">&nbsp;        if (metric != null) {</b>
     <b class="fc">&nbsp;            onMetricRemoved(name, metric);</b>
     <b class="fc">&nbsp;            return true;</b>
     &nbsp;        }
    @@ -686,8 +706,8 @@ <h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
     &nbsp;     * @param filter a filter
     &nbsp;     */
     &nbsp;    public void removeMatching(MetricFilter filter) {
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    -<b class="fc">&nbsp;            if (filter.matches(entry.getKey(), entry.getValue())) {</b>
    +<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    +<b class="pc">&nbsp;            if (filter.matches(entry.getKey(), entry.getValue())) {</b>
     <b class="fc">&nbsp;                remove(entry.getKey());</b>
     &nbsp;            }
     <b class="fc">&nbsp;        }</b>
    @@ -704,7 +724,7 @@ <h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
     &nbsp;    public void addListener(MetricRegistryListener listener) {
     <b class="fc">&nbsp;        listeners.add(listener);</b>
     &nbsp;
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    +<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
     <b class="fc">&nbsp;            notifyListenerOfAddedMetric(listener, entry.getValue(), entry.getKey());</b>
     <b class="fc">&nbsp;        }</b>
     &nbsp;    }
    @@ -831,7 +851,7 @@ <h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
     <b class="fc">&nbsp;        final Metric metric = metrics.get(name);</b>
     <b class="fc">&nbsp;        if (builder.isInstance(metric)) {</b>
     <b class="fc">&nbsp;            return (T) metric;</b>
    -<b class="fc">&nbsp;        } else if (metric == null) {</b>
    +<b class="pc">&nbsp;        } else if (metric == null) {</b>
     &nbsp;            try {
     <b class="fc">&nbsp;                return register(name, builder.newMetric());</b>
     <b class="nc">&nbsp;            } catch (IllegalArgumentException e) {</b>
    @@ -847,8 +867,8 @@ <h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
     &nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
     &nbsp;    private &lt;T extends Metric&gt; SortedMap&lt;String, T&gt; getMetrics(Class&lt;T&gt; klass, MetricFilter filter) {
     <b class="fc">&nbsp;        final TreeMap&lt;String, T&gt; timers = new TreeMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    -<b class="fc">&nbsp;            if (klass.isInstance(entry.getValue()) &amp;&amp; filter.matches(entry.getKey(),</b>
    +<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    +<b class="pc">&nbsp;            if (klass.isInstance(entry.getValue()) &amp;&amp; filter.matches(entry.getKey(),</b>
     <b class="fc">&nbsp;                    entry.getValue())) {</b>
     <b class="fc">&nbsp;                timers.put(entry.getKey(), (T) entry.getValue());</b>
     &nbsp;            }
    @@ -857,21 +877,21 @@ <h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
     &nbsp;    }
     &nbsp;
     &nbsp;    private void onMetricAdded(String name, Metric metric) {
    -<b class="fc">&nbsp;        for (MetricRegistryListener listener : listeners) {</b>
    +<b class="pc">&nbsp;        for (MetricRegistryListener listener : listeners) {</b>
     <b class="fc">&nbsp;            notifyListenerOfAddedMetric(listener, metric, name);</b>
     <b class="fc">&nbsp;        }</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    private void notifyListenerOfAddedMetric(MetricRegistryListener listener, Metric metric, String name) {
    -<b class="fc">&nbsp;        if (metric instanceof Gauge) {</b>
    +<b class="pc">&nbsp;        if (metric instanceof Gauge) {</b>
     <b class="fc">&nbsp;            listener.onGaugeAdded(name, (Gauge&lt;?&gt;) metric);</b>
    -<b class="fc">&nbsp;        } else if (metric instanceof Counter) {</b>
    +<b class="pc">&nbsp;        } else if (metric instanceof Counter) {</b>
     <b class="fc">&nbsp;            listener.onCounterAdded(name, (Counter) metric);</b>
    -<b class="fc">&nbsp;        } else if (metric instanceof Histogram) {</b>
    +<b class="pc">&nbsp;        } else if (metric instanceof Histogram) {</b>
     <b class="fc">&nbsp;            listener.onHistogramAdded(name, (Histogram) metric);</b>
    -<b class="fc">&nbsp;        } else if (metric instanceof Meter) {</b>
    +<b class="pc">&nbsp;        } else if (metric instanceof Meter) {</b>
     <b class="fc">&nbsp;            listener.onMeterAdded(name, (Meter) metric);</b>
    -<b class="fc">&nbsp;        } else if (metric instanceof Timer) {</b>
    +<b class="pc">&nbsp;        } else if (metric instanceof Timer) {</b>
     <b class="fc">&nbsp;            listener.onTimerAdded(name, (Timer) metric);</b>
     &nbsp;        } else {
     <b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;Unknown metric type: &quot; + metric.getClass());</b>
    @@ -879,21 +899,21 @@ <h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
     &nbsp;    }
     &nbsp;
     &nbsp;    private void onMetricRemoved(String name, Metric metric) {
    -<b class="fc">&nbsp;        for (MetricRegistryListener listener : listeners) {</b>
    +<b class="pc">&nbsp;        for (MetricRegistryListener listener : listeners) {</b>
     <b class="fc">&nbsp;            notifyListenerOfRemovedMetric(name, metric, listener);</b>
     <b class="fc">&nbsp;        }</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    private void notifyListenerOfRemovedMetric(String name, Metric metric, MetricRegistryListener listener) {
    -<b class="fc">&nbsp;        if (metric instanceof Gauge) {</b>
    +<b class="pc">&nbsp;        if (metric instanceof Gauge) {</b>
     <b class="fc">&nbsp;            listener.onGaugeRemoved(name);</b>
    -<b class="fc">&nbsp;        } else if (metric instanceof Counter) {</b>
    +<b class="pc">&nbsp;        } else if (metric instanceof Counter) {</b>
     <b class="fc">&nbsp;            listener.onCounterRemoved(name);</b>
    -<b class="fc">&nbsp;        } else if (metric instanceof Histogram) {</b>
    +<b class="pc">&nbsp;        } else if (metric instanceof Histogram) {</b>
     <b class="fc">&nbsp;            listener.onHistogramRemoved(name);</b>
    -<b class="fc">&nbsp;        } else if (metric instanceof Meter) {</b>
    +<b class="pc">&nbsp;        } else if (metric instanceof Meter) {</b>
     <b class="fc">&nbsp;            listener.onMeterRemoved(name);</b>
    -<b class="fc">&nbsp;        } else if (metric instanceof Timer) {</b>
    +<b class="pc">&nbsp;        } else if (metric instanceof Timer) {</b>
     <b class="fc">&nbsp;            listener.onTimerRemoved(name);</b>
     &nbsp;        } else {
     <b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;Unknown metric type: &quot; + metric.getClass());</b>
    @@ -908,8 +928,8 @@ <h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
     &nbsp;     * @throws IllegalArgumentException if any of the names are already registered
     &nbsp;     */
     &nbsp;    public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.getMetrics().entrySet()) {</b>
    -<b class="fc">&nbsp;            if (entry.getValue() instanceof MetricSet) {</b>
    +<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.getMetrics().entrySet()) {</b>
    +<b class="pc">&nbsp;            if (entry.getValue() instanceof MetricSet) {</b>
     <b class="fc">&nbsp;                registerAll(name(prefix, entry.getKey()), (MetricSet) entry.getValue());</b>
     &nbsp;            } else {
     <b class="fc">&nbsp;                register(name(prefix, entry.getKey()), entry.getValue());</b>
    @@ -1020,7 +1040,7 @@ <h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-16.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-16.html
    index a3f7dd6215..a4abedc0cc 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-16.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-16.html
    @@ -57,40 +57,40 @@ <h1>Coverage Summary for Class: MetricRegistryListener (com.codahale.metrics)</h
     </td>
       </tr>
       <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$17YfnNXT</td>
    +    <td class="name">MetricRegistryListener$MockitoMock$5iXysY5Q</td>
       </tr>
       <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$17YfnNXT$auxiliary$chkhkDg3</td>
    +    <td class="name">MetricRegistryListener$MockitoMock$5iXysY5Q$auxiliary$F51bE4gh</td>
       </tr>
       <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$17YfnNXT$auxiliary$obf86OVP</td>
    +    <td class="name">MetricRegistryListener$MockitoMock$5iXysY5Q$auxiliary$nSg42jpw</td>
       </tr>
       <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$3FrTZ1tj</td>
    +    <td class="name">MetricRegistryListener$MockitoMock$anYeCRUA</td>
       </tr>
       <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$3FrTZ1tj$auxiliary$n8ZobbGB</td>
    +    <td class="name">MetricRegistryListener$MockitoMock$anYeCRUA$auxiliary$O5Lcj3DO</td>
       </tr>
       <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$3FrTZ1tj$auxiliary$rtxplSKv</td>
    +    <td class="name">MetricRegistryListener$MockitoMock$anYeCRUA$auxiliary$yb2c8vsY</td>
       </tr>
       <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$hjLpqAKM</td>
    +    <td class="name">MetricRegistryListener$MockitoMock$vvUgAxm2</td>
       </tr>
       <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$hjLpqAKM$auxiliary$JNmgluwX</td>
    +    <td class="name">MetricRegistryListener$MockitoMock$vvUgAxm2$auxiliary$nZ3MWwF6</td>
       </tr>
       <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$hjLpqAKM$auxiliary$mz9kL0zg</td>
    +    <td class="name">MetricRegistryListener$MockitoMock$vvUgAxm2$auxiliary$PeryPf4J</td>
       </tr>
       <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$QmmXdimO</td>
    +    <td class="name">MetricRegistryListener$MockitoMock$xn3YAipE</td>
       </tr>
       <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$QmmXdimO$auxiliary$bvbPAgzX</td>
    +    <td class="name">MetricRegistryListener$MockitoMock$xn3YAipE$auxiliary$rCGi501R</td>
       </tr>
       <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$QmmXdimO$auxiliary$eGE6xX64</td>
    +    <td class="name">MetricRegistryListener$MockitoMock$xn3YAipE$auxiliary$yejoCfwX</td>
       </tr>
     <tr>
       <td class="name"><strong>Total</strong></td>
    @@ -269,7 +269,7 @@ <h1>Coverage Summary for Class: MetricRegistryListener (com.codahale.metrics)</h
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-17.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-17.html
    index 1154d835d3..9afc8850a7 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-17.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-17.html
    @@ -1091,7 +1091,7 @@ <h1>Coverage Summary for Class: NoopMetricRegistry (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-18.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-18.html
    index 4310e7d262..64fb1161bb 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-18.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-18.html
    @@ -190,7 +190,7 @@ <h1>Coverage Summary for Class: RatioGauge (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-19.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-19.html
    index fca815d403..12989a6a46 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-19.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-19.html
    @@ -461,7 +461,7 @@ <h1>Coverage Summary for Class: ScheduledReporter (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1a.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1a.html
    index ed6be3d1ec..5a42c2932a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1a.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1a.html
    @@ -205,7 +205,7 @@ <h1>Coverage Summary for Class: SharedMetricRegistries (com.codahale.metrics)</h
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1b.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1b.html
    index 5ec0554f1e..e737e5071b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1b.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1b.html
    @@ -776,7 +776,7 @@ <h1>Coverage Summary for Class: Slf4jReporter (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1c.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1c.html
    index d830e52a16..1b5998be82 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1c.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1c.html
    @@ -199,7 +199,7 @@ <h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoir (com.codahale.me
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1d.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1d.html
    index d3006c593b..22b7a31b90 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1d.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1d.html
    @@ -211,7 +211,7 @@ <h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirTrimReadTest (com
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1e.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1e.html
    index ebc846df0c..7ef6346fa1 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1e.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1e.html
    @@ -155,7 +155,7 @@ <h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirWriteReadAllocate
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1f.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1f.html
    index d16d552cba..8136a52736 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1f.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1f.html
    @@ -143,7 +143,7 @@ <h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirWriteReadTest (co
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2.html
    index 31d20341f4..302f00238a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2.html
    @@ -327,7 +327,7 @@ <h1>Coverage Summary for Class: ChunkedAssociativeLongArray (com.codahale.metric
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-20.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-20.html
    index b34e53e344..0ddd01336c 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-20.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-20.html
    @@ -295,7 +295,7 @@ <h1>Coverage Summary for Class: SlidingTimeWindowMovingAverages (com.codahale.me
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-21.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-21.html
    index bccddf1f5c..4c90adfe67 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-21.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-21.html
    @@ -193,7 +193,7 @@ <h1>Coverage Summary for Class: SlidingTimeWindowReservoir (com.codahale.metrics
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-22.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-22.html
    index a971b4b40e..d3c118c175 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-22.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-22.html
    @@ -141,7 +141,7 @@ <h1>Coverage Summary for Class: SlidingWindowReservoir (com.codahale.metrics)</h
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-23.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-23.html
    index 4db25abf89..798fcfd6dd 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-23.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-23.html
    @@ -57,49 +57,49 @@ <h1>Coverage Summary for Class: Snapshot (com.codahale.metrics)</h1>
     </td>
     </tr>
       <tr>
    -    <td class="name">Snapshot$MockitoMock$APfIuPki</td>
    +    <td class="name">Snapshot$MockitoMock$mZ3tmzjp</td>
       </tr>
       <tr>
    -    <td class="name">Snapshot$MockitoMock$APfIuPki$auxiliary$faBRdEga</td>
    +    <td class="name">Snapshot$MockitoMock$mZ3tmzjp$auxiliary$bgJwullp</td>
       </tr>
       <tr>
    -    <td class="name">Snapshot$MockitoMock$APfIuPki$auxiliary$WLAbFZfS</td>
    +    <td class="name">Snapshot$MockitoMock$mZ3tmzjp$auxiliary$smpCeeR7</td>
       </tr>
       <tr>
    -    <td class="name">Snapshot$MockitoMock$dbmELJBz</td>
    +    <td class="name">Snapshot$MockitoMock$TAy1oPp7</td>
       </tr>
       <tr>
    -    <td class="name">Snapshot$MockitoMock$dbmELJBz$auxiliary$01KbNvN3</td>
    +    <td class="name">Snapshot$MockitoMock$TAy1oPp7$auxiliary$2IY4yGwf</td>
       </tr>
       <tr>
    -    <td class="name">Snapshot$MockitoMock$dbmELJBz$auxiliary$6kiQVDxs</td>
    +    <td class="name">Snapshot$MockitoMock$TAy1oPp7$auxiliary$m3D1oaOo</td>
       </tr>
       <tr>
    -    <td class="name">Snapshot$MockitoMock$rE61TLWZ</td>
    +    <td class="name">Snapshot$MockitoMock$U8c8ic7C</td>
       </tr>
       <tr>
    -    <td class="name">Snapshot$MockitoMock$rE61TLWZ$auxiliary$O5Md3wh2</td>
    +    <td class="name">Snapshot$MockitoMock$U8c8ic7C$auxiliary$7Kz9rWWn</td>
       </tr>
       <tr>
    -    <td class="name">Snapshot$MockitoMock$rE61TLWZ$auxiliary$TtRUFvMH</td>
    +    <td class="name">Snapshot$MockitoMock$U8c8ic7C$auxiliary$DdIHODfL</td>
       </tr>
       <tr>
    -    <td class="name">Snapshot$MockitoMock$tYzIKesx</td>
    +    <td class="name">Snapshot$MockitoMock$vUeJ5rxj</td>
       </tr>
       <tr>
    -    <td class="name">Snapshot$MockitoMock$tYzIKesx$auxiliary$9Jnbc6Sd</td>
    +    <td class="name">Snapshot$MockitoMock$vUeJ5rxj$auxiliary$Gg22ZTJQ</td>
       </tr>
       <tr>
    -    <td class="name">Snapshot$MockitoMock$tYzIKesx$auxiliary$iUeFJkfT</td>
    +    <td class="name">Snapshot$MockitoMock$vUeJ5rxj$auxiliary$n0OOEY8a</td>
       </tr>
       <tr>
    -    <td class="name">Snapshot$MockitoMock$uAF3XiYG</td>
    +    <td class="name">Snapshot$MockitoMock$w1t1NJKR</td>
       </tr>
       <tr>
    -    <td class="name">Snapshot$MockitoMock$uAF3XiYG$auxiliary$FetHNyjG</td>
    +    <td class="name">Snapshot$MockitoMock$w1t1NJKR$auxiliary$2oCkK5Hg</td>
       </tr>
       <tr>
    -    <td class="name">Snapshot$MockitoMock$uAF3XiYG$auxiliary$vhCEEj9x</td>
    +    <td class="name">Snapshot$MockitoMock$w1t1NJKR$auxiliary$nGy7GYus</td>
       </tr>
     <tr>
       <td class="name"><strong>Total</strong></td>
    @@ -271,7 +271,7 @@ <h1>Coverage Summary for Class: Snapshot (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-24.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-24.html
    index 1480aec02d..e141dab4a0 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-24.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-24.html
    @@ -33,6 +33,10 @@ <h1>Coverage Summary for Class: Timer (com.codahale.metrics)</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
    @@ -47,6 +51,14 @@ <h1>Coverage Summary for Class: Timer (com.codahale.metrics)</h1>
         (17/17)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         93.5%
    @@ -85,6 +97,14 @@ <h1>Coverage Summary for Class: Timer (com.codahale.metrics)</h1>
         (20/20)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         94.9%
    @@ -298,7 +318,7 @@ <h1>Coverage Summary for Class: Timer (com.codahale.metrics)</h1>
     &nbsp;    }
     &nbsp;
     &nbsp;    private void update(long duration) {
    -<b class="fc">&nbsp;        if (duration &gt;= 0) {</b>
    +<b class="pc">&nbsp;        if (duration &gt;= 0) {</b>
     <b class="fc">&nbsp;            histogram.update(duration);</b>
     <b class="fc">&nbsp;            meter.mark();</b>
     &nbsp;        }
    @@ -327,7 +347,7 @@ <h1>Coverage Summary for Class: Timer (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-25.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-25.html
    index 672842fffe..abb87ee58f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-25.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-25.html
    @@ -168,7 +168,7 @@ <h1>Coverage Summary for Class: UniformReservoir (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-26.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-26.html
    index a328eab4e4..bf4ce64a42 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-26.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-26.html
    @@ -275,7 +275,7 @@ <h1>Coverage Summary for Class: UniformSnapshot (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-27.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-27.html
    index 30cc91d999..3b7829e7bf 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-27.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-27.html
    @@ -33,6 +33,10 @@ <h1>Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
    @@ -47,6 +51,14 @@ <h1>Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)</h1>
         (9/9)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         98.1%
    @@ -85,6 +97,14 @@ <h1>Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)</h1>
         (10/10)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/36)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         98.2%
    @@ -149,16 +169,16 @@ <h1>Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)</h1>
     <b class="fc">&nbsp;        this.quantiles = new double[copy.length];</b>
     &nbsp;
     <b class="fc">&nbsp;        double sumWeight = 0;</b>
    -<b class="fc">&nbsp;        for (WeightedSample sample : copy) {</b>
    +<b class="pc">&nbsp;        for (WeightedSample sample : copy) {</b>
     <b class="fc">&nbsp;            sumWeight += sample.weight;</b>
     &nbsp;        }
     &nbsp;
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; copy.length; i++) {</b>
    +<b class="pc">&nbsp;        for (int i = 0; i &lt; copy.length; i++) {</b>
     <b class="fc">&nbsp;            this.values[i] = copy[i].value;</b>
    -<b class="fc">&nbsp;            this.normWeights[i] = sumWeight != 0 ? copy[i].weight / sumWeight : 0;</b>
    +<b class="pc">&nbsp;            this.normWeights[i] = sumWeight != 0 ? copy[i].weight / sumWeight : 0;</b>
     &nbsp;        }
     &nbsp;
    -<b class="fc">&nbsp;        for (int i = 1; i &lt; copy.length; i++) {</b>
    +<b class="pc">&nbsp;        for (int i = 1; i &lt; copy.length; i++) {</b>
     <b class="fc">&nbsp;            this.quantiles[i] = this.quantiles[i - 1] + this.normWeights[i - 1];</b>
     &nbsp;        }
     &nbsp;    }
    @@ -171,23 +191,23 @@ <h1>Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)</h1>
     &nbsp;     */
     &nbsp;    @Override
     &nbsp;    public double getValue(double quantile) {
    -<b class="fc">&nbsp;        if (quantile &lt; 0.0 || quantile &gt; 1.0 || Double.isNaN(quantile)) {</b>
    +<b class="pc">&nbsp;        if (quantile &lt; 0.0 || quantile &gt; 1.0 || Double.isNaN(quantile)) {</b>
     <b class="fc">&nbsp;            throw new IllegalArgumentException(quantile + &quot; is not in [0..1]&quot;);</b>
     &nbsp;        }
     &nbsp;
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    +<b class="pc">&nbsp;        if (values.length == 0) {</b>
     <b class="fc">&nbsp;            return 0.0;</b>
     &nbsp;        }
     &nbsp;
     <b class="fc">&nbsp;        int posx = Arrays.binarySearch(quantiles, quantile);</b>
    -<b class="fc">&nbsp;        if (posx &lt; 0)</b>
    +<b class="pc">&nbsp;        if (posx &lt; 0)</b>
     <b class="fc">&nbsp;            posx = ((-posx) - 1) - 1;</b>
     &nbsp;
    -<b class="fc">&nbsp;        if (posx &lt; 1) {</b>
    +<b class="pc">&nbsp;        if (posx &lt; 1) {</b>
     <b class="fc">&nbsp;            return values[0];</b>
     &nbsp;        }
     &nbsp;
    -<b class="fc">&nbsp;        if (posx &gt;= values.length) {</b>
    +<b class="pc">&nbsp;        if (posx &gt;= values.length) {</b>
     <b class="nc">&nbsp;            return values[values.length - 1];</b>
     &nbsp;        }
     &nbsp;
    @@ -221,7 +241,7 @@ <h1>Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)</h1>
     &nbsp;     */
     &nbsp;    @Override
     &nbsp;    public long getMax() {
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    +<b class="pc">&nbsp;        if (values.length == 0) {</b>
     <b class="fc">&nbsp;            return 0;</b>
     &nbsp;        }
     <b class="fc">&nbsp;        return values[values.length - 1];</b>
    @@ -234,7 +254,7 @@ <h1>Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)</h1>
     &nbsp;     */
     &nbsp;    @Override
     &nbsp;    public long getMin() {
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    +<b class="pc">&nbsp;        if (values.length == 0) {</b>
     <b class="fc">&nbsp;            return 0;</b>
     &nbsp;        }
     <b class="fc">&nbsp;        return values[0];</b>
    @@ -247,12 +267,12 @@ <h1>Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)</h1>
     &nbsp;     */
     &nbsp;    @Override
     &nbsp;    public double getMean() {
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    +<b class="pc">&nbsp;        if (values.length == 0) {</b>
     <b class="fc">&nbsp;            return 0;</b>
     &nbsp;        }
     &nbsp;
     <b class="fc">&nbsp;        double sum = 0;</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    +<b class="pc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
     <b class="fc">&nbsp;            sum += values[i] * normWeights[i];</b>
     &nbsp;        }
     <b class="fc">&nbsp;        return sum;</b>
    @@ -267,14 +287,14 @@ <h1>Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)</h1>
     &nbsp;    public double getStdDev() {
     &nbsp;        // two-pass algorithm for variance, avoids numeric overflow
     &nbsp;
    -<b class="fc">&nbsp;        if (values.length &lt;= 1) {</b>
    +<b class="pc">&nbsp;        if (values.length &lt;= 1) {</b>
     <b class="fc">&nbsp;            return 0;</b>
     &nbsp;        }
     &nbsp;
     <b class="fc">&nbsp;        final double mean = getMean();</b>
     <b class="fc">&nbsp;        double variance = 0;</b>
     &nbsp;
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    +<b class="pc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
     <b class="fc">&nbsp;            final double diff = values[i] - mean;</b>
     <b class="fc">&nbsp;            variance += normWeights[i] * diff * diff;</b>
     &nbsp;        }
    @@ -290,7 +310,7 @@ <h1>Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)</h1>
     &nbsp;    @Override
     &nbsp;    public void dump(OutputStream output) {
     <b class="fc">&nbsp;        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {</b>
    -<b class="fc">&nbsp;            for (long value : values) {</b>
    +<b class="pc">&nbsp;            for (long value : values) {</b>
     <b class="fc">&nbsp;                out.printf(&quot;%d%n&quot;, value);</b>
     &nbsp;            }
     <b class="fc">&nbsp;        }</b>
    @@ -319,7 +339,7 @@ <h1>Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-28.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-28.html
    index 06eb8b39e8..fee7aac012 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-28.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-28.html
    @@ -110,7 +110,7 @@ <h1>Coverage Summary for Class: MovingAverages (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-29.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-29.html
    index 5fedbadb61..2066498496 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-29.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-29.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Reporter</title>
    +  <title>Coverage Report > Sampling</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -22,14 +22,14 @@
         <a href="../index.html">com.codahale.metrics</a>
     </div>
     
    -<h1>Coverage Summary for Class: Reporter (com.codahale.metrics)</h1>
    +<h1>Coverage Summary for Class: Sampling (com.codahale.metrics)</h1>
     
     <table class="coverageStats">
     <tr>
       <th class="name">Class</th>
     </tr>
     <tr>
    -  <td class="name">Reporter</td>
    +  <td class="name">Sampling</td>
     </tr>
     
     </table>
    @@ -41,13 +41,16 @@ <h1>Coverage Summary for Class: Reporter (com.codahale.metrics)</h1>
     <pre>
     <code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
     &nbsp;
    -&nbsp;import java.io.Closeable;
    -&nbsp;
    -&nbsp;/*
    -&nbsp; * A tag interface to indicate that a class is a Reporter.
    +&nbsp;/**
    +&nbsp; * An object which samples values.
     &nbsp; */
    -&nbsp;public interface Reporter extends Closeable {
    -&nbsp;
    +&nbsp;public interface Sampling {
    +&nbsp;    /**
    +&nbsp;     * Returns a snapshot of the values.
    +&nbsp;     *
    +&nbsp;     * @return a snapshot of the values
    +&nbsp;     */
    +&nbsp;    Snapshot getSnapshot();
     &nbsp;}
     </code>
     </pre>
    @@ -72,7 +75,7 @@ <h1>Coverage Summary for Class: Reporter (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2a.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2a.html
    index 70b01c6af2..9238da0c0a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2a.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2a.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricSet</title>
    +  <title>Coverage Report > SettableGauge</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -22,14 +22,14 @@
         <a href="../index.html">com.codahale.metrics</a>
     </div>
     
    -<h1>Coverage Summary for Class: MetricSet (com.codahale.metrics)</h1>
    +<h1>Coverage Summary for Class: SettableGauge (com.codahale.metrics)</h1>
     
     <table class="coverageStats">
     <tr>
       <th class="name">Class</th>
     </tr>
     <tr>
    -  <td class="name">MetricSet</td>
    +  <td class="name">SettableGauge</td>
     </tr>
     
     </table>
    @@ -41,20 +41,17 @@ <h1>Coverage Summary for Class: MetricSet (com.codahale.metrics)</h1>
     <pre>
     <code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
     &nbsp;
    -&nbsp;import java.util.Map;
    -&nbsp;
     &nbsp;/**
    -&nbsp; * A set of named metrics.
    -&nbsp; *
    -&nbsp; * @see MetricRegistry#registerAll(MetricSet)
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
    +&nbsp; * See {@link DefaultSettableGauge}.
    +&nbsp; * &lt;/p&gt;
     &nbsp; */
    -&nbsp;public interface MetricSet extends Metric {
    +&nbsp;public interface SettableGauge&lt;T&gt; extends Gauge&lt;T&gt; {
     &nbsp;    /**
    -&nbsp;     * A map of metric names to metrics.
    -&nbsp;     *
    -&nbsp;     * @return the metrics
    +&nbsp;     * Set the metric to a new value.
     &nbsp;     */
    -&nbsp;    Map&lt;String, Metric&gt; getMetrics();
    +&nbsp;    void setValue(T value);
     &nbsp;}
     </code>
     </pre>
    @@ -79,7 +76,7 @@ <h1>Coverage Summary for Class: MetricSet (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2b.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2b.html
    index d0fe1f254e..ca931c4173 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2b.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2b.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Reservoir</title>
    +  <title>Coverage Report > Gauge</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -22,7 +22,7 @@
         <a href="../index.html">com.codahale.metrics</a>
     </div>
     
    -<h1>Coverage Summary for Class: Reservoir (com.codahale.metrics)</h1>
    +<h1>Coverage Summary for Class: Gauge (com.codahale.metrics)</h1>
     
     <table class="coverageStats">
     
    @@ -30,13 +30,13 @@ <h1>Coverage Summary for Class: Reservoir (com.codahale.metrics)</h1>
       <th class="name">Class</th>
     </tr>
       <tr>
    -    <td class="name">Reservoir$MockitoMock$8D80dqav</td>
    +    <td class="name">Gauge$MockitoMock$16J7fyYM</td>
       </tr>
       <tr>
    -    <td class="name">Reservoir$MockitoMock$8D80dqav$auxiliary$KGzDpHA7</td>
    +    <td class="name">Gauge$MockitoMock$16J7fyYM$auxiliary$VXWBejxv</td>
       </tr>
       <tr>
    -    <td class="name">Reservoir$MockitoMock$8D80dqav$auxiliary$lJ9cZIw6</td>
    +    <td class="name">Gauge$MockitoMock$16J7fyYM$auxiliary$YZRkD9Gi</td>
       </tr>
     <tr>
       <td class="name"><strong>Total</strong></td>
    @@ -50,30 +50,29 @@ <h1>Coverage Summary for Class: Reservoir (com.codahale.metrics)</h1>
     <pre>
     <code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
     &nbsp;
    +&nbsp;
     &nbsp;/**
    -&nbsp; * A statistically representative reservoir of a data stream.
    +&nbsp; * A gauge metric is an instantaneous reading of a particular value. To instrument a queue&#39;s depth,
    +&nbsp; * for example:&lt;br&gt;
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; * final Queue&amp;lt;String&amp;gt; queue = new ConcurrentLinkedQueue&amp;lt;String&amp;gt;();
    +&nbsp; * final Gauge&amp;lt;Integer&amp;gt; queueDepth = new Gauge&amp;lt;Integer&amp;gt;() {
    +&nbsp; *     public Integer getValue() {
    +&nbsp; *         return queue.size();
    +&nbsp; *     }
    +&nbsp; * };
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; *
    +&nbsp; * @param &lt;T&gt; the type of the metric&#39;s value
     &nbsp; */
    -&nbsp;public interface Reservoir {
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values recorded.
    -&nbsp;     *
    -&nbsp;     * @return the number of values recorded
    -&nbsp;     */
    -&nbsp;    int size();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a new recorded value to the reservoir.
    -&nbsp;     *
    -&nbsp;     * @param value a new recorded value
    -&nbsp;     */
    -&nbsp;    void update(long value);
    -&nbsp;
    +&nbsp;@FunctionalInterface
    +&nbsp;public interface Gauge&lt;T&gt; extends Metric {
     &nbsp;    /**
    -&nbsp;     * Returns a snapshot of the reservoir&#39;s values.
    +&nbsp;     * Returns the metric&#39;s current value.
     &nbsp;     *
    -&nbsp;     * @return a snapshot of the reservoir&#39;s values
    +&nbsp;     * @return the metric&#39;s current value
     &nbsp;     */
    -&nbsp;    Snapshot getSnapshot();
    +&nbsp;    T getValue();
     &nbsp;}
     </code>
     </pre>
    @@ -98,7 +97,7 @@ <h1>Coverage Summary for Class: Reservoir (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2c.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2c.html
    index e8b6056899..6fdee7b6b0 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2c.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2c.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metered</title>
    +  <title>Coverage Report > MetricSet</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -22,14 +22,14 @@
         <a href="../index.html">com.codahale.metrics</a>
     </div>
     
    -<h1>Coverage Summary for Class: Metered (com.codahale.metrics)</h1>
    +<h1>Coverage Summary for Class: MetricSet (com.codahale.metrics)</h1>
     
     <table class="coverageStats">
     <tr>
       <th class="name">Class</th>
     </tr>
     <tr>
    -  <td class="name">Metered</td>
    +  <td class="name">MetricSet</td>
     </tr>
     
     </table>
    @@ -41,51 +41,20 @@ <h1>Coverage Summary for Class: Metered (com.codahale.metrics)</h1>
     <pre>
     <code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
     &nbsp;
    +&nbsp;import java.util.Map;
    +&nbsp;
     &nbsp;/**
    -&nbsp; * An object which maintains mean and moving average rates.
    +&nbsp; * A set of named metrics.
    +&nbsp; *
    +&nbsp; * @see MetricRegistry#registerAll(MetricSet)
     &nbsp; */
    -&nbsp;public interface Metered extends Metric, Counting {
    -&nbsp;    /**
    -&nbsp;     * Returns the number of events which have been marked.
    -&nbsp;     *
    -&nbsp;     * @return the number of events which have been marked
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    long getCount();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the fifteen-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the fifteen-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getFifteenMinuteRate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the five-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the five-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getFiveMinuteRate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the mean rate at which events have occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the mean rate at which events have occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getMeanRate();
    -&nbsp;
    +&nbsp;public interface MetricSet extends Metric {
     &nbsp;    /**
    -&nbsp;     * Returns the one-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created.
    +&nbsp;     * A map of metric names to metrics.
     &nbsp;     *
    -&nbsp;     * @return the one-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created
    +&nbsp;     * @return the metrics
     &nbsp;     */
    -&nbsp;    double getOneMinuteRate();
    +&nbsp;    Map&lt;String, Metric&gt; getMetrics();
     &nbsp;}
     </code>
     </pre>
    @@ -110,7 +79,7 @@ <h1>Coverage Summary for Class: Metered (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2d.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2d.html
    index 2f13811711..3683d41905 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2d.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2d.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Sampling</title>
    +  <title>Coverage Report > Reporter</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -22,14 +22,14 @@
         <a href="../index.html">com.codahale.metrics</a>
     </div>
     
    -<h1>Coverage Summary for Class: Sampling (com.codahale.metrics)</h1>
    +<h1>Coverage Summary for Class: Reporter (com.codahale.metrics)</h1>
     
     <table class="coverageStats">
     <tr>
       <th class="name">Class</th>
     </tr>
     <tr>
    -  <td class="name">Sampling</td>
    +  <td class="name">Reporter</td>
     </tr>
     
     </table>
    @@ -41,16 +41,13 @@ <h1>Coverage Summary for Class: Sampling (com.codahale.metrics)</h1>
     <pre>
     <code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
     &nbsp;
    -&nbsp;/**
    -&nbsp; * An object which samples values.
    +&nbsp;import java.io.Closeable;
    +&nbsp;
    +&nbsp;/*
    +&nbsp; * A tag interface to indicate that a class is a Reporter.
     &nbsp; */
    -&nbsp;public interface Sampling {
    -&nbsp;    /**
    -&nbsp;     * Returns a snapshot of the values.
    -&nbsp;     *
    -&nbsp;     * @return a snapshot of the values
    -&nbsp;     */
    -&nbsp;    Snapshot getSnapshot();
    +&nbsp;public interface Reporter extends Closeable {
    +&nbsp;
     &nbsp;}
     </code>
     </pre>
    @@ -75,7 +72,7 @@ <h1>Coverage Summary for Class: Sampling (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2e.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2e.html
    index 2c40ce883f..e9bc643c83 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2e.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2e.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SettableGauge</title>
    +  <title>Coverage Report > Reservoir</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -22,16 +22,25 @@
         <a href="../index.html">com.codahale.metrics</a>
     </div>
     
    -<h1>Coverage Summary for Class: SettableGauge (com.codahale.metrics)</h1>
    +<h1>Coverage Summary for Class: Reservoir (com.codahale.metrics)</h1>
     
     <table class="coverageStats">
    +
     <tr>
       <th class="name">Class</th>
     </tr>
    +  <tr>
    +    <td class="name">Reservoir$MockitoMock$STXzHw3s</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Reservoir$MockitoMock$STXzHw3s$auxiliary$oVK7dNvP</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Reservoir$MockitoMock$STXzHw3s$auxiliary$YxGDMzIi</td>
    +  </tr>
     <tr>
    -  <td class="name">SettableGauge</td>
    +  <td class="name"><strong>Total</strong></td>
     </tr>
    -
     </table>
     
     <br/>
    @@ -42,16 +51,29 @@ <h1>Coverage Summary for Class: SettableGauge (com.codahale.metrics)</h1>
     <code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
     &nbsp;
     &nbsp;/**
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
    -&nbsp; * See {@link DefaultSettableGauge}.
    -&nbsp; * &lt;/p&gt;
    +&nbsp; * A statistically representative reservoir of a data stream.
     &nbsp; */
    -&nbsp;public interface SettableGauge&lt;T&gt; extends Gauge&lt;T&gt; {
    +&nbsp;public interface Reservoir {
    +&nbsp;    /**
    +&nbsp;     * Returns the number of values recorded.
    +&nbsp;     *
    +&nbsp;     * @return the number of values recorded
    +&nbsp;     */
    +&nbsp;    int size();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Adds a new recorded value to the reservoir.
    +&nbsp;     *
    +&nbsp;     * @param value a new recorded value
    +&nbsp;     */
    +&nbsp;    void update(long value);
    +&nbsp;
     &nbsp;    /**
    -&nbsp;     * Set the metric to a new value.
    +&nbsp;     * Returns a snapshot of the reservoir&#39;s values.
    +&nbsp;     *
    +&nbsp;     * @return a snapshot of the reservoir&#39;s values
     &nbsp;     */
    -&nbsp;    void setValue(T value);
    +&nbsp;    Snapshot getSnapshot();
     &nbsp;}
     </code>
     </pre>
    @@ -76,7 +98,7 @@ <h1>Coverage Summary for Class: SettableGauge (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2f.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2f.html
    index 481addb948..3051d1adfa 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2f.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2f.html
    @@ -75,7 +75,7 @@ <h1>Coverage Summary for Class: Counting (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-3.html
    index 6c1517965e..1f2af6aec9 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-3.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-3.html
    @@ -57,40 +57,40 @@ <h1>Coverage Summary for Class: Clock (com.codahale.metrics)</h1>
     </td>
     </tr>
       <tr>
    -    <td class="name">Clock$MockitoMock$JWBHhG4L</td>
    +    <td class="name">Clock$MockitoMock$j3mRmozx</td>
       </tr>
       <tr>
    -    <td class="name">Clock$MockitoMock$JWBHhG4L$auxiliary$lUA0zt5V</td>
    +    <td class="name">Clock$MockitoMock$j3mRmozx$auxiliary$GFSzcwb2</td>
       </tr>
       <tr>
    -    <td class="name">Clock$MockitoMock$JWBHhG4L$auxiliary$RbMVLMZc</td>
    +    <td class="name">Clock$MockitoMock$j3mRmozx$auxiliary$zZkFzVkC</td>
       </tr>
       <tr>
    -    <td class="name">Clock$MockitoMock$li0h3y9v</td>
    +    <td class="name">Clock$MockitoMock$lyFA7CGo</td>
       </tr>
       <tr>
    -    <td class="name">Clock$MockitoMock$li0h3y9v$auxiliary$NYmKvI5n</td>
    +    <td class="name">Clock$MockitoMock$lyFA7CGo$auxiliary$2Ki750vQ</td>
       </tr>
       <tr>
    -    <td class="name">Clock$MockitoMock$li0h3y9v$auxiliary$xADvxTqm</td>
    +    <td class="name">Clock$MockitoMock$lyFA7CGo$auxiliary$Vkl0Ml51</td>
       </tr>
       <tr>
    -    <td class="name">Clock$MockitoMock$O0sYkmKW</td>
    +    <td class="name">Clock$MockitoMock$P9aNbVxU</td>
       </tr>
       <tr>
    -    <td class="name">Clock$MockitoMock$O0sYkmKW$auxiliary$3MIqI05a</td>
    +    <td class="name">Clock$MockitoMock$P9aNbVxU$auxiliary$sfUu9esv</td>
       </tr>
       <tr>
    -    <td class="name">Clock$MockitoMock$O0sYkmKW$auxiliary$CPeOmT9H</td>
    +    <td class="name">Clock$MockitoMock$P9aNbVxU$auxiliary$wDu3E1JB</td>
       </tr>
       <tr>
    -    <td class="name">Clock$MockitoMock$ptO3x5uM</td>
    +    <td class="name">Clock$MockitoMock$qQ3d06jA</td>
       </tr>
       <tr>
    -    <td class="name">Clock$MockitoMock$ptO3x5uM$auxiliary$meb1gR9d</td>
    +    <td class="name">Clock$MockitoMock$qQ3d06jA$auxiliary$GLKfHdTk</td>
       </tr>
       <tr>
    -    <td class="name">Clock$MockitoMock$ptO3x5uM$auxiliary$RsRvODSX</td>
    +    <td class="name">Clock$MockitoMock$qQ3d06jA$auxiliary$huRkNnHh</td>
       </tr>
       <tr>
         <td class="name">Clock$UserTimeClock</td>
    @@ -225,7 +225,7 @@ <h1>Coverage Summary for Class: Clock (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-30.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-30.html
    index 8eb28c9206..56e570d051 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-30.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-30.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metric</title>
    +  <title>Coverage Report > CsvFileProvider</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -22,7 +22,7 @@
         <a href="../index.html">com.codahale.metrics</a>
     </div>
     
    -<h1>Coverage Summary for Class: Metric (com.codahale.metrics)</h1>
    +<h1>Coverage Summary for Class: CsvFileProvider (com.codahale.metrics)</h1>
     
     <table class="coverageStats">
     
    @@ -30,13 +30,13 @@ <h1>Coverage Summary for Class: Metric (com.codahale.metrics)</h1>
       <th class="name">Class</th>
     </tr>
       <tr>
    -    <td class="name">Metric$MockitoMock$OASi9C4h</td>
    +    <td class="name">CsvFileProvider$MockitoMock$impgqtWu</td>
       </tr>
       <tr>
    -    <td class="name">Metric$MockitoMock$OASi9C4h$auxiliary$dXgkKNHA</td>
    +    <td class="name">CsvFileProvider$MockitoMock$impgqtWu$auxiliary$08Dorks3</td>
       </tr>
       <tr>
    -    <td class="name">Metric$MockitoMock$OASi9C4h$auxiliary$fazH1lei</td>
    +    <td class="name">CsvFileProvider$MockitoMock$impgqtWu$auxiliary$NMsmJS5i</td>
       </tr>
     <tr>
       <td class="name"><strong>Total</strong></td>
    @@ -50,11 +50,15 @@ <h1>Coverage Summary for Class: Metric (com.codahale.metrics)</h1>
     <pre>
     <code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
     &nbsp;
    +&nbsp;import java.io.File;
    +&nbsp;
     &nbsp;/**
    -&nbsp; * A tag interface to indicate that a class is a metric.
    +&nbsp; * This interface allows a pluggable implementation of what file names
    +&nbsp; * the {@link CsvReporter} will write to.
     &nbsp; */
    -&nbsp;public interface Metric {
    +&nbsp;public interface CsvFileProvider {
     &nbsp;
    +&nbsp;    File getFile(File directory, String metricName);
     &nbsp;}
     </code>
     </pre>
    @@ -79,7 +83,7 @@ <h1>Coverage Summary for Class: Metric (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-31.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-31.html
    index 7a59af3b7f..4558b61015 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-31.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-31.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CsvFileProvider</title>
    +  <title>Coverage Report > Metric</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -22,7 +22,7 @@
         <a href="../index.html">com.codahale.metrics</a>
     </div>
     
    -<h1>Coverage Summary for Class: CsvFileProvider (com.codahale.metrics)</h1>
    +<h1>Coverage Summary for Class: Metric (com.codahale.metrics)</h1>
     
     <table class="coverageStats">
     
    @@ -30,13 +30,13 @@ <h1>Coverage Summary for Class: CsvFileProvider (com.codahale.metrics)</h1>
       <th class="name">Class</th>
     </tr>
       <tr>
    -    <td class="name">CsvFileProvider$MockitoMock$kAQg5i0T</td>
    +    <td class="name">Metric$MockitoMock$SoPFH6C1</td>
       </tr>
       <tr>
    -    <td class="name">CsvFileProvider$MockitoMock$kAQg5i0T$auxiliary$HdubPpW7</td>
    +    <td class="name">Metric$MockitoMock$SoPFH6C1$auxiliary$9WaRnIG6</td>
       </tr>
       <tr>
    -    <td class="name">CsvFileProvider$MockitoMock$kAQg5i0T$auxiliary$oQQufAtF</td>
    +    <td class="name">Metric$MockitoMock$SoPFH6C1$auxiliary$MCMcHURq</td>
       </tr>
     <tr>
       <td class="name"><strong>Total</strong></td>
    @@ -50,15 +50,11 @@ <h1>Coverage Summary for Class: CsvFileProvider (com.codahale.metrics)</h1>
     <pre>
     <code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
     &nbsp;
    -&nbsp;import java.io.File;
    -&nbsp;
     &nbsp;/**
    -&nbsp; * This interface allows a pluggable implementation of what file names
    -&nbsp; * the {@link CsvReporter} will write to.
    +&nbsp; * A tag interface to indicate that a class is a metric.
     &nbsp; */
    -&nbsp;public interface CsvFileProvider {
    +&nbsp;public interface Metric {
     &nbsp;
    -&nbsp;    File getFile(File directory, String metricName);
     &nbsp;}
     </code>
     </pre>
    @@ -83,7 +79,7 @@ <h1>Coverage Summary for Class: CsvFileProvider (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-32.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-32.html
    index 002fa7156c..7af2b1e2a4 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-32.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-32.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Gauge</title>
    +  <title>Coverage Report > Metered</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -22,25 +22,16 @@
         <a href="../index.html">com.codahale.metrics</a>
     </div>
     
    -<h1>Coverage Summary for Class: Gauge (com.codahale.metrics)</h1>
    +<h1>Coverage Summary for Class: Metered (com.codahale.metrics)</h1>
     
     <table class="coverageStats">
    -
     <tr>
       <th class="name">Class</th>
     </tr>
    -  <tr>
    -    <td class="name">Gauge$MockitoMock$KSnylESQ</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Gauge$MockitoMock$KSnylESQ$auxiliary$H3iA5ZrO</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Gauge$MockitoMock$KSnylESQ$auxiliary$oaTpXMBj</td>
    -  </tr>
     <tr>
    -  <td class="name"><strong>Total</strong></td>
    +  <td class="name">Metered</td>
     </tr>
    +
     </table>
     
     <br/>
    @@ -50,29 +41,51 @@ <h1>Coverage Summary for Class: Gauge (com.codahale.metrics)</h1>
     <pre>
     <code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
     &nbsp;
    -&nbsp;
     &nbsp;/**
    -&nbsp; * A gauge metric is an instantaneous reading of a particular value. To instrument a queue&#39;s depth,
    -&nbsp; * for example:&lt;br&gt;
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; * final Queue&amp;lt;String&amp;gt; queue = new ConcurrentLinkedQueue&amp;lt;String&amp;gt;();
    -&nbsp; * final Gauge&amp;lt;Integer&amp;gt; queueDepth = new Gauge&amp;lt;Integer&amp;gt;() {
    -&nbsp; *     public Integer getValue() {
    -&nbsp; *         return queue.size();
    -&nbsp; *     }
    -&nbsp; * };
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; *
    -&nbsp; * @param &lt;T&gt; the type of the metric&#39;s value
    +&nbsp; * An object which maintains mean and moving average rates.
     &nbsp; */
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface Gauge&lt;T&gt; extends Metric {
    +&nbsp;public interface Metered extends Metric, Counting {
    +&nbsp;    /**
    +&nbsp;     * Returns the number of events which have been marked.
    +&nbsp;     *
    +&nbsp;     * @return the number of events which have been marked
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    long getCount();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the fifteen-minute moving average rate at which events have
    +&nbsp;     * occurred since the meter was created.
    +&nbsp;     *
    +&nbsp;     * @return the fifteen-minute moving average rate at which events have
    +&nbsp;     * occurred since the meter was created
    +&nbsp;     */
    +&nbsp;    double getFifteenMinuteRate();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the five-minute moving average rate at which events have
    +&nbsp;     * occurred since the meter was created.
    +&nbsp;     *
    +&nbsp;     * @return the five-minute moving average rate at which events have
    +&nbsp;     * occurred since the meter was created
    +&nbsp;     */
    +&nbsp;    double getFiveMinuteRate();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the mean rate at which events have occurred since the meter was created.
    +&nbsp;     *
    +&nbsp;     * @return the mean rate at which events have occurred since the meter was created
    +&nbsp;     */
    +&nbsp;    double getMeanRate();
    +&nbsp;
     &nbsp;    /**
    -&nbsp;     * Returns the metric&#39;s current value.
    +&nbsp;     * Returns the one-minute moving average rate at which events have
    +&nbsp;     * occurred since the meter was created.
     &nbsp;     *
    -&nbsp;     * @return the metric&#39;s current value
    +&nbsp;     * @return the one-minute moving average rate at which events have
    +&nbsp;     * occurred since the meter was created
     &nbsp;     */
    -&nbsp;    T getValue();
    +&nbsp;    double getOneMinuteRate();
     &nbsp;}
     </code>
     </pre>
    @@ -97,7 +110,7 @@ <h1>Coverage Summary for Class: Gauge (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-4.html
    index 5468d6bfbc..dbfc688054 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-4.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-4.html
    @@ -484,7 +484,7 @@ <h1>Coverage Summary for Class: ConsoleReporter (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-5.html
    index 9bc85d0299..b979b87149 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-5.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-5.html
    @@ -154,7 +154,7 @@ <h1>Coverage Summary for Class: Counter (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-6.html
    index 4a4f2010b6..e93e9396a1 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-6.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-6.html
    @@ -471,7 +471,7 @@ <h1>Coverage Summary for Class: CsvReporter (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-7.html
    index 1fe7a543cb..f464a7719b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-7.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-7.html
    @@ -141,7 +141,7 @@ <h1>Coverage Summary for Class: DefaultSettableGauge (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-8.html
    index 3962165cd1..9bf70b1ac3 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-8.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-8.html
    @@ -131,7 +131,7 @@ <h1>Coverage Summary for Class: DerivativeGauge (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-9.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-9.html
    index 9951053317..da01262f6a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-9.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-9.html
    @@ -36,6 +36,10 @@ <h1>Coverage Summary for Class: EWMA (com.codahale.metrics)</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
    @@ -58,6 +62,14 @@ <h1>Coverage Summary for Class: EWMA (com.codahale.metrics)</h1>
         (8/8)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -164,7 +176,7 @@ <h1>Coverage Summary for Class: EWMA (com.codahale.metrics)</h1>
     &nbsp;    public void tick() {
     <b class="fc">&nbsp;        final long count = uncounted.sumThenReset();</b>
     <b class="fc">&nbsp;        final double instantRate = count / interval;</b>
    -<b class="fc">&nbsp;        if (initialized) {</b>
    +<b class="pc">&nbsp;        if (initialized) {</b>
     <b class="fc">&nbsp;            final double oldRate = this.rate;</b>
     <b class="fc">&nbsp;            rate = oldRate + (alpha * (instantRate - oldRate));</b>
     <b class="fc">&nbsp;        } else {</b>
    @@ -206,7 +218,7 @@ <h1>Coverage Summary for Class: EWMA (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-a.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-a.html
    index 8327ed74af..aaf0e136ff 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-a.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-a.html
    @@ -36,6 +36,10 @@ <h1>Coverage Summary for Class: ExponentialMovingAverages (com.codahale.metrics)
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
    @@ -58,6 +62,14 @@ <h1>Coverage Summary for Class: ExponentialMovingAverages (com.codahale.metrics)
         (7/8)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.7%
    +  </span>
    +  <span class="absValue">
    +    (1/6)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         96%
    @@ -124,11 +136,11 @@ <h1>Coverage Summary for Class: ExponentialMovingAverages (com.codahale.metrics)
     <b class="fc">&nbsp;        final long oldTick = lastTick.get();</b>
     <b class="fc">&nbsp;        final long newTick = clock.getTick();</b>
     <b class="fc">&nbsp;        final long age = newTick - oldTick;</b>
    -<b class="fc">&nbsp;        if (age &gt; TICK_INTERVAL) {</b>
    +<b class="pc">&nbsp;        if (age &gt; TICK_INTERVAL) {</b>
     <b class="fc">&nbsp;            final long newIntervalStartTick = newTick - age % TICK_INTERVAL;</b>
    -<b class="fc">&nbsp;            if (lastTick.compareAndSet(oldTick, newIntervalStartTick)) {</b>
    +<b class="pc">&nbsp;            if (lastTick.compareAndSet(oldTick, newIntervalStartTick)) {</b>
     <b class="fc">&nbsp;                final long requiredTicks = age / TICK_INTERVAL;</b>
    -<b class="fc">&nbsp;                for (long i = 0; i &lt; requiredTicks; i++) {</b>
    +<b class="pc">&nbsp;                for (long i = 0; i &lt; requiredTicks; i++) {</b>
     <b class="fc">&nbsp;                    m1Rate.tick();</b>
     <b class="fc">&nbsp;                    m5Rate.tick();</b>
     <b class="fc">&nbsp;                    m15Rate.tick();</b>
    @@ -175,7 +187,7 @@ <h1>Coverage Summary for Class: ExponentialMovingAverages (com.codahale.metrics)
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-b.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-b.html
    index 33c77d7d70..516d1fe90c 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-b.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-b.html
    @@ -36,6 +36,10 @@ <h1>Coverage Summary for Class: ExponentiallyDecayingReservoir (com.codahale.met
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
    @@ -58,6 +62,14 @@ <h1>Coverage Summary for Class: ExponentiallyDecayingReservoir (com.codahale.met
         (16/16)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    10%
    +  </span>
    +  <span class="absValue">
    +    (2/20)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         96.7%
    @@ -176,13 +188,13 @@ <h1>Coverage Summary for Class: ExponentiallyDecayingReservoir (com.codahale.met
     <b class="fc">&nbsp;            final double priority = itemWeight / ThreadLocalRandom.current().nextDouble();</b>
     &nbsp;
     <b class="fc">&nbsp;            final long newCount = count.incrementAndGet();</b>
    -<b class="fc">&nbsp;            if (newCount &lt;= size || values.isEmpty()) {</b>
    +<b class="pc">&nbsp;            if (newCount &lt;= size || values.isEmpty()) {</b>
     <b class="fc">&nbsp;                values.put(priority, sample);</b>
     &nbsp;            } else {
     <b class="fc">&nbsp;                Double first = values.firstKey();</b>
    -<b class="fc">&nbsp;                if (first &lt; priority &amp;&amp; values.putIfAbsent(priority, sample) == null) {</b>
    +<b class="pc">&nbsp;                if (first &lt; priority &amp;&amp; values.putIfAbsent(priority, sample) == null) {</b>
     &nbsp;                    // ensure we always remove an item
    -<b class="fc">&nbsp;                    while (values.remove(first) == null) {</b>
    +<b class="pc">&nbsp;                    while (values.remove(first) == null) {</b>
     <b class="nc">&nbsp;                        first = values.firstKey();</b>
     &nbsp;                    }
     &nbsp;                }
    @@ -195,7 +207,7 @@ <h1>Coverage Summary for Class: ExponentiallyDecayingReservoir (com.codahale.met
     &nbsp;    private void rescaleIfNeeded() {
     <b class="fc">&nbsp;        final long now = clock.getTick();</b>
     <b class="fc">&nbsp;        final long lastScaleTickSnapshot = lastScaleTick.get();</b>
    -<b class="fc">&nbsp;        if (now - lastScaleTickSnapshot &gt;= RESCALE_THRESHOLD) {</b>
    +<b class="pc">&nbsp;        if (now - lastScaleTickSnapshot &gt;= RESCALE_THRESHOLD) {</b>
     <b class="fc">&nbsp;            rescale(now, lastScaleTickSnapshot);</b>
     &nbsp;        }
     &nbsp;    }
    @@ -240,18 +252,18 @@ <h1>Coverage Summary for Class: ExponentiallyDecayingReservoir (com.codahale.met
     &nbsp;    private void rescale(long now, long lastTick) {
     <b class="fc">&nbsp;        lockForRescale();</b>
     &nbsp;        try {
    -<b class="fc">&nbsp;            if (lastScaleTick.compareAndSet(lastTick, now)) {</b>
    +<b class="pc">&nbsp;            if (lastScaleTick.compareAndSet(lastTick, now)) {</b>
     <b class="fc">&nbsp;                final long oldStartTime = startTime;</b>
     <b class="fc">&nbsp;                this.startTime = currentTimeInSeconds();</b>
     <b class="fc">&nbsp;                final double scalingFactor = exp(-alpha * (startTime - oldStartTime));</b>
    -<b class="fc">&nbsp;                if (Double.compare(scalingFactor, 0) == 0) {</b>
    +<b class="pc">&nbsp;                if (Double.compare(scalingFactor, 0) == 0) {</b>
     <b class="fc">&nbsp;                    values.clear();</b>
     &nbsp;                } else {
     <b class="fc">&nbsp;                    final ArrayList&lt;Double&gt; keys = new ArrayList&lt;&gt;(values.keySet());</b>
    -<b class="fc">&nbsp;                    for (Double key : keys) {</b>
    +<b class="pc">&nbsp;                    for (Double key : keys) {</b>
     <b class="fc">&nbsp;                        final WeightedSample sample = values.remove(key);</b>
     <b class="fc">&nbsp;                        final WeightedSample newSample = new WeightedSample(sample.value, sample.weight * scalingFactor);</b>
    -<b class="fc">&nbsp;                        if (Double.compare(newSample.weight, 0) == 0) {</b>
    +<b class="pc">&nbsp;                        if (Double.compare(newSample.weight, 0) == 0) {</b>
     <b class="fc">&nbsp;                            continue;</b>
     &nbsp;                        }
     <b class="fc">&nbsp;                        values.put(key * scalingFactor, newSample);</b>
    @@ -305,7 +317,7 @@ <h1>Coverage Summary for Class: ExponentiallyDecayingReservoir (com.codahale.met
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-c.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-c.html
    index 7c114df673..55ef4b84c6 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-c.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-c.html
    @@ -119,7 +119,7 @@ <h1>Coverage Summary for Class: FixedNameCsvFileProvider (com.codahale.metrics)<
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-d.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-d.html
    index 151120e4c1..3e3c3717fc 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-d.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-d.html
    @@ -156,7 +156,7 @@ <h1>Coverage Summary for Class: Histogram (com.codahale.metrics)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-e.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-e.html
    index a61325b1f4..20718f2120 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-e.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-e.html
    @@ -384,7 +384,7 @@ <h1>Coverage Summary for Class: InstrumentedExecutorService (com.codahale.metric
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-f.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-f.html
    index e9d927c103..55fd499b91 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-f.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-f.html
    @@ -459,7 +459,7 @@ <h1>Coverage Summary for Class: InstrumentedScheduledExecutorService (com.codaha
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index.html
    index 343588b639..f475456a48 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    +com.codahale.metrics.jdbi</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi</td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (12/15)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.4%
    +    75%
       </span>
       <span class="absValue">
    -    (32/35)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.3%
    +    85.7%
       </span>
       <span class="absValue">
    -    (108/121)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -88,61 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,91 +99,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -245,34 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -299,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK.html
    index 7220ae3bf8..c88e07ba2c 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    +com.codahale.metrics.jdbi</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi</td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (12/15)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.4%
    +    75%
       </span>
       <span class="absValue">
    -    (32/35)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.3%
    +    85.7%
       </span>
       <span class="absValue">
    -    (108/121)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -88,61 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,91 +99,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -245,34 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -299,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
    index c8cd194496..b67eb08d1f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    +com.codahale.metrics.jdbi</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi</td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (12/15)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.4%
    +    75%
       </span>
       <span class="absValue">
    -    (32/35)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.3%
    +    85.7%
       </span>
       <span class="absValue">
    -    (108/121)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -88,23 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -113,23 +97,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
         (1/1)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -137,142 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -299,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS.html
    index ae2523575f..451551f66a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    +com.codahale.metrics.jdbi</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi</td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (12/15)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.4%
    +    75%
       </span>
       <span class="absValue">
    -    (32/35)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.3%
    +    85.7%
       </span>
       <span class="absValue">
    -    (108/121)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -88,88 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -180,64 +99,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -245,34 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -299,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
    index 6ff1d6c9e5..f056447d8a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    +com.codahale.metrics.jdbi</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi</td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (12/15)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.4%
    +    75%
       </span>
       <span class="absValue">
    -    (32/35)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.3%
    +    85.7%
       </span>
       <span class="absValue">
    -    (108/121)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -88,23 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -113,23 +97,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
         (1/1)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -137,142 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -299,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE.html
    index 6357c01b10..557b27ff2d 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    +com.codahale.metrics.jdbi</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi</td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (12/15)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.4%
    +    75%
       </span>
       <span class="absValue">
    -    (32/35)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.3%
    +    85.7%
       </span>
       <span class="absValue">
    -    (108/121)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -88,169 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -261,18 +99,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    85.7%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -299,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
    index 43662a41e1..dde7380ff1 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    +com.codahale.metrics.jdbi</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi</td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (12/15)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.4%
    +    75%
       </span>
       <span class="absValue">
    -    (32/35)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.3%
    +    85.7%
       </span>
       <span class="absValue">
    -    (108/121)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -88,23 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -112,78 +96,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
       <span class="absValue">
         (1/1)
       </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -191,88 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -299,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD.html
    index 9e0eb0d288..7774e45c3f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    +com.codahale.metrics.jdbi</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi</td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (12/15)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.4%
    +    75%
       </span>
       <span class="absValue">
    -    (32/35)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.3%
    +    85.7%
       </span>
       <span class="absValue">
    -    (108/121)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -88,88 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -180,64 +99,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -245,34 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -299,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
    index dccf4a463f..0f015b9e46 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    +com.codahale.metrics.jdbi</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi</td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (12/15)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.4%
    +    75%
       </span>
       <span class="absValue">
    -    (32/35)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.3%
    +    85.7%
       </span>
       <span class="absValue">
    -    (108/121)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -88,23 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -113,23 +97,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
         (1/1)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -137,142 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -299,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
    index f4f46fdb48..760ff8aa3b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    +com.codahale.metrics.jdbi</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi</td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (12/15)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.4%
    +    75%
       </span>
       <span class="absValue">
    -    (32/35)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.3%
    +    85.7%
       </span>
       <span class="absValue">
    -    (108/121)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -88,23 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -113,23 +97,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
         (1/1)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -137,142 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -299,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-1.html
    index 51ca90aa51..50c434bc00 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > BasicSqlNameStrategy</title>
    +  <title>Coverage Report > InstrumentedTimingCollector</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +    <a href="../index.html">com.codahale.metrics.jdbi</a>
     </div>
     
    -<h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +<h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -41,29 +41,29 @@ <h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi.
     </th>
     </tr>
     <tr>
    -  <td class="name">BasicSqlNameStrategy</td>
    +  <td class="name">InstrumentedTimingCollector</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/1)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    75%
       </span>
       <span class="absValue">
    -    (0/1)
    +    (3/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    85.7%
       </span>
       <span class="absValue">
    -    (0/1)
    +    (6/7)
       </span>
     </td>
     </tr>
    @@ -75,12 +75,43 @@ <h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi.
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi;
     &nbsp;
    -&nbsp;public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public BasicSqlNameStrategy() {
    -<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.SQL_OBJECT);
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.jdbi.strategies.SmartNameStrategy;
    +&nbsp;import com.codahale.metrics.jdbi.strategies.StatementNameStrategy;
    +&nbsp;import org.skife.jdbi.v2.StatementContext;
    +&nbsp;import org.skife.jdbi.v2.TimingCollector;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link TimingCollector} implementation for JDBI which uses the SQL objects&#39; class names and
    +&nbsp; * method names for millisecond-precision timers.
    +&nbsp; */
    +&nbsp;public class InstrumentedTimingCollector implements TimingCollector {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final StatementNameStrategy statementNameStrategy;
    +&nbsp;
    +&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry,
    +<b class="fc">&nbsp;                                       StatementNameStrategy statementNameStrategy) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void collect(long elapsedTime, StatementContext ctx) {
    +<b class="fc">&nbsp;        final Timer timer = getTimer(ctx);</b>
    +<b class="fc">&nbsp;        timer.update(elapsedTime, TimeUnit.NANOSECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer getTimer(StatementContext ctx) {
    +<b class="fc">&nbsp;        return registry.timer(statementNameStrategy.getStatementName(ctx));</b>
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -106,7 +137,7 @@ <h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi.
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index.html
    index 01336ed03e..9901f31021 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    +com.codahale.metrics.jdbi.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (12/15)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    91.4%
       </span>
       <span class="absValue">
    -    (6/8)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.2%
    +    89.3%
       </span>
       <span class="absValue">
    -    (15/17)
    +    (108/121)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,61 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,10 +153,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (4/5)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
    @@ -115,21 +169,75 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (7/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -137,7 +245,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
       </span>
     </td>
       </tr>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK.html
    index f43faeca8a..778bba469d 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    +com.codahale.metrics.jdbi.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (12/15)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    91.4%
       </span>
       <span class="absValue">
    -    (6/8)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.2%
    +    89.3%
       </span>
       <span class="absValue">
    -    (15/17)
    +    (108/121)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,61 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,10 +153,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (4/5)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
    @@ -115,21 +169,75 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (7/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -137,7 +245,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
       </span>
     </td>
       </tr>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
    index dbc4fbd19e..5add49a81b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    +com.codahale.metrics.jdbi.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (12/15)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    91.4%
       </span>
       <span class="absValue">
    -    (6/8)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.2%
    +    89.3%
       </span>
       <span class="absValue">
    -    (15/17)
    +    (108/121)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -96,13 +112,24 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
       <span class="absValue">
         (1/1)
       </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,12 +137,66 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,10 +207,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (4/5)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
    @@ -139,6 +220,60 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
       <span class="absValue">
         (9/10)
       </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
     </td>
       </tr>
     </table>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS.html
    index 8aea9d4819..bdbc8f3bef 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    +com.codahale.metrics.jdbi.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (12/15)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    91.4%
       </span>
       <span class="absValue">
    -    (6/8)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.2%
    +    89.3%
       </span>
       <span class="absValue">
    -    (15/17)
    +    (108/121)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,88 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,10 +180,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (4/5)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
    @@ -115,21 +196,48 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (7/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -137,7 +245,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
       </span>
     </td>
       </tr>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
    index 97a225e8be..10b811883d 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    +com.codahale.metrics.jdbi.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (12/15)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    91.4%
       </span>
       <span class="absValue">
    -    (6/8)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.2%
    +    89.3%
       </span>
       <span class="absValue">
    -    (15/17)
    +    (108/121)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -96,13 +112,24 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
       <span class="absValue">
         (1/1)
       </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,12 +137,39 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (30/35)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,10 +180,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (4/5)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
    @@ -139,6 +193,87 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
       <span class="absValue">
         (9/10)
       </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
     </td>
       </tr>
     </table>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE.html
    index 319deadc00..1d83f34dcc 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    +com.codahale.metrics.jdbi.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (12/15)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    91.4%
       </span>
       <span class="absValue">
    -    (6/8)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.2%
    +    89.3%
       </span>
       <span class="absValue">
    -    (15/17)
    +    (108/121)
       </span>
     </td>
       </tr>
    @@ -88,21 +88,102 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,12 +191,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (30/35)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,10 +207,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (4/5)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
    @@ -139,6 +220,60 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
       <span class="absValue">
         (9/10)
       </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
     </td>
       </tr>
     </table>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
    index 8795e4c37f..96c5d1cf9f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    +com.codahale.metrics.jdbi.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (12/15)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    91.4%
       </span>
       <span class="absValue">
    -    (6/8)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.2%
    +    89.3%
       </span>
       <span class="absValue">
    -    (15/17)
    +    (108/121)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,10 +99,64 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (4/5)
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
    @@ -115,21 +169,21 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -137,7 +191,88 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
       </span>
     </td>
       </tr>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD.html
    index 7d83d66257..8e7db5bea4 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    +com.codahale.metrics.jdbi.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (12/15)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    91.4%
       </span>
       <span class="absValue">
    -    (6/8)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.2%
    +    89.3%
       </span>
       <span class="absValue">
    -    (15/17)
    +    (108/121)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,88 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,10 +180,64 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,12 +245,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (30/35)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +261,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (4/5)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    100%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (1/1)
       </span>
     </td>
       </tr>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
    index 8817445f9f..04e743299a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    +com.codahale.metrics.jdbi.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (12/15)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    91.4%
       </span>
       <span class="absValue">
    -    (6/8)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.2%
    +    89.3%
       </span>
       <span class="absValue">
    -    (15/17)
    +    (108/121)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,37 +99,37 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (4/5)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    100%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (1/1)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -137,7 +137,142 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
       </span>
     </td>
       </tr>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
    index 7662b67ee3..bd05687068 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    +com.codahale.metrics.jdbi.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    +    <td class="name">com.codahale.metrics.jdbi.strategies</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (12/15)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    91.4%
       </span>
       <span class="absValue">
    -    (6/8)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.2%
    +    89.3%
       </span>
       <span class="absValue">
    -    (15/17)
    +    (108/121)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -96,13 +112,24 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
       <span class="absValue">
         (1/1)
       </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,12 +137,66 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
         85.7%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (30/35)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,10 +207,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    100%
       </span>
       <span class="absValue">
    -    (4/5)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
    @@ -139,6 +220,60 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
       <span class="absValue">
         (9/10)
       </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
     </td>
       </tr>
     </table>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-1.html
    index d36f0d31ea..f0cb5b2bf6 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedSqlLogger</title>
    +  <title>Coverage Report > BasicSqlNameStrategy</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3</a>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedSqlLogger (com.codahale.metrics.jdbi3)</h1>
    +<h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -41,29 +41,29 @@ <h1>Coverage Summary for Class: InstrumentedSqlLogger (com.codahale.metrics.jdbi
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedSqlLogger</td>
    +  <td class="name">BasicSqlNameStrategy</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80%
    +    0%
       </span>
       <span class="absValue">
    -    (4/5)
    +    (0/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/1)
       </span>
     </td>
     </tr>
    @@ -75,52 +75,12 @@ <h1>Coverage Summary for Class: InstrumentedSqlLogger (com.codahale.metrics.jdbi
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
     &nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
    -&nbsp;import org.jdbi.v3.core.statement.SqlLogger;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;import java.sql.SQLException;
    -&nbsp;import java.time.temporal.ChronoUnit;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link SqlLogger} implementation for JDBI which uses the SQL objects&#39; class names and
    -&nbsp; * method names for nanosecond-precision timers.
    -&nbsp; */
    -&nbsp;public class InstrumentedSqlLogger implements SqlLogger {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final StatementNameStrategy statementNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedSqlLogger(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedSqlLogger(MetricRegistry registry,
    -<b class="fc">&nbsp;                                 StatementNameStrategy statementNameStrategy) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void logAfterExecution(StatementContext context) {
    -<b class="fc">&nbsp;        log(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void logException(StatementContext context, SQLException ex) {
    -<b class="fc">&nbsp;        log(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void log(StatementContext context) {
    -<b class="fc">&nbsp;        String statementName = statementNameStrategy.getStatementName(context);</b>
    -<b class="fc">&nbsp;        if (statementName != null) {</b>
    -<b class="fc">&nbsp;            final long elapsed = context.getElapsedTime(ChronoUnit.NANOS);</b>
    -<b class="fc">&nbsp;            registry.timer(statementName).update(elapsed, TimeUnit.NANOSECONDS);</b>
    -&nbsp;        }
    +&nbsp;public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;    public BasicSqlNameStrategy() {
    +<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    +&nbsp;                NameStrategies.SQL_OBJECT);
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -146,7 +106,7 @@ <h1>Coverage Summary for Class: InstrumentedSqlLogger (com.codahale.metrics.jdbi
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-2.html
    index 2ec64a4d76..8eab084e0a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-2.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedTimingCollector</title>
    +  <title>Coverage Report > ContextNameStrategy</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3</a>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi3)</h1>
    +<h1>Coverage Summary for Class: ContextNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -41,29 +41,29 @@ <h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metric
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedTimingCollector</td>
    +  <td class="name">ContextNameStrategy</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    0%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (0/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    0%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (0/1)
       </span>
     </td>
     </tr>
    @@ -75,45 +75,19 @@ <h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metric
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
     &nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
    -&nbsp;import org.jdbi.v3.core.statement.SqlLogger;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;import org.jdbi.v3.core.statement.TimingCollector;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
     &nbsp;
     &nbsp;/**
    -&nbsp; * A {@link TimingCollector} implementation for JDBI which uses the SQL objects&#39; class names and
    -&nbsp; * method names for millisecond-precision timers.
    -&nbsp; *
    -&nbsp; * @deprecated Use {@link InstrumentedSqlLogger} and {@link org.jdbi.v3.core.Jdbi#setSqlLogger(SqlLogger)} instead.
    +&nbsp; * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_GROUP} and {@link
    +&nbsp; * NameStrategies#STATEMENT_NAME} for group based display.
     &nbsp; */
    -&nbsp;@Deprecated
    -&nbsp;public class InstrumentedTimingCollector implements TimingCollector {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final StatementNameStrategy statementNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry,
    -<b class="fc">&nbsp;                                       StatementNameStrategy statementNameStrategy) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void collect(long elapsedTime, StatementContext ctx) {
    -<b class="fc">&nbsp;        String statementName = statementNameStrategy.getStatementName(ctx);</b>
    -<b class="fc">&nbsp;        if (statementName != null) {</b>
    -<b class="fc">&nbsp;            registry.timer(statementName).update(elapsedTime, TimeUnit.NANOSECONDS);</b>
    -&nbsp;        }
    +&nbsp;public class ContextNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;    public ContextNameStrategy() {
    +<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    +&nbsp;                NameStrategies.CHECK_RAW,
    +&nbsp;                NameStrategies.CONTEXT_NAME,
    +&nbsp;                NameStrategies.NAIVE_NAME);
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -139,7 +113,7 @@ <h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metric
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-3.html
    new file mode 100644
    index 0000000000..1588bd9d4d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-3.html
    @@ -0,0 +1,135 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > DelegatingStatementNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">DelegatingStatementNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;import org.skife.jdbi.v2.StatementContext;
    +&nbsp;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.List;
    +&nbsp;
    +&nbsp;public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
    +<b class="fc">&nbsp;    private final List&lt;StatementNameStrategy&gt; strategies = new ArrayList&lt;&gt;();</b>
    +&nbsp;
    +<b class="fc">&nbsp;    protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {</b>
    +<b class="fc">&nbsp;        registerStrategies(strategies);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void registerStrategies(StatementNameStrategy... strategies) {
    +<b class="fc">&nbsp;        this.strategies.addAll(Arrays.asList(strategies));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;        for (StatementNameStrategy strategy : strategies) {</b>
    +<b class="fc">&nbsp;            final String statementName = strategy.getStatementName(statementContext);</b>
    +<b class="fc">&nbsp;            if (statementName != null) {</b>
    +<b class="fc">&nbsp;                return statementName;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="nc">&nbsp;        return NameStrategies.UNKNOWN_SQL;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-4.html
    new file mode 100644
    index 0000000000..19f88582fe
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-4.html
    @@ -0,0 +1,116 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > NaiveNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">NaiveNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Very simple strategy, can be used with any JDBI loader to build basic statistics.
    +&nbsp; */
    +&nbsp;public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;    public NaiveNameStrategy() {
    +<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    +&nbsp;                NameStrategies.CHECK_RAW,
    +&nbsp;                NameStrategies.NAIVE_NAME);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-5.html
    new file mode 100644
    index 0000000000..7b17b54699
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-5.html
    @@ -0,0 +1,422 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > NameStrategies</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: NameStrategies (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">NameStrategies</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">NameStrategies$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NameStrategies$CheckEmptyStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NameStrategies$CheckRawStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NameStrategies$ContextClassStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (12/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NameStrategies$ContextNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NameStrategies$NaiveNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (6/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">NameStrategies$SqlObjectStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.4%
    +  </span>
    +  <span class="absValue">
    +    (68/72)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;import org.skife.jdbi.v2.ClasspathStatementLocator;
    +&nbsp;import org.skife.jdbi.v2.StatementContext;
    +&nbsp;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;import java.util.regex.Matcher;
    +&nbsp;import java.util.regex.Pattern;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +<b class="fc">&nbsp;public final class NameStrategies {</b>
    +<b class="fc">&nbsp;    public static final StatementNameStrategy CHECK_EMPTY = new CheckEmptyStrategy();</b>
    +<b class="fc">&nbsp;    public static final StatementNameStrategy CHECK_RAW = new CheckRawStrategy();</b>
    +<b class="fc">&nbsp;    public static final StatementNameStrategy SQL_OBJECT = new SqlObjectStrategy();</b>
    +<b class="fc">&nbsp;    public static final StatementNameStrategy NAIVE_NAME = new NaiveNameStrategy();</b>
    +<b class="fc">&nbsp;    public static final StatementNameStrategy CONTEXT_CLASS = new ContextClassStrategy();</b>
    +<b class="fc">&nbsp;    public static final StatementNameStrategy CONTEXT_NAME = new ContextNameStrategy();</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * An empty SQL statement.
    +&nbsp;     */
    +&nbsp;    private static final String EMPTY_SQL = &quot;sql.empty&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Unknown SQL.
    +&nbsp;     */
    +&nbsp;    static final String UNKNOWN_SQL = &quot;sql.unknown&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Context attribute name for the metric class.
    +&nbsp;     */
    +&nbsp;    public static final String STATEMENT_CLASS = &quot;_metric_class&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Context attribute name for the metric group.
    +&nbsp;     */
    +&nbsp;    public static final String STATEMENT_GROUP = &quot;_metric_group&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Context attribute name for the metric type.
    +&nbsp;     */
    +&nbsp;    public static final String STATEMENT_TYPE = &quot;_metric_type&quot;;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Context attribute name for the metric name.
    +&nbsp;     */
    +&nbsp;    public static final String STATEMENT_NAME = &quot;_metric_name&quot;;
    +&nbsp;
    +&nbsp;    private static String forRawSql(String rawSql) {
    +<b class="fc">&nbsp;        return name(&quot;sql&quot;, &quot;raw&quot;, rawSql);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class CheckEmptyStrategy implements StatementNameStrategy {</b>
    +<b class="fc">&nbsp;        private CheckEmptyStrategy() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (rawSql == null || rawSql.length() == 0) {</b>
    +<b class="fc">&nbsp;                return EMPTY_SQL;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class CheckRawStrategy implements StatementNameStrategy {</b>
    +<b class="fc">&nbsp;        private CheckRawStrategy() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (ClasspathStatementLocator.looksLikeSql(rawSql)) {</b>
    +<b class="fc">&nbsp;                return forRawSql(rawSql);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class NaiveNameStrategy implements StatementNameStrategy {</b>
    +<b class="fc">&nbsp;        private NaiveNameStrategy() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    +&nbsp;
    +&nbsp;            // Is it using the template loader?
    +<b class="fc">&nbsp;            final int colon = rawSql.indexOf(&#39;:&#39;);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (colon == -1) {</b>
    +&nbsp;                // No package? Just return the name, JDBI figured out somehow on how to find the raw sql for this statement.
    +<b class="fc">&nbsp;                return forRawSql(rawSql);</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            final String group = rawSql.substring(0, colon);</b>
    +<b class="nc">&nbsp;            final String name = rawSql.substring(colon + 1);</b>
    +<b class="nc">&nbsp;            return name(group, name);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class SqlObjectStrategy implements StatementNameStrategy {</b>
    +<b class="fc">&nbsp;        private SqlObjectStrategy() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final Class&lt;?&gt; clazz = statementContext.getSqlObjectType();</b>
    +<b class="fc">&nbsp;            final Method method = statementContext.getSqlObjectMethod();</b>
    +<b class="fc">&nbsp;            if (clazz != null) {</b>
    +<b class="fc">&nbsp;                final String rawSql = statementContext.getRawSql();</b>
    +&nbsp;
    +<b class="fc">&nbsp;                final String group = clazz.getPackage().getName();</b>
    +<b class="fc">&nbsp;                final String name = clazz.getSimpleName();</b>
    +<b class="fc">&nbsp;                final String type = method == null ? rawSql : method.getName();</b>
    +<b class="fc">&nbsp;                return name(group, name, type);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class ContextClassStrategy implements StatementNameStrategy {</b>
    +<b class="fc">&nbsp;        private ContextClassStrategy() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final Object classObj = statementContext.getAttribute(STATEMENT_CLASS);</b>
    +<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (classObj == null || nameObj == null) {</b>
    +<b class="fc">&nbsp;                return null;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            final String className = (String) classObj;</b>
    +<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    +<b class="fc">&nbsp;            if (dotPos == -1) {</b>
    +<b class="nc">&nbsp;                return null;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            return name(className.substring(0, dotPos),</b>
    +<b class="fc">&nbsp;                    className.substring(dotPos + 1),</b>
    +&nbsp;                    statementName);
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static final class ContextNameStrategy implements StatementNameStrategy {</b>
    +&nbsp;        /**
    +&nbsp;         * File pattern to shorten the group name.
    +&nbsp;         */
    +<b class="fc">&nbsp;        private static final Pattern SHORT_PATTERN = Pattern.compile(&quot;^(.*?)/(.*?)(-sql)?\\.st(g)?$&quot;);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        private ContextNameStrategy() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final Object groupObj = statementContext.getAttribute(STATEMENT_GROUP);</b>
    +<b class="fc">&nbsp;            final Object typeObj = statementContext.getAttribute(STATEMENT_TYPE);</b>
    +<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (groupObj == null || nameObj == null) {</b>
    +<b class="fc">&nbsp;                return null;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            final String group = (String) groupObj;</b>
    +<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (typeObj == null) {</b>
    +<b class="fc">&nbsp;                final Matcher matcher = SHORT_PATTERN.matcher(group);</b>
    +<b class="fc">&nbsp;                if (matcher.matches()) {</b>
    +<b class="fc">&nbsp;                    final String groupName = matcher.group(1);</b>
    +<b class="fc">&nbsp;                    final String typeName = matcher.group(2);</b>
    +<b class="fc">&nbsp;                    return name(groupName, typeName, statementName);</b>
    +&nbsp;                }
    +&nbsp;
    +<b class="fc">&nbsp;                return name(group, statementName, &quot;&quot;);</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                final String type = (String) typeObj;</b>
    +&nbsp;
    +<b class="fc">&nbsp;                return name(group, type, statementName);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private NameStrategies() {
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-6.html
    new file mode 100644
    index 0000000000..0b8a593568
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-6.html
    @@ -0,0 +1,239 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ShortNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ShortNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ShortNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">ShortNameStrategy$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">ShortNameStrategy$ShortContextClassStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (13/15)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">ShortNameStrategy$ShortSqlObjectStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80%
    +  </span>
    +  <span class="absValue">
    +    (12/15)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (30/35)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;import org.skife.jdbi.v2.StatementContext;
    +&nbsp;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Assembles all JDBI stats under a common prefix (passed in at constructor time). Stats are grouped
    +&nbsp; * by class name and method; a shortening strategy is applied to make the JMX output nicer.
    +&nbsp; */
    +<b class="fc">&nbsp;public final class ShortNameStrategy extends DelegatingStatementNameStrategy {</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;String, String&gt; shortClassNames = new ConcurrentHashMap&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    private final String baseJmxName;
    +&nbsp;
    +<b class="fc">&nbsp;    public ShortNameStrategy(String baseJmxName) {</b>
    +<b class="fc">&nbsp;        this.baseJmxName = baseJmxName;</b>
    +&nbsp;
    +&nbsp;        // Java does not allow super (..., new ShortContextClassStrategy(), new ShortSqlObjectStrategy(), ...);
    +&nbsp;        // ==&gt; No enclosing instance of type &lt;xxx&gt; is available due to some intermediate constructor invocation. Lame.
    +<b class="fc">&nbsp;        registerStrategies(NameStrategies.CHECK_EMPTY,</b>
    +&nbsp;                new ShortContextClassStrategy(),
    +&nbsp;                new ShortSqlObjectStrategy(),
    +&nbsp;                NameStrategies.CHECK_RAW,
    +&nbsp;                NameStrategies.NAIVE_NAME);
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private final class ShortContextClassStrategy implements StatementNameStrategy {</b>
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final Object classObj = statementContext.getAttribute(NameStrategies.STATEMENT_CLASS);</b>
    +<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(NameStrategies.STATEMENT_NAME);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (classObj == null || nameObj == null) {</b>
    +<b class="fc">&nbsp;                return null;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            final String className = (String) classObj;</b>
    +<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    +<b class="fc">&nbsp;            if (dotPos == -1) {</b>
    +<b class="nc">&nbsp;                return null;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            final String shortName = className.substring(dotPos + 1);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final String oldClassName = shortClassNames.putIfAbsent(shortName, className);</b>
    +<b class="fc">&nbsp;            if (oldClassName == null || oldClassName.equals(className)) {</b>
    +<b class="fc">&nbsp;                return name(baseJmxName, shortName, statementName);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                return name(baseJmxName, className, statementName);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private final class ShortSqlObjectStrategy implements StatementNameStrategy {</b>
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final Class&lt;?&gt; clazz = statementContext.getSqlObjectType();</b>
    +<b class="fc">&nbsp;            final Method method = statementContext.getSqlObjectMethod();</b>
    +<b class="fc">&nbsp;            if (clazz != null &amp;&amp; method != null) {</b>
    +<b class="fc">&nbsp;                final String className = clazz.getName();</b>
    +<b class="fc">&nbsp;                final String statementName = method.getName();</b>
    +&nbsp;
    +<b class="fc">&nbsp;                final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    +<b class="fc">&nbsp;                if (dotPos == -1) {</b>
    +<b class="nc">&nbsp;                    return null;</b>
    +&nbsp;                }
    +&nbsp;
    +<b class="fc">&nbsp;                final String shortName = className.substring(dotPos + 1);</b>
    +&nbsp;
    +<b class="fc">&nbsp;                final String oldClassName = shortClassNames.putIfAbsent(shortName, className);</b>
    +<b class="fc">&nbsp;                if (oldClassName == null || oldClassName.equals(className)) {</b>
    +<b class="fc">&nbsp;                    return name(baseJmxName, shortName, statementName);</b>
    +&nbsp;                } else {
    +<b class="nc">&nbsp;                    return name(baseJmxName, className, statementName);</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-7.html
    new file mode 100644
    index 0000000000..96be79bbf4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-7.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SmartNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SmartNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_CLASS} and {@link
    +&nbsp; * NameStrategies#STATEMENT_NAME} for class based display or {@link NameStrategies#STATEMENT_GROUP}
    +&nbsp; * and {@link NameStrategies#STATEMENT_NAME} for group based display.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Also knows how to deal with SQL Object statements.
    +&nbsp; */
    +&nbsp;public class SmartNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;    public SmartNameStrategy() {
    +<b class="fc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    +&nbsp;                NameStrategies.CONTEXT_CLASS,
    +&nbsp;                NameStrategies.CONTEXT_NAME,
    +&nbsp;                NameStrategies.SQL_OBJECT,
    +&nbsp;                NameStrategies.CHECK_RAW,
    +&nbsp;                NameStrategies.NAIVE_NAME);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-8.html
    new file mode 100644
    index 0000000000..ab66120e44
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-8.html
    @@ -0,0 +1,78 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > StatementNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">StatementNameStrategy</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    +&nbsp;
    +&nbsp;import org.skife.jdbi.v2.StatementContext;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Interface for strategies to statement contexts to metric names.
    +&nbsp; */
    +&nbsp;public interface StatementNameStrategy {
    +&nbsp;    String getStatementName(StatementContext statementContext);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index.html
    index 643a2240cc..45c3117202 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    +com.codahale.metrics.jdbi3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (17/17)
    +    (6/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    88.2%
       </span>
       <span class="absValue">
    -    (45/47)
    +    (15/17)
       </span>
     </td>
       </tr>
    @@ -88,61 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,23 +99,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (4/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    90%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (9/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -180,72 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    85.7%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK.html
    index 73ac4ee683..0353410633 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    +com.codahale.metrics.jdbi3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (17/17)
    +    (6/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    88.2%
       </span>
       <span class="absValue">
    -    (45/47)
    +    (15/17)
       </span>
     </td>
       </tr>
    @@ -88,61 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,23 +99,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (4/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    90%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (9/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -180,72 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    85.7%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
    index 34b9b660a9..ab6bd9e442 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    +com.codahale.metrics.jdbi3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (17/17)
    +    (6/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    88.2%
       </span>
       <span class="absValue">
    -    (45/47)
    +    (15/17)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,50 +99,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    85.7%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (6/7)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,99 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (4/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (9/10)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS.html
    index 7d6b0adfa7..23a3150f3b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    +com.codahale.metrics.jdbi3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (17/17)
    +    (6/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    88.2%
       </span>
       <span class="absValue">
    -    (45/47)
    +    (15/17)
       </span>
     </td>
       </tr>
    @@ -88,61 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,23 +99,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (4/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    90%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (9/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -180,72 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    85.7%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
    index d183f3a19b..b847567f7e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    +com.codahale.metrics.jdbi3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (17/17)
    +    (6/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    88.2%
       </span>
       <span class="absValue">
    -    (45/47)
    +    (15/17)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,50 +99,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    85.7%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (6/7)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,99 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (4/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (9/10)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE.html
    index 78e7052298..a82d766e2c 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    +com.codahale.metrics.jdbi3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (17/17)
    +    (6/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    88.2%
       </span>
       <span class="absValue">
    -    (45/47)
    +    (15/17)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,58 +99,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    85.7%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (6/7)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -161,91 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (4/5)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (9/10)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
    index c833bef2f5..29f92a8b85 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    +com.codahale.metrics.jdbi3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (17/17)
    +    (6/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    88.2%
       </span>
       <span class="absValue">
    -    (45/47)
    +    (15/17)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,31 +99,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (4/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (9/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -134,118 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    85.7%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD.html
    index aa652a8a4e..dea897472f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    +com.codahale.metrics.jdbi3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (17/17)
    +    (6/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    88.2%
       </span>
       <span class="absValue">
    -    (45/47)
    +    (15/17)
       </span>
     </td>
       </tr>
    @@ -88,61 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,23 +99,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    85.7%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (6/7)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -180,72 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    +    (4/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    90%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (9/10)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
    index 0817c944c1..0d3ca177b5 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    +com.codahale.metrics.jdbi3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (17/17)
    +    (6/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    88.2%
       </span>
       <span class="absValue">
    -    (45/47)
    +    (15/17)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,50 +99,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (4/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (9/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,99 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    85.7%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
    index c134c79bc6..11ece65511 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    +com.codahale.metrics.jdbi3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    +    <td class="name">com.codahale.metrics.jdbi3</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    75%
       </span>
       <span class="absValue">
    -    (17/17)
    +    (6/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    88.2%
       </span>
       <span class="absValue">
    -    (45/47)
    +    (15/17)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,50 +99,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    85.7%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (6/7)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,99 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (4/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (9/10)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-1.html
    index f0c73ec619..71ceddc9ba 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > BasicSqlNameStrategy</title>
    +  <title>Coverage Report > InstrumentedSqlLogger</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +    <a href="../index.html">com.codahale.metrics.jdbi3</a>
     </div>
     
    -<h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +<h1>Coverage Summary for Class: InstrumentedSqlLogger (com.codahale.metrics.jdbi3)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -41,7 +41,7 @@ <h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi3
     </th>
     </tr>
     <tr>
    -  <td class="name">BasicSqlNameStrategy</td>
    +  <td class="name">InstrumentedSqlLogger</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -52,18 +52,18 @@ <h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi3
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    80%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (4/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (9/10)
       </span>
     </td>
     </tr>
    @@ -75,16 +75,52 @@ <h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi3
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
    +&nbsp;import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
    +&nbsp;import org.jdbi.v3.core.statement.SqlLogger;
    +&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    +&nbsp;
    +&nbsp;import java.sql.SQLException;
    +&nbsp;import java.time.temporal.ChronoUnit;
    +&nbsp;import java.util.concurrent.TimeUnit;
     &nbsp;
     &nbsp;/**
    -&nbsp; * Collects metrics by respective SQLObject methods.
    +&nbsp; * A {@link SqlLogger} implementation for JDBI which uses the SQL objects&#39; class names and
    +&nbsp; * method names for nanosecond-precision timers.
     &nbsp; */
    -&nbsp;public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;public class InstrumentedSqlLogger implements SqlLogger {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final StatementNameStrategy statementNameStrategy;
    +&nbsp;
    +&nbsp;    public InstrumentedSqlLogger(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedSqlLogger(MetricRegistry registry,
    +<b class="fc">&nbsp;                                 StatementNameStrategy statementNameStrategy) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void logAfterExecution(StatementContext context) {
    +<b class="fc">&nbsp;        log(context);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void logException(StatementContext context, SQLException ex) {
    +<b class="fc">&nbsp;        log(context);</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;    public BasicSqlNameStrategy() {
    -<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    -&nbsp;                DefaultNameStrategy.SQL_OBJECT);
    +&nbsp;    private void log(StatementContext context) {
    +<b class="fc">&nbsp;        String statementName = statementNameStrategy.getStatementName(context);</b>
    +<b class="fc">&nbsp;        if (statementName != null) {</b>
    +<b class="fc">&nbsp;            final long elapsed = context.getElapsedTime(ChronoUnit.NANOS);</b>
    +<b class="fc">&nbsp;            registry.timer(statementName).update(elapsed, TimeUnit.NANOSECONDS);</b>
    +&nbsp;        }
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -110,7 +146,7 @@ <h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi3
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-2.html
    index 29ed0add56..41f093f4fd 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-2.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DefaultNameStrategy</title>
    +  <title>Coverage Report > InstrumentedTimingCollector</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,16 +19,19 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +    <a href="../index.html">com.codahale.metrics.jdbi3</a>
     </div>
     
    -<h1>Coverage Summary for Class: DefaultNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +<h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi3)</h1>
     
     <table class="coverageStats">
    -
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
     ">
       Method, %
     </th>
    @@ -38,119 +41,33 @@ <h1>Coverage Summary for Class: DefaultNameStrategy (com.codahale.metrics.jdbi3.
     </th>
     </tr>
     <tr>
    -  <td class="name">DefaultNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$2</td>
    +  <td class="name">InstrumentedTimingCollector</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (2/3)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$3</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    85.7%
       </span>
       <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    +    (6/7)
       </span>
     </td>
     </tr>
    +
     </table>
     
     <br/>
    @@ -158,64 +75,46 @@ <h1>Coverage Summary for Class: DefaultNameStrategy (com.codahale.metrics.jdbi3.
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3;
     &nbsp;
     &nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.jdbi.v3.core.extension.ExtensionMethod;
    +&nbsp;import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
    +&nbsp;import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
    +&nbsp;import org.jdbi.v3.core.statement.SqlLogger;
     &nbsp;import org.jdbi.v3.core.statement.StatementContext;
    +&nbsp;import org.jdbi.v3.core.statement.TimingCollector;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
     &nbsp;
     &nbsp;/**
    -&nbsp; * Default strategies which build a basis of more complex strategies
    +&nbsp; * A {@link TimingCollector} implementation for JDBI which uses the SQL objects&#39; class names and
    +&nbsp; * method names for millisecond-precision timers.
    +&nbsp; *
    +&nbsp; * @deprecated Use {@link InstrumentedSqlLogger} and {@link org.jdbi.v3.core.Jdbi#setSqlLogger(SqlLogger)} instead.
     &nbsp; */
    -<b class="fc">&nbsp;public enum DefaultNameStrategy implements StatementNameStrategy {</b>
    +&nbsp;@Deprecated
    +&nbsp;public class InstrumentedTimingCollector implements TimingCollector {
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * If no SQL in the context, returns `sql.empty`, otherwise falls through
    -&nbsp;     */
    -<b class="fc">&nbsp;    CHECK_EMPTY {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -<b class="fc">&nbsp;            return rawSql == null || rawSql.isEmpty() ? &quot;sql.empty&quot; : null;</b>
    -&nbsp;        }
    -&nbsp;    },
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final StatementNameStrategy statementNameStrategy;
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * If there is an SQL object attached to the context, returns the name package,
    -&nbsp;     * the class and the method on which SQL is declared. If not SQL object is attached,
    -&nbsp;     * falls through
    -&nbsp;     */
    -<b class="fc">&nbsp;    SQL_OBJECT {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            ExtensionMethod extensionMethod = statementContext.getExtensionMethod();</b>
    -<b class="fc">&nbsp;            if (extensionMethod != null) {</b>
    -<b class="fc">&nbsp;                return MetricRegistry.name(extensionMethod.getType(), extensionMethod.getMethod().getName());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    },
    +&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a raw SQL in the context (even if it&#39;s not exist)
    -&nbsp;     */
    -<b class="fc">&nbsp;    NAIVE_NAME {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            return statementContext.getRawSql();</b>
    -&nbsp;        }
    -&nbsp;    },
    +&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry,
    +<b class="fc">&nbsp;                                       StatementNameStrategy statementNameStrategy) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the `sql.raw` constant
    -&nbsp;     */
    -<b class="fc">&nbsp;    CONSTANT_SQL_RAW {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            return &quot;sql.raw&quot;;</b>
    +&nbsp;    @Override
    +&nbsp;    public void collect(long elapsedTime, StatementContext ctx) {
    +<b class="fc">&nbsp;        String statementName = statementNameStrategy.getStatementName(ctx);</b>
    +<b class="fc">&nbsp;        if (statementName != null) {</b>
    +<b class="fc">&nbsp;            registry.timer(statementName).update(elapsedTime, TimeUnit.NANOSECONDS);</b>
     &nbsp;        }
     &nbsp;    }
    -&nbsp;
     &nbsp;}
     </code>
     </pre>
    @@ -240,7 +139,7 @@ <h1>Coverage Summary for Class: DefaultNameStrategy (com.codahale.metrics.jdbi3.
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index.html
    index a0edbb5671..002775e593 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    +com.codahale.metrics.jdbi3.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.3%
    +    100%
       </span>
       <span class="absValue">
    -    (50/53)
    +    (17/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.8%
    +    95.7%
       </span>
       <span class="absValue">
    -    (201/212)
    +    (45/47)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,42 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +134,96 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (44/46)
    +    (1/1)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    95%
    +    100%
       </span>
       <span class="absValue">
    -    (190/200)
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +234,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    100%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.7%
    +    94.7%
       </span>
       <span class="absValue">
    -    (11/12)
    +    (18/19)
       </span>
     </td>
       </tr>
    @@ -164,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK.html
    index 2f98ac9054..19483ec0ee 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    +com.codahale.metrics.jdbi3.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.3%
    +    100%
       </span>
       <span class="absValue">
    -    (50/53)
    +    (17/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.8%
    +    95.7%
       </span>
       <span class="absValue">
    -    (201/212)
    +    (45/47)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,42 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +134,96 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (44/46)
    +    (1/1)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    95%
    +    100%
       </span>
       <span class="absValue">
    -    (190/200)
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +234,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    100%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.7%
    +    94.7%
       </span>
       <span class="absValue">
    -    (11/12)
    +    (18/19)
       </span>
     </td>
       </tr>
    @@ -164,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
    index 2094152170..e39b826bdf 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    +com.codahale.metrics.jdbi3.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.3%
    +    100%
       </span>
       <span class="absValue">
    -    (50/53)
    +    (17/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.8%
    +    95.7%
       </span>
       <span class="absValue">
    -    (201/212)
    +    (45/47)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,88 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +180,31 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    100%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.7%
    +    87.5%
       </span>
       <span class="absValue">
    -    (11/12)
    +    (7/8)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +215,37 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    100%
       </span>
       <span class="absValue">
    -    (44/46)
    +    (17/17)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    95%
    +    100%
       </span>
       <span class="absValue">
    -    (190/200)
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
       </span>
     </td>
       </tr>
    @@ -164,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS.html
    index 388ca4c798..38fe9a9990 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    +com.codahale.metrics.jdbi3.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.3%
    +    100%
       </span>
       <span class="absValue">
    -    (50/53)
    +    (17/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.8%
    +    95.7%
       </span>
       <span class="absValue">
    -    (201/212)
    +    (45/47)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,42 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +134,96 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (44/46)
    +    (1/1)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    95%
    +    100%
       </span>
       <span class="absValue">
    -    (190/200)
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +234,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    100%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.7%
    +    94.7%
       </span>
       <span class="absValue">
    -    (11/12)
    +    (18/19)
       </span>
     </td>
       </tr>
    @@ -164,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
    index c1cdd05956..d837387102 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    +com.codahale.metrics.jdbi3.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.3%
    +    100%
       </span>
       <span class="absValue">
    -    (50/53)
    +    (17/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.8%
    +    95.7%
       </span>
       <span class="absValue">
    -    (201/212)
    +    (45/47)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,88 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +180,31 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    100%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.7%
    +    87.5%
       </span>
       <span class="absValue">
    -    (11/12)
    +    (7/8)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +215,37 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    100%
       </span>
       <span class="absValue">
    -    (44/46)
    +    (17/17)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    95%
    +    100%
       </span>
       <span class="absValue">
    -    (190/200)
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
       </span>
     </td>
       </tr>
    @@ -164,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE.html
    index c0a8b2d747..8daf598bbb 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    +com.codahale.metrics.jdbi3.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.3%
    +    100%
       </span>
       <span class="absValue">
    -    (50/53)
    +    (17/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.8%
    +    95.7%
       </span>
       <span class="absValue">
    -    (201/212)
    +    (45/47)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,61 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +153,31 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    100%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.7%
    +    100%
       </span>
       <span class="absValue">
    -    (11/12)
    +    (1/1)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +188,64 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (44/46)
    +    (1/1)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    95%
    +    100%
       </span>
       <span class="absValue">
    -    (190/200)
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
       </span>
     </td>
       </tr>
    @@ -164,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
    index 78920f0407..cc24508686 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    +com.codahale.metrics.jdbi3.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.3%
    +    100%
       </span>
       <span class="absValue">
    -    (50/53)
    +    (17/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.8%
    +    95.7%
       </span>
       <span class="absValue">
    -    (201/212)
    +    (45/47)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,69 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +161,42 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (44/46)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95%
    +    100%
       </span>
       <span class="absValue">
    -    (190/200)
    +    (1/1)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +207,45 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.7%
    +    87.5%
       </span>
       <span class="absValue">
    -    (11/12)
    +    (7/8)
       </span>
     </td>
       </tr>
    @@ -164,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD.html
    index a5c5d4a043..20aae95bf9 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    +com.codahale.metrics.jdbi3.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.3%
    +    100%
       </span>
       <span class="absValue">
    -    (50/53)
    +    (17/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.8%
    +    95.7%
       </span>
       <span class="absValue">
    -    (201/212)
    +    (45/47)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +99,31 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    100%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.7%
    +    100%
       </span>
       <span class="absValue">
    -    (11/12)
    +    (1/1)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +134,118 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (44/46)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95%
    +    94.7%
       </span>
       <span class="absValue">
    -    (190/200)
    +    (18/19)
       </span>
     </td>
       </tr>
    @@ -164,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
    index b8c1b54cf8..66bd4af1c5 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    +com.codahale.metrics.jdbi3.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.3%
    +    100%
       </span>
       <span class="absValue">
    -    (50/53)
    +    (17/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.8%
    +    95.7%
       </span>
       <span class="absValue">
    -    (201/212)
    +    (45/47)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,88 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (44/46)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95%
    +    100%
       </span>
       <span class="absValue">
    -    (190/200)
    +    (1/1)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +180,72 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.7%
    +    100%
       </span>
       <span class="absValue">
    -    (11/12)
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
       </span>
     </td>
       </tr>
    @@ -164,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
    index 1713678421..1e2eaff51f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    +  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    +com.codahale.metrics.jdbi3.strategies</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    +    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.3%
    +    100%
       </span>
       <span class="absValue">
    -    (50/53)
    +    (17/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.8%
    +    95.7%
       </span>
       <span class="absValue">
    -    (201/212)
    +    (45/47)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,88 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +180,31 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    100%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.7%
    +    87.5%
       </span>
       <span class="absValue">
    -    (11/12)
    +    (7/8)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    +    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +215,37 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.7%
    +    100%
       </span>
       <span class="absValue">
    -    (44/46)
    +    (17/17)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    95%
    +    100%
       </span>
       <span class="absValue">
    -    (190/200)
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
       </span>
     </td>
       </tr>
    @@ -164,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-1.html
    index a94919e4cd..3b9c9f3f3d 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    +  <title>Coverage Report > BasicSqlNameStrategy</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,16 +19,19 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey2</a>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey2)</h1>
    +<h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
     
     <table class="coverageStats">
    -
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
     ">
       Method, %
     </th>
    @@ -38,26 +41,7 @@ <h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (c
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.1%
    -  </span>
    -  <span class="absValue">
    -    (82/89)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    +  <td class="name">BasicSqlNameStrategy</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -74,47 +58,6 @@ <h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (c
         (1/1)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.2%
    -  </span>
    -  <span class="absValue">
    -    (16/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -123,129 +66,8 @@ <h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (c
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (28/28)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
     </tr>
    +
     </table>
     
     <br/>
    @@ -253,553 +75,16 @@ <h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (c
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey2;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    -&nbsp;import com.codahale.metrics.annotation.Metered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    -&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    -&nbsp;import org.glassfish.jersey.server.model.Resource;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    -&nbsp;
    -&nbsp;import javax.ws.rs.core.Configuration;
    -&nbsp;import javax.ws.rs.ext.Provider;
    -&nbsp;import java.lang.annotation.Annotation;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
     &nbsp;
     &nbsp;/**
    -&nbsp; * An application event listener that listens for Jersey application initialization to
    -&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    -&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    -&nbsp; * request events indicating that the method is about to be invoked, or just got done
    -&nbsp; * being invoked.
    +&nbsp; * Collects metrics by respective SQLObject methods.
     &nbsp; */
    -&nbsp;@Provider
    -&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    -&nbsp;    private static final String TOTAL = &quot;total&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metrics;
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Construct an application event listener using the given metrics registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    -&nbsp;     *
    -&nbsp;     * @param metrics a {@link MetricRegistry}
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    -<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters) {
    -<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters,
    -<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.metrics = metrics;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metric for a method annotated with the
    -&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    -&nbsp;     * and a cause for which the meter should be updated.
    -&nbsp;     */
    -&nbsp;    private static class ExceptionMeterMetric {
    -&nbsp;        public final Meter meter;
    -&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    -&nbsp;
    -&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    -&nbsp;                                    final ResourceMethod method,
    -<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    -<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    -<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    -<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    -<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metrics for a method annotated with the
    -&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    -&nbsp;     * different response codes
    -&nbsp;     */
    -&nbsp;    private static class ResponseMeterMetric {
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;        private final List&lt;Meter&gt; meters;
    -&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;        private final MetricRegistry metricRegistry;
    -&nbsp;        private final String metricName;
    -&nbsp;        private final ResponseMeteredLevel level;
    -&nbsp;
    -&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    -&nbsp;                                   final ResourceMethod method,
    -<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    -<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    -<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    -<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    -<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="fc">&nbsp;            )) : Collections.emptyList();</b>
    -<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public void mark(int statusCode) {
    -<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;            return responseCodeMeters</b>
    -<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    -&nbsp;
    -&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    -&nbsp;        private final Clock clock;
    -&nbsp;        private final long start;
    -&nbsp;        private Timer.Context resourceMethodStartContext;
    -&nbsp;        private Timer.Context requestMatchedContext;
    -&nbsp;        private Timer.Context responseFiltersStartContext;
    -&nbsp;
    -<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    -<b class="fc">&nbsp;            this.timers = timers;</b>
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            start = clock.getTick();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            switch (event.getType()) {</b>
    -&nbsp;                case RESOURCE_METHOD_START:
    -<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case REQUEST_MATCHED:
    -<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESP_FILTERS_START:
    -<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESOURCE_METHOD_FINISHED:
    -<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    -<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case REQUEST_FILTERED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    -<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case RESP_FILTERS_FINISHED:
    -<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case FINISHED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;                        if (timer != null) {</b>
    -<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    -&nbsp;                        }
    -<b class="fc">&nbsp;                    }</b>
    -&nbsp;                    break;
    -&nbsp;                default:
    -&nbsp;                    break;
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(RequestEvent event) {
    -<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer.Context context(RequestEvent event) {
    -<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    -&nbsp;
    -<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    -<b class="fc">&nbsp;            this.meters = meters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    -<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    -<b class="fc">&nbsp;                if (meter != null) {</b>
    -<b class="fc">&nbsp;                    meter.mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    -<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    -<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    -<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    -<b class="fc">&nbsp;                        metric.meter.mark();</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    -<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    -<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(500);</b>
    -<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    -&nbsp;        private final RequestEventListener[] listeners;
    -&nbsp;
    -<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    -<b class="fc">&nbsp;            this.listeners = listeners;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(final RequestEvent event) {
    -<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    -<b class="fc">&nbsp;                listener.onEvent(event);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onEvent(ApplicationEvent event) {
    -<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    -<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        return resourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    -<b class="fc">&nbsp;        return subResourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    -<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    -<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    -<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    -<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    -<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    -<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    -<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    -<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    -<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    -<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    -<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    -<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    -&nbsp;                new TimerRequestEventListener(timers, clock),
    -&nbsp;                new MeterRequestEventListener(meters),
    -&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    -&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    -&nbsp;
    -<b class="fc">&nbsp;        return listener;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    -<b class="fc">&nbsp;        T annotation = null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    -<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (annotation != null) {</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return annotation;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    -<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    -<b class="fc">&nbsp;        if (trackFilters) {</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Timed timed,
    -&nbsp;                              final String... suffixes) {
    -<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    -<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Metered metered) {
    -<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    -<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    -&nbsp;                                       final String... suffixes) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;        final String metricName;
    -<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    -<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    -&nbsp;
    -&nbsp;        private final RequestEvent.Type type;
    -&nbsp;        private final Method method;
    -&nbsp;
    -<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    -<b class="fc">&nbsp;            this.type = type;</b>
    -<b class="fc">&nbsp;            this.method = method;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod finished(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="fc">&nbsp;            if (this == o) {</b>
    -<b class="nc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (type != that.type) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return method.equals(that.method);</b>
    -&nbsp;        }
    +&nbsp;public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="fc">&nbsp;            int result = type.hashCode();</b>
    -<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    -<b class="fc">&nbsp;            return result;</b>
    -&nbsp;        }
    +&nbsp;    public BasicSqlNameStrategy() {
    +<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    +&nbsp;                DefaultNameStrategy.SQL_OBJECT);
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -825,7 +110,7 @@ <h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (c
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-2.html
    index a185a88f48..5a8d412375 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-2.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsFeature</title>
    +  <title>Coverage Report > DefaultNameStrategy</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,19 +19,16 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey2</a>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
     </div>
     
    -<h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey2)</h1>
    +<h1>Coverage Summary for Class: DefaultNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
     
     <table class="coverageStats">
    +
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
     ">
       Method, %
     </th>
    @@ -41,33 +38,119 @@ <h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey2)</h
     </th>
     </tr>
     <tr>
    -  <td class="name">MetricsFeature</td>
    +  <td class="name">DefaultNameStrategy</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    100%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (5/5)
       </span>
     </td>
    +</tr>
    +  <tr>
    +    <td class="name">DefaultNameStrategy$1</td>
     <td class="coverageStat">
       <span class="percent">
    -    91.7%
    +    100%
       </span>
       <span class="absValue">
    -    (11/12)
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">DefaultNameStrategy$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">DefaultNameStrategy$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">DefaultNameStrategy$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
       </span>
     </td>
     </tr>
    -
     </table>
     
     <br/>
    @@ -75,102 +158,64 @@ <h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey2)</h
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey2;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
     &nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
     &nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import javax.ws.rs.core.Feature;
    -&nbsp;import javax.ws.rs.core.FeatureContext;
    -&nbsp;import java.util.function.Supplier;
    +&nbsp;import org.jdbi.v3.core.extension.ExtensionMethod;
    +&nbsp;import org.jdbi.v3.core.statement.StatementContext;
     &nbsp;
     &nbsp;/**
    -&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp; * for recording request events.
    +&nbsp; * Default strategies which build a basis of more complex strategies
     &nbsp; */
    -&nbsp;public class MetricsFeature implements Feature {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    -&nbsp;    }
    +<b class="fc">&nbsp;public enum DefaultNameStrategy implements StatementNameStrategy {</b>
     &nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;    /**
    +&nbsp;     * If no SQL in the context, returns `sql.empty`, otherwise falls through
     &nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    -<b class="fc">&nbsp;        this(registry, clock, false);</b>
    -&nbsp;    }
    +<b class="fc">&nbsp;    CHECK_EMPTY {</b>
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    +<b class="fc">&nbsp;            return rawSql == null || rawSql.isEmpty() ? &quot;sql.empty&quot; : null;</b>
    +&nbsp;        }
    +&nbsp;    },
     &nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;    /**
    +&nbsp;     * If there is an SQL object attached to the context, returns the name package,
    +&nbsp;     * the class and the method on which SQL is declared. If not SQL object is attached,
    +&nbsp;     * falls through
     &nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    -<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    +<b class="fc">&nbsp;    SQL_OBJECT {</b>
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            ExtensionMethod extensionMethod = statementContext.getExtensionMethod();</b>
    +<b class="fc">&nbsp;            if (extensionMethod != null) {</b>
    +<b class="fc">&nbsp;                return MetricRegistry.name(extensionMethod.getType(), extensionMethod.getMethod().getName());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    },
     &nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;    /**
    +&nbsp;     * Returns a raw SQL in the context (even if it&#39;s not exist)
     &nbsp;     */
    -<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MetricsFeature(String registryName) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    +<b class="fc">&nbsp;    NAIVE_NAME {</b>
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            return statementContext.getRawSql();</b>
    +&nbsp;        }
    +&nbsp;    },
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * A call-back method called when the feature is to be enabled in a given
    -&nbsp;     * runtime configuration scope.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    -&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    -&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    -&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    -&nbsp;     * {@link javax.ws.rs.core.Configuration#isEnabled(javax.ws.rs.core.Feature)} or
    -&nbsp;     * {@link javax.ws.rs.core.Configuration#isEnabled(Class)} method
    -&nbsp;     * would return {@code false}.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     *
    -&nbsp;     * @param context configurable context in which the feature should be enabled.
    -&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    -&nbsp;     * otherwise.
    +&nbsp;     * Returns the `sql.raw` constant
     &nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean configure(FeatureContext context) {
    -<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    -<b class="fc">&nbsp;        return true;</b>
    +<b class="fc">&nbsp;    CONSTANT_SQL_RAW {</b>
    +&nbsp;        @Override
    +&nbsp;        public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;            return &quot;sql.raw&quot;;</b>
    +&nbsp;        }
     &nbsp;    }
    +&nbsp;
     &nbsp;}
     </code>
     </pre>
    @@ -195,7 +240,7 @@ <h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey2)</h
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-3.html
    new file mode 100644
    index 0000000000..fe6c5785fe
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-3.html
    @@ -0,0 +1,136 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > DelegatingStatementNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">DelegatingStatementNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    +&nbsp;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.List;
    +&nbsp;
    +&nbsp;public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Unknown SQL.
    +&nbsp;     */
    +&nbsp;    private static final String UNKNOWN_SQL = &quot;sql.unknown&quot;;
    +&nbsp;
    +&nbsp;    private final List&lt;StatementNameStrategy&gt; strategies;
    +&nbsp;
    +<b class="fc">&nbsp;    protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {</b>
    +<b class="fc">&nbsp;        this.strategies = Arrays.asList(strategies);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;        for (StatementNameStrategy strategy : strategies) {</b>
    +<b class="fc">&nbsp;            final String statementName = strategy.getStatementName(statementContext);</b>
    +<b class="fc">&nbsp;            if (statementName != null) {</b>
    +<b class="fc">&nbsp;                return statementName;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="nc">&nbsp;        return UNKNOWN_SQL;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-4.html
    new file mode 100644
    index 0000000000..9a6af046f3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-4.html
    @@ -0,0 +1,116 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > NaiveNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">NaiveNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Very simple strategy, can be used with any JDBI loader to build basic statistics.
    +&nbsp; */
    +&nbsp;public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;
    +&nbsp;    public NaiveNameStrategy() {
    +<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    +&nbsp;              DefaultNameStrategy.NAIVE_NAME);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-5.html
    new file mode 100644
    index 0000000000..66bb117ef0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-5.html
    @@ -0,0 +1,117 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SmartNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SmartNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Uses a {@link BasicSqlNameStrategy} and fallbacks to {@link DefaultNameStrategy#CONSTANT_SQL_RAW}
    +&nbsp; */
    +&nbsp;public class SmartNameStrategy extends DelegatingStatementNameStrategy {
    +&nbsp;
    +&nbsp;    public SmartNameStrategy() {
    +<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    +&nbsp;                DefaultNameStrategy.SQL_OBJECT,
    +&nbsp;                DefaultNameStrategy.CONSTANT_SQL_RAW);
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-6.html
    new file mode 100644
    index 0000000000..8c0703dae1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-6.html
    @@ -0,0 +1,151 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > TimedAnnotationNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: TimedAnnotationNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">TimedAnnotationNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.annotation.Timed;
    +&nbsp;import org.jdbi.v3.core.extension.ExtensionMethod;
    +&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    +&nbsp;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Takes into account the {@link Timed} annotation on extension methods
    +&nbsp; */
    +<b class="fc">&nbsp;public class TimedAnnotationNameStrategy implements StatementNameStrategy {</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getStatementName(StatementContext statementContext) {
    +<b class="fc">&nbsp;        final ExtensionMethod extensionMethod = statementContext.getExtensionMethod();</b>
    +<b class="fc">&nbsp;        if (extensionMethod == null) {</b>
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Class&lt;?&gt; clazz = extensionMethod.getType();</b>
    +<b class="fc">&nbsp;        final Timed classTimed = clazz.getAnnotation(Timed.class);</b>
    +<b class="fc">&nbsp;        final Method method = extensionMethod.getMethod();</b>
    +<b class="fc">&nbsp;        final Timed methodTimed = method.getAnnotation(Timed.class);</b>
    +&nbsp;
    +&nbsp;        // If the method is timed, figure out the name
    +<b class="fc">&nbsp;        if (methodTimed != null) {</b>
    +<b class="fc">&nbsp;            String methodName = methodTimed.name().isEmpty() ? method.getName() : methodTimed.name();</b>
    +<b class="fc">&nbsp;            if (methodTimed.absolute()) {</b>
    +<b class="fc">&nbsp;                return methodName;</b>
    +&nbsp;            } else {
    +&nbsp;                // We need to check if the class has a custom timer name
    +<b class="fc">&nbsp;                return classTimed == null || classTimed.name().isEmpty() ?</b>
    +<b class="fc">&nbsp;                        MetricRegistry.name(clazz, methodName) :</b>
    +<b class="fc">&nbsp;                        MetricRegistry.name(classTimed.name(), methodName);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        } else if (classTimed != null) {</b>
    +&nbsp;            // Maybe the class is timed?
    +<b class="fc">&nbsp;            return classTimed.name().isEmpty() ? MetricRegistry.name(clazz, method.getName()) :</b>
    +<b class="nc">&nbsp;                    MetricRegistry.name(classTimed.name(), method.getName());</b>
    +&nbsp;        } else {
    +&nbsp;            // No timers neither on the method or the class
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-7.html
    new file mode 100644
    index 0000000000..20ad5d0fe0
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-7.html
    @@ -0,0 +1,89 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > StatementNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +  <tr>
    +    <td class="name">StatementNameStrategy$MockitoMock$4ynm8yDG</td>
    +  </tr>
    +  <tr>
    +    <td class="name">StatementNameStrategy$MockitoMock$4ynm8yDG$auxiliary$G6TUrXev</td>
    +  </tr>
    +  <tr>
    +    <td class="name">StatementNameStrategy$MockitoMock$4ynm8yDG$auxiliary$xgsHqId4</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    +&nbsp;
    +&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * Interface for strategies to statement contexts to metric names.
    +&nbsp; */
    +&nbsp;@FunctionalInterface
    +&nbsp;public interface StatementNameStrategy {
    +&nbsp;
    +&nbsp;    String getStatementName(StatementContext statementContext);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index.html
    index 2aa8133a36..6d25897cb4 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    +com.codahale.metrics.jersey2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    +    <td class="name">com.codahale.metrics.jersey2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK.html
    index 7bf8720b08..4c16c4d734 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    +com.codahale.metrics.jersey2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    +    <td class="name">com.codahale.metrics.jersey2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
    index 712700d3d1..5d39cbd77d 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    +com.codahale.metrics.jersey2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    +    <td class="name">com.codahale.metrics.jersey2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS.html
    index a7e2f8f1cf..6f90be32dc 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    +com.codahale.metrics.jersey2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    +    <td class="name">com.codahale.metrics.jersey2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
    index e9bfa77d9f..63f147b125 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    +com.codahale.metrics.jersey2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    +    <td class="name">com.codahale.metrics.jersey2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE.html
    index 523f5e5282..4c6871124a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    +com.codahale.metrics.jersey2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    +    <td class="name">com.codahale.metrics.jersey2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
    index 25094c4723..bcd45ad98a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    +com.codahale.metrics.jersey2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    +    <td class="name">com.codahale.metrics.jersey2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD.html
    index 844cc64c38..cad2b0a4eb 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    +com.codahale.metrics.jersey2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    +    <td class="name">com.codahale.metrics.jersey2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
    index 068c835d53..5f2b06928f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    +com.codahale.metrics.jersey2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    +    <td class="name">com.codahale.metrics.jersey2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
    index 0494d1401f..0af4663af5 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    +com.codahale.metrics.jersey2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    +    <td class="name">com.codahale.metrics.jersey2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-1.html
    index ed6ac48672..c59839a600 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-1.html
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey3</a>
    +    <a href="../index.html">com.codahale.metrics.jersey2</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey3)</h1>
    +<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey2)</h1>
     
     <table class="coverageStats">
     
    @@ -253,7 +253,7 @@ <h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (c
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey3;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey2;
     &nbsp;
     &nbsp;import com.codahale.metrics.Clock;
     &nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    @@ -266,8 +266,6 @@ <h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (c
     &nbsp;import com.codahale.metrics.annotation.ResponseMetered;
     &nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
     &nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import jakarta.ws.rs.core.Configuration;
    -&nbsp;import jakarta.ws.rs.ext.Provider;
     &nbsp;import org.glassfish.jersey.server.ContainerResponse;
     &nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
     &nbsp;import org.glassfish.jersey.server.model.Resource;
    @@ -278,24 +276,25 @@ <h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (c
     &nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
     &nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
     &nbsp;
    +&nbsp;import javax.ws.rs.core.Configuration;
    +&nbsp;import javax.ws.rs.ext.Provider;
     &nbsp;import java.lang.annotation.Annotation;
     &nbsp;import java.lang.reflect.Method;
     &nbsp;import java.util.Arrays;
     &nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
     &nbsp;import java.util.List;
     &nbsp;import java.util.Map;
     &nbsp;import java.util.Set;
    +&nbsp;import java.util.EnumSet;
     &nbsp;import java.util.concurrent.ConcurrentHashMap;
     &nbsp;import java.util.concurrent.ConcurrentMap;
     &nbsp;import java.util.concurrent.TimeUnit;
     &nbsp;import java.util.function.Supplier;
     &nbsp;
     &nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
     &nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
     &nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
     &nbsp;
     &nbsp;/**
     &nbsp; * An application event listener that listens for Jersey application initialization to
    @@ -404,12 +403,12 @@ <h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (c
     <b class="fc">&nbsp;            this.level = responseMetered.level();</b>
     <b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
     <b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="fc">&nbsp;                    )) : Collections.emptyList();</b>
    +<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    +<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    +<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    +<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    +<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    +<b class="fc">&nbsp;            )) : Collections.emptyList();</b>
     <b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
     <b class="fc">&nbsp;            this.metricRegistry = registry;</b>
     &nbsp;        }
    @@ -826,7 +825,7 @@ <h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (c
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-2.html
    index c7032ad6ac..2b4e5b61b4 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-2.html
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey3</a>
    +    <a href="../index.html">com.codahale.metrics.jersey2</a>
     </div>
     
    -<h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey3)</h1>
    +<h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey2)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -75,16 +75,16 @@ <h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey3)</h
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey3;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey2;
     &nbsp;
     &nbsp;import com.codahale.metrics.Clock;
     &nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
     &nbsp;import com.codahale.metrics.MetricRegistry;
     &nbsp;import com.codahale.metrics.Reservoir;
     &nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import jakarta.ws.rs.core.Feature;
    -&nbsp;import jakarta.ws.rs.core.FeatureContext;
     &nbsp;
    +&nbsp;import javax.ws.rs.core.Feature;
    +&nbsp;import javax.ws.rs.core.FeatureContext;
     &nbsp;import java.util.function.Supplier;
     &nbsp;
     &nbsp;/**
    @@ -157,8 +157,8 @@ <h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey3)</h
     &nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
     &nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
     &nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
    +&nbsp;     * {@link javax.ws.rs.core.Configuration#isEnabled(javax.ws.rs.core.Feature)} or
    +&nbsp;     * {@link javax.ws.rs.core.Configuration#isEnabled(Class)} method
     &nbsp;     * would return {@code false}.
     &nbsp;     * &lt;p&gt;
     &nbsp;     *
    @@ -195,7 +195,7 @@ <h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey3)</h
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index.html
    index fa941b7b01..d2d5c5fea8 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    +com.codahale.metrics.jersey3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    +    <td class="name">com.codahale.metrics.jersey3</td>
     <td class="coverageStat">
       <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    +    100%
       </span>
       <span class="absValue">
    -    (73/116)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.1%
    +    94.8%
       </span>
       <span class="absValue">
    -    (275/366)
    +    (201/212)
       </span>
     </td>
       </tr>
    @@ -95,79 +83,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -178,47 +99,45 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    +    95.7%
       </span>
       <span class="absValue">
    -    (31/50)
    +    (44/46)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    74.3%
    +    95%
       </span>
       <span class="absValue">
    -    (107/144)
    +    (190/200)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.2%
    +    85.7%
       </span>
       <span class="absValue">
    -    (13/18)
    +    (6/7)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    81.8%
    +    91.7%
       </span>
       <span class="absValue">
    -    (27/33)
    +    (11/12)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK.html
    index 5ed6037431..a040108789 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    +com.codahale.metrics.jersey3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    +    <td class="name">com.codahale.metrics.jersey3</td>
     <td class="coverageStat">
       <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    +    100%
       </span>
       <span class="absValue">
    -    (73/116)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.1%
    +    94.8%
       </span>
       <span class="absValue">
    -    (275/366)
    +    (201/212)
       </span>
     </td>
       </tr>
    @@ -94,45 +82,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -143,82 +99,45 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    +    95.7%
       </span>
       <span class="absValue">
    -    (31/50)
    +    (44/46)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    74.3%
    +    95%
       </span>
       <span class="absValue">
    -    (107/144)
    +    (190/200)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    85.7%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (6/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.4%
    +    91.7%
       </span>
       <span class="absValue">
    -    (123/170)
    +    (11/12)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
    index b09780e4d8..17b1dac6ac 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    +com.codahale.metrics.jersey3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    +    <td class="name">com.codahale.metrics.jersey3</td>
     <td class="coverageStat">
       <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    +    100%
       </span>
       <span class="absValue">
    -    (73/116)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.1%
    +    94.8%
       </span>
       <span class="absValue">
    -    (275/366)
    +    (201/212)
       </span>
     </td>
       </tr>
    @@ -94,80 +82,40 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.2%
    +    85.7%
       </span>
       <span class="absValue">
    -    (13/18)
    +    (6/7)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    81.8%
    +    91.7%
       </span>
       <span class="absValue">
    -    (27/33)
    +    (11/12)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -178,47 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    +    95.7%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (44/46)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    95%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (190/200)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS.html
    index 5f536eef51..1ec5ab60af 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    +com.codahale.metrics.jersey3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    +    <td class="name">com.codahale.metrics.jersey3</td>
     <td class="coverageStat">
       <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    +    100%
       </span>
       <span class="absValue">
    -    (73/116)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.1%
    +    94.8%
       </span>
       <span class="absValue">
    -    (275/366)
    +    (201/212)
       </span>
     </td>
       </tr>
    @@ -95,79 +83,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -178,47 +99,45 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    +    95.7%
       </span>
       <span class="absValue">
    -    (31/50)
    +    (44/46)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    74.3%
    +    95%
       </span>
       <span class="absValue">
    -    (107/144)
    +    (190/200)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.2%
    +    85.7%
       </span>
       <span class="absValue">
    -    (13/18)
    +    (6/7)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    81.8%
    +    91.7%
       </span>
       <span class="absValue">
    -    (27/33)
    +    (11/12)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
    index d0ebea61a7..c517edc285 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    +com.codahale.metrics.jersey3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    +    <td class="name">com.codahale.metrics.jersey3</td>
     <td class="coverageStat">
       <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    +    100%
       </span>
       <span class="absValue">
    -    (73/116)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.1%
    +    94.8%
       </span>
       <span class="absValue">
    -    (275/366)
    +    (201/212)
       </span>
     </td>
       </tr>
    @@ -95,44 +83,39 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.2%
    +    85.7%
       </span>
       <span class="absValue">
    -    (13/18)
    +    (6/7)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    81.8%
    +    91.7%
       </span>
       <span class="absValue">
    -    (27/33)
    +    (11/12)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -143,82 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    +    95.7%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (44/46)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.4%
    +    95%
       </span>
       <span class="absValue">
    -    (123/170)
    +    (190/200)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE.html
    index 1cdf47608f..33bb62b561 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    +com.codahale.metrics.jersey3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    +    <td class="name">com.codahale.metrics.jersey3</td>
     <td class="coverageStat">
       <span class="percent">
    -    62.9%
    +    100%
       </span>
       <span class="absValue">
    -    (73/116)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.1%
    +    94.8%
       </span>
       <span class="absValue">
    -    (275/366)
    +    (201/212)
       </span>
     </td>
       </tr>
    @@ -94,131 +82,62 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
     <th class="coverageStat sortedAsc
     ">
       <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    +    85.7%
       </span>
       <span class="absValue">
    -    (31/50)
    +    (6/7)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    74.3%
    +    91.7%
       </span>
       <span class="absValue">
    -    (107/144)
    +    (11/12)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    95.7%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (44/46)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    95%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (190/200)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
    index 6f94288578..bdf00a63fb 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    +com.codahale.metrics.jersey3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    +    <td class="name">com.codahale.metrics.jersey3</td>
     <td class="coverageStat">
       <span class="percent">
    -    62.9%
    +    100%
       </span>
       <span class="absValue">
    -    (73/116)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.1%
    +    94.8%
       </span>
       <span class="absValue">
    -    (275/366)
    +    (201/212)
       </span>
     </td>
       </tr>
    @@ -94,73 +82,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
     <th class="coverageStat sortedDesc
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -171,54 +99,45 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    +    95.7%
       </span>
       <span class="absValue">
    -    (31/50)
    +    (44/46)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    74.3%
    +    95%
       </span>
       <span class="absValue">
    -    (107/144)
    +    (190/200)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    +    100%
       </span>
       <span class="absValue">
    -    (21/39)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    85.7%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (6/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.4%
    +    91.7%
       </span>
       <span class="absValue">
    -    (123/170)
    +    (11/12)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD.html
    index 6343fc2544..ffd360924c 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    +com.codahale.metrics.jersey3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    +    <td class="name">com.codahale.metrics.jersey3</td>
     <td class="coverageStat">
       <span class="percent">
    -    62.9%
    +    100%
       </span>
       <span class="absValue">
    -    (73/116)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.1%
    +    94.8%
       </span>
       <span class="absValue">
    -    (275/366)
    +    (201/212)
       </span>
     </td>
       </tr>
    @@ -95,130 +83,61 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
       <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    +    85.7%
       </span>
       <span class="absValue">
    -    (31/50)
    +    (6/7)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    74.3%
    +    91.7%
       </span>
       <span class="absValue">
    -    (107/144)
    +    (11/12)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    95.7%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (44/46)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    95%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (190/200)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
    index 2c65a8820b..b1fbb4afe8 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    +com.codahale.metrics.jersey3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    +    <td class="name">com.codahale.metrics.jersey3</td>
     <td class="coverageStat">
       <span class="percent">
    -    62.9%
    +    100%
       </span>
       <span class="absValue">
    -    (73/116)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.1%
    +    94.8%
       </span>
       <span class="absValue">
    -    (275/366)
    +    (201/212)
       </span>
     </td>
       </tr>
    @@ -95,72 +83,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -171,54 +99,45 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    +    95.7%
       </span>
       <span class="absValue">
    -    (31/50)
    +    (44/46)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    74.3%
    +    95%
       </span>
       <span class="absValue">
    -    (107/144)
    +    (190/200)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    +    100%
       </span>
       <span class="absValue">
    -    (21/39)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    85.7%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (6/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.4%
    +    91.7%
       </span>
       <span class="absValue">
    -    (123/170)
    +    (11/12)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
    index d9a09702ce..8e8f38761d 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    +  <title>Coverage Report > com.codahale.metrics.jersey3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    +com.codahale.metrics.jersey3</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    +    <td class="name">com.codahale.metrics.jersey3</td>
     <td class="coverageStat">
       <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    +    100%
       </span>
       <span class="absValue">
    -    (73/116)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.1%
    +    94.8%
       </span>
       <span class="absValue">
    -    (275/366)
    +    (201/212)
       </span>
     </td>
       </tr>
    @@ -95,44 +83,39 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.2%
    +    85.7%
       </span>
       <span class="absValue">
    -    (13/18)
    +    (6/7)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    81.8%
    +    91.7%
       </span>
       <span class="absValue">
    -    (27/33)
    +    (11/12)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -143,82 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    +    95.7%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (44/46)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    95%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (190/200)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-1.html
    index 29f3e5d428..2666cc9d1e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    +  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    +    <a href="../index.html">com.codahale.metrics.jersey3</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (com.codahale.metrics.jetty9)</h1>
    +<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey3)</h1>
     
     <table class="coverageStats">
     
    @@ -38,26 +38,45 @@ <h1>Coverage Summary for Class: InstrumentedConnectionFactory (com.codahale.metr
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    +  <td class="name">InstrumentedResourceMethodApplicationListener</td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (16/18)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.7%
    +    92.1%
       </span>
       <span class="absValue">
    -    (11/12)
    +    (82/89)
       </span>
     </td>
     </tr>
       <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -71,7 +90,140 @@ <h1>Coverage Summary for Class: InstrumentedConnectionFactory (com.codahale.metr
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.2%
    +  </span>
    +  <span class="absValue">
    +    (16/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (28/28)
       </span>
     </td>
       </tr>
    @@ -79,18 +231,18 @@ <h1>Coverage Summary for Class: InstrumentedConnectionFactory (com.codahale.metr
       <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    95.7%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (44/46)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    95%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (190/200)
       </span>
     </td>
     </tr>
    @@ -101,67 +253,554 @@ <h1>Coverage Summary for Class: InstrumentedConnectionFactory (com.codahale.metr
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey3;
     &nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Reservoir;
     &nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    +&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    +&nbsp;import com.codahale.metrics.annotation.Metered;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import com.codahale.metrics.annotation.Timed;
    +&nbsp;import jakarta.ws.rs.core.Configuration;
    +&nbsp;import jakarta.ws.rs.ext.Provider;
    +&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    +&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    +&nbsp;import org.glassfish.jersey.server.model.Resource;
    +&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    +&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    +&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    +&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    +&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    +&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
     &nbsp;
    +&nbsp;import java.lang.annotation.Annotation;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
     &nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An application event listener that listens for Jersey application initialization to
    +&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    +&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    +&nbsp; * request events indicating that the method is about to be invoked, or just got done
    +&nbsp; * being invoked.
    +&nbsp; */
    +&nbsp;@Provider
    +&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    +&nbsp;
    +<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    +<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    +&nbsp;    private static final String TOTAL = &quot;total&quot;;
     &nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    +&nbsp;    private final MetricRegistry metrics;
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
     &nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final boolean trackFilters;
    +&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Construct an application event listener using the given metrics registry.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    +&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    +&nbsp;     *
    +&nbsp;     * @param metrics a {@link MetricRegistry}
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    +<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Constructs a custom application listener.
    +&nbsp;     *
    +&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    +&nbsp;                                                         final boolean trackFilters) {
    +<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Constructs a custom application listener.
    +&nbsp;     *
    +&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    +&nbsp;                                                         final boolean trackFilters,
    +<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    +<b class="fc">&nbsp;        this.metrics = metrics;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    +<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A private class to maintain the metric for a method annotated with the
    +&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    +&nbsp;     * and a cause for which the meter should be updated.
    +&nbsp;     */
    +&nbsp;    private static class ExceptionMeterMetric {
    +&nbsp;        public final Meter meter;
    +&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    +&nbsp;
    +&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    +&nbsp;                                    final ResourceMethod method,
    +<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    +<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    +<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    +<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    +<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    +&nbsp;        }
     &nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    +&nbsp;    /**
    +&nbsp;     * A private class to maintain the metrics for a method annotated with the
    +&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    +&nbsp;     * different response codes
    +&nbsp;     */
    +&nbsp;    private static class ResponseMeterMetric {
    +<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;        private final List&lt;Meter&gt; meters;
    +&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;        private final MetricRegistry metricRegistry;
    +&nbsp;        private final String metricName;
    +&nbsp;        private final ResponseMeteredLevel level;
    +&nbsp;
    +&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    +&nbsp;                                   final ResourceMethod method,
    +<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    +<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    +<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    +<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    +<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    +<b class="fc">&nbsp;                    )) : Collections.emptyList();</b>
    +<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public void mark(int statusCode) {
    +<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    +<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    +<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;            return responseCodeMeters</b>
    +<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    +&nbsp;
    +&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    +&nbsp;        private final Clock clock;
    +&nbsp;        private final long start;
    +&nbsp;        private Timer.Context resourceMethodStartContext;
    +&nbsp;        private Timer.Context requestMatchedContext;
    +&nbsp;        private Timer.Context responseFiltersStartContext;
    +&nbsp;
    +<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    +<b class="fc">&nbsp;            this.timers = timers;</b>
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            start = clock.getTick();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            switch (event.getType()) {</b>
    +&nbsp;                case RESOURCE_METHOD_START:
    +<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case REQUEST_MATCHED:
    +<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case RESP_FILTERS_START:
    +<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case RESOURCE_METHOD_FINISHED:
    +<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    +<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case REQUEST_FILTERED:
    +<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    +<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case RESP_FILTERS_FINISHED:
    +<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    +<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case FINISHED:
    +<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    +<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    +<b class="fc">&nbsp;                        if (timer != null) {</b>
    +<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    +&nbsp;                        }
    +<b class="fc">&nbsp;                    }</b>
    +&nbsp;                    break;
    +&nbsp;                default:
    +&nbsp;                    break;
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer timer(RequestEvent event) {
    +<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    +<b class="fc">&nbsp;                return null;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer.Context context(RequestEvent event) {
    +<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    +<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    +&nbsp;
    +<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    +<b class="fc">&nbsp;            this.meters = meters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    +<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    +<b class="fc">&nbsp;                if (meter != null) {</b>
    +<b class="fc">&nbsp;                    meter.mark();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    +&nbsp;
    +<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    +<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    +<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    +<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;                if (metric != null) {</b>
    +<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    +<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    +<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    +<b class="fc">&nbsp;                        metric.meter.mark();</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    +&nbsp;
    +<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    +<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    +<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    +<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;                if (metric != null) {</b>
    +<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    +<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    +<b class="fc">&nbsp;                        metric.mark(500);</b>
    +<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    +<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    +&nbsp;        private final RequestEventListener[] listeners;
    +&nbsp;
    +<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    +<b class="fc">&nbsp;            this.listeners = listeners;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(final RequestEvent event) {
    +<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    +<b class="fc">&nbsp;                listener.onEvent(event);</b>
    +&nbsp;            }
    +&nbsp;        }
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    +&nbsp;    public void onEvent(ApplicationEvent event) {
    +<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    +<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    +&nbsp;        }
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    +&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    +<b class="fc">&nbsp;        return resourceModel;</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    +&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    +<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    +<b class="fc">&nbsp;        return subResourceModel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    +<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    +<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    +<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    +<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    +<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    +<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    +<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    +<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    +&nbsp;
    +<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    +<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    +<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    +<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    +<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    +<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    +<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    +<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    +<b class="fc">&nbsp;                }</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    +<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    +&nbsp;                new TimerRequestEventListener(timers, clock),
    +&nbsp;                new MeterRequestEventListener(meters),
    +&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    +&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    +&nbsp;
    +<b class="fc">&nbsp;        return listener;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    +<b class="fc">&nbsp;        T annotation = null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    +<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (annotation != null) {</b>
    +<b class="fc">&nbsp;                break;</b>
     &nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return annotation;</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    +&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    +<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    +&nbsp;            return;
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    +<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    +<b class="fc">&nbsp;        if (trackFilters) {</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    +<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    +<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    +<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    +&nbsp;                              final ResourceMethod method,
    +&nbsp;                              final Timed timed,
    +&nbsp;                              final String... suffixes) {
    +<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    +<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    +&nbsp;                              final ResourceMethod method,
    +&nbsp;                              final Metered metered) {
    +<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    +<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    +&nbsp;                                       final String... suffixes) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;        final String metricName;
    +<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    +<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    +&nbsp;
    +&nbsp;        private final RequestEvent.Type type;
    +&nbsp;        private final Method method;
    +&nbsp;
    +<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    +<b class="fc">&nbsp;            this.type = type;</b>
    +<b class="fc">&nbsp;            this.method = method;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod finished(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean equals(Object o) {
    +<b class="fc">&nbsp;            if (this == o) {</b>
    +<b class="nc">&nbsp;                return true;</b>
     &nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    +<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (type != that.type) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return method.equals(that.method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public int hashCode() {
    +<b class="fc">&nbsp;            int result = type.hashCode();</b>
    +<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    +<b class="fc">&nbsp;            return result;</b>
    +&nbsp;        }
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -187,7 +826,7 @@ <h1>Coverage Summary for Class: InstrumentedConnectionFactory (com.codahale.metr
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-2.html
    index d9ec8102ba..7c29defc80 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-2.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHandler</title>
    +  <title>Coverage Report > MetricsFeature</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,22 +19,21 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    +    <a href="../index.html">com.codahale.metrics.jersey3</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedHandler (com.codahale.metrics.jetty9)</h1>
    +<h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey3)</h1>
     
     <table class="coverageStats">
    -
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
     ">
    -  Method, %
    +  Class, %
     </th>
     <th class="coverageStat 
     ">
    -  Branch, %
    +  Method, %
     </th>
     <th class="coverageStat 
     ">
    @@ -42,148 +41,7 @@ <h1>Coverage Summary for Class: InstrumentedHandler (com.codahale.metrics.jetty9
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (115/135)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +  <td class="name">MetricsFeature</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -191,81 +49,25 @@ <h1>Coverage Summary for Class: InstrumentedHandler (com.codahale.metrics.jetty9
       <span class="absValue">
         (1/1)
       </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    85.7%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (6/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.4%
    +    91.7%
       </span>
       <span class="absValue">
    -    (123/170)
    +    (11/12)
       </span>
     </td>
     </tr>
    +
     </table>
     
     <br/>
    @@ -273,456 +75,101 @@ <h1>Coverage Summary for Class: InstrumentedHandler (com.codahale.metrics.jetty9
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey3;
     &nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
     &nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    +&nbsp;import com.codahale.metrics.Reservoir;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;import jakarta.ws.rs.core.Feature;
    +&nbsp;import jakarta.ws.rs.core.FeatureContext;
     &nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;import java.util.function.Supplier;
     &nbsp;
     &nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    +&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    +&nbsp; * for recording request events.
     &nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    -&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    private final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private Meter asyncDispatches;
    +&nbsp;public class MetricsFeature implements Feature {
     &nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private Meter asyncTimeouts;
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final boolean trackFilters;
    +&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
     &nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private List&lt;Meter&gt; responses;
    -&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    private Timer getRequests;
    -&nbsp;    private Timer postRequests;
    -&nbsp;    private Timer headRequests;
    -&nbsp;    private Timer putRequests;
    -&nbsp;    private Timer deleteRequests;
    -&nbsp;    private Timer optionsRequests;
    -&nbsp;    private Timer traceRequests;
    -&nbsp;    private Timer connectRequests;
    -&nbsp;    private Timer moveRequests;
    -&nbsp;    private Timer otherRequests;
    -&nbsp;
    -&nbsp;    private AsyncListener listener;
    -&nbsp;
    -&nbsp;    private HttpChannelState.State DISPATCHED_HACK;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
     &nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    +&nbsp;    public MetricsFeature(MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
     &nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    +<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
     &nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            DISPATCHED_HACK = HttpChannelState.State.valueOf(&quot;HANDLING&quot;);</b>
    -<b class="nc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    -<b class="nc">&nbsp;            DISPATCHED_HACK = HttpChannelState.State.valueOf(&quot;DISPATCHED&quot;);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    +<b class="fc">&nbsp;        this(registry, clock, false);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    +<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;            ));
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    +<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    public MetricsFeature(String registryName) {
    +<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
     &nbsp;    }
     &nbsp;
    +&nbsp;    /**
    +&nbsp;     * A call-back method called when the feature is to be enabled in a given
    +&nbsp;     * runtime configuration scope.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    +&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    +&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    +&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    +&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
    +&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
    +&nbsp;     * would return {@code false}.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     *
    +&nbsp;     * @param context configurable context in which the feature should be enabled.
    +&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    +&nbsp;     * otherwise.
    +&nbsp;     */
     &nbsp;    @Override
    -&nbsp;    public void handle(String path,
    -&nbsp;                       Request request,
    -&nbsp;                       HttpServletRequest httpRequest,
    -&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == DISPATCHED_HACK) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    +&nbsp;    public boolean configure(FeatureContext context) {
    +<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    +<b class="fc">&nbsp;        return true;</b>
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -748,7 +195,7 @@ <h1>Coverage Summary for Class: InstrumentedHandler (com.codahale.metrics.jetty9
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index.html
    index fe872caa91..30a5da08ed 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    +com.codahale.metrics.jetty9</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    +    <td class="name">com.codahale.metrics.jetty9</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (73/116)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86.7%
    +    0%
       </span>
       <span class="absValue">
    -    (78/90)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    75.1%
       </span>
       <span class="absValue">
    -    (168/236)
    +    (275/366)
       </span>
     </td>
       </tr>
    @@ -83,39 +95,79 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    70.8%
    +    94.7%
       </span>
       <span class="absValue">
    -    (17/24)
    +    (18/19)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +178,47 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86%
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
       </span>
       <span class="absValue">
    -    (74/86)
    +    (13/18)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    81.8%
       </span>
       <span class="absValue">
    -    (151/212)
    +    (27/33)
       </span>
     </td>
       </tr>
    @@ -164,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK.html
    index d90337e13a..4ae554dc83 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    +com.codahale.metrics.jetty9</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    +    <td class="name">com.codahale.metrics.jetty9</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (73/116)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86.7%
    +    0%
       </span>
       <span class="absValue">
    -    (78/90)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    75.1%
       </span>
       <span class="absValue">
    -    (168/236)
    +    (275/366)
       </span>
     </td>
       </tr>
    @@ -82,40 +94,45 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    70.8%
    +    94.7%
       </span>
       <span class="absValue">
    -    (17/24)
    +    (18/19)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +143,82 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86%
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
       </span>
       <span class="absValue">
    -    (74/86)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    72.4%
       </span>
       <span class="absValue">
    -    (151/212)
    +    (123/170)
       </span>
     </td>
       </tr>
    @@ -164,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
    index 986c2fae9e..ea3398284b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    +com.codahale.metrics.jetty9</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    +    <td class="name">com.codahale.metrics.jetty9</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (73/116)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86.7%
    +    0%
       </span>
       <span class="absValue">
    -    (78/90)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    75.1%
       </span>
       <span class="absValue">
    -    (168/236)
    +    (275/366)
       </span>
     </td>
       </tr>
    @@ -82,62 +94,131 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86%
    +    72.2%
       </span>
       <span class="absValue">
    -    (74/86)
    +    (13/18)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    81.8%
       </span>
       <span class="absValue">
    -    (151/212)
    +    (27/33)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
       </span>
     </td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    70.8%
    +    94.7%
       </span>
       <span class="absValue">
    -    (17/24)
    +    (18/19)
       </span>
     </td>
       </tr>
    @@ -164,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS.html
    index de2ec47cdc..5a07ef3f5f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    +com.codahale.metrics.jetty9</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    +    <td class="name">com.codahale.metrics.jetty9</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (73/116)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86.7%
    +    0%
       </span>
       <span class="absValue">
    -    (78/90)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    75.1%
       </span>
       <span class="absValue">
    -    (168/236)
    +    (275/366)
       </span>
     </td>
       </tr>
    @@ -83,39 +95,79 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/2)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    70.8%
    +    94.7%
       </span>
       <span class="absValue">
    -    (17/24)
    +    (18/19)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +178,47 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86%
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
       </span>
       <span class="absValue">
    -    (74/86)
    +    (13/18)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    81.8%
       </span>
       <span class="absValue">
    -    (151/212)
    +    (27/33)
       </span>
     </td>
       </tr>
    @@ -164,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
    index f65f24d957..6a2d1659af 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    +com.codahale.metrics.jetty9</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    +    <td class="name">com.codahale.metrics.jetty9</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (73/116)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86.7%
    +    0%
       </span>
       <span class="absValue">
    -    (78/90)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    75.1%
       </span>
       <span class="absValue">
    -    (168/236)
    +    (275/366)
       </span>
     </td>
       </tr>
    @@ -83,61 +95,130 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86%
    +    72.2%
       </span>
       <span class="absValue">
    -    (74/86)
    +    (13/18)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    81.8%
       </span>
       <span class="absValue">
    -    (151/212)
    +    (27/33)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    70.8%
    +    72.4%
       </span>
       <span class="absValue">
    -    (17/24)
    +    (123/170)
       </span>
     </td>
       </tr>
    @@ -164,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE.html
    index 3e7bf7c8dc..9fc0e7531a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    +com.codahale.metrics.jetty9</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    +    <td class="name">com.codahale.metrics.jetty9</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (73/116)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86.7%
    +    0%
       </span>
       <span class="absValue">
    -    (78/90)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    75.1%
       </span>
       <span class="absValue">
    -    (168/236)
    +    (275/366)
       </span>
     </td>
       </tr>
    @@ -82,21 +94,80 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat sortedAsc
     ">
       <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
       </span>
     </td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -107,37 +178,47 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    70.8%
    +    72.2%
       </span>
       <span class="absValue">
    -    (17/24)
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86%
    +    88.9%
       </span>
       <span class="absValue">
    -    (74/86)
    +    (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    94.7%
       </span>
       <span class="absValue">
    -    (151/212)
    +    (18/19)
       </span>
     </td>
       </tr>
    @@ -164,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
    index e38f3dc0dd..3546eefc9b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    +com.codahale.metrics.jetty9</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    +    <td class="name">com.codahale.metrics.jetty9</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (73/116)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86.7%
    +    0%
       </span>
       <span class="absValue">
    -    (78/90)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    75.1%
       </span>
       <span class="absValue">
    -    (168/236)
    +    (275/366)
       </span>
     </td>
       </tr>
    @@ -82,62 +94,131 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat sortedDesc
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86%
    +    88.9%
       </span>
       <span class="absValue">
    -    (74/86)
    +    (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    94.7%
       </span>
       <span class="absValue">
    -    (151/212)
    +    (18/19)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    70.8%
    +    72.4%
       </span>
       <span class="absValue">
    -    (17/24)
    +    (123/170)
       </span>
     </td>
       </tr>
    @@ -164,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD.html
    index 4bbaadcdcd..dbfe904eb4 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    +com.codahale.metrics.jetty9</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    +    <td class="name">com.codahale.metrics.jetty9</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (73/116)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86.7%
    +    0%
       </span>
       <span class="absValue">
    -    (78/90)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    75.1%
       </span>
       <span class="absValue">
    -    (168/236)
    +    (275/366)
       </span>
     </td>
       </tr>
    @@ -83,12 +95,51 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
       <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,45 +150,75 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86%
    +    62%
       </span>
       <span class="absValue">
    -    (74/86)
    +    (31/50)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    74.3%
       </span>
       <span class="absValue">
    -    (151/212)
    +    (107/144)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
       </span>
     </td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    70.8%
    +    94.7%
       </span>
       <span class="absValue">
    -    (17/24)
    +    (18/19)
       </span>
     </td>
       </tr>
    @@ -164,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
    index 35ca730818..bcb84157df 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    +com.codahale.metrics.jetty9</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    +    <td class="name">com.codahale.metrics.jetty9</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (25/26)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86.7%
    +    62.9%
       </span>
       <span class="absValue">
    -    (78/90)
    +    (73/116)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    0%
       </span>
       <span class="absValue">
    -    (168/236)
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.1%
    +  </span>
    +  <span class="absValue">
    +    (275/366)
       </span>
     </td>
       </tr>
    @@ -83,20 +95,44 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -107,15 +143,24 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    70.8%
    +    72.2%
       </span>
       <span class="absValue">
    -    (17/24)
    +    (13/18)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +171,54 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86%
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
       </span>
       <span class="absValue">
    -    (74/86)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    72.4%
       </span>
       <span class="absValue">
    -    (151/212)
    +    (123/170)
       </span>
     </td>
       </tr>
    @@ -164,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
    index 1d3b0307e7..3264f29aae 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    +  <title>Coverage Report > com.codahale.metrics.jetty9</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    +com.codahale.metrics.jetty9</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    +    <td class="name">com.codahale.metrics.jetty9</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
    +  </span>
    +  <span class="absValue">
    +    (25/26)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.9%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (73/116)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86.7%
    +    0%
       </span>
       <span class="absValue">
    -    (78/90)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    75.1%
       </span>
       <span class="absValue">
    -    (168/236)
    +    (275/366)
       </span>
     </td>
       </tr>
    @@ -83,61 +95,130 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    86%
    +    72.2%
       </span>
       <span class="absValue">
    -    (74/86)
    +    (13/18)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    81.8%
       </span>
       <span class="absValue">
    -    (151/212)
    +    (27/33)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.4%
    +  </span>
    +  <span class="absValue">
    +    (123/170)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    70.8%
    +    94.7%
       </span>
       <span class="absValue">
    -    (17/24)
    +    (18/19)
       </span>
     </td>
       </tr>
    @@ -164,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-1.html
    index 195c1c50aa..3267dc55f2 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DefaultObjectNameFactory</title>
    +  <title>Coverage Report > InstrumentedConnectionFactory</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,19 +19,16 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jmx</a>
    +    <a href="../index.html">com.codahale.metrics.jetty9</a>
     </div>
     
    -<h1>Coverage Summary for Class: DefaultObjectNameFactory (com.codahale.metrics.jmx)</h1>
    +<h1>Coverage Summary for Class: InstrumentedConnectionFactory (com.codahale.metrics.jetty9)</h1>
     
     <table class="coverageStats">
    +
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
     ">
       Method, %
     </th>
    @@ -41,13 +38,32 @@ <h1>Coverage Summary for Class: DefaultObjectNameFactory (com.codahale.metrics.j
     </th>
     </tr>
     <tr>
    -  <td class="name">DefaultObjectNameFactory</td>
    +  <td class="name">InstrumentedConnectionFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedConnectionFactory$1</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
    @@ -55,19 +71,29 @@ <h1>Coverage Summary for Class: DefaultObjectNameFactory (com.codahale.metrics.j
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    70.8%
    +    94.7%
       </span>
       <span class="absValue">
    -    (17/24)
    +    (18/19)
       </span>
     </td>
     </tr>
    -
     </table>
     
     <br/>
    @@ -75,74 +101,68 @@ <h1>Coverage Summary for Class: DefaultObjectNameFactory (com.codahale.metrics.j
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
     &nbsp;
    -&nbsp;import java.util.Hashtable;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.eclipse.jetty.io.Connection;
    +&nbsp;import org.eclipse.jetty.io.EndPoint;
    +&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    +&nbsp;import org.eclipse.jetty.server.Connector;
    +&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
     &nbsp;
    -&nbsp;import javax.management.MalformedObjectNameException;
    -&nbsp;import javax.management.ObjectName;
    +&nbsp;import java.util.List;
     &nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    +<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    +&nbsp;    private final ConnectionFactory connectionFactory;
    +&nbsp;    private final Timer timer;
    +&nbsp;    private final Counter counter;
     &nbsp;
    -<b class="fc">&nbsp;public class DefaultObjectNameFactory implements ObjectNameFactory {</b>
    +&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    +<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    +&nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;    private static final char[] QUOTABLE_CHARS = new char[] {&#39;,&#39;, &#39;=&#39;, &#39;:&#39;, &#39;&quot;&#39;};</b>
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);</b>
    +<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    +<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    +<b class="fc">&nbsp;        this.timer = timer;</b>
    +<b class="fc">&nbsp;        this.counter = counter;</b>
    +<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    +&nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public ObjectName createName(String type, String domain, String name) {
    -&nbsp;        try {
    -&nbsp;            ObjectName objectName;
    -<b class="fc">&nbsp;            Hashtable&lt;String, String&gt; properties = new Hashtable&lt;&gt;();</b>
    +&nbsp;    public String getProtocol() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    +&nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;            properties.put(&quot;name&quot;, name);</b>
    -<b class="fc">&nbsp;            properties.put(&quot;type&quot;, type);</b>
    -<b class="fc">&nbsp;            objectName = new ObjectName(domain, properties);</b>
    +&nbsp;    @Override
    +&nbsp;    public List&lt;String&gt; getProtocols() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;            /*
    -&nbsp;             * The only way we can find out if we need to quote the properties is by
    -&nbsp;             * checking an ObjectName that we&#39;ve constructed.
    -&nbsp;             */
    -<b class="fc">&nbsp;            if (objectName.isDomainPattern()) {</b>
    -<b class="nc">&nbsp;                domain = ObjectName.quote(domain);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (objectName.isPropertyValuePattern(&quot;name&quot;) || shouldQuote(objectName.getKeyProperty(&quot;name&quot;))) {</b>
    -<b class="fc">&nbsp;                properties.put(&quot;name&quot;, ObjectName.quote(name));</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (objectName.isPropertyValuePattern(&quot;type&quot;) || shouldQuote(objectName.getKeyProperty(&quot;type&quot;))) {</b>
    -<b class="nc">&nbsp;                properties.put(&quot;type&quot;, ObjectName.quote(type));</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            objectName = new ObjectName(domain, properties);</b>
    +&nbsp;    @Override
    +&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    +<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    +<b class="fc">&nbsp;        connection.addListener(new Connection.Listener() {</b>
    +&nbsp;            private Timer.Context context;
     &nbsp;
    -<b class="fc">&nbsp;            return objectName;</b>
    -<b class="nc">&nbsp;        } catch (MalformedObjectNameException e) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                return new ObjectName(domain, &quot;name&quot;, ObjectName.quote(name));</b>
    -<b class="nc">&nbsp;            } catch (MalformedObjectNameException e1) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register {} {}&quot;, type, name, e1);</b>
    -<b class="nc">&nbsp;                throw new RuntimeException(e1);</b>
    +&nbsp;            @Override
    +&nbsp;            public void onOpened(Connection connection) {
    +<b class="fc">&nbsp;                this.context = timer.time();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.inc();</b>
    +&nbsp;                }
     &nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Determines whether the value requires quoting.
    -&nbsp;     * According to the {@link ObjectName} documentation, values can be quoted or unquoted. Unquoted
    -&nbsp;     * values may not contain any of the characters comma, equals, colon, or quote.
    -&nbsp;     *
    -&nbsp;     * @param value a value to test
    -&nbsp;     * @return true when it requires quoting, false otherwise
    -&nbsp;     */
    -&nbsp;    private boolean shouldQuote(final String value) {
    -<b class="fc">&nbsp;        for (char quotableChar : QUOTABLE_CHARS) {</b>
    -<b class="fc">&nbsp;            if (value.indexOf(quotableChar) != -1) {</b>
    -<b class="fc">&nbsp;                return true;</b>
    +&nbsp;            @Override
    +&nbsp;            public void onClosed(Connection connection) {
    +<b class="fc">&nbsp;                context.stop();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.dec();</b>
    +&nbsp;                }
     &nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return false;</b>
    +&nbsp;        });
    +<b class="fc">&nbsp;        return connection;</b>
     &nbsp;    }
    -&nbsp;
     &nbsp;}
     </code>
     </pre>
    @@ -167,7 +187,7 @@ <h1>Coverage Summary for Class: DefaultObjectNameFactory (com.codahale.metrics.j
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-2.html
    index 428b87d154..58485fcd0c 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-2.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JmxReporter</title>
    +  <title>Coverage Report > InstrumentedHandler</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jmx</a>
    +    <a href="../index.html">com.codahale.metrics.jetty9</a>
     </div>
     
    -<h1>Coverage Summary for Class: JmxReporter (com.codahale.metrics.jmx)</h1>
    +<h1>Coverage Summary for Class: InstrumentedHandler (com.codahale.metrics.jetty9)</h1>
     
     <table class="coverageStats">
     
    @@ -33,34 +33,35 @@ <h1>Coverage Summary for Class: JmxReporter (com.codahale.metrics.jmx)</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
     </tr>
     <tr>
    -  <td class="name">JmxReporter</td>
    +  <td class="name">InstrumentedHandler</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    81.2%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (13/16)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    85.2%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (115/135)
       </span>
     </td>
     </tr>
       <tr>
    -    <td class="name">JmxReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$AbstractBean</td>
    +    <td class="name">InstrumentedHandler$1</td>
     <td class="coverageStat">
       <span class="percent">
         50%
    @@ -71,125 +72,116 @@ <h1>Coverage Summary for Class: JmxReporter (com.codahale.metrics.jmx)</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    33.3%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (1/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name">JmxReporter$Builder</td>
    +    <td class="name">InstrumentedHandler$2</td>
     <td class="coverageStat">
       <span class="percent">
    -    81.8%
    +    50%
       </span>
       <span class="absValue">
    -    (9/11)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    84.4%
    +    33.3%
       </span>
       <span class="absValue">
    -    (27/32)
    +    (1/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name">JmxReporter$JmxCounter</td>
    +    <td class="name">InstrumentedHandler$3</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    50%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name">JmxReporter$JmxCounterMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxGauge</td>
    +    <td class="name">InstrumentedHandler$4</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    50%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (1/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name">JmxReporter$JmxGaugeMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxHistogram</td>
    +    <td class="name">InstrumentedHandler$5</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    50%
       </span>
       <span class="absValue">
    -    (14/16)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    33.3%
       </span>
       <span class="absValue">
    -    (16/18)
    +    (1/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name">JmxReporter$JmxHistogramMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxListener</td>
    +    <td class="name">InstrumentedHandler$6</td>
     <td class="coverageStat">
       <span class="percent">
    -    68.8%
    +    50%
       </span>
       <span class="absValue">
    -    (11/16)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    49.5%
    +    33.3%
       </span>
       <span class="absValue">
    -    (50/101)
    +    (1/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name">JmxReporter$JmxMeter</td>
    +    <td class="name">InstrumentedHandler$7</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (9/9)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
    @@ -197,54 +189,53 @@ <h1>Coverage Summary for Class: JmxReporter (com.codahale.metrics.jmx)</h1>
         100%
       </span>
       <span class="absValue">
    -    (13/13)
    +    (1/1)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name">JmxReporter$JmxMeterMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxTimer</td>
    +    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
     <td class="coverageStat">
       <span class="percent">
    -    92.9%
    +    20%
       </span>
       <span class="absValue">
    -    (13/14)
    +    (1/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.1%
    +    20%
       </span>
       <span class="absValue">
    -    (16/17)
    +    (1/5)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name">JmxReporter$JmxTimerMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$MetricMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$MetricTimeUnits</td>
    +    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (0/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (0/11)
       </span>
     </td>
       </tr>
    @@ -252,18 +243,26 @@ <h1>Coverage Summary for Class: JmxReporter (com.codahale.metrics.jmx)</h1>
       <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    86%
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
       </span>
       <span class="absValue">
    -    (74/86)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.2%
    +    72.4%
       </span>
       <span class="absValue">
    -    (151/212)
    +    (123/170)
       </span>
     </td>
     </tr>
    @@ -274,763 +273,457 @@ <h1>Coverage Summary for Class: JmxReporter (com.codahale.metrics.jmx)</h1>
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
     &nbsp;
     &nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Histogram;
     &nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.Metered;
    -&nbsp;import com.codahale.metrics.MetricFilter;
     &nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.MetricRegistryListener;
    -&nbsp;import com.codahale.metrics.Reporter;
    +&nbsp;import com.codahale.metrics.RatioGauge;
     &nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import javax.management.InstanceAlreadyExistsException;
    -&nbsp;import javax.management.InstanceNotFoundException;
    -&nbsp;import javax.management.JMException;
    -&nbsp;import javax.management.MBeanRegistrationException;
    -&nbsp;import javax.management.MBeanServer;
    -&nbsp;import javax.management.ObjectInstance;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;import java.io.Closeable;
    -&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
    +&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.server.Handler;
    +&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    +&nbsp;
    +&nbsp;import javax.servlet.AsyncEvent;
    +&nbsp;import javax.servlet.AsyncListener;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Arrays;
     &nbsp;import java.util.Collections;
    -&nbsp;import java.util.Locale;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
     &nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
     &nbsp;import java.util.concurrent.ConcurrentHashMap;
     &nbsp;import java.util.concurrent.TimeUnit;
     &nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
     &nbsp;/**
    -&nbsp; * A reporter which listens for new metrics and exposes them as namespaced MBeans.
    +&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    +&nbsp; * instance.
     &nbsp; */
    -<b class="fc">&nbsp;public class JmxReporter implements Reporter, Closeable {</b>
    +<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    +&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    +&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    +&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    +&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    +&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    +&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    +&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    +&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    +&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    +&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    +&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    +&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    +&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    +&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    +&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    +&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    +&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    +&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    +&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;
    +&nbsp;    private String name;
    +&nbsp;    private final String prefix;
    +&nbsp;
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    private Timer requests;
    +&nbsp;
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    private Timer dispatches;
    +&nbsp;
    +&nbsp;    // the number of active requests
    +&nbsp;    private Counter activeRequests;
    +&nbsp;
    +&nbsp;    // the number of active dispatches
    +&nbsp;    private Counter activeDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    private Counter activeSuspended;
    +&nbsp;
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    private Meter asyncDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    private Meter asyncTimeouts;
    +&nbsp;
    +&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    private List&lt;Meter&gt; responses;
    +&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;
    +&nbsp;    private Timer getRequests;
    +&nbsp;    private Timer postRequests;
    +&nbsp;    private Timer headRequests;
    +&nbsp;    private Timer putRequests;
    +&nbsp;    private Timer deleteRequests;
    +&nbsp;    private Timer optionsRequests;
    +&nbsp;    private Timer traceRequests;
    +&nbsp;    private Timer connectRequests;
    +&nbsp;    private Timer moveRequests;
    +&nbsp;    private Timer otherRequests;
    +&nbsp;
    +&nbsp;    private AsyncListener listener;
    +&nbsp;
    +&nbsp;    private HttpChannelState.State DISPATCHED_HACK;
    +&nbsp;
     &nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link JmxReporter}.
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
     &nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link JmxReporter}
    +&nbsp;     * @param registry the registry for the metrics
     &nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    +&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null);</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * A builder for {@link JmxReporter} instances. Defaults to using the default MBean server and
    -&nbsp;     * not filtering metrics.
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
     &nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private MBeanServer mBeanServer;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private ObjectNameFactory objectNameFactory;
    -<b class="fc">&nbsp;        private MetricFilter filter = MetricFilter.ALL;</b>
    -&nbsp;        private String domain;
    -&nbsp;        private Map&lt;String, TimeUnit&gt; specificDurationUnits;
    -&nbsp;        private Map&lt;String, TimeUnit&gt; specificRateUnits;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.domain = &quot;metrics&quot;;</b>
    -<b class="fc">&nbsp;            this.objectNameFactory = new DefaultObjectNameFactory();</b>
    -<b class="fc">&nbsp;            this.specificDurationUnits = Collections.emptyMap();</b>
    -<b class="fc">&nbsp;            this.specificRateUnits = Collections.emptyMap();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Register MBeans with the given {@link MBeanServer}.
    -&nbsp;         *
    -&nbsp;         * @param mBeanServer an {@link MBeanServer}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder registerWith(MBeanServer mBeanServer) {
    -<b class="fc">&nbsp;            this.mBeanServer = mBeanServer;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder createsObjectNamesWith(ObjectNameFactory onFactory) {
    -<b class="fc">&nbsp;            if (onFactory == null) {</b>
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;null objectNameFactory&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            this.objectNameFactory = onFactory;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder inDomain(String domain) {
    -<b class="fc">&nbsp;            this.domain = domain;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use specific {@link TimeUnit}s for the duration of the metrics with these names.
    -&nbsp;         *
    -&nbsp;         * @param specificDurationUnits a map of metric names and specific {@link TimeUnit}s
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder specificDurationUnits(Map&lt;String, TimeUnit&gt; specificDurationUnits) {
    -<b class="nc">&nbsp;            this.specificDurationUnits = Collections.unmodifiableMap(specificDurationUnits);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use specific {@link TimeUnit}s for the rate of the metrics with these names.
    -&nbsp;         *
    -&nbsp;         * @param specificRateUnits a map of metric names and specific {@link TimeUnit}s
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder specificRateUnits(Map&lt;String, TimeUnit&gt; specificRateUnits) {
    -<b class="nc">&nbsp;            this.specificRateUnits = Collections.unmodifiableMap(specificRateUnits);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link JmxReporter} with the given properties.
    -&nbsp;         *
    -&nbsp;         * @return a {@link JmxReporter}
    -&nbsp;         */
    -&nbsp;        public JmxReporter build() {
    -<b class="fc">&nbsp;            final MetricTimeUnits timeUnits = new MetricTimeUnits(rateUnit, durationUnit, specificRateUnits, specificDurationUnits);</b>
    -<b class="fc">&nbsp;            if (mBeanServer == null) {</b>
    -<b class="fc">&nbsp;                mBeanServer = ManagementFactory.getPlatformMBeanServer();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new JmxReporter(mBeanServer, domain, registry, filter, timeUnits, objectNameFactory);</b>
    -&nbsp;        }
    +&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    +<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
     &nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);</b>
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface MetricMBean {
    -&nbsp;        ObjectName objectName();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private abstract static class AbstractBean implements MetricMBean {
    -&nbsp;        private final ObjectName objectName;
    -&nbsp;
    -<b class="fc">&nbsp;        AbstractBean(ObjectName objectName) {</b>
    -<b class="fc">&nbsp;            this.objectName = objectName;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public ObjectName objectName() {
    -<b class="nc">&nbsp;            return objectName;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxGaugeMBean extends MetricMBean {
    -&nbsp;        Object getValue();
    -&nbsp;        Number getNumber();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxGauge extends AbstractBean implements JmxGaugeMBean {</b>
    -&nbsp;        private final Gauge&lt;?&gt; metric;
    -&nbsp;
    -&nbsp;        private JmxGauge(Gauge&lt;?&gt; metric, ObjectName objectName) {
    -<b class="fc">&nbsp;            super(objectName);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Object getValue() {
    -<b class="fc">&nbsp;            return metric.getValue();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Number getNumber() {
    -<b class="fc">&nbsp;            Object value = metric.getValue();</b>
    -<b class="fc">&nbsp;            return value instanceof Number ? (Number) value : 0;</b>
    -&nbsp;        }
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            DISPATCHED_HACK = HttpChannelState.State.valueOf(&quot;HANDLING&quot;);</b>
    +<b class="nc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    +<b class="nc">&nbsp;            DISPATCHED_HACK = HttpChannelState.State.valueOf(&quot;DISPATCHED&quot;);</b>
    +<b class="fc">&nbsp;        }</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxCounterMBean extends MetricMBean {
    -&nbsp;        long getCount();
    +&nbsp;    public String getName() {
    +<b class="fc">&nbsp;        return name;</b>
     &nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;    private static class JmxCounter extends AbstractBean implements JmxCounterMBean {</b>
    -&nbsp;        private final Counter metric;
    -&nbsp;
    -&nbsp;        private JmxCounter(Counter metric, ObjectName objectName) {
    -<b class="fc">&nbsp;            super(objectName);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="fc">&nbsp;            return metric.getCount();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxHistogramMBean extends MetricMBean {
    -&nbsp;        long getCount();
    -&nbsp;
    -&nbsp;        long getMin();
    -&nbsp;
    -&nbsp;        long getMax();
    -&nbsp;
    -&nbsp;        double getMean();
    -&nbsp;
    -&nbsp;        double getStdDev();
    -&nbsp;
    -&nbsp;        double get50thPercentile();
    -&nbsp;
    -&nbsp;        double get75thPercentile();
    -&nbsp;
    -&nbsp;        double get95thPercentile();
    -&nbsp;
    -&nbsp;        double get98thPercentile();
    -&nbsp;
    -&nbsp;        double get99thPercentile();
    -&nbsp;
    -&nbsp;        double get999thPercentile();
    -&nbsp;
    -&nbsp;        long[] values();
    -&nbsp;
    -&nbsp;        long getSnapshotSize();
    +&nbsp;    public void setName(String name) {
    +<b class="fc">&nbsp;        this.name = name;</b>
     &nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;    private static class JmxHistogram implements JmxHistogramMBean {</b>
    -&nbsp;        private final ObjectName objectName;
    -&nbsp;        private final Histogram metric;
    -&nbsp;
    -<b class="fc">&nbsp;        private JmxHistogram(Histogram metric, ObjectName objectName) {</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -<b class="fc">&nbsp;            this.objectName = objectName;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public ObjectName objectName() {
    -<b class="nc">&nbsp;            return objectName;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get50thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMedian();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="fc">&nbsp;            return metric.getCount();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getMin() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMin();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getMax() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMax();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMean() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMean();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getStdDev() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getStdDev();</b>
    -&nbsp;        }
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    +&nbsp;            ));
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get75thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get75thPercentile();</b>
    -&nbsp;        }
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get95thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get95thPercentile();</b>
    -&nbsp;        }
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get98thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get98thPercentile();</b>
    -&nbsp;        }
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get99thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get99thPercentile();</b>
    -&nbsp;        }
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get999thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get999thPercentile();</b>
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                public Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
     &nbsp;        }
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long[] values() {
    -<b class="nc">&nbsp;            return metric.getSnapshot().getValues();</b>
    -&nbsp;        }
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getSnapshotSize() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().size();</b>
    -&nbsp;        }
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxMeterMBean extends MetricMBean {
    -&nbsp;        long getCount();
    -&nbsp;
    -&nbsp;        double getMeanRate();
    -&nbsp;
    -&nbsp;        double getOneMinuteRate();
    -&nbsp;
    -&nbsp;        double getFiveMinuteRate();
    -&nbsp;
    -&nbsp;        double getFifteenMinuteRate();
    -&nbsp;
    -&nbsp;        String getRateUnit();
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    +<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    +<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    +<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        super.doStop();</b>
     &nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;    private static class JmxMeter extends AbstractBean implements JmxMeterMBean {</b>
    -&nbsp;        private final Metered metric;
    -&nbsp;        private final double rateFactor;
    -&nbsp;        private final String rateUnit;
    -&nbsp;
    -&nbsp;        private JmxMeter(Metered metric, ObjectName objectName, TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            super(objectName);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;            this.rateUnit = (&quot;events/&quot; + calculateRateUnit(rateUnit)).intern();</b>
    +&nbsp;    @Override
    +&nbsp;    public void handle(String path,
    +&nbsp;                       Request request,
    +&nbsp;                       HttpServletRequest httpRequest,
    +&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="nc">&nbsp;            activeSuspended.dec();</b>
    +<b class="nc">&nbsp;            if (state.getState() == DISPATCHED_HACK) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    +&nbsp;            }
     &nbsp;        }
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="fc">&nbsp;            return metric.getCount();</b>
    -&nbsp;        }
    +&nbsp;        try {
    +<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            final long dispatched = now - start;</b>
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMeanRate() {
    -<b class="fc">&nbsp;            return metric.getMeanRate() * rateFactor;</b>
    -&nbsp;        }
    +<b class="fc">&nbsp;            activeDispatches.dec();</b>
    +<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getOneMinuteRate() {
    -<b class="fc">&nbsp;            return metric.getOneMinuteRate() * rateFactor;</b>
    -&nbsp;        }
    +<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.inc();</b>
    +<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    +&nbsp;            }
    +&nbsp;            // else onCompletion will handle it.
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getFiveMinuteRate() {
    -<b class="fc">&nbsp;            return metric.getFiveMinuteRate() * rateFactor;</b>
    +&nbsp;    private Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
     &nbsp;        }
    +&nbsp;    }
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getFifteenMinuteRate() {
    -<b class="fc">&nbsp;            return metric.getFifteenMinuteRate() * rateFactor;</b>
    +&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="fc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
     &nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getRateUnit() {
    -<b class="fc">&nbsp;            return rateUnit;</b>
    +&nbsp;    private void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
     &nbsp;        }
     &nbsp;
    -&nbsp;        private String calculateRateUnit(TimeUnit unit) {
    -<b class="fc">&nbsp;            final String s = unit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;            return s.substring(0, s.length() - 1);</b>
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            }
     &nbsp;        }
     &nbsp;    }
     &nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxTimerMBean extends JmxMeterMBean {
    -&nbsp;        double getMin();
    -&nbsp;
    -&nbsp;        double getMax();
    -&nbsp;
    -&nbsp;        double getMean();
    -&nbsp;
    -&nbsp;        double getStdDev();
    -&nbsp;
    -&nbsp;        double get50thPercentile();
    -&nbsp;
    -&nbsp;        double get75thPercentile();
    -&nbsp;
    -&nbsp;        double get95thPercentile();
    -&nbsp;
    -&nbsp;        double get98thPercentile();
    -&nbsp;
    -&nbsp;        double get99thPercentile();
    -&nbsp;
    -&nbsp;        double get999thPercentile();
    -&nbsp;
    -&nbsp;        long[] values();
    -&nbsp;
    -&nbsp;        String getDurationUnit();
    +&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
     &nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;    static class JmxTimer extends JmxMeter implements JmxTimerMBean {</b>
    -&nbsp;        private final Timer metric;
    -&nbsp;        private final double durationFactor;
    -&nbsp;        private final String durationUnit;
    -&nbsp;
    -&nbsp;        private JmxTimer(Timer metric,
    -&nbsp;                         ObjectName objectName,
    -&nbsp;                         TimeUnit rateUnit,
    -&nbsp;                         TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            super(metric, objectName, rateUnit);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -<b class="fc">&nbsp;            this.durationFactor = 1.0 / durationUnit.toNanos(1);</b>
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get50thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMedian() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMin() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMin() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMax() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMax() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMean() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMean() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getStdDev() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getStdDev() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get75thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get75thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get95thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get95thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get98thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get98thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get99thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get99thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get999thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get999thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long[] values() {
    -<b class="nc">&nbsp;            return metric.getSnapshot().getValues();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getDurationUnit() {
    -<b class="fc">&nbsp;            return durationUnit;</b>
    -&nbsp;        }
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
     &nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;    private static class JmxListener implements MetricRegistryListener {</b>
    -&nbsp;        private final String name;
    -&nbsp;        private final MBeanServer mBeanServer;
    -&nbsp;        private final MetricFilter filter;
    -&nbsp;        private final MetricTimeUnits timeUnits;
    -&nbsp;        private final Map&lt;ObjectName, ObjectName&gt; registered;
    -&nbsp;        private final ObjectNameFactory objectNameFactory;
    -&nbsp;
    -<b class="fc">&nbsp;        private JmxListener(MBeanServer mBeanServer, String name, MetricFilter filter, MetricTimeUnits timeUnits, ObjectNameFactory objectNameFactory) {</b>
    -<b class="fc">&nbsp;            this.mBeanServer = mBeanServer;</b>
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            this.timeUnits = timeUnits;</b>
    -<b class="fc">&nbsp;            this.registered = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;            this.objectNameFactory = objectNameFactory;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void registerMBean(Object mBean, ObjectName objectName) throws InstanceAlreadyExistsException, JMException {
    -<b class="fc">&nbsp;            ObjectInstance objectInstance = mBeanServer.registerMBean(mBean, objectName);</b>
    -<b class="fc">&nbsp;            if (objectInstance != null) {</b>
    -&nbsp;                // the websphere mbeanserver rewrites the objectname to include
    -&nbsp;                // cell, node &amp; server info
    -&nbsp;                // make sure we capture the new objectName for unregistration
    -<b class="fc">&nbsp;                registered.put(objectName, objectInstance.getObjectName());</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                registered.put(objectName, objectName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void unregisterMBean(ObjectName originalObjectName) throws InstanceNotFoundException, MBeanRegistrationException {
    -<b class="fc">&nbsp;            ObjectName storedObjectName = registered.remove(originalObjectName);</b>
    -<b class="fc">&nbsp;            if (storedObjectName != null) {</b>
    -<b class="fc">&nbsp;                mBeanServer.unregisterMBean(storedObjectName);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                mBeanServer.unregisterMBean(originalObjectName);</b>
    -&nbsp;            }
    -&nbsp;        }
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
     &nbsp;
     &nbsp;        @Override
    -&nbsp;        public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, gauge)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;gauges&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxGauge(gauge, objectName), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register gauge&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register gauge&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
     &nbsp;
     &nbsp;        @Override
    -&nbsp;        public void onGaugeRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;gauges&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister gauge&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister gauge&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
     &nbsp;        }
     &nbsp;
     &nbsp;        @Override
    -&nbsp;        public void onCounterAdded(String name, Counter counter) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, counter)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;counters&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxCounter(counter, objectName), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register counter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register counter&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
     &nbsp;
     &nbsp;        @Override
    -&nbsp;        public void onCounterRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;counters&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister counter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister counter&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    };
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onHistogramAdded(String name, Histogram histogram) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, histogram)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;histograms&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxHistogram(histogram, objectName), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register histogram&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register histogram&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onHistogramRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;histograms&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister histogram&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister histogram&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
     &nbsp;        }
     &nbsp;
     &nbsp;        @Override
    -&nbsp;        public void onMeterAdded(String name, Meter meter) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, meter)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;meters&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxMeter(meter, objectName, timeUnits.rateFor(name)), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register meter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register meter&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
     &nbsp;        }
     &nbsp;
     &nbsp;        @Override
    -&nbsp;        public void onMeterRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;meters&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister meter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister meter&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
     &nbsp;
     &nbsp;        @Override
    -&nbsp;        public void onTimerAdded(String name, Timer timer) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, timer)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;timers&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxTimer(timer, objectName, timeUnits.rateFor(name), timeUnits.durationFor(name)), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register timer&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register timer&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
     &nbsp;
     &nbsp;        @Override
    -&nbsp;        public void onTimerRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;timers&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister timer&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister timer&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private ObjectName createName(String type, String name) {
    -<b class="fc">&nbsp;            return objectNameFactory.createName(type, this.name, name);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        void unregisterAll() {
    -<b class="fc">&nbsp;            for (ObjectName name : registered.keySet()) {</b>
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    unregisterMBean(name);</b>
    -<b class="nc">&nbsp;                } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                    LOGGER.debug(&quot;Unable to unregister metric&quot;, e);</b>
    -<b class="nc">&nbsp;                } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                    LOGGER.warn(&quot;Unable to unregister metric&quot;, e);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            registered.clear();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MetricTimeUnits {
    -&nbsp;        private final TimeUnit defaultRate;
    -&nbsp;        private final TimeUnit defaultDuration;
    -&nbsp;        private final Map&lt;String, TimeUnit&gt; rateOverrides;
    -&nbsp;        private final Map&lt;String, TimeUnit&gt; durationOverrides;
    -&nbsp;
    -&nbsp;        MetricTimeUnits(TimeUnit defaultRate,
    -&nbsp;                        TimeUnit defaultDuration,
    -&nbsp;                        Map&lt;String, TimeUnit&gt; rateOverrides,
    -<b class="fc">&nbsp;                        Map&lt;String, TimeUnit&gt; durationOverrides) {</b>
    -<b class="fc">&nbsp;            this.defaultRate = defaultRate;</b>
    -<b class="fc">&nbsp;            this.defaultDuration = defaultDuration;</b>
    -<b class="fc">&nbsp;            this.rateOverrides = rateOverrides;</b>
    -<b class="fc">&nbsp;            this.durationOverrides = durationOverrides;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public TimeUnit durationFor(String name) {
    -<b class="fc">&nbsp;            return durationOverrides.getOrDefault(name, defaultDuration);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public TimeUnit rateFor(String name) {
    -<b class="fc">&nbsp;            return rateOverrides.getOrDefault(name, defaultRate);</b>
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    +<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    +<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    +<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.dec();</b>
    +&nbsp;            }
     &nbsp;        }
     &nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final JmxListener listener;
    -&nbsp;
    -&nbsp;    private JmxReporter(MBeanServer mBeanServer,
    -&nbsp;                        String domain,
    -&nbsp;                        MetricRegistry registry,
    -&nbsp;                        MetricFilter filter,
    -&nbsp;                        MetricTimeUnits timeUnits,
    -<b class="fc">&nbsp;                        ObjectNameFactory objectNameFactory) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.listener = new JmxListener(mBeanServer, domain, filter, timeUnits, objectNameFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Starts the reporter.
    -&nbsp;     */
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        registry.addListener(listener);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Stops the reporter.
    -&nbsp;     */
    -&nbsp;    public void stop() {
    -<b class="fc">&nbsp;        registry.removeListener(listener);</b>
    -<b class="fc">&nbsp;        listener.unregisterAll();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Stops the reporter.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="nc">&nbsp;        stop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Visible for testing
    -&nbsp;     */
    -&nbsp;    ObjectNameFactory getObjectNameFactory() {
    -<b class="fc">&nbsp;        return listener.objectNameFactory;</b>
    -&nbsp;    }
    -&nbsp;
     &nbsp;}
     </code>
     </pre>
    @@ -1055,7 +748,7 @@ <h1>Coverage Summary for Class: JmxReporter (com.codahale.metrics.jmx)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-3.html
    index d992b188b5..9fe00be6d7 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-3.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-3.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ObjectNameFactory</title>
    +  <title>Coverage Report > InstrumentedHttpChannelListener</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,27 +19,232 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jmx</a>
    +    <a href="../index.html">com.codahale.metrics.jetty9</a>
     </div>
     
    -<h1>Coverage Summary for Class: ObjectNameFactory (com.codahale.metrics.jmx)</h1>
    +<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (com.codahale.metrics.jetty9)</h1>
     
     <table class="coverageStats">
     
     <tr>
       <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
     </tr>
    +<tr>
    +  <td class="name">InstrumentedHttpChannelListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.1%
    +  </span>
    +  <span class="absValue">
    +    (20/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.6%
    +  </span>
    +  <span class="absValue">
    +    (90/109)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
       <tr>
    -    <td class="name">ObjectNameFactory$MockitoMock$VEj5MjvT</td>
    +    <td class="name">InstrumentedHttpChannelListener$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
       </tr>
       <tr>
    -    <td class="name">ObjectNameFactory$MockitoMock$VEj5MjvT$auxiliary$HFd15fvI</td>
    +    <td class="name">InstrumentedHttpChannelListener$7</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
       </tr>
       <tr>
    -    <td class="name">ObjectNameFactory$MockitoMock$VEj5MjvT$auxiliary$xPLVN6iS</td>
    +    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.7%
    +  </span>
    +  <span class="absValue">
    +    (8/11)
    +  </span>
    +</td>
       </tr>
     <tr>
       <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
     </tr>
     </table>
     
    @@ -48,13 +253,431 @@ <h1>Coverage Summary for Class: ObjectNameFactory (com.codahale.metrics.jmx)</h1
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import javax.servlet.AsyncEvent;
    +&nbsp;import javax.servlet.AsyncListener;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
    +&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    +&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    +&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    +&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    +&nbsp; *
    +&nbsp; * @since TBD
    +&nbsp; */
    +<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    +&nbsp;    implements Listener
    +&nbsp;{
    +<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    private final Timer requests;
    +&nbsp;
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    private final Timer dispatches;
    +&nbsp;
    +&nbsp;    // the number of active requests
    +&nbsp;    private final Counter activeRequests;
    +&nbsp;
    +&nbsp;    // the number of active dispatches
    +&nbsp;    private final Counter activeDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    private final Counter activeSuspended;
    +&nbsp;
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    private final Meter asyncDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    private final Meter asyncTimeouts;
    +&nbsp;
    +&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    private final List&lt;Meter&gt; responses;
    +&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;    private final String prefix;
    +&nbsp;    private final Timer getRequests;
    +&nbsp;    private final Timer postRequests;
    +&nbsp;    private final Timer headRequests;
    +&nbsp;    private final Timer putRequests;
    +&nbsp;    private final Timer deleteRequests;
    +&nbsp;    private final Timer optionsRequests;
    +&nbsp;    private final Timer traceRequests;
    +&nbsp;    private final Timer connectRequests;
    +&nbsp;    private final Timer moveRequests;
    +&nbsp;    private final Timer otherRequests;
    +&nbsp;
    +&nbsp;    private final AsyncListener listener;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param pref     the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    +<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param pref     the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    +<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    +<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                    requests.getOneMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                    requests.getFiveMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                    requests.getFifteenMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                    requests.getOneMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                    requests.getFiveMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                    requests.getFifteenMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestBegin(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onBeforeDispatch(final Request request) {
    +<b class="fc">&nbsp;        before(request);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onAfterDispatch(final Request request) {
    +<b class="fc">&nbsp;        after(request);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestContentEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestTrailers(final Request request) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseBegin(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseCommit(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onComplete(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    private void before(final Request request) {
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            activeSuspended.dec();</b>
    +<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void after(final Request request) {
    +<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    +<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.dec();</b>
    +<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    +<b class="fc">&nbsp;            activeSuspended.inc();</b>
    +<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    +&nbsp;        }
    +&nbsp;        // else onCompletion will handle it.
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="fc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    };
    +&nbsp;
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;        }
     &nbsp;
    -&nbsp;import javax.management.ObjectName;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
     &nbsp;
    -&nbsp;public interface ObjectNameFactory {
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
     &nbsp;
    -&nbsp;    ObjectName createName(String type, String domain, String name);
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    +<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    +<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    +<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    +<b class="fc">&nbsp;                activeSuspended.dec();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
     &nbsp;}
     </code>
     </pre>
    @@ -79,7 +702,7 @@ <h1>Coverage Summary for Class: ObjectNameFactory (com.codahale.metrics.jmx)</h1
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-4.html
    new file mode 100644
    index 0000000000..42da97bc51
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-4.html
    @@ -0,0 +1,286 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jetty9</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (com.codahale.metrics.jetty9)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedQueuedThreadPool</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (10/12)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (24/26)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.8%
    +  </span>
    +  <span class="absValue">
    +    (27/33)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import org.eclipse.jetty.util.annotation.Name;
    +&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    +&nbsp;
    +&nbsp;import java.util.concurrent.BlockingQueue;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    +&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    +&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    +&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    +&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    +&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;    private String prefix;
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, 200);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    +<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, queue);</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getPrefix() {
    +<b class="nc">&nbsp;        return prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setPrefix(String prefix) {
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    +&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    +&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    +<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index.html
    index b7c56e0576..c04c134fcd 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    +com.codahale.metrics.jmx</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    +    <td class="name">com.codahale.metrics.jmx</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (9/9)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    86.7%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (78/90)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99.2%
    +    71.2%
       </span>
       <span class="absValue">
    -    (131/132)
    +    (168/236)
       </span>
     </td>
       </tr>
    @@ -88,13 +88,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
    @@ -102,42 +102,42 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
         100%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    70.8%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (17/24)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96%
    +    86%
       </span>
       <span class="absValue">
    -    (24/25)
    +    (74/86)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99%
    +    71.2%
       </span>
       <span class="absValue">
    -    (100/101)
    +    (151/212)
       </span>
     </td>
       </tr>
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK.html
    index 25b87b4574..be0e594ac5 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    +com.codahale.metrics.jmx</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    +    <td class="name">com.codahale.metrics.jmx</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (9/9)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    86.7%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (78/90)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99.2%
    +    71.2%
       </span>
       <span class="absValue">
    -    (131/132)
    +    (168/236)
       </span>
     </td>
       </tr>
    @@ -88,13 +88,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
    @@ -102,42 +102,42 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
         100%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    70.8%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (17/24)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96%
    +    86%
       </span>
       <span class="absValue">
    -    (24/25)
    +    (74/86)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99%
    +    71.2%
       </span>
       <span class="absValue">
    -    (100/101)
    +    (151/212)
       </span>
     </td>
       </tr>
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
    index c55de48875..2982077daf 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    +com.codahale.metrics.jmx</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    +    <td class="name">com.codahale.metrics.jmx</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (9/9)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    86.7%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (78/90)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99.2%
    +    71.2%
       </span>
       <span class="absValue">
    -    (131/132)
    +    (168/236)
       </span>
     </td>
       </tr>
    @@ -88,40 +88,40 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96%
    +    86%
       </span>
       <span class="absValue">
    -    (24/25)
    +    (74/86)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99%
    +    71.2%
       </span>
       <span class="absValue">
    -    (100/101)
    +    (151/212)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
    @@ -129,15 +129,15 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
         100%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    70.8%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (17/24)
       </span>
     </td>
       </tr>
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS.html
    index 657359e213..0345555986 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    +com.codahale.metrics.jmx</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    +    <td class="name">com.codahale.metrics.jmx</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (9/9)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    86.7%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (78/90)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99.2%
    +    71.2%
       </span>
       <span class="absValue">
    -    (131/132)
    +    (168/236)
       </span>
     </td>
       </tr>
    @@ -88,13 +88,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
    @@ -102,42 +102,42 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
         100%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    70.8%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (17/24)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96%
    +    86%
       </span>
       <span class="absValue">
    -    (24/25)
    +    (74/86)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99%
    +    71.2%
       </span>
       <span class="absValue">
    -    (100/101)
    +    (151/212)
       </span>
     </td>
       </tr>
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
    index f88c8c98b7..3511a7f132 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    +com.codahale.metrics.jmx</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    +    <td class="name">com.codahale.metrics.jmx</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (9/9)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    86.7%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (78/90)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99.2%
    +    71.2%
       </span>
       <span class="absValue">
    -    (131/132)
    +    (168/236)
       </span>
     </td>
       </tr>
    @@ -88,40 +88,40 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96%
    +    86%
       </span>
       <span class="absValue">
    -    (24/25)
    +    (74/86)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99%
    +    71.2%
       </span>
       <span class="absValue">
    -    (100/101)
    +    (151/212)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
    @@ -129,15 +129,15 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
         100%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    70.8%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (17/24)
       </span>
     </td>
       </tr>
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE.html
    index bf1c4e2c81..5a12cb02dc 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    +com.codahale.metrics.jmx</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    +    <td class="name">com.codahale.metrics.jmx</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (9/9)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    86.7%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (78/90)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99.2%
    +    71.2%
       </span>
       <span class="absValue">
    -    (131/132)
    +    (168/236)
       </span>
     </td>
       </tr>
    @@ -88,56 +88,56 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96%
    +    100%
       </span>
       <span class="absValue">
    -    (24/25)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99%
    +    70.8%
       </span>
       <span class="absValue">
    -    (100/101)
    +    (17/24)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    86%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (74/86)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    71.2%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (151/212)
       </span>
     </td>
       </tr>
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
    index e0f863a81b..92039086a4 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    +com.codahale.metrics.jmx</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    +    <td class="name">com.codahale.metrics.jmx</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (9/9)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    86.7%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (78/90)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99.2%
    +    71.2%
       </span>
       <span class="absValue">
    -    (131/132)
    +    (168/236)
       </span>
     </td>
       </tr>
    @@ -88,56 +88,56 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    86%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (74/86)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    71.2%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (151/212)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96%
    +    100%
       </span>
       <span class="absValue">
    -    (24/25)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99%
    +    70.8%
       </span>
       <span class="absValue">
    -    (100/101)
    +    (17/24)
       </span>
     </td>
       </tr>
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD.html
    index 574798f09d..450328f7a3 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    +com.codahale.metrics.jmx</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    +    <td class="name">com.codahale.metrics.jmx</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (9/9)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    86.7%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (78/90)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99.2%
    +    71.2%
       </span>
       <span class="absValue">
    -    (131/132)
    +    (168/236)
       </span>
     </td>
       </tr>
    @@ -88,40 +88,40 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96%
    +    86%
       </span>
       <span class="absValue">
    -    (24/25)
    +    (74/86)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99%
    +    71.2%
       </span>
       <span class="absValue">
    -    (100/101)
    +    (151/212)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
    @@ -129,15 +129,15 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
         100%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    70.8%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (17/24)
       </span>
     </td>
       </tr>
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
    index a0de758ca3..0663cd0cf6 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    +com.codahale.metrics.jmx</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    +    <td class="name">com.codahale.metrics.jmx</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (9/9)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    86.7%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (78/90)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99.2%
    +    71.2%
       </span>
       <span class="absValue">
    -    (131/132)
    +    (168/236)
       </span>
     </td>
       </tr>
    @@ -88,13 +88,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
    @@ -102,42 +102,42 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
         100%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    70.8%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (17/24)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96%
    +    86%
       </span>
       <span class="absValue">
    -    (24/25)
    +    (74/86)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99%
    +    71.2%
       </span>
       <span class="absValue">
    -    (100/101)
    +    (151/212)
       </span>
     </td>
       </tr>
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
    index bbec467a14..24b62402e6 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    +  <title>Coverage Report > com.codahale.metrics.jmx</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    +com.codahale.metrics.jmx</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    +    <td class="name">com.codahale.metrics.jmx</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (9/9)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    86.7%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (78/90)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99.2%
    +    71.2%
       </span>
       <span class="absValue">
    -    (131/132)
    +    (168/236)
       </span>
     </td>
       </tr>
    @@ -88,40 +88,40 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    +    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96%
    +    86%
       </span>
       <span class="absValue">
    -    (24/25)
    +    (74/86)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99%
    +    71.2%
       </span>
       <span class="absValue">
    -    (100/101)
    +    (151/212)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    +    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
    @@ -129,15 +129,15 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
         100%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    70.8%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (17/24)
       </span>
     </td>
       </tr>
    @@ -164,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-1.html
    index 55ebf577fc..ef11b1f955 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckModule</title>
    +  <title>Coverage Report > DefaultObjectNameFactory</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,16 +19,19 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.json</a>
    +    <a href="../index.html">com.codahale.metrics.jmx</a>
     </div>
     
    -<h1>Coverage Summary for Class: HealthCheckModule (com.codahale.metrics.json)</h1>
    +<h1>Coverage Summary for Class: DefaultObjectNameFactory (com.codahale.metrics.jmx)</h1>
     
     <table class="coverageStats">
    -
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
     ">
       Method, %
     </th>
    @@ -38,13 +41,13 @@ <h1>Coverage Summary for Class: HealthCheckModule (com.codahale.metrics.json)</h
     </th>
     </tr>
     <tr>
    -  <td class="name">HealthCheckModule</td>
    +  <td class="name">DefaultObjectNameFactory</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
    @@ -55,48 +58,16 @@ <h1>Coverage Summary for Class: HealthCheckModule (com.codahale.metrics.json)</h
         (4/4)
       </span>
     </td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckModule$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheckModule$HealthCheckResultSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (27/27)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    70.8%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (17/24)
       </span>
     </td>
     </tr>
    +
     </table>
     
     <br/>
    @@ -104,89 +75,74 @@ <h1>Coverage Summary for Class: HealthCheckModule (com.codahale.metrics.json)</h
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.json;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
     &nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.fasterxml.jackson.core.JsonGenerator;
    -&nbsp;import com.fasterxml.jackson.core.Version;
    -&nbsp;import com.fasterxml.jackson.databind.Module;
    -&nbsp;import com.fasterxml.jackson.databind.SerializerProvider;
    -&nbsp;import com.fasterxml.jackson.databind.module.SimpleSerializers;
    -&nbsp;import com.fasterxml.jackson.databind.ser.std.StdSerializer;
    +&nbsp;import java.util.Hashtable;
     &nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Map;
    +&nbsp;import javax.management.MalformedObjectNameException;
    +&nbsp;import javax.management.ObjectName;
     &nbsp;
    -<b class="fc">&nbsp;public class HealthCheckModule extends Module {</b>
    -<b class="fc">&nbsp;    private static class HealthCheckResultSerializer extends StdSerializer&lt;HealthCheck.Result&gt; {</b>
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
     &nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    +<b class="fc">&nbsp;public class DefaultObjectNameFactory implements ObjectNameFactory {</b>
     &nbsp;
    -&nbsp;        private HealthCheckResultSerializer() {
    -<b class="fc">&nbsp;            super(HealthCheck.Result.class);</b>
    -&nbsp;        }
    +<b class="fc">&nbsp;    private static final char[] QUOTABLE_CHARS = new char[] {&#39;,&#39;, &#39;=&#39;, &#39;:&#39;, &#39;&quot;&#39;};</b>
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);</b>
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(HealthCheck.Result result,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeBooleanField(&quot;healthy&quot;, result.isHealthy());</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final String message = result.getMessage();</b>
    -<b class="fc">&nbsp;            if (message != null) {</b>
    -<b class="fc">&nbsp;                json.writeStringField(&quot;message&quot;, message);</b>
    +&nbsp;    @Override
    +&nbsp;    public ObjectName createName(String type, String domain, String name) {
    +&nbsp;        try {
    +&nbsp;            ObjectName objectName;
    +<b class="fc">&nbsp;            Hashtable&lt;String, String&gt; properties = new Hashtable&lt;&gt;();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            properties.put(&quot;name&quot;, name);</b>
    +<b class="fc">&nbsp;            properties.put(&quot;type&quot;, type);</b>
    +<b class="fc">&nbsp;            objectName = new ObjectName(domain, properties);</b>
    +&nbsp;
    +&nbsp;            /*
    +&nbsp;             * The only way we can find out if we need to quote the properties is by
    +&nbsp;             * checking an ObjectName that we&#39;ve constructed.
    +&nbsp;             */
    +<b class="fc">&nbsp;            if (objectName.isDomainPattern()) {</b>
    +<b class="nc">&nbsp;                domain = ObjectName.quote(domain);</b>
     &nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            serializeThrowable(json, result.getError(), &quot;error&quot;);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;duration&quot;, result.getDuration());</b>
    -&nbsp;
    -<b class="fc">&nbsp;            Map&lt;String, Object&gt; details = result.getDetails();</b>
    -<b class="fc">&nbsp;            if (details != null &amp;&amp; !details.isEmpty()) {</b>
    -<b class="fc">&nbsp;                for (Map.Entry&lt;String, Object&gt; e : details.entrySet()) {</b>
    -<b class="fc">&nbsp;                    json.writeObjectField(e.getKey(), e.getValue());</b>
    -<b class="fc">&nbsp;                }</b>
    +<b class="fc">&nbsp;            if (objectName.isPropertyValuePattern(&quot;name&quot;) || shouldQuote(objectName.getKeyProperty(&quot;name&quot;))) {</b>
    +<b class="fc">&nbsp;                properties.put(&quot;name&quot;, ObjectName.quote(name));</b>
     &nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            json.writeStringField(&quot;timestamp&quot;, result.getTimestamp());</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void serializeThrowable(JsonGenerator json, Throwable error, String name) throws IOException {
    -<b class="fc">&nbsp;            if (error != null) {</b>
    -<b class="fc">&nbsp;                json.writeObjectFieldStart(name);</b>
    -<b class="fc">&nbsp;                json.writeStringField(&quot;type&quot;, error.getClass().getTypeName());</b>
    -<b class="fc">&nbsp;                json.writeStringField(&quot;message&quot;, error.getMessage());</b>
    -<b class="fc">&nbsp;                json.writeArrayFieldStart(&quot;stack&quot;);</b>
    -<b class="fc">&nbsp;                for (StackTraceElement element : error.getStackTrace()) {</b>
    -<b class="fc">&nbsp;                    json.writeString(element.toString());</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                json.writeEndArray();</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (error.getCause() != null) {</b>
    -<b class="fc">&nbsp;                    serializeThrowable(json, error.getCause(), &quot;cause&quot;);</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                json.writeEndObject();</b>
    +<b class="fc">&nbsp;            if (objectName.isPropertyValuePattern(&quot;type&quot;) || shouldQuote(objectName.getKeyProperty(&quot;type&quot;))) {</b>
    +<b class="nc">&nbsp;                properties.put(&quot;type&quot;, ObjectName.quote(type));</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            objectName = new ObjectName(domain, properties);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            return objectName;</b>
    +<b class="nc">&nbsp;        } catch (MalformedObjectNameException e) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                return new ObjectName(domain, &quot;name&quot;, ObjectName.quote(name));</b>
    +<b class="nc">&nbsp;            } catch (MalformedObjectNameException e1) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register {} {}&quot;, type, name, e1);</b>
    +<b class="nc">&nbsp;                throw new RuntimeException(e1);</b>
     &nbsp;            }
     &nbsp;        }
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getModuleName() {
    -<b class="fc">&nbsp;        return &quot;healthchecks&quot;;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Version version() {
    -<b class="fc">&nbsp;        return MetricsModule.VERSION;</b>
    +&nbsp;    /**
    +&nbsp;     * Determines whether the value requires quoting.
    +&nbsp;     * According to the {@link ObjectName} documentation, values can be quoted or unquoted. Unquoted
    +&nbsp;     * values may not contain any of the characters comma, equals, colon, or quote.
    +&nbsp;     *
    +&nbsp;     * @param value a value to test
    +&nbsp;     * @return true when it requires quoting, false otherwise
    +&nbsp;     */
    +&nbsp;    private boolean shouldQuote(final String value) {
    +<b class="fc">&nbsp;        for (char quotableChar : QUOTABLE_CHARS) {</b>
    +<b class="fc">&nbsp;            if (value.indexOf(quotableChar) != -1) {</b>
    +<b class="fc">&nbsp;                return true;</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        return false;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void setupModule(SetupContext context) {
    -<b class="fc">&nbsp;        context.addSerializers(new SimpleSerializers(Collections.singletonList(new HealthCheckResultSerializer())));</b>
    -&nbsp;    }
     &nbsp;}
     </code>
     </pre>
    @@ -211,7 +167,7 @@ <h1>Coverage Summary for Class: HealthCheckModule (com.codahale.metrics.json)</h
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-2.html
    index c25ac1eb83..f913c2c6d4 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-2.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsModule</title>
    +  <title>Coverage Report > JmxReporter</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.json</a>
    +    <a href="../index.html">com.codahale.metrics.jmx</a>
     </div>
     
    -<h1>Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)</h1>
    +<h1>Coverage Summary for Class: JmxReporter (com.codahale.metrics.jmx)</h1>
     
     <table class="coverageStats">
     
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)</h1>
     </th>
     </tr>
     <tr>
    -  <td class="name">MetricsModule</td>
    +  <td class="name">JmxReporter</td>
     <td class="coverageStat">
       <span class="percent">
         87.5%
    @@ -49,56 +49,56 @@ <h1>Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    92.3%
    +    90.9%
       </span>
       <span class="absValue">
    -    (12/13)
    +    (10/11)
       </span>
     </td>
     </tr>
       <tr>
    -    <td class="name">MetricsModule$1</td>
    +    <td class="name">JmxReporter$1</td>
       </tr>
       <tr>
    -    <td class="name">MetricsModule$CounterSerializer</td>
    +    <td class="name">JmxReporter$AbstractBean</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    50%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name">MetricsModule$GaugeSerializer</td>
    +    <td class="name">JmxReporter$Builder</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    81.8%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (9/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    84.4%
       </span>
       <span class="absValue">
    -    (9/9)
    +    (27/32)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name">MetricsModule$HistogramSerializer</td>
    +    <td class="name">JmxReporter$JmxCounter</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -112,18 +112,21 @@ <h1>Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)</h1>
         100%
       </span>
       <span class="absValue">
    -    (19/19)
    +    (4/4)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name">MetricsModule$MeterSerializer</td>
    +    <td class="name">JmxReporter$JmxCounterMBean</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxGauge</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -131,18 +134,62 @@ <h1>Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)</h1>
         100%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (6/6)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name">MetricsModule$MetricRegistrySerializer</td>
    +    <td class="name">JmxReporter$JmxGaugeMBean</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxHistogram</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (14/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (16/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxHistogramMBean</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    68.8%
    +  </span>
    +  <span class="absValue">
    +    (11/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    49.5%
    +  </span>
    +  <span class="absValue">
    +    (50/101)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxMeter</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (9/9)
       </span>
     </td>
     <td class="coverageStat">
    @@ -150,12 +197,40 @@ <h1>Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)</h1>
         100%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxMeterMBean</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$JmxTimer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.1%
    +  </span>
    +  <span class="absValue">
    +    (16/17)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name">MetricsModule$TimerSerializer</td>
    +    <td class="name">JmxReporter$JmxTimerMBean</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$MetricMBean</td>
    +  </tr>
    +  <tr>
    +    <td class="name">JmxReporter$MetricTimeUnits</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -169,7 +244,7 @@ <h1>Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)</h1>
         100%
       </span>
       <span class="absValue">
    -    (33/33)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -177,18 +252,18 @@ <h1>Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)</h1>
       <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    96%
    +    86%
       </span>
       <span class="absValue">
    -    (24/25)
    +    (74/86)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    99%
    +    71.2%
       </span>
       <span class="absValue">
    -    (100/101)
    +    (151/212)
       </span>
     </td>
     </tr>
    @@ -199,266 +274,763 @@ <h1>Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)</h1>
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.json;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
     &nbsp;
     &nbsp;import com.codahale.metrics.Counter;
     &nbsp;import com.codahale.metrics.Gauge;
     &nbsp;import com.codahale.metrics.Histogram;
     &nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.Metered;
     &nbsp;import com.codahale.metrics.MetricFilter;
     &nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Snapshot;
    +&nbsp;import com.codahale.metrics.MetricRegistryListener;
    +&nbsp;import com.codahale.metrics.Reporter;
     &nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.fasterxml.jackson.core.JsonGenerator;
    -&nbsp;import com.fasterxml.jackson.core.Version;
    -&nbsp;import com.fasterxml.jackson.databind.Module;
    -&nbsp;import com.fasterxml.jackson.databind.SerializerProvider;
    -&nbsp;import com.fasterxml.jackson.databind.module.SimpleSerializers;
    -&nbsp;import com.fasterxml.jackson.databind.ser.std.StdSerializer;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import javax.management.InstanceAlreadyExistsException;
    +&nbsp;import javax.management.InstanceNotFoundException;
    +&nbsp;import javax.management.JMException;
    +&nbsp;import javax.management.MBeanRegistrationException;
    +&nbsp;import javax.management.MBeanServer;
    +&nbsp;import javax.management.ObjectInstance;
    +&nbsp;import javax.management.ObjectName;
    +&nbsp;import java.io.Closeable;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.util.Collections;
     &nbsp;import java.util.Locale;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
     &nbsp;import java.util.concurrent.TimeUnit;
     &nbsp;
    -<b class="fc">&nbsp;public class MetricsModule extends Module {</b>
    -<b class="fc">&nbsp;    static final Version VERSION = new Version(4, 0, 0, &quot;&quot;, &quot;io.dropwizard.metrics&quot;, &quot;metrics-json&quot;);</b>
    +&nbsp;/**
    +&nbsp; * A reporter which listens for new metrics and exposes them as namespaced MBeans.
    +&nbsp; */
    +<b class="fc">&nbsp;public class JmxReporter implements Reporter, Closeable {</b>
    +&nbsp;    /**
    +&nbsp;     * Returns a new {@link Builder} for {@link JmxReporter}.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry to report
    +&nbsp;     * @return a {@link Builder} instance for a {@link JmxReporter}
    +&nbsp;     */
    +&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    +<b class="fc">&nbsp;        return new Builder(registry);</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -<b class="fc">&nbsp;    private static class GaugeSerializer extends StdSerializer&lt;Gauge&gt; {</b>
    +&nbsp;    /**
    +&nbsp;     * A builder for {@link JmxReporter} instances. Defaults to using the default MBean server and
    +&nbsp;     * not filtering metrics.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class Builder {</b>
    +&nbsp;        private final MetricRegistry registry;
    +&nbsp;        private MBeanServer mBeanServer;
    +&nbsp;        private TimeUnit rateUnit;
    +&nbsp;        private TimeUnit durationUnit;
    +&nbsp;        private ObjectNameFactory objectNameFactory;
    +<b class="fc">&nbsp;        private MetricFilter filter = MetricFilter.ALL;</b>
    +&nbsp;        private String domain;
    +&nbsp;        private Map&lt;String, TimeUnit&gt; specificDurationUnits;
    +&nbsp;        private Map&lt;String, TimeUnit&gt; specificRateUnits;
     &nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    +<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;            this.registry = registry;</b>
    +<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    +<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    +<b class="fc">&nbsp;            this.domain = &quot;metrics&quot;;</b>
    +<b class="fc">&nbsp;            this.objectNameFactory = new DefaultObjectNameFactory();</b>
    +<b class="fc">&nbsp;            this.specificDurationUnits = Collections.emptyMap();</b>
    +<b class="fc">&nbsp;            this.specificRateUnits = Collections.emptyMap();</b>
    +&nbsp;        }
     &nbsp;
    -&nbsp;        private GaugeSerializer() {
    -<b class="fc">&nbsp;            super(Gauge.class);</b>
    +&nbsp;        /**
    +&nbsp;         * Register MBeans with the given {@link MBeanServer}.
    +&nbsp;         *
    +&nbsp;         * @param mBeanServer an {@link MBeanServer}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder registerWith(MBeanServer mBeanServer) {
    +<b class="fc">&nbsp;            this.mBeanServer = mBeanServer;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert rates to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param rateUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    +<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder createsObjectNamesWith(ObjectNameFactory onFactory) {
    +<b class="fc">&nbsp;            if (onFactory == null) {</b>
    +<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;null objectNameFactory&quot;);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            this.objectNameFactory = onFactory;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert durations to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param durationUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    +<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Only report metrics which match the given filter.
    +&nbsp;         *
    +&nbsp;         * @param filter a {@link MetricFilter}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder filter(MetricFilter filter) {
    +<b class="fc">&nbsp;            this.filter = filter;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder inDomain(String domain) {
    +<b class="fc">&nbsp;            this.domain = domain;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use specific {@link TimeUnit}s for the duration of the metrics with these names.
    +&nbsp;         *
    +&nbsp;         * @param specificDurationUnits a map of metric names and specific {@link TimeUnit}s
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder specificDurationUnits(Map&lt;String, TimeUnit&gt; specificDurationUnits) {
    +<b class="nc">&nbsp;            this.specificDurationUnits = Collections.unmodifiableMap(specificDurationUnits);</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use specific {@link TimeUnit}s for the rate of the metrics with these names.
    +&nbsp;         *
    +&nbsp;         * @param specificRateUnits a map of metric names and specific {@link TimeUnit}s
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder specificRateUnits(Map&lt;String, TimeUnit&gt; specificRateUnits) {
    +<b class="nc">&nbsp;            this.specificRateUnits = Collections.unmodifiableMap(specificRateUnits);</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Builds a {@link JmxReporter} with the given properties.
    +&nbsp;         *
    +&nbsp;         * @return a {@link JmxReporter}
    +&nbsp;         */
    +&nbsp;        public JmxReporter build() {
    +<b class="fc">&nbsp;            final MetricTimeUnits timeUnits = new MetricTimeUnits(rateUnit, durationUnit, specificRateUnits, specificDurationUnits);</b>
    +<b class="fc">&nbsp;            if (mBeanServer == null) {</b>
    +<b class="fc">&nbsp;                mBeanServer = ManagementFactory.getPlatformMBeanServer();</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return new JmxReporter(mBeanServer, domain, registry, filter, timeUnits, objectNameFactory);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);</b>
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    +&nbsp;    public interface MetricMBean {
    +&nbsp;        ObjectName objectName();
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private abstract static class AbstractBean implements MetricMBean {
    +&nbsp;        private final ObjectName objectName;
    +&nbsp;
    +<b class="fc">&nbsp;        AbstractBean(ObjectName objectName) {</b>
    +<b class="fc">&nbsp;            this.objectName = objectName;</b>
     &nbsp;        }
     &nbsp;
     &nbsp;        @Override
    -&nbsp;        public void serialize(Gauge gauge,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -&nbsp;            final Object value;
    -&nbsp;            try {
    -<b class="fc">&nbsp;                value = gauge.getValue();</b>
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;value&quot;, value);</b>
    -<b class="fc">&nbsp;            } catch (RuntimeException e) {</b>
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;error&quot;, e.toString());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        public ObjectName objectName() {
    +<b class="nc">&nbsp;            return objectName;</b>
     &nbsp;        }
     &nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;    private static class CounterSerializer extends StdSerializer&lt;Counter&gt; {</b>
    +&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    +&nbsp;    public interface JmxGaugeMBean extends MetricMBean {
    +&nbsp;        Object getValue();
    +&nbsp;        Number getNumber();
    +&nbsp;    }
     &nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    +<b class="fc">&nbsp;    private static class JmxGauge extends AbstractBean implements JmxGaugeMBean {</b>
    +&nbsp;        private final Gauge&lt;?&gt; metric;
     &nbsp;
    -&nbsp;        private CounterSerializer() {
    -<b class="fc">&nbsp;            super(Counter.class);</b>
    +&nbsp;        private JmxGauge(Gauge&lt;?&gt; metric, ObjectName objectName) {
    +<b class="fc">&nbsp;            super(objectName);</b>
    +<b class="fc">&nbsp;            this.metric = metric;</b>
     &nbsp;        }
     &nbsp;
     &nbsp;        @Override
    -&nbsp;        public void serialize(Counter counter,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, counter.getCount());</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        public Object getValue() {
    +<b class="fc">&nbsp;            return metric.getValue();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public Number getNumber() {
    +<b class="fc">&nbsp;            Object value = metric.getValue();</b>
    +<b class="fc">&nbsp;            return value instanceof Number ? (Number) value : 0;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    +&nbsp;    public interface JmxCounterMBean extends MetricMBean {
    +&nbsp;        long getCount();
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class JmxCounter extends AbstractBean implements JmxCounterMBean {</b>
    +&nbsp;        private final Counter metric;
    +&nbsp;
    +&nbsp;        private JmxCounter(Counter metric, ObjectName objectName) {
    +<b class="fc">&nbsp;            super(objectName);</b>
    +<b class="fc">&nbsp;            this.metric = metric;</b>
     &nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long getCount() {
    +<b class="fc">&nbsp;            return metric.getCount();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    +&nbsp;    public interface JmxHistogramMBean extends MetricMBean {
    +&nbsp;        long getCount();
    +&nbsp;
    +&nbsp;        long getMin();
    +&nbsp;
    +&nbsp;        long getMax();
    +&nbsp;
    +&nbsp;        double getMean();
    +&nbsp;
    +&nbsp;        double getStdDev();
    +&nbsp;
    +&nbsp;        double get50thPercentile();
    +&nbsp;
    +&nbsp;        double get75thPercentile();
    +&nbsp;
    +&nbsp;        double get95thPercentile();
    +&nbsp;
    +&nbsp;        double get98thPercentile();
    +&nbsp;
    +&nbsp;        double get99thPercentile();
    +&nbsp;
    +&nbsp;        double get999thPercentile();
    +&nbsp;
    +&nbsp;        long[] values();
    +&nbsp;
    +&nbsp;        long getSnapshotSize();
     &nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;    private static class HistogramSerializer extends StdSerializer&lt;Histogram&gt; {</b>
    +<b class="fc">&nbsp;    private static class JmxHistogram implements JmxHistogramMBean {</b>
    +&nbsp;        private final ObjectName objectName;
    +&nbsp;        private final Histogram metric;
     &nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    +<b class="fc">&nbsp;        private JmxHistogram(Histogram metric, ObjectName objectName) {</b>
    +<b class="fc">&nbsp;            this.metric = metric;</b>
    +<b class="fc">&nbsp;            this.objectName = objectName;</b>
    +&nbsp;        }
     &nbsp;
    -&nbsp;        private final boolean showSamples;
    +&nbsp;        @Override
    +&nbsp;        public ObjectName objectName() {
    +<b class="nc">&nbsp;            return objectName;</b>
    +&nbsp;        }
     &nbsp;
    -&nbsp;        private HistogramSerializer(boolean showSamples) {
    -<b class="fc">&nbsp;            super(Histogram.class);</b>
    -<b class="fc">&nbsp;            this.showSamples = showSamples;</b>
    +&nbsp;        @Override
    +&nbsp;        public double get50thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMedian();</b>
     &nbsp;        }
     &nbsp;
     &nbsp;        @Override
    -&nbsp;        public void serialize(Histogram histogram,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            final Snapshot snapshot = histogram.getSnapshot();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, histogram.getCount());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;max&quot;, snapshot.getMax());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean&quot;, snapshot.getMean());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;min&quot;, snapshot.getMin());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p50&quot;, snapshot.getMedian());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p75&quot;, snapshot.get75thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p95&quot;, snapshot.get95thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p98&quot;, snapshot.get98thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p99&quot;, snapshot.get99thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p999&quot;, snapshot.get999thPercentile());</b>
    +&nbsp;        public long getCount() {
    +<b class="fc">&nbsp;            return metric.getCount();</b>
    +&nbsp;        }
     &nbsp;
    -<b class="fc">&nbsp;            if (showSamples) {</b>
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;values&quot;, snapshot.getValues());</b>
    -&nbsp;            }
    +&nbsp;        @Override
    +&nbsp;        public long getMin() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMin();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long getMax() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMax();</b>
    +&nbsp;        }
     &nbsp;
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;stddev&quot;, snapshot.getStdDev());</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        @Override
    +&nbsp;        public double getMean() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMean();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getStdDev() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getStdDev();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get75thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get75thPercentile();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get95thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get95thPercentile();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get98thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get98thPercentile();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get99thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get99thPercentile();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get999thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get999thPercentile();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long[] values() {
    +<b class="nc">&nbsp;            return metric.getSnapshot().getValues();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long getSnapshotSize() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().size();</b>
     &nbsp;        }
     &nbsp;    }
     &nbsp;
    -&nbsp;    private static class MeterSerializer extends StdSerializer&lt;Meter&gt; {
    +&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    +&nbsp;    public interface JmxMeterMBean extends MetricMBean {
    +&nbsp;        long getCount();
     &nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;        double getMeanRate();
     &nbsp;
    -&nbsp;        private final String rateUnit;
    +&nbsp;        double getOneMinuteRate();
    +&nbsp;
    +&nbsp;        double getFiveMinuteRate();
    +&nbsp;
    +&nbsp;        double getFifteenMinuteRate();
    +&nbsp;
    +&nbsp;        String getRateUnit();
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class JmxMeter extends AbstractBean implements JmxMeterMBean {</b>
    +&nbsp;        private final Metered metric;
     &nbsp;        private final double rateFactor;
    +&nbsp;        private final String rateUnit;
     &nbsp;
    -&nbsp;        public MeterSerializer(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            super(Meter.class);</b>
    +&nbsp;        private JmxMeter(Metered metric, ObjectName objectName, TimeUnit rateUnit) {
    +<b class="fc">&nbsp;            super(objectName);</b>
    +<b class="fc">&nbsp;            this.metric = metric;</b>
     <b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;            this.rateUnit = calculateRateUnit(rateUnit, &quot;events&quot;);</b>
    +<b class="fc">&nbsp;            this.rateUnit = (&quot;events/&quot; + calculateRateUnit(rateUnit)).intern();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long getCount() {
    +<b class="fc">&nbsp;            return metric.getCount();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getMeanRate() {
    +<b class="fc">&nbsp;            return metric.getMeanRate() * rateFactor;</b>
     &nbsp;        }
     &nbsp;
     &nbsp;        @Override
    -&nbsp;        public void serialize(Meter meter,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, meter.getCount());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m15_rate&quot;, meter.getFifteenMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m1_rate&quot;, meter.getOneMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m5_rate&quot;, meter.getFiveMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean_rate&quot;, meter.getMeanRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;units&quot;, rateUnit);</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        public double getOneMinuteRate() {
    +<b class="fc">&nbsp;            return metric.getOneMinuteRate() * rateFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getFiveMinuteRate() {
    +<b class="fc">&nbsp;            return metric.getFiveMinuteRate() * rateFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getFifteenMinuteRate() {
    +<b class="fc">&nbsp;            return metric.getFifteenMinuteRate() * rateFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String getRateUnit() {
    +<b class="fc">&nbsp;            return rateUnit;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private String calculateRateUnit(TimeUnit unit) {
    +<b class="fc">&nbsp;            final String s = unit.toString().toLowerCase(Locale.US);</b>
    +<b class="fc">&nbsp;            return s.substring(0, s.length() - 1);</b>
     &nbsp;        }
     &nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;    private static class TimerSerializer extends StdSerializer&lt;Timer&gt; {</b>
    +&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    +&nbsp;    public interface JmxTimerMBean extends JmxMeterMBean {
    +&nbsp;        double getMin();
     &nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;        double getMax();
     &nbsp;
    -&nbsp;        private final String rateUnit;
    -&nbsp;        private final double rateFactor;
    -&nbsp;        private final String durationUnit;
    +&nbsp;        double getMean();
    +&nbsp;
    +&nbsp;        double getStdDev();
    +&nbsp;
    +&nbsp;        double get50thPercentile();
    +&nbsp;
    +&nbsp;        double get75thPercentile();
    +&nbsp;
    +&nbsp;        double get95thPercentile();
    +&nbsp;
    +&nbsp;        double get98thPercentile();
    +&nbsp;
    +&nbsp;        double get99thPercentile();
    +&nbsp;
    +&nbsp;        double get999thPercentile();
    +&nbsp;
    +&nbsp;        long[] values();
    +&nbsp;
    +&nbsp;        String getDurationUnit();
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    static class JmxTimer extends JmxMeter implements JmxTimerMBean {</b>
    +&nbsp;        private final Timer metric;
     &nbsp;        private final double durationFactor;
    -&nbsp;        private final boolean showSamples;
    +&nbsp;        private final String durationUnit;
     &nbsp;
    -&nbsp;        private TimerSerializer(TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit,
    -&nbsp;                                boolean showSamples) {
    -<b class="fc">&nbsp;            super(Timer.class);</b>
    -<b class="fc">&nbsp;            this.rateUnit = calculateRateUnit(rateUnit, &quot;calls&quot;);</b>
    -<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    +&nbsp;        private JmxTimer(Timer metric,
    +&nbsp;                         ObjectName objectName,
    +&nbsp;                         TimeUnit rateUnit,
    +&nbsp;                         TimeUnit durationUnit) {
    +<b class="fc">&nbsp;            super(metric, objectName, rateUnit);</b>
    +<b class="fc">&nbsp;            this.metric = metric;</b>
     <b class="fc">&nbsp;            this.durationFactor = 1.0 / durationUnit.toNanos(1);</b>
    -<b class="fc">&nbsp;            this.showSamples = showSamples;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Timer timer,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            final Snapshot snapshot = timer.getSnapshot();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, timer.getCount());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;max&quot;, snapshot.getMax() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean&quot;, snapshot.getMean() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;min&quot;, snapshot.getMin() * durationFactor);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p50&quot;, snapshot.getMedian() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p75&quot;, snapshot.get75thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p95&quot;, snapshot.get95thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p98&quot;, snapshot.get98thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p99&quot;, snapshot.get99thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p999&quot;, snapshot.get999thPercentile() * durationFactor);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (showSamples) {</b>
    -<b class="fc">&nbsp;                final long[] values = snapshot.getValues();</b>
    -<b class="fc">&nbsp;                final double[] scaledValues = new double[values.length];</b>
    -<b class="fc">&nbsp;                for (int i = 0; i &lt; values.length; i++) {</b>
    -<b class="fc">&nbsp;                    scaledValues[i] = values[i] * durationFactor;</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;values&quot;, scaledValues);</b>
    -&nbsp;            }
    +<b class="fc">&nbsp;            this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    +&nbsp;        }
     &nbsp;
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;stddev&quot;, snapshot.getStdDev() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m15_rate&quot;, timer.getFifteenMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m1_rate&quot;, timer.getOneMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m5_rate&quot;, timer.getFiveMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean_rate&quot;, timer.getMeanRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;duration_units&quot;, durationUnit);</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;rate_units&quot;, rateUnit);</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        @Override
    +&nbsp;        public double get50thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMedian() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getMin() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMin() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getMax() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMax() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getMean() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getMean() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double getStdDev() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().getStdDev() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get75thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get75thPercentile() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get95thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get95thPercentile() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get98thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get98thPercentile() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public double get99thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get99thPercentile() * durationFactor;</b>
     &nbsp;        }
    -&nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;    private static class MetricRegistrySerializer extends StdSerializer&lt;MetricRegistry&gt; {</b>
    +&nbsp;        @Override
    +&nbsp;        public double get999thPercentile() {
    +<b class="fc">&nbsp;            return metric.getSnapshot().get999thPercentile() * durationFactor;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public long[] values() {
    +<b class="nc">&nbsp;            return metric.getSnapshot().getValues();</b>
    +&nbsp;        }
     &nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;        @Override
    +&nbsp;        public String getDurationUnit() {
    +<b class="fc">&nbsp;            return durationUnit;</b>
    +&nbsp;        }
    +&nbsp;    }
     &nbsp;
    +<b class="fc">&nbsp;    private static class JmxListener implements MetricRegistryListener {</b>
    +&nbsp;        private final String name;
    +&nbsp;        private final MBeanServer mBeanServer;
     &nbsp;        private final MetricFilter filter;
    +&nbsp;        private final MetricTimeUnits timeUnits;
    +&nbsp;        private final Map&lt;ObjectName, ObjectName&gt; registered;
    +&nbsp;        private final ObjectNameFactory objectNameFactory;
     &nbsp;
    -&nbsp;        private MetricRegistrySerializer(MetricFilter filter) {
    -<b class="fc">&nbsp;            super(MetricRegistry.class);</b>
    +<b class="fc">&nbsp;        private JmxListener(MBeanServer mBeanServer, String name, MetricFilter filter, MetricTimeUnits timeUnits, ObjectNameFactory objectNameFactory) {</b>
    +<b class="fc">&nbsp;            this.mBeanServer = mBeanServer;</b>
    +<b class="fc">&nbsp;            this.name = name;</b>
     <b class="fc">&nbsp;            this.filter = filter;</b>
    +<b class="fc">&nbsp;            this.timeUnits = timeUnits;</b>
    +<b class="fc">&nbsp;            this.registered = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;            this.objectNameFactory = objectNameFactory;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private void registerMBean(Object mBean, ObjectName objectName) throws InstanceAlreadyExistsException, JMException {
    +<b class="fc">&nbsp;            ObjectInstance objectInstance = mBeanServer.registerMBean(mBean, objectName);</b>
    +<b class="fc">&nbsp;            if (objectInstance != null) {</b>
    +&nbsp;                // the websphere mbeanserver rewrites the objectname to include
    +&nbsp;                // cell, node &amp; server info
    +&nbsp;                // make sure we capture the new objectName for unregistration
    +<b class="fc">&nbsp;                registered.put(objectName, objectInstance.getObjectName());</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                registered.put(objectName, objectName);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private void unregisterMBean(ObjectName originalObjectName) throws InstanceNotFoundException, MBeanRegistrationException {
    +<b class="fc">&nbsp;            ObjectName storedObjectName = registered.remove(originalObjectName);</b>
    +<b class="fc">&nbsp;            if (storedObjectName != null) {</b>
    +<b class="fc">&nbsp;                mBeanServer.unregisterMBean(storedObjectName);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                mBeanServer.unregisterMBean(originalObjectName);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    +&nbsp;            try {
    +<b class="fc">&nbsp;                if (filter.matches(name, gauge)) {</b>
    +<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;gauges&quot;, name);</b>
    +<b class="fc">&nbsp;                    registerMBean(new JmxGauge(gauge, objectName), objectName);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    +<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register gauge&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (JMException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register gauge&quot;, e);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onGaugeRemoved(String name) {
    +&nbsp;            try {
    +<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;gauges&quot;, name);</b>
    +<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    +<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister gauge&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister gauge&quot;, e);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onCounterAdded(String name, Counter counter) {
    +&nbsp;            try {
    +<b class="fc">&nbsp;                if (filter.matches(name, counter)) {</b>
    +<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;counters&quot;, name);</b>
    +<b class="fc">&nbsp;                    registerMBean(new JmxCounter(counter, objectName), objectName);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    +<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register counter&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (JMException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register counter&quot;, e);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onCounterRemoved(String name) {
    +&nbsp;            try {
    +<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;counters&quot;, name);</b>
    +<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    +<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister counter&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister counter&quot;, e);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onHistogramAdded(String name, Histogram histogram) {
    +&nbsp;            try {
    +<b class="fc">&nbsp;                if (filter.matches(name, histogram)) {</b>
    +<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;histograms&quot;, name);</b>
    +<b class="fc">&nbsp;                    registerMBean(new JmxHistogram(histogram, objectName), objectName);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    +<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register histogram&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (JMException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register histogram&quot;, e);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onHistogramRemoved(String name) {
    +&nbsp;            try {
    +<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;histograms&quot;, name);</b>
    +<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    +<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister histogram&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister histogram&quot;, e);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onMeterAdded(String name, Meter meter) {
    +&nbsp;            try {
    +<b class="fc">&nbsp;                if (filter.matches(name, meter)) {</b>
    +<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;meters&quot;, name);</b>
    +<b class="fc">&nbsp;                    registerMBean(new JmxMeter(meter, objectName, timeUnits.rateFor(name)), objectName);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    +<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register meter&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (JMException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register meter&quot;, e);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onMeterRemoved(String name) {
    +&nbsp;            try {
    +<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;meters&quot;, name);</b>
    +<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    +<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister meter&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister meter&quot;, e);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimerAdded(String name, Timer timer) {
    +&nbsp;            try {
    +<b class="fc">&nbsp;                if (filter.matches(name, timer)) {</b>
    +<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;timers&quot;, name);</b>
    +<b class="fc">&nbsp;                    registerMBean(new JmxTimer(timer, objectName, timeUnits.rateFor(name), timeUnits.durationFor(name)), objectName);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    +<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register timer&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (JMException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register timer&quot;, e);</b>
    +<b class="fc">&nbsp;            }</b>
     &nbsp;        }
     &nbsp;
     &nbsp;        @Override
    -&nbsp;        public void serialize(MetricRegistry registry,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;version&quot;, VERSION.toString());</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;gauges&quot;, registry.getGauges(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;counters&quot;, registry.getCounters(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;histograms&quot;, registry.getHistograms(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;meters&quot;, registry.getMeters(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;timers&quot;, registry.getTimers(filter));</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        public void onTimerRemoved(String name) {
    +&nbsp;            try {
    +<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;timers&quot;, name);</b>
    +<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    +<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister timer&quot;, e);</b>
    +<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister timer&quot;, e);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private ObjectName createName(String type, String name) {
    +<b class="fc">&nbsp;            return objectNameFactory.createName(type, this.name, name);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        void unregisterAll() {
    +<b class="fc">&nbsp;            for (ObjectName name : registered.keySet()) {</b>
    +&nbsp;                try {
    +<b class="fc">&nbsp;                    unregisterMBean(name);</b>
    +<b class="nc">&nbsp;                } catch (InstanceNotFoundException e) {</b>
    +<b class="nc">&nbsp;                    LOGGER.debug(&quot;Unable to unregister metric&quot;, e);</b>
    +<b class="nc">&nbsp;                } catch (MBeanRegistrationException e) {</b>
    +<b class="nc">&nbsp;                    LOGGER.warn(&quot;Unable to unregister metric&quot;, e);</b>
    +<b class="fc">&nbsp;                }</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            registered.clear();</b>
     &nbsp;        }
     &nbsp;    }
     &nbsp;
    -&nbsp;    protected final TimeUnit rateUnit;
    -&nbsp;    protected final TimeUnit durationUnit;
    -&nbsp;    protected final boolean showSamples;
    -&nbsp;    protected final MetricFilter filter;
    +&nbsp;    private static class MetricTimeUnits {
    +&nbsp;        private final TimeUnit defaultRate;
    +&nbsp;        private final TimeUnit defaultDuration;
    +&nbsp;        private final Map&lt;String, TimeUnit&gt; rateOverrides;
    +&nbsp;        private final Map&lt;String, TimeUnit&gt; durationOverrides;
     &nbsp;
    -&nbsp;    public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples) {
    -<b class="nc">&nbsp;        this(rateUnit, durationUnit, showSamples, MetricFilter.ALL);</b>
    +&nbsp;        MetricTimeUnits(TimeUnit defaultRate,
    +&nbsp;                        TimeUnit defaultDuration,
    +&nbsp;                        Map&lt;String, TimeUnit&gt; rateOverrides,
    +<b class="fc">&nbsp;                        Map&lt;String, TimeUnit&gt; durationOverrides) {</b>
    +<b class="fc">&nbsp;            this.defaultRate = defaultRate;</b>
    +<b class="fc">&nbsp;            this.defaultDuration = defaultDuration;</b>
    +<b class="fc">&nbsp;            this.rateOverrides = rateOverrides;</b>
    +<b class="fc">&nbsp;            this.durationOverrides = durationOverrides;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public TimeUnit durationFor(String name) {
    +<b class="fc">&nbsp;            return durationOverrides.getOrDefault(name, defaultDuration);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public TimeUnit rateFor(String name) {
    +<b class="fc">&nbsp;            return rateOverrides.getOrDefault(name, defaultRate);</b>
    +&nbsp;        }
     &nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;    public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples, MetricFilter filter) {</b>
    -<b class="fc">&nbsp;        this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;        this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;        this.showSamples = showSamples;</b>
    -<b class="fc">&nbsp;        this.filter = filter;</b>
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final JmxListener listener;
    +&nbsp;
    +&nbsp;    private JmxReporter(MBeanServer mBeanServer,
    +&nbsp;                        String domain,
    +&nbsp;                        MetricRegistry registry,
    +&nbsp;                        MetricFilter filter,
    +&nbsp;                        MetricTimeUnits timeUnits,
    +<b class="fc">&nbsp;                        ObjectNameFactory objectNameFactory) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.listener = new JmxListener(mBeanServer, domain, filter, timeUnits, objectNameFactory);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getModuleName() {
    -<b class="fc">&nbsp;        return &quot;metrics&quot;;</b>
    +&nbsp;    /**
    +&nbsp;     * Starts the reporter.
    +&nbsp;     */
    +&nbsp;    public void start() {
    +<b class="fc">&nbsp;        registry.addListener(listener);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Version version() {
    -<b class="fc">&nbsp;        return VERSION;</b>
    +&nbsp;    /**
    +&nbsp;     * Stops the reporter.
    +&nbsp;     */
    +&nbsp;    public void stop() {
    +<b class="fc">&nbsp;        registry.removeListener(listener);</b>
    +<b class="fc">&nbsp;        listener.unregisterAll();</b>
     &nbsp;    }
     &nbsp;
    +&nbsp;    /**
    +&nbsp;     * Stops the reporter.
    +&nbsp;     */
     &nbsp;    @Override
    -&nbsp;    public void setupModule(SetupContext context) {
    -<b class="fc">&nbsp;        context.addSerializers(new SimpleSerializers(Arrays.asList(</b>
    -&nbsp;                new GaugeSerializer(),
    -&nbsp;                new CounterSerializer(),
    -&nbsp;                new HistogramSerializer(showSamples),
    -&nbsp;                new MeterSerializer(rateUnit),
    -&nbsp;                new TimerSerializer(rateUnit, durationUnit, showSamples),
    -&nbsp;                new MetricRegistrySerializer(filter)
    -&nbsp;        )));
    +&nbsp;    public void close() {
    +<b class="nc">&nbsp;        stop();</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    private static String calculateRateUnit(TimeUnit unit, String name) {
    -<b class="fc">&nbsp;        final String s = unit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;        return name + &#39;/&#39; + s.substring(0, s.length() - 1);</b>
    +&nbsp;    /**
    +&nbsp;     * Visible for testing
    +&nbsp;     */
    +&nbsp;    ObjectNameFactory getObjectNameFactory() {
    +<b class="fc">&nbsp;        return listener.objectNameFactory;</b>
     &nbsp;    }
    +&nbsp;
     &nbsp;}
     </code>
     </pre>
    @@ -483,7 +1055,7 @@ <h1>Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-3.html
    new file mode 100644
    index 0000000000..294415cea5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-3.html
    @@ -0,0 +1,85 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ObjectNameFactory</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jmx</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ObjectNameFactory (com.codahale.metrics.jmx)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +  <tr>
    +    <td class="name">ObjectNameFactory$MockitoMock$e52ggOF9</td>
    +  </tr>
    +  <tr>
    +    <td class="name">ObjectNameFactory$MockitoMock$e52ggOF9$auxiliary$32SCHgva</td>
    +  </tr>
    +  <tr>
    +    <td class="name">ObjectNameFactory$MockitoMock$e52ggOF9$auxiliary$g7yRCWs6</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    +&nbsp;
    +&nbsp;import javax.management.ObjectName;
    +&nbsp;
    +&nbsp;public interface ObjectNameFactory {
    +&nbsp;
    +&nbsp;    ObjectName createName(String type, String domain, String name);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index.html
    index 694da4b4a7..fc04a352f4 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.json</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    +com.codahale.metrics.json</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    +    <td class="name">com.codahale.metrics.json</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    +    (9/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    98.3%
    +    97%
       </span>
       <span class="absValue">
    -    (58/59)
    +    (32/33)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.9%
    +    99.2%
       </span>
       <span class="absValue">
    -    (211/220)
    +    (131/132)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -129,88 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
    @@ -218,196 +110,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (12/12)
    +    (31/31)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (7/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (24/25)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    99%
       </span>
       <span class="absValue">
    -    (22/22)
    +    (100/101)
       </span>
     </td>
       </tr>
    @@ -434,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK.html
    index 2af4387d01..1609b5debe 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.json</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    +com.codahale.metrics.json</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    +    <td class="name">com.codahale.metrics.json</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    +    (9/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    98.3%
    +    97%
       </span>
       <span class="absValue">
    -    (58/59)
    +    (32/33)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.9%
    +    99.2%
       </span>
       <span class="absValue">
    -    (211/220)
    +    (131/132)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -129,88 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
    @@ -218,196 +110,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (12/12)
    +    (31/31)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (7/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (24/25)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    99%
       </span>
       <span class="absValue">
    -    (22/22)
    +    (100/101)
       </span>
     </td>
       </tr>
    @@ -434,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
    index f8d0c2e85d..1c89ae8fba 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.json</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    +com.codahale.metrics.json</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    +    <td class="name">com.codahale.metrics.json</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    +    (9/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    98.3%
    +    97%
       </span>
       <span class="absValue">
    -    (58/59)
    +    (32/33)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.9%
    +    99.2%
       </span>
       <span class="absValue">
    -    (211/220)
    +    (131/132)
       </span>
     </td>
       </tr>
    @@ -88,277 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (7/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    96%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (24/25)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    99%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (100/101)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -372,34 +129,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
    @@ -407,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (18/18)
    +    (31/31)
       </span>
     </td>
       </tr>
    @@ -434,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS.html
    index a71678fd11..697e0238ab 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.json</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    +com.codahale.metrics.json</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    +    <td class="name">com.codahale.metrics.json</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    +    (9/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    98.3%
    +    97%
       </span>
       <span class="absValue">
    -    (58/59)
    +    (32/33)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.9%
    +    99.2%
       </span>
       <span class="absValue">
    -    (211/220)
    +    (131/132)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -129,88 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
    @@ -218,196 +110,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (12/12)
    +    (31/31)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (7/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (24/25)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    99%
       </span>
       <span class="absValue">
    -    (22/22)
    +    (100/101)
       </span>
     </td>
       </tr>
    @@ -434,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
    index 25346c7c99..61c20a0057 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.json</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    +com.codahale.metrics.json</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    +    <td class="name">com.codahale.metrics.json</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    +    (9/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    98.3%
    +    97%
       </span>
       <span class="absValue">
    -    (58/59)
    +    (32/33)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.9%
    +    99.2%
       </span>
       <span class="absValue">
    -    (211/220)
    +    (131/132)
       </span>
     </td>
       </tr>
    @@ -88,277 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (7/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    96%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (24/25)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    99%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (100/101)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -372,34 +129,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
    @@ -407,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (18/18)
    +    (31/31)
       </span>
     </td>
       </tr>
    @@ -434,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE.html
    index 92cf0a4e41..deb578017e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.json</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    +com.codahale.metrics.json</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    +    <td class="name">com.codahale.metrics.json</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    +    (9/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    98.3%
    +    97%
       </span>
       <span class="absValue">
    -    (58/59)
    +    (32/33)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.9%
    +    99.2%
       </span>
       <span class="absValue">
    -    (211/220)
    +    (131/132)
       </span>
     </td>
       </tr>
    @@ -88,104 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -193,205 +96,32 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
       <span class="absValue">
         (7/7)
       </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (24/25)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    99%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (100/101)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -399,7 +129,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
    @@ -407,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (22/22)
    +    (31/31)
       </span>
     </td>
       </tr>
    @@ -434,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
    index fd0c1491b2..49a56b0974 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.json</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    +com.codahale.metrics.json</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    +    <td class="name">com.codahale.metrics.json</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    +    (9/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    98.3%
    +    97%
       </span>
       <span class="absValue">
    -    (58/59)
    +    (32/33)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.9%
    +    99.2%
       </span>
       <span class="absValue">
    -    (211/220)
    +    (131/132)
       </span>
     </td>
       </tr>
    @@ -88,223 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -318,7 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
    @@ -326,88 +110,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (31/31)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (7/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (24/25)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    99%
       </span>
       <span class="absValue">
    -    (40/48)
    +    (100/101)
       </span>
     </td>
       </tr>
    @@ -434,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD.html
    index 9de0b4ab7d..88cbb1ec39 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.json</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    +com.codahale.metrics.json</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    +    <td class="name">com.codahale.metrics.json</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    +    (9/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    98.3%
    +    97%
       </span>
       <span class="absValue">
    -    (58/59)
    +    (32/33)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.9%
    +    99.2%
       </span>
       <span class="absValue">
    -    (211/220)
    +    (131/132)
       </span>
     </td>
       </tr>
    @@ -88,77 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -166,232 +96,32 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
       <span class="absValue">
         (7/7)
       </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (24/25)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    99%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (100/101)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -399,7 +129,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
    @@ -407,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (22/22)
    +    (31/31)
       </span>
     </td>
       </tr>
    @@ -434,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
    index 478c66df27..ff628f60fe 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.json</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    +com.codahale.metrics.json</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    +    <td class="name">com.codahale.metrics.json</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    +    (9/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    98.3%
    +    97%
       </span>
       <span class="absValue">
    -    (58/59)
    +    (32/33)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.9%
    +    99.2%
       </span>
       <span class="absValue">
    -    (211/220)
    +    (131/132)
       </span>
     </td>
       </tr>
    @@ -88,250 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -345,34 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
    @@ -380,34 +110,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (18/18)
    +    (31/31)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (7/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    96%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (24/25)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    99%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (100/101)
       </span>
     </td>
       </tr>
    @@ -434,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
    index 8430d7de88..8cc6bf3795 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.json</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    +com.codahale.metrics.json</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    +    <td class="name">com.codahale.metrics.json</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    +    (9/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    98.3%
    +    97%
       </span>
       <span class="absValue">
    -    (58/59)
    +    (32/33)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.9%
    +    99.2%
       </span>
       <span class="absValue">
    -    (211/220)
    +    (131/132)
       </span>
     </td>
       </tr>
    @@ -88,277 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (7/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    96%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (24/25)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    99%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (100/101)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -372,34 +129,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
    @@ -407,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (18/18)
    +    (31/31)
       </span>
     </td>
       </tr>
    @@ -434,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-1.html
    index 17df85cbdf..2803f6712d 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > BufferPoolMetricSet</title>
    +  <title>Coverage Report > HealthCheckModule</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,19 +19,16 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    +    <a href="../index.html">com.codahale.metrics.json</a>
     </div>
     
    -<h1>Coverage Summary for Class: BufferPoolMetricSet (com.codahale.metrics.jvm)</h1>
    +<h1>Coverage Summary for Class: HealthCheckModule (com.codahale.metrics.json)</h1>
     
     <table class="coverageStats">
    +
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
     ">
       Method, %
     </th>
    @@ -41,13 +38,13 @@ <h1>Coverage Summary for Class: BufferPoolMetricSet (com.codahale.metrics.jvm)</
     </th>
     </tr>
     <tr>
    -  <td class="name">BufferPoolMetricSet</td>
    +  <td class="name">HealthCheckModule</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -55,19 +52,51 @@ <h1>Coverage Summary for Class: BufferPoolMetricSet (com.codahale.metrics.jvm)</
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
    +</tr>
    +  <tr>
    +    <td class="name">HealthCheckModule$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheckModule$HealthCheckResultSerializer</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (18/18)
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (27/27)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
       </span>
     </td>
     </tr>
    -
     </table>
     
     <br/>
    @@ -75,56 +104,88 @@ <h1>Coverage Summary for Class: BufferPoolMetricSet (com.codahale.metrics.jvm)</
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.json;
     &nbsp;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;import com.codahale.metrics.health.HealthCheck;
    +&nbsp;import com.fasterxml.jackson.core.JsonGenerator;
    +&nbsp;import com.fasterxml.jackson.core.Version;
    +&nbsp;import com.fasterxml.jackson.databind.Module;
    +&nbsp;import com.fasterxml.jackson.databind.SerializerProvider;
    +&nbsp;import com.fasterxml.jackson.databind.module.SimpleSerializers;
    +&nbsp;import com.fasterxml.jackson.databind.ser.std.StdSerializer;
     &nbsp;
    -&nbsp;import javax.management.JMException;
    -&nbsp;import javax.management.MBeanServer;
    -&nbsp;import javax.management.ObjectName;
    +&nbsp;import java.io.IOException;
     &nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
     &nbsp;import java.util.Map;
     &nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +<b class="fc">&nbsp;public class HealthCheckModule extends Module {</b>
    +<b class="fc">&nbsp;    private static class HealthCheckResultSerializer extends StdSerializer&lt;HealthCheck.Result&gt; {</b>
     &nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the count, usage, and capacity of the JVM&#39;s direct and mapped buffer pools.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * These JMX objects are only available on Java 7 and above.
    -&nbsp; */
    -&nbsp;public class BufferPoolMetricSet implements MetricSet {
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(BufferPoolMetricSet.class);</b>
    -<b class="fc">&nbsp;    private static final String[] ATTRIBUTES = {&quot;Count&quot;, &quot;MemoryUsed&quot;, &quot;TotalCapacity&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] NAMES = {&quot;count&quot;, &quot;used&quot;, &quot;capacity&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] POOLS = {&quot;direct&quot;, &quot;mapped&quot;};</b>
    +&nbsp;        private static final long serialVersionUID = 1L;
     &nbsp;
    -&nbsp;    private final MBeanServer mBeanServer;
    +&nbsp;        private HealthCheckResultSerializer() {
    +<b class="fc">&nbsp;            super(HealthCheck.Result.class);</b>
    +&nbsp;        }
     &nbsp;
    -<b class="fc">&nbsp;    public BufferPoolMetricSet(MBeanServer mBeanServer) {</b>
    -<b class="fc">&nbsp;        this.mBeanServer = mBeanServer;</b>
    -&nbsp;    }
    +&nbsp;        @Override
    +&nbsp;        public void serialize(HealthCheck.Result result,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +<b class="fc">&nbsp;            json.writeBooleanField(&quot;healthy&quot;, result.isHealthy());</b>
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (String pool : POOLS) {</b>
    -<b class="fc">&nbsp;            for (int i = 0; i &lt; ATTRIBUTES.length; i++) {</b>
    -<b class="fc">&nbsp;                final String attribute = ATTRIBUTES[i];</b>
    -<b class="fc">&nbsp;                final String name = NAMES[i];</b>
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    final ObjectName on = new ObjectName(&quot;java.nio:type=BufferPool,name=&quot; + pool);</b>
    -<b class="fc">&nbsp;                    mBeanServer.getMBeanInfo(on);</b>
    -<b class="fc">&nbsp;                    gauges.put(name(pool, name), new JmxAttributeGauge(mBeanServer, on, attribute));</b>
    -<b class="fc">&nbsp;                } catch (JMException ignored) {</b>
    -<b class="fc">&nbsp;                    LOGGER.debug(&quot;Unable to load buffer pool MBeans, possibly running on Java 6&quot;);</b>
    +<b class="fc">&nbsp;            final String message = result.getMessage();</b>
    +<b class="fc">&nbsp;            if (message != null) {</b>
    +<b class="fc">&nbsp;                json.writeStringField(&quot;message&quot;, message);</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            serializeThrowable(json, result.getError(), &quot;error&quot;);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;duration&quot;, result.getDuration());</b>
    +&nbsp;
    +<b class="fc">&nbsp;            Map&lt;String, Object&gt; details = result.getDetails();</b>
    +<b class="fc">&nbsp;            if (details != null &amp;&amp; !details.isEmpty()) {</b>
    +<b class="fc">&nbsp;                for (Map.Entry&lt;String, Object&gt; e : details.entrySet()) {</b>
    +<b class="fc">&nbsp;                    json.writeObjectField(e.getKey(), e.getValue());</b>
     <b class="fc">&nbsp;                }</b>
     &nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            json.writeStringField(&quot;timestamp&quot;, result.getTimestamp());</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private void serializeThrowable(JsonGenerator json, Throwable error, String name) throws IOException {
    +<b class="fc">&nbsp;            if (error != null) {</b>
    +<b class="fc">&nbsp;                json.writeObjectFieldStart(name);</b>
    +<b class="fc">&nbsp;                json.writeStringField(&quot;type&quot;, error.getClass().getTypeName());</b>
    +<b class="fc">&nbsp;                json.writeStringField(&quot;message&quot;, error.getMessage());</b>
    +<b class="fc">&nbsp;                json.writeArrayFieldStart(&quot;stack&quot;);</b>
    +<b class="fc">&nbsp;                for (StackTraceElement element : error.getStackTrace()) {</b>
    +<b class="fc">&nbsp;                    json.writeString(element.toString());</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                json.writeEndArray();</b>
    +&nbsp;
    +<b class="fc">&nbsp;                if (error.getCause() != null) {</b>
    +<b class="fc">&nbsp;                    serializeThrowable(json, error.getCause(), &quot;cause&quot;);</b>
    +&nbsp;                }
    +&nbsp;
    +<b class="fc">&nbsp;                json.writeEndObject();</b>
    +&nbsp;            }
     &nbsp;        }
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getModuleName() {
    +<b class="fc">&nbsp;        return &quot;healthchecks&quot;;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Version version() {
    +<b class="fc">&nbsp;        return MetricsModule.VERSION;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void setupModule(SetupContext context) {
    +<b class="fc">&nbsp;        context.addSerializers(new SimpleSerializers(Collections.singletonList(new HealthCheckResultSerializer())));</b>
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -150,7 +211,7 @@ <h1>Coverage Summary for Class: BufferPoolMetricSet (com.codahale.metrics.jvm)</
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-2.html
    index cf259d8285..605a0ca0ea 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-2.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedThreadStatesGaugeSet</title>
    +  <title>Coverage Report > MetricsModule</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    +    <a href="../index.html">com.codahale.metrics.json</a>
     </div>
     
    -<h1>Coverage Summary for Class: CachedThreadStatesGaugeSet (com.codahale.metrics.jvm)</h1>
    +<h1>Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)</h1>
     
     <table class="coverageStats">
     
    @@ -38,13 +38,35 @@ <h1>Coverage Summary for Class: CachedThreadStatesGaugeSet (com.codahale.metrics
     </th>
     </tr>
     <tr>
    -  <td class="name">CachedThreadStatesGaugeSet</td>
    +  <td class="name">MetricsModule</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.3%
    +  </span>
    +  <span class="absValue">
    +    (12/13)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">MetricsModule$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricsModule$CounterSerializer</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
    @@ -55,17 +77,47 @@ <h1>Coverage Summary for Class: CachedThreadStatesGaugeSet (com.codahale.metrics
         (5/5)
       </span>
     </td>
    -</tr>
    +  </tr>
       <tr>
    -    <td class="name">CachedThreadStatesGaugeSet$1</td>
    +    <td class="name">MetricsModule$GaugeSerializer</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricsModule$HistogramSerializer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (19/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricsModule$MeterSerializer</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -73,16 +125,24 @@ <h1>Coverage Summary for Class: CachedThreadStatesGaugeSet (com.codahale.metrics
       <span class="absValue">
         (2/2)
       </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
     </td>
       </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    +  <tr>
    +    <td class="name">MetricsModule$MetricRegistrySerializer</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
    @@ -90,7 +150,45 @@ <h1>Coverage Summary for Class: CachedThreadStatesGaugeSet (com.codahale.metrics
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MetricsModule$TimerSerializer</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (33/33)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96%
    +  </span>
    +  <span class="absValue">
    +    (24/25)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    99%
    +  </span>
    +  <span class="absValue">
    +    (100/101)
       </span>
     </td>
     </tr>
    @@ -101,59 +199,266 @@ <h1>Coverage Summary for Class: CachedThreadStatesGaugeSet (com.codahale.metrics
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.json;
     &nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Histogram;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricFilter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Snapshot;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.fasterxml.jackson.core.JsonGenerator;
    +&nbsp;import com.fasterxml.jackson.core.Version;
    +&nbsp;import com.fasterxml.jackson.databind.Module;
    +&nbsp;import com.fasterxml.jackson.databind.SerializerProvider;
    +&nbsp;import com.fasterxml.jackson.databind.module.SimpleSerializers;
    +&nbsp;import com.fasterxml.jackson.databind.ser.std.StdSerializer;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Locale;
     &nbsp;import java.util.concurrent.TimeUnit;
     &nbsp;
    -&nbsp;import com.codahale.metrics.CachedGauge;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A variation of ThreadStatesGaugeSet that caches the ThreadInfo[] objects for
    -&nbsp; * a given interval.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CachedThreadStatesGaugeSet extends ThreadStatesGaugeSet {</b>
    -&nbsp;
    -&nbsp;    private final CachedGauge&lt;ThreadInfo[]&gt; threadInfo;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the given MXBean and detector.
    -&nbsp;     * Caches the information for the given interval and time unit.
    -&nbsp;     *
    -&nbsp;     * @param threadMXBean     a thread MXBean
    -&nbsp;     * @param deadlockDetector a deadlock detector
    -&nbsp;     * @param interval         cache interval
    -&nbsp;     * @param unit             cache interval time unit
    -&nbsp;     */
    -&nbsp;    public CachedThreadStatesGaugeSet(final ThreadMXBean threadMXBean, ThreadDeadlockDetector deadlockDetector,
    -&nbsp;                                      long interval, TimeUnit unit) {
    -<b class="fc">&nbsp;        super(threadMXBean, deadlockDetector);</b>
    -<b class="fc">&nbsp;        threadInfo = new CachedGauge&lt;ThreadInfo[]&gt;(interval, unit) {</b>
    -&nbsp;            @Override
    -&nbsp;            protected ThreadInfo[] loadValue() {
    -<b class="fc">&nbsp;                return CachedThreadStatesGaugeSet.super.getThreadInfo();</b>
    +<b class="fc">&nbsp;public class MetricsModule extends Module {</b>
    +<b class="fc">&nbsp;    static final Version VERSION = new Version(4, 0, 0, &quot;&quot;, &quot;io.dropwizard.metrics&quot;, &quot;metrics-json&quot;);</b>
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +<b class="fc">&nbsp;    private static class GaugeSerializer extends StdSerializer&lt;Gauge&gt; {</b>
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private GaugeSerializer() {
    +<b class="fc">&nbsp;            super(Gauge.class);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(Gauge gauge,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +&nbsp;            final Object value;
    +&nbsp;            try {
    +<b class="fc">&nbsp;                value = gauge.getValue();</b>
    +<b class="fc">&nbsp;                json.writeObjectField(&quot;value&quot;, value);</b>
    +<b class="fc">&nbsp;            } catch (RuntimeException e) {</b>
    +<b class="fc">&nbsp;                json.writeObjectField(&quot;error&quot;, e.toString());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class CounterSerializer extends StdSerializer&lt;Counter&gt; {</b>
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private CounterSerializer() {
    +<b class="fc">&nbsp;            super(Counter.class);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(Counter counter,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, counter.getCount());</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class HistogramSerializer extends StdSerializer&lt;Histogram&gt; {</b>
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private final boolean showSamples;
    +&nbsp;
    +&nbsp;        private HistogramSerializer(boolean showSamples) {
    +<b class="fc">&nbsp;            super(Histogram.class);</b>
    +<b class="fc">&nbsp;            this.showSamples = showSamples;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(Histogram histogram,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +<b class="fc">&nbsp;            final Snapshot snapshot = histogram.getSnapshot();</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, histogram.getCount());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;max&quot;, snapshot.getMax());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;mean&quot;, snapshot.getMean());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;min&quot;, snapshot.getMin());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p50&quot;, snapshot.getMedian());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p75&quot;, snapshot.get75thPercentile());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p95&quot;, snapshot.get95thPercentile());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p98&quot;, snapshot.get98thPercentile());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p99&quot;, snapshot.get99thPercentile());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p999&quot;, snapshot.get999thPercentile());</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (showSamples) {</b>
    +<b class="fc">&nbsp;                json.writeObjectField(&quot;values&quot;, snapshot.getValues());</b>
     &nbsp;            }
    -&nbsp;        };
    +&nbsp;
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;stddev&quot;, snapshot.getStdDev());</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
     &nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the default MXBeans.
    -&nbsp;     * Caches the information for the given interval and time unit.
    -&nbsp;     *
    -&nbsp;     * @param interval cache interval
    -&nbsp;     * @param unit     cache interval time unit
    -&nbsp;     */
    -&nbsp;    public CachedThreadStatesGaugeSet(long interval, TimeUnit unit) {
    -<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector(), interval, unit);</b>
    +&nbsp;    private static class MeterSerializer extends StdSerializer&lt;Meter&gt; {
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private final String rateUnit;
    +&nbsp;        private final double rateFactor;
    +&nbsp;
    +&nbsp;        public MeterSerializer(TimeUnit rateUnit) {
    +<b class="fc">&nbsp;            super(Meter.class);</b>
    +<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    +<b class="fc">&nbsp;            this.rateUnit = calculateRateUnit(rateUnit, &quot;events&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(Meter meter,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, meter.getCount());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;m15_rate&quot;, meter.getFifteenMinuteRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;m1_rate&quot;, meter.getOneMinuteRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;m5_rate&quot;, meter.getFiveMinuteRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;mean_rate&quot;, meter.getMeanRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeStringField(&quot;units&quot;, rateUnit);</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class TimerSerializer extends StdSerializer&lt;Timer&gt; {</b>
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private final String rateUnit;
    +&nbsp;        private final double rateFactor;
    +&nbsp;        private final String durationUnit;
    +&nbsp;        private final double durationFactor;
    +&nbsp;        private final boolean showSamples;
    +&nbsp;
    +&nbsp;        private TimerSerializer(TimeUnit rateUnit,
    +&nbsp;                                TimeUnit durationUnit,
    +&nbsp;                                boolean showSamples) {
    +<b class="fc">&nbsp;            super(Timer.class);</b>
    +<b class="fc">&nbsp;            this.rateUnit = calculateRateUnit(rateUnit, &quot;calls&quot;);</b>
    +<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    +<b class="fc">&nbsp;            this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    +<b class="fc">&nbsp;            this.durationFactor = 1.0 / durationUnit.toNanos(1);</b>
    +<b class="fc">&nbsp;            this.showSamples = showSamples;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(Timer timer,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +<b class="fc">&nbsp;            final Snapshot snapshot = timer.getSnapshot();</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, timer.getCount());</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;max&quot;, snapshot.getMax() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;mean&quot;, snapshot.getMean() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;min&quot;, snapshot.getMin() * durationFactor);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p50&quot;, snapshot.getMedian() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p75&quot;, snapshot.get75thPercentile() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p95&quot;, snapshot.get95thPercentile() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p98&quot;, snapshot.get98thPercentile() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p99&quot;, snapshot.get99thPercentile() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;p999&quot;, snapshot.get999thPercentile() * durationFactor);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (showSamples) {</b>
    +<b class="fc">&nbsp;                final long[] values = snapshot.getValues();</b>
    +<b class="fc">&nbsp;                final double[] scaledValues = new double[values.length];</b>
    +<b class="fc">&nbsp;                for (int i = 0; i &lt; values.length; i++) {</b>
    +<b class="fc">&nbsp;                    scaledValues[i] = values[i] * durationFactor;</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                json.writeObjectField(&quot;values&quot;, scaledValues);</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;stddev&quot;, snapshot.getStdDev() * durationFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;m15_rate&quot;, timer.getFifteenMinuteRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;m1_rate&quot;, timer.getOneMinuteRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;m5_rate&quot;, timer.getFiveMinuteRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeNumberField(&quot;mean_rate&quot;, timer.getMeanRate() * rateFactor);</b>
    +<b class="fc">&nbsp;            json.writeStringField(&quot;duration_units&quot;, durationUnit);</b>
    +<b class="fc">&nbsp;            json.writeStringField(&quot;rate_units&quot;, rateUnit);</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class MetricRegistrySerializer extends StdSerializer&lt;MetricRegistry&gt; {</b>
    +&nbsp;
    +&nbsp;        private static final long serialVersionUID = 1L;
    +&nbsp;
    +&nbsp;        private final MetricFilter filter;
    +&nbsp;
    +&nbsp;        private MetricRegistrySerializer(MetricFilter filter) {
    +<b class="fc">&nbsp;            super(MetricRegistry.class);</b>
    +<b class="fc">&nbsp;            this.filter = filter;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void serialize(MetricRegistry registry,
    +&nbsp;                              JsonGenerator json,
    +&nbsp;                              SerializerProvider provider) throws IOException {
    +<b class="fc">&nbsp;            json.writeStartObject();</b>
    +<b class="fc">&nbsp;            json.writeStringField(&quot;version&quot;, VERSION.toString());</b>
    +<b class="fc">&nbsp;            json.writeObjectField(&quot;gauges&quot;, registry.getGauges(filter));</b>
    +<b class="fc">&nbsp;            json.writeObjectField(&quot;counters&quot;, registry.getCounters(filter));</b>
    +<b class="fc">&nbsp;            json.writeObjectField(&quot;histograms&quot;, registry.getHistograms(filter));</b>
    +<b class="fc">&nbsp;            json.writeObjectField(&quot;meters&quot;, registry.getMeters(filter));</b>
    +<b class="fc">&nbsp;            json.writeObjectField(&quot;timers&quot;, registry.getTimers(filter));</b>
    +<b class="fc">&nbsp;            json.writeEndObject();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected final TimeUnit rateUnit;
    +&nbsp;    protected final TimeUnit durationUnit;
    +&nbsp;    protected final boolean showSamples;
    +&nbsp;    protected final MetricFilter filter;
    +&nbsp;
    +&nbsp;    public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples) {
    +<b class="nc">&nbsp;        this(rateUnit, durationUnit, showSamples, MetricFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples, MetricFilter filter) {</b>
    +<b class="fc">&nbsp;        this.rateUnit = rateUnit;</b>
    +<b class="fc">&nbsp;        this.durationUnit = durationUnit;</b>
    +<b class="fc">&nbsp;        this.showSamples = showSamples;</b>
    +<b class="fc">&nbsp;        this.filter = filter;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getModuleName() {
    +<b class="fc">&nbsp;        return &quot;metrics&quot;;</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    ThreadInfo[] getThreadInfo() {
    -<b class="fc">&nbsp;        return threadInfo.getValue();</b>
    +&nbsp;    public Version version() {
    +<b class="fc">&nbsp;        return VERSION;</b>
     &nbsp;    }
     &nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void setupModule(SetupContext context) {
    +<b class="fc">&nbsp;        context.addSerializers(new SimpleSerializers(Arrays.asList(</b>
    +&nbsp;                new GaugeSerializer(),
    +&nbsp;                new CounterSerializer(),
    +&nbsp;                new HistogramSerializer(showSamples),
    +&nbsp;                new MeterSerializer(rateUnit),
    +&nbsp;                new TimerSerializer(rateUnit, durationUnit, showSamples),
    +&nbsp;                new MetricRegistrySerializer(filter)
    +&nbsp;        )));
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static String calculateRateUnit(TimeUnit unit, String name) {
    +<b class="fc">&nbsp;        final String s = unit.toString().toLowerCase(Locale.US);</b>
    +<b class="fc">&nbsp;        return name + &#39;/&#39; + s.substring(0, s.length() - 1);</b>
    +&nbsp;    }
     &nbsp;}
     </code>
     </pre>
    @@ -178,7 +483,7 @@ <h1>Coverage Summary for Class: CachedThreadStatesGaugeSet (com.codahale.metrics
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index.html
    index cbcbdd88cb..fca32ca3cd 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    +com.codahale.metrics.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    +    <td class="name">com.codahale.metrics.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (16/16)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    98.3%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (58/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    95.9%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (211/220)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +126,288 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (22/22)
       </span>
     </td>
       </tr>
    @@ -137,7 +434,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK.html
    index 51cb88055a..71e4fcc062 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    +com.codahale.metrics.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    +    <td class="name">com.codahale.metrics.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (16/16)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    98.3%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (58/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    95.9%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (211/220)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +126,288 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (22/22)
       </span>
     </td>
       </tr>
    @@ -137,7 +434,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
    index dc9fb5422c..76005202a4 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    +com.codahale.metrics.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    +    <td class="name">com.codahale.metrics.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (16/16)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    98.3%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (58/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    95.9%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (211/220)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,277 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +369,45 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (7/7)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (18/18)
       </span>
     </td>
       </tr>
    @@ -137,7 +434,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS.html
    index e3838a2499..6c79cefda9 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    +com.codahale.metrics.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    +    <td class="name">com.codahale.metrics.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (16/16)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    98.3%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (58/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    95.9%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (211/220)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +126,288 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (22/22)
       </span>
     </td>
       </tr>
    @@ -137,7 +434,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
    index ac9d5a505b..c0d84d9f90 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    +com.codahale.metrics.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    +    <td class="name">com.codahale.metrics.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (16/16)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    98.3%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (58/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    95.9%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (211/220)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,277 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +369,45 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (7/7)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (18/18)
       </span>
     </td>
       </tr>
    @@ -137,7 +434,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE.html
    index 78a6a3231e..14de4fe749 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    +com.codahale.metrics.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    +    <td class="name">com.codahale.metrics.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (16/16)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    98.3%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (58/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    95.9%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (211/220)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,88 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +180,234 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (22/22)
       </span>
     </td>
       </tr>
    @@ -137,7 +434,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
    index e81c0ce121..d97de08d58 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    +com.codahale.metrics.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    +    <td class="name">com.codahale.metrics.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (16/16)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    98.3%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (58/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    95.9%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (211/220)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,223 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +315,99 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    83.3%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (40/48)
       </span>
     </td>
       </tr>
    @@ -137,7 +434,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD.html
    index 01a2f66a49..9e5755ebd4 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    +com.codahale.metrics.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    +    <td class="name">com.codahale.metrics.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (16/16)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    98.3%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (58/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    95.9%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (211/220)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,61 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +153,261 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (22/22)
       </span>
     </td>
       </tr>
    @@ -137,7 +434,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
    index f4988d58af..a8165ffd52 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    +com.codahale.metrics.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    +    <td class="name">com.codahale.metrics.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (16/16)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    98.3%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (58/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    95.9%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (211/220)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,250 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +342,72 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (18/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    85.7%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (6/7)
       </span>
     </td>
       </tr>
    @@ -137,7 +434,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
    index 922a2b7fc0..89e41d9d53 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    +  <title>Coverage Report > com.codahale.metrics.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    +com.codahale.metrics.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    +    <td class="name">com.codahale.metrics.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (16/16)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    98.3%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (58/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    95.9%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (211/220)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,277 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +369,45 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (7/7)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    96.8%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (18/18)
       </span>
     </td>
       </tr>
    @@ -137,7 +434,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-1.html
    index 8cfa9693f9..ce9e05e4ed 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    +  <title>Coverage Report > BufferPoolMetricSet</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,16 +19,19 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.log4j2</a>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.log4j2)</h1>
    +<h1>Coverage Summary for Class: BufferPoolMetricSet (com.codahale.metrics.jvm)</h1>
     
     <table class="coverageStats">
    -
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
     ">
       Method, %
     </th>
    @@ -38,26 +41,7 @@ <h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.log4j
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (29/30)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedAppender$1</td>
    +  <td class="name">BufferPoolMetricSet</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -71,29 +55,19 @@ <h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.log4j
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (3/3)
       </span>
     </td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    +    100%
       </span>
       <span class="absValue">
    -    (30/31)
    +    (18/18)
       </span>
     </td>
     </tr>
    +
     </table>
     
     <br/>
    @@ -101,142 +75,56 @@ <h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.log4j
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.log4j2;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
     &nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import org.apache.logging.log4j.core.Appender;
    -&nbsp;import org.apache.logging.log4j.core.Filter;
    -&nbsp;import org.apache.logging.log4j.core.Layout;
    -&nbsp;import org.apache.logging.log4j.core.LogEvent;
    -&nbsp;import org.apache.logging.log4j.core.appender.AbstractAppender;
    -&nbsp;import org.apache.logging.log4j.core.config.plugins.Plugin;
    -&nbsp;import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
    -&nbsp;import org.apache.logging.log4j.core.config.plugins.PluginFactory;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
     &nbsp;
    -&nbsp;import java.io.Serializable;
    +&nbsp;import javax.management.JMException;
    +&nbsp;import javax.management.MBeanServer;
    +&nbsp;import javax.management.ObjectName;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Map;
     &nbsp;
     &nbsp;import static com.codahale.metrics.MetricRegistry.name;
     &nbsp;
     &nbsp;/**
    -&nbsp; * A Log4J 2.x {@link Appender} which has seven meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    +&nbsp; * A set of gauges for the count, usage, and capacity of the JVM&#39;s direct and mapped buffer pools.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * These JMX objects are only available on Java 7 and above.
     &nbsp; */
    -&nbsp;@Plugin(name = &quot;MetricsAppender&quot;, category = &quot;Core&quot;, elementType = &quot;appender&quot;)
    -&nbsp;public class InstrumentedAppender extends AbstractAppender {
    -&nbsp;
    -&nbsp;    private transient final MetricRegistry registry;
    -&nbsp;
    -&nbsp;    private transient Meter all;
    -&nbsp;    private transient Meter trace;
    -&nbsp;    private transient Meter debug;
    -&nbsp;    private transient Meter info;
    -&nbsp;    private transient Meter warn;
    -&nbsp;    private transient Meter error;
    -&nbsp;    private transient Meter fatal;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName     the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     * @param filter           The Filter to associate with the Appender.
    -&nbsp;     * @param layout           The layout to use to format the event.
    -&nbsp;     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
    -&nbsp;     *                         logged and then passed to the application.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName, Filter filter, Layout&lt;? extends Serializable&gt; layout, boolean ignoreExceptions) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName), filter, layout, ignoreExceptions);</b>
    -&nbsp;    }
    +&nbsp;public class BufferPoolMetricSet implements MetricSet {
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(BufferPoolMetricSet.class);</b>
    +<b class="fc">&nbsp;    private static final String[] ATTRIBUTES = {&quot;Count&quot;, &quot;MemoryUsed&quot;, &quot;TotalCapacity&quot;};</b>
    +<b class="fc">&nbsp;    private static final String[] NAMES = {&quot;count&quot;, &quot;used&quot;, &quot;capacity&quot;};</b>
    +<b class="fc">&nbsp;    private static final String[] POOLS = {&quot;direct&quot;, &quot;mapped&quot;};</b>
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, null, null, true);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry         the metric registry
    -&nbsp;     * @param filter           The Filter to associate with the Appender.
    -&nbsp;     * @param layout           The layout to use to format the event.
    -&nbsp;     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
    -&nbsp;     *                         logged and then passed to the application.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(MetricRegistry registry, Filter filter, Layout&lt;? extends Serializable&gt; layout, boolean ignoreExceptions) {
    -<b class="fc">&nbsp;        super(name(Appender.class), filter, layout, ignoreExceptions);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    +&nbsp;    private final MBeanServer mBeanServer;
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given appender name and registry.
    -&nbsp;     *
    -&nbsp;     * @param appenderName The name of the appender.
    -&nbsp;     * @param registry     the metric registry
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String appenderName, MetricRegistry registry) {
    -<b class="fc">&nbsp;        super(appenderName, null, null, true);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @PluginFactory
    -&nbsp;    public static InstrumentedAppender createAppender(
    -&nbsp;            @PluginAttribute(&quot;name&quot;) String name,
    -&nbsp;            @PluginAttribute(value = &quot;registryName&quot;, defaultString = &quot;log4j2Metrics&quot;) String registry) {
    -<b class="fc">&nbsp;        return new InstrumentedAppender(name, SharedMetricRegistries.getOrCreate(registry));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        this.fatal = registry.meter(name(getName(), &quot;fatal&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    +<b class="fc">&nbsp;    public BufferPoolMetricSet(MBeanServer mBeanServer) {</b>
    +<b class="fc">&nbsp;        this.mBeanServer = mBeanServer;</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public void append(LogEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().getStandardLevel()) {</b>
    -&nbsp;            case TRACE:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case DEBUG:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case INFO:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case WARN:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case ERROR:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case FATAL:
    -<b class="fc">&nbsp;                fatal.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        for (String pool : POOLS) {</b>
    +<b class="fc">&nbsp;            for (int i = 0; i &lt; ATTRIBUTES.length; i++) {</b>
    +<b class="fc">&nbsp;                final String attribute = ATTRIBUTES[i];</b>
    +<b class="fc">&nbsp;                final String name = NAMES[i];</b>
    +&nbsp;                try {
    +<b class="fc">&nbsp;                    final ObjectName on = new ObjectName(&quot;java.nio:type=BufferPool,name=&quot; + pool);</b>
    +<b class="fc">&nbsp;                    mBeanServer.getMBeanInfo(on);</b>
    +<b class="fc">&nbsp;                    gauges.put(name(pool, name), new JmxAttributeGauge(mBeanServer, on, attribute));</b>
    +<b class="fc">&nbsp;                } catch (JMException ignored) {</b>
    +<b class="fc">&nbsp;                    LOGGER.debug(&quot;Unable to load buffer pool MBeans, possibly running on Java 6&quot;);</b>
    +<b class="fc">&nbsp;                }</b>
    +&nbsp;            }
     &nbsp;        }
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -262,7 +150,7 @@ <h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.log4j
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-2.html
    new file mode 100644
    index 0000000000..45128faffe
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-2.html
    @@ -0,0 +1,184 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CachedThreadStatesGaugeSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CachedThreadStatesGaugeSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CachedThreadStatesGaugeSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">CachedThreadStatesGaugeSet$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.ThreadInfo;
    +&nbsp;import java.lang.management.ThreadMXBean;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.CachedGauge;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A variation of ThreadStatesGaugeSet that caches the ThreadInfo[] objects for
    +&nbsp; * a given interval.
    +&nbsp; */
    +<b class="fc">&nbsp;public class CachedThreadStatesGaugeSet extends ThreadStatesGaugeSet {</b>
    +&nbsp;
    +&nbsp;    private final CachedGauge&lt;ThreadInfo[]&gt; threadInfo;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges using the given MXBean and detector.
    +&nbsp;     * Caches the information for the given interval and time unit.
    +&nbsp;     *
    +&nbsp;     * @param threadMXBean     a thread MXBean
    +&nbsp;     * @param deadlockDetector a deadlock detector
    +&nbsp;     * @param interval         cache interval
    +&nbsp;     * @param unit             cache interval time unit
    +&nbsp;     */
    +&nbsp;    public CachedThreadStatesGaugeSet(final ThreadMXBean threadMXBean, ThreadDeadlockDetector deadlockDetector,
    +&nbsp;                                      long interval, TimeUnit unit) {
    +<b class="fc">&nbsp;        super(threadMXBean, deadlockDetector);</b>
    +<b class="fc">&nbsp;        threadInfo = new CachedGauge&lt;ThreadInfo[]&gt;(interval, unit) {</b>
    +&nbsp;            @Override
    +&nbsp;            protected ThreadInfo[] loadValue() {
    +<b class="fc">&nbsp;                return CachedThreadStatesGaugeSet.super.getThreadInfo();</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges using the default MXBeans.
    +&nbsp;     * Caches the information for the given interval and time unit.
    +&nbsp;     *
    +&nbsp;     * @param interval cache interval
    +&nbsp;     * @param unit     cache interval time unit
    +&nbsp;     */
    +&nbsp;    public CachedThreadStatesGaugeSet(long interval, TimeUnit unit) {
    +<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector(), interval, unit);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    ThreadInfo[] getThreadInfo() {
    +<b class="fc">&nbsp;        return threadInfo.getValue();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-3.html
    new file mode 100644
    index 0000000000..eac0e04d0d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-3.html
    @@ -0,0 +1,139 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ClassLoadingGaugeSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ClassLoadingGaugeSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ClassLoadingGaugeSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;
    +&nbsp;import java.lang.management.ClassLoadingMXBean;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Map;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of gauges for JVM classloader usage.
    +&nbsp; */
    +&nbsp;public class ClassLoadingGaugeSet implements MetricSet {
    +&nbsp;
    +&nbsp;    private final ClassLoadingMXBean mxBean;
    +&nbsp;
    +&nbsp;    public ClassLoadingGaugeSet() {
    +<b class="nc">&nbsp;        this(ManagementFactory.getClassLoadingMXBean());</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public ClassLoadingGaugeSet(ClassLoadingMXBean mxBean) {</b>
    +<b class="fc">&nbsp;        this.mxBean = mxBean;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;loaded&quot;, (Gauge&lt;Long&gt;) mxBean::getTotalLoadedClassCount);</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;unloaded&quot;, (Gauge&lt;Long&gt;) mxBean::getUnloadedClassCount);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return gauges;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-4.html
    new file mode 100644
    index 0000000000..4c29626130
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-4.html
    @@ -0,0 +1,123 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CpuTimeClock</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CpuTimeClock (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CpuTimeClock</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.ThreadMXBean;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A clock implementation which returns the current thread&#39;s CPU time.
    +&nbsp; */
    +<b class="fc">&nbsp;public class CpuTimeClock extends Clock {</b>
    +&nbsp;
    +<b class="fc">&nbsp;    private static final ThreadMXBean THREAD_MX_BEAN = ManagementFactory.getThreadMXBean();</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public long getTick() {
    +<b class="fc">&nbsp;        return THREAD_MX_BEAN.getCurrentThreadCpuTime();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-5.html
    new file mode 100644
    index 0000000000..8ad6486931
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-5.html
    @@ -0,0 +1,154 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > FileDescriptorRatioGauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: FileDescriptorRatioGauge (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">FileDescriptorRatioGauge</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.OperatingSystemMXBean;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A gauge for the ratio of used to total file descriptors.
    +&nbsp; */
    +&nbsp;public class FileDescriptorRatioGauge extends RatioGauge {
    +<b class="fc">&nbsp;    private static boolean unixOperatingSystemMXBeanExists = false;</b>
    +&nbsp;
    +&nbsp;    private final OperatingSystemMXBean os;
    +&nbsp;
    +&nbsp;    static {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            Class.forName(&quot;com.sun.management.UnixOperatingSystemMXBean&quot;);</b>
    +<b class="fc">&nbsp;            unixOperatingSystemMXBeanExists = true;</b>
    +<b class="fc">&nbsp;        } catch (ClassNotFoundException e) {</b>
    +&nbsp;            // do nothing
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new gauge using the platform OS bean.
    +&nbsp;     */
    +&nbsp;    public FileDescriptorRatioGauge() {
    +<b class="fc">&nbsp;        this(ManagementFactory.getOperatingSystemMXBean());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new gauge using the given OS bean.
    +&nbsp;     *
    +&nbsp;     * @param os an {@link OperatingSystemMXBean}
    +&nbsp;     */
    +<b class="fc">&nbsp;    public FileDescriptorRatioGauge(OperatingSystemMXBean os) {</b>
    +<b class="fc">&nbsp;        this.os = os;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected Ratio getRatio() {
    +<b class="fc">&nbsp;        if (unixOperatingSystemMXBeanExists &amp;&amp; os instanceof com.sun.management.UnixOperatingSystemMXBean) {</b>
    +<b class="fc">&nbsp;            final com.sun.management.UnixOperatingSystemMXBean unixOs = (com.sun.management.UnixOperatingSystemMXBean) os;</b>
    +<b class="fc">&nbsp;            return Ratio.of(unixOs.getOpenFileDescriptorCount(), unixOs.getMaxFileDescriptorCount());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            return Ratio.of(Double.NaN, Double.NaN);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-6.html
    new file mode 100644
    index 0000000000..b1d391b143
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-6.html
    @@ -0,0 +1,157 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > GarbageCollectorMetricSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: GarbageCollectorMetricSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">GarbageCollectorMetricSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;
    +&nbsp;import java.lang.management.GarbageCollectorMXBean;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.regex.Pattern;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of gauges for the counts and elapsed times of garbage collections.
    +&nbsp; */
    +&nbsp;public class GarbageCollectorMetricSet implements MetricSet {
    +<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    +&nbsp;
    +&nbsp;    private final List&lt;GarbageCollectorMXBean&gt; garbageCollectors;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges for all discoverable garbage collectors.
    +&nbsp;     */
    +&nbsp;    public GarbageCollectorMetricSet() {
    +<b class="fc">&nbsp;        this(ManagementFactory.getGarbageCollectorMXBeans());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges for the given collection of garbage collectors.
    +&nbsp;     *
    +&nbsp;     * @param garbageCollectors the garbage collectors
    +&nbsp;     */
    +<b class="fc">&nbsp;    public GarbageCollectorMetricSet(Collection&lt;GarbageCollectorMXBean&gt; garbageCollectors) {</b>
    +<b class="fc">&nbsp;        this.garbageCollectors = new ArrayList&lt;&gt;(garbageCollectors);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        for (final GarbageCollectorMXBean gc : garbageCollectors) {</b>
    +<b class="fc">&nbsp;            final String name = WHITESPACE.matcher(gc.getName()).replaceAll(&quot;-&quot;);</b>
    +<b class="fc">&nbsp;            gauges.put(name(name, &quot;count&quot;), (Gauge&lt;Long&gt;) gc::getCollectionCount);</b>
    +<b class="fc">&nbsp;            gauges.put(name(name, &quot;time&quot;), (Gauge&lt;Long&gt;) gc::getCollectionTime);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-7.html
    new file mode 100644
    index 0000000000..df0f5fd121
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-7.html
    @@ -0,0 +1,165 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > JmxAttributeGauge</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: JmxAttributeGauge (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">JmxAttributeGauge</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import javax.management.JMException;
    +&nbsp;import javax.management.MBeanServerConnection;
    +&nbsp;import javax.management.ObjectName;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.util.Set;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link Gauge} implementation which queries an {@link MBeanServerConnection} for an attribute of an object.
    +&nbsp; */
    +&nbsp;public class JmxAttributeGauge implements Gauge&lt;Object&gt; {
    +&nbsp;    private final MBeanServerConnection mBeanServerConn;
    +&nbsp;    private final ObjectName objectName;
    +&nbsp;    private final String attributeName;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new JmxAttributeGauge.
    +&nbsp;     *
    +&nbsp;     * @param objectName    the name of the object
    +&nbsp;     * @param attributeName the name of the object&#39;s attribute
    +&nbsp;     */
    +&nbsp;    public JmxAttributeGauge(ObjectName objectName, String attributeName) {
    +<b class="fc">&nbsp;        this(ManagementFactory.getPlatformMBeanServer(), objectName, attributeName);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new JmxAttributeGauge.
    +&nbsp;     *
    +&nbsp;     * @param mBeanServerConn the {@link MBeanServerConnection}
    +&nbsp;     * @param objectName      the name of the object
    +&nbsp;     * @param attributeName   the name of the object&#39;s attribute
    +&nbsp;     */
    +<b class="fc">&nbsp;    public JmxAttributeGauge(MBeanServerConnection mBeanServerConn, ObjectName objectName, String attributeName) {</b>
    +<b class="fc">&nbsp;        this.mBeanServerConn = mBeanServerConn;</b>
    +<b class="fc">&nbsp;        this.objectName = objectName;</b>
    +<b class="fc">&nbsp;        this.attributeName = attributeName;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Object getValue() {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return mBeanServerConn.getAttribute(getObjectName(), attributeName);</b>
    +<b class="fc">&nbsp;        } catch (IOException | JMException e) {</b>
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private ObjectName getObjectName() throws IOException {
    +<b class="fc">&nbsp;        if (objectName.isPattern()) {</b>
    +<b class="fc">&nbsp;            Set&lt;ObjectName&gt; foundNames = mBeanServerConn.queryNames(objectName, null);</b>
    +<b class="fc">&nbsp;            if (foundNames.size() == 1) {</b>
    +<b class="fc">&nbsp;                return foundNames.iterator().next();</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        return objectName;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-8.html
    new file mode 100644
    index 0000000000..520064935e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-8.html
    @@ -0,0 +1,155 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > JvmAttributeGaugeSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: JvmAttributeGaugeSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">JvmAttributeGaugeSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (12/12)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.RuntimeMXBean;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.Map;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of gauges for the JVM name, vendor, and uptime.
    +&nbsp; */
    +&nbsp;public class JvmAttributeGaugeSet implements MetricSet {
    +&nbsp;    private final RuntimeMXBean runtime;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges.
    +&nbsp;     */
    +&nbsp;    public JvmAttributeGaugeSet() {
    +<b class="fc">&nbsp;        this(ManagementFactory.getRuntimeMXBean());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges with the given {@link RuntimeMXBean}.
    +&nbsp;     *
    +&nbsp;     * @param runtime JVM management interface with access to system properties
    +&nbsp;     */
    +<b class="fc">&nbsp;    public JvmAttributeGaugeSet(RuntimeMXBean runtime) {</b>
    +<b class="fc">&nbsp;        this.runtime = runtime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        gauges.put(&quot;name&quot;, (Gauge&lt;String&gt;) runtime::getName);</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;vendor&quot;, (Gauge&lt;String&gt;) () -&gt; String.format(Locale.US,</b>
    +&nbsp;                &quot;%s %s %s (%s)&quot;,
    +<b class="fc">&nbsp;                runtime.getVmVendor(),</b>
    +<b class="fc">&nbsp;                runtime.getVmName(),</b>
    +<b class="fc">&nbsp;                runtime.getVmVersion(),</b>
    +<b class="fc">&nbsp;                runtime.getSpecVersion()));</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;uptime&quot;, (Gauge&lt;Long&gt;) runtime::getUptime);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-9.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-9.html
    new file mode 100644
    index 0000000000..5550e5b8d8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-9.html
    @@ -0,0 +1,274 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MemoryUsageGaugeSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MemoryUsageGaugeSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MemoryUsageGaugeSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (37/37)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">MemoryUsageGaugeSet$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MemoryUsageGaugeSet$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">MemoryUsageGaugeSet$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (47/47)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.MemoryMXBean;
    +&nbsp;import java.lang.management.MemoryPoolMXBean;
    +&nbsp;import java.lang.management.MemoryUsage;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.regex.Pattern;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of gauges for JVM memory usage, including stats on heap vs. non-heap memory, plus
    +&nbsp; * GC-specific memory pools.
    +&nbsp; */
    +<b class="fc">&nbsp;public class MemoryUsageGaugeSet implements MetricSet {</b>
    +<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    +&nbsp;
    +&nbsp;    private final MemoryMXBean mxBean;
    +&nbsp;    private final List&lt;MemoryPoolMXBean&gt; memoryPools;
    +&nbsp;
    +&nbsp;    public MemoryUsageGaugeSet() {
    +<b class="fc">&nbsp;        this(ManagementFactory.getMemoryMXBean(), ManagementFactory.getMemoryPoolMXBeans());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public MemoryUsageGaugeSet(MemoryMXBean mxBean,
    +<b class="fc">&nbsp;                               Collection&lt;MemoryPoolMXBean&gt; memoryPools) {</b>
    +<b class="fc">&nbsp;        this.mxBean = mxBean;</b>
    +<b class="fc">&nbsp;        this.memoryPools = new ArrayList&lt;&gt;(memoryPools);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        gauges.put(&quot;total.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getInit() +</b>
    +<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getInit());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;total.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getUsed() +</b>
    +<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getUsed());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;total.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getMax() == -1 ?</b>
    +<b class="fc">&nbsp;                -1 : mxBean.getHeapMemoryUsage().getMax() + mxBean.getNonHeapMemoryUsage().getMax());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;total.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getCommitted() +</b>
    +<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getCommitted());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        gauges.put(&quot;heap.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getInit());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;heap.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getUsed());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;heap.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getMax());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;heap.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getCommitted());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;heap.usage&quot;, new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="fc">&nbsp;                final MemoryUsage usage = mxBean.getHeapMemoryUsage();</b>
    +<b class="fc">&nbsp;                return Ratio.of(usage.getUsed(), usage.getMax());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        gauges.put(&quot;non-heap.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getInit());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;non-heap.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getUsed());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;non-heap.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getMax());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;non-heap.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getCommitted());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;non-heap.usage&quot;, new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="fc">&nbsp;                final MemoryUsage usage = mxBean.getNonHeapMemoryUsage();</b>
    +<b class="fc">&nbsp;                return Ratio.of(usage.getUsed(), usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        for (final MemoryPoolMXBean pool : memoryPools) {</b>
    +<b class="fc">&nbsp;            final String poolName = name(&quot;pools&quot;, WHITESPACE.matcher(pool.getName()).replaceAll(&quot;-&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;usage&quot;), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="fc">&nbsp;                    MemoryUsage usage = pool.getUsage();</b>
    +<b class="fc">&nbsp;                    return Ratio.of(usage.getUsed(),</b>
    +<b class="fc">&nbsp;                            usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;max&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getMax());</b>
    +<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;used&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getUsed());</b>
    +<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;committed&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getCommitted());</b>
    +&nbsp;
    +&nbsp;            // Only register GC usage metrics if the memory pool supports usage statistics.
    +<b class="fc">&nbsp;            if (pool.getCollectionUsage() != null) {</b>
    +<b class="fc">&nbsp;                gauges.put(name(poolName, &quot;used-after-gc&quot;), (Gauge&lt;Long&gt;) () -&gt;</b>
    +<b class="fc">&nbsp;                        pool.getCollectionUsage().getUsed());</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;init&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getInit());</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-a.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-a.html
    new file mode 100644
    index 0000000000..4a1b6265d2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-a.html
    @@ -0,0 +1,169 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ThreadDeadlockDetector</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ThreadDeadlockDetector (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ThreadDeadlockDetector</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (20/20)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.ThreadInfo;
    +&nbsp;import java.lang.management.ThreadMXBean;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashSet;
    +&nbsp;import java.util.Set;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A utility class for detecting deadlocked threads.
    +&nbsp; */
    +&nbsp;public class ThreadDeadlockDetector {
    +&nbsp;    private static final int MAX_STACK_TRACE_DEPTH = 100;
    +&nbsp;
    +&nbsp;    private final ThreadMXBean threads;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new detector.
    +&nbsp;     */
    +&nbsp;    public ThreadDeadlockDetector() {
    +<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new detector using the given {@link ThreadMXBean}.
    +&nbsp;     *
    +&nbsp;     * @param threads a {@link ThreadMXBean}
    +&nbsp;     */
    +<b class="fc">&nbsp;    public ThreadDeadlockDetector(ThreadMXBean threads) {</b>
    +<b class="fc">&nbsp;        this.threads = threads;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a set of diagnostic stack traces for any deadlocked threads. If no threads are
    +&nbsp;     * deadlocked, returns an empty set.
    +&nbsp;     *
    +&nbsp;     * @return stack traces for deadlocked threads or an empty set
    +&nbsp;     */
    +&nbsp;    public Set&lt;String&gt; getDeadlockedThreads() {
    +<b class="fc">&nbsp;        final long[] ids = threads.findDeadlockedThreads();</b>
    +<b class="fc">&nbsp;        if (ids != null) {</b>
    +<b class="fc">&nbsp;            final Set&lt;String&gt; deadlocks = new HashSet&lt;&gt;();</b>
    +<b class="fc">&nbsp;            for (ThreadInfo info : threads.getThreadInfo(ids, MAX_STACK_TRACE_DEPTH)) {</b>
    +<b class="fc">&nbsp;                final StringBuilder stackTrace = new StringBuilder();</b>
    +<b class="fc">&nbsp;                for (StackTraceElement element : info.getStackTrace()) {</b>
    +<b class="fc">&nbsp;                    stackTrace.append(&quot;\t at &quot;)</b>
    +<b class="fc">&nbsp;                            .append(element.toString())</b>
    +<b class="fc">&nbsp;                            .append(String.format(&quot;%n&quot;));</b>
    +&nbsp;                }
    +&nbsp;
    +<b class="fc">&nbsp;                deadlocks.add(</b>
    +<b class="fc">&nbsp;                        String.format(&quot;%s locked on %s (owned by %s):%n%s&quot;,</b>
    +<b class="fc">&nbsp;                                info.getThreadName(),</b>
    +<b class="fc">&nbsp;                                info.getLockName(),</b>
    +<b class="fc">&nbsp;                                info.getLockOwnerName(),</b>
    +<b class="fc">&nbsp;                                stackTrace.toString()</b>
    +&nbsp;                        )
    +&nbsp;                );
    +&nbsp;            }
    +<b class="fc">&nbsp;            return Collections.unmodifiableSet(deadlocks);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return Collections.emptySet();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-b.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-b.html
    new file mode 100644
    index 0000000000..38d0071f9d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-b.html
    @@ -0,0 +1,217 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ThreadDump</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ThreadDump (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ThreadDump</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (40/48)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.io.OutputStreamWriter;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;import java.lang.management.LockInfo;
    +&nbsp;import java.lang.management.MonitorInfo;
    +&nbsp;import java.lang.management.ThreadInfo;
    +&nbsp;import java.lang.management.ThreadMXBean;
    +&nbsp;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A convenience class for getting a thread dump.
    +&nbsp; */
    +&nbsp;public class ThreadDump {
    +&nbsp;
    +&nbsp;    private final ThreadMXBean threadMXBean;
    +&nbsp;
    +<b class="fc">&nbsp;    public ThreadDump(ThreadMXBean threadMXBean) {</b>
    +<b class="fc">&nbsp;        this.threadMXBean = threadMXBean;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Dumps all of the threads&#39; current information, including synchronization, to an output stream.
    +&nbsp;     *
    +&nbsp;     * @param out an output stream
    +&nbsp;     */
    +&nbsp;    public void dump(OutputStream out) {
    +<b class="fc">&nbsp;        dump(true, true, out);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Dumps all of the threads&#39; current information, optionally including synchronization, to an output stream.
    +&nbsp;     *
    +&nbsp;     * Having control over including synchronization info allows using this method (and its wrappers, i.e.
    +&nbsp;     * ThreadDumpServlet) in environments where getting object monitor and/or ownable synchronizer usage is not
    +&nbsp;     * supported. It can also speed things up.
    +&nbsp;     *
    +&nbsp;     * See {@link ThreadMXBean#dumpAllThreads(boolean, boolean)}
    +&nbsp;     *
    +&nbsp;     * @param lockedMonitors dump all locked monitors if true
    +&nbsp;     * @param lockedSynchronizers dump all locked ownable synchronizers if true
    +&nbsp;     * @param out an output stream
    +&nbsp;     */
    +&nbsp;    public void dump(boolean lockedMonitors, boolean lockedSynchronizers, OutputStream out) {
    +<b class="fc">&nbsp;        final ThreadInfo[] threads = this.threadMXBean.dumpAllThreads(lockedMonitors, lockedSynchronizers);</b>
    +<b class="fc">&nbsp;        final PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, UTF_8));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (int ti = threads.length - 1; ti &gt;= 0; ti--) {</b>
    +<b class="fc">&nbsp;            final ThreadInfo t = threads[ti];</b>
    +<b class="fc">&nbsp;            writer.printf(&quot;\&quot;%s\&quot; id=%d state=%s&quot;,</b>
    +<b class="fc">&nbsp;                    t.getThreadName(),</b>
    +<b class="fc">&nbsp;                    t.getThreadId(),</b>
    +<b class="fc">&nbsp;                    t.getThreadState());</b>
    +<b class="fc">&nbsp;            final LockInfo lock = t.getLockInfo();</b>
    +<b class="fc">&nbsp;            if (lock != null &amp;&amp; t.getThreadState() != Thread.State.BLOCKED) {</b>
    +<b class="fc">&nbsp;                writer.printf(&quot;%n    - waiting on &lt;0x%08x&gt; (a %s)&quot;,</b>
    +<b class="fc">&nbsp;                        lock.getIdentityHashCode(),</b>
    +<b class="fc">&nbsp;                        lock.getClassName());</b>
    +<b class="fc">&nbsp;                writer.printf(&quot;%n    - locked &lt;0x%08x&gt; (a %s)&quot;,</b>
    +<b class="fc">&nbsp;                        lock.getIdentityHashCode(),</b>
    +<b class="fc">&nbsp;                        lock.getClassName());</b>
    +<b class="fc">&nbsp;            } else if (lock != null &amp;&amp; t.getThreadState() == Thread.State.BLOCKED) {</b>
    +<b class="nc">&nbsp;                writer.printf(&quot;%n    - waiting to lock &lt;0x%08x&gt; (a %s)&quot;,</b>
    +<b class="nc">&nbsp;                        lock.getIdentityHashCode(),</b>
    +<b class="nc">&nbsp;                        lock.getClassName());</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            if (t.isSuspended()) {</b>
    +<b class="nc">&nbsp;                writer.print(&quot; (suspended)&quot;);</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            if (t.isInNative()) {</b>
    +<b class="fc">&nbsp;                writer.print(&quot; (running in native)&quot;);</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            writer.println();</b>
    +<b class="fc">&nbsp;            if (t.getLockOwnerName() != null) {</b>
    +<b class="nc">&nbsp;                writer.printf(&quot;     owned by %s id=%d%n&quot;, t.getLockOwnerName(), t.getLockOwnerId());</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            final StackTraceElement[] elements = t.getStackTrace();</b>
    +<b class="fc">&nbsp;            final MonitorInfo[] monitors = t.getLockedMonitors();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (int i = 0; i &lt; elements.length; i++) {</b>
    +<b class="fc">&nbsp;                final StackTraceElement element = elements[i];</b>
    +<b class="fc">&nbsp;                writer.printf(&quot;    at %s%n&quot;, element);</b>
    +<b class="fc">&nbsp;                for (int j = 1; j &lt; monitors.length; j++) {</b>
    +<b class="nc">&nbsp;                    final MonitorInfo monitor = monitors[j];</b>
    +<b class="nc">&nbsp;                    if (monitor.getLockedStackDepth() == i) {</b>
    +<b class="nc">&nbsp;                        writer.printf(&quot;      - locked %s%n&quot;, monitor);</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +<b class="fc">&nbsp;            writer.println();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final LockInfo[] locks = t.getLockedSynchronizers();</b>
    +<b class="fc">&nbsp;            if (locks.length &gt; 0) {</b>
    +<b class="fc">&nbsp;                writer.printf(&quot;    Locked synchronizers: count = %d%n&quot;, locks.length);</b>
    +<b class="fc">&nbsp;                for (LockInfo l : locks) {</b>
    +<b class="fc">&nbsp;                    writer.printf(&quot;      - %s%n&quot;, l);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                writer.println();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        writer.println();</b>
    +<b class="fc">&nbsp;        writer.flush();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-c.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-c.html
    new file mode 100644
    index 0000000000..34999b37a2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-c.html
    @@ -0,0 +1,185 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ThreadStatesGaugeSet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.jvm</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ThreadStatesGaugeSet (com.codahale.metrics.jvm)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ThreadStatesGaugeSet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.management.ThreadInfo;
    +&nbsp;import java.lang.management.ThreadMXBean;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A set of gauges for the number of threads in their various states and deadlock detection.
    +&nbsp; */
    +&nbsp;public class ThreadStatesGaugeSet implements MetricSet {
    +&nbsp;
    +&nbsp;    // do not compute stack traces.
    +&nbsp;    private final static int STACK_TRACE_DEPTH = 0;
    +&nbsp;
    +&nbsp;    private final ThreadMXBean threads;
    +&nbsp;    private final ThreadDeadlockDetector deadlockDetector;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges using the default MXBeans.
    +&nbsp;     */
    +&nbsp;    public ThreadStatesGaugeSet() {
    +<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new set of gauges using the given MXBean and detector.
    +&nbsp;     *
    +&nbsp;     * @param threads          a thread MXBean
    +&nbsp;     * @param deadlockDetector a deadlock detector
    +&nbsp;     */
    +&nbsp;    public ThreadStatesGaugeSet(ThreadMXBean threads,
    +<b class="fc">&nbsp;                                ThreadDeadlockDetector deadlockDetector) {</b>
    +<b class="fc">&nbsp;        this.threads = threads;</b>
    +<b class="fc">&nbsp;        this.deadlockDetector = deadlockDetector;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (final Thread.State state : Thread.State.values()) {</b>
    +<b class="fc">&nbsp;            gauges.put(name(state.toString().toLowerCase(), &quot;count&quot;),</b>
    +<b class="fc">&nbsp;                    (Gauge&lt;Object&gt;) () -&gt; getThreadCount(state));</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        gauges.put(&quot;count&quot;, (Gauge&lt;Integer&gt;) threads::getThreadCount);</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;daemon.count&quot;, (Gauge&lt;Integer&gt;) threads::getDaemonThreadCount);</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;peak.count&quot;, (Gauge&lt;Integer&gt;) threads::getPeakThreadCount);</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;total_started.count&quot;, (Gauge&lt;Long&gt;) threads::getTotalStartedThreadCount);</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;deadlock.count&quot;, (Gauge&lt;Integer&gt;) () -&gt; deadlockDetector.getDeadlockedThreads().size());</b>
    +<b class="fc">&nbsp;        gauges.put(&quot;deadlocks&quot;, (Gauge&lt;Set&lt;String&gt;&gt;) deadlockDetector::getDeadlockedThreads);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private int getThreadCount(Thread.State state) {
    +<b class="fc">&nbsp;        final ThreadInfo[] allThreads = getThreadInfo();</b>
    +<b class="fc">&nbsp;        int count = 0;</b>
    +<b class="fc">&nbsp;        for (ThreadInfo info : allThreads) {</b>
    +<b class="fc">&nbsp;            if (info != null &amp;&amp; info.getThreadState() == state) {</b>
    +<b class="fc">&nbsp;                count++;</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        return count;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    ThreadInfo[] getThreadInfo() {
    +<b class="fc">&nbsp;        return threads.getThreadInfo(threads.getAllThreadIds(), STACK_TRACE_DEPTH);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index.html
    index fdbe6a856a..ed959624f5 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    +com.codahale.metrics.log4j2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    +    <td class="name">com.codahale.metrics.log4j2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -94,23 +94,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
    index ed0d397c64..ebc93cc781 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    +com.codahale.metrics.log4j2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    +    <td class="name">com.codahale.metrics.log4j2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -94,23 +94,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
    index 84100eaa93..ea86409c64 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    +com.codahale.metrics.log4j2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    +    <td class="name">com.codahale.metrics.log4j2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -94,23 +94,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS.html
    index d0a1d20d1f..b21409cdcf 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    +com.codahale.metrics.log4j2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    +    <td class="name">com.codahale.metrics.log4j2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -94,23 +94,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
    index 5d4080cf79..9a6914b7f2 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    +com.codahale.metrics.log4j2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    +    <td class="name">com.codahale.metrics.log4j2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -94,23 +94,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE.html
    index f4d484888d..f298c8a1ac 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    +com.codahale.metrics.log4j2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    +    <td class="name">com.codahale.metrics.log4j2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -94,23 +94,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
    index 63e1ed7ac1..a4c31135d8 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    +com.codahale.metrics.log4j2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    +    <td class="name">com.codahale.metrics.log4j2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -94,23 +94,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD.html
    index d4e40acdd1..a991214769 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    +com.codahale.metrics.log4j2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    +    <td class="name">com.codahale.metrics.log4j2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -94,23 +94,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
    index 3e468af9bf..c3b3a255cb 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    +com.codahale.metrics.log4j2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    +    <td class="name">com.codahale.metrics.log4j2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -94,23 +94,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
    index 769cc53eae..ffe23b8fda 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    +  <title>Coverage Report > com.codahale.metrics.log4j2</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    +com.codahale.metrics.log4j2</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    +    <td class="name">com.codahale.metrics.log4j2</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -94,23 +94,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/sources/source-1.html
    index 90cf136f50..2d7c0a217f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1a/sources/source-1.html
    @@ -19,19 +19,16 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.logback</a>
    +    <a href="../index.html">com.codahale.metrics.log4j2</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.logback)</h1>
    +<h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.log4j2)</h1>
     
     <table class="coverageStats">
    +
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
     ">
       Method, %
     </th>
    @@ -42,6 +39,25 @@ <h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.logba
     </tr>
     <tr>
       <td class="name">InstrumentedAppender</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (29/30)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedAppender$1</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -55,19 +71,29 @@ <h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.logba
         100%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (1/1)
       </span>
     </td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.8%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (30/31)
       </span>
     </td>
     </tr>
    -
     </table>
     
     <br/>
    @@ -75,41 +101,53 @@ <h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.logba
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.logback;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.log4j2;
     &nbsp;
    -&nbsp;import ch.qos.logback.classic.Level;
    -&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    -&nbsp;import ch.qos.logback.core.Appender;
    -&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
     &nbsp;import com.codahale.metrics.Meter;
     &nbsp;import com.codahale.metrics.MetricRegistry;
     &nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;import org.apache.logging.log4j.core.Appender;
    +&nbsp;import org.apache.logging.log4j.core.Filter;
    +&nbsp;import org.apache.logging.log4j.core.Layout;
    +&nbsp;import org.apache.logging.log4j.core.LogEvent;
    +&nbsp;import org.apache.logging.log4j.core.appender.AbstractAppender;
    +&nbsp;import org.apache.logging.log4j.core.config.plugins.Plugin;
    +&nbsp;import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
    +&nbsp;import org.apache.logging.log4j.core.config.plugins.PluginFactory;
    +&nbsp;
    +&nbsp;import java.io.Serializable;
     &nbsp;
     &nbsp;import static com.codahale.metrics.MetricRegistry.name;
     &nbsp;
     &nbsp;/**
    -&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    +&nbsp; * A Log4J 2.x {@link Appender} which has seven meters, one for each logging level and one for the total
     &nbsp; * number of statements being logged. The meter names are the logging level names appended to the
     &nbsp; * name of the appender.
     &nbsp; */
    -&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    -&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    +&nbsp;@Plugin(name = &quot;MetricsAppender&quot;, category = &quot;Core&quot;, elementType = &quot;appender&quot;)
    +&nbsp;public class InstrumentedAppender extends AbstractAppender {
     &nbsp;
    -&nbsp;    private Meter all;
    -&nbsp;    private Meter trace;
    -&nbsp;    private Meter debug;
    -&nbsp;    private Meter info;
    -&nbsp;    private Meter warn;
    -&nbsp;    private Meter error;
    +&nbsp;    private transient final MetricRegistry registry;
     &nbsp;
    +&nbsp;    private transient Meter all;
    +&nbsp;    private transient Meter trace;
    +&nbsp;    private transient Meter debug;
    +&nbsp;    private transient Meter info;
    +&nbsp;    private transient Meter warn;
    +&nbsp;    private transient Meter error;
    +&nbsp;    private transient Meter fatal;
     &nbsp;
     &nbsp;    /**
     &nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     *
    +&nbsp;     * @param registryName     the name of the registry in {@link SharedMetricRegistries}
    +&nbsp;     * @param filter           The Filter to associate with the Appender.
    +&nbsp;     * @param layout           The layout to use to format the event.
    +&nbsp;     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
    +&nbsp;     *                         logged and then passed to the application.
     &nbsp;     */
    -&nbsp;    public InstrumentedAppender() {
    -<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    +&nbsp;    public InstrumentedAppender(String registryName, Filter filter, Layout&lt;? extends Serializable&gt; layout, boolean ignoreExceptions) {
    +<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName), filter, layout, ignoreExceptions);</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    /**
    @@ -126,9 +164,40 @@ <h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.logba
     &nbsp;     *
     &nbsp;     * @param registry the metric registry
     &nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    +&nbsp;    public InstrumentedAppender(MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, null, null, true);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry.
    +&nbsp;     *
    +&nbsp;     * @param registry         the metric registry
    +&nbsp;     * @param filter           The Filter to associate with the Appender.
    +&nbsp;     * @param layout           The layout to use to format the event.
    +&nbsp;     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
    +&nbsp;     *                         logged and then passed to the application.
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(MetricRegistry registry, Filter filter, Layout&lt;? extends Serializable&gt; layout, boolean ignoreExceptions) {
    +<b class="fc">&nbsp;        super(name(Appender.class), filter, layout, ignoreExceptions);</b>
     <b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given appender name and registry.
    +&nbsp;     *
    +&nbsp;     * @param appenderName The name of the appender.
    +&nbsp;     * @param registry     the metric registry
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(String appenderName, MetricRegistry registry) {
    +<b class="fc">&nbsp;        super(appenderName, null, null, true);</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @PluginFactory
    +&nbsp;    public static InstrumentedAppender createAppender(
    +&nbsp;            @PluginAttribute(&quot;name&quot;) String name,
    +&nbsp;            @PluginAttribute(value = &quot;registryName&quot;, defaultString = &quot;log4j2Metrics&quot;) String registry) {
    +<b class="fc">&nbsp;        return new InstrumentedAppender(name, SharedMetricRegistries.getOrCreate(registry));</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    @@ -139,28 +208,32 @@ <h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.logba
     <b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
     <b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
     <b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    +<b class="fc">&nbsp;        this.fatal = registry.meter(name(getName(), &quot;fatal&quot;));</b>
     <b class="fc">&nbsp;        super.start();</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    protected void append(ILoggingEvent event) {
    +&nbsp;    public void append(LogEvent event) {
     <b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    -&nbsp;            case Level.TRACE_INT:
    +<b class="fc">&nbsp;        switch (event.getLevel().getStandardLevel()) {</b>
    +&nbsp;            case TRACE:
     <b class="fc">&nbsp;                trace.mark();</b>
     <b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.DEBUG_INT:
    +&nbsp;            case DEBUG:
     <b class="fc">&nbsp;                debug.mark();</b>
     <b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.INFO_INT:
    +&nbsp;            case INFO:
     <b class="fc">&nbsp;                info.mark();</b>
     <b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.WARN_INT:
    +&nbsp;            case WARN:
     <b class="fc">&nbsp;                warn.mark();</b>
     <b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.ERROR_INT:
    +&nbsp;            case ERROR:
     <b class="fc">&nbsp;                error.mark();</b>
     <b class="fc">&nbsp;                break;</b>
    +&nbsp;            case FATAL:
    +<b class="fc">&nbsp;                fatal.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
     &nbsp;            default:
     &nbsp;                break;
     &nbsp;        }
    @@ -189,7 +262,7 @@ <h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.logba
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index.html
    index fdaa17bede..786e3f59b7 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    +com.codahale.metrics.logback</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">com.codahale.metrics.logback</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -95,51 +83,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -148,49 +97,20 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    +    (5/5)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
    index c6feed0d56..202993a44b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    +com.codahale.metrics.logback</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">com.codahale.metrics.logback</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -94,17 +82,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -113,84 +97,20 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/73)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
    index 6841be0e40..50720d7eb9 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    +com.codahale.metrics.logback</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">com.codahale.metrics.logback</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -94,52 +82,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -148,49 +97,20 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    +    100%
       </span>
       <span class="absValue">
    -    (1/10)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS.html
    index f8a5a02e99..b7756c4b8b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    +com.codahale.metrics.logback</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">com.codahale.metrics.logback</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -95,51 +83,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -148,49 +97,20 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    +    (5/5)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
    index f0e340190d..e84c36dd9e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    +com.codahale.metrics.logback</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">com.codahale.metrics.logback</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -95,16 +83,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -113,84 +97,20 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/73)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE.html
    index 656e92a113..ec8703e59e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    +com.codahale.metrics.logback</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">com.codahale.metrics.logback</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -94,52 +82,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
     <th class="coverageStat sortedAsc
     ">
       <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -148,49 +97,20 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    +    (5/5)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
    index e3c58ea239..107c4e670a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    +com.codahale.metrics.logback</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">com.codahale.metrics.logback</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -94,17 +82,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
     <th class="coverageStat sortedDesc
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -113,84 +97,20 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/73)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD.html
    index 779882973c..3eb30dcdec 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    +com.codahale.metrics.logback</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">com.codahale.metrics.logback</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -95,51 +83,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
       <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -148,49 +97,20 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    +    (5/5)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
    index 1e8c0e6744..004d06264c 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    +com.codahale.metrics.logback</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">com.codahale.metrics.logback</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -95,16 +83,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -113,84 +97,20 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/73)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
    index 700dc41eec..3ba27519bb 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    +  <title>Coverage Report > com.codahale.metrics.logback</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    +com.codahale.metrics.logback</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">com.codahale.metrics.logback</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -95,16 +83,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -113,84 +97,20 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/73)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-1.html
    index fdd8715a6a..bdf06cfa25 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedFilter</title>
    +  <title>Coverage Report > InstrumentedAppender</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,22 +19,21 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlet</a>
    +    <a href="../index.html">com.codahale.metrics.logback</a>
     </div>
     
    -<h1>Coverage Summary for Class: AbstractInstrumentedFilter (com.codahale.metrics.servlet)</h1>
    +<h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.logback)</h1>
     
     <table class="coverageStats">
    -
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
     ">
    -  Method, %
    +  Class, %
     </th>
     <th class="coverageStat 
     ">
    -  Branch, %
    +  Method, %
     </th>
     <th class="coverageStat 
     ">
    @@ -42,97 +41,33 @@ <h1>Coverage Summary for Class: AbstractInstrumentedFilter (com.codahale.metrics
     </th>
     </tr>
     <tr>
    -  <td class="name">AbstractInstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/45)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    +  <td class="name">InstrumentedAppender</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/18)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/73)
    +    (24/24)
       </span>
     </td>
     </tr>
    +
     </table>
     
     <br/>
    @@ -140,222 +75,95 @@ <h1>Coverage Summary for Class: AbstractInstrumentedFilter (com.codahale.metrics
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.logback;
     &nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import ch.qos.logback.classic.Level;
    +&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    +&nbsp;import ch.qos.logback.core.Appender;
    +&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
     &nbsp;import com.codahale.metrics.Meter;
     &nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.Filter;
    -&nbsp;import javax.servlet.FilterChain;
    -&nbsp;import javax.servlet.FilterConfig;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.ServletRequest;
    -&nbsp;import javax.servlet.ServletResponse;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import javax.servlet.http.HttpServletResponseWrapper;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Map.Entry;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
     &nbsp;
     &nbsp;import static com.codahale.metrics.MetricRegistry.name;
     &nbsp;
     &nbsp;/**
    -&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    -&nbsp; * codes being returned.
    +&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    +&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    +&nbsp; * name of the appender.
     &nbsp; */
    -<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    -&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    -&nbsp;
    -&nbsp;    private final String otherMetricName;
    -&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    -&nbsp;    private final String registryAttribute;
    +&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    +&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
     &nbsp;
    -&nbsp;    // initialized after call of init method
    -&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    -&nbsp;    private Meter otherMeter;
    -&nbsp;    private Meter timeoutsMeter;
    -&nbsp;    private Meter errorsMeter;
    -&nbsp;    private Counter activeRequests;
    -&nbsp;    private Timer requestTimer;
    +&nbsp;    private Meter all;
    +&nbsp;    private Meter trace;
    +&nbsp;    private Meter debug;
    +&nbsp;    private Meter info;
    +&nbsp;    private Meter warn;
    +&nbsp;    private Meter error;
     &nbsp;
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     *
    -&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    -&nbsp;     *                               servlet context
    -&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    -&nbsp;     *                               interested in.
    -&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    +&nbsp;     * Create a new instrumented appender using the given registry name.
     &nbsp;     */
    -&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    -&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    -<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    -<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    -<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    -<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    +&nbsp;    public InstrumentedAppender() {
    +<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    -<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    -<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    -<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    -<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    -<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    -<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    -<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    -<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    -<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    -<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    -&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     *
    +&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(String registryName) {
    +<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    -&nbsp;        final MetricRegistry metricsRegistry;
    -&nbsp;
    -<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    -<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    -<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return metricsRegistry;</b>
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the metric registry
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public void destroy() {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void doFilter(ServletRequest request,
    -&nbsp;                         ServletResponse response,
    -&nbsp;                         FilterChain chain) throws IOException, ServletException {
    -<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    -&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    -<b class="nc">&nbsp;        activeRequests.inc();</b>
    -<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    -<b class="nc">&nbsp;        boolean error = false;</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    -<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    -<b class="nc">&nbsp;            error = true;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                if (error) {</b>
    -<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void markMeterForStatusCode(int status) {
    -<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    -<b class="nc">&nbsp;        if (metric != null) {</b>
    -<b class="nc">&nbsp;            metric.mark();</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            otherMeter.mark();</b>
    -&nbsp;        }
    +&nbsp;    public void start() {
    +<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    +<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    +<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    +<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    +<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    +<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    +<b class="fc">&nbsp;        super.start();</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    -&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    -<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    -&nbsp;
    -&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    -<b class="nc">&nbsp;            super(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc, String msg) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void setStatus(int sc) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;        public void setStatus(int sc, String sm) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc, sm);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int getStatus() {
    -<b class="nc">&nbsp;            return httpStatus;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class AsyncResultListener implements AsyncListener {
    -&nbsp;        private Timer.Context context;
    -<b class="nc">&nbsp;        private boolean done = false;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    -<b class="nc">&nbsp;            this.context = context;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            if (!done) {</b>
    -<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            errorsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    +&nbsp;    @Override
    +&nbsp;    protected void append(ILoggingEvent event) {
    +<b class="fc">&nbsp;        all.mark();</b>
    +<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    +&nbsp;            case Level.TRACE_INT:
    +<b class="fc">&nbsp;                trace.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.DEBUG_INT:
    +<b class="fc">&nbsp;                debug.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.INFO_INT:
    +<b class="fc">&nbsp;                info.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.WARN_INT:
    +<b class="fc">&nbsp;                warn.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.ERROR_INT:
    +<b class="fc">&nbsp;                error.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            default:
    +&nbsp;                break;
     &nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -&nbsp;
    -<b class="nc">&nbsp;        }</b>
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -381,7 +189,7 @@ <h1>Coverage Summary for Class: AbstractInstrumentedFilter (com.codahale.metrics
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index.html
    index 3ccf4748a8..b822081e81 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    +com.codahale.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    12.5%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.8%
    +    3.5%
       </span>
       <span class="absValue">
    -    (211/261)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -83,120 +95,51 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    62.5%
    +    0%
       </span>
       <span class="absValue">
    -    (10/16)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    84.3%
    +    0%
       </span>
       <span class="absValue">
    -    (59/70)
    +    (0/18)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    0%
       </span>
       <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    +    (0/73)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,23 +150,24 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    10%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (1/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -234,18 +178,19 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (2/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    66.7%
       </span>
       <span class="absValue">
    -    (13/16)
    +    (2/3)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
    index 7468974fbf..6596bf53c6 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    +com.codahale.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    12.5%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.8%
    +    3.5%
       </span>
       <span class="absValue">
    -    (211/261)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -82,13 +94,17 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +115,24 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (1/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    71.6%
    +    10%
       </span>
       <span class="absValue">
    -    (53/74)
    +    (1/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,126 +143,54 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    +    66.7%
       </span>
       <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    +    (2/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    62.5%
    +    66.7%
       </span>
       <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    0%
       </span>
       <span class="absValue">
    -    (13/16)
    +    (0/18)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    0%
       </span>
       <span class="absValue">
    -    (13/16)
    +    (0/73)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
    index daec115e34..4c6cd88fc9 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    +com.codahale.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    12.5%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.8%
    +    3.5%
       </span>
       <span class="absValue">
    -    (211/261)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -82,121 +94,52 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    0%
       </span>
       <span class="absValue">
    -    (13/16)
    +    (0/18)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    +    (0/73)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,23 +150,24 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (2/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    65.6%
    +    66.7%
       </span>
       <span class="absValue">
    -    (21/32)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -234,18 +178,19 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (1/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    71.6%
    +    10%
       </span>
       <span class="absValue">
    -    (53/74)
    +    (1/10)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS.html
    index f3e8ca5a48..c3776f4c37 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    +com.codahale.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    12.5%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.8%
    +    3.5%
       </span>
       <span class="absValue">
    -    (211/261)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -83,120 +95,51 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    65.6%
    +    0%
       </span>
       <span class="absValue">
    -    (21/32)
    +    (0/18)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    0%
       </span>
       <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    +    (0/73)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,23 +150,24 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    10%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (1/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -234,18 +178,19 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (2/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    66.7%
       </span>
       <span class="absValue">
    -    (13/16)
    +    (2/3)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
    index b0072c90fb..3ab7214cc4 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    +com.codahale.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    12.5%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.8%
    +    3.5%
       </span>
       <span class="absValue">
    -    (211/261)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -83,39 +95,16 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,50 +115,24 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    +    66.7%
       </span>
       <span class="absValue">
    -    (13/16)
    +    (2/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    93.5%
    +    66.7%
       </span>
       <span class="absValue">
    -    (58/62)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -180,72 +143,54 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (1/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    65.6%
    +    10%
       </span>
       <span class="absValue">
    -    (21/32)
    +    (1/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    +    0%
       </span>
       <span class="absValue">
    -    (1/2)
    +    (0/18)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62.5%
    +    0%
       </span>
       <span class="absValue">
    -    (10/16)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    84.3%
    +    0%
       </span>
       <span class="absValue">
    -    (59/70)
    +    (0/73)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE.html
    index 3871c1e1d1..1d0c36632f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    +com.codahale.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    12.5%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.8%
    +    3.5%
       </span>
       <span class="absValue">
    -    (211/261)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -82,67 +94,52 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat sortedAsc
     ">
       <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    65.6%
    +    0%
       </span>
       <span class="absValue">
    -    (21/32)
    +    (0/18)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    +    (0/73)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,77 +150,24 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    +    33.3%
       </span>
       <span class="absValue">
    -    (59/70)
    +    (1/3)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    10%
       </span>
       <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    +    (1/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -234,18 +178,19 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (2/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (2/3)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
    index 83dc142a1e..bc2f727b53 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    +com.codahale.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    12.5%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.8%
    +    3.5%
       </span>
       <span class="absValue">
    -    (211/261)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -82,13 +94,17 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat sortedDesc
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,77 +115,24 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    +    66.7%
       </span>
       <span class="absValue">
    -    (58/62)
    +    (2/3)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    50%
    +    66.7%
       </span>
       <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -180,72 +143,54 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    10%
       </span>
       <span class="absValue">
    -    (13/16)
    +    (1/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.6%
    +    0%
       </span>
       <span class="absValue">
    -    (53/74)
    +    (0/18)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    65.6%
    +    0%
       </span>
       <span class="absValue">
    -    (21/32)
    +    (0/73)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD.html
    index 19d27f55ab..625df6f68d 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    +com.codahale.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    12.5%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.8%
    +    3.5%
       </span>
       <span class="absValue">
    -    (211/261)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -83,120 +95,51 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
       <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.6%
    +    0%
       </span>
       <span class="absValue">
    -    (53/74)
    +    (0/18)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    +    (0/73)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,23 +150,24 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    10%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (1/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -234,18 +178,19 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (2/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    66.7%
       </span>
       <span class="absValue">
    -    (13/16)
    +    (2/3)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
    index 9d05a78705..5f5cfd4864 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    +com.codahale.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    12.5%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.8%
    +    3.5%
       </span>
       <span class="absValue">
    -    (211/261)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -83,66 +95,16 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,23 +115,24 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (2/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    65.6%
    +    66.7%
       </span>
       <span class="absValue">
    -    (21/32)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -180,72 +143,54 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (1/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    71.6%
    +    10%
       </span>
       <span class="absValue">
    -    (53/74)
    +    (1/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    +    0%
       </span>
       <span class="absValue">
    -    (1/2)
    +    (0/18)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62.5%
    +    0%
       </span>
       <span class="absValue">
    -    (10/16)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    84.3%
    +    0%
       </span>
       <span class="absValue">
    -    (59/70)
    +    (0/73)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
    index 2557fe869e..f1d12b593d 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    +  <title>Coverage Report > com.codahale.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    +com.codahale.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    +    <td class="name">com.codahale.metrics.servlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    12.5%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.8%
    +    3.5%
       </span>
       <span class="absValue">
    -    (211/261)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -83,12 +95,16 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +115,24 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (2/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    66.7%
       </span>
       <span class="absValue">
    -    (13/16)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,126 +143,54 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    +    33.3%
       </span>
       <span class="absValue">
    -    (58/62)
    +    (1/3)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    50%
    +    10%
       </span>
       <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    +    (1/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    65.6%
    +    0%
       </span>
       <span class="absValue">
    -    (21/32)
    +    (0/18)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.6%
    +    0%
       </span>
       <span class="absValue">
    -    (53/74)
    +    (0/73)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-1.html
    index 8e0b107152..36e15c3f00 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AdminServlet</title>
    +  <title>Coverage Report > AbstractInstrumentedFilter</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,21 +19,22 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    +    <a href="../index.html">com.codahale.metrics.servlet</a>
     </div>
     
    -<h1>Coverage Summary for Class: AdminServlet (com.codahale.metrics.servlets)</h1>
    +<h1>Coverage Summary for Class: AbstractInstrumentedFilter (com.codahale.metrics.servlet)</h1>
     
     <table class="coverageStats">
    +
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
     ">
    -  Class, %
    +  Method, %
     </th>
     <th class="coverageStat 
     ">
    -  Method, %
    +  Branch, %
     </th>
     <th class="coverageStat 
     ">
    @@ -41,33 +42,97 @@ <h1>Coverage Summary for Class: AdminServlet (com.codahale.metrics.servlets)</h1
     </th>
     </tr>
     <tr>
    -  <td class="name">AdminServlet</td>
    +  <td class="name">AbstractInstrumentedFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/45)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/18)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.6%
    +    0%
       </span>
       <span class="absValue">
    -    (53/74)
    +    (0/73)
       </span>
     </td>
     </tr>
    -
     </table>
     
     <br/>
    @@ -75,193 +140,222 @@ <h1>Coverage Summary for Class: AdminServlet (com.codahale.metrics.servlets)</h1
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
     &nbsp;
    -&nbsp;import javax.servlet.ServletConfig;
    -&nbsp;import javax.servlet.ServletContext;
    +&nbsp;import javax.servlet.AsyncEvent;
    +&nbsp;import javax.servlet.AsyncListener;
    +&nbsp;import javax.servlet.Filter;
    +&nbsp;import javax.servlet.FilterChain;
    +&nbsp;import javax.servlet.FilterConfig;
     &nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.ServletRequest;
    +&nbsp;import javax.servlet.ServletResponse;
     &nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import javax.servlet.http.HttpServletResponseWrapper;
     &nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.text.MessageFormat;
    -&nbsp;
    -<b class="fc">&nbsp;public class AdminServlet extends HttpServlet {</b>
    -&nbsp;    public static final String DEFAULT_HEALTHCHECK_URI = &quot;/healthcheck&quot;;
    -&nbsp;    public static final String DEFAULT_METRICS_URI = &quot;/metrics&quot;;
    -&nbsp;    public static final String DEFAULT_PING_URI = &quot;/ping&quot;;
    -&nbsp;    public static final String DEFAULT_THREADS_URI = &quot;/threads&quot;;
    -&nbsp;    public static final String DEFAULT_CPU_PROFILE_URI = &quot;/pprof&quot;;
    -&nbsp;
    -&nbsp;    public static final String METRICS_ENABLED_PARAM_KEY = &quot;metrics-enabled&quot;;
    -&nbsp;    public static final String METRICS_URI_PARAM_KEY = &quot;metrics-uri&quot;;
    -&nbsp;    public static final String PING_ENABLED_PARAM_KEY = &quot;ping-enabled&quot;;
    -&nbsp;    public static final String PING_URI_PARAM_KEY = &quot;ping-uri&quot;;
    -&nbsp;    public static final String THREADS_ENABLED_PARAM_KEY = &quot;threads-enabled&quot;;
    -&nbsp;    public static final String THREADS_URI_PARAM_KEY = &quot;threads-uri&quot;;
    -&nbsp;    public static final String HEALTHCHECK_ENABLED_PARAM_KEY = &quot;healthcheck-enabled&quot;;
    -&nbsp;    public static final String HEALTHCHECK_URI_PARAM_KEY = &quot;healthcheck-uri&quot;;
    -&nbsp;    public static final String SERVICE_NAME_PARAM_KEY = &quot;service-name&quot;;
    -&nbsp;    public static final String CPU_PROFILE_ENABLED_PARAM_KEY = &quot;cpu-profile-enabled&quot;;
    -&nbsp;    public static final String CPU_PROFILE_URI_PARAM_KEY = &quot;cpu-profile-uri&quot;;
    -&nbsp;
    -&nbsp;    private static final String BASE_TEMPLATE =
    -&nbsp;            &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot;%n&quot; +
    -&nbsp;                    &quot;        \&quot;http://www.w3.org/TR/html4/loose.dtd\&quot;&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;html&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;head&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;title&gt;Metrics{10}&lt;/title&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/head&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;body&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;h1&gt;Operational Menu{10}&lt;/h1&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;ul&gt;%n&quot; +
    -&nbsp;                    &quot;%s&quot; +
    -&nbsp;                    &quot;  &lt;/ul&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/body&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/html&gt;&quot;;
    -&nbsp;    private static final String METRICS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{0}{1}?pretty=true\&quot;&gt;Metrics&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;    private static final String PING_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{2}{3}\&quot;&gt;Ping&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String THREADS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{4}{5}\&quot;&gt;Threads&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String HEALTHCHECK_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{6}{7}?pretty=true\&quot;&gt;Healthcheck&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String CPU_PROFILE_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}\&quot;&gt;CPU Profile&lt;/a&gt;&lt;/li&gt;%n&quot; +
    -&nbsp;            &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}?state=blocked\&quot;&gt;CPU Contention&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;
    -&nbsp;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/html&quot;;
    -&nbsp;    private static final long serialVersionUID = -2850794040708785318L;
    -&nbsp;
    -&nbsp;    private transient HealthCheckServlet healthCheckServlet;
    -&nbsp;    private transient MetricsServlet metricsServlet;
    -&nbsp;    private transient PingServlet pingServlet;
    -&nbsp;    private transient ThreadDumpServlet threadDumpServlet;
    -&nbsp;    private transient CpuProfileServlet cpuProfileServlet;
    -&nbsp;    private transient boolean metricsEnabled;
    -&nbsp;    private transient String metricsUri;
    -&nbsp;    private transient boolean pingEnabled;
    -&nbsp;    private transient String pingUri;
    -&nbsp;    private transient boolean threadsEnabled;
    -&nbsp;    private transient String threadsUri;
    -&nbsp;    private transient boolean healthcheckEnabled;
    -&nbsp;    private transient String healthcheckUri;
    -&nbsp;    private transient boolean cpuProfileEnabled;
    -&nbsp;    private transient String cpuProfileUri;
    -&nbsp;    private transient String serviceName;
    -&nbsp;    private transient String pageContentTemplate;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Map.Entry;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
     &nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        final StringBuilder servletLinks = new StringBuilder();</b>
    +&nbsp;/**
    +&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    +&nbsp; * codes being returned.
    +&nbsp; */
    +<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    +&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
     &nbsp;
    -<b class="fc">&nbsp;        this.metricsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.metricsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(METRICS_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.metricsServlet = new MetricsServlet();</b>
    -<b class="fc">&nbsp;        metricsServlet.init(config);</b>
    +&nbsp;    private final String otherMetricName;
    +&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    +&nbsp;    private final String registryAttribute;
     &nbsp;
    -<b class="fc">&nbsp;        this.pingEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.pingEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(PING_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.pingServlet = new PingServlet();</b>
    -<b class="fc">&nbsp;        pingServlet.init(config);</b>
    +&nbsp;    // initialized after call of init method
    +&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    +&nbsp;    private Meter otherMeter;
    +&nbsp;    private Meter timeoutsMeter;
    +&nbsp;    private Meter errorsMeter;
    +&nbsp;    private Counter activeRequests;
    +&nbsp;    private Timer requestTimer;
     &nbsp;
    -<b class="fc">&nbsp;        this.threadsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.threadsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(THREADS_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.threadDumpServlet = new ThreadDumpServlet();</b>
    -<b class="fc">&nbsp;        threadDumpServlet.init(config);</b>
     &nbsp;
    -<b class="fc">&nbsp;        this.healthcheckEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.healthcheckEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(HEALTHCHECK_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.healthCheckServlet = new HealthCheckServlet();</b>
    -<b class="fc">&nbsp;        healthCheckServlet.init(config);</b>
    +&nbsp;    /**
    +&nbsp;     * Creates a new instance of the filter.
    +&nbsp;     *
    +&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    +&nbsp;     *                               servlet context
    +&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    +&nbsp;     *                               interested in.
    +&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    +&nbsp;     */
    +&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    +&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    +<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    +<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    +<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    +<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    +<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
     &nbsp;
    -<b class="fc">&nbsp;        this.cpuProfileEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.cpuProfileEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(CPU_PROFILE_LINK);</b>
    +<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    +<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    +<b class="nc">&nbsp;            metricName = getClass().getName();</b>
     &nbsp;        }
    -<b class="fc">&nbsp;        this.cpuProfileServlet = new CpuProfileServlet();</b>
    -<b class="fc">&nbsp;        cpuProfileServlet.init(config);</b>
     &nbsp;
    -<b class="fc">&nbsp;        pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));</b>
    +<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    +<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    +<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    +<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    +<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    +<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    +<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    +<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
     &nbsp;
    -<b class="fc">&nbsp;        this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);</b>
    -<b class="fc">&nbsp;        this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);</b>
    -<b class="fc">&nbsp;        this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);</b>
    -<b class="fc">&nbsp;        this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);</b>
    -<b class="fc">&nbsp;        this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);</b>
    -<b class="fc">&nbsp;        this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String path = req.getContextPath() + req.getServletPath();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,</b>
    -&nbsp;                    threadsUri, path, healthcheckUri, path, cpuProfileUri,
    -<b class="fc">&nbsp;                    serviceName == null ? &quot;&quot; : &quot; (&quot; + serviceName + &quot;)&quot;));</b>
    -<b class="fc">&nbsp;        }</b>
    +&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    +&nbsp;        final MetricRegistry metricsRegistry;
    +&nbsp;
    +<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    +<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    +<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        return metricsRegistry;</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String uri = req.getPathInfo();</b>
    -<b class="fc">&nbsp;        if (uri == null || uri.equals(&quot;/&quot;)) {</b>
    -<b class="fc">&nbsp;            super.service(req, resp);</b>
    -<b class="nc">&nbsp;        } else if (uri.equals(healthcheckUri)) {</b>
    -<b class="nc">&nbsp;            if (healthcheckEnabled) {</b>
    -<b class="nc">&nbsp;                healthCheckServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.startsWith(metricsUri)) {</b>
    -<b class="nc">&nbsp;            if (metricsEnabled) {</b>
    -<b class="nc">&nbsp;                metricsServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(pingUri)) {</b>
    -<b class="nc">&nbsp;            if (pingEnabled) {</b>
    -<b class="nc">&nbsp;                pingServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(threadsUri)) {</b>
    -<b class="nc">&nbsp;            if (threadsEnabled) {</b>
    -<b class="nc">&nbsp;                threadDumpServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(cpuProfileUri)) {</b>
    -<b class="nc">&nbsp;            if (cpuProfileEnabled) {</b>
    -<b class="nc">&nbsp;                cpuProfileServlet.service(req, resp);</b>
    +&nbsp;    public void destroy() {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void doFilter(ServletRequest request,
    +&nbsp;                         ServletResponse response,
    +&nbsp;                         FilterChain chain) throws IOException, ServletException {
    +<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    +&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    +<b class="nc">&nbsp;        activeRequests.inc();</b>
    +<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    +<b class="nc">&nbsp;        boolean error = false;</b>
    +&nbsp;        try {
    +<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    +<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    +<b class="nc">&nbsp;            error = true;</b>
    +<b class="nc">&nbsp;            throw e;</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    +<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
     &nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +<b class="nc">&nbsp;                context.stop();</b>
    +<b class="nc">&nbsp;                activeRequests.dec();</b>
    +<b class="nc">&nbsp;                if (error) {</b>
    +<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    +&nbsp;                } else {
    +<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    +&nbsp;                }
     &nbsp;            }
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void markMeterForStatusCode(int status) {
    +<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    +<b class="nc">&nbsp;        if (metric != null) {</b>
    +<b class="nc">&nbsp;            metric.mark();</b>
     &nbsp;        } else {
    -<b class="nc">&nbsp;            resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +<b class="nc">&nbsp;            otherMeter.mark();</b>
     &nbsp;        }
     &nbsp;    }
     &nbsp;
    -&nbsp;    private static String getParam(String initParam, String defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : initParam;</b>
    +&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    +&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    +<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    +&nbsp;
    +&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    +<b class="nc">&nbsp;            super(response);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void sendError(int sc) throws IOException {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.sendError(sc);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void sendError(int sc, String msg) throws IOException {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void setStatus(int sc) {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.setStatus(sc);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        @SuppressWarnings(&quot;deprecation&quot;)
    +&nbsp;        public void setStatus(int sc, String sm) {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.setStatus(sc, sm);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public int getStatus() {
    +<b class="nc">&nbsp;            return httpStatus;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class AsyncResultListener implements AsyncListener {
    +&nbsp;        private Timer.Context context;
    +<b class="nc">&nbsp;        private boolean done = false;</b>
    +&nbsp;
    +<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    +<b class="nc">&nbsp;            this.context = context;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            if (!done) {</b>
    +<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    +<b class="nc">&nbsp;                context.stop();</b>
    +<b class="nc">&nbsp;                activeRequests.dec();</b>
    +<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            context.stop();</b>
    +<b class="nc">&nbsp;            activeRequests.dec();</b>
    +<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    +<b class="nc">&nbsp;            done = true;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            context.stop();</b>
    +<b class="nc">&nbsp;            activeRequests.dec();</b>
    +<b class="nc">&nbsp;            errorsMeter.mark();</b>
    +<b class="nc">&nbsp;            done = true;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +&nbsp;
    +<b class="nc">&nbsp;        }</b>
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -287,7 +381,7 @@ <h1>Coverage Summary for Class: AdminServlet (com.codahale.metrics.servlets)</h1
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-2.html
    index abbf9e8ab9..b8e455a604 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-2.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CpuProfileServlet</title>
    +  <title>Coverage Report > InstrumentedFilter</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    +    <a href="../index.html">com.codahale.metrics.servlet</a>
     </div>
     
    -<h1>Coverage Summary for Class: CpuProfileServlet (com.codahale.metrics.servlets)</h1>
    +<h1>Coverage Summary for Class: InstrumentedFilter (com.codahale.metrics.servlet)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -41,7 +41,7 @@ <h1>Coverage Summary for Class: CpuProfileServlet (com.codahale.metrics.servlets
     </th>
     </tr>
     <tr>
    -  <td class="name">CpuProfileServlet</td>
    +  <td class="name">InstrumentedFilter</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -52,18 +52,18 @@ <h1>Coverage Summary for Class: CpuProfileServlet (com.codahale.metrics.servlets
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (1/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    65.6%
    +    10%
       </span>
       <span class="absValue">
    -    (21/32)
    +    (1/10)
       </span>
     </td>
     </tr>
    @@ -75,83 +75,52 @@ <h1>Coverage Summary for Class: CpuProfileServlet (com.codahale.metrics.servlets
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.concurrent.locks.Lock;
    -&nbsp;import java.util.concurrent.locks.ReentrantLock;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
     &nbsp;
    -&nbsp;import com.papertrail.profiler.CpuProfile;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Map;
     &nbsp;
     &nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a &lt;a href=&quot;https://github.com/gperftools/gperftools&quot;&gt;pprof&lt;/a&gt; parseable response.
    +&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    +&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    +&nbsp; * &lt;pre&gt;{@code
    +&nbsp; * &lt;filter&gt;
    +&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    +&nbsp; *     &lt;filter-class&gt;com.codahale.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    +&nbsp; * &lt;/filter&gt;
    +&nbsp; * &lt;filter-mapping&gt;
    +&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    +&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    +&nbsp; * &lt;/filter-mapping&gt;
    +&nbsp; * }&lt;/pre&gt;
     &nbsp; */
    -<b class="fc">&nbsp;public class CpuProfileServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = -668666696530287501L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;pprof/raw&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -<b class="fc">&nbsp;    private final Lock lock = new ReentrantLock();</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -&nbsp;
    -<b class="fc">&nbsp;        int duration = 10;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;duration&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                duration = Integer.parseInt(req.getParameter(&quot;duration&quot;));</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                duration = 10;</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        int frequency = 100;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;frequency&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                frequency = Integer.parseInt(req.getParameter(&quot;frequency&quot;));</b>
    -<b class="nc">&nbsp;                frequency = Math.min(Math.max(frequency, 1), 1000);</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                frequency = 100;</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    +&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    +<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
     &nbsp;
    -&nbsp;        final Thread.State state;
    -<b class="fc">&nbsp;        if (&quot;blocked&quot;.equalsIgnoreCase(req.getParameter(&quot;state&quot;))) {</b>
    -<b class="nc">&nbsp;            state = Thread.State.BLOCKED;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            state = Thread.State.RUNNABLE;</b>
    -&nbsp;        }
    +&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    +&nbsp;    private static final int OK = 200;
    +&nbsp;    private static final int CREATED = 201;
    +&nbsp;    private static final int NO_CONTENT = 204;
    +&nbsp;    private static final int BAD_REQUEST = 400;
    +&nbsp;    private static final int NOT_FOUND = 404;
    +&nbsp;    private static final int SERVER_ERROR = 500;
     &nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            doProfile(output, duration, frequency, state);</b>
    -<b class="fc">&nbsp;        }</b>
    +&nbsp;    /**
    +&nbsp;     * Creates a new instance of the filter.
    +&nbsp;     */
    +&nbsp;    public InstrumentedFilter() {
    +<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
    -<b class="fc">&nbsp;        if (lock.tryLock()) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),</b>
    -&nbsp;                        frequency, state);
    -<b class="fc">&nbsp;                if (profile == null) {</b>
    -<b class="nc">&nbsp;                    throw new RuntimeException(&quot;could not create CpuProfile&quot;);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                profile.writeGoogleProfile(out);</b>
    -&nbsp;                return;
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                lock.unlock();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        throw new RuntimeException(&quot;Only one profile request may be active at a time&quot;);</b>
    +&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    +<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    +<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -177,7 +146,7 @@ <h1>Coverage Summary for Class: CpuProfileServlet (com.codahale.metrics.servlets
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-3.html
    index d55e041d62..602e426bbb 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-3.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-3.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckServlet</title>
    +  <title>Coverage Report > InstrumentedFilterContextListener</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,16 +19,19 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    +    <a href="../index.html">com.codahale.metrics.servlet</a>
     </div>
     
    -<h1>Coverage Summary for Class: HealthCheckServlet (com.codahale.metrics.servlets)</h1>
    +<h1>Coverage Summary for Class: InstrumentedFilterContextListener (com.codahale.metrics.servlet)</h1>
     
     <table class="coverageStats">
    -
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
     ">
       Method, %
     </th>
    @@ -38,62 +41,33 @@ <h1>Coverage Summary for Class: HealthCheckServlet (com.codahale.metrics.servlet
     </th>
     </tr>
     <tr>
    -  <td class="name">HealthCheckServlet</td>
    +  <td class="name">InstrumentedFilterContextListener</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    +    (1/1)
       </span>
     </td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    62.5%
    +    66.7%
       </span>
       <span class="absValue">
    -    (10/16)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    84.3%
    +    66.7%
       </span>
       <span class="absValue">
    -    (59/70)
    +    (2/3)
       </span>
     </td>
     </tr>
    +
     </table>
     
     <br/>
    @@ -101,200 +75,32 @@ <h1>Coverage Summary for Class: HealthCheckServlet (com.codahale.metrics.servlet
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
     &nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.codahale.metrics.health.HealthCheckFilter;
    -&nbsp;import com.codahale.metrics.health.HealthCheckRegistry;
    -&nbsp;import com.codahale.metrics.json.HealthCheckModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
     &nbsp;
    -&nbsp;import javax.servlet.ServletConfig;
    -&nbsp;import javax.servlet.ServletContext;
     &nbsp;import javax.servlet.ServletContextEvent;
     &nbsp;import javax.servlet.ServletContextListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;
    -&nbsp;public class HealthCheckServlet extends HttpServlet {
    -<b class="nc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract HealthCheckRegistry getHealthCheckRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
    -&nbsp;         * if the health checks should be run in the servlet worker thread.
    -&nbsp;         */
    -&nbsp;        protected ExecutorService getExecutorService() {
    -&nbsp;            // don&#39;t use a thread pool by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
    -&nbsp;         * or {@link HealthCheckFilter#ALL} if the default should be used.
    -&nbsp;         */
    -&nbsp;        protected HealthCheckFilter getHealthCheckFilter() {
    -<b class="nc">&nbsp;            return HealthCheckFilter.ALL;</b>
    -&nbsp;        }
     &nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ObjectMapper} that shall be used to render health checks,
    -&nbsp;         * or {@code null} if the default object mapper should be used.
    -&nbsp;         */
    -&nbsp;        protected ObjectMapper getObjectMapper() {
    -&nbsp;            // don&#39;t use an object mapper by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="nc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + &quot;.executor&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + &quot;.healthCheckFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + &quot;.mapper&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + &quot;.httpStatusIndicator&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -8432996484889177321L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;    private static final String HTTP_STATUS_INDICATOR_PARAM = &quot;httpStatusIndicator&quot;;
    -&nbsp;
    -&nbsp;    private transient HealthCheckRegistry registry;
    -&nbsp;    private transient ExecutorService executorService;
    -&nbsp;    private transient HealthCheckFilter filter;
    -&nbsp;    private transient ObjectMapper mapper;
    -&nbsp;    private transient boolean httpStatusIndicator;
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet(HealthCheckRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof HealthCheckRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (HealthCheckRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a HealthCheckRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);</b>
    -<b class="fc">&nbsp;        if (executorAttr instanceof ExecutorService) {</b>
    -<b class="fc">&nbsp;            this.executorService = (ExecutorService) executorAttr;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);</b>
    -<b class="fc">&nbsp;        if (filterAttr instanceof HealthCheckFilter) {</b>
    -<b class="fc">&nbsp;            filter = (HealthCheckFilter) filterAttr;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = HealthCheckFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);</b>
    -<b class="fc">&nbsp;        if (mapperAttr instanceof ObjectMapper) {</b>
    -<b class="fc">&nbsp;            this.mapper = (ObjectMapper) mapperAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.mapper = new ObjectMapper();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.mapper.registerModule(new HealthCheckModule());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);</b>
    -<b class="fc">&nbsp;        if (httpStatusIndicatorAttr instanceof Boolean) {</b>
    -<b class="nc">&nbsp;            this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.httpStatusIndicator = true;</b>
    -&nbsp;        }
    -&nbsp;    }
    +&nbsp;/**
    +&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    +&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    +&nbsp; * application.
    +&nbsp; */
    +<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    +&nbsp;    /**
    +&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    +&nbsp;     */
    +&nbsp;    protected abstract MetricRegistry getMetricRegistry();
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public void destroy() {
    -<b class="fc">&nbsp;        super.destroy();</b>
    -<b class="fc">&nbsp;        registry.shutdown();</b>
    +&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    +<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = runHealthChecks();</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (results.isEmpty()) {</b>
    -<b class="fc">&nbsp;            resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);</b>
    -<b class="fc">&nbsp;            final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);</b>
    -<b class="fc">&nbsp;            final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;</b>
    -<b class="fc">&nbsp;            if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {</b>
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            getWriter(req).writeValue(output, results);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    -<b class="fc">&nbsp;        if (executorService == null) {</b>
    -<b class="nc">&nbsp;            return registry.runHealthChecks(filter);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return registry.runHealthChecks(executorService, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static boolean isAllHealthy(Map&lt;String, HealthCheck.Result&gt; results) {
    -<b class="fc">&nbsp;        for (HealthCheck.Result result : results.values()) {</b>
    -<b class="fc">&nbsp;            if (!result.isHealthy()) {</b>
    -<b class="fc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    // visible for testing
    -&nbsp;    ObjectMapper getMapper() {
    -<b class="fc">&nbsp;        return mapper;</b>
    -&nbsp;    }
    +&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    +<b class="nc">&nbsp;    }</b>
     &nbsp;}
     </code>
     </pre>
    @@ -319,7 +125,7 @@ <h1>Coverage Summary for Class: HealthCheckServlet (com.codahale.metrics.servlet
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index.html
    index 74375966aa..7d87d2ff87 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    +com.codahale.metrics.servlets</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +    <td class="name">com.codahale.metrics.servlets</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    87.5%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    80.4%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (37/46)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    80.8%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (211/261)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +99,153 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    81.2%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (13/16)
       </span>
     </td>
       </tr>
    @@ -137,7 +272,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
    index 2076307aaa..75710630c8 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    +com.codahale.metrics.servlets</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +    <td class="name">com.codahale.metrics.servlets</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    87.5%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    80.4%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (37/46)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    80.8%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (211/261)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +99,153 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    81.2%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (13/16)
       </span>
     </td>
       </tr>
    @@ -137,7 +272,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
    index 126195c890..a3cfbfdca1 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    +com.codahale.metrics.servlets</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +    <td class="name">com.codahale.metrics.servlets</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    87.5%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    80.4%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (37/46)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    80.8%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (211/261)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +99,153 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    71.6%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (53/74)
       </span>
     </td>
       </tr>
    @@ -137,7 +272,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS.html
    index 6b90c2bb30..6873f014c4 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    +com.codahale.metrics.servlets</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +    <td class="name">com.codahale.metrics.servlets</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    87.5%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    80.4%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (37/46)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    80.8%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (211/261)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +126,126 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    81.2%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (13/16)
       </span>
     </td>
       </tr>
    @@ -137,7 +272,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
    index dca0c0fe1e..dbd3faa7dd 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    +com.codahale.metrics.servlets</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +    <td class="name">com.codahale.metrics.servlets</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    87.5%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    80.4%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (37/46)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    80.8%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (211/261)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +99,153 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    84.3%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (59/70)
       </span>
     </td>
       </tr>
    @@ -137,7 +272,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE.html
    index 39fb37b461..8954e2bcbc 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    +com.codahale.metrics.servlets</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +    <td class="name">com.codahale.metrics.servlets</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    87.5%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    80.4%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (37/46)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    80.8%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (211/261)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +99,153 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -137,7 +272,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
    index f031f0420a..a918062efe 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    +com.codahale.metrics.servlets</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +    <td class="name">com.codahale.metrics.servlets</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    87.5%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    80.4%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (37/46)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    80.8%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (211/261)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +99,153 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    65.6%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (21/32)
       </span>
     </td>
       </tr>
    @@ -137,7 +272,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD.html
    index 6ff2ea69b8..0ea50348e0 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    +com.codahale.metrics.servlets</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +    <td class="name">com.codahale.metrics.servlets</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    87.5%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    80.4%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (37/46)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    80.8%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (211/261)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,61 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +153,99 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    81.2%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (13/16)
       </span>
     </td>
       </tr>
    @@ -137,7 +272,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
    index 5d31731592..c73b79a7c3 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    +com.codahale.metrics.servlets</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +    <td class="name">com.codahale.metrics.servlets</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    87.5%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    80.4%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (37/46)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    80.8%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (211/261)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +99,153 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    84.3%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (59/70)
       </span>
     </td>
       </tr>
    @@ -137,7 +272,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
    index b072ea9262..114e47f711 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    +  <title>Coverage Report > com.codahale.metrics.servlets</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    +com.codahale.metrics.servlets</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    +    <td class="name">com.codahale.metrics.servlets</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    87.5%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    80.4%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (37/46)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    80.8%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (211/261)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +99,153 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    71.6%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (53/74)
       </span>
     </td>
       </tr>
    @@ -137,7 +272,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-1.html
    index f632d8c5ce..201b294796 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsStatsCounter</title>
    +  <title>Coverage Report > AdminServlet</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.caffeine3</a>
    +    <a href="../index.html">com.codahale.metrics.servlets</a>
     </div>
     
    -<h1>Coverage Summary for Class: MetricsStatsCounter (io.dropwizard.metrics.caffeine3)</h1>
    +<h1>Coverage Summary for Class: AdminServlet (com.codahale.metrics.servlets)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -41,7 +41,7 @@ <h1>Coverage Summary for Class: MetricsStatsCounter (io.dropwizard.metrics.caffe
     </th>
     </tr>
     <tr>
    -  <td class="name">MetricsStatsCounter</td>
    +  <td class="name">AdminServlet</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -52,18 +52,18 @@ <h1>Coverage Summary for Class: MetricsStatsCounter (io.dropwizard.metrics.caffe
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    71.6%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (53/74)
       </span>
     </td>
     </tr>
    @@ -75,121 +75,194 @@ <h1>Coverage Summary for Class: MetricsStatsCounter (io.dropwizard.metrics.caffe
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;/*
    -&nbsp; * Copyright 2016 Ben Manes. All Rights Reserved.
    -&nbsp; *
    -&nbsp; * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    -&nbsp; * you may not use this file except in compliance with the License.
    -&nbsp; * You may obtain a copy of the License at
    -&nbsp; *
    -&nbsp; *     http://www.apache.org/licenses/LICENSE-2.0
    -&nbsp; *
    -&nbsp; * Unless required by applicable law or agreed to in writing, software
    -&nbsp; * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    -&nbsp; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -&nbsp; * See the License for the specific language governing permissions and
    -&nbsp; * limitations under the License.
    -&nbsp; */
    -&nbsp;package io.dropwizard.metrics.caffeine3;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;import java.util.EnumMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.github.benmanes.caffeine.cache.RemovalCause;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.CacheStats;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.StatsCounter;
    -&nbsp;import org.checkerframework.checker.index.qual.NonNegative;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link StatsCounter} instrumented with Dropwizard Metrics.
    -&nbsp; *
    -&nbsp; * @author ben.manes@gmail.com (Ben Manes)
    -&nbsp; * @author John Karp
    -&nbsp; */
    -&nbsp;public final class MetricsStatsCounter implements StatsCounter {
    -&nbsp;  private final Counter hitCount;
    -&nbsp;  private final Counter missCount;
    -&nbsp;  private final Timer loadSuccess;
    -&nbsp;  private final Timer loadFailure;
    -&nbsp;  private final Counter evictionWeight;
    -&nbsp;  private final EnumMap&lt;RemovalCause, Histogram&gt; evictionsWithCause;
    -&nbsp;
    -&nbsp;  // for implementing snapshot()
    -<b class="fc">&nbsp;  private final LongAdder totalLoadTime = new LongAdder();</b>
    -&nbsp;
    -&nbsp;  /**
    -&nbsp;   * Constructs an instance for use by a single cache.
    -&nbsp;   *
    -&nbsp;   * @param registry the registry of metric instances
    -&nbsp;   * @param metricsPrefix the prefix name for the metrics
    -&nbsp;   */
    -<b class="fc">&nbsp;  public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {</b>
    -<b class="fc">&nbsp;    requireNonNull(metricsPrefix);</b>
    -<b class="fc">&nbsp;    hitCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;hits&quot;));</b>
    -<b class="fc">&nbsp;    missCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;misses&quot;));</b>
    -<b class="fc">&nbsp;    loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-success&quot;));</b>
    -<b class="fc">&nbsp;    loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-failure&quot;));</b>
    -<b class="fc">&nbsp;    evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, &quot;evictions-weight&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    evictionsWithCause = new EnumMap&lt;&gt;(RemovalCause.class);</b>
    -<b class="fc">&nbsp;    for (RemovalCause cause : RemovalCause.values()) {</b>
    -<b class="fc">&nbsp;      evictionsWithCause.put(</b>
    -&nbsp;          cause,
    -<b class="fc">&nbsp;          registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;, cause.name())));</b>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +&nbsp;
    +&nbsp;import javax.servlet.ServletConfig;
    +&nbsp;import javax.servlet.ServletContext;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServlet;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;import java.text.MessageFormat;
    +&nbsp;
    +<b class="fc">&nbsp;public class AdminServlet extends HttpServlet {</b>
    +&nbsp;    public static final String DEFAULT_HEALTHCHECK_URI = &quot;/healthcheck&quot;;
    +&nbsp;    public static final String DEFAULT_METRICS_URI = &quot;/metrics&quot;;
    +&nbsp;    public static final String DEFAULT_PING_URI = &quot;/ping&quot;;
    +&nbsp;    public static final String DEFAULT_THREADS_URI = &quot;/threads&quot;;
    +&nbsp;    public static final String DEFAULT_CPU_PROFILE_URI = &quot;/pprof&quot;;
    +&nbsp;
    +&nbsp;    public static final String METRICS_ENABLED_PARAM_KEY = &quot;metrics-enabled&quot;;
    +&nbsp;    public static final String METRICS_URI_PARAM_KEY = &quot;metrics-uri&quot;;
    +&nbsp;    public static final String PING_ENABLED_PARAM_KEY = &quot;ping-enabled&quot;;
    +&nbsp;    public static final String PING_URI_PARAM_KEY = &quot;ping-uri&quot;;
    +&nbsp;    public static final String THREADS_ENABLED_PARAM_KEY = &quot;threads-enabled&quot;;
    +&nbsp;    public static final String THREADS_URI_PARAM_KEY = &quot;threads-uri&quot;;
    +&nbsp;    public static final String HEALTHCHECK_ENABLED_PARAM_KEY = &quot;healthcheck-enabled&quot;;
    +&nbsp;    public static final String HEALTHCHECK_URI_PARAM_KEY = &quot;healthcheck-uri&quot;;
    +&nbsp;    public static final String SERVICE_NAME_PARAM_KEY = &quot;service-name&quot;;
    +&nbsp;    public static final String CPU_PROFILE_ENABLED_PARAM_KEY = &quot;cpu-profile-enabled&quot;;
    +&nbsp;    public static final String CPU_PROFILE_URI_PARAM_KEY = &quot;cpu-profile-uri&quot;;
    +&nbsp;
    +&nbsp;    private static final String BASE_TEMPLATE =
    +&nbsp;            &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot;%n&quot; +
    +&nbsp;                    &quot;        \&quot;http://www.w3.org/TR/html4/loose.dtd\&quot;&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;html&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;head&gt;%n&quot; +
    +&nbsp;                    &quot;  &lt;title&gt;Metrics{10}&lt;/title&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;/head&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;body&gt;%n&quot; +
    +&nbsp;                    &quot;  &lt;h1&gt;Operational Menu{10}&lt;/h1&gt;%n&quot; +
    +&nbsp;                    &quot;  &lt;ul&gt;%n&quot; +
    +&nbsp;                    &quot;%s&quot; +
    +&nbsp;                    &quot;  &lt;/ul&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;/body&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;/html&gt;&quot;;
    +&nbsp;    private static final String METRICS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{0}{1}?pretty=true\&quot;&gt;Metrics&lt;/a&gt;&lt;/li&gt;%n&quot;;
    +&nbsp;    private static final String PING_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{2}{3}\&quot;&gt;Ping&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    +&nbsp;    private static final String THREADS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{4}{5}\&quot;&gt;Threads&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    +&nbsp;    private static final String HEALTHCHECK_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{6}{7}?pretty=true\&quot;&gt;Healthcheck&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    +&nbsp;    private static final String CPU_PROFILE_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}\&quot;&gt;CPU Profile&lt;/a&gt;&lt;/li&gt;%n&quot; +
    +&nbsp;            &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}?state=blocked\&quot;&gt;CPU Contention&lt;/a&gt;&lt;/li&gt;%n&quot;;
    +&nbsp;
    +&nbsp;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;text/html&quot;;
    +&nbsp;    private static final long serialVersionUID = -2850794040708785318L;
    +&nbsp;
    +&nbsp;    private transient HealthCheckServlet healthCheckServlet;
    +&nbsp;    private transient MetricsServlet metricsServlet;
    +&nbsp;    private transient PingServlet pingServlet;
    +&nbsp;    private transient ThreadDumpServlet threadDumpServlet;
    +&nbsp;    private transient CpuProfileServlet cpuProfileServlet;
    +&nbsp;    private transient boolean metricsEnabled;
    +&nbsp;    private transient String metricsUri;
    +&nbsp;    private transient boolean pingEnabled;
    +&nbsp;    private transient String pingUri;
    +&nbsp;    private transient boolean threadsEnabled;
    +&nbsp;    private transient String threadsUri;
    +&nbsp;    private transient boolean healthcheckEnabled;
    +&nbsp;    private transient String healthcheckUri;
    +&nbsp;    private transient boolean cpuProfileEnabled;
    +&nbsp;    private transient String cpuProfileUri;
    +&nbsp;    private transient String serviceName;
    +&nbsp;    private transient String pageContentTemplate;
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(ServletConfig config) throws ServletException {
    +<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    +<b class="fc">&nbsp;        final StringBuilder servletLinks = new StringBuilder();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.metricsEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.metricsEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(METRICS_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.metricsServlet = new MetricsServlet();</b>
    +<b class="fc">&nbsp;        metricsServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.pingEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.pingEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(PING_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.pingServlet = new PingServlet();</b>
    +<b class="fc">&nbsp;        pingServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.threadsEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.threadsEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(THREADS_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.threadDumpServlet = new ThreadDumpServlet();</b>
    +<b class="fc">&nbsp;        threadDumpServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.healthcheckEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.healthcheckEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(HEALTHCHECK_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.healthCheckServlet = new HealthCheckServlet();</b>
    +<b class="fc">&nbsp;        healthCheckServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.cpuProfileEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.cpuProfileEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(CPU_PROFILE_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.cpuProfileServlet = new CpuProfileServlet();</b>
    +<b class="fc">&nbsp;        cpuProfileServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);</b>
    +<b class="fc">&nbsp;        this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);</b>
    +<b class="fc">&nbsp;        this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);</b>
    +<b class="fc">&nbsp;        this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);</b>
    +<b class="fc">&nbsp;        this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);</b>
    +<b class="fc">&nbsp;        this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final String path = req.getContextPath() + req.getServletPath();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    +<b class="fc">&nbsp;            writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,</b>
    +&nbsp;                    threadsUri, path, healthcheckUri, path, cpuProfileUri,
    +<b class="fc">&nbsp;                    serviceName == null ? &quot;&quot; : &quot; (&quot; + serviceName + &quot;)&quot;));</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final String uri = req.getPathInfo();</b>
    +<b class="fc">&nbsp;        if (uri == null || uri.equals(&quot;/&quot;)) {</b>
    +<b class="fc">&nbsp;            super.service(req, resp);</b>
    +<b class="nc">&nbsp;        } else if (uri.equals(healthcheckUri)) {</b>
    +<b class="nc">&nbsp;            if (healthcheckEnabled) {</b>
    +<b class="nc">&nbsp;                healthCheckServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.startsWith(metricsUri)) {</b>
    +<b class="nc">&nbsp;            if (metricsEnabled) {</b>
    +<b class="nc">&nbsp;                metricsServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.equals(pingUri)) {</b>
    +<b class="nc">&nbsp;            if (pingEnabled) {</b>
    +<b class="nc">&nbsp;                pingServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.equals(threadsUri)) {</b>
    +<b class="nc">&nbsp;            if (threadsEnabled) {</b>
    +<b class="nc">&nbsp;                threadDumpServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.equals(cpuProfileUri)) {</b>
    +<b class="nc">&nbsp;            if (cpuProfileEnabled) {</b>
    +<b class="nc">&nbsp;                cpuProfileServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static String getParam(String initParam, String defaultValue) {
    +<b class="fc">&nbsp;        return initParam == null ? defaultValue : initParam;</b>
     &nbsp;    }
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordHits(int count) {
    -<b class="fc">&nbsp;    hitCount.inc(count);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordMisses(int count) {
    -<b class="fc">&nbsp;    missCount.inc(count);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadSuccess(long loadTime) {
    -<b class="fc">&nbsp;    loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadFailure(long loadTime) {
    -<b class="fc">&nbsp;    loadFailure.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordEviction(@NonNegative int weight, RemovalCause cause) {
    -<b class="fc">&nbsp;    evictionsWithCause.get(cause).update(weight);</b>
    -<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public CacheStats snapshot() {
    -<b class="fc">&nbsp;    return CacheStats.of(</b>
    -<b class="fc">&nbsp;        hitCount.getCount(),</b>
    -<b class="fc">&nbsp;        missCount.getCount(),</b>
    -<b class="fc">&nbsp;        loadSuccess.getCount(),</b>
    -<b class="fc">&nbsp;        loadFailure.getCount(),</b>
    -<b class="fc">&nbsp;        totalLoadTime.sum(),</b>
    -<b class="fc">&nbsp;        evictionsWithCause.values().stream().mapToLong(Histogram::getCount).sum(),</b>
    -<b class="fc">&nbsp;        evictionWeight.getCount());</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public String toString() {
    -<b class="nc">&nbsp;    return snapshot().toString();</b>
    -&nbsp;  }
     &nbsp;}
     </code>
     </pre>
    @@ -214,7 +287,7 @@ <h1>Coverage Summary for Class: MetricsStatsCounter (io.dropwizard.metrics.caffe
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-2.html
    new file mode 100644
    index 0000000000..e59bd1ac6e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-2.html
    @@ -0,0 +1,183 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CpuProfileServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CpuProfileServlet (com.codahale.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CpuProfileServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.time.Duration;
    +&nbsp;import java.util.concurrent.locks.Lock;
    +&nbsp;import java.util.concurrent.locks.ReentrantLock;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServlet;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import com.papertrail.profiler.CpuProfile;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An HTTP servlets which outputs a &lt;a href=&quot;https://github.com/gperftools/gperftools&quot;&gt;pprof&lt;/a&gt; parseable response.
    +&nbsp; */
    +<b class="fc">&nbsp;public class CpuProfileServlet extends HttpServlet {</b>
    +&nbsp;    private static final long serialVersionUID = -668666696530287501L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;pprof/raw&quot;;
    +&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    +&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    +<b class="fc">&nbsp;    private final Lock lock = new ReentrantLock();</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +&nbsp;
    +<b class="fc">&nbsp;        int duration = 10;</b>
    +<b class="fc">&nbsp;        if (req.getParameter(&quot;duration&quot;) != null) {</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                duration = Integer.parseInt(req.getParameter(&quot;duration&quot;));</b>
    +<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    +<b class="nc">&nbsp;                duration = 10;</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        int frequency = 100;</b>
    +<b class="fc">&nbsp;        if (req.getParameter(&quot;frequency&quot;) != null) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                frequency = Integer.parseInt(req.getParameter(&quot;frequency&quot;));</b>
    +<b class="nc">&nbsp;                frequency = Math.min(Math.max(frequency, 1), 1000);</b>
    +<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    +<b class="nc">&nbsp;                frequency = 100;</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        final Thread.State state;
    +<b class="fc">&nbsp;        if (&quot;blocked&quot;.equalsIgnoreCase(req.getParameter(&quot;state&quot;))) {</b>
    +<b class="nc">&nbsp;            state = Thread.State.BLOCKED;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            state = Thread.State.RUNNABLE;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            doProfile(output, duration, frequency, state);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
    +<b class="fc">&nbsp;        if (lock.tryLock()) {</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),</b>
    +&nbsp;                        frequency, state);
    +<b class="fc">&nbsp;                if (profile == null) {</b>
    +<b class="nc">&nbsp;                    throw new RuntimeException(&quot;could not create CpuProfile&quot;);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                profile.writeGoogleProfile(out);</b>
    +&nbsp;                return;
    +&nbsp;            } finally {
    +<b class="fc">&nbsp;                lock.unlock();</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        throw new RuntimeException(&quot;Only one profile request may be active at a time&quot;);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-3.html
    new file mode 100644
    index 0000000000..83323fc4d1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-3.html
    @@ -0,0 +1,325 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheckServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheckServlet (com.codahale.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HealthCheckServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.7%
    +  </span>
    +  <span class="absValue">
    +    (59/61)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HealthCheckServlet$ContextListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/9)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.3%
    +  </span>
    +  <span class="absValue">
    +    (59/70)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.health.HealthCheck;
    +&nbsp;import com.codahale.metrics.health.HealthCheckFilter;
    +&nbsp;import com.codahale.metrics.health.HealthCheckRegistry;
    +&nbsp;import com.codahale.metrics.json.HealthCheckModule;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    +&nbsp;
    +&nbsp;import javax.servlet.ServletConfig;
    +&nbsp;import javax.servlet.ServletContext;
    +&nbsp;import javax.servlet.ServletContextEvent;
    +&nbsp;import javax.servlet.ServletContextListener;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServlet;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.concurrent.ExecutorService;
    +&nbsp;
    +&nbsp;public class HealthCheckServlet extends HttpServlet {
    +<b class="nc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    +&nbsp;        /**
    +&nbsp;         * @return the {@link HealthCheckRegistry} to inject into the servlet context.
    +&nbsp;         */
    +&nbsp;        protected abstract HealthCheckRegistry getHealthCheckRegistry();
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
    +&nbsp;         * if the health checks should be run in the servlet worker thread.
    +&nbsp;         */
    +&nbsp;        protected ExecutorService getExecutorService() {
    +&nbsp;            // don&#39;t use a thread pool by default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
    +&nbsp;         * or {@link HealthCheckFilter#ALL} if the default should be used.
    +&nbsp;         */
    +&nbsp;        protected HealthCheckFilter getHealthCheckFilter() {
    +<b class="nc">&nbsp;            return HealthCheckFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link ObjectMapper} that shall be used to render health checks,
    +&nbsp;         * or {@code null} if the default object mapper should be used.
    +&nbsp;         */
    +&nbsp;        protected ObjectMapper getObjectMapper() {
    +&nbsp;            // don&#39;t use an object mapper by default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextInitialized(ServletContextEvent event) {
    +<b class="nc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    +<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());</b>
    +<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());</b>
    +<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    +&nbsp;            // no-op
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + &quot;.executor&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + &quot;.healthCheckFilter&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + &quot;.mapper&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + &quot;.httpStatusIndicator&quot;;</b>
    +&nbsp;
    +&nbsp;    private static final long serialVersionUID = -8432996484889177321L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    +&nbsp;    private static final String HTTP_STATUS_INDICATOR_PARAM = &quot;httpStatusIndicator&quot;;
    +&nbsp;
    +&nbsp;    private transient HealthCheckRegistry registry;
    +&nbsp;    private transient ExecutorService executorService;
    +&nbsp;    private transient HealthCheckFilter filter;
    +&nbsp;    private transient ObjectMapper mapper;
    +&nbsp;    private transient boolean httpStatusIndicator;
    +&nbsp;
    +<b class="fc">&nbsp;    public HealthCheckServlet() {</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public HealthCheckServlet(HealthCheckRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(ServletConfig config) throws ServletException {
    +<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    +<b class="fc">&nbsp;        if (null == registry) {</b>
    +<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);</b>
    +<b class="fc">&nbsp;            if (registryAttr instanceof HealthCheckRegistry) {</b>
    +<b class="fc">&nbsp;                this.registry = (HealthCheckRegistry) registryAttr;</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a HealthCheckRegistry instance.&quot;);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);</b>
    +<b class="fc">&nbsp;        if (executorAttr instanceof ExecutorService) {</b>
    +<b class="fc">&nbsp;            this.executorService = (ExecutorService) executorAttr;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);</b>
    +<b class="fc">&nbsp;        if (filterAttr instanceof HealthCheckFilter) {</b>
    +<b class="fc">&nbsp;            filter = (HealthCheckFilter) filterAttr;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        if (filter == null) {</b>
    +<b class="fc">&nbsp;            filter = HealthCheckFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);</b>
    +<b class="fc">&nbsp;        if (mapperAttr instanceof ObjectMapper) {</b>
    +<b class="fc">&nbsp;            this.mapper = (ObjectMapper) mapperAttr;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.mapper = new ObjectMapper();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.mapper.registerModule(new HealthCheckModule());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);</b>
    +<b class="fc">&nbsp;        if (httpStatusIndicatorAttr instanceof Boolean) {</b>
    +<b class="nc">&nbsp;            this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.httpStatusIndicator = true;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void destroy() {
    +<b class="fc">&nbsp;        super.destroy();</b>
    +<b class="fc">&nbsp;        registry.shutdown();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = runHealthChecks();</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        if (results.isEmpty()) {</b>
    +<b class="fc">&nbsp;            resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);</b>
    +<b class="fc">&nbsp;            final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);</b>
    +<b class="fc">&nbsp;            final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;</b>
    +<b class="fc">&nbsp;            if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {</b>
    +<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_OK);</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            getWriter(req).writeValue(output, results);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private ObjectWriter getWriter(HttpServletRequest request) {
    +<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    +<b class="fc">&nbsp;        if (prettyPrint) {</b>
    +<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return mapper.writer();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    +<b class="fc">&nbsp;        if (executorService == null) {</b>
    +<b class="nc">&nbsp;            return registry.runHealthChecks(filter);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return registry.runHealthChecks(executorService, filter);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static boolean isAllHealthy(Map&lt;String, HealthCheck.Result&gt; results) {
    +<b class="fc">&nbsp;        for (HealthCheck.Result result : results.values()) {</b>
    +<b class="fc">&nbsp;            if (!result.isHealthy()) {</b>
    +<b class="fc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return true;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    // visible for testing
    +&nbsp;    ObjectMapper getMapper() {
    +<b class="fc">&nbsp;        return mapper;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-4.html
    new file mode 100644
    index 0000000000..267d48208b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-4.html
    @@ -0,0 +1,329 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricsServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricsServlet (com.codahale.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricsServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (44/44)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">MetricsServlet$ContextListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (5/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (14/18)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import javax.servlet.ServletConfig;
    +&nbsp;import javax.servlet.ServletContext;
    +&nbsp;import javax.servlet.ServletContextEvent;
    +&nbsp;import javax.servlet.ServletContextListener;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServlet;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricFilter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.json.MetricsModule;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    +&nbsp;import com.fasterxml.jackson.databind.util.JSONPObject;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A servlet which returns the metrics in a given registry as an {@code application/json} response.
    +&nbsp; */
    +&nbsp;public class MetricsServlet extends HttpServlet {
    +&nbsp;    /**
    +&nbsp;     * An abstract {@link ServletContextListener} which allows you to programmatically inject the
    +&nbsp;     * {@link MetricRegistry}, rate and duration units, and allowed origin for
    +&nbsp;     * {@link MetricsServlet}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    +&nbsp;        /**
    +&nbsp;         * @return the {@link MetricRegistry} to inject into the servlet context.
    +&nbsp;         */
    +&nbsp;        protected abstract MetricRegistry getMetricRegistry();
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
    +&nbsp;         * default should be used.
    +&nbsp;         */
    +&nbsp;        protected TimeUnit getRateUnit() {
    +&nbsp;            // use the default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
    +&nbsp;         * the default should be used.
    +&nbsp;         */
    +&nbsp;        protected TimeUnit getDurationUnit() {
    +&nbsp;            // use the default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@code Access-Control-Allow-Origin} header value, if any.
    +&nbsp;         */
    +&nbsp;        protected String getAllowedOrigin() {
    +&nbsp;            // use the default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the name of the parameter used to specify the jsonp callback, if any.
    +&nbsp;         */
    +&nbsp;        protected String getJsonpCallbackParameter() {
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
    +&nbsp;         * the default should be used.
    +&nbsp;         */
    +&nbsp;        protected MetricFilter getMetricFilter() {
    +&nbsp;            // use the default
    +<b class="fc">&nbsp;            return MetricFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextInitialized(ServletContextEvent event) {
    +<b class="fc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    +<b class="fc">&nbsp;            context.setAttribute(METRICS_REGISTRY, getMetricRegistry());</b>
    +<b class="fc">&nbsp;            context.setAttribute(METRIC_FILTER, getMetricFilter());</b>
    +<b class="fc">&nbsp;            if (getDurationUnit() != null) {</b>
    +<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (getRateUnit() != null) {</b>
    +<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (getAllowedOrigin() != null) {</b>
    +<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (getJsonpCallbackParameter() != null) {</b>
    +<b class="nc">&nbsp;                context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    +&nbsp;            // no-op
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.rateUnit&quot;;</b>
    +<b class="fc">&nbsp;    public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.durationUnit&quot;;</b>
    +<b class="fc">&nbsp;    public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + &quot;.showSamples&quot;;</b>
    +<b class="fc">&nbsp;    public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    +<b class="fc">&nbsp;    public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + &quot;.allowedOrigin&quot;;</b>
    +<b class="fc">&nbsp;    public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + &quot;.metricFilter&quot;;</b>
    +<b class="fc">&nbsp;    public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + &quot;.jsonpCallback&quot;;</b>
    +&nbsp;
    +&nbsp;    private static final long serialVersionUID = 1049773947734939602L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    +&nbsp;
    +&nbsp;    protected String allowedOrigin;
    +&nbsp;    protected String jsonpParamName;
    +&nbsp;    protected transient MetricRegistry registry;
    +&nbsp;    protected transient ObjectMapper mapper;
    +&nbsp;
    +<b class="fc">&nbsp;    public MetricsServlet() {</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public MetricsServlet(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(ServletConfig config) throws ServletException {
    +<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    +<b class="fc">&nbsp;        if (null == registry) {</b>
    +<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(METRICS_REGISTRY);</b>
    +<b class="fc">&nbsp;            if (registryAttr instanceof MetricRegistry) {</b>
    +<b class="fc">&nbsp;                this.registry = (MetricRegistry) registryAttr;</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a MetricRegistry instance.&quot;);</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);</b>
    +<b class="fc">&nbsp;        this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        setupMetricsModule(context);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void setupMetricsModule(ServletContext context) {
    +<b class="fc">&nbsp;        final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),</b>
    +&nbsp;                TimeUnit.SECONDS);
    +<b class="fc">&nbsp;        final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),</b>
    +&nbsp;                TimeUnit.SECONDS);
    +<b class="fc">&nbsp;        final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));</b>
    +<b class="fc">&nbsp;        MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);</b>
    +<b class="fc">&nbsp;        if (filter == null) {</b>
    +<b class="fc">&nbsp;            filter = MetricFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,</b>
    +&nbsp;                durationUnit,
    +&nbsp;                showSamples,
    +&nbsp;                filter));
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        if (allowedOrigin != null) {</b>
    +<b class="fc">&nbsp;            resp.setHeader(&quot;Access-Control-Allow-Origin&quot;, allowedOrigin);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            if (jsonpParamName != null &amp;&amp; req.getParameter(jsonpParamName) != null) {</b>
    +<b class="fc">&nbsp;                getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                getWriter(req).writeValue(output, registry);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected ObjectWriter getWriter(HttpServletRequest request) {
    +<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    +<b class="fc">&nbsp;        if (prettyPrint) {</b>
    +<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return mapper.writer();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));</b>
    +<b class="fc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    +<b class="fc">&nbsp;            return defaultValue;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-5.html
    new file mode 100644
    index 0000000000..80e3a0474b
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-5.html
    @@ -0,0 +1,134 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > PingServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: PingServlet (com.codahale.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">PingServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +&nbsp;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServlet;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An HTTP servlets which outputs a {@code text/plain} {@code &quot;pong&quot;} response.
    +&nbsp; */
    +<b class="fc">&nbsp;public class PingServlet extends HttpServlet {</b>
    +&nbsp;    private static final long serialVersionUID = 3772654177231086757L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    +&nbsp;    private static final String CONTENT = &quot;pong&quot;;
    +&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    +&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    +<b class="fc">&nbsp;            writer.println(CONTENT);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-6.html
    new file mode 100644
    index 0000000000..482b2c39a8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-6.html
    @@ -0,0 +1,159 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ThreadDumpServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ThreadDumpServlet (com.codahale.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ThreadDumpServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.jvm.ThreadDump;
    +&nbsp;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServlet;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
    +&nbsp; * the VM. Only responds to {@code GET} requests.
    +&nbsp; */
    +<b class="fc">&nbsp;public class ThreadDumpServlet extends HttpServlet {</b>
    +&nbsp;
    +&nbsp;    private static final long serialVersionUID = -2690343532336103046L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    +&nbsp;
    +&nbsp;    private transient ThreadDump threadDump;
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init() throws ServletException {
    +&nbsp;        try {
    +&nbsp;            // Some PaaS like Google App Engine blacklist java.lang.managament
    +<b class="fc">&nbsp;            this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());</b>
    +<b class="nc">&nbsp;        } catch (NoClassDefFoundError ncdfe) {</b>
    +<b class="nc">&nbsp;            this.threadDump = null; // we won&#39;t be able to provide thread dump</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final boolean includeMonitors = getParam(req.getParameter(&quot;monitors&quot;), true);</b>
    +<b class="fc">&nbsp;        final boolean includeSynchronizers = getParam(req.getParameter(&quot;synchronizers&quot;), true);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        if (threadDump == null) {</b>
    +<b class="nc">&nbsp;            resp.getWriter().println(&quot;Sorry your runtime environment does not allow to dump threads.&quot;);</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            threadDump.dump(includeMonitors, includeSynchronizers, output);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static Boolean getParam(String initParam, boolean defaultValue) {
    +<b class="fc">&nbsp;        return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index.html
    index fec920db5a..f2e7fe3b6d 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    +io.dropwizard.metrics.caffeine3</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -95,74 +83,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/1)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/7)
    +    (7/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/12)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -189,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
    index 7524c26516..c2b53a2727 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    +io.dropwizard.metrics.caffeine3</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -94,75 +82,35 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/46)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/200)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -189,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
    index bffa97ef86..b82fcb0ae5 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    +io.dropwizard.metrics.caffeine3</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -94,75 +82,35 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/1)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/7)
    +    (7/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/12)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -189,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS.html
    index 3e6670777f..5f6184723c 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    +io.dropwizard.metrics.caffeine3</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -95,74 +83,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/1)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/7)
    +    (7/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/12)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -189,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
    index cd9294affd..48722a0a52 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    +io.dropwizard.metrics.caffeine3</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -95,74 +83,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/46)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/200)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -189,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE.html
    index 9ac59404a8..2e6b2d0535 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    +io.dropwizard.metrics.caffeine3</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -94,75 +82,35 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
     <th class="coverageStat sortedAsc
     ">
       <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/1)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/7)
    +    (7/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/12)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -189,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
    index 1173c10fd0..10286d2c18 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    +io.dropwizard.metrics.caffeine3</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -94,75 +82,35 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
     <th class="coverageStat sortedDesc
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/46)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/200)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -189,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD.html
    index 6c4cedb781..aca078ab9a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    +io.dropwizard.metrics.caffeine3</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -95,74 +83,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
       <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/1)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/7)
    +    (7/8)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/12)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -189,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
    index e21c19ba85..fd117c2f27 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    +io.dropwizard.metrics.caffeine3</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -95,74 +83,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/46)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/200)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -189,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
    index c666d9d7ef..4d9b8f9974 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    +  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    +io.dropwizard.metrics.caffeine3</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.caffeine3</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/53)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/212)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -95,74 +83,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/46)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/111)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/200)
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -189,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-1.html
    index 02eda3ac5a..dc5ff59373 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    +  <title>Coverage Report > MetricsStatsCounter</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,22 +19,21 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jersey31</a>
    +    <a href="../index.html">io.dropwizard.metrics.caffeine3</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (io.dropwizard.metrics.jersey31)</h1>
    +<h1>Coverage Summary for Class: MetricsStatsCounter (io.dropwizard.metrics.caffeine3)</h1>
     
     <table class="coverageStats">
    -
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
     ">
    -  Method, %
    +  Class, %
     </th>
     <th class="coverageStat 
     ">
    -  Branch, %
    +  Method, %
     </th>
     <th class="coverageStat 
     ">
    @@ -42,286 +41,33 @@ <h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (i
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    +  <td class="name">MetricsStatsCounter</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/18)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/38)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    96.6%
       </span>
       <span class="absValue">
    -    (0/89)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/28)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/200)
    +    (28/29)
       </span>
     </td>
     </tr>
    +
     </table>
     
     <br/>
    @@ -329,554 +75,121 @@ <h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (i
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jersey31;
    +<code class="sourceCode" id="sourceCode">&nbsp;/*
    +&nbsp; * Copyright 2016 Ben Manes. All Rights Reserved.
    +&nbsp; *
    +&nbsp; * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    +&nbsp; * you may not use this file except in compliance with the License.
    +&nbsp; * You may obtain a copy of the License at
    +&nbsp; *
    +&nbsp; *     http://www.apache.org/licenses/LICENSE-2.0
    +&nbsp; *
    +&nbsp; * Unless required by applicable law or agreed to in writing, software
    +&nbsp; * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    +&nbsp; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +&nbsp; * See the License for the specific language governing permissions and
    +&nbsp; * limitations under the License.
    +&nbsp; */
    +&nbsp;package io.dropwizard.metrics.caffeine3;
     &nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    -&nbsp;import com.codahale.metrics.annotation.Metered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import jakarta.ws.rs.core.Configuration;
    -&nbsp;import jakarta.ws.rs.ext.Provider;
    -&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    -&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    -&nbsp;import org.glassfish.jersey.server.model.Resource;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    +&nbsp;import static java.util.Objects.requireNonNull;
     &nbsp;
    -&nbsp;import java.lang.annotation.Annotation;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.EnumMap;
     &nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    +&nbsp;import java.util.concurrent.atomic.LongAdder;
     &nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Histogram;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.github.benmanes.caffeine.cache.RemovalCause;
    +&nbsp;import com.github.benmanes.caffeine.cache.stats.CacheStats;
    +&nbsp;import com.github.benmanes.caffeine.cache.stats.StatsCounter;
    +&nbsp;import org.checkerframework.checker.index.qual.NonNegative;
     &nbsp;
     &nbsp;/**
    -&nbsp; * An application event listener that listens for Jersey application initialization to
    -&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    -&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    -&nbsp; * request events indicating that the method is about to be invoked, or just got done
    -&nbsp; * being invoked.
    +&nbsp; * A {@link StatsCounter} instrumented with Dropwizard Metrics.
    +&nbsp; *
    +&nbsp; * @author ben.manes@gmail.com (Ben Manes)
    +&nbsp; * @author John Karp
     &nbsp; */
    -&nbsp;@Provider
    -&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    -&nbsp;
    -<b class="nc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    -<b class="nc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    -&nbsp;    private static final String TOTAL = &quot;total&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metrics;
    -<b class="nc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="nc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="nc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="nc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Construct an application event listener using the given metrics registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    -&nbsp;     *
    -&nbsp;     * @param metrics a {@link MetricRegistry}
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    -<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters) {
    -<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters,
    -<b class="nc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="nc">&nbsp;        this.metrics = metrics;</b>
    -<b class="nc">&nbsp;        this.clock = clock;</b>
    -<b class="nc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="nc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metric for a method annotated with the
    -&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    -&nbsp;     * and a cause for which the meter should be updated.
    -&nbsp;     */
    -&nbsp;    private static class ExceptionMeterMetric {
    -&nbsp;        public final Meter meter;
    -&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    -&nbsp;
    -&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    -&nbsp;                                    final ResourceMethod method,
    -<b class="nc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    -<b class="nc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    -<b class="nc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    -<b class="nc">&nbsp;            this.meter = registry.meter(name);</b>
    -<b class="nc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metrics for a method annotated with the
    -&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    -&nbsp;     * different response codes
    -&nbsp;     */
    -&nbsp;    private static class ResponseMeterMetric {
    -<b class="nc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="nc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;        private final List&lt;Meter&gt; meters;
    -&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;        private final MetricRegistry metricRegistry;
    -&nbsp;        private final String metricName;
    -&nbsp;        private final ResponseMeteredLevel level;
    -&nbsp;
    -&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    -&nbsp;                                   final ResourceMethod method,
    -<b class="nc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    -<b class="nc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    -<b class="nc">&nbsp;            this.level = responseMetered.level();</b>
    -<b class="nc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    -<b class="nc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="nc">&nbsp;                            registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="nc">&nbsp;                            registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="nc">&nbsp;                            registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="nc">&nbsp;                            registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="nc">&nbsp;                            registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="nc">&nbsp;                    )) : Collections.emptyList();</b>
    -<b class="nc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="nc">&nbsp;            this.metricRegistry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public void mark(int statusCode) {
    -<b class="nc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    -<b class="nc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    -<b class="nc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    -<b class="nc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="nc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    -<b class="nc">&nbsp;            return responseCodeMeters</b>
    -<b class="nc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="nc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    -&nbsp;
    -&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    -&nbsp;        private final Clock clock;
    -&nbsp;        private final long start;
    -&nbsp;        private Timer.Context resourceMethodStartContext;
    -&nbsp;        private Timer.Context requestMatchedContext;
    -&nbsp;        private Timer.Context responseFiltersStartContext;
    -&nbsp;
    -<b class="nc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    -<b class="nc">&nbsp;            this.timers = timers;</b>
    -<b class="nc">&nbsp;            this.clock = clock;</b>
    -<b class="nc">&nbsp;            start = clock.getTick();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="nc">&nbsp;            switch (event.getType()) {</b>
    -&nbsp;                case RESOURCE_METHOD_START:
    -<b class="nc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    -<b class="nc">&nbsp;                    break;</b>
    -&nbsp;                case REQUEST_MATCHED:
    -<b class="nc">&nbsp;                    requestMatchedContext = context(event);</b>
    -<b class="nc">&nbsp;                    break;</b>
    -&nbsp;                case RESP_FILTERS_START:
    -<b class="nc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    -<b class="nc">&nbsp;                    break;</b>
    -&nbsp;                case RESOURCE_METHOD_FINISHED:
    -<b class="nc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    -<b class="nc">&nbsp;                        resourceMethodStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case REQUEST_FILTERED:
    -<b class="nc">&nbsp;                    if (requestMatchedContext != null) {</b>
    -<b class="nc">&nbsp;                        requestMatchedContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case RESP_FILTERS_FINISHED:
    -<b class="nc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    -<b class="nc">&nbsp;                        responseFiltersStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case FINISHED:
    -<b class="nc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    -<b class="nc">&nbsp;                        final Timer timer = timer(event);</b>
    -<b class="nc">&nbsp;                        if (timer != null) {</b>
    -<b class="nc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    -&nbsp;                        }
    -<b class="nc">&nbsp;                    }</b>
    -&nbsp;                    break;
    -&nbsp;                default:
    -&nbsp;                    break;
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(RequestEvent event) {
    -<b class="nc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="nc">&nbsp;            if (resourceMethod == null) {</b>
    -<b class="nc">&nbsp;                return null;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer.Context context(RequestEvent event) {
    -<b class="nc">&nbsp;            final Timer timer = timer(event);</b>
    -<b class="nc">&nbsp;            return timer != null ? timer.time() : null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    -&nbsp;
    -<b class="nc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    -<b class="nc">&nbsp;            this.meters = meters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="nc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    -<b class="nc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    -<b class="nc">&nbsp;                if (meter != null) {</b>
    -<b class="nc">&nbsp;                    meter.mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    -&nbsp;
    -<b class="nc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    -<b class="nc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="nc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    -<b class="nc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="nc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    -<b class="nc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="nc">&nbsp;                if (metric != null) {</b>
    -<b class="nc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    -<b class="nc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    -<b class="nc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    -<b class="nc">&nbsp;                        metric.meter.mark();</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    -&nbsp;
    -<b class="nc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    -<b class="nc">&nbsp;            this.responseMeters = responseMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="nc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    -<b class="nc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="nc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    -<b class="nc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="nc">&nbsp;                if (metric != null) {</b>
    -<b class="nc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    -<b class="nc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    -<b class="nc">&nbsp;                        metric.mark(500);</b>
    -<b class="nc">&nbsp;                    } else if (containerResponse != null) {</b>
    -<b class="nc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="nc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    -&nbsp;        private final RequestEventListener[] listeners;
    -&nbsp;
    -<b class="nc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    -<b class="nc">&nbsp;            this.listeners = listeners;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(final RequestEvent event) {
    -<b class="nc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    -<b class="nc">&nbsp;                listener.onEvent(event);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onEvent(ApplicationEvent event) {
    -<b class="nc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    -<b class="nc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    -<b class="nc">&nbsp;        return resourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    -<b class="nc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    -<b class="nc">&nbsp;        return subResourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    -<b class="nc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    -&nbsp;
    -<b class="nc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    -<b class="nc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    -<b class="nc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    -<b class="nc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    -<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    -<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    -<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    -<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -<b class="nc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    -&nbsp;
    -<b class="nc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    -<b class="nc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    -<b class="nc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    -<b class="nc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="nc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    -<b class="nc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    -<b class="nc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    -<b class="nc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    -<b class="nc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    -<b class="nc">&nbsp;                }</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    -<b class="nc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    -&nbsp;                new TimerRequestEventListener(timers, clock),
    -&nbsp;                new MeterRequestEventListener(meters),
    -&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    -&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    -&nbsp;
    -<b class="nc">&nbsp;        return listener;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    -<b class="nc">&nbsp;        T annotation = null;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    -<b class="nc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (annotation != null) {</b>
    -<b class="nc">&nbsp;                break;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return annotation;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    -<b class="nc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -<b class="nc">&nbsp;        if (classLevelTimed != null) {</b>
    -<b class="nc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    -<b class="nc">&nbsp;        if (annotation != null) {</b>
    -<b class="nc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    -<b class="nc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    -<b class="nc">&nbsp;        if (trackFilters) {</b>
    -<b class="nc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    -<b class="nc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    -<b class="nc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    -<b class="nc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        if (classLevelMetered != null) {</b>
    -<b class="nc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="nc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        if (annotation != null) {</b>
    -<b class="nc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    -<b class="nc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    -<b class="nc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="nc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        if (annotation != null) {</b>
    -<b class="nc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    -<b class="nc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    -<b class="nc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="nc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        if (annotation != null) {</b>
    -<b class="nc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Timed timed,
    -&nbsp;                              final String... suffixes) {
    -<b class="nc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    -<b class="nc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Metered metered) {
    -<b class="nc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    -<b class="nc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    -&nbsp;                                       final String... suffixes) {
    -<b class="nc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;        final String metricName;
    -<b class="nc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    -<b class="nc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return name(metricName, suffixes);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="nc">&nbsp;    private static class EventTypeAndMethod {</b>
    -&nbsp;
    -&nbsp;        private final RequestEvent.Type type;
    -&nbsp;        private final Method method;
    -&nbsp;
    -<b class="nc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    -<b class="nc">&nbsp;            this.type = type;</b>
    -<b class="nc">&nbsp;            this.method = method;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    -<b class="nc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    -<b class="nc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    -<b class="nc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod finished(Method method) {
    -<b class="nc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="nc">&nbsp;            if (this == o) {</b>
    -<b class="nc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (type != that.type) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            return method.equals(that.method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="nc">&nbsp;            int result = type.hashCode();</b>
    -<b class="nc">&nbsp;            result = 31 * result + method.hashCode();</b>
    -<b class="nc">&nbsp;            return result;</b>
    -&nbsp;        }
    -&nbsp;    }
    +&nbsp;public final class MetricsStatsCounter implements StatsCounter {
    +&nbsp;  private final Counter hitCount;
    +&nbsp;  private final Counter missCount;
    +&nbsp;  private final Timer loadSuccess;
    +&nbsp;  private final Timer loadFailure;
    +&nbsp;  private final Counter evictionWeight;
    +&nbsp;  private final EnumMap&lt;RemovalCause, Histogram&gt; evictionsWithCause;
    +&nbsp;
    +&nbsp;  // for implementing snapshot()
    +<b class="fc">&nbsp;  private final LongAdder totalLoadTime = new LongAdder();</b>
    +&nbsp;
    +&nbsp;  /**
    +&nbsp;   * Constructs an instance for use by a single cache.
    +&nbsp;   *
    +&nbsp;   * @param registry the registry of metric instances
    +&nbsp;   * @param metricsPrefix the prefix name for the metrics
    +&nbsp;   */
    +<b class="fc">&nbsp;  public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {</b>
    +<b class="fc">&nbsp;    requireNonNull(metricsPrefix);</b>
    +<b class="fc">&nbsp;    hitCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;hits&quot;));</b>
    +<b class="fc">&nbsp;    missCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;misses&quot;));</b>
    +<b class="fc">&nbsp;    loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-success&quot;));</b>
    +<b class="fc">&nbsp;    loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-failure&quot;));</b>
    +<b class="fc">&nbsp;    evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, &quot;evictions-weight&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;    evictionsWithCause = new EnumMap&lt;&gt;(RemovalCause.class);</b>
    +<b class="fc">&nbsp;    for (RemovalCause cause : RemovalCause.values()) {</b>
    +<b class="fc">&nbsp;      evictionsWithCause.put(</b>
    +&nbsp;          cause,
    +<b class="fc">&nbsp;          registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;, cause.name())));</b>
    +&nbsp;    }
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordHits(int count) {
    +<b class="fc">&nbsp;    hitCount.inc(count);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordMisses(int count) {
    +<b class="fc">&nbsp;    missCount.inc(count);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordLoadSuccess(long loadTime) {
    +<b class="fc">&nbsp;    loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);</b>
    +<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordLoadFailure(long loadTime) {
    +<b class="fc">&nbsp;    loadFailure.update(loadTime, TimeUnit.NANOSECONDS);</b>
    +<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordEviction(@NonNegative int weight, RemovalCause cause) {
    +<b class="fc">&nbsp;    evictionsWithCause.get(cause).update(weight);</b>
    +<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public CacheStats snapshot() {
    +<b class="fc">&nbsp;    return CacheStats.of(</b>
    +<b class="fc">&nbsp;        hitCount.getCount(),</b>
    +<b class="fc">&nbsp;        missCount.getCount(),</b>
    +<b class="fc">&nbsp;        loadSuccess.getCount(),</b>
    +<b class="fc">&nbsp;        loadFailure.getCount(),</b>
    +<b class="fc">&nbsp;        totalLoadTime.sum(),</b>
    +<b class="fc">&nbsp;        evictionsWithCause.values().stream().mapToLong(Histogram::getCount).sum(),</b>
    +<b class="fc">&nbsp;        evictionWeight.getCount());</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public String toString() {
    +<b class="nc">&nbsp;    return snapshot().toString();</b>
    +&nbsp;  }
     &nbsp;}
     </code>
     </pre>
    @@ -901,7 +214,7 @@ <h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (i
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index.html
    index 861d5f6c9d..3df3930794 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    +io.dropwizard.metrics.jersey31</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
     <td class="coverageStat">
       <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    +    100%
       </span>
       <span class="absValue">
    -    (76/122)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    94.3%
       </span>
       <span class="absValue">
    -    (276/368)
    +    (200/212)
       </span>
     </td>
       </tr>
    @@ -95,79 +83,12 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -178,47 +99,45 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    +    95.7%
       </span>
       <span class="absValue">
    -    (31/50)
    +    (44/46)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    74.3%
    +    94.5%
       </span>
       <span class="absValue">
    -    (107/144)
    +    (189/200)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    85.7%
       </span>
       <span class="absValue">
    -    (16/24)
    +    (6/7)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    76.9%
    +    91.7%
       </span>
       <span class="absValue">
    -    (30/39)
    +    (11/12)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
    index f30a2b2425..aaa70a1c94 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    +io.dropwizard.metrics.jersey31</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
     <td class="coverageStat">
       <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    +    100%
       </span>
       <span class="absValue">
    -    (76/122)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    94.3%
       </span>
       <span class="absValue">
    -    (276/368)
    +    (200/212)
       </span>
     </td>
       </tr>
    @@ -94,45 +82,13 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -143,82 +99,45 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    +    95.7%
       </span>
       <span class="absValue">
    -    (31/50)
    +    (44/46)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    74.3%
    +    94.5%
       </span>
       <span class="absValue">
    -    (107/144)
    +    (189/200)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    85.7%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (6/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.9%
    +    91.7%
       </span>
       <span class="absValue">
    -    (121/166)
    +    (11/12)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
    index 02ee3a5d63..95e8a440c9 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    +io.dropwizard.metrics.jersey31</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
     <td class="coverageStat">
       <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    +    100%
       </span>
       <span class="absValue">
    -    (76/122)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    94.3%
       </span>
       <span class="absValue">
    -    (276/368)
    +    (200/212)
       </span>
     </td>
       </tr>
    @@ -94,80 +82,40 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    85.7%
       </span>
       <span class="absValue">
    -    (16/24)
    +    (6/7)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    76.9%
    +    91.7%
       </span>
       <span class="absValue">
    -    (30/39)
    +    (11/12)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -178,47 +126,18 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    +    95.7%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (44/46)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    94.5%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (189/200)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS.html
    index 1c3ca1398f..d07c89d2cb 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    +io.dropwizard.metrics.jersey31</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
     <td class="coverageStat">
       <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    +    100%
       </span>
       <span class="absValue">
    -    (76/122)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    94.3%
       </span>
       <span class="absValue">
    -    (276/368)
    +    (200/212)
       </span>
     </td>
       </tr>
    @@ -95,79 +83,12 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -178,47 +99,45 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    +    95.7%
       </span>
       <span class="absValue">
    -    (31/50)
    +    (44/46)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    74.3%
    +    94.5%
       </span>
       <span class="absValue">
    -    (107/144)
    +    (189/200)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    85.7%
       </span>
       <span class="absValue">
    -    (16/24)
    +    (6/7)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    76.9%
    +    91.7%
       </span>
       <span class="absValue">
    -    (30/39)
    +    (11/12)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
    index f3a427f43e..aa6930e6b0 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    +io.dropwizard.metrics.jersey31</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
     <td class="coverageStat">
       <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    +    100%
       </span>
       <span class="absValue">
    -    (76/122)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    94.3%
       </span>
       <span class="absValue">
    -    (276/368)
    +    (200/212)
       </span>
     </td>
       </tr>
    @@ -95,44 +83,39 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    85.7%
       </span>
       <span class="absValue">
    -    (16/24)
    +    (6/7)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    76.9%
    +    91.7%
       </span>
       <span class="absValue">
    -    (30/39)
    +    (11/12)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -143,82 +126,18 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    +    95.7%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (44/46)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.9%
    +    94.5%
       </span>
       <span class="absValue">
    -    (121/166)
    +    (189/200)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE.html
    index b35354ee5d..7d3a9c4d49 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    +io.dropwizard.metrics.jersey31</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
     <td class="coverageStat">
       <span class="percent">
    -    62.3%
    +    100%
       </span>
       <span class="absValue">
    -    (76/122)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    94.3%
       </span>
       <span class="absValue">
    -    (276/368)
    +    (200/212)
       </span>
     </td>
       </tr>
    @@ -94,131 +82,62 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
     <th class="coverageStat sortedAsc
     ">
       <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    +    85.7%
       </span>
       <span class="absValue">
    -    (31/50)
    +    (6/7)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    74.3%
    +    91.7%
       </span>
       <span class="absValue">
    -    (107/144)
    +    (11/12)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    95.7%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (44/46)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    94.5%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (189/200)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
    index abcd1b5c0b..45e901b69f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    +io.dropwizard.metrics.jersey31</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
     <td class="coverageStat">
       <span class="percent">
    -    62.3%
    +    100%
       </span>
       <span class="absValue">
    -    (76/122)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    94.3%
       </span>
       <span class="absValue">
    -    (276/368)
    +    (200/212)
       </span>
     </td>
       </tr>
    @@ -94,73 +82,13 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
     <th class="coverageStat sortedDesc
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -171,54 +99,45 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    +    95.7%
       </span>
       <span class="absValue">
    -    (31/50)
    +    (44/46)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    74.3%
    +    94.5%
       </span>
       <span class="absValue">
    -    (107/144)
    +    (189/200)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    +    100%
       </span>
       <span class="absValue">
    -    (21/39)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    85.7%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (6/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.9%
    +    91.7%
       </span>
       <span class="absValue">
    -    (121/166)
    +    (11/12)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD.html
    index 68919af520..af0f70adfa 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    +io.dropwizard.metrics.jersey31</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
     <td class="coverageStat">
       <span class="percent">
    -    62.3%
    +    100%
       </span>
       <span class="absValue">
    -    (76/122)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    94.3%
       </span>
       <span class="absValue">
    -    (276/368)
    +    (200/212)
       </span>
     </td>
       </tr>
    @@ -95,130 +83,61 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
       <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    +    85.7%
       </span>
       <span class="absValue">
    -    (31/50)
    +    (6/7)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    74.3%
    +    91.7%
       </span>
       <span class="absValue">
    -    (107/144)
    +    (11/12)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    95.7%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (44/46)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    94.5%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (189/200)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
    index dd904d0b31..34aa1f9b28 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    +io.dropwizard.metrics.jersey31</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
     <td class="coverageStat">
       <span class="percent">
    -    62.3%
    +    100%
       </span>
       <span class="absValue">
    -    (76/122)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    94.3%
       </span>
       <span class="absValue">
    -    (276/368)
    +    (200/212)
       </span>
     </td>
       </tr>
    @@ -95,72 +83,12 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -171,54 +99,45 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    +    95.7%
       </span>
       <span class="absValue">
    -    (31/50)
    +    (44/46)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    74.3%
    +    94.5%
       </span>
       <span class="absValue">
    -    (107/144)
    +    (189/200)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    +    100%
       </span>
       <span class="absValue">
    -    (21/39)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    85.7%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (6/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.9%
    +    91.7%
       </span>
       <span class="absValue">
    -    (121/166)
    +    (11/12)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
    index efbe0ac1c5..dd6cac57e3 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    +io.dropwizard.metrics.jersey31</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    +    <td class="name">io.dropwizard.metrics.jersey31</td>
     <td class="coverageStat">
       <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    +    100%
       </span>
       <span class="absValue">
    -    (76/122)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    94.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (50/53)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    94.3%
       </span>
       <span class="absValue">
    -    (276/368)
    +    (200/212)
       </span>
     </td>
       </tr>
    @@ -95,44 +83,39 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    85.7%
       </span>
       <span class="absValue">
    -    (16/24)
    +    (6/7)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    76.9%
    +    91.7%
       </span>
       <span class="absValue">
    -    (30/39)
    +    (11/12)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -143,82 +126,18 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    +    95.7%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (44/46)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    94.5%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (189/200)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-1.html
    index 6a166c29a3..75747834ce 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    +  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    +    <a href="../index.html">io.dropwizard.metrics.jersey31</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty10)</h1>
    +<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (io.dropwizard.metrics.jersey31)</h1>
     
     <table class="coverageStats">
     
    @@ -38,26 +38,45 @@ <h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.met
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    +  <td class="name">InstrumentedResourceMethodApplicationListener</td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    88.9%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (16/18)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.7%
    +    92.1%
       </span>
       <span class="absValue">
    -    (11/12)
    +    (82/89)
       </span>
     </td>
     </tr>
       <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -71,7 +90,140 @@ <h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.met
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.2%
    +  </span>
    +  <span class="absValue">
    +    (16/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (6/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (24/24)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (28/28)
       </span>
     </td>
       </tr>
    @@ -79,18 +231,18 @@ <h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.met
       <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    95.7%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (44/46)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    94.5%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (189/200)
       </span>
     </td>
     </tr>
    @@ -101,67 +253,553 @@ <h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.met
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jersey31;
     &nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Reservoir;
     &nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    +&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    +&nbsp;import com.codahale.metrics.annotation.Metered;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import com.codahale.metrics.annotation.Timed;
    +&nbsp;import jakarta.ws.rs.core.Configuration;
    +&nbsp;import jakarta.ws.rs.ext.Provider;
    +&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    +&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    +&nbsp;import org.glassfish.jersey.server.model.Resource;
    +&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    +&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    +&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    +&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    +&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    +&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
     &nbsp;
    +&nbsp;import java.lang.annotation.Annotation;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
     &nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.function.Supplier;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An application event listener that listens for Jersey application initialization to
    +&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    +&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    +&nbsp; * request events indicating that the method is about to be invoked, or just got done
    +&nbsp; * being invoked.
    +&nbsp; */
    +&nbsp;@Provider
    +&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    +&nbsp;
    +<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    +<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    +&nbsp;    private static final String TOTAL = &quot;total&quot;;
    +&nbsp;
    +&nbsp;    private final MetricRegistry metrics;
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final boolean trackFilters;
    +&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Construct an application event listener using the given metrics registry.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    +&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    +&nbsp;     *
    +&nbsp;     * @param metrics a {@link MetricRegistry}
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    +<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Constructs a custom application listener.
    +&nbsp;     *
    +&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    +&nbsp;                                                         final boolean trackFilters) {
    +<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Constructs a custom application listener.
    +&nbsp;     *
    +&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    +&nbsp;                                                         final boolean trackFilters,
    +<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    +<b class="fc">&nbsp;        this.metrics = metrics;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    +<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A private class to maintain the metric for a method annotated with the
    +&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    +&nbsp;     * and a cause for which the meter should be updated.
    +&nbsp;     */
    +&nbsp;    private static class ExceptionMeterMetric {
    +&nbsp;        public final Meter meter;
    +&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    +&nbsp;
    +&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    +&nbsp;                                    final ResourceMethod method,
    +<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    +<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    +<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    +<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    +<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A private class to maintain the metrics for a method annotated with the
    +&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    +&nbsp;     * different response codes
    +&nbsp;     */
    +&nbsp;    private static class ResponseMeterMetric {
    +<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;        private final List&lt;Meter&gt; meters;
    +&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;        private final MetricRegistry metricRegistry;
    +&nbsp;        private final String metricName;
    +&nbsp;        private final ResponseMeteredLevel level;
    +&nbsp;
    +&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    +&nbsp;                                   final ResourceMethod method,
    +<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    +<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    +<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    +<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    +<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    +<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    +<b class="fc">&nbsp;                    )) : Collections.emptyList();</b>
    +<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public void mark(int statusCode) {
    +<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    +<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    +<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;            return responseCodeMeters</b>
    +<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    +&nbsp;
    +&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    +&nbsp;        private final Clock clock;
    +&nbsp;        private final long start;
    +&nbsp;        private Timer.Context resourceMethodStartContext;
    +&nbsp;        private Timer.Context requestMatchedContext;
    +&nbsp;        private Timer.Context responseFiltersStartContext;
    +&nbsp;
    +<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    +<b class="fc">&nbsp;            this.timers = timers;</b>
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            start = clock.getTick();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            switch (event.getType()) {</b>
    +&nbsp;                case RESOURCE_METHOD_START:
    +<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case REQUEST_MATCHED:
    +<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case RESP_FILTERS_START:
    +<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    +<b class="fc">&nbsp;                    break;</b>
    +&nbsp;                case RESOURCE_METHOD_FINISHED:
    +<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    +<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case REQUEST_FILTERED:
    +<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    +<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case RESP_FILTERS_FINISHED:
    +<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    +<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    +&nbsp;                    }
    +&nbsp;                    break;
    +&nbsp;                case FINISHED:
    +<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    +<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    +<b class="fc">&nbsp;                        if (timer != null) {</b>
    +<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    +&nbsp;                        }
    +<b class="fc">&nbsp;                    }</b>
    +&nbsp;                    break;
    +&nbsp;                default:
    +&nbsp;                    break;
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer timer(RequestEvent event) {
    +<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    +<b class="fc">&nbsp;                return null;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer.Context context(RequestEvent event) {
    +<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    +<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    +&nbsp;
    +<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    +<b class="fc">&nbsp;            this.meters = meters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    +<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    +<b class="fc">&nbsp;                if (meter != null) {</b>
    +<b class="fc">&nbsp;                    meter.mark();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    +&nbsp;
    +<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    +<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    +<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    +<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;                if (metric != null) {</b>
    +<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    +<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    +<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    +<b class="fc">&nbsp;                        metric.meter.mark();</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    +&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
     &nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    +<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    +<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    +&nbsp;        }
     &nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(RequestEvent event) {
    +<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    +<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    +<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    +<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;                if (metric != null) {</b>
    +<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    +<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    +<b class="nc">&nbsp;                        metric.mark(500);</b>
    +<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    +<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    +&nbsp;                    }
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        }
     &nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    +<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    +&nbsp;        private final RequestEventListener[] listeners;
    +&nbsp;
    +<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    +<b class="fc">&nbsp;            this.listeners = listeners;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onEvent(final RequestEvent event) {
    +<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    +<b class="fc">&nbsp;                listener.onEvent(event);</b>
    +&nbsp;            }
    +&nbsp;        }
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    +&nbsp;    public void onEvent(ApplicationEvent event) {
    +<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    +<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    +&nbsp;        }
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    +&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    +<b class="fc">&nbsp;        return resourceModel;</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    +&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    +<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    +<b class="fc">&nbsp;        return subResourceModel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    +<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    +<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    +<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    +<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    +<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    +<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    +<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    +<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    +&nbsp;
    +<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    +<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    +<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    +<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    +<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    +<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    +<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    +<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    +<b class="fc">&nbsp;                }</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    +<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    +&nbsp;                new TimerRequestEventListener(timers, clock),
    +&nbsp;                new MeterRequestEventListener(meters),
    +&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    +&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    +&nbsp;
    +<b class="fc">&nbsp;        return listener;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    +<b class="fc">&nbsp;        T annotation = null;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    +<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (annotation != null) {</b>
    +<b class="fc">&nbsp;                break;</b>
     &nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return annotation;</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    +&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    +<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    +&nbsp;            return;
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    +<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    +<b class="fc">&nbsp;        if (trackFilters) {</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    +<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    +<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    +<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    +<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (annotation != null) {</b>
    +<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    +&nbsp;                              final ResourceMethod method,
    +&nbsp;                              final Timed timed,
    +&nbsp;                              final String... suffixes) {
    +<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    +<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    +&nbsp;                              final ResourceMethod method,
    +&nbsp;                              final Metered metered) {
    +<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    +<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    +&nbsp;                                       final String... suffixes) {
    +<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    +&nbsp;        final String metricName;
    +<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    +<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    +&nbsp;
    +&nbsp;        private final RequestEvent.Type type;
    +&nbsp;        private final Method method;
    +&nbsp;
    +<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    +<b class="fc">&nbsp;            this.type = type;</b>
    +<b class="fc">&nbsp;            this.method = method;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        static EventTypeAndMethod finished(Method method) {
    +<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean equals(Object o) {
    +<b class="fc">&nbsp;            if (this == o) {</b>
    +<b class="nc">&nbsp;                return true;</b>
     &nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    +<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (type != that.type) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return method.equals(that.method);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public int hashCode() {
    +<b class="fc">&nbsp;            int result = type.hashCode();</b>
    +<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    +<b class="fc">&nbsp;            return result;</b>
    +&nbsp;        }
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -187,7 +825,7 @@ <h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.met
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-2.html
    index c1976c2a35..5748ef8195 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-2.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHandler</title>
    +  <title>Coverage Report > MetricsFeature</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,22 +19,21 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    +    <a href="../index.html">io.dropwizard.metrics.jersey31</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty10)</h1>
    +<h1>Coverage Summary for Class: MetricsFeature (io.dropwizard.metrics.jersey31)</h1>
     
     <table class="coverageStats">
    -
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
     ">
    -  Method, %
    +  Class, %
     </th>
     <th class="coverageStat 
     ">
    -  Branch, %
    +  Method, %
     </th>
     <th class="coverageStat 
     ">
    @@ -42,140 +41,7 @@ <h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (113/131)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$7</td>
    +  <td class="name">MetricsFeature</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -186,86 +52,22 @@ <h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    +    85.7%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (6/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.9%
    +    91.7%
       </span>
       <span class="absValue">
    -    (121/166)
    +    (11/12)
       </span>
     </td>
     </tr>
    +
     </table>
     
     <br/>
    @@ -273,448 +75,101 @@ <h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jersey31;
     &nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
     &nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import com.codahale.metrics.Reservoir;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;import jakarta.ws.rs.core.Feature;
    +&nbsp;import jakarta.ws.rs.core.FeatureContext;
     &nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;import java.util.function.Supplier;
     &nbsp;
     &nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    +&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    +&nbsp; * for recording request events.
     &nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    -&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    private final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private Counter activeSuspended;
    +&nbsp;public class MetricsFeature implements Feature {
     &nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private Meter asyncDispatches;
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final boolean trackFilters;
    +&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
     &nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private List&lt;Meter&gt; responses;
    -&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    private Timer getRequests;
    -&nbsp;    private Timer postRequests;
    -&nbsp;    private Timer headRequests;
    -&nbsp;    private Timer putRequests;
    -&nbsp;    private Timer deleteRequests;
    -&nbsp;    private Timer optionsRequests;
    -&nbsp;    private Timer traceRequests;
    -&nbsp;    private Timer connectRequests;
    -&nbsp;    private Timer moveRequests;
    -&nbsp;    private Timer otherRequests;
    -&nbsp;
    -&nbsp;    private AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
     &nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    +&nbsp;    public MetricsFeature(MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
     &nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    +<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
     &nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    +<b class="fc">&nbsp;        this(registry, clock, false);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     */
    +&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    +<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;            ));
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    +&nbsp;    /*
    +&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    +&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    +&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    +&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    +<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    public MetricsFeature(String registryName) {
    +<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
     &nbsp;    }
     &nbsp;
    +&nbsp;    /**
    +&nbsp;     * A call-back method called when the feature is to be enabled in a given
    +&nbsp;     * runtime configuration scope.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    +&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    +&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    +&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    +&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
    +&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
    +&nbsp;     * would return {@code false}.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     *
    +&nbsp;     * @param context configurable context in which the feature should be enabled.
    +&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    +&nbsp;     * otherwise.
    +&nbsp;     */
     &nbsp;    @Override
    -&nbsp;    public void handle(String path,
    -&nbsp;                       Request request,
    -&nbsp;                       HttpServletRequest httpRequest,
    -&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == HttpChannelState.State.HANDLING) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    +&nbsp;    public boolean configure(FeatureContext context) {
    +<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    +<b class="fc">&nbsp;        return true;</b>
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -740,7 +195,7 @@ <h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index.html
    index d0c164a96b..1c47cceeeb 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index.html
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK.html
    index 08d3627fc9..dc3b6d9755 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK.html
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
    index 2c08d7992c..2923085ded 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS.html
    index d7eb4a907c..dd59dae7f7 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS.html
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
    index 675b0e9fd0..19d2fce7ad 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE.html
    index c97450d649..3d01a9ebd6 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE.html
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
    index 3d68633d87..39012c1ff8 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD.html
    index 2c3ae2d14a..18a7e07661 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD.html
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
    index 44a7de1011..81ee607aa6 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
    index 79653fab3d..75783f8cde 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-1.html
    index 7e45e1b449..fde79d9fc6 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-1.html
    @@ -121,7 +121,7 @@ <h1>Coverage Summary for Class: ResponseMeteredLevel (com.codahale.metrics.annot
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-2.html
    index a567d72980..08cf59ca98 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-2.html
    @@ -101,7 +101,7 @@ <h1>Coverage Summary for Class: Timed (com.codahale.metrics.annotation)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-3.html
    index 438b21af69..e41467a7f6 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-3.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-3.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ResponseMetered</title>
    +  <title>Coverage Report > Metered</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -22,14 +22,14 @@
         <a href="../index.html">com.codahale.metrics.annotation</a>
     </div>
     
    -<h1>Coverage Summary for Class: ResponseMetered (com.codahale.metrics.annotation)</h1>
    +<h1>Coverage Summary for Class: Metered (com.codahale.metrics.annotation)</h1>
     
     <table class="coverageStats">
     <tr>
       <th class="name">Class</th>
     </tr>
     <tr>
    -  <td class="name">ResponseMetered</td>
    +  <td class="name">Metered</td>
     </tr>
     
     </table>
    @@ -53,21 +53,20 @@ <h1>Coverage Summary for Class: ResponseMetered (com.codahale.metrics.annotation
     &nbsp; * &lt;p&gt;
     &nbsp; * Given a method like this:
     &nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}ResponseMetered(name = &quot;fancyName&quot;, level = ResponseMeteredLevel.ALL)
    +&nbsp; *     {@literal @}Metered(name = &quot;fancyName&quot;)
     &nbsp; *     public String fancyName(String name) {
     &nbsp; *         return &quot;Sir Captain &quot; + name;
     &nbsp; *     }
     &nbsp; * &lt;/code&gt;&lt;/pre&gt;
     &nbsp; * &lt;p&gt;
    -&nbsp; * Meters for the defining class with the name {@code fancyName} will be created for response codes
    -&nbsp; * based on the ResponseMeteredLevel selected. Each time the {@code #fancyName(String)} method is invoked,
    -&nbsp; * the appropriate response meter will be marked.
    +&nbsp; * A meter for the defining class with the name {@code fancyName} will be created and each time the
    +&nbsp; * {@code #fancyName(String)} method is invoked, the meter will be marked.
     &nbsp; */
     &nbsp;@Inherited
     &nbsp;@Documented
     &nbsp;@Retention(RetentionPolicy.RUNTIME)
     &nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface ResponseMetered {
    +&nbsp;public @interface Metered {
     &nbsp;    /**
     &nbsp;     * @return The name of the meter.
     &nbsp;     */
    @@ -78,11 +77,6 @@ <h1>Coverage Summary for Class: ResponseMetered (com.codahale.metrics.annotation
     &nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
     &nbsp;     */
     &nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return the ResponseMeteredLevel which decides which response code meters are marked.
    -&nbsp;     */
    -&nbsp;    ResponseMeteredLevel level() default ResponseMeteredLevel.COARSE;
     &nbsp;}
     </code>
     </pre>
    @@ -107,7 +101,7 @@ <h1>Coverage Summary for Class: ResponseMetered (com.codahale.metrics.annotation
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-4.html
    index 2727eabba7..7330ad6c27 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-4.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-4.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGauge</title>
    +  <title>Coverage Report > Metric</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -22,14 +22,14 @@
         <a href="../index.html">com.codahale.metrics.annotation</a>
     </div>
     
    -<h1>Coverage Summary for Class: CachedGauge (com.codahale.metrics.annotation)</h1>
    +<h1>Coverage Summary for Class: Metric (com.codahale.metrics.annotation)</h1>
     
     <table class="coverageStats">
     <tr>
       <th class="name">Class</th>
     </tr>
     <tr>
    -  <td class="name">CachedGauge</td>
    +  <td class="name">Metric</td>
     </tr>
     
     </table>
    @@ -45,52 +45,47 @@ <h1>Coverage Summary for Class: CachedGauge (com.codahale.metrics.annotation)</h
     &nbsp;import java.lang.annotation.Retention;
     &nbsp;import java.lang.annotation.RetentionPolicy;
     &nbsp;import java.lang.annotation.Target;
    -&nbsp;import java.util.concurrent.TimeUnit;
     &nbsp;
     &nbsp;/**
    -&nbsp; * An annotation for marking a method as a gauge, which caches the result for a specified time.
    +&nbsp; * An annotation requesting that a metric be injected or registered.
     &nbsp; *
     &nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    +&nbsp; * Given a field like this:
     &nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}CachedGauge(name = &quot;queueSize&quot;, timeout = 30, timeoutUnit = TimeUnit.SECONDS)
    -&nbsp; *     public int getQueueSize() {
    -&nbsp; *         return queue.getSize();
    -&nbsp; *     }
    -&nbsp; *
    +&nbsp; *     {@literal @}Metric
    +&nbsp; *     public Histogram histogram;
     &nbsp; * &lt;/code&gt;&lt;/pre&gt;
     &nbsp; * &lt;p&gt;
    +&nbsp; * A meter of the field&#39;s type will be created and injected into managed objects.
    +&nbsp; * It will be up to the user to interact with the metric. This annotation
    +&nbsp; * can be used on fields of type Meter, Timer, Counter, and Histogram.
     &nbsp; *
    -&nbsp; * A gauge for the defining class with the name queueSize will be created which uses the annotated method&#39;s
    -&nbsp; * return value as its value, and which caches the result for 30 seconds.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * This may also be used to register a metric, which is useful for creating a histogram with
    +&nbsp; * a custom Reservoir.
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}Metric
    +&nbsp; *     public Histogram uniformHistogram = new Histogram(new UniformReservoir());
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
     &nbsp; *
     &nbsp; * @since 3.1
     &nbsp; */
     &nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface CachedGauge {
    +&nbsp;@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface Metric {
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * @return The name of the counter.
    +&nbsp;     * @return The name of the metric.
     &nbsp;     */
     &nbsp;    String name() default &quot;&quot;;
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class.
    +&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false},
    +&nbsp;     * use the given name relative to the annotated class.
     &nbsp;     */
     &nbsp;    boolean absolute() default false;
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The amount of time to cache the result
    -&nbsp;     */
    -&nbsp;    long timeout();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The unit of timeout
    -&nbsp;     */
    -&nbsp;    TimeUnit timeoutUnit() default TimeUnit.MILLISECONDS;
    -&nbsp;
     &nbsp;}
     </code>
     </pre>
    @@ -115,7 +110,7 @@ <h1>Coverage Summary for Class: CachedGauge (com.codahale.metrics.annotation)</h
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-5.html
    index 386f8d6713..f985995548 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-5.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-5.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ExceptionMetered</title>
    +  <title>Coverage Report > CachedGauge</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -22,14 +22,14 @@
         <a href="../index.html">com.codahale.metrics.annotation</a>
     </div>
     
    -<h1>Coverage Summary for Class: ExceptionMetered (com.codahale.metrics.annotation)</h1>
    +<h1>Coverage Summary for Class: CachedGauge (com.codahale.metrics.annotation)</h1>
     
     <table class="coverageStats">
     <tr>
       <th class="name">Class</th>
     </tr>
     <tr>
    -  <td class="name">ExceptionMetered</td>
    +  <td class="name">CachedGauge</td>
     </tr>
     
     </table>
    @@ -41,68 +41,56 @@ <h1>Coverage Summary for Class: ExceptionMetered (com.codahale.metrics.annotatio
     <pre>
     <code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
     &nbsp;
    -&nbsp;import java.lang.annotation.Documented;
     &nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
     &nbsp;import java.lang.annotation.Retention;
     &nbsp;import java.lang.annotation.RetentionPolicy;
     &nbsp;import java.lang.annotation.Target;
    +&nbsp;import java.util.concurrent.TimeUnit;
     &nbsp;
     &nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as metered.
    +&nbsp; * An annotation for marking a method as a gauge, which caches the result for a specified time.
    +&nbsp; *
     &nbsp; * &lt;p&gt;
     &nbsp; * Given a method like this:
     &nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}ExceptionMetered(name = &quot;fancyName&quot;, cause=IllegalArgumentException.class)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    +&nbsp; *     {@literal @}CachedGauge(name = &quot;queueSize&quot;, timeout = 30, timeoutUnit = TimeUnit.SECONDS)
    +&nbsp; *     public int getQueueSize() {
    +&nbsp; *         return queue.getSize();
     &nbsp; *     }
    +&nbsp; *
     &nbsp; * &lt;/code&gt;&lt;/pre&gt;
     &nbsp; * &lt;p&gt;
    -&nbsp; * A meter for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} throws an exception of type {@code cause} (or a subclass), the meter
    -&nbsp; * will be marked.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A name for the metric can be specified as an annotation parameter, otherwise, the metric will be
    -&nbsp; * named based on the method name.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * For instance, given a declaration of
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}ExceptionMetered
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A meter named {@code fancyName.exceptions} will be created and marked every time an exception is
    -&nbsp; * thrown.
    +&nbsp; *
    +&nbsp; * A gauge for the defining class with the name queueSize will be created which uses the annotated method&#39;s
    +&nbsp; * return value as its value, and which caches the result for 30 seconds.
    +&nbsp; *
    +&nbsp; * @since 3.1
     &nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
     &nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface ExceptionMetered {
    -&nbsp;    /**
    -&nbsp;     * The default suffix for meter names.
    -&nbsp;     */
    -&nbsp;    String DEFAULT_NAME_SUFFIX = &quot;exceptions&quot;;
    +&nbsp;@Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface CachedGauge {
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * @return The name of the meter. If not specified, the meter will be given a name based on the method
    -&nbsp;     * it decorates and the suffix &quot;Exceptions&quot;.
    +&nbsp;     * @return The name of the counter.
     &nbsp;     */
     &nbsp;    String name() default &quot;&quot;;
     &nbsp;
     &nbsp;    /**
     &nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    +&nbsp;     * relative to the annotated class.
     &nbsp;     */
     &nbsp;    boolean absolute() default false;
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * @return The type of exceptions that the meter will catch and count.
    +&nbsp;     * @return The amount of time to cache the result
    +&nbsp;     */
    +&nbsp;    long timeout();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return The unit of timeout
     &nbsp;     */
    -&nbsp;    Class&lt;? extends Throwable&gt; cause() default Exception.class;
    +&nbsp;    TimeUnit timeoutUnit() default TimeUnit.MILLISECONDS;
    +&nbsp;
     &nbsp;}
     </code>
     </pre>
    @@ -127,7 +115,7 @@ <h1>Coverage Summary for Class: ExceptionMetered (com.codahale.metrics.annotatio
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-6.html
    index c24d81b2af..696b05ae69 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-6.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-6.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metered</title>
    +  <title>Coverage Report > Counted</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -22,14 +22,14 @@
         <a href="../index.html">com.codahale.metrics.annotation</a>
     </div>
     
    -<h1>Coverage Summary for Class: Metered (com.codahale.metrics.annotation)</h1>
    +<h1>Coverage Summary for Class: Counted (com.codahale.metrics.annotation)</h1>
     
     <table class="coverageStats">
     <tr>
       <th class="name">Class</th>
     </tr>
     <tr>
    -  <td class="name">Metered</td>
    +  <td class="name">Counted</td>
     </tr>
     
     </table>
    @@ -49,26 +49,30 @@ <h1>Coverage Summary for Class: Metered (com.codahale.metrics.annotation)</h1>
     &nbsp;import java.lang.annotation.Target;
     &nbsp;
     &nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as metered.
    +&nbsp; * An annotation for marking a method of an annotated object as counted.
    +&nbsp; *
     &nbsp; * &lt;p&gt;
     &nbsp; * Given a method like this:
     &nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Metered(name = &quot;fancyName&quot;)
    +&nbsp; *     {@literal @}Counted(name = &quot;fancyName&quot;)
     &nbsp; *     public String fancyName(String name) {
     &nbsp; *         return &quot;Sir Captain &quot; + name;
     &nbsp; *     }
     &nbsp; * &lt;/code&gt;&lt;/pre&gt;
     &nbsp; * &lt;p&gt;
    -&nbsp; * A meter for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} method is invoked, the meter will be marked.
    +&nbsp; * A counter for the defining class with the name {@code fancyName} will be created and each time the
    +&nbsp; * {@code #fancyName(String)} method is invoked, the counter will be marked.
    +&nbsp; *
    +&nbsp; * @since 3.1
     &nbsp; */
     &nbsp;@Inherited
     &nbsp;@Documented
     &nbsp;@Retention(RetentionPolicy.RUNTIME)
     &nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Metered {
    +&nbsp;public @interface Counted {
    +&nbsp;
     &nbsp;    /**
    -&nbsp;     * @return The name of the meter.
    +&nbsp;     * @return The name of the counter.
     &nbsp;     */
     &nbsp;    String name() default &quot;&quot;;
     &nbsp;
    @@ -77,6 +81,16 @@ <h1>Coverage Summary for Class: Metered (com.codahale.metrics.annotation)</h1>
     &nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
     &nbsp;     */
     &nbsp;    boolean absolute() default false;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return 
    +&nbsp;     * If {@code false} (default), the counter is decremented when the annotated
    +&nbsp;     * method returns, counting current invocations of the annotated method.
    +&nbsp;     * If {@code true}, the counter increases monotonically, counting total
    +&nbsp;     * invocations of the annotated method.
    +&nbsp;     */
    +&nbsp;    boolean monotonic() default false;
    +&nbsp;
     &nbsp;}
     </code>
     </pre>
    @@ -101,7 +115,7 @@ <h1>Coverage Summary for Class: Metered (com.codahale.metrics.annotation)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-7.html
    index 71fb488d64..6f2c372690 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-7.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-7.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Gauge</title>
    +  <title>Coverage Report > ResponseMetered</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -22,14 +22,14 @@
         <a href="../index.html">com.codahale.metrics.annotation</a>
     </div>
     
    -<h1>Coverage Summary for Class: Gauge (com.codahale.metrics.annotation)</h1>
    +<h1>Coverage Summary for Class: ResponseMetered (com.codahale.metrics.annotation)</h1>
     
     <table class="coverageStats">
     <tr>
       <th class="name">Class</th>
     </tr>
     <tr>
    -  <td class="name">Gauge</td>
    +  <td class="name">ResponseMetered</td>
     </tr>
     
     </table>
    @@ -41,38 +41,48 @@ <h1>Coverage Summary for Class: Gauge (com.codahale.metrics.annotation)</h1>
     <pre>
     <code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
     &nbsp;
    +&nbsp;import java.lang.annotation.Documented;
     &nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Inherited;
     &nbsp;import java.lang.annotation.Retention;
     &nbsp;import java.lang.annotation.RetentionPolicy;
     &nbsp;import java.lang.annotation.Target;
     &nbsp;
     &nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as a gauge.
    +&nbsp; * An annotation for marking a method of an annotated object as metered.
     &nbsp; * &lt;p&gt;
     &nbsp; * Given a method like this:
     &nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Gauge(name = &quot;queueSize&quot;)
    -&nbsp; *     public int getQueueSize() {
    -&nbsp; *         return queue.size;
    +&nbsp; *     {@literal @}ResponseMetered(name = &quot;fancyName&quot;, level = ResponseMeteredLevel.ALL)
    +&nbsp; *     public String fancyName(String name) {
    +&nbsp; *         return &quot;Sir Captain &quot; + name;
     &nbsp; *     }
     &nbsp; * &lt;/code&gt;&lt;/pre&gt;
     &nbsp; * &lt;p&gt;
    -&nbsp; * A gauge for the defining class with the name {@code queueSize} will be created which uses the
    -&nbsp; * annotated method&#39;s return value as its value.
    +&nbsp; * Meters for the defining class with the name {@code fancyName} will be created for response codes
    +&nbsp; * based on the ResponseMeteredLevel selected. Each time the {@code #fancyName(String)} method is invoked,
    +&nbsp; * the appropriate response meter will be marked.
     &nbsp; */
    +&nbsp;@Inherited
    +&nbsp;@Documented
     &nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Gauge {
    +&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface ResponseMetered {
     &nbsp;    /**
    -&nbsp;     * @return The gauge&#39;s name.
    +&nbsp;     * @return The name of the meter.
     &nbsp;     */
     &nbsp;    String name() default &quot;&quot;;
     &nbsp;
     &nbsp;    /**
     &nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class.
    +&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
     &nbsp;     */
     &nbsp;    boolean absolute() default false;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @return the ResponseMeteredLevel which decides which response code meters are marked.
    +&nbsp;     */
    +&nbsp;    ResponseMeteredLevel level() default ResponseMeteredLevel.COARSE;
     &nbsp;}
     </code>
     </pre>
    @@ -97,7 +107,7 @@ <h1>Coverage Summary for Class: Gauge (com.codahale.metrics.annotation)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-8.html
    index 14acd78297..d917eeb56d 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-8.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-8.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Counted</title>
    +  <title>Coverage Report > ExceptionMetered</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -22,14 +22,14 @@
         <a href="../index.html">com.codahale.metrics.annotation</a>
     </div>
     
    -<h1>Coverage Summary for Class: Counted (com.codahale.metrics.annotation)</h1>
    +<h1>Coverage Summary for Class: ExceptionMetered (com.codahale.metrics.annotation)</h1>
     
     <table class="coverageStats">
     <tr>
       <th class="name">Class</th>
     </tr>
     <tr>
    -  <td class="name">Counted</td>
    +  <td class="name">ExceptionMetered</td>
     </tr>
     
     </table>
    @@ -49,30 +49,47 @@ <h1>Coverage Summary for Class: Counted (com.codahale.metrics.annotation)</h1>
     &nbsp;import java.lang.annotation.Target;
     &nbsp;
     &nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as counted.
    -&nbsp; *
    +&nbsp; * An annotation for marking a method of an annotated object as metered.
     &nbsp; * &lt;p&gt;
     &nbsp; * Given a method like this:
     &nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Counted(name = &quot;fancyName&quot;)
    +&nbsp; *     {@literal @}ExceptionMetered(name = &quot;fancyName&quot;, cause=IllegalArgumentException.class)
     &nbsp; *     public String fancyName(String name) {
     &nbsp; *         return &quot;Sir Captain &quot; + name;
     &nbsp; *     }
     &nbsp; * &lt;/code&gt;&lt;/pre&gt;
     &nbsp; * &lt;p&gt;
    -&nbsp; * A counter for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} method is invoked, the counter will be marked.
    -&nbsp; *
    -&nbsp; * @since 3.1
    +&nbsp; * A meter for the defining class with the name {@code fancyName} will be created and each time the
    +&nbsp; * {@code #fancyName(String)} throws an exception of type {@code cause} (or a subclass), the meter
    +&nbsp; * will be marked.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A name for the metric can be specified as an annotation parameter, otherwise, the metric will be
    +&nbsp; * named based on the method name.
    +&nbsp; * &lt;p&gt;
    +&nbsp; * For instance, given a declaration of
    +&nbsp; * &lt;pre&gt;&lt;code&gt;
    +&nbsp; *     {@literal @}ExceptionMetered
    +&nbsp; *     public String fancyName(String name) {
    +&nbsp; *         return &quot;Sir Captain &quot; + name;
    +&nbsp; *     }
    +&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    +&nbsp; * &lt;p&gt;
    +&nbsp; * A meter named {@code fancyName.exceptions} will be created and marked every time an exception is
    +&nbsp; * thrown.
     &nbsp; */
     &nbsp;@Inherited
     &nbsp;@Documented
     &nbsp;@Retention(RetentionPolicy.RUNTIME)
     &nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Counted {
    +&nbsp;public @interface ExceptionMetered {
    +&nbsp;    /**
    +&nbsp;     * The default suffix for meter names.
    +&nbsp;     */
    +&nbsp;    String DEFAULT_NAME_SUFFIX = &quot;exceptions&quot;;
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * @return The name of the counter.
    +&nbsp;     * @return The name of the meter. If not specified, the meter will be given a name based on the method
    +&nbsp;     * it decorates and the suffix &quot;Exceptions&quot;.
     &nbsp;     */
     &nbsp;    String name() default &quot;&quot;;
     &nbsp;
    @@ -83,14 +100,9 @@ <h1>Coverage Summary for Class: Counted (com.codahale.metrics.annotation)</h1>
     &nbsp;    boolean absolute() default false;
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * @return 
    -&nbsp;     * If {@code false} (default), the counter is decremented when the annotated
    -&nbsp;     * method returns, counting current invocations of the annotated method.
    -&nbsp;     * If {@code true}, the counter increases monotonically, counting total
    -&nbsp;     * invocations of the annotated method.
    +&nbsp;     * @return The type of exceptions that the meter will catch and count.
     &nbsp;     */
    -&nbsp;    boolean monotonic() default false;
    -&nbsp;
    +&nbsp;    Class&lt;? extends Throwable&gt; cause() default Exception.class;
     &nbsp;}
     </code>
     </pre>
    @@ -115,7 +127,7 @@ <h1>Coverage Summary for Class: Counted (com.codahale.metrics.annotation)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-9.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-9.html
    index 9790938733..ef5982933b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-9.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-9.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metric</title>
    +  <title>Coverage Report > Gauge</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -22,14 +22,14 @@
         <a href="../index.html">com.codahale.metrics.annotation</a>
     </div>
     
    -<h1>Coverage Summary for Class: Metric (com.codahale.metrics.annotation)</h1>
    +<h1>Coverage Summary for Class: Gauge (com.codahale.metrics.annotation)</h1>
     
     <table class="coverageStats">
     <tr>
       <th class="name">Class</th>
     </tr>
     <tr>
    -  <td class="name">Metric</td>
    +  <td class="name">Gauge</td>
     </tr>
     
     </table>
    @@ -47,45 +47,32 @@ <h1>Coverage Summary for Class: Metric (com.codahale.metrics.annotation)</h1>
     &nbsp;import java.lang.annotation.Target;
     &nbsp;
     &nbsp;/**
    -&nbsp; * An annotation requesting that a metric be injected or registered.
    -&nbsp; *
    +&nbsp; * An annotation for marking a method of an annotated object as a gauge.
     &nbsp; * &lt;p&gt;
    -&nbsp; * Given a field like this:
    +&nbsp; * Given a method like this:
     &nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Metric
    -&nbsp; *     public Histogram histogram;
    +&nbsp; *     {@literal @}Gauge(name = &quot;queueSize&quot;)
    +&nbsp; *     public int getQueueSize() {
    +&nbsp; *         return queue.size;
    +&nbsp; *     }
     &nbsp; * &lt;/code&gt;&lt;/pre&gt;
     &nbsp; * &lt;p&gt;
    -&nbsp; * A meter of the field&#39;s type will be created and injected into managed objects.
    -&nbsp; * It will be up to the user to interact with the metric. This annotation
    -&nbsp; * can be used on fields of type Meter, Timer, Counter, and Histogram.
    -&nbsp; *
    -&nbsp; * &lt;p&gt;
    -&nbsp; * This may also be used to register a metric, which is useful for creating a histogram with
    -&nbsp; * a custom Reservoir.
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Metric
    -&nbsp; *     public Histogram uniformHistogram = new Histogram(new UniformReservoir());
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; *
    -&nbsp; * @since 3.1
    +&nbsp; * A gauge for the defining class with the name {@code queueSize} will be created which uses the
    +&nbsp; * annotated method&#39;s return value as its value.
     &nbsp; */
     &nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Metric {
    -&nbsp;
    +&nbsp;@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE })
    +&nbsp;public @interface Gauge {
     &nbsp;    /**
    -&nbsp;     * @return The name of the metric.
    +&nbsp;     * @return The gauge&#39;s name.
     &nbsp;     */
     &nbsp;    String name() default &quot;&quot;;
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false},
    -&nbsp;     * use the given name relative to the annotated class.
    +&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    +&nbsp;     * relative to the annotated class.
     &nbsp;     */
     &nbsp;    boolean absolute() default false;
    -&nbsp;
     &nbsp;}
     </code>
     </pre>
    @@ -110,7 +97,7 @@ <h1>Coverage Summary for Class: Metric (com.codahale.metrics.annotation)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index.html
    index 5ad53a6af1..ac2eec4f25 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    +io.dropwizard.metrics.jetty10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK.html
    index b375e67c72..b5ec748bc6 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    +io.dropwizard.metrics.jetty10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
    index c0ee8cf048..23a5bfe39e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    +io.dropwizard.metrics.jetty10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS.html
    index ef3076b41b..7918019b92 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    +io.dropwizard.metrics.jetty10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
    index 5bcf56b174..b7d48efeba 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    +io.dropwizard.metrics.jetty10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE.html
    index 60b3ff62b2..e89549b9cc 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    +io.dropwizard.metrics.jetty10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
    index 2e11b0d4b8..6cbb361e0c 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    +io.dropwizard.metrics.jetty10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD.html
    index 59bd9035fa..b8928fe523 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    +io.dropwizard.metrics.jetty10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
    index 709934f424..49c1334a2c 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    +io.dropwizard.metrics.jetty10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
    index 439b43a4c3..a810604b0a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    +io.dropwizard.metrics.jetty10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    +    <td class="name">io.dropwizard.metrics.jetty10</td>
     <td class="coverageStat">
       <span class="percent">
         96.2%
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-1.html
    index 2d8e158078..f1d31309f3 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-1.html
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    +    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty11)</h1>
    +<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty10)</h1>
     
     <table class="coverageStats">
     
    @@ -101,7 +101,7 @@ <h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.met
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
     &nbsp;
     &nbsp;import com.codahale.metrics.Counter;
     &nbsp;import com.codahale.metrics.Timer;
    @@ -187,7 +187,7 @@ <h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.met
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-2.html
    index a1a4e879b2..95230eecd1 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-2.html
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    +    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty11)</h1>
    +<h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty10)</h1>
     
     <table class="coverageStats">
     
    @@ -273,7 +273,7 @@ <h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
     &nbsp;
     &nbsp;import com.codahale.metrics.Counter;
     &nbsp;import com.codahale.metrics.Meter;
    @@ -281,11 +281,6 @@ <h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty
     &nbsp;import com.codahale.metrics.RatioGauge;
     &nbsp;import com.codahale.metrics.Timer;
     &nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
     &nbsp;import org.eclipse.jetty.http.HttpMethod;
     &nbsp;import org.eclipse.jetty.server.AsyncContextState;
     &nbsp;import org.eclipse.jetty.server.Handler;
    @@ -293,6 +288,11 @@ <h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty
     &nbsp;import org.eclipse.jetty.server.Request;
     &nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
     &nbsp;
    +&nbsp;import javax.servlet.AsyncEvent;
    +&nbsp;import javax.servlet.AsyncListener;
    +&nbsp;import javax.servlet.ServletException;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
     &nbsp;import java.io.IOException;
     &nbsp;import java.util.Arrays;
     &nbsp;import java.util.Collections;
    @@ -414,9 +414,9 @@ <h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty
     &nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
     &nbsp;     */
     <b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
     <b class="fc">&nbsp;        this.metricRegistry = registry;</b>
     <b class="fc">&nbsp;        this.prefix = prefix;</b>
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    public String getName() {
    @@ -458,12 +458,13 @@ <h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty
     &nbsp;
     <b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
     <b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;                    ));
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    +<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    +&nbsp;            ));
    +&nbsp;
     <b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
     &nbsp;                @Override
     &nbsp;                protected Ratio getRatio() {
    @@ -739,7 +740,7 @@ <h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-3.html
    index 6d62d977cb..3333221458 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-3.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-3.html
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    +    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty11)</h1>
    +<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty10)</h1>
     
     <table class="coverageStats">
     
    @@ -253,7 +253,7 @@ <h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.m
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
     &nbsp;
     &nbsp;import com.codahale.metrics.Counter;
     &nbsp;import com.codahale.metrics.Meter;
    @@ -261,16 +261,16 @@ <h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.m
     &nbsp;import com.codahale.metrics.RatioGauge;
     &nbsp;import com.codahale.metrics.Timer;
     &nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
     &nbsp;import org.eclipse.jetty.http.HttpMethod;
     &nbsp;import org.eclipse.jetty.server.AsyncContextState;
     &nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
     &nbsp;import org.eclipse.jetty.server.HttpChannelState;
     &nbsp;import org.eclipse.jetty.server.Request;
     &nbsp;
    +&nbsp;import javax.servlet.AsyncEvent;
    +&nbsp;import javax.servlet.AsyncListener;
    +&nbsp;import javax.servlet.http.HttpServletRequest;
    +&nbsp;import javax.servlet.http.HttpServletResponse;
     &nbsp;import java.io.IOException;
     &nbsp;import java.nio.ByteBuffer;
     &nbsp;import java.util.Arrays;
    @@ -700,7 +700,7 @@ <h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.m
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-4.html
    index 1101fee0a5..3407af1f38 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-4.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-4.html
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    +    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty11)</h1>
    +<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty10)</h1>
     
     <table class="coverageStats">
     
    @@ -139,7 +139,7 @@ <h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metr
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
     &nbsp;
     &nbsp;import com.codahale.metrics.MetricRegistry;
     &nbsp;import com.codahale.metrics.RatioGauge;
    @@ -286,9 +286,9 @@ <h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metr
     <b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
     &nbsp;            }
     &nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
     &nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
     &nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
     <b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
     <b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
     &nbsp;            @Override
    @@ -339,7 +339,7 @@ <h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metr
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index.html
    index b5e8b0b254..f222698791 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    +io.dropwizard.metrics.jetty11</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
       </span>
       <span class="absValue">
    -    (14/14)
    +    (25/26)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.9%
    +    62.3%
       </span>
       <span class="absValue">
    -    (43/59)
    +    (76/122)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.6%
    +    0%
       </span>
       <span class="absValue">
    -    (151/185)
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
       </span>
     </td>
       </tr>
    @@ -83,66 +95,107 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    70.4%
    +    88.9%
       </span>
       <span class="absValue">
    -    (19/27)
    +    (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    94.7%
       </span>
       <span class="absValue">
    -    (103/128)
    +    (18/19)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    62%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (31/50)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    74.3%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (107/144)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,18 +206,19 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.6%
    +    66.7%
       </span>
       <span class="absValue">
    -    (16/23)
    +    (16/24)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    78.9%
    +    76.9%
       </span>
       <span class="absValue">
    -    (30/38)
    +    (30/39)
       </span>
     </td>
       </tr>
    @@ -191,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK.html
    index c603fa6c2d..604c6ab3d4 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    +io.dropwizard.metrics.jetty11</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
       </span>
       <span class="absValue">
    -    (14/14)
    +    (25/26)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.9%
    +    62.3%
       </span>
       <span class="absValue">
    -    (43/59)
    +    (76/122)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.6%
    +    0%
       </span>
       <span class="absValue">
    -    (151/185)
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
       </span>
     </td>
       </tr>
    @@ -82,67 +94,73 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    70.4%
    +    88.9%
       </span>
       <span class="absValue">
    -    (19/27)
    +    (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    94.7%
       </span>
       <span class="absValue">
    -    (103/128)
    +    (18/19)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    62%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (31/50)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    74.3%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (107/144)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,18 +171,54 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.6%
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
       </span>
       <span class="absValue">
    -    (16/23)
    +    (30/39)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    78.9%
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
       </span>
       <span class="absValue">
    -    (30/38)
    +    (121/166)
       </span>
     </td>
       </tr>
    @@ -191,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
    index e0882b7f5f..9a7bea9719 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    +io.dropwizard.metrics.jetty11</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
       </span>
       <span class="absValue">
    -    (14/14)
    +    (25/26)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.9%
    +    62.3%
       </span>
       <span class="absValue">
    -    (43/59)
    +    (76/122)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.6%
    +    0%
       </span>
       <span class="absValue">
    -    (151/185)
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
       </span>
     </td>
       </tr>
    @@ -82,13 +94,52 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,72 +150,75 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.6%
    +    66.7%
       </span>
       <span class="absValue">
    -    (16/23)
    +    (16/24)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    78.9%
    +    76.9%
       </span>
       <span class="absValue">
    -    (30/38)
    +    (30/39)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    62%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (31/50)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    74.3%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (107/144)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    70.4%
    +    88.9%
       </span>
       <span class="absValue">
    -    (19/27)
    +    (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    94.7%
       </span>
       <span class="absValue">
    -    (103/128)
    +    (18/19)
       </span>
     </td>
       </tr>
    @@ -191,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS.html
    index 16cefd4337..1b0dbb875b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    +io.dropwizard.metrics.jetty11</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
       </span>
       <span class="absValue">
    -    (14/14)
    +    (25/26)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.9%
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
       </span>
       <span class="absValue">
    -    (43/59)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.6%
    +    75%
       </span>
       <span class="absValue">
    -    (151/185)
    +    (276/368)
       </span>
     </td>
       </tr>
    @@ -83,39 +95,51 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (9/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    70.4%
    +    53.8%
       </span>
       <span class="absValue">
    -    (19/27)
    +    (21/39)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
       </span>
       <span class="absValue">
    -    (103/128)
    +    (121/166)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -132,6 +156,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
         (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
         94.7%
    @@ -142,7 +167,35 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,18 +206,19 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.6%
    +    66.7%
       </span>
       <span class="absValue">
    -    (16/23)
    +    (16/24)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    78.9%
    +    76.9%
       </span>
       <span class="absValue">
    -    (30/38)
    +    (30/39)
       </span>
     </td>
       </tr>
    @@ -191,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
    index f18e572b6f..c03035e05f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    +io.dropwizard.metrics.jetty11</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
       </span>
       <span class="absValue">
    -    (14/14)
    +    (25/26)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.9%
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
       </span>
       <span class="absValue">
    -    (43/59)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.6%
    +    75%
       </span>
       <span class="absValue">
    -    (151/185)
    +    (276/368)
       </span>
     </td>
       </tr>
    @@ -83,12 +95,16 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +115,52 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.6%
    +    66.7%
       </span>
       <span class="absValue">
    -    (16/23)
    +    (16/24)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    78.9%
    +    76.9%
       </span>
       <span class="absValue">
    -    (30/38)
    +    (30/39)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62%
    +  </span>
    +  <span class="absValue">
    +    (31/50)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -132,6 +177,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
         (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
         94.7%
    @@ -142,29 +188,37 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (21/39)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    70.4%
    +    0%
       </span>
       <span class="absValue">
    -    (19/27)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    72.9%
       </span>
       <span class="absValue">
    -    (103/128)
    +    (121/166)
       </span>
     </td>
       </tr>
    @@ -191,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE.html
    index 897c809a01..fdf2f34065 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    +io.dropwizard.metrics.jetty11</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
       </span>
       <span class="absValue">
    -    (14/14)
    +    (25/26)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.9%
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
       </span>
       <span class="absValue">
    -    (43/59)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.6%
    +    75%
       </span>
       <span class="absValue">
    -    (151/185)
    +    (276/368)
       </span>
     </td>
       </tr>
    @@ -82,67 +94,108 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat sortedAsc
     ">
       <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.6%
    +    62%
       </span>
       <span class="absValue">
    -    (16/23)
    +    (31/50)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    78.9%
    +    74.3%
       </span>
       <span class="absValue">
    -    (30/38)
    +    (107/144)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    70.4%
    +    66.7%
       </span>
       <span class="absValue">
    -    (19/27)
    +    (16/24)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    76.9%
       </span>
       <span class="absValue">
    -    (103/128)
    +    (30/39)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -159,6 +212,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
         (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
         94.7%
    @@ -191,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
    index 3ba4e9955d..9700293fea 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    +io.dropwizard.metrics.jetty11</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
       </span>
       <span class="absValue">
    -    (14/14)
    +    (25/26)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.9%
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
       </span>
       <span class="absValue">
    -    (43/59)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.6%
    +    75%
       </span>
       <span class="absValue">
    -    (151/185)
    +    (276/368)
       </span>
     </td>
       </tr>
    @@ -82,13 +94,17 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat sortedDesc
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -105,6 +121,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
         (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
         94.7%
    @@ -115,56 +132,93 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    70.4%
    +    66.7%
       </span>
       <span class="absValue">
    -    (19/27)
    +    (16/24)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    76.9%
       </span>
       <span class="absValue">
    -    (103/128)
    +    (30/39)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.6%
    +    62%
       </span>
       <span class="absValue">
    -    (16/23)
    +    (31/50)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    78.9%
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
       </span>
       <span class="absValue">
    -    (30/38)
    +    (121/166)
       </span>
     </td>
       </tr>
    @@ -191,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD.html
    index 091166f293..a0db59ebc9 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    +io.dropwizard.metrics.jetty11</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
       </span>
       <span class="absValue">
    -    (14/14)
    +    (25/26)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.9%
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
       </span>
       <span class="absValue">
    -    (43/59)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.6%
    +    75%
       </span>
       <span class="absValue">
    -    (151/185)
    +    (276/368)
       </span>
     </td>
       </tr>
    @@ -83,66 +95,107 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
       <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.6%
    +    62%
       </span>
       <span class="absValue">
    -    (16/23)
    +    (31/50)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    78.9%
    +    74.3%
       </span>
       <span class="absValue">
    -    (30/38)
    +    (107/144)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    70.4%
    +    66.7%
       </span>
       <span class="absValue">
    -    (19/27)
    +    (16/24)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    76.9%
       </span>
       <span class="absValue">
    -    (103/128)
    +    (30/39)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -159,6 +212,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
         (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
         94.7%
    @@ -191,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
    index b271fefae4..bf97b450f9 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    +io.dropwizard.metrics.jetty11</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
       </span>
       <span class="absValue">
    -    (14/14)
    +    (25/26)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.9%
    +    62.3%
    +  </span>
    +  <span class="absValue">
    +    (76/122)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
       </span>
       <span class="absValue">
    -    (43/59)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.6%
    +    75%
       </span>
       <span class="absValue">
    -    (151/185)
    +    (276/368)
       </span>
     </td>
       </tr>
    @@ -83,12 +95,16 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -105,6 +121,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
         (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
         94.7%
    @@ -115,56 +132,93 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    70.4%
    +    66.7%
       </span>
       <span class="absValue">
    -    (19/27)
    +    (16/24)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    76.9%
       </span>
       <span class="absValue">
    -    (103/128)
    +    (30/39)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.6%
    +    62%
       </span>
       <span class="absValue">
    -    (16/23)
    +    (31/50)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    78.9%
    +    74.3%
    +  </span>
    +  <span class="absValue">
    +    (107/144)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
       </span>
       <span class="absValue">
    -    (30/38)
    +    (121/166)
       </span>
     </td>
       </tr>
    @@ -191,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
    index 697b153c3d..013ca4c7b3 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    +io.dropwizard.metrics.jetty11</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    +    <td class="name">io.dropwizard.metrics.jetty11</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    96.2%
       </span>
       <span class="absValue">
    -    (14/14)
    +    (25/26)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.9%
    +    62.3%
       </span>
       <span class="absValue">
    -    (43/59)
    +    (76/122)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.6%
    +    0%
       </span>
       <span class="absValue">
    -    (151/185)
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75%
    +  </span>
    +  <span class="absValue">
    +    (276/368)
       </span>
     </td>
       </tr>
    @@ -83,12 +95,16 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,72 +115,110 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.6%
    +    66.7%
       </span>
       <span class="absValue">
    -    (16/23)
    +    (16/24)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    78.9%
    +    76.9%
       </span>
       <span class="absValue">
    -    (30/38)
    +    (30/39)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (10/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    62%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (31/50)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    74.3%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (107/144)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.9%
    +  </span>
    +  <span class="absValue">
    +    (121/166)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    70.4%
    +    88.9%
       </span>
       <span class="absValue">
    -    (19/27)
    +    (8/9)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    94.7%
       </span>
       <span class="absValue">
    -    (103/128)
    +    (18/19)
       </span>
     </td>
       </tr>
    @@ -191,7 +245,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-1.html
    index 58eefc56da..12d2be327f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedHandler</title>
    +  <title>Coverage Report > InstrumentedConnectionFactory</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    +    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
     </div>
     
    -<h1>Coverage Summary for Class: AbstractInstrumentedHandler (io.dropwizard.metrics.jetty12)</h1>
    +<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty11)</h1>
     
     <table class="coverageStats">
     
    @@ -38,146 +38,32 @@ <h1>Coverage Summary for Class: AbstractInstrumentedHandler (io.dropwizard.metri
     </th>
     </tr>
     <tr>
    -  <td class="name">AbstractInstrumentedHandler</td>
    +  <td class="name">InstrumentedConnectionFactory</td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    83.3%
       </span>
       <span class="absValue">
    -    (12/14)
    +    (5/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.1%
    +    91.7%
       </span>
       <span class="absValue">
    -    (96/109)
    +    (11/12)
       </span>
     </td>
     </tr>
       <tr>
    -    <td class="name">AbstractInstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$7</td>
    +    <td class="name">InstrumentedConnectionFactory$1</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
    @@ -185,7 +71,7 @@ <h1>Coverage Summary for Class: AbstractInstrumentedHandler (io.dropwizard.metri
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -193,18 +79,18 @@ <h1>Coverage Summary for Class: AbstractInstrumentedHandler (io.dropwizard.metri
       <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    70.4%
    +    88.9%
       </span>
       <span class="absValue">
    -    (19/27)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    94.7%
       </span>
       <span class="absValue">
    -    (103/128)
    +    (18/19)
       </span>
     </td>
     </tr>
    @@ -215,344 +101,67 @@ <h1>Coverage Summary for Class: AbstractInstrumentedHandler (io.dropwizard.metri
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
     &nbsp;
     &nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
     &nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.Response;
    +&nbsp;import org.eclipse.jetty.io.Connection;
    +&nbsp;import org.eclipse.jetty.io.EndPoint;
    +&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    +&nbsp;import org.eclipse.jetty.server.Connector;
    +&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
     &nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
     &nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
     &nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    +&nbsp;    private final ConnectionFactory connectionFactory;
    +&nbsp;    private final Timer timer;
    +&nbsp;    private final Counter counter;
     &nbsp;
    -&nbsp;/**
    -&nbsp; * An abstract base class of a Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    -&nbsp; */
    -&nbsp;public abstract class AbstractInstrumentedHandler extends Handler.Wrapper {
    -&nbsp;    protected static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    protected static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    protected static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    protected static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    protected static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    protected static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    protected static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    protected static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    protected static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    protected static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    protected static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    protected static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    protected static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    protected static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    protected static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    protected static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    protected static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    protected static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    protected static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    protected static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    protected static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    protected static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    protected static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    protected static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    protected final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    protected final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    protected Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    protected Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    protected Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    protected Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    protected Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    protected Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    protected Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    protected final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    protected List&lt;Meter&gt; responses;
    -&nbsp;    protected Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    protected Timer getRequests;
    -&nbsp;    protected Timer postRequests;
    -&nbsp;    protected Timer headRequests;
    -&nbsp;    protected Timer putRequests;
    -&nbsp;    protected Timer deleteRequests;
    -&nbsp;    protected Timer optionsRequests;
    -&nbsp;    protected Timer traceRequests;
    -&nbsp;    protected Timer connectRequests;
    -&nbsp;    protected Timer moveRequests;
    -&nbsp;    protected Timer otherRequests;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    +<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    +<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    +<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    +<b class="fc">&nbsp;        this.timer = timer;</b>
    +<b class="fc">&nbsp;        this.counter = counter;</b>
    +<b class="fc">&nbsp;        addBean(connectionFactory);</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;                    ));
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;             this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    +&nbsp;    public String getProtocol() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    public List&lt;String&gt; getProtocols() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    protected Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;    @Override
    +&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    +<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    +<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    +&nbsp;            private Timer.Context context;
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onOpened(Connection connection) {
    +<b class="fc">&nbsp;                this.context = timer.time();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.inc();</b>
    +&nbsp;                }
     &nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
     &nbsp;
    -&nbsp;    protected void updateResponses(Request request, Response response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="nc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            @Override
    +&nbsp;            public void onClosed(Connection connection) {
    +<b class="fc">&nbsp;                context.stop();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.dec();</b>
    +&nbsp;                }
     &nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    +&nbsp;        });
    +<b class="fc">&nbsp;        return connection;</b>
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -578,7 +187,7 @@ <h1>Coverage Summary for Class: AbstractInstrumentedHandler (io.dropwizard.metri
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-2.html
    index 1b02c1e6ec..f0a507589f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-2.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    +  <title>Coverage Report > InstrumentedHandler</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    +    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty12)</h1>
    +<h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty11)</h1>
     
     <table class="coverageStats">
     
    @@ -33,37 +33,155 @@ <h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.met
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    +  <td class="name">InstrumentedHandler</td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    81.2%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (13/16)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.7%
    +    86.3%
       </span>
       <span class="absValue">
    -    (11/12)
    +    (113/131)
       </span>
     </td>
     </tr>
       <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    +    <td class="name">InstrumentedHandler$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$4</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$7</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
    @@ -71,7 +189,53 @@ <h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.met
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/11)
       </span>
     </td>
       </tr>
    @@ -79,18 +243,26 @@ <h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.met
       <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (21/39)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
       </span>
       <span class="absValue">
    -    (8/9)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    94.7%
    +    72.9%
       </span>
       <span class="absValue">
    -    (18/19)
    +    (121/166)
       </span>
     </td>
     </tr>
    @@ -101,67 +273,447 @@ <h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.met
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
     &nbsp;
     &nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
     &nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import jakarta.servlet.AsyncEvent;
    +&nbsp;import jakarta.servlet.AsyncListener;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
    +&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.server.Handler;
    +&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
     &nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
     &nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    +&nbsp; * instance.
    +&nbsp; */
    +<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    +&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    +&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    +&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    +&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    +&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    +&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    +&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    +&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    +&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    +&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    +&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    +&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    +&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    +&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    +&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    +&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    +&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    +&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    +&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    +&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    +&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;
    +&nbsp;    private String name;
    +&nbsp;    private final String prefix;
    +&nbsp;
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    private Timer requests;
    +&nbsp;
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    private Timer dispatches;
    +&nbsp;
    +&nbsp;    // the number of active requests
    +&nbsp;    private Counter activeRequests;
    +&nbsp;
    +&nbsp;    // the number of active dispatches
    +&nbsp;    private Counter activeDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    private Counter activeSuspended;
    +&nbsp;
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    private Meter asyncDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    private Meter asyncTimeouts;
     &nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    +&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    private List&lt;Meter&gt; responses;
    +&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
     &nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    +&nbsp;    private Timer getRequests;
    +&nbsp;    private Timer postRequests;
    +&nbsp;    private Timer headRequests;
    +&nbsp;    private Timer putRequests;
    +&nbsp;    private Timer deleteRequests;
    +&nbsp;    private Timer optionsRequests;
    +&nbsp;    private Timer traceRequests;
    +&nbsp;    private Timer connectRequests;
    +&nbsp;    private Timer moveRequests;
    +&nbsp;    private Timer otherRequests;
    +&nbsp;
    +&nbsp;    private AsyncListener listener;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    +<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
     &nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    +&nbsp;    public String getName() {
    +<b class="fc">&nbsp;        return name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setName(String name) {
    +<b class="fc">&nbsp;        this.name = name;</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    +&nbsp;                    ));
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                public Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    +<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    +<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    +<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        super.doStop();</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    +&nbsp;    public void handle(String path,
    +&nbsp;                       Request request,
    +&nbsp;                       HttpServletRequest httpRequest,
    +&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="nc">&nbsp;            activeSuspended.dec();</b>
    +<b class="nc">&nbsp;            if (state.getState() == HttpChannelState.State.HANDLING) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
     &nbsp;            }
    +&nbsp;        }
     &nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    +&nbsp;        try {
    +<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            activeDispatches.dec();</b>
    +<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.inc();</b>
    +<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    +&nbsp;            }
    +&nbsp;            // else onCompletion will handle it.
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="fc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    };
    +&nbsp;
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    +<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    +<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    +<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.dec();</b>
     &nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    +&nbsp;        }
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -187,7 +739,7 @@ <h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.met
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-3.html
    index c14bf506b2..e27cfc5ebb 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-3.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-3.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    +  <title>Coverage Report > InstrumentedHttpChannelListener</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    +    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty12)</h1>
    +<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty11)</h1>
     
     <table class="coverageStats">
     
    @@ -38,26 +38,26 @@ <h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metr
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    +  <td class="name">InstrumentedHttpChannelListener</td>
     <td class="coverageStat">
       <span class="percent">
    -    76.5%
    +    74.1%
       </span>
       <span class="absValue">
    -    (13/17)
    +    (20/27)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.1%
    +    82.6%
       </span>
       <span class="absValue">
    -    (27/31)
    +    (90/109)
       </span>
     </td>
     </tr>
       <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    +    <td class="name">InstrumentedHttpChannelListener$1</td>
     <td class="coverageStat">
       <span class="percent">
         50%
    @@ -66,6 +66,17 @@ <h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metr
         (1/2)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$2</td>
     <td class="coverageStat">
       <span class="percent">
         50%
    @@ -73,10 +84,18 @@ <h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metr
       <span class="absValue">
         (1/2)
       </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
     </td>
       </tr>
       <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    +    <td class="name">InstrumentedHttpChannelListener$3</td>
     <td class="coverageStat">
       <span class="percent">
         50%
    @@ -85,6 +104,17 @@ <h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metr
         (1/2)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$4</td>
     <td class="coverageStat">
       <span class="percent">
         50%
    @@ -92,10 +122,18 @@ <h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metr
       <span class="absValue">
         (1/2)
       </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
     </td>
       </tr>
       <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    +    <td class="name">InstrumentedHttpChannelListener$5</td>
     <td class="coverageStat">
       <span class="percent">
         50%
    @@ -111,24 +149,100 @@ <h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metr
       <span class="absValue">
         (1/3)
       </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$7</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.7%
    +  </span>
    +  <span class="absValue">
    +    (8/11)
    +  </span>
     </td>
       </tr>
     <tr>
       <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    69.6%
    +    62%
       </span>
       <span class="absValue">
    -    (16/23)
    +    (31/50)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    78.9%
    +    74.3%
       </span>
       <span class="absValue">
    -    (30/38)
    +    (107/144)
       </span>
     </td>
     </tr>
    @@ -139,172 +253,428 @@ <h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metr
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
     &nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
     &nbsp;import com.codahale.metrics.MetricRegistry;
     &nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import jakarta.servlet.AsyncEvent;
    +&nbsp;import jakarta.servlet.AsyncListener;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
    +&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    +&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    +&nbsp;import org.eclipse.jetty.server.Request;
     &nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
     &nbsp;
     &nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
     &nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    +&nbsp;/**
    +&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    +&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    +&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    +&nbsp; *
    +&nbsp; * @since TBD
    +&nbsp; */
    +<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    +&nbsp;        implements Listener {
    +<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
     &nbsp;
     &nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
     &nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    private final Timer requests;
     &nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    private final Timer dispatches;
     &nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    +&nbsp;    // the number of active requests
    +&nbsp;    private final Counter activeRequests;
     &nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    -&nbsp;    }
    +&nbsp;    // the number of active dispatches
    +&nbsp;    private final Counter activeDispatches;
     &nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    private final Counter activeSuspended;
     &nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    -&nbsp;    }
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    private final Meter asyncDispatches;
     &nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    -&nbsp;    }
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    private final Meter asyncTimeouts;
     &nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    -&nbsp;    }
    +&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    private final List&lt;Meter&gt; responses;
    +&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;    private final String prefix;
    +&nbsp;    private final Timer getRequests;
    +&nbsp;    private final Timer postRequests;
    +&nbsp;    private final Timer headRequests;
    +&nbsp;    private final Timer putRequests;
    +&nbsp;    private final Timer deleteRequests;
    +&nbsp;    private final Timer optionsRequests;
    +&nbsp;    private final Timer traceRequests;
    +&nbsp;    private final Timer connectRequests;
    +&nbsp;    private final Timer moveRequests;
    +&nbsp;    private final Timer otherRequests;
    +&nbsp;
    +&nbsp;    private final AsyncListener listener;
     &nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     */
    +&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param pref     the prefix to use for the metrics names
    +&nbsp;     */
    +&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    +<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param pref     the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
     <b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
     &nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    +<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
     &nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
     &nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
     &nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    +<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    +<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    +<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    +<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
     &nbsp;            @Override
     &nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
     &nbsp;            }
     &nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
     &nbsp;            @Override
     &nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
     &nbsp;            }
     &nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
     &nbsp;            @Override
     &nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            public Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
     &nbsp;            }
     &nbsp;        });
    +&nbsp;
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;    public void onRequestBegin(final Request request) {
     &nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    +<b class="fc">&nbsp;    }</b>
     &nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    @Override
    +&nbsp;    public void onBeforeDispatch(final Request request) {
    +<b class="fc">&nbsp;        before(request);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    +&nbsp;    @Override
    +&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onAfterDispatch(final Request request) {
    +<b class="fc">&nbsp;        after(request);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestContentEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestTrailers(final Request request) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseBegin(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseCommit(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseEnd(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void onComplete(final Request request) {
    +&nbsp;
    +<b class="fc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    private void before(final Request request) {
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            activeSuspended.dec();</b>
    +<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void after(final Request request) {
    +<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    +<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.dec();</b>
    +<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    +<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    +<b class="fc">&nbsp;            activeSuspended.inc();</b>
    +<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    +&nbsp;        }
    +&nbsp;        // else onCompletion will handle it.
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="fc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    };
    +&nbsp;
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    +<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    +<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    +<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    +<b class="fc">&nbsp;                activeSuspended.dec();</b>
    +&nbsp;            }
    +&nbsp;        }
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -330,7 +700,7 @@ <h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metr
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-4.html
    new file mode 100644
    index 0000000000..57d1fb1729
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-4.html
    @@ -0,0 +1,345 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty11)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedQueuedThreadPool</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.4%
    +  </span>
    +  <span class="absValue">
    +    (27/32)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (16/24)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.9%
    +  </span>
    +  <span class="absValue">
    +    (30/39)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import org.eclipse.jetty.util.annotation.Name;
    +&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    +&nbsp;
    +&nbsp;import java.util.concurrent.BlockingQueue;
    +&nbsp;import java.util.concurrent.ThreadFactory;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    +&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    +&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    +&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    +&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    +&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;    private String prefix;
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, 200);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    +&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    +<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getPrefix() {
    +<b class="nc">&nbsp;        return prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setPrefix(String prefix) {
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    +&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    +&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    +<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index.html
    index 8f8e60fdb6..aa96a30048 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    +io.dropwizard.metrics.jetty12</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (14/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    72.9%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (43/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    81.6%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (151/185)
       </span>
     </td>
       </tr>
    @@ -95,46 +83,88 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    69.6%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (16/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    78.9%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (30/38)
       </span>
     </td>
       </tr>
    @@ -161,7 +191,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK.html
    index 197c60e294..4aa3f0440b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    +io.dropwizard.metrics.jetty12</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (14/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    72.9%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (43/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    81.6%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (151/185)
       </span>
     </td>
       </tr>
    @@ -94,47 +82,89 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    80.5%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (103/128)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    69.6%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (16/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    78.9%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (30/38)
       </span>
     </td>
       </tr>
    @@ -161,7 +191,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
    index e4df5967b2..2808f5b255 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    +io.dropwizard.metrics.jetty12</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (14/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    72.9%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (43/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    81.6%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (151/185)
       </span>
     </td>
       </tr>
    @@ -94,47 +82,89 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    78.9%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (30/38)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    70.4%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (19/27)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    80.5%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (103/128)
       </span>
     </td>
       </tr>
    @@ -161,7 +191,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS.html
    index fa6cb5ccfc..d062a9fd24 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    +io.dropwizard.metrics.jetty12</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (14/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    72.9%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (43/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    81.6%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (151/185)
       </span>
     </td>
       </tr>
    @@ -95,46 +83,88 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    69.6%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (16/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    78.9%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (30/38)
       </span>
     </td>
       </tr>
    @@ -161,7 +191,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
    index c0c279add8..45f50f5268 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    +io.dropwizard.metrics.jetty12</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (14/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    72.9%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (43/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    81.6%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (151/185)
       </span>
     </td>
       </tr>
    @@ -95,46 +83,88 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    70.4%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (19/27)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    80.5%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (103/128)
       </span>
     </td>
       </tr>
    @@ -161,7 +191,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE.html
    index 97b8db1bc5..ce5523a617 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    +io.dropwizard.metrics.jetty12</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (14/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    72.9%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (43/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    81.6%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (151/185)
       </span>
     </td>
       </tr>
    @@ -94,47 +82,89 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
     <th class="coverageStat sortedAsc
     ">
       <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    88.9%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    94.7%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (18/19)
       </span>
     </td>
       </tr>
    @@ -161,7 +191,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
    index d533e52b25..915de3ed53 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    +io.dropwizard.metrics.jetty12</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (14/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    72.9%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (43/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    81.6%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (151/185)
       </span>
     </td>
       </tr>
    @@ -94,47 +82,89 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
     <th class="coverageStat sortedDesc
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    69.6%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (16/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    78.9%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (30/38)
       </span>
     </td>
       </tr>
    @@ -161,7 +191,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD.html
    index 692baa9dfe..9f143c978d 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    +io.dropwizard.metrics.jetty12</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (14/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    72.9%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (43/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    81.6%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (151/185)
       </span>
     </td>
       </tr>
    @@ -95,46 +83,88 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
       <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    88.9%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (8/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    94.7%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (18/19)
       </span>
     </td>
       </tr>
    @@ -161,7 +191,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
    index 7f158601ba..c6811fa8a9 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    +io.dropwizard.metrics.jetty12</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (14/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    72.9%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (43/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    81.6%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (151/185)
       </span>
     </td>
       </tr>
    @@ -95,46 +83,88 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (103/128)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    69.6%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (16/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    78.9%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (30/38)
       </span>
     </td>
       </tr>
    @@ -161,7 +191,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
    index 126c37119c..c7f216a8b8 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    +io.dropwizard.metrics.jetty12</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.jetty12</td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (14/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    72.9%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (43/59)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    81.6%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (151/185)
       </span>
     </td>
       </tr>
    @@ -95,46 +83,88 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    70.4%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (19/27)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    80.5%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (103/128)
       </span>
     </td>
       </tr>
    @@ -161,7 +191,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-1.html
    index 05555e7019..234a727526 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedEE10Handler</title>
    +  <title>Coverage Report > AbstractInstrumentedHandler</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12.ee10</a>
    +    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedEE10Handler (io.dropwizard.metrics.jetty12.ee10)</h1>
    +<h1>Coverage Summary for Class: AbstractInstrumentedHandler (io.dropwizard.metrics.jetty12)</h1>
     
     <table class="coverageStats">
     
    @@ -33,106 +33,178 @@ <h1>Coverage Summary for Class: InstrumentedEE10Handler (io.dropwizard.metrics.j
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedEE10Handler</td>
    +  <td class="name">AbstractInstrumentedHandler</td>
     <td class="coverageStat">
       <span class="percent">
    -    57.1%
    +    85.7%
       </span>
       <span class="absValue">
    -    (4/7)
    +    (12/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.9%
    +    88.1%
       </span>
       <span class="absValue">
    -    (23/32)
    +    (96/109)
       </span>
     </td>
     </tr>
       <tr>
    -    <td class="name">InstrumentedEE10Handler$1</td>
    +    <td class="name">AbstractInstrumentedHandler$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
       </tr>
       <tr>
    -    <td class="name">InstrumentedEE10Handler$AsyncAttachingListener</td>
    +    <td class="name">AbstractInstrumentedHandler$2</td>
     <td class="coverageStat">
       <span class="percent">
    -    20%
    +    50%
       </span>
       <span class="absValue">
    -    (1/5)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    20%
    +    33.3%
       </span>
       <span class="absValue">
    -    (1/5)
    +    (1/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name">InstrumentedEE10Handler$InstrumentedAsyncListener</td>
    +    <td class="name">AbstractInstrumentedHandler$3</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    50%
       </span>
       <span class="absValue">
    -    (0/5)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    33.3%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (1/3)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedHandler$4</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    50%
       </span>
       <span class="absValue">
    -    (0/13)
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
       </span>
     </td>
       </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    +  <tr>
    +    <td class="name">AbstractInstrumentedHandler$5</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedHandler$6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedHandler$7</td>
     <td class="coverageStat">
       <span class="percent">
    -    29.4%
    +    100%
       </span>
       <span class="absValue">
    -    (5/17)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70.4%
    +  </span>
    +  <span class="absValue">
    +    (19/27)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    48%
    +    80.5%
       </span>
       <span class="absValue">
    -    (24/50)
    +    (103/128)
       </span>
     </td>
     </tr>
    @@ -143,45 +215,117 @@ <h1>Coverage Summary for Class: InstrumentedEE10Handler (io.dropwizard.metrics.j
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12.ee10;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
     &nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
     &nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import com.codahale.metrics.Timer;
     &nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import io.dropwizard.metrics.jetty12.AbstractInstrumentedHandler;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletApiRequest;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletApiResponse;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletChannelState;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletContextRequest;
    +&nbsp;import org.eclipse.jetty.http.HttpMethod;
     &nbsp;import org.eclipse.jetty.server.Handler;
     &nbsp;import org.eclipse.jetty.server.Request;
     &nbsp;import org.eclipse.jetty.server.Response;
    -&nbsp;import org.eclipse.jetty.util.Callback;
     &nbsp;
    -&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.EnumSet;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
     &nbsp;import java.util.concurrent.TimeUnit;
     &nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
     &nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
     &nbsp;
     &nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance. This {@link Handler} requires a {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} to be present.
    -&nbsp; * For correct behaviour, the {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} should be before this handler
    -&nbsp; * in the handler chain. To achieve this, one can use
    -&nbsp; * {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler#insertHandler(Singleton)}.
    +&nbsp; * An abstract base class of a Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    +&nbsp; * instance.
     &nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedEE10Handler extends AbstractInstrumentedHandler {</b>
    -&nbsp;    private AsyncListener listener;
    +&nbsp;public abstract class AbstractInstrumentedHandler extends Handler.Wrapper {
    +&nbsp;    protected static final String NAME_REQUESTS = &quot;requests&quot;;
    +&nbsp;    protected static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    +&nbsp;    protected static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    +&nbsp;    protected static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    +&nbsp;    protected static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    +&nbsp;    protected static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    +&nbsp;    protected static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    +&nbsp;    protected static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    +&nbsp;    protected static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    +&nbsp;    protected static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    +&nbsp;    protected static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    +&nbsp;    protected static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    +&nbsp;    protected static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    +&nbsp;    protected static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    +&nbsp;    protected static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    +&nbsp;    protected static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    +&nbsp;    protected static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    +&nbsp;    protected static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    +&nbsp;    protected static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    +&nbsp;    protected static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    +&nbsp;    protected static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    +&nbsp;    protected static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    +&nbsp;    protected static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    +&nbsp;    protected static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    +&nbsp;    protected static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    +&nbsp;    protected static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    +&nbsp;    protected static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    +&nbsp;    protected static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    +<b class="fc">&nbsp;    protected static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    +<b class="fc">&nbsp;    protected static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    +&nbsp;
    +&nbsp;    protected final MetricRegistry metricRegistry;
    +&nbsp;
    +&nbsp;    private String name;
    +&nbsp;    protected final String prefix;
    +&nbsp;
    +&nbsp;    // the requests handled by this handler, excluding active
    +&nbsp;    protected Timer requests;
    +&nbsp;
    +&nbsp;    // the number of dispatches seen by this handler, excluding active
    +&nbsp;    protected Timer dispatches;
    +&nbsp;
    +&nbsp;    // the number of active requests
    +&nbsp;    protected Counter activeRequests;
    +&nbsp;
    +&nbsp;    // the number of active dispatches
    +&nbsp;    protected Counter activeDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests currently suspended.
    +&nbsp;    protected Counter activeSuspended;
    +&nbsp;
    +&nbsp;    // the number of requests that have been asynchronously dispatched
    +&nbsp;    protected Meter asyncDispatches;
    +&nbsp;
    +&nbsp;    // the number of requests that expired while suspended
    +&nbsp;    protected Meter asyncTimeouts;
    +&nbsp;
    +&nbsp;    protected final ResponseMeteredLevel responseMeteredLevel;
    +&nbsp;    protected List&lt;Meter&gt; responses;
    +&nbsp;    protected Map&lt;Integer, Meter&gt; responseCodeMeters;
    +&nbsp;
    +&nbsp;    protected Timer getRequests;
    +&nbsp;    protected Timer postRequests;
    +&nbsp;    protected Timer headRequests;
    +&nbsp;    protected Timer putRequests;
    +&nbsp;    protected Timer deleteRequests;
    +&nbsp;    protected Timer optionsRequests;
    +&nbsp;    protected Timer traceRequests;
    +&nbsp;    protected Timer connectRequests;
    +&nbsp;    protected Timer moveRequests;
    +&nbsp;    protected Timer otherRequests;
     &nbsp;
     &nbsp;    /**
     &nbsp;     * Create a new instrumented handler using a given metrics registry.
     &nbsp;     *
     &nbsp;     * @param registry the registry for the metrics
     &nbsp;     */
    -&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        super(registry, null);</b>
    +&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry) {
    +<b class="nc">&nbsp;        this(registry, null);</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    /**
    @@ -190,8 +334,8 @@ <h1>Coverage Summary for Class: InstrumentedEE10Handler (io.dropwizard.metrics.j
     &nbsp;     * @param registry the registry for the metrics
     &nbsp;     * @param prefix   the prefix to use for the metrics names
     &nbsp;     */
    -&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        super(registry, prefix, COARSE);</b>
    +&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix) {
    +<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    /**
    @@ -201,123 +345,215 @@ <h1>Coverage Summary for Class: InstrumentedEE10Handler (io.dropwizard.metrics.j
     &nbsp;     * @param prefix   the prefix to use for the metrics names
     &nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
     &nbsp;     */
    -&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {
    -<b class="fc">&nbsp;        super(registry, prefix, responseMeteredLevel);</b>
    +<b class="fc">&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    +<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    +&nbsp;    public String getName() {
    +<b class="fc">&nbsp;        return name;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    public void setName(String name) {
    +<b class="fc">&nbsp;        this.name = name;</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public boolean handle(Request request, Response response, Callback callback) throws Exception {
    -<b class="fc">&nbsp;        ServletContextRequest servletContextRequest = Request.as(request, ServletContextRequest.class);</b>
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
     &nbsp;
    -&nbsp;        // only handle servlet requests with the InstrumentedHandler
    -&nbsp;        // because it depends on the ServletRequestState
    -<b class="fc">&nbsp;        if (servletContextRequest == null) {</b>
    -<b class="nc">&nbsp;            return super.handle(request, response, callback);</b>
    -&nbsp;        }
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
     &nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
     &nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final ServletChannelState state = servletContextRequest.getServletRequestState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = Request.getTimeStamp(request);</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == ServletChannelState.State.HANDLING) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    +<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
     &nbsp;
    -<b class="fc">&nbsp;        boolean handled = false;</b>
    +<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
     &nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            handled = super.handle(request, response, callback);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    +<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
     &nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
     &nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(request, response, start, handled);</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    +<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    +&nbsp;                    ));
     &nbsp;
    -<b class="fc">&nbsp;        return handled;</b>
    -&nbsp;    }
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
     &nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
     &nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                protected Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;
    +<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    +&nbsp;                @Override
    +&nbsp;                public Ratio getRatio() {
    +<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    +<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    +&nbsp;                }
    +&nbsp;            });
    +&nbsp;        } else {
    +<b class="fc">&nbsp;             this.responses = Collections.emptyList();</b>
     &nbsp;        }
    +&nbsp;    }
     &nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
     &nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    +<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    +<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    +<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        super.doStop();</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    +&nbsp;    protected Timer requestTimer(String method) {
    +<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    +<b class="fc">&nbsp;        if (m == null) {</b>
    +<b class="nc">&nbsp;            return otherRequests;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            switch (m) {</b>
    +&nbsp;                case GET:
    +<b class="fc">&nbsp;                    return getRequests;</b>
    +&nbsp;                case POST:
    +<b class="nc">&nbsp;                    return postRequests;</b>
    +&nbsp;                case PUT:
    +<b class="nc">&nbsp;                    return putRequests;</b>
    +&nbsp;                case HEAD:
    +<b class="nc">&nbsp;                    return headRequests;</b>
    +&nbsp;                case DELETE:
    +<b class="nc">&nbsp;                    return deleteRequests;</b>
    +&nbsp;                case OPTIONS:
    +<b class="nc">&nbsp;                    return optionsRequests;</b>
    +&nbsp;                case TRACE:
    +<b class="nc">&nbsp;                    return traceRequests;</b>
    +&nbsp;                case CONNECT:
    +<b class="nc">&nbsp;                    return connectRequests;</b>
    +&nbsp;                case MOVE:
    +<b class="nc">&nbsp;                    return moveRequests;</b>
    +&nbsp;                default:
    +<b class="nc">&nbsp;                    return otherRequests;</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
     &nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;    protected void updateResponses(Request request, Response response, long start, boolean isHandled) {
    +<b class="fc">&nbsp;        if (isHandled) {</b>
    +<b class="nc">&nbsp;            mark(response.getStatus());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
     &nbsp;        }
    +<b class="fc">&nbsp;        activeRequests.dec();</b>
    +<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    +<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;    protected void mark(int statusCode) {
    +<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
     &nbsp;        }
     &nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final ServletApiRequest request = (ServletApiRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final ServletApiResponse response = (ServletApiResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request.getRequest(), response.getResponse(), startTime, true);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            final ServletContextRequest servletContextRequest = Request.as(request.getRequest(), ServletContextRequest.class);</b>
    -<b class="nc">&nbsp;            final ServletChannelState servletRequestState = servletContextRequest.getServletRequestState();</b>
    -<b class="nc">&nbsp;            if (!servletRequestState.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    +<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    +<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    +<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    +<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
     &nbsp;            }
     &nbsp;        }
     &nbsp;    }
    +&nbsp;
    +&nbsp;    protected Meter getResponseCodeMeter(int statusCode) {
    +<b class="fc">&nbsp;        return responseCodeMeters</b>
    +<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    +<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    +&nbsp;    }
     &nbsp;}
     </code>
     </pre>
    @@ -342,7 +578,7 @@ <h1>Coverage Summary for Class: InstrumentedEE10Handler (io.dropwizard.metrics.j
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-2.html
    new file mode 100644
    index 0000000000..61d06d9c1c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-2.html
    @@ -0,0 +1,193 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedConnectionFactory</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty12)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedConnectionFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.7%
    +  </span>
    +  <span class="absValue">
    +    (11/12)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedConnectionFactory$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.9%
    +  </span>
    +  <span class="absValue">
    +    (8/9)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.eclipse.jetty.io.Connection;
    +&nbsp;import org.eclipse.jetty.io.EndPoint;
    +&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    +&nbsp;import org.eclipse.jetty.server.Connector;
    +&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;
    +<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    +&nbsp;    private final ConnectionFactory connectionFactory;
    +&nbsp;    private final Timer timer;
    +&nbsp;    private final Counter counter;
    +&nbsp;
    +&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    +<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    +<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    +<b class="fc">&nbsp;        this.timer = timer;</b>
    +<b class="fc">&nbsp;        this.counter = counter;</b>
    +<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public String getProtocol() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public List&lt;String&gt; getProtocols() {
    +<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    +<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    +<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    +&nbsp;            private Timer.Context context;
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onOpened(Connection connection) {
    +<b class="fc">&nbsp;                this.context = timer.time();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.inc();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void onClosed(Connection connection) {
    +<b class="fc">&nbsp;                context.stop();</b>
    +<b class="fc">&nbsp;                if (counter != null) {</b>
    +<b class="fc">&nbsp;                    counter.dec();</b>
    +&nbsp;                }
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        return connection;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-3.html
    new file mode 100644
    index 0000000000..0d85d10ee3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-3.html
    @@ -0,0 +1,336 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty12)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedQueuedThreadPool</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    76.5%
    +  </span>
    +  <span class="absValue">
    +    (13/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.1%
    +  </span>
    +  <span class="absValue">
    +    (27/31)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedQueuedThreadPool$3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (1/3)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    69.6%
    +  </span>
    +  <span class="absValue">
    +    (16/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    78.9%
    +  </span>
    +  <span class="absValue">
    +    (30/38)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.RatioGauge;
    +&nbsp;import org.eclipse.jetty.util.annotation.Name;
    +&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    +&nbsp;
    +&nbsp;import java.util.concurrent.BlockingQueue;
    +&nbsp;import java.util.concurrent.ThreadFactory;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;
    +<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    +&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    +&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    +&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    +&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    +&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;    private String prefix;
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    +<b class="fc">&nbsp;        this(registry, 200);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    +<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    +<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    +&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    +&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    +&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    +&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    +&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    +&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    +&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    +&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    +<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    +<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public String getPrefix() {
    +<b class="nc">&nbsp;        return prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void setPrefix(String prefix) {
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    +&nbsp;            }
    +&nbsp;        });
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    +&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    +&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    +<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    +&nbsp;            @Override
    +&nbsp;            protected Ratio getRatio() {
    +<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    +<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    +<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String getMetricPrefix() {
    +<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index.html
    index d3587cb0a0..3465f51f81 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    +io.dropwizard.metrics.jetty12.ee10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -83,34 +95,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -137,7 +161,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK.html
    index b6784d30ed..b4c1b35214 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    +io.dropwizard.metrics.jetty12.ee10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -82,35 +94,47 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -137,7 +161,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
    index c9a02bdf99..9d18f77842 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    +io.dropwizard.metrics.jetty12.ee10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -82,35 +94,47 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -137,7 +161,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS.html
    index 2c1cd21aa0..e7d4e20001 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    +io.dropwizard.metrics.jetty12.ee10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -83,34 +95,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -137,7 +161,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
    index aca581b0ef..4e4dee0123 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    +io.dropwizard.metrics.jetty12.ee10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -83,34 +95,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -137,7 +161,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE.html
    index 79fe030b6d..d7670bde21 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    +io.dropwizard.metrics.jetty12.ee10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -82,35 +94,47 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat sortedAsc
     ">
       <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -137,7 +161,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
    index 1c73dc8170..4503fad249 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    +io.dropwizard.metrics.jetty12.ee10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -82,35 +94,47 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat sortedDesc
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -137,7 +161,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD.html
    index 7296ee6ca6..d645d65992 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    +io.dropwizard.metrics.jetty12.ee10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -83,34 +95,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
       <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -137,7 +161,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
    index 6214c8e5ea..db1a4d5a4b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    +io.dropwizard.metrics.jetty12.ee10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -83,34 +95,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -137,7 +161,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
    index fde33ee499..0151376228 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    +  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    +io.dropwizard.metrics.jetty12.ee10</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    +    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -83,34 +95,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    29.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    48%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (24/50)
       </span>
     </td>
       </tr>
    @@ -137,7 +161,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/sources/source-1.html
    index 4cbb537852..ff49dc5549 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-23/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    +  <title>Coverage Report > InstrumentedEE10Handler</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,21 +19,22 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.logback13</a>
    +    <a href="../index.html">io.dropwizard.metrics.jetty12.ee10</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback13)</h1>
    +<h1>Coverage Summary for Class: InstrumentedEE10Handler (io.dropwizard.metrics.jetty12.ee10)</h1>
     
     <table class="coverageStats">
    +
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
     ">
    -  Class, %
    +  Method, %
     </th>
     <th class="coverageStat 
     ">
    -  Method, %
    +  Branch, %
     </th>
     <th class="coverageStat 
     ">
    @@ -41,33 +42,100 @@ <h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logb
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedAppender</td>
    +  <td class="name">InstrumentedEE10Handler</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.9%
    +  </span>
    +  <span class="absValue">
    +    (23/32)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedEE10Handler$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedEE10Handler$AsyncAttachingListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    20%
    +  </span>
    +  <span class="absValue">
    +    (1/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    20%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (1/5)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name">InstrumentedEE10Handler$InstrumentedAsyncListener</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (24/24)
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/13)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    29.4%
    +  </span>
    +  <span class="absValue">
    +    (5/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    48%
    +  </span>
    +  <span class="absValue">
    +    (24/50)
       </span>
     </td>
     </tr>
    -
     </table>
     
     <br/>
    @@ -75,94 +143,179 @@ <h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logb
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback13;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12.ee10;
     &nbsp;
    -&nbsp;import ch.qos.logback.classic.Level;
    -&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    -&nbsp;import ch.qos.logback.core.Appender;
    -&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    -&nbsp;import com.codahale.metrics.Meter;
     &nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    +&nbsp;import io.dropwizard.metrics.jetty12.AbstractInstrumentedHandler;
    +&nbsp;import jakarta.servlet.AsyncEvent;
    +&nbsp;import jakarta.servlet.AsyncListener;
    +&nbsp;import org.eclipse.jetty.ee10.servlet.AsyncContextState;
    +&nbsp;import org.eclipse.jetty.ee10.servlet.ServletApiRequest;
    +&nbsp;import org.eclipse.jetty.ee10.servlet.ServletApiResponse;
    +&nbsp;import org.eclipse.jetty.ee10.servlet.ServletChannelState;
    +&nbsp;import org.eclipse.jetty.ee10.servlet.ServletContextRequest;
    +&nbsp;import org.eclipse.jetty.server.Handler;
    +&nbsp;import org.eclipse.jetty.server.Request;
    +&nbsp;import org.eclipse.jetty.server.Response;
    +&nbsp;import org.eclipse.jetty.util.Callback;
     &nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
     &nbsp;
     &nbsp;/**
    -&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    +&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    +&nbsp; * instance. This {@link Handler} requires a {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} to be present.
    +&nbsp; * For correct behaviour, the {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} should be before this handler
    +&nbsp; * in the handler chain. To achieve this, one can use
    +&nbsp; * {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler#insertHandler(Singleton)}.
     &nbsp; */
    -&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    -&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    -&nbsp;
    -&nbsp;    private Meter all;
    -&nbsp;    private Meter trace;
    -&nbsp;    private Meter debug;
    -&nbsp;    private Meter info;
    -&nbsp;    private Meter warn;
    -&nbsp;    private Meter error;
    -&nbsp;
    +<b class="nc">&nbsp;public class InstrumentedEE10Handler extends AbstractInstrumentedHandler {</b>
    +&nbsp;    private AsyncListener listener;
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry for the metrics
     &nbsp;     */
    -&nbsp;    public InstrumentedAppender() {
    -<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    +&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry) {
    +<b class="nc">&nbsp;        super(registry, null);</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
     &nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
     &nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    +&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry, String prefix) {
    +<b class="nc">&nbsp;        super(registry, prefix, COARSE);</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    +&nbsp;     * Create a new instrumented handler using a given metrics registry.
     &nbsp;     *
    -&nbsp;     * @param registry the metric registry
    +&nbsp;     * @param registry the registry for the metrics
    +&nbsp;     * @param prefix   the prefix to use for the metrics names
    +&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
     &nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    +&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {
    +<b class="fc">&nbsp;        super(registry, prefix, responseMeteredLevel);</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    +&nbsp;    protected void doStart() throws Exception {
    +<b class="fc">&nbsp;        super.doStart();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    protected void append(ILoggingEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    -&nbsp;            case Level.TRACE_INT:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.DEBUG_INT:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.INFO_INT:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.WARN_INT:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.ERROR_INT:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    +&nbsp;    protected void doStop() throws Exception {
    +<b class="fc">&nbsp;        super.doStop();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public boolean handle(Request request, Response response, Callback callback) throws Exception {
    +<b class="fc">&nbsp;        ServletContextRequest servletContextRequest = Request.as(request, ServletContextRequest.class);</b>
    +&nbsp;
    +&nbsp;        // only handle servlet requests with the InstrumentedHandler
    +&nbsp;        // because it depends on the ServletRequestState
    +<b class="fc">&nbsp;        if (servletContextRequest == null) {</b>
    +<b class="nc">&nbsp;            return super.handle(request, response, callback);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        activeDispatches.inc();</b>
    +&nbsp;
    +&nbsp;        final long start;
    +<b class="fc">&nbsp;        final ServletChannelState state = servletContextRequest.getServletRequestState();</b>
    +<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    +&nbsp;            // new request
    +<b class="fc">&nbsp;            activeRequests.inc();</b>
    +<b class="fc">&nbsp;            start = Request.getTimeStamp(request);</b>
    +<b class="fc">&nbsp;            state.addListener(listener);</b>
    +&nbsp;        } else {
    +&nbsp;            // resumed request
    +<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    +<b class="nc">&nbsp;            activeSuspended.dec();</b>
    +<b class="nc">&nbsp;            if (state.getState() == ServletChannelState.State.HANDLING) {</b>
    +<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        boolean handled = false;</b>
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            handled = super.handle(request, response, callback);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    +<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    +&nbsp;
    +<b class="fc">&nbsp;            activeDispatches.dec();</b>
    +<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.inc();</b>
    +<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    +<b class="fc">&nbsp;                updateResponses(request, response, start, handled);</b>
    +&nbsp;            }
    +&nbsp;            // else onCompletion will handle it.
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return handled;</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    +&nbsp;
    +&nbsp;        @Override
    +<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    +&nbsp;        private final long startTime;
    +&nbsp;
    +<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    +<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    +<b class="nc">&nbsp;            final ServletApiRequest request = (ServletApiRequest) state.getRequest();</b>
    +<b class="nc">&nbsp;            final ServletApiResponse response = (ServletApiResponse) state.getResponse();</b>
    +<b class="nc">&nbsp;            updateResponses(request.getRequest(), response.getResponse(), startTime, true);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            final ServletContextRequest servletContextRequest = Request.as(request.getRequest(), ServletContextRequest.class);</b>
    +<b class="nc">&nbsp;            final ServletChannelState servletRequestState = servletContextRequest.getServletRequestState();</b>
    +<b class="nc">&nbsp;            if (!servletRequestState.isSuspended()) {</b>
    +<b class="nc">&nbsp;                activeSuspended.dec();</b>
    +&nbsp;            }
     &nbsp;        }
     &nbsp;    }
     &nbsp;}
    @@ -189,7 +342,7 @@ <h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logb
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index.html
    index be5222eb24..045e96774e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    +io.dropwizard.metrics.logback13</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK.html
    index 7ca78d7ab5..1e5ced350f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    +io.dropwizard.metrics.logback13</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
    index 241e60eb23..e0fae667d8 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    +io.dropwizard.metrics.logback13</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS.html
    index 38dbe95975..dd3f106fca 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    +io.dropwizard.metrics.logback13</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
    index 8e46291ead..c47bd4ba86 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    +io.dropwizard.metrics.logback13</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE.html
    index baec4751ec..f556211d2d 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    +io.dropwizard.metrics.logback13</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
    index 16ddfe177a..34cee005b9 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    +io.dropwizard.metrics.logback13</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD.html
    index 83b60e6e8a..33070e4127 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    +io.dropwizard.metrics.logback13</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
    index e43ed986e6..d8f443bfa8 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    +io.dropwizard.metrics.logback13</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
    index 46ff4e8b35..bdc01abd71 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    +io.dropwizard.metrics.logback13</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    +    <td class="name">io.dropwizard.metrics.logback13</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/sources/source-1.html
    index 42ba3e4f3d..e481e05a60 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-24/sources/source-1.html
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.logback14</a>
    +    <a href="../index.html">io.dropwizard.metrics.logback13</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback14)</h1>
    +<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback13)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -75,7 +75,7 @@ <h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logb
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback14;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback13;
     &nbsp;
     &nbsp;import ch.qos.logback.classic.Level;
     &nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    @@ -189,7 +189,7 @@ <h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logb
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index.html
    index 60a1a411ca..3e0b48e72f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    +io.dropwizard.metrics.logback14</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK.html
    index a450b3f558..cdd76762cf 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    +io.dropwizard.metrics.logback14</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
    index ee31c2c351..d0c01f3146 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    +io.dropwizard.metrics.logback14</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS.html
    index 3e1122404b..831720ec24 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    +io.dropwizard.metrics.logback14</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
    index 90c718e323..6c56aa6416 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    +io.dropwizard.metrics.logback14</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE.html
    index de9e2c57b3..1219d2f21c 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    +io.dropwizard.metrics.logback14</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
    index 214f784f46..5ce9081bbe 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    +io.dropwizard.metrics.logback14</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD.html
    index 375e70d485..7665fa7f11 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    +io.dropwizard.metrics.logback14</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
    index b816fbdeb7..77f2def5f1 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    +io.dropwizard.metrics.logback14</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
    index aecb37bcab..d4996ca2a0 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    +io.dropwizard.metrics.logback14</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    +    <td class="name">io.dropwizard.metrics.logback14</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/sources/source-1.html
    index ea3dc1c16b..f25e0686c3 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-25/sources/source-1.html
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.logback15</a>
    +    <a href="../index.html">io.dropwizard.metrics.logback14</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback15)</h1>
    +<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback14)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -75,7 +75,7 @@ <h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logb
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback15;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback14;
     &nbsp;
     &nbsp;import ch.qos.logback.classic.Level;
     &nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    @@ -189,7 +189,7 @@ <h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logb
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index.html
    index cb4d72def4..762adb418e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    +io.dropwizard.metrics.logback15</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -95,51 +83,12 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -148,49 +97,20 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    +    (5/5)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK.html
    index e5eec15be7..6c04816d63 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    +io.dropwizard.metrics.logback15</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -94,17 +82,13 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -113,84 +97,20 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/73)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
    index b51be76aa6..41db4fe21c 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    +io.dropwizard.metrics.logback15</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -94,52 +82,13 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -148,49 +97,20 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    +    100%
       </span>
       <span class="absValue">
    -    (1/10)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS.html
    index da65e97835..e52f422fc2 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    +io.dropwizard.metrics.logback15</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -95,51 +83,12 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -148,49 +97,20 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    +    (5/5)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
    index 7ef222e980..470a6efcd0 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    +io.dropwizard.metrics.logback15</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -95,16 +83,12 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -113,84 +97,20 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/73)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE.html
    index 1b1fdd4d99..67d38362a6 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    +io.dropwizard.metrics.logback15</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -94,52 +82,13 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
     <th class="coverageStat sortedAsc
     ">
       <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -148,49 +97,20 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    +    (5/5)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
    index c1b9e388b7..925bf5160e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    +io.dropwizard.metrics.logback15</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -94,17 +82,13 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
     <th class="coverageStat sortedDesc
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -113,84 +97,20 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/73)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD.html
    index 681caba3d6..925a0f665a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    +io.dropwizard.metrics.logback15</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -95,51 +83,12 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
       <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -148,49 +97,20 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    +    (5/5)
       </span>
     </td>
    -    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
    index f3ebf23bd1..1399ff83ee 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    +io.dropwizard.metrics.logback15</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -95,16 +83,12 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -113,84 +97,20 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/73)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
    index 400e27bb79..2c527b1baa 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    +  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    +io.dropwizard.metrics.logback15</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,46 +33,34 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
       Method, %
     </th>
     <th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    +    <td class="name">io.dropwizard.metrics.logback15</td>
     <td class="coverageStat">
       <span class="percent">
    -    12.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/24)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.5%
    +    100%
       </span>
       <span class="absValue">
    -    (3/86)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -95,16 +83,12 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -113,84 +97,20 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/73)
    +    (24/24)
       </span>
     </td>
       </tr>
    @@ -217,7 +137,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-1.html
    index 8ebf857ad4..9c49105f27 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedFilter</title>
    +  <title>Coverage Report > InstrumentedAppender</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,22 +19,21 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    +    <a href="../index.html">io.dropwizard.metrics.logback15</a>
     </div>
     
    -<h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet)</h1>
    +<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback15)</h1>
     
     <table class="coverageStats">
    -
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
     ">
    -  Method, %
    +  Class, %
     </th>
     <th class="coverageStat 
     ">
    -  Branch, %
    +  Method, %
     </th>
     <th class="coverageStat 
     ">
    @@ -42,97 +41,33 @@ <h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metric
     </th>
     </tr>
     <tr>
    -  <td class="name">AbstractInstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/45)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    +  <td class="name">InstrumentedAppender</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/18)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/73)
    +    (24/24)
       </span>
     </td>
     </tr>
    +
     </table>
     
     <br/>
    @@ -140,222 +75,95 @@ <h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metric
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback15;
     &nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import ch.qos.logback.classic.Level;
    +&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    +&nbsp;import ch.qos.logback.core.Appender;
    +&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
     &nbsp;import com.codahale.metrics.Meter;
     &nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.Filter;
    -&nbsp;import jakarta.servlet.FilterChain;
    -&nbsp;import jakarta.servlet.FilterConfig;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.ServletRequest;
    -&nbsp;import jakarta.servlet.ServletResponse;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;import jakarta.servlet.http.HttpServletResponseWrapper;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Map.Entry;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
     &nbsp;
     &nbsp;import static com.codahale.metrics.MetricRegistry.name;
     &nbsp;
     &nbsp;/**
    -&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    -&nbsp; * codes being returned.
    +&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    +&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    +&nbsp; * name of the appender.
     &nbsp; */
    -<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    -&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    -&nbsp;
    -&nbsp;    private final String otherMetricName;
    -&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    -&nbsp;    private final String registryAttribute;
    +&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    +&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
     &nbsp;
    -&nbsp;    // initialized after call of init method
    -&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    -&nbsp;    private Meter otherMeter;
    -&nbsp;    private Meter timeoutsMeter;
    -&nbsp;    private Meter errorsMeter;
    -&nbsp;    private Counter activeRequests;
    -&nbsp;    private Timer requestTimer;
    +&nbsp;    private Meter all;
    +&nbsp;    private Meter trace;
    +&nbsp;    private Meter debug;
    +&nbsp;    private Meter info;
    +&nbsp;    private Meter warn;
    +&nbsp;    private Meter error;
     &nbsp;
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     *
    -&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    -&nbsp;     *                               servlet context
    -&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    -&nbsp;     *                               interested in.
    -&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    +&nbsp;     * Create a new instrumented appender using the given registry name.
     &nbsp;     */
    -&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    -&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    -<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    -<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    -<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    -<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    +&nbsp;    public InstrumentedAppender() {
    +<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    -<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    -<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    -<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    -<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    -<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    -<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    -<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    -<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    -<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    -<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    -&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry name.
    +&nbsp;     *
    +&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    +&nbsp;     */
    +&nbsp;    public InstrumentedAppender(String registryName) {
    +<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    -&nbsp;        final MetricRegistry metricsRegistry;
    -&nbsp;
    -<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    -<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    -<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return metricsRegistry;</b>
    +&nbsp;    /**
    +&nbsp;     * Create a new instrumented appender using the given registry.
    +&nbsp;     *
    +&nbsp;     * @param registry the metric registry
    +&nbsp;     */
    +<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public void destroy() {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void doFilter(ServletRequest request,
    -&nbsp;                         ServletResponse response,
    -&nbsp;                         FilterChain chain) throws IOException, ServletException {
    -<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    -&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    -<b class="nc">&nbsp;        activeRequests.inc();</b>
    -<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    -<b class="nc">&nbsp;        boolean error = false;</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    -<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    -<b class="nc">&nbsp;            error = true;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                if (error) {</b>
    -<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void markMeterForStatusCode(int status) {
    -<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    -<b class="nc">&nbsp;        if (metric != null) {</b>
    -<b class="nc">&nbsp;            metric.mark();</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            otherMeter.mark();</b>
    -&nbsp;        }
    +&nbsp;    public void start() {
    +<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    +<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    +<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    +<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    +<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    +<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    +<b class="fc">&nbsp;        super.start();</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    -&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    -<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    -&nbsp;
    -&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    -<b class="nc">&nbsp;            super(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc, String msg) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void setStatus(int sc) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;        public void setStatus(int sc, String sm) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc, sm);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int getStatus() {
    -<b class="nc">&nbsp;            return httpStatus;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class AsyncResultListener implements AsyncListener {
    -&nbsp;        private Timer.Context context;
    -<b class="nc">&nbsp;        private boolean done = false;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    -<b class="nc">&nbsp;            this.context = context;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            if (!done) {</b>
    -<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            errorsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    +&nbsp;    @Override
    +&nbsp;    protected void append(ILoggingEvent event) {
    +<b class="fc">&nbsp;        all.mark();</b>
    +<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    +&nbsp;            case Level.TRACE_INT:
    +<b class="fc">&nbsp;                trace.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.DEBUG_INT:
    +<b class="fc">&nbsp;                debug.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.INFO_INT:
    +<b class="fc">&nbsp;                info.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.WARN_INT:
    +<b class="fc">&nbsp;                warn.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case Level.ERROR_INT:
    +<b class="fc">&nbsp;                error.mark();</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            default:
    +&nbsp;                break;
     &nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -&nbsp;
    -<b class="nc">&nbsp;        }</b>
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -381,7 +189,7 @@ <h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metric
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index.html
    index 84f9f6cf66..6e0e41df40 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    +io.dropwizard.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -53,10 +53,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    13%
    +    12.5%
       </span>
       <span class="absValue">
    -    (3/23)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
    @@ -69,10 +69,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.6%
    +    3.5%
       </span>
       <span class="absValue">
    -    (3/84)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -118,7 +118,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/17)
    +    (0/18)
       </span>
     </td>
     <td class="coverageStat">
    @@ -134,7 +134,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/71)
    +    (0/73)
       </span>
     </td>
       </tr>
    @@ -217,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK.html
    index 865270b844..a5519d365f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    +io.dropwizard.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -53,10 +53,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    13%
    +    12.5%
       </span>
       <span class="absValue">
    -    (3/23)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
    @@ -69,10 +69,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.6%
    +    3.5%
       </span>
       <span class="absValue">
    -    (3/84)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -174,7 +174,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/17)
    +    (0/18)
       </span>
     </td>
     <td class="coverageStat">
    @@ -190,7 +190,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/71)
    +    (0/73)
       </span>
     </td>
       </tr>
    @@ -217,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
    index ed39156d21..5b6cdfb6e1 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    +io.dropwizard.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -53,10 +53,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    13%
    +    12.5%
       </span>
       <span class="absValue">
    -    (3/23)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
    @@ -69,10 +69,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.6%
    +    3.5%
       </span>
       <span class="absValue">
    -    (3/84)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -118,7 +118,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/17)
    +    (0/18)
       </span>
     </td>
     <td class="coverageStat">
    @@ -134,7 +134,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/71)
    +    (0/73)
       </span>
     </td>
       </tr>
    @@ -217,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS.html
    index acb8600327..22b38dbca0 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    +io.dropwizard.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -53,10 +53,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    13%
    +    12.5%
       </span>
       <span class="absValue">
    -    (3/23)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
    @@ -69,10 +69,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.6%
    +    3.5%
       </span>
       <span class="absValue">
    -    (3/84)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -118,7 +118,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/17)
    +    (0/18)
       </span>
     </td>
     <td class="coverageStat">
    @@ -134,7 +134,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/71)
    +    (0/73)
       </span>
     </td>
       </tr>
    @@ -217,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
    index 8e1a3683dc..29a98ddc61 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    +io.dropwizard.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -53,10 +53,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    13%
    +    12.5%
       </span>
       <span class="absValue">
    -    (3/23)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
    @@ -69,10 +69,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.6%
    +    3.5%
       </span>
       <span class="absValue">
    -    (3/84)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -174,7 +174,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/17)
    +    (0/18)
       </span>
     </td>
     <td class="coverageStat">
    @@ -190,7 +190,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/71)
    +    (0/73)
       </span>
     </td>
       </tr>
    @@ -217,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE.html
    index a37dd191de..6d6d161b30 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    +io.dropwizard.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -53,10 +53,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    13%
    +    12.5%
       </span>
       <span class="absValue">
    -    (3/23)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
    @@ -69,10 +69,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.6%
    +    3.5%
       </span>
       <span class="absValue">
    -    (3/84)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -118,7 +118,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/17)
    +    (0/18)
       </span>
     </td>
     <td class="coverageStat">
    @@ -134,7 +134,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/71)
    +    (0/73)
       </span>
     </td>
       </tr>
    @@ -217,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
    index 966d90e8bb..f0bf90ae20 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    +io.dropwizard.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -53,10 +53,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    13%
    +    12.5%
       </span>
       <span class="absValue">
    -    (3/23)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
    @@ -69,10 +69,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.6%
    +    3.5%
       </span>
       <span class="absValue">
    -    (3/84)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -174,7 +174,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/17)
    +    (0/18)
       </span>
     </td>
     <td class="coverageStat">
    @@ -190,7 +190,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/71)
    +    (0/73)
       </span>
     </td>
       </tr>
    @@ -217,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD.html
    index 93b9bb3bf6..1fdd6d74a3 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    +io.dropwizard.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -53,10 +53,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    13%
    +    12.5%
       </span>
       <span class="absValue">
    -    (3/23)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
    @@ -69,10 +69,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.6%
    +    3.5%
       </span>
       <span class="absValue">
    -    (3/84)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -118,7 +118,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/17)
    +    (0/18)
       </span>
     </td>
     <td class="coverageStat">
    @@ -134,7 +134,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/71)
    +    (0/73)
       </span>
     </td>
       </tr>
    @@ -217,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
    index 6992bc60f4..df51766786 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    +io.dropwizard.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -53,10 +53,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    13%
    +    12.5%
       </span>
       <span class="absValue">
    -    (3/23)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
    @@ -69,10 +69,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.6%
    +    3.5%
       </span>
       <span class="absValue">
    -    (3/84)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -174,7 +174,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/17)
    +    (0/18)
       </span>
     </td>
     <td class="coverageStat">
    @@ -190,7 +190,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/71)
    +    (0/73)
       </span>
     </td>
       </tr>
    @@ -217,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
    index a7bca70a6e..7e6627c5ac 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    +io.dropwizard.metrics.servlet</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -42,7 +42,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    +    <td class="name">io.dropwizard.metrics.servlet</td>
     <td class="coverageStat">
       <span class="percent">
         40%
    @@ -53,10 +53,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    13%
    +    12.5%
       </span>
       <span class="absValue">
    -    (3/23)
    +    (3/24)
       </span>
     </td>
     <td class="coverageStat">
    @@ -69,10 +69,10 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    3.6%
    +    3.5%
       </span>
       <span class="absValue">
    -    (3/84)
    +    (3/86)
       </span>
     </td>
       </tr>
    @@ -174,7 +174,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/17)
    +    (0/18)
       </span>
     </td>
     <td class="coverageStat">
    @@ -190,7 +190,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
         0%
       </span>
       <span class="absValue">
    -    (0/71)
    +    (0/73)
       </span>
     </td>
       </tr>
    @@ -217,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-1.html
    index 524ff8ee72..d05cb88b6a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-1.html
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    +    <a href="../index.html">io.dropwizard.metrics.servlet</a>
     </div>
     
    -<h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet6)</h1>
    +<h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet)</h1>
     
     <table class="coverageStats">
     
    @@ -94,7 +94,7 @@ <h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metric
         0%
       </span>
       <span class="absValue">
    -    (0/5)
    +    (0/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -102,7 +102,7 @@ <h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metric
         0%
       </span>
       <span class="absValue">
    -    (0/9)
    +    (0/11)
       </span>
     </td>
       </tr>
    @@ -113,7 +113,7 @@ <h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metric
         0%
       </span>
       <span class="absValue">
    -    (0/17)
    +    (0/18)
       </span>
     </td>
     <td class="coverageStat">
    @@ -129,7 +129,7 @@ <h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metric
         0%
       </span>
       <span class="absValue">
    -    (0/71)
    +    (0/73)
       </span>
     </td>
     </tr>
    @@ -140,7 +140,7 @@ <h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metric
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
     &nbsp;
     &nbsp;import com.codahale.metrics.Counter;
     &nbsp;import com.codahale.metrics.Meter;
    @@ -306,13 +306,20 @@ <h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metric
     &nbsp;        }
     &nbsp;
     &nbsp;        @Override
    +&nbsp;        @SuppressWarnings(&quot;deprecation&quot;)
    +&nbsp;        public void setStatus(int sc, String sm) {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.setStatus(sc, sm);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
     &nbsp;        public int getStatus() {
     <b class="nc">&nbsp;            return httpStatus;</b>
     &nbsp;        }
     &nbsp;    }
     &nbsp;
     &nbsp;    private class AsyncResultListener implements AsyncListener {
    -&nbsp;        private final Timer.Context context;
    +&nbsp;        private Timer.Context context;
     <b class="nc">&nbsp;        private boolean done = false;</b>
     &nbsp;
     <b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    @@ -374,7 +381,7 @@ <h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metric
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-2.html
    index 18b35955bb..59e75cffdc 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-2.html
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    +    <a href="../index.html">io.dropwizard.metrics.servlet</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet6)</h1>
    +<h1>Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -75,7 +75,7 @@ <h1>Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servle
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
     &nbsp;
     &nbsp;import java.util.HashMap;
     &nbsp;import java.util.Map;
    @@ -146,7 +146,7 @@ <h1>Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servle
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-3.html
    index 6688092b09..69b4b2da04 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-3.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-3.html
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    +    <a href="../index.html">io.dropwizard.metrics.servlet</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet6)</h1>
    +<h1>Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -75,7 +75,7 @@ <h1>Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
     &nbsp;
     &nbsp;import com.codahale.metrics.MetricRegistry;
     &nbsp;import jakarta.servlet.ServletContextEvent;
    @@ -124,7 +124,7 @@ <h1>Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index.html
    index abacd9fb3a..c74140fe6e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    +io.dropwizard.metrics.servlet6</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    13%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    3.6%
       </span>
       <span class="absValue">
    -    (210/261)
    +    (3/84)
       </span>
     </td>
       </tr>
    @@ -83,120 +95,51 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    62.5%
    +    0%
       </span>
       <span class="absValue">
    -    (10/16)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    0%
       </span>
       <span class="absValue">
    -    (58/70)
    +    (0/17)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    0%
       </span>
       <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    +    (0/71)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,23 +150,24 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    10%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (1/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -234,18 +178,19 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (2/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    66.7%
       </span>
       <span class="absValue">
    -    (13/16)
    +    (2/3)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK.html
    index 5db50b015a..e2d19145bd 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    +io.dropwizard.metrics.servlet6</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    13%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    3.6%
       </span>
       <span class="absValue">
    -    (210/261)
    +    (3/84)
       </span>
     </td>
       </tr>
    @@ -82,13 +94,17 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +115,24 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (1/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    71.6%
    +    10%
       </span>
       <span class="absValue">
    -    (53/74)
    +    (1/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,126 +143,54 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    +    66.7%
       </span>
       <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    +    (2/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    62.5%
    +    66.7%
       </span>
       <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    0%
       </span>
       <span class="absValue">
    -    (13/16)
    +    (0/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    0%
       </span>
       <span class="absValue">
    -    (13/16)
    +    (0/71)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
    index 51b96564f3..d10c702335 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    +io.dropwizard.metrics.servlet6</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    13%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    3.6%
       </span>
       <span class="absValue">
    -    (210/261)
    +    (3/84)
       </span>
     </td>
       </tr>
    @@ -82,121 +94,52 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    0%
       </span>
       <span class="absValue">
    -    (13/16)
    +    (0/17)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    +    (0/71)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,23 +150,24 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (2/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    65.6%
    +    66.7%
       </span>
       <span class="absValue">
    -    (21/32)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -234,18 +178,19 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (1/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    71.6%
    +    10%
       </span>
       <span class="absValue">
    -    (53/74)
    +    (1/10)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS.html
    index 6a9d32b734..88d4406125 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    +io.dropwizard.metrics.servlet6</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    13%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    3.6%
       </span>
       <span class="absValue">
    -    (210/261)
    +    (3/84)
       </span>
     </td>
       </tr>
    @@ -83,120 +95,51 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    65.6%
    +    0%
       </span>
       <span class="absValue">
    -    (21/32)
    +    (0/17)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    0%
       </span>
       <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    +    (0/71)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,23 +150,24 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    10%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (1/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -234,18 +178,19 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (2/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    66.7%
       </span>
       <span class="absValue">
    -    (13/16)
    +    (2/3)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
    index 2bf968ee80..0f2f35626b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    +io.dropwizard.metrics.servlet6</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    13%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    3.6%
       </span>
       <span class="absValue">
    -    (210/261)
    +    (3/84)
       </span>
     </td>
       </tr>
    @@ -83,39 +95,16 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,50 +115,24 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    +    66.7%
       </span>
       <span class="absValue">
    -    (13/16)
    +    (2/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    93.5%
    +    66.7%
       </span>
       <span class="absValue">
    -    (58/62)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -180,72 +143,54 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (1/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    65.6%
    +    10%
       </span>
       <span class="absValue">
    -    (21/32)
    +    (1/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    +    0%
       </span>
       <span class="absValue">
    -    (1/2)
    +    (0/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62.5%
    +    0%
       </span>
       <span class="absValue">
    -    (10/16)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    0%
       </span>
       <span class="absValue">
    -    (58/70)
    +    (0/71)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE.html
    index f50bec9acd..9b04127716 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    +io.dropwizard.metrics.servlet6</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    13%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    3.6%
       </span>
       <span class="absValue">
    -    (210/261)
    +    (3/84)
       </span>
     </td>
       </tr>
    @@ -82,67 +94,52 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat sortedAsc
     ">
       <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    65.6%
    +    0%
       </span>
       <span class="absValue">
    -    (21/32)
    +    (0/17)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    +    (0/71)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,77 +150,24 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    +    33.3%
       </span>
       <span class="absValue">
    -    (58/70)
    +    (1/3)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    10%
       </span>
       <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    +    (1/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -234,18 +178,19 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (2/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (2/3)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
    index 59e4914a4e..33e17edb3e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    +io.dropwizard.metrics.servlet6</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    13%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    3.6%
       </span>
       <span class="absValue">
    -    (210/261)
    +    (3/84)
       </span>
     </td>
       </tr>
    @@ -82,13 +94,17 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat sortedDesc
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,77 +115,24 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    +    66.7%
       </span>
       <span class="absValue">
    -    (58/62)
    +    (2/3)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    50%
    +    66.7%
       </span>
       <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -180,72 +143,54 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    10%
       </span>
       <span class="absValue">
    -    (13/16)
    +    (1/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.6%
    +    0%
       </span>
       <span class="absValue">
    -    (53/74)
    +    (0/17)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    65.6%
    +    0%
       </span>
       <span class="absValue">
    -    (21/32)
    +    (0/71)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD.html
    index 1c4063fa8e..a3a1527b45 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    +io.dropwizard.metrics.servlet6</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    13%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    3.6%
       </span>
       <span class="absValue">
    -    (210/261)
    +    (3/84)
       </span>
     </td>
       </tr>
    @@ -83,120 +95,51 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
       <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.6%
    +    0%
       </span>
       <span class="absValue">
    -    (53/74)
    +    (0/17)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    +    (0/71)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,23 +150,24 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    10%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (1/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -234,18 +178,19 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (2/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    66.7%
       </span>
       <span class="absValue">
    -    (13/16)
    +    (2/3)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
    index 58fcb137b6..92b8d8d466 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    +io.dropwizard.metrics.servlet6</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    13%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    3.6%
       </span>
       <span class="absValue">
    -    (210/261)
    +    (3/84)
       </span>
     </td>
       </tr>
    @@ -83,66 +95,16 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,23 +115,24 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (2/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    65.6%
    +    66.7%
       </span>
       <span class="absValue">
    -    (21/32)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -180,72 +143,54 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (1/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    71.6%
    +    10%
       </span>
       <span class="absValue">
    -    (53/74)
    +    (1/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    +    0%
       </span>
       <span class="absValue">
    -    (1/2)
    +    (0/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    62.5%
    +    0%
       </span>
       <span class="absValue">
    -    (10/16)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    0%
       </span>
       <span class="absValue">
    -    (58/70)
    +    (0/71)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
    index d1cfebedd4..a6dedf5acb 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    +io.dropwizard.metrics.servlet6</div>
     
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    +    <td class="name">io.dropwizard.metrics.servlet6</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    13%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (3/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.4%
    +    0%
       </span>
       <span class="absValue">
    -    (37/46)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.5%
    +    3.6%
       </span>
       <span class="absValue">
    -    (210/261)
    +    (3/84)
       </span>
     </td>
       </tr>
    @@ -83,12 +95,16 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +115,24 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (2/3)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    81.2%
    +    66.7%
       </span>
       <span class="absValue">
    -    (13/16)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,126 +143,54 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    +    33.3%
       </span>
       <span class="absValue">
    -    (58/62)
    +    (1/3)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    50%
    +    10%
       </span>
       <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    +    (1/10)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    +    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (0/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    65.6%
    +    0%
       </span>
       <span class="absValue">
    -    (21/32)
    +    (0/17)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.6%
    +    0%
       </span>
       <span class="absValue">
    -    (53/74)
    +    (0/71)
       </span>
     </td>
       </tr>
    @@ -272,7 +217,7 @@ <h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-1.html
    index 8d37f1362d..e8a6298bac 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AdminServlet</title>
    +  <title>Coverage Report > AbstractInstrumentedFilter</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,21 +19,22 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
     </div>
     
    -<h1>Coverage Summary for Class: AdminServlet (io.dropwizard.metrics.servlets)</h1>
    +<h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet6)</h1>
     
     <table class="coverageStats">
    +
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
     ">
    -  Class, %
    +  Method, %
     </th>
     <th class="coverageStat 
     ">
    -  Method, %
    +  Branch, %
     </th>
     <th class="coverageStat 
     ">
    @@ -41,33 +42,97 @@ <h1>Coverage Summary for Class: AdminServlet (io.dropwizard.metrics.servlets)</h
     </th>
     </tr>
     <tr>
    -  <td class="name">AdminServlet</td>
    +  <td class="name">AbstractInstrumentedFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/45)
       </span>
     </td>
    +</tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (5/5)
    +    (0/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.6%
    +    0%
       </span>
       <span class="absValue">
    -    (53/74)
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/9)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/71)
       </span>
     </td>
     </tr>
    -
     </table>
     
     <br/>
    @@ -75,194 +140,215 @@ <h1>Coverage Summary for Class: AdminServlet (io.dropwizard.metrics.servlets)</h
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
     &nbsp;
    -&nbsp;import jakarta.servlet.ServletConfig;
    -&nbsp;import jakarta.servlet.ServletContext;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import jakarta.servlet.AsyncEvent;
    +&nbsp;import jakarta.servlet.AsyncListener;
    +&nbsp;import jakarta.servlet.Filter;
    +&nbsp;import jakarta.servlet.FilterChain;
    +&nbsp;import jakarta.servlet.FilterConfig;
     &nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.ServletRequest;
    +&nbsp;import jakarta.servlet.ServletResponse;
     &nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;import jakarta.servlet.http.HttpServletResponseWrapper;
     &nbsp;
     &nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.text.MessageFormat;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Map.Entry;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
     &nbsp;
    -<b class="fc">&nbsp;public class AdminServlet extends HttpServlet {</b>
    -&nbsp;    public static final String DEFAULT_HEALTHCHECK_URI = &quot;/healthcheck&quot;;
    -&nbsp;    public static final String DEFAULT_METRICS_URI = &quot;/metrics&quot;;
    -&nbsp;    public static final String DEFAULT_PING_URI = &quot;/ping&quot;;
    -&nbsp;    public static final String DEFAULT_THREADS_URI = &quot;/threads&quot;;
    -&nbsp;    public static final String DEFAULT_CPU_PROFILE_URI = &quot;/pprof&quot;;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
     &nbsp;
    -&nbsp;    public static final String METRICS_ENABLED_PARAM_KEY = &quot;metrics-enabled&quot;;
    -&nbsp;    public static final String METRICS_URI_PARAM_KEY = &quot;metrics-uri&quot;;
    -&nbsp;    public static final String PING_ENABLED_PARAM_KEY = &quot;ping-enabled&quot;;
    -&nbsp;    public static final String PING_URI_PARAM_KEY = &quot;ping-uri&quot;;
    -&nbsp;    public static final String THREADS_ENABLED_PARAM_KEY = &quot;threads-enabled&quot;;
    -&nbsp;    public static final String THREADS_URI_PARAM_KEY = &quot;threads-uri&quot;;
    -&nbsp;    public static final String HEALTHCHECK_ENABLED_PARAM_KEY = &quot;healthcheck-enabled&quot;;
    -&nbsp;    public static final String HEALTHCHECK_URI_PARAM_KEY = &quot;healthcheck-uri&quot;;
    -&nbsp;    public static final String SERVICE_NAME_PARAM_KEY = &quot;service-name&quot;;
    -&nbsp;    public static final String CPU_PROFILE_ENABLED_PARAM_KEY = &quot;cpu-profile-enabled&quot;;
    -&nbsp;    public static final String CPU_PROFILE_URI_PARAM_KEY = &quot;cpu-profile-uri&quot;;
    +&nbsp;/**
    +&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    +&nbsp; * codes being returned.
    +&nbsp; */
    +<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    +&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
     &nbsp;
    -&nbsp;    private static final String BASE_TEMPLATE =
    -&nbsp;            &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot;%n&quot; +
    -&nbsp;                    &quot;        \&quot;http://www.w3.org/TR/html4/loose.dtd\&quot;&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;html&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;head&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;title&gt;Metrics{10}&lt;/title&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/head&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;body&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;h1&gt;Operational Menu{10}&lt;/h1&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;ul&gt;%n&quot; +
    -&nbsp;                    &quot;%s&quot; +
    -&nbsp;                    &quot;  &lt;/ul&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/body&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/html&gt;&quot;;
    -&nbsp;    private static final String METRICS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{0}{1}?pretty=true\&quot;&gt;Metrics&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;    private static final String PING_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{2}{3}\&quot;&gt;Ping&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String THREADS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{4}{5}\&quot;&gt;Threads&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String HEALTHCHECK_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{6}{7}?pretty=true\&quot;&gt;Healthcheck&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String CPU_PROFILE_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}\&quot;&gt;CPU Profile&lt;/a&gt;&lt;/li&gt;%n&quot; +
    -&nbsp;            &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}?state=blocked\&quot;&gt;CPU Contention&lt;/a&gt;&lt;/li&gt;%n&quot;;
    +&nbsp;    private final String otherMetricName;
    +&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    +&nbsp;    private final String registryAttribute;
     &nbsp;
    +&nbsp;    // initialized after call of init method
    +&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    +&nbsp;    private Meter otherMeter;
    +&nbsp;    private Meter timeoutsMeter;
    +&nbsp;    private Meter errorsMeter;
    +&nbsp;    private Counter activeRequests;
    +&nbsp;    private Timer requestTimer;
     &nbsp;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/html&quot;;
    -&nbsp;    private static final long serialVersionUID = -2850794040708785318L;
     &nbsp;
    -&nbsp;    private transient HealthCheckServlet healthCheckServlet;
    -&nbsp;    private transient MetricsServlet metricsServlet;
    -&nbsp;    private transient PingServlet pingServlet;
    -&nbsp;    private transient ThreadDumpServlet threadDumpServlet;
    -&nbsp;    private transient CpuProfileServlet cpuProfileServlet;
    -&nbsp;    private transient boolean metricsEnabled;
    -&nbsp;    private transient String metricsUri;
    -&nbsp;    private transient boolean pingEnabled;
    -&nbsp;    private transient String pingUri;
    -&nbsp;    private transient boolean threadsEnabled;
    -&nbsp;    private transient String threadsUri;
    -&nbsp;    private transient boolean healthcheckEnabled;
    -&nbsp;    private transient String healthcheckUri;
    -&nbsp;    private transient boolean cpuProfileEnabled;
    -&nbsp;    private transient String cpuProfileUri;
    -&nbsp;    private transient String serviceName;
    -&nbsp;    private transient String pageContentTemplate;
    +&nbsp;    /**
    +&nbsp;     * Creates a new instance of the filter.
    +&nbsp;     *
    +&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    +&nbsp;     *                               servlet context
    +&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    +&nbsp;     *                               interested in.
    +&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    +&nbsp;     */
    +&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    +&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    +<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    +<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    +<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    +<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    +&nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    +<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    +<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    +<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    +&nbsp;        }
     &nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        final StringBuilder servletLinks = new StringBuilder();</b>
    +<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    +<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    +<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    +<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    +<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    +<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    +<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    +<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
     &nbsp;
    -<b class="fc">&nbsp;        this.metricsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.metricsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(METRICS_LINK);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    +&nbsp;        final MetricRegistry metricsRegistry;
    +&nbsp;
    +<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    +<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    +<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
     &nbsp;        }
    -<b class="fc">&nbsp;        this.metricsServlet = new MetricsServlet();</b>
    -<b class="fc">&nbsp;        metricsServlet.init(config);</b>
    +<b class="nc">&nbsp;        return metricsRegistry;</b>
    +&nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;        this.pingEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.pingEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(PING_LINK);</b>
    +&nbsp;    @Override
    +&nbsp;    public void destroy() {
    +&nbsp;
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void doFilter(ServletRequest request,
    +&nbsp;                         ServletResponse response,
    +&nbsp;                         FilterChain chain) throws IOException, ServletException {
    +<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    +&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    +<b class="nc">&nbsp;        activeRequests.inc();</b>
    +<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    +<b class="nc">&nbsp;        boolean error = false;</b>
    +&nbsp;        try {
    +<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    +<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    +<b class="nc">&nbsp;            error = true;</b>
    +<b class="nc">&nbsp;            throw e;</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    +<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                context.stop();</b>
    +<b class="nc">&nbsp;                activeRequests.dec();</b>
    +<b class="nc">&nbsp;                if (error) {</b>
    +<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    +&nbsp;                } else {
    +<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void markMeterForStatusCode(int status) {
    +<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    +<b class="nc">&nbsp;        if (metric != null) {</b>
    +<b class="nc">&nbsp;            metric.mark();</b>
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            otherMeter.mark();</b>
     &nbsp;        }
    -<b class="fc">&nbsp;        this.pingServlet = new PingServlet();</b>
    -<b class="fc">&nbsp;        pingServlet.init(config);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    +&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    +<b class="nc">&nbsp;        private int httpStatus = 200;</b>
     &nbsp;
    -<b class="fc">&nbsp;        this.threadsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.threadsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(THREADS_LINK);</b>
    +&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    +<b class="nc">&nbsp;            super(response);</b>
     &nbsp;        }
    -<b class="fc">&nbsp;        this.threadDumpServlet = new ThreadDumpServlet();</b>
    -<b class="fc">&nbsp;        threadDumpServlet.init(config);</b>
     &nbsp;
    -<b class="fc">&nbsp;        this.healthcheckEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.healthcheckEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(HEALTHCHECK_LINK);</b>
    +&nbsp;        @Override
    +&nbsp;        public void sendError(int sc) throws IOException {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.sendError(sc);</b>
     &nbsp;        }
    -<b class="fc">&nbsp;        this.healthCheckServlet = new HealthCheckServlet();</b>
    -<b class="fc">&nbsp;        healthCheckServlet.init(config);</b>
     &nbsp;
    -<b class="fc">&nbsp;        this.cpuProfileEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.cpuProfileEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(CPU_PROFILE_LINK);</b>
    +&nbsp;        @Override
    +&nbsp;        public void sendError(int sc, String msg) throws IOException {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
     &nbsp;        }
    -<b class="fc">&nbsp;        this.cpuProfileServlet = new CpuProfileServlet();</b>
    -<b class="fc">&nbsp;        cpuProfileServlet.init(config);</b>
     &nbsp;
    -<b class="fc">&nbsp;        pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));</b>
    +&nbsp;        @Override
    +&nbsp;        public void setStatus(int sc) {
    +<b class="nc">&nbsp;            httpStatus = sc;</b>
    +<b class="nc">&nbsp;            super.setStatus(sc);</b>
    +&nbsp;        }
     &nbsp;
    -<b class="fc">&nbsp;        this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);</b>
    -<b class="fc">&nbsp;        this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);</b>
    -<b class="fc">&nbsp;        this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);</b>
    -<b class="fc">&nbsp;        this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);</b>
    -<b class="fc">&nbsp;        this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);</b>
    -<b class="fc">&nbsp;        this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);</b>
    +&nbsp;        @Override
    +&nbsp;        public int getStatus() {
    +<b class="nc">&nbsp;            return httpStatus;</b>
    +&nbsp;        }
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String path = req.getContextPath() + req.getServletPath();</b>
    +&nbsp;    private class AsyncResultListener implements AsyncListener {
    +&nbsp;        private final Timer.Context context;
    +<b class="nc">&nbsp;        private boolean done = false;</b>
     &nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,</b>
    -&nbsp;                    threadsUri, path, healthcheckUri, path, cpuProfileUri,
    -<b class="fc">&nbsp;                    serviceName == null ? &quot;&quot; : &quot; (&quot; + serviceName + &quot;)&quot;));</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    +<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    +<b class="nc">&nbsp;            this.context = context;</b>
    +&nbsp;        }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String uri = req.getPathInfo();</b>
    -<b class="fc">&nbsp;        if (uri == null || uri.equals(&quot;/&quot;)) {</b>
    -<b class="fc">&nbsp;            super.service(req, resp);</b>
    -<b class="nc">&nbsp;        } else if (uri.equals(healthcheckUri)) {</b>
    -<b class="nc">&nbsp;            if (healthcheckEnabled) {</b>
    -<b class="nc">&nbsp;                healthCheckServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.startsWith(metricsUri)) {</b>
    -<b class="nc">&nbsp;            if (metricsEnabled) {</b>
    -<b class="nc">&nbsp;                metricsServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(pingUri)) {</b>
    -<b class="nc">&nbsp;            if (pingEnabled) {</b>
    -<b class="nc">&nbsp;                pingServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;        @Override
    +&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            if (!done) {</b>
    +<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    +<b class="nc">&nbsp;                context.stop();</b>
    +<b class="nc">&nbsp;                activeRequests.dec();</b>
    +<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
     &nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(threadsUri)) {</b>
    -<b class="nc">&nbsp;            if (threadsEnabled) {</b>
    -<b class="nc">&nbsp;                threadDumpServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(cpuProfileUri)) {</b>
    -<b class="nc">&nbsp;            if (cpuProfileEnabled) {</b>
    -<b class="nc">&nbsp;                cpuProfileServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
     &nbsp;        }
    -&nbsp;    }
     &nbsp;
    -&nbsp;    private static String getParam(String initParam, String defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : initParam;</b>
    +&nbsp;        @Override
    +&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            context.stop();</b>
    +<b class="nc">&nbsp;            activeRequests.dec();</b>
    +<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    +<b class="nc">&nbsp;            done = true;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onError(AsyncEvent event) throws IOException {
    +<b class="nc">&nbsp;            context.stop();</b>
    +<b class="nc">&nbsp;            activeRequests.dec();</b>
    +<b class="nc">&nbsp;            errorsMeter.mark();</b>
    +<b class="nc">&nbsp;            done = true;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    +&nbsp;
    +<b class="nc">&nbsp;        }</b>
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -288,7 +374,7 @@ <h1>Coverage Summary for Class: AdminServlet (io.dropwizard.metrics.servlets)</h
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-2.html
    index f7d8d7b1d7..adffecb30a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-2.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CpuProfileServlet</title>
    +  <title>Coverage Report > InstrumentedFilter</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
     </div>
     
    -<h1>Coverage Summary for Class: CpuProfileServlet (io.dropwizard.metrics.servlets)</h1>
    +<h1>Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet6)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -41,7 +41,7 @@ <h1>Coverage Summary for Class: CpuProfileServlet (io.dropwizard.metrics.servlet
     </th>
     </tr>
     <tr>
    -  <td class="name">CpuProfileServlet</td>
    +  <td class="name">InstrumentedFilter</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -52,18 +52,18 @@ <h1>Coverage Summary for Class: CpuProfileServlet (io.dropwizard.metrics.servlet
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    33.3%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (1/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    65.6%
    +    10%
       </span>
       <span class="absValue">
    -    (21/32)
    +    (1/10)
       </span>
     </td>
     </tr>
    @@ -75,83 +75,52 @@ <h1>Coverage Summary for Class: CpuProfileServlet (io.dropwizard.metrics.servlet
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.papertrail.profiler.CpuProfile;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
     &nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.concurrent.locks.Lock;
    -&nbsp;import java.util.concurrent.locks.ReentrantLock;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.Map;
     &nbsp;
     &nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a &lt;a href=&quot;https://github.com/gperftools/gperftools&quot;&gt;pprof&lt;/a&gt; parseable response.
    +&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    +&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    +&nbsp; * &lt;pre&gt;{@code
    +&nbsp; * &lt;filter&gt;
    +&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    +&nbsp; *     &lt;filter-class&gt;io.dropwizard.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    +&nbsp; * &lt;/filter&gt;
    +&nbsp; * &lt;filter-mapping&gt;
    +&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    +&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    +&nbsp; * &lt;/filter-mapping&gt;
    +&nbsp; * }&lt;/pre&gt;
     &nbsp; */
    -<b class="fc">&nbsp;public class CpuProfileServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = -668666696530287501L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;pprof/raw&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -<b class="fc">&nbsp;    private final Lock lock = new ReentrantLock();</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -&nbsp;
    -<b class="fc">&nbsp;        int duration = 10;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;duration&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                duration = Integer.parseInt(req.getParameter(&quot;duration&quot;));</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                duration = 10;</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        int frequency = 100;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;frequency&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                frequency = Integer.parseInt(req.getParameter(&quot;frequency&quot;));</b>
    -<b class="nc">&nbsp;                frequency = Math.min(Math.max(frequency, 1), 1000);</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                frequency = 100;</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    +&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    +<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
     &nbsp;
    -&nbsp;        final Thread.State state;
    -<b class="fc">&nbsp;        if (&quot;blocked&quot;.equalsIgnoreCase(req.getParameter(&quot;state&quot;))) {</b>
    -<b class="nc">&nbsp;            state = Thread.State.BLOCKED;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            state = Thread.State.RUNNABLE;</b>
    -&nbsp;        }
    +&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    +&nbsp;    private static final int OK = 200;
    +&nbsp;    private static final int CREATED = 201;
    +&nbsp;    private static final int NO_CONTENT = 204;
    +&nbsp;    private static final int BAD_REQUEST = 400;
    +&nbsp;    private static final int NOT_FOUND = 404;
    +&nbsp;    private static final int SERVER_ERROR = 500;
     &nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            doProfile(output, duration, frequency, state);</b>
    -<b class="fc">&nbsp;        }</b>
    +&nbsp;    /**
    +&nbsp;     * Creates a new instance of the filter.
    +&nbsp;     */
    +&nbsp;    public InstrumentedFilter() {
    +<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
    -<b class="fc">&nbsp;        if (lock.tryLock()) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),</b>
    -&nbsp;                        frequency, state);
    -<b class="fc">&nbsp;                if (profile == null) {</b>
    -<b class="nc">&nbsp;                    throw new RuntimeException(&quot;could not create CpuProfile&quot;);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                profile.writeGoogleProfile(out);</b>
    -&nbsp;                return;
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                lock.unlock();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        throw new RuntimeException(&quot;Only one profile request may be active at a time&quot;);</b>
    +&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    +<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    +<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    +<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -177,7 +146,7 @@ <h1>Coverage Summary for Class: CpuProfileServlet (io.dropwizard.metrics.servlet
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-3.html
    index 7486d098fd..8bc850f0eb 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-3.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-3.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckServlet</title>
    +  <title>Coverage Report > InstrumentedFilterContextListener</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,16 +19,19 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
     </div>
     
    -<h1>Coverage Summary for Class: HealthCheckServlet (io.dropwizard.metrics.servlets)</h1>
    +<h1>Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet6)</h1>
     
     <table class="coverageStats">
    -
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
     ">
       Method, %
     </th>
    @@ -38,62 +41,33 @@ <h1>Coverage Summary for Class: HealthCheckServlet (io.dropwizard.metrics.servle
     </th>
     </tr>
     <tr>
    -  <td class="name">HealthCheckServlet</td>
    +  <td class="name">InstrumentedFilterContextListener</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.1%
    +    66.7%
       </span>
       <span class="absValue">
    -    (58/61)
    +    (2/3)
       </span>
     </td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckServlet$ContextListener</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    66.7%
       </span>
       <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    +    (2/3)
       </span>
     </td>
     </tr>
    +
     </table>
     
     <br/>
    @@ -101,200 +75,31 @@ <h1>Coverage Summary for Class: HealthCheckServlet (io.dropwizard.metrics.servle
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
     &nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.codahale.metrics.health.HealthCheckFilter;
    -&nbsp;import com.codahale.metrics.health.HealthCheckRegistry;
    -&nbsp;import com.codahale.metrics.json.HealthCheckModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;import jakarta.servlet.ServletConfig;
    -&nbsp;import jakarta.servlet.ServletContext;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
     &nbsp;import jakarta.servlet.ServletContextEvent;
     &nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;
    -&nbsp;public class HealthCheckServlet extends HttpServlet {
    -<b class="nc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract HealthCheckRegistry getHealthCheckRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
    -&nbsp;         * if the health checks should be run in the servlet worker thread.
    -&nbsp;         */
    -&nbsp;        protected ExecutorService getExecutorService() {
    -&nbsp;            // don&#39;t use a thread pool by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
    -&nbsp;         * or {@link HealthCheckFilter#ALL} if the default should be used.
    -&nbsp;         */
    -&nbsp;        protected HealthCheckFilter getHealthCheckFilter() {
    -<b class="nc">&nbsp;            return HealthCheckFilter.ALL;</b>
    -&nbsp;        }
     &nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ObjectMapper} that shall be used to render health checks,
    -&nbsp;         * or {@code null} if the default object mapper should be used.
    -&nbsp;         */
    -&nbsp;        protected ObjectMapper getObjectMapper() {
    -&nbsp;            // don&#39;t use an object mapper by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="nc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + &quot;.executor&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + &quot;.healthCheckFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + &quot;.mapper&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + &quot;.httpStatusIndicator&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -8432996484889177321L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;    private static final String HTTP_STATUS_INDICATOR_PARAM = &quot;httpStatusIndicator&quot;;
    -&nbsp;
    -&nbsp;    private transient HealthCheckRegistry registry;
    -&nbsp;    private transient ExecutorService executorService;
    -&nbsp;    private transient HealthCheckFilter filter;
    -&nbsp;    private transient ObjectMapper mapper;
    -&nbsp;    private transient boolean httpStatusIndicator;
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet(HealthCheckRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof HealthCheckRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (HealthCheckRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a HealthCheckRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);</b>
    -<b class="fc">&nbsp;        if (executorAttr instanceof ExecutorService) {</b>
    -<b class="fc">&nbsp;            this.executorService = (ExecutorService) executorAttr;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);</b>
    -<b class="fc">&nbsp;        if (filterAttr instanceof HealthCheckFilter) {</b>
    -<b class="fc">&nbsp;            filter = (HealthCheckFilter) filterAttr;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = HealthCheckFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);</b>
    -<b class="fc">&nbsp;        if (mapperAttr instanceof ObjectMapper) {</b>
    -<b class="nc">&nbsp;            this.mapper = (ObjectMapper) mapperAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.mapper = new ObjectMapper();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.mapper.registerModule(new HealthCheckModule());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);</b>
    -<b class="fc">&nbsp;        if (httpStatusIndicatorAttr instanceof Boolean) {</b>
    -<b class="nc">&nbsp;            this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.httpStatusIndicator = true;</b>
    -&nbsp;        }
    -&nbsp;    }
    +&nbsp;/**
    +&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    +&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    +&nbsp; * application.
    +&nbsp; */
    +<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    +&nbsp;    /**
    +&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    +&nbsp;     */
    +&nbsp;    protected abstract MetricRegistry getMetricRegistry();
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public void destroy() {
    -<b class="fc">&nbsp;        super.destroy();</b>
    -<b class="fc">&nbsp;        registry.shutdown();</b>
    +&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    +<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = runHealthChecks();</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (results.isEmpty()) {</b>
    -<b class="fc">&nbsp;            resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);</b>
    -<b class="fc">&nbsp;            final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);</b>
    -<b class="fc">&nbsp;            final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;</b>
    -<b class="fc">&nbsp;            if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {</b>
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            getWriter(req).writeValue(output, results);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    -<b class="fc">&nbsp;        if (executorService == null) {</b>
    -<b class="nc">&nbsp;            return registry.runHealthChecks(filter);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return registry.runHealthChecks(executorService, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static boolean isAllHealthy(Map&lt;String, HealthCheck.Result&gt; results) {
    -<b class="fc">&nbsp;        for (HealthCheck.Result result : results.values()) {</b>
    -<b class="fc">&nbsp;            if (!result.isHealthy()) {</b>
    -<b class="fc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    // visible for testing
    -&nbsp;    ObjectMapper getMapper() {
    -<b class="fc">&nbsp;        return mapper;</b>
    -&nbsp;    }
    +&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    +<b class="nc">&nbsp;    }</b>
     &nbsp;}
     </code>
     </pre>
    @@ -319,7 +124,7 @@ <h1>Coverage Summary for Class: HealthCheckServlet (io.dropwizard.metrics.servle
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index.html
    new file mode 100644
    index 0000000000..02d7e3b833
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-29/index.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedAsc
    +">
    +<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_BLOCK.html
    new file mode 100644
    index 0000000000..21f87b4466
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_BLOCK.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_BLOCK_DESC.html
    new file mode 100644
    index 0000000000..5fde52d267
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_BLOCK_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_CLASS.html
    new file mode 100644
    index 0000000000..f3e97e4df8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_CLASS.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_CLASS_DESC.html
    new file mode 100644
    index 0000000000..fcc4008411
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_CLASS_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_LINE.html
    new file mode 100644
    index 0000000000..56f511c738
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_LINE.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_LINE_DESC.html
    new file mode 100644
    index 0000000000..3b02f265c5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_LINE_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_METHOD.html
    new file mode 100644
    index 0000000000..d4f3bfd4a5
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_METHOD.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_METHOD_DESC.html
    new file mode 100644
    index 0000000000..66c77350d8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_METHOD_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_NAME_DESC.html
    new file mode 100644
    index 0000000000..3aa4a0cdf1
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_NAME_DESC.html
    @@ -0,0 +1,278 @@
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    +  <style type="text/css">
    +    @import "../css/coverage.css";
    +    @import "../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +
    +<div class="breadCrumbs">
    +Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    +    <span class="separator">|</span>
    +io.dropwizard.metrics.servlets</div>
    +
    +<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    +<table class="coverageStats">
    +  <tr>
    +    <th class="name">Package</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +  </tr>
    +  <tr>
    +    <td class="name">io.dropwizard.metrics.servlets</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    87.5%
    +  </span>
    +  <span class="absValue">
    +    (7/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.4%
    +  </span>
    +  <span class="absValue">
    +    (37/46)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.5%
    +  </span>
    +  <span class="absValue">
    +    (210/261)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name  sortedDesc
    +">
    +<a href="index.html">Class</a>  </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    +</th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_LINE.html">Line, %</a>
    +</th>
    +</tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +  </tr>
    +</table>
    +
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-1.html
    new file mode 100644
    index 0000000000..44baa33b08
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-1.html
    @@ -0,0 +1,294 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > AdminServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: AdminServlet (io.dropwizard.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">AdminServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.6%
    +  </span>
    +  <span class="absValue">
    +    (53/74)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +&nbsp;
    +&nbsp;import jakarta.servlet.ServletConfig;
    +&nbsp;import jakarta.servlet.ServletContext;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServlet;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;import java.text.MessageFormat;
    +&nbsp;
    +<b class="fc">&nbsp;public class AdminServlet extends HttpServlet {</b>
    +&nbsp;    public static final String DEFAULT_HEALTHCHECK_URI = &quot;/healthcheck&quot;;
    +&nbsp;    public static final String DEFAULT_METRICS_URI = &quot;/metrics&quot;;
    +&nbsp;    public static final String DEFAULT_PING_URI = &quot;/ping&quot;;
    +&nbsp;    public static final String DEFAULT_THREADS_URI = &quot;/threads&quot;;
    +&nbsp;    public static final String DEFAULT_CPU_PROFILE_URI = &quot;/pprof&quot;;
    +&nbsp;
    +&nbsp;    public static final String METRICS_ENABLED_PARAM_KEY = &quot;metrics-enabled&quot;;
    +&nbsp;    public static final String METRICS_URI_PARAM_KEY = &quot;metrics-uri&quot;;
    +&nbsp;    public static final String PING_ENABLED_PARAM_KEY = &quot;ping-enabled&quot;;
    +&nbsp;    public static final String PING_URI_PARAM_KEY = &quot;ping-uri&quot;;
    +&nbsp;    public static final String THREADS_ENABLED_PARAM_KEY = &quot;threads-enabled&quot;;
    +&nbsp;    public static final String THREADS_URI_PARAM_KEY = &quot;threads-uri&quot;;
    +&nbsp;    public static final String HEALTHCHECK_ENABLED_PARAM_KEY = &quot;healthcheck-enabled&quot;;
    +&nbsp;    public static final String HEALTHCHECK_URI_PARAM_KEY = &quot;healthcheck-uri&quot;;
    +&nbsp;    public static final String SERVICE_NAME_PARAM_KEY = &quot;service-name&quot;;
    +&nbsp;    public static final String CPU_PROFILE_ENABLED_PARAM_KEY = &quot;cpu-profile-enabled&quot;;
    +&nbsp;    public static final String CPU_PROFILE_URI_PARAM_KEY = &quot;cpu-profile-uri&quot;;
    +&nbsp;
    +&nbsp;    private static final String BASE_TEMPLATE =
    +&nbsp;            &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot;%n&quot; +
    +&nbsp;                    &quot;        \&quot;http://www.w3.org/TR/html4/loose.dtd\&quot;&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;html&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;head&gt;%n&quot; +
    +&nbsp;                    &quot;  &lt;title&gt;Metrics{10}&lt;/title&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;/head&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;body&gt;%n&quot; +
    +&nbsp;                    &quot;  &lt;h1&gt;Operational Menu{10}&lt;/h1&gt;%n&quot; +
    +&nbsp;                    &quot;  &lt;ul&gt;%n&quot; +
    +&nbsp;                    &quot;%s&quot; +
    +&nbsp;                    &quot;  &lt;/ul&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;/body&gt;%n&quot; +
    +&nbsp;                    &quot;&lt;/html&gt;&quot;;
    +&nbsp;    private static final String METRICS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{0}{1}?pretty=true\&quot;&gt;Metrics&lt;/a&gt;&lt;/li&gt;%n&quot;;
    +&nbsp;    private static final String PING_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{2}{3}\&quot;&gt;Ping&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    +&nbsp;    private static final String THREADS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{4}{5}\&quot;&gt;Threads&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    +&nbsp;    private static final String HEALTHCHECK_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{6}{7}?pretty=true\&quot;&gt;Healthcheck&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    +&nbsp;    private static final String CPU_PROFILE_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}\&quot;&gt;CPU Profile&lt;/a&gt;&lt;/li&gt;%n&quot; +
    +&nbsp;            &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}?state=blocked\&quot;&gt;CPU Contention&lt;/a&gt;&lt;/li&gt;%n&quot;;
    +&nbsp;
    +&nbsp;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;text/html&quot;;
    +&nbsp;    private static final long serialVersionUID = -2850794040708785318L;
    +&nbsp;
    +&nbsp;    private transient HealthCheckServlet healthCheckServlet;
    +&nbsp;    private transient MetricsServlet metricsServlet;
    +&nbsp;    private transient PingServlet pingServlet;
    +&nbsp;    private transient ThreadDumpServlet threadDumpServlet;
    +&nbsp;    private transient CpuProfileServlet cpuProfileServlet;
    +&nbsp;    private transient boolean metricsEnabled;
    +&nbsp;    private transient String metricsUri;
    +&nbsp;    private transient boolean pingEnabled;
    +&nbsp;    private transient String pingUri;
    +&nbsp;    private transient boolean threadsEnabled;
    +&nbsp;    private transient String threadsUri;
    +&nbsp;    private transient boolean healthcheckEnabled;
    +&nbsp;    private transient String healthcheckUri;
    +&nbsp;    private transient boolean cpuProfileEnabled;
    +&nbsp;    private transient String cpuProfileUri;
    +&nbsp;    private transient String serviceName;
    +&nbsp;    private transient String pageContentTemplate;
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(ServletConfig config) throws ServletException {
    +<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    +<b class="fc">&nbsp;        final StringBuilder servletLinks = new StringBuilder();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.metricsEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.metricsEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(METRICS_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.metricsServlet = new MetricsServlet();</b>
    +<b class="fc">&nbsp;        metricsServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.pingEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.pingEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(PING_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.pingServlet = new PingServlet();</b>
    +<b class="fc">&nbsp;        pingServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.threadsEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.threadsEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(THREADS_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.threadDumpServlet = new ThreadDumpServlet();</b>
    +<b class="fc">&nbsp;        threadDumpServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.healthcheckEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.healthcheckEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(HEALTHCHECK_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.healthCheckServlet = new HealthCheckServlet();</b>
    +<b class="fc">&nbsp;        healthCheckServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.cpuProfileEnabled =</b>
    +<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    +<b class="fc">&nbsp;        if (this.cpuProfileEnabled) {</b>
    +<b class="fc">&nbsp;            servletLinks.append(CPU_PROFILE_LINK);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.cpuProfileServlet = new CpuProfileServlet();</b>
    +<b class="fc">&nbsp;        cpuProfileServlet.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));</b>
    +&nbsp;
    +<b class="fc">&nbsp;        this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);</b>
    +<b class="fc">&nbsp;        this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);</b>
    +<b class="fc">&nbsp;        this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);</b>
    +<b class="fc">&nbsp;        this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);</b>
    +<b class="fc">&nbsp;        this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);</b>
    +<b class="fc">&nbsp;        this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final String path = req.getContextPath() + req.getServletPath();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    +<b class="fc">&nbsp;            writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,</b>
    +&nbsp;                    threadsUri, path, healthcheckUri, path, cpuProfileUri,
    +<b class="fc">&nbsp;                    serviceName == null ? &quot;&quot; : &quot; (&quot; + serviceName + &quot;)&quot;));</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final String uri = req.getPathInfo();</b>
    +<b class="fc">&nbsp;        if (uri == null || uri.equals(&quot;/&quot;)) {</b>
    +<b class="fc">&nbsp;            super.service(req, resp);</b>
    +<b class="nc">&nbsp;        } else if (uri.equals(healthcheckUri)) {</b>
    +<b class="nc">&nbsp;            if (healthcheckEnabled) {</b>
    +<b class="nc">&nbsp;                healthCheckServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.startsWith(metricsUri)) {</b>
    +<b class="nc">&nbsp;            if (metricsEnabled) {</b>
    +<b class="nc">&nbsp;                metricsServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.equals(pingUri)) {</b>
    +<b class="nc">&nbsp;            if (pingEnabled) {</b>
    +<b class="nc">&nbsp;                pingServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.equals(threadsUri)) {</b>
    +<b class="nc">&nbsp;            if (threadsEnabled) {</b>
    +<b class="nc">&nbsp;                threadDumpServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } else if (uri.equals(cpuProfileUri)) {</b>
    +<b class="nc">&nbsp;            if (cpuProfileEnabled) {</b>
    +<b class="nc">&nbsp;                cpuProfileServlet.service(req, resp);</b>
    +&nbsp;            } else {
    +<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;            }
    +&nbsp;        } else {
    +<b class="nc">&nbsp;            resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static String getParam(String initParam, String defaultValue) {
    +<b class="fc">&nbsp;        return initParam == null ? defaultValue : initParam;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-2.html
    new file mode 100644
    index 0000000000..979e23095c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-2.html
    @@ -0,0 +1,183 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CpuProfileServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CpuProfileServlet (io.dropwizard.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CpuProfileServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    65.6%
    +  </span>
    +  <span class="absValue">
    +    (21/32)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +&nbsp;
    +&nbsp;import com.papertrail.profiler.CpuProfile;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServlet;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.time.Duration;
    +&nbsp;import java.util.concurrent.locks.Lock;
    +&nbsp;import java.util.concurrent.locks.ReentrantLock;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An HTTP servlets which outputs a &lt;a href=&quot;https://github.com/gperftools/gperftools&quot;&gt;pprof&lt;/a&gt; parseable response.
    +&nbsp; */
    +<b class="fc">&nbsp;public class CpuProfileServlet extends HttpServlet {</b>
    +&nbsp;    private static final long serialVersionUID = -668666696530287501L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;pprof/raw&quot;;
    +&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    +&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    +<b class="fc">&nbsp;    private final Lock lock = new ReentrantLock();</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +&nbsp;
    +<b class="fc">&nbsp;        int duration = 10;</b>
    +<b class="fc">&nbsp;        if (req.getParameter(&quot;duration&quot;) != null) {</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                duration = Integer.parseInt(req.getParameter(&quot;duration&quot;));</b>
    +<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    +<b class="nc">&nbsp;                duration = 10;</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        int frequency = 100;</b>
    +<b class="fc">&nbsp;        if (req.getParameter(&quot;frequency&quot;) != null) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                frequency = Integer.parseInt(req.getParameter(&quot;frequency&quot;));</b>
    +<b class="nc">&nbsp;                frequency = Math.min(Math.max(frequency, 1), 1000);</b>
    +<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    +<b class="nc">&nbsp;                frequency = 100;</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        final Thread.State state;
    +<b class="fc">&nbsp;        if (&quot;blocked&quot;.equalsIgnoreCase(req.getParameter(&quot;state&quot;))) {</b>
    +<b class="nc">&nbsp;            state = Thread.State.BLOCKED;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            state = Thread.State.RUNNABLE;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            doProfile(output, duration, frequency, state);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
    +<b class="fc">&nbsp;        if (lock.tryLock()) {</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),</b>
    +&nbsp;                        frequency, state);
    +<b class="fc">&nbsp;                if (profile == null) {</b>
    +<b class="nc">&nbsp;                    throw new RuntimeException(&quot;could not create CpuProfile&quot;);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                profile.writeGoogleProfile(out);</b>
    +&nbsp;                return;
    +&nbsp;            } finally {
    +<b class="fc">&nbsp;                lock.unlock();</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        throw new RuntimeException(&quot;Only one profile request may be active at a time&quot;);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-3.html
    new file mode 100644
    index 0000000000..bf8b1e2ad2
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-3.html
    @@ -0,0 +1,325 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheckServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheckServlet (io.dropwizard.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HealthCheckServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.1%
    +  </span>
    +  <span class="absValue">
    +    (58/61)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HealthCheckServlet$ContextListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/9)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (10/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    82.9%
    +  </span>
    +  <span class="absValue">
    +    (58/70)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.health.HealthCheck;
    +&nbsp;import com.codahale.metrics.health.HealthCheckFilter;
    +&nbsp;import com.codahale.metrics.health.HealthCheckRegistry;
    +&nbsp;import com.codahale.metrics.json.HealthCheckModule;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    +&nbsp;import jakarta.servlet.ServletConfig;
    +&nbsp;import jakarta.servlet.ServletContext;
    +&nbsp;import jakarta.servlet.ServletContextEvent;
    +&nbsp;import jakarta.servlet.ServletContextListener;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServlet;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.concurrent.ExecutorService;
    +&nbsp;
    +&nbsp;public class HealthCheckServlet extends HttpServlet {
    +<b class="nc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    +&nbsp;        /**
    +&nbsp;         * @return the {@link HealthCheckRegistry} to inject into the servlet context.
    +&nbsp;         */
    +&nbsp;        protected abstract HealthCheckRegistry getHealthCheckRegistry();
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
    +&nbsp;         * if the health checks should be run in the servlet worker thread.
    +&nbsp;         */
    +&nbsp;        protected ExecutorService getExecutorService() {
    +&nbsp;            // don&#39;t use a thread pool by default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
    +&nbsp;         * or {@link HealthCheckFilter#ALL} if the default should be used.
    +&nbsp;         */
    +&nbsp;        protected HealthCheckFilter getHealthCheckFilter() {
    +<b class="nc">&nbsp;            return HealthCheckFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link ObjectMapper} that shall be used to render health checks,
    +&nbsp;         * or {@code null} if the default object mapper should be used.
    +&nbsp;         */
    +&nbsp;        protected ObjectMapper getObjectMapper() {
    +&nbsp;            // don&#39;t use an object mapper by default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextInitialized(ServletContextEvent event) {
    +<b class="nc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    +<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());</b>
    +<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());</b>
    +<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    +&nbsp;            // no-op
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + &quot;.executor&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + &quot;.healthCheckFilter&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + &quot;.mapper&quot;;</b>
    +<b class="fc">&nbsp;    public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + &quot;.httpStatusIndicator&quot;;</b>
    +&nbsp;
    +&nbsp;    private static final long serialVersionUID = -8432996484889177321L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    +&nbsp;    private static final String HTTP_STATUS_INDICATOR_PARAM = &quot;httpStatusIndicator&quot;;
    +&nbsp;
    +&nbsp;    private transient HealthCheckRegistry registry;
    +&nbsp;    private transient ExecutorService executorService;
    +&nbsp;    private transient HealthCheckFilter filter;
    +&nbsp;    private transient ObjectMapper mapper;
    +&nbsp;    private transient boolean httpStatusIndicator;
    +&nbsp;
    +<b class="fc">&nbsp;    public HealthCheckServlet() {</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public HealthCheckServlet(HealthCheckRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(ServletConfig config) throws ServletException {
    +<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    +<b class="fc">&nbsp;        if (null == registry) {</b>
    +<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);</b>
    +<b class="fc">&nbsp;            if (registryAttr instanceof HealthCheckRegistry) {</b>
    +<b class="fc">&nbsp;                this.registry = (HealthCheckRegistry) registryAttr;</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a HealthCheckRegistry instance.&quot;);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);</b>
    +<b class="fc">&nbsp;        if (executorAttr instanceof ExecutorService) {</b>
    +<b class="fc">&nbsp;            this.executorService = (ExecutorService) executorAttr;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);</b>
    +<b class="fc">&nbsp;        if (filterAttr instanceof HealthCheckFilter) {</b>
    +<b class="fc">&nbsp;            filter = (HealthCheckFilter) filterAttr;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        if (filter == null) {</b>
    +<b class="fc">&nbsp;            filter = HealthCheckFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);</b>
    +<b class="fc">&nbsp;        if (mapperAttr instanceof ObjectMapper) {</b>
    +<b class="nc">&nbsp;            this.mapper = (ObjectMapper) mapperAttr;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.mapper = new ObjectMapper();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.mapper.registerModule(new HealthCheckModule());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);</b>
    +<b class="fc">&nbsp;        if (httpStatusIndicatorAttr instanceof Boolean) {</b>
    +<b class="nc">&nbsp;            this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            this.httpStatusIndicator = true;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void destroy() {
    +<b class="fc">&nbsp;        super.destroy();</b>
    +<b class="fc">&nbsp;        registry.shutdown();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = runHealthChecks();</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        if (results.isEmpty()) {</b>
    +<b class="fc">&nbsp;            resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);</b>
    +<b class="fc">&nbsp;            final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);</b>
    +<b class="fc">&nbsp;            final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;</b>
    +<b class="fc">&nbsp;            if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {</b>
    +<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_OK);</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            getWriter(req).writeValue(output, results);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private ObjectWriter getWriter(HttpServletRequest request) {
    +<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    +<b class="fc">&nbsp;        if (prettyPrint) {</b>
    +<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return mapper.writer();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    +<b class="fc">&nbsp;        if (executorService == null) {</b>
    +<b class="nc">&nbsp;            return registry.runHealthChecks(filter);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return registry.runHealthChecks(executorService, filter);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static boolean isAllHealthy(Map&lt;String, HealthCheck.Result&gt; results) {
    +<b class="fc">&nbsp;        for (HealthCheck.Result result : results.values()) {</b>
    +<b class="fc">&nbsp;            if (!result.isHealthy()) {</b>
    +<b class="fc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return true;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    // visible for testing
    +&nbsp;    ObjectMapper getMapper() {
    +<b class="fc">&nbsp;        return mapper;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-4.html
    new file mode 100644
    index 0000000000..ef2ecf4e33
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-4.html
    @@ -0,0 +1,328 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MetricsServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MetricsServlet (io.dropwizard.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MetricsServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (44/44)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">MetricsServlet$ContextListener</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    62.5%
    +  </span>
    +  <span class="absValue">
    +    (5/8)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    77.8%
    +  </span>
    +  <span class="absValue">
    +    (14/18)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.5%
    +  </span>
    +  <span class="absValue">
    +    (58/62)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricFilter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.json.MetricsModule;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    +&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    +&nbsp;import com.fasterxml.jackson.databind.util.JSONPObject;
    +&nbsp;import jakarta.servlet.ServletConfig;
    +&nbsp;import jakarta.servlet.ServletContext;
    +&nbsp;import jakarta.servlet.ServletContextEvent;
    +&nbsp;import jakarta.servlet.ServletContextListener;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServlet;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A servlet which returns the metrics in a given registry as an {@code application/json} response.
    +&nbsp; */
    +&nbsp;public class MetricsServlet extends HttpServlet {
    +&nbsp;    /**
    +&nbsp;     * An abstract {@link ServletContextListener} which allows you to programmatically inject the
    +&nbsp;     * {@link MetricRegistry}, rate and duration units, and allowed origin for
    +&nbsp;     * {@link MetricsServlet}.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    +&nbsp;        /**
    +&nbsp;         * @return the {@link MetricRegistry} to inject into the servlet context.
    +&nbsp;         */
    +&nbsp;        protected abstract MetricRegistry getMetricRegistry();
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
    +&nbsp;         * default should be used.
    +&nbsp;         */
    +&nbsp;        protected TimeUnit getRateUnit() {
    +&nbsp;            // use the default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
    +&nbsp;         * the default should be used.
    +&nbsp;         */
    +&nbsp;        protected TimeUnit getDurationUnit() {
    +&nbsp;            // use the default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * @return the {@code Access-Control-Allow-Origin} header value, if any.
    +&nbsp;         */
    +&nbsp;        protected String getAllowedOrigin() {
    +&nbsp;            // use the default
    +<b class="nc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the name of the parameter used to specify the jsonp callback, if any.
    +&nbsp;         */
    +&nbsp;        protected String getJsonpCallbackParameter() {
    +<b class="fc">&nbsp;            return null;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
    +&nbsp;         * the default should be used.
    +&nbsp;         */
    +&nbsp;        protected MetricFilter getMetricFilter() {
    +&nbsp;            // use the default
    +<b class="fc">&nbsp;            return MetricFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextInitialized(ServletContextEvent event) {
    +<b class="fc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    +<b class="fc">&nbsp;            context.setAttribute(METRICS_REGISTRY, getMetricRegistry());</b>
    +<b class="fc">&nbsp;            context.setAttribute(METRIC_FILTER, getMetricFilter());</b>
    +<b class="fc">&nbsp;            if (getDurationUnit() != null) {</b>
    +<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (getRateUnit() != null) {</b>
    +<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (getAllowedOrigin() != null) {</b>
    +<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (getJsonpCallbackParameter() != null) {</b>
    +<b class="nc">&nbsp;                context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    +&nbsp;            // no-op
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.rateUnit&quot;;</b>
    +<b class="fc">&nbsp;    public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.durationUnit&quot;;</b>
    +<b class="fc">&nbsp;    public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + &quot;.showSamples&quot;;</b>
    +<b class="fc">&nbsp;    public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    +<b class="fc">&nbsp;    public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + &quot;.allowedOrigin&quot;;</b>
    +<b class="fc">&nbsp;    public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + &quot;.metricFilter&quot;;</b>
    +<b class="fc">&nbsp;    public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + &quot;.jsonpCallback&quot;;</b>
    +&nbsp;
    +&nbsp;    private static final long serialVersionUID = 1049773947734939602L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    +&nbsp;
    +&nbsp;    protected String allowedOrigin;
    +&nbsp;    protected String jsonpParamName;
    +&nbsp;    protected transient MetricRegistry registry;
    +&nbsp;    protected transient ObjectMapper mapper;
    +&nbsp;
    +<b class="fc">&nbsp;    public MetricsServlet() {</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public MetricsServlet(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init(ServletConfig config) throws ServletException {
    +<b class="fc">&nbsp;        super.init(config);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    +<b class="fc">&nbsp;        if (null == registry) {</b>
    +<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(METRICS_REGISTRY);</b>
    +<b class="fc">&nbsp;            if (registryAttr instanceof MetricRegistry) {</b>
    +<b class="fc">&nbsp;                this.registry = (MetricRegistry) registryAttr;</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a MetricRegistry instance.&quot;);</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);</b>
    +<b class="fc">&nbsp;        this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        setupMetricsModule(context);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected void setupMetricsModule(ServletContext context) {
    +<b class="fc">&nbsp;        final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),</b>
    +&nbsp;                TimeUnit.SECONDS);
    +<b class="fc">&nbsp;        final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),</b>
    +&nbsp;                TimeUnit.SECONDS);
    +<b class="fc">&nbsp;        final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));</b>
    +<b class="fc">&nbsp;        MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);</b>
    +<b class="fc">&nbsp;        if (filter == null) {</b>
    +<b class="fc">&nbsp;            filter = MetricFilter.ALL;</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,</b>
    +&nbsp;                durationUnit,
    +&nbsp;                showSamples,
    +&nbsp;                filter));
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        if (allowedOrigin != null) {</b>
    +<b class="fc">&nbsp;            resp.setHeader(&quot;Access-Control-Allow-Origin&quot;, allowedOrigin);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            if (jsonpParamName != null &amp;&amp; req.getParameter(jsonpParamName) != null) {</b>
    +<b class="fc">&nbsp;                getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));</b>
    +&nbsp;            } else {
    +<b class="fc">&nbsp;                getWriter(req).writeValue(output, registry);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected ObjectWriter getWriter(HttpServletRequest request) {
    +<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    +<b class="fc">&nbsp;        if (prettyPrint) {</b>
    +<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return mapper.writer();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));</b>
    +<b class="fc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    +<b class="fc">&nbsp;            return defaultValue;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-5.html
    new file mode 100644
    index 0000000000..2186849a22
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-5.html
    @@ -0,0 +1,135 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > PingServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: PingServlet (io.dropwizard.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">PingServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +&nbsp;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServlet;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.PrintWriter;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An HTTP servlets which outputs a {@code text/plain} {@code &quot;pong&quot;} response.
    +&nbsp; */
    +<b class="fc">&nbsp;public class PingServlet extends HttpServlet {</b>
    +&nbsp;    private static final long serialVersionUID = 3772654177231086757L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    +&nbsp;    private static final String CONTENT = &quot;pong&quot;;
    +&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    +&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    +<b class="fc">&nbsp;            writer.println(CONTENT);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-6.html
    new file mode 100644
    index 0000000000..ddb9058955
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-6.html
    @@ -0,0 +1,159 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ThreadDumpServlet</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ThreadDumpServlet (io.dropwizard.metrics.servlets)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ThreadDumpServlet</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    81.2%
    +  </span>
    +  <span class="absValue">
    +    (13/16)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.jvm.ThreadDump;
    +&nbsp;import jakarta.servlet.ServletException;
    +&nbsp;import jakarta.servlet.http.HttpServlet;
    +&nbsp;import jakarta.servlet.http.HttpServletRequest;
    +&nbsp;import jakarta.servlet.http.HttpServletResponse;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
    +&nbsp; * the VM. Only responds to {@code GET} requests.
    +&nbsp; */
    +<b class="fc">&nbsp;public class ThreadDumpServlet extends HttpServlet {</b>
    +&nbsp;
    +&nbsp;    private static final long serialVersionUID = -2690343532336103046L;
    +&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    +&nbsp;
    +&nbsp;    private transient ThreadDump threadDump;
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void init() throws ServletException {
    +&nbsp;        try {
    +&nbsp;            // Some PaaS like Google App Engine blacklist java.lang.managament
    +<b class="fc">&nbsp;            this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());</b>
    +<b class="nc">&nbsp;        } catch (NoClassDefFoundError ncdfe) {</b>
    +<b class="nc">&nbsp;            this.threadDump = null; // we won&#39;t be able to provide thread dump</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected void doGet(HttpServletRequest req,
    +&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    +<b class="fc">&nbsp;        final boolean includeMonitors = getParam(req.getParameter(&quot;monitors&quot;), true);</b>
    +<b class="fc">&nbsp;        final boolean includeSynchronizers = getParam(req.getParameter(&quot;synchronizers&quot;), true);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    +<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    +<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    +<b class="fc">&nbsp;        if (threadDump == null) {</b>
    +<b class="nc">&nbsp;            resp.getWriter().println(&quot;Sorry your runtime environment does not allow to dump threads.&quot;);</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    +<b class="fc">&nbsp;            threadDump.dump(includeMonitors, includeSynchronizers, output);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static Boolean getParam(String initParam, boolean defaultValue) {
    +<b class="fc">&nbsp;        return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index.html
    index ff70b27265..adcd4b86fb 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index.html
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK.html
    index 18609c756a..c6b1ae14ef 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK.html
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
    index d5800a3924..84d8f36e68 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS.html
    index 90ae736370..ab11830911 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS.html
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
    index 59921f4973..afd439f49f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE.html
    index 053d6fba95..4ed6ad7d19 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE.html
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
    index a63d03f9bc..5fbb19f2ec 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD.html
    index 6c13a3dc73..2087ccc25a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD.html
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
    index a5344b2ce8..8e7854d468 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
    index 7ef7cf894f..6a413f99eb 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
    @@ -245,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-1.html
    index 1cd77c4fad..d0a45e01d7 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-1.html
    @@ -170,7 +170,7 @@ <h1>Coverage Summary for Class: CachedGaugeBenchmark (com.codahale.metrics.bench
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-2.html
    index 0430a0cb21..61166e05ff 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-2.html
    @@ -136,7 +136,7 @@ <h1>Coverage Summary for Class: CounterBenchmark (com.codahale.metrics.benchmark
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-3.html
    index 29fd0199e8..078576f6e1 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-3.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-3.html
    @@ -136,7 +136,7 @@ <h1>Coverage Summary for Class: MeterBenchmark (com.codahale.metrics.benchmarks)
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-4.html
    index 0e917edcc8..ad833672ea 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-4.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-4.html
    @@ -186,7 +186,7 @@ <h1>Coverage Summary for Class: ReservoirBenchmark (com.codahale.metrics.benchma
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-5.html
    index ac852e495e..8fdb617429 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-5.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-5.html
    @@ -178,7 +178,7 @@ <h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark (com.codaha
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index.html
    index cf66eb6b35..d222a992fe 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/143)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/1012)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/2860)
       </span>
     </td>
       </tr>
    @@ -83,34 +95,956 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/146)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/406)
       </span>
     </td>
       </tr>
    @@ -137,7 +1071,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK.html
    index cce2b7bfed..d84b5e43ee 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/143)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/1012)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/2860)
       </span>
     </td>
       </tr>
    @@ -82,35 +94,957 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/146)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/406)
       </span>
     </td>
       </tr>
    @@ -137,7 +1071,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
    index e2519e2bce..0ed15f67cc 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/143)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/1012)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/2860)
       </span>
     </td>
       </tr>
    @@ -82,35 +94,957 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/1)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/1)
       </span>
     </td>
       </tr>
    @@ -137,7 +1071,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS.html
    index 9285d98ae1..fbbe45cc85 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/143)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/1012)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/2860)
       </span>
     </td>
       </tr>
    @@ -83,34 +95,956 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/146)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/406)
       </span>
     </td>
       </tr>
    @@ -137,7 +1071,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
    index c62e6e0a46..82577136d3 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/143)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/1012)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/2860)
       </span>
     </td>
       </tr>
    @@ -83,34 +95,956 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/1)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/1)
       </span>
     </td>
       </tr>
    @@ -137,7 +1071,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE.html
    index 100ea3a449..513498d973 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/143)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/1012)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/2860)
       </span>
     </td>
       </tr>
    @@ -82,35 +94,957 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat sortedAsc
     ">
       <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/146)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/406)
       </span>
     </td>
       </tr>
    @@ -137,7 +1071,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
    index 38676fa22a..b873577f31 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/143)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/1012)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/2860)
       </span>
     </td>
       </tr>
    @@ -82,35 +94,957 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat sortedDesc
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/1)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/1)
       </span>
     </td>
       </tr>
    @@ -137,7 +1071,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD.html
    index 2a341b31e6..dc1b3d455e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/143)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/1012)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/2860)
       </span>
     </td>
       </tr>
    @@ -83,34 +95,956 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
       <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/146)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/406)
       </span>
     </td>
       </tr>
    @@ -137,7 +1071,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
    index e4e5f99f81..a31721141f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/143)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/1012)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/2860)
       </span>
     </td>
       </tr>
    @@ -83,34 +95,956 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/1)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/1)
       </span>
     </td>
       </tr>
    @@ -137,7 +1071,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
    index 22416509ea..8252ebcbdc 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    +  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    +com.codahale.metrics.benchmarks.jmh_generated</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    +    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/31)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/143)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/1012)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/2860)
       </span>
     </td>
       </tr>
    @@ -83,34 +95,956 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    +    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +    <td class="coverageStat"/>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/1)
       </span>
     </td>
    +    <td class="coverageStat"/>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/1)
       </span>
     </td>
       </tr>
    @@ -137,7 +1071,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1.html
    index db9b67bd25..3927a2ed49 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsStatsCounter</title>
    +  <title>Coverage Report > CachedGaugeBenchmark_jmhType</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.caffeine</a>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
     </div>
     
    -<h1>Coverage Summary for Class: MetricsStatsCounter (com.codahale.metrics.caffeine)</h1>
    +<h1>Coverage Summary for Class: CachedGaugeBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -41,29 +41,29 @@ <h1>Coverage Summary for Class: MetricsStatsCounter (com.codahale.metrics.caffei
     </th>
     </tr>
     <tr>
    -  <td class="name">MetricsStatsCounter</td>
    +  <td class="name">CachedGaugeBenchmark_jmhType</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    0%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (0/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    0%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (0/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97%
    +    0%
       </span>
       <span class="absValue">
    -    (32/33)
    +    (0/1)
       </span>
     </td>
     </tr>
    @@ -75,140 +75,10 @@ <h1>Coverage Summary for Class: MetricsStatsCounter (com.codahale.metrics.caffei
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;/*
    -&nbsp; * Copyright 2016 Ben Manes. All Rights Reserved.
    -&nbsp; *
    -&nbsp; * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    -&nbsp; * you may not use this file except in compliance with the License.
    -&nbsp; * You may obtain a copy of the License at
    -&nbsp; *
    -&nbsp; *     http://www.apache.org/licenses/LICENSE-2.0
    -&nbsp; *
    -&nbsp; * Unless required by applicable law or agreed to in writing, software
    -&nbsp; * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    -&nbsp; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -&nbsp; * See the License for the specific language governing permissions and
    -&nbsp; * limitations under the License.
    -&nbsp; */
    -&nbsp;package com.codahale.metrics.caffeine;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;import java.util.EnumMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.github.benmanes.caffeine.cache.RemovalCause;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.CacheStats;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.StatsCounter;
    -&nbsp;import org.checkerframework.checker.index.qual.NonNegative;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link StatsCounter} instrumented with Dropwizard Metrics.
    -&nbsp; *
    -&nbsp; * @author ben.manes@gmail.com (Ben Manes)
    -&nbsp; * @author John Karp
    -&nbsp; */
    -&nbsp;public final class MetricsStatsCounter implements StatsCounter {
    -&nbsp;  private final Counter hitCount;
    -&nbsp;  private final Counter missCount;
    -&nbsp;  private final Timer loadSuccess;
    -&nbsp;  private final Timer loadFailure;
    -&nbsp;  private final Histogram evictions;
    -&nbsp;  private final Counter evictionWeight;
    -&nbsp;  private final EnumMap&lt;RemovalCause, Histogram&gt; evictionsWithCause;
    -&nbsp;
    -&nbsp;  // for implementing snapshot()
    -<b class="fc">&nbsp;  private final LongAdder totalLoadTime = new LongAdder();</b>
    -&nbsp;
    -&nbsp;  /**
    -&nbsp;   * Constructs an instance for use by a single cache.
    -&nbsp;   *
    -&nbsp;   * @param registry the registry of metric instances
    -&nbsp;   * @param metricsPrefix the prefix name for the metrics
    -&nbsp;   */
    -<b class="fc">&nbsp;  public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {</b>
    -<b class="fc">&nbsp;    requireNonNull(metricsPrefix);</b>
    -<b class="fc">&nbsp;    hitCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;hits&quot;));</b>
    -<b class="fc">&nbsp;    missCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;misses&quot;));</b>
    -<b class="fc">&nbsp;    loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-success&quot;));</b>
    -<b class="fc">&nbsp;    loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-failure&quot;));</b>
    -<b class="fc">&nbsp;    evictions = registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;));</b>
    -<b class="fc">&nbsp;    evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, &quot;evictions-weight&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    evictionsWithCause = new EnumMap&lt;&gt;(RemovalCause.class);</b>
    -<b class="fc">&nbsp;    for (RemovalCause cause : RemovalCause.values()) {</b>
    -<b class="fc">&nbsp;      evictionsWithCause.put(</b>
    -&nbsp;          cause,
    -<b class="fc">&nbsp;          registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;, cause.name())));</b>
    -&nbsp;    }
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordHits(int count) {
    -<b class="fc">&nbsp;    hitCount.inc(count);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordMisses(int count) {
    -<b class="fc">&nbsp;    missCount.inc(count);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadSuccess(long loadTime) {
    -<b class="fc">&nbsp;    loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadFailure(long loadTime) {
    -<b class="fc">&nbsp;    loadFailure.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  // @Override -- Caffeine 2.x
    -&nbsp;  @Deprecated
    -&nbsp;  @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;  public void recordEviction() {
    -&nbsp;    // This method is scheduled for removal in version 3.0 in favor of recordEviction(weight)
    -<b class="fc">&nbsp;    recordEviction(1);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  // @Override -- Caffeine 2.x
    -&nbsp;  @Deprecated
    -&nbsp;  @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;  public void recordEviction(int weight) {
    -<b class="fc">&nbsp;    evictions.update(weight);</b>
    -<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordEviction(@NonNegative int weight, RemovalCause cause) {
    -<b class="fc">&nbsp;    evictionsWithCause.get(cause).update(weight);</b>
    -<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public CacheStats snapshot() {
    -<b class="fc">&nbsp;    return CacheStats.of(</b>
    -<b class="fc">&nbsp;        hitCount.getCount(),</b>
    -<b class="fc">&nbsp;        missCount.getCount(),</b>
    -<b class="fc">&nbsp;        loadSuccess.getCount(),</b>
    -<b class="fc">&nbsp;        loadFailure.getCount(),</b>
    -<b class="fc">&nbsp;        totalLoadTime.sum(),</b>
    -<b class="fc">&nbsp;        evictions.getCount(),</b>
    -<b class="fc">&nbsp;        evictionWeight.getCount());</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public String toString() {
    -<b class="nc">&nbsp;    return snapshot().toString();</b>
    -&nbsp;  }
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class CachedGaugeBenchmark_jmhType extends CachedGaugeBenchmark_jmhType_B3 {</b>
     &nbsp;}
    +&nbsp;
     </code>
     </pre>
     </div>
    @@ -232,7 +102,7 @@ <h1>Coverage Summary for Class: MetricsStatsCounter (com.codahale.metrics.caffei
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-10.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-10.html
    new file mode 100644
    index 0000000000..a2ccd2b73d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-10.html
    @@ -0,0 +1,108 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_jmhType</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_jmhType</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class ReservoirBenchmark_jmhType extends ReservoirBenchmark_jmhType_B3 {</b>
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-11.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-11.html
    new file mode 100644
    index 0000000000..3e8881f1ff
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-11.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_jmhType_B1</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_jmhType_B1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import com.codahale.metrics.benchmarks.ReservoirBenchmark;
    +<b class="nc">&nbsp;public class ReservoirBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.ReservoirBenchmark {</b>
    +&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    +&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    +&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    +&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    +&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    +&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    +&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    +&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    +&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    +&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    +&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    +&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    +&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    +&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    +&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    +&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-12.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-12.html
    new file mode 100644
    index 0000000000..013c16f05e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-12.html
    @@ -0,0 +1,126 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_jmhType_B2</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_jmhType_B2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    +<b class="nc">&nbsp;public class ReservoirBenchmark_jmhType_B2 extends ReservoirBenchmark_jmhType_B1 {</b>
    +&nbsp;    public volatile int setupTrialMutex;
    +&nbsp;    public volatile int tearTrialMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupIterationMutex;
    +&nbsp;    public volatile int tearIterationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupInvocationMutex;
    +&nbsp;    public volatile int tearInvocationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile boolean readyTrial;
    +&nbsp;    public volatile boolean readyIteration;
    +&nbsp;    public volatile boolean readyInvocation;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-13.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-13.html
    new file mode 100644
    index 0000000000..d67dff2c60
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-13.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_jmhType_B3</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_jmhType_B3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class ReservoirBenchmark_jmhType_B3 extends ReservoirBenchmark_jmhType_B2 {</b>
    +&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    +&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    +&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    +&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    +&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    +&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    +&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    +&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    +&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    +&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    +&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    +&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    +&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    +&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    +&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    +&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-14.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-14.html
    new file mode 100644
    index 0000000000..6e79e312e6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-14.html
    @@ -0,0 +1,484 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfExponentiallyDecayingReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfExponentiallyDecayingReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfExponentiallyDecayingReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfExponentiallyDecayingReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfExponentiallyDecayingReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfExponentiallyDecayingReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfExponentiallyDecayingReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfExponentiallyDecayingReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfExponentiallyDecayingReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            perfExponentiallyDecayingReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfExponentiallyDecayingReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfExponentiallyDecayingReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfExponentiallyDecayingReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            perfExponentiallyDecayingReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfExponentiallyDecayingReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfExponentiallyDecayingReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    +&nbsp;    
    +&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-15.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-15.html
    new file mode 100644
    index 0000000000..5ad1617d0a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-15.html
    @@ -0,0 +1,484 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfLockFreeExponentiallyDecayingReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfLockFreeExponentiallyDecayingReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfLockFreeExponentiallyDecayingReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfLockFreeExponentiallyDecayingReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfLockFreeExponentiallyDecayingReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfLockFreeExponentiallyDecayingReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfLockFreeExponentiallyDecayingReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfLockFreeExponentiallyDecayingReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfLockFreeExponentiallyDecayingReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            perfLockFreeExponentiallyDecayingReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfLockFreeExponentiallyDecayingReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfLockFreeExponentiallyDecayingReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfLockFreeExponentiallyDecayingReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            perfLockFreeExponentiallyDecayingReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfLockFreeExponentiallyDecayingReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfLockFreeExponentiallyDecayingReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    +&nbsp;    
    +&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-16.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-16.html
    new file mode 100644
    index 0000000000..996d5f2641
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-16.html
    @@ -0,0 +1,484 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowArrayReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfSlidingTimeWindowArrayReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowArrayReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingTimeWindowArrayReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowArrayReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfSlidingTimeWindowArrayReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowArrayReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingTimeWindowArrayReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowArrayReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            perfSlidingTimeWindowArrayReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowArrayReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingTimeWindowArrayReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowArrayReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            perfSlidingTimeWindowArrayReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowArrayReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingTimeWindowArrayReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    +&nbsp;    
    +&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-17.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-17.html
    new file mode 100644
    index 0000000000..967c94d9e6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-17.html
    @@ -0,0 +1,484 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfSlidingTimeWindowReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingTimeWindowReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfSlidingTimeWindowReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingTimeWindowReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            perfSlidingTimeWindowReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingTimeWindowReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            perfSlidingTimeWindowReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingTimeWindowReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    +&nbsp;    
    +&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-18.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-18.html
    new file mode 100644
    index 0000000000..f3214d140c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-18.html
    @@ -0,0 +1,484 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingWindowReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfSlidingWindowReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfSlidingWindowReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingWindowReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingWindowReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfSlidingWindowReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfSlidingWindowReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingWindowReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingWindowReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            perfSlidingWindowReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfSlidingWindowReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingWindowReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfSlidingWindowReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            perfSlidingWindowReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfSlidingWindowReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfSlidingWindowReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    +&nbsp;    
    +&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-19.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-19.html
    new file mode 100644
    index 0000000000..01382ba913
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-19.html
    @@ -0,0 +1,484 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > ReservoirBenchmark_perfUniformReservoir_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: ReservoirBenchmark_perfUniformReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">ReservoirBenchmark_perfUniformReservoir_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class ReservoirBenchmark_perfUniformReservoir_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfUniformReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfUniformReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfUniformReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfUniformReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfUniformReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfUniformReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfUniformReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfUniformReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfUniformReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            perfUniformReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfUniformReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfUniformReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfUniformReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            perfUniformReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfUniformReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfUniformReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    +&nbsp;    
    +&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1a.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1a.html
    new file mode 100644
    index 0000000000..cfda9238bd
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1a.html
    @@ -0,0 +1,724 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.SlidingTimeWindowReservoirsBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult arrTime_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            arrTimeAddMeasurement_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.SECONDARY, &quot;arrTimeAddMeasurement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            arrTimeRead_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.SECONDARY, &quot;arrTimeRead&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void arrTimeAddMeasurement_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void arrTimeRead_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult arrTime_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            arrTimeAddMeasurement_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.SECONDARY, &quot;arrTimeAddMeasurement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            arrTimeRead_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.SECONDARY, &quot;arrTimeRead&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void arrTimeAddMeasurement_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void arrTimeRead_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult arrTime_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            arrTimeAddMeasurement_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;arrTime&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.SECONDARY, &quot;arrTimeAddMeasurement&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            arrTimeRead_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;arrTime&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.SECONDARY, &quot;arrTimeRead&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void arrTimeAddMeasurement_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void arrTimeRead_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult arrTime_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            arrTimeAddMeasurement_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.SECONDARY, &quot;arrTimeAddMeasurement&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            arrTimeRead_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.SECONDARY, &quot;arrTimeRead&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void arrTimeAddMeasurement_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void arrTimeRead_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile SlidingTimeWindowReservoirsBenchmark_jmhType f_slidingtimewindowreservoirsbenchmark0_G;
    +&nbsp;    
    +&nbsp;    SlidingTimeWindowReservoirsBenchmark_jmhType _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        SlidingTimeWindowReservoirsBenchmark_jmhType val = f_slidingtimewindowreservoirsbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_slidingtimewindowreservoirsbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new SlidingTimeWindowReservoirsBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_slidingtimewindowreservoirsbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1b.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1b.html
    new file mode 100644
    index 0000000000..be248bea78
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1b.html
    @@ -0,0 +1,108 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_jmhType</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowReservoirsBenchmark_jmhType</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark_jmhType extends SlidingTimeWindowReservoirsBenchmark_jmhType_B3 {</b>
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1c.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1c.html
    new file mode 100644
    index 0000000000..d2c2111388
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1c.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_jmhType_B1</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import com.codahale.metrics.benchmarks.SlidingTimeWindowReservoirsBenchmark;
    +<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.SlidingTimeWindowReservoirsBenchmark {</b>
    +&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    +&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    +&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    +&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    +&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    +&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    +&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    +&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    +&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    +&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    +&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    +&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    +&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    +&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    +&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    +&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1d.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1d.html
    new file mode 100644
    index 0000000000..ccc1f65f0e
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1d.html
    @@ -0,0 +1,126 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_jmhType_B2</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    +<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark_jmhType_B2 extends SlidingTimeWindowReservoirsBenchmark_jmhType_B1 {</b>
    +&nbsp;    public volatile int setupTrialMutex;
    +&nbsp;    public volatile int tearTrialMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupIterationMutex;
    +&nbsp;    public volatile int tearIterationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupInvocationMutex;
    +&nbsp;    public volatile int tearInvocationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile boolean readyTrial;
    +&nbsp;    public volatile boolean readyIteration;
    +&nbsp;    public volatile boolean readyInvocation;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1e.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1e.html
    new file mode 100644
    index 0000000000..dfcb30cf94
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1e.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_jmhType_B3</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark_jmhType_B3 extends SlidingTimeWindowReservoirsBenchmark_jmhType_B2 {</b>
    +&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    +&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    +&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    +&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    +&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    +&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    +&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    +&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    +&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    +&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    +&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    +&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    +&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    +&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    +&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    +&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1f.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1f.html
    new file mode 100644
    index 0000000000..3345c72ed3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1f.html
    @@ -0,0 +1,724 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/146)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/406)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.SlidingTimeWindowReservoirsBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult slidingTime_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            slidingTimeAddMeasurement_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.SECONDARY, &quot;slidingTimeAddMeasurement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            slidingTimeRead_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.SECONDARY, &quot;slidingTimeRead&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void slidingTimeAddMeasurement_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void slidingTimeRead_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult slidingTime_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            slidingTimeAddMeasurement_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.SECONDARY, &quot;slidingTimeAddMeasurement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            slidingTimeRead_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.SECONDARY, &quot;slidingTimeRead&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void slidingTimeAddMeasurement_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void slidingTimeRead_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult slidingTime_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            slidingTimeAddMeasurement_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.SECONDARY, &quot;slidingTimeAddMeasurement&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            slidingTimeRead_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.SECONDARY, &quot;slidingTimeRead&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void slidingTimeAddMeasurement_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void slidingTimeRead_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult slidingTime_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            slidingTimeAddMeasurement_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.SECONDARY, &quot;slidingTimeAddMeasurement&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    +<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            slidingTimeRead_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.SECONDARY, &quot;slidingTimeRead&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void slidingTimeAddMeasurement_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void slidingTimeRead_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile SlidingTimeWindowReservoirsBenchmark_jmhType f_slidingtimewindowreservoirsbenchmark0_G;
    +&nbsp;    
    +&nbsp;    SlidingTimeWindowReservoirsBenchmark_jmhType _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        SlidingTimeWindowReservoirsBenchmark_jmhType val = f_slidingtimewindowreservoirsbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_slidingtimewindowreservoirsbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new SlidingTimeWindowReservoirsBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_slidingtimewindowreservoirsbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-2.html
    new file mode 100644
    index 0000000000..80125877c3
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-2.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CachedGaugeBenchmark_jmhType_B1</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CachedGaugeBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CachedGaugeBenchmark_jmhType_B1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import com.codahale.metrics.benchmarks.CachedGaugeBenchmark;
    +<b class="nc">&nbsp;public class CachedGaugeBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.CachedGaugeBenchmark {</b>
    +&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    +&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    +&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    +&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    +&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    +&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    +&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    +&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    +&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    +&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    +&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    +&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    +&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    +&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    +&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    +&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-3.html
    new file mode 100644
    index 0000000000..89410dc57c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-3.html
    @@ -0,0 +1,126 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CachedGaugeBenchmark_jmhType_B2</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CachedGaugeBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CachedGaugeBenchmark_jmhType_B2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    +<b class="nc">&nbsp;public class CachedGaugeBenchmark_jmhType_B2 extends CachedGaugeBenchmark_jmhType_B1 {</b>
    +&nbsp;    public volatile int setupTrialMutex;
    +&nbsp;    public volatile int tearTrialMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupIterationMutex;
    +&nbsp;    public volatile int tearIterationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupInvocationMutex;
    +&nbsp;    public volatile int tearInvocationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile boolean readyTrial;
    +&nbsp;    public volatile boolean readyIteration;
    +&nbsp;    public volatile boolean readyInvocation;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-4.html
    new file mode 100644
    index 0000000000..a0343c8a43
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-4.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CachedGaugeBenchmark_jmhType_B3</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CachedGaugeBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CachedGaugeBenchmark_jmhType_B3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class CachedGaugeBenchmark_jmhType_B3 extends CachedGaugeBenchmark_jmhType_B2 {</b>
    +&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    +&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    +&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    +&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    +&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    +&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    +&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    +&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    +&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    +&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    +&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    +&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    +&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    +&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    +&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    +&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-5.html
    new file mode 100644
    index 0000000000..e74f02f3b8
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-5.html
    @@ -0,0 +1,484 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CachedGaugeBenchmark_perfGetValue_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CachedGaugeBenchmark_perfGetValue_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CachedGaugeBenchmark_perfGetValue_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.CachedGaugeBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class CachedGaugeBenchmark_perfGetValue_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfGetValue_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G = _jmh_tryInit_f_cachedgaugebenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfGetValue_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_cachedgaugebenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_cachedgaugebenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfGetValue&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfGetValue_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfGetValue_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G = _jmh_tryInit_f_cachedgaugebenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfGetValue_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_cachedgaugebenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_cachedgaugebenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfGetValue&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfGetValue_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfGetValue_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G = _jmh_tryInit_f_cachedgaugebenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            perfGetValue_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_cachedgaugebenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_cachedgaugebenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfGetValue&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfGetValue_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfGetValue_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G = _jmh_tryInit_f_cachedgaugebenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            perfGetValue_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_cachedgaugebenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_cachedgaugebenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfGetValue&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfGetValue_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile CachedGaugeBenchmark_jmhType f_cachedgaugebenchmark0_G;
    +&nbsp;    
    +&nbsp;    CachedGaugeBenchmark_jmhType _jmh_tryInit_f_cachedgaugebenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        CachedGaugeBenchmark_jmhType val = f_cachedgaugebenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_cachedgaugebenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new CachedGaugeBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_cachedgaugebenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-6.html
    new file mode 100644
    index 0000000000..c857ab5b16
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-6.html
    @@ -0,0 +1,108 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CounterBenchmark_jmhType</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CounterBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CounterBenchmark_jmhType</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class CounterBenchmark_jmhType extends CounterBenchmark_jmhType_B3 {</b>
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-7.html
    new file mode 100644
    index 0000000000..fd63e4136c
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-7.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CounterBenchmark_jmhType_B1</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CounterBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CounterBenchmark_jmhType_B1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import com.codahale.metrics.benchmarks.CounterBenchmark;
    +<b class="nc">&nbsp;public class CounterBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.CounterBenchmark {</b>
    +&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    +&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    +&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    +&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    +&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    +&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    +&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    +&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    +&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    +&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    +&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    +&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    +&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    +&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    +&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    +&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-8.html
    new file mode 100644
    index 0000000000..5ac6d2e094
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-8.html
    @@ -0,0 +1,126 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CounterBenchmark_jmhType_B2</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CounterBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CounterBenchmark_jmhType_B2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    +<b class="nc">&nbsp;public class CounterBenchmark_jmhType_B2 extends CounterBenchmark_jmhType_B1 {</b>
    +&nbsp;    public volatile int setupTrialMutex;
    +&nbsp;    public volatile int tearTrialMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupIterationMutex;
    +&nbsp;    public volatile int tearIterationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupInvocationMutex;
    +&nbsp;    public volatile int tearInvocationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile boolean readyTrial;
    +&nbsp;    public volatile boolean readyIteration;
    +&nbsp;    public volatile boolean readyInvocation;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-9.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-9.html
    new file mode 100644
    index 0000000000..9ae249a173
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-9.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CounterBenchmark_jmhType_B3</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CounterBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CounterBenchmark_jmhType_B3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class CounterBenchmark_jmhType_B3 extends CounterBenchmark_jmhType_B2 {</b>
    +&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    +&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    +&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    +&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    +&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    +&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    +&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    +&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    +&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    +&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    +&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    +&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    +&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    +&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    +&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    +&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-a.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-a.html
    new file mode 100644
    index 0000000000..a6a06ee212
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-a.html
    @@ -0,0 +1,484 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > CounterBenchmark_perfIncrement_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: CounterBenchmark_perfIncrement_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">CounterBenchmark_perfIncrement_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.CounterBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class CounterBenchmark_perfIncrement_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfIncrement_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            CounterBenchmark_jmhType l_counterbenchmark0_G = _jmh_tryInit_f_counterbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfIncrement_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_counterbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_counterbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfIncrement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfIncrement_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, CounterBenchmark_jmhType l_counterbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfIncrement_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            CounterBenchmark_jmhType l_counterbenchmark0_G = _jmh_tryInit_f_counterbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfIncrement_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_counterbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_counterbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfIncrement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfIncrement_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, CounterBenchmark_jmhType l_counterbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfIncrement_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            CounterBenchmark_jmhType l_counterbenchmark0_G = _jmh_tryInit_f_counterbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            perfIncrement_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_counterbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_counterbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfIncrement&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfIncrement_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, CounterBenchmark_jmhType l_counterbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfIncrement_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            CounterBenchmark_jmhType l_counterbenchmark0_G = _jmh_tryInit_f_counterbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            perfIncrement_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_counterbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_counterbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfIncrement&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfIncrement_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, CounterBenchmark_jmhType l_counterbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile CounterBenchmark_jmhType f_counterbenchmark0_G;
    +&nbsp;    
    +&nbsp;    CounterBenchmark_jmhType _jmh_tryInit_f_counterbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        CounterBenchmark_jmhType val = f_counterbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_counterbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new CounterBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_counterbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-b.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-b.html
    new file mode 100644
    index 0000000000..fc6e2e385a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-b.html
    @@ -0,0 +1,108 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MeterBenchmark_jmhType</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MeterBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MeterBenchmark_jmhType</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class MeterBenchmark_jmhType extends MeterBenchmark_jmhType_B3 {</b>
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-c.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-c.html
    new file mode 100644
    index 0000000000..7408a783aa
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-c.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MeterBenchmark_jmhType_B1</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MeterBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MeterBenchmark_jmhType_B1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import com.codahale.metrics.benchmarks.MeterBenchmark;
    +<b class="nc">&nbsp;public class MeterBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.MeterBenchmark {</b>
    +&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    +&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    +&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    +&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    +&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    +&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    +&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    +&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    +&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    +&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    +&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    +&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    +&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    +&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    +&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    +&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-d.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-d.html
    new file mode 100644
    index 0000000000..5602fb0cf4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-d.html
    @@ -0,0 +1,126 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MeterBenchmark_jmhType_B2</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MeterBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MeterBenchmark_jmhType_B2</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    +<b class="nc">&nbsp;public class MeterBenchmark_jmhType_B2 extends MeterBenchmark_jmhType_B1 {</b>
    +&nbsp;    public volatile int setupTrialMutex;
    +&nbsp;    public volatile int tearTrialMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupIterationMutex;
    +&nbsp;    public volatile int tearIterationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile int setupInvocationMutex;
    +&nbsp;    public volatile int tearInvocationMutex;
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    +<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    +&nbsp;
    +&nbsp;    public volatile boolean readyTrial;
    +&nbsp;    public volatile boolean readyIteration;
    +&nbsp;    public volatile boolean readyInvocation;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-e.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-e.html
    new file mode 100644
    index 0000000000..8942a696e4
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-e.html
    @@ -0,0 +1,124 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MeterBenchmark_jmhType_B3</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MeterBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MeterBenchmark_jmhType_B3</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +<b class="nc">&nbsp;public class MeterBenchmark_jmhType_B3 extends MeterBenchmark_jmhType_B2 {</b>
    +&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    +&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    +&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    +&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    +&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    +&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    +&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    +&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    +&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    +&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    +&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    +&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    +&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    +&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    +&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    +&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-f.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-f.html
    new file mode 100644
    index 0000000000..8da842fb81
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-f.html
    @@ -0,0 +1,484 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > MeterBenchmark_perfMark_jmhTest</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: MeterBenchmark_perfMark_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">MeterBenchmark_perfMark_jmhTest</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/80)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/222)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    +&nbsp;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;import java.util.Collection;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    +&nbsp;import org.openjdk.jmh.runner.InfraControl;
    +&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    +&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    +&nbsp;import org.openjdk.jmh.results.Result;
    +&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    +&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    +&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    +&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    +&nbsp;import org.openjdk.jmh.annotations.Mode;
    +&nbsp;import org.openjdk.jmh.annotations.Fork;
    +&nbsp;import org.openjdk.jmh.annotations.Measurement;
    +&nbsp;import org.openjdk.jmh.annotations.Threads;
    +&nbsp;import org.openjdk.jmh.annotations.Warmup;
    +&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    +&nbsp;import org.openjdk.jmh.results.RawResults;
    +&nbsp;import org.openjdk.jmh.results.ResultRole;
    +&nbsp;import java.lang.reflect.Field;
    +&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    +&nbsp;import org.openjdk.jmh.infra.IterationParams;
    +&nbsp;import org.openjdk.jmh.infra.Blackhole;
    +&nbsp;import org.openjdk.jmh.infra.Control;
    +&nbsp;import org.openjdk.jmh.results.ScalarResult;
    +&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    +&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.MeterBenchmark_jmhType;
    +<b class="nc">&nbsp;public final class MeterBenchmark_perfMark_jmhTest {</b>
    +&nbsp;
    +&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    +&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    +&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    +&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    +&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    +&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    +&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    +&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    +&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    +&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    +&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    +&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    +&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    +&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    +&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    +&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    +&nbsp;    int startRndMask;
    +&nbsp;    BenchmarkParams benchmarkParams;
    +&nbsp;    IterationParams iterationParams;
    +&nbsp;    ThreadParams threadParams;
    +&nbsp;    Blackhole blackhole;
    +&nbsp;    Control notifyControl;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfMark_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            MeterBenchmark_jmhType l_meterbenchmark0_G = _jmh_tryInit_f_meterbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfMark_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_meterbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_meterbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfMark&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfMark_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, MeterBenchmark_jmhType l_meterbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfMark_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            MeterBenchmark_jmhType l_meterbenchmark0_G = _jmh_tryInit_f_meterbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            perfMark_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_meterbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_meterbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfMark&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfMark_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, MeterBenchmark_jmhType l_meterbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfMark_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            MeterBenchmark_jmhType l_meterbenchmark0_G = _jmh_tryInit_f_meterbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    +<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                res.allOps++;</b>
    +&nbsp;            }
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    +<b class="nc">&nbsp;            perfMark_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_meterbenchmark0_G);</b>
    +<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    +<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    +<b class="nc">&nbsp;                    blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    +<b class="nc">&nbsp;                    res.allOps++;</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    +<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_meterbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    +<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    +<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    +<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfMark&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfMark_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, MeterBenchmark_jmhType l_meterbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        long operations = 0;</b>
    +<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    +<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    +<b class="nc">&nbsp;        long time = 0;</b>
    +<b class="nc">&nbsp;        int currentStride = 0;</b>
    +&nbsp;        do {
    +<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    +<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                time = System.nanoTime();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;                blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            if (sample) {</b>
    +<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    +<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    +<b class="nc">&nbsp;                    buffer.half();</b>
    +<b class="nc">&nbsp;                    currentStride = 0;</b>
    +<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="nc">&nbsp;            operations++;</b>
    +<b class="nc">&nbsp;        } while(!control.isDone);</b>
    +<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    public BenchmarkTaskResult perfMark_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    +<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    +<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    +<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    +<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    +<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    +<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    +<b class="nc">&nbsp;            MeterBenchmark_jmhType l_meterbenchmark0_G = _jmh_tryInit_f_meterbenchmark0_G(control);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            control.preSetup();</b>
    +&nbsp;
    +&nbsp;
    +<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    +<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    +<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    +<b class="nc">&nbsp;            perfMark_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_meterbenchmark0_G);</b>
    +<b class="nc">&nbsp;            control.preTearDown();</b>
    +&nbsp;
    +<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    +<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    +<b class="nc">&nbsp;                    f_meterbenchmark0_G = null;</b>
    +<b class="nc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    +<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    +<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    +<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfMark&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    +<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    +<b class="nc">&nbsp;            return results;</b>
    +&nbsp;        } else
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void perfMark_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, MeterBenchmark_jmhType l_meterbenchmark0_G) throws Throwable {
    +<b class="nc">&nbsp;        long realTime = 0;</b>
    +<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    +<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    +<b class="nc">&nbsp;            blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    +<b class="nc">&nbsp;        result.realTime = realTime;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    
    +&nbsp;    static volatile MeterBenchmark_jmhType f_meterbenchmark0_G;
    +&nbsp;    
    +&nbsp;    MeterBenchmark_jmhType _jmh_tryInit_f_meterbenchmark0_G(InfraControl control) throws Throwable {
    +<b class="nc">&nbsp;        MeterBenchmark_jmhType val = f_meterbenchmark0_G;</b>
    +<b class="nc">&nbsp;        if (val != null) {</b>
    +<b class="nc">&nbsp;            return val;</b>
    +&nbsp;        }
    +<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    +<b class="nc">&nbsp;            val = f_meterbenchmark0_G;</b>
    +<b class="nc">&nbsp;            if (val != null) {</b>
    +<b class="nc">&nbsp;                return val;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            val = new MeterBenchmark_jmhType();</b>
    +<b class="nc">&nbsp;            val.readyTrial = true;</b>
    +<b class="nc">&nbsp;            f_meterbenchmark0_G = val;</b>
    +<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    +<b class="nc">&nbsp;                control.isFailing = true;</b>
    +<b class="nc">&nbsp;                throw t;</b>
    +<b class="nc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +<b class="nc">&nbsp;        return val;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;}
    +&nbsp;
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index.html
    index 2383917d7f..ff3a24cde7 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    +com.codahale.metrics.caffeine</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    90%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (9/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    100%
       </span>
       <span class="absValue">
    -    (68/82)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.4%
    +    97%
       </span>
       <span class="absValue">
    -    (261/313)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -83,93 +95,16 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -180,56 +115,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (9/10)
       </span>
     </td>
     <td class="coverageStat">
    @@ -242,37 +131,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    +    97%
       </span>
       <span class="absValue">
    -    (13/14)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -299,7 +161,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK.html
    index cedf62aa03..cddb070028 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    +com.codahale.metrics.caffeine</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    90%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (9/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    100%
       </span>
       <span class="absValue">
    -    (68/82)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.4%
    +    97%
       </span>
       <span class="absValue">
    -    (261/313)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -82,94 +94,17 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat sortedAsc
    +">
    +  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    +</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -180,56 +115,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    +    (9/10)
       </span>
     </td>
     <td class="coverageStat">
    @@ -242,37 +131,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    +    97%
       </span>
       <span class="absValue">
    -    (13/14)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -299,7 +161,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
    index 5d2903863e..1ef8350b65 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    +com.codahale.metrics.caffeine</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    90%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (9/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    100%
       </span>
       <span class="absValue">
    -    (68/82)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.4%
    +    97%
       </span>
       <span class="absValue">
    -    (261/313)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -82,13 +94,17 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat sortedDesc
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,29 +115,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (9/10)
       </span>
     </td>
     <td class="coverageStat">
    @@ -134,145 +131,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    +    97%
       </span>
       <span class="absValue">
    -    (110/136)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -299,7 +161,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS.html
    index 75673e7564..ddb229211c 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    +com.codahale.metrics.caffeine</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    90%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (9/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    100%
       </span>
       <span class="absValue">
    -    (68/82)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.4%
    +    97%
       </span>
       <span class="absValue">
    -    (261/313)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -83,120 +95,16 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,29 +115,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (9/10)
       </span>
     </td>
     <td class="coverageStat">
    @@ -242,37 +131,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    +    97%
       </span>
       <span class="absValue">
    -    (13/14)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -299,7 +161,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
    index fb3b16996e..0e445dde0a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    +com.codahale.metrics.caffeine</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    90%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (9/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    100%
       </span>
       <span class="absValue">
    -    (68/82)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.4%
    +    97%
       </span>
       <span class="absValue">
    -    (261/313)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -83,66 +95,16 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,77 +115,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    +    90%
       </span>
       <span class="absValue">
    -    (14/15)
    +    (9/10)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -234,45 +131,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    +    97%
       </span>
       <span class="absValue">
    -    (0/8)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -299,7 +161,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE.html
    index 397500bc8c..ebc7b89740 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    +com.codahale.metrics.caffeine</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    90%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (9/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    100%
       </span>
       <span class="absValue">
    -    (68/82)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.4%
    +    97%
       </span>
       <span class="absValue">
    -    (261/313)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -82,148 +94,17 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat sortedAsc
     ">
       <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -234,29 +115,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (9/10)
       </span>
     </td>
     <td class="coverageStat">
    @@ -269,10 +131,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    97%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -299,7 +161,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
    index bff77a0f99..5707a02b18 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    +com.codahale.metrics.caffeine</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    90%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (9/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    100%
       </span>
       <span class="absValue">
    -    (68/82)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.4%
    +    97%
       </span>
       <span class="absValue">
    -    (261/313)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -82,94 +94,17 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     ">
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
    +<th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
     <th class="coverageStat sortedDesc
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -180,50 +115,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (17/17)
    +    (9/10)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -234,45 +131,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    +    97%
       </span>
       <span class="absValue">
    -    (0/8)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -299,7 +161,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD.html
    index a14173fcaa..9b6de531fe 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    +com.codahale.metrics.caffeine</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    90%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (9/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    100%
       </span>
       <span class="absValue">
    -    (68/82)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.4%
    +    97%
       </span>
       <span class="absValue">
    -    (261/313)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -83,120 +95,16 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
       <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,29 +115,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (9/10)
       </span>
     </td>
     <td class="coverageStat">
    @@ -242,37 +131,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    +    97%
       </span>
       <span class="absValue">
    -    (13/14)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -299,7 +161,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
    index ca645953c2..b97e3bc613 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    +com.codahale.metrics.caffeine</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    90%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (9/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    100%
       </span>
       <span class="absValue">
    -    (68/82)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.4%
    +    97%
       </span>
       <span class="absValue">
    -    (261/313)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -83,66 +95,16 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,77 +115,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    +    90%
       </span>
       <span class="absValue">
    -    (14/15)
    +    (9/10)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -234,45 +131,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    +    97%
       </span>
       <span class="absValue">
    -    (0/8)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -299,7 +161,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
    index da775dc7ef..431c361d7a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    +  <title>Coverage Report > com.codahale.metrics.caffeine</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    +com.codahale.metrics.caffeine</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -33,34 +33,46 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    +    <td class="name">com.codahale.metrics.caffeine</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    90%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (9/10)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    82.9%
    +    100%
       </span>
       <span class="absValue">
    -    (68/82)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.4%
    +    97%
       </span>
       <span class="absValue">
    -    (261/313)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -83,93 +95,16 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
       <a href="index_SORT_BY_METHOD.html">Method, %</a>
     </th>
     <th class="coverageStat 
    +">
    +  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    +</th>
    +<th class="coverageStat 
     ">
       <a href="index_SORT_BY_LINE.html">Line, %</a>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -180,77 +115,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    +    90%
       </span>
       <span class="absValue">
    -    (28/30)
    +    (9/10)
       </span>
     </td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -261,18 +131,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    +    97%
       </span>
       <span class="absValue">
    -    (110/136)
    +    (32/33)
       </span>
     </td>
       </tr>
    @@ -299,7 +161,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-1.html
    index 3712882772..5c4198ffba 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CollectdReporter</title>
    +  <title>Coverage Report > MetricsStatsCounter</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,84 +19,67 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    +    <a href="../index.html">com.codahale.metrics.caffeine</a>
     </div>
     
    -<h1>Coverage Summary for Class: CollectdReporter (com.codahale.metrics.collectd)</h1>
    +<h1>Coverage Summary for Class: MetricsStatsCounter (com.codahale.metrics.caffeine)</h1>
     
     <table class="coverageStats">
    -
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
     ">
       Method, %
     </th>
     <th class="coverageStat 
    +">
    +  Branch, %
    +</th>
    +<th class="coverageStat 
     ">
       Line, %
     </th>
     </tr>
     <tr>
    -  <td class="name">CollectdReporter</td>
    +  <td class="name">MetricsStatsCounter</td>
     <td class="coverageStat">
       <span class="percent">
    -    88.9%
    +    100%
       </span>
       <span class="absValue">
    -    (16/18)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    84.9%
    +    90%
       </span>
       <span class="absValue">
    -    (79/93)
    +    (9/10)
       </span>
     </td>
    -</tr>
    -  <tr>
    -    <td class="name">CollectdReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CollectdReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (9/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.1%
    -  </span>
    -  <span class="absValue">
    -    (31/43)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    75.8%
    +    100%
       </span>
       <span class="absValue">
    -    (25/33)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    80.9%
    +    97%
       </span>
       <span class="absValue">
    -    (110/136)
    +    (32/33)
       </span>
     </td>
     </tr>
    +
     </table>
     
     <br/>
    @@ -104,342 +87,139 @@ <h1>Coverage Summary for Class: CollectdReporter (com.codahale.metrics.collectd)
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +<code class="sourceCode" id="sourceCode">&nbsp;/*
    +&nbsp; * Copyright 2016 Ben Manes. All Rights Reserved.
    +&nbsp; *
    +&nbsp; * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    +&nbsp; * you may not use this file except in compliance with the License.
    +&nbsp; * You may obtain a copy of the License at
    +&nbsp; *
    +&nbsp; *     http://www.apache.org/licenses/LICENSE-2.0
    +&nbsp; *
    +&nbsp; * Unless required by applicable law or agreed to in writing, software
    +&nbsp; * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    +&nbsp; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    +&nbsp; * See the License for the specific language governing permissions and
    +&nbsp; * limitations under the License.
    +&nbsp; */
    +&nbsp;package com.codahale.metrics.caffeine;
    +&nbsp;
    +&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;
    +&nbsp;import java.util.EnumMap;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.LongAdder;
     &nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
     &nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
     &nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricAttribute;
    -&nbsp;import com.codahale.metrics.MetricFilter;
     &nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.ScheduledReporter;
    -&nbsp;import com.codahale.metrics.Snapshot;
     &nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.InetAddress;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    +&nbsp;import com.github.benmanes.caffeine.cache.RemovalCause;
    +&nbsp;import com.github.benmanes.caffeine.cache.stats.CacheStats;
    +&nbsp;import com.github.benmanes.caffeine.cache.stats.StatsCounter;
    +&nbsp;import org.checkerframework.checker.index.qual.NonNegative;
     &nbsp;
     &nbsp;/**
    -&nbsp; * A reporter which publishes metric values to a Collectd server.
    +&nbsp; * A {@link StatsCounter} instrumented with Dropwizard Metrics.
     &nbsp; *
    -&nbsp; * @see &lt;a href=&quot;https://collectd.org&quot;&gt;collectd – The system statistics
    -&nbsp; * collection daemon&lt;/a&gt;
    +&nbsp; * @author ben.manes@gmail.com (Ben Manes)
    +&nbsp; * @author John Karp
     &nbsp; */
    -<b class="fc">&nbsp;public class CollectdReporter extends ScheduledReporter {</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a builder for the specified registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The default settings are:
    -&nbsp;     * &lt;ul&gt;
    -&nbsp;     * &lt;li&gt;hostName: InetAddress.getLocalHost().getHostName()&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;executor: default executor created by {@code ScheduledReporter}&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;shutdownExecutorOnStop: true&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;clock: Clock.defaultClock()&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;rateUnit: TimeUnit.SECONDS&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;durationUnit: TimeUnit.MILLISECONDS&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;filter: MetricFilter.ALL&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;securityLevel: NONE&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;username: &quot;&quot;&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;password: &quot;&quot;&lt;/li&gt;
    -&nbsp;     * &lt;/ul&gt;
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private String hostName;
    -&nbsp;        private ScheduledExecutorService executor;
    -<b class="fc">&nbsp;        private boolean shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;        private Clock clock = Clock.defaultClock();</b>
    -<b class="fc">&nbsp;        private TimeUnit rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;        private TimeUnit durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;        private MetricFilter filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;        private SecurityLevel securityLevel = SecurityLevel.NONE;</b>
    -<b class="fc">&nbsp;        private String username = &quot;&quot;;</b>
    -<b class="fc">&nbsp;        private String password = &quot;&quot;;</b>
    -<b class="fc">&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes = Collections.emptySet();</b>
    -<b class="fc">&nbsp;        private int maxLength = Sanitize.DEFAULT_MAX_LENGTH;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withHostName(String hostName) {
    -<b class="fc">&nbsp;            this.hostName = hostName;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withClock(Clock clock) {
    -<b class="nc">&nbsp;            this.clock = clock;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="nc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="nc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="nc">&nbsp;            this.filter = filter;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withUsername(String username) {
    -<b class="fc">&nbsp;            this.username = username;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withPassword(String password) {
    -<b class="fc">&nbsp;            this.password = password;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withSecurityLevel(SecurityLevel securityLevel) {
    -<b class="fc">&nbsp;            this.securityLevel = securityLevel;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; attributes) {
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = attributes;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withMaxLength(int maxLength) {
    -<b class="fc">&nbsp;            this.maxLength = maxLength;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public CollectdReporter build(Sender sender) {
    -<b class="fc">&nbsp;            if (securityLevel != SecurityLevel.NONE) {</b>
    -<b class="fc">&nbsp;                if (username.isEmpty()) {</b>
    -<b class="fc">&nbsp;                    throw new IllegalArgumentException(&quot;username is required for securityLevel: &quot; + securityLevel);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                if (password.isEmpty()) {</b>
    -<b class="fc">&nbsp;                    throw new IllegalArgumentException(&quot;password is required for securityLevel: &quot; + securityLevel);</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new CollectdReporter(registry,</b>
    -&nbsp;                    hostName, sender,
    -&nbsp;                    executor, shutdownExecutorOnStop,
    -&nbsp;                    clock, rateUnit, durationUnit,
    -&nbsp;                    filter, disabledMetricAttributes,
    -&nbsp;                    username, password, securityLevel, new Sanitize(maxLength));
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOG = LoggerFactory.getLogger(CollectdReporter.class);</b>
    -&nbsp;    private static final String REPORTER_NAME = &quot;collectd-reporter&quot;;
    -&nbsp;    private static final String FALLBACK_HOST_NAME = &quot;localhost&quot;;
    -&nbsp;    private static final String COLLECTD_TYPE_GAUGE = &quot;gauge&quot;;
    -&nbsp;
    -&nbsp;    private String hostName;
    -&nbsp;    private final Sender sender;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private long period;
    -&nbsp;    private final PacketWriter writer;
    -&nbsp;    private final Sanitize sanitize;
    -&nbsp;
    -&nbsp;    private CollectdReporter(MetricRegistry registry,
    -&nbsp;                             String hostname, Sender sender,
    -&nbsp;                             ScheduledExecutorService executor, boolean shutdownExecutorOnStop,
    -&nbsp;                             Clock clock, TimeUnit rateUnit, TimeUnit durationUnit,
    -&nbsp;                             MetricFilter filter, Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    -&nbsp;                             String username, String password,
    -&nbsp;                             SecurityLevel securityLevel, Sanitize sanitize) {
    -<b class="fc">&nbsp;        super(registry, REPORTER_NAME, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes);
    -<b class="fc">&nbsp;        this.hostName = (hostname != null) ? hostname : resolveHostName();</b>
    -<b class="fc">&nbsp;        this.sender = sender;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.sanitize = sanitize;</b>
    -<b class="fc">&nbsp;        writer = new PacketWriter(sender, username, password, securityLevel);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String resolveHostName() {
    -&nbsp;        try {
    -<b class="nc">&nbsp;            return InetAddress.getLocalHost().getHostName();</b>
    -<b class="nc">&nbsp;        } catch (Exception e) {</b>
    -<b class="nc">&nbsp;            LOG.error(&quot;Failed to lookup local host name: {}&quot;, e.getMessage(), e);</b>
    -<b class="nc">&nbsp;            return FALLBACK_HOST_NAME;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start(long period, TimeUnit unit) {
    -<b class="nc">&nbsp;        this.period = period;</b>
    -<b class="nc">&nbsp;        super.start(period, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges, SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;            SortedMap&lt;String, Histogram&gt; histograms, SortedMap&lt;String, Meter&gt; meters, SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        MetaData.Builder metaData = new MetaData.Builder(sanitize, hostName, clock.getTime() / 1000, period)</b>
    -<b class="fc">&nbsp;                .type(COLLECTD_TYPE_GAUGE);</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            connect(sender);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeGauge(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeCounter(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeHistogram(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeMeter(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeTimer(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Unable to report to Collectd&quot;, e);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            disconnect(sender);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void connect(Sender sender) throws IOException {
    -<b class="fc">&nbsp;        if (!sender.isConnected()) {</b>
    -<b class="fc">&nbsp;            sender.connect();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void disconnect(Sender sender) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            sender.disconnect();</b>
    -<b class="nc">&nbsp;        } catch (Exception e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Error disconnecting from Collectd&quot;, e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeValue(MetaData.Builder metaData, MetricAttribute attribute, Number value) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(attribute)) {</b>
    -<b class="fc">&nbsp;            write(metaData.typeInstance(attribute.getCode()).get(), value);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeRate(MetaData.Builder metaData, MetricAttribute attribute, double rate) {
    -<b class="fc">&nbsp;        writeValue(metaData, attribute, convertRate(rate));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeDuration(MetaData.Builder metaData, MetricAttribute attribute, double duration) {
    -<b class="fc">&nbsp;        writeValue(metaData, attribute, convertDuration(duration));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void write(MetaData metaData, Number value) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            writer.write(metaData, value);</b>
    -<b class="nc">&nbsp;        } catch (RuntimeException e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Failed to process metric &#39;&quot; + metaData.getPlugin() + &quot;&#39;: &quot; + e.getMessage());</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            LOG.error(&quot;Failed to send metric to collectd&quot;, e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    private void serializeGauge(MetaData.Builder metaData, Gauge metric) {
    -<b class="fc">&nbsp;        if (metric.getValue() instanceof Number) {</b>
    -<b class="fc">&nbsp;            write(metaData.typeInstance(&quot;value&quot;).get(), (Number) metric.getValue());</b>
    -<b class="fc">&nbsp;        } else if (metric.getValue() instanceof Boolean) {</b>
    -<b class="fc">&nbsp;            write(metaData.typeInstance(&quot;value&quot;).get(), ((Boolean) metric.getValue()) ? 1 : 0);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            LOG.warn(&quot;Failed to process metric &#39;{}&#39;. Unsupported gauge of type: {} &quot;, metaData.get().getPlugin(),</b>
    -<b class="fc">&nbsp;                    metric.getValue().getClass().getName());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeMeter(MetaData.Builder metaData, Meter metric) {
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M1_RATE, metric.getOneMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, MEAN_RATE, metric.getMeanRate());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeCounter(MetaData.Builder metaData, Counter metric) {
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeHistogram(MetaData.Builder metaData, Histogram metric) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = metric.getSnapshot();</b>
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, MAX, (double) snapshot.getMax());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, MEAN, snapshot.getMean());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, MIN, (double) snapshot.getMin());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, STDDEV, snapshot.getStdDev());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P50, snapshot.getMedian());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P75, snapshot.get75thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P95, snapshot.get95thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P98, snapshot.get98thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P99, snapshot.get99thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P999, snapshot.get999thPercentile());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeTimer(MetaData.Builder metaData, Timer metric) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = metric.getSnapshot();</b>
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, MAX, (double) snapshot.getMax());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, MEAN, snapshot.getMean());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, MIN, (double) snapshot.getMin());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, STDDEV, snapshot.getStdDev());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P50, snapshot.getMedian());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P75, snapshot.get75thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P95, snapshot.get95thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P98, snapshot.get98thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P99, snapshot.get99thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P999, snapshot.get999thPercentile());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M1_RATE, metric.getOneMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, MEAN_RATE, metric.getMeanRate());</b>
    -&nbsp;    }
    +&nbsp;public final class MetricsStatsCounter implements StatsCounter {
    +&nbsp;  private final Counter hitCount;
    +&nbsp;  private final Counter missCount;
    +&nbsp;  private final Timer loadSuccess;
    +&nbsp;  private final Timer loadFailure;
    +&nbsp;  private final Histogram evictions;
    +&nbsp;  private final Counter evictionWeight;
    +&nbsp;  private final EnumMap&lt;RemovalCause, Histogram&gt; evictionsWithCause;
    +&nbsp;
    +&nbsp;  // for implementing snapshot()
    +<b class="fc">&nbsp;  private final LongAdder totalLoadTime = new LongAdder();</b>
    +&nbsp;
    +&nbsp;  /**
    +&nbsp;   * Constructs an instance for use by a single cache.
    +&nbsp;   *
    +&nbsp;   * @param registry the registry of metric instances
    +&nbsp;   * @param metricsPrefix the prefix name for the metrics
    +&nbsp;   */
    +<b class="fc">&nbsp;  public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {</b>
    +<b class="fc">&nbsp;    requireNonNull(metricsPrefix);</b>
    +<b class="fc">&nbsp;    hitCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;hits&quot;));</b>
    +<b class="fc">&nbsp;    missCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;misses&quot;));</b>
    +<b class="fc">&nbsp;    loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-success&quot;));</b>
    +<b class="fc">&nbsp;    loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-failure&quot;));</b>
    +<b class="fc">&nbsp;    evictions = registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;));</b>
    +<b class="fc">&nbsp;    evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, &quot;evictions-weight&quot;));</b>
    +&nbsp;
    +<b class="fc">&nbsp;    evictionsWithCause = new EnumMap&lt;&gt;(RemovalCause.class);</b>
    +<b class="fc">&nbsp;    for (RemovalCause cause : RemovalCause.values()) {</b>
    +<b class="fc">&nbsp;      evictionsWithCause.put(</b>
    +&nbsp;          cause,
    +<b class="fc">&nbsp;          registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;, cause.name())));</b>
    +&nbsp;    }
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordHits(int count) {
    +<b class="fc">&nbsp;    hitCount.inc(count);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordMisses(int count) {
    +<b class="fc">&nbsp;    missCount.inc(count);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordLoadSuccess(long loadTime) {
    +<b class="fc">&nbsp;    loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);</b>
    +<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordLoadFailure(long loadTime) {
    +<b class="fc">&nbsp;    loadFailure.update(loadTime, TimeUnit.NANOSECONDS);</b>
    +<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  // @Override -- Caffeine 2.x
    +&nbsp;  @Deprecated
    +&nbsp;  @SuppressWarnings(&quot;deprecation&quot;)
    +&nbsp;  public void recordEviction() {
    +&nbsp;    // This method is scheduled for removal in version 3.0 in favor of recordEviction(weight)
    +<b class="fc">&nbsp;    recordEviction(1);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  // @Override -- Caffeine 2.x
    +&nbsp;  @Deprecated
    +&nbsp;  @SuppressWarnings(&quot;deprecation&quot;)
    +&nbsp;  public void recordEviction(int weight) {
    +<b class="fc">&nbsp;    evictions.update(weight);</b>
    +<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public void recordEviction(@NonNegative int weight, RemovalCause cause) {
    +<b class="fc">&nbsp;    evictionsWithCause.get(cause).update(weight);</b>
    +<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public CacheStats snapshot() {
    +<b class="fc">&nbsp;    return CacheStats.of(</b>
    +<b class="fc">&nbsp;        hitCount.getCount(),</b>
    +<b class="fc">&nbsp;        missCount.getCount(),</b>
    +<b class="fc">&nbsp;        loadSuccess.getCount(),</b>
    +<b class="fc">&nbsp;        loadFailure.getCount(),</b>
    +<b class="fc">&nbsp;        totalLoadTime.sum(),</b>
    +<b class="fc">&nbsp;        evictions.getCount(),</b>
    +<b class="fc">&nbsp;        evictionWeight.getCount());</b>
    +&nbsp;  }
    +&nbsp;
    +&nbsp;  @Override
    +&nbsp;  public String toString() {
    +<b class="nc">&nbsp;    return snapshot().toString();</b>
    +&nbsp;  }
     &nbsp;}
     </code>
     </pre>
    @@ -464,7 +244,7 @@ <h1>Coverage Summary for Class: CollectdReporter (com.codahale.metrics.collectd)
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index.html
    index 834dd38ac3..39df09f70d 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    +com.codahale.metrics.collectd</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    +    <td class="name">com.codahale.metrics.collectd</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.2%
    +    89%
       </span>
       <span class="absValue">
    -    (23/27)
    +    (73/82)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.8%
    +    85.9%
       </span>
       <span class="absValue">
    -    (50/66)
    +    (269/313)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,142 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +234,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    57.1%
    +    100%
       </span>
       <span class="absValue">
    -    (4/7)
    +    (4/4)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +261,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (21/24)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    78%
    +    92.9%
       </span>
       <span class="absValue">
    -    (46/59)
    +    (13/14)
       </span>
     </td>
       </tr>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK.html
    index edf3c8454d..973f7d2d6e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    +com.codahale.metrics.collectd</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    +    <td class="name">com.codahale.metrics.collectd</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.2%
    +    89%
       </span>
       <span class="absValue">
    -    (23/27)
    +    (73/82)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.8%
    +    85.9%
       </span>
       <span class="absValue">
    -    (50/66)
    +    (269/313)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,142 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +234,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    57.1%
    +    100%
       </span>
       <span class="absValue">
    -    (4/7)
    +    (4/4)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +261,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (21/24)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    78%
    +    92.9%
       </span>
       <span class="absValue">
    -    (46/59)
    +    (13/14)
       </span>
     </td>
       </tr>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
    index 473426f3a5..a7d9c4a456 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    +com.codahale.metrics.collectd</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    +    <td class="name">com.codahale.metrics.collectd</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.2%
    +    89%
       </span>
       <span class="absValue">
    -    (23/27)
    +    (73/82)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.8%
    +    85.9%
       </span>
       <span class="absValue">
    -    (50/66)
    +    (269/313)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +99,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (21/24)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    78%
    +    92.9%
       </span>
       <span class="absValue">
    -    (46/59)
    +    (13/14)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +126,153 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (25/33)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    57.1%
    +    80.9%
       </span>
       <span class="absValue">
    -    (4/7)
    +    (110/136)
       </span>
     </td>
       </tr>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS.html
    index 5d08a19847..42ed15e7e2 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    +com.codahale.metrics.collectd</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    +    <td class="name">com.codahale.metrics.collectd</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.2%
    +    89%
       </span>
       <span class="absValue">
    -    (23/27)
    +    (73/82)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.8%
    +    85.9%
       </span>
       <span class="absValue">
    -    (50/66)
    +    (269/313)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,142 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +234,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    57.1%
    +    100%
       </span>
       <span class="absValue">
    -    (4/7)
    +    (4/4)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +261,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (21/24)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    78%
    +    92.9%
       </span>
       <span class="absValue">
    -    (46/59)
    +    (13/14)
       </span>
     </td>
       </tr>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
    index b1b863e022..b61ab531dc 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    +com.codahale.metrics.collectd</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    +    <td class="name">com.codahale.metrics.collectd</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.2%
    +    89%
       </span>
       <span class="absValue">
    -    (23/27)
    +    (73/82)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.8%
    +    85.9%
       </span>
       <span class="absValue">
    -    (50/66)
    +    (269/313)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +99,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (21/24)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    78%
    +    92.9%
       </span>
       <span class="absValue">
    -    (46/59)
    +    (13/14)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +126,153 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (25/33)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    57.1%
    +    80.9%
       </span>
       <span class="absValue">
    -    (4/7)
    +    (110/136)
       </span>
     </td>
       </tr>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE.html
    index e13d79469c..250d8dd702 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    +com.codahale.metrics.collectd</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    +    <td class="name">com.codahale.metrics.collectd</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.2%
    +    89%
       </span>
       <span class="absValue">
    -    (23/27)
    +    (73/82)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.8%
    +    85.9%
       </span>
       <span class="absValue">
    -    (50/66)
    +    (269/313)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,61 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +153,104 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    57.1%
    +    92.9%
       </span>
       <span class="absValue">
    -    (4/7)
    +    (13/14)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +261,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (21/24)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    78%
    +    100%
       </span>
       <span class="absValue">
    -    (46/59)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
    index 550e939c13..7b7a9ea1c7 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    +com.codahale.metrics.collectd</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    +    <td class="name">com.codahale.metrics.collectd</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.2%
    +    89%
       </span>
       <span class="absValue">
    -    (23/27)
    +    (73/82)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.8%
    +    85.9%
       </span>
       <span class="absValue">
    -    (50/66)
    +    (269/313)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +99,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (21/24)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    78%
    +    100%
       </span>
       <span class="absValue">
    -    (46/59)
    +    (4/4)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +126,153 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (25/33)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    57.1%
    +    80.9%
       </span>
       <span class="absValue">
    -    (4/7)
    +    (110/136)
       </span>
     </td>
       </tr>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD.html
    index 2d8393f6b9..6525a1aedc 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    +com.codahale.metrics.collectd</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    +    <td class="name">com.codahale.metrics.collectd</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.2%
    +    89%
       </span>
       <span class="absValue">
    -    (23/27)
    +    (73/82)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.8%
    +    85.9%
       </span>
       <span class="absValue">
    -    (50/66)
    +    (269/313)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,142 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +234,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    57.1%
    +    100%
       </span>
       <span class="absValue">
    -    (4/7)
    +    (4/4)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +261,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (21/24)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    78%
    +    92.9%
       </span>
       <span class="absValue">
    -    (46/59)
    +    (13/14)
       </span>
     </td>
       </tr>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
    index b14cf8c16c..f25984c132 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    +com.codahale.metrics.collectd</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    +    <td class="name">com.codahale.metrics.collectd</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.2%
    +    89%
       </span>
       <span class="absValue">
    -    (23/27)
    +    (73/82)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.8%
    +    85.9%
       </span>
       <span class="absValue">
    -    (50/66)
    +    (269/313)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +99,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (21/24)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    78%
    +    92.9%
       </span>
       <span class="absValue">
    -    (46/59)
    +    (13/14)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +126,153 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (25/33)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    57.1%
    +    80.9%
       </span>
       <span class="absValue">
    -    (4/7)
    +    (110/136)
       </span>
     </td>
       </tr>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
    index a2f53c208e..93eaccf2e5 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    +  <title>Coverage Report > com.codahale.metrics.collectd</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    +com.codahale.metrics.collectd</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    +    <td class="name">com.codahale.metrics.collectd</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (11/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.2%
    +    89%
       </span>
       <span class="absValue">
    -    (23/27)
    +    (73/82)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75.8%
    +    85.9%
       </span>
       <span class="absValue">
    -    (50/66)
    +    (269/313)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    +    <td class="name"><a href="sources/source-7.html">Sender</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +99,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
       </span>
       <span class="absValue">
    -    (21/24)
    +    (5/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    78%
    +    92.9%
       </span>
       <span class="absValue">
    -    (46/59)
    +    (13/14)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    +    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +126,153 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (28/30)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (25/33)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    57.1%
    +    80.9%
       </span>
       <span class="absValue">
    -    (4/7)
    +    (110/136)
       </span>
     </td>
       </tr>
    @@ -164,7 +299,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-1.html
    index fe4aeccfb0..d32fbecb27 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedCacheDecoratorFactory</title>
    +  <title>Coverage Report > CollectdReporter</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,19 +19,16 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.ehcache</a>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedCacheDecoratorFactory (com.codahale.metrics.ehcache)</h1>
    +<h1>Coverage Summary for Class: CollectdReporter (com.codahale.metrics.collectd)</h1>
     
     <table class="coverageStats">
    +
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
     ">
       Method, %
     </th>
    @@ -41,33 +38,65 @@ <h1>Coverage Summary for Class: InstrumentedCacheDecoratorFactory (com.codahale.
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedCacheDecoratorFactory</td>
    +  <td class="name">CollectdReporter</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.9%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (16/18)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    84.9%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (79/93)
       </span>
     </td>
    +</tr>
    +  <tr>
    +    <td class="name">CollectdReporter$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">CollectdReporter$Builder</td>
     <td class="coverageStat">
       <span class="percent">
    -    57.1%
    +    60%
       </span>
       <span class="absValue">
    -    (4/7)
    +    (9/15)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.1%
    +  </span>
    +  <span class="absValue">
    +    (31/43)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    75.8%
    +  </span>
    +  <span class="absValue">
    +    (25/33)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    80.9%
    +  </span>
    +  <span class="absValue">
    +    (110/136)
       </span>
     </td>
     </tr>
    -
     </table>
     
     <br/>
    @@ -75,28 +104,341 @@ <h1>Coverage Summary for Class: InstrumentedCacheDecoratorFactory (com.codahale.
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.ehcache;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
     &nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Histogram;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricAttribute;
    +&nbsp;import com.codahale.metrics.MetricFilter;
     &nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import net.sf.ehcache.Ehcache;
    -&nbsp;import net.sf.ehcache.constructs.CacheDecoratorFactory;
    +&nbsp;import com.codahale.metrics.ScheduledReporter;
    +&nbsp;import com.codahale.metrics.Snapshot;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.net.InetAddress;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A reporter which publishes metric values to a Collectd server.
    +&nbsp; *
    +&nbsp; * @see &lt;a href=&quot;https://collectd.org&quot;&gt;collectd – The system statistics
    +&nbsp; * collection daemon&lt;/a&gt;
    +&nbsp; */
    +<b class="fc">&nbsp;public class CollectdReporter extends ScheduledReporter {</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a builder for the specified registry.
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * The default settings are:
    +&nbsp;     * &lt;ul&gt;
    +&nbsp;     * &lt;li&gt;hostName: InetAddress.getLocalHost().getHostName()&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;executor: default executor created by {@code ScheduledReporter}&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;shutdownExecutorOnStop: true&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;clock: Clock.defaultClock()&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;rateUnit: TimeUnit.SECONDS&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;durationUnit: TimeUnit.MILLISECONDS&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;filter: MetricFilter.ALL&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;securityLevel: NONE&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;username: &quot;&quot;&lt;/li&gt;
    +&nbsp;     * &lt;li&gt;password: &quot;&quot;&lt;/li&gt;
    +&nbsp;     * &lt;/ul&gt;
    +&nbsp;     */
    +&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    +<b class="fc">&nbsp;        return new Builder(registry);</b>
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    public static class Builder {</b>
    +&nbsp;
    +&nbsp;        private final MetricRegistry registry;
    +&nbsp;        private String hostName;
    +&nbsp;        private ScheduledExecutorService executor;
    +<b class="fc">&nbsp;        private boolean shutdownExecutorOnStop = true;</b>
    +<b class="fc">&nbsp;        private Clock clock = Clock.defaultClock();</b>
    +<b class="fc">&nbsp;        private TimeUnit rateUnit = TimeUnit.SECONDS;</b>
    +<b class="fc">&nbsp;        private TimeUnit durationUnit = TimeUnit.MILLISECONDS;</b>
    +<b class="fc">&nbsp;        private MetricFilter filter = MetricFilter.ALL;</b>
    +<b class="fc">&nbsp;        private SecurityLevel securityLevel = SecurityLevel.NONE;</b>
    +<b class="fc">&nbsp;        private String username = &quot;&quot;;</b>
    +<b class="fc">&nbsp;        private String password = &quot;&quot;;</b>
    +<b class="fc">&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes = Collections.emptySet();</b>
    +<b class="fc">&nbsp;        private int maxLength = Sanitize.DEFAULT_MAX_LENGTH;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;            this.registry = registry;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withHostName(String hostName) {
    +<b class="fc">&nbsp;            this.hostName = hostName;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    +<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    +<b class="nc">&nbsp;            this.executor = executor;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withClock(Clock clock) {
    +<b class="nc">&nbsp;            this.clock = clock;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
     &nbsp;
    -&nbsp;import java.util.Properties;
    +&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    +<b class="nc">&nbsp;            this.rateUnit = rateUnit;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    +<b class="nc">&nbsp;            this.durationUnit = durationUnit;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder filter(MetricFilter filter) {
    +<b class="nc">&nbsp;            this.filter = filter;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withUsername(String username) {
    +<b class="fc">&nbsp;            this.username = username;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withPassword(String password) {
    +<b class="fc">&nbsp;            this.password = password;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withSecurityLevel(SecurityLevel securityLevel) {
    +<b class="fc">&nbsp;            this.securityLevel = securityLevel;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; attributes) {
    +<b class="fc">&nbsp;            this.disabledMetricAttributes = attributes;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder withMaxLength(int maxLength) {
    +<b class="fc">&nbsp;            this.maxLength = maxLength;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public CollectdReporter build(Sender sender) {
    +<b class="fc">&nbsp;            if (securityLevel != SecurityLevel.NONE) {</b>
    +<b class="fc">&nbsp;                if (username.isEmpty()) {</b>
    +<b class="fc">&nbsp;                    throw new IllegalArgumentException(&quot;username is required for securityLevel: &quot; + securityLevel);</b>
    +&nbsp;                }
    +<b class="fc">&nbsp;                if (password.isEmpty()) {</b>
    +<b class="fc">&nbsp;                    throw new IllegalArgumentException(&quot;password is required for securityLevel: &quot; + securityLevel);</b>
    +&nbsp;                }
    +&nbsp;            }
    +<b class="fc">&nbsp;            return new CollectdReporter(registry,</b>
    +&nbsp;                    hostName, sender,
    +&nbsp;                    executor, shutdownExecutorOnStop,
    +&nbsp;                    clock, rateUnit, durationUnit,
    +&nbsp;                    filter, disabledMetricAttributes,
    +&nbsp;                    username, password, securityLevel, new Sanitize(maxLength));
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOG = LoggerFactory.getLogger(CollectdReporter.class);</b>
    +&nbsp;    private static final String REPORTER_NAME = &quot;collectd-reporter&quot;;
    +&nbsp;    private static final String FALLBACK_HOST_NAME = &quot;localhost&quot;;
    +&nbsp;    private static final String COLLECTD_TYPE_GAUGE = &quot;gauge&quot;;
    +&nbsp;
    +&nbsp;    private String hostName;
    +&nbsp;    private final Sender sender;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private long period;
    +&nbsp;    private final PacketWriter writer;
    +&nbsp;    private final Sanitize sanitize;
    +&nbsp;
    +&nbsp;    private CollectdReporter(MetricRegistry registry,
    +&nbsp;                             String hostname, Sender sender,
    +&nbsp;                             ScheduledExecutorService executor, boolean shutdownExecutorOnStop,
    +&nbsp;                             Clock clock, TimeUnit rateUnit, TimeUnit durationUnit,
    +&nbsp;                             MetricFilter filter, Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    +&nbsp;                             String username, String password,
    +&nbsp;                             SecurityLevel securityLevel, Sanitize sanitize) {
    +<b class="fc">&nbsp;        super(registry, REPORTER_NAME, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    +&nbsp;                disabledMetricAttributes);
    +<b class="fc">&nbsp;        this.hostName = (hostname != null) ? hostname : resolveHostName();</b>
    +<b class="fc">&nbsp;        this.sender = sender;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.sanitize = sanitize;</b>
    +<b class="fc">&nbsp;        writer = new PacketWriter(sender, username, password, securityLevel);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String resolveHostName() {
    +&nbsp;        try {
    +<b class="nc">&nbsp;            return InetAddress.getLocalHost().getHostName();</b>
    +<b class="nc">&nbsp;        } catch (Exception e) {</b>
    +<b class="nc">&nbsp;            LOG.error(&quot;Failed to lookup local host name: {}&quot;, e.getMessage(), e);</b>
    +<b class="nc">&nbsp;            return FALLBACK_HOST_NAME;</b>
    +&nbsp;        }
    +&nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;public class InstrumentedCacheDecoratorFactory extends CacheDecoratorFactory {</b>
     &nbsp;    @Override
    -&nbsp;    public Ehcache createDecoratedEhcache(Ehcache cache, Properties properties) {
    -<b class="fc">&nbsp;        final String name = properties.getProperty(&quot;metric-registry-name&quot;);</b>
    -<b class="fc">&nbsp;        final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);</b>
    -<b class="fc">&nbsp;        return InstrumentedEhcache.instrument(registry, cache);</b>
    +&nbsp;    public void start(long period, TimeUnit unit) {
    +<b class="nc">&nbsp;        this.period = period;</b>
    +<b class="nc">&nbsp;        super.start(period, unit);</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public Ehcache createDefaultDecoratedEhcache(Ehcache cache, Properties properties) {
    -<b class="nc">&nbsp;        final String name = properties.getProperty(&quot;metric-registry-name&quot;);</b>
    -<b class="nc">&nbsp;        final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);</b>
    -<b class="nc">&nbsp;        return InstrumentedEhcache.instrument(registry, cache);</b>
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges, SortedMap&lt;String, Counter&gt; counters,
    +&nbsp;            SortedMap&lt;String, Histogram&gt; histograms, SortedMap&lt;String, Meter&gt; meters, SortedMap&lt;String, Timer&gt; timers) {
    +<b class="fc">&nbsp;        MetaData.Builder metaData = new MetaData.Builder(sanitize, hostName, clock.getTime() / 1000, period)</b>
    +<b class="fc">&nbsp;                .type(COLLECTD_TYPE_GAUGE);</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            connect(sender);</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    +<b class="fc">&nbsp;                serializeGauge(metaData.plugin(entry.getKey()), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    +<b class="fc">&nbsp;                serializeCounter(metaData.plugin(entry.getKey()), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    +<b class="fc">&nbsp;                serializeHistogram(metaData.plugin(entry.getKey()), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    +<b class="fc">&nbsp;                serializeMeter(metaData.plugin(entry.getKey()), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    +<b class="fc">&nbsp;                serializeTimer(metaData.plugin(entry.getKey()), entry.getValue());</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        } catch (IOException e) {</b>
    +<b class="nc">&nbsp;            LOG.warn(&quot;Unable to report to Collectd&quot;, e);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            disconnect(sender);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void connect(Sender sender) throws IOException {
    +<b class="fc">&nbsp;        if (!sender.isConnected()) {</b>
    +<b class="fc">&nbsp;            sender.connect();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void disconnect(Sender sender) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            sender.disconnect();</b>
    +<b class="nc">&nbsp;        } catch (Exception e) {</b>
    +<b class="nc">&nbsp;            LOG.warn(&quot;Error disconnecting from Collectd&quot;, e);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void writeValue(MetaData.Builder metaData, MetricAttribute attribute, Number value) {
    +<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(attribute)) {</b>
    +<b class="fc">&nbsp;            write(metaData.typeInstance(attribute.getCode()).get(), value);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void writeRate(MetaData.Builder metaData, MetricAttribute attribute, double rate) {
    +<b class="fc">&nbsp;        writeValue(metaData, attribute, convertRate(rate));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void writeDuration(MetaData.Builder metaData, MetricAttribute attribute, double duration) {
    +<b class="fc">&nbsp;        writeValue(metaData, attribute, convertDuration(duration));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void write(MetaData metaData, Number value) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            writer.write(metaData, value);</b>
    +<b class="nc">&nbsp;        } catch (RuntimeException e) {</b>
    +<b class="nc">&nbsp;            LOG.warn(&quot;Failed to process metric &#39;&quot; + metaData.getPlugin() + &quot;&#39;: &quot; + e.getMessage());</b>
    +<b class="nc">&nbsp;        } catch (IOException e) {</b>
    +<b class="nc">&nbsp;            LOG.error(&quot;Failed to send metric to collectd&quot;, e);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    private void serializeGauge(MetaData.Builder metaData, Gauge metric) {
    +<b class="fc">&nbsp;        if (metric.getValue() instanceof Number) {</b>
    +<b class="fc">&nbsp;            write(metaData.typeInstance(&quot;value&quot;).get(), (Number) metric.getValue());</b>
    +<b class="fc">&nbsp;        } else if (metric.getValue() instanceof Boolean) {</b>
    +<b class="fc">&nbsp;            write(metaData.typeInstance(&quot;value&quot;).get(), ((Boolean) metric.getValue()) ? 1 : 0);</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            LOG.warn(&quot;Failed to process metric &#39;{}&#39;. Unsupported gauge of type: {} &quot;, metaData.get().getPlugin(),</b>
    +<b class="fc">&nbsp;                    metric.getValue().getClass().getName());</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void serializeMeter(MetaData.Builder metaData, Meter metric) {
    +<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, M1_RATE, metric.getOneMinuteRate());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, MEAN_RATE, metric.getMeanRate());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void serializeCounter(MetaData.Builder metaData, Counter metric) {
    +<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void serializeHistogram(MetaData.Builder metaData, Histogram metric) {
    +<b class="fc">&nbsp;        final Snapshot snapshot = metric.getSnapshot();</b>
    +<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, MAX, (double) snapshot.getMax());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, MEAN, snapshot.getMean());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, MIN, (double) snapshot.getMin());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, STDDEV, snapshot.getStdDev());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, P50, snapshot.getMedian());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, P75, snapshot.get75thPercentile());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, P95, snapshot.get95thPercentile());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, P98, snapshot.get98thPercentile());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, P99, snapshot.get99thPercentile());</b>
    +<b class="fc">&nbsp;        writeValue(metaData, P999, snapshot.get999thPercentile());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void serializeTimer(MetaData.Builder metaData, Timer metric) {
    +<b class="fc">&nbsp;        final Snapshot snapshot = metric.getSnapshot();</b>
    +<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, MAX, (double) snapshot.getMax());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, MEAN, snapshot.getMean());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, MIN, (double) snapshot.getMin());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, STDDEV, snapshot.getStdDev());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, P50, snapshot.getMedian());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, P75, snapshot.get75thPercentile());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, P95, snapshot.get95thPercentile());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, P98, snapshot.get98thPercentile());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, P99, snapshot.get99thPercentile());</b>
    +<b class="fc">&nbsp;        writeDuration(metaData, P999, snapshot.get999thPercentile());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, M1_RATE, metric.getOneMinuteRate());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());</b>
    +<b class="fc">&nbsp;        writeRate(metaData, MEAN_RATE, metric.getMeanRate());</b>
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -122,7 +464,7 @@ <h1>Coverage Summary for Class: InstrumentedCacheDecoratorFactory (com.codahale.
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-2.html
    index 5cfb592c7c..c3d1402f62 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-2.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedEhcache</title>
    +  <title>Coverage Report > MetaData</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,19 +19,16 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.ehcache</a>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedEhcache (com.codahale.metrics.ehcache)</h1>
    +<h1>Coverage Summary for Class: MetaData (com.codahale.metrics.collectd)</h1>
     
     <table class="coverageStats">
    +
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
     ">
       Method, %
     </th>
    @@ -41,33 +38,62 @@ <h1>Coverage Summary for Class: InstrumentedEhcache (com.codahale.metrics.ehcach
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedEhcache</td>
    +  <td class="name">MetaData</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (15/15)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">MetaData$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.7%
    +  </span>
    +  <span class="absValue">
    +    (13/15)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
       </span>
       <span class="absValue">
    -    (21/24)
    +    (14/15)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    78%
    +    93.3%
       </span>
       <span class="absValue">
    -    (46/59)
    +    (28/30)
       </span>
     </td>
     </tr>
    -
     </table>
     
     <br/>
    @@ -75,235 +101,102 @@ <h1>Coverage Summary for Class: InstrumentedEhcache (com.codahale.metrics.ehcach
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.ehcache;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import net.sf.ehcache.CacheException;
    -&nbsp;import net.sf.ehcache.Ehcache;
    -&nbsp;import net.sf.ehcache.Element;
    -&nbsp;import net.sf.ehcache.constructs.EhcacheDecoratorAdapter;
    -&nbsp;import net.sf.ehcache.statistics.StatisticsGateway;
    -&nbsp;
    -&nbsp;import java.io.Serializable;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An instrumented {@link Ehcache} instance.
    -&nbsp; */
    -&nbsp;public class InstrumentedEhcache extends EhcacheDecoratorAdapter {
    -&nbsp;    /**
    -&nbsp;     * Instruments the given {@link Ehcache} instance with get and put timers
    -&nbsp;     * and a set of gauges for Ehcache&#39;s built-in statistics:
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * &lt;table&gt;
    -&nbsp;     * &lt;caption&gt;Ehcache timered metrics&lt;/caption&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The number of times a requested item was found in the
    -&nbsp;     * cache.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code in-memory-hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was found in the memory
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code off-heap-hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was found in the off-heap
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code on-disk-hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was found in the disk
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the
    -&nbsp;     * cache.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code in-memory-misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the memory
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code off-heap-misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the
    -&nbsp;     * off-heap store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code on-disk-misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the disk
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of elements stored in the cache.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code in-memory-objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of objects in the memory store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code off-heap-objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of objects in the off-heap store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code on-disk-objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of objects in the disk store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code mean-get-time}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The average get time. Because ehcache support JDK1.4.2, each
    -&nbsp;     * get time uses {@link System#currentTimeMillis()}, rather than
    -&nbsp;     * nanoseconds. The accuracy is thus limited.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code mean-search-time}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The average execution time (in milliseconds) within the last
    -&nbsp;     * sample period.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code eviction-count}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The number of cache evictions, since the cache was created,
    -&nbsp;     * or statistics were cleared.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code searches-per-second}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The number of search executions that have completed in the
    -&nbsp;     * last second.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code accuracy}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;A human readable description of the accuracy setting. One of
    -&nbsp;     * &quot;None&quot;, &quot;Best Effort&quot; or &quot;Guaranteed&quot;.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;/table&gt;
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * &lt;b&gt;N.B.: This enables Ehcache&#39;s sampling statistics with an accuracy
    -&nbsp;     * level of &quot;none.&quot;&lt;/b&gt;
    -&nbsp;     *
    -&nbsp;     * @param cache    an {@link Ehcache} instance
    -&nbsp;     * @param registry a {@link MetricRegistry}
    -&nbsp;     * @return an instrumented decorator for {@code cache}
    -&nbsp;     * @see StatisticsGateway
    -&nbsp;     */
    -&nbsp;    public static Ehcache instrument(MetricRegistry registry, final Ehcache cache) {
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = name(cache.getClass(), cache.getName());</b>
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localHeapHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localOffHeapHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localDiskHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localHeapMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localOffHeapMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localDiskMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalHeapSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalOffHeapSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalDiskSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;mean-get-time&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheGetOperation().latency().average().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;mean-search-time&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheSearchOperation().latency().average().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;eviction-count&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheEvictionOperation().count().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;searches-per-second&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheSearchOperation().rate().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;writer-queue-size&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getWriterQueueLength());</b>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +&nbsp;class MetaData {
    +&nbsp;
    +&nbsp;    private final String host;
    +&nbsp;    private final String plugin;
    +&nbsp;    private final String pluginInstance;
    +&nbsp;    private final String type;
    +&nbsp;    private final String typeInstance;
    +&nbsp;    private final long timestamp;
    +&nbsp;    private final long period;
    +&nbsp;
    +&nbsp;    MetaData(String host, String plugin, String pluginInstance, String type, String typeInstance,
    +<b class="fc">&nbsp;             long timestamp, long period) {</b>
    +<b class="fc">&nbsp;        this.host = host;</b>
    +<b class="fc">&nbsp;        this.plugin = plugin;</b>
    +<b class="fc">&nbsp;        this.pluginInstance = pluginInstance;</b>
    +<b class="fc">&nbsp;        this.type = type;</b>
    +<b class="fc">&nbsp;        this.typeInstance = typeInstance;</b>
    +<b class="fc">&nbsp;        this.timestamp = timestamp;</b>
    +<b class="fc">&nbsp;        this.period = period;</b>
    +&nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;        return new InstrumentedEhcache(registry, cache);</b>
    +&nbsp;    String getHost() {
    +<b class="fc">&nbsp;        return host;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    private final Timer getTimer, putTimer;
    +&nbsp;    String getPlugin() {
    +<b class="fc">&nbsp;        return plugin;</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;    private InstrumentedEhcache(MetricRegistry registry, Ehcache cache) {
    -<b class="fc">&nbsp;        super(cache);</b>
    -<b class="fc">&nbsp;        this.getTimer = registry.timer(name(cache.getClass(), cache.getName(), &quot;gets&quot;));</b>
    -<b class="fc">&nbsp;        this.putTimer = registry.timer(name(cache.getClass(), cache.getName(), &quot;puts&quot;));</b>
    +&nbsp;    String getPluginInstance() {
    +<b class="fc">&nbsp;        return pluginInstance;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Element get(Object key) throws IllegalStateException, CacheException {
    -<b class="nc">&nbsp;        final Timer.Context ctx = getTimer.time();</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            return underlyingCache.get(key);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    +&nbsp;    String getType() {
    +<b class="fc">&nbsp;        return type;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Element get(Serializable key) throws IllegalStateException, CacheException {
    -<b class="fc">&nbsp;        final Timer.Context ctx = getTimer.time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return underlyingCache.get(key);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    +&nbsp;    String getTypeInstance() {
    +<b class="fc">&nbsp;        return typeInstance;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void put(Element element) throws IllegalArgumentException, IllegalStateException, CacheException {
    -<b class="fc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            underlyingCache.put(element);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            ctx.stop();</b>
    -<b class="fc">&nbsp;        }</b>
    +&nbsp;    long getTimestamp() {
    +<b class="fc">&nbsp;        return timestamp;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void put(Element element, boolean doNotNotifyCacheReplicators) throws IllegalArgumentException, IllegalStateException, CacheException {
    -<b class="nc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            underlyingCache.put(element, doNotNotifyCacheReplicators);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    +&nbsp;    long getPeriod() {
    +<b class="fc">&nbsp;        return period;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Element putIfAbsent(Element element) throws NullPointerException {
    -<b class="nc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            return underlyingCache.putIfAbsent(element);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    +&nbsp;    static class Builder {
    +&nbsp;
    +&nbsp;        private String host;
    +&nbsp;        private String plugin;
    +&nbsp;        private String pluginInstance;
    +&nbsp;        private String type;
    +&nbsp;        private String typeInstance;
    +&nbsp;        private long timestamp;
    +&nbsp;        private long period;
    +&nbsp;        private Sanitize sanitize;
    +&nbsp;
    +&nbsp;        Builder(String host, long timestamp, long duration) {
    +<b class="fc">&nbsp;            this(new Sanitize(Sanitize.DEFAULT_MAX_LENGTH), host, timestamp, duration);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        Builder(Sanitize sanitize, String host, long timestamp, long duration) {</b>
    +<b class="fc">&nbsp;            this.sanitize = sanitize;</b>
    +<b class="fc">&nbsp;            this.host = sanitize.instanceName(host);</b>
    +<b class="fc">&nbsp;            this.timestamp = timestamp;</b>
    +<b class="fc">&nbsp;            period = duration;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        Builder plugin(String name) {
    +<b class="fc">&nbsp;            plugin = sanitize.name(name);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        Builder pluginInstance(String name) {
    +<b class="nc">&nbsp;            pluginInstance = sanitize.instanceName(name);</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        Builder type(String name) {
    +<b class="fc">&nbsp;            type = sanitize.name(name);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        Builder typeInstance(String name) {
    +<b class="fc">&nbsp;            typeInstance = sanitize.instanceName(name);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        MetaData get() {
    +<b class="fc">&nbsp;            return new MetaData(host, plugin, pluginInstance, type, typeInstance, timestamp, period);</b>
    +&nbsp;        }
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -329,7 +222,7 @@ <h1>Coverage Summary for Class: InstrumentedEhcache (com.codahale.metrics.ehcach
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-3.html
    new file mode 100644
    index 0000000000..f84171f994
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-3.html
    @@ -0,0 +1,424 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > PacketWriter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: PacketWriter (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">PacketWriter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (14/14)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.4%
    +  </span>
    +  <span class="absValue">
    +    (88/103)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">PacketWriter$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">PacketWriter$EncryptionResult</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (17/17)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    86.1%
    +  </span>
    +  <span class="absValue">
    +    (93/108)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +&nbsp;import javax.crypto.BadPaddingException;
    +&nbsp;import javax.crypto.Cipher;
    +&nbsp;import javax.crypto.IllegalBlockSizeException;
    +&nbsp;import javax.crypto.Mac;
    +&nbsp;import javax.crypto.NoSuchPaddingException;
    +&nbsp;import javax.crypto.ShortBufferException;
    +&nbsp;import javax.crypto.spec.IvParameterSpec;
    +&nbsp;import javax.crypto.spec.SecretKeySpec;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.nio.BufferOverflowException;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.nio.ByteOrder;
    +&nbsp;import java.nio.charset.StandardCharsets;
    +&nbsp;import java.security.InvalidKeyException;
    +&nbsp;import java.security.MessageDigest;
    +&nbsp;import java.security.NoSuchAlgorithmException;
    +&nbsp;import java.security.spec.InvalidParameterSpecException;
    +&nbsp;import java.util.Arrays;
    +&nbsp;
    +&nbsp;class PacketWriter {
    +&nbsp;
    +&nbsp;    private static final int TYPE_HOST = 0;
    +&nbsp;    private static final int TYPE_TIME = 1;
    +&nbsp;    private static final int TYPE_PLUGIN = 2;
    +&nbsp;    private static final int TYPE_PLUGIN_INSTANCE = 3;
    +&nbsp;    private static final int TYPE_TYPE = 4;
    +&nbsp;    private static final int TYPE_TYPE_INSTANCE = 5;
    +&nbsp;    private static final int TYPE_VALUES = 6;
    +&nbsp;    private static final int TYPE_INTERVAL = 7;
    +&nbsp;    private static final int TYPE_SIGN_SHA256 = 0x0200;
    +&nbsp;    private static final int TYPE_ENCR_AES256 = 0x0210;
    +&nbsp;
    +&nbsp;    private static final int UINT16_LEN = 2;
    +&nbsp;    private static final int UINT32_LEN = UINT16_LEN * 2;
    +&nbsp;    private static final int UINT64_LEN = UINT32_LEN * 2;
    +&nbsp;    private static final int HEADER_LEN = UINT16_LEN * 2;
    +&nbsp;    private static final int BUFFER_SIZE = 1024;
    +&nbsp;
    +&nbsp;    private static final int VALUE_COUNT_LEN = UINT16_LEN;
    +&nbsp;    private static final int NUMBER_LEN = HEADER_LEN + UINT64_LEN;
    +&nbsp;    private static final int SIGNATURE_LEN = 36;      // 2b Type + 2b Length + 32b Hash
    +&nbsp;    private static final int ENCRYPT_DATA_LEN = 22;   // 16b IV + 2b Type + 2b Length + 2b Username length
    +&nbsp;    private static final int IV_LENGTH = 16;
    +&nbsp;    private static final int SHA1_LENGTH = 20;
    +&nbsp;
    +&nbsp;    private static final int VALUE_LEN = 9;
    +&nbsp;    private static final byte DATA_TYPE_GAUGE = (byte) 1;
    +&nbsp;    private static final byte NULL = (byte) &#39;\0&#39;;
    +&nbsp;    private static final String HMAC_SHA256_ALGORITHM = &quot;HmacSHA256&quot;;
    +&nbsp;    private static final String AES_CYPHER = &quot;AES_256/OFB/NoPadding&quot;;
    +&nbsp;    private static final String AES = &quot;AES&quot;;
    +&nbsp;    private static final String SHA_256_ALGORITHM = &quot;SHA-256&quot;;
    +&nbsp;    private static final String SHA_1_ALGORITHM = &quot;SHA1&quot;;
    +&nbsp;
    +&nbsp;    private final Sender sender;
    +&nbsp;
    +&nbsp;    private final SecurityLevel securityLevel;
    +&nbsp;    private final byte[] username;
    +&nbsp;    private final byte[] password;
    +&nbsp;
    +<b class="fc">&nbsp;    PacketWriter(Sender sender, String username, String password, SecurityLevel securityLevel) {</b>
    +<b class="fc">&nbsp;        this.sender = sender;</b>
    +<b class="fc">&nbsp;        this.securityLevel = securityLevel;</b>
    +<b class="fc">&nbsp;        this.username = username != null ? username.getBytes(StandardCharsets.UTF_8) : null;</b>
    +<b class="fc">&nbsp;        this.password = password != null ? password.getBytes(StandardCharsets.UTF_8) : null;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    void write(MetaData metaData, Number... values) throws BufferOverflowException, IOException {
    +<b class="fc">&nbsp;        final ByteBuffer packet = ByteBuffer.allocate(BUFFER_SIZE);</b>
    +<b class="fc">&nbsp;        write(packet, metaData);</b>
    +<b class="fc">&nbsp;        write(packet, values);</b>
    +<b class="fc">&nbsp;        packet.flip();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        switch (securityLevel) {</b>
    +&nbsp;            case NONE:
    +<b class="fc">&nbsp;                sender.send(packet);</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case SIGN:
    +<b class="fc">&nbsp;                sender.send(signPacket(packet));</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            case ENCRYPT:
    +<b class="fc">&nbsp;                sender.send(encryptPacket(packet));</b>
    +<b class="fc">&nbsp;                break;</b>
    +&nbsp;            default:
    +<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;Unsupported security level: &quot; + securityLevel);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    private void write(ByteBuffer buffer, MetaData metaData) {
    +<b class="fc">&nbsp;        writeString(buffer, TYPE_HOST, metaData.getHost());</b>
    +<b class="fc">&nbsp;        writeNumber(buffer, TYPE_TIME, metaData.getTimestamp());</b>
    +<b class="fc">&nbsp;        writeString(buffer, TYPE_PLUGIN, metaData.getPlugin());</b>
    +<b class="fc">&nbsp;        writeString(buffer, TYPE_PLUGIN_INSTANCE, metaData.getPluginInstance());</b>
    +<b class="fc">&nbsp;        writeString(buffer, TYPE_TYPE, metaData.getType());</b>
    +<b class="fc">&nbsp;        writeString(buffer, TYPE_TYPE_INSTANCE, metaData.getTypeInstance());</b>
    +<b class="fc">&nbsp;        writeNumber(buffer, TYPE_INTERVAL, metaData.getPeriod());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void write(ByteBuffer buffer, Number... values) {
    +<b class="fc">&nbsp;        final int numValues = values.length;</b>
    +<b class="fc">&nbsp;        final int length = HEADER_LEN + VALUE_COUNT_LEN + numValues * VALUE_LEN;</b>
    +<b class="fc">&nbsp;        writeHeader(buffer, TYPE_VALUES, length);</b>
    +<b class="fc">&nbsp;        buffer.putShort((short) numValues);</b>
    +<b class="fc">&nbsp;        buffer.put(nCopies(numValues, DATA_TYPE_GAUGE));</b>
    +<b class="fc">&nbsp;        buffer.order(ByteOrder.LITTLE_ENDIAN);</b>
    +<b class="fc">&nbsp;        for (Number value : values) {</b>
    +<b class="fc">&nbsp;            buffer.putDouble(value.doubleValue());</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        buffer.order(ByteOrder.BIG_ENDIAN);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private byte[] nCopies(int n, byte value) {
    +<b class="fc">&nbsp;        final byte[] array = new byte[n];</b>
    +<b class="fc">&nbsp;        Arrays.fill(array, value);</b>
    +<b class="fc">&nbsp;        return array;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void writeString(ByteBuffer buffer, int type, String val) {
    +<b class="fc">&nbsp;        if (val == null || val.length() == 0) {</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        int len = HEADER_LEN + val.length() + 1;</b>
    +<b class="fc">&nbsp;        writeHeader(buffer, type, len);</b>
    +<b class="fc">&nbsp;        buffer.put(val.getBytes(StandardCharsets.US_ASCII)).put(NULL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void writeNumber(ByteBuffer buffer, int type, long val) {
    +<b class="fc">&nbsp;        writeHeader(buffer, type, NUMBER_LEN);</b>
    +<b class="fc">&nbsp;        buffer.putLong(val);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void writeHeader(ByteBuffer buffer, int type, int len) {
    +<b class="fc">&nbsp;        buffer.putShort((short) type);</b>
    +<b class="fc">&nbsp;        buffer.putShort((short) len);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Signs the provided packet, so a CollectD server can verify that its authenticity.
    +&nbsp;     * Wire format:
    +&nbsp;     * &lt;pre&gt;
    +&nbsp;     * +-------------------------------+-------------------------------+
    +&nbsp;     * ! Type (0x0200)                 ! Length                        !
    +&nbsp;     * +-------------------------------+-------------------------------+
    +&nbsp;     * ! Signature (SHA2(username + packet))                           \
    +&nbsp;     * +-------------------------------+-------------------------------+
    +&nbsp;     * ! Username                      ! Packet                        \
    +&nbsp;     * +---------------------------------------------------------------+
    +&nbsp;     * &lt;/pre&gt;
    +&nbsp;     *
    +&nbsp;     * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Binary_protocol#Signature_part&quot;&gt;
    +&nbsp;     * Binary protocol - CollectD | Signature part&lt;/a&gt;
    +&nbsp;     */
    +&nbsp;    private ByteBuffer signPacket(ByteBuffer packet) {
    +<b class="fc">&nbsp;        final byte[] signature = sign(password, (ByteBuffer) ByteBuffer.allocate(packet.remaining() + username.length)</b>
    +<b class="fc">&nbsp;                .put(username)</b>
    +<b class="fc">&nbsp;                .put(packet)</b>
    +<b class="fc">&nbsp;                .flip());</b>
    +<b class="fc">&nbsp;        return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)</b>
    +<b class="fc">&nbsp;                .putShort((short) TYPE_SIGN_SHA256)</b>
    +<b class="fc">&nbsp;                .putShort((short) (username.length + SIGNATURE_LEN))</b>
    +<b class="fc">&nbsp;                .put(signature)</b>
    +<b class="fc">&nbsp;                .put(username)</b>
    +<b class="fc">&nbsp;                .put((ByteBuffer) packet.flip())</b>
    +<b class="fc">&nbsp;                .flip();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Encrypts the provided packet, so it&#39;s can&#39;t be eavesdropped during a transfer
    +&nbsp;     * to a CollectD server. Wire format:
    +&nbsp;     * &lt;pre&gt;
    +&nbsp;     * +---------------------------------+-------------------------------+
    +&nbsp;     * ! Type (0x0210)                   ! Length                        !
    +&nbsp;     * +---------------------------------+-------------------------------+
    +&nbsp;     * ! Username length in bytes        ! Username                      \
    +&nbsp;     * +-----------------------------------------------------------------+
    +&nbsp;     * ! Initialization Vector (IV)      !                               \
    +&nbsp;     * +---------------------------------+-------------------------------+
    +&nbsp;     * ! Encrypted bytes (AES (SHA1(packet) + packet))                   \
    +&nbsp;     * +---------------------------------+-------------------------------+
    +&nbsp;     * &lt;/pre&gt;
    +&nbsp;     *
    +&nbsp;     * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Binary_protocol#Encrypted_part&quot;&gt;
    +&nbsp;     * Binary protocol - CollectD | Encrypted part&lt;/a&gt;
    +&nbsp;     */
    +&nbsp;    private ByteBuffer encryptPacket(ByteBuffer packet) {
    +<b class="fc">&nbsp;        final ByteBuffer payload = (ByteBuffer) ByteBuffer.allocate(SHA1_LENGTH + packet.remaining())</b>
    +<b class="fc">&nbsp;                .put(sha1(packet))</b>
    +<b class="fc">&nbsp;                .put((ByteBuffer) packet.flip())</b>
    +<b class="fc">&nbsp;                .flip();</b>
    +<b class="fc">&nbsp;        final EncryptionResult er = encrypt(password, payload);</b>
    +<b class="fc">&nbsp;        return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)</b>
    +<b class="fc">&nbsp;                .putShort((short) TYPE_ENCR_AES256)</b>
    +<b class="fc">&nbsp;                .putShort((short) (ENCRYPT_DATA_LEN + username.length + er.output.remaining()))</b>
    +<b class="fc">&nbsp;                .putShort((short) username.length)</b>
    +<b class="fc">&nbsp;                .put(username)</b>
    +<b class="fc">&nbsp;                .put(er.iv)</b>
    +<b class="fc">&nbsp;                .put(er.output)</b>
    +<b class="fc">&nbsp;                .flip();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static byte[] sign(byte[] secret, ByteBuffer input) {
    +&nbsp;        final Mac mac;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            mac = Mac.getInstance(HMAC_SHA256_ALGORITHM);</b>
    +<b class="fc">&nbsp;            mac.init(new SecretKeySpec(secret, HMAC_SHA256_ALGORITHM));</b>
    +<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException | InvalidKeyException e) {</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        mac.update(input);</b>
    +<b class="fc">&nbsp;        return mac.doFinal();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static EncryptionResult encrypt(byte[] password, ByteBuffer input) {
    +&nbsp;        final Cipher cipher;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            cipher = Cipher.getInstance(AES_CYPHER);</b>
    +<b class="fc">&nbsp;            cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(sha256(password), AES));</b>
    +<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException e) {</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;        final byte[] iv;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            iv = cipher.getParameters().getParameterSpec(IvParameterSpec.class).getIV();</b>
    +<b class="nc">&nbsp;        } catch (InvalidParameterSpecException e) {</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        if (iv.length != IV_LENGTH) {</b>
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Bad initialization vector&quot;);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        final ByteBuffer output = ByteBuffer.allocate(input.remaining() * 2);</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            cipher.doFinal(input, output);</b>
    +<b class="nc">&nbsp;        } catch (ShortBufferException | IllegalBlockSizeException | BadPaddingException e) {</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return new EncryptionResult(iv, (ByteBuffer) output.flip());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static byte[] sha256(byte[] input) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return MessageDigest.getInstance(SHA_256_ALGORITHM).digest(input);</b>
    +<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException e) {</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static byte[] sha1(ByteBuffer input) {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            final MessageDigest digest = MessageDigest.getInstance(SHA_1_ALGORITHM);</b>
    +<b class="fc">&nbsp;            digest.update(input);</b>
    +<b class="fc">&nbsp;            final byte[] output = digest.digest();</b>
    +<b class="fc">&nbsp;            if (output.length != SHA1_LENGTH) {</b>
    +<b class="nc">&nbsp;                throw new IllegalStateException(&quot;Bad SHA1 hash&quot;);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return output;</b>
    +<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException e) {</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class EncryptionResult {</b>
    +&nbsp;
    +&nbsp;        private final byte[] iv;
    +&nbsp;        private final ByteBuffer output;
    +&nbsp;
    +<b class="fc">&nbsp;        private EncryptionResult(byte[] iv, ByteBuffer output) {</b>
    +<b class="fc">&nbsp;            this.iv = iv;</b>
    +<b class="fc">&nbsp;            this.output = output;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-4.html
    new file mode 100644
    index 0000000000..f830c68fca
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-4.html
    @@ -0,0 +1,150 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Sanitize</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Sanitize (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Sanitize</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +&nbsp;import java.util.Arrays;
    +&nbsp;import java.util.List;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Naming_schema&gt;Collectd naming schema&lt;/a&gt;
    +&nbsp; */
    +&nbsp;class Sanitize {
    +&nbsp;
    +&nbsp;    static final int DEFAULT_MAX_LENGTH = 63;
    +&nbsp;
    +&nbsp;    private static final char DASH = &#39;-&#39;;
    +&nbsp;    private static final char SLASH = &#39;/&#39;;
    +&nbsp;    private static final char NULL = &#39;\0&#39;;
    +&nbsp;    private static final char UNDERSCORE = &#39;_&#39;;
    +&nbsp;
    +<b class="fc">&nbsp;    private static final List&lt;Character&gt; INSTANCE_RESERVED = Arrays.asList(SLASH, NULL);</b>
    +<b class="fc">&nbsp;    private static final List&lt;Character&gt; NAME_RESERVED = Arrays.asList(DASH, SLASH, NULL);</b>
    +&nbsp;
    +&nbsp;    private final int maxLength;
    +&nbsp;
    +<b class="fc">&nbsp;    Sanitize(int maxLength) {</b>
    +<b class="fc">&nbsp;        this.maxLength = maxLength;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    String name(String name) {
    +<b class="fc">&nbsp;        return sanitize(name, NAME_RESERVED);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    String instanceName(String instanceName) {
    +<b class="fc">&nbsp;        return sanitize(instanceName, INSTANCE_RESERVED);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String sanitize(String string, List&lt;Character&gt; reservedChars) {
    +<b class="fc">&nbsp;        final StringBuilder buffer = new StringBuilder(string.length());</b>
    +<b class="fc">&nbsp;        final int len = Math.min(string.length(), maxLength);</b>
    +<b class="fc">&nbsp;        for (int i = 0; i &lt; len; i++) {</b>
    +<b class="fc">&nbsp;            final char c = string.charAt(i);</b>
    +<b class="fc">&nbsp;            final boolean legal = ((int) c) &lt; 128 &amp;&amp; !reservedChars.contains(c);</b>
    +<b class="fc">&nbsp;            buffer.append(legal ? c : UNDERSCORE);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return buffer.toString();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-5.html
    new file mode 100644
    index 0000000000..014f0e2f3a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-5.html
    @@ -0,0 +1,134 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SecurityConfiguration</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SecurityConfiguration (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SecurityConfiguration</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (8/8)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +&nbsp;public class SecurityConfiguration {
    +&nbsp;
    +&nbsp;    private final byte[] username;
    +&nbsp;    private final byte[] password;
    +&nbsp;    private final SecurityLevel securityLevel;
    +&nbsp;
    +<b class="fc">&nbsp;    public SecurityConfiguration(byte[] username, byte[] password, SecurityLevel securityLevel) {</b>
    +<b class="fc">&nbsp;        this.username = username;</b>
    +<b class="fc">&nbsp;        this.password = password;</b>
    +<b class="fc">&nbsp;        this.securityLevel = securityLevel;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static SecurityConfiguration none() {
    +<b class="fc">&nbsp;        return new SecurityConfiguration(null, null, SecurityLevel.NONE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public byte[] getUsername() {
    +<b class="fc">&nbsp;        return username;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public byte[] getPassword() {
    +<b class="fc">&nbsp;        return password;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public SecurityLevel getSecurityLevel() {
    +<b class="fc">&nbsp;        return securityLevel;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-6.html
    new file mode 100644
    index 0000000000..21344792bb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-6.html
    @@ -0,0 +1,112 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SecurityLevel</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SecurityLevel (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SecurityLevel</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (4/4)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +<b class="fc">&nbsp;public enum SecurityLevel {</b>
    +&nbsp;
    +<b class="fc">&nbsp;    NONE,</b>
    +<b class="fc">&nbsp;    SIGN,</b>
    +<b class="fc">&nbsp;    ENCRYPT</b>
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-7.html
    new file mode 100644
    index 0000000000..cdaad9edbb
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-7.html
    @@ -0,0 +1,154 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > Sender</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.collectd</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: Sender (com.codahale.metrics.collectd)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">Sender</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    92.9%
    +  </span>
    +  <span class="absValue">
    +    (13/14)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.net.InetSocketAddress;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.nio.channels.DatagramChannel;
    +&nbsp;
    +&nbsp;public class Sender {
    +&nbsp;
    +&nbsp;    private final String host;
    +&nbsp;    private final int port;
    +&nbsp;
    +&nbsp;    private InetSocketAddress address;
    +&nbsp;    private DatagramChannel channel;
    +&nbsp;
    +<b class="fc">&nbsp;    public Sender(String host, int port) {</b>
    +<b class="fc">&nbsp;        this.host = host;</b>
    +<b class="fc">&nbsp;        this.port = port;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void connect() throws IOException {
    +<b class="fc">&nbsp;        if (isConnected()) {</b>
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        if (host != null) {</b>
    +<b class="fc">&nbsp;            address = new InetSocketAddress(host, port);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        channel = DatagramChannel.open();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public boolean isConnected() {
    +<b class="fc">&nbsp;        return channel != null &amp;&amp; !channel.socket().isClosed();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void send(ByteBuffer buffer) throws IOException {
    +<b class="fc">&nbsp;        channel.send(buffer, address);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public void disconnect() throws IOException {
    +<b class="fc">&nbsp;        if (channel == null) {</b>
    +&nbsp;            return;
    +&nbsp;        }
    +&nbsp;        try {
    +<b class="fc">&nbsp;            channel.close();</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            channel = null;</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index.html
    index 3a79e3ac18..cc157b84ac 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    +com.codahale.metrics.ehcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    +    <td class="name">com.codahale.metrics.ehcache</td>
     <td class="coverageStat">
       <span class="percent">
    -    77.8%
    +    100%
       </span>
       <span class="absValue">
    -    (7/9)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.9%
    +    85.2%
       </span>
       <span class="absValue">
    -    (62/97)
    +    (23/27)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    58%
    +    75.8%
       </span>
       <span class="absValue">
    -    (215/371)
    +    (50/66)
       </span>
     </td>
       </tr>
    @@ -88,88 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -188,15 +107,15 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    57.1%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (4/7)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,45 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    +    87.5%
       </span>
       <span class="absValue">
    -    (4/19)
    +    (21/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    15.8%
    +    78%
       </span>
       <span class="absValue">
    -    (15/95)
    +    (46/59)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK.html
    index 9079b3cb42..e7f8755a2a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    +com.codahale.metrics.ehcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    +    <td class="name">com.codahale.metrics.ehcache</td>
     <td class="coverageStat">
       <span class="percent">
    -    77.8%
    +    100%
       </span>
       <span class="absValue">
    -    (7/9)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.9%
    +    85.2%
       </span>
       <span class="absValue">
    -    (62/97)
    +    (23/27)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    58%
    +    75.8%
       </span>
       <span class="absValue">
    -    (215/371)
    +    (50/66)
       </span>
     </td>
       </tr>
    @@ -88,88 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -188,15 +107,15 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    57.1%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (4/7)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,45 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    +    87.5%
       </span>
       <span class="absValue">
    -    (4/19)
    +    (21/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    15.8%
    +    78%
       </span>
       <span class="absValue">
    -    (15/95)
    +    (46/59)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
    index 2de8b4bedc..f9c7cfbff6 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    +com.codahale.metrics.ehcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    +    <td class="name">com.codahale.metrics.ehcache</td>
     <td class="coverageStat">
       <span class="percent">
    -    77.8%
    +    100%
       </span>
       <span class="absValue">
    -    (7/9)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.9%
    +    85.2%
       </span>
       <span class="absValue">
    -    (62/97)
    +    (23/27)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    58%
    +    75.8%
       </span>
       <span class="absValue">
    -    (215/371)
    +    (50/66)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,23 +99,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    53.8%
    +    87.5%
       </span>
       <span class="absValue">
    -    (7/13)
    +    (21/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    50%
    +    78%
       </span>
       <span class="absValue">
    -    (17/34)
    +    (46/59)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -161,91 +134,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    +    57.1%
       </span>
       <span class="absValue">
    -    (31/58)
    +    (4/7)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS.html
    index ae403edacb..8f0c0fa381 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    +com.codahale.metrics.ehcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    +    <td class="name">com.codahale.metrics.ehcache</td>
     <td class="coverageStat">
       <span class="percent">
    -    77.8%
    +    100%
       </span>
       <span class="absValue">
    -    (7/9)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.9%
    +    85.2%
       </span>
       <span class="absValue">
    -    (62/97)
    +    (23/27)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    58%
    +    75.8%
       </span>
       <span class="absValue">
    -    (215/371)
    +    (50/66)
       </span>
     </td>
       </tr>
    @@ -88,115 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -215,15 +107,15 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    57.1%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (4/7)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -234,18 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    53.8%
    +    87.5%
       </span>
       <span class="absValue">
    -    (7/13)
    +    (21/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    50%
    +    78%
       </span>
       <span class="absValue">
    -    (17/34)
    +    (46/59)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
    index b174958252..ba8d696c4a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    +com.codahale.metrics.ehcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    +    <td class="name">com.codahale.metrics.ehcache</td>
     <td class="coverageStat">
       <span class="percent">
    -    77.8%
    +    100%
       </span>
       <span class="absValue">
    -    (7/9)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.9%
    +    85.2%
       </span>
       <span class="absValue">
    -    (62/97)
    +    (23/27)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    58%
    +    75.8%
       </span>
       <span class="absValue">
    -    (215/371)
    +    (50/66)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,23 +99,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    53.8%
    +    87.5%
       </span>
       <span class="absValue">
    -    (7/13)
    +    (21/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    50%
    +    78%
       </span>
       <span class="absValue">
    -    (17/34)
    +    (46/59)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -134,118 +134,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    +    57.1%
       </span>
       <span class="absValue">
    -    (24/41)
    +    (4/7)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE.html
    index 580172b39e..ac2727431f 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    +com.codahale.metrics.ehcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    +    <td class="name">com.codahale.metrics.ehcache</td>
     <td class="coverageStat">
       <span class="percent">
    -    77.8%
    +    100%
       </span>
       <span class="absValue">
    -    (7/9)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.9%
    +    85.2%
       </span>
       <span class="absValue">
    -    (62/97)
    +    (23/27)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    58%
    +    75.8%
       </span>
       <span class="absValue">
    -    (215/371)
    +    (50/66)
       </span>
     </td>
       </tr>
    @@ -88,115 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -215,37 +107,37 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    57.1%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (4/7)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.4%
    +    87.5%
       </span>
       <span class="absValue">
    -    (32/35)
    +    (21/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    78%
       </span>
       <span class="absValue">
    -    (126/140)
    +    (46/59)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
    index 371861bc9d..7a29e9864e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    +com.codahale.metrics.ehcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    +    <td class="name">com.codahale.metrics.ehcache</td>
     <td class="coverageStat">
       <span class="percent">
    -    77.8%
    +    100%
       </span>
       <span class="absValue">
    -    (7/9)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.9%
    +    85.2%
       </span>
       <span class="absValue">
    -    (62/97)
    +    (23/27)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    58%
    +    75.8%
       </span>
       <span class="absValue">
    -    (215/371)
    +    (50/66)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.4%
    +    87.5%
       </span>
       <span class="absValue">
    -    (32/35)
    +    (21/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    78%
       </span>
       <span class="absValue">
    -    (126/140)
    +    (46/59)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -134,118 +134,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    +    57.1%
       </span>
       <span class="absValue">
    -    (15/95)
    +    (4/7)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD.html
    index bc2f6dce53..4004aba9da 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    +com.codahale.metrics.ehcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    +    <td class="name">com.codahale.metrics.ehcache</td>
     <td class="coverageStat">
       <span class="percent">
    -    77.8%
    +    100%
       </span>
       <span class="absValue">
    -    (7/9)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.9%
    +    85.2%
       </span>
       <span class="absValue">
    -    (62/97)
    +    (23/27)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    58%
    +    75.8%
       </span>
       <span class="absValue">
    -    (215/371)
    +    (50/66)
       </span>
     </td>
       </tr>
    @@ -88,115 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -215,37 +107,37 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    +    57.1%
       </span>
       <span class="absValue">
    -    (2/3)
    +    (4/7)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.4%
    +    87.5%
       </span>
       <span class="absValue">
    -    (32/35)
    +    (21/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    78%
       </span>
       <span class="absValue">
    -    (126/140)
    +    (46/59)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
    index 0dc07d6d19..f065a966c7 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    +com.codahale.metrics.ehcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    +    <td class="name">com.codahale.metrics.ehcache</td>
     <td class="coverageStat">
       <span class="percent">
    -    77.8%
    +    100%
       </span>
       <span class="absValue">
    -    (7/9)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.9%
    +    85.2%
       </span>
       <span class="absValue">
    -    (62/97)
    +    (23/27)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    58%
    +    75.8%
       </span>
       <span class="absValue">
    -    (215/371)
    +    (50/66)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.4%
    +    87.5%
       </span>
       <span class="absValue">
    -    (32/35)
    +    (21/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    78%
       </span>
       <span class="absValue">
    -    (126/140)
    +    (46/59)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -134,118 +134,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    +    57.1%
       </span>
       <span class="absValue">
    -    (15/95)
    +    (4/7)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
    index 91cbc6d656..916dce487c 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    +  <title>Coverage Report > com.codahale.metrics.ehcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    +com.codahale.metrics.ehcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    +    <td class="name">com.codahale.metrics.ehcache</td>
     <td class="coverageStat">
       <span class="percent">
    -    77.8%
    +    100%
       </span>
       <span class="absValue">
    -    (7/9)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.9%
    +    85.2%
       </span>
       <span class="absValue">
    -    (62/97)
    +    (23/27)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    58%
    +    75.8%
       </span>
       <span class="absValue">
    -    (215/371)
    +    (50/66)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,23 +99,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    53.8%
    +    87.5%
       </span>
       <span class="absValue">
    -    (7/13)
    +    (21/24)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    50%
    +    78%
       </span>
       <span class="absValue">
    -    (17/34)
    +    (46/59)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -161,91 +134,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    +    57.1%
       </span>
       <span class="absValue">
    -    (31/58)
    +    (4/7)
       </span>
     </td>
       </tr>
    @@ -272,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-1.html
    index d843bebbd8..ccc494583a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Graphite</title>
    +  <title>Coverage Report > InstrumentedCacheDecoratorFactory</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    +    <a href="../index.html">com.codahale.metrics.ehcache</a>
     </div>
     
    -<h1>Coverage Summary for Class: Graphite (com.codahale.metrics.graphite)</h1>
    +<h1>Coverage Summary for Class: InstrumentedCacheDecoratorFactory (com.codahale.metrics.ehcache)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -41,7 +41,7 @@ <h1>Coverage Summary for Class: Graphite (com.codahale.metrics.graphite)</h1>
     </th>
     </tr>
     <tr>
    -  <td class="name">Graphite</td>
    +  <td class="name">InstrumentedCacheDecoratorFactory</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -52,18 +52,18 @@ <h1>Coverage Summary for Class: Graphite (com.codahale.metrics.graphite)</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    64.3%
    +    66.7%
       </span>
       <span class="absValue">
    -    (9/14)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    53.4%
    +    57.1%
       </span>
       <span class="absValue">
    -    (31/58)
    +    (4/7)
       </span>
     </td>
     </tr>
    @@ -75,205 +75,28 @@ <h1>Coverage Summary for Class: Graphite (com.codahale.metrics.graphite)</h1>
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.ehcache;
     &nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    +&nbsp;import net.sf.ehcache.Ehcache;
    +&nbsp;import net.sf.ehcache.constructs.CacheDecoratorFactory;
     &nbsp;
    -&nbsp;import javax.net.SocketFactory;
    -&nbsp;import java.io.BufferedWriter;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.Writer;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.net.Socket;
    -&nbsp;import java.net.UnknownHostException;
    -&nbsp;import java.nio.charset.Charset;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A client to a Carbon server via TCP.
    -&nbsp; */
    -&nbsp;public class Graphite implements GraphiteSender {
    -&nbsp;    // this may be optimistic about Carbon/Graphite
    -&nbsp;
    -&nbsp;    private final String hostname;
    -&nbsp;    private final int port;
    -&nbsp;    private final InetSocketAddress address;
    -&nbsp;    private final SocketFactory socketFactory;
    -&nbsp;    private final Charset charset;
    -&nbsp;
    -&nbsp;    private Socket socket;
    -&nbsp;    private Writer writer;
    -&nbsp;    private int failures;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(Graphite.class);</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default
    -&nbsp;     * {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param hostname The hostname of the Carbon server
    -&nbsp;     * @param port     The port of the Carbon server
    -&nbsp;     */
    -&nbsp;    public Graphite(String hostname, int port) {
    -<b class="nc">&nbsp;        this(hostname, port, SocketFactory.getDefault());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param hostname      The hostname of the Carbon server
    -&nbsp;     * @param port          The port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     */
    -&nbsp;    public Graphite(String hostname, int port, SocketFactory socketFactory) {
    -<b class="fc">&nbsp;        this(hostname, port, socketFactory, UTF_8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given
    -&nbsp;     * character set.
    -&nbsp;     *
    -&nbsp;     * @param hostname      The hostname of the Carbon server
    -&nbsp;     * @param port          The port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     */
    -<b class="fc">&nbsp;    public Graphite(String hostname, int port, SocketFactory socketFactory, Charset charset) {</b>
    -<b class="fc">&nbsp;        if (hostname == null || hostname.isEmpty()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;hostname must not be null or empty&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (port &lt; 0 || port &gt; 65535) {</b>
    -<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;port must be a valid IP port (0-65535)&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.hostname = hostname;</b>
    -<b class="fc">&nbsp;        this.port = port;</b>
    -<b class="fc">&nbsp;        this.address = null;</b>
    -<b class="fc">&nbsp;        this.socketFactory = requireNonNull(socketFactory, &quot;socketFactory must not be null&quot;);</b>
    -<b class="fc">&nbsp;        this.charset = requireNonNull(charset, &quot;charset must not be null&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default
    -&nbsp;     * {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param address the address of the Carbon server
    -&nbsp;     */
    -&nbsp;    public Graphite(InetSocketAddress address) {
    -<b class="nc">&nbsp;        this(address, SocketFactory.getDefault());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     */
    -&nbsp;    public Graphite(InetSocketAddress address, SocketFactory socketFactory) {
    -<b class="fc">&nbsp;        this(address, socketFactory, UTF_8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given
    -&nbsp;     * character set.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     */
    -<b class="fc">&nbsp;    public Graphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset) {</b>
    -<b class="fc">&nbsp;        this.hostname = null;</b>
    -<b class="fc">&nbsp;        this.port = -1;</b>
    -<b class="fc">&nbsp;        this.address = requireNonNull(address, &quot;address must not be null&quot;);</b>
    -<b class="fc">&nbsp;        this.socketFactory = requireNonNull(socketFactory, &quot;socketFactory must not be null&quot;);</b>
    -<b class="fc">&nbsp;        this.charset = requireNonNull(charset, &quot;charset must not be null&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        InetSocketAddress address = this.address;</b>
    -&nbsp;        // the previous dns retry logic did not work, as address.getAddress would always return the cached value
    -&nbsp;        // this version of the simplified logic will always cause a dns request if hostname has been supplied.
    -&nbsp;        // InetAddress.getByName forces the dns lookup
    -&nbsp;        // if an InetSocketAddress was supplied at create time that will take precedence.
    -<b class="fc">&nbsp;        if (address == null || address.getHostName() == null &amp;&amp; hostname != null) {</b>
    -<b class="fc">&nbsp;            address = new InetSocketAddress(hostname, port);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (address.getAddress() == null) {</b>
    -<b class="fc">&nbsp;            throw new UnknownHostException(address.getHostName());</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());</b>
    -<b class="nc">&nbsp;        this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return socket != null &amp;&amp; socket.isConnected() &amp;&amp; !socket.isClosed();</b>
    -&nbsp;    }
    +&nbsp;import java.util.Properties;
     &nbsp;
    +<b class="fc">&nbsp;public class InstrumentedCacheDecoratorFactory extends CacheDecoratorFactory {</b>
     &nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -&nbsp;        try {
    -<b class="nc">&nbsp;            writer.write(sanitize(name));</b>
    -<b class="nc">&nbsp;            writer.write(&#39; &#39;);</b>
    -<b class="nc">&nbsp;            writer.write(sanitize(value));</b>
    -<b class="nc">&nbsp;            writer.write(&#39; &#39;);</b>
    -<b class="nc">&nbsp;            writer.write(Long.toString(timestamp));</b>
    -<b class="nc">&nbsp;            writer.write(&#39;\n&#39;);</b>
    -<b class="nc">&nbsp;            this.failures = 0;</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            failures++;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -<b class="nc">&nbsp;        }</b>
    +&nbsp;    public Ehcache createDecoratedEhcache(Ehcache cache, Properties properties) {
    +<b class="fc">&nbsp;        final String name = properties.getProperty(&quot;metric-registry-name&quot;);</b>
    +<b class="fc">&nbsp;        final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);</b>
    +<b class="fc">&nbsp;        return InstrumentedEhcache.instrument(registry, cache);</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="fc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -<b class="nc">&nbsp;        if (writer != null) {</b>
    -<b class="nc">&nbsp;            writer.flush();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            if (writer != null) {</b>
    -<b class="nc">&nbsp;                writer.close();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    -<b class="nc">&nbsp;            LOGGER.debug(&quot;Error closing writer&quot;, ex);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            this.writer = null;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            if (socket != null) {</b>
    -<b class="nc">&nbsp;                socket.close();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    -<b class="nc">&nbsp;            LOGGER.debug(&quot;Error closing socket&quot;, ex);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            this.socket = null;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String s) {
    -<b class="nc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    +&nbsp;    public Ehcache createDefaultDecoratedEhcache(Ehcache cache, Properties properties) {
    +<b class="nc">&nbsp;        final String name = properties.getProperty(&quot;metric-registry-name&quot;);</b>
    +<b class="nc">&nbsp;        final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);</b>
    +<b class="nc">&nbsp;        return InstrumentedEhcache.instrument(registry, cache);</b>
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -299,7 +122,7 @@ <h1>Coverage Summary for Class: Graphite (com.codahale.metrics.graphite)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-2.html
    index 4279744a75..66f320d723 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-2.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteRabbitMQ</title>
    +  <title>Coverage Report > InstrumentedEhcache</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,16 +19,19 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    +    <a href="../index.html">com.codahale.metrics.ehcache</a>
     </div>
     
    -<h1>Coverage Summary for Class: GraphiteRabbitMQ (com.codahale.metrics.graphite)</h1>
    +<h1>Coverage Summary for Class: InstrumentedEhcache (com.codahale.metrics.ehcache)</h1>
     
     <table class="coverageStats">
    -
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
     ">
       Method, %
     </th>
    @@ -38,62 +41,33 @@ <h1>Coverage Summary for Class: GraphiteRabbitMQ (com.codahale.metrics.graphite)
     </th>
     </tr>
     <tr>
    -  <td class="name">GraphiteRabbitMQ</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.2%
    -  </span>
    -  <span class="absValue">
    -    (24/38)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">GraphiteRabbitMQ$1</td>
    +  <td class="name">InstrumentedEhcache</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    100%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    87.5%
       </span>
       <span class="absValue">
    -    (0/3)
    +    (21/24)
       </span>
     </td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    61.5%
    +    78%
       </span>
       <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    +    (46/59)
       </span>
     </td>
     </tr>
    +
     </table>
     
     <br/>
    @@ -101,168 +75,236 @@ <h1>Coverage Summary for Class: GraphiteRabbitMQ (com.codahale.metrics.graphite)
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.ehcache;
     &nbsp;
    -&nbsp;import com.rabbitmq.client.Channel;
    -&nbsp;import com.rabbitmq.client.Connection;
    -&nbsp;import com.rabbitmq.client.ConnectionFactory;
    -&nbsp;import com.rabbitmq.client.DefaultSocketConfigurator;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import net.sf.ehcache.CacheException;
    +&nbsp;import net.sf.ehcache.Ehcache;
    +&nbsp;import net.sf.ehcache.Element;
    +&nbsp;import net.sf.ehcache.constructs.EhcacheDecoratorAdapter;
    +&nbsp;import net.sf.ehcache.statistics.StatisticsGateway;
     &nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.Socket;
    -&nbsp;import java.util.concurrent.TimeoutException;
    +&nbsp;import java.io.Serializable;
     &nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
     &nbsp;
     &nbsp;/**
    -&nbsp; * A rabbit-mq client to a Carbon server.
    +&nbsp; * An instrumented {@link Ehcache} instance.
     &nbsp; */
    -&nbsp;public class GraphiteRabbitMQ implements GraphiteSender {
    +&nbsp;public class InstrumentedEhcache extends EhcacheDecoratorAdapter {
    +&nbsp;    /**
    +&nbsp;     * Instruments the given {@link Ehcache} instance with get and put timers
    +&nbsp;     * and a set of gauges for Ehcache&#39;s built-in statistics:
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * &lt;table&gt;
    +&nbsp;     * &lt;caption&gt;Ehcache timered metrics&lt;/caption&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code hits}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;The number of times a requested item was found in the
    +&nbsp;     * cache.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code in-memory-hits}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was found in the memory
    +&nbsp;     * store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code off-heap-hits}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was found in the off-heap
    +&nbsp;     * store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code on-disk-hits}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was found in the disk
    +&nbsp;     * store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code misses}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the
    +&nbsp;     * cache.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code in-memory-misses}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the memory
    +&nbsp;     * store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code off-heap-misses}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the
    +&nbsp;     * off-heap store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code on-disk-misses}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the disk
    +&nbsp;     * store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code objects}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of elements stored in the cache.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code in-memory-objects}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of objects in the memory store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code off-heap-objects}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of objects in the off-heap store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code on-disk-objects}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;Number of objects in the disk store.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code mean-get-time}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;The average get time. Because ehcache support JDK1.4.2, each
    +&nbsp;     * get time uses {@link System#currentTimeMillis()}, rather than
    +&nbsp;     * nanoseconds. The accuracy is thus limited.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code mean-search-time}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;The average execution time (in milliseconds) within the last
    +&nbsp;     * sample period.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code eviction-count}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;The number of cache evictions, since the cache was created,
    +&nbsp;     * or statistics were cleared.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code searches-per-second}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;The number of search executions that have completed in the
    +&nbsp;     * last second.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;tr&gt;
    +&nbsp;     * &lt;td&gt;{@code accuracy}&lt;/td&gt;
    +&nbsp;     * &lt;td&gt;A human readable description of the accuracy setting. One of
    +&nbsp;     * &quot;None&quot;, &quot;Best Effort&quot; or &quot;Guaranteed&quot;.&lt;/td&gt;
    +&nbsp;     * &lt;/tr&gt;
    +&nbsp;     * &lt;/table&gt;
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * &lt;b&gt;N.B.: This enables Ehcache&#39;s sampling statistics with an accuracy
    +&nbsp;     * level of &quot;none.&quot;&lt;/b&gt;
    +&nbsp;     *
    +&nbsp;     * @param cache    an {@link Ehcache} instance
    +&nbsp;     * @param registry a {@link MetricRegistry}
    +&nbsp;     * @return an instrumented decorator for {@code cache}
    +&nbsp;     * @see StatisticsGateway
    +&nbsp;     */
    +&nbsp;    public static Ehcache instrument(MetricRegistry registry, final Ehcache cache) {
     &nbsp;
    -<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS = 500;</b>
    -<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_SOCKET_TIMEOUT_MS = 5000;</b>
    -<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC = 10;</b>
    +<b class="fc">&nbsp;        final String prefix = name(cache.getClass(), cache.getName());</b>
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;hits&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheHitCount());</b>
     &nbsp;
    -&nbsp;    private ConnectionFactory connectionFactory;
    -&nbsp;    private Connection connection;
    -&nbsp;    private Channel channel;
    -&nbsp;    private String exchange;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-hits&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localHeapHitCount());</b>
     &nbsp;
    -&nbsp;    private int failures;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-hits&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localOffHeapHitCount());</b>
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client with a given a {@link com.rabbitmq.client.ConnectionFactory} and an amqp exchange
    -&nbsp;     *
    -&nbsp;     * @param connectionFactory the {@link com.rabbitmq.client.ConnectionFactory} used to establish connection and publish to graphite server
    -&nbsp;     * @param exchange          the amqp exchange
    -&nbsp;     */
    -<b class="fc">&nbsp;    public GraphiteRabbitMQ(final ConnectionFactory connectionFactory, final String exchange) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.exchange = exchange;</b>
    -&nbsp;    }
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-hits&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localDiskHitCount());</b>
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client given connection details
    -&nbsp;     *
    -&nbsp;     * @param rabbitHost     the rabbitmq server host
    -&nbsp;     * @param rabbitPort     the rabbitmq server port
    -&nbsp;     * @param rabbitUsername the rabbitmq server username
    -&nbsp;     * @param rabbitPassword the rabbitmq server password
    -&nbsp;     * @param exchange       the amqp exchange
    -&nbsp;     */
    -&nbsp;    public GraphiteRabbitMQ(
    -&nbsp;            final String rabbitHost,
    -&nbsp;            final Integer rabbitPort,
    -&nbsp;            final String rabbitUsername,
    -&nbsp;            final String rabbitPassword,
    -&nbsp;            final String exchange) {
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;misses&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheMissCount());</b>
     &nbsp;
    -<b class="nc">&nbsp;        this(rabbitHost,</b>
    -&nbsp;                rabbitPort,
    -&nbsp;                rabbitUsername,
    -&nbsp;                rabbitPassword,
    -&nbsp;                exchange,
    -&nbsp;                DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS,
    -&nbsp;                DEFAULT_RABBIT_SOCKET_TIMEOUT_MS,
    -&nbsp;                DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC);
    -&nbsp;    }
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-misses&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localHeapMissCount());</b>
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client given connection details
    -&nbsp;     *
    -&nbsp;     * @param rabbitHost                        the rabbitmq server host
    -&nbsp;     * @param rabbitPort                        the rabbitmq server port
    -&nbsp;     * @param rabbitUsername                    the rabbitmq server username
    -&nbsp;     * @param rabbitPassword                    the rabbitmq server password
    -&nbsp;     * @param exchange                          the amqp exchange
    -&nbsp;     * @param rabbitConnectionTimeoutMS         the connection timeout in milliseconds
    -&nbsp;     * @param rabbitSocketTimeoutMS             the socket timeout in milliseconds
    -&nbsp;     * @param rabbitRequestedHeartbeatInSeconds the hearthbeat in seconds
    -&nbsp;     */
    -&nbsp;    public GraphiteRabbitMQ(
    -&nbsp;            final String rabbitHost,
    -&nbsp;            final Integer rabbitPort,
    -&nbsp;            final String rabbitUsername,
    -&nbsp;            final String rabbitPassword,
    -&nbsp;            final String exchange,
    -&nbsp;            final Integer rabbitConnectionTimeoutMS,
    -&nbsp;            final Integer rabbitSocketTimeoutMS,
    -<b class="nc">&nbsp;            final Integer rabbitRequestedHeartbeatInSeconds) {</b>
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-misses&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localOffHeapMissCount());</b>
     &nbsp;
    -<b class="nc">&nbsp;        this.exchange = exchange;</b>
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-misses&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localDiskMissCount());</b>
     &nbsp;
    -<b class="nc">&nbsp;        this.connectionFactory = new ConnectionFactory();</b>
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;objects&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getSize());</b>
     &nbsp;
    -<b class="nc">&nbsp;        connectionFactory.setSocketConfigurator(new DefaultSocketConfigurator() {</b>
    -&nbsp;            @Override
    -&nbsp;            public void configure(Socket socket) throws IOException {
    -<b class="nc">&nbsp;                super.configure(socket);</b>
    -<b class="nc">&nbsp;                socket.setSoTimeout(rabbitSocketTimeoutMS);</b>
    -&nbsp;            }
    -&nbsp;        });
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-objects&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalHeapSize());</b>
     &nbsp;
    -<b class="nc">&nbsp;        connectionFactory.setConnectionTimeout(rabbitConnectionTimeoutMS);</b>
    -<b class="nc">&nbsp;        connectionFactory.setRequestedHeartbeat(rabbitRequestedHeartbeatInSeconds);</b>
    -<b class="nc">&nbsp;        connectionFactory.setHost(rabbitHost);</b>
    -<b class="nc">&nbsp;        connectionFactory.setPort(rabbitPort);</b>
    -<b class="nc">&nbsp;        connectionFactory.setUsername(rabbitUsername);</b>
    -<b class="nc">&nbsp;        connectionFactory.setPassword(rabbitPassword);</b>
    -&nbsp;    }
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-objects&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalOffHeapSize());</b>
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="fc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-objects&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalDiskSize());</b>
     &nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            connection = connectionFactory.newConnection();</b>
    -<b class="nc">&nbsp;        } catch (TimeoutException e) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        channel = connection.createChannel();</b>
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;mean-get-time&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheGetOperation().latency().average().value());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;mean-search-time&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheSearchOperation().latency().average().value());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;eviction-count&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheEvictionOperation().count().value());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;searches-per-second&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheSearchOperation().rate().value());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;writer-queue-size&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getWriterQueueLength());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return new InstrumentedEhcache(registry, cache);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return connection != null &amp;&amp; connection.isOpen();</b>
    +&nbsp;    private final Timer getTimer, putTimer;
    +&nbsp;
    +&nbsp;    private InstrumentedEhcache(MetricRegistry registry, Ehcache cache) {
    +<b class="fc">&nbsp;        super(cache);</b>
    +<b class="fc">&nbsp;        this.getTimer = registry.timer(name(cache.getClass(), cache.getName(), &quot;gets&quot;));</b>
    +<b class="fc">&nbsp;        this.putTimer = registry.timer(name(cache.getClass(), cache.getName(), &quot;puts&quot;));</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    +&nbsp;    public Element get(Object key) throws IllegalStateException, CacheException {
    +<b class="nc">&nbsp;        final Timer.Context ctx = getTimer.time();</b>
     &nbsp;        try {
    -<b class="fc">&nbsp;            final String sanitizedName = sanitize(name);</b>
    -<b class="fc">&nbsp;            final String sanitizedValue = sanitize(value);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final String message = sanitizedName + &#39; &#39; + sanitizedValue + &#39; &#39; + Long.toString(timestamp) + &#39;\n&#39;;</b>
    -<b class="fc">&nbsp;            channel.basicPublish(exchange, sanitizedName, null, message.getBytes(UTF_8));</b>
    -<b class="fc">&nbsp;        } catch (IOException e) {</b>
    -<b class="fc">&nbsp;            failures++;</b>
    -<b class="fc">&nbsp;            throw e;</b>
    -<b class="fc">&nbsp;        }</b>
    +<b class="nc">&nbsp;            return underlyingCache.get(key);</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            ctx.stop();</b>
    +<b class="nc">&nbsp;        }</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -&nbsp;        // Nothing to do
    -<b class="nc">&nbsp;    }</b>
    +&nbsp;    public Element get(Serializable key) throws IllegalStateException, CacheException {
    +<b class="fc">&nbsp;        final Timer.Context ctx = getTimer.time();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return underlyingCache.get(key);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            ctx.stop();</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -<b class="fc">&nbsp;        if (connection != null) {</b>
    -<b class="fc">&nbsp;            connection.close();</b>
    -&nbsp;        }
    +&nbsp;    public void put(Element element) throws IllegalArgumentException, IllegalStateException, CacheException {
    +<b class="fc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            underlyingCache.put(element);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            ctx.stop();</b>
    +<b class="fc">&nbsp;        }</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="fc">&nbsp;        return failures;</b>
    +&nbsp;    public void put(Element element, boolean doNotNotifyCacheReplicators) throws IllegalArgumentException, IllegalStateException, CacheException {
    +<b class="nc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    +&nbsp;        try {
    +<b class="nc">&nbsp;            underlyingCache.put(element, doNotNotifyCacheReplicators);</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            ctx.stop();</b>
    +<b class="nc">&nbsp;        }</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    public String sanitize(String s) {
    -<b class="fc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    +&nbsp;    @Override
    +&nbsp;    public Element putIfAbsent(Element element) throws NullPointerException {
    +<b class="nc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    +&nbsp;        try {
    +<b class="nc">&nbsp;            return underlyingCache.putIfAbsent(element);</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            ctx.stop();</b>
    +<b class="nc">&nbsp;        }</b>
     &nbsp;    }
    -&nbsp;
     &nbsp;}
     </code>
     </pre>
    @@ -287,7 +329,7 @@ <h1>Coverage Summary for Class: GraphiteRabbitMQ (com.codahale.metrics.graphite)
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index.html
    index 301f01f888..5a9f5406f5 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    +com.codahale.metrics.graphite</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    +    <td class="name">com.codahale.metrics.graphite</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    77.8%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (7/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.4%
    +    63.9%
       </span>
       <span class="absValue">
    -    (74/76)
    +    (62/97)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.6%
    +    58%
       </span>
       <span class="absValue">
    -    (217/237)
    +    (215/371)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,104 +99,104 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    64.3%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (9/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    53.4%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (31/58)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    50%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.2%
    +    61.5%
       </span>
       <span class="absValue">
    -    (35/36)
    +    (8/13)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.6%
    +    58.5%
       </span>
       <span class="absValue">
    -    (78/88)
    +    (24/41)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    91.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (126/140)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.2%
    +    66.7%
       </span>
       <span class="absValue">
    -    (20/21)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.8%
    +    66.7%
       </span>
       <span class="absValue">
    -    (79/88)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,18 +207,45 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (4/19)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    15.8%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (15/95)
       </span>
     </td>
       </tr>
    @@ -245,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK.html
    index 73b9dcbbbb..7fdf117af3 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    +com.codahale.metrics.graphite</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    +    <td class="name">com.codahale.metrics.graphite</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    77.8%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (7/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.4%
    +    63.9%
       </span>
       <span class="absValue">
    -    (74/76)
    +    (62/97)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.6%
    +    58%
       </span>
       <span class="absValue">
    -    (217/237)
    +    (215/371)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,104 +99,104 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    64.3%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (9/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    53.4%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (31/58)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    50%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.2%
    +    61.5%
       </span>
       <span class="absValue">
    -    (35/36)
    +    (8/13)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.6%
    +    58.5%
       </span>
       <span class="absValue">
    -    (78/88)
    +    (24/41)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    91.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (126/140)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.2%
    +    66.7%
       </span>
       <span class="absValue">
    -    (20/21)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.8%
    +    66.7%
       </span>
       <span class="absValue">
    -    (79/88)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,18 +207,45 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (4/19)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    15.8%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (15/95)
       </span>
     </td>
       </tr>
    @@ -245,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
    index 5d49023603..699db8c296 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    +com.codahale.metrics.graphite</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    +    <td class="name">com.codahale.metrics.graphite</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    77.8%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (7/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.4%
    +    63.9%
       </span>
       <span class="absValue">
    -    (74/76)
    +    (62/97)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.6%
    +    58%
       </span>
       <span class="absValue">
    -    (217/237)
    +    (215/371)
       </span>
     </td>
       </tr>
    @@ -88,61 +88,61 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    50%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    21.1%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (4/19)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    15.8%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (15/95)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.2%
    +    53.8%
       </span>
       <span class="absValue">
    -    (20/21)
    +    (7/13)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.8%
    +    50%
       </span>
       <span class="absValue">
    -    (79/88)
    +    (17/34)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,50 +153,77 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.2%
    +    91.4%
       </span>
       <span class="absValue">
    -    (35/36)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.6%
    +    90%
       </span>
       <span class="absValue">
    -    (78/88)
    +    (126/140)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,18 +234,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    64.3%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (9/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    53.4%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (31/58)
       </span>
     </td>
       </tr>
    @@ -245,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS.html
    index 5dc8d952b3..6618e42f6a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    +com.codahale.metrics.graphite</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    +    <td class="name">com.codahale.metrics.graphite</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    77.8%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (7/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.4%
    +    63.9%
       </span>
       <span class="absValue">
    -    (74/76)
    +    (62/97)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.6%
    +    58%
       </span>
       <span class="absValue">
    -    (217/237)
    +    (215/371)
       </span>
     </td>
       </tr>
    @@ -88,61 +88,61 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    50%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    61.5%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (8/13)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    58.5%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (24/41)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    50%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.2%
    +    21.1%
       </span>
       <span class="absValue">
    -    (35/36)
    +    (4/19)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.6%
    +    15.8%
       </span>
       <span class="absValue">
    -    (78/88)
    +    (15/95)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,23 +153,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    64.3%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (9/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    53.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (31/58)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -180,23 +180,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.2%
    +    91.4%
       </span>
       <span class="absValue">
    -    (20/21)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.8%
    +    90%
       </span>
       <span class="absValue">
    -    (79/88)
    +    (126/140)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -205,20 +205,47 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
         (1/1)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    50%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (17/34)
       </span>
     </td>
       </tr>
    @@ -245,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
    index e76e18852a..33787111b6 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    +com.codahale.metrics.graphite</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    +    <td class="name">com.codahale.metrics.graphite</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    77.8%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (7/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.4%
    +    63.9%
       </span>
       <span class="absValue">
    -    (74/76)
    +    (62/97)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.6%
    +    58%
       </span>
       <span class="absValue">
    -    (217/237)
    +    (215/371)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,25 +97,52 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
         (1/1)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    66.7%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,23 +153,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.2%
    +    91.4%
       </span>
       <span class="absValue">
    -    (20/21)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.8%
    +    90%
       </span>
       <span class="absValue">
    -    (79/88)
    +    (126/140)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,72 +180,72 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    64.3%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (9/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    53.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (31/58)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    50%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.2%
    +    21.1%
       </span>
       <span class="absValue">
    -    (35/36)
    +    (4/19)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.6%
    +    15.8%
       </span>
       <span class="absValue">
    -    (78/88)
    +    (15/95)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    50%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    61.5%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (8/13)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    58.5%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (24/41)
       </span>
     </td>
       </tr>
    @@ -245,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE.html
    index b2636e6c8b..c5a8aa1363 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    +com.codahale.metrics.graphite</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    +    <td class="name">com.codahale.metrics.graphite</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    77.8%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (7/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.4%
    +    63.9%
       </span>
       <span class="absValue">
    -    (74/76)
    +    (62/97)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.6%
    +    58%
       </span>
       <span class="absValue">
    -    (217/237)
    +    (215/371)
       </span>
     </td>
       </tr>
    @@ -88,61 +88,61 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    50%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.2%
    +    21.1%
       </span>
       <span class="absValue">
    -    (35/36)
    +    (4/19)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.6%
    +    15.8%
       </span>
       <span class="absValue">
    -    (78/88)
    +    (15/95)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.2%
    +    53.8%
       </span>
       <span class="absValue">
    -    (20/21)
    +    (7/13)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.8%
    +    50%
       </span>
       <span class="absValue">
    -    (79/88)
    +    (17/34)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,50 +153,50 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    64.3%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (9/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    53.4%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (31/58)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    50%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    61.5%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (8/13)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    58.5%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (24/41)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,18 +207,45 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/3)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (126/140)
       </span>
     </td>
       </tr>
    @@ -245,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
    index 72dc77e6d4..8f92db35a3 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    +com.codahale.metrics.graphite</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    +    <td class="name">com.codahale.metrics.graphite</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    77.8%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (7/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.4%
    +    63.9%
       </span>
       <span class="absValue">
    -    (74/76)
    +    (62/97)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.6%
    +    58%
       </span>
       <span class="absValue">
    -    (217/237)
    +    (215/371)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    91.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (126/140)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,23 +126,50 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,72 +180,72 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    64.3%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (9/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    53.4%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (31/58)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.2%
    +    53.8%
       </span>
       <span class="absValue">
    -    (20/21)
    +    (7/13)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.8%
    +    50%
       </span>
       <span class="absValue">
    -    (79/88)
    +    (17/34)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    50%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.2%
    +    21.1%
       </span>
       <span class="absValue">
    -    (35/36)
    +    (4/19)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.6%
    +    15.8%
       </span>
       <span class="absValue">
    -    (78/88)
    +    (15/95)
       </span>
     </td>
       </tr>
    @@ -245,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD.html
    index 8e122cad46..70ab2a5d9e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    +com.codahale.metrics.graphite</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    +    <td class="name">com.codahale.metrics.graphite</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    77.8%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (7/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.4%
    +    63.9%
       </span>
       <span class="absValue">
    -    (74/76)
    +    (62/97)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.6%
    +    58%
       </span>
       <span class="absValue">
    -    (217/237)
    +    (215/371)
       </span>
     </td>
       </tr>
    @@ -88,88 +88,88 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    50%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.2%
    +    21.1%
       </span>
       <span class="absValue">
    -    (20/21)
    +    (4/19)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.8%
    +    15.8%
       </span>
       <span class="absValue">
    -    (79/88)
    +    (15/95)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.2%
    +    53.8%
       </span>
       <span class="absValue">
    -    (35/36)
    +    (7/13)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.6%
    +    50%
       </span>
       <span class="absValue">
    -    (78/88)
    +    (17/34)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    50%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    61.5%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (8/13)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    58.5%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (24/41)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -180,23 +180,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    64.3%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (9/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    53.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (31/58)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -205,20 +205,47 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
         (1/1)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    66.7%
    +  </span>
    +  <span class="absValue">
    +    (2/3)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    91.4%
    +  </span>
    +  <span class="absValue">
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    90%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (126/140)
       </span>
     </td>
       </tr>
    @@ -245,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
    index 5c374c8c6b..5c2b7ee3a1 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    +com.codahale.metrics.graphite</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    +    <td class="name">com.codahale.metrics.graphite</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    77.8%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (7/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.4%
    +    63.9%
       </span>
       <span class="absValue">
    -    (74/76)
    +    (62/97)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.6%
    +    58%
       </span>
       <span class="absValue">
    -    (217/237)
    +    (215/371)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    91.4%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    90%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (126/140)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,23 +126,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,72 +153,99 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    64.3%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (9/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    53.4%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (31/58)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    50%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.2%
    +    61.5%
       </span>
       <span class="absValue">
    -    (35/36)
    +    (8/13)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.6%
    +    58.5%
       </span>
       <span class="absValue">
    -    (78/88)
    +    (24/41)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    53.8%
    +  </span>
    +  <span class="absValue">
    +    (7/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (17/34)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.2%
    +    21.1%
       </span>
       <span class="absValue">
    -    (20/21)
    +    (4/19)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.8%
    +    15.8%
       </span>
       <span class="absValue">
    -    (79/88)
    +    (15/95)
       </span>
     </td>
       </tr>
    @@ -245,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
    index 4f9ab46484..dbaac01213 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    +  <title>Coverage Report > com.codahale.metrics.graphite</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    +com.codahale.metrics.graphite</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    +    <td class="name">com.codahale.metrics.graphite</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    77.8%
       </span>
       <span class="absValue">
    -    (8/8)
    +    (7/9)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.4%
    +    63.9%
       </span>
       <span class="absValue">
    -    (74/76)
    +    (62/97)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    91.6%
    +    58%
       </span>
       <span class="absValue">
    -    (217/237)
    +    (215/371)
       </span>
     </td>
       </tr>
    @@ -88,61 +88,61 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    50%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (1/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    21.1%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (4/19)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    15.8%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (15/95)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.2%
    +    53.8%
       </span>
       <span class="absValue">
    -    (20/21)
    +    (7/13)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.8%
    +    50%
       </span>
       <span class="absValue">
    -    (79/88)
    +    (17/34)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -153,50 +153,77 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/3)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    97.2%
    +    91.4%
       </span>
       <span class="absValue">
    -    (35/36)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.6%
    +    90%
       </span>
       <span class="absValue">
    -    (78/88)
    +    (126/140)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (1/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    61.5%
    +  </span>
    +  <span class="absValue">
    +    (8/13)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    58.5%
    +  </span>
    +  <span class="absValue">
    +    (24/41)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,18 +234,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    64.3%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (9/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    53.4%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (31/58)
       </span>
     </td>
       </tr>
    @@ -245,7 +272,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-1.html
    index 6ad0d9ff82..0d08f9f12e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AsyncHealthCheckDecorator</title>
    +  <title>Coverage Report > Graphite</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
     </div>
     
    -<h1>Coverage Summary for Class: AsyncHealthCheckDecorator (com.codahale.metrics.health)</h1>
    +<h1>Coverage Summary for Class: Graphite (com.codahale.metrics.graphite)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -41,7 +41,7 @@ <h1>Coverage Summary for Class: AsyncHealthCheckDecorator (com.codahale.metrics.
     </th>
     </tr>
     <tr>
    -  <td class="name">AsyncHealthCheckDecorator</td>
    +  <td class="name">Graphite</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -52,18 +52,18 @@ <h1>Coverage Summary for Class: AsyncHealthCheckDecorator (com.codahale.metrics.
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    64.3%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (9/14)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    53.4%
       </span>
       <span class="absValue">
    -    (31/31)
    +    (31/58)
       </span>
     </td>
     </tr>
    @@ -75,85 +75,206 @@ <h1>Coverage Summary for Class: AsyncHealthCheckDecorator (com.codahale.metrics.
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
     &nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.health.annotation.Async;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
     &nbsp;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.ScheduledFuture;
    +&nbsp;import javax.net.SocketFactory;
    +&nbsp;import java.io.BufferedWriter;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStreamWriter;
    +&nbsp;import java.io.Writer;
    +&nbsp;import java.net.InetSocketAddress;
    +&nbsp;import java.net.Socket;
    +&nbsp;import java.net.UnknownHostException;
    +&nbsp;import java.nio.charset.Charset;
    +&nbsp;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    +&nbsp;import static java.util.Objects.requireNonNull;
     &nbsp;
     &nbsp;/**
    -&nbsp; * A health check decorator to manage asynchronous executions.
    +&nbsp; * A client to a Carbon server via TCP.
     &nbsp; */
    -&nbsp;public class AsyncHealthCheckDecorator extends HealthCheck implements Runnable {
    -&nbsp;    private static final String NO_RESULT_YET_MESSAGE = &quot;Waiting for first asynchronous check result.&quot;;
    -&nbsp;    private final HealthCheck healthCheck;
    -&nbsp;    private final ScheduledFuture&lt;?&gt; future;
    -&nbsp;    private final long healthyTtl;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private volatile Result result;
    -&nbsp;
    -<b class="fc">&nbsp;    AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService, Clock clock) {</b>
    -<b class="fc">&nbsp;        check(healthCheck != null, &quot;healthCheck cannot be null&quot;);</b>
    -<b class="fc">&nbsp;        check(executorService != null, &quot;executorService cannot be null&quot;);</b>
    -<b class="fc">&nbsp;        Async async = healthCheck.getClass().getAnnotation(Async.class);</b>
    -<b class="fc">&nbsp;        check(async != null, &quot;healthCheck must contain Async annotation&quot;);</b>
    -<b class="fc">&nbsp;        check(async.period() &gt; 0, &quot;period cannot be less than or equal to zero&quot;);</b>
    -<b class="fc">&nbsp;        check(async.initialDelay() &gt;= 0, &quot;initialDelay cannot be less than zero&quot;);</b>
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.healthCheck = healthCheck;</b>
    -<b class="fc">&nbsp;        this.healthyTtl = async.unit().toMillis(async.healthyTtl() &lt;= 0 ? 2 * async.period() : async.healthyTtl());</b>
    -<b class="fc">&nbsp;        result = Async.InitialState.HEALTHY.equals(async.initialState()) ? Result.healthy(NO_RESULT_YET_MESSAGE) :</b>
    -<b class="fc">&nbsp;                Result.unhealthy(NO_RESULT_YET_MESSAGE);</b>
    -<b class="fc">&nbsp;        if (Async.ScheduleType.FIXED_RATE.equals(async.scheduleType())) {</b>
    -<b class="fc">&nbsp;            future = executorService.scheduleAtFixedRate(this, async.initialDelay(), async.period(), async.unit());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            future = executorService.scheduleWithFixedDelay(this, async.initialDelay(), async.period(), async.unit());</b>
    +&nbsp;public class Graphite implements GraphiteSender {
    +&nbsp;    // this may be optimistic about Carbon/Graphite
    +&nbsp;
    +&nbsp;    private final String hostname;
    +&nbsp;    private final int port;
    +&nbsp;    private final InetSocketAddress address;
    +&nbsp;    private final SocketFactory socketFactory;
    +&nbsp;    private final Charset charset;
    +&nbsp;
    +&nbsp;    private Socket socket;
    +&nbsp;    private Writer writer;
    +&nbsp;    private int failures;
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(Graphite.class);</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address using the default
    +&nbsp;     * {@link SocketFactory}.
    +&nbsp;     *
    +&nbsp;     * @param hostname The hostname of the Carbon server
    +&nbsp;     * @param port     The port of the Carbon server
    +&nbsp;     */
    +&nbsp;    public Graphite(String hostname, int port) {
    +<b class="nc">&nbsp;        this(hostname, port, SocketFactory.getDefault());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory.
    +&nbsp;     *
    +&nbsp;     * @param hostname      The hostname of the Carbon server
    +&nbsp;     * @param port          The port of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     */
    +&nbsp;    public Graphite(String hostname, int port, SocketFactory socketFactory) {
    +<b class="fc">&nbsp;        this(hostname, port, socketFactory, UTF_8);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory using the given
    +&nbsp;     * character set.
    +&nbsp;     *
    +&nbsp;     * @param hostname      The hostname of the Carbon server
    +&nbsp;     * @param port          The port of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     * @param charset       the character set used by the server
    +&nbsp;     */
    +<b class="fc">&nbsp;    public Graphite(String hostname, int port, SocketFactory socketFactory, Charset charset) {</b>
    +<b class="fc">&nbsp;        if (hostname == null || hostname.isEmpty()) {</b>
    +<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;hostname must not be null or empty&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (port &lt; 0 || port &gt; 65535) {</b>
    +<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;port must be a valid IP port (0-65535)&quot;);</b>
     &nbsp;        }
     &nbsp;
    +<b class="fc">&nbsp;        this.hostname = hostname;</b>
    +<b class="fc">&nbsp;        this.port = port;</b>
    +<b class="fc">&nbsp;        this.address = null;</b>
    +<b class="fc">&nbsp;        this.socketFactory = requireNonNull(socketFactory, &quot;socketFactory must not be null&quot;);</b>
    +<b class="fc">&nbsp;        this.charset = requireNonNull(charset, &quot;charset must not be null&quot;);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService) {
    -<b class="fc">&nbsp;        this(healthCheck, executorService, Clock.defaultClock());</b>
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address using the default
    +&nbsp;     * {@link SocketFactory}.
    +&nbsp;     *
    +&nbsp;     * @param address the address of the Carbon server
    +&nbsp;     */
    +&nbsp;    public Graphite(InetSocketAddress address) {
    +<b class="nc">&nbsp;        this(address, SocketFactory.getDefault());</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void run() {
    -<b class="fc">&nbsp;        result = healthCheck.execute();</b>
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory.
    +&nbsp;     *
    +&nbsp;     * @param address       the address of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     */
    +&nbsp;    public Graphite(InetSocketAddress address, SocketFactory socketFactory) {
    +<b class="fc">&nbsp;        this(address, socketFactory, UTF_8);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory using the given
    +&nbsp;     * character set.
    +&nbsp;     *
    +&nbsp;     * @param address       the address of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     * @param charset       the character set used by the server
    +&nbsp;     */
    +<b class="fc">&nbsp;    public Graphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset) {</b>
    +<b class="fc">&nbsp;        this.hostname = null;</b>
    +<b class="fc">&nbsp;        this.port = -1;</b>
    +<b class="fc">&nbsp;        this.address = requireNonNull(address, &quot;address must not be null&quot;);</b>
    +<b class="fc">&nbsp;        this.socketFactory = requireNonNull(socketFactory, &quot;socketFactory must not be null&quot;);</b>
    +<b class="fc">&nbsp;        this.charset = requireNonNull(charset, &quot;charset must not be null&quot;);</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    @Override
    -&nbsp;    protected Result check() throws Exception {
    -<b class="fc">&nbsp;        long expiration = clock.getTime() - result.getTime() - healthyTtl;</b>
    -<b class="fc">&nbsp;        if (expiration &gt; 0) {</b>
    -<b class="fc">&nbsp;            return Result.builder()</b>
    -<b class="fc">&nbsp;                    .unhealthy()</b>
    -<b class="fc">&nbsp;                    .usingClock(clock)</b>
    -<b class="fc">&nbsp;                    .withMessage(&quot;Result was %s but it expired %d milliseconds ago&quot;,</b>
    -<b class="fc">&nbsp;                            result.isHealthy() ? &quot;healthy&quot; : &quot;unhealthy&quot;,</b>
    -<b class="fc">&nbsp;                            expiration)</b>
    -<b class="fc">&nbsp;                    .build();</b>
    +&nbsp;    public void connect() throws IllegalStateException, IOException {
    +<b class="fc">&nbsp;        if (isConnected()) {</b>
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
     &nbsp;        }
    +<b class="fc">&nbsp;        InetSocketAddress address = this.address;</b>
    +&nbsp;        // the previous dns retry logic did not work, as address.getAddress would always return the cached value
    +&nbsp;        // this version of the simplified logic will always cause a dns request if hostname has been supplied.
    +&nbsp;        // InetAddress.getByName forces the dns lookup
    +&nbsp;        // if an InetSocketAddress was supplied at create time that will take precedence.
    +<b class="fc">&nbsp;        if (address == null || address.getHostName() == null &amp;&amp; hostname != null) {</b>
    +<b class="fc">&nbsp;            address = new InetSocketAddress(hostname, port);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        if (address.getAddress() == null) {</b>
    +<b class="fc">&nbsp;            throw new UnknownHostException(address.getHostName());</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="nc">&nbsp;        this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());</b>
    +<b class="nc">&nbsp;        this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));</b>
    +&nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;        return result;</b>
    +&nbsp;    @Override
    +&nbsp;    public boolean isConnected() {
    +<b class="fc">&nbsp;        return socket != null &amp;&amp; socket.isConnected() &amp;&amp; !socket.isClosed();</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    boolean tearDown() {
    -<b class="fc">&nbsp;        return future.cancel(true);</b>
    +&nbsp;    @Override
    +&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    +&nbsp;        try {
    +<b class="nc">&nbsp;            writer.write(sanitize(name));</b>
    +<b class="nc">&nbsp;            writer.write(&#39; &#39;);</b>
    +<b class="nc">&nbsp;            writer.write(sanitize(value));</b>
    +<b class="nc">&nbsp;            writer.write(&#39; &#39;);</b>
    +<b class="nc">&nbsp;            writer.write(Long.toString(timestamp));</b>
    +<b class="nc">&nbsp;            writer.write(&#39;\n&#39;);</b>
    +<b class="nc">&nbsp;            this.failures = 0;</b>
    +<b class="nc">&nbsp;        } catch (IOException e) {</b>
    +<b class="nc">&nbsp;            failures++;</b>
    +<b class="nc">&nbsp;            throw e;</b>
    +<b class="nc">&nbsp;        }</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    public HealthCheck getHealthCheck() {
    -<b class="fc">&nbsp;        return healthCheck;</b>
    +&nbsp;    @Override
    +&nbsp;    public int getFailures() {
    +<b class="fc">&nbsp;        return failures;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    private static void check(boolean expression, String message) {
    -<b class="fc">&nbsp;        if (!expression) {</b>
    -<b class="fc">&nbsp;            throw new IllegalArgumentException(message);</b>
    +&nbsp;    @Override
    +&nbsp;    public void flush() throws IOException {
    +<b class="nc">&nbsp;        if (writer != null) {</b>
    +<b class="nc">&nbsp;            writer.flush();</b>
     &nbsp;        }
     &nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void close() throws IOException {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            if (writer != null) {</b>
    +<b class="nc">&nbsp;                writer.close();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    +<b class="nc">&nbsp;            LOGGER.debug(&quot;Error closing writer&quot;, ex);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            this.writer = null;</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            if (socket != null) {</b>
    +<b class="nc">&nbsp;                socket.close();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    +<b class="nc">&nbsp;            LOGGER.debug(&quot;Error closing socket&quot;, ex);</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            this.socket = null;</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String sanitize(String s) {
    +<b class="nc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    +&nbsp;    }
     &nbsp;}
     </code>
     </pre>
    @@ -178,7 +299,7 @@ <h1>Coverage Summary for Class: AsyncHealthCheckDecorator (com.codahale.metrics.
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-2.html
    index 6c7c85d99a..04988c3098 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-2.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheck</title>
    +  <title>Coverage Report > GraphiteRabbitMQ</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
     </div>
     
    -<h1>Coverage Summary for Class: HealthCheck (com.codahale.metrics.health)</h1>
    +<h1>Coverage Summary for Class: GraphiteRabbitMQ (com.codahale.metrics.graphite)</h1>
     
     <table class="coverageStats">
     
    @@ -38,71 +38,40 @@ <h1>Coverage Summary for Class: HealthCheck (com.codahale.metrics.health)</h1>
     </th>
     </tr>
     <tr>
    -  <td class="name">HealthCheck</td>
    +  <td class="name">GraphiteRabbitMQ</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    72.7%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (8/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    63.2%
       </span>
       <span class="absValue">
    -    (9/9)
    +    (24/38)
       </span>
     </td>
     </tr>
       <tr>
    -    <td class="name">HealthCheck$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$MockitoMock$sT3Zwhu9</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$MockitoMock$sT3Zwhu9$auxiliary$mjBkPLSs</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$MockitoMock$sT3Zwhu9$auxiliary$y7yuGcJt</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$Result</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    +    <td class="name">GraphiteRabbitMQ$1</td>
     <td class="coverageStat">
       <span class="percent">
    -    84.5%
    +    0%
       </span>
       <span class="absValue">
    -    (49/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$ResultBuilder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    +    (0/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.2%
    +    0%
       </span>
       <span class="absValue">
    -    (20/21)
    +    (0/3)
       </span>
     </td>
       </tr>
    @@ -110,18 +79,18 @@ <h1>Coverage Summary for Class: HealthCheck (com.codahale.metrics.health)</h1>
       <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    97.2%
    +    61.5%
       </span>
       <span class="absValue">
    -    (35/36)
    +    (8/13)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.6%
    +    58.5%
       </span>
       <span class="absValue">
    -    (78/88)
    +    (24/41)
       </span>
     </td>
     </tr>
    @@ -132,390 +101,168 @@ <h1>Coverage Summary for Class: HealthCheck (com.codahale.metrics.health)</h1>
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import com.rabbitmq.client.Channel;
    +&nbsp;import com.rabbitmq.client.Connection;
    +&nbsp;import com.rabbitmq.client.ConnectionFactory;
    +&nbsp;import com.rabbitmq.client.DefaultSocketConfigurator;
     &nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.net.Socket;
    +&nbsp;import java.util.concurrent.TimeoutException;
     &nbsp;
    -&nbsp;import java.time.Instant;
    -&nbsp;import java.time.ZoneId;
    -&nbsp;import java.time.ZonedDateTime;
    -&nbsp;import java.time.format.DateTimeFormatter;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.LinkedHashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
     &nbsp;
     &nbsp;/**
    -&nbsp; * A health check for a component of your application.
    +&nbsp; * A rabbit-mq client to a Carbon server.
     &nbsp; */
    -<b class="fc">&nbsp;public abstract class HealthCheck {</b>
    +&nbsp;public class GraphiteRabbitMQ implements GraphiteSender {
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * The result of a {@link HealthCheck} being run. It can be healthy (with an optional message and optional details)
    -&nbsp;     * or unhealthy (with either an error message or a thrown exception and optional details).
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Result {</b>
    -<b class="fc">&nbsp;        private static final DateTimeFormatter DATE_FORMAT_PATTERN =</b>
    -<b class="fc">&nbsp;                DateTimeFormatter.ofPattern(&quot;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSSXXX&quot;);</b>
    -&nbsp;        private static final int PRIME = 31;
    +<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS = 500;</b>
    +<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_SOCKET_TIMEOUT_MS = 5000;</b>
    +<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC = 10;</b>
     &nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a healthy {@link Result} with no additional message.
    -&nbsp;         *
    -&nbsp;         * @return a healthy {@link Result} with no additional message
    -&nbsp;         */
    -&nbsp;        public static Result healthy() {
    -<b class="fc">&nbsp;            return new Result(true, null, null);</b>
    -&nbsp;        }
    +&nbsp;    private ConnectionFactory connectionFactory;
    +&nbsp;    private Connection connection;
    +&nbsp;    private Channel channel;
    +&nbsp;    private String exchange;
     &nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a healthy {@link Result} with an additional message.
    -&nbsp;         *
    -&nbsp;         * @param message an informative message
    -&nbsp;         * @return a healthy {@link Result} with an additional message
    -&nbsp;         */
    -&nbsp;        public static Result healthy(String message) {
    -<b class="fc">&nbsp;            return new Result(true, message, null);</b>
    -&nbsp;        }
    +&nbsp;    private int failures;
     &nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a healthy {@link Result} with a formatted message.
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    -&nbsp;         *
    -&nbsp;         * @param message a message format\\
    -&nbsp;         * @param args    the arguments apply to the message format
    -&nbsp;         * @return a healthy {@link Result} with an additional message
    -&nbsp;         * @see String#format(String, Object...)
    -&nbsp;         */
    -&nbsp;        public static Result healthy(String message, Object... args) {
    -<b class="fc">&nbsp;            return healthy(String.format(message, args));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns an unhealthy {@link Result} with the given message.
    -&nbsp;         *
    -&nbsp;         * @param message an informative message describing how the health check failed
    -&nbsp;         * @return an unhealthy {@link Result} with the given message
    -&nbsp;         */
    -&nbsp;        public static Result unhealthy(String message) {
    -<b class="fc">&nbsp;            return new Result(false, message, null);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns an unhealthy {@link Result} with a formatted message.
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    -&nbsp;         *
    -&nbsp;         * @param message a message format
    -&nbsp;         * @param args    the arguments apply to the message format
    -&nbsp;         * @return an unhealthy {@link Result} with an additional message
    -&nbsp;         * @see String#format(String, Object...)
    -&nbsp;         */
    -&nbsp;        public static Result unhealthy(String message, Object... args) {
    -<b class="fc">&nbsp;            return unhealthy(String.format(message, args));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns an unhealthy {@link Result} with the given error.
    -&nbsp;         *
    -&nbsp;         * @param error an exception thrown during the health check
    -&nbsp;         * @return an unhealthy {@link Result} with the given {@code error}
    -&nbsp;         */
    -&nbsp;        public static Result unhealthy(Throwable error) {
    -<b class="fc">&nbsp;            return new Result(false, error.getMessage(), error);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a new {@link ResultBuilder}
    -&nbsp;         *
    -&nbsp;         * @return the {@link ResultBuilder}
    -&nbsp;         */
    -&nbsp;        public static ResultBuilder builder() {
    -<b class="fc">&nbsp;            return new ResultBuilder();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private final boolean healthy;
    -&nbsp;        private final String message;
    -&nbsp;        private final Throwable error;
    -&nbsp;        private final Map&lt;String, Object&gt; details;
    -&nbsp;        private final long time;
    -&nbsp;
    -&nbsp;        private long duration; // Calculated field
    -&nbsp;
    -&nbsp;        private Result(boolean isHealthy, String message, Throwable error) {
    -<b class="fc">&nbsp;            this(isHealthy, message, error, null, Clock.defaultClock());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Result(ResultBuilder builder) {
    -<b class="fc">&nbsp;            this(builder.healthy, builder.message, builder.error, builder.details, builder.clock);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        private Result(boolean isHealthy, String message, Throwable error, Map&lt;String, Object&gt; details, Clock clock) {</b>
    -<b class="fc">&nbsp;            this.healthy = isHealthy;</b>
    -<b class="fc">&nbsp;            this.message = message;</b>
    -<b class="fc">&nbsp;            this.error = error;</b>
    -<b class="fc">&nbsp;            this.details = details == null ? null : Collections.unmodifiableMap(details);</b>
    -<b class="fc">&nbsp;            this.time = clock.getTime();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns {@code true} if the result indicates the component is healthy; {@code false}
    -&nbsp;         * otherwise.
    -&nbsp;         *
    -&nbsp;         * @return {@code true} if the result indicates the component is healthy
    -&nbsp;         */
    -&nbsp;        public boolean isHealthy() {
    -<b class="fc">&nbsp;            return healthy;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns any additional message for the result, or {@code null} if the result has no
    -&nbsp;         * message.
    -&nbsp;         *
    -&nbsp;         * @return any additional message for the result, or {@code null}
    -&nbsp;         */
    -&nbsp;        public String getMessage() {
    -<b class="fc">&nbsp;            return message;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns any exception for the result, or {@code null} if the result has no exception.
    -&nbsp;         *
    -&nbsp;         * @return any exception for the result, or {@code null}
    -&nbsp;         */
    -&nbsp;        public Throwable getError() {
    -<b class="fc">&nbsp;            return error;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the timestamp when the result was created as a formatted String.
    -&nbsp;         *
    -&nbsp;         * @return a formatted timestamp
    -&nbsp;         */
    -&nbsp;        public String getTimestamp() {
    -<b class="fc">&nbsp;            Instant currentInstant = Instant.ofEpochMilli(time);</b>
    -<b class="fc">&nbsp;            ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(currentInstant, ZoneId.systemDefault());</b>
    -<b class="fc">&nbsp;            return DATE_FORMAT_PATTERN.format(zonedDateTime);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the time when the result was created, in milliseconds since Epoch
    -&nbsp;         *
    -&nbsp;         * @return the time when the result was created
    -&nbsp;         */
    -&nbsp;        public long getTime() {
    -<b class="fc">&nbsp;            return time;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the duration in milliseconds that the healthcheck took to run
    -&nbsp;         *
    -&nbsp;         * @return the duration
    -&nbsp;         */
    -&nbsp;        public long getDuration() {
    -<b class="fc">&nbsp;            return duration;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Sets the duration in milliseconds. This will indicate the time it took to run the individual healthcheck
    -&nbsp;         *
    -&nbsp;         * @param duration The duration in milliseconds
    -&nbsp;         */
    -&nbsp;        public void setDuration(long duration) {
    -<b class="fc">&nbsp;            this.duration = duration;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Map&lt;String, Object&gt; getDetails() {
    -<b class="fc">&nbsp;            return details;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="fc">&nbsp;            if (this == o) {</b>
    -<b class="fc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            final Result result = (Result) o;</b>
    -<b class="fc">&nbsp;            return healthy == result.healthy &amp;&amp;</b>
    -<b class="nc">&nbsp;                    !(error != null ? !error.equals(result.error) : result.error != null) &amp;&amp;</b>
    -<b class="fc">&nbsp;                    !(message != null ? !message.equals(result.message) : result.message != null) &amp;&amp;</b>
    -&nbsp;                    time == result.time;
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="nc">&nbsp;            int result = healthy ? 1 : 0;</b>
    -<b class="nc">&nbsp;            result = PRIME * result + (message != null ? message.hashCode() : 0);</b>
    -<b class="nc">&nbsp;            result = PRIME * result + (error != null ? error.hashCode() : 0);</b>
    -<b class="nc">&nbsp;            result = PRIME * result + (Long.hashCode(time));</b>
    -<b class="nc">&nbsp;            return result;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String toString() {
    -<b class="fc">&nbsp;            final StringBuilder builder = new StringBuilder(&quot;Result{isHealthy=&quot;);</b>
    -<b class="fc">&nbsp;            builder.append(healthy);</b>
    -<b class="fc">&nbsp;            if (message != null) {</b>
    -<b class="nc">&nbsp;                builder.append(&quot;, message=&quot;).append(message);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (error != null) {</b>
    -<b class="nc">&nbsp;                builder.append(&quot;, error=&quot;).append(error);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            builder.append(&quot;, duration=&quot;).append(duration);</b>
    -<b class="fc">&nbsp;            builder.append(&quot;, timestamp=&quot;).append(getTimestamp());</b>
    -<b class="fc">&nbsp;            if (details != null) {</b>
    -<b class="fc">&nbsp;                for (Map.Entry&lt;String, Object&gt; e : details.entrySet()) {</b>
    -<b class="fc">&nbsp;                    builder.append(&quot;, &quot;);</b>
    -<b class="fc">&nbsp;                    builder.append(e.getKey())</b>
    -<b class="fc">&nbsp;                            .append(&quot;=&quot;)</b>
    -<b class="fc">&nbsp;                            .append(String.valueOf(e.getValue()));</b>
    -<b class="fc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            builder.append(&#39;}&#39;);</b>
    -<b class="fc">&nbsp;            return builder.toString();</b>
    -&nbsp;        }
    +&nbsp;    /**
    +&nbsp;     * Creates a new client with a given a {@link com.rabbitmq.client.ConnectionFactory} and an amqp exchange
    +&nbsp;     *
    +&nbsp;     * @param connectionFactory the {@link com.rabbitmq.client.ConnectionFactory} used to establish connection and publish to graphite server
    +&nbsp;     * @param exchange          the amqp exchange
    +&nbsp;     */
    +<b class="fc">&nbsp;    public GraphiteRabbitMQ(final ConnectionFactory connectionFactory, final String exchange) {</b>
    +<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    +<b class="fc">&nbsp;        this.exchange = exchange;</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * This a convenient builder for an {@link HealthCheck.Result}. It can be health (with optional message and detail)
    -&nbsp;     * or unhealthy (with optional message, error and detail)
    +&nbsp;     * Creates a new client given connection details
    +&nbsp;     *
    +&nbsp;     * @param rabbitHost     the rabbitmq server host
    +&nbsp;     * @param rabbitPort     the rabbitmq server port
    +&nbsp;     * @param rabbitUsername the rabbitmq server username
    +&nbsp;     * @param rabbitPassword the rabbitmq server password
    +&nbsp;     * @param exchange       the amqp exchange
     &nbsp;     */
    -<b class="fc">&nbsp;    public static class ResultBuilder {</b>
    -&nbsp;        private boolean healthy;
    -&nbsp;        private String message;
    -&nbsp;        private Throwable error;
    -&nbsp;        private Map&lt;String, Object&gt; details;
    -&nbsp;        private Clock clock;
    -&nbsp;
    -<b class="fc">&nbsp;        protected ResultBuilder() {</b>
    -<b class="fc">&nbsp;            this.healthy = true;</b>
    -<b class="fc">&nbsp;            this.details = new LinkedHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure an healthy result
    -&nbsp;         *
    -&nbsp;         * @return this builder with healthy status
    -&nbsp;         */
    -&nbsp;        public ResultBuilder healthy() {
    -<b class="fc">&nbsp;            this.healthy = true;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    +&nbsp;    public GraphiteRabbitMQ(
    +&nbsp;            final String rabbitHost,
    +&nbsp;            final Integer rabbitPort,
    +&nbsp;            final String rabbitUsername,
    +&nbsp;            final String rabbitPassword,
    +&nbsp;            final String exchange) {
    +&nbsp;
    +<b class="nc">&nbsp;        this(rabbitHost,</b>
    +&nbsp;                rabbitPort,
    +&nbsp;                rabbitUsername,
    +&nbsp;                rabbitPassword,
    +&nbsp;                exchange,
    +&nbsp;                DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS,
    +&nbsp;                DEFAULT_RABBIT_SOCKET_TIMEOUT_MS,
    +&nbsp;                DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC);
    +&nbsp;    }
     &nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure an unhealthy result
    -&nbsp;         *
    -&nbsp;         * @return this builder with unhealthy status
    -&nbsp;         */
    -&nbsp;        public ResultBuilder unhealthy() {
    -<b class="fc">&nbsp;            this.healthy = false;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    +&nbsp;    /**
    +&nbsp;     * Creates a new client given connection details
    +&nbsp;     *
    +&nbsp;     * @param rabbitHost                        the rabbitmq server host
    +&nbsp;     * @param rabbitPort                        the rabbitmq server port
    +&nbsp;     * @param rabbitUsername                    the rabbitmq server username
    +&nbsp;     * @param rabbitPassword                    the rabbitmq server password
    +&nbsp;     * @param exchange                          the amqp exchange
    +&nbsp;     * @param rabbitConnectionTimeoutMS         the connection timeout in milliseconds
    +&nbsp;     * @param rabbitSocketTimeoutMS             the socket timeout in milliseconds
    +&nbsp;     * @param rabbitRequestedHeartbeatInSeconds the hearthbeat in seconds
    +&nbsp;     */
    +&nbsp;    public GraphiteRabbitMQ(
    +&nbsp;            final String rabbitHost,
    +&nbsp;            final Integer rabbitPort,
    +&nbsp;            final String rabbitUsername,
    +&nbsp;            final String rabbitPassword,
    +&nbsp;            final String exchange,
    +&nbsp;            final Integer rabbitConnectionTimeoutMS,
    +&nbsp;            final Integer rabbitSocketTimeoutMS,
    +<b class="nc">&nbsp;            final Integer rabbitRequestedHeartbeatInSeconds) {</b>
    +&nbsp;
    +<b class="nc">&nbsp;        this.exchange = exchange;</b>
    +&nbsp;
    +<b class="nc">&nbsp;        this.connectionFactory = new ConnectionFactory();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        connectionFactory.setSocketConfigurator(new DefaultSocketConfigurator() {</b>
    +&nbsp;            @Override
    +&nbsp;            public void configure(Socket socket) throws IOException {
    +<b class="nc">&nbsp;                super.configure(socket);</b>
    +<b class="nc">&nbsp;                socket.setSoTimeout(rabbitSocketTimeoutMS);</b>
    +&nbsp;            }
    +&nbsp;        });
    +&nbsp;
    +<b class="nc">&nbsp;        connectionFactory.setConnectionTimeout(rabbitConnectionTimeoutMS);</b>
    +<b class="nc">&nbsp;        connectionFactory.setRequestedHeartbeat(rabbitRequestedHeartbeatInSeconds);</b>
    +<b class="nc">&nbsp;        connectionFactory.setHost(rabbitHost);</b>
    +<b class="nc">&nbsp;        connectionFactory.setPort(rabbitPort);</b>
    +<b class="nc">&nbsp;        connectionFactory.setUsername(rabbitUsername);</b>
    +<b class="nc">&nbsp;        connectionFactory.setPassword(rabbitPassword);</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure an unhealthy result with an {@code error}
    -&nbsp;         *
    -&nbsp;         * @param error the error
    -&nbsp;         * @return this builder with the given error
    -&nbsp;         */
    -&nbsp;        public ResultBuilder unhealthy(Throwable error) {
    -<b class="fc">&nbsp;            this.error = error;</b>
    -<b class="fc">&nbsp;            return this.unhealthy().withMessage(error.getMessage());</b>
    +&nbsp;    @Override
    +&nbsp;    public void connect() throws IllegalStateException, IOException {
    +<b class="fc">&nbsp;        if (isConnected()) {</b>
    +<b class="fc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
     &nbsp;        }
     &nbsp;
    -&nbsp;        /**
    -&nbsp;         * Set an optional message
    -&nbsp;         *
    -&nbsp;         * @param message an informative message
    -&nbsp;         * @return this builder with the given {@code message}
    -&nbsp;         */
    -&nbsp;        public ResultBuilder withMessage(String message) {
    -<b class="fc">&nbsp;            this.message = message;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    +&nbsp;        try {
    +<b class="fc">&nbsp;            connection = connectionFactory.newConnection();</b>
    +<b class="nc">&nbsp;        } catch (TimeoutException e) {</b>
    +<b class="nc">&nbsp;            throw new IllegalStateException(e);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        channel = connection.createChannel();</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;        /**
    -&nbsp;         * Set an optional formatted message
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    -&nbsp;         *
    -&nbsp;         * @param message a message format
    -&nbsp;         * @param args    the arguments apply to the message format
    -&nbsp;         * @return this builder with the given formatted {@code message}
    -&nbsp;         * @see String#format(String, Object...)
    -&nbsp;         */
    -&nbsp;        public ResultBuilder withMessage(String message, Object... args) {
    -<b class="fc">&nbsp;            return withMessage(String.format(message, args));</b>
    -&nbsp;        }
    +&nbsp;    @Override
    +&nbsp;    public boolean isConnected() {
    +<b class="fc">&nbsp;        return connection != null &amp;&amp; connection.isOpen();</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;        /**
    -&nbsp;         * Add an optional detail
    -&nbsp;         *
    -&nbsp;         * @param key  a key for this detail
    -&nbsp;         * @param data an object representing the detail data
    -&nbsp;         * @return this builder with the given detail added
    -&nbsp;         */
    -&nbsp;        public ResultBuilder withDetail(String key, Object data) {
    -<b class="fc">&nbsp;            if (this.details == null) {</b>
    -<b class="nc">&nbsp;                this.details = new LinkedHashMap&lt;&gt;();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            this.details.put(key, data);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    +&nbsp;    @Override
    +&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            final String sanitizedName = sanitize(name);</b>
    +<b class="fc">&nbsp;            final String sanitizedValue = sanitize(value);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            final String message = sanitizedName + &#39; &#39; + sanitizedValue + &#39; &#39; + Long.toString(timestamp) + &#39;\n&#39;;</b>
    +<b class="fc">&nbsp;            channel.basicPublish(exchange, sanitizedName, null, message.getBytes(UTF_8));</b>
    +<b class="fc">&nbsp;        } catch (IOException e) {</b>
    +<b class="fc">&nbsp;            failures++;</b>
    +<b class="fc">&nbsp;            throw e;</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure this {@link ResultBuilder} to use the given {@code clock} instead of the default clock.
    -&nbsp;         * If not specified, the default clock is {@link Clock#defaultClock()}.
    -&nbsp;         *
    -&nbsp;         * @param clock the {@link Clock} to use when generating the health check timestamp (useful for unit testing)
    -&nbsp;         * @return this builder configured to use the given {@code clock}
    -&nbsp;         */
    -&nbsp;        public ResultBuilder usingClock(Clock clock) {
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    +&nbsp;    @Override
    +&nbsp;    public void flush() throws IOException {
    +&nbsp;        // Nothing to do
    +<b class="nc">&nbsp;    }</b>
     &nbsp;
    -&nbsp;        public Result build() {
    -<b class="fc">&nbsp;            return new Result(this);</b>
    +&nbsp;    @Override
    +&nbsp;    public void close() throws IOException {
    +<b class="fc">&nbsp;        if (connection != null) {</b>
    +<b class="fc">&nbsp;            connection.close();</b>
     &nbsp;        }
     &nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Perform a check of the application component.
    -&nbsp;     *
    -&nbsp;     * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
    -&nbsp;     * Result} with a descriptive error message or exception
    -&nbsp;     * @throws Exception if there is an unhandled error during the health check; this will result in
    -&nbsp;     *                   a failed health check
    -&nbsp;     */
    -&nbsp;    protected abstract Result check() throws Exception;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Executes the health check, catching and handling any exceptions raised by {@link #check()}.
    -&nbsp;     *
    -&nbsp;     * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
    -&nbsp;     * Result} with a descriptive error message or exception
    -&nbsp;     */
    -&nbsp;    public Result execute() {
    -<b class="fc">&nbsp;        long start = clock().getTick();</b>
    -&nbsp;        Result result;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            result = check();</b>
    -<b class="fc">&nbsp;        } catch (Exception e) {</b>
    -<b class="fc">&nbsp;            result = Result.unhealthy(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        result.setDuration(TimeUnit.MILLISECONDS.convert(clock().getTick() - start, TimeUnit.NANOSECONDS));</b>
    -<b class="fc">&nbsp;        return result;</b>
    +&nbsp;    @Override
    +&nbsp;    public int getFailures() {
    +<b class="fc">&nbsp;        return failures;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    protected Clock clock() {
    -<b class="fc">&nbsp;        return Clock.defaultClock();</b>
    +&nbsp;    public String sanitize(String s) {
    +<b class="fc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
     &nbsp;    }
    +&nbsp;
     &nbsp;}
     </code>
     </pre>
    @@ -540,7 +287,7 @@ <h1>Coverage Summary for Class: HealthCheck (com.codahale.metrics.health)</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-3.html
    index d5ca130822..eb7f7dffc4 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-3.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-3.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckFilter</title>
    +  <title>Coverage Report > GraphiteReporter</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,19 +19,16 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
     </div>
     
    -<h1>Coverage Summary for Class: HealthCheckFilter (com.codahale.metrics.health)</h1>
    +<h1>Coverage Summary for Class: GraphiteReporter (com.codahale.metrics.graphite)</h1>
     
     <table class="coverageStats">
    +
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
     ">
       Method, %
     </th>
    @@ -41,33 +38,65 @@ <h1>Coverage Summary for Class: HealthCheckFilter (com.codahale.metrics.health)<
     </th>
     </tr>
     <tr>
    -  <td class="name">HealthCheckFilter</td>
    +  <td class="name">GraphiteReporter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90.5%
    +  </span>
    +  <span class="absValue">
    +    (95/105)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">GraphiteReporter$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">GraphiteReporter$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (12/14)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    88.6%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (31/35)
       </span>
     </td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    91.4%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (32/35)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (126/140)
       </span>
     </td>
     </tr>
    -
     </table>
     
     <br/>
    @@ -75,26 +104,527 @@ <h1>Coverage Summary for Class: HealthCheckFilter (com.codahale.metrics.health)<
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.Counter;
    +&nbsp;import com.codahale.metrics.Gauge;
    +&nbsp;import com.codahale.metrics.Histogram;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.Metered;
    +&nbsp;import com.codahale.metrics.MetricAttribute;
    +&nbsp;import com.codahale.metrics.MetricFilter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.ScheduledReporter;
    +&nbsp;import com.codahale.metrics.Snapshot;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.function.DoubleFunction;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    +&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
     &nbsp;
     &nbsp;/**
    -&nbsp; * A filter used to determine whether or not a health check should be reported.
    +&nbsp; * A reporter which publishes metric values to a Graphite server.
    +&nbsp; *
    +&nbsp; * @see &lt;a href=&quot;http://graphite.wikidot.com/&quot;&gt;Graphite - Scalable Realtime Graphing&lt;/a&gt;
     &nbsp; */
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface HealthCheckFilter {
    +<b class="fc">&nbsp;public class GraphiteReporter extends ScheduledReporter {</b>
    +&nbsp;    /**
    +&nbsp;     * Returns a new {@link Builder} for {@link GraphiteReporter}.
    +&nbsp;     *
    +&nbsp;     * @param registry the registry to report
    +&nbsp;     * @return a {@link Builder} instance for a {@link GraphiteReporter}
    +&nbsp;     */
    +&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    +<b class="fc">&nbsp;        return new Builder(registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * A builder for {@link GraphiteReporter} instances. Defaults to not using a prefix, using the
    +&nbsp;     * default clock, converting rates to events/second, converting durations to milliseconds, and
    +&nbsp;     * not filtering metrics.
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class Builder {</b>
    +&nbsp;        private final MetricRegistry registry;
    +&nbsp;        private Clock clock;
    +&nbsp;        private String prefix;
    +&nbsp;        private TimeUnit rateUnit;
    +&nbsp;        private TimeUnit durationUnit;
    +&nbsp;        private MetricFilter filter;
    +&nbsp;        private ScheduledExecutorService executor;
    +&nbsp;        private boolean shutdownExecutorOnStop;
    +&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    +&nbsp;        private boolean addMetricAttributesAsTags;
    +&nbsp;        private DoubleFunction&lt;String&gt; floatingPointFormatter;
    +&nbsp;
    +<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    +<b class="fc">&nbsp;            this.registry = registry;</b>
    +<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    +<b class="fc">&nbsp;            this.prefix = null;</b>
    +<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    +<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    +<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    +<b class="fc">&nbsp;            this.executor = null;</b>
    +<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    +<b class="fc">&nbsp;            this.disabledMetricAttributes = Collections.emptySet();</b>
    +<b class="fc">&nbsp;            this.addMetricAttributesAsTags = false;</b>
    +<b class="fc">&nbsp;            this.floatingPointFormatter = DEFAULT_FP_FORMATTER;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    +&nbsp;         * Default value is true.
    +&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    +&nbsp;         *
    +&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    +<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    +&nbsp;         * Default value is null.
    +&nbsp;         * Null value leads to executor will be auto created on start.
    +&nbsp;         *
    +&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    +<b class="nc">&nbsp;            this.executor = executor;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use the given {@link Clock} instance for the time.
    +&nbsp;         *
    +&nbsp;         * @param clock a {@link Clock} instance
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder withClock(Clock clock) {
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Prefix all metric names with the given string.
    +&nbsp;         *
    +&nbsp;         * @param prefix the prefix for all metric names
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder prefixedWith(String prefix) {
    +<b class="fc">&nbsp;            this.prefix = prefix;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert rates to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param rateUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    +<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Convert durations to the given time unit.
    +&nbsp;         *
    +&nbsp;         * @param durationUnit a unit of time
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    +<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Only report metrics which match the given filter.
    +&nbsp;         *
    +&nbsp;         * @param filter a {@link MetricFilter}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder filter(MetricFilter filter) {
    +<b class="fc">&nbsp;            this.filter = filter;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    +&nbsp;         * See {@link MetricAttribute}.
    +&nbsp;         *
    +&nbsp;         * @param disabledMetricAttributes a set of {@link MetricAttribute}
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    +<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Specifies whether or not metric attributes (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;) should be reported in the traditional dot delimited format or in the tag based format.
    +&nbsp;         * Without tags (default): `my.metric.p99`
    +&nbsp;         * With tags: `my.metric;metricattribute=p99`
    +&nbsp;         *
    +&nbsp;         * Note that this setting only modifies the metric attribute, and will not convert any other portion of the metric name to use tags.
    +&nbsp;         * For mor information on Graphite tag support see https://graphite.readthedocs.io/en/latest/tags.html
    +&nbsp;         * See {@link MetricAttribute}.
    +&nbsp;         *
    +&nbsp;         * @param addMetricAttributesAsTags if true, then metric attributes will be added as tags
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder addMetricAttributesAsTags(boolean addMetricAttributesAsTags) {
    +<b class="fc">&nbsp;            this.addMetricAttributesAsTags = addMetricAttributesAsTags;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Use custom floating point formatter.
    +&nbsp;         *
    +&nbsp;         * @param floatingPointFormatter a custom formatter for floating point values
    +&nbsp;         * @return {@code this}
    +&nbsp;         */
    +&nbsp;        public Builder withFloatingPointFormatter(DoubleFunction&lt;String&gt; floatingPointFormatter) {
    +<b class="fc">&nbsp;            this.floatingPointFormatter = floatingPointFormatter;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
    +&nbsp;         * given {@link GraphiteSender}.
    +&nbsp;         * &lt;p&gt;
    +&nbsp;         * Present for binary compatibility
    +&nbsp;         *
    +&nbsp;         * @param graphite a {@link Graphite}
    +&nbsp;         * @return a {@link GraphiteReporter}
    +&nbsp;         */
    +&nbsp;        public GraphiteReporter build(Graphite graphite) {
    +<b class="fc">&nbsp;            return build((GraphiteSender) graphite);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
    +&nbsp;         * given {@link GraphiteSender}.
    +&nbsp;         *
    +&nbsp;         * @param graphite a {@link GraphiteSender}
    +&nbsp;         * @return a {@link GraphiteReporter}
    +&nbsp;         */
    +&nbsp;        public GraphiteReporter build(GraphiteSender graphite) {
    +<b class="fc">&nbsp;            return new GraphiteReporter(registry,</b>
    +&nbsp;                    graphite,
    +&nbsp;                    clock,
    +&nbsp;                    prefix,
    +&nbsp;                    rateUnit,
    +&nbsp;                    durationUnit,
    +&nbsp;                    filter,
    +&nbsp;                    executor,
    +&nbsp;                    shutdownExecutorOnStop,
    +&nbsp;                    disabledMetricAttributes,
    +&nbsp;                    addMetricAttributesAsTags,
    +&nbsp;                    floatingPointFormatter);
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(GraphiteReporter.class);</b>
    +&nbsp;    // the Carbon plaintext format is pretty underspecified, but it seems like it just wants US-formatted digits
    +<b class="fc">&nbsp;    private static final DoubleFunction&lt;String&gt; DEFAULT_FP_FORMATTER = fp -&gt; String.format(Locale.US, &quot;%2.2f&quot;, fp);</b>
    +&nbsp;
    +&nbsp;    private final GraphiteSender graphite;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private final String prefix;
    +&nbsp;    private final boolean addMetricAttributesAsTags;
    +&nbsp;    private final DoubleFunction&lt;String&gt; floatingPointFormatter;
    +&nbsp;  
    +&nbsp;  
     &nbsp;    /**
    -&nbsp;     * Matches all health checks, regardless of type or name.
    +&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    +&nbsp;     *
    +&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    +&nbsp;     *                                  reporter will report
    +&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    +&nbsp;     *                                  via a transport protocol
    +&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    +&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    +&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    +&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    +&nbsp;     * @param filter                    the filter for which metrics to report
    +&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    +&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    +&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
     &nbsp;     */
    -<b class="fc">&nbsp;    HealthCheckFilter ALL = (name, healthCheck) -&gt; true;</b>
    +&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    +&nbsp;                               GraphiteSender graphite,
    +&nbsp;                               Clock clock,
    +&nbsp;                               String prefix,
    +&nbsp;                               TimeUnit rateUnit,
    +&nbsp;                               TimeUnit durationUnit,
    +&nbsp;                               MetricFilter filter,
    +&nbsp;                               ScheduledExecutorService executor,
    +&nbsp;                               boolean shutdownExecutorOnStop,
    +&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    +<b class="nc">&nbsp;        this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,</b>
    +&nbsp;                disabledMetricAttributes, false);
    +&nbsp;    }
    +&nbsp;
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * Returns {@code true} if the health check matches the filter; {@code false} otherwise.
    +&nbsp;     * Creates a new {@link GraphiteReporter} instance.
     &nbsp;     *
    -&nbsp;     * @param name        the health check&#39;s name
    -&nbsp;     * @param healthCheck the health check
    -&nbsp;     * @return {@code true} if the health check matches the filter
    +&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    +&nbsp;     *                                  reporter will report
    +&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    +&nbsp;     *                                  via a transport protocol
    +&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    +&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    +&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    +&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    +&nbsp;     * @param filter                    the filter for which metrics to report
    +&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    +&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    +&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    +&nbsp;     * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
     &nbsp;     */
    -&nbsp;    boolean matches(String name, HealthCheck healthCheck);
    +&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    +&nbsp;                               GraphiteSender graphite,
    +&nbsp;                               Clock clock,
    +&nbsp;                               String prefix,
    +&nbsp;                               TimeUnit rateUnit,
    +&nbsp;                               TimeUnit durationUnit,
    +&nbsp;                               MetricFilter filter,
    +&nbsp;                               ScheduledExecutorService executor,
    +&nbsp;                               boolean shutdownExecutorOnStop,
    +&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    +&nbsp;                               boolean addMetricAttributesAsTags) {
    +<b class="fc">&nbsp;        this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,</b>
    +&nbsp;                disabledMetricAttributes, addMetricAttributesAsTags, DEFAULT_FP_FORMATTER);
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    +&nbsp;     *
    +&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    +&nbsp;     *                                  reporter will report
    +&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    +&nbsp;     *                                  via a transport protocol
    +&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    +&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    +&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    +&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    +&nbsp;     * @param filter                    the filter for which metrics to report
    +&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    +&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    +&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    +&nbsp;     * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
    +&nbsp;     * @param floatingPointFormatter    custom floating point formatter
    +&nbsp;     */
    +&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    +&nbsp;                               GraphiteSender graphite,
    +&nbsp;                               Clock clock,
    +&nbsp;                               String prefix,
    +&nbsp;                               TimeUnit rateUnit,
    +&nbsp;                               TimeUnit durationUnit,
    +&nbsp;                               MetricFilter filter,
    +&nbsp;                               ScheduledExecutorService executor,
    +&nbsp;                               boolean shutdownExecutorOnStop,
    +&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    +&nbsp;                               boolean addMetricAttributesAsTags,
    +&nbsp;                               DoubleFunction&lt;String&gt; floatingPointFormatter) {
    +<b class="fc">&nbsp;        super(registry, &quot;graphite-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    +&nbsp;                disabledMetricAttributes);
    +<b class="fc">&nbsp;        this.graphite = graphite;</b>
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.prefix = prefix;</b>
    +<b class="fc">&nbsp;        this.addMetricAttributesAsTags = addMetricAttributesAsTags;</b>
    +<b class="fc">&nbsp;        this.floatingPointFormatter = floatingPointFormatter;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    +&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    +&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    +&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    +&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    +&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    +<b class="fc">&nbsp;        final long timestamp = clock.getTime() / 1000;</b>
    +&nbsp;
    +&nbsp;        // oh it&#39;d be lovely to use Java 7 here
    +&nbsp;        try {
    +<b class="fc">&nbsp;            graphite.connect();</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    +<b class="fc">&nbsp;                reportGauge(entry.getKey(), entry.getValue(), timestamp);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    +<b class="fc">&nbsp;                reportCounter(entry.getKey(), entry.getValue(), timestamp);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    +<b class="fc">&nbsp;                reportHistogram(entry.getKey(), entry.getValue(), timestamp);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    +<b class="fc">&nbsp;                reportMetered(entry.getKey(), entry.getValue(), timestamp);</b>
    +<b class="fc">&nbsp;            }</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    +<b class="fc">&nbsp;                reportTimer(entry.getKey(), entry.getValue(), timestamp);</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;            graphite.flush();</b>
    +<b class="fc">&nbsp;        } catch (IOException e) {</b>
    +<b class="fc">&nbsp;            LOGGER.warn(&quot;Unable to report to Graphite&quot;, graphite, e);</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            try {</b>
    +<b class="fc">&nbsp;                graphite.close();</b>
    +<b class="nc">&nbsp;            } catch (IOException e1) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Error closing Graphite&quot;, graphite, e1);</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void stop() {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            super.stop();</b>
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            try {</b>
    +<b class="fc">&nbsp;                graphite.close();</b>
    +<b class="nc">&nbsp;            } catch (IOException e) {</b>
    +<b class="nc">&nbsp;                LOGGER.debug(&quot;Error disconnecting from Graphite&quot;, graphite, e);</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportTimer(String name, Timer timer, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MAX, name, convertDuration(snapshot.getMax()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MEAN, name, convertDuration(snapshot.getMean()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MIN, name, convertDuration(snapshot.getMin()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(STDDEV, name, convertDuration(snapshot.getStdDev()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P50, name, convertDuration(snapshot.getMedian()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P75, name, convertDuration(snapshot.get75thPercentile()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P95, name, convertDuration(snapshot.get95thPercentile()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P98, name, convertDuration(snapshot.get98thPercentile()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P99, name, convertDuration(snapshot.get99thPercentile()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P999, name, convertDuration(snapshot.get999thPercentile()), timestamp);</b>
    +<b class="fc">&nbsp;        reportMetered(name, timer, timestamp);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportMetered(String name, Metered meter, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        sendIfEnabled(COUNT, name, meter.getCount(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(M1_RATE, name, convertRate(meter.getOneMinuteRate()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(M5_RATE, name, convertRate(meter.getFiveMinuteRate()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(M15_RATE, name, convertRate(meter.getFifteenMinuteRate()), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MEAN_RATE, name, convertRate(meter.getMeanRate()), timestamp);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportHistogram(String name, Histogram histogram, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    +<b class="fc">&nbsp;        sendIfEnabled(COUNT, name, histogram.getCount(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MAX, name, snapshot.getMax(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MEAN, name, snapshot.getMean(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(MIN, name, snapshot.getMin(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(STDDEV, name, snapshot.getStdDev(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P50, name, snapshot.getMedian(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P75, name, snapshot.get75thPercentile(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P95, name, snapshot.get95thPercentile(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P98, name, snapshot.get98thPercentile(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P99, name, snapshot.get99thPercentile(), timestamp);</b>
    +<b class="fc">&nbsp;        sendIfEnabled(P999, name, snapshot.get999thPercentile(), timestamp);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void sendIfEnabled(MetricAttribute type, String name, double value, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void sendIfEnabled(MetricAttribute type, String name, long value, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    +&nbsp;            return;
    +&nbsp;        }
    +<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportCounter(String name, Counter counter, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, COUNT.getCode())), format(counter.getCount()), timestamp);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void reportGauge(String name, Gauge&lt;?&gt; gauge, long timestamp) throws IOException {
    +<b class="fc">&nbsp;        final String value = format(gauge.getValue());</b>
    +<b class="fc">&nbsp;        if (value != null) {</b>
    +<b class="fc">&nbsp;            graphite.send(prefix(name), value, timestamp);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String format(Object o) {
    +<b class="fc">&nbsp;        if (o instanceof Float) {</b>
    +<b class="fc">&nbsp;            return format(((Float) o).doubleValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Double) {</b>
    +<b class="fc">&nbsp;            return format(((Double) o).doubleValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Byte) {</b>
    +<b class="fc">&nbsp;            return format(((Byte) o).longValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Short) {</b>
    +<b class="fc">&nbsp;            return format(((Short) o).longValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Integer) {</b>
    +<b class="fc">&nbsp;            return format(((Integer) o).longValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Long) {</b>
    +<b class="fc">&nbsp;            return format(((Long) o).longValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Number) {</b>
    +<b class="nc">&nbsp;            return format(((Number) o).doubleValue());</b>
    +<b class="fc">&nbsp;        } else if (o instanceof Boolean) {</b>
    +<b class="fc">&nbsp;            return format(((Boolean) o) ? 1 : 0);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return null;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String prefix(String name) {
    +<b class="fc">&nbsp;        return MetricRegistry.name(prefix, name);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String appendMetricAttribute(String name, String metricAttribute){
    +<b class="fc">&nbsp;        if (addMetricAttributesAsTags){</b>
    +<b class="fc">&nbsp;            return name + &quot;;metricattribute=&quot; + metricAttribute;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return name + &quot;.&quot; + metricAttribute;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private String format(long n) {
    +<b class="fc">&nbsp;        return Long.toString(n);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String format(double v) {
    +<b class="fc">&nbsp;        return floatingPointFormatter.apply(v);</b>
    +&nbsp;    }
     &nbsp;}
     </code>
     </pre>
    @@ -119,7 +649,7 @@ <h1>Coverage Summary for Class: HealthCheckFilter (com.codahale.metrics.health)<
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-4.html
    index 0fc4f8a2f8..0d3b7dd45b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-4.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-4.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckRegistry</title>
    +  <title>Coverage Report > GraphiteSanitize</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,16 +19,19 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
     </div>
     
    -<h1>Coverage Summary for Class: HealthCheckRegistry (com.codahale.metrics.health)</h1>
    +<h1>Coverage Summary for Class: GraphiteSanitize (com.codahale.metrics.graphite)</h1>
     
     <table class="coverageStats">
    -
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
     ">
       Method, %
     </th>
    @@ -38,62 +41,33 @@ <h1>Coverage Summary for Class: HealthCheckRegistry (com.codahale.metrics.health
     </th>
     </tr>
     <tr>
    -  <td class="name">HealthCheckRegistry</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.7%
    -  </span>
    -  <span class="absValue">
    -    (70/78)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistry$NamedThreadFactory</td>
    +  <td class="name">GraphiteSanitize</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    +    (1/1)
       </span>
     </td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    95.2%
    +    66.7%
       </span>
       <span class="absValue">
    -    (20/21)
    +    (2/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    89.8%
    +    66.7%
       </span>
       <span class="absValue">
    -    (79/88)
    +    (2/3)
       </span>
     </td>
     </tr>
    +
     </table>
     
     <br/>
    @@ -101,292 +75,20 @@ <h1>Coverage Summary for Class: HealthCheckRegistry (com.codahale.metrics.health
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
     &nbsp;
    -&nbsp;import com.codahale.metrics.health.annotation.Async;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;import java.util.regex.Pattern;
     &nbsp;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.NoSuchElementException;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.SortedSet;
    -&nbsp;import java.util.TreeMap;
    -&nbsp;import java.util.TreeSet;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.CopyOnWriteArrayList;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;import java.util.concurrent.Future;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.ScheduledThreadPoolExecutor;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +<b class="nc">&nbsp;class GraphiteSanitize {</b>
     &nbsp;
    -&nbsp;import static com.codahale.metrics.health.HealthCheck.Result;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A registry for health checks.
    -&nbsp; */
    -&nbsp;public class HealthCheckRegistry {
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(HealthCheckRegistry.class);</b>
    -&nbsp;    private static final int ASYNC_EXECUTOR_POOL_SIZE = 2;
    -&nbsp;
    -&nbsp;    private final ConcurrentMap&lt;String, HealthCheck&gt; healthChecks;
    -&nbsp;    private final List&lt;HealthCheckRegistryListener&gt; listeners;
    -&nbsp;    private final ScheduledExecutorService asyncExecutorService;
    -<b class="fc">&nbsp;    private final Object lock = new Object();</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    -&nbsp;     */
    -&nbsp;    public HealthCheckRegistry() {
    -<b class="fc">&nbsp;        this(ASYNC_EXECUTOR_POOL_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    -&nbsp;     *
    -&nbsp;     * @param asyncExecutorPoolSize core pool size for async health check executions
    -&nbsp;     */
    -&nbsp;    public HealthCheckRegistry(int asyncExecutorPoolSize) {
    -<b class="fc">&nbsp;        this(createExecutorService(asyncExecutorPoolSize));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    -&nbsp;     *
    -&nbsp;     * @param asyncExecutorService executor service for async health check executions
    -&nbsp;     */
    -<b class="fc">&nbsp;    public HealthCheckRegistry(ScheduledExecutorService asyncExecutorService) {</b>
    -<b class="fc">&nbsp;        this.healthChecks = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        this.listeners = new CopyOnWriteArrayList&lt;&gt;();</b>
    -<b class="fc">&nbsp;        this.asyncExecutorService = asyncExecutorService;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a {@link HealthCheckRegistryListener} to a collection of listeners that will be notified on health check
    -&nbsp;     * registration. Listeners will be notified in the order in which they are added. The listener will be notified of all
    -&nbsp;     * existing health checks when it first registers.
    -&nbsp;     *
    -&nbsp;     * @param listener listener to add
    -&nbsp;     */
    -&nbsp;    public void addListener(HealthCheckRegistryListener listener) {
    -<b class="fc">&nbsp;        listeners.add(listener);</b>
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    -<b class="fc">&nbsp;            listener.onHealthCheckAdded(entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    +<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    +&nbsp;    private static final String DASH = &quot;-&quot;;
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * Removes a {@link HealthCheckRegistryListener} from this registry&#39;s collection of listeners.
    -&nbsp;     *
    -&nbsp;     * @param listener listener to remove
    +&nbsp;     * Trims the string and replaces all whitespace characters with the provided symbol
     &nbsp;     */
    -&nbsp;    public void removeListener(HealthCheckRegistryListener listener) {
    -<b class="fc">&nbsp;        listeners.remove(listener);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Registers an application {@link HealthCheck}.
    -&nbsp;     *
    -&nbsp;     * @param name        the name of the health check
    -&nbsp;     * @param healthCheck the {@link HealthCheck} instance
    -&nbsp;     */
    -&nbsp;    public void register(String name, HealthCheck healthCheck) {
    -&nbsp;        HealthCheck registered;
    -<b class="fc">&nbsp;        synchronized (lock) {</b>
    -<b class="fc">&nbsp;            if (healthChecks.containsKey(name)) {</b>
    -<b class="fc">&nbsp;                throw new IllegalArgumentException(&quot;A health check named &quot; + name + &quot; already exists&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            registered = healthCheck;</b>
    -<b class="fc">&nbsp;            if (healthCheck.getClass().isAnnotationPresent(Async.class)) {</b>
    -<b class="fc">&nbsp;                registered = new AsyncHealthCheckDecorator(healthCheck, asyncExecutorService);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            healthChecks.put(name, registered);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        onHealthCheckAdded(name, registered);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Unregisters the application {@link HealthCheck} with the given name.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the {@link HealthCheck} instance
    -&nbsp;     */
    -&nbsp;    public void unregister(String name) {
    -&nbsp;        HealthCheck healthCheck;
    -<b class="fc">&nbsp;        synchronized (lock) {</b>
    -<b class="fc">&nbsp;            healthCheck = healthChecks.remove(name);</b>
    -<b class="fc">&nbsp;            if (healthCheck instanceof AsyncHealthCheckDecorator) {</b>
    -<b class="fc">&nbsp;                ((AsyncHealthCheckDecorator) healthCheck).tearDown();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        if (healthCheck != null) {</b>
    -<b class="fc">&nbsp;            onHealthCheckRemoved(name, healthCheck);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a set of the names of all registered health checks.
    -&nbsp;     *
    -&nbsp;     * @return the names of all registered health checks
    -&nbsp;     */
    -&nbsp;    public SortedSet&lt;String&gt; getNames() {
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedSet(new TreeSet&lt;&gt;(healthChecks.keySet()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the {@link HealthCheck} instance with a given name
    -&nbsp;     *
    -&nbsp;     * @param name the name of the {@link HealthCheck} instance
    -&nbsp;     */
    -&nbsp;    public HealthCheck getHealthCheck(String name) {
    -<b class="nc">&nbsp;        return healthChecks.get(name);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the health check with the given name.
    -&nbsp;     *
    -&nbsp;     * @param name the health check&#39;s name
    -&nbsp;     * @return the result of the health check
    -&nbsp;     * @throws NoSuchElementException if there is no health check with the given name
    -&nbsp;     */
    -&nbsp;    public HealthCheck.Result runHealthCheck(String name) throws NoSuchElementException {
    -<b class="fc">&nbsp;        final HealthCheck healthCheck = healthChecks.get(name);</b>
    -<b class="fc">&nbsp;        if (healthCheck == null) {</b>
    -<b class="fc">&nbsp;            throw new NoSuchElementException(&quot;No health check named &quot; + name + &quot; exists&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return healthCheck.execute();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    -<b class="fc">&nbsp;        return runHealthChecks(HealthCheckFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks matching the filter and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @param filter health check filter
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(HealthCheckFilter filter) {
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = new TreeMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    -<b class="fc">&nbsp;            final String name = entry.getKey();</b>
    -<b class="fc">&nbsp;            final HealthCheck healthCheck = entry.getValue();</b>
    -<b class="fc">&nbsp;            if (filter.matches(name, healthCheck)) {</b>
    -<b class="fc">&nbsp;                final Result result = entry.getValue().execute();</b>
    -<b class="fc">&nbsp;                results.put(entry.getKey(), result);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(results);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks in parallel and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @param executor object to launch and track health checks progress
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(ExecutorService executor) {
    -<b class="fc">&nbsp;        return runHealthChecks(executor, HealthCheckFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks matching the filter in parallel and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @param executor object to launch and track health checks progress
    -&nbsp;     * @param filter   health check filter
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(ExecutorService executor, HealthCheckFilter filter) {
    -<b class="fc">&nbsp;        final Map&lt;String, Future&lt;HealthCheck.Result&gt;&gt; futures = new HashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (final Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    -<b class="fc">&nbsp;            final String name = entry.getKey();</b>
    -<b class="fc">&nbsp;            final HealthCheck healthCheck = entry.getValue();</b>
    -<b class="fc">&nbsp;            if (filter.matches(name, healthCheck)) {</b>
    -<b class="fc">&nbsp;                futures.put(name, executor.submit(() -&gt; healthCheck.execute()));</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = new TreeMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Future&lt;Result&gt;&gt; entry : futures.entrySet()) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                results.put(entry.getKey(), entry.getValue().get());</b>
    -<b class="nc">&nbsp;            } catch (Exception e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Error executing health check {}&quot;, entry.getKey(), e);</b>
    -<b class="nc">&nbsp;                results.put(entry.getKey(), HealthCheck.Result.unhealthy(e));</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(results);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    private void onHealthCheckAdded(String name, HealthCheck healthCheck) {
    -<b class="fc">&nbsp;        for (HealthCheckRegistryListener listener : listeners) {</b>
    -<b class="fc">&nbsp;            listener.onHealthCheckAdded(name, healthCheck);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void onHealthCheckRemoved(String name, HealthCheck healthCheck) {
    -<b class="fc">&nbsp;        for (HealthCheckRegistryListener listener : listeners) {</b>
    -<b class="fc">&nbsp;            listener.onHealthCheckRemoved(name, healthCheck);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Shuts down the scheduled executor for async health checks
    -&nbsp;     */
    -&nbsp;    public void shutdown() {
    -<b class="fc">&nbsp;        asyncExecutorService.shutdown(); // Disable new health checks from being submitted</b>
    -&nbsp;        try {
    -&nbsp;            // Give some time to the current healtch checks to finish gracefully
    -<b class="fc">&nbsp;            if (!asyncExecutorService.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    -<b class="nc">&nbsp;                asyncExecutorService.shutdownNow();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (InterruptedException ie) {</b>
    -<b class="nc">&nbsp;            asyncExecutorService.shutdownNow();</b>
    -<b class="nc">&nbsp;            Thread.currentThread().interrupt();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static ScheduledExecutorService createExecutorService(int corePoolSize) {
    -<b class="fc">&nbsp;        final ScheduledThreadPoolExecutor asyncExecutorService = new ScheduledThreadPoolExecutor(corePoolSize,</b>
    -&nbsp;                new NamedThreadFactory(&quot;healthcheck-async-executor-&quot;));
    -<b class="fc">&nbsp;        asyncExecutorService.setRemoveOnCancelPolicy(true);</b>
    -<b class="fc">&nbsp;        return asyncExecutorService;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class NamedThreadFactory implements ThreadFactory {
    -&nbsp;
    -&nbsp;        private final ThreadGroup group;
    -<b class="fc">&nbsp;        private final AtomicInteger threadNumber = new AtomicInteger(1);</b>
    -&nbsp;        private final String namePrefix;
    -&nbsp;
    -<b class="fc">&nbsp;        NamedThreadFactory(String namePrefix) {</b>
    -<b class="fc">&nbsp;            SecurityManager s = System.getSecurityManager();</b>
    -<b class="fc">&nbsp;            group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();</b>
    -<b class="fc">&nbsp;            this.namePrefix = namePrefix;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Thread newThread(Runnable r) {
    -<b class="fc">&nbsp;            Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);</b>
    -<b class="fc">&nbsp;            t.setDaemon(true);</b>
    -<b class="fc">&nbsp;            if (t.getPriority() != Thread.NORM_PRIORITY)</b>
    -<b class="nc">&nbsp;                t.setPriority(Thread.NORM_PRIORITY);</b>
    -<b class="fc">&nbsp;            return t;</b>
    -&nbsp;        }
    +&nbsp;    static String sanitize(String string) {
    +<b class="fc">&nbsp;        return WHITESPACE.matcher(string.trim()).replaceAll(DASH);</b>
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -412,7 +114,7 @@ <h1>Coverage Summary for Class: HealthCheckRegistry (com.codahale.metrics.health
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-5.html
    index 90f8dc912b..68a67bc551 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-5.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-5.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SharedHealthCheckRegistries</title>
    +  <title>Coverage Report > GraphiteUDP</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
     </div>
     
    -<h1>Coverage Summary for Class: SharedHealthCheckRegistries (com.codahale.metrics.health)</h1>
    +<h1>Coverage Summary for Class: GraphiteUDP (com.codahale.metrics.graphite)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -41,7 +41,7 @@ <h1>Coverage Summary for Class: SharedHealthCheckRegistries (com.codahale.metric
     </th>
     </tr>
     <tr>
    -  <td class="name">SharedHealthCheckRegistries</td>
    +  <td class="name">GraphiteUDP</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -52,18 +52,18 @@ <h1>Coverage Summary for Class: SharedHealthCheckRegistries (com.codahale.metric
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    53.8%
       </span>
       <span class="absValue">
    -    (11/11)
    +    (7/13)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    96.6%
    +    50%
       </span>
       <span class="absValue">
    -    (28/29)
    +    (17/34)
       </span>
     </td>
     </tr>
    @@ -75,110 +75,122 @@ <h1>Coverage Summary for Class: SharedHealthCheckRegistries (com.codahale.metric
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.net.InetSocketAddress;
    +&nbsp;import java.net.InetAddress;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.nio.channels.DatagramChannel;
     &nbsp;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.atomic.AtomicReference;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
     &nbsp;
     &nbsp;/**
    -&nbsp; * A map of shared, named health registries.
    +&nbsp; * A client to a Carbon server using unconnected UDP
     &nbsp; */
    -&nbsp;public class SharedHealthCheckRegistries {
    -<b class="fc">&nbsp;    private static final ConcurrentMap&lt;String, HealthCheckRegistry&gt; REGISTRIES =</b>
    -&nbsp;            new ConcurrentHashMap&lt;&gt;();
    +&nbsp;public class GraphiteUDP implements GraphiteSender {
    +&nbsp;
    +&nbsp;    private final String hostname;
    +&nbsp;    private final int port;
    +&nbsp;    private InetSocketAddress address;
    +&nbsp;
    +<b class="fc">&nbsp;    private DatagramChannel datagramChannel = null;</b>
    +&nbsp;    private int failures;
     &nbsp;
    -<b class="fc">&nbsp;    private static AtomicReference&lt;String&gt; defaultRegistryName = new AtomicReference&lt;&gt;();</b>
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which sends data to given address using UDP
    +&nbsp;     *
    +&nbsp;     * @param hostname The hostname of the Carbon server
    +&nbsp;     * @param port     The port of the Carbon server
    +&nbsp;     */
    +<b class="fc">&nbsp;    public GraphiteUDP(String hostname, int port) {</b>
    +<b class="fc">&nbsp;        this.hostname = hostname;</b>
    +<b class="fc">&nbsp;        this.port = port;</b>
    +<b class="fc">&nbsp;        this.address = null;</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;    /* Visible for testing */
    -&nbsp;    static void setDefaultRegistryName(AtomicReference&lt;String&gt; defaultRegistryName) {
    -<b class="fc">&nbsp;        SharedHealthCheckRegistries.defaultRegistryName = defaultRegistryName;</b>
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which sends data to given address using UDP
    +&nbsp;     *
    +&nbsp;     * @param address the address of the Carbon server
    +&nbsp;     */
    +<b class="nc">&nbsp;    public GraphiteUDP(InetSocketAddress address) {</b>
    +<b class="nc">&nbsp;        this.hostname = null;</b>
    +<b class="nc">&nbsp;        this.port = -1;</b>
    +<b class="nc">&nbsp;        this.address = address;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    private SharedHealthCheckRegistries() { /* singleton */ }
    +&nbsp;    @Override
    +&nbsp;    public void connect() throws IllegalStateException, IOException {
    +<b class="fc">&nbsp;        if (isConnected()) {</b>
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        // Resolve hostname
    +<b class="fc">&nbsp;        if (hostname != null) {</b>
    +<b class="fc">&nbsp;            address = new InetSocketAddress(InetAddress.getByName(hostname), port);</b>
    +&nbsp;        }
     &nbsp;
    -&nbsp;    public static void clear() {
    -<b class="fc">&nbsp;        REGISTRIES.clear();</b>
    +<b class="nc">&nbsp;        datagramChannel = DatagramChannel.open();</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    public static Set&lt;String&gt; names() {
    -<b class="fc">&nbsp;        return REGISTRIES.keySet();</b>
    +&nbsp;    @Override
    +&nbsp;    public boolean isConnected() {
    +<b class="fc">&nbsp;        return datagramChannel != null &amp;&amp; !datagramChannel.socket().isClosed();</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    public static void remove(String key) {
    -<b class="fc">&nbsp;        REGISTRIES.remove(key);</b>
    +&nbsp;    @Override
    +&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            String str = sanitize(name) + &#39; &#39; + sanitize(value) + &#39; &#39; + Long.toString(timestamp) + &#39;\n&#39;;</b>
    +<b class="fc">&nbsp;            ByteBuffer byteBuffer = ByteBuffer.wrap(str.getBytes(UTF_8));</b>
    +<b class="fc">&nbsp;            datagramChannel.send(byteBuffer, address);</b>
    +<b class="fc">&nbsp;            this.failures = 0;</b>
    +<b class="nc">&nbsp;        } catch (IOException e) {</b>
    +<b class="nc">&nbsp;            failures++;</b>
    +<b class="nc">&nbsp;            throw e;</b>
    +<b class="fc">&nbsp;        }</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    public static HealthCheckRegistry add(String name, HealthCheckRegistry registry) {
    -<b class="fc">&nbsp;        return REGISTRIES.putIfAbsent(name, registry);</b>
    +&nbsp;    @Override
    +&nbsp;    public int getFailures() {
    +<b class="nc">&nbsp;        return failures;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    public static HealthCheckRegistry getOrCreate(String name) {
    -<b class="fc">&nbsp;        final HealthCheckRegistry existing = REGISTRIES.get(name);</b>
    -<b class="fc">&nbsp;        if (existing == null) {</b>
    -<b class="fc">&nbsp;            final HealthCheckRegistry created = new HealthCheckRegistry();</b>
    -<b class="fc">&nbsp;            final HealthCheckRegistry raced = add(name, created);</b>
    -<b class="fc">&nbsp;            if (raced == null) {</b>
    -<b class="fc">&nbsp;                return created;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            return raced;</b>
    +&nbsp;    @Override
    +&nbsp;    public void flush() throws IOException {
    +&nbsp;        // Nothing to do
    +<b class="nc">&nbsp;    }</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void close() throws IOException {
    +<b class="nc">&nbsp;        if (datagramChannel != null) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                datagramChannel.close();</b>
    +&nbsp;            } finally {
    +<b class="nc">&nbsp;                datagramChannel = null;</b>
    +<b class="nc">&nbsp;            }</b>
     &nbsp;        }
    -<b class="fc">&nbsp;        return existing;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new registry and sets it as the default one under the provided name.
    -&nbsp;     *
    -&nbsp;     * @param name the registry name
    -&nbsp;     * @return the default registry
    -&nbsp;     * @throws IllegalStateException if the name has already been set
    -&nbsp;     */
    -&nbsp;    public synchronized static HealthCheckRegistry setDefault(String name) {
    -<b class="fc">&nbsp;        final HealthCheckRegistry registry = getOrCreate(name);</b>
    -<b class="fc">&nbsp;        return setDefault(name, registry);</b>
    +&nbsp;    protected String sanitize(String s) {
    +<b class="fc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Sets the provided registry as the default one under the provided name
    -&nbsp;     *
    -&nbsp;     * @param name                the default registry name
    -&nbsp;     * @param healthCheckRegistry the default registry
    -&nbsp;     * @throws IllegalStateException if the default registry has already been set
    -&nbsp;     */
    -&nbsp;    public static HealthCheckRegistry setDefault(String name, HealthCheckRegistry healthCheckRegistry) {
    -<b class="fc">&nbsp;        if (defaultRegistryName.compareAndSet(null, name)) {</b>
    -<b class="fc">&nbsp;            add(name, healthCheckRegistry);</b>
    -<b class="fc">&nbsp;            return healthCheckRegistry;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default health check registry is already set.&quot;);</b>
    +&nbsp;    DatagramChannel getDatagramChannel() {
    +<b class="nc">&nbsp;        return datagramChannel;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Gets the name of the default registry, if it has been set
    -&nbsp;     *
    -&nbsp;     * @return the default registry
    -&nbsp;     * @throws IllegalStateException if the default has not been set
    -&nbsp;     */
    -&nbsp;    public static HealthCheckRegistry getDefault() {
    -<b class="fc">&nbsp;        final HealthCheckRegistry healthCheckRegistry = tryGetDefault();</b>
    -<b class="fc">&nbsp;        if (healthCheckRegistry != null) {</b>
    -<b class="fc">&nbsp;            return healthCheckRegistry;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default registry name has not been set.&quot;);</b>
    +&nbsp;    void setDatagramChannel(DatagramChannel datagramChannel) {
    +<b class="fc">&nbsp;        this.datagramChannel = datagramChannel;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Same as {@link #getDefault()} except returns null when the default registry has not been set.
    -&nbsp;     *
    -&nbsp;     * @return the default registry or null
    -&nbsp;     */
    -&nbsp;    public static HealthCheckRegistry tryGetDefault() {
    -<b class="fc">&nbsp;        final String name = defaultRegistryName.get();</b>
    -<b class="fc">&nbsp;        if (name != null) {</b>
    -<b class="fc">&nbsp;            return getOrCreate(name);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return null;</b>
    +&nbsp;    InetSocketAddress getAddress() {
    +<b class="nc">&nbsp;        return address;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    void setAddress(InetSocketAddress address) {
    +<b class="fc">&nbsp;        this.address = address;</b>
     &nbsp;    }
     &nbsp;}
     </code>
    @@ -204,7 +216,7 @@ <h1>Coverage Summary for Class: SharedHealthCheckRegistries (com.codahale.metric
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-6.html
    index 3930b508b8..66ebd2bbb5 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-6.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-6.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckRegistryListener</title>
    +  <title>Coverage Report > PickledGraphite</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,27 +19,80 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
     </div>
     
    -<h1>Coverage Summary for Class: HealthCheckRegistryListener (com.codahale.metrics.health)</h1>
    +<h1>Coverage Summary for Class: PickledGraphite (com.codahale.metrics.graphite)</h1>
     
     <table class="coverageStats">
     
     <tr>
       <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">PickledGraphite</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    22.2%
    +  </span>
    +  <span class="absValue">
    +    (4/18)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    16.5%
    +  </span>
    +  <span class="absValue">
    +    (15/91)
    +  </span>
    +</td>
     </tr>
       <tr>
    -    <td class="name">HealthCheckRegistryListener$MockitoMock$sFTP3L4I</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistryListener$MockitoMock$sFTP3L4I$auxiliary$AUYhMVzg</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistryListener$MockitoMock$sFTP3L4I$auxiliary$roTKNywC</td>
    +    <td class="name">PickledGraphite$MetricTuple</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/4)
    +  </span>
    +</td>
       </tr>
     <tr>
       <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    21.1%
    +  </span>
    +  <span class="absValue">
    +    (4/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    15.8%
    +  </span>
    +  <span class="absValue">
    +    (15/95)
    +  </span>
    +</td>
     </tr>
     </table>
     
    @@ -48,30 +101,341 @@ <h1>Coverage Summary for Class: HealthCheckRegistryListener (com.codahale.metric
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import javax.net.SocketFactory;
     &nbsp;
    -&nbsp;import java.util.EventListener;
    +&nbsp;import java.io.BufferedWriter;
    +&nbsp;import java.io.ByteArrayOutputStream;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.io.OutputStream;
    +&nbsp;import java.io.OutputStreamWriter;
    +&nbsp;import java.io.Writer;
    +&nbsp;import java.net.InetSocketAddress;
    +&nbsp;import java.net.Socket;
    +&nbsp;import java.net.UnknownHostException;
    +&nbsp;import java.nio.ByteBuffer;
    +&nbsp;import java.nio.charset.Charset;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.List;
    +&nbsp;
    +&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
     &nbsp;
     &nbsp;/**
    -&nbsp; * A listener contract for {@link HealthCheckRegistry} events.
    +&nbsp; * A client to a Carbon server that sends all metrics after they have been pickled in configurable sized batches
     &nbsp; */
    -&nbsp;public interface HealthCheckRegistryListener extends EventListener {
    +&nbsp;public class PickledGraphite implements GraphiteSender {
    +&nbsp;
    +&nbsp;    static class MetricTuple {
    +&nbsp;        String name;
    +&nbsp;        long timestamp;
    +&nbsp;        String value;
    +&nbsp;
    +<b class="nc">&nbsp;        MetricTuple(String name, long timestamp, String value) {</b>
    +<b class="nc">&nbsp;            this.name = name;</b>
    +<b class="nc">&nbsp;            this.timestamp = timestamp;</b>
    +<b class="nc">&nbsp;            this.value = value;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Minimally necessary pickle opcodes.
    +&nbsp;     */
    +&nbsp;    private static final char
    +&nbsp;            MARK = &#39;(&#39;,
    +&nbsp;            STOP = &#39;.&#39;,
    +&nbsp;            LONG = &#39;L&#39;,
    +&nbsp;            STRING = &#39;S&#39;,
    +&nbsp;            APPEND = &#39;a&#39;,
    +&nbsp;            LIST = &#39;l&#39;,
    +&nbsp;            TUPLE = &#39;t&#39;,
    +&nbsp;            QUOTE = &#39;\&#39;&#39;,
    +&nbsp;            LF = &#39;\n&#39;;
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(PickledGraphite.class);</b>
    +&nbsp;    private final static int DEFAULT_BATCH_SIZE = 100;
    +&nbsp;
    +&nbsp;    private int batchSize;
    +&nbsp;    // graphite expects a python-pickled list of nested tuples.
    +<b class="fc">&nbsp;    private List&lt;MetricTuple&gt; metrics = new ArrayList&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    private final String hostname;
    +&nbsp;    private final int port;
    +&nbsp;    private final InetSocketAddress address;
    +&nbsp;    private final SocketFactory socketFactory;
    +&nbsp;    private final Charset charset;
    +&nbsp;
    +&nbsp;    private Socket socket;
    +&nbsp;    private Writer writer;
    +&nbsp;    private int failures;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
    +&nbsp;     * to a batchSize of 100
    +&nbsp;     *
    +&nbsp;     * @param address the address of the Carbon server
    +&nbsp;     */
    +&nbsp;    public PickledGraphite(InetSocketAddress address) {
    +<b class="nc">&nbsp;        this(address, DEFAULT_BATCH_SIZE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}.
    +&nbsp;     *
    +&nbsp;     * @param address   the address of the Carbon server
    +&nbsp;     * @param batchSize how many metrics are bundled into a single pickle request to graphite
    +&nbsp;     */
    +&nbsp;    public PickledGraphite(InetSocketAddress address, int batchSize) {
    +<b class="nc">&nbsp;        this(address, SocketFactory.getDefault(), batchSize);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory.
    +&nbsp;     *
    +&nbsp;     * @param address       the address of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    +&nbsp;     */
    +&nbsp;    public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, int batchSize) {
    +<b class="nc">&nbsp;        this(address, socketFactory, UTF_8, batchSize);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory using the given character set.
    +&nbsp;     *
    +&nbsp;     * @param address       the address of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     * @param charset       the character set used by the server
    +&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    +&nbsp;     */
    +<b class="fc">&nbsp;    public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset, int batchSize) {</b>
    +<b class="fc">&nbsp;        this.address = address;</b>
    +<b class="fc">&nbsp;        this.hostname = null;</b>
    +<b class="fc">&nbsp;        this.port = -1;</b>
    +<b class="fc">&nbsp;        this.socketFactory = socketFactory;</b>
    +<b class="fc">&nbsp;        this.charset = charset;</b>
    +<b class="fc">&nbsp;        this.batchSize = batchSize;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
    +&nbsp;     * to a batchSize of 100
    +&nbsp;     *
    +&nbsp;     * @param hostname the hostname of the Carbon server
    +&nbsp;     * @param port     the port of the Carbon server
    +&nbsp;     */
    +&nbsp;    public PickledGraphite(String hostname, int port) {
    +<b class="nc">&nbsp;        this(hostname, port, DEFAULT_BATCH_SIZE);</b>
    +&nbsp;    }
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * Called when a new {@link HealthCheck} is added to the registry.
    +&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}.
     &nbsp;     *
    -&nbsp;     * @param name        the name of the health check
    -&nbsp;     * @param healthCheck the health check
    +&nbsp;     * @param hostname  the hostname of the Carbon server
    +&nbsp;     * @param port      the port of the Carbon server
    +&nbsp;     * @param batchSize how many metrics are bundled into a single pickle request to graphite
     &nbsp;     */
    -&nbsp;    void onHealthCheckAdded(String name, HealthCheck healthCheck);
    +&nbsp;    public PickledGraphite(String hostname, int port, int batchSize) {
    +<b class="nc">&nbsp;        this(hostname, port, SocketFactory.getDefault(), batchSize);</b>
    +&nbsp;    }
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * Called when a {@link HealthCheck} is removed from the registry.
    +&nbsp;     * Creates a new client which connects to the given address and socket factory.
     &nbsp;     *
    -&nbsp;     * @param name        the name of the health check
    -&nbsp;     * @param healthCheck the health check
    +&nbsp;     * @param hostname      the hostname of the Carbon server
    +&nbsp;     * @param port          the port of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
     &nbsp;     */
    -&nbsp;    void onHealthCheckRemoved(String name, HealthCheck healthCheck);
    +&nbsp;    public PickledGraphite(String hostname, int port, SocketFactory socketFactory, int batchSize) {
    +<b class="nc">&nbsp;        this(hostname, port, socketFactory, UTF_8, batchSize);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new client which connects to the given address and socket factory using the given character set.
    +&nbsp;     *
    +&nbsp;     * @param hostname      the hostname of the Carbon server
    +&nbsp;     * @param port          the port of the Carbon server
    +&nbsp;     * @param socketFactory the socket factory
    +&nbsp;     * @param charset       the character set used by the server
    +&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    +&nbsp;     */
    +<b class="nc">&nbsp;    public PickledGraphite(String hostname, int port, SocketFactory socketFactory, Charset charset, int batchSize) {</b>
    +<b class="nc">&nbsp;        this.address = null;</b>
    +<b class="nc">&nbsp;        this.hostname = hostname;</b>
    +<b class="nc">&nbsp;        this.port = port;</b>
    +<b class="nc">&nbsp;        this.socketFactory = socketFactory;</b>
    +<b class="nc">&nbsp;        this.charset = charset;</b>
    +<b class="nc">&nbsp;        this.batchSize = batchSize;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void connect() throws IllegalStateException, IOException {
    +<b class="fc">&nbsp;        if (isConnected()) {</b>
    +<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        InetSocketAddress address = this.address;</b>
    +<b class="fc">&nbsp;        if (address == null) {</b>
    +<b class="nc">&nbsp;            address = new InetSocketAddress(hostname, port);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        if (address.getAddress() == null) {</b>
    +<b class="fc">&nbsp;            throw new UnknownHostException(address.getHostName());</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="nc">&nbsp;        this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());</b>
    +<b class="nc">&nbsp;        this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public boolean isConnected() {
    +<b class="fc">&nbsp;        return socket != null &amp;&amp; socket.isConnected() &amp;&amp; !socket.isClosed();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Convert the metric to a python tuple of the form:
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * (timestamp, (name, value))
    +&nbsp;     * &lt;p&gt;
    +&nbsp;     * And add it to the list of metrics. If we reach the batch size, write them out.
    +&nbsp;     *
    +&nbsp;     * @param name      the name of the metric
    +&nbsp;     * @param value     the value of the metric
    +&nbsp;     * @param timestamp the timestamp of the metric
    +&nbsp;     * @throws IOException if there was an error sending the metric
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    +<b class="nc">&nbsp;        metrics.add(new MetricTuple(sanitize(name), timestamp, sanitize(value)));</b>
    +&nbsp;
    +<b class="nc">&nbsp;        if (metrics.size() &gt;= batchSize) {</b>
    +<b class="nc">&nbsp;            writeMetrics();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void flush() throws IOException {
    +<b class="nc">&nbsp;        writeMetrics();</b>
    +<b class="nc">&nbsp;        if (writer != null) {</b>
    +<b class="nc">&nbsp;            writer.flush();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void close() throws IOException {
    +&nbsp;        try {
    +<b class="nc">&nbsp;            flush();</b>
    +<b class="nc">&nbsp;            if (writer != null) {</b>
    +<b class="nc">&nbsp;                writer.close();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    +<b class="nc">&nbsp;            if (socket != null) {</b>
    +<b class="nc">&nbsp;                socket.close();</b>
    +&nbsp;            }
    +&nbsp;        } finally {
    +<b class="nc">&nbsp;            this.socket = null;</b>
    +<b class="nc">&nbsp;            this.writer = null;</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public int getFailures() {
    +<b class="nc">&nbsp;        return failures;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * 1. Run the pickler script to package all the pending metrics into a single message
    +&nbsp;     * 2. Send the message to graphite
    +&nbsp;     * 3. Clear out the list of metrics
    +&nbsp;     */
    +&nbsp;    private void writeMetrics() throws IOException {
    +<b class="nc">&nbsp;        if (metrics.size() &gt; 0) {</b>
    +&nbsp;            try {
    +<b class="nc">&nbsp;                byte[] payload = pickleMetrics(metrics);</b>
    +<b class="nc">&nbsp;                byte[] header = ByteBuffer.allocate(4).putInt(payload.length).array();</b>
    +&nbsp;
    +&nbsp;                @SuppressWarnings(&quot;resource&quot;)
    +<b class="nc">&nbsp;                OutputStream outputStream = socket.getOutputStream();</b>
    +<b class="nc">&nbsp;                outputStream.write(header);</b>
    +<b class="nc">&nbsp;                outputStream.write(payload);</b>
    +<b class="nc">&nbsp;                outputStream.flush();</b>
    +&nbsp;
    +<b class="nc">&nbsp;                if (LOGGER.isDebugEnabled()) {</b>
    +<b class="nc">&nbsp;                    LOGGER.debug(&quot;Wrote {} metrics&quot;, metrics.size());</b>
    +&nbsp;                }
    +<b class="nc">&nbsp;            } catch (IOException e) {</b>
    +<b class="nc">&nbsp;                this.failures++;</b>
    +<b class="nc">&nbsp;                throw e;</b>
    +&nbsp;            } finally {
    +&nbsp;                // if there was an error, we might miss some data. for now, drop those on the floor and
    +&nbsp;                // try to keep going.
    +<b class="nc">&nbsp;                metrics.clear();</b>
    +<b class="nc">&nbsp;            }</b>
    +&nbsp;
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * See: http://readthedocs.org/docs/graphite/en/1.0/feeding-carbon.html
    +&nbsp;     *
    +&nbsp;     * @throws IOException shouldn&#39;t happen because we write to memory.
    +&nbsp;     */
    +&nbsp;    byte[] pickleMetrics(List&lt;MetricTuple&gt; metrics) throws IOException {
    +&nbsp;        // Extremely rough estimate of 75 bytes per message
    +<b class="nc">&nbsp;        ByteArrayOutputStream out = new ByteArrayOutputStream(metrics.size() * 75);</b>
    +<b class="nc">&nbsp;        Writer pickled = new OutputStreamWriter(out, charset);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        pickled.append(MARK);</b>
    +<b class="nc">&nbsp;        pickled.append(LIST);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        for (MetricTuple tuple : metrics) {</b>
    +&nbsp;            // start the outer tuple
    +<b class="nc">&nbsp;            pickled.append(MARK);</b>
    +&nbsp;
    +&nbsp;            // the metric name is a string.
    +<b class="nc">&nbsp;            pickled.append(STRING);</b>
    +&nbsp;            // the single quotes are to match python&#39;s repr(&quot;abcd&quot;)
    +<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    +<b class="nc">&nbsp;            pickled.append(tuple.name);</b>
    +<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    +<b class="nc">&nbsp;            pickled.append(LF);</b>
    +&nbsp;
    +&nbsp;            // start the inner tuple
    +<b class="nc">&nbsp;            pickled.append(MARK);</b>
    +&nbsp;
    +&nbsp;            // timestamp is a long
    +<b class="nc">&nbsp;            pickled.append(LONG);</b>
    +<b class="nc">&nbsp;            pickled.append(Long.toString(tuple.timestamp));</b>
    +&nbsp;            // the trailing L is to match python&#39;s repr(long(1234))
    +<b class="nc">&nbsp;            pickled.append(LONG);</b>
    +<b class="nc">&nbsp;            pickled.append(LF);</b>
    +&nbsp;
    +&nbsp;            // and the value is a string.
    +<b class="nc">&nbsp;            pickled.append(STRING);</b>
    +<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    +<b class="nc">&nbsp;            pickled.append(tuple.value);</b>
    +<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    +<b class="nc">&nbsp;            pickled.append(LF);</b>
    +&nbsp;
    +<b class="nc">&nbsp;            pickled.append(TUPLE); // inner close</b>
    +<b class="nc">&nbsp;            pickled.append(TUPLE); // outer close</b>
    +&nbsp;
    +<b class="nc">&nbsp;            pickled.append(APPEND);</b>
    +<b class="nc">&nbsp;        }</b>
    +&nbsp;
    +&nbsp;        // every pickle ends with STOP
    +<b class="nc">&nbsp;        pickled.append(STOP);</b>
    +&nbsp;
    +<b class="nc">&nbsp;        pickled.flush();</b>
    +&nbsp;
    +<b class="nc">&nbsp;        return out.toByteArray();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected String sanitize(String s) {
    +<b class="nc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    +&nbsp;    }
     &nbsp;
     &nbsp;}
     </code>
    @@ -97,7 +461,7 @@ <h1>Coverage Summary for Class: HealthCheckRegistryListener (com.codahale.metric
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-7.html
    new file mode 100644
    index 0000000000..4394344d2f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-7.html
    @@ -0,0 +1,113 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > GraphiteSender</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.graphite</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: GraphiteSender (com.codahale.metrics.graphite)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +<tr>
    +  <td class="name">GraphiteSender</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    +&nbsp;
    +&nbsp;import java.io.Closeable;
    +&nbsp;import java.io.IOException;
    +&nbsp;
    +&nbsp;public interface GraphiteSender extends Closeable {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Connects to the server.
    +&nbsp;     *
    +&nbsp;     * @throws IllegalStateException if the client is already connected
    +&nbsp;     * @throws IOException           if there is an error connecting
    +&nbsp;     */
    +&nbsp;    void connect() throws IllegalStateException, IOException;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Sends the given measurement to the server.
    +&nbsp;     *
    +&nbsp;     * @param name      the name of the metric
    +&nbsp;     * @param value     the value of the metric
    +&nbsp;     * @param timestamp the timestamp of the metric
    +&nbsp;     * @throws IOException if there was an error sending the metric
    +&nbsp;     */
    +&nbsp;    void send(String name, String value, long timestamp) throws IOException;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Flushes buffer, if applicable
    +&nbsp;     *
    +&nbsp;     * @throws IOException if there was an error during flushing metrics to the socket
    +&nbsp;     */
    +&nbsp;    void flush() throws IOException;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns true if ready to send data
    +&nbsp;     */
    +&nbsp;    boolean isConnected();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the number of failed writes to the server.
    +&nbsp;     *
    +&nbsp;     * @return the number of failed writes to the server
    +&nbsp;     */
    +&nbsp;    int getFailures();
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index.html
    index 0e14ed751a..eff827f142 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <title>Coverage Report > com.codahale.metrics.health</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    +com.codahale.metrics.health</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    +    <td class="name">com.codahale.metrics.health</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    97.4%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (74/76)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    91.6%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (217/237)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,88 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,12 +178,31 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
         (2/2)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,7 +210,15 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -137,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK.html
    index 560a304495..2d8f1667d0 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <title>Coverage Report > com.codahale.metrics.health</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    +com.codahale.metrics.health</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    +    <td class="name">com.codahale.metrics.health</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    97.4%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (74/76)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    91.6%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (217/237)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,88 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,12 +178,31 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
         (2/2)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,7 +210,15 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -137,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
    index 1e97b23e42..be34226a37 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <title>Coverage Report > com.codahale.metrics.health</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    +com.codahale.metrics.health</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    +    <td class="name">com.codahale.metrics.health</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    97.4%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (74/76)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    91.6%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (217/237)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,12 +124,93 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
         (2/2)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (7/7)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,7 +218,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (31/31)
       </span>
     </td>
       </tr>
    @@ -137,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS.html
    index 95d84c8d3f..512c44ad3e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <title>Coverage Report > com.codahale.metrics.health</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    +com.codahale.metrics.health</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    +    <td class="name">com.codahale.metrics.health</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    97.4%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (74/76)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    91.6%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (217/237)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,88 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,12 +178,31 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
         (2/2)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,7 +210,15 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -137,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
    index 1a1c5447a6..e7f899defb 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <title>Coverage Report > com.codahale.metrics.health</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    +com.codahale.metrics.health</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    +    <td class="name">com.codahale.metrics.health</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    97.4%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (74/76)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    91.6%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (217/237)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,12 +124,93 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
         (2/2)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (7/7)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,7 +218,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (31/31)
       </span>
     </td>
       </tr>
    @@ -137,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE.html
    index f549a34996..0db681b671 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <title>Coverage Report > com.codahale.metrics.health</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    +com.codahale.metrics.health</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    +    <td class="name">com.codahale.metrics.health</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    97.4%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (74/76)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    91.6%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (217/237)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,12 +124,93 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
         (2/2)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,7 +218,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
       </tr>
    @@ -137,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
    index c7ec58c227..b977ca057e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <title>Coverage Report > com.codahale.metrics.health</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    +com.codahale.metrics.health</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    +    <td class="name">com.codahale.metrics.health</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    97.4%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (74/76)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    91.6%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (217/237)
       </span>
     </td>
       </tr>
    @@ -88,13 +88,67 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
    @@ -102,15 +156,69 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
       </span>
     </td>
       </tr>
    @@ -137,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD.html
    index 37fffa71cc..95be111a3b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <title>Coverage Report > com.codahale.metrics.health</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    +com.codahale.metrics.health</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    +    <td class="name">com.codahale.metrics.health</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    97.4%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (74/76)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    91.6%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (217/237)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,12 +97,66 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
         (2/2)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (7/7)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,7 +164,61 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
       </span>
     </td>
       </tr>
    @@ -137,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
    index ea9e392f42..53ddbd3807 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <title>Coverage Report > com.codahale.metrics.health</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    +com.codahale.metrics.health</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    +    <td class="name">com.codahale.metrics.health</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    97.4%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (74/76)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    91.6%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (217/237)
       </span>
     </td>
       </tr>
    @@ -88,13 +88,75 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
       </span>
     </td>
     <td class="coverageStat">
    @@ -102,15 +164,61 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (31/31)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
       </span>
     </td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
       </span>
     </td>
       </tr>
    @@ -137,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
    index ca216847a5..850d6f809d 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    +  <title>Coverage Report > com.codahale.metrics.health</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    +com.codahale.metrics.health</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    +    <td class="name">com.codahale.metrics.health</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (8/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    97.4%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (74/76)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    91.6%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (217/237)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    +    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,12 +124,93 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
         (2/2)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (7/7)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,7 +218,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (31/31)
       </span>
     </td>
       </tr>
    @@ -137,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-1.html
    index 8fcca70e95..72f11d4b04 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Async</title>
    +  <title>Coverage Report > AsyncHealthCheckDecorator</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,16 +19,19 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health.annotation</a>
    +    <a href="../index.html">com.codahale.metrics.health</a>
     </div>
     
    -<h1>Coverage Summary for Class: Async (com.codahale.metrics.health.annotation)</h1>
    +<h1>Coverage Summary for Class: AsyncHealthCheckDecorator (com.codahale.metrics.health)</h1>
     
     <table class="coverageStats">
    -
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
     ">
       Method, %
     </th>
    @@ -37,52 +40,22 @@ <h1>Coverage Summary for Class: Async (com.codahale.metrics.health.annotation)</
       Line, %
     </th>
     </tr>
    -  <tr>
    -    <td class="name">Async$InitialState</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Async$ScheduleType</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    +<tr>
    +  <td class="name">AsyncHealthCheckDecorator</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (1/1)
       </span>
     </td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (7/7)
       </span>
     </td>
     <td class="coverageStat">
    @@ -90,10 +63,11 @@ <h1>Coverage Summary for Class: Async (com.codahale.metrics.health.annotation)</
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (31/31)
       </span>
     </td>
     </tr>
    +
     </table>
     
     <br/>
    @@ -101,80 +75,85 @@ <h1>Coverage Summary for Class: Async (com.codahale.metrics.health.annotation)</
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health.annotation;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
     &nbsp;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;import com.codahale.metrics.health.annotation.Async;
    +&nbsp;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.ScheduledFuture;
     &nbsp;
     &nbsp;/**
    -&nbsp; * An annotation for marking asynchronous health check execution.
    +&nbsp; * A health check decorator to manage asynchronous executions.
     &nbsp; */
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target(ElementType.TYPE)
    -&nbsp;public @interface Async {
    -&nbsp;    /**
    -&nbsp;     * Enum representing the initial health states.
    -&nbsp;     */
    -<b class="fc">&nbsp;    enum InitialState {</b>
    -<b class="fc">&nbsp;        HEALTHY, UNHEALTHY</b>
    -&nbsp;    }
    +&nbsp;public class AsyncHealthCheckDecorator extends HealthCheck implements Runnable {
    +&nbsp;    private static final String NO_RESULT_YET_MESSAGE = &quot;Waiting for first asynchronous check result.&quot;;
    +&nbsp;    private final HealthCheck healthCheck;
    +&nbsp;    private final ScheduledFuture&lt;?&gt; future;
    +&nbsp;    private final long healthyTtl;
    +&nbsp;    private final Clock clock;
    +&nbsp;    private volatile Result result;
    +&nbsp;
    +<b class="fc">&nbsp;    AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService, Clock clock) {</b>
    +<b class="fc">&nbsp;        check(healthCheck != null, &quot;healthCheck cannot be null&quot;);</b>
    +<b class="fc">&nbsp;        check(executorService != null, &quot;executorService cannot be null&quot;);</b>
    +<b class="fc">&nbsp;        Async async = healthCheck.getClass().getAnnotation(Async.class);</b>
    +<b class="fc">&nbsp;        check(async != null, &quot;healthCheck must contain Async annotation&quot;);</b>
    +<b class="fc">&nbsp;        check(async.period() &gt; 0, &quot;period cannot be less than or equal to zero&quot;);</b>
    +<b class="fc">&nbsp;        check(async.initialDelay() &gt;= 0, &quot;initialDelay cannot be less than zero&quot;);</b>
    +&nbsp;
    +&nbsp;
    +<b class="fc">&nbsp;        this.clock = clock;</b>
    +<b class="fc">&nbsp;        this.healthCheck = healthCheck;</b>
    +<b class="fc">&nbsp;        this.healthyTtl = async.unit().toMillis(async.healthyTtl() &lt;= 0 ? 2 * async.period() : async.healthyTtl());</b>
    +<b class="fc">&nbsp;        result = Async.InitialState.HEALTHY.equals(async.initialState()) ? Result.healthy(NO_RESULT_YET_MESSAGE) :</b>
    +<b class="fc">&nbsp;                Result.unhealthy(NO_RESULT_YET_MESSAGE);</b>
    +<b class="fc">&nbsp;        if (Async.ScheduleType.FIXED_RATE.equals(async.scheduleType())) {</b>
    +<b class="fc">&nbsp;            future = executorService.scheduleAtFixedRate(this, async.initialDelay(), async.period(), async.unit());</b>
    +&nbsp;        } else {
    +<b class="fc">&nbsp;            future = executorService.scheduleWithFixedDelay(this, async.initialDelay(), async.period(), async.unit());</b>
    +&nbsp;        }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Enum representing the possible schedule types.
    -&nbsp;     */
    -<b class="fc">&nbsp;    enum ScheduleType {</b>
    -<b class="fc">&nbsp;        FIXED_RATE, FIXED_DELAY</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Period between executions.
    -&nbsp;     *
    -&nbsp;     * @return period
    -&nbsp;     */
    -&nbsp;    long period();
    +&nbsp;    AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService) {
    +<b class="fc">&nbsp;        this(healthCheck, executorService, Clock.defaultClock());</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Scheduling type of asynchronous executions.
    -&nbsp;     *
    -&nbsp;     * @return schedule type
    -&nbsp;     */
    -&nbsp;    ScheduleType scheduleType() default ScheduleType.FIXED_RATE;
    +&nbsp;    @Override
    +&nbsp;    public void run() {
    +<b class="fc">&nbsp;        result = healthCheck.execute();</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Initial delay of first execution.
    -&nbsp;     *
    -&nbsp;     * @return initial delay
    -&nbsp;     */
    -&nbsp;    long initialDelay() default 0;
    +&nbsp;    @Override
    +&nbsp;    protected Result check() throws Exception {
    +<b class="fc">&nbsp;        long expiration = clock.getTime() - result.getTime() - healthyTtl;</b>
    +<b class="fc">&nbsp;        if (expiration &gt; 0) {</b>
    +<b class="fc">&nbsp;            return Result.builder()</b>
    +<b class="fc">&nbsp;                    .unhealthy()</b>
    +<b class="fc">&nbsp;                    .usingClock(clock)</b>
    +<b class="fc">&nbsp;                    .withMessage(&quot;Result was %s but it expired %d milliseconds ago&quot;,</b>
    +<b class="fc">&nbsp;                            result.isHealthy() ? &quot;healthy&quot; : &quot;unhealthy&quot;,</b>
    +<b class="fc">&nbsp;                            expiration)</b>
    +<b class="fc">&nbsp;                    .build();</b>
    +&nbsp;        }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Time unit of initial delay, period and healthyTtl.
    -&nbsp;     *
    -&nbsp;     * @return time unit
    -&nbsp;     */
    -&nbsp;    TimeUnit unit() default TimeUnit.SECONDS;
    +<b class="fc">&nbsp;        return result;</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * Initial health state until first asynchronous execution completes.
    -&nbsp;     *
    -&nbsp;     * @return initial health state
    -&nbsp;     */
    -&nbsp;    InitialState initialState() default InitialState.HEALTHY;
    +&nbsp;    boolean tearDown() {
    +<b class="fc">&nbsp;        return future.cancel(true);</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * How long a healthy result is considered valid before being ignored.
    -&nbsp;     *
    -&nbsp;     * Handles cases where the asynchronous healthcheck did not run (for example thread starvation).
    -&nbsp;     *
    -&nbsp;     * Defaults to 2 * period
    -&nbsp;     *
    -&nbsp;     * @return healthy result time to live
    -&nbsp;     */
    -&nbsp;    long healthyTtl() default -1;
    +&nbsp;    public HealthCheck getHealthCheck() {
    +<b class="fc">&nbsp;        return healthCheck;</b>
    +&nbsp;    }
     &nbsp;
    +&nbsp;    private static void check(boolean expression, String message) {
    +<b class="fc">&nbsp;        if (!expression) {</b>
    +<b class="fc">&nbsp;            throw new IllegalArgumentException(message);</b>
    +&nbsp;        }
    +&nbsp;    }
     &nbsp;}
     </code>
     </pre>
    @@ -199,7 +178,7 @@ <h1>Coverage Summary for Class: Async (com.codahale.metrics.health.annotation)</
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-2.html
    new file mode 100644
    index 0000000000..be16a2f2e9
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-2.html
    @@ -0,0 +1,546 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheck</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheck (com.codahale.metrics.health)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HealthCheck</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (9/9)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HealthCheck$1</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheck$MockitoMock$N8CZXceh</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheck$MockitoMock$N8CZXceh$auxiliary$7kHSbsru</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheck$MockitoMock$N8CZXceh$auxiliary$qYd6qSxJ</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheck$Result</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.7%
    +  </span>
    +  <span class="absValue">
    +    (22/23)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    84.5%
    +  </span>
    +  <span class="absValue">
    +    (49/58)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheck$ResultBuilder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    97.2%
    +  </span>
    +  <span class="absValue">
    +    (35/36)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    88.6%
    +  </span>
    +  <span class="absValue">
    +    (78/88)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Clock;
    +&nbsp;
    +&nbsp;import java.time.Instant;
    +&nbsp;import java.time.ZoneId;
    +&nbsp;import java.time.ZonedDateTime;
    +&nbsp;import java.time.format.DateTimeFormatter;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.LinkedHashMap;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A health check for a component of your application.
    +&nbsp; */
    +<b class="fc">&nbsp;public abstract class HealthCheck {</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * The result of a {@link HealthCheck} being run. It can be healthy (with an optional message and optional details)
    +&nbsp;     * or unhealthy (with either an error message or a thrown exception and optional details).
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class Result {</b>
    +<b class="fc">&nbsp;        private static final DateTimeFormatter DATE_FORMAT_PATTERN =</b>
    +<b class="fc">&nbsp;                DateTimeFormatter.ofPattern(&quot;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSSXXX&quot;);</b>
    +&nbsp;        private static final int PRIME = 31;
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns a healthy {@link Result} with no additional message.
    +&nbsp;         *
    +&nbsp;         * @return a healthy {@link Result} with no additional message
    +&nbsp;         */
    +&nbsp;        public static Result healthy() {
    +<b class="fc">&nbsp;            return new Result(true, null, null);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns a healthy {@link Result} with an additional message.
    +&nbsp;         *
    +&nbsp;         * @param message an informative message
    +&nbsp;         * @return a healthy {@link Result} with an additional message
    +&nbsp;         */
    +&nbsp;        public static Result healthy(String message) {
    +<b class="fc">&nbsp;            return new Result(true, message, null);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns a healthy {@link Result} with a formatted message.
    +&nbsp;         * &lt;p&gt;
    +&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    +&nbsp;         *
    +&nbsp;         * @param message a message format\\
    +&nbsp;         * @param args    the arguments apply to the message format
    +&nbsp;         * @return a healthy {@link Result} with an additional message
    +&nbsp;         * @see String#format(String, Object...)
    +&nbsp;         */
    +&nbsp;        public static Result healthy(String message, Object... args) {
    +<b class="fc">&nbsp;            return healthy(String.format(message, args));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns an unhealthy {@link Result} with the given message.
    +&nbsp;         *
    +&nbsp;         * @param message an informative message describing how the health check failed
    +&nbsp;         * @return an unhealthy {@link Result} with the given message
    +&nbsp;         */
    +&nbsp;        public static Result unhealthy(String message) {
    +<b class="fc">&nbsp;            return new Result(false, message, null);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns an unhealthy {@link Result} with a formatted message.
    +&nbsp;         * &lt;p&gt;
    +&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    +&nbsp;         *
    +&nbsp;         * @param message a message format
    +&nbsp;         * @param args    the arguments apply to the message format
    +&nbsp;         * @return an unhealthy {@link Result} with an additional message
    +&nbsp;         * @see String#format(String, Object...)
    +&nbsp;         */
    +&nbsp;        public static Result unhealthy(String message, Object... args) {
    +<b class="fc">&nbsp;            return unhealthy(String.format(message, args));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns an unhealthy {@link Result} with the given error.
    +&nbsp;         *
    +&nbsp;         * @param error an exception thrown during the health check
    +&nbsp;         * @return an unhealthy {@link Result} with the given {@code error}
    +&nbsp;         */
    +&nbsp;        public static Result unhealthy(Throwable error) {
    +<b class="fc">&nbsp;            return new Result(false, error.getMessage(), error);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns a new {@link ResultBuilder}
    +&nbsp;         *
    +&nbsp;         * @return the {@link ResultBuilder}
    +&nbsp;         */
    +&nbsp;        public static ResultBuilder builder() {
    +<b class="fc">&nbsp;            return new ResultBuilder();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private final boolean healthy;
    +&nbsp;        private final String message;
    +&nbsp;        private final Throwable error;
    +&nbsp;        private final Map&lt;String, Object&gt; details;
    +&nbsp;        private final long time;
    +&nbsp;
    +&nbsp;        private long duration; // Calculated field
    +&nbsp;
    +&nbsp;        private Result(boolean isHealthy, String message, Throwable error) {
    +<b class="fc">&nbsp;            this(isHealthy, message, error, null, Clock.defaultClock());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Result(ResultBuilder builder) {
    +<b class="fc">&nbsp;            this(builder.healthy, builder.message, builder.error, builder.details, builder.clock);</b>
    +&nbsp;        }
    +&nbsp;
    +<b class="fc">&nbsp;        private Result(boolean isHealthy, String message, Throwable error, Map&lt;String, Object&gt; details, Clock clock) {</b>
    +<b class="fc">&nbsp;            this.healthy = isHealthy;</b>
    +<b class="fc">&nbsp;            this.message = message;</b>
    +<b class="fc">&nbsp;            this.error = error;</b>
    +<b class="fc">&nbsp;            this.details = details == null ? null : Collections.unmodifiableMap(details);</b>
    +<b class="fc">&nbsp;            this.time = clock.getTime();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns {@code true} if the result indicates the component is healthy; {@code false}
    +&nbsp;         * otherwise.
    +&nbsp;         *
    +&nbsp;         * @return {@code true} if the result indicates the component is healthy
    +&nbsp;         */
    +&nbsp;        public boolean isHealthy() {
    +<b class="fc">&nbsp;            return healthy;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns any additional message for the result, or {@code null} if the result has no
    +&nbsp;         * message.
    +&nbsp;         *
    +&nbsp;         * @return any additional message for the result, or {@code null}
    +&nbsp;         */
    +&nbsp;        public String getMessage() {
    +<b class="fc">&nbsp;            return message;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns any exception for the result, or {@code null} if the result has no exception.
    +&nbsp;         *
    +&nbsp;         * @return any exception for the result, or {@code null}
    +&nbsp;         */
    +&nbsp;        public Throwable getError() {
    +<b class="fc">&nbsp;            return error;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the timestamp when the result was created as a formatted String.
    +&nbsp;         *
    +&nbsp;         * @return a formatted timestamp
    +&nbsp;         */
    +&nbsp;        public String getTimestamp() {
    +<b class="fc">&nbsp;            Instant currentInstant = Instant.ofEpochMilli(time);</b>
    +<b class="fc">&nbsp;            ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(currentInstant, ZoneId.systemDefault());</b>
    +<b class="fc">&nbsp;            return DATE_FORMAT_PATTERN.format(zonedDateTime);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the time when the result was created, in milliseconds since Epoch
    +&nbsp;         *
    +&nbsp;         * @return the time when the result was created
    +&nbsp;         */
    +&nbsp;        public long getTime() {
    +<b class="fc">&nbsp;            return time;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Returns the duration in milliseconds that the healthcheck took to run
    +&nbsp;         *
    +&nbsp;         * @return the duration
    +&nbsp;         */
    +&nbsp;        public long getDuration() {
    +<b class="fc">&nbsp;            return duration;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Sets the duration in milliseconds. This will indicate the time it took to run the individual healthcheck
    +&nbsp;         *
    +&nbsp;         * @param duration The duration in milliseconds
    +&nbsp;         */
    +&nbsp;        public void setDuration(long duration) {
    +<b class="fc">&nbsp;            this.duration = duration;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Map&lt;String, Object&gt; getDetails() {
    +<b class="fc">&nbsp;            return details;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public boolean equals(Object o) {
    +<b class="fc">&nbsp;            if (this == o) {</b>
    +<b class="fc">&nbsp;                return true;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    +<b class="nc">&nbsp;                return false;</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            final Result result = (Result) o;</b>
    +<b class="fc">&nbsp;            return healthy == result.healthy &amp;&amp;</b>
    +<b class="nc">&nbsp;                    !(error != null ? !error.equals(result.error) : result.error != null) &amp;&amp;</b>
    +<b class="fc">&nbsp;                    !(message != null ? !message.equals(result.message) : result.message != null) &amp;&amp;</b>
    +&nbsp;                    time == result.time;
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public int hashCode() {
    +<b class="nc">&nbsp;            int result = healthy ? 1 : 0;</b>
    +<b class="nc">&nbsp;            result = PRIME * result + (message != null ? message.hashCode() : 0);</b>
    +<b class="nc">&nbsp;            result = PRIME * result + (error != null ? error.hashCode() : 0);</b>
    +<b class="nc">&nbsp;            result = PRIME * result + (Long.hashCode(time));</b>
    +<b class="nc">&nbsp;            return result;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public String toString() {
    +<b class="fc">&nbsp;            final StringBuilder builder = new StringBuilder(&quot;Result{isHealthy=&quot;);</b>
    +<b class="fc">&nbsp;            builder.append(healthy);</b>
    +<b class="fc">&nbsp;            if (message != null) {</b>
    +<b class="nc">&nbsp;                builder.append(&quot;, message=&quot;).append(message);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            if (error != null) {</b>
    +<b class="nc">&nbsp;                builder.append(&quot;, error=&quot;).append(error);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            builder.append(&quot;, duration=&quot;).append(duration);</b>
    +<b class="fc">&nbsp;            builder.append(&quot;, timestamp=&quot;).append(getTimestamp());</b>
    +<b class="fc">&nbsp;            if (details != null) {</b>
    +<b class="fc">&nbsp;                for (Map.Entry&lt;String, Object&gt; e : details.entrySet()) {</b>
    +<b class="fc">&nbsp;                    builder.append(&quot;, &quot;);</b>
    +<b class="fc">&nbsp;                    builder.append(e.getKey())</b>
    +<b class="fc">&nbsp;                            .append(&quot;=&quot;)</b>
    +<b class="fc">&nbsp;                            .append(String.valueOf(e.getValue()));</b>
    +<b class="fc">&nbsp;                }</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            builder.append(&#39;}&#39;);</b>
    +<b class="fc">&nbsp;            return builder.toString();</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * This a convenient builder for an {@link HealthCheck.Result}. It can be health (with optional message and detail)
    +&nbsp;     * or unhealthy (with optional message, error and detail)
    +&nbsp;     */
    +<b class="fc">&nbsp;    public static class ResultBuilder {</b>
    +&nbsp;        private boolean healthy;
    +&nbsp;        private String message;
    +&nbsp;        private Throwable error;
    +&nbsp;        private Map&lt;String, Object&gt; details;
    +&nbsp;        private Clock clock;
    +&nbsp;
    +<b class="fc">&nbsp;        protected ResultBuilder() {</b>
    +<b class="fc">&nbsp;            this.healthy = true;</b>
    +<b class="fc">&nbsp;            this.details = new LinkedHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Configure an healthy result
    +&nbsp;         *
    +&nbsp;         * @return this builder with healthy status
    +&nbsp;         */
    +&nbsp;        public ResultBuilder healthy() {
    +<b class="fc">&nbsp;            this.healthy = true;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Configure an unhealthy result
    +&nbsp;         *
    +&nbsp;         * @return this builder with unhealthy status
    +&nbsp;         */
    +&nbsp;        public ResultBuilder unhealthy() {
    +<b class="fc">&nbsp;            this.healthy = false;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Configure an unhealthy result with an {@code error}
    +&nbsp;         *
    +&nbsp;         * @param error the error
    +&nbsp;         * @return this builder with the given error
    +&nbsp;         */
    +&nbsp;        public ResultBuilder unhealthy(Throwable error) {
    +<b class="fc">&nbsp;            this.error = error;</b>
    +<b class="fc">&nbsp;            return this.unhealthy().withMessage(error.getMessage());</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Set an optional message
    +&nbsp;         *
    +&nbsp;         * @param message an informative message
    +&nbsp;         * @return this builder with the given {@code message}
    +&nbsp;         */
    +&nbsp;        public ResultBuilder withMessage(String message) {
    +<b class="fc">&nbsp;            this.message = message;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Set an optional formatted message
    +&nbsp;         * &lt;p&gt;
    +&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    +&nbsp;         *
    +&nbsp;         * @param message a message format
    +&nbsp;         * @param args    the arguments apply to the message format
    +&nbsp;         * @return this builder with the given formatted {@code message}
    +&nbsp;         * @see String#format(String, Object...)
    +&nbsp;         */
    +&nbsp;        public ResultBuilder withMessage(String message, Object... args) {
    +<b class="fc">&nbsp;            return withMessage(String.format(message, args));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Add an optional detail
    +&nbsp;         *
    +&nbsp;         * @param key  a key for this detail
    +&nbsp;         * @param data an object representing the detail data
    +&nbsp;         * @return this builder with the given detail added
    +&nbsp;         */
    +&nbsp;        public ResultBuilder withDetail(String key, Object data) {
    +<b class="fc">&nbsp;            if (this.details == null) {</b>
    +<b class="nc">&nbsp;                this.details = new LinkedHashMap&lt;&gt;();</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            this.details.put(key, data);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        /**
    +&nbsp;         * Configure this {@link ResultBuilder} to use the given {@code clock} instead of the default clock.
    +&nbsp;         * If not specified, the default clock is {@link Clock#defaultClock()}.
    +&nbsp;         *
    +&nbsp;         * @param clock the {@link Clock} to use when generating the health check timestamp (useful for unit testing)
    +&nbsp;         * @return this builder configured to use the given {@code clock}
    +&nbsp;         */
    +&nbsp;        public ResultBuilder usingClock(Clock clock) {
    +<b class="fc">&nbsp;            this.clock = clock;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Result build() {
    +<b class="fc">&nbsp;            return new Result(this);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Perform a check of the application component.
    +&nbsp;     *
    +&nbsp;     * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
    +&nbsp;     * Result} with a descriptive error message or exception
    +&nbsp;     * @throws Exception if there is an unhandled error during the health check; this will result in
    +&nbsp;     *                   a failed health check
    +&nbsp;     */
    +&nbsp;    protected abstract Result check() throws Exception;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Executes the health check, catching and handling any exceptions raised by {@link #check()}.
    +&nbsp;     *
    +&nbsp;     * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
    +&nbsp;     * Result} with a descriptive error message or exception
    +&nbsp;     */
    +&nbsp;    public Result execute() {
    +<b class="fc">&nbsp;        long start = clock().getTick();</b>
    +&nbsp;        Result result;
    +&nbsp;        try {
    +<b class="fc">&nbsp;            result = check();</b>
    +<b class="fc">&nbsp;        } catch (Exception e) {</b>
    +<b class="fc">&nbsp;            result = Result.unhealthy(e);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        result.setDuration(TimeUnit.MILLISECONDS.convert(clock().getTick() - start, TimeUnit.NANOSECONDS));</b>
    +<b class="fc">&nbsp;        return result;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    protected Clock clock() {
    +<b class="fc">&nbsp;        return Clock.defaultClock();</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-3.html
    new file mode 100644
    index 0000000000..b33a35b858
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-3.html
    @@ -0,0 +1,125 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheckFilter</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheckFilter (com.codahale.metrics.health)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HealthCheckFilter</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A filter used to determine whether or not a health check should be reported.
    +&nbsp; */
    +&nbsp;@FunctionalInterface
    +&nbsp;public interface HealthCheckFilter {
    +&nbsp;    /**
    +&nbsp;     * Matches all health checks, regardless of type or name.
    +&nbsp;     */
    +<b class="fc">&nbsp;    HealthCheckFilter ALL = (name, healthCheck) -&gt; true;</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns {@code true} if the health check matches the filter; {@code false} otherwise.
    +&nbsp;     *
    +&nbsp;     * @param name        the health check&#39;s name
    +&nbsp;     * @param healthCheck the health check
    +&nbsp;     * @return {@code true} if the health check matches the filter
    +&nbsp;     */
    +&nbsp;    boolean matches(String name, HealthCheck healthCheck);
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-4.html
    new file mode 100644
    index 0000000000..b21b5260d7
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-4.html
    @@ -0,0 +1,418 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheckRegistry</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheckRegistry (com.codahale.metrics.health)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HealthCheckRegistry</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    94.7%
    +  </span>
    +  <span class="absValue">
    +    (18/19)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.7%
    +  </span>
    +  <span class="absValue">
    +    (70/78)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HealthCheckRegistry$NamedThreadFactory</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.2%
    +  </span>
    +  <span class="absValue">
    +    (20/21)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    89.8%
    +  </span>
    +  <span class="absValue">
    +    (79/88)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.health.annotation.Async;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.NoSuchElementException;
    +&nbsp;import java.util.SortedMap;
    +&nbsp;import java.util.SortedSet;
    +&nbsp;import java.util.TreeMap;
    +&nbsp;import java.util.TreeSet;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.CopyOnWriteArrayList;
    +&nbsp;import java.util.concurrent.ExecutorService;
    +&nbsp;import java.util.concurrent.Future;
    +&nbsp;import java.util.concurrent.ScheduledExecutorService;
    +&nbsp;import java.util.concurrent.ScheduledThreadPoolExecutor;
    +&nbsp;import java.util.concurrent.ThreadFactory;
    +&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.health.HealthCheck.Result;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A registry for health checks.
    +&nbsp; */
    +&nbsp;public class HealthCheckRegistry {
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(HealthCheckRegistry.class);</b>
    +&nbsp;    private static final int ASYNC_EXECUTOR_POOL_SIZE = 2;
    +&nbsp;
    +&nbsp;    private final ConcurrentMap&lt;String, HealthCheck&gt; healthChecks;
    +&nbsp;    private final List&lt;HealthCheckRegistryListener&gt; listeners;
    +&nbsp;    private final ScheduledExecutorService asyncExecutorService;
    +<b class="fc">&nbsp;    private final Object lock = new Object();</b>
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    +&nbsp;     */
    +&nbsp;    public HealthCheckRegistry() {
    +<b class="fc">&nbsp;        this(ASYNC_EXECUTOR_POOL_SIZE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    +&nbsp;     *
    +&nbsp;     * @param asyncExecutorPoolSize core pool size for async health check executions
    +&nbsp;     */
    +&nbsp;    public HealthCheckRegistry(int asyncExecutorPoolSize) {
    +<b class="fc">&nbsp;        this(createExecutorService(asyncExecutorPoolSize));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    +&nbsp;     *
    +&nbsp;     * @param asyncExecutorService executor service for async health check executions
    +&nbsp;     */
    +<b class="fc">&nbsp;    public HealthCheckRegistry(ScheduledExecutorService asyncExecutorService) {</b>
    +<b class="fc">&nbsp;        this.healthChecks = new ConcurrentHashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        this.listeners = new CopyOnWriteArrayList&lt;&gt;();</b>
    +<b class="fc">&nbsp;        this.asyncExecutorService = asyncExecutorService;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Adds a {@link HealthCheckRegistryListener} to a collection of listeners that will be notified on health check
    +&nbsp;     * registration. Listeners will be notified in the order in which they are added. The listener will be notified of all
    +&nbsp;     * existing health checks when it first registers.
    +&nbsp;     *
    +&nbsp;     * @param listener listener to add
    +&nbsp;     */
    +&nbsp;    public void addListener(HealthCheckRegistryListener listener) {
    +<b class="fc">&nbsp;        listeners.add(listener);</b>
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    +<b class="fc">&nbsp;            listener.onHealthCheckAdded(entry.getKey(), entry.getValue());</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Removes a {@link HealthCheckRegistryListener} from this registry&#39;s collection of listeners.
    +&nbsp;     *
    +&nbsp;     * @param listener listener to remove
    +&nbsp;     */
    +&nbsp;    public void removeListener(HealthCheckRegistryListener listener) {
    +<b class="fc">&nbsp;        listeners.remove(listener);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Registers an application {@link HealthCheck}.
    +&nbsp;     *
    +&nbsp;     * @param name        the name of the health check
    +&nbsp;     * @param healthCheck the {@link HealthCheck} instance
    +&nbsp;     */
    +&nbsp;    public void register(String name, HealthCheck healthCheck) {
    +&nbsp;        HealthCheck registered;
    +<b class="fc">&nbsp;        synchronized (lock) {</b>
    +<b class="fc">&nbsp;            if (healthChecks.containsKey(name)) {</b>
    +<b class="fc">&nbsp;                throw new IllegalArgumentException(&quot;A health check named &quot; + name + &quot; already exists&quot;);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            registered = healthCheck;</b>
    +<b class="fc">&nbsp;            if (healthCheck.getClass().isAnnotationPresent(Async.class)) {</b>
    +<b class="fc">&nbsp;                registered = new AsyncHealthCheckDecorator(healthCheck, asyncExecutorService);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            healthChecks.put(name, registered);</b>
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        onHealthCheckAdded(name, registered);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Unregisters the application {@link HealthCheck} with the given name.
    +&nbsp;     *
    +&nbsp;     * @param name the name of the {@link HealthCheck} instance
    +&nbsp;     */
    +&nbsp;    public void unregister(String name) {
    +&nbsp;        HealthCheck healthCheck;
    +<b class="fc">&nbsp;        synchronized (lock) {</b>
    +<b class="fc">&nbsp;            healthCheck = healthChecks.remove(name);</b>
    +<b class="fc">&nbsp;            if (healthCheck instanceof AsyncHealthCheckDecorator) {</b>
    +<b class="fc">&nbsp;                ((AsyncHealthCheckDecorator) healthCheck).tearDown();</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        if (healthCheck != null) {</b>
    +<b class="fc">&nbsp;            onHealthCheckRemoved(name, healthCheck);</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns a set of the names of all registered health checks.
    +&nbsp;     *
    +&nbsp;     * @return the names of all registered health checks
    +&nbsp;     */
    +&nbsp;    public SortedSet&lt;String&gt; getNames() {
    +<b class="fc">&nbsp;        return Collections.unmodifiableSortedSet(new TreeSet&lt;&gt;(healthChecks.keySet()));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Returns the {@link HealthCheck} instance with a given name
    +&nbsp;     *
    +&nbsp;     * @param name the name of the {@link HealthCheck} instance
    +&nbsp;     */
    +&nbsp;    public HealthCheck getHealthCheck(String name) {
    +<b class="nc">&nbsp;        return healthChecks.get(name);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Runs the health check with the given name.
    +&nbsp;     *
    +&nbsp;     * @param name the health check&#39;s name
    +&nbsp;     * @return the result of the health check
    +&nbsp;     * @throws NoSuchElementException if there is no health check with the given name
    +&nbsp;     */
    +&nbsp;    public HealthCheck.Result runHealthCheck(String name) throws NoSuchElementException {
    +<b class="fc">&nbsp;        final HealthCheck healthCheck = healthChecks.get(name);</b>
    +<b class="fc">&nbsp;        if (healthCheck == null) {</b>
    +<b class="fc">&nbsp;            throw new NoSuchElementException(&quot;No health check named &quot; + name + &quot; exists&quot;);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return healthCheck.execute();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Runs the registered health checks and returns a map of the results.
    +&nbsp;     *
    +&nbsp;     * @return a map of the health check results
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    +<b class="fc">&nbsp;        return runHealthChecks(HealthCheckFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Runs the registered health checks matching the filter and returns a map of the results.
    +&nbsp;     *
    +&nbsp;     * @param filter health check filter
    +&nbsp;     * @return a map of the health check results
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(HealthCheckFilter filter) {
    +<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = new TreeMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    +<b class="fc">&nbsp;            final String name = entry.getKey();</b>
    +<b class="fc">&nbsp;            final HealthCheck healthCheck = entry.getValue();</b>
    +<b class="fc">&nbsp;            if (filter.matches(name, healthCheck)) {</b>
    +<b class="fc">&nbsp;                final Result result = entry.getValue().execute();</b>
    +<b class="fc">&nbsp;                results.put(entry.getKey(), result);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(results);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Runs the registered health checks in parallel and returns a map of the results.
    +&nbsp;     *
    +&nbsp;     * @param executor object to launch and track health checks progress
    +&nbsp;     * @return a map of the health check results
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(ExecutorService executor) {
    +<b class="fc">&nbsp;        return runHealthChecks(executor, HealthCheckFilter.ALL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Runs the registered health checks matching the filter in parallel and returns a map of the results.
    +&nbsp;     *
    +&nbsp;     * @param executor object to launch and track health checks progress
    +&nbsp;     * @param filter   health check filter
    +&nbsp;     * @return a map of the health check results
    +&nbsp;     */
    +&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(ExecutorService executor, HealthCheckFilter filter) {
    +<b class="fc">&nbsp;        final Map&lt;String, Future&lt;HealthCheck.Result&gt;&gt; futures = new HashMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        for (final Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    +<b class="fc">&nbsp;            final String name = entry.getKey();</b>
    +<b class="fc">&nbsp;            final HealthCheck healthCheck = entry.getValue();</b>
    +<b class="fc">&nbsp;            if (filter.matches(name, healthCheck)) {</b>
    +<b class="fc">&nbsp;                futures.put(name, executor.submit(() -&gt; healthCheck.execute()));</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = new TreeMap&lt;&gt;();</b>
    +<b class="fc">&nbsp;        for (Map.Entry&lt;String, Future&lt;Result&gt;&gt; entry : futures.entrySet()) {</b>
    +&nbsp;            try {
    +<b class="fc">&nbsp;                results.put(entry.getKey(), entry.getValue().get());</b>
    +<b class="nc">&nbsp;            } catch (Exception e) {</b>
    +<b class="nc">&nbsp;                LOGGER.warn(&quot;Error executing health check {}&quot;, entry.getKey(), e);</b>
    +<b class="nc">&nbsp;                results.put(entry.getKey(), HealthCheck.Result.unhealthy(e));</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(results);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    private void onHealthCheckAdded(String name, HealthCheck healthCheck) {
    +<b class="fc">&nbsp;        for (HealthCheckRegistryListener listener : listeners) {</b>
    +<b class="fc">&nbsp;            listener.onHealthCheckAdded(name, healthCheck);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private void onHealthCheckRemoved(String name, HealthCheck healthCheck) {
    +<b class="fc">&nbsp;        for (HealthCheckRegistryListener listener : listeners) {</b>
    +<b class="fc">&nbsp;            listener.onHealthCheckRemoved(name, healthCheck);</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Shuts down the scheduled executor for async health checks
    +&nbsp;     */
    +&nbsp;    public void shutdown() {
    +<b class="fc">&nbsp;        asyncExecutorService.shutdown(); // Disable new health checks from being submitted</b>
    +&nbsp;        try {
    +&nbsp;            // Give some time to the current healtch checks to finish gracefully
    +<b class="fc">&nbsp;            if (!asyncExecutorService.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    +<b class="nc">&nbsp;                asyncExecutorService.shutdownNow();</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;        } catch (InterruptedException ie) {</b>
    +<b class="nc">&nbsp;            asyncExecutorService.shutdownNow();</b>
    +<b class="nc">&nbsp;            Thread.currentThread().interrupt();</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static ScheduledExecutorService createExecutorService(int corePoolSize) {
    +<b class="fc">&nbsp;        final ScheduledThreadPoolExecutor asyncExecutorService = new ScheduledThreadPoolExecutor(corePoolSize,</b>
    +&nbsp;                new NamedThreadFactory(&quot;healthcheck-async-executor-&quot;));
    +<b class="fc">&nbsp;        asyncExecutorService.setRemoveOnCancelPolicy(true);</b>
    +<b class="fc">&nbsp;        return asyncExecutorService;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private static class NamedThreadFactory implements ThreadFactory {
    +&nbsp;
    +&nbsp;        private final ThreadGroup group;
    +<b class="fc">&nbsp;        private final AtomicInteger threadNumber = new AtomicInteger(1);</b>
    +&nbsp;        private final String namePrefix;
    +&nbsp;
    +<b class="fc">&nbsp;        NamedThreadFactory(String namePrefix) {</b>
    +<b class="fc">&nbsp;            SecurityManager s = System.getSecurityManager();</b>
    +<b class="fc">&nbsp;            group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();</b>
    +<b class="fc">&nbsp;            this.namePrefix = namePrefix;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public Thread newThread(Runnable r) {
    +<b class="fc">&nbsp;            Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);</b>
    +<b class="fc">&nbsp;            t.setDaemon(true);</b>
    +<b class="fc">&nbsp;            if (t.getPriority() != Thread.NORM_PRIORITY)</b>
    +<b class="nc">&nbsp;                t.setPriority(Thread.NORM_PRIORITY);</b>
    +<b class="fc">&nbsp;            return t;</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-5.html
    new file mode 100644
    index 0000000000..95e3cf5c9d
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-5.html
    @@ -0,0 +1,210 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > SharedHealthCheckRegistries</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: SharedHealthCheckRegistries (com.codahale.metrics.health)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">SharedHealthCheckRegistries</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (11/11)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    96.6%
    +  </span>
    +  <span class="absValue">
    +    (28/29)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +&nbsp;
    +&nbsp;import java.util.Set;
    +&nbsp;import java.util.concurrent.ConcurrentHashMap;
    +&nbsp;import java.util.concurrent.ConcurrentMap;
    +&nbsp;import java.util.concurrent.atomic.AtomicReference;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A map of shared, named health registries.
    +&nbsp; */
    +&nbsp;public class SharedHealthCheckRegistries {
    +<b class="fc">&nbsp;    private static final ConcurrentMap&lt;String, HealthCheckRegistry&gt; REGISTRIES =</b>
    +&nbsp;            new ConcurrentHashMap&lt;&gt;();
    +&nbsp;
    +<b class="fc">&nbsp;    private static AtomicReference&lt;String&gt; defaultRegistryName = new AtomicReference&lt;&gt;();</b>
    +&nbsp;
    +&nbsp;    /* Visible for testing */
    +&nbsp;    static void setDefaultRegistryName(AtomicReference&lt;String&gt; defaultRegistryName) {
    +<b class="fc">&nbsp;        SharedHealthCheckRegistries.defaultRegistryName = defaultRegistryName;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private SharedHealthCheckRegistries() { /* singleton */ }
    +&nbsp;
    +&nbsp;    public static void clear() {
    +<b class="fc">&nbsp;        REGISTRIES.clear();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static Set&lt;String&gt; names() {
    +<b class="fc">&nbsp;        return REGISTRIES.keySet();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static void remove(String key) {
    +<b class="fc">&nbsp;        REGISTRIES.remove(key);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HealthCheckRegistry add(String name, HealthCheckRegistry registry) {
    +<b class="fc">&nbsp;        return REGISTRIES.putIfAbsent(name, registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HealthCheckRegistry getOrCreate(String name) {
    +<b class="fc">&nbsp;        final HealthCheckRegistry existing = REGISTRIES.get(name);</b>
    +<b class="fc">&nbsp;        if (existing == null) {</b>
    +<b class="fc">&nbsp;            final HealthCheckRegistry created = new HealthCheckRegistry();</b>
    +<b class="fc">&nbsp;            final HealthCheckRegistry raced = add(name, created);</b>
    +<b class="fc">&nbsp;            if (raced == null) {</b>
    +<b class="fc">&nbsp;                return created;</b>
    +&nbsp;            }
    +<b class="nc">&nbsp;            return raced;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return existing;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Creates a new registry and sets it as the default one under the provided name.
    +&nbsp;     *
    +&nbsp;     * @param name the registry name
    +&nbsp;     * @return the default registry
    +&nbsp;     * @throws IllegalStateException if the name has already been set
    +&nbsp;     */
    +&nbsp;    public synchronized static HealthCheckRegistry setDefault(String name) {
    +<b class="fc">&nbsp;        final HealthCheckRegistry registry = getOrCreate(name);</b>
    +<b class="fc">&nbsp;        return setDefault(name, registry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Sets the provided registry as the default one under the provided name
    +&nbsp;     *
    +&nbsp;     * @param name                the default registry name
    +&nbsp;     * @param healthCheckRegistry the default registry
    +&nbsp;     * @throws IllegalStateException if the default registry has already been set
    +&nbsp;     */
    +&nbsp;    public static HealthCheckRegistry setDefault(String name, HealthCheckRegistry healthCheckRegistry) {
    +<b class="fc">&nbsp;        if (defaultRegistryName.compareAndSet(null, name)) {</b>
    +<b class="fc">&nbsp;            add(name, healthCheckRegistry);</b>
    +<b class="fc">&nbsp;            return healthCheckRegistry;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default health check registry is already set.&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Gets the name of the default registry, if it has been set
    +&nbsp;     *
    +&nbsp;     * @return the default registry
    +&nbsp;     * @throws IllegalStateException if the default has not been set
    +&nbsp;     */
    +&nbsp;    public static HealthCheckRegistry getDefault() {
    +<b class="fc">&nbsp;        final HealthCheckRegistry healthCheckRegistry = tryGetDefault();</b>
    +<b class="fc">&nbsp;        if (healthCheckRegistry != null) {</b>
    +<b class="fc">&nbsp;            return healthCheckRegistry;</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default registry name has not been set.&quot;);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Same as {@link #getDefault()} except returns null when the default registry has not been set.
    +&nbsp;     *
    +&nbsp;     * @return the default registry or null
    +&nbsp;     */
    +&nbsp;    public static HealthCheckRegistry tryGetDefault() {
    +<b class="fc">&nbsp;        final String name = defaultRegistryName.get();</b>
    +<b class="fc">&nbsp;        if (name != null) {</b>
    +<b class="fc">&nbsp;            return getOrCreate(name);</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return null;</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-6.html
    new file mode 100644
    index 0000000000..d9a6f53121
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-6.html
    @@ -0,0 +1,103 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HealthCheckRegistryListener</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.health</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HealthCheckRegistryListener (com.codahale.metrics.health)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +</tr>
    +  <tr>
    +    <td class="name">HealthCheckRegistryListener$MockitoMock$CZZYCxLV</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheckRegistryListener$MockitoMock$CZZYCxLV$auxiliary$mgpbJQeh</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HealthCheckRegistryListener$MockitoMock$CZZYCxLV$auxiliary$QeuBdlQf</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    +&nbsp;
    +&nbsp;import java.util.EventListener;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A listener contract for {@link HealthCheckRegistry} events.
    +&nbsp; */
    +&nbsp;public interface HealthCheckRegistryListener extends EventListener {
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a new {@link HealthCheck} is added to the registry.
    +&nbsp;     *
    +&nbsp;     * @param name        the name of the health check
    +&nbsp;     * @param healthCheck the health check
    +&nbsp;     */
    +&nbsp;    void onHealthCheckAdded(String name, HealthCheck healthCheck);
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Called when a {@link HealthCheck} is removed from the registry.
    +&nbsp;     *
    +&nbsp;     * @param name        the name of the health check
    +&nbsp;     * @param healthCheck the health check
    +&nbsp;     */
    +&nbsp;    void onHealthCheckRemoved(String name, HealthCheck healthCheck);
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index.html
    index 106c4d14e8..d2b5301bae 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    +com.codahale.metrics.health.annotation</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,13 +38,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -52,7 +52,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -60,7 +60,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -88,13 +88,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -102,7 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,7 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK.html
    index f66c5d47a6..b407810382 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    +com.codahale.metrics.health.annotation</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,13 +38,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -52,7 +52,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -60,7 +60,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -88,13 +88,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -102,7 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,7 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
    index e6170eba07..aa1b8fc93e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    +com.codahale.metrics.health.annotation</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,13 +38,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -52,7 +52,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -60,7 +60,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -88,13 +88,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -102,7 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,7 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS.html
    index b24e256bdb..95d37f2b01 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    +com.codahale.metrics.health.annotation</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,13 +38,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -52,7 +52,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -60,7 +60,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -88,13 +88,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -102,7 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,7 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
    index cf00e19272..987da60bf4 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    +com.codahale.metrics.health.annotation</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,13 +38,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -52,7 +52,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -60,7 +60,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -88,13 +88,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -102,7 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,7 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE.html
    index 4811859689..65fcf45d1e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    +com.codahale.metrics.health.annotation</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,13 +38,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -52,7 +52,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -60,7 +60,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -88,13 +88,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -102,7 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,7 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
    index 3327f7e293..70a58bd8f3 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    +com.codahale.metrics.health.annotation</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,13 +38,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -52,7 +52,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -60,7 +60,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -88,13 +88,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -102,7 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,7 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD.html
    index 62b9f641d7..31f83eeeac 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    +com.codahale.metrics.health.annotation</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,13 +38,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -52,7 +52,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -60,7 +60,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -88,13 +88,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -102,7 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,7 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
    index 3af482efe3..acd52ff9c9 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    +com.codahale.metrics.health.annotation</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,13 +38,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -52,7 +52,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -60,7 +60,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -88,13 +88,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -102,7 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,7 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
    index df99bac3d7..e9953c3822 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    +  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    +com.codahale.metrics.health.annotation</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,13 +38,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    +    <td class="name">com.codahale.metrics.health.annotation</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -52,7 +52,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -60,7 +60,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -88,13 +88,13 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    +    <td class="name"><a href="sources/source-1.html">Async</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
    @@ -102,7 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,7 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/sources/source-1.html
    index a70ae02d2a..58da81bc91 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-a/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDeadlockHealthCheck</title>
    +  <title>Coverage Report > Async</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,19 +19,16 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health.jvm</a>
    +    <a href="../index.html">com.codahale.metrics.health.annotation</a>
     </div>
     
    -<h1>Coverage Summary for Class: ThreadDeadlockHealthCheck (com.codahale.metrics.health.jvm)</h1>
    +<h1>Coverage Summary for Class: Async (com.codahale.metrics.health.annotation)</h1>
     
     <table class="coverageStats">
    +
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
     ">
       Method, %
     </th>
    @@ -40,22 +37,52 @@ <h1>Coverage Summary for Class: ThreadDeadlockHealthCheck (com.codahale.metrics.
       Line, %
     </th>
     </tr>
    -<tr>
    -  <td class="name">ThreadDeadlockHealthCheck</td>
    +  <tr>
    +    <td class="name">Async$InitialState</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name">Async$ScheduleType</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (2/2)
       </span>
     </td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
    @@ -63,11 +90,10 @@ <h1>Coverage Summary for Class: ThreadDeadlockHealthCheck (com.codahale.metrics.
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (4/4)
       </span>
     </td>
     </tr>
    -
     </table>
     
     <br/>
    @@ -75,43 +101,80 @@ <h1>Coverage Summary for Class: ThreadDeadlockHealthCheck (com.codahale.metrics.
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health.jvm;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health.annotation;
     &nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.codahale.metrics.jvm.ThreadDeadlockDetector;
    -&nbsp;
    -&nbsp;import java.util.Set;
    +&nbsp;import java.lang.annotation.ElementType;
    +&nbsp;import java.lang.annotation.Retention;
    +&nbsp;import java.lang.annotation.RetentionPolicy;
    +&nbsp;import java.lang.annotation.Target;
    +&nbsp;import java.util.concurrent.TimeUnit;
     &nbsp;
     &nbsp;/**
    -&nbsp; * A health check which returns healthy if no threads are deadlocked.
    +&nbsp; * An annotation for marking asynchronous health check execution.
     &nbsp; */
    -&nbsp;public class ThreadDeadlockHealthCheck extends HealthCheck {
    -&nbsp;    private final ThreadDeadlockDetector detector;
    +&nbsp;@Retention(RetentionPolicy.RUNTIME)
    +&nbsp;@Target(ElementType.TYPE)
    +&nbsp;public @interface Async {
    +&nbsp;    /**
    +&nbsp;     * Enum representing the initial health states.
    +&nbsp;     */
    +<b class="fc">&nbsp;    enum InitialState {</b>
    +<b class="fc">&nbsp;        HEALTHY, UNHEALTHY</b>
    +&nbsp;    }
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * Creates a new health check.
    +&nbsp;     * Enum representing the possible schedule types.
     &nbsp;     */
    -&nbsp;    public ThreadDeadlockHealthCheck() {
    -<b class="fc">&nbsp;        this(new ThreadDeadlockDetector());</b>
    +<b class="fc">&nbsp;    enum ScheduleType {</b>
    +<b class="fc">&nbsp;        FIXED_RATE, FIXED_DELAY</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    /**
    -&nbsp;     * Creates a new health check with the given detector.
    +&nbsp;     * Period between executions.
     &nbsp;     *
    -&nbsp;     * @param detector a thread deadlock detector
    +&nbsp;     * @return period
     &nbsp;     */
    -<b class="fc">&nbsp;    public ThreadDeadlockHealthCheck(ThreadDeadlockDetector detector) {</b>
    -<b class="fc">&nbsp;        this.detector = detector;</b>
    -&nbsp;    }
    +&nbsp;    long period();
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Scheduling type of asynchronous executions.
    +&nbsp;     *
    +&nbsp;     * @return schedule type
    +&nbsp;     */
    +&nbsp;    ScheduleType scheduleType() default ScheduleType.FIXED_RATE;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Initial delay of first execution.
    +&nbsp;     *
    +&nbsp;     * @return initial delay
    +&nbsp;     */
    +&nbsp;    long initialDelay() default 0;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Time unit of initial delay, period and healthyTtl.
    +&nbsp;     *
    +&nbsp;     * @return time unit
    +&nbsp;     */
    +&nbsp;    TimeUnit unit() default TimeUnit.SECONDS;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * Initial health state until first asynchronous execution completes.
    +&nbsp;     *
    +&nbsp;     * @return initial health state
    +&nbsp;     */
    +&nbsp;    InitialState initialState() default InitialState.HEALTHY;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * How long a healthy result is considered valid before being ignored.
    +&nbsp;     *
    +&nbsp;     * Handles cases where the asynchronous healthcheck did not run (for example thread starvation).
    +&nbsp;     *
    +&nbsp;     * Defaults to 2 * period
    +&nbsp;     *
    +&nbsp;     * @return healthy result time to live
    +&nbsp;     */
    +&nbsp;    long healthyTtl() default -1;
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected Result check() throws Exception {
    -<b class="fc">&nbsp;        final Set&lt;String&gt; threads = detector.getDeadlockedThreads();</b>
    -<b class="fc">&nbsp;        if (threads.isEmpty()) {</b>
    -<b class="fc">&nbsp;            return Result.healthy();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return Result.unhealthy(threads.toString());</b>
    -&nbsp;    }
     &nbsp;}
     </code>
     </pre>
    @@ -136,7 +199,7 @@ <h1>Coverage Summary for Class: ThreadDeadlockHealthCheck (com.codahale.metrics.
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index.html
    index b485c8471c..c3a1d2d6c2 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    +com.codahale.metrics.health.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.6%
    +    100%
       </span>
       <span class="absValue">
    -    (14/22)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    76.2%
    +    100%
       </span>
       <span class="absValue">
    -    (32/42)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,25 +97,6 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +107,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    +    100%
       </span>
       <span class="absValue">
    -    (27/33)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -164,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK.html
    index 53883ead56..fa91f5e9dc 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    +com.codahale.metrics.health.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.6%
    +    100%
       </span>
       <span class="absValue">
    -    (14/22)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    76.2%
    +    100%
       </span>
       <span class="absValue">
    -    (32/42)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,25 +97,6 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +107,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    +    100%
       </span>
       <span class="absValue">
    -    (27/33)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -164,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
    index c3ab3add3d..c9e7fd7949 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    +com.codahale.metrics.health.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.6%
    +    100%
       </span>
       <span class="absValue">
    -    (14/22)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    76.2%
    +    100%
       </span>
       <span class="absValue">
    -    (32/42)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +99,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    20%
    +    100%
       </span>
       <span class="absValue">
    -    (1/5)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    55.6%
    +    100%
       </span>
       <span class="absValue">
    -    (5/9)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -164,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS.html
    index 021106a853..0c09b0dd87 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    +com.codahale.metrics.health.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.6%
    +    100%
       </span>
       <span class="absValue">
    -    (14/22)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    76.2%
    +    100%
       </span>
       <span class="absValue">
    -    (32/42)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,25 +97,6 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +107,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    +    100%
       </span>
       <span class="absValue">
    -    (27/33)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -164,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
    index 7450f2eac4..c1e2a70be0 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    +com.codahale.metrics.health.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.6%
    +    100%
       </span>
       <span class="absValue">
    -    (14/22)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    76.2%
    +    100%
       </span>
       <span class="absValue">
    -    (32/42)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +99,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    20%
    +    100%
       </span>
       <span class="absValue">
    -    (1/5)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    55.6%
    +    100%
       </span>
       <span class="absValue">
    -    (5/9)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -164,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE.html
    index 5ec37d31b1..a013529b61 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    +com.codahale.metrics.health.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.6%
    +    100%
       </span>
       <span class="absValue">
    -    (14/22)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    76.2%
    +    100%
       </span>
       <span class="absValue">
    -    (32/42)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,25 +97,6 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +107,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    +    100%
       </span>
       <span class="absValue">
    -    (27/33)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -164,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
    index eb22833e20..5e3d001dde 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    +com.codahale.metrics.health.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.6%
    +    100%
       </span>
       <span class="absValue">
    -    (14/22)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    76.2%
    +    100%
       </span>
       <span class="absValue">
    -    (32/42)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +99,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    20%
    +    100%
       </span>
       <span class="absValue">
    -    (1/5)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    55.6%
    +    100%
       </span>
       <span class="absValue">
    -    (5/9)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -164,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD.html
    index 6c4868e7f8..988f15c7b2 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    +com.codahale.metrics.health.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.6%
    +    100%
       </span>
       <span class="absValue">
    -    (14/22)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    76.2%
    +    100%
       </span>
       <span class="absValue">
    -    (32/42)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,25 +97,6 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
         (1/1)
       </span>
     </td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +107,10 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    +    100%
       </span>
       <span class="absValue">
    -    (27/33)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -164,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
    index e355a86c3f..e586407b91 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    +com.codahale.metrics.health.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.6%
    +    100%
       </span>
       <span class="absValue">
    -    (14/22)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    76.2%
    +    100%
       </span>
       <span class="absValue">
    -    (32/42)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +99,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    20%
    +    100%
       </span>
       <span class="absValue">
    -    (1/5)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    55.6%
    +    100%
       </span>
       <span class="absValue">
    -    (5/9)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -164,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
    index 508f60de14..0baa4ec2ce 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    +  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    +com.codahale.metrics.health.jvm</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    +    <td class="name">com.codahale.metrics.health.jvm</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (4/4)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.6%
    +    100%
       </span>
       <span class="absValue">
    -    (14/22)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    76.2%
    +    100%
       </span>
       <span class="absValue">
    -    (32/42)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    +    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,18 +99,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    20%
    +    100%
       </span>
       <span class="absValue">
    -    (1/5)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    55.6%
    +    100%
       </span>
       <span class="absValue">
    -    (5/9)
    +    (7/7)
       </span>
     </td>
       </tr>
    @@ -164,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-1.html
    index fcc22c79d8..bb477ebdfa 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedNClientConnManager</title>
    +  <title>Coverage Report > ThreadDeadlockHealthCheck</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpasyncclient</a>
    +    <a href="../index.html">com.codahale.metrics.health.jvm</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedNClientConnManager (com.codahale.metrics.httpasyncclient)</h1>
    +<h1>Coverage Summary for Class: ThreadDeadlockHealthCheck (com.codahale.metrics.health.jvm)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -41,7 +41,7 @@ <h1>Coverage Summary for Class: InstrumentedNClientConnManager (com.codahale.met
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedNClientConnManager</td>
    +  <td class="name">ThreadDeadlockHealthCheck</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -52,18 +52,18 @@ <h1>Coverage Summary for Class: InstrumentedNClientConnManager (com.codahale.met
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    20%
    +    100%
       </span>
       <span class="absValue">
    -    (1/5)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    55.6%
    +    100%
       </span>
       <span class="absValue">
    -    (5/9)
    +    (7/7)
       </span>
     </td>
     </tr>
    @@ -75,41 +75,43 @@ <h1>Coverage Summary for Class: InstrumentedNClientConnManager (com.codahale.met
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpasyncclient;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health.jvm;
     &nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.config.Registry;
    -&nbsp;import org.apache.http.conn.DnsResolver;
    -&nbsp;import org.apache.http.conn.SchemePortResolver;
    -&nbsp;import org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager;
    -&nbsp;import org.apache.http.nio.conn.ManagedNHttpClientConnection;
    -&nbsp;import org.apache.http.nio.conn.NHttpClientConnectionManager;
    -&nbsp;import org.apache.http.nio.conn.NHttpConnectionFactory;
    -&nbsp;import org.apache.http.nio.conn.SchemeIOSessionStrategy;
    -&nbsp;import org.apache.http.nio.reactor.ConnectingIOReactor;
    +&nbsp;import com.codahale.metrics.health.HealthCheck;
    +&nbsp;import com.codahale.metrics.jvm.ThreadDeadlockDetector;
     &nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import java.util.Set;
     &nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;/**
    +&nbsp; * A health check which returns healthy if no threads are deadlocked.
    +&nbsp; */
    +&nbsp;public class ThreadDeadlockHealthCheck extends HealthCheck {
    +&nbsp;    private final ThreadDeadlockDetector detector;
     &nbsp;
    -&nbsp;public class InstrumentedNClientConnManager extends PoolingNHttpClientConnectionManager {
    +&nbsp;    /**
    +&nbsp;     * Creates a new health check.
    +&nbsp;     */
    +&nbsp;    public ThreadDeadlockHealthCheck() {
    +<b class="fc">&nbsp;        this(new ThreadDeadlockDetector());</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;    public InstrumentedNClientConnManager(final ConnectingIOReactor ioreactor, final NHttpConnectionFactory&lt;ManagedNHttpClientConnection&gt; connFactory, final SchemePortResolver schemePortResolver, final MetricRegistry metricRegistry, final Registry&lt;SchemeIOSessionStrategy&gt; iosessionFactoryRegistry, final long timeToLive, final TimeUnit tunit, final DnsResolver dnsResolver, final String name) {
    -<b class="fc">&nbsp;        super(ioreactor, connFactory, iosessionFactoryRegistry, schemePortResolver, dnsResolver, timeToLive, tunit);</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;available-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;leased-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;max-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;pending-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    +&nbsp;    /**
    +&nbsp;     * Creates a new health check with the given detector.
    +&nbsp;     *
    +&nbsp;     * @param detector a thread deadlock detector
    +&nbsp;     */
    +<b class="fc">&nbsp;    public ThreadDeadlockHealthCheck(ThreadDeadlockDetector detector) {</b>
    +<b class="fc">&nbsp;        this.detector = detector;</b>
     &nbsp;    }
     &nbsp;
    +&nbsp;    @Override
    +&nbsp;    protected Result check() throws Exception {
    +<b class="fc">&nbsp;        final Set&lt;String&gt; threads = detector.getDeadlockedThreads();</b>
    +<b class="fc">&nbsp;        if (threads.isEmpty()) {</b>
    +<b class="fc">&nbsp;            return Result.healthy();</b>
    +&nbsp;        }
    +<b class="fc">&nbsp;        return Result.unhealthy(threads.toString());</b>
    +&nbsp;    }
     &nbsp;}
     </code>
     </pre>
    @@ -134,7 +136,7 @@ <h1>Coverage Summary for Class: InstrumentedNClientConnManager (com.codahale.met
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index.html
    index d330c71d78..9eca3025be 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    +com.codahale.metrics.httpasyncclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    100%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    61.9%
    +    63.6%
       </span>
       <span class="absValue">
    -    (26/42)
    +    (14/22)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    73%
    +    76.2%
       </span>
       <span class="absValue">
    -    (73/100)
    +    (32/42)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,126 +99,45 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    +    20%
       </span>
       <span class="absValue">
    -    (0/1)
    +    (1/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    55.6%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/9)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    52.2%
    +    76.5%
       </span>
       <span class="absValue">
    -    (12/23)
    +    (13/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    81.8%
       </span>
       <span class="absValue">
    -    (15/15)
    +    (27/33)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK.html
    index 8847a179de..f518ddd31e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    +com.codahale.metrics.httpasyncclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    100%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    61.9%
    +    63.6%
       </span>
       <span class="absValue">
    -    (26/42)
    +    (14/22)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    73%
    +    76.2%
       </span>
       <span class="absValue">
    -    (73/100)
    +    (32/42)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,126 +99,45 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    +    20%
       </span>
       <span class="absValue">
    -    (0/1)
    +    (1/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    55.6%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/9)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    52.2%
    +    76.5%
       </span>
       <span class="absValue">
    -    (12/23)
    +    (13/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    81.8%
       </span>
       <span class="absValue">
    -    (15/15)
    +    (27/33)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
    index f1a6e3ad71..09a30d7aaa 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    +com.codahale.metrics.httpasyncclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    100%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    61.9%
    +    63.6%
       </span>
       <span class="absValue">
    -    (26/42)
    +    (14/22)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    73%
    +    76.2%
       </span>
       <span class="absValue">
    -    (73/100)
    +    (32/42)
       </span>
     </td>
       </tr>
    @@ -88,115 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    76.5%
       </span>
       <span class="absValue">
    -    (0/1)
    +    (13/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    81.8%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (27/33)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,18 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    20%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (1/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    84.6%
    +    55.6%
       </span>
       <span class="absValue">
    -    (22/26)
    +    (5/9)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS.html
    index 476fe2d63a..14e454d820 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    +com.codahale.metrics.httpasyncclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    100%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    61.9%
    +    63.6%
       </span>
       <span class="absValue">
    -    (26/42)
    +    (14/22)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    73%
    +    76.2%
       </span>
       <span class="absValue">
    -    (73/100)
    +    (32/42)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,99 +99,45 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    20%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (1/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    84.6%
    +    55.6%
       </span>
       <span class="absValue">
    -    (22/26)
    +    (5/9)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    52.2%
    +    76.5%
       </span>
       <span class="absValue">
    -    (12/23)
    +    (13/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    81.8%
       </span>
       <span class="absValue">
    -    (15/15)
    +    (27/33)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
    index a4c09ca42f..5b09881d29 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    +com.codahale.metrics.httpasyncclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    100%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    61.9%
    +    63.6%
       </span>
       <span class="absValue">
    -    (26/42)
    +    (14/22)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    73%
    +    76.2%
       </span>
       <span class="absValue">
    -    (73/100)
    +    (32/42)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    76.5%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (13/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    81.8%
       </span>
       <span class="absValue">
    -    (15/15)
    +    (27/33)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,99 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    +    20%
       </span>
       <span class="absValue">
    -    (0/1)
    +    (1/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    55.6%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/9)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE.html
    index 70ec067727..d8ac236331 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    +com.codahale.metrics.httpasyncclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    100%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    61.9%
    +    63.6%
       </span>
       <span class="absValue">
    -    (26/42)
    +    (14/22)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    73%
    +    76.2%
       </span>
       <span class="absValue">
    -    (73/100)
    +    (32/42)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,99 +99,45 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    25%
    +    20%
       </span>
       <span class="absValue">
    -    (1/4)
    +    (1/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    50%
    +    55.6%
       </span>
       <span class="absValue">
    -    (3/6)
    +    (5/9)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    52.2%
    +    76.5%
       </span>
       <span class="absValue">
    -    (12/23)
    +    (13/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    81.8%
       </span>
       <span class="absValue">
    -    (15/15)
    +    (27/33)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
    index aeb18b9b23..fec05578ec 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    +com.codahale.metrics.httpasyncclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    100%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    61.9%
    +    63.6%
       </span>
       <span class="absValue">
    -    (26/42)
    +    (14/22)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    73%
    +    76.2%
       </span>
       <span class="absValue">
    -    (73/100)
    +    (32/42)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    76.5%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (13/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    81.8%
       </span>
       <span class="absValue">
    -    (15/15)
    +    (27/33)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,99 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    +    20%
       </span>
       <span class="absValue">
    -    (0/1)
    +    (1/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    55.6%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/9)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD.html
    index 9393a59b3c..28164e30e0 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    +com.codahale.metrics.httpasyncclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    100%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    61.9%
    +    63.6%
       </span>
       <span class="absValue">
    -    (26/42)
    +    (14/22)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    73%
    +    76.2%
       </span>
       <span class="absValue">
    -    (73/100)
    +    (32/42)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,99 +99,45 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    25%
    +    20%
       </span>
       <span class="absValue">
    -    (1/4)
    +    (1/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    50%
    +    55.6%
       </span>
       <span class="absValue">
    -    (3/6)
    +    (5/9)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (2/2)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    52.2%
    +    76.5%
       </span>
       <span class="absValue">
    -    (12/23)
    +    (13/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    +    81.8%
       </span>
       <span class="absValue">
    -    (15/15)
    +    (27/33)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
    index 75d51ed4ca..96a4c51eb7 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    +com.codahale.metrics.httpasyncclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    100%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    61.9%
    +    63.6%
       </span>
       <span class="absValue">
    -    (26/42)
    +    (14/22)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    73%
    +    76.2%
       </span>
       <span class="absValue">
    -    (73/100)
    +    (32/42)
       </span>
     </td>
       </tr>
    @@ -88,34 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    76.5%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (13/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    81.8%
       </span>
       <span class="absValue">
    -    (15/15)
    +    (27/33)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -126,99 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    +    20%
       </span>
       <span class="absValue">
    -    (0/1)
    +    (1/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    55.6%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (5/9)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
    index 110cf189cf..47abec36f2 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    +  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    +com.codahale.metrics.httpasyncclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    +    <td class="name">com.codahale.metrics.httpasyncclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    100%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (4/4)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    61.9%
    +    63.6%
       </span>
       <span class="absValue">
    -    (26/42)
    +    (14/22)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    73%
    +    76.2%
       </span>
       <span class="absValue">
    -    (73/100)
    +    (32/42)
       </span>
     </td>
       </tr>
    @@ -88,115 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    +    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    +    (3/3)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    76.5%
       </span>
       <span class="absValue">
    -    (0/1)
    +    (13/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    81.8%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (27/33)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,18 +126,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    20%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (1/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    84.6%
    +    55.6%
       </span>
       <span class="absValue">
    -    (22/26)
    +    (5/9)
       </span>
     </td>
       </tr>
    @@ -245,7 +164,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-1.html
    index 085c9f9d9a..f35f08c391 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HttpClientMetricNameStrategies</title>
    +  <title>Coverage Report > InstrumentedNClientConnManager</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    +    <a href="../index.html">com.codahale.metrics.httpasyncclient</a>
     </div>
     
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient)</h1>
    +<h1>Coverage Summary for Class: InstrumentedNClientConnManager (com.codahale.metrics.httpasyncclient)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -41,7 +41,7 @@ <h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.met
     </th>
     </tr>
     <tr>
    -  <td class="name">HttpClientMetricNameStrategies</td>
    +  <td class="name">InstrumentedNClientConnManager</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -52,18 +52,18 @@ <h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.met
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    87.5%
    +    20%
       </span>
       <span class="absValue">
    -    (7/8)
    +    (1/5)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    84.6%
    +    55.6%
       </span>
       <span class="absValue">
    -    (22/26)
    +    (5/9)
       </span>
     </td>
     </tr>
    @@ -75,66 +75,41 @@ <h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.met
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpasyncclient;
     &nbsp;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.client.HttpClient;
    -&nbsp;import org.apache.http.client.methods.HttpRequestWrapper;
    -&nbsp;import org.apache.http.client.methods.HttpUriRequest;
    -&nbsp;import org.apache.http.client.utils.URIBuilder;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.http.config.Registry;
    +&nbsp;import org.apache.http.conn.DnsResolver;
    +&nbsp;import org.apache.http.conn.SchemePortResolver;
    +&nbsp;import org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager;
    +&nbsp;import org.apache.http.nio.conn.ManagedNHttpClientConnection;
    +&nbsp;import org.apache.http.nio.conn.NHttpClientConnectionManager;
    +&nbsp;import org.apache.http.nio.conn.NHttpConnectionFactory;
    +&nbsp;import org.apache.http.nio.conn.SchemeIOSessionStrategy;
    +&nbsp;import org.apache.http.nio.reactor.ConnectingIOReactor;
     &nbsp;
    -&nbsp;import java.net.URI;
    -&nbsp;import java.net.URISyntaxException;
    +&nbsp;import java.util.concurrent.TimeUnit;
     &nbsp;
     &nbsp;import static com.codahale.metrics.MetricRegistry.name;
     &nbsp;
    -<b class="nc">&nbsp;public class HttpClientMetricNameStrategies {</b>
    +&nbsp;public class InstrumentedNClientConnManager extends PoolingNHttpClientConnectionManager {
     &nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy METHOD_ONLY =</b>
    -<b class="fc">&nbsp;        (name, request) -&gt; name(HttpClient.class,</b>
    -&nbsp;            name,
    -<b class="fc">&nbsp;            methodNameString(request));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy HOST_AND_METHOD =</b>
    -<b class="fc">&nbsp;        (name, request) -&gt; name(HttpClient.class,</b>
    -&nbsp;            name,
    -<b class="fc">&nbsp;            requestURI(request).getHost(),</b>
    -<b class="fc">&nbsp;            methodNameString(request));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy PATH_AND_METHOD =</b>
    -&nbsp;        (name, request) -&gt; {
    -<b class="fc">&nbsp;            final URIBuilder url = new URIBuilder(requestURI(request));</b>
    -<b class="fc">&nbsp;            return name(HttpClient.class,</b>
    -&nbsp;                name,
    -<b class="fc">&nbsp;                url.getPath(),</b>
    -<b class="fc">&nbsp;                methodNameString(request));</b>
    -&nbsp;        };
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =</b>
    -&nbsp;        (name, request) -&gt; {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                final URIBuilder url = new URIBuilder(requestURI(request));</b>
    -<b class="fc">&nbsp;                return name(HttpClient.class,</b>
    -&nbsp;                    name,
    -<b class="fc">&nbsp;                    url.removeQuery().build().toString(),</b>
    -<b class="fc">&nbsp;                    methodNameString(request));</b>
    -<b class="nc">&nbsp;            } catch (URISyntaxException e) {</b>
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(e);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -&nbsp;    private static String methodNameString(HttpRequest request) {
    -<b class="fc">&nbsp;        return request.getRequestLine().getMethod().toLowerCase() + &quot;-requests&quot;;</b>
    +&nbsp;    public InstrumentedNClientConnManager(final ConnectingIOReactor ioreactor, final NHttpConnectionFactory&lt;ManagedNHttpClientConnection&gt; connFactory, final SchemePortResolver schemePortResolver, final MetricRegistry metricRegistry, final Registry&lt;SchemeIOSessionStrategy&gt; iosessionFactoryRegistry, final long timeToLive, final TimeUnit tunit, final DnsResolver dnsResolver, final String name) {
    +<b class="fc">&nbsp;        super(ioreactor, connFactory, iosessionFactoryRegistry, schemePortResolver, dnsResolver, timeToLive, tunit);</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;available-connections&quot;),</b>
    +<b class="nc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;leased-connections&quot;),</b>
    +<b class="nc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;max-connections&quot;),</b>
    +<b class="nc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;pending-connections&quot;),</b>
    +<b class="nc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    private static URI requestURI(HttpRequest request) {
    -<b class="fc">&nbsp;        if (request instanceof HttpRequestWrapper)</b>
    -<b class="fc">&nbsp;            return requestURI(((HttpRequestWrapper) request).getOriginal());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return (request instanceof HttpUriRequest) ?</b>
    -<b class="fc">&nbsp;            ((HttpUriRequest) request).getURI() :</b>
    -<b class="nc">&nbsp;            URI.create(request.getRequestLine().getUri());</b>
    -&nbsp;    }
     &nbsp;}
     </code>
     </pre>
    @@ -159,7 +134,7 @@ <h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.met
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-2.html
    index cc5c10b010..626b14483a 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-2.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HttpClientMetricNameStrategy</title>
    +  <title>Coverage Report > InstrumentedNHttpClientBuilder</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    +    <a href="../index.html">com.codahale.metrics.httpasyncclient</a>
     </div>
     
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient)</h1>
    +<h1>Coverage Summary for Class: InstrumentedNHttpClientBuilder (com.codahale.metrics.httpasyncclient)</h1>
     
     <table class="coverageStats">
     
    @@ -38,58 +38,78 @@ <h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metri
     </th>
     </tr>
     <tr>
    -  <td class="name">HttpClientMetricNameStrategy</td>
    +  <td class="name">InstrumentedNHttpClientBuilder</td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    71.4%
       </span>
       <span class="absValue">
    -    (0/1)
    +    (5/7)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    81.8%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (9/11)
       </span>
     </td>
     </tr>
       <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$bisTf2Zh</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$bisTf2Zh$auxiliary$74ZaAa0h</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$bisTf2Zh$auxiliary$8Lp7LQ9m</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$oc1ZK5EU</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$oc1ZK5EU$auxiliary$frDkmbIZ</td>
    +    <td class="name">InstrumentedNHttpClientBuilder$1</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    60%
    +  </span>
    +  <span class="absValue">
    +    (3/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    55.6%
    +  </span>
    +  <span class="absValue">
    +    (5/9)
    +  </span>
    +</td>
       </tr>
       <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$oc1ZK5EU$auxiliary$pDr1BEM8</td>
    +    <td class="name">InstrumentedNHttpClientBuilder$TimingFutureCallback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (5/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (13/13)
    +  </span>
    +</td>
       </tr>
     <tr>
       <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    76.5%
       </span>
       <span class="absValue">
    -    (0/1)
    +    (13/17)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    0%
    +    81.8%
       </span>
       <span class="absValue">
    -    (0/2)
    +    (27/33)
       </span>
     </td>
     </tr>
    @@ -100,22 +120,124 @@ <h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metri
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpasyncclient;
     &nbsp;
     &nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import com.codahale.metrics.httpclient.HttpClientMetricNameStrategies;
    +&nbsp;import com.codahale.metrics.httpclient.HttpClientMetricNameStrategy;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;import java.util.concurrent.Future;
    +&nbsp;
    +&nbsp;import org.apache.http.HttpException;
     &nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.client.HttpClient;
    +&nbsp;import org.apache.http.concurrent.FutureCallback;
    +&nbsp;import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
    +&nbsp;import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
    +&nbsp;import org.apache.http.nio.protocol.HttpAsyncRequestProducer;
    +&nbsp;import org.apache.http.nio.protocol.HttpAsyncResponseConsumer;
    +&nbsp;import org.apache.http.protocol.HttpContext;
    +&nbsp;
    +&nbsp;import static java.util.Objects.requireNonNull;
     &nbsp;
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface HttpClientMetricNameStrategy {
    +<b class="fc">&nbsp;public class InstrumentedNHttpClientBuilder extends HttpAsyncClientBuilder {</b>
    +&nbsp;    private final MetricRegistry metricRegistry;
    +&nbsp;    private final String name;
    +&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
     &nbsp;
    -&nbsp;    String getNameFor(String name, HttpRequest request);
    +&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy, String name) {
    +<b class="fc">&nbsp;        super();</b>
    +<b class="fc">&nbsp;        this.metricRegistry = metricRegistry;</b>
    +<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        this(metricRegistry, metricNameStrategy, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, String name) {
    +<b class="nc">&nbsp;        this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, name);</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;    default String getNameFor(String name, Exception exception) {
    -<b class="nc">&nbsp;        return MetricRegistry.name(HttpClient.class,</b>
    -&nbsp;                name,
    -<b class="nc">&nbsp;                exception.getClass().getSimpleName());</b>
    +&nbsp;    private Timer timer(HttpRequest request) {
    +<b class="fc">&nbsp;        return metricRegistry.timer(metricNameStrategy.getNameFor(name, request));</b>
     &nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public CloseableHttpAsyncClient build() {
    +<b class="fc">&nbsp;        final CloseableHttpAsyncClient ac = super.build();</b>
    +<b class="fc">&nbsp;        return new CloseableHttpAsyncClient() {</b>
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public boolean isRunning() {
    +<b class="nc">&nbsp;                return ac.isRunning();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void start() {
    +<b class="fc">&nbsp;                ac.start();</b>
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public &lt;T&gt; Future&lt;T&gt; execute(HttpAsyncRequestProducer requestProducer, HttpAsyncResponseConsumer&lt;T&gt; responseConsumer, HttpContext context, FutureCallback&lt;T&gt; callback) {
    +&nbsp;                final Timer.Context timerContext;
    +&nbsp;                try {
    +<b class="fc">&nbsp;                    timerContext = timer(requestProducer.generateRequest()).time();</b>
    +<b class="nc">&nbsp;                } catch (IOException | HttpException ex) {</b>
    +<b class="nc">&nbsp;                    throw new RuntimeException(ex);</b>
    +<b class="fc">&nbsp;                }</b>
    +<b class="fc">&nbsp;                return ac.execute(requestProducer, responseConsumer, context,</b>
    +&nbsp;                        new TimingFutureCallback&lt;&gt;(callback, timerContext));
    +&nbsp;            }
    +&nbsp;
    +&nbsp;            @Override
    +&nbsp;            public void close() throws IOException {
    +<b class="nc">&nbsp;                ac.close();</b>
    +&nbsp;            }
    +&nbsp;        };
    +&nbsp;    }
    +&nbsp;
    +<b class="fc">&nbsp;    private static class TimingFutureCallback&lt;T&gt; implements FutureCallback&lt;T&gt; {</b>
    +&nbsp;        private final FutureCallback&lt;T&gt; callback;
    +&nbsp;        private final Timer.Context timerContext;
    +&nbsp;
    +&nbsp;        private TimingFutureCallback(FutureCallback&lt;T&gt; callback,
    +<b class="fc">&nbsp;                                     Timer.Context timerContext) {</b>
    +<b class="fc">&nbsp;            this.callback = callback;</b>
    +<b class="fc">&nbsp;            this.timerContext = requireNonNull(timerContext, &quot;timerContext&quot;);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void completed(T result) {
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +<b class="fc">&nbsp;            if (callback != null) {</b>
    +<b class="fc">&nbsp;                callback.completed(result);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void failed(Exception ex) {
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +<b class="fc">&nbsp;            if (callback != null) {</b>
    +<b class="fc">&nbsp;                callback.failed(ex);</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void cancelled() {
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +<b class="fc">&nbsp;            if (callback != null) {</b>
    +<b class="fc">&nbsp;                callback.cancelled();</b>
    +&nbsp;            }
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
     &nbsp;}
     </code>
     </pre>
    @@ -140,7 +262,7 @@ <h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metri
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index.html
    index d1d56cfc4e..ae4e9d9fe9 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    +com.codahale.metrics.httpclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    +    <td class="name">com.codahale.metrics.httpclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    83.3%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (5/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.3%
    +    61.9%
       </span>
       <span class="absValue">
    -    (52/75)
    +    (26/42)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    74.1%
    +    73%
       </span>
       <span class="absValue">
    -    (120/162)
    +    (73/100)
       </span>
     </td>
       </tr>
    @@ -99,18 +99,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    87.5%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.2%
    +    84.6%
       </span>
       <span class="absValue">
    -    (13/18)
    +    (22/26)
       </span>
     </td>
       </tr>
    @@ -142,88 +142,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -234,23 +153,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.6%
    +    52.2%
       </span>
       <span class="absValue">
    -    (14/22)
    +    (12/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    67.3%
    +    64.7%
       </span>
       <span class="absValue">
    -    (33/49)
    +    (33/51)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -277,7 +196,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -291,7 +210,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -299,7 +218,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    +    (15/15)
       </span>
     </td>
       </tr>
    @@ -326,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK.html
    index 6e92897b06..e6a45c4071 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    +com.codahale.metrics.httpclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    +    <td class="name">com.codahale.metrics.httpclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    83.3%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (5/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.3%
    +    61.9%
       </span>
       <span class="absValue">
    -    (52/75)
    +    (26/42)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    74.1%
    +    73%
       </span>
       <span class="absValue">
    -    (120/162)
    +    (73/100)
       </span>
     </td>
       </tr>
    @@ -99,18 +99,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    87.5%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.2%
    +    84.6%
       </span>
       <span class="absValue">
    -    (13/18)
    +    (22/26)
       </span>
     </td>
       </tr>
    @@ -142,88 +142,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -234,23 +153,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.6%
    +    52.2%
       </span>
       <span class="absValue">
    -    (14/22)
    +    (12/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    67.3%
    +    64.7%
       </span>
       <span class="absValue">
    -    (33/49)
    +    (33/51)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -277,7 +196,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -291,7 +210,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -299,7 +218,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    +    (15/15)
       </span>
     </td>
       </tr>
    @@ -326,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
    index b6213d1d45..6afe750ca5 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    +com.codahale.metrics.httpclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    +    <td class="name">com.codahale.metrics.httpclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    83.3%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (5/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.3%
    +    61.9%
       </span>
       <span class="absValue">
    -    (52/75)
    +    (26/42)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    74.1%
    +    73%
       </span>
       <span class="absValue">
    -    (120/162)
    +    (73/100)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -102,7 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,12 +110,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    +    (15/15)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -142,61 +142,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,45 +153,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    52.2%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (12/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.5%
    +    64.7%
       </span>
       <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    +    (33/51)
       </span>
     </td>
       </tr>
    @@ -288,18 +207,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    87.5%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.2%
    +    84.6%
       </span>
       <span class="absValue">
    -    (13/18)
    +    (22/26)
       </span>
     </td>
       </tr>
    @@ -326,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS.html
    index 8937ee7315..4150dc3444 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    +com.codahale.metrics.httpclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    +    <td class="name">com.codahale.metrics.httpclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    83.3%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (5/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.3%
    +    61.9%
       </span>
       <span class="absValue">
    -    (52/75)
    +    (26/42)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    74.1%
    +    73%
       </span>
       <span class="absValue">
    -    (120/162)
    +    (73/100)
       </span>
     </td>
       </tr>
    @@ -126,104 +126,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    +    87.5%
       </span>
       <span class="absValue">
    -    (2/5)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    57.1%
    +    84.6%
       </span>
       <span class="absValue">
    -    (4/7)
    +    (22/26)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -234,23 +153,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.6%
    +    52.2%
       </span>
       <span class="absValue">
    -    (14/22)
    +    (12/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    67.3%
    +    64.7%
       </span>
       <span class="absValue">
    -    (33/49)
    +    (33/51)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -277,7 +196,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -291,7 +210,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -299,7 +218,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    +    (15/15)
       </span>
     </td>
       </tr>
    @@ -326,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
    index 26a99bb549..65221d3d06 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    +com.codahale.metrics.httpclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    +    <td class="name">com.codahale.metrics.httpclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    83.3%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (5/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.3%
    +    61.9%
       </span>
       <span class="absValue">
    -    (52/75)
    +    (26/42)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    74.1%
    +    73%
       </span>
       <span class="absValue">
    -    (120/162)
    +    (73/100)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -102,7 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,12 +110,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    +    (15/15)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -142,61 +142,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,45 +153,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    52.2%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (12/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.5%
    +    64.7%
       </span>
       <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    +    (33/51)
       </span>
     </td>
       </tr>
    @@ -261,18 +180,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    87.5%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.2%
    +    84.6%
       </span>
       <span class="absValue">
    -    (13/18)
    +    (22/26)
       </span>
     </td>
       </tr>
    @@ -326,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE.html
    index dacc3534b4..6841206a60 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    +com.codahale.metrics.httpclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    +    <td class="name">com.codahale.metrics.httpclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    83.3%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (5/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.3%
    +    61.9%
       </span>
       <span class="absValue">
    -    (52/75)
    +    (26/42)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    74.1%
    +    73%
       </span>
       <span class="absValue">
    -    (120/162)
    +    (73/100)
       </span>
     </td>
       </tr>
    @@ -115,7 +115,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -142,61 +142,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,18 +153,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    70%
    +    52.2%
       </span>
       <span class="absValue">
    -    (14/20)
    +    (12/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.4%
    +    64.7%
       </span>
       <span class="absValue">
    -    (30/42)
    +    (33/51)
       </span>
     </td>
       </tr>
    @@ -234,50 +180,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    +    87.5%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.5%
    +    84.6%
       </span>
       <span class="absValue">
    -    (21/22)
    +    (22/26)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -291,7 +210,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -299,7 +218,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    +    (15/15)
       </span>
     </td>
       </tr>
    @@ -326,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
    index b2cfa172c8..39ba0f1dd1 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    +com.codahale.metrics.httpclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    +    <td class="name">com.codahale.metrics.httpclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    83.3%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (5/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.3%
    +    61.9%
       </span>
       <span class="absValue">
    -    (52/75)
    +    (26/42)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    74.1%
    +    73%
       </span>
       <span class="absValue">
    -    (120/162)
    +    (73/100)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -102,7 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,34 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    +    (15/15)
       </span>
     </td>
       </tr>
    @@ -153,50 +126,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    +    87.5%
       </span>
       <span class="absValue">
    -    (14/20)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.4%
    +    84.6%
       </span>
       <span class="absValue">
    -    (30/42)
    +    (22/26)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,50 +153,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    +    52.2%
       </span>
       <span class="absValue">
    -    (2/5)
    +    (12/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    57.1%
    +    64.7%
       </span>
       <span class="absValue">
    -    (4/7)
    +    (33/51)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -326,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD.html
    index bdd5250912..8b29b5d410 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    +com.codahale.metrics.httpclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    +    <td class="name">com.codahale.metrics.httpclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    83.3%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (5/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.3%
    +    61.9%
       </span>
       <span class="absValue">
    -    (52/75)
    +    (26/42)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    74.1%
    +    73%
       </span>
       <span class="absValue">
    -    (120/162)
    +    (73/100)
       </span>
     </td>
       </tr>
    @@ -115,7 +115,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -142,61 +142,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,18 +153,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    70%
    +    52.2%
       </span>
       <span class="absValue">
    -    (14/20)
    +    (12/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.4%
    +    64.7%
       </span>
       <span class="absValue">
    -    (30/42)
    +    (33/51)
       </span>
     </td>
       </tr>
    @@ -234,50 +180,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    +    87.5%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.5%
    +    84.6%
       </span>
       <span class="absValue">
    -    (21/22)
    +    (22/26)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -291,7 +210,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -299,7 +218,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    +    (15/15)
       </span>
     </td>
       </tr>
    @@ -326,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
    index 39ceab3f43..504c1517aa 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    +com.codahale.metrics.httpclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    +    <td class="name">com.codahale.metrics.httpclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    83.3%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (5/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.3%
    +    61.9%
       </span>
       <span class="absValue">
    -    (52/75)
    +    (26/42)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    74.1%
    +    73%
       </span>
       <span class="absValue">
    -    (120/162)
    +    (73/100)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -102,7 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,34 +110,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    +    (15/15)
       </span>
     </td>
       </tr>
    @@ -153,50 +126,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    +    87.5%
       </span>
       <span class="absValue">
    -    (14/20)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.4%
    +    84.6%
       </span>
       <span class="absValue">
    -    (30/42)
    +    (22/26)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,50 +153,23 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    +    52.2%
       </span>
       <span class="absValue">
    -    (2/5)
    +    (12/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    57.1%
    +    64.7%
       </span>
       <span class="absValue">
    -    (4/7)
    +    (33/51)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -326,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
    index 83507bcf9b..95da7cb809 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    +com.codahale.metrics.httpclient</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    +    <td class="name">com.codahale.metrics.httpclient</td>
     <td class="coverageStat">
       <span class="percent">
    -    90.9%
    +    83.3%
       </span>
       <span class="absValue">
    -    (10/11)
    +    (5/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    69.3%
    +    61.9%
       </span>
       <span class="absValue">
    -    (52/75)
    +    (26/42)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    74.1%
    +    73%
       </span>
       <span class="absValue">
    -    (120/162)
    +    (73/100)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -102,7 +102,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
    @@ -110,12 +110,12 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
         100%
       </span>
       <span class="absValue">
    -    (16/16)
    +    (15/15)
       </span>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -142,61 +142,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
       </tr>
       <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -207,45 +153,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    52.2%
       </span>
       <span class="absValue">
    -    (9/10)
    +    (12/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    95.5%
    +    64.7%
       </span>
       <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    +    (33/51)
       </span>
     </td>
       </tr>
    @@ -288,18 +207,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    87.5%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.2%
    +    84.6%
       </span>
       <span class="absValue">
    -    (13/18)
    +    (22/26)
       </span>
     </td>
       </tr>
    @@ -326,7 +245,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-1.html
    index 0215157da9..685e664f51 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-1.html
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +    <a href="../index.html">com.codahale.metrics.httpclient</a>
     </div>
     
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient5)</h1>
    +<h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -52,18 +52,18 @@ <h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.met
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    83.3%
    +    87.5%
       </span>
       <span class="absValue">
    -    (5/6)
    +    (7/8)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    72.2%
    +    84.6%
       </span>
       <span class="absValue">
    -    (13/18)
    +    (22/26)
       </span>
     </td>
     </tr>
    @@ -75,53 +75,66 @@ <h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.met
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
     &nbsp;
    -&nbsp;import org.apache.hc.client5.http.classic.HttpClient;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;import org.apache.hc.core5.net.URIBuilder;
    +&nbsp;import org.apache.http.HttpRequest;
    +&nbsp;import org.apache.http.client.HttpClient;
    +&nbsp;import org.apache.http.client.methods.HttpRequestWrapper;
    +&nbsp;import org.apache.http.client.methods.HttpUriRequest;
    +&nbsp;import org.apache.http.client.utils.URIBuilder;
     &nbsp;
    +&nbsp;import java.net.URI;
     &nbsp;import java.net.URISyntaxException;
    -&nbsp;import java.util.Locale;
     &nbsp;
     &nbsp;import static com.codahale.metrics.MetricRegistry.name;
     &nbsp;
     <b class="nc">&nbsp;public class HttpClientMetricNameStrategies {</b>
     &nbsp;
     <b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy METHOD_ONLY =</b>
    -<b class="fc">&nbsp;            (name, request) -&gt; name(HttpClient.class,</b>
    -&nbsp;                    name,
    -<b class="fc">&nbsp;                    methodNameString(request));</b>
    +<b class="fc">&nbsp;        (name, request) -&gt; name(HttpClient.class,</b>
    +&nbsp;            name,
    +<b class="fc">&nbsp;            methodNameString(request));</b>
     &nbsp;
     <b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy HOST_AND_METHOD =</b>
    -&nbsp;            (name, request) -&gt; {
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    return name(HttpClient.class,</b>
    -&nbsp;                            name,
    -<b class="fc">&nbsp;                            request.getUri().getHost(),</b>
    -<b class="fc">&nbsp;                            methodNameString(request));</b>
    -<b class="nc">&nbsp;                } catch (URISyntaxException e) {</b>
    -<b class="nc">&nbsp;                    throw new IllegalArgumentException(e);</b>
    -&nbsp;                }
    -&nbsp;            };
    +<b class="fc">&nbsp;        (name, request) -&gt; name(HttpClient.class,</b>
    +&nbsp;            name,
    +<b class="fc">&nbsp;            requestURI(request).getHost(),</b>
    +<b class="fc">&nbsp;            methodNameString(request));</b>
    +&nbsp;
    +<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy PATH_AND_METHOD =</b>
    +&nbsp;        (name, request) -&gt; {
    +<b class="fc">&nbsp;            final URIBuilder url = new URIBuilder(requestURI(request));</b>
    +<b class="fc">&nbsp;            return name(HttpClient.class,</b>
    +&nbsp;                name,
    +<b class="fc">&nbsp;                url.getPath(),</b>
    +<b class="fc">&nbsp;                methodNameString(request));</b>
    +&nbsp;        };
     &nbsp;
     <b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =</b>
    -&nbsp;            (name, request) -&gt; {
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    final URIBuilder url = new URIBuilder(request.getUri());</b>
    -<b class="fc">&nbsp;                    return name(HttpClient.class,</b>
    -&nbsp;                            name,
    -<b class="fc">&nbsp;                            url.removeQuery().build().toString(),</b>
    -<b class="fc">&nbsp;                            methodNameString(request));</b>
    -<b class="nc">&nbsp;                } catch (URISyntaxException e) {</b>
    -<b class="nc">&nbsp;                    throw new IllegalArgumentException(e);</b>
    -&nbsp;                }
    -&nbsp;            };
    +&nbsp;        (name, request) -&gt; {
    +&nbsp;            try {
    +<b class="fc">&nbsp;                final URIBuilder url = new URIBuilder(requestURI(request));</b>
    +<b class="fc">&nbsp;                return name(HttpClient.class,</b>
    +&nbsp;                    name,
    +<b class="fc">&nbsp;                    url.removeQuery().build().toString(),</b>
    +<b class="fc">&nbsp;                    methodNameString(request));</b>
    +<b class="nc">&nbsp;            } catch (URISyntaxException e) {</b>
    +<b class="nc">&nbsp;                throw new IllegalArgumentException(e);</b>
    +&nbsp;            }
    +&nbsp;        };
     &nbsp;
     &nbsp;    private static String methodNameString(HttpRequest request) {
    -<b class="fc">&nbsp;        return request.getMethod().toLowerCase(Locale.ROOT) + &quot;-requests&quot;;</b>
    +<b class="fc">&nbsp;        return request.getRequestLine().getMethod().toLowerCase() + &quot;-requests&quot;;</b>
     &nbsp;    }
     &nbsp;
    +&nbsp;    private static URI requestURI(HttpRequest request) {
    +<b class="fc">&nbsp;        if (request instanceof HttpRequestWrapper)</b>
    +<b class="fc">&nbsp;            return requestURI(((HttpRequestWrapper) request).getOriginal());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        return (request instanceof HttpUriRequest) ?</b>
    +<b class="fc">&nbsp;            ((HttpUriRequest) request).getURI() :</b>
    +<b class="nc">&nbsp;            URI.create(request.getRequestLine().getUri());</b>
    +&nbsp;    }
     &nbsp;}
     </code>
     </pre>
    @@ -146,7 +159,7 @@ <h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.met
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-2.html
    index 1845d2d312..850c3e263e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-2.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-2.html
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +    <a href="../index.html">com.codahale.metrics.httpclient</a>
     </div>
     
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient5)</h1>
    +<h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient)</h1>
     
     <table class="coverageStats">
     
    @@ -57,13 +57,22 @@ <h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metri
     </td>
     </tr>
       <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$349Y1P2O</td>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$DMDxCMdT</td>
       </tr>
       <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$349Y1P2O$auxiliary$M1YqtWPO</td>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$DMDxCMdT$auxiliary$3CEX09I0</td>
       </tr>
       <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$349Y1P2O$auxiliary$xhZpTTks</td>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$DMDxCMdT$auxiliary$r0oMeEq8</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$p46QRylP</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$p46QRylP$auxiliary$1MjLUKCg</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$p46QRylP$auxiliary$QkC4FQib</td>
       </tr>
     <tr>
       <td class="name"><strong>Total</strong></td>
    @@ -91,11 +100,11 @@ <h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metri
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
     &nbsp;
     &nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.classic.HttpClient;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    +&nbsp;import org.apache.http.HttpRequest;
    +&nbsp;import org.apache.http.client.HttpClient;
     &nbsp;
     &nbsp;@FunctionalInterface
     &nbsp;public interface HttpClientMetricNameStrategy {
    @@ -131,7 +140,7 @@ <h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metri
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-3.html
    index 3518f5d5e9..820a7448fc 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-3.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-3.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAsyncClientConnectionManager</title>
    +  <title>Coverage Report > InstrumentedHttpClientConnectionManager</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +    <a href="../index.html">com.codahale.metrics.httpclient</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedAsyncClientConnectionManager (com.codahale.metrics.httpclient5)</h1>
    +<h1>Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient)</h1>
     
     <table class="coverageStats">
     
    @@ -38,40 +38,40 @@ <h1>Coverage Summary for Class: InstrumentedAsyncClientConnectionManager (com.co
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedAsyncClientConnectionManager</td>
    +  <td class="name">InstrumentedHttpClientConnectionManager</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    66.7%
       </span>
       <span class="absValue">
    -    (10/10)
    +    (8/12)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    84%
       </span>
       <span class="absValue">
    -    (22/22)
    +    (21/25)
       </span>
     </td>
     </tr>
       <tr>
    -    <td class="name">InstrumentedAsyncClientConnectionManager$Builder</td>
    +    <td class="name">InstrumentedHttpClientConnectionManager$Builder</td>
     <td class="coverageStat">
       <span class="percent">
    -    40%
    +    36.4%
       </span>
       <span class="absValue">
    -    (4/10)
    +    (4/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    40%
    +    46.2%
       </span>
       <span class="absValue">
    -    (8/20)
    +    (12/26)
       </span>
     </td>
       </tr>
    @@ -79,18 +79,18 @@ <h1>Coverage Summary for Class: InstrumentedAsyncClientConnectionManager (com.co
       <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    70%
    +    52.2%
       </span>
       <span class="absValue">
    -    (14/20)
    +    (12/23)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    71.4%
    +    64.7%
       </span>
       <span class="absValue">
    -    (30/42)
    +    (33/51)
       </span>
     </td>
     </tr>
    @@ -101,88 +101,132 @@ <h1>Coverage Summary for Class: InstrumentedAsyncClientConnectionManager (com.co
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
     &nbsp;
     &nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.DnsResolver;
    -&nbsp;import org.apache.hc.client5.http.SchemePortResolver;
    -&nbsp;import org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
    -&nbsp;import org.apache.hc.core5.http.URIScheme;
    -&nbsp;import org.apache.hc.core5.http.config.Lookup;
    -&nbsp;import org.apache.hc.core5.http.config.Registry;
    -&nbsp;import org.apache.hc.core5.http.config.RegistryBuilder;
    -&nbsp;import org.apache.hc.core5.http.nio.ssl.TlsStrategy;
    -&nbsp;import org.apache.hc.core5.io.CloseMode;
    -&nbsp;import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
    -&nbsp;import org.apache.hc.core5.pool.PoolReusePolicy;
    -&nbsp;import org.apache.hc.core5.util.TimeValue;
    +&nbsp;import org.apache.http.config.Registry;
    +&nbsp;import org.apache.http.config.RegistryBuilder;
    +&nbsp;import org.apache.http.conn.DnsResolver;
    +&nbsp;import org.apache.http.conn.HttpClientConnectionManager;
    +&nbsp;import org.apache.http.conn.HttpClientConnectionOperator;
    +&nbsp;import org.apache.http.conn.HttpConnectionFactory;
    +&nbsp;import org.apache.http.conn.ManagedHttpClientConnection;
    +&nbsp;import org.apache.http.conn.SchemePortResolver;
    +&nbsp;import org.apache.http.conn.routing.HttpRoute;
    +&nbsp;import org.apache.http.conn.socket.ConnectionSocketFactory;
    +&nbsp;import org.apache.http.conn.socket.PlainConnectionSocketFactory;
    +&nbsp;import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
    +&nbsp;import org.apache.http.impl.conn.DefaultHttpClientConnectionOperator;
    +&nbsp;import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
    +&nbsp;import org.apache.http.impl.conn.SystemDefaultDnsResolver;
    +&nbsp;
    +&nbsp;import java.util.concurrent.TimeUnit;
     &nbsp;
     &nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static java.util.Objects.requireNonNull;
     &nbsp;
     &nbsp;/**
     &nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
     &nbsp; */
    -&nbsp;public class InstrumentedAsyncClientConnectionManager extends PoolingAsyncClientConnectionManager {
    -<b class="fc">&nbsp;    private static final String METRICS_PREFIX = AsyncClientConnectionManager.class.getName();</b>
    +&nbsp;public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
    +&nbsp;
     &nbsp;
    -&nbsp;    protected static Registry&lt;TlsStrategy&gt; getDefaultTlsStrategy() {
    -<b class="fc">&nbsp;        return RegistryBuilder.&lt;TlsStrategy&gt;create()</b>
    -<b class="fc">&nbsp;                .register(URIScheme.HTTPS.id, DefaultClientTlsStrategy.getDefault())</b>
    -<b class="fc">&nbsp;                .build();</b>
    +&nbsp;    protected static Registry&lt;ConnectionSocketFactory&gt; getDefaultRegistry() {
    +<b class="fc">&nbsp;        return RegistryBuilder.&lt;ConnectionSocketFactory&gt;create()</b>
    +<b class="fc">&nbsp;            .register(&quot;http&quot;, PlainConnectionSocketFactory.getSocketFactory())</b>
    +<b class="fc">&nbsp;            .register(&quot;https&quot;, SSLConnectionSocketFactory.getSocketFactory())</b>
    +<b class="fc">&nbsp;            .build();</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    private final MetricRegistry metricsRegistry;
     &nbsp;    private final String name;
     &nbsp;
    -&nbsp;    InstrumentedAsyncClientConnectionManager(final MetricRegistry metricRegistry,
    -&nbsp;                                             final String name,
    -&nbsp;                                             final Lookup&lt;TlsStrategy&gt; tlsStrategyLookup,
    -&nbsp;                                             final PoolConcurrencyPolicy poolConcurrencyPolicy,
    -&nbsp;                                             final PoolReusePolicy poolReusePolicy,
    -&nbsp;                                             final TimeValue timeToLive,
    -&nbsp;                                             final SchemePortResolver schemePortResolver,
    -&nbsp;                                             final DnsResolver dnsResolver) {
    +&nbsp;    /**
    +&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    +&nbsp;     */
    +&nbsp;    @Deprecated
    +&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        this(metricRegistry, getDefaultRegistry());</b>
    +&nbsp;    }
     &nbsp;
    -<b class="fc">&nbsp;        super(tlsStrategyLookup, poolConcurrencyPolicy, poolReusePolicy, timeToLive, schemePortResolver, dnsResolver);</b>
    -<b class="fc">&nbsp;        this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    +&nbsp;    /**
    +&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    +&nbsp;     */
    +&nbsp;    @Deprecated
    +&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    +&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    +<b class="nc">&nbsp;        this(metricsRegistry, socketFactoryRegistry, -1, TimeUnit.MILLISECONDS);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    +&nbsp;     */
    +&nbsp;    @Deprecated
    +&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    +&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry,
    +&nbsp;                                                   long connTTL,
    +&nbsp;                                                   TimeUnit connTTLTimeUnit) {
    +<b class="nc">&nbsp;        this(metricsRegistry, socketFactoryRegistry, null, null, SystemDefaultDnsResolver.INSTANCE, connTTL, connTTLTimeUnit, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    +&nbsp;     */
    +&nbsp;    @Deprecated
    +&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    +&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry,
    +&nbsp;                                                   HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt;
    +&nbsp;                                                           connFactory,
    +&nbsp;                                                   SchemePortResolver schemePortResolver,
    +&nbsp;                                                   DnsResolver dnsResolver,
    +&nbsp;                                                   long connTTL,
    +&nbsp;                                                   TimeUnit connTTLTimeUnit,
    +&nbsp;                                                   String name) {
    +<b class="nc">&nbsp;        this(metricsRegistry,</b>
    +&nbsp;             new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver),
    +&nbsp;             connFactory,
    +&nbsp;             connTTL,
    +&nbsp;             connTTLTimeUnit,
    +&nbsp;             name);
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    +&nbsp;     */
    +&nbsp;    @Deprecated
    +&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    +&nbsp;                                                   HttpClientConnectionOperator httpClientConnectionOperator,
    +&nbsp;                                                   HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt;
    +&nbsp;                                                           connFactory,
    +&nbsp;                                                   long connTTL,
    +&nbsp;                                                   TimeUnit connTTLTimeUnit,
    +&nbsp;                                                   String name) {
    +<b class="fc">&nbsp;        super(httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit);</b>
    +<b class="fc">&nbsp;        this.metricsRegistry = metricsRegistry;</b>
     <b class="fc">&nbsp;        this.name = name;</b>
     &nbsp;
     &nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;available-connections&quot;),</b>
    +<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;available-connections&quot;),</b>
     <b class="fc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
     &nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;leased-connections&quot;),</b>
    +<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;leased-connections&quot;),</b>
     <b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
     &nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;max-connections&quot;),</b>
    +<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;max-connections&quot;),</b>
     <b class="fc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
     &nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;pending-connections&quot;),</b>
    +<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;pending-connections&quot;),</b>
     <b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="fc">&nbsp;        close(CloseMode.GRACEFUL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
     &nbsp;    @Override
    -&nbsp;    public void close(CloseMode closeMode) {
    -<b class="fc">&nbsp;        super.close(closeMode);</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;available-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;leased-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;max-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;pending-connections&quot;));</b>
    +&nbsp;    public void shutdown() {
    +<b class="fc">&nbsp;        super.shutdown();</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;available-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;leased-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;max-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;pending-connections&quot;));</b>
     &nbsp;    }
     &nbsp;
     &nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    @@ -191,25 +235,31 @@ <h1>Coverage Summary for Class: InstrumentedAsyncClientConnectionManager (com.co
     &nbsp;
     &nbsp;    public static class Builder {
     &nbsp;        private MetricRegistry metricsRegistry;
    -&nbsp;        private String name;
    -<b class="fc">&nbsp;        private Lookup&lt;TlsStrategy&gt; tlsStrategyLookup = getDefaultTlsStrategy();</b>
    +&nbsp;        private HttpClientConnectionOperator httpClientConnectionOperator;
    +<b class="fc">&nbsp;        private Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry = getDefaultRegistry();</b>
    +&nbsp;        private HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt; connFactory;
     &nbsp;        private SchemePortResolver schemePortResolver;
    -&nbsp;        private DnsResolver dnsResolver;
    -&nbsp;        private PoolConcurrencyPolicy poolConcurrencyPolicy;
    -&nbsp;        private PoolReusePolicy poolReusePolicy;
    -<b class="fc">&nbsp;        private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;</b>
    +<b class="fc">&nbsp;        private DnsResolver dnsResolver = SystemDefaultDnsResolver.INSTANCE;</b>
    +<b class="fc">&nbsp;        private long connTTL = -1;</b>
    +<b class="fc">&nbsp;        private TimeUnit connTTLTimeUnit = TimeUnit.MILLISECONDS;</b>
    +&nbsp;        private String name;
     &nbsp;
     <b class="fc">&nbsp;        Builder() {</b>
     &nbsp;        }
     &nbsp;
    -&nbsp;        public Builder metricsRegistry(MetricRegistry metricRegistry) {
    -<b class="fc">&nbsp;            this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    +&nbsp;        public Builder metricsRegistry(MetricRegistry metricsRegistry) {
    +<b class="fc">&nbsp;            this.metricsRegistry = metricsRegistry;</b>
     <b class="fc">&nbsp;            return this;</b>
     &nbsp;        }
     &nbsp;
    -&nbsp;        public Builder name(final String name) {
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        public Builder socketFactoryRegistry(Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    +<b class="nc">&nbsp;            this.socketFactoryRegistry = socketFactoryRegistry;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder connFactory(HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt; connFactory) {
    +<b class="nc">&nbsp;            this.connFactory = connFactory;</b>
    +<b class="nc">&nbsp;            return this;</b>
     &nbsp;        }
     &nbsp;
     &nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    @@ -222,36 +272,31 @@ <h1>Coverage Summary for Class: InstrumentedAsyncClientConnectionManager (com.co
     <b class="nc">&nbsp;            return this;</b>
     &nbsp;        }
     &nbsp;
    -&nbsp;        public Builder timeToLive(TimeValue timeToLive) {
    -<b class="nc">&nbsp;            this.timeToLive = timeToLive;</b>
    +&nbsp;        public Builder connTTL(long connTTL) {
    +<b class="nc">&nbsp;            this.connTTL = connTTL;</b>
     <b class="nc">&nbsp;            return this;</b>
     &nbsp;        }
     &nbsp;
    -&nbsp;        public Builder tlsStrategyLookup(Lookup&lt;TlsStrategy&gt; tlsStrategyLookup) {
    -<b class="nc">&nbsp;            this.tlsStrategyLookup = tlsStrategyLookup;</b>
    +&nbsp;        public Builder connTTLTimeUnit(TimeUnit connTTLTimeUnit) {
    +<b class="nc">&nbsp;            this.connTTLTimeUnit = connTTLTimeUnit;</b>
     <b class="nc">&nbsp;            return this;</b>
     &nbsp;        }
     &nbsp;
    -&nbsp;        public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
    -<b class="nc">&nbsp;            this.poolConcurrencyPolicy = poolConcurrencyPolicy;</b>
    +&nbsp;        public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
    +<b class="nc">&nbsp;            this.httpClientConnectionOperator = httpClientConnectionOperator;</b>
     <b class="nc">&nbsp;            return this;</b>
     &nbsp;        }
     &nbsp;
    -&nbsp;        public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
    -<b class="nc">&nbsp;            this.poolReusePolicy = poolReusePolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        public Builder name(final String name) {
    +<b class="fc">&nbsp;            this.name = name;</b>
    +<b class="fc">&nbsp;            return this;</b>
     &nbsp;        }
     &nbsp;
    -&nbsp;        public InstrumentedAsyncClientConnectionManager build() {
    -<b class="fc">&nbsp;            return new InstrumentedAsyncClientConnectionManager(</b>
    -&nbsp;                    metricsRegistry,
    -&nbsp;                    name,
    -&nbsp;                    tlsStrategyLookup,
    -&nbsp;                    poolConcurrencyPolicy,
    -&nbsp;                    poolReusePolicy,
    -&nbsp;                    timeToLive,
    -&nbsp;                    schemePortResolver,
    -&nbsp;                    dnsResolver);
    +&nbsp;        public InstrumentedHttpClientConnectionManager build() {
    +<b class="fc">&nbsp;            if (httpClientConnectionOperator == null) {</b>
    +<b class="fc">&nbsp;                httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver);</b>
    +&nbsp;            }
    +<b class="fc">&nbsp;            return new InstrumentedHttpClientConnectionManager(metricsRegistry, httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit, name);</b>
     &nbsp;        }
     &nbsp;    }
     &nbsp;
    @@ -279,7 +324,7 @@ <h1>Coverage Summary for Class: InstrumentedAsyncClientConnectionManager (com.co
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-4.html
    index db08ca2b19..659a5796c5 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-4.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-4.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAsyncExecChainHandler</title>
    +  <title>Coverage Report > InstrumentedHttpClients</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,16 +19,19 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +    <a href="../index.html">com.codahale.metrics.httpclient</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedAsyncExecChainHandler (com.codahale.metrics.httpclient5)</h1>
    +<h1>Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient)</h1>
     
     <table class="coverageStats">
    -
     <tr>
       <th class="name">Class</th>
     <th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
     ">
       Method, %
     </th>
    @@ -38,62 +41,33 @@ <h1>Coverage Summary for Class: InstrumentedAsyncExecChainHandler (com.codahale.
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedAsyncExecChainHandler</td>
    +  <td class="name">InstrumentedHttpClients</td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (3/3)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    25%
       </span>
       <span class="absValue">
    -    (7/7)
    +    (1/4)
       </span>
     </td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedAsyncExecChainHandler$InstrumentedAsyncExecCallback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
     <td class="coverageStat">
       <span class="percent">
    -    90%
    +    50%
       </span>
       <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    +    (3/6)
       </span>
     </td>
     </tr>
    +
     </table>
     
     <br/>
    @@ -101,104 +75,39 @@ <h1>Coverage Summary for Class: InstrumentedAsyncExecChainHandler (com.codahale.
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
     &nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
     &nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.apache.hc.client5.http.async.AsyncExecCallback;
    -&nbsp;import org.apache.hc.client5.http.async.AsyncExecChain;
    -&nbsp;import org.apache.hc.client5.http.async.AsyncExecChainHandler;
    -&nbsp;import org.apache.hc.core5.http.EntityDetails;
    -&nbsp;import org.apache.hc.core5.http.HttpException;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;import org.apache.hc.core5.http.HttpResponse;
    -&nbsp;import org.apache.hc.core5.http.nio.AsyncDataConsumer;
    -&nbsp;import org.apache.hc.core5.http.nio.AsyncEntityProducer;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;import org.apache.http.impl.client.CloseableHttpClient;
    +&nbsp;import org.apache.http.impl.client.HttpClientBuilder;
     &nbsp;
    -&nbsp;class InstrumentedAsyncExecChainHandler implements AsyncExecChainHandler {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;    private final String name;
    +&nbsp;import static com.codahale.metrics.httpclient.HttpClientMetricNameStrategies.METHOD_ONLY;
     &nbsp;
    -&nbsp;    public InstrumentedAsyncExecChainHandler(MetricRegistry registry, HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    +&nbsp;public class InstrumentedHttpClients {
    +&nbsp;    private InstrumentedHttpClients() {
    +&nbsp;        super();
     &nbsp;    }
     &nbsp;
    -&nbsp;    public InstrumentedAsyncExecChainHandler(MetricRegistry registry,
    -&nbsp;                                             HttpClientMetricNameStrategy metricNameStrategy,
    -<b class="fc">&nbsp;                                             String name) {</b>
    -<b class="fc">&nbsp;        this.registry = requireNonNull(registry, &quot;registry&quot;);</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = requireNonNull(metricNameStrategy, &quot;metricNameStrategy&quot;);</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void execute(HttpRequest request,
    -&nbsp;                        AsyncEntityProducer entityProducer,
    -&nbsp;                        AsyncExecChain.Scope scope,
    -&nbsp;                        AsyncExecChain chain,
    -&nbsp;                        AsyncExecCallback asyncExecCallback) throws HttpException, IOException {
    -<b class="fc">&nbsp;        final InstrumentedAsyncExecCallback instrumentedAsyncExecCallback =</b>
    -&nbsp;                new InstrumentedAsyncExecCallback(registry, metricNameStrategy, name, asyncExecCallback, request);
    -<b class="fc">&nbsp;        chain.proceed(request, entityProducer, scope, instrumentedAsyncExecCallback);</b>
    -&nbsp;
    +&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
    +&nbsp;                                                    HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    final static class InstrumentedAsyncExecCallback implements AsyncExecCallback {
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;        private final String name;
    -&nbsp;        private final AsyncExecCallback delegate;
    -&nbsp;        private final Timer.Context timerContext;
    -&nbsp;
    -&nbsp;        public InstrumentedAsyncExecCallback(MetricRegistry registry,
    -&nbsp;                                             HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                             String name,
    -&nbsp;                                             AsyncExecCallback delegate,
    -<b class="fc">&nbsp;                                             HttpRequest request) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.metricNameStrategy = metricNameStrategy;</b>
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            this.delegate = delegate;</b>
    -<b class="fc">&nbsp;            this.timerContext = timer(request).time();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public AsyncDataConsumer handleResponse(HttpResponse response, EntityDetails entityDetails) throws HttpException, IOException {
    -<b class="fc">&nbsp;            return delegate.handleResponse(response, entityDetails);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void handleInformationResponse(HttpResponse response) throws HttpException, IOException {
    -<b class="nc">&nbsp;            delegate.handleInformationResponse(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void completed() {
    -<b class="fc">&nbsp;            delegate.completed();</b>
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void failed(Exception cause) {
    -<b class="fc">&nbsp;            delegate.failed(cause);</b>
    -<b class="fc">&nbsp;            meter(cause).mark();</b>
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;            return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;        }
    +&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;    }
     &nbsp;
    -&nbsp;        private Meter meter(Exception e) {
    -<b class="fc">&nbsp;            return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    -&nbsp;        }
    +&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        return HttpClientBuilder.create()</b>
    +<b class="fc">&nbsp;                .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))</b>
    +<b class="fc">&nbsp;                .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());</b>
     &nbsp;    }
    +&nbsp;
     &nbsp;}
     </code>
     </pre>
    @@ -223,7 +132,7 @@ <h1>Coverage Summary for Class: InstrumentedAsyncExecChainHandler (com.codahale.
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-5.html
    index 3b1ba0492c..ef5046b05c 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-5.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-5.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpAsyncClients</title>
    +  <title>Coverage Report > InstrumentedHttpRequestExecutor</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +    <a href="../index.html">com.codahale.metrics.httpclient</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedHttpAsyncClients (com.codahale.metrics.httpclient5)</h1>
    +<h1>Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -41,7 +41,7 @@ <h1>Coverage Summary for Class: InstrumentedHttpAsyncClients (com.codahale.metri
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedHttpAsyncClients</td>
    +  <td class="name">InstrumentedHttpRequestExecutor</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -52,18 +52,18 @@ <h1>Coverage Summary for Class: InstrumentedHttpAsyncClients (com.codahale.metri
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    40%
    +    100%
       </span>
       <span class="absValue">
    -    (2/5)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    57.1%
    +    100%
       </span>
       <span class="absValue">
    -    (4/7)
    +    (15/15)
       </span>
     </td>
     </tr>
    @@ -75,48 +75,67 @@ <h1>Coverage Summary for Class: InstrumentedHttpAsyncClients (com.codahale.metri
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
     &nbsp;
     &nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.impl.ChainElement;
    -&nbsp;import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
    -&nbsp;import org.apache.hc.client5.http.impl.async.HttpAsyncClientBuilder;
    -&nbsp;import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.apache.http.HttpClientConnection;
    +&nbsp;import org.apache.http.HttpException;
    +&nbsp;import org.apache.http.HttpRequest;
    +&nbsp;import org.apache.http.HttpResponse;
    +&nbsp;import org.apache.http.protocol.HttpContext;
    +&nbsp;import org.apache.http.protocol.HttpRequestExecutor;
     &nbsp;
    -&nbsp;import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
    +&nbsp;import com.codahale.metrics.Meter;
     &nbsp;
    -&nbsp;public class InstrumentedHttpAsyncClients {
    -&nbsp;    private InstrumentedHttpAsyncClients() {
    -&nbsp;        super();
    -&nbsp;    }
    +&nbsp;import java.io.IOException;
     &nbsp;
    -&nbsp;    public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    +&nbsp;    private final String name;
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry,
    -&nbsp;                                                         HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                           String name) {
    +<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                           String name,
    +&nbsp;                                           int waitForContinue) {
    +<b class="fc">&nbsp;        super(waitForContinue);</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                                HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        return custom(metricRegistry, metricNameStrategy, InstrumentedAsyncClientConnectionManager.builder(metricRegistry).build());</b>
    +&nbsp;    @Override
    +&nbsp;    public HttpResponse execute(HttpRequest request, HttpClientConnection conn, HttpContext context) throws HttpException, IOException {
    +<b class="fc">&nbsp;        final Timer.Context timerContext = timer(request).time();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return super.execute(request, conn, context);</b>
    +<b class="fc">&nbsp;        } catch (HttpException | IOException e) {</b>
    +<b class="fc">&nbsp;            meter(e).mark();</b>
    +<b class="fc">&nbsp;            throw e;</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +<b class="fc">&nbsp;        }</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                                HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                                AsyncClientConnectionManager clientConnectionManager) {
    -<b class="fc">&nbsp;        return HttpAsyncClientBuilder.create()</b>
    -<b class="fc">&nbsp;                .setConnectionManager(clientConnectionManager)</b>
    -<b class="fc">&nbsp;                .addExecInterceptorBefore(ChainElement.CONNECT.name(), &quot;dropwizard-metrics&quot;,</b>
    -&nbsp;                        new InstrumentedAsyncExecChainHandler(metricRegistry, metricNameStrategy));
    +&nbsp;    private Timer timer(HttpRequest request) {
    +<b class="fc">&nbsp;        return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
     &nbsp;    }
     &nbsp;
    +&nbsp;    private Meter meter(Exception e) {
    +<b class="fc">&nbsp;        return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    +&nbsp;    }
     &nbsp;}
     </code>
     </pre>
    @@ -141,7 +160,7 @@ <h1>Coverage Summary for Class: InstrumentedHttpAsyncClients (com.codahale.metri
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index.html
    index a8276139d9..50cb623ab9 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    +com.codahale.metrics.httpclient5</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90.9%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (10/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    69.3%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (52/75)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    74.1%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (120/162)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,20 +97,209 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
         (1/1)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (16/16)
       </span>
     </td>
       </tr>
    @@ -137,7 +326,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK.html
    index c3070c0d84..94b053b973 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    +com.codahale.metrics.httpclient5</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90.9%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (10/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    69.3%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (52/75)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    74.1%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (120/162)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,20 +97,209 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
         (1/1)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (16/16)
       </span>
     </td>
       </tr>
    @@ -137,7 +326,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
    index 2231671545..29aeaae831 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    +com.codahale.metrics.httpclient5</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90.9%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (10/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    69.3%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (52/75)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    74.1%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (120/162)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -102,15 +102,204 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    72.2%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (13/18)
       </span>
     </td>
       </tr>
    @@ -137,7 +326,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS.html
    index 37b63e1c1f..d01783b69d 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    +com.codahale.metrics.httpclient5</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90.9%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (10/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    69.3%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (52/75)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    74.1%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (120/162)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,20 +124,182 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
         (1/1)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (2/2)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (16/16)
       </span>
     </td>
       </tr>
    @@ -137,7 +326,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
    index 7ae4beeae9..26a9a330ba 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    +com.codahale.metrics.httpclient5</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90.9%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (10/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    69.3%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (52/75)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    74.1%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (120/162)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -102,15 +102,204 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    0%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (0/2)
       </span>
     </td>
       </tr>
    @@ -137,7 +326,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE.html
    index 0e8d225851..d6c17e11a9 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    +com.codahale.metrics.httpclient5</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90.9%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (10/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    69.3%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (52/75)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    74.1%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (120/162)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,20 +124,182 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
         (1/1)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (16/16)
       </span>
     </td>
       </tr>
    @@ -137,7 +326,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
    index a3522db0b0..c139afc919 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    +com.codahale.metrics.httpclient5</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90.9%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (10/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    69.3%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (52/75)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    74.1%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (120/162)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -102,15 +102,204 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    0%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (0/2)
       </span>
     </td>
       </tr>
    @@ -137,7 +326,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD.html
    index 5c7837fa0b..0fad18627b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    +com.codahale.metrics.httpclient5</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90.9%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (10/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    69.3%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (52/75)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    74.1%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (120/162)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,34 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -97,20 +124,182 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
         (1/1)
       </span>
     </td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (1/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (16/16)
       </span>
     </td>
       </tr>
    @@ -137,7 +326,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
    index bf69e53567..4e71e27aa7 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    +com.codahale.metrics.httpclient5</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90.9%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (10/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    69.3%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (52/75)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    74.1%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (120/162)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -102,15 +102,204 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    72.2%
    +  </span>
    +  <span class="absValue">
    +    (13/18)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    0%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (0/2)
       </span>
     </td>
       </tr>
    @@ -137,7 +326,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
    index d3bd9c4398..7523160f38 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    +  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    +com.codahale.metrics.httpclient5</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,29 +38,29 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    +    <td class="name">com.codahale.metrics.httpclient5</td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    90.9%
       </span>
       <span class="absValue">
    -    (1/1)
    +    (10/11)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    69.3%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (52/75)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    74.1%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (120/162)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    +    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -102,15 +102,204 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
         100%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (2/2)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +  </tr>
    +  <tr>
    +    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    83.3%
    +  </span>
    +  <span class="absValue">
    +    (5/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    72.2%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (13/18)
       </span>
     </td>
       </tr>
    @@ -137,7 +326,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-1.html
    index 8628543827..4d456fd854 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JCacheGaugeSet</title>
    +  <title>Coverage Report > HttpClientMetricNameStrategies</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jcache</a>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
     </div>
     
    -<h1>Coverage Summary for Class: JCacheGaugeSet (com.codahale.metrics.jcache)</h1>
    +<h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient5)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -41,7 +41,7 @@ <h1>Coverage Summary for Class: JCacheGaugeSet (com.codahale.metrics.jcache)</h1
     </th>
     </tr>
     <tr>
    -  <td class="name">JCacheGaugeSet</td>
    +  <td class="name">HttpClientMetricNameStrategies</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -52,18 +52,18 @@ <h1>Coverage Summary for Class: JCacheGaugeSet (com.codahale.metrics.jcache)</h1
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    100%
    +    83.3%
       </span>
       <span class="absValue">
    -    (6/6)
    +    (5/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    88.5%
    +    72.2%
       </span>
       <span class="absValue">
    -    (23/26)
    +    (13/18)
       </span>
     </td>
     </tr>
    @@ -75,88 +75,51 @@ <h1>Coverage Summary for Class: JCacheGaugeSet (com.codahale.metrics.jcache)</h1
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jcache;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
     &nbsp;
    -&nbsp;import com.codahale.metrics.jvm.JmxAttributeGauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;import org.apache.hc.client5.http.classic.HttpClient;
    +&nbsp;import org.apache.hc.core5.http.HttpRequest;
    +&nbsp;import org.apache.hc.core5.net.URIBuilder;
     &nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    +&nbsp;import java.net.URISyntaxException;
     &nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;import javax.cache.management.CacheStatisticsMXBean;
    -&nbsp;import javax.management.MalformedObjectNameException;
    -&nbsp;import javax.management.ObjectInstance;
    -&nbsp;import javax.management.ObjectName;
     &nbsp;
     &nbsp;import static com.codahale.metrics.MetricRegistry.name;
     &nbsp;
    -&nbsp;/**
    -&nbsp; * Gauge set retrieving JCache JMX attributes
    -&nbsp; *
    -&nbsp; * @author &lt;a href=&quot;mailto:henri.tremblay@softwareag.com&quot;&gt;Henri Tremblay&lt;/a&gt;
    -&nbsp; * @author &lt;a href=&quot;mailto:anthony.dahanne@softwareag.com&quot;&gt;Anthony Dahanne&lt;/a&gt;
    -&nbsp; */
    -<b class="fc">&nbsp;public class JCacheGaugeSet implements MetricSet {</b>
    -&nbsp;
    -&nbsp;    private static final String M_BEAN_COORDINATES = &quot;javax.cache:type=CacheStatistics,CacheManager=*,Cache=*&quot;;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JCacheGaugeSet.class);</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        Set&lt;ObjectInstance&gt; cacheBeans = getCacheBeans();</b>
    -<b class="fc">&nbsp;        List&lt;String&gt; availableStatsNames = retrieveStatsNames();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;(cacheBeans.size() * availableStatsNames.size());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (ObjectInstance cacheBean : cacheBeans) {</b>
    -<b class="fc">&nbsp;            ObjectName objectName = cacheBean.getObjectName();</b>
    -<b class="fc">&nbsp;            String cacheName = objectName.getKeyProperty(&quot;Cache&quot;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (String statsName : availableStatsNames) {</b>
    -<b class="fc">&nbsp;                JmxAttributeGauge jmxAttributeGauge = new JmxAttributeGauge(objectName, statsName);</b>
    -<b class="fc">&nbsp;                gauges.put(name(cacheName, toSpinalCase(statsName)), jmxAttributeGauge);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Set&lt;ObjectInstance&gt; getCacheBeans() {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return ManagementFactory.getPlatformMBeanServer().queryMBeans(ObjectName.getInstance(M_BEAN_COORDINATES), null);</b>
    -<b class="nc">&nbsp;        } catch (MalformedObjectNameException e) {</b>
    -<b class="nc">&nbsp;            LOGGER.error(&quot;Unable to retrieve {}. Are JCache statistics enabled?&quot;, M_BEAN_COORDINATES);</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private List&lt;String&gt; retrieveStatsNames() {
    -<b class="fc">&nbsp;        Method[] methods = CacheStatisticsMXBean.class.getDeclaredMethods();</b>
    -<b class="fc">&nbsp;        List&lt;String&gt; availableStatsNames = new ArrayList&lt;&gt;(methods.length);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Method method : methods) {</b>
    -<b class="fc">&nbsp;            String methodName = method.getName();</b>
    -<b class="fc">&nbsp;            if (methodName.startsWith(&quot;get&quot;)) {</b>
    -<b class="fc">&nbsp;                availableStatsNames.add(methodName.substring(3));</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return availableStatsNames;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static String toSpinalCase(String camelCase) {
    -<b class="fc">&nbsp;        return camelCase.replaceAll(&quot;(.)(\\p{Upper})&quot;, &quot;$1-$2&quot;).toLowerCase(Locale.US);</b>
    +<b class="nc">&nbsp;public class HttpClientMetricNameStrategies {</b>
    +&nbsp;
    +<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy METHOD_ONLY =</b>
    +<b class="fc">&nbsp;            (name, request) -&gt; name(HttpClient.class,</b>
    +&nbsp;                    name,
    +<b class="fc">&nbsp;                    methodNameString(request));</b>
    +&nbsp;
    +<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy HOST_AND_METHOD =</b>
    +&nbsp;            (name, request) -&gt; {
    +&nbsp;                try {
    +<b class="fc">&nbsp;                    return name(HttpClient.class,</b>
    +&nbsp;                            name,
    +<b class="fc">&nbsp;                            request.getUri().getHost(),</b>
    +<b class="fc">&nbsp;                            methodNameString(request));</b>
    +<b class="nc">&nbsp;                } catch (URISyntaxException e) {</b>
    +<b class="nc">&nbsp;                    throw new IllegalArgumentException(e);</b>
    +&nbsp;                }
    +&nbsp;            };
    +&nbsp;
    +<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =</b>
    +&nbsp;            (name, request) -&gt; {
    +&nbsp;                try {
    +<b class="fc">&nbsp;                    final URIBuilder url = new URIBuilder(request.getUri());</b>
    +<b class="fc">&nbsp;                    return name(HttpClient.class,</b>
    +&nbsp;                            name,
    +<b class="fc">&nbsp;                            url.removeQuery().build().toString(),</b>
    +<b class="fc">&nbsp;                            methodNameString(request));</b>
    +<b class="nc">&nbsp;                } catch (URISyntaxException e) {</b>
    +<b class="nc">&nbsp;                    throw new IllegalArgumentException(e);</b>
    +&nbsp;                }
    +&nbsp;            };
    +&nbsp;
    +&nbsp;    private static String methodNameString(HttpRequest request) {
    +<b class="fc">&nbsp;        return request.getMethod().toLowerCase(Locale.ROOT) + &quot;-requests&quot;;</b>
     &nbsp;    }
     &nbsp;
     &nbsp;}
    @@ -183,7 +146,7 @@ <h1>Coverage Summary for Class: JCacheGaugeSet (com.codahale.metrics.jcache)</h1
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-2.html
    new file mode 100644
    index 0000000000..e9e851c434
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-2.html
    @@ -0,0 +1,137 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > HttpClientMetricNameStrategy</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">HttpClientMetricNameStrategy</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$lUdR5b3N</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$lUdR5b3N$auxiliary$kqfMgHbn</td>
    +  </tr>
    +  <tr>
    +    <td class="name">HttpClientMetricNameStrategy$MockitoMock$lUdR5b3N$auxiliary$Rx31mbKS</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    0%
    +  </span>
    +  <span class="absValue">
    +    (0/2)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.hc.client5.http.classic.HttpClient;
    +&nbsp;import org.apache.hc.core5.http.HttpRequest;
    +&nbsp;
    +&nbsp;@FunctionalInterface
    +&nbsp;public interface HttpClientMetricNameStrategy {
    +&nbsp;
    +&nbsp;    String getNameFor(String name, HttpRequest request);
    +&nbsp;
    +&nbsp;    default String getNameFor(String name, Exception exception) {
    +<b class="nc">&nbsp;        return MetricRegistry.name(HttpClient.class,</b>
    +&nbsp;                name,
    +<b class="nc">&nbsp;                exception.getClass().getSimpleName());</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-3.html
    new file mode 100644
    index 0000000000..9a84473ad6
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-3.html
    @@ -0,0 +1,285 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedAsyncClientConnectionManager</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedAsyncClientConnectionManager (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedAsyncClientConnectionManager</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (22/22)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedAsyncClientConnectionManager$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (4/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (8/20)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    70%
    +  </span>
    +  <span class="absValue">
    +    (14/20)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    71.4%
    +  </span>
    +  <span class="absValue">
    +    (30/42)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.hc.client5.http.DnsResolver;
    +&nbsp;import org.apache.hc.client5.http.SchemePortResolver;
    +&nbsp;import org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager;
    +&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionManager;
    +&nbsp;import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
    +&nbsp;import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
    +&nbsp;import org.apache.hc.core5.http.URIScheme;
    +&nbsp;import org.apache.hc.core5.http.config.Lookup;
    +&nbsp;import org.apache.hc.core5.http.config.Registry;
    +&nbsp;import org.apache.hc.core5.http.config.RegistryBuilder;
    +&nbsp;import org.apache.hc.core5.http.nio.ssl.TlsStrategy;
    +&nbsp;import org.apache.hc.core5.io.CloseMode;
    +&nbsp;import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
    +&nbsp;import org.apache.hc.core5.pool.PoolReusePolicy;
    +&nbsp;import org.apache.hc.core5.util.TimeValue;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    +&nbsp; */
    +&nbsp;public class InstrumentedAsyncClientConnectionManager extends PoolingAsyncClientConnectionManager {
    +<b class="fc">&nbsp;    private static final String METRICS_PREFIX = AsyncClientConnectionManager.class.getName();</b>
    +&nbsp;
    +&nbsp;    protected static Registry&lt;TlsStrategy&gt; getDefaultTlsStrategy() {
    +<b class="fc">&nbsp;        return RegistryBuilder.&lt;TlsStrategy&gt;create()</b>
    +<b class="fc">&nbsp;                .register(URIScheme.HTTPS.id, DefaultClientTlsStrategy.getDefault())</b>
    +<b class="fc">&nbsp;                .build();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricsRegistry;
    +&nbsp;    private final String name;
    +&nbsp;
    +&nbsp;    InstrumentedAsyncClientConnectionManager(final MetricRegistry metricRegistry,
    +&nbsp;                                             final String name,
    +&nbsp;                                             final Lookup&lt;TlsStrategy&gt; tlsStrategyLookup,
    +&nbsp;                                             final PoolConcurrencyPolicy poolConcurrencyPolicy,
    +&nbsp;                                             final PoolReusePolicy poolReusePolicy,
    +&nbsp;                                             final TimeValue timeToLive,
    +&nbsp;                                             final SchemePortResolver schemePortResolver,
    +&nbsp;                                             final DnsResolver dnsResolver) {
    +&nbsp;
    +<b class="fc">&nbsp;        super(tlsStrategyLookup, poolConcurrencyPolicy, poolReusePolicy, timeToLive, schemePortResolver, dnsResolver);</b>
    +<b class="fc">&nbsp;        this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;available-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;leased-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;max-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;pending-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void close() {
    +<b class="fc">&nbsp;        close(CloseMode.GRACEFUL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void close(CloseMode closeMode) {
    +<b class="fc">&nbsp;        super.close(closeMode);</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;available-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;leased-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;max-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;pending-connections&quot;));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    +<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static class Builder {
    +&nbsp;        private MetricRegistry metricsRegistry;
    +&nbsp;        private String name;
    +<b class="fc">&nbsp;        private Lookup&lt;TlsStrategy&gt; tlsStrategyLookup = getDefaultTlsStrategy();</b>
    +&nbsp;        private SchemePortResolver schemePortResolver;
    +&nbsp;        private DnsResolver dnsResolver;
    +&nbsp;        private PoolConcurrencyPolicy poolConcurrencyPolicy;
    +&nbsp;        private PoolReusePolicy poolReusePolicy;
    +<b class="fc">&nbsp;        private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;</b>
    +&nbsp;
    +<b class="fc">&nbsp;        Builder() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder metricsRegistry(MetricRegistry metricRegistry) {
    +<b class="fc">&nbsp;            this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder name(final String name) {
    +<b class="fc">&nbsp;            this.name = name;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    +<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    +<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder timeToLive(TimeValue timeToLive) {
    +<b class="nc">&nbsp;            this.timeToLive = timeToLive;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder tlsStrategyLookup(Lookup&lt;TlsStrategy&gt; tlsStrategyLookup) {
    +<b class="nc">&nbsp;            this.tlsStrategyLookup = tlsStrategyLookup;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
    +<b class="nc">&nbsp;            this.poolConcurrencyPolicy = poolConcurrencyPolicy;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
    +<b class="nc">&nbsp;            this.poolReusePolicy = poolReusePolicy;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public InstrumentedAsyncClientConnectionManager build() {
    +<b class="fc">&nbsp;            return new InstrumentedAsyncClientConnectionManager(</b>
    +&nbsp;                    metricsRegistry,
    +&nbsp;                    name,
    +&nbsp;                    tlsStrategyLookup,
    +&nbsp;                    poolConcurrencyPolicy,
    +&nbsp;                    poolReusePolicy,
    +&nbsp;                    timeToLive,
    +&nbsp;                    schemePortResolver,
    +&nbsp;                    dnsResolver);
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-4.html
    new file mode 100644
    index 0000000000..1645a5ff46
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-4.html
    @@ -0,0 +1,229 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedAsyncExecChainHandler</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedAsyncExecChainHandler (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedAsyncExecChainHandler</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (3/3)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedAsyncExecChainHandler$InstrumentedAsyncExecCallback</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    85.7%
    +  </span>
    +  <span class="absValue">
    +    (6/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    93.3%
    +  </span>
    +  <span class="absValue">
    +    (14/15)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    90%
    +  </span>
    +  <span class="absValue">
    +    (9/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    95.5%
    +  </span>
    +  <span class="absValue">
    +    (21/22)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.apache.hc.client5.http.async.AsyncExecCallback;
    +&nbsp;import org.apache.hc.client5.http.async.AsyncExecChain;
    +&nbsp;import org.apache.hc.client5.http.async.AsyncExecChainHandler;
    +&nbsp;import org.apache.hc.core5.http.EntityDetails;
    +&nbsp;import org.apache.hc.core5.http.HttpException;
    +&nbsp;import org.apache.hc.core5.http.HttpRequest;
    +&nbsp;import org.apache.hc.core5.http.HttpResponse;
    +&nbsp;import org.apache.hc.core5.http.nio.AsyncDataConsumer;
    +&nbsp;import org.apache.hc.core5.http.nio.AsyncEntityProducer;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;
    +&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;
    +&nbsp;class InstrumentedAsyncExecChainHandler implements AsyncExecChainHandler {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    +&nbsp;    private final String name;
    +&nbsp;
    +&nbsp;    public InstrumentedAsyncExecChainHandler(MetricRegistry registry, HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedAsyncExecChainHandler(MetricRegistry registry,
    +&nbsp;                                             HttpClientMetricNameStrategy metricNameStrategy,
    +<b class="fc">&nbsp;                                             String name) {</b>
    +<b class="fc">&nbsp;        this.registry = requireNonNull(registry, &quot;registry&quot;);</b>
    +<b class="fc">&nbsp;        this.metricNameStrategy = requireNonNull(metricNameStrategy, &quot;metricNameStrategy&quot;);</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public void execute(HttpRequest request,
    +&nbsp;                        AsyncEntityProducer entityProducer,
    +&nbsp;                        AsyncExecChain.Scope scope,
    +&nbsp;                        AsyncExecChain chain,
    +&nbsp;                        AsyncExecCallback asyncExecCallback) throws HttpException, IOException {
    +<b class="fc">&nbsp;        final InstrumentedAsyncExecCallback instrumentedAsyncExecCallback =</b>
    +&nbsp;                new InstrumentedAsyncExecCallback(registry, metricNameStrategy, name, asyncExecCallback, request);
    +<b class="fc">&nbsp;        chain.proceed(request, entityProducer, scope, instrumentedAsyncExecCallback);</b>
    +&nbsp;
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    final static class InstrumentedAsyncExecCallback implements AsyncExecCallback {
    +&nbsp;        private final MetricRegistry registry;
    +&nbsp;        private final HttpClientMetricNameStrategy metricNameStrategy;
    +&nbsp;        private final String name;
    +&nbsp;        private final AsyncExecCallback delegate;
    +&nbsp;        private final Timer.Context timerContext;
    +&nbsp;
    +&nbsp;        public InstrumentedAsyncExecCallback(MetricRegistry registry,
    +&nbsp;                                             HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                             String name,
    +&nbsp;                                             AsyncExecCallback delegate,
    +<b class="fc">&nbsp;                                             HttpRequest request) {</b>
    +<b class="fc">&nbsp;            this.registry = registry;</b>
    +<b class="fc">&nbsp;            this.metricNameStrategy = metricNameStrategy;</b>
    +<b class="fc">&nbsp;            this.name = name;</b>
    +<b class="fc">&nbsp;            this.delegate = delegate;</b>
    +<b class="fc">&nbsp;            this.timerContext = timer(request).time();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public AsyncDataConsumer handleResponse(HttpResponse response, EntityDetails entityDetails) throws HttpException, IOException {
    +<b class="fc">&nbsp;            return delegate.handleResponse(response, entityDetails);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void handleInformationResponse(HttpResponse response) throws HttpException, IOException {
    +<b class="nc">&nbsp;            delegate.handleInformationResponse(response);</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void completed() {
    +<b class="fc">&nbsp;            delegate.completed();</b>
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        @Override
    +&nbsp;        public void failed(Exception cause) {
    +<b class="fc">&nbsp;            delegate.failed(cause);</b>
    +<b class="fc">&nbsp;            meter(cause).mark();</b>
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Timer timer(HttpRequest request) {
    +<b class="fc">&nbsp;            return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        private Meter meter(Exception e) {
    +<b class="fc">&nbsp;            return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-5.html
    new file mode 100644
    index 0000000000..b5d9eac097
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-5.html
    @@ -0,0 +1,147 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpAsyncClients</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpAsyncClients (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpAsyncClients</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    40%
    +  </span>
    +  <span class="absValue">
    +    (2/5)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    57.1%
    +  </span>
    +  <span class="absValue">
    +    (4/7)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.hc.client5.http.impl.ChainElement;
    +&nbsp;import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
    +&nbsp;import org.apache.hc.client5.http.impl.async.HttpAsyncClientBuilder;
    +&nbsp;import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
    +&nbsp;
    +&nbsp;public class InstrumentedHttpAsyncClients {
    +&nbsp;    private InstrumentedHttpAsyncClients() {
    +&nbsp;        super();
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry,
    +&nbsp;                                                         HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
    +&nbsp;                                                HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        return custom(metricRegistry, metricNameStrategy, InstrumentedAsyncClientConnectionManager.builder(metricRegistry).build());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
    +&nbsp;                                                HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                                AsyncClientConnectionManager clientConnectionManager) {
    +<b class="fc">&nbsp;        return HttpAsyncClientBuilder.create()</b>
    +<b class="fc">&nbsp;                .setConnectionManager(clientConnectionManager)</b>
    +<b class="fc">&nbsp;                .addExecInterceptorBefore(ChainElement.CONNECT.name(), &quot;dropwizard-metrics&quot;,</b>
    +&nbsp;                        new InstrumentedAsyncExecChainHandler(metricRegistry, metricNameStrategy));
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-6.html
    new file mode 100644
    index 0000000000..11ea0d635f
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-6.html
    @@ -0,0 +1,308 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpClientConnectionManager</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpClientConnectionManager</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (10/10)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (23/23)
    +  </span>
    +</td>
    +</tr>
    +  <tr>
    +    <td class="name">InstrumentedHttpClientConnectionManager$Builder</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    33.3%
    +  </span>
    +  <span class="absValue">
    +    (4/12)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    38.5%
    +  </span>
    +  <span class="absValue">
    +    (10/26)
    +  </span>
    +</td>
    +  </tr>
    +<tr>
    +  <td class="name"><strong>Total</strong></td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    63.6%
    +  </span>
    +  <span class="absValue">
    +    (14/22)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    67.3%
    +  </span>
    +  <span class="absValue">
    +    (33/49)
    +  </span>
    +</td>
    +</tr>
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.hc.client5.http.DnsResolver;
    +&nbsp;import org.apache.hc.client5.http.SchemePortResolver;
    +&nbsp;import org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator;
    +&nbsp;import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
    +&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionManager;
    +&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionOperator;
    +&nbsp;import org.apache.hc.client5.http.io.ManagedHttpClientConnection;
    +&nbsp;import org.apache.hc.client5.http.socket.ConnectionSocketFactory;
    +&nbsp;import org.apache.hc.client5.http.socket.PlainConnectionSocketFactory;
    +&nbsp;import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
    +&nbsp;import org.apache.hc.core5.http.URIScheme;
    +&nbsp;import org.apache.hc.core5.http.config.Registry;
    +&nbsp;import org.apache.hc.core5.http.config.RegistryBuilder;
    +&nbsp;import org.apache.hc.core5.http.io.HttpConnectionFactory;
    +&nbsp;import org.apache.hc.core5.io.CloseMode;
    +&nbsp;import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
    +&nbsp;import org.apache.hc.core5.pool.PoolReusePolicy;
    +&nbsp;import org.apache.hc.core5.util.TimeValue;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    +&nbsp;import static java.util.Objects.requireNonNull;
    +&nbsp;
    +&nbsp;/**
    +&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    +&nbsp; */
    +&nbsp;public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
    +<b class="fc">&nbsp;    private static final String METRICS_PREFIX = HttpClientConnectionManager.class.getName();</b>
    +&nbsp;
    +&nbsp;    protected static Registry&lt;ConnectionSocketFactory&gt; getDefaultRegistry() {
    +<b class="fc">&nbsp;        return RegistryBuilder.&lt;ConnectionSocketFactory&gt;create()</b>
    +<b class="fc">&nbsp;                .register(URIScheme.HTTP.id, PlainConnectionSocketFactory.getSocketFactory())</b>
    +<b class="fc">&nbsp;                .register(URIScheme.HTTPS.id, SSLConnectionSocketFactory.getSocketFactory())</b>
    +<b class="fc">&nbsp;                .build();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private final MetricRegistry metricsRegistry;
    +&nbsp;    private final String name;
    +&nbsp;
    +&nbsp;    InstrumentedHttpClientConnectionManager(final MetricRegistry metricRegistry,
    +&nbsp;                                            final String name,
    +&nbsp;                                            final HttpClientConnectionOperator httpClientConnectionOperator,
    +&nbsp;                                            final PoolConcurrencyPolicy poolConcurrencyPolicy,
    +&nbsp;                                            final PoolReusePolicy poolReusePolicy,
    +&nbsp;                                            final TimeValue timeToLive,
    +&nbsp;                                            final HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory) {
    +&nbsp;
    +<b class="fc">&nbsp;        super(httpClientConnectionOperator, poolConcurrencyPolicy, poolReusePolicy, timeToLive, connFactory);</b>
    +<b class="fc">&nbsp;        this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +&nbsp;
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;available-connections&quot;),</b>
    +&nbsp;                () -&gt; {
    +<b class="fc">&nbsp;                    return getTotalStats().getAvailable();</b>
    +&nbsp;                });
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;leased-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;max-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax()</b>
    +&nbsp;        );
    +&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    +<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;pending-connections&quot;),</b>
    +<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void close() {
    +<b class="fc">&nbsp;        close(CloseMode.GRACEFUL);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public void close(CloseMode closeMode) {
    +<b class="fc">&nbsp;        super.close(closeMode);</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;available-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;leased-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;max-connections&quot;));</b>
    +<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;pending-connections&quot;));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    +<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static class Builder {
    +&nbsp;        private MetricRegistry metricsRegistry;
    +&nbsp;        private String name;
    +&nbsp;        private HttpClientConnectionOperator httpClientConnectionOperator;
    +<b class="fc">&nbsp;        private Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry = getDefaultRegistry();</b>
    +&nbsp;        private SchemePortResolver schemePortResolver;
    +&nbsp;        private DnsResolver dnsResolver;
    +&nbsp;        private PoolConcurrencyPolicy poolConcurrencyPolicy;
    +&nbsp;        private PoolReusePolicy poolReusePolicy;
    +<b class="fc">&nbsp;        private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;</b>
    +&nbsp;        private HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory;
    +&nbsp;
    +<b class="fc">&nbsp;        Builder() {</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder metricsRegistry(MetricRegistry metricRegistry) {
    +<b class="fc">&nbsp;            this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder name(final String name) {
    +<b class="fc">&nbsp;            this.name = name;</b>
    +<b class="fc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder socketFactoryRegistry(Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    +<b class="nc">&nbsp;            this.socketFactoryRegistry = requireNonNull(socketFactoryRegistry, &quot;socketFactoryRegistry&quot;);</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder connFactory(HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory) {
    +<b class="nc">&nbsp;            this.connFactory = connFactory;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    +<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    +<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder timeToLive(TimeValue timeToLive) {
    +<b class="nc">&nbsp;            this.timeToLive = timeToLive;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
    +<b class="nc">&nbsp;            this.httpClientConnectionOperator = httpClientConnectionOperator;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
    +<b class="nc">&nbsp;            this.poolConcurrencyPolicy = poolConcurrencyPolicy;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
    +<b class="nc">&nbsp;            this.poolReusePolicy = poolReusePolicy;</b>
    +<b class="nc">&nbsp;            return this;</b>
    +&nbsp;        }
    +&nbsp;
    +&nbsp;        public InstrumentedHttpClientConnectionManager build() {
    +<b class="fc">&nbsp;            if (httpClientConnectionOperator == null) {</b>
    +<b class="fc">&nbsp;                httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(</b>
    +&nbsp;                        socketFactoryRegistry,
    +&nbsp;                        schemePortResolver,
    +&nbsp;                        dnsResolver);
    +&nbsp;            }
    +&nbsp;
    +<b class="fc">&nbsp;            return new InstrumentedHttpClientConnectionManager(</b>
    +&nbsp;                    metricsRegistry,
    +&nbsp;                    name,
    +&nbsp;                    httpClientConnectionOperator,
    +&nbsp;                    poolConcurrencyPolicy,
    +&nbsp;                    poolReusePolicy,
    +&nbsp;                    timeToLive,
    +&nbsp;                    connFactory);
    +&nbsp;        }
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-7.html
    new file mode 100644
    index 0000000000..085699256a
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-7.html
    @@ -0,0 +1,138 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpClients</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpClients</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    25%
    +  </span>
    +  <span class="absValue">
    +    (1/4)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    50%
    +  </span>
    +  <span class="absValue">
    +    (3/6)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
    +&nbsp;import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
    +&nbsp;
    +&nbsp;import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
    +&nbsp;
    +&nbsp;public class InstrumentedHttpClients {
    +&nbsp;    private InstrumentedHttpClients() {
    +&nbsp;        super();
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
    +&nbsp;                                                    HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
    +<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        return HttpClientBuilder.create()</b>
    +<b class="fc">&nbsp;                .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))</b>
    +<b class="fc">&nbsp;                .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-8.html
    new file mode 100644
    index 0000000000..e0453d2bdf
    --- /dev/null
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-8.html
    @@ -0,0 +1,182 @@
    +
    +
    +
    +<!DOCTYPE html>
    +<html id="htmlId">
    +<head>
    +  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    +  <title>Coverage Report > InstrumentedHttpRequestExecutor</title>
    +  <style type="text/css">
    +    @import "../../css/coverage.css";
    +    @import "../../css/idea.min.css";
    +  </style>
    +  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    +  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    +</head>
    +
    +<body>
    +<div class="content">
    +<div class="breadCrumbs">
    +Current scope:     <a href="../../index.html">all classes</a>
    +    <span class="separator">|</span>
    +    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    +</div>
    +
    +<h1>Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient5)</h1>
    +
    +<table class="coverageStats">
    +<tr>
    +  <th class="name">Class</th>
    +<th class="coverageStat 
    +">
    +  Class, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Method, %
    +</th>
    +<th class="coverageStat 
    +">
    +  Line, %
    +</th>
    +</tr>
    +<tr>
    +  <td class="name">InstrumentedHttpRequestExecutor</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (1/1)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (7/7)
    +  </span>
    +</td>
    +<td class="coverageStat">
    +  <span class="percent">
    +    100%
    +  </span>
    +  <span class="absValue">
    +    (16/16)
    +  </span>
    +</td>
    +</tr>
    +
    +</table>
    +
    +<br/>
    +<br/>
    +
    +
    +<pre>
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.Meter;
    +&nbsp;import com.codahale.metrics.MetricRegistry;
    +&nbsp;import com.codahale.metrics.Timer;
    +&nbsp;import org.apache.hc.core5.http.ClassicHttpRequest;
    +&nbsp;import org.apache.hc.core5.http.ClassicHttpResponse;
    +&nbsp;import org.apache.hc.core5.http.ConnectionReuseStrategy;
    +&nbsp;import org.apache.hc.core5.http.HttpException;
    +&nbsp;import org.apache.hc.core5.http.HttpRequest;
    +&nbsp;import org.apache.hc.core5.http.impl.Http1StreamListener;
    +&nbsp;import org.apache.hc.core5.http.impl.io.HttpRequestExecutor;
    +&nbsp;import org.apache.hc.core5.http.io.HttpClientConnection;
    +&nbsp;import org.apache.hc.core5.http.io.HttpResponseInformationCallback;
    +&nbsp;import org.apache.hc.core5.http.protocol.HttpContext;
    +&nbsp;import org.apache.hc.core5.util.Timeout;
    +&nbsp;
    +&nbsp;import java.io.IOException;
    +&nbsp;
    +&nbsp;public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
    +&nbsp;    private final MetricRegistry registry;
    +&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    +&nbsp;    private final String name;
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    +<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                           String name) {
    +<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                           String name,
    +&nbsp;                                           Timeout waitForContinue) {
    +<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, waitForContinue, null, null);</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    +&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    +&nbsp;                                           String name,
    +&nbsp;                                           Timeout waitForContinue,
    +&nbsp;                                           ConnectionReuseStrategy connReuseStrategy,
    +&nbsp;                                           Http1StreamListener streamListener) {
    +<b class="fc">&nbsp;        super(waitForContinue, connReuseStrategy, streamListener);</b>
    +<b class="fc">&nbsp;        this.registry = registry;</b>
    +<b class="fc">&nbsp;        this.name = name;</b>
    +<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    /**
    +&nbsp;     * {@inheritDoc}
    +&nbsp;     */
    +&nbsp;    @Override
    +&nbsp;    public ClassicHttpResponse execute(ClassicHttpRequest request, HttpClientConnection conn, HttpResponseInformationCallback informationCallback, HttpContext context) throws IOException, HttpException {
    +<b class="fc">&nbsp;        final Timer.Context timerContext = timer(request).time();</b>
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return super.execute(request, conn, informationCallback, context);</b>
    +<b class="fc">&nbsp;        } catch (HttpException | IOException e) {</b>
    +<b class="fc">&nbsp;            meter(e).mark();</b>
    +<b class="fc">&nbsp;            throw e;</b>
    +&nbsp;        } finally {
    +<b class="fc">&nbsp;            timerContext.stop();</b>
    +<b class="fc">&nbsp;        }</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Timer timer(HttpRequest request) {
    +<b class="fc">&nbsp;        return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    +&nbsp;    }
    +&nbsp;
    +&nbsp;    private Meter meter(Exception e) {
    +<b class="fc">&nbsp;        return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    +&nbsp;    }
    +&nbsp;}
    +</code>
    +</pre>
    +</div>
    +
    +<script type="text/javascript">
    +(function() {
    +    var msie = false, msie9 = false;
    +    /*@cc_on
    +      msie = true;
    +      @if (@_jscript_version >= 9)
    +        msie9 = true;
    +      @end
    +    @*/
    +
    +    if (!msie || msie && msie9) {
    +      hljs.highlightAll()
    +      hljs.initLineNumbersOnLoad();
    +    }
    +})();
    +</script>
    +
    +<div class="footer">
    +    
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
    +</div>
    +</body>
    +</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index.html
    index 3ba1d3b948..502aef0e43 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    +com.codahale.metrics.jcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    +    <td class="name">com.codahale.metrics.jcache</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -49,18 +49,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +99,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK.html
    index 881cc74a62..1a5b8fb2cb 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    +com.codahale.metrics.jcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    +    <td class="name">com.codahale.metrics.jcache</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -49,18 +49,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +99,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
    index 867a8a697e..de56adf64e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    +com.codahale.metrics.jcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    +    <td class="name">com.codahale.metrics.jcache</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -49,18 +49,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +99,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS.html
    index e8ca235852..025ae5d6ce 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    +com.codahale.metrics.jcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    +    <td class="name">com.codahale.metrics.jcache</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -49,18 +49,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +99,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
    index 40ab3cc985..0526c5ff1b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    +com.codahale.metrics.jcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    +    <td class="name">com.codahale.metrics.jcache</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -49,18 +49,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +99,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE.html
    index 046fcd177a..938ca40cc8 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    +com.codahale.metrics.jcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    +    <td class="name">com.codahale.metrics.jcache</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -49,18 +49,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +99,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
    index 8ba6000d21..3b9b9f6f7b 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    +com.codahale.metrics.jcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    +    <td class="name">com.codahale.metrics.jcache</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -49,18 +49,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +99,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD.html
    index 698a1485c0..246cfbb791 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    +com.codahale.metrics.jcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    +    <td class="name">com.codahale.metrics.jcache</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -49,18 +49,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +99,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
    index 16b4a44ec6..d765b05a14 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    +com.codahale.metrics.jcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    +    <td class="name">com.codahale.metrics.jcache</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -49,18 +49,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +99,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
    index fff40e6c82..9ec4167901 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
    @@ -3,7 +3,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    +  <title>Coverage Report > com.codahale.metrics.jcache</title>
       <style type="text/css">
         @import "../css/coverage.css";
         @import "../css/idea.min.css";
    @@ -18,9 +18,9 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
         <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    +com.codahale.metrics.jcache</div>
     
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    +<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
     <table class="coverageStats">
       <tr>
         <th class="name">Package</th>
    @@ -38,7 +38,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
       </tr>
       <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    +    <td class="name">com.codahale.metrics.jcache</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -49,18 +49,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -88,7 +88,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </th>
     </tr>
       <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    +    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -99,18 +99,18 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
       </tr>
    @@ -137,7 +137,7 @@ <h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/sources/source-1.html
    index e73fc36601..fee9e2232e 100644
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/sources/source-1.html
    +++ b/metrics-complete-branch-report-Final-htmlReport/ns-f/sources/source-1.html
    @@ -5,7 +5,7 @@
     <html id="htmlId">
     <head>
       <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedTimingCollector</title>
    +  <title>Coverage Report > JCacheGaugeSet</title>
       <style type="text/css">
         @import "../../css/coverage.css";
         @import "../../css/idea.min.css";
    @@ -19,10 +19,10 @@
     <div class="breadCrumbs">
     Current scope:     <a href="../../index.html">all classes</a>
         <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi</a>
    +    <a href="../index.html">com.codahale.metrics.jcache</a>
     </div>
     
    -<h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi)</h1>
    +<h1>Coverage Summary for Class: JCacheGaugeSet (com.codahale.metrics.jcache)</h1>
     
     <table class="coverageStats">
     <tr>
    @@ -41,7 +41,7 @@ <h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metric
     </th>
     </tr>
     <tr>
    -  <td class="name">InstrumentedTimingCollector</td>
    +  <td class="name">JCacheGaugeSet</td>
     <td class="coverageStat">
       <span class="percent">
         100%
    @@ -52,18 +52,18 @@ <h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metric
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    75%
    +    100%
       </span>
       <span class="absValue">
    -    (3/4)
    +    (6/6)
       </span>
     </td>
     <td class="coverageStat">
       <span class="percent">
    -    85.7%
    +    88.5%
       </span>
       <span class="absValue">
    -    (6/7)
    +    (23/26)
       </span>
     </td>
     </tr>
    @@ -75,44 +75,90 @@ <h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metric
     
     
     <pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi;
    +<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jcache;
    +&nbsp;
    +&nbsp;import org.slf4j.Logger;
    +&nbsp;import org.slf4j.LoggerFactory;
    +&nbsp;
    +&nbsp;import com.codahale.metrics.jvm.JmxAttributeGauge;
    +&nbsp;import com.codahale.metrics.Metric;
    +&nbsp;import com.codahale.metrics.MetricSet;
    +&nbsp;
    +&nbsp;import java.lang.management.ManagementFactory;
    +&nbsp;import java.lang.reflect.Method;
    +&nbsp;import java.util.ArrayList;
    +&nbsp;import java.util.Collections;
    +&nbsp;import java.util.HashMap;
    +&nbsp;import java.util.List;
    +&nbsp;import java.util.Locale;
    +&nbsp;import java.util.Map;
    +&nbsp;import java.util.Set;
     &nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.jdbi.strategies.SmartNameStrategy;
    -&nbsp;import com.codahale.metrics.jdbi.strategies.StatementNameStrategy;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;import org.skife.jdbi.v2.TimingCollector;
    +&nbsp;import javax.cache.management.CacheStatisticsMXBean;
    +&nbsp;import javax.management.MalformedObjectNameException;
    +&nbsp;import javax.management.ObjectInstance;
    +&nbsp;import javax.management.ObjectName;
     &nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    +&nbsp;import static com.codahale.metrics.MetricRegistry.name;
     &nbsp;
     &nbsp;/**
    -&nbsp; * A {@link TimingCollector} implementation for JDBI which uses the SQL objects&#39; class names and
    -&nbsp; * method names for millisecond-precision timers.
    +&nbsp; * Gauge set retrieving JCache JMX attributes
    +&nbsp; *
    +&nbsp; * @author &lt;a href=&quot;mailto:henri.tremblay@softwareag.com&quot;&gt;Henri Tremblay&lt;/a&gt;
    +&nbsp; * @author &lt;a href=&quot;mailto:anthony.dahanne@softwareag.com&quot;&gt;Anthony Dahanne&lt;/a&gt;
     &nbsp; */
    -&nbsp;public class InstrumentedTimingCollector implements TimingCollector {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final StatementNameStrategy statementNameStrategy;
    +<b class="fc">&nbsp;public class JCacheGaugeSet implements MetricSet {</b>
    +&nbsp;
    +&nbsp;    private static final String M_BEAN_COORDINATES = &quot;javax.cache:type=CacheStatistics,CacheManager=*,Cache=*&quot;;
    +&nbsp;
    +<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JCacheGaugeSet.class);</b>
    +&nbsp;
    +&nbsp;    @Override
    +&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    +<b class="fc">&nbsp;        Set&lt;ObjectInstance&gt; cacheBeans = getCacheBeans();</b>
    +<b class="fc">&nbsp;        List&lt;String&gt; availableStatsNames = retrieveStatsNames();</b>
    +&nbsp;
    +<b class="fc">&nbsp;        Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;(cacheBeans.size() * availableStatsNames.size());</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (ObjectInstance cacheBean : cacheBeans) {</b>
    +<b class="fc">&nbsp;            ObjectName objectName = cacheBean.getObjectName();</b>
    +<b class="fc">&nbsp;            String cacheName = objectName.getKeyProperty(&quot;Cache&quot;);</b>
    +&nbsp;
    +<b class="fc">&nbsp;            for (String statsName : availableStatsNames) {</b>
    +<b class="fc">&nbsp;                JmxAttributeGauge jmxAttributeGauge = new JmxAttributeGauge(objectName, statsName);</b>
    +<b class="fc">&nbsp;                gauges.put(name(cacheName, toSpinalCase(statsName)), jmxAttributeGauge);</b>
    +<b class="fc">&nbsp;            }</b>
    +<b class="fc">&nbsp;        }</b>
     &nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    +<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry,
    -<b class="fc">&nbsp;                                       StatementNameStrategy statementNameStrategy) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    +&nbsp;    private Set&lt;ObjectInstance&gt; getCacheBeans() {
    +&nbsp;        try {
    +<b class="fc">&nbsp;            return ManagementFactory.getPlatformMBeanServer().queryMBeans(ObjectName.getInstance(M_BEAN_COORDINATES), null);</b>
    +<b class="nc">&nbsp;        } catch (MalformedObjectNameException e) {</b>
    +<b class="nc">&nbsp;            LOGGER.error(&quot;Unable to retrieve {}. Are JCache statistics enabled?&quot;, M_BEAN_COORDINATES);</b>
    +<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    +&nbsp;        }
     &nbsp;    }
     &nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void collect(long elapsedTime, StatementContext ctx) {
    -<b class="fc">&nbsp;        final Timer timer = getTimer(ctx);</b>
    -<b class="fc">&nbsp;        timer.update(elapsedTime, TimeUnit.NANOSECONDS);</b>
    +&nbsp;    private List&lt;String&gt; retrieveStatsNames() {
    +<b class="fc">&nbsp;        Method[] methods = CacheStatisticsMXBean.class.getDeclaredMethods();</b>
    +<b class="fc">&nbsp;        List&lt;String&gt; availableStatsNames = new ArrayList&lt;&gt;(methods.length);</b>
    +&nbsp;
    +<b class="fc">&nbsp;        for (Method method : methods) {</b>
    +<b class="fc">&nbsp;            String methodName = method.getName();</b>
    +<b class="fc">&nbsp;            if (methodName.startsWith(&quot;get&quot;)) {</b>
    +<b class="fc">&nbsp;                availableStatsNames.add(methodName.substring(3));</b>
    +&nbsp;            }
    +&nbsp;        }
    +<b class="fc">&nbsp;        return availableStatsNames;</b>
     &nbsp;    }
     &nbsp;
    -&nbsp;    private Timer getTimer(StatementContext ctx) {
    -<b class="fc">&nbsp;        return registry.timer(statementNameStrategy.getStatementName(ctx));</b>
    +&nbsp;    private static String toSpinalCase(String camelCase) {
    +<b class="fc">&nbsp;        return camelCase.replaceAll(&quot;(.)(\\p{Upper})&quot;, &quot;$1-$2&quot;).toLowerCase(Locale.US);</b>
     &nbsp;    }
    +&nbsp;
     &nbsp;}
     </code>
     </pre>
    @@ -137,7 +183,7 @@ <h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metric
     
     <div class="footer">
         
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    +    <div style="float:right;">generated on 2024-03-01 18:41</div>
     </div>
     </body>
     </html>
    
    From 69f972f85cdb89c82e7775ff0fae75b46c0f6e90 Mon Sep 17 00:00:00 2001
    From: Ovaiz Ali <ov778752@dal.ca>
    Date: Fri, 1 Mar 2024 23:42:26 -0400
    Subject: [PATCH 5/6] Add Report
    
    ---
     CSCI5308_W24_A1_B00980674.pdf | Bin 0 -> 2204241 bytes
     1 file changed, 0 insertions(+), 0 deletions(-)
     create mode 100644 CSCI5308_W24_A1_B00980674.pdf
    
    diff --git a/CSCI5308_W24_A1_B00980674.pdf b/CSCI5308_W24_A1_B00980674.pdf
    new file mode 100644
    index 0000000000000000000000000000000000000000..1c65990071f9e3e57c206a4ca7696a7bf15fb3f2
    GIT binary patch
    literal 2204241
    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%0Dw;THe?sQ3XHlw2oGVK0n^2AttXk0P6M
    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%0AyJz=
    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%0AUe#6|37sipEr(QO
    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%0D;t8uvx8+7!D
    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%0A9`bg^=<{pIO%F+g~@0xAD!VKJT)yzxx1RnGO=@0
    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
    
    literal 0
    HcmV?d00001
    
    
    From d3d58aec48d4054d3aeff2e73db3eebc51b852ff Mon Sep 17 00:00:00 2001
    From: Ovaiz Ali <ov778752@dal.ca>
    Date: Wed, 20 Mar 2024 21:34:05 -0300
    Subject: [PATCH 6/6] Removed HTML Test Reports
    
    ---
     CSCI5308_W24_A1_B00980674.pdf                 |  Bin 2204241 -> 0 bytes
     .../css/coverage.css                          |  154 --
     .../css/idea.min.css                          |  118 --
     .../img/arrowDown.gif                         |  Bin 89 -> 0 bytes
     .../img/arrowUp.gif                           |  Bin 91 -> 0 bytes
     .../index.html                                | 1349 ---------------
     .../index_SORT_BY_BLOCK.html                  | 1349 ---------------
     .../index_SORT_BY_BLOCK_DESC.html             | 1349 ---------------
     .../index_SORT_BY_CLASS.html                  | 1349 ---------------
     .../index_SORT_BY_CLASS_DESC.html             | 1349 ---------------
     .../index_SORT_BY_LINE.html                   | 1349 ---------------
     .../index_SORT_BY_LINE_DESC.html              | 1349 ---------------
     .../index_SORT_BY_METHOD.html                 | 1349 ---------------
     .../index_SORT_BY_METHOD_DESC.html            | 1349 ---------------
     .../index_SORT_BY_NAME_DESC.html              | 1349 ---------------
     .../js/highlight.min.js                       | 1388 ---------------
     .../js/highlightjs-line-numbers.min.js        |   24 -
     .../ns-1/index.html                           | 1287 --------------
     .../ns-1/index_SORT_BY_BLOCK.html             | 1287 --------------
     .../ns-1/index_SORT_BY_BLOCK_DESC.html        | 1287 --------------
     .../ns-1/index_SORT_BY_CLASS.html             | 1287 --------------
     .../ns-1/index_SORT_BY_CLASS_DESC.html        | 1287 --------------
     .../ns-1/index_SORT_BY_LINE.html              | 1287 --------------
     .../ns-1/index_SORT_BY_LINE_DESC.html         | 1287 --------------
     .../ns-1/index_SORT_BY_METHOD.html            | 1287 --------------
     .../ns-1/index_SORT_BY_METHOD_DESC.html       | 1287 --------------
     .../ns-1/index_SORT_BY_NAME_DESC.html         | 1287 --------------
     .../ns-1/sources/source-1.html                |  178 --
     .../ns-1/sources/source-10.html               |  203 ---
     .../ns-1/sources/source-11.html               |  441 -----
     .../ns-1/sources/source-12.html               |  222 ---
     .../ns-1/sources/source-13.html               |  137 --
     .../ns-1/sources/source-14.html               |  136 --
     .../ns-1/sources/source-15.html               | 1046 ------------
     .../ns-1/sources/source-16.html               |  275 ---
     .../ns-1/sources/source-17.html               | 1097 ------------
     .../ns-1/sources/source-18.html               |  196 ---
     .../ns-1/sources/source-19.html               |  467 -----
     .../ns-1/sources/source-1a.html               |  211 ---
     .../ns-1/sources/source-1b.html               |  782 ---------
     .../ns-1/sources/source-1c.html               |  205 ---
     .../ns-1/sources/source-1d.html               |  217 ---
     .../ns-1/sources/source-1e.html               |  161 --
     .../ns-1/sources/source-1f.html               |  149 --
     .../ns-1/sources/source-2.html                |  333 ----
     .../ns-1/sources/source-20.html               |  301 ----
     .../ns-1/sources/source-21.html               |  199 ---
     .../ns-1/sources/source-22.html               |  147 --
     .../ns-1/sources/source-23.html               |  277 ---
     .../ns-1/sources/source-24.html               |  353 ----
     .../ns-1/sources/source-25.html               |  174 --
     .../ns-1/sources/source-26.html               |  281 ---
     .../ns-1/sources/source-27.html               |  345 ----
     .../ns-1/sources/source-28.html               |   78 -
     .../ns-1/sources/source-29.html               |   82 -
     .../ns-1/sources/source-2a.html               |   85 -
     .../ns-1/sources/source-2b.html               |   81 -
     .../ns-1/sources/source-2c.html               |   89 -
     .../ns-1/sources/source-2d.html               |  103 --
     .../ns-1/sources/source-2e.html               |  116 --
     .../ns-1/sources/source-2f.html               |   81 -
     .../ns-1/sources/source-3.html                |  231 ---
     .../ns-1/sources/source-30.html               |  104 --
     .../ns-1/sources/source-31.html               |  116 --
     .../ns-1/sources/source-32.html               |   85 -
     .../ns-1/sources/source-4.html                |  490 ------
     .../ns-1/sources/source-5.html                |  160 --
     .../ns-1/sources/source-6.html                |  477 ------
     .../ns-1/sources/source-7.html                |  147 --
     .../ns-1/sources/source-8.html                |  137 --
     .../ns-1/sources/source-9.html                |  224 ---
     .../ns-1/sources/source-a.html                |  193 ---
     .../ns-1/sources/source-b.html                |  323 ----
     .../ns-1/sources/source-c.html                |  125 --
     .../ns-1/sources/source-d.html                |  162 --
     .../ns-1/sources/source-e.html                |  390 -----
     .../ns-1/sources/source-f.html                |  465 -----
     .../ns-10/index.html                          |  143 --
     .../ns-10/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-10/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-10/index_SORT_BY_CLASS.html            |  143 --
     .../ns-10/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-10/index_SORT_BY_LINE.html             |  143 --
     .../ns-10/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-10/index_SORT_BY_METHOD.html           |  143 --
     .../ns-10/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-10/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-10/sources/source-1.html               |  143 --
     .../ns-11/index.html                          |  305 ----
     .../ns-11/index_SORT_BY_BLOCK.html            |  305 ----
     .../ns-11/index_SORT_BY_BLOCK_DESC.html       |  305 ----
     .../ns-11/index_SORT_BY_CLASS.html            |  305 ----
     .../ns-11/index_SORT_BY_CLASS_DESC.html       |  305 ----
     .../ns-11/index_SORT_BY_LINE.html             |  305 ----
     .../ns-11/index_SORT_BY_LINE_DESC.html        |  305 ----
     .../ns-11/index_SORT_BY_METHOD.html           |  305 ----
     .../ns-11/index_SORT_BY_METHOD_DESC.html      |  305 ----
     .../ns-11/index_SORT_BY_NAME_DESC.html        |  305 ----
     .../ns-11/sources/source-1.html               |  112 --
     .../ns-11/sources/source-2.html               |  119 --
     .../ns-11/sources/source-3.html               |  135 --
     .../ns-11/sources/source-4.html               |  116 --
     .../ns-11/sources/source-5.html               |  422 -----
     .../ns-11/sources/source-6.html               |  239 ---
     .../ns-11/sources/source-7.html               |  124 --
     .../ns-11/sources/source-8.html               |   78 -
     .../ns-12/index.html                          |  170 --
     .../ns-12/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-12/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-12/index_SORT_BY_CLASS.html            |  170 --
     .../ns-12/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-12/index_SORT_BY_LINE.html             |  170 --
     .../ns-12/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-12/index_SORT_BY_METHOD.html           |  170 --
     .../ns-12/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-12/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-12/sources/source-1.html               |  152 --
     .../ns-12/sources/source-2.html               |  145 --
     .../ns-13/index.html                          |  278 ---
     .../ns-13/index_SORT_BY_BLOCK.html            |  278 ---
     .../ns-13/index_SORT_BY_BLOCK_DESC.html       |  278 ---
     .../ns-13/index_SORT_BY_CLASS.html            |  278 ---
     .../ns-13/index_SORT_BY_CLASS_DESC.html       |  278 ---
     .../ns-13/index_SORT_BY_LINE.html             |  278 ---
     .../ns-13/index_SORT_BY_LINE_DESC.html        |  278 ---
     .../ns-13/index_SORT_BY_METHOD.html           |  278 ---
     .../ns-13/index_SORT_BY_METHOD_DESC.html      |  278 ---
     .../ns-13/index_SORT_BY_NAME_DESC.html        |  278 ---
     .../ns-13/sources/source-1.html               |  116 --
     .../ns-13/sources/source-2.html               |  246 ---
     .../ns-13/sources/source-3.html               |  136 --
     .../ns-13/sources/source-4.html               |  116 --
     .../ns-13/sources/source-5.html               |  117 --
     .../ns-13/sources/source-6.html               |  151 --
     .../ns-13/sources/source-7.html               |   89 -
     .../ns-14/index.html                          |  170 --
     .../ns-14/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-14/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-14/index_SORT_BY_CLASS.html            |  170 --
     .../ns-14/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-14/index_SORT_BY_LINE.html             |  170 --
     .../ns-14/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-14/index_SORT_BY_METHOD.html           |  170 --
     .../ns-14/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-14/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-14/sources/source-1.html               |  831 ---------
     .../ns-14/sources/source-2.html               |  201 ---
     .../ns-15/index.html                          |  170 --
     .../ns-15/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-15/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-15/index_SORT_BY_CLASS.html            |  170 --
     .../ns-15/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-15/index_SORT_BY_LINE.html             |  170 --
     .../ns-15/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-15/index_SORT_BY_METHOD.html           |  170 --
     .../ns-15/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-15/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-15/sources/source-1.html               |  832 ---------
     .../ns-15/sources/source-2.html               |  201 ---
     .../ns-16/index.html                          |  251 ---
     .../ns-16/index_SORT_BY_BLOCK.html            |  251 ---
     .../ns-16/index_SORT_BY_BLOCK_DESC.html       |  251 ---
     .../ns-16/index_SORT_BY_CLASS.html            |  251 ---
     .../ns-16/index_SORT_BY_CLASS_DESC.html       |  251 ---
     .../ns-16/index_SORT_BY_LINE.html             |  251 ---
     .../ns-16/index_SORT_BY_LINE_DESC.html        |  251 ---
     .../ns-16/index_SORT_BY_METHOD.html           |  251 ---
     .../ns-16/index_SORT_BY_METHOD_DESC.html      |  251 ---
     .../ns-16/index_SORT_BY_NAME_DESC.html        |  251 ---
     .../ns-16/sources/source-1.html               |  193 ---
     .../ns-16/sources/source-2.html               |  754 --------
     .../ns-16/sources/source-3.html               |  708 --------
     .../ns-16/sources/source-4.html               |  286 ----
     .../ns-17/index.html                          |  170 --
     .../ns-17/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-17/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-17/index_SORT_BY_CLASS.html            |  170 --
     .../ns-17/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-17/index_SORT_BY_LINE.html             |  170 --
     .../ns-17/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-17/index_SORT_BY_METHOD.html           |  170 --
     .../ns-17/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-17/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-17/sources/source-1.html               |  173 --
     .../ns-17/sources/source-2.html               | 1061 ------------
     .../ns-17/sources/source-3.html               |   85 -
     .../ns-18/index.html                          |  170 --
     .../ns-18/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-18/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-18/index_SORT_BY_CLASS.html            |  170 --
     .../ns-18/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-18/index_SORT_BY_LINE.html             |  170 --
     .../ns-18/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-18/index_SORT_BY_METHOD.html           |  170 --
     .../ns-18/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-18/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-18/sources/source-1.html               |  217 ---
     .../ns-18/sources/source-2.html               |  489 ------
     .../ns-19/index.html                          |  440 -----
     .../ns-19/index_SORT_BY_BLOCK.html            |  440 -----
     .../ns-19/index_SORT_BY_BLOCK_DESC.html       |  440 -----
     .../ns-19/index_SORT_BY_CLASS.html            |  440 -----
     .../ns-19/index_SORT_BY_CLASS_DESC.html       |  440 -----
     .../ns-19/index_SORT_BY_LINE.html             |  440 -----
     .../ns-19/index_SORT_BY_LINE_DESC.html        |  440 -----
     .../ns-19/index_SORT_BY_METHOD.html           |  440 -----
     .../ns-19/index_SORT_BY_METHOD_DESC.html      |  440 -----
     .../ns-19/index_SORT_BY_NAME_DESC.html        |  440 -----
     .../ns-19/sources/source-1.html               |  156 --
     .../ns-19/sources/source-2.html               |  184 --
     .../ns-19/sources/source-3.html               |  139 --
     .../ns-19/sources/source-4.html               |  123 --
     .../ns-19/sources/source-5.html               |  154 --
     .../ns-19/sources/source-6.html               |  157 --
     .../ns-19/sources/source-7.html               |  165 --
     .../ns-19/sources/source-8.html               |  155 --
     .../ns-19/sources/source-9.html               |  274 ---
     .../ns-19/sources/source-a.html               |  169 --
     .../ns-19/sources/source-b.html               |  217 ---
     .../ns-19/sources/source-c.html               |  185 --
     .../ns-1a/index.html                          |  143 --
     .../ns-1a/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-1a/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-1a/index_SORT_BY_CLASS.html            |  143 --
     .../ns-1a/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-1a/index_SORT_BY_LINE.html             |  143 --
     .../ns-1a/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-1a/index_SORT_BY_METHOD.html           |  143 --
     .../ns-1a/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-1a/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-1a/sources/source-1.html               |  268 ---
     .../ns-1b/index.html                          |  143 --
     .../ns-1b/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-1b/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-1b/index_SORT_BY_CLASS.html            |  143 --
     .../ns-1b/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-1b/index_SORT_BY_LINE.html             |  143 --
     .../ns-1b/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-1b/index_SORT_BY_METHOD.html           |  143 --
     .../ns-1b/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-1b/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-1b/sources/source-1.html               |  195 ---
     .../ns-1c/index.html                          |  223 ---
     .../ns-1c/index_SORT_BY_BLOCK.html            |  223 ---
     .../ns-1c/index_SORT_BY_BLOCK_DESC.html       |  223 ---
     .../ns-1c/index_SORT_BY_CLASS.html            |  223 ---
     .../ns-1c/index_SORT_BY_CLASS_DESC.html       |  223 ---
     .../ns-1c/index_SORT_BY_LINE.html             |  223 ---
     .../ns-1c/index_SORT_BY_LINE_DESC.html        |  223 ---
     .../ns-1c/index_SORT_BY_METHOD.html           |  223 ---
     .../ns-1c/index_SORT_BY_METHOD_DESC.html      |  223 ---
     .../ns-1c/index_SORT_BY_NAME_DESC.html        |  223 ---
     .../ns-1c/sources/source-1.html               |  387 -----
     .../ns-1c/sources/source-2.html               |  152 --
     .../ns-1c/sources/source-3.html               |  131 --
     .../ns-1d/index.html                          |  278 ---
     .../ns-1d/index_SORT_BY_BLOCK.html            |  278 ---
     .../ns-1d/index_SORT_BY_BLOCK_DESC.html       |  278 ---
     .../ns-1d/index_SORT_BY_CLASS.html            |  278 ---
     .../ns-1d/index_SORT_BY_CLASS_DESC.html       |  278 ---
     .../ns-1d/index_SORT_BY_LINE.html             |  278 ---
     .../ns-1d/index_SORT_BY_LINE_DESC.html        |  278 ---
     .../ns-1d/index_SORT_BY_METHOD.html           |  278 ---
     .../ns-1d/index_SORT_BY_METHOD_DESC.html      |  278 ---
     .../ns-1d/index_SORT_BY_NAME_DESC.html        |  278 ---
     .../ns-1d/sources/source-1.html               |  293 ----
     .../ns-1d/sources/source-2.html               |  183 --
     .../ns-1d/sources/source-3.html               |  325 ----
     .../ns-1d/sources/source-4.html               |  329 ----
     .../ns-1d/sources/source-5.html               |  134 --
     .../ns-1d/sources/source-6.html               |  159 --
     .../ns-1e/index.html                          |  143 --
     .../ns-1e/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-1e/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-1e/index_SORT_BY_CLASS.html            |  143 --
     .../ns-1e/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-1e/index_SORT_BY_LINE.html             |  143 --
     .../ns-1e/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-1e/index_SORT_BY_METHOD.html           |  143 --
     .../ns-1e/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-1e/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-1e/sources/source-1.html               |  220 ---
     .../ns-1f/index.html                          |  170 --
     .../ns-1f/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-1f/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-1f/index_SORT_BY_CLASS.html            |  170 --
     .../ns-1f/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-1f/index_SORT_BY_LINE.html             |  170 --
     .../ns-1f/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-1f/index_SORT_BY_METHOD.html           |  170 --
     .../ns-1f/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-1f/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-1f/sources/source-1.html               |  831 ---------
     .../ns-1f/sources/source-2.html               |  201 ---
     .../ns-2/index.html                           |  143 --
     .../ns-2/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-2/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-2/index_SORT_BY_CLASS.html             |  143 --
     .../ns-2/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-2/index_SORT_BY_LINE.html              |  143 --
     .../ns-2/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-2/index_SORT_BY_METHOD.html            |  143 --
     .../ns-2/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-2/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-2/sources/source-1.html                |  127 --
     .../ns-2/sources/source-2.html                |  133 --
     .../ns-2/sources/source-3.html                |  121 --
     .../ns-2/sources/source-4.html                |  107 --
     .../ns-2/sources/source-5.html                |  121 --
     .../ns-2/sources/source-6.html                |  103 --
     .../ns-2/sources/source-7.html                |  113 --
     .../ns-2/sources/source-8.html                |  107 --
     .../ns-2/sources/source-9.html                |  116 --
     .../ns-20/index.html                          |  251 ---
     .../ns-20/index_SORT_BY_BLOCK.html            |  251 ---
     .../ns-20/index_SORT_BY_BLOCK_DESC.html       |  251 ---
     .../ns-20/index_SORT_BY_CLASS.html            |  251 ---
     .../ns-20/index_SORT_BY_CLASS_DESC.html       |  251 ---
     .../ns-20/index_SORT_BY_LINE.html             |  251 ---
     .../ns-20/index_SORT_BY_LINE_DESC.html        |  251 ---
     .../ns-20/index_SORT_BY_METHOD.html           |  251 ---
     .../ns-20/index_SORT_BY_METHOD_DESC.html      |  251 ---
     .../ns-20/index_SORT_BY_NAME_DESC.html        |  251 ---
     .../ns-20/sources/source-1.html               |  193 ---
     .../ns-20/sources/source-2.html               |  746 --------
     .../ns-20/sources/source-3.html               |  706 --------
     .../ns-20/sources/source-4.html               |  345 ----
     .../ns-21/index.html                          |  251 ---
     .../ns-21/index_SORT_BY_BLOCK.html            |  251 ---
     .../ns-21/index_SORT_BY_BLOCK_DESC.html       |  251 ---
     .../ns-21/index_SORT_BY_CLASS.html            |  251 ---
     .../ns-21/index_SORT_BY_CLASS_DESC.html       |  251 ---
     .../ns-21/index_SORT_BY_LINE.html             |  251 ---
     .../ns-21/index_SORT_BY_LINE_DESC.html        |  251 ---
     .../ns-21/index_SORT_BY_METHOD.html           |  251 ---
     .../ns-21/index_SORT_BY_METHOD_DESC.html      |  251 ---
     .../ns-21/index_SORT_BY_NAME_DESC.html        |  251 ---
     .../ns-21/sources/source-1.html               |  193 ---
     .../ns-21/sources/source-2.html               |  745 --------
     .../ns-21/sources/source-3.html               |  706 --------
     .../ns-21/sources/source-4.html               |  345 ----
     .../ns-22/index.html                          |  197 ---
     .../ns-22/index_SORT_BY_BLOCK.html            |  197 ---
     .../ns-22/index_SORT_BY_BLOCK_DESC.html       |  197 ---
     .../ns-22/index_SORT_BY_CLASS.html            |  197 ---
     .../ns-22/index_SORT_BY_CLASS_DESC.html       |  197 ---
     .../ns-22/index_SORT_BY_LINE.html             |  197 ---
     .../ns-22/index_SORT_BY_LINE_DESC.html        |  197 ---
     .../ns-22/index_SORT_BY_METHOD.html           |  197 ---
     .../ns-22/index_SORT_BY_METHOD_DESC.html      |  197 ---
     .../ns-22/index_SORT_BY_NAME_DESC.html        |  197 ---
     .../ns-22/sources/source-1.html               |  584 -------
     .../ns-22/sources/source-2.html               |  193 ---
     .../ns-22/sources/source-3.html               |  336 ----
     .../ns-23/index.html                          |  167 --
     .../ns-23/index_SORT_BY_BLOCK.html            |  167 --
     .../ns-23/index_SORT_BY_BLOCK_DESC.html       |  167 --
     .../ns-23/index_SORT_BY_CLASS.html            |  167 --
     .../ns-23/index_SORT_BY_CLASS_DESC.html       |  167 --
     .../ns-23/index_SORT_BY_LINE.html             |  167 --
     .../ns-23/index_SORT_BY_LINE_DESC.html        |  167 --
     .../ns-23/index_SORT_BY_METHOD.html           |  167 --
     .../ns-23/index_SORT_BY_METHOD_DESC.html      |  167 --
     .../ns-23/index_SORT_BY_NAME_DESC.html        |  167 --
     .../ns-23/sources/source-1.html               |  348 ----
     .../ns-24/index.html                          |  143 --
     .../ns-24/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-24/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-24/index_SORT_BY_CLASS.html            |  143 --
     .../ns-24/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-24/index_SORT_BY_LINE.html             |  143 --
     .../ns-24/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-24/index_SORT_BY_METHOD.html           |  143 --
     .../ns-24/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-24/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-24/sources/source-1.html               |  195 ---
     .../ns-25/index.html                          |  143 --
     .../ns-25/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-25/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-25/index_SORT_BY_CLASS.html            |  143 --
     .../ns-25/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-25/index_SORT_BY_LINE.html             |  143 --
     .../ns-25/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-25/index_SORT_BY_METHOD.html           |  143 --
     .../ns-25/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-25/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-25/sources/source-1.html               |  195 ---
     .../ns-26/index.html                          |  143 --
     .../ns-26/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-26/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-26/index_SORT_BY_CLASS.html            |  143 --
     .../ns-26/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-26/index_SORT_BY_LINE.html             |  143 --
     .../ns-26/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-26/index_SORT_BY_METHOD.html           |  143 --
     .../ns-26/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-26/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-26/sources/source-1.html               |  195 ---
     .../ns-27/index.html                          |  223 ---
     .../ns-27/index_SORT_BY_BLOCK.html            |  223 ---
     .../ns-27/index_SORT_BY_BLOCK_DESC.html       |  223 ---
     .../ns-27/index_SORT_BY_CLASS.html            |  223 ---
     .../ns-27/index_SORT_BY_CLASS_DESC.html       |  223 ---
     .../ns-27/index_SORT_BY_LINE.html             |  223 ---
     .../ns-27/index_SORT_BY_LINE_DESC.html        |  223 ---
     .../ns-27/index_SORT_BY_METHOD.html           |  223 ---
     .../ns-27/index_SORT_BY_METHOD_DESC.html      |  223 ---
     .../ns-27/index_SORT_BY_NAME_DESC.html        |  223 ---
     .../ns-27/sources/source-1.html               |  387 -----
     .../ns-27/sources/source-2.html               |  152 --
     .../ns-27/sources/source-3.html               |  130 --
     .../ns-28/index.html                          |  223 ---
     .../ns-28/index_SORT_BY_BLOCK.html            |  223 ---
     .../ns-28/index_SORT_BY_BLOCK_DESC.html       |  223 ---
     .../ns-28/index_SORT_BY_CLASS.html            |  223 ---
     .../ns-28/index_SORT_BY_CLASS_DESC.html       |  223 ---
     .../ns-28/index_SORT_BY_LINE.html             |  223 ---
     .../ns-28/index_SORT_BY_LINE_DESC.html        |  223 ---
     .../ns-28/index_SORT_BY_METHOD.html           |  223 ---
     .../ns-28/index_SORT_BY_METHOD_DESC.html      |  223 ---
     .../ns-28/index_SORT_BY_NAME_DESC.html        |  223 ---
     .../ns-28/sources/source-1.html               |  380 -----
     .../ns-28/sources/source-2.html               |  152 --
     .../ns-28/sources/source-3.html               |  130 --
     .../ns-29/index.html                          |  278 ---
     .../ns-29/index_SORT_BY_BLOCK.html            |  278 ---
     .../ns-29/index_SORT_BY_BLOCK_DESC.html       |  278 ---
     .../ns-29/index_SORT_BY_CLASS.html            |  278 ---
     .../ns-29/index_SORT_BY_CLASS_DESC.html       |  278 ---
     .../ns-29/index_SORT_BY_LINE.html             |  278 ---
     .../ns-29/index_SORT_BY_LINE_DESC.html        |  278 ---
     .../ns-29/index_SORT_BY_METHOD.html           |  278 ---
     .../ns-29/index_SORT_BY_METHOD_DESC.html      |  278 ---
     .../ns-29/index_SORT_BY_NAME_DESC.html        |  278 ---
     .../ns-29/sources/source-1.html               |  294 ----
     .../ns-29/sources/source-2.html               |  183 --
     .../ns-29/sources/source-3.html               |  325 ----
     .../ns-29/sources/source-4.html               |  328 ----
     .../ns-29/sources/source-5.html               |  135 --
     .../ns-29/sources/source-6.html               |  159 --
     .../ns-3/index.html                           |  251 ---
     .../ns-3/index_SORT_BY_BLOCK.html             |  251 ---
     .../ns-3/index_SORT_BY_BLOCK_DESC.html        |  251 ---
     .../ns-3/index_SORT_BY_CLASS.html             |  251 ---
     .../ns-3/index_SORT_BY_CLASS_DESC.html        |  251 ---
     .../ns-3/index_SORT_BY_LINE.html              |  251 ---
     .../ns-3/index_SORT_BY_LINE_DESC.html         |  251 ---
     .../ns-3/index_SORT_BY_METHOD.html            |  251 ---
     .../ns-3/index_SORT_BY_METHOD_DESC.html       |  251 ---
     .../ns-3/index_SORT_BY_NAME_DESC.html         |  251 ---
     .../ns-3/sources/source-1.html                |  176 --
     .../ns-3/sources/source-2.html                |  142 --
     .../ns-3/sources/source-3.html                |  142 --
     .../ns-3/sources/source-4.html                |  192 ---
     .../ns-3/sources/source-5.html                |  184 --
     .../ns-4/index.html                           | 1077 ------------
     .../ns-4/index_SORT_BY_BLOCK.html             | 1077 ------------
     .../ns-4/index_SORT_BY_BLOCK_DESC.html        | 1077 ------------
     .../ns-4/index_SORT_BY_CLASS.html             | 1077 ------------
     .../ns-4/index_SORT_BY_CLASS_DESC.html        | 1077 ------------
     .../ns-4/index_SORT_BY_LINE.html              | 1077 ------------
     .../ns-4/index_SORT_BY_LINE_DESC.html         | 1077 ------------
     .../ns-4/index_SORT_BY_METHOD.html            | 1077 ------------
     .../ns-4/index_SORT_BY_METHOD_DESC.html       | 1077 ------------
     .../ns-4/index_SORT_BY_NAME_DESC.html         | 1077 ------------
     .../ns-4/sources/source-1.html                |  108 --
     .../ns-4/sources/source-10.html               |  108 --
     .../ns-4/sources/source-11.html               |  124 --
     .../ns-4/sources/source-12.html               |  126 --
     .../ns-4/sources/source-13.html               |  124 --
     .../ns-4/sources/source-14.html               |  484 ------
     .../ns-4/sources/source-15.html               |  484 ------
     .../ns-4/sources/source-16.html               |  484 ------
     .../ns-4/sources/source-17.html               |  484 ------
     .../ns-4/sources/source-18.html               |  484 ------
     .../ns-4/sources/source-19.html               |  484 ------
     .../ns-4/sources/source-1a.html               |  724 --------
     .../ns-4/sources/source-1b.html               |  108 --
     .../ns-4/sources/source-1c.html               |  124 --
     .../ns-4/sources/source-1d.html               |  126 --
     .../ns-4/sources/source-1e.html               |  124 --
     .../ns-4/sources/source-1f.html               |  724 --------
     .../ns-4/sources/source-2.html                |  124 --
     .../ns-4/sources/source-3.html                |  126 --
     .../ns-4/sources/source-4.html                |  124 --
     .../ns-4/sources/source-5.html                |  484 ------
     .../ns-4/sources/source-6.html                |  108 --
     .../ns-4/sources/source-7.html                |  124 --
     .../ns-4/sources/source-8.html                |  126 --
     .../ns-4/sources/source-9.html                |  124 --
     .../ns-4/sources/source-a.html                |  484 ------
     .../ns-4/sources/source-b.html                |  108 --
     .../ns-4/sources/source-c.html                |  124 --
     .../ns-4/sources/source-d.html                |  126 --
     .../ns-4/sources/source-e.html                |  124 --
     .../ns-4/sources/source-f.html                |  484 ------
     .../ns-5/index.html                           |  167 --
     .../ns-5/index_SORT_BY_BLOCK.html             |  167 --
     .../ns-5/index_SORT_BY_BLOCK_DESC.html        |  167 --
     .../ns-5/index_SORT_BY_CLASS.html             |  167 --
     .../ns-5/index_SORT_BY_CLASS_DESC.html        |  167 --
     .../ns-5/index_SORT_BY_LINE.html              |  167 --
     .../ns-5/index_SORT_BY_LINE_DESC.html         |  167 --
     .../ns-5/index_SORT_BY_METHOD.html            |  167 --
     .../ns-5/index_SORT_BY_METHOD_DESC.html       |  167 --
     .../ns-5/index_SORT_BY_NAME_DESC.html         |  167 --
     .../ns-5/sources/source-1.html                |  250 ---
     .../ns-6/index.html                           |  305 ----
     .../ns-6/index_SORT_BY_BLOCK.html             |  305 ----
     .../ns-6/index_SORT_BY_BLOCK_DESC.html        |  305 ----
     .../ns-6/index_SORT_BY_CLASS.html             |  305 ----
     .../ns-6/index_SORT_BY_CLASS_DESC.html        |  305 ----
     .../ns-6/index_SORT_BY_LINE.html              |  305 ----
     .../ns-6/index_SORT_BY_LINE_DESC.html         |  305 ----
     .../ns-6/index_SORT_BY_METHOD.html            |  305 ----
     .../ns-6/index_SORT_BY_METHOD_DESC.html       |  305 ----
     .../ns-6/index_SORT_BY_NAME_DESC.html         |  305 ----
     .../ns-6/sources/source-1.html                |  470 -----
     .../ns-6/sources/source-2.html                |  228 ---
     .../ns-6/sources/source-3.html                |  424 -----
     .../ns-6/sources/source-4.html                |  150 --
     .../ns-6/sources/source-5.html                |  134 --
     .../ns-6/sources/source-6.html                |  112 --
     .../ns-6/sources/source-7.html                |  154 --
     .../ns-7/index.html                           |  170 --
     .../ns-7/index_SORT_BY_BLOCK.html             |  170 --
     .../ns-7/index_SORT_BY_BLOCK_DESC.html        |  170 --
     .../ns-7/index_SORT_BY_CLASS.html             |  170 --
     .../ns-7/index_SORT_BY_CLASS_DESC.html        |  170 --
     .../ns-7/index_SORT_BY_LINE.html              |  170 --
     .../ns-7/index_SORT_BY_LINE_DESC.html         |  170 --
     .../ns-7/index_SORT_BY_METHOD.html            |  170 --
     .../ns-7/index_SORT_BY_METHOD_DESC.html       |  170 --
     .../ns-7/index_SORT_BY_NAME_DESC.html         |  170 --
     .../ns-7/sources/source-1.html                |  128 --
     .../ns-7/sources/source-2.html                |  335 ----
     .../ns-8/index.html                           |  278 ---
     .../ns-8/index_SORT_BY_BLOCK.html             |  278 ---
     .../ns-8/index_SORT_BY_BLOCK_DESC.html        |  278 ---
     .../ns-8/index_SORT_BY_CLASS.html             |  278 ---
     .../ns-8/index_SORT_BY_CLASS_DESC.html        |  278 ---
     .../ns-8/index_SORT_BY_LINE.html              |  278 ---
     .../ns-8/index_SORT_BY_LINE_DESC.html         |  278 ---
     .../ns-8/index_SORT_BY_METHOD.html            |  278 ---
     .../ns-8/index_SORT_BY_METHOD_DESC.html       |  278 ---
     .../ns-8/index_SORT_BY_NAME_DESC.html         |  278 ---
     .../ns-8/sources/source-1.html                |  305 ----
     .../ns-8/sources/source-2.html                |  293 ----
     .../ns-8/sources/source-3.html                |  655 -------
     .../ns-8/sources/source-4.html                |  120 --
     .../ns-8/sources/source-5.html                |  222 ---
     .../ns-8/sources/source-6.html                |  467 -----
     .../ns-8/sources/source-7.html                |  113 --
     .../ns-9/index.html                           |  251 ---
     .../ns-9/index_SORT_BY_BLOCK.html             |  251 ---
     .../ns-9/index_SORT_BY_BLOCK_DESC.html        |  251 ---
     .../ns-9/index_SORT_BY_CLASS.html             |  251 ---
     .../ns-9/index_SORT_BY_CLASS_DESC.html        |  251 ---
     .../ns-9/index_SORT_BY_LINE.html              |  251 ---
     .../ns-9/index_SORT_BY_LINE_DESC.html         |  251 ---
     .../ns-9/index_SORT_BY_METHOD.html            |  251 ---
     .../ns-9/index_SORT_BY_METHOD_DESC.html       |  251 ---
     .../ns-9/index_SORT_BY_NAME_DESC.html         |  251 ---
     .../ns-9/sources/source-1.html                |  184 --
     .../ns-9/sources/source-2.html                |  546 ------
     .../ns-9/sources/source-3.html                |  125 --
     .../ns-9/sources/source-4.html                |  418 -----
     .../ns-9/sources/source-5.html                |  210 ---
     .../ns-9/sources/source-6.html                |  103 --
     .../ns-a/index.html                           |  143 --
     .../ns-a/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-a/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-a/index_SORT_BY_CLASS.html             |  143 --
     .../ns-a/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-a/index_SORT_BY_LINE.html              |  143 --
     .../ns-a/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-a/index_SORT_BY_METHOD.html            |  143 --
     .../ns-a/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-a/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-a/sources/source-1.html                |  205 ---
     .../ns-b/index.html                           |  143 --
     .../ns-b/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-b/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-b/index_SORT_BY_CLASS.html             |  143 --
     .../ns-b/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-b/index_SORT_BY_LINE.html              |  143 --
     .../ns-b/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-b/index_SORT_BY_METHOD.html            |  143 --
     .../ns-b/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-b/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-b/sources/source-1.html                |  142 --
     .../ns-c/index.html                           |  170 --
     .../ns-c/index_SORT_BY_BLOCK.html             |  170 --
     .../ns-c/index_SORT_BY_BLOCK_DESC.html        |  170 --
     .../ns-c/index_SORT_BY_CLASS.html             |  170 --
     .../ns-c/index_SORT_BY_CLASS_DESC.html        |  170 --
     .../ns-c/index_SORT_BY_LINE.html              |  170 --
     .../ns-c/index_SORT_BY_LINE_DESC.html         |  170 --
     .../ns-c/index_SORT_BY_METHOD.html            |  170 --
     .../ns-c/index_SORT_BY_METHOD_DESC.html       |  170 --
     .../ns-c/index_SORT_BY_NAME_DESC.html         |  170 --
     .../ns-c/sources/source-1.html                |  140 --
     .../ns-c/sources/source-2.html                |  268 ---
     .../ns-d/index.html                           |  251 ---
     .../ns-d/index_SORT_BY_BLOCK.html             |  251 ---
     .../ns-d/index_SORT_BY_BLOCK_DESC.html        |  251 ---
     .../ns-d/index_SORT_BY_CLASS.html             |  251 ---
     .../ns-d/index_SORT_BY_CLASS_DESC.html        |  251 ---
     .../ns-d/index_SORT_BY_LINE.html              |  251 ---
     .../ns-d/index_SORT_BY_LINE_DESC.html         |  251 ---
     .../ns-d/index_SORT_BY_METHOD.html            |  251 ---
     .../ns-d/index_SORT_BY_METHOD_DESC.html       |  251 ---
     .../ns-d/index_SORT_BY_NAME_DESC.html         |  251 ---
     .../ns-d/sources/source-1.html                |  165 --
     .../ns-d/sources/source-2.html                |  146 --
     .../ns-d/sources/source-3.html                |  330 ----
     .../ns-d/sources/source-4.html                |  138 --
     .../ns-d/sources/source-5.html                |  166 --
     .../ns-e/index.html                           |  332 ----
     .../ns-e/index_SORT_BY_BLOCK.html             |  332 ----
     .../ns-e/index_SORT_BY_BLOCK_DESC.html        |  332 ----
     .../ns-e/index_SORT_BY_CLASS.html             |  332 ----
     .../ns-e/index_SORT_BY_CLASS_DESC.html        |  332 ----
     .../ns-e/index_SORT_BY_LINE.html              |  332 ----
     .../ns-e/index_SORT_BY_LINE_DESC.html         |  332 ----
     .../ns-e/index_SORT_BY_METHOD.html            |  332 ----
     .../ns-e/index_SORT_BY_METHOD_DESC.html       |  332 ----
     .../ns-e/index_SORT_BY_NAME_DESC.html         |  332 ----
     .../ns-e/sources/source-1.html                |  152 --
     .../ns-e/sources/source-2.html                |  137 --
     .../ns-e/sources/source-3.html                |  285 ----
     .../ns-e/sources/source-4.html                |  229 ---
     .../ns-e/sources/source-5.html                |  147 --
     .../ns-e/sources/source-6.html                |  308 ----
     .../ns-e/sources/source-7.html                |  138 --
     .../ns-e/sources/source-8.html                |  182 --
     .../ns-f/index.html                           |  143 --
     .../ns-f/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-f/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-f/index_SORT_BY_CLASS.html             |  143 --
     .../ns-f/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-f/index_SORT_BY_LINE.html              |  143 --
     .../ns-f/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-f/index_SORT_BY_METHOD.html            |  143 --
     .../ns-f/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-f/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-f/sources/source-1.html                |  189 ---
     .../css/coverage.css                          |  154 --
     .../css/idea.min.css                          |  118 --
     .../img/arrowDown.gif                         |  Bin 89 -> 0 bytes
     .../img/arrowUp.gif                           |  Bin 91 -> 0 bytes
     .../index.html                                | 1349 ---------------
     .../index_SORT_BY_BLOCK.html                  | 1349 ---------------
     .../index_SORT_BY_BLOCK_DESC.html             | 1349 ---------------
     .../index_SORT_BY_CLASS.html                  | 1349 ---------------
     .../index_SORT_BY_CLASS_DESC.html             | 1349 ---------------
     .../index_SORT_BY_LINE.html                   | 1349 ---------------
     .../index_SORT_BY_LINE_DESC.html              | 1349 ---------------
     .../index_SORT_BY_METHOD.html                 | 1349 ---------------
     .../index_SORT_BY_METHOD_DESC.html            | 1349 ---------------
     .../index_SORT_BY_NAME_DESC.html              | 1349 ---------------
     .../js/highlight.min.js                       | 1388 ---------------
     .../js/highlightjs-line-numbers.min.js        |   24 -
     .../ns-1/index.html                           | 1287 --------------
     .../ns-1/index_SORT_BY_BLOCK.html             | 1287 --------------
     .../ns-1/index_SORT_BY_BLOCK_DESC.html        | 1287 --------------
     .../ns-1/index_SORT_BY_CLASS.html             | 1287 --------------
     .../ns-1/index_SORT_BY_CLASS_DESC.html        | 1287 --------------
     .../ns-1/index_SORT_BY_LINE.html              | 1287 --------------
     .../ns-1/index_SORT_BY_LINE_DESC.html         | 1287 --------------
     .../ns-1/index_SORT_BY_METHOD.html            | 1287 --------------
     .../ns-1/index_SORT_BY_METHOD_DESC.html       | 1287 --------------
     .../ns-1/index_SORT_BY_NAME_DESC.html         | 1287 --------------
     .../ns-1/sources/source-1.html                |  178 --
     .../ns-1/sources/source-10.html               |  203 ---
     .../ns-1/sources/source-11.html               |  441 -----
     .../ns-1/sources/source-12.html               |  222 ---
     .../ns-1/sources/source-13.html               |  137 --
     .../ns-1/sources/source-14.html               |  136 --
     .../ns-1/sources/source-15.html               | 1046 ------------
     .../ns-1/sources/source-16.html               |  275 ---
     .../ns-1/sources/source-17.html               | 1097 ------------
     .../ns-1/sources/source-18.html               |  196 ---
     .../ns-1/sources/source-19.html               |  467 -----
     .../ns-1/sources/source-1a.html               |  211 ---
     .../ns-1/sources/source-1b.html               |  782 ---------
     .../ns-1/sources/source-1c.html               |  205 ---
     .../ns-1/sources/source-1d.html               |  217 ---
     .../ns-1/sources/source-1e.html               |  161 --
     .../ns-1/sources/source-1f.html               |  149 --
     .../ns-1/sources/source-2.html                |  333 ----
     .../ns-1/sources/source-20.html               |  301 ----
     .../ns-1/sources/source-21.html               |  199 ---
     .../ns-1/sources/source-22.html               |  147 --
     .../ns-1/sources/source-23.html               |  277 ---
     .../ns-1/sources/source-24.html               |  353 ----
     .../ns-1/sources/source-25.html               |  174 --
     .../ns-1/sources/source-26.html               |  281 ---
     .../ns-1/sources/source-27.html               |  345 ----
     .../ns-1/sources/source-28.html               |  116 --
     .../ns-1/sources/source-29.html               |   81 -
     .../ns-1/sources/source-2a.html               |   82 -
     .../ns-1/sources/source-2b.html               |  103 --
     .../ns-1/sources/source-2c.html               |   85 -
     .../ns-1/sources/source-2d.html               |   78 -
     .../ns-1/sources/source-2e.html               |  104 --
     .../ns-1/sources/source-2f.html               |   81 -
     .../ns-1/sources/source-3.html                |  231 ---
     .../ns-1/sources/source-30.html               |   89 -
     .../ns-1/sources/source-31.html               |   85 -
     .../ns-1/sources/source-32.html               |  116 --
     .../ns-1/sources/source-4.html                |  490 ------
     .../ns-1/sources/source-5.html                |  160 --
     .../ns-1/sources/source-6.html                |  477 ------
     .../ns-1/sources/source-7.html                |  147 --
     .../ns-1/sources/source-8.html                |  137 --
     .../ns-1/sources/source-9.html                |  224 ---
     .../ns-1/sources/source-a.html                |  193 ---
     .../ns-1/sources/source-b.html                |  323 ----
     .../ns-1/sources/source-c.html                |  125 --
     .../ns-1/sources/source-d.html                |  162 --
     .../ns-1/sources/source-e.html                |  390 -----
     .../ns-1/sources/source-f.html                |  465 -----
     .../ns-10/index.html                          |  143 --
     .../ns-10/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-10/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-10/index_SORT_BY_CLASS.html            |  143 --
     .../ns-10/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-10/index_SORT_BY_LINE.html             |  143 --
     .../ns-10/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-10/index_SORT_BY_METHOD.html           |  143 --
     .../ns-10/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-10/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-10/sources/source-1.html               |  143 --
     .../ns-10/sources/source-2.html               |  119 --
     .../ns-10/sources/source-3.html               |  135 --
     .../ns-10/sources/source-4.html               |  116 --
     .../ns-10/sources/source-5.html               |  422 -----
     .../ns-10/sources/source-6.html               |  239 ---
     .../ns-10/sources/source-7.html               |  124 --
     .../ns-10/sources/source-8.html               |   78 -
     .../ns-11/index.html                          |  305 ----
     .../ns-11/index_SORT_BY_BLOCK.html            |  305 ----
     .../ns-11/index_SORT_BY_BLOCK_DESC.html       |  305 ----
     .../ns-11/index_SORT_BY_CLASS.html            |  305 ----
     .../ns-11/index_SORT_BY_CLASS_DESC.html       |  305 ----
     .../ns-11/index_SORT_BY_LINE.html             |  305 ----
     .../ns-11/index_SORT_BY_LINE_DESC.html        |  305 ----
     .../ns-11/index_SORT_BY_METHOD.html           |  305 ----
     .../ns-11/index_SORT_BY_METHOD_DESC.html      |  305 ----
     .../ns-11/index_SORT_BY_NAME_DESC.html        |  305 ----
     .../ns-11/sources/source-1.html               |  112 --
     .../ns-11/sources/source-2.html               |  119 --
     .../ns-11/sources/source-3.html               |  135 --
     .../ns-11/sources/source-4.html               |  116 --
     .../ns-11/sources/source-5.html               |  422 -----
     .../ns-11/sources/source-6.html               |  239 ---
     .../ns-11/sources/source-7.html               |  124 --
     .../ns-11/sources/source-8.html               |   78 -
     .../ns-12/index.html                          |  170 --
     .../ns-12/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-12/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-12/index_SORT_BY_CLASS.html            |  170 --
     .../ns-12/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-12/index_SORT_BY_LINE.html             |  170 --
     .../ns-12/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-12/index_SORT_BY_METHOD.html           |  170 --
     .../ns-12/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-12/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-12/sources/source-1.html               |  152 --
     .../ns-12/sources/source-2.html               |  145 --
     .../ns-12/sources/source-3.html               |  136 --
     .../ns-12/sources/source-4.html               |  116 --
     .../ns-12/sources/source-5.html               |  117 --
     .../ns-12/sources/source-6.html               |  151 --
     .../ns-12/sources/source-7.html               |   89 -
     .../ns-13/index.html                          |  278 ---
     .../ns-13/index_SORT_BY_BLOCK.html            |  278 ---
     .../ns-13/index_SORT_BY_BLOCK_DESC.html       |  278 ---
     .../ns-13/index_SORT_BY_CLASS.html            |  278 ---
     .../ns-13/index_SORT_BY_CLASS_DESC.html       |  278 ---
     .../ns-13/index_SORT_BY_LINE.html             |  278 ---
     .../ns-13/index_SORT_BY_LINE_DESC.html        |  278 ---
     .../ns-13/index_SORT_BY_METHOD.html           |  278 ---
     .../ns-13/index_SORT_BY_METHOD_DESC.html      |  278 ---
     .../ns-13/index_SORT_BY_NAME_DESC.html        |  278 ---
     .../ns-13/sources/source-1.html               |  116 --
     .../ns-13/sources/source-2.html               |  246 ---
     .../ns-13/sources/source-3.html               |  136 --
     .../ns-13/sources/source-4.html               |  116 --
     .../ns-13/sources/source-5.html               |  117 --
     .../ns-13/sources/source-6.html               |  151 --
     .../ns-13/sources/source-7.html               |   89 -
     .../ns-14/index.html                          |  170 --
     .../ns-14/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-14/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-14/index_SORT_BY_CLASS.html            |  170 --
     .../ns-14/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-14/index_SORT_BY_LINE.html             |  170 --
     .../ns-14/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-14/index_SORT_BY_METHOD.html           |  170 --
     .../ns-14/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-14/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-14/sources/source-1.html               |  831 ---------
     .../ns-14/sources/source-2.html               |  201 ---
     .../ns-15/index.html                          |  170 --
     .../ns-15/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-15/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-15/index_SORT_BY_CLASS.html            |  170 --
     .../ns-15/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-15/index_SORT_BY_LINE.html             |  170 --
     .../ns-15/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-15/index_SORT_BY_METHOD.html           |  170 --
     .../ns-15/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-15/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-15/sources/source-1.html               |  832 ---------
     .../ns-15/sources/source-2.html               |  201 ---
     .../ns-15/sources/source-3.html               |  708 --------
     .../ns-15/sources/source-4.html               |  286 ----
     .../ns-16/index.html                          |  251 ---
     .../ns-16/index_SORT_BY_BLOCK.html            |  251 ---
     .../ns-16/index_SORT_BY_BLOCK_DESC.html       |  251 ---
     .../ns-16/index_SORT_BY_CLASS.html            |  251 ---
     .../ns-16/index_SORT_BY_CLASS_DESC.html       |  251 ---
     .../ns-16/index_SORT_BY_LINE.html             |  251 ---
     .../ns-16/index_SORT_BY_LINE_DESC.html        |  251 ---
     .../ns-16/index_SORT_BY_METHOD.html           |  251 ---
     .../ns-16/index_SORT_BY_METHOD_DESC.html      |  251 ---
     .../ns-16/index_SORT_BY_NAME_DESC.html        |  251 ---
     .../ns-16/sources/source-1.html               |  193 ---
     .../ns-16/sources/source-2.html               |  754 --------
     .../ns-16/sources/source-3.html               |  708 --------
     .../ns-16/sources/source-4.html               |  286 ----
     .../ns-17/index.html                          |  170 --
     .../ns-17/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-17/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-17/index_SORT_BY_CLASS.html            |  170 --
     .../ns-17/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-17/index_SORT_BY_LINE.html             |  170 --
     .../ns-17/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-17/index_SORT_BY_METHOD.html           |  170 --
     .../ns-17/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-17/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-17/sources/source-1.html               |  173 --
     .../ns-17/sources/source-2.html               | 1061 ------------
     .../ns-17/sources/source-3.html               |   85 -
     .../ns-18/index.html                          |  170 --
     .../ns-18/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-18/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-18/index_SORT_BY_CLASS.html            |  170 --
     .../ns-18/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-18/index_SORT_BY_LINE.html             |  170 --
     .../ns-18/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-18/index_SORT_BY_METHOD.html           |  170 --
     .../ns-18/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-18/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-18/sources/source-1.html               |  217 ---
     .../ns-18/sources/source-2.html               |  489 ------
     .../ns-18/sources/source-3.html               |  139 --
     .../ns-18/sources/source-4.html               |  123 --
     .../ns-18/sources/source-5.html               |  154 --
     .../ns-18/sources/source-6.html               |  157 --
     .../ns-18/sources/source-7.html               |  165 --
     .../ns-18/sources/source-8.html               |  155 --
     .../ns-18/sources/source-9.html               |  274 ---
     .../ns-18/sources/source-a.html               |  169 --
     .../ns-18/sources/source-b.html               |  217 ---
     .../ns-18/sources/source-c.html               |  185 --
     .../ns-19/index.html                          |  440 -----
     .../ns-19/index_SORT_BY_BLOCK.html            |  440 -----
     .../ns-19/index_SORT_BY_BLOCK_DESC.html       |  440 -----
     .../ns-19/index_SORT_BY_CLASS.html            |  440 -----
     .../ns-19/index_SORT_BY_CLASS_DESC.html       |  440 -----
     .../ns-19/index_SORT_BY_LINE.html             |  440 -----
     .../ns-19/index_SORT_BY_LINE_DESC.html        |  440 -----
     .../ns-19/index_SORT_BY_METHOD.html           |  440 -----
     .../ns-19/index_SORT_BY_METHOD_DESC.html      |  440 -----
     .../ns-19/index_SORT_BY_NAME_DESC.html        |  440 -----
     .../ns-19/sources/source-1.html               |  156 --
     .../ns-19/sources/source-2.html               |  184 --
     .../ns-19/sources/source-3.html               |  139 --
     .../ns-19/sources/source-4.html               |  123 --
     .../ns-19/sources/source-5.html               |  154 --
     .../ns-19/sources/source-6.html               |  157 --
     .../ns-19/sources/source-7.html               |  165 --
     .../ns-19/sources/source-8.html               |  155 --
     .../ns-19/sources/source-9.html               |  274 ---
     .../ns-19/sources/source-a.html               |  169 --
     .../ns-19/sources/source-b.html               |  217 ---
     .../ns-19/sources/source-c.html               |  185 --
     .../ns-1a/index.html                          |  143 --
     .../ns-1a/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-1a/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-1a/index_SORT_BY_CLASS.html            |  143 --
     .../ns-1a/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-1a/index_SORT_BY_LINE.html             |  143 --
     .../ns-1a/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-1a/index_SORT_BY_METHOD.html           |  143 --
     .../ns-1a/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-1a/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-1a/sources/source-1.html               |  268 ---
     .../ns-1b/index.html                          |  143 --
     .../ns-1b/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-1b/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-1b/index_SORT_BY_CLASS.html            |  143 --
     .../ns-1b/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-1b/index_SORT_BY_LINE.html             |  143 --
     .../ns-1b/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-1b/index_SORT_BY_METHOD.html           |  143 --
     .../ns-1b/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-1b/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-1b/sources/source-1.html               |  195 ---
     .../ns-1b/sources/source-2.html               |  152 --
     .../ns-1b/sources/source-3.html               |  131 --
     .../ns-1c/index.html                          |  223 ---
     .../ns-1c/index_SORT_BY_BLOCK.html            |  223 ---
     .../ns-1c/index_SORT_BY_BLOCK_DESC.html       |  223 ---
     .../ns-1c/index_SORT_BY_CLASS.html            |  223 ---
     .../ns-1c/index_SORT_BY_CLASS_DESC.html       |  223 ---
     .../ns-1c/index_SORT_BY_LINE.html             |  223 ---
     .../ns-1c/index_SORT_BY_LINE_DESC.html        |  223 ---
     .../ns-1c/index_SORT_BY_METHOD.html           |  223 ---
     .../ns-1c/index_SORT_BY_METHOD_DESC.html      |  223 ---
     .../ns-1c/index_SORT_BY_NAME_DESC.html        |  223 ---
     .../ns-1c/sources/source-1.html               |  387 -----
     .../ns-1c/sources/source-2.html               |  152 --
     .../ns-1c/sources/source-3.html               |  131 --
     .../ns-1c/sources/source-4.html               |  329 ----
     .../ns-1c/sources/source-5.html               |  134 --
     .../ns-1c/sources/source-6.html               |  159 --
     .../ns-1d/index.html                          |  278 ---
     .../ns-1d/index_SORT_BY_BLOCK.html            |  278 ---
     .../ns-1d/index_SORT_BY_BLOCK_DESC.html       |  278 ---
     .../ns-1d/index_SORT_BY_CLASS.html            |  278 ---
     .../ns-1d/index_SORT_BY_CLASS_DESC.html       |  278 ---
     .../ns-1d/index_SORT_BY_LINE.html             |  278 ---
     .../ns-1d/index_SORT_BY_LINE_DESC.html        |  278 ---
     .../ns-1d/index_SORT_BY_METHOD.html           |  278 ---
     .../ns-1d/index_SORT_BY_METHOD_DESC.html      |  278 ---
     .../ns-1d/index_SORT_BY_NAME_DESC.html        |  278 ---
     .../ns-1d/sources/source-1.html               |  293 ----
     .../ns-1d/sources/source-2.html               |  183 --
     .../ns-1d/sources/source-3.html               |  325 ----
     .../ns-1d/sources/source-4.html               |  329 ----
     .../ns-1d/sources/source-5.html               |  134 --
     .../ns-1d/sources/source-6.html               |  159 --
     .../ns-1e/index.html                          |  143 --
     .../ns-1e/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-1e/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-1e/index_SORT_BY_CLASS.html            |  143 --
     .../ns-1e/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-1e/index_SORT_BY_LINE.html             |  143 --
     .../ns-1e/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-1e/index_SORT_BY_METHOD.html           |  143 --
     .../ns-1e/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-1e/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-1e/sources/source-1.html               |  220 ---
     .../ns-1e/sources/source-2.html               |  201 ---
     .../ns-1f/index.html                          |  170 --
     .../ns-1f/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-1f/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-1f/index_SORT_BY_CLASS.html            |  170 --
     .../ns-1f/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-1f/index_SORT_BY_LINE.html             |  170 --
     .../ns-1f/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-1f/index_SORT_BY_METHOD.html           |  170 --
     .../ns-1f/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-1f/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-1f/sources/source-1.html               |  831 ---------
     .../ns-1f/sources/source-2.html               |  201 ---
     .../ns-1f/sources/source-3.html               |  706 --------
     .../ns-1f/sources/source-4.html               |  345 ----
     .../ns-2/index.html                           |  143 --
     .../ns-2/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-2/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-2/index_SORT_BY_CLASS.html             |  143 --
     .../ns-2/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-2/index_SORT_BY_LINE.html              |  143 --
     .../ns-2/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-2/index_SORT_BY_METHOD.html            |  143 --
     .../ns-2/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-2/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-2/sources/source-1.html                |  127 --
     .../ns-2/sources/source-2.html                |  107 --
     .../ns-2/sources/source-3.html                |  107 --
     .../ns-2/sources/source-4.html                |  116 --
     .../ns-2/sources/source-5.html                |  121 --
     .../ns-2/sources/source-6.html                |  121 --
     .../ns-2/sources/source-7.html                |  113 --
     .../ns-2/sources/source-8.html                |  133 --
     .../ns-2/sources/source-9.html                |  103 --
     .../ns-20/index.html                          |  251 ---
     .../ns-20/index_SORT_BY_BLOCK.html            |  251 ---
     .../ns-20/index_SORT_BY_BLOCK_DESC.html       |  251 ---
     .../ns-20/index_SORT_BY_CLASS.html            |  251 ---
     .../ns-20/index_SORT_BY_CLASS_DESC.html       |  251 ---
     .../ns-20/index_SORT_BY_LINE.html             |  251 ---
     .../ns-20/index_SORT_BY_LINE_DESC.html        |  251 ---
     .../ns-20/index_SORT_BY_METHOD.html           |  251 ---
     .../ns-20/index_SORT_BY_METHOD_DESC.html      |  251 ---
     .../ns-20/index_SORT_BY_NAME_DESC.html        |  251 ---
     .../ns-20/sources/source-1.html               |  193 ---
     .../ns-20/sources/source-2.html               |  746 --------
     .../ns-20/sources/source-3.html               |  706 --------
     .../ns-20/sources/source-4.html               |  345 ----
     .../ns-21/index.html                          |  251 ---
     .../ns-21/index_SORT_BY_BLOCK.html            |  251 ---
     .../ns-21/index_SORT_BY_BLOCK_DESC.html       |  251 ---
     .../ns-21/index_SORT_BY_CLASS.html            |  251 ---
     .../ns-21/index_SORT_BY_CLASS_DESC.html       |  251 ---
     .../ns-21/index_SORT_BY_LINE.html             |  251 ---
     .../ns-21/index_SORT_BY_LINE_DESC.html        |  251 ---
     .../ns-21/index_SORT_BY_METHOD.html           |  251 ---
     .../ns-21/index_SORT_BY_METHOD_DESC.html      |  251 ---
     .../ns-21/index_SORT_BY_NAME_DESC.html        |  251 ---
     .../ns-21/sources/source-1.html               |  193 ---
     .../ns-21/sources/source-2.html               |  745 --------
     .../ns-21/sources/source-3.html               |  706 --------
     .../ns-21/sources/source-4.html               |  345 ----
     .../ns-22/index.html                          |  197 ---
     .../ns-22/index_SORT_BY_BLOCK.html            |  197 ---
     .../ns-22/index_SORT_BY_BLOCK_DESC.html       |  197 ---
     .../ns-22/index_SORT_BY_CLASS.html            |  197 ---
     .../ns-22/index_SORT_BY_CLASS_DESC.html       |  197 ---
     .../ns-22/index_SORT_BY_LINE.html             |  197 ---
     .../ns-22/index_SORT_BY_LINE_DESC.html        |  197 ---
     .../ns-22/index_SORT_BY_METHOD.html           |  197 ---
     .../ns-22/index_SORT_BY_METHOD_DESC.html      |  197 ---
     .../ns-22/index_SORT_BY_NAME_DESC.html        |  197 ---
     .../ns-22/sources/source-1.html               |  584 -------
     .../ns-22/sources/source-2.html               |  193 ---
     .../ns-22/sources/source-3.html               |  336 ----
     .../ns-23/index.html                          |  167 --
     .../ns-23/index_SORT_BY_BLOCK.html            |  167 --
     .../ns-23/index_SORT_BY_BLOCK_DESC.html       |  167 --
     .../ns-23/index_SORT_BY_CLASS.html            |  167 --
     .../ns-23/index_SORT_BY_CLASS_DESC.html       |  167 --
     .../ns-23/index_SORT_BY_LINE.html             |  167 --
     .../ns-23/index_SORT_BY_LINE_DESC.html        |  167 --
     .../ns-23/index_SORT_BY_METHOD.html           |  167 --
     .../ns-23/index_SORT_BY_METHOD_DESC.html      |  167 --
     .../ns-23/index_SORT_BY_NAME_DESC.html        |  167 --
     .../ns-23/sources/source-1.html               |  348 ----
     .../ns-24/index.html                          |  143 --
     .../ns-24/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-24/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-24/index_SORT_BY_CLASS.html            |  143 --
     .../ns-24/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-24/index_SORT_BY_LINE.html             |  143 --
     .../ns-24/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-24/index_SORT_BY_METHOD.html           |  143 --
     .../ns-24/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-24/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-24/sources/source-1.html               |  195 ---
     .../ns-25/index.html                          |  143 --
     .../ns-25/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-25/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-25/index_SORT_BY_CLASS.html            |  143 --
     .../ns-25/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-25/index_SORT_BY_LINE.html             |  143 --
     .../ns-25/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-25/index_SORT_BY_METHOD.html           |  143 --
     .../ns-25/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-25/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-25/sources/source-1.html               |  195 ---
     .../ns-26/index.html                          |  143 --
     .../ns-26/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-26/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-26/index_SORT_BY_CLASS.html            |  143 --
     .../ns-26/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-26/index_SORT_BY_LINE.html             |  143 --
     .../ns-26/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-26/index_SORT_BY_METHOD.html           |  143 --
     .../ns-26/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-26/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-26/sources/source-1.html               |  195 ---
     .../ns-26/sources/source-2.html               |  152 --
     .../ns-26/sources/source-3.html               |  130 --
     .../ns-27/index.html                          |  223 ---
     .../ns-27/index_SORT_BY_BLOCK.html            |  223 ---
     .../ns-27/index_SORT_BY_BLOCK_DESC.html       |  223 ---
     .../ns-27/index_SORT_BY_CLASS.html            |  223 ---
     .../ns-27/index_SORT_BY_CLASS_DESC.html       |  223 ---
     .../ns-27/index_SORT_BY_LINE.html             |  223 ---
     .../ns-27/index_SORT_BY_LINE_DESC.html        |  223 ---
     .../ns-27/index_SORT_BY_METHOD.html           |  223 ---
     .../ns-27/index_SORT_BY_METHOD_DESC.html      |  223 ---
     .../ns-27/index_SORT_BY_NAME_DESC.html        |  223 ---
     .../ns-27/sources/source-1.html               |  387 -----
     .../ns-27/sources/source-2.html               |  152 --
     .../ns-27/sources/source-3.html               |  130 --
     .../ns-28/index.html                          |  223 ---
     .../ns-28/index_SORT_BY_BLOCK.html            |  223 ---
     .../ns-28/index_SORT_BY_BLOCK_DESC.html       |  223 ---
     .../ns-28/index_SORT_BY_CLASS.html            |  223 ---
     .../ns-28/index_SORT_BY_CLASS_DESC.html       |  223 ---
     .../ns-28/index_SORT_BY_LINE.html             |  223 ---
     .../ns-28/index_SORT_BY_LINE_DESC.html        |  223 ---
     .../ns-28/index_SORT_BY_METHOD.html           |  223 ---
     .../ns-28/index_SORT_BY_METHOD_DESC.html      |  223 ---
     .../ns-28/index_SORT_BY_NAME_DESC.html        |  223 ---
     .../ns-28/sources/source-1.html               |  380 -----
     .../ns-28/sources/source-2.html               |  152 --
     .../ns-28/sources/source-3.html               |  130 --
     .../ns-28/sources/source-4.html               |  328 ----
     .../ns-28/sources/source-5.html               |  135 --
     .../ns-28/sources/source-6.html               |  159 --
     .../ns-29/index.html                          |  278 ---
     .../ns-29/index_SORT_BY_BLOCK.html            |  278 ---
     .../ns-29/index_SORT_BY_BLOCK_DESC.html       |  278 ---
     .../ns-29/index_SORT_BY_CLASS.html            |  278 ---
     .../ns-29/index_SORT_BY_CLASS_DESC.html       |  278 ---
     .../ns-29/index_SORT_BY_LINE.html             |  278 ---
     .../ns-29/index_SORT_BY_LINE_DESC.html        |  278 ---
     .../ns-29/index_SORT_BY_METHOD.html           |  278 ---
     .../ns-29/index_SORT_BY_METHOD_DESC.html      |  278 ---
     .../ns-29/index_SORT_BY_NAME_DESC.html        |  278 ---
     .../ns-29/sources/source-1.html               |  294 ----
     .../ns-29/sources/source-2.html               |  183 --
     .../ns-29/sources/source-3.html               |  325 ----
     .../ns-29/sources/source-4.html               |  328 ----
     .../ns-29/sources/source-5.html               |  135 --
     .../ns-29/sources/source-6.html               |  159 --
     .../ns-3/index.html                           |  251 ---
     .../ns-3/index_SORT_BY_BLOCK.html             |  251 ---
     .../ns-3/index_SORT_BY_BLOCK_DESC.html        |  251 ---
     .../ns-3/index_SORT_BY_CLASS.html             |  251 ---
     .../ns-3/index_SORT_BY_CLASS_DESC.html        |  251 ---
     .../ns-3/index_SORT_BY_LINE.html              |  251 ---
     .../ns-3/index_SORT_BY_LINE_DESC.html         |  251 ---
     .../ns-3/index_SORT_BY_METHOD.html            |  251 ---
     .../ns-3/index_SORT_BY_METHOD_DESC.html       |  251 ---
     .../ns-3/index_SORT_BY_NAME_DESC.html         |  251 ---
     .../ns-3/sources/source-1.html                |  176 --
     .../ns-3/sources/source-2.html                |  142 --
     .../ns-3/sources/source-3.html                |  142 --
     .../ns-3/sources/source-4.html                |  192 ---
     .../ns-3/sources/source-5.html                |  184 --
     .../ns-4/index.html                           | 1077 ------------
     .../ns-4/index_SORT_BY_BLOCK.html             | 1077 ------------
     .../ns-4/index_SORT_BY_BLOCK_DESC.html        | 1077 ------------
     .../ns-4/index_SORT_BY_CLASS.html             | 1077 ------------
     .../ns-4/index_SORT_BY_CLASS_DESC.html        | 1077 ------------
     .../ns-4/index_SORT_BY_LINE.html              | 1077 ------------
     .../ns-4/index_SORT_BY_LINE_DESC.html         | 1077 ------------
     .../ns-4/index_SORT_BY_METHOD.html            | 1077 ------------
     .../ns-4/index_SORT_BY_METHOD_DESC.html       | 1077 ------------
     .../ns-4/index_SORT_BY_NAME_DESC.html         | 1077 ------------
     .../ns-4/sources/source-1.html                |  108 --
     .../ns-4/sources/source-10.html               |  108 --
     .../ns-4/sources/source-11.html               |  124 --
     .../ns-4/sources/source-12.html               |  126 --
     .../ns-4/sources/source-13.html               |  124 --
     .../ns-4/sources/source-14.html               |  484 ------
     .../ns-4/sources/source-15.html               |  484 ------
     .../ns-4/sources/source-16.html               |  484 ------
     .../ns-4/sources/source-17.html               |  484 ------
     .../ns-4/sources/source-18.html               |  484 ------
     .../ns-4/sources/source-19.html               |  484 ------
     .../ns-4/sources/source-1a.html               |  724 --------
     .../ns-4/sources/source-1b.html               |  108 --
     .../ns-4/sources/source-1c.html               |  124 --
     .../ns-4/sources/source-1d.html               |  126 --
     .../ns-4/sources/source-1e.html               |  124 --
     .../ns-4/sources/source-1f.html               |  724 --------
     .../ns-4/sources/source-2.html                |  124 --
     .../ns-4/sources/source-3.html                |  126 --
     .../ns-4/sources/source-4.html                |  124 --
     .../ns-4/sources/source-5.html                |  484 ------
     .../ns-4/sources/source-6.html                |  108 --
     .../ns-4/sources/source-7.html                |  124 --
     .../ns-4/sources/source-8.html                |  126 --
     .../ns-4/sources/source-9.html                |  124 --
     .../ns-4/sources/source-a.html                |  484 ------
     .../ns-4/sources/source-b.html                |  108 --
     .../ns-4/sources/source-c.html                |  124 --
     .../ns-4/sources/source-d.html                |  126 --
     .../ns-4/sources/source-e.html                |  124 --
     .../ns-4/sources/source-f.html                |  484 ------
     .../ns-5/index.html                           |  167 --
     .../ns-5/index_SORT_BY_BLOCK.html             |  167 --
     .../ns-5/index_SORT_BY_BLOCK_DESC.html        |  167 --
     .../ns-5/index_SORT_BY_CLASS.html             |  167 --
     .../ns-5/index_SORT_BY_CLASS_DESC.html        |  167 --
     .../ns-5/index_SORT_BY_LINE.html              |  167 --
     .../ns-5/index_SORT_BY_LINE_DESC.html         |  167 --
     .../ns-5/index_SORT_BY_METHOD.html            |  167 --
     .../ns-5/index_SORT_BY_METHOD_DESC.html       |  167 --
     .../ns-5/index_SORT_BY_NAME_DESC.html         |  167 --
     .../ns-5/sources/source-1.html                |  250 ---
     .../ns-5/sources/source-2.html                |  228 ---
     .../ns-5/sources/source-3.html                |  424 -----
     .../ns-5/sources/source-4.html                |  150 --
     .../ns-5/sources/source-5.html                |  134 --
     .../ns-5/sources/source-6.html                |  112 --
     .../ns-5/sources/source-7.html                |  154 --
     .../ns-6/index.html                           |  305 ----
     .../ns-6/index_SORT_BY_BLOCK.html             |  305 ----
     .../ns-6/index_SORT_BY_BLOCK_DESC.html        |  305 ----
     .../ns-6/index_SORT_BY_CLASS.html             |  305 ----
     .../ns-6/index_SORT_BY_CLASS_DESC.html        |  305 ----
     .../ns-6/index_SORT_BY_LINE.html              |  305 ----
     .../ns-6/index_SORT_BY_LINE_DESC.html         |  305 ----
     .../ns-6/index_SORT_BY_METHOD.html            |  305 ----
     .../ns-6/index_SORT_BY_METHOD_DESC.html       |  305 ----
     .../ns-6/index_SORT_BY_NAME_DESC.html         |  305 ----
     .../ns-6/sources/source-1.html                |  470 -----
     .../ns-6/sources/source-2.html                |  228 ---
     .../ns-6/sources/source-3.html                |  424 -----
     .../ns-6/sources/source-4.html                |  150 --
     .../ns-6/sources/source-5.html                |  134 --
     .../ns-6/sources/source-6.html                |  112 --
     .../ns-6/sources/source-7.html                |  154 --
     .../ns-7/index.html                           |  170 --
     .../ns-7/index_SORT_BY_BLOCK.html             |  170 --
     .../ns-7/index_SORT_BY_BLOCK_DESC.html        |  170 --
     .../ns-7/index_SORT_BY_CLASS.html             |  170 --
     .../ns-7/index_SORT_BY_CLASS_DESC.html        |  170 --
     .../ns-7/index_SORT_BY_LINE.html              |  170 --
     .../ns-7/index_SORT_BY_LINE_DESC.html         |  170 --
     .../ns-7/index_SORT_BY_METHOD.html            |  170 --
     .../ns-7/index_SORT_BY_METHOD_DESC.html       |  170 --
     .../ns-7/index_SORT_BY_NAME_DESC.html         |  170 --
     .../ns-7/sources/source-1.html                |  128 --
     .../ns-7/sources/source-2.html                |  335 ----
     .../ns-7/sources/source-3.html                |  655 -------
     .../ns-7/sources/source-4.html                |  120 --
     .../ns-7/sources/source-5.html                |  222 ---
     .../ns-7/sources/source-6.html                |  467 -----
     .../ns-7/sources/source-7.html                |  113 --
     .../ns-8/index.html                           |  278 ---
     .../ns-8/index_SORT_BY_BLOCK.html             |  278 ---
     .../ns-8/index_SORT_BY_BLOCK_DESC.html        |  278 ---
     .../ns-8/index_SORT_BY_CLASS.html             |  278 ---
     .../ns-8/index_SORT_BY_CLASS_DESC.html        |  278 ---
     .../ns-8/index_SORT_BY_LINE.html              |  278 ---
     .../ns-8/index_SORT_BY_LINE_DESC.html         |  278 ---
     .../ns-8/index_SORT_BY_METHOD.html            |  278 ---
     .../ns-8/index_SORT_BY_METHOD_DESC.html       |  278 ---
     .../ns-8/index_SORT_BY_NAME_DESC.html         |  278 ---
     .../ns-8/sources/source-1.html                |  305 ----
     .../ns-8/sources/source-2.html                |  293 ----
     .../ns-8/sources/source-3.html                |  655 -------
     .../ns-8/sources/source-4.html                |  120 --
     .../ns-8/sources/source-5.html                |  222 ---
     .../ns-8/sources/source-6.html                |  467 -----
     .../ns-8/sources/source-7.html                |  113 --
     .../ns-9/index.html                           |  251 ---
     .../ns-9/index_SORT_BY_BLOCK.html             |  251 ---
     .../ns-9/index_SORT_BY_BLOCK_DESC.html        |  251 ---
     .../ns-9/index_SORT_BY_CLASS.html             |  251 ---
     .../ns-9/index_SORT_BY_CLASS_DESC.html        |  251 ---
     .../ns-9/index_SORT_BY_LINE.html              |  251 ---
     .../ns-9/index_SORT_BY_LINE_DESC.html         |  251 ---
     .../ns-9/index_SORT_BY_METHOD.html            |  251 ---
     .../ns-9/index_SORT_BY_METHOD_DESC.html       |  251 ---
     .../ns-9/index_SORT_BY_NAME_DESC.html         |  251 ---
     .../ns-9/sources/source-1.html                |  184 --
     .../ns-9/sources/source-2.html                |  546 ------
     .../ns-9/sources/source-3.html                |  125 --
     .../ns-9/sources/source-4.html                |  418 -----
     .../ns-9/sources/source-5.html                |  210 ---
     .../ns-9/sources/source-6.html                |  103 --
     .../ns-a/index.html                           |  143 --
     .../ns-a/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-a/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-a/index_SORT_BY_CLASS.html             |  143 --
     .../ns-a/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-a/index_SORT_BY_LINE.html              |  143 --
     .../ns-a/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-a/index_SORT_BY_METHOD.html            |  143 --
     .../ns-a/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-a/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-a/sources/source-1.html                |  205 ---
     .../ns-b/index.html                           |  143 --
     .../ns-b/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-b/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-b/index_SORT_BY_CLASS.html             |  143 --
     .../ns-b/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-b/index_SORT_BY_LINE.html              |  143 --
     .../ns-b/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-b/index_SORT_BY_METHOD.html            |  143 --
     .../ns-b/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-b/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-b/sources/source-1.html                |  142 --
     .../ns-b/sources/source-2.html                |  268 ---
     .../ns-c/index.html                           |  170 --
     .../ns-c/index_SORT_BY_BLOCK.html             |  170 --
     .../ns-c/index_SORT_BY_BLOCK_DESC.html        |  170 --
     .../ns-c/index_SORT_BY_CLASS.html             |  170 --
     .../ns-c/index_SORT_BY_CLASS_DESC.html        |  170 --
     .../ns-c/index_SORT_BY_LINE.html              |  170 --
     .../ns-c/index_SORT_BY_LINE_DESC.html         |  170 --
     .../ns-c/index_SORT_BY_METHOD.html            |  170 --
     .../ns-c/index_SORT_BY_METHOD_DESC.html       |  170 --
     .../ns-c/index_SORT_BY_NAME_DESC.html         |  170 --
     .../ns-c/sources/source-1.html                |  140 --
     .../ns-c/sources/source-2.html                |  268 ---
     .../ns-c/sources/source-3.html                |  330 ----
     .../ns-c/sources/source-4.html                |  138 --
     .../ns-c/sources/source-5.html                |  166 --
     .../ns-d/index.html                           |  251 ---
     .../ns-d/index_SORT_BY_BLOCK.html             |  251 ---
     .../ns-d/index_SORT_BY_BLOCK_DESC.html        |  251 ---
     .../ns-d/index_SORT_BY_CLASS.html             |  251 ---
     .../ns-d/index_SORT_BY_CLASS_DESC.html        |  251 ---
     .../ns-d/index_SORT_BY_LINE.html              |  251 ---
     .../ns-d/index_SORT_BY_LINE_DESC.html         |  251 ---
     .../ns-d/index_SORT_BY_METHOD.html            |  251 ---
     .../ns-d/index_SORT_BY_METHOD_DESC.html       |  251 ---
     .../ns-d/index_SORT_BY_NAME_DESC.html         |  251 ---
     .../ns-d/sources/source-1.html                |  165 --
     .../ns-d/sources/source-2.html                |  146 --
     .../ns-d/sources/source-3.html                |  330 ----
     .../ns-d/sources/source-4.html                |  138 --
     .../ns-d/sources/source-5.html                |  166 --
     .../ns-d/sources/source-6.html                |  308 ----
     .../ns-d/sources/source-7.html                |  138 --
     .../ns-d/sources/source-8.html                |  182 --
     .../ns-e/index.html                           |  332 ----
     .../ns-e/index_SORT_BY_BLOCK.html             |  332 ----
     .../ns-e/index_SORT_BY_BLOCK_DESC.html        |  332 ----
     .../ns-e/index_SORT_BY_CLASS.html             |  332 ----
     .../ns-e/index_SORT_BY_CLASS_DESC.html        |  332 ----
     .../ns-e/index_SORT_BY_LINE.html              |  332 ----
     .../ns-e/index_SORT_BY_LINE_DESC.html         |  332 ----
     .../ns-e/index_SORT_BY_METHOD.html            |  332 ----
     .../ns-e/index_SORT_BY_METHOD_DESC.html       |  332 ----
     .../ns-e/index_SORT_BY_NAME_DESC.html         |  332 ----
     .../ns-e/sources/source-1.html                |  152 --
     .../ns-e/sources/source-2.html                |  137 --
     .../ns-e/sources/source-3.html                |  285 ----
     .../ns-e/sources/source-4.html                |  229 ---
     .../ns-e/sources/source-5.html                |  147 --
     .../ns-e/sources/source-6.html                |  308 ----
     .../ns-e/sources/source-7.html                |  138 --
     .../ns-e/sources/source-8.html                |  182 --
     .../ns-f/index.html                           |  143 --
     .../ns-f/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-f/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-f/index_SORT_BY_CLASS.html             |  143 --
     .../ns-f/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-f/index_SORT_BY_LINE.html              |  143 --
     .../ns-f/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-f/index_SORT_BY_METHOD.html            |  143 --
     .../ns-f/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-f/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-f/sources/source-1.html                |  189 ---
     .../css/coverage.css                          |  154 --
     .../css/idea.min.css                          |  118 --
     .../img/arrowDown.gif                         |  Bin 89 -> 0 bytes
     .../img/arrowUp.gif                           |  Bin 91 -> 0 bytes
     .../index.html                                | 1314 --------------
     .../index_SORT_BY_BLOCK.html                  | 1314 --------------
     .../index_SORT_BY_BLOCK_DESC.html             | 1314 --------------
     .../index_SORT_BY_CLASS.html                  | 1314 --------------
     .../index_SORT_BY_CLASS_DESC.html             | 1314 --------------
     .../index_SORT_BY_LINE.html                   | 1314 --------------
     .../index_SORT_BY_LINE_DESC.html              | 1314 --------------
     .../index_SORT_BY_METHOD.html                 | 1314 --------------
     .../index_SORT_BY_METHOD_DESC.html            | 1314 --------------
     .../index_SORT_BY_NAME_DESC.html              | 1314 --------------
     .../js/highlight.min.js                       | 1388 ---------------
     .../js/highlightjs-line-numbers.min.js        |   24 -
     .../ns-1/index.html                           | 1413 ---------------
     .../ns-1/index_SORT_BY_BLOCK.html             | 1413 ---------------
     .../ns-1/index_SORT_BY_BLOCK_DESC.html        | 1413 ---------------
     .../ns-1/index_SORT_BY_CLASS.html             | 1413 ---------------
     .../ns-1/index_SORT_BY_CLASS_DESC.html        | 1413 ---------------
     .../ns-1/index_SORT_BY_LINE.html              | 1413 ---------------
     .../ns-1/index_SORT_BY_LINE_DESC.html         | 1413 ---------------
     .../ns-1/index_SORT_BY_METHOD.html            | 1413 ---------------
     .../ns-1/index_SORT_BY_METHOD_DESC.html       | 1413 ---------------
     .../ns-1/index_SORT_BY_NAME_DESC.html         | 1413 ---------------
     .../ns-1/sources/source-1.html                |  190 ---
     .../ns-1/sources/source-10.html               |  203 ---
     .../ns-1/sources/source-11.html               |  485 ------
     .../ns-1/sources/source-12.html               |  222 ---
     .../ns-1/sources/source-13.html               |  137 --
     .../ns-1/sources/source-14.html               |  136 --
     .../ns-1/sources/source-15.html               | 1046 ------------
     .../ns-1/sources/source-16.html               |  275 ---
     .../ns-1/sources/source-17.html               | 1117 ------------
     .../ns-1/sources/source-18.html               |  216 ---
     .../ns-1/sources/source-19.html               |  495 ------
     .../ns-1/sources/source-1a.html               |  223 ---
     .../ns-1/sources/source-1b.html               |  810 ---------
     .../ns-1/sources/source-1c.html               |  217 ---
     .../ns-1/sources/source-1d.html               |  217 ---
     .../ns-1/sources/source-1e.html               |  161 --
     .../ns-1/sources/source-1f.html               |  149 --
     .../ns-1/sources/source-2.html                |  353 ----
     .../ns-1/sources/source-20.html               |  313 ----
     .../ns-1/sources/source-21.html               |  211 ---
     .../ns-1/sources/source-22.html               |  159 --
     .../ns-1/sources/source-23.html               |  286 ----
     .../ns-1/sources/source-24.html               |  353 ----
     .../ns-1/sources/source-25.html               |  186 --
     .../ns-1/sources/source-26.html               |  293 ----
     .../ns-1/sources/source-27.html               |  345 ----
     .../ns-1/sources/source-28.html               |   85 -
     .../ns-1/sources/source-29.html               |  116 --
     .../ns-1/sources/source-2a.html               |   89 -
     .../ns-1/sources/source-2b.html               |   82 -
     .../ns-1/sources/source-2c.html               |   81 -
     .../ns-1/sources/source-2d.html               |  116 --
     .../ns-1/sources/source-2e.html               |  104 --
     .../ns-1/sources/source-2f.html               |   85 -
     .../ns-1/sources/source-3.html                |  231 ---
     .../ns-1/sources/source-30.html               |   78 -
     .../ns-1/sources/source-31.html               |  103 --
     .../ns-1/sources/source-32.html               |   81 -
     .../ns-1/sources/source-4.html                |  510 ------
     .../ns-1/sources/source-5.html                |  160 --
     .../ns-1/sources/source-6.html                |  497 ------
     .../ns-1/sources/source-7.html                |  147 --
     .../ns-1/sources/source-8.html                |  137 --
     .../ns-1/sources/source-9.html                |  224 ---
     .../ns-1/sources/source-a.html                |  193 ---
     .../ns-1/sources/source-b.html                |  323 ----
     .../ns-1/sources/source-c.html                |  125 --
     .../ns-1/sources/source-d.html                |  162 --
     .../ns-1/sources/source-e.html                |  410 -----
     .../ns-1/sources/source-f.html                |  493 ------
     .../ns-10/index.html                          |  305 ----
     .../ns-10/index_SORT_BY_BLOCK.html            |  305 ----
     .../ns-10/index_SORT_BY_BLOCK_DESC.html       |  305 ----
     .../ns-10/index_SORT_BY_CLASS.html            |  305 ----
     .../ns-10/index_SORT_BY_CLASS_DESC.html       |  305 ----
     .../ns-10/index_SORT_BY_LINE.html             |  305 ----
     .../ns-10/index_SORT_BY_LINE_DESC.html        |  305 ----
     .../ns-10/index_SORT_BY_METHOD.html           |  305 ----
     .../ns-10/index_SORT_BY_METHOD_DESC.html      |  305 ----
     .../ns-10/index_SORT_BY_NAME_DESC.html        |  305 ----
     .../ns-10/sources/source-1.html               |  112 --
     .../ns-10/sources/source-2.html               |  119 --
     .../ns-10/sources/source-3.html               |  135 --
     .../ns-10/sources/source-4.html               |  116 --
     .../ns-10/sources/source-5.html               |  422 -----
     .../ns-10/sources/source-6.html               |  239 ---
     .../ns-10/sources/source-7.html               |  124 --
     .../ns-10/sources/source-8.html               |   78 -
     .../ns-11/index.html                          |  170 --
     .../ns-11/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-11/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-11/index_SORT_BY_CLASS.html            |  170 --
     .../ns-11/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-11/index_SORT_BY_LINE.html             |  170 --
     .../ns-11/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-11/index_SORT_BY_METHOD.html           |  170 --
     .../ns-11/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-11/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-11/sources/source-1.html               |  152 --
     .../ns-11/sources/source-2.html               |  145 --
     .../ns-12/index.html                          |  278 ---
     .../ns-12/index_SORT_BY_BLOCK.html            |  278 ---
     .../ns-12/index_SORT_BY_BLOCK_DESC.html       |  278 ---
     .../ns-12/index_SORT_BY_CLASS.html            |  278 ---
     .../ns-12/index_SORT_BY_CLASS_DESC.html       |  278 ---
     .../ns-12/index_SORT_BY_LINE.html             |  278 ---
     .../ns-12/index_SORT_BY_LINE_DESC.html        |  278 ---
     .../ns-12/index_SORT_BY_METHOD.html           |  278 ---
     .../ns-12/index_SORT_BY_METHOD_DESC.html      |  278 ---
     .../ns-12/index_SORT_BY_NAME_DESC.html        |  278 ---
     .../ns-12/sources/source-1.html               |  116 --
     .../ns-12/sources/source-2.html               |  246 ---
     .../ns-12/sources/source-3.html               |  136 --
     .../ns-12/sources/source-4.html               |  116 --
     .../ns-12/sources/source-5.html               |  117 --
     .../ns-12/sources/source-6.html               |  151 --
     .../ns-12/sources/source-7.html               |   89 -
     .../ns-13/index.html                          |  170 --
     .../ns-13/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-13/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-13/index_SORT_BY_CLASS.html            |  170 --
     .../ns-13/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-13/index_SORT_BY_LINE.html             |  170 --
     .../ns-13/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-13/index_SORT_BY_METHOD.html           |  170 --
     .../ns-13/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-13/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-13/sources/source-1.html               |  831 ---------
     .../ns-13/sources/source-2.html               |  201 ---
     .../ns-14/index.html                          |  170 --
     .../ns-14/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-14/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-14/index_SORT_BY_CLASS.html            |  170 --
     .../ns-14/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-14/index_SORT_BY_LINE.html             |  170 --
     .../ns-14/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-14/index_SORT_BY_METHOD.html           |  170 --
     .../ns-14/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-14/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-14/sources/source-1.html               |  832 ---------
     .../ns-14/sources/source-2.html               |  201 ---
     .../ns-15/index.html                          |  251 ---
     .../ns-15/index_SORT_BY_BLOCK.html            |  251 ---
     .../ns-15/index_SORT_BY_BLOCK_DESC.html       |  251 ---
     .../ns-15/index_SORT_BY_CLASS.html            |  251 ---
     .../ns-15/index_SORT_BY_CLASS_DESC.html       |  251 ---
     .../ns-15/index_SORT_BY_LINE.html             |  251 ---
     .../ns-15/index_SORT_BY_LINE_DESC.html        |  251 ---
     .../ns-15/index_SORT_BY_METHOD.html           |  251 ---
     .../ns-15/index_SORT_BY_METHOD_DESC.html      |  251 ---
     .../ns-15/index_SORT_BY_NAME_DESC.html        |  251 ---
     .../ns-15/sources/source-1.html               |  193 ---
     .../ns-15/sources/source-2.html               |  754 --------
     .../ns-15/sources/source-3.html               |  708 --------
     .../ns-15/sources/source-4.html               |  286 ----
     .../ns-16/index.html                          |  170 --
     .../ns-16/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-16/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-16/index_SORT_BY_CLASS.html            |  170 --
     .../ns-16/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-16/index_SORT_BY_LINE.html             |  170 --
     .../ns-16/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-16/index_SORT_BY_METHOD.html           |  170 --
     .../ns-16/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-16/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-16/sources/source-1.html               |  173 --
     .../ns-16/sources/source-2.html               | 1061 ------------
     .../ns-16/sources/source-3.html               |   85 -
     .../ns-17/index.html                          |  170 --
     .../ns-17/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-17/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-17/index_SORT_BY_CLASS.html            |  170 --
     .../ns-17/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-17/index_SORT_BY_LINE.html             |  170 --
     .../ns-17/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-17/index_SORT_BY_METHOD.html           |  170 --
     .../ns-17/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-17/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-17/sources/source-1.html               |  217 ---
     .../ns-17/sources/source-2.html               |  489 ------
     .../ns-18/index.html                          |  440 -----
     .../ns-18/index_SORT_BY_BLOCK.html            |  440 -----
     .../ns-18/index_SORT_BY_BLOCK_DESC.html       |  440 -----
     .../ns-18/index_SORT_BY_CLASS.html            |  440 -----
     .../ns-18/index_SORT_BY_CLASS_DESC.html       |  440 -----
     .../ns-18/index_SORT_BY_LINE.html             |  440 -----
     .../ns-18/index_SORT_BY_LINE_DESC.html        |  440 -----
     .../ns-18/index_SORT_BY_METHOD.html           |  440 -----
     .../ns-18/index_SORT_BY_METHOD_DESC.html      |  440 -----
     .../ns-18/index_SORT_BY_NAME_DESC.html        |  440 -----
     .../ns-18/sources/source-1.html               |  156 --
     .../ns-18/sources/source-2.html               |  184 --
     .../ns-18/sources/source-3.html               |  139 --
     .../ns-18/sources/source-4.html               |  123 --
     .../ns-18/sources/source-5.html               |  154 --
     .../ns-18/sources/source-6.html               |  157 --
     .../ns-18/sources/source-7.html               |  165 --
     .../ns-18/sources/source-8.html               |  155 --
     .../ns-18/sources/source-9.html               |  274 ---
     .../ns-18/sources/source-a.html               |  169 --
     .../ns-18/sources/source-b.html               |  217 ---
     .../ns-18/sources/source-c.html               |  185 --
     .../ns-19/index.html                          |  143 --
     .../ns-19/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-19/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-19/index_SORT_BY_CLASS.html            |  143 --
     .../ns-19/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-19/index_SORT_BY_LINE.html             |  143 --
     .../ns-19/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-19/index_SORT_BY_METHOD.html           |  143 --
     .../ns-19/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-19/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-19/sources/source-1.html               |  268 ---
     .../ns-1a/index.html                          |  143 --
     .../ns-1a/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-1a/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-1a/index_SORT_BY_CLASS.html            |  143 --
     .../ns-1a/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-1a/index_SORT_BY_LINE.html             |  143 --
     .../ns-1a/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-1a/index_SORT_BY_METHOD.html           |  143 --
     .../ns-1a/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-1a/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-1a/sources/source-1.html               |  195 ---
     .../ns-1b/index.html                          |  223 ---
     .../ns-1b/index_SORT_BY_BLOCK.html            |  223 ---
     .../ns-1b/index_SORT_BY_BLOCK_DESC.html       |  223 ---
     .../ns-1b/index_SORT_BY_CLASS.html            |  223 ---
     .../ns-1b/index_SORT_BY_CLASS_DESC.html       |  223 ---
     .../ns-1b/index_SORT_BY_LINE.html             |  223 ---
     .../ns-1b/index_SORT_BY_LINE_DESC.html        |  223 ---
     .../ns-1b/index_SORT_BY_METHOD.html           |  223 ---
     .../ns-1b/index_SORT_BY_METHOD_DESC.html      |  223 ---
     .../ns-1b/index_SORT_BY_NAME_DESC.html        |  223 ---
     .../ns-1b/sources/source-1.html               |  387 -----
     .../ns-1b/sources/source-2.html               |  152 --
     .../ns-1b/sources/source-3.html               |  131 --
     .../ns-1c/index.html                          |  278 ---
     .../ns-1c/index_SORT_BY_BLOCK.html            |  278 ---
     .../ns-1c/index_SORT_BY_BLOCK_DESC.html       |  278 ---
     .../ns-1c/index_SORT_BY_CLASS.html            |  278 ---
     .../ns-1c/index_SORT_BY_CLASS_DESC.html       |  278 ---
     .../ns-1c/index_SORT_BY_LINE.html             |  278 ---
     .../ns-1c/index_SORT_BY_LINE_DESC.html        |  278 ---
     .../ns-1c/index_SORT_BY_METHOD.html           |  278 ---
     .../ns-1c/index_SORT_BY_METHOD_DESC.html      |  278 ---
     .../ns-1c/index_SORT_BY_NAME_DESC.html        |  278 ---
     .../ns-1c/sources/source-1.html               |  293 ----
     .../ns-1c/sources/source-2.html               |  183 --
     .../ns-1c/sources/source-3.html               |  325 ----
     .../ns-1c/sources/source-4.html               |  329 ----
     .../ns-1c/sources/source-5.html               |  134 --
     .../ns-1c/sources/source-6.html               |  159 --
     .../ns-1d/index.html                          |  143 --
     .../ns-1d/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-1d/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-1d/index_SORT_BY_CLASS.html            |  143 --
     .../ns-1d/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-1d/index_SORT_BY_LINE.html             |  143 --
     .../ns-1d/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-1d/index_SORT_BY_METHOD.html           |  143 --
     .../ns-1d/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-1d/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-1d/sources/source-1.html               |  220 ---
     .../ns-1e/index.html                          |  170 --
     .../ns-1e/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-1e/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-1e/index_SORT_BY_CLASS.html            |  170 --
     .../ns-1e/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-1e/index_SORT_BY_LINE.html             |  170 --
     .../ns-1e/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-1e/index_SORT_BY_METHOD.html           |  170 --
     .../ns-1e/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-1e/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-1e/sources/source-1.html               |  831 ---------
     .../ns-1e/sources/source-2.html               |  201 ---
     .../ns-1f/index.html                          |  251 ---
     .../ns-1f/index_SORT_BY_BLOCK.html            |  251 ---
     .../ns-1f/index_SORT_BY_BLOCK_DESC.html       |  251 ---
     .../ns-1f/index_SORT_BY_CLASS.html            |  251 ---
     .../ns-1f/index_SORT_BY_CLASS_DESC.html       |  251 ---
     .../ns-1f/index_SORT_BY_LINE.html             |  251 ---
     .../ns-1f/index_SORT_BY_LINE_DESC.html        |  251 ---
     .../ns-1f/index_SORT_BY_METHOD.html           |  251 ---
     .../ns-1f/index_SORT_BY_METHOD_DESC.html      |  251 ---
     .../ns-1f/index_SORT_BY_NAME_DESC.html        |  251 ---
     .../ns-1f/sources/source-1.html               |  193 ---
     .../ns-1f/sources/source-2.html               |  746 --------
     .../ns-1f/sources/source-3.html               |  706 --------
     .../ns-1f/sources/source-4.html               |  345 ----
     .../ns-2/index.html                           |  143 --
     .../ns-2/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-2/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-2/index_SORT_BY_CLASS.html             |  143 --
     .../ns-2/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-2/index_SORT_BY_LINE.html              |  143 --
     .../ns-2/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-2/index_SORT_BY_METHOD.html            |  143 --
     .../ns-2/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-2/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-2/sources/source-1.html                |  127 --
     .../ns-2/sources/source-2.html                |  121 --
     .../ns-2/sources/source-3.html                |  107 --
     .../ns-2/sources/source-4.html                |  121 --
     .../ns-2/sources/source-5.html                |  116 --
     .../ns-2/sources/source-6.html                |  107 --
     .../ns-2/sources/source-7.html                |  103 --
     .../ns-2/sources/source-8.html                |  133 --
     .../ns-2/sources/source-9.html                |  113 --
     .../ns-20/index.html                          |  251 ---
     .../ns-20/index_SORT_BY_BLOCK.html            |  251 ---
     .../ns-20/index_SORT_BY_BLOCK_DESC.html       |  251 ---
     .../ns-20/index_SORT_BY_CLASS.html            |  251 ---
     .../ns-20/index_SORT_BY_CLASS_DESC.html       |  251 ---
     .../ns-20/index_SORT_BY_LINE.html             |  251 ---
     .../ns-20/index_SORT_BY_LINE_DESC.html        |  251 ---
     .../ns-20/index_SORT_BY_METHOD.html           |  251 ---
     .../ns-20/index_SORT_BY_METHOD_DESC.html      |  251 ---
     .../ns-20/index_SORT_BY_NAME_DESC.html        |  251 ---
     .../ns-20/sources/source-1.html               |  193 ---
     .../ns-20/sources/source-2.html               |  745 --------
     .../ns-20/sources/source-3.html               |  706 --------
     .../ns-20/sources/source-4.html               |  345 ----
     .../ns-21/index.html                          |  197 ---
     .../ns-21/index_SORT_BY_BLOCK.html            |  197 ---
     .../ns-21/index_SORT_BY_BLOCK_DESC.html       |  197 ---
     .../ns-21/index_SORT_BY_CLASS.html            |  197 ---
     .../ns-21/index_SORT_BY_CLASS_DESC.html       |  197 ---
     .../ns-21/index_SORT_BY_LINE.html             |  197 ---
     .../ns-21/index_SORT_BY_LINE_DESC.html        |  197 ---
     .../ns-21/index_SORT_BY_METHOD.html           |  197 ---
     .../ns-21/index_SORT_BY_METHOD_DESC.html      |  197 ---
     .../ns-21/index_SORT_BY_NAME_DESC.html        |  197 ---
     .../ns-21/sources/source-1.html               |  584 -------
     .../ns-21/sources/source-2.html               |  193 ---
     .../ns-21/sources/source-3.html               |  336 ----
     .../ns-22/index.html                          |  167 --
     .../ns-22/index_SORT_BY_BLOCK.html            |  167 --
     .../ns-22/index_SORT_BY_BLOCK_DESC.html       |  167 --
     .../ns-22/index_SORT_BY_CLASS.html            |  167 --
     .../ns-22/index_SORT_BY_CLASS_DESC.html       |  167 --
     .../ns-22/index_SORT_BY_LINE.html             |  167 --
     .../ns-22/index_SORT_BY_LINE_DESC.html        |  167 --
     .../ns-22/index_SORT_BY_METHOD.html           |  167 --
     .../ns-22/index_SORT_BY_METHOD_DESC.html      |  167 --
     .../ns-22/index_SORT_BY_NAME_DESC.html        |  167 --
     .../ns-22/sources/source-1.html               |  348 ----
     .../ns-23/index.html                          |  143 --
     .../ns-23/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-23/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-23/index_SORT_BY_CLASS.html            |  143 --
     .../ns-23/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-23/index_SORT_BY_LINE.html             |  143 --
     .../ns-23/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-23/index_SORT_BY_METHOD.html           |  143 --
     .../ns-23/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-23/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-23/sources/source-1.html               |  195 ---
     .../ns-24/index.html                          |  143 --
     .../ns-24/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-24/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-24/index_SORT_BY_CLASS.html            |  143 --
     .../ns-24/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-24/index_SORT_BY_LINE.html             |  143 --
     .../ns-24/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-24/index_SORT_BY_METHOD.html           |  143 --
     .../ns-24/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-24/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-24/sources/source-1.html               |  195 ---
     .../ns-25/index.html                          |  143 --
     .../ns-25/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-25/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-25/index_SORT_BY_CLASS.html            |  143 --
     .../ns-25/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-25/index_SORT_BY_LINE.html             |  143 --
     .../ns-25/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-25/index_SORT_BY_METHOD.html           |  143 --
     .../ns-25/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-25/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-25/sources/source-1.html               |  195 ---
     .../ns-26/index.html                          |  223 ---
     .../ns-26/index_SORT_BY_BLOCK.html            |  223 ---
     .../ns-26/index_SORT_BY_BLOCK_DESC.html       |  223 ---
     .../ns-26/index_SORT_BY_CLASS.html            |  223 ---
     .../ns-26/index_SORT_BY_CLASS_DESC.html       |  223 ---
     .../ns-26/index_SORT_BY_LINE.html             |  223 ---
     .../ns-26/index_SORT_BY_LINE_DESC.html        |  223 ---
     .../ns-26/index_SORT_BY_METHOD.html           |  223 ---
     .../ns-26/index_SORT_BY_METHOD_DESC.html      |  223 ---
     .../ns-26/index_SORT_BY_NAME_DESC.html        |  223 ---
     .../ns-26/sources/source-1.html               |  387 -----
     .../ns-26/sources/source-2.html               |  152 --
     .../ns-26/sources/source-3.html               |  130 --
     .../ns-27/index.html                          |  223 ---
     .../ns-27/index_SORT_BY_BLOCK.html            |  223 ---
     .../ns-27/index_SORT_BY_BLOCK_DESC.html       |  223 ---
     .../ns-27/index_SORT_BY_CLASS.html            |  223 ---
     .../ns-27/index_SORT_BY_CLASS_DESC.html       |  223 ---
     .../ns-27/index_SORT_BY_LINE.html             |  223 ---
     .../ns-27/index_SORT_BY_LINE_DESC.html        |  223 ---
     .../ns-27/index_SORT_BY_METHOD.html           |  223 ---
     .../ns-27/index_SORT_BY_METHOD_DESC.html      |  223 ---
     .../ns-27/index_SORT_BY_NAME_DESC.html        |  223 ---
     .../ns-27/sources/source-1.html               |  380 -----
     .../ns-27/sources/source-2.html               |  152 --
     .../ns-27/sources/source-3.html               |  130 --
     .../ns-28/index.html                          |  278 ---
     .../ns-28/index_SORT_BY_BLOCK.html            |  278 ---
     .../ns-28/index_SORT_BY_BLOCK_DESC.html       |  278 ---
     .../ns-28/index_SORT_BY_CLASS.html            |  278 ---
     .../ns-28/index_SORT_BY_CLASS_DESC.html       |  278 ---
     .../ns-28/index_SORT_BY_LINE.html             |  278 ---
     .../ns-28/index_SORT_BY_LINE_DESC.html        |  278 ---
     .../ns-28/index_SORT_BY_METHOD.html           |  278 ---
     .../ns-28/index_SORT_BY_METHOD_DESC.html      |  278 ---
     .../ns-28/index_SORT_BY_NAME_DESC.html        |  278 ---
     .../ns-28/sources/source-1.html               |  294 ----
     .../ns-28/sources/source-2.html               |  183 --
     .../ns-28/sources/source-3.html               |  325 ----
     .../ns-28/sources/source-4.html               |  328 ----
     .../ns-28/sources/source-5.html               |  135 --
     .../ns-28/sources/source-6.html               |  159 --
     .../ns-3/index.html                           |  251 ---
     .../ns-3/index_SORT_BY_BLOCK.html             |  251 ---
     .../ns-3/index_SORT_BY_BLOCK_DESC.html        |  251 ---
     .../ns-3/index_SORT_BY_CLASS.html             |  251 ---
     .../ns-3/index_SORT_BY_CLASS_DESC.html        |  251 ---
     .../ns-3/index_SORT_BY_LINE.html              |  251 ---
     .../ns-3/index_SORT_BY_LINE_DESC.html         |  251 ---
     .../ns-3/index_SORT_BY_METHOD.html            |  251 ---
     .../ns-3/index_SORT_BY_METHOD_DESC.html       |  251 ---
     .../ns-3/index_SORT_BY_NAME_DESC.html         |  251 ---
     .../ns-3/sources/source-1.html                |  176 --
     .../ns-3/sources/source-2.html                |  142 --
     .../ns-3/sources/source-3.html                |  142 --
     .../ns-3/sources/source-4.html                |  192 ---
     .../ns-3/sources/source-5.html                |  184 --
     .../ns-4/index.html                           |  167 --
     .../ns-4/index_SORT_BY_BLOCK.html             |  167 --
     .../ns-4/index_SORT_BY_BLOCK_DESC.html        |  167 --
     .../ns-4/index_SORT_BY_CLASS.html             |  167 --
     .../ns-4/index_SORT_BY_CLASS_DESC.html        |  167 --
     .../ns-4/index_SORT_BY_LINE.html              |  167 --
     .../ns-4/index_SORT_BY_LINE_DESC.html         |  167 --
     .../ns-4/index_SORT_BY_METHOD.html            |  167 --
     .../ns-4/index_SORT_BY_METHOD_DESC.html       |  167 --
     .../ns-4/index_SORT_BY_NAME_DESC.html         |  167 --
     .../ns-4/sources/source-1.html                |  250 ---
     .../ns-5/index.html                           |  305 ----
     .../ns-5/index_SORT_BY_BLOCK.html             |  305 ----
     .../ns-5/index_SORT_BY_BLOCK_DESC.html        |  305 ----
     .../ns-5/index_SORT_BY_CLASS.html             |  305 ----
     .../ns-5/index_SORT_BY_CLASS_DESC.html        |  305 ----
     .../ns-5/index_SORT_BY_LINE.html              |  305 ----
     .../ns-5/index_SORT_BY_LINE_DESC.html         |  305 ----
     .../ns-5/index_SORT_BY_METHOD.html            |  305 ----
     .../ns-5/index_SORT_BY_METHOD_DESC.html       |  305 ----
     .../ns-5/index_SORT_BY_NAME_DESC.html         |  305 ----
     .../ns-5/sources/source-1.html                |  470 -----
     .../ns-5/sources/source-2.html                |  228 ---
     .../ns-5/sources/source-3.html                |  424 -----
     .../ns-5/sources/source-4.html                |  150 --
     .../ns-5/sources/source-5.html                |  134 --
     .../ns-5/sources/source-6.html                |  112 --
     .../ns-5/sources/source-7.html                |  154 --
     .../ns-6/index.html                           |  170 --
     .../ns-6/index_SORT_BY_BLOCK.html             |  170 --
     .../ns-6/index_SORT_BY_BLOCK_DESC.html        |  170 --
     .../ns-6/index_SORT_BY_CLASS.html             |  170 --
     .../ns-6/index_SORT_BY_CLASS_DESC.html        |  170 --
     .../ns-6/index_SORT_BY_LINE.html              |  170 --
     .../ns-6/index_SORT_BY_LINE_DESC.html         |  170 --
     .../ns-6/index_SORT_BY_METHOD.html            |  170 --
     .../ns-6/index_SORT_BY_METHOD_DESC.html       |  170 --
     .../ns-6/index_SORT_BY_NAME_DESC.html         |  170 --
     .../ns-6/sources/source-1.html                |  128 --
     .../ns-6/sources/source-2.html                |  335 ----
     .../ns-7/index.html                           |  278 ---
     .../ns-7/index_SORT_BY_BLOCK.html             |  278 ---
     .../ns-7/index_SORT_BY_BLOCK_DESC.html        |  278 ---
     .../ns-7/index_SORT_BY_CLASS.html             |  278 ---
     .../ns-7/index_SORT_BY_CLASS_DESC.html        |  278 ---
     .../ns-7/index_SORT_BY_LINE.html              |  278 ---
     .../ns-7/index_SORT_BY_LINE_DESC.html         |  278 ---
     .../ns-7/index_SORT_BY_METHOD.html            |  278 ---
     .../ns-7/index_SORT_BY_METHOD_DESC.html       |  278 ---
     .../ns-7/index_SORT_BY_NAME_DESC.html         |  278 ---
     .../ns-7/sources/source-1.html                |  305 ----
     .../ns-7/sources/source-2.html                |  293 ----
     .../ns-7/sources/source-3.html                |  655 -------
     .../ns-7/sources/source-4.html                |  120 --
     .../ns-7/sources/source-5.html                |  222 ---
     .../ns-7/sources/source-6.html                |  467 -----
     .../ns-7/sources/source-7.html                |  113 --
     .../ns-8/index.html                           |  251 ---
     .../ns-8/index_SORT_BY_BLOCK.html             |  251 ---
     .../ns-8/index_SORT_BY_BLOCK_DESC.html        |  251 ---
     .../ns-8/index_SORT_BY_CLASS.html             |  251 ---
     .../ns-8/index_SORT_BY_CLASS_DESC.html        |  251 ---
     .../ns-8/index_SORT_BY_LINE.html              |  251 ---
     .../ns-8/index_SORT_BY_LINE_DESC.html         |  251 ---
     .../ns-8/index_SORT_BY_METHOD.html            |  251 ---
     .../ns-8/index_SORT_BY_METHOD_DESC.html       |  251 ---
     .../ns-8/index_SORT_BY_NAME_DESC.html         |  251 ---
     .../ns-8/sources/source-1.html                |  184 --
     .../ns-8/sources/source-2.html                |  546 ------
     .../ns-8/sources/source-3.html                |  125 --
     .../ns-8/sources/source-4.html                |  418 -----
     .../ns-8/sources/source-5.html                |  210 ---
     .../ns-8/sources/source-6.html                |  103 --
     .../ns-9/index.html                           |  143 --
     .../ns-9/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-9/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-9/index_SORT_BY_CLASS.html             |  143 --
     .../ns-9/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-9/index_SORT_BY_LINE.html              |  143 --
     .../ns-9/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-9/index_SORT_BY_METHOD.html            |  143 --
     .../ns-9/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-9/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-9/sources/source-1.html                |  205 ---
     .../ns-a/index.html                           |  143 --
     .../ns-a/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-a/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-a/index_SORT_BY_CLASS.html             |  143 --
     .../ns-a/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-a/index_SORT_BY_LINE.html              |  143 --
     .../ns-a/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-a/index_SORT_BY_METHOD.html            |  143 --
     .../ns-a/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-a/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-a/sources/source-1.html                |  142 --
     .../ns-b/index.html                           |  170 --
     .../ns-b/index_SORT_BY_BLOCK.html             |  170 --
     .../ns-b/index_SORT_BY_BLOCK_DESC.html        |  170 --
     .../ns-b/index_SORT_BY_CLASS.html             |  170 --
     .../ns-b/index_SORT_BY_CLASS_DESC.html        |  170 --
     .../ns-b/index_SORT_BY_LINE.html              |  170 --
     .../ns-b/index_SORT_BY_LINE_DESC.html         |  170 --
     .../ns-b/index_SORT_BY_METHOD.html            |  170 --
     .../ns-b/index_SORT_BY_METHOD_DESC.html       |  170 --
     .../ns-b/index_SORT_BY_NAME_DESC.html         |  170 --
     .../ns-b/sources/source-1.html                |  140 --
     .../ns-b/sources/source-2.html                |  268 ---
     .../ns-c/index.html                           |  251 ---
     .../ns-c/index_SORT_BY_BLOCK.html             |  251 ---
     .../ns-c/index_SORT_BY_BLOCK_DESC.html        |  251 ---
     .../ns-c/index_SORT_BY_CLASS.html             |  251 ---
     .../ns-c/index_SORT_BY_CLASS_DESC.html        |  251 ---
     .../ns-c/index_SORT_BY_LINE.html              |  251 ---
     .../ns-c/index_SORT_BY_LINE_DESC.html         |  251 ---
     .../ns-c/index_SORT_BY_METHOD.html            |  251 ---
     .../ns-c/index_SORT_BY_METHOD_DESC.html       |  251 ---
     .../ns-c/index_SORT_BY_NAME_DESC.html         |  251 ---
     .../ns-c/sources/source-1.html                |  165 --
     .../ns-c/sources/source-2.html                |  146 --
     .../ns-c/sources/source-3.html                |  330 ----
     .../ns-c/sources/source-4.html                |  138 --
     .../ns-c/sources/source-5.html                |  166 --
     .../ns-d/index.html                           |  332 ----
     .../ns-d/index_SORT_BY_BLOCK.html             |  332 ----
     .../ns-d/index_SORT_BY_BLOCK_DESC.html        |  332 ----
     .../ns-d/index_SORT_BY_CLASS.html             |  332 ----
     .../ns-d/index_SORT_BY_CLASS_DESC.html        |  332 ----
     .../ns-d/index_SORT_BY_LINE.html              |  332 ----
     .../ns-d/index_SORT_BY_LINE_DESC.html         |  332 ----
     .../ns-d/index_SORT_BY_METHOD.html            |  332 ----
     .../ns-d/index_SORT_BY_METHOD_DESC.html       |  332 ----
     .../ns-d/index_SORT_BY_NAME_DESC.html         |  332 ----
     .../ns-d/sources/source-1.html                |  152 --
     .../ns-d/sources/source-2.html                |  137 --
     .../ns-d/sources/source-3.html                |  285 ----
     .../ns-d/sources/source-4.html                |  229 ---
     .../ns-d/sources/source-5.html                |  147 --
     .../ns-d/sources/source-6.html                |  308 ----
     .../ns-d/sources/source-7.html                |  138 --
     .../ns-d/sources/source-8.html                |  182 --
     .../ns-e/index.html                           |  143 --
     .../ns-e/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-e/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-e/index_SORT_BY_CLASS.html             |  143 --
     .../ns-e/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-e/index_SORT_BY_LINE.html              |  143 --
     .../ns-e/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-e/index_SORT_BY_METHOD.html            |  143 --
     .../ns-e/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-e/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-e/sources/source-1.html                |  189 ---
     .../ns-f/index.html                           |  143 --
     .../ns-f/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-f/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-f/index_SORT_BY_CLASS.html             |  143 --
     .../ns-f/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-f/index_SORT_BY_LINE.html              |  143 --
     .../ns-f/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-f/index_SORT_BY_METHOD.html            |  143 --
     .../ns-f/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-f/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-f/sources/source-1.html                |  143 --
     .../css/coverage.css                          |  154 --
     .../css/idea.min.css                          |  118 --
     .../img/arrowDown.gif                         |  Bin 89 -> 0 bytes
     .../img/arrowUp.gif                           |  Bin 91 -> 0 bytes
     .../index.html                                | 1195 -------------
     .../index_SORT_BY_BLOCK.html                  | 1195 -------------
     .../index_SORT_BY_BLOCK_DESC.html             | 1195 -------------
     .../index_SORT_BY_CLASS.html                  | 1195 -------------
     .../index_SORT_BY_CLASS_DESC.html             | 1195 -------------
     .../index_SORT_BY_LINE.html                   | 1195 -------------
     .../index_SORT_BY_LINE_DESC.html              | 1195 -------------
     .../index_SORT_BY_METHOD.html                 | 1195 -------------
     .../index_SORT_BY_METHOD_DESC.html            | 1195 -------------
     .../index_SORT_BY_NAME_DESC.html              | 1195 -------------
     .../js/highlight.min.js                       | 1388 ---------------
     .../js/highlightjs-line-numbers.min.js        |   24 -
     .../ns-1/index.html                           | 1169 -------------
     .../ns-1/index_SORT_BY_BLOCK.html             | 1169 -------------
     .../ns-1/index_SORT_BY_BLOCK_DESC.html        | 1169 -------------
     .../ns-1/index_SORT_BY_CLASS.html             | 1169 -------------
     .../ns-1/index_SORT_BY_CLASS_DESC.html        | 1169 -------------
     .../ns-1/index_SORT_BY_LINE.html              | 1169 -------------
     .../ns-1/index_SORT_BY_LINE_DESC.html         | 1169 -------------
     .../ns-1/index_SORT_BY_METHOD.html            | 1169 -------------
     .../ns-1/index_SORT_BY_METHOD_DESC.html       | 1169 -------------
     .../ns-1/index_SORT_BY_NAME_DESC.html         | 1169 -------------
     .../ns-1/sources/source-1.html                |  178 --
     .../ns-1/sources/source-10.html               |  203 ---
     .../ns-1/sources/source-11.html               |  441 -----
     .../ns-1/sources/source-12.html               |  210 ---
     .../ns-1/sources/source-13.html               |  137 --
     .../ns-1/sources/source-14.html               |  136 --
     .../ns-1/sources/source-15.html               | 1026 -----------
     .../ns-1/sources/source-16.html               |  284 ----
     .../ns-1/sources/source-17.html               | 1097 ------------
     .../ns-1/sources/source-18.html               |  196 ---
     .../ns-1/sources/source-19.html               |  467 -----
     .../ns-1/sources/source-1a.html               |  211 ---
     .../ns-1/sources/source-1b.html               |  782 ---------
     .../ns-1/sources/source-1c.html               |  205 ---
     .../ns-1/sources/source-1d.html               |  197 ---
     .../ns-1/sources/source-1e.html               |  149 --
     .../ns-1/sources/source-1f.html               |  149 --
     .../ns-1/sources/source-2.html                |  333 ----
     .../ns-1/sources/source-20.html               |  301 ----
     .../ns-1/sources/source-21.html               |  199 ---
     .../ns-1/sources/source-22.html               |  147 --
     .../ns-1/sources/source-23.html               |  286 ----
     .../ns-1/sources/source-24.html               |  333 ----
     .../ns-1/sources/source-25.html               |  174 --
     .../ns-1/sources/source-26.html               |  281 ---
     .../ns-1/sources/source-27.html               |  325 ----
     .../ns-1/sources/source-28.html               |   81 -
     .../ns-1/sources/source-29.html               |   81 -
     .../ns-1/sources/source-2a.html               |  103 --
     .../ns-1/sources/source-2b.html               |   98 --
     .../ns-1/sources/source-2c.html               |   85 -
     .../ns-1/sources/source-2d.html               |  113 --
     .../ns-1/sources/source-2e.html               |   78 -
     .../ns-1/sources/source-2f.html               |  116 --
     .../ns-1/sources/source-3.html                |  240 ---
     .../ns-1/sources/source-30.html               |   94 -
     .../ns-1/sources/source-31.html               |   82 -
     .../ns-1/sources/source-32.html               |  116 --
     .../ns-1/sources/source-4.html                |  490 ------
     .../ns-1/sources/source-5.html                |  160 --
     .../ns-1/sources/source-6.html                |  477 ------
     .../ns-1/sources/source-7.html                |  147 --
     .../ns-1/sources/source-8.html                |  137 --
     .../ns-1/sources/source-9.html                |  212 ---
     .../ns-1/sources/source-a.html                |  181 --
     .../ns-1/sources/source-b.html                |  311 ----
     .../ns-1/sources/source-c.html                |  125 --
     .../ns-1/sources/source-d.html                |  162 --
     .../ns-1/sources/source-e.html                |  390 -----
     .../ns-1/sources/source-f.html                |  465 -----
     .../ns-10/index.html                          |  305 ----
     .../ns-10/index_SORT_BY_BLOCK.html            |  305 ----
     .../ns-10/index_SORT_BY_BLOCK_DESC.html       |  305 ----
     .../ns-10/index_SORT_BY_CLASS.html            |  305 ----
     .../ns-10/index_SORT_BY_CLASS_DESC.html       |  305 ----
     .../ns-10/index_SORT_BY_LINE.html             |  305 ----
     .../ns-10/index_SORT_BY_LINE_DESC.html        |  305 ----
     .../ns-10/index_SORT_BY_METHOD.html           |  305 ----
     .../ns-10/index_SORT_BY_METHOD_DESC.html      |  305 ----
     .../ns-10/index_SORT_BY_NAME_DESC.html        |  305 ----
     .../ns-10/sources/source-1.html               |  112 --
     .../ns-10/sources/source-2.html               |  119 --
     .../ns-10/sources/source-3.html               |  135 --
     .../ns-10/sources/source-4.html               |  116 --
     .../ns-10/sources/source-5.html               |  422 -----
     .../ns-10/sources/source-6.html               |  239 ---
     .../ns-10/sources/source-7.html               |  124 --
     .../ns-10/sources/source-8.html               |   78 -
     .../ns-11/index.html                          |  170 --
     .../ns-11/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-11/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-11/index_SORT_BY_CLASS.html            |  170 --
     .../ns-11/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-11/index_SORT_BY_LINE.html             |  170 --
     .../ns-11/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-11/index_SORT_BY_METHOD.html           |  170 --
     .../ns-11/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-11/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-11/sources/source-1.html               |  152 --
     .../ns-11/sources/source-2.html               |  145 --
     .../ns-12/index.html                          |  278 ---
     .../ns-12/index_SORT_BY_BLOCK.html            |  278 ---
     .../ns-12/index_SORT_BY_BLOCK_DESC.html       |  278 ---
     .../ns-12/index_SORT_BY_CLASS.html            |  278 ---
     .../ns-12/index_SORT_BY_CLASS_DESC.html       |  278 ---
     .../ns-12/index_SORT_BY_LINE.html             |  278 ---
     .../ns-12/index_SORT_BY_LINE_DESC.html        |  278 ---
     .../ns-12/index_SORT_BY_METHOD.html           |  278 ---
     .../ns-12/index_SORT_BY_METHOD_DESC.html      |  278 ---
     .../ns-12/index_SORT_BY_NAME_DESC.html        |  278 ---
     .../ns-12/sources/source-1.html               |  116 --
     .../ns-12/sources/source-2.html               |  246 ---
     .../ns-12/sources/source-3.html               |  136 --
     .../ns-12/sources/source-4.html               |  116 --
     .../ns-12/sources/source-5.html               |  117 --
     .../ns-12/sources/source-6.html               |  151 --
     .../ns-12/sources/source-7.html               |   89 -
     .../ns-13/index.html                          |  170 --
     .../ns-13/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-13/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-13/index_SORT_BY_CLASS.html            |  170 --
     .../ns-13/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-13/index_SORT_BY_LINE.html             |  170 --
     .../ns-13/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-13/index_SORT_BY_METHOD.html           |  170 --
     .../ns-13/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-13/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-13/sources/source-1.html               |  831 ---------
     .../ns-13/sources/source-2.html               |  201 ---
     .../ns-14/index.html                          |  170 --
     .../ns-14/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-14/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-14/index_SORT_BY_CLASS.html            |  170 --
     .../ns-14/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-14/index_SORT_BY_LINE.html             |  170 --
     .../ns-14/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-14/index_SORT_BY_METHOD.html           |  170 --
     .../ns-14/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-14/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-14/sources/source-1.html               |  832 ---------
     .../ns-14/sources/source-2.html               |  201 ---
     .../ns-15/index.html                          |  224 ---
     .../ns-15/index_SORT_BY_BLOCK.html            |  224 ---
     .../ns-15/index_SORT_BY_BLOCK_DESC.html       |  224 ---
     .../ns-15/index_SORT_BY_CLASS.html            |  224 ---
     .../ns-15/index_SORT_BY_CLASS_DESC.html       |  224 ---
     .../ns-15/index_SORT_BY_LINE.html             |  224 ---
     .../ns-15/index_SORT_BY_LINE_DESC.html        |  224 ---
     .../ns-15/index_SORT_BY_METHOD.html           |  224 ---
     .../ns-15/index_SORT_BY_METHOD_DESC.html      |  224 ---
     .../ns-15/index_SORT_BY_NAME_DESC.html        |  224 ---
     .../ns-15/sources/source-1.html               |  193 ---
     .../ns-15/sources/source-2.html               |  734 --------
     .../ns-15/sources/source-3.html               |  708 --------
     .../ns-15/sources/source-4.html               |  286 ----
     .../ns-16/index.html                          |  170 --
     .../ns-16/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-16/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-16/index_SORT_BY_CLASS.html            |  170 --
     .../ns-16/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-16/index_SORT_BY_LINE.html             |  170 --
     .../ns-16/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-16/index_SORT_BY_METHOD.html           |  170 --
     .../ns-16/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-16/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-16/sources/source-1.html               |  173 --
     .../ns-16/sources/source-2.html               | 1061 ------------
     .../ns-16/sources/source-3.html               |   85 -
     .../ns-17/index.html                          |  170 --
     .../ns-17/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-17/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-17/index_SORT_BY_CLASS.html            |  170 --
     .../ns-17/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-17/index_SORT_BY_LINE.html             |  170 --
     .../ns-17/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-17/index_SORT_BY_METHOD.html           |  170 --
     .../ns-17/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-17/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-17/sources/source-1.html               |  217 ---
     .../ns-17/sources/source-2.html               |  489 ------
     .../ns-18/index.html                          |  440 -----
     .../ns-18/index_SORT_BY_BLOCK.html            |  440 -----
     .../ns-18/index_SORT_BY_BLOCK_DESC.html       |  440 -----
     .../ns-18/index_SORT_BY_CLASS.html            |  440 -----
     .../ns-18/index_SORT_BY_CLASS_DESC.html       |  440 -----
     .../ns-18/index_SORT_BY_LINE.html             |  440 -----
     .../ns-18/index_SORT_BY_LINE_DESC.html        |  440 -----
     .../ns-18/index_SORT_BY_METHOD.html           |  440 -----
     .../ns-18/index_SORT_BY_METHOD_DESC.html      |  440 -----
     .../ns-18/index_SORT_BY_NAME_DESC.html        |  440 -----
     .../ns-18/sources/source-1.html               |  156 --
     .../ns-18/sources/source-2.html               |  184 --
     .../ns-18/sources/source-3.html               |  139 --
     .../ns-18/sources/source-4.html               |  123 --
     .../ns-18/sources/source-5.html               |  154 --
     .../ns-18/sources/source-6.html               |  157 --
     .../ns-18/sources/source-7.html               |  165 --
     .../ns-18/sources/source-8.html               |  155 --
     .../ns-18/sources/source-9.html               |  274 ---
     .../ns-18/sources/source-a.html               |  169 --
     .../ns-18/sources/source-b.html               |  217 ---
     .../ns-18/sources/source-c.html               |  185 --
     .../ns-19/index.html                          |  143 --
     .../ns-19/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-19/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-19/index_SORT_BY_CLASS.html            |  143 --
     .../ns-19/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-19/index_SORT_BY_LINE.html             |  143 --
     .../ns-19/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-19/index_SORT_BY_METHOD.html           |  143 --
     .../ns-19/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-19/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-19/sources/source-1.html               |  268 ---
     .../ns-1a/index.html                          |  143 --
     .../ns-1a/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-1a/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-1a/index_SORT_BY_CLASS.html            |  143 --
     .../ns-1a/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-1a/index_SORT_BY_LINE.html             |  143 --
     .../ns-1a/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-1a/index_SORT_BY_METHOD.html           |  143 --
     .../ns-1a/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-1a/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-1a/sources/source-1.html               |  195 ---
     .../ns-1b/index.html                          |  197 ---
     .../ns-1b/index_SORT_BY_BLOCK.html            |  197 ---
     .../ns-1b/index_SORT_BY_BLOCK_DESC.html       |  197 ---
     .../ns-1b/index_SORT_BY_CLASS.html            |  197 ---
     .../ns-1b/index_SORT_BY_CLASS_DESC.html       |  197 ---
     .../ns-1b/index_SORT_BY_LINE.html             |  197 ---
     .../ns-1b/index_SORT_BY_LINE_DESC.html        |  197 ---
     .../ns-1b/index_SORT_BY_METHOD.html           |  197 ---
     .../ns-1b/index_SORT_BY_METHOD_DESC.html      |  197 ---
     .../ns-1b/index_SORT_BY_NAME_DESC.html        |  197 ---
     .../ns-1b/sources/source-1.html               |  367 ----
     .../ns-1b/sources/source-2.html               |  152 --
     .../ns-1b/sources/source-3.html               |  131 --
     .../ns-1c/index.html                          |  278 ---
     .../ns-1c/index_SORT_BY_BLOCK.html            |  278 ---
     .../ns-1c/index_SORT_BY_BLOCK_DESC.html       |  278 ---
     .../ns-1c/index_SORT_BY_CLASS.html            |  278 ---
     .../ns-1c/index_SORT_BY_CLASS_DESC.html       |  278 ---
     .../ns-1c/index_SORT_BY_LINE.html             |  278 ---
     .../ns-1c/index_SORT_BY_LINE_DESC.html        |  278 ---
     .../ns-1c/index_SORT_BY_METHOD.html           |  278 ---
     .../ns-1c/index_SORT_BY_METHOD_DESC.html      |  278 ---
     .../ns-1c/index_SORT_BY_NAME_DESC.html        |  278 ---
     .../ns-1c/sources/source-1.html               |  293 ----
     .../ns-1c/sources/source-2.html               |  183 --
     .../ns-1c/sources/source-3.html               |  325 ----
     .../ns-1c/sources/source-4.html               |  329 ----
     .../ns-1c/sources/source-5.html               |  134 --
     .../ns-1c/sources/source-6.html               |  159 --
     .../ns-1d/index.html                          |  143 --
     .../ns-1d/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-1d/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-1d/index_SORT_BY_CLASS.html            |  143 --
     .../ns-1d/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-1d/index_SORT_BY_LINE.html             |  143 --
     .../ns-1d/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-1d/index_SORT_BY_METHOD.html           |  143 --
     .../ns-1d/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-1d/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-1d/sources/source-1.html               |  220 ---
     .../ns-1e/index.html                          |  170 --
     .../ns-1e/index_SORT_BY_BLOCK.html            |  170 --
     .../ns-1e/index_SORT_BY_BLOCK_DESC.html       |  170 --
     .../ns-1e/index_SORT_BY_CLASS.html            |  170 --
     .../ns-1e/index_SORT_BY_CLASS_DESC.html       |  170 --
     .../ns-1e/index_SORT_BY_LINE.html             |  170 --
     .../ns-1e/index_SORT_BY_LINE_DESC.html        |  170 --
     .../ns-1e/index_SORT_BY_METHOD.html           |  170 --
     .../ns-1e/index_SORT_BY_METHOD_DESC.html      |  170 --
     .../ns-1e/index_SORT_BY_NAME_DESC.html        |  170 --
     .../ns-1e/sources/source-1.html               |  831 ---------
     .../ns-1e/sources/source-2.html               |  201 ---
     .../ns-1f/index.html                          |  224 ---
     .../ns-1f/index_SORT_BY_BLOCK.html            |  224 ---
     .../ns-1f/index_SORT_BY_BLOCK_DESC.html       |  224 ---
     .../ns-1f/index_SORT_BY_CLASS.html            |  224 ---
     .../ns-1f/index_SORT_BY_CLASS_DESC.html       |  224 ---
     .../ns-1f/index_SORT_BY_LINE.html             |  224 ---
     .../ns-1f/index_SORT_BY_LINE_DESC.html        |  224 ---
     .../ns-1f/index_SORT_BY_METHOD.html           |  224 ---
     .../ns-1f/index_SORT_BY_METHOD_DESC.html      |  224 ---
     .../ns-1f/index_SORT_BY_NAME_DESC.html        |  224 ---
     .../ns-1f/sources/source-1.html               |  193 ---
     .../ns-1f/sources/source-2.html               |  726 --------
     .../ns-1f/sources/source-3.html               |  706 --------
     .../ns-1f/sources/source-4.html               |  345 ----
     .../ns-2/index.html                           |  143 --
     .../ns-2/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-2/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-2/index_SORT_BY_CLASS.html             |  143 --
     .../ns-2/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-2/index_SORT_BY_LINE.html              |  143 --
     .../ns-2/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-2/index_SORT_BY_METHOD.html            |  143 --
     .../ns-2/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-2/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-2/sources/source-1.html                |  127 --
     .../ns-2/sources/source-2.html                |  107 --
     .../ns-2/sources/source-3.html                |  116 --
     .../ns-2/sources/source-4.html                |  133 --
     .../ns-2/sources/source-5.html                |  113 --
     .../ns-2/sources/source-6.html                |  103 --
     .../ns-2/sources/source-7.html                |  121 --
     .../ns-2/sources/source-8.html                |  121 --
     .../ns-2/sources/source-9.html                |  107 --
     .../ns-20/index.html                          |  224 ---
     .../ns-20/index_SORT_BY_BLOCK.html            |  224 ---
     .../ns-20/index_SORT_BY_BLOCK_DESC.html       |  224 ---
     .../ns-20/index_SORT_BY_CLASS.html            |  224 ---
     .../ns-20/index_SORT_BY_CLASS_DESC.html       |  224 ---
     .../ns-20/index_SORT_BY_LINE.html             |  224 ---
     .../ns-20/index_SORT_BY_LINE_DESC.html        |  224 ---
     .../ns-20/index_SORT_BY_METHOD.html           |  224 ---
     .../ns-20/index_SORT_BY_METHOD_DESC.html      |  224 ---
     .../ns-20/index_SORT_BY_NAME_DESC.html        |  224 ---
     .../ns-20/sources/source-1.html               |  193 ---
     .../ns-20/sources/source-2.html               |  725 --------
     .../ns-20/sources/source-3.html               |  706 --------
     .../ns-20/sources/source-4.html               |  345 ----
     .../ns-21/index.html                          |  197 ---
     .../ns-21/index_SORT_BY_BLOCK.html            |  197 ---
     .../ns-21/index_SORT_BY_BLOCK_DESC.html       |  197 ---
     .../ns-21/index_SORT_BY_CLASS.html            |  197 ---
     .../ns-21/index_SORT_BY_CLASS_DESC.html       |  197 ---
     .../ns-21/index_SORT_BY_LINE.html             |  197 ---
     .../ns-21/index_SORT_BY_LINE_DESC.html        |  197 ---
     .../ns-21/index_SORT_BY_METHOD.html           |  197 ---
     .../ns-21/index_SORT_BY_METHOD_DESC.html      |  197 ---
     .../ns-21/index_SORT_BY_NAME_DESC.html        |  197 ---
     .../ns-21/sources/source-1.html               |  584 -------
     .../ns-21/sources/source-2.html               |  193 ---
     .../ns-21/sources/source-3.html               |  336 ----
     .../ns-22/index.html                          |  143 --
     .../ns-22/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-22/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-22/index_SORT_BY_CLASS.html            |  143 --
     .../ns-22/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-22/index_SORT_BY_LINE.html             |  143 --
     .../ns-22/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-22/index_SORT_BY_METHOD.html           |  143 --
     .../ns-22/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-22/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-22/sources/source-1.html               |  328 ----
     .../ns-23/index.html                          |  143 --
     .../ns-23/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-23/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-23/index_SORT_BY_CLASS.html            |  143 --
     .../ns-23/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-23/index_SORT_BY_LINE.html             |  143 --
     .../ns-23/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-23/index_SORT_BY_METHOD.html           |  143 --
     .../ns-23/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-23/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-23/sources/source-1.html               |  195 ---
     .../ns-24/index.html                          |  143 --
     .../ns-24/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-24/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-24/index_SORT_BY_CLASS.html            |  143 --
     .../ns-24/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-24/index_SORT_BY_LINE.html             |  143 --
     .../ns-24/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-24/index_SORT_BY_METHOD.html           |  143 --
     .../ns-24/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-24/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-24/sources/source-1.html               |  195 ---
     .../ns-25/index.html                          |  143 --
     .../ns-25/index_SORT_BY_BLOCK.html            |  143 --
     .../ns-25/index_SORT_BY_BLOCK_DESC.html       |  143 --
     .../ns-25/index_SORT_BY_CLASS.html            |  143 --
     .../ns-25/index_SORT_BY_CLASS_DESC.html       |  143 --
     .../ns-25/index_SORT_BY_LINE.html             |  143 --
     .../ns-25/index_SORT_BY_LINE_DESC.html        |  143 --
     .../ns-25/index_SORT_BY_METHOD.html           |  143 --
     .../ns-25/index_SORT_BY_METHOD_DESC.html      |  143 --
     .../ns-25/index_SORT_BY_NAME_DESC.html        |  143 --
     .../ns-25/sources/source-1.html               |  195 ---
     .../ns-26/index.html                          |  197 ---
     .../ns-26/index_SORT_BY_BLOCK.html            |  197 ---
     .../ns-26/index_SORT_BY_BLOCK_DESC.html       |  197 ---
     .../ns-26/index_SORT_BY_CLASS.html            |  197 ---
     .../ns-26/index_SORT_BY_CLASS_DESC.html       |  197 ---
     .../ns-26/index_SORT_BY_LINE.html             |  197 ---
     .../ns-26/index_SORT_BY_LINE_DESC.html        |  197 ---
     .../ns-26/index_SORT_BY_METHOD.html           |  197 ---
     .../ns-26/index_SORT_BY_METHOD_DESC.html      |  197 ---
     .../ns-26/index_SORT_BY_NAME_DESC.html        |  197 ---
     .../ns-26/sources/source-1.html               |  367 ----
     .../ns-26/sources/source-2.html               |  152 --
     .../ns-26/sources/source-3.html               |  130 --
     .../ns-27/index.html                          |  197 ---
     .../ns-27/index_SORT_BY_BLOCK.html            |  197 ---
     .../ns-27/index_SORT_BY_BLOCK_DESC.html       |  197 ---
     .../ns-27/index_SORT_BY_CLASS.html            |  197 ---
     .../ns-27/index_SORT_BY_CLASS_DESC.html       |  197 ---
     .../ns-27/index_SORT_BY_LINE.html             |  197 ---
     .../ns-27/index_SORT_BY_LINE_DESC.html        |  197 ---
     .../ns-27/index_SORT_BY_METHOD.html           |  197 ---
     .../ns-27/index_SORT_BY_METHOD_DESC.html      |  197 ---
     .../ns-27/index_SORT_BY_NAME_DESC.html        |  197 ---
     .../ns-27/sources/source-1.html               |  360 ----
     .../ns-27/sources/source-2.html               |  152 --
     .../ns-27/sources/source-3.html               |  130 --
     .../ns-28/index.html                          |  278 ---
     .../ns-28/index_SORT_BY_BLOCK.html            |  278 ---
     .../ns-28/index_SORT_BY_BLOCK_DESC.html       |  278 ---
     .../ns-28/index_SORT_BY_CLASS.html            |  278 ---
     .../ns-28/index_SORT_BY_CLASS_DESC.html       |  278 ---
     .../ns-28/index_SORT_BY_LINE.html             |  278 ---
     .../ns-28/index_SORT_BY_LINE_DESC.html        |  278 ---
     .../ns-28/index_SORT_BY_METHOD.html           |  278 ---
     .../ns-28/index_SORT_BY_METHOD_DESC.html      |  278 ---
     .../ns-28/index_SORT_BY_NAME_DESC.html        |  278 ---
     .../ns-28/sources/source-1.html               |  294 ----
     .../ns-28/sources/source-2.html               |  183 --
     .../ns-28/sources/source-3.html               |  325 ----
     .../ns-28/sources/source-4.html               |  328 ----
     .../ns-28/sources/source-5.html               |  135 --
     .../ns-28/sources/source-6.html               |  159 --
     .../ns-3/index.html                           |  251 ---
     .../ns-3/index_SORT_BY_BLOCK.html             |  251 ---
     .../ns-3/index_SORT_BY_BLOCK_DESC.html        |  251 ---
     .../ns-3/index_SORT_BY_CLASS.html             |  251 ---
     .../ns-3/index_SORT_BY_CLASS_DESC.html        |  251 ---
     .../ns-3/index_SORT_BY_LINE.html              |  251 ---
     .../ns-3/index_SORT_BY_LINE_DESC.html         |  251 ---
     .../ns-3/index_SORT_BY_METHOD.html            |  251 ---
     .../ns-3/index_SORT_BY_METHOD_DESC.html       |  251 ---
     .../ns-3/index_SORT_BY_NAME_DESC.html         |  251 ---
     .../ns-3/sources/source-1.html                |  176 --
     .../ns-3/sources/source-2.html                |  142 --
     .../ns-3/sources/source-3.html                |  142 --
     .../ns-3/sources/source-4.html                |  192 ---
     .../ns-3/sources/source-5.html                |  184 --
     .../ns-4/index.html                           |  143 --
     .../ns-4/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-4/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-4/index_SORT_BY_CLASS.html             |  143 --
     .../ns-4/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-4/index_SORT_BY_LINE.html              |  143 --
     .../ns-4/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-4/index_SORT_BY_METHOD.html            |  143 --
     .../ns-4/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-4/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-4/sources/source-1.html                |  238 ---
     .../ns-5/index.html                           |  305 ----
     .../ns-5/index_SORT_BY_BLOCK.html             |  305 ----
     .../ns-5/index_SORT_BY_BLOCK_DESC.html        |  305 ----
     .../ns-5/index_SORT_BY_CLASS.html             |  305 ----
     .../ns-5/index_SORT_BY_CLASS_DESC.html        |  305 ----
     .../ns-5/index_SORT_BY_LINE.html              |  305 ----
     .../ns-5/index_SORT_BY_LINE_DESC.html         |  305 ----
     .../ns-5/index_SORT_BY_METHOD.html            |  305 ----
     .../ns-5/index_SORT_BY_METHOD_DESC.html       |  305 ----
     .../ns-5/index_SORT_BY_NAME_DESC.html         |  305 ----
     .../ns-5/sources/source-1.html                |  470 -----
     .../ns-5/sources/source-2.html                |  228 ---
     .../ns-5/sources/source-3.html                |  424 -----
     .../ns-5/sources/source-4.html                |  150 --
     .../ns-5/sources/source-5.html                |  134 --
     .../ns-5/sources/source-6.html                |  112 --
     .../ns-5/sources/source-7.html                |  154 --
     .../ns-6/index.html                           |  170 --
     .../ns-6/index_SORT_BY_BLOCK.html             |  170 --
     .../ns-6/index_SORT_BY_BLOCK_DESC.html        |  170 --
     .../ns-6/index_SORT_BY_CLASS.html             |  170 --
     .../ns-6/index_SORT_BY_CLASS_DESC.html        |  170 --
     .../ns-6/index_SORT_BY_LINE.html              |  170 --
     .../ns-6/index_SORT_BY_LINE_DESC.html         |  170 --
     .../ns-6/index_SORT_BY_METHOD.html            |  170 --
     .../ns-6/index_SORT_BY_METHOD_DESC.html       |  170 --
     .../ns-6/index_SORT_BY_NAME_DESC.html         |  170 --
     .../ns-6/sources/source-1.html                |  128 --
     .../ns-6/sources/source-2.html                |  335 ----
     .../ns-7/index.html                           |  278 ---
     .../ns-7/index_SORT_BY_BLOCK.html             |  278 ---
     .../ns-7/index_SORT_BY_BLOCK_DESC.html        |  278 ---
     .../ns-7/index_SORT_BY_CLASS.html             |  278 ---
     .../ns-7/index_SORT_BY_CLASS_DESC.html        |  278 ---
     .../ns-7/index_SORT_BY_LINE.html              |  278 ---
     .../ns-7/index_SORT_BY_LINE_DESC.html         |  278 ---
     .../ns-7/index_SORT_BY_METHOD.html            |  278 ---
     .../ns-7/index_SORT_BY_METHOD_DESC.html       |  278 ---
     .../ns-7/index_SORT_BY_NAME_DESC.html         |  278 ---
     .../ns-7/sources/source-1.html                |  305 ----
     .../ns-7/sources/source-2.html                |  293 ----
     .../ns-7/sources/source-3.html                |  655 -------
     .../ns-7/sources/source-4.html                |  120 --
     .../ns-7/sources/source-5.html                |  222 ---
     .../ns-7/sources/source-6.html                |  467 -----
     .../ns-7/sources/source-7.html                |  113 --
     .../ns-8/index.html                           |  251 ---
     .../ns-8/index_SORT_BY_BLOCK.html             |  251 ---
     .../ns-8/index_SORT_BY_BLOCK_DESC.html        |  251 ---
     .../ns-8/index_SORT_BY_CLASS.html             |  251 ---
     .../ns-8/index_SORT_BY_CLASS_DESC.html        |  251 ---
     .../ns-8/index_SORT_BY_LINE.html              |  251 ---
     .../ns-8/index_SORT_BY_LINE_DESC.html         |  251 ---
     .../ns-8/index_SORT_BY_METHOD.html            |  251 ---
     .../ns-8/index_SORT_BY_METHOD_DESC.html       |  251 ---
     .../ns-8/index_SORT_BY_NAME_DESC.html         |  251 ---
     .../ns-8/sources/source-1.html                |  184 --
     .../ns-8/sources/source-2.html                |  546 ------
     .../ns-8/sources/source-3.html                |  125 --
     .../ns-8/sources/source-4.html                |  418 -----
     .../ns-8/sources/source-5.html                |  210 ---
     .../ns-8/sources/source-6.html                |  103 --
     .../ns-9/index.html                           |  143 --
     .../ns-9/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-9/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-9/index_SORT_BY_CLASS.html             |  143 --
     .../ns-9/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-9/index_SORT_BY_LINE.html              |  143 --
     .../ns-9/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-9/index_SORT_BY_METHOD.html            |  143 --
     .../ns-9/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-9/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-9/sources/source-1.html                |  205 ---
     .../ns-a/index.html                           |  143 --
     .../ns-a/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-a/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-a/index_SORT_BY_CLASS.html             |  143 --
     .../ns-a/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-a/index_SORT_BY_LINE.html              |  143 --
     .../ns-a/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-a/index_SORT_BY_METHOD.html            |  143 --
     .../ns-a/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-a/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-a/sources/source-1.html                |  142 --
     .../ns-b/index.html                           |  170 --
     .../ns-b/index_SORT_BY_BLOCK.html             |  170 --
     .../ns-b/index_SORT_BY_BLOCK_DESC.html        |  170 --
     .../ns-b/index_SORT_BY_CLASS.html             |  170 --
     .../ns-b/index_SORT_BY_CLASS_DESC.html        |  170 --
     .../ns-b/index_SORT_BY_LINE.html              |  170 --
     .../ns-b/index_SORT_BY_LINE_DESC.html         |  170 --
     .../ns-b/index_SORT_BY_METHOD.html            |  170 --
     .../ns-b/index_SORT_BY_METHOD_DESC.html       |  170 --
     .../ns-b/index_SORT_BY_NAME_DESC.html         |  170 --
     .../ns-b/sources/source-1.html                |  140 --
     .../ns-b/sources/source-2.html                |  268 ---
     .../ns-c/index.html                           |  251 ---
     .../ns-c/index_SORT_BY_BLOCK.html             |  251 ---
     .../ns-c/index_SORT_BY_BLOCK_DESC.html        |  251 ---
     .../ns-c/index_SORT_BY_CLASS.html             |  251 ---
     .../ns-c/index_SORT_BY_CLASS_DESC.html        |  251 ---
     .../ns-c/index_SORT_BY_LINE.html              |  251 ---
     .../ns-c/index_SORT_BY_LINE_DESC.html         |  251 ---
     .../ns-c/index_SORT_BY_METHOD.html            |  251 ---
     .../ns-c/index_SORT_BY_METHOD_DESC.html       |  251 ---
     .../ns-c/index_SORT_BY_NAME_DESC.html         |  251 ---
     .../ns-c/sources/source-1.html                |  165 --
     .../ns-c/sources/source-2.html                |  146 --
     .../ns-c/sources/source-3.html                |  330 ----
     .../ns-c/sources/source-4.html                |  138 --
     .../ns-c/sources/source-5.html                |  166 --
     .../ns-d/index.html                           |  332 ----
     .../ns-d/index_SORT_BY_BLOCK.html             |  332 ----
     .../ns-d/index_SORT_BY_BLOCK_DESC.html        |  332 ----
     .../ns-d/index_SORT_BY_CLASS.html             |  332 ----
     .../ns-d/index_SORT_BY_CLASS_DESC.html        |  332 ----
     .../ns-d/index_SORT_BY_LINE.html              |  332 ----
     .../ns-d/index_SORT_BY_LINE_DESC.html         |  332 ----
     .../ns-d/index_SORT_BY_METHOD.html            |  332 ----
     .../ns-d/index_SORT_BY_METHOD_DESC.html       |  332 ----
     .../ns-d/index_SORT_BY_NAME_DESC.html         |  332 ----
     .../ns-d/sources/source-1.html                |  152 --
     .../ns-d/sources/source-2.html                |  137 --
     .../ns-d/sources/source-3.html                |  285 ----
     .../ns-d/sources/source-4.html                |  229 ---
     .../ns-d/sources/source-5.html                |  147 --
     .../ns-d/sources/source-6.html                |  308 ----
     .../ns-d/sources/source-7.html                |  138 --
     .../ns-d/sources/source-8.html                |  182 --
     .../ns-e/index.html                           |  143 --
     .../ns-e/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-e/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-e/index_SORT_BY_CLASS.html             |  143 --
     .../ns-e/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-e/index_SORT_BY_LINE.html              |  143 --
     .../ns-e/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-e/index_SORT_BY_METHOD.html            |  143 --
     .../ns-e/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-e/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-e/sources/source-1.html                |  189 ---
     .../ns-f/index.html                           |  143 --
     .../ns-f/index_SORT_BY_BLOCK.html             |  143 --
     .../ns-f/index_SORT_BY_BLOCK_DESC.html        |  143 --
     .../ns-f/index_SORT_BY_CLASS.html             |  143 --
     .../ns-f/index_SORT_BY_CLASS_DESC.html        |  143 --
     .../ns-f/index_SORT_BY_LINE.html              |  143 --
     .../ns-f/index_SORT_BY_LINE_DESC.html         |  143 --
     .../ns-f/index_SORT_BY_METHOD.html            |  143 --
     .../ns-f/index_SORT_BY_METHOD_DESC.html       |  143 --
     .../ns-f/index_SORT_BY_NAME_DESC.html         |  143 --
     .../ns-f/sources/source-1.html                |  143 --
     .../InstrumentedAppender.html                 |    1 -
     .../InstrumentedAppender.java.html            |  139 --
     .../InstrumentedAppenderConfigTest.html       |    1 -
     .../InstrumentedAppenderConfigTest.java.html  |   67 -
     .../InstrumentedAppenderTest.html             |    1 -
     .../InstrumentedAppenderTest.java.html        |  130 --
     .../com.codahale.metrics.log4j2/index.html    |    1 -
     .../index.source.html                         |    1 -
     .../com.codahale.metrics/CachedGauge.html     |    1 -
     .../CachedGauge.java.html                     |   75 -
     .../CachedGaugeTest$1.html                    |    1 -
     .../CachedGaugeTest$2.html                    |    1 -
     .../CachedGaugeTest$3.html                    |    1 -
     .../CachedGaugeTest$4.html                    |    1 -
     .../com.codahale.metrics/CachedGaugeTest.html |    1 -
     .../CachedGaugeTest.java.html                 |  132 --
     .../ChunkedAssociativeLongArray$Chunk.html    |    1 -
     .../ChunkedAssociativeLongArray.html          |    1 -
     .../ChunkedAssociativeLongArray.java.html     |  201 ---
     .../ChunkedAssociativeLongArrayTest.html      |    1 -
     .../ChunkedAssociativeLongArrayTest.java.html |   41 -
     .../ClassMetadataTest.html                    |    1 -
     .../ClassMetadataTest.java.html               |   14 -
     .../Clock$UserTimeClock.html                  |    1 -
     .../Clock$UserTimeClockHolder.html            |    1 -
     .../com.codahale.metrics/Clock.html           |    1 -
     .../com.codahale.metrics/Clock.java.html      |   47 -
     .../com.codahale.metrics/ClockTest.html       |    1 -
     .../com.codahale.metrics/ClockTest.java.html  |   29 -
     .../ConsoleReporter$Builder.html              |    1 -
     .../com.codahale.metrics/ConsoleReporter.html |    1 -
     .../ConsoleReporter.java.html                 |  358 ----
     .../ConsoleReporterTest.html                  |    1 -
     .../ConsoleReporterTest.java.html             |  418 -----
     .../com.codahale.metrics/Counter.html         |    1 -
     .../com.codahale.metrics/Counter.java.html    |   57 -
     .../com.codahale.metrics/CounterTest.html     |    1 -
     .../CounterTest.java.html                     |   64 -
     .../CsvReporter$Builder.html                  |    1 -
     .../com.codahale.metrics/CsvReporter.html     |    1 -
     .../CsvReporter.java.html                     |  345 ----
     .../com.codahale.metrics/CsvReporterTest.html |    1 -
     .../CsvReporterTest.java.html                 |  246 ---
     .../DefaultSettableGauge.html                 |    1 -
     .../DefaultSettableGauge.java.html            |   44 -
     .../DefaultSettableGaugeTest.html             |    1 -
     .../DefaultSettableGaugeTest.java.html        |   27 -
     .../com.codahale.metrics/DerivativeGauge.html |    1 -
     .../DerivativeGauge.java.html                 |   34 -
     .../DerivativeGaugeTest$1.html                |    1 -
     .../DerivativeGaugeTest.html                  |    1 -
     .../DerivativeGaugeTest.java.html             |   22 -
     .../com.codahale.metrics/EWMA.html            |    1 -
     .../com.codahale.metrics/EWMA.java.html       |  109 --
     .../com.codahale.metrics/EWMATest.html        |    1 -
     .../com.codahale.metrics/EWMATest.java.html   |  225 ---
     .../ExponentialMovingAverages.html            |    1 -
     .../ExponentialMovingAverages.java.html       |   78 -
     .../ExponentiallyDecayingReservoir.html       |    1 -
     .../ExponentiallyDecayingReservoir.java.html  |  208 ---
     ...ayingReservoirTest$ReservoirFactory$1.html |    1 -
     ...ayingReservoirTest$ReservoirFactory$2.html |    1 -
     ...ecayingReservoirTest$ReservoirFactory.html |    1 -
     .../ExponentiallyDecayingReservoirTest.html   |    1 -
     ...ponentiallyDecayingReservoirTest.java.html |  418 -----
     .../FixedNameCsvFileProvider.html             |    1 -
     .../FixedNameCsvFileProvider.java.html        |   22 -
     .../FixedNameCsvFileProviderTest.html         |    1 -
     .../FixedNameCsvFileProviderTest.java.html    |   39 -
     .../com.codahale.metrics/Histogram.html       |    1 -
     .../com.codahale.metrics/Histogram.java.html  |   59 -
     .../com.codahale.metrics/HistogramTest.html   |    1 -
     .../HistogramTest.java.html                   |   41 -
     ...dExecutorService$InstrumentedCallable.html |    1 -
     ...dExecutorService$InstrumentedRunnable.html |    1 -
     .../InstrumentedExecutorService.html          |    1 -
     .../InstrumentedExecutorService.java.html     |  242 ---
     .../InstrumentedExecutorServiceTest.html      |    1 -
     .../InstrumentedExecutorServiceTest.java.html |  219 ---
     ...dExecutorService$InstrumentedCallable.html |    1 -
     ...rService$InstrumentedPeriodicRunnable.html |    1 -
     ...dExecutorService$InstrumentedRunnable.html |    1 -
     .../InstrumentedScheduledExecutorService.html |    1 -
     ...rumentedScheduledExecutorService.java.html |  298 ----
     ...trumentedScheduledExecutorServiceTest.html |    1 -
     ...ntedScheduledExecutorServiceTest.java.html |  306 ----
     ...tedThreadFactory$InstrumentedRunnable.html |    1 -
     .../InstrumentedThreadFactory.html            |    1 -
     .../InstrumentedThreadFactory.java.html       |   74 -
     .../InstrumentedThreadFactoryTest.html        |    1 -
     .../InstrumentedThreadFactoryTest.java.html   |   78 -
     ...xponentiallyDecayingReservoir$Builder.html |    1 -
     ...lyDecayingReservoir$RescalingConsumer.html |    1 -
     ...eExponentiallyDecayingReservoir$State.html |    1 -
     ...ockFreeExponentiallyDecayingReservoir.html |    1 -
     ...eeExponentiallyDecayingReservoir.java.html |  271 ---
     .../com.codahale.metrics/ManualClock.html     |    1 -
     .../ManualClock.java.html                     |   45 -
     .../com.codahale.metrics/Meter.html           |    1 -
     .../com.codahale.metrics/Meter.java.html      |  107 --
     .../MeterApproximationTest.html               |    1 -
     .../MeterApproximationTest.java.html          |   83 -
     .../com.codahale.metrics/MeterTest.html       |    1 -
     .../com.codahale.metrics/MeterTest.java.html  |   59 -
     .../com.codahale.metrics/MetricAttribute.html |    1 -
     .../MetricAttribute.java.html                 |   34 -
     .../com.codahale.metrics/MetricFilter.html    |    1 -
     .../MetricFilter.java.html                    |   33 -
     .../MetricFilterTest.html                     |    1 -
     .../MetricFilterTest.java.html                |   39 -
     .../MetricRegistry$1.html                     |    1 -
     .../MetricRegistry$2.html                     |    1 -
     .../MetricRegistry$3.html                     |    1 -
     .../MetricRegistry$4.html                     |    1 -
     .../MetricRegistry$5.html                     |    1 -
     .../MetricRegistry$6.html                     |    1 -
     .../MetricRegistry$MetricBuilder$1.html       |    1 -
     .../MetricRegistry$MetricBuilder$2.html       |    1 -
     .../MetricRegistry$MetricBuilder$3.html       |    1 -
     .../MetricRegistry$MetricBuilder$4.html       |    1 -
     .../MetricRegistry$MetricBuilder$5.html       |    1 -
     .../MetricRegistry$MetricBuilder.html         |    1 -
     .../com.codahale.metrics/MetricRegistry.html  |    1 -
     .../MetricRegistry.java.html                  |  685 --------
     .../MetricRegistryListener$Base.html          |    1 -
     .../MetricRegistryListener.java.html          |  129 --
     .../MetricRegistryListenerTest$1.html         |    1 -
     .../MetricRegistryListenerTest.html           |    1 -
     .../MetricRegistryListenerTest.java.html      |   61 -
     .../MetricRegistryTest.html                   |    1 -
     .../MetricRegistryTest.java.html              |  644 -------
     ...NoopMetricRegistry$EmptyConcurrentMap.html |    1 -
     .../NoopMetricRegistry$EmptySnapshot.html     |    1 -
     .../NoopMetricRegistry$NoopCounter.html       |    1 -
     .../NoopMetricRegistry$NoopGauge.html         |    1 -
     .../NoopMetricRegistry$NoopHistogram$1.html   |    1 -
     .../NoopMetricRegistry$NoopHistogram.html     |    1 -
     .../NoopMetricRegistry$NoopMeter.html         |    1 -
     ...oopMetricRegistry$NoopTimer$Context$1.html |    1 -
     .../NoopMetricRegistry$NoopTimer$Context.html |    1 -
     .../NoopMetricRegistry$NoopTimer.html         |    1 -
     .../NoopMetricRegistry.html                   |    1 -
     .../NoopMetricRegistry.java.html              |  794 ---------
     .../NoopMetricRegistryTest.html               |    1 -
     .../NoopMetricRegistryTest.java.html          |  496 ------
     .../RatioGauge$Ratio.html                     |    1 -
     .../com.codahale.metrics/RatioGauge.html      |    1 -
     .../com.codahale.metrics/RatioGauge.java.html |   67 -
     .../RatioGaugeTest$1.html                     |    1 -
     .../RatioGaugeTest$2.html                     |    1 -
     .../RatioGaugeTest$3.html                     |    1 -
     .../RatioGaugeTest$4.html                     |    1 -
     .../com.codahale.metrics/RatioGaugeTest.html  |    1 -
     .../RatioGaugeTest.java.html                  |   68 -
     .../ScheduledReporter$NamedThreadFactory.html |    1 -
     .../ScheduledReporter.html                    |    1 -
     .../ScheduledReporter.java.html               |  335 ----
     .../ScheduledReporterTest$DummyReporter.html  |    1 -
     .../ScheduledReporterTest.html                |    1 -
     .../ScheduledReporterTest.java.html           |  286 ----
     .../SharedMetricRegistries.html               |    1 -
     .../SharedMetricRegistries.java.html          |  108 --
     .../SharedMetricRegistriesTest.html           |    1 -
     .../SharedMetricRegistriesTest.java.html      |   96 --
     .../SimpleSettableGaugeTest.html              |    1 -
     .../SimpleSettableGaugeTest.java.html         |   29 -
     .../Slf4jReporter$Builder.html                |    1 -
     .../Slf4jReporter$DebugLoggerProxy.html       |    1 -
     .../Slf4jReporter$ErrorLoggerProxy.html       |    1 -
     .../Slf4jReporter$InfoLoggerProxy.html        |    1 -
     .../Slf4jReporter$LoggerProxy.html            |    1 -
     .../Slf4jReporter$LoggingLevel.html           |    1 -
     .../Slf4jReporter$TraceLoggerProxy.html       |    1 -
     .../Slf4jReporter$WarnLoggerProxy.html        |    1 -
     .../com.codahale.metrics/Slf4jReporter.html   |    1 -
     .../Slf4jReporter.java.html                   |  517 ------
     .../Slf4jReporterTest.html                    |    1 -
     .../Slf4jReporterTest.java.html               |  363 ----
     .../SlidingTimeWindowArrayReservoir.html      |    1 -
     .../SlidingTimeWindowArrayReservoir.java.html |  102 --
     .../SlidingTimeWindowArrayReservoirTest.html  |    1 -
     ...dingTimeWindowArrayReservoirTest.java.html |  151 --
     .../SlidingTimeWindowMovingAverages.html      |    1 -
     .../SlidingTimeWindowMovingAverages.java.html |  198 ---
     .../SlidingTimeWindowMovingAveragesTest.html  |    1 -
     ...dingTimeWindowMovingAveragesTest.java.html |  167 --
     .../SlidingTimeWindowReservoir.html           |    1 -
     .../SlidingTimeWindowReservoir.java.html      |   96 --
     .../SlidingTimeWindowReservoirTest.html       |    1 -
     .../SlidingTimeWindowReservoirTest.java.html  |  120 --
     .../SlidingWindowReservoir.html               |    1 -
     .../SlidingWindowReservoir.java.html          |   44 -
     .../SlidingWindowReservoirTest.html           |    1 -
     .../SlidingWindowReservoirTest.java.html      |   30 -
     .../com.codahale.metrics/Snapshot.html        |    1 -
     .../com.codahale.metrics/Snapshot.java.html   |  122 --
     .../com.codahale.metrics/Timer$Context.html   |    1 -
     .../com.codahale.metrics/Timer.html           |    1 -
     .../com.codahale.metrics/Timer.java.html      |  204 ---
     .../com.codahale.metrics/TimerTest$1.html     |    1 -
     .../com.codahale.metrics/TimerTest.html       |    1 -
     .../com.codahale.metrics/TimerTest.java.html  |  162 --
     .../UniformReservoir.html                     |    1 -
     .../UniformReservoir.java.html                |   71 -
     .../UniformReservoirTest.html                 |    1 -
     .../UniformReservoirTest.java.html            |   32 -
     .../com.codahale.metrics/UniformSnapshot.html |    1 -
     .../UniformSnapshot.java.html                 |  178 --
     .../UniformSnapshotTest.html                  |    1 -
     .../UniformSnapshotTest.java.html             |  199 ---
     .../WeightedSnapshot$WeightedSample.html      |    1 -
     .../WeightedSnapshot.html                     |    1 -
     .../WeightedSnapshot.java.html                |  196 ---
     .../WeightedSnapshotTest.html                 |    1 -
     .../WeightedSnapshotTest.java.html            |  230 ---
     .../com.codahale.metrics/index.html           |    1 -
     .../com.codahale.metrics/index.source.html    |    1 -
     metrics-log4j2-htmlReport/index.html          |    1 -
     .../jacoco-resources/branchfc.gif             |  Bin 91 -> 0 bytes
     .../jacoco-resources/branchnc.gif             |  Bin 91 -> 0 bytes
     .../jacoco-resources/branchpc.gif             |  Bin 91 -> 0 bytes
     .../jacoco-resources/bundle.gif               |  Bin 709 -> 0 bytes
     .../jacoco-resources/class.gif                |  Bin 586 -> 0 bytes
     .../jacoco-resources/down.gif                 |  Bin 67 -> 0 bytes
     .../jacoco-resources/greenbar.gif             |  Bin 91 -> 0 bytes
     .../jacoco-resources/group.gif                |  Bin 351 -> 0 bytes
     .../jacoco-resources/method.gif               |  Bin 193 -> 0 bytes
     .../jacoco-resources/package.gif              |  Bin 227 -> 0 bytes
     .../jacoco-resources/prettify.css             |   13 -
     .../jacoco-resources/prettify.js              | 1510 -----------------
     .../jacoco-resources/redbar.gif               |  Bin 91 -> 0 bytes
     .../jacoco-resources/report.css               |  243 ---
     .../jacoco-resources/report.gif               |  Bin 363 -> 0 bytes
     .../jacoco-resources/session.gif              |  Bin 213 -> 0 bytes
     .../jacoco-resources/sort.gif                 |  Bin 58 -> 0 bytes
     .../jacoco-resources/sort.js                  |  148 --
     .../jacoco-resources/source.gif               |  Bin 354 -> 0 bytes
     .../jacoco-resources/up.gif                   |  Bin 67 -> 0 bytes
     .../jacoco-sessions.html                      |    1 -
     2797 files changed, 690366 deletions(-)
     delete mode 100644 CSCI5308_W24_A1_B00980674.pdf
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/css/coverage.css
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/css/idea.min.css
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/img/arrowDown.gif
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/img/arrowUp.gif
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/js/highlight.min.js
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/js/highlightjs-line-numbers.min.js
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-10.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-11.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-12.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-13.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-14.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-15.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-16.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-17.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-18.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-19.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1a.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1b.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1c.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1d.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1e.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1f.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-20.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-21.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-22.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-23.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-24.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-25.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-26.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-27.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-28.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-29.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2a.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2b.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2c.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2d.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2e.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2f.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-30.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-31.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-32.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-9.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-a.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-b.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-c.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-d.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-e.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-f.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-9.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-a.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-b.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-c.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-9.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-10.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-11.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-12.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-13.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-14.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-15.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-16.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-17.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-18.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-19.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1a.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1b.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1c.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1d.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1e.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1f.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-9.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-a.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-b.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-c.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-d.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-e.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-f.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/css/coverage.css
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/css/idea.min.css
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/img/arrowDown.gif
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/img/arrowUp.gif
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/js/highlight.min.js
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/js/highlightjs-line-numbers.min.js
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-10.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-11.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-12.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-13.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-14.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-15.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-16.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-17.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-18.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-19.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1a.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1b.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1c.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1d.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1e.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1f.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-20.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-21.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-22.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-23.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-24.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-25.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-26.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-27.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-28.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-29.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2a.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2b.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2c.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2d.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2e.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2f.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-30.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-31.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-32.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-9.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-a.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-b.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-c.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-d.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-e.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-f.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-9.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-a.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-b.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-c.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-9.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-a.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-b.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-c.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1a/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-9.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-23/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-24/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-25/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-10.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-11.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-12.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-13.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-14.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-15.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-16.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-17.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-18.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-19.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1a.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1b.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1c.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1d.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1e.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1f.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-9.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-a.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-b.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-c.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-d.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-e.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-f.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-a/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-Final-htmlReport/ns-f/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/css/coverage.css
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/css/idea.min.css
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/img/arrowDown.gif
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/img/arrowUp.gif
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/js/highlight.min.js
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/js/highlightjs-line-numbers.min.js
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-10.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-11.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-12.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-13.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-14.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-15.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-16.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-17.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-18.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-19.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1a.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1b.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1c.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1d.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1e.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1f.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-20.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-21.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-22.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-23.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-24.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-25.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-26.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-27.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-28.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-29.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2a.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2b.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2c.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2d.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2e.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2f.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-30.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-31.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-32.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-9.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-a.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-b.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-c.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-d.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-e.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-f.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-11/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-13/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-14/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-17/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-9.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-a.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-b.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-c.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-19/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1a/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1d/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1e/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-9.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-22/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-23/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-24/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-25/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-4/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-6/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-9/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-a/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-b/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-2.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-3.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-4.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-5.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-6.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-7.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-8.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-e/sources/source-1.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-branch-report-initial-htmlReport/ns-f/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/css/coverage.css
     delete mode 100644 metrics-complete-report-initial-htmlReport/css/idea.min.css
     delete mode 100644 metrics-complete-report-initial-htmlReport/img/arrowDown.gif
     delete mode 100644 metrics-complete-report-initial-htmlReport/img/arrowUp.gif
     delete mode 100644 metrics-complete-report-initial-htmlReport/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/js/highlight.min.js
     delete mode 100644 metrics-complete-report-initial-htmlReport/js/highlightjs-line-numbers.min.js
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-10.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-11.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-12.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-13.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-14.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-15.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-16.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-17.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-18.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-19.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-1a.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-1b.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-1c.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-1d.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-1e.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-1f.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-20.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-21.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-22.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-23.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-24.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-25.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-26.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-27.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-28.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-29.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-2a.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-2b.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-2c.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-2d.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-2e.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-2f.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-30.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-31.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-32.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-4.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-5.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-6.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-7.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-8.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-9.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-a.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-b.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-c.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-d.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-e.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1/sources/source-f.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-10/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-10/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-10/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-10/sources/source-4.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-10/sources/source-5.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-10/sources/source-6.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-10/sources/source-7.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-10/sources/source-8.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-11/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-11/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-12/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-12/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-12/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-12/sources/source-4.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-12/sources/source-5.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-12/sources/source-6.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-12/sources/source-7.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-13/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-13/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-14/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-14/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-15/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-15/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-15/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-15/sources/source-4.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-16/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-16/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-16/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-17/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-17/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-4.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-5.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-6.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-7.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-8.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-9.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-a.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-b.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-18/sources/source-c.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-19/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1a/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1b/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/sources/source-4.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/sources/source-5.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1c/sources/source-6.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1d/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1e/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-1f/sources/source-4.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/sources/source-4.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/sources/source-5.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/sources/source-6.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/sources/source-7.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/sources/source-8.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-2/sources/source-9.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-20/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-20/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-20/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-20/sources/source-4.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-21/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-21/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-21/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-22/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-23/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-24/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-25/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-26/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-26/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-26/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-27/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-27/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-27/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-28/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-28/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-28/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-28/sources/source-4.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-28/sources/source-5.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-28/sources/source-6.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-3/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-3/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-3/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-3/sources/source-4.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-3/sources/source-5.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-4/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-5/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-5/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-5/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-5/sources/source-4.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-5/sources/source-5.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-5/sources/source-6.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-5/sources/source-7.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-6/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-6/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-7/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-7/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-7/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-7/sources/source-4.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-7/sources/source-5.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-7/sources/source-6.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-7/sources/source-7.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-8/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-8/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-8/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-8/sources/source-4.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-8/sources/source-5.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-8/sources/source-6.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-9/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-a/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-b/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-b/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-c/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-c/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-c/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-c/sources/source-4.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-c/sources/source-5.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-d/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-d/sources/source-2.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-d/sources/source-3.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-d/sources/source-4.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-d/sources/source-5.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-d/sources/source-6.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-d/sources/source-7.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-d/sources/source-8.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-e/sources/source-1.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_LINE.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
     delete mode 100644 metrics-complete-report-initial-htmlReport/ns-f/sources/source-1.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppender.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppender.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderConfigTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderConfigTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/index.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/index.source.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CachedGauge.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CachedGauge.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$1.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$2.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$3.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$4.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray$Chunk.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArrayTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArrayTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ClassMetadataTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ClassMetadataTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Clock$UserTimeClock.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Clock$UserTimeClockHolder.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Clock.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Clock.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ClockTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ClockTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter$Builder.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporterTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporterTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Counter.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Counter.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CounterTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CounterTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter$Builder.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporterTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporterTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGauge.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGauge.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGaugeTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGaugeTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGauge.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGauge.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest$1.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/EWMA.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/EWMA.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/EWMATest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/EWMATest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ExponentialMovingAverages.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ExponentialMovingAverages.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoir.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoir.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory$1.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory$2.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProvider.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProvider.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProviderTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProviderTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Histogram.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Histogram.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/HistogramTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/HistogramTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService$InstrumentedCallable.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService$InstrumentedRunnable.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorServiceTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorServiceTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedCallable.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedPeriodicRunnable.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedRunnable.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorServiceTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorServiceTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory$InstrumentedRunnable.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactoryTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactoryTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$Builder.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$RescalingConsumer.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$State.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ManualClock.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ManualClock.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Meter.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Meter.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MeterApproximationTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MeterApproximationTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MeterTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MeterTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricAttribute.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricAttribute.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilter.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilter.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilterTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilterTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$1.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$2.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$3.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$4.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$5.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$6.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$1.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$2.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$3.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$4.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$5.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListener$Base.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListener.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest$1.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$EmptyConcurrentMap.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$EmptySnapshot.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopCounter.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopGauge.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopHistogram$1.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopHistogram.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopMeter.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer$Context$1.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer$Context.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistryTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistryTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge$Ratio.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$1.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$2.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$3.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$4.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter$NamedThreadFactory.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest$DummyReporter.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistries.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistries.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistriesTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistriesTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SimpleSettableGaugeTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SimpleSettableGaugeTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$Builder.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$DebugLoggerProxy.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$ErrorLoggerProxy.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$InfoLoggerProxy.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$LoggerProxy.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$LoggingLevel.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$TraceLoggerProxy.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$WarnLoggerProxy.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporterTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporterTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoir.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoir.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoirTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoirTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAverages.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAverages.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAveragesTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAveragesTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoir.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoir.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoirTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoirTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoir.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoir.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoirTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoirTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Snapshot.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Snapshot.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Timer$Context.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Timer.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/Timer.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest$1.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoir.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoir.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoirTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoirTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshot.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshot.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshotTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshotTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot$WeightedSample.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshotTest.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshotTest.java.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/index.html
     delete mode 100644 metrics-log4j2-htmlReport/com.codahale.metrics/index.source.html
     delete mode 100644 metrics-log4j2-htmlReport/index.html
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/branchfc.gif
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/branchnc.gif
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/branchpc.gif
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/bundle.gif
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/class.gif
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/down.gif
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/greenbar.gif
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/group.gif
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/method.gif
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/package.gif
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/prettify.css
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/prettify.js
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/redbar.gif
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/report.css
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/report.gif
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/session.gif
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/sort.gif
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/sort.js
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/source.gif
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-resources/up.gif
     delete mode 100644 metrics-log4j2-htmlReport/jacoco-sessions.html
    
    diff --git a/CSCI5308_W24_A1_B00980674.pdf b/CSCI5308_W24_A1_B00980674.pdf
    deleted file mode 100644
    index 1c65990071f9e3e57c206a4ca7696a7bf15fb3f2..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 2204241
    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%0Dw;THe?sQ3XHlw2oGVK0n^2AttXk0P6M
    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%0AyJz=
    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%0AUe#6|37sipEr(QO
    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%0D;t8uvx8+7!D
    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%0A9`bg^=<{pIO%F+g~@0xAD!VKJT)yzxx1RnGO=@0
    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
    
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/css/coverage.css b/metrics-complete-branch-report-Final-Improved-htmlReport/css/coverage.css
    deleted file mode 100644
    index cef776517f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/css/coverage.css
    +++ /dev/null
    @@ -1,154 +0,0 @@
    -/*
    - * Copyright 2000-2021 JetBrains s.r.o.
    - *
    - * Licensed under the Apache License, Version 2.0 (the "License");
    - * you may not use this file except in compliance with the License.
    - * You may obtain a copy of the License at
    - *
    - *   http://www.apache.org/licenses/LICENSE-2.0
    - *
    - * Unless required by applicable law or agreed to in writing, software
    - * distributed under the License is distributed on an "AS IS" BASIS,
    - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    - * See the License for the specific language governing permissions and
    - * limitations under the License.
    - */
    -
    -* {
    -  margin: 0;
    -  padding: 0;
    -}
    -
    -body {
    -  background-color: #fff;
    -  font-family: helvetica neue, tahoma, arial, sans-serif;
    -  font-size: 82%;
    -  color: #151515;
    -}
    -
    -h1 {
    -  margin: 0.5em 0;
    -  color: #010101;
    -  font-weight: normal;
    -  font-size: 18px;
    -}
    -
    -h2 {
    -  margin: 0.5em 0;
    -  color: #010101;
    -  font-weight: normal;
    -  font-size: 16px;
    -}
    -
    -a {
    -  color: #1564C2;
    -  text-decoration: none;
    -}
    -
    -a:hover {
    -  text-decoration: underline;
    -}
    -
    -span.separator {
    -  color: #9BA9BA;
    -  padding-left: 5px;
    -  padding-right: 5px;
    -}
    -
    -div.content {
    -  width: 99%;
    -}
    -
    -table.coverageStats {
    -  width: 100%;
    -  border-collapse: collapse;
    -}
    -
    -table.overallStats {
    -  width: 20%;
    -}
    -
    -table.coverageStats td, table.coverageStats th {
    -  padding: 4px 2px;
    -  border-bottom: 1px solid #ccc;
    -}
    -
    -table.coverageStats th {
    -  background-color: #959BA4;
    -  border: none;
    -  font-weight: bold;
    -  text-align: left;
    -  color: #FFF;
    -}
    -
    -table.coverageStats th.coverageStat {
    -  width: 15%;
    -}
    -
    -table.coverageStats th a {
    -  color: #FFF;
    -}
    -
    -table.coverageStats th a:hover {
    -  text-decoration: none;
    -}
    -
    -table.coverageStats th.sortedDesc a {
    -  background: url(../img/arrowDown.gif) no-repeat 100% 2px;
    -  padding-right: 20px;
    -}
    -
    -table.coverageStats th.sortedAsc a {
    -  background: url(../img/arrowUp.gif) no-repeat 100% 2px;
    -  padding-right: 20px;
    -}
    -
    -div.footer {
    -  margin: 2em .5em;
    -  font-size: 85%;
    -  text-align: left;
    -  line-height: 140%;
    -}
    -
    -code.sourceCode {
    -  width: 100%;
    -  border: 1px solid #ccc;
    -  font: normal 12px 'Menlo', 'Bitstream Vera Sans Mono', 'Courier New', 'Courier', monospace;
    -  white-space: pre;
    -}
    -
    -code.sourceCode b {
    -  font-weight: normal;
    -}
    -
    -code.sourceCode span.number {
    -  color: #151515;
    -}
    -
    -code.sourceCode .fc {
    -  background-color: #cfc;
    -}
    -
    -code.sourceCode .pc {
    -  background-color: #ffc;
    -}
    -
    -code.sourceCode .nc {
    -  background-color: #fcc;
    -}
    -
    -.percent, .absValue {
    -  font-size: 90%;
    -}
    -
    -.percent .green, .absValue .green {
    -  color: #32cc32;
    -}
    -
    -.percent .red, .absValue .red {
    -  color: #f00;
    -}
    -
    -.percent .totalDiff {
    -  color: #3f3f3f;
    -}
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/css/idea.min.css b/metrics-complete-branch-report-Final-Improved-htmlReport/css/idea.min.css
    deleted file mode 100644
    index a8d5292bd5..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/css/idea.min.css
    +++ /dev/null
    @@ -1,118 +0,0 @@
    -/*
    - * Copyright 2000-2021 JetBrains s.r.o.
    - *
    - * Licensed under the Apache License, Version 2.0 (the "License");
    - * you may not use this file except in compliance with the License.
    - * You may obtain a copy of the License at
    - *
    - *   http://www.apache.org/licenses/LICENSE-2.0
    - *
    - * Unless required by applicable law or agreed to in writing, software
    - * distributed under the License is distributed on an "AS IS" BASIS,
    - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    - * See the License for the specific language governing permissions and
    - * limitations under the License.
    - */
    -
    -/*
    -Intellij Idea-like styling (c) Vasily Polovnyov <vast@whiteants.net>
    -*/
    -
    -.hljs {
    -    color: #000;
    -    background: #fff;
    -}
    -
    -.hljs-subst,
    -.hljs-title {
    -    font-weight: normal;
    -    color: #000;
    -}
    -
    -.hljs-comment,
    -.hljs-quote {
    -    color: #808080;
    -    font-style: italic;
    -}
    -
    -.hljs-meta {
    -    color: #808000;
    -}
    -
    -.hljs-tag {
    -    background: #efefef;
    -}
    -
    -.hljs-section,
    -.hljs-name,
    -.hljs-literal,
    -.hljs-keyword,
    -.hljs-selector-tag,
    -.hljs-type,
    -.hljs-selector-id,
    -.hljs-selector-class {
    -    font-weight: bold;
    -    color: #000080;
    -}
    -
    -.hljs-attribute,
    -.hljs-number,
    -.hljs-regexp,
    -.hljs-link {
    -    font-weight: bold;
    -    color: #0000ff;
    -}
    -
    -.hljs-number,
    -.hljs-regexp,
    -.hljs-link {
    -    font-weight: normal;
    -}
    -
    -.hljs-string {
    -    color: #008000;
    -    font-weight: bold;
    -}
    -
    -.hljs-symbol,
    -.hljs-bullet,
    -.hljs-formula {
    -    color: #000;
    -    background: #d0eded;
    -    font-style: italic;
    -}
    -
    -.hljs-doctag {
    -    text-decoration: underline;
    -}
    -
    -.hljs-variable,
    -.hljs-template-variable {
    -    color: #660e7a;
    -}
    -
    -.hljs-addition {
    -    background: #baeeba;
    -}
    -
    -.hljs-deletion {
    -    background: #ffc8bd;
    -}
    -
    -.hljs-emphasis {
    -    font-style: italic;
    -}
    -
    -.hljs-strong {
    -    font-weight: bold;
    -}
    -
    -.hljs-ln-numbers {
    -    display: block;
    -    float: left;
    -    width: 3em;
    -    border-right: 1px solid #ccc;
    -    font-style: normal;
    -    text-align: right;
    -    background-color: #eee;
    -}
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/img/arrowDown.gif b/metrics-complete-branch-report-Final-Improved-htmlReport/img/arrowDown.gif
    deleted file mode 100644
    index a4ac9b4b0f5eee9fc82deb7f03d0cc7f197b01c7..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 89
    zcmZ?wbhEHb<YVAtSj56GVZwyGyu5~nhW}u|00W9YSr{1@SQvCb0wA>v%yJ&P?))?G
    g5?!@7agD+*@rGjs@joUks8}}Ha%HfNHz$KN0Orjd82|tP
    
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/img/arrowUp.gif b/metrics-complete-branch-report-Final-Improved-htmlReport/img/arrowUp.gif
    deleted file mode 100644
    index d488db0089f15409b83a6f39718384cac89ea3c9..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 91
    zcmZ?wbhEHb<YVAtSj51PmzOtT!i0u~hW}u|00W9YSr{1@SQvCb0wA>v%nBa6?))=2
    j#jeJ<$W6!S$=vG=3s*2Wu3C5I!M+a(XH6zEFjxZs9OxeQ
    
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index.html
    deleted file mode 100644
    index 8a3a853704..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/index.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 33ab9204e5..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_BLOCK.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_BLOCK.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_BLOCK.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_BLOCK.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_BLOCK.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_BLOCK.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_BLOCK.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_BLOCK.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_BLOCK.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_BLOCK.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_BLOCK.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_BLOCK.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_BLOCK.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_BLOCK.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_BLOCK.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_BLOCK.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_BLOCK.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_BLOCK.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_BLOCK.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_BLOCK.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_BLOCK.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_BLOCK.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 31f0dfbc10..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index eaaeb5cc87..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_CLASS.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_CLASS.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_CLASS.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_CLASS.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_CLASS.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_CLASS.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_CLASS.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_CLASS.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_CLASS.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_CLASS.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_CLASS.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_CLASS.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_CLASS.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_CLASS.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_CLASS.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_CLASS.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_CLASS.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_CLASS.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_CLASS.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_CLASS.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_CLASS.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_CLASS.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_CLASS.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_CLASS.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_CLASS.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_CLASS.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 33c2bc18a6..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 6c5f08dae8..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_LINE.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_LINE.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_LINE.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_LINE.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_LINE.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_LINE.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_LINE.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_LINE.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_LINE.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_LINE.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_LINE.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_LINE.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_LINE.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_LINE.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_LINE.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_LINE.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_LINE.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_LINE.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_LINE.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_LINE.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_LINE.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_LINE.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_LINE.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_LINE.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_LINE.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_LINE.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_LINE.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 42a13f4715..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_LINE_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 6fe9862021..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_METHOD.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_METHOD.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_METHOD.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_METHOD.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_METHOD.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_METHOD.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_METHOD.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_METHOD.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_METHOD.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_METHOD.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_METHOD.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_METHOD.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_METHOD.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_METHOD.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_METHOD.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_METHOD.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_METHOD.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_METHOD.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_METHOD.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_METHOD.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_METHOD.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_METHOD.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_METHOD.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_METHOD.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_METHOD.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_METHOD.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 9f693373c3..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index ff4a1cef9b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_NAME_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/js/highlight.min.js b/metrics-complete-branch-report-Final-Improved-htmlReport/js/highlight.min.js
    deleted file mode 100644
    index e88731520e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/js/highlight.min.js
    +++ /dev/null
    @@ -1,1388 +0,0 @@
    -/*
    -  Highlight.js 10.7.2 (00233d63)
    -  License: BSD-3-Clause
    -  Copyright (c) 2006-2021, Ivan Sagalaev
    -
    -  BSD 3-Clause License
    -
    -  Copyright (c) 2006-2021, Ivan Sagalaev.
    -  All rights reserved.
    -
    -  Redistribution and use in source and binary forms, with or without
    -  modification, are permitted provided that the following conditions are met:
    -
    -  * Redistributions of source code must retain the above copyright notice, this
    -    list of conditions and the following disclaimer.
    -
    -  * Redistributions in binary form must reproduce the above copyright notice,
    -    this list of conditions and the following disclaimer in the documentation
    -    and/or other materials provided with the distribution.
    -
    -  * Neither the name of the copyright holder nor the names of its
    -    contributors may be used to endorse or promote products derived from
    -    this software without specific prior written permission.
    -
    -  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    -  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    -  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    -  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    -  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
    -  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    -  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    -  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -*/
    -var hljs=function(){"use strict";function e(t){
    -return t instanceof Map?t.clear=t.delete=t.set=()=>{
    -throw Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=()=>{
    -throw Error("set is read-only")
    -}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach((n=>{var i=t[n]
    -;"object"!=typeof i||Object.isFrozen(i)||e(i)})),t}var t=e,n=e;t.default=n
    -;class i{constructor(e){
    -void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}
    -ignoreMatch(){this.isMatchIgnored=!0}}function s(e){
    -return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")
    -}function a(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t]
    -;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const r=e=>!!e.kind
    -;class l{constructor(e,t){
    -this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){
    -this.buffer+=s(e)}openNode(e){if(!r(e))return;let t=e.kind
    -;e.sublanguage||(t=`${this.classPrefix}${t}`),this.span(t)}closeNode(e){
    -r(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){
    -this.buffer+=`<span class="${e}">`}}class o{constructor(){this.rootNode={
    -children:[]},this.stack=[this.rootNode]}get top(){
    -return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){
    -this.top.children.push(e)}openNode(e){const t={kind:e,children:[]}
    -;this.add(t),this.stack.push(t)}closeNode(){
    -if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){
    -for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
    -walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){
    -return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),
    -t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){
    -"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{
    -o._collapse(e)})))}}class c extends o{constructor(e){super(),this.options=e}
    -addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())}
    -addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root
    -;n.kind=t,n.sublanguage=!0,this.add(n)}toHTML(){
    -return new l(this,this.options).value()}finalize(){return!0}}function g(e){
    -return e?"string"==typeof e?e:e.source:null}
    -const u=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,h="[a-zA-Z]\\w*",d="[a-zA-Z_]\\w*",f="\\b\\d+(\\.\\d+)?",p="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",m="\\b(0b[01]+)",b={
    -begin:"\\\\[\\s\\S]",relevance:0},E={className:"string",begin:"'",end:"'",
    -illegal:"\\n",contains:[b]},x={className:"string",begin:'"',end:'"',
    -illegal:"\\n",contains:[b]},v={
    -begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
    -},w=(e,t,n={})=>{const i=a({className:"comment",begin:e,end:t,contains:[]},n)
    -;return i.contains.push(v),i.contains.push({className:"doctag",
    -begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),i
    -},y=w("//","$"),N=w("/\\*","\\*/"),R=w("#","$");var _=Object.freeze({
    -__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:h,UNDERSCORE_IDENT_RE:d,
    -NUMBER_RE:f,C_NUMBER_RE:p,BINARY_NUMBER_RE:m,
    -RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
    -SHEBANG:(e={})=>{const t=/^#![ ]*\//
    -;return e.binary&&(e.begin=((...e)=>e.map((e=>g(e))).join(""))(t,/.*\b/,e.binary,/\b.*/)),
    -a({className:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{
    -0!==e.index&&t.ignoreMatch()}},e)},BACKSLASH_ESCAPE:b,APOS_STRING_MODE:E,
    -QUOTE_STRING_MODE:x,PHRASAL_WORDS_MODE:v,COMMENT:w,C_LINE_COMMENT_MODE:y,
    -C_BLOCK_COMMENT_MODE:N,HASH_COMMENT_MODE:R,NUMBER_MODE:{className:"number",
    -begin:f,relevance:0},C_NUMBER_MODE:{className:"number",begin:p,relevance:0},
    -BINARY_NUMBER_MODE:{className:"number",begin:m,relevance:0},CSS_NUMBER_MODE:{
    -className:"number",
    -begin:f+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
    -relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",
    -begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[b,{begin:/\[/,end:/\]/,
    -relevance:0,contains:[b]}]}]},TITLE_MODE:{className:"title",begin:h,relevance:0
    -},UNDERSCORE_TITLE_MODE:{className:"title",begin:d,relevance:0},METHOD_GUARD:{
    -begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{
    -"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{
    -t.data._beginMatch!==e[1]&&t.ignoreMatch()}})});function k(e,t){
    -"."===e.input[e.index-1]&&t.ignoreMatch()}function M(e,t){
    -t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",
    -e.__beforeBegin=k,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,
    -void 0===e.relevance&&(e.relevance=0))}function O(e,t){
    -Array.isArray(e.illegal)&&(e.illegal=((...e)=>"("+e.map((e=>g(e))).join("|")+")")(...e.illegal))
    -}function A(e,t){if(e.match){
    -if(e.begin||e.end)throw Error("begin & end are not supported with match")
    -;e.begin=e.match,delete e.match}}function L(e,t){
    -void 0===e.relevance&&(e.relevance=1)}
    -const I=["of","and","for","in","not","or","if","then","parent","list","value"]
    -;function j(e,t,n="keyword"){const i={}
    -;return"string"==typeof e?s(n,e.split(" ")):Array.isArray(e)?s(n,e):Object.keys(e).forEach((n=>{
    -Object.assign(i,j(e[n],t,n))})),i;function s(e,n){
    -t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|")
    -;i[n[0]]=[e,B(n[0],n[1])]}))}}function B(e,t){
    -return t?Number(t):(e=>I.includes(e.toLowerCase()))(e)?0:1}
    -function T(e,{plugins:t}){function n(t,n){
    -return RegExp(g(t),"m"+(e.case_insensitive?"i":"")+(n?"g":""))}class i{
    -constructor(){
    -this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}
    -addRule(e,t){
    -t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),
    -this.matchAt+=(e=>RegExp(e.toString()+"|").exec("").length-1)(e)+1}compile(){
    -0===this.regexes.length&&(this.exec=()=>null)
    -;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(((e,t="|")=>{let n=0
    -;return e.map((e=>{n+=1;const t=n;let i=g(e),s="";for(;i.length>0;){
    -const e=u.exec(i);if(!e){s+=i;break}
    -s+=i.substring(0,e.index),i=i.substring(e.index+e[0].length),
    -"\\"===e[0][0]&&e[1]?s+="\\"+(Number(e[1])+t):(s+=e[0],"("===e[0]&&n++)}return s
    -})).map((e=>`(${e})`)).join(t)})(e),!0),this.lastIndex=0}exec(e){
    -this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e)
    -;if(!t)return null
    -;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n]
    -;return t.splice(0,n),Object.assign(t,i)}}class s{constructor(){
    -this.rules=[],this.multiRegexes=[],
    -this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){
    -if(this.multiRegexes[e])return this.multiRegexes[e];const t=new i
    -;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))),
    -t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){
    -return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){
    -this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){
    -const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex
    -;let n=t.exec(e)
    -;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{
    -const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}
    -return n&&(this.regexIndex+=n.position+1,
    -this.regexIndex===this.count&&this.considerAll()),n}}
    -if(e.compilerExtensions||(e.compilerExtensions=[]),
    -e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.")
    -;return e.classNameAliases=a(e.classNameAliases||{}),function t(i,r){const l=i
    -;if(i.isCompiled)return l
    -;[A].forEach((e=>e(i,r))),e.compilerExtensions.forEach((e=>e(i,r))),
    -i.__beforeBegin=null,[M,O,L].forEach((e=>e(i,r))),i.isCompiled=!0;let o=null
    -;if("object"==typeof i.keywords&&(o=i.keywords.$pattern,
    -delete i.keywords.$pattern),
    -i.keywords&&(i.keywords=j(i.keywords,e.case_insensitive)),
    -i.lexemes&&o)throw Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ")
    -;return o=o||i.lexemes||/\w+/,
    -l.keywordPatternRe=n(o,!0),r&&(i.begin||(i.begin=/\B|\b/),
    -l.beginRe=n(i.begin),i.endSameAsBegin&&(i.end=i.begin),
    -i.end||i.endsWithParent||(i.end=/\B|\b/),
    -i.end&&(l.endRe=n(i.end)),l.terminatorEnd=g(i.end)||"",
    -i.endsWithParent&&r.terminatorEnd&&(l.terminatorEnd+=(i.end?"|":"")+r.terminatorEnd)),
    -i.illegal&&(l.illegalRe=n(i.illegal)),
    -i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>a(e,{
    -variants:null},t)))),e.cachedVariants?e.cachedVariants:S(e)?a(e,{
    -starts:e.starts?a(e.starts):null
    -}):Object.isFrozen(e)?a(e):e))("self"===e?i:e)))),i.contains.forEach((e=>{t(e,l)
    -})),i.starts&&t(i.starts,r),l.matcher=(e=>{const t=new s
    -;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"
    -}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"
    -}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(l),l}(e)}function S(e){
    -return!!e&&(e.endsWithParent||S(e.starts))}function P(e){const t={
    -props:["language","code","autodetect"],data:()=>({detectedLanguage:"",
    -unknownLanguage:!1}),computed:{className(){
    -return this.unknownLanguage?"":"hljs "+this.detectedLanguage},highlighted(){
    -if(!this.autoDetect&&!e.getLanguage(this.language))return console.warn(`The language "${this.language}" you specified could not be found.`),
    -this.unknownLanguage=!0,s(this.code);let t={}
    -;return this.autoDetect?(t=e.highlightAuto(this.code),
    -this.detectedLanguage=t.language):(t=e.highlight(this.language,this.code,this.ignoreIllegals),
    -this.detectedLanguage=this.language),t.value},autoDetect(){
    -return!(this.language&&(e=this.autodetect,!e&&""!==e));var e},
    -ignoreIllegals:()=>!0},render(e){return e("pre",{},[e("code",{
    -class:this.className,domProps:{innerHTML:this.highlighted}})])}};return{
    -Component:t,VuePlugin:{install(e){e.component("highlightjs",t)}}}}const D={
    -"after:highlightElement":({el:e,result:t,text:n})=>{const i=H(e)
    -;if(!i.length)return;const a=document.createElement("div")
    -;a.innerHTML=t.value,t.value=((e,t,n)=>{let i=0,a="";const r=[];function l(){
    -return e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset<t[0].offset?e:t:"start"===t[0].event?e:t:e.length?e:t
    -}function o(e){a+="<"+C(e)+[].map.call(e.attributes,(function(e){
    -return" "+e.nodeName+'="'+s(e.value)+'"'})).join("")+">"}function c(e){
    -a+="</"+C(e)+">"}function g(e){("start"===e.event?o:c)(e.node)}
    -for(;e.length||t.length;){let t=l()
    -;if(a+=s(n.substring(i,t[0].offset)),i=t[0].offset,t===e){r.reverse().forEach(c)
    -;do{g(t.splice(0,1)[0]),t=l()}while(t===e&&t.length&&t[0].offset===i)
    -;r.reverse().forEach(o)
    -}else"start"===t[0].event?r.push(t[0].node):r.pop(),g(t.splice(0,1)[0])}
    -return a+s(n.substr(i))})(i,H(a),n)}};function C(e){
    -return e.nodeName.toLowerCase()}function H(e){const t=[];return function e(n,i){
    -for(let s=n.firstChild;s;s=s.nextSibling)3===s.nodeType?i+=s.nodeValue.length:1===s.nodeType&&(t.push({
    -event:"start",offset:i,node:s}),i=e(s,i),C(s).match(/br|hr|img|input/)||t.push({
    -event:"stop",offset:i,node:s}));return i}(e,0),t}const $={},U=e=>{
    -console.error(e)},z=(e,...t)=>{console.log("WARN: "+e,...t)},K=(e,t)=>{
    -$[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),$[`${e}/${t}`]=!0)
    -},G=s,V=a,W=Symbol("nomatch");return(e=>{
    -const n=Object.create(null),s=Object.create(null),a=[];let r=!0
    -;const l=/(^(<[^>]+>|\t|)+|\n)/gm,o="Could not find the language '{}', did you forget to load/include a language module?",g={
    -disableAutodetect:!0,name:"Plain text",contains:[]};let u={
    -noHighlightRe:/^(no-?highlight)$/i,
    -languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",
    -tabReplace:null,useBR:!1,languages:null,__emitter:c};function h(e){
    -return u.noHighlightRe.test(e)}function d(e,t,n,i){let s="",a=""
    -;"object"==typeof t?(s=e,
    -n=t.ignoreIllegals,a=t.language,i=void 0):(K("10.7.0","highlight(lang, code, ...args) has been deprecated."),
    -K("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
    -a=e,s=t);const r={code:s,language:a};M("before:highlight",r)
    -;const l=r.result?r.result:f(r.language,r.code,n,i)
    -;return l.code=r.code,M("after:highlight",l),l}function f(e,t,s,l){
    -function c(e,t){const n=v.case_insensitive?t[0].toLowerCase():t[0]
    -;return Object.prototype.hasOwnProperty.call(e.keywords,n)&&e.keywords[n]}
    -function g(){null!=R.subLanguage?(()=>{if(""===M)return;let e=null
    -;if("string"==typeof R.subLanguage){
    -if(!n[R.subLanguage])return void k.addText(M)
    -;e=f(R.subLanguage,M,!0,_[R.subLanguage]),_[R.subLanguage]=e.top
    -}else e=p(M,R.subLanguage.length?R.subLanguage:null)
    -;R.relevance>0&&(O+=e.relevance),k.addSublanguage(e.emitter,e.language)
    -})():(()=>{if(!R.keywords)return void k.addText(M);let e=0
    -;R.keywordPatternRe.lastIndex=0;let t=R.keywordPatternRe.exec(M),n="";for(;t;){
    -n+=M.substring(e,t.index);const i=c(R,t);if(i){const[e,s]=i
    -;if(k.addText(n),n="",O+=s,e.startsWith("_"))n+=t[0];else{
    -const n=v.classNameAliases[e]||e;k.addKeyword(t[0],n)}}else n+=t[0]
    -;e=R.keywordPatternRe.lastIndex,t=R.keywordPatternRe.exec(M)}
    -n+=M.substr(e),k.addText(n)})(),M=""}function h(e){
    -return e.className&&k.openNode(v.classNameAliases[e.className]||e.className),
    -R=Object.create(e,{parent:{value:R}}),R}function d(e,t,n){let s=((e,t)=>{
    -const n=e&&e.exec(t);return n&&0===n.index})(e.endRe,n);if(s){if(e["on:end"]){
    -const n=new i(e);e["on:end"](t,n),n.isMatchIgnored&&(s=!1)}if(s){
    -for(;e.endsParent&&e.parent;)e=e.parent;return e}}
    -if(e.endsWithParent)return d(e.parent,t,n)}function m(e){
    -return 0===R.matcher.regexIndex?(M+=e[0],1):(I=!0,0)}function b(e){
    -const n=e[0],i=t.substr(e.index),s=d(R,e,i);if(!s)return W;const a=R
    -;a.skip?M+=n:(a.returnEnd||a.excludeEnd||(M+=n),g(),a.excludeEnd&&(M=n));do{
    -R.className&&k.closeNode(),R.skip||R.subLanguage||(O+=R.relevance),R=R.parent
    -}while(R!==s.parent)
    -;return s.starts&&(s.endSameAsBegin&&(s.starts.endRe=s.endRe),
    -h(s.starts)),a.returnEnd?0:n.length}let E={};function x(n,a){const l=a&&a[0]
    -;if(M+=n,null==l)return g(),0
    -;if("begin"===E.type&&"end"===a.type&&E.index===a.index&&""===l){
    -if(M+=t.slice(a.index,a.index+1),!r){const t=Error("0 width match regex")
    -;throw t.languageName=e,t.badRule=E.rule,t}return 1}
    -if(E=a,"begin"===a.type)return function(e){
    -const t=e[0],n=e.rule,s=new i(n),a=[n.__beforeBegin,n["on:begin"]]
    -;for(const n of a)if(n&&(n(e,s),s.isMatchIgnored))return m(t)
    -;return n&&n.endSameAsBegin&&(n.endRe=RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")),
    -n.skip?M+=t:(n.excludeBegin&&(M+=t),
    -g(),n.returnBegin||n.excludeBegin||(M=t)),h(n),n.returnBegin?0:t.length}(a)
    -;if("illegal"===a.type&&!s){
    -const e=Error('Illegal lexeme "'+l+'" for mode "'+(R.className||"<unnamed>")+'"')
    -;throw e.mode=R,e}if("end"===a.type){const e=b(a);if(e!==W)return e}
    -if("illegal"===a.type&&""===l)return 1
    -;if(L>1e5&&L>3*a.index)throw Error("potential infinite loop, way more iterations than matches")
    -;return M+=l,l.length}const v=N(e)
    -;if(!v)throw U(o.replace("{}",e)),Error('Unknown language: "'+e+'"')
    -;const w=T(v,{plugins:a});let y="",R=l||w;const _={},k=new u.__emitter(u);(()=>{
    -const e=[];for(let t=R;t!==v;t=t.parent)t.className&&e.unshift(t.className)
    -;e.forEach((e=>k.openNode(e)))})();let M="",O=0,A=0,L=0,I=!1;try{
    -for(R.matcher.considerAll();;){
    -L++,I?I=!1:R.matcher.considerAll(),R.matcher.lastIndex=A
    -;const e=R.matcher.exec(t);if(!e)break;const n=x(t.substring(A,e.index),e)
    -;A=e.index+n}return x(t.substr(A)),k.closeAllNodes(),k.finalize(),y=k.toHTML(),{
    -relevance:Math.floor(O),value:y,language:e,illegal:!1,emitter:k,top:R}}catch(n){
    -if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{
    -msg:n.message,context:t.slice(A-100,A+100),mode:n.mode},sofar:y,relevance:0,
    -value:G(t),emitter:k};if(r)return{illegal:!1,relevance:0,value:G(t),emitter:k,
    -language:e,top:R,errorRaised:n};throw n}}function p(e,t){
    -t=t||u.languages||Object.keys(n);const i=(e=>{const t={relevance:0,
    -emitter:new u.__emitter(u),value:G(e),illegal:!1,top:g}
    -;return t.emitter.addText(e),t})(e),s=t.filter(N).filter(k).map((t=>f(t,e,!1)))
    -;s.unshift(i);const a=s.sort(((e,t)=>{
    -if(e.relevance!==t.relevance)return t.relevance-e.relevance
    -;if(e.language&&t.language){if(N(e.language).supersetOf===t.language)return 1
    -;if(N(t.language).supersetOf===e.language)return-1}return 0})),[r,l]=a,o=r
    -;return o.second_best=l,o}const m={"before:highlightElement":({el:e})=>{
    -u.useBR&&(e.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ /]*>/g,"\n"))
    -},"after:highlightElement":({result:e})=>{
    -u.useBR&&(e.value=e.value.replace(/\n/g,"<br>"))}},b=/^(<[^>]+>|\t)+/gm,E={
    -"after:highlightElement":({result:e})=>{
    -u.tabReplace&&(e.value=e.value.replace(b,(e=>e.replace(/\t/g,u.tabReplace))))}}
    -;function x(e){let t=null;const n=(e=>{let t=e.className+" "
    -;t+=e.parentNode?e.parentNode.className:"";const n=u.languageDetectRe.exec(t)
    -;if(n){const t=N(n[1])
    -;return t||(z(o.replace("{}",n[1])),z("Falling back to no-highlight mode for this block.",e)),
    -t?n[1]:"no-highlight"}return t.split(/\s+/).find((e=>h(e)||N(e)))})(e)
    -;if(h(n))return;M("before:highlightElement",{el:e,language:n}),t=e
    -;const i=t.textContent,a=n?d(i,{language:n,ignoreIllegals:!0}):p(i)
    -;M("after:highlightElement",{el:e,result:a,text:i
    -}),e.innerHTML=a.value,((e,t,n)=>{const i=t?s[t]:n
    -;e.classList.add("hljs"),i&&e.classList.add(i)})(e,n,a.language),e.result={
    -language:a.language,re:a.relevance,relavance:a.relevance
    -},a.second_best&&(e.second_best={language:a.second_best.language,
    -re:a.second_best.relevance,relavance:a.second_best.relevance})}const v=()=>{
    -v.called||(v.called=!0,
    -K("10.6.0","initHighlighting() is deprecated.  Use highlightAll() instead."),
    -document.querySelectorAll("pre code").forEach(x))};let w=!1;function y(){
    -"loading"!==document.readyState?document.querySelectorAll("pre code").forEach(x):w=!0
    -}function N(e){return e=(e||"").toLowerCase(),n[e]||n[s[e]]}
    -function R(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{
    -s[e.toLowerCase()]=t}))}function k(e){const t=N(e)
    -;return t&&!t.disableAutodetect}function M(e,t){const n=e;a.forEach((e=>{
    -e[n]&&e[n](t)}))}
    -"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{
    -w&&y()}),!1),Object.assign(e,{highlight:d,highlightAuto:p,highlightAll:y,
    -fixMarkup:e=>{
    -return K("10.2.0","fixMarkup will be removed entirely in v11.0"),K("10.2.0","Please see https://github.com/highlightjs/highlight.js/issues/2534"),
    -t=e,
    -u.tabReplace||u.useBR?t.replace(l,(e=>"\n"===e?u.useBR?"<br>":e:u.tabReplace?e.replace(/\t/g,u.tabReplace):e)):t
    -;var t},highlightElement:x,
    -highlightBlock:e=>(K("10.7.0","highlightBlock will be removed entirely in v12.0"),
    -K("10.7.0","Please use highlightElement now."),x(e)),configure:e=>{
    -e.useBR&&(K("10.3.0","'useBR' will be removed entirely in v11.0"),
    -K("10.3.0","Please see https://github.com/highlightjs/highlight.js/issues/2559")),
    -u=V(u,e)},initHighlighting:v,initHighlightingOnLoad:()=>{
    -K("10.6.0","initHighlightingOnLoad() is deprecated.  Use highlightAll() instead."),
    -w=!0},registerLanguage:(t,i)=>{let s=null;try{s=i(e)}catch(e){
    -if(U("Language definition for '{}' could not be registered.".replace("{}",t)),
    -!r)throw e;U(e),s=g}
    -s.name||(s.name=t),n[t]=s,s.rawDefinition=i.bind(null,e),s.aliases&&R(s.aliases,{
    -languageName:t})},unregisterLanguage:e=>{delete n[e]
    -;for(const t of Object.keys(s))s[t]===e&&delete s[t]},
    -listLanguages:()=>Object.keys(n),getLanguage:N,registerAliases:R,
    -requireLanguage:e=>{
    -K("10.4.0","requireLanguage will be removed entirely in v11."),
    -K("10.4.0","Please see https://github.com/highlightjs/highlight.js/pull/2844")
    -;const t=N(e);if(t)return t
    -;throw Error("The '{}' language is required, but not loaded.".replace("{}",e))},
    -autoDetection:k,inherit:V,addPlugin:e=>{(e=>{
    -e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{
    -e["before:highlightBlock"](Object.assign({block:t.el},t))
    -}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{
    -e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),a.push(e)},
    -vuePlugin:P(e).VuePlugin}),e.debugMode=()=>{r=!1},e.safeMode=()=>{r=!0
    -},e.versionString="10.7.2";for(const e in _)"object"==typeof _[e]&&t(_[e])
    -;return Object.assign(e,_),e.addPlugin(m),e.addPlugin(D),e.addPlugin(E),e})({})
    -}();"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);
    -hljs.registerLanguage("apache",(()=>{"use strict";return e=>{const n={
    -className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/}
    -;return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,
    -contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,
    -contains:[n,{className:"number",begin:/:\d{1,5}/
    -},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",
    -begin:/\w+/,relevance:0,keywords:{
    -nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"
    -},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},
    -contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",
    -begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}]
    -},n,{className:"number",begin:/\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}
    -})());
    -hljs.registerLanguage("bash",(()=>{"use strict";function e(...e){
    -return e.map((e=>{return(s=e)?"string"==typeof s?s:s.source:null;var s
    -})).join("")}return s=>{const n={},t={begin:/\$\{/,end:/\}/,contains:["self",{
    -begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{
    -begin:e(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},t]});const a={
    -className:"subst",begin:/\$\(/,end:/\)/,contains:[s.BACKSLASH_ESCAPE]},i={
    -begin:/<<-?\s*(?=\w+)/,starts:{contains:[s.END_SAME_AS_BEGIN({begin:/(\w+)/,
    -end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/,
    -contains:[s.BACKSLASH_ESCAPE,n,a]};a.contains.push(c);const o={begin:/\$\(\(/,
    -end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},s.NUMBER_MODE,n]
    -},r=s.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10
    -}),l={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,
    -contains:[s.inherit(s.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{
    -name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z._-]+\b/,
    -keyword:"if then else elif fi for while in do done case esac function",
    -literal:"true false",
    -built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp"
    -},contains:[r,s.SHEBANG(),l,o,s.HASH_COMMENT_MODE,i,c,{className:"",begin:/\\"/
    -},{className:"string",begin:/'/,end:/'/},n]}}})());
    -hljs.registerLanguage("c",(()=>{"use strict";function e(e){
    -return((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(",e,")?")
    -}return t=>{const n=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]
    -}),r="[a-zA-Z_]\\w*::",a="(decltype\\(auto\\)|"+e(r)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",i={
    -className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",
    -variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",
    -contains:[t.BACKSLASH_ESCAPE]},{
    -begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
    -end:"'",illegal:"."},t.END_SAME_AS_BEGIN({
    -begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={
    -className:"number",variants:[{begin:"\\b(0b[01']+)"},{
    -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
    -},{
    -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    -}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
    -"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
    -},contains:[{begin:/\\\n/,relevance:0},t.inherit(s,{className:"meta-string"}),{
    -className:"meta-string",begin:/<.*?>/},n,t.C_BLOCK_COMMENT_MODE]},l={
    -className:"title",begin:e(r)+t.IDENT_RE,relevance:0
    -},d=e(r)+t.IDENT_RE+"\\s*\\(",u={
    -keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",
    -built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary",
    -literal:"true false nullptr NULL"},m=[c,i,n,t.C_BLOCK_COMMENT_MODE,o,s],p={
    -variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{
    -beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:m.concat([{
    -begin:/\(/,end:/\)/,keywords:u,contains:m.concat(["self"]),relevance:0}]),
    -relevance:0},_={className:"function",begin:"("+a+"[\\*&\\s]+)+"+d,
    -returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/,
    -contains:[{begin:"decltype\\(auto\\)",keywords:u,relevance:0},{begin:d,
    -returnBegin:!0,contains:[l],relevance:0},{className:"params",begin:/\(/,
    -end:/\)/,keywords:u,relevance:0,contains:[n,t.C_BLOCK_COMMENT_MODE,s,o,i,{
    -begin:/\(/,end:/\)/,keywords:u,relevance:0,
    -contains:["self",n,t.C_BLOCK_COMMENT_MODE,s,o,i]}]
    -},i,n,t.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u,
    -disableAutodetect:!0,illegal:"</",contains:[].concat(p,_,m,[c,{
    -begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",
    -end:">",keywords:u,contains:["self",i]},{begin:t.IDENT_RE+"::",keywords:u},{
    -className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,
    -contains:[{beginKeywords:"final class struct"},t.TITLE_MODE]}]),exports:{
    -preprocessor:c,strings:s,keywords:u}}}})());
    -hljs.registerLanguage("coffeescript",(()=>{"use strict"
    -;const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
    -;return r=>{const t={
    -keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((i=["var","const","let","function","static"],
    -e=>!i.includes(e))),literal:n.concat(["yes","no","on","off"]),
    -built_in:a.concat(["npm","print"])};var i;const s="[A-Za-z$_][0-9A-Za-z$_]*",o={
    -className:"subst",begin:/#\{/,end:/\}/,keywords:t
    -},c=[r.BINARY_NUMBER_MODE,r.inherit(r.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",
    -relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,
    -contains:[r.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[r.BACKSLASH_ESCAPE]
    -},{begin:/"""/,end:/"""/,contains:[r.BACKSLASH_ESCAPE,o]},{begin:/"/,end:/"/,
    -contains:[r.BACKSLASH_ESCAPE,o]}]},{className:"regexp",variants:[{begin:"///",
    -end:"///",contains:[o,r.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)",
    -relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+s
    -},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{
    -begin:"```",end:"```"},{begin:"`",end:"`"}]}];o.contains=c
    -;const l=r.inherit(r.TITLE_MODE,{begin:s}),d="(\\(.*\\)\\s*)?\\B[-=]>",g={
    -className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,
    -end:/\)/,keywords:t,contains:["self"].concat(c)}]};return{name:"CoffeeScript",
    -aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/,
    -contains:c.concat([r.COMMENT("###","###"),r.HASH_COMMENT_MODE,{
    -className:"function",begin:"^\\s*"+s+"\\s*=\\s*"+d,end:"[-=]>",returnBegin:!0,
    -contains:[l,g]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",
    -begin:d,end:"[-=]>",returnBegin:!0,contains:[g]}]},{className:"class",
    -beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{
    -beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[l]},l]
    -},{begin:s+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}})());
    -hljs.registerLanguage("cpp",(()=>{"use strict";function e(e){
    -return t("(",e,")?")}function t(...e){return e.map((e=>{
    -return(t=e)?"string"==typeof t?t:t.source:null;var t})).join("")}return n=>{
    -const r=n.COMMENT("//","$",{contains:[{begin:/\\\n/}]
    -}),a="[a-zA-Z_]\\w*::",i="(decltype\\(auto\\)|"+e(a)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",s={
    -className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",
    -variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",
    -contains:[n.BACKSLASH_ESCAPE]},{
    -begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
    -end:"'",illegal:"."},n.END_SAME_AS_BEGIN({
    -begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={
    -className:"number",variants:[{begin:"\\b(0b[01']+)"},{
    -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
    -},{
    -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    -}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
    -"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
    -},contains:[{begin:/\\\n/,relevance:0},n.inherit(c,{className:"meta-string"}),{
    -className:"meta-string",begin:/<.*?>/},r,n.C_BLOCK_COMMENT_MODE]},d={
    -className:"title",begin:e(a)+n.IDENT_RE,relevance:0
    -},u=e(a)+n.IDENT_RE+"\\s*\\(",m={
    -keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",
    -built_in:"_Bool _Complex _Imaginary",
    -_relevance_hints:["asin","atan2","atan","calloc","ceil","cosh","cos","exit","exp","fabs","floor","fmod","fprintf","fputs","free","frexp","auto_ptr","deque","list","queue","stack","vector","map","set","pair","bitset","multiset","multimap","unordered_set","fscanf","future","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","tolower","toupper","labs","ldexp","log10","log","malloc","realloc","memchr","memcmp","memcpy","memset","modf","pow","printf","putchar","puts","scanf","sinh","sin","snprintf","sprintf","sqrt","sscanf","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","tanh","tan","unordered_map","unordered_multiset","unordered_multimap","priority_queue","make_pair","array","shared_ptr","abort","terminate","abs","acos","vfprintf","vprintf","vsprintf","endl","initializer_list","unique_ptr","complex","imaginary","std","string","wstring","cin","cout","cerr","clog","stdin","stdout","stderr","stringstream","istringstream","ostringstream"],
    -literal:"true false nullptr NULL"},p={className:"function.dispatch",relevance:0,
    -keywords:m,
    -begin:t(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!while)/,n.IDENT_RE,(_=/\s*\(/,
    -t("(?=",_,")")))};var _;const g=[p,l,s,r,n.C_BLOCK_COMMENT_MODE,o,c],b={
    -variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{
    -beginKeywords:"new throw return else",end:/;/}],keywords:m,contains:g.concat([{
    -begin:/\(/,end:/\)/,keywords:m,contains:g.concat(["self"]),relevance:0}]),
    -relevance:0},f={className:"function",begin:"("+i+"[\\*&\\s]+)+"+u,
    -returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:m,illegal:/[^\w\s\*&:<>.]/,
    -contains:[{begin:"decltype\\(auto\\)",keywords:m,relevance:0},{begin:u,
    -returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{begin:/:/,
    -endsWithParent:!0,contains:[c,o]},{className:"params",begin:/\(/,end:/\)/,
    -keywords:m,relevance:0,contains:[r,n.C_BLOCK_COMMENT_MODE,c,o,s,{begin:/\(/,
    -end:/\)/,keywords:m,relevance:0,contains:["self",r,n.C_BLOCK_COMMENT_MODE,c,o,s]
    -}]},s,r,n.C_BLOCK_COMMENT_MODE,l]};return{name:"C++",
    -aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:m,illegal:"</",
    -classNameAliases:{"function.dispatch":"built_in"},
    -contains:[].concat(b,f,p,g,[l,{
    -begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",
    -end:">",keywords:m,contains:["self",s]},{begin:n.IDENT_RE+"::",keywords:m},{
    -className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,
    -contains:[{beginKeywords:"final class struct"},n.TITLE_MODE]}]),exports:{
    -preprocessor:l,strings:c,keywords:m}}}})());
    -hljs.registerLanguage("csharp",(()=>{"use strict";return e=>{const n={
    -keyword:["abstract","as","base","break","case","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]),
    -built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],
    -literal:["default","false","null","true"]},a=e.inherit(e.TITLE_MODE,{
    -begin:"[a-zA-Z](\\.?\\w)*"}),i={className:"number",variants:[{
    -begin:"\\b(0b[01']+)"},{
    -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{
    -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    -}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]
    -},t=e.inherit(s,{illegal:/\n/}),r={className:"subst",begin:/\{/,end:/\}/,
    -keywords:n},l=e.inherit(r,{illegal:/\n/}),c={className:"string",begin:/\$"/,
    -end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/
    -},e.BACKSLASH_ESCAPE,l]},o={className:"string",begin:/\$@"/,end:'"',contains:[{
    -begin:/\{\{/},{begin:/\}\}/},{begin:'""'},r]},d=e.inherit(o,{illegal:/\n/,
    -contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},l]})
    -;r.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE],
    -l.contains=[d,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.inherit(e.C_BLOCK_COMMENT_MODE,{
    -illegal:/\n/})];const g={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
    -},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},a]
    -},_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={
    -begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],
    -keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,
    -contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{
    -begin:"\x3c!--|--\x3e"},{begin:"</?",end:">"}]}]
    -}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",
    -end:"$",keywords:{
    -"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"
    -}},g,i,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,
    -illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"
    -},a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",
    -relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
    -contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
    -beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
    -contains:[a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",
    -begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{
    -className:"meta-string",begin:/"/,end:/"/}]},{
    -beginKeywords:"new return throw await else",relevance:0},{className:"function",
    -begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0,
    -end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{
    -beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial",
    -relevance:0},{begin:e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0,
    -contains:[e.TITLE_MODE,E],relevance:0},{className:"params",begin:/\(/,end:/\)/,
    -excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,
    -contains:[g,i,e.C_BLOCK_COMMENT_MODE]
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}})());
    -hljs.registerLanguage("css",(()=>{"use strict"
    -;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse()
    -;return n=>{const a=(e=>({IMPORTANT:{className:"meta",begin:"!important"},
    -HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},
    -ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,
    -illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}
    -}))(n),l=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS",
    -case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},
    -classNameAliases:{keyframePosition:"selector-tag"},
    -contains:[n.C_BLOCK_COMMENT_MODE,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/
    -},n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0
    -},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0
    -},a.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{
    -begin:":("+i.join("|")+")"},{begin:"::("+o.join("|")+")"}]},{
    -className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{begin:":",end:"[;}]",
    -contains:[a.HEXCOLOR,a.IMPORTANT,n.CSS_NUMBER_MODE,...l,{
    -begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"
    -},contains:[{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]
    -},{className:"built_in",begin:/[\w-]+(?=\()/}]},{
    -begin:(s=/@/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",s,")")),
    -end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",
    -begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,
    -relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",
    -attribute:t.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"
    -},...l,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",
    -begin:"\\b("+e.join("|")+")\\b"}]};var s}})());
    -hljs.registerLanguage("diff",(()=>{"use strict";return e=>({name:"Diff",
    -aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{
    -begin:/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{
    -begin:/^--- +\d+,\d+ +----$/}]},{className:"comment",variants:[{begin:/Index: /,
    -end:/$/},{begin:/^index/,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^-{3}/,end:/$/
    -},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/^\*{15}$/},{
    -begin:/^diff --git/,end:/$/}]},{className:"addition",begin:/^\+/,end:/$/},{
    -className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,
    -end:/$/}]})})());
    -hljs.registerLanguage("go",(()=>{"use strict";return e=>{const n={
    -keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",
    -literal:"true false iota nil",
    -built_in:"append cap close complex copy imag len make new panic print println real recover delete"
    -};return{name:"Go",aliases:["golang"],keywords:n,illegal:"</",
    -contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",
    -variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{
    -className:"number",variants:[{begin:e.C_NUMBER_RE+"[i]",relevance:1
    -},e.C_NUMBER_MODE]},{begin:/:=/},{className:"function",beginKeywords:"func",
    -end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",
    -begin:/\(/,end:/\)/,keywords:n,illegal:/["']/}]}]}}})());
    -hljs.registerLanguage("http",(()=>{"use strict";function e(...e){
    -return e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null;var n
    -})).join("")}return n=>{const a="HTTP/(2|1\\.[01])",s={className:"attribute",
    -begin:e("^",/[A-Za-z][A-Za-z0-9-]*/,"(?=\\:\\s)"),starts:{contains:[{
    -className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]}
    -},t=[s,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{
    -name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+a+" \\d{3})",
    -end:/$/,contains:[{className:"meta",begin:a},{className:"number",
    -begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:t}},{
    -begin:"(?=^[A-Z]+ (.*?) "+a+"$)",end:/$/,contains:[{className:"string",
    -begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:a},{
    -className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:t}
    -},n.inherit(s,{relevance:0})]}}})());
    -hljs.registerLanguage("ini",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(...n){
    -return n.map((n=>e(n))).join("")}return s=>{const a={className:"number",
    -relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:s.NUMBER_RE}]
    -},i=s.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const t={
    -className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/
    -}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={
    -className:"string",contains:[s.BACKSLASH_ESCAPE],variants:[{begin:"'''",
    -end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'
    -},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[i,r,t,l,a,"self"],
    -relevance:0
    -},g="("+[/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/].map((n=>e(n))).join("|")+")"
    -;return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,
    -contains:[i,{className:"section",begin:/\[+/,end:/\]+/},{
    -begin:n(g,"(\\s*\\.\\s*",g,")*",n("(?=",/\s*=\s*[^#\s]/,")")),className:"attr",
    -starts:{end:/$/,contains:[i,c,r,t,l,a]}}]}}})());
    -hljs.registerLanguage("java",(()=>{"use strict"
    -;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={
    -className:"number",variants:[{
    -begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    -},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
    -begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{
    -begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    -},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{
    -begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
    -relevance:0};return e=>{
    -var n="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",s={
    -className:"meta",begin:"@[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",
    -contains:[{begin:/\(/,end:/\)/,contains:["self"]}]};const r=a;return{
    -name:"Java",aliases:["jsp"],keywords:n,illegal:/<\/|#/,
    -contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,
    -relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{
    -begin:/import java\.[a-z]+\./,keywords:"import",relevance:2
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{
    -className:"class",beginKeywords:"class interface enum",end:/[{;=]/,
    -excludeEnd:!0,relevance:1,keywords:"class interface enum",illegal:/[:"\[\]]/,
    -contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{
    -beginKeywords:"new throw return else",relevance:0},{className:"class",
    -begin:"record\\s+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,excludeEnd:!0,
    -end:/[{;=]/,keywords:n,contains:[{beginKeywords:"record"},{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,
    -keywords:n,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE]
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"function",
    -begin:"([\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*(<[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*(\\s*,\\s*[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",
    -returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:n,contains:[{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,
    -keywords:n,relevance:0,
    -contains:[s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.C_BLOCK_COMMENT_MODE]
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},r,s]}}})());
    -hljs.registerLanguage("javascript",(()=>{"use strict"
    -;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
    -;function r(e){return t("(?=",e,")")}function t(...e){return e.map((e=>{
    -return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return i=>{
    -const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,
    -isTrulyOpeningTag:(e,n)=>{const a=e[0].length+e.index,s=e.input[a]
    -;"<"!==s?">"===s&&(((e,{after:n})=>{const a="</"+e[0].slice(1)
    -;return-1!==e.input.indexOf(a,n)})(e,{after:a
    -})||n.ignoreMatch()):n.ignoreMatch()}},l={$pattern:e,keyword:n,literal:a,
    -built_in:s},g="\\.([0-9](_?[0-9])*)",b="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",d={
    -className:"number",variants:[{
    -begin:`(\\b(${b})((${g})|\\.)?|(${g}))[eE][+-]?([0-9](_?[0-9])*)\\b`},{
    -begin:`\\b(${b})\\b((${g})\\b|\\.)?|(${g})\\b`},{
    -begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
    -begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
    -begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
    -begin:"\\b0[0-7]+n?\\b"}],relevance:0},E={className:"subst",begin:"\\$\\{",
    -end:"\\}",keywords:l,contains:[]},u={begin:"html`",end:"",starts:{end:"`",
    -returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,E],subLanguage:"xml"}},_={
    -begin:"css`",end:"",starts:{end:"`",returnEnd:!1,
    -contains:[i.BACKSLASH_ESCAPE,E],subLanguage:"css"}},m={className:"string",
    -begin:"`",end:"`",contains:[i.BACKSLASH_ESCAPE,E]},y={className:"comment",
    -variants:[i.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
    -className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",
    -end:"\\}",relevance:0},{className:"variable",begin:c+"(?=\\s*(-)|$)",
    -endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
    -}),i.C_BLOCK_COMMENT_MODE,i.C_LINE_COMMENT_MODE]
    -},N=[i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,u,_,m,d,i.REGEXP_MODE]
    -;E.contains=N.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(N)
    -});const A=[].concat(y,E.contains),f=A.concat([{begin:/\(/,end:/\)/,keywords:l,
    -contains:["self"].concat(A)}]),p={className:"params",begin:/\(/,end:/\)/,
    -excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f};return{name:"Javascript",
    -aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:f},
    -illegal:/#(?![$_A-z])/,contains:[i.SHEBANG({label:"shebang",binary:"node",
    -relevance:5}),{label:"use_strict",className:"meta",relevance:10,
    -begin:/^\s*['"]use (strict|asm)['"]/
    -},i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,u,_,m,y,d,{
    -begin:t(/[{,\n]\s*/,r(t(/(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/,c+"\\s*:"))),
    -relevance:0,contains:[{className:"attr",begin:c+r("\\s*:"),relevance:0}]},{
    -begin:"("+i.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
    -keywords:"return throw case",contains:[y,i.REGEXP_MODE,{className:"function",
    -begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+i.UNDERSCORE_IDENT_RE+")\\s*=>",
    -returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{
    -begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0
    -},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}]
    -},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{
    -variants:[{begin:"<>",end:"</>"},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,
    -end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,
    -contains:["self"]}]}],relevance:0},{className:"function",
    -beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l,
    -contains:["self",i.inherit(i.TITLE_MODE,{begin:c}),p],illegal:/%/},{
    -beginKeywords:"while if switch catch for"},{className:"function",
    -begin:i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
    -returnBegin:!0,contains:[p,i.inherit(i.TITLE_MODE,{begin:c})]},{variants:[{
    -begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class",
    -beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{
    -beginKeywords:"extends"},i.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/,
    -end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:c}),"self",p]
    -},{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set",
    -contains:[i.inherit(i.TITLE_MODE,{begin:c}),{begin:/\(\)/},p]},{begin:/\$[(.]/}]
    -}}})());
    -hljs.registerLanguage("json",(()=>{"use strict";return n=>{const e={
    -literal:"true false null"
    -},i=[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],a=[n.QUOTE_STRING_MODE,n.C_NUMBER_MODE],l={
    -end:",",endsWithParent:!0,excludeEnd:!0,contains:a,keywords:e},t={begin:/\{/,
    -end:/\}/,contains:[{className:"attr",begin:/"/,end:/"/,
    -contains:[n.BACKSLASH_ESCAPE],illegal:"\\n"},n.inherit(l,{begin:/:/
    -})].concat(i),illegal:"\\S"},s={begin:"\\[",end:"\\]",contains:[n.inherit(l)],
    -illegal:"\\S"};return a.push(t,s),i.forEach((n=>{a.push(n)})),{name:"JSON",
    -contains:a,keywords:e,illegal:"\\S"}}})());
    -hljs.registerLanguage("kotlin",(()=>{"use strict"
    -;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={
    -className:"number",variants:[{
    -begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    -},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
    -begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{
    -begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    -},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{
    -begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
    -relevance:0};return e=>{const n={
    -keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",
    -built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",
    -literal:"true false null"},i={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"
    -},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},t={
    -className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string",
    -variants:[{begin:'"""',end:'"""(?=[^"])',contains:[t,s]},{begin:"'",end:"'",
    -illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,
    -contains:[e.BACKSLASH_ESCAPE,t,s]}]};s.contains.push(r);const l={
    -className:"meta",
    -begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"
    -},c={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,
    -end:/\)/,contains:[e.inherit(r,{className:"meta-string"})]}]
    -},o=a,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),E={
    -variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,
    -contains:[]}]},d=E;return d.variants[1].contains=[E],E.variants[1].contains=[d],
    -{name:"Kotlin",aliases:["kt","kts"],keywords:n,
    -contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",
    -begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,{className:"keyword",
    -begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",
    -begin:/@\w+/}]}},i,l,c,{className:"function",beginKeywords:"fun",end:"[(]|$",
    -returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,
    -keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,
    -endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,
    -endsWithParent:!0,contains:[E,e.C_LINE_COMMENT_MODE,b],relevance:0
    -},e.C_LINE_COMMENT_MODE,b,l,c,r,e.C_NUMBER_MODE]},b]},{className:"class",
    -beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,
    -illegal:"extends implements",contains:[{
    -beginKeywords:"public protected internal private constructor"
    -},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,
    -excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,
    -excludeBegin:!0,returnEnd:!0},l,c]},r,{className:"meta",begin:"^#!/usr/bin/env",
    -end:"$",illegal:"\n"},o]}}})());
    -hljs.registerLanguage("less",(()=>{"use strict"
    -;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],n=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse(),r=i.concat(o)
    -;return a=>{const s=(e=>({IMPORTANT:{className:"meta",begin:"!important"},
    -HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},
    -ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,
    -illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}
    -}))(a),l=r,d="([\\w-]+|@\\{[\\w-]+\\})",c=[],g=[],b=e=>({className:"string",
    -begin:"~?"+e+".*?"+e}),m=(e,t,i)=>({className:e,begin:t,relevance:i}),u={
    -$pattern:/[a-z-]+/,keyword:"and or not only",attribute:t.join(" ")},p={
    -begin:"\\(",end:"\\)",contains:g,keywords:u,relevance:0}
    -;g.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,b("'"),b('"'),a.CSS_NUMBER_MODE,{
    -begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",
    -excludeEnd:!0}
    -},s.HEXCOLOR,p,m("variable","@@?[\\w-]+",10),m("variable","@\\{[\\w-]+\\}"),m("built_in","~?`[^`]*?`"),{
    -className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0
    -},s.IMPORTANT);const f=g.concat({begin:/\{/,end:/\}/,contains:c}),h={
    -beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"
    -}].concat(g)},w={begin:d+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,
    -contains:[{begin:/-(webkit|moz|ms|o)-/},{className:"attribute",
    -begin:"\\b("+n.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,
    -illegal:"[<=$]",relevance:0,contains:g}}]},v={className:"keyword",
    -begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",
    -starts:{end:"[;{}]",keywords:u,returnEnd:!0,contains:g,relevance:0}},y={
    -className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{
    -begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:f}},k={variants:[{
    -begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:d,end:/\{/}],returnBegin:!0,
    -returnEnd:!0,illegal:"[<='$\"]",relevance:0,
    -contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,h,m("keyword","all\\b"),m("variable","@\\{[\\w-]+\\}"),{
    -begin:"\\b("+e.join("|")+")\\b",className:"selector-tag"
    -},m("selector-tag",d+"%?",0),m("selector-id","#"+d),m("selector-class","\\."+d,0),m("selector-tag","&",0),s.ATTRIBUTE_SELECTOR_MODE,{
    -className:"selector-pseudo",begin:":("+i.join("|")+")"},{
    -className:"selector-pseudo",begin:"::("+o.join("|")+")"},{begin:"\\(",end:"\\)",
    -contains:f},{begin:"!important"}]},E={begin:`[\\w-]+:(:)?(${l.join("|")})`,
    -returnBegin:!0,contains:[k]}
    -;return c.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,v,y,E,w,k),{
    -name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:c}}})());
    -hljs.registerLanguage("lua",(()=>{"use strict";return e=>{
    -const t="\\[=*\\[",a="\\]=*\\]",n={begin:t,end:a,contains:["self"]
    -},o=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[",a,{contains:[n],
    -relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,
    -literal:"true false nil",
    -keyword:"and break do else elseif end for goto if in local not or repeat return then until while",
    -built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"
    -},contains:o.concat([{className:"function",beginKeywords:"function",end:"\\)",
    -contains:[e.inherit(e.TITLE_MODE,{
    -begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",
    -begin:"\\(",endsWithParent:!0,contains:o}].concat(o)
    -},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",
    -begin:t,end:a,contains:[n],relevance:5}])}}})());
    -hljs.registerLanguage("makefile",(()=>{"use strict";return e=>{const i={
    -className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",
    -contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},a={className:"string",
    -begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i]},n={className:"variable",
    -begin:/\$\([\w-]+\s/,end:/\)/,keywords:{
    -built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"
    -},contains:[i]},s={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},r={
    -className:"section",begin:/^[^\s]+:/,end:/$/,contains:[i]};return{
    -name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,
    -keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"
    -},contains:[e.HASH_COMMENT_MODE,i,a,n,s,{className:"meta",begin:/^\.PHONY:/,
    -end:/$/,keywords:{$pattern:/[\.\w]+/,"meta-keyword":".PHONY"}},r]}}})());
    -hljs.registerLanguage("xml",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")}
    -function a(...n){return n.map((n=>e(n))).join("")}function s(...n){
    -return"("+n.map((n=>e(n))).join("|")+")"}return e=>{
    -const t=a(/[A-Z_]/,a("(",/[A-Z0-9_.-]*:/,")?"),/[A-Z0-9_.-]*/),i={
    -className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},r={begin:/\s/,
    -contains:[{className:"meta-keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]
    -},c=e.inherit(r,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{
    -className:"meta-string"}),g=e.inherit(e.QUOTE_STRING_MODE,{
    -className:"meta-string"}),m={endsWithParent:!0,illegal:/</,relevance:0,
    -contains:[{className:"attr",begin:/[A-Za-z0-9._:-]+/,relevance:0},{begin:/=\s*/,
    -relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,
    -end:/"/,contains:[i]},{begin:/'/,end:/'/,contains:[i]},{begin:/[^\s"'=<>`]+/}]}]
    -}]};return{name:"HTML, XML",
    -aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],
    -case_insensitive:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,
    -relevance:10,contains:[r,g,l,c,{begin:/\[/,end:/\]/,contains:[{className:"meta",
    -begin:/<![a-z]/,end:/>/,contains:[r,c,g,l]}]}]},e.COMMENT(/<!--/,/-->/,{
    -relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},i,{
    -className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",
    -begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[m],starts:{
    -end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",
    -begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[m],starts:{
    -end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{
    -className:"tag",begin:/<>|<\/>/},{className:"tag",
    -begin:a(/</,n(a(t,s(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",
    -begin:t,relevance:0,starts:m}]},{className:"tag",begin:a(/<\//,n(a(t,/>/))),
    -contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,
    -endsParent:!0}]}]}}})());
    -hljs.registerLanguage("markdown",(()=>{"use strict";function n(...n){
    -return n.map((n=>{return(e=n)?"string"==typeof e?e:e.source:null;var e
    -})).join("")}return e=>{const a={begin:/<\/?[A-Za-z_]/,end:">",
    -subLanguage:"xml",relevance:0},i={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0
    -},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,
    -relevance:2},{begin:n(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),
    -relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{
    -begin:/\[.+?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{
    -className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,
    -returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",
    -excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",
    -end:"\\]",excludeBegin:!0,excludeEnd:!0}]},s={className:"strong",contains:[],
    -variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},c={
    -className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{
    -begin:/_(?!_)/,end:/_/,relevance:0}]};s.contains.push(c),c.contains.push(s)
    -;let t=[a,i]
    -;return s.contains=s.contains.concat(t),c.contains=c.contains.concat(t),
    -t=t.concat(s,c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{
    -className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:t},{
    -begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",
    -contains:t}]}]},a,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",
    -end:"\\s+",excludeEnd:!0},s,c,{className:"quote",begin:"^>\\s+",contains:t,
    -end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{
    -begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{
    -begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",
    -contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{
    -begin:"^[-\\*]{3,}",end:"$"},i,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{
    -className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{
    -className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}})());
    -hljs.registerLanguage("nginx",(()=>{"use strict";return e=>{const n={
    -className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/\}/},{
    -begin:/[$@]/+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,keywords:{
    -$pattern:"[a-z/_]+",
    -literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"
    -},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",
    -contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/
    -}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]
    -},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",
    -end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{
    -begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",
    -begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{
    -className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},n]};return{
    -name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\{/,contains:[{
    -className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|\\{",returnBegin:!0,contains:[{
    -className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}],
    -illegal:"[^\\s\\}]"}}})());
    -hljs.registerLanguage("objectivec",(()=>{"use strict";return e=>{
    -const n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n,
    -keyword:"@interface @class @protocol @implementation"};return{
    -name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],
    -keywords:{$pattern:n,
    -keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",
    -literal:"false true FALSE TRUE nil YES NO NULL",
    -built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"
    -},illegal:"</",contains:[{className:"built_in",
    -begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{
    -className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",
    -contains:[e.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,
    -keywords:{
    -"meta-keyword":"if else elif endif define undef warning error line pragma ifdef ifndef include"
    -},contains:[{begin:/\\\n/,relevance:0},e.inherit(e.QUOTE_STRING_MODE,{
    -className:"meta-string"}),{className:"meta-string",begin:/<.*?>/,end:/$/,
    -illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
    -className:"class",begin:"("+_.keyword.split(" ").join("|")+")\\b",end:/(\{|$)/,
    -excludeEnd:!0,keywords:_,contains:[e.UNDERSCORE_TITLE_MODE]},{
    -begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}})());
    -hljs.registerLanguage("perl",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(...n){
    -return n.map((n=>e(n))).join("")}function t(...n){
    -return"("+n.map((n=>e(n))).join("|")+")"}return e=>{
    -const r=/[dualxmsipngr]{0,12}/,s={$pattern:/[\w.]+/,
    -keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0"
    -},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:s},a={begin:/->\{/,
    -end:/\}/},o={variants:[{begin:/\$\d/},{
    -begin:n(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")
    -},{begin:/[$%@][^\s\w{]/,relevance:0}]
    -},c=[e.BACKSLASH_ESCAPE,i,o],g=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],l=(e,t,s="\\1")=>{
    -const i="\\1"===s?s:n(s,t)
    -;return n(n("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,i,/(?:\\.|[^\\\/])*?/,s,r)
    -},d=(e,t,s)=>n(n("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,s,r),p=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{
    -endsWithParent:!0}),a,{className:"string",contains:c,variants:[{
    -begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",
    -end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{
    -begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",
    -relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",
    -contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",
    -contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{
    -begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",
    -begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",
    -relevance:0},{
    -begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",
    -keywords:"split return print reverse grep",relevance:0,
    -contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{
    -begin:l("s|tr|y",t(...g))},{begin:l("s|tr|y","\\(","\\)")},{
    -begin:l("s|tr|y","\\[","\\]")},{begin:l("s|tr|y","\\{","\\}")}],relevance:2},{
    -className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{
    -begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",t(...g),/\1/)},{
    -begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{
    -begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",
    -end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{
    -begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",
    -subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]
    -}];return i.contains=p,a.contains=p,{name:"Perl",aliases:["pl","pm"],keywords:s,
    -contains:p}}})());
    -hljs.registerLanguage("php",(()=>{"use strict";return e=>{const r={
    -className:"variable",
    -begin:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?![A-Za-z0-9])(?![$])"},t={
    -className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{
    -begin:/\?>/}]},a={className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,
    -end:/\}/}]},n=e.inherit(e.APOS_STRING_MODE,{illegal:null
    -}),i=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,
    -contains:e.QUOTE_STRING_MODE.contains.concat(a)}),o=e.END_SAME_AS_BEGIN({
    -begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/,
    -contains:e.QUOTE_STRING_MODE.contains.concat(a)}),l={className:"string",
    -contains:[e.BACKSLASH_ESCAPE,t],variants:[e.inherit(n,{begin:"b'",end:"'"
    -}),e.inherit(i,{begin:'b"',end:'"'}),i,n,o]},s={className:"number",variants:[{
    -begin:"\\b0b[01]+(?:_[01]+)*\\b"},{begin:"\\b0o[0-7]+(?:_[0-7]+)*\\b"},{
    -begin:"\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b"},{
    -begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:e[+-]?\\d+)?"
    -}],relevance:0},c={
    -keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile enum eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list match|0 mixed new object or private protected public real return string switch throw trait try unset use var void while xor yield",
    -literal:"false null true",
    -built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException UnhandledMatchError ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Stringable Throwable Traversable WeakReference WeakMap Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass"
    -};return{aliases:["php3","php4","php5","php6","php7","php8"],
    -case_insensitive:!0,keywords:c,
    -contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[t]
    -}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]
    -}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,
    -keywords:"__halt_compiler"}),t,{className:"keyword",begin:/\$this\b/},r,{
    -begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",
    -relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,
    -illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{
    -begin:"=>",endsParent:!0},{className:"params",begin:"\\(",end:"\\)",
    -excludeBegin:!0,excludeEnd:!0,keywords:c,
    -contains:["self",r,e.C_BLOCK_COMMENT_MODE,l,s]}]},{className:"class",variants:[{
    -beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",
    -illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{
    -beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{
    -beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",relevance:0,end:";",
    -contains:[e.UNDERSCORE_TITLE_MODE]},l,s]}}})());
    -hljs.registerLanguage("php-template",(()=>{"use strict";return n=>({
    -name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,
    -subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',
    -end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{
    -illegal:null,className:null,contains:null,skip:!0
    -}),n.inherit(n.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,
    -skip:!0})]}]})})());
    -hljs.registerLanguage("plaintext",(()=>{"use strict";return t=>({
    -name:"Plain text",aliases:["text","txt"],disableAutodetect:!0})})());
    -hljs.registerLanguage("properties",(()=>{"use strict";return e=>{
    -var n="[ \\t\\f]*",a=n+"[:=]"+n,t="("+a+"|[ \\t\\f]+)",r="([^\\\\\\W:= \\t\\f\\n]|\\\\.)+",s="([^\\\\:= \\t\\f\\n]|\\\\.)+",i={
    -end:t,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{
    -begin:"\\\\\\\\"},{begin:"\\\\\\n"}]}};return{name:".properties",
    -case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{
    -returnBegin:!0,variants:[{begin:r+a,relevance:1},{begin:r+"[ \\t\\f]+",
    -relevance:0}],contains:[{className:"attr",begin:r,endsParent:!0,relevance:0}],
    -starts:i},{begin:s+t,returnBegin:!0,relevance:0,contains:[{className:"meta",
    -begin:s,endsParent:!0,relevance:0}],starts:i},{className:"attr",relevance:0,
    -begin:s+n+"$"}]}}})());
    -hljs.registerLanguage("python",(()=>{"use strict";return e=>{const n={
    -$pattern:/[A-Za-z]\w+|__\w+__/,
    -keyword:["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],
    -built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],
    -literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],
    -type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]
    -},a={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/,
    -end:/\}/,keywords:n,illegal:/#/},s={begin:/\{\{/,relevance:0},t={
    -className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{
    -begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,
    -contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{
    -begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,
    -contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{
    -begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,
    -contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,
    -end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([uU]|[rR])'/,end:/'/,
    -relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{
    -begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,
    -end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,
    -contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,
    -contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
    -},r="[0-9](_?[0-9])*",l=`(\\b(${r}))?\\.(${r})|\\b(${r})\\.`,b={
    -className:"number",relevance:0,variants:[{
    -begin:`(\\b(${r})|(${l}))[eE][+-]?(${r})[jJ]?\\b`},{begin:`(${l})[jJ]?`},{
    -begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{
    -begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{
    -begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${r})[jJ]\\b`}]},o={
    -className:"comment",
    -begin:(d=/# type:/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",d,")")),
    -end:/$/,keywords:n,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,
    -endsWithParent:!0}]},c={className:"params",variants:[{className:"",
    -begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,
    -keywords:n,contains:["self",a,b,t,e.HASH_COMMENT_MODE]}]};var d
    -;return i.contains=[t,b,a],{name:"Python",aliases:["py","gyp","ipython"],
    -keywords:n,illegal:/(<\/|->|\?)|=>/,contains:[a,b,{begin:/\bself\b/},{
    -beginKeywords:"if",relevance:0},t,o,e.HASH_COMMENT_MODE,{variants:[{
    -className:"function",beginKeywords:"def"},{className:"class",
    -beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,
    -contains:[e.UNDERSCORE_TITLE_MODE,c,{begin:/->/,endsWithParent:!0,keywords:n}]
    -},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[b,c,t]}]}}})());
    -hljs.registerLanguage("python-repl",(()=>{"use strict";return s=>({
    -aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",
    -subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{
    -begin:/^\.\.\.(?=[ ]|$)/}]}]})})());
    -hljs.registerLanguage("r",(()=>{"use strict";function e(...e){return e.map((e=>{
    -return(a=e)?"string"==typeof a?a:a.source:null;var a})).join("")}return a=>{
    -const n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/;return{name:"R",
    -illegal:/->/,keywords:{$pattern:n,
    -keyword:"function if in break next repeat else for while",
    -literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",
    -built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"
    -},compilerExtensions:[(a,n)=>{if(!a.beforeMatch)return
    -;if(a.starts)throw Error("beforeMatch cannot be used with starts")
    -;const i=Object.assign({},a);Object.keys(a).forEach((e=>{delete a[e]
    -})),a.begin=e(i.beforeMatch,e("(?=",i.begin,")")),a.starts={relevance:0,
    -contains:[Object.assign(i,{endsParent:!0})]},a.relevance=0,delete i.beforeMatch
    -}],contains:[a.COMMENT(/#'/,/$/,{contains:[{className:"doctag",
    -begin:"@examples",starts:{contains:[{begin:/\n/},{begin:/#'\s*(?=@[a-zA-Z]+)/,
    -endsParent:!0},{begin:/#'/,end:/$/,excludeBegin:!0}]}},{className:"doctag",
    -begin:"@param",end:/$/,contains:[{className:"variable",variants:[{begin:n},{
    -begin:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{className:"doctag",
    -begin:/@[a-zA-Z]+/},{className:"meta-keyword",begin:/\\[a-zA-Z]+/}]
    -}),a.HASH_COMMENT_MODE,{className:"string",contains:[a.BACKSLASH_ESCAPE],
    -variants:[a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',
    -relevance:0},{begin:"'",end:"'",relevance:0}]},{className:"number",relevance:0,
    -beforeMatch:/([^a-zA-Z0-9._])/,variants:[{
    -match:/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/},{
    -match:/0[xX][0-9a-fA-F]+([pP][+-]?\d+)?[Li]?/},{
    -match:/(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?[Li]?/}]},{begin:"%",end:"%"},{
    -begin:e(/[a-zA-Z][a-zA-Z_0-9]*/,"\\s+<-\\s+")},{begin:"`",end:"`",contains:[{
    -begin:/\\./}]}]}}})());
    -hljs.registerLanguage("ruby",(()=>{"use strict";function e(...e){
    -return e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null;var n
    -})).join("")}return n=>{
    -const a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",i={
    -keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor __FILE__",
    -built_in:"proc lambda",literal:"true false nil"},s={className:"doctag",
    -begin:"@[A-Za-z]+"},r={begin:"#<",end:">"},b=[n.COMMENT("#","$",{contains:[s]
    -}),n.COMMENT("^=begin","^=end",{contains:[s],relevance:10
    -}),n.COMMENT("^__END__","\\n$")],c={className:"subst",begin:/#\{/,end:/\}/,
    -keywords:i},t={className:"string",contains:[n.BACKSLASH_ESCAPE,c],variants:[{
    -begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,
    -end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{
    -begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,
    -end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{
    -begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{
    -begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{
    -begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{
    -begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{
    -begin:/<<[-~]?'?(\w+)\n(?:[^\n]*\n)*?\s*\1\b/,returnBegin:!0,contains:[{
    -begin:/<<[-~]?'?/},n.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,
    -contains:[n.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",d={className:"number",
    -relevance:0,variants:[{
    -begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{
    -begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"
    -},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{
    -begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{
    -begin:"\\b0(_?[0-7])+r?i?\\b"}]},l={className:"params",begin:"\\(",end:"\\)",
    -endsParent:!0,keywords:i},o=[t,{className:"class",beginKeywords:"class module",
    -end:"$|;",illegal:/=/,contains:[n.inherit(n.TITLE_MODE,{
    -begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|!)?"}),{begin:"<\\s*",contains:[{
    -begin:"("+n.IDENT_RE+"::)?"+n.IDENT_RE,relevance:0}]}].concat(b)},{
    -className:"function",begin:e(/def\s+/,(_=a+"\\s*(\\(|;|$)",e("(?=",_,")"))),
    -relevance:0,keywords:"def",end:"$|;",contains:[n.inherit(n.TITLE_MODE,{begin:a
    -}),l].concat(b)},{begin:n.IDENT_RE+"::"},{className:"symbol",
    -begin:n.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",
    -begin:":(?!\\s)",contains:[t,{begin:a}],relevance:0},d,{className:"variable",
    -begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{
    -className:"params",begin:/\|/,end:/\|/,relevance:0,keywords:i},{
    -begin:"("+n.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{
    -className:"regexp",contains:[n.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{
    -begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",
    -end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]
    -}].concat(r,b),relevance:0}].concat(r,b);var _;c.contains=o,l.contains=o
    -;const E=[{begin:/^\s*=>/,starts:{end:"$",contains:o}},{className:"meta",
    -begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",
    -starts:{end:"$",contains:o}}];return b.unshift(r),{name:"Ruby",
    -aliases:["rb","gemspec","podspec","thor","irb"],keywords:i,illegal:/\/\*/,
    -contains:[n.SHEBANG({binary:"ruby"})].concat(E).concat(b).concat(o)}}})());
    -hljs.registerLanguage("rust",(()=>{"use strict";return e=>{
    -const n="([ui](8|16|32|64|128|size)|f(32|64))?",t="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!"
    -;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",
    -keyword:"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield",
    -literal:"true false Some None Ok Err",built_in:t},illegal:"</",
    -contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]
    -}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{
    -className:"string",variants:[{begin:/r(#*)"(.|\n)*?"\1(?!#)/},{
    -begin:/b?'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/}]},{className:"symbol",
    -begin:/'[a-zA-Z_][a-zA-Z0-9_]*/},{className:"number",variants:[{
    -begin:"\\b0b([01_]+)"+n},{begin:"\\b0o([0-7_]+)"+n},{
    -begin:"\\b0x([A-Fa-f0-9_]+)"+n},{
    -begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+n}],relevance:0},{
    -className:"function",beginKeywords:"fn",end:"(\\(|<)",excludeEnd:!0,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"meta",begin:"#!?\\[",end:"\\]",
    -contains:[{className:"meta-string",begin:/"/,end:/"/}]},{className:"class",
    -beginKeywords:"type",end:";",contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{
    -endsParent:!0})],illegal:"\\S"},{className:"class",
    -beginKeywords:"trait enum struct union",end:/\{/,
    -contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{endsParent:!0})],illegal:"[\\w\\d]"
    -},{begin:e.IDENT_RE+"::",keywords:{built_in:t}},{begin:"->"}]}}})());
    -hljs.registerLanguage("scss",(()=>{"use strict"
    -;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse()
    -;return a=>{const n=(e=>({IMPORTANT:{className:"meta",begin:"!important"},
    -HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},
    -ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,
    -illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}
    -}))(a),l=o,s=i,d="@[a-z-]+",c={className:"variable",
    -begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"};return{name:"SCSS",case_insensitive:!0,
    -illegal:"[=/|']",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{
    -className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{
    -className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0
    -},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",
    -begin:"\\b("+e.join("|")+")\\b",relevance:0},{className:"selector-pseudo",
    -begin:":("+s.join("|")+")"},{className:"selector-pseudo",
    -begin:"::("+l.join("|")+")"},c,{begin:/\(/,end:/\)/,contains:[a.CSS_NUMBER_MODE]
    -},{className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{
    -begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"
    -},{begin:":",end:";",
    -contains:[c,n.HEXCOLOR,a.CSS_NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.IMPORTANT]
    -},{begin:"@(page|font-face)",lexemes:d,keywords:"@page @font-face"},{begin:"@",
    -end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,
    -keyword:"and or not only",attribute:t.join(" ")},contains:[{begin:d,
    -className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"
    -},c,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.HEXCOLOR,a.CSS_NUMBER_MODE]}]}}
    -})());
    -hljs.registerLanguage("shell",(()=>{"use strict";return s=>({
    -name:"Shell Session",aliases:["console"],contains:[{className:"meta",
    -begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#]/,starts:{end:/[^\\](?=\s*$)/,
    -subLanguage:"bash"}}]})})());
    -hljs.registerLanguage("sql",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function r(...r){
    -return r.map((r=>e(r))).join("")}function t(...r){
    -return"("+r.map((r=>e(r))).join("|")+")"}return e=>{
    -const n=e.COMMENT("--","$"),a=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],s=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],o=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],c=s,l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update   ","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!s.includes(e))),u={
    -begin:r(/\b/,t(...c),/\s*\(/),keywords:{built_in:c}};return{name:"SQL",
    -case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,
    -keyword:((e,{exceptions:r,when:t}={})=>{const n=t
    -;return r=r||[],e.map((e=>e.match(/\|\d+$/)||r.includes(e)?e:n(e)?e+"|0":e))
    -})(l,{when:e=>e.length<3}),literal:a,type:i,
    -built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]
    -},contains:[{begin:t(...o),keywords:{$pattern:/[\w\.]+/,keyword:l.concat(o),
    -literal:a,type:i}},{className:"type",
    -begin:t("double precision","large object","with timezone","without timezone")
    -},u,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{
    -begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{
    -begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"operator",
    -begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}})());
    -hljs.registerLanguage("swift",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")}
    -function a(...n){return n.map((n=>e(n))).join("")}function t(...n){
    -return"("+n.map((n=>e(n))).join("|")+")"}
    -const i=e=>a(/\b/,e,/\w$/.test(e)?/\b/:/\B/),s=["Protocol","Type"].map(i),u=["init","self"].map(i),c=["Any","Self"],r=["associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],o=["false","nil","true"],l=["assignment","associativity","higherThan","left","lowerThan","none","right"],m=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],d=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],p=t(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),F=t(p,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),b=a(p,F,"*"),h=t(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),f=t(h,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),w=a(h,f,"*"),y=a(/[A-Z]/,f,"*"),g=["autoclosure",a(/convention\(/,t("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",a(/objc\(/,w,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","testable","UIApplicationMain","unknown","usableFromInline"],E=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"]
    -;return e=>{const p={match:/\s+/,relevance:0},h=e.COMMENT("/\\*","\\*/",{
    -contains:["self"]}),v=[e.C_LINE_COMMENT_MODE,h],N={className:"keyword",
    -begin:a(/\./,n(t(...s,...u))),end:t(...s,...u),excludeBegin:!0},A={
    -match:a(/\./,t(...r)),relevance:0
    -},C=r.filter((e=>"string"==typeof e)).concat(["_|0"]),_={variants:[{
    -className:"keyword",
    -match:t(...r.filter((e=>"string"!=typeof e)).concat(c).map(i),...u)}]},D={
    -$pattern:t(/\b\w+/,/#\w+/),keyword:C.concat(m),literal:o},B=[N,A,_],k=[{
    -match:a(/\./,t(...d)),relevance:0},{className:"built_in",
    -match:a(/\b/,t(...d),/(?=\()/)}],M={match:/->/,relevance:0},S=[M,{
    -className:"operator",relevance:0,variants:[{match:b},{match:`\\.(\\.|${F})+`}]
    -}],x="([0-9a-fA-F]_*)+",I={className:"number",relevance:0,variants:[{
    -match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{
    -match:`\\b0x(${x})(\\.(${x}))?([pP][+-]?(([0-9]_*)+))?\\b`},{
    -match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},O=(e="")=>({
    -className:"subst",variants:[{match:a(/\\/,e,/[0\\tnr"']/)},{
    -match:a(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),T=(e="")=>({className:"subst",
    -match:a(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),L=(e="")=>({className:"subst",
    -label:"interpol",begin:a(/\\/,e,/\(/),end:/\)/}),P=(e="")=>({begin:a(e,/"""/),
    -end:a(/"""/,e),contains:[O(e),T(e),L(e)]}),$=(e="")=>({begin:a(e,/"/),
    -end:a(/"/,e),contains:[O(e),L(e)]}),K={className:"string",
    -variants:[P(),P("#"),P("##"),P("###"),$(),$("#"),$("##"),$("###")]},j={
    -match:a(/`/,w,/`/)},z=[j,{className:"variable",match:/\$\d+/},{
    -className:"variable",match:`\\$${f}+`}],q=[{match:/(@|#)available/,
    -className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:E,
    -contains:[...S,I,K]}]}},{className:"keyword",match:a(/@/,t(...g))},{
    -className:"meta",match:a(/@/,w)}],U={match:n(/\b[A-Z]/),relevance:0,contains:[{
    -className:"type",
    -match:a(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,f,"+")
    -},{className:"type",match:y,relevance:0},{match:/[?!]+/,relevance:0},{
    -match:/\.\.\./,relevance:0},{match:a(/\s+&\s+/,n(y)),relevance:0}]},Z={
    -begin:/</,end:/>/,keywords:D,contains:[...v,...B,...q,M,U]};U.contains.push(Z)
    -;const G={begin:/\(/,end:/\)/,relevance:0,keywords:D,contains:["self",{
    -match:a(w,/\s*:/),keywords:"_|0",relevance:0
    -},...v,...B,...k,...S,I,K,...z,...q,U]},H={beginKeywords:"func",contains:[{
    -className:"title",match:t(j.match,w,b),endsParent:!0,relevance:0},p]},R={
    -begin:/</,end:/>/,contains:[...v,U]},V={begin:/\(/,end:/\)/,keywords:D,
    -contains:[{begin:t(n(a(w,/\s*:/)),n(a(w,/\s+/,w,/\s*:/))),end:/:/,relevance:0,
    -contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:w}]
    -},...v,...B,...S,I,K,...q,U,G],endsParent:!0,illegal:/["']/},W={
    -className:"function",match:n(/\bfunc\b/),contains:[H,R,V,p],illegal:[/\[/,/%/]
    -},X={className:"function",match:/\b(subscript|init[?!]?)\s*(?=[<(])/,keywords:{
    -keyword:"subscript init init? init!",$pattern:/\w+[?!]?/},contains:[R,V,p],
    -illegal:/\[|%/},J={beginKeywords:"operator",end:e.MATCH_NOTHING_RE,contains:[{
    -className:"title",match:b,endsParent:!0,relevance:0}]},Q={
    -beginKeywords:"precedencegroup",end:e.MATCH_NOTHING_RE,contains:[{
    -className:"title",match:y,relevance:0},{begin:/{/,end:/}/,relevance:0,
    -endsParent:!0,keywords:[...l,...o],contains:[U]}]};for(const e of K.variants){
    -const n=e.contains.find((e=>"interpol"===e.label));n.keywords=D
    -;const a=[...B,...k,...S,I,K,...z];n.contains=[...a,{begin:/\(/,end:/\)/,
    -contains:["self",...a]}]}return{name:"Swift",keywords:D,contains:[...v,W,X,{
    -className:"class",beginKeywords:"struct protocol class extension enum",
    -end:"\\{",excludeEnd:!0,keywords:D,contains:[e.inherit(e.TITLE_MODE,{
    -begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...B]},J,Q,{
    -beginKeywords:"import",end:/$/,contains:[...v],relevance:0
    -},...B,...k,...S,I,K,...z,...q,U,G]}}})());
    -hljs.registerLanguage("typescript",(()=>{"use strict"
    -;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
    -;function t(e){return r("(?=",e,")")}function r(...e){return e.map((e=>{
    -return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return i=>{
    -const c={$pattern:e,
    -keyword:n.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]),
    -literal:a,
    -built_in:s.concat(["any","void","number","boolean","string","object","never","enum"])
    -},o={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},l=(e,n,a)=>{
    -const s=e.contains.findIndex((e=>e.label===n))
    -;if(-1===s)throw Error("can not find mode to replace");e.contains.splice(s,1,a)
    -},b=(i=>{const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/,
    -end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{
    -const a=e[0].length+e.index,s=e.input[a];"<"!==s?">"===s&&(((e,{after:n})=>{
    -const a="</"+e[0].slice(1);return-1!==e.input.indexOf(a,n)})(e,{after:a
    -})||n.ignoreMatch()):n.ignoreMatch()}},l={$pattern:e,keyword:n,literal:a,
    -built_in:s},b="\\.([0-9](_?[0-9])*)",d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",g={
    -className:"number",variants:[{
    -begin:`(\\b(${d})((${b})|\\.)?|(${b}))[eE][+-]?([0-9](_?[0-9])*)\\b`},{
    -begin:`\\b(${d})\\b((${b})\\b|\\.)?|(${b})\\b`},{
    -begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
    -begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
    -begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
    -begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",
    -end:"\\}",keywords:l,contains:[]},E={begin:"html`",end:"",starts:{end:"`",
    -returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},m={
    -begin:"css`",end:"",starts:{end:"`",returnEnd:!1,
    -contains:[i.BACKSLASH_ESCAPE,u],subLanguage:"css"}},y={className:"string",
    -begin:"`",end:"`",contains:[i.BACKSLASH_ESCAPE,u]},_={className:"comment",
    -variants:[i.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
    -className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",
    -end:"\\}",relevance:0},{className:"variable",begin:c+"(?=\\s*(-)|$)",
    -endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
    -}),i.C_BLOCK_COMMENT_MODE,i.C_LINE_COMMENT_MODE]
    -},p=[i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,E,m,y,g,i.REGEXP_MODE]
    -;u.contains=p.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(p)
    -});const N=[].concat(_,u.contains),f=N.concat([{begin:/\(/,end:/\)/,keywords:l,
    -contains:["self"].concat(N)}]),A={className:"params",begin:/\(/,end:/\)/,
    -excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f};return{name:"Javascript",
    -aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:f},
    -illegal:/#(?![$_A-z])/,contains:[i.SHEBANG({label:"shebang",binary:"node",
    -relevance:5}),{label:"use_strict",className:"meta",relevance:10,
    -begin:/^\s*['"]use (strict|asm)['"]/
    -},i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,E,m,y,_,g,{
    -begin:r(/[{,\n]\s*/,t(r(/(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/,c+"\\s*:"))),
    -relevance:0,contains:[{className:"attr",begin:c+t("\\s*:"),relevance:0}]},{
    -begin:"("+i.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
    -keywords:"return throw case",contains:[_,i.REGEXP_MODE,{className:"function",
    -begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+i.UNDERSCORE_IDENT_RE+")\\s*=>",
    -returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{
    -begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0
    -},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}]
    -},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{
    -variants:[{begin:"<>",end:"</>"},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,
    -end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,
    -contains:["self"]}]}],relevance:0},{className:"function",
    -beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l,
    -contains:["self",i.inherit(i.TITLE_MODE,{begin:c}),A],illegal:/%/},{
    -beginKeywords:"while if switch catch for"},{className:"function",
    -begin:i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
    -returnBegin:!0,contains:[A,i.inherit(i.TITLE_MODE,{begin:c})]},{variants:[{
    -begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class",
    -beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{
    -beginKeywords:"extends"},i.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/,
    -end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:c}),"self",A]
    -},{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set",
    -contains:[i.inherit(i.TITLE_MODE,{begin:c}),{begin:/\(\)/},A]},{begin:/\$[(.]/}]
    -}})(i)
    -;return Object.assign(b.keywords,c),b.exports.PARAMS_CONTAINS.push(o),b.contains=b.contains.concat([o,{
    -beginKeywords:"namespace",end:/\{/,excludeEnd:!0},{beginKeywords:"interface",
    -end:/\{/,excludeEnd:!0,keywords:"interface extends"
    -}]),l(b,"shebang",i.SHEBANG()),l(b,"use_strict",{className:"meta",relevance:10,
    -begin:/^\s*['"]use strict['"]/
    -}),b.contains.find((e=>"function"===e.className)).relevance=0,Object.assign(b,{
    -name:"TypeScript",aliases:["ts","tsx"]}),b}})());
    -hljs.registerLanguage("vbnet",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(...n){
    -return n.map((n=>e(n))).join("")}function t(...n){
    -return"("+n.map((n=>e(n))).join("|")+")"}return e=>{
    -const a=/\d{1,2}\/\d{1,2}\/\d{4}/,i=/\d{4}-\d{1,2}-\d{1,2}/,s=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,o={
    -className:"literal",variants:[{begin:n(/# */,t(i,a),/ *#/)},{
    -begin:n(/# */,r,/ *#/)},{begin:n(/# */,s,/ *#/)},{
    -begin:n(/# */,t(i,a),/ +/,t(s,r),/ *#/)}]},l=e.COMMENT(/'''/,/$/,{contains:[{
    -className:"doctag",begin:/<\/?/,end:/>/}]}),c=e.COMMENT(null,/$/,{variants:[{
    -begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",
    -aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{
    -keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",
    -built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",
    -type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",
    -literal:"true false nothing"},
    -illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{
    -className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,
    -end:/"/,illegal:/\n/,contains:[{begin:/""/}]},o,{className:"number",relevance:0,
    -variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/
    -},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{
    -begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{
    -className:"label",begin:/^\w+:/},l,c,{className:"meta",
    -begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,
    -end:/$/,keywords:{
    -"meta-keyword":"const disable else elseif enable end externalsource if region then"
    -},contains:[c]}]}}})());
    -hljs.registerLanguage("yaml",(()=>{"use strict";return e=>{
    -var n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={
    -className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/
    -},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",
    -variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(s,{
    -variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={
    -end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},t={begin:/\{/,
    -end:/\}/,contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]",
    -contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{
    -begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{
    -begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$",
    -relevance:10},{className:"string",
    -begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{
    -begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,
    -relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",
    -begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a
    -},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",
    -begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",
    -relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{
    -className:"number",
    -begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"
    -},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},t,g,s],r=[...b]
    -;return r.pop(),r.push(i),l.contains=r,{name:"YAML",case_insensitive:!0,
    -aliases:["yml"],contains:b}}})());
    \ No newline at end of file
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/js/highlightjs-line-numbers.min.js b/metrics-complete-branch-report-Final-Improved-htmlReport/js/highlightjs-line-numbers.min.js
    deleted file mode 100644
    index 8548576704..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/js/highlightjs-line-numbers.min.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -/*
    -The MIT License (MIT)
    -
    -Copyright (c) 2017 Yauheni Pakala
    -
    -Permission is hereby granted, free of charge, to any person obtaining a copy
    -of this software and associated documentation files (the "Software"), to deal
    -in the Software without restriction, including without limitation the rights
    -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    -copies of the Software, and to permit persons to whom the Software is
    -furnished to do so, subject to the following conditions:
    -
    -The above copyright notice and this permission notice shall be included in all
    -copies or substantial portions of the Software.
    -
    -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    -SOFTWARE.
    - */
    -!function(r,o){"use strict";var e,i="hljs-ln",l="hljs-ln-line",h="hljs-ln-code",s="hljs-ln-numbers",c="hljs-ln-n",m="data-line-number",a=/\r\n|\r|\n/g;function u(e){for(var n=e.toString(),t=e.anchorNode;"TD"!==t.nodeName;)t=t.parentNode;for(var r=e.focusNode;"TD"!==r.nodeName;)r=r.parentNode;var o=parseInt(t.dataset.lineNumber),a=parseInt(r.dataset.lineNumber);if(o==a)return n;var i,l=t.textContent,s=r.textContent;for(a<o&&(i=o,o=a,a=i,i=l,l=s,s=i);0!==n.indexOf(l);)l=l.slice(1);for(;-1===n.lastIndexOf(s);)s=s.slice(0,-1);for(var c=l,u=function(e){for(var n=e;"TABLE"!==n.nodeName;)n=n.parentNode;return n}(t),d=o+1;d<a;++d){var f=p('.{0}[{1}="{2}"]',[h,m,d]);c+="\n"+u.querySelector(f).textContent}return c+="\n"+s}function n(e){try{var n=o.querySelectorAll("code.hljs,code.nohighlight");for(var t in n)n.hasOwnProperty(t)&&(n[t].classList.contains("nohljsln")||d(n[t],e))}catch(e){r.console.error("LineNumbers error: ",e)}}function d(e,n){"object"==typeof e&&r.setTimeout(function(){e.innerHTML=f(e,n)},0)}function f(e,n){var t,r,o=(t=e,{singleLine:function(e){return!!e.singleLine&&e.singleLine}(r=(r=n)||{}),startFrom:function(e,n){var t=1;isFinite(n.startFrom)&&(t=n.startFrom);var r=function(e,n){return e.hasAttribute(n)?e.getAttribute(n):null}(e,"data-ln-start-from");return null!==r&&(t=function(e,n){if(!e)return n;var t=Number(e);return isFinite(t)?t:n}(r,1)),t}(t,r)});return function e(n){var t=n.childNodes;for(var r in t){var o;t.hasOwnProperty(r)&&(o=t[r],0<(o.textContent.trim().match(a)||[]).length&&(0<o.childNodes.length?e(o):v(o.parentNode)))}}(e),function(e,n){var t=g(e);""===t[t.length-1].trim()&&t.pop();if(1<t.length||n.singleLine){for(var r="",o=0,a=t.length;o<a;o++)r+=p('<tr><td class="{0} {1}" {3}="{5}"><div class="{2}" {3}="{5}"></div></td><td class="{0} {4}" {3}="{5}">{6}</td></tr>',[l,s,c,m,h,o+n.startFrom,0<t[o].length?t[o]:" "]);return p('<table class="{0}">{1}</table>',[i,r])}return e}(e.innerHTML,o)}function v(e){var n=e.className;if(/hljs-/.test(n)){for(var t=g(e.innerHTML),r=0,o="";r<t.length;r++){o+=p('<span class="{0}">{1}</span>\n',[n,0<t[r].length?t[r]:" "])}e.innerHTML=o.trim()}}function g(e){return 0===e.length?[]:e.split(a)}function p(e,t){return e.replace(/\{(\d+)\}/g,function(e,n){return void 0!==t[n]?t[n]:e})}r.hljs?(r.hljs.initLineNumbersOnLoad=function(e){"interactive"===o.readyState||"complete"===o.readyState?n(e):r.addEventListener("DOMContentLoaded",function(){n(e)})},r.hljs.lineNumbersBlock=d,r.hljs.lineNumbersValue=function(e,n){if("string"!=typeof e)return;var t=document.createElement("code");return t.innerHTML=e,f(t,n)},(e=o.createElement("style")).type="text/css",e.innerHTML=p(".{0}{border-collapse:collapse}.{0} td{padding:0}.{1}:before{content:attr({2})}",[i,c,m]),o.getElementsByTagName("head")[0].appendChild(e)):r.console.error("highlight.js not detected!"),document.addEventListener("copy",function(e){var n,t=window.getSelection();!function(e){for(var n=e;n;){if(n.className&&-1!==n.className.indexOf("hljs-ln-code"))return 1;n=n.parentNode}}(t.anchorNode)||(n=-1!==window.navigator.userAgent.indexOf("Edge")?u(t):t.toString(),e.clipboardData.setData("text/plain",n),e.preventDefault())})}(window,document);
    \ No newline at end of file
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index.html
    deleted file mode 100644
    index a54f92a46a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 0b25480ac3..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index d92933581d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 7e3cc2bd46..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 44e547e36a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 2bd8d18780..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index f9f3a0d1d9..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 5e13672da9..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 7bdca2f25e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 0d42a1d6a6..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1.html
    deleted file mode 100644
    index 0322c609fb..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1.html
    +++ /dev/null
    @@ -1,178 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;import java.util.concurrent.atomic.AtomicReference;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Gauge} implementation which caches its value for a period of time.
    -&nbsp; *
    -&nbsp; * @param &lt;T&gt; the type of the gauge&#39;s value
    -&nbsp; */
    -&nbsp;public abstract class CachedGauge&lt;T&gt; implements Gauge&lt;T&gt; {
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final AtomicLong reloadAt;
    -&nbsp;    private final long timeoutNS;
    -&nbsp;    private final AtomicReference&lt;T&gt; value;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new cached gauge with the given timeout period.
    -&nbsp;     *
    -&nbsp;     * @param timeout     the timeout
    -&nbsp;     * @param timeoutUnit the unit of {@code timeout}
    -&nbsp;     */
    -&nbsp;    protected CachedGauge(long timeout, TimeUnit timeoutUnit) {
    -<b class="fc">&nbsp;        this(Clock.defaultClock(), timeout, timeoutUnit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new cached gauge with the given clock and timeout period.
    -&nbsp;     *
    -&nbsp;     * @param clock       the clock used to calculate the timeout
    -&nbsp;     * @param timeout     the timeout
    -&nbsp;     * @param timeoutUnit the unit of {@code timeout}
    -&nbsp;     */
    -<b class="fc">&nbsp;    protected CachedGauge(Clock clock, long timeout, TimeUnit timeoutUnit) {</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.reloadAt = new AtomicLong(clock.getTick());</b>
    -<b class="fc">&nbsp;        this.timeoutNS = timeoutUnit.toNanos(timeout);</b>
    -<b class="fc">&nbsp;        this.value = new AtomicReference&lt;&gt;();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Loads the value and returns it.
    -&nbsp;     *
    -&nbsp;     * @return the new value
    -&nbsp;     */
    -&nbsp;    protected abstract T loadValue();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public T getValue() {
    -<b class="fc">&nbsp;        T currentValue = this.value.get();</b>
    -<b class="fc">&nbsp;        if (shouldLoad() || currentValue == null) {</b>
    -<b class="fc">&nbsp;            T newValue = loadValue();</b>
    -<b class="fc">&nbsp;            if (!this.value.compareAndSet(currentValue, newValue)) {</b>
    -<b class="fc">&nbsp;                return this.value.get();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return newValue;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return currentValue;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private boolean shouldLoad() {
    -&nbsp;        for ( ;; ) {
    -<b class="fc">&nbsp;            final long time = clock.getTick();</b>
    -<b class="fc">&nbsp;            final long current = reloadAt.get();</b>
    -<b class="fc">&nbsp;            if (current &gt; time) {</b>
    -<b class="fc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (reloadAt.compareAndSet(current, time + timeoutNS)) {</b>
    -<b class="fc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-10.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-10.html
    deleted file mode 100644
    index 27df48391b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-10.html
    +++ /dev/null
    @@ -1,203 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedThreadFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedThreadFactory (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedThreadFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedThreadFactory$InstrumentedRunnable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link ThreadFactory} that monitors the number of threads created, running and terminated.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    -&nbsp; * &quot;your-thread-delegate.created&quot;, &quot;your-thread-delegate.running&quot;, etc.
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedThreadFactory implements ThreadFactory {</b>
    -<b class="fc">&nbsp;    private static final AtomicLong NAME_COUNTER = new AtomicLong();</b>
    -&nbsp;
    -&nbsp;    private final ThreadFactory delegate;
    -&nbsp;    private final Meter created;
    -&nbsp;    private final Counter running;
    -&nbsp;    private final Meter terminated;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps a {@link ThreadFactory}, uses a default auto-generated name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ThreadFactory} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     */
    -&nbsp;    public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(delegate, registry, &quot;instrumented-thread-delegate-&quot; + NAME_COUNTER.incrementAndGet());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps a {@link ThreadFactory} with an explicit name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ThreadFactory} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     * @param name     name for this delegate.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry, String name) {</b>
    -<b class="fc">&nbsp;        this.delegate = delegate;</b>
    -<b class="fc">&nbsp;        this.created = registry.meter(MetricRegistry.name(name, &quot;created&quot;));</b>
    -<b class="fc">&nbsp;        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</b>
    -<b class="fc">&nbsp;        this.terminated = registry.meter(MetricRegistry.name(name, &quot;terminated&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Thread newThread(Runnable runnable) {
    -<b class="fc">&nbsp;        Runnable wrappedRunnable = new InstrumentedRunnable(runnable);</b>
    -<b class="fc">&nbsp;        Thread thread = delegate.newThread(wrappedRunnable);</b>
    -<b class="fc">&nbsp;        created.mark();</b>
    -<b class="fc">&nbsp;        return thread;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedRunnable implements Runnable {
    -&nbsp;        private final Runnable task;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedRunnable(Runnable task) {</b>
    -<b class="fc">&nbsp;            this.task = task;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void run() {
    -<b class="fc">&nbsp;            running.inc();</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                task.run();</b>
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                terminated.mark();</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-11.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-11.html
    deleted file mode 100644
    index b7fdac96be..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-11.html
    +++ /dev/null
    @@ -1,441 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > LockFreeExponentiallyDecayingReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: LockFreeExponentiallyDecayingReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">LockFreeExponentiallyDecayingReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (23/23)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">LockFreeExponentiallyDecayingReservoir$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">LockFreeExponentiallyDecayingReservoir$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (15/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">LockFreeExponentiallyDecayingReservoir$RescalingConsumer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">LockFreeExponentiallyDecayingReservoir$State</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.WeightedSnapshot.WeightedSample;
    -&nbsp;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.Objects;
    -&nbsp;import java.util.concurrent.ConcurrentSkipListMap;
    -&nbsp;import java.util.concurrent.ThreadLocalRandom;
    -&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    -&nbsp;import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
    -&nbsp;import java.util.function.BiConsumer;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A lock-free exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al&#39;s
    -&nbsp; * forward-decaying priority reservoir sampling method to produce a statistically representative
    -&nbsp; * sampling reservoir, exponentially biased towards newer entries.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf&quot;&gt;
    -&nbsp; * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE &#39;09:
    -&nbsp; * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)&lt;/a&gt;
    -&nbsp; *
    -&nbsp; * {@link LockFreeExponentiallyDecayingReservoir} is based closely on the {@link ExponentiallyDecayingReservoir},
    -&nbsp; * however it provides looser guarantees while completely avoiding locks.
    -&nbsp; *
    -&nbsp; * Looser guarantees:
    -&nbsp; * &lt;ul&gt;
    -&nbsp; *     &lt;li&gt; Updates which occur concurrently with rescaling may be discarded if the orphaned state node is updated after
    -&nbsp; *     rescale has replaced it. This condition has a greater probability as the rescale interval is reduced due to the
    -&nbsp; *     increased frequency of rescaling. {@link #rescaleThresholdNanos} values below 30 seconds are not recommended.
    -&nbsp; *     &lt;li&gt; Given a small rescale threshold, updates may attempt to rescale into a new bucket, but lose the CAS race
    -&nbsp; *     and update into a newer bucket than expected. In these cases the measurement weight is reduced accordingly.
    -&nbsp; *     &lt;li&gt;In the worst case, all concurrent threads updating the reservoir may attempt to rescale rather than
    -&nbsp; *     a single thread holding an exclusive write lock. It&#39;s expected that the configuration is set such that
    -&nbsp; *     rescaling is substantially less common than updating at peak load. Even so, when size is reasonably small
    -&nbsp; *     it can be more efficient to rescale than to park and context switch.
    -&nbsp; * &lt;/ul&gt;
    -&nbsp; *
    -&nbsp; * @author &lt;a href=&quot;mailto:ckozak@ckozak.net&quot;&gt;Carter Kozak&lt;/a&gt;
    -&nbsp; */
    -<b class="fc">&nbsp;public final class LockFreeExponentiallyDecayingReservoir implements Reservoir {</b>
    -&nbsp;
    -&nbsp;    private static final double SECONDS_PER_NANO = .000_000_001D;
    -<b class="fc">&nbsp;    private static final AtomicReferenceFieldUpdater&lt;LockFreeExponentiallyDecayingReservoir, State&gt; stateUpdater =</b>
    -<b class="fc">&nbsp;            AtomicReferenceFieldUpdater.newUpdater(LockFreeExponentiallyDecayingReservoir.class, State.class, &quot;state&quot;);</b>
    -&nbsp;
    -&nbsp;    private final int size;
    -&nbsp;    private final long rescaleThresholdNanos;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    private volatile State state;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final class State {</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private static final AtomicIntegerFieldUpdater&lt;State&gt; countUpdater =</b>
    -<b class="fc">&nbsp;                AtomicIntegerFieldUpdater.newUpdater(State.class, &quot;count&quot;);</b>
    -&nbsp;
    -&nbsp;        private final double alphaNanos;
    -&nbsp;        private final int size;
    -&nbsp;        private final long startTick;
    -&nbsp;        // Count is updated after samples are successfully added to the map.
    -&nbsp;        private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    -&nbsp;
    -&nbsp;        private volatile int count;
    -&nbsp;
    -&nbsp;        State(
    -&nbsp;                double alphaNanos,
    -&nbsp;                int size,
    -&nbsp;                long startTick,
    -&nbsp;                int count,
    -<b class="fc">&nbsp;                ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values) {</b>
    -<b class="fc">&nbsp;            this.alphaNanos = alphaNanos;</b>
    -<b class="fc">&nbsp;            this.size = size;</b>
    -<b class="fc">&nbsp;            this.startTick = startTick;</b>
    -<b class="fc">&nbsp;            this.values = values;</b>
    -<b class="fc">&nbsp;            this.count = count;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void update(long value, long timestampNanos) {
    -<b class="fc">&nbsp;            double itemWeight = weight(timestampNanos - startTick);</b>
    -<b class="fc">&nbsp;            double priority = itemWeight / ThreadLocalRandom.current().nextDouble();</b>
    -<b class="fc">&nbsp;            boolean mapIsFull = count &gt;= size;</b>
    -<b class="fc">&nbsp;            if (!mapIsFull || values.firstKey() &lt; priority) {</b>
    -<b class="fc">&nbsp;                addSample(priority, value, itemWeight, mapIsFull);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void addSample(double priority, long value, double itemWeight, boolean bypassIncrement) {
    -<b class="fc">&nbsp;            if (values.putIfAbsent(priority, new WeightedSample(value, itemWeight)) == null</b>
    -<b class="fc">&nbsp;                    &amp;&amp; (bypassIncrement || countUpdater.incrementAndGet(this) &gt; size)) {</b>
    -<b class="fc">&nbsp;                values.pollFirstEntry();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /* &quot;A common feature of the above techniques—indeed, the key technique that
    -&nbsp;         * allows us to track the decayed weights efficiently—is that they maintain
    -&nbsp;         * counts and other quantities based on g(ti ? L), and only scale by g(t ? L)
    -&nbsp;         * at query time. But while g(ti ?L)/g(t?L) is guaranteed to lie between zero
    -&nbsp;         * and one, the intermediate values of g(ti ? L) could become very large. For
    -&nbsp;         * polynomial functions, these values should not grow too large, and should be
    -&nbsp;         * effectively represented in practice by floating point values without loss of
    -&nbsp;         * precision. For exponential functions, these values could grow quite large as
    -&nbsp;         * new values of (ti ? L) become large, and potentially exceed the capacity of
    -&nbsp;         * common floating point types. However, since the values stored by the
    -&nbsp;         * algorithms are linear combinations of g values (scaled sums), they can be
    -&nbsp;         * rescaled relative to a new landmark. That is, by the analysis of exponential
    -&nbsp;         * decay in Section III-A, the choice of L does not affect the final result. We
    -&nbsp;         * can therefore multiply each value based on L by a factor of exp(??(L? ? L)),
    -&nbsp;         * and obtain the correct value as if we had instead computed relative to a new
    -&nbsp;         * landmark L? (and then use this new L? at query time). This can be done with
    -&nbsp;         * a linear pass over whatever data structure is being used.&quot;
    -&nbsp;         */
    -&nbsp;        State rescale(long newTick) {
    -<b class="fc">&nbsp;            long durationNanos = newTick - startTick;</b>
    -<b class="fc">&nbsp;            double scalingFactor = Math.exp(-alphaNanos * durationNanos);</b>
    -<b class="fc">&nbsp;            int newCount = 0;</b>
    -<b class="fc">&nbsp;            ConcurrentSkipListMap&lt;Double, WeightedSample&gt; newValues = new ConcurrentSkipListMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;            if (Double.compare(scalingFactor, 0) != 0) {</b>
    -<b class="fc">&nbsp;                RescalingConsumer consumer = new RescalingConsumer(scalingFactor, newValues);</b>
    -<b class="fc">&nbsp;                values.forEach(consumer);</b>
    -&nbsp;                // make sure the counter is in sync with the number of stored samples.
    -<b class="fc">&nbsp;                newCount = consumer.count;</b>
    -&nbsp;            }
    -&nbsp;            // It&#39;s possible that more values were added while the map was scanned, those with the
    -&nbsp;            // minimum priorities are removed.
    -<b class="fc">&nbsp;            while (newCount &gt; size) {</b>
    -<b class="nc">&nbsp;                Objects.requireNonNull(newValues.pollFirstEntry(), &quot;Expected an entry&quot;);</b>
    -<b class="nc">&nbsp;                newCount--;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new State(alphaNanos, size, newTick, newCount, newValues);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private double weight(long durationNanos) {
    -<b class="fc">&nbsp;            return Math.exp(alphaNanos * durationNanos);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final class RescalingConsumer implements BiConsumer&lt;Double, WeightedSample&gt; {</b>
    -&nbsp;        private final double scalingFactor;
    -&nbsp;        private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    -&nbsp;        private int count;
    -&nbsp;
    -<b class="fc">&nbsp;        RescalingConsumer(double scalingFactor, ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values) {</b>
    -<b class="fc">&nbsp;            this.scalingFactor = scalingFactor;</b>
    -<b class="fc">&nbsp;            this.values = values;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void accept(Double priority, WeightedSample sample) {
    -<b class="fc">&nbsp;            double newWeight = sample.weight * scalingFactor;</b>
    -<b class="fc">&nbsp;            if (Double.compare(newWeight, 0) == 0) {</b>
    -&nbsp;                return;
    -&nbsp;            }
    -<b class="fc">&nbsp;            WeightedSample newSample = new WeightedSample(sample.value, newWeight);</b>
    -<b class="fc">&nbsp;            if (values.put(priority * scalingFactor, newSample) == null) {</b>
    -<b class="fc">&nbsp;                count++;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private LockFreeExponentiallyDecayingReservoir(int size, double alpha, Duration rescaleThreshold, Clock clock) {</b>
    -&nbsp;        // Scale alpha to nanoseconds
    -<b class="fc">&nbsp;        double alphaNanos = alpha * SECONDS_PER_NANO;</b>
    -<b class="fc">&nbsp;        this.size = size;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.rescaleThresholdNanos = rescaleThreshold.toNanos();</b>
    -<b class="fc">&nbsp;        this.state = new State(alphaNanos, size, clock.getTick(), 0, new ConcurrentSkipListMap&lt;&gt;());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        return Math.min(size, state.count);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        long now = clock.getTick();</b>
    -<b class="fc">&nbsp;        rescaleIfNeeded(now).update(value, now);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private State rescaleIfNeeded(long currentTick) {
    -&nbsp;        // This method is optimized for size so the check may be quickly inlined.
    -&nbsp;        // Rescaling occurs substantially less frequently than the check itself.
    -<b class="fc">&nbsp;        State stateSnapshot = this.state;</b>
    -<b class="fc">&nbsp;        if (currentTick - stateSnapshot.startTick &gt;= rescaleThresholdNanos) {</b>
    -<b class="fc">&nbsp;            return doRescale(currentTick, stateSnapshot);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return stateSnapshot;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private State doRescale(long currentTick, State stateSnapshot) {
    -<b class="fc">&nbsp;        State newState = stateSnapshot.rescale(currentTick);</b>
    -<b class="fc">&nbsp;        if (stateUpdater.compareAndSet(this, stateSnapshot, newState)) {</b>
    -&nbsp;            // newState successfully installed
    -<b class="fc">&nbsp;            return newState;</b>
    -&nbsp;        }
    -&nbsp;        // Otherwise another thread has won the race and we can return the result of a volatile read.
    -&nbsp;        // It&#39;s possible this has taken so long that another update is required, however that&#39;s unlikely
    -&nbsp;        // and no worse than the standard race between a rescale and update.
    -<b class="fc">&nbsp;        return this.state;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        State stateSnapshot = rescaleIfNeeded(clock.getTick());</b>
    -<b class="fc">&nbsp;        return new WeightedSnapshot(stateSnapshot.values.values());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Builder builder() {
    -<b class="fc">&nbsp;        return new Builder();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * By default this uses a size of 1028 elements, which offers a 99.9%
    -&nbsp;     * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
    -&nbsp;     * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static final class Builder {</b>
    -&nbsp;        private static final int DEFAULT_SIZE = 1028;
    -&nbsp;        private static final double DEFAULT_ALPHA = 0.015D;
    -<b class="fc">&nbsp;        private static final Duration DEFAULT_RESCALE_THRESHOLD = Duration.ofHours(1);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private int size = DEFAULT_SIZE;</b>
    -<b class="fc">&nbsp;        private double alpha = DEFAULT_ALPHA;</b>
    -<b class="fc">&nbsp;        private Duration rescaleThreshold = DEFAULT_RESCALE_THRESHOLD;</b>
    -<b class="fc">&nbsp;        private Clock clock = Clock.defaultClock();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder() {}</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Maximum number of samples to keep in the reservoir. Once this number is reached older samples are
    -&nbsp;         * replaced (based on weight, with some amount of random jitter).
    -&nbsp;         */
    -&nbsp;        public Builder size(int value) {
    -<b class="fc">&nbsp;            if (value &lt;= 0) {</b>
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(</b>
    -&nbsp;                        &quot;LockFreeExponentiallyDecayingReservoir size must be positive: &quot; + value);
    -&nbsp;            }
    -<b class="fc">&nbsp;            this.size = value;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Alpha is the exponential decay factor. Higher values bias results more heavily toward newer values.
    -&nbsp;         */
    -&nbsp;        public Builder alpha(double value) {
    -<b class="fc">&nbsp;            this.alpha = value;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Interval at which this reservoir is rescaled.
    -&nbsp;         */
    -&nbsp;        public Builder rescaleThreshold(Duration value) {
    -<b class="nc">&nbsp;            this.rescaleThreshold = Objects.requireNonNull(value, &quot;rescaleThreshold is required&quot;);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Clock instance used for decay.
    -&nbsp;         */
    -&nbsp;        public Builder clock(Clock value) {
    -<b class="fc">&nbsp;            this.clock = Objects.requireNonNull(value, &quot;clock is required&quot;);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Reservoir build() {
    -<b class="fc">&nbsp;            return new LockFreeExponentiallyDecayingReservoir(size, alpha, rescaleThreshold, clock);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-12.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-12.html
    deleted file mode 100644
    index c7369f1499..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-12.html
    +++ /dev/null
    @@ -1,222 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Meter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Meter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Meter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A meter metric which measures mean throughput and one-, five-, and fifteen-minute
    -&nbsp; * moving average throughputs.
    -&nbsp; *
    -&nbsp; * @see MovingAverages
    -&nbsp; */
    -&nbsp;public class Meter implements Metered {
    -&nbsp;
    -&nbsp;    private final MovingAverages movingAverages;
    -<b class="fc">&nbsp;    private final LongAdder count = new LongAdder();</b>
    -&nbsp;    private final long startTime;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Meter}.
    -&nbsp;     *
    -&nbsp;     * @param movingAverages the {@link MovingAverages} implementation to use
    -&nbsp;     */
    -&nbsp;    public Meter(MovingAverages movingAverages) {
    -<b class="nc">&nbsp;        this(movingAverages, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Meter}.
    -&nbsp;     */
    -&nbsp;    public Meter() {
    -<b class="fc">&nbsp;        this(Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Meter}.
    -&nbsp;     *
    -&nbsp;     * @param clock the clock to use for the meter ticks
    -&nbsp;     */
    -&nbsp;    public Meter(Clock clock) {
    -<b class="fc">&nbsp;        this(new ExponentialMovingAverages(clock), clock);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Meter}.
    -&nbsp;     *
    -&nbsp;     * @param movingAverages the {@link MovingAverages} implementation to use
    -&nbsp;     * @param clock          the clock to use for the meter ticks
    -&nbsp;     */
    -<b class="fc">&nbsp;    public Meter(MovingAverages movingAverages, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.movingAverages = movingAverages;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.startTime = this.clock.getTick();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Mark the occurrence of an event.
    -&nbsp;     */
    -&nbsp;    public void mark() {
    -<b class="fc">&nbsp;        mark(1);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Mark the occurrence of a given number of events.
    -&nbsp;     *
    -&nbsp;     * @param n the number of events
    -&nbsp;     */
    -&nbsp;    public void mark(long n) {
    -<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    -<b class="fc">&nbsp;        count.add(n);</b>
    -<b class="fc">&nbsp;        movingAverages.update(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public long getCount() {
    -<b class="fc">&nbsp;        return count.sum();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getFifteenMinuteRate() {
    -<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    -<b class="fc">&nbsp;        return movingAverages.getM15Rate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getFiveMinuteRate() {
    -<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    -<b class="fc">&nbsp;        return movingAverages.getM5Rate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getMeanRate() {
    -<b class="pc">&nbsp;        if (getCount() == 0) {</b>
    -<b class="fc">&nbsp;            return 0.0;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final double elapsed = clock.getTick() - startTime;</b>
    -<b class="fc">&nbsp;            return getCount() / elapsed * TimeUnit.SECONDS.toNanos(1);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getOneMinuteRate() {
    -<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    -<b class="fc">&nbsp;        return movingAverages.getM1Rate();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-13.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-13.html
    deleted file mode 100644
    index e5b15b8f03..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-13.html
    +++ /dev/null
    @@ -1,137 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricAttribute</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricAttribute (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricAttribute</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Represents attributes of metrics which can be reported.
    -&nbsp; */
    -<b class="fc">&nbsp;public enum MetricAttribute {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    MAX(&quot;max&quot;),</b>
    -<b class="fc">&nbsp;    MEAN(&quot;mean&quot;),</b>
    -<b class="fc">&nbsp;    MIN(&quot;min&quot;),</b>
    -<b class="fc">&nbsp;    STDDEV(&quot;stddev&quot;),</b>
    -<b class="fc">&nbsp;    P50(&quot;p50&quot;),</b>
    -<b class="fc">&nbsp;    P75(&quot;p75&quot;),</b>
    -<b class="fc">&nbsp;    P95(&quot;p95&quot;),</b>
    -<b class="fc">&nbsp;    P98(&quot;p98&quot;),</b>
    -<b class="fc">&nbsp;    P99(&quot;p99&quot;),</b>
    -<b class="fc">&nbsp;    P999(&quot;p999&quot;),</b>
    -<b class="fc">&nbsp;    COUNT(&quot;count&quot;),</b>
    -<b class="fc">&nbsp;    M1_RATE(&quot;m1_rate&quot;),</b>
    -<b class="fc">&nbsp;    M5_RATE(&quot;m5_rate&quot;),</b>
    -<b class="fc">&nbsp;    M15_RATE(&quot;m15_rate&quot;),</b>
    -<b class="fc">&nbsp;    MEAN_RATE(&quot;mean_rate&quot;);</b>
    -&nbsp;
    -&nbsp;    private final String code;
    -&nbsp;
    -<b class="fc">&nbsp;    MetricAttribute(String code) {</b>
    -<b class="fc">&nbsp;        this.code = code;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getCode() {
    -<b class="fc">&nbsp;        return code;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-14.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-14.html
    deleted file mode 100644
    index a589e530ff..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-14.html
    +++ /dev/null
    @@ -1,136 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricFilter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A filter used to determine whether or not a metric should be reported, among other things.
    -&nbsp; */
    -&nbsp;public interface MetricFilter {
    -&nbsp;    /**
    -&nbsp;     * Matches all metrics, regardless of type or name.
    -&nbsp;     */
    -<b class="fc">&nbsp;    MetricFilter ALL = (name, metric) -&gt; true;</b>
    -&nbsp;
    -&nbsp;    static MetricFilter startsWith(String prefix) {
    -<b class="fc">&nbsp;        return (name, metric) -&gt; name.startsWith(prefix);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    static MetricFilter endsWith(String suffix) {
    -<b class="fc">&nbsp;        return (name, metric) -&gt; name.endsWith(suffix);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    static MetricFilter contains(String substring) {
    -<b class="fc">&nbsp;        return (name, metric) -&gt; name.contains(substring);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns {@code true} if the metric matches the filter; {@code false} otherwise.
    -&nbsp;     *
    -&nbsp;     * @param name   the metric&#39;s name
    -&nbsp;     * @param metric the metric
    -&nbsp;     * @return {@code true} if the metric matches the filter
    -&nbsp;     */
    -&nbsp;    boolean matches(String name, Metric metric);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-15.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-15.html
    deleted file mode 100644
    index 42f3e6bc09..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-15.html
    +++ /dev/null
    @@ -1,1046 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricRegistry</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricRegistry</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (41/41)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (108/116)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetricRegistry$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    36.4%
    -  </span>
    -  <span class="absValue">
    -    (4/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    36.4%
    -  </span>
    -  <span class="absValue">
    -    (4/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricSupplier</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.SortedSet;
    -&nbsp;import java.util.TreeMap;
    -&nbsp;import java.util.TreeSet;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.CopyOnWriteArrayList;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A registry of metric instances.
    -&nbsp; */
    -&nbsp;public class MetricRegistry implements MetricSet {
    -&nbsp;    /**
    -&nbsp;     * Concatenates elements to form a dotted name, eliding any null values or empty strings.
    -&nbsp;     *
    -&nbsp;     * @param name  the first element of the name
    -&nbsp;     * @param names the remaining elements of the name
    -&nbsp;     * @return {@code name} and {@code names} concatenated by periods
    -&nbsp;     */
    -&nbsp;    public static String name(String name, String... names) {
    -<b class="fc">&nbsp;        final StringBuilder builder = new StringBuilder();</b>
    -<b class="fc">&nbsp;        append(builder, name);</b>
    -<b class="pc">&nbsp;        if (names != null) {</b>
    -<b class="fc">&nbsp;            for (String s : names) {</b>
    -<b class="fc">&nbsp;                append(builder, s);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return builder.toString();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Concatenates a class name and elements to form a dotted name, eliding any null values or
    -&nbsp;     * empty strings.
    -&nbsp;     *
    -&nbsp;     * @param klass the first element of the name
    -&nbsp;     * @param names the remaining elements of the name
    -&nbsp;     * @return {@code klass} and {@code names} concatenated by periods
    -&nbsp;     */
    -&nbsp;    public static String name(Class&lt;?&gt; klass, String... names) {
    -<b class="fc">&nbsp;        return name(klass.getName(), names);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static void append(StringBuilder builder, String part) {
    -<b class="pc">&nbsp;        if (part != null &amp;&amp; !part.isEmpty()) {</b>
    -<b class="fc">&nbsp;            if (builder.length() &gt; 0) {</b>
    -<b class="fc">&nbsp;                builder.append(&#39;.&#39;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            builder.append(part);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final ConcurrentMap&lt;String, Metric&gt; metrics;
    -&nbsp;    private final List&lt;MetricRegistryListener&gt; listeners;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link MetricRegistry}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public MetricRegistry() {</b>
    -<b class="fc">&nbsp;        this.metrics = buildMap();</b>
    -<b class="fc">&nbsp;        this.listeners = new CopyOnWriteArrayList&lt;&gt;();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ConcurrentMap} implementation for use inside the registry. Override this
    -&nbsp;     * to create a {@link MetricRegistry} with space- or time-bounded metric lifecycles, for
    -&nbsp;     * example.
    -&nbsp;     *
    -&nbsp;     * @return a new {@link ConcurrentMap}
    -&nbsp;     */
    -&nbsp;    protected ConcurrentMap&lt;String, Metric&gt; buildMap() {
    -<b class="fc">&nbsp;        return new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Given a {@link Gauge}, registers it under the given name and returns it
    -&nbsp;     *
    -&nbsp;     * @param name the name of the gauge
    -&nbsp;     * @param &lt;T&gt;  the type of the gauge&#39;s value
    -&nbsp;     * @return the registered {@link Gauge}
    -&nbsp;     * @since 4.2.10
    -&nbsp;     */
    -&nbsp;    public &lt;T&gt; Gauge&lt;T&gt; registerGauge(String name, Gauge&lt;T&gt; metric) throws IllegalArgumentException {
    -<b class="fc">&nbsp;        return register(name, metric);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Given a {@link Metric}, registers it under the given name.
    -&nbsp;     *
    -&nbsp;     * @param name   the name of the metric
    -&nbsp;     * @param metric the metric
    -&nbsp;     * @param &lt;T&gt;    the type of the metric
    -&nbsp;     * @return {@code metric}
    -&nbsp;     * @throws IllegalArgumentException if the name is already registered or metric variable is null
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
    -&nbsp;    public &lt;T extends Metric&gt; T register(String name, T metric) throws IllegalArgumentException {
    -&nbsp;
    -<b class="pc">&nbsp;        if (metric == null) {</b>
    -<b class="fc">&nbsp;            throw new NullPointerException(&quot;metric == null&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        if (metric instanceof MetricRegistry) {</b>
    -<b class="fc">&nbsp;            final MetricRegistry childRegistry = (MetricRegistry) metric;</b>
    -<b class="fc">&nbsp;            final String childName = name;</b>
    -<b class="fc">&nbsp;            childRegistry.addListener(new MetricRegistryListener() {</b>
    -&nbsp;                @Override
    -&nbsp;                public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;                    register(name(childName, name), gauge);</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onGaugeRemoved(String name) {
    -<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onCounterAdded(String name, Counter counter) {
    -<b class="fc">&nbsp;                    register(name(childName, name), counter);</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onCounterRemoved(String name) {
    -<b class="fc">&nbsp;                    remove(name(childName, name));</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onHistogramAdded(String name, Histogram histogram) {
    -<b class="nc">&nbsp;                    register(name(childName, name), histogram);</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onHistogramRemoved(String name) {
    -<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onMeterAdded(String name, Meter meter) {
    -<b class="nc">&nbsp;                    register(name(childName, name), meter);</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onMeterRemoved(String name) {
    -<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onTimerAdded(String name, Timer timer) {
    -<b class="nc">&nbsp;                    register(name(childName, name), timer);</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onTimerRemoved(String name) {
    -<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    -&nbsp;                }
    -&nbsp;            });
    -<b class="pc">&nbsp;        } else if (metric instanceof MetricSet) {</b>
    -<b class="fc">&nbsp;            registerAll(name, (MetricSet) metric);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final Metric existing = metrics.putIfAbsent(name, metric);</b>
    -<b class="pc">&nbsp;            if (existing == null) {</b>
    -<b class="fc">&nbsp;                onMetricAdded(name, metric);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;A metric named &quot; + name + &quot; already exists&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return metric;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Given a metric set, registers them.
    -&nbsp;     *
    -&nbsp;     * @param metrics a set of metrics
    -&nbsp;     * @throws IllegalArgumentException if any of the names are already registered
    -&nbsp;     */
    -&nbsp;    public void registerAll(MetricSet metrics) throws IllegalArgumentException {
    -<b class="fc">&nbsp;        registerAll(null, metrics);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Counter} registered under this name; or create and register
    -&nbsp;     * a new {@link Counter} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a new or pre-existing {@link Counter}
    -&nbsp;     */
    -&nbsp;    public Counter counter(String name) {
    -<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.COUNTERS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Counter} registered under this name; or create and register
    -&nbsp;     * a new {@link Counter} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a counter.
    -&nbsp;     * @return a new or pre-existing {@link Counter}
    -&nbsp;     */
    -&nbsp;    public Counter counter(String name, final MetricSupplier&lt;Counter&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Counter&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Counter newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Counter.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Histogram} registered under this name; or create and register
    -&nbsp;     * a new {@link Histogram} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a new or pre-existing {@link Histogram}
    -&nbsp;     */
    -&nbsp;    public Histogram histogram(String name) {
    -<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.HISTOGRAMS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Histogram} registered under this name; or create and register
    -&nbsp;     * a new {@link Histogram} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a histogram
    -&nbsp;     * @return a new or pre-existing {@link Histogram}
    -&nbsp;     */
    -&nbsp;    public Histogram histogram(String name, final MetricSupplier&lt;Histogram&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Histogram&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Histogram newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Histogram.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Meter} registered under this name; or create and register
    -&nbsp;     * a new {@link Meter} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a new or pre-existing {@link Meter}
    -&nbsp;     */
    -&nbsp;    public Meter meter(String name) {
    -<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.METERS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Meter} registered under this name; or create and register
    -&nbsp;     * a new {@link Meter} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a Meter
    -&nbsp;     * @return a new or pre-existing {@link Meter}
    -&nbsp;     */
    -&nbsp;    public Meter meter(String name, final MetricSupplier&lt;Meter&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Meter&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Meter newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Meter.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Timer} registered under this name; or create and register
    -&nbsp;     * a new {@link Timer} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a new or pre-existing {@link Timer}
    -&nbsp;     */
    -&nbsp;    public Timer timer(String name) {
    -<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.TIMERS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Timer} registered under this name; or create and register
    -&nbsp;     * a new {@link Timer} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a Timer
    -&nbsp;     * @return a new or pre-existing {@link Timer}
    -&nbsp;     */
    -&nbsp;    public Timer timer(String name, final MetricSupplier&lt;Timer&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Timer&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Timer newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Timer.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Gauge} registered under this name; or create and register
    -&nbsp;     * a new {@link SettableGauge} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a pre-existing {@link Gauge} or a new {@link SettableGauge}
    -&nbsp;     * @since 4.2
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    -&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name) {
    -<b class="fc">&nbsp;        return (T) getOrAdd(name, MetricBuilder.GAUGES);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Gauge} registered under this name; or create and register
    -&nbsp;     * a new {@link Gauge} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a Gauge
    -&nbsp;     * @return a new or pre-existing {@link Gauge}
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name, final MetricSupplier&lt;T&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;T&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public T newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Gauge.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Removes the metric with the given name.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return whether or not the metric was removed
    -&nbsp;     */
    -&nbsp;    public boolean remove(String name) {
    -<b class="fc">&nbsp;        final Metric metric = metrics.remove(name);</b>
    -<b class="pc">&nbsp;        if (metric != null) {</b>
    -<b class="fc">&nbsp;            onMetricRemoved(name, metric);</b>
    -<b class="fc">&nbsp;            return true;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return false;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Removes all metrics which match the given filter.
    -&nbsp;     *
    -&nbsp;     * @param filter a filter
    -&nbsp;     */
    -&nbsp;    public void removeMatching(MetricFilter filter) {
    -<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    -<b class="pc">&nbsp;            if (filter.matches(entry.getKey(), entry.getValue())) {</b>
    -<b class="fc">&nbsp;                remove(entry.getKey());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a {@link MetricRegistryListener} to a collection of listeners that will be notified on
    -&nbsp;     * metric creation.  Listeners will be notified in the order in which they are added.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * &lt;b&gt;N.B.:&lt;/b&gt; The listener will be notified of all existing metrics when it first registers.
    -&nbsp;     *
    -&nbsp;     * @param listener the listener that will be notified
    -&nbsp;     */
    -&nbsp;    public void addListener(MetricRegistryListener listener) {
    -<b class="fc">&nbsp;        listeners.add(listener);</b>
    -&nbsp;
    -<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    -<b class="fc">&nbsp;            notifyListenerOfAddedMetric(listener, entry.getValue(), entry.getKey());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Removes a {@link MetricRegistryListener} from this registry&#39;s collection of listeners.
    -&nbsp;     *
    -&nbsp;     * @param listener the listener that will be removed
    -&nbsp;     */
    -&nbsp;    public void removeListener(MetricRegistryListener listener) {
    -<b class="fc">&nbsp;        listeners.remove(listener);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a set of the names of all the metrics in the registry.
    -&nbsp;     *
    -&nbsp;     * @return the names of all the metrics
    -&nbsp;     */
    -&nbsp;    public SortedSet&lt;String&gt; getNames() {
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedSet(new TreeSet&lt;&gt;(metrics.keySet()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the gauges in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the gauges in the registry
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges() {
    -<b class="fc">&nbsp;        return getGauges(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the gauges in the registry and their names which match the given filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the gauges in the registry
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Gauge.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the counters in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the counters in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters() {
    -<b class="fc">&nbsp;        return getCounters(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the counters in the registry and their names which match the given
    -&nbsp;     * filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the counters in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Counter.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the histograms in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the histograms in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms() {
    -<b class="fc">&nbsp;        return getHistograms(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the histograms in the registry and their names which match the given
    -&nbsp;     * filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the histograms in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Histogram.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the meters in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the meters in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters() {
    -<b class="fc">&nbsp;        return getMeters(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the meters in the registry and their names which match the given filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the meters in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Meter.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the timers in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the timers in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers() {
    -<b class="fc">&nbsp;        return getTimers(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the timers in the registry and their names which match the given filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the timers in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Timer.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
    -&nbsp;    private &lt;T extends Metric&gt; T getOrAdd(String name, MetricBuilder&lt;T&gt; builder) {
    -<b class="fc">&nbsp;        final Metric metric = metrics.get(name);</b>
    -<b class="fc">&nbsp;        if (builder.isInstance(metric)) {</b>
    -<b class="fc">&nbsp;            return (T) metric;</b>
    -<b class="pc">&nbsp;        } else if (metric == null) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                return register(name, builder.newMetric());</b>
    -<b class="nc">&nbsp;            } catch (IllegalArgumentException e) {</b>
    -<b class="nc">&nbsp;                final Metric added = metrics.get(name);</b>
    -<b class="nc">&nbsp;                if (builder.isInstance(added)) {</b>
    -<b class="nc">&nbsp;                    return (T) added;</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -<b class="nc">&nbsp;        throw new IllegalArgumentException(name + &quot; is already used for a different type of metric&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
    -&nbsp;    private &lt;T extends Metric&gt; SortedMap&lt;String, T&gt; getMetrics(Class&lt;T&gt; klass, MetricFilter filter) {
    -<b class="fc">&nbsp;        final TreeMap&lt;String, T&gt; timers = new TreeMap&lt;&gt;();</b>
    -<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    -<b class="pc">&nbsp;            if (klass.isInstance(entry.getValue()) &amp;&amp; filter.matches(entry.getKey(),</b>
    -<b class="fc">&nbsp;                    entry.getValue())) {</b>
    -<b class="fc">&nbsp;                timers.put(entry.getKey(), (T) entry.getValue());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(timers);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void onMetricAdded(String name, Metric metric) {
    -<b class="pc">&nbsp;        for (MetricRegistryListener listener : listeners) {</b>
    -<b class="fc">&nbsp;            notifyListenerOfAddedMetric(listener, metric, name);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void notifyListenerOfAddedMetric(MetricRegistryListener listener, Metric metric, String name) {
    -<b class="pc">&nbsp;        if (metric instanceof Gauge) {</b>
    -<b class="fc">&nbsp;            listener.onGaugeAdded(name, (Gauge&lt;?&gt;) metric);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Counter) {</b>
    -<b class="fc">&nbsp;            listener.onCounterAdded(name, (Counter) metric);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Histogram) {</b>
    -<b class="fc">&nbsp;            listener.onHistogramAdded(name, (Histogram) metric);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Meter) {</b>
    -<b class="fc">&nbsp;            listener.onMeterAdded(name, (Meter) metric);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Timer) {</b>
    -<b class="fc">&nbsp;            listener.onTimerAdded(name, (Timer) metric);</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;Unknown metric type: &quot; + metric.getClass());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void onMetricRemoved(String name, Metric metric) {
    -<b class="pc">&nbsp;        for (MetricRegistryListener listener : listeners) {</b>
    -<b class="fc">&nbsp;            notifyListenerOfRemovedMetric(name, metric, listener);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void notifyListenerOfRemovedMetric(String name, Metric metric, MetricRegistryListener listener) {
    -<b class="pc">&nbsp;        if (metric instanceof Gauge) {</b>
    -<b class="fc">&nbsp;            listener.onGaugeRemoved(name);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Counter) {</b>
    -<b class="fc">&nbsp;            listener.onCounterRemoved(name);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Histogram) {</b>
    -<b class="fc">&nbsp;            listener.onHistogramRemoved(name);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Meter) {</b>
    -<b class="fc">&nbsp;            listener.onMeterRemoved(name);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Timer) {</b>
    -<b class="fc">&nbsp;            listener.onTimerRemoved(name);</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;Unknown metric type: &quot; + metric.getClass());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Given a metric set, registers them with the given prefix prepended to their names.
    -&nbsp;     *
    -&nbsp;     * @param prefix a name prefix
    -&nbsp;     * @param metrics a set of metrics
    -&nbsp;     * @throws IllegalArgumentException if any of the names are already registered
    -&nbsp;     */
    -&nbsp;    public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
    -<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.getMetrics().entrySet()) {</b>
    -<b class="pc">&nbsp;            if (entry.getValue() instanceof MetricSet) {</b>
    -<b class="fc">&nbsp;                registerAll(name(prefix, entry.getKey()), (MetricSet) entry.getValue());</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                register(name(prefix, entry.getKey()), entry.getValue());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(metrics);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @FunctionalInterface
    -&nbsp;    public interface MetricSupplier&lt;T extends Metric&gt; {
    -&nbsp;        T newMetric();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A quick and easy way of capturing the notion of default metrics.
    -&nbsp;     */
    -&nbsp;    private interface MetricBuilder&lt;T extends Metric&gt; {
    -<b class="fc">&nbsp;        MetricBuilder&lt;Counter&gt; COUNTERS = new MetricBuilder&lt;Counter&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Counter newMetric() {
    -<b class="fc">&nbsp;                return new Counter();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Counter.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -<b class="fc">&nbsp;        MetricBuilder&lt;Histogram&gt; HISTOGRAMS = new MetricBuilder&lt;Histogram&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Histogram newMetric() {
    -<b class="fc">&nbsp;                return new Histogram(new ExponentiallyDecayingReservoir());</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Histogram.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -<b class="fc">&nbsp;        MetricBuilder&lt;Meter&gt; METERS = new MetricBuilder&lt;Meter&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Meter newMetric() {
    -<b class="fc">&nbsp;                return new Meter();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Meter.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -<b class="fc">&nbsp;        MetricBuilder&lt;Timer&gt; TIMERS = new MetricBuilder&lt;Timer&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Timer newMetric() {
    -<b class="fc">&nbsp;                return new Timer();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Timer.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -&nbsp;        @SuppressWarnings(&quot;rawtypes&quot;)
    -<b class="fc">&nbsp;        MetricBuilder&lt;Gauge&gt; GAUGES = new MetricBuilder&lt;Gauge&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Gauge newMetric() {
    -<b class="fc">&nbsp;                return new DefaultSettableGauge&lt;&gt;();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Gauge.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -&nbsp;        T newMetric();
    -&nbsp;
    -&nbsp;        boolean isInstance(Metric metric);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-16.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-16.html
    deleted file mode 100644
    index 29e8684c29..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-16.html
    +++ /dev/null
    @@ -1,275 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricRegistryListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricRegistryListener (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$Base</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$5iXysY5Q</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$5iXysY5Q$auxiliary$F51bE4gh</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$5iXysY5Q$auxiliary$nSg42jpw</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$anYeCRUA</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$anYeCRUA$auxiliary$O5Lcj3DO</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$anYeCRUA$auxiliary$yb2c8vsY</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$vvUgAxm2</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$vvUgAxm2$auxiliary$nZ3MWwF6</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$vvUgAxm2$auxiliary$PeryPf4J</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$xn3YAipE</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$xn3YAipE$auxiliary$rCGi501R</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$xn3YAipE$auxiliary$yejoCfwX</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.EventListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Listeners for events from the registry.  Listeners must be thread-safe.
    -&nbsp; */
    -&nbsp;public interface MetricRegistryListener extends EventListener {
    -&nbsp;    /**
    -&nbsp;     * A no-op implementation of {@link MetricRegistryListener}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    abstract class Base implements MetricRegistryListener {</b>
    -&nbsp;        @Override
    -&nbsp;        public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onGaugeRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onCounterAdded(String name, Counter counter) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onCounterRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onHistogramAdded(String name, Histogram histogram) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onHistogramRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onMeterAdded(String name, Meter meter) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onMeterRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimerAdded(String name, Timer timer) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimerRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Gauge} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name  the gauge&#39;s name
    -&nbsp;     * @param gauge the gauge
    -&nbsp;     */
    -&nbsp;    void onGaugeAdded(String name, Gauge&lt;?&gt; gauge);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Gauge} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the gauge&#39;s name
    -&nbsp;     */
    -&nbsp;    void onGaugeRemoved(String name);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Counter} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name    the counter&#39;s name
    -&nbsp;     * @param counter the counter
    -&nbsp;     */
    -&nbsp;    void onCounterAdded(String name, Counter counter);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Counter} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the counter&#39;s name
    -&nbsp;     */
    -&nbsp;    void onCounterRemoved(String name);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Histogram} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name      the histogram&#39;s name
    -&nbsp;     * @param histogram the histogram
    -&nbsp;     */
    -&nbsp;    void onHistogramAdded(String name, Histogram histogram);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Histogram} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the histogram&#39;s name
    -&nbsp;     */
    -&nbsp;    void onHistogramRemoved(String name);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Meter} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name  the meter&#39;s name
    -&nbsp;     * @param meter the meter
    -&nbsp;     */
    -&nbsp;    void onMeterAdded(String name, Meter meter);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Meter} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the meter&#39;s name
    -&nbsp;     */
    -&nbsp;    void onMeterRemoved(String name);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Timer} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name  the timer&#39;s name
    -&nbsp;     * @param timer the timer
    -&nbsp;     */
    -&nbsp;    void onTimerAdded(String name, Timer timer);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Timer} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the timer&#39;s name
    -&nbsp;     */
    -&nbsp;    void onTimerRemoved(String name);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-17.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-17.html
    deleted file mode 100644
    index adb259620d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-17.html
    +++ /dev/null
    @@ -1,1097 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NoopMetricRegistry</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NoopMetricRegistry (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NoopMetricRegistry</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (26/32)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.4%
    -  </span>
    -  <span class="absValue">
    -    (28/34)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$EmptyConcurrentMap</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    5.9%
    -  </span>
    -  <span class="absValue">
    -    (1/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    5.9%
    -  </span>
    -  <span class="absValue">
    -    (1/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$EmptySnapshot</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopCounter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    28.6%
    -  </span>
    -  <span class="absValue">
    -    (2/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    28.6%
    -  </span>
    -  <span class="absValue">
    -    (2/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopHistogram</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    42.9%
    -  </span>
    -  <span class="absValue">
    -    (3/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (4/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopHistogram$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopMeter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.2%
    -  </span>
    -  <span class="absValue">
    -    (2/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.2%
    -  </span>
    -  <span class="absValue">
    -    (2/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopTimer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    14.3%
    -  </span>
    -  <span class="absValue">
    -    (2/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (3/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopTimer$Context</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (3/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (3/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopTimer$Context$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.SortedSet;
    -&nbsp;import java.util.concurrent.Callable;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A registry of metric instances which never creates or registers any metrics and returns no-op implementations of any metric type.
    -&nbsp; *
    -&nbsp; * @since 4.1.17
    -&nbsp; */
    -<b class="fc">&nbsp;public final class NoopMetricRegistry extends MetricRegistry {</b>
    -<b class="fc">&nbsp;    private static final EmptyConcurrentMap&lt;String, Metric&gt; EMPTY_CONCURRENT_MAP = new EmptyConcurrentMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    protected ConcurrentMap&lt;String, Metric&gt; buildMap() {
    -<b class="fc">&nbsp;        return EMPTY_CONCURRENT_MAP;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T extends Metric&gt; T register(String name, T metric) throws IllegalArgumentException {
    -<b class="fc">&nbsp;        if (metric == null) {</b>
    -<b class="fc">&nbsp;            throw new NullPointerException(&quot;metric == null&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return metric;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void registerAll(MetricSet metrics) throws IllegalArgumentException {
    -&nbsp;        // NOP
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Counter counter(String name) {
    -<b class="fc">&nbsp;        return NoopCounter.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Counter counter(String name, MetricSupplier&lt;Counter&gt; supplier) {
    -<b class="fc">&nbsp;        return NoopCounter.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Histogram histogram(String name) {
    -<b class="fc">&nbsp;        return NoopHistogram.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Histogram histogram(String name, MetricSupplier&lt;Histogram&gt; supplier) {
    -<b class="fc">&nbsp;        return NoopHistogram.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Meter meter(String name) {
    -<b class="fc">&nbsp;        return NoopMeter.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Meter meter(String name, MetricSupplier&lt;Meter&gt; supplier) {
    -<b class="fc">&nbsp;        return NoopMeter.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Timer timer(String name) {
    -<b class="fc">&nbsp;        return NoopTimer.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Timer timer(String name, MetricSupplier&lt;Timer&gt; supplier) {
    -<b class="fc">&nbsp;        return NoopTimer.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     *
    -&nbsp;     * @since 4.2
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    -&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name) {
    -<b class="fc">&nbsp;        return (T) NoopGauge.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    -&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name, MetricSupplier&lt;T&gt; supplier) {
    -<b class="fc">&nbsp;        return (T) NoopGauge.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean remove(String name) {
    -<b class="fc">&nbsp;        return false;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void removeMatching(MetricFilter filter) {
    -&nbsp;        // NOP
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void addListener(MetricRegistryListener listener) {
    -&nbsp;        // NOP
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void removeListener(MetricRegistryListener listener) {
    -&nbsp;        // NOP
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedSet&lt;String&gt; getNames() {
    -<b class="fc">&nbsp;        return Collections.emptySortedSet();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
    -&nbsp;        // NOP
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        return Collections.emptyMap();</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopGauge&lt;T&gt; implements Gauge&lt;T&gt; {</b>
    -<b class="fc">&nbsp;        private static final NoopGauge&lt;?&gt; INSTANCE = new NoopGauge&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public T getValue() {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="nc">&nbsp;    private static final class EmptySnapshot extends Snapshot {</b>
    -<b class="nc">&nbsp;        private static final EmptySnapshot INSTANCE = new EmptySnapshot();</b>
    -<b class="nc">&nbsp;        private static final long[] EMPTY_LONG_ARRAY = new long[0];</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getValue(double quantile) {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long[] getValues() {
    -<b class="nc">&nbsp;            return EMPTY_LONG_ARRAY;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public int size() {
    -<b class="nc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getMax() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getMean() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getMin() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getStdDev() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void dump(OutputStream output) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopTimer extends Timer {</b>
    -<b class="fc">&nbsp;        private static final NoopTimer INSTANCE = new NoopTimer();</b>
    -<b class="fc">&nbsp;        private static final Timer.Context CONTEXT = new NoopTimer.Context();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private static class Context extends Timer.Context {</b>
    -<b class="fc">&nbsp;            private static final Clock CLOCK = new Clock() {</b>
    -&nbsp;                /**
    -&nbsp;                 * {@inheritDoc}
    -&nbsp;                 */
    -&nbsp;                @Override
    -&nbsp;                public long getTick() {
    -<b class="fc">&nbsp;                    return 0L;</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                /**
    -&nbsp;                 * {@inheritDoc}
    -&nbsp;                 */
    -&nbsp;                @Override
    -&nbsp;                public long getTime() {
    -<b class="nc">&nbsp;                    return 0L;</b>
    -&nbsp;                }
    -&nbsp;            };
    -&nbsp;
    -&nbsp;            private Context() {
    -<b class="fc">&nbsp;                super(INSTANCE, CLOCK);</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public long stop() {
    -<b class="nc">&nbsp;                return 0L;</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public void close() {
    -&nbsp;                // NOP
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void update(long duration, TimeUnit unit) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void update(Duration duration) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public &lt;T&gt; T time(Callable&lt;T&gt; event) throws Exception {
    -<b class="nc">&nbsp;            return event.call();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public &lt;T&gt; T timeSupplier(Supplier&lt;T&gt; event) {
    -<b class="nc">&nbsp;            return event.get();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void time(Runnable event) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Timer.Context time() {
    -<b class="nc">&nbsp;            return CONTEXT;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getFifteenMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getFiveMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getMeanRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getOneMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Snapshot getSnapshot() {
    -<b class="nc">&nbsp;            return EmptySnapshot.INSTANCE;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopHistogram extends Histogram {</b>
    -<b class="fc">&nbsp;        private static final NoopHistogram INSTANCE = new NoopHistogram();</b>
    -<b class="fc">&nbsp;        private static final Reservoir EMPTY_RESERVOIR = new Reservoir() {</b>
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public int size() {
    -<b class="nc">&nbsp;                return 0;</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public void update(long value) {
    -&nbsp;                // NOP
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public Snapshot getSnapshot() {
    -<b class="nc">&nbsp;                return EmptySnapshot.INSTANCE;</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -&nbsp;        private NoopHistogram() {
    -<b class="fc">&nbsp;            super(EMPTY_RESERVOIR);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void update(int value) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void update(long value) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Snapshot getSnapshot() {
    -<b class="nc">&nbsp;            return EmptySnapshot.INSTANCE;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopCounter extends Counter {</b>
    -<b class="fc">&nbsp;        private static final NoopCounter INSTANCE = new NoopCounter();</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void inc() {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void inc(long n) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void dec() {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void dec(long n) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopMeter extends Meter {</b>
    -<b class="fc">&nbsp;        private static final NoopMeter INSTANCE = new NoopMeter();</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void mark() {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void mark(long n) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getFifteenMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getFiveMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getMeanRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getOneMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final class EmptyConcurrentMap&lt;K, V&gt; implements ConcurrentMap&lt;K, V&gt; {</b>
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V putIfAbsent(K key, V value) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean remove(Object key, Object value) {
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean replace(K key, V oldValue, V newValue) {
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V replace(K key, V value) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public int size() {
    -<b class="nc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean isEmpty() {
    -<b class="nc">&nbsp;            return true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean containsKey(Object key) {
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean containsValue(Object value) {
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V get(Object key) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V put(K key, V value) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V remove(Object key) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void putAll(Map&lt;? extends K, ? extends V&gt; m) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void clear() {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Set&lt;K&gt; keySet() {
    -<b class="nc">&nbsp;            return Collections.emptySet();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Collection&lt;V&gt; values() {
    -<b class="nc">&nbsp;            return Collections.emptySet();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Set&lt;Entry&lt;K, V&gt;&gt; entrySet() {
    -<b class="nc">&nbsp;            return Collections.emptySet();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-18.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-18.html
    deleted file mode 100644
    index a819421106..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-18.html
    +++ /dev/null
    @@ -1,196 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > RatioGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: RatioGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">RatioGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">RatioGauge$Ratio</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import static java.lang.Double.isInfinite;
    -&nbsp;import static java.lang.Double.isNaN;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A gauge which measures the ratio of one value to another.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * If the denominator is zero, not a number, or infinite, the resulting ratio is not a number.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class RatioGauge implements Gauge&lt;Double&gt; {</b>
    -&nbsp;    /**
    -&nbsp;     * A ratio of one quantity to another.
    -&nbsp;     */
    -&nbsp;    public static class Ratio {
    -&nbsp;        /**
    -&nbsp;         * Creates a new ratio with the given numerator and denominator.
    -&nbsp;         *
    -&nbsp;         * @param numerator   the numerator of the ratio
    -&nbsp;         * @param denominator the denominator of the ratio
    -&nbsp;         * @return {@code numerator:denominator}
    -&nbsp;         */
    -&nbsp;        public static Ratio of(double numerator, double denominator) {
    -<b class="fc">&nbsp;            return new Ratio(numerator, denominator);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private final double numerator;
    -&nbsp;        private final double denominator;
    -&nbsp;
    -<b class="fc">&nbsp;        private Ratio(double numerator, double denominator) {</b>
    -<b class="fc">&nbsp;            this.numerator = numerator;</b>
    -<b class="fc">&nbsp;            this.denominator = denominator;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the ratio, which is either a {@code double} between 0 and 1 (inclusive) or
    -&nbsp;         * {@code NaN}.
    -&nbsp;         *
    -&nbsp;         * @return the ratio
    -&nbsp;         */
    -&nbsp;        public double getValue() {
    -<b class="fc">&nbsp;            final double d = denominator;</b>
    -<b class="fc">&nbsp;            if (isNaN(d) || isInfinite(d) || d == 0) {</b>
    -<b class="fc">&nbsp;                return Double.NaN;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return numerator / d;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String toString() {
    -<b class="fc">&nbsp;            return numerator + &quot;:&quot; + denominator;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the {@link Ratio} which is the gauge&#39;s current value.
    -&nbsp;     *
    -&nbsp;     * @return the {@link Ratio} which is the gauge&#39;s current value
    -&nbsp;     */
    -&nbsp;    protected abstract Ratio getRatio();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Double getValue() {
    -<b class="fc">&nbsp;        return getRatio().getValue();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-19.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-19.html
    deleted file mode 100644
    index 7d4091965c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-19.html
    +++ /dev/null
    @@ -1,467 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ScheduledReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ScheduledReporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ScheduledReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.3%
    -  </span>
    -  <span class="absValue">
    -    (21/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (52/65)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">ScheduledReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ScheduledReporter$NamedThreadFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.io.Closeable;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.Executor;
    -&nbsp;import java.util.concurrent.Executors;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.ScheduledFuture;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * The abstract base class for all scheduled reporters (i.e., reporters which process a registry&#39;s
    -&nbsp; * metrics periodically).
    -&nbsp; *
    -&nbsp; * @see ConsoleReporter
    -&nbsp; * @see CsvReporter
    -&nbsp; * @see Slf4jReporter
    -&nbsp; */
    -&nbsp;public abstract class ScheduledReporter implements Closeable, Reporter {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOG = LoggerFactory.getLogger(ScheduledReporter.class);</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A simple named thread factory.
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;NullableProblems&quot;)
    -<b class="fc">&nbsp;    private static class NamedThreadFactory implements ThreadFactory {</b>
    -&nbsp;        private final ThreadGroup group;
    -<b class="fc">&nbsp;        private final AtomicInteger threadNumber = new AtomicInteger(1);</b>
    -&nbsp;        private final String namePrefix;
    -&nbsp;
    -<b class="fc">&nbsp;        private NamedThreadFactory(String name) {</b>
    -<b class="fc">&nbsp;            final SecurityManager s = System.getSecurityManager();</b>
    -<b class="fc">&nbsp;            this.group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();</b>
    -<b class="fc">&nbsp;            this.namePrefix = &quot;metrics-&quot; + name + &quot;-thread-&quot;;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Thread newThread(Runnable r) {
    -<b class="fc">&nbsp;            final Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);</b>
    -<b class="fc">&nbsp;            t.setDaemon(true);</b>
    -<b class="fc">&nbsp;            if (t.getPriority() != Thread.NORM_PRIORITY) {</b>
    -<b class="nc">&nbsp;                t.setPriority(Thread.NORM_PRIORITY);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return t;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final AtomicInteger FACTORY_ID = new AtomicInteger();</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final ScheduledExecutorService executor;
    -&nbsp;    private final boolean shutdownExecutorOnStop;
    -&nbsp;    private final Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -&nbsp;    private ScheduledFuture&lt;?&gt; scheduledFuture;
    -&nbsp;    private final MetricFilter filter;
    -&nbsp;    private final long durationFactor;
    -&nbsp;    private final String durationUnit;
    -&nbsp;    private final long rateFactor;
    -&nbsp;    private final String rateUnit;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ScheduledReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry     the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    -&nbsp;     *                     reporter will report
    -&nbsp;     * @param name         the reporter&#39;s name
    -&nbsp;     * @param filter       the filter for which metrics to report
    -&nbsp;     * @param rateUnit     a unit of time
    -&nbsp;     * @param durationUnit a unit of time
    -&nbsp;     */
    -&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    -&nbsp;                                String name,
    -&nbsp;                                MetricFilter filter,
    -&nbsp;                                TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit) {
    -<b class="fc">&nbsp;        this(registry, name, filter, rateUnit, durationUnit, createDefaultExecutor(name));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ScheduledReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    -&nbsp;     *                 reporter will report
    -&nbsp;     * @param name     the reporter&#39;s name
    -&nbsp;     * @param filter   the filter for which metrics to report
    -&nbsp;     * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;     */
    -&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    -&nbsp;                                String name,
    -&nbsp;                                MetricFilter filter,
    -&nbsp;                                TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit,
    -&nbsp;                                ScheduledExecutorService executor) {
    -<b class="fc">&nbsp;        this(registry, name, filter, rateUnit, durationUnit, executor, true);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ScheduledReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry               the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    -&nbsp;     *                               reporter will report
    -&nbsp;     * @param name                   the reporter&#39;s name
    -&nbsp;     * @param filter                 the filter for which metrics to report
    -&nbsp;     * @param executor               the executor to use while scheduling reporting of metrics.
    -&nbsp;     * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;     */
    -&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    -&nbsp;                                String name,
    -&nbsp;                                MetricFilter filter,
    -&nbsp;                                TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit,
    -&nbsp;                                ScheduledExecutorService executor,
    -&nbsp;                                boolean shutdownExecutorOnStop) {
    -<b class="fc">&nbsp;        this(registry, name, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, Collections.emptySet());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    -&nbsp;                                String name,
    -&nbsp;                                MetricFilter filter,
    -&nbsp;                                TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit,
    -&nbsp;                                ScheduledExecutorService executor,
    -&nbsp;                                boolean shutdownExecutorOnStop,
    -<b class="fc">&nbsp;                                Set&lt;MetricAttribute&gt; disabledMetricAttributes) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (registry == null) {</b>
    -<b class="fc">&nbsp;            throw new NullPointerException(&quot;registry == null&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.filter = filter;</b>
    -<b class="fc">&nbsp;        this.executor = executor == null ? createDefaultExecutor(name) : executor;</b>
    -<b class="fc">&nbsp;        this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="fc">&nbsp;        this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;        this.rateUnit = calculateRateUnit(rateUnit);</b>
    -<b class="fc">&nbsp;        this.durationFactor = durationUnit.toNanos(1);</b>
    -<b class="fc">&nbsp;        this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;        this.disabledMetricAttributes = disabledMetricAttributes != null ? disabledMetricAttributes :</b>
    -<b class="fc">&nbsp;                Collections.emptySet();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Starts the reporter polling at the given period.
    -&nbsp;     *
    -&nbsp;     * @param period the amount of time between polls
    -&nbsp;     * @param unit   the unit for {@code period}
    -&nbsp;     */
    -&nbsp;    public void start(long period, TimeUnit unit) {
    -<b class="fc">&nbsp;        start(period, period, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Starts the reporter polling at the given period with the specific runnable action.
    -&nbsp;     * Visible only for testing.
    -&nbsp;     */
    -&nbsp;    synchronized void start(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
    -<b class="fc">&nbsp;        if (this.scheduledFuture != null) {</b>
    -<b class="fc">&nbsp;            throw new IllegalArgumentException(&quot;Reporter already started&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.scheduledFuture = getScheduledFuture(initialDelay, period, unit, runnable);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Schedule the task, and return a future.
    -&nbsp;     *
    -&nbsp;     * @deprecated Use {@link #getScheduledFuture(long, long, TimeUnit, Runnable, ScheduledExecutorService)} instead.
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;DeprecatedIsStillUsed&quot;)
    -&nbsp;    @Deprecated
    -&nbsp;    protected ScheduledFuture&lt;?&gt; getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
    -<b class="fc">&nbsp;        return getScheduledFuture(initialDelay, period, unit, runnable, this.executor);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Schedule the task, and return a future.
    -&nbsp;     * The current implementation uses scheduleWithFixedDelay, replacing scheduleWithFixedRate. This avoids queueing issues, but may
    -&nbsp;     * cause some reporters to skip metrics, as scheduleWithFixedDelay introduces a growing delta from the original start point.
    -&nbsp;     *
    -&nbsp;     * Overriding this in a subclass to revert to the old behavior is permitted.
    -&nbsp;     */
    -&nbsp;    protected ScheduledFuture&lt;?&gt; getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable, ScheduledExecutorService executor) {
    -<b class="fc">&nbsp;        return executor.scheduleWithFixedDelay(runnable, initialDelay, period, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Starts the reporter polling at the given period.
    -&nbsp;     *
    -&nbsp;     * @param initialDelay the time to delay the first execution
    -&nbsp;     * @param period       the amount of time between polls
    -&nbsp;     * @param unit         the unit for {@code period} and {@code initialDelay}
    -&nbsp;     */
    -&nbsp;    synchronized public void start(long initialDelay, long period, TimeUnit unit) {
    -<b class="fc">&nbsp;        start(initialDelay, period, unit, () -&gt; {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                report();</b>
    -<b class="nc">&nbsp;            } catch (Throwable ex) {</b>
    -<b class="nc">&nbsp;                LOG.error(&quot;Exception thrown from {}#report. Exception was suppressed.&quot;, ScheduledReporter.this.getClass().getSimpleName(), ex);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Stops the reporter and if shutdownExecutorOnStop is true then shuts down its thread of execution.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * Uses the shutdown pattern from http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html
    -&nbsp;     */
    -&nbsp;    public void stop() {
    -<b class="fc">&nbsp;        if (shutdownExecutorOnStop) {</b>
    -<b class="fc">&nbsp;            executor.shutdown(); // Disable new tasks from being submitted</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            report(); // Report metrics one last time</b>
    -<b class="nc">&nbsp;        } catch (Exception e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Final reporting of metrics failed.&quot;, e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (shutdownExecutorOnStop) {</b>
    -&nbsp;            try {
    -&nbsp;                // Wait a while for existing tasks to terminate
    -<b class="fc">&nbsp;                if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    -<b class="nc">&nbsp;                    executor.shutdownNow(); // Cancel currently executing tasks</b>
    -&nbsp;                    // Wait a while for tasks to respond to being cancelled
    -<b class="nc">&nbsp;                    if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    -<b class="nc">&nbsp;                        LOG.warn(&quot;ScheduledExecutorService did not terminate.&quot;);</b>
    -&nbsp;                    }
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (InterruptedException ie) {</b>
    -&nbsp;                // (Re-)Cancel if current thread also interrupted
    -<b class="nc">&nbsp;                executor.shutdownNow();</b>
    -&nbsp;                // Preserve interrupt status
    -<b class="nc">&nbsp;                Thread.currentThread().interrupt();</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        } else {
    -&nbsp;            // The external manager (like JEE container) responsible for lifecycle of executor
    -<b class="fc">&nbsp;            cancelScheduledFuture();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private synchronized void cancelScheduledFuture() {
    -<b class="fc">&nbsp;        if (this.scheduledFuture == null) {</b>
    -&nbsp;            // was never started
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (this.scheduledFuture.isCancelled()) {</b>
    -&nbsp;            // already cancelled
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;        // just cancel the scheduledFuture and exit
    -<b class="fc">&nbsp;        this.scheduledFuture.cancel(false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Stops the reporter and shuts down its thread of execution.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="fc">&nbsp;        stop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Report the current values of all metrics in the registry.
    -&nbsp;     */
    -&nbsp;    public void report() {
    -<b class="fc">&nbsp;        synchronized (this) {</b>
    -<b class="fc">&nbsp;            report(registry.getGauges(filter),</b>
    -<b class="fc">&nbsp;                    registry.getCounters(filter),</b>
    -<b class="fc">&nbsp;                    registry.getHistograms(filter),</b>
    -<b class="fc">&nbsp;                    registry.getMeters(filter),</b>
    -<b class="fc">&nbsp;                    registry.getTimers(filter));</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called periodically by the polling thread. Subclasses should report all the given metrics.
    -&nbsp;     *
    -&nbsp;     * @param gauges     all of the gauges in the registry
    -&nbsp;     * @param counters   all of the counters in the registry
    -&nbsp;     * @param histograms all of the histograms in the registry
    -&nbsp;     * @param meters     all of the meters in the registry
    -&nbsp;     * @param timers     all of the timers in the registry
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public abstract void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                                SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                                SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                                SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                                SortedMap&lt;String, Timer&gt; timers);
    -&nbsp;
    -&nbsp;    protected String getRateUnit() {
    -<b class="fc">&nbsp;        return rateUnit;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String getDurationUnit() {
    -<b class="fc">&nbsp;        return durationUnit;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected double convertDuration(double duration) {
    -<b class="fc">&nbsp;        return duration / durationFactor;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected double convertRate(double rate) {
    -<b class="fc">&nbsp;        return rate * rateFactor;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected boolean isShutdownExecutorOnStop() {
    -<b class="nc">&nbsp;        return shutdownExecutorOnStop;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected Set&lt;MetricAttribute&gt; getDisabledMetricAttributes() {
    -<b class="fc">&nbsp;        return disabledMetricAttributes;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String calculateRateUnit(TimeUnit unit) {
    -<b class="fc">&nbsp;        final String s = unit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;        return s.substring(0, s.length() - 1);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static ScheduledExecutorService createDefaultExecutor(String name) {
    -<b class="fc">&nbsp;        return Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(name + &#39;-&#39; + FACTORY_ID.incrementAndGet()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1a.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1a.html
    deleted file mode 100644
    index 4b8c101550..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1a.html
    +++ /dev/null
    @@ -1,211 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SharedMetricRegistries</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SharedMetricRegistries (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SharedMetricRegistries</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.atomic.AtomicReference;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A map of shared, named metric registries.
    -&nbsp; */
    -&nbsp;public class SharedMetricRegistries {
    -<b class="fc">&nbsp;    private static final ConcurrentMap&lt;String, MetricRegistry&gt; REGISTRIES =</b>
    -&nbsp;            new ConcurrentHashMap&lt;&gt;();
    -&nbsp;
    -<b class="fc">&nbsp;    private static AtomicReference&lt;String&gt; defaultRegistryName = new AtomicReference&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    /* Visible for testing */
    -&nbsp;    static void setDefaultRegistryName(AtomicReference&lt;String&gt; defaultRegistryName) {
    -<b class="fc">&nbsp;        SharedMetricRegistries.defaultRegistryName = defaultRegistryName;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private SharedMetricRegistries() { /* singleton */ }
    -&nbsp;
    -&nbsp;    public static void clear() {
    -<b class="fc">&nbsp;        REGISTRIES.clear();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Set&lt;String&gt; names() {
    -<b class="fc">&nbsp;        return REGISTRIES.keySet();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void remove(String key) {
    -<b class="fc">&nbsp;        REGISTRIES.remove(key);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static MetricRegistry add(String name, MetricRegistry registry) {
    -<b class="fc">&nbsp;        return REGISTRIES.putIfAbsent(name, registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static MetricRegistry getOrCreate(String name) {
    -<b class="fc">&nbsp;        final MetricRegistry existing = REGISTRIES.get(name);</b>
    -<b class="fc">&nbsp;        if (existing == null) {</b>
    -<b class="fc">&nbsp;            final MetricRegistry created = new MetricRegistry();</b>
    -<b class="fc">&nbsp;            final MetricRegistry raced = add(name, created);</b>
    -<b class="fc">&nbsp;            if (raced == null) {</b>
    -<b class="fc">&nbsp;                return created;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            return raced;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return existing;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new registry and sets it as the default one under the provided name.
    -&nbsp;     *
    -&nbsp;     * @param name the registry name
    -&nbsp;     * @return the default registry
    -&nbsp;     * @throws IllegalStateException if the name has already been set
    -&nbsp;     */
    -&nbsp;    public synchronized static MetricRegistry setDefault(String name) {
    -<b class="fc">&nbsp;        final MetricRegistry registry = getOrCreate(name);</b>
    -<b class="fc">&nbsp;        return setDefault(name, registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Sets the provided registry as the default one under the provided name
    -&nbsp;     *
    -&nbsp;     * @param name           the default registry name
    -&nbsp;     * @param metricRegistry the default registry
    -&nbsp;     * @throws IllegalStateException if the default registry has already been set
    -&nbsp;     */
    -&nbsp;    public static MetricRegistry setDefault(String name, MetricRegistry metricRegistry) {
    -<b class="fc">&nbsp;        if (defaultRegistryName.compareAndSet(null, name)) {</b>
    -<b class="fc">&nbsp;            add(name, metricRegistry);</b>
    -<b class="fc">&nbsp;            return metricRegistry;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default metric registry name is already set.&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Gets the name of the default registry, if it has been set
    -&nbsp;     *
    -&nbsp;     * @return the default registry
    -&nbsp;     * @throws IllegalStateException if the default has not been set
    -&nbsp;     */
    -&nbsp;    public static MetricRegistry getDefault() {
    -<b class="fc">&nbsp;        MetricRegistry metricRegistry = tryGetDefault();</b>
    -<b class="fc">&nbsp;        if (metricRegistry == null) {</b>
    -<b class="fc">&nbsp;            throw new IllegalStateException(&quot;Default registry name has not been set.&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return metricRegistry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Same as {@link #getDefault()} except returns null when the default registry has not been set.
    -&nbsp;     *
    -&nbsp;     * @return the default registry or null
    -&nbsp;     */
    -&nbsp;    public static MetricRegistry tryGetDefault() {
    -<b class="fc">&nbsp;        final String name = defaultRegistryName.get();</b>
    -<b class="fc">&nbsp;        if (name != null) {</b>
    -<b class="fc">&nbsp;            return getOrCreate(name);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1b.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1b.html
    deleted file mode 100644
    index df0cc62e30..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1b.html
    +++ /dev/null
    @@ -1,782 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Slf4jReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Slf4jReporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Slf4jReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (97/97)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    79.5%
    -  </span>
    -  <span class="absValue">
    -    (35/44)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$DebugLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$ErrorLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$InfoLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$LoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$LoggingLevel</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$TraceLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$WarnLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;import org.slf4j.Marker;
    -&nbsp;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Map.Entry;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter class for logging metrics values to a SLF4J {@link Logger} periodically, similar to
    -&nbsp; * {@link ConsoleReporter} or {@link CsvReporter}, but using the SLF4J framework instead. It also
    -&nbsp; * supports specifying a {@link Marker} instance that can be used by custom appenders and filters
    -&nbsp; * for the bound logging toolkit to further process metrics reports.
    -&nbsp; */
    -<b class="fc">&nbsp;public class Slf4jReporter extends ScheduledReporter {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link Slf4jReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link Slf4jReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public enum LoggingLevel { TRACE, DEBUG, INFO, WARN, ERROR }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link Slf4jReporter} instances. Defaults to logging to {@code metrics}, not
    -&nbsp;     * using a marker, converting rates to events/second, converting durations to milliseconds, and
    -&nbsp;     * not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private Logger logger;
    -&nbsp;        private LoggingLevel loggingLevel;
    -&nbsp;        private Marker marker;
    -&nbsp;        private String prefix;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private MetricFilter filter;
    -&nbsp;        private ScheduledExecutorService executor;
    -&nbsp;        private boolean shutdownExecutorOnStop;
    -&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.logger = LoggerFactory.getLogger(&quot;metrics&quot;);</b>
    -<b class="fc">&nbsp;            this.marker = null;</b>
    -<b class="fc">&nbsp;            this.prefix = &quot;&quot;;</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;            this.loggingLevel = LoggingLevel.INFO;</b>
    -<b class="fc">&nbsp;            this.executor = null;</b>
    -<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = Collections.emptySet();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -&nbsp;         * Default value is true.
    -&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -&nbsp;         *
    -&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    -&nbsp;         * Default value is null.
    -&nbsp;         * Null value leads to executor will be auto created on start.
    -&nbsp;         *
    -&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Log metrics to the given logger.
    -&nbsp;         *
    -&nbsp;         * @param logger an SLF4J {@link Logger}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder outputTo(Logger logger) {
    -<b class="fc">&nbsp;            this.logger = logger;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Mark all logged metrics with the given marker.
    -&nbsp;         *
    -&nbsp;         * @param marker an SLF4J {@link Marker}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder markWith(Marker marker) {
    -<b class="fc">&nbsp;            this.marker = marker;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Prefix all metric names with the given string.
    -&nbsp;         *
    -&nbsp;         * @param prefix the prefix for all metric names
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder prefixedWith(String prefix) {
    -<b class="fc">&nbsp;            this.prefix = prefix;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use Logging Level when reporting.
    -&nbsp;         *
    -&nbsp;         * @param loggingLevel a (@link Slf4jReporter.LoggingLevel}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withLoggingLevel(LoggingLevel loggingLevel) {
    -<b class="fc">&nbsp;            this.loggingLevel = loggingLevel;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    -&nbsp;         * See {@link MetricAttribute}.
    -&nbsp;         *
    -&nbsp;         * @param disabledMetricAttributes a set of {@link MetricAttribute}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link Slf4jReporter} with the given properties.
    -&nbsp;         *
    -&nbsp;         * @return a {@link Slf4jReporter}
    -&nbsp;         */
    -&nbsp;        public Slf4jReporter build() {
    -&nbsp;            LoggerProxy loggerProxy;
    -<b class="fc">&nbsp;            switch (loggingLevel) {</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    loggerProxy = new TraceLoggerProxy(logger);</b>
    -<b class="nc">&nbsp;                    break;</b>
    -&nbsp;                case INFO:
    -<b class="fc">&nbsp;                    loggerProxy = new InfoLoggerProxy(logger);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case WARN:
    -<b class="nc">&nbsp;                    loggerProxy = new WarnLoggerProxy(logger);</b>
    -<b class="nc">&nbsp;                    break;</b>
    -&nbsp;                case ERROR:
    -<b class="fc">&nbsp;                    loggerProxy = new ErrorLoggerProxy(logger);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                default:
    -&nbsp;                case DEBUG:
    -<b class="nc">&nbsp;                    loggerProxy = new DebugLoggerProxy(logger);</b>
    -&nbsp;                    break;
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new Slf4jReporter(registry, loggerProxy, marker, prefix, rateUnit, durationUnit, filter, executor,</b>
    -&nbsp;                    shutdownExecutorOnStop, disabledMetricAttributes);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final LoggerProxy loggerProxy;
    -&nbsp;    private final Marker marker;
    -&nbsp;    private final String prefix;
    -&nbsp;
    -&nbsp;    private Slf4jReporter(MetricRegistry registry,
    -&nbsp;                          LoggerProxy loggerProxy,
    -&nbsp;                          Marker marker,
    -&nbsp;                          String prefix,
    -&nbsp;                          TimeUnit rateUnit,
    -&nbsp;                          TimeUnit durationUnit,
    -&nbsp;                          MetricFilter filter,
    -&nbsp;                          ScheduledExecutorService executor,
    -&nbsp;                          boolean shutdownExecutorOnStop,
    -&nbsp;                          Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;        super(registry, &quot;logger-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes);
    -<b class="fc">&nbsp;        this.loggerProxy = loggerProxy;</b>
    -<b class="fc">&nbsp;        this.marker = marker;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        if (loggerProxy.isEnabled(marker)) {</b>
    -<b class="fc">&nbsp;            StringBuilder b = new StringBuilder();</b>
    -<b class="fc">&nbsp;            for (Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;                logGauge(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;                logCounter(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;                logHistogram(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;                logMeter(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;                logTimer(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void logTimer(StringBuilder b, String name, Timer timer) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=TIMER&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        appendCountIfEnabled(b, timer);</b>
    -<b class="fc">&nbsp;        appendLongDurationIfEnabled(b, MIN, snapshot::getMin);</b>
    -<b class="fc">&nbsp;        appendLongDurationIfEnabled(b, MAX, snapshot::getMax);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, MEAN, snapshot::getMean);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, STDDEV, snapshot::getStdDev);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P50, snapshot::getMedian);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P75, snapshot::get75thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P95, snapshot::get95thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P98, snapshot::get98thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P99, snapshot::get99thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P999, snapshot::get999thPercentile);</b>
    -<b class="fc">&nbsp;        appendMetered(b, timer);</b>
    -<b class="fc">&nbsp;        append(b, &quot;rate_unit&quot;, getRateUnit());</b>
    -<b class="fc">&nbsp;        append(b, &quot;duration_unit&quot;, getDurationUnit());</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void logMeter(StringBuilder b, String name, Meter meter) {
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=METER&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        appendCountIfEnabled(b, meter);</b>
    -<b class="fc">&nbsp;        appendMetered(b, meter);</b>
    -<b class="fc">&nbsp;        append(b, &quot;rate_unit&quot;, getRateUnit());</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void logHistogram(StringBuilder b, String name, Histogram histogram) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=HISTOGRAM&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        appendCountIfEnabled(b, histogram);</b>
    -<b class="fc">&nbsp;        appendLongIfEnabled(b, MIN, snapshot::getMin);</b>
    -<b class="fc">&nbsp;        appendLongIfEnabled(b, MAX, snapshot::getMax);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, MEAN, snapshot::getMean);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, STDDEV, snapshot::getStdDev);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P50, snapshot::getMedian);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P75, snapshot::get75thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P95, snapshot::get95thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P98, snapshot::get98thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P99, snapshot::get99thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P999, snapshot::get999thPercentile);</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void logCounter(StringBuilder b, String name, Counter counter) {
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=COUNTER&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        append(b, COUNT.getCode(), counter.getCount());</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void logGauge(StringBuilder b, String name, Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=GAUGE&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        append(b, &quot;value&quot;, gauge.getValue());</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendLongDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -&nbsp;                                             Supplier&lt;Long&gt; durationSupplier) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendDoubleDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -&nbsp;                                               Supplier&lt;Double&gt; durationSupplier) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendLongIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -&nbsp;                                     Supplier&lt;Long&gt; valueSupplier) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), valueSupplier.get());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendDoubleIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -&nbsp;                                       Supplier&lt;Double&gt; valueSupplier) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), valueSupplier.get());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendCountIfEnabled(StringBuilder b, Counting counting) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(COUNT)) {</b>
    -<b class="fc">&nbsp;            append(b, COUNT.getCode(), counting.getCount());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendMetered(StringBuilder b, Metered meter) {
    -<b class="fc">&nbsp;        appendRateIfEnabled(b, M1_RATE, meter::getOneMinuteRate);</b>
    -<b class="fc">&nbsp;        appendRateIfEnabled(b, M5_RATE, meter::getFiveMinuteRate);</b>
    -<b class="fc">&nbsp;        appendRateIfEnabled(b, M15_RATE,  meter::getFifteenMinuteRate);</b>
    -<b class="fc">&nbsp;        appendRateIfEnabled(b, MEAN_RATE,  meter::getMeanRate);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendRateIfEnabled(StringBuilder b, MetricAttribute metricAttribute, Supplier&lt;Double&gt; rateSupplier) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), convertRate(rateSupplier.get()));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void append(StringBuilder b, String key, long value) {
    -<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void append(StringBuilder b, String key, double value) {
    -<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void append(StringBuilder b, String key, String value) {
    -<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void append(StringBuilder b, String key, Object value) {
    -<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected String getRateUnit() {
    -<b class="fc">&nbsp;        return &quot;events/&quot; + super.getRateUnit();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String prefix(String... components) {
    -<b class="fc">&nbsp;        return MetricRegistry.name(prefix, components);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    static abstract class LoggerProxy {
    -&nbsp;        protected final Logger logger;
    -&nbsp;
    -<b class="fc">&nbsp;        public LoggerProxy(Logger logger) {</b>
    -<b class="fc">&nbsp;            this.logger = logger;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        abstract void log(Marker marker, String format);
    -&nbsp;
    -&nbsp;        abstract boolean isEnabled(Marker marker);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class DebugLoggerProxy extends LoggerProxy {
    -&nbsp;        public DebugLoggerProxy(Logger logger) {
    -<b class="nc">&nbsp;            super(logger);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="nc">&nbsp;            logger.debug(marker, format);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="nc">&nbsp;            return logger.isDebugEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class TraceLoggerProxy extends LoggerProxy {
    -&nbsp;        public TraceLoggerProxy(Logger logger) {
    -<b class="nc">&nbsp;            super(logger);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="nc">&nbsp;            logger.trace(marker, format);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="nc">&nbsp;            return logger.isTraceEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class InfoLoggerProxy extends LoggerProxy {
    -&nbsp;        public InfoLoggerProxy(Logger logger) {
    -<b class="fc">&nbsp;            super(logger);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="fc">&nbsp;            logger.info(marker, format);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="fc">&nbsp;            return logger.isInfoEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class WarnLoggerProxy extends LoggerProxy {
    -&nbsp;        public WarnLoggerProxy(Logger logger) {
    -<b class="nc">&nbsp;            super(logger);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="nc">&nbsp;            logger.warn(marker, format);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="nc">&nbsp;            return logger.isWarnEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class ErrorLoggerProxy extends LoggerProxy {
    -&nbsp;        public ErrorLoggerProxy(Logger logger) {
    -<b class="fc">&nbsp;            super(logger);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="fc">&nbsp;            logger.error(marker, format);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="fc">&nbsp;            return logger.isErrorEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1c.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1c.html
    deleted file mode 100644
    index ac0c73327c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1c.html
    +++ /dev/null
    @@ -1,205 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowArrayReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowArrayReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
    -&nbsp; * in the last {@code N} seconds (or other time unit).
    -&nbsp; */
    -&nbsp;public class SlidingTimeWindowArrayReservoir implements Reservoir {
    -&nbsp;    // allow for this many duplicate ticks before overwriting measurements
    -&nbsp;    private static final long COLLISION_BUFFER = 256L;
    -&nbsp;    // only trim on updating once every N
    -&nbsp;    private static final long TRIM_THRESHOLD = 256L;
    -<b class="fc">&nbsp;    private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final ChunkedAssociativeLongArray measurements;
    -&nbsp;    private final long window;
    -&nbsp;    private final AtomicLong lastTick;
    -&nbsp;    private final AtomicLong count;
    -&nbsp;    private final long startTick;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given window of time.
    -&nbsp;     *
    -&nbsp;     * @param window     the window of time
    -&nbsp;     * @param windowUnit the unit of {@code window}
    -&nbsp;     */
    -&nbsp;    public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit) {
    -<b class="nc">&nbsp;        this(window, windowUnit, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given clock and window of time.
    -&nbsp;     *
    -&nbsp;     * @param window     the window of time
    -&nbsp;     * @param windowUnit the unit of {@code window}
    -&nbsp;     * @param clock      the {@link Clock} to use
    -&nbsp;     */
    -<b class="fc">&nbsp;    public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.startTick = clock.getTick();</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.measurements = new ChunkedAssociativeLongArray();</b>
    -<b class="fc">&nbsp;        this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;</b>
    -<b class="fc">&nbsp;        this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);</b>
    -<b class="fc">&nbsp;        this.count = new AtomicLong();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        trim();</b>
    -<b class="fc">&nbsp;        return measurements.size();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -&nbsp;        long newTick;
    -&nbsp;        do {
    -<b class="fc">&nbsp;            if (count.incrementAndGet() % TRIM_THRESHOLD == 0L) {</b>
    -<b class="fc">&nbsp;                trim();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            long lastTick = this.lastTick.get();</b>
    -<b class="fc">&nbsp;            newTick = getTick();</b>
    -<b class="fc">&nbsp;            boolean longOverflow = newTick &lt; lastTick;</b>
    -<b class="fc">&nbsp;            if (longOverflow) {</b>
    -<b class="nc">&nbsp;                measurements.clear();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        } while (!measurements.put(newTick, value));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        trim();</b>
    -<b class="fc">&nbsp;        return new UniformSnapshot(measurements.values());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private long getTick() {
    -&nbsp;        for ( ;; ) {
    -<b class="fc">&nbsp;            final long oldTick = lastTick.get();</b>
    -<b class="fc">&nbsp;            final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;</b>
    -&nbsp;            // ensure the tick is strictly incrementing even if there are duplicate ticks
    -<b class="fc">&nbsp;            final long newTick = tick - oldTick &gt; 0L ? tick : oldTick + 1L;</b>
    -<b class="fc">&nbsp;            if (lastTick.compareAndSet(oldTick, newTick)) {</b>
    -<b class="fc">&nbsp;                return newTick;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void trim() {
    -<b class="fc">&nbsp;        final long now = getTick();</b>
    -<b class="fc">&nbsp;        final long windowStart = now - window;</b>
    -<b class="fc">&nbsp;        final long windowEnd = now + CLEAR_BUFFER;</b>
    -<b class="fc">&nbsp;        if (windowStart &lt; windowEnd) {</b>
    -<b class="fc">&nbsp;            measurements.trim(windowStart, windowEnd);</b>
    -&nbsp;        } else {
    -&nbsp;            // long overflow handling that can happen only after 1 year after class loading
    -<b class="nc">&nbsp;            measurements.clear();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1d.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1d.html
    deleted file mode 100644
    index b0e9644652..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1d.html
    +++ /dev/null
    @@ -1,217 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowArrayReservoirTrimReadTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirTrimReadTest (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowArrayReservoirTrimReadTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">SlidingTimeWindowArrayReservoirTrimReadTest$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.openjdk.jcstress.annotations.Actor;
    -&nbsp;import org.openjdk.jcstress.annotations.Expect;
    -&nbsp;import org.openjdk.jcstress.annotations.JCStressTest;
    -&nbsp;import org.openjdk.jcstress.annotations.Outcome;
    -&nbsp;import org.openjdk.jcstress.annotations.State;
    -&nbsp;import org.openjdk.jcstress.infra.results.L_Result;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;@JCStressTest
    -&nbsp;@Outcome(
    -&nbsp;    id = &quot;\\[240, 241, 242, 243, 244, 245, 246, 247, 248, 249\\]&quot;,
    -&nbsp;    expect = Expect.ACCEPTABLE,
    -&nbsp;    desc = &quot;Actor1 made read before Actor2 even started&quot;
    -&nbsp;    )
    -&nbsp;@Outcome(
    -&nbsp;    id = &quot;\\[243, 244, 245, 246, 247, 248, 249\\]&quot;,
    -&nbsp;    expect = Expect.ACCEPTABLE,
    -&nbsp;    desc = &quot;Actor2 made trim before Actor1 even started&quot;
    -&nbsp;    )
    -&nbsp;@Outcome(
    -&nbsp;    id = &quot;\\[244, 245, 246, 247, 248, 249\\]&quot;,
    -&nbsp;    expect = Expect.ACCEPTABLE,
    -&nbsp;    desc = &quot;Actor1 made trim, then Actor2 started trim and made startIndex change, &quot; +
    -&nbsp;        &quot;before Actor1 concurrent read.&quot;
    -&nbsp;    )
    -&nbsp;@Outcome(
    -&nbsp;    id = &quot;\\[243, 244, 245, 246, 247, 248\\]&quot;,
    -&nbsp;    expect = Expect.ACCEPTABLE,
    -&nbsp;    desc = &quot;Actor1 made trim, then Actor2 started trim, but not finished startIndex change, before Actor1 concurrent read.&quot;
    -&nbsp;    )
    -&nbsp;@State
    -<b class="nc">&nbsp;public class SlidingTimeWindowArrayReservoirTrimReadTest {</b>
    -<b class="nc">&nbsp;    private final AtomicLong ticks = new AtomicLong(0);</b>
    -&nbsp;    private final SlidingTimeWindowArrayReservoir reservoir;
    -&nbsp;
    -<b class="nc">&nbsp;    public SlidingTimeWindowArrayReservoirTrimReadTest() {</b>
    -<b class="nc">&nbsp;        reservoir = new SlidingTimeWindowArrayReservoir(10, TimeUnit.NANOSECONDS, new Clock() {</b>
    -&nbsp;            @Override
    -&nbsp;            public long getTick() {
    -<b class="nc">&nbsp;                return ticks.get();</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="nc">&nbsp;        for (int i = 0; i &lt; 250; i++) {</b>
    -<b class="nc">&nbsp;            ticks.set(i);</b>
    -<b class="nc">&nbsp;            reservoir.update(i);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor1(L_Result r) {
    -<b class="nc">&nbsp;        Snapshot snapshot = reservoir.getSnapshot();</b>
    -<b class="nc">&nbsp;        String stringValues = Arrays.toString(snapshot.getValues());</b>
    -<b class="nc">&nbsp;        r.r1 = stringValues;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor2() {
    -<b class="nc">&nbsp;        ticks.set(253);</b>
    -<b class="nc">&nbsp;        reservoir.trim();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1e.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1e.html
    deleted file mode 100644
    index 084f9bc815..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1e.html
    +++ /dev/null
    @@ -1,161 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowArrayReservoirWriteReadAllocate</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirWriteReadAllocate (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowArrayReservoirWriteReadAllocate</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.openjdk.jcstress.annotations.Actor;
    -&nbsp;import org.openjdk.jcstress.annotations.Arbiter;
    -&nbsp;import org.openjdk.jcstress.annotations.Expect;
    -&nbsp;import org.openjdk.jcstress.annotations.JCStressTest;
    -&nbsp;import org.openjdk.jcstress.annotations.Outcome;
    -&nbsp;import org.openjdk.jcstress.annotations.State;
    -&nbsp;import org.openjdk.jcstress.infra.results.L_Result;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;@JCStressTest
    -&nbsp;@Outcome(id = &quot;\\[1023, 1029, 1034\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@State
    -&nbsp;public class SlidingTimeWindowArrayReservoirWriteReadAllocate {
    -&nbsp;
    -&nbsp;    private final SlidingTimeWindowArrayReservoir reservoir;
    -&nbsp;
    -<b class="nc">&nbsp;    public SlidingTimeWindowArrayReservoirWriteReadAllocate() {</b>
    -<b class="nc">&nbsp;        reservoir = new SlidingTimeWindowArrayReservoir(500, TimeUnit.SECONDS);</b>
    -<b class="nc">&nbsp;        for (int i = 0; i &lt; 1024; i++) {</b>
    -<b class="nc">&nbsp;            reservoir.update(i);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor1() {
    -<b class="nc">&nbsp;        reservoir.update(1029L);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor2() {
    -<b class="nc">&nbsp;        reservoir.update(1034L);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Arbiter
    -&nbsp;    public void arbiter(L_Result r) {
    -<b class="nc">&nbsp;        Snapshot snapshot = reservoir.getSnapshot();</b>
    -<b class="nc">&nbsp;        long[] values = snapshot.getValues();</b>
    -<b class="nc">&nbsp;        String stringValues = Arrays.toString(Arrays.copyOfRange(values, values.length - 3, values.length));</b>
    -<b class="nc">&nbsp;        r.r1 = stringValues;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1f.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1f.html
    deleted file mode 100644
    index fab27ae2f9..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-1f.html
    +++ /dev/null
    @@ -1,149 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowArrayReservoirWriteReadTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirWriteReadTest (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowArrayReservoirWriteReadTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.openjdk.jcstress.annotations.Actor;
    -&nbsp;import org.openjdk.jcstress.annotations.Expect;
    -&nbsp;import org.openjdk.jcstress.annotations.JCStressTest;
    -&nbsp;import org.openjdk.jcstress.annotations.Outcome;
    -&nbsp;import org.openjdk.jcstress.annotations.State;
    -&nbsp;import org.openjdk.jcstress.infra.results.L_Result;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;@JCStressTest
    -&nbsp;@Outcome(id = &quot;\\[\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@Outcome(id = &quot;\\[31\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@Outcome(id = &quot;\\[15\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@Outcome(id = &quot;\\[31, 15\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@Outcome(id = &quot;\\[15, 31\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@State
    -&nbsp;public class SlidingTimeWindowArrayReservoirWriteReadTest {
    -&nbsp;
    -&nbsp;    private final SlidingTimeWindowArrayReservoir reservoir;
    -&nbsp;
    -<b class="nc">&nbsp;    public SlidingTimeWindowArrayReservoirWriteReadTest() {</b>
    -<b class="nc">&nbsp;        reservoir = new SlidingTimeWindowArrayReservoir(1, TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor1() {
    -<b class="nc">&nbsp;        reservoir.update(31L);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor2() {
    -<b class="nc">&nbsp;        reservoir.update(15L);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor3(L_Result r) {
    -<b class="nc">&nbsp;        Snapshot snapshot = reservoir.getSnapshot();</b>
    -<b class="nc">&nbsp;        String stringValues = Arrays.toString(snapshot.getValues());</b>
    -<b class="nc">&nbsp;        r.r1 = stringValues;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2.html
    deleted file mode 100644
    index 1747c35140..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2.html
    +++ /dev/null
    @@ -1,333 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ChunkedAssociativeLongArray</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ChunkedAssociativeLongArray (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ChunkedAssociativeLongArray</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.3%
    -  </span>
    -  <span class="absValue">
    -    (81/85)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">ChunkedAssociativeLongArray$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ChunkedAssociativeLongArray$Chunk</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.lang.ref.SoftReference;
    -&nbsp;import java.util.ArrayDeque;
    -&nbsp;import java.util.Deque;
    -&nbsp;import java.util.Iterator;
    -&nbsp;
    -&nbsp;import static java.lang.System.arraycopy;
    -&nbsp;import static java.util.Arrays.binarySearch;
    -&nbsp;
    -&nbsp;class ChunkedAssociativeLongArray {
    -<b class="fc">&nbsp;    private static final long[] EMPTY = new long[0];</b>
    -&nbsp;    private static final int DEFAULT_CHUNK_SIZE = 512;
    -&nbsp;    private static final int MAX_CACHE_SIZE = 128;
    -&nbsp;
    -&nbsp;    private final int defaultChunkSize;
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * We use this ArrayDeque as cache to store chunks that are expired and removed from main data structure.
    -&nbsp;     * Then instead of allocating new Chunk immediately we are trying to poll one from this deque.
    -&nbsp;     * So if you have constant or slowly changing load ChunkedAssociativeLongArray will never
    -&nbsp;     * throw away old chunks or allocate new ones which makes this data structure almost garbage free.
    -&nbsp;     */
    -<b class="fc">&nbsp;    private final ArrayDeque&lt;SoftReference&lt;Chunk&gt;&gt; chunksCache = new ArrayDeque&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private final Deque&lt;Chunk&gt; chunks = new ArrayDeque&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    ChunkedAssociativeLongArray() {
    -<b class="fc">&nbsp;        this(DEFAULT_CHUNK_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    ChunkedAssociativeLongArray(int chunkSize) {</b>
    -<b class="fc">&nbsp;        this.defaultChunkSize = chunkSize;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Chunk allocateChunk() {
    -&nbsp;        while (true) {
    -<b class="fc">&nbsp;            final SoftReference&lt;Chunk&gt; chunkRef = chunksCache.pollLast();</b>
    -<b class="fc">&nbsp;            if (chunkRef == null) {</b>
    -<b class="fc">&nbsp;                return new Chunk(defaultChunkSize);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            final Chunk chunk = chunkRef.get();</b>
    -<b class="fc">&nbsp;            if (chunk != null) {</b>
    -<b class="fc">&nbsp;                chunk.cursor = 0;</b>
    -<b class="fc">&nbsp;                chunk.startIndex = 0;</b>
    -<b class="fc">&nbsp;                chunk.chunkSize = chunk.keys.length;</b>
    -<b class="fc">&nbsp;                return chunk;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void freeChunk(Chunk chunk) {
    -<b class="fc">&nbsp;        if (chunksCache.size() &lt; MAX_CACHE_SIZE) {</b>
    -<b class="fc">&nbsp;            chunksCache.add(new SoftReference&lt;&gt;(chunk));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    synchronized boolean put(long key, long value) {
    -<b class="fc">&nbsp;        Chunk activeChunk = chunks.peekLast();</b>
    -<b class="fc">&nbsp;        if (activeChunk != null &amp;&amp; activeChunk.cursor != 0 &amp;&amp; activeChunk.keys[activeChunk.cursor - 1] &gt; key) {</b>
    -&nbsp;            // key should be the same as last inserted or bigger
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (activeChunk == null || activeChunk.cursor - activeChunk.startIndex == activeChunk.chunkSize) {</b>
    -&nbsp;            // The last chunk doesn&#39;t exist or full
    -<b class="fc">&nbsp;            activeChunk = allocateChunk();</b>
    -<b class="fc">&nbsp;            chunks.add(activeChunk);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeChunk.append(key, value);</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    synchronized long[] values() {
    -<b class="fc">&nbsp;        final int valuesSize = size();</b>
    -<b class="fc">&nbsp;        if (valuesSize == 0) {</b>
    -<b class="nc">&nbsp;            return EMPTY;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final long[] values = new long[valuesSize];</b>
    -<b class="fc">&nbsp;        int valuesIndex = 0;</b>
    -<b class="fc">&nbsp;        for (Chunk chunk : chunks) {</b>
    -<b class="fc">&nbsp;            int length = chunk.cursor - chunk.startIndex;</b>
    -<b class="fc">&nbsp;            int itemsToCopy = Math.min(valuesSize - valuesIndex, length);</b>
    -<b class="fc">&nbsp;            arraycopy(chunk.values, chunk.startIndex, values, valuesIndex, itemsToCopy);</b>
    -<b class="fc">&nbsp;            valuesIndex += length;</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return values;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    synchronized int size() {
    -<b class="fc">&nbsp;        int result = 0;</b>
    -<b class="fc">&nbsp;        for (Chunk chunk : chunks) {</b>
    -<b class="fc">&nbsp;            result += chunk.cursor - chunk.startIndex;</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return result;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    synchronized String out() {
    -<b class="fc">&nbsp;        final StringBuilder builder = new StringBuilder();</b>
    -<b class="fc">&nbsp;        final Iterator&lt;Chunk&gt; iterator = chunks.iterator();</b>
    -<b class="fc">&nbsp;        while (iterator.hasNext()) {</b>
    -<b class="fc">&nbsp;            final Chunk chunk = iterator.next();</b>
    -<b class="fc">&nbsp;            builder.append(&#39;[&#39;);</b>
    -<b class="fc">&nbsp;            for (int i = chunk.startIndex; i &lt; chunk.cursor; i++) {</b>
    -<b class="fc">&nbsp;                builder.append(&#39;(&#39;).append(chunk.keys[i]).append(&quot;: &quot;)</b>
    -<b class="fc">&nbsp;                        .append(chunk.values[i]).append(&#39;)&#39;).append(&#39; &#39;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            builder.append(&#39;]&#39;);</b>
    -<b class="fc">&nbsp;            if (iterator.hasNext()) {</b>
    -<b class="fc">&nbsp;                builder.append(&quot;-&gt;&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return builder.toString();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Try to trim all beyond specified boundaries.
    -&nbsp;     *
    -&nbsp;     * @param startKey the start value for which all elements less than it should be removed.
    -&nbsp;     * @param endKey   the end value for which all elements greater/equals than it should be removed.
    -&nbsp;     */
    -&nbsp;    synchronized void trim(long startKey, long endKey) {
    -&nbsp;        /*
    -&nbsp;         * [3, 4, 5, 9] -&gt; [10, 13, 14, 15] -&gt; [21, 24, 29, 30] -&gt; [31] :: start layout
    -&nbsp;         *       |5______________________________23|                    :: trim(5, 23)
    -&nbsp;         *       [5, 9] -&gt; [10, 13, 14, 15] -&gt; [21]                     :: result layout
    -&nbsp;         */
    -<b class="fc">&nbsp;        final Iterator&lt;Chunk&gt; descendingIterator = chunks.descendingIterator();</b>
    -<b class="fc">&nbsp;        while (descendingIterator.hasNext()) {</b>
    -<b class="fc">&nbsp;            final Chunk currentTail = descendingIterator.next();</b>
    -<b class="fc">&nbsp;            if (isFirstElementIsEmptyOrGreaterEqualThanKey(currentTail, endKey)) {</b>
    -<b class="fc">&nbsp;                freeChunk(currentTail);</b>
    -<b class="fc">&nbsp;                descendingIterator.remove();</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                currentTail.cursor = findFirstIndexOfGreaterEqualElements(currentTail.keys, currentTail.startIndex,</b>
    -<b class="fc">&nbsp;                        currentTail.cursor, endKey);</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final Iterator&lt;Chunk&gt; iterator = chunks.iterator();</b>
    -<b class="fc">&nbsp;        while (iterator.hasNext()) {</b>
    -<b class="fc">&nbsp;            final Chunk currentHead = iterator.next();</b>
    -<b class="fc">&nbsp;            if (isLastElementIsLessThanKey(currentHead, startKey)) {</b>
    -<b class="fc">&nbsp;                freeChunk(currentHead);</b>
    -<b class="fc">&nbsp;                iterator.remove();</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                final int newStartIndex = findFirstIndexOfGreaterEqualElements(currentHead.keys, currentHead.startIndex,</b>
    -<b class="fc">&nbsp;                        currentHead.cursor, startKey);</b>
    -<b class="fc">&nbsp;                if (currentHead.startIndex != newStartIndex) {</b>
    -<b class="fc">&nbsp;                    currentHead.startIndex = newStartIndex;</b>
    -<b class="fc">&nbsp;                    currentHead.chunkSize = currentHead.cursor - currentHead.startIndex;</b>
    -&nbsp;                }
    -&nbsp;                break;
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    synchronized void clear() {
    -<b class="nc">&nbsp;        chunks.clear();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private boolean isFirstElementIsEmptyOrGreaterEqualThanKey(Chunk chunk, long key) {
    -<b class="fc">&nbsp;        return chunk.cursor == chunk.startIndex || chunk.keys[chunk.startIndex] &gt;= key;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private boolean isLastElementIsLessThanKey(Chunk chunk, long key) {
    -<b class="fc">&nbsp;        return chunk.cursor == chunk.startIndex || chunk.keys[chunk.cursor - 1] &lt; key;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private int findFirstIndexOfGreaterEqualElements(long[] array, int startIndex, int endIndex, long minKey) {
    -<b class="fc">&nbsp;        if (endIndex == startIndex || array[startIndex] &gt;= minKey) {</b>
    -<b class="fc">&nbsp;            return startIndex;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        final int keyIndex = binarySearch(array, startIndex, endIndex, minKey);</b>
    -<b class="fc">&nbsp;        return keyIndex &lt; 0 ? -(keyIndex + 1) : keyIndex;</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class Chunk {</b>
    -&nbsp;
    -&nbsp;        private final long[] keys;
    -&nbsp;        private final long[] values;
    -&nbsp;
    -&nbsp;        private int chunkSize; // can differ from keys.length after half clear()
    -<b class="fc">&nbsp;        private int startIndex = 0;</b>
    -<b class="fc">&nbsp;        private int cursor = 0;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private Chunk(int chunkSize) {</b>
    -<b class="fc">&nbsp;            this.chunkSize = chunkSize;</b>
    -<b class="fc">&nbsp;            this.keys = new long[chunkSize];</b>
    -<b class="fc">&nbsp;            this.values = new long[chunkSize];</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void append(long key, long value) {
    -<b class="fc">&nbsp;            keys[cursor] = key;</b>
    -<b class="fc">&nbsp;            values[cursor] = value;</b>
    -<b class="fc">&nbsp;            cursor++;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-20.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-20.html
    deleted file mode 100644
    index 48945a0690..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-20.html
    +++ /dev/null
    @@ -1,301 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowMovingAverages</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowMovingAverages (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowMovingAverages</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.time.Instant;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A triple of simple moving average rates (one, five and fifteen minutes rates) as needed by {@link Meter}.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * The averages are unweighted, i.e. they include strictly only the events in the
    -&nbsp; * sliding time window, every event having the same weight. Unlike the
    -&nbsp; * the more widely used {@link ExponentialMovingAverages} implementation,
    -&nbsp; * with this class the moving average rate drops immediately to zero if the last
    -&nbsp; * marked event is older than the time window.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A {@link Meter} with {@link SlidingTimeWindowMovingAverages} works similarly to
    -&nbsp; * a {@link Histogram} with an {@link SlidingTimeWindowArrayReservoir}, but as a Meter
    -&nbsp; * needs to keep track only of the count of events (not the events itself), the memory
    -&nbsp; * overhead is much smaller. SlidingTimeWindowMovingAverages uses buckets with just one
    -&nbsp; * counter to accumulate the number of events (one bucket per seconds, giving 900 buckets
    -&nbsp; * for the 15 minutes time window).
    -&nbsp; */
    -&nbsp;public class SlidingTimeWindowMovingAverages implements MovingAverages {
    -&nbsp;
    -&nbsp;    private static final long TIME_WINDOW_DURATION_MINUTES = 15;
    -<b class="fc">&nbsp;    private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(1);</b>
    -<b class="fc">&nbsp;    private static final Duration TIME_WINDOW_DURATION = Duration.ofMinutes(TIME_WINDOW_DURATION_MINUTES);</b>
    -&nbsp;
    -&nbsp;    // package private for the benefit of the unit test
    -<b class="fc">&nbsp;    static final int NUMBER_OF_BUCKETS = (int) (TIME_WINDOW_DURATION.toNanos() / TICK_INTERVAL);</b>
    -&nbsp;
    -&nbsp;    private final AtomicLong lastTick;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * One counter per time bucket/slot (i.e. per second, see TICK_INTERVAL) for the entire
    -&nbsp;     * time window (i.e. 15 minutes, see TIME_WINDOW_DURATION_MINUTES)
    -&nbsp;     */
    -&nbsp;    private ArrayList&lt;LongAdder&gt; buckets;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Index into buckets, pointing at the bucket containing the oldest counts
    -&nbsp;     */
    -&nbsp;    private int oldestBucketIndex;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Index into buckets, pointing at the bucket with the count for the current time (tick)
    -&nbsp;     */
    -&nbsp;    private int currentBucketIndex;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Instant at creation time of the time window. Used to calculate the currentBucketIndex
    -&nbsp;     * for the instant of a given tick (instant modulo time window duration)
    -&nbsp;     */
    -&nbsp;    private final Instant bucketBaseTime;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Instant of the bucket with index oldestBucketIndex
    -&nbsp;     */
    -&nbsp;    Instant oldestBucketTime;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowMovingAverages}.
    -&nbsp;     */
    -&nbsp;    public SlidingTimeWindowMovingAverages() {
    -<b class="fc">&nbsp;        this(Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowMovingAverages}.
    -&nbsp;     *
    -&nbsp;     * @param clock the clock to use for the meter ticks
    -&nbsp;     */
    -<b class="fc">&nbsp;    public SlidingTimeWindowMovingAverages(Clock clock) {</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    -<b class="fc">&nbsp;        lastTick = new AtomicLong(startTime);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        buckets = new ArrayList&lt;&gt;(NUMBER_OF_BUCKETS);</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; NUMBER_OF_BUCKETS; i++) {</b>
    -<b class="fc">&nbsp;            buckets.add(new LongAdder());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        bucketBaseTime = Instant.ofEpochSecond(0L, startTime);</b>
    -<b class="fc">&nbsp;        oldestBucketTime = bucketBaseTime;</b>
    -<b class="fc">&nbsp;        oldestBucketIndex = 0;</b>
    -<b class="fc">&nbsp;        currentBucketIndex = 0;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long n) {
    -<b class="fc">&nbsp;        buckets.get(currentBucketIndex).add(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void tickIfNecessary() {
    -<b class="fc">&nbsp;        final long oldTick = lastTick.get();</b>
    -<b class="fc">&nbsp;        final long newTick = clock.getTick();</b>
    -<b class="fc">&nbsp;        final long age = newTick - oldTick;</b>
    -<b class="fc">&nbsp;        if (age &gt;= TICK_INTERVAL) {</b>
    -&nbsp;            // - the newTick doesn&#39;t fall into the same slot as the oldTick anymore
    -&nbsp;            // - newLastTick is the lower border time of the new currentBucketIndex slot
    -<b class="fc">&nbsp;            final long newLastTick = newTick - age % TICK_INTERVAL;</b>
    -<b class="fc">&nbsp;            if (lastTick.compareAndSet(oldTick, newLastTick)) {</b>
    -<b class="fc">&nbsp;                Instant currentInstant = Instant.ofEpochSecond(0L, newLastTick);</b>
    -<b class="fc">&nbsp;                currentBucketIndex = normalizeIndex(calculateIndexOfTick(currentInstant));</b>
    -<b class="fc">&nbsp;                cleanOldBuckets(currentInstant);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM15Rate() {
    -<b class="fc">&nbsp;        return getMinuteRate(15);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM5Rate() {
    -<b class="fc">&nbsp;        return getMinuteRate(5);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM1Rate() {
    -<b class="fc">&nbsp;        return getMinuteRate(1);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private double getMinuteRate(int minutes) {
    -<b class="fc">&nbsp;        Instant now = Instant.ofEpochSecond(0L, lastTick.get());</b>
    -<b class="fc">&nbsp;        return sumBuckets(now, (int) (TimeUnit.MINUTES.toNanos(minutes) / TICK_INTERVAL));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    int calculateIndexOfTick(Instant tickTime) {
    -<b class="fc">&nbsp;        return (int) (Duration.between(bucketBaseTime, tickTime).toNanos() / TICK_INTERVAL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    int normalizeIndex(int index) {
    -<b class="fc">&nbsp;        int mod = index % NUMBER_OF_BUCKETS;</b>
    -<b class="fc">&nbsp;        return mod &gt;= 0 ? mod : mod + NUMBER_OF_BUCKETS;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void cleanOldBuckets(Instant currentTick) {
    -&nbsp;        int newOldestIndex;
    -<b class="fc">&nbsp;        Instant oldestStillNeededTime = currentTick.minus(TIME_WINDOW_DURATION).plusNanos(TICK_INTERVAL);</b>
    -<b class="fc">&nbsp;        Instant youngestNotInWindow = oldestBucketTime.plus(TIME_WINDOW_DURATION);</b>
    -<b class="fc">&nbsp;        if (oldestStillNeededTime.isAfter(youngestNotInWindow)) {</b>
    -&nbsp;            // there was no update() call for more than two whole TIME_WINDOW_DURATION
    -<b class="fc">&nbsp;            newOldestIndex = oldestBucketIndex;</b>
    -<b class="fc">&nbsp;            oldestBucketTime = currentTick;</b>
    -<b class="fc">&nbsp;        } else if (oldestStillNeededTime.isAfter(oldestBucketTime)) {</b>
    -<b class="fc">&nbsp;            newOldestIndex = normalizeIndex(calculateIndexOfTick(oldestStillNeededTime));</b>
    -<b class="fc">&nbsp;            oldestBucketTime = oldestStillNeededTime;</b>
    -&nbsp;        } else {
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        cleanBucketRange(oldestBucketIndex, newOldestIndex);</b>
    -<b class="fc">&nbsp;        oldestBucketIndex = newOldestIndex;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void cleanBucketRange(int fromIndex, int toIndex) {
    -<b class="fc">&nbsp;        if (fromIndex &lt; toIndex) {</b>
    -<b class="fc">&nbsp;            for (int i = fromIndex; i &lt; toIndex; i++) {</b>
    -<b class="fc">&nbsp;                buckets.get(i).reset();</b>
    -&nbsp;            }
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            for (int i = fromIndex; i &lt; NUMBER_OF_BUCKETS; i++) {</b>
    -<b class="fc">&nbsp;                buckets.get(i).reset();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            for (int i = 0; i &lt; toIndex; i++) {</b>
    -<b class="fc">&nbsp;                buckets.get(i).reset();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private long sumBuckets(Instant toTime, int numberOfBuckets) {
    -&nbsp;
    -&nbsp;        // increment toIndex to include the current bucket into the sum
    -<b class="fc">&nbsp;        int toIndex = normalizeIndex(calculateIndexOfTick(toTime) + 1);</b>
    -<b class="fc">&nbsp;        int fromIndex = normalizeIndex(toIndex - numberOfBuckets);</b>
    -<b class="fc">&nbsp;        LongAdder adder = new LongAdder();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (fromIndex &lt; toIndex) {</b>
    -<b class="fc">&nbsp;            buckets.stream()</b>
    -<b class="fc">&nbsp;                    .skip(fromIndex)</b>
    -<b class="fc">&nbsp;                    .limit(toIndex - fromIndex)</b>
    -<b class="fc">&nbsp;                    .mapToLong(LongAdder::longValue)</b>
    -<b class="fc">&nbsp;                    .forEach(adder::add);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            buckets.stream().limit(toIndex).mapToLong(LongAdder::longValue).forEach(adder::add);</b>
    -<b class="fc">&nbsp;            buckets.stream().skip(fromIndex).mapToLong(LongAdder::longValue).forEach(adder::add);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        long retval = adder.longValue();</b>
    -<b class="fc">&nbsp;        return retval;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-21.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-21.html
    deleted file mode 100644
    index a8e37ee00f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-21.html
    +++ /dev/null
    @@ -1,199 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.ConcurrentSkipListMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
    -&nbsp; * in the last {@code N} seconds (or other time unit).
    -&nbsp; */
    -&nbsp;public class SlidingTimeWindowReservoir implements Reservoir {
    -&nbsp;    // allow for this many duplicate ticks before overwriting measurements
    -&nbsp;    private static final int COLLISION_BUFFER = 256;
    -&nbsp;    // only trim on updating once every N
    -&nbsp;    private static final int TRIM_THRESHOLD = 256;
    -&nbsp;    // offsets the front of the time window for the purposes of clearing the buffer in trim
    -<b class="fc">&nbsp;    private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final ConcurrentSkipListMap&lt;Long, Long&gt; measurements;
    -&nbsp;    private final long window;
    -&nbsp;    private final AtomicLong lastTick;
    -&nbsp;    private final AtomicLong count;
    -&nbsp;    private final long startTick;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowReservoir} with the given window of time.
    -&nbsp;     *
    -&nbsp;     * @param window     the window of time
    -&nbsp;     * @param windowUnit the unit of {@code window}
    -&nbsp;     */
    -&nbsp;    public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit) {
    -<b class="nc">&nbsp;        this(window, windowUnit, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowReservoir} with the given clock and window of time.
    -&nbsp;     *
    -&nbsp;     * @param window     the window of time
    -&nbsp;     * @param windowUnit the unit of {@code window}
    -&nbsp;     * @param clock      the {@link Clock} to use
    -&nbsp;     */
    -<b class="fc">&nbsp;    public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.startTick = clock.getTick();</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.measurements = new ConcurrentSkipListMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;</b>
    -<b class="fc">&nbsp;        this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);</b>
    -<b class="fc">&nbsp;        this.count = new AtomicLong();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        trim();</b>
    -<b class="fc">&nbsp;        return measurements.size();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        if (count.incrementAndGet() % TRIM_THRESHOLD == 0) {</b>
    -<b class="fc">&nbsp;            trim();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        measurements.put(getTick(), value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        trim();</b>
    -<b class="fc">&nbsp;        return new UniformSnapshot(measurements.values());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private long getTick() {
    -&nbsp;        for ( ;; ) {
    -<b class="fc">&nbsp;            final long oldTick = lastTick.get();</b>
    -<b class="fc">&nbsp;            final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;</b>
    -&nbsp;            // ensure the tick is strictly incrementing even if there are duplicate ticks
    -<b class="fc">&nbsp;            final long newTick = tick - oldTick &gt; 0 ? tick : oldTick + 1;</b>
    -<b class="fc">&nbsp;            if (lastTick.compareAndSet(oldTick, newTick)) {</b>
    -<b class="fc">&nbsp;                return newTick;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void trim() {
    -<b class="fc">&nbsp;        final long now = getTick();</b>
    -<b class="fc">&nbsp;        final long windowStart = now - window;</b>
    -<b class="fc">&nbsp;        final long windowEnd = now + CLEAR_BUFFER;</b>
    -<b class="fc">&nbsp;        if (windowStart &lt; windowEnd) {</b>
    -<b class="fc">&nbsp;            measurements.headMap(windowStart).clear();</b>
    -<b class="fc">&nbsp;            measurements.tailMap(windowEnd).clear();</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            measurements.subMap(windowEnd, windowStart).clear();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-22.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-22.html
    deleted file mode 100644
    index f574a2c3cc..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-22.html
    +++ /dev/null
    @@ -1,147 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingWindowReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingWindowReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingWindowReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import static java.lang.Math.min;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Reservoir} implementation backed by a sliding window that stores the last {@code N}
    -&nbsp; * measurements.
    -&nbsp; */
    -&nbsp;public class SlidingWindowReservoir implements Reservoir {
    -&nbsp;    private final long[] measurements;
    -&nbsp;    private long count;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingWindowReservoir} which stores the last {@code size} measurements.
    -&nbsp;     *
    -&nbsp;     * @param size the number of measurements to store
    -&nbsp;     */
    -<b class="fc">&nbsp;    public SlidingWindowReservoir(int size) {</b>
    -<b class="fc">&nbsp;        this.measurements = new long[size];</b>
    -<b class="fc">&nbsp;        this.count = 0;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public synchronized int size() {
    -<b class="fc">&nbsp;        return (int) min(count, measurements.length);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public synchronized void update(long value) {
    -<b class="fc">&nbsp;        measurements[(int) (count++ % measurements.length)] = value;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        final long[] values = new long[size()];</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    -<b class="fc">&nbsp;            synchronized (this) {</b>
    -<b class="fc">&nbsp;                values[i] = measurements[i];</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return new UniformSnapshot(values);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-23.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-23.html
    deleted file mode 100644
    index 45bf8d21e4..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-23.html
    +++ /dev/null
    @@ -1,277 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Snapshot</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Snapshot (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Snapshot</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$mZ3tmzjp</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$mZ3tmzjp$auxiliary$bgJwullp</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$mZ3tmzjp$auxiliary$smpCeeR7</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$TAy1oPp7</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$TAy1oPp7$auxiliary$2IY4yGwf</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$TAy1oPp7$auxiliary$m3D1oaOo</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$U8c8ic7C</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$U8c8ic7C$auxiliary$7Kz9rWWn</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$U8c8ic7C$auxiliary$DdIHODfL</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$vUeJ5rxj</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$vUeJ5rxj$auxiliary$Gg22ZTJQ</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$vUeJ5rxj$auxiliary$n0OOEY8a</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$w1t1NJKR</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$w1t1NJKR$auxiliary$2oCkK5Hg</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$w1t1NJKR$auxiliary$nGy7GYus</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A statistical snapshot of a {@link Snapshot}.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class Snapshot {</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the given quantile.
    -&nbsp;     *
    -&nbsp;     * @param quantile a given quantile, in {@code [0..1]}
    -&nbsp;     * @return the value in the distribution at {@code quantile}
    -&nbsp;     */
    -&nbsp;    public abstract double getValue(double quantile);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the entire set of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the entire set of values
    -&nbsp;     */
    -&nbsp;    public abstract long[] getValues();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the number of values
    -&nbsp;     */
    -&nbsp;    public abstract int size();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the median value in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the median value
    -&nbsp;     */
    -&nbsp;    public double getMedian() {
    -<b class="fc">&nbsp;        return getValue(0.5);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 75th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 75th percentile
    -&nbsp;     */
    -&nbsp;    public double get75thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.75);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 95th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 95th percentile
    -&nbsp;     */
    -&nbsp;    public double get95thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.95);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 98th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 98th percentile
    -&nbsp;     */
    -&nbsp;    public double get98thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.98);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 99th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 99th percentile
    -&nbsp;     */
    -&nbsp;    public double get99thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.99);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 99.9th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 99.9th percentile
    -&nbsp;     */
    -&nbsp;    public double get999thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.999);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the highest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the highest value
    -&nbsp;     */
    -&nbsp;    public abstract long getMax();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the arithmetic mean of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the arithmetic mean
    -&nbsp;     */
    -&nbsp;    public abstract double getMean();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the lowest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the lowest value
    -&nbsp;     */
    -&nbsp;    public abstract long getMin();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the standard deviation of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the standard value
    -&nbsp;     */
    -&nbsp;    public abstract double getStdDev();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Writes the values of the snapshot to the given stream.
    -&nbsp;     *
    -&nbsp;     * @param output an output stream
    -&nbsp;     */
    -&nbsp;    public abstract void dump(OutputStream output);
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-24.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-24.html
    deleted file mode 100644
    index ad2989f012..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-24.html
    +++ /dev/null
    @@ -1,353 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Timer</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Timer (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Timer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (29/31)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">Timer$Context</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.concurrent.Callable;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A timer metric which aggregates timing durations and provides duration statistics, plus
    -&nbsp; * throughput statistics via {@link Meter}.
    -&nbsp; */
    -&nbsp;public class Timer implements Metered, Sampling {
    -&nbsp;    /**
    -&nbsp;     * A timing context.
    -&nbsp;     *
    -&nbsp;     * @see Timer#time()
    -&nbsp;     */
    -&nbsp;    public static class Context implements AutoCloseable {
    -&nbsp;        private final Timer timer;
    -&nbsp;        private final Clock clock;
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="fc">&nbsp;        Context(Timer timer, Clock clock) {</b>
    -<b class="fc">&nbsp;            this.timer = timer;</b>
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            this.startTime = clock.getTick();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Updates the timer with the difference between current and start time. Call to this method will
    -&nbsp;         * not reset the start time. Multiple calls result in multiple updates.
    -&nbsp;         *
    -&nbsp;         * @return the elapsed time in nanoseconds
    -&nbsp;         */
    -&nbsp;        public long stop() {
    -<b class="fc">&nbsp;            final long elapsed = clock.getTick() - startTime;</b>
    -<b class="fc">&nbsp;            timer.update(elapsed, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;            return elapsed;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Equivalent to calling {@link #stop()}.
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void close() {
    -<b class="fc">&nbsp;            stop();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final Meter meter;
    -&nbsp;    private final Histogram histogram;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Timer} using an {@link ExponentiallyDecayingReservoir} and the default
    -&nbsp;     * {@link Clock}.
    -&nbsp;     */
    -&nbsp;    public Timer() {
    -<b class="fc">&nbsp;        this(new ExponentiallyDecayingReservoir());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Timer} that uses the given {@link Reservoir}.
    -&nbsp;     *
    -&nbsp;     * @param reservoir the {@link Reservoir} implementation the timer should use
    -&nbsp;     */
    -&nbsp;    public Timer(Reservoir reservoir) {
    -<b class="fc">&nbsp;        this(reservoir, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Timer} that uses the given {@link Reservoir} and {@link Clock}.
    -&nbsp;     *
    -&nbsp;     * @param reservoir the {@link Reservoir} implementation the timer should use
    -&nbsp;     * @param clock     the {@link Clock} implementation the timer should use
    -&nbsp;     */
    -&nbsp;    public Timer(Reservoir reservoir, Clock clock) {
    -<b class="fc">&nbsp;        this(new Meter(clock), new Histogram(reservoir), clock);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public Timer(Meter meter, Histogram histogram, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.meter = meter;</b>
    -<b class="fc">&nbsp;        this.histogram = histogram;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a recorded duration.
    -&nbsp;     *
    -&nbsp;     * @param duration the length of the duration
    -&nbsp;     * @param unit     the scale unit of {@code duration}
    -&nbsp;     */
    -&nbsp;    public void update(long duration, TimeUnit unit) {
    -<b class="fc">&nbsp;        update(unit.toNanos(duration));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a recorded duration.
    -&nbsp;     *
    -&nbsp;     * @param duration the {@link Duration} to add to the timer. Negative or zero value are ignored.
    -&nbsp;     */
    -&nbsp;    public void update(Duration duration) {
    -<b class="fc">&nbsp;        update(duration.toNanos());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Times and records the duration of event.
    -&nbsp;     *
    -&nbsp;     * @param event a {@link Callable} whose {@link Callable#call()} method implements a process
    -&nbsp;     *              whose duration should be timed
    -&nbsp;     * @param &lt;T&gt;   the type of the value returned by {@code event}
    -&nbsp;     * @return the value returned by {@code event}
    -&nbsp;     * @throws Exception if {@code event} throws an {@link Exception}
    -&nbsp;     */
    -&nbsp;    public &lt;T&gt; T time(Callable&lt;T&gt; event) throws Exception {
    -<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return event.call();</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            update(clock.getTick() - startTime);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Times and records the duration of event. Should not throw exceptions, for that use the
    -&nbsp;     * {@link #time(Callable)} method.
    -&nbsp;     *
    -&nbsp;     * @param event a {@link Supplier} whose {@link Supplier#get()} method implements a process
    -&nbsp;     *              whose duration should be timed
    -&nbsp;     * @param &lt;T&gt;   the type of the value returned by {@code event}
    -&nbsp;     * @return the value returned by {@code event}
    -&nbsp;     */
    -&nbsp;    public &lt;T&gt; T timeSupplier(Supplier&lt;T&gt; event) {
    -<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return event.get();</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            update(clock.getTick() - startTime);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Times and records the duration of event.
    -&nbsp;     *
    -&nbsp;     * @param event a {@link Runnable} whose {@link Runnable#run()} method implements a process
    -&nbsp;     *              whose duration should be timed
    -&nbsp;     */
    -&nbsp;    public void time(Runnable event) {
    -<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            event.run();</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            update(clock.getTick() - startTime);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Context}.
    -&nbsp;     *
    -&nbsp;     * @return a new {@link Context}
    -&nbsp;     * @see Context
    -&nbsp;     */
    -&nbsp;    public Context time() {
    -<b class="fc">&nbsp;        return new Context(this, clock);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public long getCount() {
    -<b class="fc">&nbsp;        return histogram.getCount();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getFifteenMinuteRate() {
    -<b class="fc">&nbsp;        return meter.getFifteenMinuteRate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getFiveMinuteRate() {
    -<b class="fc">&nbsp;        return meter.getFiveMinuteRate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getMeanRate() {
    -<b class="fc">&nbsp;        return meter.getMeanRate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getOneMinuteRate() {
    -<b class="fc">&nbsp;        return meter.getOneMinuteRate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        return histogram.getSnapshot();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void update(long duration) {
    -<b class="pc">&nbsp;        if (duration &gt;= 0) {</b>
    -<b class="fc">&nbsp;            histogram.update(duration);</b>
    -<b class="fc">&nbsp;            meter.mark();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-25.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-25.html
    deleted file mode 100644
    index 228efc4674..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-25.html
    +++ /dev/null
    @@ -1,174 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > UniformReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: UniformReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">UniformReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.ThreadLocalRandom;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;import java.util.concurrent.atomic.AtomicLongArray;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A random sampling reservoir of a stream of {@code long}s. Uses Vitter&#39;s Algorithm R to produce a
    -&nbsp; * statistically representative sample.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://www.cs.umd.edu/~samir/498/vitter.pdf&quot;&gt;Random Sampling with a Reservoir&lt;/a&gt;
    -&nbsp; */
    -&nbsp;public class UniformReservoir implements Reservoir {
    -&nbsp;    private static final int DEFAULT_SIZE = 1028;
    -<b class="fc">&nbsp;    private final AtomicLong count = new AtomicLong();</b>
    -&nbsp;    private final AtomicLongArray values;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link UniformReservoir} of 1028 elements, which offers a 99.9% confidence level
    -&nbsp;     * with a 5% margin of error assuming a normal distribution.
    -&nbsp;     */
    -&nbsp;    public UniformReservoir() {
    -<b class="fc">&nbsp;        this(DEFAULT_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link UniformReservoir}.
    -&nbsp;     *
    -&nbsp;     * @param size the number of samples to keep in the sampling reservoir
    -&nbsp;     */
    -<b class="fc">&nbsp;    public UniformReservoir(int size) {</b>
    -<b class="fc">&nbsp;        this.values = new AtomicLongArray(size);</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; values.length(); i++) {</b>
    -<b class="fc">&nbsp;            values.set(i, 0);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        count.set(0);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        final long c = count.get();</b>
    -<b class="fc">&nbsp;        if (c &gt; values.length()) {</b>
    -<b class="fc">&nbsp;            return values.length();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return (int) c;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        final long c = count.incrementAndGet();</b>
    -<b class="fc">&nbsp;        if (c &lt;= values.length()) {</b>
    -<b class="fc">&nbsp;            values.set((int) c - 1, value);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final long r = ThreadLocalRandom.current().nextLong(c);</b>
    -<b class="fc">&nbsp;            if (r &lt; values.length()) {</b>
    -<b class="fc">&nbsp;                values.set((int) r, value);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        final int s = size();</b>
    -<b class="fc">&nbsp;        long[] copy = new long[s];</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; s; i++) {</b>
    -<b class="fc">&nbsp;            copy[i] = values.get(i);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return new UniformSnapshot(copy);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-26.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-26.html
    deleted file mode 100644
    index fd086f2c23..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-26.html
    +++ /dev/null
    @@ -1,281 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > UniformSnapshot</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: UniformSnapshot (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">UniformSnapshot</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collection;
    -&nbsp;
    -&nbsp;import static java.lang.Math.floor;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A statistical snapshot of a {@link UniformSnapshot}.
    -&nbsp; */
    -&nbsp;public class UniformSnapshot extends Snapshot {
    -&nbsp;
    -&nbsp;    private final long[] values;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new {@link Snapshot} with the given values.
    -&nbsp;     *
    -&nbsp;     * @param values an unordered set of values in the reservoir
    -&nbsp;     */
    -<b class="fc">&nbsp;    public UniformSnapshot(Collection&lt;Long&gt; values) {</b>
    -<b class="fc">&nbsp;        final Object[] copy = values.toArray();</b>
    -<b class="fc">&nbsp;        this.values = new long[copy.length];</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; copy.length; i++) {</b>
    -<b class="fc">&nbsp;            this.values[i] = (Long) copy[i];</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        Arrays.sort(this.values);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new {@link Snapshot} with the given values.
    -&nbsp;     *
    -&nbsp;     * @param values an unordered set of values in the reservoir that can be used by this class directly
    -&nbsp;     */
    -<b class="fc">&nbsp;    public UniformSnapshot(long[] values) {</b>
    -<b class="fc">&nbsp;        this.values = Arrays.copyOf(values, values.length);</b>
    -<b class="fc">&nbsp;        Arrays.sort(this.values);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the given quantile.
    -&nbsp;     *
    -&nbsp;     * @param quantile a given quantile, in {@code [0..1]}
    -&nbsp;     * @return the value in the distribution at {@code quantile}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getValue(double quantile) {
    -<b class="fc">&nbsp;        if (quantile &lt; 0.0 || quantile &gt; 1.0 || Double.isNaN(quantile)) {</b>
    -<b class="fc">&nbsp;            throw new IllegalArgumentException(quantile + &quot; is not in [0..1]&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    -<b class="nc">&nbsp;            return 0.0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double pos = quantile * (values.length + 1);</b>
    -<b class="fc">&nbsp;        final int index = (int) pos;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (index &lt; 1) {</b>
    -<b class="fc">&nbsp;            return values[0];</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (index &gt;= values.length) {</b>
    -<b class="fc">&nbsp;            return values[values.length - 1];</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double lower = values[index - 1];</b>
    -<b class="fc">&nbsp;        final double upper = values[index];</b>
    -<b class="fc">&nbsp;        return lower + (pos - floor(pos)) * (upper - lower);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the number of values
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        return values.length;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the entire set of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the entire set of values
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long[] getValues() {
    -<b class="fc">&nbsp;        return Arrays.copyOf(values, values.length);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the highest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the highest value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getMax() {
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return values[values.length - 1];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the lowest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the lowest value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getMin() {
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return values[0];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the arithmetic mean of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the arithmetic mean
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getMean() {
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        double sum = 0;</b>
    -<b class="fc">&nbsp;        for (long value : values) {</b>
    -<b class="fc">&nbsp;            sum += value;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return sum / values.length;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the standard deviation of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the standard deviation value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getStdDev() {
    -&nbsp;        // two-pass algorithm for variance, avoids numeric overflow
    -&nbsp;
    -<b class="fc">&nbsp;        if (values.length &lt;= 1) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double mean = getMean();</b>
    -<b class="fc">&nbsp;        double sum = 0;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (long value : values) {</b>
    -<b class="fc">&nbsp;            final double diff = value - mean;</b>
    -<b class="fc">&nbsp;            sum += diff * diff;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double variance = sum / (values.length - 1);</b>
    -<b class="fc">&nbsp;        return Math.sqrt(variance);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Writes the values of the snapshot to the given stream.
    -&nbsp;     *
    -&nbsp;     * @param output an output stream
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void dump(OutputStream output) {
    -<b class="fc">&nbsp;        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {</b>
    -<b class="fc">&nbsp;            for (long value : values) {</b>
    -<b class="fc">&nbsp;                out.printf(&quot;%d%n&quot;, value);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-27.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-27.html
    deleted file mode 100644
    index 7ffefd5bae..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-27.html
    +++ /dev/null
    @@ -1,345 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > WeightedSnapshot</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">WeightedSnapshot</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.1%
    -  </span>
    -  <span class="absValue">
    -    (51/52)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">WeightedSnapshot$WeightedSample</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.Comparator;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A statistical snapshot of a {@link WeightedSnapshot}.
    -&nbsp; */
    -&nbsp;public class WeightedSnapshot extends Snapshot {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A single sample item with value and its weights for {@link WeightedSnapshot}.
    -&nbsp;     */
    -&nbsp;    public static class WeightedSample {
    -&nbsp;        public final long value;
    -&nbsp;        public final double weight;
    -&nbsp;
    -<b class="fc">&nbsp;        public WeightedSample(long value, double weight) {</b>
    -<b class="fc">&nbsp;            this.value = value;</b>
    -<b class="fc">&nbsp;            this.weight = weight;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final long[] values;
    -&nbsp;    private final double[] normWeights;
    -&nbsp;    private final double[] quantiles;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new {@link Snapshot} with the given values.
    -&nbsp;     *
    -&nbsp;     * @param values an unordered set of values in the reservoir
    -&nbsp;     */
    -<b class="fc">&nbsp;    public WeightedSnapshot(Collection&lt;WeightedSample&gt; values) {</b>
    -<b class="fc">&nbsp;        final WeightedSample[] copy = values.toArray(new WeightedSample[]{});</b>
    -&nbsp;
    -<b class="fc">&nbsp;        Arrays.sort(copy, Comparator.comparingLong(w -&gt; w.value));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.values = new long[copy.length];</b>
    -<b class="fc">&nbsp;        this.normWeights = new double[copy.length];</b>
    -<b class="fc">&nbsp;        this.quantiles = new double[copy.length];</b>
    -&nbsp;
    -<b class="fc">&nbsp;        double sumWeight = 0;</b>
    -<b class="pc">&nbsp;        for (WeightedSample sample : copy) {</b>
    -<b class="fc">&nbsp;            sumWeight += sample.weight;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        for (int i = 0; i &lt; copy.length; i++) {</b>
    -<b class="fc">&nbsp;            this.values[i] = copy[i].value;</b>
    -<b class="pc">&nbsp;            this.normWeights[i] = sumWeight != 0 ? copy[i].weight / sumWeight : 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        for (int i = 1; i &lt; copy.length; i++) {</b>
    -<b class="fc">&nbsp;            this.quantiles[i] = this.quantiles[i - 1] + this.normWeights[i - 1];</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the given quantile.
    -&nbsp;     *
    -&nbsp;     * @param quantile a given quantile, in {@code [0..1]}
    -&nbsp;     * @return the value in the distribution at {@code quantile}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getValue(double quantile) {
    -<b class="pc">&nbsp;        if (quantile &lt; 0.0 || quantile &gt; 1.0 || Double.isNaN(quantile)) {</b>
    -<b class="fc">&nbsp;            throw new IllegalArgumentException(quantile + &quot; is not in [0..1]&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0.0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        int posx = Arrays.binarySearch(quantiles, quantile);</b>
    -<b class="pc">&nbsp;        if (posx &lt; 0)</b>
    -<b class="fc">&nbsp;            posx = ((-posx) - 1) - 1;</b>
    -&nbsp;
    -<b class="pc">&nbsp;        if (posx &lt; 1) {</b>
    -<b class="fc">&nbsp;            return values[0];</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        if (posx &gt;= values.length) {</b>
    -<b class="nc">&nbsp;            return values[values.length - 1];</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        return values[posx];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the number of values
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        return values.length;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the entire set of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the entire set of values
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long[] getValues() {
    -<b class="fc">&nbsp;        return Arrays.copyOf(values, values.length);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the highest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the highest value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getMax() {
    -<b class="pc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return values[values.length - 1];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the lowest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the lowest value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getMin() {
    -<b class="pc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return values[0];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the weighted arithmetic mean of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the weighted arithmetic mean
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getMean() {
    -<b class="pc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        double sum = 0;</b>
    -<b class="pc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    -<b class="fc">&nbsp;            sum += values[i] * normWeights[i];</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return sum;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the weighted standard deviation of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the weighted standard deviation value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getStdDev() {
    -&nbsp;        // two-pass algorithm for variance, avoids numeric overflow
    -&nbsp;
    -<b class="pc">&nbsp;        if (values.length &lt;= 1) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double mean = getMean();</b>
    -<b class="fc">&nbsp;        double variance = 0;</b>
    -&nbsp;
    -<b class="pc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    -<b class="fc">&nbsp;            final double diff = values[i] - mean;</b>
    -<b class="fc">&nbsp;            variance += normWeights[i] * diff * diff;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        return Math.sqrt(variance);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Writes the values of the snapshot to the given stream.
    -&nbsp;     *
    -&nbsp;     * @param output an output stream
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void dump(OutputStream output) {
    -<b class="fc">&nbsp;        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {</b>
    -<b class="pc">&nbsp;            for (long value : values) {</b>
    -<b class="fc">&nbsp;                out.printf(&quot;%d%n&quot;, value);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-28.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-28.html
    deleted file mode 100644
    index b4740e1582..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-28.html
    +++ /dev/null
    @@ -1,78 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Reporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Reporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Reporter</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.Closeable;
    -&nbsp;
    -&nbsp;/*
    -&nbsp; * A tag interface to indicate that a class is a Reporter.
    -&nbsp; */
    -&nbsp;public interface Reporter extends Closeable {
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-29.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-29.html
    deleted file mode 100644
    index 6e236442fe..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-29.html
    +++ /dev/null
    @@ -1,82 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SettableGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SettableGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">SettableGauge</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
    -&nbsp; * See {@link DefaultSettableGauge}.
    -&nbsp; * &lt;/p&gt;
    -&nbsp; */
    -&nbsp;public interface SettableGauge&lt;T&gt; extends Gauge&lt;T&gt; {
    -&nbsp;    /**
    -&nbsp;     * Set the metric to a new value.
    -&nbsp;     */
    -&nbsp;    void setValue(T value);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2a.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2a.html
    deleted file mode 100644
    index 2f5c31e0b0..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2a.html
    +++ /dev/null
    @@ -1,85 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metric</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Metric (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">Metric$MockitoMock$SoPFH6C1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Metric$MockitoMock$SoPFH6C1$auxiliary$9WaRnIG6</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Metric$MockitoMock$SoPFH6C1$auxiliary$MCMcHURq</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A tag interface to indicate that a class is a metric.
    -&nbsp; */
    -&nbsp;public interface Metric {
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2b.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2b.html
    deleted file mode 100644
    index 2d15fb1780..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2b.html
    +++ /dev/null
    @@ -1,81 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Counting</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Counting (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Counting</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An interface for metric types which have counts.
    -&nbsp; */
    -&nbsp;public interface Counting {
    -&nbsp;    /**
    -&nbsp;     * Returns the current count.
    -&nbsp;     *
    -&nbsp;     * @return the current count
    -&nbsp;     */
    -&nbsp;    long getCount();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2c.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2c.html
    deleted file mode 100644
    index 6dd5273f73..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2c.html
    +++ /dev/null
    @@ -1,89 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CsvFileProvider</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CsvFileProvider (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">CsvFileProvider$MockitoMock$impgqtWu</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CsvFileProvider$MockitoMock$impgqtWu$auxiliary$08Dorks3</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CsvFileProvider$MockitoMock$impgqtWu$auxiliary$NMsmJS5i</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.File;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * This interface allows a pluggable implementation of what file names
    -&nbsp; * the {@link CsvReporter} will write to.
    -&nbsp; */
    -&nbsp;public interface CsvFileProvider {
    -&nbsp;
    -&nbsp;    File getFile(File directory, String metricName);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2d.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2d.html
    deleted file mode 100644
    index ff627b80fd..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2d.html
    +++ /dev/null
    @@ -1,103 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Gauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Gauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">Gauge$MockitoMock$16J7fyYM</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Gauge$MockitoMock$16J7fyYM$auxiliary$VXWBejxv</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Gauge$MockitoMock$16J7fyYM$auxiliary$YZRkD9Gi</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A gauge metric is an instantaneous reading of a particular value. To instrument a queue&#39;s depth,
    -&nbsp; * for example:&lt;br&gt;
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; * final Queue&amp;lt;String&amp;gt; queue = new ConcurrentLinkedQueue&amp;lt;String&amp;gt;();
    -&nbsp; * final Gauge&amp;lt;Integer&amp;gt; queueDepth = new Gauge&amp;lt;Integer&amp;gt;() {
    -&nbsp; *     public Integer getValue() {
    -&nbsp; *         return queue.size();
    -&nbsp; *     }
    -&nbsp; * };
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; *
    -&nbsp; * @param &lt;T&gt; the type of the metric&#39;s value
    -&nbsp; */
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface Gauge&lt;T&gt; extends Metric {
    -&nbsp;    /**
    -&nbsp;     * Returns the metric&#39;s current value.
    -&nbsp;     *
    -&nbsp;     * @return the metric&#39;s current value
    -&nbsp;     */
    -&nbsp;    T getValue();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2e.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2e.html
    deleted file mode 100644
    index 7ee1515213..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2e.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metered</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Metered (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Metered</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An object which maintains mean and moving average rates.
    -&nbsp; */
    -&nbsp;public interface Metered extends Metric, Counting {
    -&nbsp;    /**
    -&nbsp;     * Returns the number of events which have been marked.
    -&nbsp;     *
    -&nbsp;     * @return the number of events which have been marked
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    long getCount();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the fifteen-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the fifteen-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getFifteenMinuteRate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the five-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the five-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getFiveMinuteRate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the mean rate at which events have occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the mean rate at which events have occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getMeanRate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the one-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the one-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getOneMinuteRate();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2f.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2f.html
    deleted file mode 100644
    index 033263ac55..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-2f.html
    +++ /dev/null
    @@ -1,81 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Sampling</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Sampling (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Sampling</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An object which samples values.
    -&nbsp; */
    -&nbsp;public interface Sampling {
    -&nbsp;    /**
    -&nbsp;     * Returns a snapshot of the values.
    -&nbsp;     *
    -&nbsp;     * @return a snapshot of the values
    -&nbsp;     */
    -&nbsp;    Snapshot getSnapshot();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-3.html
    deleted file mode 100644
    index 341576548a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-3.html
    +++ /dev/null
    @@ -1,231 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Clock</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Clock (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Clock</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$j3mRmozx</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$j3mRmozx$auxiliary$GFSzcwb2</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$j3mRmozx$auxiliary$zZkFzVkC</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$lyFA7CGo</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$lyFA7CGo$auxiliary$2Ki750vQ</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$lyFA7CGo$auxiliary$Vkl0Ml51</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$P9aNbVxU</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$P9aNbVxU$auxiliary$sfUu9esv</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$P9aNbVxU$auxiliary$wDu3E1JB</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$qQ3d06jA</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$qQ3d06jA$auxiliary$GLKfHdTk</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$qQ3d06jA$auxiliary$huRkNnHh</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$UserTimeClock</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$UserTimeClockHolder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An abstraction for how time passes. It is passed to {@link Timer} to track timing.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class Clock {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns the current time tick.
    -&nbsp;     *
    -&nbsp;     * @return time tick in nanoseconds
    -&nbsp;     */
    -&nbsp;    public abstract long getTick();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the current time in milliseconds.
    -&nbsp;     *
    -&nbsp;     * @return time in milliseconds
    -&nbsp;     */
    -&nbsp;    public long getTime() {
    -<b class="fc">&nbsp;        return System.currentTimeMillis();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * The default clock to use.
    -&nbsp;     *
    -&nbsp;     * @return the default {@link Clock} instance
    -&nbsp;     * @see Clock.UserTimeClock
    -&nbsp;     */
    -&nbsp;    public static Clock defaultClock() {
    -<b class="fc">&nbsp;        return UserTimeClockHolder.DEFAULT;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A clock implementation which returns the current time in epoch nanoseconds.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class UserTimeClock extends Clock {</b>
    -&nbsp;        @Override
    -&nbsp;        public long getTick() {
    -<b class="fc">&nbsp;            return System.nanoTime();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class UserTimeClockHolder {
    -<b class="fc">&nbsp;        private static final Clock DEFAULT = new UserTimeClock();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-30.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-30.html
    deleted file mode 100644
    index 0c4e59f29c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-30.html
    +++ /dev/null
    @@ -1,104 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Reservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Reservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">Reservoir$MockitoMock$STXzHw3s</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Reservoir$MockitoMock$STXzHw3s$auxiliary$oVK7dNvP</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Reservoir$MockitoMock$STXzHw3s$auxiliary$YxGDMzIi</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A statistically representative reservoir of a data stream.
    -&nbsp; */
    -&nbsp;public interface Reservoir {
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values recorded.
    -&nbsp;     *
    -&nbsp;     * @return the number of values recorded
    -&nbsp;     */
    -&nbsp;    int size();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a new recorded value to the reservoir.
    -&nbsp;     *
    -&nbsp;     * @param value a new recorded value
    -&nbsp;     */
    -&nbsp;    void update(long value);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a snapshot of the reservoir&#39;s values.
    -&nbsp;     *
    -&nbsp;     * @return a snapshot of the reservoir&#39;s values
    -&nbsp;     */
    -&nbsp;    Snapshot getSnapshot();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-31.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-31.html
    deleted file mode 100644
    index 612178b26c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-31.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MovingAverages</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MovingAverages (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">MovingAverages</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A triple of moving averages (one-, five-, and fifteen-minute
    -&nbsp; * moving average) as needed by {@link Meter}.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Included implementations are:
    -&nbsp; * &lt;ul&gt;
    -&nbsp; * &lt;li&gt;{@link ExponentialMovingAverages} exponential decaying average similar to the {@code top} Unix command.
    -&nbsp; * &lt;li&gt;{@link SlidingTimeWindowMovingAverages} simple (unweighted) moving average
    -&nbsp; * &lt;/ul&gt;
    -&nbsp; */
    -&nbsp;public interface MovingAverages {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Tick the internal clock of the MovingAverages implementation if needed
    -&nbsp;     * (according to the internal ticking interval)
    -&nbsp;     */
    -&nbsp;    void tickIfNecessary();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Update all three moving averages with n events having occurred since the last update.
    -&nbsp;     *
    -&nbsp;     * @param n
    -&nbsp;     */
    -&nbsp;    void update(long n);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the one-minute moving average rate
    -&nbsp;     *
    -&nbsp;     * @return the one-minute moving average rate
    -&nbsp;     */
    -&nbsp;    double getM1Rate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the five-minute moving average rate
    -&nbsp;     *
    -&nbsp;     * @return the five-minute moving average rate
    -&nbsp;     */
    -&nbsp;    double getM5Rate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the fifteen-minute moving average rate
    -&nbsp;     *
    -&nbsp;     * @return the fifteen-minute moving average rate
    -&nbsp;     */
    -&nbsp;    double getM15Rate();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-32.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-32.html
    deleted file mode 100644
    index e51fb19d72..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-32.html
    +++ /dev/null
    @@ -1,85 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricSet (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricSet</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of named metrics.
    -&nbsp; *
    -&nbsp; * @see MetricRegistry#registerAll(MetricSet)
    -&nbsp; */
    -&nbsp;public interface MetricSet extends Metric {
    -&nbsp;    /**
    -&nbsp;     * A map of metric names to metrics.
    -&nbsp;     *
    -&nbsp;     * @return the metrics
    -&nbsp;     */
    -&nbsp;    Map&lt;String, Metric&gt; getMetrics();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-4.html
    deleted file mode 100644
    index d3e455de44..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-4.html
    +++ /dev/null
    @@ -1,490 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ConsoleReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ConsoleReporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ConsoleReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (90/90)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">ConsoleReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ConsoleReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (30/34)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.PrintStream;
    -&nbsp;import java.text.DateFormat;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Date;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.TimeZone;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which outputs measurements to a {@link PrintStream}, like {@code System.out}.
    -&nbsp; */
    -<b class="fc">&nbsp;public class ConsoleReporter extends ScheduledReporter {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link ConsoleReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link ConsoleReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link ConsoleReporter} instances. Defaults to using the default locale and
    -&nbsp;     * time zone, writing to {@code System.out}, converting rates to events/second, converting
    -&nbsp;     * durations to milliseconds, and not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private PrintStream output;
    -&nbsp;        private Locale locale;
    -&nbsp;        private Clock clock;
    -&nbsp;        private TimeZone timeZone;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private MetricFilter filter;
    -&nbsp;        private ScheduledExecutorService executor;
    -&nbsp;        private boolean shutdownExecutorOnStop;
    -&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.output = System.out;</b>
    -<b class="fc">&nbsp;            this.locale = Locale.getDefault();</b>
    -<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    -<b class="fc">&nbsp;            this.timeZone = TimeZone.getDefault();</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;            this.executor = null;</b>
    -<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;            disabledMetricAttributes = Collections.emptySet();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -&nbsp;         * Default value is true.
    -&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -&nbsp;         *
    -&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    -&nbsp;         * Default value is null.
    -&nbsp;         * Null value leads to executor will be auto created on start.
    -&nbsp;         *
    -&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Write to the given {@link PrintStream}.
    -&nbsp;         *
    -&nbsp;         * @param output a {@link PrintStream} instance.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder outputTo(PrintStream output) {
    -<b class="fc">&nbsp;            this.output = output;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Format numbers for the given {@link Locale}.
    -&nbsp;         *
    -&nbsp;         * @param locale a {@link Locale}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder formattedFor(Locale locale) {
    -<b class="fc">&nbsp;            this.locale = locale;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given {@link Clock} instance for the time.
    -&nbsp;         *
    -&nbsp;         * @param clock a {@link Clock} instance
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withClock(Clock clock) {
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given {@link TimeZone} for the time.
    -&nbsp;         *
    -&nbsp;         * @param timeZone a {@link TimeZone}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder formattedFor(TimeZone timeZone) {
    -<b class="fc">&nbsp;            this.timeZone = timeZone;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    -&nbsp;         * See {@link MetricAttribute}.
    -&nbsp;         *
    -&nbsp;         * @param disabledMetricAttributes a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link ConsoleReporter} with the given properties.
    -&nbsp;         *
    -&nbsp;         * @return a {@link ConsoleReporter}
    -&nbsp;         */
    -&nbsp;        public ConsoleReporter build() {
    -<b class="fc">&nbsp;            return new ConsoleReporter(registry,</b>
    -&nbsp;                    output,
    -&nbsp;                    locale,
    -&nbsp;                    clock,
    -&nbsp;                    timeZone,
    -&nbsp;                    rateUnit,
    -&nbsp;                    durationUnit,
    -&nbsp;                    filter,
    -&nbsp;                    executor,
    -&nbsp;                    shutdownExecutorOnStop,
    -&nbsp;                    disabledMetricAttributes);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static final int CONSOLE_WIDTH = 80;
    -&nbsp;
    -&nbsp;    private final PrintStream output;
    -&nbsp;    private final Locale locale;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final DateFormat dateFormat;
    -&nbsp;
    -&nbsp;    private ConsoleReporter(MetricRegistry registry,
    -&nbsp;                            PrintStream output,
    -&nbsp;                            Locale locale,
    -&nbsp;                            Clock clock,
    -&nbsp;                            TimeZone timeZone,
    -&nbsp;                            TimeUnit rateUnit,
    -&nbsp;                            TimeUnit durationUnit,
    -&nbsp;                            MetricFilter filter,
    -&nbsp;                            ScheduledExecutorService executor,
    -&nbsp;                            boolean shutdownExecutorOnStop,
    -&nbsp;                            Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;        super(registry, &quot;console-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, disabledMetricAttributes);</b>
    -<b class="fc">&nbsp;        this.output = output;</b>
    -<b class="fc">&nbsp;        this.locale = locale;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT,</b>
    -&nbsp;                DateFormat.MEDIUM,
    -&nbsp;                locale);
    -<b class="fc">&nbsp;        dateFormat.setTimeZone(timeZone);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        final String dateTime = dateFormat.format(new Date(clock.getTime()));</b>
    -<b class="fc">&nbsp;        printWithBanner(dateTime, &#39;=&#39;);</b>
    -<b class="fc">&nbsp;        output.println();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (!gauges.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Gauges&quot;, &#39;-&#39;);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printGauge(entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (!counters.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Counters&quot;, &#39;-&#39;);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printCounter(entry);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (!histograms.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Histograms&quot;, &#39;-&#39;);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printHistogram(entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (!meters.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Meters&quot;, &#39;-&#39;);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printMeter(entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (!timers.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Timers&quot;, &#39;-&#39;);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printTimer(entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        output.println();</b>
    -<b class="fc">&nbsp;        output.flush();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void printMeter(Meter meter) {
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, meter.getCount()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, &quot;         mean rate = %2.2f events/%s&quot;, convertRate(meter.getMeanRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, &quot;     1-minute rate = %2.2f events/%s&quot;, convertRate(meter.getOneMinuteRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, &quot;     5-minute rate = %2.2f events/%s&quot;, convertRate(meter.getFiveMinuteRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, &quot;    15-minute rate = %2.2f events/%s&quot;, convertRate(meter.getFifteenMinuteRate()), getRateUnit()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void printCounter(Map.Entry&lt;String, Counter&gt; entry) {
    -<b class="fc">&nbsp;        output.printf(locale, &quot;             count = %d%n&quot;, entry.getValue().getCount());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void printGauge(Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;        output.printf(locale, &quot;             value = %s%n&quot;, gauge.getValue());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void printHistogram(Histogram histogram) {
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, histogram.getCount()));</b>
    -<b class="fc">&nbsp;        Snapshot snapshot = histogram.getSnapshot();</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MIN, String.format(locale, &quot;               min = %d&quot;, snapshot.getMin()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MAX, String.format(locale, &quot;               max = %d&quot;, snapshot.getMax()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN, String.format(locale, &quot;              mean = %2.2f&quot;, snapshot.getMean()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.STDDEV, String.format(locale, &quot;            stddev = %2.2f&quot;, snapshot.getStdDev()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P50, String.format(locale, &quot;            median = %2.2f&quot;, snapshot.getMedian()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P75, String.format(locale, &quot;              75%% &lt;= %2.2f&quot;, snapshot.get75thPercentile()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P95, String.format(locale, &quot;              95%% &lt;= %2.2f&quot;, snapshot.get95thPercentile()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P98, String.format(locale, &quot;              98%% &lt;= %2.2f&quot;, snapshot.get98thPercentile()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P99, String.format(locale, &quot;              99%% &lt;= %2.2f&quot;, snapshot.get99thPercentile()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P999, String.format(locale, &quot;            99.9%% &lt;= %2.2f&quot;, snapshot.get999thPercentile()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void printTimer(Timer timer) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, timer.getCount()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, &quot;         mean rate = %2.2f calls/%s&quot;, convertRate(timer.getMeanRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, &quot;     1-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getOneMinuteRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, &quot;     5-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getFiveMinuteRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, &quot;    15-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getFifteenMinuteRate()), getRateUnit()));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MIN, String.format(locale, &quot;               min = %2.2f %s&quot;, convertDuration(snapshot.getMin()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MAX, String.format(locale, &quot;               max = %2.2f %s&quot;, convertDuration(snapshot.getMax()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN, String.format(locale, &quot;              mean = %2.2f %s&quot;, convertDuration(snapshot.getMean()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.STDDEV, String.format(locale, &quot;            stddev = %2.2f %s&quot;, convertDuration(snapshot.getStdDev()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P50, String.format(locale, &quot;            median = %2.2f %s&quot;, convertDuration(snapshot.getMedian()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P75, String.format(locale, &quot;              75%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get75thPercentile()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P95, String.format(locale, &quot;              95%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get95thPercentile()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P98, String.format(locale, &quot;              98%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get98thPercentile()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P99, String.format(locale, &quot;              99%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get99thPercentile()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P999, String.format(locale, &quot;            99.9%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get999thPercentile()), getDurationUnit()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void printWithBanner(String s, char c) {
    -<b class="fc">&nbsp;        output.print(s);</b>
    -<b class="fc">&nbsp;        output.print(&#39; &#39;);</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; (CONSOLE_WIDTH - s.length() - 1); i++) {</b>
    -<b class="fc">&nbsp;            output.print(c);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        output.println();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Print only if the attribute is enabled
    -&nbsp;     *
    -&nbsp;     * @param type   Metric attribute
    -&nbsp;     * @param status Status to be logged
    -&nbsp;     */
    -&nbsp;    private void printIfEnabled(MetricAttribute type, String status) {
    -<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        output.println(status);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-5.html
    deleted file mode 100644
    index b733dae7d3..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-5.html
    +++ /dev/null
    @@ -1,160 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Counter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Counter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Counter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An incrementing and decrementing counter metric.
    -&nbsp; */
    -&nbsp;public class Counter implements Metric, Counting {
    -&nbsp;    private final LongAdder count;
    -&nbsp;
    -<b class="fc">&nbsp;    public Counter() {</b>
    -<b class="fc">&nbsp;        this.count = new LongAdder();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Increment the counter by one.
    -&nbsp;     */
    -&nbsp;    public void inc() {
    -<b class="fc">&nbsp;        inc(1);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Increment the counter by {@code n}.
    -&nbsp;     *
    -&nbsp;     * @param n the amount by which the counter will be increased
    -&nbsp;     */
    -&nbsp;    public void inc(long n) {
    -<b class="fc">&nbsp;        count.add(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Decrement the counter by one.
    -&nbsp;     */
    -&nbsp;    public void dec() {
    -<b class="fc">&nbsp;        dec(1);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Decrement the counter by {@code n}.
    -&nbsp;     *
    -&nbsp;     * @param n the amount by which the counter will be decreased
    -&nbsp;     */
    -&nbsp;    public void dec(long n) {
    -<b class="fc">&nbsp;        count.add(-n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the counter&#39;s current value.
    -&nbsp;     *
    -&nbsp;     * @return the counter&#39;s current value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getCount() {
    -<b class="fc">&nbsp;        return count.sum();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-6.html
    deleted file mode 100644
    index ebf3188d24..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-6.html
    +++ /dev/null
    @@ -1,477 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CsvReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CsvReporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CsvReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.4%
    -  </span>
    -  <span class="absValue">
    -    (81/84)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">CsvReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CsvReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (10/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.1%
    -  </span>
    -  <span class="absValue">
    -    (27/31)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.io.File;
    -&nbsp;import java.io.FileOutputStream;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which creates a comma-separated values file of the measurements for each metric.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CsvReporter extends ScheduledReporter {</b>
    -&nbsp;    private static final String DEFAULT_SEPARATOR = &quot;,&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link CsvReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link CsvReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link CsvReporter} instances. Defaults to using the default locale, converting
    -&nbsp;     * rates to events/second, converting durations to milliseconds, and not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private Locale locale;
    -&nbsp;        private String separator;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private Clock clock;
    -&nbsp;        private MetricFilter filter;
    -&nbsp;        private ScheduledExecutorService executor;
    -&nbsp;        private boolean shutdownExecutorOnStop;
    -&nbsp;        private CsvFileProvider csvFileProvider;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.locale = Locale.getDefault();</b>
    -<b class="fc">&nbsp;            this.separator = DEFAULT_SEPARATOR;</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    -<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;            this.executor = null;</b>
    -<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;            this.csvFileProvider = new FixedNameCsvFileProvider();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -&nbsp;         * Default value is true.
    -&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -&nbsp;         *
    -&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    -&nbsp;         * Default value is null.
    -&nbsp;         * Null value leads to executor will be auto created on start.
    -&nbsp;         *
    -&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Format numbers for the given {@link Locale}.
    -&nbsp;         *
    -&nbsp;         * @param locale a {@link Locale}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder formatFor(Locale locale) {
    -<b class="fc">&nbsp;            this.locale = locale;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given string to use as the separator for values.
    -&nbsp;         *
    -&nbsp;         * @param separator the string to use for the separator.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withSeparator(String separator) {
    -<b class="fc">&nbsp;            this.separator = separator;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given {@link Clock} instance for the time.
    -&nbsp;         *
    -&nbsp;         * @param clock a {@link Clock} instance
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withClock(Clock clock) {
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withCsvFileProvider(CsvFileProvider csvFileProvider) {
    -<b class="fc">&nbsp;            this.csvFileProvider = csvFileProvider;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link CsvReporter} with the given properties, writing {@code .csv} files to the
    -&nbsp;         * given directory.
    -&nbsp;         *
    -&nbsp;         * @param directory the directory in which the {@code .csv} files will be created
    -&nbsp;         * @return a {@link CsvReporter}
    -&nbsp;         */
    -&nbsp;        public CsvReporter build(File directory) {
    -<b class="fc">&nbsp;            return new CsvReporter(registry,</b>
    -&nbsp;                    directory,
    -&nbsp;                    locale,
    -&nbsp;                    separator,
    -&nbsp;                    rateUnit,
    -&nbsp;                    durationUnit,
    -&nbsp;                    clock,
    -&nbsp;                    filter,
    -&nbsp;                    executor,
    -&nbsp;                    shutdownExecutorOnStop,
    -&nbsp;                    csvFileProvider);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(CsvReporter.class);</b>
    -&nbsp;
    -&nbsp;    private final File directory;
    -&nbsp;    private final Locale locale;
    -&nbsp;    private final String separator;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final CsvFileProvider csvFileProvider;
    -&nbsp;
    -&nbsp;    private final String histogramFormat;
    -&nbsp;    private final String meterFormat;
    -&nbsp;    private final String timerFormat;
    -&nbsp;
    -&nbsp;    private final String timerHeader;
    -&nbsp;    private final String meterHeader;
    -&nbsp;    private final String histogramHeader;
    -&nbsp;
    -&nbsp;    private CsvReporter(MetricRegistry registry,
    -&nbsp;                        File directory,
    -&nbsp;                        Locale locale,
    -&nbsp;                        String separator,
    -&nbsp;                        TimeUnit rateUnit,
    -&nbsp;                        TimeUnit durationUnit,
    -&nbsp;                        Clock clock,
    -&nbsp;                        MetricFilter filter,
    -&nbsp;                        ScheduledExecutorService executor,
    -&nbsp;                        boolean shutdownExecutorOnStop,
    -&nbsp;                        CsvFileProvider csvFileProvider) {
    -<b class="fc">&nbsp;        super(registry, &quot;csv-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop);</b>
    -<b class="fc">&nbsp;        this.directory = directory;</b>
    -<b class="fc">&nbsp;        this.locale = locale;</b>
    -<b class="fc">&nbsp;        this.separator = separator;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.csvFileProvider = csvFileProvider;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.histogramFormat = String.join(separator, &quot;%d&quot;, &quot;%d&quot;, &quot;%f&quot;, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;);</b>
    -<b class="fc">&nbsp;        this.meterFormat = String.join(separator, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;events/%s&quot;);</b>
    -<b class="fc">&nbsp;        this.timerFormat = String.join(separator, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;calls/%s&quot;, &quot;%s&quot;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.timerHeader = String.join(separator, &quot;count&quot;, &quot;max&quot;, &quot;mean&quot;, &quot;min&quot;, &quot;stddev&quot;, &quot;p50&quot;, &quot;p75&quot;, &quot;p95&quot;, &quot;p98&quot;, &quot;p99&quot;, &quot;p999&quot;, &quot;mean_rate&quot;, &quot;m1_rate&quot;, &quot;m5_rate&quot;, &quot;m15_rate&quot;, &quot;rate_unit&quot;, &quot;duration_unit&quot;);</b>
    -<b class="fc">&nbsp;        this.meterHeader = String.join(separator, &quot;count&quot;, &quot;mean_rate&quot;, &quot;m1_rate&quot;, &quot;m5_rate&quot;, &quot;m15_rate&quot;, &quot;rate_unit&quot;);</b>
    -<b class="fc">&nbsp;        this.histogramHeader = String.join(separator, &quot;count&quot;, &quot;max&quot;, &quot;mean&quot;, &quot;min&quot;, &quot;stddev&quot;, &quot;p50&quot;, &quot;p75&quot;, &quot;p95&quot;, &quot;p98&quot;, &quot;p99&quot;, &quot;p999&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        final long timestamp = TimeUnit.MILLISECONDS.toSeconds(clock.getTime());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportGauge(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportCounter(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportHistogram(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportMeter(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportTimer(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportTimer(long timestamp, String name, Timer timer) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        report(timestamp,</b>
    -&nbsp;                name,
    -&nbsp;                timerHeader,
    -&nbsp;                timerFormat,
    -<b class="fc">&nbsp;                timer.getCount(),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getMax()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getMean()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getMin()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getStdDev()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getMedian()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get75thPercentile()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get95thPercentile()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get98thPercentile()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get99thPercentile()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get999thPercentile()),</b>
    -<b class="fc">&nbsp;                convertRate(timer.getMeanRate()),</b>
    -<b class="fc">&nbsp;                convertRate(timer.getOneMinuteRate()),</b>
    -<b class="fc">&nbsp;                convertRate(timer.getFiveMinuteRate()),</b>
    -<b class="fc">&nbsp;                convertRate(timer.getFifteenMinuteRate()),</b>
    -<b class="fc">&nbsp;                getRateUnit(),</b>
    -<b class="fc">&nbsp;                getDurationUnit());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportMeter(long timestamp, String name, Meter meter) {
    -<b class="fc">&nbsp;        report(timestamp,</b>
    -&nbsp;                name,
    -&nbsp;                meterHeader,
    -&nbsp;                meterFormat,
    -<b class="fc">&nbsp;                meter.getCount(),</b>
    -<b class="fc">&nbsp;                convertRate(meter.getMeanRate()),</b>
    -<b class="fc">&nbsp;                convertRate(meter.getOneMinuteRate()),</b>
    -<b class="fc">&nbsp;                convertRate(meter.getFiveMinuteRate()),</b>
    -<b class="fc">&nbsp;                convertRate(meter.getFifteenMinuteRate()),</b>
    -<b class="fc">&nbsp;                getRateUnit());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportHistogram(long timestamp, String name, Histogram histogram) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        report(timestamp,</b>
    -&nbsp;                name,
    -&nbsp;                histogramHeader,
    -&nbsp;                histogramFormat,
    -<b class="fc">&nbsp;                histogram.getCount(),</b>
    -<b class="fc">&nbsp;                snapshot.getMax(),</b>
    -<b class="fc">&nbsp;                snapshot.getMean(),</b>
    -<b class="fc">&nbsp;                snapshot.getMin(),</b>
    -<b class="fc">&nbsp;                snapshot.getStdDev(),</b>
    -<b class="fc">&nbsp;                snapshot.getMedian(),</b>
    -<b class="fc">&nbsp;                snapshot.get75thPercentile(),</b>
    -<b class="fc">&nbsp;                snapshot.get95thPercentile(),</b>
    -<b class="fc">&nbsp;                snapshot.get98thPercentile(),</b>
    -<b class="fc">&nbsp;                snapshot.get99thPercentile(),</b>
    -<b class="fc">&nbsp;                snapshot.get999thPercentile());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportCounter(long timestamp, String name, Counter counter) {
    -<b class="fc">&nbsp;        report(timestamp, name, &quot;count&quot;, &quot;%d&quot;, counter.getCount());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportGauge(long timestamp, String name, Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;        report(timestamp, name, &quot;value&quot;, &quot;%s&quot;, gauge.getValue());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void report(long timestamp, String name, String header, String line, Object... values) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            final File file = csvFileProvider.getFile(directory, name);</b>
    -<b class="fc">&nbsp;            final boolean fileAlreadyExists = file.exists();</b>
    -<b class="fc">&nbsp;            if (fileAlreadyExists || file.createNewFile()) {</b>
    -<b class="fc">&nbsp;                try (PrintWriter out = new PrintWriter(new OutputStreamWriter(</b>
    -&nbsp;                        new FileOutputStream(file, true), UTF_8))) {
    -<b class="fc">&nbsp;                    if (!fileAlreadyExists) {</b>
    -<b class="fc">&nbsp;                        out.println(&quot;t&quot; + separator + header);</b>
    -&nbsp;                    }
    -<b class="fc">&nbsp;                    out.printf(locale, String.format(locale, &quot;%d&quot; + separator + &quot;%s%n&quot;, timestamp, line), values);</b>
    -<b class="fc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            LOGGER.warn(&quot;Error writing to {}&quot;, name, e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String name) {
    -<b class="nc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-7.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-7.html
    deleted file mode 100644
    index 051a62e182..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-7.html
    +++ /dev/null
    @@ -1,147 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DefaultSettableGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DefaultSettableGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DefaultSettableGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
    -&nbsp; */
    -&nbsp;public class DefaultSettableGauge&lt;T&gt; implements SettableGauge&lt;T&gt; {
    -&nbsp;    private volatile T value;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create an instance with no default value.
    -&nbsp;     */
    -&nbsp;    public DefaultSettableGauge() {
    -<b class="fc">&nbsp;        this(null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create an instance with a default value.
    -&nbsp;     *
    -&nbsp;     * @param defaultValue default value
    -&nbsp;     */
    -<b class="fc">&nbsp;    public DefaultSettableGauge(T defaultValue) {</b>
    -<b class="fc">&nbsp;        this.value = defaultValue;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Set the metric to a new value.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void setValue(T value) {
    -<b class="fc">&nbsp;        this.value = value;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the current value.
    -&nbsp;     *
    -&nbsp;     * @return the current value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public T getValue() {
    -<b class="fc">&nbsp;        return value;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-8.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-8.html
    deleted file mode 100644
    index 2806c3364c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-8.html
    +++ /dev/null
    @@ -1,137 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DerivativeGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DerivativeGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DerivativeGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A gauge whose value is derived from the value of another gauge.
    -&nbsp; *
    -&nbsp; * @param &lt;F&gt; the base gauge&#39;s value type
    -&nbsp; * @param &lt;T&gt; the derivative type
    -&nbsp; */
    -&nbsp;public abstract class DerivativeGauge&lt;F, T&gt; implements Gauge&lt;T&gt; {
    -&nbsp;    private final Gauge&lt;F&gt; base;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new derivative with the given base gauge.
    -&nbsp;     *
    -&nbsp;     * @param base the gauge from which to derive this gauge&#39;s value
    -&nbsp;     */
    -<b class="fc">&nbsp;    protected DerivativeGauge(Gauge&lt;F&gt; base) {</b>
    -<b class="fc">&nbsp;        this.base = base;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public T getValue() {
    -<b class="fc">&nbsp;        return transform(base.getValue());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Transforms the value of the base gauge to the value of this gauge.
    -&nbsp;     *
    -&nbsp;     * @param value the value of the base gauge
    -&nbsp;     * @return this gauge&#39;s value
    -&nbsp;     */
    -&nbsp;    protected abstract T transform(F value);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-9.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-9.html
    deleted file mode 100644
    index 16d2bd12b6..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-9.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > EWMA</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: EWMA (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">EWMA</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;import static java.lang.Math.exp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An exponentially-weighted moving average.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://www.teamquest.com/pdfs/whitepaper/ldavg1.pdf&quot;&gt;UNIX Load Average Part 1: How
    -&nbsp; * It Works&lt;/a&gt;
    -&nbsp; * @see &lt;a href=&quot;http://www.teamquest.com/pdfs/whitepaper/ldavg2.pdf&quot;&gt;UNIX Load Average Part 2: Not
    -&nbsp; * Your Average Average&lt;/a&gt;
    -&nbsp; * @see &lt;a href=&quot;http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average&quot;&gt;EMA&lt;/a&gt;
    -&nbsp; */
    -&nbsp;public class EWMA {
    -&nbsp;    private static final int INTERVAL = 5;
    -&nbsp;    private static final double SECONDS_PER_MINUTE = 60.0;
    -&nbsp;    private static final int ONE_MINUTE = 1;
    -&nbsp;    private static final int FIVE_MINUTES = 5;
    -&nbsp;    private static final int FIFTEEN_MINUTES = 15;
    -<b class="fc">&nbsp;    private static final double M1_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / ONE_MINUTE);</b>
    -<b class="fc">&nbsp;    private static final double M5_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIVE_MINUTES);</b>
    -<b class="fc">&nbsp;    private static final double M15_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIFTEEN_MINUTES);</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private volatile boolean initialized = false;</b>
    -<b class="fc">&nbsp;    private volatile double rate = 0.0;</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private final LongAdder uncounted = new LongAdder();</b>
    -&nbsp;    private final double alpha, interval;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new EWMA which is equivalent to the UNIX one minute load average and which expects
    -&nbsp;     * to be ticked every 5 seconds.
    -&nbsp;     *
    -&nbsp;     * @return a one-minute EWMA
    -&nbsp;     */
    -&nbsp;    public static EWMA oneMinuteEWMA() {
    -<b class="fc">&nbsp;        return new EWMA(M1_ALPHA, INTERVAL, TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new EWMA which is equivalent to the UNIX five minute load average and which expects
    -&nbsp;     * to be ticked every 5 seconds.
    -&nbsp;     *
    -&nbsp;     * @return a five-minute EWMA
    -&nbsp;     */
    -&nbsp;    public static EWMA fiveMinuteEWMA() {
    -<b class="fc">&nbsp;        return new EWMA(M5_ALPHA, INTERVAL, TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new EWMA which is equivalent to the UNIX fifteen minute load average and which
    -&nbsp;     * expects to be ticked every 5 seconds.
    -&nbsp;     *
    -&nbsp;     * @return a fifteen-minute EWMA
    -&nbsp;     */
    -&nbsp;    public static EWMA fifteenMinuteEWMA() {
    -<b class="fc">&nbsp;        return new EWMA(M15_ALPHA, INTERVAL, TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new EWMA with a specific smoothing constant.
    -&nbsp;     *
    -&nbsp;     * @param alpha        the smoothing constant
    -&nbsp;     * @param interval     the expected tick interval
    -&nbsp;     * @param intervalUnit the time unit of the tick interval
    -&nbsp;     */
    -<b class="fc">&nbsp;    public EWMA(double alpha, long interval, TimeUnit intervalUnit) {</b>
    -<b class="fc">&nbsp;        this.interval = intervalUnit.toNanos(interval);</b>
    -<b class="fc">&nbsp;        this.alpha = alpha;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Update the moving average with a new value.
    -&nbsp;     *
    -&nbsp;     * @param n the new value
    -&nbsp;     */
    -&nbsp;    public void update(long n) {
    -<b class="fc">&nbsp;        uncounted.add(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Mark the passage of time and decay the current rate accordingly.
    -&nbsp;     */
    -&nbsp;    public void tick() {
    -<b class="fc">&nbsp;        final long count = uncounted.sumThenReset();</b>
    -<b class="fc">&nbsp;        final double instantRate = count / interval;</b>
    -<b class="pc">&nbsp;        if (initialized) {</b>
    -<b class="fc">&nbsp;            final double oldRate = this.rate;</b>
    -<b class="fc">&nbsp;            rate = oldRate + (alpha * (instantRate - oldRate));</b>
    -<b class="fc">&nbsp;        } else {</b>
    -<b class="fc">&nbsp;            rate = instantRate;</b>
    -<b class="fc">&nbsp;            initialized = true;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the rate in the given units of time.
    -&nbsp;     *
    -&nbsp;     * @param rateUnit the unit of time
    -&nbsp;     * @return the rate
    -&nbsp;     */
    -&nbsp;    public double getRate(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;        return rate * (double) rateUnit.toNanos(1);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-a.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-a.html
    deleted file mode 100644
    index 77cce3b1c1..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-a.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ExponentialMovingAverages</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ExponentialMovingAverages (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ExponentialMovingAverages</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A triple (one, five and fifteen minutes) of exponentially-weighted moving average rates as needed by {@link Meter}.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * The rates have the same exponential decay factor as the fifteen-minute load average in the
    -&nbsp; * {@code top} Unix command.
    -&nbsp; */
    -&nbsp;public class ExponentialMovingAverages implements MovingAverages {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(5);</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private final EWMA m1Rate = EWMA.oneMinuteEWMA();</b>
    -<b class="fc">&nbsp;    private final EWMA m5Rate = EWMA.fiveMinuteEWMA();</b>
    -<b class="fc">&nbsp;    private final EWMA m15Rate = EWMA.fifteenMinuteEWMA();</b>
    -&nbsp;
    -&nbsp;    private final AtomicLong lastTick;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentialMovingAverages}.
    -&nbsp;     */
    -&nbsp;    public ExponentialMovingAverages() {
    -<b class="nc">&nbsp;        this(Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentialMovingAverages}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public ExponentialMovingAverages(Clock clock) {</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.lastTick = new AtomicLong(this.clock.getTick());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long n) {
    -<b class="fc">&nbsp;        m1Rate.update(n);</b>
    -<b class="fc">&nbsp;        m5Rate.update(n);</b>
    -<b class="fc">&nbsp;        m15Rate.update(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void tickIfNecessary() {
    -<b class="fc">&nbsp;        final long oldTick = lastTick.get();</b>
    -<b class="fc">&nbsp;        final long newTick = clock.getTick();</b>
    -<b class="fc">&nbsp;        final long age = newTick - oldTick;</b>
    -<b class="pc">&nbsp;        if (age &gt; TICK_INTERVAL) {</b>
    -<b class="fc">&nbsp;            final long newIntervalStartTick = newTick - age % TICK_INTERVAL;</b>
    -<b class="pc">&nbsp;            if (lastTick.compareAndSet(oldTick, newIntervalStartTick)) {</b>
    -<b class="fc">&nbsp;                final long requiredTicks = age / TICK_INTERVAL;</b>
    -<b class="pc">&nbsp;                for (long i = 0; i &lt; requiredTicks; i++) {</b>
    -<b class="fc">&nbsp;                    m1Rate.tick();</b>
    -<b class="fc">&nbsp;                    m5Rate.tick();</b>
    -<b class="fc">&nbsp;                    m15Rate.tick();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM1Rate() {
    -<b class="fc">&nbsp;        return m1Rate.getRate(TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM5Rate() {
    -<b class="fc">&nbsp;        return m5Rate.getRate(TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM15Rate() {
    -<b class="fc">&nbsp;        return m15Rate.getRate(TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-b.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-b.html
    deleted file mode 100644
    index bfb3485136..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-b.html
    +++ /dev/null
    @@ -1,323 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ExponentiallyDecayingReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ExponentiallyDecayingReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ExponentiallyDecayingReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.ConcurrentSkipListMap;
    -&nbsp;import java.util.concurrent.ThreadLocalRandom;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;import java.util.concurrent.locks.ReentrantReadWriteLock;
    -&nbsp;
    -&nbsp;import static java.lang.Math.exp;
    -&nbsp;import static java.lang.Math.min;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.WeightedSnapshot.WeightedSample;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al&#39;s
    -&nbsp; * forward-decaying priority reservoir sampling method to produce a statistically representative
    -&nbsp; * sampling reservoir, exponentially biased towards newer entries.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf&quot;&gt;
    -&nbsp; * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE &#39;09:
    -&nbsp; * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)&lt;/a&gt;
    -&nbsp; */
    -&nbsp;public class ExponentiallyDecayingReservoir implements Reservoir {
    -&nbsp;    private static final int DEFAULT_SIZE = 1028;
    -&nbsp;    private static final double DEFAULT_ALPHA = 0.015;
    -<b class="fc">&nbsp;    private static final long RESCALE_THRESHOLD = TimeUnit.HOURS.toNanos(1);</b>
    -&nbsp;
    -&nbsp;    private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    -&nbsp;    private final ReentrantReadWriteLock lock;
    -&nbsp;    private final double alpha;
    -&nbsp;    private final int size;
    -&nbsp;    private final AtomicLong count;
    -&nbsp;    private volatile long startTime;
    -&nbsp;    private final AtomicLong lastScaleTick;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentiallyDecayingReservoir} of 1028 elements, which offers a 99.9%
    -&nbsp;     * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
    -&nbsp;     * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
    -&nbsp;     */
    -&nbsp;    public ExponentiallyDecayingReservoir() {
    -<b class="fc">&nbsp;        this(DEFAULT_SIZE, DEFAULT_ALPHA);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentiallyDecayingReservoir}.
    -&nbsp;     *
    -&nbsp;     * @param size  the number of samples to keep in the sampling reservoir
    -&nbsp;     * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
    -&nbsp;     *              will be towards newer values
    -&nbsp;     */
    -&nbsp;    public ExponentiallyDecayingReservoir(int size, double alpha) {
    -<b class="fc">&nbsp;        this(size, alpha, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentiallyDecayingReservoir}.
    -&nbsp;     *
    -&nbsp;     * @param size  the number of samples to keep in the sampling reservoir
    -&nbsp;     * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
    -&nbsp;     *              will be towards newer values
    -&nbsp;     * @param clock the clock used to timestamp samples and track rescaling
    -&nbsp;     */
    -<b class="fc">&nbsp;    public ExponentiallyDecayingReservoir(int size, double alpha, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.values = new ConcurrentSkipListMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        this.lock = new ReentrantReadWriteLock();</b>
    -<b class="fc">&nbsp;        this.alpha = alpha;</b>
    -<b class="fc">&nbsp;        this.size = size;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.count = new AtomicLong(0);</b>
    -<b class="fc">&nbsp;        this.startTime = currentTimeInSeconds();</b>
    -<b class="fc">&nbsp;        this.lastScaleTick = new AtomicLong(clock.getTick());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        return (int) min(size, count.get());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        update(value, currentTimeInSeconds());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds an old value with a fixed timestamp to the reservoir.
    -&nbsp;     *
    -&nbsp;     * @param value     the value to be added
    -&nbsp;     * @param timestamp the epoch timestamp of {@code value} in seconds
    -&nbsp;     */
    -&nbsp;    public void update(long value, long timestamp) {
    -<b class="fc">&nbsp;        rescaleIfNeeded();</b>
    -<b class="fc">&nbsp;        lockForRegularUsage();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            final double itemWeight = weight(timestamp - startTime);</b>
    -<b class="fc">&nbsp;            final WeightedSample sample = new WeightedSample(value, itemWeight);</b>
    -<b class="fc">&nbsp;            final double priority = itemWeight / ThreadLocalRandom.current().nextDouble();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final long newCount = count.incrementAndGet();</b>
    -<b class="pc">&nbsp;            if (newCount &lt;= size || values.isEmpty()) {</b>
    -<b class="fc">&nbsp;                values.put(priority, sample);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                Double first = values.firstKey();</b>
    -<b class="pc">&nbsp;                if (first &lt; priority &amp;&amp; values.putIfAbsent(priority, sample) == null) {</b>
    -&nbsp;                    // ensure we always remove an item
    -<b class="pc">&nbsp;                    while (values.remove(first) == null) {</b>
    -<b class="nc">&nbsp;                        first = values.firstKey();</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            unlockForRegularUsage();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void rescaleIfNeeded() {
    -<b class="fc">&nbsp;        final long now = clock.getTick();</b>
    -<b class="fc">&nbsp;        final long lastScaleTickSnapshot = lastScaleTick.get();</b>
    -<b class="pc">&nbsp;        if (now - lastScaleTickSnapshot &gt;= RESCALE_THRESHOLD) {</b>
    -<b class="fc">&nbsp;            rescale(now, lastScaleTickSnapshot);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        rescaleIfNeeded();</b>
    -<b class="fc">&nbsp;        lockForRegularUsage();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return new WeightedSnapshot(values.values());</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            unlockForRegularUsage();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private long currentTimeInSeconds() {
    -<b class="fc">&nbsp;        return TimeUnit.MILLISECONDS.toSeconds(clock.getTime());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private double weight(long t) {
    -<b class="fc">&nbsp;        return exp(alpha * t);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* &quot;A common feature of the above techniques—indeed, the key technique that
    -&nbsp;     * allows us to track the decayed weights efficiently—is that they maintain
    -&nbsp;     * counts and other quantities based on g(ti ? L), and only scale by g(t ? L)
    -&nbsp;     * at query time. But while g(ti ?L)/g(t?L) is guaranteed to lie between zero
    -&nbsp;     * and one, the intermediate values of g(ti ? L) could become very large. For
    -&nbsp;     * polynomial functions, these values should not grow too large, and should be
    -&nbsp;     * effectively represented in practice by floating point values without loss of
    -&nbsp;     * precision. For exponential functions, these values could grow quite large as
    -&nbsp;     * new values of (ti ? L) become large, and potentially exceed the capacity of
    -&nbsp;     * common floating point types. However, since the values stored by the
    -&nbsp;     * algorithms are linear combinations of g values (scaled sums), they can be
    -&nbsp;     * rescaled relative to a new landmark. That is, by the analysis of exponential
    -&nbsp;     * decay in Section III-A, the choice of L does not affect the final result. We
    -&nbsp;     * can therefore multiply each value based on L by a factor of exp(??(L? ? L)),
    -&nbsp;     * and obtain the correct value as if we had instead computed relative to a new
    -&nbsp;     * landmark L? (and then use this new L? at query time). This can be done with
    -&nbsp;     * a linear pass over whatever data structure is being used.&quot;
    -&nbsp;     */
    -&nbsp;    private void rescale(long now, long lastTick) {
    -<b class="fc">&nbsp;        lockForRescale();</b>
    -&nbsp;        try {
    -<b class="pc">&nbsp;            if (lastScaleTick.compareAndSet(lastTick, now)) {</b>
    -<b class="fc">&nbsp;                final long oldStartTime = startTime;</b>
    -<b class="fc">&nbsp;                this.startTime = currentTimeInSeconds();</b>
    -<b class="fc">&nbsp;                final double scalingFactor = exp(-alpha * (startTime - oldStartTime));</b>
    -<b class="pc">&nbsp;                if (Double.compare(scalingFactor, 0) == 0) {</b>
    -<b class="fc">&nbsp;                    values.clear();</b>
    -&nbsp;                } else {
    -<b class="fc">&nbsp;                    final ArrayList&lt;Double&gt; keys = new ArrayList&lt;&gt;(values.keySet());</b>
    -<b class="pc">&nbsp;                    for (Double key : keys) {</b>
    -<b class="fc">&nbsp;                        final WeightedSample sample = values.remove(key);</b>
    -<b class="fc">&nbsp;                        final WeightedSample newSample = new WeightedSample(sample.value, sample.weight * scalingFactor);</b>
    -<b class="pc">&nbsp;                        if (Double.compare(newSample.weight, 0) == 0) {</b>
    -<b class="fc">&nbsp;                            continue;</b>
    -&nbsp;                        }
    -<b class="fc">&nbsp;                        values.put(key * scalingFactor, newSample);</b>
    -<b class="fc">&nbsp;                    }</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                // make sure the counter is in sync with the number of stored samples.
    -<b class="fc">&nbsp;                count.set(values.size());</b>
    -&nbsp;            }
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            unlockForRescale();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void unlockForRescale() {
    -<b class="fc">&nbsp;        lock.writeLock().unlock();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void lockForRescale() {
    -<b class="fc">&nbsp;        lock.writeLock().lock();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void lockForRegularUsage() {
    -<b class="fc">&nbsp;        lock.readLock().lock();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void unlockForRegularUsage() {
    -<b class="fc">&nbsp;        lock.readLock().unlock();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-c.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-c.html
    deleted file mode 100644
    index 89ec116f43..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-c.html
    +++ /dev/null
    @@ -1,125 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > FixedNameCsvFileProvider</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: FixedNameCsvFileProvider (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">FixedNameCsvFileProvider</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.File;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * This implementation of the {@link CsvFileProvider} will always return the same name
    -&nbsp; * for the same metric. This means the CSV file will grow indefinitely.
    -&nbsp; */
    -<b class="fc">&nbsp;public class FixedNameCsvFileProvider implements CsvFileProvider {</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public File getFile(File directory, String metricName) {
    -<b class="fc">&nbsp;        return new File(directory, sanitize(metricName) + &quot;.csv&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String metricName) {
    -&nbsp;        //Forward slash character is definitely illegal in both Windows and Linux
    -&nbsp;        //https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
    -<b class="fc">&nbsp;        return metricName.replaceFirst(&quot;^/&quot;, &quot;&quot;).replaceAll(&quot;/&quot;, &quot;.&quot;);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-d.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-d.html
    deleted file mode 100644
    index 1728a38aa7..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-d.html
    +++ /dev/null
    @@ -1,162 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Histogram</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Histogram (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Histogram</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A metric which calculates the distribution of a value.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://www.johndcook.com/standard_deviation.html&quot;&gt;Accurately computing running
    -&nbsp; * variance&lt;/a&gt;
    -&nbsp; */
    -&nbsp;public class Histogram implements Metric, Sampling, Counting {
    -&nbsp;    private final Reservoir reservoir;
    -&nbsp;    private final LongAdder count;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Histogram} with the given reservoir.
    -&nbsp;     *
    -&nbsp;     * @param reservoir the reservoir to create a histogram from
    -&nbsp;     */
    -<b class="fc">&nbsp;    public Histogram(Reservoir reservoir) {</b>
    -<b class="fc">&nbsp;        this.reservoir = reservoir;</b>
    -<b class="fc">&nbsp;        this.count = new LongAdder();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a recorded value.
    -&nbsp;     *
    -&nbsp;     * @param value the length of the value
    -&nbsp;     */
    -&nbsp;    public void update(int value) {
    -<b class="fc">&nbsp;        update((long) value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a recorded value.
    -&nbsp;     *
    -&nbsp;     * @param value the length of the value
    -&nbsp;     */
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        count.increment();</b>
    -<b class="fc">&nbsp;        reservoir.update(value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values recorded.
    -&nbsp;     *
    -&nbsp;     * @return the number of values recorded
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getCount() {
    -<b class="fc">&nbsp;        return count.sum();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        return reservoir.getSnapshot();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-e.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-e.html
    deleted file mode 100644
    index 5a9373b5e7..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-e.html
    +++ /dev/null
    @@ -1,390 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedExecutorService</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedExecutorService (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedExecutorService</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    38.9%
    -  </span>
    -  <span class="absValue">
    -    (7/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.7%
    -  </span>
    -  <span class="absValue">
    -    (42/67)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedExecutorService$InstrumentedCallable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedExecutorService$InstrumentedRunnable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;import java.util.concurrent.Callable;
    -&nbsp;import java.util.concurrent.ExecutionException;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;import java.util.concurrent.ForkJoinPool;
    -&nbsp;import java.util.concurrent.Future;
    -&nbsp;import java.util.concurrent.ThreadPoolExecutor;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.TimeoutException;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An {@link ExecutorService} that monitors the number of tasks submitted, running,
    -&nbsp; * completed and also keeps a {@link Timer} for the task duration.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    -&nbsp; * &quot;your-executor-service.submitted&quot;, &quot;your-executor-service.running&quot;, etc.
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedExecutorService implements ExecutorService {</b>
    -<b class="fc">&nbsp;    private static final AtomicLong NAME_COUNTER = new AtomicLong();</b>
    -&nbsp;
    -&nbsp;    private final ExecutorService delegate;
    -&nbsp;    private final Meter submitted;
    -&nbsp;    private final Counter running;
    -&nbsp;    private final Meter completed;
    -&nbsp;    private final Timer idle;
    -&nbsp;    private final Timer duration;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps an {@link ExecutorService} uses an auto-generated default name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ExecutorService} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     */
    -&nbsp;    public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(delegate, registry, &quot;instrumented-delegate-&quot; + NAME_COUNTER.incrementAndGet());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps an {@link ExecutorService} with an explicit name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ExecutorService} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     * @param name     name for this executor service.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry, String name) {</b>
    -<b class="fc">&nbsp;        this.delegate = delegate;</b>
    -<b class="fc">&nbsp;        this.submitted = registry.meter(MetricRegistry.name(name, &quot;submitted&quot;));</b>
    -<b class="fc">&nbsp;        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</b>
    -<b class="fc">&nbsp;        this.completed = registry.meter(MetricRegistry.name(name, &quot;completed&quot;));</b>
    -<b class="fc">&nbsp;        this.idle = registry.timer(MetricRegistry.name(name, &quot;idle&quot;));</b>
    -<b class="fc">&nbsp;        this.duration = registry.timer(MetricRegistry.name(name, &quot;duration&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (delegate instanceof ThreadPoolExecutor) {</b>
    -<b class="fc">&nbsp;            ThreadPoolExecutor executor = (ThreadPoolExecutor) delegate;</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;pool.size&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getPoolSize);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;pool.core&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getCorePoolSize);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;pool.max&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getMaximumPoolSize);</b>
    -<b class="fc">&nbsp;            final BlockingQueue&lt;Runnable&gt; queue = executor.getQueue();</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.active&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getActiveCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.completed&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getCompletedTaskCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.queued&quot;),</b>
    -<b class="fc">&nbsp;                    queue::size);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.capacity&quot;),</b>
    -<b class="fc">&nbsp;                    queue::remainingCapacity);</b>
    -<b class="fc">&nbsp;        } else if (delegate instanceof ForkJoinPool) {</b>
    -<b class="fc">&nbsp;            ForkJoinPool forkJoinPool = (ForkJoinPool) delegate;</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.stolen&quot;),</b>
    -<b class="fc">&nbsp;                    forkJoinPool::getStealCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.queued&quot;),</b>
    -<b class="fc">&nbsp;                    forkJoinPool::getQueuedTaskCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;threads.active&quot;),</b>
    -<b class="fc">&nbsp;                    forkJoinPool::getActiveThreadCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;threads.running&quot;),</b>
    -<b class="fc">&nbsp;                    forkJoinPool::getRunningThreadCount);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void execute(Runnable runnable) {
    -<b class="nc">&nbsp;        submitted.mark();</b>
    -<b class="nc">&nbsp;        delegate.execute(new InstrumentedRunnable(runnable));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Future&lt;?&gt; submit(Runnable runnable) {
    -<b class="fc">&nbsp;        submitted.mark();</b>
    -<b class="fc">&nbsp;        return delegate.submit(new InstrumentedRunnable(runnable));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Runnable runnable, T result) {
    -<b class="nc">&nbsp;        submitted.mark();</b>
    -<b class="nc">&nbsp;        return delegate.submit(new InstrumentedRunnable(runnable), result);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Callable&lt;T&gt; task) {
    -<b class="fc">&nbsp;        submitted.mark();</b>
    -<b class="fc">&nbsp;        return delegate.submit(new InstrumentedCallable&lt;&gt;(task));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAll(instrumented);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAll(instrumented, timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws ExecutionException, InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAny(instrumented);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws ExecutionException, InterruptedException, TimeoutException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAny(instrumented, timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T&gt; Collection&lt;? extends Callable&lt;T&gt;&gt; instrument(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) {
    -<b class="nc">&nbsp;        final List&lt;InstrumentedCallable&lt;T&gt;&gt; instrumented = new ArrayList&lt;&gt;(tasks.size());</b>
    -<b class="nc">&nbsp;        for (Callable&lt;T&gt; task : tasks) {</b>
    -<b class="nc">&nbsp;            instrumented.add(new InstrumentedCallable&lt;&gt;(task));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return instrumented;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void shutdown() {
    -<b class="fc">&nbsp;        delegate.shutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;Runnable&gt; shutdownNow() {
    -<b class="nc">&nbsp;        return delegate.shutdownNow();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isShutdown() {
    -<b class="nc">&nbsp;        return delegate.isShutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isTerminated() {
    -<b class="nc">&nbsp;        return delegate.isTerminated();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean awaitTermination(long l, TimeUnit timeUnit) throws InterruptedException {
    -<b class="fc">&nbsp;        return delegate.awaitTermination(l, timeUnit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedRunnable implements Runnable {
    -&nbsp;        private final Runnable task;
    -&nbsp;        private final Timer.Context idleContext;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedRunnable(Runnable task) {</b>
    -<b class="fc">&nbsp;            this.task = task;</b>
    -<b class="fc">&nbsp;            this.idleContext = idle.time();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void run() {
    -<b class="fc">&nbsp;            idleContext.stop();</b>
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            try (Timer.Context durationContext = duration.time()) {</b>
    -<b class="fc">&nbsp;                task.run();</b>
    -<b class="fc">&nbsp;            } finally {</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedCallable&lt;T&gt; implements Callable&lt;T&gt; {
    -&nbsp;        private final Callable&lt;T&gt; callable;
    -&nbsp;        private final Timer.Context idleContext;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedCallable(Callable&lt;T&gt; callable) {</b>
    -<b class="fc">&nbsp;            this.callable = callable;</b>
    -<b class="fc">&nbsp;            this.idleContext = idle.time();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public T call() throws Exception {
    -<b class="fc">&nbsp;            idleContext.stop();</b>
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            try (Timer.Context context = duration.time()) {</b>
    -<b class="fc">&nbsp;                return callable.call();</b>
    -<b class="fc">&nbsp;            } finally {</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-f.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-f.html
    deleted file mode 100644
    index 3d6e3562ee..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1/sources/source-f.html
    +++ /dev/null
    @@ -1,465 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedScheduledExecutorService</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedScheduledExecutorService (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedScheduledExecutorService</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    51%
    -  </span>
    -  <span class="absValue">
    -    (26/51)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedScheduledExecutorService$InstrumentedCallable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedScheduledExecutorService$InstrumentedPeriodicRunnable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedScheduledExecutorService$InstrumentedRunnable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.Callable;
    -&nbsp;import java.util.concurrent.ExecutionException;
    -&nbsp;import java.util.concurrent.Future;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.ScheduledFuture;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.TimeoutException;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An {@link ScheduledExecutorService} that monitors the number of tasks submitted, running,
    -&nbsp; * completed and also keeps a {@link Timer} for the task duration.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    -&nbsp; * &quot;your-executor-service.submitted&quot;, &quot;your-executor-service.running&quot;, etc.
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedScheduledExecutorService implements ScheduledExecutorService {</b>
    -<b class="fc">&nbsp;    private static final AtomicLong NAME_COUNTER = new AtomicLong();</b>
    -&nbsp;
    -&nbsp;    private final ScheduledExecutorService delegate;
    -&nbsp;
    -&nbsp;    private final Meter submitted;
    -&nbsp;    private final Counter running;
    -&nbsp;    private final Meter completed;
    -&nbsp;    private final Timer duration;
    -&nbsp;
    -&nbsp;    private final Meter scheduledOnce;
    -&nbsp;    private final Meter scheduledRepetitively;
    -&nbsp;    private final Counter scheduledOverrun;
    -&nbsp;    private final Histogram percentOfPeriod;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps an {@link ScheduledExecutorService} uses an auto-generated default name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ScheduledExecutorService} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     */
    -&nbsp;    public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(delegate, registry, &quot;instrumented-scheduled-executor-service-&quot; + NAME_COUNTER.incrementAndGet());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps an {@link ScheduledExecutorService} with an explicit name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ScheduledExecutorService} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     * @param name     name for this executor service.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry, String name) {</b>
    -<b class="fc">&nbsp;        this.delegate = delegate;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.submitted = registry.meter(MetricRegistry.name(name, &quot;submitted&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</b>
    -<b class="fc">&nbsp;        this.completed = registry.meter(MetricRegistry.name(name, &quot;completed&quot;));</b>
    -<b class="fc">&nbsp;        this.duration = registry.timer(MetricRegistry.name(name, &quot;duration&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.scheduledOnce = registry.meter(MetricRegistry.name(name, &quot;scheduled.once&quot;));</b>
    -<b class="fc">&nbsp;        this.scheduledRepetitively = registry.meter(MetricRegistry.name(name, &quot;scheduled.repetitively&quot;));</b>
    -<b class="fc">&nbsp;        this.scheduledOverrun = registry.counter(MetricRegistry.name(name, &quot;scheduled.overrun&quot;));</b>
    -<b class="fc">&nbsp;        this.percentOfPeriod = registry.histogram(MetricRegistry.name(name, &quot;scheduled.percent-of-period&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public ScheduledFuture&lt;?&gt; schedule(Runnable command, long delay, TimeUnit unit) {
    -<b class="fc">&nbsp;        scheduledOnce.mark();</b>
    -<b class="fc">&nbsp;        return delegate.schedule(new InstrumentedRunnable(command), delay, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;V&gt; ScheduledFuture&lt;V&gt; schedule(Callable&lt;V&gt; callable, long delay, TimeUnit unit) {
    -<b class="fc">&nbsp;        scheduledOnce.mark();</b>
    -<b class="fc">&nbsp;        return delegate.schedule(new InstrumentedCallable&lt;&gt;(callable), delay, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public ScheduledFuture&lt;?&gt; scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) {
    -<b class="fc">&nbsp;        scheduledRepetitively.mark();</b>
    -<b class="fc">&nbsp;        return delegate.scheduleAtFixedRate(new InstrumentedPeriodicRunnable(command, period, unit), initialDelay, period, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public ScheduledFuture&lt;?&gt; scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) {
    -<b class="fc">&nbsp;        scheduledRepetitively.mark();</b>
    -<b class="fc">&nbsp;        return delegate.scheduleWithFixedDelay(new InstrumentedRunnable(command), initialDelay, delay, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void shutdown() {
    -<b class="fc">&nbsp;        delegate.shutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public List&lt;Runnable&gt; shutdownNow() {
    -<b class="nc">&nbsp;        return delegate.shutdownNow();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean isShutdown() {
    -<b class="nc">&nbsp;        return delegate.isShutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean isTerminated() {
    -<b class="nc">&nbsp;        return delegate.isTerminated();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {
    -<b class="fc">&nbsp;        return delegate.awaitTermination(timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Callable&lt;T&gt; task) {
    -<b class="fc">&nbsp;        submitted.mark();</b>
    -<b class="fc">&nbsp;        return delegate.submit(new InstrumentedCallable&lt;&gt;(task));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Runnable task, T result) {
    -<b class="nc">&nbsp;        submitted.mark();</b>
    -<b class="nc">&nbsp;        return delegate.submit(new InstrumentedRunnable(task), result);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Future&lt;?&gt; submit(Runnable task) {
    -<b class="fc">&nbsp;        submitted.mark();</b>
    -<b class="fc">&nbsp;        return delegate.submit(new InstrumentedRunnable(task));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAll(instrumented);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAll(instrumented, timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException, ExecutionException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAny(instrumented);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAny(instrumented, timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T&gt; Collection&lt;? extends Callable&lt;T&gt;&gt; instrument(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) {
    -<b class="nc">&nbsp;        final List&lt;InstrumentedCallable&lt;T&gt;&gt; instrumented = new ArrayList&lt;&gt;(tasks.size());</b>
    -<b class="nc">&nbsp;        for (Callable&lt;T&gt; task : tasks) {</b>
    -<b class="nc">&nbsp;            instrumented.add(new InstrumentedCallable&lt;&gt;(task));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return instrumented;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void execute(Runnable command) {
    -<b class="nc">&nbsp;        submitted.mark();</b>
    -<b class="nc">&nbsp;        delegate.execute(new InstrumentedRunnable(command));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedRunnable implements Runnable {
    -&nbsp;        private final Runnable command;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedRunnable(Runnable command) {</b>
    -<b class="fc">&nbsp;            this.command = command;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void run() {
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            final Timer.Context context = duration.time();</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                command.run();</b>
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedPeriodicRunnable implements Runnable {
    -&nbsp;        private final Runnable command;
    -&nbsp;        private final long periodInNanos;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedPeriodicRunnable(Runnable command, long period, TimeUnit unit) {</b>
    -<b class="fc">&nbsp;            this.command = command;</b>
    -<b class="fc">&nbsp;            this.periodInNanos = unit.toNanos(period);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void run() {
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            final Timer.Context context = duration.time();</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                command.run();</b>
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                final long elapsed = context.stop();</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="fc">&nbsp;                if (elapsed &gt; periodInNanos) {</b>
    -<b class="fc">&nbsp;                    scheduledOverrun.inc();</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                percentOfPeriod.update((100L * elapsed) / periodInNanos);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedCallable&lt;T&gt; implements Callable&lt;T&gt; {
    -&nbsp;        private final Callable&lt;T&gt; task;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedCallable(Callable&lt;T&gt; task) {</b>
    -<b class="fc">&nbsp;            this.task = task;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public T call() throws Exception {
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            final Timer.Context context = duration.time();</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                return task.call();</b>
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index.html
    deleted file mode 100644
    index ed1fe58122..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index ab08c81356..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 47fef9f7de..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index fad9e40b13..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 86e2625905..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 877a26dde9..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 1a48079dbb..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 9d02c03676..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 6082f6e9e3..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 67c9163723..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/sources/source-1.html
    deleted file mode 100644
    index b6d231a93d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-10/sources/source-1.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedTimingCollector</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedTimingCollector</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.jdbi.strategies.SmartNameStrategy;
    -&nbsp;import com.codahale.metrics.jdbi.strategies.StatementNameStrategy;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;import org.skife.jdbi.v2.TimingCollector;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link TimingCollector} implementation for JDBI which uses the SQL objects&#39; class names and
    -&nbsp; * method names for millisecond-precision timers.
    -&nbsp; */
    -&nbsp;public class InstrumentedTimingCollector implements TimingCollector {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final StatementNameStrategy statementNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry,
    -<b class="fc">&nbsp;                                       StatementNameStrategy statementNameStrategy) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void collect(long elapsedTime, StatementContext ctx) {
    -<b class="fc">&nbsp;        final Timer timer = getTimer(ctx);</b>
    -<b class="fc">&nbsp;        timer.update(elapsedTime, TimeUnit.NANOSECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer getTimer(StatementContext ctx) {
    -<b class="fc">&nbsp;        return registry.timer(statementNameStrategy.getStatementName(ctx));</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index.html
    deleted file mode 100644
    index 77f99d4959..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 92cd669ffb..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 57e82d7708..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 9eafcea9a1..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index db87e4f525..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 0caa3fdfde..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 74df313628..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 26789bbed3..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 67d35b4e8c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 4b8dea0b1a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-1.html
    deleted file mode 100644
    index b628f329d9..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-1.html
    +++ /dev/null
    @@ -1,112 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > BasicSqlNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">BasicSqlNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public BasicSqlNameStrategy() {
    -<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.SQL_OBJECT);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-2.html
    deleted file mode 100644
    index c8e58c5b5d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-2.html
    +++ /dev/null
    @@ -1,119 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ContextNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ContextNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ContextNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_GROUP} and {@link
    -&nbsp; * NameStrategies#STATEMENT_NAME} for group based display.
    -&nbsp; */
    -&nbsp;public class ContextNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public ContextNameStrategy() {
    -<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.CONTEXT_NAME,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-3.html
    deleted file mode 100644
    index 8b0286562e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-3.html
    +++ /dev/null
    @@ -1,135 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DelegatingStatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DelegatingStatementNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
    -<b class="fc">&nbsp;    private final List&lt;StatementNameStrategy&gt; strategies = new ArrayList&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;    protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {</b>
    -<b class="fc">&nbsp;        registerStrategies(strategies);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void registerStrategies(StatementNameStrategy... strategies) {
    -<b class="fc">&nbsp;        this.strategies.addAll(Arrays.asList(strategies));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;        for (StatementNameStrategy strategy : strategies) {</b>
    -<b class="fc">&nbsp;            final String statementName = strategy.getStatementName(statementContext);</b>
    -<b class="fc">&nbsp;            if (statementName != null) {</b>
    -<b class="fc">&nbsp;                return statementName;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return NameStrategies.UNKNOWN_SQL;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-4.html
    deleted file mode 100644
    index 9c57ea1ee7..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-4.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NaiveNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NaiveNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Very simple strategy, can be used with any JDBI loader to build basic statistics.
    -&nbsp; */
    -&nbsp;public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public NaiveNameStrategy() {
    -<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-5.html
    deleted file mode 100644
    index 237711f73f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-5.html
    +++ /dev/null
    @@ -1,422 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NameStrategies</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NameStrategies (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NameStrategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">NameStrategies$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$CheckEmptyStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$CheckRawStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$ContextClassStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (12/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$ContextNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$NaiveNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$SqlObjectStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.ClasspathStatementLocator;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.regex.Matcher;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="fc">&nbsp;public final class NameStrategies {</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CHECK_EMPTY = new CheckEmptyStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CHECK_RAW = new CheckRawStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy SQL_OBJECT = new SqlObjectStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy NAIVE_NAME = new NaiveNameStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CONTEXT_CLASS = new ContextClassStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CONTEXT_NAME = new ContextNameStrategy();</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * An empty SQL statement.
    -&nbsp;     */
    -&nbsp;    private static final String EMPTY_SQL = &quot;sql.empty&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Unknown SQL.
    -&nbsp;     */
    -&nbsp;    static final String UNKNOWN_SQL = &quot;sql.unknown&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric class.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_CLASS = &quot;_metric_class&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric group.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_GROUP = &quot;_metric_group&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric type.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_TYPE = &quot;_metric_type&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric name.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_NAME = &quot;_metric_name&quot;;
    -&nbsp;
    -&nbsp;    private static String forRawSql(String rawSql) {
    -<b class="fc">&nbsp;        return name(&quot;sql&quot;, &quot;raw&quot;, rawSql);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class CheckEmptyStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private CheckEmptyStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (rawSql == null || rawSql.length() == 0) {</b>
    -<b class="fc">&nbsp;                return EMPTY_SQL;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class CheckRawStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private CheckRawStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (ClasspathStatementLocator.looksLikeSql(rawSql)) {</b>
    -<b class="fc">&nbsp;                return forRawSql(rawSql);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NaiveNameStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private NaiveNameStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -&nbsp;            // Is it using the template loader?
    -<b class="fc">&nbsp;            final int colon = rawSql.indexOf(&#39;:&#39;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (colon == -1) {</b>
    -&nbsp;                // No package? Just return the name, JDBI figured out somehow on how to find the raw sql for this statement.
    -<b class="fc">&nbsp;                return forRawSql(rawSql);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            final String group = rawSql.substring(0, colon);</b>
    -<b class="nc">&nbsp;            final String name = rawSql.substring(colon + 1);</b>
    -<b class="nc">&nbsp;            return name(group, name);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class SqlObjectStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private SqlObjectStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Class&lt;?&gt; clazz = statementContext.getSqlObjectType();</b>
    -<b class="fc">&nbsp;            final Method method = statementContext.getSqlObjectMethod();</b>
    -<b class="fc">&nbsp;            if (clazz != null) {</b>
    -<b class="fc">&nbsp;                final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final String group = clazz.getPackage().getName();</b>
    -<b class="fc">&nbsp;                final String name = clazz.getSimpleName();</b>
    -<b class="fc">&nbsp;                final String type = method == null ? rawSql : method.getName();</b>
    -<b class="fc">&nbsp;                return name(group, name, type);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class ContextClassStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private ContextClassStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Object classObj = statementContext.getAttribute(STATEMENT_CLASS);</b>
    -<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (classObj == null || nameObj == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String className = (String) classObj;</b>
    -<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    -<b class="fc">&nbsp;            if (dotPos == -1) {</b>
    -<b class="nc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            return name(className.substring(0, dotPos),</b>
    -<b class="fc">&nbsp;                    className.substring(dotPos + 1),</b>
    -&nbsp;                    statementName);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class ContextNameStrategy implements StatementNameStrategy {</b>
    -&nbsp;        /**
    -&nbsp;         * File pattern to shorten the group name.
    -&nbsp;         */
    -<b class="fc">&nbsp;        private static final Pattern SHORT_PATTERN = Pattern.compile(&quot;^(.*?)/(.*?)(-sql)?\\.st(g)?$&quot;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private ContextNameStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Object groupObj = statementContext.getAttribute(STATEMENT_GROUP);</b>
    -<b class="fc">&nbsp;            final Object typeObj = statementContext.getAttribute(STATEMENT_TYPE);</b>
    -<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (groupObj == null || nameObj == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String group = (String) groupObj;</b>
    -<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (typeObj == null) {</b>
    -<b class="fc">&nbsp;                final Matcher matcher = SHORT_PATTERN.matcher(group);</b>
    -<b class="fc">&nbsp;                if (matcher.matches()) {</b>
    -<b class="fc">&nbsp;                    final String groupName = matcher.group(1);</b>
    -<b class="fc">&nbsp;                    final String typeName = matcher.group(2);</b>
    -<b class="fc">&nbsp;                    return name(groupName, typeName, statementName);</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                return name(group, statementName, &quot;&quot;);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                final String type = (String) typeObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                return name(group, type, statementName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private NameStrategies() {
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-6.html
    deleted file mode 100644
    index 85fad429af..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-6.html
    +++ /dev/null
    @@ -1,239 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ShortNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ShortNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ShortNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">ShortNameStrategy$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ShortNameStrategy$ShortContextClassStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (13/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ShortNameStrategy$ShortSqlObjectStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Assembles all JDBI stats under a common prefix (passed in at constructor time). Stats are grouped
    -&nbsp; * by class name and method; a shortening strategy is applied to make the JMX output nicer.
    -&nbsp; */
    -<b class="fc">&nbsp;public final class ShortNameStrategy extends DelegatingStatementNameStrategy {</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;String, String&gt; shortClassNames = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final String baseJmxName;
    -&nbsp;
    -<b class="fc">&nbsp;    public ShortNameStrategy(String baseJmxName) {</b>
    -<b class="fc">&nbsp;        this.baseJmxName = baseJmxName;</b>
    -&nbsp;
    -&nbsp;        // Java does not allow super (..., new ShortContextClassStrategy(), new ShortSqlObjectStrategy(), ...);
    -&nbsp;        // ==&gt; No enclosing instance of type &lt;xxx&gt; is available due to some intermediate constructor invocation. Lame.
    -<b class="fc">&nbsp;        registerStrategies(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                new ShortContextClassStrategy(),
    -&nbsp;                new ShortSqlObjectStrategy(),
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private final class ShortContextClassStrategy implements StatementNameStrategy {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Object classObj = statementContext.getAttribute(NameStrategies.STATEMENT_CLASS);</b>
    -<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(NameStrategies.STATEMENT_NAME);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (classObj == null || nameObj == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String className = (String) classObj;</b>
    -<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    -<b class="fc">&nbsp;            if (dotPos == -1) {</b>
    -<b class="nc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String shortName = className.substring(dotPos + 1);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final String oldClassName = shortClassNames.putIfAbsent(shortName, className);</b>
    -<b class="fc">&nbsp;            if (oldClassName == null || oldClassName.equals(className)) {</b>
    -<b class="fc">&nbsp;                return name(baseJmxName, shortName, statementName);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                return name(baseJmxName, className, statementName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private final class ShortSqlObjectStrategy implements StatementNameStrategy {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Class&lt;?&gt; clazz = statementContext.getSqlObjectType();</b>
    -<b class="fc">&nbsp;            final Method method = statementContext.getSqlObjectMethod();</b>
    -<b class="fc">&nbsp;            if (clazz != null &amp;&amp; method != null) {</b>
    -<b class="fc">&nbsp;                final String className = clazz.getName();</b>
    -<b class="fc">&nbsp;                final String statementName = method.getName();</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    -<b class="fc">&nbsp;                if (dotPos == -1) {</b>
    -<b class="nc">&nbsp;                    return null;</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                final String shortName = className.substring(dotPos + 1);</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final String oldClassName = shortClassNames.putIfAbsent(shortName, className);</b>
    -<b class="fc">&nbsp;                if (oldClassName == null || oldClassName.equals(className)) {</b>
    -<b class="fc">&nbsp;                    return name(baseJmxName, shortName, statementName);</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    return name(baseJmxName, className, statementName);</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-7.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-7.html
    deleted file mode 100644
    index 6b9c298832..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-7.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SmartNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SmartNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_CLASS} and {@link
    -&nbsp; * NameStrategies#STATEMENT_NAME} for class based display or {@link NameStrategies#STATEMENT_GROUP}
    -&nbsp; * and {@link NameStrategies#STATEMENT_NAME} for group based display.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Also knows how to deal with SQL Object statements.
    -&nbsp; */
    -&nbsp;public class SmartNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public SmartNameStrategy() {
    -<b class="fc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.CONTEXT_CLASS,
    -&nbsp;                NameStrategies.CONTEXT_NAME,
    -&nbsp;                NameStrategies.SQL_OBJECT,
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-8.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-8.html
    deleted file mode 100644
    index b651149286..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-11/sources/source-8.html
    +++ /dev/null
    @@ -1,78 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > StatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">StatementNameStrategy</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Interface for strategies to statement contexts to metric names.
    -&nbsp; */
    -&nbsp;public interface StatementNameStrategy {
    -&nbsp;    String getStatementName(StatementContext statementContext);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index.html
    deleted file mode 100644
    index 72b19a2514..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 6bc6da6dc6..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index d2ab6a4730..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 4a0b687720..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 8d04c8e03b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_LINE.html
    deleted file mode 100644
    index a5d26b42dc..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 58eb93e004..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index c6d204c984..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 85534ae299..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 7f9e1de80d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/sources/source-1.html
    deleted file mode 100644
    index 4106127f48..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/sources/source-1.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedSqlLogger</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedSqlLogger (com.codahale.metrics.jdbi3)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedSqlLogger</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
    -&nbsp;import org.jdbi.v3.core.statement.SqlLogger;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;import java.sql.SQLException;
    -&nbsp;import java.time.temporal.ChronoUnit;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link SqlLogger} implementation for JDBI which uses the SQL objects&#39; class names and
    -&nbsp; * method names for nanosecond-precision timers.
    -&nbsp; */
    -&nbsp;public class InstrumentedSqlLogger implements SqlLogger {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final StatementNameStrategy statementNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedSqlLogger(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedSqlLogger(MetricRegistry registry,
    -<b class="fc">&nbsp;                                 StatementNameStrategy statementNameStrategy) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void logAfterExecution(StatementContext context) {
    -<b class="fc">&nbsp;        log(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void logException(StatementContext context, SQLException ex) {
    -<b class="fc">&nbsp;        log(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void log(StatementContext context) {
    -<b class="fc">&nbsp;        String statementName = statementNameStrategy.getStatementName(context);</b>
    -<b class="fc">&nbsp;        if (statementName != null) {</b>
    -<b class="fc">&nbsp;            final long elapsed = context.getElapsedTime(ChronoUnit.NANOS);</b>
    -<b class="fc">&nbsp;            registry.timer(statementName).update(elapsed, TimeUnit.NANOSECONDS);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/sources/source-2.html
    deleted file mode 100644
    index 1b8420c8ec..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-12/sources/source-2.html
    +++ /dev/null
    @@ -1,145 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedTimingCollector</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi3)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedTimingCollector</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
    -&nbsp;import org.jdbi.v3.core.statement.SqlLogger;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;import org.jdbi.v3.core.statement.TimingCollector;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link TimingCollector} implementation for JDBI which uses the SQL objects&#39; class names and
    -&nbsp; * method names for millisecond-precision timers.
    -&nbsp; *
    -&nbsp; * @deprecated Use {@link InstrumentedSqlLogger} and {@link org.jdbi.v3.core.Jdbi#setSqlLogger(SqlLogger)} instead.
    -&nbsp; */
    -&nbsp;@Deprecated
    -&nbsp;public class InstrumentedTimingCollector implements TimingCollector {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final StatementNameStrategy statementNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry,
    -<b class="fc">&nbsp;                                       StatementNameStrategy statementNameStrategy) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void collect(long elapsedTime, StatementContext ctx) {
    -<b class="fc">&nbsp;        String statementName = statementNameStrategy.getStatementName(ctx);</b>
    -<b class="fc">&nbsp;        if (statementName != null) {</b>
    -<b class="fc">&nbsp;            registry.timer(statementName).update(elapsedTime, TimeUnit.NANOSECONDS);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index.html
    deleted file mode 100644
    index e2f2556be1..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index dbc3dd2546..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index ed3be724a7..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 93415ab815..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index e0b3466b0f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_LINE.html
    deleted file mode 100644
    index dfa473b1fa..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 99b938fc4d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index dd8f4c8cb9..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 0340b765d4..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 59c4d38b28..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-1.html
    deleted file mode 100644
    index 8089c2d98b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-1.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > BasicSqlNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">BasicSqlNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Collects metrics by respective SQLObject methods.
    -&nbsp; */
    -&nbsp;public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;
    -&nbsp;    public BasicSqlNameStrategy() {
    -<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    -&nbsp;                DefaultNameStrategy.SQL_OBJECT);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-2.html
    deleted file mode 100644
    index 4c5f0e43de..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-2.html
    +++ /dev/null
    @@ -1,246 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DefaultNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DefaultNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DefaultNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.jdbi.v3.core.extension.ExtensionMethod;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Default strategies which build a basis of more complex strategies
    -&nbsp; */
    -<b class="fc">&nbsp;public enum DefaultNameStrategy implements StatementNameStrategy {</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * If no SQL in the context, returns `sql.empty`, otherwise falls through
    -&nbsp;     */
    -<b class="fc">&nbsp;    CHECK_EMPTY {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -<b class="fc">&nbsp;            return rawSql == null || rawSql.isEmpty() ? &quot;sql.empty&quot; : null;</b>
    -&nbsp;        }
    -&nbsp;    },
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * If there is an SQL object attached to the context, returns the name package,
    -&nbsp;     * the class and the method on which SQL is declared. If not SQL object is attached,
    -&nbsp;     * falls through
    -&nbsp;     */
    -<b class="fc">&nbsp;    SQL_OBJECT {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            ExtensionMethod extensionMethod = statementContext.getExtensionMethod();</b>
    -<b class="fc">&nbsp;            if (extensionMethod != null) {</b>
    -<b class="fc">&nbsp;                return MetricRegistry.name(extensionMethod.getType(), extensionMethod.getMethod().getName());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    },
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a raw SQL in the context (even if it&#39;s not exist)
    -&nbsp;     */
    -<b class="fc">&nbsp;    NAIVE_NAME {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            return statementContext.getRawSql();</b>
    -&nbsp;        }
    -&nbsp;    },
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the `sql.raw` constant
    -&nbsp;     */
    -<b class="fc">&nbsp;    CONSTANT_SQL_RAW {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            return &quot;sql.raw&quot;;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-3.html
    deleted file mode 100644
    index db36b6c22f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-3.html
    +++ /dev/null
    @@ -1,136 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DelegatingStatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DelegatingStatementNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Unknown SQL.
    -&nbsp;     */
    -&nbsp;    private static final String UNKNOWN_SQL = &quot;sql.unknown&quot;;
    -&nbsp;
    -&nbsp;    private final List&lt;StatementNameStrategy&gt; strategies;
    -&nbsp;
    -<b class="fc">&nbsp;    protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {</b>
    -<b class="fc">&nbsp;        this.strategies = Arrays.asList(strategies);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;        for (StatementNameStrategy strategy : strategies) {</b>
    -<b class="fc">&nbsp;            final String statementName = strategy.getStatementName(statementContext);</b>
    -<b class="fc">&nbsp;            if (statementName != null) {</b>
    -<b class="fc">&nbsp;                return statementName;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return UNKNOWN_SQL;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-4.html
    deleted file mode 100644
    index 047b6e3244..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-4.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NaiveNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NaiveNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Very simple strategy, can be used with any JDBI loader to build basic statistics.
    -&nbsp; */
    -&nbsp;public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;
    -&nbsp;    public NaiveNameStrategy() {
    -<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    -&nbsp;              DefaultNameStrategy.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-5.html
    deleted file mode 100644
    index 3149f33f9b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-5.html
    +++ /dev/null
    @@ -1,117 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SmartNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SmartNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Uses a {@link BasicSqlNameStrategy} and fallbacks to {@link DefaultNameStrategy#CONSTANT_SQL_RAW}
    -&nbsp; */
    -&nbsp;public class SmartNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;
    -&nbsp;    public SmartNameStrategy() {
    -<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    -&nbsp;                DefaultNameStrategy.SQL_OBJECT,
    -&nbsp;                DefaultNameStrategy.CONSTANT_SQL_RAW);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-6.html
    deleted file mode 100644
    index b4a136b344..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-6.html
    +++ /dev/null
    @@ -1,151 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > TimedAnnotationNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: TimedAnnotationNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">TimedAnnotationNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import org.jdbi.v3.core.extension.ExtensionMethod;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Takes into account the {@link Timed} annotation on extension methods
    -&nbsp; */
    -<b class="fc">&nbsp;public class TimedAnnotationNameStrategy implements StatementNameStrategy {</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;        final ExtensionMethod extensionMethod = statementContext.getExtensionMethod();</b>
    -<b class="fc">&nbsp;        if (extensionMethod == null) {</b>
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Class&lt;?&gt; clazz = extensionMethod.getType();</b>
    -<b class="fc">&nbsp;        final Timed classTimed = clazz.getAnnotation(Timed.class);</b>
    -<b class="fc">&nbsp;        final Method method = extensionMethod.getMethod();</b>
    -<b class="fc">&nbsp;        final Timed methodTimed = method.getAnnotation(Timed.class);</b>
    -&nbsp;
    -&nbsp;        // If the method is timed, figure out the name
    -<b class="fc">&nbsp;        if (methodTimed != null) {</b>
    -<b class="fc">&nbsp;            String methodName = methodTimed.name().isEmpty() ? method.getName() : methodTimed.name();</b>
    -<b class="fc">&nbsp;            if (methodTimed.absolute()) {</b>
    -<b class="fc">&nbsp;                return methodName;</b>
    -&nbsp;            } else {
    -&nbsp;                // We need to check if the class has a custom timer name
    -<b class="fc">&nbsp;                return classTimed == null || classTimed.name().isEmpty() ?</b>
    -<b class="fc">&nbsp;                        MetricRegistry.name(clazz, methodName) :</b>
    -<b class="fc">&nbsp;                        MetricRegistry.name(classTimed.name(), methodName);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        } else if (classTimed != null) {</b>
    -&nbsp;            // Maybe the class is timed?
    -<b class="fc">&nbsp;            return classTimed.name().isEmpty() ? MetricRegistry.name(clazz, method.getName()) :</b>
    -<b class="nc">&nbsp;                    MetricRegistry.name(classTimed.name(), method.getName());</b>
    -&nbsp;        } else {
    -&nbsp;            // No timers neither on the method or the class
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-7.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-7.html
    deleted file mode 100644
    index e42c4d80e9..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-13/sources/source-7.html
    +++ /dev/null
    @@ -1,89 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > StatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">StatementNameStrategy$MockitoMock$4ynm8yDG</td>
    -  </tr>
    -  <tr>
    -    <td class="name">StatementNameStrategy$MockitoMock$4ynm8yDG$auxiliary$G6TUrXev</td>
    -  </tr>
    -  <tr>
    -    <td class="name">StatementNameStrategy$MockitoMock$4ynm8yDG$auxiliary$xgsHqId4</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Interface for strategies to statement contexts to metric names.
    -&nbsp; */
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface StatementNameStrategy {
    -&nbsp;
    -&nbsp;    String getStatementName(StatementContext statementContext);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index.html
    deleted file mode 100644
    index 82cab34be2..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 6e72df673d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index e1aacc2f5a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 2edd7b6f9a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 6780e74a17..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_LINE.html
    deleted file mode 100644
    index a0a786b566..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 7d4443341b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index b22b1f6ee1..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 44a81ccc05..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 14c281f22f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/sources/source-1.html
    deleted file mode 100644
    index 39acbdb59f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/sources/source-1.html
    +++ /dev/null
    @@ -1,831 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey2</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey2)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.1%
    -  </span>
    -  <span class="absValue">
    -    (82/89)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.2%
    -  </span>
    -  <span class="absValue">
    -    (16/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (28/28)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey2;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    -&nbsp;import com.codahale.metrics.annotation.Metered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    -&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    -&nbsp;import org.glassfish.jersey.server.model.Resource;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    -&nbsp;
    -&nbsp;import javax.ws.rs.core.Configuration;
    -&nbsp;import javax.ws.rs.ext.Provider;
    -&nbsp;import java.lang.annotation.Annotation;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An application event listener that listens for Jersey application initialization to
    -&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    -&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    -&nbsp; * request events indicating that the method is about to be invoked, or just got done
    -&nbsp; * being invoked.
    -&nbsp; */
    -&nbsp;@Provider
    -&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    -&nbsp;    private static final String TOTAL = &quot;total&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metrics;
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Construct an application event listener using the given metrics registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    -&nbsp;     *
    -&nbsp;     * @param metrics a {@link MetricRegistry}
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    -<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters) {
    -<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters,
    -<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.metrics = metrics;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metric for a method annotated with the
    -&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    -&nbsp;     * and a cause for which the meter should be updated.
    -&nbsp;     */
    -&nbsp;    private static class ExceptionMeterMetric {
    -&nbsp;        public final Meter meter;
    -&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    -&nbsp;
    -&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    -&nbsp;                                    final ResourceMethod method,
    -<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    -<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    -<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    -<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    -<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metrics for a method annotated with the
    -&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    -&nbsp;     * different response codes
    -&nbsp;     */
    -&nbsp;    private static class ResponseMeterMetric {
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;        private final List&lt;Meter&gt; meters;
    -&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;        private final MetricRegistry metricRegistry;
    -&nbsp;        private final String metricName;
    -&nbsp;        private final ResponseMeteredLevel level;
    -&nbsp;
    -&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    -&nbsp;                                   final ResourceMethod method,
    -<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    -<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    -<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    -<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    -<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="fc">&nbsp;            )) : Collections.emptyList();</b>
    -<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public void mark(int statusCode) {
    -<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;            return responseCodeMeters</b>
    -<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    -&nbsp;
    -&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    -&nbsp;        private final Clock clock;
    -&nbsp;        private final long start;
    -&nbsp;        private Timer.Context resourceMethodStartContext;
    -&nbsp;        private Timer.Context requestMatchedContext;
    -&nbsp;        private Timer.Context responseFiltersStartContext;
    -&nbsp;
    -<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    -<b class="fc">&nbsp;            this.timers = timers;</b>
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            start = clock.getTick();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            switch (event.getType()) {</b>
    -&nbsp;                case RESOURCE_METHOD_START:
    -<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case REQUEST_MATCHED:
    -<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESP_FILTERS_START:
    -<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESOURCE_METHOD_FINISHED:
    -<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    -<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case REQUEST_FILTERED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    -<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case RESP_FILTERS_FINISHED:
    -<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case FINISHED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;                        if (timer != null) {</b>
    -<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    -&nbsp;                        }
    -<b class="fc">&nbsp;                    }</b>
    -&nbsp;                    break;
    -&nbsp;                default:
    -&nbsp;                    break;
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(RequestEvent event) {
    -<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer.Context context(RequestEvent event) {
    -<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    -&nbsp;
    -<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    -<b class="fc">&nbsp;            this.meters = meters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    -<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    -<b class="fc">&nbsp;                if (meter != null) {</b>
    -<b class="fc">&nbsp;                    meter.mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    -<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    -<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    -<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    -<b class="fc">&nbsp;                        metric.meter.mark();</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    -<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    -<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(500);</b>
    -<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    -&nbsp;        private final RequestEventListener[] listeners;
    -&nbsp;
    -<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    -<b class="fc">&nbsp;            this.listeners = listeners;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(final RequestEvent event) {
    -<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    -<b class="fc">&nbsp;                listener.onEvent(event);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onEvent(ApplicationEvent event) {
    -<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    -<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        return resourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    -<b class="fc">&nbsp;        return subResourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    -<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    -<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    -<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    -<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    -<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    -<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    -<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    -<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    -<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    -<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    -<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    -<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    -&nbsp;                new TimerRequestEventListener(timers, clock),
    -&nbsp;                new MeterRequestEventListener(meters),
    -&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    -&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    -&nbsp;
    -<b class="fc">&nbsp;        return listener;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    -<b class="fc">&nbsp;        T annotation = null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    -<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (annotation != null) {</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return annotation;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    -<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    -<b class="fc">&nbsp;        if (trackFilters) {</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Timed timed,
    -&nbsp;                              final String... suffixes) {
    -<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    -<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Metered metered) {
    -<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    -<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    -&nbsp;                                       final String... suffixes) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;        final String metricName;
    -<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    -<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    -&nbsp;
    -&nbsp;        private final RequestEvent.Type type;
    -&nbsp;        private final Method method;
    -&nbsp;
    -<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    -<b class="fc">&nbsp;            this.type = type;</b>
    -<b class="fc">&nbsp;            this.method = method;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod finished(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="fc">&nbsp;            if (this == o) {</b>
    -<b class="nc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (type != that.type) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return method.equals(that.method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="fc">&nbsp;            int result = type.hashCode();</b>
    -<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    -<b class="fc">&nbsp;            return result;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/sources/source-2.html
    deleted file mode 100644
    index 74a9813d52..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-14/sources/source-2.html
    +++ /dev/null
    @@ -1,201 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsFeature</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey2</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey2)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsFeature</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey2;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import javax.ws.rs.core.Feature;
    -&nbsp;import javax.ws.rs.core.FeatureContext;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp; * for recording request events.
    -&nbsp; */
    -&nbsp;public class MetricsFeature implements Feature {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    -<b class="fc">&nbsp;        this(registry, clock, false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    -<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MetricsFeature(String registryName) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A call-back method called when the feature is to be enabled in a given
    -&nbsp;     * runtime configuration scope.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    -&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    -&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    -&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    -&nbsp;     * {@link javax.ws.rs.core.Configuration#isEnabled(javax.ws.rs.core.Feature)} or
    -&nbsp;     * {@link javax.ws.rs.core.Configuration#isEnabled(Class)} method
    -&nbsp;     * would return {@code false}.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     *
    -&nbsp;     * @param context configurable context in which the feature should be enabled.
    -&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    -&nbsp;     * otherwise.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean configure(FeatureContext context) {
    -<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index.html
    deleted file mode 100644
    index 052135e591..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 301aed65ee..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 2d20cf9bca..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index d140c87621..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index fa46be2724..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 808f547845..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index b852d7aa54..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 6a5e31e1f0..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index abb34c5f39..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 2b75c7a272..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/sources/source-1.html
    deleted file mode 100644
    index 9af08f0b3c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/sources/source-1.html
    +++ /dev/null
    @@ -1,832 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey3)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.1%
    -  </span>
    -  <span class="absValue">
    -    (82/89)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.2%
    -  </span>
    -  <span class="absValue">
    -    (16/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (28/28)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey3;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    -&nbsp;import com.codahale.metrics.annotation.Metered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import jakarta.ws.rs.core.Configuration;
    -&nbsp;import jakarta.ws.rs.ext.Provider;
    -&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    -&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    -&nbsp;import org.glassfish.jersey.server.model.Resource;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Annotation;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An application event listener that listens for Jersey application initialization to
    -&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    -&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    -&nbsp; * request events indicating that the method is about to be invoked, or just got done
    -&nbsp; * being invoked.
    -&nbsp; */
    -&nbsp;@Provider
    -&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    -&nbsp;    private static final String TOTAL = &quot;total&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metrics;
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Construct an application event listener using the given metrics registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    -&nbsp;     *
    -&nbsp;     * @param metrics a {@link MetricRegistry}
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    -<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters) {
    -<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters,
    -<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.metrics = metrics;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metric for a method annotated with the
    -&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    -&nbsp;     * and a cause for which the meter should be updated.
    -&nbsp;     */
    -&nbsp;    private static class ExceptionMeterMetric {
    -&nbsp;        public final Meter meter;
    -&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    -&nbsp;
    -&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    -&nbsp;                                    final ResourceMethod method,
    -<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    -<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    -<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    -<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    -<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metrics for a method annotated with the
    -&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    -&nbsp;     * different response codes
    -&nbsp;     */
    -&nbsp;    private static class ResponseMeterMetric {
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;        private final List&lt;Meter&gt; meters;
    -&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;        private final MetricRegistry metricRegistry;
    -&nbsp;        private final String metricName;
    -&nbsp;        private final ResponseMeteredLevel level;
    -&nbsp;
    -&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    -&nbsp;                                   final ResourceMethod method,
    -<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    -<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    -<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    -<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    -<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="fc">&nbsp;                    )) : Collections.emptyList();</b>
    -<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public void mark(int statusCode) {
    -<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;            return responseCodeMeters</b>
    -<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    -&nbsp;
    -&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    -&nbsp;        private final Clock clock;
    -&nbsp;        private final long start;
    -&nbsp;        private Timer.Context resourceMethodStartContext;
    -&nbsp;        private Timer.Context requestMatchedContext;
    -&nbsp;        private Timer.Context responseFiltersStartContext;
    -&nbsp;
    -<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    -<b class="fc">&nbsp;            this.timers = timers;</b>
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            start = clock.getTick();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            switch (event.getType()) {</b>
    -&nbsp;                case RESOURCE_METHOD_START:
    -<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case REQUEST_MATCHED:
    -<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESP_FILTERS_START:
    -<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESOURCE_METHOD_FINISHED:
    -<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    -<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case REQUEST_FILTERED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    -<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case RESP_FILTERS_FINISHED:
    -<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case FINISHED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;                        if (timer != null) {</b>
    -<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    -&nbsp;                        }
    -<b class="fc">&nbsp;                    }</b>
    -&nbsp;                    break;
    -&nbsp;                default:
    -&nbsp;                    break;
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(RequestEvent event) {
    -<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer.Context context(RequestEvent event) {
    -<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    -&nbsp;
    -<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    -<b class="fc">&nbsp;            this.meters = meters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    -<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    -<b class="fc">&nbsp;                if (meter != null) {</b>
    -<b class="fc">&nbsp;                    meter.mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    -<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    -<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    -<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    -<b class="fc">&nbsp;                        metric.meter.mark();</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    -<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    -<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(500);</b>
    -<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    -&nbsp;        private final RequestEventListener[] listeners;
    -&nbsp;
    -<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    -<b class="fc">&nbsp;            this.listeners = listeners;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(final RequestEvent event) {
    -<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    -<b class="fc">&nbsp;                listener.onEvent(event);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onEvent(ApplicationEvent event) {
    -<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    -<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        return resourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    -<b class="fc">&nbsp;        return subResourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    -<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    -<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    -<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    -<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    -<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    -<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    -<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    -<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    -<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    -<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    -<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    -<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    -&nbsp;                new TimerRequestEventListener(timers, clock),
    -&nbsp;                new MeterRequestEventListener(meters),
    -&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    -&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    -&nbsp;
    -<b class="fc">&nbsp;        return listener;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    -<b class="fc">&nbsp;        T annotation = null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    -<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (annotation != null) {</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return annotation;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    -<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    -<b class="fc">&nbsp;        if (trackFilters) {</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Timed timed,
    -&nbsp;                              final String... suffixes) {
    -<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    -<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Metered metered) {
    -<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    -<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    -&nbsp;                                       final String... suffixes) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;        final String metricName;
    -<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    -<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    -&nbsp;
    -&nbsp;        private final RequestEvent.Type type;
    -&nbsp;        private final Method method;
    -&nbsp;
    -<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    -<b class="fc">&nbsp;            this.type = type;</b>
    -<b class="fc">&nbsp;            this.method = method;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod finished(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="fc">&nbsp;            if (this == o) {</b>
    -<b class="nc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (type != that.type) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return method.equals(that.method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="fc">&nbsp;            int result = type.hashCode();</b>
    -<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    -<b class="fc">&nbsp;            return result;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/sources/source-2.html
    deleted file mode 100644
    index 59c2e01035..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-15/sources/source-2.html
    +++ /dev/null
    @@ -1,201 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsFeature</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey3)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsFeature</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey3;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import jakarta.ws.rs.core.Feature;
    -&nbsp;import jakarta.ws.rs.core.FeatureContext;
    -&nbsp;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp; * for recording request events.
    -&nbsp; */
    -&nbsp;public class MetricsFeature implements Feature {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    -<b class="fc">&nbsp;        this(registry, clock, false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    -<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MetricsFeature(String registryName) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A call-back method called when the feature is to be enabled in a given
    -&nbsp;     * runtime configuration scope.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    -&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    -&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    -&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
    -&nbsp;     * would return {@code false}.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     *
    -&nbsp;     * @param context configurable context in which the feature should be enabled.
    -&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    -&nbsp;     * otherwise.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean configure(FeatureContext context) {
    -<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index.html
    deleted file mode 100644
    index f1a4465717..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index ed741daf7e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index fedb437c24..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 5d95e4e3ca..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index da73659f08..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 234b4aafec..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 4d352e096d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index dcbad0c369..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 082c74e582..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 80e21dd387..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-1.html
    deleted file mode 100644
    index 00390f8f71..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-1.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (com.codahale.metrics.jetty9)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    -&nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-2.html
    deleted file mode 100644
    index e896b33c01..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-2.html
    +++ /dev/null
    @@ -1,754 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHandler (com.codahale.metrics.jetty9)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (115/135)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    -&nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    -&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    private final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private List&lt;Meter&gt; responses;
    -&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    private Timer getRequests;
    -&nbsp;    private Timer postRequests;
    -&nbsp;    private Timer headRequests;
    -&nbsp;    private Timer putRequests;
    -&nbsp;    private Timer deleteRequests;
    -&nbsp;    private Timer optionsRequests;
    -&nbsp;    private Timer traceRequests;
    -&nbsp;    private Timer connectRequests;
    -&nbsp;    private Timer moveRequests;
    -&nbsp;    private Timer otherRequests;
    -&nbsp;
    -&nbsp;    private AsyncListener listener;
    -&nbsp;
    -&nbsp;    private HttpChannelState.State DISPATCHED_HACK;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            DISPATCHED_HACK = HttpChannelState.State.valueOf(&quot;HANDLING&quot;);</b>
    -<b class="nc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    -<b class="nc">&nbsp;            DISPATCHED_HACK = HttpChannelState.State.valueOf(&quot;DISPATCHED&quot;);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;            ));
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void handle(String path,
    -&nbsp;                       Request request,
    -&nbsp;                       HttpServletRequest httpRequest,
    -&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == DISPATCHED_HACK) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-3.html
    deleted file mode 100644
    index ad32a054cb..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-3.html
    +++ /dev/null
    @@ -1,708 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (com.codahale.metrics.jetty9)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpChannelListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (20/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.6%
    -  </span>
    -  <span class="absValue">
    -    (90/109)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    -&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    -&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    -&nbsp; *
    -&nbsp; * @since TBD
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    -&nbsp;    implements Listener
    -&nbsp;{
    -<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private final Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private final Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private final Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private final Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private final Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private final Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private final Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private final List&lt;Meter&gt; responses;
    -&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final Timer getRequests;
    -&nbsp;    private final Timer postRequests;
    -&nbsp;    private final Timer headRequests;
    -&nbsp;    private final Timer putRequests;
    -&nbsp;    private final Timer deleteRequests;
    -&nbsp;    private final Timer optionsRequests;
    -&nbsp;    private final Timer traceRequests;
    -&nbsp;    private final Timer connectRequests;
    -&nbsp;    private final Timer moveRequests;
    -&nbsp;    private final Timer otherRequests;
    -&nbsp;
    -&nbsp;    private final AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    -<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    -<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onBeforeDispatch(final Request request) {
    -<b class="fc">&nbsp;        before(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onAfterDispatch(final Request request) {
    -<b class="fc">&nbsp;        after(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContentEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestTrailers(final Request request) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseCommit(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onComplete(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void before(final Request request) {
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            activeSuspended.dec();</b>
    -<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void after(final Request request) {
    -<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    -<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.dec();</b>
    -<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    -<b class="fc">&nbsp;            activeSuspended.inc();</b>
    -<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    -&nbsp;        }
    -&nbsp;        // else onCompletion will handle it.
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="fc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-4.html
    deleted file mode 100644
    index 37a43ac044..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-16/sources/source-4.html
    +++ /dev/null
    @@ -1,286 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (com.codahale.metrics.jetty9)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (10/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    -&nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, queue);</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index.html
    deleted file mode 100644
    index 6171074445..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index cc16599539..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 3b519c73c0..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 7538a9b7eb..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index ce4693fb2a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 1c29dd6af8..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index fffc535f19..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 3c6db143ed..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index bc0fdaaef3..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 721a1a4e1c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-1.html
    deleted file mode 100644
    index f9256897fd..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-1.html
    +++ /dev/null
    @@ -1,173 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DefaultObjectNameFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jmx</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DefaultObjectNameFactory (com.codahale.metrics.jmx)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DefaultObjectNameFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    -&nbsp;
    -&nbsp;import java.util.Hashtable;
    -&nbsp;
    -&nbsp;import javax.management.MalformedObjectNameException;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -<b class="fc">&nbsp;public class DefaultObjectNameFactory implements ObjectNameFactory {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private static final char[] QUOTABLE_CHARS = new char[] {&#39;,&#39;, &#39;=&#39;, &#39;:&#39;, &#39;&quot;&#39;};</b>
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ObjectName createName(String type, String domain, String name) {
    -&nbsp;        try {
    -&nbsp;            ObjectName objectName;
    -<b class="fc">&nbsp;            Hashtable&lt;String, String&gt; properties = new Hashtable&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            properties.put(&quot;name&quot;, name);</b>
    -<b class="fc">&nbsp;            properties.put(&quot;type&quot;, type);</b>
    -<b class="fc">&nbsp;            objectName = new ObjectName(domain, properties);</b>
    -&nbsp;
    -&nbsp;            /*
    -&nbsp;             * The only way we can find out if we need to quote the properties is by
    -&nbsp;             * checking an ObjectName that we&#39;ve constructed.
    -&nbsp;             */
    -<b class="fc">&nbsp;            if (objectName.isDomainPattern()) {</b>
    -<b class="nc">&nbsp;                domain = ObjectName.quote(domain);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (objectName.isPropertyValuePattern(&quot;name&quot;) || shouldQuote(objectName.getKeyProperty(&quot;name&quot;))) {</b>
    -<b class="fc">&nbsp;                properties.put(&quot;name&quot;, ObjectName.quote(name));</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (objectName.isPropertyValuePattern(&quot;type&quot;) || shouldQuote(objectName.getKeyProperty(&quot;type&quot;))) {</b>
    -<b class="nc">&nbsp;                properties.put(&quot;type&quot;, ObjectName.quote(type));</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            objectName = new ObjectName(domain, properties);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            return objectName;</b>
    -<b class="nc">&nbsp;        } catch (MalformedObjectNameException e) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                return new ObjectName(domain, &quot;name&quot;, ObjectName.quote(name));</b>
    -<b class="nc">&nbsp;            } catch (MalformedObjectNameException e1) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register {} {}&quot;, type, name, e1);</b>
    -<b class="nc">&nbsp;                throw new RuntimeException(e1);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Determines whether the value requires quoting.
    -&nbsp;     * According to the {@link ObjectName} documentation, values can be quoted or unquoted. Unquoted
    -&nbsp;     * values may not contain any of the characters comma, equals, colon, or quote.
    -&nbsp;     *
    -&nbsp;     * @param value a value to test
    -&nbsp;     * @return true when it requires quoting, false otherwise
    -&nbsp;     */
    -&nbsp;    private boolean shouldQuote(final String value) {
    -<b class="fc">&nbsp;        for (char quotableChar : QUOTABLE_CHARS) {</b>
    -<b class="fc">&nbsp;            if (value.indexOf(quotableChar) != -1) {</b>
    -<b class="fc">&nbsp;                return true;</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return false;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-2.html
    deleted file mode 100644
    index 4fdf892776..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-2.html
    +++ /dev/null
    @@ -1,1061 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JmxReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jmx</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: JmxReporter (com.codahale.metrics.jmx)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">JmxReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">JmxReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$AbstractBean</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (9/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.4%
    -  </span>
    -  <span class="absValue">
    -    (27/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxCounter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxCounterMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxGaugeMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxHistogram</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxHistogramMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.8%
    -  </span>
    -  <span class="absValue">
    -    (11/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    49.5%
    -  </span>
    -  <span class="absValue">
    -    (50/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxMeter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxMeterMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxTimer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxTimerMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$MetricMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$MetricTimeUnits</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.Metered;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.MetricRegistryListener;
    -&nbsp;import com.codahale.metrics.Reporter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import javax.management.InstanceAlreadyExistsException;
    -&nbsp;import javax.management.InstanceNotFoundException;
    -&nbsp;import javax.management.JMException;
    -&nbsp;import javax.management.MBeanRegistrationException;
    -&nbsp;import javax.management.MBeanServer;
    -&nbsp;import javax.management.ObjectInstance;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;import java.io.Closeable;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which listens for new metrics and exposes them as namespaced MBeans.
    -&nbsp; */
    -<b class="fc">&nbsp;public class JmxReporter implements Reporter, Closeable {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link JmxReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link JmxReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link JmxReporter} instances. Defaults to using the default MBean server and
    -&nbsp;     * not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private MBeanServer mBeanServer;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private ObjectNameFactory objectNameFactory;
    -<b class="fc">&nbsp;        private MetricFilter filter = MetricFilter.ALL;</b>
    -&nbsp;        private String domain;
    -&nbsp;        private Map&lt;String, TimeUnit&gt; specificDurationUnits;
    -&nbsp;        private Map&lt;String, TimeUnit&gt; specificRateUnits;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.domain = &quot;metrics&quot;;</b>
    -<b class="fc">&nbsp;            this.objectNameFactory = new DefaultObjectNameFactory();</b>
    -<b class="fc">&nbsp;            this.specificDurationUnits = Collections.emptyMap();</b>
    -<b class="fc">&nbsp;            this.specificRateUnits = Collections.emptyMap();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Register MBeans with the given {@link MBeanServer}.
    -&nbsp;         *
    -&nbsp;         * @param mBeanServer an {@link MBeanServer}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder registerWith(MBeanServer mBeanServer) {
    -<b class="fc">&nbsp;            this.mBeanServer = mBeanServer;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder createsObjectNamesWith(ObjectNameFactory onFactory) {
    -<b class="fc">&nbsp;            if (onFactory == null) {</b>
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;null objectNameFactory&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            this.objectNameFactory = onFactory;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder inDomain(String domain) {
    -<b class="fc">&nbsp;            this.domain = domain;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use specific {@link TimeUnit}s for the duration of the metrics with these names.
    -&nbsp;         *
    -&nbsp;         * @param specificDurationUnits a map of metric names and specific {@link TimeUnit}s
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder specificDurationUnits(Map&lt;String, TimeUnit&gt; specificDurationUnits) {
    -<b class="nc">&nbsp;            this.specificDurationUnits = Collections.unmodifiableMap(specificDurationUnits);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use specific {@link TimeUnit}s for the rate of the metrics with these names.
    -&nbsp;         *
    -&nbsp;         * @param specificRateUnits a map of metric names and specific {@link TimeUnit}s
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder specificRateUnits(Map&lt;String, TimeUnit&gt; specificRateUnits) {
    -<b class="nc">&nbsp;            this.specificRateUnits = Collections.unmodifiableMap(specificRateUnits);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link JmxReporter} with the given properties.
    -&nbsp;         *
    -&nbsp;         * @return a {@link JmxReporter}
    -&nbsp;         */
    -&nbsp;        public JmxReporter build() {
    -<b class="fc">&nbsp;            final MetricTimeUnits timeUnits = new MetricTimeUnits(rateUnit, durationUnit, specificRateUnits, specificDurationUnits);</b>
    -<b class="fc">&nbsp;            if (mBeanServer == null) {</b>
    -<b class="fc">&nbsp;                mBeanServer = ManagementFactory.getPlatformMBeanServer();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new JmxReporter(mBeanServer, domain, registry, filter, timeUnits, objectNameFactory);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);</b>
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface MetricMBean {
    -&nbsp;        ObjectName objectName();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private abstract static class AbstractBean implements MetricMBean {
    -&nbsp;        private final ObjectName objectName;
    -&nbsp;
    -<b class="fc">&nbsp;        AbstractBean(ObjectName objectName) {</b>
    -<b class="fc">&nbsp;            this.objectName = objectName;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public ObjectName objectName() {
    -<b class="nc">&nbsp;            return objectName;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxGaugeMBean extends MetricMBean {
    -&nbsp;        Object getValue();
    -&nbsp;        Number getNumber();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxGauge extends AbstractBean implements JmxGaugeMBean {</b>
    -&nbsp;        private final Gauge&lt;?&gt; metric;
    -&nbsp;
    -&nbsp;        private JmxGauge(Gauge&lt;?&gt; metric, ObjectName objectName) {
    -<b class="fc">&nbsp;            super(objectName);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Object getValue() {
    -<b class="fc">&nbsp;            return metric.getValue();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Number getNumber() {
    -<b class="fc">&nbsp;            Object value = metric.getValue();</b>
    -<b class="fc">&nbsp;            return value instanceof Number ? (Number) value : 0;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxCounterMBean extends MetricMBean {
    -&nbsp;        long getCount();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxCounter extends AbstractBean implements JmxCounterMBean {</b>
    -&nbsp;        private final Counter metric;
    -&nbsp;
    -&nbsp;        private JmxCounter(Counter metric, ObjectName objectName) {
    -<b class="fc">&nbsp;            super(objectName);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="fc">&nbsp;            return metric.getCount();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxHistogramMBean extends MetricMBean {
    -&nbsp;        long getCount();
    -&nbsp;
    -&nbsp;        long getMin();
    -&nbsp;
    -&nbsp;        long getMax();
    -&nbsp;
    -&nbsp;        double getMean();
    -&nbsp;
    -&nbsp;        double getStdDev();
    -&nbsp;
    -&nbsp;        double get50thPercentile();
    -&nbsp;
    -&nbsp;        double get75thPercentile();
    -&nbsp;
    -&nbsp;        double get95thPercentile();
    -&nbsp;
    -&nbsp;        double get98thPercentile();
    -&nbsp;
    -&nbsp;        double get99thPercentile();
    -&nbsp;
    -&nbsp;        double get999thPercentile();
    -&nbsp;
    -&nbsp;        long[] values();
    -&nbsp;
    -&nbsp;        long getSnapshotSize();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxHistogram implements JmxHistogramMBean {</b>
    -&nbsp;        private final ObjectName objectName;
    -&nbsp;        private final Histogram metric;
    -&nbsp;
    -<b class="fc">&nbsp;        private JmxHistogram(Histogram metric, ObjectName objectName) {</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -<b class="fc">&nbsp;            this.objectName = objectName;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public ObjectName objectName() {
    -<b class="nc">&nbsp;            return objectName;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get50thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMedian();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="fc">&nbsp;            return metric.getCount();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getMin() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMin();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getMax() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMax();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMean() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMean();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getStdDev() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getStdDev();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get75thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get75thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get95thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get95thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get98thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get98thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get99thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get99thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get999thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get999thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long[] values() {
    -<b class="nc">&nbsp;            return metric.getSnapshot().getValues();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getSnapshotSize() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().size();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxMeterMBean extends MetricMBean {
    -&nbsp;        long getCount();
    -&nbsp;
    -&nbsp;        double getMeanRate();
    -&nbsp;
    -&nbsp;        double getOneMinuteRate();
    -&nbsp;
    -&nbsp;        double getFiveMinuteRate();
    -&nbsp;
    -&nbsp;        double getFifteenMinuteRate();
    -&nbsp;
    -&nbsp;        String getRateUnit();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxMeter extends AbstractBean implements JmxMeterMBean {</b>
    -&nbsp;        private final Metered metric;
    -&nbsp;        private final double rateFactor;
    -&nbsp;        private final String rateUnit;
    -&nbsp;
    -&nbsp;        private JmxMeter(Metered metric, ObjectName objectName, TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            super(objectName);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;            this.rateUnit = (&quot;events/&quot; + calculateRateUnit(rateUnit)).intern();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="fc">&nbsp;            return metric.getCount();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMeanRate() {
    -<b class="fc">&nbsp;            return metric.getMeanRate() * rateFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getOneMinuteRate() {
    -<b class="fc">&nbsp;            return metric.getOneMinuteRate() * rateFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getFiveMinuteRate() {
    -<b class="fc">&nbsp;            return metric.getFiveMinuteRate() * rateFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getFifteenMinuteRate() {
    -<b class="fc">&nbsp;            return metric.getFifteenMinuteRate() * rateFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getRateUnit() {
    -<b class="fc">&nbsp;            return rateUnit;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private String calculateRateUnit(TimeUnit unit) {
    -<b class="fc">&nbsp;            final String s = unit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;            return s.substring(0, s.length() - 1);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxTimerMBean extends JmxMeterMBean {
    -&nbsp;        double getMin();
    -&nbsp;
    -&nbsp;        double getMax();
    -&nbsp;
    -&nbsp;        double getMean();
    -&nbsp;
    -&nbsp;        double getStdDev();
    -&nbsp;
    -&nbsp;        double get50thPercentile();
    -&nbsp;
    -&nbsp;        double get75thPercentile();
    -&nbsp;
    -&nbsp;        double get95thPercentile();
    -&nbsp;
    -&nbsp;        double get98thPercentile();
    -&nbsp;
    -&nbsp;        double get99thPercentile();
    -&nbsp;
    -&nbsp;        double get999thPercentile();
    -&nbsp;
    -&nbsp;        long[] values();
    -&nbsp;
    -&nbsp;        String getDurationUnit();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static class JmxTimer extends JmxMeter implements JmxTimerMBean {</b>
    -&nbsp;        private final Timer metric;
    -&nbsp;        private final double durationFactor;
    -&nbsp;        private final String durationUnit;
    -&nbsp;
    -&nbsp;        private JmxTimer(Timer metric,
    -&nbsp;                         ObjectName objectName,
    -&nbsp;                         TimeUnit rateUnit,
    -&nbsp;                         TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            super(metric, objectName, rateUnit);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -<b class="fc">&nbsp;            this.durationFactor = 1.0 / durationUnit.toNanos(1);</b>
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get50thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMedian() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMin() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMin() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMax() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMax() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMean() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMean() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getStdDev() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getStdDev() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get75thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get75thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get95thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get95thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get98thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get98thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get99thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get99thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get999thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get999thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long[] values() {
    -<b class="nc">&nbsp;            return metric.getSnapshot().getValues();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getDurationUnit() {
    -<b class="fc">&nbsp;            return durationUnit;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxListener implements MetricRegistryListener {</b>
    -&nbsp;        private final String name;
    -&nbsp;        private final MBeanServer mBeanServer;
    -&nbsp;        private final MetricFilter filter;
    -&nbsp;        private final MetricTimeUnits timeUnits;
    -&nbsp;        private final Map&lt;ObjectName, ObjectName&gt; registered;
    -&nbsp;        private final ObjectNameFactory objectNameFactory;
    -&nbsp;
    -<b class="fc">&nbsp;        private JmxListener(MBeanServer mBeanServer, String name, MetricFilter filter, MetricTimeUnits timeUnits, ObjectNameFactory objectNameFactory) {</b>
    -<b class="fc">&nbsp;            this.mBeanServer = mBeanServer;</b>
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            this.timeUnits = timeUnits;</b>
    -<b class="fc">&nbsp;            this.registered = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;            this.objectNameFactory = objectNameFactory;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void registerMBean(Object mBean, ObjectName objectName) throws InstanceAlreadyExistsException, JMException {
    -<b class="fc">&nbsp;            ObjectInstance objectInstance = mBeanServer.registerMBean(mBean, objectName);</b>
    -<b class="fc">&nbsp;            if (objectInstance != null) {</b>
    -&nbsp;                // the websphere mbeanserver rewrites the objectname to include
    -&nbsp;                // cell, node &amp; server info
    -&nbsp;                // make sure we capture the new objectName for unregistration
    -<b class="fc">&nbsp;                registered.put(objectName, objectInstance.getObjectName());</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                registered.put(objectName, objectName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void unregisterMBean(ObjectName originalObjectName) throws InstanceNotFoundException, MBeanRegistrationException {
    -<b class="fc">&nbsp;            ObjectName storedObjectName = registered.remove(originalObjectName);</b>
    -<b class="fc">&nbsp;            if (storedObjectName != null) {</b>
    -<b class="fc">&nbsp;                mBeanServer.unregisterMBean(storedObjectName);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                mBeanServer.unregisterMBean(originalObjectName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, gauge)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;gauges&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxGauge(gauge, objectName), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register gauge&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register gauge&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onGaugeRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;gauges&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister gauge&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister gauge&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onCounterAdded(String name, Counter counter) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, counter)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;counters&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxCounter(counter, objectName), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register counter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register counter&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onCounterRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;counters&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister counter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister counter&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onHistogramAdded(String name, Histogram histogram) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, histogram)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;histograms&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxHistogram(histogram, objectName), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register histogram&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register histogram&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onHistogramRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;histograms&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister histogram&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister histogram&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onMeterAdded(String name, Meter meter) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, meter)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;meters&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxMeter(meter, objectName, timeUnits.rateFor(name)), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register meter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register meter&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onMeterRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;meters&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister meter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister meter&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimerAdded(String name, Timer timer) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, timer)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;timers&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxTimer(timer, objectName, timeUnits.rateFor(name), timeUnits.durationFor(name)), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register timer&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register timer&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimerRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;timers&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister timer&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister timer&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private ObjectName createName(String type, String name) {
    -<b class="fc">&nbsp;            return objectNameFactory.createName(type, this.name, name);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        void unregisterAll() {
    -<b class="fc">&nbsp;            for (ObjectName name : registered.keySet()) {</b>
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    unregisterMBean(name);</b>
    -<b class="nc">&nbsp;                } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                    LOGGER.debug(&quot;Unable to unregister metric&quot;, e);</b>
    -<b class="nc">&nbsp;                } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                    LOGGER.warn(&quot;Unable to unregister metric&quot;, e);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            registered.clear();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MetricTimeUnits {
    -&nbsp;        private final TimeUnit defaultRate;
    -&nbsp;        private final TimeUnit defaultDuration;
    -&nbsp;        private final Map&lt;String, TimeUnit&gt; rateOverrides;
    -&nbsp;        private final Map&lt;String, TimeUnit&gt; durationOverrides;
    -&nbsp;
    -&nbsp;        MetricTimeUnits(TimeUnit defaultRate,
    -&nbsp;                        TimeUnit defaultDuration,
    -&nbsp;                        Map&lt;String, TimeUnit&gt; rateOverrides,
    -<b class="fc">&nbsp;                        Map&lt;String, TimeUnit&gt; durationOverrides) {</b>
    -<b class="fc">&nbsp;            this.defaultRate = defaultRate;</b>
    -<b class="fc">&nbsp;            this.defaultDuration = defaultDuration;</b>
    -<b class="fc">&nbsp;            this.rateOverrides = rateOverrides;</b>
    -<b class="fc">&nbsp;            this.durationOverrides = durationOverrides;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public TimeUnit durationFor(String name) {
    -<b class="fc">&nbsp;            return durationOverrides.getOrDefault(name, defaultDuration);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public TimeUnit rateFor(String name) {
    -<b class="fc">&nbsp;            return rateOverrides.getOrDefault(name, defaultRate);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final JmxListener listener;
    -&nbsp;
    -&nbsp;    private JmxReporter(MBeanServer mBeanServer,
    -&nbsp;                        String domain,
    -&nbsp;                        MetricRegistry registry,
    -&nbsp;                        MetricFilter filter,
    -&nbsp;                        MetricTimeUnits timeUnits,
    -<b class="fc">&nbsp;                        ObjectNameFactory objectNameFactory) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.listener = new JmxListener(mBeanServer, domain, filter, timeUnits, objectNameFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Starts the reporter.
    -&nbsp;     */
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        registry.addListener(listener);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Stops the reporter.
    -&nbsp;     */
    -&nbsp;    public void stop() {
    -<b class="fc">&nbsp;        registry.removeListener(listener);</b>
    -<b class="fc">&nbsp;        listener.unregisterAll();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Stops the reporter.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="nc">&nbsp;        stop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Visible for testing
    -&nbsp;     */
    -&nbsp;    ObjectNameFactory getObjectNameFactory() {
    -<b class="fc">&nbsp;        return listener.objectNameFactory;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-3.html
    deleted file mode 100644
    index 52db83b2c8..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-17/sources/source-3.html
    +++ /dev/null
    @@ -1,85 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ObjectNameFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jmx</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ObjectNameFactory (com.codahale.metrics.jmx)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">ObjectNameFactory$MockitoMock$e52ggOF9</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ObjectNameFactory$MockitoMock$e52ggOF9$auxiliary$32SCHgva</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ObjectNameFactory$MockitoMock$e52ggOF9$auxiliary$g7yRCWs6</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    -&nbsp;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;
    -&nbsp;public interface ObjectNameFactory {
    -&nbsp;
    -&nbsp;    ObjectName createName(String type, String domain, String name);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index.html
    deleted file mode 100644
    index e63a6da580..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 9004b7c58e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 057a9a11e9..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index ce6404c6ff..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index f19e36b165..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_LINE.html
    deleted file mode 100644
    index b493720c10..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index cbf31a92f2..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 0b8baefc92..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index d12b367dd8..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 6dcf2d7c4f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/sources/source-1.html
    deleted file mode 100644
    index a079f8f0cc..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/sources/source-1.html
    +++ /dev/null
    @@ -1,217 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckModule</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.json</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckModule (com.codahale.metrics.json)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckModule</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckModule$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheckModule$HealthCheckResultSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (27/27)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.json;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.fasterxml.jackson.core.JsonGenerator;
    -&nbsp;import com.fasterxml.jackson.core.Version;
    -&nbsp;import com.fasterxml.jackson.databind.Module;
    -&nbsp;import com.fasterxml.jackson.databind.SerializerProvider;
    -&nbsp;import com.fasterxml.jackson.databind.module.SimpleSerializers;
    -&nbsp;import com.fasterxml.jackson.databind.ser.std.StdSerializer;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -<b class="fc">&nbsp;public class HealthCheckModule extends Module {</b>
    -<b class="fc">&nbsp;    private static class HealthCheckResultSerializer extends StdSerializer&lt;HealthCheck.Result&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private HealthCheckResultSerializer() {
    -<b class="fc">&nbsp;            super(HealthCheck.Result.class);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(HealthCheck.Result result,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeBooleanField(&quot;healthy&quot;, result.isHealthy());</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final String message = result.getMessage();</b>
    -<b class="fc">&nbsp;            if (message != null) {</b>
    -<b class="fc">&nbsp;                json.writeStringField(&quot;message&quot;, message);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            serializeThrowable(json, result.getError(), &quot;error&quot;);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;duration&quot;, result.getDuration());</b>
    -&nbsp;
    -<b class="fc">&nbsp;            Map&lt;String, Object&gt; details = result.getDetails();</b>
    -<b class="fc">&nbsp;            if (details != null &amp;&amp; !details.isEmpty()) {</b>
    -<b class="fc">&nbsp;                for (Map.Entry&lt;String, Object&gt; e : details.entrySet()) {</b>
    -<b class="fc">&nbsp;                    json.writeObjectField(e.getKey(), e.getValue());</b>
    -<b class="fc">&nbsp;                }</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            json.writeStringField(&quot;timestamp&quot;, result.getTimestamp());</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void serializeThrowable(JsonGenerator json, Throwable error, String name) throws IOException {
    -<b class="fc">&nbsp;            if (error != null) {</b>
    -<b class="fc">&nbsp;                json.writeObjectFieldStart(name);</b>
    -<b class="fc">&nbsp;                json.writeStringField(&quot;type&quot;, error.getClass().getTypeName());</b>
    -<b class="fc">&nbsp;                json.writeStringField(&quot;message&quot;, error.getMessage());</b>
    -<b class="fc">&nbsp;                json.writeArrayFieldStart(&quot;stack&quot;);</b>
    -<b class="fc">&nbsp;                for (StackTraceElement element : error.getStackTrace()) {</b>
    -<b class="fc">&nbsp;                    json.writeString(element.toString());</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                json.writeEndArray();</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (error.getCause() != null) {</b>
    -<b class="fc">&nbsp;                    serializeThrowable(json, error.getCause(), &quot;cause&quot;);</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                json.writeEndObject();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getModuleName() {
    -<b class="fc">&nbsp;        return &quot;healthchecks&quot;;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Version version() {
    -<b class="fc">&nbsp;        return MetricsModule.VERSION;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void setupModule(SetupContext context) {
    -<b class="fc">&nbsp;        context.addSerializers(new SimpleSerializers(Collections.singletonList(new HealthCheckResultSerializer())));</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/sources/source-2.html
    deleted file mode 100644
    index 694b769101..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-18/sources/source-2.html
    +++ /dev/null
    @@ -1,489 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsModule</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.json</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsModule</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (12/13)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetricsModule$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$CounterSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$GaugeSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$HistogramSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$MeterSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$MetricRegistrySerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$TimerSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (33/33)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.json;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Snapshot;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.fasterxml.jackson.core.JsonGenerator;
    -&nbsp;import com.fasterxml.jackson.core.Version;
    -&nbsp;import com.fasterxml.jackson.databind.Module;
    -&nbsp;import com.fasterxml.jackson.databind.SerializerProvider;
    -&nbsp;import com.fasterxml.jackson.databind.module.SimpleSerializers;
    -&nbsp;import com.fasterxml.jackson.databind.ser.std.StdSerializer;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -<b class="fc">&nbsp;public class MetricsModule extends Module {</b>
    -<b class="fc">&nbsp;    static final Version VERSION = new Version(4, 0, 0, &quot;&quot;, &quot;io.dropwizard.metrics&quot;, &quot;metrics-json&quot;);</b>
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -<b class="fc">&nbsp;    private static class GaugeSerializer extends StdSerializer&lt;Gauge&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private GaugeSerializer() {
    -<b class="fc">&nbsp;            super(Gauge.class);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Gauge gauge,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -&nbsp;            final Object value;
    -&nbsp;            try {
    -<b class="fc">&nbsp;                value = gauge.getValue();</b>
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;value&quot;, value);</b>
    -<b class="fc">&nbsp;            } catch (RuntimeException e) {</b>
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;error&quot;, e.toString());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class CounterSerializer extends StdSerializer&lt;Counter&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private CounterSerializer() {
    -<b class="fc">&nbsp;            super(Counter.class);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Counter counter,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, counter.getCount());</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class HistogramSerializer extends StdSerializer&lt;Histogram&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private final boolean showSamples;
    -&nbsp;
    -&nbsp;        private HistogramSerializer(boolean showSamples) {
    -<b class="fc">&nbsp;            super(Histogram.class);</b>
    -<b class="fc">&nbsp;            this.showSamples = showSamples;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Histogram histogram,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            final Snapshot snapshot = histogram.getSnapshot();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, histogram.getCount());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;max&quot;, snapshot.getMax());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean&quot;, snapshot.getMean());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;min&quot;, snapshot.getMin());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p50&quot;, snapshot.getMedian());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p75&quot;, snapshot.get75thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p95&quot;, snapshot.get95thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p98&quot;, snapshot.get98thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p99&quot;, snapshot.get99thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p999&quot;, snapshot.get999thPercentile());</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (showSamples) {</b>
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;values&quot;, snapshot.getValues());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;stddev&quot;, snapshot.getStdDev());</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MeterSerializer extends StdSerializer&lt;Meter&gt; {
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private final String rateUnit;
    -&nbsp;        private final double rateFactor;
    -&nbsp;
    -&nbsp;        public MeterSerializer(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            super(Meter.class);</b>
    -<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;            this.rateUnit = calculateRateUnit(rateUnit, &quot;events&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Meter meter,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, meter.getCount());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m15_rate&quot;, meter.getFifteenMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m1_rate&quot;, meter.getOneMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m5_rate&quot;, meter.getFiveMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean_rate&quot;, meter.getMeanRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;units&quot;, rateUnit);</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class TimerSerializer extends StdSerializer&lt;Timer&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private final String rateUnit;
    -&nbsp;        private final double rateFactor;
    -&nbsp;        private final String durationUnit;
    -&nbsp;        private final double durationFactor;
    -&nbsp;        private final boolean showSamples;
    -&nbsp;
    -&nbsp;        private TimerSerializer(TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit,
    -&nbsp;                                boolean showSamples) {
    -<b class="fc">&nbsp;            super(Timer.class);</b>
    -<b class="fc">&nbsp;            this.rateUnit = calculateRateUnit(rateUnit, &quot;calls&quot;);</b>
    -<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;            this.durationFactor = 1.0 / durationUnit.toNanos(1);</b>
    -<b class="fc">&nbsp;            this.showSamples = showSamples;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Timer timer,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            final Snapshot snapshot = timer.getSnapshot();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, timer.getCount());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;max&quot;, snapshot.getMax() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean&quot;, snapshot.getMean() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;min&quot;, snapshot.getMin() * durationFactor);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p50&quot;, snapshot.getMedian() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p75&quot;, snapshot.get75thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p95&quot;, snapshot.get95thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p98&quot;, snapshot.get98thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p99&quot;, snapshot.get99thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p999&quot;, snapshot.get999thPercentile() * durationFactor);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (showSamples) {</b>
    -<b class="fc">&nbsp;                final long[] values = snapshot.getValues();</b>
    -<b class="fc">&nbsp;                final double[] scaledValues = new double[values.length];</b>
    -<b class="fc">&nbsp;                for (int i = 0; i &lt; values.length; i++) {</b>
    -<b class="fc">&nbsp;                    scaledValues[i] = values[i] * durationFactor;</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;values&quot;, scaledValues);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;stddev&quot;, snapshot.getStdDev() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m15_rate&quot;, timer.getFifteenMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m1_rate&quot;, timer.getOneMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m5_rate&quot;, timer.getFiveMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean_rate&quot;, timer.getMeanRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;duration_units&quot;, durationUnit);</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;rate_units&quot;, rateUnit);</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class MetricRegistrySerializer extends StdSerializer&lt;MetricRegistry&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private final MetricFilter filter;
    -&nbsp;
    -&nbsp;        private MetricRegistrySerializer(MetricFilter filter) {
    -<b class="fc">&nbsp;            super(MetricRegistry.class);</b>
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(MetricRegistry registry,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;version&quot;, VERSION.toString());</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;gauges&quot;, registry.getGauges(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;counters&quot;, registry.getCounters(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;histograms&quot;, registry.getHistograms(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;meters&quot;, registry.getMeters(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;timers&quot;, registry.getTimers(filter));</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected final TimeUnit rateUnit;
    -&nbsp;    protected final TimeUnit durationUnit;
    -&nbsp;    protected final boolean showSamples;
    -&nbsp;    protected final MetricFilter filter;
    -&nbsp;
    -&nbsp;    public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples) {
    -<b class="nc">&nbsp;        this(rateUnit, durationUnit, showSamples, MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples, MetricFilter filter) {</b>
    -<b class="fc">&nbsp;        this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;        this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;        this.showSamples = showSamples;</b>
    -<b class="fc">&nbsp;        this.filter = filter;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getModuleName() {
    -<b class="fc">&nbsp;        return &quot;metrics&quot;;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Version version() {
    -<b class="fc">&nbsp;        return VERSION;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void setupModule(SetupContext context) {
    -<b class="fc">&nbsp;        context.addSerializers(new SimpleSerializers(Arrays.asList(</b>
    -&nbsp;                new GaugeSerializer(),
    -&nbsp;                new CounterSerializer(),
    -&nbsp;                new HistogramSerializer(showSamples),
    -&nbsp;                new MeterSerializer(rateUnit),
    -&nbsp;                new TimerSerializer(rateUnit, durationUnit, showSamples),
    -&nbsp;                new MetricRegistrySerializer(filter)
    -&nbsp;        )));
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static String calculateRateUnit(TimeUnit unit, String name) {
    -<b class="fc">&nbsp;        final String s = unit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;        return name + &#39;/&#39; + s.substring(0, s.length() - 1);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index.html
    deleted file mode 100644
    index 06b735e1a0..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 4a6a5de4bf..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 4b516253bc..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index e243a1de5c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 2d9f82564b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 82990ebd7b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index cc79e15be4..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 64f8443f92..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index e32677a054..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index bb6516226e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-1.html
    deleted file mode 100644
    index 49735edcc5..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-1.html
    +++ /dev/null
    @@ -1,156 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > BufferPoolMetricSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: BufferPoolMetricSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">BufferPoolMetricSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import javax.management.JMException;
    -&nbsp;import javax.management.MBeanServer;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the count, usage, and capacity of the JVM&#39;s direct and mapped buffer pools.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * These JMX objects are only available on Java 7 and above.
    -&nbsp; */
    -&nbsp;public class BufferPoolMetricSet implements MetricSet {
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(BufferPoolMetricSet.class);</b>
    -<b class="fc">&nbsp;    private static final String[] ATTRIBUTES = {&quot;Count&quot;, &quot;MemoryUsed&quot;, &quot;TotalCapacity&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] NAMES = {&quot;count&quot;, &quot;used&quot;, &quot;capacity&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] POOLS = {&quot;direct&quot;, &quot;mapped&quot;};</b>
    -&nbsp;
    -&nbsp;    private final MBeanServer mBeanServer;
    -&nbsp;
    -<b class="fc">&nbsp;    public BufferPoolMetricSet(MBeanServer mBeanServer) {</b>
    -<b class="fc">&nbsp;        this.mBeanServer = mBeanServer;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (String pool : POOLS) {</b>
    -<b class="fc">&nbsp;            for (int i = 0; i &lt; ATTRIBUTES.length; i++) {</b>
    -<b class="fc">&nbsp;                final String attribute = ATTRIBUTES[i];</b>
    -<b class="fc">&nbsp;                final String name = NAMES[i];</b>
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    final ObjectName on = new ObjectName(&quot;java.nio:type=BufferPool,name=&quot; + pool);</b>
    -<b class="fc">&nbsp;                    mBeanServer.getMBeanInfo(on);</b>
    -<b class="fc">&nbsp;                    gauges.put(name(pool, name), new JmxAttributeGauge(mBeanServer, on, attribute));</b>
    -<b class="fc">&nbsp;                } catch (JMException ignored) {</b>
    -<b class="fc">&nbsp;                    LOGGER.debug(&quot;Unable to load buffer pool MBeans, possibly running on Java 6&quot;);</b>
    -<b class="fc">&nbsp;                }</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-2.html
    deleted file mode 100644
    index b949f5dfac..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-2.html
    +++ /dev/null
    @@ -1,184 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedThreadStatesGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedThreadStatesGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedThreadStatesGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">CachedThreadStatesGaugeSet$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.CachedGauge;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A variation of ThreadStatesGaugeSet that caches the ThreadInfo[] objects for
    -&nbsp; * a given interval.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CachedThreadStatesGaugeSet extends ThreadStatesGaugeSet {</b>
    -&nbsp;
    -&nbsp;    private final CachedGauge&lt;ThreadInfo[]&gt; threadInfo;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the given MXBean and detector.
    -&nbsp;     * Caches the information for the given interval and time unit.
    -&nbsp;     *
    -&nbsp;     * @param threadMXBean     a thread MXBean
    -&nbsp;     * @param deadlockDetector a deadlock detector
    -&nbsp;     * @param interval         cache interval
    -&nbsp;     * @param unit             cache interval time unit
    -&nbsp;     */
    -&nbsp;    public CachedThreadStatesGaugeSet(final ThreadMXBean threadMXBean, ThreadDeadlockDetector deadlockDetector,
    -&nbsp;                                      long interval, TimeUnit unit) {
    -<b class="fc">&nbsp;        super(threadMXBean, deadlockDetector);</b>
    -<b class="fc">&nbsp;        threadInfo = new CachedGauge&lt;ThreadInfo[]&gt;(interval, unit) {</b>
    -&nbsp;            @Override
    -&nbsp;            protected ThreadInfo[] loadValue() {
    -<b class="fc">&nbsp;                return CachedThreadStatesGaugeSet.super.getThreadInfo();</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the default MXBeans.
    -&nbsp;     * Caches the information for the given interval and time unit.
    -&nbsp;     *
    -&nbsp;     * @param interval cache interval
    -&nbsp;     * @param unit     cache interval time unit
    -&nbsp;     */
    -&nbsp;    public CachedThreadStatesGaugeSet(long interval, TimeUnit unit) {
    -<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector(), interval, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    ThreadInfo[] getThreadInfo() {
    -<b class="fc">&nbsp;        return threadInfo.getValue();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-3.html
    deleted file mode 100644
    index d1a9a18d5c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-3.html
    +++ /dev/null
    @@ -1,139 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ClassLoadingGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ClassLoadingGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ClassLoadingGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ClassLoadingMXBean;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for JVM classloader usage.
    -&nbsp; */
    -&nbsp;public class ClassLoadingGaugeSet implements MetricSet {
    -&nbsp;
    -&nbsp;    private final ClassLoadingMXBean mxBean;
    -&nbsp;
    -&nbsp;    public ClassLoadingGaugeSet() {
    -<b class="nc">&nbsp;        this(ManagementFactory.getClassLoadingMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public ClassLoadingGaugeSet(ClassLoadingMXBean mxBean) {</b>
    -<b class="fc">&nbsp;        this.mxBean = mxBean;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;loaded&quot;, (Gauge&lt;Long&gt;) mxBean::getTotalLoadedClassCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;unloaded&quot;, (Gauge&lt;Long&gt;) mxBean::getUnloadedClassCount);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return gauges;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-4.html
    deleted file mode 100644
    index f1b16541f7..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-4.html
    +++ /dev/null
    @@ -1,123 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CpuTimeClock</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CpuTimeClock (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CpuTimeClock</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A clock implementation which returns the current thread&#39;s CPU time.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CpuTimeClock extends Clock {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private static final ThreadMXBean THREAD_MX_BEAN = ManagementFactory.getThreadMXBean();</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public long getTick() {
    -<b class="fc">&nbsp;        return THREAD_MX_BEAN.getCurrentThreadCpuTime();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-5.html
    deleted file mode 100644
    index 287366ae6b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-5.html
    +++ /dev/null
    @@ -1,154 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > FileDescriptorRatioGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: FileDescriptorRatioGauge (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">FileDescriptorRatioGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.OperatingSystemMXBean;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A gauge for the ratio of used to total file descriptors.
    -&nbsp; */
    -&nbsp;public class FileDescriptorRatioGauge extends RatioGauge {
    -<b class="fc">&nbsp;    private static boolean unixOperatingSystemMXBeanExists = false;</b>
    -&nbsp;
    -&nbsp;    private final OperatingSystemMXBean os;
    -&nbsp;
    -&nbsp;    static {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            Class.forName(&quot;com.sun.management.UnixOperatingSystemMXBean&quot;);</b>
    -<b class="fc">&nbsp;            unixOperatingSystemMXBeanExists = true;</b>
    -<b class="fc">&nbsp;        } catch (ClassNotFoundException e) {</b>
    -&nbsp;            // do nothing
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new gauge using the platform OS bean.
    -&nbsp;     */
    -&nbsp;    public FileDescriptorRatioGauge() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getOperatingSystemMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new gauge using the given OS bean.
    -&nbsp;     *
    -&nbsp;     * @param os an {@link OperatingSystemMXBean}
    -&nbsp;     */
    -<b class="fc">&nbsp;    public FileDescriptorRatioGauge(OperatingSystemMXBean os) {</b>
    -<b class="fc">&nbsp;        this.os = os;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected Ratio getRatio() {
    -<b class="fc">&nbsp;        if (unixOperatingSystemMXBeanExists &amp;&amp; os instanceof com.sun.management.UnixOperatingSystemMXBean) {</b>
    -<b class="fc">&nbsp;            final com.sun.management.UnixOperatingSystemMXBean unixOs = (com.sun.management.UnixOperatingSystemMXBean) os;</b>
    -<b class="fc">&nbsp;            return Ratio.of(unixOs.getOpenFileDescriptorCount(), unixOs.getMaxFileDescriptorCount());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            return Ratio.of(Double.NaN, Double.NaN);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-6.html
    deleted file mode 100644
    index 390691f599..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-6.html
    +++ /dev/null
    @@ -1,157 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GarbageCollectorMetricSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GarbageCollectorMetricSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GarbageCollectorMetricSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.GarbageCollectorMXBean;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the counts and elapsed times of garbage collections.
    -&nbsp; */
    -&nbsp;public class GarbageCollectorMetricSet implements MetricSet {
    -<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    -&nbsp;
    -&nbsp;    private final List&lt;GarbageCollectorMXBean&gt; garbageCollectors;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges for all discoverable garbage collectors.
    -&nbsp;     */
    -&nbsp;    public GarbageCollectorMetricSet() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getGarbageCollectorMXBeans());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges for the given collection of garbage collectors.
    -&nbsp;     *
    -&nbsp;     * @param garbageCollectors the garbage collectors
    -&nbsp;     */
    -<b class="fc">&nbsp;    public GarbageCollectorMetricSet(Collection&lt;GarbageCollectorMXBean&gt; garbageCollectors) {</b>
    -<b class="fc">&nbsp;        this.garbageCollectors = new ArrayList&lt;&gt;(garbageCollectors);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (final GarbageCollectorMXBean gc : garbageCollectors) {</b>
    -<b class="fc">&nbsp;            final String name = WHITESPACE.matcher(gc.getName()).replaceAll(&quot;-&quot;);</b>
    -<b class="fc">&nbsp;            gauges.put(name(name, &quot;count&quot;), (Gauge&lt;Long&gt;) gc::getCollectionCount);</b>
    -<b class="fc">&nbsp;            gauges.put(name(name, &quot;time&quot;), (Gauge&lt;Long&gt;) gc::getCollectionTime);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-7.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-7.html
    deleted file mode 100644
    index 3aa7b9c149..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-7.html
    +++ /dev/null
    @@ -1,165 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JmxAttributeGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: JmxAttributeGauge (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">JmxAttributeGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import javax.management.JMException;
    -&nbsp;import javax.management.MBeanServerConnection;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Gauge} implementation which queries an {@link MBeanServerConnection} for an attribute of an object.
    -&nbsp; */
    -&nbsp;public class JmxAttributeGauge implements Gauge&lt;Object&gt; {
    -&nbsp;    private final MBeanServerConnection mBeanServerConn;
    -&nbsp;    private final ObjectName objectName;
    -&nbsp;    private final String attributeName;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new JmxAttributeGauge.
    -&nbsp;     *
    -&nbsp;     * @param objectName    the name of the object
    -&nbsp;     * @param attributeName the name of the object&#39;s attribute
    -&nbsp;     */
    -&nbsp;    public JmxAttributeGauge(ObjectName objectName, String attributeName) {
    -<b class="fc">&nbsp;        this(ManagementFactory.getPlatformMBeanServer(), objectName, attributeName);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new JmxAttributeGauge.
    -&nbsp;     *
    -&nbsp;     * @param mBeanServerConn the {@link MBeanServerConnection}
    -&nbsp;     * @param objectName      the name of the object
    -&nbsp;     * @param attributeName   the name of the object&#39;s attribute
    -&nbsp;     */
    -<b class="fc">&nbsp;    public JmxAttributeGauge(MBeanServerConnection mBeanServerConn, ObjectName objectName, String attributeName) {</b>
    -<b class="fc">&nbsp;        this.mBeanServerConn = mBeanServerConn;</b>
    -<b class="fc">&nbsp;        this.objectName = objectName;</b>
    -<b class="fc">&nbsp;        this.attributeName = attributeName;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Object getValue() {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return mBeanServerConn.getAttribute(getObjectName(), attributeName);</b>
    -<b class="fc">&nbsp;        } catch (IOException | JMException e) {</b>
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private ObjectName getObjectName() throws IOException {
    -<b class="fc">&nbsp;        if (objectName.isPattern()) {</b>
    -<b class="fc">&nbsp;            Set&lt;ObjectName&gt; foundNames = mBeanServerConn.queryNames(objectName, null);</b>
    -<b class="fc">&nbsp;            if (foundNames.size() == 1) {</b>
    -<b class="fc">&nbsp;                return foundNames.iterator().next();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return objectName;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-8.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-8.html
    deleted file mode 100644
    index 34b32742d0..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-8.html
    +++ /dev/null
    @@ -1,155 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JvmAttributeGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: JvmAttributeGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">JvmAttributeGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.RuntimeMXBean;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the JVM name, vendor, and uptime.
    -&nbsp; */
    -&nbsp;public class JvmAttributeGaugeSet implements MetricSet {
    -&nbsp;    private final RuntimeMXBean runtime;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges.
    -&nbsp;     */
    -&nbsp;    public JvmAttributeGaugeSet() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getRuntimeMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges with the given {@link RuntimeMXBean}.
    -&nbsp;     *
    -&nbsp;     * @param runtime JVM management interface with access to system properties
    -&nbsp;     */
    -<b class="fc">&nbsp;    public JvmAttributeGaugeSet(RuntimeMXBean runtime) {</b>
    -<b class="fc">&nbsp;        this.runtime = runtime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;name&quot;, (Gauge&lt;String&gt;) runtime::getName);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;vendor&quot;, (Gauge&lt;String&gt;) () -&gt; String.format(Locale.US,</b>
    -&nbsp;                &quot;%s %s %s (%s)&quot;,
    -<b class="fc">&nbsp;                runtime.getVmVendor(),</b>
    -<b class="fc">&nbsp;                runtime.getVmName(),</b>
    -<b class="fc">&nbsp;                runtime.getVmVersion(),</b>
    -<b class="fc">&nbsp;                runtime.getSpecVersion()));</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;uptime&quot;, (Gauge&lt;Long&gt;) runtime::getUptime);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-9.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-9.html
    deleted file mode 100644
    index 9e27a5464e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-9.html
    +++ /dev/null
    @@ -1,274 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MemoryUsageGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MemoryUsageGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MemoryUsageGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (37/37)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MemoryUsageGaugeSet$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MemoryUsageGaugeSet$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MemoryUsageGaugeSet$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.MemoryMXBean;
    -&nbsp;import java.lang.management.MemoryPoolMXBean;
    -&nbsp;import java.lang.management.MemoryUsage;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for JVM memory usage, including stats on heap vs. non-heap memory, plus
    -&nbsp; * GC-specific memory pools.
    -&nbsp; */
    -<b class="fc">&nbsp;public class MemoryUsageGaugeSet implements MetricSet {</b>
    -<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    -&nbsp;
    -&nbsp;    private final MemoryMXBean mxBean;
    -&nbsp;    private final List&lt;MemoryPoolMXBean&gt; memoryPools;
    -&nbsp;
    -&nbsp;    public MemoryUsageGaugeSet() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getMemoryMXBean(), ManagementFactory.getMemoryPoolMXBeans());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MemoryUsageGaugeSet(MemoryMXBean mxBean,
    -<b class="fc">&nbsp;                               Collection&lt;MemoryPoolMXBean&gt; memoryPools) {</b>
    -<b class="fc">&nbsp;        this.mxBean = mxBean;</b>
    -<b class="fc">&nbsp;        this.memoryPools = new ArrayList&lt;&gt;(memoryPools);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;total.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getInit() +</b>
    -<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getInit());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;total.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getUsed() +</b>
    -<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getUsed());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;total.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getMax() == -1 ?</b>
    -<b class="fc">&nbsp;                -1 : mxBean.getHeapMemoryUsage().getMax() + mxBean.getNonHeapMemoryUsage().getMax());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;total.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getCommitted() +</b>
    -<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getCommitted());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getInit());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getUsed());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getMax());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getCommitted());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.usage&quot;, new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="fc">&nbsp;                final MemoryUsage usage = mxBean.getHeapMemoryUsage();</b>
    -<b class="fc">&nbsp;                return Ratio.of(usage.getUsed(), usage.getMax());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getInit());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getUsed());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getMax());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getCommitted());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.usage&quot;, new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="fc">&nbsp;                final MemoryUsage usage = mxBean.getNonHeapMemoryUsage();</b>
    -<b class="fc">&nbsp;                return Ratio.of(usage.getUsed(), usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        for (final MemoryPoolMXBean pool : memoryPools) {</b>
    -<b class="fc">&nbsp;            final String poolName = name(&quot;pools&quot;, WHITESPACE.matcher(pool.getName()).replaceAll(&quot;-&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;usage&quot;), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="fc">&nbsp;                    MemoryUsage usage = pool.getUsage();</b>
    -<b class="fc">&nbsp;                    return Ratio.of(usage.getUsed(),</b>
    -<b class="fc">&nbsp;                            usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;max&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getMax());</b>
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;used&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getUsed());</b>
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;committed&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getCommitted());</b>
    -&nbsp;
    -&nbsp;            // Only register GC usage metrics if the memory pool supports usage statistics.
    -<b class="fc">&nbsp;            if (pool.getCollectionUsage() != null) {</b>
    -<b class="fc">&nbsp;                gauges.put(name(poolName, &quot;used-after-gc&quot;), (Gauge&lt;Long&gt;) () -&gt;</b>
    -<b class="fc">&nbsp;                        pool.getCollectionUsage().getUsed());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;init&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getInit());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-a.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-a.html
    deleted file mode 100644
    index edc61f807f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-a.html
    +++ /dev/null
    @@ -1,169 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDeadlockDetector</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDeadlockDetector (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDeadlockDetector</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashSet;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A utility class for detecting deadlocked threads.
    -&nbsp; */
    -&nbsp;public class ThreadDeadlockDetector {
    -&nbsp;    private static final int MAX_STACK_TRACE_DEPTH = 100;
    -&nbsp;
    -&nbsp;    private final ThreadMXBean threads;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new detector.
    -&nbsp;     */
    -&nbsp;    public ThreadDeadlockDetector() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new detector using the given {@link ThreadMXBean}.
    -&nbsp;     *
    -&nbsp;     * @param threads a {@link ThreadMXBean}
    -&nbsp;     */
    -<b class="fc">&nbsp;    public ThreadDeadlockDetector(ThreadMXBean threads) {</b>
    -<b class="fc">&nbsp;        this.threads = threads;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a set of diagnostic stack traces for any deadlocked threads. If no threads are
    -&nbsp;     * deadlocked, returns an empty set.
    -&nbsp;     *
    -&nbsp;     * @return stack traces for deadlocked threads or an empty set
    -&nbsp;     */
    -&nbsp;    public Set&lt;String&gt; getDeadlockedThreads() {
    -<b class="fc">&nbsp;        final long[] ids = threads.findDeadlockedThreads();</b>
    -<b class="fc">&nbsp;        if (ids != null) {</b>
    -<b class="fc">&nbsp;            final Set&lt;String&gt; deadlocks = new HashSet&lt;&gt;();</b>
    -<b class="fc">&nbsp;            for (ThreadInfo info : threads.getThreadInfo(ids, MAX_STACK_TRACE_DEPTH)) {</b>
    -<b class="fc">&nbsp;                final StringBuilder stackTrace = new StringBuilder();</b>
    -<b class="fc">&nbsp;                for (StackTraceElement element : info.getStackTrace()) {</b>
    -<b class="fc">&nbsp;                    stackTrace.append(&quot;\t at &quot;)</b>
    -<b class="fc">&nbsp;                            .append(element.toString())</b>
    -<b class="fc">&nbsp;                            .append(String.format(&quot;%n&quot;));</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                deadlocks.add(</b>
    -<b class="fc">&nbsp;                        String.format(&quot;%s locked on %s (owned by %s):%n%s&quot;,</b>
    -<b class="fc">&nbsp;                                info.getThreadName(),</b>
    -<b class="fc">&nbsp;                                info.getLockName(),</b>
    -<b class="fc">&nbsp;                                info.getLockOwnerName(),</b>
    -<b class="fc">&nbsp;                                stackTrace.toString()</b>
    -&nbsp;                        )
    -&nbsp;                );
    -&nbsp;            }
    -<b class="fc">&nbsp;            return Collections.unmodifiableSet(deadlocks);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return Collections.emptySet();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-b.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-b.html
    deleted file mode 100644
    index 7e31e2c5cd..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-b.html
    +++ /dev/null
    @@ -1,217 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDump</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDump (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDump</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.lang.management.LockInfo;
    -&nbsp;import java.lang.management.MonitorInfo;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A convenience class for getting a thread dump.
    -&nbsp; */
    -&nbsp;public class ThreadDump {
    -&nbsp;
    -&nbsp;    private final ThreadMXBean threadMXBean;
    -&nbsp;
    -<b class="fc">&nbsp;    public ThreadDump(ThreadMXBean threadMXBean) {</b>
    -<b class="fc">&nbsp;        this.threadMXBean = threadMXBean;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Dumps all of the threads&#39; current information, including synchronization, to an output stream.
    -&nbsp;     *
    -&nbsp;     * @param out an output stream
    -&nbsp;     */
    -&nbsp;    public void dump(OutputStream out) {
    -<b class="fc">&nbsp;        dump(true, true, out);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Dumps all of the threads&#39; current information, optionally including synchronization, to an output stream.
    -&nbsp;     *
    -&nbsp;     * Having control over including synchronization info allows using this method (and its wrappers, i.e.
    -&nbsp;     * ThreadDumpServlet) in environments where getting object monitor and/or ownable synchronizer usage is not
    -&nbsp;     * supported. It can also speed things up.
    -&nbsp;     *
    -&nbsp;     * See {@link ThreadMXBean#dumpAllThreads(boolean, boolean)}
    -&nbsp;     *
    -&nbsp;     * @param lockedMonitors dump all locked monitors if true
    -&nbsp;     * @param lockedSynchronizers dump all locked ownable synchronizers if true
    -&nbsp;     * @param out an output stream
    -&nbsp;     */
    -&nbsp;    public void dump(boolean lockedMonitors, boolean lockedSynchronizers, OutputStream out) {
    -<b class="fc">&nbsp;        final ThreadInfo[] threads = this.threadMXBean.dumpAllThreads(lockedMonitors, lockedSynchronizers);</b>
    -<b class="fc">&nbsp;        final PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, UTF_8));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (int ti = threads.length - 1; ti &gt;= 0; ti--) {</b>
    -<b class="fc">&nbsp;            final ThreadInfo t = threads[ti];</b>
    -<b class="fc">&nbsp;            writer.printf(&quot;\&quot;%s\&quot; id=%d state=%s&quot;,</b>
    -<b class="fc">&nbsp;                    t.getThreadName(),</b>
    -<b class="fc">&nbsp;                    t.getThreadId(),</b>
    -<b class="fc">&nbsp;                    t.getThreadState());</b>
    -<b class="fc">&nbsp;            final LockInfo lock = t.getLockInfo();</b>
    -<b class="fc">&nbsp;            if (lock != null &amp;&amp; t.getThreadState() != Thread.State.BLOCKED) {</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;%n    - waiting on &lt;0x%08x&gt; (a %s)&quot;,</b>
    -<b class="fc">&nbsp;                        lock.getIdentityHashCode(),</b>
    -<b class="fc">&nbsp;                        lock.getClassName());</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;%n    - locked &lt;0x%08x&gt; (a %s)&quot;,</b>
    -<b class="fc">&nbsp;                        lock.getIdentityHashCode(),</b>
    -<b class="fc">&nbsp;                        lock.getClassName());</b>
    -<b class="fc">&nbsp;            } else if (lock != null &amp;&amp; t.getThreadState() == Thread.State.BLOCKED) {</b>
    -<b class="nc">&nbsp;                writer.printf(&quot;%n    - waiting to lock &lt;0x%08x&gt; (a %s)&quot;,</b>
    -<b class="nc">&nbsp;                        lock.getIdentityHashCode(),</b>
    -<b class="nc">&nbsp;                        lock.getClassName());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (t.isSuspended()) {</b>
    -<b class="nc">&nbsp;                writer.print(&quot; (suspended)&quot;);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (t.isInNative()) {</b>
    -<b class="fc">&nbsp;                writer.print(&quot; (running in native)&quot;);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            writer.println();</b>
    -<b class="fc">&nbsp;            if (t.getLockOwnerName() != null) {</b>
    -<b class="nc">&nbsp;                writer.printf(&quot;     owned by %s id=%d%n&quot;, t.getLockOwnerName(), t.getLockOwnerId());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final StackTraceElement[] elements = t.getStackTrace();</b>
    -<b class="fc">&nbsp;            final MonitorInfo[] monitors = t.getLockedMonitors();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (int i = 0; i &lt; elements.length; i++) {</b>
    -<b class="fc">&nbsp;                final StackTraceElement element = elements[i];</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;    at %s%n&quot;, element);</b>
    -<b class="fc">&nbsp;                for (int j = 1; j &lt; monitors.length; j++) {</b>
    -<b class="nc">&nbsp;                    final MonitorInfo monitor = monitors[j];</b>
    -<b class="nc">&nbsp;                    if (monitor.getLockedStackDepth() == i) {</b>
    -<b class="nc">&nbsp;                        writer.printf(&quot;      - locked %s%n&quot;, monitor);</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -<b class="fc">&nbsp;            writer.println();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final LockInfo[] locks = t.getLockedSynchronizers();</b>
    -<b class="fc">&nbsp;            if (locks.length &gt; 0) {</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;    Locked synchronizers: count = %d%n&quot;, locks.length);</b>
    -<b class="fc">&nbsp;                for (LockInfo l : locks) {</b>
    -<b class="fc">&nbsp;                    writer.printf(&quot;      - %s%n&quot;, l);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                writer.println();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        writer.println();</b>
    -<b class="fc">&nbsp;        writer.flush();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-c.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-c.html
    deleted file mode 100644
    index e237c23a66..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-19/sources/source-c.html
    +++ /dev/null
    @@ -1,185 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadStatesGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadStatesGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadStatesGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the number of threads in their various states and deadlock detection.
    -&nbsp; */
    -&nbsp;public class ThreadStatesGaugeSet implements MetricSet {
    -&nbsp;
    -&nbsp;    // do not compute stack traces.
    -&nbsp;    private final static int STACK_TRACE_DEPTH = 0;
    -&nbsp;
    -&nbsp;    private final ThreadMXBean threads;
    -&nbsp;    private final ThreadDeadlockDetector deadlockDetector;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the default MXBeans.
    -&nbsp;     */
    -&nbsp;    public ThreadStatesGaugeSet() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the given MXBean and detector.
    -&nbsp;     *
    -&nbsp;     * @param threads          a thread MXBean
    -&nbsp;     * @param deadlockDetector a deadlock detector
    -&nbsp;     */
    -&nbsp;    public ThreadStatesGaugeSet(ThreadMXBean threads,
    -<b class="fc">&nbsp;                                ThreadDeadlockDetector deadlockDetector) {</b>
    -<b class="fc">&nbsp;        this.threads = threads;</b>
    -<b class="fc">&nbsp;        this.deadlockDetector = deadlockDetector;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (final Thread.State state : Thread.State.values()) {</b>
    -<b class="fc">&nbsp;            gauges.put(name(state.toString().toLowerCase(), &quot;count&quot;),</b>
    -<b class="fc">&nbsp;                    (Gauge&lt;Object&gt;) () -&gt; getThreadCount(state));</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;count&quot;, (Gauge&lt;Integer&gt;) threads::getThreadCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;daemon.count&quot;, (Gauge&lt;Integer&gt;) threads::getDaemonThreadCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;peak.count&quot;, (Gauge&lt;Integer&gt;) threads::getPeakThreadCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;total_started.count&quot;, (Gauge&lt;Long&gt;) threads::getTotalStartedThreadCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;deadlock.count&quot;, (Gauge&lt;Integer&gt;) () -&gt; deadlockDetector.getDeadlockedThreads().size());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;deadlocks&quot;, (Gauge&lt;Set&lt;String&gt;&gt;) deadlockDetector::getDeadlockedThreads);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private int getThreadCount(Thread.State state) {
    -<b class="fc">&nbsp;        final ThreadInfo[] allThreads = getThreadInfo();</b>
    -<b class="fc">&nbsp;        int count = 0;</b>
    -<b class="fc">&nbsp;        for (ThreadInfo info : allThreads) {</b>
    -<b class="fc">&nbsp;            if (info != null &amp;&amp; info.getThreadState() == state) {</b>
    -<b class="fc">&nbsp;                count++;</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return count;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    ThreadInfo[] getThreadInfo() {
    -<b class="fc">&nbsp;        return threads.getThreadInfo(threads.getAllThreadIds(), STACK_TRACE_DEPTH);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index.html
    deleted file mode 100644
    index 6780c843b3..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index fc1fc5cbae..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 7a73ae5dca..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 5fa996a33c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 3eb50b995f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_LINE.html
    deleted file mode 100644
    index cba774648f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index e643386c43..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 237567bade..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 6c5758d2f0..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index c520109875..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/sources/source-1.html
    deleted file mode 100644
    index a4d983e113..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1a/sources/source-1.html
    +++ /dev/null
    @@ -1,268 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.log4j2</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.log4j2)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (29/30)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedAppender$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.log4j2;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import org.apache.logging.log4j.core.Appender;
    -&nbsp;import org.apache.logging.log4j.core.Filter;
    -&nbsp;import org.apache.logging.log4j.core.Layout;
    -&nbsp;import org.apache.logging.log4j.core.LogEvent;
    -&nbsp;import org.apache.logging.log4j.core.appender.AbstractAppender;
    -&nbsp;import org.apache.logging.log4j.core.config.plugins.Plugin;
    -&nbsp;import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
    -&nbsp;import org.apache.logging.log4j.core.config.plugins.PluginFactory;
    -&nbsp;
    -&nbsp;import java.io.Serializable;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Log4J 2.x {@link Appender} which has seven meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;@Plugin(name = &quot;MetricsAppender&quot;, category = &quot;Core&quot;, elementType = &quot;appender&quot;)
    -&nbsp;public class InstrumentedAppender extends AbstractAppender {
    -&nbsp;
    -&nbsp;    private transient final MetricRegistry registry;
    -&nbsp;
    -&nbsp;    private transient Meter all;
    -&nbsp;    private transient Meter trace;
    -&nbsp;    private transient Meter debug;
    -&nbsp;    private transient Meter info;
    -&nbsp;    private transient Meter warn;
    -&nbsp;    private transient Meter error;
    -&nbsp;    private transient Meter fatal;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName     the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     * @param filter           The Filter to associate with the Appender.
    -&nbsp;     * @param layout           The layout to use to format the event.
    -&nbsp;     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
    -&nbsp;     *                         logged and then passed to the application.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName, Filter filter, Layout&lt;? extends Serializable&gt; layout, boolean ignoreExceptions) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName), filter, layout, ignoreExceptions);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, null, null, true);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry         the metric registry
    -&nbsp;     * @param filter           The Filter to associate with the Appender.
    -&nbsp;     * @param layout           The layout to use to format the event.
    -&nbsp;     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
    -&nbsp;     *                         logged and then passed to the application.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(MetricRegistry registry, Filter filter, Layout&lt;? extends Serializable&gt; layout, boolean ignoreExceptions) {
    -<b class="fc">&nbsp;        super(name(Appender.class), filter, layout, ignoreExceptions);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given appender name and registry.
    -&nbsp;     *
    -&nbsp;     * @param appenderName The name of the appender.
    -&nbsp;     * @param registry     the metric registry
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String appenderName, MetricRegistry registry) {
    -<b class="fc">&nbsp;        super(appenderName, null, null, true);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @PluginFactory
    -&nbsp;    public static InstrumentedAppender createAppender(
    -&nbsp;            @PluginAttribute(&quot;name&quot;) String name,
    -&nbsp;            @PluginAttribute(value = &quot;registryName&quot;, defaultString = &quot;log4j2Metrics&quot;) String registry) {
    -<b class="fc">&nbsp;        return new InstrumentedAppender(name, SharedMetricRegistries.getOrCreate(registry));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        this.fatal = registry.meter(name(getName(), &quot;fatal&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void append(LogEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().getStandardLevel()) {</b>
    -&nbsp;            case TRACE:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case DEBUG:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case INFO:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case WARN:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case ERROR:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case FATAL:
    -<b class="fc">&nbsp;                fatal.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index.html
    deleted file mode 100644
    index 5a3d12507e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index a1fc631585..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index e123240efa..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 112d97f0fb..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index d520fc2f15..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 5f899f26fa..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 4c30c331ba..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 8de9d15a24..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 0866e4f5ab..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 2b6691f955..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/sources/source-1.html
    deleted file mode 100644
    index c5c12696de..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1b/sources/source-1.html
    +++ /dev/null
    @@ -1,195 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.logback</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.logback)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.logback;
    -&nbsp;
    -&nbsp;import ch.qos.logback.classic.Level;
    -&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    -&nbsp;import ch.qos.logback.core.Appender;
    -&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    -&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    -&nbsp;
    -&nbsp;    private Meter all;
    -&nbsp;    private Meter trace;
    -&nbsp;    private Meter debug;
    -&nbsp;    private Meter info;
    -&nbsp;    private Meter warn;
    -&nbsp;    private Meter error;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender() {
    -<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void append(ILoggingEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    -&nbsp;            case Level.TRACE_INT:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.DEBUG_INT:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.INFO_INT:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.WARN_INT:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.ERROR_INT:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index.html
    deleted file mode 100644
    index 3a2c05cca6..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index ad85a52516..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index a1c0221180..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 1053f20165..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index fb889fcee8..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_LINE.html
    deleted file mode 100644
    index de0981566e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index bc148699f6..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 7c4425da92..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 1fa56b8ac9..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 1eba8d3d44..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-1.html
    deleted file mode 100644
    index c439ea488b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-1.html
    +++ /dev/null
    @@ -1,387 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AbstractInstrumentedFilter (com.codahale.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AbstractInstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/45)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.Filter;
    -&nbsp;import javax.servlet.FilterChain;
    -&nbsp;import javax.servlet.FilterConfig;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.ServletRequest;
    -&nbsp;import javax.servlet.ServletResponse;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import javax.servlet.http.HttpServletResponseWrapper;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Map.Entry;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    -&nbsp; * codes being returned.
    -&nbsp; */
    -<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    -&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    -&nbsp;
    -&nbsp;    private final String otherMetricName;
    -&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    -&nbsp;    private final String registryAttribute;
    -&nbsp;
    -&nbsp;    // initialized after call of init method
    -&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    -&nbsp;    private Meter otherMeter;
    -&nbsp;    private Meter timeoutsMeter;
    -&nbsp;    private Meter errorsMeter;
    -&nbsp;    private Counter activeRequests;
    -&nbsp;    private Timer requestTimer;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     *
    -&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    -&nbsp;     *                               servlet context
    -&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    -&nbsp;     *                               interested in.
    -&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    -&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    -<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    -<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    -<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    -<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    -<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    -<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    -<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    -<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    -<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    -<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    -<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    -<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    -<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    -<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    -&nbsp;        final MetricRegistry metricsRegistry;
    -&nbsp;
    -<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    -<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    -<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return metricsRegistry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void doFilter(ServletRequest request,
    -&nbsp;                         ServletResponse response,
    -&nbsp;                         FilterChain chain) throws IOException, ServletException {
    -<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    -&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    -<b class="nc">&nbsp;        activeRequests.inc();</b>
    -<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    -<b class="nc">&nbsp;        boolean error = false;</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    -<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    -<b class="nc">&nbsp;            error = true;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                if (error) {</b>
    -<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void markMeterForStatusCode(int status) {
    -<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    -<b class="nc">&nbsp;        if (metric != null) {</b>
    -<b class="nc">&nbsp;            metric.mark();</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            otherMeter.mark();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    -&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    -<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    -&nbsp;
    -&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    -<b class="nc">&nbsp;            super(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc, String msg) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void setStatus(int sc) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;        public void setStatus(int sc, String sm) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc, sm);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int getStatus() {
    -<b class="nc">&nbsp;            return httpStatus;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class AsyncResultListener implements AsyncListener {
    -&nbsp;        private Timer.Context context;
    -<b class="nc">&nbsp;        private boolean done = false;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    -<b class="nc">&nbsp;            this.context = context;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            if (!done) {</b>
    -<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            errorsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -&nbsp;
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-2.html
    deleted file mode 100644
    index 61852a1eec..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-2.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilter (com.codahale.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    -&nbsp;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    -&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    -&nbsp; * &lt;pre&gt;{@code
    -&nbsp; * &lt;filter&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;filter-class&gt;com.codahale.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    -&nbsp; * &lt;/filter&gt;
    -&nbsp; * &lt;filter-mapping&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    -&nbsp; * &lt;/filter-mapping&gt;
    -&nbsp; * }&lt;/pre&gt;
    -&nbsp; */
    -&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    -<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    -&nbsp;    private static final int OK = 200;
    -&nbsp;    private static final int CREATED = 201;
    -&nbsp;    private static final int NO_CONTENT = 204;
    -&nbsp;    private static final int BAD_REQUEST = 400;
    -&nbsp;    private static final int NOT_FOUND = 404;
    -&nbsp;    private static final int SERVER_ERROR = 500;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     */
    -&nbsp;    public InstrumentedFilter() {
    -<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    -<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    -<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-3.html
    deleted file mode 100644
    index 52fd4a4abd..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1c/sources/source-3.html
    +++ /dev/null
    @@ -1,131 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilterContextListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilterContextListener (com.codahale.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilterContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletContextEvent;
    -&nbsp;import javax.servlet.ServletContextListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    -&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    -&nbsp; * application.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    -&nbsp;    /**
    -&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;     */
    -&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    -<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index.html
    deleted file mode 100644
    index f90e0f4a0a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 00509d3c6b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 8c76b3768e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 11dced7d54..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index ac850f25f6..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_LINE.html
    deleted file mode 100644
    index e011f93f65..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index c9f1a249e6..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 1acc6dbc2b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index e66f46202d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index a6756cb3f0..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-1.html
    deleted file mode 100644
    index a654398afa..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-1.html
    +++ /dev/null
    @@ -1,293 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AdminServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AdminServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AdminServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletConfig;
    -&nbsp;import javax.servlet.ServletContext;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.text.MessageFormat;
    -&nbsp;
    -<b class="fc">&nbsp;public class AdminServlet extends HttpServlet {</b>
    -&nbsp;    public static final String DEFAULT_HEALTHCHECK_URI = &quot;/healthcheck&quot;;
    -&nbsp;    public static final String DEFAULT_METRICS_URI = &quot;/metrics&quot;;
    -&nbsp;    public static final String DEFAULT_PING_URI = &quot;/ping&quot;;
    -&nbsp;    public static final String DEFAULT_THREADS_URI = &quot;/threads&quot;;
    -&nbsp;    public static final String DEFAULT_CPU_PROFILE_URI = &quot;/pprof&quot;;
    -&nbsp;
    -&nbsp;    public static final String METRICS_ENABLED_PARAM_KEY = &quot;metrics-enabled&quot;;
    -&nbsp;    public static final String METRICS_URI_PARAM_KEY = &quot;metrics-uri&quot;;
    -&nbsp;    public static final String PING_ENABLED_PARAM_KEY = &quot;ping-enabled&quot;;
    -&nbsp;    public static final String PING_URI_PARAM_KEY = &quot;ping-uri&quot;;
    -&nbsp;    public static final String THREADS_ENABLED_PARAM_KEY = &quot;threads-enabled&quot;;
    -&nbsp;    public static final String THREADS_URI_PARAM_KEY = &quot;threads-uri&quot;;
    -&nbsp;    public static final String HEALTHCHECK_ENABLED_PARAM_KEY = &quot;healthcheck-enabled&quot;;
    -&nbsp;    public static final String HEALTHCHECK_URI_PARAM_KEY = &quot;healthcheck-uri&quot;;
    -&nbsp;    public static final String SERVICE_NAME_PARAM_KEY = &quot;service-name&quot;;
    -&nbsp;    public static final String CPU_PROFILE_ENABLED_PARAM_KEY = &quot;cpu-profile-enabled&quot;;
    -&nbsp;    public static final String CPU_PROFILE_URI_PARAM_KEY = &quot;cpu-profile-uri&quot;;
    -&nbsp;
    -&nbsp;    private static final String BASE_TEMPLATE =
    -&nbsp;            &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot;%n&quot; +
    -&nbsp;                    &quot;        \&quot;http://www.w3.org/TR/html4/loose.dtd\&quot;&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;html&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;head&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;title&gt;Metrics{10}&lt;/title&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/head&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;body&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;h1&gt;Operational Menu{10}&lt;/h1&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;ul&gt;%n&quot; +
    -&nbsp;                    &quot;%s&quot; +
    -&nbsp;                    &quot;  &lt;/ul&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/body&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/html&gt;&quot;;
    -&nbsp;    private static final String METRICS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{0}{1}?pretty=true\&quot;&gt;Metrics&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;    private static final String PING_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{2}{3}\&quot;&gt;Ping&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String THREADS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{4}{5}\&quot;&gt;Threads&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String HEALTHCHECK_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{6}{7}?pretty=true\&quot;&gt;Healthcheck&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String CPU_PROFILE_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}\&quot;&gt;CPU Profile&lt;/a&gt;&lt;/li&gt;%n&quot; +
    -&nbsp;            &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}?state=blocked\&quot;&gt;CPU Contention&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;
    -&nbsp;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/html&quot;;
    -&nbsp;    private static final long serialVersionUID = -2850794040708785318L;
    -&nbsp;
    -&nbsp;    private transient HealthCheckServlet healthCheckServlet;
    -&nbsp;    private transient MetricsServlet metricsServlet;
    -&nbsp;    private transient PingServlet pingServlet;
    -&nbsp;    private transient ThreadDumpServlet threadDumpServlet;
    -&nbsp;    private transient CpuProfileServlet cpuProfileServlet;
    -&nbsp;    private transient boolean metricsEnabled;
    -&nbsp;    private transient String metricsUri;
    -&nbsp;    private transient boolean pingEnabled;
    -&nbsp;    private transient String pingUri;
    -&nbsp;    private transient boolean threadsEnabled;
    -&nbsp;    private transient String threadsUri;
    -&nbsp;    private transient boolean healthcheckEnabled;
    -&nbsp;    private transient String healthcheckUri;
    -&nbsp;    private transient boolean cpuProfileEnabled;
    -&nbsp;    private transient String cpuProfileUri;
    -&nbsp;    private transient String serviceName;
    -&nbsp;    private transient String pageContentTemplate;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        final StringBuilder servletLinks = new StringBuilder();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.metricsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.metricsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(METRICS_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.metricsServlet = new MetricsServlet();</b>
    -<b class="fc">&nbsp;        metricsServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.pingEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.pingEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(PING_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.pingServlet = new PingServlet();</b>
    -<b class="fc">&nbsp;        pingServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.threadsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.threadsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(THREADS_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.threadDumpServlet = new ThreadDumpServlet();</b>
    -<b class="fc">&nbsp;        threadDumpServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.healthcheckEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.healthcheckEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(HEALTHCHECK_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.healthCheckServlet = new HealthCheckServlet();</b>
    -<b class="fc">&nbsp;        healthCheckServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.cpuProfileEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.cpuProfileEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(CPU_PROFILE_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.cpuProfileServlet = new CpuProfileServlet();</b>
    -<b class="fc">&nbsp;        cpuProfileServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);</b>
    -<b class="fc">&nbsp;        this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);</b>
    -<b class="fc">&nbsp;        this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);</b>
    -<b class="fc">&nbsp;        this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);</b>
    -<b class="fc">&nbsp;        this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);</b>
    -<b class="fc">&nbsp;        this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String path = req.getContextPath() + req.getServletPath();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,</b>
    -&nbsp;                    threadsUri, path, healthcheckUri, path, cpuProfileUri,
    -<b class="fc">&nbsp;                    serviceName == null ? &quot;&quot; : &quot; (&quot; + serviceName + &quot;)&quot;));</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String uri = req.getPathInfo();</b>
    -<b class="fc">&nbsp;        if (uri == null || uri.equals(&quot;/&quot;)) {</b>
    -<b class="fc">&nbsp;            super.service(req, resp);</b>
    -<b class="nc">&nbsp;        } else if (uri.equals(healthcheckUri)) {</b>
    -<b class="nc">&nbsp;            if (healthcheckEnabled) {</b>
    -<b class="nc">&nbsp;                healthCheckServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.startsWith(metricsUri)) {</b>
    -<b class="nc">&nbsp;            if (metricsEnabled) {</b>
    -<b class="nc">&nbsp;                metricsServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(pingUri)) {</b>
    -<b class="nc">&nbsp;            if (pingEnabled) {</b>
    -<b class="nc">&nbsp;                pingServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(threadsUri)) {</b>
    -<b class="nc">&nbsp;            if (threadsEnabled) {</b>
    -<b class="nc">&nbsp;                threadDumpServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(cpuProfileUri)) {</b>
    -<b class="nc">&nbsp;            if (cpuProfileEnabled) {</b>
    -<b class="nc">&nbsp;                cpuProfileServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static String getParam(String initParam, String defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : initParam;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-2.html
    deleted file mode 100644
    index 9febf64ef3..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-2.html
    +++ /dev/null
    @@ -1,183 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CpuProfileServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CpuProfileServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CpuProfileServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.concurrent.locks.Lock;
    -&nbsp;import java.util.concurrent.locks.ReentrantLock;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import com.papertrail.profiler.CpuProfile;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a &lt;a href=&quot;https://github.com/gperftools/gperftools&quot;&gt;pprof&lt;/a&gt; parseable response.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CpuProfileServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = -668666696530287501L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;pprof/raw&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -<b class="fc">&nbsp;    private final Lock lock = new ReentrantLock();</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -&nbsp;
    -<b class="fc">&nbsp;        int duration = 10;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;duration&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                duration = Integer.parseInt(req.getParameter(&quot;duration&quot;));</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                duration = 10;</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        int frequency = 100;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;frequency&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                frequency = Integer.parseInt(req.getParameter(&quot;frequency&quot;));</b>
    -<b class="nc">&nbsp;                frequency = Math.min(Math.max(frequency, 1), 1000);</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                frequency = 100;</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        final Thread.State state;
    -<b class="fc">&nbsp;        if (&quot;blocked&quot;.equalsIgnoreCase(req.getParameter(&quot;state&quot;))) {</b>
    -<b class="nc">&nbsp;            state = Thread.State.BLOCKED;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            state = Thread.State.RUNNABLE;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            doProfile(output, duration, frequency, state);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
    -<b class="fc">&nbsp;        if (lock.tryLock()) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),</b>
    -&nbsp;                        frequency, state);
    -<b class="fc">&nbsp;                if (profile == null) {</b>
    -<b class="nc">&nbsp;                    throw new RuntimeException(&quot;could not create CpuProfile&quot;);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                profile.writeGoogleProfile(out);</b>
    -&nbsp;                return;
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                lock.unlock();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        throw new RuntimeException(&quot;Only one profile request may be active at a time&quot;);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-3.html
    deleted file mode 100644
    index 2866bc453a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-3.html
    +++ /dev/null
    @@ -1,325 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.codahale.metrics.health.HealthCheckFilter;
    -&nbsp;import com.codahale.metrics.health.HealthCheckRegistry;
    -&nbsp;import com.codahale.metrics.json.HealthCheckModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletConfig;
    -&nbsp;import javax.servlet.ServletContext;
    -&nbsp;import javax.servlet.ServletContextEvent;
    -&nbsp;import javax.servlet.ServletContextListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;
    -&nbsp;public class HealthCheckServlet extends HttpServlet {
    -<b class="nc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract HealthCheckRegistry getHealthCheckRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
    -&nbsp;         * if the health checks should be run in the servlet worker thread.
    -&nbsp;         */
    -&nbsp;        protected ExecutorService getExecutorService() {
    -&nbsp;            // don&#39;t use a thread pool by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
    -&nbsp;         * or {@link HealthCheckFilter#ALL} if the default should be used.
    -&nbsp;         */
    -&nbsp;        protected HealthCheckFilter getHealthCheckFilter() {
    -<b class="nc">&nbsp;            return HealthCheckFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ObjectMapper} that shall be used to render health checks,
    -&nbsp;         * or {@code null} if the default object mapper should be used.
    -&nbsp;         */
    -&nbsp;        protected ObjectMapper getObjectMapper() {
    -&nbsp;            // don&#39;t use an object mapper by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="nc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + &quot;.executor&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + &quot;.healthCheckFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + &quot;.mapper&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + &quot;.httpStatusIndicator&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -8432996484889177321L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;    private static final String HTTP_STATUS_INDICATOR_PARAM = &quot;httpStatusIndicator&quot;;
    -&nbsp;
    -&nbsp;    private transient HealthCheckRegistry registry;
    -&nbsp;    private transient ExecutorService executorService;
    -&nbsp;    private transient HealthCheckFilter filter;
    -&nbsp;    private transient ObjectMapper mapper;
    -&nbsp;    private transient boolean httpStatusIndicator;
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet(HealthCheckRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof HealthCheckRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (HealthCheckRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a HealthCheckRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);</b>
    -<b class="fc">&nbsp;        if (executorAttr instanceof ExecutorService) {</b>
    -<b class="fc">&nbsp;            this.executorService = (ExecutorService) executorAttr;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);</b>
    -<b class="fc">&nbsp;        if (filterAttr instanceof HealthCheckFilter) {</b>
    -<b class="fc">&nbsp;            filter = (HealthCheckFilter) filterAttr;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = HealthCheckFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);</b>
    -<b class="fc">&nbsp;        if (mapperAttr instanceof ObjectMapper) {</b>
    -<b class="fc">&nbsp;            this.mapper = (ObjectMapper) mapperAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.mapper = new ObjectMapper();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.mapper.registerModule(new HealthCheckModule());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);</b>
    -<b class="fc">&nbsp;        if (httpStatusIndicatorAttr instanceof Boolean) {</b>
    -<b class="nc">&nbsp;            this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.httpStatusIndicator = true;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -<b class="fc">&nbsp;        super.destroy();</b>
    -<b class="fc">&nbsp;        registry.shutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = runHealthChecks();</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (results.isEmpty()) {</b>
    -<b class="fc">&nbsp;            resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);</b>
    -<b class="fc">&nbsp;            final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);</b>
    -<b class="fc">&nbsp;            final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;</b>
    -<b class="fc">&nbsp;            if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {</b>
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            getWriter(req).writeValue(output, results);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    -<b class="fc">&nbsp;        if (executorService == null) {</b>
    -<b class="nc">&nbsp;            return registry.runHealthChecks(filter);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return registry.runHealthChecks(executorService, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static boolean isAllHealthy(Map&lt;String, HealthCheck.Result&gt; results) {
    -<b class="fc">&nbsp;        for (HealthCheck.Result result : results.values()) {</b>
    -<b class="fc">&nbsp;            if (!result.isHealthy()) {</b>
    -<b class="fc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    // visible for testing
    -&nbsp;    ObjectMapper getMapper() {
    -<b class="fc">&nbsp;        return mapper;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-4.html
    deleted file mode 100644
    index 30ce5e2e70..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-4.html
    +++ /dev/null
    @@ -1,329 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (44/44)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetricsServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (14/18)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletConfig;
    -&nbsp;import javax.servlet.ServletContext;
    -&nbsp;import javax.servlet.ServletContextEvent;
    -&nbsp;import javax.servlet.ServletContextListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.json.MetricsModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;import com.fasterxml.jackson.databind.util.JSONPObject;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A servlet which returns the metrics in a given registry as an {@code application/json} response.
    -&nbsp; */
    -&nbsp;public class MetricsServlet extends HttpServlet {
    -&nbsp;    /**
    -&nbsp;     * An abstract {@link ServletContextListener} which allows you to programmatically inject the
    -&nbsp;     * {@link MetricRegistry}, rate and duration units, and allowed origin for
    -&nbsp;     * {@link MetricsServlet}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
    -&nbsp;         * default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getRateUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getDurationUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@code Access-Control-Allow-Origin} header value, if any.
    -&nbsp;         */
    -&nbsp;        protected String getAllowedOrigin() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the name of the parameter used to specify the jsonp callback, if any.
    -&nbsp;         */
    -&nbsp;        protected String getJsonpCallbackParameter() {
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected MetricFilter getMetricFilter() {
    -&nbsp;            // use the default
    -<b class="fc">&nbsp;            return MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="fc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRICS_REGISTRY, getMetricRegistry());</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRIC_FILTER, getMetricFilter());</b>
    -<b class="fc">&nbsp;            if (getDurationUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getRateUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getAllowedOrigin() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getJsonpCallbackParameter() != null) {</b>
    -<b class="nc">&nbsp;                context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.rateUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.durationUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + &quot;.showSamples&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + &quot;.allowedOrigin&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + &quot;.metricFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + &quot;.jsonpCallback&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = 1049773947734939602L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;
    -&nbsp;    protected String allowedOrigin;
    -&nbsp;    protected String jsonpParamName;
    -&nbsp;    protected transient MetricRegistry registry;
    -&nbsp;    protected transient ObjectMapper mapper;
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(METRICS_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof MetricRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (MetricRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a MetricRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);</b>
    -<b class="fc">&nbsp;        this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        setupMetricsModule(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void setupMetricsModule(ServletContext context) {
    -<b class="fc">&nbsp;        final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));</b>
    -<b class="fc">&nbsp;        MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);</b>
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,</b>
    -&nbsp;                durationUnit,
    -&nbsp;                showSamples,
    -&nbsp;                filter));
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        if (allowedOrigin != null) {</b>
    -<b class="fc">&nbsp;            resp.setHeader(&quot;Access-Control-Allow-Origin&quot;, allowedOrigin);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            if (jsonpParamName != null &amp;&amp; req.getParameter(jsonpParamName) != null) {</b>
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, registry);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));</b>
    -<b class="fc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    -<b class="fc">&nbsp;            return defaultValue;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-5.html
    deleted file mode 100644
    index 550e0ad9ba..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-5.html
    +++ /dev/null
    @@ -1,134 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PingServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PingServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PingServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} {@code &quot;pong&quot;} response.
    -&nbsp; */
    -<b class="fc">&nbsp;public class PingServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = 3772654177231086757L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;    private static final String CONTENT = &quot;pong&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(CONTENT);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-6.html
    deleted file mode 100644
    index 43aa93f3b5..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1d/sources/source-6.html
    +++ /dev/null
    @@ -1,159 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDumpServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDumpServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDumpServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.jvm.ThreadDump;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
    -&nbsp; * the VM. Only responds to {@code GET} requests.
    -&nbsp; */
    -<b class="fc">&nbsp;public class ThreadDumpServlet extends HttpServlet {</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -2690343532336103046L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;
    -&nbsp;    private transient ThreadDump threadDump;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init() throws ServletException {
    -&nbsp;        try {
    -&nbsp;            // Some PaaS like Google App Engine blacklist java.lang.managament
    -<b class="fc">&nbsp;            this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());</b>
    -<b class="nc">&nbsp;        } catch (NoClassDefFoundError ncdfe) {</b>
    -<b class="nc">&nbsp;            this.threadDump = null; // we won&#39;t be able to provide thread dump</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final boolean includeMonitors = getParam(req.getParameter(&quot;monitors&quot;), true);</b>
    -<b class="fc">&nbsp;        final boolean includeSynchronizers = getParam(req.getParameter(&quot;synchronizers&quot;), true);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (threadDump == null) {</b>
    -<b class="nc">&nbsp;            resp.getWriter().println(&quot;Sorry your runtime environment does not allow to dump threads.&quot;);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            threadDump.dump(includeMonitors, includeSynchronizers, output);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Boolean getParam(String initParam, boolean defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index.html
    deleted file mode 100644
    index da871b3c62..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 571b16505a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 15a0407037..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 6e5fca734a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 9af739fcd7..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 88d343d17c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index fda4ce26b6..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 4c4ba418ae..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 2fec7f7d5c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index b2607e9912..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/sources/source-1.html
    deleted file mode 100644
    index eaa5136998..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1e/sources/source-1.html
    +++ /dev/null
    @@ -1,220 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsStatsCounter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.caffeine3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsStatsCounter (io.dropwizard.metrics.caffeine3)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsStatsCounter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;/*
    -&nbsp; * Copyright 2016 Ben Manes. All Rights Reserved.
    -&nbsp; *
    -&nbsp; * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    -&nbsp; * you may not use this file except in compliance with the License.
    -&nbsp; * You may obtain a copy of the License at
    -&nbsp; *
    -&nbsp; *     http://www.apache.org/licenses/LICENSE-2.0
    -&nbsp; *
    -&nbsp; * Unless required by applicable law or agreed to in writing, software
    -&nbsp; * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    -&nbsp; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -&nbsp; * See the License for the specific language governing permissions and
    -&nbsp; * limitations under the License.
    -&nbsp; */
    -&nbsp;package io.dropwizard.metrics.caffeine3;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;import java.util.EnumMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.github.benmanes.caffeine.cache.RemovalCause;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.CacheStats;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.StatsCounter;
    -&nbsp;import org.checkerframework.checker.index.qual.NonNegative;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link StatsCounter} instrumented with Dropwizard Metrics.
    -&nbsp; *
    -&nbsp; * @author ben.manes@gmail.com (Ben Manes)
    -&nbsp; * @author John Karp
    -&nbsp; */
    -&nbsp;public final class MetricsStatsCounter implements StatsCounter {
    -&nbsp;  private final Counter hitCount;
    -&nbsp;  private final Counter missCount;
    -&nbsp;  private final Timer loadSuccess;
    -&nbsp;  private final Timer loadFailure;
    -&nbsp;  private final Counter evictionWeight;
    -&nbsp;  private final EnumMap&lt;RemovalCause, Histogram&gt; evictionsWithCause;
    -&nbsp;
    -&nbsp;  // for implementing snapshot()
    -<b class="fc">&nbsp;  private final LongAdder totalLoadTime = new LongAdder();</b>
    -&nbsp;
    -&nbsp;  /**
    -&nbsp;   * Constructs an instance for use by a single cache.
    -&nbsp;   *
    -&nbsp;   * @param registry the registry of metric instances
    -&nbsp;   * @param metricsPrefix the prefix name for the metrics
    -&nbsp;   */
    -<b class="fc">&nbsp;  public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {</b>
    -<b class="fc">&nbsp;    requireNonNull(metricsPrefix);</b>
    -<b class="fc">&nbsp;    hitCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;hits&quot;));</b>
    -<b class="fc">&nbsp;    missCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;misses&quot;));</b>
    -<b class="fc">&nbsp;    loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-success&quot;));</b>
    -<b class="fc">&nbsp;    loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-failure&quot;));</b>
    -<b class="fc">&nbsp;    evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, &quot;evictions-weight&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    evictionsWithCause = new EnumMap&lt;&gt;(RemovalCause.class);</b>
    -<b class="fc">&nbsp;    for (RemovalCause cause : RemovalCause.values()) {</b>
    -<b class="fc">&nbsp;      evictionsWithCause.put(</b>
    -&nbsp;          cause,
    -<b class="fc">&nbsp;          registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;, cause.name())));</b>
    -&nbsp;    }
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordHits(int count) {
    -<b class="fc">&nbsp;    hitCount.inc(count);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordMisses(int count) {
    -<b class="fc">&nbsp;    missCount.inc(count);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadSuccess(long loadTime) {
    -<b class="fc">&nbsp;    loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadFailure(long loadTime) {
    -<b class="fc">&nbsp;    loadFailure.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordEviction(@NonNegative int weight, RemovalCause cause) {
    -<b class="fc">&nbsp;    evictionsWithCause.get(cause).update(weight);</b>
    -<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public CacheStats snapshot() {
    -<b class="fc">&nbsp;    return CacheStats.of(</b>
    -<b class="fc">&nbsp;        hitCount.getCount(),</b>
    -<b class="fc">&nbsp;        missCount.getCount(),</b>
    -<b class="fc">&nbsp;        loadSuccess.getCount(),</b>
    -<b class="fc">&nbsp;        loadFailure.getCount(),</b>
    -<b class="fc">&nbsp;        totalLoadTime.sum(),</b>
    -<b class="fc">&nbsp;        evictionsWithCause.values().stream().mapToLong(Histogram::getCount).sum(),</b>
    -<b class="fc">&nbsp;        evictionWeight.getCount());</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public String toString() {
    -<b class="nc">&nbsp;    return snapshot().toString();</b>
    -&nbsp;  }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index.html
    deleted file mode 100644
    index 907ba91e62..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index d49106d5c7..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index c5be4fe978..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index b8e34e9831..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index ccbb113c3e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 77b329253d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 2755079e0c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index aa90ba7813..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 795930bd95..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 1b2df9e361..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/sources/source-1.html
    deleted file mode 100644
    index 6609b0feeb..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/sources/source-1.html
    +++ /dev/null
    @@ -1,831 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jersey31</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (io.dropwizard.metrics.jersey31)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.1%
    -  </span>
    -  <span class="absValue">
    -    (82/89)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.2%
    -  </span>
    -  <span class="absValue">
    -    (16/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (28/28)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jersey31;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    -&nbsp;import com.codahale.metrics.annotation.Metered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import jakarta.ws.rs.core.Configuration;
    -&nbsp;import jakarta.ws.rs.ext.Provider;
    -&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    -&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    -&nbsp;import org.glassfish.jersey.server.model.Resource;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Annotation;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An application event listener that listens for Jersey application initialization to
    -&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    -&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    -&nbsp; * request events indicating that the method is about to be invoked, or just got done
    -&nbsp; * being invoked.
    -&nbsp; */
    -&nbsp;@Provider
    -&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    -&nbsp;    private static final String TOTAL = &quot;total&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metrics;
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Construct an application event listener using the given metrics registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    -&nbsp;     *
    -&nbsp;     * @param metrics a {@link MetricRegistry}
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    -<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters) {
    -<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters,
    -<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.metrics = metrics;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metric for a method annotated with the
    -&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    -&nbsp;     * and a cause for which the meter should be updated.
    -&nbsp;     */
    -&nbsp;    private static class ExceptionMeterMetric {
    -&nbsp;        public final Meter meter;
    -&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    -&nbsp;
    -&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    -&nbsp;                                    final ResourceMethod method,
    -<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    -<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    -<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    -<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    -<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metrics for a method annotated with the
    -&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    -&nbsp;     * different response codes
    -&nbsp;     */
    -&nbsp;    private static class ResponseMeterMetric {
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;        private final List&lt;Meter&gt; meters;
    -&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;        private final MetricRegistry metricRegistry;
    -&nbsp;        private final String metricName;
    -&nbsp;        private final ResponseMeteredLevel level;
    -&nbsp;
    -&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    -&nbsp;                                   final ResourceMethod method,
    -<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    -<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    -<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    -<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    -<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="fc">&nbsp;                    )) : Collections.emptyList();</b>
    -<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public void mark(int statusCode) {
    -<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;            return responseCodeMeters</b>
    -<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    -&nbsp;
    -&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    -&nbsp;        private final Clock clock;
    -&nbsp;        private final long start;
    -&nbsp;        private Timer.Context resourceMethodStartContext;
    -&nbsp;        private Timer.Context requestMatchedContext;
    -&nbsp;        private Timer.Context responseFiltersStartContext;
    -&nbsp;
    -<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    -<b class="fc">&nbsp;            this.timers = timers;</b>
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            start = clock.getTick();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            switch (event.getType()) {</b>
    -&nbsp;                case RESOURCE_METHOD_START:
    -<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case REQUEST_MATCHED:
    -<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESP_FILTERS_START:
    -<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESOURCE_METHOD_FINISHED:
    -<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    -<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case REQUEST_FILTERED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    -<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case RESP_FILTERS_FINISHED:
    -<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case FINISHED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;                        if (timer != null) {</b>
    -<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    -&nbsp;                        }
    -<b class="fc">&nbsp;                    }</b>
    -&nbsp;                    break;
    -&nbsp;                default:
    -&nbsp;                    break;
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(RequestEvent event) {
    -<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer.Context context(RequestEvent event) {
    -<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    -&nbsp;
    -<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    -<b class="fc">&nbsp;            this.meters = meters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    -<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    -<b class="fc">&nbsp;                if (meter != null) {</b>
    -<b class="fc">&nbsp;                    meter.mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    -<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    -<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    -<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    -<b class="fc">&nbsp;                        metric.meter.mark();</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    -<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    -<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    -<b class="nc">&nbsp;                        metric.mark(500);</b>
    -<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    -&nbsp;        private final RequestEventListener[] listeners;
    -&nbsp;
    -<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    -<b class="fc">&nbsp;            this.listeners = listeners;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(final RequestEvent event) {
    -<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    -<b class="fc">&nbsp;                listener.onEvent(event);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onEvent(ApplicationEvent event) {
    -<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    -<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        return resourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    -<b class="fc">&nbsp;        return subResourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    -<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    -<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    -<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    -<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    -<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    -<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    -<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    -<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    -<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    -<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    -<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    -<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    -&nbsp;                new TimerRequestEventListener(timers, clock),
    -&nbsp;                new MeterRequestEventListener(meters),
    -&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    -&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    -&nbsp;
    -<b class="fc">&nbsp;        return listener;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    -<b class="fc">&nbsp;        T annotation = null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    -<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (annotation != null) {</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return annotation;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    -<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    -<b class="fc">&nbsp;        if (trackFilters) {</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Timed timed,
    -&nbsp;                              final String... suffixes) {
    -<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    -<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Metered metered) {
    -<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    -<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    -&nbsp;                                       final String... suffixes) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;        final String metricName;
    -<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    -<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    -&nbsp;
    -&nbsp;        private final RequestEvent.Type type;
    -&nbsp;        private final Method method;
    -&nbsp;
    -<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    -<b class="fc">&nbsp;            this.type = type;</b>
    -<b class="fc">&nbsp;            this.method = method;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod finished(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="fc">&nbsp;            if (this == o) {</b>
    -<b class="nc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (type != that.type) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return method.equals(that.method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="fc">&nbsp;            int result = type.hashCode();</b>
    -<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    -<b class="fc">&nbsp;            return result;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/sources/source-2.html
    deleted file mode 100644
    index 86c318d674..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-1f/sources/source-2.html
    +++ /dev/null
    @@ -1,201 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsFeature</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jersey31</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsFeature (io.dropwizard.metrics.jersey31)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsFeature</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jersey31;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import jakarta.ws.rs.core.Feature;
    -&nbsp;import jakarta.ws.rs.core.FeatureContext;
    -&nbsp;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp; * for recording request events.
    -&nbsp; */
    -&nbsp;public class MetricsFeature implements Feature {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    -<b class="fc">&nbsp;        this(registry, clock, false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    -<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MetricsFeature(String registryName) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A call-back method called when the feature is to be enabled in a given
    -&nbsp;     * runtime configuration scope.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    -&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    -&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    -&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
    -&nbsp;     * would return {@code false}.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     *
    -&nbsp;     * @param context configurable context in which the feature should be enabled.
    -&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    -&nbsp;     * otherwise.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean configure(FeatureContext context) {
    -<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index.html
    deleted file mode 100644
    index 625c7fa849..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 326f9a589a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index f07ac9a129..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 94862abdf0..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 6847c2a2b8..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_LINE.html
    deleted file mode 100644
    index b27af96f09..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 0cd1a57133..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 234fea33be..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 9cd9b783df..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 5872132dc2..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-1.html
    deleted file mode 100644
    index 8f4c052913..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-1.html
    +++ /dev/null
    @@ -1,127 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ResponseMeteredLevel</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ResponseMeteredLevel (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ResponseMeteredLevel</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * {@link ResponseMeteredLevel} is a parameter for the {@link ResponseMetered} annotation.
    -&nbsp; * The constants of this enumerated type decide what meters are included when a class
    -&nbsp; * or method is annotated with the {@link ResponseMetered} annotation.
    -&nbsp; */
    -<b class="fc">&nbsp;public enum ResponseMeteredLevel {</b>
    -&nbsp;    /**
    -&nbsp;     * Include meters for 1xx/2xx/3xx/4xx/5xx responses
    -&nbsp;     */
    -<b class="fc">&nbsp;    COARSE,</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Include meters for every response code (200, 201, 303, 304, 401, 404, 501, etc.)
    -&nbsp;     */
    -<b class="fc">&nbsp;    DETAILED,</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Include meters for every response code in addition to top level 1xx/2xx/3xx/4xx/5xx responses
    -&nbsp;     */
    -<b class="fc">&nbsp;    ALL;</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-2.html
    deleted file mode 100644
    index 30d47dedb0..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-2.html
    +++ /dev/null
    @@ -1,133 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ExceptionMetered</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ExceptionMetered (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">ExceptionMetered</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as metered.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}ExceptionMetered(name = &quot;fancyName&quot;, cause=IllegalArgumentException.class)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A meter for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} throws an exception of type {@code cause} (or a subclass), the meter
    -&nbsp; * will be marked.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A name for the metric can be specified as an annotation parameter, otherwise, the metric will be
    -&nbsp; * named based on the method name.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * For instance, given a declaration of
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}ExceptionMetered
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A meter named {@code fancyName.exceptions} will be created and marked every time an exception is
    -&nbsp; * thrown.
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface ExceptionMetered {
    -&nbsp;    /**
    -&nbsp;     * The default suffix for meter names.
    -&nbsp;     */
    -&nbsp;    String DEFAULT_NAME_SUFFIX = &quot;exceptions&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The name of the meter. If not specified, the meter will be given a name based on the method
    -&nbsp;     * it decorates and the suffix &quot;Exceptions&quot;.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The type of exceptions that the meter will catch and count.
    -&nbsp;     */
    -&nbsp;    Class&lt;? extends Throwable&gt; cause() default Exception.class;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-3.html
    deleted file mode 100644
    index db03ffa0dc..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-3.html
    +++ /dev/null
    @@ -1,121 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGauge (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGauge</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method as a gauge, which caches the result for a specified time.
    -&nbsp; *
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}CachedGauge(name = &quot;queueSize&quot;, timeout = 30, timeoutUnit = TimeUnit.SECONDS)
    -&nbsp; *     public int getQueueSize() {
    -&nbsp; *         return queue.getSize();
    -&nbsp; *     }
    -&nbsp; *
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; *
    -&nbsp; * A gauge for the defining class with the name queueSize will be created which uses the annotated method&#39;s
    -&nbsp; * return value as its value, and which caches the result for 30 seconds.
    -&nbsp; *
    -&nbsp; * @since 3.1
    -&nbsp; */
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface CachedGauge {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The name of the counter.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The amount of time to cache the result
    -&nbsp;     */
    -&nbsp;    long timeout();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The unit of timeout
    -&nbsp;     */
    -&nbsp;    TimeUnit timeoutUnit() default TimeUnit.MILLISECONDS;
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-4.html
    deleted file mode 100644
    index 6b6d5c18a3..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-4.html
    +++ /dev/null
    @@ -1,107 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Timed</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Timed (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Timed</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as timed.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Timed(name = &quot;fancyName&quot;)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A timer for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} method is invoked, the method&#39;s execution will be timed.
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Timed {
    -&nbsp;    /**
    -&nbsp;     * @return The name of the timer.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-5.html
    deleted file mode 100644
    index 8267f7658a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-5.html
    +++ /dev/null
    @@ -1,121 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Counted</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Counted (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Counted</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as counted.
    -&nbsp; *
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Counted(name = &quot;fancyName&quot;)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A counter for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} method is invoked, the counter will be marked.
    -&nbsp; *
    -&nbsp; * @since 3.1
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Counted {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The name of the counter.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return 
    -&nbsp;     * If {@code false} (default), the counter is decremented when the annotated
    -&nbsp;     * method returns, counting current invocations of the annotated method.
    -&nbsp;     * If {@code true}, the counter increases monotonically, counting total
    -&nbsp;     * invocations of the annotated method.
    -&nbsp;     */
    -&nbsp;    boolean monotonic() default false;
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-6.html
    deleted file mode 100644
    index c407c3398e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-6.html
    +++ /dev/null
    @@ -1,103 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Gauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Gauge (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Gauge</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as a gauge.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Gauge(name = &quot;queueSize&quot;)
    -&nbsp; *     public int getQueueSize() {
    -&nbsp; *         return queue.size;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A gauge for the defining class with the name {@code queueSize} will be created which uses the
    -&nbsp; * annotated method&#39;s return value as its value.
    -&nbsp; */
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Gauge {
    -&nbsp;    /**
    -&nbsp;     * @return The gauge&#39;s name.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-7.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-7.html
    deleted file mode 100644
    index 6661832e07..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-7.html
    +++ /dev/null
    @@ -1,113 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ResponseMetered</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ResponseMetered (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">ResponseMetered</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as metered.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}ResponseMetered(name = &quot;fancyName&quot;, level = ResponseMeteredLevel.ALL)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Meters for the defining class with the name {@code fancyName} will be created for response codes
    -&nbsp; * based on the ResponseMeteredLevel selected. Each time the {@code #fancyName(String)} method is invoked,
    -&nbsp; * the appropriate response meter will be marked.
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface ResponseMetered {
    -&nbsp;    /**
    -&nbsp;     * @return The name of the meter.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return the ResponseMeteredLevel which decides which response code meters are marked.
    -&nbsp;     */
    -&nbsp;    ResponseMeteredLevel level() default ResponseMeteredLevel.COARSE;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-8.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-8.html
    deleted file mode 100644
    index 667266c0b8..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-8.html
    +++ /dev/null
    @@ -1,107 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metered</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Metered (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Metered</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as metered.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Metered(name = &quot;fancyName&quot;)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A meter for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} method is invoked, the meter will be marked.
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Metered {
    -&nbsp;    /**
    -&nbsp;     * @return The name of the meter.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-9.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-9.html
    deleted file mode 100644
    index a96c1d585c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-2/sources/source-9.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metric</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Metric (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Metric</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation requesting that a metric be injected or registered.
    -&nbsp; *
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a field like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Metric
    -&nbsp; *     public Histogram histogram;
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A meter of the field&#39;s type will be created and injected into managed objects.
    -&nbsp; * It will be up to the user to interact with the metric. This annotation
    -&nbsp; * can be used on fields of type Meter, Timer, Counter, and Histogram.
    -&nbsp; *
    -&nbsp; * &lt;p&gt;
    -&nbsp; * This may also be used to register a metric, which is useful for creating a histogram with
    -&nbsp; * a custom Reservoir.
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Metric
    -&nbsp; *     public Histogram uniformHistogram = new Histogram(new UniformReservoir());
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; *
    -&nbsp; * @since 3.1
    -&nbsp; */
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Metric {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The name of the metric.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false},
    -&nbsp;     * use the given name relative to the annotated class.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index.html
    deleted file mode 100644
    index 0fcd94843f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index c3cb7a12ff..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 69bbc96de3..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 6a61c2b3fb..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 2dce3f4349..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 0234da2a6b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 7dc38e3ff9..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 0e4b3d5339..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index b3f568a386..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index fe61ce857d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-1.html
    deleted file mode 100644
    index 898aab0a5d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-1.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    -&nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-2.html
    deleted file mode 100644
    index 14375cc103..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-2.html
    +++ /dev/null
    @@ -1,746 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (113/131)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    -&nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    -&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    private final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private List&lt;Meter&gt; responses;
    -&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    private Timer getRequests;
    -&nbsp;    private Timer postRequests;
    -&nbsp;    private Timer headRequests;
    -&nbsp;    private Timer putRequests;
    -&nbsp;    private Timer deleteRequests;
    -&nbsp;    private Timer optionsRequests;
    -&nbsp;    private Timer traceRequests;
    -&nbsp;    private Timer connectRequests;
    -&nbsp;    private Timer moveRequests;
    -&nbsp;    private Timer otherRequests;
    -&nbsp;
    -&nbsp;    private AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;            ));
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void handle(String path,
    -&nbsp;                       Request request,
    -&nbsp;                       HttpServletRequest httpRequest,
    -&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == HttpChannelState.State.HANDLING) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-3.html
    deleted file mode 100644
    index bdb47490d4..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-3.html
    +++ /dev/null
    @@ -1,706 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpChannelListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (20/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.6%
    -  </span>
    -  <span class="absValue">
    -    (90/109)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    -&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    -&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    -&nbsp; *
    -&nbsp; * @since TBD
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    -&nbsp;        implements Listener {
    -<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private final Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private final Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private final Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private final Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private final Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private final Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private final Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private final List&lt;Meter&gt; responses;
    -&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final Timer getRequests;
    -&nbsp;    private final Timer postRequests;
    -&nbsp;    private final Timer headRequests;
    -&nbsp;    private final Timer putRequests;
    -&nbsp;    private final Timer deleteRequests;
    -&nbsp;    private final Timer optionsRequests;
    -&nbsp;    private final Timer traceRequests;
    -&nbsp;    private final Timer connectRequests;
    -&nbsp;    private final Timer moveRequests;
    -&nbsp;    private final Timer otherRequests;
    -&nbsp;
    -&nbsp;    private final AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    -<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    -<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onBeforeDispatch(final Request request) {
    -<b class="fc">&nbsp;        before(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onAfterDispatch(final Request request) {
    -<b class="fc">&nbsp;        after(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContentEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestTrailers(final Request request) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseCommit(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onComplete(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void before(final Request request) {
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            activeSuspended.dec();</b>
    -<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void after(final Request request) {
    -<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    -<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.dec();</b>
    -<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    -<b class="fc">&nbsp;            activeSuspended.inc();</b>
    -<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    -&nbsp;        }
    -&nbsp;        // else onCompletion will handle it.
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="fc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-4.html
    deleted file mode 100644
    index 9f900fb717..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-20/sources/source-4.html
    +++ /dev/null
    @@ -1,345 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.4%
    -  </span>
    -  <span class="absValue">
    -    (27/32)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    -&nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index.html
    deleted file mode 100644
    index 06a1fda11a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 53f9613856..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 0679f0a8e6..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 99936d076e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 57344da59d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 24bafda1c0..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 01a90656b1..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index d22da20d1d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 257137987a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 9fa1abd5a0..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-1.html
    deleted file mode 100644
    index d7837deb00..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-1.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty11)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    -&nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-2.html
    deleted file mode 100644
    index bfc382a62f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-2.html
    +++ /dev/null
    @@ -1,745 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty11)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (113/131)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    -&nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    -&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    private final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private List&lt;Meter&gt; responses;
    -&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    private Timer getRequests;
    -&nbsp;    private Timer postRequests;
    -&nbsp;    private Timer headRequests;
    -&nbsp;    private Timer putRequests;
    -&nbsp;    private Timer deleteRequests;
    -&nbsp;    private Timer optionsRequests;
    -&nbsp;    private Timer traceRequests;
    -&nbsp;    private Timer connectRequests;
    -&nbsp;    private Timer moveRequests;
    -&nbsp;    private Timer otherRequests;
    -&nbsp;
    -&nbsp;    private AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;                    ));
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void handle(String path,
    -&nbsp;                       Request request,
    -&nbsp;                       HttpServletRequest httpRequest,
    -&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == HttpChannelState.State.HANDLING) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-3.html
    deleted file mode 100644
    index 0d5f325b49..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-3.html
    +++ /dev/null
    @@ -1,706 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty11)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpChannelListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (20/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.6%
    -  </span>
    -  <span class="absValue">
    -    (90/109)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    -&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    -&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    -&nbsp; *
    -&nbsp; * @since TBD
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    -&nbsp;        implements Listener {
    -<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private final Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private final Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private final Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private final Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private final Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private final Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private final Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private final List&lt;Meter&gt; responses;
    -&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final Timer getRequests;
    -&nbsp;    private final Timer postRequests;
    -&nbsp;    private final Timer headRequests;
    -&nbsp;    private final Timer putRequests;
    -&nbsp;    private final Timer deleteRequests;
    -&nbsp;    private final Timer optionsRequests;
    -&nbsp;    private final Timer traceRequests;
    -&nbsp;    private final Timer connectRequests;
    -&nbsp;    private final Timer moveRequests;
    -&nbsp;    private final Timer otherRequests;
    -&nbsp;
    -&nbsp;    private final AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    -<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    -<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onBeforeDispatch(final Request request) {
    -<b class="fc">&nbsp;        before(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onAfterDispatch(final Request request) {
    -<b class="fc">&nbsp;        after(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContentEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestTrailers(final Request request) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseCommit(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onComplete(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void before(final Request request) {
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            activeSuspended.dec();</b>
    -<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void after(final Request request) {
    -<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    -<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.dec();</b>
    -<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    -<b class="fc">&nbsp;            activeSuspended.inc();</b>
    -<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    -&nbsp;        }
    -&nbsp;        // else onCompletion will handle it.
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="fc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-4.html
    deleted file mode 100644
    index 010ed0d405..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-21/sources/source-4.html
    +++ /dev/null
    @@ -1,345 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty11)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.4%
    -  </span>
    -  <span class="absValue">
    -    (27/32)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    -&nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index.html
    deleted file mode 100644
    index 33cacc7b32..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index e6036444fe..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index eb81a50160..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index c1d897814b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 246727bcd3..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 477ffad05d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index a6f98c894a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 1be654d52f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 7baffa8ac8..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 0111f1cead..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-1.html
    deleted file mode 100644
    index ff6cafd4cc..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-1.html
    +++ /dev/null
    @@ -1,584 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AbstractInstrumentedHandler (io.dropwizard.metrics.jetty12)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AbstractInstrumentedHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (12/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (96/109)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.Response;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An abstract base class of a Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    -&nbsp; */
    -&nbsp;public abstract class AbstractInstrumentedHandler extends Handler.Wrapper {
    -&nbsp;    protected static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    protected static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    protected static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    protected static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    protected static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    protected static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    protected static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    protected static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    protected static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    protected static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    protected static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    protected static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    protected static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    protected static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    protected static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    protected static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    protected static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    protected static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    protected static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    protected static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    protected static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    protected static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    protected static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    protected static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    protected final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    protected final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    protected Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    protected Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    protected Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    protected Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    protected Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    protected Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    protected Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    protected final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    protected List&lt;Meter&gt; responses;
    -&nbsp;    protected Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    protected Timer getRequests;
    -&nbsp;    protected Timer postRequests;
    -&nbsp;    protected Timer headRequests;
    -&nbsp;    protected Timer putRequests;
    -&nbsp;    protected Timer deleteRequests;
    -&nbsp;    protected Timer optionsRequests;
    -&nbsp;    protected Timer traceRequests;
    -&nbsp;    protected Timer connectRequests;
    -&nbsp;    protected Timer moveRequests;
    -&nbsp;    protected Timer otherRequests;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;                    ));
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;             this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void updateResponses(Request request, Response response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="nc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-2.html
    deleted file mode 100644
    index a64c301e58..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-2.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty12)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    -&nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-3.html
    deleted file mode 100644
    index 6536f8e698..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-22/sources/source-3.html
    +++ /dev/null
    @@ -1,336 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty12)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.1%
    -  </span>
    -  <span class="absValue">
    -    (27/31)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    -&nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index.html
    deleted file mode 100644
    index 7cb52f2cff..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 4cf89f0955..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index f50d96c805..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 003e679198..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index d5684e66bb..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_LINE.html
    deleted file mode 100644
    index dd31fa659d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 432e814b7d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 3714b3c743..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 388d63368f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 00e5fc84d5..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/sources/source-1.html
    deleted file mode 100644
    index a7ef776854..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-23/sources/source-1.html
    +++ /dev/null
    @@ -1,348 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedEE10Handler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12.ee10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedEE10Handler (io.dropwizard.metrics.jetty12.ee10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedEE10Handler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.9%
    -  </span>
    -  <span class="absValue">
    -    (23/32)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedEE10Handler$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedEE10Handler$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedEE10Handler$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12.ee10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import io.dropwizard.metrics.jetty12.AbstractInstrumentedHandler;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletApiRequest;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletApiResponse;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletChannelState;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletContextRequest;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.Response;
    -&nbsp;import org.eclipse.jetty.util.Callback;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance. This {@link Handler} requires a {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} to be present.
    -&nbsp; * For correct behaviour, the {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} should be before this handler
    -&nbsp; * in the handler chain. To achieve this, one can use
    -&nbsp; * {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler#insertHandler(Singleton)}.
    -&nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedEE10Handler extends AbstractInstrumentedHandler {</b>
    -&nbsp;    private AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        super(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        super(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {
    -<b class="fc">&nbsp;        super(registry, prefix, responseMeteredLevel);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean handle(Request request, Response response, Callback callback) throws Exception {
    -<b class="fc">&nbsp;        ServletContextRequest servletContextRequest = Request.as(request, ServletContextRequest.class);</b>
    -&nbsp;
    -&nbsp;        // only handle servlet requests with the InstrumentedHandler
    -&nbsp;        // because it depends on the ServletRequestState
    -<b class="fc">&nbsp;        if (servletContextRequest == null) {</b>
    -<b class="nc">&nbsp;            return super.handle(request, response, callback);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final ServletChannelState state = servletContextRequest.getServletRequestState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = Request.getTimeStamp(request);</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == ServletChannelState.State.HANDLING) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        boolean handled = false;</b>
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            handled = super.handle(request, response, callback);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(request, response, start, handled);</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return handled;</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final ServletApiRequest request = (ServletApiRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final ServletApiResponse response = (ServletApiResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request.getRequest(), response.getResponse(), startTime, true);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            final ServletContextRequest servletContextRequest = Request.as(request.getRequest(), ServletContextRequest.class);</b>
    -<b class="nc">&nbsp;            final ServletChannelState servletRequestState = servletContextRequest.getServletRequestState();</b>
    -<b class="nc">&nbsp;            if (!servletRequestState.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index.html
    deleted file mode 100644
    index dcd5b3e67c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 4618d5edc7..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index fdbe0f68c5..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 904fb553cf..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 97c7ec329e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_LINE.html
    deleted file mode 100644
    index a601b6280c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 356f6bca89..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index b0c3b77dc6..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 5b125dee3c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 66e1708f89..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/sources/source-1.html
    deleted file mode 100644
    index 95eaa92dea..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-24/sources/source-1.html
    +++ /dev/null
    @@ -1,195 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.logback13</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback13)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback13;
    -&nbsp;
    -&nbsp;import ch.qos.logback.classic.Level;
    -&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    -&nbsp;import ch.qos.logback.core.Appender;
    -&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    -&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    -&nbsp;
    -&nbsp;    private Meter all;
    -&nbsp;    private Meter trace;
    -&nbsp;    private Meter debug;
    -&nbsp;    private Meter info;
    -&nbsp;    private Meter warn;
    -&nbsp;    private Meter error;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender() {
    -<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void append(ILoggingEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    -&nbsp;            case Level.TRACE_INT:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.DEBUG_INT:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.INFO_INT:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.WARN_INT:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.ERROR_INT:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index.html
    deleted file mode 100644
    index e7696813ef..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index f076b00281..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 0530697255..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index fbe2a6930c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index d4af2a7e7c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_LINE.html
    deleted file mode 100644
    index d12a797cae..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index b52106e23f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index c15d4aa14c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index fcc19292c9..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 7f9a4a90f2..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/sources/source-1.html
    deleted file mode 100644
    index ad9a361aa5..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-25/sources/source-1.html
    +++ /dev/null
    @@ -1,195 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.logback14</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback14)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback14;
    -&nbsp;
    -&nbsp;import ch.qos.logback.classic.Level;
    -&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    -&nbsp;import ch.qos.logback.core.Appender;
    -&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    -&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    -&nbsp;
    -&nbsp;    private Meter all;
    -&nbsp;    private Meter trace;
    -&nbsp;    private Meter debug;
    -&nbsp;    private Meter info;
    -&nbsp;    private Meter warn;
    -&nbsp;    private Meter error;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender() {
    -<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void append(ILoggingEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    -&nbsp;            case Level.TRACE_INT:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.DEBUG_INT:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.INFO_INT:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.WARN_INT:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.ERROR_INT:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index.html
    deleted file mode 100644
    index 7469a79f5b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 5214c778f5..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 13a04bc48a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index e12bbf763b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 2a6b023df4..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_LINE.html
    deleted file mode 100644
    index a224b91e24..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 1a1ad4fdc1..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index e303eb89c7..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index c721bd0450..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 055904e5b5..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/sources/source-1.html
    deleted file mode 100644
    index 870c167528..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-26/sources/source-1.html
    +++ /dev/null
    @@ -1,195 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.logback15</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback15)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback15;
    -&nbsp;
    -&nbsp;import ch.qos.logback.classic.Level;
    -&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    -&nbsp;import ch.qos.logback.core.Appender;
    -&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    -&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    -&nbsp;
    -&nbsp;    private Meter all;
    -&nbsp;    private Meter trace;
    -&nbsp;    private Meter debug;
    -&nbsp;    private Meter info;
    -&nbsp;    private Meter warn;
    -&nbsp;    private Meter error;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender() {
    -<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void append(ILoggingEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    -&nbsp;            case Level.TRACE_INT:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.DEBUG_INT:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.INFO_INT:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.WARN_INT:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.ERROR_INT:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index.html
    deleted file mode 100644
    index f38fe1e129..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 6ae47b88a4..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 798fa7d0ff..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index c1f30f9361..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 8b62feec0b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_LINE.html
    deleted file mode 100644
    index cb943bed68..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 2a18318deb..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 8c39faeba8..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 38c3737b2b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 351791dc30..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-1.html
    deleted file mode 100644
    index 77351e6288..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-1.html
    +++ /dev/null
    @@ -1,387 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AbstractInstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/45)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.Filter;
    -&nbsp;import jakarta.servlet.FilterChain;
    -&nbsp;import jakarta.servlet.FilterConfig;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.ServletRequest;
    -&nbsp;import jakarta.servlet.ServletResponse;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;import jakarta.servlet.http.HttpServletResponseWrapper;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Map.Entry;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    -&nbsp; * codes being returned.
    -&nbsp; */
    -<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    -&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    -&nbsp;
    -&nbsp;    private final String otherMetricName;
    -&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    -&nbsp;    private final String registryAttribute;
    -&nbsp;
    -&nbsp;    // initialized after call of init method
    -&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    -&nbsp;    private Meter otherMeter;
    -&nbsp;    private Meter timeoutsMeter;
    -&nbsp;    private Meter errorsMeter;
    -&nbsp;    private Counter activeRequests;
    -&nbsp;    private Timer requestTimer;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     *
    -&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    -&nbsp;     *                               servlet context
    -&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    -&nbsp;     *                               interested in.
    -&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    -&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    -<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    -<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    -<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    -<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    -<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    -<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    -<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    -<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    -<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    -<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    -<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    -<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    -<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    -<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    -&nbsp;        final MetricRegistry metricsRegistry;
    -&nbsp;
    -<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    -<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    -<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return metricsRegistry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void doFilter(ServletRequest request,
    -&nbsp;                         ServletResponse response,
    -&nbsp;                         FilterChain chain) throws IOException, ServletException {
    -<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    -&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    -<b class="nc">&nbsp;        activeRequests.inc();</b>
    -<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    -<b class="nc">&nbsp;        boolean error = false;</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    -<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    -<b class="nc">&nbsp;            error = true;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                if (error) {</b>
    -<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void markMeterForStatusCode(int status) {
    -<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    -<b class="nc">&nbsp;        if (metric != null) {</b>
    -<b class="nc">&nbsp;            metric.mark();</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            otherMeter.mark();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    -&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    -<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    -&nbsp;
    -&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    -<b class="nc">&nbsp;            super(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc, String msg) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void setStatus(int sc) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;        public void setStatus(int sc, String sm) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc, sm);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int getStatus() {
    -<b class="nc">&nbsp;            return httpStatus;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class AsyncResultListener implements AsyncListener {
    -&nbsp;        private Timer.Context context;
    -<b class="nc">&nbsp;        private boolean done = false;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    -<b class="nc">&nbsp;            this.context = context;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            if (!done) {</b>
    -<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            errorsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -&nbsp;
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-2.html
    deleted file mode 100644
    index 3a4fb57e68..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-2.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    -&nbsp;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    -&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    -&nbsp; * &lt;pre&gt;{@code
    -&nbsp; * &lt;filter&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;filter-class&gt;io.dropwizard.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    -&nbsp; * &lt;/filter&gt;
    -&nbsp; * &lt;filter-mapping&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    -&nbsp; * &lt;/filter-mapping&gt;
    -&nbsp; * }&lt;/pre&gt;
    -&nbsp; */
    -&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    -<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    -&nbsp;    private static final int OK = 200;
    -&nbsp;    private static final int CREATED = 201;
    -&nbsp;    private static final int NO_CONTENT = 204;
    -&nbsp;    private static final int BAD_REQUEST = 400;
    -&nbsp;    private static final int NOT_FOUND = 404;
    -&nbsp;    private static final int SERVER_ERROR = 500;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     */
    -&nbsp;    public InstrumentedFilter() {
    -<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    -<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    -<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-3.html
    deleted file mode 100644
    index b5d9034ea2..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-27/sources/source-3.html
    +++ /dev/null
    @@ -1,130 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilterContextListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilterContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import jakarta.servlet.ServletContextEvent;
    -&nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    -&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    -&nbsp; * application.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    -&nbsp;    /**
    -&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;     */
    -&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    -<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index.html
    deleted file mode 100644
    index 23aef5eb86..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index d80ca0e0b1..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 097ac423a9..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 03bb521d4b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 4c0bfdcee2..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_LINE.html
    deleted file mode 100644
    index d4712c3f05..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index aa22741fe2..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 13fe3a6d5b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 1def10f6fa..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index f82aa367d5..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-1.html
    deleted file mode 100644
    index 90fe813683..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-1.html
    +++ /dev/null
    @@ -1,380 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet6)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AbstractInstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/45)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.Filter;
    -&nbsp;import jakarta.servlet.FilterChain;
    -&nbsp;import jakarta.servlet.FilterConfig;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.ServletRequest;
    -&nbsp;import jakarta.servlet.ServletResponse;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;import jakarta.servlet.http.HttpServletResponseWrapper;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Map.Entry;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    -&nbsp; * codes being returned.
    -&nbsp; */
    -<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    -&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    -&nbsp;
    -&nbsp;    private final String otherMetricName;
    -&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    -&nbsp;    private final String registryAttribute;
    -&nbsp;
    -&nbsp;    // initialized after call of init method
    -&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    -&nbsp;    private Meter otherMeter;
    -&nbsp;    private Meter timeoutsMeter;
    -&nbsp;    private Meter errorsMeter;
    -&nbsp;    private Counter activeRequests;
    -&nbsp;    private Timer requestTimer;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     *
    -&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    -&nbsp;     *                               servlet context
    -&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    -&nbsp;     *                               interested in.
    -&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    -&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    -<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    -<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    -<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    -<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    -<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    -<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    -<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    -<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    -<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    -<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    -<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    -<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    -<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    -<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    -&nbsp;        final MetricRegistry metricsRegistry;
    -&nbsp;
    -<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    -<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    -<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return metricsRegistry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void doFilter(ServletRequest request,
    -&nbsp;                         ServletResponse response,
    -&nbsp;                         FilterChain chain) throws IOException, ServletException {
    -<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    -&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    -<b class="nc">&nbsp;        activeRequests.inc();</b>
    -<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    -<b class="nc">&nbsp;        boolean error = false;</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    -<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    -<b class="nc">&nbsp;            error = true;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                if (error) {</b>
    -<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void markMeterForStatusCode(int status) {
    -<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    -<b class="nc">&nbsp;        if (metric != null) {</b>
    -<b class="nc">&nbsp;            metric.mark();</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            otherMeter.mark();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    -&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    -<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    -&nbsp;
    -&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    -<b class="nc">&nbsp;            super(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc, String msg) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void setStatus(int sc) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int getStatus() {
    -<b class="nc">&nbsp;            return httpStatus;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class AsyncResultListener implements AsyncListener {
    -&nbsp;        private final Timer.Context context;
    -<b class="nc">&nbsp;        private boolean done = false;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    -<b class="nc">&nbsp;            this.context = context;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            if (!done) {</b>
    -<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            errorsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -&nbsp;
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-2.html
    deleted file mode 100644
    index 843e010470..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-2.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet6)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    -&nbsp;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    -&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    -&nbsp; * &lt;pre&gt;{@code
    -&nbsp; * &lt;filter&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;filter-class&gt;io.dropwizard.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    -&nbsp; * &lt;/filter&gt;
    -&nbsp; * &lt;filter-mapping&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    -&nbsp; * &lt;/filter-mapping&gt;
    -&nbsp; * }&lt;/pre&gt;
    -&nbsp; */
    -&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    -<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    -&nbsp;    private static final int OK = 200;
    -&nbsp;    private static final int CREATED = 201;
    -&nbsp;    private static final int NO_CONTENT = 204;
    -&nbsp;    private static final int BAD_REQUEST = 400;
    -&nbsp;    private static final int NOT_FOUND = 404;
    -&nbsp;    private static final int SERVER_ERROR = 500;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     */
    -&nbsp;    public InstrumentedFilter() {
    -<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    -<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    -<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-3.html
    deleted file mode 100644
    index fae5a3e4ba..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-28/sources/source-3.html
    +++ /dev/null
    @@ -1,130 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilterContextListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet6)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilterContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import jakarta.servlet.ServletContextEvent;
    -&nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    -&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    -&nbsp; * application.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    -&nbsp;    /**
    -&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;     */
    -&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    -<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index.html
    deleted file mode 100644
    index fb0aa3f71d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index d5009fb1a8..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 8aea275135..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 2900bd6db4..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index aa9b35039d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 3c49c422a4..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 8ce2ea35b3..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 8e8199a9dd..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 5c1c657fd8..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 0becde01b4..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-1.html
    deleted file mode 100644
    index d7ec9d8449..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-1.html
    +++ /dev/null
    @@ -1,294 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AdminServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AdminServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AdminServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import jakarta.servlet.ServletConfig;
    -&nbsp;import jakarta.servlet.ServletContext;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.text.MessageFormat;
    -&nbsp;
    -<b class="fc">&nbsp;public class AdminServlet extends HttpServlet {</b>
    -&nbsp;    public static final String DEFAULT_HEALTHCHECK_URI = &quot;/healthcheck&quot;;
    -&nbsp;    public static final String DEFAULT_METRICS_URI = &quot;/metrics&quot;;
    -&nbsp;    public static final String DEFAULT_PING_URI = &quot;/ping&quot;;
    -&nbsp;    public static final String DEFAULT_THREADS_URI = &quot;/threads&quot;;
    -&nbsp;    public static final String DEFAULT_CPU_PROFILE_URI = &quot;/pprof&quot;;
    -&nbsp;
    -&nbsp;    public static final String METRICS_ENABLED_PARAM_KEY = &quot;metrics-enabled&quot;;
    -&nbsp;    public static final String METRICS_URI_PARAM_KEY = &quot;metrics-uri&quot;;
    -&nbsp;    public static final String PING_ENABLED_PARAM_KEY = &quot;ping-enabled&quot;;
    -&nbsp;    public static final String PING_URI_PARAM_KEY = &quot;ping-uri&quot;;
    -&nbsp;    public static final String THREADS_ENABLED_PARAM_KEY = &quot;threads-enabled&quot;;
    -&nbsp;    public static final String THREADS_URI_PARAM_KEY = &quot;threads-uri&quot;;
    -&nbsp;    public static final String HEALTHCHECK_ENABLED_PARAM_KEY = &quot;healthcheck-enabled&quot;;
    -&nbsp;    public static final String HEALTHCHECK_URI_PARAM_KEY = &quot;healthcheck-uri&quot;;
    -&nbsp;    public static final String SERVICE_NAME_PARAM_KEY = &quot;service-name&quot;;
    -&nbsp;    public static final String CPU_PROFILE_ENABLED_PARAM_KEY = &quot;cpu-profile-enabled&quot;;
    -&nbsp;    public static final String CPU_PROFILE_URI_PARAM_KEY = &quot;cpu-profile-uri&quot;;
    -&nbsp;
    -&nbsp;    private static final String BASE_TEMPLATE =
    -&nbsp;            &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot;%n&quot; +
    -&nbsp;                    &quot;        \&quot;http://www.w3.org/TR/html4/loose.dtd\&quot;&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;html&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;head&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;title&gt;Metrics{10}&lt;/title&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/head&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;body&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;h1&gt;Operational Menu{10}&lt;/h1&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;ul&gt;%n&quot; +
    -&nbsp;                    &quot;%s&quot; +
    -&nbsp;                    &quot;  &lt;/ul&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/body&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/html&gt;&quot;;
    -&nbsp;    private static final String METRICS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{0}{1}?pretty=true\&quot;&gt;Metrics&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;    private static final String PING_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{2}{3}\&quot;&gt;Ping&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String THREADS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{4}{5}\&quot;&gt;Threads&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String HEALTHCHECK_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{6}{7}?pretty=true\&quot;&gt;Healthcheck&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String CPU_PROFILE_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}\&quot;&gt;CPU Profile&lt;/a&gt;&lt;/li&gt;%n&quot; +
    -&nbsp;            &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}?state=blocked\&quot;&gt;CPU Contention&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;
    -&nbsp;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/html&quot;;
    -&nbsp;    private static final long serialVersionUID = -2850794040708785318L;
    -&nbsp;
    -&nbsp;    private transient HealthCheckServlet healthCheckServlet;
    -&nbsp;    private transient MetricsServlet metricsServlet;
    -&nbsp;    private transient PingServlet pingServlet;
    -&nbsp;    private transient ThreadDumpServlet threadDumpServlet;
    -&nbsp;    private transient CpuProfileServlet cpuProfileServlet;
    -&nbsp;    private transient boolean metricsEnabled;
    -&nbsp;    private transient String metricsUri;
    -&nbsp;    private transient boolean pingEnabled;
    -&nbsp;    private transient String pingUri;
    -&nbsp;    private transient boolean threadsEnabled;
    -&nbsp;    private transient String threadsUri;
    -&nbsp;    private transient boolean healthcheckEnabled;
    -&nbsp;    private transient String healthcheckUri;
    -&nbsp;    private transient boolean cpuProfileEnabled;
    -&nbsp;    private transient String cpuProfileUri;
    -&nbsp;    private transient String serviceName;
    -&nbsp;    private transient String pageContentTemplate;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        final StringBuilder servletLinks = new StringBuilder();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.metricsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.metricsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(METRICS_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.metricsServlet = new MetricsServlet();</b>
    -<b class="fc">&nbsp;        metricsServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.pingEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.pingEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(PING_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.pingServlet = new PingServlet();</b>
    -<b class="fc">&nbsp;        pingServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.threadsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.threadsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(THREADS_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.threadDumpServlet = new ThreadDumpServlet();</b>
    -<b class="fc">&nbsp;        threadDumpServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.healthcheckEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.healthcheckEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(HEALTHCHECK_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.healthCheckServlet = new HealthCheckServlet();</b>
    -<b class="fc">&nbsp;        healthCheckServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.cpuProfileEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.cpuProfileEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(CPU_PROFILE_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.cpuProfileServlet = new CpuProfileServlet();</b>
    -<b class="fc">&nbsp;        cpuProfileServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);</b>
    -<b class="fc">&nbsp;        this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);</b>
    -<b class="fc">&nbsp;        this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);</b>
    -<b class="fc">&nbsp;        this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);</b>
    -<b class="fc">&nbsp;        this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);</b>
    -<b class="fc">&nbsp;        this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String path = req.getContextPath() + req.getServletPath();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,</b>
    -&nbsp;                    threadsUri, path, healthcheckUri, path, cpuProfileUri,
    -<b class="fc">&nbsp;                    serviceName == null ? &quot;&quot; : &quot; (&quot; + serviceName + &quot;)&quot;));</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String uri = req.getPathInfo();</b>
    -<b class="fc">&nbsp;        if (uri == null || uri.equals(&quot;/&quot;)) {</b>
    -<b class="fc">&nbsp;            super.service(req, resp);</b>
    -<b class="nc">&nbsp;        } else if (uri.equals(healthcheckUri)) {</b>
    -<b class="nc">&nbsp;            if (healthcheckEnabled) {</b>
    -<b class="nc">&nbsp;                healthCheckServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.startsWith(metricsUri)) {</b>
    -<b class="nc">&nbsp;            if (metricsEnabled) {</b>
    -<b class="nc">&nbsp;                metricsServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(pingUri)) {</b>
    -<b class="nc">&nbsp;            if (pingEnabled) {</b>
    -<b class="nc">&nbsp;                pingServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(threadsUri)) {</b>
    -<b class="nc">&nbsp;            if (threadsEnabled) {</b>
    -<b class="nc">&nbsp;                threadDumpServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(cpuProfileUri)) {</b>
    -<b class="nc">&nbsp;            if (cpuProfileEnabled) {</b>
    -<b class="nc">&nbsp;                cpuProfileServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static String getParam(String initParam, String defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : initParam;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-2.html
    deleted file mode 100644
    index 7a2943419e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-2.html
    +++ /dev/null
    @@ -1,183 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CpuProfileServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CpuProfileServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CpuProfileServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.papertrail.profiler.CpuProfile;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.concurrent.locks.Lock;
    -&nbsp;import java.util.concurrent.locks.ReentrantLock;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a &lt;a href=&quot;https://github.com/gperftools/gperftools&quot;&gt;pprof&lt;/a&gt; parseable response.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CpuProfileServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = -668666696530287501L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;pprof/raw&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -<b class="fc">&nbsp;    private final Lock lock = new ReentrantLock();</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -&nbsp;
    -<b class="fc">&nbsp;        int duration = 10;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;duration&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                duration = Integer.parseInt(req.getParameter(&quot;duration&quot;));</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                duration = 10;</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        int frequency = 100;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;frequency&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                frequency = Integer.parseInt(req.getParameter(&quot;frequency&quot;));</b>
    -<b class="nc">&nbsp;                frequency = Math.min(Math.max(frequency, 1), 1000);</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                frequency = 100;</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        final Thread.State state;
    -<b class="fc">&nbsp;        if (&quot;blocked&quot;.equalsIgnoreCase(req.getParameter(&quot;state&quot;))) {</b>
    -<b class="nc">&nbsp;            state = Thread.State.BLOCKED;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            state = Thread.State.RUNNABLE;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            doProfile(output, duration, frequency, state);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
    -<b class="fc">&nbsp;        if (lock.tryLock()) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),</b>
    -&nbsp;                        frequency, state);
    -<b class="fc">&nbsp;                if (profile == null) {</b>
    -<b class="nc">&nbsp;                    throw new RuntimeException(&quot;could not create CpuProfile&quot;);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                profile.writeGoogleProfile(out);</b>
    -&nbsp;                return;
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                lock.unlock();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        throw new RuntimeException(&quot;Only one profile request may be active at a time&quot;);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-3.html
    deleted file mode 100644
    index d8ce47fd80..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-3.html
    +++ /dev/null
    @@ -1,325 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.1%
    -  </span>
    -  <span class="absValue">
    -    (58/61)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.codahale.metrics.health.HealthCheckFilter;
    -&nbsp;import com.codahale.metrics.health.HealthCheckRegistry;
    -&nbsp;import com.codahale.metrics.json.HealthCheckModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;import jakarta.servlet.ServletConfig;
    -&nbsp;import jakarta.servlet.ServletContext;
    -&nbsp;import jakarta.servlet.ServletContextEvent;
    -&nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;
    -&nbsp;public class HealthCheckServlet extends HttpServlet {
    -<b class="nc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract HealthCheckRegistry getHealthCheckRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
    -&nbsp;         * if the health checks should be run in the servlet worker thread.
    -&nbsp;         */
    -&nbsp;        protected ExecutorService getExecutorService() {
    -&nbsp;            // don&#39;t use a thread pool by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
    -&nbsp;         * or {@link HealthCheckFilter#ALL} if the default should be used.
    -&nbsp;         */
    -&nbsp;        protected HealthCheckFilter getHealthCheckFilter() {
    -<b class="nc">&nbsp;            return HealthCheckFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ObjectMapper} that shall be used to render health checks,
    -&nbsp;         * or {@code null} if the default object mapper should be used.
    -&nbsp;         */
    -&nbsp;        protected ObjectMapper getObjectMapper() {
    -&nbsp;            // don&#39;t use an object mapper by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="nc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + &quot;.executor&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + &quot;.healthCheckFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + &quot;.mapper&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + &quot;.httpStatusIndicator&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -8432996484889177321L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;    private static final String HTTP_STATUS_INDICATOR_PARAM = &quot;httpStatusIndicator&quot;;
    -&nbsp;
    -&nbsp;    private transient HealthCheckRegistry registry;
    -&nbsp;    private transient ExecutorService executorService;
    -&nbsp;    private transient HealthCheckFilter filter;
    -&nbsp;    private transient ObjectMapper mapper;
    -&nbsp;    private transient boolean httpStatusIndicator;
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet(HealthCheckRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof HealthCheckRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (HealthCheckRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a HealthCheckRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);</b>
    -<b class="fc">&nbsp;        if (executorAttr instanceof ExecutorService) {</b>
    -<b class="fc">&nbsp;            this.executorService = (ExecutorService) executorAttr;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);</b>
    -<b class="fc">&nbsp;        if (filterAttr instanceof HealthCheckFilter) {</b>
    -<b class="fc">&nbsp;            filter = (HealthCheckFilter) filterAttr;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = HealthCheckFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);</b>
    -<b class="fc">&nbsp;        if (mapperAttr instanceof ObjectMapper) {</b>
    -<b class="nc">&nbsp;            this.mapper = (ObjectMapper) mapperAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.mapper = new ObjectMapper();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.mapper.registerModule(new HealthCheckModule());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);</b>
    -<b class="fc">&nbsp;        if (httpStatusIndicatorAttr instanceof Boolean) {</b>
    -<b class="nc">&nbsp;            this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.httpStatusIndicator = true;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -<b class="fc">&nbsp;        super.destroy();</b>
    -<b class="fc">&nbsp;        registry.shutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = runHealthChecks();</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (results.isEmpty()) {</b>
    -<b class="fc">&nbsp;            resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);</b>
    -<b class="fc">&nbsp;            final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);</b>
    -<b class="fc">&nbsp;            final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;</b>
    -<b class="fc">&nbsp;            if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {</b>
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            getWriter(req).writeValue(output, results);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    -<b class="fc">&nbsp;        if (executorService == null) {</b>
    -<b class="nc">&nbsp;            return registry.runHealthChecks(filter);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return registry.runHealthChecks(executorService, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static boolean isAllHealthy(Map&lt;String, HealthCheck.Result&gt; results) {
    -<b class="fc">&nbsp;        for (HealthCheck.Result result : results.values()) {</b>
    -<b class="fc">&nbsp;            if (!result.isHealthy()) {</b>
    -<b class="fc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    // visible for testing
    -&nbsp;    ObjectMapper getMapper() {
    -<b class="fc">&nbsp;        return mapper;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-4.html
    deleted file mode 100644
    index 765c48cce4..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-4.html
    +++ /dev/null
    @@ -1,328 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (44/44)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetricsServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (14/18)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.json.MetricsModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;import com.fasterxml.jackson.databind.util.JSONPObject;
    -&nbsp;import jakarta.servlet.ServletConfig;
    -&nbsp;import jakarta.servlet.ServletContext;
    -&nbsp;import jakarta.servlet.ServletContextEvent;
    -&nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A servlet which returns the metrics in a given registry as an {@code application/json} response.
    -&nbsp; */
    -&nbsp;public class MetricsServlet extends HttpServlet {
    -&nbsp;    /**
    -&nbsp;     * An abstract {@link ServletContextListener} which allows you to programmatically inject the
    -&nbsp;     * {@link MetricRegistry}, rate and duration units, and allowed origin for
    -&nbsp;     * {@link MetricsServlet}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
    -&nbsp;         * default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getRateUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getDurationUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@code Access-Control-Allow-Origin} header value, if any.
    -&nbsp;         */
    -&nbsp;        protected String getAllowedOrigin() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the name of the parameter used to specify the jsonp callback, if any.
    -&nbsp;         */
    -&nbsp;        protected String getJsonpCallbackParameter() {
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected MetricFilter getMetricFilter() {
    -&nbsp;            // use the default
    -<b class="fc">&nbsp;            return MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="fc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRICS_REGISTRY, getMetricRegistry());</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRIC_FILTER, getMetricFilter());</b>
    -<b class="fc">&nbsp;            if (getDurationUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getRateUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getAllowedOrigin() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getJsonpCallbackParameter() != null) {</b>
    -<b class="nc">&nbsp;                context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.rateUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.durationUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + &quot;.showSamples&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + &quot;.allowedOrigin&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + &quot;.metricFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + &quot;.jsonpCallback&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = 1049773947734939602L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;
    -&nbsp;    protected String allowedOrigin;
    -&nbsp;    protected String jsonpParamName;
    -&nbsp;    protected transient MetricRegistry registry;
    -&nbsp;    protected transient ObjectMapper mapper;
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(METRICS_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof MetricRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (MetricRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a MetricRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);</b>
    -<b class="fc">&nbsp;        this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        setupMetricsModule(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void setupMetricsModule(ServletContext context) {
    -<b class="fc">&nbsp;        final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));</b>
    -<b class="fc">&nbsp;        MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);</b>
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,</b>
    -&nbsp;                durationUnit,
    -&nbsp;                showSamples,
    -&nbsp;                filter));
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        if (allowedOrigin != null) {</b>
    -<b class="fc">&nbsp;            resp.setHeader(&quot;Access-Control-Allow-Origin&quot;, allowedOrigin);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            if (jsonpParamName != null &amp;&amp; req.getParameter(jsonpParamName) != null) {</b>
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, registry);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));</b>
    -<b class="fc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    -<b class="fc">&nbsp;            return defaultValue;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-5.html
    deleted file mode 100644
    index a1c8a07acf..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-5.html
    +++ /dev/null
    @@ -1,135 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PingServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PingServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PingServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} {@code &quot;pong&quot;} response.
    -&nbsp; */
    -<b class="fc">&nbsp;public class PingServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = 3772654177231086757L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;    private static final String CONTENT = &quot;pong&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(CONTENT);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-6.html
    deleted file mode 100644
    index 42f8283881..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-29/sources/source-6.html
    +++ /dev/null
    @@ -1,159 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDumpServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDumpServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDumpServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.jvm.ThreadDump;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
    -&nbsp; * the VM. Only responds to {@code GET} requests.
    -&nbsp; */
    -<b class="fc">&nbsp;public class ThreadDumpServlet extends HttpServlet {</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -2690343532336103046L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;
    -&nbsp;    private transient ThreadDump threadDump;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init() throws ServletException {
    -&nbsp;        try {
    -&nbsp;            // Some PaaS like Google App Engine blacklist java.lang.managament
    -<b class="fc">&nbsp;            this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());</b>
    -<b class="nc">&nbsp;        } catch (NoClassDefFoundError ncdfe) {</b>
    -<b class="nc">&nbsp;            this.threadDump = null; // we won&#39;t be able to provide thread dump</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final boolean includeMonitors = getParam(req.getParameter(&quot;monitors&quot;), true);</b>
    -<b class="fc">&nbsp;        final boolean includeSynchronizers = getParam(req.getParameter(&quot;synchronizers&quot;), true);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (threadDump == null) {</b>
    -<b class="nc">&nbsp;            resp.getWriter().println(&quot;Sorry your runtime environment does not allow to dump threads.&quot;);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            threadDump.dump(includeMonitors, includeSynchronizers, output);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Boolean getParam(String initParam, boolean defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index.html
    deleted file mode 100644
    index 4318f7a78a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 4c2c0c6c7b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 1c654f1a82..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 9da6bf97e7..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 8617e35746..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_LINE.html
    deleted file mode 100644
    index bc6d1866b7..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 4c557b82fb..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 9063372325..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 223a225272..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 01a1f2b17e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-1.html
    deleted file mode 100644
    index 20977b165f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-1.html
    +++ /dev/null
    @@ -1,176 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGaugeBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGaugeBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGaugeBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">CachedGaugeBenchmark$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.CachedGauge;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class CachedGaugeBenchmark {</b>
    -&nbsp;
    -<b class="nc">&nbsp;    private CachedGauge&lt;Integer&gt; cachedGauge = new CachedGauge&lt;Integer&gt;(100, TimeUnit.MILLISECONDS) {</b>
    -&nbsp;        @Override
    -&nbsp;        protected Integer loadValue() {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                Thread.sleep(10);</b>
    -<b class="nc">&nbsp;            } catch (InterruptedException e) {</b>
    -<b class="nc">&nbsp;                throw new RuntimeException(&quot;Thread was interrupted&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            return 12345;</b>
    -&nbsp;        }
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public void perfGetValue(Blackhole blackhole) {
    -<b class="nc">&nbsp;        blackhole.consume(cachedGauge.getValue());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;                .include(&quot;.*&quot; + CachedGaugeBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;                .warmupIterations(3)</b>
    -<b class="nc">&nbsp;                .measurementIterations(5)</b>
    -<b class="nc">&nbsp;                .threads(4)</b>
    -<b class="nc">&nbsp;                .forks(1)</b>
    -<b class="nc">&nbsp;                .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-2.html
    deleted file mode 100644
    index 4908843585..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-2.html
    +++ /dev/null
    @@ -1,142 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CounterBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CounterBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CounterBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class CounterBenchmark {</b>
    -&nbsp;
    -<b class="nc">&nbsp;    private final Counter counter = new Counter();</b>
    -&nbsp;
    -&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    -<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfIncrement() {
    -<b class="nc">&nbsp;        counter.inc(nextValue); </b>
    -<b class="nc">&nbsp;        return counter;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;                .include(&quot;.*&quot; + CounterBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;                .warmupIterations(3)</b>
    -<b class="nc">&nbsp;                .measurementIterations(5)</b>
    -<b class="nc">&nbsp;                .threads(4)</b>
    -<b class="nc">&nbsp;                .forks(1)</b>
    -<b class="nc">&nbsp;                .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-3.html
    deleted file mode 100644
    index 8e8851ad43..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-3.html
    +++ /dev/null
    @@ -1,142 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MeterBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MeterBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MeterBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class MeterBenchmark {</b>
    -&nbsp;
    -<b class="nc">&nbsp;    private final Meter meter = new Meter();</b>
    -&nbsp;
    -&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    -<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfMark() {
    -<b class="nc">&nbsp;        meter.mark(nextValue);</b>
    -<b class="nc">&nbsp;        return meter;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;                .include(&quot;.*&quot; + MeterBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;                .warmupIterations(3)</b>
    -<b class="nc">&nbsp;                .measurementIterations(5)</b>
    -<b class="nc">&nbsp;                .threads(4)</b>
    -<b class="nc">&nbsp;                .forks(1)</b>
    -<b class="nc">&nbsp;                .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-4.html
    deleted file mode 100644
    index a1ae4937c6..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-4.html
    +++ /dev/null
    @@ -1,192 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.LockFreeExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.SlidingTimeWindowArrayReservoir;
    -&nbsp;import com.codahale.metrics.SlidingTimeWindowReservoir;
    -&nbsp;import com.codahale.metrics.SlidingWindowReservoir;
    -&nbsp;import com.codahale.metrics.UniformReservoir;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.profile.GCProfiler;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;import org.openjdk.jmh.runner.options.TimeValue;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class ReservoirBenchmark {</b>
    -&nbsp;
    -<b class="nc">&nbsp;    private final UniformReservoir uniform = new UniformReservoir();</b>
    -<b class="nc">&nbsp;    private final ExponentiallyDecayingReservoir exponential = new ExponentiallyDecayingReservoir();</b>
    -<b class="nc">&nbsp;    private final Reservoir lockFreeExponential = LockFreeExponentiallyDecayingReservoir.builder().build();</b>
    -<b class="nc">&nbsp;    private final SlidingWindowReservoir sliding = new SlidingWindowReservoir(1000);</b>
    -<b class="nc">&nbsp;    private final SlidingTimeWindowReservoir slidingTime = new SlidingTimeWindowReservoir(200, TimeUnit.MILLISECONDS);</b>
    -<b class="nc">&nbsp;    private final SlidingTimeWindowArrayReservoir arrTime = new SlidingTimeWindowArrayReservoir(200, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    -<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfUniformReservoir() {
    -<b class="nc">&nbsp;        uniform.update(nextValue);</b>
    -<b class="nc">&nbsp;        return uniform;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfSlidingTimeWindowArrayReservoir() {
    -<b class="nc">&nbsp;        arrTime.update(nextValue);</b>
    -<b class="nc">&nbsp;        return arrTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfExponentiallyDecayingReservoir() {
    -<b class="nc">&nbsp;        exponential.update(nextValue);</b>
    -<b class="nc">&nbsp;        return exponential;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfSlidingWindowReservoir() {
    -<b class="nc">&nbsp;        sliding.update(nextValue);</b>
    -<b class="nc">&nbsp;        return sliding;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfSlidingTimeWindowReservoir() {
    -<b class="nc">&nbsp;        slidingTime.update(nextValue);</b>
    -<b class="nc">&nbsp;        return slidingTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfLockFreeExponentiallyDecayingReservoir() {
    -<b class="nc">&nbsp;        lockFreeExponential.update(nextValue);</b>
    -<b class="nc">&nbsp;        return lockFreeExponential;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;            .include(&quot;.*&quot; + ReservoirBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;            .warmupIterations(10)</b>
    -<b class="nc">&nbsp;            .measurementIterations(10)</b>
    -<b class="nc">&nbsp;            .addProfiler(GCProfiler.class)</b>
    -<b class="nc">&nbsp;            .measurementTime(TimeValue.seconds(3))</b>
    -<b class="nc">&nbsp;            .timeUnit(TimeUnit.MICROSECONDS)</b>
    -<b class="nc">&nbsp;            .mode(Mode.AverageTime)</b>
    -<b class="nc">&nbsp;            .threads(4)</b>
    -<b class="nc">&nbsp;            .forks(1)</b>
    -<b class="nc">&nbsp;            .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-5.html
    deleted file mode 100644
    index 8b262b2e6f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-3/sources/source-5.html
    +++ /dev/null
    @@ -1,184 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoirsBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.SlidingTimeWindowArrayReservoir;
    -&nbsp;import com.codahale.metrics.SlidingTimeWindowReservoir;
    -&nbsp;import com.codahale.metrics.Snapshot;
    -&nbsp;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Group;
    -&nbsp;import org.openjdk.jmh.annotations.GroupThreads;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.profile.GCProfiler;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;import org.openjdk.jmh.runner.options.TimeValue;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * @author bstorozhuk
    -&nbsp; */
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark {</b>
    -<b class="nc">&nbsp;    private final SlidingTimeWindowReservoir slidingTime = new SlidingTimeWindowReservoir(200, TimeUnit.MILLISECONDS);</b>
    -<b class="nc">&nbsp;    private final SlidingTimeWindowArrayReservoir arrTime = new SlidingTimeWindowArrayReservoir(200, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    -<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    @Group(&quot;slidingTime&quot;)
    -&nbsp;    @GroupThreads(3)
    -&nbsp;    public Object slidingTimeAddMeasurement() {
    -<b class="nc">&nbsp;        slidingTime.update(nextValue);</b>
    -<b class="nc">&nbsp;        return slidingTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    @Group(&quot;slidingTime&quot;)
    -&nbsp;    @GroupThreads(1)
    -&nbsp;    public Object slidingTimeRead() {
    -<b class="nc">&nbsp;        Snapshot snapshot = slidingTime.getSnapshot();</b>
    -<b class="nc">&nbsp;        return snapshot;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    @Group(&quot;arrTime&quot;)
    -&nbsp;    @GroupThreads(3)
    -&nbsp;    public Object arrTimeAddMeasurement() {
    -<b class="nc">&nbsp;        arrTime.update(nextValue);</b>
    -<b class="nc">&nbsp;        return slidingTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    @Group(&quot;arrTime&quot;)
    -&nbsp;    @GroupThreads(1)
    -&nbsp;    public Object arrTimeRead() {
    -<b class="nc">&nbsp;        Snapshot snapshot = arrTime.getSnapshot();</b>
    -<b class="nc">&nbsp;        return snapshot;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;            .include(&quot;.*&quot; + SlidingTimeWindowReservoirsBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;            .warmupIterations(10)</b>
    -<b class="nc">&nbsp;            .measurementIterations(10)</b>
    -<b class="nc">&nbsp;            .addProfiler(GCProfiler.class)</b>
    -<b class="nc">&nbsp;            .measurementTime(TimeValue.seconds(3))</b>
    -<b class="nc">&nbsp;            .timeUnit(TimeUnit.MICROSECONDS)</b>
    -<b class="nc">&nbsp;            .mode(Mode.AverageTime)</b>
    -<b class="nc">&nbsp;            .forks(1)</b>
    -<b class="nc">&nbsp;            .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index.html
    deleted file mode 100644
    index 66ac462ad8..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 1d3156bcc1..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index aa056b4b3d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index b1f1a7e879..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index ee5c804b00..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 86dc026a1a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 7eac142a63..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index db62a49d15..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 718dfa754c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index abb60a4fdb..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1.html
    deleted file mode 100644
    index 533cb2c90d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1.html
    +++ /dev/null
    @@ -1,108 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGaugeBenchmark_jmhType</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGaugeBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGaugeBenchmark_jmhType</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class CachedGaugeBenchmark_jmhType extends CachedGaugeBenchmark_jmhType_B3 {</b>
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-10.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-10.html
    deleted file mode 100644
    index 6e6b5e522d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-10.html
    +++ /dev/null
    @@ -1,108 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_jmhType</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_jmhType</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class ReservoirBenchmark_jmhType extends ReservoirBenchmark_jmhType_B3 {</b>
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-11.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-11.html
    deleted file mode 100644
    index cc4c91f1c5..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-11.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_jmhType_B1</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_jmhType_B1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import com.codahale.metrics.benchmarks.ReservoirBenchmark;
    -<b class="nc">&nbsp;public class ReservoirBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.ReservoirBenchmark {</b>
    -&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    -&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    -&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    -&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    -&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    -&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    -&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    -&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    -&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    -&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    -&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    -&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    -&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    -&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    -&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    -&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-12.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-12.html
    deleted file mode 100644
    index 0153ec0af9..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-12.html
    +++ /dev/null
    @@ -1,126 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_jmhType_B2</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_jmhType_B2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    -<b class="nc">&nbsp;public class ReservoirBenchmark_jmhType_B2 extends ReservoirBenchmark_jmhType_B1 {</b>
    -&nbsp;    public volatile int setupTrialMutex;
    -&nbsp;    public volatile int tearTrialMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupIterationMutex;
    -&nbsp;    public volatile int tearIterationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupInvocationMutex;
    -&nbsp;    public volatile int tearInvocationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile boolean readyTrial;
    -&nbsp;    public volatile boolean readyIteration;
    -&nbsp;    public volatile boolean readyInvocation;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-13.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-13.html
    deleted file mode 100644
    index b9b782e175..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-13.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_jmhType_B3</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_jmhType_B3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class ReservoirBenchmark_jmhType_B3 extends ReservoirBenchmark_jmhType_B2 {</b>
    -&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    -&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    -&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    -&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    -&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    -&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    -&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    -&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    -&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    -&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    -&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    -&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    -&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    -&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    -&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    -&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-14.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-14.html
    deleted file mode 100644
    index 419fcd75b9..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-14.html
    +++ /dev/null
    @@ -1,484 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfExponentiallyDecayingReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfExponentiallyDecayingReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfExponentiallyDecayingReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfExponentiallyDecayingReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfExponentiallyDecayingReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfExponentiallyDecayingReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfExponentiallyDecayingReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfExponentiallyDecayingReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfExponentiallyDecayingReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            perfExponentiallyDecayingReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfExponentiallyDecayingReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfExponentiallyDecayingReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfExponentiallyDecayingReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            perfExponentiallyDecayingReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfExponentiallyDecayingReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfExponentiallyDecayingReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    -&nbsp;    
    -&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-15.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-15.html
    deleted file mode 100644
    index f0f040c5e4..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-15.html
    +++ /dev/null
    @@ -1,484 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfLockFreeExponentiallyDecayingReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfLockFreeExponentiallyDecayingReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfLockFreeExponentiallyDecayingReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfLockFreeExponentiallyDecayingReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfLockFreeExponentiallyDecayingReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfLockFreeExponentiallyDecayingReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfLockFreeExponentiallyDecayingReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfLockFreeExponentiallyDecayingReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfLockFreeExponentiallyDecayingReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            perfLockFreeExponentiallyDecayingReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfLockFreeExponentiallyDecayingReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfLockFreeExponentiallyDecayingReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfLockFreeExponentiallyDecayingReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            perfLockFreeExponentiallyDecayingReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfLockFreeExponentiallyDecayingReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfLockFreeExponentiallyDecayingReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    -&nbsp;    
    -&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-16.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-16.html
    deleted file mode 100644
    index 8cb12e631f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-16.html
    +++ /dev/null
    @@ -1,484 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowArrayReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfSlidingTimeWindowArrayReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowArrayReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingTimeWindowArrayReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowArrayReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfSlidingTimeWindowArrayReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowArrayReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingTimeWindowArrayReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowArrayReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            perfSlidingTimeWindowArrayReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowArrayReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingTimeWindowArrayReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowArrayReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            perfSlidingTimeWindowArrayReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowArrayReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingTimeWindowArrayReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    -&nbsp;    
    -&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-17.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-17.html
    deleted file mode 100644
    index e27e2e33da..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-17.html
    +++ /dev/null
    @@ -1,484 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfSlidingTimeWindowReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingTimeWindowReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfSlidingTimeWindowReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingTimeWindowReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            perfSlidingTimeWindowReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingTimeWindowReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            perfSlidingTimeWindowReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingTimeWindowReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    -&nbsp;    
    -&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-18.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-18.html
    deleted file mode 100644
    index d42505e1a5..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-18.html
    +++ /dev/null
    @@ -1,484 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingWindowReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfSlidingWindowReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfSlidingWindowReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingWindowReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingWindowReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfSlidingWindowReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfSlidingWindowReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingWindowReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingWindowReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            perfSlidingWindowReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfSlidingWindowReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingWindowReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingWindowReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            perfSlidingWindowReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfSlidingWindowReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingWindowReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    -&nbsp;    
    -&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-19.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-19.html
    deleted file mode 100644
    index f3b65ca1a4..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-19.html
    +++ /dev/null
    @@ -1,484 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_perfUniformReservoir_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_perfUniformReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_perfUniformReservoir_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class ReservoirBenchmark_perfUniformReservoir_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfUniformReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfUniformReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfUniformReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfUniformReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfUniformReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfUniformReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfUniformReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfUniformReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfUniformReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            perfUniformReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfUniformReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfUniformReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfUniformReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            perfUniformReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfUniformReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfUniformReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    -&nbsp;    
    -&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1a.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1a.html
    deleted file mode 100644
    index 9e4b72d1a5..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1a.html
    +++ /dev/null
    @@ -1,724 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.SlidingTimeWindowReservoirsBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult arrTime_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            arrTimeAddMeasurement_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.SECONDARY, &quot;arrTimeAddMeasurement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            arrTimeRead_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.SECONDARY, &quot;arrTimeRead&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void arrTimeAddMeasurement_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void arrTimeRead_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult arrTime_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            arrTimeAddMeasurement_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.SECONDARY, &quot;arrTimeAddMeasurement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            arrTimeRead_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.SECONDARY, &quot;arrTimeRead&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void arrTimeAddMeasurement_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void arrTimeRead_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult arrTime_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            arrTimeAddMeasurement_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;arrTime&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.SECONDARY, &quot;arrTimeAddMeasurement&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            arrTimeRead_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;arrTime&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.SECONDARY, &quot;arrTimeRead&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void arrTimeAddMeasurement_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void arrTimeRead_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult arrTime_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            arrTimeAddMeasurement_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.SECONDARY, &quot;arrTimeAddMeasurement&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            arrTimeRead_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.SECONDARY, &quot;arrTimeRead&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void arrTimeAddMeasurement_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void arrTimeRead_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile SlidingTimeWindowReservoirsBenchmark_jmhType f_slidingtimewindowreservoirsbenchmark0_G;
    -&nbsp;    
    -&nbsp;    SlidingTimeWindowReservoirsBenchmark_jmhType _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        SlidingTimeWindowReservoirsBenchmark_jmhType val = f_slidingtimewindowreservoirsbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_slidingtimewindowreservoirsbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new SlidingTimeWindowReservoirsBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_slidingtimewindowreservoirsbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1b.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1b.html
    deleted file mode 100644
    index e957cfcd9d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1b.html
    +++ /dev/null
    @@ -1,108 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_jmhType</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoirsBenchmark_jmhType</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark_jmhType extends SlidingTimeWindowReservoirsBenchmark_jmhType_B3 {</b>
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1c.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1c.html
    deleted file mode 100644
    index 741cb2543c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1c.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_jmhType_B1</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import com.codahale.metrics.benchmarks.SlidingTimeWindowReservoirsBenchmark;
    -<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.SlidingTimeWindowReservoirsBenchmark {</b>
    -&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    -&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    -&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    -&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    -&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    -&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    -&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    -&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    -&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    -&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    -&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    -&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    -&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    -&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    -&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    -&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1d.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1d.html
    deleted file mode 100644
    index a8e466a94a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1d.html
    +++ /dev/null
    @@ -1,126 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_jmhType_B2</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    -<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark_jmhType_B2 extends SlidingTimeWindowReservoirsBenchmark_jmhType_B1 {</b>
    -&nbsp;    public volatile int setupTrialMutex;
    -&nbsp;    public volatile int tearTrialMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupIterationMutex;
    -&nbsp;    public volatile int tearIterationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupInvocationMutex;
    -&nbsp;    public volatile int tearInvocationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile boolean readyTrial;
    -&nbsp;    public volatile boolean readyIteration;
    -&nbsp;    public volatile boolean readyInvocation;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1e.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1e.html
    deleted file mode 100644
    index 824ac29ff4..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1e.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_jmhType_B3</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark_jmhType_B3 extends SlidingTimeWindowReservoirsBenchmark_jmhType_B2 {</b>
    -&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    -&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    -&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    -&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    -&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    -&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    -&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    -&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    -&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    -&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    -&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    -&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    -&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    -&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    -&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    -&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1f.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1f.html
    deleted file mode 100644
    index 7cc242b373..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-1f.html
    +++ /dev/null
    @@ -1,724 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.SlidingTimeWindowReservoirsBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult slidingTime_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            slidingTimeAddMeasurement_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.SECONDARY, &quot;slidingTimeAddMeasurement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            slidingTimeRead_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.SECONDARY, &quot;slidingTimeRead&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void slidingTimeAddMeasurement_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void slidingTimeRead_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult slidingTime_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            slidingTimeAddMeasurement_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.SECONDARY, &quot;slidingTimeAddMeasurement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            slidingTimeRead_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.SECONDARY, &quot;slidingTimeRead&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void slidingTimeAddMeasurement_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void slidingTimeRead_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult slidingTime_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            slidingTimeAddMeasurement_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.SECONDARY, &quot;slidingTimeAddMeasurement&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            slidingTimeRead_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.SECONDARY, &quot;slidingTimeRead&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void slidingTimeAddMeasurement_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void slidingTimeRead_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult slidingTime_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            slidingTimeAddMeasurement_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.SECONDARY, &quot;slidingTimeAddMeasurement&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            slidingTimeRead_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.SECONDARY, &quot;slidingTimeRead&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void slidingTimeAddMeasurement_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void slidingTimeRead_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile SlidingTimeWindowReservoirsBenchmark_jmhType f_slidingtimewindowreservoirsbenchmark0_G;
    -&nbsp;    
    -&nbsp;    SlidingTimeWindowReservoirsBenchmark_jmhType _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        SlidingTimeWindowReservoirsBenchmark_jmhType val = f_slidingtimewindowreservoirsbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_slidingtimewindowreservoirsbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new SlidingTimeWindowReservoirsBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_slidingtimewindowreservoirsbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-2.html
    deleted file mode 100644
    index 96b200f231..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-2.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGaugeBenchmark_jmhType_B1</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGaugeBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGaugeBenchmark_jmhType_B1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import com.codahale.metrics.benchmarks.CachedGaugeBenchmark;
    -<b class="nc">&nbsp;public class CachedGaugeBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.CachedGaugeBenchmark {</b>
    -&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    -&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    -&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    -&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    -&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    -&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    -&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    -&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    -&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    -&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    -&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    -&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    -&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    -&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    -&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    -&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-3.html
    deleted file mode 100644
    index 82f8ad00c8..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-3.html
    +++ /dev/null
    @@ -1,126 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGaugeBenchmark_jmhType_B2</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGaugeBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGaugeBenchmark_jmhType_B2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    -<b class="nc">&nbsp;public class CachedGaugeBenchmark_jmhType_B2 extends CachedGaugeBenchmark_jmhType_B1 {</b>
    -&nbsp;    public volatile int setupTrialMutex;
    -&nbsp;    public volatile int tearTrialMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupIterationMutex;
    -&nbsp;    public volatile int tearIterationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupInvocationMutex;
    -&nbsp;    public volatile int tearInvocationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile boolean readyTrial;
    -&nbsp;    public volatile boolean readyIteration;
    -&nbsp;    public volatile boolean readyInvocation;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-4.html
    deleted file mode 100644
    index 947a5cdc1a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-4.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGaugeBenchmark_jmhType_B3</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGaugeBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGaugeBenchmark_jmhType_B3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class CachedGaugeBenchmark_jmhType_B3 extends CachedGaugeBenchmark_jmhType_B2 {</b>
    -&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    -&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    -&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    -&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    -&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    -&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    -&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    -&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    -&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    -&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    -&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    -&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    -&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    -&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    -&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    -&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-5.html
    deleted file mode 100644
    index 20fb751e65..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-5.html
    +++ /dev/null
    @@ -1,484 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGaugeBenchmark_perfGetValue_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGaugeBenchmark_perfGetValue_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGaugeBenchmark_perfGetValue_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.CachedGaugeBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class CachedGaugeBenchmark_perfGetValue_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfGetValue_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G = _jmh_tryInit_f_cachedgaugebenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfGetValue_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_cachedgaugebenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_cachedgaugebenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfGetValue&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfGetValue_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfGetValue_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G = _jmh_tryInit_f_cachedgaugebenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfGetValue_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_cachedgaugebenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_cachedgaugebenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfGetValue&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfGetValue_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfGetValue_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G = _jmh_tryInit_f_cachedgaugebenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            perfGetValue_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_cachedgaugebenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_cachedgaugebenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfGetValue&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfGetValue_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfGetValue_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G = _jmh_tryInit_f_cachedgaugebenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            perfGetValue_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_cachedgaugebenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_cachedgaugebenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfGetValue&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfGetValue_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile CachedGaugeBenchmark_jmhType f_cachedgaugebenchmark0_G;
    -&nbsp;    
    -&nbsp;    CachedGaugeBenchmark_jmhType _jmh_tryInit_f_cachedgaugebenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        CachedGaugeBenchmark_jmhType val = f_cachedgaugebenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_cachedgaugebenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new CachedGaugeBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_cachedgaugebenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-6.html
    deleted file mode 100644
    index f8b6d6c286..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-6.html
    +++ /dev/null
    @@ -1,108 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CounterBenchmark_jmhType</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CounterBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CounterBenchmark_jmhType</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class CounterBenchmark_jmhType extends CounterBenchmark_jmhType_B3 {</b>
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-7.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-7.html
    deleted file mode 100644
    index 363dab61d6..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-7.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CounterBenchmark_jmhType_B1</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CounterBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CounterBenchmark_jmhType_B1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import com.codahale.metrics.benchmarks.CounterBenchmark;
    -<b class="nc">&nbsp;public class CounterBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.CounterBenchmark {</b>
    -&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    -&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    -&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    -&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    -&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    -&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    -&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    -&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    -&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    -&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    -&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    -&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    -&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    -&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    -&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    -&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-8.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-8.html
    deleted file mode 100644
    index 1dbdcc2c3b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-8.html
    +++ /dev/null
    @@ -1,126 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CounterBenchmark_jmhType_B2</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CounterBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CounterBenchmark_jmhType_B2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    -<b class="nc">&nbsp;public class CounterBenchmark_jmhType_B2 extends CounterBenchmark_jmhType_B1 {</b>
    -&nbsp;    public volatile int setupTrialMutex;
    -&nbsp;    public volatile int tearTrialMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupIterationMutex;
    -&nbsp;    public volatile int tearIterationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupInvocationMutex;
    -&nbsp;    public volatile int tearInvocationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile boolean readyTrial;
    -&nbsp;    public volatile boolean readyIteration;
    -&nbsp;    public volatile boolean readyInvocation;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-9.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-9.html
    deleted file mode 100644
    index d65d7ff7ec..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-9.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CounterBenchmark_jmhType_B3</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CounterBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CounterBenchmark_jmhType_B3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class CounterBenchmark_jmhType_B3 extends CounterBenchmark_jmhType_B2 {</b>
    -&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    -&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    -&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    -&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    -&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    -&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    -&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    -&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    -&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    -&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    -&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    -&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    -&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    -&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    -&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    -&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-a.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-a.html
    deleted file mode 100644
    index 96311f3949..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-a.html
    +++ /dev/null
    @@ -1,484 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CounterBenchmark_perfIncrement_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CounterBenchmark_perfIncrement_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CounterBenchmark_perfIncrement_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.CounterBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class CounterBenchmark_perfIncrement_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfIncrement_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            CounterBenchmark_jmhType l_counterbenchmark0_G = _jmh_tryInit_f_counterbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfIncrement_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_counterbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_counterbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfIncrement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfIncrement_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, CounterBenchmark_jmhType l_counterbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfIncrement_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            CounterBenchmark_jmhType l_counterbenchmark0_G = _jmh_tryInit_f_counterbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfIncrement_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_counterbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_counterbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfIncrement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfIncrement_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, CounterBenchmark_jmhType l_counterbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfIncrement_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            CounterBenchmark_jmhType l_counterbenchmark0_G = _jmh_tryInit_f_counterbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            perfIncrement_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_counterbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_counterbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfIncrement&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfIncrement_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, CounterBenchmark_jmhType l_counterbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfIncrement_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            CounterBenchmark_jmhType l_counterbenchmark0_G = _jmh_tryInit_f_counterbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            perfIncrement_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_counterbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_counterbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfIncrement&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfIncrement_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, CounterBenchmark_jmhType l_counterbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile CounterBenchmark_jmhType f_counterbenchmark0_G;
    -&nbsp;    
    -&nbsp;    CounterBenchmark_jmhType _jmh_tryInit_f_counterbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        CounterBenchmark_jmhType val = f_counterbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_counterbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new CounterBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_counterbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-b.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-b.html
    deleted file mode 100644
    index 2ac33def82..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-b.html
    +++ /dev/null
    @@ -1,108 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MeterBenchmark_jmhType</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MeterBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MeterBenchmark_jmhType</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class MeterBenchmark_jmhType extends MeterBenchmark_jmhType_B3 {</b>
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-c.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-c.html
    deleted file mode 100644
    index 6685d86a15..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-c.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MeterBenchmark_jmhType_B1</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MeterBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MeterBenchmark_jmhType_B1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import com.codahale.metrics.benchmarks.MeterBenchmark;
    -<b class="nc">&nbsp;public class MeterBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.MeterBenchmark {</b>
    -&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    -&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    -&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    -&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    -&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    -&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    -&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    -&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    -&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    -&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    -&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    -&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    -&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    -&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    -&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    -&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-d.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-d.html
    deleted file mode 100644
    index b979571e4c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-d.html
    +++ /dev/null
    @@ -1,126 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MeterBenchmark_jmhType_B2</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MeterBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MeterBenchmark_jmhType_B2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    -<b class="nc">&nbsp;public class MeterBenchmark_jmhType_B2 extends MeterBenchmark_jmhType_B1 {</b>
    -&nbsp;    public volatile int setupTrialMutex;
    -&nbsp;    public volatile int tearTrialMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupIterationMutex;
    -&nbsp;    public volatile int tearIterationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupInvocationMutex;
    -&nbsp;    public volatile int tearInvocationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile boolean readyTrial;
    -&nbsp;    public volatile boolean readyIteration;
    -&nbsp;    public volatile boolean readyInvocation;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-e.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-e.html
    deleted file mode 100644
    index 74e0777cf9..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-e.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MeterBenchmark_jmhType_B3</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MeterBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MeterBenchmark_jmhType_B3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class MeterBenchmark_jmhType_B3 extends MeterBenchmark_jmhType_B2 {</b>
    -&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    -&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    -&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    -&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    -&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    -&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    -&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    -&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    -&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    -&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    -&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    -&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    -&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    -&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    -&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    -&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-f.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-f.html
    deleted file mode 100644
    index 346569be5c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-4/sources/source-f.html
    +++ /dev/null
    @@ -1,484 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MeterBenchmark_perfMark_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MeterBenchmark_perfMark_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MeterBenchmark_perfMark_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.MeterBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class MeterBenchmark_perfMark_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfMark_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            MeterBenchmark_jmhType l_meterbenchmark0_G = _jmh_tryInit_f_meterbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfMark_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_meterbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_meterbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfMark&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfMark_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, MeterBenchmark_jmhType l_meterbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfMark_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            MeterBenchmark_jmhType l_meterbenchmark0_G = _jmh_tryInit_f_meterbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfMark_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_meterbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_meterbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfMark&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfMark_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, MeterBenchmark_jmhType l_meterbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfMark_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            MeterBenchmark_jmhType l_meterbenchmark0_G = _jmh_tryInit_f_meterbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            perfMark_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_meterbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_meterbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfMark&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfMark_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, MeterBenchmark_jmhType l_meterbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfMark_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            MeterBenchmark_jmhType l_meterbenchmark0_G = _jmh_tryInit_f_meterbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            perfMark_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_meterbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_meterbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfMark&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfMark_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, MeterBenchmark_jmhType l_meterbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile MeterBenchmark_jmhType f_meterbenchmark0_G;
    -&nbsp;    
    -&nbsp;    MeterBenchmark_jmhType _jmh_tryInit_f_meterbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        MeterBenchmark_jmhType val = f_meterbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_meterbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new MeterBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_meterbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index.html
    deleted file mode 100644
    index 592903c667..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 7b26e1136c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 23d6f24636..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index eb679e48da..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 1c99a1b4b4..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 3b9139e690..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 21db42b9d3..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index a20459d49c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 702194eafd..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 2ca5da7f35..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/sources/source-1.html
    deleted file mode 100644
    index 78e5e1accb..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-5/sources/source-1.html
    +++ /dev/null
    @@ -1,250 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsStatsCounter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.caffeine</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsStatsCounter (com.codahale.metrics.caffeine)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsStatsCounter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;/*
    -&nbsp; * Copyright 2016 Ben Manes. All Rights Reserved.
    -&nbsp; *
    -&nbsp; * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    -&nbsp; * you may not use this file except in compliance with the License.
    -&nbsp; * You may obtain a copy of the License at
    -&nbsp; *
    -&nbsp; *     http://www.apache.org/licenses/LICENSE-2.0
    -&nbsp; *
    -&nbsp; * Unless required by applicable law or agreed to in writing, software
    -&nbsp; * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    -&nbsp; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -&nbsp; * See the License for the specific language governing permissions and
    -&nbsp; * limitations under the License.
    -&nbsp; */
    -&nbsp;package com.codahale.metrics.caffeine;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;import java.util.EnumMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.github.benmanes.caffeine.cache.RemovalCause;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.CacheStats;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.StatsCounter;
    -&nbsp;import org.checkerframework.checker.index.qual.NonNegative;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link StatsCounter} instrumented with Dropwizard Metrics.
    -&nbsp; *
    -&nbsp; * @author ben.manes@gmail.com (Ben Manes)
    -&nbsp; * @author John Karp
    -&nbsp; */
    -&nbsp;public final class MetricsStatsCounter implements StatsCounter {
    -&nbsp;  private final Counter hitCount;
    -&nbsp;  private final Counter missCount;
    -&nbsp;  private final Timer loadSuccess;
    -&nbsp;  private final Timer loadFailure;
    -&nbsp;  private final Histogram evictions;
    -&nbsp;  private final Counter evictionWeight;
    -&nbsp;  private final EnumMap&lt;RemovalCause, Histogram&gt; evictionsWithCause;
    -&nbsp;
    -&nbsp;  // for implementing snapshot()
    -<b class="fc">&nbsp;  private final LongAdder totalLoadTime = new LongAdder();</b>
    -&nbsp;
    -&nbsp;  /**
    -&nbsp;   * Constructs an instance for use by a single cache.
    -&nbsp;   *
    -&nbsp;   * @param registry the registry of metric instances
    -&nbsp;   * @param metricsPrefix the prefix name for the metrics
    -&nbsp;   */
    -<b class="fc">&nbsp;  public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {</b>
    -<b class="fc">&nbsp;    requireNonNull(metricsPrefix);</b>
    -<b class="fc">&nbsp;    hitCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;hits&quot;));</b>
    -<b class="fc">&nbsp;    missCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;misses&quot;));</b>
    -<b class="fc">&nbsp;    loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-success&quot;));</b>
    -<b class="fc">&nbsp;    loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-failure&quot;));</b>
    -<b class="fc">&nbsp;    evictions = registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;));</b>
    -<b class="fc">&nbsp;    evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, &quot;evictions-weight&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    evictionsWithCause = new EnumMap&lt;&gt;(RemovalCause.class);</b>
    -<b class="fc">&nbsp;    for (RemovalCause cause : RemovalCause.values()) {</b>
    -<b class="fc">&nbsp;      evictionsWithCause.put(</b>
    -&nbsp;          cause,
    -<b class="fc">&nbsp;          registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;, cause.name())));</b>
    -&nbsp;    }
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordHits(int count) {
    -<b class="fc">&nbsp;    hitCount.inc(count);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordMisses(int count) {
    -<b class="fc">&nbsp;    missCount.inc(count);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadSuccess(long loadTime) {
    -<b class="fc">&nbsp;    loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadFailure(long loadTime) {
    -<b class="fc">&nbsp;    loadFailure.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  // @Override -- Caffeine 2.x
    -&nbsp;  @Deprecated
    -&nbsp;  @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;  public void recordEviction() {
    -&nbsp;    // This method is scheduled for removal in version 3.0 in favor of recordEviction(weight)
    -<b class="fc">&nbsp;    recordEviction(1);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  // @Override -- Caffeine 2.x
    -&nbsp;  @Deprecated
    -&nbsp;  @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;  public void recordEviction(int weight) {
    -<b class="fc">&nbsp;    evictions.update(weight);</b>
    -<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordEviction(@NonNegative int weight, RemovalCause cause) {
    -<b class="fc">&nbsp;    evictionsWithCause.get(cause).update(weight);</b>
    -<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public CacheStats snapshot() {
    -<b class="fc">&nbsp;    return CacheStats.of(</b>
    -<b class="fc">&nbsp;        hitCount.getCount(),</b>
    -<b class="fc">&nbsp;        missCount.getCount(),</b>
    -<b class="fc">&nbsp;        loadSuccess.getCount(),</b>
    -<b class="fc">&nbsp;        loadFailure.getCount(),</b>
    -<b class="fc">&nbsp;        totalLoadTime.sum(),</b>
    -<b class="fc">&nbsp;        evictions.getCount(),</b>
    -<b class="fc">&nbsp;        evictionWeight.getCount());</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public String toString() {
    -<b class="nc">&nbsp;    return snapshot().toString();</b>
    -&nbsp;  }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index.html
    deleted file mode 100644
    index 7a32b258a6..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index f9025593dc..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index a6a348ee2b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 7a43c9c8df..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index a551a69948..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 05a1b0e99c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index ebbdfca255..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 0d55b084c0..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 41d69a336e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 4ae11f3765..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-1.html
    deleted file mode 100644
    index d9ab430aba..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-1.html
    +++ /dev/null
    @@ -1,470 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CollectdReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CollectdReporter (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CollectdReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.9%
    -  </span>
    -  <span class="absValue">
    -    (79/93)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">CollectdReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CollectdReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (9/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.1%
    -  </span>
    -  <span class="absValue">
    -    (31/43)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricAttribute;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.ScheduledReporter;
    -&nbsp;import com.codahale.metrics.Snapshot;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.InetAddress;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which publishes metric values to a Collectd server.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;https://collectd.org&quot;&gt;collectd – The system statistics
    -&nbsp; * collection daemon&lt;/a&gt;
    -&nbsp; */
    -<b class="fc">&nbsp;public class CollectdReporter extends ScheduledReporter {</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a builder for the specified registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The default settings are:
    -&nbsp;     * &lt;ul&gt;
    -&nbsp;     * &lt;li&gt;hostName: InetAddress.getLocalHost().getHostName()&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;executor: default executor created by {@code ScheduledReporter}&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;shutdownExecutorOnStop: true&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;clock: Clock.defaultClock()&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;rateUnit: TimeUnit.SECONDS&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;durationUnit: TimeUnit.MILLISECONDS&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;filter: MetricFilter.ALL&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;securityLevel: NONE&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;username: &quot;&quot;&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;password: &quot;&quot;&lt;/li&gt;
    -&nbsp;     * &lt;/ul&gt;
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private String hostName;
    -&nbsp;        private ScheduledExecutorService executor;
    -<b class="fc">&nbsp;        private boolean shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;        private Clock clock = Clock.defaultClock();</b>
    -<b class="fc">&nbsp;        private TimeUnit rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;        private TimeUnit durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;        private MetricFilter filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;        private SecurityLevel securityLevel = SecurityLevel.NONE;</b>
    -<b class="fc">&nbsp;        private String username = &quot;&quot;;</b>
    -<b class="fc">&nbsp;        private String password = &quot;&quot;;</b>
    -<b class="fc">&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes = Collections.emptySet();</b>
    -<b class="fc">&nbsp;        private int maxLength = Sanitize.DEFAULT_MAX_LENGTH;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withHostName(String hostName) {
    -<b class="fc">&nbsp;            this.hostName = hostName;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withClock(Clock clock) {
    -<b class="nc">&nbsp;            this.clock = clock;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="nc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="nc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="nc">&nbsp;            this.filter = filter;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withUsername(String username) {
    -<b class="fc">&nbsp;            this.username = username;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withPassword(String password) {
    -<b class="fc">&nbsp;            this.password = password;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withSecurityLevel(SecurityLevel securityLevel) {
    -<b class="fc">&nbsp;            this.securityLevel = securityLevel;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; attributes) {
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = attributes;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withMaxLength(int maxLength) {
    -<b class="fc">&nbsp;            this.maxLength = maxLength;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public CollectdReporter build(Sender sender) {
    -<b class="fc">&nbsp;            if (securityLevel != SecurityLevel.NONE) {</b>
    -<b class="fc">&nbsp;                if (username.isEmpty()) {</b>
    -<b class="fc">&nbsp;                    throw new IllegalArgumentException(&quot;username is required for securityLevel: &quot; + securityLevel);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                if (password.isEmpty()) {</b>
    -<b class="fc">&nbsp;                    throw new IllegalArgumentException(&quot;password is required for securityLevel: &quot; + securityLevel);</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new CollectdReporter(registry,</b>
    -&nbsp;                    hostName, sender,
    -&nbsp;                    executor, shutdownExecutorOnStop,
    -&nbsp;                    clock, rateUnit, durationUnit,
    -&nbsp;                    filter, disabledMetricAttributes,
    -&nbsp;                    username, password, securityLevel, new Sanitize(maxLength));
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOG = LoggerFactory.getLogger(CollectdReporter.class);</b>
    -&nbsp;    private static final String REPORTER_NAME = &quot;collectd-reporter&quot;;
    -&nbsp;    private static final String FALLBACK_HOST_NAME = &quot;localhost&quot;;
    -&nbsp;    private static final String COLLECTD_TYPE_GAUGE = &quot;gauge&quot;;
    -&nbsp;
    -&nbsp;    private String hostName;
    -&nbsp;    private final Sender sender;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private long period;
    -&nbsp;    private final PacketWriter writer;
    -&nbsp;    private final Sanitize sanitize;
    -&nbsp;
    -&nbsp;    private CollectdReporter(MetricRegistry registry,
    -&nbsp;                             String hostname, Sender sender,
    -&nbsp;                             ScheduledExecutorService executor, boolean shutdownExecutorOnStop,
    -&nbsp;                             Clock clock, TimeUnit rateUnit, TimeUnit durationUnit,
    -&nbsp;                             MetricFilter filter, Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    -&nbsp;                             String username, String password,
    -&nbsp;                             SecurityLevel securityLevel, Sanitize sanitize) {
    -<b class="fc">&nbsp;        super(registry, REPORTER_NAME, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes);
    -<b class="fc">&nbsp;        this.hostName = (hostname != null) ? hostname : resolveHostName();</b>
    -<b class="fc">&nbsp;        this.sender = sender;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.sanitize = sanitize;</b>
    -<b class="fc">&nbsp;        writer = new PacketWriter(sender, username, password, securityLevel);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String resolveHostName() {
    -&nbsp;        try {
    -<b class="nc">&nbsp;            return InetAddress.getLocalHost().getHostName();</b>
    -<b class="nc">&nbsp;        } catch (Exception e) {</b>
    -<b class="nc">&nbsp;            LOG.error(&quot;Failed to lookup local host name: {}&quot;, e.getMessage(), e);</b>
    -<b class="nc">&nbsp;            return FALLBACK_HOST_NAME;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start(long period, TimeUnit unit) {
    -<b class="nc">&nbsp;        this.period = period;</b>
    -<b class="nc">&nbsp;        super.start(period, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges, SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;            SortedMap&lt;String, Histogram&gt; histograms, SortedMap&lt;String, Meter&gt; meters, SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        MetaData.Builder metaData = new MetaData.Builder(sanitize, hostName, clock.getTime() / 1000, period)</b>
    -<b class="fc">&nbsp;                .type(COLLECTD_TYPE_GAUGE);</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            connect(sender);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeGauge(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeCounter(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeHistogram(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeMeter(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeTimer(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Unable to report to Collectd&quot;, e);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            disconnect(sender);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void connect(Sender sender) throws IOException {
    -<b class="fc">&nbsp;        if (!sender.isConnected()) {</b>
    -<b class="fc">&nbsp;            sender.connect();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void disconnect(Sender sender) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            sender.disconnect();</b>
    -<b class="nc">&nbsp;        } catch (Exception e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Error disconnecting from Collectd&quot;, e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeValue(MetaData.Builder metaData, MetricAttribute attribute, Number value) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(attribute)) {</b>
    -<b class="fc">&nbsp;            write(metaData.typeInstance(attribute.getCode()).get(), value);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeRate(MetaData.Builder metaData, MetricAttribute attribute, double rate) {
    -<b class="fc">&nbsp;        writeValue(metaData, attribute, convertRate(rate));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeDuration(MetaData.Builder metaData, MetricAttribute attribute, double duration) {
    -<b class="fc">&nbsp;        writeValue(metaData, attribute, convertDuration(duration));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void write(MetaData metaData, Number value) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            writer.write(metaData, value);</b>
    -<b class="nc">&nbsp;        } catch (RuntimeException e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Failed to process metric &#39;&quot; + metaData.getPlugin() + &quot;&#39;: &quot; + e.getMessage());</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            LOG.error(&quot;Failed to send metric to collectd&quot;, e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    private void serializeGauge(MetaData.Builder metaData, Gauge metric) {
    -<b class="fc">&nbsp;        if (metric.getValue() instanceof Number) {</b>
    -<b class="fc">&nbsp;            write(metaData.typeInstance(&quot;value&quot;).get(), (Number) metric.getValue());</b>
    -<b class="fc">&nbsp;        } else if (metric.getValue() instanceof Boolean) {</b>
    -<b class="fc">&nbsp;            write(metaData.typeInstance(&quot;value&quot;).get(), ((Boolean) metric.getValue()) ? 1 : 0);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            LOG.warn(&quot;Failed to process metric &#39;{}&#39;. Unsupported gauge of type: {} &quot;, metaData.get().getPlugin(),</b>
    -<b class="fc">&nbsp;                    metric.getValue().getClass().getName());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeMeter(MetaData.Builder metaData, Meter metric) {
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M1_RATE, metric.getOneMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, MEAN_RATE, metric.getMeanRate());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeCounter(MetaData.Builder metaData, Counter metric) {
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeHistogram(MetaData.Builder metaData, Histogram metric) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = metric.getSnapshot();</b>
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, MAX, (double) snapshot.getMax());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, MEAN, snapshot.getMean());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, MIN, (double) snapshot.getMin());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, STDDEV, snapshot.getStdDev());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P50, snapshot.getMedian());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P75, snapshot.get75thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P95, snapshot.get95thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P98, snapshot.get98thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P99, snapshot.get99thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P999, snapshot.get999thPercentile());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeTimer(MetaData.Builder metaData, Timer metric) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = metric.getSnapshot();</b>
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, MAX, (double) snapshot.getMax());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, MEAN, snapshot.getMean());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, MIN, (double) snapshot.getMin());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, STDDEV, snapshot.getStdDev());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P50, snapshot.getMedian());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P75, snapshot.get75thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P95, snapshot.get95thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P98, snapshot.get98thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P99, snapshot.get99thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P999, snapshot.get999thPercentile());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M1_RATE, metric.getOneMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, MEAN_RATE, metric.getMeanRate());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-2.html
    deleted file mode 100644
    index 2d12258704..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-2.html
    +++ /dev/null
    @@ -1,228 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetaData</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetaData (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetaData</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetaData$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (13/15)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;class MetaData {
    -&nbsp;
    -&nbsp;    private final String host;
    -&nbsp;    private final String plugin;
    -&nbsp;    private final String pluginInstance;
    -&nbsp;    private final String type;
    -&nbsp;    private final String typeInstance;
    -&nbsp;    private final long timestamp;
    -&nbsp;    private final long period;
    -&nbsp;
    -&nbsp;    MetaData(String host, String plugin, String pluginInstance, String type, String typeInstance,
    -<b class="fc">&nbsp;             long timestamp, long period) {</b>
    -<b class="fc">&nbsp;        this.host = host;</b>
    -<b class="fc">&nbsp;        this.plugin = plugin;</b>
    -<b class="fc">&nbsp;        this.pluginInstance = pluginInstance;</b>
    -<b class="fc">&nbsp;        this.type = type;</b>
    -<b class="fc">&nbsp;        this.typeInstance = typeInstance;</b>
    -<b class="fc">&nbsp;        this.timestamp = timestamp;</b>
    -<b class="fc">&nbsp;        this.period = period;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getHost() {
    -<b class="fc">&nbsp;        return host;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getPlugin() {
    -<b class="fc">&nbsp;        return plugin;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getPluginInstance() {
    -<b class="fc">&nbsp;        return pluginInstance;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getType() {
    -<b class="fc">&nbsp;        return type;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getTypeInstance() {
    -<b class="fc">&nbsp;        return typeInstance;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    long getTimestamp() {
    -<b class="fc">&nbsp;        return timestamp;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    long getPeriod() {
    -<b class="fc">&nbsp;        return period;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    static class Builder {
    -&nbsp;
    -&nbsp;        private String host;
    -&nbsp;        private String plugin;
    -&nbsp;        private String pluginInstance;
    -&nbsp;        private String type;
    -&nbsp;        private String typeInstance;
    -&nbsp;        private long timestamp;
    -&nbsp;        private long period;
    -&nbsp;        private Sanitize sanitize;
    -&nbsp;
    -&nbsp;        Builder(String host, long timestamp, long duration) {
    -<b class="fc">&nbsp;            this(new Sanitize(Sanitize.DEFAULT_MAX_LENGTH), host, timestamp, duration);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        Builder(Sanitize sanitize, String host, long timestamp, long duration) {</b>
    -<b class="fc">&nbsp;            this.sanitize = sanitize;</b>
    -<b class="fc">&nbsp;            this.host = sanitize.instanceName(host);</b>
    -<b class="fc">&nbsp;            this.timestamp = timestamp;</b>
    -<b class="fc">&nbsp;            period = duration;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder plugin(String name) {
    -<b class="fc">&nbsp;            plugin = sanitize.name(name);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder pluginInstance(String name) {
    -<b class="nc">&nbsp;            pluginInstance = sanitize.instanceName(name);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder type(String name) {
    -<b class="fc">&nbsp;            type = sanitize.name(name);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder typeInstance(String name) {
    -<b class="fc">&nbsp;            typeInstance = sanitize.instanceName(name);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        MetaData get() {
    -<b class="fc">&nbsp;            return new MetaData(host, plugin, pluginInstance, type, typeInstance, timestamp, period);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-3.html
    deleted file mode 100644
    index f37528b1b1..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-3.html
    +++ /dev/null
    @@ -1,424 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PacketWriter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PacketWriter (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PacketWriter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.4%
    -  </span>
    -  <span class="absValue">
    -    (88/103)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">PacketWriter$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">PacketWriter$EncryptionResult</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import javax.crypto.BadPaddingException;
    -&nbsp;import javax.crypto.Cipher;
    -&nbsp;import javax.crypto.IllegalBlockSizeException;
    -&nbsp;import javax.crypto.Mac;
    -&nbsp;import javax.crypto.NoSuchPaddingException;
    -&nbsp;import javax.crypto.ShortBufferException;
    -&nbsp;import javax.crypto.spec.IvParameterSpec;
    -&nbsp;import javax.crypto.spec.SecretKeySpec;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.BufferOverflowException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.ByteOrder;
    -&nbsp;import java.nio.charset.StandardCharsets;
    -&nbsp;import java.security.InvalidKeyException;
    -&nbsp;import java.security.MessageDigest;
    -&nbsp;import java.security.NoSuchAlgorithmException;
    -&nbsp;import java.security.spec.InvalidParameterSpecException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;
    -&nbsp;class PacketWriter {
    -&nbsp;
    -&nbsp;    private static final int TYPE_HOST = 0;
    -&nbsp;    private static final int TYPE_TIME = 1;
    -&nbsp;    private static final int TYPE_PLUGIN = 2;
    -&nbsp;    private static final int TYPE_PLUGIN_INSTANCE = 3;
    -&nbsp;    private static final int TYPE_TYPE = 4;
    -&nbsp;    private static final int TYPE_TYPE_INSTANCE = 5;
    -&nbsp;    private static final int TYPE_VALUES = 6;
    -&nbsp;    private static final int TYPE_INTERVAL = 7;
    -&nbsp;    private static final int TYPE_SIGN_SHA256 = 0x0200;
    -&nbsp;    private static final int TYPE_ENCR_AES256 = 0x0210;
    -&nbsp;
    -&nbsp;    private static final int UINT16_LEN = 2;
    -&nbsp;    private static final int UINT32_LEN = UINT16_LEN * 2;
    -&nbsp;    private static final int UINT64_LEN = UINT32_LEN * 2;
    -&nbsp;    private static final int HEADER_LEN = UINT16_LEN * 2;
    -&nbsp;    private static final int BUFFER_SIZE = 1024;
    -&nbsp;
    -&nbsp;    private static final int VALUE_COUNT_LEN = UINT16_LEN;
    -&nbsp;    private static final int NUMBER_LEN = HEADER_LEN + UINT64_LEN;
    -&nbsp;    private static final int SIGNATURE_LEN = 36;      // 2b Type + 2b Length + 32b Hash
    -&nbsp;    private static final int ENCRYPT_DATA_LEN = 22;   // 16b IV + 2b Type + 2b Length + 2b Username length
    -&nbsp;    private static final int IV_LENGTH = 16;
    -&nbsp;    private static final int SHA1_LENGTH = 20;
    -&nbsp;
    -&nbsp;    private static final int VALUE_LEN = 9;
    -&nbsp;    private static final byte DATA_TYPE_GAUGE = (byte) 1;
    -&nbsp;    private static final byte NULL = (byte) &#39;\0&#39;;
    -&nbsp;    private static final String HMAC_SHA256_ALGORITHM = &quot;HmacSHA256&quot;;
    -&nbsp;    private static final String AES_CYPHER = &quot;AES_256/OFB/NoPadding&quot;;
    -&nbsp;    private static final String AES = &quot;AES&quot;;
    -&nbsp;    private static final String SHA_256_ALGORITHM = &quot;SHA-256&quot;;
    -&nbsp;    private static final String SHA_1_ALGORITHM = &quot;SHA1&quot;;
    -&nbsp;
    -&nbsp;    private final Sender sender;
    -&nbsp;
    -&nbsp;    private final SecurityLevel securityLevel;
    -&nbsp;    private final byte[] username;
    -&nbsp;    private final byte[] password;
    -&nbsp;
    -<b class="fc">&nbsp;    PacketWriter(Sender sender, String username, String password, SecurityLevel securityLevel) {</b>
    -<b class="fc">&nbsp;        this.sender = sender;</b>
    -<b class="fc">&nbsp;        this.securityLevel = securityLevel;</b>
    -<b class="fc">&nbsp;        this.username = username != null ? username.getBytes(StandardCharsets.UTF_8) : null;</b>
    -<b class="fc">&nbsp;        this.password = password != null ? password.getBytes(StandardCharsets.UTF_8) : null;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void write(MetaData metaData, Number... values) throws BufferOverflowException, IOException {
    -<b class="fc">&nbsp;        final ByteBuffer packet = ByteBuffer.allocate(BUFFER_SIZE);</b>
    -<b class="fc">&nbsp;        write(packet, metaData);</b>
    -<b class="fc">&nbsp;        write(packet, values);</b>
    -<b class="fc">&nbsp;        packet.flip();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        switch (securityLevel) {</b>
    -&nbsp;            case NONE:
    -<b class="fc">&nbsp;                sender.send(packet);</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case SIGN:
    -<b class="fc">&nbsp;                sender.send(signPacket(packet));</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case ENCRYPT:
    -<b class="fc">&nbsp;                sender.send(encryptPacket(packet));</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;Unsupported security level: &quot; + securityLevel);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    private void write(ByteBuffer buffer, MetaData metaData) {
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_HOST, metaData.getHost());</b>
    -<b class="fc">&nbsp;        writeNumber(buffer, TYPE_TIME, metaData.getTimestamp());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_PLUGIN, metaData.getPlugin());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_PLUGIN_INSTANCE, metaData.getPluginInstance());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_TYPE, metaData.getType());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_TYPE_INSTANCE, metaData.getTypeInstance());</b>
    -<b class="fc">&nbsp;        writeNumber(buffer, TYPE_INTERVAL, metaData.getPeriod());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void write(ByteBuffer buffer, Number... values) {
    -<b class="fc">&nbsp;        final int numValues = values.length;</b>
    -<b class="fc">&nbsp;        final int length = HEADER_LEN + VALUE_COUNT_LEN + numValues * VALUE_LEN;</b>
    -<b class="fc">&nbsp;        writeHeader(buffer, TYPE_VALUES, length);</b>
    -<b class="fc">&nbsp;        buffer.putShort((short) numValues);</b>
    -<b class="fc">&nbsp;        buffer.put(nCopies(numValues, DATA_TYPE_GAUGE));</b>
    -<b class="fc">&nbsp;        buffer.order(ByteOrder.LITTLE_ENDIAN);</b>
    -<b class="fc">&nbsp;        for (Number value : values) {</b>
    -<b class="fc">&nbsp;            buffer.putDouble(value.doubleValue());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        buffer.order(ByteOrder.BIG_ENDIAN);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private byte[] nCopies(int n, byte value) {
    -<b class="fc">&nbsp;        final byte[] array = new byte[n];</b>
    -<b class="fc">&nbsp;        Arrays.fill(array, value);</b>
    -<b class="fc">&nbsp;        return array;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeString(ByteBuffer buffer, int type, String val) {
    -<b class="fc">&nbsp;        if (val == null || val.length() == 0) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        int len = HEADER_LEN + val.length() + 1;</b>
    -<b class="fc">&nbsp;        writeHeader(buffer, type, len);</b>
    -<b class="fc">&nbsp;        buffer.put(val.getBytes(StandardCharsets.US_ASCII)).put(NULL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeNumber(ByteBuffer buffer, int type, long val) {
    -<b class="fc">&nbsp;        writeHeader(buffer, type, NUMBER_LEN);</b>
    -<b class="fc">&nbsp;        buffer.putLong(val);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeHeader(ByteBuffer buffer, int type, int len) {
    -<b class="fc">&nbsp;        buffer.putShort((short) type);</b>
    -<b class="fc">&nbsp;        buffer.putShort((short) len);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Signs the provided packet, so a CollectD server can verify that its authenticity.
    -&nbsp;     * Wire format:
    -&nbsp;     * &lt;pre&gt;
    -&nbsp;     * +-------------------------------+-------------------------------+
    -&nbsp;     * ! Type (0x0200)                 ! Length                        !
    -&nbsp;     * +-------------------------------+-------------------------------+
    -&nbsp;     * ! Signature (SHA2(username + packet))                           \
    -&nbsp;     * +-------------------------------+-------------------------------+
    -&nbsp;     * ! Username                      ! Packet                        \
    -&nbsp;     * +---------------------------------------------------------------+
    -&nbsp;     * &lt;/pre&gt;
    -&nbsp;     *
    -&nbsp;     * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Binary_protocol#Signature_part&quot;&gt;
    -&nbsp;     * Binary protocol - CollectD | Signature part&lt;/a&gt;
    -&nbsp;     */
    -&nbsp;    private ByteBuffer signPacket(ByteBuffer packet) {
    -<b class="fc">&nbsp;        final byte[] signature = sign(password, (ByteBuffer) ByteBuffer.allocate(packet.remaining() + username.length)</b>
    -<b class="fc">&nbsp;                .put(username)</b>
    -<b class="fc">&nbsp;                .put(packet)</b>
    -<b class="fc">&nbsp;                .flip());</b>
    -<b class="fc">&nbsp;        return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)</b>
    -<b class="fc">&nbsp;                .putShort((short) TYPE_SIGN_SHA256)</b>
    -<b class="fc">&nbsp;                .putShort((short) (username.length + SIGNATURE_LEN))</b>
    -<b class="fc">&nbsp;                .put(signature)</b>
    -<b class="fc">&nbsp;                .put(username)</b>
    -<b class="fc">&nbsp;                .put((ByteBuffer) packet.flip())</b>
    -<b class="fc">&nbsp;                .flip();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Encrypts the provided packet, so it&#39;s can&#39;t be eavesdropped during a transfer
    -&nbsp;     * to a CollectD server. Wire format:
    -&nbsp;     * &lt;pre&gt;
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * ! Type (0x0210)                   ! Length                        !
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * ! Username length in bytes        ! Username                      \
    -&nbsp;     * +-----------------------------------------------------------------+
    -&nbsp;     * ! Initialization Vector (IV)      !                               \
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * ! Encrypted bytes (AES (SHA1(packet) + packet))                   \
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * &lt;/pre&gt;
    -&nbsp;     *
    -&nbsp;     * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Binary_protocol#Encrypted_part&quot;&gt;
    -&nbsp;     * Binary protocol - CollectD | Encrypted part&lt;/a&gt;
    -&nbsp;     */
    -&nbsp;    private ByteBuffer encryptPacket(ByteBuffer packet) {
    -<b class="fc">&nbsp;        final ByteBuffer payload = (ByteBuffer) ByteBuffer.allocate(SHA1_LENGTH + packet.remaining())</b>
    -<b class="fc">&nbsp;                .put(sha1(packet))</b>
    -<b class="fc">&nbsp;                .put((ByteBuffer) packet.flip())</b>
    -<b class="fc">&nbsp;                .flip();</b>
    -<b class="fc">&nbsp;        final EncryptionResult er = encrypt(password, payload);</b>
    -<b class="fc">&nbsp;        return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)</b>
    -<b class="fc">&nbsp;                .putShort((short) TYPE_ENCR_AES256)</b>
    -<b class="fc">&nbsp;                .putShort((short) (ENCRYPT_DATA_LEN + username.length + er.output.remaining()))</b>
    -<b class="fc">&nbsp;                .putShort((short) username.length)</b>
    -<b class="fc">&nbsp;                .put(username)</b>
    -<b class="fc">&nbsp;                .put(er.iv)</b>
    -<b class="fc">&nbsp;                .put(er.output)</b>
    -<b class="fc">&nbsp;                .flip();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static byte[] sign(byte[] secret, ByteBuffer input) {
    -&nbsp;        final Mac mac;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            mac = Mac.getInstance(HMAC_SHA256_ALGORITHM);</b>
    -<b class="fc">&nbsp;            mac.init(new SecretKeySpec(secret, HMAC_SHA256_ALGORITHM));</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException | InvalidKeyException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        mac.update(input);</b>
    -<b class="fc">&nbsp;        return mac.doFinal();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static EncryptionResult encrypt(byte[] password, ByteBuffer input) {
    -&nbsp;        final Cipher cipher;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            cipher = Cipher.getInstance(AES_CYPHER);</b>
    -<b class="fc">&nbsp;            cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(sha256(password), AES));</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;        final byte[] iv;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            iv = cipher.getParameters().getParameterSpec(IvParameterSpec.class).getIV();</b>
    -<b class="nc">&nbsp;        } catch (InvalidParameterSpecException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        if (iv.length != IV_LENGTH) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Bad initialization vector&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ByteBuffer output = ByteBuffer.allocate(input.remaining() * 2);</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            cipher.doFinal(input, output);</b>
    -<b class="nc">&nbsp;        } catch (ShortBufferException | IllegalBlockSizeException | BadPaddingException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return new EncryptionResult(iv, (ByteBuffer) output.flip());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static byte[] sha256(byte[] input) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return MessageDigest.getInstance(SHA_256_ALGORITHM).digest(input);</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static byte[] sha1(ByteBuffer input) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            final MessageDigest digest = MessageDigest.getInstance(SHA_1_ALGORITHM);</b>
    -<b class="fc">&nbsp;            digest.update(input);</b>
    -<b class="fc">&nbsp;            final byte[] output = digest.digest();</b>
    -<b class="fc">&nbsp;            if (output.length != SHA1_LENGTH) {</b>
    -<b class="nc">&nbsp;                throw new IllegalStateException(&quot;Bad SHA1 hash&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return output;</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class EncryptionResult {</b>
    -&nbsp;
    -&nbsp;        private final byte[] iv;
    -&nbsp;        private final ByteBuffer output;
    -&nbsp;
    -<b class="fc">&nbsp;        private EncryptionResult(byte[] iv, ByteBuffer output) {</b>
    -<b class="fc">&nbsp;            this.iv = iv;</b>
    -<b class="fc">&nbsp;            this.output = output;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-4.html
    deleted file mode 100644
    index 27a9b51f4d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-4.html
    +++ /dev/null
    @@ -1,150 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Sanitize</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Sanitize (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Sanitize</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Naming_schema&gt;Collectd naming schema&lt;/a&gt;
    -&nbsp; */
    -&nbsp;class Sanitize {
    -&nbsp;
    -&nbsp;    static final int DEFAULT_MAX_LENGTH = 63;
    -&nbsp;
    -&nbsp;    private static final char DASH = &#39;-&#39;;
    -&nbsp;    private static final char SLASH = &#39;/&#39;;
    -&nbsp;    private static final char NULL = &#39;\0&#39;;
    -&nbsp;    private static final char UNDERSCORE = &#39;_&#39;;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final List&lt;Character&gt; INSTANCE_RESERVED = Arrays.asList(SLASH, NULL);</b>
    -<b class="fc">&nbsp;    private static final List&lt;Character&gt; NAME_RESERVED = Arrays.asList(DASH, SLASH, NULL);</b>
    -&nbsp;
    -&nbsp;    private final int maxLength;
    -&nbsp;
    -<b class="fc">&nbsp;    Sanitize(int maxLength) {</b>
    -<b class="fc">&nbsp;        this.maxLength = maxLength;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String name(String name) {
    -<b class="fc">&nbsp;        return sanitize(name, NAME_RESERVED);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String instanceName(String instanceName) {
    -<b class="fc">&nbsp;        return sanitize(instanceName, INSTANCE_RESERVED);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String sanitize(String string, List&lt;Character&gt; reservedChars) {
    -<b class="fc">&nbsp;        final StringBuilder buffer = new StringBuilder(string.length());</b>
    -<b class="fc">&nbsp;        final int len = Math.min(string.length(), maxLength);</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; len; i++) {</b>
    -<b class="fc">&nbsp;            final char c = string.charAt(i);</b>
    -<b class="fc">&nbsp;            final boolean legal = ((int) c) &lt; 128 &amp;&amp; !reservedChars.contains(c);</b>
    -<b class="fc">&nbsp;            buffer.append(legal ? c : UNDERSCORE);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return buffer.toString();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-5.html
    deleted file mode 100644
    index 227834b43c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-5.html
    +++ /dev/null
    @@ -1,134 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SecurityConfiguration</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SecurityConfiguration (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SecurityConfiguration</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;public class SecurityConfiguration {
    -&nbsp;
    -&nbsp;    private final byte[] username;
    -&nbsp;    private final byte[] password;
    -&nbsp;    private final SecurityLevel securityLevel;
    -&nbsp;
    -<b class="fc">&nbsp;    public SecurityConfiguration(byte[] username, byte[] password, SecurityLevel securityLevel) {</b>
    -<b class="fc">&nbsp;        this.username = username;</b>
    -<b class="fc">&nbsp;        this.password = password;</b>
    -<b class="fc">&nbsp;        this.securityLevel = securityLevel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static SecurityConfiguration none() {
    -<b class="fc">&nbsp;        return new SecurityConfiguration(null, null, SecurityLevel.NONE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public byte[] getUsername() {
    -<b class="fc">&nbsp;        return username;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public byte[] getPassword() {
    -<b class="fc">&nbsp;        return password;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public SecurityLevel getSecurityLevel() {
    -<b class="fc">&nbsp;        return securityLevel;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-6.html
    deleted file mode 100644
    index 21dbdaf49c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-6.html
    +++ /dev/null
    @@ -1,112 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SecurityLevel</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SecurityLevel (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SecurityLevel</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -<b class="fc">&nbsp;public enum SecurityLevel {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    NONE,</b>
    -<b class="fc">&nbsp;    SIGN,</b>
    -<b class="fc">&nbsp;    ENCRYPT</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-7.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-7.html
    deleted file mode 100644
    index 88d60aba3d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-6/sources/source-7.html
    +++ /dev/null
    @@ -1,154 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Sender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Sender (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Sender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.channels.DatagramChannel;
    -&nbsp;
    -&nbsp;public class Sender {
    -&nbsp;
    -&nbsp;    private final String host;
    -&nbsp;    private final int port;
    -&nbsp;
    -&nbsp;    private InetSocketAddress address;
    -&nbsp;    private DatagramChannel channel;
    -&nbsp;
    -<b class="fc">&nbsp;    public Sender(String host, int port) {</b>
    -<b class="fc">&nbsp;        this.host = host;</b>
    -<b class="fc">&nbsp;        this.port = port;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void connect() throws IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (host != null) {</b>
    -<b class="fc">&nbsp;            address = new InetSocketAddress(host, port);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        channel = DatagramChannel.open();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return channel != null &amp;&amp; !channel.socket().isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void send(ByteBuffer buffer) throws IOException {
    -<b class="fc">&nbsp;        channel.send(buffer, address);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void disconnect() throws IOException {
    -<b class="fc">&nbsp;        if (channel == null) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;        try {
    -<b class="fc">&nbsp;            channel.close();</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            channel = null;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index.html
    deleted file mode 100644
    index b800684df6..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 9ff000a506..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 15f2e64974..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 8bc7867eed..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index fe4f348fe3..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 070d804299..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 0ae0021a91..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 0416231c7a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 9f2919811c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index c2b4c65d7e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/sources/source-1.html
    deleted file mode 100644
    index e04c97b9eb..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/sources/source-1.html
    +++ /dev/null
    @@ -1,128 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedCacheDecoratorFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.ehcache</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedCacheDecoratorFactory (com.codahale.metrics.ehcache)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedCacheDecoratorFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.ehcache;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import net.sf.ehcache.Ehcache;
    -&nbsp;import net.sf.ehcache.constructs.CacheDecoratorFactory;
    -&nbsp;
    -&nbsp;import java.util.Properties;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedCacheDecoratorFactory extends CacheDecoratorFactory {</b>
    -&nbsp;    @Override
    -&nbsp;    public Ehcache createDecoratedEhcache(Ehcache cache, Properties properties) {
    -<b class="fc">&nbsp;        final String name = properties.getProperty(&quot;metric-registry-name&quot;);</b>
    -<b class="fc">&nbsp;        final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);</b>
    -<b class="fc">&nbsp;        return InstrumentedEhcache.instrument(registry, cache);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Ehcache createDefaultDecoratedEhcache(Ehcache cache, Properties properties) {
    -<b class="nc">&nbsp;        final String name = properties.getProperty(&quot;metric-registry-name&quot;);</b>
    -<b class="nc">&nbsp;        final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);</b>
    -<b class="nc">&nbsp;        return InstrumentedEhcache.instrument(registry, cache);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/sources/source-2.html
    deleted file mode 100644
    index cf86da567d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-7/sources/source-2.html
    +++ /dev/null
    @@ -1,335 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedEhcache</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.ehcache</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedEhcache (com.codahale.metrics.ehcache)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedEhcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.ehcache;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import net.sf.ehcache.CacheException;
    -&nbsp;import net.sf.ehcache.Ehcache;
    -&nbsp;import net.sf.ehcache.Element;
    -&nbsp;import net.sf.ehcache.constructs.EhcacheDecoratorAdapter;
    -&nbsp;import net.sf.ehcache.statistics.StatisticsGateway;
    -&nbsp;
    -&nbsp;import java.io.Serializable;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An instrumented {@link Ehcache} instance.
    -&nbsp; */
    -&nbsp;public class InstrumentedEhcache extends EhcacheDecoratorAdapter {
    -&nbsp;    /**
    -&nbsp;     * Instruments the given {@link Ehcache} instance with get and put timers
    -&nbsp;     * and a set of gauges for Ehcache&#39;s built-in statistics:
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * &lt;table&gt;
    -&nbsp;     * &lt;caption&gt;Ehcache timered metrics&lt;/caption&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The number of times a requested item was found in the
    -&nbsp;     * cache.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code in-memory-hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was found in the memory
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code off-heap-hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was found in the off-heap
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code on-disk-hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was found in the disk
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the
    -&nbsp;     * cache.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code in-memory-misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the memory
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code off-heap-misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the
    -&nbsp;     * off-heap store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code on-disk-misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the disk
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of elements stored in the cache.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code in-memory-objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of objects in the memory store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code off-heap-objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of objects in the off-heap store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code on-disk-objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of objects in the disk store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code mean-get-time}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The average get time. Because ehcache support JDK1.4.2, each
    -&nbsp;     * get time uses {@link System#currentTimeMillis()}, rather than
    -&nbsp;     * nanoseconds. The accuracy is thus limited.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code mean-search-time}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The average execution time (in milliseconds) within the last
    -&nbsp;     * sample period.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code eviction-count}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The number of cache evictions, since the cache was created,
    -&nbsp;     * or statistics were cleared.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code searches-per-second}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The number of search executions that have completed in the
    -&nbsp;     * last second.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code accuracy}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;A human readable description of the accuracy setting. One of
    -&nbsp;     * &quot;None&quot;, &quot;Best Effort&quot; or &quot;Guaranteed&quot;.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;/table&gt;
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * &lt;b&gt;N.B.: This enables Ehcache&#39;s sampling statistics with an accuracy
    -&nbsp;     * level of &quot;none.&quot;&lt;/b&gt;
    -&nbsp;     *
    -&nbsp;     * @param cache    an {@link Ehcache} instance
    -&nbsp;     * @param registry a {@link MetricRegistry}
    -&nbsp;     * @return an instrumented decorator for {@code cache}
    -&nbsp;     * @see StatisticsGateway
    -&nbsp;     */
    -&nbsp;    public static Ehcache instrument(MetricRegistry registry, final Ehcache cache) {
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = name(cache.getClass(), cache.getName());</b>
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localHeapHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localOffHeapHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localDiskHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localHeapMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localOffHeapMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localDiskMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalHeapSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalOffHeapSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalDiskSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;mean-get-time&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheGetOperation().latency().average().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;mean-search-time&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheSearchOperation().latency().average().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;eviction-count&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheEvictionOperation().count().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;searches-per-second&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheSearchOperation().rate().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;writer-queue-size&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getWriterQueueLength());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return new InstrumentedEhcache(registry, cache);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final Timer getTimer, putTimer;
    -&nbsp;
    -&nbsp;    private InstrumentedEhcache(MetricRegistry registry, Ehcache cache) {
    -<b class="fc">&nbsp;        super(cache);</b>
    -<b class="fc">&nbsp;        this.getTimer = registry.timer(name(cache.getClass(), cache.getName(), &quot;gets&quot;));</b>
    -<b class="fc">&nbsp;        this.putTimer = registry.timer(name(cache.getClass(), cache.getName(), &quot;puts&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Element get(Object key) throws IllegalStateException, CacheException {
    -<b class="nc">&nbsp;        final Timer.Context ctx = getTimer.time();</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            return underlyingCache.get(key);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Element get(Serializable key) throws IllegalStateException, CacheException {
    -<b class="fc">&nbsp;        final Timer.Context ctx = getTimer.time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return underlyingCache.get(key);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void put(Element element) throws IllegalArgumentException, IllegalStateException, CacheException {
    -<b class="fc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            underlyingCache.put(element);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            ctx.stop();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void put(Element element, boolean doNotNotifyCacheReplicators) throws IllegalArgumentException, IllegalStateException, CacheException {
    -<b class="nc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            underlyingCache.put(element, doNotNotifyCacheReplicators);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Element putIfAbsent(Element element) throws NullPointerException {
    -<b class="nc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            return underlyingCache.putIfAbsent(element);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index.html
    deleted file mode 100644
    index df6bc1969b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index e1c82037cb..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 38a98eac46..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 712483b7d3..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 4b372d0a63..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 5bc113f5f8..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 571925ed1b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 77e9cc60da..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 983ba9041c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index b2ee351e36..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-1.html
    deleted file mode 100644
    index ebfa2e414d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-1.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Graphite</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Graphite (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import javax.net.SocketFactory;
    -&nbsp;import java.io.BufferedWriter;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.Writer;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.net.Socket;
    -&nbsp;import java.net.UnknownHostException;
    -&nbsp;import java.nio.charset.Charset;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A client to a Carbon server via TCP.
    -&nbsp; */
    -&nbsp;public class Graphite implements GraphiteSender {
    -&nbsp;    // this may be optimistic about Carbon/Graphite
    -&nbsp;
    -&nbsp;    private final String hostname;
    -&nbsp;    private final int port;
    -&nbsp;    private final InetSocketAddress address;
    -&nbsp;    private final SocketFactory socketFactory;
    -&nbsp;    private final Charset charset;
    -&nbsp;
    -&nbsp;    private Socket socket;
    -&nbsp;    private Writer writer;
    -&nbsp;    private int failures;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(Graphite.class);</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default
    -&nbsp;     * {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param hostname The hostname of the Carbon server
    -&nbsp;     * @param port     The port of the Carbon server
    -&nbsp;     */
    -&nbsp;    public Graphite(String hostname, int port) {
    -<b class="nc">&nbsp;        this(hostname, port, SocketFactory.getDefault());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param hostname      The hostname of the Carbon server
    -&nbsp;     * @param port          The port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     */
    -&nbsp;    public Graphite(String hostname, int port, SocketFactory socketFactory) {
    -<b class="fc">&nbsp;        this(hostname, port, socketFactory, UTF_8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given
    -&nbsp;     * character set.
    -&nbsp;     *
    -&nbsp;     * @param hostname      The hostname of the Carbon server
    -&nbsp;     * @param port          The port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     */
    -<b class="fc">&nbsp;    public Graphite(String hostname, int port, SocketFactory socketFactory, Charset charset) {</b>
    -<b class="fc">&nbsp;        if (hostname == null || hostname.isEmpty()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;hostname must not be null or empty&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (port &lt; 0 || port &gt; 65535) {</b>
    -<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;port must be a valid IP port (0-65535)&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.hostname = hostname;</b>
    -<b class="fc">&nbsp;        this.port = port;</b>
    -<b class="fc">&nbsp;        this.address = null;</b>
    -<b class="fc">&nbsp;        this.socketFactory = requireNonNull(socketFactory, &quot;socketFactory must not be null&quot;);</b>
    -<b class="fc">&nbsp;        this.charset = requireNonNull(charset, &quot;charset must not be null&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default
    -&nbsp;     * {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param address the address of the Carbon server
    -&nbsp;     */
    -&nbsp;    public Graphite(InetSocketAddress address) {
    -<b class="nc">&nbsp;        this(address, SocketFactory.getDefault());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     */
    -&nbsp;    public Graphite(InetSocketAddress address, SocketFactory socketFactory) {
    -<b class="fc">&nbsp;        this(address, socketFactory, UTF_8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given
    -&nbsp;     * character set.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     */
    -<b class="fc">&nbsp;    public Graphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset) {</b>
    -<b class="fc">&nbsp;        this.hostname = null;</b>
    -<b class="fc">&nbsp;        this.port = -1;</b>
    -<b class="fc">&nbsp;        this.address = requireNonNull(address, &quot;address must not be null&quot;);</b>
    -<b class="fc">&nbsp;        this.socketFactory = requireNonNull(socketFactory, &quot;socketFactory must not be null&quot;);</b>
    -<b class="fc">&nbsp;        this.charset = requireNonNull(charset, &quot;charset must not be null&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        InetSocketAddress address = this.address;</b>
    -&nbsp;        // the previous dns retry logic did not work, as address.getAddress would always return the cached value
    -&nbsp;        // this version of the simplified logic will always cause a dns request if hostname has been supplied.
    -&nbsp;        // InetAddress.getByName forces the dns lookup
    -&nbsp;        // if an InetSocketAddress was supplied at create time that will take precedence.
    -<b class="fc">&nbsp;        if (address == null || address.getHostName() == null &amp;&amp; hostname != null) {</b>
    -<b class="fc">&nbsp;            address = new InetSocketAddress(hostname, port);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (address.getAddress() == null) {</b>
    -<b class="fc">&nbsp;            throw new UnknownHostException(address.getHostName());</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());</b>
    -<b class="nc">&nbsp;        this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return socket != null &amp;&amp; socket.isConnected() &amp;&amp; !socket.isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -&nbsp;        try {
    -<b class="nc">&nbsp;            writer.write(sanitize(name));</b>
    -<b class="nc">&nbsp;            writer.write(&#39; &#39;);</b>
    -<b class="nc">&nbsp;            writer.write(sanitize(value));</b>
    -<b class="nc">&nbsp;            writer.write(&#39; &#39;);</b>
    -<b class="nc">&nbsp;            writer.write(Long.toString(timestamp));</b>
    -<b class="nc">&nbsp;            writer.write(&#39;\n&#39;);</b>
    -<b class="nc">&nbsp;            this.failures = 0;</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            failures++;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="fc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -<b class="nc">&nbsp;        if (writer != null) {</b>
    -<b class="nc">&nbsp;            writer.flush();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            if (writer != null) {</b>
    -<b class="nc">&nbsp;                writer.close();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    -<b class="nc">&nbsp;            LOGGER.debug(&quot;Error closing writer&quot;, ex);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            this.writer = null;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            if (socket != null) {</b>
    -<b class="nc">&nbsp;                socket.close();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    -<b class="nc">&nbsp;            LOGGER.debug(&quot;Error closing socket&quot;, ex);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            this.socket = null;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String s) {
    -<b class="nc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-2.html
    deleted file mode 100644
    index 3d820e72f8..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-2.html
    +++ /dev/null
    @@ -1,293 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteRabbitMQ</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteRabbitMQ (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteRabbitMQ</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.2%
    -  </span>
    -  <span class="absValue">
    -    (24/38)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">GraphiteRabbitMQ$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import com.rabbitmq.client.Channel;
    -&nbsp;import com.rabbitmq.client.Connection;
    -&nbsp;import com.rabbitmq.client.ConnectionFactory;
    -&nbsp;import com.rabbitmq.client.DefaultSocketConfigurator;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.Socket;
    -&nbsp;import java.util.concurrent.TimeoutException;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A rabbit-mq client to a Carbon server.
    -&nbsp; */
    -&nbsp;public class GraphiteRabbitMQ implements GraphiteSender {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS = 500;</b>
    -<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_SOCKET_TIMEOUT_MS = 5000;</b>
    -<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC = 10;</b>
    -&nbsp;
    -&nbsp;    private ConnectionFactory connectionFactory;
    -&nbsp;    private Connection connection;
    -&nbsp;    private Channel channel;
    -&nbsp;    private String exchange;
    -&nbsp;
    -&nbsp;    private int failures;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client with a given a {@link com.rabbitmq.client.ConnectionFactory} and an amqp exchange
    -&nbsp;     *
    -&nbsp;     * @param connectionFactory the {@link com.rabbitmq.client.ConnectionFactory} used to establish connection and publish to graphite server
    -&nbsp;     * @param exchange          the amqp exchange
    -&nbsp;     */
    -<b class="fc">&nbsp;    public GraphiteRabbitMQ(final ConnectionFactory connectionFactory, final String exchange) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.exchange = exchange;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client given connection details
    -&nbsp;     *
    -&nbsp;     * @param rabbitHost     the rabbitmq server host
    -&nbsp;     * @param rabbitPort     the rabbitmq server port
    -&nbsp;     * @param rabbitUsername the rabbitmq server username
    -&nbsp;     * @param rabbitPassword the rabbitmq server password
    -&nbsp;     * @param exchange       the amqp exchange
    -&nbsp;     */
    -&nbsp;    public GraphiteRabbitMQ(
    -&nbsp;            final String rabbitHost,
    -&nbsp;            final Integer rabbitPort,
    -&nbsp;            final String rabbitUsername,
    -&nbsp;            final String rabbitPassword,
    -&nbsp;            final String exchange) {
    -&nbsp;
    -<b class="nc">&nbsp;        this(rabbitHost,</b>
    -&nbsp;                rabbitPort,
    -&nbsp;                rabbitUsername,
    -&nbsp;                rabbitPassword,
    -&nbsp;                exchange,
    -&nbsp;                DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS,
    -&nbsp;                DEFAULT_RABBIT_SOCKET_TIMEOUT_MS,
    -&nbsp;                DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client given connection details
    -&nbsp;     *
    -&nbsp;     * @param rabbitHost                        the rabbitmq server host
    -&nbsp;     * @param rabbitPort                        the rabbitmq server port
    -&nbsp;     * @param rabbitUsername                    the rabbitmq server username
    -&nbsp;     * @param rabbitPassword                    the rabbitmq server password
    -&nbsp;     * @param exchange                          the amqp exchange
    -&nbsp;     * @param rabbitConnectionTimeoutMS         the connection timeout in milliseconds
    -&nbsp;     * @param rabbitSocketTimeoutMS             the socket timeout in milliseconds
    -&nbsp;     * @param rabbitRequestedHeartbeatInSeconds the hearthbeat in seconds
    -&nbsp;     */
    -&nbsp;    public GraphiteRabbitMQ(
    -&nbsp;            final String rabbitHost,
    -&nbsp;            final Integer rabbitPort,
    -&nbsp;            final String rabbitUsername,
    -&nbsp;            final String rabbitPassword,
    -&nbsp;            final String exchange,
    -&nbsp;            final Integer rabbitConnectionTimeoutMS,
    -&nbsp;            final Integer rabbitSocketTimeoutMS,
    -<b class="nc">&nbsp;            final Integer rabbitRequestedHeartbeatInSeconds) {</b>
    -&nbsp;
    -<b class="nc">&nbsp;        this.exchange = exchange;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        this.connectionFactory = new ConnectionFactory();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        connectionFactory.setSocketConfigurator(new DefaultSocketConfigurator() {</b>
    -&nbsp;            @Override
    -&nbsp;            public void configure(Socket socket) throws IOException {
    -<b class="nc">&nbsp;                super.configure(socket);</b>
    -<b class="nc">&nbsp;                socket.setSoTimeout(rabbitSocketTimeoutMS);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="nc">&nbsp;        connectionFactory.setConnectionTimeout(rabbitConnectionTimeoutMS);</b>
    -<b class="nc">&nbsp;        connectionFactory.setRequestedHeartbeat(rabbitRequestedHeartbeatInSeconds);</b>
    -<b class="nc">&nbsp;        connectionFactory.setHost(rabbitHost);</b>
    -<b class="nc">&nbsp;        connectionFactory.setPort(rabbitPort);</b>
    -<b class="nc">&nbsp;        connectionFactory.setUsername(rabbitUsername);</b>
    -<b class="nc">&nbsp;        connectionFactory.setPassword(rabbitPassword);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="fc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            connection = connectionFactory.newConnection();</b>
    -<b class="nc">&nbsp;        } catch (TimeoutException e) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        channel = connection.createChannel();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return connection != null &amp;&amp; connection.isOpen();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            final String sanitizedName = sanitize(name);</b>
    -<b class="fc">&nbsp;            final String sanitizedValue = sanitize(value);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final String message = sanitizedName + &#39; &#39; + sanitizedValue + &#39; &#39; + Long.toString(timestamp) + &#39;\n&#39;;</b>
    -<b class="fc">&nbsp;            channel.basicPublish(exchange, sanitizedName, null, message.getBytes(UTF_8));</b>
    -<b class="fc">&nbsp;        } catch (IOException e) {</b>
    -<b class="fc">&nbsp;            failures++;</b>
    -<b class="fc">&nbsp;            throw e;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -&nbsp;        // Nothing to do
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -<b class="fc">&nbsp;        if (connection != null) {</b>
    -<b class="fc">&nbsp;            connection.close();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="fc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String sanitize(String s) {
    -<b class="fc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-3.html
    deleted file mode 100644
    index 0dd4e859ab..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-3.html
    +++ /dev/null
    @@ -1,655 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteReporter (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.5%
    -  </span>
    -  <span class="absValue">
    -    (95/105)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">GraphiteReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">GraphiteReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (12/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (31/35)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.Metered;
    -&nbsp;import com.codahale.metrics.MetricAttribute;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.ScheduledReporter;
    -&nbsp;import com.codahale.metrics.Snapshot;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.DoubleFunction;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which publishes metric values to a Graphite server.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://graphite.wikidot.com/&quot;&gt;Graphite - Scalable Realtime Graphing&lt;/a&gt;
    -&nbsp; */
    -<b class="fc">&nbsp;public class GraphiteReporter extends ScheduledReporter {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link GraphiteReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link GraphiteReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link GraphiteReporter} instances. Defaults to not using a prefix, using the
    -&nbsp;     * default clock, converting rates to events/second, converting durations to milliseconds, and
    -&nbsp;     * not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private Clock clock;
    -&nbsp;        private String prefix;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private MetricFilter filter;
    -&nbsp;        private ScheduledExecutorService executor;
    -&nbsp;        private boolean shutdownExecutorOnStop;
    -&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -&nbsp;        private boolean addMetricAttributesAsTags;
    -&nbsp;        private DoubleFunction&lt;String&gt; floatingPointFormatter;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    -<b class="fc">&nbsp;            this.prefix = null;</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;            this.executor = null;</b>
    -<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = Collections.emptySet();</b>
    -<b class="fc">&nbsp;            this.addMetricAttributesAsTags = false;</b>
    -<b class="fc">&nbsp;            this.floatingPointFormatter = DEFAULT_FP_FORMATTER;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -&nbsp;         * Default value is true.
    -&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -&nbsp;         *
    -&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    -&nbsp;         * Default value is null.
    -&nbsp;         * Null value leads to executor will be auto created on start.
    -&nbsp;         *
    -&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given {@link Clock} instance for the time.
    -&nbsp;         *
    -&nbsp;         * @param clock a {@link Clock} instance
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withClock(Clock clock) {
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Prefix all metric names with the given string.
    -&nbsp;         *
    -&nbsp;         * @param prefix the prefix for all metric names
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder prefixedWith(String prefix) {
    -<b class="fc">&nbsp;            this.prefix = prefix;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    -&nbsp;         * See {@link MetricAttribute}.
    -&nbsp;         *
    -&nbsp;         * @param disabledMetricAttributes a set of {@link MetricAttribute}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not metric attributes (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;) should be reported in the traditional dot delimited format or in the tag based format.
    -&nbsp;         * Without tags (default): `my.metric.p99`
    -&nbsp;         * With tags: `my.metric;metricattribute=p99`
    -&nbsp;         *
    -&nbsp;         * Note that this setting only modifies the metric attribute, and will not convert any other portion of the metric name to use tags.
    -&nbsp;         * For mor information on Graphite tag support see https://graphite.readthedocs.io/en/latest/tags.html
    -&nbsp;         * See {@link MetricAttribute}.
    -&nbsp;         *
    -&nbsp;         * @param addMetricAttributesAsTags if true, then metric attributes will be added as tags
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder addMetricAttributesAsTags(boolean addMetricAttributesAsTags) {
    -<b class="fc">&nbsp;            this.addMetricAttributesAsTags = addMetricAttributesAsTags;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use custom floating point formatter.
    -&nbsp;         *
    -&nbsp;         * @param floatingPointFormatter a custom formatter for floating point values
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withFloatingPointFormatter(DoubleFunction&lt;String&gt; floatingPointFormatter) {
    -<b class="fc">&nbsp;            this.floatingPointFormatter = floatingPointFormatter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
    -&nbsp;         * given {@link GraphiteSender}.
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Present for binary compatibility
    -&nbsp;         *
    -&nbsp;         * @param graphite a {@link Graphite}
    -&nbsp;         * @return a {@link GraphiteReporter}
    -&nbsp;         */
    -&nbsp;        public GraphiteReporter build(Graphite graphite) {
    -<b class="fc">&nbsp;            return build((GraphiteSender) graphite);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
    -&nbsp;         * given {@link GraphiteSender}.
    -&nbsp;         *
    -&nbsp;         * @param graphite a {@link GraphiteSender}
    -&nbsp;         * @return a {@link GraphiteReporter}
    -&nbsp;         */
    -&nbsp;        public GraphiteReporter build(GraphiteSender graphite) {
    -<b class="fc">&nbsp;            return new GraphiteReporter(registry,</b>
    -&nbsp;                    graphite,
    -&nbsp;                    clock,
    -&nbsp;                    prefix,
    -&nbsp;                    rateUnit,
    -&nbsp;                    durationUnit,
    -&nbsp;                    filter,
    -&nbsp;                    executor,
    -&nbsp;                    shutdownExecutorOnStop,
    -&nbsp;                    disabledMetricAttributes,
    -&nbsp;                    addMetricAttributesAsTags,
    -&nbsp;                    floatingPointFormatter);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(GraphiteReporter.class);</b>
    -&nbsp;    // the Carbon plaintext format is pretty underspecified, but it seems like it just wants US-formatted digits
    -<b class="fc">&nbsp;    private static final DoubleFunction&lt;String&gt; DEFAULT_FP_FORMATTER = fp -&gt; String.format(Locale.US, &quot;%2.2f&quot;, fp);</b>
    -&nbsp;
    -&nbsp;    private final GraphiteSender graphite;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final boolean addMetricAttributesAsTags;
    -&nbsp;    private final DoubleFunction&lt;String&gt; floatingPointFormatter;
    -&nbsp;  
    -&nbsp;  
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    -&nbsp;     *                                  reporter will report
    -&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    -&nbsp;     *                                  via a transport protocol
    -&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    -&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    -&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    -&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    -&nbsp;     * @param filter                    the filter for which metrics to report
    -&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    -&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    -&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    -&nbsp;     */
    -&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    -&nbsp;                               GraphiteSender graphite,
    -&nbsp;                               Clock clock,
    -&nbsp;                               String prefix,
    -&nbsp;                               TimeUnit rateUnit,
    -&nbsp;                               TimeUnit durationUnit,
    -&nbsp;                               MetricFilter filter,
    -&nbsp;                               ScheduledExecutorService executor,
    -&nbsp;                               boolean shutdownExecutorOnStop,
    -&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="nc">&nbsp;        this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes, false);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    -&nbsp;     *                                  reporter will report
    -&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    -&nbsp;     *                                  via a transport protocol
    -&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    -&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    -&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    -&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    -&nbsp;     * @param filter                    the filter for which metrics to report
    -&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    -&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    -&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    -&nbsp;     * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
    -&nbsp;     */
    -&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    -&nbsp;                               GraphiteSender graphite,
    -&nbsp;                               Clock clock,
    -&nbsp;                               String prefix,
    -&nbsp;                               TimeUnit rateUnit,
    -&nbsp;                               TimeUnit durationUnit,
    -&nbsp;                               MetricFilter filter,
    -&nbsp;                               ScheduledExecutorService executor,
    -&nbsp;                               boolean shutdownExecutorOnStop,
    -&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    -&nbsp;                               boolean addMetricAttributesAsTags) {
    -<b class="fc">&nbsp;        this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes, addMetricAttributesAsTags, DEFAULT_FP_FORMATTER);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    -&nbsp;     *                                  reporter will report
    -&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    -&nbsp;     *                                  via a transport protocol
    -&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    -&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    -&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    -&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    -&nbsp;     * @param filter                    the filter for which metrics to report
    -&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    -&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    -&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    -&nbsp;     * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
    -&nbsp;     * @param floatingPointFormatter    custom floating point formatter
    -&nbsp;     */
    -&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    -&nbsp;                               GraphiteSender graphite,
    -&nbsp;                               Clock clock,
    -&nbsp;                               String prefix,
    -&nbsp;                               TimeUnit rateUnit,
    -&nbsp;                               TimeUnit durationUnit,
    -&nbsp;                               MetricFilter filter,
    -&nbsp;                               ScheduledExecutorService executor,
    -&nbsp;                               boolean shutdownExecutorOnStop,
    -&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    -&nbsp;                               boolean addMetricAttributesAsTags,
    -&nbsp;                               DoubleFunction&lt;String&gt; floatingPointFormatter) {
    -<b class="fc">&nbsp;        super(registry, &quot;graphite-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes);
    -<b class="fc">&nbsp;        this.graphite = graphite;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -<b class="fc">&nbsp;        this.addMetricAttributesAsTags = addMetricAttributesAsTags;</b>
    -<b class="fc">&nbsp;        this.floatingPointFormatter = floatingPointFormatter;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        final long timestamp = clock.getTime() / 1000;</b>
    -&nbsp;
    -&nbsp;        // oh it&#39;d be lovely to use Java 7 here
    -&nbsp;        try {
    -<b class="fc">&nbsp;            graphite.connect();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportGauge(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportCounter(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportHistogram(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportMetered(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportTimer(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            graphite.flush();</b>
    -<b class="fc">&nbsp;        } catch (IOException e) {</b>
    -<b class="fc">&nbsp;            LOGGER.warn(&quot;Unable to report to Graphite&quot;, graphite, e);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            try {</b>
    -<b class="fc">&nbsp;                graphite.close();</b>
    -<b class="nc">&nbsp;            } catch (IOException e1) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Error closing Graphite&quot;, graphite, e1);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void stop() {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.stop();</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            try {</b>
    -<b class="fc">&nbsp;                graphite.close();</b>
    -<b class="nc">&nbsp;            } catch (IOException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Error disconnecting from Graphite&quot;, graphite, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportTimer(String name, Timer timer, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MAX, name, convertDuration(snapshot.getMax()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MEAN, name, convertDuration(snapshot.getMean()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MIN, name, convertDuration(snapshot.getMin()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(STDDEV, name, convertDuration(snapshot.getStdDev()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P50, name, convertDuration(snapshot.getMedian()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P75, name, convertDuration(snapshot.get75thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P95, name, convertDuration(snapshot.get95thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P98, name, convertDuration(snapshot.get98thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P99, name, convertDuration(snapshot.get99thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P999, name, convertDuration(snapshot.get999thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        reportMetered(name, timer, timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportMetered(String name, Metered meter, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        sendIfEnabled(COUNT, name, meter.getCount(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(M1_RATE, name, convertRate(meter.getOneMinuteRate()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(M5_RATE, name, convertRate(meter.getFiveMinuteRate()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(M15_RATE, name, convertRate(meter.getFifteenMinuteRate()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MEAN_RATE, name, convertRate(meter.getMeanRate()), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportHistogram(String name, Histogram histogram, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    -<b class="fc">&nbsp;        sendIfEnabled(COUNT, name, histogram.getCount(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MAX, name, snapshot.getMax(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MEAN, name, snapshot.getMean(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MIN, name, snapshot.getMin(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(STDDEV, name, snapshot.getStdDev(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P50, name, snapshot.getMedian(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P75, name, snapshot.get75thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P95, name, snapshot.get95thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P98, name, snapshot.get98thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P99, name, snapshot.get99thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P999, name, snapshot.get999thPercentile(), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void sendIfEnabled(MetricAttribute type, String name, double value, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void sendIfEnabled(MetricAttribute type, String name, long value, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportCounter(String name, Counter counter, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, COUNT.getCode())), format(counter.getCount()), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportGauge(String name, Gauge&lt;?&gt; gauge, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        final String value = format(gauge.getValue());</b>
    -<b class="fc">&nbsp;        if (value != null) {</b>
    -<b class="fc">&nbsp;            graphite.send(prefix(name), value, timestamp);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String format(Object o) {
    -<b class="fc">&nbsp;        if (o instanceof Float) {</b>
    -<b class="fc">&nbsp;            return format(((Float) o).doubleValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Double) {</b>
    -<b class="fc">&nbsp;            return format(((Double) o).doubleValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Byte) {</b>
    -<b class="fc">&nbsp;            return format(((Byte) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Short) {</b>
    -<b class="fc">&nbsp;            return format(((Short) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Integer) {</b>
    -<b class="fc">&nbsp;            return format(((Integer) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Long) {</b>
    -<b class="fc">&nbsp;            return format(((Long) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Number) {</b>
    -<b class="nc">&nbsp;            return format(((Number) o).doubleValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Boolean) {</b>
    -<b class="fc">&nbsp;            return format(((Boolean) o) ? 1 : 0);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return null;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String prefix(String name) {
    -<b class="fc">&nbsp;        return MetricRegistry.name(prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String appendMetricAttribute(String name, String metricAttribute){
    -<b class="fc">&nbsp;        if (addMetricAttributesAsTags){</b>
    -<b class="fc">&nbsp;            return name + &quot;;metricattribute=&quot; + metricAttribute;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return name + &quot;.&quot; + metricAttribute;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String format(long n) {
    -<b class="fc">&nbsp;        return Long.toString(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String format(double v) {
    -<b class="fc">&nbsp;        return floatingPointFormatter.apply(v);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-4.html
    deleted file mode 100644
    index 3799fb3b4b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-4.html
    +++ /dev/null
    @@ -1,120 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteSanitize</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteSanitize (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteSanitize</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -<b class="nc">&nbsp;class GraphiteSanitize {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    -&nbsp;    private static final String DASH = &quot;-&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Trims the string and replaces all whitespace characters with the provided symbol
    -&nbsp;     */
    -&nbsp;    static String sanitize(String string) {
    -<b class="fc">&nbsp;        return WHITESPACE.matcher(string.trim()).replaceAll(DASH);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-5.html
    deleted file mode 100644
    index 32d3bae13f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-5.html
    +++ /dev/null
    @@ -1,222 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteUDP</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteUDP (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteUDP</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.net.InetAddress;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.channels.DatagramChannel;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A client to a Carbon server using unconnected UDP
    -&nbsp; */
    -&nbsp;public class GraphiteUDP implements GraphiteSender {
    -&nbsp;
    -&nbsp;    private final String hostname;
    -&nbsp;    private final int port;
    -&nbsp;    private InetSocketAddress address;
    -&nbsp;
    -<b class="fc">&nbsp;    private DatagramChannel datagramChannel = null;</b>
    -&nbsp;    private int failures;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which sends data to given address using UDP
    -&nbsp;     *
    -&nbsp;     * @param hostname The hostname of the Carbon server
    -&nbsp;     * @param port     The port of the Carbon server
    -&nbsp;     */
    -<b class="fc">&nbsp;    public GraphiteUDP(String hostname, int port) {</b>
    -<b class="fc">&nbsp;        this.hostname = hostname;</b>
    -<b class="fc">&nbsp;        this.port = port;</b>
    -<b class="fc">&nbsp;        this.address = null;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which sends data to given address using UDP
    -&nbsp;     *
    -&nbsp;     * @param address the address of the Carbon server
    -&nbsp;     */
    -<b class="nc">&nbsp;    public GraphiteUDP(InetSocketAddress address) {</b>
    -<b class="nc">&nbsp;        this.hostname = null;</b>
    -<b class="nc">&nbsp;        this.port = -1;</b>
    -<b class="nc">&nbsp;        this.address = address;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        // Resolve hostname
    -<b class="fc">&nbsp;        if (hostname != null) {</b>
    -<b class="fc">&nbsp;            address = new InetSocketAddress(InetAddress.getByName(hostname), port);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        datagramChannel = DatagramChannel.open();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return datagramChannel != null &amp;&amp; !datagramChannel.socket().isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            String str = sanitize(name) + &#39; &#39; + sanitize(value) + &#39; &#39; + Long.toString(timestamp) + &#39;\n&#39;;</b>
    -<b class="fc">&nbsp;            ByteBuffer byteBuffer = ByteBuffer.wrap(str.getBytes(UTF_8));</b>
    -<b class="fc">&nbsp;            datagramChannel.send(byteBuffer, address);</b>
    -<b class="fc">&nbsp;            this.failures = 0;</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            failures++;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="nc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -&nbsp;        // Nothing to do
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -<b class="nc">&nbsp;        if (datagramChannel != null) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                datagramChannel.close();</b>
    -&nbsp;            } finally {
    -<b class="nc">&nbsp;                datagramChannel = null;</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String s) {
    -<b class="fc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    DatagramChannel getDatagramChannel() {
    -<b class="nc">&nbsp;        return datagramChannel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void setDatagramChannel(DatagramChannel datagramChannel) {
    -<b class="fc">&nbsp;        this.datagramChannel = datagramChannel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    InetSocketAddress getAddress() {
    -<b class="nc">&nbsp;        return address;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void setAddress(InetSocketAddress address) {
    -<b class="fc">&nbsp;        this.address = address;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-6.html
    deleted file mode 100644
    index b07f011c56..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-6.html
    +++ /dev/null
    @@ -1,467 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PickledGraphite</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PickledGraphite (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PickledGraphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.2%
    -  </span>
    -  <span class="absValue">
    -    (4/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.5%
    -  </span>
    -  <span class="absValue">
    -    (15/91)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">PickledGraphite$MetricTuple</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import javax.net.SocketFactory;
    -&nbsp;
    -&nbsp;import java.io.BufferedWriter;
    -&nbsp;import java.io.ByteArrayOutputStream;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.Writer;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.net.Socket;
    -&nbsp;import java.net.UnknownHostException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.charset.Charset;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A client to a Carbon server that sends all metrics after they have been pickled in configurable sized batches
    -&nbsp; */
    -&nbsp;public class PickledGraphite implements GraphiteSender {
    -&nbsp;
    -&nbsp;    static class MetricTuple {
    -&nbsp;        String name;
    -&nbsp;        long timestamp;
    -&nbsp;        String value;
    -&nbsp;
    -<b class="nc">&nbsp;        MetricTuple(String name, long timestamp, String value) {</b>
    -<b class="nc">&nbsp;            this.name = name;</b>
    -<b class="nc">&nbsp;            this.timestamp = timestamp;</b>
    -<b class="nc">&nbsp;            this.value = value;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Minimally necessary pickle opcodes.
    -&nbsp;     */
    -&nbsp;    private static final char
    -&nbsp;            MARK = &#39;(&#39;,
    -&nbsp;            STOP = &#39;.&#39;,
    -&nbsp;            LONG = &#39;L&#39;,
    -&nbsp;            STRING = &#39;S&#39;,
    -&nbsp;            APPEND = &#39;a&#39;,
    -&nbsp;            LIST = &#39;l&#39;,
    -&nbsp;            TUPLE = &#39;t&#39;,
    -&nbsp;            QUOTE = &#39;\&#39;&#39;,
    -&nbsp;            LF = &#39;\n&#39;;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(PickledGraphite.class);</b>
    -&nbsp;    private final static int DEFAULT_BATCH_SIZE = 100;
    -&nbsp;
    -&nbsp;    private int batchSize;
    -&nbsp;    // graphite expects a python-pickled list of nested tuples.
    -<b class="fc">&nbsp;    private List&lt;MetricTuple&gt; metrics = new ArrayList&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final String hostname;
    -&nbsp;    private final int port;
    -&nbsp;    private final InetSocketAddress address;
    -&nbsp;    private final SocketFactory socketFactory;
    -&nbsp;    private final Charset charset;
    -&nbsp;
    -&nbsp;    private Socket socket;
    -&nbsp;    private Writer writer;
    -&nbsp;    private int failures;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
    -&nbsp;     * to a batchSize of 100
    -&nbsp;     *
    -&nbsp;     * @param address the address of the Carbon server
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(InetSocketAddress address) {
    -<b class="nc">&nbsp;        this(address, DEFAULT_BATCH_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param address   the address of the Carbon server
    -&nbsp;     * @param batchSize how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(InetSocketAddress address, int batchSize) {
    -<b class="nc">&nbsp;        this(address, SocketFactory.getDefault(), batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, int batchSize) {
    -<b class="nc">&nbsp;        this(address, socketFactory, UTF_8, batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given character set.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -<b class="fc">&nbsp;    public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset, int batchSize) {</b>
    -<b class="fc">&nbsp;        this.address = address;</b>
    -<b class="fc">&nbsp;        this.hostname = null;</b>
    -<b class="fc">&nbsp;        this.port = -1;</b>
    -<b class="fc">&nbsp;        this.socketFactory = socketFactory;</b>
    -<b class="fc">&nbsp;        this.charset = charset;</b>
    -<b class="fc">&nbsp;        this.batchSize = batchSize;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
    -&nbsp;     * to a batchSize of 100
    -&nbsp;     *
    -&nbsp;     * @param hostname the hostname of the Carbon server
    -&nbsp;     * @param port     the port of the Carbon server
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(String hostname, int port) {
    -<b class="nc">&nbsp;        this(hostname, port, DEFAULT_BATCH_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param hostname  the hostname of the Carbon server
    -&nbsp;     * @param port      the port of the Carbon server
    -&nbsp;     * @param batchSize how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(String hostname, int port, int batchSize) {
    -<b class="nc">&nbsp;        this(hostname, port, SocketFactory.getDefault(), batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param hostname      the hostname of the Carbon server
    -&nbsp;     * @param port          the port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(String hostname, int port, SocketFactory socketFactory, int batchSize) {
    -<b class="nc">&nbsp;        this(hostname, port, socketFactory, UTF_8, batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given character set.
    -&nbsp;     *
    -&nbsp;     * @param hostname      the hostname of the Carbon server
    -&nbsp;     * @param port          the port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -<b class="nc">&nbsp;    public PickledGraphite(String hostname, int port, SocketFactory socketFactory, Charset charset, int batchSize) {</b>
    -<b class="nc">&nbsp;        this.address = null;</b>
    -<b class="nc">&nbsp;        this.hostname = hostname;</b>
    -<b class="nc">&nbsp;        this.port = port;</b>
    -<b class="nc">&nbsp;        this.socketFactory = socketFactory;</b>
    -<b class="nc">&nbsp;        this.charset = charset;</b>
    -<b class="nc">&nbsp;        this.batchSize = batchSize;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        InetSocketAddress address = this.address;</b>
    -<b class="fc">&nbsp;        if (address == null) {</b>
    -<b class="nc">&nbsp;            address = new InetSocketAddress(hostname, port);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (address.getAddress() == null) {</b>
    -<b class="fc">&nbsp;            throw new UnknownHostException(address.getHostName());</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());</b>
    -<b class="nc">&nbsp;        this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return socket != null &amp;&amp; socket.isConnected() &amp;&amp; !socket.isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Convert the metric to a python tuple of the form:
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * (timestamp, (name, value))
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * And add it to the list of metrics. If we reach the batch size, write them out.
    -&nbsp;     *
    -&nbsp;     * @param name      the name of the metric
    -&nbsp;     * @param value     the value of the metric
    -&nbsp;     * @param timestamp the timestamp of the metric
    -&nbsp;     * @throws IOException if there was an error sending the metric
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -<b class="nc">&nbsp;        metrics.add(new MetricTuple(sanitize(name), timestamp, sanitize(value)));</b>
    -&nbsp;
    -<b class="nc">&nbsp;        if (metrics.size() &gt;= batchSize) {</b>
    -<b class="nc">&nbsp;            writeMetrics();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -<b class="nc">&nbsp;        writeMetrics();</b>
    -<b class="nc">&nbsp;        if (writer != null) {</b>
    -<b class="nc">&nbsp;            writer.flush();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -&nbsp;        try {
    -<b class="nc">&nbsp;            flush();</b>
    -<b class="nc">&nbsp;            if (writer != null) {</b>
    -<b class="nc">&nbsp;                writer.close();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    -<b class="nc">&nbsp;            if (socket != null) {</b>
    -<b class="nc">&nbsp;                socket.close();</b>
    -&nbsp;            }
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            this.socket = null;</b>
    -<b class="nc">&nbsp;            this.writer = null;</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="nc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * 1. Run the pickler script to package all the pending metrics into a single message
    -&nbsp;     * 2. Send the message to graphite
    -&nbsp;     * 3. Clear out the list of metrics
    -&nbsp;     */
    -&nbsp;    private void writeMetrics() throws IOException {
    -<b class="nc">&nbsp;        if (metrics.size() &gt; 0) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                byte[] payload = pickleMetrics(metrics);</b>
    -<b class="nc">&nbsp;                byte[] header = ByteBuffer.allocate(4).putInt(payload.length).array();</b>
    -&nbsp;
    -&nbsp;                @SuppressWarnings(&quot;resource&quot;)
    -<b class="nc">&nbsp;                OutputStream outputStream = socket.getOutputStream();</b>
    -<b class="nc">&nbsp;                outputStream.write(header);</b>
    -<b class="nc">&nbsp;                outputStream.write(payload);</b>
    -<b class="nc">&nbsp;                outputStream.flush();</b>
    -&nbsp;
    -<b class="nc">&nbsp;                if (LOGGER.isDebugEnabled()) {</b>
    -<b class="nc">&nbsp;                    LOGGER.debug(&quot;Wrote {} metrics&quot;, metrics.size());</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (IOException e) {</b>
    -<b class="nc">&nbsp;                this.failures++;</b>
    -<b class="nc">&nbsp;                throw e;</b>
    -&nbsp;            } finally {
    -&nbsp;                // if there was an error, we might miss some data. for now, drop those on the floor and
    -&nbsp;                // try to keep going.
    -<b class="nc">&nbsp;                metrics.clear();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * See: http://readthedocs.org/docs/graphite/en/1.0/feeding-carbon.html
    -&nbsp;     *
    -&nbsp;     * @throws IOException shouldn&#39;t happen because we write to memory.
    -&nbsp;     */
    -&nbsp;    byte[] pickleMetrics(List&lt;MetricTuple&gt; metrics) throws IOException {
    -&nbsp;        // Extremely rough estimate of 75 bytes per message
    -<b class="nc">&nbsp;        ByteArrayOutputStream out = new ByteArrayOutputStream(metrics.size() * 75);</b>
    -<b class="nc">&nbsp;        Writer pickled = new OutputStreamWriter(out, charset);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        pickled.append(MARK);</b>
    -<b class="nc">&nbsp;        pickled.append(LIST);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        for (MetricTuple tuple : metrics) {</b>
    -&nbsp;            // start the outer tuple
    -<b class="nc">&nbsp;            pickled.append(MARK);</b>
    -&nbsp;
    -&nbsp;            // the metric name is a string.
    -<b class="nc">&nbsp;            pickled.append(STRING);</b>
    -&nbsp;            // the single quotes are to match python&#39;s repr(&quot;abcd&quot;)
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(tuple.name);</b>
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(LF);</b>
    -&nbsp;
    -&nbsp;            // start the inner tuple
    -<b class="nc">&nbsp;            pickled.append(MARK);</b>
    -&nbsp;
    -&nbsp;            // timestamp is a long
    -<b class="nc">&nbsp;            pickled.append(LONG);</b>
    -<b class="nc">&nbsp;            pickled.append(Long.toString(tuple.timestamp));</b>
    -&nbsp;            // the trailing L is to match python&#39;s repr(long(1234))
    -<b class="nc">&nbsp;            pickled.append(LONG);</b>
    -<b class="nc">&nbsp;            pickled.append(LF);</b>
    -&nbsp;
    -&nbsp;            // and the value is a string.
    -<b class="nc">&nbsp;            pickled.append(STRING);</b>
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(tuple.value);</b>
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(LF);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            pickled.append(TUPLE); // inner close</b>
    -<b class="nc">&nbsp;            pickled.append(TUPLE); // outer close</b>
    -&nbsp;
    -<b class="nc">&nbsp;            pickled.append(APPEND);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        // every pickle ends with STOP
    -<b class="nc">&nbsp;        pickled.append(STOP);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        pickled.flush();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return out.toByteArray();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String s) {
    -<b class="nc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-7.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-7.html
    deleted file mode 100644
    index a6fc3cdb10..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-8/sources/source-7.html
    +++ /dev/null
    @@ -1,113 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteSender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteSender (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteSender</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import java.io.Closeable;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;public interface GraphiteSender extends Closeable {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Connects to the server.
    -&nbsp;     *
    -&nbsp;     * @throws IllegalStateException if the client is already connected
    -&nbsp;     * @throws IOException           if there is an error connecting
    -&nbsp;     */
    -&nbsp;    void connect() throws IllegalStateException, IOException;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Sends the given measurement to the server.
    -&nbsp;     *
    -&nbsp;     * @param name      the name of the metric
    -&nbsp;     * @param value     the value of the metric
    -&nbsp;     * @param timestamp the timestamp of the metric
    -&nbsp;     * @throws IOException if there was an error sending the metric
    -&nbsp;     */
    -&nbsp;    void send(String name, String value, long timestamp) throws IOException;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Flushes buffer, if applicable
    -&nbsp;     *
    -&nbsp;     * @throws IOException if there was an error during flushing metrics to the socket
    -&nbsp;     */
    -&nbsp;    void flush() throws IOException;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns true if ready to send data
    -&nbsp;     */
    -&nbsp;    boolean isConnected();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of failed writes to the server.
    -&nbsp;     *
    -&nbsp;     * @return the number of failed writes to the server
    -&nbsp;     */
    -&nbsp;    int getFailures();
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index.html
    deleted file mode 100644
    index 25b712cf04..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index dbd4d99b6c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index ee272e1f48..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index bda35eb97c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 8b7c275b03..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 1c72321741..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index ce04555c62..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 077e9e9b5d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 46d788c5a9..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index d407c8a2b4..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-1.html
    deleted file mode 100644
    index ace9deabe3..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-1.html
    +++ /dev/null
    @@ -1,184 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AsyncHealthCheckDecorator</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AsyncHealthCheckDecorator (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AsyncHealthCheckDecorator</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.health.annotation.Async;
    -&nbsp;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.ScheduledFuture;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A health check decorator to manage asynchronous executions.
    -&nbsp; */
    -&nbsp;public class AsyncHealthCheckDecorator extends HealthCheck implements Runnable {
    -&nbsp;    private static final String NO_RESULT_YET_MESSAGE = &quot;Waiting for first asynchronous check result.&quot;;
    -&nbsp;    private final HealthCheck healthCheck;
    -&nbsp;    private final ScheduledFuture&lt;?&gt; future;
    -&nbsp;    private final long healthyTtl;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private volatile Result result;
    -&nbsp;
    -<b class="fc">&nbsp;    AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService, Clock clock) {</b>
    -<b class="fc">&nbsp;        check(healthCheck != null, &quot;healthCheck cannot be null&quot;);</b>
    -<b class="fc">&nbsp;        check(executorService != null, &quot;executorService cannot be null&quot;);</b>
    -<b class="fc">&nbsp;        Async async = healthCheck.getClass().getAnnotation(Async.class);</b>
    -<b class="fc">&nbsp;        check(async != null, &quot;healthCheck must contain Async annotation&quot;);</b>
    -<b class="fc">&nbsp;        check(async.period() &gt; 0, &quot;period cannot be less than or equal to zero&quot;);</b>
    -<b class="fc">&nbsp;        check(async.initialDelay() &gt;= 0, &quot;initialDelay cannot be less than zero&quot;);</b>
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.healthCheck = healthCheck;</b>
    -<b class="fc">&nbsp;        this.healthyTtl = async.unit().toMillis(async.healthyTtl() &lt;= 0 ? 2 * async.period() : async.healthyTtl());</b>
    -<b class="fc">&nbsp;        result = Async.InitialState.HEALTHY.equals(async.initialState()) ? Result.healthy(NO_RESULT_YET_MESSAGE) :</b>
    -<b class="fc">&nbsp;                Result.unhealthy(NO_RESULT_YET_MESSAGE);</b>
    -<b class="fc">&nbsp;        if (Async.ScheduleType.FIXED_RATE.equals(async.scheduleType())) {</b>
    -<b class="fc">&nbsp;            future = executorService.scheduleAtFixedRate(this, async.initialDelay(), async.period(), async.unit());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            future = executorService.scheduleWithFixedDelay(this, async.initialDelay(), async.period(), async.unit());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService) {
    -<b class="fc">&nbsp;        this(healthCheck, executorService, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void run() {
    -<b class="fc">&nbsp;        result = healthCheck.execute();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected Result check() throws Exception {
    -<b class="fc">&nbsp;        long expiration = clock.getTime() - result.getTime() - healthyTtl;</b>
    -<b class="fc">&nbsp;        if (expiration &gt; 0) {</b>
    -<b class="fc">&nbsp;            return Result.builder()</b>
    -<b class="fc">&nbsp;                    .unhealthy()</b>
    -<b class="fc">&nbsp;                    .usingClock(clock)</b>
    -<b class="fc">&nbsp;                    .withMessage(&quot;Result was %s but it expired %d milliseconds ago&quot;,</b>
    -<b class="fc">&nbsp;                            result.isHealthy() ? &quot;healthy&quot; : &quot;unhealthy&quot;,</b>
    -<b class="fc">&nbsp;                            expiration)</b>
    -<b class="fc">&nbsp;                    .build();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        return result;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    boolean tearDown() {
    -<b class="fc">&nbsp;        return future.cancel(true);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public HealthCheck getHealthCheck() {
    -<b class="fc">&nbsp;        return healthCheck;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static void check(boolean expression, String message) {
    -<b class="fc">&nbsp;        if (!expression) {</b>
    -<b class="fc">&nbsp;            throw new IllegalArgumentException(message);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-2.html
    deleted file mode 100644
    index a23b453fc2..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-2.html
    +++ /dev/null
    @@ -1,546 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheck</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheck (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheck</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheck$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$MockitoMock$N8CZXceh</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$MockitoMock$N8CZXceh$auxiliary$7kHSbsru</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$MockitoMock$N8CZXceh$auxiliary$qYd6qSxJ</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$Result</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.5%
    -  </span>
    -  <span class="absValue">
    -    (49/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$ResultBuilder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;
    -&nbsp;import java.time.Instant;
    -&nbsp;import java.time.ZoneId;
    -&nbsp;import java.time.ZonedDateTime;
    -&nbsp;import java.time.format.DateTimeFormatter;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.LinkedHashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A health check for a component of your application.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class HealthCheck {</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * The result of a {@link HealthCheck} being run. It can be healthy (with an optional message and optional details)
    -&nbsp;     * or unhealthy (with either an error message or a thrown exception and optional details).
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Result {</b>
    -<b class="fc">&nbsp;        private static final DateTimeFormatter DATE_FORMAT_PATTERN =</b>
    -<b class="fc">&nbsp;                DateTimeFormatter.ofPattern(&quot;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSSXXX&quot;);</b>
    -&nbsp;        private static final int PRIME = 31;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a healthy {@link Result} with no additional message.
    -&nbsp;         *
    -&nbsp;         * @return a healthy {@link Result} with no additional message
    -&nbsp;         */
    -&nbsp;        public static Result healthy() {
    -<b class="fc">&nbsp;            return new Result(true, null, null);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a healthy {@link Result} with an additional message.
    -&nbsp;         *
    -&nbsp;         * @param message an informative message
    -&nbsp;         * @return a healthy {@link Result} with an additional message
    -&nbsp;         */
    -&nbsp;        public static Result healthy(String message) {
    -<b class="fc">&nbsp;            return new Result(true, message, null);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a healthy {@link Result} with a formatted message.
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    -&nbsp;         *
    -&nbsp;         * @param message a message format\\
    -&nbsp;         * @param args    the arguments apply to the message format
    -&nbsp;         * @return a healthy {@link Result} with an additional message
    -&nbsp;         * @see String#format(String, Object...)
    -&nbsp;         */
    -&nbsp;        public static Result healthy(String message, Object... args) {
    -<b class="fc">&nbsp;            return healthy(String.format(message, args));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns an unhealthy {@link Result} with the given message.
    -&nbsp;         *
    -&nbsp;         * @param message an informative message describing how the health check failed
    -&nbsp;         * @return an unhealthy {@link Result} with the given message
    -&nbsp;         */
    -&nbsp;        public static Result unhealthy(String message) {
    -<b class="fc">&nbsp;            return new Result(false, message, null);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns an unhealthy {@link Result} with a formatted message.
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    -&nbsp;         *
    -&nbsp;         * @param message a message format
    -&nbsp;         * @param args    the arguments apply to the message format
    -&nbsp;         * @return an unhealthy {@link Result} with an additional message
    -&nbsp;         * @see String#format(String, Object...)
    -&nbsp;         */
    -&nbsp;        public static Result unhealthy(String message, Object... args) {
    -<b class="fc">&nbsp;            return unhealthy(String.format(message, args));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns an unhealthy {@link Result} with the given error.
    -&nbsp;         *
    -&nbsp;         * @param error an exception thrown during the health check
    -&nbsp;         * @return an unhealthy {@link Result} with the given {@code error}
    -&nbsp;         */
    -&nbsp;        public static Result unhealthy(Throwable error) {
    -<b class="fc">&nbsp;            return new Result(false, error.getMessage(), error);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a new {@link ResultBuilder}
    -&nbsp;         *
    -&nbsp;         * @return the {@link ResultBuilder}
    -&nbsp;         */
    -&nbsp;        public static ResultBuilder builder() {
    -<b class="fc">&nbsp;            return new ResultBuilder();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private final boolean healthy;
    -&nbsp;        private final String message;
    -&nbsp;        private final Throwable error;
    -&nbsp;        private final Map&lt;String, Object&gt; details;
    -&nbsp;        private final long time;
    -&nbsp;
    -&nbsp;        private long duration; // Calculated field
    -&nbsp;
    -&nbsp;        private Result(boolean isHealthy, String message, Throwable error) {
    -<b class="fc">&nbsp;            this(isHealthy, message, error, null, Clock.defaultClock());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Result(ResultBuilder builder) {
    -<b class="fc">&nbsp;            this(builder.healthy, builder.message, builder.error, builder.details, builder.clock);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        private Result(boolean isHealthy, String message, Throwable error, Map&lt;String, Object&gt; details, Clock clock) {</b>
    -<b class="fc">&nbsp;            this.healthy = isHealthy;</b>
    -<b class="fc">&nbsp;            this.message = message;</b>
    -<b class="fc">&nbsp;            this.error = error;</b>
    -<b class="fc">&nbsp;            this.details = details == null ? null : Collections.unmodifiableMap(details);</b>
    -<b class="fc">&nbsp;            this.time = clock.getTime();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns {@code true} if the result indicates the component is healthy; {@code false}
    -&nbsp;         * otherwise.
    -&nbsp;         *
    -&nbsp;         * @return {@code true} if the result indicates the component is healthy
    -&nbsp;         */
    -&nbsp;        public boolean isHealthy() {
    -<b class="fc">&nbsp;            return healthy;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns any additional message for the result, or {@code null} if the result has no
    -&nbsp;         * message.
    -&nbsp;         *
    -&nbsp;         * @return any additional message for the result, or {@code null}
    -&nbsp;         */
    -&nbsp;        public String getMessage() {
    -<b class="fc">&nbsp;            return message;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns any exception for the result, or {@code null} if the result has no exception.
    -&nbsp;         *
    -&nbsp;         * @return any exception for the result, or {@code null}
    -&nbsp;         */
    -&nbsp;        public Throwable getError() {
    -<b class="fc">&nbsp;            return error;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the timestamp when the result was created as a formatted String.
    -&nbsp;         *
    -&nbsp;         * @return a formatted timestamp
    -&nbsp;         */
    -&nbsp;        public String getTimestamp() {
    -<b class="fc">&nbsp;            Instant currentInstant = Instant.ofEpochMilli(time);</b>
    -<b class="fc">&nbsp;            ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(currentInstant, ZoneId.systemDefault());</b>
    -<b class="fc">&nbsp;            return DATE_FORMAT_PATTERN.format(zonedDateTime);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the time when the result was created, in milliseconds since Epoch
    -&nbsp;         *
    -&nbsp;         * @return the time when the result was created
    -&nbsp;         */
    -&nbsp;        public long getTime() {
    -<b class="fc">&nbsp;            return time;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the duration in milliseconds that the healthcheck took to run
    -&nbsp;         *
    -&nbsp;         * @return the duration
    -&nbsp;         */
    -&nbsp;        public long getDuration() {
    -<b class="fc">&nbsp;            return duration;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Sets the duration in milliseconds. This will indicate the time it took to run the individual healthcheck
    -&nbsp;         *
    -&nbsp;         * @param duration The duration in milliseconds
    -&nbsp;         */
    -&nbsp;        public void setDuration(long duration) {
    -<b class="fc">&nbsp;            this.duration = duration;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Map&lt;String, Object&gt; getDetails() {
    -<b class="fc">&nbsp;            return details;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="fc">&nbsp;            if (this == o) {</b>
    -<b class="fc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            final Result result = (Result) o;</b>
    -<b class="fc">&nbsp;            return healthy == result.healthy &amp;&amp;</b>
    -<b class="nc">&nbsp;                    !(error != null ? !error.equals(result.error) : result.error != null) &amp;&amp;</b>
    -<b class="fc">&nbsp;                    !(message != null ? !message.equals(result.message) : result.message != null) &amp;&amp;</b>
    -&nbsp;                    time == result.time;
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="nc">&nbsp;            int result = healthy ? 1 : 0;</b>
    -<b class="nc">&nbsp;            result = PRIME * result + (message != null ? message.hashCode() : 0);</b>
    -<b class="nc">&nbsp;            result = PRIME * result + (error != null ? error.hashCode() : 0);</b>
    -<b class="nc">&nbsp;            result = PRIME * result + (Long.hashCode(time));</b>
    -<b class="nc">&nbsp;            return result;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String toString() {
    -<b class="fc">&nbsp;            final StringBuilder builder = new StringBuilder(&quot;Result{isHealthy=&quot;);</b>
    -<b class="fc">&nbsp;            builder.append(healthy);</b>
    -<b class="fc">&nbsp;            if (message != null) {</b>
    -<b class="nc">&nbsp;                builder.append(&quot;, message=&quot;).append(message);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (error != null) {</b>
    -<b class="nc">&nbsp;                builder.append(&quot;, error=&quot;).append(error);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            builder.append(&quot;, duration=&quot;).append(duration);</b>
    -<b class="fc">&nbsp;            builder.append(&quot;, timestamp=&quot;).append(getTimestamp());</b>
    -<b class="fc">&nbsp;            if (details != null) {</b>
    -<b class="fc">&nbsp;                for (Map.Entry&lt;String, Object&gt; e : details.entrySet()) {</b>
    -<b class="fc">&nbsp;                    builder.append(&quot;, &quot;);</b>
    -<b class="fc">&nbsp;                    builder.append(e.getKey())</b>
    -<b class="fc">&nbsp;                            .append(&quot;=&quot;)</b>
    -<b class="fc">&nbsp;                            .append(String.valueOf(e.getValue()));</b>
    -<b class="fc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            builder.append(&#39;}&#39;);</b>
    -<b class="fc">&nbsp;            return builder.toString();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * This a convenient builder for an {@link HealthCheck.Result}. It can be health (with optional message and detail)
    -&nbsp;     * or unhealthy (with optional message, error and detail)
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class ResultBuilder {</b>
    -&nbsp;        private boolean healthy;
    -&nbsp;        private String message;
    -&nbsp;        private Throwable error;
    -&nbsp;        private Map&lt;String, Object&gt; details;
    -&nbsp;        private Clock clock;
    -&nbsp;
    -<b class="fc">&nbsp;        protected ResultBuilder() {</b>
    -<b class="fc">&nbsp;            this.healthy = true;</b>
    -<b class="fc">&nbsp;            this.details = new LinkedHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure an healthy result
    -&nbsp;         *
    -&nbsp;         * @return this builder with healthy status
    -&nbsp;         */
    -&nbsp;        public ResultBuilder healthy() {
    -<b class="fc">&nbsp;            this.healthy = true;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure an unhealthy result
    -&nbsp;         *
    -&nbsp;         * @return this builder with unhealthy status
    -&nbsp;         */
    -&nbsp;        public ResultBuilder unhealthy() {
    -<b class="fc">&nbsp;            this.healthy = false;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure an unhealthy result with an {@code error}
    -&nbsp;         *
    -&nbsp;         * @param error the error
    -&nbsp;         * @return this builder with the given error
    -&nbsp;         */
    -&nbsp;        public ResultBuilder unhealthy(Throwable error) {
    -<b class="fc">&nbsp;            this.error = error;</b>
    -<b class="fc">&nbsp;            return this.unhealthy().withMessage(error.getMessage());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Set an optional message
    -&nbsp;         *
    -&nbsp;         * @param message an informative message
    -&nbsp;         * @return this builder with the given {@code message}
    -&nbsp;         */
    -&nbsp;        public ResultBuilder withMessage(String message) {
    -<b class="fc">&nbsp;            this.message = message;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Set an optional formatted message
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    -&nbsp;         *
    -&nbsp;         * @param message a message format
    -&nbsp;         * @param args    the arguments apply to the message format
    -&nbsp;         * @return this builder with the given formatted {@code message}
    -&nbsp;         * @see String#format(String, Object...)
    -&nbsp;         */
    -&nbsp;        public ResultBuilder withMessage(String message, Object... args) {
    -<b class="fc">&nbsp;            return withMessage(String.format(message, args));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Add an optional detail
    -&nbsp;         *
    -&nbsp;         * @param key  a key for this detail
    -&nbsp;         * @param data an object representing the detail data
    -&nbsp;         * @return this builder with the given detail added
    -&nbsp;         */
    -&nbsp;        public ResultBuilder withDetail(String key, Object data) {
    -<b class="fc">&nbsp;            if (this.details == null) {</b>
    -<b class="nc">&nbsp;                this.details = new LinkedHashMap&lt;&gt;();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            this.details.put(key, data);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure this {@link ResultBuilder} to use the given {@code clock} instead of the default clock.
    -&nbsp;         * If not specified, the default clock is {@link Clock#defaultClock()}.
    -&nbsp;         *
    -&nbsp;         * @param clock the {@link Clock} to use when generating the health check timestamp (useful for unit testing)
    -&nbsp;         * @return this builder configured to use the given {@code clock}
    -&nbsp;         */
    -&nbsp;        public ResultBuilder usingClock(Clock clock) {
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Result build() {
    -<b class="fc">&nbsp;            return new Result(this);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Perform a check of the application component.
    -&nbsp;     *
    -&nbsp;     * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
    -&nbsp;     * Result} with a descriptive error message or exception
    -&nbsp;     * @throws Exception if there is an unhandled error during the health check; this will result in
    -&nbsp;     *                   a failed health check
    -&nbsp;     */
    -&nbsp;    protected abstract Result check() throws Exception;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Executes the health check, catching and handling any exceptions raised by {@link #check()}.
    -&nbsp;     *
    -&nbsp;     * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
    -&nbsp;     * Result} with a descriptive error message or exception
    -&nbsp;     */
    -&nbsp;    public Result execute() {
    -<b class="fc">&nbsp;        long start = clock().getTick();</b>
    -&nbsp;        Result result;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            result = check();</b>
    -<b class="fc">&nbsp;        } catch (Exception e) {</b>
    -<b class="fc">&nbsp;            result = Result.unhealthy(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        result.setDuration(TimeUnit.MILLISECONDS.convert(clock().getTick() - start, TimeUnit.NANOSECONDS));</b>
    -<b class="fc">&nbsp;        return result;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected Clock clock() {
    -<b class="fc">&nbsp;        return Clock.defaultClock();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-3.html
    deleted file mode 100644
    index 3d5ce0a456..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-3.html
    +++ /dev/null
    @@ -1,125 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckFilter (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A filter used to determine whether or not a health check should be reported.
    -&nbsp; */
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface HealthCheckFilter {
    -&nbsp;    /**
    -&nbsp;     * Matches all health checks, regardless of type or name.
    -&nbsp;     */
    -<b class="fc">&nbsp;    HealthCheckFilter ALL = (name, healthCheck) -&gt; true;</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns {@code true} if the health check matches the filter; {@code false} otherwise.
    -&nbsp;     *
    -&nbsp;     * @param name        the health check&#39;s name
    -&nbsp;     * @param healthCheck the health check
    -&nbsp;     * @return {@code true} if the health check matches the filter
    -&nbsp;     */
    -&nbsp;    boolean matches(String name, HealthCheck healthCheck);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-4.html
    deleted file mode 100644
    index 52af3cfd6d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-4.html
    +++ /dev/null
    @@ -1,418 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckRegistry</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckRegistry (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckRegistry</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.7%
    -  </span>
    -  <span class="absValue">
    -    (70/78)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistry$NamedThreadFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.annotation.Async;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.NoSuchElementException;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.SortedSet;
    -&nbsp;import java.util.TreeMap;
    -&nbsp;import java.util.TreeSet;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.CopyOnWriteArrayList;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;import java.util.concurrent.Future;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.ScheduledThreadPoolExecutor;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.health.HealthCheck.Result;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A registry for health checks.
    -&nbsp; */
    -&nbsp;public class HealthCheckRegistry {
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(HealthCheckRegistry.class);</b>
    -&nbsp;    private static final int ASYNC_EXECUTOR_POOL_SIZE = 2;
    -&nbsp;
    -&nbsp;    private final ConcurrentMap&lt;String, HealthCheck&gt; healthChecks;
    -&nbsp;    private final List&lt;HealthCheckRegistryListener&gt; listeners;
    -&nbsp;    private final ScheduledExecutorService asyncExecutorService;
    -<b class="fc">&nbsp;    private final Object lock = new Object();</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    -&nbsp;     */
    -&nbsp;    public HealthCheckRegistry() {
    -<b class="fc">&nbsp;        this(ASYNC_EXECUTOR_POOL_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    -&nbsp;     *
    -&nbsp;     * @param asyncExecutorPoolSize core pool size for async health check executions
    -&nbsp;     */
    -&nbsp;    public HealthCheckRegistry(int asyncExecutorPoolSize) {
    -<b class="fc">&nbsp;        this(createExecutorService(asyncExecutorPoolSize));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    -&nbsp;     *
    -&nbsp;     * @param asyncExecutorService executor service for async health check executions
    -&nbsp;     */
    -<b class="fc">&nbsp;    public HealthCheckRegistry(ScheduledExecutorService asyncExecutorService) {</b>
    -<b class="fc">&nbsp;        this.healthChecks = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        this.listeners = new CopyOnWriteArrayList&lt;&gt;();</b>
    -<b class="fc">&nbsp;        this.asyncExecutorService = asyncExecutorService;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a {@link HealthCheckRegistryListener} to a collection of listeners that will be notified on health check
    -&nbsp;     * registration. Listeners will be notified in the order in which they are added. The listener will be notified of all
    -&nbsp;     * existing health checks when it first registers.
    -&nbsp;     *
    -&nbsp;     * @param listener listener to add
    -&nbsp;     */
    -&nbsp;    public void addListener(HealthCheckRegistryListener listener) {
    -<b class="fc">&nbsp;        listeners.add(listener);</b>
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    -<b class="fc">&nbsp;            listener.onHealthCheckAdded(entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Removes a {@link HealthCheckRegistryListener} from this registry&#39;s collection of listeners.
    -&nbsp;     *
    -&nbsp;     * @param listener listener to remove
    -&nbsp;     */
    -&nbsp;    public void removeListener(HealthCheckRegistryListener listener) {
    -<b class="fc">&nbsp;        listeners.remove(listener);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Registers an application {@link HealthCheck}.
    -&nbsp;     *
    -&nbsp;     * @param name        the name of the health check
    -&nbsp;     * @param healthCheck the {@link HealthCheck} instance
    -&nbsp;     */
    -&nbsp;    public void register(String name, HealthCheck healthCheck) {
    -&nbsp;        HealthCheck registered;
    -<b class="fc">&nbsp;        synchronized (lock) {</b>
    -<b class="fc">&nbsp;            if (healthChecks.containsKey(name)) {</b>
    -<b class="fc">&nbsp;                throw new IllegalArgumentException(&quot;A health check named &quot; + name + &quot; already exists&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            registered = healthCheck;</b>
    -<b class="fc">&nbsp;            if (healthCheck.getClass().isAnnotationPresent(Async.class)) {</b>
    -<b class="fc">&nbsp;                registered = new AsyncHealthCheckDecorator(healthCheck, asyncExecutorService);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            healthChecks.put(name, registered);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        onHealthCheckAdded(name, registered);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Unregisters the application {@link HealthCheck} with the given name.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the {@link HealthCheck} instance
    -&nbsp;     */
    -&nbsp;    public void unregister(String name) {
    -&nbsp;        HealthCheck healthCheck;
    -<b class="fc">&nbsp;        synchronized (lock) {</b>
    -<b class="fc">&nbsp;            healthCheck = healthChecks.remove(name);</b>
    -<b class="fc">&nbsp;            if (healthCheck instanceof AsyncHealthCheckDecorator) {</b>
    -<b class="fc">&nbsp;                ((AsyncHealthCheckDecorator) healthCheck).tearDown();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        if (healthCheck != null) {</b>
    -<b class="fc">&nbsp;            onHealthCheckRemoved(name, healthCheck);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a set of the names of all registered health checks.
    -&nbsp;     *
    -&nbsp;     * @return the names of all registered health checks
    -&nbsp;     */
    -&nbsp;    public SortedSet&lt;String&gt; getNames() {
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedSet(new TreeSet&lt;&gt;(healthChecks.keySet()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the {@link HealthCheck} instance with a given name
    -&nbsp;     *
    -&nbsp;     * @param name the name of the {@link HealthCheck} instance
    -&nbsp;     */
    -&nbsp;    public HealthCheck getHealthCheck(String name) {
    -<b class="nc">&nbsp;        return healthChecks.get(name);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the health check with the given name.
    -&nbsp;     *
    -&nbsp;     * @param name the health check&#39;s name
    -&nbsp;     * @return the result of the health check
    -&nbsp;     * @throws NoSuchElementException if there is no health check with the given name
    -&nbsp;     */
    -&nbsp;    public HealthCheck.Result runHealthCheck(String name) throws NoSuchElementException {
    -<b class="fc">&nbsp;        final HealthCheck healthCheck = healthChecks.get(name);</b>
    -<b class="fc">&nbsp;        if (healthCheck == null) {</b>
    -<b class="fc">&nbsp;            throw new NoSuchElementException(&quot;No health check named &quot; + name + &quot; exists&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return healthCheck.execute();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    -<b class="fc">&nbsp;        return runHealthChecks(HealthCheckFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks matching the filter and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @param filter health check filter
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(HealthCheckFilter filter) {
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = new TreeMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    -<b class="fc">&nbsp;            final String name = entry.getKey();</b>
    -<b class="fc">&nbsp;            final HealthCheck healthCheck = entry.getValue();</b>
    -<b class="fc">&nbsp;            if (filter.matches(name, healthCheck)) {</b>
    -<b class="fc">&nbsp;                final Result result = entry.getValue().execute();</b>
    -<b class="fc">&nbsp;                results.put(entry.getKey(), result);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(results);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks in parallel and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @param executor object to launch and track health checks progress
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(ExecutorService executor) {
    -<b class="fc">&nbsp;        return runHealthChecks(executor, HealthCheckFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks matching the filter in parallel and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @param executor object to launch and track health checks progress
    -&nbsp;     * @param filter   health check filter
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(ExecutorService executor, HealthCheckFilter filter) {
    -<b class="fc">&nbsp;        final Map&lt;String, Future&lt;HealthCheck.Result&gt;&gt; futures = new HashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (final Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    -<b class="fc">&nbsp;            final String name = entry.getKey();</b>
    -<b class="fc">&nbsp;            final HealthCheck healthCheck = entry.getValue();</b>
    -<b class="fc">&nbsp;            if (filter.matches(name, healthCheck)) {</b>
    -<b class="fc">&nbsp;                futures.put(name, executor.submit(() -&gt; healthCheck.execute()));</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = new TreeMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Future&lt;Result&gt;&gt; entry : futures.entrySet()) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                results.put(entry.getKey(), entry.getValue().get());</b>
    -<b class="nc">&nbsp;            } catch (Exception e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Error executing health check {}&quot;, entry.getKey(), e);</b>
    -<b class="nc">&nbsp;                results.put(entry.getKey(), HealthCheck.Result.unhealthy(e));</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(results);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    private void onHealthCheckAdded(String name, HealthCheck healthCheck) {
    -<b class="fc">&nbsp;        for (HealthCheckRegistryListener listener : listeners) {</b>
    -<b class="fc">&nbsp;            listener.onHealthCheckAdded(name, healthCheck);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void onHealthCheckRemoved(String name, HealthCheck healthCheck) {
    -<b class="fc">&nbsp;        for (HealthCheckRegistryListener listener : listeners) {</b>
    -<b class="fc">&nbsp;            listener.onHealthCheckRemoved(name, healthCheck);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Shuts down the scheduled executor for async health checks
    -&nbsp;     */
    -&nbsp;    public void shutdown() {
    -<b class="fc">&nbsp;        asyncExecutorService.shutdown(); // Disable new health checks from being submitted</b>
    -&nbsp;        try {
    -&nbsp;            // Give some time to the current healtch checks to finish gracefully
    -<b class="fc">&nbsp;            if (!asyncExecutorService.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    -<b class="nc">&nbsp;                asyncExecutorService.shutdownNow();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (InterruptedException ie) {</b>
    -<b class="nc">&nbsp;            asyncExecutorService.shutdownNow();</b>
    -<b class="nc">&nbsp;            Thread.currentThread().interrupt();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static ScheduledExecutorService createExecutorService(int corePoolSize) {
    -<b class="fc">&nbsp;        final ScheduledThreadPoolExecutor asyncExecutorService = new ScheduledThreadPoolExecutor(corePoolSize,</b>
    -&nbsp;                new NamedThreadFactory(&quot;healthcheck-async-executor-&quot;));
    -<b class="fc">&nbsp;        asyncExecutorService.setRemoveOnCancelPolicy(true);</b>
    -<b class="fc">&nbsp;        return asyncExecutorService;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class NamedThreadFactory implements ThreadFactory {
    -&nbsp;
    -&nbsp;        private final ThreadGroup group;
    -<b class="fc">&nbsp;        private final AtomicInteger threadNumber = new AtomicInteger(1);</b>
    -&nbsp;        private final String namePrefix;
    -&nbsp;
    -<b class="fc">&nbsp;        NamedThreadFactory(String namePrefix) {</b>
    -<b class="fc">&nbsp;            SecurityManager s = System.getSecurityManager();</b>
    -<b class="fc">&nbsp;            group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();</b>
    -<b class="fc">&nbsp;            this.namePrefix = namePrefix;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Thread newThread(Runnable r) {
    -<b class="fc">&nbsp;            Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);</b>
    -<b class="fc">&nbsp;            t.setDaemon(true);</b>
    -<b class="fc">&nbsp;            if (t.getPriority() != Thread.NORM_PRIORITY)</b>
    -<b class="nc">&nbsp;                t.setPriority(Thread.NORM_PRIORITY);</b>
    -<b class="fc">&nbsp;            return t;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-5.html
    deleted file mode 100644
    index a6da882202..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-5.html
    +++ /dev/null
    @@ -1,210 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SharedHealthCheckRegistries</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SharedHealthCheckRegistries (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SharedHealthCheckRegistries</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.atomic.AtomicReference;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A map of shared, named health registries.
    -&nbsp; */
    -&nbsp;public class SharedHealthCheckRegistries {
    -<b class="fc">&nbsp;    private static final ConcurrentMap&lt;String, HealthCheckRegistry&gt; REGISTRIES =</b>
    -&nbsp;            new ConcurrentHashMap&lt;&gt;();
    -&nbsp;
    -<b class="fc">&nbsp;    private static AtomicReference&lt;String&gt; defaultRegistryName = new AtomicReference&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    /* Visible for testing */
    -&nbsp;    static void setDefaultRegistryName(AtomicReference&lt;String&gt; defaultRegistryName) {
    -<b class="fc">&nbsp;        SharedHealthCheckRegistries.defaultRegistryName = defaultRegistryName;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private SharedHealthCheckRegistries() { /* singleton */ }
    -&nbsp;
    -&nbsp;    public static void clear() {
    -<b class="fc">&nbsp;        REGISTRIES.clear();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Set&lt;String&gt; names() {
    -<b class="fc">&nbsp;        return REGISTRIES.keySet();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void remove(String key) {
    -<b class="fc">&nbsp;        REGISTRIES.remove(key);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HealthCheckRegistry add(String name, HealthCheckRegistry registry) {
    -<b class="fc">&nbsp;        return REGISTRIES.putIfAbsent(name, registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HealthCheckRegistry getOrCreate(String name) {
    -<b class="fc">&nbsp;        final HealthCheckRegistry existing = REGISTRIES.get(name);</b>
    -<b class="fc">&nbsp;        if (existing == null) {</b>
    -<b class="fc">&nbsp;            final HealthCheckRegistry created = new HealthCheckRegistry();</b>
    -<b class="fc">&nbsp;            final HealthCheckRegistry raced = add(name, created);</b>
    -<b class="fc">&nbsp;            if (raced == null) {</b>
    -<b class="fc">&nbsp;                return created;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            return raced;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return existing;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new registry and sets it as the default one under the provided name.
    -&nbsp;     *
    -&nbsp;     * @param name the registry name
    -&nbsp;     * @return the default registry
    -&nbsp;     * @throws IllegalStateException if the name has already been set
    -&nbsp;     */
    -&nbsp;    public synchronized static HealthCheckRegistry setDefault(String name) {
    -<b class="fc">&nbsp;        final HealthCheckRegistry registry = getOrCreate(name);</b>
    -<b class="fc">&nbsp;        return setDefault(name, registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Sets the provided registry as the default one under the provided name
    -&nbsp;     *
    -&nbsp;     * @param name                the default registry name
    -&nbsp;     * @param healthCheckRegistry the default registry
    -&nbsp;     * @throws IllegalStateException if the default registry has already been set
    -&nbsp;     */
    -&nbsp;    public static HealthCheckRegistry setDefault(String name, HealthCheckRegistry healthCheckRegistry) {
    -<b class="fc">&nbsp;        if (defaultRegistryName.compareAndSet(null, name)) {</b>
    -<b class="fc">&nbsp;            add(name, healthCheckRegistry);</b>
    -<b class="fc">&nbsp;            return healthCheckRegistry;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default health check registry is already set.&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Gets the name of the default registry, if it has been set
    -&nbsp;     *
    -&nbsp;     * @return the default registry
    -&nbsp;     * @throws IllegalStateException if the default has not been set
    -&nbsp;     */
    -&nbsp;    public static HealthCheckRegistry getDefault() {
    -<b class="fc">&nbsp;        final HealthCheckRegistry healthCheckRegistry = tryGetDefault();</b>
    -<b class="fc">&nbsp;        if (healthCheckRegistry != null) {</b>
    -<b class="fc">&nbsp;            return healthCheckRegistry;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default registry name has not been set.&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Same as {@link #getDefault()} except returns null when the default registry has not been set.
    -&nbsp;     *
    -&nbsp;     * @return the default registry or null
    -&nbsp;     */
    -&nbsp;    public static HealthCheckRegistry tryGetDefault() {
    -<b class="fc">&nbsp;        final String name = defaultRegistryName.get();</b>
    -<b class="fc">&nbsp;        if (name != null) {</b>
    -<b class="fc">&nbsp;            return getOrCreate(name);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return null;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-6.html
    deleted file mode 100644
    index 164154f841..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-9/sources/source-6.html
    +++ /dev/null
    @@ -1,103 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckRegistryListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckRegistryListener (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistryListener$MockitoMock$CZZYCxLV</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistryListener$MockitoMock$CZZYCxLV$auxiliary$mgpbJQeh</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistryListener$MockitoMock$CZZYCxLV$auxiliary$QeuBdlQf</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import java.util.EventListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A listener contract for {@link HealthCheckRegistry} events.
    -&nbsp; */
    -&nbsp;public interface HealthCheckRegistryListener extends EventListener {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a new {@link HealthCheck} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name        the name of the health check
    -&nbsp;     * @param healthCheck the health check
    -&nbsp;     */
    -&nbsp;    void onHealthCheckAdded(String name, HealthCheck healthCheck);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link HealthCheck} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name        the name of the health check
    -&nbsp;     * @param healthCheck the health check
    -&nbsp;     */
    -&nbsp;    void onHealthCheckRemoved(String name, HealthCheck healthCheck);
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index.html
    deleted file mode 100644
    index 5bcbd17fe9..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index f4f9cc19dc..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index baa86b90be..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index dd752c8007..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index d79b52a4ac..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_LINE.html
    deleted file mode 100644
    index a971760eec..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 458b5980d2..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index e6d38c3e21..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index c46862402c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 741e22650d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/sources/source-1.html
    deleted file mode 100644
    index 2047be9e9a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-a/sources/source-1.html
    +++ /dev/null
    @@ -1,205 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Async</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Async (com.codahale.metrics.health.annotation)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name">Async$InitialState</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Async$ScheduleType</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking asynchronous health check execution.
    -&nbsp; */
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target(ElementType.TYPE)
    -&nbsp;public @interface Async {
    -&nbsp;    /**
    -&nbsp;     * Enum representing the initial health states.
    -&nbsp;     */
    -<b class="fc">&nbsp;    enum InitialState {</b>
    -<b class="fc">&nbsp;        HEALTHY, UNHEALTHY</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Enum representing the possible schedule types.
    -&nbsp;     */
    -<b class="fc">&nbsp;    enum ScheduleType {</b>
    -<b class="fc">&nbsp;        FIXED_RATE, FIXED_DELAY</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Period between executions.
    -&nbsp;     *
    -&nbsp;     * @return period
    -&nbsp;     */
    -&nbsp;    long period();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Scheduling type of asynchronous executions.
    -&nbsp;     *
    -&nbsp;     * @return schedule type
    -&nbsp;     */
    -&nbsp;    ScheduleType scheduleType() default ScheduleType.FIXED_RATE;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Initial delay of first execution.
    -&nbsp;     *
    -&nbsp;     * @return initial delay
    -&nbsp;     */
    -&nbsp;    long initialDelay() default 0;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Time unit of initial delay, period and healthyTtl.
    -&nbsp;     *
    -&nbsp;     * @return time unit
    -&nbsp;     */
    -&nbsp;    TimeUnit unit() default TimeUnit.SECONDS;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Initial health state until first asynchronous execution completes.
    -&nbsp;     *
    -&nbsp;     * @return initial health state
    -&nbsp;     */
    -&nbsp;    InitialState initialState() default InitialState.HEALTHY;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * How long a healthy result is considered valid before being ignored.
    -&nbsp;     *
    -&nbsp;     * Handles cases where the asynchronous healthcheck did not run (for example thread starvation).
    -&nbsp;     *
    -&nbsp;     * Defaults to 2 * period
    -&nbsp;     *
    -&nbsp;     * @return healthy result time to live
    -&nbsp;     */
    -&nbsp;    long healthyTtl() default -1;
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index.html
    deleted file mode 100644
    index ac307f4b27..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index c47d3bb486..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 194a58ce17..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 596c7b1a05..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 16d1b9592b..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 6e149dc2a0..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index c01e841c84..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index a36f9ab29e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 18ba4ce880..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 3f149663cf..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/sources/source-1.html
    deleted file mode 100644
    index 98c8f4cbe2..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-b/sources/source-1.html
    +++ /dev/null
    @@ -1,142 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDeadlockHealthCheck</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDeadlockHealthCheck (com.codahale.metrics.health.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDeadlockHealthCheck</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.codahale.metrics.jvm.ThreadDeadlockDetector;
    -&nbsp;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A health check which returns healthy if no threads are deadlocked.
    -&nbsp; */
    -&nbsp;public class ThreadDeadlockHealthCheck extends HealthCheck {
    -&nbsp;    private final ThreadDeadlockDetector detector;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new health check.
    -&nbsp;     */
    -&nbsp;    public ThreadDeadlockHealthCheck() {
    -<b class="fc">&nbsp;        this(new ThreadDeadlockDetector());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new health check with the given detector.
    -&nbsp;     *
    -&nbsp;     * @param detector a thread deadlock detector
    -&nbsp;     */
    -<b class="fc">&nbsp;    public ThreadDeadlockHealthCheck(ThreadDeadlockDetector detector) {</b>
    -<b class="fc">&nbsp;        this.detector = detector;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected Result check() throws Exception {
    -<b class="fc">&nbsp;        final Set&lt;String&gt; threads = detector.getDeadlockedThreads();</b>
    -<b class="fc">&nbsp;        if (threads.isEmpty()) {</b>
    -<b class="fc">&nbsp;            return Result.healthy();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return Result.unhealthy(threads.toString());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index.html
    deleted file mode 100644
    index ccd7ae802a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 4103a63c3e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index fd464e8881..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 6c02a01b30..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index cd386a8eaf..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_LINE.html
    deleted file mode 100644
    index e7965ca19d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 9921b3a333..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index ad13d92270..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 85b2acf8cd..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index a88d692238..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/sources/source-1.html
    deleted file mode 100644
    index 63684ee441..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/sources/source-1.html
    +++ /dev/null
    @@ -1,140 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedNClientConnManager</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpasyncclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedNClientConnManager (com.codahale.metrics.httpasyncclient)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedNClientConnManager</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpasyncclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.config.Registry;
    -&nbsp;import org.apache.http.conn.DnsResolver;
    -&nbsp;import org.apache.http.conn.SchemePortResolver;
    -&nbsp;import org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager;
    -&nbsp;import org.apache.http.nio.conn.ManagedNHttpClientConnection;
    -&nbsp;import org.apache.http.nio.conn.NHttpClientConnectionManager;
    -&nbsp;import org.apache.http.nio.conn.NHttpConnectionFactory;
    -&nbsp;import org.apache.http.nio.conn.SchemeIOSessionStrategy;
    -&nbsp;import org.apache.http.nio.reactor.ConnectingIOReactor;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;public class InstrumentedNClientConnManager extends PoolingNHttpClientConnectionManager {
    -&nbsp;
    -&nbsp;    public InstrumentedNClientConnManager(final ConnectingIOReactor ioreactor, final NHttpConnectionFactory&lt;ManagedNHttpClientConnection&gt; connFactory, final SchemePortResolver schemePortResolver, final MetricRegistry metricRegistry, final Registry&lt;SchemeIOSessionStrategy&gt; iosessionFactoryRegistry, final long timeToLive, final TimeUnit tunit, final DnsResolver dnsResolver, final String name) {
    -<b class="fc">&nbsp;        super(ioreactor, connFactory, iosessionFactoryRegistry, schemePortResolver, dnsResolver, timeToLive, tunit);</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;available-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;leased-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;max-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;pending-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/sources/source-2.html
    deleted file mode 100644
    index c1d869bb04..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-c/sources/source-2.html
    +++ /dev/null
    @@ -1,268 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedNHttpClientBuilder</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpasyncclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedNHttpClientBuilder (com.codahale.metrics.httpasyncclient)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedNHttpClientBuilder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (5/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (9/11)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedNHttpClientBuilder$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (3/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedNHttpClientBuilder$TimingFutureCallback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpasyncclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.httpclient.HttpClientMetricNameStrategies;
    -&nbsp;import com.codahale.metrics.httpclient.HttpClientMetricNameStrategy;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.concurrent.Future;
    -&nbsp;
    -&nbsp;import org.apache.http.HttpException;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.concurrent.FutureCallback;
    -&nbsp;import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
    -&nbsp;import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
    -&nbsp;import org.apache.http.nio.protocol.HttpAsyncRequestProducer;
    -&nbsp;import org.apache.http.nio.protocol.HttpAsyncResponseConsumer;
    -&nbsp;import org.apache.http.protocol.HttpContext;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedNHttpClientBuilder extends HttpAsyncClientBuilder {</b>
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private final String name;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy, String name) {
    -<b class="fc">&nbsp;        super();</b>
    -<b class="fc">&nbsp;        this.metricRegistry = metricRegistry;</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(metricRegistry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, String name) {
    -<b class="nc">&nbsp;        this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, name);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;        return metricRegistry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public CloseableHttpAsyncClient build() {
    -<b class="fc">&nbsp;        final CloseableHttpAsyncClient ac = super.build();</b>
    -<b class="fc">&nbsp;        return new CloseableHttpAsyncClient() {</b>
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isRunning() {
    -<b class="nc">&nbsp;                return ac.isRunning();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void start() {
    -<b class="fc">&nbsp;                ac.start();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public &lt;T&gt; Future&lt;T&gt; execute(HttpAsyncRequestProducer requestProducer, HttpAsyncResponseConsumer&lt;T&gt; responseConsumer, HttpContext context, FutureCallback&lt;T&gt; callback) {
    -&nbsp;                final Timer.Context timerContext;
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    timerContext = timer(requestProducer.generateRequest()).time();</b>
    -<b class="nc">&nbsp;                } catch (IOException | HttpException ex) {</b>
    -<b class="nc">&nbsp;                    throw new RuntimeException(ex);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;                return ac.execute(requestProducer, responseConsumer, context,</b>
    -&nbsp;                        new TimingFutureCallback&lt;&gt;(callback, timerContext));
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void close() throws IOException {
    -<b class="nc">&nbsp;                ac.close();</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class TimingFutureCallback&lt;T&gt; implements FutureCallback&lt;T&gt; {</b>
    -&nbsp;        private final FutureCallback&lt;T&gt; callback;
    -&nbsp;        private final Timer.Context timerContext;
    -&nbsp;
    -&nbsp;        private TimingFutureCallback(FutureCallback&lt;T&gt; callback,
    -<b class="fc">&nbsp;                                     Timer.Context timerContext) {</b>
    -<b class="fc">&nbsp;            this.callback = callback;</b>
    -<b class="fc">&nbsp;            this.timerContext = requireNonNull(timerContext, &quot;timerContext&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void completed(T result) {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;            if (callback != null) {</b>
    -<b class="fc">&nbsp;                callback.completed(result);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void failed(Exception ex) {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;            if (callback != null) {</b>
    -<b class="fc">&nbsp;                callback.failed(ex);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void cancelled() {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;            if (callback != null) {</b>
    -<b class="fc">&nbsp;                callback.cancelled();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index.html
    deleted file mode 100644
    index 6f35d3d01d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index ce0879c510..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index f615c23b83..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index fb67d9facf..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index da3ecf16db..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 19f3772abd..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index ab1f0abbe8..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 414dffba11..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 3e8bdfeb6e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index e0f2be4b71..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-1.html
    deleted file mode 100644
    index b1f532b772..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-1.html
    +++ /dev/null
    @@ -1,165 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HttpClientMetricNameStrategies</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HttpClientMetricNameStrategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.client.HttpClient;
    -&nbsp;import org.apache.http.client.methods.HttpRequestWrapper;
    -&nbsp;import org.apache.http.client.methods.HttpUriRequest;
    -&nbsp;import org.apache.http.client.utils.URIBuilder;
    -&nbsp;
    -&nbsp;import java.net.URI;
    -&nbsp;import java.net.URISyntaxException;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class HttpClientMetricNameStrategies {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy METHOD_ONLY =</b>
    -<b class="fc">&nbsp;        (name, request) -&gt; name(HttpClient.class,</b>
    -&nbsp;            name,
    -<b class="fc">&nbsp;            methodNameString(request));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy HOST_AND_METHOD =</b>
    -<b class="fc">&nbsp;        (name, request) -&gt; name(HttpClient.class,</b>
    -&nbsp;            name,
    -<b class="fc">&nbsp;            requestURI(request).getHost(),</b>
    -<b class="fc">&nbsp;            methodNameString(request));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy PATH_AND_METHOD =</b>
    -&nbsp;        (name, request) -&gt; {
    -<b class="fc">&nbsp;            final URIBuilder url = new URIBuilder(requestURI(request));</b>
    -<b class="fc">&nbsp;            return name(HttpClient.class,</b>
    -&nbsp;                name,
    -<b class="fc">&nbsp;                url.getPath(),</b>
    -<b class="fc">&nbsp;                methodNameString(request));</b>
    -&nbsp;        };
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =</b>
    -&nbsp;        (name, request) -&gt; {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                final URIBuilder url = new URIBuilder(requestURI(request));</b>
    -<b class="fc">&nbsp;                return name(HttpClient.class,</b>
    -&nbsp;                    name,
    -<b class="fc">&nbsp;                    url.removeQuery().build().toString(),</b>
    -<b class="fc">&nbsp;                    methodNameString(request));</b>
    -<b class="nc">&nbsp;            } catch (URISyntaxException e) {</b>
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(e);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -&nbsp;    private static String methodNameString(HttpRequest request) {
    -<b class="fc">&nbsp;        return request.getRequestLine().getMethod().toLowerCase() + &quot;-requests&quot;;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static URI requestURI(HttpRequest request) {
    -<b class="fc">&nbsp;        if (request instanceof HttpRequestWrapper)</b>
    -<b class="fc">&nbsp;            return requestURI(((HttpRequestWrapper) request).getOriginal());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return (request instanceof HttpUriRequest) ?</b>
    -<b class="fc">&nbsp;            ((HttpUriRequest) request).getURI() :</b>
    -<b class="nc">&nbsp;            URI.create(request.getRequestLine().getUri());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-2.html
    deleted file mode 100644
    index 09ec2e49c7..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-2.html
    +++ /dev/null
    @@ -1,146 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HttpClientMetricNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HttpClientMetricNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$DMDxCMdT</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$DMDxCMdT$auxiliary$3CEX09I0</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$DMDxCMdT$auxiliary$r0oMeEq8</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$p46QRylP</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$p46QRylP$auxiliary$1MjLUKCg</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$p46QRylP$auxiliary$QkC4FQib</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.client.HttpClient;
    -&nbsp;
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface HttpClientMetricNameStrategy {
    -&nbsp;
    -&nbsp;    String getNameFor(String name, HttpRequest request);
    -&nbsp;
    -&nbsp;    default String getNameFor(String name, Exception exception) {
    -<b class="nc">&nbsp;        return MetricRegistry.name(HttpClient.class,</b>
    -&nbsp;                name,
    -<b class="nc">&nbsp;                exception.getClass().getSimpleName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-3.html
    deleted file mode 100644
    index 44e8fc6812..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-3.html
    +++ /dev/null
    @@ -1,330 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClientConnectionManager</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClientConnectionManager</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (8/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84%
    -  </span>
    -  <span class="absValue">
    -    (21/25)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpClientConnectionManager$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    36.4%
    -  </span>
    -  <span class="absValue">
    -    (4/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    46.2%
    -  </span>
    -  <span class="absValue">
    -    (12/26)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.config.Registry;
    -&nbsp;import org.apache.http.config.RegistryBuilder;
    -&nbsp;import org.apache.http.conn.DnsResolver;
    -&nbsp;import org.apache.http.conn.HttpClientConnectionManager;
    -&nbsp;import org.apache.http.conn.HttpClientConnectionOperator;
    -&nbsp;import org.apache.http.conn.HttpConnectionFactory;
    -&nbsp;import org.apache.http.conn.ManagedHttpClientConnection;
    -&nbsp;import org.apache.http.conn.SchemePortResolver;
    -&nbsp;import org.apache.http.conn.routing.HttpRoute;
    -&nbsp;import org.apache.http.conn.socket.ConnectionSocketFactory;
    -&nbsp;import org.apache.http.conn.socket.PlainConnectionSocketFactory;
    -&nbsp;import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
    -&nbsp;import org.apache.http.impl.conn.DefaultHttpClientConnectionOperator;
    -&nbsp;import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
    -&nbsp;import org.apache.http.impl.conn.SystemDefaultDnsResolver;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    -&nbsp; */
    -&nbsp;public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
    -&nbsp;
    -&nbsp;
    -&nbsp;    protected static Registry&lt;ConnectionSocketFactory&gt; getDefaultRegistry() {
    -<b class="fc">&nbsp;        return RegistryBuilder.&lt;ConnectionSocketFactory&gt;create()</b>
    -<b class="fc">&nbsp;            .register(&quot;http&quot;, PlainConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;            .register(&quot;https&quot;, SSLConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;            .build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricsRegistry;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        this(metricRegistry, getDefaultRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    -<b class="nc">&nbsp;        this(metricsRegistry, socketFactoryRegistry, -1, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry,
    -&nbsp;                                                   long connTTL,
    -&nbsp;                                                   TimeUnit connTTLTimeUnit) {
    -<b class="nc">&nbsp;        this(metricsRegistry, socketFactoryRegistry, null, null, SystemDefaultDnsResolver.INSTANCE, connTTL, connTTLTimeUnit, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry,
    -&nbsp;                                                   HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt;
    -&nbsp;                                                           connFactory,
    -&nbsp;                                                   SchemePortResolver schemePortResolver,
    -&nbsp;                                                   DnsResolver dnsResolver,
    -&nbsp;                                                   long connTTL,
    -&nbsp;                                                   TimeUnit connTTLTimeUnit,
    -&nbsp;                                                   String name) {
    -<b class="nc">&nbsp;        this(metricsRegistry,</b>
    -&nbsp;             new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver),
    -&nbsp;             connFactory,
    -&nbsp;             connTTL,
    -&nbsp;             connTTLTimeUnit,
    -&nbsp;             name);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   HttpClientConnectionOperator httpClientConnectionOperator,
    -&nbsp;                                                   HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt;
    -&nbsp;                                                           connFactory,
    -&nbsp;                                                   long connTTL,
    -&nbsp;                                                   TimeUnit connTTLTimeUnit,
    -&nbsp;                                                   String name) {
    -<b class="fc">&nbsp;        super(httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit);</b>
    -<b class="fc">&nbsp;        this.metricsRegistry = metricsRegistry;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;available-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;leased-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;max-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;pending-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void shutdown() {
    -<b class="fc">&nbsp;        super.shutdown();</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;available-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;leased-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;max-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;pending-connections&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static class Builder {
    -&nbsp;        private MetricRegistry metricsRegistry;
    -&nbsp;        private HttpClientConnectionOperator httpClientConnectionOperator;
    -<b class="fc">&nbsp;        private Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry = getDefaultRegistry();</b>
    -&nbsp;        private HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt; connFactory;
    -&nbsp;        private SchemePortResolver schemePortResolver;
    -<b class="fc">&nbsp;        private DnsResolver dnsResolver = SystemDefaultDnsResolver.INSTANCE;</b>
    -<b class="fc">&nbsp;        private long connTTL = -1;</b>
    -<b class="fc">&nbsp;        private TimeUnit connTTLTimeUnit = TimeUnit.MILLISECONDS;</b>
    -&nbsp;        private String name;
    -&nbsp;
    -<b class="fc">&nbsp;        Builder() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder metricsRegistry(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;            this.metricsRegistry = metricsRegistry;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder socketFactoryRegistry(Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    -<b class="nc">&nbsp;            this.socketFactoryRegistry = socketFactoryRegistry;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connFactory(HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt; connFactory) {
    -<b class="nc">&nbsp;            this.connFactory = connFactory;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    -<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    -<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connTTL(long connTTL) {
    -<b class="nc">&nbsp;            this.connTTL = connTTL;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connTTLTimeUnit(TimeUnit connTTLTimeUnit) {
    -<b class="nc">&nbsp;            this.connTTLTimeUnit = connTTLTimeUnit;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
    -<b class="nc">&nbsp;            this.httpClientConnectionOperator = httpClientConnectionOperator;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder name(final String name) {
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public InstrumentedHttpClientConnectionManager build() {
    -<b class="fc">&nbsp;            if (httpClientConnectionOperator == null) {</b>
    -<b class="fc">&nbsp;                httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new InstrumentedHttpClientConnectionManager(metricsRegistry, httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit, name);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-4.html
    deleted file mode 100644
    index 0663ff29a5..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-4.html
    +++ /dev/null
    @@ -1,138 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClients</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClients</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.impl.client.CloseableHttpClient;
    -&nbsp;import org.apache.http.impl.client.HttpClientBuilder;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.httpclient.HttpClientMetricNameStrategies.METHOD_ONLY;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpClients {
    -&nbsp;    private InstrumentedHttpClients() {
    -&nbsp;        super();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
    -&nbsp;                                                    HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        return HttpClientBuilder.create()</b>
    -<b class="fc">&nbsp;                .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))</b>
    -<b class="fc">&nbsp;                .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-5.html
    deleted file mode 100644
    index 33447d8c49..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-d/sources/source-5.html
    +++ /dev/null
    @@ -1,166 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpRequestExecutor</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpRequestExecutor</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.apache.http.HttpClientConnection;
    -&nbsp;import org.apache.http.HttpException;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.HttpResponse;
    -&nbsp;import org.apache.http.protocol.HttpContext;
    -&nbsp;import org.apache.http.protocol.HttpRequestExecutor;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name,
    -&nbsp;                                           int waitForContinue) {
    -<b class="fc">&nbsp;        super(waitForContinue);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public HttpResponse execute(HttpRequest request, HttpClientConnection conn, HttpContext context) throws HttpException, IOException {
    -<b class="fc">&nbsp;        final Timer.Context timerContext = timer(request).time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return super.execute(request, conn, context);</b>
    -<b class="fc">&nbsp;        } catch (HttpException | IOException e) {</b>
    -<b class="fc">&nbsp;            meter(e).mark();</b>
    -<b class="fc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;        return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meter(Exception e) {
    -<b class="fc">&nbsp;        return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index.html
    deleted file mode 100644
    index 111a25b87d..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index d8b9118e12..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index e5f6d99229..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 93a2607e60..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index a14381fa60..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 3384d25c60..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index bdd03a6650..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 55aa6e4038..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 1ebb89a45c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 62900af831..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-1.html
    deleted file mode 100644
    index 086e2d9d31..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-1.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HttpClientMetricNameStrategies</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HttpClientMetricNameStrategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import org.apache.hc.client5.http.classic.HttpClient;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;import org.apache.hc.core5.net.URIBuilder;
    -&nbsp;
    -&nbsp;import java.net.URISyntaxException;
    -&nbsp;import java.util.Locale;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class HttpClientMetricNameStrategies {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy METHOD_ONLY =</b>
    -<b class="fc">&nbsp;            (name, request) -&gt; name(HttpClient.class,</b>
    -&nbsp;                    name,
    -<b class="fc">&nbsp;                    methodNameString(request));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy HOST_AND_METHOD =</b>
    -&nbsp;            (name, request) -&gt; {
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    return name(HttpClient.class,</b>
    -&nbsp;                            name,
    -<b class="fc">&nbsp;                            request.getUri().getHost(),</b>
    -<b class="fc">&nbsp;                            methodNameString(request));</b>
    -<b class="nc">&nbsp;                } catch (URISyntaxException e) {</b>
    -<b class="nc">&nbsp;                    throw new IllegalArgumentException(e);</b>
    -&nbsp;                }
    -&nbsp;            };
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =</b>
    -&nbsp;            (name, request) -&gt; {
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    final URIBuilder url = new URIBuilder(request.getUri());</b>
    -<b class="fc">&nbsp;                    return name(HttpClient.class,</b>
    -&nbsp;                            name,
    -<b class="fc">&nbsp;                            url.removeQuery().build().toString(),</b>
    -<b class="fc">&nbsp;                            methodNameString(request));</b>
    -<b class="nc">&nbsp;                } catch (URISyntaxException e) {</b>
    -<b class="nc">&nbsp;                    throw new IllegalArgumentException(e);</b>
    -&nbsp;                }
    -&nbsp;            };
    -&nbsp;
    -&nbsp;    private static String methodNameString(HttpRequest request) {
    -<b class="fc">&nbsp;        return request.getMethod().toLowerCase(Locale.ROOT) + &quot;-requests&quot;;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-2.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-2.html
    deleted file mode 100644
    index d0a4978b7f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-2.html
    +++ /dev/null
    @@ -1,137 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HttpClientMetricNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HttpClientMetricNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$lUdR5b3N</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$lUdR5b3N$auxiliary$kqfMgHbn</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$lUdR5b3N$auxiliary$Rx31mbKS</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.classic.HttpClient;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface HttpClientMetricNameStrategy {
    -&nbsp;
    -&nbsp;    String getNameFor(String name, HttpRequest request);
    -&nbsp;
    -&nbsp;    default String getNameFor(String name, Exception exception) {
    -<b class="nc">&nbsp;        return MetricRegistry.name(HttpClient.class,</b>
    -&nbsp;                name,
    -<b class="nc">&nbsp;                exception.getClass().getSimpleName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-3.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-3.html
    deleted file mode 100644
    index 3e915f762a..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-3.html
    +++ /dev/null
    @@ -1,285 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAsyncClientConnectionManager</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAsyncClientConnectionManager (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAsyncClientConnectionManager</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedAsyncClientConnectionManager$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (4/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (8/20)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.DnsResolver;
    -&nbsp;import org.apache.hc.client5.http.SchemePortResolver;
    -&nbsp;import org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
    -&nbsp;import org.apache.hc.core5.http.URIScheme;
    -&nbsp;import org.apache.hc.core5.http.config.Lookup;
    -&nbsp;import org.apache.hc.core5.http.config.Registry;
    -&nbsp;import org.apache.hc.core5.http.config.RegistryBuilder;
    -&nbsp;import org.apache.hc.core5.http.nio.ssl.TlsStrategy;
    -&nbsp;import org.apache.hc.core5.io.CloseMode;
    -&nbsp;import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
    -&nbsp;import org.apache.hc.core5.pool.PoolReusePolicy;
    -&nbsp;import org.apache.hc.core5.util.TimeValue;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    -&nbsp; */
    -&nbsp;public class InstrumentedAsyncClientConnectionManager extends PoolingAsyncClientConnectionManager {
    -<b class="fc">&nbsp;    private static final String METRICS_PREFIX = AsyncClientConnectionManager.class.getName();</b>
    -&nbsp;
    -&nbsp;    protected static Registry&lt;TlsStrategy&gt; getDefaultTlsStrategy() {
    -<b class="fc">&nbsp;        return RegistryBuilder.&lt;TlsStrategy&gt;create()</b>
    -<b class="fc">&nbsp;                .register(URIScheme.HTTPS.id, DefaultClientTlsStrategy.getDefault())</b>
    -<b class="fc">&nbsp;                .build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricsRegistry;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    InstrumentedAsyncClientConnectionManager(final MetricRegistry metricRegistry,
    -&nbsp;                                             final String name,
    -&nbsp;                                             final Lookup&lt;TlsStrategy&gt; tlsStrategyLookup,
    -&nbsp;                                             final PoolConcurrencyPolicy poolConcurrencyPolicy,
    -&nbsp;                                             final PoolReusePolicy poolReusePolicy,
    -&nbsp;                                             final TimeValue timeToLive,
    -&nbsp;                                             final SchemePortResolver schemePortResolver,
    -&nbsp;                                             final DnsResolver dnsResolver) {
    -&nbsp;
    -<b class="fc">&nbsp;        super(tlsStrategyLookup, poolConcurrencyPolicy, poolReusePolicy, timeToLive, schemePortResolver, dnsResolver);</b>
    -<b class="fc">&nbsp;        this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;available-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;leased-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;max-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;pending-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="fc">&nbsp;        close(CloseMode.GRACEFUL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close(CloseMode closeMode) {
    -<b class="fc">&nbsp;        super.close(closeMode);</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;available-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;leased-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;max-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;pending-connections&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static class Builder {
    -&nbsp;        private MetricRegistry metricsRegistry;
    -&nbsp;        private String name;
    -<b class="fc">&nbsp;        private Lookup&lt;TlsStrategy&gt; tlsStrategyLookup = getDefaultTlsStrategy();</b>
    -&nbsp;        private SchemePortResolver schemePortResolver;
    -&nbsp;        private DnsResolver dnsResolver;
    -&nbsp;        private PoolConcurrencyPolicy poolConcurrencyPolicy;
    -&nbsp;        private PoolReusePolicy poolReusePolicy;
    -<b class="fc">&nbsp;        private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        Builder() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder metricsRegistry(MetricRegistry metricRegistry) {
    -<b class="fc">&nbsp;            this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder name(final String name) {
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    -<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    -<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder timeToLive(TimeValue timeToLive) {
    -<b class="nc">&nbsp;            this.timeToLive = timeToLive;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder tlsStrategyLookup(Lookup&lt;TlsStrategy&gt; tlsStrategyLookup) {
    -<b class="nc">&nbsp;            this.tlsStrategyLookup = tlsStrategyLookup;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
    -<b class="nc">&nbsp;            this.poolConcurrencyPolicy = poolConcurrencyPolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
    -<b class="nc">&nbsp;            this.poolReusePolicy = poolReusePolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public InstrumentedAsyncClientConnectionManager build() {
    -<b class="fc">&nbsp;            return new InstrumentedAsyncClientConnectionManager(</b>
    -&nbsp;                    metricsRegistry,
    -&nbsp;                    name,
    -&nbsp;                    tlsStrategyLookup,
    -&nbsp;                    poolConcurrencyPolicy,
    -&nbsp;                    poolReusePolicy,
    -&nbsp;                    timeToLive,
    -&nbsp;                    schemePortResolver,
    -&nbsp;                    dnsResolver);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-4.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-4.html
    deleted file mode 100644
    index 616e2640b5..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-4.html
    +++ /dev/null
    @@ -1,229 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAsyncExecChainHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAsyncExecChainHandler (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAsyncExecChainHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedAsyncExecChainHandler$InstrumentedAsyncExecCallback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.apache.hc.client5.http.async.AsyncExecCallback;
    -&nbsp;import org.apache.hc.client5.http.async.AsyncExecChain;
    -&nbsp;import org.apache.hc.client5.http.async.AsyncExecChainHandler;
    -&nbsp;import org.apache.hc.core5.http.EntityDetails;
    -&nbsp;import org.apache.hc.core5.http.HttpException;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;import org.apache.hc.core5.http.HttpResponse;
    -&nbsp;import org.apache.hc.core5.http.nio.AsyncDataConsumer;
    -&nbsp;import org.apache.hc.core5.http.nio.AsyncEntityProducer;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;class InstrumentedAsyncExecChainHandler implements AsyncExecChainHandler {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    public InstrumentedAsyncExecChainHandler(MetricRegistry registry, HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedAsyncExecChainHandler(MetricRegistry registry,
    -&nbsp;                                             HttpClientMetricNameStrategy metricNameStrategy,
    -<b class="fc">&nbsp;                                             String name) {</b>
    -<b class="fc">&nbsp;        this.registry = requireNonNull(registry, &quot;registry&quot;);</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = requireNonNull(metricNameStrategy, &quot;metricNameStrategy&quot;);</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void execute(HttpRequest request,
    -&nbsp;                        AsyncEntityProducer entityProducer,
    -&nbsp;                        AsyncExecChain.Scope scope,
    -&nbsp;                        AsyncExecChain chain,
    -&nbsp;                        AsyncExecCallback asyncExecCallback) throws HttpException, IOException {
    -<b class="fc">&nbsp;        final InstrumentedAsyncExecCallback instrumentedAsyncExecCallback =</b>
    -&nbsp;                new InstrumentedAsyncExecCallback(registry, metricNameStrategy, name, asyncExecCallback, request);
    -<b class="fc">&nbsp;        chain.proceed(request, entityProducer, scope, instrumentedAsyncExecCallback);</b>
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    final static class InstrumentedAsyncExecCallback implements AsyncExecCallback {
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;        private final String name;
    -&nbsp;        private final AsyncExecCallback delegate;
    -&nbsp;        private final Timer.Context timerContext;
    -&nbsp;
    -&nbsp;        public InstrumentedAsyncExecCallback(MetricRegistry registry,
    -&nbsp;                                             HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                             String name,
    -&nbsp;                                             AsyncExecCallback delegate,
    -<b class="fc">&nbsp;                                             HttpRequest request) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.metricNameStrategy = metricNameStrategy;</b>
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            this.delegate = delegate;</b>
    -<b class="fc">&nbsp;            this.timerContext = timer(request).time();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public AsyncDataConsumer handleResponse(HttpResponse response, EntityDetails entityDetails) throws HttpException, IOException {
    -<b class="fc">&nbsp;            return delegate.handleResponse(response, entityDetails);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void handleInformationResponse(HttpResponse response) throws HttpException, IOException {
    -<b class="nc">&nbsp;            delegate.handleInformationResponse(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void completed() {
    -<b class="fc">&nbsp;            delegate.completed();</b>
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void failed(Exception cause) {
    -<b class="fc">&nbsp;            delegate.failed(cause);</b>
    -<b class="fc">&nbsp;            meter(cause).mark();</b>
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;            return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Meter meter(Exception e) {
    -<b class="fc">&nbsp;            return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-5.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-5.html
    deleted file mode 100644
    index 4d2c6eb921..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-5.html
    +++ /dev/null
    @@ -1,147 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpAsyncClients</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpAsyncClients (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpAsyncClients</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.impl.ChainElement;
    -&nbsp;import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
    -&nbsp;import org.apache.hc.client5.http.impl.async.HttpAsyncClientBuilder;
    -&nbsp;import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpAsyncClients {
    -&nbsp;    private InstrumentedHttpAsyncClients() {
    -&nbsp;        super();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry,
    -&nbsp;                                                         HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                                HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        return custom(metricRegistry, metricNameStrategy, InstrumentedAsyncClientConnectionManager.builder(metricRegistry).build());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                                HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                                AsyncClientConnectionManager clientConnectionManager) {
    -<b class="fc">&nbsp;        return HttpAsyncClientBuilder.create()</b>
    -<b class="fc">&nbsp;                .setConnectionManager(clientConnectionManager)</b>
    -<b class="fc">&nbsp;                .addExecInterceptorBefore(ChainElement.CONNECT.name(), &quot;dropwizard-metrics&quot;,</b>
    -&nbsp;                        new InstrumentedAsyncExecChainHandler(metricRegistry, metricNameStrategy));
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-6.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-6.html
    deleted file mode 100644
    index e6b63dd79f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-6.html
    +++ /dev/null
    @@ -1,308 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClientConnectionManager</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClientConnectionManager</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (23/23)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpClientConnectionManager$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (4/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    38.5%
    -  </span>
    -  <span class="absValue">
    -    (10/26)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.DnsResolver;
    -&nbsp;import org.apache.hc.client5.http.SchemePortResolver;
    -&nbsp;import org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator;
    -&nbsp;import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionOperator;
    -&nbsp;import org.apache.hc.client5.http.io.ManagedHttpClientConnection;
    -&nbsp;import org.apache.hc.client5.http.socket.ConnectionSocketFactory;
    -&nbsp;import org.apache.hc.client5.http.socket.PlainConnectionSocketFactory;
    -&nbsp;import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
    -&nbsp;import org.apache.hc.core5.http.URIScheme;
    -&nbsp;import org.apache.hc.core5.http.config.Registry;
    -&nbsp;import org.apache.hc.core5.http.config.RegistryBuilder;
    -&nbsp;import org.apache.hc.core5.http.io.HttpConnectionFactory;
    -&nbsp;import org.apache.hc.core5.io.CloseMode;
    -&nbsp;import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
    -&nbsp;import org.apache.hc.core5.pool.PoolReusePolicy;
    -&nbsp;import org.apache.hc.core5.util.TimeValue;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    -&nbsp; */
    -&nbsp;public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
    -<b class="fc">&nbsp;    private static final String METRICS_PREFIX = HttpClientConnectionManager.class.getName();</b>
    -&nbsp;
    -&nbsp;    protected static Registry&lt;ConnectionSocketFactory&gt; getDefaultRegistry() {
    -<b class="fc">&nbsp;        return RegistryBuilder.&lt;ConnectionSocketFactory&gt;create()</b>
    -<b class="fc">&nbsp;                .register(URIScheme.HTTP.id, PlainConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;                .register(URIScheme.HTTPS.id, SSLConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;                .build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricsRegistry;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    InstrumentedHttpClientConnectionManager(final MetricRegistry metricRegistry,
    -&nbsp;                                            final String name,
    -&nbsp;                                            final HttpClientConnectionOperator httpClientConnectionOperator,
    -&nbsp;                                            final PoolConcurrencyPolicy poolConcurrencyPolicy,
    -&nbsp;                                            final PoolReusePolicy poolReusePolicy,
    -&nbsp;                                            final TimeValue timeToLive,
    -&nbsp;                                            final HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory) {
    -&nbsp;
    -<b class="fc">&nbsp;        super(httpClientConnectionOperator, poolConcurrencyPolicy, poolReusePolicy, timeToLive, connFactory);</b>
    -<b class="fc">&nbsp;        this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;available-connections&quot;),</b>
    -&nbsp;                () -&gt; {
    -<b class="fc">&nbsp;                    return getTotalStats().getAvailable();</b>
    -&nbsp;                });
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;leased-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;max-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax()</b>
    -&nbsp;        );
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;pending-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="fc">&nbsp;        close(CloseMode.GRACEFUL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close(CloseMode closeMode) {
    -<b class="fc">&nbsp;        super.close(closeMode);</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;available-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;leased-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;max-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;pending-connections&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static class Builder {
    -&nbsp;        private MetricRegistry metricsRegistry;
    -&nbsp;        private String name;
    -&nbsp;        private HttpClientConnectionOperator httpClientConnectionOperator;
    -<b class="fc">&nbsp;        private Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry = getDefaultRegistry();</b>
    -&nbsp;        private SchemePortResolver schemePortResolver;
    -&nbsp;        private DnsResolver dnsResolver;
    -&nbsp;        private PoolConcurrencyPolicy poolConcurrencyPolicy;
    -&nbsp;        private PoolReusePolicy poolReusePolicy;
    -<b class="fc">&nbsp;        private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;</b>
    -&nbsp;        private HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory;
    -&nbsp;
    -<b class="fc">&nbsp;        Builder() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder metricsRegistry(MetricRegistry metricRegistry) {
    -<b class="fc">&nbsp;            this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder name(final String name) {
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder socketFactoryRegistry(Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    -<b class="nc">&nbsp;            this.socketFactoryRegistry = requireNonNull(socketFactoryRegistry, &quot;socketFactoryRegistry&quot;);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connFactory(HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory) {
    -<b class="nc">&nbsp;            this.connFactory = connFactory;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    -<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    -<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder timeToLive(TimeValue timeToLive) {
    -<b class="nc">&nbsp;            this.timeToLive = timeToLive;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
    -<b class="nc">&nbsp;            this.httpClientConnectionOperator = httpClientConnectionOperator;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
    -<b class="nc">&nbsp;            this.poolConcurrencyPolicy = poolConcurrencyPolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
    -<b class="nc">&nbsp;            this.poolReusePolicy = poolReusePolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public InstrumentedHttpClientConnectionManager build() {
    -<b class="fc">&nbsp;            if (httpClientConnectionOperator == null) {</b>
    -<b class="fc">&nbsp;                httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(</b>
    -&nbsp;                        socketFactoryRegistry,
    -&nbsp;                        schemePortResolver,
    -&nbsp;                        dnsResolver);
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            return new InstrumentedHttpClientConnectionManager(</b>
    -&nbsp;                    metricsRegistry,
    -&nbsp;                    name,
    -&nbsp;                    httpClientConnectionOperator,
    -&nbsp;                    poolConcurrencyPolicy,
    -&nbsp;                    poolReusePolicy,
    -&nbsp;                    timeToLive,
    -&nbsp;                    connFactory);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-7.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-7.html
    deleted file mode 100644
    index 48ca7c44e3..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-7.html
    +++ /dev/null
    @@ -1,138 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClients</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClients</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
    -&nbsp;import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpClients {
    -&nbsp;    private InstrumentedHttpClients() {
    -&nbsp;        super();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
    -&nbsp;                                                    HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        return HttpClientBuilder.create()</b>
    -<b class="fc">&nbsp;                .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))</b>
    -<b class="fc">&nbsp;                .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-8.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-8.html
    deleted file mode 100644
    index b0b1ada196..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-e/sources/source-8.html
    +++ /dev/null
    @@ -1,182 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpRequestExecutor</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpRequestExecutor</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.apache.hc.core5.http.ClassicHttpRequest;
    -&nbsp;import org.apache.hc.core5.http.ClassicHttpResponse;
    -&nbsp;import org.apache.hc.core5.http.ConnectionReuseStrategy;
    -&nbsp;import org.apache.hc.core5.http.HttpException;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;import org.apache.hc.core5.http.impl.Http1StreamListener;
    -&nbsp;import org.apache.hc.core5.http.impl.io.HttpRequestExecutor;
    -&nbsp;import org.apache.hc.core5.http.io.HttpClientConnection;
    -&nbsp;import org.apache.hc.core5.http.io.HttpResponseInformationCallback;
    -&nbsp;import org.apache.hc.core5.http.protocol.HttpContext;
    -&nbsp;import org.apache.hc.core5.util.Timeout;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name,
    -&nbsp;                                           Timeout waitForContinue) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, waitForContinue, null, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name,
    -&nbsp;                                           Timeout waitForContinue,
    -&nbsp;                                           ConnectionReuseStrategy connReuseStrategy,
    -&nbsp;                                           Http1StreamListener streamListener) {
    -<b class="fc">&nbsp;        super(waitForContinue, connReuseStrategy, streamListener);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public ClassicHttpResponse execute(ClassicHttpRequest request, HttpClientConnection conn, HttpResponseInformationCallback informationCallback, HttpContext context) throws IOException, HttpException {
    -<b class="fc">&nbsp;        final Timer.Context timerContext = timer(request).time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return super.execute(request, conn, informationCallback, context);</b>
    -<b class="fc">&nbsp;        } catch (HttpException | IOException e) {</b>
    -<b class="fc">&nbsp;            meter(e).mark();</b>
    -<b class="fc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;        return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meter(Exception e) {
    -<b class="fc">&nbsp;        return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index.html
    deleted file mode 100644
    index beb1ea6ea2..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index ba6cecd80f..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index c10479486c..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index d7b19fb45e..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index d08fc86df3..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 247d51f952..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index f9c7c59656..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 9fefd657ff..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index a240d97908..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 6f53ea4120..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/sources/source-1.html b/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/sources/source-1.html
    deleted file mode 100644
    index 01cad6e4ae..0000000000
    --- a/metrics-complete-branch-report-Final-Improved-htmlReport/ns-f/sources/source-1.html
    +++ /dev/null
    @@ -1,189 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JCacheGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jcache</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: JCacheGaugeSet (com.codahale.metrics.jcache)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">JCacheGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jcache;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.jvm.JmxAttributeGauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;import javax.cache.management.CacheStatisticsMXBean;
    -&nbsp;import javax.management.MalformedObjectNameException;
    -&nbsp;import javax.management.ObjectInstance;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Gauge set retrieving JCache JMX attributes
    -&nbsp; *
    -&nbsp; * @author &lt;a href=&quot;mailto:henri.tremblay@softwareag.com&quot;&gt;Henri Tremblay&lt;/a&gt;
    -&nbsp; * @author &lt;a href=&quot;mailto:anthony.dahanne@softwareag.com&quot;&gt;Anthony Dahanne&lt;/a&gt;
    -&nbsp; */
    -<b class="fc">&nbsp;public class JCacheGaugeSet implements MetricSet {</b>
    -&nbsp;
    -&nbsp;    private static final String M_BEAN_COORDINATES = &quot;javax.cache:type=CacheStatistics,CacheManager=*,Cache=*&quot;;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JCacheGaugeSet.class);</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        Set&lt;ObjectInstance&gt; cacheBeans = getCacheBeans();</b>
    -<b class="fc">&nbsp;        List&lt;String&gt; availableStatsNames = retrieveStatsNames();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;(cacheBeans.size() * availableStatsNames.size());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (ObjectInstance cacheBean : cacheBeans) {</b>
    -<b class="fc">&nbsp;            ObjectName objectName = cacheBean.getObjectName();</b>
    -<b class="fc">&nbsp;            String cacheName = objectName.getKeyProperty(&quot;Cache&quot;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (String statsName : availableStatsNames) {</b>
    -<b class="fc">&nbsp;                JmxAttributeGauge jmxAttributeGauge = new JmxAttributeGauge(objectName, statsName);</b>
    -<b class="fc">&nbsp;                gauges.put(name(cacheName, toSpinalCase(statsName)), jmxAttributeGauge);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Set&lt;ObjectInstance&gt; getCacheBeans() {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return ManagementFactory.getPlatformMBeanServer().queryMBeans(ObjectName.getInstance(M_BEAN_COORDINATES), null);</b>
    -<b class="nc">&nbsp;        } catch (MalformedObjectNameException e) {</b>
    -<b class="nc">&nbsp;            LOGGER.error(&quot;Unable to retrieve {}. Are JCache statistics enabled?&quot;, M_BEAN_COORDINATES);</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private List&lt;String&gt; retrieveStatsNames() {
    -<b class="fc">&nbsp;        Method[] methods = CacheStatisticsMXBean.class.getDeclaredMethods();</b>
    -<b class="fc">&nbsp;        List&lt;String&gt; availableStatsNames = new ArrayList&lt;&gt;(methods.length);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Method method : methods) {</b>
    -<b class="fc">&nbsp;            String methodName = method.getName();</b>
    -<b class="fc">&nbsp;            if (methodName.startsWith(&quot;get&quot;)) {</b>
    -<b class="fc">&nbsp;                availableStatsNames.add(methodName.substring(3));</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return availableStatsNames;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static String toSpinalCase(String camelCase) {
    -<b class="fc">&nbsp;        return camelCase.replaceAll(&quot;(.)(\\p{Upper})&quot;, &quot;$1-$2&quot;).toLowerCase(Locale.US);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:42</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/css/coverage.css b/metrics-complete-branch-report-Final-htmlReport/css/coverage.css
    deleted file mode 100644
    index cef776517f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/css/coverage.css
    +++ /dev/null
    @@ -1,154 +0,0 @@
    -/*
    - * Copyright 2000-2021 JetBrains s.r.o.
    - *
    - * Licensed under the Apache License, Version 2.0 (the "License");
    - * you may not use this file except in compliance with the License.
    - * You may obtain a copy of the License at
    - *
    - *   http://www.apache.org/licenses/LICENSE-2.0
    - *
    - * Unless required by applicable law or agreed to in writing, software
    - * distributed under the License is distributed on an "AS IS" BASIS,
    - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    - * See the License for the specific language governing permissions and
    - * limitations under the License.
    - */
    -
    -* {
    -  margin: 0;
    -  padding: 0;
    -}
    -
    -body {
    -  background-color: #fff;
    -  font-family: helvetica neue, tahoma, arial, sans-serif;
    -  font-size: 82%;
    -  color: #151515;
    -}
    -
    -h1 {
    -  margin: 0.5em 0;
    -  color: #010101;
    -  font-weight: normal;
    -  font-size: 18px;
    -}
    -
    -h2 {
    -  margin: 0.5em 0;
    -  color: #010101;
    -  font-weight: normal;
    -  font-size: 16px;
    -}
    -
    -a {
    -  color: #1564C2;
    -  text-decoration: none;
    -}
    -
    -a:hover {
    -  text-decoration: underline;
    -}
    -
    -span.separator {
    -  color: #9BA9BA;
    -  padding-left: 5px;
    -  padding-right: 5px;
    -}
    -
    -div.content {
    -  width: 99%;
    -}
    -
    -table.coverageStats {
    -  width: 100%;
    -  border-collapse: collapse;
    -}
    -
    -table.overallStats {
    -  width: 20%;
    -}
    -
    -table.coverageStats td, table.coverageStats th {
    -  padding: 4px 2px;
    -  border-bottom: 1px solid #ccc;
    -}
    -
    -table.coverageStats th {
    -  background-color: #959BA4;
    -  border: none;
    -  font-weight: bold;
    -  text-align: left;
    -  color: #FFF;
    -}
    -
    -table.coverageStats th.coverageStat {
    -  width: 15%;
    -}
    -
    -table.coverageStats th a {
    -  color: #FFF;
    -}
    -
    -table.coverageStats th a:hover {
    -  text-decoration: none;
    -}
    -
    -table.coverageStats th.sortedDesc a {
    -  background: url(../img/arrowDown.gif) no-repeat 100% 2px;
    -  padding-right: 20px;
    -}
    -
    -table.coverageStats th.sortedAsc a {
    -  background: url(../img/arrowUp.gif) no-repeat 100% 2px;
    -  padding-right: 20px;
    -}
    -
    -div.footer {
    -  margin: 2em .5em;
    -  font-size: 85%;
    -  text-align: left;
    -  line-height: 140%;
    -}
    -
    -code.sourceCode {
    -  width: 100%;
    -  border: 1px solid #ccc;
    -  font: normal 12px 'Menlo', 'Bitstream Vera Sans Mono', 'Courier New', 'Courier', monospace;
    -  white-space: pre;
    -}
    -
    -code.sourceCode b {
    -  font-weight: normal;
    -}
    -
    -code.sourceCode span.number {
    -  color: #151515;
    -}
    -
    -code.sourceCode .fc {
    -  background-color: #cfc;
    -}
    -
    -code.sourceCode .pc {
    -  background-color: #ffc;
    -}
    -
    -code.sourceCode .nc {
    -  background-color: #fcc;
    -}
    -
    -.percent, .absValue {
    -  font-size: 90%;
    -}
    -
    -.percent .green, .absValue .green {
    -  color: #32cc32;
    -}
    -
    -.percent .red, .absValue .red {
    -  color: #f00;
    -}
    -
    -.percent .totalDiff {
    -  color: #3f3f3f;
    -}
    diff --git a/metrics-complete-branch-report-Final-htmlReport/css/idea.min.css b/metrics-complete-branch-report-Final-htmlReport/css/idea.min.css
    deleted file mode 100644
    index a8d5292bd5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/css/idea.min.css
    +++ /dev/null
    @@ -1,118 +0,0 @@
    -/*
    - * Copyright 2000-2021 JetBrains s.r.o.
    - *
    - * Licensed under the Apache License, Version 2.0 (the "License");
    - * you may not use this file except in compliance with the License.
    - * You may obtain a copy of the License at
    - *
    - *   http://www.apache.org/licenses/LICENSE-2.0
    - *
    - * Unless required by applicable law or agreed to in writing, software
    - * distributed under the License is distributed on an "AS IS" BASIS,
    - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    - * See the License for the specific language governing permissions and
    - * limitations under the License.
    - */
    -
    -/*
    -Intellij Idea-like styling (c) Vasily Polovnyov <vast@whiteants.net>
    -*/
    -
    -.hljs {
    -    color: #000;
    -    background: #fff;
    -}
    -
    -.hljs-subst,
    -.hljs-title {
    -    font-weight: normal;
    -    color: #000;
    -}
    -
    -.hljs-comment,
    -.hljs-quote {
    -    color: #808080;
    -    font-style: italic;
    -}
    -
    -.hljs-meta {
    -    color: #808000;
    -}
    -
    -.hljs-tag {
    -    background: #efefef;
    -}
    -
    -.hljs-section,
    -.hljs-name,
    -.hljs-literal,
    -.hljs-keyword,
    -.hljs-selector-tag,
    -.hljs-type,
    -.hljs-selector-id,
    -.hljs-selector-class {
    -    font-weight: bold;
    -    color: #000080;
    -}
    -
    -.hljs-attribute,
    -.hljs-number,
    -.hljs-regexp,
    -.hljs-link {
    -    font-weight: bold;
    -    color: #0000ff;
    -}
    -
    -.hljs-number,
    -.hljs-regexp,
    -.hljs-link {
    -    font-weight: normal;
    -}
    -
    -.hljs-string {
    -    color: #008000;
    -    font-weight: bold;
    -}
    -
    -.hljs-symbol,
    -.hljs-bullet,
    -.hljs-formula {
    -    color: #000;
    -    background: #d0eded;
    -    font-style: italic;
    -}
    -
    -.hljs-doctag {
    -    text-decoration: underline;
    -}
    -
    -.hljs-variable,
    -.hljs-template-variable {
    -    color: #660e7a;
    -}
    -
    -.hljs-addition {
    -    background: #baeeba;
    -}
    -
    -.hljs-deletion {
    -    background: #ffc8bd;
    -}
    -
    -.hljs-emphasis {
    -    font-style: italic;
    -}
    -
    -.hljs-strong {
    -    font-weight: bold;
    -}
    -
    -.hljs-ln-numbers {
    -    display: block;
    -    float: left;
    -    width: 3em;
    -    border-right: 1px solid #ccc;
    -    font-style: normal;
    -    text-align: right;
    -    background-color: #eee;
    -}
    diff --git a/metrics-complete-branch-report-Final-htmlReport/img/arrowDown.gif b/metrics-complete-branch-report-Final-htmlReport/img/arrowDown.gif
    deleted file mode 100644
    index a4ac9b4b0f5eee9fc82deb7f03d0cc7f197b01c7..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 89
    zcmZ?wbhEHb<YVAtSj56GVZwyGyu5~nhW}u|00W9YSr{1@SQvCb0wA>v%yJ&P?))?G
    g5?!@7agD+*@rGjs@joUks8}}Ha%HfNHz$KN0Orjd82|tP
    
    diff --git a/metrics-complete-branch-report-Final-htmlReport/img/arrowUp.gif b/metrics-complete-branch-report-Final-htmlReport/img/arrowUp.gif
    deleted file mode 100644
    index d488db0089f15409b83a6f39718384cac89ea3c9..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 91
    zcmZ?wbhEHb<YVAtSj51PmzOtT!i0u~hW}u|00W9YSr{1@SQvCb0wA>v%nBa6?))=2
    j#jeJ<$W6!S$=vG=3s*2Wu3C5I!M+a(XH6zEFjxZs9OxeQ
    
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index.html b/metrics-complete-branch-report-Final-htmlReport/index.html
    deleted file mode 100644
    index 324554f25d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/index.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 8ecd23439e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_BLOCK.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_BLOCK.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_BLOCK.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_BLOCK.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_BLOCK.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_BLOCK.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_BLOCK.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_BLOCK.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_BLOCK.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_BLOCK.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_BLOCK.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_BLOCK.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_BLOCK.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_BLOCK.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_BLOCK.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_BLOCK.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_BLOCK.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_BLOCK.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_BLOCK.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_BLOCK.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_BLOCK.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_BLOCK.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index ed24d4e9c8..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 938fdd0595..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_CLASS.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_CLASS.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_CLASS.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_CLASS.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_CLASS.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_CLASS.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_CLASS.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_CLASS.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_CLASS.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_CLASS.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_CLASS.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_CLASS.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_CLASS.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_CLASS.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_CLASS.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_CLASS.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_CLASS.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_CLASS.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_CLASS.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_CLASS.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_CLASS.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_CLASS.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_CLASS.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_CLASS.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_CLASS.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_CLASS.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index c50973b8e8..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE.html
    deleted file mode 100644
    index c0b07f4334..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_LINE.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_LINE.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_LINE.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_LINE.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_LINE.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_LINE.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_LINE.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_LINE.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_LINE.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_LINE.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_LINE.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_LINE.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_LINE.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_LINE.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_LINE.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_LINE.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_LINE.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_LINE.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_LINE.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_LINE.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_LINE.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_LINE.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_LINE.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_LINE.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_LINE.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_LINE.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_LINE.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 68bc84c994..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_LINE_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 06e82613be..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_METHOD.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_METHOD.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_METHOD.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_METHOD.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_METHOD.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_METHOD.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_METHOD.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_METHOD.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_METHOD.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_METHOD.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_METHOD.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_METHOD.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_METHOD.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_METHOD.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_METHOD.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_METHOD.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_METHOD.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_METHOD.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_METHOD.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_METHOD.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_METHOD.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_METHOD.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_METHOD.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_METHOD.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_METHOD.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_METHOD.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index c31aeaaaae..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index ec1dcb592b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,1349 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.7%
    -  </span>
    -  <span class="absValue">
    -    (345/412)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.5%
    -  </span>
    -  <span class="absValue">
    -    (1610/2285)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    1.7%
    -  </span>
    -  <span class="absValue">
    -    (20/1166)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.5%
    -  </span>
    -  <span class="absValue">
    -    (5396/9723)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-29/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.benchmarks.jmh_generated</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_NAME_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-Final-htmlReport/js/highlight.min.js b/metrics-complete-branch-report-Final-htmlReport/js/highlight.min.js
    deleted file mode 100644
    index e88731520e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/js/highlight.min.js
    +++ /dev/null
    @@ -1,1388 +0,0 @@
    -/*
    -  Highlight.js 10.7.2 (00233d63)
    -  License: BSD-3-Clause
    -  Copyright (c) 2006-2021, Ivan Sagalaev
    -
    -  BSD 3-Clause License
    -
    -  Copyright (c) 2006-2021, Ivan Sagalaev.
    -  All rights reserved.
    -
    -  Redistribution and use in source and binary forms, with or without
    -  modification, are permitted provided that the following conditions are met:
    -
    -  * Redistributions of source code must retain the above copyright notice, this
    -    list of conditions and the following disclaimer.
    -
    -  * Redistributions in binary form must reproduce the above copyright notice,
    -    this list of conditions and the following disclaimer in the documentation
    -    and/or other materials provided with the distribution.
    -
    -  * Neither the name of the copyright holder nor the names of its
    -    contributors may be used to endorse or promote products derived from
    -    this software without specific prior written permission.
    -
    -  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    -  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    -  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    -  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    -  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
    -  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    -  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    -  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -*/
    -var hljs=function(){"use strict";function e(t){
    -return t instanceof Map?t.clear=t.delete=t.set=()=>{
    -throw Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=()=>{
    -throw Error("set is read-only")
    -}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach((n=>{var i=t[n]
    -;"object"!=typeof i||Object.isFrozen(i)||e(i)})),t}var t=e,n=e;t.default=n
    -;class i{constructor(e){
    -void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}
    -ignoreMatch(){this.isMatchIgnored=!0}}function s(e){
    -return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")
    -}function a(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t]
    -;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const r=e=>!!e.kind
    -;class l{constructor(e,t){
    -this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){
    -this.buffer+=s(e)}openNode(e){if(!r(e))return;let t=e.kind
    -;e.sublanguage||(t=`${this.classPrefix}${t}`),this.span(t)}closeNode(e){
    -r(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){
    -this.buffer+=`<span class="${e}">`}}class o{constructor(){this.rootNode={
    -children:[]},this.stack=[this.rootNode]}get top(){
    -return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){
    -this.top.children.push(e)}openNode(e){const t={kind:e,children:[]}
    -;this.add(t),this.stack.push(t)}closeNode(){
    -if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){
    -for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
    -walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){
    -return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),
    -t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){
    -"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{
    -o._collapse(e)})))}}class c extends o{constructor(e){super(),this.options=e}
    -addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())}
    -addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root
    -;n.kind=t,n.sublanguage=!0,this.add(n)}toHTML(){
    -return new l(this,this.options).value()}finalize(){return!0}}function g(e){
    -return e?"string"==typeof e?e:e.source:null}
    -const u=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,h="[a-zA-Z]\\w*",d="[a-zA-Z_]\\w*",f="\\b\\d+(\\.\\d+)?",p="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",m="\\b(0b[01]+)",b={
    -begin:"\\\\[\\s\\S]",relevance:0},E={className:"string",begin:"'",end:"'",
    -illegal:"\\n",contains:[b]},x={className:"string",begin:'"',end:'"',
    -illegal:"\\n",contains:[b]},v={
    -begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
    -},w=(e,t,n={})=>{const i=a({className:"comment",begin:e,end:t,contains:[]},n)
    -;return i.contains.push(v),i.contains.push({className:"doctag",
    -begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),i
    -},y=w("//","$"),N=w("/\\*","\\*/"),R=w("#","$");var _=Object.freeze({
    -__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:h,UNDERSCORE_IDENT_RE:d,
    -NUMBER_RE:f,C_NUMBER_RE:p,BINARY_NUMBER_RE:m,
    -RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
    -SHEBANG:(e={})=>{const t=/^#![ ]*\//
    -;return e.binary&&(e.begin=((...e)=>e.map((e=>g(e))).join(""))(t,/.*\b/,e.binary,/\b.*/)),
    -a({className:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{
    -0!==e.index&&t.ignoreMatch()}},e)},BACKSLASH_ESCAPE:b,APOS_STRING_MODE:E,
    -QUOTE_STRING_MODE:x,PHRASAL_WORDS_MODE:v,COMMENT:w,C_LINE_COMMENT_MODE:y,
    -C_BLOCK_COMMENT_MODE:N,HASH_COMMENT_MODE:R,NUMBER_MODE:{className:"number",
    -begin:f,relevance:0},C_NUMBER_MODE:{className:"number",begin:p,relevance:0},
    -BINARY_NUMBER_MODE:{className:"number",begin:m,relevance:0},CSS_NUMBER_MODE:{
    -className:"number",
    -begin:f+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
    -relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",
    -begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[b,{begin:/\[/,end:/\]/,
    -relevance:0,contains:[b]}]}]},TITLE_MODE:{className:"title",begin:h,relevance:0
    -},UNDERSCORE_TITLE_MODE:{className:"title",begin:d,relevance:0},METHOD_GUARD:{
    -begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{
    -"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{
    -t.data._beginMatch!==e[1]&&t.ignoreMatch()}})});function k(e,t){
    -"."===e.input[e.index-1]&&t.ignoreMatch()}function M(e,t){
    -t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",
    -e.__beforeBegin=k,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,
    -void 0===e.relevance&&(e.relevance=0))}function O(e,t){
    -Array.isArray(e.illegal)&&(e.illegal=((...e)=>"("+e.map((e=>g(e))).join("|")+")")(...e.illegal))
    -}function A(e,t){if(e.match){
    -if(e.begin||e.end)throw Error("begin & end are not supported with match")
    -;e.begin=e.match,delete e.match}}function L(e,t){
    -void 0===e.relevance&&(e.relevance=1)}
    -const I=["of","and","for","in","not","or","if","then","parent","list","value"]
    -;function j(e,t,n="keyword"){const i={}
    -;return"string"==typeof e?s(n,e.split(" ")):Array.isArray(e)?s(n,e):Object.keys(e).forEach((n=>{
    -Object.assign(i,j(e[n],t,n))})),i;function s(e,n){
    -t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|")
    -;i[n[0]]=[e,B(n[0],n[1])]}))}}function B(e,t){
    -return t?Number(t):(e=>I.includes(e.toLowerCase()))(e)?0:1}
    -function T(e,{plugins:t}){function n(t,n){
    -return RegExp(g(t),"m"+(e.case_insensitive?"i":"")+(n?"g":""))}class i{
    -constructor(){
    -this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}
    -addRule(e,t){
    -t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),
    -this.matchAt+=(e=>RegExp(e.toString()+"|").exec("").length-1)(e)+1}compile(){
    -0===this.regexes.length&&(this.exec=()=>null)
    -;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(((e,t="|")=>{let n=0
    -;return e.map((e=>{n+=1;const t=n;let i=g(e),s="";for(;i.length>0;){
    -const e=u.exec(i);if(!e){s+=i;break}
    -s+=i.substring(0,e.index),i=i.substring(e.index+e[0].length),
    -"\\"===e[0][0]&&e[1]?s+="\\"+(Number(e[1])+t):(s+=e[0],"("===e[0]&&n++)}return s
    -})).map((e=>`(${e})`)).join(t)})(e),!0),this.lastIndex=0}exec(e){
    -this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e)
    -;if(!t)return null
    -;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n]
    -;return t.splice(0,n),Object.assign(t,i)}}class s{constructor(){
    -this.rules=[],this.multiRegexes=[],
    -this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){
    -if(this.multiRegexes[e])return this.multiRegexes[e];const t=new i
    -;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))),
    -t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){
    -return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){
    -this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){
    -const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex
    -;let n=t.exec(e)
    -;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{
    -const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}
    -return n&&(this.regexIndex+=n.position+1,
    -this.regexIndex===this.count&&this.considerAll()),n}}
    -if(e.compilerExtensions||(e.compilerExtensions=[]),
    -e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.")
    -;return e.classNameAliases=a(e.classNameAliases||{}),function t(i,r){const l=i
    -;if(i.isCompiled)return l
    -;[A].forEach((e=>e(i,r))),e.compilerExtensions.forEach((e=>e(i,r))),
    -i.__beforeBegin=null,[M,O,L].forEach((e=>e(i,r))),i.isCompiled=!0;let o=null
    -;if("object"==typeof i.keywords&&(o=i.keywords.$pattern,
    -delete i.keywords.$pattern),
    -i.keywords&&(i.keywords=j(i.keywords,e.case_insensitive)),
    -i.lexemes&&o)throw Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ")
    -;return o=o||i.lexemes||/\w+/,
    -l.keywordPatternRe=n(o,!0),r&&(i.begin||(i.begin=/\B|\b/),
    -l.beginRe=n(i.begin),i.endSameAsBegin&&(i.end=i.begin),
    -i.end||i.endsWithParent||(i.end=/\B|\b/),
    -i.end&&(l.endRe=n(i.end)),l.terminatorEnd=g(i.end)||"",
    -i.endsWithParent&&r.terminatorEnd&&(l.terminatorEnd+=(i.end?"|":"")+r.terminatorEnd)),
    -i.illegal&&(l.illegalRe=n(i.illegal)),
    -i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>a(e,{
    -variants:null},t)))),e.cachedVariants?e.cachedVariants:S(e)?a(e,{
    -starts:e.starts?a(e.starts):null
    -}):Object.isFrozen(e)?a(e):e))("self"===e?i:e)))),i.contains.forEach((e=>{t(e,l)
    -})),i.starts&&t(i.starts,r),l.matcher=(e=>{const t=new s
    -;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"
    -}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"
    -}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(l),l}(e)}function S(e){
    -return!!e&&(e.endsWithParent||S(e.starts))}function P(e){const t={
    -props:["language","code","autodetect"],data:()=>({detectedLanguage:"",
    -unknownLanguage:!1}),computed:{className(){
    -return this.unknownLanguage?"":"hljs "+this.detectedLanguage},highlighted(){
    -if(!this.autoDetect&&!e.getLanguage(this.language))return console.warn(`The language "${this.language}" you specified could not be found.`),
    -this.unknownLanguage=!0,s(this.code);let t={}
    -;return this.autoDetect?(t=e.highlightAuto(this.code),
    -this.detectedLanguage=t.language):(t=e.highlight(this.language,this.code,this.ignoreIllegals),
    -this.detectedLanguage=this.language),t.value},autoDetect(){
    -return!(this.language&&(e=this.autodetect,!e&&""!==e));var e},
    -ignoreIllegals:()=>!0},render(e){return e("pre",{},[e("code",{
    -class:this.className,domProps:{innerHTML:this.highlighted}})])}};return{
    -Component:t,VuePlugin:{install(e){e.component("highlightjs",t)}}}}const D={
    -"after:highlightElement":({el:e,result:t,text:n})=>{const i=H(e)
    -;if(!i.length)return;const a=document.createElement("div")
    -;a.innerHTML=t.value,t.value=((e,t,n)=>{let i=0,a="";const r=[];function l(){
    -return e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset<t[0].offset?e:t:"start"===t[0].event?e:t:e.length?e:t
    -}function o(e){a+="<"+C(e)+[].map.call(e.attributes,(function(e){
    -return" "+e.nodeName+'="'+s(e.value)+'"'})).join("")+">"}function c(e){
    -a+="</"+C(e)+">"}function g(e){("start"===e.event?o:c)(e.node)}
    -for(;e.length||t.length;){let t=l()
    -;if(a+=s(n.substring(i,t[0].offset)),i=t[0].offset,t===e){r.reverse().forEach(c)
    -;do{g(t.splice(0,1)[0]),t=l()}while(t===e&&t.length&&t[0].offset===i)
    -;r.reverse().forEach(o)
    -}else"start"===t[0].event?r.push(t[0].node):r.pop(),g(t.splice(0,1)[0])}
    -return a+s(n.substr(i))})(i,H(a),n)}};function C(e){
    -return e.nodeName.toLowerCase()}function H(e){const t=[];return function e(n,i){
    -for(let s=n.firstChild;s;s=s.nextSibling)3===s.nodeType?i+=s.nodeValue.length:1===s.nodeType&&(t.push({
    -event:"start",offset:i,node:s}),i=e(s,i),C(s).match(/br|hr|img|input/)||t.push({
    -event:"stop",offset:i,node:s}));return i}(e,0),t}const $={},U=e=>{
    -console.error(e)},z=(e,...t)=>{console.log("WARN: "+e,...t)},K=(e,t)=>{
    -$[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),$[`${e}/${t}`]=!0)
    -},G=s,V=a,W=Symbol("nomatch");return(e=>{
    -const n=Object.create(null),s=Object.create(null),a=[];let r=!0
    -;const l=/(^(<[^>]+>|\t|)+|\n)/gm,o="Could not find the language '{}', did you forget to load/include a language module?",g={
    -disableAutodetect:!0,name:"Plain text",contains:[]};let u={
    -noHighlightRe:/^(no-?highlight)$/i,
    -languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",
    -tabReplace:null,useBR:!1,languages:null,__emitter:c};function h(e){
    -return u.noHighlightRe.test(e)}function d(e,t,n,i){let s="",a=""
    -;"object"==typeof t?(s=e,
    -n=t.ignoreIllegals,a=t.language,i=void 0):(K("10.7.0","highlight(lang, code, ...args) has been deprecated."),
    -K("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
    -a=e,s=t);const r={code:s,language:a};M("before:highlight",r)
    -;const l=r.result?r.result:f(r.language,r.code,n,i)
    -;return l.code=r.code,M("after:highlight",l),l}function f(e,t,s,l){
    -function c(e,t){const n=v.case_insensitive?t[0].toLowerCase():t[0]
    -;return Object.prototype.hasOwnProperty.call(e.keywords,n)&&e.keywords[n]}
    -function g(){null!=R.subLanguage?(()=>{if(""===M)return;let e=null
    -;if("string"==typeof R.subLanguage){
    -if(!n[R.subLanguage])return void k.addText(M)
    -;e=f(R.subLanguage,M,!0,_[R.subLanguage]),_[R.subLanguage]=e.top
    -}else e=p(M,R.subLanguage.length?R.subLanguage:null)
    -;R.relevance>0&&(O+=e.relevance),k.addSublanguage(e.emitter,e.language)
    -})():(()=>{if(!R.keywords)return void k.addText(M);let e=0
    -;R.keywordPatternRe.lastIndex=0;let t=R.keywordPatternRe.exec(M),n="";for(;t;){
    -n+=M.substring(e,t.index);const i=c(R,t);if(i){const[e,s]=i
    -;if(k.addText(n),n="",O+=s,e.startsWith("_"))n+=t[0];else{
    -const n=v.classNameAliases[e]||e;k.addKeyword(t[0],n)}}else n+=t[0]
    -;e=R.keywordPatternRe.lastIndex,t=R.keywordPatternRe.exec(M)}
    -n+=M.substr(e),k.addText(n)})(),M=""}function h(e){
    -return e.className&&k.openNode(v.classNameAliases[e.className]||e.className),
    -R=Object.create(e,{parent:{value:R}}),R}function d(e,t,n){let s=((e,t)=>{
    -const n=e&&e.exec(t);return n&&0===n.index})(e.endRe,n);if(s){if(e["on:end"]){
    -const n=new i(e);e["on:end"](t,n),n.isMatchIgnored&&(s=!1)}if(s){
    -for(;e.endsParent&&e.parent;)e=e.parent;return e}}
    -if(e.endsWithParent)return d(e.parent,t,n)}function m(e){
    -return 0===R.matcher.regexIndex?(M+=e[0],1):(I=!0,0)}function b(e){
    -const n=e[0],i=t.substr(e.index),s=d(R,e,i);if(!s)return W;const a=R
    -;a.skip?M+=n:(a.returnEnd||a.excludeEnd||(M+=n),g(),a.excludeEnd&&(M=n));do{
    -R.className&&k.closeNode(),R.skip||R.subLanguage||(O+=R.relevance),R=R.parent
    -}while(R!==s.parent)
    -;return s.starts&&(s.endSameAsBegin&&(s.starts.endRe=s.endRe),
    -h(s.starts)),a.returnEnd?0:n.length}let E={};function x(n,a){const l=a&&a[0]
    -;if(M+=n,null==l)return g(),0
    -;if("begin"===E.type&&"end"===a.type&&E.index===a.index&&""===l){
    -if(M+=t.slice(a.index,a.index+1),!r){const t=Error("0 width match regex")
    -;throw t.languageName=e,t.badRule=E.rule,t}return 1}
    -if(E=a,"begin"===a.type)return function(e){
    -const t=e[0],n=e.rule,s=new i(n),a=[n.__beforeBegin,n["on:begin"]]
    -;for(const n of a)if(n&&(n(e,s),s.isMatchIgnored))return m(t)
    -;return n&&n.endSameAsBegin&&(n.endRe=RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")),
    -n.skip?M+=t:(n.excludeBegin&&(M+=t),
    -g(),n.returnBegin||n.excludeBegin||(M=t)),h(n),n.returnBegin?0:t.length}(a)
    -;if("illegal"===a.type&&!s){
    -const e=Error('Illegal lexeme "'+l+'" for mode "'+(R.className||"<unnamed>")+'"')
    -;throw e.mode=R,e}if("end"===a.type){const e=b(a);if(e!==W)return e}
    -if("illegal"===a.type&&""===l)return 1
    -;if(L>1e5&&L>3*a.index)throw Error("potential infinite loop, way more iterations than matches")
    -;return M+=l,l.length}const v=N(e)
    -;if(!v)throw U(o.replace("{}",e)),Error('Unknown language: "'+e+'"')
    -;const w=T(v,{plugins:a});let y="",R=l||w;const _={},k=new u.__emitter(u);(()=>{
    -const e=[];for(let t=R;t!==v;t=t.parent)t.className&&e.unshift(t.className)
    -;e.forEach((e=>k.openNode(e)))})();let M="",O=0,A=0,L=0,I=!1;try{
    -for(R.matcher.considerAll();;){
    -L++,I?I=!1:R.matcher.considerAll(),R.matcher.lastIndex=A
    -;const e=R.matcher.exec(t);if(!e)break;const n=x(t.substring(A,e.index),e)
    -;A=e.index+n}return x(t.substr(A)),k.closeAllNodes(),k.finalize(),y=k.toHTML(),{
    -relevance:Math.floor(O),value:y,language:e,illegal:!1,emitter:k,top:R}}catch(n){
    -if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{
    -msg:n.message,context:t.slice(A-100,A+100),mode:n.mode},sofar:y,relevance:0,
    -value:G(t),emitter:k};if(r)return{illegal:!1,relevance:0,value:G(t),emitter:k,
    -language:e,top:R,errorRaised:n};throw n}}function p(e,t){
    -t=t||u.languages||Object.keys(n);const i=(e=>{const t={relevance:0,
    -emitter:new u.__emitter(u),value:G(e),illegal:!1,top:g}
    -;return t.emitter.addText(e),t})(e),s=t.filter(N).filter(k).map((t=>f(t,e,!1)))
    -;s.unshift(i);const a=s.sort(((e,t)=>{
    -if(e.relevance!==t.relevance)return t.relevance-e.relevance
    -;if(e.language&&t.language){if(N(e.language).supersetOf===t.language)return 1
    -;if(N(t.language).supersetOf===e.language)return-1}return 0})),[r,l]=a,o=r
    -;return o.second_best=l,o}const m={"before:highlightElement":({el:e})=>{
    -u.useBR&&(e.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ /]*>/g,"\n"))
    -},"after:highlightElement":({result:e})=>{
    -u.useBR&&(e.value=e.value.replace(/\n/g,"<br>"))}},b=/^(<[^>]+>|\t)+/gm,E={
    -"after:highlightElement":({result:e})=>{
    -u.tabReplace&&(e.value=e.value.replace(b,(e=>e.replace(/\t/g,u.tabReplace))))}}
    -;function x(e){let t=null;const n=(e=>{let t=e.className+" "
    -;t+=e.parentNode?e.parentNode.className:"";const n=u.languageDetectRe.exec(t)
    -;if(n){const t=N(n[1])
    -;return t||(z(o.replace("{}",n[1])),z("Falling back to no-highlight mode for this block.",e)),
    -t?n[1]:"no-highlight"}return t.split(/\s+/).find((e=>h(e)||N(e)))})(e)
    -;if(h(n))return;M("before:highlightElement",{el:e,language:n}),t=e
    -;const i=t.textContent,a=n?d(i,{language:n,ignoreIllegals:!0}):p(i)
    -;M("after:highlightElement",{el:e,result:a,text:i
    -}),e.innerHTML=a.value,((e,t,n)=>{const i=t?s[t]:n
    -;e.classList.add("hljs"),i&&e.classList.add(i)})(e,n,a.language),e.result={
    -language:a.language,re:a.relevance,relavance:a.relevance
    -},a.second_best&&(e.second_best={language:a.second_best.language,
    -re:a.second_best.relevance,relavance:a.second_best.relevance})}const v=()=>{
    -v.called||(v.called=!0,
    -K("10.6.0","initHighlighting() is deprecated.  Use highlightAll() instead."),
    -document.querySelectorAll("pre code").forEach(x))};let w=!1;function y(){
    -"loading"!==document.readyState?document.querySelectorAll("pre code").forEach(x):w=!0
    -}function N(e){return e=(e||"").toLowerCase(),n[e]||n[s[e]]}
    -function R(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{
    -s[e.toLowerCase()]=t}))}function k(e){const t=N(e)
    -;return t&&!t.disableAutodetect}function M(e,t){const n=e;a.forEach((e=>{
    -e[n]&&e[n](t)}))}
    -"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{
    -w&&y()}),!1),Object.assign(e,{highlight:d,highlightAuto:p,highlightAll:y,
    -fixMarkup:e=>{
    -return K("10.2.0","fixMarkup will be removed entirely in v11.0"),K("10.2.0","Please see https://github.com/highlightjs/highlight.js/issues/2534"),
    -t=e,
    -u.tabReplace||u.useBR?t.replace(l,(e=>"\n"===e?u.useBR?"<br>":e:u.tabReplace?e.replace(/\t/g,u.tabReplace):e)):t
    -;var t},highlightElement:x,
    -highlightBlock:e=>(K("10.7.0","highlightBlock will be removed entirely in v12.0"),
    -K("10.7.0","Please use highlightElement now."),x(e)),configure:e=>{
    -e.useBR&&(K("10.3.0","'useBR' will be removed entirely in v11.0"),
    -K("10.3.0","Please see https://github.com/highlightjs/highlight.js/issues/2559")),
    -u=V(u,e)},initHighlighting:v,initHighlightingOnLoad:()=>{
    -K("10.6.0","initHighlightingOnLoad() is deprecated.  Use highlightAll() instead."),
    -w=!0},registerLanguage:(t,i)=>{let s=null;try{s=i(e)}catch(e){
    -if(U("Language definition for '{}' could not be registered.".replace("{}",t)),
    -!r)throw e;U(e),s=g}
    -s.name||(s.name=t),n[t]=s,s.rawDefinition=i.bind(null,e),s.aliases&&R(s.aliases,{
    -languageName:t})},unregisterLanguage:e=>{delete n[e]
    -;for(const t of Object.keys(s))s[t]===e&&delete s[t]},
    -listLanguages:()=>Object.keys(n),getLanguage:N,registerAliases:R,
    -requireLanguage:e=>{
    -K("10.4.0","requireLanguage will be removed entirely in v11."),
    -K("10.4.0","Please see https://github.com/highlightjs/highlight.js/pull/2844")
    -;const t=N(e);if(t)return t
    -;throw Error("The '{}' language is required, but not loaded.".replace("{}",e))},
    -autoDetection:k,inherit:V,addPlugin:e=>{(e=>{
    -e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{
    -e["before:highlightBlock"](Object.assign({block:t.el},t))
    -}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{
    -e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),a.push(e)},
    -vuePlugin:P(e).VuePlugin}),e.debugMode=()=>{r=!1},e.safeMode=()=>{r=!0
    -},e.versionString="10.7.2";for(const e in _)"object"==typeof _[e]&&t(_[e])
    -;return Object.assign(e,_),e.addPlugin(m),e.addPlugin(D),e.addPlugin(E),e})({})
    -}();"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);
    -hljs.registerLanguage("apache",(()=>{"use strict";return e=>{const n={
    -className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/}
    -;return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,
    -contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,
    -contains:[n,{className:"number",begin:/:\d{1,5}/
    -},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",
    -begin:/\w+/,relevance:0,keywords:{
    -nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"
    -},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},
    -contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",
    -begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}]
    -},n,{className:"number",begin:/\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}
    -})());
    -hljs.registerLanguage("bash",(()=>{"use strict";function e(...e){
    -return e.map((e=>{return(s=e)?"string"==typeof s?s:s.source:null;var s
    -})).join("")}return s=>{const n={},t={begin:/\$\{/,end:/\}/,contains:["self",{
    -begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{
    -begin:e(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},t]});const a={
    -className:"subst",begin:/\$\(/,end:/\)/,contains:[s.BACKSLASH_ESCAPE]},i={
    -begin:/<<-?\s*(?=\w+)/,starts:{contains:[s.END_SAME_AS_BEGIN({begin:/(\w+)/,
    -end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/,
    -contains:[s.BACKSLASH_ESCAPE,n,a]};a.contains.push(c);const o={begin:/\$\(\(/,
    -end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},s.NUMBER_MODE,n]
    -},r=s.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10
    -}),l={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,
    -contains:[s.inherit(s.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{
    -name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z._-]+\b/,
    -keyword:"if then else elif fi for while in do done case esac function",
    -literal:"true false",
    -built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp"
    -},contains:[r,s.SHEBANG(),l,o,s.HASH_COMMENT_MODE,i,c,{className:"",begin:/\\"/
    -},{className:"string",begin:/'/,end:/'/},n]}}})());
    -hljs.registerLanguage("c",(()=>{"use strict";function e(e){
    -return((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(",e,")?")
    -}return t=>{const n=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]
    -}),r="[a-zA-Z_]\\w*::",a="(decltype\\(auto\\)|"+e(r)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",i={
    -className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",
    -variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",
    -contains:[t.BACKSLASH_ESCAPE]},{
    -begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
    -end:"'",illegal:"."},t.END_SAME_AS_BEGIN({
    -begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={
    -className:"number",variants:[{begin:"\\b(0b[01']+)"},{
    -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
    -},{
    -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    -}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
    -"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
    -},contains:[{begin:/\\\n/,relevance:0},t.inherit(s,{className:"meta-string"}),{
    -className:"meta-string",begin:/<.*?>/},n,t.C_BLOCK_COMMENT_MODE]},l={
    -className:"title",begin:e(r)+t.IDENT_RE,relevance:0
    -},d=e(r)+t.IDENT_RE+"\\s*\\(",u={
    -keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",
    -built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary",
    -literal:"true false nullptr NULL"},m=[c,i,n,t.C_BLOCK_COMMENT_MODE,o,s],p={
    -variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{
    -beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:m.concat([{
    -begin:/\(/,end:/\)/,keywords:u,contains:m.concat(["self"]),relevance:0}]),
    -relevance:0},_={className:"function",begin:"("+a+"[\\*&\\s]+)+"+d,
    -returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/,
    -contains:[{begin:"decltype\\(auto\\)",keywords:u,relevance:0},{begin:d,
    -returnBegin:!0,contains:[l],relevance:0},{className:"params",begin:/\(/,
    -end:/\)/,keywords:u,relevance:0,contains:[n,t.C_BLOCK_COMMENT_MODE,s,o,i,{
    -begin:/\(/,end:/\)/,keywords:u,relevance:0,
    -contains:["self",n,t.C_BLOCK_COMMENT_MODE,s,o,i]}]
    -},i,n,t.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u,
    -disableAutodetect:!0,illegal:"</",contains:[].concat(p,_,m,[c,{
    -begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",
    -end:">",keywords:u,contains:["self",i]},{begin:t.IDENT_RE+"::",keywords:u},{
    -className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,
    -contains:[{beginKeywords:"final class struct"},t.TITLE_MODE]}]),exports:{
    -preprocessor:c,strings:s,keywords:u}}}})());
    -hljs.registerLanguage("coffeescript",(()=>{"use strict"
    -;const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
    -;return r=>{const t={
    -keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((i=["var","const","let","function","static"],
    -e=>!i.includes(e))),literal:n.concat(["yes","no","on","off"]),
    -built_in:a.concat(["npm","print"])};var i;const s="[A-Za-z$_][0-9A-Za-z$_]*",o={
    -className:"subst",begin:/#\{/,end:/\}/,keywords:t
    -},c=[r.BINARY_NUMBER_MODE,r.inherit(r.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",
    -relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,
    -contains:[r.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[r.BACKSLASH_ESCAPE]
    -},{begin:/"""/,end:/"""/,contains:[r.BACKSLASH_ESCAPE,o]},{begin:/"/,end:/"/,
    -contains:[r.BACKSLASH_ESCAPE,o]}]},{className:"regexp",variants:[{begin:"///",
    -end:"///",contains:[o,r.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)",
    -relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+s
    -},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{
    -begin:"```",end:"```"},{begin:"`",end:"`"}]}];o.contains=c
    -;const l=r.inherit(r.TITLE_MODE,{begin:s}),d="(\\(.*\\)\\s*)?\\B[-=]>",g={
    -className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,
    -end:/\)/,keywords:t,contains:["self"].concat(c)}]};return{name:"CoffeeScript",
    -aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/,
    -contains:c.concat([r.COMMENT("###","###"),r.HASH_COMMENT_MODE,{
    -className:"function",begin:"^\\s*"+s+"\\s*=\\s*"+d,end:"[-=]>",returnBegin:!0,
    -contains:[l,g]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",
    -begin:d,end:"[-=]>",returnBegin:!0,contains:[g]}]},{className:"class",
    -beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{
    -beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[l]},l]
    -},{begin:s+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}})());
    -hljs.registerLanguage("cpp",(()=>{"use strict";function e(e){
    -return t("(",e,")?")}function t(...e){return e.map((e=>{
    -return(t=e)?"string"==typeof t?t:t.source:null;var t})).join("")}return n=>{
    -const r=n.COMMENT("//","$",{contains:[{begin:/\\\n/}]
    -}),a="[a-zA-Z_]\\w*::",i="(decltype\\(auto\\)|"+e(a)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",s={
    -className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",
    -variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",
    -contains:[n.BACKSLASH_ESCAPE]},{
    -begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
    -end:"'",illegal:"."},n.END_SAME_AS_BEGIN({
    -begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={
    -className:"number",variants:[{begin:"\\b(0b[01']+)"},{
    -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
    -},{
    -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    -}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
    -"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
    -},contains:[{begin:/\\\n/,relevance:0},n.inherit(c,{className:"meta-string"}),{
    -className:"meta-string",begin:/<.*?>/},r,n.C_BLOCK_COMMENT_MODE]},d={
    -className:"title",begin:e(a)+n.IDENT_RE,relevance:0
    -},u=e(a)+n.IDENT_RE+"\\s*\\(",m={
    -keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",
    -built_in:"_Bool _Complex _Imaginary",
    -_relevance_hints:["asin","atan2","atan","calloc","ceil","cosh","cos","exit","exp","fabs","floor","fmod","fprintf","fputs","free","frexp","auto_ptr","deque","list","queue","stack","vector","map","set","pair","bitset","multiset","multimap","unordered_set","fscanf","future","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","tolower","toupper","labs","ldexp","log10","log","malloc","realloc","memchr","memcmp","memcpy","memset","modf","pow","printf","putchar","puts","scanf","sinh","sin","snprintf","sprintf","sqrt","sscanf","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","tanh","tan","unordered_map","unordered_multiset","unordered_multimap","priority_queue","make_pair","array","shared_ptr","abort","terminate","abs","acos","vfprintf","vprintf","vsprintf","endl","initializer_list","unique_ptr","complex","imaginary","std","string","wstring","cin","cout","cerr","clog","stdin","stdout","stderr","stringstream","istringstream","ostringstream"],
    -literal:"true false nullptr NULL"},p={className:"function.dispatch",relevance:0,
    -keywords:m,
    -begin:t(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!while)/,n.IDENT_RE,(_=/\s*\(/,
    -t("(?=",_,")")))};var _;const g=[p,l,s,r,n.C_BLOCK_COMMENT_MODE,o,c],b={
    -variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{
    -beginKeywords:"new throw return else",end:/;/}],keywords:m,contains:g.concat([{
    -begin:/\(/,end:/\)/,keywords:m,contains:g.concat(["self"]),relevance:0}]),
    -relevance:0},f={className:"function",begin:"("+i+"[\\*&\\s]+)+"+u,
    -returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:m,illegal:/[^\w\s\*&:<>.]/,
    -contains:[{begin:"decltype\\(auto\\)",keywords:m,relevance:0},{begin:u,
    -returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{begin:/:/,
    -endsWithParent:!0,contains:[c,o]},{className:"params",begin:/\(/,end:/\)/,
    -keywords:m,relevance:0,contains:[r,n.C_BLOCK_COMMENT_MODE,c,o,s,{begin:/\(/,
    -end:/\)/,keywords:m,relevance:0,contains:["self",r,n.C_BLOCK_COMMENT_MODE,c,o,s]
    -}]},s,r,n.C_BLOCK_COMMENT_MODE,l]};return{name:"C++",
    -aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:m,illegal:"</",
    -classNameAliases:{"function.dispatch":"built_in"},
    -contains:[].concat(b,f,p,g,[l,{
    -begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",
    -end:">",keywords:m,contains:["self",s]},{begin:n.IDENT_RE+"::",keywords:m},{
    -className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,
    -contains:[{beginKeywords:"final class struct"},n.TITLE_MODE]}]),exports:{
    -preprocessor:l,strings:c,keywords:m}}}})());
    -hljs.registerLanguage("csharp",(()=>{"use strict";return e=>{const n={
    -keyword:["abstract","as","base","break","case","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]),
    -built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],
    -literal:["default","false","null","true"]},a=e.inherit(e.TITLE_MODE,{
    -begin:"[a-zA-Z](\\.?\\w)*"}),i={className:"number",variants:[{
    -begin:"\\b(0b[01']+)"},{
    -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{
    -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    -}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]
    -},t=e.inherit(s,{illegal:/\n/}),r={className:"subst",begin:/\{/,end:/\}/,
    -keywords:n},l=e.inherit(r,{illegal:/\n/}),c={className:"string",begin:/\$"/,
    -end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/
    -},e.BACKSLASH_ESCAPE,l]},o={className:"string",begin:/\$@"/,end:'"',contains:[{
    -begin:/\{\{/},{begin:/\}\}/},{begin:'""'},r]},d=e.inherit(o,{illegal:/\n/,
    -contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},l]})
    -;r.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE],
    -l.contains=[d,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.inherit(e.C_BLOCK_COMMENT_MODE,{
    -illegal:/\n/})];const g={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
    -},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},a]
    -},_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={
    -begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],
    -keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,
    -contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{
    -begin:"\x3c!--|--\x3e"},{begin:"</?",end:">"}]}]
    -}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",
    -end:"$",keywords:{
    -"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"
    -}},g,i,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,
    -illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"
    -},a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",
    -relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
    -contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
    -beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
    -contains:[a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",
    -begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{
    -className:"meta-string",begin:/"/,end:/"/}]},{
    -beginKeywords:"new return throw await else",relevance:0},{className:"function",
    -begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0,
    -end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{
    -beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial",
    -relevance:0},{begin:e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0,
    -contains:[e.TITLE_MODE,E],relevance:0},{className:"params",begin:/\(/,end:/\)/,
    -excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,
    -contains:[g,i,e.C_BLOCK_COMMENT_MODE]
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}})());
    -hljs.registerLanguage("css",(()=>{"use strict"
    -;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse()
    -;return n=>{const a=(e=>({IMPORTANT:{className:"meta",begin:"!important"},
    -HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},
    -ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,
    -illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}
    -}))(n),l=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS",
    -case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},
    -classNameAliases:{keyframePosition:"selector-tag"},
    -contains:[n.C_BLOCK_COMMENT_MODE,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/
    -},n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0
    -},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0
    -},a.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{
    -begin:":("+i.join("|")+")"},{begin:"::("+o.join("|")+")"}]},{
    -className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{begin:":",end:"[;}]",
    -contains:[a.HEXCOLOR,a.IMPORTANT,n.CSS_NUMBER_MODE,...l,{
    -begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"
    -},contains:[{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]
    -},{className:"built_in",begin:/[\w-]+(?=\()/}]},{
    -begin:(s=/@/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",s,")")),
    -end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",
    -begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,
    -relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",
    -attribute:t.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"
    -},...l,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",
    -begin:"\\b("+e.join("|")+")\\b"}]};var s}})());
    -hljs.registerLanguage("diff",(()=>{"use strict";return e=>({name:"Diff",
    -aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{
    -begin:/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{
    -begin:/^--- +\d+,\d+ +----$/}]},{className:"comment",variants:[{begin:/Index: /,
    -end:/$/},{begin:/^index/,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^-{3}/,end:/$/
    -},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/^\*{15}$/},{
    -begin:/^diff --git/,end:/$/}]},{className:"addition",begin:/^\+/,end:/$/},{
    -className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,
    -end:/$/}]})})());
    -hljs.registerLanguage("go",(()=>{"use strict";return e=>{const n={
    -keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",
    -literal:"true false iota nil",
    -built_in:"append cap close complex copy imag len make new panic print println real recover delete"
    -};return{name:"Go",aliases:["golang"],keywords:n,illegal:"</",
    -contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",
    -variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{
    -className:"number",variants:[{begin:e.C_NUMBER_RE+"[i]",relevance:1
    -},e.C_NUMBER_MODE]},{begin:/:=/},{className:"function",beginKeywords:"func",
    -end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",
    -begin:/\(/,end:/\)/,keywords:n,illegal:/["']/}]}]}}})());
    -hljs.registerLanguage("http",(()=>{"use strict";function e(...e){
    -return e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null;var n
    -})).join("")}return n=>{const a="HTTP/(2|1\\.[01])",s={className:"attribute",
    -begin:e("^",/[A-Za-z][A-Za-z0-9-]*/,"(?=\\:\\s)"),starts:{contains:[{
    -className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]}
    -},t=[s,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{
    -name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+a+" \\d{3})",
    -end:/$/,contains:[{className:"meta",begin:a},{className:"number",
    -begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:t}},{
    -begin:"(?=^[A-Z]+ (.*?) "+a+"$)",end:/$/,contains:[{className:"string",
    -begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:a},{
    -className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:t}
    -},n.inherit(s,{relevance:0})]}}})());
    -hljs.registerLanguage("ini",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(...n){
    -return n.map((n=>e(n))).join("")}return s=>{const a={className:"number",
    -relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:s.NUMBER_RE}]
    -},i=s.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const t={
    -className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/
    -}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={
    -className:"string",contains:[s.BACKSLASH_ESCAPE],variants:[{begin:"'''",
    -end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'
    -},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[i,r,t,l,a,"self"],
    -relevance:0
    -},g="("+[/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/].map((n=>e(n))).join("|")+")"
    -;return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,
    -contains:[i,{className:"section",begin:/\[+/,end:/\]+/},{
    -begin:n(g,"(\\s*\\.\\s*",g,")*",n("(?=",/\s*=\s*[^#\s]/,")")),className:"attr",
    -starts:{end:/$/,contains:[i,c,r,t,l,a]}}]}}})());
    -hljs.registerLanguage("java",(()=>{"use strict"
    -;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={
    -className:"number",variants:[{
    -begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    -},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
    -begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{
    -begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    -},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{
    -begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
    -relevance:0};return e=>{
    -var n="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",s={
    -className:"meta",begin:"@[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",
    -contains:[{begin:/\(/,end:/\)/,contains:["self"]}]};const r=a;return{
    -name:"Java",aliases:["jsp"],keywords:n,illegal:/<\/|#/,
    -contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,
    -relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{
    -begin:/import java\.[a-z]+\./,keywords:"import",relevance:2
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{
    -className:"class",beginKeywords:"class interface enum",end:/[{;=]/,
    -excludeEnd:!0,relevance:1,keywords:"class interface enum",illegal:/[:"\[\]]/,
    -contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{
    -beginKeywords:"new throw return else",relevance:0},{className:"class",
    -begin:"record\\s+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,excludeEnd:!0,
    -end:/[{;=]/,keywords:n,contains:[{beginKeywords:"record"},{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,
    -keywords:n,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE]
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"function",
    -begin:"([\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*(<[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*(\\s*,\\s*[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",
    -returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:n,contains:[{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,
    -keywords:n,relevance:0,
    -contains:[s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.C_BLOCK_COMMENT_MODE]
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},r,s]}}})());
    -hljs.registerLanguage("javascript",(()=>{"use strict"
    -;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
    -;function r(e){return t("(?=",e,")")}function t(...e){return e.map((e=>{
    -return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return i=>{
    -const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,
    -isTrulyOpeningTag:(e,n)=>{const a=e[0].length+e.index,s=e.input[a]
    -;"<"!==s?">"===s&&(((e,{after:n})=>{const a="</"+e[0].slice(1)
    -;return-1!==e.input.indexOf(a,n)})(e,{after:a
    -})||n.ignoreMatch()):n.ignoreMatch()}},l={$pattern:e,keyword:n,literal:a,
    -built_in:s},g="\\.([0-9](_?[0-9])*)",b="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",d={
    -className:"number",variants:[{
    -begin:`(\\b(${b})((${g})|\\.)?|(${g}))[eE][+-]?([0-9](_?[0-9])*)\\b`},{
    -begin:`\\b(${b})\\b((${g})\\b|\\.)?|(${g})\\b`},{
    -begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
    -begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
    -begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
    -begin:"\\b0[0-7]+n?\\b"}],relevance:0},E={className:"subst",begin:"\\$\\{",
    -end:"\\}",keywords:l,contains:[]},u={begin:"html`",end:"",starts:{end:"`",
    -returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,E],subLanguage:"xml"}},_={
    -begin:"css`",end:"",starts:{end:"`",returnEnd:!1,
    -contains:[i.BACKSLASH_ESCAPE,E],subLanguage:"css"}},m={className:"string",
    -begin:"`",end:"`",contains:[i.BACKSLASH_ESCAPE,E]},y={className:"comment",
    -variants:[i.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
    -className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",
    -end:"\\}",relevance:0},{className:"variable",begin:c+"(?=\\s*(-)|$)",
    -endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
    -}),i.C_BLOCK_COMMENT_MODE,i.C_LINE_COMMENT_MODE]
    -},N=[i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,u,_,m,d,i.REGEXP_MODE]
    -;E.contains=N.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(N)
    -});const A=[].concat(y,E.contains),f=A.concat([{begin:/\(/,end:/\)/,keywords:l,
    -contains:["self"].concat(A)}]),p={className:"params",begin:/\(/,end:/\)/,
    -excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f};return{name:"Javascript",
    -aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:f},
    -illegal:/#(?![$_A-z])/,contains:[i.SHEBANG({label:"shebang",binary:"node",
    -relevance:5}),{label:"use_strict",className:"meta",relevance:10,
    -begin:/^\s*['"]use (strict|asm)['"]/
    -},i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,u,_,m,y,d,{
    -begin:t(/[{,\n]\s*/,r(t(/(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/,c+"\\s*:"))),
    -relevance:0,contains:[{className:"attr",begin:c+r("\\s*:"),relevance:0}]},{
    -begin:"("+i.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
    -keywords:"return throw case",contains:[y,i.REGEXP_MODE,{className:"function",
    -begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+i.UNDERSCORE_IDENT_RE+")\\s*=>",
    -returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{
    -begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0
    -},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}]
    -},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{
    -variants:[{begin:"<>",end:"</>"},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,
    -end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,
    -contains:["self"]}]}],relevance:0},{className:"function",
    -beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l,
    -contains:["self",i.inherit(i.TITLE_MODE,{begin:c}),p],illegal:/%/},{
    -beginKeywords:"while if switch catch for"},{className:"function",
    -begin:i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
    -returnBegin:!0,contains:[p,i.inherit(i.TITLE_MODE,{begin:c})]},{variants:[{
    -begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class",
    -beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{
    -beginKeywords:"extends"},i.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/,
    -end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:c}),"self",p]
    -},{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set",
    -contains:[i.inherit(i.TITLE_MODE,{begin:c}),{begin:/\(\)/},p]},{begin:/\$[(.]/}]
    -}}})());
    -hljs.registerLanguage("json",(()=>{"use strict";return n=>{const e={
    -literal:"true false null"
    -},i=[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],a=[n.QUOTE_STRING_MODE,n.C_NUMBER_MODE],l={
    -end:",",endsWithParent:!0,excludeEnd:!0,contains:a,keywords:e},t={begin:/\{/,
    -end:/\}/,contains:[{className:"attr",begin:/"/,end:/"/,
    -contains:[n.BACKSLASH_ESCAPE],illegal:"\\n"},n.inherit(l,{begin:/:/
    -})].concat(i),illegal:"\\S"},s={begin:"\\[",end:"\\]",contains:[n.inherit(l)],
    -illegal:"\\S"};return a.push(t,s),i.forEach((n=>{a.push(n)})),{name:"JSON",
    -contains:a,keywords:e,illegal:"\\S"}}})());
    -hljs.registerLanguage("kotlin",(()=>{"use strict"
    -;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={
    -className:"number",variants:[{
    -begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    -},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
    -begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{
    -begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    -},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{
    -begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
    -relevance:0};return e=>{const n={
    -keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",
    -built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",
    -literal:"true false null"},i={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"
    -},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},t={
    -className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string",
    -variants:[{begin:'"""',end:'"""(?=[^"])',contains:[t,s]},{begin:"'",end:"'",
    -illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,
    -contains:[e.BACKSLASH_ESCAPE,t,s]}]};s.contains.push(r);const l={
    -className:"meta",
    -begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"
    -},c={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,
    -end:/\)/,contains:[e.inherit(r,{className:"meta-string"})]}]
    -},o=a,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),E={
    -variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,
    -contains:[]}]},d=E;return d.variants[1].contains=[E],E.variants[1].contains=[d],
    -{name:"Kotlin",aliases:["kt","kts"],keywords:n,
    -contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",
    -begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,{className:"keyword",
    -begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",
    -begin:/@\w+/}]}},i,l,c,{className:"function",beginKeywords:"fun",end:"[(]|$",
    -returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,
    -keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,
    -endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,
    -endsWithParent:!0,contains:[E,e.C_LINE_COMMENT_MODE,b],relevance:0
    -},e.C_LINE_COMMENT_MODE,b,l,c,r,e.C_NUMBER_MODE]},b]},{className:"class",
    -beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,
    -illegal:"extends implements",contains:[{
    -beginKeywords:"public protected internal private constructor"
    -},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,
    -excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,
    -excludeBegin:!0,returnEnd:!0},l,c]},r,{className:"meta",begin:"^#!/usr/bin/env",
    -end:"$",illegal:"\n"},o]}}})());
    -hljs.registerLanguage("less",(()=>{"use strict"
    -;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],n=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse(),r=i.concat(o)
    -;return a=>{const s=(e=>({IMPORTANT:{className:"meta",begin:"!important"},
    -HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},
    -ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,
    -illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}
    -}))(a),l=r,d="([\\w-]+|@\\{[\\w-]+\\})",c=[],g=[],b=e=>({className:"string",
    -begin:"~?"+e+".*?"+e}),m=(e,t,i)=>({className:e,begin:t,relevance:i}),u={
    -$pattern:/[a-z-]+/,keyword:"and or not only",attribute:t.join(" ")},p={
    -begin:"\\(",end:"\\)",contains:g,keywords:u,relevance:0}
    -;g.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,b("'"),b('"'),a.CSS_NUMBER_MODE,{
    -begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",
    -excludeEnd:!0}
    -},s.HEXCOLOR,p,m("variable","@@?[\\w-]+",10),m("variable","@\\{[\\w-]+\\}"),m("built_in","~?`[^`]*?`"),{
    -className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0
    -},s.IMPORTANT);const f=g.concat({begin:/\{/,end:/\}/,contains:c}),h={
    -beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"
    -}].concat(g)},w={begin:d+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,
    -contains:[{begin:/-(webkit|moz|ms|o)-/},{className:"attribute",
    -begin:"\\b("+n.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,
    -illegal:"[<=$]",relevance:0,contains:g}}]},v={className:"keyword",
    -begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",
    -starts:{end:"[;{}]",keywords:u,returnEnd:!0,contains:g,relevance:0}},y={
    -className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{
    -begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:f}},k={variants:[{
    -begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:d,end:/\{/}],returnBegin:!0,
    -returnEnd:!0,illegal:"[<='$\"]",relevance:0,
    -contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,h,m("keyword","all\\b"),m("variable","@\\{[\\w-]+\\}"),{
    -begin:"\\b("+e.join("|")+")\\b",className:"selector-tag"
    -},m("selector-tag",d+"%?",0),m("selector-id","#"+d),m("selector-class","\\."+d,0),m("selector-tag","&",0),s.ATTRIBUTE_SELECTOR_MODE,{
    -className:"selector-pseudo",begin:":("+i.join("|")+")"},{
    -className:"selector-pseudo",begin:"::("+o.join("|")+")"},{begin:"\\(",end:"\\)",
    -contains:f},{begin:"!important"}]},E={begin:`[\\w-]+:(:)?(${l.join("|")})`,
    -returnBegin:!0,contains:[k]}
    -;return c.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,v,y,E,w,k),{
    -name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:c}}})());
    -hljs.registerLanguage("lua",(()=>{"use strict";return e=>{
    -const t="\\[=*\\[",a="\\]=*\\]",n={begin:t,end:a,contains:["self"]
    -},o=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[",a,{contains:[n],
    -relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,
    -literal:"true false nil",
    -keyword:"and break do else elseif end for goto if in local not or repeat return then until while",
    -built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"
    -},contains:o.concat([{className:"function",beginKeywords:"function",end:"\\)",
    -contains:[e.inherit(e.TITLE_MODE,{
    -begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",
    -begin:"\\(",endsWithParent:!0,contains:o}].concat(o)
    -},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",
    -begin:t,end:a,contains:[n],relevance:5}])}}})());
    -hljs.registerLanguage("makefile",(()=>{"use strict";return e=>{const i={
    -className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",
    -contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},a={className:"string",
    -begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i]},n={className:"variable",
    -begin:/\$\([\w-]+\s/,end:/\)/,keywords:{
    -built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"
    -},contains:[i]},s={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},r={
    -className:"section",begin:/^[^\s]+:/,end:/$/,contains:[i]};return{
    -name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,
    -keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"
    -},contains:[e.HASH_COMMENT_MODE,i,a,n,s,{className:"meta",begin:/^\.PHONY:/,
    -end:/$/,keywords:{$pattern:/[\.\w]+/,"meta-keyword":".PHONY"}},r]}}})());
    -hljs.registerLanguage("xml",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")}
    -function a(...n){return n.map((n=>e(n))).join("")}function s(...n){
    -return"("+n.map((n=>e(n))).join("|")+")"}return e=>{
    -const t=a(/[A-Z_]/,a("(",/[A-Z0-9_.-]*:/,")?"),/[A-Z0-9_.-]*/),i={
    -className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},r={begin:/\s/,
    -contains:[{className:"meta-keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]
    -},c=e.inherit(r,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{
    -className:"meta-string"}),g=e.inherit(e.QUOTE_STRING_MODE,{
    -className:"meta-string"}),m={endsWithParent:!0,illegal:/</,relevance:0,
    -contains:[{className:"attr",begin:/[A-Za-z0-9._:-]+/,relevance:0},{begin:/=\s*/,
    -relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,
    -end:/"/,contains:[i]},{begin:/'/,end:/'/,contains:[i]},{begin:/[^\s"'=<>`]+/}]}]
    -}]};return{name:"HTML, XML",
    -aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],
    -case_insensitive:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,
    -relevance:10,contains:[r,g,l,c,{begin:/\[/,end:/\]/,contains:[{className:"meta",
    -begin:/<![a-z]/,end:/>/,contains:[r,c,g,l]}]}]},e.COMMENT(/<!--/,/-->/,{
    -relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},i,{
    -className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",
    -begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[m],starts:{
    -end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",
    -begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[m],starts:{
    -end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{
    -className:"tag",begin:/<>|<\/>/},{className:"tag",
    -begin:a(/</,n(a(t,s(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",
    -begin:t,relevance:0,starts:m}]},{className:"tag",begin:a(/<\//,n(a(t,/>/))),
    -contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,
    -endsParent:!0}]}]}}})());
    -hljs.registerLanguage("markdown",(()=>{"use strict";function n(...n){
    -return n.map((n=>{return(e=n)?"string"==typeof e?e:e.source:null;var e
    -})).join("")}return e=>{const a={begin:/<\/?[A-Za-z_]/,end:">",
    -subLanguage:"xml",relevance:0},i={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0
    -},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,
    -relevance:2},{begin:n(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),
    -relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{
    -begin:/\[.+?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{
    -className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,
    -returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",
    -excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",
    -end:"\\]",excludeBegin:!0,excludeEnd:!0}]},s={className:"strong",contains:[],
    -variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},c={
    -className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{
    -begin:/_(?!_)/,end:/_/,relevance:0}]};s.contains.push(c),c.contains.push(s)
    -;let t=[a,i]
    -;return s.contains=s.contains.concat(t),c.contains=c.contains.concat(t),
    -t=t.concat(s,c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{
    -className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:t},{
    -begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",
    -contains:t}]}]},a,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",
    -end:"\\s+",excludeEnd:!0},s,c,{className:"quote",begin:"^>\\s+",contains:t,
    -end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{
    -begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{
    -begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",
    -contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{
    -begin:"^[-\\*]{3,}",end:"$"},i,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{
    -className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{
    -className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}})());
    -hljs.registerLanguage("nginx",(()=>{"use strict";return e=>{const n={
    -className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/\}/},{
    -begin:/[$@]/+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,keywords:{
    -$pattern:"[a-z/_]+",
    -literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"
    -},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",
    -contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/
    -}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]
    -},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",
    -end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{
    -begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",
    -begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{
    -className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},n]};return{
    -name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\{/,contains:[{
    -className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|\\{",returnBegin:!0,contains:[{
    -className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}],
    -illegal:"[^\\s\\}]"}}})());
    -hljs.registerLanguage("objectivec",(()=>{"use strict";return e=>{
    -const n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n,
    -keyword:"@interface @class @protocol @implementation"};return{
    -name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],
    -keywords:{$pattern:n,
    -keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",
    -literal:"false true FALSE TRUE nil YES NO NULL",
    -built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"
    -},illegal:"</",contains:[{className:"built_in",
    -begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{
    -className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",
    -contains:[e.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,
    -keywords:{
    -"meta-keyword":"if else elif endif define undef warning error line pragma ifdef ifndef include"
    -},contains:[{begin:/\\\n/,relevance:0},e.inherit(e.QUOTE_STRING_MODE,{
    -className:"meta-string"}),{className:"meta-string",begin:/<.*?>/,end:/$/,
    -illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
    -className:"class",begin:"("+_.keyword.split(" ").join("|")+")\\b",end:/(\{|$)/,
    -excludeEnd:!0,keywords:_,contains:[e.UNDERSCORE_TITLE_MODE]},{
    -begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}})());
    -hljs.registerLanguage("perl",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(...n){
    -return n.map((n=>e(n))).join("")}function t(...n){
    -return"("+n.map((n=>e(n))).join("|")+")"}return e=>{
    -const r=/[dualxmsipngr]{0,12}/,s={$pattern:/[\w.]+/,
    -keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0"
    -},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:s},a={begin:/->\{/,
    -end:/\}/},o={variants:[{begin:/\$\d/},{
    -begin:n(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")
    -},{begin:/[$%@][^\s\w{]/,relevance:0}]
    -},c=[e.BACKSLASH_ESCAPE,i,o],g=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],l=(e,t,s="\\1")=>{
    -const i="\\1"===s?s:n(s,t)
    -;return n(n("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,i,/(?:\\.|[^\\\/])*?/,s,r)
    -},d=(e,t,s)=>n(n("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,s,r),p=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{
    -endsWithParent:!0}),a,{className:"string",contains:c,variants:[{
    -begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",
    -end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{
    -begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",
    -relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",
    -contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",
    -contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{
    -begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",
    -begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",
    -relevance:0},{
    -begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",
    -keywords:"split return print reverse grep",relevance:0,
    -contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{
    -begin:l("s|tr|y",t(...g))},{begin:l("s|tr|y","\\(","\\)")},{
    -begin:l("s|tr|y","\\[","\\]")},{begin:l("s|tr|y","\\{","\\}")}],relevance:2},{
    -className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{
    -begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",t(...g),/\1/)},{
    -begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{
    -begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",
    -end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{
    -begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",
    -subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]
    -}];return i.contains=p,a.contains=p,{name:"Perl",aliases:["pl","pm"],keywords:s,
    -contains:p}}})());
    -hljs.registerLanguage("php",(()=>{"use strict";return e=>{const r={
    -className:"variable",
    -begin:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?![A-Za-z0-9])(?![$])"},t={
    -className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{
    -begin:/\?>/}]},a={className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,
    -end:/\}/}]},n=e.inherit(e.APOS_STRING_MODE,{illegal:null
    -}),i=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,
    -contains:e.QUOTE_STRING_MODE.contains.concat(a)}),o=e.END_SAME_AS_BEGIN({
    -begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/,
    -contains:e.QUOTE_STRING_MODE.contains.concat(a)}),l={className:"string",
    -contains:[e.BACKSLASH_ESCAPE,t],variants:[e.inherit(n,{begin:"b'",end:"'"
    -}),e.inherit(i,{begin:'b"',end:'"'}),i,n,o]},s={className:"number",variants:[{
    -begin:"\\b0b[01]+(?:_[01]+)*\\b"},{begin:"\\b0o[0-7]+(?:_[0-7]+)*\\b"},{
    -begin:"\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b"},{
    -begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:e[+-]?\\d+)?"
    -}],relevance:0},c={
    -keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile enum eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list match|0 mixed new object or private protected public real return string switch throw trait try unset use var void while xor yield",
    -literal:"false null true",
    -built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException UnhandledMatchError ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Stringable Throwable Traversable WeakReference WeakMap Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass"
    -};return{aliases:["php3","php4","php5","php6","php7","php8"],
    -case_insensitive:!0,keywords:c,
    -contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[t]
    -}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]
    -}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,
    -keywords:"__halt_compiler"}),t,{className:"keyword",begin:/\$this\b/},r,{
    -begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",
    -relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,
    -illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{
    -begin:"=>",endsParent:!0},{className:"params",begin:"\\(",end:"\\)",
    -excludeBegin:!0,excludeEnd:!0,keywords:c,
    -contains:["self",r,e.C_BLOCK_COMMENT_MODE,l,s]}]},{className:"class",variants:[{
    -beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",
    -illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{
    -beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{
    -beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",relevance:0,end:";",
    -contains:[e.UNDERSCORE_TITLE_MODE]},l,s]}}})());
    -hljs.registerLanguage("php-template",(()=>{"use strict";return n=>({
    -name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,
    -subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',
    -end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{
    -illegal:null,className:null,contains:null,skip:!0
    -}),n.inherit(n.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,
    -skip:!0})]}]})})());
    -hljs.registerLanguage("plaintext",(()=>{"use strict";return t=>({
    -name:"Plain text",aliases:["text","txt"],disableAutodetect:!0})})());
    -hljs.registerLanguage("properties",(()=>{"use strict";return e=>{
    -var n="[ \\t\\f]*",a=n+"[:=]"+n,t="("+a+"|[ \\t\\f]+)",r="([^\\\\\\W:= \\t\\f\\n]|\\\\.)+",s="([^\\\\:= \\t\\f\\n]|\\\\.)+",i={
    -end:t,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{
    -begin:"\\\\\\\\"},{begin:"\\\\\\n"}]}};return{name:".properties",
    -case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{
    -returnBegin:!0,variants:[{begin:r+a,relevance:1},{begin:r+"[ \\t\\f]+",
    -relevance:0}],contains:[{className:"attr",begin:r,endsParent:!0,relevance:0}],
    -starts:i},{begin:s+t,returnBegin:!0,relevance:0,contains:[{className:"meta",
    -begin:s,endsParent:!0,relevance:0}],starts:i},{className:"attr",relevance:0,
    -begin:s+n+"$"}]}}})());
    -hljs.registerLanguage("python",(()=>{"use strict";return e=>{const n={
    -$pattern:/[A-Za-z]\w+|__\w+__/,
    -keyword:["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],
    -built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],
    -literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],
    -type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]
    -},a={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/,
    -end:/\}/,keywords:n,illegal:/#/},s={begin:/\{\{/,relevance:0},t={
    -className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{
    -begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,
    -contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{
    -begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,
    -contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{
    -begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,
    -contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,
    -end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([uU]|[rR])'/,end:/'/,
    -relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{
    -begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,
    -end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,
    -contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,
    -contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
    -},r="[0-9](_?[0-9])*",l=`(\\b(${r}))?\\.(${r})|\\b(${r})\\.`,b={
    -className:"number",relevance:0,variants:[{
    -begin:`(\\b(${r})|(${l}))[eE][+-]?(${r})[jJ]?\\b`},{begin:`(${l})[jJ]?`},{
    -begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{
    -begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{
    -begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${r})[jJ]\\b`}]},o={
    -className:"comment",
    -begin:(d=/# type:/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",d,")")),
    -end:/$/,keywords:n,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,
    -endsWithParent:!0}]},c={className:"params",variants:[{className:"",
    -begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,
    -keywords:n,contains:["self",a,b,t,e.HASH_COMMENT_MODE]}]};var d
    -;return i.contains=[t,b,a],{name:"Python",aliases:["py","gyp","ipython"],
    -keywords:n,illegal:/(<\/|->|\?)|=>/,contains:[a,b,{begin:/\bself\b/},{
    -beginKeywords:"if",relevance:0},t,o,e.HASH_COMMENT_MODE,{variants:[{
    -className:"function",beginKeywords:"def"},{className:"class",
    -beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,
    -contains:[e.UNDERSCORE_TITLE_MODE,c,{begin:/->/,endsWithParent:!0,keywords:n}]
    -},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[b,c,t]}]}}})());
    -hljs.registerLanguage("python-repl",(()=>{"use strict";return s=>({
    -aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",
    -subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{
    -begin:/^\.\.\.(?=[ ]|$)/}]}]})})());
    -hljs.registerLanguage("r",(()=>{"use strict";function e(...e){return e.map((e=>{
    -return(a=e)?"string"==typeof a?a:a.source:null;var a})).join("")}return a=>{
    -const n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/;return{name:"R",
    -illegal:/->/,keywords:{$pattern:n,
    -keyword:"function if in break next repeat else for while",
    -literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",
    -built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"
    -},compilerExtensions:[(a,n)=>{if(!a.beforeMatch)return
    -;if(a.starts)throw Error("beforeMatch cannot be used with starts")
    -;const i=Object.assign({},a);Object.keys(a).forEach((e=>{delete a[e]
    -})),a.begin=e(i.beforeMatch,e("(?=",i.begin,")")),a.starts={relevance:0,
    -contains:[Object.assign(i,{endsParent:!0})]},a.relevance=0,delete i.beforeMatch
    -}],contains:[a.COMMENT(/#'/,/$/,{contains:[{className:"doctag",
    -begin:"@examples",starts:{contains:[{begin:/\n/},{begin:/#'\s*(?=@[a-zA-Z]+)/,
    -endsParent:!0},{begin:/#'/,end:/$/,excludeBegin:!0}]}},{className:"doctag",
    -begin:"@param",end:/$/,contains:[{className:"variable",variants:[{begin:n},{
    -begin:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{className:"doctag",
    -begin:/@[a-zA-Z]+/},{className:"meta-keyword",begin:/\\[a-zA-Z]+/}]
    -}),a.HASH_COMMENT_MODE,{className:"string",contains:[a.BACKSLASH_ESCAPE],
    -variants:[a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',
    -relevance:0},{begin:"'",end:"'",relevance:0}]},{className:"number",relevance:0,
    -beforeMatch:/([^a-zA-Z0-9._])/,variants:[{
    -match:/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/},{
    -match:/0[xX][0-9a-fA-F]+([pP][+-]?\d+)?[Li]?/},{
    -match:/(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?[Li]?/}]},{begin:"%",end:"%"},{
    -begin:e(/[a-zA-Z][a-zA-Z_0-9]*/,"\\s+<-\\s+")},{begin:"`",end:"`",contains:[{
    -begin:/\\./}]}]}}})());
    -hljs.registerLanguage("ruby",(()=>{"use strict";function e(...e){
    -return e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null;var n
    -})).join("")}return n=>{
    -const a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",i={
    -keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor __FILE__",
    -built_in:"proc lambda",literal:"true false nil"},s={className:"doctag",
    -begin:"@[A-Za-z]+"},r={begin:"#<",end:">"},b=[n.COMMENT("#","$",{contains:[s]
    -}),n.COMMENT("^=begin","^=end",{contains:[s],relevance:10
    -}),n.COMMENT("^__END__","\\n$")],c={className:"subst",begin:/#\{/,end:/\}/,
    -keywords:i},t={className:"string",contains:[n.BACKSLASH_ESCAPE,c],variants:[{
    -begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,
    -end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{
    -begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,
    -end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{
    -begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{
    -begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{
    -begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{
    -begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{
    -begin:/<<[-~]?'?(\w+)\n(?:[^\n]*\n)*?\s*\1\b/,returnBegin:!0,contains:[{
    -begin:/<<[-~]?'?/},n.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,
    -contains:[n.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",d={className:"number",
    -relevance:0,variants:[{
    -begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{
    -begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"
    -},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{
    -begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{
    -begin:"\\b0(_?[0-7])+r?i?\\b"}]},l={className:"params",begin:"\\(",end:"\\)",
    -endsParent:!0,keywords:i},o=[t,{className:"class",beginKeywords:"class module",
    -end:"$|;",illegal:/=/,contains:[n.inherit(n.TITLE_MODE,{
    -begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|!)?"}),{begin:"<\\s*",contains:[{
    -begin:"("+n.IDENT_RE+"::)?"+n.IDENT_RE,relevance:0}]}].concat(b)},{
    -className:"function",begin:e(/def\s+/,(_=a+"\\s*(\\(|;|$)",e("(?=",_,")"))),
    -relevance:0,keywords:"def",end:"$|;",contains:[n.inherit(n.TITLE_MODE,{begin:a
    -}),l].concat(b)},{begin:n.IDENT_RE+"::"},{className:"symbol",
    -begin:n.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",
    -begin:":(?!\\s)",contains:[t,{begin:a}],relevance:0},d,{className:"variable",
    -begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{
    -className:"params",begin:/\|/,end:/\|/,relevance:0,keywords:i},{
    -begin:"("+n.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{
    -className:"regexp",contains:[n.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{
    -begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",
    -end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]
    -}].concat(r,b),relevance:0}].concat(r,b);var _;c.contains=o,l.contains=o
    -;const E=[{begin:/^\s*=>/,starts:{end:"$",contains:o}},{className:"meta",
    -begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",
    -starts:{end:"$",contains:o}}];return b.unshift(r),{name:"Ruby",
    -aliases:["rb","gemspec","podspec","thor","irb"],keywords:i,illegal:/\/\*/,
    -contains:[n.SHEBANG({binary:"ruby"})].concat(E).concat(b).concat(o)}}})());
    -hljs.registerLanguage("rust",(()=>{"use strict";return e=>{
    -const n="([ui](8|16|32|64|128|size)|f(32|64))?",t="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!"
    -;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",
    -keyword:"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield",
    -literal:"true false Some None Ok Err",built_in:t},illegal:"</",
    -contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]
    -}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{
    -className:"string",variants:[{begin:/r(#*)"(.|\n)*?"\1(?!#)/},{
    -begin:/b?'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/}]},{className:"symbol",
    -begin:/'[a-zA-Z_][a-zA-Z0-9_]*/},{className:"number",variants:[{
    -begin:"\\b0b([01_]+)"+n},{begin:"\\b0o([0-7_]+)"+n},{
    -begin:"\\b0x([A-Fa-f0-9_]+)"+n},{
    -begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+n}],relevance:0},{
    -className:"function",beginKeywords:"fn",end:"(\\(|<)",excludeEnd:!0,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"meta",begin:"#!?\\[",end:"\\]",
    -contains:[{className:"meta-string",begin:/"/,end:/"/}]},{className:"class",
    -beginKeywords:"type",end:";",contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{
    -endsParent:!0})],illegal:"\\S"},{className:"class",
    -beginKeywords:"trait enum struct union",end:/\{/,
    -contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{endsParent:!0})],illegal:"[\\w\\d]"
    -},{begin:e.IDENT_RE+"::",keywords:{built_in:t}},{begin:"->"}]}}})());
    -hljs.registerLanguage("scss",(()=>{"use strict"
    -;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse()
    -;return a=>{const n=(e=>({IMPORTANT:{className:"meta",begin:"!important"},
    -HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},
    -ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,
    -illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}
    -}))(a),l=o,s=i,d="@[a-z-]+",c={className:"variable",
    -begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"};return{name:"SCSS",case_insensitive:!0,
    -illegal:"[=/|']",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{
    -className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{
    -className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0
    -},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",
    -begin:"\\b("+e.join("|")+")\\b",relevance:0},{className:"selector-pseudo",
    -begin:":("+s.join("|")+")"},{className:"selector-pseudo",
    -begin:"::("+l.join("|")+")"},c,{begin:/\(/,end:/\)/,contains:[a.CSS_NUMBER_MODE]
    -},{className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{
    -begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"
    -},{begin:":",end:";",
    -contains:[c,n.HEXCOLOR,a.CSS_NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.IMPORTANT]
    -},{begin:"@(page|font-face)",lexemes:d,keywords:"@page @font-face"},{begin:"@",
    -end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,
    -keyword:"and or not only",attribute:t.join(" ")},contains:[{begin:d,
    -className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"
    -},c,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.HEXCOLOR,a.CSS_NUMBER_MODE]}]}}
    -})());
    -hljs.registerLanguage("shell",(()=>{"use strict";return s=>({
    -name:"Shell Session",aliases:["console"],contains:[{className:"meta",
    -begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#]/,starts:{end:/[^\\](?=\s*$)/,
    -subLanguage:"bash"}}]})})());
    -hljs.registerLanguage("sql",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function r(...r){
    -return r.map((r=>e(r))).join("")}function t(...r){
    -return"("+r.map((r=>e(r))).join("|")+")"}return e=>{
    -const n=e.COMMENT("--","$"),a=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],s=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],o=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],c=s,l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update   ","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!s.includes(e))),u={
    -begin:r(/\b/,t(...c),/\s*\(/),keywords:{built_in:c}};return{name:"SQL",
    -case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,
    -keyword:((e,{exceptions:r,when:t}={})=>{const n=t
    -;return r=r||[],e.map((e=>e.match(/\|\d+$/)||r.includes(e)?e:n(e)?e+"|0":e))
    -})(l,{when:e=>e.length<3}),literal:a,type:i,
    -built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]
    -},contains:[{begin:t(...o),keywords:{$pattern:/[\w\.]+/,keyword:l.concat(o),
    -literal:a,type:i}},{className:"type",
    -begin:t("double precision","large object","with timezone","without timezone")
    -},u,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{
    -begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{
    -begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"operator",
    -begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}})());
    -hljs.registerLanguage("swift",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")}
    -function a(...n){return n.map((n=>e(n))).join("")}function t(...n){
    -return"("+n.map((n=>e(n))).join("|")+")"}
    -const i=e=>a(/\b/,e,/\w$/.test(e)?/\b/:/\B/),s=["Protocol","Type"].map(i),u=["init","self"].map(i),c=["Any","Self"],r=["associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],o=["false","nil","true"],l=["assignment","associativity","higherThan","left","lowerThan","none","right"],m=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],d=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],p=t(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),F=t(p,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),b=a(p,F,"*"),h=t(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),f=t(h,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),w=a(h,f,"*"),y=a(/[A-Z]/,f,"*"),g=["autoclosure",a(/convention\(/,t("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",a(/objc\(/,w,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","testable","UIApplicationMain","unknown","usableFromInline"],E=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"]
    -;return e=>{const p={match:/\s+/,relevance:0},h=e.COMMENT("/\\*","\\*/",{
    -contains:["self"]}),v=[e.C_LINE_COMMENT_MODE,h],N={className:"keyword",
    -begin:a(/\./,n(t(...s,...u))),end:t(...s,...u),excludeBegin:!0},A={
    -match:a(/\./,t(...r)),relevance:0
    -},C=r.filter((e=>"string"==typeof e)).concat(["_|0"]),_={variants:[{
    -className:"keyword",
    -match:t(...r.filter((e=>"string"!=typeof e)).concat(c).map(i),...u)}]},D={
    -$pattern:t(/\b\w+/,/#\w+/),keyword:C.concat(m),literal:o},B=[N,A,_],k=[{
    -match:a(/\./,t(...d)),relevance:0},{className:"built_in",
    -match:a(/\b/,t(...d),/(?=\()/)}],M={match:/->/,relevance:0},S=[M,{
    -className:"operator",relevance:0,variants:[{match:b},{match:`\\.(\\.|${F})+`}]
    -}],x="([0-9a-fA-F]_*)+",I={className:"number",relevance:0,variants:[{
    -match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{
    -match:`\\b0x(${x})(\\.(${x}))?([pP][+-]?(([0-9]_*)+))?\\b`},{
    -match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},O=(e="")=>({
    -className:"subst",variants:[{match:a(/\\/,e,/[0\\tnr"']/)},{
    -match:a(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),T=(e="")=>({className:"subst",
    -match:a(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),L=(e="")=>({className:"subst",
    -label:"interpol",begin:a(/\\/,e,/\(/),end:/\)/}),P=(e="")=>({begin:a(e,/"""/),
    -end:a(/"""/,e),contains:[O(e),T(e),L(e)]}),$=(e="")=>({begin:a(e,/"/),
    -end:a(/"/,e),contains:[O(e),L(e)]}),K={className:"string",
    -variants:[P(),P("#"),P("##"),P("###"),$(),$("#"),$("##"),$("###")]},j={
    -match:a(/`/,w,/`/)},z=[j,{className:"variable",match:/\$\d+/},{
    -className:"variable",match:`\\$${f}+`}],q=[{match:/(@|#)available/,
    -className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:E,
    -contains:[...S,I,K]}]}},{className:"keyword",match:a(/@/,t(...g))},{
    -className:"meta",match:a(/@/,w)}],U={match:n(/\b[A-Z]/),relevance:0,contains:[{
    -className:"type",
    -match:a(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,f,"+")
    -},{className:"type",match:y,relevance:0},{match:/[?!]+/,relevance:0},{
    -match:/\.\.\./,relevance:0},{match:a(/\s+&\s+/,n(y)),relevance:0}]},Z={
    -begin:/</,end:/>/,keywords:D,contains:[...v,...B,...q,M,U]};U.contains.push(Z)
    -;const G={begin:/\(/,end:/\)/,relevance:0,keywords:D,contains:["self",{
    -match:a(w,/\s*:/),keywords:"_|0",relevance:0
    -},...v,...B,...k,...S,I,K,...z,...q,U]},H={beginKeywords:"func",contains:[{
    -className:"title",match:t(j.match,w,b),endsParent:!0,relevance:0},p]},R={
    -begin:/</,end:/>/,contains:[...v,U]},V={begin:/\(/,end:/\)/,keywords:D,
    -contains:[{begin:t(n(a(w,/\s*:/)),n(a(w,/\s+/,w,/\s*:/))),end:/:/,relevance:0,
    -contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:w}]
    -},...v,...B,...S,I,K,...q,U,G],endsParent:!0,illegal:/["']/},W={
    -className:"function",match:n(/\bfunc\b/),contains:[H,R,V,p],illegal:[/\[/,/%/]
    -},X={className:"function",match:/\b(subscript|init[?!]?)\s*(?=[<(])/,keywords:{
    -keyword:"subscript init init? init!",$pattern:/\w+[?!]?/},contains:[R,V,p],
    -illegal:/\[|%/},J={beginKeywords:"operator",end:e.MATCH_NOTHING_RE,contains:[{
    -className:"title",match:b,endsParent:!0,relevance:0}]},Q={
    -beginKeywords:"precedencegroup",end:e.MATCH_NOTHING_RE,contains:[{
    -className:"title",match:y,relevance:0},{begin:/{/,end:/}/,relevance:0,
    -endsParent:!0,keywords:[...l,...o],contains:[U]}]};for(const e of K.variants){
    -const n=e.contains.find((e=>"interpol"===e.label));n.keywords=D
    -;const a=[...B,...k,...S,I,K,...z];n.contains=[...a,{begin:/\(/,end:/\)/,
    -contains:["self",...a]}]}return{name:"Swift",keywords:D,contains:[...v,W,X,{
    -className:"class",beginKeywords:"struct protocol class extension enum",
    -end:"\\{",excludeEnd:!0,keywords:D,contains:[e.inherit(e.TITLE_MODE,{
    -begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...B]},J,Q,{
    -beginKeywords:"import",end:/$/,contains:[...v],relevance:0
    -},...B,...k,...S,I,K,...z,...q,U,G]}}})());
    -hljs.registerLanguage("typescript",(()=>{"use strict"
    -;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
    -;function t(e){return r("(?=",e,")")}function r(...e){return e.map((e=>{
    -return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return i=>{
    -const c={$pattern:e,
    -keyword:n.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]),
    -literal:a,
    -built_in:s.concat(["any","void","number","boolean","string","object","never","enum"])
    -},o={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},l=(e,n,a)=>{
    -const s=e.contains.findIndex((e=>e.label===n))
    -;if(-1===s)throw Error("can not find mode to replace");e.contains.splice(s,1,a)
    -},b=(i=>{const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/,
    -end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{
    -const a=e[0].length+e.index,s=e.input[a];"<"!==s?">"===s&&(((e,{after:n})=>{
    -const a="</"+e[0].slice(1);return-1!==e.input.indexOf(a,n)})(e,{after:a
    -})||n.ignoreMatch()):n.ignoreMatch()}},l={$pattern:e,keyword:n,literal:a,
    -built_in:s},b="\\.([0-9](_?[0-9])*)",d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",g={
    -className:"number",variants:[{
    -begin:`(\\b(${d})((${b})|\\.)?|(${b}))[eE][+-]?([0-9](_?[0-9])*)\\b`},{
    -begin:`\\b(${d})\\b((${b})\\b|\\.)?|(${b})\\b`},{
    -begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
    -begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
    -begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
    -begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",
    -end:"\\}",keywords:l,contains:[]},E={begin:"html`",end:"",starts:{end:"`",
    -returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},m={
    -begin:"css`",end:"",starts:{end:"`",returnEnd:!1,
    -contains:[i.BACKSLASH_ESCAPE,u],subLanguage:"css"}},y={className:"string",
    -begin:"`",end:"`",contains:[i.BACKSLASH_ESCAPE,u]},_={className:"comment",
    -variants:[i.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
    -className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",
    -end:"\\}",relevance:0},{className:"variable",begin:c+"(?=\\s*(-)|$)",
    -endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
    -}),i.C_BLOCK_COMMENT_MODE,i.C_LINE_COMMENT_MODE]
    -},p=[i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,E,m,y,g,i.REGEXP_MODE]
    -;u.contains=p.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(p)
    -});const N=[].concat(_,u.contains),f=N.concat([{begin:/\(/,end:/\)/,keywords:l,
    -contains:["self"].concat(N)}]),A={className:"params",begin:/\(/,end:/\)/,
    -excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f};return{name:"Javascript",
    -aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:f},
    -illegal:/#(?![$_A-z])/,contains:[i.SHEBANG({label:"shebang",binary:"node",
    -relevance:5}),{label:"use_strict",className:"meta",relevance:10,
    -begin:/^\s*['"]use (strict|asm)['"]/
    -},i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,E,m,y,_,g,{
    -begin:r(/[{,\n]\s*/,t(r(/(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/,c+"\\s*:"))),
    -relevance:0,contains:[{className:"attr",begin:c+t("\\s*:"),relevance:0}]},{
    -begin:"("+i.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
    -keywords:"return throw case",contains:[_,i.REGEXP_MODE,{className:"function",
    -begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+i.UNDERSCORE_IDENT_RE+")\\s*=>",
    -returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{
    -begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0
    -},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}]
    -},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{
    -variants:[{begin:"<>",end:"</>"},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,
    -end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,
    -contains:["self"]}]}],relevance:0},{className:"function",
    -beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l,
    -contains:["self",i.inherit(i.TITLE_MODE,{begin:c}),A],illegal:/%/},{
    -beginKeywords:"while if switch catch for"},{className:"function",
    -begin:i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
    -returnBegin:!0,contains:[A,i.inherit(i.TITLE_MODE,{begin:c})]},{variants:[{
    -begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class",
    -beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{
    -beginKeywords:"extends"},i.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/,
    -end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:c}),"self",A]
    -},{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set",
    -contains:[i.inherit(i.TITLE_MODE,{begin:c}),{begin:/\(\)/},A]},{begin:/\$[(.]/}]
    -}})(i)
    -;return Object.assign(b.keywords,c),b.exports.PARAMS_CONTAINS.push(o),b.contains=b.contains.concat([o,{
    -beginKeywords:"namespace",end:/\{/,excludeEnd:!0},{beginKeywords:"interface",
    -end:/\{/,excludeEnd:!0,keywords:"interface extends"
    -}]),l(b,"shebang",i.SHEBANG()),l(b,"use_strict",{className:"meta",relevance:10,
    -begin:/^\s*['"]use strict['"]/
    -}),b.contains.find((e=>"function"===e.className)).relevance=0,Object.assign(b,{
    -name:"TypeScript",aliases:["ts","tsx"]}),b}})());
    -hljs.registerLanguage("vbnet",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(...n){
    -return n.map((n=>e(n))).join("")}function t(...n){
    -return"("+n.map((n=>e(n))).join("|")+")"}return e=>{
    -const a=/\d{1,2}\/\d{1,2}\/\d{4}/,i=/\d{4}-\d{1,2}-\d{1,2}/,s=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,o={
    -className:"literal",variants:[{begin:n(/# */,t(i,a),/ *#/)},{
    -begin:n(/# */,r,/ *#/)},{begin:n(/# */,s,/ *#/)},{
    -begin:n(/# */,t(i,a),/ +/,t(s,r),/ *#/)}]},l=e.COMMENT(/'''/,/$/,{contains:[{
    -className:"doctag",begin:/<\/?/,end:/>/}]}),c=e.COMMENT(null,/$/,{variants:[{
    -begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",
    -aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{
    -keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",
    -built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",
    -type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",
    -literal:"true false nothing"},
    -illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{
    -className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,
    -end:/"/,illegal:/\n/,contains:[{begin:/""/}]},o,{className:"number",relevance:0,
    -variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/
    -},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{
    -begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{
    -className:"label",begin:/^\w+:/},l,c,{className:"meta",
    -begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,
    -end:/$/,keywords:{
    -"meta-keyword":"const disable else elseif enable end externalsource if region then"
    -},contains:[c]}]}}})());
    -hljs.registerLanguage("yaml",(()=>{"use strict";return e=>{
    -var n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={
    -className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/
    -},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",
    -variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(s,{
    -variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={
    -end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},t={begin:/\{/,
    -end:/\}/,contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]",
    -contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{
    -begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{
    -begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$",
    -relevance:10},{className:"string",
    -begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{
    -begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,
    -relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",
    -begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a
    -},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",
    -begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",
    -relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{
    -className:"number",
    -begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"
    -},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},t,g,s],r=[...b]
    -;return r.pop(),r.push(i),l.contains=r,{name:"YAML",case_insensitive:!0,
    -aliases:["yml"],contains:b}}})());
    \ No newline at end of file
    diff --git a/metrics-complete-branch-report-Final-htmlReport/js/highlightjs-line-numbers.min.js b/metrics-complete-branch-report-Final-htmlReport/js/highlightjs-line-numbers.min.js
    deleted file mode 100644
    index 8548576704..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/js/highlightjs-line-numbers.min.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -/*
    -The MIT License (MIT)
    -
    -Copyright (c) 2017 Yauheni Pakala
    -
    -Permission is hereby granted, free of charge, to any person obtaining a copy
    -of this software and associated documentation files (the "Software"), to deal
    -in the Software without restriction, including without limitation the rights
    -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    -copies of the Software, and to permit persons to whom the Software is
    -furnished to do so, subject to the following conditions:
    -
    -The above copyright notice and this permission notice shall be included in all
    -copies or substantial portions of the Software.
    -
    -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    -SOFTWARE.
    - */
    -!function(r,o){"use strict";var e,i="hljs-ln",l="hljs-ln-line",h="hljs-ln-code",s="hljs-ln-numbers",c="hljs-ln-n",m="data-line-number",a=/\r\n|\r|\n/g;function u(e){for(var n=e.toString(),t=e.anchorNode;"TD"!==t.nodeName;)t=t.parentNode;for(var r=e.focusNode;"TD"!==r.nodeName;)r=r.parentNode;var o=parseInt(t.dataset.lineNumber),a=parseInt(r.dataset.lineNumber);if(o==a)return n;var i,l=t.textContent,s=r.textContent;for(a<o&&(i=o,o=a,a=i,i=l,l=s,s=i);0!==n.indexOf(l);)l=l.slice(1);for(;-1===n.lastIndexOf(s);)s=s.slice(0,-1);for(var c=l,u=function(e){for(var n=e;"TABLE"!==n.nodeName;)n=n.parentNode;return n}(t),d=o+1;d<a;++d){var f=p('.{0}[{1}="{2}"]',[h,m,d]);c+="\n"+u.querySelector(f).textContent}return c+="\n"+s}function n(e){try{var n=o.querySelectorAll("code.hljs,code.nohighlight");for(var t in n)n.hasOwnProperty(t)&&(n[t].classList.contains("nohljsln")||d(n[t],e))}catch(e){r.console.error("LineNumbers error: ",e)}}function d(e,n){"object"==typeof e&&r.setTimeout(function(){e.innerHTML=f(e,n)},0)}function f(e,n){var t,r,o=(t=e,{singleLine:function(e){return!!e.singleLine&&e.singleLine}(r=(r=n)||{}),startFrom:function(e,n){var t=1;isFinite(n.startFrom)&&(t=n.startFrom);var r=function(e,n){return e.hasAttribute(n)?e.getAttribute(n):null}(e,"data-ln-start-from");return null!==r&&(t=function(e,n){if(!e)return n;var t=Number(e);return isFinite(t)?t:n}(r,1)),t}(t,r)});return function e(n){var t=n.childNodes;for(var r in t){var o;t.hasOwnProperty(r)&&(o=t[r],0<(o.textContent.trim().match(a)||[]).length&&(0<o.childNodes.length?e(o):v(o.parentNode)))}}(e),function(e,n){var t=g(e);""===t[t.length-1].trim()&&t.pop();if(1<t.length||n.singleLine){for(var r="",o=0,a=t.length;o<a;o++)r+=p('<tr><td class="{0} {1}" {3}="{5}"><div class="{2}" {3}="{5}"></div></td><td class="{0} {4}" {3}="{5}">{6}</td></tr>',[l,s,c,m,h,o+n.startFrom,0<t[o].length?t[o]:" "]);return p('<table class="{0}">{1}</table>',[i,r])}return e}(e.innerHTML,o)}function v(e){var n=e.className;if(/hljs-/.test(n)){for(var t=g(e.innerHTML),r=0,o="";r<t.length;r++){o+=p('<span class="{0}">{1}</span>\n',[n,0<t[r].length?t[r]:" "])}e.innerHTML=o.trim()}}function g(e){return 0===e.length?[]:e.split(a)}function p(e,t){return e.replace(/\{(\d+)\}/g,function(e,n){return void 0!==t[n]?t[n]:e})}r.hljs?(r.hljs.initLineNumbersOnLoad=function(e){"interactive"===o.readyState||"complete"===o.readyState?n(e):r.addEventListener("DOMContentLoaded",function(){n(e)})},r.hljs.lineNumbersBlock=d,r.hljs.lineNumbersValue=function(e,n){if("string"!=typeof e)return;var t=document.createElement("code");return t.innerHTML=e,f(t,n)},(e=o.createElement("style")).type="text/css",e.innerHTML=p(".{0}{border-collapse:collapse}.{0} td{padding:0}.{1}:before{content:attr({2})}",[i,c,m]),o.getElementsByTagName("head")[0].appendChild(e)):r.console.error("highlight.js not detected!"),document.addEventListener("copy",function(e){var n,t=window.getSelection();!function(e){for(var n=e;n;){if(n.className&&-1!==n.className.indexOf("hljs-ln-code"))return 1;n=n.parentNode}}(t.anchorNode)||(n=-1!==window.navigator.userAgent.indexOf("Edge")?u(t):t.toString(),e.clipboardData.setData("text/plain",n),e.preventDefault())})}(window,document);
    \ No newline at end of file
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index.html
    deleted file mode 100644
    index ca7c49758a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 204e22f774..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 67b0b7d335..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 697f08edf5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 7be19bda33..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 5779106f81..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index abe668aecc..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index d5d0b517fd..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 5e234bdf4c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index a48284a0df..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,1287 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (18/138)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1.html
    deleted file mode 100644
    index 3ccec9c910..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1.html
    +++ /dev/null
    @@ -1,178 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;import java.util.concurrent.atomic.AtomicReference;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Gauge} implementation which caches its value for a period of time.
    -&nbsp; *
    -&nbsp; * @param &lt;T&gt; the type of the gauge&#39;s value
    -&nbsp; */
    -&nbsp;public abstract class CachedGauge&lt;T&gt; implements Gauge&lt;T&gt; {
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final AtomicLong reloadAt;
    -&nbsp;    private final long timeoutNS;
    -&nbsp;    private final AtomicReference&lt;T&gt; value;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new cached gauge with the given timeout period.
    -&nbsp;     *
    -&nbsp;     * @param timeout     the timeout
    -&nbsp;     * @param timeoutUnit the unit of {@code timeout}
    -&nbsp;     */
    -&nbsp;    protected CachedGauge(long timeout, TimeUnit timeoutUnit) {
    -<b class="fc">&nbsp;        this(Clock.defaultClock(), timeout, timeoutUnit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new cached gauge with the given clock and timeout period.
    -&nbsp;     *
    -&nbsp;     * @param clock       the clock used to calculate the timeout
    -&nbsp;     * @param timeout     the timeout
    -&nbsp;     * @param timeoutUnit the unit of {@code timeout}
    -&nbsp;     */
    -<b class="fc">&nbsp;    protected CachedGauge(Clock clock, long timeout, TimeUnit timeoutUnit) {</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.reloadAt = new AtomicLong(clock.getTick());</b>
    -<b class="fc">&nbsp;        this.timeoutNS = timeoutUnit.toNanos(timeout);</b>
    -<b class="fc">&nbsp;        this.value = new AtomicReference&lt;&gt;();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Loads the value and returns it.
    -&nbsp;     *
    -&nbsp;     * @return the new value
    -&nbsp;     */
    -&nbsp;    protected abstract T loadValue();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public T getValue() {
    -<b class="fc">&nbsp;        T currentValue = this.value.get();</b>
    -<b class="fc">&nbsp;        if (shouldLoad() || currentValue == null) {</b>
    -<b class="fc">&nbsp;            T newValue = loadValue();</b>
    -<b class="fc">&nbsp;            if (!this.value.compareAndSet(currentValue, newValue)) {</b>
    -<b class="fc">&nbsp;                return this.value.get();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return newValue;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return currentValue;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private boolean shouldLoad() {
    -&nbsp;        for ( ;; ) {
    -<b class="fc">&nbsp;            final long time = clock.getTick();</b>
    -<b class="fc">&nbsp;            final long current = reloadAt.get();</b>
    -<b class="fc">&nbsp;            if (current &gt; time) {</b>
    -<b class="fc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (reloadAt.compareAndSet(current, time + timeoutNS)) {</b>
    -<b class="fc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-10.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-10.html
    deleted file mode 100644
    index 6726234251..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-10.html
    +++ /dev/null
    @@ -1,203 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedThreadFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedThreadFactory (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedThreadFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedThreadFactory$InstrumentedRunnable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link ThreadFactory} that monitors the number of threads created, running and terminated.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    -&nbsp; * &quot;your-thread-delegate.created&quot;, &quot;your-thread-delegate.running&quot;, etc.
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedThreadFactory implements ThreadFactory {</b>
    -<b class="fc">&nbsp;    private static final AtomicLong NAME_COUNTER = new AtomicLong();</b>
    -&nbsp;
    -&nbsp;    private final ThreadFactory delegate;
    -&nbsp;    private final Meter created;
    -&nbsp;    private final Counter running;
    -&nbsp;    private final Meter terminated;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps a {@link ThreadFactory}, uses a default auto-generated name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ThreadFactory} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     */
    -&nbsp;    public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(delegate, registry, &quot;instrumented-thread-delegate-&quot; + NAME_COUNTER.incrementAndGet());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps a {@link ThreadFactory} with an explicit name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ThreadFactory} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     * @param name     name for this delegate.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry, String name) {</b>
    -<b class="fc">&nbsp;        this.delegate = delegate;</b>
    -<b class="fc">&nbsp;        this.created = registry.meter(MetricRegistry.name(name, &quot;created&quot;));</b>
    -<b class="fc">&nbsp;        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</b>
    -<b class="fc">&nbsp;        this.terminated = registry.meter(MetricRegistry.name(name, &quot;terminated&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Thread newThread(Runnable runnable) {
    -<b class="fc">&nbsp;        Runnable wrappedRunnable = new InstrumentedRunnable(runnable);</b>
    -<b class="fc">&nbsp;        Thread thread = delegate.newThread(wrappedRunnable);</b>
    -<b class="fc">&nbsp;        created.mark();</b>
    -<b class="fc">&nbsp;        return thread;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedRunnable implements Runnable {
    -&nbsp;        private final Runnable task;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedRunnable(Runnable task) {</b>
    -<b class="fc">&nbsp;            this.task = task;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void run() {
    -<b class="fc">&nbsp;            running.inc();</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                task.run();</b>
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                terminated.mark();</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-11.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-11.html
    deleted file mode 100644
    index 9cc4c087ad..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-11.html
    +++ /dev/null
    @@ -1,441 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > LockFreeExponentiallyDecayingReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: LockFreeExponentiallyDecayingReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">LockFreeExponentiallyDecayingReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (23/23)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">LockFreeExponentiallyDecayingReservoir$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">LockFreeExponentiallyDecayingReservoir$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (15/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">LockFreeExponentiallyDecayingReservoir$RescalingConsumer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">LockFreeExponentiallyDecayingReservoir$State</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.WeightedSnapshot.WeightedSample;
    -&nbsp;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.Objects;
    -&nbsp;import java.util.concurrent.ConcurrentSkipListMap;
    -&nbsp;import java.util.concurrent.ThreadLocalRandom;
    -&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    -&nbsp;import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
    -&nbsp;import java.util.function.BiConsumer;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A lock-free exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al&#39;s
    -&nbsp; * forward-decaying priority reservoir sampling method to produce a statistically representative
    -&nbsp; * sampling reservoir, exponentially biased towards newer entries.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf&quot;&gt;
    -&nbsp; * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE &#39;09:
    -&nbsp; * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)&lt;/a&gt;
    -&nbsp; *
    -&nbsp; * {@link LockFreeExponentiallyDecayingReservoir} is based closely on the {@link ExponentiallyDecayingReservoir},
    -&nbsp; * however it provides looser guarantees while completely avoiding locks.
    -&nbsp; *
    -&nbsp; * Looser guarantees:
    -&nbsp; * &lt;ul&gt;
    -&nbsp; *     &lt;li&gt; Updates which occur concurrently with rescaling may be discarded if the orphaned state node is updated after
    -&nbsp; *     rescale has replaced it. This condition has a greater probability as the rescale interval is reduced due to the
    -&nbsp; *     increased frequency of rescaling. {@link #rescaleThresholdNanos} values below 30 seconds are not recommended.
    -&nbsp; *     &lt;li&gt; Given a small rescale threshold, updates may attempt to rescale into a new bucket, but lose the CAS race
    -&nbsp; *     and update into a newer bucket than expected. In these cases the measurement weight is reduced accordingly.
    -&nbsp; *     &lt;li&gt;In the worst case, all concurrent threads updating the reservoir may attempt to rescale rather than
    -&nbsp; *     a single thread holding an exclusive write lock. It&#39;s expected that the configuration is set such that
    -&nbsp; *     rescaling is substantially less common than updating at peak load. Even so, when size is reasonably small
    -&nbsp; *     it can be more efficient to rescale than to park and context switch.
    -&nbsp; * &lt;/ul&gt;
    -&nbsp; *
    -&nbsp; * @author &lt;a href=&quot;mailto:ckozak@ckozak.net&quot;&gt;Carter Kozak&lt;/a&gt;
    -&nbsp; */
    -<b class="fc">&nbsp;public final class LockFreeExponentiallyDecayingReservoir implements Reservoir {</b>
    -&nbsp;
    -&nbsp;    private static final double SECONDS_PER_NANO = .000_000_001D;
    -<b class="fc">&nbsp;    private static final AtomicReferenceFieldUpdater&lt;LockFreeExponentiallyDecayingReservoir, State&gt; stateUpdater =</b>
    -<b class="fc">&nbsp;            AtomicReferenceFieldUpdater.newUpdater(LockFreeExponentiallyDecayingReservoir.class, State.class, &quot;state&quot;);</b>
    -&nbsp;
    -&nbsp;    private final int size;
    -&nbsp;    private final long rescaleThresholdNanos;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    private volatile State state;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final class State {</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private static final AtomicIntegerFieldUpdater&lt;State&gt; countUpdater =</b>
    -<b class="fc">&nbsp;                AtomicIntegerFieldUpdater.newUpdater(State.class, &quot;count&quot;);</b>
    -&nbsp;
    -&nbsp;        private final double alphaNanos;
    -&nbsp;        private final int size;
    -&nbsp;        private final long startTick;
    -&nbsp;        // Count is updated after samples are successfully added to the map.
    -&nbsp;        private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    -&nbsp;
    -&nbsp;        private volatile int count;
    -&nbsp;
    -&nbsp;        State(
    -&nbsp;                double alphaNanos,
    -&nbsp;                int size,
    -&nbsp;                long startTick,
    -&nbsp;                int count,
    -<b class="fc">&nbsp;                ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values) {</b>
    -<b class="fc">&nbsp;            this.alphaNanos = alphaNanos;</b>
    -<b class="fc">&nbsp;            this.size = size;</b>
    -<b class="fc">&nbsp;            this.startTick = startTick;</b>
    -<b class="fc">&nbsp;            this.values = values;</b>
    -<b class="fc">&nbsp;            this.count = count;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void update(long value, long timestampNanos) {
    -<b class="fc">&nbsp;            double itemWeight = weight(timestampNanos - startTick);</b>
    -<b class="fc">&nbsp;            double priority = itemWeight / ThreadLocalRandom.current().nextDouble();</b>
    -<b class="fc">&nbsp;            boolean mapIsFull = count &gt;= size;</b>
    -<b class="fc">&nbsp;            if (!mapIsFull || values.firstKey() &lt; priority) {</b>
    -<b class="fc">&nbsp;                addSample(priority, value, itemWeight, mapIsFull);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void addSample(double priority, long value, double itemWeight, boolean bypassIncrement) {
    -<b class="fc">&nbsp;            if (values.putIfAbsent(priority, new WeightedSample(value, itemWeight)) == null</b>
    -<b class="fc">&nbsp;                    &amp;&amp; (bypassIncrement || countUpdater.incrementAndGet(this) &gt; size)) {</b>
    -<b class="fc">&nbsp;                values.pollFirstEntry();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /* &quot;A common feature of the above techniques—indeed, the key technique that
    -&nbsp;         * allows us to track the decayed weights efficiently—is that they maintain
    -&nbsp;         * counts and other quantities based on g(ti ? L), and only scale by g(t ? L)
    -&nbsp;         * at query time. But while g(ti ?L)/g(t?L) is guaranteed to lie between zero
    -&nbsp;         * and one, the intermediate values of g(ti ? L) could become very large. For
    -&nbsp;         * polynomial functions, these values should not grow too large, and should be
    -&nbsp;         * effectively represented in practice by floating point values without loss of
    -&nbsp;         * precision. For exponential functions, these values could grow quite large as
    -&nbsp;         * new values of (ti ? L) become large, and potentially exceed the capacity of
    -&nbsp;         * common floating point types. However, since the values stored by the
    -&nbsp;         * algorithms are linear combinations of g values (scaled sums), they can be
    -&nbsp;         * rescaled relative to a new landmark. That is, by the analysis of exponential
    -&nbsp;         * decay in Section III-A, the choice of L does not affect the final result. We
    -&nbsp;         * can therefore multiply each value based on L by a factor of exp(??(L? ? L)),
    -&nbsp;         * and obtain the correct value as if we had instead computed relative to a new
    -&nbsp;         * landmark L? (and then use this new L? at query time). This can be done with
    -&nbsp;         * a linear pass over whatever data structure is being used.&quot;
    -&nbsp;         */
    -&nbsp;        State rescale(long newTick) {
    -<b class="fc">&nbsp;            long durationNanos = newTick - startTick;</b>
    -<b class="fc">&nbsp;            double scalingFactor = Math.exp(-alphaNanos * durationNanos);</b>
    -<b class="fc">&nbsp;            int newCount = 0;</b>
    -<b class="fc">&nbsp;            ConcurrentSkipListMap&lt;Double, WeightedSample&gt; newValues = new ConcurrentSkipListMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;            if (Double.compare(scalingFactor, 0) != 0) {</b>
    -<b class="fc">&nbsp;                RescalingConsumer consumer = new RescalingConsumer(scalingFactor, newValues);</b>
    -<b class="fc">&nbsp;                values.forEach(consumer);</b>
    -&nbsp;                // make sure the counter is in sync with the number of stored samples.
    -<b class="fc">&nbsp;                newCount = consumer.count;</b>
    -&nbsp;            }
    -&nbsp;            // It&#39;s possible that more values were added while the map was scanned, those with the
    -&nbsp;            // minimum priorities are removed.
    -<b class="fc">&nbsp;            while (newCount &gt; size) {</b>
    -<b class="nc">&nbsp;                Objects.requireNonNull(newValues.pollFirstEntry(), &quot;Expected an entry&quot;);</b>
    -<b class="nc">&nbsp;                newCount--;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new State(alphaNanos, size, newTick, newCount, newValues);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private double weight(long durationNanos) {
    -<b class="fc">&nbsp;            return Math.exp(alphaNanos * durationNanos);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final class RescalingConsumer implements BiConsumer&lt;Double, WeightedSample&gt; {</b>
    -&nbsp;        private final double scalingFactor;
    -&nbsp;        private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    -&nbsp;        private int count;
    -&nbsp;
    -<b class="fc">&nbsp;        RescalingConsumer(double scalingFactor, ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values) {</b>
    -<b class="fc">&nbsp;            this.scalingFactor = scalingFactor;</b>
    -<b class="fc">&nbsp;            this.values = values;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void accept(Double priority, WeightedSample sample) {
    -<b class="fc">&nbsp;            double newWeight = sample.weight * scalingFactor;</b>
    -<b class="fc">&nbsp;            if (Double.compare(newWeight, 0) == 0) {</b>
    -&nbsp;                return;
    -&nbsp;            }
    -<b class="fc">&nbsp;            WeightedSample newSample = new WeightedSample(sample.value, newWeight);</b>
    -<b class="fc">&nbsp;            if (values.put(priority * scalingFactor, newSample) == null) {</b>
    -<b class="fc">&nbsp;                count++;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private LockFreeExponentiallyDecayingReservoir(int size, double alpha, Duration rescaleThreshold, Clock clock) {</b>
    -&nbsp;        // Scale alpha to nanoseconds
    -<b class="fc">&nbsp;        double alphaNanos = alpha * SECONDS_PER_NANO;</b>
    -<b class="fc">&nbsp;        this.size = size;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.rescaleThresholdNanos = rescaleThreshold.toNanos();</b>
    -<b class="fc">&nbsp;        this.state = new State(alphaNanos, size, clock.getTick(), 0, new ConcurrentSkipListMap&lt;&gt;());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        return Math.min(size, state.count);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        long now = clock.getTick();</b>
    -<b class="fc">&nbsp;        rescaleIfNeeded(now).update(value, now);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private State rescaleIfNeeded(long currentTick) {
    -&nbsp;        // This method is optimized for size so the check may be quickly inlined.
    -&nbsp;        // Rescaling occurs substantially less frequently than the check itself.
    -<b class="fc">&nbsp;        State stateSnapshot = this.state;</b>
    -<b class="fc">&nbsp;        if (currentTick - stateSnapshot.startTick &gt;= rescaleThresholdNanos) {</b>
    -<b class="fc">&nbsp;            return doRescale(currentTick, stateSnapshot);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return stateSnapshot;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private State doRescale(long currentTick, State stateSnapshot) {
    -<b class="fc">&nbsp;        State newState = stateSnapshot.rescale(currentTick);</b>
    -<b class="fc">&nbsp;        if (stateUpdater.compareAndSet(this, stateSnapshot, newState)) {</b>
    -&nbsp;            // newState successfully installed
    -<b class="fc">&nbsp;            return newState;</b>
    -&nbsp;        }
    -&nbsp;        // Otherwise another thread has won the race and we can return the result of a volatile read.
    -&nbsp;        // It&#39;s possible this has taken so long that another update is required, however that&#39;s unlikely
    -&nbsp;        // and no worse than the standard race between a rescale and update.
    -<b class="fc">&nbsp;        return this.state;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        State stateSnapshot = rescaleIfNeeded(clock.getTick());</b>
    -<b class="fc">&nbsp;        return new WeightedSnapshot(stateSnapshot.values.values());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Builder builder() {
    -<b class="fc">&nbsp;        return new Builder();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * By default this uses a size of 1028 elements, which offers a 99.9%
    -&nbsp;     * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
    -&nbsp;     * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static final class Builder {</b>
    -&nbsp;        private static final int DEFAULT_SIZE = 1028;
    -&nbsp;        private static final double DEFAULT_ALPHA = 0.015D;
    -<b class="fc">&nbsp;        private static final Duration DEFAULT_RESCALE_THRESHOLD = Duration.ofHours(1);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private int size = DEFAULT_SIZE;</b>
    -<b class="fc">&nbsp;        private double alpha = DEFAULT_ALPHA;</b>
    -<b class="fc">&nbsp;        private Duration rescaleThreshold = DEFAULT_RESCALE_THRESHOLD;</b>
    -<b class="fc">&nbsp;        private Clock clock = Clock.defaultClock();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder() {}</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Maximum number of samples to keep in the reservoir. Once this number is reached older samples are
    -&nbsp;         * replaced (based on weight, with some amount of random jitter).
    -&nbsp;         */
    -&nbsp;        public Builder size(int value) {
    -<b class="fc">&nbsp;            if (value &lt;= 0) {</b>
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(</b>
    -&nbsp;                        &quot;LockFreeExponentiallyDecayingReservoir size must be positive: &quot; + value);
    -&nbsp;            }
    -<b class="fc">&nbsp;            this.size = value;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Alpha is the exponential decay factor. Higher values bias results more heavily toward newer values.
    -&nbsp;         */
    -&nbsp;        public Builder alpha(double value) {
    -<b class="fc">&nbsp;            this.alpha = value;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Interval at which this reservoir is rescaled.
    -&nbsp;         */
    -&nbsp;        public Builder rescaleThreshold(Duration value) {
    -<b class="nc">&nbsp;            this.rescaleThreshold = Objects.requireNonNull(value, &quot;rescaleThreshold is required&quot;);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Clock instance used for decay.
    -&nbsp;         */
    -&nbsp;        public Builder clock(Clock value) {
    -<b class="fc">&nbsp;            this.clock = Objects.requireNonNull(value, &quot;clock is required&quot;);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Reservoir build() {
    -<b class="fc">&nbsp;            return new LockFreeExponentiallyDecayingReservoir(size, alpha, rescaleThreshold, clock);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-12.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-12.html
    deleted file mode 100644
    index fa0376762b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-12.html
    +++ /dev/null
    @@ -1,222 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Meter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Meter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Meter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A meter metric which measures mean throughput and one-, five-, and fifteen-minute
    -&nbsp; * moving average throughputs.
    -&nbsp; *
    -&nbsp; * @see MovingAverages
    -&nbsp; */
    -&nbsp;public class Meter implements Metered {
    -&nbsp;
    -&nbsp;    private final MovingAverages movingAverages;
    -<b class="fc">&nbsp;    private final LongAdder count = new LongAdder();</b>
    -&nbsp;    private final long startTime;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Meter}.
    -&nbsp;     *
    -&nbsp;     * @param movingAverages the {@link MovingAverages} implementation to use
    -&nbsp;     */
    -&nbsp;    public Meter(MovingAverages movingAverages) {
    -<b class="nc">&nbsp;        this(movingAverages, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Meter}.
    -&nbsp;     */
    -&nbsp;    public Meter() {
    -<b class="fc">&nbsp;        this(Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Meter}.
    -&nbsp;     *
    -&nbsp;     * @param clock the clock to use for the meter ticks
    -&nbsp;     */
    -&nbsp;    public Meter(Clock clock) {
    -<b class="fc">&nbsp;        this(new ExponentialMovingAverages(clock), clock);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Meter}.
    -&nbsp;     *
    -&nbsp;     * @param movingAverages the {@link MovingAverages} implementation to use
    -&nbsp;     * @param clock          the clock to use for the meter ticks
    -&nbsp;     */
    -<b class="fc">&nbsp;    public Meter(MovingAverages movingAverages, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.movingAverages = movingAverages;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.startTime = this.clock.getTick();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Mark the occurrence of an event.
    -&nbsp;     */
    -&nbsp;    public void mark() {
    -<b class="fc">&nbsp;        mark(1);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Mark the occurrence of a given number of events.
    -&nbsp;     *
    -&nbsp;     * @param n the number of events
    -&nbsp;     */
    -&nbsp;    public void mark(long n) {
    -<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    -<b class="fc">&nbsp;        count.add(n);</b>
    -<b class="fc">&nbsp;        movingAverages.update(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public long getCount() {
    -<b class="fc">&nbsp;        return count.sum();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getFifteenMinuteRate() {
    -<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    -<b class="fc">&nbsp;        return movingAverages.getM15Rate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getFiveMinuteRate() {
    -<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    -<b class="fc">&nbsp;        return movingAverages.getM5Rate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getMeanRate() {
    -<b class="pc">&nbsp;        if (getCount() == 0) {</b>
    -<b class="fc">&nbsp;            return 0.0;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final double elapsed = clock.getTick() - startTime;</b>
    -<b class="fc">&nbsp;            return getCount() / elapsed * TimeUnit.SECONDS.toNanos(1);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getOneMinuteRate() {
    -<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    -<b class="fc">&nbsp;        return movingAverages.getM1Rate();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-13.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-13.html
    deleted file mode 100644
    index 8c9aad9fee..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-13.html
    +++ /dev/null
    @@ -1,137 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricAttribute</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricAttribute (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricAttribute</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Represents attributes of metrics which can be reported.
    -&nbsp; */
    -<b class="fc">&nbsp;public enum MetricAttribute {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    MAX(&quot;max&quot;),</b>
    -<b class="fc">&nbsp;    MEAN(&quot;mean&quot;),</b>
    -<b class="fc">&nbsp;    MIN(&quot;min&quot;),</b>
    -<b class="fc">&nbsp;    STDDEV(&quot;stddev&quot;),</b>
    -<b class="fc">&nbsp;    P50(&quot;p50&quot;),</b>
    -<b class="fc">&nbsp;    P75(&quot;p75&quot;),</b>
    -<b class="fc">&nbsp;    P95(&quot;p95&quot;),</b>
    -<b class="fc">&nbsp;    P98(&quot;p98&quot;),</b>
    -<b class="fc">&nbsp;    P99(&quot;p99&quot;),</b>
    -<b class="fc">&nbsp;    P999(&quot;p999&quot;),</b>
    -<b class="fc">&nbsp;    COUNT(&quot;count&quot;),</b>
    -<b class="fc">&nbsp;    M1_RATE(&quot;m1_rate&quot;),</b>
    -<b class="fc">&nbsp;    M5_RATE(&quot;m5_rate&quot;),</b>
    -<b class="fc">&nbsp;    M15_RATE(&quot;m15_rate&quot;),</b>
    -<b class="fc">&nbsp;    MEAN_RATE(&quot;mean_rate&quot;);</b>
    -&nbsp;
    -&nbsp;    private final String code;
    -&nbsp;
    -<b class="fc">&nbsp;    MetricAttribute(String code) {</b>
    -<b class="fc">&nbsp;        this.code = code;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getCode() {
    -<b class="fc">&nbsp;        return code;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-14.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-14.html
    deleted file mode 100644
    index aeb8a2f485..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-14.html
    +++ /dev/null
    @@ -1,136 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricFilter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A filter used to determine whether or not a metric should be reported, among other things.
    -&nbsp; */
    -&nbsp;public interface MetricFilter {
    -&nbsp;    /**
    -&nbsp;     * Matches all metrics, regardless of type or name.
    -&nbsp;     */
    -<b class="fc">&nbsp;    MetricFilter ALL = (name, metric) -&gt; true;</b>
    -&nbsp;
    -&nbsp;    static MetricFilter startsWith(String prefix) {
    -<b class="fc">&nbsp;        return (name, metric) -&gt; name.startsWith(prefix);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    static MetricFilter endsWith(String suffix) {
    -<b class="fc">&nbsp;        return (name, metric) -&gt; name.endsWith(suffix);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    static MetricFilter contains(String substring) {
    -<b class="fc">&nbsp;        return (name, metric) -&gt; name.contains(substring);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns {@code true} if the metric matches the filter; {@code false} otherwise.
    -&nbsp;     *
    -&nbsp;     * @param name   the metric&#39;s name
    -&nbsp;     * @param metric the metric
    -&nbsp;     * @return {@code true} if the metric matches the filter
    -&nbsp;     */
    -&nbsp;    boolean matches(String name, Metric metric);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-15.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-15.html
    deleted file mode 100644
    index 8d733eb502..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-15.html
    +++ /dev/null
    @@ -1,1046 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricRegistry</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricRegistry</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (41/41)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (108/116)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetricRegistry$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    36.4%
    -  </span>
    -  <span class="absValue">
    -    (4/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    36.4%
    -  </span>
    -  <span class="absValue">
    -    (4/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricSupplier</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.2%
    -  </span>
    -  <span class="absValue">
    -    (14/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.SortedSet;
    -&nbsp;import java.util.TreeMap;
    -&nbsp;import java.util.TreeSet;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.CopyOnWriteArrayList;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A registry of metric instances.
    -&nbsp; */
    -&nbsp;public class MetricRegistry implements MetricSet {
    -&nbsp;    /**
    -&nbsp;     * Concatenates elements to form a dotted name, eliding any null values or empty strings.
    -&nbsp;     *
    -&nbsp;     * @param name  the first element of the name
    -&nbsp;     * @param names the remaining elements of the name
    -&nbsp;     * @return {@code name} and {@code names} concatenated by periods
    -&nbsp;     */
    -&nbsp;    public static String name(String name, String... names) {
    -<b class="fc">&nbsp;        final StringBuilder builder = new StringBuilder();</b>
    -<b class="fc">&nbsp;        append(builder, name);</b>
    -<b class="pc">&nbsp;        if (names != null) {</b>
    -<b class="fc">&nbsp;            for (String s : names) {</b>
    -<b class="fc">&nbsp;                append(builder, s);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return builder.toString();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Concatenates a class name and elements to form a dotted name, eliding any null values or
    -&nbsp;     * empty strings.
    -&nbsp;     *
    -&nbsp;     * @param klass the first element of the name
    -&nbsp;     * @param names the remaining elements of the name
    -&nbsp;     * @return {@code klass} and {@code names} concatenated by periods
    -&nbsp;     */
    -&nbsp;    public static String name(Class&lt;?&gt; klass, String... names) {
    -<b class="fc">&nbsp;        return name(klass.getName(), names);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static void append(StringBuilder builder, String part) {
    -<b class="pc">&nbsp;        if (part != null &amp;&amp; !part.isEmpty()) {</b>
    -<b class="fc">&nbsp;            if (builder.length() &gt; 0) {</b>
    -<b class="fc">&nbsp;                builder.append(&#39;.&#39;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            builder.append(part);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final ConcurrentMap&lt;String, Metric&gt; metrics;
    -&nbsp;    private final List&lt;MetricRegistryListener&gt; listeners;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link MetricRegistry}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public MetricRegistry() {</b>
    -<b class="fc">&nbsp;        this.metrics = buildMap();</b>
    -<b class="fc">&nbsp;        this.listeners = new CopyOnWriteArrayList&lt;&gt;();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ConcurrentMap} implementation for use inside the registry. Override this
    -&nbsp;     * to create a {@link MetricRegistry} with space- or time-bounded metric lifecycles, for
    -&nbsp;     * example.
    -&nbsp;     *
    -&nbsp;     * @return a new {@link ConcurrentMap}
    -&nbsp;     */
    -&nbsp;    protected ConcurrentMap&lt;String, Metric&gt; buildMap() {
    -<b class="fc">&nbsp;        return new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Given a {@link Gauge}, registers it under the given name and returns it
    -&nbsp;     *
    -&nbsp;     * @param name the name of the gauge
    -&nbsp;     * @param &lt;T&gt;  the type of the gauge&#39;s value
    -&nbsp;     * @return the registered {@link Gauge}
    -&nbsp;     * @since 4.2.10
    -&nbsp;     */
    -&nbsp;    public &lt;T&gt; Gauge&lt;T&gt; registerGauge(String name, Gauge&lt;T&gt; metric) throws IllegalArgumentException {
    -<b class="fc">&nbsp;        return register(name, metric);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Given a {@link Metric}, registers it under the given name.
    -&nbsp;     *
    -&nbsp;     * @param name   the name of the metric
    -&nbsp;     * @param metric the metric
    -&nbsp;     * @param &lt;T&gt;    the type of the metric
    -&nbsp;     * @return {@code metric}
    -&nbsp;     * @throws IllegalArgumentException if the name is already registered or metric variable is null
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
    -&nbsp;    public &lt;T extends Metric&gt; T register(String name, T metric) throws IllegalArgumentException {
    -&nbsp;
    -<b class="pc">&nbsp;        if (metric == null) {</b>
    -<b class="fc">&nbsp;            throw new NullPointerException(&quot;metric == null&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        if (metric instanceof MetricRegistry) {</b>
    -<b class="fc">&nbsp;            final MetricRegistry childRegistry = (MetricRegistry) metric;</b>
    -<b class="fc">&nbsp;            final String childName = name;</b>
    -<b class="fc">&nbsp;            childRegistry.addListener(new MetricRegistryListener() {</b>
    -&nbsp;                @Override
    -&nbsp;                public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;                    register(name(childName, name), gauge);</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onGaugeRemoved(String name) {
    -<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onCounterAdded(String name, Counter counter) {
    -<b class="fc">&nbsp;                    register(name(childName, name), counter);</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onCounterRemoved(String name) {
    -<b class="fc">&nbsp;                    remove(name(childName, name));</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onHistogramAdded(String name, Histogram histogram) {
    -<b class="nc">&nbsp;                    register(name(childName, name), histogram);</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onHistogramRemoved(String name) {
    -<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onMeterAdded(String name, Meter meter) {
    -<b class="nc">&nbsp;                    register(name(childName, name), meter);</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onMeterRemoved(String name) {
    -<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onTimerAdded(String name, Timer timer) {
    -<b class="nc">&nbsp;                    register(name(childName, name), timer);</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onTimerRemoved(String name) {
    -<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    -&nbsp;                }
    -&nbsp;            });
    -<b class="pc">&nbsp;        } else if (metric instanceof MetricSet) {</b>
    -<b class="fc">&nbsp;            registerAll(name, (MetricSet) metric);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final Metric existing = metrics.putIfAbsent(name, metric);</b>
    -<b class="pc">&nbsp;            if (existing == null) {</b>
    -<b class="fc">&nbsp;                onMetricAdded(name, metric);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;A metric named &quot; + name + &quot; already exists&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return metric;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Given a metric set, registers them.
    -&nbsp;     *
    -&nbsp;     * @param metrics a set of metrics
    -&nbsp;     * @throws IllegalArgumentException if any of the names are already registered
    -&nbsp;     */
    -&nbsp;    public void registerAll(MetricSet metrics) throws IllegalArgumentException {
    -<b class="fc">&nbsp;        registerAll(null, metrics);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Counter} registered under this name; or create and register
    -&nbsp;     * a new {@link Counter} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a new or pre-existing {@link Counter}
    -&nbsp;     */
    -&nbsp;    public Counter counter(String name) {
    -<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.COUNTERS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Counter} registered under this name; or create and register
    -&nbsp;     * a new {@link Counter} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a counter.
    -&nbsp;     * @return a new or pre-existing {@link Counter}
    -&nbsp;     */
    -&nbsp;    public Counter counter(String name, final MetricSupplier&lt;Counter&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Counter&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Counter newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Counter.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Histogram} registered under this name; or create and register
    -&nbsp;     * a new {@link Histogram} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a new or pre-existing {@link Histogram}
    -&nbsp;     */
    -&nbsp;    public Histogram histogram(String name) {
    -<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.HISTOGRAMS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Histogram} registered under this name; or create and register
    -&nbsp;     * a new {@link Histogram} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a histogram
    -&nbsp;     * @return a new or pre-existing {@link Histogram}
    -&nbsp;     */
    -&nbsp;    public Histogram histogram(String name, final MetricSupplier&lt;Histogram&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Histogram&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Histogram newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Histogram.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Meter} registered under this name; or create and register
    -&nbsp;     * a new {@link Meter} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a new or pre-existing {@link Meter}
    -&nbsp;     */
    -&nbsp;    public Meter meter(String name) {
    -<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.METERS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Meter} registered under this name; or create and register
    -&nbsp;     * a new {@link Meter} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a Meter
    -&nbsp;     * @return a new or pre-existing {@link Meter}
    -&nbsp;     */
    -&nbsp;    public Meter meter(String name, final MetricSupplier&lt;Meter&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Meter&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Meter newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Meter.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Timer} registered under this name; or create and register
    -&nbsp;     * a new {@link Timer} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a new or pre-existing {@link Timer}
    -&nbsp;     */
    -&nbsp;    public Timer timer(String name) {
    -<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.TIMERS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Timer} registered under this name; or create and register
    -&nbsp;     * a new {@link Timer} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a Timer
    -&nbsp;     * @return a new or pre-existing {@link Timer}
    -&nbsp;     */
    -&nbsp;    public Timer timer(String name, final MetricSupplier&lt;Timer&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Timer&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Timer newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Timer.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Gauge} registered under this name; or create and register
    -&nbsp;     * a new {@link SettableGauge} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a pre-existing {@link Gauge} or a new {@link SettableGauge}
    -&nbsp;     * @since 4.2
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    -&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name) {
    -<b class="fc">&nbsp;        return (T) getOrAdd(name, MetricBuilder.GAUGES);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Gauge} registered under this name; or create and register
    -&nbsp;     * a new {@link Gauge} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a Gauge
    -&nbsp;     * @return a new or pre-existing {@link Gauge}
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name, final MetricSupplier&lt;T&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;T&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public T newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Gauge.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Removes the metric with the given name.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return whether or not the metric was removed
    -&nbsp;     */
    -&nbsp;    public boolean remove(String name) {
    -<b class="fc">&nbsp;        final Metric metric = metrics.remove(name);</b>
    -<b class="pc">&nbsp;        if (metric != null) {</b>
    -<b class="fc">&nbsp;            onMetricRemoved(name, metric);</b>
    -<b class="fc">&nbsp;            return true;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return false;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Removes all metrics which match the given filter.
    -&nbsp;     *
    -&nbsp;     * @param filter a filter
    -&nbsp;     */
    -&nbsp;    public void removeMatching(MetricFilter filter) {
    -<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    -<b class="pc">&nbsp;            if (filter.matches(entry.getKey(), entry.getValue())) {</b>
    -<b class="fc">&nbsp;                remove(entry.getKey());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a {@link MetricRegistryListener} to a collection of listeners that will be notified on
    -&nbsp;     * metric creation.  Listeners will be notified in the order in which they are added.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * &lt;b&gt;N.B.:&lt;/b&gt; The listener will be notified of all existing metrics when it first registers.
    -&nbsp;     *
    -&nbsp;     * @param listener the listener that will be notified
    -&nbsp;     */
    -&nbsp;    public void addListener(MetricRegistryListener listener) {
    -<b class="fc">&nbsp;        listeners.add(listener);</b>
    -&nbsp;
    -<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    -<b class="fc">&nbsp;            notifyListenerOfAddedMetric(listener, entry.getValue(), entry.getKey());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Removes a {@link MetricRegistryListener} from this registry&#39;s collection of listeners.
    -&nbsp;     *
    -&nbsp;     * @param listener the listener that will be removed
    -&nbsp;     */
    -&nbsp;    public void removeListener(MetricRegistryListener listener) {
    -<b class="fc">&nbsp;        listeners.remove(listener);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a set of the names of all the metrics in the registry.
    -&nbsp;     *
    -&nbsp;     * @return the names of all the metrics
    -&nbsp;     */
    -&nbsp;    public SortedSet&lt;String&gt; getNames() {
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedSet(new TreeSet&lt;&gt;(metrics.keySet()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the gauges in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the gauges in the registry
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges() {
    -<b class="fc">&nbsp;        return getGauges(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the gauges in the registry and their names which match the given filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the gauges in the registry
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Gauge.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the counters in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the counters in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters() {
    -<b class="fc">&nbsp;        return getCounters(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the counters in the registry and their names which match the given
    -&nbsp;     * filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the counters in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Counter.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the histograms in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the histograms in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms() {
    -<b class="fc">&nbsp;        return getHistograms(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the histograms in the registry and their names which match the given
    -&nbsp;     * filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the histograms in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Histogram.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the meters in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the meters in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters() {
    -<b class="fc">&nbsp;        return getMeters(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the meters in the registry and their names which match the given filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the meters in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Meter.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the timers in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the timers in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers() {
    -<b class="fc">&nbsp;        return getTimers(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the timers in the registry and their names which match the given filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the timers in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Timer.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
    -&nbsp;    private &lt;T extends Metric&gt; T getOrAdd(String name, MetricBuilder&lt;T&gt; builder) {
    -<b class="fc">&nbsp;        final Metric metric = metrics.get(name);</b>
    -<b class="fc">&nbsp;        if (builder.isInstance(metric)) {</b>
    -<b class="fc">&nbsp;            return (T) metric;</b>
    -<b class="pc">&nbsp;        } else if (metric == null) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                return register(name, builder.newMetric());</b>
    -<b class="nc">&nbsp;            } catch (IllegalArgumentException e) {</b>
    -<b class="nc">&nbsp;                final Metric added = metrics.get(name);</b>
    -<b class="nc">&nbsp;                if (builder.isInstance(added)) {</b>
    -<b class="nc">&nbsp;                    return (T) added;</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -<b class="nc">&nbsp;        throw new IllegalArgumentException(name + &quot; is already used for a different type of metric&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
    -&nbsp;    private &lt;T extends Metric&gt; SortedMap&lt;String, T&gt; getMetrics(Class&lt;T&gt; klass, MetricFilter filter) {
    -<b class="fc">&nbsp;        final TreeMap&lt;String, T&gt; timers = new TreeMap&lt;&gt;();</b>
    -<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    -<b class="pc">&nbsp;            if (klass.isInstance(entry.getValue()) &amp;&amp; filter.matches(entry.getKey(),</b>
    -<b class="fc">&nbsp;                    entry.getValue())) {</b>
    -<b class="fc">&nbsp;                timers.put(entry.getKey(), (T) entry.getValue());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(timers);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void onMetricAdded(String name, Metric metric) {
    -<b class="pc">&nbsp;        for (MetricRegistryListener listener : listeners) {</b>
    -<b class="fc">&nbsp;            notifyListenerOfAddedMetric(listener, metric, name);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void notifyListenerOfAddedMetric(MetricRegistryListener listener, Metric metric, String name) {
    -<b class="pc">&nbsp;        if (metric instanceof Gauge) {</b>
    -<b class="fc">&nbsp;            listener.onGaugeAdded(name, (Gauge&lt;?&gt;) metric);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Counter) {</b>
    -<b class="fc">&nbsp;            listener.onCounterAdded(name, (Counter) metric);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Histogram) {</b>
    -<b class="fc">&nbsp;            listener.onHistogramAdded(name, (Histogram) metric);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Meter) {</b>
    -<b class="fc">&nbsp;            listener.onMeterAdded(name, (Meter) metric);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Timer) {</b>
    -<b class="fc">&nbsp;            listener.onTimerAdded(name, (Timer) metric);</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;Unknown metric type: &quot; + metric.getClass());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void onMetricRemoved(String name, Metric metric) {
    -<b class="pc">&nbsp;        for (MetricRegistryListener listener : listeners) {</b>
    -<b class="fc">&nbsp;            notifyListenerOfRemovedMetric(name, metric, listener);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void notifyListenerOfRemovedMetric(String name, Metric metric, MetricRegistryListener listener) {
    -<b class="pc">&nbsp;        if (metric instanceof Gauge) {</b>
    -<b class="fc">&nbsp;            listener.onGaugeRemoved(name);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Counter) {</b>
    -<b class="fc">&nbsp;            listener.onCounterRemoved(name);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Histogram) {</b>
    -<b class="fc">&nbsp;            listener.onHistogramRemoved(name);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Meter) {</b>
    -<b class="fc">&nbsp;            listener.onMeterRemoved(name);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Timer) {</b>
    -<b class="fc">&nbsp;            listener.onTimerRemoved(name);</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;Unknown metric type: &quot; + metric.getClass());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Given a metric set, registers them with the given prefix prepended to their names.
    -&nbsp;     *
    -&nbsp;     * @param prefix a name prefix
    -&nbsp;     * @param metrics a set of metrics
    -&nbsp;     * @throws IllegalArgumentException if any of the names are already registered
    -&nbsp;     */
    -&nbsp;    public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
    -<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.getMetrics().entrySet()) {</b>
    -<b class="pc">&nbsp;            if (entry.getValue() instanceof MetricSet) {</b>
    -<b class="fc">&nbsp;                registerAll(name(prefix, entry.getKey()), (MetricSet) entry.getValue());</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                register(name(prefix, entry.getKey()), entry.getValue());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(metrics);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @FunctionalInterface
    -&nbsp;    public interface MetricSupplier&lt;T extends Metric&gt; {
    -&nbsp;        T newMetric();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A quick and easy way of capturing the notion of default metrics.
    -&nbsp;     */
    -&nbsp;    private interface MetricBuilder&lt;T extends Metric&gt; {
    -<b class="fc">&nbsp;        MetricBuilder&lt;Counter&gt; COUNTERS = new MetricBuilder&lt;Counter&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Counter newMetric() {
    -<b class="fc">&nbsp;                return new Counter();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Counter.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -<b class="fc">&nbsp;        MetricBuilder&lt;Histogram&gt; HISTOGRAMS = new MetricBuilder&lt;Histogram&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Histogram newMetric() {
    -<b class="fc">&nbsp;                return new Histogram(new ExponentiallyDecayingReservoir());</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Histogram.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -<b class="fc">&nbsp;        MetricBuilder&lt;Meter&gt; METERS = new MetricBuilder&lt;Meter&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Meter newMetric() {
    -<b class="fc">&nbsp;                return new Meter();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Meter.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -<b class="fc">&nbsp;        MetricBuilder&lt;Timer&gt; TIMERS = new MetricBuilder&lt;Timer&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Timer newMetric() {
    -<b class="fc">&nbsp;                return new Timer();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Timer.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -&nbsp;        @SuppressWarnings(&quot;rawtypes&quot;)
    -<b class="fc">&nbsp;        MetricBuilder&lt;Gauge&gt; GAUGES = new MetricBuilder&lt;Gauge&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Gauge newMetric() {
    -<b class="fc">&nbsp;                return new DefaultSettableGauge&lt;&gt;();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Gauge.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -&nbsp;        T newMetric();
    -&nbsp;
    -&nbsp;        boolean isInstance(Metric metric);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-16.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-16.html
    deleted file mode 100644
    index a4abedc0cc..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-16.html
    +++ /dev/null
    @@ -1,275 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricRegistryListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricRegistryListener (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$Base</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$5iXysY5Q</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$5iXysY5Q$auxiliary$F51bE4gh</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$5iXysY5Q$auxiliary$nSg42jpw</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$anYeCRUA</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$anYeCRUA$auxiliary$O5Lcj3DO</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$anYeCRUA$auxiliary$yb2c8vsY</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$vvUgAxm2</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$vvUgAxm2$auxiliary$nZ3MWwF6</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$vvUgAxm2$auxiliary$PeryPf4J</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$xn3YAipE</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$xn3YAipE$auxiliary$rCGi501R</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$xn3YAipE$auxiliary$yejoCfwX</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.EventListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Listeners for events from the registry.  Listeners must be thread-safe.
    -&nbsp; */
    -&nbsp;public interface MetricRegistryListener extends EventListener {
    -&nbsp;    /**
    -&nbsp;     * A no-op implementation of {@link MetricRegistryListener}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    abstract class Base implements MetricRegistryListener {</b>
    -&nbsp;        @Override
    -&nbsp;        public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onGaugeRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onCounterAdded(String name, Counter counter) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onCounterRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onHistogramAdded(String name, Histogram histogram) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onHistogramRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onMeterAdded(String name, Meter meter) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onMeterRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimerAdded(String name, Timer timer) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimerRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Gauge} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name  the gauge&#39;s name
    -&nbsp;     * @param gauge the gauge
    -&nbsp;     */
    -&nbsp;    void onGaugeAdded(String name, Gauge&lt;?&gt; gauge);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Gauge} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the gauge&#39;s name
    -&nbsp;     */
    -&nbsp;    void onGaugeRemoved(String name);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Counter} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name    the counter&#39;s name
    -&nbsp;     * @param counter the counter
    -&nbsp;     */
    -&nbsp;    void onCounterAdded(String name, Counter counter);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Counter} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the counter&#39;s name
    -&nbsp;     */
    -&nbsp;    void onCounterRemoved(String name);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Histogram} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name      the histogram&#39;s name
    -&nbsp;     * @param histogram the histogram
    -&nbsp;     */
    -&nbsp;    void onHistogramAdded(String name, Histogram histogram);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Histogram} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the histogram&#39;s name
    -&nbsp;     */
    -&nbsp;    void onHistogramRemoved(String name);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Meter} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name  the meter&#39;s name
    -&nbsp;     * @param meter the meter
    -&nbsp;     */
    -&nbsp;    void onMeterAdded(String name, Meter meter);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Meter} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the meter&#39;s name
    -&nbsp;     */
    -&nbsp;    void onMeterRemoved(String name);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Timer} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name  the timer&#39;s name
    -&nbsp;     * @param timer the timer
    -&nbsp;     */
    -&nbsp;    void onTimerAdded(String name, Timer timer);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Timer} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the timer&#39;s name
    -&nbsp;     */
    -&nbsp;    void onTimerRemoved(String name);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-17.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-17.html
    deleted file mode 100644
    index 9afc8850a7..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-17.html
    +++ /dev/null
    @@ -1,1097 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NoopMetricRegistry</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NoopMetricRegistry (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NoopMetricRegistry</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (26/32)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.4%
    -  </span>
    -  <span class="absValue">
    -    (28/34)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$EmptyConcurrentMap</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    5.9%
    -  </span>
    -  <span class="absValue">
    -    (1/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    5.9%
    -  </span>
    -  <span class="absValue">
    -    (1/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$EmptySnapshot</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopCounter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    28.6%
    -  </span>
    -  <span class="absValue">
    -    (2/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    28.6%
    -  </span>
    -  <span class="absValue">
    -    (2/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopHistogram</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    42.9%
    -  </span>
    -  <span class="absValue">
    -    (3/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (4/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopHistogram$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopMeter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.2%
    -  </span>
    -  <span class="absValue">
    -    (2/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.2%
    -  </span>
    -  <span class="absValue">
    -    (2/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopTimer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    14.3%
    -  </span>
    -  <span class="absValue">
    -    (2/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (3/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopTimer$Context</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (3/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (3/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopTimer$Context$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.SortedSet;
    -&nbsp;import java.util.concurrent.Callable;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A registry of metric instances which never creates or registers any metrics and returns no-op implementations of any metric type.
    -&nbsp; *
    -&nbsp; * @since 4.1.17
    -&nbsp; */
    -<b class="fc">&nbsp;public final class NoopMetricRegistry extends MetricRegistry {</b>
    -<b class="fc">&nbsp;    private static final EmptyConcurrentMap&lt;String, Metric&gt; EMPTY_CONCURRENT_MAP = new EmptyConcurrentMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    protected ConcurrentMap&lt;String, Metric&gt; buildMap() {
    -<b class="fc">&nbsp;        return EMPTY_CONCURRENT_MAP;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T extends Metric&gt; T register(String name, T metric) throws IllegalArgumentException {
    -<b class="fc">&nbsp;        if (metric == null) {</b>
    -<b class="fc">&nbsp;            throw new NullPointerException(&quot;metric == null&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return metric;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void registerAll(MetricSet metrics) throws IllegalArgumentException {
    -&nbsp;        // NOP
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Counter counter(String name) {
    -<b class="fc">&nbsp;        return NoopCounter.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Counter counter(String name, MetricSupplier&lt;Counter&gt; supplier) {
    -<b class="fc">&nbsp;        return NoopCounter.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Histogram histogram(String name) {
    -<b class="fc">&nbsp;        return NoopHistogram.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Histogram histogram(String name, MetricSupplier&lt;Histogram&gt; supplier) {
    -<b class="fc">&nbsp;        return NoopHistogram.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Meter meter(String name) {
    -<b class="fc">&nbsp;        return NoopMeter.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Meter meter(String name, MetricSupplier&lt;Meter&gt; supplier) {
    -<b class="fc">&nbsp;        return NoopMeter.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Timer timer(String name) {
    -<b class="fc">&nbsp;        return NoopTimer.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Timer timer(String name, MetricSupplier&lt;Timer&gt; supplier) {
    -<b class="fc">&nbsp;        return NoopTimer.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     *
    -&nbsp;     * @since 4.2
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    -&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name) {
    -<b class="fc">&nbsp;        return (T) NoopGauge.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    -&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name, MetricSupplier&lt;T&gt; supplier) {
    -<b class="fc">&nbsp;        return (T) NoopGauge.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean remove(String name) {
    -<b class="fc">&nbsp;        return false;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void removeMatching(MetricFilter filter) {
    -&nbsp;        // NOP
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void addListener(MetricRegistryListener listener) {
    -&nbsp;        // NOP
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void removeListener(MetricRegistryListener listener) {
    -&nbsp;        // NOP
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedSet&lt;String&gt; getNames() {
    -<b class="fc">&nbsp;        return Collections.emptySortedSet();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
    -&nbsp;        // NOP
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        return Collections.emptyMap();</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopGauge&lt;T&gt; implements Gauge&lt;T&gt; {</b>
    -<b class="fc">&nbsp;        private static final NoopGauge&lt;?&gt; INSTANCE = new NoopGauge&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public T getValue() {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="nc">&nbsp;    private static final class EmptySnapshot extends Snapshot {</b>
    -<b class="nc">&nbsp;        private static final EmptySnapshot INSTANCE = new EmptySnapshot();</b>
    -<b class="nc">&nbsp;        private static final long[] EMPTY_LONG_ARRAY = new long[0];</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getValue(double quantile) {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long[] getValues() {
    -<b class="nc">&nbsp;            return EMPTY_LONG_ARRAY;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public int size() {
    -<b class="nc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getMax() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getMean() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getMin() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getStdDev() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void dump(OutputStream output) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopTimer extends Timer {</b>
    -<b class="fc">&nbsp;        private static final NoopTimer INSTANCE = new NoopTimer();</b>
    -<b class="fc">&nbsp;        private static final Timer.Context CONTEXT = new NoopTimer.Context();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private static class Context extends Timer.Context {</b>
    -<b class="fc">&nbsp;            private static final Clock CLOCK = new Clock() {</b>
    -&nbsp;                /**
    -&nbsp;                 * {@inheritDoc}
    -&nbsp;                 */
    -&nbsp;                @Override
    -&nbsp;                public long getTick() {
    -<b class="fc">&nbsp;                    return 0L;</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                /**
    -&nbsp;                 * {@inheritDoc}
    -&nbsp;                 */
    -&nbsp;                @Override
    -&nbsp;                public long getTime() {
    -<b class="nc">&nbsp;                    return 0L;</b>
    -&nbsp;                }
    -&nbsp;            };
    -&nbsp;
    -&nbsp;            private Context() {
    -<b class="fc">&nbsp;                super(INSTANCE, CLOCK);</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public long stop() {
    -<b class="nc">&nbsp;                return 0L;</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public void close() {
    -&nbsp;                // NOP
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void update(long duration, TimeUnit unit) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void update(Duration duration) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public &lt;T&gt; T time(Callable&lt;T&gt; event) throws Exception {
    -<b class="nc">&nbsp;            return event.call();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public &lt;T&gt; T timeSupplier(Supplier&lt;T&gt; event) {
    -<b class="nc">&nbsp;            return event.get();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void time(Runnable event) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Timer.Context time() {
    -<b class="nc">&nbsp;            return CONTEXT;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getFifteenMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getFiveMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getMeanRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getOneMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Snapshot getSnapshot() {
    -<b class="nc">&nbsp;            return EmptySnapshot.INSTANCE;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopHistogram extends Histogram {</b>
    -<b class="fc">&nbsp;        private static final NoopHistogram INSTANCE = new NoopHistogram();</b>
    -<b class="fc">&nbsp;        private static final Reservoir EMPTY_RESERVOIR = new Reservoir() {</b>
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public int size() {
    -<b class="nc">&nbsp;                return 0;</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public void update(long value) {
    -&nbsp;                // NOP
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public Snapshot getSnapshot() {
    -<b class="nc">&nbsp;                return EmptySnapshot.INSTANCE;</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -&nbsp;        private NoopHistogram() {
    -<b class="fc">&nbsp;            super(EMPTY_RESERVOIR);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void update(int value) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void update(long value) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Snapshot getSnapshot() {
    -<b class="nc">&nbsp;            return EmptySnapshot.INSTANCE;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopCounter extends Counter {</b>
    -<b class="fc">&nbsp;        private static final NoopCounter INSTANCE = new NoopCounter();</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void inc() {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void inc(long n) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void dec() {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void dec(long n) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopMeter extends Meter {</b>
    -<b class="fc">&nbsp;        private static final NoopMeter INSTANCE = new NoopMeter();</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void mark() {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void mark(long n) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getFifteenMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getFiveMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getMeanRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getOneMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final class EmptyConcurrentMap&lt;K, V&gt; implements ConcurrentMap&lt;K, V&gt; {</b>
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V putIfAbsent(K key, V value) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean remove(Object key, Object value) {
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean replace(K key, V oldValue, V newValue) {
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V replace(K key, V value) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public int size() {
    -<b class="nc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean isEmpty() {
    -<b class="nc">&nbsp;            return true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean containsKey(Object key) {
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean containsValue(Object value) {
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V get(Object key) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V put(K key, V value) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V remove(Object key) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void putAll(Map&lt;? extends K, ? extends V&gt; m) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void clear() {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Set&lt;K&gt; keySet() {
    -<b class="nc">&nbsp;            return Collections.emptySet();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Collection&lt;V&gt; values() {
    -<b class="nc">&nbsp;            return Collections.emptySet();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Set&lt;Entry&lt;K, V&gt;&gt; entrySet() {
    -<b class="nc">&nbsp;            return Collections.emptySet();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-18.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-18.html
    deleted file mode 100644
    index 64fb1161bb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-18.html
    +++ /dev/null
    @@ -1,196 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > RatioGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: RatioGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">RatioGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">RatioGauge$Ratio</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import static java.lang.Double.isInfinite;
    -&nbsp;import static java.lang.Double.isNaN;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A gauge which measures the ratio of one value to another.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * If the denominator is zero, not a number, or infinite, the resulting ratio is not a number.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class RatioGauge implements Gauge&lt;Double&gt; {</b>
    -&nbsp;    /**
    -&nbsp;     * A ratio of one quantity to another.
    -&nbsp;     */
    -&nbsp;    public static class Ratio {
    -&nbsp;        /**
    -&nbsp;         * Creates a new ratio with the given numerator and denominator.
    -&nbsp;         *
    -&nbsp;         * @param numerator   the numerator of the ratio
    -&nbsp;         * @param denominator the denominator of the ratio
    -&nbsp;         * @return {@code numerator:denominator}
    -&nbsp;         */
    -&nbsp;        public static Ratio of(double numerator, double denominator) {
    -<b class="fc">&nbsp;            return new Ratio(numerator, denominator);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private final double numerator;
    -&nbsp;        private final double denominator;
    -&nbsp;
    -<b class="fc">&nbsp;        private Ratio(double numerator, double denominator) {</b>
    -<b class="fc">&nbsp;            this.numerator = numerator;</b>
    -<b class="fc">&nbsp;            this.denominator = denominator;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the ratio, which is either a {@code double} between 0 and 1 (inclusive) or
    -&nbsp;         * {@code NaN}.
    -&nbsp;         *
    -&nbsp;         * @return the ratio
    -&nbsp;         */
    -&nbsp;        public double getValue() {
    -<b class="fc">&nbsp;            final double d = denominator;</b>
    -<b class="fc">&nbsp;            if (isNaN(d) || isInfinite(d) || d == 0) {</b>
    -<b class="fc">&nbsp;                return Double.NaN;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return numerator / d;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String toString() {
    -<b class="fc">&nbsp;            return numerator + &quot;:&quot; + denominator;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the {@link Ratio} which is the gauge&#39;s current value.
    -&nbsp;     *
    -&nbsp;     * @return the {@link Ratio} which is the gauge&#39;s current value
    -&nbsp;     */
    -&nbsp;    protected abstract Ratio getRatio();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Double getValue() {
    -<b class="fc">&nbsp;        return getRatio().getValue();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-19.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-19.html
    deleted file mode 100644
    index 12989a6a46..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-19.html
    +++ /dev/null
    @@ -1,467 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ScheduledReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ScheduledReporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ScheduledReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.3%
    -  </span>
    -  <span class="absValue">
    -    (21/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (52/65)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">ScheduledReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ScheduledReporter$NamedThreadFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.io.Closeable;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.Executor;
    -&nbsp;import java.util.concurrent.Executors;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.ScheduledFuture;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * The abstract base class for all scheduled reporters (i.e., reporters which process a registry&#39;s
    -&nbsp; * metrics periodically).
    -&nbsp; *
    -&nbsp; * @see ConsoleReporter
    -&nbsp; * @see CsvReporter
    -&nbsp; * @see Slf4jReporter
    -&nbsp; */
    -&nbsp;public abstract class ScheduledReporter implements Closeable, Reporter {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOG = LoggerFactory.getLogger(ScheduledReporter.class);</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A simple named thread factory.
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;NullableProblems&quot;)
    -<b class="fc">&nbsp;    private static class NamedThreadFactory implements ThreadFactory {</b>
    -&nbsp;        private final ThreadGroup group;
    -<b class="fc">&nbsp;        private final AtomicInteger threadNumber = new AtomicInteger(1);</b>
    -&nbsp;        private final String namePrefix;
    -&nbsp;
    -<b class="fc">&nbsp;        private NamedThreadFactory(String name) {</b>
    -<b class="fc">&nbsp;            final SecurityManager s = System.getSecurityManager();</b>
    -<b class="fc">&nbsp;            this.group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();</b>
    -<b class="fc">&nbsp;            this.namePrefix = &quot;metrics-&quot; + name + &quot;-thread-&quot;;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Thread newThread(Runnable r) {
    -<b class="fc">&nbsp;            final Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);</b>
    -<b class="fc">&nbsp;            t.setDaemon(true);</b>
    -<b class="fc">&nbsp;            if (t.getPriority() != Thread.NORM_PRIORITY) {</b>
    -<b class="nc">&nbsp;                t.setPriority(Thread.NORM_PRIORITY);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return t;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final AtomicInteger FACTORY_ID = new AtomicInteger();</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final ScheduledExecutorService executor;
    -&nbsp;    private final boolean shutdownExecutorOnStop;
    -&nbsp;    private final Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -&nbsp;    private ScheduledFuture&lt;?&gt; scheduledFuture;
    -&nbsp;    private final MetricFilter filter;
    -&nbsp;    private final long durationFactor;
    -&nbsp;    private final String durationUnit;
    -&nbsp;    private final long rateFactor;
    -&nbsp;    private final String rateUnit;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ScheduledReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry     the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    -&nbsp;     *                     reporter will report
    -&nbsp;     * @param name         the reporter&#39;s name
    -&nbsp;     * @param filter       the filter for which metrics to report
    -&nbsp;     * @param rateUnit     a unit of time
    -&nbsp;     * @param durationUnit a unit of time
    -&nbsp;     */
    -&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    -&nbsp;                                String name,
    -&nbsp;                                MetricFilter filter,
    -&nbsp;                                TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit) {
    -<b class="fc">&nbsp;        this(registry, name, filter, rateUnit, durationUnit, createDefaultExecutor(name));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ScheduledReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    -&nbsp;     *                 reporter will report
    -&nbsp;     * @param name     the reporter&#39;s name
    -&nbsp;     * @param filter   the filter for which metrics to report
    -&nbsp;     * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;     */
    -&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    -&nbsp;                                String name,
    -&nbsp;                                MetricFilter filter,
    -&nbsp;                                TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit,
    -&nbsp;                                ScheduledExecutorService executor) {
    -<b class="fc">&nbsp;        this(registry, name, filter, rateUnit, durationUnit, executor, true);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ScheduledReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry               the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    -&nbsp;     *                               reporter will report
    -&nbsp;     * @param name                   the reporter&#39;s name
    -&nbsp;     * @param filter                 the filter for which metrics to report
    -&nbsp;     * @param executor               the executor to use while scheduling reporting of metrics.
    -&nbsp;     * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;     */
    -&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    -&nbsp;                                String name,
    -&nbsp;                                MetricFilter filter,
    -&nbsp;                                TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit,
    -&nbsp;                                ScheduledExecutorService executor,
    -&nbsp;                                boolean shutdownExecutorOnStop) {
    -<b class="fc">&nbsp;        this(registry, name, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, Collections.emptySet());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    -&nbsp;                                String name,
    -&nbsp;                                MetricFilter filter,
    -&nbsp;                                TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit,
    -&nbsp;                                ScheduledExecutorService executor,
    -&nbsp;                                boolean shutdownExecutorOnStop,
    -<b class="fc">&nbsp;                                Set&lt;MetricAttribute&gt; disabledMetricAttributes) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (registry == null) {</b>
    -<b class="fc">&nbsp;            throw new NullPointerException(&quot;registry == null&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.filter = filter;</b>
    -<b class="fc">&nbsp;        this.executor = executor == null ? createDefaultExecutor(name) : executor;</b>
    -<b class="fc">&nbsp;        this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="fc">&nbsp;        this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;        this.rateUnit = calculateRateUnit(rateUnit);</b>
    -<b class="fc">&nbsp;        this.durationFactor = durationUnit.toNanos(1);</b>
    -<b class="fc">&nbsp;        this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;        this.disabledMetricAttributes = disabledMetricAttributes != null ? disabledMetricAttributes :</b>
    -<b class="fc">&nbsp;                Collections.emptySet();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Starts the reporter polling at the given period.
    -&nbsp;     *
    -&nbsp;     * @param period the amount of time between polls
    -&nbsp;     * @param unit   the unit for {@code period}
    -&nbsp;     */
    -&nbsp;    public void start(long period, TimeUnit unit) {
    -<b class="fc">&nbsp;        start(period, period, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Starts the reporter polling at the given period with the specific runnable action.
    -&nbsp;     * Visible only for testing.
    -&nbsp;     */
    -&nbsp;    synchronized void start(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
    -<b class="fc">&nbsp;        if (this.scheduledFuture != null) {</b>
    -<b class="fc">&nbsp;            throw new IllegalArgumentException(&quot;Reporter already started&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.scheduledFuture = getScheduledFuture(initialDelay, period, unit, runnable);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Schedule the task, and return a future.
    -&nbsp;     *
    -&nbsp;     * @deprecated Use {@link #getScheduledFuture(long, long, TimeUnit, Runnable, ScheduledExecutorService)} instead.
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;DeprecatedIsStillUsed&quot;)
    -&nbsp;    @Deprecated
    -&nbsp;    protected ScheduledFuture&lt;?&gt; getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
    -<b class="fc">&nbsp;        return getScheduledFuture(initialDelay, period, unit, runnable, this.executor);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Schedule the task, and return a future.
    -&nbsp;     * The current implementation uses scheduleWithFixedDelay, replacing scheduleWithFixedRate. This avoids queueing issues, but may
    -&nbsp;     * cause some reporters to skip metrics, as scheduleWithFixedDelay introduces a growing delta from the original start point.
    -&nbsp;     *
    -&nbsp;     * Overriding this in a subclass to revert to the old behavior is permitted.
    -&nbsp;     */
    -&nbsp;    protected ScheduledFuture&lt;?&gt; getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable, ScheduledExecutorService executor) {
    -<b class="fc">&nbsp;        return executor.scheduleWithFixedDelay(runnable, initialDelay, period, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Starts the reporter polling at the given period.
    -&nbsp;     *
    -&nbsp;     * @param initialDelay the time to delay the first execution
    -&nbsp;     * @param period       the amount of time between polls
    -&nbsp;     * @param unit         the unit for {@code period} and {@code initialDelay}
    -&nbsp;     */
    -&nbsp;    synchronized public void start(long initialDelay, long period, TimeUnit unit) {
    -<b class="fc">&nbsp;        start(initialDelay, period, unit, () -&gt; {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                report();</b>
    -<b class="nc">&nbsp;            } catch (Throwable ex) {</b>
    -<b class="nc">&nbsp;                LOG.error(&quot;Exception thrown from {}#report. Exception was suppressed.&quot;, ScheduledReporter.this.getClass().getSimpleName(), ex);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Stops the reporter and if shutdownExecutorOnStop is true then shuts down its thread of execution.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * Uses the shutdown pattern from http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html
    -&nbsp;     */
    -&nbsp;    public void stop() {
    -<b class="fc">&nbsp;        if (shutdownExecutorOnStop) {</b>
    -<b class="fc">&nbsp;            executor.shutdown(); // Disable new tasks from being submitted</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            report(); // Report metrics one last time</b>
    -<b class="nc">&nbsp;        } catch (Exception e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Final reporting of metrics failed.&quot;, e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (shutdownExecutorOnStop) {</b>
    -&nbsp;            try {
    -&nbsp;                // Wait a while for existing tasks to terminate
    -<b class="fc">&nbsp;                if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    -<b class="nc">&nbsp;                    executor.shutdownNow(); // Cancel currently executing tasks</b>
    -&nbsp;                    // Wait a while for tasks to respond to being cancelled
    -<b class="nc">&nbsp;                    if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    -<b class="nc">&nbsp;                        LOG.warn(&quot;ScheduledExecutorService did not terminate.&quot;);</b>
    -&nbsp;                    }
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (InterruptedException ie) {</b>
    -&nbsp;                // (Re-)Cancel if current thread also interrupted
    -<b class="nc">&nbsp;                executor.shutdownNow();</b>
    -&nbsp;                // Preserve interrupt status
    -<b class="nc">&nbsp;                Thread.currentThread().interrupt();</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        } else {
    -&nbsp;            // The external manager (like JEE container) responsible for lifecycle of executor
    -<b class="fc">&nbsp;            cancelScheduledFuture();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private synchronized void cancelScheduledFuture() {
    -<b class="fc">&nbsp;        if (this.scheduledFuture == null) {</b>
    -&nbsp;            // was never started
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (this.scheduledFuture.isCancelled()) {</b>
    -&nbsp;            // already cancelled
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;        // just cancel the scheduledFuture and exit
    -<b class="fc">&nbsp;        this.scheduledFuture.cancel(false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Stops the reporter and shuts down its thread of execution.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="fc">&nbsp;        stop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Report the current values of all metrics in the registry.
    -&nbsp;     */
    -&nbsp;    public void report() {
    -<b class="fc">&nbsp;        synchronized (this) {</b>
    -<b class="fc">&nbsp;            report(registry.getGauges(filter),</b>
    -<b class="fc">&nbsp;                    registry.getCounters(filter),</b>
    -<b class="fc">&nbsp;                    registry.getHistograms(filter),</b>
    -<b class="fc">&nbsp;                    registry.getMeters(filter),</b>
    -<b class="fc">&nbsp;                    registry.getTimers(filter));</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called periodically by the polling thread. Subclasses should report all the given metrics.
    -&nbsp;     *
    -&nbsp;     * @param gauges     all of the gauges in the registry
    -&nbsp;     * @param counters   all of the counters in the registry
    -&nbsp;     * @param histograms all of the histograms in the registry
    -&nbsp;     * @param meters     all of the meters in the registry
    -&nbsp;     * @param timers     all of the timers in the registry
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public abstract void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                                SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                                SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                                SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                                SortedMap&lt;String, Timer&gt; timers);
    -&nbsp;
    -&nbsp;    protected String getRateUnit() {
    -<b class="fc">&nbsp;        return rateUnit;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String getDurationUnit() {
    -<b class="fc">&nbsp;        return durationUnit;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected double convertDuration(double duration) {
    -<b class="fc">&nbsp;        return duration / durationFactor;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected double convertRate(double rate) {
    -<b class="fc">&nbsp;        return rate * rateFactor;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected boolean isShutdownExecutorOnStop() {
    -<b class="nc">&nbsp;        return shutdownExecutorOnStop;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected Set&lt;MetricAttribute&gt; getDisabledMetricAttributes() {
    -<b class="fc">&nbsp;        return disabledMetricAttributes;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String calculateRateUnit(TimeUnit unit) {
    -<b class="fc">&nbsp;        final String s = unit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;        return s.substring(0, s.length() - 1);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static ScheduledExecutorService createDefaultExecutor(String name) {
    -<b class="fc">&nbsp;        return Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(name + &#39;-&#39; + FACTORY_ID.incrementAndGet()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1a.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1a.html
    deleted file mode 100644
    index 5a42c2932a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1a.html
    +++ /dev/null
    @@ -1,211 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SharedMetricRegistries</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SharedMetricRegistries (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SharedMetricRegistries</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.atomic.AtomicReference;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A map of shared, named metric registries.
    -&nbsp; */
    -&nbsp;public class SharedMetricRegistries {
    -<b class="fc">&nbsp;    private static final ConcurrentMap&lt;String, MetricRegistry&gt; REGISTRIES =</b>
    -&nbsp;            new ConcurrentHashMap&lt;&gt;();
    -&nbsp;
    -<b class="fc">&nbsp;    private static AtomicReference&lt;String&gt; defaultRegistryName = new AtomicReference&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    /* Visible for testing */
    -&nbsp;    static void setDefaultRegistryName(AtomicReference&lt;String&gt; defaultRegistryName) {
    -<b class="fc">&nbsp;        SharedMetricRegistries.defaultRegistryName = defaultRegistryName;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private SharedMetricRegistries() { /* singleton */ }
    -&nbsp;
    -&nbsp;    public static void clear() {
    -<b class="fc">&nbsp;        REGISTRIES.clear();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Set&lt;String&gt; names() {
    -<b class="fc">&nbsp;        return REGISTRIES.keySet();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void remove(String key) {
    -<b class="fc">&nbsp;        REGISTRIES.remove(key);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static MetricRegistry add(String name, MetricRegistry registry) {
    -<b class="fc">&nbsp;        return REGISTRIES.putIfAbsent(name, registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static MetricRegistry getOrCreate(String name) {
    -<b class="fc">&nbsp;        final MetricRegistry existing = REGISTRIES.get(name);</b>
    -<b class="fc">&nbsp;        if (existing == null) {</b>
    -<b class="fc">&nbsp;            final MetricRegistry created = new MetricRegistry();</b>
    -<b class="fc">&nbsp;            final MetricRegistry raced = add(name, created);</b>
    -<b class="fc">&nbsp;            if (raced == null) {</b>
    -<b class="fc">&nbsp;                return created;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            return raced;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return existing;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new registry and sets it as the default one under the provided name.
    -&nbsp;     *
    -&nbsp;     * @param name the registry name
    -&nbsp;     * @return the default registry
    -&nbsp;     * @throws IllegalStateException if the name has already been set
    -&nbsp;     */
    -&nbsp;    public synchronized static MetricRegistry setDefault(String name) {
    -<b class="fc">&nbsp;        final MetricRegistry registry = getOrCreate(name);</b>
    -<b class="fc">&nbsp;        return setDefault(name, registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Sets the provided registry as the default one under the provided name
    -&nbsp;     *
    -&nbsp;     * @param name           the default registry name
    -&nbsp;     * @param metricRegistry the default registry
    -&nbsp;     * @throws IllegalStateException if the default registry has already been set
    -&nbsp;     */
    -&nbsp;    public static MetricRegistry setDefault(String name, MetricRegistry metricRegistry) {
    -<b class="fc">&nbsp;        if (defaultRegistryName.compareAndSet(null, name)) {</b>
    -<b class="fc">&nbsp;            add(name, metricRegistry);</b>
    -<b class="fc">&nbsp;            return metricRegistry;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default metric registry name is already set.&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Gets the name of the default registry, if it has been set
    -&nbsp;     *
    -&nbsp;     * @return the default registry
    -&nbsp;     * @throws IllegalStateException if the default has not been set
    -&nbsp;     */
    -&nbsp;    public static MetricRegistry getDefault() {
    -<b class="fc">&nbsp;        MetricRegistry metricRegistry = tryGetDefault();</b>
    -<b class="fc">&nbsp;        if (metricRegistry == null) {</b>
    -<b class="fc">&nbsp;            throw new IllegalStateException(&quot;Default registry name has not been set.&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return metricRegistry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Same as {@link #getDefault()} except returns null when the default registry has not been set.
    -&nbsp;     *
    -&nbsp;     * @return the default registry or null
    -&nbsp;     */
    -&nbsp;    public static MetricRegistry tryGetDefault() {
    -<b class="fc">&nbsp;        final String name = defaultRegistryName.get();</b>
    -<b class="fc">&nbsp;        if (name != null) {</b>
    -<b class="fc">&nbsp;            return getOrCreate(name);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1b.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1b.html
    deleted file mode 100644
    index e737e5071b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1b.html
    +++ /dev/null
    @@ -1,782 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Slf4jReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Slf4jReporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Slf4jReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (97/97)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    79.5%
    -  </span>
    -  <span class="absValue">
    -    (35/44)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$DebugLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$ErrorLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$InfoLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$LoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$LoggingLevel</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$TraceLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$WarnLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;import org.slf4j.Marker;
    -&nbsp;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Map.Entry;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter class for logging metrics values to a SLF4J {@link Logger} periodically, similar to
    -&nbsp; * {@link ConsoleReporter} or {@link CsvReporter}, but using the SLF4J framework instead. It also
    -&nbsp; * supports specifying a {@link Marker} instance that can be used by custom appenders and filters
    -&nbsp; * for the bound logging toolkit to further process metrics reports.
    -&nbsp; */
    -<b class="fc">&nbsp;public class Slf4jReporter extends ScheduledReporter {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link Slf4jReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link Slf4jReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public enum LoggingLevel { TRACE, DEBUG, INFO, WARN, ERROR }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link Slf4jReporter} instances. Defaults to logging to {@code metrics}, not
    -&nbsp;     * using a marker, converting rates to events/second, converting durations to milliseconds, and
    -&nbsp;     * not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private Logger logger;
    -&nbsp;        private LoggingLevel loggingLevel;
    -&nbsp;        private Marker marker;
    -&nbsp;        private String prefix;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private MetricFilter filter;
    -&nbsp;        private ScheduledExecutorService executor;
    -&nbsp;        private boolean shutdownExecutorOnStop;
    -&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.logger = LoggerFactory.getLogger(&quot;metrics&quot;);</b>
    -<b class="fc">&nbsp;            this.marker = null;</b>
    -<b class="fc">&nbsp;            this.prefix = &quot;&quot;;</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;            this.loggingLevel = LoggingLevel.INFO;</b>
    -<b class="fc">&nbsp;            this.executor = null;</b>
    -<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = Collections.emptySet();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -&nbsp;         * Default value is true.
    -&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -&nbsp;         *
    -&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    -&nbsp;         * Default value is null.
    -&nbsp;         * Null value leads to executor will be auto created on start.
    -&nbsp;         *
    -&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Log metrics to the given logger.
    -&nbsp;         *
    -&nbsp;         * @param logger an SLF4J {@link Logger}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder outputTo(Logger logger) {
    -<b class="fc">&nbsp;            this.logger = logger;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Mark all logged metrics with the given marker.
    -&nbsp;         *
    -&nbsp;         * @param marker an SLF4J {@link Marker}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder markWith(Marker marker) {
    -<b class="fc">&nbsp;            this.marker = marker;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Prefix all metric names with the given string.
    -&nbsp;         *
    -&nbsp;         * @param prefix the prefix for all metric names
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder prefixedWith(String prefix) {
    -<b class="fc">&nbsp;            this.prefix = prefix;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use Logging Level when reporting.
    -&nbsp;         *
    -&nbsp;         * @param loggingLevel a (@link Slf4jReporter.LoggingLevel}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withLoggingLevel(LoggingLevel loggingLevel) {
    -<b class="fc">&nbsp;            this.loggingLevel = loggingLevel;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    -&nbsp;         * See {@link MetricAttribute}.
    -&nbsp;         *
    -&nbsp;         * @param disabledMetricAttributes a set of {@link MetricAttribute}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link Slf4jReporter} with the given properties.
    -&nbsp;         *
    -&nbsp;         * @return a {@link Slf4jReporter}
    -&nbsp;         */
    -&nbsp;        public Slf4jReporter build() {
    -&nbsp;            LoggerProxy loggerProxy;
    -<b class="fc">&nbsp;            switch (loggingLevel) {</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    loggerProxy = new TraceLoggerProxy(logger);</b>
    -<b class="nc">&nbsp;                    break;</b>
    -&nbsp;                case INFO:
    -<b class="fc">&nbsp;                    loggerProxy = new InfoLoggerProxy(logger);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case WARN:
    -<b class="nc">&nbsp;                    loggerProxy = new WarnLoggerProxy(logger);</b>
    -<b class="nc">&nbsp;                    break;</b>
    -&nbsp;                case ERROR:
    -<b class="fc">&nbsp;                    loggerProxy = new ErrorLoggerProxy(logger);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                default:
    -&nbsp;                case DEBUG:
    -<b class="nc">&nbsp;                    loggerProxy = new DebugLoggerProxy(logger);</b>
    -&nbsp;                    break;
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new Slf4jReporter(registry, loggerProxy, marker, prefix, rateUnit, durationUnit, filter, executor,</b>
    -&nbsp;                    shutdownExecutorOnStop, disabledMetricAttributes);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final LoggerProxy loggerProxy;
    -&nbsp;    private final Marker marker;
    -&nbsp;    private final String prefix;
    -&nbsp;
    -&nbsp;    private Slf4jReporter(MetricRegistry registry,
    -&nbsp;                          LoggerProxy loggerProxy,
    -&nbsp;                          Marker marker,
    -&nbsp;                          String prefix,
    -&nbsp;                          TimeUnit rateUnit,
    -&nbsp;                          TimeUnit durationUnit,
    -&nbsp;                          MetricFilter filter,
    -&nbsp;                          ScheduledExecutorService executor,
    -&nbsp;                          boolean shutdownExecutorOnStop,
    -&nbsp;                          Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;        super(registry, &quot;logger-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes);
    -<b class="fc">&nbsp;        this.loggerProxy = loggerProxy;</b>
    -<b class="fc">&nbsp;        this.marker = marker;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        if (loggerProxy.isEnabled(marker)) {</b>
    -<b class="fc">&nbsp;            StringBuilder b = new StringBuilder();</b>
    -<b class="fc">&nbsp;            for (Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;                logGauge(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;                logCounter(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;                logHistogram(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;                logMeter(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;                logTimer(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void logTimer(StringBuilder b, String name, Timer timer) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=TIMER&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        appendCountIfEnabled(b, timer);</b>
    -<b class="fc">&nbsp;        appendLongDurationIfEnabled(b, MIN, snapshot::getMin);</b>
    -<b class="fc">&nbsp;        appendLongDurationIfEnabled(b, MAX, snapshot::getMax);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, MEAN, snapshot::getMean);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, STDDEV, snapshot::getStdDev);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P50, snapshot::getMedian);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P75, snapshot::get75thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P95, snapshot::get95thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P98, snapshot::get98thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P99, snapshot::get99thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P999, snapshot::get999thPercentile);</b>
    -<b class="fc">&nbsp;        appendMetered(b, timer);</b>
    -<b class="fc">&nbsp;        append(b, &quot;rate_unit&quot;, getRateUnit());</b>
    -<b class="fc">&nbsp;        append(b, &quot;duration_unit&quot;, getDurationUnit());</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void logMeter(StringBuilder b, String name, Meter meter) {
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=METER&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        appendCountIfEnabled(b, meter);</b>
    -<b class="fc">&nbsp;        appendMetered(b, meter);</b>
    -<b class="fc">&nbsp;        append(b, &quot;rate_unit&quot;, getRateUnit());</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void logHistogram(StringBuilder b, String name, Histogram histogram) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=HISTOGRAM&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        appendCountIfEnabled(b, histogram);</b>
    -<b class="fc">&nbsp;        appendLongIfEnabled(b, MIN, snapshot::getMin);</b>
    -<b class="fc">&nbsp;        appendLongIfEnabled(b, MAX, snapshot::getMax);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, MEAN, snapshot::getMean);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, STDDEV, snapshot::getStdDev);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P50, snapshot::getMedian);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P75, snapshot::get75thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P95, snapshot::get95thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P98, snapshot::get98thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P99, snapshot::get99thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P999, snapshot::get999thPercentile);</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void logCounter(StringBuilder b, String name, Counter counter) {
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=COUNTER&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        append(b, COUNT.getCode(), counter.getCount());</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void logGauge(StringBuilder b, String name, Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=GAUGE&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        append(b, &quot;value&quot;, gauge.getValue());</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendLongDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -&nbsp;                                             Supplier&lt;Long&gt; durationSupplier) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendDoubleDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -&nbsp;                                               Supplier&lt;Double&gt; durationSupplier) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendLongIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -&nbsp;                                     Supplier&lt;Long&gt; valueSupplier) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), valueSupplier.get());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendDoubleIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -&nbsp;                                       Supplier&lt;Double&gt; valueSupplier) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), valueSupplier.get());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendCountIfEnabled(StringBuilder b, Counting counting) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(COUNT)) {</b>
    -<b class="fc">&nbsp;            append(b, COUNT.getCode(), counting.getCount());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendMetered(StringBuilder b, Metered meter) {
    -<b class="fc">&nbsp;        appendRateIfEnabled(b, M1_RATE, meter::getOneMinuteRate);</b>
    -<b class="fc">&nbsp;        appendRateIfEnabled(b, M5_RATE, meter::getFiveMinuteRate);</b>
    -<b class="fc">&nbsp;        appendRateIfEnabled(b, M15_RATE,  meter::getFifteenMinuteRate);</b>
    -<b class="fc">&nbsp;        appendRateIfEnabled(b, MEAN_RATE,  meter::getMeanRate);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendRateIfEnabled(StringBuilder b, MetricAttribute metricAttribute, Supplier&lt;Double&gt; rateSupplier) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), convertRate(rateSupplier.get()));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void append(StringBuilder b, String key, long value) {
    -<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void append(StringBuilder b, String key, double value) {
    -<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void append(StringBuilder b, String key, String value) {
    -<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void append(StringBuilder b, String key, Object value) {
    -<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected String getRateUnit() {
    -<b class="fc">&nbsp;        return &quot;events/&quot; + super.getRateUnit();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String prefix(String... components) {
    -<b class="fc">&nbsp;        return MetricRegistry.name(prefix, components);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    static abstract class LoggerProxy {
    -&nbsp;        protected final Logger logger;
    -&nbsp;
    -<b class="fc">&nbsp;        public LoggerProxy(Logger logger) {</b>
    -<b class="fc">&nbsp;            this.logger = logger;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        abstract void log(Marker marker, String format);
    -&nbsp;
    -&nbsp;        abstract boolean isEnabled(Marker marker);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class DebugLoggerProxy extends LoggerProxy {
    -&nbsp;        public DebugLoggerProxy(Logger logger) {
    -<b class="nc">&nbsp;            super(logger);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="nc">&nbsp;            logger.debug(marker, format);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="nc">&nbsp;            return logger.isDebugEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class TraceLoggerProxy extends LoggerProxy {
    -&nbsp;        public TraceLoggerProxy(Logger logger) {
    -<b class="nc">&nbsp;            super(logger);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="nc">&nbsp;            logger.trace(marker, format);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="nc">&nbsp;            return logger.isTraceEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class InfoLoggerProxy extends LoggerProxy {
    -&nbsp;        public InfoLoggerProxy(Logger logger) {
    -<b class="fc">&nbsp;            super(logger);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="fc">&nbsp;            logger.info(marker, format);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="fc">&nbsp;            return logger.isInfoEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class WarnLoggerProxy extends LoggerProxy {
    -&nbsp;        public WarnLoggerProxy(Logger logger) {
    -<b class="nc">&nbsp;            super(logger);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="nc">&nbsp;            logger.warn(marker, format);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="nc">&nbsp;            return logger.isWarnEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class ErrorLoggerProxy extends LoggerProxy {
    -&nbsp;        public ErrorLoggerProxy(Logger logger) {
    -<b class="fc">&nbsp;            super(logger);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="fc">&nbsp;            logger.error(marker, format);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="fc">&nbsp;            return logger.isErrorEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1c.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1c.html
    deleted file mode 100644
    index 1b5998be82..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1c.html
    +++ /dev/null
    @@ -1,205 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowArrayReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowArrayReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
    -&nbsp; * in the last {@code N} seconds (or other time unit).
    -&nbsp; */
    -&nbsp;public class SlidingTimeWindowArrayReservoir implements Reservoir {
    -&nbsp;    // allow for this many duplicate ticks before overwriting measurements
    -&nbsp;    private static final long COLLISION_BUFFER = 256L;
    -&nbsp;    // only trim on updating once every N
    -&nbsp;    private static final long TRIM_THRESHOLD = 256L;
    -<b class="fc">&nbsp;    private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final ChunkedAssociativeLongArray measurements;
    -&nbsp;    private final long window;
    -&nbsp;    private final AtomicLong lastTick;
    -&nbsp;    private final AtomicLong count;
    -&nbsp;    private final long startTick;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given window of time.
    -&nbsp;     *
    -&nbsp;     * @param window     the window of time
    -&nbsp;     * @param windowUnit the unit of {@code window}
    -&nbsp;     */
    -&nbsp;    public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit) {
    -<b class="nc">&nbsp;        this(window, windowUnit, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given clock and window of time.
    -&nbsp;     *
    -&nbsp;     * @param window     the window of time
    -&nbsp;     * @param windowUnit the unit of {@code window}
    -&nbsp;     * @param clock      the {@link Clock} to use
    -&nbsp;     */
    -<b class="fc">&nbsp;    public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.startTick = clock.getTick();</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.measurements = new ChunkedAssociativeLongArray();</b>
    -<b class="fc">&nbsp;        this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;</b>
    -<b class="fc">&nbsp;        this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);</b>
    -<b class="fc">&nbsp;        this.count = new AtomicLong();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        trim();</b>
    -<b class="fc">&nbsp;        return measurements.size();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -&nbsp;        long newTick;
    -&nbsp;        do {
    -<b class="fc">&nbsp;            if (count.incrementAndGet() % TRIM_THRESHOLD == 0L) {</b>
    -<b class="fc">&nbsp;                trim();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            long lastTick = this.lastTick.get();</b>
    -<b class="fc">&nbsp;            newTick = getTick();</b>
    -<b class="fc">&nbsp;            boolean longOverflow = newTick &lt; lastTick;</b>
    -<b class="fc">&nbsp;            if (longOverflow) {</b>
    -<b class="nc">&nbsp;                measurements.clear();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        } while (!measurements.put(newTick, value));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        trim();</b>
    -<b class="fc">&nbsp;        return new UniformSnapshot(measurements.values());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private long getTick() {
    -&nbsp;        for ( ;; ) {
    -<b class="fc">&nbsp;            final long oldTick = lastTick.get();</b>
    -<b class="fc">&nbsp;            final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;</b>
    -&nbsp;            // ensure the tick is strictly incrementing even if there are duplicate ticks
    -<b class="fc">&nbsp;            final long newTick = tick - oldTick &gt; 0L ? tick : oldTick + 1L;</b>
    -<b class="fc">&nbsp;            if (lastTick.compareAndSet(oldTick, newTick)) {</b>
    -<b class="fc">&nbsp;                return newTick;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void trim() {
    -<b class="fc">&nbsp;        final long now = getTick();</b>
    -<b class="fc">&nbsp;        final long windowStart = now - window;</b>
    -<b class="fc">&nbsp;        final long windowEnd = now + CLEAR_BUFFER;</b>
    -<b class="fc">&nbsp;        if (windowStart &lt; windowEnd) {</b>
    -<b class="fc">&nbsp;            measurements.trim(windowStart, windowEnd);</b>
    -&nbsp;        } else {
    -&nbsp;            // long overflow handling that can happen only after 1 year after class loading
    -<b class="nc">&nbsp;            measurements.clear();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1d.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1d.html
    deleted file mode 100644
    index 22b7a31b90..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1d.html
    +++ /dev/null
    @@ -1,217 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowArrayReservoirTrimReadTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirTrimReadTest (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowArrayReservoirTrimReadTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">SlidingTimeWindowArrayReservoirTrimReadTest$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.openjdk.jcstress.annotations.Actor;
    -&nbsp;import org.openjdk.jcstress.annotations.Expect;
    -&nbsp;import org.openjdk.jcstress.annotations.JCStressTest;
    -&nbsp;import org.openjdk.jcstress.annotations.Outcome;
    -&nbsp;import org.openjdk.jcstress.annotations.State;
    -&nbsp;import org.openjdk.jcstress.infra.results.L_Result;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;@JCStressTest
    -&nbsp;@Outcome(
    -&nbsp;    id = &quot;\\[240, 241, 242, 243, 244, 245, 246, 247, 248, 249\\]&quot;,
    -&nbsp;    expect = Expect.ACCEPTABLE,
    -&nbsp;    desc = &quot;Actor1 made read before Actor2 even started&quot;
    -&nbsp;    )
    -&nbsp;@Outcome(
    -&nbsp;    id = &quot;\\[243, 244, 245, 246, 247, 248, 249\\]&quot;,
    -&nbsp;    expect = Expect.ACCEPTABLE,
    -&nbsp;    desc = &quot;Actor2 made trim before Actor1 even started&quot;
    -&nbsp;    )
    -&nbsp;@Outcome(
    -&nbsp;    id = &quot;\\[244, 245, 246, 247, 248, 249\\]&quot;,
    -&nbsp;    expect = Expect.ACCEPTABLE,
    -&nbsp;    desc = &quot;Actor1 made trim, then Actor2 started trim and made startIndex change, &quot; +
    -&nbsp;        &quot;before Actor1 concurrent read.&quot;
    -&nbsp;    )
    -&nbsp;@Outcome(
    -&nbsp;    id = &quot;\\[243, 244, 245, 246, 247, 248\\]&quot;,
    -&nbsp;    expect = Expect.ACCEPTABLE,
    -&nbsp;    desc = &quot;Actor1 made trim, then Actor2 started trim, but not finished startIndex change, before Actor1 concurrent read.&quot;
    -&nbsp;    )
    -&nbsp;@State
    -<b class="nc">&nbsp;public class SlidingTimeWindowArrayReservoirTrimReadTest {</b>
    -<b class="nc">&nbsp;    private final AtomicLong ticks = new AtomicLong(0);</b>
    -&nbsp;    private final SlidingTimeWindowArrayReservoir reservoir;
    -&nbsp;
    -<b class="nc">&nbsp;    public SlidingTimeWindowArrayReservoirTrimReadTest() {</b>
    -<b class="nc">&nbsp;        reservoir = new SlidingTimeWindowArrayReservoir(10, TimeUnit.NANOSECONDS, new Clock() {</b>
    -&nbsp;            @Override
    -&nbsp;            public long getTick() {
    -<b class="nc">&nbsp;                return ticks.get();</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="nc">&nbsp;        for (int i = 0; i &lt; 250; i++) {</b>
    -<b class="nc">&nbsp;            ticks.set(i);</b>
    -<b class="nc">&nbsp;            reservoir.update(i);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor1(L_Result r) {
    -<b class="nc">&nbsp;        Snapshot snapshot = reservoir.getSnapshot();</b>
    -<b class="nc">&nbsp;        String stringValues = Arrays.toString(snapshot.getValues());</b>
    -<b class="nc">&nbsp;        r.r1 = stringValues;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor2() {
    -<b class="nc">&nbsp;        ticks.set(253);</b>
    -<b class="nc">&nbsp;        reservoir.trim();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1e.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1e.html
    deleted file mode 100644
    index 7ef6346fa1..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1e.html
    +++ /dev/null
    @@ -1,161 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowArrayReservoirWriteReadAllocate</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirWriteReadAllocate (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowArrayReservoirWriteReadAllocate</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.openjdk.jcstress.annotations.Actor;
    -&nbsp;import org.openjdk.jcstress.annotations.Arbiter;
    -&nbsp;import org.openjdk.jcstress.annotations.Expect;
    -&nbsp;import org.openjdk.jcstress.annotations.JCStressTest;
    -&nbsp;import org.openjdk.jcstress.annotations.Outcome;
    -&nbsp;import org.openjdk.jcstress.annotations.State;
    -&nbsp;import org.openjdk.jcstress.infra.results.L_Result;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;@JCStressTest
    -&nbsp;@Outcome(id = &quot;\\[1023, 1029, 1034\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@State
    -&nbsp;public class SlidingTimeWindowArrayReservoirWriteReadAllocate {
    -&nbsp;
    -&nbsp;    private final SlidingTimeWindowArrayReservoir reservoir;
    -&nbsp;
    -<b class="nc">&nbsp;    public SlidingTimeWindowArrayReservoirWriteReadAllocate() {</b>
    -<b class="nc">&nbsp;        reservoir = new SlidingTimeWindowArrayReservoir(500, TimeUnit.SECONDS);</b>
    -<b class="nc">&nbsp;        for (int i = 0; i &lt; 1024; i++) {</b>
    -<b class="nc">&nbsp;            reservoir.update(i);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor1() {
    -<b class="nc">&nbsp;        reservoir.update(1029L);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor2() {
    -<b class="nc">&nbsp;        reservoir.update(1034L);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Arbiter
    -&nbsp;    public void arbiter(L_Result r) {
    -<b class="nc">&nbsp;        Snapshot snapshot = reservoir.getSnapshot();</b>
    -<b class="nc">&nbsp;        long[] values = snapshot.getValues();</b>
    -<b class="nc">&nbsp;        String stringValues = Arrays.toString(Arrays.copyOfRange(values, values.length - 3, values.length));</b>
    -<b class="nc">&nbsp;        r.r1 = stringValues;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1f.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1f.html
    deleted file mode 100644
    index 8136a52736..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-1f.html
    +++ /dev/null
    @@ -1,149 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowArrayReservoirWriteReadTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirWriteReadTest (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowArrayReservoirWriteReadTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.openjdk.jcstress.annotations.Actor;
    -&nbsp;import org.openjdk.jcstress.annotations.Expect;
    -&nbsp;import org.openjdk.jcstress.annotations.JCStressTest;
    -&nbsp;import org.openjdk.jcstress.annotations.Outcome;
    -&nbsp;import org.openjdk.jcstress.annotations.State;
    -&nbsp;import org.openjdk.jcstress.infra.results.L_Result;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;@JCStressTest
    -&nbsp;@Outcome(id = &quot;\\[\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@Outcome(id = &quot;\\[31\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@Outcome(id = &quot;\\[15\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@Outcome(id = &quot;\\[31, 15\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@Outcome(id = &quot;\\[15, 31\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@State
    -&nbsp;public class SlidingTimeWindowArrayReservoirWriteReadTest {
    -&nbsp;
    -&nbsp;    private final SlidingTimeWindowArrayReservoir reservoir;
    -&nbsp;
    -<b class="nc">&nbsp;    public SlidingTimeWindowArrayReservoirWriteReadTest() {</b>
    -<b class="nc">&nbsp;        reservoir = new SlidingTimeWindowArrayReservoir(1, TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor1() {
    -<b class="nc">&nbsp;        reservoir.update(31L);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor2() {
    -<b class="nc">&nbsp;        reservoir.update(15L);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor3(L_Result r) {
    -<b class="nc">&nbsp;        Snapshot snapshot = reservoir.getSnapshot();</b>
    -<b class="nc">&nbsp;        String stringValues = Arrays.toString(snapshot.getValues());</b>
    -<b class="nc">&nbsp;        r.r1 = stringValues;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2.html
    deleted file mode 100644
    index 302f00238a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2.html
    +++ /dev/null
    @@ -1,333 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ChunkedAssociativeLongArray</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ChunkedAssociativeLongArray (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ChunkedAssociativeLongArray</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.3%
    -  </span>
    -  <span class="absValue">
    -    (81/85)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">ChunkedAssociativeLongArray$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ChunkedAssociativeLongArray$Chunk</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.lang.ref.SoftReference;
    -&nbsp;import java.util.ArrayDeque;
    -&nbsp;import java.util.Deque;
    -&nbsp;import java.util.Iterator;
    -&nbsp;
    -&nbsp;import static java.lang.System.arraycopy;
    -&nbsp;import static java.util.Arrays.binarySearch;
    -&nbsp;
    -&nbsp;class ChunkedAssociativeLongArray {
    -<b class="fc">&nbsp;    private static final long[] EMPTY = new long[0];</b>
    -&nbsp;    private static final int DEFAULT_CHUNK_SIZE = 512;
    -&nbsp;    private static final int MAX_CACHE_SIZE = 128;
    -&nbsp;
    -&nbsp;    private final int defaultChunkSize;
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * We use this ArrayDeque as cache to store chunks that are expired and removed from main data structure.
    -&nbsp;     * Then instead of allocating new Chunk immediately we are trying to poll one from this deque.
    -&nbsp;     * So if you have constant or slowly changing load ChunkedAssociativeLongArray will never
    -&nbsp;     * throw away old chunks or allocate new ones which makes this data structure almost garbage free.
    -&nbsp;     */
    -<b class="fc">&nbsp;    private final ArrayDeque&lt;SoftReference&lt;Chunk&gt;&gt; chunksCache = new ArrayDeque&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private final Deque&lt;Chunk&gt; chunks = new ArrayDeque&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    ChunkedAssociativeLongArray() {
    -<b class="fc">&nbsp;        this(DEFAULT_CHUNK_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    ChunkedAssociativeLongArray(int chunkSize) {</b>
    -<b class="fc">&nbsp;        this.defaultChunkSize = chunkSize;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Chunk allocateChunk() {
    -&nbsp;        while (true) {
    -<b class="fc">&nbsp;            final SoftReference&lt;Chunk&gt; chunkRef = chunksCache.pollLast();</b>
    -<b class="fc">&nbsp;            if (chunkRef == null) {</b>
    -<b class="fc">&nbsp;                return new Chunk(defaultChunkSize);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            final Chunk chunk = chunkRef.get();</b>
    -<b class="fc">&nbsp;            if (chunk != null) {</b>
    -<b class="fc">&nbsp;                chunk.cursor = 0;</b>
    -<b class="fc">&nbsp;                chunk.startIndex = 0;</b>
    -<b class="fc">&nbsp;                chunk.chunkSize = chunk.keys.length;</b>
    -<b class="fc">&nbsp;                return chunk;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void freeChunk(Chunk chunk) {
    -<b class="fc">&nbsp;        if (chunksCache.size() &lt; MAX_CACHE_SIZE) {</b>
    -<b class="fc">&nbsp;            chunksCache.add(new SoftReference&lt;&gt;(chunk));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    synchronized boolean put(long key, long value) {
    -<b class="fc">&nbsp;        Chunk activeChunk = chunks.peekLast();</b>
    -<b class="fc">&nbsp;        if (activeChunk != null &amp;&amp; activeChunk.cursor != 0 &amp;&amp; activeChunk.keys[activeChunk.cursor - 1] &gt; key) {</b>
    -&nbsp;            // key should be the same as last inserted or bigger
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (activeChunk == null || activeChunk.cursor - activeChunk.startIndex == activeChunk.chunkSize) {</b>
    -&nbsp;            // The last chunk doesn&#39;t exist or full
    -<b class="fc">&nbsp;            activeChunk = allocateChunk();</b>
    -<b class="fc">&nbsp;            chunks.add(activeChunk);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeChunk.append(key, value);</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    synchronized long[] values() {
    -<b class="fc">&nbsp;        final int valuesSize = size();</b>
    -<b class="fc">&nbsp;        if (valuesSize == 0) {</b>
    -<b class="nc">&nbsp;            return EMPTY;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final long[] values = new long[valuesSize];</b>
    -<b class="fc">&nbsp;        int valuesIndex = 0;</b>
    -<b class="fc">&nbsp;        for (Chunk chunk : chunks) {</b>
    -<b class="fc">&nbsp;            int length = chunk.cursor - chunk.startIndex;</b>
    -<b class="fc">&nbsp;            int itemsToCopy = Math.min(valuesSize - valuesIndex, length);</b>
    -<b class="fc">&nbsp;            arraycopy(chunk.values, chunk.startIndex, values, valuesIndex, itemsToCopy);</b>
    -<b class="fc">&nbsp;            valuesIndex += length;</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return values;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    synchronized int size() {
    -<b class="fc">&nbsp;        int result = 0;</b>
    -<b class="fc">&nbsp;        for (Chunk chunk : chunks) {</b>
    -<b class="fc">&nbsp;            result += chunk.cursor - chunk.startIndex;</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return result;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    synchronized String out() {
    -<b class="fc">&nbsp;        final StringBuilder builder = new StringBuilder();</b>
    -<b class="fc">&nbsp;        final Iterator&lt;Chunk&gt; iterator = chunks.iterator();</b>
    -<b class="fc">&nbsp;        while (iterator.hasNext()) {</b>
    -<b class="fc">&nbsp;            final Chunk chunk = iterator.next();</b>
    -<b class="fc">&nbsp;            builder.append(&#39;[&#39;);</b>
    -<b class="fc">&nbsp;            for (int i = chunk.startIndex; i &lt; chunk.cursor; i++) {</b>
    -<b class="fc">&nbsp;                builder.append(&#39;(&#39;).append(chunk.keys[i]).append(&quot;: &quot;)</b>
    -<b class="fc">&nbsp;                        .append(chunk.values[i]).append(&#39;)&#39;).append(&#39; &#39;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            builder.append(&#39;]&#39;);</b>
    -<b class="fc">&nbsp;            if (iterator.hasNext()) {</b>
    -<b class="fc">&nbsp;                builder.append(&quot;-&gt;&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return builder.toString();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Try to trim all beyond specified boundaries.
    -&nbsp;     *
    -&nbsp;     * @param startKey the start value for which all elements less than it should be removed.
    -&nbsp;     * @param endKey   the end value for which all elements greater/equals than it should be removed.
    -&nbsp;     */
    -&nbsp;    synchronized void trim(long startKey, long endKey) {
    -&nbsp;        /*
    -&nbsp;         * [3, 4, 5, 9] -&gt; [10, 13, 14, 15] -&gt; [21, 24, 29, 30] -&gt; [31] :: start layout
    -&nbsp;         *       |5______________________________23|                    :: trim(5, 23)
    -&nbsp;         *       [5, 9] -&gt; [10, 13, 14, 15] -&gt; [21]                     :: result layout
    -&nbsp;         */
    -<b class="fc">&nbsp;        final Iterator&lt;Chunk&gt; descendingIterator = chunks.descendingIterator();</b>
    -<b class="fc">&nbsp;        while (descendingIterator.hasNext()) {</b>
    -<b class="fc">&nbsp;            final Chunk currentTail = descendingIterator.next();</b>
    -<b class="fc">&nbsp;            if (isFirstElementIsEmptyOrGreaterEqualThanKey(currentTail, endKey)) {</b>
    -<b class="fc">&nbsp;                freeChunk(currentTail);</b>
    -<b class="fc">&nbsp;                descendingIterator.remove();</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                currentTail.cursor = findFirstIndexOfGreaterEqualElements(currentTail.keys, currentTail.startIndex,</b>
    -<b class="fc">&nbsp;                        currentTail.cursor, endKey);</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final Iterator&lt;Chunk&gt; iterator = chunks.iterator();</b>
    -<b class="fc">&nbsp;        while (iterator.hasNext()) {</b>
    -<b class="fc">&nbsp;            final Chunk currentHead = iterator.next();</b>
    -<b class="fc">&nbsp;            if (isLastElementIsLessThanKey(currentHead, startKey)) {</b>
    -<b class="fc">&nbsp;                freeChunk(currentHead);</b>
    -<b class="fc">&nbsp;                iterator.remove();</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                final int newStartIndex = findFirstIndexOfGreaterEqualElements(currentHead.keys, currentHead.startIndex,</b>
    -<b class="fc">&nbsp;                        currentHead.cursor, startKey);</b>
    -<b class="fc">&nbsp;                if (currentHead.startIndex != newStartIndex) {</b>
    -<b class="fc">&nbsp;                    currentHead.startIndex = newStartIndex;</b>
    -<b class="fc">&nbsp;                    currentHead.chunkSize = currentHead.cursor - currentHead.startIndex;</b>
    -&nbsp;                }
    -&nbsp;                break;
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    synchronized void clear() {
    -<b class="nc">&nbsp;        chunks.clear();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private boolean isFirstElementIsEmptyOrGreaterEqualThanKey(Chunk chunk, long key) {
    -<b class="fc">&nbsp;        return chunk.cursor == chunk.startIndex || chunk.keys[chunk.startIndex] &gt;= key;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private boolean isLastElementIsLessThanKey(Chunk chunk, long key) {
    -<b class="fc">&nbsp;        return chunk.cursor == chunk.startIndex || chunk.keys[chunk.cursor - 1] &lt; key;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private int findFirstIndexOfGreaterEqualElements(long[] array, int startIndex, int endIndex, long minKey) {
    -<b class="fc">&nbsp;        if (endIndex == startIndex || array[startIndex] &gt;= minKey) {</b>
    -<b class="fc">&nbsp;            return startIndex;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        final int keyIndex = binarySearch(array, startIndex, endIndex, minKey);</b>
    -<b class="fc">&nbsp;        return keyIndex &lt; 0 ? -(keyIndex + 1) : keyIndex;</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class Chunk {</b>
    -&nbsp;
    -&nbsp;        private final long[] keys;
    -&nbsp;        private final long[] values;
    -&nbsp;
    -&nbsp;        private int chunkSize; // can differ from keys.length after half clear()
    -<b class="fc">&nbsp;        private int startIndex = 0;</b>
    -<b class="fc">&nbsp;        private int cursor = 0;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private Chunk(int chunkSize) {</b>
    -<b class="fc">&nbsp;            this.chunkSize = chunkSize;</b>
    -<b class="fc">&nbsp;            this.keys = new long[chunkSize];</b>
    -<b class="fc">&nbsp;            this.values = new long[chunkSize];</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void append(long key, long value) {
    -<b class="fc">&nbsp;            keys[cursor] = key;</b>
    -<b class="fc">&nbsp;            values[cursor] = value;</b>
    -<b class="fc">&nbsp;            cursor++;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-20.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-20.html
    deleted file mode 100644
    index 0ddd01336c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-20.html
    +++ /dev/null
    @@ -1,301 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowMovingAverages</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowMovingAverages (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowMovingAverages</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.time.Instant;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A triple of simple moving average rates (one, five and fifteen minutes rates) as needed by {@link Meter}.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * The averages are unweighted, i.e. they include strictly only the events in the
    -&nbsp; * sliding time window, every event having the same weight. Unlike the
    -&nbsp; * the more widely used {@link ExponentialMovingAverages} implementation,
    -&nbsp; * with this class the moving average rate drops immediately to zero if the last
    -&nbsp; * marked event is older than the time window.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A {@link Meter} with {@link SlidingTimeWindowMovingAverages} works similarly to
    -&nbsp; * a {@link Histogram} with an {@link SlidingTimeWindowArrayReservoir}, but as a Meter
    -&nbsp; * needs to keep track only of the count of events (not the events itself), the memory
    -&nbsp; * overhead is much smaller. SlidingTimeWindowMovingAverages uses buckets with just one
    -&nbsp; * counter to accumulate the number of events (one bucket per seconds, giving 900 buckets
    -&nbsp; * for the 15 minutes time window).
    -&nbsp; */
    -&nbsp;public class SlidingTimeWindowMovingAverages implements MovingAverages {
    -&nbsp;
    -&nbsp;    private static final long TIME_WINDOW_DURATION_MINUTES = 15;
    -<b class="fc">&nbsp;    private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(1);</b>
    -<b class="fc">&nbsp;    private static final Duration TIME_WINDOW_DURATION = Duration.ofMinutes(TIME_WINDOW_DURATION_MINUTES);</b>
    -&nbsp;
    -&nbsp;    // package private for the benefit of the unit test
    -<b class="fc">&nbsp;    static final int NUMBER_OF_BUCKETS = (int) (TIME_WINDOW_DURATION.toNanos() / TICK_INTERVAL);</b>
    -&nbsp;
    -&nbsp;    private final AtomicLong lastTick;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * One counter per time bucket/slot (i.e. per second, see TICK_INTERVAL) for the entire
    -&nbsp;     * time window (i.e. 15 minutes, see TIME_WINDOW_DURATION_MINUTES)
    -&nbsp;     */
    -&nbsp;    private ArrayList&lt;LongAdder&gt; buckets;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Index into buckets, pointing at the bucket containing the oldest counts
    -&nbsp;     */
    -&nbsp;    private int oldestBucketIndex;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Index into buckets, pointing at the bucket with the count for the current time (tick)
    -&nbsp;     */
    -&nbsp;    private int currentBucketIndex;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Instant at creation time of the time window. Used to calculate the currentBucketIndex
    -&nbsp;     * for the instant of a given tick (instant modulo time window duration)
    -&nbsp;     */
    -&nbsp;    private final Instant bucketBaseTime;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Instant of the bucket with index oldestBucketIndex
    -&nbsp;     */
    -&nbsp;    Instant oldestBucketTime;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowMovingAverages}.
    -&nbsp;     */
    -&nbsp;    public SlidingTimeWindowMovingAverages() {
    -<b class="fc">&nbsp;        this(Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowMovingAverages}.
    -&nbsp;     *
    -&nbsp;     * @param clock the clock to use for the meter ticks
    -&nbsp;     */
    -<b class="fc">&nbsp;    public SlidingTimeWindowMovingAverages(Clock clock) {</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    -<b class="fc">&nbsp;        lastTick = new AtomicLong(startTime);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        buckets = new ArrayList&lt;&gt;(NUMBER_OF_BUCKETS);</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; NUMBER_OF_BUCKETS; i++) {</b>
    -<b class="fc">&nbsp;            buckets.add(new LongAdder());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        bucketBaseTime = Instant.ofEpochSecond(0L, startTime);</b>
    -<b class="fc">&nbsp;        oldestBucketTime = bucketBaseTime;</b>
    -<b class="fc">&nbsp;        oldestBucketIndex = 0;</b>
    -<b class="fc">&nbsp;        currentBucketIndex = 0;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long n) {
    -<b class="fc">&nbsp;        buckets.get(currentBucketIndex).add(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void tickIfNecessary() {
    -<b class="fc">&nbsp;        final long oldTick = lastTick.get();</b>
    -<b class="fc">&nbsp;        final long newTick = clock.getTick();</b>
    -<b class="fc">&nbsp;        final long age = newTick - oldTick;</b>
    -<b class="fc">&nbsp;        if (age &gt;= TICK_INTERVAL) {</b>
    -&nbsp;            // - the newTick doesn&#39;t fall into the same slot as the oldTick anymore
    -&nbsp;            // - newLastTick is the lower border time of the new currentBucketIndex slot
    -<b class="fc">&nbsp;            final long newLastTick = newTick - age % TICK_INTERVAL;</b>
    -<b class="fc">&nbsp;            if (lastTick.compareAndSet(oldTick, newLastTick)) {</b>
    -<b class="fc">&nbsp;                Instant currentInstant = Instant.ofEpochSecond(0L, newLastTick);</b>
    -<b class="fc">&nbsp;                currentBucketIndex = normalizeIndex(calculateIndexOfTick(currentInstant));</b>
    -<b class="fc">&nbsp;                cleanOldBuckets(currentInstant);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM15Rate() {
    -<b class="fc">&nbsp;        return getMinuteRate(15);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM5Rate() {
    -<b class="fc">&nbsp;        return getMinuteRate(5);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM1Rate() {
    -<b class="fc">&nbsp;        return getMinuteRate(1);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private double getMinuteRate(int minutes) {
    -<b class="fc">&nbsp;        Instant now = Instant.ofEpochSecond(0L, lastTick.get());</b>
    -<b class="fc">&nbsp;        return sumBuckets(now, (int) (TimeUnit.MINUTES.toNanos(minutes) / TICK_INTERVAL));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    int calculateIndexOfTick(Instant tickTime) {
    -<b class="fc">&nbsp;        return (int) (Duration.between(bucketBaseTime, tickTime).toNanos() / TICK_INTERVAL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    int normalizeIndex(int index) {
    -<b class="fc">&nbsp;        int mod = index % NUMBER_OF_BUCKETS;</b>
    -<b class="fc">&nbsp;        return mod &gt;= 0 ? mod : mod + NUMBER_OF_BUCKETS;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void cleanOldBuckets(Instant currentTick) {
    -&nbsp;        int newOldestIndex;
    -<b class="fc">&nbsp;        Instant oldestStillNeededTime = currentTick.minus(TIME_WINDOW_DURATION).plusNanos(TICK_INTERVAL);</b>
    -<b class="fc">&nbsp;        Instant youngestNotInWindow = oldestBucketTime.plus(TIME_WINDOW_DURATION);</b>
    -<b class="fc">&nbsp;        if (oldestStillNeededTime.isAfter(youngestNotInWindow)) {</b>
    -&nbsp;            // there was no update() call for more than two whole TIME_WINDOW_DURATION
    -<b class="fc">&nbsp;            newOldestIndex = oldestBucketIndex;</b>
    -<b class="fc">&nbsp;            oldestBucketTime = currentTick;</b>
    -<b class="fc">&nbsp;        } else if (oldestStillNeededTime.isAfter(oldestBucketTime)) {</b>
    -<b class="fc">&nbsp;            newOldestIndex = normalizeIndex(calculateIndexOfTick(oldestStillNeededTime));</b>
    -<b class="fc">&nbsp;            oldestBucketTime = oldestStillNeededTime;</b>
    -&nbsp;        } else {
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        cleanBucketRange(oldestBucketIndex, newOldestIndex);</b>
    -<b class="fc">&nbsp;        oldestBucketIndex = newOldestIndex;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void cleanBucketRange(int fromIndex, int toIndex) {
    -<b class="fc">&nbsp;        if (fromIndex &lt; toIndex) {</b>
    -<b class="fc">&nbsp;            for (int i = fromIndex; i &lt; toIndex; i++) {</b>
    -<b class="fc">&nbsp;                buckets.get(i).reset();</b>
    -&nbsp;            }
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            for (int i = fromIndex; i &lt; NUMBER_OF_BUCKETS; i++) {</b>
    -<b class="fc">&nbsp;                buckets.get(i).reset();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            for (int i = 0; i &lt; toIndex; i++) {</b>
    -<b class="fc">&nbsp;                buckets.get(i).reset();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private long sumBuckets(Instant toTime, int numberOfBuckets) {
    -&nbsp;
    -&nbsp;        // increment toIndex to include the current bucket into the sum
    -<b class="fc">&nbsp;        int toIndex = normalizeIndex(calculateIndexOfTick(toTime) + 1);</b>
    -<b class="fc">&nbsp;        int fromIndex = normalizeIndex(toIndex - numberOfBuckets);</b>
    -<b class="fc">&nbsp;        LongAdder adder = new LongAdder();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (fromIndex &lt; toIndex) {</b>
    -<b class="fc">&nbsp;            buckets.stream()</b>
    -<b class="fc">&nbsp;                    .skip(fromIndex)</b>
    -<b class="fc">&nbsp;                    .limit(toIndex - fromIndex)</b>
    -<b class="fc">&nbsp;                    .mapToLong(LongAdder::longValue)</b>
    -<b class="fc">&nbsp;                    .forEach(adder::add);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            buckets.stream().limit(toIndex).mapToLong(LongAdder::longValue).forEach(adder::add);</b>
    -<b class="fc">&nbsp;            buckets.stream().skip(fromIndex).mapToLong(LongAdder::longValue).forEach(adder::add);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        long retval = adder.longValue();</b>
    -<b class="fc">&nbsp;        return retval;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-21.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-21.html
    deleted file mode 100644
    index 4c90adfe67..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-21.html
    +++ /dev/null
    @@ -1,199 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.ConcurrentSkipListMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
    -&nbsp; * in the last {@code N} seconds (or other time unit).
    -&nbsp; */
    -&nbsp;public class SlidingTimeWindowReservoir implements Reservoir {
    -&nbsp;    // allow for this many duplicate ticks before overwriting measurements
    -&nbsp;    private static final int COLLISION_BUFFER = 256;
    -&nbsp;    // only trim on updating once every N
    -&nbsp;    private static final int TRIM_THRESHOLD = 256;
    -&nbsp;    // offsets the front of the time window for the purposes of clearing the buffer in trim
    -<b class="fc">&nbsp;    private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final ConcurrentSkipListMap&lt;Long, Long&gt; measurements;
    -&nbsp;    private final long window;
    -&nbsp;    private final AtomicLong lastTick;
    -&nbsp;    private final AtomicLong count;
    -&nbsp;    private final long startTick;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowReservoir} with the given window of time.
    -&nbsp;     *
    -&nbsp;     * @param window     the window of time
    -&nbsp;     * @param windowUnit the unit of {@code window}
    -&nbsp;     */
    -&nbsp;    public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit) {
    -<b class="nc">&nbsp;        this(window, windowUnit, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowReservoir} with the given clock and window of time.
    -&nbsp;     *
    -&nbsp;     * @param window     the window of time
    -&nbsp;     * @param windowUnit the unit of {@code window}
    -&nbsp;     * @param clock      the {@link Clock} to use
    -&nbsp;     */
    -<b class="fc">&nbsp;    public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.startTick = clock.getTick();</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.measurements = new ConcurrentSkipListMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;</b>
    -<b class="fc">&nbsp;        this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);</b>
    -<b class="fc">&nbsp;        this.count = new AtomicLong();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        trim();</b>
    -<b class="fc">&nbsp;        return measurements.size();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        if (count.incrementAndGet() % TRIM_THRESHOLD == 0) {</b>
    -<b class="fc">&nbsp;            trim();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        measurements.put(getTick(), value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        trim();</b>
    -<b class="fc">&nbsp;        return new UniformSnapshot(measurements.values());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private long getTick() {
    -&nbsp;        for ( ;; ) {
    -<b class="fc">&nbsp;            final long oldTick = lastTick.get();</b>
    -<b class="fc">&nbsp;            final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;</b>
    -&nbsp;            // ensure the tick is strictly incrementing even if there are duplicate ticks
    -<b class="fc">&nbsp;            final long newTick = tick - oldTick &gt; 0 ? tick : oldTick + 1;</b>
    -<b class="fc">&nbsp;            if (lastTick.compareAndSet(oldTick, newTick)) {</b>
    -<b class="fc">&nbsp;                return newTick;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void trim() {
    -<b class="fc">&nbsp;        final long now = getTick();</b>
    -<b class="fc">&nbsp;        final long windowStart = now - window;</b>
    -<b class="fc">&nbsp;        final long windowEnd = now + CLEAR_BUFFER;</b>
    -<b class="fc">&nbsp;        if (windowStart &lt; windowEnd) {</b>
    -<b class="fc">&nbsp;            measurements.headMap(windowStart).clear();</b>
    -<b class="fc">&nbsp;            measurements.tailMap(windowEnd).clear();</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            measurements.subMap(windowEnd, windowStart).clear();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-22.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-22.html
    deleted file mode 100644
    index d3c118c175..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-22.html
    +++ /dev/null
    @@ -1,147 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingWindowReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingWindowReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingWindowReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import static java.lang.Math.min;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Reservoir} implementation backed by a sliding window that stores the last {@code N}
    -&nbsp; * measurements.
    -&nbsp; */
    -&nbsp;public class SlidingWindowReservoir implements Reservoir {
    -&nbsp;    private final long[] measurements;
    -&nbsp;    private long count;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingWindowReservoir} which stores the last {@code size} measurements.
    -&nbsp;     *
    -&nbsp;     * @param size the number of measurements to store
    -&nbsp;     */
    -<b class="fc">&nbsp;    public SlidingWindowReservoir(int size) {</b>
    -<b class="fc">&nbsp;        this.measurements = new long[size];</b>
    -<b class="fc">&nbsp;        this.count = 0;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public synchronized int size() {
    -<b class="fc">&nbsp;        return (int) min(count, measurements.length);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public synchronized void update(long value) {
    -<b class="fc">&nbsp;        measurements[(int) (count++ % measurements.length)] = value;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        final long[] values = new long[size()];</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    -<b class="fc">&nbsp;            synchronized (this) {</b>
    -<b class="fc">&nbsp;                values[i] = measurements[i];</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return new UniformSnapshot(values);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-23.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-23.html
    deleted file mode 100644
    index 798fcfd6dd..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-23.html
    +++ /dev/null
    @@ -1,277 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Snapshot</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Snapshot (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Snapshot</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$mZ3tmzjp</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$mZ3tmzjp$auxiliary$bgJwullp</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$mZ3tmzjp$auxiliary$smpCeeR7</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$TAy1oPp7</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$TAy1oPp7$auxiliary$2IY4yGwf</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$TAy1oPp7$auxiliary$m3D1oaOo</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$U8c8ic7C</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$U8c8ic7C$auxiliary$7Kz9rWWn</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$U8c8ic7C$auxiliary$DdIHODfL</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$vUeJ5rxj</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$vUeJ5rxj$auxiliary$Gg22ZTJQ</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$vUeJ5rxj$auxiliary$n0OOEY8a</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$w1t1NJKR</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$w1t1NJKR$auxiliary$2oCkK5Hg</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$w1t1NJKR$auxiliary$nGy7GYus</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A statistical snapshot of a {@link Snapshot}.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class Snapshot {</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the given quantile.
    -&nbsp;     *
    -&nbsp;     * @param quantile a given quantile, in {@code [0..1]}
    -&nbsp;     * @return the value in the distribution at {@code quantile}
    -&nbsp;     */
    -&nbsp;    public abstract double getValue(double quantile);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the entire set of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the entire set of values
    -&nbsp;     */
    -&nbsp;    public abstract long[] getValues();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the number of values
    -&nbsp;     */
    -&nbsp;    public abstract int size();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the median value in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the median value
    -&nbsp;     */
    -&nbsp;    public double getMedian() {
    -<b class="fc">&nbsp;        return getValue(0.5);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 75th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 75th percentile
    -&nbsp;     */
    -&nbsp;    public double get75thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.75);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 95th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 95th percentile
    -&nbsp;     */
    -&nbsp;    public double get95thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.95);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 98th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 98th percentile
    -&nbsp;     */
    -&nbsp;    public double get98thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.98);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 99th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 99th percentile
    -&nbsp;     */
    -&nbsp;    public double get99thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.99);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 99.9th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 99.9th percentile
    -&nbsp;     */
    -&nbsp;    public double get999thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.999);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the highest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the highest value
    -&nbsp;     */
    -&nbsp;    public abstract long getMax();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the arithmetic mean of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the arithmetic mean
    -&nbsp;     */
    -&nbsp;    public abstract double getMean();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the lowest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the lowest value
    -&nbsp;     */
    -&nbsp;    public abstract long getMin();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the standard deviation of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the standard value
    -&nbsp;     */
    -&nbsp;    public abstract double getStdDev();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Writes the values of the snapshot to the given stream.
    -&nbsp;     *
    -&nbsp;     * @param output an output stream
    -&nbsp;     */
    -&nbsp;    public abstract void dump(OutputStream output);
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-24.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-24.html
    deleted file mode 100644
    index e141dab4a0..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-24.html
    +++ /dev/null
    @@ -1,353 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Timer</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Timer (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Timer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (29/31)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">Timer$Context</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.concurrent.Callable;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A timer metric which aggregates timing durations and provides duration statistics, plus
    -&nbsp; * throughput statistics via {@link Meter}.
    -&nbsp; */
    -&nbsp;public class Timer implements Metered, Sampling {
    -&nbsp;    /**
    -&nbsp;     * A timing context.
    -&nbsp;     *
    -&nbsp;     * @see Timer#time()
    -&nbsp;     */
    -&nbsp;    public static class Context implements AutoCloseable {
    -&nbsp;        private final Timer timer;
    -&nbsp;        private final Clock clock;
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="fc">&nbsp;        Context(Timer timer, Clock clock) {</b>
    -<b class="fc">&nbsp;            this.timer = timer;</b>
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            this.startTime = clock.getTick();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Updates the timer with the difference between current and start time. Call to this method will
    -&nbsp;         * not reset the start time. Multiple calls result in multiple updates.
    -&nbsp;         *
    -&nbsp;         * @return the elapsed time in nanoseconds
    -&nbsp;         */
    -&nbsp;        public long stop() {
    -<b class="fc">&nbsp;            final long elapsed = clock.getTick() - startTime;</b>
    -<b class="fc">&nbsp;            timer.update(elapsed, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;            return elapsed;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Equivalent to calling {@link #stop()}.
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void close() {
    -<b class="fc">&nbsp;            stop();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final Meter meter;
    -&nbsp;    private final Histogram histogram;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Timer} using an {@link ExponentiallyDecayingReservoir} and the default
    -&nbsp;     * {@link Clock}.
    -&nbsp;     */
    -&nbsp;    public Timer() {
    -<b class="fc">&nbsp;        this(new ExponentiallyDecayingReservoir());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Timer} that uses the given {@link Reservoir}.
    -&nbsp;     *
    -&nbsp;     * @param reservoir the {@link Reservoir} implementation the timer should use
    -&nbsp;     */
    -&nbsp;    public Timer(Reservoir reservoir) {
    -<b class="fc">&nbsp;        this(reservoir, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Timer} that uses the given {@link Reservoir} and {@link Clock}.
    -&nbsp;     *
    -&nbsp;     * @param reservoir the {@link Reservoir} implementation the timer should use
    -&nbsp;     * @param clock     the {@link Clock} implementation the timer should use
    -&nbsp;     */
    -&nbsp;    public Timer(Reservoir reservoir, Clock clock) {
    -<b class="fc">&nbsp;        this(new Meter(clock), new Histogram(reservoir), clock);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public Timer(Meter meter, Histogram histogram, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.meter = meter;</b>
    -<b class="fc">&nbsp;        this.histogram = histogram;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a recorded duration.
    -&nbsp;     *
    -&nbsp;     * @param duration the length of the duration
    -&nbsp;     * @param unit     the scale unit of {@code duration}
    -&nbsp;     */
    -&nbsp;    public void update(long duration, TimeUnit unit) {
    -<b class="fc">&nbsp;        update(unit.toNanos(duration));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a recorded duration.
    -&nbsp;     *
    -&nbsp;     * @param duration the {@link Duration} to add to the timer. Negative or zero value are ignored.
    -&nbsp;     */
    -&nbsp;    public void update(Duration duration) {
    -<b class="fc">&nbsp;        update(duration.toNanos());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Times and records the duration of event.
    -&nbsp;     *
    -&nbsp;     * @param event a {@link Callable} whose {@link Callable#call()} method implements a process
    -&nbsp;     *              whose duration should be timed
    -&nbsp;     * @param &lt;T&gt;   the type of the value returned by {@code event}
    -&nbsp;     * @return the value returned by {@code event}
    -&nbsp;     * @throws Exception if {@code event} throws an {@link Exception}
    -&nbsp;     */
    -&nbsp;    public &lt;T&gt; T time(Callable&lt;T&gt; event) throws Exception {
    -<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return event.call();</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            update(clock.getTick() - startTime);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Times and records the duration of event. Should not throw exceptions, for that use the
    -&nbsp;     * {@link #time(Callable)} method.
    -&nbsp;     *
    -&nbsp;     * @param event a {@link Supplier} whose {@link Supplier#get()} method implements a process
    -&nbsp;     *              whose duration should be timed
    -&nbsp;     * @param &lt;T&gt;   the type of the value returned by {@code event}
    -&nbsp;     * @return the value returned by {@code event}
    -&nbsp;     */
    -&nbsp;    public &lt;T&gt; T timeSupplier(Supplier&lt;T&gt; event) {
    -<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return event.get();</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            update(clock.getTick() - startTime);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Times and records the duration of event.
    -&nbsp;     *
    -&nbsp;     * @param event a {@link Runnable} whose {@link Runnable#run()} method implements a process
    -&nbsp;     *              whose duration should be timed
    -&nbsp;     */
    -&nbsp;    public void time(Runnable event) {
    -<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            event.run();</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            update(clock.getTick() - startTime);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Context}.
    -&nbsp;     *
    -&nbsp;     * @return a new {@link Context}
    -&nbsp;     * @see Context
    -&nbsp;     */
    -&nbsp;    public Context time() {
    -<b class="fc">&nbsp;        return new Context(this, clock);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public long getCount() {
    -<b class="fc">&nbsp;        return histogram.getCount();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getFifteenMinuteRate() {
    -<b class="fc">&nbsp;        return meter.getFifteenMinuteRate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getFiveMinuteRate() {
    -<b class="fc">&nbsp;        return meter.getFiveMinuteRate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getMeanRate() {
    -<b class="fc">&nbsp;        return meter.getMeanRate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getOneMinuteRate() {
    -<b class="fc">&nbsp;        return meter.getOneMinuteRate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        return histogram.getSnapshot();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void update(long duration) {
    -<b class="pc">&nbsp;        if (duration &gt;= 0) {</b>
    -<b class="fc">&nbsp;            histogram.update(duration);</b>
    -<b class="fc">&nbsp;            meter.mark();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-25.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-25.html
    deleted file mode 100644
    index abb87ee58f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-25.html
    +++ /dev/null
    @@ -1,174 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > UniformReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: UniformReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">UniformReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.ThreadLocalRandom;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;import java.util.concurrent.atomic.AtomicLongArray;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A random sampling reservoir of a stream of {@code long}s. Uses Vitter&#39;s Algorithm R to produce a
    -&nbsp; * statistically representative sample.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://www.cs.umd.edu/~samir/498/vitter.pdf&quot;&gt;Random Sampling with a Reservoir&lt;/a&gt;
    -&nbsp; */
    -&nbsp;public class UniformReservoir implements Reservoir {
    -&nbsp;    private static final int DEFAULT_SIZE = 1028;
    -<b class="fc">&nbsp;    private final AtomicLong count = new AtomicLong();</b>
    -&nbsp;    private final AtomicLongArray values;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link UniformReservoir} of 1028 elements, which offers a 99.9% confidence level
    -&nbsp;     * with a 5% margin of error assuming a normal distribution.
    -&nbsp;     */
    -&nbsp;    public UniformReservoir() {
    -<b class="fc">&nbsp;        this(DEFAULT_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link UniformReservoir}.
    -&nbsp;     *
    -&nbsp;     * @param size the number of samples to keep in the sampling reservoir
    -&nbsp;     */
    -<b class="fc">&nbsp;    public UniformReservoir(int size) {</b>
    -<b class="fc">&nbsp;        this.values = new AtomicLongArray(size);</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; values.length(); i++) {</b>
    -<b class="fc">&nbsp;            values.set(i, 0);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        count.set(0);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        final long c = count.get();</b>
    -<b class="fc">&nbsp;        if (c &gt; values.length()) {</b>
    -<b class="fc">&nbsp;            return values.length();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return (int) c;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        final long c = count.incrementAndGet();</b>
    -<b class="fc">&nbsp;        if (c &lt;= values.length()) {</b>
    -<b class="fc">&nbsp;            values.set((int) c - 1, value);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final long r = ThreadLocalRandom.current().nextLong(c);</b>
    -<b class="fc">&nbsp;            if (r &lt; values.length()) {</b>
    -<b class="fc">&nbsp;                values.set((int) r, value);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        final int s = size();</b>
    -<b class="fc">&nbsp;        long[] copy = new long[s];</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; s; i++) {</b>
    -<b class="fc">&nbsp;            copy[i] = values.get(i);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return new UniformSnapshot(copy);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-26.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-26.html
    deleted file mode 100644
    index bf4ce64a42..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-26.html
    +++ /dev/null
    @@ -1,281 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > UniformSnapshot</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: UniformSnapshot (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">UniformSnapshot</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collection;
    -&nbsp;
    -&nbsp;import static java.lang.Math.floor;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A statistical snapshot of a {@link UniformSnapshot}.
    -&nbsp; */
    -&nbsp;public class UniformSnapshot extends Snapshot {
    -&nbsp;
    -&nbsp;    private final long[] values;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new {@link Snapshot} with the given values.
    -&nbsp;     *
    -&nbsp;     * @param values an unordered set of values in the reservoir
    -&nbsp;     */
    -<b class="fc">&nbsp;    public UniformSnapshot(Collection&lt;Long&gt; values) {</b>
    -<b class="fc">&nbsp;        final Object[] copy = values.toArray();</b>
    -<b class="fc">&nbsp;        this.values = new long[copy.length];</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; copy.length; i++) {</b>
    -<b class="fc">&nbsp;            this.values[i] = (Long) copy[i];</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        Arrays.sort(this.values);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new {@link Snapshot} with the given values.
    -&nbsp;     *
    -&nbsp;     * @param values an unordered set of values in the reservoir that can be used by this class directly
    -&nbsp;     */
    -<b class="fc">&nbsp;    public UniformSnapshot(long[] values) {</b>
    -<b class="fc">&nbsp;        this.values = Arrays.copyOf(values, values.length);</b>
    -<b class="fc">&nbsp;        Arrays.sort(this.values);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the given quantile.
    -&nbsp;     *
    -&nbsp;     * @param quantile a given quantile, in {@code [0..1]}
    -&nbsp;     * @return the value in the distribution at {@code quantile}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getValue(double quantile) {
    -<b class="fc">&nbsp;        if (quantile &lt; 0.0 || quantile &gt; 1.0 || Double.isNaN(quantile)) {</b>
    -<b class="fc">&nbsp;            throw new IllegalArgumentException(quantile + &quot; is not in [0..1]&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    -<b class="nc">&nbsp;            return 0.0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double pos = quantile * (values.length + 1);</b>
    -<b class="fc">&nbsp;        final int index = (int) pos;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (index &lt; 1) {</b>
    -<b class="fc">&nbsp;            return values[0];</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (index &gt;= values.length) {</b>
    -<b class="fc">&nbsp;            return values[values.length - 1];</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double lower = values[index - 1];</b>
    -<b class="fc">&nbsp;        final double upper = values[index];</b>
    -<b class="fc">&nbsp;        return lower + (pos - floor(pos)) * (upper - lower);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the number of values
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        return values.length;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the entire set of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the entire set of values
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long[] getValues() {
    -<b class="fc">&nbsp;        return Arrays.copyOf(values, values.length);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the highest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the highest value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getMax() {
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return values[values.length - 1];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the lowest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the lowest value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getMin() {
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return values[0];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the arithmetic mean of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the arithmetic mean
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getMean() {
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        double sum = 0;</b>
    -<b class="fc">&nbsp;        for (long value : values) {</b>
    -<b class="fc">&nbsp;            sum += value;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return sum / values.length;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the standard deviation of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the standard deviation value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getStdDev() {
    -&nbsp;        // two-pass algorithm for variance, avoids numeric overflow
    -&nbsp;
    -<b class="fc">&nbsp;        if (values.length &lt;= 1) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double mean = getMean();</b>
    -<b class="fc">&nbsp;        double sum = 0;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (long value : values) {</b>
    -<b class="fc">&nbsp;            final double diff = value - mean;</b>
    -<b class="fc">&nbsp;            sum += diff * diff;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double variance = sum / (values.length - 1);</b>
    -<b class="fc">&nbsp;        return Math.sqrt(variance);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Writes the values of the snapshot to the given stream.
    -&nbsp;     *
    -&nbsp;     * @param output an output stream
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void dump(OutputStream output) {
    -<b class="fc">&nbsp;        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {</b>
    -<b class="fc">&nbsp;            for (long value : values) {</b>
    -<b class="fc">&nbsp;                out.printf(&quot;%d%n&quot;, value);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-27.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-27.html
    deleted file mode 100644
    index 3b7829e7bf..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-27.html
    +++ /dev/null
    @@ -1,345 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > WeightedSnapshot</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">WeightedSnapshot</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.1%
    -  </span>
    -  <span class="absValue">
    -    (51/52)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">WeightedSnapshot$WeightedSample</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.Comparator;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A statistical snapshot of a {@link WeightedSnapshot}.
    -&nbsp; */
    -&nbsp;public class WeightedSnapshot extends Snapshot {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A single sample item with value and its weights for {@link WeightedSnapshot}.
    -&nbsp;     */
    -&nbsp;    public static class WeightedSample {
    -&nbsp;        public final long value;
    -&nbsp;        public final double weight;
    -&nbsp;
    -<b class="fc">&nbsp;        public WeightedSample(long value, double weight) {</b>
    -<b class="fc">&nbsp;            this.value = value;</b>
    -<b class="fc">&nbsp;            this.weight = weight;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final long[] values;
    -&nbsp;    private final double[] normWeights;
    -&nbsp;    private final double[] quantiles;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new {@link Snapshot} with the given values.
    -&nbsp;     *
    -&nbsp;     * @param values an unordered set of values in the reservoir
    -&nbsp;     */
    -<b class="fc">&nbsp;    public WeightedSnapshot(Collection&lt;WeightedSample&gt; values) {</b>
    -<b class="fc">&nbsp;        final WeightedSample[] copy = values.toArray(new WeightedSample[]{});</b>
    -&nbsp;
    -<b class="fc">&nbsp;        Arrays.sort(copy, Comparator.comparingLong(w -&gt; w.value));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.values = new long[copy.length];</b>
    -<b class="fc">&nbsp;        this.normWeights = new double[copy.length];</b>
    -<b class="fc">&nbsp;        this.quantiles = new double[copy.length];</b>
    -&nbsp;
    -<b class="fc">&nbsp;        double sumWeight = 0;</b>
    -<b class="pc">&nbsp;        for (WeightedSample sample : copy) {</b>
    -<b class="fc">&nbsp;            sumWeight += sample.weight;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        for (int i = 0; i &lt; copy.length; i++) {</b>
    -<b class="fc">&nbsp;            this.values[i] = copy[i].value;</b>
    -<b class="pc">&nbsp;            this.normWeights[i] = sumWeight != 0 ? copy[i].weight / sumWeight : 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        for (int i = 1; i &lt; copy.length; i++) {</b>
    -<b class="fc">&nbsp;            this.quantiles[i] = this.quantiles[i - 1] + this.normWeights[i - 1];</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the given quantile.
    -&nbsp;     *
    -&nbsp;     * @param quantile a given quantile, in {@code [0..1]}
    -&nbsp;     * @return the value in the distribution at {@code quantile}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getValue(double quantile) {
    -<b class="pc">&nbsp;        if (quantile &lt; 0.0 || quantile &gt; 1.0 || Double.isNaN(quantile)) {</b>
    -<b class="fc">&nbsp;            throw new IllegalArgumentException(quantile + &quot; is not in [0..1]&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0.0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        int posx = Arrays.binarySearch(quantiles, quantile);</b>
    -<b class="pc">&nbsp;        if (posx &lt; 0)</b>
    -<b class="fc">&nbsp;            posx = ((-posx) - 1) - 1;</b>
    -&nbsp;
    -<b class="pc">&nbsp;        if (posx &lt; 1) {</b>
    -<b class="fc">&nbsp;            return values[0];</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        if (posx &gt;= values.length) {</b>
    -<b class="nc">&nbsp;            return values[values.length - 1];</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        return values[posx];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the number of values
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        return values.length;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the entire set of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the entire set of values
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long[] getValues() {
    -<b class="fc">&nbsp;        return Arrays.copyOf(values, values.length);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the highest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the highest value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getMax() {
    -<b class="pc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return values[values.length - 1];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the lowest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the lowest value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getMin() {
    -<b class="pc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return values[0];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the weighted arithmetic mean of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the weighted arithmetic mean
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getMean() {
    -<b class="pc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        double sum = 0;</b>
    -<b class="pc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    -<b class="fc">&nbsp;            sum += values[i] * normWeights[i];</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return sum;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the weighted standard deviation of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the weighted standard deviation value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getStdDev() {
    -&nbsp;        // two-pass algorithm for variance, avoids numeric overflow
    -&nbsp;
    -<b class="pc">&nbsp;        if (values.length &lt;= 1) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double mean = getMean();</b>
    -<b class="fc">&nbsp;        double variance = 0;</b>
    -&nbsp;
    -<b class="pc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    -<b class="fc">&nbsp;            final double diff = values[i] - mean;</b>
    -<b class="fc">&nbsp;            variance += normWeights[i] * diff * diff;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        return Math.sqrt(variance);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Writes the values of the snapshot to the given stream.
    -&nbsp;     *
    -&nbsp;     * @param output an output stream
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void dump(OutputStream output) {
    -<b class="fc">&nbsp;        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {</b>
    -<b class="pc">&nbsp;            for (long value : values) {</b>
    -<b class="fc">&nbsp;                out.printf(&quot;%d%n&quot;, value);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-28.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-28.html
    deleted file mode 100644
    index fee7aac012..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-28.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MovingAverages</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MovingAverages (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">MovingAverages</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A triple of moving averages (one-, five-, and fifteen-minute
    -&nbsp; * moving average) as needed by {@link Meter}.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Included implementations are:
    -&nbsp; * &lt;ul&gt;
    -&nbsp; * &lt;li&gt;{@link ExponentialMovingAverages} exponential decaying average similar to the {@code top} Unix command.
    -&nbsp; * &lt;li&gt;{@link SlidingTimeWindowMovingAverages} simple (unweighted) moving average
    -&nbsp; * &lt;/ul&gt;
    -&nbsp; */
    -&nbsp;public interface MovingAverages {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Tick the internal clock of the MovingAverages implementation if needed
    -&nbsp;     * (according to the internal ticking interval)
    -&nbsp;     */
    -&nbsp;    void tickIfNecessary();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Update all three moving averages with n events having occurred since the last update.
    -&nbsp;     *
    -&nbsp;     * @param n
    -&nbsp;     */
    -&nbsp;    void update(long n);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the one-minute moving average rate
    -&nbsp;     *
    -&nbsp;     * @return the one-minute moving average rate
    -&nbsp;     */
    -&nbsp;    double getM1Rate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the five-minute moving average rate
    -&nbsp;     *
    -&nbsp;     * @return the five-minute moving average rate
    -&nbsp;     */
    -&nbsp;    double getM5Rate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the fifteen-minute moving average rate
    -&nbsp;     *
    -&nbsp;     * @return the fifteen-minute moving average rate
    -&nbsp;     */
    -&nbsp;    double getM15Rate();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-29.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-29.html
    deleted file mode 100644
    index 2066498496..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-29.html
    +++ /dev/null
    @@ -1,81 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Sampling</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Sampling (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Sampling</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An object which samples values.
    -&nbsp; */
    -&nbsp;public interface Sampling {
    -&nbsp;    /**
    -&nbsp;     * Returns a snapshot of the values.
    -&nbsp;     *
    -&nbsp;     * @return a snapshot of the values
    -&nbsp;     */
    -&nbsp;    Snapshot getSnapshot();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2a.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2a.html
    deleted file mode 100644
    index 9238da0c0a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2a.html
    +++ /dev/null
    @@ -1,82 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SettableGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SettableGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">SettableGauge</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
    -&nbsp; * See {@link DefaultSettableGauge}.
    -&nbsp; * &lt;/p&gt;
    -&nbsp; */
    -&nbsp;public interface SettableGauge&lt;T&gt; extends Gauge&lt;T&gt; {
    -&nbsp;    /**
    -&nbsp;     * Set the metric to a new value.
    -&nbsp;     */
    -&nbsp;    void setValue(T value);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2b.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2b.html
    deleted file mode 100644
    index ca931c4173..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2b.html
    +++ /dev/null
    @@ -1,103 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Gauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Gauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">Gauge$MockitoMock$16J7fyYM</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Gauge$MockitoMock$16J7fyYM$auxiliary$VXWBejxv</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Gauge$MockitoMock$16J7fyYM$auxiliary$YZRkD9Gi</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A gauge metric is an instantaneous reading of a particular value. To instrument a queue&#39;s depth,
    -&nbsp; * for example:&lt;br&gt;
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; * final Queue&amp;lt;String&amp;gt; queue = new ConcurrentLinkedQueue&amp;lt;String&amp;gt;();
    -&nbsp; * final Gauge&amp;lt;Integer&amp;gt; queueDepth = new Gauge&amp;lt;Integer&amp;gt;() {
    -&nbsp; *     public Integer getValue() {
    -&nbsp; *         return queue.size();
    -&nbsp; *     }
    -&nbsp; * };
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; *
    -&nbsp; * @param &lt;T&gt; the type of the metric&#39;s value
    -&nbsp; */
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface Gauge&lt;T&gt; extends Metric {
    -&nbsp;    /**
    -&nbsp;     * Returns the metric&#39;s current value.
    -&nbsp;     *
    -&nbsp;     * @return the metric&#39;s current value
    -&nbsp;     */
    -&nbsp;    T getValue();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2c.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2c.html
    deleted file mode 100644
    index 6fdee7b6b0..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2c.html
    +++ /dev/null
    @@ -1,85 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricSet (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricSet</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of named metrics.
    -&nbsp; *
    -&nbsp; * @see MetricRegistry#registerAll(MetricSet)
    -&nbsp; */
    -&nbsp;public interface MetricSet extends Metric {
    -&nbsp;    /**
    -&nbsp;     * A map of metric names to metrics.
    -&nbsp;     *
    -&nbsp;     * @return the metrics
    -&nbsp;     */
    -&nbsp;    Map&lt;String, Metric&gt; getMetrics();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2d.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2d.html
    deleted file mode 100644
    index 3683d41905..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2d.html
    +++ /dev/null
    @@ -1,78 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Reporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Reporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Reporter</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.Closeable;
    -&nbsp;
    -&nbsp;/*
    -&nbsp; * A tag interface to indicate that a class is a Reporter.
    -&nbsp; */
    -&nbsp;public interface Reporter extends Closeable {
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2e.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2e.html
    deleted file mode 100644
    index e9bc643c83..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2e.html
    +++ /dev/null
    @@ -1,104 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Reservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Reservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">Reservoir$MockitoMock$STXzHw3s</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Reservoir$MockitoMock$STXzHw3s$auxiliary$oVK7dNvP</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Reservoir$MockitoMock$STXzHw3s$auxiliary$YxGDMzIi</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A statistically representative reservoir of a data stream.
    -&nbsp; */
    -&nbsp;public interface Reservoir {
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values recorded.
    -&nbsp;     *
    -&nbsp;     * @return the number of values recorded
    -&nbsp;     */
    -&nbsp;    int size();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a new recorded value to the reservoir.
    -&nbsp;     *
    -&nbsp;     * @param value a new recorded value
    -&nbsp;     */
    -&nbsp;    void update(long value);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a snapshot of the reservoir&#39;s values.
    -&nbsp;     *
    -&nbsp;     * @return a snapshot of the reservoir&#39;s values
    -&nbsp;     */
    -&nbsp;    Snapshot getSnapshot();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2f.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2f.html
    deleted file mode 100644
    index 3051d1adfa..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-2f.html
    +++ /dev/null
    @@ -1,81 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Counting</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Counting (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Counting</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An interface for metric types which have counts.
    -&nbsp; */
    -&nbsp;public interface Counting {
    -&nbsp;    /**
    -&nbsp;     * Returns the current count.
    -&nbsp;     *
    -&nbsp;     * @return the current count
    -&nbsp;     */
    -&nbsp;    long getCount();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-3.html
    deleted file mode 100644
    index 1f2af6aec9..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-3.html
    +++ /dev/null
    @@ -1,231 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Clock</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Clock (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Clock</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$j3mRmozx</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$j3mRmozx$auxiliary$GFSzcwb2</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$j3mRmozx$auxiliary$zZkFzVkC</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$lyFA7CGo</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$lyFA7CGo$auxiliary$2Ki750vQ</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$lyFA7CGo$auxiliary$Vkl0Ml51</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$P9aNbVxU</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$P9aNbVxU$auxiliary$sfUu9esv</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$P9aNbVxU$auxiliary$wDu3E1JB</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$qQ3d06jA</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$qQ3d06jA$auxiliary$GLKfHdTk</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$qQ3d06jA$auxiliary$huRkNnHh</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$UserTimeClock</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$UserTimeClockHolder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An abstraction for how time passes. It is passed to {@link Timer} to track timing.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class Clock {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns the current time tick.
    -&nbsp;     *
    -&nbsp;     * @return time tick in nanoseconds
    -&nbsp;     */
    -&nbsp;    public abstract long getTick();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the current time in milliseconds.
    -&nbsp;     *
    -&nbsp;     * @return time in milliseconds
    -&nbsp;     */
    -&nbsp;    public long getTime() {
    -<b class="fc">&nbsp;        return System.currentTimeMillis();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * The default clock to use.
    -&nbsp;     *
    -&nbsp;     * @return the default {@link Clock} instance
    -&nbsp;     * @see Clock.UserTimeClock
    -&nbsp;     */
    -&nbsp;    public static Clock defaultClock() {
    -<b class="fc">&nbsp;        return UserTimeClockHolder.DEFAULT;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A clock implementation which returns the current time in epoch nanoseconds.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class UserTimeClock extends Clock {</b>
    -&nbsp;        @Override
    -&nbsp;        public long getTick() {
    -<b class="fc">&nbsp;            return System.nanoTime();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class UserTimeClockHolder {
    -<b class="fc">&nbsp;        private static final Clock DEFAULT = new UserTimeClock();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-30.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-30.html
    deleted file mode 100644
    index 56e570d051..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-30.html
    +++ /dev/null
    @@ -1,89 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CsvFileProvider</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CsvFileProvider (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">CsvFileProvider$MockitoMock$impgqtWu</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CsvFileProvider$MockitoMock$impgqtWu$auxiliary$08Dorks3</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CsvFileProvider$MockitoMock$impgqtWu$auxiliary$NMsmJS5i</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.File;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * This interface allows a pluggable implementation of what file names
    -&nbsp; * the {@link CsvReporter} will write to.
    -&nbsp; */
    -&nbsp;public interface CsvFileProvider {
    -&nbsp;
    -&nbsp;    File getFile(File directory, String metricName);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-31.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-31.html
    deleted file mode 100644
    index 4558b61015..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-31.html
    +++ /dev/null
    @@ -1,85 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metric</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Metric (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">Metric$MockitoMock$SoPFH6C1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Metric$MockitoMock$SoPFH6C1$auxiliary$9WaRnIG6</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Metric$MockitoMock$SoPFH6C1$auxiliary$MCMcHURq</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A tag interface to indicate that a class is a metric.
    -&nbsp; */
    -&nbsp;public interface Metric {
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-32.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-32.html
    deleted file mode 100644
    index 7af2b1e2a4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-32.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metered</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Metered (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Metered</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An object which maintains mean and moving average rates.
    -&nbsp; */
    -&nbsp;public interface Metered extends Metric, Counting {
    -&nbsp;    /**
    -&nbsp;     * Returns the number of events which have been marked.
    -&nbsp;     *
    -&nbsp;     * @return the number of events which have been marked
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    long getCount();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the fifteen-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the fifteen-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getFifteenMinuteRate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the five-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the five-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getFiveMinuteRate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the mean rate at which events have occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the mean rate at which events have occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getMeanRate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the one-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the one-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getOneMinuteRate();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-4.html
    deleted file mode 100644
    index dbfc688054..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-4.html
    +++ /dev/null
    @@ -1,490 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ConsoleReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ConsoleReporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ConsoleReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (90/90)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">ConsoleReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ConsoleReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (30/34)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.PrintStream;
    -&nbsp;import java.text.DateFormat;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Date;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.TimeZone;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which outputs measurements to a {@link PrintStream}, like {@code System.out}.
    -&nbsp; */
    -<b class="fc">&nbsp;public class ConsoleReporter extends ScheduledReporter {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link ConsoleReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link ConsoleReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link ConsoleReporter} instances. Defaults to using the default locale and
    -&nbsp;     * time zone, writing to {@code System.out}, converting rates to events/second, converting
    -&nbsp;     * durations to milliseconds, and not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private PrintStream output;
    -&nbsp;        private Locale locale;
    -&nbsp;        private Clock clock;
    -&nbsp;        private TimeZone timeZone;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private MetricFilter filter;
    -&nbsp;        private ScheduledExecutorService executor;
    -&nbsp;        private boolean shutdownExecutorOnStop;
    -&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.output = System.out;</b>
    -<b class="fc">&nbsp;            this.locale = Locale.getDefault();</b>
    -<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    -<b class="fc">&nbsp;            this.timeZone = TimeZone.getDefault();</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;            this.executor = null;</b>
    -<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;            disabledMetricAttributes = Collections.emptySet();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -&nbsp;         * Default value is true.
    -&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -&nbsp;         *
    -&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    -&nbsp;         * Default value is null.
    -&nbsp;         * Null value leads to executor will be auto created on start.
    -&nbsp;         *
    -&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Write to the given {@link PrintStream}.
    -&nbsp;         *
    -&nbsp;         * @param output a {@link PrintStream} instance.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder outputTo(PrintStream output) {
    -<b class="fc">&nbsp;            this.output = output;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Format numbers for the given {@link Locale}.
    -&nbsp;         *
    -&nbsp;         * @param locale a {@link Locale}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder formattedFor(Locale locale) {
    -<b class="fc">&nbsp;            this.locale = locale;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given {@link Clock} instance for the time.
    -&nbsp;         *
    -&nbsp;         * @param clock a {@link Clock} instance
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withClock(Clock clock) {
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given {@link TimeZone} for the time.
    -&nbsp;         *
    -&nbsp;         * @param timeZone a {@link TimeZone}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder formattedFor(TimeZone timeZone) {
    -<b class="fc">&nbsp;            this.timeZone = timeZone;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    -&nbsp;         * See {@link MetricAttribute}.
    -&nbsp;         *
    -&nbsp;         * @param disabledMetricAttributes a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link ConsoleReporter} with the given properties.
    -&nbsp;         *
    -&nbsp;         * @return a {@link ConsoleReporter}
    -&nbsp;         */
    -&nbsp;        public ConsoleReporter build() {
    -<b class="fc">&nbsp;            return new ConsoleReporter(registry,</b>
    -&nbsp;                    output,
    -&nbsp;                    locale,
    -&nbsp;                    clock,
    -&nbsp;                    timeZone,
    -&nbsp;                    rateUnit,
    -&nbsp;                    durationUnit,
    -&nbsp;                    filter,
    -&nbsp;                    executor,
    -&nbsp;                    shutdownExecutorOnStop,
    -&nbsp;                    disabledMetricAttributes);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static final int CONSOLE_WIDTH = 80;
    -&nbsp;
    -&nbsp;    private final PrintStream output;
    -&nbsp;    private final Locale locale;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final DateFormat dateFormat;
    -&nbsp;
    -&nbsp;    private ConsoleReporter(MetricRegistry registry,
    -&nbsp;                            PrintStream output,
    -&nbsp;                            Locale locale,
    -&nbsp;                            Clock clock,
    -&nbsp;                            TimeZone timeZone,
    -&nbsp;                            TimeUnit rateUnit,
    -&nbsp;                            TimeUnit durationUnit,
    -&nbsp;                            MetricFilter filter,
    -&nbsp;                            ScheduledExecutorService executor,
    -&nbsp;                            boolean shutdownExecutorOnStop,
    -&nbsp;                            Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;        super(registry, &quot;console-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, disabledMetricAttributes);</b>
    -<b class="fc">&nbsp;        this.output = output;</b>
    -<b class="fc">&nbsp;        this.locale = locale;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT,</b>
    -&nbsp;                DateFormat.MEDIUM,
    -&nbsp;                locale);
    -<b class="fc">&nbsp;        dateFormat.setTimeZone(timeZone);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        final String dateTime = dateFormat.format(new Date(clock.getTime()));</b>
    -<b class="fc">&nbsp;        printWithBanner(dateTime, &#39;=&#39;);</b>
    -<b class="fc">&nbsp;        output.println();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (!gauges.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Gauges&quot;, &#39;-&#39;);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printGauge(entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (!counters.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Counters&quot;, &#39;-&#39;);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printCounter(entry);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (!histograms.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Histograms&quot;, &#39;-&#39;);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printHistogram(entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (!meters.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Meters&quot;, &#39;-&#39;);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printMeter(entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (!timers.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Timers&quot;, &#39;-&#39;);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printTimer(entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        output.println();</b>
    -<b class="fc">&nbsp;        output.flush();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void printMeter(Meter meter) {
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, meter.getCount()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, &quot;         mean rate = %2.2f events/%s&quot;, convertRate(meter.getMeanRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, &quot;     1-minute rate = %2.2f events/%s&quot;, convertRate(meter.getOneMinuteRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, &quot;     5-minute rate = %2.2f events/%s&quot;, convertRate(meter.getFiveMinuteRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, &quot;    15-minute rate = %2.2f events/%s&quot;, convertRate(meter.getFifteenMinuteRate()), getRateUnit()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void printCounter(Map.Entry&lt;String, Counter&gt; entry) {
    -<b class="fc">&nbsp;        output.printf(locale, &quot;             count = %d%n&quot;, entry.getValue().getCount());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void printGauge(Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;        output.printf(locale, &quot;             value = %s%n&quot;, gauge.getValue());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void printHistogram(Histogram histogram) {
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, histogram.getCount()));</b>
    -<b class="fc">&nbsp;        Snapshot snapshot = histogram.getSnapshot();</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MIN, String.format(locale, &quot;               min = %d&quot;, snapshot.getMin()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MAX, String.format(locale, &quot;               max = %d&quot;, snapshot.getMax()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN, String.format(locale, &quot;              mean = %2.2f&quot;, snapshot.getMean()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.STDDEV, String.format(locale, &quot;            stddev = %2.2f&quot;, snapshot.getStdDev()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P50, String.format(locale, &quot;            median = %2.2f&quot;, snapshot.getMedian()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P75, String.format(locale, &quot;              75%% &lt;= %2.2f&quot;, snapshot.get75thPercentile()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P95, String.format(locale, &quot;              95%% &lt;= %2.2f&quot;, snapshot.get95thPercentile()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P98, String.format(locale, &quot;              98%% &lt;= %2.2f&quot;, snapshot.get98thPercentile()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P99, String.format(locale, &quot;              99%% &lt;= %2.2f&quot;, snapshot.get99thPercentile()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P999, String.format(locale, &quot;            99.9%% &lt;= %2.2f&quot;, snapshot.get999thPercentile()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void printTimer(Timer timer) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, timer.getCount()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, &quot;         mean rate = %2.2f calls/%s&quot;, convertRate(timer.getMeanRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, &quot;     1-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getOneMinuteRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, &quot;     5-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getFiveMinuteRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, &quot;    15-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getFifteenMinuteRate()), getRateUnit()));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MIN, String.format(locale, &quot;               min = %2.2f %s&quot;, convertDuration(snapshot.getMin()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MAX, String.format(locale, &quot;               max = %2.2f %s&quot;, convertDuration(snapshot.getMax()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN, String.format(locale, &quot;              mean = %2.2f %s&quot;, convertDuration(snapshot.getMean()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.STDDEV, String.format(locale, &quot;            stddev = %2.2f %s&quot;, convertDuration(snapshot.getStdDev()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P50, String.format(locale, &quot;            median = %2.2f %s&quot;, convertDuration(snapshot.getMedian()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P75, String.format(locale, &quot;              75%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get75thPercentile()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P95, String.format(locale, &quot;              95%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get95thPercentile()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P98, String.format(locale, &quot;              98%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get98thPercentile()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P99, String.format(locale, &quot;              99%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get99thPercentile()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P999, String.format(locale, &quot;            99.9%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get999thPercentile()), getDurationUnit()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void printWithBanner(String s, char c) {
    -<b class="fc">&nbsp;        output.print(s);</b>
    -<b class="fc">&nbsp;        output.print(&#39; &#39;);</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; (CONSOLE_WIDTH - s.length() - 1); i++) {</b>
    -<b class="fc">&nbsp;            output.print(c);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        output.println();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Print only if the attribute is enabled
    -&nbsp;     *
    -&nbsp;     * @param type   Metric attribute
    -&nbsp;     * @param status Status to be logged
    -&nbsp;     */
    -&nbsp;    private void printIfEnabled(MetricAttribute type, String status) {
    -<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        output.println(status);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-5.html
    deleted file mode 100644
    index b979b87149..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-5.html
    +++ /dev/null
    @@ -1,160 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Counter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Counter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Counter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An incrementing and decrementing counter metric.
    -&nbsp; */
    -&nbsp;public class Counter implements Metric, Counting {
    -&nbsp;    private final LongAdder count;
    -&nbsp;
    -<b class="fc">&nbsp;    public Counter() {</b>
    -<b class="fc">&nbsp;        this.count = new LongAdder();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Increment the counter by one.
    -&nbsp;     */
    -&nbsp;    public void inc() {
    -<b class="fc">&nbsp;        inc(1);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Increment the counter by {@code n}.
    -&nbsp;     *
    -&nbsp;     * @param n the amount by which the counter will be increased
    -&nbsp;     */
    -&nbsp;    public void inc(long n) {
    -<b class="fc">&nbsp;        count.add(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Decrement the counter by one.
    -&nbsp;     */
    -&nbsp;    public void dec() {
    -<b class="fc">&nbsp;        dec(1);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Decrement the counter by {@code n}.
    -&nbsp;     *
    -&nbsp;     * @param n the amount by which the counter will be decreased
    -&nbsp;     */
    -&nbsp;    public void dec(long n) {
    -<b class="fc">&nbsp;        count.add(-n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the counter&#39;s current value.
    -&nbsp;     *
    -&nbsp;     * @return the counter&#39;s current value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getCount() {
    -<b class="fc">&nbsp;        return count.sum();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-6.html
    deleted file mode 100644
    index e93e9396a1..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-6.html
    +++ /dev/null
    @@ -1,477 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CsvReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CsvReporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CsvReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.4%
    -  </span>
    -  <span class="absValue">
    -    (81/84)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">CsvReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CsvReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (10/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.1%
    -  </span>
    -  <span class="absValue">
    -    (27/31)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.io.File;
    -&nbsp;import java.io.FileOutputStream;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which creates a comma-separated values file of the measurements for each metric.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CsvReporter extends ScheduledReporter {</b>
    -&nbsp;    private static final String DEFAULT_SEPARATOR = &quot;,&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link CsvReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link CsvReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link CsvReporter} instances. Defaults to using the default locale, converting
    -&nbsp;     * rates to events/second, converting durations to milliseconds, and not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private Locale locale;
    -&nbsp;        private String separator;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private Clock clock;
    -&nbsp;        private MetricFilter filter;
    -&nbsp;        private ScheduledExecutorService executor;
    -&nbsp;        private boolean shutdownExecutorOnStop;
    -&nbsp;        private CsvFileProvider csvFileProvider;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.locale = Locale.getDefault();</b>
    -<b class="fc">&nbsp;            this.separator = DEFAULT_SEPARATOR;</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    -<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;            this.executor = null;</b>
    -<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;            this.csvFileProvider = new FixedNameCsvFileProvider();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -&nbsp;         * Default value is true.
    -&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -&nbsp;         *
    -&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    -&nbsp;         * Default value is null.
    -&nbsp;         * Null value leads to executor will be auto created on start.
    -&nbsp;         *
    -&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Format numbers for the given {@link Locale}.
    -&nbsp;         *
    -&nbsp;         * @param locale a {@link Locale}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder formatFor(Locale locale) {
    -<b class="fc">&nbsp;            this.locale = locale;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given string to use as the separator for values.
    -&nbsp;         *
    -&nbsp;         * @param separator the string to use for the separator.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withSeparator(String separator) {
    -<b class="fc">&nbsp;            this.separator = separator;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given {@link Clock} instance for the time.
    -&nbsp;         *
    -&nbsp;         * @param clock a {@link Clock} instance
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withClock(Clock clock) {
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withCsvFileProvider(CsvFileProvider csvFileProvider) {
    -<b class="fc">&nbsp;            this.csvFileProvider = csvFileProvider;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link CsvReporter} with the given properties, writing {@code .csv} files to the
    -&nbsp;         * given directory.
    -&nbsp;         *
    -&nbsp;         * @param directory the directory in which the {@code .csv} files will be created
    -&nbsp;         * @return a {@link CsvReporter}
    -&nbsp;         */
    -&nbsp;        public CsvReporter build(File directory) {
    -<b class="fc">&nbsp;            return new CsvReporter(registry,</b>
    -&nbsp;                    directory,
    -&nbsp;                    locale,
    -&nbsp;                    separator,
    -&nbsp;                    rateUnit,
    -&nbsp;                    durationUnit,
    -&nbsp;                    clock,
    -&nbsp;                    filter,
    -&nbsp;                    executor,
    -&nbsp;                    shutdownExecutorOnStop,
    -&nbsp;                    csvFileProvider);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(CsvReporter.class);</b>
    -&nbsp;
    -&nbsp;    private final File directory;
    -&nbsp;    private final Locale locale;
    -&nbsp;    private final String separator;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final CsvFileProvider csvFileProvider;
    -&nbsp;
    -&nbsp;    private final String histogramFormat;
    -&nbsp;    private final String meterFormat;
    -&nbsp;    private final String timerFormat;
    -&nbsp;
    -&nbsp;    private final String timerHeader;
    -&nbsp;    private final String meterHeader;
    -&nbsp;    private final String histogramHeader;
    -&nbsp;
    -&nbsp;    private CsvReporter(MetricRegistry registry,
    -&nbsp;                        File directory,
    -&nbsp;                        Locale locale,
    -&nbsp;                        String separator,
    -&nbsp;                        TimeUnit rateUnit,
    -&nbsp;                        TimeUnit durationUnit,
    -&nbsp;                        Clock clock,
    -&nbsp;                        MetricFilter filter,
    -&nbsp;                        ScheduledExecutorService executor,
    -&nbsp;                        boolean shutdownExecutorOnStop,
    -&nbsp;                        CsvFileProvider csvFileProvider) {
    -<b class="fc">&nbsp;        super(registry, &quot;csv-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop);</b>
    -<b class="fc">&nbsp;        this.directory = directory;</b>
    -<b class="fc">&nbsp;        this.locale = locale;</b>
    -<b class="fc">&nbsp;        this.separator = separator;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.csvFileProvider = csvFileProvider;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.histogramFormat = String.join(separator, &quot;%d&quot;, &quot;%d&quot;, &quot;%f&quot;, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;);</b>
    -<b class="fc">&nbsp;        this.meterFormat = String.join(separator, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;events/%s&quot;);</b>
    -<b class="fc">&nbsp;        this.timerFormat = String.join(separator, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;calls/%s&quot;, &quot;%s&quot;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.timerHeader = String.join(separator, &quot;count&quot;, &quot;max&quot;, &quot;mean&quot;, &quot;min&quot;, &quot;stddev&quot;, &quot;p50&quot;, &quot;p75&quot;, &quot;p95&quot;, &quot;p98&quot;, &quot;p99&quot;, &quot;p999&quot;, &quot;mean_rate&quot;, &quot;m1_rate&quot;, &quot;m5_rate&quot;, &quot;m15_rate&quot;, &quot;rate_unit&quot;, &quot;duration_unit&quot;);</b>
    -<b class="fc">&nbsp;        this.meterHeader = String.join(separator, &quot;count&quot;, &quot;mean_rate&quot;, &quot;m1_rate&quot;, &quot;m5_rate&quot;, &quot;m15_rate&quot;, &quot;rate_unit&quot;);</b>
    -<b class="fc">&nbsp;        this.histogramHeader = String.join(separator, &quot;count&quot;, &quot;max&quot;, &quot;mean&quot;, &quot;min&quot;, &quot;stddev&quot;, &quot;p50&quot;, &quot;p75&quot;, &quot;p95&quot;, &quot;p98&quot;, &quot;p99&quot;, &quot;p999&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        final long timestamp = TimeUnit.MILLISECONDS.toSeconds(clock.getTime());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportGauge(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportCounter(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportHistogram(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportMeter(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportTimer(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportTimer(long timestamp, String name, Timer timer) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        report(timestamp,</b>
    -&nbsp;                name,
    -&nbsp;                timerHeader,
    -&nbsp;                timerFormat,
    -<b class="fc">&nbsp;                timer.getCount(),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getMax()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getMean()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getMin()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getStdDev()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getMedian()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get75thPercentile()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get95thPercentile()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get98thPercentile()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get99thPercentile()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get999thPercentile()),</b>
    -<b class="fc">&nbsp;                convertRate(timer.getMeanRate()),</b>
    -<b class="fc">&nbsp;                convertRate(timer.getOneMinuteRate()),</b>
    -<b class="fc">&nbsp;                convertRate(timer.getFiveMinuteRate()),</b>
    -<b class="fc">&nbsp;                convertRate(timer.getFifteenMinuteRate()),</b>
    -<b class="fc">&nbsp;                getRateUnit(),</b>
    -<b class="fc">&nbsp;                getDurationUnit());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportMeter(long timestamp, String name, Meter meter) {
    -<b class="fc">&nbsp;        report(timestamp,</b>
    -&nbsp;                name,
    -&nbsp;                meterHeader,
    -&nbsp;                meterFormat,
    -<b class="fc">&nbsp;                meter.getCount(),</b>
    -<b class="fc">&nbsp;                convertRate(meter.getMeanRate()),</b>
    -<b class="fc">&nbsp;                convertRate(meter.getOneMinuteRate()),</b>
    -<b class="fc">&nbsp;                convertRate(meter.getFiveMinuteRate()),</b>
    -<b class="fc">&nbsp;                convertRate(meter.getFifteenMinuteRate()),</b>
    -<b class="fc">&nbsp;                getRateUnit());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportHistogram(long timestamp, String name, Histogram histogram) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        report(timestamp,</b>
    -&nbsp;                name,
    -&nbsp;                histogramHeader,
    -&nbsp;                histogramFormat,
    -<b class="fc">&nbsp;                histogram.getCount(),</b>
    -<b class="fc">&nbsp;                snapshot.getMax(),</b>
    -<b class="fc">&nbsp;                snapshot.getMean(),</b>
    -<b class="fc">&nbsp;                snapshot.getMin(),</b>
    -<b class="fc">&nbsp;                snapshot.getStdDev(),</b>
    -<b class="fc">&nbsp;                snapshot.getMedian(),</b>
    -<b class="fc">&nbsp;                snapshot.get75thPercentile(),</b>
    -<b class="fc">&nbsp;                snapshot.get95thPercentile(),</b>
    -<b class="fc">&nbsp;                snapshot.get98thPercentile(),</b>
    -<b class="fc">&nbsp;                snapshot.get99thPercentile(),</b>
    -<b class="fc">&nbsp;                snapshot.get999thPercentile());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportCounter(long timestamp, String name, Counter counter) {
    -<b class="fc">&nbsp;        report(timestamp, name, &quot;count&quot;, &quot;%d&quot;, counter.getCount());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportGauge(long timestamp, String name, Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;        report(timestamp, name, &quot;value&quot;, &quot;%s&quot;, gauge.getValue());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void report(long timestamp, String name, String header, String line, Object... values) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            final File file = csvFileProvider.getFile(directory, name);</b>
    -<b class="fc">&nbsp;            final boolean fileAlreadyExists = file.exists();</b>
    -<b class="fc">&nbsp;            if (fileAlreadyExists || file.createNewFile()) {</b>
    -<b class="fc">&nbsp;                try (PrintWriter out = new PrintWriter(new OutputStreamWriter(</b>
    -&nbsp;                        new FileOutputStream(file, true), UTF_8))) {
    -<b class="fc">&nbsp;                    if (!fileAlreadyExists) {</b>
    -<b class="fc">&nbsp;                        out.println(&quot;t&quot; + separator + header);</b>
    -&nbsp;                    }
    -<b class="fc">&nbsp;                    out.printf(locale, String.format(locale, &quot;%d&quot; + separator + &quot;%s%n&quot;, timestamp, line), values);</b>
    -<b class="fc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            LOGGER.warn(&quot;Error writing to {}&quot;, name, e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String name) {
    -<b class="nc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-7.html
    deleted file mode 100644
    index f464a7719b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-7.html
    +++ /dev/null
    @@ -1,147 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DefaultSettableGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DefaultSettableGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DefaultSettableGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
    -&nbsp; */
    -&nbsp;public class DefaultSettableGauge&lt;T&gt; implements SettableGauge&lt;T&gt; {
    -&nbsp;    private volatile T value;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create an instance with no default value.
    -&nbsp;     */
    -&nbsp;    public DefaultSettableGauge() {
    -<b class="fc">&nbsp;        this(null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create an instance with a default value.
    -&nbsp;     *
    -&nbsp;     * @param defaultValue default value
    -&nbsp;     */
    -<b class="fc">&nbsp;    public DefaultSettableGauge(T defaultValue) {</b>
    -<b class="fc">&nbsp;        this.value = defaultValue;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Set the metric to a new value.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void setValue(T value) {
    -<b class="fc">&nbsp;        this.value = value;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the current value.
    -&nbsp;     *
    -&nbsp;     * @return the current value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public T getValue() {
    -<b class="fc">&nbsp;        return value;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-8.html
    deleted file mode 100644
    index 9bf70b1ac3..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-8.html
    +++ /dev/null
    @@ -1,137 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DerivativeGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DerivativeGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DerivativeGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A gauge whose value is derived from the value of another gauge.
    -&nbsp; *
    -&nbsp; * @param &lt;F&gt; the base gauge&#39;s value type
    -&nbsp; * @param &lt;T&gt; the derivative type
    -&nbsp; */
    -&nbsp;public abstract class DerivativeGauge&lt;F, T&gt; implements Gauge&lt;T&gt; {
    -&nbsp;    private final Gauge&lt;F&gt; base;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new derivative with the given base gauge.
    -&nbsp;     *
    -&nbsp;     * @param base the gauge from which to derive this gauge&#39;s value
    -&nbsp;     */
    -<b class="fc">&nbsp;    protected DerivativeGauge(Gauge&lt;F&gt; base) {</b>
    -<b class="fc">&nbsp;        this.base = base;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public T getValue() {
    -<b class="fc">&nbsp;        return transform(base.getValue());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Transforms the value of the base gauge to the value of this gauge.
    -&nbsp;     *
    -&nbsp;     * @param value the value of the base gauge
    -&nbsp;     * @return this gauge&#39;s value
    -&nbsp;     */
    -&nbsp;    protected abstract T transform(F value);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-9.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-9.html
    deleted file mode 100644
    index da01262f6a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-9.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > EWMA</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: EWMA (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">EWMA</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;import static java.lang.Math.exp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An exponentially-weighted moving average.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://www.teamquest.com/pdfs/whitepaper/ldavg1.pdf&quot;&gt;UNIX Load Average Part 1: How
    -&nbsp; * It Works&lt;/a&gt;
    -&nbsp; * @see &lt;a href=&quot;http://www.teamquest.com/pdfs/whitepaper/ldavg2.pdf&quot;&gt;UNIX Load Average Part 2: Not
    -&nbsp; * Your Average Average&lt;/a&gt;
    -&nbsp; * @see &lt;a href=&quot;http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average&quot;&gt;EMA&lt;/a&gt;
    -&nbsp; */
    -&nbsp;public class EWMA {
    -&nbsp;    private static final int INTERVAL = 5;
    -&nbsp;    private static final double SECONDS_PER_MINUTE = 60.0;
    -&nbsp;    private static final int ONE_MINUTE = 1;
    -&nbsp;    private static final int FIVE_MINUTES = 5;
    -&nbsp;    private static final int FIFTEEN_MINUTES = 15;
    -<b class="fc">&nbsp;    private static final double M1_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / ONE_MINUTE);</b>
    -<b class="fc">&nbsp;    private static final double M5_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIVE_MINUTES);</b>
    -<b class="fc">&nbsp;    private static final double M15_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIFTEEN_MINUTES);</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private volatile boolean initialized = false;</b>
    -<b class="fc">&nbsp;    private volatile double rate = 0.0;</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private final LongAdder uncounted = new LongAdder();</b>
    -&nbsp;    private final double alpha, interval;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new EWMA which is equivalent to the UNIX one minute load average and which expects
    -&nbsp;     * to be ticked every 5 seconds.
    -&nbsp;     *
    -&nbsp;     * @return a one-minute EWMA
    -&nbsp;     */
    -&nbsp;    public static EWMA oneMinuteEWMA() {
    -<b class="fc">&nbsp;        return new EWMA(M1_ALPHA, INTERVAL, TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new EWMA which is equivalent to the UNIX five minute load average and which expects
    -&nbsp;     * to be ticked every 5 seconds.
    -&nbsp;     *
    -&nbsp;     * @return a five-minute EWMA
    -&nbsp;     */
    -&nbsp;    public static EWMA fiveMinuteEWMA() {
    -<b class="fc">&nbsp;        return new EWMA(M5_ALPHA, INTERVAL, TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new EWMA which is equivalent to the UNIX fifteen minute load average and which
    -&nbsp;     * expects to be ticked every 5 seconds.
    -&nbsp;     *
    -&nbsp;     * @return a fifteen-minute EWMA
    -&nbsp;     */
    -&nbsp;    public static EWMA fifteenMinuteEWMA() {
    -<b class="fc">&nbsp;        return new EWMA(M15_ALPHA, INTERVAL, TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new EWMA with a specific smoothing constant.
    -&nbsp;     *
    -&nbsp;     * @param alpha        the smoothing constant
    -&nbsp;     * @param interval     the expected tick interval
    -&nbsp;     * @param intervalUnit the time unit of the tick interval
    -&nbsp;     */
    -<b class="fc">&nbsp;    public EWMA(double alpha, long interval, TimeUnit intervalUnit) {</b>
    -<b class="fc">&nbsp;        this.interval = intervalUnit.toNanos(interval);</b>
    -<b class="fc">&nbsp;        this.alpha = alpha;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Update the moving average with a new value.
    -&nbsp;     *
    -&nbsp;     * @param n the new value
    -&nbsp;     */
    -&nbsp;    public void update(long n) {
    -<b class="fc">&nbsp;        uncounted.add(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Mark the passage of time and decay the current rate accordingly.
    -&nbsp;     */
    -&nbsp;    public void tick() {
    -<b class="fc">&nbsp;        final long count = uncounted.sumThenReset();</b>
    -<b class="fc">&nbsp;        final double instantRate = count / interval;</b>
    -<b class="pc">&nbsp;        if (initialized) {</b>
    -<b class="fc">&nbsp;            final double oldRate = this.rate;</b>
    -<b class="fc">&nbsp;            rate = oldRate + (alpha * (instantRate - oldRate));</b>
    -<b class="fc">&nbsp;        } else {</b>
    -<b class="fc">&nbsp;            rate = instantRate;</b>
    -<b class="fc">&nbsp;            initialized = true;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the rate in the given units of time.
    -&nbsp;     *
    -&nbsp;     * @param rateUnit the unit of time
    -&nbsp;     * @return the rate
    -&nbsp;     */
    -&nbsp;    public double getRate(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;        return rate * (double) rateUnit.toNanos(1);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-a.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-a.html
    deleted file mode 100644
    index aaf0e136ff..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-a.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ExponentialMovingAverages</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ExponentialMovingAverages (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ExponentialMovingAverages</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A triple (one, five and fifteen minutes) of exponentially-weighted moving average rates as needed by {@link Meter}.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * The rates have the same exponential decay factor as the fifteen-minute load average in the
    -&nbsp; * {@code top} Unix command.
    -&nbsp; */
    -&nbsp;public class ExponentialMovingAverages implements MovingAverages {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(5);</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private final EWMA m1Rate = EWMA.oneMinuteEWMA();</b>
    -<b class="fc">&nbsp;    private final EWMA m5Rate = EWMA.fiveMinuteEWMA();</b>
    -<b class="fc">&nbsp;    private final EWMA m15Rate = EWMA.fifteenMinuteEWMA();</b>
    -&nbsp;
    -&nbsp;    private final AtomicLong lastTick;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentialMovingAverages}.
    -&nbsp;     */
    -&nbsp;    public ExponentialMovingAverages() {
    -<b class="nc">&nbsp;        this(Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentialMovingAverages}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public ExponentialMovingAverages(Clock clock) {</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.lastTick = new AtomicLong(this.clock.getTick());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long n) {
    -<b class="fc">&nbsp;        m1Rate.update(n);</b>
    -<b class="fc">&nbsp;        m5Rate.update(n);</b>
    -<b class="fc">&nbsp;        m15Rate.update(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void tickIfNecessary() {
    -<b class="fc">&nbsp;        final long oldTick = lastTick.get();</b>
    -<b class="fc">&nbsp;        final long newTick = clock.getTick();</b>
    -<b class="fc">&nbsp;        final long age = newTick - oldTick;</b>
    -<b class="pc">&nbsp;        if (age &gt; TICK_INTERVAL) {</b>
    -<b class="fc">&nbsp;            final long newIntervalStartTick = newTick - age % TICK_INTERVAL;</b>
    -<b class="pc">&nbsp;            if (lastTick.compareAndSet(oldTick, newIntervalStartTick)) {</b>
    -<b class="fc">&nbsp;                final long requiredTicks = age / TICK_INTERVAL;</b>
    -<b class="pc">&nbsp;                for (long i = 0; i &lt; requiredTicks; i++) {</b>
    -<b class="fc">&nbsp;                    m1Rate.tick();</b>
    -<b class="fc">&nbsp;                    m5Rate.tick();</b>
    -<b class="fc">&nbsp;                    m15Rate.tick();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM1Rate() {
    -<b class="fc">&nbsp;        return m1Rate.getRate(TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM5Rate() {
    -<b class="fc">&nbsp;        return m5Rate.getRate(TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM15Rate() {
    -<b class="fc">&nbsp;        return m15Rate.getRate(TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-b.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-b.html
    deleted file mode 100644
    index 516d1fe90c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-b.html
    +++ /dev/null
    @@ -1,323 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ExponentiallyDecayingReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ExponentiallyDecayingReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ExponentiallyDecayingReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.ConcurrentSkipListMap;
    -&nbsp;import java.util.concurrent.ThreadLocalRandom;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;import java.util.concurrent.locks.ReentrantReadWriteLock;
    -&nbsp;
    -&nbsp;import static java.lang.Math.exp;
    -&nbsp;import static java.lang.Math.min;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.WeightedSnapshot.WeightedSample;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al&#39;s
    -&nbsp; * forward-decaying priority reservoir sampling method to produce a statistically representative
    -&nbsp; * sampling reservoir, exponentially biased towards newer entries.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf&quot;&gt;
    -&nbsp; * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE &#39;09:
    -&nbsp; * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)&lt;/a&gt;
    -&nbsp; */
    -&nbsp;public class ExponentiallyDecayingReservoir implements Reservoir {
    -&nbsp;    private static final int DEFAULT_SIZE = 1028;
    -&nbsp;    private static final double DEFAULT_ALPHA = 0.015;
    -<b class="fc">&nbsp;    private static final long RESCALE_THRESHOLD = TimeUnit.HOURS.toNanos(1);</b>
    -&nbsp;
    -&nbsp;    private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    -&nbsp;    private final ReentrantReadWriteLock lock;
    -&nbsp;    private final double alpha;
    -&nbsp;    private final int size;
    -&nbsp;    private final AtomicLong count;
    -&nbsp;    private volatile long startTime;
    -&nbsp;    private final AtomicLong lastScaleTick;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentiallyDecayingReservoir} of 1028 elements, which offers a 99.9%
    -&nbsp;     * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
    -&nbsp;     * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
    -&nbsp;     */
    -&nbsp;    public ExponentiallyDecayingReservoir() {
    -<b class="fc">&nbsp;        this(DEFAULT_SIZE, DEFAULT_ALPHA);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentiallyDecayingReservoir}.
    -&nbsp;     *
    -&nbsp;     * @param size  the number of samples to keep in the sampling reservoir
    -&nbsp;     * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
    -&nbsp;     *              will be towards newer values
    -&nbsp;     */
    -&nbsp;    public ExponentiallyDecayingReservoir(int size, double alpha) {
    -<b class="fc">&nbsp;        this(size, alpha, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentiallyDecayingReservoir}.
    -&nbsp;     *
    -&nbsp;     * @param size  the number of samples to keep in the sampling reservoir
    -&nbsp;     * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
    -&nbsp;     *              will be towards newer values
    -&nbsp;     * @param clock the clock used to timestamp samples and track rescaling
    -&nbsp;     */
    -<b class="fc">&nbsp;    public ExponentiallyDecayingReservoir(int size, double alpha, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.values = new ConcurrentSkipListMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        this.lock = new ReentrantReadWriteLock();</b>
    -<b class="fc">&nbsp;        this.alpha = alpha;</b>
    -<b class="fc">&nbsp;        this.size = size;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.count = new AtomicLong(0);</b>
    -<b class="fc">&nbsp;        this.startTime = currentTimeInSeconds();</b>
    -<b class="fc">&nbsp;        this.lastScaleTick = new AtomicLong(clock.getTick());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        return (int) min(size, count.get());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        update(value, currentTimeInSeconds());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds an old value with a fixed timestamp to the reservoir.
    -&nbsp;     *
    -&nbsp;     * @param value     the value to be added
    -&nbsp;     * @param timestamp the epoch timestamp of {@code value} in seconds
    -&nbsp;     */
    -&nbsp;    public void update(long value, long timestamp) {
    -<b class="fc">&nbsp;        rescaleIfNeeded();</b>
    -<b class="fc">&nbsp;        lockForRegularUsage();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            final double itemWeight = weight(timestamp - startTime);</b>
    -<b class="fc">&nbsp;            final WeightedSample sample = new WeightedSample(value, itemWeight);</b>
    -<b class="fc">&nbsp;            final double priority = itemWeight / ThreadLocalRandom.current().nextDouble();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final long newCount = count.incrementAndGet();</b>
    -<b class="pc">&nbsp;            if (newCount &lt;= size || values.isEmpty()) {</b>
    -<b class="fc">&nbsp;                values.put(priority, sample);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                Double first = values.firstKey();</b>
    -<b class="pc">&nbsp;                if (first &lt; priority &amp;&amp; values.putIfAbsent(priority, sample) == null) {</b>
    -&nbsp;                    // ensure we always remove an item
    -<b class="pc">&nbsp;                    while (values.remove(first) == null) {</b>
    -<b class="nc">&nbsp;                        first = values.firstKey();</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            unlockForRegularUsage();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void rescaleIfNeeded() {
    -<b class="fc">&nbsp;        final long now = clock.getTick();</b>
    -<b class="fc">&nbsp;        final long lastScaleTickSnapshot = lastScaleTick.get();</b>
    -<b class="pc">&nbsp;        if (now - lastScaleTickSnapshot &gt;= RESCALE_THRESHOLD) {</b>
    -<b class="fc">&nbsp;            rescale(now, lastScaleTickSnapshot);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        rescaleIfNeeded();</b>
    -<b class="fc">&nbsp;        lockForRegularUsage();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return new WeightedSnapshot(values.values());</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            unlockForRegularUsage();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private long currentTimeInSeconds() {
    -<b class="fc">&nbsp;        return TimeUnit.MILLISECONDS.toSeconds(clock.getTime());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private double weight(long t) {
    -<b class="fc">&nbsp;        return exp(alpha * t);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* &quot;A common feature of the above techniques—indeed, the key technique that
    -&nbsp;     * allows us to track the decayed weights efficiently—is that they maintain
    -&nbsp;     * counts and other quantities based on g(ti ? L), and only scale by g(t ? L)
    -&nbsp;     * at query time. But while g(ti ?L)/g(t?L) is guaranteed to lie between zero
    -&nbsp;     * and one, the intermediate values of g(ti ? L) could become very large. For
    -&nbsp;     * polynomial functions, these values should not grow too large, and should be
    -&nbsp;     * effectively represented in practice by floating point values without loss of
    -&nbsp;     * precision. For exponential functions, these values could grow quite large as
    -&nbsp;     * new values of (ti ? L) become large, and potentially exceed the capacity of
    -&nbsp;     * common floating point types. However, since the values stored by the
    -&nbsp;     * algorithms are linear combinations of g values (scaled sums), they can be
    -&nbsp;     * rescaled relative to a new landmark. That is, by the analysis of exponential
    -&nbsp;     * decay in Section III-A, the choice of L does not affect the final result. We
    -&nbsp;     * can therefore multiply each value based on L by a factor of exp(??(L? ? L)),
    -&nbsp;     * and obtain the correct value as if we had instead computed relative to a new
    -&nbsp;     * landmark L? (and then use this new L? at query time). This can be done with
    -&nbsp;     * a linear pass over whatever data structure is being used.&quot;
    -&nbsp;     */
    -&nbsp;    private void rescale(long now, long lastTick) {
    -<b class="fc">&nbsp;        lockForRescale();</b>
    -&nbsp;        try {
    -<b class="pc">&nbsp;            if (lastScaleTick.compareAndSet(lastTick, now)) {</b>
    -<b class="fc">&nbsp;                final long oldStartTime = startTime;</b>
    -<b class="fc">&nbsp;                this.startTime = currentTimeInSeconds();</b>
    -<b class="fc">&nbsp;                final double scalingFactor = exp(-alpha * (startTime - oldStartTime));</b>
    -<b class="pc">&nbsp;                if (Double.compare(scalingFactor, 0) == 0) {</b>
    -<b class="fc">&nbsp;                    values.clear();</b>
    -&nbsp;                } else {
    -<b class="fc">&nbsp;                    final ArrayList&lt;Double&gt; keys = new ArrayList&lt;&gt;(values.keySet());</b>
    -<b class="pc">&nbsp;                    for (Double key : keys) {</b>
    -<b class="fc">&nbsp;                        final WeightedSample sample = values.remove(key);</b>
    -<b class="fc">&nbsp;                        final WeightedSample newSample = new WeightedSample(sample.value, sample.weight * scalingFactor);</b>
    -<b class="pc">&nbsp;                        if (Double.compare(newSample.weight, 0) == 0) {</b>
    -<b class="fc">&nbsp;                            continue;</b>
    -&nbsp;                        }
    -<b class="fc">&nbsp;                        values.put(key * scalingFactor, newSample);</b>
    -<b class="fc">&nbsp;                    }</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                // make sure the counter is in sync with the number of stored samples.
    -<b class="fc">&nbsp;                count.set(values.size());</b>
    -&nbsp;            }
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            unlockForRescale();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void unlockForRescale() {
    -<b class="fc">&nbsp;        lock.writeLock().unlock();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void lockForRescale() {
    -<b class="fc">&nbsp;        lock.writeLock().lock();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void lockForRegularUsage() {
    -<b class="fc">&nbsp;        lock.readLock().lock();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void unlockForRegularUsage() {
    -<b class="fc">&nbsp;        lock.readLock().unlock();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-c.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-c.html
    deleted file mode 100644
    index 55ef4b84c6..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-c.html
    +++ /dev/null
    @@ -1,125 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > FixedNameCsvFileProvider</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: FixedNameCsvFileProvider (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">FixedNameCsvFileProvider</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.File;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * This implementation of the {@link CsvFileProvider} will always return the same name
    -&nbsp; * for the same metric. This means the CSV file will grow indefinitely.
    -&nbsp; */
    -<b class="fc">&nbsp;public class FixedNameCsvFileProvider implements CsvFileProvider {</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public File getFile(File directory, String metricName) {
    -<b class="fc">&nbsp;        return new File(directory, sanitize(metricName) + &quot;.csv&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String metricName) {
    -&nbsp;        //Forward slash character is definitely illegal in both Windows and Linux
    -&nbsp;        //https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
    -<b class="fc">&nbsp;        return metricName.replaceFirst(&quot;^/&quot;, &quot;&quot;).replaceAll(&quot;/&quot;, &quot;.&quot;);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-d.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-d.html
    deleted file mode 100644
    index 3e3c3717fc..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-d.html
    +++ /dev/null
    @@ -1,162 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Histogram</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Histogram (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Histogram</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A metric which calculates the distribution of a value.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://www.johndcook.com/standard_deviation.html&quot;&gt;Accurately computing running
    -&nbsp; * variance&lt;/a&gt;
    -&nbsp; */
    -&nbsp;public class Histogram implements Metric, Sampling, Counting {
    -&nbsp;    private final Reservoir reservoir;
    -&nbsp;    private final LongAdder count;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Histogram} with the given reservoir.
    -&nbsp;     *
    -&nbsp;     * @param reservoir the reservoir to create a histogram from
    -&nbsp;     */
    -<b class="fc">&nbsp;    public Histogram(Reservoir reservoir) {</b>
    -<b class="fc">&nbsp;        this.reservoir = reservoir;</b>
    -<b class="fc">&nbsp;        this.count = new LongAdder();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a recorded value.
    -&nbsp;     *
    -&nbsp;     * @param value the length of the value
    -&nbsp;     */
    -&nbsp;    public void update(int value) {
    -<b class="fc">&nbsp;        update((long) value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a recorded value.
    -&nbsp;     *
    -&nbsp;     * @param value the length of the value
    -&nbsp;     */
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        count.increment();</b>
    -<b class="fc">&nbsp;        reservoir.update(value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values recorded.
    -&nbsp;     *
    -&nbsp;     * @return the number of values recorded
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getCount() {
    -<b class="fc">&nbsp;        return count.sum();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        return reservoir.getSnapshot();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-e.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-e.html
    deleted file mode 100644
    index 20718f2120..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-e.html
    +++ /dev/null
    @@ -1,390 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedExecutorService</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedExecutorService (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedExecutorService</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    38.9%
    -  </span>
    -  <span class="absValue">
    -    (7/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.7%
    -  </span>
    -  <span class="absValue">
    -    (42/67)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedExecutorService$InstrumentedCallable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedExecutorService$InstrumentedRunnable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;import java.util.concurrent.Callable;
    -&nbsp;import java.util.concurrent.ExecutionException;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;import java.util.concurrent.ForkJoinPool;
    -&nbsp;import java.util.concurrent.Future;
    -&nbsp;import java.util.concurrent.ThreadPoolExecutor;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.TimeoutException;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An {@link ExecutorService} that monitors the number of tasks submitted, running,
    -&nbsp; * completed and also keeps a {@link Timer} for the task duration.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    -&nbsp; * &quot;your-executor-service.submitted&quot;, &quot;your-executor-service.running&quot;, etc.
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedExecutorService implements ExecutorService {</b>
    -<b class="fc">&nbsp;    private static final AtomicLong NAME_COUNTER = new AtomicLong();</b>
    -&nbsp;
    -&nbsp;    private final ExecutorService delegate;
    -&nbsp;    private final Meter submitted;
    -&nbsp;    private final Counter running;
    -&nbsp;    private final Meter completed;
    -&nbsp;    private final Timer idle;
    -&nbsp;    private final Timer duration;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps an {@link ExecutorService} uses an auto-generated default name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ExecutorService} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     */
    -&nbsp;    public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(delegate, registry, &quot;instrumented-delegate-&quot; + NAME_COUNTER.incrementAndGet());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps an {@link ExecutorService} with an explicit name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ExecutorService} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     * @param name     name for this executor service.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry, String name) {</b>
    -<b class="fc">&nbsp;        this.delegate = delegate;</b>
    -<b class="fc">&nbsp;        this.submitted = registry.meter(MetricRegistry.name(name, &quot;submitted&quot;));</b>
    -<b class="fc">&nbsp;        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</b>
    -<b class="fc">&nbsp;        this.completed = registry.meter(MetricRegistry.name(name, &quot;completed&quot;));</b>
    -<b class="fc">&nbsp;        this.idle = registry.timer(MetricRegistry.name(name, &quot;idle&quot;));</b>
    -<b class="fc">&nbsp;        this.duration = registry.timer(MetricRegistry.name(name, &quot;duration&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (delegate instanceof ThreadPoolExecutor) {</b>
    -<b class="fc">&nbsp;            ThreadPoolExecutor executor = (ThreadPoolExecutor) delegate;</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;pool.size&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getPoolSize);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;pool.core&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getCorePoolSize);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;pool.max&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getMaximumPoolSize);</b>
    -<b class="fc">&nbsp;            final BlockingQueue&lt;Runnable&gt; queue = executor.getQueue();</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.active&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getActiveCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.completed&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getCompletedTaskCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.queued&quot;),</b>
    -<b class="fc">&nbsp;                    queue::size);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.capacity&quot;),</b>
    -<b class="fc">&nbsp;                    queue::remainingCapacity);</b>
    -<b class="fc">&nbsp;        } else if (delegate instanceof ForkJoinPool) {</b>
    -<b class="fc">&nbsp;            ForkJoinPool forkJoinPool = (ForkJoinPool) delegate;</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.stolen&quot;),</b>
    -<b class="fc">&nbsp;                    forkJoinPool::getStealCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.queued&quot;),</b>
    -<b class="fc">&nbsp;                    forkJoinPool::getQueuedTaskCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;threads.active&quot;),</b>
    -<b class="fc">&nbsp;                    forkJoinPool::getActiveThreadCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;threads.running&quot;),</b>
    -<b class="fc">&nbsp;                    forkJoinPool::getRunningThreadCount);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void execute(Runnable runnable) {
    -<b class="nc">&nbsp;        submitted.mark();</b>
    -<b class="nc">&nbsp;        delegate.execute(new InstrumentedRunnable(runnable));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Future&lt;?&gt; submit(Runnable runnable) {
    -<b class="fc">&nbsp;        submitted.mark();</b>
    -<b class="fc">&nbsp;        return delegate.submit(new InstrumentedRunnable(runnable));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Runnable runnable, T result) {
    -<b class="nc">&nbsp;        submitted.mark();</b>
    -<b class="nc">&nbsp;        return delegate.submit(new InstrumentedRunnable(runnable), result);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Callable&lt;T&gt; task) {
    -<b class="fc">&nbsp;        submitted.mark();</b>
    -<b class="fc">&nbsp;        return delegate.submit(new InstrumentedCallable&lt;&gt;(task));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAll(instrumented);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAll(instrumented, timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws ExecutionException, InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAny(instrumented);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws ExecutionException, InterruptedException, TimeoutException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAny(instrumented, timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T&gt; Collection&lt;? extends Callable&lt;T&gt;&gt; instrument(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) {
    -<b class="nc">&nbsp;        final List&lt;InstrumentedCallable&lt;T&gt;&gt; instrumented = new ArrayList&lt;&gt;(tasks.size());</b>
    -<b class="nc">&nbsp;        for (Callable&lt;T&gt; task : tasks) {</b>
    -<b class="nc">&nbsp;            instrumented.add(new InstrumentedCallable&lt;&gt;(task));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return instrumented;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void shutdown() {
    -<b class="fc">&nbsp;        delegate.shutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;Runnable&gt; shutdownNow() {
    -<b class="nc">&nbsp;        return delegate.shutdownNow();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isShutdown() {
    -<b class="nc">&nbsp;        return delegate.isShutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isTerminated() {
    -<b class="nc">&nbsp;        return delegate.isTerminated();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean awaitTermination(long l, TimeUnit timeUnit) throws InterruptedException {
    -<b class="fc">&nbsp;        return delegate.awaitTermination(l, timeUnit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedRunnable implements Runnable {
    -&nbsp;        private final Runnable task;
    -&nbsp;        private final Timer.Context idleContext;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedRunnable(Runnable task) {</b>
    -<b class="fc">&nbsp;            this.task = task;</b>
    -<b class="fc">&nbsp;            this.idleContext = idle.time();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void run() {
    -<b class="fc">&nbsp;            idleContext.stop();</b>
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            try (Timer.Context durationContext = duration.time()) {</b>
    -<b class="fc">&nbsp;                task.run();</b>
    -<b class="fc">&nbsp;            } finally {</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedCallable&lt;T&gt; implements Callable&lt;T&gt; {
    -&nbsp;        private final Callable&lt;T&gt; callable;
    -&nbsp;        private final Timer.Context idleContext;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedCallable(Callable&lt;T&gt; callable) {</b>
    -<b class="fc">&nbsp;            this.callable = callable;</b>
    -<b class="fc">&nbsp;            this.idleContext = idle.time();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public T call() throws Exception {
    -<b class="fc">&nbsp;            idleContext.stop();</b>
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            try (Timer.Context context = duration.time()) {</b>
    -<b class="fc">&nbsp;                return callable.call();</b>
    -<b class="fc">&nbsp;            } finally {</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-f.html b/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-f.html
    deleted file mode 100644
    index 55fd499b91..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1/sources/source-f.html
    +++ /dev/null
    @@ -1,465 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedScheduledExecutorService</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedScheduledExecutorService (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedScheduledExecutorService</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    51%
    -  </span>
    -  <span class="absValue">
    -    (26/51)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedScheduledExecutorService$InstrumentedCallable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedScheduledExecutorService$InstrumentedPeriodicRunnable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedScheduledExecutorService$InstrumentedRunnable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.Callable;
    -&nbsp;import java.util.concurrent.ExecutionException;
    -&nbsp;import java.util.concurrent.Future;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.ScheduledFuture;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.TimeoutException;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An {@link ScheduledExecutorService} that monitors the number of tasks submitted, running,
    -&nbsp; * completed and also keeps a {@link Timer} for the task duration.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    -&nbsp; * &quot;your-executor-service.submitted&quot;, &quot;your-executor-service.running&quot;, etc.
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedScheduledExecutorService implements ScheduledExecutorService {</b>
    -<b class="fc">&nbsp;    private static final AtomicLong NAME_COUNTER = new AtomicLong();</b>
    -&nbsp;
    -&nbsp;    private final ScheduledExecutorService delegate;
    -&nbsp;
    -&nbsp;    private final Meter submitted;
    -&nbsp;    private final Counter running;
    -&nbsp;    private final Meter completed;
    -&nbsp;    private final Timer duration;
    -&nbsp;
    -&nbsp;    private final Meter scheduledOnce;
    -&nbsp;    private final Meter scheduledRepetitively;
    -&nbsp;    private final Counter scheduledOverrun;
    -&nbsp;    private final Histogram percentOfPeriod;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps an {@link ScheduledExecutorService} uses an auto-generated default name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ScheduledExecutorService} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     */
    -&nbsp;    public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(delegate, registry, &quot;instrumented-scheduled-executor-service-&quot; + NAME_COUNTER.incrementAndGet());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps an {@link ScheduledExecutorService} with an explicit name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ScheduledExecutorService} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     * @param name     name for this executor service.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry, String name) {</b>
    -<b class="fc">&nbsp;        this.delegate = delegate;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.submitted = registry.meter(MetricRegistry.name(name, &quot;submitted&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</b>
    -<b class="fc">&nbsp;        this.completed = registry.meter(MetricRegistry.name(name, &quot;completed&quot;));</b>
    -<b class="fc">&nbsp;        this.duration = registry.timer(MetricRegistry.name(name, &quot;duration&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.scheduledOnce = registry.meter(MetricRegistry.name(name, &quot;scheduled.once&quot;));</b>
    -<b class="fc">&nbsp;        this.scheduledRepetitively = registry.meter(MetricRegistry.name(name, &quot;scheduled.repetitively&quot;));</b>
    -<b class="fc">&nbsp;        this.scheduledOverrun = registry.counter(MetricRegistry.name(name, &quot;scheduled.overrun&quot;));</b>
    -<b class="fc">&nbsp;        this.percentOfPeriod = registry.histogram(MetricRegistry.name(name, &quot;scheduled.percent-of-period&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public ScheduledFuture&lt;?&gt; schedule(Runnable command, long delay, TimeUnit unit) {
    -<b class="fc">&nbsp;        scheduledOnce.mark();</b>
    -<b class="fc">&nbsp;        return delegate.schedule(new InstrumentedRunnable(command), delay, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;V&gt; ScheduledFuture&lt;V&gt; schedule(Callable&lt;V&gt; callable, long delay, TimeUnit unit) {
    -<b class="fc">&nbsp;        scheduledOnce.mark();</b>
    -<b class="fc">&nbsp;        return delegate.schedule(new InstrumentedCallable&lt;&gt;(callable), delay, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public ScheduledFuture&lt;?&gt; scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) {
    -<b class="fc">&nbsp;        scheduledRepetitively.mark();</b>
    -<b class="fc">&nbsp;        return delegate.scheduleAtFixedRate(new InstrumentedPeriodicRunnable(command, period, unit), initialDelay, period, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public ScheduledFuture&lt;?&gt; scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) {
    -<b class="fc">&nbsp;        scheduledRepetitively.mark();</b>
    -<b class="fc">&nbsp;        return delegate.scheduleWithFixedDelay(new InstrumentedRunnable(command), initialDelay, delay, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void shutdown() {
    -<b class="fc">&nbsp;        delegate.shutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public List&lt;Runnable&gt; shutdownNow() {
    -<b class="nc">&nbsp;        return delegate.shutdownNow();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean isShutdown() {
    -<b class="nc">&nbsp;        return delegate.isShutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean isTerminated() {
    -<b class="nc">&nbsp;        return delegate.isTerminated();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {
    -<b class="fc">&nbsp;        return delegate.awaitTermination(timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Callable&lt;T&gt; task) {
    -<b class="fc">&nbsp;        submitted.mark();</b>
    -<b class="fc">&nbsp;        return delegate.submit(new InstrumentedCallable&lt;&gt;(task));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Runnable task, T result) {
    -<b class="nc">&nbsp;        submitted.mark();</b>
    -<b class="nc">&nbsp;        return delegate.submit(new InstrumentedRunnable(task), result);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Future&lt;?&gt; submit(Runnable task) {
    -<b class="fc">&nbsp;        submitted.mark();</b>
    -<b class="fc">&nbsp;        return delegate.submit(new InstrumentedRunnable(task));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAll(instrumented);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAll(instrumented, timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException, ExecutionException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAny(instrumented);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAny(instrumented, timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T&gt; Collection&lt;? extends Callable&lt;T&gt;&gt; instrument(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) {
    -<b class="nc">&nbsp;        final List&lt;InstrumentedCallable&lt;T&gt;&gt; instrumented = new ArrayList&lt;&gt;(tasks.size());</b>
    -<b class="nc">&nbsp;        for (Callable&lt;T&gt; task : tasks) {</b>
    -<b class="nc">&nbsp;            instrumented.add(new InstrumentedCallable&lt;&gt;(task));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return instrumented;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void execute(Runnable command) {
    -<b class="nc">&nbsp;        submitted.mark();</b>
    -<b class="nc">&nbsp;        delegate.execute(new InstrumentedRunnable(command));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedRunnable implements Runnable {
    -&nbsp;        private final Runnable command;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedRunnable(Runnable command) {</b>
    -<b class="fc">&nbsp;            this.command = command;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void run() {
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            final Timer.Context context = duration.time();</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                command.run();</b>
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedPeriodicRunnable implements Runnable {
    -&nbsp;        private final Runnable command;
    -&nbsp;        private final long periodInNanos;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedPeriodicRunnable(Runnable command, long period, TimeUnit unit) {</b>
    -<b class="fc">&nbsp;            this.command = command;</b>
    -<b class="fc">&nbsp;            this.periodInNanos = unit.toNanos(period);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void run() {
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            final Timer.Context context = duration.time();</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                command.run();</b>
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                final long elapsed = context.stop();</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="fc">&nbsp;                if (elapsed &gt; periodInNanos) {</b>
    -<b class="fc">&nbsp;                    scheduledOverrun.inc();</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                percentOfPeriod.update((100L * elapsed) / periodInNanos);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedCallable&lt;T&gt; implements Callable&lt;T&gt; {
    -&nbsp;        private final Callable&lt;T&gt; task;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedCallable(Callable&lt;T&gt; task) {</b>
    -<b class="fc">&nbsp;            this.task = task;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public T call() throws Exception {
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            final Timer.Context context = duration.time();</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                return task.call();</b>
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index.html
    deleted file mode 100644
    index f475456a48..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index c88e07ba2c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index b67eb08d1f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 451551f66a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index f056447d8a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 557b27ff2d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index dde7380ff1..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 7774e45c3f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 0f015b9e46..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 760ff8aa3b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-1.html
    deleted file mode 100644
    index 50c434bc00..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-1.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedTimingCollector</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedTimingCollector</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.jdbi.strategies.SmartNameStrategy;
    -&nbsp;import com.codahale.metrics.jdbi.strategies.StatementNameStrategy;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;import org.skife.jdbi.v2.TimingCollector;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link TimingCollector} implementation for JDBI which uses the SQL objects&#39; class names and
    -&nbsp; * method names for millisecond-precision timers.
    -&nbsp; */
    -&nbsp;public class InstrumentedTimingCollector implements TimingCollector {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final StatementNameStrategy statementNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry,
    -<b class="fc">&nbsp;                                       StatementNameStrategy statementNameStrategy) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void collect(long elapsedTime, StatementContext ctx) {
    -<b class="fc">&nbsp;        final Timer timer = getTimer(ctx);</b>
    -<b class="fc">&nbsp;        timer.update(elapsedTime, TimeUnit.NANOSECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer getTimer(StatementContext ctx) {
    -<b class="fc">&nbsp;        return registry.timer(statementNameStrategy.getStatementName(ctx));</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-2.html
    deleted file mode 100644
    index 20a34027a2..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-2.html
    +++ /dev/null
    @@ -1,119 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ContextNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ContextNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ContextNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_GROUP} and {@link
    -&nbsp; * NameStrategies#STATEMENT_NAME} for group based display.
    -&nbsp; */
    -&nbsp;public class ContextNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public ContextNameStrategy() {
    -<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.CONTEXT_NAME,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-3.html
    deleted file mode 100644
    index 4725db5da8..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-3.html
    +++ /dev/null
    @@ -1,135 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DelegatingStatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DelegatingStatementNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
    -<b class="fc">&nbsp;    private final List&lt;StatementNameStrategy&gt; strategies = new ArrayList&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;    protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {</b>
    -<b class="fc">&nbsp;        registerStrategies(strategies);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void registerStrategies(StatementNameStrategy... strategies) {
    -<b class="fc">&nbsp;        this.strategies.addAll(Arrays.asList(strategies));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;        for (StatementNameStrategy strategy : strategies) {</b>
    -<b class="fc">&nbsp;            final String statementName = strategy.getStatementName(statementContext);</b>
    -<b class="fc">&nbsp;            if (statementName != null) {</b>
    -<b class="fc">&nbsp;                return statementName;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return NameStrategies.UNKNOWN_SQL;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-4.html
    deleted file mode 100644
    index 25a0687117..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-4.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NaiveNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NaiveNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Very simple strategy, can be used with any JDBI loader to build basic statistics.
    -&nbsp; */
    -&nbsp;public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public NaiveNameStrategy() {
    -<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-5.html
    deleted file mode 100644
    index 13075d2bdc..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-5.html
    +++ /dev/null
    @@ -1,422 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NameStrategies</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NameStrategies (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NameStrategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">NameStrategies$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$CheckEmptyStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$CheckRawStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$ContextClassStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (12/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$ContextNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$NaiveNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$SqlObjectStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.ClasspathStatementLocator;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.regex.Matcher;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="fc">&nbsp;public final class NameStrategies {</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CHECK_EMPTY = new CheckEmptyStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CHECK_RAW = new CheckRawStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy SQL_OBJECT = new SqlObjectStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy NAIVE_NAME = new NaiveNameStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CONTEXT_CLASS = new ContextClassStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CONTEXT_NAME = new ContextNameStrategy();</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * An empty SQL statement.
    -&nbsp;     */
    -&nbsp;    private static final String EMPTY_SQL = &quot;sql.empty&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Unknown SQL.
    -&nbsp;     */
    -&nbsp;    static final String UNKNOWN_SQL = &quot;sql.unknown&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric class.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_CLASS = &quot;_metric_class&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric group.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_GROUP = &quot;_metric_group&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric type.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_TYPE = &quot;_metric_type&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric name.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_NAME = &quot;_metric_name&quot;;
    -&nbsp;
    -&nbsp;    private static String forRawSql(String rawSql) {
    -<b class="fc">&nbsp;        return name(&quot;sql&quot;, &quot;raw&quot;, rawSql);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class CheckEmptyStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private CheckEmptyStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (rawSql == null || rawSql.length() == 0) {</b>
    -<b class="fc">&nbsp;                return EMPTY_SQL;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class CheckRawStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private CheckRawStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (ClasspathStatementLocator.looksLikeSql(rawSql)) {</b>
    -<b class="fc">&nbsp;                return forRawSql(rawSql);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NaiveNameStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private NaiveNameStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -&nbsp;            // Is it using the template loader?
    -<b class="fc">&nbsp;            final int colon = rawSql.indexOf(&#39;:&#39;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (colon == -1) {</b>
    -&nbsp;                // No package? Just return the name, JDBI figured out somehow on how to find the raw sql for this statement.
    -<b class="fc">&nbsp;                return forRawSql(rawSql);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            final String group = rawSql.substring(0, colon);</b>
    -<b class="nc">&nbsp;            final String name = rawSql.substring(colon + 1);</b>
    -<b class="nc">&nbsp;            return name(group, name);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class SqlObjectStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private SqlObjectStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Class&lt;?&gt; clazz = statementContext.getSqlObjectType();</b>
    -<b class="fc">&nbsp;            final Method method = statementContext.getSqlObjectMethod();</b>
    -<b class="fc">&nbsp;            if (clazz != null) {</b>
    -<b class="fc">&nbsp;                final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final String group = clazz.getPackage().getName();</b>
    -<b class="fc">&nbsp;                final String name = clazz.getSimpleName();</b>
    -<b class="fc">&nbsp;                final String type = method == null ? rawSql : method.getName();</b>
    -<b class="fc">&nbsp;                return name(group, name, type);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class ContextClassStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private ContextClassStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Object classObj = statementContext.getAttribute(STATEMENT_CLASS);</b>
    -<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (classObj == null || nameObj == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String className = (String) classObj;</b>
    -<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    -<b class="fc">&nbsp;            if (dotPos == -1) {</b>
    -<b class="nc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            return name(className.substring(0, dotPos),</b>
    -<b class="fc">&nbsp;                    className.substring(dotPos + 1),</b>
    -&nbsp;                    statementName);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class ContextNameStrategy implements StatementNameStrategy {</b>
    -&nbsp;        /**
    -&nbsp;         * File pattern to shorten the group name.
    -&nbsp;         */
    -<b class="fc">&nbsp;        private static final Pattern SHORT_PATTERN = Pattern.compile(&quot;^(.*?)/(.*?)(-sql)?\\.st(g)?$&quot;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private ContextNameStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Object groupObj = statementContext.getAttribute(STATEMENT_GROUP);</b>
    -<b class="fc">&nbsp;            final Object typeObj = statementContext.getAttribute(STATEMENT_TYPE);</b>
    -<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (groupObj == null || nameObj == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String group = (String) groupObj;</b>
    -<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (typeObj == null) {</b>
    -<b class="fc">&nbsp;                final Matcher matcher = SHORT_PATTERN.matcher(group);</b>
    -<b class="fc">&nbsp;                if (matcher.matches()) {</b>
    -<b class="fc">&nbsp;                    final String groupName = matcher.group(1);</b>
    -<b class="fc">&nbsp;                    final String typeName = matcher.group(2);</b>
    -<b class="fc">&nbsp;                    return name(groupName, typeName, statementName);</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                return name(group, statementName, &quot;&quot;);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                final String type = (String) typeObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                return name(group, type, statementName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private NameStrategies() {
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-6.html
    deleted file mode 100644
    index 302010d737..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-6.html
    +++ /dev/null
    @@ -1,239 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ShortNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ShortNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ShortNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">ShortNameStrategy$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ShortNameStrategy$ShortContextClassStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (13/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ShortNameStrategy$ShortSqlObjectStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Assembles all JDBI stats under a common prefix (passed in at constructor time). Stats are grouped
    -&nbsp; * by class name and method; a shortening strategy is applied to make the JMX output nicer.
    -&nbsp; */
    -<b class="fc">&nbsp;public final class ShortNameStrategy extends DelegatingStatementNameStrategy {</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;String, String&gt; shortClassNames = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final String baseJmxName;
    -&nbsp;
    -<b class="fc">&nbsp;    public ShortNameStrategy(String baseJmxName) {</b>
    -<b class="fc">&nbsp;        this.baseJmxName = baseJmxName;</b>
    -&nbsp;
    -&nbsp;        // Java does not allow super (..., new ShortContextClassStrategy(), new ShortSqlObjectStrategy(), ...);
    -&nbsp;        // ==&gt; No enclosing instance of type &lt;xxx&gt; is available due to some intermediate constructor invocation. Lame.
    -<b class="fc">&nbsp;        registerStrategies(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                new ShortContextClassStrategy(),
    -&nbsp;                new ShortSqlObjectStrategy(),
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private final class ShortContextClassStrategy implements StatementNameStrategy {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Object classObj = statementContext.getAttribute(NameStrategies.STATEMENT_CLASS);</b>
    -<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(NameStrategies.STATEMENT_NAME);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (classObj == null || nameObj == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String className = (String) classObj;</b>
    -<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    -<b class="fc">&nbsp;            if (dotPos == -1) {</b>
    -<b class="nc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String shortName = className.substring(dotPos + 1);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final String oldClassName = shortClassNames.putIfAbsent(shortName, className);</b>
    -<b class="fc">&nbsp;            if (oldClassName == null || oldClassName.equals(className)) {</b>
    -<b class="fc">&nbsp;                return name(baseJmxName, shortName, statementName);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                return name(baseJmxName, className, statementName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private final class ShortSqlObjectStrategy implements StatementNameStrategy {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Class&lt;?&gt; clazz = statementContext.getSqlObjectType();</b>
    -<b class="fc">&nbsp;            final Method method = statementContext.getSqlObjectMethod();</b>
    -<b class="fc">&nbsp;            if (clazz != null &amp;&amp; method != null) {</b>
    -<b class="fc">&nbsp;                final String className = clazz.getName();</b>
    -<b class="fc">&nbsp;                final String statementName = method.getName();</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    -<b class="fc">&nbsp;                if (dotPos == -1) {</b>
    -<b class="nc">&nbsp;                    return null;</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                final String shortName = className.substring(dotPos + 1);</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final String oldClassName = shortClassNames.putIfAbsent(shortName, className);</b>
    -<b class="fc">&nbsp;                if (oldClassName == null || oldClassName.equals(className)) {</b>
    -<b class="fc">&nbsp;                    return name(baseJmxName, shortName, statementName);</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    return name(baseJmxName, className, statementName);</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-7.html
    deleted file mode 100644
    index 1281dd6b47..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-7.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SmartNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SmartNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_CLASS} and {@link
    -&nbsp; * NameStrategies#STATEMENT_NAME} for class based display or {@link NameStrategies#STATEMENT_GROUP}
    -&nbsp; * and {@link NameStrategies#STATEMENT_NAME} for group based display.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Also knows how to deal with SQL Object statements.
    -&nbsp; */
    -&nbsp;public class SmartNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public SmartNameStrategy() {
    -<b class="fc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.CONTEXT_CLASS,
    -&nbsp;                NameStrategies.CONTEXT_NAME,
    -&nbsp;                NameStrategies.SQL_OBJECT,
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-8.html
    deleted file mode 100644
    index 3d76eb79c1..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-10/sources/source-8.html
    +++ /dev/null
    @@ -1,78 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > StatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">StatementNameStrategy</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Interface for strategies to statement contexts to metric names.
    -&nbsp; */
    -&nbsp;public interface StatementNameStrategy {
    -&nbsp;    String getStatementName(StatementContext statementContext);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index.html
    deleted file mode 100644
    index 9901f31021..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 778bba469d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 5add49a81b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index bdbc8f3bef..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 10b811883d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 1d83f34dcc..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 96c5d1cf9f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 8e7db5bea4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 04e743299a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index bd05687068..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-1.html
    deleted file mode 100644
    index f0cb5b2bf6..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-1.html
    +++ /dev/null
    @@ -1,112 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > BasicSqlNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">BasicSqlNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public BasicSqlNameStrategy() {
    -<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.SQL_OBJECT);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-2.html
    deleted file mode 100644
    index 8eab084e0a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-2.html
    +++ /dev/null
    @@ -1,119 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ContextNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ContextNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ContextNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_GROUP} and {@link
    -&nbsp; * NameStrategies#STATEMENT_NAME} for group based display.
    -&nbsp; */
    -&nbsp;public class ContextNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public ContextNameStrategy() {
    -<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.CONTEXT_NAME,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-3.html
    deleted file mode 100644
    index 1588bd9d4d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-3.html
    +++ /dev/null
    @@ -1,135 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DelegatingStatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DelegatingStatementNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
    -<b class="fc">&nbsp;    private final List&lt;StatementNameStrategy&gt; strategies = new ArrayList&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;    protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {</b>
    -<b class="fc">&nbsp;        registerStrategies(strategies);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void registerStrategies(StatementNameStrategy... strategies) {
    -<b class="fc">&nbsp;        this.strategies.addAll(Arrays.asList(strategies));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;        for (StatementNameStrategy strategy : strategies) {</b>
    -<b class="fc">&nbsp;            final String statementName = strategy.getStatementName(statementContext);</b>
    -<b class="fc">&nbsp;            if (statementName != null) {</b>
    -<b class="fc">&nbsp;                return statementName;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return NameStrategies.UNKNOWN_SQL;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-4.html
    deleted file mode 100644
    index 19f88582fe..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-4.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NaiveNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NaiveNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Very simple strategy, can be used with any JDBI loader to build basic statistics.
    -&nbsp; */
    -&nbsp;public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public NaiveNameStrategy() {
    -<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-5.html
    deleted file mode 100644
    index 7b17b54699..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-5.html
    +++ /dev/null
    @@ -1,422 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NameStrategies</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NameStrategies (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NameStrategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">NameStrategies$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$CheckEmptyStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$CheckRawStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$ContextClassStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (12/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$ContextNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$NaiveNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$SqlObjectStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.ClasspathStatementLocator;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.regex.Matcher;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="fc">&nbsp;public final class NameStrategies {</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CHECK_EMPTY = new CheckEmptyStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CHECK_RAW = new CheckRawStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy SQL_OBJECT = new SqlObjectStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy NAIVE_NAME = new NaiveNameStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CONTEXT_CLASS = new ContextClassStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CONTEXT_NAME = new ContextNameStrategy();</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * An empty SQL statement.
    -&nbsp;     */
    -&nbsp;    private static final String EMPTY_SQL = &quot;sql.empty&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Unknown SQL.
    -&nbsp;     */
    -&nbsp;    static final String UNKNOWN_SQL = &quot;sql.unknown&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric class.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_CLASS = &quot;_metric_class&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric group.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_GROUP = &quot;_metric_group&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric type.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_TYPE = &quot;_metric_type&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric name.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_NAME = &quot;_metric_name&quot;;
    -&nbsp;
    -&nbsp;    private static String forRawSql(String rawSql) {
    -<b class="fc">&nbsp;        return name(&quot;sql&quot;, &quot;raw&quot;, rawSql);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class CheckEmptyStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private CheckEmptyStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (rawSql == null || rawSql.length() == 0) {</b>
    -<b class="fc">&nbsp;                return EMPTY_SQL;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class CheckRawStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private CheckRawStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (ClasspathStatementLocator.looksLikeSql(rawSql)) {</b>
    -<b class="fc">&nbsp;                return forRawSql(rawSql);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NaiveNameStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private NaiveNameStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -&nbsp;            // Is it using the template loader?
    -<b class="fc">&nbsp;            final int colon = rawSql.indexOf(&#39;:&#39;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (colon == -1) {</b>
    -&nbsp;                // No package? Just return the name, JDBI figured out somehow on how to find the raw sql for this statement.
    -<b class="fc">&nbsp;                return forRawSql(rawSql);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            final String group = rawSql.substring(0, colon);</b>
    -<b class="nc">&nbsp;            final String name = rawSql.substring(colon + 1);</b>
    -<b class="nc">&nbsp;            return name(group, name);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class SqlObjectStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private SqlObjectStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Class&lt;?&gt; clazz = statementContext.getSqlObjectType();</b>
    -<b class="fc">&nbsp;            final Method method = statementContext.getSqlObjectMethod();</b>
    -<b class="fc">&nbsp;            if (clazz != null) {</b>
    -<b class="fc">&nbsp;                final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final String group = clazz.getPackage().getName();</b>
    -<b class="fc">&nbsp;                final String name = clazz.getSimpleName();</b>
    -<b class="fc">&nbsp;                final String type = method == null ? rawSql : method.getName();</b>
    -<b class="fc">&nbsp;                return name(group, name, type);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class ContextClassStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private ContextClassStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Object classObj = statementContext.getAttribute(STATEMENT_CLASS);</b>
    -<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (classObj == null || nameObj == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String className = (String) classObj;</b>
    -<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    -<b class="fc">&nbsp;            if (dotPos == -1) {</b>
    -<b class="nc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            return name(className.substring(0, dotPos),</b>
    -<b class="fc">&nbsp;                    className.substring(dotPos + 1),</b>
    -&nbsp;                    statementName);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class ContextNameStrategy implements StatementNameStrategy {</b>
    -&nbsp;        /**
    -&nbsp;         * File pattern to shorten the group name.
    -&nbsp;         */
    -<b class="fc">&nbsp;        private static final Pattern SHORT_PATTERN = Pattern.compile(&quot;^(.*?)/(.*?)(-sql)?\\.st(g)?$&quot;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private ContextNameStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Object groupObj = statementContext.getAttribute(STATEMENT_GROUP);</b>
    -<b class="fc">&nbsp;            final Object typeObj = statementContext.getAttribute(STATEMENT_TYPE);</b>
    -<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (groupObj == null || nameObj == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String group = (String) groupObj;</b>
    -<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (typeObj == null) {</b>
    -<b class="fc">&nbsp;                final Matcher matcher = SHORT_PATTERN.matcher(group);</b>
    -<b class="fc">&nbsp;                if (matcher.matches()) {</b>
    -<b class="fc">&nbsp;                    final String groupName = matcher.group(1);</b>
    -<b class="fc">&nbsp;                    final String typeName = matcher.group(2);</b>
    -<b class="fc">&nbsp;                    return name(groupName, typeName, statementName);</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                return name(group, statementName, &quot;&quot;);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                final String type = (String) typeObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                return name(group, type, statementName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private NameStrategies() {
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-6.html
    deleted file mode 100644
    index 0b8a593568..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-6.html
    +++ /dev/null
    @@ -1,239 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ShortNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ShortNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ShortNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">ShortNameStrategy$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ShortNameStrategy$ShortContextClassStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (13/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ShortNameStrategy$ShortSqlObjectStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Assembles all JDBI stats under a common prefix (passed in at constructor time). Stats are grouped
    -&nbsp; * by class name and method; a shortening strategy is applied to make the JMX output nicer.
    -&nbsp; */
    -<b class="fc">&nbsp;public final class ShortNameStrategy extends DelegatingStatementNameStrategy {</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;String, String&gt; shortClassNames = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final String baseJmxName;
    -&nbsp;
    -<b class="fc">&nbsp;    public ShortNameStrategy(String baseJmxName) {</b>
    -<b class="fc">&nbsp;        this.baseJmxName = baseJmxName;</b>
    -&nbsp;
    -&nbsp;        // Java does not allow super (..., new ShortContextClassStrategy(), new ShortSqlObjectStrategy(), ...);
    -&nbsp;        // ==&gt; No enclosing instance of type &lt;xxx&gt; is available due to some intermediate constructor invocation. Lame.
    -<b class="fc">&nbsp;        registerStrategies(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                new ShortContextClassStrategy(),
    -&nbsp;                new ShortSqlObjectStrategy(),
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private final class ShortContextClassStrategy implements StatementNameStrategy {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Object classObj = statementContext.getAttribute(NameStrategies.STATEMENT_CLASS);</b>
    -<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(NameStrategies.STATEMENT_NAME);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (classObj == null || nameObj == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String className = (String) classObj;</b>
    -<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    -<b class="fc">&nbsp;            if (dotPos == -1) {</b>
    -<b class="nc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String shortName = className.substring(dotPos + 1);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final String oldClassName = shortClassNames.putIfAbsent(shortName, className);</b>
    -<b class="fc">&nbsp;            if (oldClassName == null || oldClassName.equals(className)) {</b>
    -<b class="fc">&nbsp;                return name(baseJmxName, shortName, statementName);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                return name(baseJmxName, className, statementName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private final class ShortSqlObjectStrategy implements StatementNameStrategy {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Class&lt;?&gt; clazz = statementContext.getSqlObjectType();</b>
    -<b class="fc">&nbsp;            final Method method = statementContext.getSqlObjectMethod();</b>
    -<b class="fc">&nbsp;            if (clazz != null &amp;&amp; method != null) {</b>
    -<b class="fc">&nbsp;                final String className = clazz.getName();</b>
    -<b class="fc">&nbsp;                final String statementName = method.getName();</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    -<b class="fc">&nbsp;                if (dotPos == -1) {</b>
    -<b class="nc">&nbsp;                    return null;</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                final String shortName = className.substring(dotPos + 1);</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final String oldClassName = shortClassNames.putIfAbsent(shortName, className);</b>
    -<b class="fc">&nbsp;                if (oldClassName == null || oldClassName.equals(className)) {</b>
    -<b class="fc">&nbsp;                    return name(baseJmxName, shortName, statementName);</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    return name(baseJmxName, className, statementName);</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-7.html
    deleted file mode 100644
    index 96be79bbf4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-7.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SmartNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SmartNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_CLASS} and {@link
    -&nbsp; * NameStrategies#STATEMENT_NAME} for class based display or {@link NameStrategies#STATEMENT_GROUP}
    -&nbsp; * and {@link NameStrategies#STATEMENT_NAME} for group based display.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Also knows how to deal with SQL Object statements.
    -&nbsp; */
    -&nbsp;public class SmartNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public SmartNameStrategy() {
    -<b class="fc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.CONTEXT_CLASS,
    -&nbsp;                NameStrategies.CONTEXT_NAME,
    -&nbsp;                NameStrategies.SQL_OBJECT,
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-8.html
    deleted file mode 100644
    index ab66120e44..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-11/sources/source-8.html
    +++ /dev/null
    @@ -1,78 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > StatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">StatementNameStrategy</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Interface for strategies to statement contexts to metric names.
    -&nbsp; */
    -&nbsp;public interface StatementNameStrategy {
    -&nbsp;    String getStatementName(StatementContext statementContext);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index.html
    deleted file mode 100644
    index 45c3117202..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 0353410633..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index ab6bd9e442..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 23a3150f3b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index b847567f7e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE.html
    deleted file mode 100644
    index a82d766e2c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 29f92a8b85..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index dea897472f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 0d3ca177b5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 11ece65511..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-1.html
    deleted file mode 100644
    index 71ceddc9ba..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-1.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedSqlLogger</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedSqlLogger (com.codahale.metrics.jdbi3)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedSqlLogger</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
    -&nbsp;import org.jdbi.v3.core.statement.SqlLogger;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;import java.sql.SQLException;
    -&nbsp;import java.time.temporal.ChronoUnit;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link SqlLogger} implementation for JDBI which uses the SQL objects&#39; class names and
    -&nbsp; * method names for nanosecond-precision timers.
    -&nbsp; */
    -&nbsp;public class InstrumentedSqlLogger implements SqlLogger {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final StatementNameStrategy statementNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedSqlLogger(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedSqlLogger(MetricRegistry registry,
    -<b class="fc">&nbsp;                                 StatementNameStrategy statementNameStrategy) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void logAfterExecution(StatementContext context) {
    -<b class="fc">&nbsp;        log(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void logException(StatementContext context, SQLException ex) {
    -<b class="fc">&nbsp;        log(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void log(StatementContext context) {
    -<b class="fc">&nbsp;        String statementName = statementNameStrategy.getStatementName(context);</b>
    -<b class="fc">&nbsp;        if (statementName != null) {</b>
    -<b class="fc">&nbsp;            final long elapsed = context.getElapsedTime(ChronoUnit.NANOS);</b>
    -<b class="fc">&nbsp;            registry.timer(statementName).update(elapsed, TimeUnit.NANOSECONDS);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-2.html
    deleted file mode 100644
    index 41f093f4fd..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-2.html
    +++ /dev/null
    @@ -1,145 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedTimingCollector</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi3)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedTimingCollector</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
    -&nbsp;import org.jdbi.v3.core.statement.SqlLogger;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;import org.jdbi.v3.core.statement.TimingCollector;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link TimingCollector} implementation for JDBI which uses the SQL objects&#39; class names and
    -&nbsp; * method names for millisecond-precision timers.
    -&nbsp; *
    -&nbsp; * @deprecated Use {@link InstrumentedSqlLogger} and {@link org.jdbi.v3.core.Jdbi#setSqlLogger(SqlLogger)} instead.
    -&nbsp; */
    -&nbsp;@Deprecated
    -&nbsp;public class InstrumentedTimingCollector implements TimingCollector {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final StatementNameStrategy statementNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry,
    -<b class="fc">&nbsp;                                       StatementNameStrategy statementNameStrategy) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void collect(long elapsedTime, StatementContext ctx) {
    -<b class="fc">&nbsp;        String statementName = statementNameStrategy.getStatementName(ctx);</b>
    -<b class="fc">&nbsp;        if (statementName != null) {</b>
    -<b class="fc">&nbsp;            registry.timer(statementName).update(elapsedTime, TimeUnit.NANOSECONDS);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-3.html
    deleted file mode 100644
    index 188cc7e618..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-3.html
    +++ /dev/null
    @@ -1,136 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DelegatingStatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DelegatingStatementNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Unknown SQL.
    -&nbsp;     */
    -&nbsp;    private static final String UNKNOWN_SQL = &quot;sql.unknown&quot;;
    -&nbsp;
    -&nbsp;    private final List&lt;StatementNameStrategy&gt; strategies;
    -&nbsp;
    -<b class="fc">&nbsp;    protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {</b>
    -<b class="fc">&nbsp;        this.strategies = Arrays.asList(strategies);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;        for (StatementNameStrategy strategy : strategies) {</b>
    -<b class="fc">&nbsp;            final String statementName = strategy.getStatementName(statementContext);</b>
    -<b class="fc">&nbsp;            if (statementName != null) {</b>
    -<b class="fc">&nbsp;                return statementName;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return UNKNOWN_SQL;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-4.html
    deleted file mode 100644
    index 7f2526df50..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-4.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NaiveNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NaiveNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Very simple strategy, can be used with any JDBI loader to build basic statistics.
    -&nbsp; */
    -&nbsp;public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;
    -&nbsp;    public NaiveNameStrategy() {
    -<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    -&nbsp;              DefaultNameStrategy.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-5.html
    deleted file mode 100644
    index b1fabc227b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-5.html
    +++ /dev/null
    @@ -1,117 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SmartNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SmartNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Uses a {@link BasicSqlNameStrategy} and fallbacks to {@link DefaultNameStrategy#CONSTANT_SQL_RAW}
    -&nbsp; */
    -&nbsp;public class SmartNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;
    -&nbsp;    public SmartNameStrategy() {
    -<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    -&nbsp;                DefaultNameStrategy.SQL_OBJECT,
    -&nbsp;                DefaultNameStrategy.CONSTANT_SQL_RAW);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-6.html
    deleted file mode 100644
    index 39c02b10c7..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-6.html
    +++ /dev/null
    @@ -1,151 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > TimedAnnotationNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: TimedAnnotationNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">TimedAnnotationNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import org.jdbi.v3.core.extension.ExtensionMethod;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Takes into account the {@link Timed} annotation on extension methods
    -&nbsp; */
    -<b class="fc">&nbsp;public class TimedAnnotationNameStrategy implements StatementNameStrategy {</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;        final ExtensionMethod extensionMethod = statementContext.getExtensionMethod();</b>
    -<b class="fc">&nbsp;        if (extensionMethod == null) {</b>
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Class&lt;?&gt; clazz = extensionMethod.getType();</b>
    -<b class="fc">&nbsp;        final Timed classTimed = clazz.getAnnotation(Timed.class);</b>
    -<b class="fc">&nbsp;        final Method method = extensionMethod.getMethod();</b>
    -<b class="fc">&nbsp;        final Timed methodTimed = method.getAnnotation(Timed.class);</b>
    -&nbsp;
    -&nbsp;        // If the method is timed, figure out the name
    -<b class="fc">&nbsp;        if (methodTimed != null) {</b>
    -<b class="fc">&nbsp;            String methodName = methodTimed.name().isEmpty() ? method.getName() : methodTimed.name();</b>
    -<b class="fc">&nbsp;            if (methodTimed.absolute()) {</b>
    -<b class="fc">&nbsp;                return methodName;</b>
    -&nbsp;            } else {
    -&nbsp;                // We need to check if the class has a custom timer name
    -<b class="fc">&nbsp;                return classTimed == null || classTimed.name().isEmpty() ?</b>
    -<b class="fc">&nbsp;                        MetricRegistry.name(clazz, methodName) :</b>
    -<b class="fc">&nbsp;                        MetricRegistry.name(classTimed.name(), methodName);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        } else if (classTimed != null) {</b>
    -&nbsp;            // Maybe the class is timed?
    -<b class="fc">&nbsp;            return classTimed.name().isEmpty() ? MetricRegistry.name(clazz, method.getName()) :</b>
    -<b class="nc">&nbsp;                    MetricRegistry.name(classTimed.name(), method.getName());</b>
    -&nbsp;        } else {
    -&nbsp;            // No timers neither on the method or the class
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-7.html
    deleted file mode 100644
    index 45f21e271b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-12/sources/source-7.html
    +++ /dev/null
    @@ -1,89 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > StatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">StatementNameStrategy$MockitoMock$7yVzeQzc</td>
    -  </tr>
    -  <tr>
    -    <td class="name">StatementNameStrategy$MockitoMock$7yVzeQzc$auxiliary$ayXR32Cf</td>
    -  </tr>
    -  <tr>
    -    <td class="name">StatementNameStrategy$MockitoMock$7yVzeQzc$auxiliary$BhC2mpYb</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Interface for strategies to statement contexts to metric names.
    -&nbsp; */
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface StatementNameStrategy {
    -&nbsp;
    -&nbsp;    String getStatementName(StatementContext statementContext);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index.html
    deleted file mode 100644
    index 002775e593..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 19483ec0ee..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index e39b826bdf..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 38fe9a9990..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index d837387102..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 8daf598bbb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index cc24508686..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 20aae95bf9..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 66bd4af1c5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 1e2eaff51f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-1.html
    deleted file mode 100644
    index 3b9c9f3f3d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-1.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > BasicSqlNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">BasicSqlNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Collects metrics by respective SQLObject methods.
    -&nbsp; */
    -&nbsp;public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;
    -&nbsp;    public BasicSqlNameStrategy() {
    -<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    -&nbsp;                DefaultNameStrategy.SQL_OBJECT);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-2.html
    deleted file mode 100644
    index 5a8d412375..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-2.html
    +++ /dev/null
    @@ -1,246 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DefaultNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DefaultNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DefaultNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.jdbi.v3.core.extension.ExtensionMethod;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Default strategies which build a basis of more complex strategies
    -&nbsp; */
    -<b class="fc">&nbsp;public enum DefaultNameStrategy implements StatementNameStrategy {</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * If no SQL in the context, returns `sql.empty`, otherwise falls through
    -&nbsp;     */
    -<b class="fc">&nbsp;    CHECK_EMPTY {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -<b class="fc">&nbsp;            return rawSql == null || rawSql.isEmpty() ? &quot;sql.empty&quot; : null;</b>
    -&nbsp;        }
    -&nbsp;    },
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * If there is an SQL object attached to the context, returns the name package,
    -&nbsp;     * the class and the method on which SQL is declared. If not SQL object is attached,
    -&nbsp;     * falls through
    -&nbsp;     */
    -<b class="fc">&nbsp;    SQL_OBJECT {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            ExtensionMethod extensionMethod = statementContext.getExtensionMethod();</b>
    -<b class="fc">&nbsp;            if (extensionMethod != null) {</b>
    -<b class="fc">&nbsp;                return MetricRegistry.name(extensionMethod.getType(), extensionMethod.getMethod().getName());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    },
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a raw SQL in the context (even if it&#39;s not exist)
    -&nbsp;     */
    -<b class="fc">&nbsp;    NAIVE_NAME {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            return statementContext.getRawSql();</b>
    -&nbsp;        }
    -&nbsp;    },
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the `sql.raw` constant
    -&nbsp;     */
    -<b class="fc">&nbsp;    CONSTANT_SQL_RAW {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            return &quot;sql.raw&quot;;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-3.html
    deleted file mode 100644
    index fe6c5785fe..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-3.html
    +++ /dev/null
    @@ -1,136 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DelegatingStatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DelegatingStatementNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Unknown SQL.
    -&nbsp;     */
    -&nbsp;    private static final String UNKNOWN_SQL = &quot;sql.unknown&quot;;
    -&nbsp;
    -&nbsp;    private final List&lt;StatementNameStrategy&gt; strategies;
    -&nbsp;
    -<b class="fc">&nbsp;    protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {</b>
    -<b class="fc">&nbsp;        this.strategies = Arrays.asList(strategies);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;        for (StatementNameStrategy strategy : strategies) {</b>
    -<b class="fc">&nbsp;            final String statementName = strategy.getStatementName(statementContext);</b>
    -<b class="fc">&nbsp;            if (statementName != null) {</b>
    -<b class="fc">&nbsp;                return statementName;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return UNKNOWN_SQL;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-4.html
    deleted file mode 100644
    index 9a6af046f3..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-4.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NaiveNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NaiveNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Very simple strategy, can be used with any JDBI loader to build basic statistics.
    -&nbsp; */
    -&nbsp;public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;
    -&nbsp;    public NaiveNameStrategy() {
    -<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    -&nbsp;              DefaultNameStrategy.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-5.html
    deleted file mode 100644
    index 66bb117ef0..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-5.html
    +++ /dev/null
    @@ -1,117 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SmartNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SmartNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Uses a {@link BasicSqlNameStrategy} and fallbacks to {@link DefaultNameStrategy#CONSTANT_SQL_RAW}
    -&nbsp; */
    -&nbsp;public class SmartNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;
    -&nbsp;    public SmartNameStrategy() {
    -<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    -&nbsp;                DefaultNameStrategy.SQL_OBJECT,
    -&nbsp;                DefaultNameStrategy.CONSTANT_SQL_RAW);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-6.html
    deleted file mode 100644
    index 8c0703dae1..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-6.html
    +++ /dev/null
    @@ -1,151 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > TimedAnnotationNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: TimedAnnotationNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">TimedAnnotationNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import org.jdbi.v3.core.extension.ExtensionMethod;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Takes into account the {@link Timed} annotation on extension methods
    -&nbsp; */
    -<b class="fc">&nbsp;public class TimedAnnotationNameStrategy implements StatementNameStrategy {</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;        final ExtensionMethod extensionMethod = statementContext.getExtensionMethod();</b>
    -<b class="fc">&nbsp;        if (extensionMethod == null) {</b>
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Class&lt;?&gt; clazz = extensionMethod.getType();</b>
    -<b class="fc">&nbsp;        final Timed classTimed = clazz.getAnnotation(Timed.class);</b>
    -<b class="fc">&nbsp;        final Method method = extensionMethod.getMethod();</b>
    -<b class="fc">&nbsp;        final Timed methodTimed = method.getAnnotation(Timed.class);</b>
    -&nbsp;
    -&nbsp;        // If the method is timed, figure out the name
    -<b class="fc">&nbsp;        if (methodTimed != null) {</b>
    -<b class="fc">&nbsp;            String methodName = methodTimed.name().isEmpty() ? method.getName() : methodTimed.name();</b>
    -<b class="fc">&nbsp;            if (methodTimed.absolute()) {</b>
    -<b class="fc">&nbsp;                return methodName;</b>
    -&nbsp;            } else {
    -&nbsp;                // We need to check if the class has a custom timer name
    -<b class="fc">&nbsp;                return classTimed == null || classTimed.name().isEmpty() ?</b>
    -<b class="fc">&nbsp;                        MetricRegistry.name(clazz, methodName) :</b>
    -<b class="fc">&nbsp;                        MetricRegistry.name(classTimed.name(), methodName);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        } else if (classTimed != null) {</b>
    -&nbsp;            // Maybe the class is timed?
    -<b class="fc">&nbsp;            return classTimed.name().isEmpty() ? MetricRegistry.name(clazz, method.getName()) :</b>
    -<b class="nc">&nbsp;                    MetricRegistry.name(classTimed.name(), method.getName());</b>
    -&nbsp;        } else {
    -&nbsp;            // No timers neither on the method or the class
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-7.html
    deleted file mode 100644
    index 20ad5d0fe0..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-13/sources/source-7.html
    +++ /dev/null
    @@ -1,89 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > StatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">StatementNameStrategy$MockitoMock$4ynm8yDG</td>
    -  </tr>
    -  <tr>
    -    <td class="name">StatementNameStrategy$MockitoMock$4ynm8yDG$auxiliary$G6TUrXev</td>
    -  </tr>
    -  <tr>
    -    <td class="name">StatementNameStrategy$MockitoMock$4ynm8yDG$auxiliary$xgsHqId4</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Interface for strategies to statement contexts to metric names.
    -&nbsp; */
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface StatementNameStrategy {
    -&nbsp;
    -&nbsp;    String getStatementName(StatementContext statementContext);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index.html
    deleted file mode 100644
    index 6d25897cb4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 4c16c4d734..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 5d39cbd77d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 6f90be32dc..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 63f147b125..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 4c6871124a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index bcd45ad98a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index cad2b0a4eb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 5f2b06928f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 0af4663af5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-1.html
    deleted file mode 100644
    index c59839a600..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-1.html
    +++ /dev/null
    @@ -1,831 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey2</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey2)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.1%
    -  </span>
    -  <span class="absValue">
    -    (82/89)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.2%
    -  </span>
    -  <span class="absValue">
    -    (16/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (28/28)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey2;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    -&nbsp;import com.codahale.metrics.annotation.Metered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    -&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    -&nbsp;import org.glassfish.jersey.server.model.Resource;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    -&nbsp;
    -&nbsp;import javax.ws.rs.core.Configuration;
    -&nbsp;import javax.ws.rs.ext.Provider;
    -&nbsp;import java.lang.annotation.Annotation;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An application event listener that listens for Jersey application initialization to
    -&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    -&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    -&nbsp; * request events indicating that the method is about to be invoked, or just got done
    -&nbsp; * being invoked.
    -&nbsp; */
    -&nbsp;@Provider
    -&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    -&nbsp;    private static final String TOTAL = &quot;total&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metrics;
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Construct an application event listener using the given metrics registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    -&nbsp;     *
    -&nbsp;     * @param metrics a {@link MetricRegistry}
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    -<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters) {
    -<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters,
    -<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.metrics = metrics;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metric for a method annotated with the
    -&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    -&nbsp;     * and a cause for which the meter should be updated.
    -&nbsp;     */
    -&nbsp;    private static class ExceptionMeterMetric {
    -&nbsp;        public final Meter meter;
    -&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    -&nbsp;
    -&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    -&nbsp;                                    final ResourceMethod method,
    -<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    -<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    -<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    -<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    -<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metrics for a method annotated with the
    -&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    -&nbsp;     * different response codes
    -&nbsp;     */
    -&nbsp;    private static class ResponseMeterMetric {
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;        private final List&lt;Meter&gt; meters;
    -&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;        private final MetricRegistry metricRegistry;
    -&nbsp;        private final String metricName;
    -&nbsp;        private final ResponseMeteredLevel level;
    -&nbsp;
    -&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    -&nbsp;                                   final ResourceMethod method,
    -<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    -<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    -<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    -<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    -<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="fc">&nbsp;            )) : Collections.emptyList();</b>
    -<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public void mark(int statusCode) {
    -<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;            return responseCodeMeters</b>
    -<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    -&nbsp;
    -&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    -&nbsp;        private final Clock clock;
    -&nbsp;        private final long start;
    -&nbsp;        private Timer.Context resourceMethodStartContext;
    -&nbsp;        private Timer.Context requestMatchedContext;
    -&nbsp;        private Timer.Context responseFiltersStartContext;
    -&nbsp;
    -<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    -<b class="fc">&nbsp;            this.timers = timers;</b>
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            start = clock.getTick();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            switch (event.getType()) {</b>
    -&nbsp;                case RESOURCE_METHOD_START:
    -<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case REQUEST_MATCHED:
    -<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESP_FILTERS_START:
    -<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESOURCE_METHOD_FINISHED:
    -<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    -<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case REQUEST_FILTERED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    -<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case RESP_FILTERS_FINISHED:
    -<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case FINISHED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;                        if (timer != null) {</b>
    -<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    -&nbsp;                        }
    -<b class="fc">&nbsp;                    }</b>
    -&nbsp;                    break;
    -&nbsp;                default:
    -&nbsp;                    break;
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(RequestEvent event) {
    -<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer.Context context(RequestEvent event) {
    -<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    -&nbsp;
    -<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    -<b class="fc">&nbsp;            this.meters = meters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    -<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    -<b class="fc">&nbsp;                if (meter != null) {</b>
    -<b class="fc">&nbsp;                    meter.mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    -<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    -<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    -<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    -<b class="fc">&nbsp;                        metric.meter.mark();</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    -<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    -<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(500);</b>
    -<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    -&nbsp;        private final RequestEventListener[] listeners;
    -&nbsp;
    -<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    -<b class="fc">&nbsp;            this.listeners = listeners;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(final RequestEvent event) {
    -<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    -<b class="fc">&nbsp;                listener.onEvent(event);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onEvent(ApplicationEvent event) {
    -<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    -<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        return resourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    -<b class="fc">&nbsp;        return subResourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    -<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    -<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    -<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    -<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    -<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    -<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    -<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    -<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    -<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    -<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    -<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    -<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    -&nbsp;                new TimerRequestEventListener(timers, clock),
    -&nbsp;                new MeterRequestEventListener(meters),
    -&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    -&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    -&nbsp;
    -<b class="fc">&nbsp;        return listener;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    -<b class="fc">&nbsp;        T annotation = null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    -<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (annotation != null) {</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return annotation;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    -<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    -<b class="fc">&nbsp;        if (trackFilters) {</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Timed timed,
    -&nbsp;                              final String... suffixes) {
    -<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    -<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Metered metered) {
    -<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    -<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    -&nbsp;                                       final String... suffixes) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;        final String metricName;
    -<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    -<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    -&nbsp;
    -&nbsp;        private final RequestEvent.Type type;
    -&nbsp;        private final Method method;
    -&nbsp;
    -<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    -<b class="fc">&nbsp;            this.type = type;</b>
    -<b class="fc">&nbsp;            this.method = method;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod finished(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="fc">&nbsp;            if (this == o) {</b>
    -<b class="nc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (type != that.type) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return method.equals(that.method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="fc">&nbsp;            int result = type.hashCode();</b>
    -<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    -<b class="fc">&nbsp;            return result;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-2.html
    deleted file mode 100644
    index 2b4e5b61b4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-14/sources/source-2.html
    +++ /dev/null
    @@ -1,201 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsFeature</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey2</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey2)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsFeature</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey2;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import javax.ws.rs.core.Feature;
    -&nbsp;import javax.ws.rs.core.FeatureContext;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp; * for recording request events.
    -&nbsp; */
    -&nbsp;public class MetricsFeature implements Feature {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    -<b class="fc">&nbsp;        this(registry, clock, false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    -<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MetricsFeature(String registryName) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A call-back method called when the feature is to be enabled in a given
    -&nbsp;     * runtime configuration scope.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    -&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    -&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    -&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    -&nbsp;     * {@link javax.ws.rs.core.Configuration#isEnabled(javax.ws.rs.core.Feature)} or
    -&nbsp;     * {@link javax.ws.rs.core.Configuration#isEnabled(Class)} method
    -&nbsp;     * would return {@code false}.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     *
    -&nbsp;     * @param context configurable context in which the feature should be enabled.
    -&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    -&nbsp;     * otherwise.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean configure(FeatureContext context) {
    -<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index.html
    deleted file mode 100644
    index d2d5c5fea8..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index a040108789..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 17b1dac6ac..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 1ec5ab60af..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index c517edc285..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 33bb62b561..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index bdf00a63fb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index ffd360924c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index b1fbb4afe8..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 8e8f38761d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-1.html
    deleted file mode 100644
    index 2666cc9d1e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-1.html
    +++ /dev/null
    @@ -1,832 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey3)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.1%
    -  </span>
    -  <span class="absValue">
    -    (82/89)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.2%
    -  </span>
    -  <span class="absValue">
    -    (16/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (28/28)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey3;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    -&nbsp;import com.codahale.metrics.annotation.Metered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import jakarta.ws.rs.core.Configuration;
    -&nbsp;import jakarta.ws.rs.ext.Provider;
    -&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    -&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    -&nbsp;import org.glassfish.jersey.server.model.Resource;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Annotation;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An application event listener that listens for Jersey application initialization to
    -&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    -&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    -&nbsp; * request events indicating that the method is about to be invoked, or just got done
    -&nbsp; * being invoked.
    -&nbsp; */
    -&nbsp;@Provider
    -&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    -&nbsp;    private static final String TOTAL = &quot;total&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metrics;
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Construct an application event listener using the given metrics registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    -&nbsp;     *
    -&nbsp;     * @param metrics a {@link MetricRegistry}
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    -<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters) {
    -<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters,
    -<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.metrics = metrics;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metric for a method annotated with the
    -&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    -&nbsp;     * and a cause for which the meter should be updated.
    -&nbsp;     */
    -&nbsp;    private static class ExceptionMeterMetric {
    -&nbsp;        public final Meter meter;
    -&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    -&nbsp;
    -&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    -&nbsp;                                    final ResourceMethod method,
    -<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    -<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    -<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    -<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    -<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metrics for a method annotated with the
    -&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    -&nbsp;     * different response codes
    -&nbsp;     */
    -&nbsp;    private static class ResponseMeterMetric {
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;        private final List&lt;Meter&gt; meters;
    -&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;        private final MetricRegistry metricRegistry;
    -&nbsp;        private final String metricName;
    -&nbsp;        private final ResponseMeteredLevel level;
    -&nbsp;
    -&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    -&nbsp;                                   final ResourceMethod method,
    -<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    -<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    -<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    -<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    -<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="fc">&nbsp;                    )) : Collections.emptyList();</b>
    -<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public void mark(int statusCode) {
    -<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;            return responseCodeMeters</b>
    -<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    -&nbsp;
    -&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    -&nbsp;        private final Clock clock;
    -&nbsp;        private final long start;
    -&nbsp;        private Timer.Context resourceMethodStartContext;
    -&nbsp;        private Timer.Context requestMatchedContext;
    -&nbsp;        private Timer.Context responseFiltersStartContext;
    -&nbsp;
    -<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    -<b class="fc">&nbsp;            this.timers = timers;</b>
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            start = clock.getTick();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            switch (event.getType()) {</b>
    -&nbsp;                case RESOURCE_METHOD_START:
    -<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case REQUEST_MATCHED:
    -<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESP_FILTERS_START:
    -<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESOURCE_METHOD_FINISHED:
    -<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    -<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case REQUEST_FILTERED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    -<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case RESP_FILTERS_FINISHED:
    -<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case FINISHED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;                        if (timer != null) {</b>
    -<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    -&nbsp;                        }
    -<b class="fc">&nbsp;                    }</b>
    -&nbsp;                    break;
    -&nbsp;                default:
    -&nbsp;                    break;
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(RequestEvent event) {
    -<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer.Context context(RequestEvent event) {
    -<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    -&nbsp;
    -<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    -<b class="fc">&nbsp;            this.meters = meters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    -<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    -<b class="fc">&nbsp;                if (meter != null) {</b>
    -<b class="fc">&nbsp;                    meter.mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    -<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    -<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    -<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    -<b class="fc">&nbsp;                        metric.meter.mark();</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    -<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    -<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(500);</b>
    -<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    -&nbsp;        private final RequestEventListener[] listeners;
    -&nbsp;
    -<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    -<b class="fc">&nbsp;            this.listeners = listeners;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(final RequestEvent event) {
    -<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    -<b class="fc">&nbsp;                listener.onEvent(event);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onEvent(ApplicationEvent event) {
    -<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    -<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        return resourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    -<b class="fc">&nbsp;        return subResourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    -<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    -<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    -<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    -<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    -<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    -<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    -<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    -<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    -<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    -<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    -<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    -<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    -&nbsp;                new TimerRequestEventListener(timers, clock),
    -&nbsp;                new MeterRequestEventListener(meters),
    -&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    -&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    -&nbsp;
    -<b class="fc">&nbsp;        return listener;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    -<b class="fc">&nbsp;        T annotation = null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    -<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (annotation != null) {</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return annotation;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    -<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    -<b class="fc">&nbsp;        if (trackFilters) {</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Timed timed,
    -&nbsp;                              final String... suffixes) {
    -<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    -<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Metered metered) {
    -<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    -<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    -&nbsp;                                       final String... suffixes) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;        final String metricName;
    -<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    -<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    -&nbsp;
    -&nbsp;        private final RequestEvent.Type type;
    -&nbsp;        private final Method method;
    -&nbsp;
    -<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    -<b class="fc">&nbsp;            this.type = type;</b>
    -<b class="fc">&nbsp;            this.method = method;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod finished(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="fc">&nbsp;            if (this == o) {</b>
    -<b class="nc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (type != that.type) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return method.equals(that.method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="fc">&nbsp;            int result = type.hashCode();</b>
    -<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    -<b class="fc">&nbsp;            return result;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-2.html
    deleted file mode 100644
    index 7c29defc80..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-2.html
    +++ /dev/null
    @@ -1,201 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsFeature</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey3)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsFeature</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey3;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import jakarta.ws.rs.core.Feature;
    -&nbsp;import jakarta.ws.rs.core.FeatureContext;
    -&nbsp;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp; * for recording request events.
    -&nbsp; */
    -&nbsp;public class MetricsFeature implements Feature {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    -<b class="fc">&nbsp;        this(registry, clock, false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    -<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MetricsFeature(String registryName) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A call-back method called when the feature is to be enabled in a given
    -&nbsp;     * runtime configuration scope.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    -&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    -&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    -&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
    -&nbsp;     * would return {@code false}.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     *
    -&nbsp;     * @param context configurable context in which the feature should be enabled.
    -&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    -&nbsp;     * otherwise.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean configure(FeatureContext context) {
    -<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-3.html
    deleted file mode 100644
    index bbb508ef0f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-3.html
    +++ /dev/null
    @@ -1,708 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (com.codahale.metrics.jetty9)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpChannelListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (20/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.6%
    -  </span>
    -  <span class="absValue">
    -    (90/109)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    -&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    -&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    -&nbsp; *
    -&nbsp; * @since TBD
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    -&nbsp;    implements Listener
    -&nbsp;{
    -<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private final Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private final Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private final Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private final Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private final Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private final Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private final Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private final List&lt;Meter&gt; responses;
    -&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final Timer getRequests;
    -&nbsp;    private final Timer postRequests;
    -&nbsp;    private final Timer headRequests;
    -&nbsp;    private final Timer putRequests;
    -&nbsp;    private final Timer deleteRequests;
    -&nbsp;    private final Timer optionsRequests;
    -&nbsp;    private final Timer traceRequests;
    -&nbsp;    private final Timer connectRequests;
    -&nbsp;    private final Timer moveRequests;
    -&nbsp;    private final Timer otherRequests;
    -&nbsp;
    -&nbsp;    private final AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    -<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    -<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onBeforeDispatch(final Request request) {
    -<b class="fc">&nbsp;        before(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onAfterDispatch(final Request request) {
    -<b class="fc">&nbsp;        after(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContentEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestTrailers(final Request request) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseCommit(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onComplete(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void before(final Request request) {
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            activeSuspended.dec();</b>
    -<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void after(final Request request) {
    -<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    -<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.dec();</b>
    -<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    -<b class="fc">&nbsp;            activeSuspended.inc();</b>
    -<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    -&nbsp;        }
    -&nbsp;        // else onCompletion will handle it.
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="fc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-4.html
    deleted file mode 100644
    index 335ea09ff5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-15/sources/source-4.html
    +++ /dev/null
    @@ -1,286 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (com.codahale.metrics.jetty9)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (10/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    -&nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, queue);</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index.html
    deleted file mode 100644
    index 30a5da08ed..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 4ae554dc83..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index ea3398284b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 5a07ef3f5f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 6a2d1659af..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 9fc0e7531a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 3546eefc9b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index dbfe904eb4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index bcb84157df..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 3264f29aae..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-1.html
    deleted file mode 100644
    index 3267dc55f2..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-1.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (com.codahale.metrics.jetty9)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    -&nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-2.html
    deleted file mode 100644
    index 58485fcd0c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-2.html
    +++ /dev/null
    @@ -1,754 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHandler (com.codahale.metrics.jetty9)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (115/135)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    -&nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    -&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    private final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private List&lt;Meter&gt; responses;
    -&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    private Timer getRequests;
    -&nbsp;    private Timer postRequests;
    -&nbsp;    private Timer headRequests;
    -&nbsp;    private Timer putRequests;
    -&nbsp;    private Timer deleteRequests;
    -&nbsp;    private Timer optionsRequests;
    -&nbsp;    private Timer traceRequests;
    -&nbsp;    private Timer connectRequests;
    -&nbsp;    private Timer moveRequests;
    -&nbsp;    private Timer otherRequests;
    -&nbsp;
    -&nbsp;    private AsyncListener listener;
    -&nbsp;
    -&nbsp;    private HttpChannelState.State DISPATCHED_HACK;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            DISPATCHED_HACK = HttpChannelState.State.valueOf(&quot;HANDLING&quot;);</b>
    -<b class="nc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    -<b class="nc">&nbsp;            DISPATCHED_HACK = HttpChannelState.State.valueOf(&quot;DISPATCHED&quot;);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;            ));
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void handle(String path,
    -&nbsp;                       Request request,
    -&nbsp;                       HttpServletRequest httpRequest,
    -&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == DISPATCHED_HACK) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-3.html
    deleted file mode 100644
    index 9fe00be6d7..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-3.html
    +++ /dev/null
    @@ -1,708 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (com.codahale.metrics.jetty9)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpChannelListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (20/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.6%
    -  </span>
    -  <span class="absValue">
    -    (90/109)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    -&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    -&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    -&nbsp; *
    -&nbsp; * @since TBD
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    -&nbsp;    implements Listener
    -&nbsp;{
    -<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private final Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private final Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private final Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private final Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private final Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private final Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private final Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private final List&lt;Meter&gt; responses;
    -&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final Timer getRequests;
    -&nbsp;    private final Timer postRequests;
    -&nbsp;    private final Timer headRequests;
    -&nbsp;    private final Timer putRequests;
    -&nbsp;    private final Timer deleteRequests;
    -&nbsp;    private final Timer optionsRequests;
    -&nbsp;    private final Timer traceRequests;
    -&nbsp;    private final Timer connectRequests;
    -&nbsp;    private final Timer moveRequests;
    -&nbsp;    private final Timer otherRequests;
    -&nbsp;
    -&nbsp;    private final AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    -<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    -<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onBeforeDispatch(final Request request) {
    -<b class="fc">&nbsp;        before(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onAfterDispatch(final Request request) {
    -<b class="fc">&nbsp;        after(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContentEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestTrailers(final Request request) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseCommit(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onComplete(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void before(final Request request) {
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            activeSuspended.dec();</b>
    -<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void after(final Request request) {
    -<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    -<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.dec();</b>
    -<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    -<b class="fc">&nbsp;            activeSuspended.inc();</b>
    -<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    -&nbsp;        }
    -&nbsp;        // else onCompletion will handle it.
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="fc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-4.html
    deleted file mode 100644
    index 42da97bc51..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-16/sources/source-4.html
    +++ /dev/null
    @@ -1,286 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (com.codahale.metrics.jetty9)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (10/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    -&nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, queue);</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index.html
    deleted file mode 100644
    index c04c134fcd..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index be0e594ac5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 2982077daf..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 0345555986..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 3511a7f132..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 5a12cb02dc..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 92039086a4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 450328f7a3..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 0663cd0cf6..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 24b62402e6..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-1.html
    deleted file mode 100644
    index ef11b1f955..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-1.html
    +++ /dev/null
    @@ -1,173 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DefaultObjectNameFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jmx</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DefaultObjectNameFactory (com.codahale.metrics.jmx)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DefaultObjectNameFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    -&nbsp;
    -&nbsp;import java.util.Hashtable;
    -&nbsp;
    -&nbsp;import javax.management.MalformedObjectNameException;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -<b class="fc">&nbsp;public class DefaultObjectNameFactory implements ObjectNameFactory {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private static final char[] QUOTABLE_CHARS = new char[] {&#39;,&#39;, &#39;=&#39;, &#39;:&#39;, &#39;&quot;&#39;};</b>
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ObjectName createName(String type, String domain, String name) {
    -&nbsp;        try {
    -&nbsp;            ObjectName objectName;
    -<b class="fc">&nbsp;            Hashtable&lt;String, String&gt; properties = new Hashtable&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            properties.put(&quot;name&quot;, name);</b>
    -<b class="fc">&nbsp;            properties.put(&quot;type&quot;, type);</b>
    -<b class="fc">&nbsp;            objectName = new ObjectName(domain, properties);</b>
    -&nbsp;
    -&nbsp;            /*
    -&nbsp;             * The only way we can find out if we need to quote the properties is by
    -&nbsp;             * checking an ObjectName that we&#39;ve constructed.
    -&nbsp;             */
    -<b class="fc">&nbsp;            if (objectName.isDomainPattern()) {</b>
    -<b class="nc">&nbsp;                domain = ObjectName.quote(domain);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (objectName.isPropertyValuePattern(&quot;name&quot;) || shouldQuote(objectName.getKeyProperty(&quot;name&quot;))) {</b>
    -<b class="fc">&nbsp;                properties.put(&quot;name&quot;, ObjectName.quote(name));</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (objectName.isPropertyValuePattern(&quot;type&quot;) || shouldQuote(objectName.getKeyProperty(&quot;type&quot;))) {</b>
    -<b class="nc">&nbsp;                properties.put(&quot;type&quot;, ObjectName.quote(type));</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            objectName = new ObjectName(domain, properties);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            return objectName;</b>
    -<b class="nc">&nbsp;        } catch (MalformedObjectNameException e) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                return new ObjectName(domain, &quot;name&quot;, ObjectName.quote(name));</b>
    -<b class="nc">&nbsp;            } catch (MalformedObjectNameException e1) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register {} {}&quot;, type, name, e1);</b>
    -<b class="nc">&nbsp;                throw new RuntimeException(e1);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Determines whether the value requires quoting.
    -&nbsp;     * According to the {@link ObjectName} documentation, values can be quoted or unquoted. Unquoted
    -&nbsp;     * values may not contain any of the characters comma, equals, colon, or quote.
    -&nbsp;     *
    -&nbsp;     * @param value a value to test
    -&nbsp;     * @return true when it requires quoting, false otherwise
    -&nbsp;     */
    -&nbsp;    private boolean shouldQuote(final String value) {
    -<b class="fc">&nbsp;        for (char quotableChar : QUOTABLE_CHARS) {</b>
    -<b class="fc">&nbsp;            if (value.indexOf(quotableChar) != -1) {</b>
    -<b class="fc">&nbsp;                return true;</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return false;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-2.html
    deleted file mode 100644
    index f913c2c6d4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-2.html
    +++ /dev/null
    @@ -1,1061 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JmxReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jmx</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: JmxReporter (com.codahale.metrics.jmx)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">JmxReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">JmxReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$AbstractBean</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (9/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.4%
    -  </span>
    -  <span class="absValue">
    -    (27/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxCounter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxCounterMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxGaugeMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxHistogram</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxHistogramMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.8%
    -  </span>
    -  <span class="absValue">
    -    (11/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    49.5%
    -  </span>
    -  <span class="absValue">
    -    (50/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxMeter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxMeterMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxTimer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxTimerMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$MetricMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$MetricTimeUnits</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.Metered;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.MetricRegistryListener;
    -&nbsp;import com.codahale.metrics.Reporter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import javax.management.InstanceAlreadyExistsException;
    -&nbsp;import javax.management.InstanceNotFoundException;
    -&nbsp;import javax.management.JMException;
    -&nbsp;import javax.management.MBeanRegistrationException;
    -&nbsp;import javax.management.MBeanServer;
    -&nbsp;import javax.management.ObjectInstance;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;import java.io.Closeable;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which listens for new metrics and exposes them as namespaced MBeans.
    -&nbsp; */
    -<b class="fc">&nbsp;public class JmxReporter implements Reporter, Closeable {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link JmxReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link JmxReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link JmxReporter} instances. Defaults to using the default MBean server and
    -&nbsp;     * not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private MBeanServer mBeanServer;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private ObjectNameFactory objectNameFactory;
    -<b class="fc">&nbsp;        private MetricFilter filter = MetricFilter.ALL;</b>
    -&nbsp;        private String domain;
    -&nbsp;        private Map&lt;String, TimeUnit&gt; specificDurationUnits;
    -&nbsp;        private Map&lt;String, TimeUnit&gt; specificRateUnits;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.domain = &quot;metrics&quot;;</b>
    -<b class="fc">&nbsp;            this.objectNameFactory = new DefaultObjectNameFactory();</b>
    -<b class="fc">&nbsp;            this.specificDurationUnits = Collections.emptyMap();</b>
    -<b class="fc">&nbsp;            this.specificRateUnits = Collections.emptyMap();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Register MBeans with the given {@link MBeanServer}.
    -&nbsp;         *
    -&nbsp;         * @param mBeanServer an {@link MBeanServer}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder registerWith(MBeanServer mBeanServer) {
    -<b class="fc">&nbsp;            this.mBeanServer = mBeanServer;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder createsObjectNamesWith(ObjectNameFactory onFactory) {
    -<b class="fc">&nbsp;            if (onFactory == null) {</b>
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;null objectNameFactory&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            this.objectNameFactory = onFactory;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder inDomain(String domain) {
    -<b class="fc">&nbsp;            this.domain = domain;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use specific {@link TimeUnit}s for the duration of the metrics with these names.
    -&nbsp;         *
    -&nbsp;         * @param specificDurationUnits a map of metric names and specific {@link TimeUnit}s
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder specificDurationUnits(Map&lt;String, TimeUnit&gt; specificDurationUnits) {
    -<b class="nc">&nbsp;            this.specificDurationUnits = Collections.unmodifiableMap(specificDurationUnits);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use specific {@link TimeUnit}s for the rate of the metrics with these names.
    -&nbsp;         *
    -&nbsp;         * @param specificRateUnits a map of metric names and specific {@link TimeUnit}s
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder specificRateUnits(Map&lt;String, TimeUnit&gt; specificRateUnits) {
    -<b class="nc">&nbsp;            this.specificRateUnits = Collections.unmodifiableMap(specificRateUnits);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link JmxReporter} with the given properties.
    -&nbsp;         *
    -&nbsp;         * @return a {@link JmxReporter}
    -&nbsp;         */
    -&nbsp;        public JmxReporter build() {
    -<b class="fc">&nbsp;            final MetricTimeUnits timeUnits = new MetricTimeUnits(rateUnit, durationUnit, specificRateUnits, specificDurationUnits);</b>
    -<b class="fc">&nbsp;            if (mBeanServer == null) {</b>
    -<b class="fc">&nbsp;                mBeanServer = ManagementFactory.getPlatformMBeanServer();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new JmxReporter(mBeanServer, domain, registry, filter, timeUnits, objectNameFactory);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);</b>
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface MetricMBean {
    -&nbsp;        ObjectName objectName();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private abstract static class AbstractBean implements MetricMBean {
    -&nbsp;        private final ObjectName objectName;
    -&nbsp;
    -<b class="fc">&nbsp;        AbstractBean(ObjectName objectName) {</b>
    -<b class="fc">&nbsp;            this.objectName = objectName;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public ObjectName objectName() {
    -<b class="nc">&nbsp;            return objectName;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxGaugeMBean extends MetricMBean {
    -&nbsp;        Object getValue();
    -&nbsp;        Number getNumber();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxGauge extends AbstractBean implements JmxGaugeMBean {</b>
    -&nbsp;        private final Gauge&lt;?&gt; metric;
    -&nbsp;
    -&nbsp;        private JmxGauge(Gauge&lt;?&gt; metric, ObjectName objectName) {
    -<b class="fc">&nbsp;            super(objectName);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Object getValue() {
    -<b class="fc">&nbsp;            return metric.getValue();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Number getNumber() {
    -<b class="fc">&nbsp;            Object value = metric.getValue();</b>
    -<b class="fc">&nbsp;            return value instanceof Number ? (Number) value : 0;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxCounterMBean extends MetricMBean {
    -&nbsp;        long getCount();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxCounter extends AbstractBean implements JmxCounterMBean {</b>
    -&nbsp;        private final Counter metric;
    -&nbsp;
    -&nbsp;        private JmxCounter(Counter metric, ObjectName objectName) {
    -<b class="fc">&nbsp;            super(objectName);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="fc">&nbsp;            return metric.getCount();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxHistogramMBean extends MetricMBean {
    -&nbsp;        long getCount();
    -&nbsp;
    -&nbsp;        long getMin();
    -&nbsp;
    -&nbsp;        long getMax();
    -&nbsp;
    -&nbsp;        double getMean();
    -&nbsp;
    -&nbsp;        double getStdDev();
    -&nbsp;
    -&nbsp;        double get50thPercentile();
    -&nbsp;
    -&nbsp;        double get75thPercentile();
    -&nbsp;
    -&nbsp;        double get95thPercentile();
    -&nbsp;
    -&nbsp;        double get98thPercentile();
    -&nbsp;
    -&nbsp;        double get99thPercentile();
    -&nbsp;
    -&nbsp;        double get999thPercentile();
    -&nbsp;
    -&nbsp;        long[] values();
    -&nbsp;
    -&nbsp;        long getSnapshotSize();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxHistogram implements JmxHistogramMBean {</b>
    -&nbsp;        private final ObjectName objectName;
    -&nbsp;        private final Histogram metric;
    -&nbsp;
    -<b class="fc">&nbsp;        private JmxHistogram(Histogram metric, ObjectName objectName) {</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -<b class="fc">&nbsp;            this.objectName = objectName;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public ObjectName objectName() {
    -<b class="nc">&nbsp;            return objectName;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get50thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMedian();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="fc">&nbsp;            return metric.getCount();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getMin() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMin();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getMax() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMax();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMean() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMean();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getStdDev() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getStdDev();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get75thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get75thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get95thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get95thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get98thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get98thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get99thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get99thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get999thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get999thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long[] values() {
    -<b class="nc">&nbsp;            return metric.getSnapshot().getValues();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getSnapshotSize() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().size();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxMeterMBean extends MetricMBean {
    -&nbsp;        long getCount();
    -&nbsp;
    -&nbsp;        double getMeanRate();
    -&nbsp;
    -&nbsp;        double getOneMinuteRate();
    -&nbsp;
    -&nbsp;        double getFiveMinuteRate();
    -&nbsp;
    -&nbsp;        double getFifteenMinuteRate();
    -&nbsp;
    -&nbsp;        String getRateUnit();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxMeter extends AbstractBean implements JmxMeterMBean {</b>
    -&nbsp;        private final Metered metric;
    -&nbsp;        private final double rateFactor;
    -&nbsp;        private final String rateUnit;
    -&nbsp;
    -&nbsp;        private JmxMeter(Metered metric, ObjectName objectName, TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            super(objectName);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;            this.rateUnit = (&quot;events/&quot; + calculateRateUnit(rateUnit)).intern();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="fc">&nbsp;            return metric.getCount();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMeanRate() {
    -<b class="fc">&nbsp;            return metric.getMeanRate() * rateFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getOneMinuteRate() {
    -<b class="fc">&nbsp;            return metric.getOneMinuteRate() * rateFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getFiveMinuteRate() {
    -<b class="fc">&nbsp;            return metric.getFiveMinuteRate() * rateFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getFifteenMinuteRate() {
    -<b class="fc">&nbsp;            return metric.getFifteenMinuteRate() * rateFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getRateUnit() {
    -<b class="fc">&nbsp;            return rateUnit;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private String calculateRateUnit(TimeUnit unit) {
    -<b class="fc">&nbsp;            final String s = unit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;            return s.substring(0, s.length() - 1);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxTimerMBean extends JmxMeterMBean {
    -&nbsp;        double getMin();
    -&nbsp;
    -&nbsp;        double getMax();
    -&nbsp;
    -&nbsp;        double getMean();
    -&nbsp;
    -&nbsp;        double getStdDev();
    -&nbsp;
    -&nbsp;        double get50thPercentile();
    -&nbsp;
    -&nbsp;        double get75thPercentile();
    -&nbsp;
    -&nbsp;        double get95thPercentile();
    -&nbsp;
    -&nbsp;        double get98thPercentile();
    -&nbsp;
    -&nbsp;        double get99thPercentile();
    -&nbsp;
    -&nbsp;        double get999thPercentile();
    -&nbsp;
    -&nbsp;        long[] values();
    -&nbsp;
    -&nbsp;        String getDurationUnit();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static class JmxTimer extends JmxMeter implements JmxTimerMBean {</b>
    -&nbsp;        private final Timer metric;
    -&nbsp;        private final double durationFactor;
    -&nbsp;        private final String durationUnit;
    -&nbsp;
    -&nbsp;        private JmxTimer(Timer metric,
    -&nbsp;                         ObjectName objectName,
    -&nbsp;                         TimeUnit rateUnit,
    -&nbsp;                         TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            super(metric, objectName, rateUnit);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -<b class="fc">&nbsp;            this.durationFactor = 1.0 / durationUnit.toNanos(1);</b>
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get50thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMedian() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMin() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMin() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMax() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMax() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMean() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMean() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getStdDev() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getStdDev() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get75thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get75thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get95thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get95thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get98thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get98thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get99thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get99thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get999thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get999thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long[] values() {
    -<b class="nc">&nbsp;            return metric.getSnapshot().getValues();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getDurationUnit() {
    -<b class="fc">&nbsp;            return durationUnit;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxListener implements MetricRegistryListener {</b>
    -&nbsp;        private final String name;
    -&nbsp;        private final MBeanServer mBeanServer;
    -&nbsp;        private final MetricFilter filter;
    -&nbsp;        private final MetricTimeUnits timeUnits;
    -&nbsp;        private final Map&lt;ObjectName, ObjectName&gt; registered;
    -&nbsp;        private final ObjectNameFactory objectNameFactory;
    -&nbsp;
    -<b class="fc">&nbsp;        private JmxListener(MBeanServer mBeanServer, String name, MetricFilter filter, MetricTimeUnits timeUnits, ObjectNameFactory objectNameFactory) {</b>
    -<b class="fc">&nbsp;            this.mBeanServer = mBeanServer;</b>
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            this.timeUnits = timeUnits;</b>
    -<b class="fc">&nbsp;            this.registered = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;            this.objectNameFactory = objectNameFactory;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void registerMBean(Object mBean, ObjectName objectName) throws InstanceAlreadyExistsException, JMException {
    -<b class="fc">&nbsp;            ObjectInstance objectInstance = mBeanServer.registerMBean(mBean, objectName);</b>
    -<b class="fc">&nbsp;            if (objectInstance != null) {</b>
    -&nbsp;                // the websphere mbeanserver rewrites the objectname to include
    -&nbsp;                // cell, node &amp; server info
    -&nbsp;                // make sure we capture the new objectName for unregistration
    -<b class="fc">&nbsp;                registered.put(objectName, objectInstance.getObjectName());</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                registered.put(objectName, objectName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void unregisterMBean(ObjectName originalObjectName) throws InstanceNotFoundException, MBeanRegistrationException {
    -<b class="fc">&nbsp;            ObjectName storedObjectName = registered.remove(originalObjectName);</b>
    -<b class="fc">&nbsp;            if (storedObjectName != null) {</b>
    -<b class="fc">&nbsp;                mBeanServer.unregisterMBean(storedObjectName);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                mBeanServer.unregisterMBean(originalObjectName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, gauge)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;gauges&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxGauge(gauge, objectName), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register gauge&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register gauge&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onGaugeRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;gauges&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister gauge&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister gauge&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onCounterAdded(String name, Counter counter) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, counter)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;counters&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxCounter(counter, objectName), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register counter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register counter&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onCounterRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;counters&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister counter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister counter&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onHistogramAdded(String name, Histogram histogram) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, histogram)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;histograms&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxHistogram(histogram, objectName), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register histogram&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register histogram&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onHistogramRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;histograms&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister histogram&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister histogram&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onMeterAdded(String name, Meter meter) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, meter)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;meters&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxMeter(meter, objectName, timeUnits.rateFor(name)), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register meter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register meter&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onMeterRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;meters&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister meter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister meter&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimerAdded(String name, Timer timer) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, timer)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;timers&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxTimer(timer, objectName, timeUnits.rateFor(name), timeUnits.durationFor(name)), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register timer&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register timer&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimerRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;timers&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister timer&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister timer&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private ObjectName createName(String type, String name) {
    -<b class="fc">&nbsp;            return objectNameFactory.createName(type, this.name, name);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        void unregisterAll() {
    -<b class="fc">&nbsp;            for (ObjectName name : registered.keySet()) {</b>
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    unregisterMBean(name);</b>
    -<b class="nc">&nbsp;                } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                    LOGGER.debug(&quot;Unable to unregister metric&quot;, e);</b>
    -<b class="nc">&nbsp;                } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                    LOGGER.warn(&quot;Unable to unregister metric&quot;, e);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            registered.clear();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MetricTimeUnits {
    -&nbsp;        private final TimeUnit defaultRate;
    -&nbsp;        private final TimeUnit defaultDuration;
    -&nbsp;        private final Map&lt;String, TimeUnit&gt; rateOverrides;
    -&nbsp;        private final Map&lt;String, TimeUnit&gt; durationOverrides;
    -&nbsp;
    -&nbsp;        MetricTimeUnits(TimeUnit defaultRate,
    -&nbsp;                        TimeUnit defaultDuration,
    -&nbsp;                        Map&lt;String, TimeUnit&gt; rateOverrides,
    -<b class="fc">&nbsp;                        Map&lt;String, TimeUnit&gt; durationOverrides) {</b>
    -<b class="fc">&nbsp;            this.defaultRate = defaultRate;</b>
    -<b class="fc">&nbsp;            this.defaultDuration = defaultDuration;</b>
    -<b class="fc">&nbsp;            this.rateOverrides = rateOverrides;</b>
    -<b class="fc">&nbsp;            this.durationOverrides = durationOverrides;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public TimeUnit durationFor(String name) {
    -<b class="fc">&nbsp;            return durationOverrides.getOrDefault(name, defaultDuration);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public TimeUnit rateFor(String name) {
    -<b class="fc">&nbsp;            return rateOverrides.getOrDefault(name, defaultRate);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final JmxListener listener;
    -&nbsp;
    -&nbsp;    private JmxReporter(MBeanServer mBeanServer,
    -&nbsp;                        String domain,
    -&nbsp;                        MetricRegistry registry,
    -&nbsp;                        MetricFilter filter,
    -&nbsp;                        MetricTimeUnits timeUnits,
    -<b class="fc">&nbsp;                        ObjectNameFactory objectNameFactory) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.listener = new JmxListener(mBeanServer, domain, filter, timeUnits, objectNameFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Starts the reporter.
    -&nbsp;     */
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        registry.addListener(listener);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Stops the reporter.
    -&nbsp;     */
    -&nbsp;    public void stop() {
    -<b class="fc">&nbsp;        registry.removeListener(listener);</b>
    -<b class="fc">&nbsp;        listener.unregisterAll();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Stops the reporter.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="nc">&nbsp;        stop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Visible for testing
    -&nbsp;     */
    -&nbsp;    ObjectNameFactory getObjectNameFactory() {
    -<b class="fc">&nbsp;        return listener.objectNameFactory;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-3.html
    deleted file mode 100644
    index 294415cea5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-17/sources/source-3.html
    +++ /dev/null
    @@ -1,85 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ObjectNameFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jmx</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ObjectNameFactory (com.codahale.metrics.jmx)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">ObjectNameFactory$MockitoMock$e52ggOF9</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ObjectNameFactory$MockitoMock$e52ggOF9$auxiliary$32SCHgva</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ObjectNameFactory$MockitoMock$e52ggOF9$auxiliary$g7yRCWs6</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    -&nbsp;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;
    -&nbsp;public interface ObjectNameFactory {
    -&nbsp;
    -&nbsp;    ObjectName createName(String type, String domain, String name);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index.html
    deleted file mode 100644
    index fc04a352f4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 1609b5debe..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 1c89ae8fba..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 697e0238ab..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 61c20a0057..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE.html
    deleted file mode 100644
    index deb578017e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 49a56b0974..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 88cbb1ec39..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index ff628f60fe..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 8cc6bf3795..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-1.html
    deleted file mode 100644
    index 2803f6712d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-1.html
    +++ /dev/null
    @@ -1,217 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckModule</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.json</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckModule (com.codahale.metrics.json)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckModule</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckModule$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheckModule$HealthCheckResultSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (27/27)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.json;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.fasterxml.jackson.core.JsonGenerator;
    -&nbsp;import com.fasterxml.jackson.core.Version;
    -&nbsp;import com.fasterxml.jackson.databind.Module;
    -&nbsp;import com.fasterxml.jackson.databind.SerializerProvider;
    -&nbsp;import com.fasterxml.jackson.databind.module.SimpleSerializers;
    -&nbsp;import com.fasterxml.jackson.databind.ser.std.StdSerializer;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -<b class="fc">&nbsp;public class HealthCheckModule extends Module {</b>
    -<b class="fc">&nbsp;    private static class HealthCheckResultSerializer extends StdSerializer&lt;HealthCheck.Result&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private HealthCheckResultSerializer() {
    -<b class="fc">&nbsp;            super(HealthCheck.Result.class);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(HealthCheck.Result result,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeBooleanField(&quot;healthy&quot;, result.isHealthy());</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final String message = result.getMessage();</b>
    -<b class="fc">&nbsp;            if (message != null) {</b>
    -<b class="fc">&nbsp;                json.writeStringField(&quot;message&quot;, message);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            serializeThrowable(json, result.getError(), &quot;error&quot;);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;duration&quot;, result.getDuration());</b>
    -&nbsp;
    -<b class="fc">&nbsp;            Map&lt;String, Object&gt; details = result.getDetails();</b>
    -<b class="fc">&nbsp;            if (details != null &amp;&amp; !details.isEmpty()) {</b>
    -<b class="fc">&nbsp;                for (Map.Entry&lt;String, Object&gt; e : details.entrySet()) {</b>
    -<b class="fc">&nbsp;                    json.writeObjectField(e.getKey(), e.getValue());</b>
    -<b class="fc">&nbsp;                }</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            json.writeStringField(&quot;timestamp&quot;, result.getTimestamp());</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void serializeThrowable(JsonGenerator json, Throwable error, String name) throws IOException {
    -<b class="fc">&nbsp;            if (error != null) {</b>
    -<b class="fc">&nbsp;                json.writeObjectFieldStart(name);</b>
    -<b class="fc">&nbsp;                json.writeStringField(&quot;type&quot;, error.getClass().getTypeName());</b>
    -<b class="fc">&nbsp;                json.writeStringField(&quot;message&quot;, error.getMessage());</b>
    -<b class="fc">&nbsp;                json.writeArrayFieldStart(&quot;stack&quot;);</b>
    -<b class="fc">&nbsp;                for (StackTraceElement element : error.getStackTrace()) {</b>
    -<b class="fc">&nbsp;                    json.writeString(element.toString());</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                json.writeEndArray();</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (error.getCause() != null) {</b>
    -<b class="fc">&nbsp;                    serializeThrowable(json, error.getCause(), &quot;cause&quot;);</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                json.writeEndObject();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getModuleName() {
    -<b class="fc">&nbsp;        return &quot;healthchecks&quot;;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Version version() {
    -<b class="fc">&nbsp;        return MetricsModule.VERSION;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void setupModule(SetupContext context) {
    -<b class="fc">&nbsp;        context.addSerializers(new SimpleSerializers(Collections.singletonList(new HealthCheckResultSerializer())));</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-2.html
    deleted file mode 100644
    index 605a0ca0ea..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-2.html
    +++ /dev/null
    @@ -1,489 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsModule</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.json</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsModule</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (12/13)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetricsModule$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$CounterSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$GaugeSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$HistogramSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$MeterSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$MetricRegistrySerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$TimerSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (33/33)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.json;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Snapshot;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.fasterxml.jackson.core.JsonGenerator;
    -&nbsp;import com.fasterxml.jackson.core.Version;
    -&nbsp;import com.fasterxml.jackson.databind.Module;
    -&nbsp;import com.fasterxml.jackson.databind.SerializerProvider;
    -&nbsp;import com.fasterxml.jackson.databind.module.SimpleSerializers;
    -&nbsp;import com.fasterxml.jackson.databind.ser.std.StdSerializer;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -<b class="fc">&nbsp;public class MetricsModule extends Module {</b>
    -<b class="fc">&nbsp;    static final Version VERSION = new Version(4, 0, 0, &quot;&quot;, &quot;io.dropwizard.metrics&quot;, &quot;metrics-json&quot;);</b>
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -<b class="fc">&nbsp;    private static class GaugeSerializer extends StdSerializer&lt;Gauge&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private GaugeSerializer() {
    -<b class="fc">&nbsp;            super(Gauge.class);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Gauge gauge,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -&nbsp;            final Object value;
    -&nbsp;            try {
    -<b class="fc">&nbsp;                value = gauge.getValue();</b>
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;value&quot;, value);</b>
    -<b class="fc">&nbsp;            } catch (RuntimeException e) {</b>
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;error&quot;, e.toString());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class CounterSerializer extends StdSerializer&lt;Counter&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private CounterSerializer() {
    -<b class="fc">&nbsp;            super(Counter.class);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Counter counter,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, counter.getCount());</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class HistogramSerializer extends StdSerializer&lt;Histogram&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private final boolean showSamples;
    -&nbsp;
    -&nbsp;        private HistogramSerializer(boolean showSamples) {
    -<b class="fc">&nbsp;            super(Histogram.class);</b>
    -<b class="fc">&nbsp;            this.showSamples = showSamples;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Histogram histogram,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            final Snapshot snapshot = histogram.getSnapshot();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, histogram.getCount());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;max&quot;, snapshot.getMax());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean&quot;, snapshot.getMean());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;min&quot;, snapshot.getMin());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p50&quot;, snapshot.getMedian());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p75&quot;, snapshot.get75thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p95&quot;, snapshot.get95thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p98&quot;, snapshot.get98thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p99&quot;, snapshot.get99thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p999&quot;, snapshot.get999thPercentile());</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (showSamples) {</b>
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;values&quot;, snapshot.getValues());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;stddev&quot;, snapshot.getStdDev());</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MeterSerializer extends StdSerializer&lt;Meter&gt; {
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private final String rateUnit;
    -&nbsp;        private final double rateFactor;
    -&nbsp;
    -&nbsp;        public MeterSerializer(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            super(Meter.class);</b>
    -<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;            this.rateUnit = calculateRateUnit(rateUnit, &quot;events&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Meter meter,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, meter.getCount());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m15_rate&quot;, meter.getFifteenMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m1_rate&quot;, meter.getOneMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m5_rate&quot;, meter.getFiveMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean_rate&quot;, meter.getMeanRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;units&quot;, rateUnit);</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class TimerSerializer extends StdSerializer&lt;Timer&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private final String rateUnit;
    -&nbsp;        private final double rateFactor;
    -&nbsp;        private final String durationUnit;
    -&nbsp;        private final double durationFactor;
    -&nbsp;        private final boolean showSamples;
    -&nbsp;
    -&nbsp;        private TimerSerializer(TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit,
    -&nbsp;                                boolean showSamples) {
    -<b class="fc">&nbsp;            super(Timer.class);</b>
    -<b class="fc">&nbsp;            this.rateUnit = calculateRateUnit(rateUnit, &quot;calls&quot;);</b>
    -<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;            this.durationFactor = 1.0 / durationUnit.toNanos(1);</b>
    -<b class="fc">&nbsp;            this.showSamples = showSamples;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Timer timer,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            final Snapshot snapshot = timer.getSnapshot();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, timer.getCount());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;max&quot;, snapshot.getMax() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean&quot;, snapshot.getMean() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;min&quot;, snapshot.getMin() * durationFactor);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p50&quot;, snapshot.getMedian() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p75&quot;, snapshot.get75thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p95&quot;, snapshot.get95thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p98&quot;, snapshot.get98thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p99&quot;, snapshot.get99thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p999&quot;, snapshot.get999thPercentile() * durationFactor);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (showSamples) {</b>
    -<b class="fc">&nbsp;                final long[] values = snapshot.getValues();</b>
    -<b class="fc">&nbsp;                final double[] scaledValues = new double[values.length];</b>
    -<b class="fc">&nbsp;                for (int i = 0; i &lt; values.length; i++) {</b>
    -<b class="fc">&nbsp;                    scaledValues[i] = values[i] * durationFactor;</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;values&quot;, scaledValues);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;stddev&quot;, snapshot.getStdDev() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m15_rate&quot;, timer.getFifteenMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m1_rate&quot;, timer.getOneMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m5_rate&quot;, timer.getFiveMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean_rate&quot;, timer.getMeanRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;duration_units&quot;, durationUnit);</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;rate_units&quot;, rateUnit);</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class MetricRegistrySerializer extends StdSerializer&lt;MetricRegistry&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private final MetricFilter filter;
    -&nbsp;
    -&nbsp;        private MetricRegistrySerializer(MetricFilter filter) {
    -<b class="fc">&nbsp;            super(MetricRegistry.class);</b>
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(MetricRegistry registry,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;version&quot;, VERSION.toString());</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;gauges&quot;, registry.getGauges(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;counters&quot;, registry.getCounters(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;histograms&quot;, registry.getHistograms(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;meters&quot;, registry.getMeters(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;timers&quot;, registry.getTimers(filter));</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected final TimeUnit rateUnit;
    -&nbsp;    protected final TimeUnit durationUnit;
    -&nbsp;    protected final boolean showSamples;
    -&nbsp;    protected final MetricFilter filter;
    -&nbsp;
    -&nbsp;    public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples) {
    -<b class="nc">&nbsp;        this(rateUnit, durationUnit, showSamples, MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples, MetricFilter filter) {</b>
    -<b class="fc">&nbsp;        this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;        this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;        this.showSamples = showSamples;</b>
    -<b class="fc">&nbsp;        this.filter = filter;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getModuleName() {
    -<b class="fc">&nbsp;        return &quot;metrics&quot;;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Version version() {
    -<b class="fc">&nbsp;        return VERSION;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void setupModule(SetupContext context) {
    -<b class="fc">&nbsp;        context.addSerializers(new SimpleSerializers(Arrays.asList(</b>
    -&nbsp;                new GaugeSerializer(),
    -&nbsp;                new CounterSerializer(),
    -&nbsp;                new HistogramSerializer(showSamples),
    -&nbsp;                new MeterSerializer(rateUnit),
    -&nbsp;                new TimerSerializer(rateUnit, durationUnit, showSamples),
    -&nbsp;                new MetricRegistrySerializer(filter)
    -&nbsp;        )));
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static String calculateRateUnit(TimeUnit unit, String name) {
    -<b class="fc">&nbsp;        final String s = unit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;        return name + &#39;/&#39; + s.substring(0, s.length() - 1);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-3.html
    deleted file mode 100644
    index 18362fde84..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-3.html
    +++ /dev/null
    @@ -1,139 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ClassLoadingGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ClassLoadingGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ClassLoadingGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ClassLoadingMXBean;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for JVM classloader usage.
    -&nbsp; */
    -&nbsp;public class ClassLoadingGaugeSet implements MetricSet {
    -&nbsp;
    -&nbsp;    private final ClassLoadingMXBean mxBean;
    -&nbsp;
    -&nbsp;    public ClassLoadingGaugeSet() {
    -<b class="nc">&nbsp;        this(ManagementFactory.getClassLoadingMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public ClassLoadingGaugeSet(ClassLoadingMXBean mxBean) {</b>
    -<b class="fc">&nbsp;        this.mxBean = mxBean;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;loaded&quot;, (Gauge&lt;Long&gt;) mxBean::getTotalLoadedClassCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;unloaded&quot;, (Gauge&lt;Long&gt;) mxBean::getUnloadedClassCount);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return gauges;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-4.html
    deleted file mode 100644
    index 91591f63d3..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-4.html
    +++ /dev/null
    @@ -1,123 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CpuTimeClock</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CpuTimeClock (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CpuTimeClock</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A clock implementation which returns the current thread&#39;s CPU time.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CpuTimeClock extends Clock {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private static final ThreadMXBean THREAD_MX_BEAN = ManagementFactory.getThreadMXBean();</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public long getTick() {
    -<b class="fc">&nbsp;        return THREAD_MX_BEAN.getCurrentThreadCpuTime();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-5.html
    deleted file mode 100644
    index dadd339bfc..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-5.html
    +++ /dev/null
    @@ -1,154 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > FileDescriptorRatioGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: FileDescriptorRatioGauge (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">FileDescriptorRatioGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.OperatingSystemMXBean;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A gauge for the ratio of used to total file descriptors.
    -&nbsp; */
    -&nbsp;public class FileDescriptorRatioGauge extends RatioGauge {
    -<b class="fc">&nbsp;    private static boolean unixOperatingSystemMXBeanExists = false;</b>
    -&nbsp;
    -&nbsp;    private final OperatingSystemMXBean os;
    -&nbsp;
    -&nbsp;    static {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            Class.forName(&quot;com.sun.management.UnixOperatingSystemMXBean&quot;);</b>
    -<b class="fc">&nbsp;            unixOperatingSystemMXBeanExists = true;</b>
    -<b class="fc">&nbsp;        } catch (ClassNotFoundException e) {</b>
    -&nbsp;            // do nothing
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new gauge using the platform OS bean.
    -&nbsp;     */
    -&nbsp;    public FileDescriptorRatioGauge() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getOperatingSystemMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new gauge using the given OS bean.
    -&nbsp;     *
    -&nbsp;     * @param os an {@link OperatingSystemMXBean}
    -&nbsp;     */
    -<b class="fc">&nbsp;    public FileDescriptorRatioGauge(OperatingSystemMXBean os) {</b>
    -<b class="fc">&nbsp;        this.os = os;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected Ratio getRatio() {
    -<b class="fc">&nbsp;        if (unixOperatingSystemMXBeanExists &amp;&amp; os instanceof com.sun.management.UnixOperatingSystemMXBean) {</b>
    -<b class="fc">&nbsp;            final com.sun.management.UnixOperatingSystemMXBean unixOs = (com.sun.management.UnixOperatingSystemMXBean) os;</b>
    -<b class="fc">&nbsp;            return Ratio.of(unixOs.getOpenFileDescriptorCount(), unixOs.getMaxFileDescriptorCount());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            return Ratio.of(Double.NaN, Double.NaN);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-6.html
    deleted file mode 100644
    index 3debb48638..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-6.html
    +++ /dev/null
    @@ -1,157 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GarbageCollectorMetricSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GarbageCollectorMetricSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GarbageCollectorMetricSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.GarbageCollectorMXBean;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the counts and elapsed times of garbage collections.
    -&nbsp; */
    -&nbsp;public class GarbageCollectorMetricSet implements MetricSet {
    -<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    -&nbsp;
    -&nbsp;    private final List&lt;GarbageCollectorMXBean&gt; garbageCollectors;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges for all discoverable garbage collectors.
    -&nbsp;     */
    -&nbsp;    public GarbageCollectorMetricSet() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getGarbageCollectorMXBeans());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges for the given collection of garbage collectors.
    -&nbsp;     *
    -&nbsp;     * @param garbageCollectors the garbage collectors
    -&nbsp;     */
    -<b class="fc">&nbsp;    public GarbageCollectorMetricSet(Collection&lt;GarbageCollectorMXBean&gt; garbageCollectors) {</b>
    -<b class="fc">&nbsp;        this.garbageCollectors = new ArrayList&lt;&gt;(garbageCollectors);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (final GarbageCollectorMXBean gc : garbageCollectors) {</b>
    -<b class="fc">&nbsp;            final String name = WHITESPACE.matcher(gc.getName()).replaceAll(&quot;-&quot;);</b>
    -<b class="fc">&nbsp;            gauges.put(name(name, &quot;count&quot;), (Gauge&lt;Long&gt;) gc::getCollectionCount);</b>
    -<b class="fc">&nbsp;            gauges.put(name(name, &quot;time&quot;), (Gauge&lt;Long&gt;) gc::getCollectionTime);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-7.html
    deleted file mode 100644
    index 3885fe0d6c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-7.html
    +++ /dev/null
    @@ -1,165 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JmxAttributeGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: JmxAttributeGauge (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">JmxAttributeGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import javax.management.JMException;
    -&nbsp;import javax.management.MBeanServerConnection;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Gauge} implementation which queries an {@link MBeanServerConnection} for an attribute of an object.
    -&nbsp; */
    -&nbsp;public class JmxAttributeGauge implements Gauge&lt;Object&gt; {
    -&nbsp;    private final MBeanServerConnection mBeanServerConn;
    -&nbsp;    private final ObjectName objectName;
    -&nbsp;    private final String attributeName;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new JmxAttributeGauge.
    -&nbsp;     *
    -&nbsp;     * @param objectName    the name of the object
    -&nbsp;     * @param attributeName the name of the object&#39;s attribute
    -&nbsp;     */
    -&nbsp;    public JmxAttributeGauge(ObjectName objectName, String attributeName) {
    -<b class="fc">&nbsp;        this(ManagementFactory.getPlatformMBeanServer(), objectName, attributeName);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new JmxAttributeGauge.
    -&nbsp;     *
    -&nbsp;     * @param mBeanServerConn the {@link MBeanServerConnection}
    -&nbsp;     * @param objectName      the name of the object
    -&nbsp;     * @param attributeName   the name of the object&#39;s attribute
    -&nbsp;     */
    -<b class="fc">&nbsp;    public JmxAttributeGauge(MBeanServerConnection mBeanServerConn, ObjectName objectName, String attributeName) {</b>
    -<b class="fc">&nbsp;        this.mBeanServerConn = mBeanServerConn;</b>
    -<b class="fc">&nbsp;        this.objectName = objectName;</b>
    -<b class="fc">&nbsp;        this.attributeName = attributeName;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Object getValue() {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return mBeanServerConn.getAttribute(getObjectName(), attributeName);</b>
    -<b class="fc">&nbsp;        } catch (IOException | JMException e) {</b>
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private ObjectName getObjectName() throws IOException {
    -<b class="fc">&nbsp;        if (objectName.isPattern()) {</b>
    -<b class="fc">&nbsp;            Set&lt;ObjectName&gt; foundNames = mBeanServerConn.queryNames(objectName, null);</b>
    -<b class="fc">&nbsp;            if (foundNames.size() == 1) {</b>
    -<b class="fc">&nbsp;                return foundNames.iterator().next();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return objectName;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-8.html
    deleted file mode 100644
    index cea0dd6e3a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-8.html
    +++ /dev/null
    @@ -1,155 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JvmAttributeGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: JvmAttributeGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">JvmAttributeGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.RuntimeMXBean;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the JVM name, vendor, and uptime.
    -&nbsp; */
    -&nbsp;public class JvmAttributeGaugeSet implements MetricSet {
    -&nbsp;    private final RuntimeMXBean runtime;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges.
    -&nbsp;     */
    -&nbsp;    public JvmAttributeGaugeSet() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getRuntimeMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges with the given {@link RuntimeMXBean}.
    -&nbsp;     *
    -&nbsp;     * @param runtime JVM management interface with access to system properties
    -&nbsp;     */
    -<b class="fc">&nbsp;    public JvmAttributeGaugeSet(RuntimeMXBean runtime) {</b>
    -<b class="fc">&nbsp;        this.runtime = runtime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;name&quot;, (Gauge&lt;String&gt;) runtime::getName);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;vendor&quot;, (Gauge&lt;String&gt;) () -&gt; String.format(Locale.US,</b>
    -&nbsp;                &quot;%s %s %s (%s)&quot;,
    -<b class="fc">&nbsp;                runtime.getVmVendor(),</b>
    -<b class="fc">&nbsp;                runtime.getVmName(),</b>
    -<b class="fc">&nbsp;                runtime.getVmVersion(),</b>
    -<b class="fc">&nbsp;                runtime.getSpecVersion()));</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;uptime&quot;, (Gauge&lt;Long&gt;) runtime::getUptime);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-9.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-9.html
    deleted file mode 100644
    index e68ef44832..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-9.html
    +++ /dev/null
    @@ -1,274 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MemoryUsageGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MemoryUsageGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MemoryUsageGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (37/37)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MemoryUsageGaugeSet$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MemoryUsageGaugeSet$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MemoryUsageGaugeSet$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.MemoryMXBean;
    -&nbsp;import java.lang.management.MemoryPoolMXBean;
    -&nbsp;import java.lang.management.MemoryUsage;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for JVM memory usage, including stats on heap vs. non-heap memory, plus
    -&nbsp; * GC-specific memory pools.
    -&nbsp; */
    -<b class="fc">&nbsp;public class MemoryUsageGaugeSet implements MetricSet {</b>
    -<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    -&nbsp;
    -&nbsp;    private final MemoryMXBean mxBean;
    -&nbsp;    private final List&lt;MemoryPoolMXBean&gt; memoryPools;
    -&nbsp;
    -&nbsp;    public MemoryUsageGaugeSet() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getMemoryMXBean(), ManagementFactory.getMemoryPoolMXBeans());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MemoryUsageGaugeSet(MemoryMXBean mxBean,
    -<b class="fc">&nbsp;                               Collection&lt;MemoryPoolMXBean&gt; memoryPools) {</b>
    -<b class="fc">&nbsp;        this.mxBean = mxBean;</b>
    -<b class="fc">&nbsp;        this.memoryPools = new ArrayList&lt;&gt;(memoryPools);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;total.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getInit() +</b>
    -<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getInit());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;total.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getUsed() +</b>
    -<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getUsed());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;total.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getMax() == -1 ?</b>
    -<b class="fc">&nbsp;                -1 : mxBean.getHeapMemoryUsage().getMax() + mxBean.getNonHeapMemoryUsage().getMax());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;total.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getCommitted() +</b>
    -<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getCommitted());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getInit());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getUsed());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getMax());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getCommitted());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.usage&quot;, new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="fc">&nbsp;                final MemoryUsage usage = mxBean.getHeapMemoryUsage();</b>
    -<b class="fc">&nbsp;                return Ratio.of(usage.getUsed(), usage.getMax());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getInit());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getUsed());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getMax());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getCommitted());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.usage&quot;, new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="fc">&nbsp;                final MemoryUsage usage = mxBean.getNonHeapMemoryUsage();</b>
    -<b class="fc">&nbsp;                return Ratio.of(usage.getUsed(), usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        for (final MemoryPoolMXBean pool : memoryPools) {</b>
    -<b class="fc">&nbsp;            final String poolName = name(&quot;pools&quot;, WHITESPACE.matcher(pool.getName()).replaceAll(&quot;-&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;usage&quot;), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="fc">&nbsp;                    MemoryUsage usage = pool.getUsage();</b>
    -<b class="fc">&nbsp;                    return Ratio.of(usage.getUsed(),</b>
    -<b class="fc">&nbsp;                            usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;max&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getMax());</b>
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;used&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getUsed());</b>
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;committed&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getCommitted());</b>
    -&nbsp;
    -&nbsp;            // Only register GC usage metrics if the memory pool supports usage statistics.
    -<b class="fc">&nbsp;            if (pool.getCollectionUsage() != null) {</b>
    -<b class="fc">&nbsp;                gauges.put(name(poolName, &quot;used-after-gc&quot;), (Gauge&lt;Long&gt;) () -&gt;</b>
    -<b class="fc">&nbsp;                        pool.getCollectionUsage().getUsed());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;init&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getInit());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-a.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-a.html
    deleted file mode 100644
    index 492d4a4da6..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-a.html
    +++ /dev/null
    @@ -1,169 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDeadlockDetector</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDeadlockDetector (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDeadlockDetector</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashSet;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A utility class for detecting deadlocked threads.
    -&nbsp; */
    -&nbsp;public class ThreadDeadlockDetector {
    -&nbsp;    private static final int MAX_STACK_TRACE_DEPTH = 100;
    -&nbsp;
    -&nbsp;    private final ThreadMXBean threads;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new detector.
    -&nbsp;     */
    -&nbsp;    public ThreadDeadlockDetector() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new detector using the given {@link ThreadMXBean}.
    -&nbsp;     *
    -&nbsp;     * @param threads a {@link ThreadMXBean}
    -&nbsp;     */
    -<b class="fc">&nbsp;    public ThreadDeadlockDetector(ThreadMXBean threads) {</b>
    -<b class="fc">&nbsp;        this.threads = threads;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a set of diagnostic stack traces for any deadlocked threads. If no threads are
    -&nbsp;     * deadlocked, returns an empty set.
    -&nbsp;     *
    -&nbsp;     * @return stack traces for deadlocked threads or an empty set
    -&nbsp;     */
    -&nbsp;    public Set&lt;String&gt; getDeadlockedThreads() {
    -<b class="fc">&nbsp;        final long[] ids = threads.findDeadlockedThreads();</b>
    -<b class="fc">&nbsp;        if (ids != null) {</b>
    -<b class="fc">&nbsp;            final Set&lt;String&gt; deadlocks = new HashSet&lt;&gt;();</b>
    -<b class="fc">&nbsp;            for (ThreadInfo info : threads.getThreadInfo(ids, MAX_STACK_TRACE_DEPTH)) {</b>
    -<b class="fc">&nbsp;                final StringBuilder stackTrace = new StringBuilder();</b>
    -<b class="fc">&nbsp;                for (StackTraceElement element : info.getStackTrace()) {</b>
    -<b class="fc">&nbsp;                    stackTrace.append(&quot;\t at &quot;)</b>
    -<b class="fc">&nbsp;                            .append(element.toString())</b>
    -<b class="fc">&nbsp;                            .append(String.format(&quot;%n&quot;));</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                deadlocks.add(</b>
    -<b class="fc">&nbsp;                        String.format(&quot;%s locked on %s (owned by %s):%n%s&quot;,</b>
    -<b class="fc">&nbsp;                                info.getThreadName(),</b>
    -<b class="fc">&nbsp;                                info.getLockName(),</b>
    -<b class="fc">&nbsp;                                info.getLockOwnerName(),</b>
    -<b class="fc">&nbsp;                                stackTrace.toString()</b>
    -&nbsp;                        )
    -&nbsp;                );
    -&nbsp;            }
    -<b class="fc">&nbsp;            return Collections.unmodifiableSet(deadlocks);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return Collections.emptySet();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-b.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-b.html
    deleted file mode 100644
    index b3520e52bf..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-b.html
    +++ /dev/null
    @@ -1,217 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDump</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDump (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDump</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.lang.management.LockInfo;
    -&nbsp;import java.lang.management.MonitorInfo;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A convenience class for getting a thread dump.
    -&nbsp; */
    -&nbsp;public class ThreadDump {
    -&nbsp;
    -&nbsp;    private final ThreadMXBean threadMXBean;
    -&nbsp;
    -<b class="fc">&nbsp;    public ThreadDump(ThreadMXBean threadMXBean) {</b>
    -<b class="fc">&nbsp;        this.threadMXBean = threadMXBean;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Dumps all of the threads&#39; current information, including synchronization, to an output stream.
    -&nbsp;     *
    -&nbsp;     * @param out an output stream
    -&nbsp;     */
    -&nbsp;    public void dump(OutputStream out) {
    -<b class="fc">&nbsp;        dump(true, true, out);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Dumps all of the threads&#39; current information, optionally including synchronization, to an output stream.
    -&nbsp;     *
    -&nbsp;     * Having control over including synchronization info allows using this method (and its wrappers, i.e.
    -&nbsp;     * ThreadDumpServlet) in environments where getting object monitor and/or ownable synchronizer usage is not
    -&nbsp;     * supported. It can also speed things up.
    -&nbsp;     *
    -&nbsp;     * See {@link ThreadMXBean#dumpAllThreads(boolean, boolean)}
    -&nbsp;     *
    -&nbsp;     * @param lockedMonitors dump all locked monitors if true
    -&nbsp;     * @param lockedSynchronizers dump all locked ownable synchronizers if true
    -&nbsp;     * @param out an output stream
    -&nbsp;     */
    -&nbsp;    public void dump(boolean lockedMonitors, boolean lockedSynchronizers, OutputStream out) {
    -<b class="fc">&nbsp;        final ThreadInfo[] threads = this.threadMXBean.dumpAllThreads(lockedMonitors, lockedSynchronizers);</b>
    -<b class="fc">&nbsp;        final PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, UTF_8));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (int ti = threads.length - 1; ti &gt;= 0; ti--) {</b>
    -<b class="fc">&nbsp;            final ThreadInfo t = threads[ti];</b>
    -<b class="fc">&nbsp;            writer.printf(&quot;\&quot;%s\&quot; id=%d state=%s&quot;,</b>
    -<b class="fc">&nbsp;                    t.getThreadName(),</b>
    -<b class="fc">&nbsp;                    t.getThreadId(),</b>
    -<b class="fc">&nbsp;                    t.getThreadState());</b>
    -<b class="fc">&nbsp;            final LockInfo lock = t.getLockInfo();</b>
    -<b class="fc">&nbsp;            if (lock != null &amp;&amp; t.getThreadState() != Thread.State.BLOCKED) {</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;%n    - waiting on &lt;0x%08x&gt; (a %s)&quot;,</b>
    -<b class="fc">&nbsp;                        lock.getIdentityHashCode(),</b>
    -<b class="fc">&nbsp;                        lock.getClassName());</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;%n    - locked &lt;0x%08x&gt; (a %s)&quot;,</b>
    -<b class="fc">&nbsp;                        lock.getIdentityHashCode(),</b>
    -<b class="fc">&nbsp;                        lock.getClassName());</b>
    -<b class="fc">&nbsp;            } else if (lock != null &amp;&amp; t.getThreadState() == Thread.State.BLOCKED) {</b>
    -<b class="nc">&nbsp;                writer.printf(&quot;%n    - waiting to lock &lt;0x%08x&gt; (a %s)&quot;,</b>
    -<b class="nc">&nbsp;                        lock.getIdentityHashCode(),</b>
    -<b class="nc">&nbsp;                        lock.getClassName());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (t.isSuspended()) {</b>
    -<b class="nc">&nbsp;                writer.print(&quot; (suspended)&quot;);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (t.isInNative()) {</b>
    -<b class="fc">&nbsp;                writer.print(&quot; (running in native)&quot;);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            writer.println();</b>
    -<b class="fc">&nbsp;            if (t.getLockOwnerName() != null) {</b>
    -<b class="nc">&nbsp;                writer.printf(&quot;     owned by %s id=%d%n&quot;, t.getLockOwnerName(), t.getLockOwnerId());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final StackTraceElement[] elements = t.getStackTrace();</b>
    -<b class="fc">&nbsp;            final MonitorInfo[] monitors = t.getLockedMonitors();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (int i = 0; i &lt; elements.length; i++) {</b>
    -<b class="fc">&nbsp;                final StackTraceElement element = elements[i];</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;    at %s%n&quot;, element);</b>
    -<b class="fc">&nbsp;                for (int j = 1; j &lt; monitors.length; j++) {</b>
    -<b class="nc">&nbsp;                    final MonitorInfo monitor = monitors[j];</b>
    -<b class="nc">&nbsp;                    if (monitor.getLockedStackDepth() == i) {</b>
    -<b class="nc">&nbsp;                        writer.printf(&quot;      - locked %s%n&quot;, monitor);</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -<b class="fc">&nbsp;            writer.println();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final LockInfo[] locks = t.getLockedSynchronizers();</b>
    -<b class="fc">&nbsp;            if (locks.length &gt; 0) {</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;    Locked synchronizers: count = %d%n&quot;, locks.length);</b>
    -<b class="fc">&nbsp;                for (LockInfo l : locks) {</b>
    -<b class="fc">&nbsp;                    writer.printf(&quot;      - %s%n&quot;, l);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                writer.println();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        writer.println();</b>
    -<b class="fc">&nbsp;        writer.flush();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-c.html b/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-c.html
    deleted file mode 100644
    index ce6a59b5d5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-18/sources/source-c.html
    +++ /dev/null
    @@ -1,185 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadStatesGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadStatesGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadStatesGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the number of threads in their various states and deadlock detection.
    -&nbsp; */
    -&nbsp;public class ThreadStatesGaugeSet implements MetricSet {
    -&nbsp;
    -&nbsp;    // do not compute stack traces.
    -&nbsp;    private final static int STACK_TRACE_DEPTH = 0;
    -&nbsp;
    -&nbsp;    private final ThreadMXBean threads;
    -&nbsp;    private final ThreadDeadlockDetector deadlockDetector;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the default MXBeans.
    -&nbsp;     */
    -&nbsp;    public ThreadStatesGaugeSet() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the given MXBean and detector.
    -&nbsp;     *
    -&nbsp;     * @param threads          a thread MXBean
    -&nbsp;     * @param deadlockDetector a deadlock detector
    -&nbsp;     */
    -&nbsp;    public ThreadStatesGaugeSet(ThreadMXBean threads,
    -<b class="fc">&nbsp;                                ThreadDeadlockDetector deadlockDetector) {</b>
    -<b class="fc">&nbsp;        this.threads = threads;</b>
    -<b class="fc">&nbsp;        this.deadlockDetector = deadlockDetector;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (final Thread.State state : Thread.State.values()) {</b>
    -<b class="fc">&nbsp;            gauges.put(name(state.toString().toLowerCase(), &quot;count&quot;),</b>
    -<b class="fc">&nbsp;                    (Gauge&lt;Object&gt;) () -&gt; getThreadCount(state));</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;count&quot;, (Gauge&lt;Integer&gt;) threads::getThreadCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;daemon.count&quot;, (Gauge&lt;Integer&gt;) threads::getDaemonThreadCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;peak.count&quot;, (Gauge&lt;Integer&gt;) threads::getPeakThreadCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;total_started.count&quot;, (Gauge&lt;Long&gt;) threads::getTotalStartedThreadCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;deadlock.count&quot;, (Gauge&lt;Integer&gt;) () -&gt; deadlockDetector.getDeadlockedThreads().size());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;deadlocks&quot;, (Gauge&lt;Set&lt;String&gt;&gt;) deadlockDetector::getDeadlockedThreads);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private int getThreadCount(Thread.State state) {
    -<b class="fc">&nbsp;        final ThreadInfo[] allThreads = getThreadInfo();</b>
    -<b class="fc">&nbsp;        int count = 0;</b>
    -<b class="fc">&nbsp;        for (ThreadInfo info : allThreads) {</b>
    -<b class="fc">&nbsp;            if (info != null &amp;&amp; info.getThreadState() == state) {</b>
    -<b class="fc">&nbsp;                count++;</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return count;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    ThreadInfo[] getThreadInfo() {
    -<b class="fc">&nbsp;        return threads.getThreadInfo(threads.getAllThreadIds(), STACK_TRACE_DEPTH);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index.html
    deleted file mode 100644
    index fca32ca3cd..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 71e4fcc062..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 76005202a4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 6c79cefda9..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index c0d84d9f90..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 14de4fe749..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index d97de08d58..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 9e5755ebd4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index a8165ffd52..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 89e41d9d53..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.3%
    -  </span>
    -  <span class="absValue">
    -    (58/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.9%
    -  </span>
    -  <span class="absValue">
    -    (211/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-1.html
    deleted file mode 100644
    index ce9e05e4ed..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-1.html
    +++ /dev/null
    @@ -1,156 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > BufferPoolMetricSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: BufferPoolMetricSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">BufferPoolMetricSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import javax.management.JMException;
    -&nbsp;import javax.management.MBeanServer;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the count, usage, and capacity of the JVM&#39;s direct and mapped buffer pools.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * These JMX objects are only available on Java 7 and above.
    -&nbsp; */
    -&nbsp;public class BufferPoolMetricSet implements MetricSet {
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(BufferPoolMetricSet.class);</b>
    -<b class="fc">&nbsp;    private static final String[] ATTRIBUTES = {&quot;Count&quot;, &quot;MemoryUsed&quot;, &quot;TotalCapacity&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] NAMES = {&quot;count&quot;, &quot;used&quot;, &quot;capacity&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] POOLS = {&quot;direct&quot;, &quot;mapped&quot;};</b>
    -&nbsp;
    -&nbsp;    private final MBeanServer mBeanServer;
    -&nbsp;
    -<b class="fc">&nbsp;    public BufferPoolMetricSet(MBeanServer mBeanServer) {</b>
    -<b class="fc">&nbsp;        this.mBeanServer = mBeanServer;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (String pool : POOLS) {</b>
    -<b class="fc">&nbsp;            for (int i = 0; i &lt; ATTRIBUTES.length; i++) {</b>
    -<b class="fc">&nbsp;                final String attribute = ATTRIBUTES[i];</b>
    -<b class="fc">&nbsp;                final String name = NAMES[i];</b>
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    final ObjectName on = new ObjectName(&quot;java.nio:type=BufferPool,name=&quot; + pool);</b>
    -<b class="fc">&nbsp;                    mBeanServer.getMBeanInfo(on);</b>
    -<b class="fc">&nbsp;                    gauges.put(name(pool, name), new JmxAttributeGauge(mBeanServer, on, attribute));</b>
    -<b class="fc">&nbsp;                } catch (JMException ignored) {</b>
    -<b class="fc">&nbsp;                    LOGGER.debug(&quot;Unable to load buffer pool MBeans, possibly running on Java 6&quot;);</b>
    -<b class="fc">&nbsp;                }</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-2.html
    deleted file mode 100644
    index 45128faffe..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-2.html
    +++ /dev/null
    @@ -1,184 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedThreadStatesGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedThreadStatesGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedThreadStatesGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">CachedThreadStatesGaugeSet$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.CachedGauge;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A variation of ThreadStatesGaugeSet that caches the ThreadInfo[] objects for
    -&nbsp; * a given interval.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CachedThreadStatesGaugeSet extends ThreadStatesGaugeSet {</b>
    -&nbsp;
    -&nbsp;    private final CachedGauge&lt;ThreadInfo[]&gt; threadInfo;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the given MXBean and detector.
    -&nbsp;     * Caches the information for the given interval and time unit.
    -&nbsp;     *
    -&nbsp;     * @param threadMXBean     a thread MXBean
    -&nbsp;     * @param deadlockDetector a deadlock detector
    -&nbsp;     * @param interval         cache interval
    -&nbsp;     * @param unit             cache interval time unit
    -&nbsp;     */
    -&nbsp;    public CachedThreadStatesGaugeSet(final ThreadMXBean threadMXBean, ThreadDeadlockDetector deadlockDetector,
    -&nbsp;                                      long interval, TimeUnit unit) {
    -<b class="fc">&nbsp;        super(threadMXBean, deadlockDetector);</b>
    -<b class="fc">&nbsp;        threadInfo = new CachedGauge&lt;ThreadInfo[]&gt;(interval, unit) {</b>
    -&nbsp;            @Override
    -&nbsp;            protected ThreadInfo[] loadValue() {
    -<b class="fc">&nbsp;                return CachedThreadStatesGaugeSet.super.getThreadInfo();</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the default MXBeans.
    -&nbsp;     * Caches the information for the given interval and time unit.
    -&nbsp;     *
    -&nbsp;     * @param interval cache interval
    -&nbsp;     * @param unit     cache interval time unit
    -&nbsp;     */
    -&nbsp;    public CachedThreadStatesGaugeSet(long interval, TimeUnit unit) {
    -<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector(), interval, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    ThreadInfo[] getThreadInfo() {
    -<b class="fc">&nbsp;        return threadInfo.getValue();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-3.html
    deleted file mode 100644
    index eac0e04d0d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-3.html
    +++ /dev/null
    @@ -1,139 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ClassLoadingGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ClassLoadingGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ClassLoadingGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ClassLoadingMXBean;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for JVM classloader usage.
    -&nbsp; */
    -&nbsp;public class ClassLoadingGaugeSet implements MetricSet {
    -&nbsp;
    -&nbsp;    private final ClassLoadingMXBean mxBean;
    -&nbsp;
    -&nbsp;    public ClassLoadingGaugeSet() {
    -<b class="nc">&nbsp;        this(ManagementFactory.getClassLoadingMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public ClassLoadingGaugeSet(ClassLoadingMXBean mxBean) {</b>
    -<b class="fc">&nbsp;        this.mxBean = mxBean;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;loaded&quot;, (Gauge&lt;Long&gt;) mxBean::getTotalLoadedClassCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;unloaded&quot;, (Gauge&lt;Long&gt;) mxBean::getUnloadedClassCount);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return gauges;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-4.html
    deleted file mode 100644
    index 4c29626130..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-4.html
    +++ /dev/null
    @@ -1,123 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CpuTimeClock</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CpuTimeClock (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CpuTimeClock</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A clock implementation which returns the current thread&#39;s CPU time.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CpuTimeClock extends Clock {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private static final ThreadMXBean THREAD_MX_BEAN = ManagementFactory.getThreadMXBean();</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public long getTick() {
    -<b class="fc">&nbsp;        return THREAD_MX_BEAN.getCurrentThreadCpuTime();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-5.html
    deleted file mode 100644
    index 8ad6486931..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-5.html
    +++ /dev/null
    @@ -1,154 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > FileDescriptorRatioGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: FileDescriptorRatioGauge (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">FileDescriptorRatioGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.OperatingSystemMXBean;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A gauge for the ratio of used to total file descriptors.
    -&nbsp; */
    -&nbsp;public class FileDescriptorRatioGauge extends RatioGauge {
    -<b class="fc">&nbsp;    private static boolean unixOperatingSystemMXBeanExists = false;</b>
    -&nbsp;
    -&nbsp;    private final OperatingSystemMXBean os;
    -&nbsp;
    -&nbsp;    static {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            Class.forName(&quot;com.sun.management.UnixOperatingSystemMXBean&quot;);</b>
    -<b class="fc">&nbsp;            unixOperatingSystemMXBeanExists = true;</b>
    -<b class="fc">&nbsp;        } catch (ClassNotFoundException e) {</b>
    -&nbsp;            // do nothing
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new gauge using the platform OS bean.
    -&nbsp;     */
    -&nbsp;    public FileDescriptorRatioGauge() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getOperatingSystemMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new gauge using the given OS bean.
    -&nbsp;     *
    -&nbsp;     * @param os an {@link OperatingSystemMXBean}
    -&nbsp;     */
    -<b class="fc">&nbsp;    public FileDescriptorRatioGauge(OperatingSystemMXBean os) {</b>
    -<b class="fc">&nbsp;        this.os = os;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected Ratio getRatio() {
    -<b class="fc">&nbsp;        if (unixOperatingSystemMXBeanExists &amp;&amp; os instanceof com.sun.management.UnixOperatingSystemMXBean) {</b>
    -<b class="fc">&nbsp;            final com.sun.management.UnixOperatingSystemMXBean unixOs = (com.sun.management.UnixOperatingSystemMXBean) os;</b>
    -<b class="fc">&nbsp;            return Ratio.of(unixOs.getOpenFileDescriptorCount(), unixOs.getMaxFileDescriptorCount());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            return Ratio.of(Double.NaN, Double.NaN);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-6.html
    deleted file mode 100644
    index b1d391b143..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-6.html
    +++ /dev/null
    @@ -1,157 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GarbageCollectorMetricSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GarbageCollectorMetricSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GarbageCollectorMetricSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.GarbageCollectorMXBean;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the counts and elapsed times of garbage collections.
    -&nbsp; */
    -&nbsp;public class GarbageCollectorMetricSet implements MetricSet {
    -<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    -&nbsp;
    -&nbsp;    private final List&lt;GarbageCollectorMXBean&gt; garbageCollectors;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges for all discoverable garbage collectors.
    -&nbsp;     */
    -&nbsp;    public GarbageCollectorMetricSet() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getGarbageCollectorMXBeans());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges for the given collection of garbage collectors.
    -&nbsp;     *
    -&nbsp;     * @param garbageCollectors the garbage collectors
    -&nbsp;     */
    -<b class="fc">&nbsp;    public GarbageCollectorMetricSet(Collection&lt;GarbageCollectorMXBean&gt; garbageCollectors) {</b>
    -<b class="fc">&nbsp;        this.garbageCollectors = new ArrayList&lt;&gt;(garbageCollectors);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (final GarbageCollectorMXBean gc : garbageCollectors) {</b>
    -<b class="fc">&nbsp;            final String name = WHITESPACE.matcher(gc.getName()).replaceAll(&quot;-&quot;);</b>
    -<b class="fc">&nbsp;            gauges.put(name(name, &quot;count&quot;), (Gauge&lt;Long&gt;) gc::getCollectionCount);</b>
    -<b class="fc">&nbsp;            gauges.put(name(name, &quot;time&quot;), (Gauge&lt;Long&gt;) gc::getCollectionTime);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-7.html
    deleted file mode 100644
    index df0f5fd121..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-7.html
    +++ /dev/null
    @@ -1,165 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JmxAttributeGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: JmxAttributeGauge (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">JmxAttributeGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import javax.management.JMException;
    -&nbsp;import javax.management.MBeanServerConnection;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Gauge} implementation which queries an {@link MBeanServerConnection} for an attribute of an object.
    -&nbsp; */
    -&nbsp;public class JmxAttributeGauge implements Gauge&lt;Object&gt; {
    -&nbsp;    private final MBeanServerConnection mBeanServerConn;
    -&nbsp;    private final ObjectName objectName;
    -&nbsp;    private final String attributeName;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new JmxAttributeGauge.
    -&nbsp;     *
    -&nbsp;     * @param objectName    the name of the object
    -&nbsp;     * @param attributeName the name of the object&#39;s attribute
    -&nbsp;     */
    -&nbsp;    public JmxAttributeGauge(ObjectName objectName, String attributeName) {
    -<b class="fc">&nbsp;        this(ManagementFactory.getPlatformMBeanServer(), objectName, attributeName);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new JmxAttributeGauge.
    -&nbsp;     *
    -&nbsp;     * @param mBeanServerConn the {@link MBeanServerConnection}
    -&nbsp;     * @param objectName      the name of the object
    -&nbsp;     * @param attributeName   the name of the object&#39;s attribute
    -&nbsp;     */
    -<b class="fc">&nbsp;    public JmxAttributeGauge(MBeanServerConnection mBeanServerConn, ObjectName objectName, String attributeName) {</b>
    -<b class="fc">&nbsp;        this.mBeanServerConn = mBeanServerConn;</b>
    -<b class="fc">&nbsp;        this.objectName = objectName;</b>
    -<b class="fc">&nbsp;        this.attributeName = attributeName;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Object getValue() {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return mBeanServerConn.getAttribute(getObjectName(), attributeName);</b>
    -<b class="fc">&nbsp;        } catch (IOException | JMException e) {</b>
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private ObjectName getObjectName() throws IOException {
    -<b class="fc">&nbsp;        if (objectName.isPattern()) {</b>
    -<b class="fc">&nbsp;            Set&lt;ObjectName&gt; foundNames = mBeanServerConn.queryNames(objectName, null);</b>
    -<b class="fc">&nbsp;            if (foundNames.size() == 1) {</b>
    -<b class="fc">&nbsp;                return foundNames.iterator().next();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return objectName;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-8.html
    deleted file mode 100644
    index 520064935e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-8.html
    +++ /dev/null
    @@ -1,155 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JvmAttributeGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: JvmAttributeGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">JvmAttributeGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.RuntimeMXBean;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the JVM name, vendor, and uptime.
    -&nbsp; */
    -&nbsp;public class JvmAttributeGaugeSet implements MetricSet {
    -&nbsp;    private final RuntimeMXBean runtime;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges.
    -&nbsp;     */
    -&nbsp;    public JvmAttributeGaugeSet() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getRuntimeMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges with the given {@link RuntimeMXBean}.
    -&nbsp;     *
    -&nbsp;     * @param runtime JVM management interface with access to system properties
    -&nbsp;     */
    -<b class="fc">&nbsp;    public JvmAttributeGaugeSet(RuntimeMXBean runtime) {</b>
    -<b class="fc">&nbsp;        this.runtime = runtime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;name&quot;, (Gauge&lt;String&gt;) runtime::getName);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;vendor&quot;, (Gauge&lt;String&gt;) () -&gt; String.format(Locale.US,</b>
    -&nbsp;                &quot;%s %s %s (%s)&quot;,
    -<b class="fc">&nbsp;                runtime.getVmVendor(),</b>
    -<b class="fc">&nbsp;                runtime.getVmName(),</b>
    -<b class="fc">&nbsp;                runtime.getVmVersion(),</b>
    -<b class="fc">&nbsp;                runtime.getSpecVersion()));</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;uptime&quot;, (Gauge&lt;Long&gt;) runtime::getUptime);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-9.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-9.html
    deleted file mode 100644
    index 5550e5b8d8..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-9.html
    +++ /dev/null
    @@ -1,274 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MemoryUsageGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MemoryUsageGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MemoryUsageGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (37/37)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MemoryUsageGaugeSet$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MemoryUsageGaugeSet$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MemoryUsageGaugeSet$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.MemoryMXBean;
    -&nbsp;import java.lang.management.MemoryPoolMXBean;
    -&nbsp;import java.lang.management.MemoryUsage;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for JVM memory usage, including stats on heap vs. non-heap memory, plus
    -&nbsp; * GC-specific memory pools.
    -&nbsp; */
    -<b class="fc">&nbsp;public class MemoryUsageGaugeSet implements MetricSet {</b>
    -<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    -&nbsp;
    -&nbsp;    private final MemoryMXBean mxBean;
    -&nbsp;    private final List&lt;MemoryPoolMXBean&gt; memoryPools;
    -&nbsp;
    -&nbsp;    public MemoryUsageGaugeSet() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getMemoryMXBean(), ManagementFactory.getMemoryPoolMXBeans());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MemoryUsageGaugeSet(MemoryMXBean mxBean,
    -<b class="fc">&nbsp;                               Collection&lt;MemoryPoolMXBean&gt; memoryPools) {</b>
    -<b class="fc">&nbsp;        this.mxBean = mxBean;</b>
    -<b class="fc">&nbsp;        this.memoryPools = new ArrayList&lt;&gt;(memoryPools);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;total.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getInit() +</b>
    -<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getInit());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;total.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getUsed() +</b>
    -<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getUsed());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;total.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getMax() == -1 ?</b>
    -<b class="fc">&nbsp;                -1 : mxBean.getHeapMemoryUsage().getMax() + mxBean.getNonHeapMemoryUsage().getMax());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;total.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getCommitted() +</b>
    -<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getCommitted());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getInit());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getUsed());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getMax());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getCommitted());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.usage&quot;, new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="fc">&nbsp;                final MemoryUsage usage = mxBean.getHeapMemoryUsage();</b>
    -<b class="fc">&nbsp;                return Ratio.of(usage.getUsed(), usage.getMax());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getInit());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getUsed());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getMax());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getCommitted());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.usage&quot;, new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="fc">&nbsp;                final MemoryUsage usage = mxBean.getNonHeapMemoryUsage();</b>
    -<b class="fc">&nbsp;                return Ratio.of(usage.getUsed(), usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        for (final MemoryPoolMXBean pool : memoryPools) {</b>
    -<b class="fc">&nbsp;            final String poolName = name(&quot;pools&quot;, WHITESPACE.matcher(pool.getName()).replaceAll(&quot;-&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;usage&quot;), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="fc">&nbsp;                    MemoryUsage usage = pool.getUsage();</b>
    -<b class="fc">&nbsp;                    return Ratio.of(usage.getUsed(),</b>
    -<b class="fc">&nbsp;                            usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;max&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getMax());</b>
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;used&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getUsed());</b>
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;committed&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getCommitted());</b>
    -&nbsp;
    -&nbsp;            // Only register GC usage metrics if the memory pool supports usage statistics.
    -<b class="fc">&nbsp;            if (pool.getCollectionUsage() != null) {</b>
    -<b class="fc">&nbsp;                gauges.put(name(poolName, &quot;used-after-gc&quot;), (Gauge&lt;Long&gt;) () -&gt;</b>
    -<b class="fc">&nbsp;                        pool.getCollectionUsage().getUsed());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;init&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getInit());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-a.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-a.html
    deleted file mode 100644
    index 4a1b6265d2..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-a.html
    +++ /dev/null
    @@ -1,169 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDeadlockDetector</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDeadlockDetector (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDeadlockDetector</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashSet;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A utility class for detecting deadlocked threads.
    -&nbsp; */
    -&nbsp;public class ThreadDeadlockDetector {
    -&nbsp;    private static final int MAX_STACK_TRACE_DEPTH = 100;
    -&nbsp;
    -&nbsp;    private final ThreadMXBean threads;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new detector.
    -&nbsp;     */
    -&nbsp;    public ThreadDeadlockDetector() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new detector using the given {@link ThreadMXBean}.
    -&nbsp;     *
    -&nbsp;     * @param threads a {@link ThreadMXBean}
    -&nbsp;     */
    -<b class="fc">&nbsp;    public ThreadDeadlockDetector(ThreadMXBean threads) {</b>
    -<b class="fc">&nbsp;        this.threads = threads;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a set of diagnostic stack traces for any deadlocked threads. If no threads are
    -&nbsp;     * deadlocked, returns an empty set.
    -&nbsp;     *
    -&nbsp;     * @return stack traces for deadlocked threads or an empty set
    -&nbsp;     */
    -&nbsp;    public Set&lt;String&gt; getDeadlockedThreads() {
    -<b class="fc">&nbsp;        final long[] ids = threads.findDeadlockedThreads();</b>
    -<b class="fc">&nbsp;        if (ids != null) {</b>
    -<b class="fc">&nbsp;            final Set&lt;String&gt; deadlocks = new HashSet&lt;&gt;();</b>
    -<b class="fc">&nbsp;            for (ThreadInfo info : threads.getThreadInfo(ids, MAX_STACK_TRACE_DEPTH)) {</b>
    -<b class="fc">&nbsp;                final StringBuilder stackTrace = new StringBuilder();</b>
    -<b class="fc">&nbsp;                for (StackTraceElement element : info.getStackTrace()) {</b>
    -<b class="fc">&nbsp;                    stackTrace.append(&quot;\t at &quot;)</b>
    -<b class="fc">&nbsp;                            .append(element.toString())</b>
    -<b class="fc">&nbsp;                            .append(String.format(&quot;%n&quot;));</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                deadlocks.add(</b>
    -<b class="fc">&nbsp;                        String.format(&quot;%s locked on %s (owned by %s):%n%s&quot;,</b>
    -<b class="fc">&nbsp;                                info.getThreadName(),</b>
    -<b class="fc">&nbsp;                                info.getLockName(),</b>
    -<b class="fc">&nbsp;                                info.getLockOwnerName(),</b>
    -<b class="fc">&nbsp;                                stackTrace.toString()</b>
    -&nbsp;                        )
    -&nbsp;                );
    -&nbsp;            }
    -<b class="fc">&nbsp;            return Collections.unmodifiableSet(deadlocks);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return Collections.emptySet();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-b.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-b.html
    deleted file mode 100644
    index 38d0071f9d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-b.html
    +++ /dev/null
    @@ -1,217 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDump</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDump (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDump</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.lang.management.LockInfo;
    -&nbsp;import java.lang.management.MonitorInfo;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A convenience class for getting a thread dump.
    -&nbsp; */
    -&nbsp;public class ThreadDump {
    -&nbsp;
    -&nbsp;    private final ThreadMXBean threadMXBean;
    -&nbsp;
    -<b class="fc">&nbsp;    public ThreadDump(ThreadMXBean threadMXBean) {</b>
    -<b class="fc">&nbsp;        this.threadMXBean = threadMXBean;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Dumps all of the threads&#39; current information, including synchronization, to an output stream.
    -&nbsp;     *
    -&nbsp;     * @param out an output stream
    -&nbsp;     */
    -&nbsp;    public void dump(OutputStream out) {
    -<b class="fc">&nbsp;        dump(true, true, out);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Dumps all of the threads&#39; current information, optionally including synchronization, to an output stream.
    -&nbsp;     *
    -&nbsp;     * Having control over including synchronization info allows using this method (and its wrappers, i.e.
    -&nbsp;     * ThreadDumpServlet) in environments where getting object monitor and/or ownable synchronizer usage is not
    -&nbsp;     * supported. It can also speed things up.
    -&nbsp;     *
    -&nbsp;     * See {@link ThreadMXBean#dumpAllThreads(boolean, boolean)}
    -&nbsp;     *
    -&nbsp;     * @param lockedMonitors dump all locked monitors if true
    -&nbsp;     * @param lockedSynchronizers dump all locked ownable synchronizers if true
    -&nbsp;     * @param out an output stream
    -&nbsp;     */
    -&nbsp;    public void dump(boolean lockedMonitors, boolean lockedSynchronizers, OutputStream out) {
    -<b class="fc">&nbsp;        final ThreadInfo[] threads = this.threadMXBean.dumpAllThreads(lockedMonitors, lockedSynchronizers);</b>
    -<b class="fc">&nbsp;        final PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, UTF_8));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (int ti = threads.length - 1; ti &gt;= 0; ti--) {</b>
    -<b class="fc">&nbsp;            final ThreadInfo t = threads[ti];</b>
    -<b class="fc">&nbsp;            writer.printf(&quot;\&quot;%s\&quot; id=%d state=%s&quot;,</b>
    -<b class="fc">&nbsp;                    t.getThreadName(),</b>
    -<b class="fc">&nbsp;                    t.getThreadId(),</b>
    -<b class="fc">&nbsp;                    t.getThreadState());</b>
    -<b class="fc">&nbsp;            final LockInfo lock = t.getLockInfo();</b>
    -<b class="fc">&nbsp;            if (lock != null &amp;&amp; t.getThreadState() != Thread.State.BLOCKED) {</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;%n    - waiting on &lt;0x%08x&gt; (a %s)&quot;,</b>
    -<b class="fc">&nbsp;                        lock.getIdentityHashCode(),</b>
    -<b class="fc">&nbsp;                        lock.getClassName());</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;%n    - locked &lt;0x%08x&gt; (a %s)&quot;,</b>
    -<b class="fc">&nbsp;                        lock.getIdentityHashCode(),</b>
    -<b class="fc">&nbsp;                        lock.getClassName());</b>
    -<b class="fc">&nbsp;            } else if (lock != null &amp;&amp; t.getThreadState() == Thread.State.BLOCKED) {</b>
    -<b class="nc">&nbsp;                writer.printf(&quot;%n    - waiting to lock &lt;0x%08x&gt; (a %s)&quot;,</b>
    -<b class="nc">&nbsp;                        lock.getIdentityHashCode(),</b>
    -<b class="nc">&nbsp;                        lock.getClassName());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (t.isSuspended()) {</b>
    -<b class="nc">&nbsp;                writer.print(&quot; (suspended)&quot;);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (t.isInNative()) {</b>
    -<b class="fc">&nbsp;                writer.print(&quot; (running in native)&quot;);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            writer.println();</b>
    -<b class="fc">&nbsp;            if (t.getLockOwnerName() != null) {</b>
    -<b class="nc">&nbsp;                writer.printf(&quot;     owned by %s id=%d%n&quot;, t.getLockOwnerName(), t.getLockOwnerId());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final StackTraceElement[] elements = t.getStackTrace();</b>
    -<b class="fc">&nbsp;            final MonitorInfo[] monitors = t.getLockedMonitors();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (int i = 0; i &lt; elements.length; i++) {</b>
    -<b class="fc">&nbsp;                final StackTraceElement element = elements[i];</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;    at %s%n&quot;, element);</b>
    -<b class="fc">&nbsp;                for (int j = 1; j &lt; monitors.length; j++) {</b>
    -<b class="nc">&nbsp;                    final MonitorInfo monitor = monitors[j];</b>
    -<b class="nc">&nbsp;                    if (monitor.getLockedStackDepth() == i) {</b>
    -<b class="nc">&nbsp;                        writer.printf(&quot;      - locked %s%n&quot;, monitor);</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -<b class="fc">&nbsp;            writer.println();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final LockInfo[] locks = t.getLockedSynchronizers();</b>
    -<b class="fc">&nbsp;            if (locks.length &gt; 0) {</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;    Locked synchronizers: count = %d%n&quot;, locks.length);</b>
    -<b class="fc">&nbsp;                for (LockInfo l : locks) {</b>
    -<b class="fc">&nbsp;                    writer.printf(&quot;      - %s%n&quot;, l);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                writer.println();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        writer.println();</b>
    -<b class="fc">&nbsp;        writer.flush();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-c.html b/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-c.html
    deleted file mode 100644
    index 34999b37a2..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-19/sources/source-c.html
    +++ /dev/null
    @@ -1,185 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadStatesGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadStatesGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadStatesGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the number of threads in their various states and deadlock detection.
    -&nbsp; */
    -&nbsp;public class ThreadStatesGaugeSet implements MetricSet {
    -&nbsp;
    -&nbsp;    // do not compute stack traces.
    -&nbsp;    private final static int STACK_TRACE_DEPTH = 0;
    -&nbsp;
    -&nbsp;    private final ThreadMXBean threads;
    -&nbsp;    private final ThreadDeadlockDetector deadlockDetector;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the default MXBeans.
    -&nbsp;     */
    -&nbsp;    public ThreadStatesGaugeSet() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the given MXBean and detector.
    -&nbsp;     *
    -&nbsp;     * @param threads          a thread MXBean
    -&nbsp;     * @param deadlockDetector a deadlock detector
    -&nbsp;     */
    -&nbsp;    public ThreadStatesGaugeSet(ThreadMXBean threads,
    -<b class="fc">&nbsp;                                ThreadDeadlockDetector deadlockDetector) {</b>
    -<b class="fc">&nbsp;        this.threads = threads;</b>
    -<b class="fc">&nbsp;        this.deadlockDetector = deadlockDetector;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (final Thread.State state : Thread.State.values()) {</b>
    -<b class="fc">&nbsp;            gauges.put(name(state.toString().toLowerCase(), &quot;count&quot;),</b>
    -<b class="fc">&nbsp;                    (Gauge&lt;Object&gt;) () -&gt; getThreadCount(state));</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;count&quot;, (Gauge&lt;Integer&gt;) threads::getThreadCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;daemon.count&quot;, (Gauge&lt;Integer&gt;) threads::getDaemonThreadCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;peak.count&quot;, (Gauge&lt;Integer&gt;) threads::getPeakThreadCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;total_started.count&quot;, (Gauge&lt;Long&gt;) threads::getTotalStartedThreadCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;deadlock.count&quot;, (Gauge&lt;Integer&gt;) () -&gt; deadlockDetector.getDeadlockedThreads().size());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;deadlocks&quot;, (Gauge&lt;Set&lt;String&gt;&gt;) deadlockDetector::getDeadlockedThreads);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private int getThreadCount(Thread.State state) {
    -<b class="fc">&nbsp;        final ThreadInfo[] allThreads = getThreadInfo();</b>
    -<b class="fc">&nbsp;        int count = 0;</b>
    -<b class="fc">&nbsp;        for (ThreadInfo info : allThreads) {</b>
    -<b class="fc">&nbsp;            if (info != null &amp;&amp; info.getThreadState() == state) {</b>
    -<b class="fc">&nbsp;                count++;</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return count;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    ThreadInfo[] getThreadInfo() {
    -<b class="fc">&nbsp;        return threads.getThreadInfo(threads.getAllThreadIds(), STACK_TRACE_DEPTH);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index.html
    deleted file mode 100644
    index ed959624f5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index ebc93cc781..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index ea86409c64..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index b21409cdcf..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 9a6914b7f2..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE.html
    deleted file mode 100644
    index f298c8a1ac..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index a4c31135d8..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index a991214769..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index c3b3a255cb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index ffe23b8fda..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1a/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1a/sources/source-1.html
    deleted file mode 100644
    index 2d7c0a217f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1a/sources/source-1.html
    +++ /dev/null
    @@ -1,268 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.log4j2</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.log4j2)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (29/30)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedAppender$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.log4j2;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import org.apache.logging.log4j.core.Appender;
    -&nbsp;import org.apache.logging.log4j.core.Filter;
    -&nbsp;import org.apache.logging.log4j.core.Layout;
    -&nbsp;import org.apache.logging.log4j.core.LogEvent;
    -&nbsp;import org.apache.logging.log4j.core.appender.AbstractAppender;
    -&nbsp;import org.apache.logging.log4j.core.config.plugins.Plugin;
    -&nbsp;import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
    -&nbsp;import org.apache.logging.log4j.core.config.plugins.PluginFactory;
    -&nbsp;
    -&nbsp;import java.io.Serializable;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Log4J 2.x {@link Appender} which has seven meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;@Plugin(name = &quot;MetricsAppender&quot;, category = &quot;Core&quot;, elementType = &quot;appender&quot;)
    -&nbsp;public class InstrumentedAppender extends AbstractAppender {
    -&nbsp;
    -&nbsp;    private transient final MetricRegistry registry;
    -&nbsp;
    -&nbsp;    private transient Meter all;
    -&nbsp;    private transient Meter trace;
    -&nbsp;    private transient Meter debug;
    -&nbsp;    private transient Meter info;
    -&nbsp;    private transient Meter warn;
    -&nbsp;    private transient Meter error;
    -&nbsp;    private transient Meter fatal;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName     the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     * @param filter           The Filter to associate with the Appender.
    -&nbsp;     * @param layout           The layout to use to format the event.
    -&nbsp;     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
    -&nbsp;     *                         logged and then passed to the application.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName, Filter filter, Layout&lt;? extends Serializable&gt; layout, boolean ignoreExceptions) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName), filter, layout, ignoreExceptions);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, null, null, true);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry         the metric registry
    -&nbsp;     * @param filter           The Filter to associate with the Appender.
    -&nbsp;     * @param layout           The layout to use to format the event.
    -&nbsp;     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
    -&nbsp;     *                         logged and then passed to the application.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(MetricRegistry registry, Filter filter, Layout&lt;? extends Serializable&gt; layout, boolean ignoreExceptions) {
    -<b class="fc">&nbsp;        super(name(Appender.class), filter, layout, ignoreExceptions);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given appender name and registry.
    -&nbsp;     *
    -&nbsp;     * @param appenderName The name of the appender.
    -&nbsp;     * @param registry     the metric registry
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String appenderName, MetricRegistry registry) {
    -<b class="fc">&nbsp;        super(appenderName, null, null, true);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @PluginFactory
    -&nbsp;    public static InstrumentedAppender createAppender(
    -&nbsp;            @PluginAttribute(&quot;name&quot;) String name,
    -&nbsp;            @PluginAttribute(value = &quot;registryName&quot;, defaultString = &quot;log4j2Metrics&quot;) String registry) {
    -<b class="fc">&nbsp;        return new InstrumentedAppender(name, SharedMetricRegistries.getOrCreate(registry));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        this.fatal = registry.meter(name(getName(), &quot;fatal&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void append(LogEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().getStandardLevel()) {</b>
    -&nbsp;            case TRACE:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case DEBUG:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case INFO:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case WARN:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case ERROR:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case FATAL:
    -<b class="fc">&nbsp;                fatal.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index.html
    deleted file mode 100644
    index 786e3f59b7..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 202993a44b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 50720d7eb9..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index b7756c4b8b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index e84c36dd9e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE.html
    deleted file mode 100644
    index ec8703e59e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 107c4e670a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 3eb30dcdec..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 004d06264c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 3ba27519bb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-1.html
    deleted file mode 100644
    index bdf06cfa25..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-1.html
    +++ /dev/null
    @@ -1,195 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.logback</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.logback)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.logback;
    -&nbsp;
    -&nbsp;import ch.qos.logback.classic.Level;
    -&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    -&nbsp;import ch.qos.logback.core.Appender;
    -&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    -&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    -&nbsp;
    -&nbsp;    private Meter all;
    -&nbsp;    private Meter trace;
    -&nbsp;    private Meter debug;
    -&nbsp;    private Meter info;
    -&nbsp;    private Meter warn;
    -&nbsp;    private Meter error;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender() {
    -<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void append(ILoggingEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    -&nbsp;            case Level.TRACE_INT:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.DEBUG_INT:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.INFO_INT:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.WARN_INT:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.ERROR_INT:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-2.html
    deleted file mode 100644
    index 29242928bb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-2.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilter (com.codahale.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    -&nbsp;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    -&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    -&nbsp; * &lt;pre&gt;{@code
    -&nbsp; * &lt;filter&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;filter-class&gt;com.codahale.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    -&nbsp; * &lt;/filter&gt;
    -&nbsp; * &lt;filter-mapping&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    -&nbsp; * &lt;/filter-mapping&gt;
    -&nbsp; * }&lt;/pre&gt;
    -&nbsp; */
    -&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    -<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    -&nbsp;    private static final int OK = 200;
    -&nbsp;    private static final int CREATED = 201;
    -&nbsp;    private static final int NO_CONTENT = 204;
    -&nbsp;    private static final int BAD_REQUEST = 400;
    -&nbsp;    private static final int NOT_FOUND = 404;
    -&nbsp;    private static final int SERVER_ERROR = 500;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     */
    -&nbsp;    public InstrumentedFilter() {
    -<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    -<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    -<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-3.html
    deleted file mode 100644
    index 61292c5575..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1b/sources/source-3.html
    +++ /dev/null
    @@ -1,131 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilterContextListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilterContextListener (com.codahale.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilterContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletContextEvent;
    -&nbsp;import javax.servlet.ServletContextListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    -&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    -&nbsp; * application.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    -&nbsp;    /**
    -&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;     */
    -&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    -<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index.html
    deleted file mode 100644
    index b822081e81..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 6596bf53c6..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 4c6cd88fc9..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index c3776f4c37..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 3ab7214cc4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 1d0c36632f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index bc2f727b53..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 625df6f68d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 5f5cfd4864..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index f1d12b593d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-1.html
    deleted file mode 100644
    index 36e15c3f00..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-1.html
    +++ /dev/null
    @@ -1,387 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AbstractInstrumentedFilter (com.codahale.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AbstractInstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/45)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.Filter;
    -&nbsp;import javax.servlet.FilterChain;
    -&nbsp;import javax.servlet.FilterConfig;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.ServletRequest;
    -&nbsp;import javax.servlet.ServletResponse;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import javax.servlet.http.HttpServletResponseWrapper;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Map.Entry;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    -&nbsp; * codes being returned.
    -&nbsp; */
    -<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    -&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    -&nbsp;
    -&nbsp;    private final String otherMetricName;
    -&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    -&nbsp;    private final String registryAttribute;
    -&nbsp;
    -&nbsp;    // initialized after call of init method
    -&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    -&nbsp;    private Meter otherMeter;
    -&nbsp;    private Meter timeoutsMeter;
    -&nbsp;    private Meter errorsMeter;
    -&nbsp;    private Counter activeRequests;
    -&nbsp;    private Timer requestTimer;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     *
    -&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    -&nbsp;     *                               servlet context
    -&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    -&nbsp;     *                               interested in.
    -&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    -&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    -<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    -<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    -<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    -<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    -<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    -<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    -<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    -<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    -<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    -<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    -<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    -<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    -<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    -<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    -&nbsp;        final MetricRegistry metricsRegistry;
    -&nbsp;
    -<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    -<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    -<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return metricsRegistry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void doFilter(ServletRequest request,
    -&nbsp;                         ServletResponse response,
    -&nbsp;                         FilterChain chain) throws IOException, ServletException {
    -<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    -&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    -<b class="nc">&nbsp;        activeRequests.inc();</b>
    -<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    -<b class="nc">&nbsp;        boolean error = false;</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    -<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    -<b class="nc">&nbsp;            error = true;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                if (error) {</b>
    -<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void markMeterForStatusCode(int status) {
    -<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    -<b class="nc">&nbsp;        if (metric != null) {</b>
    -<b class="nc">&nbsp;            metric.mark();</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            otherMeter.mark();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    -&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    -<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    -&nbsp;
    -&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    -<b class="nc">&nbsp;            super(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc, String msg) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void setStatus(int sc) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;        public void setStatus(int sc, String sm) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc, sm);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int getStatus() {
    -<b class="nc">&nbsp;            return httpStatus;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class AsyncResultListener implements AsyncListener {
    -&nbsp;        private Timer.Context context;
    -<b class="nc">&nbsp;        private boolean done = false;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    -<b class="nc">&nbsp;            this.context = context;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            if (!done) {</b>
    -<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            errorsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -&nbsp;
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-2.html
    deleted file mode 100644
    index b8e455a604..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-2.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilter (com.codahale.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    -&nbsp;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    -&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    -&nbsp; * &lt;pre&gt;{@code
    -&nbsp; * &lt;filter&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;filter-class&gt;com.codahale.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    -&nbsp; * &lt;/filter&gt;
    -&nbsp; * &lt;filter-mapping&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    -&nbsp; * &lt;/filter-mapping&gt;
    -&nbsp; * }&lt;/pre&gt;
    -&nbsp; */
    -&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    -<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    -&nbsp;    private static final int OK = 200;
    -&nbsp;    private static final int CREATED = 201;
    -&nbsp;    private static final int NO_CONTENT = 204;
    -&nbsp;    private static final int BAD_REQUEST = 400;
    -&nbsp;    private static final int NOT_FOUND = 404;
    -&nbsp;    private static final int SERVER_ERROR = 500;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     */
    -&nbsp;    public InstrumentedFilter() {
    -<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    -<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    -<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-3.html
    deleted file mode 100644
    index 602e426bbb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-3.html
    +++ /dev/null
    @@ -1,131 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilterContextListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilterContextListener (com.codahale.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilterContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletContextEvent;
    -&nbsp;import javax.servlet.ServletContextListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    -&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    -&nbsp; * application.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    -&nbsp;    /**
    -&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;     */
    -&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    -<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-4.html
    deleted file mode 100644
    index f251b4f021..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-4.html
    +++ /dev/null
    @@ -1,329 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (44/44)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetricsServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (14/18)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletConfig;
    -&nbsp;import javax.servlet.ServletContext;
    -&nbsp;import javax.servlet.ServletContextEvent;
    -&nbsp;import javax.servlet.ServletContextListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.json.MetricsModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;import com.fasterxml.jackson.databind.util.JSONPObject;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A servlet which returns the metrics in a given registry as an {@code application/json} response.
    -&nbsp; */
    -&nbsp;public class MetricsServlet extends HttpServlet {
    -&nbsp;    /**
    -&nbsp;     * An abstract {@link ServletContextListener} which allows you to programmatically inject the
    -&nbsp;     * {@link MetricRegistry}, rate and duration units, and allowed origin for
    -&nbsp;     * {@link MetricsServlet}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
    -&nbsp;         * default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getRateUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getDurationUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@code Access-Control-Allow-Origin} header value, if any.
    -&nbsp;         */
    -&nbsp;        protected String getAllowedOrigin() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the name of the parameter used to specify the jsonp callback, if any.
    -&nbsp;         */
    -&nbsp;        protected String getJsonpCallbackParameter() {
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected MetricFilter getMetricFilter() {
    -&nbsp;            // use the default
    -<b class="fc">&nbsp;            return MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="fc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRICS_REGISTRY, getMetricRegistry());</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRIC_FILTER, getMetricFilter());</b>
    -<b class="fc">&nbsp;            if (getDurationUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getRateUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getAllowedOrigin() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getJsonpCallbackParameter() != null) {</b>
    -<b class="nc">&nbsp;                context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.rateUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.durationUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + &quot;.showSamples&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + &quot;.allowedOrigin&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + &quot;.metricFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + &quot;.jsonpCallback&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = 1049773947734939602L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;
    -&nbsp;    protected String allowedOrigin;
    -&nbsp;    protected String jsonpParamName;
    -&nbsp;    protected transient MetricRegistry registry;
    -&nbsp;    protected transient ObjectMapper mapper;
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(METRICS_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof MetricRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (MetricRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a MetricRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);</b>
    -<b class="fc">&nbsp;        this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        setupMetricsModule(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void setupMetricsModule(ServletContext context) {
    -<b class="fc">&nbsp;        final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));</b>
    -<b class="fc">&nbsp;        MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);</b>
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,</b>
    -&nbsp;                durationUnit,
    -&nbsp;                showSamples,
    -&nbsp;                filter));
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        if (allowedOrigin != null) {</b>
    -<b class="fc">&nbsp;            resp.setHeader(&quot;Access-Control-Allow-Origin&quot;, allowedOrigin);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            if (jsonpParamName != null &amp;&amp; req.getParameter(jsonpParamName) != null) {</b>
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, registry);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));</b>
    -<b class="fc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    -<b class="fc">&nbsp;            return defaultValue;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-5.html
    deleted file mode 100644
    index bfe9e1c528..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-5.html
    +++ /dev/null
    @@ -1,134 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PingServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PingServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PingServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} {@code &quot;pong&quot;} response.
    -&nbsp; */
    -<b class="fc">&nbsp;public class PingServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = 3772654177231086757L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;    private static final String CONTENT = &quot;pong&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(CONTENT);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-6.html
    deleted file mode 100644
    index 4767a043cd..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1c/sources/source-6.html
    +++ /dev/null
    @@ -1,159 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDumpServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDumpServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDumpServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.jvm.ThreadDump;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
    -&nbsp; * the VM. Only responds to {@code GET} requests.
    -&nbsp; */
    -<b class="fc">&nbsp;public class ThreadDumpServlet extends HttpServlet {</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -2690343532336103046L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;
    -&nbsp;    private transient ThreadDump threadDump;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init() throws ServletException {
    -&nbsp;        try {
    -&nbsp;            // Some PaaS like Google App Engine blacklist java.lang.managament
    -<b class="fc">&nbsp;            this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());</b>
    -<b class="nc">&nbsp;        } catch (NoClassDefFoundError ncdfe) {</b>
    -<b class="nc">&nbsp;            this.threadDump = null; // we won&#39;t be able to provide thread dump</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final boolean includeMonitors = getParam(req.getParameter(&quot;monitors&quot;), true);</b>
    -<b class="fc">&nbsp;        final boolean includeSynchronizers = getParam(req.getParameter(&quot;synchronizers&quot;), true);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (threadDump == null) {</b>
    -<b class="nc">&nbsp;            resp.getWriter().println(&quot;Sorry your runtime environment does not allow to dump threads.&quot;);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            threadDump.dump(includeMonitors, includeSynchronizers, output);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Boolean getParam(String initParam, boolean defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index.html
    deleted file mode 100644
    index 7d87d2ff87..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 75710630c8..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index a3cfbfdca1..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 6873f014c4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index dbd3faa7dd..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 8954e2bcbc..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index a918062efe..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 0ea50348e0..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index c73b79a7c3..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 114e47f711..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-1.html
    deleted file mode 100644
    index 201b294796..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-1.html
    +++ /dev/null
    @@ -1,293 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AdminServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AdminServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AdminServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletConfig;
    -&nbsp;import javax.servlet.ServletContext;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.text.MessageFormat;
    -&nbsp;
    -<b class="fc">&nbsp;public class AdminServlet extends HttpServlet {</b>
    -&nbsp;    public static final String DEFAULT_HEALTHCHECK_URI = &quot;/healthcheck&quot;;
    -&nbsp;    public static final String DEFAULT_METRICS_URI = &quot;/metrics&quot;;
    -&nbsp;    public static final String DEFAULT_PING_URI = &quot;/ping&quot;;
    -&nbsp;    public static final String DEFAULT_THREADS_URI = &quot;/threads&quot;;
    -&nbsp;    public static final String DEFAULT_CPU_PROFILE_URI = &quot;/pprof&quot;;
    -&nbsp;
    -&nbsp;    public static final String METRICS_ENABLED_PARAM_KEY = &quot;metrics-enabled&quot;;
    -&nbsp;    public static final String METRICS_URI_PARAM_KEY = &quot;metrics-uri&quot;;
    -&nbsp;    public static final String PING_ENABLED_PARAM_KEY = &quot;ping-enabled&quot;;
    -&nbsp;    public static final String PING_URI_PARAM_KEY = &quot;ping-uri&quot;;
    -&nbsp;    public static final String THREADS_ENABLED_PARAM_KEY = &quot;threads-enabled&quot;;
    -&nbsp;    public static final String THREADS_URI_PARAM_KEY = &quot;threads-uri&quot;;
    -&nbsp;    public static final String HEALTHCHECK_ENABLED_PARAM_KEY = &quot;healthcheck-enabled&quot;;
    -&nbsp;    public static final String HEALTHCHECK_URI_PARAM_KEY = &quot;healthcheck-uri&quot;;
    -&nbsp;    public static final String SERVICE_NAME_PARAM_KEY = &quot;service-name&quot;;
    -&nbsp;    public static final String CPU_PROFILE_ENABLED_PARAM_KEY = &quot;cpu-profile-enabled&quot;;
    -&nbsp;    public static final String CPU_PROFILE_URI_PARAM_KEY = &quot;cpu-profile-uri&quot;;
    -&nbsp;
    -&nbsp;    private static final String BASE_TEMPLATE =
    -&nbsp;            &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot;%n&quot; +
    -&nbsp;                    &quot;        \&quot;http://www.w3.org/TR/html4/loose.dtd\&quot;&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;html&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;head&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;title&gt;Metrics{10}&lt;/title&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/head&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;body&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;h1&gt;Operational Menu{10}&lt;/h1&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;ul&gt;%n&quot; +
    -&nbsp;                    &quot;%s&quot; +
    -&nbsp;                    &quot;  &lt;/ul&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/body&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/html&gt;&quot;;
    -&nbsp;    private static final String METRICS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{0}{1}?pretty=true\&quot;&gt;Metrics&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;    private static final String PING_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{2}{3}\&quot;&gt;Ping&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String THREADS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{4}{5}\&quot;&gt;Threads&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String HEALTHCHECK_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{6}{7}?pretty=true\&quot;&gt;Healthcheck&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String CPU_PROFILE_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}\&quot;&gt;CPU Profile&lt;/a&gt;&lt;/li&gt;%n&quot; +
    -&nbsp;            &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}?state=blocked\&quot;&gt;CPU Contention&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;
    -&nbsp;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/html&quot;;
    -&nbsp;    private static final long serialVersionUID = -2850794040708785318L;
    -&nbsp;
    -&nbsp;    private transient HealthCheckServlet healthCheckServlet;
    -&nbsp;    private transient MetricsServlet metricsServlet;
    -&nbsp;    private transient PingServlet pingServlet;
    -&nbsp;    private transient ThreadDumpServlet threadDumpServlet;
    -&nbsp;    private transient CpuProfileServlet cpuProfileServlet;
    -&nbsp;    private transient boolean metricsEnabled;
    -&nbsp;    private transient String metricsUri;
    -&nbsp;    private transient boolean pingEnabled;
    -&nbsp;    private transient String pingUri;
    -&nbsp;    private transient boolean threadsEnabled;
    -&nbsp;    private transient String threadsUri;
    -&nbsp;    private transient boolean healthcheckEnabled;
    -&nbsp;    private transient String healthcheckUri;
    -&nbsp;    private transient boolean cpuProfileEnabled;
    -&nbsp;    private transient String cpuProfileUri;
    -&nbsp;    private transient String serviceName;
    -&nbsp;    private transient String pageContentTemplate;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        final StringBuilder servletLinks = new StringBuilder();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.metricsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.metricsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(METRICS_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.metricsServlet = new MetricsServlet();</b>
    -<b class="fc">&nbsp;        metricsServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.pingEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.pingEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(PING_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.pingServlet = new PingServlet();</b>
    -<b class="fc">&nbsp;        pingServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.threadsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.threadsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(THREADS_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.threadDumpServlet = new ThreadDumpServlet();</b>
    -<b class="fc">&nbsp;        threadDumpServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.healthcheckEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.healthcheckEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(HEALTHCHECK_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.healthCheckServlet = new HealthCheckServlet();</b>
    -<b class="fc">&nbsp;        healthCheckServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.cpuProfileEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.cpuProfileEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(CPU_PROFILE_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.cpuProfileServlet = new CpuProfileServlet();</b>
    -<b class="fc">&nbsp;        cpuProfileServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);</b>
    -<b class="fc">&nbsp;        this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);</b>
    -<b class="fc">&nbsp;        this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);</b>
    -<b class="fc">&nbsp;        this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);</b>
    -<b class="fc">&nbsp;        this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);</b>
    -<b class="fc">&nbsp;        this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String path = req.getContextPath() + req.getServletPath();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,</b>
    -&nbsp;                    threadsUri, path, healthcheckUri, path, cpuProfileUri,
    -<b class="fc">&nbsp;                    serviceName == null ? &quot;&quot; : &quot; (&quot; + serviceName + &quot;)&quot;));</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String uri = req.getPathInfo();</b>
    -<b class="fc">&nbsp;        if (uri == null || uri.equals(&quot;/&quot;)) {</b>
    -<b class="fc">&nbsp;            super.service(req, resp);</b>
    -<b class="nc">&nbsp;        } else if (uri.equals(healthcheckUri)) {</b>
    -<b class="nc">&nbsp;            if (healthcheckEnabled) {</b>
    -<b class="nc">&nbsp;                healthCheckServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.startsWith(metricsUri)) {</b>
    -<b class="nc">&nbsp;            if (metricsEnabled) {</b>
    -<b class="nc">&nbsp;                metricsServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(pingUri)) {</b>
    -<b class="nc">&nbsp;            if (pingEnabled) {</b>
    -<b class="nc">&nbsp;                pingServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(threadsUri)) {</b>
    -<b class="nc">&nbsp;            if (threadsEnabled) {</b>
    -<b class="nc">&nbsp;                threadDumpServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(cpuProfileUri)) {</b>
    -<b class="nc">&nbsp;            if (cpuProfileEnabled) {</b>
    -<b class="nc">&nbsp;                cpuProfileServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static String getParam(String initParam, String defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : initParam;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-2.html
    deleted file mode 100644
    index e59bd1ac6e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-2.html
    +++ /dev/null
    @@ -1,183 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CpuProfileServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CpuProfileServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CpuProfileServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.concurrent.locks.Lock;
    -&nbsp;import java.util.concurrent.locks.ReentrantLock;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import com.papertrail.profiler.CpuProfile;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a &lt;a href=&quot;https://github.com/gperftools/gperftools&quot;&gt;pprof&lt;/a&gt; parseable response.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CpuProfileServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = -668666696530287501L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;pprof/raw&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -<b class="fc">&nbsp;    private final Lock lock = new ReentrantLock();</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -&nbsp;
    -<b class="fc">&nbsp;        int duration = 10;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;duration&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                duration = Integer.parseInt(req.getParameter(&quot;duration&quot;));</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                duration = 10;</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        int frequency = 100;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;frequency&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                frequency = Integer.parseInt(req.getParameter(&quot;frequency&quot;));</b>
    -<b class="nc">&nbsp;                frequency = Math.min(Math.max(frequency, 1), 1000);</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                frequency = 100;</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        final Thread.State state;
    -<b class="fc">&nbsp;        if (&quot;blocked&quot;.equalsIgnoreCase(req.getParameter(&quot;state&quot;))) {</b>
    -<b class="nc">&nbsp;            state = Thread.State.BLOCKED;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            state = Thread.State.RUNNABLE;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            doProfile(output, duration, frequency, state);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
    -<b class="fc">&nbsp;        if (lock.tryLock()) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),</b>
    -&nbsp;                        frequency, state);
    -<b class="fc">&nbsp;                if (profile == null) {</b>
    -<b class="nc">&nbsp;                    throw new RuntimeException(&quot;could not create CpuProfile&quot;);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                profile.writeGoogleProfile(out);</b>
    -&nbsp;                return;
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                lock.unlock();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        throw new RuntimeException(&quot;Only one profile request may be active at a time&quot;);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-3.html
    deleted file mode 100644
    index 83323fc4d1..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-3.html
    +++ /dev/null
    @@ -1,325 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.codahale.metrics.health.HealthCheckFilter;
    -&nbsp;import com.codahale.metrics.health.HealthCheckRegistry;
    -&nbsp;import com.codahale.metrics.json.HealthCheckModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletConfig;
    -&nbsp;import javax.servlet.ServletContext;
    -&nbsp;import javax.servlet.ServletContextEvent;
    -&nbsp;import javax.servlet.ServletContextListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;
    -&nbsp;public class HealthCheckServlet extends HttpServlet {
    -<b class="nc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract HealthCheckRegistry getHealthCheckRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
    -&nbsp;         * if the health checks should be run in the servlet worker thread.
    -&nbsp;         */
    -&nbsp;        protected ExecutorService getExecutorService() {
    -&nbsp;            // don&#39;t use a thread pool by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
    -&nbsp;         * or {@link HealthCheckFilter#ALL} if the default should be used.
    -&nbsp;         */
    -&nbsp;        protected HealthCheckFilter getHealthCheckFilter() {
    -<b class="nc">&nbsp;            return HealthCheckFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ObjectMapper} that shall be used to render health checks,
    -&nbsp;         * or {@code null} if the default object mapper should be used.
    -&nbsp;         */
    -&nbsp;        protected ObjectMapper getObjectMapper() {
    -&nbsp;            // don&#39;t use an object mapper by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="nc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + &quot;.executor&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + &quot;.healthCheckFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + &quot;.mapper&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + &quot;.httpStatusIndicator&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -8432996484889177321L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;    private static final String HTTP_STATUS_INDICATOR_PARAM = &quot;httpStatusIndicator&quot;;
    -&nbsp;
    -&nbsp;    private transient HealthCheckRegistry registry;
    -&nbsp;    private transient ExecutorService executorService;
    -&nbsp;    private transient HealthCheckFilter filter;
    -&nbsp;    private transient ObjectMapper mapper;
    -&nbsp;    private transient boolean httpStatusIndicator;
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet(HealthCheckRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof HealthCheckRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (HealthCheckRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a HealthCheckRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);</b>
    -<b class="fc">&nbsp;        if (executorAttr instanceof ExecutorService) {</b>
    -<b class="fc">&nbsp;            this.executorService = (ExecutorService) executorAttr;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);</b>
    -<b class="fc">&nbsp;        if (filterAttr instanceof HealthCheckFilter) {</b>
    -<b class="fc">&nbsp;            filter = (HealthCheckFilter) filterAttr;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = HealthCheckFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);</b>
    -<b class="fc">&nbsp;        if (mapperAttr instanceof ObjectMapper) {</b>
    -<b class="fc">&nbsp;            this.mapper = (ObjectMapper) mapperAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.mapper = new ObjectMapper();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.mapper.registerModule(new HealthCheckModule());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);</b>
    -<b class="fc">&nbsp;        if (httpStatusIndicatorAttr instanceof Boolean) {</b>
    -<b class="nc">&nbsp;            this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.httpStatusIndicator = true;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -<b class="fc">&nbsp;        super.destroy();</b>
    -<b class="fc">&nbsp;        registry.shutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = runHealthChecks();</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (results.isEmpty()) {</b>
    -<b class="fc">&nbsp;            resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);</b>
    -<b class="fc">&nbsp;            final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);</b>
    -<b class="fc">&nbsp;            final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;</b>
    -<b class="fc">&nbsp;            if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {</b>
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            getWriter(req).writeValue(output, results);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    -<b class="fc">&nbsp;        if (executorService == null) {</b>
    -<b class="nc">&nbsp;            return registry.runHealthChecks(filter);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return registry.runHealthChecks(executorService, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static boolean isAllHealthy(Map&lt;String, HealthCheck.Result&gt; results) {
    -<b class="fc">&nbsp;        for (HealthCheck.Result result : results.values()) {</b>
    -<b class="fc">&nbsp;            if (!result.isHealthy()) {</b>
    -<b class="fc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    // visible for testing
    -&nbsp;    ObjectMapper getMapper() {
    -<b class="fc">&nbsp;        return mapper;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-4.html
    deleted file mode 100644
    index 267d48208b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-4.html
    +++ /dev/null
    @@ -1,329 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (44/44)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetricsServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (14/18)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletConfig;
    -&nbsp;import javax.servlet.ServletContext;
    -&nbsp;import javax.servlet.ServletContextEvent;
    -&nbsp;import javax.servlet.ServletContextListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.json.MetricsModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;import com.fasterxml.jackson.databind.util.JSONPObject;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A servlet which returns the metrics in a given registry as an {@code application/json} response.
    -&nbsp; */
    -&nbsp;public class MetricsServlet extends HttpServlet {
    -&nbsp;    /**
    -&nbsp;     * An abstract {@link ServletContextListener} which allows you to programmatically inject the
    -&nbsp;     * {@link MetricRegistry}, rate and duration units, and allowed origin for
    -&nbsp;     * {@link MetricsServlet}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
    -&nbsp;         * default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getRateUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getDurationUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@code Access-Control-Allow-Origin} header value, if any.
    -&nbsp;         */
    -&nbsp;        protected String getAllowedOrigin() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the name of the parameter used to specify the jsonp callback, if any.
    -&nbsp;         */
    -&nbsp;        protected String getJsonpCallbackParameter() {
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected MetricFilter getMetricFilter() {
    -&nbsp;            // use the default
    -<b class="fc">&nbsp;            return MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="fc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRICS_REGISTRY, getMetricRegistry());</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRIC_FILTER, getMetricFilter());</b>
    -<b class="fc">&nbsp;            if (getDurationUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getRateUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getAllowedOrigin() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getJsonpCallbackParameter() != null) {</b>
    -<b class="nc">&nbsp;                context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.rateUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.durationUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + &quot;.showSamples&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + &quot;.allowedOrigin&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + &quot;.metricFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + &quot;.jsonpCallback&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = 1049773947734939602L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;
    -&nbsp;    protected String allowedOrigin;
    -&nbsp;    protected String jsonpParamName;
    -&nbsp;    protected transient MetricRegistry registry;
    -&nbsp;    protected transient ObjectMapper mapper;
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(METRICS_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof MetricRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (MetricRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a MetricRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);</b>
    -<b class="fc">&nbsp;        this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        setupMetricsModule(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void setupMetricsModule(ServletContext context) {
    -<b class="fc">&nbsp;        final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));</b>
    -<b class="fc">&nbsp;        MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);</b>
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,</b>
    -&nbsp;                durationUnit,
    -&nbsp;                showSamples,
    -&nbsp;                filter));
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        if (allowedOrigin != null) {</b>
    -<b class="fc">&nbsp;            resp.setHeader(&quot;Access-Control-Allow-Origin&quot;, allowedOrigin);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            if (jsonpParamName != null &amp;&amp; req.getParameter(jsonpParamName) != null) {</b>
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, registry);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));</b>
    -<b class="fc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    -<b class="fc">&nbsp;            return defaultValue;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-5.html
    deleted file mode 100644
    index 80e3a0474b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-5.html
    +++ /dev/null
    @@ -1,134 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PingServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PingServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PingServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} {@code &quot;pong&quot;} response.
    -&nbsp; */
    -<b class="fc">&nbsp;public class PingServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = 3772654177231086757L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;    private static final String CONTENT = &quot;pong&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(CONTENT);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-6.html
    deleted file mode 100644
    index 482b2c39a8..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1d/sources/source-6.html
    +++ /dev/null
    @@ -1,159 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDumpServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDumpServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDumpServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.jvm.ThreadDump;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
    -&nbsp; * the VM. Only responds to {@code GET} requests.
    -&nbsp; */
    -<b class="fc">&nbsp;public class ThreadDumpServlet extends HttpServlet {</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -2690343532336103046L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;
    -&nbsp;    private transient ThreadDump threadDump;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init() throws ServletException {
    -&nbsp;        try {
    -&nbsp;            // Some PaaS like Google App Engine blacklist java.lang.managament
    -<b class="fc">&nbsp;            this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());</b>
    -<b class="nc">&nbsp;        } catch (NoClassDefFoundError ncdfe) {</b>
    -<b class="nc">&nbsp;            this.threadDump = null; // we won&#39;t be able to provide thread dump</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final boolean includeMonitors = getParam(req.getParameter(&quot;monitors&quot;), true);</b>
    -<b class="fc">&nbsp;        final boolean includeSynchronizers = getParam(req.getParameter(&quot;synchronizers&quot;), true);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (threadDump == null) {</b>
    -<b class="nc">&nbsp;            resp.getWriter().println(&quot;Sorry your runtime environment does not allow to dump threads.&quot;);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            threadDump.dump(includeMonitors, includeSynchronizers, output);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Boolean getParam(String initParam, boolean defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index.html
    deleted file mode 100644
    index f2e7fe3b6d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index c2b53a2727..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index b82fcb0ae5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 5f6184723c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 48722a0a52..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 2e6b2d0535..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 10286d2c18..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index aca078ab9a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index fd117c2f27..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 4d9b8f9974..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-1.html
    deleted file mode 100644
    index dc5ff59373..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-1.html
    +++ /dev/null
    @@ -1,220 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsStatsCounter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.caffeine3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsStatsCounter (io.dropwizard.metrics.caffeine3)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsStatsCounter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;/*
    -&nbsp; * Copyright 2016 Ben Manes. All Rights Reserved.
    -&nbsp; *
    -&nbsp; * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    -&nbsp; * you may not use this file except in compliance with the License.
    -&nbsp; * You may obtain a copy of the License at
    -&nbsp; *
    -&nbsp; *     http://www.apache.org/licenses/LICENSE-2.0
    -&nbsp; *
    -&nbsp; * Unless required by applicable law or agreed to in writing, software
    -&nbsp; * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    -&nbsp; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -&nbsp; * See the License for the specific language governing permissions and
    -&nbsp; * limitations under the License.
    -&nbsp; */
    -&nbsp;package io.dropwizard.metrics.caffeine3;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;import java.util.EnumMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.github.benmanes.caffeine.cache.RemovalCause;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.CacheStats;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.StatsCounter;
    -&nbsp;import org.checkerframework.checker.index.qual.NonNegative;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link StatsCounter} instrumented with Dropwizard Metrics.
    -&nbsp; *
    -&nbsp; * @author ben.manes@gmail.com (Ben Manes)
    -&nbsp; * @author John Karp
    -&nbsp; */
    -&nbsp;public final class MetricsStatsCounter implements StatsCounter {
    -&nbsp;  private final Counter hitCount;
    -&nbsp;  private final Counter missCount;
    -&nbsp;  private final Timer loadSuccess;
    -&nbsp;  private final Timer loadFailure;
    -&nbsp;  private final Counter evictionWeight;
    -&nbsp;  private final EnumMap&lt;RemovalCause, Histogram&gt; evictionsWithCause;
    -&nbsp;
    -&nbsp;  // for implementing snapshot()
    -<b class="fc">&nbsp;  private final LongAdder totalLoadTime = new LongAdder();</b>
    -&nbsp;
    -&nbsp;  /**
    -&nbsp;   * Constructs an instance for use by a single cache.
    -&nbsp;   *
    -&nbsp;   * @param registry the registry of metric instances
    -&nbsp;   * @param metricsPrefix the prefix name for the metrics
    -&nbsp;   */
    -<b class="fc">&nbsp;  public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {</b>
    -<b class="fc">&nbsp;    requireNonNull(metricsPrefix);</b>
    -<b class="fc">&nbsp;    hitCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;hits&quot;));</b>
    -<b class="fc">&nbsp;    missCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;misses&quot;));</b>
    -<b class="fc">&nbsp;    loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-success&quot;));</b>
    -<b class="fc">&nbsp;    loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-failure&quot;));</b>
    -<b class="fc">&nbsp;    evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, &quot;evictions-weight&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    evictionsWithCause = new EnumMap&lt;&gt;(RemovalCause.class);</b>
    -<b class="fc">&nbsp;    for (RemovalCause cause : RemovalCause.values()) {</b>
    -<b class="fc">&nbsp;      evictionsWithCause.put(</b>
    -&nbsp;          cause,
    -<b class="fc">&nbsp;          registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;, cause.name())));</b>
    -&nbsp;    }
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordHits(int count) {
    -<b class="fc">&nbsp;    hitCount.inc(count);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordMisses(int count) {
    -<b class="fc">&nbsp;    missCount.inc(count);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadSuccess(long loadTime) {
    -<b class="fc">&nbsp;    loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadFailure(long loadTime) {
    -<b class="fc">&nbsp;    loadFailure.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordEviction(@NonNegative int weight, RemovalCause cause) {
    -<b class="fc">&nbsp;    evictionsWithCause.get(cause).update(weight);</b>
    -<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public CacheStats snapshot() {
    -<b class="fc">&nbsp;    return CacheStats.of(</b>
    -<b class="fc">&nbsp;        hitCount.getCount(),</b>
    -<b class="fc">&nbsp;        missCount.getCount(),</b>
    -<b class="fc">&nbsp;        loadSuccess.getCount(),</b>
    -<b class="fc">&nbsp;        loadFailure.getCount(),</b>
    -<b class="fc">&nbsp;        totalLoadTime.sum(),</b>
    -<b class="fc">&nbsp;        evictionsWithCause.values().stream().mapToLong(Histogram::getCount).sum(),</b>
    -<b class="fc">&nbsp;        evictionWeight.getCount());</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public String toString() {
    -<b class="nc">&nbsp;    return snapshot().toString();</b>
    -&nbsp;  }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-2.html
    deleted file mode 100644
    index b4fba1a9d9..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1e/sources/source-2.html
    +++ /dev/null
    @@ -1,201 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsFeature</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jersey31</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsFeature (io.dropwizard.metrics.jersey31)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsFeature</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jersey31;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import jakarta.ws.rs.core.Feature;
    -&nbsp;import jakarta.ws.rs.core.FeatureContext;
    -&nbsp;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp; * for recording request events.
    -&nbsp; */
    -&nbsp;public class MetricsFeature implements Feature {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    -<b class="nc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    -<b class="nc">&nbsp;        this(registry, clock, false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    -<b class="nc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -<b class="nc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="nc">&nbsp;        this.registry = registry;</b>
    -<b class="nc">&nbsp;        this.clock = clock;</b>
    -<b class="nc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="nc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MetricsFeature(String registryName) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A call-back method called when the feature is to be enabled in a given
    -&nbsp;     * runtime configuration scope.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    -&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    -&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    -&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
    -&nbsp;     * would return {@code false}.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     *
    -&nbsp;     * @param context configurable context in which the feature should be enabled.
    -&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    -&nbsp;     * otherwise.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean configure(FeatureContext context) {
    -<b class="nc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    -<b class="nc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index.html
    deleted file mode 100644
    index 3df3930794..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index aaa70a1c94..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 95e8a440c9..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index d07c89d2cb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index aa6930e6b0..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 7d3a9c4d49..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 45e901b69f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index af0f70adfa..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 34aa1f9b28..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index dd6cac57e3..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-1.html
    deleted file mode 100644
    index 75747834ce..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-1.html
    +++ /dev/null
    @@ -1,831 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jersey31</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (io.dropwizard.metrics.jersey31)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.1%
    -  </span>
    -  <span class="absValue">
    -    (82/89)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.2%
    -  </span>
    -  <span class="absValue">
    -    (16/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (28/28)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jersey31;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    -&nbsp;import com.codahale.metrics.annotation.Metered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import jakarta.ws.rs.core.Configuration;
    -&nbsp;import jakarta.ws.rs.ext.Provider;
    -&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    -&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    -&nbsp;import org.glassfish.jersey.server.model.Resource;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Annotation;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An application event listener that listens for Jersey application initialization to
    -&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    -&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    -&nbsp; * request events indicating that the method is about to be invoked, or just got done
    -&nbsp; * being invoked.
    -&nbsp; */
    -&nbsp;@Provider
    -&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    -&nbsp;    private static final String TOTAL = &quot;total&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metrics;
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Construct an application event listener using the given metrics registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    -&nbsp;     *
    -&nbsp;     * @param metrics a {@link MetricRegistry}
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    -<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters) {
    -<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters,
    -<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.metrics = metrics;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metric for a method annotated with the
    -&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    -&nbsp;     * and a cause for which the meter should be updated.
    -&nbsp;     */
    -&nbsp;    private static class ExceptionMeterMetric {
    -&nbsp;        public final Meter meter;
    -&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    -&nbsp;
    -&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    -&nbsp;                                    final ResourceMethod method,
    -<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    -<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    -<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    -<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    -<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metrics for a method annotated with the
    -&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    -&nbsp;     * different response codes
    -&nbsp;     */
    -&nbsp;    private static class ResponseMeterMetric {
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;        private final List&lt;Meter&gt; meters;
    -&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;        private final MetricRegistry metricRegistry;
    -&nbsp;        private final String metricName;
    -&nbsp;        private final ResponseMeteredLevel level;
    -&nbsp;
    -&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    -&nbsp;                                   final ResourceMethod method,
    -<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    -<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    -<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    -<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    -<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="fc">&nbsp;                    )) : Collections.emptyList();</b>
    -<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public void mark(int statusCode) {
    -<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;            return responseCodeMeters</b>
    -<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    -&nbsp;
    -&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    -&nbsp;        private final Clock clock;
    -&nbsp;        private final long start;
    -&nbsp;        private Timer.Context resourceMethodStartContext;
    -&nbsp;        private Timer.Context requestMatchedContext;
    -&nbsp;        private Timer.Context responseFiltersStartContext;
    -&nbsp;
    -<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    -<b class="fc">&nbsp;            this.timers = timers;</b>
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            start = clock.getTick();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            switch (event.getType()) {</b>
    -&nbsp;                case RESOURCE_METHOD_START:
    -<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case REQUEST_MATCHED:
    -<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESP_FILTERS_START:
    -<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESOURCE_METHOD_FINISHED:
    -<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    -<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case REQUEST_FILTERED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    -<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case RESP_FILTERS_FINISHED:
    -<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case FINISHED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;                        if (timer != null) {</b>
    -<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    -&nbsp;                        }
    -<b class="fc">&nbsp;                    }</b>
    -&nbsp;                    break;
    -&nbsp;                default:
    -&nbsp;                    break;
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(RequestEvent event) {
    -<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer.Context context(RequestEvent event) {
    -<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    -&nbsp;
    -<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    -<b class="fc">&nbsp;            this.meters = meters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    -<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    -<b class="fc">&nbsp;                if (meter != null) {</b>
    -<b class="fc">&nbsp;                    meter.mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    -<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    -<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    -<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    -<b class="fc">&nbsp;                        metric.meter.mark();</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    -<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    -<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    -<b class="nc">&nbsp;                        metric.mark(500);</b>
    -<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    -&nbsp;        private final RequestEventListener[] listeners;
    -&nbsp;
    -<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    -<b class="fc">&nbsp;            this.listeners = listeners;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(final RequestEvent event) {
    -<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    -<b class="fc">&nbsp;                listener.onEvent(event);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onEvent(ApplicationEvent event) {
    -<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    -<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        return resourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    -<b class="fc">&nbsp;        return subResourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    -<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    -<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    -<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    -<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    -<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    -<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    -<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    -<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    -<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    -<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    -<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    -<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    -&nbsp;                new TimerRequestEventListener(timers, clock),
    -&nbsp;                new MeterRequestEventListener(meters),
    -&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    -&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    -&nbsp;
    -<b class="fc">&nbsp;        return listener;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    -<b class="fc">&nbsp;        T annotation = null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    -<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (annotation != null) {</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return annotation;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    -<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    -<b class="fc">&nbsp;        if (trackFilters) {</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Timed timed,
    -&nbsp;                              final String... suffixes) {
    -<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    -<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Metered metered) {
    -<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    -<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    -&nbsp;                                       final String... suffixes) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;        final String metricName;
    -<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    -<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    -&nbsp;
    -&nbsp;        private final RequestEvent.Type type;
    -&nbsp;        private final Method method;
    -&nbsp;
    -<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    -<b class="fc">&nbsp;            this.type = type;</b>
    -<b class="fc">&nbsp;            this.method = method;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod finished(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="fc">&nbsp;            if (this == o) {</b>
    -<b class="nc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (type != that.type) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return method.equals(that.method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="fc">&nbsp;            int result = type.hashCode();</b>
    -<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    -<b class="fc">&nbsp;            return result;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-2.html
    deleted file mode 100644
    index 5748ef8195..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-2.html
    +++ /dev/null
    @@ -1,201 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsFeature</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jersey31</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsFeature (io.dropwizard.metrics.jersey31)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsFeature</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jersey31;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import jakarta.ws.rs.core.Feature;
    -&nbsp;import jakarta.ws.rs.core.FeatureContext;
    -&nbsp;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp; * for recording request events.
    -&nbsp; */
    -&nbsp;public class MetricsFeature implements Feature {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    -<b class="fc">&nbsp;        this(registry, clock, false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    -<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MetricsFeature(String registryName) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A call-back method called when the feature is to be enabled in a given
    -&nbsp;     * runtime configuration scope.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    -&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    -&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    -&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
    -&nbsp;     * would return {@code false}.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     *
    -&nbsp;     * @param context configurable context in which the feature should be enabled.
    -&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    -&nbsp;     * otherwise.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean configure(FeatureContext context) {
    -<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-3.html
    deleted file mode 100644
    index 56471c02fd..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-3.html
    +++ /dev/null
    @@ -1,706 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpChannelListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (20/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.6%
    -  </span>
    -  <span class="absValue">
    -    (90/109)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    -&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    -&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    -&nbsp; *
    -&nbsp; * @since TBD
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    -&nbsp;        implements Listener {
    -<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private final Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private final Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private final Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private final Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private final Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private final Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private final Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private final List&lt;Meter&gt; responses;
    -&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final Timer getRequests;
    -&nbsp;    private final Timer postRequests;
    -&nbsp;    private final Timer headRequests;
    -&nbsp;    private final Timer putRequests;
    -&nbsp;    private final Timer deleteRequests;
    -&nbsp;    private final Timer optionsRequests;
    -&nbsp;    private final Timer traceRequests;
    -&nbsp;    private final Timer connectRequests;
    -&nbsp;    private final Timer moveRequests;
    -&nbsp;    private final Timer otherRequests;
    -&nbsp;
    -&nbsp;    private final AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    -<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    -<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onBeforeDispatch(final Request request) {
    -<b class="fc">&nbsp;        before(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onAfterDispatch(final Request request) {
    -<b class="fc">&nbsp;        after(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContentEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestTrailers(final Request request) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseCommit(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onComplete(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void before(final Request request) {
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            activeSuspended.dec();</b>
    -<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void after(final Request request) {
    -<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    -<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.dec();</b>
    -<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    -<b class="fc">&nbsp;            activeSuspended.inc();</b>
    -<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    -&nbsp;        }
    -&nbsp;        // else onCompletion will handle it.
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="fc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-4.html
    deleted file mode 100644
    index 69851c4c51..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-1f/sources/source-4.html
    +++ /dev/null
    @@ -1,345 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.4%
    -  </span>
    -  <span class="absValue">
    -    (27/32)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    -&nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index.html
    deleted file mode 100644
    index 1c47cceeeb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index dc3b6d9755..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 2923085ded..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index dd59dae7f7..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 19d2fce7ad..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 3d01a9ebd6..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 39012c1ff8..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 18a7e07661..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 81ee607aa6..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 75783f8cde..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-1.html
    deleted file mode 100644
    index fde79d9fc6..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-1.html
    +++ /dev/null
    @@ -1,127 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ResponseMeteredLevel</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ResponseMeteredLevel (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ResponseMeteredLevel</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * {@link ResponseMeteredLevel} is a parameter for the {@link ResponseMetered} annotation.
    -&nbsp; * The constants of this enumerated type decide what meters are included when a class
    -&nbsp; * or method is annotated with the {@link ResponseMetered} annotation.
    -&nbsp; */
    -<b class="fc">&nbsp;public enum ResponseMeteredLevel {</b>
    -&nbsp;    /**
    -&nbsp;     * Include meters for 1xx/2xx/3xx/4xx/5xx responses
    -&nbsp;     */
    -<b class="fc">&nbsp;    COARSE,</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Include meters for every response code (200, 201, 303, 304, 401, 404, 501, etc.)
    -&nbsp;     */
    -<b class="fc">&nbsp;    DETAILED,</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Include meters for every response code in addition to top level 1xx/2xx/3xx/4xx/5xx responses
    -&nbsp;     */
    -<b class="fc">&nbsp;    ALL;</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-2.html
    deleted file mode 100644
    index 08cf59ca98..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-2.html
    +++ /dev/null
    @@ -1,107 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Timed</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Timed (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Timed</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as timed.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Timed(name = &quot;fancyName&quot;)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A timer for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} method is invoked, the method&#39;s execution will be timed.
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Timed {
    -&nbsp;    /**
    -&nbsp;     * @return The name of the timer.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-3.html
    deleted file mode 100644
    index e41467a7f6..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-3.html
    +++ /dev/null
    @@ -1,107 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metered</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Metered (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Metered</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as metered.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Metered(name = &quot;fancyName&quot;)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A meter for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} method is invoked, the meter will be marked.
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Metered {
    -&nbsp;    /**
    -&nbsp;     * @return The name of the meter.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-4.html
    deleted file mode 100644
    index 7330ad6c27..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-4.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metric</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Metric (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Metric</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation requesting that a metric be injected or registered.
    -&nbsp; *
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a field like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Metric
    -&nbsp; *     public Histogram histogram;
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A meter of the field&#39;s type will be created and injected into managed objects.
    -&nbsp; * It will be up to the user to interact with the metric. This annotation
    -&nbsp; * can be used on fields of type Meter, Timer, Counter, and Histogram.
    -&nbsp; *
    -&nbsp; * &lt;p&gt;
    -&nbsp; * This may also be used to register a metric, which is useful for creating a histogram with
    -&nbsp; * a custom Reservoir.
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Metric
    -&nbsp; *     public Histogram uniformHistogram = new Histogram(new UniformReservoir());
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; *
    -&nbsp; * @since 3.1
    -&nbsp; */
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Metric {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The name of the metric.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false},
    -&nbsp;     * use the given name relative to the annotated class.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-5.html
    deleted file mode 100644
    index f985995548..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-5.html
    +++ /dev/null
    @@ -1,121 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGauge (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGauge</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method as a gauge, which caches the result for a specified time.
    -&nbsp; *
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}CachedGauge(name = &quot;queueSize&quot;, timeout = 30, timeoutUnit = TimeUnit.SECONDS)
    -&nbsp; *     public int getQueueSize() {
    -&nbsp; *         return queue.getSize();
    -&nbsp; *     }
    -&nbsp; *
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; *
    -&nbsp; * A gauge for the defining class with the name queueSize will be created which uses the annotated method&#39;s
    -&nbsp; * return value as its value, and which caches the result for 30 seconds.
    -&nbsp; *
    -&nbsp; * @since 3.1
    -&nbsp; */
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface CachedGauge {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The name of the counter.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The amount of time to cache the result
    -&nbsp;     */
    -&nbsp;    long timeout();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The unit of timeout
    -&nbsp;     */
    -&nbsp;    TimeUnit timeoutUnit() default TimeUnit.MILLISECONDS;
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-6.html
    deleted file mode 100644
    index 696b05ae69..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-6.html
    +++ /dev/null
    @@ -1,121 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Counted</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Counted (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Counted</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as counted.
    -&nbsp; *
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Counted(name = &quot;fancyName&quot;)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A counter for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} method is invoked, the counter will be marked.
    -&nbsp; *
    -&nbsp; * @since 3.1
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Counted {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The name of the counter.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return 
    -&nbsp;     * If {@code false} (default), the counter is decremented when the annotated
    -&nbsp;     * method returns, counting current invocations of the annotated method.
    -&nbsp;     * If {@code true}, the counter increases monotonically, counting total
    -&nbsp;     * invocations of the annotated method.
    -&nbsp;     */
    -&nbsp;    boolean monotonic() default false;
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-7.html
    deleted file mode 100644
    index 6f2c372690..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-7.html
    +++ /dev/null
    @@ -1,113 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ResponseMetered</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ResponseMetered (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">ResponseMetered</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as metered.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}ResponseMetered(name = &quot;fancyName&quot;, level = ResponseMeteredLevel.ALL)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Meters for the defining class with the name {@code fancyName} will be created for response codes
    -&nbsp; * based on the ResponseMeteredLevel selected. Each time the {@code #fancyName(String)} method is invoked,
    -&nbsp; * the appropriate response meter will be marked.
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface ResponseMetered {
    -&nbsp;    /**
    -&nbsp;     * @return The name of the meter.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return the ResponseMeteredLevel which decides which response code meters are marked.
    -&nbsp;     */
    -&nbsp;    ResponseMeteredLevel level() default ResponseMeteredLevel.COARSE;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-8.html
    deleted file mode 100644
    index d917eeb56d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-8.html
    +++ /dev/null
    @@ -1,133 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ExceptionMetered</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ExceptionMetered (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">ExceptionMetered</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as metered.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}ExceptionMetered(name = &quot;fancyName&quot;, cause=IllegalArgumentException.class)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A meter for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} throws an exception of type {@code cause} (or a subclass), the meter
    -&nbsp; * will be marked.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A name for the metric can be specified as an annotation parameter, otherwise, the metric will be
    -&nbsp; * named based on the method name.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * For instance, given a declaration of
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}ExceptionMetered
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A meter named {@code fancyName.exceptions} will be created and marked every time an exception is
    -&nbsp; * thrown.
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface ExceptionMetered {
    -&nbsp;    /**
    -&nbsp;     * The default suffix for meter names.
    -&nbsp;     */
    -&nbsp;    String DEFAULT_NAME_SUFFIX = &quot;exceptions&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The name of the meter. If not specified, the meter will be given a name based on the method
    -&nbsp;     * it decorates and the suffix &quot;Exceptions&quot;.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The type of exceptions that the meter will catch and count.
    -&nbsp;     */
    -&nbsp;    Class&lt;? extends Throwable&gt; cause() default Exception.class;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-9.html b/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-9.html
    deleted file mode 100644
    index ef5982933b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-2/sources/source-9.html
    +++ /dev/null
    @@ -1,103 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Gauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Gauge (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Gauge</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as a gauge.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Gauge(name = &quot;queueSize&quot;)
    -&nbsp; *     public int getQueueSize() {
    -&nbsp; *         return queue.size;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A gauge for the defining class with the name {@code queueSize} will be created which uses the
    -&nbsp; * annotated method&#39;s return value as its value.
    -&nbsp; */
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Gauge {
    -&nbsp;    /**
    -&nbsp;     * @return The gauge&#39;s name.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index.html
    deleted file mode 100644
    index ac2eec4f25..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index b5ec748bc6..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 23a5bfe39e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 7918019b92..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index b7d48efeba..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE.html
    deleted file mode 100644
    index e89549b9cc..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 6cbb361e0c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index b8928fe523..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 49c1334a2c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index a810604b0a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-1.html
    deleted file mode 100644
    index f1d31309f3..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-1.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    -&nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-2.html
    deleted file mode 100644
    index 95230eecd1..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-2.html
    +++ /dev/null
    @@ -1,746 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (113/131)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    -&nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    -&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    private final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private List&lt;Meter&gt; responses;
    -&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    private Timer getRequests;
    -&nbsp;    private Timer postRequests;
    -&nbsp;    private Timer headRequests;
    -&nbsp;    private Timer putRequests;
    -&nbsp;    private Timer deleteRequests;
    -&nbsp;    private Timer optionsRequests;
    -&nbsp;    private Timer traceRequests;
    -&nbsp;    private Timer connectRequests;
    -&nbsp;    private Timer moveRequests;
    -&nbsp;    private Timer otherRequests;
    -&nbsp;
    -&nbsp;    private AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;            ));
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void handle(String path,
    -&nbsp;                       Request request,
    -&nbsp;                       HttpServletRequest httpRequest,
    -&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == HttpChannelState.State.HANDLING) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-3.html
    deleted file mode 100644
    index 3333221458..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-3.html
    +++ /dev/null
    @@ -1,706 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpChannelListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (20/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.6%
    -  </span>
    -  <span class="absValue">
    -    (90/109)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    -&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    -&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    -&nbsp; *
    -&nbsp; * @since TBD
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    -&nbsp;        implements Listener {
    -<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private final Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private final Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private final Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private final Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private final Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private final Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private final Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private final List&lt;Meter&gt; responses;
    -&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final Timer getRequests;
    -&nbsp;    private final Timer postRequests;
    -&nbsp;    private final Timer headRequests;
    -&nbsp;    private final Timer putRequests;
    -&nbsp;    private final Timer deleteRequests;
    -&nbsp;    private final Timer optionsRequests;
    -&nbsp;    private final Timer traceRequests;
    -&nbsp;    private final Timer connectRequests;
    -&nbsp;    private final Timer moveRequests;
    -&nbsp;    private final Timer otherRequests;
    -&nbsp;
    -&nbsp;    private final AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    -<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    -<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onBeforeDispatch(final Request request) {
    -<b class="fc">&nbsp;        before(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onAfterDispatch(final Request request) {
    -<b class="fc">&nbsp;        after(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContentEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestTrailers(final Request request) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseCommit(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onComplete(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void before(final Request request) {
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            activeSuspended.dec();</b>
    -<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void after(final Request request) {
    -<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    -<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.dec();</b>
    -<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    -<b class="fc">&nbsp;            activeSuspended.inc();</b>
    -<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    -&nbsp;        }
    -&nbsp;        // else onCompletion will handle it.
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="fc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-4.html
    deleted file mode 100644
    index 3407af1f38..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-20/sources/source-4.html
    +++ /dev/null
    @@ -1,345 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.4%
    -  </span>
    -  <span class="absValue">
    -    (27/32)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    -&nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index.html
    deleted file mode 100644
    index f222698791..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 604c6ab3d4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 9a7bea9719..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 1b0dbb875b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index c03035e05f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE.html
    deleted file mode 100644
    index fdf2f34065..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 9700293fea..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index a0db59ebc9..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index bf97b450f9..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 013ca4c7b3..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-1.html
    deleted file mode 100644
    index 12d2be327f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-1.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty11)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    -&nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-2.html
    deleted file mode 100644
    index f0a507589f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-2.html
    +++ /dev/null
    @@ -1,745 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty11)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (113/131)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    -&nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    -&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    private final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private List&lt;Meter&gt; responses;
    -&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    private Timer getRequests;
    -&nbsp;    private Timer postRequests;
    -&nbsp;    private Timer headRequests;
    -&nbsp;    private Timer putRequests;
    -&nbsp;    private Timer deleteRequests;
    -&nbsp;    private Timer optionsRequests;
    -&nbsp;    private Timer traceRequests;
    -&nbsp;    private Timer connectRequests;
    -&nbsp;    private Timer moveRequests;
    -&nbsp;    private Timer otherRequests;
    -&nbsp;
    -&nbsp;    private AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;                    ));
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void handle(String path,
    -&nbsp;                       Request request,
    -&nbsp;                       HttpServletRequest httpRequest,
    -&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == HttpChannelState.State.HANDLING) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-3.html
    deleted file mode 100644
    index e27cfc5ebb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-3.html
    +++ /dev/null
    @@ -1,706 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty11)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpChannelListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (20/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.6%
    -  </span>
    -  <span class="absValue">
    -    (90/109)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    -&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    -&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    -&nbsp; *
    -&nbsp; * @since TBD
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    -&nbsp;        implements Listener {
    -<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private final Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private final Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private final Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private final Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private final Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private final Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private final Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private final List&lt;Meter&gt; responses;
    -&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final Timer getRequests;
    -&nbsp;    private final Timer postRequests;
    -&nbsp;    private final Timer headRequests;
    -&nbsp;    private final Timer putRequests;
    -&nbsp;    private final Timer deleteRequests;
    -&nbsp;    private final Timer optionsRequests;
    -&nbsp;    private final Timer traceRequests;
    -&nbsp;    private final Timer connectRequests;
    -&nbsp;    private final Timer moveRequests;
    -&nbsp;    private final Timer otherRequests;
    -&nbsp;
    -&nbsp;    private final AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    -<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    -<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onBeforeDispatch(final Request request) {
    -<b class="fc">&nbsp;        before(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onAfterDispatch(final Request request) {
    -<b class="fc">&nbsp;        after(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContentEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestTrailers(final Request request) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseCommit(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onComplete(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void before(final Request request) {
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            activeSuspended.dec();</b>
    -<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void after(final Request request) {
    -<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    -<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.dec();</b>
    -<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    -<b class="fc">&nbsp;            activeSuspended.inc();</b>
    -<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    -&nbsp;        }
    -&nbsp;        // else onCompletion will handle it.
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="fc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-4.html
    deleted file mode 100644
    index 57d1fb1729..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-21/sources/source-4.html
    +++ /dev/null
    @@ -1,345 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty11)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.4%
    -  </span>
    -  <span class="absValue">
    -    (27/32)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    -&nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index.html
    deleted file mode 100644
    index aa96a30048..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 4aa3f0440b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 2808f5b255..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index d062a9fd24..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 45f50f5268..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE.html
    deleted file mode 100644
    index ce5523a617..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 915de3ed53..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 9f143c978d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index c6811fa8a9..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index c7f216a8b8..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-1.html
    deleted file mode 100644
    index 234a727526..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-1.html
    +++ /dev/null
    @@ -1,584 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AbstractInstrumentedHandler (io.dropwizard.metrics.jetty12)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AbstractInstrumentedHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (12/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (96/109)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.Response;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An abstract base class of a Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    -&nbsp; */
    -&nbsp;public abstract class AbstractInstrumentedHandler extends Handler.Wrapper {
    -&nbsp;    protected static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    protected static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    protected static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    protected static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    protected static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    protected static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    protected static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    protected static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    protected static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    protected static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    protected static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    protected static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    protected static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    protected static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    protected static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    protected static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    protected static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    protected static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    protected static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    protected static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    protected static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    protected static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    protected static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    protected static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    protected final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    protected final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    protected Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    protected Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    protected Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    protected Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    protected Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    protected Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    protected Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    protected final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    protected List&lt;Meter&gt; responses;
    -&nbsp;    protected Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    protected Timer getRequests;
    -&nbsp;    protected Timer postRequests;
    -&nbsp;    protected Timer headRequests;
    -&nbsp;    protected Timer putRequests;
    -&nbsp;    protected Timer deleteRequests;
    -&nbsp;    protected Timer optionsRequests;
    -&nbsp;    protected Timer traceRequests;
    -&nbsp;    protected Timer connectRequests;
    -&nbsp;    protected Timer moveRequests;
    -&nbsp;    protected Timer otherRequests;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;                    ));
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;             this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void updateResponses(Request request, Response response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="nc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-2.html
    deleted file mode 100644
    index 61d06d9c1c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-2.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty12)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    -&nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-3.html
    deleted file mode 100644
    index 0d85d10ee3..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-22/sources/source-3.html
    +++ /dev/null
    @@ -1,336 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty12)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.1%
    -  </span>
    -  <span class="absValue">
    -    (27/31)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    -&nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index.html
    deleted file mode 100644
    index 3465f51f81..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index b4c1b35214..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 9d18f77842..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index e7d4e20001..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 4e4dee0123..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE.html
    deleted file mode 100644
    index d7670bde21..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 4503fad249..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index d645d65992..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index db1a4d5a4b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 0151376228..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-23/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-23/sources/source-1.html
    deleted file mode 100644
    index ff49dc5549..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-23/sources/source-1.html
    +++ /dev/null
    @@ -1,348 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedEE10Handler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12.ee10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedEE10Handler (io.dropwizard.metrics.jetty12.ee10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedEE10Handler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.9%
    -  </span>
    -  <span class="absValue">
    -    (23/32)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedEE10Handler$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedEE10Handler$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedEE10Handler$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12.ee10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import io.dropwizard.metrics.jetty12.AbstractInstrumentedHandler;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletApiRequest;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletApiResponse;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletChannelState;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletContextRequest;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.Response;
    -&nbsp;import org.eclipse.jetty.util.Callback;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance. This {@link Handler} requires a {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} to be present.
    -&nbsp; * For correct behaviour, the {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} should be before this handler
    -&nbsp; * in the handler chain. To achieve this, one can use
    -&nbsp; * {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler#insertHandler(Singleton)}.
    -&nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedEE10Handler extends AbstractInstrumentedHandler {</b>
    -&nbsp;    private AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        super(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        super(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {
    -<b class="fc">&nbsp;        super(registry, prefix, responseMeteredLevel);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean handle(Request request, Response response, Callback callback) throws Exception {
    -<b class="fc">&nbsp;        ServletContextRequest servletContextRequest = Request.as(request, ServletContextRequest.class);</b>
    -&nbsp;
    -&nbsp;        // only handle servlet requests with the InstrumentedHandler
    -&nbsp;        // because it depends on the ServletRequestState
    -<b class="fc">&nbsp;        if (servletContextRequest == null) {</b>
    -<b class="nc">&nbsp;            return super.handle(request, response, callback);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final ServletChannelState state = servletContextRequest.getServletRequestState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = Request.getTimeStamp(request);</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == ServletChannelState.State.HANDLING) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        boolean handled = false;</b>
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            handled = super.handle(request, response, callback);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(request, response, start, handled);</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return handled;</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final ServletApiRequest request = (ServletApiRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final ServletApiResponse response = (ServletApiResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request.getRequest(), response.getResponse(), startTime, true);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            final ServletContextRequest servletContextRequest = Request.as(request.getRequest(), ServletContextRequest.class);</b>
    -<b class="nc">&nbsp;            final ServletChannelState servletRequestState = servletContextRequest.getServletRequestState();</b>
    -<b class="nc">&nbsp;            if (!servletRequestState.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index.html
    deleted file mode 100644
    index 045e96774e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 1e5ced350f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index e0fae667d8..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index dd3f106fca..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index c47bd4ba86..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE.html
    deleted file mode 100644
    index f556211d2d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 34cee005b9..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 33070e4127..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index d8f443bfa8..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index bdc01abd71..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-24/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-24/sources/source-1.html
    deleted file mode 100644
    index e481e05a60..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-24/sources/source-1.html
    +++ /dev/null
    @@ -1,195 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.logback13</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback13)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback13;
    -&nbsp;
    -&nbsp;import ch.qos.logback.classic.Level;
    -&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    -&nbsp;import ch.qos.logback.core.Appender;
    -&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    -&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    -&nbsp;
    -&nbsp;    private Meter all;
    -&nbsp;    private Meter trace;
    -&nbsp;    private Meter debug;
    -&nbsp;    private Meter info;
    -&nbsp;    private Meter warn;
    -&nbsp;    private Meter error;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender() {
    -<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void append(ILoggingEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    -&nbsp;            case Level.TRACE_INT:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.DEBUG_INT:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.INFO_INT:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.WARN_INT:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.ERROR_INT:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index.html
    deleted file mode 100644
    index 3e0b48e72f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index cdd76762cf..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index d0c01f3146..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 831720ec24..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 6c56aa6416..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 1219d2f21c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 5ce9081bbe..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 7665fa7f11..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 77f2def5f1..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index d4996ca2a0..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-25/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-25/sources/source-1.html
    deleted file mode 100644
    index f25e0686c3..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-25/sources/source-1.html
    +++ /dev/null
    @@ -1,195 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.logback14</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback14)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback14;
    -&nbsp;
    -&nbsp;import ch.qos.logback.classic.Level;
    -&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    -&nbsp;import ch.qos.logback.core.Appender;
    -&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    -&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    -&nbsp;
    -&nbsp;    private Meter all;
    -&nbsp;    private Meter trace;
    -&nbsp;    private Meter debug;
    -&nbsp;    private Meter info;
    -&nbsp;    private Meter warn;
    -&nbsp;    private Meter error;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender() {
    -<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void append(ILoggingEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    -&nbsp;            case Level.TRACE_INT:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.DEBUG_INT:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.INFO_INT:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.WARN_INT:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.ERROR_INT:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index.html
    deleted file mode 100644
    index 762adb418e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 6c04816d63..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 41db4fe21c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index e52f422fc2..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 470a6efcd0..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 67d38362a6..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 925bf5160e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 925a0f665a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 1399ff83ee..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 2c527b1baa..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-1.html
    deleted file mode 100644
    index 9c49105f27..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-1.html
    +++ /dev/null
    @@ -1,195 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.logback15</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback15)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback15;
    -&nbsp;
    -&nbsp;import ch.qos.logback.classic.Level;
    -&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    -&nbsp;import ch.qos.logback.core.Appender;
    -&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    -&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    -&nbsp;
    -&nbsp;    private Meter all;
    -&nbsp;    private Meter trace;
    -&nbsp;    private Meter debug;
    -&nbsp;    private Meter info;
    -&nbsp;    private Meter warn;
    -&nbsp;    private Meter error;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender() {
    -<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void append(ILoggingEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    -&nbsp;            case Level.TRACE_INT:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.DEBUG_INT:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.INFO_INT:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.WARN_INT:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.ERROR_INT:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-2.html
    deleted file mode 100644
    index 1bcae29ed1..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-2.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    -&nbsp;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    -&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    -&nbsp; * &lt;pre&gt;{@code
    -&nbsp; * &lt;filter&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;filter-class&gt;io.dropwizard.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    -&nbsp; * &lt;/filter&gt;
    -&nbsp; * &lt;filter-mapping&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    -&nbsp; * &lt;/filter-mapping&gt;
    -&nbsp; * }&lt;/pre&gt;
    -&nbsp; */
    -&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    -<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    -&nbsp;    private static final int OK = 200;
    -&nbsp;    private static final int CREATED = 201;
    -&nbsp;    private static final int NO_CONTENT = 204;
    -&nbsp;    private static final int BAD_REQUEST = 400;
    -&nbsp;    private static final int NOT_FOUND = 404;
    -&nbsp;    private static final int SERVER_ERROR = 500;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     */
    -&nbsp;    public InstrumentedFilter() {
    -<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    -<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    -<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-3.html
    deleted file mode 100644
    index 8fe874895b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-26/sources/source-3.html
    +++ /dev/null
    @@ -1,130 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilterContextListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilterContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import jakarta.servlet.ServletContextEvent;
    -&nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    -&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    -&nbsp; * application.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    -&nbsp;    /**
    -&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;     */
    -&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    -<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index.html
    deleted file mode 100644
    index 6e0e41df40..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index a5519d365f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 5b6cdfb6e1..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 22b38dbca0..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 29a98ddc61..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 6d6d161b30..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index f0bf90ae20..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 1fdd6d74a3..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index df51766786..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 7e6627c5ac..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-1.html
    deleted file mode 100644
    index d05cb88b6a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-1.html
    +++ /dev/null
    @@ -1,387 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AbstractInstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/45)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.Filter;
    -&nbsp;import jakarta.servlet.FilterChain;
    -&nbsp;import jakarta.servlet.FilterConfig;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.ServletRequest;
    -&nbsp;import jakarta.servlet.ServletResponse;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;import jakarta.servlet.http.HttpServletResponseWrapper;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Map.Entry;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    -&nbsp; * codes being returned.
    -&nbsp; */
    -<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    -&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    -&nbsp;
    -&nbsp;    private final String otherMetricName;
    -&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    -&nbsp;    private final String registryAttribute;
    -&nbsp;
    -&nbsp;    // initialized after call of init method
    -&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    -&nbsp;    private Meter otherMeter;
    -&nbsp;    private Meter timeoutsMeter;
    -&nbsp;    private Meter errorsMeter;
    -&nbsp;    private Counter activeRequests;
    -&nbsp;    private Timer requestTimer;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     *
    -&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    -&nbsp;     *                               servlet context
    -&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    -&nbsp;     *                               interested in.
    -&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    -&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    -<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    -<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    -<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    -<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    -<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    -<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    -<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    -<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    -<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    -<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    -<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    -<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    -<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    -<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    -&nbsp;        final MetricRegistry metricsRegistry;
    -&nbsp;
    -<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    -<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    -<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return metricsRegistry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void doFilter(ServletRequest request,
    -&nbsp;                         ServletResponse response,
    -&nbsp;                         FilterChain chain) throws IOException, ServletException {
    -<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    -&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    -<b class="nc">&nbsp;        activeRequests.inc();</b>
    -<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    -<b class="nc">&nbsp;        boolean error = false;</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    -<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    -<b class="nc">&nbsp;            error = true;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                if (error) {</b>
    -<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void markMeterForStatusCode(int status) {
    -<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    -<b class="nc">&nbsp;        if (metric != null) {</b>
    -<b class="nc">&nbsp;            metric.mark();</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            otherMeter.mark();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    -&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    -<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    -&nbsp;
    -&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    -<b class="nc">&nbsp;            super(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc, String msg) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void setStatus(int sc) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;        public void setStatus(int sc, String sm) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc, sm);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int getStatus() {
    -<b class="nc">&nbsp;            return httpStatus;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class AsyncResultListener implements AsyncListener {
    -&nbsp;        private Timer.Context context;
    -<b class="nc">&nbsp;        private boolean done = false;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    -<b class="nc">&nbsp;            this.context = context;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            if (!done) {</b>
    -<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            errorsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -&nbsp;
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-2.html
    deleted file mode 100644
    index 59e75cffdc..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-2.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    -&nbsp;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    -&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    -&nbsp; * &lt;pre&gt;{@code
    -&nbsp; * &lt;filter&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;filter-class&gt;io.dropwizard.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    -&nbsp; * &lt;/filter&gt;
    -&nbsp; * &lt;filter-mapping&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    -&nbsp; * &lt;/filter-mapping&gt;
    -&nbsp; * }&lt;/pre&gt;
    -&nbsp; */
    -&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    -<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    -&nbsp;    private static final int OK = 200;
    -&nbsp;    private static final int CREATED = 201;
    -&nbsp;    private static final int NO_CONTENT = 204;
    -&nbsp;    private static final int BAD_REQUEST = 400;
    -&nbsp;    private static final int NOT_FOUND = 404;
    -&nbsp;    private static final int SERVER_ERROR = 500;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     */
    -&nbsp;    public InstrumentedFilter() {
    -<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    -<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    -<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-3.html
    deleted file mode 100644
    index 69b4b2da04..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-27/sources/source-3.html
    +++ /dev/null
    @@ -1,130 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilterContextListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilterContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import jakarta.servlet.ServletContextEvent;
    -&nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    -&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    -&nbsp; * application.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    -&nbsp;    /**
    -&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;     */
    -&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    -<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index.html
    deleted file mode 100644
    index c74140fe6e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index e2d19145bd..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index d10c702335..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 88d4406125..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 0f2f35626b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 9b04127716..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 33e17edb3e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index a3a1527b45..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 92b8d8d466..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index a6dedf5acb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-1.html
    deleted file mode 100644
    index e8a6298bac..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-1.html
    +++ /dev/null
    @@ -1,380 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet6)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AbstractInstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/45)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.Filter;
    -&nbsp;import jakarta.servlet.FilterChain;
    -&nbsp;import jakarta.servlet.FilterConfig;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.ServletRequest;
    -&nbsp;import jakarta.servlet.ServletResponse;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;import jakarta.servlet.http.HttpServletResponseWrapper;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Map.Entry;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    -&nbsp; * codes being returned.
    -&nbsp; */
    -<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    -&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    -&nbsp;
    -&nbsp;    private final String otherMetricName;
    -&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    -&nbsp;    private final String registryAttribute;
    -&nbsp;
    -&nbsp;    // initialized after call of init method
    -&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    -&nbsp;    private Meter otherMeter;
    -&nbsp;    private Meter timeoutsMeter;
    -&nbsp;    private Meter errorsMeter;
    -&nbsp;    private Counter activeRequests;
    -&nbsp;    private Timer requestTimer;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     *
    -&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    -&nbsp;     *                               servlet context
    -&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    -&nbsp;     *                               interested in.
    -&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    -&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    -<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    -<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    -<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    -<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    -<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    -<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    -<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    -<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    -<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    -<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    -<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    -<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    -<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    -<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    -&nbsp;        final MetricRegistry metricsRegistry;
    -&nbsp;
    -<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    -<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    -<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return metricsRegistry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void doFilter(ServletRequest request,
    -&nbsp;                         ServletResponse response,
    -&nbsp;                         FilterChain chain) throws IOException, ServletException {
    -<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    -&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    -<b class="nc">&nbsp;        activeRequests.inc();</b>
    -<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    -<b class="nc">&nbsp;        boolean error = false;</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    -<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    -<b class="nc">&nbsp;            error = true;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                if (error) {</b>
    -<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void markMeterForStatusCode(int status) {
    -<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    -<b class="nc">&nbsp;        if (metric != null) {</b>
    -<b class="nc">&nbsp;            metric.mark();</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            otherMeter.mark();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    -&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    -<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    -&nbsp;
    -&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    -<b class="nc">&nbsp;            super(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc, String msg) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void setStatus(int sc) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int getStatus() {
    -<b class="nc">&nbsp;            return httpStatus;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class AsyncResultListener implements AsyncListener {
    -&nbsp;        private final Timer.Context context;
    -<b class="nc">&nbsp;        private boolean done = false;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    -<b class="nc">&nbsp;            this.context = context;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            if (!done) {</b>
    -<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            errorsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -&nbsp;
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-2.html
    deleted file mode 100644
    index adffecb30a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-2.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet6)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    -&nbsp;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    -&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    -&nbsp; * &lt;pre&gt;{@code
    -&nbsp; * &lt;filter&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;filter-class&gt;io.dropwizard.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    -&nbsp; * &lt;/filter&gt;
    -&nbsp; * &lt;filter-mapping&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    -&nbsp; * &lt;/filter-mapping&gt;
    -&nbsp; * }&lt;/pre&gt;
    -&nbsp; */
    -&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    -<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    -&nbsp;    private static final int OK = 200;
    -&nbsp;    private static final int CREATED = 201;
    -&nbsp;    private static final int NO_CONTENT = 204;
    -&nbsp;    private static final int BAD_REQUEST = 400;
    -&nbsp;    private static final int NOT_FOUND = 404;
    -&nbsp;    private static final int SERVER_ERROR = 500;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     */
    -&nbsp;    public InstrumentedFilter() {
    -<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    -<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    -<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-3.html
    deleted file mode 100644
    index 8bc850f0eb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-3.html
    +++ /dev/null
    @@ -1,130 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilterContextListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet6)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilterContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import jakarta.servlet.ServletContextEvent;
    -&nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    -&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    -&nbsp; * application.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    -&nbsp;    /**
    -&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;     */
    -&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    -<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-4.html
    deleted file mode 100644
    index caca084349..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-4.html
    +++ /dev/null
    @@ -1,328 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (44/44)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetricsServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (14/18)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.json.MetricsModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;import com.fasterxml.jackson.databind.util.JSONPObject;
    -&nbsp;import jakarta.servlet.ServletConfig;
    -&nbsp;import jakarta.servlet.ServletContext;
    -&nbsp;import jakarta.servlet.ServletContextEvent;
    -&nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A servlet which returns the metrics in a given registry as an {@code application/json} response.
    -&nbsp; */
    -&nbsp;public class MetricsServlet extends HttpServlet {
    -&nbsp;    /**
    -&nbsp;     * An abstract {@link ServletContextListener} which allows you to programmatically inject the
    -&nbsp;     * {@link MetricRegistry}, rate and duration units, and allowed origin for
    -&nbsp;     * {@link MetricsServlet}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
    -&nbsp;         * default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getRateUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getDurationUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@code Access-Control-Allow-Origin} header value, if any.
    -&nbsp;         */
    -&nbsp;        protected String getAllowedOrigin() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the name of the parameter used to specify the jsonp callback, if any.
    -&nbsp;         */
    -&nbsp;        protected String getJsonpCallbackParameter() {
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected MetricFilter getMetricFilter() {
    -&nbsp;            // use the default
    -<b class="fc">&nbsp;            return MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="fc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRICS_REGISTRY, getMetricRegistry());</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRIC_FILTER, getMetricFilter());</b>
    -<b class="fc">&nbsp;            if (getDurationUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getRateUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getAllowedOrigin() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getJsonpCallbackParameter() != null) {</b>
    -<b class="nc">&nbsp;                context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.rateUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.durationUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + &quot;.showSamples&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + &quot;.allowedOrigin&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + &quot;.metricFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + &quot;.jsonpCallback&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = 1049773947734939602L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;
    -&nbsp;    protected String allowedOrigin;
    -&nbsp;    protected String jsonpParamName;
    -&nbsp;    protected transient MetricRegistry registry;
    -&nbsp;    protected transient ObjectMapper mapper;
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(METRICS_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof MetricRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (MetricRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a MetricRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);</b>
    -<b class="fc">&nbsp;        this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        setupMetricsModule(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void setupMetricsModule(ServletContext context) {
    -<b class="fc">&nbsp;        final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));</b>
    -<b class="fc">&nbsp;        MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);</b>
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,</b>
    -&nbsp;                durationUnit,
    -&nbsp;                showSamples,
    -&nbsp;                filter));
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        if (allowedOrigin != null) {</b>
    -<b class="fc">&nbsp;            resp.setHeader(&quot;Access-Control-Allow-Origin&quot;, allowedOrigin);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            if (jsonpParamName != null &amp;&amp; req.getParameter(jsonpParamName) != null) {</b>
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, registry);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));</b>
    -<b class="fc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    -<b class="fc">&nbsp;            return defaultValue;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-5.html
    deleted file mode 100644
    index 3a907c6c3d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-5.html
    +++ /dev/null
    @@ -1,135 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PingServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PingServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PingServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} {@code &quot;pong&quot;} response.
    -&nbsp; */
    -<b class="fc">&nbsp;public class PingServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = 3772654177231086757L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;    private static final String CONTENT = &quot;pong&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(CONTENT);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-6.html
    deleted file mode 100644
    index ee3f76a370..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-28/sources/source-6.html
    +++ /dev/null
    @@ -1,159 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDumpServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDumpServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDumpServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.jvm.ThreadDump;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
    -&nbsp; * the VM. Only responds to {@code GET} requests.
    -&nbsp; */
    -<b class="fc">&nbsp;public class ThreadDumpServlet extends HttpServlet {</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -2690343532336103046L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;
    -&nbsp;    private transient ThreadDump threadDump;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init() throws ServletException {
    -&nbsp;        try {
    -&nbsp;            // Some PaaS like Google App Engine blacklist java.lang.managament
    -<b class="fc">&nbsp;            this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());</b>
    -<b class="nc">&nbsp;        } catch (NoClassDefFoundError ncdfe) {</b>
    -<b class="nc">&nbsp;            this.threadDump = null; // we won&#39;t be able to provide thread dump</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final boolean includeMonitors = getParam(req.getParameter(&quot;monitors&quot;), true);</b>
    -<b class="fc">&nbsp;        final boolean includeSynchronizers = getParam(req.getParameter(&quot;synchronizers&quot;), true);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (threadDump == null) {</b>
    -<b class="nc">&nbsp;            resp.getWriter().println(&quot;Sorry your runtime environment does not allow to dump threads.&quot;);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            threadDump.dump(includeMonitors, includeSynchronizers, output);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Boolean getParam(String initParam, boolean defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index.html
    deleted file mode 100644
    index 02d7e3b833..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-29/index.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 21f87b4466..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 5fde52d267..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index f3e97e4df8..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index fcc4008411..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 56f511c738..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 3b02f265c5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index d4f3bfd4a5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 66c77350d8..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 3aa4a0cdf1..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-29/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-1.html
    deleted file mode 100644
    index 44baa33b08..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-1.html
    +++ /dev/null
    @@ -1,294 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AdminServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AdminServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AdminServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import jakarta.servlet.ServletConfig;
    -&nbsp;import jakarta.servlet.ServletContext;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.text.MessageFormat;
    -&nbsp;
    -<b class="fc">&nbsp;public class AdminServlet extends HttpServlet {</b>
    -&nbsp;    public static final String DEFAULT_HEALTHCHECK_URI = &quot;/healthcheck&quot;;
    -&nbsp;    public static final String DEFAULT_METRICS_URI = &quot;/metrics&quot;;
    -&nbsp;    public static final String DEFAULT_PING_URI = &quot;/ping&quot;;
    -&nbsp;    public static final String DEFAULT_THREADS_URI = &quot;/threads&quot;;
    -&nbsp;    public static final String DEFAULT_CPU_PROFILE_URI = &quot;/pprof&quot;;
    -&nbsp;
    -&nbsp;    public static final String METRICS_ENABLED_PARAM_KEY = &quot;metrics-enabled&quot;;
    -&nbsp;    public static final String METRICS_URI_PARAM_KEY = &quot;metrics-uri&quot;;
    -&nbsp;    public static final String PING_ENABLED_PARAM_KEY = &quot;ping-enabled&quot;;
    -&nbsp;    public static final String PING_URI_PARAM_KEY = &quot;ping-uri&quot;;
    -&nbsp;    public static final String THREADS_ENABLED_PARAM_KEY = &quot;threads-enabled&quot;;
    -&nbsp;    public static final String THREADS_URI_PARAM_KEY = &quot;threads-uri&quot;;
    -&nbsp;    public static final String HEALTHCHECK_ENABLED_PARAM_KEY = &quot;healthcheck-enabled&quot;;
    -&nbsp;    public static final String HEALTHCHECK_URI_PARAM_KEY = &quot;healthcheck-uri&quot;;
    -&nbsp;    public static final String SERVICE_NAME_PARAM_KEY = &quot;service-name&quot;;
    -&nbsp;    public static final String CPU_PROFILE_ENABLED_PARAM_KEY = &quot;cpu-profile-enabled&quot;;
    -&nbsp;    public static final String CPU_PROFILE_URI_PARAM_KEY = &quot;cpu-profile-uri&quot;;
    -&nbsp;
    -&nbsp;    private static final String BASE_TEMPLATE =
    -&nbsp;            &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot;%n&quot; +
    -&nbsp;                    &quot;        \&quot;http://www.w3.org/TR/html4/loose.dtd\&quot;&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;html&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;head&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;title&gt;Metrics{10}&lt;/title&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/head&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;body&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;h1&gt;Operational Menu{10}&lt;/h1&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;ul&gt;%n&quot; +
    -&nbsp;                    &quot;%s&quot; +
    -&nbsp;                    &quot;  &lt;/ul&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/body&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/html&gt;&quot;;
    -&nbsp;    private static final String METRICS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{0}{1}?pretty=true\&quot;&gt;Metrics&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;    private static final String PING_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{2}{3}\&quot;&gt;Ping&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String THREADS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{4}{5}\&quot;&gt;Threads&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String HEALTHCHECK_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{6}{7}?pretty=true\&quot;&gt;Healthcheck&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String CPU_PROFILE_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}\&quot;&gt;CPU Profile&lt;/a&gt;&lt;/li&gt;%n&quot; +
    -&nbsp;            &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}?state=blocked\&quot;&gt;CPU Contention&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;
    -&nbsp;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/html&quot;;
    -&nbsp;    private static final long serialVersionUID = -2850794040708785318L;
    -&nbsp;
    -&nbsp;    private transient HealthCheckServlet healthCheckServlet;
    -&nbsp;    private transient MetricsServlet metricsServlet;
    -&nbsp;    private transient PingServlet pingServlet;
    -&nbsp;    private transient ThreadDumpServlet threadDumpServlet;
    -&nbsp;    private transient CpuProfileServlet cpuProfileServlet;
    -&nbsp;    private transient boolean metricsEnabled;
    -&nbsp;    private transient String metricsUri;
    -&nbsp;    private transient boolean pingEnabled;
    -&nbsp;    private transient String pingUri;
    -&nbsp;    private transient boolean threadsEnabled;
    -&nbsp;    private transient String threadsUri;
    -&nbsp;    private transient boolean healthcheckEnabled;
    -&nbsp;    private transient String healthcheckUri;
    -&nbsp;    private transient boolean cpuProfileEnabled;
    -&nbsp;    private transient String cpuProfileUri;
    -&nbsp;    private transient String serviceName;
    -&nbsp;    private transient String pageContentTemplate;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        final StringBuilder servletLinks = new StringBuilder();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.metricsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.metricsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(METRICS_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.metricsServlet = new MetricsServlet();</b>
    -<b class="fc">&nbsp;        metricsServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.pingEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.pingEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(PING_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.pingServlet = new PingServlet();</b>
    -<b class="fc">&nbsp;        pingServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.threadsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.threadsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(THREADS_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.threadDumpServlet = new ThreadDumpServlet();</b>
    -<b class="fc">&nbsp;        threadDumpServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.healthcheckEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.healthcheckEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(HEALTHCHECK_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.healthCheckServlet = new HealthCheckServlet();</b>
    -<b class="fc">&nbsp;        healthCheckServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.cpuProfileEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.cpuProfileEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(CPU_PROFILE_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.cpuProfileServlet = new CpuProfileServlet();</b>
    -<b class="fc">&nbsp;        cpuProfileServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);</b>
    -<b class="fc">&nbsp;        this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);</b>
    -<b class="fc">&nbsp;        this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);</b>
    -<b class="fc">&nbsp;        this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);</b>
    -<b class="fc">&nbsp;        this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);</b>
    -<b class="fc">&nbsp;        this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String path = req.getContextPath() + req.getServletPath();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,</b>
    -&nbsp;                    threadsUri, path, healthcheckUri, path, cpuProfileUri,
    -<b class="fc">&nbsp;                    serviceName == null ? &quot;&quot; : &quot; (&quot; + serviceName + &quot;)&quot;));</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String uri = req.getPathInfo();</b>
    -<b class="fc">&nbsp;        if (uri == null || uri.equals(&quot;/&quot;)) {</b>
    -<b class="fc">&nbsp;            super.service(req, resp);</b>
    -<b class="nc">&nbsp;        } else if (uri.equals(healthcheckUri)) {</b>
    -<b class="nc">&nbsp;            if (healthcheckEnabled) {</b>
    -<b class="nc">&nbsp;                healthCheckServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.startsWith(metricsUri)) {</b>
    -<b class="nc">&nbsp;            if (metricsEnabled) {</b>
    -<b class="nc">&nbsp;                metricsServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(pingUri)) {</b>
    -<b class="nc">&nbsp;            if (pingEnabled) {</b>
    -<b class="nc">&nbsp;                pingServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(threadsUri)) {</b>
    -<b class="nc">&nbsp;            if (threadsEnabled) {</b>
    -<b class="nc">&nbsp;                threadDumpServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(cpuProfileUri)) {</b>
    -<b class="nc">&nbsp;            if (cpuProfileEnabled) {</b>
    -<b class="nc">&nbsp;                cpuProfileServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static String getParam(String initParam, String defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : initParam;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-2.html
    deleted file mode 100644
    index 979e23095c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-2.html
    +++ /dev/null
    @@ -1,183 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CpuProfileServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CpuProfileServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CpuProfileServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.papertrail.profiler.CpuProfile;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.concurrent.locks.Lock;
    -&nbsp;import java.util.concurrent.locks.ReentrantLock;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a &lt;a href=&quot;https://github.com/gperftools/gperftools&quot;&gt;pprof&lt;/a&gt; parseable response.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CpuProfileServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = -668666696530287501L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;pprof/raw&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -<b class="fc">&nbsp;    private final Lock lock = new ReentrantLock();</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -&nbsp;
    -<b class="fc">&nbsp;        int duration = 10;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;duration&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                duration = Integer.parseInt(req.getParameter(&quot;duration&quot;));</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                duration = 10;</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        int frequency = 100;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;frequency&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                frequency = Integer.parseInt(req.getParameter(&quot;frequency&quot;));</b>
    -<b class="nc">&nbsp;                frequency = Math.min(Math.max(frequency, 1), 1000);</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                frequency = 100;</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        final Thread.State state;
    -<b class="fc">&nbsp;        if (&quot;blocked&quot;.equalsIgnoreCase(req.getParameter(&quot;state&quot;))) {</b>
    -<b class="nc">&nbsp;            state = Thread.State.BLOCKED;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            state = Thread.State.RUNNABLE;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            doProfile(output, duration, frequency, state);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
    -<b class="fc">&nbsp;        if (lock.tryLock()) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),</b>
    -&nbsp;                        frequency, state);
    -<b class="fc">&nbsp;                if (profile == null) {</b>
    -<b class="nc">&nbsp;                    throw new RuntimeException(&quot;could not create CpuProfile&quot;);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                profile.writeGoogleProfile(out);</b>
    -&nbsp;                return;
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                lock.unlock();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        throw new RuntimeException(&quot;Only one profile request may be active at a time&quot;);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-3.html
    deleted file mode 100644
    index bf8b1e2ad2..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-3.html
    +++ /dev/null
    @@ -1,325 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.1%
    -  </span>
    -  <span class="absValue">
    -    (58/61)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.codahale.metrics.health.HealthCheckFilter;
    -&nbsp;import com.codahale.metrics.health.HealthCheckRegistry;
    -&nbsp;import com.codahale.metrics.json.HealthCheckModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;import jakarta.servlet.ServletConfig;
    -&nbsp;import jakarta.servlet.ServletContext;
    -&nbsp;import jakarta.servlet.ServletContextEvent;
    -&nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;
    -&nbsp;public class HealthCheckServlet extends HttpServlet {
    -<b class="nc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract HealthCheckRegistry getHealthCheckRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
    -&nbsp;         * if the health checks should be run in the servlet worker thread.
    -&nbsp;         */
    -&nbsp;        protected ExecutorService getExecutorService() {
    -&nbsp;            // don&#39;t use a thread pool by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
    -&nbsp;         * or {@link HealthCheckFilter#ALL} if the default should be used.
    -&nbsp;         */
    -&nbsp;        protected HealthCheckFilter getHealthCheckFilter() {
    -<b class="nc">&nbsp;            return HealthCheckFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ObjectMapper} that shall be used to render health checks,
    -&nbsp;         * or {@code null} if the default object mapper should be used.
    -&nbsp;         */
    -&nbsp;        protected ObjectMapper getObjectMapper() {
    -&nbsp;            // don&#39;t use an object mapper by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="nc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + &quot;.executor&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + &quot;.healthCheckFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + &quot;.mapper&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + &quot;.httpStatusIndicator&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -8432996484889177321L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;    private static final String HTTP_STATUS_INDICATOR_PARAM = &quot;httpStatusIndicator&quot;;
    -&nbsp;
    -&nbsp;    private transient HealthCheckRegistry registry;
    -&nbsp;    private transient ExecutorService executorService;
    -&nbsp;    private transient HealthCheckFilter filter;
    -&nbsp;    private transient ObjectMapper mapper;
    -&nbsp;    private transient boolean httpStatusIndicator;
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet(HealthCheckRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof HealthCheckRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (HealthCheckRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a HealthCheckRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);</b>
    -<b class="fc">&nbsp;        if (executorAttr instanceof ExecutorService) {</b>
    -<b class="fc">&nbsp;            this.executorService = (ExecutorService) executorAttr;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);</b>
    -<b class="fc">&nbsp;        if (filterAttr instanceof HealthCheckFilter) {</b>
    -<b class="fc">&nbsp;            filter = (HealthCheckFilter) filterAttr;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = HealthCheckFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);</b>
    -<b class="fc">&nbsp;        if (mapperAttr instanceof ObjectMapper) {</b>
    -<b class="nc">&nbsp;            this.mapper = (ObjectMapper) mapperAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.mapper = new ObjectMapper();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.mapper.registerModule(new HealthCheckModule());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);</b>
    -<b class="fc">&nbsp;        if (httpStatusIndicatorAttr instanceof Boolean) {</b>
    -<b class="nc">&nbsp;            this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.httpStatusIndicator = true;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -<b class="fc">&nbsp;        super.destroy();</b>
    -<b class="fc">&nbsp;        registry.shutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = runHealthChecks();</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (results.isEmpty()) {</b>
    -<b class="fc">&nbsp;            resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);</b>
    -<b class="fc">&nbsp;            final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);</b>
    -<b class="fc">&nbsp;            final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;</b>
    -<b class="fc">&nbsp;            if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {</b>
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            getWriter(req).writeValue(output, results);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    -<b class="fc">&nbsp;        if (executorService == null) {</b>
    -<b class="nc">&nbsp;            return registry.runHealthChecks(filter);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return registry.runHealthChecks(executorService, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static boolean isAllHealthy(Map&lt;String, HealthCheck.Result&gt; results) {
    -<b class="fc">&nbsp;        for (HealthCheck.Result result : results.values()) {</b>
    -<b class="fc">&nbsp;            if (!result.isHealthy()) {</b>
    -<b class="fc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    // visible for testing
    -&nbsp;    ObjectMapper getMapper() {
    -<b class="fc">&nbsp;        return mapper;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-4.html
    deleted file mode 100644
    index ef2ecf4e33..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-4.html
    +++ /dev/null
    @@ -1,328 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (44/44)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetricsServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (14/18)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.json.MetricsModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;import com.fasterxml.jackson.databind.util.JSONPObject;
    -&nbsp;import jakarta.servlet.ServletConfig;
    -&nbsp;import jakarta.servlet.ServletContext;
    -&nbsp;import jakarta.servlet.ServletContextEvent;
    -&nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A servlet which returns the metrics in a given registry as an {@code application/json} response.
    -&nbsp; */
    -&nbsp;public class MetricsServlet extends HttpServlet {
    -&nbsp;    /**
    -&nbsp;     * An abstract {@link ServletContextListener} which allows you to programmatically inject the
    -&nbsp;     * {@link MetricRegistry}, rate and duration units, and allowed origin for
    -&nbsp;     * {@link MetricsServlet}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
    -&nbsp;         * default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getRateUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getDurationUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@code Access-Control-Allow-Origin} header value, if any.
    -&nbsp;         */
    -&nbsp;        protected String getAllowedOrigin() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the name of the parameter used to specify the jsonp callback, if any.
    -&nbsp;         */
    -&nbsp;        protected String getJsonpCallbackParameter() {
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected MetricFilter getMetricFilter() {
    -&nbsp;            // use the default
    -<b class="fc">&nbsp;            return MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="fc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRICS_REGISTRY, getMetricRegistry());</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRIC_FILTER, getMetricFilter());</b>
    -<b class="fc">&nbsp;            if (getDurationUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getRateUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getAllowedOrigin() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getJsonpCallbackParameter() != null) {</b>
    -<b class="nc">&nbsp;                context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.rateUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.durationUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + &quot;.showSamples&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + &quot;.allowedOrigin&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + &quot;.metricFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + &quot;.jsonpCallback&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = 1049773947734939602L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;
    -&nbsp;    protected String allowedOrigin;
    -&nbsp;    protected String jsonpParamName;
    -&nbsp;    protected transient MetricRegistry registry;
    -&nbsp;    protected transient ObjectMapper mapper;
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(METRICS_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof MetricRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (MetricRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a MetricRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);</b>
    -<b class="fc">&nbsp;        this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        setupMetricsModule(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void setupMetricsModule(ServletContext context) {
    -<b class="fc">&nbsp;        final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));</b>
    -<b class="fc">&nbsp;        MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);</b>
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,</b>
    -&nbsp;                durationUnit,
    -&nbsp;                showSamples,
    -&nbsp;                filter));
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        if (allowedOrigin != null) {</b>
    -<b class="fc">&nbsp;            resp.setHeader(&quot;Access-Control-Allow-Origin&quot;, allowedOrigin);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            if (jsonpParamName != null &amp;&amp; req.getParameter(jsonpParamName) != null) {</b>
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, registry);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));</b>
    -<b class="fc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    -<b class="fc">&nbsp;            return defaultValue;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-5.html
    deleted file mode 100644
    index 2186849a22..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-5.html
    +++ /dev/null
    @@ -1,135 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PingServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PingServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PingServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} {@code &quot;pong&quot;} response.
    -&nbsp; */
    -<b class="fc">&nbsp;public class PingServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = 3772654177231086757L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;    private static final String CONTENT = &quot;pong&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(CONTENT);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-6.html
    deleted file mode 100644
    index ddb9058955..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-29/sources/source-6.html
    +++ /dev/null
    @@ -1,159 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDumpServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDumpServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDumpServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.jvm.ThreadDump;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
    -&nbsp; * the VM. Only responds to {@code GET} requests.
    -&nbsp; */
    -<b class="fc">&nbsp;public class ThreadDumpServlet extends HttpServlet {</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -2690343532336103046L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;
    -&nbsp;    private transient ThreadDump threadDump;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init() throws ServletException {
    -&nbsp;        try {
    -&nbsp;            // Some PaaS like Google App Engine blacklist java.lang.managament
    -<b class="fc">&nbsp;            this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());</b>
    -<b class="nc">&nbsp;        } catch (NoClassDefFoundError ncdfe) {</b>
    -<b class="nc">&nbsp;            this.threadDump = null; // we won&#39;t be able to provide thread dump</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final boolean includeMonitors = getParam(req.getParameter(&quot;monitors&quot;), true);</b>
    -<b class="fc">&nbsp;        final boolean includeSynchronizers = getParam(req.getParameter(&quot;synchronizers&quot;), true);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (threadDump == null) {</b>
    -<b class="nc">&nbsp;            resp.getWriter().println(&quot;Sorry your runtime environment does not allow to dump threads.&quot;);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            threadDump.dump(includeMonitors, includeSynchronizers, output);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Boolean getParam(String initParam, boolean defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index.html
    deleted file mode 100644
    index adcd4b86fb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index c6b1ae14ef..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 84d8f36e68..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index ab11830911..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index afd439f49f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 4ed6ad7d19..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 5fbb19f2ec..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 2087ccc25a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 8e7854d468..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 6a413f99eb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-1.html
    deleted file mode 100644
    index d0a45e01d7..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-1.html
    +++ /dev/null
    @@ -1,176 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGaugeBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGaugeBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGaugeBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">CachedGaugeBenchmark$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.CachedGauge;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class CachedGaugeBenchmark {</b>
    -&nbsp;
    -<b class="nc">&nbsp;    private CachedGauge&lt;Integer&gt; cachedGauge = new CachedGauge&lt;Integer&gt;(100, TimeUnit.MILLISECONDS) {</b>
    -&nbsp;        @Override
    -&nbsp;        protected Integer loadValue() {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                Thread.sleep(10);</b>
    -<b class="nc">&nbsp;            } catch (InterruptedException e) {</b>
    -<b class="nc">&nbsp;                throw new RuntimeException(&quot;Thread was interrupted&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            return 12345;</b>
    -&nbsp;        }
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public void perfGetValue(Blackhole blackhole) {
    -<b class="nc">&nbsp;        blackhole.consume(cachedGauge.getValue());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;                .include(&quot;.*&quot; + CachedGaugeBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;                .warmupIterations(3)</b>
    -<b class="nc">&nbsp;                .measurementIterations(5)</b>
    -<b class="nc">&nbsp;                .threads(4)</b>
    -<b class="nc">&nbsp;                .forks(1)</b>
    -<b class="nc">&nbsp;                .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-2.html
    deleted file mode 100644
    index 61166e05ff..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-2.html
    +++ /dev/null
    @@ -1,142 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CounterBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CounterBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CounterBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class CounterBenchmark {</b>
    -&nbsp;
    -<b class="nc">&nbsp;    private final Counter counter = new Counter();</b>
    -&nbsp;
    -&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    -<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfIncrement() {
    -<b class="nc">&nbsp;        counter.inc(nextValue); </b>
    -<b class="nc">&nbsp;        return counter;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;                .include(&quot;.*&quot; + CounterBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;                .warmupIterations(3)</b>
    -<b class="nc">&nbsp;                .measurementIterations(5)</b>
    -<b class="nc">&nbsp;                .threads(4)</b>
    -<b class="nc">&nbsp;                .forks(1)</b>
    -<b class="nc">&nbsp;                .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-3.html
    deleted file mode 100644
    index 078576f6e1..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-3.html
    +++ /dev/null
    @@ -1,142 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MeterBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MeterBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MeterBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class MeterBenchmark {</b>
    -&nbsp;
    -<b class="nc">&nbsp;    private final Meter meter = new Meter();</b>
    -&nbsp;
    -&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    -<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfMark() {
    -<b class="nc">&nbsp;        meter.mark(nextValue);</b>
    -<b class="nc">&nbsp;        return meter;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;                .include(&quot;.*&quot; + MeterBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;                .warmupIterations(3)</b>
    -<b class="nc">&nbsp;                .measurementIterations(5)</b>
    -<b class="nc">&nbsp;                .threads(4)</b>
    -<b class="nc">&nbsp;                .forks(1)</b>
    -<b class="nc">&nbsp;                .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-4.html
    deleted file mode 100644
    index ad833672ea..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-4.html
    +++ /dev/null
    @@ -1,192 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.LockFreeExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.SlidingTimeWindowArrayReservoir;
    -&nbsp;import com.codahale.metrics.SlidingTimeWindowReservoir;
    -&nbsp;import com.codahale.metrics.SlidingWindowReservoir;
    -&nbsp;import com.codahale.metrics.UniformReservoir;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.profile.GCProfiler;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;import org.openjdk.jmh.runner.options.TimeValue;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class ReservoirBenchmark {</b>
    -&nbsp;
    -<b class="nc">&nbsp;    private final UniformReservoir uniform = new UniformReservoir();</b>
    -<b class="nc">&nbsp;    private final ExponentiallyDecayingReservoir exponential = new ExponentiallyDecayingReservoir();</b>
    -<b class="nc">&nbsp;    private final Reservoir lockFreeExponential = LockFreeExponentiallyDecayingReservoir.builder().build();</b>
    -<b class="nc">&nbsp;    private final SlidingWindowReservoir sliding = new SlidingWindowReservoir(1000);</b>
    -<b class="nc">&nbsp;    private final SlidingTimeWindowReservoir slidingTime = new SlidingTimeWindowReservoir(200, TimeUnit.MILLISECONDS);</b>
    -<b class="nc">&nbsp;    private final SlidingTimeWindowArrayReservoir arrTime = new SlidingTimeWindowArrayReservoir(200, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    -<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfUniformReservoir() {
    -<b class="nc">&nbsp;        uniform.update(nextValue);</b>
    -<b class="nc">&nbsp;        return uniform;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfSlidingTimeWindowArrayReservoir() {
    -<b class="nc">&nbsp;        arrTime.update(nextValue);</b>
    -<b class="nc">&nbsp;        return arrTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfExponentiallyDecayingReservoir() {
    -<b class="nc">&nbsp;        exponential.update(nextValue);</b>
    -<b class="nc">&nbsp;        return exponential;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfSlidingWindowReservoir() {
    -<b class="nc">&nbsp;        sliding.update(nextValue);</b>
    -<b class="nc">&nbsp;        return sliding;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfSlidingTimeWindowReservoir() {
    -<b class="nc">&nbsp;        slidingTime.update(nextValue);</b>
    -<b class="nc">&nbsp;        return slidingTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfLockFreeExponentiallyDecayingReservoir() {
    -<b class="nc">&nbsp;        lockFreeExponential.update(nextValue);</b>
    -<b class="nc">&nbsp;        return lockFreeExponential;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;            .include(&quot;.*&quot; + ReservoirBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;            .warmupIterations(10)</b>
    -<b class="nc">&nbsp;            .measurementIterations(10)</b>
    -<b class="nc">&nbsp;            .addProfiler(GCProfiler.class)</b>
    -<b class="nc">&nbsp;            .measurementTime(TimeValue.seconds(3))</b>
    -<b class="nc">&nbsp;            .timeUnit(TimeUnit.MICROSECONDS)</b>
    -<b class="nc">&nbsp;            .mode(Mode.AverageTime)</b>
    -<b class="nc">&nbsp;            .threads(4)</b>
    -<b class="nc">&nbsp;            .forks(1)</b>
    -<b class="nc">&nbsp;            .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-5.html
    deleted file mode 100644
    index 8fdb617429..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-3/sources/source-5.html
    +++ /dev/null
    @@ -1,184 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoirsBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.SlidingTimeWindowArrayReservoir;
    -&nbsp;import com.codahale.metrics.SlidingTimeWindowReservoir;
    -&nbsp;import com.codahale.metrics.Snapshot;
    -&nbsp;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Group;
    -&nbsp;import org.openjdk.jmh.annotations.GroupThreads;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.profile.GCProfiler;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;import org.openjdk.jmh.runner.options.TimeValue;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * @author bstorozhuk
    -&nbsp; */
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark {</b>
    -<b class="nc">&nbsp;    private final SlidingTimeWindowReservoir slidingTime = new SlidingTimeWindowReservoir(200, TimeUnit.MILLISECONDS);</b>
    -<b class="nc">&nbsp;    private final SlidingTimeWindowArrayReservoir arrTime = new SlidingTimeWindowArrayReservoir(200, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    -<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    @Group(&quot;slidingTime&quot;)
    -&nbsp;    @GroupThreads(3)
    -&nbsp;    public Object slidingTimeAddMeasurement() {
    -<b class="nc">&nbsp;        slidingTime.update(nextValue);</b>
    -<b class="nc">&nbsp;        return slidingTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    @Group(&quot;slidingTime&quot;)
    -&nbsp;    @GroupThreads(1)
    -&nbsp;    public Object slidingTimeRead() {
    -<b class="nc">&nbsp;        Snapshot snapshot = slidingTime.getSnapshot();</b>
    -<b class="nc">&nbsp;        return snapshot;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    @Group(&quot;arrTime&quot;)
    -&nbsp;    @GroupThreads(3)
    -&nbsp;    public Object arrTimeAddMeasurement() {
    -<b class="nc">&nbsp;        arrTime.update(nextValue);</b>
    -<b class="nc">&nbsp;        return slidingTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    @Group(&quot;arrTime&quot;)
    -&nbsp;    @GroupThreads(1)
    -&nbsp;    public Object arrTimeRead() {
    -<b class="nc">&nbsp;        Snapshot snapshot = arrTime.getSnapshot();</b>
    -<b class="nc">&nbsp;        return snapshot;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;            .include(&quot;.*&quot; + SlidingTimeWindowReservoirsBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;            .warmupIterations(10)</b>
    -<b class="nc">&nbsp;            .measurementIterations(10)</b>
    -<b class="nc">&nbsp;            .addProfiler(GCProfiler.class)</b>
    -<b class="nc">&nbsp;            .measurementTime(TimeValue.seconds(3))</b>
    -<b class="nc">&nbsp;            .timeUnit(TimeUnit.MICROSECONDS)</b>
    -<b class="nc">&nbsp;            .mode(Mode.AverageTime)</b>
    -<b class="nc">&nbsp;            .forks(1)</b>
    -<b class="nc">&nbsp;            .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index.html
    deleted file mode 100644
    index d222a992fe..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index d84b5e43ee..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 0ed15f67cc..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index fbbe45cc85..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 82577136d3..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 513498d973..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index b873577f31..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index dc1b3d455e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index a31721141f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 8252ebcbdc..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,1077 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks.jmh_generated</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks.jmh_generated</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks.jmh_generated</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks.jmh_generated</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/31)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/143)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1012)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2860)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">SlidingTimeWindowReservoirsBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ReservoirBenchmark_perfUniformReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">ReservoirBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">ReservoirBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">ReservoirBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">ReservoirBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">MeterBenchmark_perfMark_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">MeterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">MeterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">MeterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">MeterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">CounterBenchmark_perfIncrement_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">CounterBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">CounterBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">CounterBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CounterBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">CachedGaugeBenchmark_perfGetValue_jmhTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CachedGaugeBenchmark_jmhType_B3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">CachedGaugeBenchmark_jmhType_B2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedGaugeBenchmark_jmhType_B1</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark_jmhType</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1.html
    deleted file mode 100644
    index 3927a2ed49..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1.html
    +++ /dev/null
    @@ -1,108 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGaugeBenchmark_jmhType</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGaugeBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGaugeBenchmark_jmhType</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class CachedGaugeBenchmark_jmhType extends CachedGaugeBenchmark_jmhType_B3 {</b>
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-10.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-10.html
    deleted file mode 100644
    index a2ccd2b73d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-10.html
    +++ /dev/null
    @@ -1,108 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_jmhType</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_jmhType</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class ReservoirBenchmark_jmhType extends ReservoirBenchmark_jmhType_B3 {</b>
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-11.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-11.html
    deleted file mode 100644
    index 3e8881f1ff..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-11.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_jmhType_B1</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_jmhType_B1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import com.codahale.metrics.benchmarks.ReservoirBenchmark;
    -<b class="nc">&nbsp;public class ReservoirBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.ReservoirBenchmark {</b>
    -&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    -&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    -&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    -&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    -&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    -&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    -&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    -&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    -&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    -&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    -&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    -&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    -&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    -&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    -&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    -&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-12.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-12.html
    deleted file mode 100644
    index 013c16f05e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-12.html
    +++ /dev/null
    @@ -1,126 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_jmhType_B2</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_jmhType_B2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    -<b class="nc">&nbsp;public class ReservoirBenchmark_jmhType_B2 extends ReservoirBenchmark_jmhType_B1 {</b>
    -&nbsp;    public volatile int setupTrialMutex;
    -&nbsp;    public volatile int tearTrialMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupIterationMutex;
    -&nbsp;    public volatile int tearIterationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupInvocationMutex;
    -&nbsp;    public volatile int tearInvocationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;ReservoirBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(ReservoirBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile boolean readyTrial;
    -&nbsp;    public volatile boolean readyIteration;
    -&nbsp;    public volatile boolean readyInvocation;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-13.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-13.html
    deleted file mode 100644
    index d67dff2c60..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-13.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_jmhType_B3</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_jmhType_B3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class ReservoirBenchmark_jmhType_B3 extends ReservoirBenchmark_jmhType_B2 {</b>
    -&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    -&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    -&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    -&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    -&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    -&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    -&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    -&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    -&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    -&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    -&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    -&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    -&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    -&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    -&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    -&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-14.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-14.html
    deleted file mode 100644
    index 6e79e312e6..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-14.html
    +++ /dev/null
    @@ -1,484 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class ReservoirBenchmark_perfExponentiallyDecayingReservoir_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfExponentiallyDecayingReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfExponentiallyDecayingReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfExponentiallyDecayingReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfExponentiallyDecayingReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfExponentiallyDecayingReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfExponentiallyDecayingReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfExponentiallyDecayingReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfExponentiallyDecayingReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfExponentiallyDecayingReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            perfExponentiallyDecayingReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfExponentiallyDecayingReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfExponentiallyDecayingReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfExponentiallyDecayingReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            perfExponentiallyDecayingReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfExponentiallyDecayingReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfExponentiallyDecayingReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfExponentiallyDecayingReservoir());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    -&nbsp;    
    -&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-15.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-15.html
    deleted file mode 100644
    index 5ad1617d0a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-15.html
    +++ /dev/null
    @@ -1,484 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class ReservoirBenchmark_perfLockFreeExponentiallyDecayingReservoir_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfLockFreeExponentiallyDecayingReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfLockFreeExponentiallyDecayingReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfLockFreeExponentiallyDecayingReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfLockFreeExponentiallyDecayingReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfLockFreeExponentiallyDecayingReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfLockFreeExponentiallyDecayingReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfLockFreeExponentiallyDecayingReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfLockFreeExponentiallyDecayingReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfLockFreeExponentiallyDecayingReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            perfLockFreeExponentiallyDecayingReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfLockFreeExponentiallyDecayingReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfLockFreeExponentiallyDecayingReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfLockFreeExponentiallyDecayingReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            perfLockFreeExponentiallyDecayingReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfLockFreeExponentiallyDecayingReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfLockFreeExponentiallyDecayingReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfLockFreeExponentiallyDecayingReservoir());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    -&nbsp;    
    -&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-16.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-16.html
    deleted file mode 100644
    index 996d5f2641..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-16.html
    +++ /dev/null
    @@ -1,484 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class ReservoirBenchmark_perfSlidingTimeWindowArrayReservoir_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowArrayReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfSlidingTimeWindowArrayReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowArrayReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingTimeWindowArrayReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowArrayReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfSlidingTimeWindowArrayReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowArrayReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingTimeWindowArrayReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowArrayReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            perfSlidingTimeWindowArrayReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowArrayReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingTimeWindowArrayReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowArrayReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            perfSlidingTimeWindowArrayReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowArrayReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingTimeWindowArrayReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowArrayReservoir());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    -&nbsp;    
    -&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-17.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-17.html
    deleted file mode 100644
    index 967c94d9e6..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-17.html
    +++ /dev/null
    @@ -1,484 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class ReservoirBenchmark_perfSlidingTimeWindowReservoir_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfSlidingTimeWindowReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingTimeWindowReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfSlidingTimeWindowReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingTimeWindowReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            perfSlidingTimeWindowReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingTimeWindowReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingTimeWindowReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            perfSlidingTimeWindowReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfSlidingTimeWindowReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingTimeWindowReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingTimeWindowReservoir());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    -&nbsp;    
    -&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-18.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-18.html
    deleted file mode 100644
    index f3214d140c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-18.html
    +++ /dev/null
    @@ -1,484 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class ReservoirBenchmark_perfSlidingWindowReservoir_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingWindowReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfSlidingWindowReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfSlidingWindowReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingWindowReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingWindowReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfSlidingWindowReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfSlidingWindowReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingWindowReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingWindowReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            perfSlidingWindowReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfSlidingWindowReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingWindowReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfSlidingWindowReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            perfSlidingWindowReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfSlidingWindowReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfSlidingWindowReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfSlidingWindowReservoir());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    -&nbsp;    
    -&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-19.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-19.html
    deleted file mode 100644
    index 01382ba913..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-19.html
    +++ /dev/null
    @@ -1,484 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark_perfUniformReservoir_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark_perfUniformReservoir_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark_perfUniformReservoir_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.ReservoirBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class ReservoirBenchmark_perfUniformReservoir_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfUniformReservoir_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfUniformReservoir_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfUniformReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfUniformReservoir_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfUniformReservoir_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfUniformReservoir_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfUniformReservoir&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfUniformReservoir_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfUniformReservoir_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            perfUniformReservoir_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfUniformReservoir&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfUniformReservoir_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfUniformReservoir_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            ReservoirBenchmark_jmhType l_reservoirbenchmark0_G = _jmh_tryInit_f_reservoirbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            perfUniformReservoir_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_reservoirbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_reservoirbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfUniformReservoir&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfUniformReservoir_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, ReservoirBenchmark_jmhType l_reservoirbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_reservoirbenchmark0_G.perfUniformReservoir());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile ReservoirBenchmark_jmhType f_reservoirbenchmark0_G;
    -&nbsp;    
    -&nbsp;    ReservoirBenchmark_jmhType _jmh_tryInit_f_reservoirbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        ReservoirBenchmark_jmhType val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_reservoirbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new ReservoirBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_reservoirbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1a.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1a.html
    deleted file mode 100644
    index cfda9238bd..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1a.html
    +++ /dev/null
    @@ -1,724 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.SlidingTimeWindowReservoirsBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class SlidingTimeWindowReservoirsBenchmark_arrTime_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult arrTime_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            arrTimeAddMeasurement_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.SECONDARY, &quot;arrTimeAddMeasurement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            arrTimeRead_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.SECONDARY, &quot;arrTimeRead&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void arrTimeAddMeasurement_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void arrTimeRead_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult arrTime_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            arrTimeAddMeasurement_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.SECONDARY, &quot;arrTimeAddMeasurement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            arrTimeRead_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.SECONDARY, &quot;arrTimeRead&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void arrTimeAddMeasurement_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void arrTimeRead_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult arrTime_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            arrTimeAddMeasurement_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;arrTime&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.SECONDARY, &quot;arrTimeAddMeasurement&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            arrTimeRead_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;arrTime&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.SECONDARY, &quot;arrTimeRead&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void arrTimeAddMeasurement_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void arrTimeRead_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult arrTime_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            arrTimeAddMeasurement_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.SECONDARY, &quot;arrTimeAddMeasurement&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            arrTimeRead_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;arrTime&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.SECONDARY, &quot;arrTimeRead&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void arrTimeAddMeasurement_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeAddMeasurement());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void arrTimeRead_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.arrTimeRead());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile SlidingTimeWindowReservoirsBenchmark_jmhType f_slidingtimewindowreservoirsbenchmark0_G;
    -&nbsp;    
    -&nbsp;    SlidingTimeWindowReservoirsBenchmark_jmhType _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        SlidingTimeWindowReservoirsBenchmark_jmhType val = f_slidingtimewindowreservoirsbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_slidingtimewindowreservoirsbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new SlidingTimeWindowReservoirsBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_slidingtimewindowreservoirsbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1b.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1b.html
    deleted file mode 100644
    index be248bea78..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1b.html
    +++ /dev/null
    @@ -1,108 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_jmhType</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoirsBenchmark_jmhType</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark_jmhType extends SlidingTimeWindowReservoirsBenchmark_jmhType_B3 {</b>
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1c.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1c.html
    deleted file mode 100644
    index d2c2111388..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1c.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_jmhType_B1</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoirsBenchmark_jmhType_B1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import com.codahale.metrics.benchmarks.SlidingTimeWindowReservoirsBenchmark;
    -<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.SlidingTimeWindowReservoirsBenchmark {</b>
    -&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    -&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    -&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    -&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    -&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    -&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    -&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    -&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    -&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    -&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    -&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    -&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    -&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    -&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    -&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    -&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1d.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1d.html
    deleted file mode 100644
    index ccc1f65f0e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1d.html
    +++ /dev/null
    @@ -1,126 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_jmhType_B2</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoirsBenchmark_jmhType_B2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    -<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark_jmhType_B2 extends SlidingTimeWindowReservoirsBenchmark_jmhType_B1 {</b>
    -&nbsp;    public volatile int setupTrialMutex;
    -&nbsp;    public volatile int tearTrialMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupIterationMutex;
    -&nbsp;    public volatile int tearIterationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupInvocationMutex;
    -&nbsp;    public volatile int tearInvocationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;SlidingTimeWindowReservoirsBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(SlidingTimeWindowReservoirsBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile boolean readyTrial;
    -&nbsp;    public volatile boolean readyIteration;
    -&nbsp;    public volatile boolean readyInvocation;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1e.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1e.html
    deleted file mode 100644
    index dfcb30cf94..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1e.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_jmhType_B3</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoirsBenchmark_jmhType_B3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark_jmhType_B3 extends SlidingTimeWindowReservoirsBenchmark_jmhType_B2 {</b>
    -&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    -&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    -&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    -&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    -&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    -&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    -&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    -&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    -&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    -&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    -&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    -&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    -&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    -&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    -&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    -&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1f.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1f.html
    deleted file mode 100644
    index 3345c72ed3..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-1f.html
    +++ /dev/null
    @@ -1,724 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/146)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/406)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.SlidingTimeWindowReservoirsBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class SlidingTimeWindowReservoirsBenchmark_slidingTime_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult slidingTime_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            slidingTimeAddMeasurement_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.SECONDARY, &quot;slidingTimeAddMeasurement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            slidingTimeRead_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.SECONDARY, &quot;slidingTimeRead&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void slidingTimeAddMeasurement_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void slidingTimeRead_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult slidingTime_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            slidingTimeAddMeasurement_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.SECONDARY, &quot;slidingTimeAddMeasurement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            slidingTimeRead_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.SECONDARY, &quot;slidingTimeRead&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void slidingTimeAddMeasurement_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void slidingTimeRead_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult slidingTime_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            slidingTimeAddMeasurement_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.SECONDARY, &quot;slidingTimeAddMeasurement&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            slidingTimeRead_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.SECONDARY, &quot;slidingTimeRead&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void slidingTimeAddMeasurement_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void slidingTimeRead_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult slidingTime_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            slidingTimeAddMeasurement_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.SECONDARY, &quot;slidingTimeAddMeasurement&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 1) {</b>
    -<b class="nc">&nbsp;            SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G = _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            slidingTimeRead_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_slidingtimewindowreservoirsbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_slidingtimewindowreservoirsbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;slidingTime&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.SECONDARY, &quot;slidingTimeRead&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void slidingTimeAddMeasurement_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeAddMeasurement());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void slidingTimeRead_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, SlidingTimeWindowReservoirsBenchmark_jmhType l_slidingtimewindowreservoirsbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_slidingtimewindowreservoirsbenchmark0_G.slidingTimeRead());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile SlidingTimeWindowReservoirsBenchmark_jmhType f_slidingtimewindowreservoirsbenchmark0_G;
    -&nbsp;    
    -&nbsp;    SlidingTimeWindowReservoirsBenchmark_jmhType _jmh_tryInit_f_slidingtimewindowreservoirsbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        SlidingTimeWindowReservoirsBenchmark_jmhType val = f_slidingtimewindowreservoirsbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_slidingtimewindowreservoirsbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new SlidingTimeWindowReservoirsBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_slidingtimewindowreservoirsbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-2.html
    deleted file mode 100644
    index 80125877c3..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-2.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGaugeBenchmark_jmhType_B1</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGaugeBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGaugeBenchmark_jmhType_B1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import com.codahale.metrics.benchmarks.CachedGaugeBenchmark;
    -<b class="nc">&nbsp;public class CachedGaugeBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.CachedGaugeBenchmark {</b>
    -&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    -&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    -&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    -&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    -&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    -&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    -&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    -&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    -&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    -&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    -&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    -&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    -&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    -&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    -&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    -&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-3.html
    deleted file mode 100644
    index 89410dc57c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-3.html
    +++ /dev/null
    @@ -1,126 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGaugeBenchmark_jmhType_B2</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGaugeBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGaugeBenchmark_jmhType_B2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    -<b class="nc">&nbsp;public class CachedGaugeBenchmark_jmhType_B2 extends CachedGaugeBenchmark_jmhType_B1 {</b>
    -&nbsp;    public volatile int setupTrialMutex;
    -&nbsp;    public volatile int tearTrialMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupIterationMutex;
    -&nbsp;    public volatile int tearIterationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupInvocationMutex;
    -&nbsp;    public volatile int tearInvocationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CachedGaugeBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CachedGaugeBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile boolean readyTrial;
    -&nbsp;    public volatile boolean readyIteration;
    -&nbsp;    public volatile boolean readyInvocation;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-4.html
    deleted file mode 100644
    index a0343c8a43..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-4.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGaugeBenchmark_jmhType_B3</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGaugeBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGaugeBenchmark_jmhType_B3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class CachedGaugeBenchmark_jmhType_B3 extends CachedGaugeBenchmark_jmhType_B2 {</b>
    -&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    -&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    -&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    -&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    -&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    -&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    -&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    -&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    -&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    -&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    -&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    -&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    -&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    -&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    -&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    -&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-5.html
    deleted file mode 100644
    index e74f02f3b8..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-5.html
    +++ /dev/null
    @@ -1,484 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGaugeBenchmark_perfGetValue_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGaugeBenchmark_perfGetValue_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGaugeBenchmark_perfGetValue_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.CachedGaugeBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class CachedGaugeBenchmark_perfGetValue_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfGetValue_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G = _jmh_tryInit_f_cachedgaugebenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfGetValue_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_cachedgaugebenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_cachedgaugebenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfGetValue&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfGetValue_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfGetValue_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G = _jmh_tryInit_f_cachedgaugebenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfGetValue_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_cachedgaugebenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_cachedgaugebenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfGetValue&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfGetValue_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfGetValue_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G = _jmh_tryInit_f_cachedgaugebenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            perfGetValue_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_cachedgaugebenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_cachedgaugebenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfGetValue&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfGetValue_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfGetValue_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G = _jmh_tryInit_f_cachedgaugebenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            perfGetValue_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_cachedgaugebenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_cachedgaugebenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfGetValue&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfGetValue_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, CachedGaugeBenchmark_jmhType l_cachedgaugebenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            l_cachedgaugebenchmark0_G.perfGetValue(blackhole);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile CachedGaugeBenchmark_jmhType f_cachedgaugebenchmark0_G;
    -&nbsp;    
    -&nbsp;    CachedGaugeBenchmark_jmhType _jmh_tryInit_f_cachedgaugebenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        CachedGaugeBenchmark_jmhType val = f_cachedgaugebenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_cachedgaugebenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new CachedGaugeBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_cachedgaugebenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-6.html
    deleted file mode 100644
    index c857ab5b16..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-6.html
    +++ /dev/null
    @@ -1,108 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CounterBenchmark_jmhType</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CounterBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CounterBenchmark_jmhType</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class CounterBenchmark_jmhType extends CounterBenchmark_jmhType_B3 {</b>
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-7.html
    deleted file mode 100644
    index fd63e4136c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-7.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CounterBenchmark_jmhType_B1</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CounterBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CounterBenchmark_jmhType_B1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import com.codahale.metrics.benchmarks.CounterBenchmark;
    -<b class="nc">&nbsp;public class CounterBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.CounterBenchmark {</b>
    -&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    -&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    -&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    -&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    -&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    -&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    -&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    -&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    -&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    -&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    -&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    -&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    -&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    -&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    -&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    -&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-8.html
    deleted file mode 100644
    index 5ac6d2e094..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-8.html
    +++ /dev/null
    @@ -1,126 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CounterBenchmark_jmhType_B2</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CounterBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CounterBenchmark_jmhType_B2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    -<b class="nc">&nbsp;public class CounterBenchmark_jmhType_B2 extends CounterBenchmark_jmhType_B1 {</b>
    -&nbsp;    public volatile int setupTrialMutex;
    -&nbsp;    public volatile int tearTrialMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupIterationMutex;
    -&nbsp;    public volatile int tearIterationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupInvocationMutex;
    -&nbsp;    public volatile int tearInvocationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;CounterBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(CounterBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile boolean readyTrial;
    -&nbsp;    public volatile boolean readyIteration;
    -&nbsp;    public volatile boolean readyInvocation;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-9.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-9.html
    deleted file mode 100644
    index 9ae249a173..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-9.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CounterBenchmark_jmhType_B3</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CounterBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CounterBenchmark_jmhType_B3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class CounterBenchmark_jmhType_B3 extends CounterBenchmark_jmhType_B2 {</b>
    -&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    -&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    -&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    -&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    -&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    -&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    -&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    -&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    -&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    -&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    -&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    -&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    -&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    -&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    -&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    -&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-a.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-a.html
    deleted file mode 100644
    index a6a06ee212..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-a.html
    +++ /dev/null
    @@ -1,484 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CounterBenchmark_perfIncrement_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CounterBenchmark_perfIncrement_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CounterBenchmark_perfIncrement_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.CounterBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class CounterBenchmark_perfIncrement_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfIncrement_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            CounterBenchmark_jmhType l_counterbenchmark0_G = _jmh_tryInit_f_counterbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfIncrement_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_counterbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_counterbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfIncrement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfIncrement_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, CounterBenchmark_jmhType l_counterbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfIncrement_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            CounterBenchmark_jmhType l_counterbenchmark0_G = _jmh_tryInit_f_counterbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfIncrement_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_counterbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_counterbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfIncrement&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfIncrement_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, CounterBenchmark_jmhType l_counterbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfIncrement_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            CounterBenchmark_jmhType l_counterbenchmark0_G = _jmh_tryInit_f_counterbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            perfIncrement_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_counterbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_counterbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfIncrement&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfIncrement_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, CounterBenchmark_jmhType l_counterbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfIncrement_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            CounterBenchmark_jmhType l_counterbenchmark0_G = _jmh_tryInit_f_counterbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            perfIncrement_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_counterbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_counterbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfIncrement&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfIncrement_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, CounterBenchmark_jmhType l_counterbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_counterbenchmark0_G.perfIncrement());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile CounterBenchmark_jmhType f_counterbenchmark0_G;
    -&nbsp;    
    -&nbsp;    CounterBenchmark_jmhType _jmh_tryInit_f_counterbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        CounterBenchmark_jmhType val = f_counterbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_counterbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new CounterBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_counterbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-b.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-b.html
    deleted file mode 100644
    index fc6e2e385a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-b.html
    +++ /dev/null
    @@ -1,108 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MeterBenchmark_jmhType</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MeterBenchmark_jmhType (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MeterBenchmark_jmhType</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class MeterBenchmark_jmhType extends MeterBenchmark_jmhType_B3 {</b>
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-c.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-c.html
    deleted file mode 100644
    index 7408a783aa..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-c.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MeterBenchmark_jmhType_B1</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MeterBenchmark_jmhType_B1 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MeterBenchmark_jmhType_B1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import com.codahale.metrics.benchmarks.MeterBenchmark;
    -<b class="nc">&nbsp;public class MeterBenchmark_jmhType_B1 extends com.codahale.metrics.benchmarks.MeterBenchmark {</b>
    -&nbsp;    byte b1_000, b1_001, b1_002, b1_003, b1_004, b1_005, b1_006, b1_007, b1_008, b1_009, b1_010, b1_011, b1_012, b1_013, b1_014, b1_015;
    -&nbsp;    byte b1_016, b1_017, b1_018, b1_019, b1_020, b1_021, b1_022, b1_023, b1_024, b1_025, b1_026, b1_027, b1_028, b1_029, b1_030, b1_031;
    -&nbsp;    byte b1_032, b1_033, b1_034, b1_035, b1_036, b1_037, b1_038, b1_039, b1_040, b1_041, b1_042, b1_043, b1_044, b1_045, b1_046, b1_047;
    -&nbsp;    byte b1_048, b1_049, b1_050, b1_051, b1_052, b1_053, b1_054, b1_055, b1_056, b1_057, b1_058, b1_059, b1_060, b1_061, b1_062, b1_063;
    -&nbsp;    byte b1_064, b1_065, b1_066, b1_067, b1_068, b1_069, b1_070, b1_071, b1_072, b1_073, b1_074, b1_075, b1_076, b1_077, b1_078, b1_079;
    -&nbsp;    byte b1_080, b1_081, b1_082, b1_083, b1_084, b1_085, b1_086, b1_087, b1_088, b1_089, b1_090, b1_091, b1_092, b1_093, b1_094, b1_095;
    -&nbsp;    byte b1_096, b1_097, b1_098, b1_099, b1_100, b1_101, b1_102, b1_103, b1_104, b1_105, b1_106, b1_107, b1_108, b1_109, b1_110, b1_111;
    -&nbsp;    byte b1_112, b1_113, b1_114, b1_115, b1_116, b1_117, b1_118, b1_119, b1_120, b1_121, b1_122, b1_123, b1_124, b1_125, b1_126, b1_127;
    -&nbsp;    byte b1_128, b1_129, b1_130, b1_131, b1_132, b1_133, b1_134, b1_135, b1_136, b1_137, b1_138, b1_139, b1_140, b1_141, b1_142, b1_143;
    -&nbsp;    byte b1_144, b1_145, b1_146, b1_147, b1_148, b1_149, b1_150, b1_151, b1_152, b1_153, b1_154, b1_155, b1_156, b1_157, b1_158, b1_159;
    -&nbsp;    byte b1_160, b1_161, b1_162, b1_163, b1_164, b1_165, b1_166, b1_167, b1_168, b1_169, b1_170, b1_171, b1_172, b1_173, b1_174, b1_175;
    -&nbsp;    byte b1_176, b1_177, b1_178, b1_179, b1_180, b1_181, b1_182, b1_183, b1_184, b1_185, b1_186, b1_187, b1_188, b1_189, b1_190, b1_191;
    -&nbsp;    byte b1_192, b1_193, b1_194, b1_195, b1_196, b1_197, b1_198, b1_199, b1_200, b1_201, b1_202, b1_203, b1_204, b1_205, b1_206, b1_207;
    -&nbsp;    byte b1_208, b1_209, b1_210, b1_211, b1_212, b1_213, b1_214, b1_215, b1_216, b1_217, b1_218, b1_219, b1_220, b1_221, b1_222, b1_223;
    -&nbsp;    byte b1_224, b1_225, b1_226, b1_227, b1_228, b1_229, b1_230, b1_231, b1_232, b1_233, b1_234, b1_235, b1_236, b1_237, b1_238, b1_239;
    -&nbsp;    byte b1_240, b1_241, b1_242, b1_243, b1_244, b1_245, b1_246, b1_247, b1_248, b1_249, b1_250, b1_251, b1_252, b1_253, b1_254, b1_255;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-d.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-d.html
    deleted file mode 100644
    index 5602fb0cf4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-d.html
    +++ /dev/null
    @@ -1,126 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MeterBenchmark_jmhType_B2</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MeterBenchmark_jmhType_B2 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MeterBenchmark_jmhType_B2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    -<b class="nc">&nbsp;public class MeterBenchmark_jmhType_B2 extends MeterBenchmark_jmhType_B1 {</b>
    -&nbsp;    public volatile int setupTrialMutex;
    -&nbsp;    public volatile int tearTrialMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; setupTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;setupTrialMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; tearTrialMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;tearTrialMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupIterationMutex;
    -&nbsp;    public volatile int tearIterationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; setupIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;setupIterationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; tearIterationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;tearIterationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile int setupInvocationMutex;
    -&nbsp;    public volatile int tearInvocationMutex;
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; setupInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;setupInvocationMutex&quot;);</b>
    -<b class="nc">&nbsp;    public final static AtomicIntegerFieldUpdater&lt;MeterBenchmark_jmhType_B2&gt; tearInvocationMutexUpdater = AtomicIntegerFieldUpdater.newUpdater(MeterBenchmark_jmhType_B2.class, &quot;tearInvocationMutex&quot;);</b>
    -&nbsp;
    -&nbsp;    public volatile boolean readyTrial;
    -&nbsp;    public volatile boolean readyIteration;
    -&nbsp;    public volatile boolean readyInvocation;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-e.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-e.html
    deleted file mode 100644
    index 8942a696e4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-e.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MeterBenchmark_jmhType_B3</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MeterBenchmark_jmhType_B3 (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MeterBenchmark_jmhType_B3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -<b class="nc">&nbsp;public class MeterBenchmark_jmhType_B3 extends MeterBenchmark_jmhType_B2 {</b>
    -&nbsp;    byte b3_000, b3_001, b3_002, b3_003, b3_004, b3_005, b3_006, b3_007, b3_008, b3_009, b3_010, b3_011, b3_012, b3_013, b3_014, b3_015;
    -&nbsp;    byte b3_016, b3_017, b3_018, b3_019, b3_020, b3_021, b3_022, b3_023, b3_024, b3_025, b3_026, b3_027, b3_028, b3_029, b3_030, b3_031;
    -&nbsp;    byte b3_032, b3_033, b3_034, b3_035, b3_036, b3_037, b3_038, b3_039, b3_040, b3_041, b3_042, b3_043, b3_044, b3_045, b3_046, b3_047;
    -&nbsp;    byte b3_048, b3_049, b3_050, b3_051, b3_052, b3_053, b3_054, b3_055, b3_056, b3_057, b3_058, b3_059, b3_060, b3_061, b3_062, b3_063;
    -&nbsp;    byte b3_064, b3_065, b3_066, b3_067, b3_068, b3_069, b3_070, b3_071, b3_072, b3_073, b3_074, b3_075, b3_076, b3_077, b3_078, b3_079;
    -&nbsp;    byte b3_080, b3_081, b3_082, b3_083, b3_084, b3_085, b3_086, b3_087, b3_088, b3_089, b3_090, b3_091, b3_092, b3_093, b3_094, b3_095;
    -&nbsp;    byte b3_096, b3_097, b3_098, b3_099, b3_100, b3_101, b3_102, b3_103, b3_104, b3_105, b3_106, b3_107, b3_108, b3_109, b3_110, b3_111;
    -&nbsp;    byte b3_112, b3_113, b3_114, b3_115, b3_116, b3_117, b3_118, b3_119, b3_120, b3_121, b3_122, b3_123, b3_124, b3_125, b3_126, b3_127;
    -&nbsp;    byte b3_128, b3_129, b3_130, b3_131, b3_132, b3_133, b3_134, b3_135, b3_136, b3_137, b3_138, b3_139, b3_140, b3_141, b3_142, b3_143;
    -&nbsp;    byte b3_144, b3_145, b3_146, b3_147, b3_148, b3_149, b3_150, b3_151, b3_152, b3_153, b3_154, b3_155, b3_156, b3_157, b3_158, b3_159;
    -&nbsp;    byte b3_160, b3_161, b3_162, b3_163, b3_164, b3_165, b3_166, b3_167, b3_168, b3_169, b3_170, b3_171, b3_172, b3_173, b3_174, b3_175;
    -&nbsp;    byte b3_176, b3_177, b3_178, b3_179, b3_180, b3_181, b3_182, b3_183, b3_184, b3_185, b3_186, b3_187, b3_188, b3_189, b3_190, b3_191;
    -&nbsp;    byte b3_192, b3_193, b3_194, b3_195, b3_196, b3_197, b3_198, b3_199, b3_200, b3_201, b3_202, b3_203, b3_204, b3_205, b3_206, b3_207;
    -&nbsp;    byte b3_208, b3_209, b3_210, b3_211, b3_212, b3_213, b3_214, b3_215, b3_216, b3_217, b3_218, b3_219, b3_220, b3_221, b3_222, b3_223;
    -&nbsp;    byte b3_224, b3_225, b3_226, b3_227, b3_228, b3_229, b3_230, b3_231, b3_232, b3_233, b3_234, b3_235, b3_236, b3_237, b3_238, b3_239;
    -&nbsp;    byte b3_240, b3_241, b3_242, b3_243, b3_244, b3_245, b3_246, b3_247, b3_248, b3_249, b3_250, b3_251, b3_252, b3_253, b3_254, b3_255;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-f.html b/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-f.html
    deleted file mode 100644
    index 8da842fb81..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-4/sources/source-f.html
    +++ /dev/null
    @@ -1,484 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MeterBenchmark_perfMark_jmhTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks.jmh_generated</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MeterBenchmark_perfMark_jmhTest (com.codahale.metrics.benchmarks.jmh_generated)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MeterBenchmark_perfMark_jmhTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/80)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/222)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks.jmh_generated;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import org.openjdk.jmh.annotations.CompilerControl;
    -&nbsp;import org.openjdk.jmh.runner.InfraControl;
    -&nbsp;import org.openjdk.jmh.infra.ThreadParams;
    -&nbsp;import org.openjdk.jmh.results.BenchmarkTaskResult;
    -&nbsp;import org.openjdk.jmh.results.Result;
    -&nbsp;import org.openjdk.jmh.results.ThroughputResult;
    -&nbsp;import org.openjdk.jmh.results.AverageTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SampleTimeResult;
    -&nbsp;import org.openjdk.jmh.results.SingleShotResult;
    -&nbsp;import org.openjdk.jmh.util.SampleBuffer;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Fork;
    -&nbsp;import org.openjdk.jmh.annotations.Measurement;
    -&nbsp;import org.openjdk.jmh.annotations.Threads;
    -&nbsp;import org.openjdk.jmh.annotations.Warmup;
    -&nbsp;import org.openjdk.jmh.annotations.BenchmarkMode;
    -&nbsp;import org.openjdk.jmh.results.RawResults;
    -&nbsp;import org.openjdk.jmh.results.ResultRole;
    -&nbsp;import java.lang.reflect.Field;
    -&nbsp;import org.openjdk.jmh.infra.BenchmarkParams;
    -&nbsp;import org.openjdk.jmh.infra.IterationParams;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.infra.Control;
    -&nbsp;import org.openjdk.jmh.results.ScalarResult;
    -&nbsp;import org.openjdk.jmh.results.AggregationPolicy;
    -&nbsp;import org.openjdk.jmh.runner.FailureAssistException;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.benchmarks.jmh_generated.MeterBenchmark_jmhType;
    -<b class="nc">&nbsp;public final class MeterBenchmark_perfMark_jmhTest {</b>
    -&nbsp;
    -&nbsp;    byte p000, p001, p002, p003, p004, p005, p006, p007, p008, p009, p010, p011, p012, p013, p014, p015;
    -&nbsp;    byte p016, p017, p018, p019, p020, p021, p022, p023, p024, p025, p026, p027, p028, p029, p030, p031;
    -&nbsp;    byte p032, p033, p034, p035, p036, p037, p038, p039, p040, p041, p042, p043, p044, p045, p046, p047;
    -&nbsp;    byte p048, p049, p050, p051, p052, p053, p054, p055, p056, p057, p058, p059, p060, p061, p062, p063;
    -&nbsp;    byte p064, p065, p066, p067, p068, p069, p070, p071, p072, p073, p074, p075, p076, p077, p078, p079;
    -&nbsp;    byte p080, p081, p082, p083, p084, p085, p086, p087, p088, p089, p090, p091, p092, p093, p094, p095;
    -&nbsp;    byte p096, p097, p098, p099, p100, p101, p102, p103, p104, p105, p106, p107, p108, p109, p110, p111;
    -&nbsp;    byte p112, p113, p114, p115, p116, p117, p118, p119, p120, p121, p122, p123, p124, p125, p126, p127;
    -&nbsp;    byte p128, p129, p130, p131, p132, p133, p134, p135, p136, p137, p138, p139, p140, p141, p142, p143;
    -&nbsp;    byte p144, p145, p146, p147, p148, p149, p150, p151, p152, p153, p154, p155, p156, p157, p158, p159;
    -&nbsp;    byte p160, p161, p162, p163, p164, p165, p166, p167, p168, p169, p170, p171, p172, p173, p174, p175;
    -&nbsp;    byte p176, p177, p178, p179, p180, p181, p182, p183, p184, p185, p186, p187, p188, p189, p190, p191;
    -&nbsp;    byte p192, p193, p194, p195, p196, p197, p198, p199, p200, p201, p202, p203, p204, p205, p206, p207;
    -&nbsp;    byte p208, p209, p210, p211, p212, p213, p214, p215, p216, p217, p218, p219, p220, p221, p222, p223;
    -&nbsp;    byte p224, p225, p226, p227, p228, p229, p230, p231, p232, p233, p234, p235, p236, p237, p238, p239;
    -&nbsp;    byte p240, p241, p242, p243, p244, p245, p246, p247, p248, p249, p250, p251, p252, p253, p254, p255;
    -&nbsp;    int startRndMask;
    -&nbsp;    BenchmarkParams benchmarkParams;
    -&nbsp;    IterationParams iterationParams;
    -&nbsp;    ThreadParams threadParams;
    -&nbsp;    Blackhole blackhole;
    -&nbsp;    Control notifyControl;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfMark_Throughput(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            MeterBenchmark_jmhType l_meterbenchmark0_G = _jmh_tryInit_f_meterbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfMark_thrpt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_meterbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_meterbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new ThroughputResult(ResultRole.PRIMARY, &quot;perfMark&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfMark_thrpt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, MeterBenchmark_jmhType l_meterbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfMark_AverageTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            MeterBenchmark_jmhType l_meterbenchmark0_G = _jmh_tryInit_f_meterbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            perfMark_avgt_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, l_meterbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_meterbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps;</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.measuredOps /= batchSize;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new AverageTimeResult(ResultRole.PRIMARY, &quot;perfMark&quot;, res.measuredOps, res.getTime(), benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfMark_avgt_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, MeterBenchmark_jmhType l_meterbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfMark_SampleTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            MeterBenchmark_jmhType l_meterbenchmark0_G = _jmh_tryInit_f_meterbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            control.announceWarmupReady();</b>
    -<b class="nc">&nbsp;            while (control.warmupShouldWait) {</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -<b class="nc">&nbsp;                if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                res.allOps++;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            int targetSamples = (int) (control.getDuration(TimeUnit.MILLISECONDS) * 20); // at max, 20 timestamps per millisecond</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            int opsPerInv = benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            SampleBuffer buffer = new SampleBuffer();</b>
    -<b class="nc">&nbsp;            perfMark_sample_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, buffer, targetSamples, opsPerInv, batchSize, l_meterbenchmark0_G);</b>
    -<b class="nc">&nbsp;            notifyControl.stopMeasurement = true;</b>
    -<b class="nc">&nbsp;            control.announceWarmdownReady();</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                while (control.warmdownShouldWait) {</b>
    -<b class="nc">&nbsp;                    blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -<b class="nc">&nbsp;                    if (control.shouldYield) Thread.yield();</b>
    -<b class="nc">&nbsp;                    res.allOps++;</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (Throwable e) {</b>
    -<b class="nc">&nbsp;                if (!(e instanceof InterruptedException)) throw e;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_meterbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            res.allOps += res.measuredOps * batchSize;</b>
    -<b class="nc">&nbsp;            res.allOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            res.allOps /= batchSize;</b>
    -<b class="nc">&nbsp;            res.measuredOps *= opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult((long)res.allOps, (long)res.measuredOps);</b>
    -<b class="nc">&nbsp;            results.add(new SampleTimeResult(ResultRole.PRIMARY, &quot;perfMark&quot;, buffer, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfMark_sample_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, SampleBuffer buffer, int targetSamples, long opsPerInv, int batchSize, MeterBenchmark_jmhType l_meterbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        long operations = 0;</b>
    -<b class="nc">&nbsp;        int rnd = (int)System.nanoTime();</b>
    -<b class="nc">&nbsp;        int rndMask = startRndMask;</b>
    -<b class="nc">&nbsp;        long time = 0;</b>
    -<b class="nc">&nbsp;        int currentStride = 0;</b>
    -&nbsp;        do {
    -<b class="nc">&nbsp;            rnd = (rnd * 1664525 + 1013904223);</b>
    -<b class="nc">&nbsp;            boolean sample = (rnd &amp; rndMask) == 0;</b>
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                time = System.nanoTime();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;                if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;                blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            if (sample) {</b>
    -<b class="nc">&nbsp;                buffer.add((System.nanoTime() - time) / opsPerInv);</b>
    -<b class="nc">&nbsp;                if (currentStride++ &gt; targetSamples) {</b>
    -<b class="nc">&nbsp;                    buffer.half();</b>
    -<b class="nc">&nbsp;                    currentStride = 0;</b>
    -<b class="nc">&nbsp;                    rndMask = (rndMask &lt;&lt; 1) + 1;</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            operations++;</b>
    -<b class="nc">&nbsp;        } while(!control.isDone);</b>
    -<b class="nc">&nbsp;        startRndMask = Math.max(startRndMask, rndMask);</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -<b class="nc">&nbsp;        result.measuredOps = operations;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    public BenchmarkTaskResult perfMark_SingleShotTime(InfraControl control, ThreadParams threadParams) throws Throwable {
    -<b class="nc">&nbsp;        this.benchmarkParams = control.benchmarkParams;</b>
    -<b class="nc">&nbsp;        this.iterationParams = control.iterationParams;</b>
    -<b class="nc">&nbsp;        this.threadParams    = threadParams;</b>
    -<b class="nc">&nbsp;        this.notifyControl   = control.notifyControl;</b>
    -<b class="nc">&nbsp;        if (this.blackhole == null) {</b>
    -<b class="nc">&nbsp;            this.blackhole = new Blackhole(&quot;Today&#39;s password is swordfish. I understand instantiating Blackholes directly is dangerous.&quot;);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        if (threadParams.getSubgroupIndex() == 0) {</b>
    -<b class="nc">&nbsp;            MeterBenchmark_jmhType l_meterbenchmark0_G = _jmh_tryInit_f_meterbenchmark0_G(control);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            control.preSetup();</b>
    -&nbsp;
    -&nbsp;
    -<b class="nc">&nbsp;            notifyControl.startMeasurement = true;</b>
    -<b class="nc">&nbsp;            RawResults res = new RawResults();</b>
    -<b class="nc">&nbsp;            int batchSize = iterationParams.getBatchSize();</b>
    -<b class="nc">&nbsp;            perfMark_ss_jmhStub(control, res, benchmarkParams, iterationParams, threadParams, blackhole, notifyControl, startRndMask, batchSize, l_meterbenchmark0_G);</b>
    -<b class="nc">&nbsp;            control.preTearDown();</b>
    -&nbsp;
    -<b class="nc">&nbsp;            if (control.isLastIteration()) {</b>
    -<b class="nc">&nbsp;                synchronized(this.getClass()) {</b>
    -<b class="nc">&nbsp;                    f_meterbenchmark0_G = null;</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            int opsPerInv = control.benchmarkParams.getOpsPerInvocation();</b>
    -<b class="nc">&nbsp;            long totalOps = opsPerInv;</b>
    -<b class="nc">&nbsp;            BenchmarkTaskResult results = new BenchmarkTaskResult(totalOps, totalOps);</b>
    -<b class="nc">&nbsp;            results.add(new SingleShotResult(ResultRole.PRIMARY, &quot;perfMark&quot;, res.getTime(), totalOps, benchmarkParams.getTimeUnit()));</b>
    -<b class="nc">&nbsp;            this.blackhole.evaporate(&quot;Yes, I am Stephen Hawking, and know a thing or two about black holes.&quot;);</b>
    -<b class="nc">&nbsp;            return results;</b>
    -&nbsp;        } else
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Harness failed to distribute threads among groups properly&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void perfMark_ss_jmhStub(InfraControl control, RawResults result, BenchmarkParams benchmarkParams, IterationParams iterationParams, ThreadParams threadParams, Blackhole blackhole, Control notifyControl, int startRndMask, int batchSize, MeterBenchmark_jmhType l_meterbenchmark0_G) throws Throwable {
    -<b class="nc">&nbsp;        long realTime = 0;</b>
    -<b class="nc">&nbsp;        result.startTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        for (int b = 0; b &lt; batchSize; b++) {</b>
    -<b class="nc">&nbsp;            if (control.volatileSpoiler) return;</b>
    -<b class="nc">&nbsp;            blackhole.consume(l_meterbenchmark0_G.perfMark());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        result.stopTime = System.nanoTime();</b>
    -<b class="nc">&nbsp;        result.realTime = realTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    
    -&nbsp;    static volatile MeterBenchmark_jmhType f_meterbenchmark0_G;
    -&nbsp;    
    -&nbsp;    MeterBenchmark_jmhType _jmh_tryInit_f_meterbenchmark0_G(InfraControl control) throws Throwable {
    -<b class="nc">&nbsp;        MeterBenchmark_jmhType val = f_meterbenchmark0_G;</b>
    -<b class="nc">&nbsp;        if (val != null) {</b>
    -<b class="nc">&nbsp;            return val;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        synchronized(this.getClass()) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;            if (control.isFailing) throw new FailureAssistException();</b>
    -<b class="nc">&nbsp;            val = f_meterbenchmark0_G;</b>
    -<b class="nc">&nbsp;            if (val != null) {</b>
    -<b class="nc">&nbsp;                return val;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            val = new MeterBenchmark_jmhType();</b>
    -<b class="nc">&nbsp;            val.readyTrial = true;</b>
    -<b class="nc">&nbsp;            f_meterbenchmark0_G = val;</b>
    -<b class="nc">&nbsp;            } catch (Throwable t) {</b>
    -<b class="nc">&nbsp;                control.isFailing = true;</b>
    -<b class="nc">&nbsp;                throw t;</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return val;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index.html
    deleted file mode 100644
    index ff3a24cde7..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index cddb070028..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 1ef8350b65..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index ddb229211c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 0e445dde0a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE.html
    deleted file mode 100644
    index ebc7b89740..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 5707a02b18..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 9b6de531fe..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index b97e3bc613..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 431c361d7a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-1.html
    deleted file mode 100644
    index 5c4198ffba..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-1.html
    +++ /dev/null
    @@ -1,250 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsStatsCounter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.caffeine</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsStatsCounter (com.codahale.metrics.caffeine)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsStatsCounter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;/*
    -&nbsp; * Copyright 2016 Ben Manes. All Rights Reserved.
    -&nbsp; *
    -&nbsp; * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    -&nbsp; * you may not use this file except in compliance with the License.
    -&nbsp; * You may obtain a copy of the License at
    -&nbsp; *
    -&nbsp; *     http://www.apache.org/licenses/LICENSE-2.0
    -&nbsp; *
    -&nbsp; * Unless required by applicable law or agreed to in writing, software
    -&nbsp; * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    -&nbsp; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -&nbsp; * See the License for the specific language governing permissions and
    -&nbsp; * limitations under the License.
    -&nbsp; */
    -&nbsp;package com.codahale.metrics.caffeine;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;import java.util.EnumMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.github.benmanes.caffeine.cache.RemovalCause;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.CacheStats;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.StatsCounter;
    -&nbsp;import org.checkerframework.checker.index.qual.NonNegative;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link StatsCounter} instrumented with Dropwizard Metrics.
    -&nbsp; *
    -&nbsp; * @author ben.manes@gmail.com (Ben Manes)
    -&nbsp; * @author John Karp
    -&nbsp; */
    -&nbsp;public final class MetricsStatsCounter implements StatsCounter {
    -&nbsp;  private final Counter hitCount;
    -&nbsp;  private final Counter missCount;
    -&nbsp;  private final Timer loadSuccess;
    -&nbsp;  private final Timer loadFailure;
    -&nbsp;  private final Histogram evictions;
    -&nbsp;  private final Counter evictionWeight;
    -&nbsp;  private final EnumMap&lt;RemovalCause, Histogram&gt; evictionsWithCause;
    -&nbsp;
    -&nbsp;  // for implementing snapshot()
    -<b class="fc">&nbsp;  private final LongAdder totalLoadTime = new LongAdder();</b>
    -&nbsp;
    -&nbsp;  /**
    -&nbsp;   * Constructs an instance for use by a single cache.
    -&nbsp;   *
    -&nbsp;   * @param registry the registry of metric instances
    -&nbsp;   * @param metricsPrefix the prefix name for the metrics
    -&nbsp;   */
    -<b class="fc">&nbsp;  public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {</b>
    -<b class="fc">&nbsp;    requireNonNull(metricsPrefix);</b>
    -<b class="fc">&nbsp;    hitCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;hits&quot;));</b>
    -<b class="fc">&nbsp;    missCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;misses&quot;));</b>
    -<b class="fc">&nbsp;    loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-success&quot;));</b>
    -<b class="fc">&nbsp;    loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-failure&quot;));</b>
    -<b class="fc">&nbsp;    evictions = registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;));</b>
    -<b class="fc">&nbsp;    evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, &quot;evictions-weight&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    evictionsWithCause = new EnumMap&lt;&gt;(RemovalCause.class);</b>
    -<b class="fc">&nbsp;    for (RemovalCause cause : RemovalCause.values()) {</b>
    -<b class="fc">&nbsp;      evictionsWithCause.put(</b>
    -&nbsp;          cause,
    -<b class="fc">&nbsp;          registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;, cause.name())));</b>
    -&nbsp;    }
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordHits(int count) {
    -<b class="fc">&nbsp;    hitCount.inc(count);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordMisses(int count) {
    -<b class="fc">&nbsp;    missCount.inc(count);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadSuccess(long loadTime) {
    -<b class="fc">&nbsp;    loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadFailure(long loadTime) {
    -<b class="fc">&nbsp;    loadFailure.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  // @Override -- Caffeine 2.x
    -&nbsp;  @Deprecated
    -&nbsp;  @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;  public void recordEviction() {
    -&nbsp;    // This method is scheduled for removal in version 3.0 in favor of recordEviction(weight)
    -<b class="fc">&nbsp;    recordEviction(1);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  // @Override -- Caffeine 2.x
    -&nbsp;  @Deprecated
    -&nbsp;  @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;  public void recordEviction(int weight) {
    -<b class="fc">&nbsp;    evictions.update(weight);</b>
    -<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordEviction(@NonNegative int weight, RemovalCause cause) {
    -<b class="fc">&nbsp;    evictionsWithCause.get(cause).update(weight);</b>
    -<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public CacheStats snapshot() {
    -<b class="fc">&nbsp;    return CacheStats.of(</b>
    -<b class="fc">&nbsp;        hitCount.getCount(),</b>
    -<b class="fc">&nbsp;        missCount.getCount(),</b>
    -<b class="fc">&nbsp;        loadSuccess.getCount(),</b>
    -<b class="fc">&nbsp;        loadFailure.getCount(),</b>
    -<b class="fc">&nbsp;        totalLoadTime.sum(),</b>
    -<b class="fc">&nbsp;        evictions.getCount(),</b>
    -<b class="fc">&nbsp;        evictionWeight.getCount());</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public String toString() {
    -<b class="nc">&nbsp;    return snapshot().toString();</b>
    -&nbsp;  }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-2.html
    deleted file mode 100644
    index 7b578e7423..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-2.html
    +++ /dev/null
    @@ -1,228 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetaData</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetaData (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetaData</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetaData$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (13/15)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;class MetaData {
    -&nbsp;
    -&nbsp;    private final String host;
    -&nbsp;    private final String plugin;
    -&nbsp;    private final String pluginInstance;
    -&nbsp;    private final String type;
    -&nbsp;    private final String typeInstance;
    -&nbsp;    private final long timestamp;
    -&nbsp;    private final long period;
    -&nbsp;
    -&nbsp;    MetaData(String host, String plugin, String pluginInstance, String type, String typeInstance,
    -<b class="fc">&nbsp;             long timestamp, long period) {</b>
    -<b class="fc">&nbsp;        this.host = host;</b>
    -<b class="fc">&nbsp;        this.plugin = plugin;</b>
    -<b class="fc">&nbsp;        this.pluginInstance = pluginInstance;</b>
    -<b class="fc">&nbsp;        this.type = type;</b>
    -<b class="fc">&nbsp;        this.typeInstance = typeInstance;</b>
    -<b class="fc">&nbsp;        this.timestamp = timestamp;</b>
    -<b class="fc">&nbsp;        this.period = period;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getHost() {
    -<b class="fc">&nbsp;        return host;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getPlugin() {
    -<b class="fc">&nbsp;        return plugin;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getPluginInstance() {
    -<b class="fc">&nbsp;        return pluginInstance;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getType() {
    -<b class="fc">&nbsp;        return type;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getTypeInstance() {
    -<b class="fc">&nbsp;        return typeInstance;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    long getTimestamp() {
    -<b class="fc">&nbsp;        return timestamp;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    long getPeriod() {
    -<b class="fc">&nbsp;        return period;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    static class Builder {
    -&nbsp;
    -&nbsp;        private String host;
    -&nbsp;        private String plugin;
    -&nbsp;        private String pluginInstance;
    -&nbsp;        private String type;
    -&nbsp;        private String typeInstance;
    -&nbsp;        private long timestamp;
    -&nbsp;        private long period;
    -&nbsp;        private Sanitize sanitize;
    -&nbsp;
    -&nbsp;        Builder(String host, long timestamp, long duration) {
    -<b class="fc">&nbsp;            this(new Sanitize(Sanitize.DEFAULT_MAX_LENGTH), host, timestamp, duration);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        Builder(Sanitize sanitize, String host, long timestamp, long duration) {</b>
    -<b class="fc">&nbsp;            this.sanitize = sanitize;</b>
    -<b class="fc">&nbsp;            this.host = sanitize.instanceName(host);</b>
    -<b class="fc">&nbsp;            this.timestamp = timestamp;</b>
    -<b class="fc">&nbsp;            period = duration;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder plugin(String name) {
    -<b class="fc">&nbsp;            plugin = sanitize.name(name);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder pluginInstance(String name) {
    -<b class="nc">&nbsp;            pluginInstance = sanitize.instanceName(name);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder type(String name) {
    -<b class="fc">&nbsp;            type = sanitize.name(name);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder typeInstance(String name) {
    -<b class="fc">&nbsp;            typeInstance = sanitize.instanceName(name);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        MetaData get() {
    -<b class="fc">&nbsp;            return new MetaData(host, plugin, pluginInstance, type, typeInstance, timestamp, period);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-3.html
    deleted file mode 100644
    index 7789f23d29..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-3.html
    +++ /dev/null
    @@ -1,424 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PacketWriter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PacketWriter (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PacketWriter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.4%
    -  </span>
    -  <span class="absValue">
    -    (88/103)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">PacketWriter$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">PacketWriter$EncryptionResult</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import javax.crypto.BadPaddingException;
    -&nbsp;import javax.crypto.Cipher;
    -&nbsp;import javax.crypto.IllegalBlockSizeException;
    -&nbsp;import javax.crypto.Mac;
    -&nbsp;import javax.crypto.NoSuchPaddingException;
    -&nbsp;import javax.crypto.ShortBufferException;
    -&nbsp;import javax.crypto.spec.IvParameterSpec;
    -&nbsp;import javax.crypto.spec.SecretKeySpec;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.BufferOverflowException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.ByteOrder;
    -&nbsp;import java.nio.charset.StandardCharsets;
    -&nbsp;import java.security.InvalidKeyException;
    -&nbsp;import java.security.MessageDigest;
    -&nbsp;import java.security.NoSuchAlgorithmException;
    -&nbsp;import java.security.spec.InvalidParameterSpecException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;
    -&nbsp;class PacketWriter {
    -&nbsp;
    -&nbsp;    private static final int TYPE_HOST = 0;
    -&nbsp;    private static final int TYPE_TIME = 1;
    -&nbsp;    private static final int TYPE_PLUGIN = 2;
    -&nbsp;    private static final int TYPE_PLUGIN_INSTANCE = 3;
    -&nbsp;    private static final int TYPE_TYPE = 4;
    -&nbsp;    private static final int TYPE_TYPE_INSTANCE = 5;
    -&nbsp;    private static final int TYPE_VALUES = 6;
    -&nbsp;    private static final int TYPE_INTERVAL = 7;
    -&nbsp;    private static final int TYPE_SIGN_SHA256 = 0x0200;
    -&nbsp;    private static final int TYPE_ENCR_AES256 = 0x0210;
    -&nbsp;
    -&nbsp;    private static final int UINT16_LEN = 2;
    -&nbsp;    private static final int UINT32_LEN = UINT16_LEN * 2;
    -&nbsp;    private static final int UINT64_LEN = UINT32_LEN * 2;
    -&nbsp;    private static final int HEADER_LEN = UINT16_LEN * 2;
    -&nbsp;    private static final int BUFFER_SIZE = 1024;
    -&nbsp;
    -&nbsp;    private static final int VALUE_COUNT_LEN = UINT16_LEN;
    -&nbsp;    private static final int NUMBER_LEN = HEADER_LEN + UINT64_LEN;
    -&nbsp;    private static final int SIGNATURE_LEN = 36;      // 2b Type + 2b Length + 32b Hash
    -&nbsp;    private static final int ENCRYPT_DATA_LEN = 22;   // 16b IV + 2b Type + 2b Length + 2b Username length
    -&nbsp;    private static final int IV_LENGTH = 16;
    -&nbsp;    private static final int SHA1_LENGTH = 20;
    -&nbsp;
    -&nbsp;    private static final int VALUE_LEN = 9;
    -&nbsp;    private static final byte DATA_TYPE_GAUGE = (byte) 1;
    -&nbsp;    private static final byte NULL = (byte) &#39;\0&#39;;
    -&nbsp;    private static final String HMAC_SHA256_ALGORITHM = &quot;HmacSHA256&quot;;
    -&nbsp;    private static final String AES_CYPHER = &quot;AES_256/OFB/NoPadding&quot;;
    -&nbsp;    private static final String AES = &quot;AES&quot;;
    -&nbsp;    private static final String SHA_256_ALGORITHM = &quot;SHA-256&quot;;
    -&nbsp;    private static final String SHA_1_ALGORITHM = &quot;SHA1&quot;;
    -&nbsp;
    -&nbsp;    private final Sender sender;
    -&nbsp;
    -&nbsp;    private final SecurityLevel securityLevel;
    -&nbsp;    private final byte[] username;
    -&nbsp;    private final byte[] password;
    -&nbsp;
    -<b class="fc">&nbsp;    PacketWriter(Sender sender, String username, String password, SecurityLevel securityLevel) {</b>
    -<b class="fc">&nbsp;        this.sender = sender;</b>
    -<b class="fc">&nbsp;        this.securityLevel = securityLevel;</b>
    -<b class="fc">&nbsp;        this.username = username != null ? username.getBytes(StandardCharsets.UTF_8) : null;</b>
    -<b class="fc">&nbsp;        this.password = password != null ? password.getBytes(StandardCharsets.UTF_8) : null;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void write(MetaData metaData, Number... values) throws BufferOverflowException, IOException {
    -<b class="fc">&nbsp;        final ByteBuffer packet = ByteBuffer.allocate(BUFFER_SIZE);</b>
    -<b class="fc">&nbsp;        write(packet, metaData);</b>
    -<b class="fc">&nbsp;        write(packet, values);</b>
    -<b class="fc">&nbsp;        packet.flip();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        switch (securityLevel) {</b>
    -&nbsp;            case NONE:
    -<b class="fc">&nbsp;                sender.send(packet);</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case SIGN:
    -<b class="fc">&nbsp;                sender.send(signPacket(packet));</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case ENCRYPT:
    -<b class="fc">&nbsp;                sender.send(encryptPacket(packet));</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;Unsupported security level: &quot; + securityLevel);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    private void write(ByteBuffer buffer, MetaData metaData) {
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_HOST, metaData.getHost());</b>
    -<b class="fc">&nbsp;        writeNumber(buffer, TYPE_TIME, metaData.getTimestamp());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_PLUGIN, metaData.getPlugin());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_PLUGIN_INSTANCE, metaData.getPluginInstance());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_TYPE, metaData.getType());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_TYPE_INSTANCE, metaData.getTypeInstance());</b>
    -<b class="fc">&nbsp;        writeNumber(buffer, TYPE_INTERVAL, metaData.getPeriod());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void write(ByteBuffer buffer, Number... values) {
    -<b class="fc">&nbsp;        final int numValues = values.length;</b>
    -<b class="fc">&nbsp;        final int length = HEADER_LEN + VALUE_COUNT_LEN + numValues * VALUE_LEN;</b>
    -<b class="fc">&nbsp;        writeHeader(buffer, TYPE_VALUES, length);</b>
    -<b class="fc">&nbsp;        buffer.putShort((short) numValues);</b>
    -<b class="fc">&nbsp;        buffer.put(nCopies(numValues, DATA_TYPE_GAUGE));</b>
    -<b class="fc">&nbsp;        buffer.order(ByteOrder.LITTLE_ENDIAN);</b>
    -<b class="fc">&nbsp;        for (Number value : values) {</b>
    -<b class="fc">&nbsp;            buffer.putDouble(value.doubleValue());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        buffer.order(ByteOrder.BIG_ENDIAN);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private byte[] nCopies(int n, byte value) {
    -<b class="fc">&nbsp;        final byte[] array = new byte[n];</b>
    -<b class="fc">&nbsp;        Arrays.fill(array, value);</b>
    -<b class="fc">&nbsp;        return array;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeString(ByteBuffer buffer, int type, String val) {
    -<b class="fc">&nbsp;        if (val == null || val.length() == 0) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        int len = HEADER_LEN + val.length() + 1;</b>
    -<b class="fc">&nbsp;        writeHeader(buffer, type, len);</b>
    -<b class="fc">&nbsp;        buffer.put(val.getBytes(StandardCharsets.US_ASCII)).put(NULL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeNumber(ByteBuffer buffer, int type, long val) {
    -<b class="fc">&nbsp;        writeHeader(buffer, type, NUMBER_LEN);</b>
    -<b class="fc">&nbsp;        buffer.putLong(val);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeHeader(ByteBuffer buffer, int type, int len) {
    -<b class="fc">&nbsp;        buffer.putShort((short) type);</b>
    -<b class="fc">&nbsp;        buffer.putShort((short) len);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Signs the provided packet, so a CollectD server can verify that its authenticity.
    -&nbsp;     * Wire format:
    -&nbsp;     * &lt;pre&gt;
    -&nbsp;     * +-------------------------------+-------------------------------+
    -&nbsp;     * ! Type (0x0200)                 ! Length                        !
    -&nbsp;     * +-------------------------------+-------------------------------+
    -&nbsp;     * ! Signature (SHA2(username + packet))                           \
    -&nbsp;     * +-------------------------------+-------------------------------+
    -&nbsp;     * ! Username                      ! Packet                        \
    -&nbsp;     * +---------------------------------------------------------------+
    -&nbsp;     * &lt;/pre&gt;
    -&nbsp;     *
    -&nbsp;     * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Binary_protocol#Signature_part&quot;&gt;
    -&nbsp;     * Binary protocol - CollectD | Signature part&lt;/a&gt;
    -&nbsp;     */
    -&nbsp;    private ByteBuffer signPacket(ByteBuffer packet) {
    -<b class="fc">&nbsp;        final byte[] signature = sign(password, (ByteBuffer) ByteBuffer.allocate(packet.remaining() + username.length)</b>
    -<b class="fc">&nbsp;                .put(username)</b>
    -<b class="fc">&nbsp;                .put(packet)</b>
    -<b class="fc">&nbsp;                .flip());</b>
    -<b class="fc">&nbsp;        return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)</b>
    -<b class="fc">&nbsp;                .putShort((short) TYPE_SIGN_SHA256)</b>
    -<b class="fc">&nbsp;                .putShort((short) (username.length + SIGNATURE_LEN))</b>
    -<b class="fc">&nbsp;                .put(signature)</b>
    -<b class="fc">&nbsp;                .put(username)</b>
    -<b class="fc">&nbsp;                .put((ByteBuffer) packet.flip())</b>
    -<b class="fc">&nbsp;                .flip();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Encrypts the provided packet, so it&#39;s can&#39;t be eavesdropped during a transfer
    -&nbsp;     * to a CollectD server. Wire format:
    -&nbsp;     * &lt;pre&gt;
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * ! Type (0x0210)                   ! Length                        !
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * ! Username length in bytes        ! Username                      \
    -&nbsp;     * +-----------------------------------------------------------------+
    -&nbsp;     * ! Initialization Vector (IV)      !                               \
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * ! Encrypted bytes (AES (SHA1(packet) + packet))                   \
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * &lt;/pre&gt;
    -&nbsp;     *
    -&nbsp;     * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Binary_protocol#Encrypted_part&quot;&gt;
    -&nbsp;     * Binary protocol - CollectD | Encrypted part&lt;/a&gt;
    -&nbsp;     */
    -&nbsp;    private ByteBuffer encryptPacket(ByteBuffer packet) {
    -<b class="fc">&nbsp;        final ByteBuffer payload = (ByteBuffer) ByteBuffer.allocate(SHA1_LENGTH + packet.remaining())</b>
    -<b class="fc">&nbsp;                .put(sha1(packet))</b>
    -<b class="fc">&nbsp;                .put((ByteBuffer) packet.flip())</b>
    -<b class="fc">&nbsp;                .flip();</b>
    -<b class="fc">&nbsp;        final EncryptionResult er = encrypt(password, payload);</b>
    -<b class="fc">&nbsp;        return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)</b>
    -<b class="fc">&nbsp;                .putShort((short) TYPE_ENCR_AES256)</b>
    -<b class="fc">&nbsp;                .putShort((short) (ENCRYPT_DATA_LEN + username.length + er.output.remaining()))</b>
    -<b class="fc">&nbsp;                .putShort((short) username.length)</b>
    -<b class="fc">&nbsp;                .put(username)</b>
    -<b class="fc">&nbsp;                .put(er.iv)</b>
    -<b class="fc">&nbsp;                .put(er.output)</b>
    -<b class="fc">&nbsp;                .flip();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static byte[] sign(byte[] secret, ByteBuffer input) {
    -&nbsp;        final Mac mac;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            mac = Mac.getInstance(HMAC_SHA256_ALGORITHM);</b>
    -<b class="fc">&nbsp;            mac.init(new SecretKeySpec(secret, HMAC_SHA256_ALGORITHM));</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException | InvalidKeyException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        mac.update(input);</b>
    -<b class="fc">&nbsp;        return mac.doFinal();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static EncryptionResult encrypt(byte[] password, ByteBuffer input) {
    -&nbsp;        final Cipher cipher;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            cipher = Cipher.getInstance(AES_CYPHER);</b>
    -<b class="fc">&nbsp;            cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(sha256(password), AES));</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;        final byte[] iv;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            iv = cipher.getParameters().getParameterSpec(IvParameterSpec.class).getIV();</b>
    -<b class="nc">&nbsp;        } catch (InvalidParameterSpecException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        if (iv.length != IV_LENGTH) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Bad initialization vector&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ByteBuffer output = ByteBuffer.allocate(input.remaining() * 2);</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            cipher.doFinal(input, output);</b>
    -<b class="nc">&nbsp;        } catch (ShortBufferException | IllegalBlockSizeException | BadPaddingException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return new EncryptionResult(iv, (ByteBuffer) output.flip());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static byte[] sha256(byte[] input) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return MessageDigest.getInstance(SHA_256_ALGORITHM).digest(input);</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static byte[] sha1(ByteBuffer input) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            final MessageDigest digest = MessageDigest.getInstance(SHA_1_ALGORITHM);</b>
    -<b class="fc">&nbsp;            digest.update(input);</b>
    -<b class="fc">&nbsp;            final byte[] output = digest.digest();</b>
    -<b class="fc">&nbsp;            if (output.length != SHA1_LENGTH) {</b>
    -<b class="nc">&nbsp;                throw new IllegalStateException(&quot;Bad SHA1 hash&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return output;</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class EncryptionResult {</b>
    -&nbsp;
    -&nbsp;        private final byte[] iv;
    -&nbsp;        private final ByteBuffer output;
    -&nbsp;
    -<b class="fc">&nbsp;        private EncryptionResult(byte[] iv, ByteBuffer output) {</b>
    -<b class="fc">&nbsp;            this.iv = iv;</b>
    -<b class="fc">&nbsp;            this.output = output;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-4.html
    deleted file mode 100644
    index 53f3db6cb7..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-4.html
    +++ /dev/null
    @@ -1,150 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Sanitize</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Sanitize (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Sanitize</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Naming_schema&gt;Collectd naming schema&lt;/a&gt;
    -&nbsp; */
    -&nbsp;class Sanitize {
    -&nbsp;
    -&nbsp;    static final int DEFAULT_MAX_LENGTH = 63;
    -&nbsp;
    -&nbsp;    private static final char DASH = &#39;-&#39;;
    -&nbsp;    private static final char SLASH = &#39;/&#39;;
    -&nbsp;    private static final char NULL = &#39;\0&#39;;
    -&nbsp;    private static final char UNDERSCORE = &#39;_&#39;;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final List&lt;Character&gt; INSTANCE_RESERVED = Arrays.asList(SLASH, NULL);</b>
    -<b class="fc">&nbsp;    private static final List&lt;Character&gt; NAME_RESERVED = Arrays.asList(DASH, SLASH, NULL);</b>
    -&nbsp;
    -&nbsp;    private final int maxLength;
    -&nbsp;
    -<b class="fc">&nbsp;    Sanitize(int maxLength) {</b>
    -<b class="fc">&nbsp;        this.maxLength = maxLength;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String name(String name) {
    -<b class="fc">&nbsp;        return sanitize(name, NAME_RESERVED);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String instanceName(String instanceName) {
    -<b class="fc">&nbsp;        return sanitize(instanceName, INSTANCE_RESERVED);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String sanitize(String string, List&lt;Character&gt; reservedChars) {
    -<b class="fc">&nbsp;        final StringBuilder buffer = new StringBuilder(string.length());</b>
    -<b class="fc">&nbsp;        final int len = Math.min(string.length(), maxLength);</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; len; i++) {</b>
    -<b class="fc">&nbsp;            final char c = string.charAt(i);</b>
    -<b class="fc">&nbsp;            final boolean legal = ((int) c) &lt; 128 &amp;&amp; !reservedChars.contains(c);</b>
    -<b class="fc">&nbsp;            buffer.append(legal ? c : UNDERSCORE);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return buffer.toString();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-5.html
    deleted file mode 100644
    index 6720d82240..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-5.html
    +++ /dev/null
    @@ -1,134 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SecurityConfiguration</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SecurityConfiguration (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SecurityConfiguration</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;public class SecurityConfiguration {
    -&nbsp;
    -&nbsp;    private final byte[] username;
    -&nbsp;    private final byte[] password;
    -&nbsp;    private final SecurityLevel securityLevel;
    -&nbsp;
    -<b class="nc">&nbsp;    public SecurityConfiguration(byte[] username, byte[] password, SecurityLevel securityLevel) {</b>
    -<b class="nc">&nbsp;        this.username = username;</b>
    -<b class="nc">&nbsp;        this.password = password;</b>
    -<b class="nc">&nbsp;        this.securityLevel = securityLevel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static SecurityConfiguration none() {
    -<b class="nc">&nbsp;        return new SecurityConfiguration(null, null, SecurityLevel.NONE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public byte[] getUsername() {
    -<b class="nc">&nbsp;        return username;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public byte[] getPassword() {
    -<b class="nc">&nbsp;        return password;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public SecurityLevel getSecurityLevel() {
    -<b class="nc">&nbsp;        return securityLevel;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-6.html
    deleted file mode 100644
    index 805e94cd49..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-6.html
    +++ /dev/null
    @@ -1,112 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SecurityLevel</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SecurityLevel (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SecurityLevel</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -<b class="fc">&nbsp;public enum SecurityLevel {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    NONE,</b>
    -<b class="fc">&nbsp;    SIGN,</b>
    -<b class="fc">&nbsp;    ENCRYPT</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-7.html
    deleted file mode 100644
    index bfb3efdeb6..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-5/sources/source-7.html
    +++ /dev/null
    @@ -1,154 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Sender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Sender (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Sender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.channels.DatagramChannel;
    -&nbsp;
    -&nbsp;public class Sender {
    -&nbsp;
    -&nbsp;    private final String host;
    -&nbsp;    private final int port;
    -&nbsp;
    -&nbsp;    private InetSocketAddress address;
    -&nbsp;    private DatagramChannel channel;
    -&nbsp;
    -<b class="fc">&nbsp;    public Sender(String host, int port) {</b>
    -<b class="fc">&nbsp;        this.host = host;</b>
    -<b class="fc">&nbsp;        this.port = port;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void connect() throws IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (host != null) {</b>
    -<b class="fc">&nbsp;            address = new InetSocketAddress(host, port);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        channel = DatagramChannel.open();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return channel != null &amp;&amp; !channel.socket().isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void send(ByteBuffer buffer) throws IOException {
    -<b class="fc">&nbsp;        channel.send(buffer, address);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void disconnect() throws IOException {
    -<b class="fc">&nbsp;        if (channel == null) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;        try {
    -<b class="fc">&nbsp;            channel.close();</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            channel = null;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index.html
    deleted file mode 100644
    index 39df09f70d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 973f7d2d6e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index a7d9c4a456..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 42ed15e7e2..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index b61ab531dc..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 250d8dd702..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 7b7a9ea1c7..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 6525a1aedc..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index f25984c132..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 93eaccf2e5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89%
    -  </span>
    -  <span class="absValue">
    -    (73/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.9%
    -  </span>
    -  <span class="absValue">
    -    (269/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-1.html
    deleted file mode 100644
    index d32fbecb27..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-1.html
    +++ /dev/null
    @@ -1,470 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CollectdReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CollectdReporter (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CollectdReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.9%
    -  </span>
    -  <span class="absValue">
    -    (79/93)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">CollectdReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CollectdReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (9/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.1%
    -  </span>
    -  <span class="absValue">
    -    (31/43)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricAttribute;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.ScheduledReporter;
    -&nbsp;import com.codahale.metrics.Snapshot;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.InetAddress;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which publishes metric values to a Collectd server.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;https://collectd.org&quot;&gt;collectd – The system statistics
    -&nbsp; * collection daemon&lt;/a&gt;
    -&nbsp; */
    -<b class="fc">&nbsp;public class CollectdReporter extends ScheduledReporter {</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a builder for the specified registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The default settings are:
    -&nbsp;     * &lt;ul&gt;
    -&nbsp;     * &lt;li&gt;hostName: InetAddress.getLocalHost().getHostName()&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;executor: default executor created by {@code ScheduledReporter}&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;shutdownExecutorOnStop: true&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;clock: Clock.defaultClock()&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;rateUnit: TimeUnit.SECONDS&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;durationUnit: TimeUnit.MILLISECONDS&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;filter: MetricFilter.ALL&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;securityLevel: NONE&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;username: &quot;&quot;&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;password: &quot;&quot;&lt;/li&gt;
    -&nbsp;     * &lt;/ul&gt;
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private String hostName;
    -&nbsp;        private ScheduledExecutorService executor;
    -<b class="fc">&nbsp;        private boolean shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;        private Clock clock = Clock.defaultClock();</b>
    -<b class="fc">&nbsp;        private TimeUnit rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;        private TimeUnit durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;        private MetricFilter filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;        private SecurityLevel securityLevel = SecurityLevel.NONE;</b>
    -<b class="fc">&nbsp;        private String username = &quot;&quot;;</b>
    -<b class="fc">&nbsp;        private String password = &quot;&quot;;</b>
    -<b class="fc">&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes = Collections.emptySet();</b>
    -<b class="fc">&nbsp;        private int maxLength = Sanitize.DEFAULT_MAX_LENGTH;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withHostName(String hostName) {
    -<b class="fc">&nbsp;            this.hostName = hostName;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withClock(Clock clock) {
    -<b class="nc">&nbsp;            this.clock = clock;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="nc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="nc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="nc">&nbsp;            this.filter = filter;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withUsername(String username) {
    -<b class="fc">&nbsp;            this.username = username;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withPassword(String password) {
    -<b class="fc">&nbsp;            this.password = password;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withSecurityLevel(SecurityLevel securityLevel) {
    -<b class="fc">&nbsp;            this.securityLevel = securityLevel;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; attributes) {
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = attributes;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withMaxLength(int maxLength) {
    -<b class="fc">&nbsp;            this.maxLength = maxLength;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public CollectdReporter build(Sender sender) {
    -<b class="fc">&nbsp;            if (securityLevel != SecurityLevel.NONE) {</b>
    -<b class="fc">&nbsp;                if (username.isEmpty()) {</b>
    -<b class="fc">&nbsp;                    throw new IllegalArgumentException(&quot;username is required for securityLevel: &quot; + securityLevel);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                if (password.isEmpty()) {</b>
    -<b class="fc">&nbsp;                    throw new IllegalArgumentException(&quot;password is required for securityLevel: &quot; + securityLevel);</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new CollectdReporter(registry,</b>
    -&nbsp;                    hostName, sender,
    -&nbsp;                    executor, shutdownExecutorOnStop,
    -&nbsp;                    clock, rateUnit, durationUnit,
    -&nbsp;                    filter, disabledMetricAttributes,
    -&nbsp;                    username, password, securityLevel, new Sanitize(maxLength));
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOG = LoggerFactory.getLogger(CollectdReporter.class);</b>
    -&nbsp;    private static final String REPORTER_NAME = &quot;collectd-reporter&quot;;
    -&nbsp;    private static final String FALLBACK_HOST_NAME = &quot;localhost&quot;;
    -&nbsp;    private static final String COLLECTD_TYPE_GAUGE = &quot;gauge&quot;;
    -&nbsp;
    -&nbsp;    private String hostName;
    -&nbsp;    private final Sender sender;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private long period;
    -&nbsp;    private final PacketWriter writer;
    -&nbsp;    private final Sanitize sanitize;
    -&nbsp;
    -&nbsp;    private CollectdReporter(MetricRegistry registry,
    -&nbsp;                             String hostname, Sender sender,
    -&nbsp;                             ScheduledExecutorService executor, boolean shutdownExecutorOnStop,
    -&nbsp;                             Clock clock, TimeUnit rateUnit, TimeUnit durationUnit,
    -&nbsp;                             MetricFilter filter, Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    -&nbsp;                             String username, String password,
    -&nbsp;                             SecurityLevel securityLevel, Sanitize sanitize) {
    -<b class="fc">&nbsp;        super(registry, REPORTER_NAME, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes);
    -<b class="fc">&nbsp;        this.hostName = (hostname != null) ? hostname : resolveHostName();</b>
    -<b class="fc">&nbsp;        this.sender = sender;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.sanitize = sanitize;</b>
    -<b class="fc">&nbsp;        writer = new PacketWriter(sender, username, password, securityLevel);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String resolveHostName() {
    -&nbsp;        try {
    -<b class="nc">&nbsp;            return InetAddress.getLocalHost().getHostName();</b>
    -<b class="nc">&nbsp;        } catch (Exception e) {</b>
    -<b class="nc">&nbsp;            LOG.error(&quot;Failed to lookup local host name: {}&quot;, e.getMessage(), e);</b>
    -<b class="nc">&nbsp;            return FALLBACK_HOST_NAME;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start(long period, TimeUnit unit) {
    -<b class="nc">&nbsp;        this.period = period;</b>
    -<b class="nc">&nbsp;        super.start(period, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges, SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;            SortedMap&lt;String, Histogram&gt; histograms, SortedMap&lt;String, Meter&gt; meters, SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        MetaData.Builder metaData = new MetaData.Builder(sanitize, hostName, clock.getTime() / 1000, period)</b>
    -<b class="fc">&nbsp;                .type(COLLECTD_TYPE_GAUGE);</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            connect(sender);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeGauge(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeCounter(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeHistogram(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeMeter(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeTimer(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Unable to report to Collectd&quot;, e);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            disconnect(sender);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void connect(Sender sender) throws IOException {
    -<b class="fc">&nbsp;        if (!sender.isConnected()) {</b>
    -<b class="fc">&nbsp;            sender.connect();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void disconnect(Sender sender) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            sender.disconnect();</b>
    -<b class="nc">&nbsp;        } catch (Exception e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Error disconnecting from Collectd&quot;, e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeValue(MetaData.Builder metaData, MetricAttribute attribute, Number value) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(attribute)) {</b>
    -<b class="fc">&nbsp;            write(metaData.typeInstance(attribute.getCode()).get(), value);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeRate(MetaData.Builder metaData, MetricAttribute attribute, double rate) {
    -<b class="fc">&nbsp;        writeValue(metaData, attribute, convertRate(rate));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeDuration(MetaData.Builder metaData, MetricAttribute attribute, double duration) {
    -<b class="fc">&nbsp;        writeValue(metaData, attribute, convertDuration(duration));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void write(MetaData metaData, Number value) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            writer.write(metaData, value);</b>
    -<b class="nc">&nbsp;        } catch (RuntimeException e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Failed to process metric &#39;&quot; + metaData.getPlugin() + &quot;&#39;: &quot; + e.getMessage());</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            LOG.error(&quot;Failed to send metric to collectd&quot;, e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    private void serializeGauge(MetaData.Builder metaData, Gauge metric) {
    -<b class="fc">&nbsp;        if (metric.getValue() instanceof Number) {</b>
    -<b class="fc">&nbsp;            write(metaData.typeInstance(&quot;value&quot;).get(), (Number) metric.getValue());</b>
    -<b class="fc">&nbsp;        } else if (metric.getValue() instanceof Boolean) {</b>
    -<b class="fc">&nbsp;            write(metaData.typeInstance(&quot;value&quot;).get(), ((Boolean) metric.getValue()) ? 1 : 0);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            LOG.warn(&quot;Failed to process metric &#39;{}&#39;. Unsupported gauge of type: {} &quot;, metaData.get().getPlugin(),</b>
    -<b class="fc">&nbsp;                    metric.getValue().getClass().getName());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeMeter(MetaData.Builder metaData, Meter metric) {
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M1_RATE, metric.getOneMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, MEAN_RATE, metric.getMeanRate());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeCounter(MetaData.Builder metaData, Counter metric) {
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeHistogram(MetaData.Builder metaData, Histogram metric) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = metric.getSnapshot();</b>
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, MAX, (double) snapshot.getMax());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, MEAN, snapshot.getMean());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, MIN, (double) snapshot.getMin());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, STDDEV, snapshot.getStdDev());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P50, snapshot.getMedian());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P75, snapshot.get75thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P95, snapshot.get95thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P98, snapshot.get98thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P99, snapshot.get99thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P999, snapshot.get999thPercentile());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeTimer(MetaData.Builder metaData, Timer metric) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = metric.getSnapshot();</b>
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, MAX, (double) snapshot.getMax());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, MEAN, snapshot.getMean());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, MIN, (double) snapshot.getMin());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, STDDEV, snapshot.getStdDev());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P50, snapshot.getMedian());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P75, snapshot.get75thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P95, snapshot.get95thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P98, snapshot.get98thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P99, snapshot.get99thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P999, snapshot.get999thPercentile());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M1_RATE, metric.getOneMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, MEAN_RATE, metric.getMeanRate());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-2.html
    deleted file mode 100644
    index c3d1402f62..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-2.html
    +++ /dev/null
    @@ -1,228 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetaData</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetaData (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetaData</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetaData$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (13/15)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;class MetaData {
    -&nbsp;
    -&nbsp;    private final String host;
    -&nbsp;    private final String plugin;
    -&nbsp;    private final String pluginInstance;
    -&nbsp;    private final String type;
    -&nbsp;    private final String typeInstance;
    -&nbsp;    private final long timestamp;
    -&nbsp;    private final long period;
    -&nbsp;
    -&nbsp;    MetaData(String host, String plugin, String pluginInstance, String type, String typeInstance,
    -<b class="fc">&nbsp;             long timestamp, long period) {</b>
    -<b class="fc">&nbsp;        this.host = host;</b>
    -<b class="fc">&nbsp;        this.plugin = plugin;</b>
    -<b class="fc">&nbsp;        this.pluginInstance = pluginInstance;</b>
    -<b class="fc">&nbsp;        this.type = type;</b>
    -<b class="fc">&nbsp;        this.typeInstance = typeInstance;</b>
    -<b class="fc">&nbsp;        this.timestamp = timestamp;</b>
    -<b class="fc">&nbsp;        this.period = period;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getHost() {
    -<b class="fc">&nbsp;        return host;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getPlugin() {
    -<b class="fc">&nbsp;        return plugin;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getPluginInstance() {
    -<b class="fc">&nbsp;        return pluginInstance;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getType() {
    -<b class="fc">&nbsp;        return type;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getTypeInstance() {
    -<b class="fc">&nbsp;        return typeInstance;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    long getTimestamp() {
    -<b class="fc">&nbsp;        return timestamp;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    long getPeriod() {
    -<b class="fc">&nbsp;        return period;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    static class Builder {
    -&nbsp;
    -&nbsp;        private String host;
    -&nbsp;        private String plugin;
    -&nbsp;        private String pluginInstance;
    -&nbsp;        private String type;
    -&nbsp;        private String typeInstance;
    -&nbsp;        private long timestamp;
    -&nbsp;        private long period;
    -&nbsp;        private Sanitize sanitize;
    -&nbsp;
    -&nbsp;        Builder(String host, long timestamp, long duration) {
    -<b class="fc">&nbsp;            this(new Sanitize(Sanitize.DEFAULT_MAX_LENGTH), host, timestamp, duration);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        Builder(Sanitize sanitize, String host, long timestamp, long duration) {</b>
    -<b class="fc">&nbsp;            this.sanitize = sanitize;</b>
    -<b class="fc">&nbsp;            this.host = sanitize.instanceName(host);</b>
    -<b class="fc">&nbsp;            this.timestamp = timestamp;</b>
    -<b class="fc">&nbsp;            period = duration;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder plugin(String name) {
    -<b class="fc">&nbsp;            plugin = sanitize.name(name);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder pluginInstance(String name) {
    -<b class="nc">&nbsp;            pluginInstance = sanitize.instanceName(name);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder type(String name) {
    -<b class="fc">&nbsp;            type = sanitize.name(name);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder typeInstance(String name) {
    -<b class="fc">&nbsp;            typeInstance = sanitize.instanceName(name);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        MetaData get() {
    -<b class="fc">&nbsp;            return new MetaData(host, plugin, pluginInstance, type, typeInstance, timestamp, period);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-3.html
    deleted file mode 100644
    index f84171f994..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-3.html
    +++ /dev/null
    @@ -1,424 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PacketWriter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PacketWriter (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PacketWriter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.4%
    -  </span>
    -  <span class="absValue">
    -    (88/103)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">PacketWriter$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">PacketWriter$EncryptionResult</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import javax.crypto.BadPaddingException;
    -&nbsp;import javax.crypto.Cipher;
    -&nbsp;import javax.crypto.IllegalBlockSizeException;
    -&nbsp;import javax.crypto.Mac;
    -&nbsp;import javax.crypto.NoSuchPaddingException;
    -&nbsp;import javax.crypto.ShortBufferException;
    -&nbsp;import javax.crypto.spec.IvParameterSpec;
    -&nbsp;import javax.crypto.spec.SecretKeySpec;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.BufferOverflowException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.ByteOrder;
    -&nbsp;import java.nio.charset.StandardCharsets;
    -&nbsp;import java.security.InvalidKeyException;
    -&nbsp;import java.security.MessageDigest;
    -&nbsp;import java.security.NoSuchAlgorithmException;
    -&nbsp;import java.security.spec.InvalidParameterSpecException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;
    -&nbsp;class PacketWriter {
    -&nbsp;
    -&nbsp;    private static final int TYPE_HOST = 0;
    -&nbsp;    private static final int TYPE_TIME = 1;
    -&nbsp;    private static final int TYPE_PLUGIN = 2;
    -&nbsp;    private static final int TYPE_PLUGIN_INSTANCE = 3;
    -&nbsp;    private static final int TYPE_TYPE = 4;
    -&nbsp;    private static final int TYPE_TYPE_INSTANCE = 5;
    -&nbsp;    private static final int TYPE_VALUES = 6;
    -&nbsp;    private static final int TYPE_INTERVAL = 7;
    -&nbsp;    private static final int TYPE_SIGN_SHA256 = 0x0200;
    -&nbsp;    private static final int TYPE_ENCR_AES256 = 0x0210;
    -&nbsp;
    -&nbsp;    private static final int UINT16_LEN = 2;
    -&nbsp;    private static final int UINT32_LEN = UINT16_LEN * 2;
    -&nbsp;    private static final int UINT64_LEN = UINT32_LEN * 2;
    -&nbsp;    private static final int HEADER_LEN = UINT16_LEN * 2;
    -&nbsp;    private static final int BUFFER_SIZE = 1024;
    -&nbsp;
    -&nbsp;    private static final int VALUE_COUNT_LEN = UINT16_LEN;
    -&nbsp;    private static final int NUMBER_LEN = HEADER_LEN + UINT64_LEN;
    -&nbsp;    private static final int SIGNATURE_LEN = 36;      // 2b Type + 2b Length + 32b Hash
    -&nbsp;    private static final int ENCRYPT_DATA_LEN = 22;   // 16b IV + 2b Type + 2b Length + 2b Username length
    -&nbsp;    private static final int IV_LENGTH = 16;
    -&nbsp;    private static final int SHA1_LENGTH = 20;
    -&nbsp;
    -&nbsp;    private static final int VALUE_LEN = 9;
    -&nbsp;    private static final byte DATA_TYPE_GAUGE = (byte) 1;
    -&nbsp;    private static final byte NULL = (byte) &#39;\0&#39;;
    -&nbsp;    private static final String HMAC_SHA256_ALGORITHM = &quot;HmacSHA256&quot;;
    -&nbsp;    private static final String AES_CYPHER = &quot;AES_256/OFB/NoPadding&quot;;
    -&nbsp;    private static final String AES = &quot;AES&quot;;
    -&nbsp;    private static final String SHA_256_ALGORITHM = &quot;SHA-256&quot;;
    -&nbsp;    private static final String SHA_1_ALGORITHM = &quot;SHA1&quot;;
    -&nbsp;
    -&nbsp;    private final Sender sender;
    -&nbsp;
    -&nbsp;    private final SecurityLevel securityLevel;
    -&nbsp;    private final byte[] username;
    -&nbsp;    private final byte[] password;
    -&nbsp;
    -<b class="fc">&nbsp;    PacketWriter(Sender sender, String username, String password, SecurityLevel securityLevel) {</b>
    -<b class="fc">&nbsp;        this.sender = sender;</b>
    -<b class="fc">&nbsp;        this.securityLevel = securityLevel;</b>
    -<b class="fc">&nbsp;        this.username = username != null ? username.getBytes(StandardCharsets.UTF_8) : null;</b>
    -<b class="fc">&nbsp;        this.password = password != null ? password.getBytes(StandardCharsets.UTF_8) : null;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void write(MetaData metaData, Number... values) throws BufferOverflowException, IOException {
    -<b class="fc">&nbsp;        final ByteBuffer packet = ByteBuffer.allocate(BUFFER_SIZE);</b>
    -<b class="fc">&nbsp;        write(packet, metaData);</b>
    -<b class="fc">&nbsp;        write(packet, values);</b>
    -<b class="fc">&nbsp;        packet.flip();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        switch (securityLevel) {</b>
    -&nbsp;            case NONE:
    -<b class="fc">&nbsp;                sender.send(packet);</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case SIGN:
    -<b class="fc">&nbsp;                sender.send(signPacket(packet));</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case ENCRYPT:
    -<b class="fc">&nbsp;                sender.send(encryptPacket(packet));</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;Unsupported security level: &quot; + securityLevel);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    private void write(ByteBuffer buffer, MetaData metaData) {
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_HOST, metaData.getHost());</b>
    -<b class="fc">&nbsp;        writeNumber(buffer, TYPE_TIME, metaData.getTimestamp());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_PLUGIN, metaData.getPlugin());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_PLUGIN_INSTANCE, metaData.getPluginInstance());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_TYPE, metaData.getType());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_TYPE_INSTANCE, metaData.getTypeInstance());</b>
    -<b class="fc">&nbsp;        writeNumber(buffer, TYPE_INTERVAL, metaData.getPeriod());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void write(ByteBuffer buffer, Number... values) {
    -<b class="fc">&nbsp;        final int numValues = values.length;</b>
    -<b class="fc">&nbsp;        final int length = HEADER_LEN + VALUE_COUNT_LEN + numValues * VALUE_LEN;</b>
    -<b class="fc">&nbsp;        writeHeader(buffer, TYPE_VALUES, length);</b>
    -<b class="fc">&nbsp;        buffer.putShort((short) numValues);</b>
    -<b class="fc">&nbsp;        buffer.put(nCopies(numValues, DATA_TYPE_GAUGE));</b>
    -<b class="fc">&nbsp;        buffer.order(ByteOrder.LITTLE_ENDIAN);</b>
    -<b class="fc">&nbsp;        for (Number value : values) {</b>
    -<b class="fc">&nbsp;            buffer.putDouble(value.doubleValue());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        buffer.order(ByteOrder.BIG_ENDIAN);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private byte[] nCopies(int n, byte value) {
    -<b class="fc">&nbsp;        final byte[] array = new byte[n];</b>
    -<b class="fc">&nbsp;        Arrays.fill(array, value);</b>
    -<b class="fc">&nbsp;        return array;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeString(ByteBuffer buffer, int type, String val) {
    -<b class="fc">&nbsp;        if (val == null || val.length() == 0) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        int len = HEADER_LEN + val.length() + 1;</b>
    -<b class="fc">&nbsp;        writeHeader(buffer, type, len);</b>
    -<b class="fc">&nbsp;        buffer.put(val.getBytes(StandardCharsets.US_ASCII)).put(NULL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeNumber(ByteBuffer buffer, int type, long val) {
    -<b class="fc">&nbsp;        writeHeader(buffer, type, NUMBER_LEN);</b>
    -<b class="fc">&nbsp;        buffer.putLong(val);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeHeader(ByteBuffer buffer, int type, int len) {
    -<b class="fc">&nbsp;        buffer.putShort((short) type);</b>
    -<b class="fc">&nbsp;        buffer.putShort((short) len);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Signs the provided packet, so a CollectD server can verify that its authenticity.
    -&nbsp;     * Wire format:
    -&nbsp;     * &lt;pre&gt;
    -&nbsp;     * +-------------------------------+-------------------------------+
    -&nbsp;     * ! Type (0x0200)                 ! Length                        !
    -&nbsp;     * +-------------------------------+-------------------------------+
    -&nbsp;     * ! Signature (SHA2(username + packet))                           \
    -&nbsp;     * +-------------------------------+-------------------------------+
    -&nbsp;     * ! Username                      ! Packet                        \
    -&nbsp;     * +---------------------------------------------------------------+
    -&nbsp;     * &lt;/pre&gt;
    -&nbsp;     *
    -&nbsp;     * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Binary_protocol#Signature_part&quot;&gt;
    -&nbsp;     * Binary protocol - CollectD | Signature part&lt;/a&gt;
    -&nbsp;     */
    -&nbsp;    private ByteBuffer signPacket(ByteBuffer packet) {
    -<b class="fc">&nbsp;        final byte[] signature = sign(password, (ByteBuffer) ByteBuffer.allocate(packet.remaining() + username.length)</b>
    -<b class="fc">&nbsp;                .put(username)</b>
    -<b class="fc">&nbsp;                .put(packet)</b>
    -<b class="fc">&nbsp;                .flip());</b>
    -<b class="fc">&nbsp;        return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)</b>
    -<b class="fc">&nbsp;                .putShort((short) TYPE_SIGN_SHA256)</b>
    -<b class="fc">&nbsp;                .putShort((short) (username.length + SIGNATURE_LEN))</b>
    -<b class="fc">&nbsp;                .put(signature)</b>
    -<b class="fc">&nbsp;                .put(username)</b>
    -<b class="fc">&nbsp;                .put((ByteBuffer) packet.flip())</b>
    -<b class="fc">&nbsp;                .flip();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Encrypts the provided packet, so it&#39;s can&#39;t be eavesdropped during a transfer
    -&nbsp;     * to a CollectD server. Wire format:
    -&nbsp;     * &lt;pre&gt;
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * ! Type (0x0210)                   ! Length                        !
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * ! Username length in bytes        ! Username                      \
    -&nbsp;     * +-----------------------------------------------------------------+
    -&nbsp;     * ! Initialization Vector (IV)      !                               \
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * ! Encrypted bytes (AES (SHA1(packet) + packet))                   \
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * &lt;/pre&gt;
    -&nbsp;     *
    -&nbsp;     * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Binary_protocol#Encrypted_part&quot;&gt;
    -&nbsp;     * Binary protocol - CollectD | Encrypted part&lt;/a&gt;
    -&nbsp;     */
    -&nbsp;    private ByteBuffer encryptPacket(ByteBuffer packet) {
    -<b class="fc">&nbsp;        final ByteBuffer payload = (ByteBuffer) ByteBuffer.allocate(SHA1_LENGTH + packet.remaining())</b>
    -<b class="fc">&nbsp;                .put(sha1(packet))</b>
    -<b class="fc">&nbsp;                .put((ByteBuffer) packet.flip())</b>
    -<b class="fc">&nbsp;                .flip();</b>
    -<b class="fc">&nbsp;        final EncryptionResult er = encrypt(password, payload);</b>
    -<b class="fc">&nbsp;        return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)</b>
    -<b class="fc">&nbsp;                .putShort((short) TYPE_ENCR_AES256)</b>
    -<b class="fc">&nbsp;                .putShort((short) (ENCRYPT_DATA_LEN + username.length + er.output.remaining()))</b>
    -<b class="fc">&nbsp;                .putShort((short) username.length)</b>
    -<b class="fc">&nbsp;                .put(username)</b>
    -<b class="fc">&nbsp;                .put(er.iv)</b>
    -<b class="fc">&nbsp;                .put(er.output)</b>
    -<b class="fc">&nbsp;                .flip();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static byte[] sign(byte[] secret, ByteBuffer input) {
    -&nbsp;        final Mac mac;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            mac = Mac.getInstance(HMAC_SHA256_ALGORITHM);</b>
    -<b class="fc">&nbsp;            mac.init(new SecretKeySpec(secret, HMAC_SHA256_ALGORITHM));</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException | InvalidKeyException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        mac.update(input);</b>
    -<b class="fc">&nbsp;        return mac.doFinal();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static EncryptionResult encrypt(byte[] password, ByteBuffer input) {
    -&nbsp;        final Cipher cipher;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            cipher = Cipher.getInstance(AES_CYPHER);</b>
    -<b class="fc">&nbsp;            cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(sha256(password), AES));</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;        final byte[] iv;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            iv = cipher.getParameters().getParameterSpec(IvParameterSpec.class).getIV();</b>
    -<b class="nc">&nbsp;        } catch (InvalidParameterSpecException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        if (iv.length != IV_LENGTH) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Bad initialization vector&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ByteBuffer output = ByteBuffer.allocate(input.remaining() * 2);</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            cipher.doFinal(input, output);</b>
    -<b class="nc">&nbsp;        } catch (ShortBufferException | IllegalBlockSizeException | BadPaddingException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return new EncryptionResult(iv, (ByteBuffer) output.flip());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static byte[] sha256(byte[] input) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return MessageDigest.getInstance(SHA_256_ALGORITHM).digest(input);</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static byte[] sha1(ByteBuffer input) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            final MessageDigest digest = MessageDigest.getInstance(SHA_1_ALGORITHM);</b>
    -<b class="fc">&nbsp;            digest.update(input);</b>
    -<b class="fc">&nbsp;            final byte[] output = digest.digest();</b>
    -<b class="fc">&nbsp;            if (output.length != SHA1_LENGTH) {</b>
    -<b class="nc">&nbsp;                throw new IllegalStateException(&quot;Bad SHA1 hash&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return output;</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class EncryptionResult {</b>
    -&nbsp;
    -&nbsp;        private final byte[] iv;
    -&nbsp;        private final ByteBuffer output;
    -&nbsp;
    -<b class="fc">&nbsp;        private EncryptionResult(byte[] iv, ByteBuffer output) {</b>
    -<b class="fc">&nbsp;            this.iv = iv;</b>
    -<b class="fc">&nbsp;            this.output = output;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-4.html
    deleted file mode 100644
    index f830c68fca..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-4.html
    +++ /dev/null
    @@ -1,150 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Sanitize</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Sanitize (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Sanitize</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Naming_schema&gt;Collectd naming schema&lt;/a&gt;
    -&nbsp; */
    -&nbsp;class Sanitize {
    -&nbsp;
    -&nbsp;    static final int DEFAULT_MAX_LENGTH = 63;
    -&nbsp;
    -&nbsp;    private static final char DASH = &#39;-&#39;;
    -&nbsp;    private static final char SLASH = &#39;/&#39;;
    -&nbsp;    private static final char NULL = &#39;\0&#39;;
    -&nbsp;    private static final char UNDERSCORE = &#39;_&#39;;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final List&lt;Character&gt; INSTANCE_RESERVED = Arrays.asList(SLASH, NULL);</b>
    -<b class="fc">&nbsp;    private static final List&lt;Character&gt; NAME_RESERVED = Arrays.asList(DASH, SLASH, NULL);</b>
    -&nbsp;
    -&nbsp;    private final int maxLength;
    -&nbsp;
    -<b class="fc">&nbsp;    Sanitize(int maxLength) {</b>
    -<b class="fc">&nbsp;        this.maxLength = maxLength;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String name(String name) {
    -<b class="fc">&nbsp;        return sanitize(name, NAME_RESERVED);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String instanceName(String instanceName) {
    -<b class="fc">&nbsp;        return sanitize(instanceName, INSTANCE_RESERVED);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String sanitize(String string, List&lt;Character&gt; reservedChars) {
    -<b class="fc">&nbsp;        final StringBuilder buffer = new StringBuilder(string.length());</b>
    -<b class="fc">&nbsp;        final int len = Math.min(string.length(), maxLength);</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; len; i++) {</b>
    -<b class="fc">&nbsp;            final char c = string.charAt(i);</b>
    -<b class="fc">&nbsp;            final boolean legal = ((int) c) &lt; 128 &amp;&amp; !reservedChars.contains(c);</b>
    -<b class="fc">&nbsp;            buffer.append(legal ? c : UNDERSCORE);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return buffer.toString();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-5.html
    deleted file mode 100644
    index 014f0e2f3a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-5.html
    +++ /dev/null
    @@ -1,134 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SecurityConfiguration</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SecurityConfiguration (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SecurityConfiguration</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;public class SecurityConfiguration {
    -&nbsp;
    -&nbsp;    private final byte[] username;
    -&nbsp;    private final byte[] password;
    -&nbsp;    private final SecurityLevel securityLevel;
    -&nbsp;
    -<b class="fc">&nbsp;    public SecurityConfiguration(byte[] username, byte[] password, SecurityLevel securityLevel) {</b>
    -<b class="fc">&nbsp;        this.username = username;</b>
    -<b class="fc">&nbsp;        this.password = password;</b>
    -<b class="fc">&nbsp;        this.securityLevel = securityLevel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static SecurityConfiguration none() {
    -<b class="fc">&nbsp;        return new SecurityConfiguration(null, null, SecurityLevel.NONE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public byte[] getUsername() {
    -<b class="fc">&nbsp;        return username;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public byte[] getPassword() {
    -<b class="fc">&nbsp;        return password;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public SecurityLevel getSecurityLevel() {
    -<b class="fc">&nbsp;        return securityLevel;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-6.html
    deleted file mode 100644
    index 21344792bb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-6.html
    +++ /dev/null
    @@ -1,112 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SecurityLevel</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SecurityLevel (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SecurityLevel</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -<b class="fc">&nbsp;public enum SecurityLevel {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    NONE,</b>
    -<b class="fc">&nbsp;    SIGN,</b>
    -<b class="fc">&nbsp;    ENCRYPT</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-7.html
    deleted file mode 100644
    index cdaad9edbb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-6/sources/source-7.html
    +++ /dev/null
    @@ -1,154 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Sender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Sender (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Sender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.channels.DatagramChannel;
    -&nbsp;
    -&nbsp;public class Sender {
    -&nbsp;
    -&nbsp;    private final String host;
    -&nbsp;    private final int port;
    -&nbsp;
    -&nbsp;    private InetSocketAddress address;
    -&nbsp;    private DatagramChannel channel;
    -&nbsp;
    -<b class="fc">&nbsp;    public Sender(String host, int port) {</b>
    -<b class="fc">&nbsp;        this.host = host;</b>
    -<b class="fc">&nbsp;        this.port = port;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void connect() throws IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (host != null) {</b>
    -<b class="fc">&nbsp;            address = new InetSocketAddress(host, port);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        channel = DatagramChannel.open();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return channel != null &amp;&amp; !channel.socket().isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void send(ByteBuffer buffer) throws IOException {
    -<b class="fc">&nbsp;        channel.send(buffer, address);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void disconnect() throws IOException {
    -<b class="fc">&nbsp;        if (channel == null) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;        try {
    -<b class="fc">&nbsp;            channel.close();</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            channel = null;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index.html
    deleted file mode 100644
    index cc157b84ac..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index e7f8755a2a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index f9c7cfbff6..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 8f0c0fa381..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index ba8d696c4a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE.html
    deleted file mode 100644
    index ac2727431f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 7a29e9864e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 4004aba9da..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index f065a966c7..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 916dce487c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-1.html
    deleted file mode 100644
    index ccc494583a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-1.html
    +++ /dev/null
    @@ -1,128 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedCacheDecoratorFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.ehcache</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedCacheDecoratorFactory (com.codahale.metrics.ehcache)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedCacheDecoratorFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.ehcache;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import net.sf.ehcache.Ehcache;
    -&nbsp;import net.sf.ehcache.constructs.CacheDecoratorFactory;
    -&nbsp;
    -&nbsp;import java.util.Properties;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedCacheDecoratorFactory extends CacheDecoratorFactory {</b>
    -&nbsp;    @Override
    -&nbsp;    public Ehcache createDecoratedEhcache(Ehcache cache, Properties properties) {
    -<b class="fc">&nbsp;        final String name = properties.getProperty(&quot;metric-registry-name&quot;);</b>
    -<b class="fc">&nbsp;        final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);</b>
    -<b class="fc">&nbsp;        return InstrumentedEhcache.instrument(registry, cache);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Ehcache createDefaultDecoratedEhcache(Ehcache cache, Properties properties) {
    -<b class="nc">&nbsp;        final String name = properties.getProperty(&quot;metric-registry-name&quot;);</b>
    -<b class="nc">&nbsp;        final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);</b>
    -<b class="nc">&nbsp;        return InstrumentedEhcache.instrument(registry, cache);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-2.html
    deleted file mode 100644
    index 66f320d723..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-2.html
    +++ /dev/null
    @@ -1,335 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedEhcache</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.ehcache</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedEhcache (com.codahale.metrics.ehcache)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedEhcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.ehcache;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import net.sf.ehcache.CacheException;
    -&nbsp;import net.sf.ehcache.Ehcache;
    -&nbsp;import net.sf.ehcache.Element;
    -&nbsp;import net.sf.ehcache.constructs.EhcacheDecoratorAdapter;
    -&nbsp;import net.sf.ehcache.statistics.StatisticsGateway;
    -&nbsp;
    -&nbsp;import java.io.Serializable;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An instrumented {@link Ehcache} instance.
    -&nbsp; */
    -&nbsp;public class InstrumentedEhcache extends EhcacheDecoratorAdapter {
    -&nbsp;    /**
    -&nbsp;     * Instruments the given {@link Ehcache} instance with get and put timers
    -&nbsp;     * and a set of gauges for Ehcache&#39;s built-in statistics:
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * &lt;table&gt;
    -&nbsp;     * &lt;caption&gt;Ehcache timered metrics&lt;/caption&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The number of times a requested item was found in the
    -&nbsp;     * cache.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code in-memory-hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was found in the memory
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code off-heap-hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was found in the off-heap
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code on-disk-hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was found in the disk
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the
    -&nbsp;     * cache.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code in-memory-misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the memory
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code off-heap-misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the
    -&nbsp;     * off-heap store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code on-disk-misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the disk
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of elements stored in the cache.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code in-memory-objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of objects in the memory store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code off-heap-objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of objects in the off-heap store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code on-disk-objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of objects in the disk store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code mean-get-time}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The average get time. Because ehcache support JDK1.4.2, each
    -&nbsp;     * get time uses {@link System#currentTimeMillis()}, rather than
    -&nbsp;     * nanoseconds. The accuracy is thus limited.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code mean-search-time}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The average execution time (in milliseconds) within the last
    -&nbsp;     * sample period.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code eviction-count}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The number of cache evictions, since the cache was created,
    -&nbsp;     * or statistics were cleared.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code searches-per-second}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The number of search executions that have completed in the
    -&nbsp;     * last second.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code accuracy}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;A human readable description of the accuracy setting. One of
    -&nbsp;     * &quot;None&quot;, &quot;Best Effort&quot; or &quot;Guaranteed&quot;.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;/table&gt;
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * &lt;b&gt;N.B.: This enables Ehcache&#39;s sampling statistics with an accuracy
    -&nbsp;     * level of &quot;none.&quot;&lt;/b&gt;
    -&nbsp;     *
    -&nbsp;     * @param cache    an {@link Ehcache} instance
    -&nbsp;     * @param registry a {@link MetricRegistry}
    -&nbsp;     * @return an instrumented decorator for {@code cache}
    -&nbsp;     * @see StatisticsGateway
    -&nbsp;     */
    -&nbsp;    public static Ehcache instrument(MetricRegistry registry, final Ehcache cache) {
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = name(cache.getClass(), cache.getName());</b>
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localHeapHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localOffHeapHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localDiskHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localHeapMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localOffHeapMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localDiskMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalHeapSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalOffHeapSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalDiskSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;mean-get-time&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheGetOperation().latency().average().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;mean-search-time&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheSearchOperation().latency().average().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;eviction-count&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheEvictionOperation().count().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;searches-per-second&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheSearchOperation().rate().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;writer-queue-size&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getWriterQueueLength());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return new InstrumentedEhcache(registry, cache);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final Timer getTimer, putTimer;
    -&nbsp;
    -&nbsp;    private InstrumentedEhcache(MetricRegistry registry, Ehcache cache) {
    -<b class="fc">&nbsp;        super(cache);</b>
    -<b class="fc">&nbsp;        this.getTimer = registry.timer(name(cache.getClass(), cache.getName(), &quot;gets&quot;));</b>
    -<b class="fc">&nbsp;        this.putTimer = registry.timer(name(cache.getClass(), cache.getName(), &quot;puts&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Element get(Object key) throws IllegalStateException, CacheException {
    -<b class="nc">&nbsp;        final Timer.Context ctx = getTimer.time();</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            return underlyingCache.get(key);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Element get(Serializable key) throws IllegalStateException, CacheException {
    -<b class="fc">&nbsp;        final Timer.Context ctx = getTimer.time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return underlyingCache.get(key);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void put(Element element) throws IllegalArgumentException, IllegalStateException, CacheException {
    -<b class="fc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            underlyingCache.put(element);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            ctx.stop();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void put(Element element, boolean doNotNotifyCacheReplicators) throws IllegalArgumentException, IllegalStateException, CacheException {
    -<b class="nc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            underlyingCache.put(element, doNotNotifyCacheReplicators);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Element putIfAbsent(Element element) throws NullPointerException {
    -<b class="nc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            return underlyingCache.putIfAbsent(element);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-3.html
    deleted file mode 100644
    index b6073f0586..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-3.html
    +++ /dev/null
    @@ -1,655 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteReporter (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.5%
    -  </span>
    -  <span class="absValue">
    -    (95/105)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">GraphiteReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">GraphiteReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (12/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (31/35)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.Metered;
    -&nbsp;import com.codahale.metrics.MetricAttribute;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.ScheduledReporter;
    -&nbsp;import com.codahale.metrics.Snapshot;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.DoubleFunction;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which publishes metric values to a Graphite server.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://graphite.wikidot.com/&quot;&gt;Graphite - Scalable Realtime Graphing&lt;/a&gt;
    -&nbsp; */
    -<b class="fc">&nbsp;public class GraphiteReporter extends ScheduledReporter {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link GraphiteReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link GraphiteReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link GraphiteReporter} instances. Defaults to not using a prefix, using the
    -&nbsp;     * default clock, converting rates to events/second, converting durations to milliseconds, and
    -&nbsp;     * not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private Clock clock;
    -&nbsp;        private String prefix;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private MetricFilter filter;
    -&nbsp;        private ScheduledExecutorService executor;
    -&nbsp;        private boolean shutdownExecutorOnStop;
    -&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -&nbsp;        private boolean addMetricAttributesAsTags;
    -&nbsp;        private DoubleFunction&lt;String&gt; floatingPointFormatter;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    -<b class="fc">&nbsp;            this.prefix = null;</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;            this.executor = null;</b>
    -<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = Collections.emptySet();</b>
    -<b class="fc">&nbsp;            this.addMetricAttributesAsTags = false;</b>
    -<b class="fc">&nbsp;            this.floatingPointFormatter = DEFAULT_FP_FORMATTER;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -&nbsp;         * Default value is true.
    -&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -&nbsp;         *
    -&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    -&nbsp;         * Default value is null.
    -&nbsp;         * Null value leads to executor will be auto created on start.
    -&nbsp;         *
    -&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given {@link Clock} instance for the time.
    -&nbsp;         *
    -&nbsp;         * @param clock a {@link Clock} instance
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withClock(Clock clock) {
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Prefix all metric names with the given string.
    -&nbsp;         *
    -&nbsp;         * @param prefix the prefix for all metric names
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder prefixedWith(String prefix) {
    -<b class="fc">&nbsp;            this.prefix = prefix;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    -&nbsp;         * See {@link MetricAttribute}.
    -&nbsp;         *
    -&nbsp;         * @param disabledMetricAttributes a set of {@link MetricAttribute}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not metric attributes (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;) should be reported in the traditional dot delimited format or in the tag based format.
    -&nbsp;         * Without tags (default): `my.metric.p99`
    -&nbsp;         * With tags: `my.metric;metricattribute=p99`
    -&nbsp;         *
    -&nbsp;         * Note that this setting only modifies the metric attribute, and will not convert any other portion of the metric name to use tags.
    -&nbsp;         * For mor information on Graphite tag support see https://graphite.readthedocs.io/en/latest/tags.html
    -&nbsp;         * See {@link MetricAttribute}.
    -&nbsp;         *
    -&nbsp;         * @param addMetricAttributesAsTags if true, then metric attributes will be added as tags
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder addMetricAttributesAsTags(boolean addMetricAttributesAsTags) {
    -<b class="fc">&nbsp;            this.addMetricAttributesAsTags = addMetricAttributesAsTags;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use custom floating point formatter.
    -&nbsp;         *
    -&nbsp;         * @param floatingPointFormatter a custom formatter for floating point values
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withFloatingPointFormatter(DoubleFunction&lt;String&gt; floatingPointFormatter) {
    -<b class="fc">&nbsp;            this.floatingPointFormatter = floatingPointFormatter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
    -&nbsp;         * given {@link GraphiteSender}.
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Present for binary compatibility
    -&nbsp;         *
    -&nbsp;         * @param graphite a {@link Graphite}
    -&nbsp;         * @return a {@link GraphiteReporter}
    -&nbsp;         */
    -&nbsp;        public GraphiteReporter build(Graphite graphite) {
    -<b class="fc">&nbsp;            return build((GraphiteSender) graphite);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
    -&nbsp;         * given {@link GraphiteSender}.
    -&nbsp;         *
    -&nbsp;         * @param graphite a {@link GraphiteSender}
    -&nbsp;         * @return a {@link GraphiteReporter}
    -&nbsp;         */
    -&nbsp;        public GraphiteReporter build(GraphiteSender graphite) {
    -<b class="fc">&nbsp;            return new GraphiteReporter(registry,</b>
    -&nbsp;                    graphite,
    -&nbsp;                    clock,
    -&nbsp;                    prefix,
    -&nbsp;                    rateUnit,
    -&nbsp;                    durationUnit,
    -&nbsp;                    filter,
    -&nbsp;                    executor,
    -&nbsp;                    shutdownExecutorOnStop,
    -&nbsp;                    disabledMetricAttributes,
    -&nbsp;                    addMetricAttributesAsTags,
    -&nbsp;                    floatingPointFormatter);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(GraphiteReporter.class);</b>
    -&nbsp;    // the Carbon plaintext format is pretty underspecified, but it seems like it just wants US-formatted digits
    -<b class="fc">&nbsp;    private static final DoubleFunction&lt;String&gt; DEFAULT_FP_FORMATTER = fp -&gt; String.format(Locale.US, &quot;%2.2f&quot;, fp);</b>
    -&nbsp;
    -&nbsp;    private final GraphiteSender graphite;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final boolean addMetricAttributesAsTags;
    -&nbsp;    private final DoubleFunction&lt;String&gt; floatingPointFormatter;
    -&nbsp;  
    -&nbsp;  
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    -&nbsp;     *                                  reporter will report
    -&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    -&nbsp;     *                                  via a transport protocol
    -&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    -&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    -&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    -&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    -&nbsp;     * @param filter                    the filter for which metrics to report
    -&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    -&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    -&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    -&nbsp;     */
    -&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    -&nbsp;                               GraphiteSender graphite,
    -&nbsp;                               Clock clock,
    -&nbsp;                               String prefix,
    -&nbsp;                               TimeUnit rateUnit,
    -&nbsp;                               TimeUnit durationUnit,
    -&nbsp;                               MetricFilter filter,
    -&nbsp;                               ScheduledExecutorService executor,
    -&nbsp;                               boolean shutdownExecutorOnStop,
    -&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="nc">&nbsp;        this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes, false);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    -&nbsp;     *                                  reporter will report
    -&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    -&nbsp;     *                                  via a transport protocol
    -&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    -&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    -&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    -&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    -&nbsp;     * @param filter                    the filter for which metrics to report
    -&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    -&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    -&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    -&nbsp;     * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
    -&nbsp;     */
    -&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    -&nbsp;                               GraphiteSender graphite,
    -&nbsp;                               Clock clock,
    -&nbsp;                               String prefix,
    -&nbsp;                               TimeUnit rateUnit,
    -&nbsp;                               TimeUnit durationUnit,
    -&nbsp;                               MetricFilter filter,
    -&nbsp;                               ScheduledExecutorService executor,
    -&nbsp;                               boolean shutdownExecutorOnStop,
    -&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    -&nbsp;                               boolean addMetricAttributesAsTags) {
    -<b class="fc">&nbsp;        this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes, addMetricAttributesAsTags, DEFAULT_FP_FORMATTER);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    -&nbsp;     *                                  reporter will report
    -&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    -&nbsp;     *                                  via a transport protocol
    -&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    -&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    -&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    -&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    -&nbsp;     * @param filter                    the filter for which metrics to report
    -&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    -&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    -&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    -&nbsp;     * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
    -&nbsp;     * @param floatingPointFormatter    custom floating point formatter
    -&nbsp;     */
    -&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    -&nbsp;                               GraphiteSender graphite,
    -&nbsp;                               Clock clock,
    -&nbsp;                               String prefix,
    -&nbsp;                               TimeUnit rateUnit,
    -&nbsp;                               TimeUnit durationUnit,
    -&nbsp;                               MetricFilter filter,
    -&nbsp;                               ScheduledExecutorService executor,
    -&nbsp;                               boolean shutdownExecutorOnStop,
    -&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    -&nbsp;                               boolean addMetricAttributesAsTags,
    -&nbsp;                               DoubleFunction&lt;String&gt; floatingPointFormatter) {
    -<b class="fc">&nbsp;        super(registry, &quot;graphite-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes);
    -<b class="fc">&nbsp;        this.graphite = graphite;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -<b class="fc">&nbsp;        this.addMetricAttributesAsTags = addMetricAttributesAsTags;</b>
    -<b class="fc">&nbsp;        this.floatingPointFormatter = floatingPointFormatter;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        final long timestamp = clock.getTime() / 1000;</b>
    -&nbsp;
    -&nbsp;        // oh it&#39;d be lovely to use Java 7 here
    -&nbsp;        try {
    -<b class="fc">&nbsp;            graphite.connect();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportGauge(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportCounter(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportHistogram(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportMetered(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportTimer(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            graphite.flush();</b>
    -<b class="fc">&nbsp;        } catch (IOException e) {</b>
    -<b class="fc">&nbsp;            LOGGER.warn(&quot;Unable to report to Graphite&quot;, graphite, e);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            try {</b>
    -<b class="fc">&nbsp;                graphite.close();</b>
    -<b class="nc">&nbsp;            } catch (IOException e1) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Error closing Graphite&quot;, graphite, e1);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void stop() {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.stop();</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            try {</b>
    -<b class="fc">&nbsp;                graphite.close();</b>
    -<b class="nc">&nbsp;            } catch (IOException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Error disconnecting from Graphite&quot;, graphite, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportTimer(String name, Timer timer, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MAX, name, convertDuration(snapshot.getMax()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MEAN, name, convertDuration(snapshot.getMean()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MIN, name, convertDuration(snapshot.getMin()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(STDDEV, name, convertDuration(snapshot.getStdDev()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P50, name, convertDuration(snapshot.getMedian()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P75, name, convertDuration(snapshot.get75thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P95, name, convertDuration(snapshot.get95thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P98, name, convertDuration(snapshot.get98thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P99, name, convertDuration(snapshot.get99thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P999, name, convertDuration(snapshot.get999thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        reportMetered(name, timer, timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportMetered(String name, Metered meter, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        sendIfEnabled(COUNT, name, meter.getCount(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(M1_RATE, name, convertRate(meter.getOneMinuteRate()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(M5_RATE, name, convertRate(meter.getFiveMinuteRate()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(M15_RATE, name, convertRate(meter.getFifteenMinuteRate()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MEAN_RATE, name, convertRate(meter.getMeanRate()), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportHistogram(String name, Histogram histogram, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    -<b class="fc">&nbsp;        sendIfEnabled(COUNT, name, histogram.getCount(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MAX, name, snapshot.getMax(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MEAN, name, snapshot.getMean(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MIN, name, snapshot.getMin(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(STDDEV, name, snapshot.getStdDev(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P50, name, snapshot.getMedian(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P75, name, snapshot.get75thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P95, name, snapshot.get95thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P98, name, snapshot.get98thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P99, name, snapshot.get99thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P999, name, snapshot.get999thPercentile(), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void sendIfEnabled(MetricAttribute type, String name, double value, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void sendIfEnabled(MetricAttribute type, String name, long value, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportCounter(String name, Counter counter, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, COUNT.getCode())), format(counter.getCount()), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportGauge(String name, Gauge&lt;?&gt; gauge, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        final String value = format(gauge.getValue());</b>
    -<b class="fc">&nbsp;        if (value != null) {</b>
    -<b class="fc">&nbsp;            graphite.send(prefix(name), value, timestamp);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String format(Object o) {
    -<b class="fc">&nbsp;        if (o instanceof Float) {</b>
    -<b class="fc">&nbsp;            return format(((Float) o).doubleValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Double) {</b>
    -<b class="fc">&nbsp;            return format(((Double) o).doubleValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Byte) {</b>
    -<b class="fc">&nbsp;            return format(((Byte) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Short) {</b>
    -<b class="fc">&nbsp;            return format(((Short) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Integer) {</b>
    -<b class="fc">&nbsp;            return format(((Integer) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Long) {</b>
    -<b class="fc">&nbsp;            return format(((Long) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Number) {</b>
    -<b class="nc">&nbsp;            return format(((Number) o).doubleValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Boolean) {</b>
    -<b class="fc">&nbsp;            return format(((Boolean) o) ? 1 : 0);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return null;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String prefix(String name) {
    -<b class="fc">&nbsp;        return MetricRegistry.name(prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String appendMetricAttribute(String name, String metricAttribute){
    -<b class="fc">&nbsp;        if (addMetricAttributesAsTags){</b>
    -<b class="fc">&nbsp;            return name + &quot;;metricattribute=&quot; + metricAttribute;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return name + &quot;.&quot; + metricAttribute;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String format(long n) {
    -<b class="fc">&nbsp;        return Long.toString(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String format(double v) {
    -<b class="fc">&nbsp;        return floatingPointFormatter.apply(v);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-4.html
    deleted file mode 100644
    index bbaf98d97c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-4.html
    +++ /dev/null
    @@ -1,120 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteSanitize</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteSanitize (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteSanitize</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -<b class="nc">&nbsp;class GraphiteSanitize {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    -&nbsp;    private static final String DASH = &quot;-&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Trims the string and replaces all whitespace characters with the provided symbol
    -&nbsp;     */
    -&nbsp;    static String sanitize(String string) {
    -<b class="fc">&nbsp;        return WHITESPACE.matcher(string.trim()).replaceAll(DASH);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-5.html
    deleted file mode 100644
    index 6298572cd2..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-5.html
    +++ /dev/null
    @@ -1,222 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteUDP</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteUDP (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteUDP</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.net.InetAddress;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.channels.DatagramChannel;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A client to a Carbon server using unconnected UDP
    -&nbsp; */
    -&nbsp;public class GraphiteUDP implements GraphiteSender {
    -&nbsp;
    -&nbsp;    private final String hostname;
    -&nbsp;    private final int port;
    -&nbsp;    private InetSocketAddress address;
    -&nbsp;
    -<b class="fc">&nbsp;    private DatagramChannel datagramChannel = null;</b>
    -&nbsp;    private int failures;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which sends data to given address using UDP
    -&nbsp;     *
    -&nbsp;     * @param hostname The hostname of the Carbon server
    -&nbsp;     * @param port     The port of the Carbon server
    -&nbsp;     */
    -<b class="fc">&nbsp;    public GraphiteUDP(String hostname, int port) {</b>
    -<b class="fc">&nbsp;        this.hostname = hostname;</b>
    -<b class="fc">&nbsp;        this.port = port;</b>
    -<b class="fc">&nbsp;        this.address = null;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which sends data to given address using UDP
    -&nbsp;     *
    -&nbsp;     * @param address the address of the Carbon server
    -&nbsp;     */
    -<b class="nc">&nbsp;    public GraphiteUDP(InetSocketAddress address) {</b>
    -<b class="nc">&nbsp;        this.hostname = null;</b>
    -<b class="nc">&nbsp;        this.port = -1;</b>
    -<b class="nc">&nbsp;        this.address = address;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        // Resolve hostname
    -<b class="fc">&nbsp;        if (hostname != null) {</b>
    -<b class="fc">&nbsp;            address = new InetSocketAddress(InetAddress.getByName(hostname), port);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        datagramChannel = DatagramChannel.open();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return datagramChannel != null &amp;&amp; !datagramChannel.socket().isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            String str = sanitize(name) + &#39; &#39; + sanitize(value) + &#39; &#39; + Long.toString(timestamp) + &#39;\n&#39;;</b>
    -<b class="fc">&nbsp;            ByteBuffer byteBuffer = ByteBuffer.wrap(str.getBytes(UTF_8));</b>
    -<b class="fc">&nbsp;            datagramChannel.send(byteBuffer, address);</b>
    -<b class="fc">&nbsp;            this.failures = 0;</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            failures++;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="nc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -&nbsp;        // Nothing to do
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -<b class="nc">&nbsp;        if (datagramChannel != null) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                datagramChannel.close();</b>
    -&nbsp;            } finally {
    -<b class="nc">&nbsp;                datagramChannel = null;</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String s) {
    -<b class="fc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    DatagramChannel getDatagramChannel() {
    -<b class="nc">&nbsp;        return datagramChannel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void setDatagramChannel(DatagramChannel datagramChannel) {
    -<b class="fc">&nbsp;        this.datagramChannel = datagramChannel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    InetSocketAddress getAddress() {
    -<b class="nc">&nbsp;        return address;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void setAddress(InetSocketAddress address) {
    -<b class="fc">&nbsp;        this.address = address;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-6.html
    deleted file mode 100644
    index c794350dc8..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-6.html
    +++ /dev/null
    @@ -1,467 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PickledGraphite</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PickledGraphite (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PickledGraphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.2%
    -  </span>
    -  <span class="absValue">
    -    (4/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.5%
    -  </span>
    -  <span class="absValue">
    -    (15/91)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">PickledGraphite$MetricTuple</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import javax.net.SocketFactory;
    -&nbsp;
    -&nbsp;import java.io.BufferedWriter;
    -&nbsp;import java.io.ByteArrayOutputStream;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.Writer;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.net.Socket;
    -&nbsp;import java.net.UnknownHostException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.charset.Charset;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A client to a Carbon server that sends all metrics after they have been pickled in configurable sized batches
    -&nbsp; */
    -&nbsp;public class PickledGraphite implements GraphiteSender {
    -&nbsp;
    -&nbsp;    static class MetricTuple {
    -&nbsp;        String name;
    -&nbsp;        long timestamp;
    -&nbsp;        String value;
    -&nbsp;
    -<b class="nc">&nbsp;        MetricTuple(String name, long timestamp, String value) {</b>
    -<b class="nc">&nbsp;            this.name = name;</b>
    -<b class="nc">&nbsp;            this.timestamp = timestamp;</b>
    -<b class="nc">&nbsp;            this.value = value;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Minimally necessary pickle opcodes.
    -&nbsp;     */
    -&nbsp;    private static final char
    -&nbsp;            MARK = &#39;(&#39;,
    -&nbsp;            STOP = &#39;.&#39;,
    -&nbsp;            LONG = &#39;L&#39;,
    -&nbsp;            STRING = &#39;S&#39;,
    -&nbsp;            APPEND = &#39;a&#39;,
    -&nbsp;            LIST = &#39;l&#39;,
    -&nbsp;            TUPLE = &#39;t&#39;,
    -&nbsp;            QUOTE = &#39;\&#39;&#39;,
    -&nbsp;            LF = &#39;\n&#39;;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(PickledGraphite.class);</b>
    -&nbsp;    private final static int DEFAULT_BATCH_SIZE = 100;
    -&nbsp;
    -&nbsp;    private int batchSize;
    -&nbsp;    // graphite expects a python-pickled list of nested tuples.
    -<b class="fc">&nbsp;    private List&lt;MetricTuple&gt; metrics = new ArrayList&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final String hostname;
    -&nbsp;    private final int port;
    -&nbsp;    private final InetSocketAddress address;
    -&nbsp;    private final SocketFactory socketFactory;
    -&nbsp;    private final Charset charset;
    -&nbsp;
    -&nbsp;    private Socket socket;
    -&nbsp;    private Writer writer;
    -&nbsp;    private int failures;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
    -&nbsp;     * to a batchSize of 100
    -&nbsp;     *
    -&nbsp;     * @param address the address of the Carbon server
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(InetSocketAddress address) {
    -<b class="nc">&nbsp;        this(address, DEFAULT_BATCH_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param address   the address of the Carbon server
    -&nbsp;     * @param batchSize how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(InetSocketAddress address, int batchSize) {
    -<b class="nc">&nbsp;        this(address, SocketFactory.getDefault(), batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, int batchSize) {
    -<b class="nc">&nbsp;        this(address, socketFactory, UTF_8, batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given character set.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -<b class="fc">&nbsp;    public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset, int batchSize) {</b>
    -<b class="fc">&nbsp;        this.address = address;</b>
    -<b class="fc">&nbsp;        this.hostname = null;</b>
    -<b class="fc">&nbsp;        this.port = -1;</b>
    -<b class="fc">&nbsp;        this.socketFactory = socketFactory;</b>
    -<b class="fc">&nbsp;        this.charset = charset;</b>
    -<b class="fc">&nbsp;        this.batchSize = batchSize;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
    -&nbsp;     * to a batchSize of 100
    -&nbsp;     *
    -&nbsp;     * @param hostname the hostname of the Carbon server
    -&nbsp;     * @param port     the port of the Carbon server
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(String hostname, int port) {
    -<b class="nc">&nbsp;        this(hostname, port, DEFAULT_BATCH_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param hostname  the hostname of the Carbon server
    -&nbsp;     * @param port      the port of the Carbon server
    -&nbsp;     * @param batchSize how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(String hostname, int port, int batchSize) {
    -<b class="nc">&nbsp;        this(hostname, port, SocketFactory.getDefault(), batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param hostname      the hostname of the Carbon server
    -&nbsp;     * @param port          the port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(String hostname, int port, SocketFactory socketFactory, int batchSize) {
    -<b class="nc">&nbsp;        this(hostname, port, socketFactory, UTF_8, batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given character set.
    -&nbsp;     *
    -&nbsp;     * @param hostname      the hostname of the Carbon server
    -&nbsp;     * @param port          the port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -<b class="nc">&nbsp;    public PickledGraphite(String hostname, int port, SocketFactory socketFactory, Charset charset, int batchSize) {</b>
    -<b class="nc">&nbsp;        this.address = null;</b>
    -<b class="nc">&nbsp;        this.hostname = hostname;</b>
    -<b class="nc">&nbsp;        this.port = port;</b>
    -<b class="nc">&nbsp;        this.socketFactory = socketFactory;</b>
    -<b class="nc">&nbsp;        this.charset = charset;</b>
    -<b class="nc">&nbsp;        this.batchSize = batchSize;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        InetSocketAddress address = this.address;</b>
    -<b class="fc">&nbsp;        if (address == null) {</b>
    -<b class="nc">&nbsp;            address = new InetSocketAddress(hostname, port);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (address.getAddress() == null) {</b>
    -<b class="fc">&nbsp;            throw new UnknownHostException(address.getHostName());</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());</b>
    -<b class="nc">&nbsp;        this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return socket != null &amp;&amp; socket.isConnected() &amp;&amp; !socket.isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Convert the metric to a python tuple of the form:
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * (timestamp, (name, value))
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * And add it to the list of metrics. If we reach the batch size, write them out.
    -&nbsp;     *
    -&nbsp;     * @param name      the name of the metric
    -&nbsp;     * @param value     the value of the metric
    -&nbsp;     * @param timestamp the timestamp of the metric
    -&nbsp;     * @throws IOException if there was an error sending the metric
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -<b class="nc">&nbsp;        metrics.add(new MetricTuple(sanitize(name), timestamp, sanitize(value)));</b>
    -&nbsp;
    -<b class="nc">&nbsp;        if (metrics.size() &gt;= batchSize) {</b>
    -<b class="nc">&nbsp;            writeMetrics();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -<b class="nc">&nbsp;        writeMetrics();</b>
    -<b class="nc">&nbsp;        if (writer != null) {</b>
    -<b class="nc">&nbsp;            writer.flush();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -&nbsp;        try {
    -<b class="nc">&nbsp;            flush();</b>
    -<b class="nc">&nbsp;            if (writer != null) {</b>
    -<b class="nc">&nbsp;                writer.close();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    -<b class="nc">&nbsp;            if (socket != null) {</b>
    -<b class="nc">&nbsp;                socket.close();</b>
    -&nbsp;            }
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            this.socket = null;</b>
    -<b class="nc">&nbsp;            this.writer = null;</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="nc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * 1. Run the pickler script to package all the pending metrics into a single message
    -&nbsp;     * 2. Send the message to graphite
    -&nbsp;     * 3. Clear out the list of metrics
    -&nbsp;     */
    -&nbsp;    private void writeMetrics() throws IOException {
    -<b class="nc">&nbsp;        if (metrics.size() &gt; 0) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                byte[] payload = pickleMetrics(metrics);</b>
    -<b class="nc">&nbsp;                byte[] header = ByteBuffer.allocate(4).putInt(payload.length).array();</b>
    -&nbsp;
    -&nbsp;                @SuppressWarnings(&quot;resource&quot;)
    -<b class="nc">&nbsp;                OutputStream outputStream = socket.getOutputStream();</b>
    -<b class="nc">&nbsp;                outputStream.write(header);</b>
    -<b class="nc">&nbsp;                outputStream.write(payload);</b>
    -<b class="nc">&nbsp;                outputStream.flush();</b>
    -&nbsp;
    -<b class="nc">&nbsp;                if (LOGGER.isDebugEnabled()) {</b>
    -<b class="nc">&nbsp;                    LOGGER.debug(&quot;Wrote {} metrics&quot;, metrics.size());</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (IOException e) {</b>
    -<b class="nc">&nbsp;                this.failures++;</b>
    -<b class="nc">&nbsp;                throw e;</b>
    -&nbsp;            } finally {
    -&nbsp;                // if there was an error, we might miss some data. for now, drop those on the floor and
    -&nbsp;                // try to keep going.
    -<b class="nc">&nbsp;                metrics.clear();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * See: http://readthedocs.org/docs/graphite/en/1.0/feeding-carbon.html
    -&nbsp;     *
    -&nbsp;     * @throws IOException shouldn&#39;t happen because we write to memory.
    -&nbsp;     */
    -&nbsp;    byte[] pickleMetrics(List&lt;MetricTuple&gt; metrics) throws IOException {
    -&nbsp;        // Extremely rough estimate of 75 bytes per message
    -<b class="nc">&nbsp;        ByteArrayOutputStream out = new ByteArrayOutputStream(metrics.size() * 75);</b>
    -<b class="nc">&nbsp;        Writer pickled = new OutputStreamWriter(out, charset);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        pickled.append(MARK);</b>
    -<b class="nc">&nbsp;        pickled.append(LIST);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        for (MetricTuple tuple : metrics) {</b>
    -&nbsp;            // start the outer tuple
    -<b class="nc">&nbsp;            pickled.append(MARK);</b>
    -&nbsp;
    -&nbsp;            // the metric name is a string.
    -<b class="nc">&nbsp;            pickled.append(STRING);</b>
    -&nbsp;            // the single quotes are to match python&#39;s repr(&quot;abcd&quot;)
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(tuple.name);</b>
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(LF);</b>
    -&nbsp;
    -&nbsp;            // start the inner tuple
    -<b class="nc">&nbsp;            pickled.append(MARK);</b>
    -&nbsp;
    -&nbsp;            // timestamp is a long
    -<b class="nc">&nbsp;            pickled.append(LONG);</b>
    -<b class="nc">&nbsp;            pickled.append(Long.toString(tuple.timestamp));</b>
    -&nbsp;            // the trailing L is to match python&#39;s repr(long(1234))
    -<b class="nc">&nbsp;            pickled.append(LONG);</b>
    -<b class="nc">&nbsp;            pickled.append(LF);</b>
    -&nbsp;
    -&nbsp;            // and the value is a string.
    -<b class="nc">&nbsp;            pickled.append(STRING);</b>
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(tuple.value);</b>
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(LF);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            pickled.append(TUPLE); // inner close</b>
    -<b class="nc">&nbsp;            pickled.append(TUPLE); // outer close</b>
    -&nbsp;
    -<b class="nc">&nbsp;            pickled.append(APPEND);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        // every pickle ends with STOP
    -<b class="nc">&nbsp;        pickled.append(STOP);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        pickled.flush();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return out.toByteArray();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String s) {
    -<b class="nc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-7.html
    deleted file mode 100644
    index 26ce0d9437..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-7/sources/source-7.html
    +++ /dev/null
    @@ -1,113 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteSender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteSender (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteSender</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import java.io.Closeable;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;public interface GraphiteSender extends Closeable {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Connects to the server.
    -&nbsp;     *
    -&nbsp;     * @throws IllegalStateException if the client is already connected
    -&nbsp;     * @throws IOException           if there is an error connecting
    -&nbsp;     */
    -&nbsp;    void connect() throws IllegalStateException, IOException;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Sends the given measurement to the server.
    -&nbsp;     *
    -&nbsp;     * @param name      the name of the metric
    -&nbsp;     * @param value     the value of the metric
    -&nbsp;     * @param timestamp the timestamp of the metric
    -&nbsp;     * @throws IOException if there was an error sending the metric
    -&nbsp;     */
    -&nbsp;    void send(String name, String value, long timestamp) throws IOException;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Flushes buffer, if applicable
    -&nbsp;     *
    -&nbsp;     * @throws IOException if there was an error during flushing metrics to the socket
    -&nbsp;     */
    -&nbsp;    void flush() throws IOException;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns true if ready to send data
    -&nbsp;     */
    -&nbsp;    boolean isConnected();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of failed writes to the server.
    -&nbsp;     *
    -&nbsp;     * @return the number of failed writes to the server
    -&nbsp;     */
    -&nbsp;    int getFailures();
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index.html
    deleted file mode 100644
    index 5a9f5406f5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 7fdf117af3..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 699db8c296..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 6618e42f6a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 33787111b6..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE.html
    deleted file mode 100644
    index c5a8aa1363..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 8f92db35a3..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 70ab2a5d9e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 5c2b7ee3a1..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index dbaac01213..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-1.html
    deleted file mode 100644
    index 0d08f9f12e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-1.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Graphite</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Graphite (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import javax.net.SocketFactory;
    -&nbsp;import java.io.BufferedWriter;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.Writer;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.net.Socket;
    -&nbsp;import java.net.UnknownHostException;
    -&nbsp;import java.nio.charset.Charset;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A client to a Carbon server via TCP.
    -&nbsp; */
    -&nbsp;public class Graphite implements GraphiteSender {
    -&nbsp;    // this may be optimistic about Carbon/Graphite
    -&nbsp;
    -&nbsp;    private final String hostname;
    -&nbsp;    private final int port;
    -&nbsp;    private final InetSocketAddress address;
    -&nbsp;    private final SocketFactory socketFactory;
    -&nbsp;    private final Charset charset;
    -&nbsp;
    -&nbsp;    private Socket socket;
    -&nbsp;    private Writer writer;
    -&nbsp;    private int failures;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(Graphite.class);</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default
    -&nbsp;     * {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param hostname The hostname of the Carbon server
    -&nbsp;     * @param port     The port of the Carbon server
    -&nbsp;     */
    -&nbsp;    public Graphite(String hostname, int port) {
    -<b class="nc">&nbsp;        this(hostname, port, SocketFactory.getDefault());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param hostname      The hostname of the Carbon server
    -&nbsp;     * @param port          The port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     */
    -&nbsp;    public Graphite(String hostname, int port, SocketFactory socketFactory) {
    -<b class="fc">&nbsp;        this(hostname, port, socketFactory, UTF_8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given
    -&nbsp;     * character set.
    -&nbsp;     *
    -&nbsp;     * @param hostname      The hostname of the Carbon server
    -&nbsp;     * @param port          The port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     */
    -<b class="fc">&nbsp;    public Graphite(String hostname, int port, SocketFactory socketFactory, Charset charset) {</b>
    -<b class="fc">&nbsp;        if (hostname == null || hostname.isEmpty()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;hostname must not be null or empty&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (port &lt; 0 || port &gt; 65535) {</b>
    -<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;port must be a valid IP port (0-65535)&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.hostname = hostname;</b>
    -<b class="fc">&nbsp;        this.port = port;</b>
    -<b class="fc">&nbsp;        this.address = null;</b>
    -<b class="fc">&nbsp;        this.socketFactory = requireNonNull(socketFactory, &quot;socketFactory must not be null&quot;);</b>
    -<b class="fc">&nbsp;        this.charset = requireNonNull(charset, &quot;charset must not be null&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default
    -&nbsp;     * {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param address the address of the Carbon server
    -&nbsp;     */
    -&nbsp;    public Graphite(InetSocketAddress address) {
    -<b class="nc">&nbsp;        this(address, SocketFactory.getDefault());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     */
    -&nbsp;    public Graphite(InetSocketAddress address, SocketFactory socketFactory) {
    -<b class="fc">&nbsp;        this(address, socketFactory, UTF_8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given
    -&nbsp;     * character set.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     */
    -<b class="fc">&nbsp;    public Graphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset) {</b>
    -<b class="fc">&nbsp;        this.hostname = null;</b>
    -<b class="fc">&nbsp;        this.port = -1;</b>
    -<b class="fc">&nbsp;        this.address = requireNonNull(address, &quot;address must not be null&quot;);</b>
    -<b class="fc">&nbsp;        this.socketFactory = requireNonNull(socketFactory, &quot;socketFactory must not be null&quot;);</b>
    -<b class="fc">&nbsp;        this.charset = requireNonNull(charset, &quot;charset must not be null&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        InetSocketAddress address = this.address;</b>
    -&nbsp;        // the previous dns retry logic did not work, as address.getAddress would always return the cached value
    -&nbsp;        // this version of the simplified logic will always cause a dns request if hostname has been supplied.
    -&nbsp;        // InetAddress.getByName forces the dns lookup
    -&nbsp;        // if an InetSocketAddress was supplied at create time that will take precedence.
    -<b class="fc">&nbsp;        if (address == null || address.getHostName() == null &amp;&amp; hostname != null) {</b>
    -<b class="fc">&nbsp;            address = new InetSocketAddress(hostname, port);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (address.getAddress() == null) {</b>
    -<b class="fc">&nbsp;            throw new UnknownHostException(address.getHostName());</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());</b>
    -<b class="nc">&nbsp;        this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return socket != null &amp;&amp; socket.isConnected() &amp;&amp; !socket.isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -&nbsp;        try {
    -<b class="nc">&nbsp;            writer.write(sanitize(name));</b>
    -<b class="nc">&nbsp;            writer.write(&#39; &#39;);</b>
    -<b class="nc">&nbsp;            writer.write(sanitize(value));</b>
    -<b class="nc">&nbsp;            writer.write(&#39; &#39;);</b>
    -<b class="nc">&nbsp;            writer.write(Long.toString(timestamp));</b>
    -<b class="nc">&nbsp;            writer.write(&#39;\n&#39;);</b>
    -<b class="nc">&nbsp;            this.failures = 0;</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            failures++;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="fc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -<b class="nc">&nbsp;        if (writer != null) {</b>
    -<b class="nc">&nbsp;            writer.flush();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            if (writer != null) {</b>
    -<b class="nc">&nbsp;                writer.close();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    -<b class="nc">&nbsp;            LOGGER.debug(&quot;Error closing writer&quot;, ex);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            this.writer = null;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            if (socket != null) {</b>
    -<b class="nc">&nbsp;                socket.close();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    -<b class="nc">&nbsp;            LOGGER.debug(&quot;Error closing socket&quot;, ex);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            this.socket = null;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String s) {
    -<b class="nc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-2.html
    deleted file mode 100644
    index 04988c3098..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-2.html
    +++ /dev/null
    @@ -1,293 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteRabbitMQ</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteRabbitMQ (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteRabbitMQ</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.2%
    -  </span>
    -  <span class="absValue">
    -    (24/38)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">GraphiteRabbitMQ$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import com.rabbitmq.client.Channel;
    -&nbsp;import com.rabbitmq.client.Connection;
    -&nbsp;import com.rabbitmq.client.ConnectionFactory;
    -&nbsp;import com.rabbitmq.client.DefaultSocketConfigurator;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.Socket;
    -&nbsp;import java.util.concurrent.TimeoutException;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A rabbit-mq client to a Carbon server.
    -&nbsp; */
    -&nbsp;public class GraphiteRabbitMQ implements GraphiteSender {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS = 500;</b>
    -<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_SOCKET_TIMEOUT_MS = 5000;</b>
    -<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC = 10;</b>
    -&nbsp;
    -&nbsp;    private ConnectionFactory connectionFactory;
    -&nbsp;    private Connection connection;
    -&nbsp;    private Channel channel;
    -&nbsp;    private String exchange;
    -&nbsp;
    -&nbsp;    private int failures;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client with a given a {@link com.rabbitmq.client.ConnectionFactory} and an amqp exchange
    -&nbsp;     *
    -&nbsp;     * @param connectionFactory the {@link com.rabbitmq.client.ConnectionFactory} used to establish connection and publish to graphite server
    -&nbsp;     * @param exchange          the amqp exchange
    -&nbsp;     */
    -<b class="fc">&nbsp;    public GraphiteRabbitMQ(final ConnectionFactory connectionFactory, final String exchange) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.exchange = exchange;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client given connection details
    -&nbsp;     *
    -&nbsp;     * @param rabbitHost     the rabbitmq server host
    -&nbsp;     * @param rabbitPort     the rabbitmq server port
    -&nbsp;     * @param rabbitUsername the rabbitmq server username
    -&nbsp;     * @param rabbitPassword the rabbitmq server password
    -&nbsp;     * @param exchange       the amqp exchange
    -&nbsp;     */
    -&nbsp;    public GraphiteRabbitMQ(
    -&nbsp;            final String rabbitHost,
    -&nbsp;            final Integer rabbitPort,
    -&nbsp;            final String rabbitUsername,
    -&nbsp;            final String rabbitPassword,
    -&nbsp;            final String exchange) {
    -&nbsp;
    -<b class="nc">&nbsp;        this(rabbitHost,</b>
    -&nbsp;                rabbitPort,
    -&nbsp;                rabbitUsername,
    -&nbsp;                rabbitPassword,
    -&nbsp;                exchange,
    -&nbsp;                DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS,
    -&nbsp;                DEFAULT_RABBIT_SOCKET_TIMEOUT_MS,
    -&nbsp;                DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client given connection details
    -&nbsp;     *
    -&nbsp;     * @param rabbitHost                        the rabbitmq server host
    -&nbsp;     * @param rabbitPort                        the rabbitmq server port
    -&nbsp;     * @param rabbitUsername                    the rabbitmq server username
    -&nbsp;     * @param rabbitPassword                    the rabbitmq server password
    -&nbsp;     * @param exchange                          the amqp exchange
    -&nbsp;     * @param rabbitConnectionTimeoutMS         the connection timeout in milliseconds
    -&nbsp;     * @param rabbitSocketTimeoutMS             the socket timeout in milliseconds
    -&nbsp;     * @param rabbitRequestedHeartbeatInSeconds the hearthbeat in seconds
    -&nbsp;     */
    -&nbsp;    public GraphiteRabbitMQ(
    -&nbsp;            final String rabbitHost,
    -&nbsp;            final Integer rabbitPort,
    -&nbsp;            final String rabbitUsername,
    -&nbsp;            final String rabbitPassword,
    -&nbsp;            final String exchange,
    -&nbsp;            final Integer rabbitConnectionTimeoutMS,
    -&nbsp;            final Integer rabbitSocketTimeoutMS,
    -<b class="nc">&nbsp;            final Integer rabbitRequestedHeartbeatInSeconds) {</b>
    -&nbsp;
    -<b class="nc">&nbsp;        this.exchange = exchange;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        this.connectionFactory = new ConnectionFactory();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        connectionFactory.setSocketConfigurator(new DefaultSocketConfigurator() {</b>
    -&nbsp;            @Override
    -&nbsp;            public void configure(Socket socket) throws IOException {
    -<b class="nc">&nbsp;                super.configure(socket);</b>
    -<b class="nc">&nbsp;                socket.setSoTimeout(rabbitSocketTimeoutMS);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="nc">&nbsp;        connectionFactory.setConnectionTimeout(rabbitConnectionTimeoutMS);</b>
    -<b class="nc">&nbsp;        connectionFactory.setRequestedHeartbeat(rabbitRequestedHeartbeatInSeconds);</b>
    -<b class="nc">&nbsp;        connectionFactory.setHost(rabbitHost);</b>
    -<b class="nc">&nbsp;        connectionFactory.setPort(rabbitPort);</b>
    -<b class="nc">&nbsp;        connectionFactory.setUsername(rabbitUsername);</b>
    -<b class="nc">&nbsp;        connectionFactory.setPassword(rabbitPassword);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="fc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            connection = connectionFactory.newConnection();</b>
    -<b class="nc">&nbsp;        } catch (TimeoutException e) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        channel = connection.createChannel();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return connection != null &amp;&amp; connection.isOpen();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            final String sanitizedName = sanitize(name);</b>
    -<b class="fc">&nbsp;            final String sanitizedValue = sanitize(value);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final String message = sanitizedName + &#39; &#39; + sanitizedValue + &#39; &#39; + Long.toString(timestamp) + &#39;\n&#39;;</b>
    -<b class="fc">&nbsp;            channel.basicPublish(exchange, sanitizedName, null, message.getBytes(UTF_8));</b>
    -<b class="fc">&nbsp;        } catch (IOException e) {</b>
    -<b class="fc">&nbsp;            failures++;</b>
    -<b class="fc">&nbsp;            throw e;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -&nbsp;        // Nothing to do
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -<b class="fc">&nbsp;        if (connection != null) {</b>
    -<b class="fc">&nbsp;            connection.close();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="fc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String sanitize(String s) {
    -<b class="fc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-3.html
    deleted file mode 100644
    index eb7f7dffc4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-3.html
    +++ /dev/null
    @@ -1,655 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteReporter (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.5%
    -  </span>
    -  <span class="absValue">
    -    (95/105)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">GraphiteReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">GraphiteReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (12/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (31/35)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.Metered;
    -&nbsp;import com.codahale.metrics.MetricAttribute;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.ScheduledReporter;
    -&nbsp;import com.codahale.metrics.Snapshot;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.DoubleFunction;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which publishes metric values to a Graphite server.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://graphite.wikidot.com/&quot;&gt;Graphite - Scalable Realtime Graphing&lt;/a&gt;
    -&nbsp; */
    -<b class="fc">&nbsp;public class GraphiteReporter extends ScheduledReporter {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link GraphiteReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link GraphiteReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link GraphiteReporter} instances. Defaults to not using a prefix, using the
    -&nbsp;     * default clock, converting rates to events/second, converting durations to milliseconds, and
    -&nbsp;     * not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private Clock clock;
    -&nbsp;        private String prefix;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private MetricFilter filter;
    -&nbsp;        private ScheduledExecutorService executor;
    -&nbsp;        private boolean shutdownExecutorOnStop;
    -&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -&nbsp;        private boolean addMetricAttributesAsTags;
    -&nbsp;        private DoubleFunction&lt;String&gt; floatingPointFormatter;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    -<b class="fc">&nbsp;            this.prefix = null;</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;            this.executor = null;</b>
    -<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = Collections.emptySet();</b>
    -<b class="fc">&nbsp;            this.addMetricAttributesAsTags = false;</b>
    -<b class="fc">&nbsp;            this.floatingPointFormatter = DEFAULT_FP_FORMATTER;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -&nbsp;         * Default value is true.
    -&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -&nbsp;         *
    -&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    -&nbsp;         * Default value is null.
    -&nbsp;         * Null value leads to executor will be auto created on start.
    -&nbsp;         *
    -&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given {@link Clock} instance for the time.
    -&nbsp;         *
    -&nbsp;         * @param clock a {@link Clock} instance
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withClock(Clock clock) {
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Prefix all metric names with the given string.
    -&nbsp;         *
    -&nbsp;         * @param prefix the prefix for all metric names
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder prefixedWith(String prefix) {
    -<b class="fc">&nbsp;            this.prefix = prefix;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    -&nbsp;         * See {@link MetricAttribute}.
    -&nbsp;         *
    -&nbsp;         * @param disabledMetricAttributes a set of {@link MetricAttribute}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not metric attributes (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;) should be reported in the traditional dot delimited format or in the tag based format.
    -&nbsp;         * Without tags (default): `my.metric.p99`
    -&nbsp;         * With tags: `my.metric;metricattribute=p99`
    -&nbsp;         *
    -&nbsp;         * Note that this setting only modifies the metric attribute, and will not convert any other portion of the metric name to use tags.
    -&nbsp;         * For mor information on Graphite tag support see https://graphite.readthedocs.io/en/latest/tags.html
    -&nbsp;         * See {@link MetricAttribute}.
    -&nbsp;         *
    -&nbsp;         * @param addMetricAttributesAsTags if true, then metric attributes will be added as tags
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder addMetricAttributesAsTags(boolean addMetricAttributesAsTags) {
    -<b class="fc">&nbsp;            this.addMetricAttributesAsTags = addMetricAttributesAsTags;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use custom floating point formatter.
    -&nbsp;         *
    -&nbsp;         * @param floatingPointFormatter a custom formatter for floating point values
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withFloatingPointFormatter(DoubleFunction&lt;String&gt; floatingPointFormatter) {
    -<b class="fc">&nbsp;            this.floatingPointFormatter = floatingPointFormatter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
    -&nbsp;         * given {@link GraphiteSender}.
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Present for binary compatibility
    -&nbsp;         *
    -&nbsp;         * @param graphite a {@link Graphite}
    -&nbsp;         * @return a {@link GraphiteReporter}
    -&nbsp;         */
    -&nbsp;        public GraphiteReporter build(Graphite graphite) {
    -<b class="fc">&nbsp;            return build((GraphiteSender) graphite);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
    -&nbsp;         * given {@link GraphiteSender}.
    -&nbsp;         *
    -&nbsp;         * @param graphite a {@link GraphiteSender}
    -&nbsp;         * @return a {@link GraphiteReporter}
    -&nbsp;         */
    -&nbsp;        public GraphiteReporter build(GraphiteSender graphite) {
    -<b class="fc">&nbsp;            return new GraphiteReporter(registry,</b>
    -&nbsp;                    graphite,
    -&nbsp;                    clock,
    -&nbsp;                    prefix,
    -&nbsp;                    rateUnit,
    -&nbsp;                    durationUnit,
    -&nbsp;                    filter,
    -&nbsp;                    executor,
    -&nbsp;                    shutdownExecutorOnStop,
    -&nbsp;                    disabledMetricAttributes,
    -&nbsp;                    addMetricAttributesAsTags,
    -&nbsp;                    floatingPointFormatter);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(GraphiteReporter.class);</b>
    -&nbsp;    // the Carbon plaintext format is pretty underspecified, but it seems like it just wants US-formatted digits
    -<b class="fc">&nbsp;    private static final DoubleFunction&lt;String&gt; DEFAULT_FP_FORMATTER = fp -&gt; String.format(Locale.US, &quot;%2.2f&quot;, fp);</b>
    -&nbsp;
    -&nbsp;    private final GraphiteSender graphite;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final boolean addMetricAttributesAsTags;
    -&nbsp;    private final DoubleFunction&lt;String&gt; floatingPointFormatter;
    -&nbsp;  
    -&nbsp;  
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    -&nbsp;     *                                  reporter will report
    -&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    -&nbsp;     *                                  via a transport protocol
    -&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    -&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    -&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    -&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    -&nbsp;     * @param filter                    the filter for which metrics to report
    -&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    -&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    -&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    -&nbsp;     */
    -&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    -&nbsp;                               GraphiteSender graphite,
    -&nbsp;                               Clock clock,
    -&nbsp;                               String prefix,
    -&nbsp;                               TimeUnit rateUnit,
    -&nbsp;                               TimeUnit durationUnit,
    -&nbsp;                               MetricFilter filter,
    -&nbsp;                               ScheduledExecutorService executor,
    -&nbsp;                               boolean shutdownExecutorOnStop,
    -&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="nc">&nbsp;        this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes, false);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    -&nbsp;     *                                  reporter will report
    -&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    -&nbsp;     *                                  via a transport protocol
    -&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    -&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    -&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    -&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    -&nbsp;     * @param filter                    the filter for which metrics to report
    -&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    -&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    -&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    -&nbsp;     * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
    -&nbsp;     */
    -&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    -&nbsp;                               GraphiteSender graphite,
    -&nbsp;                               Clock clock,
    -&nbsp;                               String prefix,
    -&nbsp;                               TimeUnit rateUnit,
    -&nbsp;                               TimeUnit durationUnit,
    -&nbsp;                               MetricFilter filter,
    -&nbsp;                               ScheduledExecutorService executor,
    -&nbsp;                               boolean shutdownExecutorOnStop,
    -&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    -&nbsp;                               boolean addMetricAttributesAsTags) {
    -<b class="fc">&nbsp;        this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes, addMetricAttributesAsTags, DEFAULT_FP_FORMATTER);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    -&nbsp;     *                                  reporter will report
    -&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    -&nbsp;     *                                  via a transport protocol
    -&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    -&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    -&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    -&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    -&nbsp;     * @param filter                    the filter for which metrics to report
    -&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    -&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    -&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    -&nbsp;     * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
    -&nbsp;     * @param floatingPointFormatter    custom floating point formatter
    -&nbsp;     */
    -&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    -&nbsp;                               GraphiteSender graphite,
    -&nbsp;                               Clock clock,
    -&nbsp;                               String prefix,
    -&nbsp;                               TimeUnit rateUnit,
    -&nbsp;                               TimeUnit durationUnit,
    -&nbsp;                               MetricFilter filter,
    -&nbsp;                               ScheduledExecutorService executor,
    -&nbsp;                               boolean shutdownExecutorOnStop,
    -&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    -&nbsp;                               boolean addMetricAttributesAsTags,
    -&nbsp;                               DoubleFunction&lt;String&gt; floatingPointFormatter) {
    -<b class="fc">&nbsp;        super(registry, &quot;graphite-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes);
    -<b class="fc">&nbsp;        this.graphite = graphite;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -<b class="fc">&nbsp;        this.addMetricAttributesAsTags = addMetricAttributesAsTags;</b>
    -<b class="fc">&nbsp;        this.floatingPointFormatter = floatingPointFormatter;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        final long timestamp = clock.getTime() / 1000;</b>
    -&nbsp;
    -&nbsp;        // oh it&#39;d be lovely to use Java 7 here
    -&nbsp;        try {
    -<b class="fc">&nbsp;            graphite.connect();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportGauge(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportCounter(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportHistogram(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportMetered(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportTimer(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            graphite.flush();</b>
    -<b class="fc">&nbsp;        } catch (IOException e) {</b>
    -<b class="fc">&nbsp;            LOGGER.warn(&quot;Unable to report to Graphite&quot;, graphite, e);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            try {</b>
    -<b class="fc">&nbsp;                graphite.close();</b>
    -<b class="nc">&nbsp;            } catch (IOException e1) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Error closing Graphite&quot;, graphite, e1);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void stop() {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.stop();</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            try {</b>
    -<b class="fc">&nbsp;                graphite.close();</b>
    -<b class="nc">&nbsp;            } catch (IOException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Error disconnecting from Graphite&quot;, graphite, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportTimer(String name, Timer timer, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MAX, name, convertDuration(snapshot.getMax()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MEAN, name, convertDuration(snapshot.getMean()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MIN, name, convertDuration(snapshot.getMin()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(STDDEV, name, convertDuration(snapshot.getStdDev()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P50, name, convertDuration(snapshot.getMedian()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P75, name, convertDuration(snapshot.get75thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P95, name, convertDuration(snapshot.get95thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P98, name, convertDuration(snapshot.get98thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P99, name, convertDuration(snapshot.get99thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P999, name, convertDuration(snapshot.get999thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        reportMetered(name, timer, timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportMetered(String name, Metered meter, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        sendIfEnabled(COUNT, name, meter.getCount(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(M1_RATE, name, convertRate(meter.getOneMinuteRate()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(M5_RATE, name, convertRate(meter.getFiveMinuteRate()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(M15_RATE, name, convertRate(meter.getFifteenMinuteRate()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MEAN_RATE, name, convertRate(meter.getMeanRate()), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportHistogram(String name, Histogram histogram, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    -<b class="fc">&nbsp;        sendIfEnabled(COUNT, name, histogram.getCount(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MAX, name, snapshot.getMax(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MEAN, name, snapshot.getMean(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MIN, name, snapshot.getMin(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(STDDEV, name, snapshot.getStdDev(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P50, name, snapshot.getMedian(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P75, name, snapshot.get75thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P95, name, snapshot.get95thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P98, name, snapshot.get98thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P99, name, snapshot.get99thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P999, name, snapshot.get999thPercentile(), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void sendIfEnabled(MetricAttribute type, String name, double value, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void sendIfEnabled(MetricAttribute type, String name, long value, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportCounter(String name, Counter counter, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, COUNT.getCode())), format(counter.getCount()), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportGauge(String name, Gauge&lt;?&gt; gauge, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        final String value = format(gauge.getValue());</b>
    -<b class="fc">&nbsp;        if (value != null) {</b>
    -<b class="fc">&nbsp;            graphite.send(prefix(name), value, timestamp);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String format(Object o) {
    -<b class="fc">&nbsp;        if (o instanceof Float) {</b>
    -<b class="fc">&nbsp;            return format(((Float) o).doubleValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Double) {</b>
    -<b class="fc">&nbsp;            return format(((Double) o).doubleValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Byte) {</b>
    -<b class="fc">&nbsp;            return format(((Byte) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Short) {</b>
    -<b class="fc">&nbsp;            return format(((Short) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Integer) {</b>
    -<b class="fc">&nbsp;            return format(((Integer) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Long) {</b>
    -<b class="fc">&nbsp;            return format(((Long) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Number) {</b>
    -<b class="nc">&nbsp;            return format(((Number) o).doubleValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Boolean) {</b>
    -<b class="fc">&nbsp;            return format(((Boolean) o) ? 1 : 0);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return null;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String prefix(String name) {
    -<b class="fc">&nbsp;        return MetricRegistry.name(prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String appendMetricAttribute(String name, String metricAttribute){
    -<b class="fc">&nbsp;        if (addMetricAttributesAsTags){</b>
    -<b class="fc">&nbsp;            return name + &quot;;metricattribute=&quot; + metricAttribute;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return name + &quot;.&quot; + metricAttribute;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String format(long n) {
    -<b class="fc">&nbsp;        return Long.toString(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String format(double v) {
    -<b class="fc">&nbsp;        return floatingPointFormatter.apply(v);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-4.html
    deleted file mode 100644
    index 0d3b7dd45b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-4.html
    +++ /dev/null
    @@ -1,120 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteSanitize</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteSanitize (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteSanitize</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -<b class="nc">&nbsp;class GraphiteSanitize {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    -&nbsp;    private static final String DASH = &quot;-&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Trims the string and replaces all whitespace characters with the provided symbol
    -&nbsp;     */
    -&nbsp;    static String sanitize(String string) {
    -<b class="fc">&nbsp;        return WHITESPACE.matcher(string.trim()).replaceAll(DASH);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-5.html
    deleted file mode 100644
    index 68a67bc551..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-5.html
    +++ /dev/null
    @@ -1,222 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteUDP</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteUDP (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteUDP</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.net.InetAddress;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.channels.DatagramChannel;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A client to a Carbon server using unconnected UDP
    -&nbsp; */
    -&nbsp;public class GraphiteUDP implements GraphiteSender {
    -&nbsp;
    -&nbsp;    private final String hostname;
    -&nbsp;    private final int port;
    -&nbsp;    private InetSocketAddress address;
    -&nbsp;
    -<b class="fc">&nbsp;    private DatagramChannel datagramChannel = null;</b>
    -&nbsp;    private int failures;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which sends data to given address using UDP
    -&nbsp;     *
    -&nbsp;     * @param hostname The hostname of the Carbon server
    -&nbsp;     * @param port     The port of the Carbon server
    -&nbsp;     */
    -<b class="fc">&nbsp;    public GraphiteUDP(String hostname, int port) {</b>
    -<b class="fc">&nbsp;        this.hostname = hostname;</b>
    -<b class="fc">&nbsp;        this.port = port;</b>
    -<b class="fc">&nbsp;        this.address = null;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which sends data to given address using UDP
    -&nbsp;     *
    -&nbsp;     * @param address the address of the Carbon server
    -&nbsp;     */
    -<b class="nc">&nbsp;    public GraphiteUDP(InetSocketAddress address) {</b>
    -<b class="nc">&nbsp;        this.hostname = null;</b>
    -<b class="nc">&nbsp;        this.port = -1;</b>
    -<b class="nc">&nbsp;        this.address = address;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        // Resolve hostname
    -<b class="fc">&nbsp;        if (hostname != null) {</b>
    -<b class="fc">&nbsp;            address = new InetSocketAddress(InetAddress.getByName(hostname), port);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        datagramChannel = DatagramChannel.open();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return datagramChannel != null &amp;&amp; !datagramChannel.socket().isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            String str = sanitize(name) + &#39; &#39; + sanitize(value) + &#39; &#39; + Long.toString(timestamp) + &#39;\n&#39;;</b>
    -<b class="fc">&nbsp;            ByteBuffer byteBuffer = ByteBuffer.wrap(str.getBytes(UTF_8));</b>
    -<b class="fc">&nbsp;            datagramChannel.send(byteBuffer, address);</b>
    -<b class="fc">&nbsp;            this.failures = 0;</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            failures++;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="nc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -&nbsp;        // Nothing to do
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -<b class="nc">&nbsp;        if (datagramChannel != null) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                datagramChannel.close();</b>
    -&nbsp;            } finally {
    -<b class="nc">&nbsp;                datagramChannel = null;</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String s) {
    -<b class="fc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    DatagramChannel getDatagramChannel() {
    -<b class="nc">&nbsp;        return datagramChannel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void setDatagramChannel(DatagramChannel datagramChannel) {
    -<b class="fc">&nbsp;        this.datagramChannel = datagramChannel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    InetSocketAddress getAddress() {
    -<b class="nc">&nbsp;        return address;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void setAddress(InetSocketAddress address) {
    -<b class="fc">&nbsp;        this.address = address;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-6.html
    deleted file mode 100644
    index 66ebd2bbb5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-6.html
    +++ /dev/null
    @@ -1,467 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PickledGraphite</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PickledGraphite (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PickledGraphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.2%
    -  </span>
    -  <span class="absValue">
    -    (4/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.5%
    -  </span>
    -  <span class="absValue">
    -    (15/91)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">PickledGraphite$MetricTuple</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import javax.net.SocketFactory;
    -&nbsp;
    -&nbsp;import java.io.BufferedWriter;
    -&nbsp;import java.io.ByteArrayOutputStream;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.Writer;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.net.Socket;
    -&nbsp;import java.net.UnknownHostException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.charset.Charset;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A client to a Carbon server that sends all metrics after they have been pickled in configurable sized batches
    -&nbsp; */
    -&nbsp;public class PickledGraphite implements GraphiteSender {
    -&nbsp;
    -&nbsp;    static class MetricTuple {
    -&nbsp;        String name;
    -&nbsp;        long timestamp;
    -&nbsp;        String value;
    -&nbsp;
    -<b class="nc">&nbsp;        MetricTuple(String name, long timestamp, String value) {</b>
    -<b class="nc">&nbsp;            this.name = name;</b>
    -<b class="nc">&nbsp;            this.timestamp = timestamp;</b>
    -<b class="nc">&nbsp;            this.value = value;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Minimally necessary pickle opcodes.
    -&nbsp;     */
    -&nbsp;    private static final char
    -&nbsp;            MARK = &#39;(&#39;,
    -&nbsp;            STOP = &#39;.&#39;,
    -&nbsp;            LONG = &#39;L&#39;,
    -&nbsp;            STRING = &#39;S&#39;,
    -&nbsp;            APPEND = &#39;a&#39;,
    -&nbsp;            LIST = &#39;l&#39;,
    -&nbsp;            TUPLE = &#39;t&#39;,
    -&nbsp;            QUOTE = &#39;\&#39;&#39;,
    -&nbsp;            LF = &#39;\n&#39;;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(PickledGraphite.class);</b>
    -&nbsp;    private final static int DEFAULT_BATCH_SIZE = 100;
    -&nbsp;
    -&nbsp;    private int batchSize;
    -&nbsp;    // graphite expects a python-pickled list of nested tuples.
    -<b class="fc">&nbsp;    private List&lt;MetricTuple&gt; metrics = new ArrayList&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final String hostname;
    -&nbsp;    private final int port;
    -&nbsp;    private final InetSocketAddress address;
    -&nbsp;    private final SocketFactory socketFactory;
    -&nbsp;    private final Charset charset;
    -&nbsp;
    -&nbsp;    private Socket socket;
    -&nbsp;    private Writer writer;
    -&nbsp;    private int failures;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
    -&nbsp;     * to a batchSize of 100
    -&nbsp;     *
    -&nbsp;     * @param address the address of the Carbon server
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(InetSocketAddress address) {
    -<b class="nc">&nbsp;        this(address, DEFAULT_BATCH_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param address   the address of the Carbon server
    -&nbsp;     * @param batchSize how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(InetSocketAddress address, int batchSize) {
    -<b class="nc">&nbsp;        this(address, SocketFactory.getDefault(), batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, int batchSize) {
    -<b class="nc">&nbsp;        this(address, socketFactory, UTF_8, batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given character set.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -<b class="fc">&nbsp;    public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset, int batchSize) {</b>
    -<b class="fc">&nbsp;        this.address = address;</b>
    -<b class="fc">&nbsp;        this.hostname = null;</b>
    -<b class="fc">&nbsp;        this.port = -1;</b>
    -<b class="fc">&nbsp;        this.socketFactory = socketFactory;</b>
    -<b class="fc">&nbsp;        this.charset = charset;</b>
    -<b class="fc">&nbsp;        this.batchSize = batchSize;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
    -&nbsp;     * to a batchSize of 100
    -&nbsp;     *
    -&nbsp;     * @param hostname the hostname of the Carbon server
    -&nbsp;     * @param port     the port of the Carbon server
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(String hostname, int port) {
    -<b class="nc">&nbsp;        this(hostname, port, DEFAULT_BATCH_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param hostname  the hostname of the Carbon server
    -&nbsp;     * @param port      the port of the Carbon server
    -&nbsp;     * @param batchSize how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(String hostname, int port, int batchSize) {
    -<b class="nc">&nbsp;        this(hostname, port, SocketFactory.getDefault(), batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param hostname      the hostname of the Carbon server
    -&nbsp;     * @param port          the port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(String hostname, int port, SocketFactory socketFactory, int batchSize) {
    -<b class="nc">&nbsp;        this(hostname, port, socketFactory, UTF_8, batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given character set.
    -&nbsp;     *
    -&nbsp;     * @param hostname      the hostname of the Carbon server
    -&nbsp;     * @param port          the port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -<b class="nc">&nbsp;    public PickledGraphite(String hostname, int port, SocketFactory socketFactory, Charset charset, int batchSize) {</b>
    -<b class="nc">&nbsp;        this.address = null;</b>
    -<b class="nc">&nbsp;        this.hostname = hostname;</b>
    -<b class="nc">&nbsp;        this.port = port;</b>
    -<b class="nc">&nbsp;        this.socketFactory = socketFactory;</b>
    -<b class="nc">&nbsp;        this.charset = charset;</b>
    -<b class="nc">&nbsp;        this.batchSize = batchSize;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        InetSocketAddress address = this.address;</b>
    -<b class="fc">&nbsp;        if (address == null) {</b>
    -<b class="nc">&nbsp;            address = new InetSocketAddress(hostname, port);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (address.getAddress() == null) {</b>
    -<b class="fc">&nbsp;            throw new UnknownHostException(address.getHostName());</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());</b>
    -<b class="nc">&nbsp;        this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return socket != null &amp;&amp; socket.isConnected() &amp;&amp; !socket.isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Convert the metric to a python tuple of the form:
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * (timestamp, (name, value))
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * And add it to the list of metrics. If we reach the batch size, write them out.
    -&nbsp;     *
    -&nbsp;     * @param name      the name of the metric
    -&nbsp;     * @param value     the value of the metric
    -&nbsp;     * @param timestamp the timestamp of the metric
    -&nbsp;     * @throws IOException if there was an error sending the metric
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -<b class="nc">&nbsp;        metrics.add(new MetricTuple(sanitize(name), timestamp, sanitize(value)));</b>
    -&nbsp;
    -<b class="nc">&nbsp;        if (metrics.size() &gt;= batchSize) {</b>
    -<b class="nc">&nbsp;            writeMetrics();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -<b class="nc">&nbsp;        writeMetrics();</b>
    -<b class="nc">&nbsp;        if (writer != null) {</b>
    -<b class="nc">&nbsp;            writer.flush();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -&nbsp;        try {
    -<b class="nc">&nbsp;            flush();</b>
    -<b class="nc">&nbsp;            if (writer != null) {</b>
    -<b class="nc">&nbsp;                writer.close();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    -<b class="nc">&nbsp;            if (socket != null) {</b>
    -<b class="nc">&nbsp;                socket.close();</b>
    -&nbsp;            }
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            this.socket = null;</b>
    -<b class="nc">&nbsp;            this.writer = null;</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="nc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * 1. Run the pickler script to package all the pending metrics into a single message
    -&nbsp;     * 2. Send the message to graphite
    -&nbsp;     * 3. Clear out the list of metrics
    -&nbsp;     */
    -&nbsp;    private void writeMetrics() throws IOException {
    -<b class="nc">&nbsp;        if (metrics.size() &gt; 0) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                byte[] payload = pickleMetrics(metrics);</b>
    -<b class="nc">&nbsp;                byte[] header = ByteBuffer.allocate(4).putInt(payload.length).array();</b>
    -&nbsp;
    -&nbsp;                @SuppressWarnings(&quot;resource&quot;)
    -<b class="nc">&nbsp;                OutputStream outputStream = socket.getOutputStream();</b>
    -<b class="nc">&nbsp;                outputStream.write(header);</b>
    -<b class="nc">&nbsp;                outputStream.write(payload);</b>
    -<b class="nc">&nbsp;                outputStream.flush();</b>
    -&nbsp;
    -<b class="nc">&nbsp;                if (LOGGER.isDebugEnabled()) {</b>
    -<b class="nc">&nbsp;                    LOGGER.debug(&quot;Wrote {} metrics&quot;, metrics.size());</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (IOException e) {</b>
    -<b class="nc">&nbsp;                this.failures++;</b>
    -<b class="nc">&nbsp;                throw e;</b>
    -&nbsp;            } finally {
    -&nbsp;                // if there was an error, we might miss some data. for now, drop those on the floor and
    -&nbsp;                // try to keep going.
    -<b class="nc">&nbsp;                metrics.clear();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * See: http://readthedocs.org/docs/graphite/en/1.0/feeding-carbon.html
    -&nbsp;     *
    -&nbsp;     * @throws IOException shouldn&#39;t happen because we write to memory.
    -&nbsp;     */
    -&nbsp;    byte[] pickleMetrics(List&lt;MetricTuple&gt; metrics) throws IOException {
    -&nbsp;        // Extremely rough estimate of 75 bytes per message
    -<b class="nc">&nbsp;        ByteArrayOutputStream out = new ByteArrayOutputStream(metrics.size() * 75);</b>
    -<b class="nc">&nbsp;        Writer pickled = new OutputStreamWriter(out, charset);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        pickled.append(MARK);</b>
    -<b class="nc">&nbsp;        pickled.append(LIST);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        for (MetricTuple tuple : metrics) {</b>
    -&nbsp;            // start the outer tuple
    -<b class="nc">&nbsp;            pickled.append(MARK);</b>
    -&nbsp;
    -&nbsp;            // the metric name is a string.
    -<b class="nc">&nbsp;            pickled.append(STRING);</b>
    -&nbsp;            // the single quotes are to match python&#39;s repr(&quot;abcd&quot;)
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(tuple.name);</b>
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(LF);</b>
    -&nbsp;
    -&nbsp;            // start the inner tuple
    -<b class="nc">&nbsp;            pickled.append(MARK);</b>
    -&nbsp;
    -&nbsp;            // timestamp is a long
    -<b class="nc">&nbsp;            pickled.append(LONG);</b>
    -<b class="nc">&nbsp;            pickled.append(Long.toString(tuple.timestamp));</b>
    -&nbsp;            // the trailing L is to match python&#39;s repr(long(1234))
    -<b class="nc">&nbsp;            pickled.append(LONG);</b>
    -<b class="nc">&nbsp;            pickled.append(LF);</b>
    -&nbsp;
    -&nbsp;            // and the value is a string.
    -<b class="nc">&nbsp;            pickled.append(STRING);</b>
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(tuple.value);</b>
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(LF);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            pickled.append(TUPLE); // inner close</b>
    -<b class="nc">&nbsp;            pickled.append(TUPLE); // outer close</b>
    -&nbsp;
    -<b class="nc">&nbsp;            pickled.append(APPEND);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        // every pickle ends with STOP
    -<b class="nc">&nbsp;        pickled.append(STOP);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        pickled.flush();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return out.toByteArray();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String s) {
    -<b class="nc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-7.html
    deleted file mode 100644
    index 4394344d2f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-8/sources/source-7.html
    +++ /dev/null
    @@ -1,113 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteSender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteSender (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteSender</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import java.io.Closeable;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;public interface GraphiteSender extends Closeable {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Connects to the server.
    -&nbsp;     *
    -&nbsp;     * @throws IllegalStateException if the client is already connected
    -&nbsp;     * @throws IOException           if there is an error connecting
    -&nbsp;     */
    -&nbsp;    void connect() throws IllegalStateException, IOException;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Sends the given measurement to the server.
    -&nbsp;     *
    -&nbsp;     * @param name      the name of the metric
    -&nbsp;     * @param value     the value of the metric
    -&nbsp;     * @param timestamp the timestamp of the metric
    -&nbsp;     * @throws IOException if there was an error sending the metric
    -&nbsp;     */
    -&nbsp;    void send(String name, String value, long timestamp) throws IOException;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Flushes buffer, if applicable
    -&nbsp;     *
    -&nbsp;     * @throws IOException if there was an error during flushing metrics to the socket
    -&nbsp;     */
    -&nbsp;    void flush() throws IOException;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns true if ready to send data
    -&nbsp;     */
    -&nbsp;    boolean isConnected();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of failed writes to the server.
    -&nbsp;     *
    -&nbsp;     * @return the number of failed writes to the server
    -&nbsp;     */
    -&nbsp;    int getFailures();
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index.html
    deleted file mode 100644
    index eff827f142..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 2d8f1667d0..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index be34226a37..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 512c44ad3e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index e7f899defb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 0db681b671..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index b977ca057e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 95be111a3b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 53ddbd3807..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 850d6f809d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-1.html
    deleted file mode 100644
    index 72f11d4b04..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-1.html
    +++ /dev/null
    @@ -1,184 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AsyncHealthCheckDecorator</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AsyncHealthCheckDecorator (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AsyncHealthCheckDecorator</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.health.annotation.Async;
    -&nbsp;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.ScheduledFuture;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A health check decorator to manage asynchronous executions.
    -&nbsp; */
    -&nbsp;public class AsyncHealthCheckDecorator extends HealthCheck implements Runnable {
    -&nbsp;    private static final String NO_RESULT_YET_MESSAGE = &quot;Waiting for first asynchronous check result.&quot;;
    -&nbsp;    private final HealthCheck healthCheck;
    -&nbsp;    private final ScheduledFuture&lt;?&gt; future;
    -&nbsp;    private final long healthyTtl;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private volatile Result result;
    -&nbsp;
    -<b class="fc">&nbsp;    AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService, Clock clock) {</b>
    -<b class="fc">&nbsp;        check(healthCheck != null, &quot;healthCheck cannot be null&quot;);</b>
    -<b class="fc">&nbsp;        check(executorService != null, &quot;executorService cannot be null&quot;);</b>
    -<b class="fc">&nbsp;        Async async = healthCheck.getClass().getAnnotation(Async.class);</b>
    -<b class="fc">&nbsp;        check(async != null, &quot;healthCheck must contain Async annotation&quot;);</b>
    -<b class="fc">&nbsp;        check(async.period() &gt; 0, &quot;period cannot be less than or equal to zero&quot;);</b>
    -<b class="fc">&nbsp;        check(async.initialDelay() &gt;= 0, &quot;initialDelay cannot be less than zero&quot;);</b>
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.healthCheck = healthCheck;</b>
    -<b class="fc">&nbsp;        this.healthyTtl = async.unit().toMillis(async.healthyTtl() &lt;= 0 ? 2 * async.period() : async.healthyTtl());</b>
    -<b class="fc">&nbsp;        result = Async.InitialState.HEALTHY.equals(async.initialState()) ? Result.healthy(NO_RESULT_YET_MESSAGE) :</b>
    -<b class="fc">&nbsp;                Result.unhealthy(NO_RESULT_YET_MESSAGE);</b>
    -<b class="fc">&nbsp;        if (Async.ScheduleType.FIXED_RATE.equals(async.scheduleType())) {</b>
    -<b class="fc">&nbsp;            future = executorService.scheduleAtFixedRate(this, async.initialDelay(), async.period(), async.unit());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            future = executorService.scheduleWithFixedDelay(this, async.initialDelay(), async.period(), async.unit());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService) {
    -<b class="fc">&nbsp;        this(healthCheck, executorService, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void run() {
    -<b class="fc">&nbsp;        result = healthCheck.execute();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected Result check() throws Exception {
    -<b class="fc">&nbsp;        long expiration = clock.getTime() - result.getTime() - healthyTtl;</b>
    -<b class="fc">&nbsp;        if (expiration &gt; 0) {</b>
    -<b class="fc">&nbsp;            return Result.builder()</b>
    -<b class="fc">&nbsp;                    .unhealthy()</b>
    -<b class="fc">&nbsp;                    .usingClock(clock)</b>
    -<b class="fc">&nbsp;                    .withMessage(&quot;Result was %s but it expired %d milliseconds ago&quot;,</b>
    -<b class="fc">&nbsp;                            result.isHealthy() ? &quot;healthy&quot; : &quot;unhealthy&quot;,</b>
    -<b class="fc">&nbsp;                            expiration)</b>
    -<b class="fc">&nbsp;                    .build();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        return result;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    boolean tearDown() {
    -<b class="fc">&nbsp;        return future.cancel(true);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public HealthCheck getHealthCheck() {
    -<b class="fc">&nbsp;        return healthCheck;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static void check(boolean expression, String message) {
    -<b class="fc">&nbsp;        if (!expression) {</b>
    -<b class="fc">&nbsp;            throw new IllegalArgumentException(message);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-2.html
    deleted file mode 100644
    index be16a2f2e9..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-2.html
    +++ /dev/null
    @@ -1,546 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheck</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheck (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheck</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheck$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$MockitoMock$N8CZXceh</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$MockitoMock$N8CZXceh$auxiliary$7kHSbsru</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$MockitoMock$N8CZXceh$auxiliary$qYd6qSxJ</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$Result</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.5%
    -  </span>
    -  <span class="absValue">
    -    (49/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$ResultBuilder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;
    -&nbsp;import java.time.Instant;
    -&nbsp;import java.time.ZoneId;
    -&nbsp;import java.time.ZonedDateTime;
    -&nbsp;import java.time.format.DateTimeFormatter;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.LinkedHashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A health check for a component of your application.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class HealthCheck {</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * The result of a {@link HealthCheck} being run. It can be healthy (with an optional message and optional details)
    -&nbsp;     * or unhealthy (with either an error message or a thrown exception and optional details).
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Result {</b>
    -<b class="fc">&nbsp;        private static final DateTimeFormatter DATE_FORMAT_PATTERN =</b>
    -<b class="fc">&nbsp;                DateTimeFormatter.ofPattern(&quot;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSSXXX&quot;);</b>
    -&nbsp;        private static final int PRIME = 31;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a healthy {@link Result} with no additional message.
    -&nbsp;         *
    -&nbsp;         * @return a healthy {@link Result} with no additional message
    -&nbsp;         */
    -&nbsp;        public static Result healthy() {
    -<b class="fc">&nbsp;            return new Result(true, null, null);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a healthy {@link Result} with an additional message.
    -&nbsp;         *
    -&nbsp;         * @param message an informative message
    -&nbsp;         * @return a healthy {@link Result} with an additional message
    -&nbsp;         */
    -&nbsp;        public static Result healthy(String message) {
    -<b class="fc">&nbsp;            return new Result(true, message, null);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a healthy {@link Result} with a formatted message.
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    -&nbsp;         *
    -&nbsp;         * @param message a message format\\
    -&nbsp;         * @param args    the arguments apply to the message format
    -&nbsp;         * @return a healthy {@link Result} with an additional message
    -&nbsp;         * @see String#format(String, Object...)
    -&nbsp;         */
    -&nbsp;        public static Result healthy(String message, Object... args) {
    -<b class="fc">&nbsp;            return healthy(String.format(message, args));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns an unhealthy {@link Result} with the given message.
    -&nbsp;         *
    -&nbsp;         * @param message an informative message describing how the health check failed
    -&nbsp;         * @return an unhealthy {@link Result} with the given message
    -&nbsp;         */
    -&nbsp;        public static Result unhealthy(String message) {
    -<b class="fc">&nbsp;            return new Result(false, message, null);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns an unhealthy {@link Result} with a formatted message.
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    -&nbsp;         *
    -&nbsp;         * @param message a message format
    -&nbsp;         * @param args    the arguments apply to the message format
    -&nbsp;         * @return an unhealthy {@link Result} with an additional message
    -&nbsp;         * @see String#format(String, Object...)
    -&nbsp;         */
    -&nbsp;        public static Result unhealthy(String message, Object... args) {
    -<b class="fc">&nbsp;            return unhealthy(String.format(message, args));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns an unhealthy {@link Result} with the given error.
    -&nbsp;         *
    -&nbsp;         * @param error an exception thrown during the health check
    -&nbsp;         * @return an unhealthy {@link Result} with the given {@code error}
    -&nbsp;         */
    -&nbsp;        public static Result unhealthy(Throwable error) {
    -<b class="fc">&nbsp;            return new Result(false, error.getMessage(), error);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a new {@link ResultBuilder}
    -&nbsp;         *
    -&nbsp;         * @return the {@link ResultBuilder}
    -&nbsp;         */
    -&nbsp;        public static ResultBuilder builder() {
    -<b class="fc">&nbsp;            return new ResultBuilder();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private final boolean healthy;
    -&nbsp;        private final String message;
    -&nbsp;        private final Throwable error;
    -&nbsp;        private final Map&lt;String, Object&gt; details;
    -&nbsp;        private final long time;
    -&nbsp;
    -&nbsp;        private long duration; // Calculated field
    -&nbsp;
    -&nbsp;        private Result(boolean isHealthy, String message, Throwable error) {
    -<b class="fc">&nbsp;            this(isHealthy, message, error, null, Clock.defaultClock());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Result(ResultBuilder builder) {
    -<b class="fc">&nbsp;            this(builder.healthy, builder.message, builder.error, builder.details, builder.clock);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        private Result(boolean isHealthy, String message, Throwable error, Map&lt;String, Object&gt; details, Clock clock) {</b>
    -<b class="fc">&nbsp;            this.healthy = isHealthy;</b>
    -<b class="fc">&nbsp;            this.message = message;</b>
    -<b class="fc">&nbsp;            this.error = error;</b>
    -<b class="fc">&nbsp;            this.details = details == null ? null : Collections.unmodifiableMap(details);</b>
    -<b class="fc">&nbsp;            this.time = clock.getTime();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns {@code true} if the result indicates the component is healthy; {@code false}
    -&nbsp;         * otherwise.
    -&nbsp;         *
    -&nbsp;         * @return {@code true} if the result indicates the component is healthy
    -&nbsp;         */
    -&nbsp;        public boolean isHealthy() {
    -<b class="fc">&nbsp;            return healthy;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns any additional message for the result, or {@code null} if the result has no
    -&nbsp;         * message.
    -&nbsp;         *
    -&nbsp;         * @return any additional message for the result, or {@code null}
    -&nbsp;         */
    -&nbsp;        public String getMessage() {
    -<b class="fc">&nbsp;            return message;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns any exception for the result, or {@code null} if the result has no exception.
    -&nbsp;         *
    -&nbsp;         * @return any exception for the result, or {@code null}
    -&nbsp;         */
    -&nbsp;        public Throwable getError() {
    -<b class="fc">&nbsp;            return error;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the timestamp when the result was created as a formatted String.
    -&nbsp;         *
    -&nbsp;         * @return a formatted timestamp
    -&nbsp;         */
    -&nbsp;        public String getTimestamp() {
    -<b class="fc">&nbsp;            Instant currentInstant = Instant.ofEpochMilli(time);</b>
    -<b class="fc">&nbsp;            ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(currentInstant, ZoneId.systemDefault());</b>
    -<b class="fc">&nbsp;            return DATE_FORMAT_PATTERN.format(zonedDateTime);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the time when the result was created, in milliseconds since Epoch
    -&nbsp;         *
    -&nbsp;         * @return the time when the result was created
    -&nbsp;         */
    -&nbsp;        public long getTime() {
    -<b class="fc">&nbsp;            return time;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the duration in milliseconds that the healthcheck took to run
    -&nbsp;         *
    -&nbsp;         * @return the duration
    -&nbsp;         */
    -&nbsp;        public long getDuration() {
    -<b class="fc">&nbsp;            return duration;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Sets the duration in milliseconds. This will indicate the time it took to run the individual healthcheck
    -&nbsp;         *
    -&nbsp;         * @param duration The duration in milliseconds
    -&nbsp;         */
    -&nbsp;        public void setDuration(long duration) {
    -<b class="fc">&nbsp;            this.duration = duration;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Map&lt;String, Object&gt; getDetails() {
    -<b class="fc">&nbsp;            return details;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="fc">&nbsp;            if (this == o) {</b>
    -<b class="fc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            final Result result = (Result) o;</b>
    -<b class="fc">&nbsp;            return healthy == result.healthy &amp;&amp;</b>
    -<b class="nc">&nbsp;                    !(error != null ? !error.equals(result.error) : result.error != null) &amp;&amp;</b>
    -<b class="fc">&nbsp;                    !(message != null ? !message.equals(result.message) : result.message != null) &amp;&amp;</b>
    -&nbsp;                    time == result.time;
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="nc">&nbsp;            int result = healthy ? 1 : 0;</b>
    -<b class="nc">&nbsp;            result = PRIME * result + (message != null ? message.hashCode() : 0);</b>
    -<b class="nc">&nbsp;            result = PRIME * result + (error != null ? error.hashCode() : 0);</b>
    -<b class="nc">&nbsp;            result = PRIME * result + (Long.hashCode(time));</b>
    -<b class="nc">&nbsp;            return result;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String toString() {
    -<b class="fc">&nbsp;            final StringBuilder builder = new StringBuilder(&quot;Result{isHealthy=&quot;);</b>
    -<b class="fc">&nbsp;            builder.append(healthy);</b>
    -<b class="fc">&nbsp;            if (message != null) {</b>
    -<b class="nc">&nbsp;                builder.append(&quot;, message=&quot;).append(message);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (error != null) {</b>
    -<b class="nc">&nbsp;                builder.append(&quot;, error=&quot;).append(error);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            builder.append(&quot;, duration=&quot;).append(duration);</b>
    -<b class="fc">&nbsp;            builder.append(&quot;, timestamp=&quot;).append(getTimestamp());</b>
    -<b class="fc">&nbsp;            if (details != null) {</b>
    -<b class="fc">&nbsp;                for (Map.Entry&lt;String, Object&gt; e : details.entrySet()) {</b>
    -<b class="fc">&nbsp;                    builder.append(&quot;, &quot;);</b>
    -<b class="fc">&nbsp;                    builder.append(e.getKey())</b>
    -<b class="fc">&nbsp;                            .append(&quot;=&quot;)</b>
    -<b class="fc">&nbsp;                            .append(String.valueOf(e.getValue()));</b>
    -<b class="fc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            builder.append(&#39;}&#39;);</b>
    -<b class="fc">&nbsp;            return builder.toString();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * This a convenient builder for an {@link HealthCheck.Result}. It can be health (with optional message and detail)
    -&nbsp;     * or unhealthy (with optional message, error and detail)
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class ResultBuilder {</b>
    -&nbsp;        private boolean healthy;
    -&nbsp;        private String message;
    -&nbsp;        private Throwable error;
    -&nbsp;        private Map&lt;String, Object&gt; details;
    -&nbsp;        private Clock clock;
    -&nbsp;
    -<b class="fc">&nbsp;        protected ResultBuilder() {</b>
    -<b class="fc">&nbsp;            this.healthy = true;</b>
    -<b class="fc">&nbsp;            this.details = new LinkedHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure an healthy result
    -&nbsp;         *
    -&nbsp;         * @return this builder with healthy status
    -&nbsp;         */
    -&nbsp;        public ResultBuilder healthy() {
    -<b class="fc">&nbsp;            this.healthy = true;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure an unhealthy result
    -&nbsp;         *
    -&nbsp;         * @return this builder with unhealthy status
    -&nbsp;         */
    -&nbsp;        public ResultBuilder unhealthy() {
    -<b class="fc">&nbsp;            this.healthy = false;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure an unhealthy result with an {@code error}
    -&nbsp;         *
    -&nbsp;         * @param error the error
    -&nbsp;         * @return this builder with the given error
    -&nbsp;         */
    -&nbsp;        public ResultBuilder unhealthy(Throwable error) {
    -<b class="fc">&nbsp;            this.error = error;</b>
    -<b class="fc">&nbsp;            return this.unhealthy().withMessage(error.getMessage());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Set an optional message
    -&nbsp;         *
    -&nbsp;         * @param message an informative message
    -&nbsp;         * @return this builder with the given {@code message}
    -&nbsp;         */
    -&nbsp;        public ResultBuilder withMessage(String message) {
    -<b class="fc">&nbsp;            this.message = message;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Set an optional formatted message
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    -&nbsp;         *
    -&nbsp;         * @param message a message format
    -&nbsp;         * @param args    the arguments apply to the message format
    -&nbsp;         * @return this builder with the given formatted {@code message}
    -&nbsp;         * @see String#format(String, Object...)
    -&nbsp;         */
    -&nbsp;        public ResultBuilder withMessage(String message, Object... args) {
    -<b class="fc">&nbsp;            return withMessage(String.format(message, args));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Add an optional detail
    -&nbsp;         *
    -&nbsp;         * @param key  a key for this detail
    -&nbsp;         * @param data an object representing the detail data
    -&nbsp;         * @return this builder with the given detail added
    -&nbsp;         */
    -&nbsp;        public ResultBuilder withDetail(String key, Object data) {
    -<b class="fc">&nbsp;            if (this.details == null) {</b>
    -<b class="nc">&nbsp;                this.details = new LinkedHashMap&lt;&gt;();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            this.details.put(key, data);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure this {@link ResultBuilder} to use the given {@code clock} instead of the default clock.
    -&nbsp;         * If not specified, the default clock is {@link Clock#defaultClock()}.
    -&nbsp;         *
    -&nbsp;         * @param clock the {@link Clock} to use when generating the health check timestamp (useful for unit testing)
    -&nbsp;         * @return this builder configured to use the given {@code clock}
    -&nbsp;         */
    -&nbsp;        public ResultBuilder usingClock(Clock clock) {
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Result build() {
    -<b class="fc">&nbsp;            return new Result(this);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Perform a check of the application component.
    -&nbsp;     *
    -&nbsp;     * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
    -&nbsp;     * Result} with a descriptive error message or exception
    -&nbsp;     * @throws Exception if there is an unhandled error during the health check; this will result in
    -&nbsp;     *                   a failed health check
    -&nbsp;     */
    -&nbsp;    protected abstract Result check() throws Exception;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Executes the health check, catching and handling any exceptions raised by {@link #check()}.
    -&nbsp;     *
    -&nbsp;     * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
    -&nbsp;     * Result} with a descriptive error message or exception
    -&nbsp;     */
    -&nbsp;    public Result execute() {
    -<b class="fc">&nbsp;        long start = clock().getTick();</b>
    -&nbsp;        Result result;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            result = check();</b>
    -<b class="fc">&nbsp;        } catch (Exception e) {</b>
    -<b class="fc">&nbsp;            result = Result.unhealthy(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        result.setDuration(TimeUnit.MILLISECONDS.convert(clock().getTick() - start, TimeUnit.NANOSECONDS));</b>
    -<b class="fc">&nbsp;        return result;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected Clock clock() {
    -<b class="fc">&nbsp;        return Clock.defaultClock();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-3.html
    deleted file mode 100644
    index b33a35b858..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-3.html
    +++ /dev/null
    @@ -1,125 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckFilter (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A filter used to determine whether or not a health check should be reported.
    -&nbsp; */
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface HealthCheckFilter {
    -&nbsp;    /**
    -&nbsp;     * Matches all health checks, regardless of type or name.
    -&nbsp;     */
    -<b class="fc">&nbsp;    HealthCheckFilter ALL = (name, healthCheck) -&gt; true;</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns {@code true} if the health check matches the filter; {@code false} otherwise.
    -&nbsp;     *
    -&nbsp;     * @param name        the health check&#39;s name
    -&nbsp;     * @param healthCheck the health check
    -&nbsp;     * @return {@code true} if the health check matches the filter
    -&nbsp;     */
    -&nbsp;    boolean matches(String name, HealthCheck healthCheck);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-4.html
    deleted file mode 100644
    index b21b5260d7..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-4.html
    +++ /dev/null
    @@ -1,418 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckRegistry</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckRegistry (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckRegistry</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.7%
    -  </span>
    -  <span class="absValue">
    -    (70/78)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistry$NamedThreadFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.annotation.Async;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.NoSuchElementException;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.SortedSet;
    -&nbsp;import java.util.TreeMap;
    -&nbsp;import java.util.TreeSet;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.CopyOnWriteArrayList;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;import java.util.concurrent.Future;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.ScheduledThreadPoolExecutor;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.health.HealthCheck.Result;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A registry for health checks.
    -&nbsp; */
    -&nbsp;public class HealthCheckRegistry {
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(HealthCheckRegistry.class);</b>
    -&nbsp;    private static final int ASYNC_EXECUTOR_POOL_SIZE = 2;
    -&nbsp;
    -&nbsp;    private final ConcurrentMap&lt;String, HealthCheck&gt; healthChecks;
    -&nbsp;    private final List&lt;HealthCheckRegistryListener&gt; listeners;
    -&nbsp;    private final ScheduledExecutorService asyncExecutorService;
    -<b class="fc">&nbsp;    private final Object lock = new Object();</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    -&nbsp;     */
    -&nbsp;    public HealthCheckRegistry() {
    -<b class="fc">&nbsp;        this(ASYNC_EXECUTOR_POOL_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    -&nbsp;     *
    -&nbsp;     * @param asyncExecutorPoolSize core pool size for async health check executions
    -&nbsp;     */
    -&nbsp;    public HealthCheckRegistry(int asyncExecutorPoolSize) {
    -<b class="fc">&nbsp;        this(createExecutorService(asyncExecutorPoolSize));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    -&nbsp;     *
    -&nbsp;     * @param asyncExecutorService executor service for async health check executions
    -&nbsp;     */
    -<b class="fc">&nbsp;    public HealthCheckRegistry(ScheduledExecutorService asyncExecutorService) {</b>
    -<b class="fc">&nbsp;        this.healthChecks = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        this.listeners = new CopyOnWriteArrayList&lt;&gt;();</b>
    -<b class="fc">&nbsp;        this.asyncExecutorService = asyncExecutorService;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a {@link HealthCheckRegistryListener} to a collection of listeners that will be notified on health check
    -&nbsp;     * registration. Listeners will be notified in the order in which they are added. The listener will be notified of all
    -&nbsp;     * existing health checks when it first registers.
    -&nbsp;     *
    -&nbsp;     * @param listener listener to add
    -&nbsp;     */
    -&nbsp;    public void addListener(HealthCheckRegistryListener listener) {
    -<b class="fc">&nbsp;        listeners.add(listener);</b>
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    -<b class="fc">&nbsp;            listener.onHealthCheckAdded(entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Removes a {@link HealthCheckRegistryListener} from this registry&#39;s collection of listeners.
    -&nbsp;     *
    -&nbsp;     * @param listener listener to remove
    -&nbsp;     */
    -&nbsp;    public void removeListener(HealthCheckRegistryListener listener) {
    -<b class="fc">&nbsp;        listeners.remove(listener);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Registers an application {@link HealthCheck}.
    -&nbsp;     *
    -&nbsp;     * @param name        the name of the health check
    -&nbsp;     * @param healthCheck the {@link HealthCheck} instance
    -&nbsp;     */
    -&nbsp;    public void register(String name, HealthCheck healthCheck) {
    -&nbsp;        HealthCheck registered;
    -<b class="fc">&nbsp;        synchronized (lock) {</b>
    -<b class="fc">&nbsp;            if (healthChecks.containsKey(name)) {</b>
    -<b class="fc">&nbsp;                throw new IllegalArgumentException(&quot;A health check named &quot; + name + &quot; already exists&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            registered = healthCheck;</b>
    -<b class="fc">&nbsp;            if (healthCheck.getClass().isAnnotationPresent(Async.class)) {</b>
    -<b class="fc">&nbsp;                registered = new AsyncHealthCheckDecorator(healthCheck, asyncExecutorService);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            healthChecks.put(name, registered);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        onHealthCheckAdded(name, registered);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Unregisters the application {@link HealthCheck} with the given name.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the {@link HealthCheck} instance
    -&nbsp;     */
    -&nbsp;    public void unregister(String name) {
    -&nbsp;        HealthCheck healthCheck;
    -<b class="fc">&nbsp;        synchronized (lock) {</b>
    -<b class="fc">&nbsp;            healthCheck = healthChecks.remove(name);</b>
    -<b class="fc">&nbsp;            if (healthCheck instanceof AsyncHealthCheckDecorator) {</b>
    -<b class="fc">&nbsp;                ((AsyncHealthCheckDecorator) healthCheck).tearDown();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        if (healthCheck != null) {</b>
    -<b class="fc">&nbsp;            onHealthCheckRemoved(name, healthCheck);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a set of the names of all registered health checks.
    -&nbsp;     *
    -&nbsp;     * @return the names of all registered health checks
    -&nbsp;     */
    -&nbsp;    public SortedSet&lt;String&gt; getNames() {
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedSet(new TreeSet&lt;&gt;(healthChecks.keySet()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the {@link HealthCheck} instance with a given name
    -&nbsp;     *
    -&nbsp;     * @param name the name of the {@link HealthCheck} instance
    -&nbsp;     */
    -&nbsp;    public HealthCheck getHealthCheck(String name) {
    -<b class="nc">&nbsp;        return healthChecks.get(name);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the health check with the given name.
    -&nbsp;     *
    -&nbsp;     * @param name the health check&#39;s name
    -&nbsp;     * @return the result of the health check
    -&nbsp;     * @throws NoSuchElementException if there is no health check with the given name
    -&nbsp;     */
    -&nbsp;    public HealthCheck.Result runHealthCheck(String name) throws NoSuchElementException {
    -<b class="fc">&nbsp;        final HealthCheck healthCheck = healthChecks.get(name);</b>
    -<b class="fc">&nbsp;        if (healthCheck == null) {</b>
    -<b class="fc">&nbsp;            throw new NoSuchElementException(&quot;No health check named &quot; + name + &quot; exists&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return healthCheck.execute();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    -<b class="fc">&nbsp;        return runHealthChecks(HealthCheckFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks matching the filter and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @param filter health check filter
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(HealthCheckFilter filter) {
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = new TreeMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    -<b class="fc">&nbsp;            final String name = entry.getKey();</b>
    -<b class="fc">&nbsp;            final HealthCheck healthCheck = entry.getValue();</b>
    -<b class="fc">&nbsp;            if (filter.matches(name, healthCheck)) {</b>
    -<b class="fc">&nbsp;                final Result result = entry.getValue().execute();</b>
    -<b class="fc">&nbsp;                results.put(entry.getKey(), result);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(results);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks in parallel and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @param executor object to launch and track health checks progress
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(ExecutorService executor) {
    -<b class="fc">&nbsp;        return runHealthChecks(executor, HealthCheckFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks matching the filter in parallel and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @param executor object to launch and track health checks progress
    -&nbsp;     * @param filter   health check filter
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(ExecutorService executor, HealthCheckFilter filter) {
    -<b class="fc">&nbsp;        final Map&lt;String, Future&lt;HealthCheck.Result&gt;&gt; futures = new HashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (final Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    -<b class="fc">&nbsp;            final String name = entry.getKey();</b>
    -<b class="fc">&nbsp;            final HealthCheck healthCheck = entry.getValue();</b>
    -<b class="fc">&nbsp;            if (filter.matches(name, healthCheck)) {</b>
    -<b class="fc">&nbsp;                futures.put(name, executor.submit(() -&gt; healthCheck.execute()));</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = new TreeMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Future&lt;Result&gt;&gt; entry : futures.entrySet()) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                results.put(entry.getKey(), entry.getValue().get());</b>
    -<b class="nc">&nbsp;            } catch (Exception e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Error executing health check {}&quot;, entry.getKey(), e);</b>
    -<b class="nc">&nbsp;                results.put(entry.getKey(), HealthCheck.Result.unhealthy(e));</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(results);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    private void onHealthCheckAdded(String name, HealthCheck healthCheck) {
    -<b class="fc">&nbsp;        for (HealthCheckRegistryListener listener : listeners) {</b>
    -<b class="fc">&nbsp;            listener.onHealthCheckAdded(name, healthCheck);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void onHealthCheckRemoved(String name, HealthCheck healthCheck) {
    -<b class="fc">&nbsp;        for (HealthCheckRegistryListener listener : listeners) {</b>
    -<b class="fc">&nbsp;            listener.onHealthCheckRemoved(name, healthCheck);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Shuts down the scheduled executor for async health checks
    -&nbsp;     */
    -&nbsp;    public void shutdown() {
    -<b class="fc">&nbsp;        asyncExecutorService.shutdown(); // Disable new health checks from being submitted</b>
    -&nbsp;        try {
    -&nbsp;            // Give some time to the current healtch checks to finish gracefully
    -<b class="fc">&nbsp;            if (!asyncExecutorService.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    -<b class="nc">&nbsp;                asyncExecutorService.shutdownNow();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (InterruptedException ie) {</b>
    -<b class="nc">&nbsp;            asyncExecutorService.shutdownNow();</b>
    -<b class="nc">&nbsp;            Thread.currentThread().interrupt();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static ScheduledExecutorService createExecutorService(int corePoolSize) {
    -<b class="fc">&nbsp;        final ScheduledThreadPoolExecutor asyncExecutorService = new ScheduledThreadPoolExecutor(corePoolSize,</b>
    -&nbsp;                new NamedThreadFactory(&quot;healthcheck-async-executor-&quot;));
    -<b class="fc">&nbsp;        asyncExecutorService.setRemoveOnCancelPolicy(true);</b>
    -<b class="fc">&nbsp;        return asyncExecutorService;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class NamedThreadFactory implements ThreadFactory {
    -&nbsp;
    -&nbsp;        private final ThreadGroup group;
    -<b class="fc">&nbsp;        private final AtomicInteger threadNumber = new AtomicInteger(1);</b>
    -&nbsp;        private final String namePrefix;
    -&nbsp;
    -<b class="fc">&nbsp;        NamedThreadFactory(String namePrefix) {</b>
    -<b class="fc">&nbsp;            SecurityManager s = System.getSecurityManager();</b>
    -<b class="fc">&nbsp;            group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();</b>
    -<b class="fc">&nbsp;            this.namePrefix = namePrefix;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Thread newThread(Runnable r) {
    -<b class="fc">&nbsp;            Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);</b>
    -<b class="fc">&nbsp;            t.setDaemon(true);</b>
    -<b class="fc">&nbsp;            if (t.getPriority() != Thread.NORM_PRIORITY)</b>
    -<b class="nc">&nbsp;                t.setPriority(Thread.NORM_PRIORITY);</b>
    -<b class="fc">&nbsp;            return t;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-5.html
    deleted file mode 100644
    index 95e3cf5c9d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-5.html
    +++ /dev/null
    @@ -1,210 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SharedHealthCheckRegistries</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SharedHealthCheckRegistries (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SharedHealthCheckRegistries</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.atomic.AtomicReference;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A map of shared, named health registries.
    -&nbsp; */
    -&nbsp;public class SharedHealthCheckRegistries {
    -<b class="fc">&nbsp;    private static final ConcurrentMap&lt;String, HealthCheckRegistry&gt; REGISTRIES =</b>
    -&nbsp;            new ConcurrentHashMap&lt;&gt;();
    -&nbsp;
    -<b class="fc">&nbsp;    private static AtomicReference&lt;String&gt; defaultRegistryName = new AtomicReference&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    /* Visible for testing */
    -&nbsp;    static void setDefaultRegistryName(AtomicReference&lt;String&gt; defaultRegistryName) {
    -<b class="fc">&nbsp;        SharedHealthCheckRegistries.defaultRegistryName = defaultRegistryName;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private SharedHealthCheckRegistries() { /* singleton */ }
    -&nbsp;
    -&nbsp;    public static void clear() {
    -<b class="fc">&nbsp;        REGISTRIES.clear();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Set&lt;String&gt; names() {
    -<b class="fc">&nbsp;        return REGISTRIES.keySet();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void remove(String key) {
    -<b class="fc">&nbsp;        REGISTRIES.remove(key);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HealthCheckRegistry add(String name, HealthCheckRegistry registry) {
    -<b class="fc">&nbsp;        return REGISTRIES.putIfAbsent(name, registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HealthCheckRegistry getOrCreate(String name) {
    -<b class="fc">&nbsp;        final HealthCheckRegistry existing = REGISTRIES.get(name);</b>
    -<b class="fc">&nbsp;        if (existing == null) {</b>
    -<b class="fc">&nbsp;            final HealthCheckRegistry created = new HealthCheckRegistry();</b>
    -<b class="fc">&nbsp;            final HealthCheckRegistry raced = add(name, created);</b>
    -<b class="fc">&nbsp;            if (raced == null) {</b>
    -<b class="fc">&nbsp;                return created;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            return raced;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return existing;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new registry and sets it as the default one under the provided name.
    -&nbsp;     *
    -&nbsp;     * @param name the registry name
    -&nbsp;     * @return the default registry
    -&nbsp;     * @throws IllegalStateException if the name has already been set
    -&nbsp;     */
    -&nbsp;    public synchronized static HealthCheckRegistry setDefault(String name) {
    -<b class="fc">&nbsp;        final HealthCheckRegistry registry = getOrCreate(name);</b>
    -<b class="fc">&nbsp;        return setDefault(name, registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Sets the provided registry as the default one under the provided name
    -&nbsp;     *
    -&nbsp;     * @param name                the default registry name
    -&nbsp;     * @param healthCheckRegistry the default registry
    -&nbsp;     * @throws IllegalStateException if the default registry has already been set
    -&nbsp;     */
    -&nbsp;    public static HealthCheckRegistry setDefault(String name, HealthCheckRegistry healthCheckRegistry) {
    -<b class="fc">&nbsp;        if (defaultRegistryName.compareAndSet(null, name)) {</b>
    -<b class="fc">&nbsp;            add(name, healthCheckRegistry);</b>
    -<b class="fc">&nbsp;            return healthCheckRegistry;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default health check registry is already set.&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Gets the name of the default registry, if it has been set
    -&nbsp;     *
    -&nbsp;     * @return the default registry
    -&nbsp;     * @throws IllegalStateException if the default has not been set
    -&nbsp;     */
    -&nbsp;    public static HealthCheckRegistry getDefault() {
    -<b class="fc">&nbsp;        final HealthCheckRegistry healthCheckRegistry = tryGetDefault();</b>
    -<b class="fc">&nbsp;        if (healthCheckRegistry != null) {</b>
    -<b class="fc">&nbsp;            return healthCheckRegistry;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default registry name has not been set.&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Same as {@link #getDefault()} except returns null when the default registry has not been set.
    -&nbsp;     *
    -&nbsp;     * @return the default registry or null
    -&nbsp;     */
    -&nbsp;    public static HealthCheckRegistry tryGetDefault() {
    -<b class="fc">&nbsp;        final String name = defaultRegistryName.get();</b>
    -<b class="fc">&nbsp;        if (name != null) {</b>
    -<b class="fc">&nbsp;            return getOrCreate(name);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return null;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-6.html
    deleted file mode 100644
    index d9a6f53121..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-9/sources/source-6.html
    +++ /dev/null
    @@ -1,103 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckRegistryListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckRegistryListener (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistryListener$MockitoMock$CZZYCxLV</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistryListener$MockitoMock$CZZYCxLV$auxiliary$mgpbJQeh</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistryListener$MockitoMock$CZZYCxLV$auxiliary$QeuBdlQf</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import java.util.EventListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A listener contract for {@link HealthCheckRegistry} events.
    -&nbsp; */
    -&nbsp;public interface HealthCheckRegistryListener extends EventListener {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a new {@link HealthCheck} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name        the name of the health check
    -&nbsp;     * @param healthCheck the health check
    -&nbsp;     */
    -&nbsp;    void onHealthCheckAdded(String name, HealthCheck healthCheck);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link HealthCheck} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name        the name of the health check
    -&nbsp;     * @param healthCheck the health check
    -&nbsp;     */
    -&nbsp;    void onHealthCheckRemoved(String name, HealthCheck healthCheck);
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index.html
    deleted file mode 100644
    index d2b5301bae..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index b407810382..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index aa1b8fc93e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 95d37f2b01..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 987da60bf4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 65fcf45d1e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 70a58bd8f3..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 31f83eeeac..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index acd52ff9c9..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index e9953c3822..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-a/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-a/sources/source-1.html
    deleted file mode 100644
    index 58da81bc91..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-a/sources/source-1.html
    +++ /dev/null
    @@ -1,205 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Async</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Async (com.codahale.metrics.health.annotation)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name">Async$InitialState</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Async$ScheduleType</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking asynchronous health check execution.
    -&nbsp; */
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target(ElementType.TYPE)
    -&nbsp;public @interface Async {
    -&nbsp;    /**
    -&nbsp;     * Enum representing the initial health states.
    -&nbsp;     */
    -<b class="fc">&nbsp;    enum InitialState {</b>
    -<b class="fc">&nbsp;        HEALTHY, UNHEALTHY</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Enum representing the possible schedule types.
    -&nbsp;     */
    -<b class="fc">&nbsp;    enum ScheduleType {</b>
    -<b class="fc">&nbsp;        FIXED_RATE, FIXED_DELAY</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Period between executions.
    -&nbsp;     *
    -&nbsp;     * @return period
    -&nbsp;     */
    -&nbsp;    long period();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Scheduling type of asynchronous executions.
    -&nbsp;     *
    -&nbsp;     * @return schedule type
    -&nbsp;     */
    -&nbsp;    ScheduleType scheduleType() default ScheduleType.FIXED_RATE;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Initial delay of first execution.
    -&nbsp;     *
    -&nbsp;     * @return initial delay
    -&nbsp;     */
    -&nbsp;    long initialDelay() default 0;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Time unit of initial delay, period and healthyTtl.
    -&nbsp;     *
    -&nbsp;     * @return time unit
    -&nbsp;     */
    -&nbsp;    TimeUnit unit() default TimeUnit.SECONDS;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Initial health state until first asynchronous execution completes.
    -&nbsp;     *
    -&nbsp;     * @return initial health state
    -&nbsp;     */
    -&nbsp;    InitialState initialState() default InitialState.HEALTHY;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * How long a healthy result is considered valid before being ignored.
    -&nbsp;     *
    -&nbsp;     * Handles cases where the asynchronous healthcheck did not run (for example thread starvation).
    -&nbsp;     *
    -&nbsp;     * Defaults to 2 * period
    -&nbsp;     *
    -&nbsp;     * @return healthy result time to live
    -&nbsp;     */
    -&nbsp;    long healthyTtl() default -1;
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index.html
    deleted file mode 100644
    index c3a1d2d6c2..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index fa91f5e9dc..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index c9e7fd7949..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 0c09b0dd87..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index c1e2a70be0..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE.html
    deleted file mode 100644
    index a013529b61..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 5e3d001dde..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 988f15c7b2..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index e586407b91..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 0baa4ec2ce..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-1.html
    deleted file mode 100644
    index bb477ebdfa..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-1.html
    +++ /dev/null
    @@ -1,142 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDeadlockHealthCheck</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDeadlockHealthCheck (com.codahale.metrics.health.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDeadlockHealthCheck</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.codahale.metrics.jvm.ThreadDeadlockDetector;
    -&nbsp;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A health check which returns healthy if no threads are deadlocked.
    -&nbsp; */
    -&nbsp;public class ThreadDeadlockHealthCheck extends HealthCheck {
    -&nbsp;    private final ThreadDeadlockDetector detector;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new health check.
    -&nbsp;     */
    -&nbsp;    public ThreadDeadlockHealthCheck() {
    -<b class="fc">&nbsp;        this(new ThreadDeadlockDetector());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new health check with the given detector.
    -&nbsp;     *
    -&nbsp;     * @param detector a thread deadlock detector
    -&nbsp;     */
    -<b class="fc">&nbsp;    public ThreadDeadlockHealthCheck(ThreadDeadlockDetector detector) {</b>
    -<b class="fc">&nbsp;        this.detector = detector;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected Result check() throws Exception {
    -<b class="fc">&nbsp;        final Set&lt;String&gt; threads = detector.getDeadlockedThreads();</b>
    -<b class="fc">&nbsp;        if (threads.isEmpty()) {</b>
    -<b class="fc">&nbsp;            return Result.healthy();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return Result.unhealthy(threads.toString());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-2.html
    deleted file mode 100644
    index aa7100b7e3..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-b/sources/source-2.html
    +++ /dev/null
    @@ -1,268 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedNHttpClientBuilder</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpasyncclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedNHttpClientBuilder (com.codahale.metrics.httpasyncclient)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedNHttpClientBuilder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (5/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (9/11)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedNHttpClientBuilder$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (3/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedNHttpClientBuilder$TimingFutureCallback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpasyncclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.httpclient.HttpClientMetricNameStrategies;
    -&nbsp;import com.codahale.metrics.httpclient.HttpClientMetricNameStrategy;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.concurrent.Future;
    -&nbsp;
    -&nbsp;import org.apache.http.HttpException;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.concurrent.FutureCallback;
    -&nbsp;import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
    -&nbsp;import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
    -&nbsp;import org.apache.http.nio.protocol.HttpAsyncRequestProducer;
    -&nbsp;import org.apache.http.nio.protocol.HttpAsyncResponseConsumer;
    -&nbsp;import org.apache.http.protocol.HttpContext;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedNHttpClientBuilder extends HttpAsyncClientBuilder {</b>
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private final String name;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy, String name) {
    -<b class="fc">&nbsp;        super();</b>
    -<b class="fc">&nbsp;        this.metricRegistry = metricRegistry;</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(metricRegistry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, String name) {
    -<b class="nc">&nbsp;        this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, name);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;        return metricRegistry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public CloseableHttpAsyncClient build() {
    -<b class="fc">&nbsp;        final CloseableHttpAsyncClient ac = super.build();</b>
    -<b class="fc">&nbsp;        return new CloseableHttpAsyncClient() {</b>
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isRunning() {
    -<b class="nc">&nbsp;                return ac.isRunning();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void start() {
    -<b class="fc">&nbsp;                ac.start();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public &lt;T&gt; Future&lt;T&gt; execute(HttpAsyncRequestProducer requestProducer, HttpAsyncResponseConsumer&lt;T&gt; responseConsumer, HttpContext context, FutureCallback&lt;T&gt; callback) {
    -&nbsp;                final Timer.Context timerContext;
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    timerContext = timer(requestProducer.generateRequest()).time();</b>
    -<b class="nc">&nbsp;                } catch (IOException | HttpException ex) {</b>
    -<b class="nc">&nbsp;                    throw new RuntimeException(ex);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;                return ac.execute(requestProducer, responseConsumer, context,</b>
    -&nbsp;                        new TimingFutureCallback&lt;&gt;(callback, timerContext));
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void close() throws IOException {
    -<b class="nc">&nbsp;                ac.close();</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class TimingFutureCallback&lt;T&gt; implements FutureCallback&lt;T&gt; {</b>
    -&nbsp;        private final FutureCallback&lt;T&gt; callback;
    -&nbsp;        private final Timer.Context timerContext;
    -&nbsp;
    -&nbsp;        private TimingFutureCallback(FutureCallback&lt;T&gt; callback,
    -<b class="fc">&nbsp;                                     Timer.Context timerContext) {</b>
    -<b class="fc">&nbsp;            this.callback = callback;</b>
    -<b class="fc">&nbsp;            this.timerContext = requireNonNull(timerContext, &quot;timerContext&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void completed(T result) {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;            if (callback != null) {</b>
    -<b class="fc">&nbsp;                callback.completed(result);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void failed(Exception ex) {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;            if (callback != null) {</b>
    -<b class="fc">&nbsp;                callback.failed(ex);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void cancelled() {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;            if (callback != null) {</b>
    -<b class="fc">&nbsp;                callback.cancelled();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index.html
    deleted file mode 100644
    index 9eca3025be..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index f518ddd31e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 09a30d7aaa..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 14e454d820..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 5b09881d29..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE.html
    deleted file mode 100644
    index d8ac236331..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index fec05578ec..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 28164e30e0..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 96a4c51eb7..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 47abec36f2..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.2%
    -  </span>
    -  <span class="absValue">
    -    (32/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-1.html
    deleted file mode 100644
    index f35f08c391..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-1.html
    +++ /dev/null
    @@ -1,140 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedNClientConnManager</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpasyncclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedNClientConnManager (com.codahale.metrics.httpasyncclient)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedNClientConnManager</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpasyncclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.config.Registry;
    -&nbsp;import org.apache.http.conn.DnsResolver;
    -&nbsp;import org.apache.http.conn.SchemePortResolver;
    -&nbsp;import org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager;
    -&nbsp;import org.apache.http.nio.conn.ManagedNHttpClientConnection;
    -&nbsp;import org.apache.http.nio.conn.NHttpClientConnectionManager;
    -&nbsp;import org.apache.http.nio.conn.NHttpConnectionFactory;
    -&nbsp;import org.apache.http.nio.conn.SchemeIOSessionStrategy;
    -&nbsp;import org.apache.http.nio.reactor.ConnectingIOReactor;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;public class InstrumentedNClientConnManager extends PoolingNHttpClientConnectionManager {
    -&nbsp;
    -&nbsp;    public InstrumentedNClientConnManager(final ConnectingIOReactor ioreactor, final NHttpConnectionFactory&lt;ManagedNHttpClientConnection&gt; connFactory, final SchemePortResolver schemePortResolver, final MetricRegistry metricRegistry, final Registry&lt;SchemeIOSessionStrategy&gt; iosessionFactoryRegistry, final long timeToLive, final TimeUnit tunit, final DnsResolver dnsResolver, final String name) {
    -<b class="fc">&nbsp;        super(ioreactor, connFactory, iosessionFactoryRegistry, schemePortResolver, dnsResolver, timeToLive, tunit);</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;available-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;leased-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;max-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;pending-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-2.html
    deleted file mode 100644
    index 626b14483a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-2.html
    +++ /dev/null
    @@ -1,268 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedNHttpClientBuilder</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpasyncclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedNHttpClientBuilder (com.codahale.metrics.httpasyncclient)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedNHttpClientBuilder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (5/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (9/11)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedNHttpClientBuilder$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (3/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedNHttpClientBuilder$TimingFutureCallback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpasyncclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.httpclient.HttpClientMetricNameStrategies;
    -&nbsp;import com.codahale.metrics.httpclient.HttpClientMetricNameStrategy;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.concurrent.Future;
    -&nbsp;
    -&nbsp;import org.apache.http.HttpException;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.concurrent.FutureCallback;
    -&nbsp;import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
    -&nbsp;import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
    -&nbsp;import org.apache.http.nio.protocol.HttpAsyncRequestProducer;
    -&nbsp;import org.apache.http.nio.protocol.HttpAsyncResponseConsumer;
    -&nbsp;import org.apache.http.protocol.HttpContext;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedNHttpClientBuilder extends HttpAsyncClientBuilder {</b>
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private final String name;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy, String name) {
    -<b class="fc">&nbsp;        super();</b>
    -<b class="fc">&nbsp;        this.metricRegistry = metricRegistry;</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(metricRegistry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, String name) {
    -<b class="nc">&nbsp;        this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, name);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;        return metricRegistry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public CloseableHttpAsyncClient build() {
    -<b class="fc">&nbsp;        final CloseableHttpAsyncClient ac = super.build();</b>
    -<b class="fc">&nbsp;        return new CloseableHttpAsyncClient() {</b>
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isRunning() {
    -<b class="nc">&nbsp;                return ac.isRunning();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void start() {
    -<b class="fc">&nbsp;                ac.start();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public &lt;T&gt; Future&lt;T&gt; execute(HttpAsyncRequestProducer requestProducer, HttpAsyncResponseConsumer&lt;T&gt; responseConsumer, HttpContext context, FutureCallback&lt;T&gt; callback) {
    -&nbsp;                final Timer.Context timerContext;
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    timerContext = timer(requestProducer.generateRequest()).time();</b>
    -<b class="nc">&nbsp;                } catch (IOException | HttpException ex) {</b>
    -<b class="nc">&nbsp;                    throw new RuntimeException(ex);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;                return ac.execute(requestProducer, responseConsumer, context,</b>
    -&nbsp;                        new TimingFutureCallback&lt;&gt;(callback, timerContext));
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void close() throws IOException {
    -<b class="nc">&nbsp;                ac.close();</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class TimingFutureCallback&lt;T&gt; implements FutureCallback&lt;T&gt; {</b>
    -&nbsp;        private final FutureCallback&lt;T&gt; callback;
    -&nbsp;        private final Timer.Context timerContext;
    -&nbsp;
    -&nbsp;        private TimingFutureCallback(FutureCallback&lt;T&gt; callback,
    -<b class="fc">&nbsp;                                     Timer.Context timerContext) {</b>
    -<b class="fc">&nbsp;            this.callback = callback;</b>
    -<b class="fc">&nbsp;            this.timerContext = requireNonNull(timerContext, &quot;timerContext&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void completed(T result) {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;            if (callback != null) {</b>
    -<b class="fc">&nbsp;                callback.completed(result);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void failed(Exception ex) {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;            if (callback != null) {</b>
    -<b class="fc">&nbsp;                callback.failed(ex);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void cancelled() {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;            if (callback != null) {</b>
    -<b class="fc">&nbsp;                callback.cancelled();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-3.html
    deleted file mode 100644
    index 343ac997e4..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-3.html
    +++ /dev/null
    @@ -1,330 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClientConnectionManager</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClientConnectionManager</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (8/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84%
    -  </span>
    -  <span class="absValue">
    -    (21/25)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpClientConnectionManager$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    36.4%
    -  </span>
    -  <span class="absValue">
    -    (4/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    46.2%
    -  </span>
    -  <span class="absValue">
    -    (12/26)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.config.Registry;
    -&nbsp;import org.apache.http.config.RegistryBuilder;
    -&nbsp;import org.apache.http.conn.DnsResolver;
    -&nbsp;import org.apache.http.conn.HttpClientConnectionManager;
    -&nbsp;import org.apache.http.conn.HttpClientConnectionOperator;
    -&nbsp;import org.apache.http.conn.HttpConnectionFactory;
    -&nbsp;import org.apache.http.conn.ManagedHttpClientConnection;
    -&nbsp;import org.apache.http.conn.SchemePortResolver;
    -&nbsp;import org.apache.http.conn.routing.HttpRoute;
    -&nbsp;import org.apache.http.conn.socket.ConnectionSocketFactory;
    -&nbsp;import org.apache.http.conn.socket.PlainConnectionSocketFactory;
    -&nbsp;import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
    -&nbsp;import org.apache.http.impl.conn.DefaultHttpClientConnectionOperator;
    -&nbsp;import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
    -&nbsp;import org.apache.http.impl.conn.SystemDefaultDnsResolver;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    -&nbsp; */
    -&nbsp;public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
    -&nbsp;
    -&nbsp;
    -&nbsp;    protected static Registry&lt;ConnectionSocketFactory&gt; getDefaultRegistry() {
    -<b class="fc">&nbsp;        return RegistryBuilder.&lt;ConnectionSocketFactory&gt;create()</b>
    -<b class="fc">&nbsp;            .register(&quot;http&quot;, PlainConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;            .register(&quot;https&quot;, SSLConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;            .build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricsRegistry;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        this(metricRegistry, getDefaultRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    -<b class="nc">&nbsp;        this(metricsRegistry, socketFactoryRegistry, -1, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry,
    -&nbsp;                                                   long connTTL,
    -&nbsp;                                                   TimeUnit connTTLTimeUnit) {
    -<b class="nc">&nbsp;        this(metricsRegistry, socketFactoryRegistry, null, null, SystemDefaultDnsResolver.INSTANCE, connTTL, connTTLTimeUnit, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry,
    -&nbsp;                                                   HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt;
    -&nbsp;                                                           connFactory,
    -&nbsp;                                                   SchemePortResolver schemePortResolver,
    -&nbsp;                                                   DnsResolver dnsResolver,
    -&nbsp;                                                   long connTTL,
    -&nbsp;                                                   TimeUnit connTTLTimeUnit,
    -&nbsp;                                                   String name) {
    -<b class="nc">&nbsp;        this(metricsRegistry,</b>
    -&nbsp;             new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver),
    -&nbsp;             connFactory,
    -&nbsp;             connTTL,
    -&nbsp;             connTTLTimeUnit,
    -&nbsp;             name);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   HttpClientConnectionOperator httpClientConnectionOperator,
    -&nbsp;                                                   HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt;
    -&nbsp;                                                           connFactory,
    -&nbsp;                                                   long connTTL,
    -&nbsp;                                                   TimeUnit connTTLTimeUnit,
    -&nbsp;                                                   String name) {
    -<b class="fc">&nbsp;        super(httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit);</b>
    -<b class="fc">&nbsp;        this.metricsRegistry = metricsRegistry;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;available-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;leased-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;max-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;pending-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void shutdown() {
    -<b class="fc">&nbsp;        super.shutdown();</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;available-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;leased-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;max-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;pending-connections&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static class Builder {
    -&nbsp;        private MetricRegistry metricsRegistry;
    -&nbsp;        private HttpClientConnectionOperator httpClientConnectionOperator;
    -<b class="fc">&nbsp;        private Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry = getDefaultRegistry();</b>
    -&nbsp;        private HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt; connFactory;
    -&nbsp;        private SchemePortResolver schemePortResolver;
    -<b class="fc">&nbsp;        private DnsResolver dnsResolver = SystemDefaultDnsResolver.INSTANCE;</b>
    -<b class="fc">&nbsp;        private long connTTL = -1;</b>
    -<b class="fc">&nbsp;        private TimeUnit connTTLTimeUnit = TimeUnit.MILLISECONDS;</b>
    -&nbsp;        private String name;
    -&nbsp;
    -<b class="fc">&nbsp;        Builder() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder metricsRegistry(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;            this.metricsRegistry = metricsRegistry;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder socketFactoryRegistry(Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    -<b class="nc">&nbsp;            this.socketFactoryRegistry = socketFactoryRegistry;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connFactory(HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt; connFactory) {
    -<b class="nc">&nbsp;            this.connFactory = connFactory;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    -<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    -<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connTTL(long connTTL) {
    -<b class="nc">&nbsp;            this.connTTL = connTTL;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connTTLTimeUnit(TimeUnit connTTLTimeUnit) {
    -<b class="nc">&nbsp;            this.connTTLTimeUnit = connTTLTimeUnit;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
    -<b class="nc">&nbsp;            this.httpClientConnectionOperator = httpClientConnectionOperator;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder name(final String name) {
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public InstrumentedHttpClientConnectionManager build() {
    -<b class="fc">&nbsp;            if (httpClientConnectionOperator == null) {</b>
    -<b class="fc">&nbsp;                httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new InstrumentedHttpClientConnectionManager(metricsRegistry, httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit, name);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-4.html
    deleted file mode 100644
    index 62b5ec4942..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-4.html
    +++ /dev/null
    @@ -1,138 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClients</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClients</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.impl.client.CloseableHttpClient;
    -&nbsp;import org.apache.http.impl.client.HttpClientBuilder;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.httpclient.HttpClientMetricNameStrategies.METHOD_ONLY;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpClients {
    -&nbsp;    private InstrumentedHttpClients() {
    -&nbsp;        super();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
    -&nbsp;                                                    HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        return HttpClientBuilder.create()</b>
    -<b class="fc">&nbsp;                .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))</b>
    -<b class="fc">&nbsp;                .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-5.html
    deleted file mode 100644
    index 64b1bd1614..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-c/sources/source-5.html
    +++ /dev/null
    @@ -1,166 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpRequestExecutor</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpRequestExecutor</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.apache.http.HttpClientConnection;
    -&nbsp;import org.apache.http.HttpException;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.HttpResponse;
    -&nbsp;import org.apache.http.protocol.HttpContext;
    -&nbsp;import org.apache.http.protocol.HttpRequestExecutor;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name,
    -&nbsp;                                           int waitForContinue) {
    -<b class="fc">&nbsp;        super(waitForContinue);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public HttpResponse execute(HttpRequest request, HttpClientConnection conn, HttpContext context) throws HttpException, IOException {
    -<b class="fc">&nbsp;        final Timer.Context timerContext = timer(request).time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return super.execute(request, conn, context);</b>
    -<b class="fc">&nbsp;        } catch (HttpException | IOException e) {</b>
    -<b class="fc">&nbsp;            meter(e).mark();</b>
    -<b class="fc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;        return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meter(Exception e) {
    -<b class="fc">&nbsp;        return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index.html
    deleted file mode 100644
    index ae4e9d9fe9..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index e6a45c4071..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 6afe750ca5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 4150dc3444..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 65221d3d06..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 6841206a60..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 39ba0f1dd1..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 8b29b5d410..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 504c1517aa..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 95da7cb809..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-1.html
    deleted file mode 100644
    index 685e664f51..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-1.html
    +++ /dev/null
    @@ -1,165 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HttpClientMetricNameStrategies</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HttpClientMetricNameStrategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.client.HttpClient;
    -&nbsp;import org.apache.http.client.methods.HttpRequestWrapper;
    -&nbsp;import org.apache.http.client.methods.HttpUriRequest;
    -&nbsp;import org.apache.http.client.utils.URIBuilder;
    -&nbsp;
    -&nbsp;import java.net.URI;
    -&nbsp;import java.net.URISyntaxException;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class HttpClientMetricNameStrategies {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy METHOD_ONLY =</b>
    -<b class="fc">&nbsp;        (name, request) -&gt; name(HttpClient.class,</b>
    -&nbsp;            name,
    -<b class="fc">&nbsp;            methodNameString(request));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy HOST_AND_METHOD =</b>
    -<b class="fc">&nbsp;        (name, request) -&gt; name(HttpClient.class,</b>
    -&nbsp;            name,
    -<b class="fc">&nbsp;            requestURI(request).getHost(),</b>
    -<b class="fc">&nbsp;            methodNameString(request));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy PATH_AND_METHOD =</b>
    -&nbsp;        (name, request) -&gt; {
    -<b class="fc">&nbsp;            final URIBuilder url = new URIBuilder(requestURI(request));</b>
    -<b class="fc">&nbsp;            return name(HttpClient.class,</b>
    -&nbsp;                name,
    -<b class="fc">&nbsp;                url.getPath(),</b>
    -<b class="fc">&nbsp;                methodNameString(request));</b>
    -&nbsp;        };
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =</b>
    -&nbsp;        (name, request) -&gt; {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                final URIBuilder url = new URIBuilder(requestURI(request));</b>
    -<b class="fc">&nbsp;                return name(HttpClient.class,</b>
    -&nbsp;                    name,
    -<b class="fc">&nbsp;                    url.removeQuery().build().toString(),</b>
    -<b class="fc">&nbsp;                    methodNameString(request));</b>
    -<b class="nc">&nbsp;            } catch (URISyntaxException e) {</b>
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(e);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -&nbsp;    private static String methodNameString(HttpRequest request) {
    -<b class="fc">&nbsp;        return request.getRequestLine().getMethod().toLowerCase() + &quot;-requests&quot;;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static URI requestURI(HttpRequest request) {
    -<b class="fc">&nbsp;        if (request instanceof HttpRequestWrapper)</b>
    -<b class="fc">&nbsp;            return requestURI(((HttpRequestWrapper) request).getOriginal());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return (request instanceof HttpUriRequest) ?</b>
    -<b class="fc">&nbsp;            ((HttpUriRequest) request).getURI() :</b>
    -<b class="nc">&nbsp;            URI.create(request.getRequestLine().getUri());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-2.html
    deleted file mode 100644
    index 850c3e263e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-2.html
    +++ /dev/null
    @@ -1,146 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HttpClientMetricNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HttpClientMetricNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$DMDxCMdT</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$DMDxCMdT$auxiliary$3CEX09I0</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$DMDxCMdT$auxiliary$r0oMeEq8</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$p46QRylP</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$p46QRylP$auxiliary$1MjLUKCg</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$p46QRylP$auxiliary$QkC4FQib</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.client.HttpClient;
    -&nbsp;
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface HttpClientMetricNameStrategy {
    -&nbsp;
    -&nbsp;    String getNameFor(String name, HttpRequest request);
    -&nbsp;
    -&nbsp;    default String getNameFor(String name, Exception exception) {
    -<b class="nc">&nbsp;        return MetricRegistry.name(HttpClient.class,</b>
    -&nbsp;                name,
    -<b class="nc">&nbsp;                exception.getClass().getSimpleName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-3.html
    deleted file mode 100644
    index 820a7448fc..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-3.html
    +++ /dev/null
    @@ -1,330 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClientConnectionManager</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClientConnectionManager</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (8/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84%
    -  </span>
    -  <span class="absValue">
    -    (21/25)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpClientConnectionManager$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    36.4%
    -  </span>
    -  <span class="absValue">
    -    (4/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    46.2%
    -  </span>
    -  <span class="absValue">
    -    (12/26)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.config.Registry;
    -&nbsp;import org.apache.http.config.RegistryBuilder;
    -&nbsp;import org.apache.http.conn.DnsResolver;
    -&nbsp;import org.apache.http.conn.HttpClientConnectionManager;
    -&nbsp;import org.apache.http.conn.HttpClientConnectionOperator;
    -&nbsp;import org.apache.http.conn.HttpConnectionFactory;
    -&nbsp;import org.apache.http.conn.ManagedHttpClientConnection;
    -&nbsp;import org.apache.http.conn.SchemePortResolver;
    -&nbsp;import org.apache.http.conn.routing.HttpRoute;
    -&nbsp;import org.apache.http.conn.socket.ConnectionSocketFactory;
    -&nbsp;import org.apache.http.conn.socket.PlainConnectionSocketFactory;
    -&nbsp;import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
    -&nbsp;import org.apache.http.impl.conn.DefaultHttpClientConnectionOperator;
    -&nbsp;import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
    -&nbsp;import org.apache.http.impl.conn.SystemDefaultDnsResolver;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    -&nbsp; */
    -&nbsp;public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
    -&nbsp;
    -&nbsp;
    -&nbsp;    protected static Registry&lt;ConnectionSocketFactory&gt; getDefaultRegistry() {
    -<b class="fc">&nbsp;        return RegistryBuilder.&lt;ConnectionSocketFactory&gt;create()</b>
    -<b class="fc">&nbsp;            .register(&quot;http&quot;, PlainConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;            .register(&quot;https&quot;, SSLConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;            .build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricsRegistry;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        this(metricRegistry, getDefaultRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    -<b class="nc">&nbsp;        this(metricsRegistry, socketFactoryRegistry, -1, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry,
    -&nbsp;                                                   long connTTL,
    -&nbsp;                                                   TimeUnit connTTLTimeUnit) {
    -<b class="nc">&nbsp;        this(metricsRegistry, socketFactoryRegistry, null, null, SystemDefaultDnsResolver.INSTANCE, connTTL, connTTLTimeUnit, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry,
    -&nbsp;                                                   HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt;
    -&nbsp;                                                           connFactory,
    -&nbsp;                                                   SchemePortResolver schemePortResolver,
    -&nbsp;                                                   DnsResolver dnsResolver,
    -&nbsp;                                                   long connTTL,
    -&nbsp;                                                   TimeUnit connTTLTimeUnit,
    -&nbsp;                                                   String name) {
    -<b class="nc">&nbsp;        this(metricsRegistry,</b>
    -&nbsp;             new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver),
    -&nbsp;             connFactory,
    -&nbsp;             connTTL,
    -&nbsp;             connTTLTimeUnit,
    -&nbsp;             name);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   HttpClientConnectionOperator httpClientConnectionOperator,
    -&nbsp;                                                   HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt;
    -&nbsp;                                                           connFactory,
    -&nbsp;                                                   long connTTL,
    -&nbsp;                                                   TimeUnit connTTLTimeUnit,
    -&nbsp;                                                   String name) {
    -<b class="fc">&nbsp;        super(httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit);</b>
    -<b class="fc">&nbsp;        this.metricsRegistry = metricsRegistry;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;available-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;leased-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;max-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;pending-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void shutdown() {
    -<b class="fc">&nbsp;        super.shutdown();</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;available-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;leased-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;max-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;pending-connections&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static class Builder {
    -&nbsp;        private MetricRegistry metricsRegistry;
    -&nbsp;        private HttpClientConnectionOperator httpClientConnectionOperator;
    -<b class="fc">&nbsp;        private Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry = getDefaultRegistry();</b>
    -&nbsp;        private HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt; connFactory;
    -&nbsp;        private SchemePortResolver schemePortResolver;
    -<b class="fc">&nbsp;        private DnsResolver dnsResolver = SystemDefaultDnsResolver.INSTANCE;</b>
    -<b class="fc">&nbsp;        private long connTTL = -1;</b>
    -<b class="fc">&nbsp;        private TimeUnit connTTLTimeUnit = TimeUnit.MILLISECONDS;</b>
    -&nbsp;        private String name;
    -&nbsp;
    -<b class="fc">&nbsp;        Builder() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder metricsRegistry(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;            this.metricsRegistry = metricsRegistry;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder socketFactoryRegistry(Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    -<b class="nc">&nbsp;            this.socketFactoryRegistry = socketFactoryRegistry;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connFactory(HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt; connFactory) {
    -<b class="nc">&nbsp;            this.connFactory = connFactory;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    -<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    -<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connTTL(long connTTL) {
    -<b class="nc">&nbsp;            this.connTTL = connTTL;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connTTLTimeUnit(TimeUnit connTTLTimeUnit) {
    -<b class="nc">&nbsp;            this.connTTLTimeUnit = connTTLTimeUnit;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
    -<b class="nc">&nbsp;            this.httpClientConnectionOperator = httpClientConnectionOperator;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder name(final String name) {
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public InstrumentedHttpClientConnectionManager build() {
    -<b class="fc">&nbsp;            if (httpClientConnectionOperator == null) {</b>
    -<b class="fc">&nbsp;                httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new InstrumentedHttpClientConnectionManager(metricsRegistry, httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit, name);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-4.html
    deleted file mode 100644
    index 659a5796c5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-4.html
    +++ /dev/null
    @@ -1,138 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClients</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClients</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.impl.client.CloseableHttpClient;
    -&nbsp;import org.apache.http.impl.client.HttpClientBuilder;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.httpclient.HttpClientMetricNameStrategies.METHOD_ONLY;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpClients {
    -&nbsp;    private InstrumentedHttpClients() {
    -&nbsp;        super();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
    -&nbsp;                                                    HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        return HttpClientBuilder.create()</b>
    -<b class="fc">&nbsp;                .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))</b>
    -<b class="fc">&nbsp;                .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-5.html
    deleted file mode 100644
    index ef5046b05c..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-5.html
    +++ /dev/null
    @@ -1,166 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpRequestExecutor</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpRequestExecutor</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.apache.http.HttpClientConnection;
    -&nbsp;import org.apache.http.HttpException;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.HttpResponse;
    -&nbsp;import org.apache.http.protocol.HttpContext;
    -&nbsp;import org.apache.http.protocol.HttpRequestExecutor;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name,
    -&nbsp;                                           int waitForContinue) {
    -<b class="fc">&nbsp;        super(waitForContinue);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public HttpResponse execute(HttpRequest request, HttpClientConnection conn, HttpContext context) throws HttpException, IOException {
    -<b class="fc">&nbsp;        final Timer.Context timerContext = timer(request).time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return super.execute(request, conn, context);</b>
    -<b class="fc">&nbsp;        } catch (HttpException | IOException e) {</b>
    -<b class="fc">&nbsp;            meter(e).mark();</b>
    -<b class="fc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;        return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meter(Exception e) {
    -<b class="fc">&nbsp;        return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-6.html
    deleted file mode 100644
    index a3e2b23c91..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-6.html
    +++ /dev/null
    @@ -1,308 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClientConnectionManager</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClientConnectionManager</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (23/23)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpClientConnectionManager$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (4/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    38.5%
    -  </span>
    -  <span class="absValue">
    -    (10/26)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.DnsResolver;
    -&nbsp;import org.apache.hc.client5.http.SchemePortResolver;
    -&nbsp;import org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator;
    -&nbsp;import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionOperator;
    -&nbsp;import org.apache.hc.client5.http.io.ManagedHttpClientConnection;
    -&nbsp;import org.apache.hc.client5.http.socket.ConnectionSocketFactory;
    -&nbsp;import org.apache.hc.client5.http.socket.PlainConnectionSocketFactory;
    -&nbsp;import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
    -&nbsp;import org.apache.hc.core5.http.URIScheme;
    -&nbsp;import org.apache.hc.core5.http.config.Registry;
    -&nbsp;import org.apache.hc.core5.http.config.RegistryBuilder;
    -&nbsp;import org.apache.hc.core5.http.io.HttpConnectionFactory;
    -&nbsp;import org.apache.hc.core5.io.CloseMode;
    -&nbsp;import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
    -&nbsp;import org.apache.hc.core5.pool.PoolReusePolicy;
    -&nbsp;import org.apache.hc.core5.util.TimeValue;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    -&nbsp; */
    -&nbsp;public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
    -<b class="fc">&nbsp;    private static final String METRICS_PREFIX = HttpClientConnectionManager.class.getName();</b>
    -&nbsp;
    -&nbsp;    protected static Registry&lt;ConnectionSocketFactory&gt; getDefaultRegistry() {
    -<b class="fc">&nbsp;        return RegistryBuilder.&lt;ConnectionSocketFactory&gt;create()</b>
    -<b class="fc">&nbsp;                .register(URIScheme.HTTP.id, PlainConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;                .register(URIScheme.HTTPS.id, SSLConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;                .build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricsRegistry;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    InstrumentedHttpClientConnectionManager(final MetricRegistry metricRegistry,
    -&nbsp;                                            final String name,
    -&nbsp;                                            final HttpClientConnectionOperator httpClientConnectionOperator,
    -&nbsp;                                            final PoolConcurrencyPolicy poolConcurrencyPolicy,
    -&nbsp;                                            final PoolReusePolicy poolReusePolicy,
    -&nbsp;                                            final TimeValue timeToLive,
    -&nbsp;                                            final HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory) {
    -&nbsp;
    -<b class="fc">&nbsp;        super(httpClientConnectionOperator, poolConcurrencyPolicy, poolReusePolicy, timeToLive, connFactory);</b>
    -<b class="fc">&nbsp;        this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;available-connections&quot;),</b>
    -&nbsp;                () -&gt; {
    -<b class="fc">&nbsp;                    return getTotalStats().getAvailable();</b>
    -&nbsp;                });
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;leased-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;max-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax()</b>
    -&nbsp;        );
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;pending-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="fc">&nbsp;        close(CloseMode.GRACEFUL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close(CloseMode closeMode) {
    -<b class="fc">&nbsp;        super.close(closeMode);</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;available-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;leased-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;max-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;pending-connections&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static class Builder {
    -&nbsp;        private MetricRegistry metricsRegistry;
    -&nbsp;        private String name;
    -&nbsp;        private HttpClientConnectionOperator httpClientConnectionOperator;
    -<b class="fc">&nbsp;        private Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry = getDefaultRegistry();</b>
    -&nbsp;        private SchemePortResolver schemePortResolver;
    -&nbsp;        private DnsResolver dnsResolver;
    -&nbsp;        private PoolConcurrencyPolicy poolConcurrencyPolicy;
    -&nbsp;        private PoolReusePolicy poolReusePolicy;
    -<b class="fc">&nbsp;        private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;</b>
    -&nbsp;        private HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory;
    -&nbsp;
    -<b class="fc">&nbsp;        Builder() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder metricsRegistry(MetricRegistry metricRegistry) {
    -<b class="fc">&nbsp;            this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder name(final String name) {
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder socketFactoryRegistry(Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    -<b class="nc">&nbsp;            this.socketFactoryRegistry = requireNonNull(socketFactoryRegistry, &quot;socketFactoryRegistry&quot;);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connFactory(HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory) {
    -<b class="nc">&nbsp;            this.connFactory = connFactory;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    -<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    -<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder timeToLive(TimeValue timeToLive) {
    -<b class="nc">&nbsp;            this.timeToLive = timeToLive;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
    -<b class="nc">&nbsp;            this.httpClientConnectionOperator = httpClientConnectionOperator;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
    -<b class="nc">&nbsp;            this.poolConcurrencyPolicy = poolConcurrencyPolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
    -<b class="nc">&nbsp;            this.poolReusePolicy = poolReusePolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public InstrumentedHttpClientConnectionManager build() {
    -<b class="fc">&nbsp;            if (httpClientConnectionOperator == null) {</b>
    -<b class="fc">&nbsp;                httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(</b>
    -&nbsp;                        socketFactoryRegistry,
    -&nbsp;                        schemePortResolver,
    -&nbsp;                        dnsResolver);
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            return new InstrumentedHttpClientConnectionManager(</b>
    -&nbsp;                    metricsRegistry,
    -&nbsp;                    name,
    -&nbsp;                    httpClientConnectionOperator,
    -&nbsp;                    poolConcurrencyPolicy,
    -&nbsp;                    poolReusePolicy,
    -&nbsp;                    timeToLive,
    -&nbsp;                    connFactory);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-7.html
    deleted file mode 100644
    index 9f1e43c5f5..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-7.html
    +++ /dev/null
    @@ -1,138 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClients</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClients</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
    -&nbsp;import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpClients {
    -&nbsp;    private InstrumentedHttpClients() {
    -&nbsp;        super();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
    -&nbsp;                                                    HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        return HttpClientBuilder.create()</b>
    -<b class="fc">&nbsp;                .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))</b>
    -<b class="fc">&nbsp;                .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-8.html
    deleted file mode 100644
    index 84b611b450..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-d/sources/source-8.html
    +++ /dev/null
    @@ -1,182 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpRequestExecutor</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpRequestExecutor</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.apache.hc.core5.http.ClassicHttpRequest;
    -&nbsp;import org.apache.hc.core5.http.ClassicHttpResponse;
    -&nbsp;import org.apache.hc.core5.http.ConnectionReuseStrategy;
    -&nbsp;import org.apache.hc.core5.http.HttpException;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;import org.apache.hc.core5.http.impl.Http1StreamListener;
    -&nbsp;import org.apache.hc.core5.http.impl.io.HttpRequestExecutor;
    -&nbsp;import org.apache.hc.core5.http.io.HttpClientConnection;
    -&nbsp;import org.apache.hc.core5.http.io.HttpResponseInformationCallback;
    -&nbsp;import org.apache.hc.core5.http.protocol.HttpContext;
    -&nbsp;import org.apache.hc.core5.util.Timeout;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name,
    -&nbsp;                                           Timeout waitForContinue) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, waitForContinue, null, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name,
    -&nbsp;                                           Timeout waitForContinue,
    -&nbsp;                                           ConnectionReuseStrategy connReuseStrategy,
    -&nbsp;                                           Http1StreamListener streamListener) {
    -<b class="fc">&nbsp;        super(waitForContinue, connReuseStrategy, streamListener);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public ClassicHttpResponse execute(ClassicHttpRequest request, HttpClientConnection conn, HttpResponseInformationCallback informationCallback, HttpContext context) throws IOException, HttpException {
    -<b class="fc">&nbsp;        final Timer.Context timerContext = timer(request).time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return super.execute(request, conn, informationCallback, context);</b>
    -<b class="fc">&nbsp;        } catch (HttpException | IOException e) {</b>
    -<b class="fc">&nbsp;            meter(e).mark();</b>
    -<b class="fc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;        return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meter(Exception e) {
    -<b class="fc">&nbsp;        return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-29 23:40</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index.html
    deleted file mode 100644
    index 50cb623ab9..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 94b053b973..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 29aeaae831..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index d01783b69d..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 26a9a330ba..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE.html
    deleted file mode 100644
    index d6c17e11a9..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index c139afc919..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 0fad18627b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 4e71e27aa7..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 7523160f38..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-1.html
    deleted file mode 100644
    index 4d456fd854..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-1.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HttpClientMetricNameStrategies</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HttpClientMetricNameStrategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import org.apache.hc.client5.http.classic.HttpClient;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;import org.apache.hc.core5.net.URIBuilder;
    -&nbsp;
    -&nbsp;import java.net.URISyntaxException;
    -&nbsp;import java.util.Locale;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class HttpClientMetricNameStrategies {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy METHOD_ONLY =</b>
    -<b class="fc">&nbsp;            (name, request) -&gt; name(HttpClient.class,</b>
    -&nbsp;                    name,
    -<b class="fc">&nbsp;                    methodNameString(request));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy HOST_AND_METHOD =</b>
    -&nbsp;            (name, request) -&gt; {
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    return name(HttpClient.class,</b>
    -&nbsp;                            name,
    -<b class="fc">&nbsp;                            request.getUri().getHost(),</b>
    -<b class="fc">&nbsp;                            methodNameString(request));</b>
    -<b class="nc">&nbsp;                } catch (URISyntaxException e) {</b>
    -<b class="nc">&nbsp;                    throw new IllegalArgumentException(e);</b>
    -&nbsp;                }
    -&nbsp;            };
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =</b>
    -&nbsp;            (name, request) -&gt; {
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    final URIBuilder url = new URIBuilder(request.getUri());</b>
    -<b class="fc">&nbsp;                    return name(HttpClient.class,</b>
    -&nbsp;                            name,
    -<b class="fc">&nbsp;                            url.removeQuery().build().toString(),</b>
    -<b class="fc">&nbsp;                            methodNameString(request));</b>
    -<b class="nc">&nbsp;                } catch (URISyntaxException e) {</b>
    -<b class="nc">&nbsp;                    throw new IllegalArgumentException(e);</b>
    -&nbsp;                }
    -&nbsp;            };
    -&nbsp;
    -&nbsp;    private static String methodNameString(HttpRequest request) {
    -<b class="fc">&nbsp;        return request.getMethod().toLowerCase(Locale.ROOT) + &quot;-requests&quot;;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-2.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-2.html
    deleted file mode 100644
    index e9e851c434..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-2.html
    +++ /dev/null
    @@ -1,137 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HttpClientMetricNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HttpClientMetricNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$lUdR5b3N</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$lUdR5b3N$auxiliary$kqfMgHbn</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$lUdR5b3N$auxiliary$Rx31mbKS</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.classic.HttpClient;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface HttpClientMetricNameStrategy {
    -&nbsp;
    -&nbsp;    String getNameFor(String name, HttpRequest request);
    -&nbsp;
    -&nbsp;    default String getNameFor(String name, Exception exception) {
    -<b class="nc">&nbsp;        return MetricRegistry.name(HttpClient.class,</b>
    -&nbsp;                name,
    -<b class="nc">&nbsp;                exception.getClass().getSimpleName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-3.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-3.html
    deleted file mode 100644
    index 9a84473ad6..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-3.html
    +++ /dev/null
    @@ -1,285 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAsyncClientConnectionManager</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAsyncClientConnectionManager (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAsyncClientConnectionManager</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedAsyncClientConnectionManager$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (4/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (8/20)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.DnsResolver;
    -&nbsp;import org.apache.hc.client5.http.SchemePortResolver;
    -&nbsp;import org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
    -&nbsp;import org.apache.hc.core5.http.URIScheme;
    -&nbsp;import org.apache.hc.core5.http.config.Lookup;
    -&nbsp;import org.apache.hc.core5.http.config.Registry;
    -&nbsp;import org.apache.hc.core5.http.config.RegistryBuilder;
    -&nbsp;import org.apache.hc.core5.http.nio.ssl.TlsStrategy;
    -&nbsp;import org.apache.hc.core5.io.CloseMode;
    -&nbsp;import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
    -&nbsp;import org.apache.hc.core5.pool.PoolReusePolicy;
    -&nbsp;import org.apache.hc.core5.util.TimeValue;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    -&nbsp; */
    -&nbsp;public class InstrumentedAsyncClientConnectionManager extends PoolingAsyncClientConnectionManager {
    -<b class="fc">&nbsp;    private static final String METRICS_PREFIX = AsyncClientConnectionManager.class.getName();</b>
    -&nbsp;
    -&nbsp;    protected static Registry&lt;TlsStrategy&gt; getDefaultTlsStrategy() {
    -<b class="fc">&nbsp;        return RegistryBuilder.&lt;TlsStrategy&gt;create()</b>
    -<b class="fc">&nbsp;                .register(URIScheme.HTTPS.id, DefaultClientTlsStrategy.getDefault())</b>
    -<b class="fc">&nbsp;                .build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricsRegistry;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    InstrumentedAsyncClientConnectionManager(final MetricRegistry metricRegistry,
    -&nbsp;                                             final String name,
    -&nbsp;                                             final Lookup&lt;TlsStrategy&gt; tlsStrategyLookup,
    -&nbsp;                                             final PoolConcurrencyPolicy poolConcurrencyPolicy,
    -&nbsp;                                             final PoolReusePolicy poolReusePolicy,
    -&nbsp;                                             final TimeValue timeToLive,
    -&nbsp;                                             final SchemePortResolver schemePortResolver,
    -&nbsp;                                             final DnsResolver dnsResolver) {
    -&nbsp;
    -<b class="fc">&nbsp;        super(tlsStrategyLookup, poolConcurrencyPolicy, poolReusePolicy, timeToLive, schemePortResolver, dnsResolver);</b>
    -<b class="fc">&nbsp;        this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;available-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;leased-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;max-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;pending-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="fc">&nbsp;        close(CloseMode.GRACEFUL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close(CloseMode closeMode) {
    -<b class="fc">&nbsp;        super.close(closeMode);</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;available-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;leased-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;max-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;pending-connections&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static class Builder {
    -&nbsp;        private MetricRegistry metricsRegistry;
    -&nbsp;        private String name;
    -<b class="fc">&nbsp;        private Lookup&lt;TlsStrategy&gt; tlsStrategyLookup = getDefaultTlsStrategy();</b>
    -&nbsp;        private SchemePortResolver schemePortResolver;
    -&nbsp;        private DnsResolver dnsResolver;
    -&nbsp;        private PoolConcurrencyPolicy poolConcurrencyPolicy;
    -&nbsp;        private PoolReusePolicy poolReusePolicy;
    -<b class="fc">&nbsp;        private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        Builder() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder metricsRegistry(MetricRegistry metricRegistry) {
    -<b class="fc">&nbsp;            this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder name(final String name) {
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    -<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    -<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder timeToLive(TimeValue timeToLive) {
    -<b class="nc">&nbsp;            this.timeToLive = timeToLive;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder tlsStrategyLookup(Lookup&lt;TlsStrategy&gt; tlsStrategyLookup) {
    -<b class="nc">&nbsp;            this.tlsStrategyLookup = tlsStrategyLookup;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
    -<b class="nc">&nbsp;            this.poolConcurrencyPolicy = poolConcurrencyPolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
    -<b class="nc">&nbsp;            this.poolReusePolicy = poolReusePolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public InstrumentedAsyncClientConnectionManager build() {
    -<b class="fc">&nbsp;            return new InstrumentedAsyncClientConnectionManager(</b>
    -&nbsp;                    metricsRegistry,
    -&nbsp;                    name,
    -&nbsp;                    tlsStrategyLookup,
    -&nbsp;                    poolConcurrencyPolicy,
    -&nbsp;                    poolReusePolicy,
    -&nbsp;                    timeToLive,
    -&nbsp;                    schemePortResolver,
    -&nbsp;                    dnsResolver);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-4.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-4.html
    deleted file mode 100644
    index 1645a5ff46..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-4.html
    +++ /dev/null
    @@ -1,229 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAsyncExecChainHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAsyncExecChainHandler (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAsyncExecChainHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedAsyncExecChainHandler$InstrumentedAsyncExecCallback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.apache.hc.client5.http.async.AsyncExecCallback;
    -&nbsp;import org.apache.hc.client5.http.async.AsyncExecChain;
    -&nbsp;import org.apache.hc.client5.http.async.AsyncExecChainHandler;
    -&nbsp;import org.apache.hc.core5.http.EntityDetails;
    -&nbsp;import org.apache.hc.core5.http.HttpException;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;import org.apache.hc.core5.http.HttpResponse;
    -&nbsp;import org.apache.hc.core5.http.nio.AsyncDataConsumer;
    -&nbsp;import org.apache.hc.core5.http.nio.AsyncEntityProducer;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;class InstrumentedAsyncExecChainHandler implements AsyncExecChainHandler {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    public InstrumentedAsyncExecChainHandler(MetricRegistry registry, HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedAsyncExecChainHandler(MetricRegistry registry,
    -&nbsp;                                             HttpClientMetricNameStrategy metricNameStrategy,
    -<b class="fc">&nbsp;                                             String name) {</b>
    -<b class="fc">&nbsp;        this.registry = requireNonNull(registry, &quot;registry&quot;);</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = requireNonNull(metricNameStrategy, &quot;metricNameStrategy&quot;);</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void execute(HttpRequest request,
    -&nbsp;                        AsyncEntityProducer entityProducer,
    -&nbsp;                        AsyncExecChain.Scope scope,
    -&nbsp;                        AsyncExecChain chain,
    -&nbsp;                        AsyncExecCallback asyncExecCallback) throws HttpException, IOException {
    -<b class="fc">&nbsp;        final InstrumentedAsyncExecCallback instrumentedAsyncExecCallback =</b>
    -&nbsp;                new InstrumentedAsyncExecCallback(registry, metricNameStrategy, name, asyncExecCallback, request);
    -<b class="fc">&nbsp;        chain.proceed(request, entityProducer, scope, instrumentedAsyncExecCallback);</b>
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    final static class InstrumentedAsyncExecCallback implements AsyncExecCallback {
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;        private final String name;
    -&nbsp;        private final AsyncExecCallback delegate;
    -&nbsp;        private final Timer.Context timerContext;
    -&nbsp;
    -&nbsp;        public InstrumentedAsyncExecCallback(MetricRegistry registry,
    -&nbsp;                                             HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                             String name,
    -&nbsp;                                             AsyncExecCallback delegate,
    -<b class="fc">&nbsp;                                             HttpRequest request) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.metricNameStrategy = metricNameStrategy;</b>
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            this.delegate = delegate;</b>
    -<b class="fc">&nbsp;            this.timerContext = timer(request).time();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public AsyncDataConsumer handleResponse(HttpResponse response, EntityDetails entityDetails) throws HttpException, IOException {
    -<b class="fc">&nbsp;            return delegate.handleResponse(response, entityDetails);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void handleInformationResponse(HttpResponse response) throws HttpException, IOException {
    -<b class="nc">&nbsp;            delegate.handleInformationResponse(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void completed() {
    -<b class="fc">&nbsp;            delegate.completed();</b>
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void failed(Exception cause) {
    -<b class="fc">&nbsp;            delegate.failed(cause);</b>
    -<b class="fc">&nbsp;            meter(cause).mark();</b>
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;            return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Meter meter(Exception e) {
    -<b class="fc">&nbsp;            return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-5.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-5.html
    deleted file mode 100644
    index b5d9eac097..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-5.html
    +++ /dev/null
    @@ -1,147 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpAsyncClients</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpAsyncClients (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpAsyncClients</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.impl.ChainElement;
    -&nbsp;import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
    -&nbsp;import org.apache.hc.client5.http.impl.async.HttpAsyncClientBuilder;
    -&nbsp;import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpAsyncClients {
    -&nbsp;    private InstrumentedHttpAsyncClients() {
    -&nbsp;        super();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry,
    -&nbsp;                                                         HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                                HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        return custom(metricRegistry, metricNameStrategy, InstrumentedAsyncClientConnectionManager.builder(metricRegistry).build());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                                HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                                AsyncClientConnectionManager clientConnectionManager) {
    -<b class="fc">&nbsp;        return HttpAsyncClientBuilder.create()</b>
    -<b class="fc">&nbsp;                .setConnectionManager(clientConnectionManager)</b>
    -<b class="fc">&nbsp;                .addExecInterceptorBefore(ChainElement.CONNECT.name(), &quot;dropwizard-metrics&quot;,</b>
    -&nbsp;                        new InstrumentedAsyncExecChainHandler(metricRegistry, metricNameStrategy));
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-6.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-6.html
    deleted file mode 100644
    index 11ea0d635f..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-6.html
    +++ /dev/null
    @@ -1,308 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClientConnectionManager</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClientConnectionManager</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (23/23)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpClientConnectionManager$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (4/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    38.5%
    -  </span>
    -  <span class="absValue">
    -    (10/26)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.DnsResolver;
    -&nbsp;import org.apache.hc.client5.http.SchemePortResolver;
    -&nbsp;import org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator;
    -&nbsp;import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionOperator;
    -&nbsp;import org.apache.hc.client5.http.io.ManagedHttpClientConnection;
    -&nbsp;import org.apache.hc.client5.http.socket.ConnectionSocketFactory;
    -&nbsp;import org.apache.hc.client5.http.socket.PlainConnectionSocketFactory;
    -&nbsp;import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
    -&nbsp;import org.apache.hc.core5.http.URIScheme;
    -&nbsp;import org.apache.hc.core5.http.config.Registry;
    -&nbsp;import org.apache.hc.core5.http.config.RegistryBuilder;
    -&nbsp;import org.apache.hc.core5.http.io.HttpConnectionFactory;
    -&nbsp;import org.apache.hc.core5.io.CloseMode;
    -&nbsp;import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
    -&nbsp;import org.apache.hc.core5.pool.PoolReusePolicy;
    -&nbsp;import org.apache.hc.core5.util.TimeValue;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    -&nbsp; */
    -&nbsp;public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
    -<b class="fc">&nbsp;    private static final String METRICS_PREFIX = HttpClientConnectionManager.class.getName();</b>
    -&nbsp;
    -&nbsp;    protected static Registry&lt;ConnectionSocketFactory&gt; getDefaultRegistry() {
    -<b class="fc">&nbsp;        return RegistryBuilder.&lt;ConnectionSocketFactory&gt;create()</b>
    -<b class="fc">&nbsp;                .register(URIScheme.HTTP.id, PlainConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;                .register(URIScheme.HTTPS.id, SSLConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;                .build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricsRegistry;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    InstrumentedHttpClientConnectionManager(final MetricRegistry metricRegistry,
    -&nbsp;                                            final String name,
    -&nbsp;                                            final HttpClientConnectionOperator httpClientConnectionOperator,
    -&nbsp;                                            final PoolConcurrencyPolicy poolConcurrencyPolicy,
    -&nbsp;                                            final PoolReusePolicy poolReusePolicy,
    -&nbsp;                                            final TimeValue timeToLive,
    -&nbsp;                                            final HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory) {
    -&nbsp;
    -<b class="fc">&nbsp;        super(httpClientConnectionOperator, poolConcurrencyPolicy, poolReusePolicy, timeToLive, connFactory);</b>
    -<b class="fc">&nbsp;        this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;available-connections&quot;),</b>
    -&nbsp;                () -&gt; {
    -<b class="fc">&nbsp;                    return getTotalStats().getAvailable();</b>
    -&nbsp;                });
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;leased-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;max-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax()</b>
    -&nbsp;        );
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;pending-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="fc">&nbsp;        close(CloseMode.GRACEFUL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close(CloseMode closeMode) {
    -<b class="fc">&nbsp;        super.close(closeMode);</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;available-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;leased-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;max-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;pending-connections&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static class Builder {
    -&nbsp;        private MetricRegistry metricsRegistry;
    -&nbsp;        private String name;
    -&nbsp;        private HttpClientConnectionOperator httpClientConnectionOperator;
    -<b class="fc">&nbsp;        private Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry = getDefaultRegistry();</b>
    -&nbsp;        private SchemePortResolver schemePortResolver;
    -&nbsp;        private DnsResolver dnsResolver;
    -&nbsp;        private PoolConcurrencyPolicy poolConcurrencyPolicy;
    -&nbsp;        private PoolReusePolicy poolReusePolicy;
    -<b class="fc">&nbsp;        private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;</b>
    -&nbsp;        private HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory;
    -&nbsp;
    -<b class="fc">&nbsp;        Builder() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder metricsRegistry(MetricRegistry metricRegistry) {
    -<b class="fc">&nbsp;            this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder name(final String name) {
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder socketFactoryRegistry(Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    -<b class="nc">&nbsp;            this.socketFactoryRegistry = requireNonNull(socketFactoryRegistry, &quot;socketFactoryRegistry&quot;);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connFactory(HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory) {
    -<b class="nc">&nbsp;            this.connFactory = connFactory;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    -<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    -<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder timeToLive(TimeValue timeToLive) {
    -<b class="nc">&nbsp;            this.timeToLive = timeToLive;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
    -<b class="nc">&nbsp;            this.httpClientConnectionOperator = httpClientConnectionOperator;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
    -<b class="nc">&nbsp;            this.poolConcurrencyPolicy = poolConcurrencyPolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
    -<b class="nc">&nbsp;            this.poolReusePolicy = poolReusePolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public InstrumentedHttpClientConnectionManager build() {
    -<b class="fc">&nbsp;            if (httpClientConnectionOperator == null) {</b>
    -<b class="fc">&nbsp;                httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(</b>
    -&nbsp;                        socketFactoryRegistry,
    -&nbsp;                        schemePortResolver,
    -&nbsp;                        dnsResolver);
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            return new InstrumentedHttpClientConnectionManager(</b>
    -&nbsp;                    metricsRegistry,
    -&nbsp;                    name,
    -&nbsp;                    httpClientConnectionOperator,
    -&nbsp;                    poolConcurrencyPolicy,
    -&nbsp;                    poolReusePolicy,
    -&nbsp;                    timeToLive,
    -&nbsp;                    connFactory);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-7.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-7.html
    deleted file mode 100644
    index 085699256a..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-7.html
    +++ /dev/null
    @@ -1,138 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClients</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClients</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
    -&nbsp;import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpClients {
    -&nbsp;    private InstrumentedHttpClients() {
    -&nbsp;        super();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
    -&nbsp;                                                    HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        return HttpClientBuilder.create()</b>
    -<b class="fc">&nbsp;                .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))</b>
    -<b class="fc">&nbsp;                .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-8.html b/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-8.html
    deleted file mode 100644
    index e0453d2bdf..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-e/sources/source-8.html
    +++ /dev/null
    @@ -1,182 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpRequestExecutor</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpRequestExecutor</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.apache.hc.core5.http.ClassicHttpRequest;
    -&nbsp;import org.apache.hc.core5.http.ClassicHttpResponse;
    -&nbsp;import org.apache.hc.core5.http.ConnectionReuseStrategy;
    -&nbsp;import org.apache.hc.core5.http.HttpException;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;import org.apache.hc.core5.http.impl.Http1StreamListener;
    -&nbsp;import org.apache.hc.core5.http.impl.io.HttpRequestExecutor;
    -&nbsp;import org.apache.hc.core5.http.io.HttpClientConnection;
    -&nbsp;import org.apache.hc.core5.http.io.HttpResponseInformationCallback;
    -&nbsp;import org.apache.hc.core5.http.protocol.HttpContext;
    -&nbsp;import org.apache.hc.core5.util.Timeout;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name,
    -&nbsp;                                           Timeout waitForContinue) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, waitForContinue, null, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name,
    -&nbsp;                                           Timeout waitForContinue,
    -&nbsp;                                           ConnectionReuseStrategy connReuseStrategy,
    -&nbsp;                                           Http1StreamListener streamListener) {
    -<b class="fc">&nbsp;        super(waitForContinue, connReuseStrategy, streamListener);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public ClassicHttpResponse execute(ClassicHttpRequest request, HttpClientConnection conn, HttpResponseInformationCallback informationCallback, HttpContext context) throws IOException, HttpException {
    -<b class="fc">&nbsp;        final Timer.Context timerContext = timer(request).time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return super.execute(request, conn, informationCallback, context);</b>
    -<b class="fc">&nbsp;        } catch (HttpException | IOException e) {</b>
    -<b class="fc">&nbsp;            meter(e).mark();</b>
    -<b class="fc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;        return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meter(Exception e) {
    -<b class="fc">&nbsp;        return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index.html
    deleted file mode 100644
    index 502aef0e43..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 1a5b8fb2cb..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index de56adf64e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 025ae5d6ce..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 0526c5ff1b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 938ca40cc8..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 3b9b9f6f7b..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 246cfbb791..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index d765b05a14..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 9ec4167901..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-Final-htmlReport/ns-f/sources/source-1.html b/metrics-complete-branch-report-Final-htmlReport/ns-f/sources/source-1.html
    deleted file mode 100644
    index fee9e2232e..0000000000
    --- a/metrics-complete-branch-report-Final-htmlReport/ns-f/sources/source-1.html
    +++ /dev/null
    @@ -1,189 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JCacheGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jcache</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: JCacheGaugeSet (com.codahale.metrics.jcache)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">JCacheGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jcache;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.jvm.JmxAttributeGauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;import javax.cache.management.CacheStatisticsMXBean;
    -&nbsp;import javax.management.MalformedObjectNameException;
    -&nbsp;import javax.management.ObjectInstance;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Gauge set retrieving JCache JMX attributes
    -&nbsp; *
    -&nbsp; * @author &lt;a href=&quot;mailto:henri.tremblay@softwareag.com&quot;&gt;Henri Tremblay&lt;/a&gt;
    -&nbsp; * @author &lt;a href=&quot;mailto:anthony.dahanne@softwareag.com&quot;&gt;Anthony Dahanne&lt;/a&gt;
    -&nbsp; */
    -<b class="fc">&nbsp;public class JCacheGaugeSet implements MetricSet {</b>
    -&nbsp;
    -&nbsp;    private static final String M_BEAN_COORDINATES = &quot;javax.cache:type=CacheStatistics,CacheManager=*,Cache=*&quot;;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JCacheGaugeSet.class);</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        Set&lt;ObjectInstance&gt; cacheBeans = getCacheBeans();</b>
    -<b class="fc">&nbsp;        List&lt;String&gt; availableStatsNames = retrieveStatsNames();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;(cacheBeans.size() * availableStatsNames.size());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (ObjectInstance cacheBean : cacheBeans) {</b>
    -<b class="fc">&nbsp;            ObjectName objectName = cacheBean.getObjectName();</b>
    -<b class="fc">&nbsp;            String cacheName = objectName.getKeyProperty(&quot;Cache&quot;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (String statsName : availableStatsNames) {</b>
    -<b class="fc">&nbsp;                JmxAttributeGauge jmxAttributeGauge = new JmxAttributeGauge(objectName, statsName);</b>
    -<b class="fc">&nbsp;                gauges.put(name(cacheName, toSpinalCase(statsName)), jmxAttributeGauge);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Set&lt;ObjectInstance&gt; getCacheBeans() {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return ManagementFactory.getPlatformMBeanServer().queryMBeans(ObjectName.getInstance(M_BEAN_COORDINATES), null);</b>
    -<b class="nc">&nbsp;        } catch (MalformedObjectNameException e) {</b>
    -<b class="nc">&nbsp;            LOGGER.error(&quot;Unable to retrieve {}. Are JCache statistics enabled?&quot;, M_BEAN_COORDINATES);</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private List&lt;String&gt; retrieveStatsNames() {
    -<b class="fc">&nbsp;        Method[] methods = CacheStatisticsMXBean.class.getDeclaredMethods();</b>
    -<b class="fc">&nbsp;        List&lt;String&gt; availableStatsNames = new ArrayList&lt;&gt;(methods.length);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Method method : methods) {</b>
    -<b class="fc">&nbsp;            String methodName = method.getName();</b>
    -<b class="fc">&nbsp;            if (methodName.startsWith(&quot;get&quot;)) {</b>
    -<b class="fc">&nbsp;                availableStatsNames.add(methodName.substring(3));</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return availableStatsNames;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static String toSpinalCase(String camelCase) {
    -<b class="fc">&nbsp;        return camelCase.replaceAll(&quot;(.)(\\p{Upper})&quot;, &quot;$1-$2&quot;).toLowerCase(Locale.US);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-03-01 18:41</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/css/coverage.css b/metrics-complete-branch-report-initial-htmlReport/css/coverage.css
    deleted file mode 100644
    index cef776517f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/css/coverage.css
    +++ /dev/null
    @@ -1,154 +0,0 @@
    -/*
    - * Copyright 2000-2021 JetBrains s.r.o.
    - *
    - * Licensed under the Apache License, Version 2.0 (the "License");
    - * you may not use this file except in compliance with the License.
    - * You may obtain a copy of the License at
    - *
    - *   http://www.apache.org/licenses/LICENSE-2.0
    - *
    - * Unless required by applicable law or agreed to in writing, software
    - * distributed under the License is distributed on an "AS IS" BASIS,
    - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    - * See the License for the specific language governing permissions and
    - * limitations under the License.
    - */
    -
    -* {
    -  margin: 0;
    -  padding: 0;
    -}
    -
    -body {
    -  background-color: #fff;
    -  font-family: helvetica neue, tahoma, arial, sans-serif;
    -  font-size: 82%;
    -  color: #151515;
    -}
    -
    -h1 {
    -  margin: 0.5em 0;
    -  color: #010101;
    -  font-weight: normal;
    -  font-size: 18px;
    -}
    -
    -h2 {
    -  margin: 0.5em 0;
    -  color: #010101;
    -  font-weight: normal;
    -  font-size: 16px;
    -}
    -
    -a {
    -  color: #1564C2;
    -  text-decoration: none;
    -}
    -
    -a:hover {
    -  text-decoration: underline;
    -}
    -
    -span.separator {
    -  color: #9BA9BA;
    -  padding-left: 5px;
    -  padding-right: 5px;
    -}
    -
    -div.content {
    -  width: 99%;
    -}
    -
    -table.coverageStats {
    -  width: 100%;
    -  border-collapse: collapse;
    -}
    -
    -table.overallStats {
    -  width: 20%;
    -}
    -
    -table.coverageStats td, table.coverageStats th {
    -  padding: 4px 2px;
    -  border-bottom: 1px solid #ccc;
    -}
    -
    -table.coverageStats th {
    -  background-color: #959BA4;
    -  border: none;
    -  font-weight: bold;
    -  text-align: left;
    -  color: #FFF;
    -}
    -
    -table.coverageStats th.coverageStat {
    -  width: 15%;
    -}
    -
    -table.coverageStats th a {
    -  color: #FFF;
    -}
    -
    -table.coverageStats th a:hover {
    -  text-decoration: none;
    -}
    -
    -table.coverageStats th.sortedDesc a {
    -  background: url(../img/arrowDown.gif) no-repeat 100% 2px;
    -  padding-right: 20px;
    -}
    -
    -table.coverageStats th.sortedAsc a {
    -  background: url(../img/arrowUp.gif) no-repeat 100% 2px;
    -  padding-right: 20px;
    -}
    -
    -div.footer {
    -  margin: 2em .5em;
    -  font-size: 85%;
    -  text-align: left;
    -  line-height: 140%;
    -}
    -
    -code.sourceCode {
    -  width: 100%;
    -  border: 1px solid #ccc;
    -  font: normal 12px 'Menlo', 'Bitstream Vera Sans Mono', 'Courier New', 'Courier', monospace;
    -  white-space: pre;
    -}
    -
    -code.sourceCode b {
    -  font-weight: normal;
    -}
    -
    -code.sourceCode span.number {
    -  color: #151515;
    -}
    -
    -code.sourceCode .fc {
    -  background-color: #cfc;
    -}
    -
    -code.sourceCode .pc {
    -  background-color: #ffc;
    -}
    -
    -code.sourceCode .nc {
    -  background-color: #fcc;
    -}
    -
    -.percent, .absValue {
    -  font-size: 90%;
    -}
    -
    -.percent .green, .absValue .green {
    -  color: #32cc32;
    -}
    -
    -.percent .red, .absValue .red {
    -  color: #f00;
    -}
    -
    -.percent .totalDiff {
    -  color: #3f3f3f;
    -}
    diff --git a/metrics-complete-branch-report-initial-htmlReport/css/idea.min.css b/metrics-complete-branch-report-initial-htmlReport/css/idea.min.css
    deleted file mode 100644
    index a8d5292bd5..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/css/idea.min.css
    +++ /dev/null
    @@ -1,118 +0,0 @@
    -/*
    - * Copyright 2000-2021 JetBrains s.r.o.
    - *
    - * Licensed under the Apache License, Version 2.0 (the "License");
    - * you may not use this file except in compliance with the License.
    - * You may obtain a copy of the License at
    - *
    - *   http://www.apache.org/licenses/LICENSE-2.0
    - *
    - * Unless required by applicable law or agreed to in writing, software
    - * distributed under the License is distributed on an "AS IS" BASIS,
    - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    - * See the License for the specific language governing permissions and
    - * limitations under the License.
    - */
    -
    -/*
    -Intellij Idea-like styling (c) Vasily Polovnyov <vast@whiteants.net>
    -*/
    -
    -.hljs {
    -    color: #000;
    -    background: #fff;
    -}
    -
    -.hljs-subst,
    -.hljs-title {
    -    font-weight: normal;
    -    color: #000;
    -}
    -
    -.hljs-comment,
    -.hljs-quote {
    -    color: #808080;
    -    font-style: italic;
    -}
    -
    -.hljs-meta {
    -    color: #808000;
    -}
    -
    -.hljs-tag {
    -    background: #efefef;
    -}
    -
    -.hljs-section,
    -.hljs-name,
    -.hljs-literal,
    -.hljs-keyword,
    -.hljs-selector-tag,
    -.hljs-type,
    -.hljs-selector-id,
    -.hljs-selector-class {
    -    font-weight: bold;
    -    color: #000080;
    -}
    -
    -.hljs-attribute,
    -.hljs-number,
    -.hljs-regexp,
    -.hljs-link {
    -    font-weight: bold;
    -    color: #0000ff;
    -}
    -
    -.hljs-number,
    -.hljs-regexp,
    -.hljs-link {
    -    font-weight: normal;
    -}
    -
    -.hljs-string {
    -    color: #008000;
    -    font-weight: bold;
    -}
    -
    -.hljs-symbol,
    -.hljs-bullet,
    -.hljs-formula {
    -    color: #000;
    -    background: #d0eded;
    -    font-style: italic;
    -}
    -
    -.hljs-doctag {
    -    text-decoration: underline;
    -}
    -
    -.hljs-variable,
    -.hljs-template-variable {
    -    color: #660e7a;
    -}
    -
    -.hljs-addition {
    -    background: #baeeba;
    -}
    -
    -.hljs-deletion {
    -    background: #ffc8bd;
    -}
    -
    -.hljs-emphasis {
    -    font-style: italic;
    -}
    -
    -.hljs-strong {
    -    font-weight: bold;
    -}
    -
    -.hljs-ln-numbers {
    -    display: block;
    -    float: left;
    -    width: 3em;
    -    border-right: 1px solid #ccc;
    -    font-style: normal;
    -    text-align: right;
    -    background-color: #eee;
    -}
    diff --git a/metrics-complete-branch-report-initial-htmlReport/img/arrowDown.gif b/metrics-complete-branch-report-initial-htmlReport/img/arrowDown.gif
    deleted file mode 100644
    index a4ac9b4b0f5eee9fc82deb7f03d0cc7f197b01c7..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 89
    zcmZ?wbhEHb<YVAtSj56GVZwyGyu5~nhW}u|00W9YSr{1@SQvCb0wA>v%yJ&P?))?G
    g5?!@7agD+*@rGjs@joUks8}}Ha%HfNHz$KN0Orjd82|tP
    
    diff --git a/metrics-complete-branch-report-initial-htmlReport/img/arrowUp.gif b/metrics-complete-branch-report-initial-htmlReport/img/arrowUp.gif
    deleted file mode 100644
    index d488db0089f15409b83a6f39718384cac89ea3c9..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 91
    zcmZ?wbhEHb<YVAtSj51PmzOtT!i0u~hW}u|00W9YSr{1@SQvCb0wA>v%nBa6?))=2
    j#jeJ<$W6!S$=vG=3s*2Wu3C5I!M+a(XH6zEFjxZs9OxeQ
    
    diff --git a/metrics-complete-branch-report-initial-htmlReport/index.html b/metrics-complete-branch-report-initial-htmlReport/index.html
    deleted file mode 100644
    index 62f810bfec..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/index.html
    +++ /dev/null
    @@ -1,1314 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.5%
    -  </span>
    -  <span class="absValue">
    -    (341/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.5%
    -  </span>
    -  <span class="absValue">
    -    (1595/2141)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.7%
    -  </span>
    -  <span class="absValue">
    -    (21/447)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (5409/7073)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index ca262374a5..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,1314 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.5%
    -  </span>
    -  <span class="absValue">
    -    (341/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.5%
    -  </span>
    -  <span class="absValue">
    -    (1595/2141)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.7%
    -  </span>
    -  <span class="absValue">
    -    (21/447)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (5409/7073)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_BLOCK.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_BLOCK.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_BLOCK.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_BLOCK.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_BLOCK.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_BLOCK.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_BLOCK.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_BLOCK.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_BLOCK.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_BLOCK.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_BLOCK.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_BLOCK.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_BLOCK.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_BLOCK.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_BLOCK.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_BLOCK.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_BLOCK.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_BLOCK.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_BLOCK.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_BLOCK.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_BLOCK.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 2e98449d88..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,1314 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.5%
    -  </span>
    -  <span class="absValue">
    -    (341/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.5%
    -  </span>
    -  <span class="absValue">
    -    (1595/2141)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.7%
    -  </span>
    -  <span class="absValue">
    -    (21/447)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (5409/7073)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 723d029493..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,1314 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.5%
    -  </span>
    -  <span class="absValue">
    -    (341/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.5%
    -  </span>
    -  <span class="absValue">
    -    (1595/2141)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.7%
    -  </span>
    -  <span class="absValue">
    -    (21/447)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (5409/7073)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_CLASS.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_CLASS.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_CLASS.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_CLASS.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_CLASS.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_CLASS.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_CLASS.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_CLASS.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_CLASS.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_CLASS.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_CLASS.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_CLASS.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_CLASS.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_CLASS.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_CLASS.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_CLASS.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_CLASS.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_CLASS.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_CLASS.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_CLASS.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_CLASS.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_CLASS.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_CLASS.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_CLASS.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_CLASS.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 572c53d679..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,1314 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.5%
    -  </span>
    -  <span class="absValue">
    -    (341/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.5%
    -  </span>
    -  <span class="absValue">
    -    (1595/2141)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.7%
    -  </span>
    -  <span class="absValue">
    -    (21/447)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (5409/7073)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_LINE.html
    deleted file mode 100644
    index fd689a7cbe..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,1314 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.5%
    -  </span>
    -  <span class="absValue">
    -    (341/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.5%
    -  </span>
    -  <span class="absValue">
    -    (1595/2141)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.7%
    -  </span>
    -  <span class="absValue">
    -    (21/447)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (5409/7073)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_LINE.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_LINE.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_LINE.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_LINE.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_LINE.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_LINE.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_LINE.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_LINE.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_LINE.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_LINE.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_LINE.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_LINE.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_LINE.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_LINE.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_LINE.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_LINE.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_LINE.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_LINE.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_LINE.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_LINE.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_LINE.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_LINE.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_LINE.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_LINE.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_LINE.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_LINE.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index b68c8000c1..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,1314 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.5%
    -  </span>
    -  <span class="absValue">
    -    (341/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.5%
    -  </span>
    -  <span class="absValue">
    -    (1595/2141)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.7%
    -  </span>
    -  <span class="absValue">
    -    (21/447)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (5409/7073)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_LINE_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index c1709b3f98..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,1314 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.5%
    -  </span>
    -  <span class="absValue">
    -    (341/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.5%
    -  </span>
    -  <span class="absValue">
    -    (1595/2141)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.7%
    -  </span>
    -  <span class="absValue">
    -    (21/447)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (5409/7073)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_METHOD.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_METHOD.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_METHOD.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_METHOD.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_METHOD.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_METHOD.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_METHOD.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_METHOD.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_METHOD.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_METHOD.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_METHOD.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_METHOD.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_METHOD.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_METHOD.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_METHOD.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_METHOD.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_METHOD.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_METHOD.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_METHOD.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_METHOD.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_METHOD.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_METHOD.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_METHOD.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_METHOD.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_METHOD.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 70efb006bc..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,1314 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.5%
    -  </span>
    -  <span class="absValue">
    -    (341/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.5%
    -  </span>
    -  <span class="absValue">
    -    (1595/2141)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.7%
    -  </span>
    -  <span class="absValue">
    -    (21/447)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (5409/7073)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index b41c3f6717..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,1314 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.5%
    -  </span>
    -  <span class="absValue">
    -    (341/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.5%
    -  </span>
    -  <span class="absValue">
    -    (1595/2141)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.7%
    -  </span>
    -  <span class="absValue">
    -    (21/447)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (5409/7073)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_NAME_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-branch-report-initial-htmlReport/js/highlight.min.js b/metrics-complete-branch-report-initial-htmlReport/js/highlight.min.js
    deleted file mode 100644
    index e88731520e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/js/highlight.min.js
    +++ /dev/null
    @@ -1,1388 +0,0 @@
    -/*
    -  Highlight.js 10.7.2 (00233d63)
    -  License: BSD-3-Clause
    -  Copyright (c) 2006-2021, Ivan Sagalaev
    -
    -  BSD 3-Clause License
    -
    -  Copyright (c) 2006-2021, Ivan Sagalaev.
    -  All rights reserved.
    -
    -  Redistribution and use in source and binary forms, with or without
    -  modification, are permitted provided that the following conditions are met:
    -
    -  * Redistributions of source code must retain the above copyright notice, this
    -    list of conditions and the following disclaimer.
    -
    -  * Redistributions in binary form must reproduce the above copyright notice,
    -    this list of conditions and the following disclaimer in the documentation
    -    and/or other materials provided with the distribution.
    -
    -  * Neither the name of the copyright holder nor the names of its
    -    contributors may be used to endorse or promote products derived from
    -    this software without specific prior written permission.
    -
    -  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    -  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    -  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    -  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    -  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
    -  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    -  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    -  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -*/
    -var hljs=function(){"use strict";function e(t){
    -return t instanceof Map?t.clear=t.delete=t.set=()=>{
    -throw Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=()=>{
    -throw Error("set is read-only")
    -}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach((n=>{var i=t[n]
    -;"object"!=typeof i||Object.isFrozen(i)||e(i)})),t}var t=e,n=e;t.default=n
    -;class i{constructor(e){
    -void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}
    -ignoreMatch(){this.isMatchIgnored=!0}}function s(e){
    -return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")
    -}function a(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t]
    -;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const r=e=>!!e.kind
    -;class l{constructor(e,t){
    -this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){
    -this.buffer+=s(e)}openNode(e){if(!r(e))return;let t=e.kind
    -;e.sublanguage||(t=`${this.classPrefix}${t}`),this.span(t)}closeNode(e){
    -r(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){
    -this.buffer+=`<span class="${e}">`}}class o{constructor(){this.rootNode={
    -children:[]},this.stack=[this.rootNode]}get top(){
    -return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){
    -this.top.children.push(e)}openNode(e){const t={kind:e,children:[]}
    -;this.add(t),this.stack.push(t)}closeNode(){
    -if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){
    -for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
    -walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){
    -return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),
    -t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){
    -"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{
    -o._collapse(e)})))}}class c extends o{constructor(e){super(),this.options=e}
    -addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())}
    -addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root
    -;n.kind=t,n.sublanguage=!0,this.add(n)}toHTML(){
    -return new l(this,this.options).value()}finalize(){return!0}}function g(e){
    -return e?"string"==typeof e?e:e.source:null}
    -const u=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,h="[a-zA-Z]\\w*",d="[a-zA-Z_]\\w*",f="\\b\\d+(\\.\\d+)?",p="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",m="\\b(0b[01]+)",b={
    -begin:"\\\\[\\s\\S]",relevance:0},E={className:"string",begin:"'",end:"'",
    -illegal:"\\n",contains:[b]},x={className:"string",begin:'"',end:'"',
    -illegal:"\\n",contains:[b]},v={
    -begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
    -},w=(e,t,n={})=>{const i=a({className:"comment",begin:e,end:t,contains:[]},n)
    -;return i.contains.push(v),i.contains.push({className:"doctag",
    -begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),i
    -},y=w("//","$"),N=w("/\\*","\\*/"),R=w("#","$");var _=Object.freeze({
    -__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:h,UNDERSCORE_IDENT_RE:d,
    -NUMBER_RE:f,C_NUMBER_RE:p,BINARY_NUMBER_RE:m,
    -RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
    -SHEBANG:(e={})=>{const t=/^#![ ]*\//
    -;return e.binary&&(e.begin=((...e)=>e.map((e=>g(e))).join(""))(t,/.*\b/,e.binary,/\b.*/)),
    -a({className:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{
    -0!==e.index&&t.ignoreMatch()}},e)},BACKSLASH_ESCAPE:b,APOS_STRING_MODE:E,
    -QUOTE_STRING_MODE:x,PHRASAL_WORDS_MODE:v,COMMENT:w,C_LINE_COMMENT_MODE:y,
    -C_BLOCK_COMMENT_MODE:N,HASH_COMMENT_MODE:R,NUMBER_MODE:{className:"number",
    -begin:f,relevance:0},C_NUMBER_MODE:{className:"number",begin:p,relevance:0},
    -BINARY_NUMBER_MODE:{className:"number",begin:m,relevance:0},CSS_NUMBER_MODE:{
    -className:"number",
    -begin:f+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
    -relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",
    -begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[b,{begin:/\[/,end:/\]/,
    -relevance:0,contains:[b]}]}]},TITLE_MODE:{className:"title",begin:h,relevance:0
    -},UNDERSCORE_TITLE_MODE:{className:"title",begin:d,relevance:0},METHOD_GUARD:{
    -begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{
    -"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{
    -t.data._beginMatch!==e[1]&&t.ignoreMatch()}})});function k(e,t){
    -"."===e.input[e.index-1]&&t.ignoreMatch()}function M(e,t){
    -t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",
    -e.__beforeBegin=k,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,
    -void 0===e.relevance&&(e.relevance=0))}function O(e,t){
    -Array.isArray(e.illegal)&&(e.illegal=((...e)=>"("+e.map((e=>g(e))).join("|")+")")(...e.illegal))
    -}function A(e,t){if(e.match){
    -if(e.begin||e.end)throw Error("begin & end are not supported with match")
    -;e.begin=e.match,delete e.match}}function L(e,t){
    -void 0===e.relevance&&(e.relevance=1)}
    -const I=["of","and","for","in","not","or","if","then","parent","list","value"]
    -;function j(e,t,n="keyword"){const i={}
    -;return"string"==typeof e?s(n,e.split(" ")):Array.isArray(e)?s(n,e):Object.keys(e).forEach((n=>{
    -Object.assign(i,j(e[n],t,n))})),i;function s(e,n){
    -t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|")
    -;i[n[0]]=[e,B(n[0],n[1])]}))}}function B(e,t){
    -return t?Number(t):(e=>I.includes(e.toLowerCase()))(e)?0:1}
    -function T(e,{plugins:t}){function n(t,n){
    -return RegExp(g(t),"m"+(e.case_insensitive?"i":"")+(n?"g":""))}class i{
    -constructor(){
    -this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}
    -addRule(e,t){
    -t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),
    -this.matchAt+=(e=>RegExp(e.toString()+"|").exec("").length-1)(e)+1}compile(){
    -0===this.regexes.length&&(this.exec=()=>null)
    -;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(((e,t="|")=>{let n=0
    -;return e.map((e=>{n+=1;const t=n;let i=g(e),s="";for(;i.length>0;){
    -const e=u.exec(i);if(!e){s+=i;break}
    -s+=i.substring(0,e.index),i=i.substring(e.index+e[0].length),
    -"\\"===e[0][0]&&e[1]?s+="\\"+(Number(e[1])+t):(s+=e[0],"("===e[0]&&n++)}return s
    -})).map((e=>`(${e})`)).join(t)})(e),!0),this.lastIndex=0}exec(e){
    -this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e)
    -;if(!t)return null
    -;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n]
    -;return t.splice(0,n),Object.assign(t,i)}}class s{constructor(){
    -this.rules=[],this.multiRegexes=[],
    -this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){
    -if(this.multiRegexes[e])return this.multiRegexes[e];const t=new i
    -;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))),
    -t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){
    -return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){
    -this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){
    -const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex
    -;let n=t.exec(e)
    -;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{
    -const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}
    -return n&&(this.regexIndex+=n.position+1,
    -this.regexIndex===this.count&&this.considerAll()),n}}
    -if(e.compilerExtensions||(e.compilerExtensions=[]),
    -e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.")
    -;return e.classNameAliases=a(e.classNameAliases||{}),function t(i,r){const l=i
    -;if(i.isCompiled)return l
    -;[A].forEach((e=>e(i,r))),e.compilerExtensions.forEach((e=>e(i,r))),
    -i.__beforeBegin=null,[M,O,L].forEach((e=>e(i,r))),i.isCompiled=!0;let o=null
    -;if("object"==typeof i.keywords&&(o=i.keywords.$pattern,
    -delete i.keywords.$pattern),
    -i.keywords&&(i.keywords=j(i.keywords,e.case_insensitive)),
    -i.lexemes&&o)throw Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ")
    -;return o=o||i.lexemes||/\w+/,
    -l.keywordPatternRe=n(o,!0),r&&(i.begin||(i.begin=/\B|\b/),
    -l.beginRe=n(i.begin),i.endSameAsBegin&&(i.end=i.begin),
    -i.end||i.endsWithParent||(i.end=/\B|\b/),
    -i.end&&(l.endRe=n(i.end)),l.terminatorEnd=g(i.end)||"",
    -i.endsWithParent&&r.terminatorEnd&&(l.terminatorEnd+=(i.end?"|":"")+r.terminatorEnd)),
    -i.illegal&&(l.illegalRe=n(i.illegal)),
    -i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>a(e,{
    -variants:null},t)))),e.cachedVariants?e.cachedVariants:S(e)?a(e,{
    -starts:e.starts?a(e.starts):null
    -}):Object.isFrozen(e)?a(e):e))("self"===e?i:e)))),i.contains.forEach((e=>{t(e,l)
    -})),i.starts&&t(i.starts,r),l.matcher=(e=>{const t=new s
    -;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"
    -}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"
    -}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(l),l}(e)}function S(e){
    -return!!e&&(e.endsWithParent||S(e.starts))}function P(e){const t={
    -props:["language","code","autodetect"],data:()=>({detectedLanguage:"",
    -unknownLanguage:!1}),computed:{className(){
    -return this.unknownLanguage?"":"hljs "+this.detectedLanguage},highlighted(){
    -if(!this.autoDetect&&!e.getLanguage(this.language))return console.warn(`The language "${this.language}" you specified could not be found.`),
    -this.unknownLanguage=!0,s(this.code);let t={}
    -;return this.autoDetect?(t=e.highlightAuto(this.code),
    -this.detectedLanguage=t.language):(t=e.highlight(this.language,this.code,this.ignoreIllegals),
    -this.detectedLanguage=this.language),t.value},autoDetect(){
    -return!(this.language&&(e=this.autodetect,!e&&""!==e));var e},
    -ignoreIllegals:()=>!0},render(e){return e("pre",{},[e("code",{
    -class:this.className,domProps:{innerHTML:this.highlighted}})])}};return{
    -Component:t,VuePlugin:{install(e){e.component("highlightjs",t)}}}}const D={
    -"after:highlightElement":({el:e,result:t,text:n})=>{const i=H(e)
    -;if(!i.length)return;const a=document.createElement("div")
    -;a.innerHTML=t.value,t.value=((e,t,n)=>{let i=0,a="";const r=[];function l(){
    -return e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset<t[0].offset?e:t:"start"===t[0].event?e:t:e.length?e:t
    -}function o(e){a+="<"+C(e)+[].map.call(e.attributes,(function(e){
    -return" "+e.nodeName+'="'+s(e.value)+'"'})).join("")+">"}function c(e){
    -a+="</"+C(e)+">"}function g(e){("start"===e.event?o:c)(e.node)}
    -for(;e.length||t.length;){let t=l()
    -;if(a+=s(n.substring(i,t[0].offset)),i=t[0].offset,t===e){r.reverse().forEach(c)
    -;do{g(t.splice(0,1)[0]),t=l()}while(t===e&&t.length&&t[0].offset===i)
    -;r.reverse().forEach(o)
    -}else"start"===t[0].event?r.push(t[0].node):r.pop(),g(t.splice(0,1)[0])}
    -return a+s(n.substr(i))})(i,H(a),n)}};function C(e){
    -return e.nodeName.toLowerCase()}function H(e){const t=[];return function e(n,i){
    -for(let s=n.firstChild;s;s=s.nextSibling)3===s.nodeType?i+=s.nodeValue.length:1===s.nodeType&&(t.push({
    -event:"start",offset:i,node:s}),i=e(s,i),C(s).match(/br|hr|img|input/)||t.push({
    -event:"stop",offset:i,node:s}));return i}(e,0),t}const $={},U=e=>{
    -console.error(e)},z=(e,...t)=>{console.log("WARN: "+e,...t)},K=(e,t)=>{
    -$[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),$[`${e}/${t}`]=!0)
    -},G=s,V=a,W=Symbol("nomatch");return(e=>{
    -const n=Object.create(null),s=Object.create(null),a=[];let r=!0
    -;const l=/(^(<[^>]+>|\t|)+|\n)/gm,o="Could not find the language '{}', did you forget to load/include a language module?",g={
    -disableAutodetect:!0,name:"Plain text",contains:[]};let u={
    -noHighlightRe:/^(no-?highlight)$/i,
    -languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",
    -tabReplace:null,useBR:!1,languages:null,__emitter:c};function h(e){
    -return u.noHighlightRe.test(e)}function d(e,t,n,i){let s="",a=""
    -;"object"==typeof t?(s=e,
    -n=t.ignoreIllegals,a=t.language,i=void 0):(K("10.7.0","highlight(lang, code, ...args) has been deprecated."),
    -K("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
    -a=e,s=t);const r={code:s,language:a};M("before:highlight",r)
    -;const l=r.result?r.result:f(r.language,r.code,n,i)
    -;return l.code=r.code,M("after:highlight",l),l}function f(e,t,s,l){
    -function c(e,t){const n=v.case_insensitive?t[0].toLowerCase():t[0]
    -;return Object.prototype.hasOwnProperty.call(e.keywords,n)&&e.keywords[n]}
    -function g(){null!=R.subLanguage?(()=>{if(""===M)return;let e=null
    -;if("string"==typeof R.subLanguage){
    -if(!n[R.subLanguage])return void k.addText(M)
    -;e=f(R.subLanguage,M,!0,_[R.subLanguage]),_[R.subLanguage]=e.top
    -}else e=p(M,R.subLanguage.length?R.subLanguage:null)
    -;R.relevance>0&&(O+=e.relevance),k.addSublanguage(e.emitter,e.language)
    -})():(()=>{if(!R.keywords)return void k.addText(M);let e=0
    -;R.keywordPatternRe.lastIndex=0;let t=R.keywordPatternRe.exec(M),n="";for(;t;){
    -n+=M.substring(e,t.index);const i=c(R,t);if(i){const[e,s]=i
    -;if(k.addText(n),n="",O+=s,e.startsWith("_"))n+=t[0];else{
    -const n=v.classNameAliases[e]||e;k.addKeyword(t[0],n)}}else n+=t[0]
    -;e=R.keywordPatternRe.lastIndex,t=R.keywordPatternRe.exec(M)}
    -n+=M.substr(e),k.addText(n)})(),M=""}function h(e){
    -return e.className&&k.openNode(v.classNameAliases[e.className]||e.className),
    -R=Object.create(e,{parent:{value:R}}),R}function d(e,t,n){let s=((e,t)=>{
    -const n=e&&e.exec(t);return n&&0===n.index})(e.endRe,n);if(s){if(e["on:end"]){
    -const n=new i(e);e["on:end"](t,n),n.isMatchIgnored&&(s=!1)}if(s){
    -for(;e.endsParent&&e.parent;)e=e.parent;return e}}
    -if(e.endsWithParent)return d(e.parent,t,n)}function m(e){
    -return 0===R.matcher.regexIndex?(M+=e[0],1):(I=!0,0)}function b(e){
    -const n=e[0],i=t.substr(e.index),s=d(R,e,i);if(!s)return W;const a=R
    -;a.skip?M+=n:(a.returnEnd||a.excludeEnd||(M+=n),g(),a.excludeEnd&&(M=n));do{
    -R.className&&k.closeNode(),R.skip||R.subLanguage||(O+=R.relevance),R=R.parent
    -}while(R!==s.parent)
    -;return s.starts&&(s.endSameAsBegin&&(s.starts.endRe=s.endRe),
    -h(s.starts)),a.returnEnd?0:n.length}let E={};function x(n,a){const l=a&&a[0]
    -;if(M+=n,null==l)return g(),0
    -;if("begin"===E.type&&"end"===a.type&&E.index===a.index&&""===l){
    -if(M+=t.slice(a.index,a.index+1),!r){const t=Error("0 width match regex")
    -;throw t.languageName=e,t.badRule=E.rule,t}return 1}
    -if(E=a,"begin"===a.type)return function(e){
    -const t=e[0],n=e.rule,s=new i(n),a=[n.__beforeBegin,n["on:begin"]]
    -;for(const n of a)if(n&&(n(e,s),s.isMatchIgnored))return m(t)
    -;return n&&n.endSameAsBegin&&(n.endRe=RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")),
    -n.skip?M+=t:(n.excludeBegin&&(M+=t),
    -g(),n.returnBegin||n.excludeBegin||(M=t)),h(n),n.returnBegin?0:t.length}(a)
    -;if("illegal"===a.type&&!s){
    -const e=Error('Illegal lexeme "'+l+'" for mode "'+(R.className||"<unnamed>")+'"')
    -;throw e.mode=R,e}if("end"===a.type){const e=b(a);if(e!==W)return e}
    -if("illegal"===a.type&&""===l)return 1
    -;if(L>1e5&&L>3*a.index)throw Error("potential infinite loop, way more iterations than matches")
    -;return M+=l,l.length}const v=N(e)
    -;if(!v)throw U(o.replace("{}",e)),Error('Unknown language: "'+e+'"')
    -;const w=T(v,{plugins:a});let y="",R=l||w;const _={},k=new u.__emitter(u);(()=>{
    -const e=[];for(let t=R;t!==v;t=t.parent)t.className&&e.unshift(t.className)
    -;e.forEach((e=>k.openNode(e)))})();let M="",O=0,A=0,L=0,I=!1;try{
    -for(R.matcher.considerAll();;){
    -L++,I?I=!1:R.matcher.considerAll(),R.matcher.lastIndex=A
    -;const e=R.matcher.exec(t);if(!e)break;const n=x(t.substring(A,e.index),e)
    -;A=e.index+n}return x(t.substr(A)),k.closeAllNodes(),k.finalize(),y=k.toHTML(),{
    -relevance:Math.floor(O),value:y,language:e,illegal:!1,emitter:k,top:R}}catch(n){
    -if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{
    -msg:n.message,context:t.slice(A-100,A+100),mode:n.mode},sofar:y,relevance:0,
    -value:G(t),emitter:k};if(r)return{illegal:!1,relevance:0,value:G(t),emitter:k,
    -language:e,top:R,errorRaised:n};throw n}}function p(e,t){
    -t=t||u.languages||Object.keys(n);const i=(e=>{const t={relevance:0,
    -emitter:new u.__emitter(u),value:G(e),illegal:!1,top:g}
    -;return t.emitter.addText(e),t})(e),s=t.filter(N).filter(k).map((t=>f(t,e,!1)))
    -;s.unshift(i);const a=s.sort(((e,t)=>{
    -if(e.relevance!==t.relevance)return t.relevance-e.relevance
    -;if(e.language&&t.language){if(N(e.language).supersetOf===t.language)return 1
    -;if(N(t.language).supersetOf===e.language)return-1}return 0})),[r,l]=a,o=r
    -;return o.second_best=l,o}const m={"before:highlightElement":({el:e})=>{
    -u.useBR&&(e.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ /]*>/g,"\n"))
    -},"after:highlightElement":({result:e})=>{
    -u.useBR&&(e.value=e.value.replace(/\n/g,"<br>"))}},b=/^(<[^>]+>|\t)+/gm,E={
    -"after:highlightElement":({result:e})=>{
    -u.tabReplace&&(e.value=e.value.replace(b,(e=>e.replace(/\t/g,u.tabReplace))))}}
    -;function x(e){let t=null;const n=(e=>{let t=e.className+" "
    -;t+=e.parentNode?e.parentNode.className:"";const n=u.languageDetectRe.exec(t)
    -;if(n){const t=N(n[1])
    -;return t||(z(o.replace("{}",n[1])),z("Falling back to no-highlight mode for this block.",e)),
    -t?n[1]:"no-highlight"}return t.split(/\s+/).find((e=>h(e)||N(e)))})(e)
    -;if(h(n))return;M("before:highlightElement",{el:e,language:n}),t=e
    -;const i=t.textContent,a=n?d(i,{language:n,ignoreIllegals:!0}):p(i)
    -;M("after:highlightElement",{el:e,result:a,text:i
    -}),e.innerHTML=a.value,((e,t,n)=>{const i=t?s[t]:n
    -;e.classList.add("hljs"),i&&e.classList.add(i)})(e,n,a.language),e.result={
    -language:a.language,re:a.relevance,relavance:a.relevance
    -},a.second_best&&(e.second_best={language:a.second_best.language,
    -re:a.second_best.relevance,relavance:a.second_best.relevance})}const v=()=>{
    -v.called||(v.called=!0,
    -K("10.6.0","initHighlighting() is deprecated.  Use highlightAll() instead."),
    -document.querySelectorAll("pre code").forEach(x))};let w=!1;function y(){
    -"loading"!==document.readyState?document.querySelectorAll("pre code").forEach(x):w=!0
    -}function N(e){return e=(e||"").toLowerCase(),n[e]||n[s[e]]}
    -function R(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{
    -s[e.toLowerCase()]=t}))}function k(e){const t=N(e)
    -;return t&&!t.disableAutodetect}function M(e,t){const n=e;a.forEach((e=>{
    -e[n]&&e[n](t)}))}
    -"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{
    -w&&y()}),!1),Object.assign(e,{highlight:d,highlightAuto:p,highlightAll:y,
    -fixMarkup:e=>{
    -return K("10.2.0","fixMarkup will be removed entirely in v11.0"),K("10.2.0","Please see https://github.com/highlightjs/highlight.js/issues/2534"),
    -t=e,
    -u.tabReplace||u.useBR?t.replace(l,(e=>"\n"===e?u.useBR?"<br>":e:u.tabReplace?e.replace(/\t/g,u.tabReplace):e)):t
    -;var t},highlightElement:x,
    -highlightBlock:e=>(K("10.7.0","highlightBlock will be removed entirely in v12.0"),
    -K("10.7.0","Please use highlightElement now."),x(e)),configure:e=>{
    -e.useBR&&(K("10.3.0","'useBR' will be removed entirely in v11.0"),
    -K("10.3.0","Please see https://github.com/highlightjs/highlight.js/issues/2559")),
    -u=V(u,e)},initHighlighting:v,initHighlightingOnLoad:()=>{
    -K("10.6.0","initHighlightingOnLoad() is deprecated.  Use highlightAll() instead."),
    -w=!0},registerLanguage:(t,i)=>{let s=null;try{s=i(e)}catch(e){
    -if(U("Language definition for '{}' could not be registered.".replace("{}",t)),
    -!r)throw e;U(e),s=g}
    -s.name||(s.name=t),n[t]=s,s.rawDefinition=i.bind(null,e),s.aliases&&R(s.aliases,{
    -languageName:t})},unregisterLanguage:e=>{delete n[e]
    -;for(const t of Object.keys(s))s[t]===e&&delete s[t]},
    -listLanguages:()=>Object.keys(n),getLanguage:N,registerAliases:R,
    -requireLanguage:e=>{
    -K("10.4.0","requireLanguage will be removed entirely in v11."),
    -K("10.4.0","Please see https://github.com/highlightjs/highlight.js/pull/2844")
    -;const t=N(e);if(t)return t
    -;throw Error("The '{}' language is required, but not loaded.".replace("{}",e))},
    -autoDetection:k,inherit:V,addPlugin:e=>{(e=>{
    -e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{
    -e["before:highlightBlock"](Object.assign({block:t.el},t))
    -}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{
    -e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),a.push(e)},
    -vuePlugin:P(e).VuePlugin}),e.debugMode=()=>{r=!1},e.safeMode=()=>{r=!0
    -},e.versionString="10.7.2";for(const e in _)"object"==typeof _[e]&&t(_[e])
    -;return Object.assign(e,_),e.addPlugin(m),e.addPlugin(D),e.addPlugin(E),e})({})
    -}();"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);
    -hljs.registerLanguage("apache",(()=>{"use strict";return e=>{const n={
    -className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/}
    -;return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,
    -contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,
    -contains:[n,{className:"number",begin:/:\d{1,5}/
    -},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",
    -begin:/\w+/,relevance:0,keywords:{
    -nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"
    -},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},
    -contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",
    -begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}]
    -},n,{className:"number",begin:/\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}
    -})());
    -hljs.registerLanguage("bash",(()=>{"use strict";function e(...e){
    -return e.map((e=>{return(s=e)?"string"==typeof s?s:s.source:null;var s
    -})).join("")}return s=>{const n={},t={begin:/\$\{/,end:/\}/,contains:["self",{
    -begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{
    -begin:e(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},t]});const a={
    -className:"subst",begin:/\$\(/,end:/\)/,contains:[s.BACKSLASH_ESCAPE]},i={
    -begin:/<<-?\s*(?=\w+)/,starts:{contains:[s.END_SAME_AS_BEGIN({begin:/(\w+)/,
    -end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/,
    -contains:[s.BACKSLASH_ESCAPE,n,a]};a.contains.push(c);const o={begin:/\$\(\(/,
    -end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},s.NUMBER_MODE,n]
    -},r=s.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10
    -}),l={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,
    -contains:[s.inherit(s.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{
    -name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z._-]+\b/,
    -keyword:"if then else elif fi for while in do done case esac function",
    -literal:"true false",
    -built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp"
    -},contains:[r,s.SHEBANG(),l,o,s.HASH_COMMENT_MODE,i,c,{className:"",begin:/\\"/
    -},{className:"string",begin:/'/,end:/'/},n]}}})());
    -hljs.registerLanguage("c",(()=>{"use strict";function e(e){
    -return((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(",e,")?")
    -}return t=>{const n=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]
    -}),r="[a-zA-Z_]\\w*::",a="(decltype\\(auto\\)|"+e(r)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",i={
    -className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",
    -variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",
    -contains:[t.BACKSLASH_ESCAPE]},{
    -begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
    -end:"'",illegal:"."},t.END_SAME_AS_BEGIN({
    -begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={
    -className:"number",variants:[{begin:"\\b(0b[01']+)"},{
    -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
    -},{
    -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    -}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
    -"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
    -},contains:[{begin:/\\\n/,relevance:0},t.inherit(s,{className:"meta-string"}),{
    -className:"meta-string",begin:/<.*?>/},n,t.C_BLOCK_COMMENT_MODE]},l={
    -className:"title",begin:e(r)+t.IDENT_RE,relevance:0
    -},d=e(r)+t.IDENT_RE+"\\s*\\(",u={
    -keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",
    -built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary",
    -literal:"true false nullptr NULL"},m=[c,i,n,t.C_BLOCK_COMMENT_MODE,o,s],p={
    -variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{
    -beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:m.concat([{
    -begin:/\(/,end:/\)/,keywords:u,contains:m.concat(["self"]),relevance:0}]),
    -relevance:0},_={className:"function",begin:"("+a+"[\\*&\\s]+)+"+d,
    -returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/,
    -contains:[{begin:"decltype\\(auto\\)",keywords:u,relevance:0},{begin:d,
    -returnBegin:!0,contains:[l],relevance:0},{className:"params",begin:/\(/,
    -end:/\)/,keywords:u,relevance:0,contains:[n,t.C_BLOCK_COMMENT_MODE,s,o,i,{
    -begin:/\(/,end:/\)/,keywords:u,relevance:0,
    -contains:["self",n,t.C_BLOCK_COMMENT_MODE,s,o,i]}]
    -},i,n,t.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u,
    -disableAutodetect:!0,illegal:"</",contains:[].concat(p,_,m,[c,{
    -begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",
    -end:">",keywords:u,contains:["self",i]},{begin:t.IDENT_RE+"::",keywords:u},{
    -className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,
    -contains:[{beginKeywords:"final class struct"},t.TITLE_MODE]}]),exports:{
    -preprocessor:c,strings:s,keywords:u}}}})());
    -hljs.registerLanguage("coffeescript",(()=>{"use strict"
    -;const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
    -;return r=>{const t={
    -keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((i=["var","const","let","function","static"],
    -e=>!i.includes(e))),literal:n.concat(["yes","no","on","off"]),
    -built_in:a.concat(["npm","print"])};var i;const s="[A-Za-z$_][0-9A-Za-z$_]*",o={
    -className:"subst",begin:/#\{/,end:/\}/,keywords:t
    -},c=[r.BINARY_NUMBER_MODE,r.inherit(r.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",
    -relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,
    -contains:[r.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[r.BACKSLASH_ESCAPE]
    -},{begin:/"""/,end:/"""/,contains:[r.BACKSLASH_ESCAPE,o]},{begin:/"/,end:/"/,
    -contains:[r.BACKSLASH_ESCAPE,o]}]},{className:"regexp",variants:[{begin:"///",
    -end:"///",contains:[o,r.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)",
    -relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+s
    -},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{
    -begin:"```",end:"```"},{begin:"`",end:"`"}]}];o.contains=c
    -;const l=r.inherit(r.TITLE_MODE,{begin:s}),d="(\\(.*\\)\\s*)?\\B[-=]>",g={
    -className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,
    -end:/\)/,keywords:t,contains:["self"].concat(c)}]};return{name:"CoffeeScript",
    -aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/,
    -contains:c.concat([r.COMMENT("###","###"),r.HASH_COMMENT_MODE,{
    -className:"function",begin:"^\\s*"+s+"\\s*=\\s*"+d,end:"[-=]>",returnBegin:!0,
    -contains:[l,g]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",
    -begin:d,end:"[-=]>",returnBegin:!0,contains:[g]}]},{className:"class",
    -beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{
    -beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[l]},l]
    -},{begin:s+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}})());
    -hljs.registerLanguage("cpp",(()=>{"use strict";function e(e){
    -return t("(",e,")?")}function t(...e){return e.map((e=>{
    -return(t=e)?"string"==typeof t?t:t.source:null;var t})).join("")}return n=>{
    -const r=n.COMMENT("//","$",{contains:[{begin:/\\\n/}]
    -}),a="[a-zA-Z_]\\w*::",i="(decltype\\(auto\\)|"+e(a)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",s={
    -className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",
    -variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",
    -contains:[n.BACKSLASH_ESCAPE]},{
    -begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
    -end:"'",illegal:"."},n.END_SAME_AS_BEGIN({
    -begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={
    -className:"number",variants:[{begin:"\\b(0b[01']+)"},{
    -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
    -},{
    -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    -}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
    -"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
    -},contains:[{begin:/\\\n/,relevance:0},n.inherit(c,{className:"meta-string"}),{
    -className:"meta-string",begin:/<.*?>/},r,n.C_BLOCK_COMMENT_MODE]},d={
    -className:"title",begin:e(a)+n.IDENT_RE,relevance:0
    -},u=e(a)+n.IDENT_RE+"\\s*\\(",m={
    -keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",
    -built_in:"_Bool _Complex _Imaginary",
    -_relevance_hints:["asin","atan2","atan","calloc","ceil","cosh","cos","exit","exp","fabs","floor","fmod","fprintf","fputs","free","frexp","auto_ptr","deque","list","queue","stack","vector","map","set","pair","bitset","multiset","multimap","unordered_set","fscanf","future","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","tolower","toupper","labs","ldexp","log10","log","malloc","realloc","memchr","memcmp","memcpy","memset","modf","pow","printf","putchar","puts","scanf","sinh","sin","snprintf","sprintf","sqrt","sscanf","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","tanh","tan","unordered_map","unordered_multiset","unordered_multimap","priority_queue","make_pair","array","shared_ptr","abort","terminate","abs","acos","vfprintf","vprintf","vsprintf","endl","initializer_list","unique_ptr","complex","imaginary","std","string","wstring","cin","cout","cerr","clog","stdin","stdout","stderr","stringstream","istringstream","ostringstream"],
    -literal:"true false nullptr NULL"},p={className:"function.dispatch",relevance:0,
    -keywords:m,
    -begin:t(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!while)/,n.IDENT_RE,(_=/\s*\(/,
    -t("(?=",_,")")))};var _;const g=[p,l,s,r,n.C_BLOCK_COMMENT_MODE,o,c],b={
    -variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{
    -beginKeywords:"new throw return else",end:/;/}],keywords:m,contains:g.concat([{
    -begin:/\(/,end:/\)/,keywords:m,contains:g.concat(["self"]),relevance:0}]),
    -relevance:0},f={className:"function",begin:"("+i+"[\\*&\\s]+)+"+u,
    -returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:m,illegal:/[^\w\s\*&:<>.]/,
    -contains:[{begin:"decltype\\(auto\\)",keywords:m,relevance:0},{begin:u,
    -returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{begin:/:/,
    -endsWithParent:!0,contains:[c,o]},{className:"params",begin:/\(/,end:/\)/,
    -keywords:m,relevance:0,contains:[r,n.C_BLOCK_COMMENT_MODE,c,o,s,{begin:/\(/,
    -end:/\)/,keywords:m,relevance:0,contains:["self",r,n.C_BLOCK_COMMENT_MODE,c,o,s]
    -}]},s,r,n.C_BLOCK_COMMENT_MODE,l]};return{name:"C++",
    -aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:m,illegal:"</",
    -classNameAliases:{"function.dispatch":"built_in"},
    -contains:[].concat(b,f,p,g,[l,{
    -begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",
    -end:">",keywords:m,contains:["self",s]},{begin:n.IDENT_RE+"::",keywords:m},{
    -className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,
    -contains:[{beginKeywords:"final class struct"},n.TITLE_MODE]}]),exports:{
    -preprocessor:l,strings:c,keywords:m}}}})());
    -hljs.registerLanguage("csharp",(()=>{"use strict";return e=>{const n={
    -keyword:["abstract","as","base","break","case","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]),
    -built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],
    -literal:["default","false","null","true"]},a=e.inherit(e.TITLE_MODE,{
    -begin:"[a-zA-Z](\\.?\\w)*"}),i={className:"number",variants:[{
    -begin:"\\b(0b[01']+)"},{
    -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{
    -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    -}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]
    -},t=e.inherit(s,{illegal:/\n/}),r={className:"subst",begin:/\{/,end:/\}/,
    -keywords:n},l=e.inherit(r,{illegal:/\n/}),c={className:"string",begin:/\$"/,
    -end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/
    -},e.BACKSLASH_ESCAPE,l]},o={className:"string",begin:/\$@"/,end:'"',contains:[{
    -begin:/\{\{/},{begin:/\}\}/},{begin:'""'},r]},d=e.inherit(o,{illegal:/\n/,
    -contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},l]})
    -;r.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE],
    -l.contains=[d,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.inherit(e.C_BLOCK_COMMENT_MODE,{
    -illegal:/\n/})];const g={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
    -},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},a]
    -},_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={
    -begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],
    -keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,
    -contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{
    -begin:"\x3c!--|--\x3e"},{begin:"</?",end:">"}]}]
    -}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",
    -end:"$",keywords:{
    -"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"
    -}},g,i,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,
    -illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"
    -},a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",
    -relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
    -contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
    -beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
    -contains:[a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",
    -begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{
    -className:"meta-string",begin:/"/,end:/"/}]},{
    -beginKeywords:"new return throw await else",relevance:0},{className:"function",
    -begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0,
    -end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{
    -beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial",
    -relevance:0},{begin:e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0,
    -contains:[e.TITLE_MODE,E],relevance:0},{className:"params",begin:/\(/,end:/\)/,
    -excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,
    -contains:[g,i,e.C_BLOCK_COMMENT_MODE]
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}})());
    -hljs.registerLanguage("css",(()=>{"use strict"
    -;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse()
    -;return n=>{const a=(e=>({IMPORTANT:{className:"meta",begin:"!important"},
    -HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},
    -ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,
    -illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}
    -}))(n),l=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS",
    -case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},
    -classNameAliases:{keyframePosition:"selector-tag"},
    -contains:[n.C_BLOCK_COMMENT_MODE,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/
    -},n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0
    -},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0
    -},a.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{
    -begin:":("+i.join("|")+")"},{begin:"::("+o.join("|")+")"}]},{
    -className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{begin:":",end:"[;}]",
    -contains:[a.HEXCOLOR,a.IMPORTANT,n.CSS_NUMBER_MODE,...l,{
    -begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"
    -},contains:[{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]
    -},{className:"built_in",begin:/[\w-]+(?=\()/}]},{
    -begin:(s=/@/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",s,")")),
    -end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",
    -begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,
    -relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",
    -attribute:t.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"
    -},...l,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",
    -begin:"\\b("+e.join("|")+")\\b"}]};var s}})());
    -hljs.registerLanguage("diff",(()=>{"use strict";return e=>({name:"Diff",
    -aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{
    -begin:/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{
    -begin:/^--- +\d+,\d+ +----$/}]},{className:"comment",variants:[{begin:/Index: /,
    -end:/$/},{begin:/^index/,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^-{3}/,end:/$/
    -},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/^\*{15}$/},{
    -begin:/^diff --git/,end:/$/}]},{className:"addition",begin:/^\+/,end:/$/},{
    -className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,
    -end:/$/}]})})());
    -hljs.registerLanguage("go",(()=>{"use strict";return e=>{const n={
    -keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",
    -literal:"true false iota nil",
    -built_in:"append cap close complex copy imag len make new panic print println real recover delete"
    -};return{name:"Go",aliases:["golang"],keywords:n,illegal:"</",
    -contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",
    -variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{
    -className:"number",variants:[{begin:e.C_NUMBER_RE+"[i]",relevance:1
    -},e.C_NUMBER_MODE]},{begin:/:=/},{className:"function",beginKeywords:"func",
    -end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",
    -begin:/\(/,end:/\)/,keywords:n,illegal:/["']/}]}]}}})());
    -hljs.registerLanguage("http",(()=>{"use strict";function e(...e){
    -return e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null;var n
    -})).join("")}return n=>{const a="HTTP/(2|1\\.[01])",s={className:"attribute",
    -begin:e("^",/[A-Za-z][A-Za-z0-9-]*/,"(?=\\:\\s)"),starts:{contains:[{
    -className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]}
    -},t=[s,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{
    -name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+a+" \\d{3})",
    -end:/$/,contains:[{className:"meta",begin:a},{className:"number",
    -begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:t}},{
    -begin:"(?=^[A-Z]+ (.*?) "+a+"$)",end:/$/,contains:[{className:"string",
    -begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:a},{
    -className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:t}
    -},n.inherit(s,{relevance:0})]}}})());
    -hljs.registerLanguage("ini",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(...n){
    -return n.map((n=>e(n))).join("")}return s=>{const a={className:"number",
    -relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:s.NUMBER_RE}]
    -},i=s.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const t={
    -className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/
    -}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={
    -className:"string",contains:[s.BACKSLASH_ESCAPE],variants:[{begin:"'''",
    -end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'
    -},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[i,r,t,l,a,"self"],
    -relevance:0
    -},g="("+[/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/].map((n=>e(n))).join("|")+")"
    -;return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,
    -contains:[i,{className:"section",begin:/\[+/,end:/\]+/},{
    -begin:n(g,"(\\s*\\.\\s*",g,")*",n("(?=",/\s*=\s*[^#\s]/,")")),className:"attr",
    -starts:{end:/$/,contains:[i,c,r,t,l,a]}}]}}})());
    -hljs.registerLanguage("java",(()=>{"use strict"
    -;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={
    -className:"number",variants:[{
    -begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    -},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
    -begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{
    -begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    -},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{
    -begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
    -relevance:0};return e=>{
    -var n="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",s={
    -className:"meta",begin:"@[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",
    -contains:[{begin:/\(/,end:/\)/,contains:["self"]}]};const r=a;return{
    -name:"Java",aliases:["jsp"],keywords:n,illegal:/<\/|#/,
    -contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,
    -relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{
    -begin:/import java\.[a-z]+\./,keywords:"import",relevance:2
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{
    -className:"class",beginKeywords:"class interface enum",end:/[{;=]/,
    -excludeEnd:!0,relevance:1,keywords:"class interface enum",illegal:/[:"\[\]]/,
    -contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{
    -beginKeywords:"new throw return else",relevance:0},{className:"class",
    -begin:"record\\s+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,excludeEnd:!0,
    -end:/[{;=]/,keywords:n,contains:[{beginKeywords:"record"},{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,
    -keywords:n,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE]
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"function",
    -begin:"([\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*(<[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*(\\s*,\\s*[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",
    -returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:n,contains:[{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,
    -keywords:n,relevance:0,
    -contains:[s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.C_BLOCK_COMMENT_MODE]
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},r,s]}}})());
    -hljs.registerLanguage("javascript",(()=>{"use strict"
    -;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
    -;function r(e){return t("(?=",e,")")}function t(...e){return e.map((e=>{
    -return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return i=>{
    -const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,
    -isTrulyOpeningTag:(e,n)=>{const a=e[0].length+e.index,s=e.input[a]
    -;"<"!==s?">"===s&&(((e,{after:n})=>{const a="</"+e[0].slice(1)
    -;return-1!==e.input.indexOf(a,n)})(e,{after:a
    -})||n.ignoreMatch()):n.ignoreMatch()}},l={$pattern:e,keyword:n,literal:a,
    -built_in:s},g="\\.([0-9](_?[0-9])*)",b="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",d={
    -className:"number",variants:[{
    -begin:`(\\b(${b})((${g})|\\.)?|(${g}))[eE][+-]?([0-9](_?[0-9])*)\\b`},{
    -begin:`\\b(${b})\\b((${g})\\b|\\.)?|(${g})\\b`},{
    -begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
    -begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
    -begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
    -begin:"\\b0[0-7]+n?\\b"}],relevance:0},E={className:"subst",begin:"\\$\\{",
    -end:"\\}",keywords:l,contains:[]},u={begin:"html`",end:"",starts:{end:"`",
    -returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,E],subLanguage:"xml"}},_={
    -begin:"css`",end:"",starts:{end:"`",returnEnd:!1,
    -contains:[i.BACKSLASH_ESCAPE,E],subLanguage:"css"}},m={className:"string",
    -begin:"`",end:"`",contains:[i.BACKSLASH_ESCAPE,E]},y={className:"comment",
    -variants:[i.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
    -className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",
    -end:"\\}",relevance:0},{className:"variable",begin:c+"(?=\\s*(-)|$)",
    -endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
    -}),i.C_BLOCK_COMMENT_MODE,i.C_LINE_COMMENT_MODE]
    -},N=[i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,u,_,m,d,i.REGEXP_MODE]
    -;E.contains=N.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(N)
    -});const A=[].concat(y,E.contains),f=A.concat([{begin:/\(/,end:/\)/,keywords:l,
    -contains:["self"].concat(A)}]),p={className:"params",begin:/\(/,end:/\)/,
    -excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f};return{name:"Javascript",
    -aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:f},
    -illegal:/#(?![$_A-z])/,contains:[i.SHEBANG({label:"shebang",binary:"node",
    -relevance:5}),{label:"use_strict",className:"meta",relevance:10,
    -begin:/^\s*['"]use (strict|asm)['"]/
    -},i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,u,_,m,y,d,{
    -begin:t(/[{,\n]\s*/,r(t(/(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/,c+"\\s*:"))),
    -relevance:0,contains:[{className:"attr",begin:c+r("\\s*:"),relevance:0}]},{
    -begin:"("+i.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
    -keywords:"return throw case",contains:[y,i.REGEXP_MODE,{className:"function",
    -begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+i.UNDERSCORE_IDENT_RE+")\\s*=>",
    -returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{
    -begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0
    -},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}]
    -},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{
    -variants:[{begin:"<>",end:"</>"},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,
    -end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,
    -contains:["self"]}]}],relevance:0},{className:"function",
    -beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l,
    -contains:["self",i.inherit(i.TITLE_MODE,{begin:c}),p],illegal:/%/},{
    -beginKeywords:"while if switch catch for"},{className:"function",
    -begin:i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
    -returnBegin:!0,contains:[p,i.inherit(i.TITLE_MODE,{begin:c})]},{variants:[{
    -begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class",
    -beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{
    -beginKeywords:"extends"},i.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/,
    -end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:c}),"self",p]
    -},{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set",
    -contains:[i.inherit(i.TITLE_MODE,{begin:c}),{begin:/\(\)/},p]},{begin:/\$[(.]/}]
    -}}})());
    -hljs.registerLanguage("json",(()=>{"use strict";return n=>{const e={
    -literal:"true false null"
    -},i=[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],a=[n.QUOTE_STRING_MODE,n.C_NUMBER_MODE],l={
    -end:",",endsWithParent:!0,excludeEnd:!0,contains:a,keywords:e},t={begin:/\{/,
    -end:/\}/,contains:[{className:"attr",begin:/"/,end:/"/,
    -contains:[n.BACKSLASH_ESCAPE],illegal:"\\n"},n.inherit(l,{begin:/:/
    -})].concat(i),illegal:"\\S"},s={begin:"\\[",end:"\\]",contains:[n.inherit(l)],
    -illegal:"\\S"};return a.push(t,s),i.forEach((n=>{a.push(n)})),{name:"JSON",
    -contains:a,keywords:e,illegal:"\\S"}}})());
    -hljs.registerLanguage("kotlin",(()=>{"use strict"
    -;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={
    -className:"number",variants:[{
    -begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    -},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
    -begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{
    -begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    -},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{
    -begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
    -relevance:0};return e=>{const n={
    -keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",
    -built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",
    -literal:"true false null"},i={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"
    -},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},t={
    -className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string",
    -variants:[{begin:'"""',end:'"""(?=[^"])',contains:[t,s]},{begin:"'",end:"'",
    -illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,
    -contains:[e.BACKSLASH_ESCAPE,t,s]}]};s.contains.push(r);const l={
    -className:"meta",
    -begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"
    -},c={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,
    -end:/\)/,contains:[e.inherit(r,{className:"meta-string"})]}]
    -},o=a,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),E={
    -variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,
    -contains:[]}]},d=E;return d.variants[1].contains=[E],E.variants[1].contains=[d],
    -{name:"Kotlin",aliases:["kt","kts"],keywords:n,
    -contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",
    -begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,{className:"keyword",
    -begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",
    -begin:/@\w+/}]}},i,l,c,{className:"function",beginKeywords:"fun",end:"[(]|$",
    -returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,
    -keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,
    -endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,
    -endsWithParent:!0,contains:[E,e.C_LINE_COMMENT_MODE,b],relevance:0
    -},e.C_LINE_COMMENT_MODE,b,l,c,r,e.C_NUMBER_MODE]},b]},{className:"class",
    -beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,
    -illegal:"extends implements",contains:[{
    -beginKeywords:"public protected internal private constructor"
    -},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,
    -excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,
    -excludeBegin:!0,returnEnd:!0},l,c]},r,{className:"meta",begin:"^#!/usr/bin/env",
    -end:"$",illegal:"\n"},o]}}})());
    -hljs.registerLanguage("less",(()=>{"use strict"
    -;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],n=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse(),r=i.concat(o)
    -;return a=>{const s=(e=>({IMPORTANT:{className:"meta",begin:"!important"},
    -HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},
    -ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,
    -illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}
    -}))(a),l=r,d="([\\w-]+|@\\{[\\w-]+\\})",c=[],g=[],b=e=>({className:"string",
    -begin:"~?"+e+".*?"+e}),m=(e,t,i)=>({className:e,begin:t,relevance:i}),u={
    -$pattern:/[a-z-]+/,keyword:"and or not only",attribute:t.join(" ")},p={
    -begin:"\\(",end:"\\)",contains:g,keywords:u,relevance:0}
    -;g.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,b("'"),b('"'),a.CSS_NUMBER_MODE,{
    -begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",
    -excludeEnd:!0}
    -},s.HEXCOLOR,p,m("variable","@@?[\\w-]+",10),m("variable","@\\{[\\w-]+\\}"),m("built_in","~?`[^`]*?`"),{
    -className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0
    -},s.IMPORTANT);const f=g.concat({begin:/\{/,end:/\}/,contains:c}),h={
    -beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"
    -}].concat(g)},w={begin:d+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,
    -contains:[{begin:/-(webkit|moz|ms|o)-/},{className:"attribute",
    -begin:"\\b("+n.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,
    -illegal:"[<=$]",relevance:0,contains:g}}]},v={className:"keyword",
    -begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",
    -starts:{end:"[;{}]",keywords:u,returnEnd:!0,contains:g,relevance:0}},y={
    -className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{
    -begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:f}},k={variants:[{
    -begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:d,end:/\{/}],returnBegin:!0,
    -returnEnd:!0,illegal:"[<='$\"]",relevance:0,
    -contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,h,m("keyword","all\\b"),m("variable","@\\{[\\w-]+\\}"),{
    -begin:"\\b("+e.join("|")+")\\b",className:"selector-tag"
    -},m("selector-tag",d+"%?",0),m("selector-id","#"+d),m("selector-class","\\."+d,0),m("selector-tag","&",0),s.ATTRIBUTE_SELECTOR_MODE,{
    -className:"selector-pseudo",begin:":("+i.join("|")+")"},{
    -className:"selector-pseudo",begin:"::("+o.join("|")+")"},{begin:"\\(",end:"\\)",
    -contains:f},{begin:"!important"}]},E={begin:`[\\w-]+:(:)?(${l.join("|")})`,
    -returnBegin:!0,contains:[k]}
    -;return c.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,v,y,E,w,k),{
    -name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:c}}})());
    -hljs.registerLanguage("lua",(()=>{"use strict";return e=>{
    -const t="\\[=*\\[",a="\\]=*\\]",n={begin:t,end:a,contains:["self"]
    -},o=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[",a,{contains:[n],
    -relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,
    -literal:"true false nil",
    -keyword:"and break do else elseif end for goto if in local not or repeat return then until while",
    -built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"
    -},contains:o.concat([{className:"function",beginKeywords:"function",end:"\\)",
    -contains:[e.inherit(e.TITLE_MODE,{
    -begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",
    -begin:"\\(",endsWithParent:!0,contains:o}].concat(o)
    -},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",
    -begin:t,end:a,contains:[n],relevance:5}])}}})());
    -hljs.registerLanguage("makefile",(()=>{"use strict";return e=>{const i={
    -className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",
    -contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},a={className:"string",
    -begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i]},n={className:"variable",
    -begin:/\$\([\w-]+\s/,end:/\)/,keywords:{
    -built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"
    -},contains:[i]},s={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},r={
    -className:"section",begin:/^[^\s]+:/,end:/$/,contains:[i]};return{
    -name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,
    -keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"
    -},contains:[e.HASH_COMMENT_MODE,i,a,n,s,{className:"meta",begin:/^\.PHONY:/,
    -end:/$/,keywords:{$pattern:/[\.\w]+/,"meta-keyword":".PHONY"}},r]}}})());
    -hljs.registerLanguage("xml",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")}
    -function a(...n){return n.map((n=>e(n))).join("")}function s(...n){
    -return"("+n.map((n=>e(n))).join("|")+")"}return e=>{
    -const t=a(/[A-Z_]/,a("(",/[A-Z0-9_.-]*:/,")?"),/[A-Z0-9_.-]*/),i={
    -className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},r={begin:/\s/,
    -contains:[{className:"meta-keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]
    -},c=e.inherit(r,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{
    -className:"meta-string"}),g=e.inherit(e.QUOTE_STRING_MODE,{
    -className:"meta-string"}),m={endsWithParent:!0,illegal:/</,relevance:0,
    -contains:[{className:"attr",begin:/[A-Za-z0-9._:-]+/,relevance:0},{begin:/=\s*/,
    -relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,
    -end:/"/,contains:[i]},{begin:/'/,end:/'/,contains:[i]},{begin:/[^\s"'=<>`]+/}]}]
    -}]};return{name:"HTML, XML",
    -aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],
    -case_insensitive:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,
    -relevance:10,contains:[r,g,l,c,{begin:/\[/,end:/\]/,contains:[{className:"meta",
    -begin:/<![a-z]/,end:/>/,contains:[r,c,g,l]}]}]},e.COMMENT(/<!--/,/-->/,{
    -relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},i,{
    -className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",
    -begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[m],starts:{
    -end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",
    -begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[m],starts:{
    -end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{
    -className:"tag",begin:/<>|<\/>/},{className:"tag",
    -begin:a(/</,n(a(t,s(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",
    -begin:t,relevance:0,starts:m}]},{className:"tag",begin:a(/<\//,n(a(t,/>/))),
    -contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,
    -endsParent:!0}]}]}}})());
    -hljs.registerLanguage("markdown",(()=>{"use strict";function n(...n){
    -return n.map((n=>{return(e=n)?"string"==typeof e?e:e.source:null;var e
    -})).join("")}return e=>{const a={begin:/<\/?[A-Za-z_]/,end:">",
    -subLanguage:"xml",relevance:0},i={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0
    -},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,
    -relevance:2},{begin:n(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),
    -relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{
    -begin:/\[.+?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{
    -className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,
    -returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",
    -excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",
    -end:"\\]",excludeBegin:!0,excludeEnd:!0}]},s={className:"strong",contains:[],
    -variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},c={
    -className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{
    -begin:/_(?!_)/,end:/_/,relevance:0}]};s.contains.push(c),c.contains.push(s)
    -;let t=[a,i]
    -;return s.contains=s.contains.concat(t),c.contains=c.contains.concat(t),
    -t=t.concat(s,c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{
    -className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:t},{
    -begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",
    -contains:t}]}]},a,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",
    -end:"\\s+",excludeEnd:!0},s,c,{className:"quote",begin:"^>\\s+",contains:t,
    -end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{
    -begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{
    -begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",
    -contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{
    -begin:"^[-\\*]{3,}",end:"$"},i,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{
    -className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{
    -className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}})());
    -hljs.registerLanguage("nginx",(()=>{"use strict";return e=>{const n={
    -className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/\}/},{
    -begin:/[$@]/+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,keywords:{
    -$pattern:"[a-z/_]+",
    -literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"
    -},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",
    -contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/
    -}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]
    -},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",
    -end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{
    -begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",
    -begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{
    -className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},n]};return{
    -name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\{/,contains:[{
    -className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|\\{",returnBegin:!0,contains:[{
    -className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}],
    -illegal:"[^\\s\\}]"}}})());
    -hljs.registerLanguage("objectivec",(()=>{"use strict";return e=>{
    -const n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n,
    -keyword:"@interface @class @protocol @implementation"};return{
    -name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],
    -keywords:{$pattern:n,
    -keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",
    -literal:"false true FALSE TRUE nil YES NO NULL",
    -built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"
    -},illegal:"</",contains:[{className:"built_in",
    -begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{
    -className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",
    -contains:[e.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,
    -keywords:{
    -"meta-keyword":"if else elif endif define undef warning error line pragma ifdef ifndef include"
    -},contains:[{begin:/\\\n/,relevance:0},e.inherit(e.QUOTE_STRING_MODE,{
    -className:"meta-string"}),{className:"meta-string",begin:/<.*?>/,end:/$/,
    -illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
    -className:"class",begin:"("+_.keyword.split(" ").join("|")+")\\b",end:/(\{|$)/,
    -excludeEnd:!0,keywords:_,contains:[e.UNDERSCORE_TITLE_MODE]},{
    -begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}})());
    -hljs.registerLanguage("perl",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(...n){
    -return n.map((n=>e(n))).join("")}function t(...n){
    -return"("+n.map((n=>e(n))).join("|")+")"}return e=>{
    -const r=/[dualxmsipngr]{0,12}/,s={$pattern:/[\w.]+/,
    -keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0"
    -},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:s},a={begin:/->\{/,
    -end:/\}/},o={variants:[{begin:/\$\d/},{
    -begin:n(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")
    -},{begin:/[$%@][^\s\w{]/,relevance:0}]
    -},c=[e.BACKSLASH_ESCAPE,i,o],g=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],l=(e,t,s="\\1")=>{
    -const i="\\1"===s?s:n(s,t)
    -;return n(n("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,i,/(?:\\.|[^\\\/])*?/,s,r)
    -},d=(e,t,s)=>n(n("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,s,r),p=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{
    -endsWithParent:!0}),a,{className:"string",contains:c,variants:[{
    -begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",
    -end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{
    -begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",
    -relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",
    -contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",
    -contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{
    -begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",
    -begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",
    -relevance:0},{
    -begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",
    -keywords:"split return print reverse grep",relevance:0,
    -contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{
    -begin:l("s|tr|y",t(...g))},{begin:l("s|tr|y","\\(","\\)")},{
    -begin:l("s|tr|y","\\[","\\]")},{begin:l("s|tr|y","\\{","\\}")}],relevance:2},{
    -className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{
    -begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",t(...g),/\1/)},{
    -begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{
    -begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",
    -end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{
    -begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",
    -subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]
    -}];return i.contains=p,a.contains=p,{name:"Perl",aliases:["pl","pm"],keywords:s,
    -contains:p}}})());
    -hljs.registerLanguage("php",(()=>{"use strict";return e=>{const r={
    -className:"variable",
    -begin:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?![A-Za-z0-9])(?![$])"},t={
    -className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{
    -begin:/\?>/}]},a={className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,
    -end:/\}/}]},n=e.inherit(e.APOS_STRING_MODE,{illegal:null
    -}),i=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,
    -contains:e.QUOTE_STRING_MODE.contains.concat(a)}),o=e.END_SAME_AS_BEGIN({
    -begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/,
    -contains:e.QUOTE_STRING_MODE.contains.concat(a)}),l={className:"string",
    -contains:[e.BACKSLASH_ESCAPE,t],variants:[e.inherit(n,{begin:"b'",end:"'"
    -}),e.inherit(i,{begin:'b"',end:'"'}),i,n,o]},s={className:"number",variants:[{
    -begin:"\\b0b[01]+(?:_[01]+)*\\b"},{begin:"\\b0o[0-7]+(?:_[0-7]+)*\\b"},{
    -begin:"\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b"},{
    -begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:e[+-]?\\d+)?"
    -}],relevance:0},c={
    -keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile enum eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list match|0 mixed new object or private protected public real return string switch throw trait try unset use var void while xor yield",
    -literal:"false null true",
    -built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException UnhandledMatchError ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Stringable Throwable Traversable WeakReference WeakMap Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass"
    -};return{aliases:["php3","php4","php5","php6","php7","php8"],
    -case_insensitive:!0,keywords:c,
    -contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[t]
    -}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]
    -}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,
    -keywords:"__halt_compiler"}),t,{className:"keyword",begin:/\$this\b/},r,{
    -begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",
    -relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,
    -illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{
    -begin:"=>",endsParent:!0},{className:"params",begin:"\\(",end:"\\)",
    -excludeBegin:!0,excludeEnd:!0,keywords:c,
    -contains:["self",r,e.C_BLOCK_COMMENT_MODE,l,s]}]},{className:"class",variants:[{
    -beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",
    -illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{
    -beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{
    -beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",relevance:0,end:";",
    -contains:[e.UNDERSCORE_TITLE_MODE]},l,s]}}})());
    -hljs.registerLanguage("php-template",(()=>{"use strict";return n=>({
    -name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,
    -subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',
    -end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{
    -illegal:null,className:null,contains:null,skip:!0
    -}),n.inherit(n.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,
    -skip:!0})]}]})})());
    -hljs.registerLanguage("plaintext",(()=>{"use strict";return t=>({
    -name:"Plain text",aliases:["text","txt"],disableAutodetect:!0})})());
    -hljs.registerLanguage("properties",(()=>{"use strict";return e=>{
    -var n="[ \\t\\f]*",a=n+"[:=]"+n,t="("+a+"|[ \\t\\f]+)",r="([^\\\\\\W:= \\t\\f\\n]|\\\\.)+",s="([^\\\\:= \\t\\f\\n]|\\\\.)+",i={
    -end:t,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{
    -begin:"\\\\\\\\"},{begin:"\\\\\\n"}]}};return{name:".properties",
    -case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{
    -returnBegin:!0,variants:[{begin:r+a,relevance:1},{begin:r+"[ \\t\\f]+",
    -relevance:0}],contains:[{className:"attr",begin:r,endsParent:!0,relevance:0}],
    -starts:i},{begin:s+t,returnBegin:!0,relevance:0,contains:[{className:"meta",
    -begin:s,endsParent:!0,relevance:0}],starts:i},{className:"attr",relevance:0,
    -begin:s+n+"$"}]}}})());
    -hljs.registerLanguage("python",(()=>{"use strict";return e=>{const n={
    -$pattern:/[A-Za-z]\w+|__\w+__/,
    -keyword:["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],
    -built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],
    -literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],
    -type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]
    -},a={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/,
    -end:/\}/,keywords:n,illegal:/#/},s={begin:/\{\{/,relevance:0},t={
    -className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{
    -begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,
    -contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{
    -begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,
    -contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{
    -begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,
    -contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,
    -end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([uU]|[rR])'/,end:/'/,
    -relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{
    -begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,
    -end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,
    -contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,
    -contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
    -},r="[0-9](_?[0-9])*",l=`(\\b(${r}))?\\.(${r})|\\b(${r})\\.`,b={
    -className:"number",relevance:0,variants:[{
    -begin:`(\\b(${r})|(${l}))[eE][+-]?(${r})[jJ]?\\b`},{begin:`(${l})[jJ]?`},{
    -begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{
    -begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{
    -begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${r})[jJ]\\b`}]},o={
    -className:"comment",
    -begin:(d=/# type:/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",d,")")),
    -end:/$/,keywords:n,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,
    -endsWithParent:!0}]},c={className:"params",variants:[{className:"",
    -begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,
    -keywords:n,contains:["self",a,b,t,e.HASH_COMMENT_MODE]}]};var d
    -;return i.contains=[t,b,a],{name:"Python",aliases:["py","gyp","ipython"],
    -keywords:n,illegal:/(<\/|->|\?)|=>/,contains:[a,b,{begin:/\bself\b/},{
    -beginKeywords:"if",relevance:0},t,o,e.HASH_COMMENT_MODE,{variants:[{
    -className:"function",beginKeywords:"def"},{className:"class",
    -beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,
    -contains:[e.UNDERSCORE_TITLE_MODE,c,{begin:/->/,endsWithParent:!0,keywords:n}]
    -},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[b,c,t]}]}}})());
    -hljs.registerLanguage("python-repl",(()=>{"use strict";return s=>({
    -aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",
    -subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{
    -begin:/^\.\.\.(?=[ ]|$)/}]}]})})());
    -hljs.registerLanguage("r",(()=>{"use strict";function e(...e){return e.map((e=>{
    -return(a=e)?"string"==typeof a?a:a.source:null;var a})).join("")}return a=>{
    -const n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/;return{name:"R",
    -illegal:/->/,keywords:{$pattern:n,
    -keyword:"function if in break next repeat else for while",
    -literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",
    -built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"
    -},compilerExtensions:[(a,n)=>{if(!a.beforeMatch)return
    -;if(a.starts)throw Error("beforeMatch cannot be used with starts")
    -;const i=Object.assign({},a);Object.keys(a).forEach((e=>{delete a[e]
    -})),a.begin=e(i.beforeMatch,e("(?=",i.begin,")")),a.starts={relevance:0,
    -contains:[Object.assign(i,{endsParent:!0})]},a.relevance=0,delete i.beforeMatch
    -}],contains:[a.COMMENT(/#'/,/$/,{contains:[{className:"doctag",
    -begin:"@examples",starts:{contains:[{begin:/\n/},{begin:/#'\s*(?=@[a-zA-Z]+)/,
    -endsParent:!0},{begin:/#'/,end:/$/,excludeBegin:!0}]}},{className:"doctag",
    -begin:"@param",end:/$/,contains:[{className:"variable",variants:[{begin:n},{
    -begin:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{className:"doctag",
    -begin:/@[a-zA-Z]+/},{className:"meta-keyword",begin:/\\[a-zA-Z]+/}]
    -}),a.HASH_COMMENT_MODE,{className:"string",contains:[a.BACKSLASH_ESCAPE],
    -variants:[a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',
    -relevance:0},{begin:"'",end:"'",relevance:0}]},{className:"number",relevance:0,
    -beforeMatch:/([^a-zA-Z0-9._])/,variants:[{
    -match:/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/},{
    -match:/0[xX][0-9a-fA-F]+([pP][+-]?\d+)?[Li]?/},{
    -match:/(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?[Li]?/}]},{begin:"%",end:"%"},{
    -begin:e(/[a-zA-Z][a-zA-Z_0-9]*/,"\\s+<-\\s+")},{begin:"`",end:"`",contains:[{
    -begin:/\\./}]}]}}})());
    -hljs.registerLanguage("ruby",(()=>{"use strict";function e(...e){
    -return e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null;var n
    -})).join("")}return n=>{
    -const a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",i={
    -keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor __FILE__",
    -built_in:"proc lambda",literal:"true false nil"},s={className:"doctag",
    -begin:"@[A-Za-z]+"},r={begin:"#<",end:">"},b=[n.COMMENT("#","$",{contains:[s]
    -}),n.COMMENT("^=begin","^=end",{contains:[s],relevance:10
    -}),n.COMMENT("^__END__","\\n$")],c={className:"subst",begin:/#\{/,end:/\}/,
    -keywords:i},t={className:"string",contains:[n.BACKSLASH_ESCAPE,c],variants:[{
    -begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,
    -end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{
    -begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,
    -end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{
    -begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{
    -begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{
    -begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{
    -begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{
    -begin:/<<[-~]?'?(\w+)\n(?:[^\n]*\n)*?\s*\1\b/,returnBegin:!0,contains:[{
    -begin:/<<[-~]?'?/},n.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,
    -contains:[n.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",d={className:"number",
    -relevance:0,variants:[{
    -begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{
    -begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"
    -},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{
    -begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{
    -begin:"\\b0(_?[0-7])+r?i?\\b"}]},l={className:"params",begin:"\\(",end:"\\)",
    -endsParent:!0,keywords:i},o=[t,{className:"class",beginKeywords:"class module",
    -end:"$|;",illegal:/=/,contains:[n.inherit(n.TITLE_MODE,{
    -begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|!)?"}),{begin:"<\\s*",contains:[{
    -begin:"("+n.IDENT_RE+"::)?"+n.IDENT_RE,relevance:0}]}].concat(b)},{
    -className:"function",begin:e(/def\s+/,(_=a+"\\s*(\\(|;|$)",e("(?=",_,")"))),
    -relevance:0,keywords:"def",end:"$|;",contains:[n.inherit(n.TITLE_MODE,{begin:a
    -}),l].concat(b)},{begin:n.IDENT_RE+"::"},{className:"symbol",
    -begin:n.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",
    -begin:":(?!\\s)",contains:[t,{begin:a}],relevance:0},d,{className:"variable",
    -begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{
    -className:"params",begin:/\|/,end:/\|/,relevance:0,keywords:i},{
    -begin:"("+n.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{
    -className:"regexp",contains:[n.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{
    -begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",
    -end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]
    -}].concat(r,b),relevance:0}].concat(r,b);var _;c.contains=o,l.contains=o
    -;const E=[{begin:/^\s*=>/,starts:{end:"$",contains:o}},{className:"meta",
    -begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",
    -starts:{end:"$",contains:o}}];return b.unshift(r),{name:"Ruby",
    -aliases:["rb","gemspec","podspec","thor","irb"],keywords:i,illegal:/\/\*/,
    -contains:[n.SHEBANG({binary:"ruby"})].concat(E).concat(b).concat(o)}}})());
    -hljs.registerLanguage("rust",(()=>{"use strict";return e=>{
    -const n="([ui](8|16|32|64|128|size)|f(32|64))?",t="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!"
    -;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",
    -keyword:"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield",
    -literal:"true false Some None Ok Err",built_in:t},illegal:"</",
    -contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]
    -}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{
    -className:"string",variants:[{begin:/r(#*)"(.|\n)*?"\1(?!#)/},{
    -begin:/b?'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/}]},{className:"symbol",
    -begin:/'[a-zA-Z_][a-zA-Z0-9_]*/},{className:"number",variants:[{
    -begin:"\\b0b([01_]+)"+n},{begin:"\\b0o([0-7_]+)"+n},{
    -begin:"\\b0x([A-Fa-f0-9_]+)"+n},{
    -begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+n}],relevance:0},{
    -className:"function",beginKeywords:"fn",end:"(\\(|<)",excludeEnd:!0,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"meta",begin:"#!?\\[",end:"\\]",
    -contains:[{className:"meta-string",begin:/"/,end:/"/}]},{className:"class",
    -beginKeywords:"type",end:";",contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{
    -endsParent:!0})],illegal:"\\S"},{className:"class",
    -beginKeywords:"trait enum struct union",end:/\{/,
    -contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{endsParent:!0})],illegal:"[\\w\\d]"
    -},{begin:e.IDENT_RE+"::",keywords:{built_in:t}},{begin:"->"}]}}})());
    -hljs.registerLanguage("scss",(()=>{"use strict"
    -;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse()
    -;return a=>{const n=(e=>({IMPORTANT:{className:"meta",begin:"!important"},
    -HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},
    -ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,
    -illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}
    -}))(a),l=o,s=i,d="@[a-z-]+",c={className:"variable",
    -begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"};return{name:"SCSS",case_insensitive:!0,
    -illegal:"[=/|']",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{
    -className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{
    -className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0
    -},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",
    -begin:"\\b("+e.join("|")+")\\b",relevance:0},{className:"selector-pseudo",
    -begin:":("+s.join("|")+")"},{className:"selector-pseudo",
    -begin:"::("+l.join("|")+")"},c,{begin:/\(/,end:/\)/,contains:[a.CSS_NUMBER_MODE]
    -},{className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{
    -begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"
    -},{begin:":",end:";",
    -contains:[c,n.HEXCOLOR,a.CSS_NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.IMPORTANT]
    -},{begin:"@(page|font-face)",lexemes:d,keywords:"@page @font-face"},{begin:"@",
    -end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,
    -keyword:"and or not only",attribute:t.join(" ")},contains:[{begin:d,
    -className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"
    -},c,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.HEXCOLOR,a.CSS_NUMBER_MODE]}]}}
    -})());
    -hljs.registerLanguage("shell",(()=>{"use strict";return s=>({
    -name:"Shell Session",aliases:["console"],contains:[{className:"meta",
    -begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#]/,starts:{end:/[^\\](?=\s*$)/,
    -subLanguage:"bash"}}]})})());
    -hljs.registerLanguage("sql",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function r(...r){
    -return r.map((r=>e(r))).join("")}function t(...r){
    -return"("+r.map((r=>e(r))).join("|")+")"}return e=>{
    -const n=e.COMMENT("--","$"),a=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],s=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],o=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],c=s,l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update   ","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!s.includes(e))),u={
    -begin:r(/\b/,t(...c),/\s*\(/),keywords:{built_in:c}};return{name:"SQL",
    -case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,
    -keyword:((e,{exceptions:r,when:t}={})=>{const n=t
    -;return r=r||[],e.map((e=>e.match(/\|\d+$/)||r.includes(e)?e:n(e)?e+"|0":e))
    -})(l,{when:e=>e.length<3}),literal:a,type:i,
    -built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]
    -},contains:[{begin:t(...o),keywords:{$pattern:/[\w\.]+/,keyword:l.concat(o),
    -literal:a,type:i}},{className:"type",
    -begin:t("double precision","large object","with timezone","without timezone")
    -},u,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{
    -begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{
    -begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"operator",
    -begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}})());
    -hljs.registerLanguage("swift",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")}
    -function a(...n){return n.map((n=>e(n))).join("")}function t(...n){
    -return"("+n.map((n=>e(n))).join("|")+")"}
    -const i=e=>a(/\b/,e,/\w$/.test(e)?/\b/:/\B/),s=["Protocol","Type"].map(i),u=["init","self"].map(i),c=["Any","Self"],r=["associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],o=["false","nil","true"],l=["assignment","associativity","higherThan","left","lowerThan","none","right"],m=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],d=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],p=t(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),F=t(p,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),b=a(p,F,"*"),h=t(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),f=t(h,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),w=a(h,f,"*"),y=a(/[A-Z]/,f,"*"),g=["autoclosure",a(/convention\(/,t("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",a(/objc\(/,w,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","testable","UIApplicationMain","unknown","usableFromInline"],E=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"]
    -;return e=>{const p={match:/\s+/,relevance:0},h=e.COMMENT("/\\*","\\*/",{
    -contains:["self"]}),v=[e.C_LINE_COMMENT_MODE,h],N={className:"keyword",
    -begin:a(/\./,n(t(...s,...u))),end:t(...s,...u),excludeBegin:!0},A={
    -match:a(/\./,t(...r)),relevance:0
    -},C=r.filter((e=>"string"==typeof e)).concat(["_|0"]),_={variants:[{
    -className:"keyword",
    -match:t(...r.filter((e=>"string"!=typeof e)).concat(c).map(i),...u)}]},D={
    -$pattern:t(/\b\w+/,/#\w+/),keyword:C.concat(m),literal:o},B=[N,A,_],k=[{
    -match:a(/\./,t(...d)),relevance:0},{className:"built_in",
    -match:a(/\b/,t(...d),/(?=\()/)}],M={match:/->/,relevance:0},S=[M,{
    -className:"operator",relevance:0,variants:[{match:b},{match:`\\.(\\.|${F})+`}]
    -}],x="([0-9a-fA-F]_*)+",I={className:"number",relevance:0,variants:[{
    -match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{
    -match:`\\b0x(${x})(\\.(${x}))?([pP][+-]?(([0-9]_*)+))?\\b`},{
    -match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},O=(e="")=>({
    -className:"subst",variants:[{match:a(/\\/,e,/[0\\tnr"']/)},{
    -match:a(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),T=(e="")=>({className:"subst",
    -match:a(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),L=(e="")=>({className:"subst",
    -label:"interpol",begin:a(/\\/,e,/\(/),end:/\)/}),P=(e="")=>({begin:a(e,/"""/),
    -end:a(/"""/,e),contains:[O(e),T(e),L(e)]}),$=(e="")=>({begin:a(e,/"/),
    -end:a(/"/,e),contains:[O(e),L(e)]}),K={className:"string",
    -variants:[P(),P("#"),P("##"),P("###"),$(),$("#"),$("##"),$("###")]},j={
    -match:a(/`/,w,/`/)},z=[j,{className:"variable",match:/\$\d+/},{
    -className:"variable",match:`\\$${f}+`}],q=[{match:/(@|#)available/,
    -className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:E,
    -contains:[...S,I,K]}]}},{className:"keyword",match:a(/@/,t(...g))},{
    -className:"meta",match:a(/@/,w)}],U={match:n(/\b[A-Z]/),relevance:0,contains:[{
    -className:"type",
    -match:a(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,f,"+")
    -},{className:"type",match:y,relevance:0},{match:/[?!]+/,relevance:0},{
    -match:/\.\.\./,relevance:0},{match:a(/\s+&\s+/,n(y)),relevance:0}]},Z={
    -begin:/</,end:/>/,keywords:D,contains:[...v,...B,...q,M,U]};U.contains.push(Z)
    -;const G={begin:/\(/,end:/\)/,relevance:0,keywords:D,contains:["self",{
    -match:a(w,/\s*:/),keywords:"_|0",relevance:0
    -},...v,...B,...k,...S,I,K,...z,...q,U]},H={beginKeywords:"func",contains:[{
    -className:"title",match:t(j.match,w,b),endsParent:!0,relevance:0},p]},R={
    -begin:/</,end:/>/,contains:[...v,U]},V={begin:/\(/,end:/\)/,keywords:D,
    -contains:[{begin:t(n(a(w,/\s*:/)),n(a(w,/\s+/,w,/\s*:/))),end:/:/,relevance:0,
    -contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:w}]
    -},...v,...B,...S,I,K,...q,U,G],endsParent:!0,illegal:/["']/},W={
    -className:"function",match:n(/\bfunc\b/),contains:[H,R,V,p],illegal:[/\[/,/%/]
    -},X={className:"function",match:/\b(subscript|init[?!]?)\s*(?=[<(])/,keywords:{
    -keyword:"subscript init init? init!",$pattern:/\w+[?!]?/},contains:[R,V,p],
    -illegal:/\[|%/},J={beginKeywords:"operator",end:e.MATCH_NOTHING_RE,contains:[{
    -className:"title",match:b,endsParent:!0,relevance:0}]},Q={
    -beginKeywords:"precedencegroup",end:e.MATCH_NOTHING_RE,contains:[{
    -className:"title",match:y,relevance:0},{begin:/{/,end:/}/,relevance:0,
    -endsParent:!0,keywords:[...l,...o],contains:[U]}]};for(const e of K.variants){
    -const n=e.contains.find((e=>"interpol"===e.label));n.keywords=D
    -;const a=[...B,...k,...S,I,K,...z];n.contains=[...a,{begin:/\(/,end:/\)/,
    -contains:["self",...a]}]}return{name:"Swift",keywords:D,contains:[...v,W,X,{
    -className:"class",beginKeywords:"struct protocol class extension enum",
    -end:"\\{",excludeEnd:!0,keywords:D,contains:[e.inherit(e.TITLE_MODE,{
    -begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...B]},J,Q,{
    -beginKeywords:"import",end:/$/,contains:[...v],relevance:0
    -},...B,...k,...S,I,K,...z,...q,U,G]}}})());
    -hljs.registerLanguage("typescript",(()=>{"use strict"
    -;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
    -;function t(e){return r("(?=",e,")")}function r(...e){return e.map((e=>{
    -return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return i=>{
    -const c={$pattern:e,
    -keyword:n.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]),
    -literal:a,
    -built_in:s.concat(["any","void","number","boolean","string","object","never","enum"])
    -},o={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},l=(e,n,a)=>{
    -const s=e.contains.findIndex((e=>e.label===n))
    -;if(-1===s)throw Error("can not find mode to replace");e.contains.splice(s,1,a)
    -},b=(i=>{const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/,
    -end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{
    -const a=e[0].length+e.index,s=e.input[a];"<"!==s?">"===s&&(((e,{after:n})=>{
    -const a="</"+e[0].slice(1);return-1!==e.input.indexOf(a,n)})(e,{after:a
    -})||n.ignoreMatch()):n.ignoreMatch()}},l={$pattern:e,keyword:n,literal:a,
    -built_in:s},b="\\.([0-9](_?[0-9])*)",d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",g={
    -className:"number",variants:[{
    -begin:`(\\b(${d})((${b})|\\.)?|(${b}))[eE][+-]?([0-9](_?[0-9])*)\\b`},{
    -begin:`\\b(${d})\\b((${b})\\b|\\.)?|(${b})\\b`},{
    -begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
    -begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
    -begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
    -begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",
    -end:"\\}",keywords:l,contains:[]},E={begin:"html`",end:"",starts:{end:"`",
    -returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},m={
    -begin:"css`",end:"",starts:{end:"`",returnEnd:!1,
    -contains:[i.BACKSLASH_ESCAPE,u],subLanguage:"css"}},y={className:"string",
    -begin:"`",end:"`",contains:[i.BACKSLASH_ESCAPE,u]},_={className:"comment",
    -variants:[i.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
    -className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",
    -end:"\\}",relevance:0},{className:"variable",begin:c+"(?=\\s*(-)|$)",
    -endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
    -}),i.C_BLOCK_COMMENT_MODE,i.C_LINE_COMMENT_MODE]
    -},p=[i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,E,m,y,g,i.REGEXP_MODE]
    -;u.contains=p.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(p)
    -});const N=[].concat(_,u.contains),f=N.concat([{begin:/\(/,end:/\)/,keywords:l,
    -contains:["self"].concat(N)}]),A={className:"params",begin:/\(/,end:/\)/,
    -excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f};return{name:"Javascript",
    -aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:f},
    -illegal:/#(?![$_A-z])/,contains:[i.SHEBANG({label:"shebang",binary:"node",
    -relevance:5}),{label:"use_strict",className:"meta",relevance:10,
    -begin:/^\s*['"]use (strict|asm)['"]/
    -},i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,E,m,y,_,g,{
    -begin:r(/[{,\n]\s*/,t(r(/(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/,c+"\\s*:"))),
    -relevance:0,contains:[{className:"attr",begin:c+t("\\s*:"),relevance:0}]},{
    -begin:"("+i.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
    -keywords:"return throw case",contains:[_,i.REGEXP_MODE,{className:"function",
    -begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+i.UNDERSCORE_IDENT_RE+")\\s*=>",
    -returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{
    -begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0
    -},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}]
    -},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{
    -variants:[{begin:"<>",end:"</>"},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,
    -end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,
    -contains:["self"]}]}],relevance:0},{className:"function",
    -beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l,
    -contains:["self",i.inherit(i.TITLE_MODE,{begin:c}),A],illegal:/%/},{
    -beginKeywords:"while if switch catch for"},{className:"function",
    -begin:i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
    -returnBegin:!0,contains:[A,i.inherit(i.TITLE_MODE,{begin:c})]},{variants:[{
    -begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class",
    -beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{
    -beginKeywords:"extends"},i.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/,
    -end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:c}),"self",A]
    -},{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set",
    -contains:[i.inherit(i.TITLE_MODE,{begin:c}),{begin:/\(\)/},A]},{begin:/\$[(.]/}]
    -}})(i)
    -;return Object.assign(b.keywords,c),b.exports.PARAMS_CONTAINS.push(o),b.contains=b.contains.concat([o,{
    -beginKeywords:"namespace",end:/\{/,excludeEnd:!0},{beginKeywords:"interface",
    -end:/\{/,excludeEnd:!0,keywords:"interface extends"
    -}]),l(b,"shebang",i.SHEBANG()),l(b,"use_strict",{className:"meta",relevance:10,
    -begin:/^\s*['"]use strict['"]/
    -}),b.contains.find((e=>"function"===e.className)).relevance=0,Object.assign(b,{
    -name:"TypeScript",aliases:["ts","tsx"]}),b}})());
    -hljs.registerLanguage("vbnet",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(...n){
    -return n.map((n=>e(n))).join("")}function t(...n){
    -return"("+n.map((n=>e(n))).join("|")+")"}return e=>{
    -const a=/\d{1,2}\/\d{1,2}\/\d{4}/,i=/\d{4}-\d{1,2}-\d{1,2}/,s=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,o={
    -className:"literal",variants:[{begin:n(/# */,t(i,a),/ *#/)},{
    -begin:n(/# */,r,/ *#/)},{begin:n(/# */,s,/ *#/)},{
    -begin:n(/# */,t(i,a),/ +/,t(s,r),/ *#/)}]},l=e.COMMENT(/'''/,/$/,{contains:[{
    -className:"doctag",begin:/<\/?/,end:/>/}]}),c=e.COMMENT(null,/$/,{variants:[{
    -begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",
    -aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{
    -keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",
    -built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",
    -type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",
    -literal:"true false nothing"},
    -illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{
    -className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,
    -end:/"/,illegal:/\n/,contains:[{begin:/""/}]},o,{className:"number",relevance:0,
    -variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/
    -},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{
    -begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{
    -className:"label",begin:/^\w+:/},l,c,{className:"meta",
    -begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,
    -end:/$/,keywords:{
    -"meta-keyword":"const disable else elseif enable end externalsource if region then"
    -},contains:[c]}]}}})());
    -hljs.registerLanguage("yaml",(()=>{"use strict";return e=>{
    -var n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={
    -className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/
    -},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",
    -variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(s,{
    -variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={
    -end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},t={begin:/\{/,
    -end:/\}/,contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]",
    -contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{
    -begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{
    -begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$",
    -relevance:10},{className:"string",
    -begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{
    -begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,
    -relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",
    -begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a
    -},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",
    -begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",
    -relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{
    -className:"number",
    -begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"
    -},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},t,g,s],r=[...b]
    -;return r.pop(),r.push(i),l.contains=r,{name:"YAML",case_insensitive:!0,
    -aliases:["yml"],contains:b}}})());
    \ No newline at end of file
    diff --git a/metrics-complete-branch-report-initial-htmlReport/js/highlightjs-line-numbers.min.js b/metrics-complete-branch-report-initial-htmlReport/js/highlightjs-line-numbers.min.js
    deleted file mode 100644
    index 8548576704..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/js/highlightjs-line-numbers.min.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -/*
    -The MIT License (MIT)
    -
    -Copyright (c) 2017 Yauheni Pakala
    -
    -Permission is hereby granted, free of charge, to any person obtaining a copy
    -of this software and associated documentation files (the "Software"), to deal
    -in the Software without restriction, including without limitation the rights
    -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    -copies of the Software, and to permit persons to whom the Software is
    -furnished to do so, subject to the following conditions:
    -
    -The above copyright notice and this permission notice shall be included in all
    -copies or substantial portions of the Software.
    -
    -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    -SOFTWARE.
    - */
    -!function(r,o){"use strict";var e,i="hljs-ln",l="hljs-ln-line",h="hljs-ln-code",s="hljs-ln-numbers",c="hljs-ln-n",m="data-line-number",a=/\r\n|\r|\n/g;function u(e){for(var n=e.toString(),t=e.anchorNode;"TD"!==t.nodeName;)t=t.parentNode;for(var r=e.focusNode;"TD"!==r.nodeName;)r=r.parentNode;var o=parseInt(t.dataset.lineNumber),a=parseInt(r.dataset.lineNumber);if(o==a)return n;var i,l=t.textContent,s=r.textContent;for(a<o&&(i=o,o=a,a=i,i=l,l=s,s=i);0!==n.indexOf(l);)l=l.slice(1);for(;-1===n.lastIndexOf(s);)s=s.slice(0,-1);for(var c=l,u=function(e){for(var n=e;"TABLE"!==n.nodeName;)n=n.parentNode;return n}(t),d=o+1;d<a;++d){var f=p('.{0}[{1}="{2}"]',[h,m,d]);c+="\n"+u.querySelector(f).textContent}return c+="\n"+s}function n(e){try{var n=o.querySelectorAll("code.hljs,code.nohighlight");for(var t in n)n.hasOwnProperty(t)&&(n[t].classList.contains("nohljsln")||d(n[t],e))}catch(e){r.console.error("LineNumbers error: ",e)}}function d(e,n){"object"==typeof e&&r.setTimeout(function(){e.innerHTML=f(e,n)},0)}function f(e,n){var t,r,o=(t=e,{singleLine:function(e){return!!e.singleLine&&e.singleLine}(r=(r=n)||{}),startFrom:function(e,n){var t=1;isFinite(n.startFrom)&&(t=n.startFrom);var r=function(e,n){return e.hasAttribute(n)?e.getAttribute(n):null}(e,"data-ln-start-from");return null!==r&&(t=function(e,n){if(!e)return n;var t=Number(e);return isFinite(t)?t:n}(r,1)),t}(t,r)});return function e(n){var t=n.childNodes;for(var r in t){var o;t.hasOwnProperty(r)&&(o=t[r],0<(o.textContent.trim().match(a)||[]).length&&(0<o.childNodes.length?e(o):v(o.parentNode)))}}(e),function(e,n){var t=g(e);""===t[t.length-1].trim()&&t.pop();if(1<t.length||n.singleLine){for(var r="",o=0,a=t.length;o<a;o++)r+=p('<tr><td class="{0} {1}" {3}="{5}"><div class="{2}" {3}="{5}"></div></td><td class="{0} {4}" {3}="{5}">{6}</td></tr>',[l,s,c,m,h,o+n.startFrom,0<t[o].length?t[o]:" "]);return p('<table class="{0}">{1}</table>',[i,r])}return e}(e.innerHTML,o)}function v(e){var n=e.className;if(/hljs-/.test(n)){for(var t=g(e.innerHTML),r=0,o="";r<t.length;r++){o+=p('<span class="{0}">{1}</span>\n',[n,0<t[r].length?t[r]:" "])}e.innerHTML=o.trim()}}function g(e){return 0===e.length?[]:e.split(a)}function p(e,t){return e.replace(/\{(\d+)\}/g,function(e,n){return void 0!==t[n]?t[n]:e})}r.hljs?(r.hljs.initLineNumbersOnLoad=function(e){"interactive"===o.readyState||"complete"===o.readyState?n(e):r.addEventListener("DOMContentLoaded",function(){n(e)})},r.hljs.lineNumbersBlock=d,r.hljs.lineNumbersValue=function(e,n){if("string"!=typeof e)return;var t=document.createElement("code");return t.innerHTML=e,f(t,n)},(e=o.createElement("style")).type="text/css",e.innerHTML=p(".{0}{border-collapse:collapse}.{0} td{padding:0}.{1}:before{content:attr({2})}",[i,c,m]),o.getElementsByTagName("head")[0].appendChild(e)):r.console.error("highlight.js not detected!"),document.addEventListener("copy",function(e){var n,t=window.getSelection();!function(e){for(var n=e;n;){if(n.className&&-1!==n.className.indexOf("hljs-ln-code"))return 1;n=n.parentNode}}(t.anchorNode)||(n=-1!==window.navigator.userAgent.indexOf("Edge")?u(t):t.toString(),e.clipboardData.setData("text/plain",n),e.preventDefault())})}(window,document);
    \ No newline at end of file
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index.html
    deleted file mode 100644
    index e1dfbfa741..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/index.html
    +++ /dev/null
    @@ -1,1413 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (20/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.2%
    -  </span>
    -  <span class="absValue">
    -    (91/102)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (120/135)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (9/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.1%
    -  </span>
    -  <span class="absValue">
    -    (108/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (67/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (63/96)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (56/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.3%
    -  </span>
    -  <span class="absValue">
    -    (18/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (75/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.7%
    -  </span>
    -  <span class="absValue">
    -    (26/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (19/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.7%
    -  </span>
    -  <span class="absValue">
    -    (15/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82%
    -  </span>
    -  <span class="absValue">
    -    (150/183)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40.7%
    -  </span>
    -  <span class="absValue">
    -    (48/118)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.1%
    -  </span>
    -  <span class="absValue">
    -    (62/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (28/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/29)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.6%
    -  </span>
    -  <span class="absValue">
    -    (141/189)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.4%
    -  </span>
    -  <span class="absValue">
    -    (29/37)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (63/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.8%
    -  </span>
    -  <span class="absValue">
    -    (43/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84%
    -  </span>
    -  <span class="absValue">
    -    (21/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (48/52)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (55/58)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index c6352124e6..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,1413 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (9/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.3%
    -  </span>
    -  <span class="absValue">
    -    (18/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (19/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (20/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.2%
    -  </span>
    -  <span class="absValue">
    -    (91/102)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (120/135)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.1%
    -  </span>
    -  <span class="absValue">
    -    (108/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (63/96)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (56/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (75/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.7%
    -  </span>
    -  <span class="absValue">
    -    (26/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40.7%
    -  </span>
    -  <span class="absValue">
    -    (48/118)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.1%
    -  </span>
    -  <span class="absValue">
    -    (62/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (28/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/29)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.6%
    -  </span>
    -  <span class="absValue">
    -    (141/189)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.4%
    -  </span>
    -  <span class="absValue">
    -    (29/37)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (63/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84%
    -  </span>
    -  <span class="absValue">
    -    (21/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (48/52)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (55/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (67/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.7%
    -  </span>
    -  <span class="absValue">
    -    (15/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82%
    -  </span>
    -  <span class="absValue">
    -    (150/183)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.8%
    -  </span>
    -  <span class="absValue">
    -    (43/49)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 1839e337c5..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,1413 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.8%
    -  </span>
    -  <span class="absValue">
    -    (43/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.7%
    -  </span>
    -  <span class="absValue">
    -    (15/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82%
    -  </span>
    -  <span class="absValue">
    -    (150/183)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (67/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (55/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (48/52)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84%
    -  </span>
    -  <span class="absValue">
    -    (21/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (63/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.4%
    -  </span>
    -  <span class="absValue">
    -    (29/37)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/29)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.6%
    -  </span>
    -  <span class="absValue">
    -    (141/189)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (28/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.1%
    -  </span>
    -  <span class="absValue">
    -    (62/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40.7%
    -  </span>
    -  <span class="absValue">
    -    (48/118)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.7%
    -  </span>
    -  <span class="absValue">
    -    (26/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (75/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (56/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (63/96)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.1%
    -  </span>
    -  <span class="absValue">
    -    (108/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (120/135)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.2%
    -  </span>
    -  <span class="absValue">
    -    (91/102)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (20/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (19/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.3%
    -  </span>
    -  <span class="absValue">
    -    (18/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (9/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 40e5822178..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,1413 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/29)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.6%
    -  </span>
    -  <span class="absValue">
    -    (141/189)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40.7%
    -  </span>
    -  <span class="absValue">
    -    (48/118)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (20/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.2%
    -  </span>
    -  <span class="absValue">
    -    (91/102)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (120/135)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (9/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.1%
    -  </span>
    -  <span class="absValue">
    -    (108/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (67/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (63/96)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (56/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.3%
    -  </span>
    -  <span class="absValue">
    -    (18/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (75/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.7%
    -  </span>
    -  <span class="absValue">
    -    (26/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (19/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.7%
    -  </span>
    -  <span class="absValue">
    -    (15/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82%
    -  </span>
    -  <span class="absValue">
    -    (150/183)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.1%
    -  </span>
    -  <span class="absValue">
    -    (62/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (28/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.4%
    -  </span>
    -  <span class="absValue">
    -    (29/37)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (63/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.8%
    -  </span>
    -  <span class="absValue">
    -    (43/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84%
    -  </span>
    -  <span class="absValue">
    -    (21/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (48/52)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (55/58)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 029a747e23..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,1413 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (55/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (48/52)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84%
    -  </span>
    -  <span class="absValue">
    -    (21/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.8%
    -  </span>
    -  <span class="absValue">
    -    (43/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (63/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.4%
    -  </span>
    -  <span class="absValue">
    -    (29/37)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (28/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.1%
    -  </span>
    -  <span class="absValue">
    -    (62/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.7%
    -  </span>
    -  <span class="absValue">
    -    (15/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82%
    -  </span>
    -  <span class="absValue">
    -    (150/183)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (19/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.7%
    -  </span>
    -  <span class="absValue">
    -    (26/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (75/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.3%
    -  </span>
    -  <span class="absValue">
    -    (18/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (56/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (63/96)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (67/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.1%
    -  </span>
    -  <span class="absValue">
    -    (108/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (9/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (120/135)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.2%
    -  </span>
    -  <span class="absValue">
    -    (91/102)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (20/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40.7%
    -  </span>
    -  <span class="absValue">
    -    (48/118)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/29)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.6%
    -  </span>
    -  <span class="absValue">
    -    (141/189)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_LINE.html
    deleted file mode 100644
    index dca54b3658..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,1413 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40.7%
    -  </span>
    -  <span class="absValue">
    -    (48/118)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (56/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (63/96)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.1%
    -  </span>
    -  <span class="absValue">
    -    (62/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/29)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.6%
    -  </span>
    -  <span class="absValue">
    -    (141/189)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (9/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.3%
    -  </span>
    -  <span class="absValue">
    -    (18/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.4%
    -  </span>
    -  <span class="absValue">
    -    (29/37)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.7%
    -  </span>
    -  <span class="absValue">
    -    (15/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82%
    -  </span>
    -  <span class="absValue">
    -    (150/183)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84%
    -  </span>
    -  <span class="absValue">
    -    (21/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (75/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.1%
    -  </span>
    -  <span class="absValue">
    -    (108/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (28/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.8%
    -  </span>
    -  <span class="absValue">
    -    (43/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (120/135)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.2%
    -  </span>
    -  <span class="absValue">
    -    (91/102)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.7%
    -  </span>
    -  <span class="absValue">
    -    (26/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (63/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (20/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (48/52)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (67/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (55/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (19/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 0694671af5..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,1413 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (19/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (55/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (67/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (48/52)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (20/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (63/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.7%
    -  </span>
    -  <span class="absValue">
    -    (26/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.2%
    -  </span>
    -  <span class="absValue">
    -    (91/102)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (120/135)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.8%
    -  </span>
    -  <span class="absValue">
    -    (43/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (28/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.1%
    -  </span>
    -  <span class="absValue">
    -    (108/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (75/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84%
    -  </span>
    -  <span class="absValue">
    -    (21/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.7%
    -  </span>
    -  <span class="absValue">
    -    (15/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82%
    -  </span>
    -  <span class="absValue">
    -    (150/183)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.4%
    -  </span>
    -  <span class="absValue">
    -    (29/37)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.3%
    -  </span>
    -  <span class="absValue">
    -    (18/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (9/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/29)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.6%
    -  </span>
    -  <span class="absValue">
    -    (141/189)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.1%
    -  </span>
    -  <span class="absValue">
    -    (62/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (63/96)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (56/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40.7%
    -  </span>
    -  <span class="absValue">
    -    (48/118)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 7b480f01bf..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,1413 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40.7%
    -  </span>
    -  <span class="absValue">
    -    (48/118)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (63/96)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (56/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/29)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.6%
    -  </span>
    -  <span class="absValue">
    -    (141/189)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.3%
    -  </span>
    -  <span class="absValue">
    -    (18/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.1%
    -  </span>
    -  <span class="absValue">
    -    (108/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.4%
    -  </span>
    -  <span class="absValue">
    -    (29/37)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.7%
    -  </span>
    -  <span class="absValue">
    -    (26/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.7%
    -  </span>
    -  <span class="absValue">
    -    (15/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82%
    -  </span>
    -  <span class="absValue">
    -    (150/183)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (120/135)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.1%
    -  </span>
    -  <span class="absValue">
    -    (62/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.2%
    -  </span>
    -  <span class="absValue">
    -    (91/102)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (75/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (20/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (9/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (67/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (19/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (28/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (63/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.8%
    -  </span>
    -  <span class="absValue">
    -    (43/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84%
    -  </span>
    -  <span class="absValue">
    -    (21/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (48/52)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (55/58)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index c2a7450f00..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,1413 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (55/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (48/52)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84%
    -  </span>
    -  <span class="absValue">
    -    (21/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.8%
    -  </span>
    -  <span class="absValue">
    -    (43/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (63/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (28/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (19/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (67/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (9/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (20/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (75/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.2%
    -  </span>
    -  <span class="absValue">
    -    (91/102)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.1%
    -  </span>
    -  <span class="absValue">
    -    (62/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (120/135)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.7%
    -  </span>
    -  <span class="absValue">
    -    (15/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82%
    -  </span>
    -  <span class="absValue">
    -    (150/183)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.7%
    -  </span>
    -  <span class="absValue">
    -    (26/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.4%
    -  </span>
    -  <span class="absValue">
    -    (29/37)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.1%
    -  </span>
    -  <span class="absValue">
    -    (108/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.3%
    -  </span>
    -  <span class="absValue">
    -    (18/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/29)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.6%
    -  </span>
    -  <span class="absValue">
    -    (141/189)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (56/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (63/96)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40.7%
    -  </span>
    -  <span class="absValue">
    -    (48/118)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 5ad4ecb28f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,1413 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.5%
    -  </span>
    -  <span class="absValue">
    -    (494/629)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    4.4%
    -  </span>
    -  <span class="absValue">
    -    (19/431)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (1510/1915)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (55/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (48/52)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84%
    -  </span>
    -  <span class="absValue">
    -    (21/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.8%
    -  </span>
    -  <span class="absValue">
    -    (43/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (63/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.4%
    -  </span>
    -  <span class="absValue">
    -    (29/37)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/29)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.6%
    -  </span>
    -  <span class="absValue">
    -    (141/189)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (28/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.1%
    -  </span>
    -  <span class="absValue">
    -    (62/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40.7%
    -  </span>
    -  <span class="absValue">
    -    (48/118)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.7%
    -  </span>
    -  <span class="absValue">
    -    (15/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82%
    -  </span>
    -  <span class="absValue">
    -    (150/183)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (19/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.7%
    -  </span>
    -  <span class="absValue">
    -    (26/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (75/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.3%
    -  </span>
    -  <span class="absValue">
    -    (18/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (56/91)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (63/96)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (67/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.1%
    -  </span>
    -  <span class="absValue">
    -    (108/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (9/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (120/135)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.2%
    -  </span>
    -  <span class="absValue">
    -    (91/102)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (20/22)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1.html
    deleted file mode 100644
    index b4527865b8..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1.html
    +++ /dev/null
    @@ -1,190 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (20/22)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;import java.util.concurrent.atomic.AtomicReference;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Gauge} implementation which caches its value for a period of time.
    -&nbsp; *
    -&nbsp; * @param &lt;T&gt; the type of the gauge&#39;s value
    -&nbsp; */
    -&nbsp;public abstract class CachedGauge&lt;T&gt; implements Gauge&lt;T&gt; {
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final AtomicLong reloadAt;
    -&nbsp;    private final long timeoutNS;
    -&nbsp;    private final AtomicReference&lt;T&gt; value;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new cached gauge with the given timeout period.
    -&nbsp;     *
    -&nbsp;     * @param timeout     the timeout
    -&nbsp;     * @param timeoutUnit the unit of {@code timeout}
    -&nbsp;     */
    -&nbsp;    protected CachedGauge(long timeout, TimeUnit timeoutUnit) {
    -<b class="fc">&nbsp;        this(Clock.defaultClock(), timeout, timeoutUnit);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new cached gauge with the given clock and timeout period.
    -&nbsp;     *
    -&nbsp;     * @param clock       the clock used to calculate the timeout
    -&nbsp;     * @param timeout     the timeout
    -&nbsp;     * @param timeoutUnit the unit of {@code timeout}
    -&nbsp;     */
    -<b class="fc">&nbsp;    protected CachedGauge(Clock clock, long timeout, TimeUnit timeoutUnit) {</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.reloadAt = new AtomicLong(clock.getTick());</b>
    -<b class="fc">&nbsp;        this.timeoutNS = timeoutUnit.toNanos(timeout);</b>
    -<b class="fc">&nbsp;        this.value = new AtomicReference&lt;&gt;();</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Loads the value and returns it.
    -&nbsp;     *
    -&nbsp;     * @return the new value
    -&nbsp;     */
    -&nbsp;    protected abstract T loadValue();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public T getValue() {
    -<b class="fc">&nbsp;        T currentValue = this.value.get();</b>
    -<b class="pc">&nbsp;        if (shouldLoad() || currentValue == null) {</b>
    -<b class="fc">&nbsp;            T newValue = loadValue();</b>
    -<b class="pc">&nbsp;            if (!this.value.compareAndSet(currentValue, newValue)) {</b>
    -<b class="fc">&nbsp;                return this.value.get();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return newValue;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return currentValue;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private boolean shouldLoad() {
    -&nbsp;        for ( ;; ) {
    -<b class="fc">&nbsp;            final long time = clock.getTick();</b>
    -<b class="fc">&nbsp;            final long current = reloadAt.get();</b>
    -<b class="pc">&nbsp;            if (current &gt; time) {</b>
    -<b class="fc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="pc">&nbsp;            if (reloadAt.compareAndSet(current, time + timeoutNS)) {</b>
    -<b class="fc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-10.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-10.html
    deleted file mode 100644
    index 4ce47ab056..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-10.html
    +++ /dev/null
    @@ -1,203 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedThreadFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedThreadFactory (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedThreadFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (11/14)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedThreadFactory$InstrumentedRunnable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.3%
    -  </span>
    -  <span class="absValue">
    -    (18/23)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link ThreadFactory} that monitors the number of threads created, running and terminated.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    -&nbsp; * &quot;your-thread-delegate.created&quot;, &quot;your-thread-delegate.running&quot;, etc.
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedThreadFactory implements ThreadFactory {</b>
    -<b class="fc">&nbsp;    private static final AtomicLong NAME_COUNTER = new AtomicLong();</b>
    -&nbsp;
    -&nbsp;    private final ThreadFactory delegate;
    -&nbsp;    private final Meter created;
    -&nbsp;    private final Counter running;
    -&nbsp;    private final Meter terminated;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps a {@link ThreadFactory}, uses a default auto-generated name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ThreadFactory} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     */
    -&nbsp;    public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(delegate, registry, &quot;instrumented-thread-delegate-&quot; + NAME_COUNTER.incrementAndGet());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps a {@link ThreadFactory} with an explicit name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ThreadFactory} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     * @param name     name for this delegate.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry, String name) {</b>
    -<b class="fc">&nbsp;        this.delegate = delegate;</b>
    -<b class="fc">&nbsp;        this.created = registry.meter(MetricRegistry.name(name, &quot;created&quot;));</b>
    -<b class="fc">&nbsp;        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</b>
    -<b class="fc">&nbsp;        this.terminated = registry.meter(MetricRegistry.name(name, &quot;terminated&quot;));</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Thread newThread(Runnable runnable) {
    -<b class="fc">&nbsp;        Runnable wrappedRunnable = new InstrumentedRunnable(runnable);</b>
    -<b class="fc">&nbsp;        Thread thread = delegate.newThread(wrappedRunnable);</b>
    -<b class="fc">&nbsp;        created.mark();</b>
    -<b class="fc">&nbsp;        return thread;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedRunnable implements Runnable {
    -&nbsp;        private final Runnable task;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedRunnable(Runnable task) {</b>
    -<b class="fc">&nbsp;            this.task = task;</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void run() {
    -<b class="fc">&nbsp;            running.inc();</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                task.run();</b>
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                terminated.mark();</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-11.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-11.html
    deleted file mode 100644
    index 54faaa1258..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-11.html
    +++ /dev/null
    @@ -1,485 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > LockFreeExponentiallyDecayingReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: LockFreeExponentiallyDecayingReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">LockFreeExponentiallyDecayingReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92%
    -  </span>
    -  <span class="absValue">
    -    (23/25)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">LockFreeExponentiallyDecayingReservoir$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">LockFreeExponentiallyDecayingReservoir$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (15/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">LockFreeExponentiallyDecayingReservoir$RescalingConsumer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (9/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">LockFreeExponentiallyDecayingReservoir$State</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.8%
    -  </span>
    -  <span class="absValue">
    -    (28/33)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (75/88)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.WeightedSnapshot.WeightedSample;
    -&nbsp;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.Objects;
    -&nbsp;import java.util.concurrent.ConcurrentSkipListMap;
    -&nbsp;import java.util.concurrent.ThreadLocalRandom;
    -&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    -&nbsp;import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
    -&nbsp;import java.util.function.BiConsumer;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A lock-free exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al&#39;s
    -&nbsp; * forward-decaying priority reservoir sampling method to produce a statistically representative
    -&nbsp; * sampling reservoir, exponentially biased towards newer entries.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf&quot;&gt;
    -&nbsp; * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE &#39;09:
    -&nbsp; * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)&lt;/a&gt;
    -&nbsp; *
    -&nbsp; * {@link LockFreeExponentiallyDecayingReservoir} is based closely on the {@link ExponentiallyDecayingReservoir},
    -&nbsp; * however it provides looser guarantees while completely avoiding locks.
    -&nbsp; *
    -&nbsp; * Looser guarantees:
    -&nbsp; * &lt;ul&gt;
    -&nbsp; *     &lt;li&gt; Updates which occur concurrently with rescaling may be discarded if the orphaned state node is updated after
    -&nbsp; *     rescale has replaced it. This condition has a greater probability as the rescale interval is reduced due to the
    -&nbsp; *     increased frequency of rescaling. {@link #rescaleThresholdNanos} values below 30 seconds are not recommended.
    -&nbsp; *     &lt;li&gt; Given a small rescale threshold, updates may attempt to rescale into a new bucket, but lose the CAS race
    -&nbsp; *     and update into a newer bucket than expected. In these cases the measurement weight is reduced accordingly.
    -&nbsp; *     &lt;li&gt;In the worst case, all concurrent threads updating the reservoir may attempt to rescale rather than
    -&nbsp; *     a single thread holding an exclusive write lock. It&#39;s expected that the configuration is set such that
    -&nbsp; *     rescaling is substantially less common than updating at peak load. Even so, when size is reasonably small
    -&nbsp; *     it can be more efficient to rescale than to park and context switch.
    -&nbsp; * &lt;/ul&gt;
    -&nbsp; *
    -&nbsp; * @author &lt;a href=&quot;mailto:ckozak@ckozak.net&quot;&gt;Carter Kozak&lt;/a&gt;
    -&nbsp; */
    -<b class="fc">&nbsp;public final class LockFreeExponentiallyDecayingReservoir implements Reservoir {</b>
    -&nbsp;
    -&nbsp;    private static final double SECONDS_PER_NANO = .000_000_001D;
    -<b class="fc">&nbsp;    private static final AtomicReferenceFieldUpdater&lt;LockFreeExponentiallyDecayingReservoir, State&gt; stateUpdater =</b>
    -<b class="fc">&nbsp;            AtomicReferenceFieldUpdater.newUpdater(LockFreeExponentiallyDecayingReservoir.class, State.class, &quot;state&quot;);</b>
    -&nbsp;
    -&nbsp;    private final int size;
    -&nbsp;    private final long rescaleThresholdNanos;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    private volatile State state;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final class State {</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private static final AtomicIntegerFieldUpdater&lt;State&gt; countUpdater =</b>
    -<b class="fc">&nbsp;                AtomicIntegerFieldUpdater.newUpdater(State.class, &quot;count&quot;);</b>
    -&nbsp;
    -&nbsp;        private final double alphaNanos;
    -&nbsp;        private final int size;
    -&nbsp;        private final long startTick;
    -&nbsp;        // Count is updated after samples are successfully added to the map.
    -&nbsp;        private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    -&nbsp;
    -&nbsp;        private volatile int count;
    -&nbsp;
    -&nbsp;        State(
    -&nbsp;                double alphaNanos,
    -&nbsp;                int size,
    -&nbsp;                long startTick,
    -&nbsp;                int count,
    -<b class="fc">&nbsp;                ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values) {</b>
    -<b class="fc">&nbsp;            this.alphaNanos = alphaNanos;</b>
    -<b class="fc">&nbsp;            this.size = size;</b>
    -<b class="fc">&nbsp;            this.startTick = startTick;</b>
    -<b class="fc">&nbsp;            this.values = values;</b>
    -<b class="fc">&nbsp;            this.count = count;</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        private void update(long value, long timestampNanos) {
    -<b class="fc">&nbsp;            double itemWeight = weight(timestampNanos - startTick);</b>
    -<b class="fc">&nbsp;            double priority = itemWeight / ThreadLocalRandom.current().nextDouble();</b>
    -<b class="pc">&nbsp;            boolean mapIsFull = count &gt;= size;</b>
    -<b class="pc">&nbsp;            if (!mapIsFull || values.firstKey() &lt; priority) {</b>
    -<b class="fc">&nbsp;                addSample(priority, value, itemWeight, mapIsFull);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        private void addSample(double priority, long value, double itemWeight, boolean bypassIncrement) {
    -<b class="pc">&nbsp;            if (values.putIfAbsent(priority, new WeightedSample(value, itemWeight)) == null</b>
    -<b class="pc">&nbsp;                    &amp;&amp; (bypassIncrement || countUpdater.incrementAndGet(this) &gt; size)) {</b>
    -<b class="fc">&nbsp;                values.pollFirstEntry();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /* &quot;A common feature of the above techniques—indeed, the key technique that
    -&nbsp;         * allows us to track the decayed weights efficiently—is that they maintain
    -&nbsp;         * counts and other quantities based on g(ti ? L), and only scale by g(t ? L)
    -&nbsp;         * at query time. But while g(ti ?L)/g(t?L) is guaranteed to lie between zero
    -&nbsp;         * and one, the intermediate values of g(ti ? L) could become very large. For
    -&nbsp;         * polynomial functions, these values should not grow too large, and should be
    -&nbsp;         * effectively represented in practice by floating point values without loss of
    -&nbsp;         * precision. For exponential functions, these values could grow quite large as
    -&nbsp;         * new values of (ti ? L) become large, and potentially exceed the capacity of
    -&nbsp;         * common floating point types. However, since the values stored by the
    -&nbsp;         * algorithms are linear combinations of g values (scaled sums), they can be
    -&nbsp;         * rescaled relative to a new landmark. That is, by the analysis of exponential
    -&nbsp;         * decay in Section III-A, the choice of L does not affect the final result. We
    -&nbsp;         * can therefore multiply each value based on L by a factor of exp(??(L? ? L)),
    -&nbsp;         * and obtain the correct value as if we had instead computed relative to a new
    -&nbsp;         * landmark L? (and then use this new L? at query time). This can be done with
    -&nbsp;         * a linear pass over whatever data structure is being used.&quot;
    -&nbsp;         */
    -&nbsp;        State rescale(long newTick) {
    -<b class="fc">&nbsp;            long durationNanos = newTick - startTick;</b>
    -<b class="fc">&nbsp;            double scalingFactor = Math.exp(-alphaNanos * durationNanos);</b>
    -<b class="fc">&nbsp;            int newCount = 0;</b>
    -<b class="fc">&nbsp;            ConcurrentSkipListMap&lt;Double, WeightedSample&gt; newValues = new ConcurrentSkipListMap&lt;&gt;();</b>
    -<b class="pc">&nbsp;            if (Double.compare(scalingFactor, 0) != 0) {</b>
    -<b class="fc">&nbsp;                RescalingConsumer consumer = new RescalingConsumer(scalingFactor, newValues);</b>
    -<b class="fc">&nbsp;                values.forEach(consumer);</b>
    -&nbsp;                // make sure the counter is in sync with the number of stored samples.
    -<b class="fc">&nbsp;                newCount = consumer.count;</b>
    -&nbsp;            }
    -&nbsp;            // It&#39;s possible that more values were added while the map was scanned, those with the
    -&nbsp;            // minimum priorities are removed.
    -<b class="pc">&nbsp;            while (newCount &gt; size) {</b>
    -<b class="nc">&nbsp;                Objects.requireNonNull(newValues.pollFirstEntry(), &quot;Expected an entry&quot;);</b>
    -<b class="nc">&nbsp;                newCount--;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new State(alphaNanos, size, newTick, newCount, newValues);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private double weight(long durationNanos) {
    -<b class="fc">&nbsp;            return Math.exp(alphaNanos * durationNanos);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final class RescalingConsumer implements BiConsumer&lt;Double, WeightedSample&gt; {</b>
    -&nbsp;        private final double scalingFactor;
    -&nbsp;        private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    -&nbsp;        private int count;
    -&nbsp;
    -<b class="fc">&nbsp;        RescalingConsumer(double scalingFactor, ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values) {</b>
    -<b class="fc">&nbsp;            this.scalingFactor = scalingFactor;</b>
    -<b class="fc">&nbsp;            this.values = values;</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void accept(Double priority, WeightedSample sample) {
    -<b class="fc">&nbsp;            double newWeight = sample.weight * scalingFactor;</b>
    -<b class="pc">&nbsp;            if (Double.compare(newWeight, 0) == 0) {</b>
    -<b class="nc">&nbsp;                return;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            WeightedSample newSample = new WeightedSample(sample.value, newWeight);</b>
    -<b class="pc">&nbsp;            if (values.put(priority * scalingFactor, newSample) == null) {</b>
    -<b class="fc">&nbsp;                count++;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private LockFreeExponentiallyDecayingReservoir(int size, double alpha, Duration rescaleThreshold, Clock clock) {</b>
    -&nbsp;        // Scale alpha to nanoseconds
    -<b class="fc">&nbsp;        double alphaNanos = alpha * SECONDS_PER_NANO;</b>
    -<b class="fc">&nbsp;        this.size = size;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.rescaleThresholdNanos = rescaleThreshold.toNanos();</b>
    -<b class="fc">&nbsp;        this.state = new State(alphaNanos, size, clock.getTick(), 0, new ConcurrentSkipListMap&lt;&gt;());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        return Math.min(size, state.count);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        long now = clock.getTick();</b>
    -<b class="fc">&nbsp;        rescaleIfNeeded(now).update(value, now);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private State rescaleIfNeeded(long currentTick) {
    -&nbsp;        // This method is optimized for size so the check may be quickly inlined.
    -&nbsp;        // Rescaling occurs substantially less frequently than the check itself.
    -<b class="fc">&nbsp;        State stateSnapshot = this.state;</b>
    -<b class="pc">&nbsp;        if (currentTick - stateSnapshot.startTick &gt;= rescaleThresholdNanos) {</b>
    -<b class="fc">&nbsp;            return doRescale(currentTick, stateSnapshot);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return stateSnapshot;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private State doRescale(long currentTick, State stateSnapshot) {
    -<b class="fc">&nbsp;        State newState = stateSnapshot.rescale(currentTick);</b>
    -<b class="pc">&nbsp;        if (stateUpdater.compareAndSet(this, stateSnapshot, newState)) {</b>
    -&nbsp;            // newState successfully installed
    -<b class="fc">&nbsp;            return newState;</b>
    -&nbsp;        }
    -&nbsp;        // Otherwise another thread has won the race and we can return the result of a volatile read.
    -&nbsp;        // It&#39;s possible this has taken so long that another update is required, however that&#39;s unlikely
    -&nbsp;        // and no worse than the standard race between a rescale and update.
    -<b class="fc">&nbsp;        return this.state;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        State stateSnapshot = rescaleIfNeeded(clock.getTick());</b>
    -<b class="fc">&nbsp;        return new WeightedSnapshot(stateSnapshot.values.values());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Builder builder() {
    -<b class="fc">&nbsp;        return new Builder();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * By default this uses a size of 1028 elements, which offers a 99.9%
    -&nbsp;     * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
    -&nbsp;     * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static final class Builder {</b>
    -&nbsp;        private static final int DEFAULT_SIZE = 1028;
    -&nbsp;        private static final double DEFAULT_ALPHA = 0.015D;
    -<b class="fc">&nbsp;        private static final Duration DEFAULT_RESCALE_THRESHOLD = Duration.ofHours(1);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private int size = DEFAULT_SIZE;</b>
    -<b class="fc">&nbsp;        private double alpha = DEFAULT_ALPHA;</b>
    -<b class="fc">&nbsp;        private Duration rescaleThreshold = DEFAULT_RESCALE_THRESHOLD;</b>
    -<b class="fc">&nbsp;        private Clock clock = Clock.defaultClock();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder() {}</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Maximum number of samples to keep in the reservoir. Once this number is reached older samples are
    -&nbsp;         * replaced (based on weight, with some amount of random jitter).
    -&nbsp;         */
    -&nbsp;        public Builder size(int value) {
    -<b class="pc">&nbsp;            if (value &lt;= 0) {</b>
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(</b>
    -&nbsp;                        &quot;LockFreeExponentiallyDecayingReservoir size must be positive: &quot; + value);
    -&nbsp;            }
    -<b class="fc">&nbsp;            this.size = value;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Alpha is the exponential decay factor. Higher values bias results more heavily toward newer values.
    -&nbsp;         */
    -&nbsp;        public Builder alpha(double value) {
    -<b class="fc">&nbsp;            this.alpha = value;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Interval at which this reservoir is rescaled.
    -&nbsp;         */
    -&nbsp;        public Builder rescaleThreshold(Duration value) {
    -<b class="nc">&nbsp;            this.rescaleThreshold = Objects.requireNonNull(value, &quot;rescaleThreshold is required&quot;);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Clock instance used for decay.
    -&nbsp;         */
    -&nbsp;        public Builder clock(Clock value) {
    -<b class="fc">&nbsp;            this.clock = Objects.requireNonNull(value, &quot;clock is required&quot;);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Reservoir build() {
    -<b class="fc">&nbsp;            return new LockFreeExponentiallyDecayingReservoir(size, alpha, rescaleThreshold, clock);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-12.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-12.html
    deleted file mode 100644
    index 78bc61fd82..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-12.html
    +++ /dev/null
    @@ -1,222 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Meter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Meter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Meter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.7%
    -  </span>
    -  <span class="absValue">
    -    (26/29)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A meter metric which measures mean throughput and one-, five-, and fifteen-minute
    -&nbsp; * moving average throughputs.
    -&nbsp; *
    -&nbsp; * @see MovingAverages
    -&nbsp; */
    -&nbsp;public class Meter implements Metered {
    -&nbsp;
    -&nbsp;    private final MovingAverages movingAverages;
    -<b class="fc">&nbsp;    private final LongAdder count = new LongAdder();</b>
    -&nbsp;    private final long startTime;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Meter}.
    -&nbsp;     *
    -&nbsp;     * @param movingAverages the {@link MovingAverages} implementation to use
    -&nbsp;     */
    -&nbsp;    public Meter(MovingAverages movingAverages) {
    -<b class="nc">&nbsp;        this(movingAverages, Clock.defaultClock());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Meter}.
    -&nbsp;     */
    -&nbsp;    public Meter() {
    -<b class="fc">&nbsp;        this(Clock.defaultClock());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Meter}.
    -&nbsp;     *
    -&nbsp;     * @param clock the clock to use for the meter ticks
    -&nbsp;     */
    -&nbsp;    public Meter(Clock clock) {
    -<b class="fc">&nbsp;        this(new ExponentialMovingAverages(clock), clock);</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Meter}.
    -&nbsp;     *
    -&nbsp;     * @param movingAverages the {@link MovingAverages} implementation to use
    -&nbsp;     * @param clock          the clock to use for the meter ticks
    -&nbsp;     */
    -<b class="fc">&nbsp;    public Meter(MovingAverages movingAverages, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.movingAverages = movingAverages;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.startTime = this.clock.getTick();</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Mark the occurrence of an event.
    -&nbsp;     */
    -&nbsp;    public void mark() {
    -<b class="fc">&nbsp;        mark(1);</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Mark the occurrence of a given number of events.
    -&nbsp;     *
    -&nbsp;     * @param n the number of events
    -&nbsp;     */
    -&nbsp;    public void mark(long n) {
    -<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    -<b class="fc">&nbsp;        count.add(n);</b>
    -<b class="fc">&nbsp;        movingAverages.update(n);</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public long getCount() {
    -<b class="fc">&nbsp;        return count.sum();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getFifteenMinuteRate() {
    -<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    -<b class="fc">&nbsp;        return movingAverages.getM15Rate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getFiveMinuteRate() {
    -<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    -<b class="fc">&nbsp;        return movingAverages.getM5Rate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getMeanRate() {
    -<b class="pc">&nbsp;        if (getCount() == 0) {</b>
    -<b class="fc">&nbsp;            return 0.0;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final double elapsed = clock.getTick() - startTime;</b>
    -<b class="fc">&nbsp;            return getCount() / elapsed * TimeUnit.SECONDS.toNanos(1);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getOneMinuteRate() {
    -<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    -<b class="fc">&nbsp;        return movingAverages.getM1Rate();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-13.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-13.html
    deleted file mode 100644
    index 4c84ea39e4..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-13.html
    +++ /dev/null
    @@ -1,137 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricAttribute</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricAttribute (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricAttribute</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (19/20)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Represents attributes of metrics which can be reported.
    -&nbsp; */
    -<b class="fc">&nbsp;public enum MetricAttribute {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    MAX(&quot;max&quot;),</b>
    -<b class="fc">&nbsp;    MEAN(&quot;mean&quot;),</b>
    -<b class="fc">&nbsp;    MIN(&quot;min&quot;),</b>
    -<b class="fc">&nbsp;    STDDEV(&quot;stddev&quot;),</b>
    -<b class="fc">&nbsp;    P50(&quot;p50&quot;),</b>
    -<b class="fc">&nbsp;    P75(&quot;p75&quot;),</b>
    -<b class="fc">&nbsp;    P95(&quot;p95&quot;),</b>
    -<b class="fc">&nbsp;    P98(&quot;p98&quot;),</b>
    -<b class="fc">&nbsp;    P99(&quot;p99&quot;),</b>
    -<b class="fc">&nbsp;    P999(&quot;p999&quot;),</b>
    -<b class="fc">&nbsp;    COUNT(&quot;count&quot;),</b>
    -<b class="fc">&nbsp;    M1_RATE(&quot;m1_rate&quot;),</b>
    -<b class="fc">&nbsp;    M5_RATE(&quot;m5_rate&quot;),</b>
    -<b class="fc">&nbsp;    M15_RATE(&quot;m15_rate&quot;),</b>
    -<b class="fc">&nbsp;    MEAN_RATE(&quot;mean_rate&quot;);</b>
    -&nbsp;
    -&nbsp;    private final String code;
    -&nbsp;
    -<b class="fc">&nbsp;    MetricAttribute(String code) {</b>
    -<b class="fc">&nbsp;        this.code = code;</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    public String getCode() {
    -<b class="fc">&nbsp;        return code;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-14.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-14.html
    deleted file mode 100644
    index bdad190414..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-14.html
    +++ /dev/null
    @@ -1,136 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricFilter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A filter used to determine whether or not a metric should be reported, among other things.
    -&nbsp; */
    -&nbsp;public interface MetricFilter {
    -&nbsp;    /**
    -&nbsp;     * Matches all metrics, regardless of type or name.
    -&nbsp;     */
    -<b class="fc">&nbsp;    MetricFilter ALL = (name, metric) -&gt; true;</b>
    -&nbsp;
    -&nbsp;    static MetricFilter startsWith(String prefix) {
    -<b class="fc">&nbsp;        return (name, metric) -&gt; name.startsWith(prefix);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    static MetricFilter endsWith(String suffix) {
    -<b class="fc">&nbsp;        return (name, metric) -&gt; name.endsWith(suffix);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    static MetricFilter contains(String substring) {
    -<b class="fc">&nbsp;        return (name, metric) -&gt; name.contains(substring);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns {@code true} if the metric matches the filter; {@code false} otherwise.
    -&nbsp;     *
    -&nbsp;     * @param name   the metric&#39;s name
    -&nbsp;     * @param metric the metric
    -&nbsp;     * @return {@code true} if the metric matches the filter
    -&nbsp;     */
    -&nbsp;    boolean matches(String name, Metric metric);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-15.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-15.html
    deleted file mode 100644
    index 60013ec2c8..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-15.html
    +++ /dev/null
    @@ -1,1046 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricRegistry</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricRegistry</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (41/41)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.7%
    -  </span>
    -  <span class="absValue">
    -    (15/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.4%
    -  </span>
    -  <span class="absValue">
    -    (111/127)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetricRegistry$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    36.4%
    -  </span>
    -  <span class="absValue">
    -    (4/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    19%
    -  </span>
    -  <span class="absValue">
    -    (4/21)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricSupplier</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.7%
    -  </span>
    -  <span class="absValue">
    -    (15/66)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82%
    -  </span>
    -  <span class="absValue">
    -    (150/183)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.SortedSet;
    -&nbsp;import java.util.TreeMap;
    -&nbsp;import java.util.TreeSet;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.CopyOnWriteArrayList;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A registry of metric instances.
    -&nbsp; */
    -&nbsp;public class MetricRegistry implements MetricSet {
    -&nbsp;    /**
    -&nbsp;     * Concatenates elements to form a dotted name, eliding any null values or empty strings.
    -&nbsp;     *
    -&nbsp;     * @param name  the first element of the name
    -&nbsp;     * @param names the remaining elements of the name
    -&nbsp;     * @return {@code name} and {@code names} concatenated by periods
    -&nbsp;     */
    -&nbsp;    public static String name(String name, String... names) {
    -<b class="fc">&nbsp;        final StringBuilder builder = new StringBuilder();</b>
    -<b class="fc">&nbsp;        append(builder, name);</b>
    -<b class="pc">&nbsp;        if (names != null) {</b>
    -<b class="fc">&nbsp;            for (String s : names) {</b>
    -<b class="fc">&nbsp;                append(builder, s);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return builder.toString();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Concatenates a class name and elements to form a dotted name, eliding any null values or
    -&nbsp;     * empty strings.
    -&nbsp;     *
    -&nbsp;     * @param klass the first element of the name
    -&nbsp;     * @param names the remaining elements of the name
    -&nbsp;     * @return {@code klass} and {@code names} concatenated by periods
    -&nbsp;     */
    -&nbsp;    public static String name(Class&lt;?&gt; klass, String... names) {
    -<b class="fc">&nbsp;        return name(klass.getName(), names);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static void append(StringBuilder builder, String part) {
    -<b class="pc">&nbsp;        if (part != null &amp;&amp; !part.isEmpty()) {</b>
    -<b class="fc">&nbsp;            if (builder.length() &gt; 0) {</b>
    -<b class="fc">&nbsp;                builder.append(&#39;.&#39;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            builder.append(part);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private final ConcurrentMap&lt;String, Metric&gt; metrics;
    -&nbsp;    private final List&lt;MetricRegistryListener&gt; listeners;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link MetricRegistry}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public MetricRegistry() {</b>
    -<b class="fc">&nbsp;        this.metrics = buildMap();</b>
    -<b class="fc">&nbsp;        this.listeners = new CopyOnWriteArrayList&lt;&gt;();</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ConcurrentMap} implementation for use inside the registry. Override this
    -&nbsp;     * to create a {@link MetricRegistry} with space- or time-bounded metric lifecycles, for
    -&nbsp;     * example.
    -&nbsp;     *
    -&nbsp;     * @return a new {@link ConcurrentMap}
    -&nbsp;     */
    -&nbsp;    protected ConcurrentMap&lt;String, Metric&gt; buildMap() {
    -<b class="fc">&nbsp;        return new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Given a {@link Gauge}, registers it under the given name and returns it
    -&nbsp;     *
    -&nbsp;     * @param name the name of the gauge
    -&nbsp;     * @param &lt;T&gt;  the type of the gauge&#39;s value
    -&nbsp;     * @return the registered {@link Gauge}
    -&nbsp;     * @since 4.2.10
    -&nbsp;     */
    -&nbsp;    public &lt;T&gt; Gauge&lt;T&gt; registerGauge(String name, Gauge&lt;T&gt; metric) throws IllegalArgumentException {
    -<b class="fc">&nbsp;        return register(name, metric);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Given a {@link Metric}, registers it under the given name.
    -&nbsp;     *
    -&nbsp;     * @param name   the name of the metric
    -&nbsp;     * @param metric the metric
    -&nbsp;     * @param &lt;T&gt;    the type of the metric
    -&nbsp;     * @return {@code metric}
    -&nbsp;     * @throws IllegalArgumentException if the name is already registered or metric variable is null
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
    -&nbsp;    public &lt;T extends Metric&gt; T register(String name, T metric) throws IllegalArgumentException {
    -&nbsp;
    -<b class="pc">&nbsp;        if (metric == null) {</b>
    -<b class="fc">&nbsp;            throw new NullPointerException(&quot;metric == null&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        if (metric instanceof MetricRegistry) {</b>
    -<b class="fc">&nbsp;            final MetricRegistry childRegistry = (MetricRegistry) metric;</b>
    -<b class="fc">&nbsp;            final String childName = name;</b>
    -<b class="fc">&nbsp;            childRegistry.addListener(new MetricRegistryListener() {</b>
    -&nbsp;                @Override
    -&nbsp;                public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;                    register(name(childName, name), gauge);</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onGaugeRemoved(String name) {
    -<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onCounterAdded(String name, Counter counter) {
    -<b class="fc">&nbsp;                    register(name(childName, name), counter);</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onCounterRemoved(String name) {
    -<b class="fc">&nbsp;                    remove(name(childName, name));</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onHistogramAdded(String name, Histogram histogram) {
    -<b class="nc">&nbsp;                    register(name(childName, name), histogram);</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onHistogramRemoved(String name) {
    -<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onMeterAdded(String name, Meter meter) {
    -<b class="nc">&nbsp;                    register(name(childName, name), meter);</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onMeterRemoved(String name) {
    -<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onTimerAdded(String name, Timer timer) {
    -<b class="nc">&nbsp;                    register(name(childName, name), timer);</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onTimerRemoved(String name) {
    -<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            });
    -<b class="pc">&nbsp;        } else if (metric instanceof MetricSet) {</b>
    -<b class="fc">&nbsp;            registerAll(name, (MetricSet) metric);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final Metric existing = metrics.putIfAbsent(name, metric);</b>
    -<b class="pc">&nbsp;            if (existing == null) {</b>
    -<b class="fc">&nbsp;                onMetricAdded(name, metric);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;A metric named &quot; + name + &quot; already exists&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return metric;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Given a metric set, registers them.
    -&nbsp;     *
    -&nbsp;     * @param metrics a set of metrics
    -&nbsp;     * @throws IllegalArgumentException if any of the names are already registered
    -&nbsp;     */
    -&nbsp;    public void registerAll(MetricSet metrics) throws IllegalArgumentException {
    -<b class="fc">&nbsp;        registerAll(null, metrics);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Counter} registered under this name; or create and register
    -&nbsp;     * a new {@link Counter} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a new or pre-existing {@link Counter}
    -&nbsp;     */
    -&nbsp;    public Counter counter(String name) {
    -<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.COUNTERS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Counter} registered under this name; or create and register
    -&nbsp;     * a new {@link Counter} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a counter.
    -&nbsp;     * @return a new or pre-existing {@link Counter}
    -&nbsp;     */
    -&nbsp;    public Counter counter(String name, final MetricSupplier&lt;Counter&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Counter&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Counter newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Counter.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Histogram} registered under this name; or create and register
    -&nbsp;     * a new {@link Histogram} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a new or pre-existing {@link Histogram}
    -&nbsp;     */
    -&nbsp;    public Histogram histogram(String name) {
    -<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.HISTOGRAMS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Histogram} registered under this name; or create and register
    -&nbsp;     * a new {@link Histogram} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a histogram
    -&nbsp;     * @return a new or pre-existing {@link Histogram}
    -&nbsp;     */
    -&nbsp;    public Histogram histogram(String name, final MetricSupplier&lt;Histogram&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Histogram&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Histogram newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Histogram.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Meter} registered under this name; or create and register
    -&nbsp;     * a new {@link Meter} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a new or pre-existing {@link Meter}
    -&nbsp;     */
    -&nbsp;    public Meter meter(String name) {
    -<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.METERS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Meter} registered under this name; or create and register
    -&nbsp;     * a new {@link Meter} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a Meter
    -&nbsp;     * @return a new or pre-existing {@link Meter}
    -&nbsp;     */
    -&nbsp;    public Meter meter(String name, final MetricSupplier&lt;Meter&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Meter&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Meter newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Meter.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Timer} registered under this name; or create and register
    -&nbsp;     * a new {@link Timer} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a new or pre-existing {@link Timer}
    -&nbsp;     */
    -&nbsp;    public Timer timer(String name) {
    -<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.TIMERS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Timer} registered under this name; or create and register
    -&nbsp;     * a new {@link Timer} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a Timer
    -&nbsp;     * @return a new or pre-existing {@link Timer}
    -&nbsp;     */
    -&nbsp;    public Timer timer(String name, final MetricSupplier&lt;Timer&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Timer&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Timer newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Timer.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Gauge} registered under this name; or create and register
    -&nbsp;     * a new {@link SettableGauge} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a pre-existing {@link Gauge} or a new {@link SettableGauge}
    -&nbsp;     * @since 4.2
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    -&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name) {
    -<b class="fc">&nbsp;        return (T) getOrAdd(name, MetricBuilder.GAUGES);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Gauge} registered under this name; or create and register
    -&nbsp;     * a new {@link Gauge} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a Gauge
    -&nbsp;     * @return a new or pre-existing {@link Gauge}
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name, final MetricSupplier&lt;T&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;T&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public T newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Gauge.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Removes the metric with the given name.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return whether or not the metric was removed
    -&nbsp;     */
    -&nbsp;    public boolean remove(String name) {
    -<b class="fc">&nbsp;        final Metric metric = metrics.remove(name);</b>
    -<b class="pc">&nbsp;        if (metric != null) {</b>
    -<b class="fc">&nbsp;            onMetricRemoved(name, metric);</b>
    -<b class="fc">&nbsp;            return true;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return false;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Removes all metrics which match the given filter.
    -&nbsp;     *
    -&nbsp;     * @param filter a filter
    -&nbsp;     */
    -&nbsp;    public void removeMatching(MetricFilter filter) {
    -<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    -<b class="pc">&nbsp;            if (filter.matches(entry.getKey(), entry.getValue())) {</b>
    -<b class="fc">&nbsp;                remove(entry.getKey());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a {@link MetricRegistryListener} to a collection of listeners that will be notified on
    -&nbsp;     * metric creation.  Listeners will be notified in the order in which they are added.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * &lt;b&gt;N.B.:&lt;/b&gt; The listener will be notified of all existing metrics when it first registers.
    -&nbsp;     *
    -&nbsp;     * @param listener the listener that will be notified
    -&nbsp;     */
    -&nbsp;    public void addListener(MetricRegistryListener listener) {
    -<b class="fc">&nbsp;        listeners.add(listener);</b>
    -&nbsp;
    -<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    -<b class="fc">&nbsp;            notifyListenerOfAddedMetric(listener, entry.getValue(), entry.getKey());</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Removes a {@link MetricRegistryListener} from this registry&#39;s collection of listeners.
    -&nbsp;     *
    -&nbsp;     * @param listener the listener that will be removed
    -&nbsp;     */
    -&nbsp;    public void removeListener(MetricRegistryListener listener) {
    -<b class="fc">&nbsp;        listeners.remove(listener);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a set of the names of all the metrics in the registry.
    -&nbsp;     *
    -&nbsp;     * @return the names of all the metrics
    -&nbsp;     */
    -&nbsp;    public SortedSet&lt;String&gt; getNames() {
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedSet(new TreeSet&lt;&gt;(metrics.keySet()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the gauges in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the gauges in the registry
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges() {
    -<b class="fc">&nbsp;        return getGauges(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the gauges in the registry and their names which match the given filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the gauges in the registry
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Gauge.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the counters in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the counters in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters() {
    -<b class="fc">&nbsp;        return getCounters(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the counters in the registry and their names which match the given
    -&nbsp;     * filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the counters in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Counter.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the histograms in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the histograms in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms() {
    -<b class="fc">&nbsp;        return getHistograms(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the histograms in the registry and their names which match the given
    -&nbsp;     * filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the histograms in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Histogram.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the meters in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the meters in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters() {
    -<b class="fc">&nbsp;        return getMeters(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the meters in the registry and their names which match the given filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the meters in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Meter.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the timers in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the timers in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers() {
    -<b class="fc">&nbsp;        return getTimers(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the timers in the registry and their names which match the given filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the timers in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Timer.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
    -&nbsp;    private &lt;T extends Metric&gt; T getOrAdd(String name, MetricBuilder&lt;T&gt; builder) {
    -<b class="fc">&nbsp;        final Metric metric = metrics.get(name);</b>
    -<b class="fc">&nbsp;        if (builder.isInstance(metric)) {</b>
    -<b class="fc">&nbsp;            return (T) metric;</b>
    -<b class="pc">&nbsp;        } else if (metric == null) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                return register(name, builder.newMetric());</b>
    -<b class="nc">&nbsp;            } catch (IllegalArgumentException e) {</b>
    -<b class="nc">&nbsp;                final Metric added = metrics.get(name);</b>
    -<b class="nc">&nbsp;                if (builder.isInstance(added)) {</b>
    -<b class="nc">&nbsp;                    return (T) added;</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -<b class="nc">&nbsp;        throw new IllegalArgumentException(name + &quot; is already used for a different type of metric&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
    -&nbsp;    private &lt;T extends Metric&gt; SortedMap&lt;String, T&gt; getMetrics(Class&lt;T&gt; klass, MetricFilter filter) {
    -<b class="fc">&nbsp;        final TreeMap&lt;String, T&gt; timers = new TreeMap&lt;&gt;();</b>
    -<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    -<b class="pc">&nbsp;            if (klass.isInstance(entry.getValue()) &amp;&amp; filter.matches(entry.getKey(),</b>
    -<b class="fc">&nbsp;                    entry.getValue())) {</b>
    -<b class="fc">&nbsp;                timers.put(entry.getKey(), (T) entry.getValue());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(timers);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void onMetricAdded(String name, Metric metric) {
    -<b class="pc">&nbsp;        for (MetricRegistryListener listener : listeners) {</b>
    -<b class="fc">&nbsp;            notifyListenerOfAddedMetric(listener, metric, name);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void notifyListenerOfAddedMetric(MetricRegistryListener listener, Metric metric, String name) {
    -<b class="pc">&nbsp;        if (metric instanceof Gauge) {</b>
    -<b class="fc">&nbsp;            listener.onGaugeAdded(name, (Gauge&lt;?&gt;) metric);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Counter) {</b>
    -<b class="fc">&nbsp;            listener.onCounterAdded(name, (Counter) metric);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Histogram) {</b>
    -<b class="fc">&nbsp;            listener.onHistogramAdded(name, (Histogram) metric);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Meter) {</b>
    -<b class="fc">&nbsp;            listener.onMeterAdded(name, (Meter) metric);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Timer) {</b>
    -<b class="fc">&nbsp;            listener.onTimerAdded(name, (Timer) metric);</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;Unknown metric type: &quot; + metric.getClass());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void onMetricRemoved(String name, Metric metric) {
    -<b class="pc">&nbsp;        for (MetricRegistryListener listener : listeners) {</b>
    -<b class="fc">&nbsp;            notifyListenerOfRemovedMetric(name, metric, listener);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void notifyListenerOfRemovedMetric(String name, Metric metric, MetricRegistryListener listener) {
    -<b class="pc">&nbsp;        if (metric instanceof Gauge) {</b>
    -<b class="fc">&nbsp;            listener.onGaugeRemoved(name);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Counter) {</b>
    -<b class="fc">&nbsp;            listener.onCounterRemoved(name);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Histogram) {</b>
    -<b class="fc">&nbsp;            listener.onHistogramRemoved(name);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Meter) {</b>
    -<b class="fc">&nbsp;            listener.onMeterRemoved(name);</b>
    -<b class="pc">&nbsp;        } else if (metric instanceof Timer) {</b>
    -<b class="fc">&nbsp;            listener.onTimerRemoved(name);</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;Unknown metric type: &quot; + metric.getClass());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Given a metric set, registers them with the given prefix prepended to their names.
    -&nbsp;     *
    -&nbsp;     * @param prefix a name prefix
    -&nbsp;     * @param metrics a set of metrics
    -&nbsp;     * @throws IllegalArgumentException if any of the names are already registered
    -&nbsp;     */
    -&nbsp;    public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
    -<b class="pc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.getMetrics().entrySet()) {</b>
    -<b class="pc">&nbsp;            if (entry.getValue() instanceof MetricSet) {</b>
    -<b class="fc">&nbsp;                registerAll(name(prefix, entry.getKey()), (MetricSet) entry.getValue());</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                register(name(prefix, entry.getKey()), entry.getValue());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(metrics);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @FunctionalInterface
    -&nbsp;    public interface MetricSupplier&lt;T extends Metric&gt; {
    -&nbsp;        T newMetric();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A quick and easy way of capturing the notion of default metrics.
    -&nbsp;     */
    -&nbsp;    private interface MetricBuilder&lt;T extends Metric&gt; {
    -<b class="fc">&nbsp;        MetricBuilder&lt;Counter&gt; COUNTERS = new MetricBuilder&lt;Counter&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Counter newMetric() {
    -<b class="fc">&nbsp;                return new Counter();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Counter.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -<b class="fc">&nbsp;        MetricBuilder&lt;Histogram&gt; HISTOGRAMS = new MetricBuilder&lt;Histogram&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Histogram newMetric() {
    -<b class="fc">&nbsp;                return new Histogram(new ExponentiallyDecayingReservoir());</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Histogram.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -<b class="fc">&nbsp;        MetricBuilder&lt;Meter&gt; METERS = new MetricBuilder&lt;Meter&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Meter newMetric() {
    -<b class="fc">&nbsp;                return new Meter();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Meter.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -<b class="fc">&nbsp;        MetricBuilder&lt;Timer&gt; TIMERS = new MetricBuilder&lt;Timer&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Timer newMetric() {
    -<b class="fc">&nbsp;                return new Timer();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Timer.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -&nbsp;        @SuppressWarnings(&quot;rawtypes&quot;)
    -<b class="fc">&nbsp;        MetricBuilder&lt;Gauge&gt; GAUGES = new MetricBuilder&lt;Gauge&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Gauge newMetric() {
    -<b class="fc">&nbsp;                return new DefaultSettableGauge&lt;&gt;();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Gauge.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -&nbsp;        T newMetric();
    -&nbsp;
    -&nbsp;        boolean isInstance(Metric metric);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-16.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-16.html
    deleted file mode 100644
    index b5ceaa4b12..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-16.html
    +++ /dev/null
    @@ -1,275 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricRegistryListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricRegistryListener (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$Base</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$bBAqK8Rp</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$bBAqK8Rp$auxiliary$kc3WhlPd</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$bBAqK8Rp$auxiliary$WxcZc5Nx</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$EMx0XVUf</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$EMx0XVUf$auxiliary$krK504rI</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$EMx0XVUf$auxiliary$wKr6IMOU</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$tHZUiESM</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$tHZUiESM$auxiliary$9DOHHjXd</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$tHZUiESM$auxiliary$ztuf8DfG</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$YQLkFUNB</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$YQLkFUNB$auxiliary$hFZQcRWP</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$YQLkFUNB$auxiliary$Z8XAJUEo</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.EventListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Listeners for events from the registry.  Listeners must be thread-safe.
    -&nbsp; */
    -&nbsp;public interface MetricRegistryListener extends EventListener {
    -&nbsp;    /**
    -&nbsp;     * A no-op implementation of {@link MetricRegistryListener}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    abstract class Base implements MetricRegistryListener {</b>
    -&nbsp;        @Override
    -&nbsp;        public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onGaugeRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onCounterAdded(String name, Counter counter) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onCounterRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onHistogramAdded(String name, Histogram histogram) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onHistogramRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onMeterAdded(String name, Meter meter) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onMeterRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimerAdded(String name, Timer timer) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimerRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Gauge} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name  the gauge&#39;s name
    -&nbsp;     * @param gauge the gauge
    -&nbsp;     */
    -&nbsp;    void onGaugeAdded(String name, Gauge&lt;?&gt; gauge);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Gauge} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the gauge&#39;s name
    -&nbsp;     */
    -&nbsp;    void onGaugeRemoved(String name);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Counter} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name    the counter&#39;s name
    -&nbsp;     * @param counter the counter
    -&nbsp;     */
    -&nbsp;    void onCounterAdded(String name, Counter counter);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Counter} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the counter&#39;s name
    -&nbsp;     */
    -&nbsp;    void onCounterRemoved(String name);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Histogram} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name      the histogram&#39;s name
    -&nbsp;     * @param histogram the histogram
    -&nbsp;     */
    -&nbsp;    void onHistogramAdded(String name, Histogram histogram);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Histogram} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the histogram&#39;s name
    -&nbsp;     */
    -&nbsp;    void onHistogramRemoved(String name);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Meter} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name  the meter&#39;s name
    -&nbsp;     * @param meter the meter
    -&nbsp;     */
    -&nbsp;    void onMeterAdded(String name, Meter meter);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Meter} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the meter&#39;s name
    -&nbsp;     */
    -&nbsp;    void onMeterRemoved(String name);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Timer} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name  the timer&#39;s name
    -&nbsp;     * @param timer the timer
    -&nbsp;     */
    -&nbsp;    void onTimerAdded(String name, Timer timer);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Timer} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the timer&#39;s name
    -&nbsp;     */
    -&nbsp;    void onTimerRemoved(String name);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-17.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-17.html
    deleted file mode 100644
    index c9b6d91bf9..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-17.html
    +++ /dev/null
    @@ -1,1117 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NoopMetricRegistry</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NoopMetricRegistry (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NoopMetricRegistry</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (26/32)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.4%
    -  </span>
    -  <span class="absValue">
    -    (28/34)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$EmptyConcurrentMap</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    5.9%
    -  </span>
    -  <span class="absValue">
    -    (1/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    5.9%
    -  </span>
    -  <span class="absValue">
    -    (1/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$EmptySnapshot</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopCounter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    28.6%
    -  </span>
    -  <span class="absValue">
    -    (2/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    28.6%
    -  </span>
    -  <span class="absValue">
    -    (2/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopHistogram</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    42.9%
    -  </span>
    -  <span class="absValue">
    -    (3/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    44.4%
    -  </span>
    -  <span class="absValue">
    -    (4/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopHistogram$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopMeter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.2%
    -  </span>
    -  <span class="absValue">
    -    (2/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.2%
    -  </span>
    -  <span class="absValue">
    -    (2/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopTimer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    14.3%
    -  </span>
    -  <span class="absValue">
    -    (2/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (3/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopTimer$Context</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (3/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopTimer$Context$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40.7%
    -  </span>
    -  <span class="absValue">
    -    (48/118)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.SortedSet;
    -&nbsp;import java.util.concurrent.Callable;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A registry of metric instances which never creates or registers any metrics and returns no-op implementations of any metric type.
    -&nbsp; *
    -&nbsp; * @since 4.1.17
    -&nbsp; */
    -<b class="fc">&nbsp;public final class NoopMetricRegistry extends MetricRegistry {</b>
    -<b class="fc">&nbsp;    private static final EmptyConcurrentMap&lt;String, Metric&gt; EMPTY_CONCURRENT_MAP = new EmptyConcurrentMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    protected ConcurrentMap&lt;String, Metric&gt; buildMap() {
    -<b class="fc">&nbsp;        return EMPTY_CONCURRENT_MAP;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T extends Metric&gt; T register(String name, T metric) throws IllegalArgumentException {
    -<b class="pc">&nbsp;        if (metric == null) {</b>
    -<b class="fc">&nbsp;            throw new NullPointerException(&quot;metric == null&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return metric;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void registerAll(MetricSet metrics) throws IllegalArgumentException {
    -&nbsp;        // NOP
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Counter counter(String name) {
    -<b class="fc">&nbsp;        return NoopCounter.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Counter counter(String name, MetricSupplier&lt;Counter&gt; supplier) {
    -<b class="fc">&nbsp;        return NoopCounter.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Histogram histogram(String name) {
    -<b class="fc">&nbsp;        return NoopHistogram.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Histogram histogram(String name, MetricSupplier&lt;Histogram&gt; supplier) {
    -<b class="fc">&nbsp;        return NoopHistogram.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Meter meter(String name) {
    -<b class="fc">&nbsp;        return NoopMeter.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Meter meter(String name, MetricSupplier&lt;Meter&gt; supplier) {
    -<b class="fc">&nbsp;        return NoopMeter.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Timer timer(String name) {
    -<b class="fc">&nbsp;        return NoopTimer.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Timer timer(String name, MetricSupplier&lt;Timer&gt; supplier) {
    -<b class="fc">&nbsp;        return NoopTimer.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     *
    -&nbsp;     * @since 4.2
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    -&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name) {
    -<b class="fc">&nbsp;        return (T) NoopGauge.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    -&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name, MetricSupplier&lt;T&gt; supplier) {
    -<b class="fc">&nbsp;        return (T) NoopGauge.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean remove(String name) {
    -<b class="fc">&nbsp;        return false;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void removeMatching(MetricFilter filter) {
    -&nbsp;        // NOP
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void addListener(MetricRegistryListener listener) {
    -&nbsp;        // NOP
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void removeListener(MetricRegistryListener listener) {
    -&nbsp;        // NOP
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedSet&lt;String&gt; getNames() {
    -<b class="fc">&nbsp;        return Collections.emptySortedSet();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
    -&nbsp;        // NOP
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        return Collections.emptyMap();</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopGauge&lt;T&gt; implements Gauge&lt;T&gt; {</b>
    -<b class="fc">&nbsp;        private static final NoopGauge&lt;?&gt; INSTANCE = new NoopGauge&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public T getValue() {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="nc">&nbsp;    private static final class EmptySnapshot extends Snapshot {</b>
    -<b class="nc">&nbsp;        private static final EmptySnapshot INSTANCE = new EmptySnapshot();</b>
    -<b class="nc">&nbsp;        private static final long[] EMPTY_LONG_ARRAY = new long[0];</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getValue(double quantile) {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long[] getValues() {
    -<b class="nc">&nbsp;            return EMPTY_LONG_ARRAY;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public int size() {
    -<b class="nc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getMax() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getMean() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getMin() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getStdDev() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void dump(OutputStream output) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopTimer extends Timer {</b>
    -<b class="fc">&nbsp;        private static final NoopTimer INSTANCE = new NoopTimer();</b>
    -<b class="fc">&nbsp;        private static final Timer.Context CONTEXT = new NoopTimer.Context();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private static class Context extends Timer.Context {</b>
    -<b class="fc">&nbsp;            private static final Clock CLOCK = new Clock() {</b>
    -&nbsp;                /**
    -&nbsp;                 * {@inheritDoc}
    -&nbsp;                 */
    -&nbsp;                @Override
    -&nbsp;                public long getTick() {
    -<b class="fc">&nbsp;                    return 0L;</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                /**
    -&nbsp;                 * {@inheritDoc}
    -&nbsp;                 */
    -&nbsp;                @Override
    -&nbsp;                public long getTime() {
    -<b class="nc">&nbsp;                    return 0L;</b>
    -&nbsp;                }
    -&nbsp;            };
    -&nbsp;
    -&nbsp;            private Context() {
    -<b class="fc">&nbsp;                super(INSTANCE, CLOCK);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public long stop() {
    -<b class="nc">&nbsp;                return 0L;</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public void close() {
    -&nbsp;                // NOP
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void update(long duration, TimeUnit unit) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void update(Duration duration) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public &lt;T&gt; T time(Callable&lt;T&gt; event) throws Exception {
    -<b class="nc">&nbsp;            return event.call();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public &lt;T&gt; T timeSupplier(Supplier&lt;T&gt; event) {
    -<b class="nc">&nbsp;            return event.get();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void time(Runnable event) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Timer.Context time() {
    -<b class="nc">&nbsp;            return CONTEXT;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getFifteenMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getFiveMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getMeanRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getOneMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Snapshot getSnapshot() {
    -<b class="nc">&nbsp;            return EmptySnapshot.INSTANCE;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopHistogram extends Histogram {</b>
    -<b class="fc">&nbsp;        private static final NoopHistogram INSTANCE = new NoopHistogram();</b>
    -<b class="fc">&nbsp;        private static final Reservoir EMPTY_RESERVOIR = new Reservoir() {</b>
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public int size() {
    -<b class="nc">&nbsp;                return 0;</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public void update(long value) {
    -&nbsp;                // NOP
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public Snapshot getSnapshot() {
    -<b class="nc">&nbsp;                return EmptySnapshot.INSTANCE;</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -&nbsp;        private NoopHistogram() {
    -<b class="fc">&nbsp;            super(EMPTY_RESERVOIR);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void update(int value) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void update(long value) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Snapshot getSnapshot() {
    -<b class="nc">&nbsp;            return EmptySnapshot.INSTANCE;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopCounter extends Counter {</b>
    -<b class="fc">&nbsp;        private static final NoopCounter INSTANCE = new NoopCounter();</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void inc() {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void inc(long n) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void dec() {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void dec(long n) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopMeter extends Meter {</b>
    -<b class="fc">&nbsp;        private static final NoopMeter INSTANCE = new NoopMeter();</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void mark() {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void mark(long n) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getFifteenMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getFiveMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getMeanRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getOneMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final class EmptyConcurrentMap&lt;K, V&gt; implements ConcurrentMap&lt;K, V&gt; {</b>
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V putIfAbsent(K key, V value) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean remove(Object key, Object value) {
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean replace(K key, V oldValue, V newValue) {
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V replace(K key, V value) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public int size() {
    -<b class="nc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean isEmpty() {
    -<b class="nc">&nbsp;            return true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean containsKey(Object key) {
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean containsValue(Object value) {
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V get(Object key) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V put(K key, V value) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V remove(Object key) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void putAll(Map&lt;? extends K, ? extends V&gt; m) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void clear() {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Set&lt;K&gt; keySet() {
    -<b class="nc">&nbsp;            return Collections.emptySet();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Collection&lt;V&gt; values() {
    -<b class="nc">&nbsp;            return Collections.emptySet();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Set&lt;Entry&lt;K, V&gt;&gt; entrySet() {
    -<b class="nc">&nbsp;            return Collections.emptySet();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-18.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-18.html
    deleted file mode 100644
    index 844c31fbb8..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-18.html
    +++ /dev/null
    @@ -1,216 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > RatioGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: RatioGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">RatioGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">RatioGauge$Ratio</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import static java.lang.Double.isInfinite;
    -&nbsp;import static java.lang.Double.isNaN;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A gauge which measures the ratio of one value to another.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * If the denominator is zero, not a number, or infinite, the resulting ratio is not a number.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class RatioGauge implements Gauge&lt;Double&gt; {</b>
    -&nbsp;    /**
    -&nbsp;     * A ratio of one quantity to another.
    -&nbsp;     */
    -&nbsp;    public static class Ratio {
    -&nbsp;        /**
    -&nbsp;         * Creates a new ratio with the given numerator and denominator.
    -&nbsp;         *
    -&nbsp;         * @param numerator   the numerator of the ratio
    -&nbsp;         * @param denominator the denominator of the ratio
    -&nbsp;         * @return {@code numerator:denominator}
    -&nbsp;         */
    -&nbsp;        public static Ratio of(double numerator, double denominator) {
    -<b class="fc">&nbsp;            return new Ratio(numerator, denominator);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private final double numerator;
    -&nbsp;        private final double denominator;
    -&nbsp;
    -<b class="fc">&nbsp;        private Ratio(double numerator, double denominator) {</b>
    -<b class="fc">&nbsp;            this.numerator = numerator;</b>
    -<b class="fc">&nbsp;            this.denominator = denominator;</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the ratio, which is either a {@code double} between 0 and 1 (inclusive) or
    -&nbsp;         * {@code NaN}.
    -&nbsp;         *
    -&nbsp;         * @return the ratio
    -&nbsp;         */
    -&nbsp;        public double getValue() {
    -<b class="fc">&nbsp;            final double d = denominator;</b>
    -<b class="pc">&nbsp;            if (isNaN(d) || isInfinite(d) || d == 0) {</b>
    -<b class="fc">&nbsp;                return Double.NaN;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return numerator / d;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String toString() {
    -<b class="fc">&nbsp;            return numerator + &quot;:&quot; + denominator;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the {@link Ratio} which is the gauge&#39;s current value.
    -&nbsp;     *
    -&nbsp;     * @return the {@link Ratio} which is the gauge&#39;s current value
    -&nbsp;     */
    -&nbsp;    protected abstract Ratio getRatio();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Double getValue() {
    -<b class="fc">&nbsp;        return getRatio().getValue();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-19.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-19.html
    deleted file mode 100644
    index 32e2e5e8e7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-19.html
    +++ /dev/null
    @@ -1,495 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ScheduledReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ScheduledReporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ScheduledReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.3%
    -  </span>
    -  <span class="absValue">
    -    (21/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.8%
    -  </span>
    -  <span class="absValue">
    -    (52/79)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">ScheduledReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ScheduledReporter$NamedThreadFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (10/12)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.1%
    -  </span>
    -  <span class="absValue">
    -    (62/91)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.io.Closeable;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.Executor;
    -&nbsp;import java.util.concurrent.Executors;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.ScheduledFuture;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * The abstract base class for all scheduled reporters (i.e., reporters which process a registry&#39;s
    -&nbsp; * metrics periodically).
    -&nbsp; *
    -&nbsp; * @see ConsoleReporter
    -&nbsp; * @see CsvReporter
    -&nbsp; * @see Slf4jReporter
    -&nbsp; */
    -&nbsp;public abstract class ScheduledReporter implements Closeable, Reporter {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOG = LoggerFactory.getLogger(ScheduledReporter.class);</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A simple named thread factory.
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;NullableProblems&quot;)
    -<b class="fc">&nbsp;    private static class NamedThreadFactory implements ThreadFactory {</b>
    -&nbsp;        private final ThreadGroup group;
    -<b class="fc">&nbsp;        private final AtomicInteger threadNumber = new AtomicInteger(1);</b>
    -&nbsp;        private final String namePrefix;
    -&nbsp;
    -<b class="fc">&nbsp;        private NamedThreadFactory(String name) {</b>
    -<b class="fc">&nbsp;            final SecurityManager s = System.getSecurityManager();</b>
    -<b class="pc">&nbsp;            this.group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();</b>
    -<b class="fc">&nbsp;            this.namePrefix = &quot;metrics-&quot; + name + &quot;-thread-&quot;;</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Thread newThread(Runnable r) {
    -<b class="fc">&nbsp;            final Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);</b>
    -<b class="fc">&nbsp;            t.setDaemon(true);</b>
    -<b class="pc">&nbsp;            if (t.getPriority() != Thread.NORM_PRIORITY) {</b>
    -<b class="nc">&nbsp;                t.setPriority(Thread.NORM_PRIORITY);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return t;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final AtomicInteger FACTORY_ID = new AtomicInteger();</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final ScheduledExecutorService executor;
    -&nbsp;    private final boolean shutdownExecutorOnStop;
    -&nbsp;    private final Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -&nbsp;    private ScheduledFuture&lt;?&gt; scheduledFuture;
    -&nbsp;    private final MetricFilter filter;
    -&nbsp;    private final long durationFactor;
    -&nbsp;    private final String durationUnit;
    -&nbsp;    private final long rateFactor;
    -&nbsp;    private final String rateUnit;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ScheduledReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry     the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    -&nbsp;     *                     reporter will report
    -&nbsp;     * @param name         the reporter&#39;s name
    -&nbsp;     * @param filter       the filter for which metrics to report
    -&nbsp;     * @param rateUnit     a unit of time
    -&nbsp;     * @param durationUnit a unit of time
    -&nbsp;     */
    -&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    -&nbsp;                                String name,
    -&nbsp;                                MetricFilter filter,
    -&nbsp;                                TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit) {
    -<b class="fc">&nbsp;        this(registry, name, filter, rateUnit, durationUnit, createDefaultExecutor(name));</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ScheduledReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    -&nbsp;     *                 reporter will report
    -&nbsp;     * @param name     the reporter&#39;s name
    -&nbsp;     * @param filter   the filter for which metrics to report
    -&nbsp;     * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;     */
    -&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    -&nbsp;                                String name,
    -&nbsp;                                MetricFilter filter,
    -&nbsp;                                TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit,
    -&nbsp;                                ScheduledExecutorService executor) {
    -<b class="fc">&nbsp;        this(registry, name, filter, rateUnit, durationUnit, executor, true);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ScheduledReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry               the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    -&nbsp;     *                               reporter will report
    -&nbsp;     * @param name                   the reporter&#39;s name
    -&nbsp;     * @param filter                 the filter for which metrics to report
    -&nbsp;     * @param executor               the executor to use while scheduling reporting of metrics.
    -&nbsp;     * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;     */
    -&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    -&nbsp;                                String name,
    -&nbsp;                                MetricFilter filter,
    -&nbsp;                                TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit,
    -&nbsp;                                ScheduledExecutorService executor,
    -&nbsp;                                boolean shutdownExecutorOnStop) {
    -<b class="fc">&nbsp;        this(registry, name, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, Collections.emptySet());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    -&nbsp;                                String name,
    -&nbsp;                                MetricFilter filter,
    -&nbsp;                                TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit,
    -&nbsp;                                ScheduledExecutorService executor,
    -&nbsp;                                boolean shutdownExecutorOnStop,
    -<b class="fc">&nbsp;                                Set&lt;MetricAttribute&gt; disabledMetricAttributes) {</b>
    -&nbsp;
    -<b class="pc">&nbsp;        if (registry == null) {</b>
    -<b class="fc">&nbsp;            throw new NullPointerException(&quot;registry == null&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.filter = filter;</b>
    -<b class="pc">&nbsp;        this.executor = executor == null ? createDefaultExecutor(name) : executor;</b>
    -<b class="fc">&nbsp;        this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="fc">&nbsp;        this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;        this.rateUnit = calculateRateUnit(rateUnit);</b>
    -<b class="fc">&nbsp;        this.durationFactor = durationUnit.toNanos(1);</b>
    -<b class="fc">&nbsp;        this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    -<b class="pc">&nbsp;        this.disabledMetricAttributes = disabledMetricAttributes != null ? disabledMetricAttributes :</b>
    -<b class="fc">&nbsp;                Collections.emptySet();</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Starts the reporter polling at the given period.
    -&nbsp;     *
    -&nbsp;     * @param period the amount of time between polls
    -&nbsp;     * @param unit   the unit for {@code period}
    -&nbsp;     */
    -&nbsp;    public void start(long period, TimeUnit unit) {
    -<b class="fc">&nbsp;        start(period, period, unit);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Starts the reporter polling at the given period with the specific runnable action.
    -&nbsp;     * Visible only for testing.
    -&nbsp;     */
    -&nbsp;    synchronized void start(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
    -<b class="pc">&nbsp;        if (this.scheduledFuture != null) {</b>
    -<b class="fc">&nbsp;            throw new IllegalArgumentException(&quot;Reporter already started&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.scheduledFuture = getScheduledFuture(initialDelay, period, unit, runnable);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Schedule the task, and return a future.
    -&nbsp;     *
    -&nbsp;     * @deprecated Use {@link #getScheduledFuture(long, long, TimeUnit, Runnable, ScheduledExecutorService)} instead.
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;DeprecatedIsStillUsed&quot;)
    -&nbsp;    @Deprecated
    -&nbsp;    protected ScheduledFuture&lt;?&gt; getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
    -<b class="fc">&nbsp;        return getScheduledFuture(initialDelay, period, unit, runnable, this.executor);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Schedule the task, and return a future.
    -&nbsp;     * The current implementation uses scheduleWithFixedDelay, replacing scheduleWithFixedRate. This avoids queueing issues, but may
    -&nbsp;     * cause some reporters to skip metrics, as scheduleWithFixedDelay introduces a growing delta from the original start point.
    -&nbsp;     *
    -&nbsp;     * Overriding this in a subclass to revert to the old behavior is permitted.
    -&nbsp;     */
    -&nbsp;    protected ScheduledFuture&lt;?&gt; getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable, ScheduledExecutorService executor) {
    -<b class="fc">&nbsp;        return executor.scheduleWithFixedDelay(runnable, initialDelay, period, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Starts the reporter polling at the given period.
    -&nbsp;     *
    -&nbsp;     * @param initialDelay the time to delay the first execution
    -&nbsp;     * @param period       the amount of time between polls
    -&nbsp;     * @param unit         the unit for {@code period} and {@code initialDelay}
    -&nbsp;     */
    -&nbsp;    synchronized public void start(long initialDelay, long period, TimeUnit unit) {
    -<b class="fc">&nbsp;        start(initialDelay, period, unit, () -&gt; {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                report();</b>
    -<b class="nc">&nbsp;            } catch (Throwable ex) {</b>
    -<b class="nc">&nbsp;                LOG.error(&quot;Exception thrown from {}#report. Exception was suppressed.&quot;, ScheduledReporter.this.getClass().getSimpleName(), ex);</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        });</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Stops the reporter and if shutdownExecutorOnStop is true then shuts down its thread of execution.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * Uses the shutdown pattern from http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html
    -&nbsp;     */
    -&nbsp;    public void stop() {
    -<b class="pc">&nbsp;        if (shutdownExecutorOnStop) {</b>
    -<b class="fc">&nbsp;            executor.shutdown(); // Disable new tasks from being submitted</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            report(); // Report metrics one last time</b>
    -<b class="nc">&nbsp;        } catch (Exception e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Final reporting of metrics failed.&quot;, e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="pc">&nbsp;        if (shutdownExecutorOnStop) {</b>
    -&nbsp;            try {
    -&nbsp;                // Wait a while for existing tasks to terminate
    -<b class="pc">&nbsp;                if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    -<b class="nc">&nbsp;                    executor.shutdownNow(); // Cancel currently executing tasks</b>
    -&nbsp;                    // Wait a while for tasks to respond to being cancelled
    -<b class="nc">&nbsp;                    if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    -<b class="nc">&nbsp;                        LOG.warn(&quot;ScheduledExecutorService did not terminate.&quot;);</b>
    -&nbsp;                    }
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (InterruptedException ie) {</b>
    -&nbsp;                // (Re-)Cancel if current thread also interrupted
    -<b class="nc">&nbsp;                executor.shutdownNow();</b>
    -&nbsp;                // Preserve interrupt status
    -<b class="nc">&nbsp;                Thread.currentThread().interrupt();</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        } else {
    -&nbsp;            // The external manager (like JEE container) responsible for lifecycle of executor
    -<b class="fc">&nbsp;            cancelScheduledFuture();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private synchronized void cancelScheduledFuture() {
    -<b class="pc">&nbsp;        if (this.scheduledFuture == null) {</b>
    -&nbsp;            // was never started
    -<b class="nc">&nbsp;            return;</b>
    -&nbsp;        }
    -<b class="pc">&nbsp;        if (this.scheduledFuture.isCancelled()) {</b>
    -&nbsp;            // already cancelled
    -<b class="nc">&nbsp;            return;</b>
    -&nbsp;        }
    -&nbsp;        // just cancel the scheduledFuture and exit
    -<b class="fc">&nbsp;        this.scheduledFuture.cancel(false);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Stops the reporter and shuts down its thread of execution.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="fc">&nbsp;        stop();</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Report the current values of all metrics in the registry.
    -&nbsp;     */
    -&nbsp;    public void report() {
    -<b class="fc">&nbsp;        synchronized (this) {</b>
    -<b class="fc">&nbsp;            report(registry.getGauges(filter),</b>
    -<b class="fc">&nbsp;                    registry.getCounters(filter),</b>
    -<b class="fc">&nbsp;                    registry.getHistograms(filter),</b>
    -<b class="fc">&nbsp;                    registry.getMeters(filter),</b>
    -<b class="fc">&nbsp;                    registry.getTimers(filter));</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called periodically by the polling thread. Subclasses should report all the given metrics.
    -&nbsp;     *
    -&nbsp;     * @param gauges     all of the gauges in the registry
    -&nbsp;     * @param counters   all of the counters in the registry
    -&nbsp;     * @param histograms all of the histograms in the registry
    -&nbsp;     * @param meters     all of the meters in the registry
    -&nbsp;     * @param timers     all of the timers in the registry
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public abstract void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                                SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                                SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                                SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                                SortedMap&lt;String, Timer&gt; timers);
    -&nbsp;
    -&nbsp;    protected String getRateUnit() {
    -<b class="fc">&nbsp;        return rateUnit;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String getDurationUnit() {
    -<b class="fc">&nbsp;        return durationUnit;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected double convertDuration(double duration) {
    -<b class="fc">&nbsp;        return duration / durationFactor;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected double convertRate(double rate) {
    -<b class="fc">&nbsp;        return rate * rateFactor;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected boolean isShutdownExecutorOnStop() {
    -<b class="nc">&nbsp;        return shutdownExecutorOnStop;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected Set&lt;MetricAttribute&gt; getDisabledMetricAttributes() {
    -<b class="fc">&nbsp;        return disabledMetricAttributes;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String calculateRateUnit(TimeUnit unit) {
    -<b class="fc">&nbsp;        final String s = unit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;        return s.substring(0, s.length() - 1);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static ScheduledExecutorService createDefaultExecutor(String name) {
    -<b class="fc">&nbsp;        return Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(name + &#39;-&#39; + FACTORY_ID.incrementAndGet()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1a.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1a.html
    deleted file mode 100644
    index fa2760d6ed..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1a.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SharedMetricRegistries</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SharedMetricRegistries (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SharedMetricRegistries</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (28/32)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.atomic.AtomicReference;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A map of shared, named metric registries.
    -&nbsp; */
    -&nbsp;public class SharedMetricRegistries {
    -<b class="fc">&nbsp;    private static final ConcurrentMap&lt;String, MetricRegistry&gt; REGISTRIES =</b>
    -&nbsp;            new ConcurrentHashMap&lt;&gt;();
    -&nbsp;
    -<b class="fc">&nbsp;    private static AtomicReference&lt;String&gt; defaultRegistryName = new AtomicReference&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    /* Visible for testing */
    -&nbsp;    static void setDefaultRegistryName(AtomicReference&lt;String&gt; defaultRegistryName) {
    -<b class="fc">&nbsp;        SharedMetricRegistries.defaultRegistryName = defaultRegistryName;</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private SharedMetricRegistries() { /* singleton */ }
    -&nbsp;
    -&nbsp;    public static void clear() {
    -<b class="fc">&nbsp;        REGISTRIES.clear();</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    public static Set&lt;String&gt; names() {
    -<b class="fc">&nbsp;        return REGISTRIES.keySet();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void remove(String key) {
    -<b class="fc">&nbsp;        REGISTRIES.remove(key);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    public static MetricRegistry add(String name, MetricRegistry registry) {
    -<b class="fc">&nbsp;        return REGISTRIES.putIfAbsent(name, registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static MetricRegistry getOrCreate(String name) {
    -<b class="fc">&nbsp;        final MetricRegistry existing = REGISTRIES.get(name);</b>
    -<b class="pc">&nbsp;        if (existing == null) {</b>
    -<b class="fc">&nbsp;            final MetricRegistry created = new MetricRegistry();</b>
    -<b class="fc">&nbsp;            final MetricRegistry raced = add(name, created);</b>
    -<b class="pc">&nbsp;            if (raced == null) {</b>
    -<b class="fc">&nbsp;                return created;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            return raced;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return existing;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new registry and sets it as the default one under the provided name.
    -&nbsp;     *
    -&nbsp;     * @param name the registry name
    -&nbsp;     * @return the default registry
    -&nbsp;     * @throws IllegalStateException if the name has already been set
    -&nbsp;     */
    -&nbsp;    public synchronized static MetricRegistry setDefault(String name) {
    -<b class="fc">&nbsp;        final MetricRegistry registry = getOrCreate(name);</b>
    -<b class="fc">&nbsp;        return setDefault(name, registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Sets the provided registry as the default one under the provided name
    -&nbsp;     *
    -&nbsp;     * @param name           the default registry name
    -&nbsp;     * @param metricRegistry the default registry
    -&nbsp;     * @throws IllegalStateException if the default registry has already been set
    -&nbsp;     */
    -&nbsp;    public static MetricRegistry setDefault(String name, MetricRegistry metricRegistry) {
    -<b class="pc">&nbsp;        if (defaultRegistryName.compareAndSet(null, name)) {</b>
    -<b class="fc">&nbsp;            add(name, metricRegistry);</b>
    -<b class="fc">&nbsp;            return metricRegistry;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default metric registry name is already set.&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Gets the name of the default registry, if it has been set
    -&nbsp;     *
    -&nbsp;     * @return the default registry
    -&nbsp;     * @throws IllegalStateException if the default has not been set
    -&nbsp;     */
    -&nbsp;    public static MetricRegistry getDefault() {
    -<b class="fc">&nbsp;        MetricRegistry metricRegistry = tryGetDefault();</b>
    -<b class="pc">&nbsp;        if (metricRegistry == null) {</b>
    -<b class="fc">&nbsp;            throw new IllegalStateException(&quot;Default registry name has not been set.&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return metricRegistry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Same as {@link #getDefault()} except returns null when the default registry has not been set.
    -&nbsp;     *
    -&nbsp;     * @return the default registry or null
    -&nbsp;     */
    -&nbsp;    public static MetricRegistry tryGetDefault() {
    -<b class="fc">&nbsp;        final String name = defaultRegistryName.get();</b>
    -<b class="pc">&nbsp;        if (name != null) {</b>
    -<b class="fc">&nbsp;            return getOrCreate(name);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1b.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1b.html
    deleted file mode 100644
    index 65e1d60bc7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1b.html
    +++ /dev/null
    @@ -1,810 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Slf4jReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Slf4jReporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Slf4jReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (97/115)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (35/45)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$DebugLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$ErrorLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (3/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$InfoLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (3/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$LoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$LoggingLevel</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$TraceLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$WarnLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/29)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.6%
    -  </span>
    -  <span class="absValue">
    -    (141/189)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;import org.slf4j.Marker;
    -&nbsp;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Map.Entry;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter class for logging metrics values to a SLF4J {@link Logger} periodically, similar to
    -&nbsp; * {@link ConsoleReporter} or {@link CsvReporter}, but using the SLF4J framework instead. It also
    -&nbsp; * supports specifying a {@link Marker} instance that can be used by custom appenders and filters
    -&nbsp; * for the bound logging toolkit to further process metrics reports.
    -&nbsp; */
    -<b class="fc">&nbsp;public class Slf4jReporter extends ScheduledReporter {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link Slf4jReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link Slf4jReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public enum LoggingLevel { TRACE, DEBUG, INFO, WARN, ERROR }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link Slf4jReporter} instances. Defaults to logging to {@code metrics}, not
    -&nbsp;     * using a marker, converting rates to events/second, converting durations to milliseconds, and
    -&nbsp;     * not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private Logger logger;
    -&nbsp;        private LoggingLevel loggingLevel;
    -&nbsp;        private Marker marker;
    -&nbsp;        private String prefix;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private MetricFilter filter;
    -&nbsp;        private ScheduledExecutorService executor;
    -&nbsp;        private boolean shutdownExecutorOnStop;
    -&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.logger = LoggerFactory.getLogger(&quot;metrics&quot;);</b>
    -<b class="fc">&nbsp;            this.marker = null;</b>
    -<b class="fc">&nbsp;            this.prefix = &quot;&quot;;</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;            this.loggingLevel = LoggingLevel.INFO;</b>
    -<b class="fc">&nbsp;            this.executor = null;</b>
    -<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = Collections.emptySet();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -&nbsp;         * Default value is true.
    -&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -&nbsp;         *
    -&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    -&nbsp;         * Default value is null.
    -&nbsp;         * Null value leads to executor will be auto created on start.
    -&nbsp;         *
    -&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Log metrics to the given logger.
    -&nbsp;         *
    -&nbsp;         * @param logger an SLF4J {@link Logger}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder outputTo(Logger logger) {
    -<b class="fc">&nbsp;            this.logger = logger;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Mark all logged metrics with the given marker.
    -&nbsp;         *
    -&nbsp;         * @param marker an SLF4J {@link Marker}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder markWith(Marker marker) {
    -<b class="fc">&nbsp;            this.marker = marker;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Prefix all metric names with the given string.
    -&nbsp;         *
    -&nbsp;         * @param prefix the prefix for all metric names
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder prefixedWith(String prefix) {
    -<b class="fc">&nbsp;            this.prefix = prefix;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use Logging Level when reporting.
    -&nbsp;         *
    -&nbsp;         * @param loggingLevel a (@link Slf4jReporter.LoggingLevel}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withLoggingLevel(LoggingLevel loggingLevel) {
    -<b class="fc">&nbsp;            this.loggingLevel = loggingLevel;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    -&nbsp;         * See {@link MetricAttribute}.
    -&nbsp;         *
    -&nbsp;         * @param disabledMetricAttributes a set of {@link MetricAttribute}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link Slf4jReporter} with the given properties.
    -&nbsp;         *
    -&nbsp;         * @return a {@link Slf4jReporter}
    -&nbsp;         */
    -&nbsp;        public Slf4jReporter build() {
    -&nbsp;            LoggerProxy loggerProxy;
    -<b class="pc">&nbsp;            switch (loggingLevel) {</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    loggerProxy = new TraceLoggerProxy(logger);</b>
    -<b class="nc">&nbsp;                    break;</b>
    -&nbsp;                case INFO:
    -<b class="fc">&nbsp;                    loggerProxy = new InfoLoggerProxy(logger);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case WARN:
    -<b class="nc">&nbsp;                    loggerProxy = new WarnLoggerProxy(logger);</b>
    -<b class="nc">&nbsp;                    break;</b>
    -&nbsp;                case ERROR:
    -<b class="fc">&nbsp;                    loggerProxy = new ErrorLoggerProxy(logger);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                default:
    -&nbsp;                case DEBUG:
    -<b class="nc">&nbsp;                    loggerProxy = new DebugLoggerProxy(logger);</b>
    -&nbsp;                    break;
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new Slf4jReporter(registry, loggerProxy, marker, prefix, rateUnit, durationUnit, filter, executor,</b>
    -&nbsp;                    shutdownExecutorOnStop, disabledMetricAttributes);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final LoggerProxy loggerProxy;
    -&nbsp;    private final Marker marker;
    -&nbsp;    private final String prefix;
    -&nbsp;
    -&nbsp;    private Slf4jReporter(MetricRegistry registry,
    -&nbsp;                          LoggerProxy loggerProxy,
    -&nbsp;                          Marker marker,
    -&nbsp;                          String prefix,
    -&nbsp;                          TimeUnit rateUnit,
    -&nbsp;                          TimeUnit durationUnit,
    -&nbsp;                          MetricFilter filter,
    -&nbsp;                          ScheduledExecutorService executor,
    -&nbsp;                          boolean shutdownExecutorOnStop,
    -&nbsp;                          Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;        super(registry, &quot;logger-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes);
    -<b class="fc">&nbsp;        this.loggerProxy = loggerProxy;</b>
    -<b class="fc">&nbsp;        this.marker = marker;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    -<b class="pc">&nbsp;        if (loggerProxy.isEnabled(marker)) {</b>
    -<b class="fc">&nbsp;            StringBuilder b = new StringBuilder();</b>
    -<b class="pc">&nbsp;            for (Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;                logGauge(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="pc">&nbsp;            for (Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;                logCounter(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="pc">&nbsp;            for (Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;                logHistogram(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="pc">&nbsp;            for (Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;                logMeter(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="pc">&nbsp;            for (Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;                logTimer(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void logTimer(StringBuilder b, String name, Timer timer) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=TIMER&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        appendCountIfEnabled(b, timer);</b>
    -<b class="fc">&nbsp;        appendLongDurationIfEnabled(b, MIN, snapshot::getMin);</b>
    -<b class="fc">&nbsp;        appendLongDurationIfEnabled(b, MAX, snapshot::getMax);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, MEAN, snapshot::getMean);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, STDDEV, snapshot::getStdDev);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P50, snapshot::getMedian);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P75, snapshot::get75thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P95, snapshot::get95thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P98, snapshot::get98thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P99, snapshot::get99thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P999, snapshot::get999thPercentile);</b>
    -<b class="fc">&nbsp;        appendMetered(b, timer);</b>
    -<b class="fc">&nbsp;        append(b, &quot;rate_unit&quot;, getRateUnit());</b>
    -<b class="fc">&nbsp;        append(b, &quot;duration_unit&quot;, getDurationUnit());</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void logMeter(StringBuilder b, String name, Meter meter) {
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=METER&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        appendCountIfEnabled(b, meter);</b>
    -<b class="fc">&nbsp;        appendMetered(b, meter);</b>
    -<b class="fc">&nbsp;        append(b, &quot;rate_unit&quot;, getRateUnit());</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void logHistogram(StringBuilder b, String name, Histogram histogram) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=HISTOGRAM&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        appendCountIfEnabled(b, histogram);</b>
    -<b class="fc">&nbsp;        appendLongIfEnabled(b, MIN, snapshot::getMin);</b>
    -<b class="fc">&nbsp;        appendLongIfEnabled(b, MAX, snapshot::getMax);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, MEAN, snapshot::getMean);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, STDDEV, snapshot::getStdDev);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P50, snapshot::getMedian);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P75, snapshot::get75thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P95, snapshot::get95thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P98, snapshot::get98thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P99, snapshot::get99thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P999, snapshot::get999thPercentile);</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void logCounter(StringBuilder b, String name, Counter counter) {
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=COUNTER&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        append(b, COUNT.getCode(), counter.getCount());</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void logGauge(StringBuilder b, String name, Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=GAUGE&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        append(b, &quot;value&quot;, gauge.getValue());</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void appendLongDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -&nbsp;                                             Supplier&lt;Long&gt; durationSupplier) {
    -<b class="pc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void appendDoubleDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -&nbsp;                                               Supplier&lt;Double&gt; durationSupplier) {
    -<b class="pc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void appendLongIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -&nbsp;                                     Supplier&lt;Long&gt; valueSupplier) {
    -<b class="pc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), valueSupplier.get());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void appendDoubleIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -&nbsp;                                       Supplier&lt;Double&gt; valueSupplier) {
    -<b class="pc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), valueSupplier.get());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void appendCountIfEnabled(StringBuilder b, Counting counting) {
    -<b class="pc">&nbsp;        if (!getDisabledMetricAttributes().contains(COUNT)) {</b>
    -<b class="fc">&nbsp;            append(b, COUNT.getCode(), counting.getCount());</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void appendMetered(StringBuilder b, Metered meter) {
    -<b class="fc">&nbsp;        appendRateIfEnabled(b, M1_RATE, meter::getOneMinuteRate);</b>
    -<b class="fc">&nbsp;        appendRateIfEnabled(b, M5_RATE, meter::getFiveMinuteRate);</b>
    -<b class="fc">&nbsp;        appendRateIfEnabled(b, M15_RATE,  meter::getFifteenMinuteRate);</b>
    -<b class="fc">&nbsp;        appendRateIfEnabled(b, MEAN_RATE,  meter::getMeanRate);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void appendRateIfEnabled(StringBuilder b, MetricAttribute metricAttribute, Supplier&lt;Double&gt; rateSupplier) {
    -<b class="pc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), convertRate(rateSupplier.get()));</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void append(StringBuilder b, String key, long value) {
    -<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void append(StringBuilder b, String key, double value) {
    -<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void append(StringBuilder b, String key, String value) {
    -<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void append(StringBuilder b, String key, Object value) {
    -<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected String getRateUnit() {
    -<b class="fc">&nbsp;        return &quot;events/&quot; + super.getRateUnit();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String prefix(String... components) {
    -<b class="fc">&nbsp;        return MetricRegistry.name(prefix, components);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    static abstract class LoggerProxy {
    -&nbsp;        protected final Logger logger;
    -&nbsp;
    -<b class="fc">&nbsp;        public LoggerProxy(Logger logger) {</b>
    -<b class="fc">&nbsp;            this.logger = logger;</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        abstract void log(Marker marker, String format);
    -&nbsp;
    -&nbsp;        abstract boolean isEnabled(Marker marker);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class DebugLoggerProxy extends LoggerProxy {
    -&nbsp;        public DebugLoggerProxy(Logger logger) {
    -<b class="nc">&nbsp;            super(logger);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="nc">&nbsp;            logger.debug(marker, format);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="nc">&nbsp;            return logger.isDebugEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class TraceLoggerProxy extends LoggerProxy {
    -&nbsp;        public TraceLoggerProxy(Logger logger) {
    -<b class="nc">&nbsp;            super(logger);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="nc">&nbsp;            logger.trace(marker, format);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="nc">&nbsp;            return logger.isTraceEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class InfoLoggerProxy extends LoggerProxy {
    -&nbsp;        public InfoLoggerProxy(Logger logger) {
    -<b class="fc">&nbsp;            super(logger);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="fc">&nbsp;            logger.info(marker, format);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="fc">&nbsp;            return logger.isInfoEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class WarnLoggerProxy extends LoggerProxy {
    -&nbsp;        public WarnLoggerProxy(Logger logger) {
    -<b class="nc">&nbsp;            super(logger);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="nc">&nbsp;            logger.warn(marker, format);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="nc">&nbsp;            return logger.isWarnEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class ErrorLoggerProxy extends LoggerProxy {
    -&nbsp;        public ErrorLoggerProxy(Logger logger) {
    -<b class="fc">&nbsp;            super(logger);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="fc">&nbsp;            logger.error(marker, format);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="fc">&nbsp;            return logger.isErrorEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1c.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1c.html
    deleted file mode 100644
    index f0e4e7657c..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1c.html
    +++ /dev/null
    @@ -1,217 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowArrayReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowArrayReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.4%
    -  </span>
    -  <span class="absValue">
    -    (29/37)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
    -&nbsp; * in the last {@code N} seconds (or other time unit).
    -&nbsp; */
    -&nbsp;public class SlidingTimeWindowArrayReservoir implements Reservoir {
    -&nbsp;    // allow for this many duplicate ticks before overwriting measurements
    -&nbsp;    private static final long COLLISION_BUFFER = 256L;
    -&nbsp;    // only trim on updating once every N
    -&nbsp;    private static final long TRIM_THRESHOLD = 256L;
    -<b class="fc">&nbsp;    private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final ChunkedAssociativeLongArray measurements;
    -&nbsp;    private final long window;
    -&nbsp;    private final AtomicLong lastTick;
    -&nbsp;    private final AtomicLong count;
    -&nbsp;    private final long startTick;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given window of time.
    -&nbsp;     *
    -&nbsp;     * @param window     the window of time
    -&nbsp;     * @param windowUnit the unit of {@code window}
    -&nbsp;     */
    -&nbsp;    public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit) {
    -<b class="nc">&nbsp;        this(window, windowUnit, Clock.defaultClock());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given clock and window of time.
    -&nbsp;     *
    -&nbsp;     * @param window     the window of time
    -&nbsp;     * @param windowUnit the unit of {@code window}
    -&nbsp;     * @param clock      the {@link Clock} to use
    -&nbsp;     */
    -<b class="fc">&nbsp;    public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.startTick = clock.getTick();</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.measurements = new ChunkedAssociativeLongArray();</b>
    -<b class="fc">&nbsp;        this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;</b>
    -<b class="fc">&nbsp;        this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);</b>
    -<b class="fc">&nbsp;        this.count = new AtomicLong();</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        trim();</b>
    -<b class="fc">&nbsp;        return measurements.size();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -&nbsp;        long newTick;
    -&nbsp;        do {
    -<b class="pc">&nbsp;            if (count.incrementAndGet() % TRIM_THRESHOLD == 0L) {</b>
    -<b class="fc">&nbsp;                trim();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            long lastTick = this.lastTick.get();</b>
    -<b class="fc">&nbsp;            newTick = getTick();</b>
    -<b class="pc">&nbsp;            boolean longOverflow = newTick &lt; lastTick;</b>
    -<b class="pc">&nbsp;            if (longOverflow) {</b>
    -<b class="nc">&nbsp;                measurements.clear();</b>
    -&nbsp;            }
    -<b class="pc">&nbsp;        } while (!measurements.put(newTick, value));</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        trim();</b>
    -<b class="fc">&nbsp;        return new UniformSnapshot(measurements.values());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private long getTick() {
    -&nbsp;        for ( ;; ) {
    -<b class="fc">&nbsp;            final long oldTick = lastTick.get();</b>
    -<b class="fc">&nbsp;            final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;</b>
    -&nbsp;            // ensure the tick is strictly incrementing even if there are duplicate ticks
    -<b class="pc">&nbsp;            final long newTick = tick - oldTick &gt; 0L ? tick : oldTick + 1L;</b>
    -<b class="pc">&nbsp;            if (lastTick.compareAndSet(oldTick, newTick)) {</b>
    -<b class="fc">&nbsp;                return newTick;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void trim() {
    -<b class="fc">&nbsp;        final long now = getTick();</b>
    -<b class="fc">&nbsp;        final long windowStart = now - window;</b>
    -<b class="fc">&nbsp;        final long windowEnd = now + CLEAR_BUFFER;</b>
    -<b class="pc">&nbsp;        if (windowStart &lt; windowEnd) {</b>
    -<b class="fc">&nbsp;            measurements.trim(windowStart, windowEnd);</b>
    -&nbsp;        } else {
    -&nbsp;            // long overflow handling that can happen only after 1 year after class loading
    -<b class="nc">&nbsp;            measurements.clear();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1d.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1d.html
    deleted file mode 100644
    index 4a370be887..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1d.html
    +++ /dev/null
    @@ -1,217 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowArrayReservoirTrimReadTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirTrimReadTest (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowArrayReservoirTrimReadTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">SlidingTimeWindowArrayReservoirTrimReadTest$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.openjdk.jcstress.annotations.Actor;
    -&nbsp;import org.openjdk.jcstress.annotations.Expect;
    -&nbsp;import org.openjdk.jcstress.annotations.JCStressTest;
    -&nbsp;import org.openjdk.jcstress.annotations.Outcome;
    -&nbsp;import org.openjdk.jcstress.annotations.State;
    -&nbsp;import org.openjdk.jcstress.infra.results.L_Result;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;@JCStressTest
    -&nbsp;@Outcome(
    -&nbsp;    id = &quot;\\[240, 241, 242, 243, 244, 245, 246, 247, 248, 249\\]&quot;,
    -&nbsp;    expect = Expect.ACCEPTABLE,
    -&nbsp;    desc = &quot;Actor1 made read before Actor2 even started&quot;
    -&nbsp;    )
    -&nbsp;@Outcome(
    -&nbsp;    id = &quot;\\[243, 244, 245, 246, 247, 248, 249\\]&quot;,
    -&nbsp;    expect = Expect.ACCEPTABLE,
    -&nbsp;    desc = &quot;Actor2 made trim before Actor1 even started&quot;
    -&nbsp;    )
    -&nbsp;@Outcome(
    -&nbsp;    id = &quot;\\[244, 245, 246, 247, 248, 249\\]&quot;,
    -&nbsp;    expect = Expect.ACCEPTABLE,
    -&nbsp;    desc = &quot;Actor1 made trim, then Actor2 started trim and made startIndex change, &quot; +
    -&nbsp;        &quot;before Actor1 concurrent read.&quot;
    -&nbsp;    )
    -&nbsp;@Outcome(
    -&nbsp;    id = &quot;\\[243, 244, 245, 246, 247, 248\\]&quot;,
    -&nbsp;    expect = Expect.ACCEPTABLE,
    -&nbsp;    desc = &quot;Actor1 made trim, then Actor2 started trim, but not finished startIndex change, before Actor1 concurrent read.&quot;
    -&nbsp;    )
    -&nbsp;@State
    -<b class="nc">&nbsp;public class SlidingTimeWindowArrayReservoirTrimReadTest {</b>
    -<b class="nc">&nbsp;    private final AtomicLong ticks = new AtomicLong(0);</b>
    -&nbsp;    private final SlidingTimeWindowArrayReservoir reservoir;
    -&nbsp;
    -<b class="nc">&nbsp;    public SlidingTimeWindowArrayReservoirTrimReadTest() {</b>
    -<b class="nc">&nbsp;        reservoir = new SlidingTimeWindowArrayReservoir(10, TimeUnit.NANOSECONDS, new Clock() {</b>
    -&nbsp;            @Override
    -&nbsp;            public long getTick() {
    -<b class="nc">&nbsp;                return ticks.get();</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="nc">&nbsp;        for (int i = 0; i &lt; 250; i++) {</b>
    -<b class="nc">&nbsp;            ticks.set(i);</b>
    -<b class="nc">&nbsp;            reservoir.update(i);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor1(L_Result r) {
    -<b class="nc">&nbsp;        Snapshot snapshot = reservoir.getSnapshot();</b>
    -<b class="nc">&nbsp;        String stringValues = Arrays.toString(snapshot.getValues());</b>
    -<b class="nc">&nbsp;        r.r1 = stringValues;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor2() {
    -<b class="nc">&nbsp;        ticks.set(253);</b>
    -<b class="nc">&nbsp;        reservoir.trim();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1e.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1e.html
    deleted file mode 100644
    index eb7f62c9a7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1e.html
    +++ /dev/null
    @@ -1,161 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowArrayReservoirWriteReadAllocate</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirWriteReadAllocate (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowArrayReservoirWriteReadAllocate</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.openjdk.jcstress.annotations.Actor;
    -&nbsp;import org.openjdk.jcstress.annotations.Arbiter;
    -&nbsp;import org.openjdk.jcstress.annotations.Expect;
    -&nbsp;import org.openjdk.jcstress.annotations.JCStressTest;
    -&nbsp;import org.openjdk.jcstress.annotations.Outcome;
    -&nbsp;import org.openjdk.jcstress.annotations.State;
    -&nbsp;import org.openjdk.jcstress.infra.results.L_Result;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;@JCStressTest
    -&nbsp;@Outcome(id = &quot;\\[1023, 1029, 1034\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@State
    -&nbsp;public class SlidingTimeWindowArrayReservoirWriteReadAllocate {
    -&nbsp;
    -&nbsp;    private final SlidingTimeWindowArrayReservoir reservoir;
    -&nbsp;
    -<b class="nc">&nbsp;    public SlidingTimeWindowArrayReservoirWriteReadAllocate() {</b>
    -<b class="nc">&nbsp;        reservoir = new SlidingTimeWindowArrayReservoir(500, TimeUnit.SECONDS);</b>
    -<b class="nc">&nbsp;        for (int i = 0; i &lt; 1024; i++) {</b>
    -<b class="nc">&nbsp;            reservoir.update(i);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor1() {
    -<b class="nc">&nbsp;        reservoir.update(1029L);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor2() {
    -<b class="nc">&nbsp;        reservoir.update(1034L);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Arbiter
    -&nbsp;    public void arbiter(L_Result r) {
    -<b class="nc">&nbsp;        Snapshot snapshot = reservoir.getSnapshot();</b>
    -<b class="nc">&nbsp;        long[] values = snapshot.getValues();</b>
    -<b class="nc">&nbsp;        String stringValues = Arrays.toString(Arrays.copyOfRange(values, values.length - 3, values.length));</b>
    -<b class="nc">&nbsp;        r.r1 = stringValues;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1f.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1f.html
    deleted file mode 100644
    index 382e707398..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-1f.html
    +++ /dev/null
    @@ -1,149 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowArrayReservoirWriteReadTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirWriteReadTest (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowArrayReservoirWriteReadTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.openjdk.jcstress.annotations.Actor;
    -&nbsp;import org.openjdk.jcstress.annotations.Expect;
    -&nbsp;import org.openjdk.jcstress.annotations.JCStressTest;
    -&nbsp;import org.openjdk.jcstress.annotations.Outcome;
    -&nbsp;import org.openjdk.jcstress.annotations.State;
    -&nbsp;import org.openjdk.jcstress.infra.results.L_Result;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;@JCStressTest
    -&nbsp;@Outcome(id = &quot;\\[\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@Outcome(id = &quot;\\[31\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@Outcome(id = &quot;\\[15\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@Outcome(id = &quot;\\[31, 15\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@Outcome(id = &quot;\\[15, 31\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@State
    -&nbsp;public class SlidingTimeWindowArrayReservoirWriteReadTest {
    -&nbsp;
    -&nbsp;    private final SlidingTimeWindowArrayReservoir reservoir;
    -&nbsp;
    -<b class="nc">&nbsp;    public SlidingTimeWindowArrayReservoirWriteReadTest() {</b>
    -<b class="nc">&nbsp;        reservoir = new SlidingTimeWindowArrayReservoir(1, TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor1() {
    -<b class="nc">&nbsp;        reservoir.update(31L);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor2() {
    -<b class="nc">&nbsp;        reservoir.update(15L);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor3(L_Result r) {
    -<b class="nc">&nbsp;        Snapshot snapshot = reservoir.getSnapshot();</b>
    -<b class="nc">&nbsp;        String stringValues = Arrays.toString(snapshot.getValues());</b>
    -<b class="nc">&nbsp;        r.r1 = stringValues;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2.html
    deleted file mode 100644
    index c45bf3866b..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2.html
    +++ /dev/null
    @@ -1,353 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ChunkedAssociativeLongArray</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ChunkedAssociativeLongArray (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ChunkedAssociativeLongArray</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (81/90)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">ChunkedAssociativeLongArray$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ChunkedAssociativeLongArray$Chunk</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (10/12)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.2%
    -  </span>
    -  <span class="absValue">
    -    (91/102)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.lang.ref.SoftReference;
    -&nbsp;import java.util.ArrayDeque;
    -&nbsp;import java.util.Deque;
    -&nbsp;import java.util.Iterator;
    -&nbsp;
    -&nbsp;import static java.lang.System.arraycopy;
    -&nbsp;import static java.util.Arrays.binarySearch;
    -&nbsp;
    -&nbsp;class ChunkedAssociativeLongArray {
    -<b class="fc">&nbsp;    private static final long[] EMPTY = new long[0];</b>
    -&nbsp;    private static final int DEFAULT_CHUNK_SIZE = 512;
    -&nbsp;    private static final int MAX_CACHE_SIZE = 128;
    -&nbsp;
    -&nbsp;    private final int defaultChunkSize;
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * We use this ArrayDeque as cache to store chunks that are expired and removed from main data structure.
    -&nbsp;     * Then instead of allocating new Chunk immediately we are trying to poll one from this deque.
    -&nbsp;     * So if you have constant or slowly changing load ChunkedAssociativeLongArray will never
    -&nbsp;     * throw away old chunks or allocate new ones which makes this data structure almost garbage free.
    -&nbsp;     */
    -<b class="fc">&nbsp;    private final ArrayDeque&lt;SoftReference&lt;Chunk&gt;&gt; chunksCache = new ArrayDeque&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private final Deque&lt;Chunk&gt; chunks = new ArrayDeque&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    ChunkedAssociativeLongArray() {
    -<b class="fc">&nbsp;        this(DEFAULT_CHUNK_SIZE);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -<b class="fc">&nbsp;    ChunkedAssociativeLongArray(int chunkSize) {</b>
    -<b class="fc">&nbsp;        this.defaultChunkSize = chunkSize;</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private Chunk allocateChunk() {
    -&nbsp;        while (true) {
    -<b class="fc">&nbsp;            final SoftReference&lt;Chunk&gt; chunkRef = chunksCache.pollLast();</b>
    -<b class="pc">&nbsp;            if (chunkRef == null) {</b>
    -<b class="fc">&nbsp;                return new Chunk(defaultChunkSize);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            final Chunk chunk = chunkRef.get();</b>
    -<b class="pc">&nbsp;            if (chunk != null) {</b>
    -<b class="fc">&nbsp;                chunk.cursor = 0;</b>
    -<b class="fc">&nbsp;                chunk.startIndex = 0;</b>
    -<b class="fc">&nbsp;                chunk.chunkSize = chunk.keys.length;</b>
    -<b class="fc">&nbsp;                return chunk;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void freeChunk(Chunk chunk) {
    -<b class="pc">&nbsp;        if (chunksCache.size() &lt; MAX_CACHE_SIZE) {</b>
    -<b class="fc">&nbsp;            chunksCache.add(new SoftReference&lt;&gt;(chunk));</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    synchronized boolean put(long key, long value) {
    -<b class="fc">&nbsp;        Chunk activeChunk = chunks.peekLast();</b>
    -<b class="pc">&nbsp;        if (activeChunk != null &amp;&amp; activeChunk.cursor != 0 &amp;&amp; activeChunk.keys[activeChunk.cursor - 1] &gt; key) {</b>
    -&nbsp;            // key should be the same as last inserted or bigger
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -<b class="pc">&nbsp;        if (activeChunk == null || activeChunk.cursor - activeChunk.startIndex == activeChunk.chunkSize) {</b>
    -&nbsp;            // The last chunk doesn&#39;t exist or full
    -<b class="fc">&nbsp;            activeChunk = allocateChunk();</b>
    -<b class="fc">&nbsp;            chunks.add(activeChunk);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeChunk.append(key, value);</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    synchronized long[] values() {
    -<b class="fc">&nbsp;        final int valuesSize = size();</b>
    -<b class="pc">&nbsp;        if (valuesSize == 0) {</b>
    -<b class="nc">&nbsp;            return EMPTY;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final long[] values = new long[valuesSize];</b>
    -<b class="fc">&nbsp;        int valuesIndex = 0;</b>
    -<b class="pc">&nbsp;        for (Chunk chunk : chunks) {</b>
    -<b class="fc">&nbsp;            int length = chunk.cursor - chunk.startIndex;</b>
    -<b class="fc">&nbsp;            int itemsToCopy = Math.min(valuesSize - valuesIndex, length);</b>
    -<b class="fc">&nbsp;            arraycopy(chunk.values, chunk.startIndex, values, valuesIndex, itemsToCopy);</b>
    -<b class="fc">&nbsp;            valuesIndex += length;</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return values;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    synchronized int size() {
    -<b class="fc">&nbsp;        int result = 0;</b>
    -<b class="pc">&nbsp;        for (Chunk chunk : chunks) {</b>
    -<b class="fc">&nbsp;            result += chunk.cursor - chunk.startIndex;</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return result;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    synchronized String out() {
    -<b class="fc">&nbsp;        final StringBuilder builder = new StringBuilder();</b>
    -<b class="fc">&nbsp;        final Iterator&lt;Chunk&gt; iterator = chunks.iterator();</b>
    -<b class="pc">&nbsp;        while (iterator.hasNext()) {</b>
    -<b class="fc">&nbsp;            final Chunk chunk = iterator.next();</b>
    -<b class="fc">&nbsp;            builder.append(&#39;[&#39;);</b>
    -<b class="pc">&nbsp;            for (int i = chunk.startIndex; i &lt; chunk.cursor; i++) {</b>
    -<b class="fc">&nbsp;                builder.append(&#39;(&#39;).append(chunk.keys[i]).append(&quot;: &quot;)</b>
    -<b class="fc">&nbsp;                        .append(chunk.values[i]).append(&#39;)&#39;).append(&#39; &#39;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            builder.append(&#39;]&#39;);</b>
    -<b class="pc">&nbsp;            if (iterator.hasNext()) {</b>
    -<b class="fc">&nbsp;                builder.append(&quot;-&gt;&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return builder.toString();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Try to trim all beyond specified boundaries.
    -&nbsp;     *
    -&nbsp;     * @param startKey the start value for which all elements less than it should be removed.
    -&nbsp;     * @param endKey   the end value for which all elements greater/equals than it should be removed.
    -&nbsp;     */
    -&nbsp;    synchronized void trim(long startKey, long endKey) {
    -&nbsp;        /*
    -&nbsp;         * [3, 4, 5, 9] -&gt; [10, 13, 14, 15] -&gt; [21, 24, 29, 30] -&gt; [31] :: start layout
    -&nbsp;         *       |5______________________________23|                    :: trim(5, 23)
    -&nbsp;         *       [5, 9] -&gt; [10, 13, 14, 15] -&gt; [21]                     :: result layout
    -&nbsp;         */
    -<b class="fc">&nbsp;        final Iterator&lt;Chunk&gt; descendingIterator = chunks.descendingIterator();</b>
    -<b class="pc">&nbsp;        while (descendingIterator.hasNext()) {</b>
    -<b class="fc">&nbsp;            final Chunk currentTail = descendingIterator.next();</b>
    -<b class="pc">&nbsp;            if (isFirstElementIsEmptyOrGreaterEqualThanKey(currentTail, endKey)) {</b>
    -<b class="fc">&nbsp;                freeChunk(currentTail);</b>
    -<b class="fc">&nbsp;                descendingIterator.remove();</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                currentTail.cursor = findFirstIndexOfGreaterEqualElements(currentTail.keys, currentTail.startIndex,</b>
    -<b class="fc">&nbsp;                        currentTail.cursor, endKey);</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final Iterator&lt;Chunk&gt; iterator = chunks.iterator();</b>
    -<b class="pc">&nbsp;        while (iterator.hasNext()) {</b>
    -<b class="fc">&nbsp;            final Chunk currentHead = iterator.next();</b>
    -<b class="pc">&nbsp;            if (isLastElementIsLessThanKey(currentHead, startKey)) {</b>
    -<b class="fc">&nbsp;                freeChunk(currentHead);</b>
    -<b class="fc">&nbsp;                iterator.remove();</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                final int newStartIndex = findFirstIndexOfGreaterEqualElements(currentHead.keys, currentHead.startIndex,</b>
    -<b class="fc">&nbsp;                        currentHead.cursor, startKey);</b>
    -<b class="pc">&nbsp;                if (currentHead.startIndex != newStartIndex) {</b>
    -<b class="fc">&nbsp;                    currentHead.startIndex = newStartIndex;</b>
    -<b class="fc">&nbsp;                    currentHead.chunkSize = currentHead.cursor - currentHead.startIndex;</b>
    -&nbsp;                }
    -&nbsp;                break;
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    synchronized void clear() {
    -<b class="nc">&nbsp;        chunks.clear();</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private boolean isFirstElementIsEmptyOrGreaterEqualThanKey(Chunk chunk, long key) {
    -<b class="pc">&nbsp;        return chunk.cursor == chunk.startIndex || chunk.keys[chunk.startIndex] &gt;= key;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private boolean isLastElementIsLessThanKey(Chunk chunk, long key) {
    -<b class="pc">&nbsp;        return chunk.cursor == chunk.startIndex || chunk.keys[chunk.cursor - 1] &lt; key;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private int findFirstIndexOfGreaterEqualElements(long[] array, int startIndex, int endIndex, long minKey) {
    -<b class="pc">&nbsp;        if (endIndex == startIndex || array[startIndex] &gt;= minKey) {</b>
    -<b class="fc">&nbsp;            return startIndex;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        final int keyIndex = binarySearch(array, startIndex, endIndex, minKey);</b>
    -<b class="pc">&nbsp;        return keyIndex &lt; 0 ? -(keyIndex + 1) : keyIndex;</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class Chunk {</b>
    -&nbsp;
    -&nbsp;        private final long[] keys;
    -&nbsp;        private final long[] values;
    -&nbsp;
    -&nbsp;        private int chunkSize; // can differ from keys.length after half clear()
    -<b class="fc">&nbsp;        private int startIndex = 0;</b>
    -<b class="fc">&nbsp;        private int cursor = 0;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private Chunk(int chunkSize) {</b>
    -<b class="fc">&nbsp;            this.chunkSize = chunkSize;</b>
    -<b class="fc">&nbsp;            this.keys = new long[chunkSize];</b>
    -<b class="fc">&nbsp;            this.values = new long[chunkSize];</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        private void append(long key, long value) {
    -<b class="fc">&nbsp;            keys[cursor] = key;</b>
    -<b class="fc">&nbsp;            values[cursor] = value;</b>
    -<b class="fc">&nbsp;            cursor++;</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-20.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-20.html
    deleted file mode 100644
    index ae4611d14c..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-20.html
    +++ /dev/null
    @@ -1,313 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowMovingAverages</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowMovingAverages (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowMovingAverages</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (63/70)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.time.Instant;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A triple of simple moving average rates (one, five and fifteen minutes rates) as needed by {@link Meter}.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * The averages are unweighted, i.e. they include strictly only the events in the
    -&nbsp; * sliding time window, every event having the same weight. Unlike the
    -&nbsp; * the more widely used {@link ExponentialMovingAverages} implementation,
    -&nbsp; * with this class the moving average rate drops immediately to zero if the last
    -&nbsp; * marked event is older than the time window.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A {@link Meter} with {@link SlidingTimeWindowMovingAverages} works similarly to
    -&nbsp; * a {@link Histogram} with an {@link SlidingTimeWindowArrayReservoir}, but as a Meter
    -&nbsp; * needs to keep track only of the count of events (not the events itself), the memory
    -&nbsp; * overhead is much smaller. SlidingTimeWindowMovingAverages uses buckets with just one
    -&nbsp; * counter to accumulate the number of events (one bucket per seconds, giving 900 buckets
    -&nbsp; * for the 15 minutes time window).
    -&nbsp; */
    -&nbsp;public class SlidingTimeWindowMovingAverages implements MovingAverages {
    -&nbsp;
    -&nbsp;    private static final long TIME_WINDOW_DURATION_MINUTES = 15;
    -<b class="fc">&nbsp;    private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(1);</b>
    -<b class="fc">&nbsp;    private static final Duration TIME_WINDOW_DURATION = Duration.ofMinutes(TIME_WINDOW_DURATION_MINUTES);</b>
    -&nbsp;
    -&nbsp;    // package private for the benefit of the unit test
    -<b class="fc">&nbsp;    static final int NUMBER_OF_BUCKETS = (int) (TIME_WINDOW_DURATION.toNanos() / TICK_INTERVAL);</b>
    -&nbsp;
    -&nbsp;    private final AtomicLong lastTick;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * One counter per time bucket/slot (i.e. per second, see TICK_INTERVAL) for the entire
    -&nbsp;     * time window (i.e. 15 minutes, see TIME_WINDOW_DURATION_MINUTES)
    -&nbsp;     */
    -&nbsp;    private ArrayList&lt;LongAdder&gt; buckets;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Index into buckets, pointing at the bucket containing the oldest counts
    -&nbsp;     */
    -&nbsp;    private int oldestBucketIndex;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Index into buckets, pointing at the bucket with the count for the current time (tick)
    -&nbsp;     */
    -&nbsp;    private int currentBucketIndex;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Instant at creation time of the time window. Used to calculate the currentBucketIndex
    -&nbsp;     * for the instant of a given tick (instant modulo time window duration)
    -&nbsp;     */
    -&nbsp;    private final Instant bucketBaseTime;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Instant of the bucket with index oldestBucketIndex
    -&nbsp;     */
    -&nbsp;    Instant oldestBucketTime;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowMovingAverages}.
    -&nbsp;     */
    -&nbsp;    public SlidingTimeWindowMovingAverages() {
    -<b class="fc">&nbsp;        this(Clock.defaultClock());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowMovingAverages}.
    -&nbsp;     *
    -&nbsp;     * @param clock the clock to use for the meter ticks
    -&nbsp;     */
    -<b class="fc">&nbsp;    public SlidingTimeWindowMovingAverages(Clock clock) {</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    -<b class="fc">&nbsp;        lastTick = new AtomicLong(startTime);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        buckets = new ArrayList&lt;&gt;(NUMBER_OF_BUCKETS);</b>
    -<b class="pc">&nbsp;        for (int i = 0; i &lt; NUMBER_OF_BUCKETS; i++) {</b>
    -<b class="fc">&nbsp;            buckets.add(new LongAdder());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        bucketBaseTime = Instant.ofEpochSecond(0L, startTime);</b>
    -<b class="fc">&nbsp;        oldestBucketTime = bucketBaseTime;</b>
    -<b class="fc">&nbsp;        oldestBucketIndex = 0;</b>
    -<b class="fc">&nbsp;        currentBucketIndex = 0;</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long n) {
    -<b class="fc">&nbsp;        buckets.get(currentBucketIndex).add(n);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void tickIfNecessary() {
    -<b class="fc">&nbsp;        final long oldTick = lastTick.get();</b>
    -<b class="fc">&nbsp;        final long newTick = clock.getTick();</b>
    -<b class="fc">&nbsp;        final long age = newTick - oldTick;</b>
    -<b class="pc">&nbsp;        if (age &gt;= TICK_INTERVAL) {</b>
    -&nbsp;            // - the newTick doesn&#39;t fall into the same slot as the oldTick anymore
    -&nbsp;            // - newLastTick is the lower border time of the new currentBucketIndex slot
    -<b class="fc">&nbsp;            final long newLastTick = newTick - age % TICK_INTERVAL;</b>
    -<b class="pc">&nbsp;            if (lastTick.compareAndSet(oldTick, newLastTick)) {</b>
    -<b class="fc">&nbsp;                Instant currentInstant = Instant.ofEpochSecond(0L, newLastTick);</b>
    -<b class="fc">&nbsp;                currentBucketIndex = normalizeIndex(calculateIndexOfTick(currentInstant));</b>
    -<b class="fc">&nbsp;                cleanOldBuckets(currentInstant);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM15Rate() {
    -<b class="fc">&nbsp;        return getMinuteRate(15);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM5Rate() {
    -<b class="fc">&nbsp;        return getMinuteRate(5);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM1Rate() {
    -<b class="fc">&nbsp;        return getMinuteRate(1);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private double getMinuteRate(int minutes) {
    -<b class="fc">&nbsp;        Instant now = Instant.ofEpochSecond(0L, lastTick.get());</b>
    -<b class="fc">&nbsp;        return sumBuckets(now, (int) (TimeUnit.MINUTES.toNanos(minutes) / TICK_INTERVAL));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    int calculateIndexOfTick(Instant tickTime) {
    -<b class="fc">&nbsp;        return (int) (Duration.between(bucketBaseTime, tickTime).toNanos() / TICK_INTERVAL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    int normalizeIndex(int index) {
    -<b class="fc">&nbsp;        int mod = index % NUMBER_OF_BUCKETS;</b>
    -<b class="pc">&nbsp;        return mod &gt;= 0 ? mod : mod + NUMBER_OF_BUCKETS;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void cleanOldBuckets(Instant currentTick) {
    -&nbsp;        int newOldestIndex;
    -<b class="fc">&nbsp;        Instant oldestStillNeededTime = currentTick.minus(TIME_WINDOW_DURATION).plusNanos(TICK_INTERVAL);</b>
    -<b class="fc">&nbsp;        Instant youngestNotInWindow = oldestBucketTime.plus(TIME_WINDOW_DURATION);</b>
    -<b class="pc">&nbsp;        if (oldestStillNeededTime.isAfter(youngestNotInWindow)) {</b>
    -&nbsp;            // there was no update() call for more than two whole TIME_WINDOW_DURATION
    -<b class="fc">&nbsp;            newOldestIndex = oldestBucketIndex;</b>
    -<b class="fc">&nbsp;            oldestBucketTime = currentTick;</b>
    -<b class="pc">&nbsp;        } else if (oldestStillNeededTime.isAfter(oldestBucketTime)) {</b>
    -<b class="fc">&nbsp;            newOldestIndex = normalizeIndex(calculateIndexOfTick(oldestStillNeededTime));</b>
    -<b class="fc">&nbsp;            oldestBucketTime = oldestStillNeededTime;</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            return;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        cleanBucketRange(oldestBucketIndex, newOldestIndex);</b>
    -<b class="fc">&nbsp;        oldestBucketIndex = newOldestIndex;</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void cleanBucketRange(int fromIndex, int toIndex) {
    -<b class="pc">&nbsp;        if (fromIndex &lt; toIndex) {</b>
    -<b class="pc">&nbsp;            for (int i = fromIndex; i &lt; toIndex; i++) {</b>
    -<b class="fc">&nbsp;                buckets.get(i).reset();</b>
    -&nbsp;            }
    -&nbsp;        } else {
    -<b class="pc">&nbsp;            for (int i = fromIndex; i &lt; NUMBER_OF_BUCKETS; i++) {</b>
    -<b class="fc">&nbsp;                buckets.get(i).reset();</b>
    -&nbsp;            }
    -<b class="pc">&nbsp;            for (int i = 0; i &lt; toIndex; i++) {</b>
    -<b class="fc">&nbsp;                buckets.get(i).reset();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private long sumBuckets(Instant toTime, int numberOfBuckets) {
    -&nbsp;
    -&nbsp;        // increment toIndex to include the current bucket into the sum
    -<b class="fc">&nbsp;        int toIndex = normalizeIndex(calculateIndexOfTick(toTime) + 1);</b>
    -<b class="fc">&nbsp;        int fromIndex = normalizeIndex(toIndex - numberOfBuckets);</b>
    -<b class="fc">&nbsp;        LongAdder adder = new LongAdder();</b>
    -&nbsp;
    -<b class="pc">&nbsp;        if (fromIndex &lt; toIndex) {</b>
    -<b class="fc">&nbsp;            buckets.stream()</b>
    -<b class="fc">&nbsp;                    .skip(fromIndex)</b>
    -<b class="fc">&nbsp;                    .limit(toIndex - fromIndex)</b>
    -<b class="fc">&nbsp;                    .mapToLong(LongAdder::longValue)</b>
    -<b class="fc">&nbsp;                    .forEach(adder::add);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            buckets.stream().limit(toIndex).mapToLong(LongAdder::longValue).forEach(adder::add);</b>
    -<b class="fc">&nbsp;            buckets.stream().skip(fromIndex).mapToLong(LongAdder::longValue).forEach(adder::add);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        long retval = adder.longValue();</b>
    -<b class="fc">&nbsp;        return retval;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-21.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-21.html
    deleted file mode 100644
    index 2738109be0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-21.html
    +++ /dev/null
    @@ -1,211 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.ConcurrentSkipListMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
    -&nbsp; * in the last {@code N} seconds (or other time unit).
    -&nbsp; */
    -&nbsp;public class SlidingTimeWindowReservoir implements Reservoir {
    -&nbsp;    // allow for this many duplicate ticks before overwriting measurements
    -&nbsp;    private static final int COLLISION_BUFFER = 256;
    -&nbsp;    // only trim on updating once every N
    -&nbsp;    private static final int TRIM_THRESHOLD = 256;
    -&nbsp;    // offsets the front of the time window for the purposes of clearing the buffer in trim
    -<b class="fc">&nbsp;    private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final ConcurrentSkipListMap&lt;Long, Long&gt; measurements;
    -&nbsp;    private final long window;
    -&nbsp;    private final AtomicLong lastTick;
    -&nbsp;    private final AtomicLong count;
    -&nbsp;    private final long startTick;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowReservoir} with the given window of time.
    -&nbsp;     *
    -&nbsp;     * @param window     the window of time
    -&nbsp;     * @param windowUnit the unit of {@code window}
    -&nbsp;     */
    -&nbsp;    public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit) {
    -<b class="nc">&nbsp;        this(window, windowUnit, Clock.defaultClock());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowReservoir} with the given clock and window of time.
    -&nbsp;     *
    -&nbsp;     * @param window     the window of time
    -&nbsp;     * @param windowUnit the unit of {@code window}
    -&nbsp;     * @param clock      the {@link Clock} to use
    -&nbsp;     */
    -<b class="fc">&nbsp;    public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.startTick = clock.getTick();</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.measurements = new ConcurrentSkipListMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;</b>
    -<b class="fc">&nbsp;        this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);</b>
    -<b class="fc">&nbsp;        this.count = new AtomicLong();</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        trim();</b>
    -<b class="fc">&nbsp;        return measurements.size();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -<b class="pc">&nbsp;        if (count.incrementAndGet() % TRIM_THRESHOLD == 0) {</b>
    -<b class="fc">&nbsp;            trim();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        measurements.put(getTick(), value);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        trim();</b>
    -<b class="fc">&nbsp;        return new UniformSnapshot(measurements.values());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private long getTick() {
    -&nbsp;        for ( ;; ) {
    -<b class="fc">&nbsp;            final long oldTick = lastTick.get();</b>
    -<b class="fc">&nbsp;            final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;</b>
    -&nbsp;            // ensure the tick is strictly incrementing even if there are duplicate ticks
    -<b class="pc">&nbsp;            final long newTick = tick - oldTick &gt; 0 ? tick : oldTick + 1;</b>
    -<b class="pc">&nbsp;            if (lastTick.compareAndSet(oldTick, newTick)) {</b>
    -<b class="fc">&nbsp;                return newTick;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void trim() {
    -<b class="fc">&nbsp;        final long now = getTick();</b>
    -<b class="fc">&nbsp;        final long windowStart = now - window;</b>
    -<b class="fc">&nbsp;        final long windowEnd = now + CLEAR_BUFFER;</b>
    -<b class="pc">&nbsp;        if (windowStart &lt; windowEnd) {</b>
    -<b class="fc">&nbsp;            measurements.headMap(windowStart).clear();</b>
    -<b class="fc">&nbsp;            measurements.tailMap(windowEnd).clear();</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            measurements.subMap(windowEnd, windowStart).clear();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-22.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-22.html
    deleted file mode 100644
    index 31752e0cfa..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-22.html
    +++ /dev/null
    @@ -1,159 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingWindowReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingWindowReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingWindowReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import static java.lang.Math.min;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Reservoir} implementation backed by a sliding window that stores the last {@code N}
    -&nbsp; * measurements.
    -&nbsp; */
    -&nbsp;public class SlidingWindowReservoir implements Reservoir {
    -&nbsp;    private final long[] measurements;
    -&nbsp;    private long count;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingWindowReservoir} which stores the last {@code size} measurements.
    -&nbsp;     *
    -&nbsp;     * @param size the number of measurements to store
    -&nbsp;     */
    -<b class="fc">&nbsp;    public SlidingWindowReservoir(int size) {</b>
    -<b class="fc">&nbsp;        this.measurements = new long[size];</b>
    -<b class="fc">&nbsp;        this.count = 0;</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public synchronized int size() {
    -<b class="fc">&nbsp;        return (int) min(count, measurements.length);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public synchronized void update(long value) {
    -<b class="fc">&nbsp;        measurements[(int) (count++ % measurements.length)] = value;</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        final long[] values = new long[size()];</b>
    -<b class="pc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    -<b class="fc">&nbsp;            synchronized (this) {</b>
    -<b class="fc">&nbsp;                values[i] = measurements[i];</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return new UniformSnapshot(values);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-23.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-23.html
    deleted file mode 100644
    index b9918af14d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-23.html
    +++ /dev/null
    @@ -1,286 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Snapshot</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Snapshot (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Snapshot</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$13ZN2lIT</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$13ZN2lIT$auxiliary$ghyMfif7</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$13ZN2lIT$auxiliary$vgx4u6lT</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$3e01HklY</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$3e01HklY$auxiliary$GlDuXJPt</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$3e01HklY$auxiliary$orPbaUDm</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$FpF5gbVb</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$FpF5gbVb$auxiliary$VRjpK2ON</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$FpF5gbVb$auxiliary$WtvcI0Gj</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$Kb3VKrRE</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$Kb3VKrRE$auxiliary$BtEytXpR</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$Kb3VKrRE$auxiliary$h748o3kg</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$Nv4MMHFh</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$Nv4MMHFh$auxiliary$qeB0uPlv</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$Nv4MMHFh$auxiliary$uyYKI7Ne</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$YDUbr5om</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$YDUbr5om$auxiliary$DrMOvmDt</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$YDUbr5om$auxiliary$TzUuRMoR</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A statistical snapshot of a {@link Snapshot}.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class Snapshot {</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the given quantile.
    -&nbsp;     *
    -&nbsp;     * @param quantile a given quantile, in {@code [0..1]}
    -&nbsp;     * @return the value in the distribution at {@code quantile}
    -&nbsp;     */
    -&nbsp;    public abstract double getValue(double quantile);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the entire set of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the entire set of values
    -&nbsp;     */
    -&nbsp;    public abstract long[] getValues();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the number of values
    -&nbsp;     */
    -&nbsp;    public abstract int size();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the median value in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the median value
    -&nbsp;     */
    -&nbsp;    public double getMedian() {
    -<b class="fc">&nbsp;        return getValue(0.5);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 75th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 75th percentile
    -&nbsp;     */
    -&nbsp;    public double get75thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.75);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 95th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 95th percentile
    -&nbsp;     */
    -&nbsp;    public double get95thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.95);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 98th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 98th percentile
    -&nbsp;     */
    -&nbsp;    public double get98thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.98);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 99th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 99th percentile
    -&nbsp;     */
    -&nbsp;    public double get99thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.99);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 99.9th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 99.9th percentile
    -&nbsp;     */
    -&nbsp;    public double get999thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.999);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the highest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the highest value
    -&nbsp;     */
    -&nbsp;    public abstract long getMax();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the arithmetic mean of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the arithmetic mean
    -&nbsp;     */
    -&nbsp;    public abstract double getMean();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the lowest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the lowest value
    -&nbsp;     */
    -&nbsp;    public abstract long getMin();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the standard deviation of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the standard value
    -&nbsp;     */
    -&nbsp;    public abstract double getStdDev();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Writes the values of the snapshot to the given stream.
    -&nbsp;     *
    -&nbsp;     * @param output an output stream
    -&nbsp;     */
    -&nbsp;    public abstract void dump(OutputStream output);
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-24.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-24.html
    deleted file mode 100644
    index 4463fd158e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-24.html
    +++ /dev/null
    @@ -1,353 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Timer</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Timer (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Timer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.7%
    -  </span>
    -  <span class="absValue">
    -    (35/39)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">Timer$Context</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (8/10)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.8%
    -  </span>
    -  <span class="absValue">
    -    (43/49)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.concurrent.Callable;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A timer metric which aggregates timing durations and provides duration statistics, plus
    -&nbsp; * throughput statistics via {@link Meter}.
    -&nbsp; */
    -&nbsp;public class Timer implements Metered, Sampling {
    -&nbsp;    /**
    -&nbsp;     * A timing context.
    -&nbsp;     *
    -&nbsp;     * @see Timer#time()
    -&nbsp;     */
    -&nbsp;    public static class Context implements AutoCloseable {
    -&nbsp;        private final Timer timer;
    -&nbsp;        private final Clock clock;
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="fc">&nbsp;        Context(Timer timer, Clock clock) {</b>
    -<b class="fc">&nbsp;            this.timer = timer;</b>
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            this.startTime = clock.getTick();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Updates the timer with the difference between current and start time. Call to this method will
    -&nbsp;         * not reset the start time. Multiple calls result in multiple updates.
    -&nbsp;         *
    -&nbsp;         * @return the elapsed time in nanoseconds
    -&nbsp;         */
    -&nbsp;        public long stop() {
    -<b class="fc">&nbsp;            final long elapsed = clock.getTick() - startTime;</b>
    -<b class="fc">&nbsp;            timer.update(elapsed, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;            return elapsed;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Equivalent to calling {@link #stop()}.
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void close() {
    -<b class="fc">&nbsp;            stop();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final Meter meter;
    -&nbsp;    private final Histogram histogram;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Timer} using an {@link ExponentiallyDecayingReservoir} and the default
    -&nbsp;     * {@link Clock}.
    -&nbsp;     */
    -&nbsp;    public Timer() {
    -<b class="fc">&nbsp;        this(new ExponentiallyDecayingReservoir());</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Timer} that uses the given {@link Reservoir}.
    -&nbsp;     *
    -&nbsp;     * @param reservoir the {@link Reservoir} implementation the timer should use
    -&nbsp;     */
    -&nbsp;    public Timer(Reservoir reservoir) {
    -<b class="fc">&nbsp;        this(reservoir, Clock.defaultClock());</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Timer} that uses the given {@link Reservoir} and {@link Clock}.
    -&nbsp;     *
    -&nbsp;     * @param reservoir the {@link Reservoir} implementation the timer should use
    -&nbsp;     * @param clock     the {@link Clock} implementation the timer should use
    -&nbsp;     */
    -&nbsp;    public Timer(Reservoir reservoir, Clock clock) {
    -<b class="fc">&nbsp;        this(new Meter(clock), new Histogram(reservoir), clock);</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public Timer(Meter meter, Histogram histogram, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.meter = meter;</b>
    -<b class="fc">&nbsp;        this.histogram = histogram;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a recorded duration.
    -&nbsp;     *
    -&nbsp;     * @param duration the length of the duration
    -&nbsp;     * @param unit     the scale unit of {@code duration}
    -&nbsp;     */
    -&nbsp;    public void update(long duration, TimeUnit unit) {
    -<b class="fc">&nbsp;        update(unit.toNanos(duration));</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a recorded duration.
    -&nbsp;     *
    -&nbsp;     * @param duration the {@link Duration} to add to the timer. Negative or zero value are ignored.
    -&nbsp;     */
    -&nbsp;    public void update(Duration duration) {
    -<b class="fc">&nbsp;        update(duration.toNanos());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Times and records the duration of event.
    -&nbsp;     *
    -&nbsp;     * @param event a {@link Callable} whose {@link Callable#call()} method implements a process
    -&nbsp;     *              whose duration should be timed
    -&nbsp;     * @param &lt;T&gt;   the type of the value returned by {@code event}
    -&nbsp;     * @return the value returned by {@code event}
    -&nbsp;     * @throws Exception if {@code event} throws an {@link Exception}
    -&nbsp;     */
    -&nbsp;    public &lt;T&gt; T time(Callable&lt;T&gt; event) throws Exception {
    -<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return event.call();</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            update(clock.getTick() - startTime);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Times and records the duration of event. Should not throw exceptions, for that use the
    -&nbsp;     * {@link #time(Callable)} method.
    -&nbsp;     *
    -&nbsp;     * @param event a {@link Supplier} whose {@link Supplier#get()} method implements a process
    -&nbsp;     *              whose duration should be timed
    -&nbsp;     * @param &lt;T&gt;   the type of the value returned by {@code event}
    -&nbsp;     * @return the value returned by {@code event}
    -&nbsp;     */
    -&nbsp;    public &lt;T&gt; T timeSupplier(Supplier&lt;T&gt; event) {
    -<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return event.get();</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            update(clock.getTick() - startTime);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Times and records the duration of event.
    -&nbsp;     *
    -&nbsp;     * @param event a {@link Runnable} whose {@link Runnable#run()} method implements a process
    -&nbsp;     *              whose duration should be timed
    -&nbsp;     */
    -&nbsp;    public void time(Runnable event) {
    -<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            event.run();</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            update(clock.getTick() - startTime);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Context}.
    -&nbsp;     *
    -&nbsp;     * @return a new {@link Context}
    -&nbsp;     * @see Context
    -&nbsp;     */
    -&nbsp;    public Context time() {
    -<b class="fc">&nbsp;        return new Context(this, clock);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public long getCount() {
    -<b class="fc">&nbsp;        return histogram.getCount();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getFifteenMinuteRate() {
    -<b class="fc">&nbsp;        return meter.getFifteenMinuteRate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getFiveMinuteRate() {
    -<b class="fc">&nbsp;        return meter.getFiveMinuteRate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getMeanRate() {
    -<b class="fc">&nbsp;        return meter.getMeanRate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getOneMinuteRate() {
    -<b class="fc">&nbsp;        return meter.getOneMinuteRate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        return histogram.getSnapshot();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void update(long duration) {
    -<b class="pc">&nbsp;        if (duration &gt;= 0) {</b>
    -<b class="fc">&nbsp;            histogram.update(duration);</b>
    -<b class="fc">&nbsp;            meter.mark();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-25.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-25.html
    deleted file mode 100644
    index 1f7d599e8e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-25.html
    +++ /dev/null
    @@ -1,186 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > UniformReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: UniformReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">UniformReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84%
    -  </span>
    -  <span class="absValue">
    -    (21/25)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.ThreadLocalRandom;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;import java.util.concurrent.atomic.AtomicLongArray;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A random sampling reservoir of a stream of {@code long}s. Uses Vitter&#39;s Algorithm R to produce a
    -&nbsp; * statistically representative sample.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://www.cs.umd.edu/~samir/498/vitter.pdf&quot;&gt;Random Sampling with a Reservoir&lt;/a&gt;
    -&nbsp; */
    -&nbsp;public class UniformReservoir implements Reservoir {
    -&nbsp;    private static final int DEFAULT_SIZE = 1028;
    -<b class="fc">&nbsp;    private final AtomicLong count = new AtomicLong();</b>
    -&nbsp;    private final AtomicLongArray values;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link UniformReservoir} of 1028 elements, which offers a 99.9% confidence level
    -&nbsp;     * with a 5% margin of error assuming a normal distribution.
    -&nbsp;     */
    -&nbsp;    public UniformReservoir() {
    -<b class="fc">&nbsp;        this(DEFAULT_SIZE);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link UniformReservoir}.
    -&nbsp;     *
    -&nbsp;     * @param size the number of samples to keep in the sampling reservoir
    -&nbsp;     */
    -<b class="fc">&nbsp;    public UniformReservoir(int size) {</b>
    -<b class="fc">&nbsp;        this.values = new AtomicLongArray(size);</b>
    -<b class="pc">&nbsp;        for (int i = 0; i &lt; values.length(); i++) {</b>
    -<b class="fc">&nbsp;            values.set(i, 0);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        count.set(0);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        final long c = count.get();</b>
    -<b class="pc">&nbsp;        if (c &gt; values.length()) {</b>
    -<b class="fc">&nbsp;            return values.length();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return (int) c;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        final long c = count.incrementAndGet();</b>
    -<b class="pc">&nbsp;        if (c &lt;= values.length()) {</b>
    -<b class="fc">&nbsp;            values.set((int) c - 1, value);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final long r = ThreadLocalRandom.current().nextLong(c);</b>
    -<b class="pc">&nbsp;            if (r &lt; values.length()) {</b>
    -<b class="fc">&nbsp;                values.set((int) r, value);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        final int s = size();</b>
    -<b class="fc">&nbsp;        long[] copy = new long[s];</b>
    -<b class="pc">&nbsp;        for (int i = 0; i &lt; s; i++) {</b>
    -<b class="fc">&nbsp;            copy[i] = values.get(i);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return new UniformSnapshot(copy);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-26.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-26.html
    deleted file mode 100644
    index 891f3c57d0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-26.html
    +++ /dev/null
    @@ -1,293 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > UniformSnapshot</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: UniformSnapshot (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">UniformSnapshot</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (48/52)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collection;
    -&nbsp;
    -&nbsp;import static java.lang.Math.floor;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A statistical snapshot of a {@link UniformSnapshot}.
    -&nbsp; */
    -&nbsp;public class UniformSnapshot extends Snapshot {
    -&nbsp;
    -&nbsp;    private final long[] values;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new {@link Snapshot} with the given values.
    -&nbsp;     *
    -&nbsp;     * @param values an unordered set of values in the reservoir
    -&nbsp;     */
    -<b class="fc">&nbsp;    public UniformSnapshot(Collection&lt;Long&gt; values) {</b>
    -<b class="fc">&nbsp;        final Object[] copy = values.toArray();</b>
    -<b class="fc">&nbsp;        this.values = new long[copy.length];</b>
    -<b class="pc">&nbsp;        for (int i = 0; i &lt; copy.length; i++) {</b>
    -<b class="fc">&nbsp;            this.values[i] = (Long) copy[i];</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        Arrays.sort(this.values);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new {@link Snapshot} with the given values.
    -&nbsp;     *
    -&nbsp;     * @param values an unordered set of values in the reservoir that can be used by this class directly
    -&nbsp;     */
    -<b class="fc">&nbsp;    public UniformSnapshot(long[] values) {</b>
    -<b class="fc">&nbsp;        this.values = Arrays.copyOf(values, values.length);</b>
    -<b class="fc">&nbsp;        Arrays.sort(this.values);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the given quantile.
    -&nbsp;     *
    -&nbsp;     * @param quantile a given quantile, in {@code [0..1]}
    -&nbsp;     * @return the value in the distribution at {@code quantile}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getValue(double quantile) {
    -<b class="pc">&nbsp;        if (quantile &lt; 0.0 || quantile &gt; 1.0 || Double.isNaN(quantile)) {</b>
    -<b class="fc">&nbsp;            throw new IllegalArgumentException(quantile + &quot; is not in [0..1]&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        if (values.length == 0) {</b>
    -<b class="nc">&nbsp;            return 0.0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double pos = quantile * (values.length + 1);</b>
    -<b class="fc">&nbsp;        final int index = (int) pos;</b>
    -&nbsp;
    -<b class="pc">&nbsp;        if (index &lt; 1) {</b>
    -<b class="fc">&nbsp;            return values[0];</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        if (index &gt;= values.length) {</b>
    -<b class="fc">&nbsp;            return values[values.length - 1];</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double lower = values[index - 1];</b>
    -<b class="fc">&nbsp;        final double upper = values[index];</b>
    -<b class="fc">&nbsp;        return lower + (pos - floor(pos)) * (upper - lower);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the number of values
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        return values.length;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the entire set of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the entire set of values
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long[] getValues() {
    -<b class="fc">&nbsp;        return Arrays.copyOf(values, values.length);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the highest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the highest value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getMax() {
    -<b class="pc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return values[values.length - 1];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the lowest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the lowest value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getMin() {
    -<b class="pc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return values[0];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the arithmetic mean of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the arithmetic mean
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getMean() {
    -<b class="pc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        double sum = 0;</b>
    -<b class="pc">&nbsp;        for (long value : values) {</b>
    -<b class="fc">&nbsp;            sum += value;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return sum / values.length;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the standard deviation of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the standard deviation value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getStdDev() {
    -&nbsp;        // two-pass algorithm for variance, avoids numeric overflow
    -&nbsp;
    -<b class="pc">&nbsp;        if (values.length &lt;= 1) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double mean = getMean();</b>
    -<b class="fc">&nbsp;        double sum = 0;</b>
    -&nbsp;
    -<b class="pc">&nbsp;        for (long value : values) {</b>
    -<b class="fc">&nbsp;            final double diff = value - mean;</b>
    -<b class="fc">&nbsp;            sum += diff * diff;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double variance = sum / (values.length - 1);</b>
    -<b class="fc">&nbsp;        return Math.sqrt(variance);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Writes the values of the snapshot to the given stream.
    -&nbsp;     *
    -&nbsp;     * @param output an output stream
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void dump(OutputStream output) {
    -<b class="fc">&nbsp;        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {</b>
    -<b class="pc">&nbsp;            for (long value : values) {</b>
    -<b class="fc">&nbsp;                out.printf(&quot;%d%n&quot;, value);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-27.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-27.html
    deleted file mode 100644
    index 33ae618ca7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-27.html
    +++ /dev/null
    @@ -1,345 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > WeightedSnapshot</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">WeightedSnapshot</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (51/54)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">WeightedSnapshot$WeightedSample</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (55/58)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.Comparator;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A statistical snapshot of a {@link WeightedSnapshot}.
    -&nbsp; */
    -&nbsp;public class WeightedSnapshot extends Snapshot {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A single sample item with value and its weights for {@link WeightedSnapshot}.
    -&nbsp;     */
    -&nbsp;    public static class WeightedSample {
    -&nbsp;        public final long value;
    -&nbsp;        public final double weight;
    -&nbsp;
    -<b class="fc">&nbsp;        public WeightedSample(long value, double weight) {</b>
    -<b class="fc">&nbsp;            this.value = value;</b>
    -<b class="fc">&nbsp;            this.weight = weight;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final long[] values;
    -&nbsp;    private final double[] normWeights;
    -&nbsp;    private final double[] quantiles;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new {@link Snapshot} with the given values.
    -&nbsp;     *
    -&nbsp;     * @param values an unordered set of values in the reservoir
    -&nbsp;     */
    -<b class="fc">&nbsp;    public WeightedSnapshot(Collection&lt;WeightedSample&gt; values) {</b>
    -<b class="fc">&nbsp;        final WeightedSample[] copy = values.toArray(new WeightedSample[]{});</b>
    -&nbsp;
    -<b class="fc">&nbsp;        Arrays.sort(copy, Comparator.comparingLong(w -&gt; w.value));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.values = new long[copy.length];</b>
    -<b class="fc">&nbsp;        this.normWeights = new double[copy.length];</b>
    -<b class="fc">&nbsp;        this.quantiles = new double[copy.length];</b>
    -&nbsp;
    -<b class="fc">&nbsp;        double sumWeight = 0;</b>
    -<b class="pc">&nbsp;        for (WeightedSample sample : copy) {</b>
    -<b class="fc">&nbsp;            sumWeight += sample.weight;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        for (int i = 0; i &lt; copy.length; i++) {</b>
    -<b class="fc">&nbsp;            this.values[i] = copy[i].value;</b>
    -<b class="pc">&nbsp;            this.normWeights[i] = sumWeight != 0 ? copy[i].weight / sumWeight : 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        for (int i = 1; i &lt; copy.length; i++) {</b>
    -<b class="fc">&nbsp;            this.quantiles[i] = this.quantiles[i - 1] + this.normWeights[i - 1];</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the given quantile.
    -&nbsp;     *
    -&nbsp;     * @param quantile a given quantile, in {@code [0..1]}
    -&nbsp;     * @return the value in the distribution at {@code quantile}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getValue(double quantile) {
    -<b class="pc">&nbsp;        if (quantile &lt; 0.0 || quantile &gt; 1.0 || Double.isNaN(quantile)) {</b>
    -<b class="fc">&nbsp;            throw new IllegalArgumentException(quantile + &quot; is not in [0..1]&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0.0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        int posx = Arrays.binarySearch(quantiles, quantile);</b>
    -<b class="pc">&nbsp;        if (posx &lt; 0)</b>
    -<b class="fc">&nbsp;            posx = ((-posx) - 1) - 1;</b>
    -&nbsp;
    -<b class="pc">&nbsp;        if (posx &lt; 1) {</b>
    -<b class="fc">&nbsp;            return values[0];</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        if (posx &gt;= values.length) {</b>
    -<b class="nc">&nbsp;            return values[values.length - 1];</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        return values[posx];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the number of values
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        return values.length;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the entire set of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the entire set of values
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long[] getValues() {
    -<b class="fc">&nbsp;        return Arrays.copyOf(values, values.length);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the highest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the highest value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getMax() {
    -<b class="pc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return values[values.length - 1];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the lowest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the lowest value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getMin() {
    -<b class="pc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return values[0];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the weighted arithmetic mean of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the weighted arithmetic mean
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getMean() {
    -<b class="pc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        double sum = 0;</b>
    -<b class="pc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    -<b class="fc">&nbsp;            sum += values[i] * normWeights[i];</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return sum;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the weighted standard deviation of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the weighted standard deviation value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getStdDev() {
    -&nbsp;        // two-pass algorithm for variance, avoids numeric overflow
    -&nbsp;
    -<b class="pc">&nbsp;        if (values.length &lt;= 1) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double mean = getMean();</b>
    -<b class="fc">&nbsp;        double variance = 0;</b>
    -&nbsp;
    -<b class="pc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    -<b class="fc">&nbsp;            final double diff = values[i] - mean;</b>
    -<b class="fc">&nbsp;            variance += normWeights[i] * diff * diff;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        return Math.sqrt(variance);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Writes the values of the snapshot to the given stream.
    -&nbsp;     *
    -&nbsp;     * @param output an output stream
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void dump(OutputStream output) {
    -<b class="fc">&nbsp;        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {</b>
    -<b class="pc">&nbsp;            for (long value : values) {</b>
    -<b class="fc">&nbsp;                out.printf(&quot;%d%n&quot;, value);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-28.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-28.html
    deleted file mode 100644
    index 44cee0b3ae..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-28.html
    +++ /dev/null
    @@ -1,85 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricSet (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricSet</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of named metrics.
    -&nbsp; *
    -&nbsp; * @see MetricRegistry#registerAll(MetricSet)
    -&nbsp; */
    -&nbsp;public interface MetricSet extends Metric {
    -&nbsp;    /**
    -&nbsp;     * A map of metric names to metrics.
    -&nbsp;     *
    -&nbsp;     * @return the metrics
    -&nbsp;     */
    -&nbsp;    Map&lt;String, Metric&gt; getMetrics();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-29.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-29.html
    deleted file mode 100644
    index f733f9e9d0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-29.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metered</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Metered (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Metered</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An object which maintains mean and moving average rates.
    -&nbsp; */
    -&nbsp;public interface Metered extends Metric, Counting {
    -&nbsp;    /**
    -&nbsp;     * Returns the number of events which have been marked.
    -&nbsp;     *
    -&nbsp;     * @return the number of events which have been marked
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    long getCount();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the fifteen-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the fifteen-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getFifteenMinuteRate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the five-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the five-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getFiveMinuteRate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the mean rate at which events have occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the mean rate at which events have occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getMeanRate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the one-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the one-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getOneMinuteRate();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2a.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2a.html
    deleted file mode 100644
    index 9ee18ac0de..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2a.html
    +++ /dev/null
    @@ -1,89 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CsvFileProvider</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CsvFileProvider (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">CsvFileProvider$MockitoMock$MWmzLYei</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CsvFileProvider$MockitoMock$MWmzLYei$auxiliary$ehSg8rMB</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CsvFileProvider$MockitoMock$MWmzLYei$auxiliary$risk2MOH</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.File;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * This interface allows a pluggable implementation of what file names
    -&nbsp; * the {@link CsvReporter} will write to.
    -&nbsp; */
    -&nbsp;public interface CsvFileProvider {
    -&nbsp;
    -&nbsp;    File getFile(File directory, String metricName);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2b.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2b.html
    deleted file mode 100644
    index a2876cacc6..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2b.html
    +++ /dev/null
    @@ -1,82 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SettableGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SettableGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">SettableGauge</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
    -&nbsp; * See {@link DefaultSettableGauge}.
    -&nbsp; * &lt;/p&gt;
    -&nbsp; */
    -&nbsp;public interface SettableGauge&lt;T&gt; extends Gauge&lt;T&gt; {
    -&nbsp;    /**
    -&nbsp;     * Set the metric to a new value.
    -&nbsp;     */
    -&nbsp;    void setValue(T value);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2c.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2c.html
    deleted file mode 100644
    index 0e4cae4c3d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2c.html
    +++ /dev/null
    @@ -1,81 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Sampling</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Sampling (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Sampling</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An object which samples values.
    -&nbsp; */
    -&nbsp;public interface Sampling {
    -&nbsp;    /**
    -&nbsp;     * Returns a snapshot of the values.
    -&nbsp;     *
    -&nbsp;     * @return a snapshot of the values
    -&nbsp;     */
    -&nbsp;    Snapshot getSnapshot();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2d.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2d.html
    deleted file mode 100644
    index debafd3c86..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2d.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MovingAverages</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MovingAverages (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">MovingAverages</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A triple of moving averages (one-, five-, and fifteen-minute
    -&nbsp; * moving average) as needed by {@link Meter}.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Included implementations are:
    -&nbsp; * &lt;ul&gt;
    -&nbsp; * &lt;li&gt;{@link ExponentialMovingAverages} exponential decaying average similar to the {@code top} Unix command.
    -&nbsp; * &lt;li&gt;{@link SlidingTimeWindowMovingAverages} simple (unweighted) moving average
    -&nbsp; * &lt;/ul&gt;
    -&nbsp; */
    -&nbsp;public interface MovingAverages {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Tick the internal clock of the MovingAverages implementation if needed
    -&nbsp;     * (according to the internal ticking interval)
    -&nbsp;     */
    -&nbsp;    void tickIfNecessary();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Update all three moving averages with n events having occurred since the last update.
    -&nbsp;     *
    -&nbsp;     * @param n
    -&nbsp;     */
    -&nbsp;    void update(long n);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the one-minute moving average rate
    -&nbsp;     *
    -&nbsp;     * @return the one-minute moving average rate
    -&nbsp;     */
    -&nbsp;    double getM1Rate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the five-minute moving average rate
    -&nbsp;     *
    -&nbsp;     * @return the five-minute moving average rate
    -&nbsp;     */
    -&nbsp;    double getM5Rate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the fifteen-minute moving average rate
    -&nbsp;     *
    -&nbsp;     * @return the fifteen-minute moving average rate
    -&nbsp;     */
    -&nbsp;    double getM15Rate();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2e.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2e.html
    deleted file mode 100644
    index 5e99d94d82..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2e.html
    +++ /dev/null
    @@ -1,104 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Reservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Reservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">Reservoir$MockitoMock$Xat00O0m</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Reservoir$MockitoMock$Xat00O0m$auxiliary$gyX0mddj</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Reservoir$MockitoMock$Xat00O0m$auxiliary$tkDMhoo8</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A statistically representative reservoir of a data stream.
    -&nbsp; */
    -&nbsp;public interface Reservoir {
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values recorded.
    -&nbsp;     *
    -&nbsp;     * @return the number of values recorded
    -&nbsp;     */
    -&nbsp;    int size();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a new recorded value to the reservoir.
    -&nbsp;     *
    -&nbsp;     * @param value a new recorded value
    -&nbsp;     */
    -&nbsp;    void update(long value);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a snapshot of the reservoir&#39;s values.
    -&nbsp;     *
    -&nbsp;     * @return a snapshot of the reservoir&#39;s values
    -&nbsp;     */
    -&nbsp;    Snapshot getSnapshot();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2f.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2f.html
    deleted file mode 100644
    index 30d26568ea..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-2f.html
    +++ /dev/null
    @@ -1,85 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metric</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Metric (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">Metric$MockitoMock$dZBiHsat</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Metric$MockitoMock$dZBiHsat$auxiliary$0tPOIYMW</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Metric$MockitoMock$dZBiHsat$auxiliary$G2h14riK</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A tag interface to indicate that a class is a metric.
    -&nbsp; */
    -&nbsp;public interface Metric {
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-3.html
    deleted file mode 100644
    index e2bbedc66b..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-3.html
    +++ /dev/null
    @@ -1,231 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Clock</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Clock (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Clock</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$3DDItCNt</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$3DDItCNt$auxiliary$aKMvv3Z3</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$3DDItCNt$auxiliary$Ef7MSYlh</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$5GGVOxxm</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$5GGVOxxm$auxiliary$C1RbGPuA</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$5GGVOxxm$auxiliary$QNg7USyl</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$7oOqxfOc</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$7oOqxfOc$auxiliary$0DestJlY</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$7oOqxfOc$auxiliary$Y8I7ouOC</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$P9YUk269</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$P9YUk269$auxiliary$rwa1mito</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$P9YUk269$auxiliary$u5yThMoW</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$UserTimeClock</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$UserTimeClockHolder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An abstraction for how time passes. It is passed to {@link Timer} to track timing.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class Clock {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns the current time tick.
    -&nbsp;     *
    -&nbsp;     * @return time tick in nanoseconds
    -&nbsp;     */
    -&nbsp;    public abstract long getTick();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the current time in milliseconds.
    -&nbsp;     *
    -&nbsp;     * @return time in milliseconds
    -&nbsp;     */
    -&nbsp;    public long getTime() {
    -<b class="fc">&nbsp;        return System.currentTimeMillis();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * The default clock to use.
    -&nbsp;     *
    -&nbsp;     * @return the default {@link Clock} instance
    -&nbsp;     * @see Clock.UserTimeClock
    -&nbsp;     */
    -&nbsp;    public static Clock defaultClock() {
    -<b class="fc">&nbsp;        return UserTimeClockHolder.DEFAULT;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A clock implementation which returns the current time in epoch nanoseconds.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class UserTimeClock extends Clock {</b>
    -&nbsp;        @Override
    -&nbsp;        public long getTick() {
    -<b class="fc">&nbsp;            return System.nanoTime();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class UserTimeClockHolder {
    -<b class="fc">&nbsp;        private static final Clock DEFAULT = new UserTimeClock();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-30.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-30.html
    deleted file mode 100644
    index d73b6f3954..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-30.html
    +++ /dev/null
    @@ -1,78 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Reporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Reporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Reporter</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.Closeable;
    -&nbsp;
    -&nbsp;/*
    -&nbsp; * A tag interface to indicate that a class is a Reporter.
    -&nbsp; */
    -&nbsp;public interface Reporter extends Closeable {
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-31.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-31.html
    deleted file mode 100644
    index 0f6839b6bc..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-31.html
    +++ /dev/null
    @@ -1,103 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Gauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Gauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">Gauge$MockitoMock$tAyrEU4k</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Gauge$MockitoMock$tAyrEU4k$auxiliary$a6SOc20Q</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Gauge$MockitoMock$tAyrEU4k$auxiliary$Kz9ao93C</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A gauge metric is an instantaneous reading of a particular value. To instrument a queue&#39;s depth,
    -&nbsp; * for example:&lt;br&gt;
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; * final Queue&amp;lt;String&amp;gt; queue = new ConcurrentLinkedQueue&amp;lt;String&amp;gt;();
    -&nbsp; * final Gauge&amp;lt;Integer&amp;gt; queueDepth = new Gauge&amp;lt;Integer&amp;gt;() {
    -&nbsp; *     public Integer getValue() {
    -&nbsp; *         return queue.size();
    -&nbsp; *     }
    -&nbsp; * };
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; *
    -&nbsp; * @param &lt;T&gt; the type of the metric&#39;s value
    -&nbsp; */
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface Gauge&lt;T&gt; extends Metric {
    -&nbsp;    /**
    -&nbsp;     * Returns the metric&#39;s current value.
    -&nbsp;     *
    -&nbsp;     * @return the metric&#39;s current value
    -&nbsp;     */
    -&nbsp;    T getValue();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-32.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-32.html
    deleted file mode 100644
    index 65f26bd97e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-32.html
    +++ /dev/null
    @@ -1,81 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Counting</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Counting (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Counting</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An interface for metric types which have counts.
    -&nbsp; */
    -&nbsp;public interface Counting {
    -&nbsp;    /**
    -&nbsp;     * Returns the current count.
    -&nbsp;     *
    -&nbsp;     * @return the current count
    -&nbsp;     */
    -&nbsp;    long getCount();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-4.html
    deleted file mode 100644
    index 8f971fa7fc..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-4.html
    +++ /dev/null
    @@ -1,510 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ConsoleReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ConsoleReporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ConsoleReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (90/100)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">ConsoleReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ConsoleReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (120/135)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.PrintStream;
    -&nbsp;import java.text.DateFormat;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Date;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.TimeZone;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which outputs measurements to a {@link PrintStream}, like {@code System.out}.
    -&nbsp; */
    -<b class="fc">&nbsp;public class ConsoleReporter extends ScheduledReporter {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link ConsoleReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link ConsoleReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link ConsoleReporter} instances. Defaults to using the default locale and
    -&nbsp;     * time zone, writing to {@code System.out}, converting rates to events/second, converting
    -&nbsp;     * durations to milliseconds, and not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private PrintStream output;
    -&nbsp;        private Locale locale;
    -&nbsp;        private Clock clock;
    -&nbsp;        private TimeZone timeZone;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private MetricFilter filter;
    -&nbsp;        private ScheduledExecutorService executor;
    -&nbsp;        private boolean shutdownExecutorOnStop;
    -&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.output = System.out;</b>
    -<b class="fc">&nbsp;            this.locale = Locale.getDefault();</b>
    -<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    -<b class="fc">&nbsp;            this.timeZone = TimeZone.getDefault();</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;            this.executor = null;</b>
    -<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;            disabledMetricAttributes = Collections.emptySet();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -&nbsp;         * Default value is true.
    -&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -&nbsp;         *
    -&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    -&nbsp;         * Default value is null.
    -&nbsp;         * Null value leads to executor will be auto created on start.
    -&nbsp;         *
    -&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Write to the given {@link PrintStream}.
    -&nbsp;         *
    -&nbsp;         * @param output a {@link PrintStream} instance.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder outputTo(PrintStream output) {
    -<b class="fc">&nbsp;            this.output = output;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Format numbers for the given {@link Locale}.
    -&nbsp;         *
    -&nbsp;         * @param locale a {@link Locale}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder formattedFor(Locale locale) {
    -<b class="fc">&nbsp;            this.locale = locale;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given {@link Clock} instance for the time.
    -&nbsp;         *
    -&nbsp;         * @param clock a {@link Clock} instance
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withClock(Clock clock) {
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given {@link TimeZone} for the time.
    -&nbsp;         *
    -&nbsp;         * @param timeZone a {@link TimeZone}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder formattedFor(TimeZone timeZone) {
    -<b class="fc">&nbsp;            this.timeZone = timeZone;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    -&nbsp;         * See {@link MetricAttribute}.
    -&nbsp;         *
    -&nbsp;         * @param disabledMetricAttributes a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link ConsoleReporter} with the given properties.
    -&nbsp;         *
    -&nbsp;         * @return a {@link ConsoleReporter}
    -&nbsp;         */
    -&nbsp;        public ConsoleReporter build() {
    -<b class="fc">&nbsp;            return new ConsoleReporter(registry,</b>
    -&nbsp;                    output,
    -&nbsp;                    locale,
    -&nbsp;                    clock,
    -&nbsp;                    timeZone,
    -&nbsp;                    rateUnit,
    -&nbsp;                    durationUnit,
    -&nbsp;                    filter,
    -&nbsp;                    executor,
    -&nbsp;                    shutdownExecutorOnStop,
    -&nbsp;                    disabledMetricAttributes);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static final int CONSOLE_WIDTH = 80;
    -&nbsp;
    -&nbsp;    private final PrintStream output;
    -&nbsp;    private final Locale locale;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final DateFormat dateFormat;
    -&nbsp;
    -&nbsp;    private ConsoleReporter(MetricRegistry registry,
    -&nbsp;                            PrintStream output,
    -&nbsp;                            Locale locale,
    -&nbsp;                            Clock clock,
    -&nbsp;                            TimeZone timeZone,
    -&nbsp;                            TimeUnit rateUnit,
    -&nbsp;                            TimeUnit durationUnit,
    -&nbsp;                            MetricFilter filter,
    -&nbsp;                            ScheduledExecutorService executor,
    -&nbsp;                            boolean shutdownExecutorOnStop,
    -&nbsp;                            Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;        super(registry, &quot;console-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, disabledMetricAttributes);</b>
    -<b class="fc">&nbsp;        this.output = output;</b>
    -<b class="fc">&nbsp;        this.locale = locale;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT,</b>
    -&nbsp;                DateFormat.MEDIUM,
    -&nbsp;                locale);
    -<b class="fc">&nbsp;        dateFormat.setTimeZone(timeZone);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        final String dateTime = dateFormat.format(new Date(clock.getTime()));</b>
    -<b class="fc">&nbsp;        printWithBanner(dateTime, &#39;=&#39;);</b>
    -<b class="fc">&nbsp;        output.println();</b>
    -&nbsp;
    -<b class="pc">&nbsp;        if (!gauges.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Gauges&quot;, &#39;-&#39;);</b>
    -<b class="pc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printGauge(entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        if (!counters.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Counters&quot;, &#39;-&#39;);</b>
    -<b class="pc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printCounter(entry);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        if (!histograms.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Histograms&quot;, &#39;-&#39;);</b>
    -<b class="pc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printHistogram(entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        if (!meters.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Meters&quot;, &#39;-&#39;);</b>
    -<b class="pc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printMeter(entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="pc">&nbsp;        if (!timers.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Timers&quot;, &#39;-&#39;);</b>
    -<b class="pc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printTimer(entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        output.println();</b>
    -<b class="fc">&nbsp;        output.flush();</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void printMeter(Meter meter) {
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, meter.getCount()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, &quot;         mean rate = %2.2f events/%s&quot;, convertRate(meter.getMeanRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, &quot;     1-minute rate = %2.2f events/%s&quot;, convertRate(meter.getOneMinuteRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, &quot;     5-minute rate = %2.2f events/%s&quot;, convertRate(meter.getFiveMinuteRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, &quot;    15-minute rate = %2.2f events/%s&quot;, convertRate(meter.getFifteenMinuteRate()), getRateUnit()));</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void printCounter(Map.Entry&lt;String, Counter&gt; entry) {
    -<b class="fc">&nbsp;        output.printf(locale, &quot;             count = %d%n&quot;, entry.getValue().getCount());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void printGauge(Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;        output.printf(locale, &quot;             value = %s%n&quot;, gauge.getValue());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void printHistogram(Histogram histogram) {
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, histogram.getCount()));</b>
    -<b class="fc">&nbsp;        Snapshot snapshot = histogram.getSnapshot();</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MIN, String.format(locale, &quot;               min = %d&quot;, snapshot.getMin()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MAX, String.format(locale, &quot;               max = %d&quot;, snapshot.getMax()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN, String.format(locale, &quot;              mean = %2.2f&quot;, snapshot.getMean()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.STDDEV, String.format(locale, &quot;            stddev = %2.2f&quot;, snapshot.getStdDev()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P50, String.format(locale, &quot;            median = %2.2f&quot;, snapshot.getMedian()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P75, String.format(locale, &quot;              75%% &lt;= %2.2f&quot;, snapshot.get75thPercentile()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P95, String.format(locale, &quot;              95%% &lt;= %2.2f&quot;, snapshot.get95thPercentile()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P98, String.format(locale, &quot;              98%% &lt;= %2.2f&quot;, snapshot.get98thPercentile()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P99, String.format(locale, &quot;              99%% &lt;= %2.2f&quot;, snapshot.get99thPercentile()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P999, String.format(locale, &quot;            99.9%% &lt;= %2.2f&quot;, snapshot.get999thPercentile()));</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void printTimer(Timer timer) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, timer.getCount()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, &quot;         mean rate = %2.2f calls/%s&quot;, convertRate(timer.getMeanRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, &quot;     1-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getOneMinuteRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, &quot;     5-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getFiveMinuteRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, &quot;    15-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getFifteenMinuteRate()), getRateUnit()));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MIN, String.format(locale, &quot;               min = %2.2f %s&quot;, convertDuration(snapshot.getMin()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MAX, String.format(locale, &quot;               max = %2.2f %s&quot;, convertDuration(snapshot.getMax()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN, String.format(locale, &quot;              mean = %2.2f %s&quot;, convertDuration(snapshot.getMean()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.STDDEV, String.format(locale, &quot;            stddev = %2.2f %s&quot;, convertDuration(snapshot.getStdDev()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P50, String.format(locale, &quot;            median = %2.2f %s&quot;, convertDuration(snapshot.getMedian()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P75, String.format(locale, &quot;              75%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get75thPercentile()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P95, String.format(locale, &quot;              95%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get95thPercentile()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P98, String.format(locale, &quot;              98%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get98thPercentile()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P99, String.format(locale, &quot;              99%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get99thPercentile()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P999, String.format(locale, &quot;            99.9%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get999thPercentile()), getDurationUnit()));</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void printWithBanner(String s, char c) {
    -<b class="fc">&nbsp;        output.print(s);</b>
    -<b class="fc">&nbsp;        output.print(&#39; &#39;);</b>
    -<b class="pc">&nbsp;        for (int i = 0; i &lt; (CONSOLE_WIDTH - s.length() - 1); i++) {</b>
    -<b class="fc">&nbsp;            output.print(c);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        output.println();</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Print only if the attribute is enabled
    -&nbsp;     *
    -&nbsp;     * @param type   Metric attribute
    -&nbsp;     * @param status Status to be logged
    -&nbsp;     */
    -&nbsp;    private void printIfEnabled(MetricAttribute type, String status) {
    -<b class="pc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    -<b class="nc">&nbsp;            return;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        output.println(status);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-5.html
    deleted file mode 100644
    index c7720a18d8..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-5.html
    +++ /dev/null
    @@ -1,160 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Counter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Counter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Counter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (9/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An incrementing and decrementing counter metric.
    -&nbsp; */
    -&nbsp;public class Counter implements Metric, Counting {
    -&nbsp;    private final LongAdder count;
    -&nbsp;
    -<b class="fc">&nbsp;    public Counter() {</b>
    -<b class="fc">&nbsp;        this.count = new LongAdder();</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Increment the counter by one.
    -&nbsp;     */
    -&nbsp;    public void inc() {
    -<b class="fc">&nbsp;        inc(1);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Increment the counter by {@code n}.
    -&nbsp;     *
    -&nbsp;     * @param n the amount by which the counter will be increased
    -&nbsp;     */
    -&nbsp;    public void inc(long n) {
    -<b class="fc">&nbsp;        count.add(n);</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Decrement the counter by one.
    -&nbsp;     */
    -&nbsp;    public void dec() {
    -<b class="fc">&nbsp;        dec(1);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Decrement the counter by {@code n}.
    -&nbsp;     *
    -&nbsp;     * @param n the amount by which the counter will be decreased
    -&nbsp;     */
    -&nbsp;    public void dec(long n) {
    -<b class="fc">&nbsp;        count.add(-n);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the counter&#39;s current value.
    -&nbsp;     *
    -&nbsp;     * @return the counter&#39;s current value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getCount() {
    -<b class="fc">&nbsp;        return count.sum();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-6.html
    deleted file mode 100644
    index 822d1403e4..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-6.html
    +++ /dev/null
    @@ -1,497 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CsvReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CsvReporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CsvReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88%
    -  </span>
    -  <span class="absValue">
    -    (81/92)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">CsvReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CsvReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (10/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.4%
    -  </span>
    -  <span class="absValue">
    -    (27/32)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.1%
    -  </span>
    -  <span class="absValue">
    -    (108/124)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.io.File;
    -&nbsp;import java.io.FileOutputStream;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which creates a comma-separated values file of the measurements for each metric.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CsvReporter extends ScheduledReporter {</b>
    -&nbsp;    private static final String DEFAULT_SEPARATOR = &quot;,&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link CsvReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link CsvReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link CsvReporter} instances. Defaults to using the default locale, converting
    -&nbsp;     * rates to events/second, converting durations to milliseconds, and not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private Locale locale;
    -&nbsp;        private String separator;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private Clock clock;
    -&nbsp;        private MetricFilter filter;
    -&nbsp;        private ScheduledExecutorService executor;
    -&nbsp;        private boolean shutdownExecutorOnStop;
    -&nbsp;        private CsvFileProvider csvFileProvider;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.locale = Locale.getDefault();</b>
    -<b class="fc">&nbsp;            this.separator = DEFAULT_SEPARATOR;</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    -<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;            this.executor = null;</b>
    -<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;            this.csvFileProvider = new FixedNameCsvFileProvider();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -&nbsp;         * Default value is true.
    -&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -&nbsp;         *
    -&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    -&nbsp;         * Default value is null.
    -&nbsp;         * Null value leads to executor will be auto created on start.
    -&nbsp;         *
    -&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Format numbers for the given {@link Locale}.
    -&nbsp;         *
    -&nbsp;         * @param locale a {@link Locale}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder formatFor(Locale locale) {
    -<b class="fc">&nbsp;            this.locale = locale;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given string to use as the separator for values.
    -&nbsp;         *
    -&nbsp;         * @param separator the string to use for the separator.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withSeparator(String separator) {
    -<b class="fc">&nbsp;            this.separator = separator;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given {@link Clock} instance for the time.
    -&nbsp;         *
    -&nbsp;         * @param clock a {@link Clock} instance
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withClock(Clock clock) {
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withCsvFileProvider(CsvFileProvider csvFileProvider) {
    -<b class="fc">&nbsp;            this.csvFileProvider = csvFileProvider;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link CsvReporter} with the given properties, writing {@code .csv} files to the
    -&nbsp;         * given directory.
    -&nbsp;         *
    -&nbsp;         * @param directory the directory in which the {@code .csv} files will be created
    -&nbsp;         * @return a {@link CsvReporter}
    -&nbsp;         */
    -&nbsp;        public CsvReporter build(File directory) {
    -<b class="fc">&nbsp;            return new CsvReporter(registry,</b>
    -&nbsp;                    directory,
    -&nbsp;                    locale,
    -&nbsp;                    separator,
    -&nbsp;                    rateUnit,
    -&nbsp;                    durationUnit,
    -&nbsp;                    clock,
    -&nbsp;                    filter,
    -&nbsp;                    executor,
    -&nbsp;                    shutdownExecutorOnStop,
    -&nbsp;                    csvFileProvider);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(CsvReporter.class);</b>
    -&nbsp;
    -&nbsp;    private final File directory;
    -&nbsp;    private final Locale locale;
    -&nbsp;    private final String separator;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final CsvFileProvider csvFileProvider;
    -&nbsp;
    -&nbsp;    private final String histogramFormat;
    -&nbsp;    private final String meterFormat;
    -&nbsp;    private final String timerFormat;
    -&nbsp;
    -&nbsp;    private final String timerHeader;
    -&nbsp;    private final String meterHeader;
    -&nbsp;    private final String histogramHeader;
    -&nbsp;
    -&nbsp;    private CsvReporter(MetricRegistry registry,
    -&nbsp;                        File directory,
    -&nbsp;                        Locale locale,
    -&nbsp;                        String separator,
    -&nbsp;                        TimeUnit rateUnit,
    -&nbsp;                        TimeUnit durationUnit,
    -&nbsp;                        Clock clock,
    -&nbsp;                        MetricFilter filter,
    -&nbsp;                        ScheduledExecutorService executor,
    -&nbsp;                        boolean shutdownExecutorOnStop,
    -&nbsp;                        CsvFileProvider csvFileProvider) {
    -<b class="fc">&nbsp;        super(registry, &quot;csv-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop);</b>
    -<b class="fc">&nbsp;        this.directory = directory;</b>
    -<b class="fc">&nbsp;        this.locale = locale;</b>
    -<b class="fc">&nbsp;        this.separator = separator;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.csvFileProvider = csvFileProvider;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.histogramFormat = String.join(separator, &quot;%d&quot;, &quot;%d&quot;, &quot;%f&quot;, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;);</b>
    -<b class="fc">&nbsp;        this.meterFormat = String.join(separator, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;events/%s&quot;);</b>
    -<b class="fc">&nbsp;        this.timerFormat = String.join(separator, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;calls/%s&quot;, &quot;%s&quot;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.timerHeader = String.join(separator, &quot;count&quot;, &quot;max&quot;, &quot;mean&quot;, &quot;min&quot;, &quot;stddev&quot;, &quot;p50&quot;, &quot;p75&quot;, &quot;p95&quot;, &quot;p98&quot;, &quot;p99&quot;, &quot;p999&quot;, &quot;mean_rate&quot;, &quot;m1_rate&quot;, &quot;m5_rate&quot;, &quot;m15_rate&quot;, &quot;rate_unit&quot;, &quot;duration_unit&quot;);</b>
    -<b class="fc">&nbsp;        this.meterHeader = String.join(separator, &quot;count&quot;, &quot;mean_rate&quot;, &quot;m1_rate&quot;, &quot;m5_rate&quot;, &quot;m15_rate&quot;, &quot;rate_unit&quot;);</b>
    -<b class="fc">&nbsp;        this.histogramHeader = String.join(separator, &quot;count&quot;, &quot;max&quot;, &quot;mean&quot;, &quot;min&quot;, &quot;stddev&quot;, &quot;p50&quot;, &quot;p75&quot;, &quot;p95&quot;, &quot;p98&quot;, &quot;p99&quot;, &quot;p999&quot;);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        final long timestamp = TimeUnit.MILLISECONDS.toSeconds(clock.getTime());</b>
    -&nbsp;
    -<b class="pc">&nbsp;        for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportGauge(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="pc">&nbsp;        for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportCounter(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="pc">&nbsp;        for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportHistogram(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="pc">&nbsp;        for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportMeter(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="pc">&nbsp;        for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportTimer(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void reportTimer(long timestamp, String name, Timer timer) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        report(timestamp,</b>
    -&nbsp;                name,
    -&nbsp;                timerHeader,
    -&nbsp;                timerFormat,
    -<b class="fc">&nbsp;                timer.getCount(),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getMax()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getMean()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getMin()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getStdDev()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getMedian()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get75thPercentile()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get95thPercentile()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get98thPercentile()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get99thPercentile()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get999thPercentile()),</b>
    -<b class="fc">&nbsp;                convertRate(timer.getMeanRate()),</b>
    -<b class="fc">&nbsp;                convertRate(timer.getOneMinuteRate()),</b>
    -<b class="fc">&nbsp;                convertRate(timer.getFiveMinuteRate()),</b>
    -<b class="fc">&nbsp;                convertRate(timer.getFifteenMinuteRate()),</b>
    -<b class="fc">&nbsp;                getRateUnit(),</b>
    -<b class="fc">&nbsp;                getDurationUnit());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void reportMeter(long timestamp, String name, Meter meter) {
    -<b class="fc">&nbsp;        report(timestamp,</b>
    -&nbsp;                name,
    -&nbsp;                meterHeader,
    -&nbsp;                meterFormat,
    -<b class="fc">&nbsp;                meter.getCount(),</b>
    -<b class="fc">&nbsp;                convertRate(meter.getMeanRate()),</b>
    -<b class="fc">&nbsp;                convertRate(meter.getOneMinuteRate()),</b>
    -<b class="fc">&nbsp;                convertRate(meter.getFiveMinuteRate()),</b>
    -<b class="fc">&nbsp;                convertRate(meter.getFifteenMinuteRate()),</b>
    -<b class="fc">&nbsp;                getRateUnit());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void reportHistogram(long timestamp, String name, Histogram histogram) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        report(timestamp,</b>
    -&nbsp;                name,
    -&nbsp;                histogramHeader,
    -&nbsp;                histogramFormat,
    -<b class="fc">&nbsp;                histogram.getCount(),</b>
    -<b class="fc">&nbsp;                snapshot.getMax(),</b>
    -<b class="fc">&nbsp;                snapshot.getMean(),</b>
    -<b class="fc">&nbsp;                snapshot.getMin(),</b>
    -<b class="fc">&nbsp;                snapshot.getStdDev(),</b>
    -<b class="fc">&nbsp;                snapshot.getMedian(),</b>
    -<b class="fc">&nbsp;                snapshot.get75thPercentile(),</b>
    -<b class="fc">&nbsp;                snapshot.get95thPercentile(),</b>
    -<b class="fc">&nbsp;                snapshot.get98thPercentile(),</b>
    -<b class="fc">&nbsp;                snapshot.get99thPercentile(),</b>
    -<b class="fc">&nbsp;                snapshot.get999thPercentile());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void reportCounter(long timestamp, String name, Counter counter) {
    -<b class="fc">&nbsp;        report(timestamp, name, &quot;count&quot;, &quot;%d&quot;, counter.getCount());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void reportGauge(long timestamp, String name, Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;        report(timestamp, name, &quot;value&quot;, &quot;%s&quot;, gauge.getValue());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void report(long timestamp, String name, String header, String line, Object... values) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            final File file = csvFileProvider.getFile(directory, name);</b>
    -<b class="fc">&nbsp;            final boolean fileAlreadyExists = file.exists();</b>
    -<b class="pc">&nbsp;            if (fileAlreadyExists || file.createNewFile()) {</b>
    -<b class="fc">&nbsp;                try (PrintWriter out = new PrintWriter(new OutputStreamWriter(</b>
    -&nbsp;                        new FileOutputStream(file, true), UTF_8))) {
    -<b class="pc">&nbsp;                    if (!fileAlreadyExists) {</b>
    -<b class="fc">&nbsp;                        out.println(&quot;t&quot; + separator + header);</b>
    -&nbsp;                    }
    -<b class="fc">&nbsp;                    out.printf(locale, String.format(locale, &quot;%d&quot; + separator + &quot;%s%n&quot;, timestamp, line), values);</b>
    -<b class="fc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            LOGGER.warn(&quot;Error writing to {}&quot;, name, e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    protected String sanitize(String name) {
    -<b class="nc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-7.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-7.html
    deleted file mode 100644
    index a02f6e5d47..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-7.html
    +++ /dev/null
    @@ -1,147 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DefaultSettableGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DefaultSettableGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DefaultSettableGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
    -&nbsp; */
    -&nbsp;public class DefaultSettableGauge&lt;T&gt; implements SettableGauge&lt;T&gt; {
    -&nbsp;    private volatile T value;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create an instance with no default value.
    -&nbsp;     */
    -&nbsp;    public DefaultSettableGauge() {
    -<b class="fc">&nbsp;        this(null);</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create an instance with a default value.
    -&nbsp;     *
    -&nbsp;     * @param defaultValue default value
    -&nbsp;     */
    -<b class="fc">&nbsp;    public DefaultSettableGauge(T defaultValue) {</b>
    -<b class="fc">&nbsp;        this.value = defaultValue;</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Set the metric to a new value.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void setValue(T value) {
    -<b class="fc">&nbsp;        this.value = value;</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the current value.
    -&nbsp;     *
    -&nbsp;     * @return the current value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public T getValue() {
    -<b class="fc">&nbsp;        return value;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-8.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-8.html
    deleted file mode 100644
    index b9f65e3722..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-8.html
    +++ /dev/null
    @@ -1,137 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DerivativeGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DerivativeGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DerivativeGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A gauge whose value is derived from the value of another gauge.
    -&nbsp; *
    -&nbsp; * @param &lt;F&gt; the base gauge&#39;s value type
    -&nbsp; * @param &lt;T&gt; the derivative type
    -&nbsp; */
    -&nbsp;public abstract class DerivativeGauge&lt;F, T&gt; implements Gauge&lt;T&gt; {
    -&nbsp;    private final Gauge&lt;F&gt; base;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new derivative with the given base gauge.
    -&nbsp;     *
    -&nbsp;     * @param base the gauge from which to derive this gauge&#39;s value
    -&nbsp;     */
    -<b class="fc">&nbsp;    protected DerivativeGauge(Gauge&lt;F&gt; base) {</b>
    -<b class="fc">&nbsp;        this.base = base;</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public T getValue() {
    -<b class="fc">&nbsp;        return transform(base.getValue());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Transforms the value of the base gauge to the value of this gauge.
    -&nbsp;     *
    -&nbsp;     * @param value the value of the base gauge
    -&nbsp;     * @return this gauge&#39;s value
    -&nbsp;     */
    -&nbsp;    protected abstract T transform(F value);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-9.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-9.html
    deleted file mode 100644
    index 9c06cc46b0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-9.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > EWMA</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: EWMA (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">EWMA</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;import static java.lang.Math.exp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An exponentially-weighted moving average.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://www.teamquest.com/pdfs/whitepaper/ldavg1.pdf&quot;&gt;UNIX Load Average Part 1: How
    -&nbsp; * It Works&lt;/a&gt;
    -&nbsp; * @see &lt;a href=&quot;http://www.teamquest.com/pdfs/whitepaper/ldavg2.pdf&quot;&gt;UNIX Load Average Part 2: Not
    -&nbsp; * Your Average Average&lt;/a&gt;
    -&nbsp; * @see &lt;a href=&quot;http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average&quot;&gt;EMA&lt;/a&gt;
    -&nbsp; */
    -&nbsp;public class EWMA {
    -&nbsp;    private static final int INTERVAL = 5;
    -&nbsp;    private static final double SECONDS_PER_MINUTE = 60.0;
    -&nbsp;    private static final int ONE_MINUTE = 1;
    -&nbsp;    private static final int FIVE_MINUTES = 5;
    -&nbsp;    private static final int FIFTEEN_MINUTES = 15;
    -<b class="fc">&nbsp;    private static final double M1_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / ONE_MINUTE);</b>
    -<b class="fc">&nbsp;    private static final double M5_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIVE_MINUTES);</b>
    -<b class="fc">&nbsp;    private static final double M15_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIFTEEN_MINUTES);</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private volatile boolean initialized = false;</b>
    -<b class="fc">&nbsp;    private volatile double rate = 0.0;</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private final LongAdder uncounted = new LongAdder();</b>
    -&nbsp;    private final double alpha, interval;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new EWMA which is equivalent to the UNIX one minute load average and which expects
    -&nbsp;     * to be ticked every 5 seconds.
    -&nbsp;     *
    -&nbsp;     * @return a one-minute EWMA
    -&nbsp;     */
    -&nbsp;    public static EWMA oneMinuteEWMA() {
    -<b class="fc">&nbsp;        return new EWMA(M1_ALPHA, INTERVAL, TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new EWMA which is equivalent to the UNIX five minute load average and which expects
    -&nbsp;     * to be ticked every 5 seconds.
    -&nbsp;     *
    -&nbsp;     * @return a five-minute EWMA
    -&nbsp;     */
    -&nbsp;    public static EWMA fiveMinuteEWMA() {
    -<b class="fc">&nbsp;        return new EWMA(M5_ALPHA, INTERVAL, TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new EWMA which is equivalent to the UNIX fifteen minute load average and which
    -&nbsp;     * expects to be ticked every 5 seconds.
    -&nbsp;     *
    -&nbsp;     * @return a fifteen-minute EWMA
    -&nbsp;     */
    -&nbsp;    public static EWMA fifteenMinuteEWMA() {
    -<b class="fc">&nbsp;        return new EWMA(M15_ALPHA, INTERVAL, TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new EWMA with a specific smoothing constant.
    -&nbsp;     *
    -&nbsp;     * @param alpha        the smoothing constant
    -&nbsp;     * @param interval     the expected tick interval
    -&nbsp;     * @param intervalUnit the time unit of the tick interval
    -&nbsp;     */
    -<b class="fc">&nbsp;    public EWMA(double alpha, long interval, TimeUnit intervalUnit) {</b>
    -<b class="fc">&nbsp;        this.interval = intervalUnit.toNanos(interval);</b>
    -<b class="fc">&nbsp;        this.alpha = alpha;</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Update the moving average with a new value.
    -&nbsp;     *
    -&nbsp;     * @param n the new value
    -&nbsp;     */
    -&nbsp;    public void update(long n) {
    -<b class="fc">&nbsp;        uncounted.add(n);</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Mark the passage of time and decay the current rate accordingly.
    -&nbsp;     */
    -&nbsp;    public void tick() {
    -<b class="fc">&nbsp;        final long count = uncounted.sumThenReset();</b>
    -<b class="fc">&nbsp;        final double instantRate = count / interval;</b>
    -<b class="pc">&nbsp;        if (initialized) {</b>
    -<b class="fc">&nbsp;            final double oldRate = this.rate;</b>
    -<b class="fc">&nbsp;            rate = oldRate + (alpha * (instantRate - oldRate));</b>
    -<b class="fc">&nbsp;        } else {</b>
    -<b class="fc">&nbsp;            rate = instantRate;</b>
    -<b class="fc">&nbsp;            initialized = true;</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the rate in the given units of time.
    -&nbsp;     *
    -&nbsp;     * @param rateUnit the unit of time
    -&nbsp;     * @return the rate
    -&nbsp;     */
    -&nbsp;    public double getRate(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;        return rate * (double) rateUnit.toNanos(1);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-a.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-a.html
    deleted file mode 100644
    index f55a85b212..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-a.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ExponentialMovingAverages</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ExponentialMovingAverages (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ExponentialMovingAverages</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.7%
    -  </span>
    -  <span class="absValue">
    -    (1/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A triple (one, five and fifteen minutes) of exponentially-weighted moving average rates as needed by {@link Meter}.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * The rates have the same exponential decay factor as the fifteen-minute load average in the
    -&nbsp; * {@code top} Unix command.
    -&nbsp; */
    -&nbsp;public class ExponentialMovingAverages implements MovingAverages {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(5);</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private final EWMA m1Rate = EWMA.oneMinuteEWMA();</b>
    -<b class="fc">&nbsp;    private final EWMA m5Rate = EWMA.fiveMinuteEWMA();</b>
    -<b class="fc">&nbsp;    private final EWMA m15Rate = EWMA.fifteenMinuteEWMA();</b>
    -&nbsp;
    -&nbsp;    private final AtomicLong lastTick;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentialMovingAverages}.
    -&nbsp;     */
    -&nbsp;    public ExponentialMovingAverages() {
    -<b class="nc">&nbsp;        this(Clock.defaultClock());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentialMovingAverages}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public ExponentialMovingAverages(Clock clock) {</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.lastTick = new AtomicLong(this.clock.getTick());</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long n) {
    -<b class="fc">&nbsp;        m1Rate.update(n);</b>
    -<b class="fc">&nbsp;        m5Rate.update(n);</b>
    -<b class="fc">&nbsp;        m15Rate.update(n);</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void tickIfNecessary() {
    -<b class="fc">&nbsp;        final long oldTick = lastTick.get();</b>
    -<b class="fc">&nbsp;        final long newTick = clock.getTick();</b>
    -<b class="fc">&nbsp;        final long age = newTick - oldTick;</b>
    -<b class="pc">&nbsp;        if (age &gt; TICK_INTERVAL) {</b>
    -<b class="fc">&nbsp;            final long newIntervalStartTick = newTick - age % TICK_INTERVAL;</b>
    -<b class="pc">&nbsp;            if (lastTick.compareAndSet(oldTick, newIntervalStartTick)) {</b>
    -<b class="fc">&nbsp;                final long requiredTicks = age / TICK_INTERVAL;</b>
    -<b class="pc">&nbsp;                for (long i = 0; i &lt; requiredTicks; i++) {</b>
    -<b class="fc">&nbsp;                    m1Rate.tick();</b>
    -<b class="fc">&nbsp;                    m5Rate.tick();</b>
    -<b class="fc">&nbsp;                    m15Rate.tick();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM1Rate() {
    -<b class="fc">&nbsp;        return m1Rate.getRate(TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM5Rate() {
    -<b class="fc">&nbsp;        return m5Rate.getRate(TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM15Rate() {
    -<b class="fc">&nbsp;        return m15Rate.getRate(TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-b.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-b.html
    deleted file mode 100644
    index 1658ce6942..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-b.html
    +++ /dev/null
    @@ -1,323 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ExponentiallyDecayingReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ExponentiallyDecayingReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ExponentiallyDecayingReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (2/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (67/72)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.ConcurrentSkipListMap;
    -&nbsp;import java.util.concurrent.ThreadLocalRandom;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;import java.util.concurrent.locks.ReentrantReadWriteLock;
    -&nbsp;
    -&nbsp;import static java.lang.Math.exp;
    -&nbsp;import static java.lang.Math.min;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.WeightedSnapshot.WeightedSample;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al&#39;s
    -&nbsp; * forward-decaying priority reservoir sampling method to produce a statistically representative
    -&nbsp; * sampling reservoir, exponentially biased towards newer entries.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf&quot;&gt;
    -&nbsp; * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE &#39;09:
    -&nbsp; * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)&lt;/a&gt;
    -&nbsp; */
    -&nbsp;public class ExponentiallyDecayingReservoir implements Reservoir {
    -&nbsp;    private static final int DEFAULT_SIZE = 1028;
    -&nbsp;    private static final double DEFAULT_ALPHA = 0.015;
    -<b class="fc">&nbsp;    private static final long RESCALE_THRESHOLD = TimeUnit.HOURS.toNanos(1);</b>
    -&nbsp;
    -&nbsp;    private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    -&nbsp;    private final ReentrantReadWriteLock lock;
    -&nbsp;    private final double alpha;
    -&nbsp;    private final int size;
    -&nbsp;    private final AtomicLong count;
    -&nbsp;    private volatile long startTime;
    -&nbsp;    private final AtomicLong lastScaleTick;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentiallyDecayingReservoir} of 1028 elements, which offers a 99.9%
    -&nbsp;     * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
    -&nbsp;     * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
    -&nbsp;     */
    -&nbsp;    public ExponentiallyDecayingReservoir() {
    -<b class="fc">&nbsp;        this(DEFAULT_SIZE, DEFAULT_ALPHA);</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentiallyDecayingReservoir}.
    -&nbsp;     *
    -&nbsp;     * @param size  the number of samples to keep in the sampling reservoir
    -&nbsp;     * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
    -&nbsp;     *              will be towards newer values
    -&nbsp;     */
    -&nbsp;    public ExponentiallyDecayingReservoir(int size, double alpha) {
    -<b class="fc">&nbsp;        this(size, alpha, Clock.defaultClock());</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentiallyDecayingReservoir}.
    -&nbsp;     *
    -&nbsp;     * @param size  the number of samples to keep in the sampling reservoir
    -&nbsp;     * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
    -&nbsp;     *              will be towards newer values
    -&nbsp;     * @param clock the clock used to timestamp samples and track rescaling
    -&nbsp;     */
    -<b class="fc">&nbsp;    public ExponentiallyDecayingReservoir(int size, double alpha, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.values = new ConcurrentSkipListMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        this.lock = new ReentrantReadWriteLock();</b>
    -<b class="fc">&nbsp;        this.alpha = alpha;</b>
    -<b class="fc">&nbsp;        this.size = size;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.count = new AtomicLong(0);</b>
    -<b class="fc">&nbsp;        this.startTime = currentTimeInSeconds();</b>
    -<b class="fc">&nbsp;        this.lastScaleTick = new AtomicLong(clock.getTick());</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        return (int) min(size, count.get());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        update(value, currentTimeInSeconds());</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds an old value with a fixed timestamp to the reservoir.
    -&nbsp;     *
    -&nbsp;     * @param value     the value to be added
    -&nbsp;     * @param timestamp the epoch timestamp of {@code value} in seconds
    -&nbsp;     */
    -&nbsp;    public void update(long value, long timestamp) {
    -<b class="fc">&nbsp;        rescaleIfNeeded();</b>
    -<b class="fc">&nbsp;        lockForRegularUsage();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            final double itemWeight = weight(timestamp - startTime);</b>
    -<b class="fc">&nbsp;            final WeightedSample sample = new WeightedSample(value, itemWeight);</b>
    -<b class="fc">&nbsp;            final double priority = itemWeight / ThreadLocalRandom.current().nextDouble();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final long newCount = count.incrementAndGet();</b>
    -<b class="pc">&nbsp;            if (newCount &lt;= size || values.isEmpty()) {</b>
    -<b class="fc">&nbsp;                values.put(priority, sample);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                Double first = values.firstKey();</b>
    -<b class="pc">&nbsp;                if (first &lt; priority &amp;&amp; values.putIfAbsent(priority, sample) == null) {</b>
    -&nbsp;                    // ensure we always remove an item
    -<b class="pc">&nbsp;                    while (values.remove(first) == null) {</b>
    -<b class="nc">&nbsp;                        first = values.firstKey();</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            unlockForRegularUsage();</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void rescaleIfNeeded() {
    -<b class="fc">&nbsp;        final long now = clock.getTick();</b>
    -<b class="fc">&nbsp;        final long lastScaleTickSnapshot = lastScaleTick.get();</b>
    -<b class="pc">&nbsp;        if (now - lastScaleTickSnapshot &gt;= RESCALE_THRESHOLD) {</b>
    -<b class="fc">&nbsp;            rescale(now, lastScaleTickSnapshot);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        rescaleIfNeeded();</b>
    -<b class="fc">&nbsp;        lockForRegularUsage();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return new WeightedSnapshot(values.values());</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            unlockForRegularUsage();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private long currentTimeInSeconds() {
    -<b class="fc">&nbsp;        return TimeUnit.MILLISECONDS.toSeconds(clock.getTime());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private double weight(long t) {
    -<b class="fc">&nbsp;        return exp(alpha * t);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* &quot;A common feature of the above techniques—indeed, the key technique that
    -&nbsp;     * allows us to track the decayed weights efficiently—is that they maintain
    -&nbsp;     * counts and other quantities based on g(ti ? L), and only scale by g(t ? L)
    -&nbsp;     * at query time. But while g(ti ?L)/g(t?L) is guaranteed to lie between zero
    -&nbsp;     * and one, the intermediate values of g(ti ? L) could become very large. For
    -&nbsp;     * polynomial functions, these values should not grow too large, and should be
    -&nbsp;     * effectively represented in practice by floating point values without loss of
    -&nbsp;     * precision. For exponential functions, these values could grow quite large as
    -&nbsp;     * new values of (ti ? L) become large, and potentially exceed the capacity of
    -&nbsp;     * common floating point types. However, since the values stored by the
    -&nbsp;     * algorithms are linear combinations of g values (scaled sums), they can be
    -&nbsp;     * rescaled relative to a new landmark. That is, by the analysis of exponential
    -&nbsp;     * decay in Section III-A, the choice of L does not affect the final result. We
    -&nbsp;     * can therefore multiply each value based on L by a factor of exp(??(L? ? L)),
    -&nbsp;     * and obtain the correct value as if we had instead computed relative to a new
    -&nbsp;     * landmark L? (and then use this new L? at query time). This can be done with
    -&nbsp;     * a linear pass over whatever data structure is being used.&quot;
    -&nbsp;     */
    -&nbsp;    private void rescale(long now, long lastTick) {
    -<b class="fc">&nbsp;        lockForRescale();</b>
    -&nbsp;        try {
    -<b class="pc">&nbsp;            if (lastScaleTick.compareAndSet(lastTick, now)) {</b>
    -<b class="fc">&nbsp;                final long oldStartTime = startTime;</b>
    -<b class="fc">&nbsp;                this.startTime = currentTimeInSeconds();</b>
    -<b class="fc">&nbsp;                final double scalingFactor = exp(-alpha * (startTime - oldStartTime));</b>
    -<b class="pc">&nbsp;                if (Double.compare(scalingFactor, 0) == 0) {</b>
    -<b class="fc">&nbsp;                    values.clear();</b>
    -&nbsp;                } else {
    -<b class="fc">&nbsp;                    final ArrayList&lt;Double&gt; keys = new ArrayList&lt;&gt;(values.keySet());</b>
    -<b class="pc">&nbsp;                    for (Double key : keys) {</b>
    -<b class="fc">&nbsp;                        final WeightedSample sample = values.remove(key);</b>
    -<b class="fc">&nbsp;                        final WeightedSample newSample = new WeightedSample(sample.value, sample.weight * scalingFactor);</b>
    -<b class="pc">&nbsp;                        if (Double.compare(newSample.weight, 0) == 0) {</b>
    -<b class="fc">&nbsp;                            continue;</b>
    -&nbsp;                        }
    -<b class="fc">&nbsp;                        values.put(key * scalingFactor, newSample);</b>
    -<b class="fc">&nbsp;                    }</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                // make sure the counter is in sync with the number of stored samples.
    -<b class="fc">&nbsp;                count.set(values.size());</b>
    -&nbsp;            }
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            unlockForRescale();</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void unlockForRescale() {
    -<b class="fc">&nbsp;        lock.writeLock().unlock();</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void lockForRescale() {
    -<b class="fc">&nbsp;        lock.writeLock().lock();</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void lockForRegularUsage() {
    -<b class="fc">&nbsp;        lock.readLock().lock();</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void unlockForRegularUsage() {
    -<b class="fc">&nbsp;        lock.readLock().unlock();</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-c.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-c.html
    deleted file mode 100644
    index 4487cfad81..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-c.html
    +++ /dev/null
    @@ -1,125 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > FixedNameCsvFileProvider</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: FixedNameCsvFileProvider (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">FixedNameCsvFileProvider</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.File;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * This implementation of the {@link CsvFileProvider} will always return the same name
    -&nbsp; * for the same metric. This means the CSV file will grow indefinitely.
    -&nbsp; */
    -<b class="fc">&nbsp;public class FixedNameCsvFileProvider implements CsvFileProvider {</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public File getFile(File directory, String metricName) {
    -<b class="fc">&nbsp;        return new File(directory, sanitize(metricName) + &quot;.csv&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String metricName) {
    -&nbsp;        //Forward slash character is definitely illegal in both Windows and Linux
    -&nbsp;        //https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
    -<b class="fc">&nbsp;        return metricName.replaceFirst(&quot;^/&quot;, &quot;&quot;).replaceAll(&quot;/&quot;, &quot;.&quot;);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-d.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-d.html
    deleted file mode 100644
    index 5a2e71c7c9..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-d.html
    +++ /dev/null
    @@ -1,162 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Histogram</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Histogram (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Histogram</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A metric which calculates the distribution of a value.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://www.johndcook.com/standard_deviation.html&quot;&gt;Accurately computing running
    -&nbsp; * variance&lt;/a&gt;
    -&nbsp; */
    -&nbsp;public class Histogram implements Metric, Sampling, Counting {
    -&nbsp;    private final Reservoir reservoir;
    -&nbsp;    private final LongAdder count;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Histogram} with the given reservoir.
    -&nbsp;     *
    -&nbsp;     * @param reservoir the reservoir to create a histogram from
    -&nbsp;     */
    -<b class="fc">&nbsp;    public Histogram(Reservoir reservoir) {</b>
    -<b class="fc">&nbsp;        this.reservoir = reservoir;</b>
    -<b class="fc">&nbsp;        this.count = new LongAdder();</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a recorded value.
    -&nbsp;     *
    -&nbsp;     * @param value the length of the value
    -&nbsp;     */
    -&nbsp;    public void update(int value) {
    -<b class="fc">&nbsp;        update((long) value);</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a recorded value.
    -&nbsp;     *
    -&nbsp;     * @param value the length of the value
    -&nbsp;     */
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        count.increment();</b>
    -<b class="fc">&nbsp;        reservoir.update(value);</b>
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values recorded.
    -&nbsp;     *
    -&nbsp;     * @return the number of values recorded
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getCount() {
    -<b class="fc">&nbsp;        return count.sum();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        return reservoir.getSnapshot();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-e.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-e.html
    deleted file mode 100644
    index 056438e5ed..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-e.html
    +++ /dev/null
    @@ -1,410 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedExecutorService</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedExecutorService (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedExecutorService</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    38.9%
    -  </span>
    -  <span class="absValue">
    -    (7/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    59.2%
    -  </span>
    -  <span class="absValue">
    -    (42/71)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedExecutorService$InstrumentedCallable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (10/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedExecutorService$InstrumentedRunnable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (63/96)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;import java.util.concurrent.Callable;
    -&nbsp;import java.util.concurrent.ExecutionException;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;import java.util.concurrent.ForkJoinPool;
    -&nbsp;import java.util.concurrent.Future;
    -&nbsp;import java.util.concurrent.ThreadPoolExecutor;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.TimeoutException;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An {@link ExecutorService} that monitors the number of tasks submitted, running,
    -&nbsp; * completed and also keeps a {@link Timer} for the task duration.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    -&nbsp; * &quot;your-executor-service.submitted&quot;, &quot;your-executor-service.running&quot;, etc.
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedExecutorService implements ExecutorService {</b>
    -<b class="fc">&nbsp;    private static final AtomicLong NAME_COUNTER = new AtomicLong();</b>
    -&nbsp;
    -&nbsp;    private final ExecutorService delegate;
    -&nbsp;    private final Meter submitted;
    -&nbsp;    private final Counter running;
    -&nbsp;    private final Meter completed;
    -&nbsp;    private final Timer idle;
    -&nbsp;    private final Timer duration;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps an {@link ExecutorService} uses an auto-generated default name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ExecutorService} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     */
    -&nbsp;    public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(delegate, registry, &quot;instrumented-delegate-&quot; + NAME_COUNTER.incrementAndGet());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps an {@link ExecutorService} with an explicit name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ExecutorService} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     * @param name     name for this executor service.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry, String name) {</b>
    -<b class="fc">&nbsp;        this.delegate = delegate;</b>
    -<b class="fc">&nbsp;        this.submitted = registry.meter(MetricRegistry.name(name, &quot;submitted&quot;));</b>
    -<b class="fc">&nbsp;        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</b>
    -<b class="fc">&nbsp;        this.completed = registry.meter(MetricRegistry.name(name, &quot;completed&quot;));</b>
    -<b class="fc">&nbsp;        this.idle = registry.timer(MetricRegistry.name(name, &quot;idle&quot;));</b>
    -<b class="fc">&nbsp;        this.duration = registry.timer(MetricRegistry.name(name, &quot;duration&quot;));</b>
    -&nbsp;
    -<b class="pc">&nbsp;        if (delegate instanceof ThreadPoolExecutor) {</b>
    -<b class="fc">&nbsp;            ThreadPoolExecutor executor = (ThreadPoolExecutor) delegate;</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;pool.size&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getPoolSize);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;pool.core&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getCorePoolSize);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;pool.max&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getMaximumPoolSize);</b>
    -<b class="fc">&nbsp;            final BlockingQueue&lt;Runnable&gt; queue = executor.getQueue();</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.active&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getActiveCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.completed&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getCompletedTaskCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.queued&quot;),</b>
    -<b class="fc">&nbsp;                    queue::size);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.capacity&quot;),</b>
    -<b class="fc">&nbsp;                    queue::remainingCapacity);</b>
    -<b class="pc">&nbsp;        } else if (delegate instanceof ForkJoinPool) {</b>
    -<b class="fc">&nbsp;            ForkJoinPool forkJoinPool = (ForkJoinPool) delegate;</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.stolen&quot;),</b>
    -<b class="fc">&nbsp;                    forkJoinPool::getStealCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.queued&quot;),</b>
    -<b class="fc">&nbsp;                    forkJoinPool::getQueuedTaskCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;threads.active&quot;),</b>
    -<b class="fc">&nbsp;                    forkJoinPool::getActiveThreadCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;threads.running&quot;),</b>
    -<b class="fc">&nbsp;                    forkJoinPool::getRunningThreadCount);</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void execute(Runnable runnable) {
    -<b class="nc">&nbsp;        submitted.mark();</b>
    -<b class="nc">&nbsp;        delegate.execute(new InstrumentedRunnable(runnable));</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Future&lt;?&gt; submit(Runnable runnable) {
    -<b class="fc">&nbsp;        submitted.mark();</b>
    -<b class="fc">&nbsp;        return delegate.submit(new InstrumentedRunnable(runnable));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Runnable runnable, T result) {
    -<b class="nc">&nbsp;        submitted.mark();</b>
    -<b class="nc">&nbsp;        return delegate.submit(new InstrumentedRunnable(runnable), result);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Callable&lt;T&gt; task) {
    -<b class="fc">&nbsp;        submitted.mark();</b>
    -<b class="fc">&nbsp;        return delegate.submit(new InstrumentedCallable&lt;&gt;(task));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAll(instrumented);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAll(instrumented, timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws ExecutionException, InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAny(instrumented);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws ExecutionException, InterruptedException, TimeoutException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAny(instrumented, timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T&gt; Collection&lt;? extends Callable&lt;T&gt;&gt; instrument(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) {
    -<b class="nc">&nbsp;        final List&lt;InstrumentedCallable&lt;T&gt;&gt; instrumented = new ArrayList&lt;&gt;(tasks.size());</b>
    -<b class="nc">&nbsp;        for (Callable&lt;T&gt; task : tasks) {</b>
    -<b class="nc">&nbsp;            instrumented.add(new InstrumentedCallable&lt;&gt;(task));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return instrumented;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void shutdown() {
    -<b class="fc">&nbsp;        delegate.shutdown();</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;Runnable&gt; shutdownNow() {
    -<b class="nc">&nbsp;        return delegate.shutdownNow();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isShutdown() {
    -<b class="nc">&nbsp;        return delegate.isShutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isTerminated() {
    -<b class="nc">&nbsp;        return delegate.isTerminated();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean awaitTermination(long l, TimeUnit timeUnit) throws InterruptedException {
    -<b class="fc">&nbsp;        return delegate.awaitTermination(l, timeUnit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedRunnable implements Runnable {
    -&nbsp;        private final Runnable task;
    -&nbsp;        private final Timer.Context idleContext;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedRunnable(Runnable task) {</b>
    -<b class="fc">&nbsp;            this.task = task;</b>
    -<b class="fc">&nbsp;            this.idleContext = idle.time();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void run() {
    -<b class="fc">&nbsp;            idleContext.stop();</b>
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            try (Timer.Context durationContext = duration.time()) {</b>
    -<b class="fc">&nbsp;                task.run();</b>
    -<b class="fc">&nbsp;            } finally {</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedCallable&lt;T&gt; implements Callable&lt;T&gt; {
    -&nbsp;        private final Callable&lt;T&gt; callable;
    -&nbsp;        private final Timer.Context idleContext;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedCallable(Callable&lt;T&gt; callable) {</b>
    -<b class="fc">&nbsp;            this.callable = callable;</b>
    -<b class="fc">&nbsp;            this.idleContext = idle.time();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public T call() throws Exception {
    -<b class="fc">&nbsp;            idleContext.stop();</b>
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            try (Timer.Context context = duration.time()) {</b>
    -<b class="fc">&nbsp;                return callable.call();</b>
    -<b class="fc">&nbsp;            } finally {</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-f.html b/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-f.html
    deleted file mode 100644
    index 00db2d2e0b..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1/sources/source-f.html
    +++ /dev/null
    @@ -1,493 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedScheduledExecutorService</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedScheduledExecutorService (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedScheduledExecutorService</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.3%
    -  </span>
    -  <span class="absValue">
    -    (26/55)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedScheduledExecutorService$InstrumentedCallable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (8/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedScheduledExecutorService$InstrumentedPeriodicRunnable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (13/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedScheduledExecutorService$InstrumentedRunnable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (9/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (56/91)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.Callable;
    -&nbsp;import java.util.concurrent.ExecutionException;
    -&nbsp;import java.util.concurrent.Future;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.ScheduledFuture;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.TimeoutException;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An {@link ScheduledExecutorService} that monitors the number of tasks submitted, running,
    -&nbsp; * completed and also keeps a {@link Timer} for the task duration.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    -&nbsp; * &quot;your-executor-service.submitted&quot;, &quot;your-executor-service.running&quot;, etc.
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedScheduledExecutorService implements ScheduledExecutorService {</b>
    -<b class="fc">&nbsp;    private static final AtomicLong NAME_COUNTER = new AtomicLong();</b>
    -&nbsp;
    -&nbsp;    private final ScheduledExecutorService delegate;
    -&nbsp;
    -&nbsp;    private final Meter submitted;
    -&nbsp;    private final Counter running;
    -&nbsp;    private final Meter completed;
    -&nbsp;    private final Timer duration;
    -&nbsp;
    -&nbsp;    private final Meter scheduledOnce;
    -&nbsp;    private final Meter scheduledRepetitively;
    -&nbsp;    private final Counter scheduledOverrun;
    -&nbsp;    private final Histogram percentOfPeriod;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps an {@link ScheduledExecutorService} uses an auto-generated default name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ScheduledExecutorService} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     */
    -&nbsp;    public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(delegate, registry, &quot;instrumented-scheduled-executor-service-&quot; + NAME_COUNTER.incrementAndGet());</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps an {@link ScheduledExecutorService} with an explicit name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ScheduledExecutorService} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     * @param name     name for this executor service.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry, String name) {</b>
    -<b class="fc">&nbsp;        this.delegate = delegate;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.submitted = registry.meter(MetricRegistry.name(name, &quot;submitted&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</b>
    -<b class="fc">&nbsp;        this.completed = registry.meter(MetricRegistry.name(name, &quot;completed&quot;));</b>
    -<b class="fc">&nbsp;        this.duration = registry.timer(MetricRegistry.name(name, &quot;duration&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.scheduledOnce = registry.meter(MetricRegistry.name(name, &quot;scheduled.once&quot;));</b>
    -<b class="fc">&nbsp;        this.scheduledRepetitively = registry.meter(MetricRegistry.name(name, &quot;scheduled.repetitively&quot;));</b>
    -<b class="fc">&nbsp;        this.scheduledOverrun = registry.counter(MetricRegistry.name(name, &quot;scheduled.overrun&quot;));</b>
    -<b class="fc">&nbsp;        this.percentOfPeriod = registry.histogram(MetricRegistry.name(name, &quot;scheduled.percent-of-period&quot;));</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public ScheduledFuture&lt;?&gt; schedule(Runnable command, long delay, TimeUnit unit) {
    -<b class="fc">&nbsp;        scheduledOnce.mark();</b>
    -<b class="fc">&nbsp;        return delegate.schedule(new InstrumentedRunnable(command), delay, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;V&gt; ScheduledFuture&lt;V&gt; schedule(Callable&lt;V&gt; callable, long delay, TimeUnit unit) {
    -<b class="fc">&nbsp;        scheduledOnce.mark();</b>
    -<b class="fc">&nbsp;        return delegate.schedule(new InstrumentedCallable&lt;&gt;(callable), delay, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public ScheduledFuture&lt;?&gt; scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) {
    -<b class="fc">&nbsp;        scheduledRepetitively.mark();</b>
    -<b class="fc">&nbsp;        return delegate.scheduleAtFixedRate(new InstrumentedPeriodicRunnable(command, period, unit), initialDelay, period, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public ScheduledFuture&lt;?&gt; scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) {
    -<b class="fc">&nbsp;        scheduledRepetitively.mark();</b>
    -<b class="fc">&nbsp;        return delegate.scheduleWithFixedDelay(new InstrumentedRunnable(command), initialDelay, delay, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void shutdown() {
    -<b class="fc">&nbsp;        delegate.shutdown();</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public List&lt;Runnable&gt; shutdownNow() {
    -<b class="nc">&nbsp;        return delegate.shutdownNow();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean isShutdown() {
    -<b class="nc">&nbsp;        return delegate.isShutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean isTerminated() {
    -<b class="nc">&nbsp;        return delegate.isTerminated();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {
    -<b class="fc">&nbsp;        return delegate.awaitTermination(timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Callable&lt;T&gt; task) {
    -<b class="fc">&nbsp;        submitted.mark();</b>
    -<b class="fc">&nbsp;        return delegate.submit(new InstrumentedCallable&lt;&gt;(task));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Runnable task, T result) {
    -<b class="nc">&nbsp;        submitted.mark();</b>
    -<b class="nc">&nbsp;        return delegate.submit(new InstrumentedRunnable(task), result);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Future&lt;?&gt; submit(Runnable task) {
    -<b class="fc">&nbsp;        submitted.mark();</b>
    -<b class="fc">&nbsp;        return delegate.submit(new InstrumentedRunnable(task));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAll(instrumented);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAll(instrumented, timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException, ExecutionException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAny(instrumented);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAny(instrumented, timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T&gt; Collection&lt;? extends Callable&lt;T&gt;&gt; instrument(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) {
    -<b class="nc">&nbsp;        final List&lt;InstrumentedCallable&lt;T&gt;&gt; instrumented = new ArrayList&lt;&gt;(tasks.size());</b>
    -<b class="nc">&nbsp;        for (Callable&lt;T&gt; task : tasks) {</b>
    -<b class="nc">&nbsp;            instrumented.add(new InstrumentedCallable&lt;&gt;(task));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return instrumented;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void execute(Runnable command) {
    -<b class="nc">&nbsp;        submitted.mark();</b>
    -<b class="nc">&nbsp;        delegate.execute(new InstrumentedRunnable(command));</b>
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private class InstrumentedRunnable implements Runnable {
    -&nbsp;        private final Runnable command;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedRunnable(Runnable command) {</b>
    -<b class="fc">&nbsp;            this.command = command;</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void run() {
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            final Timer.Context context = duration.time();</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                command.run();</b>
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedPeriodicRunnable implements Runnable {
    -&nbsp;        private final Runnable command;
    -&nbsp;        private final long periodInNanos;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedPeriodicRunnable(Runnable command, long period, TimeUnit unit) {</b>
    -<b class="fc">&nbsp;            this.command = command;</b>
    -<b class="fc">&nbsp;            this.periodInNanos = unit.toNanos(period);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void run() {
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            final Timer.Context context = duration.time();</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                command.run();</b>
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                final long elapsed = context.stop();</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="pc">&nbsp;                if (elapsed &gt; periodInNanos) {</b>
    -<b class="fc">&nbsp;                    scheduledOverrun.inc();</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                percentOfPeriod.update((100L * elapsed) / periodInNanos);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedCallable&lt;T&gt; implements Callable&lt;T&gt; {
    -&nbsp;        private final Callable&lt;T&gt; task;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedCallable(Callable&lt;T&gt; task) {</b>
    -<b class="fc">&nbsp;            this.task = task;</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public T call() throws Exception {
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            final Timer.Context context = duration.time();</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                return task.call();</b>
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index.html
    deleted file mode 100644
    index 7ce236b385..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-10/index.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index b02f8c40f8..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 456d536dbf..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index c171764117..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index e03a69a0c9..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 2dcefa174f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 5c57c4b5d2..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index be52632163..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 80744d13dc..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 1d102617ff..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-1.html
    deleted file mode 100644
    index 8993e8792d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-1.html
    +++ /dev/null
    @@ -1,112 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > BasicSqlNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">BasicSqlNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public BasicSqlNameStrategy() {
    -<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.SQL_OBJECT);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-2.html
    deleted file mode 100644
    index 2146cda3b3..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-2.html
    +++ /dev/null
    @@ -1,119 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ContextNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ContextNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ContextNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_GROUP} and {@link
    -&nbsp; * NameStrategies#STATEMENT_NAME} for group based display.
    -&nbsp; */
    -&nbsp;public class ContextNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public ContextNameStrategy() {
    -<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.CONTEXT_NAME,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-3.html
    deleted file mode 100644
    index 05dc68cf43..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-3.html
    +++ /dev/null
    @@ -1,135 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DelegatingStatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DelegatingStatementNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
    -<b class="fc">&nbsp;    private final List&lt;StatementNameStrategy&gt; strategies = new ArrayList&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;    protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {</b>
    -<b class="fc">&nbsp;        registerStrategies(strategies);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void registerStrategies(StatementNameStrategy... strategies) {
    -<b class="fc">&nbsp;        this.strategies.addAll(Arrays.asList(strategies));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;        for (StatementNameStrategy strategy : strategies) {</b>
    -<b class="fc">&nbsp;            final String statementName = strategy.getStatementName(statementContext);</b>
    -<b class="fc">&nbsp;            if (statementName != null) {</b>
    -<b class="fc">&nbsp;                return statementName;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return NameStrategies.UNKNOWN_SQL;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-4.html
    deleted file mode 100644
    index d0071b432f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-4.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NaiveNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NaiveNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Very simple strategy, can be used with any JDBI loader to build basic statistics.
    -&nbsp; */
    -&nbsp;public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public NaiveNameStrategy() {
    -<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-5.html
    deleted file mode 100644
    index fb7bc4076e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-5.html
    +++ /dev/null
    @@ -1,422 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NameStrategies</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NameStrategies (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NameStrategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">NameStrategies$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$CheckEmptyStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$CheckRawStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$ContextClassStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (12/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$ContextNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$NaiveNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$SqlObjectStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.ClasspathStatementLocator;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.regex.Matcher;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="fc">&nbsp;public final class NameStrategies {</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CHECK_EMPTY = new CheckEmptyStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CHECK_RAW = new CheckRawStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy SQL_OBJECT = new SqlObjectStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy NAIVE_NAME = new NaiveNameStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CONTEXT_CLASS = new ContextClassStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CONTEXT_NAME = new ContextNameStrategy();</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * An empty SQL statement.
    -&nbsp;     */
    -&nbsp;    private static final String EMPTY_SQL = &quot;sql.empty&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Unknown SQL.
    -&nbsp;     */
    -&nbsp;    static final String UNKNOWN_SQL = &quot;sql.unknown&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric class.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_CLASS = &quot;_metric_class&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric group.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_GROUP = &quot;_metric_group&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric type.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_TYPE = &quot;_metric_type&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric name.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_NAME = &quot;_metric_name&quot;;
    -&nbsp;
    -&nbsp;    private static String forRawSql(String rawSql) {
    -<b class="fc">&nbsp;        return name(&quot;sql&quot;, &quot;raw&quot;, rawSql);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class CheckEmptyStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private CheckEmptyStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (rawSql == null || rawSql.length() == 0) {</b>
    -<b class="fc">&nbsp;                return EMPTY_SQL;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class CheckRawStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private CheckRawStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (ClasspathStatementLocator.looksLikeSql(rawSql)) {</b>
    -<b class="fc">&nbsp;                return forRawSql(rawSql);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NaiveNameStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private NaiveNameStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -&nbsp;            // Is it using the template loader?
    -<b class="fc">&nbsp;            final int colon = rawSql.indexOf(&#39;:&#39;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (colon == -1) {</b>
    -&nbsp;                // No package? Just return the name, JDBI figured out somehow on how to find the raw sql for this statement.
    -<b class="fc">&nbsp;                return forRawSql(rawSql);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            final String group = rawSql.substring(0, colon);</b>
    -<b class="nc">&nbsp;            final String name = rawSql.substring(colon + 1);</b>
    -<b class="nc">&nbsp;            return name(group, name);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class SqlObjectStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private SqlObjectStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Class&lt;?&gt; clazz = statementContext.getSqlObjectType();</b>
    -<b class="fc">&nbsp;            final Method method = statementContext.getSqlObjectMethod();</b>
    -<b class="fc">&nbsp;            if (clazz != null) {</b>
    -<b class="fc">&nbsp;                final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final String group = clazz.getPackage().getName();</b>
    -<b class="fc">&nbsp;                final String name = clazz.getSimpleName();</b>
    -<b class="fc">&nbsp;                final String type = method == null ? rawSql : method.getName();</b>
    -<b class="fc">&nbsp;                return name(group, name, type);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class ContextClassStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private ContextClassStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Object classObj = statementContext.getAttribute(STATEMENT_CLASS);</b>
    -<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (classObj == null || nameObj == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String className = (String) classObj;</b>
    -<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    -<b class="fc">&nbsp;            if (dotPos == -1) {</b>
    -<b class="nc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            return name(className.substring(0, dotPos),</b>
    -<b class="fc">&nbsp;                    className.substring(dotPos + 1),</b>
    -&nbsp;                    statementName);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class ContextNameStrategy implements StatementNameStrategy {</b>
    -&nbsp;        /**
    -&nbsp;         * File pattern to shorten the group name.
    -&nbsp;         */
    -<b class="fc">&nbsp;        private static final Pattern SHORT_PATTERN = Pattern.compile(&quot;^(.*?)/(.*?)(-sql)?\\.st(g)?$&quot;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private ContextNameStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Object groupObj = statementContext.getAttribute(STATEMENT_GROUP);</b>
    -<b class="fc">&nbsp;            final Object typeObj = statementContext.getAttribute(STATEMENT_TYPE);</b>
    -<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (groupObj == null || nameObj == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String group = (String) groupObj;</b>
    -<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (typeObj == null) {</b>
    -<b class="fc">&nbsp;                final Matcher matcher = SHORT_PATTERN.matcher(group);</b>
    -<b class="fc">&nbsp;                if (matcher.matches()) {</b>
    -<b class="fc">&nbsp;                    final String groupName = matcher.group(1);</b>
    -<b class="fc">&nbsp;                    final String typeName = matcher.group(2);</b>
    -<b class="fc">&nbsp;                    return name(groupName, typeName, statementName);</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                return name(group, statementName, &quot;&quot;);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                final String type = (String) typeObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                return name(group, type, statementName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private NameStrategies() {
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-6.html
    deleted file mode 100644
    index 1e3351d7f8..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-6.html
    +++ /dev/null
    @@ -1,239 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ShortNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ShortNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ShortNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">ShortNameStrategy$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ShortNameStrategy$ShortContextClassStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (13/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ShortNameStrategy$ShortSqlObjectStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Assembles all JDBI stats under a common prefix (passed in at constructor time). Stats are grouped
    -&nbsp; * by class name and method; a shortening strategy is applied to make the JMX output nicer.
    -&nbsp; */
    -<b class="fc">&nbsp;public final class ShortNameStrategy extends DelegatingStatementNameStrategy {</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;String, String&gt; shortClassNames = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final String baseJmxName;
    -&nbsp;
    -<b class="fc">&nbsp;    public ShortNameStrategy(String baseJmxName) {</b>
    -<b class="fc">&nbsp;        this.baseJmxName = baseJmxName;</b>
    -&nbsp;
    -&nbsp;        // Java does not allow super (..., new ShortContextClassStrategy(), new ShortSqlObjectStrategy(), ...);
    -&nbsp;        // ==&gt; No enclosing instance of type &lt;xxx&gt; is available due to some intermediate constructor invocation. Lame.
    -<b class="fc">&nbsp;        registerStrategies(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                new ShortContextClassStrategy(),
    -&nbsp;                new ShortSqlObjectStrategy(),
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private final class ShortContextClassStrategy implements StatementNameStrategy {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Object classObj = statementContext.getAttribute(NameStrategies.STATEMENT_CLASS);</b>
    -<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(NameStrategies.STATEMENT_NAME);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (classObj == null || nameObj == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String className = (String) classObj;</b>
    -<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    -<b class="fc">&nbsp;            if (dotPos == -1) {</b>
    -<b class="nc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String shortName = className.substring(dotPos + 1);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final String oldClassName = shortClassNames.putIfAbsent(shortName, className);</b>
    -<b class="fc">&nbsp;            if (oldClassName == null || oldClassName.equals(className)) {</b>
    -<b class="fc">&nbsp;                return name(baseJmxName, shortName, statementName);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                return name(baseJmxName, className, statementName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private final class ShortSqlObjectStrategy implements StatementNameStrategy {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Class&lt;?&gt; clazz = statementContext.getSqlObjectType();</b>
    -<b class="fc">&nbsp;            final Method method = statementContext.getSqlObjectMethod();</b>
    -<b class="fc">&nbsp;            if (clazz != null &amp;&amp; method != null) {</b>
    -<b class="fc">&nbsp;                final String className = clazz.getName();</b>
    -<b class="fc">&nbsp;                final String statementName = method.getName();</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    -<b class="fc">&nbsp;                if (dotPos == -1) {</b>
    -<b class="nc">&nbsp;                    return null;</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                final String shortName = className.substring(dotPos + 1);</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final String oldClassName = shortClassNames.putIfAbsent(shortName, className);</b>
    -<b class="fc">&nbsp;                if (oldClassName == null || oldClassName.equals(className)) {</b>
    -<b class="fc">&nbsp;                    return name(baseJmxName, shortName, statementName);</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    return name(baseJmxName, className, statementName);</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-7.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-7.html
    deleted file mode 100644
    index 893c59e865..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-7.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SmartNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SmartNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_CLASS} and {@link
    -&nbsp; * NameStrategies#STATEMENT_NAME} for class based display or {@link NameStrategies#STATEMENT_GROUP}
    -&nbsp; * and {@link NameStrategies#STATEMENT_NAME} for group based display.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Also knows how to deal with SQL Object statements.
    -&nbsp; */
    -&nbsp;public class SmartNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public SmartNameStrategy() {
    -<b class="fc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.CONTEXT_CLASS,
    -&nbsp;                NameStrategies.CONTEXT_NAME,
    -&nbsp;                NameStrategies.SQL_OBJECT,
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-8.html b/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-8.html
    deleted file mode 100644
    index 37ef347efe..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-10/sources/source-8.html
    +++ /dev/null
    @@ -1,78 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > StatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">StatementNameStrategy</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Interface for strategies to statement contexts to metric names.
    -&nbsp; */
    -&nbsp;public interface StatementNameStrategy {
    -&nbsp;    String getStatementName(StatementContext statementContext);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index.html
    deleted file mode 100644
    index 5a6cb7ac06..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-11/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 5d00cc776a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index ec85271d44..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 7c616bed66..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 1a9c20fed2..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_LINE.html
    deleted file mode 100644
    index b194e8baaf..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 056bd6be8e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index bbe3dc6234..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 6a50195627..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index e0668a5e88..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/sources/source-1.html
    deleted file mode 100644
    index 950d9043ba..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-11/sources/source-1.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedSqlLogger</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedSqlLogger (com.codahale.metrics.jdbi3)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedSqlLogger</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
    -&nbsp;import org.jdbi.v3.core.statement.SqlLogger;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;import java.sql.SQLException;
    -&nbsp;import java.time.temporal.ChronoUnit;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link SqlLogger} implementation for JDBI which uses the SQL objects&#39; class names and
    -&nbsp; * method names for nanosecond-precision timers.
    -&nbsp; */
    -&nbsp;public class InstrumentedSqlLogger implements SqlLogger {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final StatementNameStrategy statementNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedSqlLogger(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedSqlLogger(MetricRegistry registry,
    -<b class="fc">&nbsp;                                 StatementNameStrategy statementNameStrategy) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void logAfterExecution(StatementContext context) {
    -<b class="fc">&nbsp;        log(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void logException(StatementContext context, SQLException ex) {
    -<b class="fc">&nbsp;        log(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void log(StatementContext context) {
    -<b class="fc">&nbsp;        String statementName = statementNameStrategy.getStatementName(context);</b>
    -<b class="fc">&nbsp;        if (statementName != null) {</b>
    -<b class="fc">&nbsp;            final long elapsed = context.getElapsedTime(ChronoUnit.NANOS);</b>
    -<b class="fc">&nbsp;            registry.timer(statementName).update(elapsed, TimeUnit.NANOSECONDS);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-11/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-11/sources/source-2.html
    deleted file mode 100644
    index 08ce54f2d0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-11/sources/source-2.html
    +++ /dev/null
    @@ -1,145 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedTimingCollector</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi3)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedTimingCollector</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
    -&nbsp;import org.jdbi.v3.core.statement.SqlLogger;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;import org.jdbi.v3.core.statement.TimingCollector;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link TimingCollector} implementation for JDBI which uses the SQL objects&#39; class names and
    -&nbsp; * method names for millisecond-precision timers.
    -&nbsp; *
    -&nbsp; * @deprecated Use {@link InstrumentedSqlLogger} and {@link org.jdbi.v3.core.Jdbi#setSqlLogger(SqlLogger)} instead.
    -&nbsp; */
    -&nbsp;@Deprecated
    -&nbsp;public class InstrumentedTimingCollector implements TimingCollector {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final StatementNameStrategy statementNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry,
    -<b class="fc">&nbsp;                                       StatementNameStrategy statementNameStrategy) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void collect(long elapsedTime, StatementContext ctx) {
    -<b class="fc">&nbsp;        String statementName = statementNameStrategy.getStatementName(ctx);</b>
    -<b class="fc">&nbsp;        if (statementName != null) {</b>
    -<b class="fc">&nbsp;            registry.timer(statementName).update(elapsedTime, TimeUnit.NANOSECONDS);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index.html
    deleted file mode 100644
    index 8f31320dec..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-12/index.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index aa7abd6bf0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index bbfd93f76b..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 7e17ddbff7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 2dc754d25d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 457bbe3979..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index e321116fd3..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 5382646af4..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 8e25b12d83..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 0dc72710a3..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-1.html
    deleted file mode 100644
    index bc18100579..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-1.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > BasicSqlNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">BasicSqlNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Collects metrics by respective SQLObject methods.
    -&nbsp; */
    -&nbsp;public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;
    -&nbsp;    public BasicSqlNameStrategy() {
    -<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    -&nbsp;                DefaultNameStrategy.SQL_OBJECT);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-2.html
    deleted file mode 100644
    index abb8534afd..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-2.html
    +++ /dev/null
    @@ -1,246 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DefaultNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DefaultNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DefaultNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.jdbi.v3.core.extension.ExtensionMethod;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Default strategies which build a basis of more complex strategies
    -&nbsp; */
    -<b class="fc">&nbsp;public enum DefaultNameStrategy implements StatementNameStrategy {</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * If no SQL in the context, returns `sql.empty`, otherwise falls through
    -&nbsp;     */
    -<b class="fc">&nbsp;    CHECK_EMPTY {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -<b class="fc">&nbsp;            return rawSql == null || rawSql.isEmpty() ? &quot;sql.empty&quot; : null;</b>
    -&nbsp;        }
    -&nbsp;    },
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * If there is an SQL object attached to the context, returns the name package,
    -&nbsp;     * the class and the method on which SQL is declared. If not SQL object is attached,
    -&nbsp;     * falls through
    -&nbsp;     */
    -<b class="fc">&nbsp;    SQL_OBJECT {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            ExtensionMethod extensionMethod = statementContext.getExtensionMethod();</b>
    -<b class="fc">&nbsp;            if (extensionMethod != null) {</b>
    -<b class="fc">&nbsp;                return MetricRegistry.name(extensionMethod.getType(), extensionMethod.getMethod().getName());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    },
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a raw SQL in the context (even if it&#39;s not exist)
    -&nbsp;     */
    -<b class="fc">&nbsp;    NAIVE_NAME {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            return statementContext.getRawSql();</b>
    -&nbsp;        }
    -&nbsp;    },
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the `sql.raw` constant
    -&nbsp;     */
    -<b class="fc">&nbsp;    CONSTANT_SQL_RAW {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            return &quot;sql.raw&quot;;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-3.html
    deleted file mode 100644
    index 89b8e39d07..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-3.html
    +++ /dev/null
    @@ -1,136 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DelegatingStatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DelegatingStatementNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Unknown SQL.
    -&nbsp;     */
    -&nbsp;    private static final String UNKNOWN_SQL = &quot;sql.unknown&quot;;
    -&nbsp;
    -&nbsp;    private final List&lt;StatementNameStrategy&gt; strategies;
    -&nbsp;
    -<b class="fc">&nbsp;    protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {</b>
    -<b class="fc">&nbsp;        this.strategies = Arrays.asList(strategies);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;        for (StatementNameStrategy strategy : strategies) {</b>
    -<b class="fc">&nbsp;            final String statementName = strategy.getStatementName(statementContext);</b>
    -<b class="fc">&nbsp;            if (statementName != null) {</b>
    -<b class="fc">&nbsp;                return statementName;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return UNKNOWN_SQL;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-4.html
    deleted file mode 100644
    index ef93105350..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-4.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NaiveNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NaiveNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Very simple strategy, can be used with any JDBI loader to build basic statistics.
    -&nbsp; */
    -&nbsp;public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;
    -&nbsp;    public NaiveNameStrategy() {
    -<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    -&nbsp;              DefaultNameStrategy.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-5.html
    deleted file mode 100644
    index 7d116ea245..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-5.html
    +++ /dev/null
    @@ -1,117 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SmartNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SmartNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Uses a {@link BasicSqlNameStrategy} and fallbacks to {@link DefaultNameStrategy#CONSTANT_SQL_RAW}
    -&nbsp; */
    -&nbsp;public class SmartNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;
    -&nbsp;    public SmartNameStrategy() {
    -<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    -&nbsp;                DefaultNameStrategy.SQL_OBJECT,
    -&nbsp;                DefaultNameStrategy.CONSTANT_SQL_RAW);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-6.html
    deleted file mode 100644
    index 6591d33de1..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-6.html
    +++ /dev/null
    @@ -1,151 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > TimedAnnotationNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: TimedAnnotationNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">TimedAnnotationNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import org.jdbi.v3.core.extension.ExtensionMethod;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Takes into account the {@link Timed} annotation on extension methods
    -&nbsp; */
    -<b class="fc">&nbsp;public class TimedAnnotationNameStrategy implements StatementNameStrategy {</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;        final ExtensionMethod extensionMethod = statementContext.getExtensionMethod();</b>
    -<b class="fc">&nbsp;        if (extensionMethod == null) {</b>
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Class&lt;?&gt; clazz = extensionMethod.getType();</b>
    -<b class="fc">&nbsp;        final Timed classTimed = clazz.getAnnotation(Timed.class);</b>
    -<b class="fc">&nbsp;        final Method method = extensionMethod.getMethod();</b>
    -<b class="fc">&nbsp;        final Timed methodTimed = method.getAnnotation(Timed.class);</b>
    -&nbsp;
    -&nbsp;        // If the method is timed, figure out the name
    -<b class="fc">&nbsp;        if (methodTimed != null) {</b>
    -<b class="fc">&nbsp;            String methodName = methodTimed.name().isEmpty() ? method.getName() : methodTimed.name();</b>
    -<b class="fc">&nbsp;            if (methodTimed.absolute()) {</b>
    -<b class="fc">&nbsp;                return methodName;</b>
    -&nbsp;            } else {
    -&nbsp;                // We need to check if the class has a custom timer name
    -<b class="fc">&nbsp;                return classTimed == null || classTimed.name().isEmpty() ?</b>
    -<b class="fc">&nbsp;                        MetricRegistry.name(clazz, methodName) :</b>
    -<b class="fc">&nbsp;                        MetricRegistry.name(classTimed.name(), methodName);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        } else if (classTimed != null) {</b>
    -&nbsp;            // Maybe the class is timed?
    -<b class="fc">&nbsp;            return classTimed.name().isEmpty() ? MetricRegistry.name(clazz, method.getName()) :</b>
    -<b class="nc">&nbsp;                    MetricRegistry.name(classTimed.name(), method.getName());</b>
    -&nbsp;        } else {
    -&nbsp;            // No timers neither on the method or the class
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-7.html b/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-7.html
    deleted file mode 100644
    index d6bcc77960..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-12/sources/source-7.html
    +++ /dev/null
    @@ -1,89 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > StatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">StatementNameStrategy$MockitoMock$wZbYeQ8O</td>
    -  </tr>
    -  <tr>
    -    <td class="name">StatementNameStrategy$MockitoMock$wZbYeQ8O$auxiliary$EjHL0NaR</td>
    -  </tr>
    -  <tr>
    -    <td class="name">StatementNameStrategy$MockitoMock$wZbYeQ8O$auxiliary$kFmlIXLI</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Interface for strategies to statement contexts to metric names.
    -&nbsp; */
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface StatementNameStrategy {
    -&nbsp;
    -&nbsp;    String getStatementName(StatementContext statementContext);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index.html
    deleted file mode 100644
    index 40d4e78717..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-13/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 1eadf4de43..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index f7e12bcf75..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 9264cd7bc0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index c4b31ffb49..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 686730a7fd..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 9104569922..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index c2a1d29331..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index a42563ff5f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 898e95b3a8..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/sources/source-1.html
    deleted file mode 100644
    index 9281f9b5eb..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-13/sources/source-1.html
    +++ /dev/null
    @@ -1,831 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey2</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey2)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.1%
    -  </span>
    -  <span class="absValue">
    -    (82/89)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.2%
    -  </span>
    -  <span class="absValue">
    -    (16/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (28/28)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey2;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    -&nbsp;import com.codahale.metrics.annotation.Metered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    -&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    -&nbsp;import org.glassfish.jersey.server.model.Resource;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    -&nbsp;
    -&nbsp;import javax.ws.rs.core.Configuration;
    -&nbsp;import javax.ws.rs.ext.Provider;
    -&nbsp;import java.lang.annotation.Annotation;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An application event listener that listens for Jersey application initialization to
    -&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    -&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    -&nbsp; * request events indicating that the method is about to be invoked, or just got done
    -&nbsp; * being invoked.
    -&nbsp; */
    -&nbsp;@Provider
    -&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    -&nbsp;    private static final String TOTAL = &quot;total&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metrics;
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Construct an application event listener using the given metrics registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    -&nbsp;     *
    -&nbsp;     * @param metrics a {@link MetricRegistry}
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    -<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters) {
    -<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters,
    -<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.metrics = metrics;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metric for a method annotated with the
    -&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    -&nbsp;     * and a cause for which the meter should be updated.
    -&nbsp;     */
    -&nbsp;    private static class ExceptionMeterMetric {
    -&nbsp;        public final Meter meter;
    -&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    -&nbsp;
    -&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    -&nbsp;                                    final ResourceMethod method,
    -<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    -<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    -<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    -<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    -<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metrics for a method annotated with the
    -&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    -&nbsp;     * different response codes
    -&nbsp;     */
    -&nbsp;    private static class ResponseMeterMetric {
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;        private final List&lt;Meter&gt; meters;
    -&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;        private final MetricRegistry metricRegistry;
    -&nbsp;        private final String metricName;
    -&nbsp;        private final ResponseMeteredLevel level;
    -&nbsp;
    -&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    -&nbsp;                                   final ResourceMethod method,
    -<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    -<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    -<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    -<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    -<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="fc">&nbsp;            )) : Collections.emptyList();</b>
    -<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public void mark(int statusCode) {
    -<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;            return responseCodeMeters</b>
    -<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    -&nbsp;
    -&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    -&nbsp;        private final Clock clock;
    -&nbsp;        private final long start;
    -&nbsp;        private Timer.Context resourceMethodStartContext;
    -&nbsp;        private Timer.Context requestMatchedContext;
    -&nbsp;        private Timer.Context responseFiltersStartContext;
    -&nbsp;
    -<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    -<b class="fc">&nbsp;            this.timers = timers;</b>
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            start = clock.getTick();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            switch (event.getType()) {</b>
    -&nbsp;                case RESOURCE_METHOD_START:
    -<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case REQUEST_MATCHED:
    -<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESP_FILTERS_START:
    -<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESOURCE_METHOD_FINISHED:
    -<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    -<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case REQUEST_FILTERED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    -<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case RESP_FILTERS_FINISHED:
    -<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case FINISHED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;                        if (timer != null) {</b>
    -<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    -&nbsp;                        }
    -<b class="fc">&nbsp;                    }</b>
    -&nbsp;                    break;
    -&nbsp;                default:
    -&nbsp;                    break;
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(RequestEvent event) {
    -<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer.Context context(RequestEvent event) {
    -<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    -&nbsp;
    -<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    -<b class="fc">&nbsp;            this.meters = meters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    -<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    -<b class="fc">&nbsp;                if (meter != null) {</b>
    -<b class="fc">&nbsp;                    meter.mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    -<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    -<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    -<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    -<b class="fc">&nbsp;                        metric.meter.mark();</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    -<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    -<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(500);</b>
    -<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    -&nbsp;        private final RequestEventListener[] listeners;
    -&nbsp;
    -<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    -<b class="fc">&nbsp;            this.listeners = listeners;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(final RequestEvent event) {
    -<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    -<b class="fc">&nbsp;                listener.onEvent(event);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onEvent(ApplicationEvent event) {
    -<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    -<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        return resourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    -<b class="fc">&nbsp;        return subResourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    -<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    -<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    -<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    -<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    -<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    -<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    -<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    -<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    -<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    -<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    -<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    -<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    -&nbsp;                new TimerRequestEventListener(timers, clock),
    -&nbsp;                new MeterRequestEventListener(meters),
    -&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    -&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    -&nbsp;
    -<b class="fc">&nbsp;        return listener;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    -<b class="fc">&nbsp;        T annotation = null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    -<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (annotation != null) {</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return annotation;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    -<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    -<b class="fc">&nbsp;        if (trackFilters) {</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Timed timed,
    -&nbsp;                              final String... suffixes) {
    -<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    -<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Metered metered) {
    -<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    -<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    -&nbsp;                                       final String... suffixes) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;        final String metricName;
    -<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    -<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    -&nbsp;
    -&nbsp;        private final RequestEvent.Type type;
    -&nbsp;        private final Method method;
    -&nbsp;
    -<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    -<b class="fc">&nbsp;            this.type = type;</b>
    -<b class="fc">&nbsp;            this.method = method;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod finished(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="fc">&nbsp;            if (this == o) {</b>
    -<b class="nc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (type != that.type) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return method.equals(that.method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="fc">&nbsp;            int result = type.hashCode();</b>
    -<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    -<b class="fc">&nbsp;            return result;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-13/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-13/sources/source-2.html
    deleted file mode 100644
    index 04c6d07518..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-13/sources/source-2.html
    +++ /dev/null
    @@ -1,201 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsFeature</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey2</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey2)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsFeature</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey2;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import javax.ws.rs.core.Feature;
    -&nbsp;import javax.ws.rs.core.FeatureContext;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp; * for recording request events.
    -&nbsp; */
    -&nbsp;public class MetricsFeature implements Feature {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    -<b class="fc">&nbsp;        this(registry, clock, false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    -<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MetricsFeature(String registryName) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A call-back method called when the feature is to be enabled in a given
    -&nbsp;     * runtime configuration scope.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    -&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    -&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    -&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    -&nbsp;     * {@link javax.ws.rs.core.Configuration#isEnabled(javax.ws.rs.core.Feature)} or
    -&nbsp;     * {@link javax.ws.rs.core.Configuration#isEnabled(Class)} method
    -&nbsp;     * would return {@code false}.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     *
    -&nbsp;     * @param context configurable context in which the feature should be enabled.
    -&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    -&nbsp;     * otherwise.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean configure(FeatureContext context) {
    -<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index.html
    deleted file mode 100644
    index 8c0b067f8a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-14/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index cba76c82d0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 757aaeb716..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 2d21fbb41b..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index e09a3ef870..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_LINE.html
    deleted file mode 100644
    index cb21b2f57a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 1836348fd5..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 2ac1887e3d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 535e293978..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 454145ede1..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/sources/source-1.html
    deleted file mode 100644
    index a8c19465d4..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-14/sources/source-1.html
    +++ /dev/null
    @@ -1,832 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey3)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.1%
    -  </span>
    -  <span class="absValue">
    -    (82/89)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.2%
    -  </span>
    -  <span class="absValue">
    -    (16/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (28/28)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey3;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    -&nbsp;import com.codahale.metrics.annotation.Metered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import jakarta.ws.rs.core.Configuration;
    -&nbsp;import jakarta.ws.rs.ext.Provider;
    -&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    -&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    -&nbsp;import org.glassfish.jersey.server.model.Resource;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Annotation;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An application event listener that listens for Jersey application initialization to
    -&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    -&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    -&nbsp; * request events indicating that the method is about to be invoked, or just got done
    -&nbsp; * being invoked.
    -&nbsp; */
    -&nbsp;@Provider
    -&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    -&nbsp;    private static final String TOTAL = &quot;total&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metrics;
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Construct an application event listener using the given metrics registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    -&nbsp;     *
    -&nbsp;     * @param metrics a {@link MetricRegistry}
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    -<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters) {
    -<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters,
    -<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.metrics = metrics;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metric for a method annotated with the
    -&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    -&nbsp;     * and a cause for which the meter should be updated.
    -&nbsp;     */
    -&nbsp;    private static class ExceptionMeterMetric {
    -&nbsp;        public final Meter meter;
    -&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    -&nbsp;
    -&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    -&nbsp;                                    final ResourceMethod method,
    -<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    -<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    -<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    -<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    -<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metrics for a method annotated with the
    -&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    -&nbsp;     * different response codes
    -&nbsp;     */
    -&nbsp;    private static class ResponseMeterMetric {
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;        private final List&lt;Meter&gt; meters;
    -&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;        private final MetricRegistry metricRegistry;
    -&nbsp;        private final String metricName;
    -&nbsp;        private final ResponseMeteredLevel level;
    -&nbsp;
    -&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    -&nbsp;                                   final ResourceMethod method,
    -<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    -<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    -<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    -<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    -<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="fc">&nbsp;                    )) : Collections.emptyList();</b>
    -<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public void mark(int statusCode) {
    -<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;            return responseCodeMeters</b>
    -<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    -&nbsp;
    -&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    -&nbsp;        private final Clock clock;
    -&nbsp;        private final long start;
    -&nbsp;        private Timer.Context resourceMethodStartContext;
    -&nbsp;        private Timer.Context requestMatchedContext;
    -&nbsp;        private Timer.Context responseFiltersStartContext;
    -&nbsp;
    -<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    -<b class="fc">&nbsp;            this.timers = timers;</b>
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            start = clock.getTick();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            switch (event.getType()) {</b>
    -&nbsp;                case RESOURCE_METHOD_START:
    -<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case REQUEST_MATCHED:
    -<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESP_FILTERS_START:
    -<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESOURCE_METHOD_FINISHED:
    -<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    -<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case REQUEST_FILTERED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    -<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case RESP_FILTERS_FINISHED:
    -<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case FINISHED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;                        if (timer != null) {</b>
    -<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    -&nbsp;                        }
    -<b class="fc">&nbsp;                    }</b>
    -&nbsp;                    break;
    -&nbsp;                default:
    -&nbsp;                    break;
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(RequestEvent event) {
    -<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer.Context context(RequestEvent event) {
    -<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    -&nbsp;
    -<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    -<b class="fc">&nbsp;            this.meters = meters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    -<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    -<b class="fc">&nbsp;                if (meter != null) {</b>
    -<b class="fc">&nbsp;                    meter.mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    -<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    -<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    -<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    -<b class="fc">&nbsp;                        metric.meter.mark();</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    -<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    -<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(500);</b>
    -<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    -&nbsp;        private final RequestEventListener[] listeners;
    -&nbsp;
    -<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    -<b class="fc">&nbsp;            this.listeners = listeners;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(final RequestEvent event) {
    -<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    -<b class="fc">&nbsp;                listener.onEvent(event);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onEvent(ApplicationEvent event) {
    -<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    -<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        return resourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    -<b class="fc">&nbsp;        return subResourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    -<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    -<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    -<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    -<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    -<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    -<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    -<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    -<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    -<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    -<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    -<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    -<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    -&nbsp;                new TimerRequestEventListener(timers, clock),
    -&nbsp;                new MeterRequestEventListener(meters),
    -&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    -&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    -&nbsp;
    -<b class="fc">&nbsp;        return listener;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    -<b class="fc">&nbsp;        T annotation = null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    -<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (annotation != null) {</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return annotation;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    -<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    -<b class="fc">&nbsp;        if (trackFilters) {</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Timed timed,
    -&nbsp;                              final String... suffixes) {
    -<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    -<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Metered metered) {
    -<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    -<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    -&nbsp;                                       final String... suffixes) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;        final String metricName;
    -<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    -<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    -&nbsp;
    -&nbsp;        private final RequestEvent.Type type;
    -&nbsp;        private final Method method;
    -&nbsp;
    -<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    -<b class="fc">&nbsp;            this.type = type;</b>
    -<b class="fc">&nbsp;            this.method = method;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod finished(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="fc">&nbsp;            if (this == o) {</b>
    -<b class="nc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (type != that.type) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return method.equals(that.method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="fc">&nbsp;            int result = type.hashCode();</b>
    -<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    -<b class="fc">&nbsp;            return result;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-14/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-14/sources/source-2.html
    deleted file mode 100644
    index da68379389..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-14/sources/source-2.html
    +++ /dev/null
    @@ -1,201 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsFeature</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey3)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsFeature</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey3;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import jakarta.ws.rs.core.Feature;
    -&nbsp;import jakarta.ws.rs.core.FeatureContext;
    -&nbsp;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp; * for recording request events.
    -&nbsp; */
    -&nbsp;public class MetricsFeature implements Feature {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    -<b class="fc">&nbsp;        this(registry, clock, false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    -<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MetricsFeature(String registryName) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A call-back method called when the feature is to be enabled in a given
    -&nbsp;     * runtime configuration scope.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    -&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    -&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    -&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
    -&nbsp;     * would return {@code false}.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     *
    -&nbsp;     * @param context configurable context in which the feature should be enabled.
    -&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    -&nbsp;     * otherwise.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean configure(FeatureContext context) {
    -<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index.html
    deleted file mode 100644
    index 7d4011a2b8..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-15/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 2d7817253d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index a1239f07e9..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index eb2985602d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 3c1945aa9d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 06f2266fe0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index e344a00507..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index ef8596c45b..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 3f29b2a6d6..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index df63a23a65..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-1.html
    deleted file mode 100644
    index a8dbce6887..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-1.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (com.codahale.metrics.jetty9)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    -&nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-2.html
    deleted file mode 100644
    index 65bc7ec5da..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-2.html
    +++ /dev/null
    @@ -1,754 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHandler (com.codahale.metrics.jetty9)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (115/135)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    -&nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    -&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    private final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private List&lt;Meter&gt; responses;
    -&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    private Timer getRequests;
    -&nbsp;    private Timer postRequests;
    -&nbsp;    private Timer headRequests;
    -&nbsp;    private Timer putRequests;
    -&nbsp;    private Timer deleteRequests;
    -&nbsp;    private Timer optionsRequests;
    -&nbsp;    private Timer traceRequests;
    -&nbsp;    private Timer connectRequests;
    -&nbsp;    private Timer moveRequests;
    -&nbsp;    private Timer otherRequests;
    -&nbsp;
    -&nbsp;    private AsyncListener listener;
    -&nbsp;
    -&nbsp;    private HttpChannelState.State DISPATCHED_HACK;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            DISPATCHED_HACK = HttpChannelState.State.valueOf(&quot;HANDLING&quot;);</b>
    -<b class="nc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    -<b class="nc">&nbsp;            DISPATCHED_HACK = HttpChannelState.State.valueOf(&quot;DISPATCHED&quot;);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;            ));
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void handle(String path,
    -&nbsp;                       Request request,
    -&nbsp;                       HttpServletRequest httpRequest,
    -&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == DISPATCHED_HACK) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-3.html
    deleted file mode 100644
    index 7230573278..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-3.html
    +++ /dev/null
    @@ -1,708 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (com.codahale.metrics.jetty9)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpChannelListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (20/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.6%
    -  </span>
    -  <span class="absValue">
    -    (90/109)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    -&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    -&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    -&nbsp; *
    -&nbsp; * @since TBD
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    -&nbsp;    implements Listener
    -&nbsp;{
    -<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private final Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private final Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private final Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private final Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private final Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private final Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private final Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private final List&lt;Meter&gt; responses;
    -&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final Timer getRequests;
    -&nbsp;    private final Timer postRequests;
    -&nbsp;    private final Timer headRequests;
    -&nbsp;    private final Timer putRequests;
    -&nbsp;    private final Timer deleteRequests;
    -&nbsp;    private final Timer optionsRequests;
    -&nbsp;    private final Timer traceRequests;
    -&nbsp;    private final Timer connectRequests;
    -&nbsp;    private final Timer moveRequests;
    -&nbsp;    private final Timer otherRequests;
    -&nbsp;
    -&nbsp;    private final AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    -<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    -<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onBeforeDispatch(final Request request) {
    -<b class="fc">&nbsp;        before(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onAfterDispatch(final Request request) {
    -<b class="fc">&nbsp;        after(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContentEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestTrailers(final Request request) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseCommit(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onComplete(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void before(final Request request) {
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            activeSuspended.dec();</b>
    -<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void after(final Request request) {
    -<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    -<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.dec();</b>
    -<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    -<b class="fc">&nbsp;            activeSuspended.inc();</b>
    -<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    -&nbsp;        }
    -&nbsp;        // else onCompletion will handle it.
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="fc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-4.html
    deleted file mode 100644
    index b3180de387..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-15/sources/source-4.html
    +++ /dev/null
    @@ -1,286 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (com.codahale.metrics.jetty9)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (10/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    -&nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, queue);</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index.html
    deleted file mode 100644
    index 1ed6428775..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-16/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 92648a2873..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 9d12d4b07a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 6be6c439fb..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index a5c09b8b39..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 0ea54e0274..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 3221f4e73d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 9ea14a8f5e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index a76822fb1b..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index e7a8083598..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-1.html
    deleted file mode 100644
    index 5eefdddce0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-1.html
    +++ /dev/null
    @@ -1,173 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DefaultObjectNameFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jmx</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DefaultObjectNameFactory (com.codahale.metrics.jmx)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DefaultObjectNameFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    -&nbsp;
    -&nbsp;import java.util.Hashtable;
    -&nbsp;
    -&nbsp;import javax.management.MalformedObjectNameException;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -<b class="fc">&nbsp;public class DefaultObjectNameFactory implements ObjectNameFactory {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private static final char[] QUOTABLE_CHARS = new char[] {&#39;,&#39;, &#39;=&#39;, &#39;:&#39;, &#39;&quot;&#39;};</b>
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ObjectName createName(String type, String domain, String name) {
    -&nbsp;        try {
    -&nbsp;            ObjectName objectName;
    -<b class="fc">&nbsp;            Hashtable&lt;String, String&gt; properties = new Hashtable&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            properties.put(&quot;name&quot;, name);</b>
    -<b class="fc">&nbsp;            properties.put(&quot;type&quot;, type);</b>
    -<b class="fc">&nbsp;            objectName = new ObjectName(domain, properties);</b>
    -&nbsp;
    -&nbsp;            /*
    -&nbsp;             * The only way we can find out if we need to quote the properties is by
    -&nbsp;             * checking an ObjectName that we&#39;ve constructed.
    -&nbsp;             */
    -<b class="fc">&nbsp;            if (objectName.isDomainPattern()) {</b>
    -<b class="nc">&nbsp;                domain = ObjectName.quote(domain);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (objectName.isPropertyValuePattern(&quot;name&quot;) || shouldQuote(objectName.getKeyProperty(&quot;name&quot;))) {</b>
    -<b class="fc">&nbsp;                properties.put(&quot;name&quot;, ObjectName.quote(name));</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (objectName.isPropertyValuePattern(&quot;type&quot;) || shouldQuote(objectName.getKeyProperty(&quot;type&quot;))) {</b>
    -<b class="nc">&nbsp;                properties.put(&quot;type&quot;, ObjectName.quote(type));</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            objectName = new ObjectName(domain, properties);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            return objectName;</b>
    -<b class="nc">&nbsp;        } catch (MalformedObjectNameException e) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                return new ObjectName(domain, &quot;name&quot;, ObjectName.quote(name));</b>
    -<b class="nc">&nbsp;            } catch (MalformedObjectNameException e1) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register {} {}&quot;, type, name, e1);</b>
    -<b class="nc">&nbsp;                throw new RuntimeException(e1);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Determines whether the value requires quoting.
    -&nbsp;     * According to the {@link ObjectName} documentation, values can be quoted or unquoted. Unquoted
    -&nbsp;     * values may not contain any of the characters comma, equals, colon, or quote.
    -&nbsp;     *
    -&nbsp;     * @param value a value to test
    -&nbsp;     * @return true when it requires quoting, false otherwise
    -&nbsp;     */
    -&nbsp;    private boolean shouldQuote(final String value) {
    -<b class="fc">&nbsp;        for (char quotableChar : QUOTABLE_CHARS) {</b>
    -<b class="fc">&nbsp;            if (value.indexOf(quotableChar) != -1) {</b>
    -<b class="fc">&nbsp;                return true;</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return false;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-2.html
    deleted file mode 100644
    index 79be6fcd6f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-2.html
    +++ /dev/null
    @@ -1,1061 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JmxReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jmx</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: JmxReporter (com.codahale.metrics.jmx)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">JmxReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">JmxReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$AbstractBean</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (9/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.4%
    -  </span>
    -  <span class="absValue">
    -    (27/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxCounter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxCounterMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxGaugeMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxHistogram</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxHistogramMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.8%
    -  </span>
    -  <span class="absValue">
    -    (11/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    49.5%
    -  </span>
    -  <span class="absValue">
    -    (50/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxMeter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxMeterMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxTimer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxTimerMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$MetricMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$MetricTimeUnits</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.Metered;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.MetricRegistryListener;
    -&nbsp;import com.codahale.metrics.Reporter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import javax.management.InstanceAlreadyExistsException;
    -&nbsp;import javax.management.InstanceNotFoundException;
    -&nbsp;import javax.management.JMException;
    -&nbsp;import javax.management.MBeanRegistrationException;
    -&nbsp;import javax.management.MBeanServer;
    -&nbsp;import javax.management.ObjectInstance;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;import java.io.Closeable;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which listens for new metrics and exposes them as namespaced MBeans.
    -&nbsp; */
    -<b class="fc">&nbsp;public class JmxReporter implements Reporter, Closeable {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link JmxReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link JmxReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link JmxReporter} instances. Defaults to using the default MBean server and
    -&nbsp;     * not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private MBeanServer mBeanServer;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private ObjectNameFactory objectNameFactory;
    -<b class="fc">&nbsp;        private MetricFilter filter = MetricFilter.ALL;</b>
    -&nbsp;        private String domain;
    -&nbsp;        private Map&lt;String, TimeUnit&gt; specificDurationUnits;
    -&nbsp;        private Map&lt;String, TimeUnit&gt; specificRateUnits;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.domain = &quot;metrics&quot;;</b>
    -<b class="fc">&nbsp;            this.objectNameFactory = new DefaultObjectNameFactory();</b>
    -<b class="fc">&nbsp;            this.specificDurationUnits = Collections.emptyMap();</b>
    -<b class="fc">&nbsp;            this.specificRateUnits = Collections.emptyMap();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Register MBeans with the given {@link MBeanServer}.
    -&nbsp;         *
    -&nbsp;         * @param mBeanServer an {@link MBeanServer}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder registerWith(MBeanServer mBeanServer) {
    -<b class="fc">&nbsp;            this.mBeanServer = mBeanServer;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder createsObjectNamesWith(ObjectNameFactory onFactory) {
    -<b class="fc">&nbsp;            if (onFactory == null) {</b>
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;null objectNameFactory&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            this.objectNameFactory = onFactory;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder inDomain(String domain) {
    -<b class="fc">&nbsp;            this.domain = domain;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use specific {@link TimeUnit}s for the duration of the metrics with these names.
    -&nbsp;         *
    -&nbsp;         * @param specificDurationUnits a map of metric names and specific {@link TimeUnit}s
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder specificDurationUnits(Map&lt;String, TimeUnit&gt; specificDurationUnits) {
    -<b class="nc">&nbsp;            this.specificDurationUnits = Collections.unmodifiableMap(specificDurationUnits);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use specific {@link TimeUnit}s for the rate of the metrics with these names.
    -&nbsp;         *
    -&nbsp;         * @param specificRateUnits a map of metric names and specific {@link TimeUnit}s
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder specificRateUnits(Map&lt;String, TimeUnit&gt; specificRateUnits) {
    -<b class="nc">&nbsp;            this.specificRateUnits = Collections.unmodifiableMap(specificRateUnits);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link JmxReporter} with the given properties.
    -&nbsp;         *
    -&nbsp;         * @return a {@link JmxReporter}
    -&nbsp;         */
    -&nbsp;        public JmxReporter build() {
    -<b class="fc">&nbsp;            final MetricTimeUnits timeUnits = new MetricTimeUnits(rateUnit, durationUnit, specificRateUnits, specificDurationUnits);</b>
    -<b class="fc">&nbsp;            if (mBeanServer == null) {</b>
    -<b class="fc">&nbsp;                mBeanServer = ManagementFactory.getPlatformMBeanServer();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new JmxReporter(mBeanServer, domain, registry, filter, timeUnits, objectNameFactory);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);</b>
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface MetricMBean {
    -&nbsp;        ObjectName objectName();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private abstract static class AbstractBean implements MetricMBean {
    -&nbsp;        private final ObjectName objectName;
    -&nbsp;
    -<b class="fc">&nbsp;        AbstractBean(ObjectName objectName) {</b>
    -<b class="fc">&nbsp;            this.objectName = objectName;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public ObjectName objectName() {
    -<b class="nc">&nbsp;            return objectName;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxGaugeMBean extends MetricMBean {
    -&nbsp;        Object getValue();
    -&nbsp;        Number getNumber();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxGauge extends AbstractBean implements JmxGaugeMBean {</b>
    -&nbsp;        private final Gauge&lt;?&gt; metric;
    -&nbsp;
    -&nbsp;        private JmxGauge(Gauge&lt;?&gt; metric, ObjectName objectName) {
    -<b class="fc">&nbsp;            super(objectName);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Object getValue() {
    -<b class="fc">&nbsp;            return metric.getValue();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Number getNumber() {
    -<b class="fc">&nbsp;            Object value = metric.getValue();</b>
    -<b class="fc">&nbsp;            return value instanceof Number ? (Number) value : 0;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxCounterMBean extends MetricMBean {
    -&nbsp;        long getCount();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxCounter extends AbstractBean implements JmxCounterMBean {</b>
    -&nbsp;        private final Counter metric;
    -&nbsp;
    -&nbsp;        private JmxCounter(Counter metric, ObjectName objectName) {
    -<b class="fc">&nbsp;            super(objectName);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="fc">&nbsp;            return metric.getCount();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxHistogramMBean extends MetricMBean {
    -&nbsp;        long getCount();
    -&nbsp;
    -&nbsp;        long getMin();
    -&nbsp;
    -&nbsp;        long getMax();
    -&nbsp;
    -&nbsp;        double getMean();
    -&nbsp;
    -&nbsp;        double getStdDev();
    -&nbsp;
    -&nbsp;        double get50thPercentile();
    -&nbsp;
    -&nbsp;        double get75thPercentile();
    -&nbsp;
    -&nbsp;        double get95thPercentile();
    -&nbsp;
    -&nbsp;        double get98thPercentile();
    -&nbsp;
    -&nbsp;        double get99thPercentile();
    -&nbsp;
    -&nbsp;        double get999thPercentile();
    -&nbsp;
    -&nbsp;        long[] values();
    -&nbsp;
    -&nbsp;        long getSnapshotSize();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxHistogram implements JmxHistogramMBean {</b>
    -&nbsp;        private final ObjectName objectName;
    -&nbsp;        private final Histogram metric;
    -&nbsp;
    -<b class="fc">&nbsp;        private JmxHistogram(Histogram metric, ObjectName objectName) {</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -<b class="fc">&nbsp;            this.objectName = objectName;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public ObjectName objectName() {
    -<b class="nc">&nbsp;            return objectName;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get50thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMedian();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="fc">&nbsp;            return metric.getCount();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getMin() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMin();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getMax() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMax();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMean() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMean();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getStdDev() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getStdDev();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get75thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get75thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get95thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get95thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get98thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get98thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get99thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get99thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get999thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get999thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long[] values() {
    -<b class="nc">&nbsp;            return metric.getSnapshot().getValues();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getSnapshotSize() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().size();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxMeterMBean extends MetricMBean {
    -&nbsp;        long getCount();
    -&nbsp;
    -&nbsp;        double getMeanRate();
    -&nbsp;
    -&nbsp;        double getOneMinuteRate();
    -&nbsp;
    -&nbsp;        double getFiveMinuteRate();
    -&nbsp;
    -&nbsp;        double getFifteenMinuteRate();
    -&nbsp;
    -&nbsp;        String getRateUnit();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxMeter extends AbstractBean implements JmxMeterMBean {</b>
    -&nbsp;        private final Metered metric;
    -&nbsp;        private final double rateFactor;
    -&nbsp;        private final String rateUnit;
    -&nbsp;
    -&nbsp;        private JmxMeter(Metered metric, ObjectName objectName, TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            super(objectName);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;            this.rateUnit = (&quot;events/&quot; + calculateRateUnit(rateUnit)).intern();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="fc">&nbsp;            return metric.getCount();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMeanRate() {
    -<b class="fc">&nbsp;            return metric.getMeanRate() * rateFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getOneMinuteRate() {
    -<b class="fc">&nbsp;            return metric.getOneMinuteRate() * rateFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getFiveMinuteRate() {
    -<b class="fc">&nbsp;            return metric.getFiveMinuteRate() * rateFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getFifteenMinuteRate() {
    -<b class="fc">&nbsp;            return metric.getFifteenMinuteRate() * rateFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getRateUnit() {
    -<b class="fc">&nbsp;            return rateUnit;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private String calculateRateUnit(TimeUnit unit) {
    -<b class="fc">&nbsp;            final String s = unit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;            return s.substring(0, s.length() - 1);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxTimerMBean extends JmxMeterMBean {
    -&nbsp;        double getMin();
    -&nbsp;
    -&nbsp;        double getMax();
    -&nbsp;
    -&nbsp;        double getMean();
    -&nbsp;
    -&nbsp;        double getStdDev();
    -&nbsp;
    -&nbsp;        double get50thPercentile();
    -&nbsp;
    -&nbsp;        double get75thPercentile();
    -&nbsp;
    -&nbsp;        double get95thPercentile();
    -&nbsp;
    -&nbsp;        double get98thPercentile();
    -&nbsp;
    -&nbsp;        double get99thPercentile();
    -&nbsp;
    -&nbsp;        double get999thPercentile();
    -&nbsp;
    -&nbsp;        long[] values();
    -&nbsp;
    -&nbsp;        String getDurationUnit();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static class JmxTimer extends JmxMeter implements JmxTimerMBean {</b>
    -&nbsp;        private final Timer metric;
    -&nbsp;        private final double durationFactor;
    -&nbsp;        private final String durationUnit;
    -&nbsp;
    -&nbsp;        private JmxTimer(Timer metric,
    -&nbsp;                         ObjectName objectName,
    -&nbsp;                         TimeUnit rateUnit,
    -&nbsp;                         TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            super(metric, objectName, rateUnit);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -<b class="fc">&nbsp;            this.durationFactor = 1.0 / durationUnit.toNanos(1);</b>
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get50thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMedian() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMin() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMin() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMax() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMax() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMean() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMean() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getStdDev() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getStdDev() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get75thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get75thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get95thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get95thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get98thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get98thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get99thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get99thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get999thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get999thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long[] values() {
    -<b class="nc">&nbsp;            return metric.getSnapshot().getValues();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getDurationUnit() {
    -<b class="fc">&nbsp;            return durationUnit;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxListener implements MetricRegistryListener {</b>
    -&nbsp;        private final String name;
    -&nbsp;        private final MBeanServer mBeanServer;
    -&nbsp;        private final MetricFilter filter;
    -&nbsp;        private final MetricTimeUnits timeUnits;
    -&nbsp;        private final Map&lt;ObjectName, ObjectName&gt; registered;
    -&nbsp;        private final ObjectNameFactory objectNameFactory;
    -&nbsp;
    -<b class="fc">&nbsp;        private JmxListener(MBeanServer mBeanServer, String name, MetricFilter filter, MetricTimeUnits timeUnits, ObjectNameFactory objectNameFactory) {</b>
    -<b class="fc">&nbsp;            this.mBeanServer = mBeanServer;</b>
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            this.timeUnits = timeUnits;</b>
    -<b class="fc">&nbsp;            this.registered = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;            this.objectNameFactory = objectNameFactory;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void registerMBean(Object mBean, ObjectName objectName) throws InstanceAlreadyExistsException, JMException {
    -<b class="fc">&nbsp;            ObjectInstance objectInstance = mBeanServer.registerMBean(mBean, objectName);</b>
    -<b class="fc">&nbsp;            if (objectInstance != null) {</b>
    -&nbsp;                // the websphere mbeanserver rewrites the objectname to include
    -&nbsp;                // cell, node &amp; server info
    -&nbsp;                // make sure we capture the new objectName for unregistration
    -<b class="fc">&nbsp;                registered.put(objectName, objectInstance.getObjectName());</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                registered.put(objectName, objectName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void unregisterMBean(ObjectName originalObjectName) throws InstanceNotFoundException, MBeanRegistrationException {
    -<b class="fc">&nbsp;            ObjectName storedObjectName = registered.remove(originalObjectName);</b>
    -<b class="fc">&nbsp;            if (storedObjectName != null) {</b>
    -<b class="fc">&nbsp;                mBeanServer.unregisterMBean(storedObjectName);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                mBeanServer.unregisterMBean(originalObjectName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, gauge)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;gauges&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxGauge(gauge, objectName), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register gauge&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register gauge&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onGaugeRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;gauges&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister gauge&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister gauge&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onCounterAdded(String name, Counter counter) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, counter)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;counters&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxCounter(counter, objectName), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register counter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register counter&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onCounterRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;counters&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister counter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister counter&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onHistogramAdded(String name, Histogram histogram) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, histogram)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;histograms&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxHistogram(histogram, objectName), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register histogram&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register histogram&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onHistogramRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;histograms&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister histogram&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister histogram&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onMeterAdded(String name, Meter meter) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, meter)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;meters&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxMeter(meter, objectName, timeUnits.rateFor(name)), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register meter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register meter&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onMeterRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;meters&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister meter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister meter&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimerAdded(String name, Timer timer) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, timer)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;timers&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxTimer(timer, objectName, timeUnits.rateFor(name), timeUnits.durationFor(name)), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register timer&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register timer&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimerRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;timers&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister timer&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister timer&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private ObjectName createName(String type, String name) {
    -<b class="fc">&nbsp;            return objectNameFactory.createName(type, this.name, name);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        void unregisterAll() {
    -<b class="fc">&nbsp;            for (ObjectName name : registered.keySet()) {</b>
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    unregisterMBean(name);</b>
    -<b class="nc">&nbsp;                } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                    LOGGER.debug(&quot;Unable to unregister metric&quot;, e);</b>
    -<b class="nc">&nbsp;                } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                    LOGGER.warn(&quot;Unable to unregister metric&quot;, e);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            registered.clear();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MetricTimeUnits {
    -&nbsp;        private final TimeUnit defaultRate;
    -&nbsp;        private final TimeUnit defaultDuration;
    -&nbsp;        private final Map&lt;String, TimeUnit&gt; rateOverrides;
    -&nbsp;        private final Map&lt;String, TimeUnit&gt; durationOverrides;
    -&nbsp;
    -&nbsp;        MetricTimeUnits(TimeUnit defaultRate,
    -&nbsp;                        TimeUnit defaultDuration,
    -&nbsp;                        Map&lt;String, TimeUnit&gt; rateOverrides,
    -<b class="fc">&nbsp;                        Map&lt;String, TimeUnit&gt; durationOverrides) {</b>
    -<b class="fc">&nbsp;            this.defaultRate = defaultRate;</b>
    -<b class="fc">&nbsp;            this.defaultDuration = defaultDuration;</b>
    -<b class="fc">&nbsp;            this.rateOverrides = rateOverrides;</b>
    -<b class="fc">&nbsp;            this.durationOverrides = durationOverrides;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public TimeUnit durationFor(String name) {
    -<b class="fc">&nbsp;            return durationOverrides.getOrDefault(name, defaultDuration);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public TimeUnit rateFor(String name) {
    -<b class="fc">&nbsp;            return rateOverrides.getOrDefault(name, defaultRate);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final JmxListener listener;
    -&nbsp;
    -&nbsp;    private JmxReporter(MBeanServer mBeanServer,
    -&nbsp;                        String domain,
    -&nbsp;                        MetricRegistry registry,
    -&nbsp;                        MetricFilter filter,
    -&nbsp;                        MetricTimeUnits timeUnits,
    -<b class="fc">&nbsp;                        ObjectNameFactory objectNameFactory) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.listener = new JmxListener(mBeanServer, domain, filter, timeUnits, objectNameFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Starts the reporter.
    -&nbsp;     */
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        registry.addListener(listener);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Stops the reporter.
    -&nbsp;     */
    -&nbsp;    public void stop() {
    -<b class="fc">&nbsp;        registry.removeListener(listener);</b>
    -<b class="fc">&nbsp;        listener.unregisterAll();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Stops the reporter.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="nc">&nbsp;        stop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Visible for testing
    -&nbsp;     */
    -&nbsp;    ObjectNameFactory getObjectNameFactory() {
    -<b class="fc">&nbsp;        return listener.objectNameFactory;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-3.html
    deleted file mode 100644
    index 52fd7cca92..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-16/sources/source-3.html
    +++ /dev/null
    @@ -1,85 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ObjectNameFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jmx</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ObjectNameFactory (com.codahale.metrics.jmx)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">ObjectNameFactory$MockitoMock$T1LlDgYl</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ObjectNameFactory$MockitoMock$T1LlDgYl$auxiliary$EaMiz7jr</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ObjectNameFactory$MockitoMock$T1LlDgYl$auxiliary$wQu19Bip</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    -&nbsp;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;
    -&nbsp;public interface ObjectNameFactory {
    -&nbsp;
    -&nbsp;    ObjectName createName(String type, String domain, String name);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index.html
    deleted file mode 100644
    index 829f2f7bec..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-17/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 62d581b5ea..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index d61e169b7f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 7130a034eb..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index db323a0187..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 5193d6e8b0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 562ff1bce2..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index c7df55f188..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index cbae21db5c..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 82a2db8ca5..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/sources/source-1.html
    deleted file mode 100644
    index dac3b719a4..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-17/sources/source-1.html
    +++ /dev/null
    @@ -1,217 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckModule</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.json</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckModule (com.codahale.metrics.json)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckModule</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckModule$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheckModule$HealthCheckResultSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (27/27)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.json;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.fasterxml.jackson.core.JsonGenerator;
    -&nbsp;import com.fasterxml.jackson.core.Version;
    -&nbsp;import com.fasterxml.jackson.databind.Module;
    -&nbsp;import com.fasterxml.jackson.databind.SerializerProvider;
    -&nbsp;import com.fasterxml.jackson.databind.module.SimpleSerializers;
    -&nbsp;import com.fasterxml.jackson.databind.ser.std.StdSerializer;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -<b class="fc">&nbsp;public class HealthCheckModule extends Module {</b>
    -<b class="fc">&nbsp;    private static class HealthCheckResultSerializer extends StdSerializer&lt;HealthCheck.Result&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private HealthCheckResultSerializer() {
    -<b class="fc">&nbsp;            super(HealthCheck.Result.class);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(HealthCheck.Result result,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeBooleanField(&quot;healthy&quot;, result.isHealthy());</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final String message = result.getMessage();</b>
    -<b class="fc">&nbsp;            if (message != null) {</b>
    -<b class="fc">&nbsp;                json.writeStringField(&quot;message&quot;, message);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            serializeThrowable(json, result.getError(), &quot;error&quot;);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;duration&quot;, result.getDuration());</b>
    -&nbsp;
    -<b class="fc">&nbsp;            Map&lt;String, Object&gt; details = result.getDetails();</b>
    -<b class="fc">&nbsp;            if (details != null &amp;&amp; !details.isEmpty()) {</b>
    -<b class="fc">&nbsp;                for (Map.Entry&lt;String, Object&gt; e : details.entrySet()) {</b>
    -<b class="fc">&nbsp;                    json.writeObjectField(e.getKey(), e.getValue());</b>
    -<b class="fc">&nbsp;                }</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            json.writeStringField(&quot;timestamp&quot;, result.getTimestamp());</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void serializeThrowable(JsonGenerator json, Throwable error, String name) throws IOException {
    -<b class="fc">&nbsp;            if (error != null) {</b>
    -<b class="fc">&nbsp;                json.writeObjectFieldStart(name);</b>
    -<b class="fc">&nbsp;                json.writeStringField(&quot;type&quot;, error.getClass().getTypeName());</b>
    -<b class="fc">&nbsp;                json.writeStringField(&quot;message&quot;, error.getMessage());</b>
    -<b class="fc">&nbsp;                json.writeArrayFieldStart(&quot;stack&quot;);</b>
    -<b class="fc">&nbsp;                for (StackTraceElement element : error.getStackTrace()) {</b>
    -<b class="fc">&nbsp;                    json.writeString(element.toString());</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                json.writeEndArray();</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (error.getCause() != null) {</b>
    -<b class="fc">&nbsp;                    serializeThrowable(json, error.getCause(), &quot;cause&quot;);</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                json.writeEndObject();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getModuleName() {
    -<b class="fc">&nbsp;        return &quot;healthchecks&quot;;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Version version() {
    -<b class="fc">&nbsp;        return MetricsModule.VERSION;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void setupModule(SetupContext context) {
    -<b class="fc">&nbsp;        context.addSerializers(new SimpleSerializers(Collections.singletonList(new HealthCheckResultSerializer())));</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-17/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-17/sources/source-2.html
    deleted file mode 100644
    index 625503aed3..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-17/sources/source-2.html
    +++ /dev/null
    @@ -1,489 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsModule</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.json</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsModule</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (12/13)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetricsModule$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$CounterSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$GaugeSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$HistogramSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$MeterSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$MetricRegistrySerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$TimerSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (33/33)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.json;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Snapshot;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.fasterxml.jackson.core.JsonGenerator;
    -&nbsp;import com.fasterxml.jackson.core.Version;
    -&nbsp;import com.fasterxml.jackson.databind.Module;
    -&nbsp;import com.fasterxml.jackson.databind.SerializerProvider;
    -&nbsp;import com.fasterxml.jackson.databind.module.SimpleSerializers;
    -&nbsp;import com.fasterxml.jackson.databind.ser.std.StdSerializer;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -<b class="fc">&nbsp;public class MetricsModule extends Module {</b>
    -<b class="fc">&nbsp;    static final Version VERSION = new Version(4, 0, 0, &quot;&quot;, &quot;io.dropwizard.metrics&quot;, &quot;metrics-json&quot;);</b>
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -<b class="fc">&nbsp;    private static class GaugeSerializer extends StdSerializer&lt;Gauge&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private GaugeSerializer() {
    -<b class="fc">&nbsp;            super(Gauge.class);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Gauge gauge,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -&nbsp;            final Object value;
    -&nbsp;            try {
    -<b class="fc">&nbsp;                value = gauge.getValue();</b>
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;value&quot;, value);</b>
    -<b class="fc">&nbsp;            } catch (RuntimeException e) {</b>
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;error&quot;, e.toString());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class CounterSerializer extends StdSerializer&lt;Counter&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private CounterSerializer() {
    -<b class="fc">&nbsp;            super(Counter.class);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Counter counter,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, counter.getCount());</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class HistogramSerializer extends StdSerializer&lt;Histogram&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private final boolean showSamples;
    -&nbsp;
    -&nbsp;        private HistogramSerializer(boolean showSamples) {
    -<b class="fc">&nbsp;            super(Histogram.class);</b>
    -<b class="fc">&nbsp;            this.showSamples = showSamples;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Histogram histogram,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            final Snapshot snapshot = histogram.getSnapshot();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, histogram.getCount());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;max&quot;, snapshot.getMax());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean&quot;, snapshot.getMean());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;min&quot;, snapshot.getMin());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p50&quot;, snapshot.getMedian());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p75&quot;, snapshot.get75thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p95&quot;, snapshot.get95thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p98&quot;, snapshot.get98thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p99&quot;, snapshot.get99thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p999&quot;, snapshot.get999thPercentile());</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (showSamples) {</b>
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;values&quot;, snapshot.getValues());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;stddev&quot;, snapshot.getStdDev());</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MeterSerializer extends StdSerializer&lt;Meter&gt; {
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private final String rateUnit;
    -&nbsp;        private final double rateFactor;
    -&nbsp;
    -&nbsp;        public MeterSerializer(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            super(Meter.class);</b>
    -<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;            this.rateUnit = calculateRateUnit(rateUnit, &quot;events&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Meter meter,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, meter.getCount());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m15_rate&quot;, meter.getFifteenMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m1_rate&quot;, meter.getOneMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m5_rate&quot;, meter.getFiveMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean_rate&quot;, meter.getMeanRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;units&quot;, rateUnit);</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class TimerSerializer extends StdSerializer&lt;Timer&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private final String rateUnit;
    -&nbsp;        private final double rateFactor;
    -&nbsp;        private final String durationUnit;
    -&nbsp;        private final double durationFactor;
    -&nbsp;        private final boolean showSamples;
    -&nbsp;
    -&nbsp;        private TimerSerializer(TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit,
    -&nbsp;                                boolean showSamples) {
    -<b class="fc">&nbsp;            super(Timer.class);</b>
    -<b class="fc">&nbsp;            this.rateUnit = calculateRateUnit(rateUnit, &quot;calls&quot;);</b>
    -<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;            this.durationFactor = 1.0 / durationUnit.toNanos(1);</b>
    -<b class="fc">&nbsp;            this.showSamples = showSamples;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Timer timer,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            final Snapshot snapshot = timer.getSnapshot();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, timer.getCount());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;max&quot;, snapshot.getMax() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean&quot;, snapshot.getMean() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;min&quot;, snapshot.getMin() * durationFactor);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p50&quot;, snapshot.getMedian() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p75&quot;, snapshot.get75thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p95&quot;, snapshot.get95thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p98&quot;, snapshot.get98thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p99&quot;, snapshot.get99thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p999&quot;, snapshot.get999thPercentile() * durationFactor);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (showSamples) {</b>
    -<b class="fc">&nbsp;                final long[] values = snapshot.getValues();</b>
    -<b class="fc">&nbsp;                final double[] scaledValues = new double[values.length];</b>
    -<b class="fc">&nbsp;                for (int i = 0; i &lt; values.length; i++) {</b>
    -<b class="fc">&nbsp;                    scaledValues[i] = values[i] * durationFactor;</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;values&quot;, scaledValues);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;stddev&quot;, snapshot.getStdDev() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m15_rate&quot;, timer.getFifteenMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m1_rate&quot;, timer.getOneMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m5_rate&quot;, timer.getFiveMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean_rate&quot;, timer.getMeanRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;duration_units&quot;, durationUnit);</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;rate_units&quot;, rateUnit);</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class MetricRegistrySerializer extends StdSerializer&lt;MetricRegistry&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private final MetricFilter filter;
    -&nbsp;
    -&nbsp;        private MetricRegistrySerializer(MetricFilter filter) {
    -<b class="fc">&nbsp;            super(MetricRegistry.class);</b>
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(MetricRegistry registry,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;version&quot;, VERSION.toString());</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;gauges&quot;, registry.getGauges(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;counters&quot;, registry.getCounters(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;histograms&quot;, registry.getHistograms(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;meters&quot;, registry.getMeters(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;timers&quot;, registry.getTimers(filter));</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected final TimeUnit rateUnit;
    -&nbsp;    protected final TimeUnit durationUnit;
    -&nbsp;    protected final boolean showSamples;
    -&nbsp;    protected final MetricFilter filter;
    -&nbsp;
    -&nbsp;    public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples) {
    -<b class="nc">&nbsp;        this(rateUnit, durationUnit, showSamples, MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples, MetricFilter filter) {</b>
    -<b class="fc">&nbsp;        this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;        this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;        this.showSamples = showSamples;</b>
    -<b class="fc">&nbsp;        this.filter = filter;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getModuleName() {
    -<b class="fc">&nbsp;        return &quot;metrics&quot;;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Version version() {
    -<b class="fc">&nbsp;        return VERSION;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void setupModule(SetupContext context) {
    -<b class="fc">&nbsp;        context.addSerializers(new SimpleSerializers(Arrays.asList(</b>
    -&nbsp;                new GaugeSerializer(),
    -&nbsp;                new CounterSerializer(),
    -&nbsp;                new HistogramSerializer(showSamples),
    -&nbsp;                new MeterSerializer(rateUnit),
    -&nbsp;                new TimerSerializer(rateUnit, durationUnit, showSamples),
    -&nbsp;                new MetricRegistrySerializer(filter)
    -&nbsp;        )));
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static String calculateRateUnit(TimeUnit unit, String name) {
    -<b class="fc">&nbsp;        final String s = unit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;        return name + &#39;/&#39; + s.substring(0, s.length() - 1);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index.html
    deleted file mode 100644
    index 8005ff5fca..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/index.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 69e8412ab4..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 9f20e01432..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 9ca83431cb..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index acb68b7c82..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 94c1c4beba..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index eb0f671267..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index a01235e4ec..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 711648f6b8..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 0a5f6ea7a0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (52/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.7%
    -  </span>
    -  <span class="absValue">
    -    (204/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-1.html
    deleted file mode 100644
    index 18cbfade7c..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-1.html
    +++ /dev/null
    @@ -1,156 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > BufferPoolMetricSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: BufferPoolMetricSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">BufferPoolMetricSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (18/18)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import javax.management.JMException;
    -&nbsp;import javax.management.MBeanServer;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the count, usage, and capacity of the JVM&#39;s direct and mapped buffer pools.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * These JMX objects are only available on Java 7 and above.
    -&nbsp; */
    -&nbsp;public class BufferPoolMetricSet implements MetricSet {
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(BufferPoolMetricSet.class);</b>
    -<b class="fc">&nbsp;    private static final String[] ATTRIBUTES = {&quot;Count&quot;, &quot;MemoryUsed&quot;, &quot;TotalCapacity&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] NAMES = {&quot;count&quot;, &quot;used&quot;, &quot;capacity&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] POOLS = {&quot;direct&quot;, &quot;mapped&quot;};</b>
    -&nbsp;
    -&nbsp;    private final MBeanServer mBeanServer;
    -&nbsp;
    -<b class="fc">&nbsp;    public BufferPoolMetricSet(MBeanServer mBeanServer) {</b>
    -<b class="fc">&nbsp;        this.mBeanServer = mBeanServer;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (String pool : POOLS) {</b>
    -<b class="fc">&nbsp;            for (int i = 0; i &lt; ATTRIBUTES.length; i++) {</b>
    -<b class="fc">&nbsp;                final String attribute = ATTRIBUTES[i];</b>
    -<b class="fc">&nbsp;                final String name = NAMES[i];</b>
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    final ObjectName on = new ObjectName(&quot;java.nio:type=BufferPool,name=&quot; + pool);</b>
    -<b class="fc">&nbsp;                    mBeanServer.getMBeanInfo(on);</b>
    -<b class="fc">&nbsp;                    gauges.put(name(pool, name), new JmxAttributeGauge(mBeanServer, on, attribute));</b>
    -<b class="fc">&nbsp;                } catch (JMException ignored) {</b>
    -<b class="fc">&nbsp;                    LOGGER.debug(&quot;Unable to load buffer pool MBeans, possibly running on Java 6&quot;);</b>
    -<b class="fc">&nbsp;                }</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-2.html
    deleted file mode 100644
    index 87e2a786cc..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-2.html
    +++ /dev/null
    @@ -1,184 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedThreadStatesGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedThreadStatesGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedThreadStatesGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">CachedThreadStatesGaugeSet$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.CachedGauge;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A variation of ThreadStatesGaugeSet that caches the ThreadInfo[] objects for
    -&nbsp; * a given interval.
    -&nbsp; */
    -<b class="nc">&nbsp;public class CachedThreadStatesGaugeSet extends ThreadStatesGaugeSet {</b>
    -&nbsp;
    -&nbsp;    private final CachedGauge&lt;ThreadInfo[]&gt; threadInfo;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the given MXBean and detector.
    -&nbsp;     * Caches the information for the given interval and time unit.
    -&nbsp;     *
    -&nbsp;     * @param threadMXBean     a thread MXBean
    -&nbsp;     * @param deadlockDetector a deadlock detector
    -&nbsp;     * @param interval         cache interval
    -&nbsp;     * @param unit             cache interval time unit
    -&nbsp;     */
    -&nbsp;    public CachedThreadStatesGaugeSet(final ThreadMXBean threadMXBean, ThreadDeadlockDetector deadlockDetector,
    -&nbsp;                                      long interval, TimeUnit unit) {
    -<b class="nc">&nbsp;        super(threadMXBean, deadlockDetector);</b>
    -<b class="nc">&nbsp;        threadInfo = new CachedGauge&lt;ThreadInfo[]&gt;(interval, unit) {</b>
    -&nbsp;            @Override
    -&nbsp;            protected ThreadInfo[] loadValue() {
    -<b class="nc">&nbsp;                return CachedThreadStatesGaugeSet.super.getThreadInfo();</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the default MXBeans.
    -&nbsp;     * Caches the information for the given interval and time unit.
    -&nbsp;     *
    -&nbsp;     * @param interval cache interval
    -&nbsp;     * @param unit     cache interval time unit
    -&nbsp;     */
    -&nbsp;    public CachedThreadStatesGaugeSet(long interval, TimeUnit unit) {
    -<b class="nc">&nbsp;        this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector(), interval, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    ThreadInfo[] getThreadInfo() {
    -<b class="nc">&nbsp;        return threadInfo.getValue();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-3.html
    deleted file mode 100644
    index f40f049c63..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-3.html
    +++ /dev/null
    @@ -1,139 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ClassLoadingGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ClassLoadingGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ClassLoadingGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ClassLoadingMXBean;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for JVM classloader usage.
    -&nbsp; */
    -&nbsp;public class ClassLoadingGaugeSet implements MetricSet {
    -&nbsp;
    -&nbsp;    private final ClassLoadingMXBean mxBean;
    -&nbsp;
    -&nbsp;    public ClassLoadingGaugeSet() {
    -<b class="nc">&nbsp;        this(ManagementFactory.getClassLoadingMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public ClassLoadingGaugeSet(ClassLoadingMXBean mxBean) {</b>
    -<b class="fc">&nbsp;        this.mxBean = mxBean;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;loaded&quot;, (Gauge&lt;Long&gt;) mxBean::getTotalLoadedClassCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;unloaded&quot;, (Gauge&lt;Long&gt;) mxBean::getUnloadedClassCount);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return gauges;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-4.html
    deleted file mode 100644
    index 43a0e40fed..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-4.html
    +++ /dev/null
    @@ -1,123 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CpuTimeClock</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CpuTimeClock (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CpuTimeClock</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A clock implementation which returns the current thread&#39;s CPU time.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CpuTimeClock extends Clock {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private static final ThreadMXBean THREAD_MX_BEAN = ManagementFactory.getThreadMXBean();</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public long getTick() {
    -<b class="fc">&nbsp;        return THREAD_MX_BEAN.getCurrentThreadCpuTime();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-5.html
    deleted file mode 100644
    index c4759f3255..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-5.html
    +++ /dev/null
    @@ -1,154 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > FileDescriptorRatioGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: FileDescriptorRatioGauge (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">FileDescriptorRatioGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.OperatingSystemMXBean;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A gauge for the ratio of used to total file descriptors.
    -&nbsp; */
    -&nbsp;public class FileDescriptorRatioGauge extends RatioGauge {
    -<b class="fc">&nbsp;    private static boolean unixOperatingSystemMXBeanExists = false;</b>
    -&nbsp;
    -&nbsp;    private final OperatingSystemMXBean os;
    -&nbsp;
    -&nbsp;    static {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            Class.forName(&quot;com.sun.management.UnixOperatingSystemMXBean&quot;);</b>
    -<b class="fc">&nbsp;            unixOperatingSystemMXBeanExists = true;</b>
    -<b class="fc">&nbsp;        } catch (ClassNotFoundException e) {</b>
    -&nbsp;            // do nothing
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new gauge using the platform OS bean.
    -&nbsp;     */
    -&nbsp;    public FileDescriptorRatioGauge() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getOperatingSystemMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new gauge using the given OS bean.
    -&nbsp;     *
    -&nbsp;     * @param os an {@link OperatingSystemMXBean}
    -&nbsp;     */
    -<b class="fc">&nbsp;    public FileDescriptorRatioGauge(OperatingSystemMXBean os) {</b>
    -<b class="fc">&nbsp;        this.os = os;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected Ratio getRatio() {
    -<b class="fc">&nbsp;        if (unixOperatingSystemMXBeanExists &amp;&amp; os instanceof com.sun.management.UnixOperatingSystemMXBean) {</b>
    -<b class="fc">&nbsp;            final com.sun.management.UnixOperatingSystemMXBean unixOs = (com.sun.management.UnixOperatingSystemMXBean) os;</b>
    -<b class="fc">&nbsp;            return Ratio.of(unixOs.getOpenFileDescriptorCount(), unixOs.getMaxFileDescriptorCount());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            return Ratio.of(Double.NaN, Double.NaN);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-6.html
    deleted file mode 100644
    index 9a1050c762..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-6.html
    +++ /dev/null
    @@ -1,157 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GarbageCollectorMetricSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GarbageCollectorMetricSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GarbageCollectorMetricSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.GarbageCollectorMXBean;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the counts and elapsed times of garbage collections.
    -&nbsp; */
    -&nbsp;public class GarbageCollectorMetricSet implements MetricSet {
    -<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    -&nbsp;
    -&nbsp;    private final List&lt;GarbageCollectorMXBean&gt; garbageCollectors;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges for all discoverable garbage collectors.
    -&nbsp;     */
    -&nbsp;    public GarbageCollectorMetricSet() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getGarbageCollectorMXBeans());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges for the given collection of garbage collectors.
    -&nbsp;     *
    -&nbsp;     * @param garbageCollectors the garbage collectors
    -&nbsp;     */
    -<b class="fc">&nbsp;    public GarbageCollectorMetricSet(Collection&lt;GarbageCollectorMXBean&gt; garbageCollectors) {</b>
    -<b class="fc">&nbsp;        this.garbageCollectors = new ArrayList&lt;&gt;(garbageCollectors);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (final GarbageCollectorMXBean gc : garbageCollectors) {</b>
    -<b class="fc">&nbsp;            final String name = WHITESPACE.matcher(gc.getName()).replaceAll(&quot;-&quot;);</b>
    -<b class="fc">&nbsp;            gauges.put(name(name, &quot;count&quot;), (Gauge&lt;Long&gt;) gc::getCollectionCount);</b>
    -<b class="fc">&nbsp;            gauges.put(name(name, &quot;time&quot;), (Gauge&lt;Long&gt;) gc::getCollectionTime);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-7.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-7.html
    deleted file mode 100644
    index a71fd3acb3..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-7.html
    +++ /dev/null
    @@ -1,165 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JmxAttributeGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: JmxAttributeGauge (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">JmxAttributeGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import javax.management.JMException;
    -&nbsp;import javax.management.MBeanServerConnection;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Gauge} implementation which queries an {@link MBeanServerConnection} for an attribute of an object.
    -&nbsp; */
    -&nbsp;public class JmxAttributeGauge implements Gauge&lt;Object&gt; {
    -&nbsp;    private final MBeanServerConnection mBeanServerConn;
    -&nbsp;    private final ObjectName objectName;
    -&nbsp;    private final String attributeName;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new JmxAttributeGauge.
    -&nbsp;     *
    -&nbsp;     * @param objectName    the name of the object
    -&nbsp;     * @param attributeName the name of the object&#39;s attribute
    -&nbsp;     */
    -&nbsp;    public JmxAttributeGauge(ObjectName objectName, String attributeName) {
    -<b class="fc">&nbsp;        this(ManagementFactory.getPlatformMBeanServer(), objectName, attributeName);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new JmxAttributeGauge.
    -&nbsp;     *
    -&nbsp;     * @param mBeanServerConn the {@link MBeanServerConnection}
    -&nbsp;     * @param objectName      the name of the object
    -&nbsp;     * @param attributeName   the name of the object&#39;s attribute
    -&nbsp;     */
    -<b class="fc">&nbsp;    public JmxAttributeGauge(MBeanServerConnection mBeanServerConn, ObjectName objectName, String attributeName) {</b>
    -<b class="fc">&nbsp;        this.mBeanServerConn = mBeanServerConn;</b>
    -<b class="fc">&nbsp;        this.objectName = objectName;</b>
    -<b class="fc">&nbsp;        this.attributeName = attributeName;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Object getValue() {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return mBeanServerConn.getAttribute(getObjectName(), attributeName);</b>
    -<b class="fc">&nbsp;        } catch (IOException | JMException e) {</b>
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private ObjectName getObjectName() throws IOException {
    -<b class="fc">&nbsp;        if (objectName.isPattern()) {</b>
    -<b class="fc">&nbsp;            Set&lt;ObjectName&gt; foundNames = mBeanServerConn.queryNames(objectName, null);</b>
    -<b class="fc">&nbsp;            if (foundNames.size() == 1) {</b>
    -<b class="fc">&nbsp;                return foundNames.iterator().next();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return objectName;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-8.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-8.html
    deleted file mode 100644
    index a2fe6ef271..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-8.html
    +++ /dev/null
    @@ -1,155 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JvmAttributeGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: JvmAttributeGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">JvmAttributeGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.RuntimeMXBean;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the JVM name, vendor, and uptime.
    -&nbsp; */
    -&nbsp;public class JvmAttributeGaugeSet implements MetricSet {
    -&nbsp;    private final RuntimeMXBean runtime;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges.
    -&nbsp;     */
    -&nbsp;    public JvmAttributeGaugeSet() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getRuntimeMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges with the given {@link RuntimeMXBean}.
    -&nbsp;     *
    -&nbsp;     * @param runtime JVM management interface with access to system properties
    -&nbsp;     */
    -<b class="fc">&nbsp;    public JvmAttributeGaugeSet(RuntimeMXBean runtime) {</b>
    -<b class="fc">&nbsp;        this.runtime = runtime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;name&quot;, (Gauge&lt;String&gt;) runtime::getName);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;vendor&quot;, (Gauge&lt;String&gt;) () -&gt; String.format(Locale.US,</b>
    -&nbsp;                &quot;%s %s %s (%s)&quot;,
    -<b class="fc">&nbsp;                runtime.getVmVendor(),</b>
    -<b class="fc">&nbsp;                runtime.getVmName(),</b>
    -<b class="fc">&nbsp;                runtime.getVmVersion(),</b>
    -<b class="fc">&nbsp;                runtime.getSpecVersion()));</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;uptime&quot;, (Gauge&lt;Long&gt;) runtime::getUptime);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-9.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-9.html
    deleted file mode 100644
    index b4469883fd..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-9.html
    +++ /dev/null
    @@ -1,274 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MemoryUsageGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MemoryUsageGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MemoryUsageGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (37/37)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MemoryUsageGaugeSet$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MemoryUsageGaugeSet$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MemoryUsageGaugeSet$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (47/47)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.MemoryMXBean;
    -&nbsp;import java.lang.management.MemoryPoolMXBean;
    -&nbsp;import java.lang.management.MemoryUsage;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for JVM memory usage, including stats on heap vs. non-heap memory, plus
    -&nbsp; * GC-specific memory pools.
    -&nbsp; */
    -<b class="fc">&nbsp;public class MemoryUsageGaugeSet implements MetricSet {</b>
    -<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    -&nbsp;
    -&nbsp;    private final MemoryMXBean mxBean;
    -&nbsp;    private final List&lt;MemoryPoolMXBean&gt; memoryPools;
    -&nbsp;
    -&nbsp;    public MemoryUsageGaugeSet() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getMemoryMXBean(), ManagementFactory.getMemoryPoolMXBeans());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MemoryUsageGaugeSet(MemoryMXBean mxBean,
    -<b class="fc">&nbsp;                               Collection&lt;MemoryPoolMXBean&gt; memoryPools) {</b>
    -<b class="fc">&nbsp;        this.mxBean = mxBean;</b>
    -<b class="fc">&nbsp;        this.memoryPools = new ArrayList&lt;&gt;(memoryPools);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;total.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getInit() +</b>
    -<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getInit());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;total.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getUsed() +</b>
    -<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getUsed());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;total.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getMax() == -1 ?</b>
    -<b class="fc">&nbsp;                -1 : mxBean.getHeapMemoryUsage().getMax() + mxBean.getNonHeapMemoryUsage().getMax());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;total.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getCommitted() +</b>
    -<b class="fc">&nbsp;                mxBean.getNonHeapMemoryUsage().getCommitted());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getInit());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getUsed());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getMax());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getCommitted());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;heap.usage&quot;, new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="fc">&nbsp;                final MemoryUsage usage = mxBean.getHeapMemoryUsage();</b>
    -<b class="fc">&nbsp;                return Ratio.of(usage.getUsed(), usage.getMax());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getInit());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getUsed());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getMax());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getCommitted());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;non-heap.usage&quot;, new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="fc">&nbsp;                final MemoryUsage usage = mxBean.getNonHeapMemoryUsage();</b>
    -<b class="fc">&nbsp;                return Ratio.of(usage.getUsed(), usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        for (final MemoryPoolMXBean pool : memoryPools) {</b>
    -<b class="fc">&nbsp;            final String poolName = name(&quot;pools&quot;, WHITESPACE.matcher(pool.getName()).replaceAll(&quot;-&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;usage&quot;), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="fc">&nbsp;                    MemoryUsage usage = pool.getUsage();</b>
    -<b class="fc">&nbsp;                    return Ratio.of(usage.getUsed(),</b>
    -<b class="fc">&nbsp;                            usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;max&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getMax());</b>
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;used&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getUsed());</b>
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;committed&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getCommitted());</b>
    -&nbsp;
    -&nbsp;            // Only register GC usage metrics if the memory pool supports usage statistics.
    -<b class="fc">&nbsp;            if (pool.getCollectionUsage() != null) {</b>
    -<b class="fc">&nbsp;                gauges.put(name(poolName, &quot;used-after-gc&quot;), (Gauge&lt;Long&gt;) () -&gt;</b>
    -<b class="fc">&nbsp;                        pool.getCollectionUsage().getUsed());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            gauges.put(name(poolName, &quot;init&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getInit());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-a.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-a.html
    deleted file mode 100644
    index a5d6def34d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-a.html
    +++ /dev/null
    @@ -1,169 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDeadlockDetector</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDeadlockDetector (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDeadlockDetector</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashSet;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A utility class for detecting deadlocked threads.
    -&nbsp; */
    -&nbsp;public class ThreadDeadlockDetector {
    -&nbsp;    private static final int MAX_STACK_TRACE_DEPTH = 100;
    -&nbsp;
    -&nbsp;    private final ThreadMXBean threads;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new detector.
    -&nbsp;     */
    -&nbsp;    public ThreadDeadlockDetector() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new detector using the given {@link ThreadMXBean}.
    -&nbsp;     *
    -&nbsp;     * @param threads a {@link ThreadMXBean}
    -&nbsp;     */
    -<b class="fc">&nbsp;    public ThreadDeadlockDetector(ThreadMXBean threads) {</b>
    -<b class="fc">&nbsp;        this.threads = threads;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a set of diagnostic stack traces for any deadlocked threads. If no threads are
    -&nbsp;     * deadlocked, returns an empty set.
    -&nbsp;     *
    -&nbsp;     * @return stack traces for deadlocked threads or an empty set
    -&nbsp;     */
    -&nbsp;    public Set&lt;String&gt; getDeadlockedThreads() {
    -<b class="fc">&nbsp;        final long[] ids = threads.findDeadlockedThreads();</b>
    -<b class="fc">&nbsp;        if (ids != null) {</b>
    -<b class="fc">&nbsp;            final Set&lt;String&gt; deadlocks = new HashSet&lt;&gt;();</b>
    -<b class="fc">&nbsp;            for (ThreadInfo info : threads.getThreadInfo(ids, MAX_STACK_TRACE_DEPTH)) {</b>
    -<b class="fc">&nbsp;                final StringBuilder stackTrace = new StringBuilder();</b>
    -<b class="fc">&nbsp;                for (StackTraceElement element : info.getStackTrace()) {</b>
    -<b class="fc">&nbsp;                    stackTrace.append(&quot;\t at &quot;)</b>
    -<b class="fc">&nbsp;                            .append(element.toString())</b>
    -<b class="fc">&nbsp;                            .append(String.format(&quot;%n&quot;));</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                deadlocks.add(</b>
    -<b class="fc">&nbsp;                        String.format(&quot;%s locked on %s (owned by %s):%n%s&quot;,</b>
    -<b class="fc">&nbsp;                                info.getThreadName(),</b>
    -<b class="fc">&nbsp;                                info.getLockName(),</b>
    -<b class="fc">&nbsp;                                info.getLockOwnerName(),</b>
    -<b class="fc">&nbsp;                                stackTrace.toString()</b>
    -&nbsp;                        )
    -&nbsp;                );
    -&nbsp;            }
    -<b class="fc">&nbsp;            return Collections.unmodifiableSet(deadlocks);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return Collections.emptySet();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-b.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-b.html
    deleted file mode 100644
    index 887eeae2b5..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-b.html
    +++ /dev/null
    @@ -1,217 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDump</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDump (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDump</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (40/48)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.lang.management.LockInfo;
    -&nbsp;import java.lang.management.MonitorInfo;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A convenience class for getting a thread dump.
    -&nbsp; */
    -&nbsp;public class ThreadDump {
    -&nbsp;
    -&nbsp;    private final ThreadMXBean threadMXBean;
    -&nbsp;
    -<b class="fc">&nbsp;    public ThreadDump(ThreadMXBean threadMXBean) {</b>
    -<b class="fc">&nbsp;        this.threadMXBean = threadMXBean;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Dumps all of the threads&#39; current information, including synchronization, to an output stream.
    -&nbsp;     *
    -&nbsp;     * @param out an output stream
    -&nbsp;     */
    -&nbsp;    public void dump(OutputStream out) {
    -<b class="fc">&nbsp;        dump(true, true, out);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Dumps all of the threads&#39; current information, optionally including synchronization, to an output stream.
    -&nbsp;     *
    -&nbsp;     * Having control over including synchronization info allows using this method (and its wrappers, i.e.
    -&nbsp;     * ThreadDumpServlet) in environments where getting object monitor and/or ownable synchronizer usage is not
    -&nbsp;     * supported. It can also speed things up.
    -&nbsp;     *
    -&nbsp;     * See {@link ThreadMXBean#dumpAllThreads(boolean, boolean)}
    -&nbsp;     *
    -&nbsp;     * @param lockedMonitors dump all locked monitors if true
    -&nbsp;     * @param lockedSynchronizers dump all locked ownable synchronizers if true
    -&nbsp;     * @param out an output stream
    -&nbsp;     */
    -&nbsp;    public void dump(boolean lockedMonitors, boolean lockedSynchronizers, OutputStream out) {
    -<b class="fc">&nbsp;        final ThreadInfo[] threads = this.threadMXBean.dumpAllThreads(lockedMonitors, lockedSynchronizers);</b>
    -<b class="fc">&nbsp;        final PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, UTF_8));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (int ti = threads.length - 1; ti &gt;= 0; ti--) {</b>
    -<b class="fc">&nbsp;            final ThreadInfo t = threads[ti];</b>
    -<b class="fc">&nbsp;            writer.printf(&quot;\&quot;%s\&quot; id=%d state=%s&quot;,</b>
    -<b class="fc">&nbsp;                    t.getThreadName(),</b>
    -<b class="fc">&nbsp;                    t.getThreadId(),</b>
    -<b class="fc">&nbsp;                    t.getThreadState());</b>
    -<b class="fc">&nbsp;            final LockInfo lock = t.getLockInfo();</b>
    -<b class="fc">&nbsp;            if (lock != null &amp;&amp; t.getThreadState() != Thread.State.BLOCKED) {</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;%n    - waiting on &lt;0x%08x&gt; (a %s)&quot;,</b>
    -<b class="fc">&nbsp;                        lock.getIdentityHashCode(),</b>
    -<b class="fc">&nbsp;                        lock.getClassName());</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;%n    - locked &lt;0x%08x&gt; (a %s)&quot;,</b>
    -<b class="fc">&nbsp;                        lock.getIdentityHashCode(),</b>
    -<b class="fc">&nbsp;                        lock.getClassName());</b>
    -<b class="fc">&nbsp;            } else if (lock != null &amp;&amp; t.getThreadState() == Thread.State.BLOCKED) {</b>
    -<b class="nc">&nbsp;                writer.printf(&quot;%n    - waiting to lock &lt;0x%08x&gt; (a %s)&quot;,</b>
    -<b class="nc">&nbsp;                        lock.getIdentityHashCode(),</b>
    -<b class="nc">&nbsp;                        lock.getClassName());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (t.isSuspended()) {</b>
    -<b class="nc">&nbsp;                writer.print(&quot; (suspended)&quot;);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (t.isInNative()) {</b>
    -<b class="fc">&nbsp;                writer.print(&quot; (running in native)&quot;);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            writer.println();</b>
    -<b class="fc">&nbsp;            if (t.getLockOwnerName() != null) {</b>
    -<b class="nc">&nbsp;                writer.printf(&quot;     owned by %s id=%d%n&quot;, t.getLockOwnerName(), t.getLockOwnerId());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final StackTraceElement[] elements = t.getStackTrace();</b>
    -<b class="fc">&nbsp;            final MonitorInfo[] monitors = t.getLockedMonitors();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (int i = 0; i &lt; elements.length; i++) {</b>
    -<b class="fc">&nbsp;                final StackTraceElement element = elements[i];</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;    at %s%n&quot;, element);</b>
    -<b class="fc">&nbsp;                for (int j = 1; j &lt; monitors.length; j++) {</b>
    -<b class="nc">&nbsp;                    final MonitorInfo monitor = monitors[j];</b>
    -<b class="nc">&nbsp;                    if (monitor.getLockedStackDepth() == i) {</b>
    -<b class="nc">&nbsp;                        writer.printf(&quot;      - locked %s%n&quot;, monitor);</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -<b class="fc">&nbsp;            writer.println();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final LockInfo[] locks = t.getLockedSynchronizers();</b>
    -<b class="fc">&nbsp;            if (locks.length &gt; 0) {</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;    Locked synchronizers: count = %d%n&quot;, locks.length);</b>
    -<b class="fc">&nbsp;                for (LockInfo l : locks) {</b>
    -<b class="fc">&nbsp;                    writer.printf(&quot;      - %s%n&quot;, l);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                writer.println();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        writer.println();</b>
    -<b class="fc">&nbsp;        writer.flush();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-c.html b/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-c.html
    deleted file mode 100644
    index 365b02e7ca..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-18/sources/source-c.html
    +++ /dev/null
    @@ -1,185 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadStatesGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadStatesGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadStatesGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the number of threads in their various states and deadlock detection.
    -&nbsp; */
    -&nbsp;public class ThreadStatesGaugeSet implements MetricSet {
    -&nbsp;
    -&nbsp;    // do not compute stack traces.
    -&nbsp;    private final static int STACK_TRACE_DEPTH = 0;
    -&nbsp;
    -&nbsp;    private final ThreadMXBean threads;
    -&nbsp;    private final ThreadDeadlockDetector deadlockDetector;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the default MXBeans.
    -&nbsp;     */
    -&nbsp;    public ThreadStatesGaugeSet() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the given MXBean and detector.
    -&nbsp;     *
    -&nbsp;     * @param threads          a thread MXBean
    -&nbsp;     * @param deadlockDetector a deadlock detector
    -&nbsp;     */
    -&nbsp;    public ThreadStatesGaugeSet(ThreadMXBean threads,
    -<b class="fc">&nbsp;                                ThreadDeadlockDetector deadlockDetector) {</b>
    -<b class="fc">&nbsp;        this.threads = threads;</b>
    -<b class="fc">&nbsp;        this.deadlockDetector = deadlockDetector;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (final Thread.State state : Thread.State.values()) {</b>
    -<b class="fc">&nbsp;            gauges.put(name(state.toString().toLowerCase(), &quot;count&quot;),</b>
    -<b class="fc">&nbsp;                    (Gauge&lt;Object&gt;) () -&gt; getThreadCount(state));</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        gauges.put(&quot;count&quot;, (Gauge&lt;Integer&gt;) threads::getThreadCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;daemon.count&quot;, (Gauge&lt;Integer&gt;) threads::getDaemonThreadCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;peak.count&quot;, (Gauge&lt;Integer&gt;) threads::getPeakThreadCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;total_started.count&quot;, (Gauge&lt;Long&gt;) threads::getTotalStartedThreadCount);</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;deadlock.count&quot;, (Gauge&lt;Integer&gt;) () -&gt; deadlockDetector.getDeadlockedThreads().size());</b>
    -<b class="fc">&nbsp;        gauges.put(&quot;deadlocks&quot;, (Gauge&lt;Set&lt;String&gt;&gt;) deadlockDetector::getDeadlockedThreads);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private int getThreadCount(Thread.State state) {
    -<b class="fc">&nbsp;        final ThreadInfo[] allThreads = getThreadInfo();</b>
    -<b class="fc">&nbsp;        int count = 0;</b>
    -<b class="fc">&nbsp;        for (ThreadInfo info : allThreads) {</b>
    -<b class="fc">&nbsp;            if (info != null &amp;&amp; info.getThreadState() == state) {</b>
    -<b class="fc">&nbsp;                count++;</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return count;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    ThreadInfo[] getThreadInfo() {
    -<b class="fc">&nbsp;        return threads.getThreadInfo(threads.getAllThreadIds(), STACK_TRACE_DEPTH);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index.html
    deleted file mode 100644
    index dbc57624d2..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-19/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index fc4ace51f2..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 18d803126e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 21262fd872..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 7f47c2bf77..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_LINE.html
    deleted file mode 100644
    index aa1eae798f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 8d6b3175ad..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 053ea88d3b..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index c8b3075dfe..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 5328245106..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-19/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-19/sources/source-1.html
    deleted file mode 100644
    index 56a47acc3e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-19/sources/source-1.html
    +++ /dev/null
    @@ -1,268 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.log4j2</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.log4j2)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (29/30)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedAppender$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.log4j2;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import org.apache.logging.log4j.core.Appender;
    -&nbsp;import org.apache.logging.log4j.core.Filter;
    -&nbsp;import org.apache.logging.log4j.core.Layout;
    -&nbsp;import org.apache.logging.log4j.core.LogEvent;
    -&nbsp;import org.apache.logging.log4j.core.appender.AbstractAppender;
    -&nbsp;import org.apache.logging.log4j.core.config.plugins.Plugin;
    -&nbsp;import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
    -&nbsp;import org.apache.logging.log4j.core.config.plugins.PluginFactory;
    -&nbsp;
    -&nbsp;import java.io.Serializable;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Log4J 2.x {@link Appender} which has seven meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;@Plugin(name = &quot;MetricsAppender&quot;, category = &quot;Core&quot;, elementType = &quot;appender&quot;)
    -&nbsp;public class InstrumentedAppender extends AbstractAppender {
    -&nbsp;
    -&nbsp;    private transient final MetricRegistry registry;
    -&nbsp;
    -&nbsp;    private transient Meter all;
    -&nbsp;    private transient Meter trace;
    -&nbsp;    private transient Meter debug;
    -&nbsp;    private transient Meter info;
    -&nbsp;    private transient Meter warn;
    -&nbsp;    private transient Meter error;
    -&nbsp;    private transient Meter fatal;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName     the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     * @param filter           The Filter to associate with the Appender.
    -&nbsp;     * @param layout           The layout to use to format the event.
    -&nbsp;     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
    -&nbsp;     *                         logged and then passed to the application.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName, Filter filter, Layout&lt;? extends Serializable&gt; layout, boolean ignoreExceptions) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName), filter, layout, ignoreExceptions);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, null, null, true);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry         the metric registry
    -&nbsp;     * @param filter           The Filter to associate with the Appender.
    -&nbsp;     * @param layout           The layout to use to format the event.
    -&nbsp;     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
    -&nbsp;     *                         logged and then passed to the application.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(MetricRegistry registry, Filter filter, Layout&lt;? extends Serializable&gt; layout, boolean ignoreExceptions) {
    -<b class="fc">&nbsp;        super(name(Appender.class), filter, layout, ignoreExceptions);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given appender name and registry.
    -&nbsp;     *
    -&nbsp;     * @param appenderName The name of the appender.
    -&nbsp;     * @param registry     the metric registry
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String appenderName, MetricRegistry registry) {
    -<b class="fc">&nbsp;        super(appenderName, null, null, true);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @PluginFactory
    -&nbsp;    public static InstrumentedAppender createAppender(
    -&nbsp;            @PluginAttribute(&quot;name&quot;) String name,
    -&nbsp;            @PluginAttribute(value = &quot;registryName&quot;, defaultString = &quot;log4j2Metrics&quot;) String registry) {
    -<b class="fc">&nbsp;        return new InstrumentedAppender(name, SharedMetricRegistries.getOrCreate(registry));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        this.fatal = registry.meter(name(getName(), &quot;fatal&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void append(LogEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().getStandardLevel()) {</b>
    -&nbsp;            case TRACE:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case DEBUG:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case INFO:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case WARN:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case ERROR:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case FATAL:
    -<b class="fc">&nbsp;                fatal.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index.html
    deleted file mode 100644
    index a99e348bd1..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index c5f5b85d62..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 7c0505aa90..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index e003c00082..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index c2050704b2..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 8b5f2fba70..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 8fe6af8c05..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index e1d09dfde9..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index e041b3d60a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 57ab2c1a2a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1a/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-1a/sources/source-1.html
    deleted file mode 100644
    index 9abe2bceda..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1a/sources/source-1.html
    +++ /dev/null
    @@ -1,195 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.logback</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.logback)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.logback;
    -&nbsp;
    -&nbsp;import ch.qos.logback.classic.Level;
    -&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    -&nbsp;import ch.qos.logback.core.Appender;
    -&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    -&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    -&nbsp;
    -&nbsp;    private Meter all;
    -&nbsp;    private Meter trace;
    -&nbsp;    private Meter debug;
    -&nbsp;    private Meter info;
    -&nbsp;    private Meter warn;
    -&nbsp;    private Meter error;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender() {
    -<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void append(ILoggingEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    -&nbsp;            case Level.TRACE_INT:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.DEBUG_INT:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.INFO_INT:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.WARN_INT:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.ERROR_INT:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index.html
    deleted file mode 100644
    index 08f2965c76..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index fed280ec71..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index a2542f3cde..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 4ff13824ff..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 23d653ab91..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 60d541774c..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 4d542648fd..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index cae1056d52..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index a86ff0e298..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 216e805f8a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-1.html
    deleted file mode 100644
    index cd85b10449..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-1.html
    +++ /dev/null
    @@ -1,387 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AbstractInstrumentedFilter (com.codahale.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AbstractInstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/45)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.Filter;
    -&nbsp;import javax.servlet.FilterChain;
    -&nbsp;import javax.servlet.FilterConfig;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.ServletRequest;
    -&nbsp;import javax.servlet.ServletResponse;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import javax.servlet.http.HttpServletResponseWrapper;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Map.Entry;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    -&nbsp; * codes being returned.
    -&nbsp; */
    -<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    -&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    -&nbsp;
    -&nbsp;    private final String otherMetricName;
    -&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    -&nbsp;    private final String registryAttribute;
    -&nbsp;
    -&nbsp;    // initialized after call of init method
    -&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    -&nbsp;    private Meter otherMeter;
    -&nbsp;    private Meter timeoutsMeter;
    -&nbsp;    private Meter errorsMeter;
    -&nbsp;    private Counter activeRequests;
    -&nbsp;    private Timer requestTimer;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     *
    -&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    -&nbsp;     *                               servlet context
    -&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    -&nbsp;     *                               interested in.
    -&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    -&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    -<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    -<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    -<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    -<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    -<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    -<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    -<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    -<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    -<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    -<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    -<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    -<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    -<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    -<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    -&nbsp;        final MetricRegistry metricsRegistry;
    -&nbsp;
    -<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    -<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    -<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return metricsRegistry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void doFilter(ServletRequest request,
    -&nbsp;                         ServletResponse response,
    -&nbsp;                         FilterChain chain) throws IOException, ServletException {
    -<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    -&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    -<b class="nc">&nbsp;        activeRequests.inc();</b>
    -<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    -<b class="nc">&nbsp;        boolean error = false;</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    -<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    -<b class="nc">&nbsp;            error = true;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                if (error) {</b>
    -<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void markMeterForStatusCode(int status) {
    -<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    -<b class="nc">&nbsp;        if (metric != null) {</b>
    -<b class="nc">&nbsp;            metric.mark();</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            otherMeter.mark();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    -&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    -<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    -&nbsp;
    -&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    -<b class="nc">&nbsp;            super(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc, String msg) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void setStatus(int sc) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;        public void setStatus(int sc, String sm) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc, sm);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int getStatus() {
    -<b class="nc">&nbsp;            return httpStatus;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class AsyncResultListener implements AsyncListener {
    -&nbsp;        private Timer.Context context;
    -<b class="nc">&nbsp;        private boolean done = false;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    -<b class="nc">&nbsp;            this.context = context;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            if (!done) {</b>
    -<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            errorsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -&nbsp;
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-2.html
    deleted file mode 100644
    index b66c6e749f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-2.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilter (com.codahale.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    -&nbsp;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    -&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    -&nbsp; * &lt;pre&gt;{@code
    -&nbsp; * &lt;filter&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;filter-class&gt;com.codahale.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    -&nbsp; * &lt;/filter&gt;
    -&nbsp; * &lt;filter-mapping&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    -&nbsp; * &lt;/filter-mapping&gt;
    -&nbsp; * }&lt;/pre&gt;
    -&nbsp; */
    -&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    -<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    -&nbsp;    private static final int OK = 200;
    -&nbsp;    private static final int CREATED = 201;
    -&nbsp;    private static final int NO_CONTENT = 204;
    -&nbsp;    private static final int BAD_REQUEST = 400;
    -&nbsp;    private static final int NOT_FOUND = 404;
    -&nbsp;    private static final int SERVER_ERROR = 500;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     */
    -&nbsp;    public InstrumentedFilter() {
    -<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    -<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    -<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-3.html
    deleted file mode 100644
    index d6ca81b1b3..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1b/sources/source-3.html
    +++ /dev/null
    @@ -1,131 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilterContextListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilterContextListener (com.codahale.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilterContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletContextEvent;
    -&nbsp;import javax.servlet.ServletContextListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    -&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    -&nbsp; * application.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    -&nbsp;    /**
    -&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;     */
    -&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    -<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index.html
    deleted file mode 100644
    index f86cef87c7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index aa581c5c6a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index d76fdc7412..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 615054a179..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 9e38816a24..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 1be0471788..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index c0bc2bd4b5..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 592c3589e1..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index b6b57daee5..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index c95cf65403..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-1.html
    deleted file mode 100644
    index 013ccff6d6..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-1.html
    +++ /dev/null
    @@ -1,293 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AdminServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AdminServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AdminServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletConfig;
    -&nbsp;import javax.servlet.ServletContext;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.text.MessageFormat;
    -&nbsp;
    -<b class="fc">&nbsp;public class AdminServlet extends HttpServlet {</b>
    -&nbsp;    public static final String DEFAULT_HEALTHCHECK_URI = &quot;/healthcheck&quot;;
    -&nbsp;    public static final String DEFAULT_METRICS_URI = &quot;/metrics&quot;;
    -&nbsp;    public static final String DEFAULT_PING_URI = &quot;/ping&quot;;
    -&nbsp;    public static final String DEFAULT_THREADS_URI = &quot;/threads&quot;;
    -&nbsp;    public static final String DEFAULT_CPU_PROFILE_URI = &quot;/pprof&quot;;
    -&nbsp;
    -&nbsp;    public static final String METRICS_ENABLED_PARAM_KEY = &quot;metrics-enabled&quot;;
    -&nbsp;    public static final String METRICS_URI_PARAM_KEY = &quot;metrics-uri&quot;;
    -&nbsp;    public static final String PING_ENABLED_PARAM_KEY = &quot;ping-enabled&quot;;
    -&nbsp;    public static final String PING_URI_PARAM_KEY = &quot;ping-uri&quot;;
    -&nbsp;    public static final String THREADS_ENABLED_PARAM_KEY = &quot;threads-enabled&quot;;
    -&nbsp;    public static final String THREADS_URI_PARAM_KEY = &quot;threads-uri&quot;;
    -&nbsp;    public static final String HEALTHCHECK_ENABLED_PARAM_KEY = &quot;healthcheck-enabled&quot;;
    -&nbsp;    public static final String HEALTHCHECK_URI_PARAM_KEY = &quot;healthcheck-uri&quot;;
    -&nbsp;    public static final String SERVICE_NAME_PARAM_KEY = &quot;service-name&quot;;
    -&nbsp;    public static final String CPU_PROFILE_ENABLED_PARAM_KEY = &quot;cpu-profile-enabled&quot;;
    -&nbsp;    public static final String CPU_PROFILE_URI_PARAM_KEY = &quot;cpu-profile-uri&quot;;
    -&nbsp;
    -&nbsp;    private static final String BASE_TEMPLATE =
    -&nbsp;            &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot;%n&quot; +
    -&nbsp;                    &quot;        \&quot;http://www.w3.org/TR/html4/loose.dtd\&quot;&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;html&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;head&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;title&gt;Metrics{10}&lt;/title&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/head&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;body&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;h1&gt;Operational Menu{10}&lt;/h1&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;ul&gt;%n&quot; +
    -&nbsp;                    &quot;%s&quot; +
    -&nbsp;                    &quot;  &lt;/ul&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/body&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/html&gt;&quot;;
    -&nbsp;    private static final String METRICS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{0}{1}?pretty=true\&quot;&gt;Metrics&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;    private static final String PING_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{2}{3}\&quot;&gt;Ping&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String THREADS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{4}{5}\&quot;&gt;Threads&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String HEALTHCHECK_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{6}{7}?pretty=true\&quot;&gt;Healthcheck&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String CPU_PROFILE_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}\&quot;&gt;CPU Profile&lt;/a&gt;&lt;/li&gt;%n&quot; +
    -&nbsp;            &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}?state=blocked\&quot;&gt;CPU Contention&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;
    -&nbsp;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/html&quot;;
    -&nbsp;    private static final long serialVersionUID = -2850794040708785318L;
    -&nbsp;
    -&nbsp;    private transient HealthCheckServlet healthCheckServlet;
    -&nbsp;    private transient MetricsServlet metricsServlet;
    -&nbsp;    private transient PingServlet pingServlet;
    -&nbsp;    private transient ThreadDumpServlet threadDumpServlet;
    -&nbsp;    private transient CpuProfileServlet cpuProfileServlet;
    -&nbsp;    private transient boolean metricsEnabled;
    -&nbsp;    private transient String metricsUri;
    -&nbsp;    private transient boolean pingEnabled;
    -&nbsp;    private transient String pingUri;
    -&nbsp;    private transient boolean threadsEnabled;
    -&nbsp;    private transient String threadsUri;
    -&nbsp;    private transient boolean healthcheckEnabled;
    -&nbsp;    private transient String healthcheckUri;
    -&nbsp;    private transient boolean cpuProfileEnabled;
    -&nbsp;    private transient String cpuProfileUri;
    -&nbsp;    private transient String serviceName;
    -&nbsp;    private transient String pageContentTemplate;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        final StringBuilder servletLinks = new StringBuilder();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.metricsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.metricsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(METRICS_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.metricsServlet = new MetricsServlet();</b>
    -<b class="fc">&nbsp;        metricsServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.pingEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.pingEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(PING_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.pingServlet = new PingServlet();</b>
    -<b class="fc">&nbsp;        pingServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.threadsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.threadsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(THREADS_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.threadDumpServlet = new ThreadDumpServlet();</b>
    -<b class="fc">&nbsp;        threadDumpServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.healthcheckEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.healthcheckEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(HEALTHCHECK_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.healthCheckServlet = new HealthCheckServlet();</b>
    -<b class="fc">&nbsp;        healthCheckServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.cpuProfileEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.cpuProfileEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(CPU_PROFILE_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.cpuProfileServlet = new CpuProfileServlet();</b>
    -<b class="fc">&nbsp;        cpuProfileServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);</b>
    -<b class="fc">&nbsp;        this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);</b>
    -<b class="fc">&nbsp;        this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);</b>
    -<b class="fc">&nbsp;        this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);</b>
    -<b class="fc">&nbsp;        this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);</b>
    -<b class="fc">&nbsp;        this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String path = req.getContextPath() + req.getServletPath();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,</b>
    -&nbsp;                    threadsUri, path, healthcheckUri, path, cpuProfileUri,
    -<b class="fc">&nbsp;                    serviceName == null ? &quot;&quot; : &quot; (&quot; + serviceName + &quot;)&quot;));</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String uri = req.getPathInfo();</b>
    -<b class="fc">&nbsp;        if (uri == null || uri.equals(&quot;/&quot;)) {</b>
    -<b class="fc">&nbsp;            super.service(req, resp);</b>
    -<b class="nc">&nbsp;        } else if (uri.equals(healthcheckUri)) {</b>
    -<b class="nc">&nbsp;            if (healthcheckEnabled) {</b>
    -<b class="nc">&nbsp;                healthCheckServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.startsWith(metricsUri)) {</b>
    -<b class="nc">&nbsp;            if (metricsEnabled) {</b>
    -<b class="nc">&nbsp;                metricsServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(pingUri)) {</b>
    -<b class="nc">&nbsp;            if (pingEnabled) {</b>
    -<b class="nc">&nbsp;                pingServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(threadsUri)) {</b>
    -<b class="nc">&nbsp;            if (threadsEnabled) {</b>
    -<b class="nc">&nbsp;                threadDumpServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(cpuProfileUri)) {</b>
    -<b class="nc">&nbsp;            if (cpuProfileEnabled) {</b>
    -<b class="nc">&nbsp;                cpuProfileServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static String getParam(String initParam, String defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : initParam;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-2.html
    deleted file mode 100644
    index 94d81a0213..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-2.html
    +++ /dev/null
    @@ -1,183 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CpuProfileServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CpuProfileServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CpuProfileServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.concurrent.locks.Lock;
    -&nbsp;import java.util.concurrent.locks.ReentrantLock;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import com.papertrail.profiler.CpuProfile;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a &lt;a href=&quot;https://github.com/gperftools/gperftools&quot;&gt;pprof&lt;/a&gt; parseable response.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CpuProfileServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = -668666696530287501L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;pprof/raw&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -<b class="fc">&nbsp;    private final Lock lock = new ReentrantLock();</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -&nbsp;
    -<b class="fc">&nbsp;        int duration = 10;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;duration&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                duration = Integer.parseInt(req.getParameter(&quot;duration&quot;));</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                duration = 10;</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        int frequency = 100;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;frequency&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                frequency = Integer.parseInt(req.getParameter(&quot;frequency&quot;));</b>
    -<b class="nc">&nbsp;                frequency = Math.min(Math.max(frequency, 1), 1000);</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                frequency = 100;</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        final Thread.State state;
    -<b class="fc">&nbsp;        if (&quot;blocked&quot;.equalsIgnoreCase(req.getParameter(&quot;state&quot;))) {</b>
    -<b class="nc">&nbsp;            state = Thread.State.BLOCKED;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            state = Thread.State.RUNNABLE;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            doProfile(output, duration, frequency, state);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
    -<b class="fc">&nbsp;        if (lock.tryLock()) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),</b>
    -&nbsp;                        frequency, state);
    -<b class="fc">&nbsp;                if (profile == null) {</b>
    -<b class="nc">&nbsp;                    throw new RuntimeException(&quot;could not create CpuProfile&quot;);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                profile.writeGoogleProfile(out);</b>
    -&nbsp;                return;
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                lock.unlock();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        throw new RuntimeException(&quot;Only one profile request may be active at a time&quot;);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-3.html
    deleted file mode 100644
    index 10c3f4c66d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-3.html
    +++ /dev/null
    @@ -1,325 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.codahale.metrics.health.HealthCheckFilter;
    -&nbsp;import com.codahale.metrics.health.HealthCheckRegistry;
    -&nbsp;import com.codahale.metrics.json.HealthCheckModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletConfig;
    -&nbsp;import javax.servlet.ServletContext;
    -&nbsp;import javax.servlet.ServletContextEvent;
    -&nbsp;import javax.servlet.ServletContextListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;
    -&nbsp;public class HealthCheckServlet extends HttpServlet {
    -<b class="nc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract HealthCheckRegistry getHealthCheckRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
    -&nbsp;         * if the health checks should be run in the servlet worker thread.
    -&nbsp;         */
    -&nbsp;        protected ExecutorService getExecutorService() {
    -&nbsp;            // don&#39;t use a thread pool by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
    -&nbsp;         * or {@link HealthCheckFilter#ALL} if the default should be used.
    -&nbsp;         */
    -&nbsp;        protected HealthCheckFilter getHealthCheckFilter() {
    -<b class="nc">&nbsp;            return HealthCheckFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ObjectMapper} that shall be used to render health checks,
    -&nbsp;         * or {@code null} if the default object mapper should be used.
    -&nbsp;         */
    -&nbsp;        protected ObjectMapper getObjectMapper() {
    -&nbsp;            // don&#39;t use an object mapper by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="nc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + &quot;.executor&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + &quot;.healthCheckFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + &quot;.mapper&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + &quot;.httpStatusIndicator&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -8432996484889177321L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;    private static final String HTTP_STATUS_INDICATOR_PARAM = &quot;httpStatusIndicator&quot;;
    -&nbsp;
    -&nbsp;    private transient HealthCheckRegistry registry;
    -&nbsp;    private transient ExecutorService executorService;
    -&nbsp;    private transient HealthCheckFilter filter;
    -&nbsp;    private transient ObjectMapper mapper;
    -&nbsp;    private transient boolean httpStatusIndicator;
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet(HealthCheckRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof HealthCheckRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (HealthCheckRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a HealthCheckRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);</b>
    -<b class="fc">&nbsp;        if (executorAttr instanceof ExecutorService) {</b>
    -<b class="fc">&nbsp;            this.executorService = (ExecutorService) executorAttr;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);</b>
    -<b class="fc">&nbsp;        if (filterAttr instanceof HealthCheckFilter) {</b>
    -<b class="fc">&nbsp;            filter = (HealthCheckFilter) filterAttr;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = HealthCheckFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);</b>
    -<b class="fc">&nbsp;        if (mapperAttr instanceof ObjectMapper) {</b>
    -<b class="fc">&nbsp;            this.mapper = (ObjectMapper) mapperAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.mapper = new ObjectMapper();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.mapper.registerModule(new HealthCheckModule());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);</b>
    -<b class="fc">&nbsp;        if (httpStatusIndicatorAttr instanceof Boolean) {</b>
    -<b class="nc">&nbsp;            this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.httpStatusIndicator = true;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -<b class="fc">&nbsp;        super.destroy();</b>
    -<b class="fc">&nbsp;        registry.shutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = runHealthChecks();</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (results.isEmpty()) {</b>
    -<b class="fc">&nbsp;            resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);</b>
    -<b class="fc">&nbsp;            final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);</b>
    -<b class="fc">&nbsp;            final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;</b>
    -<b class="fc">&nbsp;            if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {</b>
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            getWriter(req).writeValue(output, results);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    -<b class="fc">&nbsp;        if (executorService == null) {</b>
    -<b class="nc">&nbsp;            return registry.runHealthChecks(filter);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return registry.runHealthChecks(executorService, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static boolean isAllHealthy(Map&lt;String, HealthCheck.Result&gt; results) {
    -<b class="fc">&nbsp;        for (HealthCheck.Result result : results.values()) {</b>
    -<b class="fc">&nbsp;            if (!result.isHealthy()) {</b>
    -<b class="fc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    // visible for testing
    -&nbsp;    ObjectMapper getMapper() {
    -<b class="fc">&nbsp;        return mapper;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-4.html
    deleted file mode 100644
    index fa79054c74..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-4.html
    +++ /dev/null
    @@ -1,329 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (44/44)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetricsServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (14/18)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletConfig;
    -&nbsp;import javax.servlet.ServletContext;
    -&nbsp;import javax.servlet.ServletContextEvent;
    -&nbsp;import javax.servlet.ServletContextListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.json.MetricsModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;import com.fasterxml.jackson.databind.util.JSONPObject;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A servlet which returns the metrics in a given registry as an {@code application/json} response.
    -&nbsp; */
    -&nbsp;public class MetricsServlet extends HttpServlet {
    -&nbsp;    /**
    -&nbsp;     * An abstract {@link ServletContextListener} which allows you to programmatically inject the
    -&nbsp;     * {@link MetricRegistry}, rate and duration units, and allowed origin for
    -&nbsp;     * {@link MetricsServlet}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
    -&nbsp;         * default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getRateUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getDurationUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@code Access-Control-Allow-Origin} header value, if any.
    -&nbsp;         */
    -&nbsp;        protected String getAllowedOrigin() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the name of the parameter used to specify the jsonp callback, if any.
    -&nbsp;         */
    -&nbsp;        protected String getJsonpCallbackParameter() {
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected MetricFilter getMetricFilter() {
    -&nbsp;            // use the default
    -<b class="fc">&nbsp;            return MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="fc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRICS_REGISTRY, getMetricRegistry());</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRIC_FILTER, getMetricFilter());</b>
    -<b class="fc">&nbsp;            if (getDurationUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getRateUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getAllowedOrigin() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getJsonpCallbackParameter() != null) {</b>
    -<b class="nc">&nbsp;                context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.rateUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.durationUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + &quot;.showSamples&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + &quot;.allowedOrigin&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + &quot;.metricFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + &quot;.jsonpCallback&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = 1049773947734939602L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;
    -&nbsp;    protected String allowedOrigin;
    -&nbsp;    protected String jsonpParamName;
    -&nbsp;    protected transient MetricRegistry registry;
    -&nbsp;    protected transient ObjectMapper mapper;
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(METRICS_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof MetricRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (MetricRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a MetricRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);</b>
    -<b class="fc">&nbsp;        this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        setupMetricsModule(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void setupMetricsModule(ServletContext context) {
    -<b class="fc">&nbsp;        final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));</b>
    -<b class="fc">&nbsp;        MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);</b>
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,</b>
    -&nbsp;                durationUnit,
    -&nbsp;                showSamples,
    -&nbsp;                filter));
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        if (allowedOrigin != null) {</b>
    -<b class="fc">&nbsp;            resp.setHeader(&quot;Access-Control-Allow-Origin&quot;, allowedOrigin);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            if (jsonpParamName != null &amp;&amp; req.getParameter(jsonpParamName) != null) {</b>
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, registry);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));</b>
    -<b class="fc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    -<b class="fc">&nbsp;            return defaultValue;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-5.html
    deleted file mode 100644
    index bb71277ce1..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-5.html
    +++ /dev/null
    @@ -1,134 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PingServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PingServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PingServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} {@code &quot;pong&quot;} response.
    -&nbsp; */
    -<b class="fc">&nbsp;public class PingServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = 3772654177231086757L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;    private static final String CONTENT = &quot;pong&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(CONTENT);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-6.html
    deleted file mode 100644
    index e25c1cc204..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1c/sources/source-6.html
    +++ /dev/null
    @@ -1,159 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDumpServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDumpServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDumpServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.jvm.ThreadDump;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
    -&nbsp; * the VM. Only responds to {@code GET} requests.
    -&nbsp; */
    -<b class="fc">&nbsp;public class ThreadDumpServlet extends HttpServlet {</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -2690343532336103046L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;
    -&nbsp;    private transient ThreadDump threadDump;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init() throws ServletException {
    -&nbsp;        try {
    -&nbsp;            // Some PaaS like Google App Engine blacklist java.lang.managament
    -<b class="fc">&nbsp;            this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());</b>
    -<b class="nc">&nbsp;        } catch (NoClassDefFoundError ncdfe) {</b>
    -<b class="nc">&nbsp;            this.threadDump = null; // we won&#39;t be able to provide thread dump</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final boolean includeMonitors = getParam(req.getParameter(&quot;monitors&quot;), true);</b>
    -<b class="fc">&nbsp;        final boolean includeSynchronizers = getParam(req.getParameter(&quot;synchronizers&quot;), true);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (threadDump == null) {</b>
    -<b class="nc">&nbsp;            resp.getWriter().println(&quot;Sorry your runtime environment does not allow to dump threads.&quot;);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            threadDump.dump(includeMonitors, includeSynchronizers, output);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Boolean getParam(String initParam, boolean defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index.html
    deleted file mode 100644
    index 6dcaa74214..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index c777b7760e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index e07ab4ba92..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 67a8c69e54..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index ad06f1b112..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 59b0ec355d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 22ee6aa165..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index c15bcce057..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 59ede161e0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index b4683f2d28..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1d/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-1d/sources/source-1.html
    deleted file mode 100644
    index af29399007..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1d/sources/source-1.html
    +++ /dev/null
    @@ -1,220 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsStatsCounter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.caffeine3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsStatsCounter (io.dropwizard.metrics.caffeine3)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsStatsCounter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;/*
    -&nbsp; * Copyright 2016 Ben Manes. All Rights Reserved.
    -&nbsp; *
    -&nbsp; * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    -&nbsp; * you may not use this file except in compliance with the License.
    -&nbsp; * You may obtain a copy of the License at
    -&nbsp; *
    -&nbsp; *     http://www.apache.org/licenses/LICENSE-2.0
    -&nbsp; *
    -&nbsp; * Unless required by applicable law or agreed to in writing, software
    -&nbsp; * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    -&nbsp; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -&nbsp; * See the License for the specific language governing permissions and
    -&nbsp; * limitations under the License.
    -&nbsp; */
    -&nbsp;package io.dropwizard.metrics.caffeine3;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;import java.util.EnumMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.github.benmanes.caffeine.cache.RemovalCause;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.CacheStats;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.StatsCounter;
    -&nbsp;import org.checkerframework.checker.index.qual.NonNegative;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link StatsCounter} instrumented with Dropwizard Metrics.
    -&nbsp; *
    -&nbsp; * @author ben.manes@gmail.com (Ben Manes)
    -&nbsp; * @author John Karp
    -&nbsp; */
    -&nbsp;public final class MetricsStatsCounter implements StatsCounter {
    -&nbsp;  private final Counter hitCount;
    -&nbsp;  private final Counter missCount;
    -&nbsp;  private final Timer loadSuccess;
    -&nbsp;  private final Timer loadFailure;
    -&nbsp;  private final Counter evictionWeight;
    -&nbsp;  private final EnumMap&lt;RemovalCause, Histogram&gt; evictionsWithCause;
    -&nbsp;
    -&nbsp;  // for implementing snapshot()
    -<b class="fc">&nbsp;  private final LongAdder totalLoadTime = new LongAdder();</b>
    -&nbsp;
    -&nbsp;  /**
    -&nbsp;   * Constructs an instance for use by a single cache.
    -&nbsp;   *
    -&nbsp;   * @param registry the registry of metric instances
    -&nbsp;   * @param metricsPrefix the prefix name for the metrics
    -&nbsp;   */
    -<b class="fc">&nbsp;  public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {</b>
    -<b class="fc">&nbsp;    requireNonNull(metricsPrefix);</b>
    -<b class="fc">&nbsp;    hitCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;hits&quot;));</b>
    -<b class="fc">&nbsp;    missCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;misses&quot;));</b>
    -<b class="fc">&nbsp;    loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-success&quot;));</b>
    -<b class="fc">&nbsp;    loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-failure&quot;));</b>
    -<b class="fc">&nbsp;    evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, &quot;evictions-weight&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    evictionsWithCause = new EnumMap&lt;&gt;(RemovalCause.class);</b>
    -<b class="fc">&nbsp;    for (RemovalCause cause : RemovalCause.values()) {</b>
    -<b class="fc">&nbsp;      evictionsWithCause.put(</b>
    -&nbsp;          cause,
    -<b class="fc">&nbsp;          registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;, cause.name())));</b>
    -&nbsp;    }
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordHits(int count) {
    -<b class="fc">&nbsp;    hitCount.inc(count);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordMisses(int count) {
    -<b class="fc">&nbsp;    missCount.inc(count);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadSuccess(long loadTime) {
    -<b class="fc">&nbsp;    loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadFailure(long loadTime) {
    -<b class="fc">&nbsp;    loadFailure.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordEviction(@NonNegative int weight, RemovalCause cause) {
    -<b class="fc">&nbsp;    evictionsWithCause.get(cause).update(weight);</b>
    -<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public CacheStats snapshot() {
    -<b class="fc">&nbsp;    return CacheStats.of(</b>
    -<b class="fc">&nbsp;        hitCount.getCount(),</b>
    -<b class="fc">&nbsp;        missCount.getCount(),</b>
    -<b class="fc">&nbsp;        loadSuccess.getCount(),</b>
    -<b class="fc">&nbsp;        loadFailure.getCount(),</b>
    -<b class="fc">&nbsp;        totalLoadTime.sum(),</b>
    -<b class="fc">&nbsp;        evictionsWithCause.values().stream().mapToLong(Histogram::getCount).sum(),</b>
    -<b class="fc">&nbsp;        evictionWeight.getCount());</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public String toString() {
    -<b class="nc">&nbsp;    return snapshot().toString();</b>
    -&nbsp;  }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index.html
    deleted file mode 100644
    index b45153ee24..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 0d8f6a95bf..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 076393d8ad..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index e8c7c2869c..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index dbf164e14f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 748d5f0e2a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 42a31bc1ed..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 77caa94734..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 3c965322d2..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 3ca7d98d28..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/sources/source-1.html
    deleted file mode 100644
    index 08ed1d827f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1e/sources/source-1.html
    +++ /dev/null
    @@ -1,831 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jersey31</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (io.dropwizard.metrics.jersey31)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.1%
    -  </span>
    -  <span class="absValue">
    -    (82/89)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.2%
    -  </span>
    -  <span class="absValue">
    -    (16/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (28/28)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jersey31;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    -&nbsp;import com.codahale.metrics.annotation.Metered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import jakarta.ws.rs.core.Configuration;
    -&nbsp;import jakarta.ws.rs.ext.Provider;
    -&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    -&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    -&nbsp;import org.glassfish.jersey.server.model.Resource;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Annotation;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An application event listener that listens for Jersey application initialization to
    -&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    -&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    -&nbsp; * request events indicating that the method is about to be invoked, or just got done
    -&nbsp; * being invoked.
    -&nbsp; */
    -&nbsp;@Provider
    -&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    -&nbsp;    private static final String TOTAL = &quot;total&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metrics;
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Construct an application event listener using the given metrics registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    -&nbsp;     *
    -&nbsp;     * @param metrics a {@link MetricRegistry}
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    -<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters) {
    -<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters,
    -<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.metrics = metrics;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metric for a method annotated with the
    -&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    -&nbsp;     * and a cause for which the meter should be updated.
    -&nbsp;     */
    -&nbsp;    private static class ExceptionMeterMetric {
    -&nbsp;        public final Meter meter;
    -&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    -&nbsp;
    -&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    -&nbsp;                                    final ResourceMethod method,
    -<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    -<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    -<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    -<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    -<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metrics for a method annotated with the
    -&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    -&nbsp;     * different response codes
    -&nbsp;     */
    -&nbsp;    private static class ResponseMeterMetric {
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;        private final List&lt;Meter&gt; meters;
    -&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;        private final MetricRegistry metricRegistry;
    -&nbsp;        private final String metricName;
    -&nbsp;        private final ResponseMeteredLevel level;
    -&nbsp;
    -&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    -&nbsp;                                   final ResourceMethod method,
    -<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    -<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    -<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    -<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    -<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="fc">&nbsp;                    )) : Collections.emptyList();</b>
    -<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public void mark(int statusCode) {
    -<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;            return responseCodeMeters</b>
    -<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    -&nbsp;
    -&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    -&nbsp;        private final Clock clock;
    -&nbsp;        private final long start;
    -&nbsp;        private Timer.Context resourceMethodStartContext;
    -&nbsp;        private Timer.Context requestMatchedContext;
    -&nbsp;        private Timer.Context responseFiltersStartContext;
    -&nbsp;
    -<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    -<b class="fc">&nbsp;            this.timers = timers;</b>
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            start = clock.getTick();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            switch (event.getType()) {</b>
    -&nbsp;                case RESOURCE_METHOD_START:
    -<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case REQUEST_MATCHED:
    -<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESP_FILTERS_START:
    -<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESOURCE_METHOD_FINISHED:
    -<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    -<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case REQUEST_FILTERED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    -<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case RESP_FILTERS_FINISHED:
    -<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case FINISHED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;                        if (timer != null) {</b>
    -<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    -&nbsp;                        }
    -<b class="fc">&nbsp;                    }</b>
    -&nbsp;                    break;
    -&nbsp;                default:
    -&nbsp;                    break;
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(RequestEvent event) {
    -<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer.Context context(RequestEvent event) {
    -<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    -&nbsp;
    -<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    -<b class="fc">&nbsp;            this.meters = meters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    -<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    -<b class="fc">&nbsp;                if (meter != null) {</b>
    -<b class="fc">&nbsp;                    meter.mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    -<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    -<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    -<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    -<b class="fc">&nbsp;                        metric.meter.mark();</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    -<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    -<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    -<b class="nc">&nbsp;                        metric.mark(500);</b>
    -<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    -&nbsp;        private final RequestEventListener[] listeners;
    -&nbsp;
    -<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    -<b class="fc">&nbsp;            this.listeners = listeners;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(final RequestEvent event) {
    -<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    -<b class="fc">&nbsp;                listener.onEvent(event);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onEvent(ApplicationEvent event) {
    -<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    -<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        return resourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    -<b class="fc">&nbsp;        return subResourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    -<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    -<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    -<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    -<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    -<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    -<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    -<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    -<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    -<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    -<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    -<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    -<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    -&nbsp;                new TimerRequestEventListener(timers, clock),
    -&nbsp;                new MeterRequestEventListener(meters),
    -&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    -&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    -&nbsp;
    -<b class="fc">&nbsp;        return listener;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    -<b class="fc">&nbsp;        T annotation = null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    -<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (annotation != null) {</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return annotation;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    -<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    -<b class="fc">&nbsp;        if (trackFilters) {</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Timed timed,
    -&nbsp;                              final String... suffixes) {
    -<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    -<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Metered metered) {
    -<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    -<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    -&nbsp;                                       final String... suffixes) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;        final String metricName;
    -<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    -<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    -&nbsp;
    -&nbsp;        private final RequestEvent.Type type;
    -&nbsp;        private final Method method;
    -&nbsp;
    -<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    -<b class="fc">&nbsp;            this.type = type;</b>
    -<b class="fc">&nbsp;            this.method = method;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod finished(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="fc">&nbsp;            if (this == o) {</b>
    -<b class="nc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (type != that.type) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return method.equals(that.method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="fc">&nbsp;            int result = type.hashCode();</b>
    -<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    -<b class="fc">&nbsp;            return result;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1e/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-1e/sources/source-2.html
    deleted file mode 100644
    index 9941bad8cc..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1e/sources/source-2.html
    +++ /dev/null
    @@ -1,201 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsFeature</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jersey31</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsFeature (io.dropwizard.metrics.jersey31)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsFeature</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jersey31;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import jakarta.ws.rs.core.Feature;
    -&nbsp;import jakarta.ws.rs.core.FeatureContext;
    -&nbsp;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp; * for recording request events.
    -&nbsp; */
    -&nbsp;public class MetricsFeature implements Feature {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    -<b class="fc">&nbsp;        this(registry, clock, false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    -<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MetricsFeature(String registryName) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A call-back method called when the feature is to be enabled in a given
    -&nbsp;     * runtime configuration scope.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    -&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    -&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    -&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
    -&nbsp;     * would return {@code false}.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     *
    -&nbsp;     * @param context configurable context in which the feature should be enabled.
    -&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    -&nbsp;     * otherwise.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean configure(FeatureContext context) {
    -<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index.html
    deleted file mode 100644
    index 94236d8b6d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index eba8715560..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 3b04d201b7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 3f6a67908e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 47911dd296..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE.html
    deleted file mode 100644
    index d25700f167..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index ef9b75accf..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 7be758c391..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index f9bbf4d68f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 3fc4800b3c..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-1.html
    deleted file mode 100644
    index 6c96fd7730..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-1.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    -&nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-2.html
    deleted file mode 100644
    index b59b718f19..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-2.html
    +++ /dev/null
    @@ -1,746 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (113/131)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    -&nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    -&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    private final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private List&lt;Meter&gt; responses;
    -&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    private Timer getRequests;
    -&nbsp;    private Timer postRequests;
    -&nbsp;    private Timer headRequests;
    -&nbsp;    private Timer putRequests;
    -&nbsp;    private Timer deleteRequests;
    -&nbsp;    private Timer optionsRequests;
    -&nbsp;    private Timer traceRequests;
    -&nbsp;    private Timer connectRequests;
    -&nbsp;    private Timer moveRequests;
    -&nbsp;    private Timer otherRequests;
    -&nbsp;
    -&nbsp;    private AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;            ));
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void handle(String path,
    -&nbsp;                       Request request,
    -&nbsp;                       HttpServletRequest httpRequest,
    -&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == HttpChannelState.State.HANDLING) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-3.html
    deleted file mode 100644
    index 4e0d0044ab..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-3.html
    +++ /dev/null
    @@ -1,706 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpChannelListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (20/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.6%
    -  </span>
    -  <span class="absValue">
    -    (90/109)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    -&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    -&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    -&nbsp; *
    -&nbsp; * @since TBD
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    -&nbsp;        implements Listener {
    -<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private final Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private final Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private final Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private final Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private final Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private final Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private final Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private final List&lt;Meter&gt; responses;
    -&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final Timer getRequests;
    -&nbsp;    private final Timer postRequests;
    -&nbsp;    private final Timer headRequests;
    -&nbsp;    private final Timer putRequests;
    -&nbsp;    private final Timer deleteRequests;
    -&nbsp;    private final Timer optionsRequests;
    -&nbsp;    private final Timer traceRequests;
    -&nbsp;    private final Timer connectRequests;
    -&nbsp;    private final Timer moveRequests;
    -&nbsp;    private final Timer otherRequests;
    -&nbsp;
    -&nbsp;    private final AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    -<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    -<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onBeforeDispatch(final Request request) {
    -<b class="fc">&nbsp;        before(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onAfterDispatch(final Request request) {
    -<b class="fc">&nbsp;        after(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContentEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestTrailers(final Request request) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseCommit(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onComplete(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void before(final Request request) {
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            activeSuspended.dec();</b>
    -<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void after(final Request request) {
    -<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    -<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.dec();</b>
    -<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    -<b class="fc">&nbsp;            activeSuspended.inc();</b>
    -<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    -&nbsp;        }
    -&nbsp;        // else onCompletion will handle it.
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="fc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-4.html
    deleted file mode 100644
    index 03cc3eb115..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-1f/sources/source-4.html
    +++ /dev/null
    @@ -1,345 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.4%
    -  </span>
    -  <span class="absValue">
    -    (27/32)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    -&nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index.html
    deleted file mode 100644
    index 53f204acc2..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 31f997a4e0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index c0b7ccec9a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index baa9dedd13..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 1943510a97..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 3a16c5dc70..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 7623d81e76..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 85c9c026f7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 40e978a564..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 42e2ae12b9..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-1.html
    deleted file mode 100644
    index 2a2a3db8b5..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-1.html
    +++ /dev/null
    @@ -1,127 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ResponseMeteredLevel</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ResponseMeteredLevel (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ResponseMeteredLevel</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * {@link ResponseMeteredLevel} is a parameter for the {@link ResponseMetered} annotation.
    -&nbsp; * The constants of this enumerated type decide what meters are included when a class
    -&nbsp; * or method is annotated with the {@link ResponseMetered} annotation.
    -&nbsp; */
    -<b class="fc">&nbsp;public enum ResponseMeteredLevel {</b>
    -&nbsp;    /**
    -&nbsp;     * Include meters for 1xx/2xx/3xx/4xx/5xx responses
    -&nbsp;     */
    -<b class="fc">&nbsp;    COARSE,</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Include meters for every response code (200, 201, 303, 304, 401, 404, 501, etc.)
    -&nbsp;     */
    -<b class="fc">&nbsp;    DETAILED,</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Include meters for every response code in addition to top level 1xx/2xx/3xx/4xx/5xx responses
    -&nbsp;     */
    -<b class="fc">&nbsp;    ALL;</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-2.html
    deleted file mode 100644
    index 5a8a3dcc39..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-2.html
    +++ /dev/null
    @@ -1,121 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGauge (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGauge</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method as a gauge, which caches the result for a specified time.
    -&nbsp; *
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}CachedGauge(name = &quot;queueSize&quot;, timeout = 30, timeoutUnit = TimeUnit.SECONDS)
    -&nbsp; *     public int getQueueSize() {
    -&nbsp; *         return queue.getSize();
    -&nbsp; *     }
    -&nbsp; *
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; *
    -&nbsp; * A gauge for the defining class with the name queueSize will be created which uses the annotated method&#39;s
    -&nbsp; * return value as its value, and which caches the result for 30 seconds.
    -&nbsp; *
    -&nbsp; * @since 3.1
    -&nbsp; */
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface CachedGauge {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The name of the counter.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The amount of time to cache the result
    -&nbsp;     */
    -&nbsp;    long timeout();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The unit of timeout
    -&nbsp;     */
    -&nbsp;    TimeUnit timeoutUnit() default TimeUnit.MILLISECONDS;
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-3.html
    deleted file mode 100644
    index 3b57ebb172..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-3.html
    +++ /dev/null
    @@ -1,107 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metered</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Metered (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Metered</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as metered.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Metered(name = &quot;fancyName&quot;)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A meter for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} method is invoked, the meter will be marked.
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Metered {
    -&nbsp;    /**
    -&nbsp;     * @return The name of the meter.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-4.html
    deleted file mode 100644
    index 6c45ff2188..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-4.html
    +++ /dev/null
    @@ -1,121 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Counted</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Counted (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Counted</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as counted.
    -&nbsp; *
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Counted(name = &quot;fancyName&quot;)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A counter for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} method is invoked, the counter will be marked.
    -&nbsp; *
    -&nbsp; * @since 3.1
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Counted {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The name of the counter.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return 
    -&nbsp;     * If {@code false} (default), the counter is decremented when the annotated
    -&nbsp;     * method returns, counting current invocations of the annotated method.
    -&nbsp;     * If {@code true}, the counter increases monotonically, counting total
    -&nbsp;     * invocations of the annotated method.
    -&nbsp;     */
    -&nbsp;    boolean monotonic() default false;
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-5.html
    deleted file mode 100644
    index 138db6c155..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-5.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metric</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Metric (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Metric</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation requesting that a metric be injected or registered.
    -&nbsp; *
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a field like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Metric
    -&nbsp; *     public Histogram histogram;
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A meter of the field&#39;s type will be created and injected into managed objects.
    -&nbsp; * It will be up to the user to interact with the metric. This annotation
    -&nbsp; * can be used on fields of type Meter, Timer, Counter, and Histogram.
    -&nbsp; *
    -&nbsp; * &lt;p&gt;
    -&nbsp; * This may also be used to register a metric, which is useful for creating a histogram with
    -&nbsp; * a custom Reservoir.
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Metric
    -&nbsp; *     public Histogram uniformHistogram = new Histogram(new UniformReservoir());
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; *
    -&nbsp; * @since 3.1
    -&nbsp; */
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Metric {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The name of the metric.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false},
    -&nbsp;     * use the given name relative to the annotated class.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-6.html
    deleted file mode 100644
    index 98a2d816d6..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-6.html
    +++ /dev/null
    @@ -1,107 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Timed</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Timed (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Timed</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as timed.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Timed(name = &quot;fancyName&quot;)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A timer for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} method is invoked, the method&#39;s execution will be timed.
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Timed {
    -&nbsp;    /**
    -&nbsp;     * @return The name of the timer.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-7.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-7.html
    deleted file mode 100644
    index e3139643e0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-7.html
    +++ /dev/null
    @@ -1,103 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Gauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Gauge (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Gauge</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as a gauge.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Gauge(name = &quot;queueSize&quot;)
    -&nbsp; *     public int getQueueSize() {
    -&nbsp; *         return queue.size;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A gauge for the defining class with the name {@code queueSize} will be created which uses the
    -&nbsp; * annotated method&#39;s return value as its value.
    -&nbsp; */
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Gauge {
    -&nbsp;    /**
    -&nbsp;     * @return The gauge&#39;s name.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-8.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-8.html
    deleted file mode 100644
    index de4ea12a16..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-8.html
    +++ /dev/null
    @@ -1,133 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ExceptionMetered</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ExceptionMetered (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">ExceptionMetered</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as metered.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}ExceptionMetered(name = &quot;fancyName&quot;, cause=IllegalArgumentException.class)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A meter for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} throws an exception of type {@code cause} (or a subclass), the meter
    -&nbsp; * will be marked.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A name for the metric can be specified as an annotation parameter, otherwise, the metric will be
    -&nbsp; * named based on the method name.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * For instance, given a declaration of
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}ExceptionMetered
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A meter named {@code fancyName.exceptions} will be created and marked every time an exception is
    -&nbsp; * thrown.
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface ExceptionMetered {
    -&nbsp;    /**
    -&nbsp;     * The default suffix for meter names.
    -&nbsp;     */
    -&nbsp;    String DEFAULT_NAME_SUFFIX = &quot;exceptions&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The name of the meter. If not specified, the meter will be given a name based on the method
    -&nbsp;     * it decorates and the suffix &quot;Exceptions&quot;.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The type of exceptions that the meter will catch and count.
    -&nbsp;     */
    -&nbsp;    Class&lt;? extends Throwable&gt; cause() default Exception.class;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-9.html b/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-9.html
    deleted file mode 100644
    index 5050796f36..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-2/sources/source-9.html
    +++ /dev/null
    @@ -1,113 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ResponseMetered</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ResponseMetered (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">ResponseMetered</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as metered.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}ResponseMetered(name = &quot;fancyName&quot;, level = ResponseMeteredLevel.ALL)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Meters for the defining class with the name {@code fancyName} will be created for response codes
    -&nbsp; * based on the ResponseMeteredLevel selected. Each time the {@code #fancyName(String)} method is invoked,
    -&nbsp; * the appropriate response meter will be marked.
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface ResponseMetered {
    -&nbsp;    /**
    -&nbsp;     * @return The name of the meter.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return the ResponseMeteredLevel which decides which response code meters are marked.
    -&nbsp;     */
    -&nbsp;    ResponseMeteredLevel level() default ResponseMeteredLevel.COARSE;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index.html
    deleted file mode 100644
    index 0fc443a238..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-20/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index e335bcb752..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index e8b11df121..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 3871d3f054..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index ea7320e6b6..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_LINE.html
    deleted file mode 100644
    index a9be20ba86..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 6340edfc9a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index ab09b3ff9b..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index b6c9f99b54..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index c2f1c66d94..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-1.html
    deleted file mode 100644
    index 5eac92f9ba..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-1.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty11)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    -&nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-2.html
    deleted file mode 100644
    index 87ee28e0a2..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-2.html
    +++ /dev/null
    @@ -1,745 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty11)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (113/131)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    -&nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    -&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    private final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private List&lt;Meter&gt; responses;
    -&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    private Timer getRequests;
    -&nbsp;    private Timer postRequests;
    -&nbsp;    private Timer headRequests;
    -&nbsp;    private Timer putRequests;
    -&nbsp;    private Timer deleteRequests;
    -&nbsp;    private Timer optionsRequests;
    -&nbsp;    private Timer traceRequests;
    -&nbsp;    private Timer connectRequests;
    -&nbsp;    private Timer moveRequests;
    -&nbsp;    private Timer otherRequests;
    -&nbsp;
    -&nbsp;    private AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;                    ));
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void handle(String path,
    -&nbsp;                       Request request,
    -&nbsp;                       HttpServletRequest httpRequest,
    -&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == HttpChannelState.State.HANDLING) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-3.html
    deleted file mode 100644
    index 6dc9af81ef..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-3.html
    +++ /dev/null
    @@ -1,706 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty11)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpChannelListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (20/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.6%
    -  </span>
    -  <span class="absValue">
    -    (90/109)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    -&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    -&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    -&nbsp; *
    -&nbsp; * @since TBD
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    -&nbsp;        implements Listener {
    -<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private final Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private final Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private final Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private final Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private final Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private final Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private final Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private final List&lt;Meter&gt; responses;
    -&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final Timer getRequests;
    -&nbsp;    private final Timer postRequests;
    -&nbsp;    private final Timer headRequests;
    -&nbsp;    private final Timer putRequests;
    -&nbsp;    private final Timer deleteRequests;
    -&nbsp;    private final Timer optionsRequests;
    -&nbsp;    private final Timer traceRequests;
    -&nbsp;    private final Timer connectRequests;
    -&nbsp;    private final Timer moveRequests;
    -&nbsp;    private final Timer otherRequests;
    -&nbsp;
    -&nbsp;    private final AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    -<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    -<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onBeforeDispatch(final Request request) {
    -<b class="fc">&nbsp;        before(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onAfterDispatch(final Request request) {
    -<b class="fc">&nbsp;        after(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContentEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestTrailers(final Request request) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseCommit(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onComplete(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void before(final Request request) {
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            activeSuspended.dec();</b>
    -<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void after(final Request request) {
    -<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    -<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.dec();</b>
    -<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    -<b class="fc">&nbsp;            activeSuspended.inc();</b>
    -<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    -&nbsp;        }
    -&nbsp;        // else onCompletion will handle it.
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="fc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-4.html
    deleted file mode 100644
    index 32f31432af..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-20/sources/source-4.html
    +++ /dev/null
    @@ -1,345 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty11)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.4%
    -  </span>
    -  <span class="absValue">
    -    (27/32)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    -&nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index.html
    deleted file mode 100644
    index 7cb282582e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-21/index.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index b014dace19..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index b16dee2a94..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 3c1866d462..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 9563821099..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_LINE.html
    deleted file mode 100644
    index f60c0709e7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index b4a710f4cf..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 9524603bc2..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 5864e08144..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 5ba4b8bc5a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-1.html
    deleted file mode 100644
    index 9654c90853..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-1.html
    +++ /dev/null
    @@ -1,584 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AbstractInstrumentedHandler (io.dropwizard.metrics.jetty12)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AbstractInstrumentedHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (12/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (96/109)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.Response;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An abstract base class of a Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    -&nbsp; */
    -&nbsp;public abstract class AbstractInstrumentedHandler extends Handler.Wrapper {
    -&nbsp;    protected static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    protected static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    protected static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    protected static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    protected static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    protected static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    protected static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    protected static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    protected static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    protected static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    protected static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    protected static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    protected static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    protected static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    protected static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    protected static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    protected static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    protected static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    protected static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    protected static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    protected static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    protected static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    protected static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    protected static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    protected final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    protected final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    protected Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    protected Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    protected Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    protected Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    protected Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    protected Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    protected Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    protected final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    protected List&lt;Meter&gt; responses;
    -&nbsp;    protected Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    protected Timer getRequests;
    -&nbsp;    protected Timer postRequests;
    -&nbsp;    protected Timer headRequests;
    -&nbsp;    protected Timer putRequests;
    -&nbsp;    protected Timer deleteRequests;
    -&nbsp;    protected Timer optionsRequests;
    -&nbsp;    protected Timer traceRequests;
    -&nbsp;    protected Timer connectRequests;
    -&nbsp;    protected Timer moveRequests;
    -&nbsp;    protected Timer otherRequests;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;                    ));
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;             this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void updateResponses(Request request, Response response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="nc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-2.html
    deleted file mode 100644
    index 88d0e5ad52..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-2.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty12)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    -&nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-3.html
    deleted file mode 100644
    index d406498e84..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-21/sources/source-3.html
    +++ /dev/null
    @@ -1,336 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty12)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.1%
    -  </span>
    -  <span class="absValue">
    -    (27/31)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    -&nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index.html
    deleted file mode 100644
    index 068ca3f96f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-22/index.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index cddd003e55..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 5184380dd3..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index e435cb8a1a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index d7569623cb..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 5a9cb768de..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index e496239e97..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index cdb975631c..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 8213df8818..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 3de0220078..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-22/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-22/sources/source-1.html
    deleted file mode 100644
    index 77a1d98378..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-22/sources/source-1.html
    +++ /dev/null
    @@ -1,348 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedEE10Handler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12.ee10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedEE10Handler (io.dropwizard.metrics.jetty12.ee10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedEE10Handler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.9%
    -  </span>
    -  <span class="absValue">
    -    (23/32)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedEE10Handler$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedEE10Handler$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedEE10Handler$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12.ee10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import io.dropwizard.metrics.jetty12.AbstractInstrumentedHandler;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletApiRequest;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletApiResponse;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletChannelState;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletContextRequest;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.Response;
    -&nbsp;import org.eclipse.jetty.util.Callback;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance. This {@link Handler} requires a {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} to be present.
    -&nbsp; * For correct behaviour, the {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} should be before this handler
    -&nbsp; * in the handler chain. To achieve this, one can use
    -&nbsp; * {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler#insertHandler(Singleton)}.
    -&nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedEE10Handler extends AbstractInstrumentedHandler {</b>
    -&nbsp;    private AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        super(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        super(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {
    -<b class="fc">&nbsp;        super(registry, prefix, responseMeteredLevel);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean handle(Request request, Response response, Callback callback) throws Exception {
    -<b class="fc">&nbsp;        ServletContextRequest servletContextRequest = Request.as(request, ServletContextRequest.class);</b>
    -&nbsp;
    -&nbsp;        // only handle servlet requests with the InstrumentedHandler
    -&nbsp;        // because it depends on the ServletRequestState
    -<b class="fc">&nbsp;        if (servletContextRequest == null) {</b>
    -<b class="nc">&nbsp;            return super.handle(request, response, callback);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final ServletChannelState state = servletContextRequest.getServletRequestState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = Request.getTimeStamp(request);</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == ServletChannelState.State.HANDLING) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        boolean handled = false;</b>
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            handled = super.handle(request, response, callback);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(request, response, start, handled);</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return handled;</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final ServletApiRequest request = (ServletApiRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final ServletApiResponse response = (ServletApiResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request.getRequest(), response.getResponse(), startTime, true);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            final ServletContextRequest servletContextRequest = Request.as(request.getRequest(), ServletContextRequest.class);</b>
    -<b class="nc">&nbsp;            final ServletChannelState servletRequestState = servletContextRequest.getServletRequestState();</b>
    -<b class="nc">&nbsp;            if (!servletRequestState.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index.html
    deleted file mode 100644
    index 6c7860e965..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-23/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 9728b248d2..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index f0a8e98a57..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 1335cadc8c..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 86e63872e1..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_LINE.html
    deleted file mode 100644
    index e81aa48ae0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 035e5b165c..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index acf392e864..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 50f4b9546f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 135862c3cd..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-23/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-23/sources/source-1.html
    deleted file mode 100644
    index 55cda14fbb..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-23/sources/source-1.html
    +++ /dev/null
    @@ -1,195 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.logback13</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback13)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback13;
    -&nbsp;
    -&nbsp;import ch.qos.logback.classic.Level;
    -&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    -&nbsp;import ch.qos.logback.core.Appender;
    -&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    -&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    -&nbsp;
    -&nbsp;    private Meter all;
    -&nbsp;    private Meter trace;
    -&nbsp;    private Meter debug;
    -&nbsp;    private Meter info;
    -&nbsp;    private Meter warn;
    -&nbsp;    private Meter error;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender() {
    -<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void append(ILoggingEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    -&nbsp;            case Level.TRACE_INT:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.DEBUG_INT:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.INFO_INT:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.WARN_INT:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.ERROR_INT:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index.html
    deleted file mode 100644
    index eccb4801e1..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-24/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 8fb89e6d06..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 238467ab55..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 1ed9800a73..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index be4b7c05cc..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 0557445c37..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 6681b5ee71..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index aff72597d7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 97e6256357..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 2c237945ee..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-24/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-24/sources/source-1.html
    deleted file mode 100644
    index 66da238183..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-24/sources/source-1.html
    +++ /dev/null
    @@ -1,195 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.logback14</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback14)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback14;
    -&nbsp;
    -&nbsp;import ch.qos.logback.classic.Level;
    -&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    -&nbsp;import ch.qos.logback.core.Appender;
    -&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    -&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    -&nbsp;
    -&nbsp;    private Meter all;
    -&nbsp;    private Meter trace;
    -&nbsp;    private Meter debug;
    -&nbsp;    private Meter info;
    -&nbsp;    private Meter warn;
    -&nbsp;    private Meter error;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender() {
    -<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void append(ILoggingEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    -&nbsp;            case Level.TRACE_INT:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.DEBUG_INT:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.INFO_INT:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.WARN_INT:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.ERROR_INT:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index.html
    deleted file mode 100644
    index 59a8f2aa51..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-25/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 758b10bfb9..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 19c1958200..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 0d9bfcbd9b..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index dd50868fa8..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 4548d6d8d6..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 7e394f98a2..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 2578aab472..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index d2f06ffc80..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index f5f1f4ec18..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-25/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-25/sources/source-1.html
    deleted file mode 100644
    index b3ab7386f8..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-25/sources/source-1.html
    +++ /dev/null
    @@ -1,195 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.logback15</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback15)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback15;
    -&nbsp;
    -&nbsp;import ch.qos.logback.classic.Level;
    -&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    -&nbsp;import ch.qos.logback.core.Appender;
    -&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    -&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    -&nbsp;
    -&nbsp;    private Meter all;
    -&nbsp;    private Meter trace;
    -&nbsp;    private Meter debug;
    -&nbsp;    private Meter info;
    -&nbsp;    private Meter warn;
    -&nbsp;    private Meter error;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender() {
    -<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void append(ILoggingEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    -&nbsp;            case Level.TRACE_INT:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.DEBUG_INT:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.INFO_INT:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.WARN_INT:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.ERROR_INT:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index.html
    deleted file mode 100644
    index 8d0fe87108..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-26/index.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 785133d223..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index dbd590e999..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 7ae2aa80d6..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 93a6a8b1b6..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_LINE.html
    deleted file mode 100644
    index e777ff9a66..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index dfcaf8a8a6..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 9978b24db8..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 35cc1272cf..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 74cc968ce6..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-1.html
    deleted file mode 100644
    index 64c3e36547..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-1.html
    +++ /dev/null
    @@ -1,387 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AbstractInstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/45)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.Filter;
    -&nbsp;import jakarta.servlet.FilterChain;
    -&nbsp;import jakarta.servlet.FilterConfig;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.ServletRequest;
    -&nbsp;import jakarta.servlet.ServletResponse;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;import jakarta.servlet.http.HttpServletResponseWrapper;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Map.Entry;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    -&nbsp; * codes being returned.
    -&nbsp; */
    -<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    -&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    -&nbsp;
    -&nbsp;    private final String otherMetricName;
    -&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    -&nbsp;    private final String registryAttribute;
    -&nbsp;
    -&nbsp;    // initialized after call of init method
    -&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    -&nbsp;    private Meter otherMeter;
    -&nbsp;    private Meter timeoutsMeter;
    -&nbsp;    private Meter errorsMeter;
    -&nbsp;    private Counter activeRequests;
    -&nbsp;    private Timer requestTimer;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     *
    -&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    -&nbsp;     *                               servlet context
    -&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    -&nbsp;     *                               interested in.
    -&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    -&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    -<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    -<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    -<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    -<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    -<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    -<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    -<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    -<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    -<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    -<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    -<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    -<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    -<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    -<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    -&nbsp;        final MetricRegistry metricsRegistry;
    -&nbsp;
    -<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    -<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    -<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return metricsRegistry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void doFilter(ServletRequest request,
    -&nbsp;                         ServletResponse response,
    -&nbsp;                         FilterChain chain) throws IOException, ServletException {
    -<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    -&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    -<b class="nc">&nbsp;        activeRequests.inc();</b>
    -<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    -<b class="nc">&nbsp;        boolean error = false;</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    -<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    -<b class="nc">&nbsp;            error = true;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                if (error) {</b>
    -<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void markMeterForStatusCode(int status) {
    -<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    -<b class="nc">&nbsp;        if (metric != null) {</b>
    -<b class="nc">&nbsp;            metric.mark();</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            otherMeter.mark();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    -&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    -<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    -&nbsp;
    -&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    -<b class="nc">&nbsp;            super(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc, String msg) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void setStatus(int sc) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;        public void setStatus(int sc, String sm) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc, sm);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int getStatus() {
    -<b class="nc">&nbsp;            return httpStatus;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class AsyncResultListener implements AsyncListener {
    -&nbsp;        private Timer.Context context;
    -<b class="nc">&nbsp;        private boolean done = false;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    -<b class="nc">&nbsp;            this.context = context;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            if (!done) {</b>
    -<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            errorsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -&nbsp;
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-2.html
    deleted file mode 100644
    index f6b67a2f47..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-2.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    -&nbsp;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    -&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    -&nbsp; * &lt;pre&gt;{@code
    -&nbsp; * &lt;filter&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;filter-class&gt;io.dropwizard.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    -&nbsp; * &lt;/filter&gt;
    -&nbsp; * &lt;filter-mapping&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    -&nbsp; * &lt;/filter-mapping&gt;
    -&nbsp; * }&lt;/pre&gt;
    -&nbsp; */
    -&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    -<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    -&nbsp;    private static final int OK = 200;
    -&nbsp;    private static final int CREATED = 201;
    -&nbsp;    private static final int NO_CONTENT = 204;
    -&nbsp;    private static final int BAD_REQUEST = 400;
    -&nbsp;    private static final int NOT_FOUND = 404;
    -&nbsp;    private static final int SERVER_ERROR = 500;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     */
    -&nbsp;    public InstrumentedFilter() {
    -<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    -<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    -<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-3.html
    deleted file mode 100644
    index 615db9878c..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-26/sources/source-3.html
    +++ /dev/null
    @@ -1,130 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilterContextListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilterContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import jakarta.servlet.ServletContextEvent;
    -&nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    -&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    -&nbsp; * application.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    -&nbsp;    /**
    -&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;     */
    -&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    -<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index.html
    deleted file mode 100644
    index ee1e3e9b1d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-27/index.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index eb9e4e7d58..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index b725c8817d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 64aa1f2f19..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index d414a8d190..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_LINE.html
    deleted file mode 100644
    index fb6249e307..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index e433c1d65a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index cc2c20f548..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index d551e048a7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 218af02117..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,223 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -    <td class="coverageStat"/>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-1.html
    deleted file mode 100644
    index aa412ddfe1..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-1.html
    +++ /dev/null
    @@ -1,380 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet6)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AbstractInstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/45)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.Filter;
    -&nbsp;import jakarta.servlet.FilterChain;
    -&nbsp;import jakarta.servlet.FilterConfig;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.ServletRequest;
    -&nbsp;import jakarta.servlet.ServletResponse;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;import jakarta.servlet.http.HttpServletResponseWrapper;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Map.Entry;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    -&nbsp; * codes being returned.
    -&nbsp; */
    -<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    -&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    -&nbsp;
    -&nbsp;    private final String otherMetricName;
    -&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    -&nbsp;    private final String registryAttribute;
    -&nbsp;
    -&nbsp;    // initialized after call of init method
    -&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    -&nbsp;    private Meter otherMeter;
    -&nbsp;    private Meter timeoutsMeter;
    -&nbsp;    private Meter errorsMeter;
    -&nbsp;    private Counter activeRequests;
    -&nbsp;    private Timer requestTimer;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     *
    -&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    -&nbsp;     *                               servlet context
    -&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    -&nbsp;     *                               interested in.
    -&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    -&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    -<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    -<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    -<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    -<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    -<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    -<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    -<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    -<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    -<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    -<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    -<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    -<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    -<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    -<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    -&nbsp;        final MetricRegistry metricsRegistry;
    -&nbsp;
    -<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    -<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    -<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return metricsRegistry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void doFilter(ServletRequest request,
    -&nbsp;                         ServletResponse response,
    -&nbsp;                         FilterChain chain) throws IOException, ServletException {
    -<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    -&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    -<b class="nc">&nbsp;        activeRequests.inc();</b>
    -<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    -<b class="nc">&nbsp;        boolean error = false;</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    -<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    -<b class="nc">&nbsp;            error = true;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                if (error) {</b>
    -<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void markMeterForStatusCode(int status) {
    -<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    -<b class="nc">&nbsp;        if (metric != null) {</b>
    -<b class="nc">&nbsp;            metric.mark();</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            otherMeter.mark();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    -&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    -<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    -&nbsp;
    -&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    -<b class="nc">&nbsp;            super(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc, String msg) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void setStatus(int sc) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int getStatus() {
    -<b class="nc">&nbsp;            return httpStatus;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class AsyncResultListener implements AsyncListener {
    -&nbsp;        private final Timer.Context context;
    -<b class="nc">&nbsp;        private boolean done = false;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    -<b class="nc">&nbsp;            this.context = context;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            if (!done) {</b>
    -<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            errorsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -&nbsp;
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-2.html
    deleted file mode 100644
    index db73c61ac9..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-2.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet6)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    -&nbsp;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    -&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    -&nbsp; * &lt;pre&gt;{@code
    -&nbsp; * &lt;filter&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;filter-class&gt;io.dropwizard.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    -&nbsp; * &lt;/filter&gt;
    -&nbsp; * &lt;filter-mapping&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    -&nbsp; * &lt;/filter-mapping&gt;
    -&nbsp; * }&lt;/pre&gt;
    -&nbsp; */
    -&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    -<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    -&nbsp;    private static final int OK = 200;
    -&nbsp;    private static final int CREATED = 201;
    -&nbsp;    private static final int NO_CONTENT = 204;
    -&nbsp;    private static final int BAD_REQUEST = 400;
    -&nbsp;    private static final int NOT_FOUND = 404;
    -&nbsp;    private static final int SERVER_ERROR = 500;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     */
    -&nbsp;    public InstrumentedFilter() {
    -<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    -<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    -<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-3.html
    deleted file mode 100644
    index 58256c306d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-27/sources/source-3.html
    +++ /dev/null
    @@ -1,130 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilterContextListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet6)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilterContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import jakarta.servlet.ServletContextEvent;
    -&nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    -&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    -&nbsp; * application.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    -&nbsp;    /**
    -&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;     */
    -&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    -<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index.html
    deleted file mode 100644
    index bce8b2a5e7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-28/index.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index c0c8931e99..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index f5946f4d1c..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index aecd5ddbc4..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index cfaff88636..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_LINE.html
    deleted file mode 100644
    index e8f7427c21..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 16149fcb90..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 0565b1dbac..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 2696a383fa..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index f29af64617..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-1.html
    deleted file mode 100644
    index 73018e97b8..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-1.html
    +++ /dev/null
    @@ -1,294 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AdminServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AdminServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AdminServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import jakarta.servlet.ServletConfig;
    -&nbsp;import jakarta.servlet.ServletContext;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.text.MessageFormat;
    -&nbsp;
    -<b class="fc">&nbsp;public class AdminServlet extends HttpServlet {</b>
    -&nbsp;    public static final String DEFAULT_HEALTHCHECK_URI = &quot;/healthcheck&quot;;
    -&nbsp;    public static final String DEFAULT_METRICS_URI = &quot;/metrics&quot;;
    -&nbsp;    public static final String DEFAULT_PING_URI = &quot;/ping&quot;;
    -&nbsp;    public static final String DEFAULT_THREADS_URI = &quot;/threads&quot;;
    -&nbsp;    public static final String DEFAULT_CPU_PROFILE_URI = &quot;/pprof&quot;;
    -&nbsp;
    -&nbsp;    public static final String METRICS_ENABLED_PARAM_KEY = &quot;metrics-enabled&quot;;
    -&nbsp;    public static final String METRICS_URI_PARAM_KEY = &quot;metrics-uri&quot;;
    -&nbsp;    public static final String PING_ENABLED_PARAM_KEY = &quot;ping-enabled&quot;;
    -&nbsp;    public static final String PING_URI_PARAM_KEY = &quot;ping-uri&quot;;
    -&nbsp;    public static final String THREADS_ENABLED_PARAM_KEY = &quot;threads-enabled&quot;;
    -&nbsp;    public static final String THREADS_URI_PARAM_KEY = &quot;threads-uri&quot;;
    -&nbsp;    public static final String HEALTHCHECK_ENABLED_PARAM_KEY = &quot;healthcheck-enabled&quot;;
    -&nbsp;    public static final String HEALTHCHECK_URI_PARAM_KEY = &quot;healthcheck-uri&quot;;
    -&nbsp;    public static final String SERVICE_NAME_PARAM_KEY = &quot;service-name&quot;;
    -&nbsp;    public static final String CPU_PROFILE_ENABLED_PARAM_KEY = &quot;cpu-profile-enabled&quot;;
    -&nbsp;    public static final String CPU_PROFILE_URI_PARAM_KEY = &quot;cpu-profile-uri&quot;;
    -&nbsp;
    -&nbsp;    private static final String BASE_TEMPLATE =
    -&nbsp;            &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot;%n&quot; +
    -&nbsp;                    &quot;        \&quot;http://www.w3.org/TR/html4/loose.dtd\&quot;&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;html&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;head&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;title&gt;Metrics{10}&lt;/title&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/head&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;body&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;h1&gt;Operational Menu{10}&lt;/h1&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;ul&gt;%n&quot; +
    -&nbsp;                    &quot;%s&quot; +
    -&nbsp;                    &quot;  &lt;/ul&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/body&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/html&gt;&quot;;
    -&nbsp;    private static final String METRICS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{0}{1}?pretty=true\&quot;&gt;Metrics&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;    private static final String PING_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{2}{3}\&quot;&gt;Ping&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String THREADS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{4}{5}\&quot;&gt;Threads&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String HEALTHCHECK_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{6}{7}?pretty=true\&quot;&gt;Healthcheck&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String CPU_PROFILE_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}\&quot;&gt;CPU Profile&lt;/a&gt;&lt;/li&gt;%n&quot; +
    -&nbsp;            &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}?state=blocked\&quot;&gt;CPU Contention&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;
    -&nbsp;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/html&quot;;
    -&nbsp;    private static final long serialVersionUID = -2850794040708785318L;
    -&nbsp;
    -&nbsp;    private transient HealthCheckServlet healthCheckServlet;
    -&nbsp;    private transient MetricsServlet metricsServlet;
    -&nbsp;    private transient PingServlet pingServlet;
    -&nbsp;    private transient ThreadDumpServlet threadDumpServlet;
    -&nbsp;    private transient CpuProfileServlet cpuProfileServlet;
    -&nbsp;    private transient boolean metricsEnabled;
    -&nbsp;    private transient String metricsUri;
    -&nbsp;    private transient boolean pingEnabled;
    -&nbsp;    private transient String pingUri;
    -&nbsp;    private transient boolean threadsEnabled;
    -&nbsp;    private transient String threadsUri;
    -&nbsp;    private transient boolean healthcheckEnabled;
    -&nbsp;    private transient String healthcheckUri;
    -&nbsp;    private transient boolean cpuProfileEnabled;
    -&nbsp;    private transient String cpuProfileUri;
    -&nbsp;    private transient String serviceName;
    -&nbsp;    private transient String pageContentTemplate;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        final StringBuilder servletLinks = new StringBuilder();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.metricsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.metricsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(METRICS_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.metricsServlet = new MetricsServlet();</b>
    -<b class="fc">&nbsp;        metricsServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.pingEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.pingEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(PING_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.pingServlet = new PingServlet();</b>
    -<b class="fc">&nbsp;        pingServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.threadsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.threadsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(THREADS_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.threadDumpServlet = new ThreadDumpServlet();</b>
    -<b class="fc">&nbsp;        threadDumpServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.healthcheckEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.healthcheckEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(HEALTHCHECK_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.healthCheckServlet = new HealthCheckServlet();</b>
    -<b class="fc">&nbsp;        healthCheckServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.cpuProfileEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.cpuProfileEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(CPU_PROFILE_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.cpuProfileServlet = new CpuProfileServlet();</b>
    -<b class="fc">&nbsp;        cpuProfileServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);</b>
    -<b class="fc">&nbsp;        this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);</b>
    -<b class="fc">&nbsp;        this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);</b>
    -<b class="fc">&nbsp;        this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);</b>
    -<b class="fc">&nbsp;        this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);</b>
    -<b class="fc">&nbsp;        this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String path = req.getContextPath() + req.getServletPath();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,</b>
    -&nbsp;                    threadsUri, path, healthcheckUri, path, cpuProfileUri,
    -<b class="fc">&nbsp;                    serviceName == null ? &quot;&quot; : &quot; (&quot; + serviceName + &quot;)&quot;));</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String uri = req.getPathInfo();</b>
    -<b class="fc">&nbsp;        if (uri == null || uri.equals(&quot;/&quot;)) {</b>
    -<b class="fc">&nbsp;            super.service(req, resp);</b>
    -<b class="nc">&nbsp;        } else if (uri.equals(healthcheckUri)) {</b>
    -<b class="nc">&nbsp;            if (healthcheckEnabled) {</b>
    -<b class="nc">&nbsp;                healthCheckServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.startsWith(metricsUri)) {</b>
    -<b class="nc">&nbsp;            if (metricsEnabled) {</b>
    -<b class="nc">&nbsp;                metricsServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(pingUri)) {</b>
    -<b class="nc">&nbsp;            if (pingEnabled) {</b>
    -<b class="nc">&nbsp;                pingServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(threadsUri)) {</b>
    -<b class="nc">&nbsp;            if (threadsEnabled) {</b>
    -<b class="nc">&nbsp;                threadDumpServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(cpuProfileUri)) {</b>
    -<b class="nc">&nbsp;            if (cpuProfileEnabled) {</b>
    -<b class="nc">&nbsp;                cpuProfileServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static String getParam(String initParam, String defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : initParam;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-2.html
    deleted file mode 100644
    index 99cb06aae4..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-2.html
    +++ /dev/null
    @@ -1,183 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CpuProfileServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CpuProfileServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CpuProfileServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.papertrail.profiler.CpuProfile;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.concurrent.locks.Lock;
    -&nbsp;import java.util.concurrent.locks.ReentrantLock;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a &lt;a href=&quot;https://github.com/gperftools/gperftools&quot;&gt;pprof&lt;/a&gt; parseable response.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CpuProfileServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = -668666696530287501L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;pprof/raw&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -<b class="fc">&nbsp;    private final Lock lock = new ReentrantLock();</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -&nbsp;
    -<b class="fc">&nbsp;        int duration = 10;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;duration&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                duration = Integer.parseInt(req.getParameter(&quot;duration&quot;));</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                duration = 10;</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        int frequency = 100;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;frequency&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                frequency = Integer.parseInt(req.getParameter(&quot;frequency&quot;));</b>
    -<b class="nc">&nbsp;                frequency = Math.min(Math.max(frequency, 1), 1000);</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                frequency = 100;</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        final Thread.State state;
    -<b class="fc">&nbsp;        if (&quot;blocked&quot;.equalsIgnoreCase(req.getParameter(&quot;state&quot;))) {</b>
    -<b class="nc">&nbsp;            state = Thread.State.BLOCKED;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            state = Thread.State.RUNNABLE;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            doProfile(output, duration, frequency, state);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
    -<b class="fc">&nbsp;        if (lock.tryLock()) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),</b>
    -&nbsp;                        frequency, state);
    -<b class="fc">&nbsp;                if (profile == null) {</b>
    -<b class="nc">&nbsp;                    throw new RuntimeException(&quot;could not create CpuProfile&quot;);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                profile.writeGoogleProfile(out);</b>
    -&nbsp;                return;
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                lock.unlock();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        throw new RuntimeException(&quot;Only one profile request may be active at a time&quot;);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-3.html
    deleted file mode 100644
    index df1652885f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-3.html
    +++ /dev/null
    @@ -1,325 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.1%
    -  </span>
    -  <span class="absValue">
    -    (58/61)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.codahale.metrics.health.HealthCheckFilter;
    -&nbsp;import com.codahale.metrics.health.HealthCheckRegistry;
    -&nbsp;import com.codahale.metrics.json.HealthCheckModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;import jakarta.servlet.ServletConfig;
    -&nbsp;import jakarta.servlet.ServletContext;
    -&nbsp;import jakarta.servlet.ServletContextEvent;
    -&nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;
    -&nbsp;public class HealthCheckServlet extends HttpServlet {
    -<b class="nc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract HealthCheckRegistry getHealthCheckRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
    -&nbsp;         * if the health checks should be run in the servlet worker thread.
    -&nbsp;         */
    -&nbsp;        protected ExecutorService getExecutorService() {
    -&nbsp;            // don&#39;t use a thread pool by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
    -&nbsp;         * or {@link HealthCheckFilter#ALL} if the default should be used.
    -&nbsp;         */
    -&nbsp;        protected HealthCheckFilter getHealthCheckFilter() {
    -<b class="nc">&nbsp;            return HealthCheckFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ObjectMapper} that shall be used to render health checks,
    -&nbsp;         * or {@code null} if the default object mapper should be used.
    -&nbsp;         */
    -&nbsp;        protected ObjectMapper getObjectMapper() {
    -&nbsp;            // don&#39;t use an object mapper by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="nc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + &quot;.executor&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + &quot;.healthCheckFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + &quot;.mapper&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + &quot;.httpStatusIndicator&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -8432996484889177321L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;    private static final String HTTP_STATUS_INDICATOR_PARAM = &quot;httpStatusIndicator&quot;;
    -&nbsp;
    -&nbsp;    private transient HealthCheckRegistry registry;
    -&nbsp;    private transient ExecutorService executorService;
    -&nbsp;    private transient HealthCheckFilter filter;
    -&nbsp;    private transient ObjectMapper mapper;
    -&nbsp;    private transient boolean httpStatusIndicator;
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet(HealthCheckRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof HealthCheckRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (HealthCheckRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a HealthCheckRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);</b>
    -<b class="fc">&nbsp;        if (executorAttr instanceof ExecutorService) {</b>
    -<b class="fc">&nbsp;            this.executorService = (ExecutorService) executorAttr;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);</b>
    -<b class="fc">&nbsp;        if (filterAttr instanceof HealthCheckFilter) {</b>
    -<b class="fc">&nbsp;            filter = (HealthCheckFilter) filterAttr;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = HealthCheckFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);</b>
    -<b class="fc">&nbsp;        if (mapperAttr instanceof ObjectMapper) {</b>
    -<b class="nc">&nbsp;            this.mapper = (ObjectMapper) mapperAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.mapper = new ObjectMapper();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.mapper.registerModule(new HealthCheckModule());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);</b>
    -<b class="fc">&nbsp;        if (httpStatusIndicatorAttr instanceof Boolean) {</b>
    -<b class="nc">&nbsp;            this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.httpStatusIndicator = true;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -<b class="fc">&nbsp;        super.destroy();</b>
    -<b class="fc">&nbsp;        registry.shutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = runHealthChecks();</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (results.isEmpty()) {</b>
    -<b class="fc">&nbsp;            resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);</b>
    -<b class="fc">&nbsp;            final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);</b>
    -<b class="fc">&nbsp;            final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;</b>
    -<b class="fc">&nbsp;            if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {</b>
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            getWriter(req).writeValue(output, results);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    -<b class="fc">&nbsp;        if (executorService == null) {</b>
    -<b class="nc">&nbsp;            return registry.runHealthChecks(filter);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return registry.runHealthChecks(executorService, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static boolean isAllHealthy(Map&lt;String, HealthCheck.Result&gt; results) {
    -<b class="fc">&nbsp;        for (HealthCheck.Result result : results.values()) {</b>
    -<b class="fc">&nbsp;            if (!result.isHealthy()) {</b>
    -<b class="fc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    // visible for testing
    -&nbsp;    ObjectMapper getMapper() {
    -<b class="fc">&nbsp;        return mapper;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-4.html
    deleted file mode 100644
    index 5196d1cc48..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-4.html
    +++ /dev/null
    @@ -1,328 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (44/44)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetricsServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (14/18)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.json.MetricsModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;import com.fasterxml.jackson.databind.util.JSONPObject;
    -&nbsp;import jakarta.servlet.ServletConfig;
    -&nbsp;import jakarta.servlet.ServletContext;
    -&nbsp;import jakarta.servlet.ServletContextEvent;
    -&nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A servlet which returns the metrics in a given registry as an {@code application/json} response.
    -&nbsp; */
    -&nbsp;public class MetricsServlet extends HttpServlet {
    -&nbsp;    /**
    -&nbsp;     * An abstract {@link ServletContextListener} which allows you to programmatically inject the
    -&nbsp;     * {@link MetricRegistry}, rate and duration units, and allowed origin for
    -&nbsp;     * {@link MetricsServlet}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
    -&nbsp;         * default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getRateUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getDurationUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@code Access-Control-Allow-Origin} header value, if any.
    -&nbsp;         */
    -&nbsp;        protected String getAllowedOrigin() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the name of the parameter used to specify the jsonp callback, if any.
    -&nbsp;         */
    -&nbsp;        protected String getJsonpCallbackParameter() {
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected MetricFilter getMetricFilter() {
    -&nbsp;            // use the default
    -<b class="fc">&nbsp;            return MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="fc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRICS_REGISTRY, getMetricRegistry());</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRIC_FILTER, getMetricFilter());</b>
    -<b class="fc">&nbsp;            if (getDurationUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getRateUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getAllowedOrigin() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getJsonpCallbackParameter() != null) {</b>
    -<b class="nc">&nbsp;                context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.rateUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.durationUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + &quot;.showSamples&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + &quot;.allowedOrigin&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + &quot;.metricFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + &quot;.jsonpCallback&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = 1049773947734939602L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;
    -&nbsp;    protected String allowedOrigin;
    -&nbsp;    protected String jsonpParamName;
    -&nbsp;    protected transient MetricRegistry registry;
    -&nbsp;    protected transient ObjectMapper mapper;
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(METRICS_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof MetricRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (MetricRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a MetricRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);</b>
    -<b class="fc">&nbsp;        this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        setupMetricsModule(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void setupMetricsModule(ServletContext context) {
    -<b class="fc">&nbsp;        final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));</b>
    -<b class="fc">&nbsp;        MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);</b>
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,</b>
    -&nbsp;                durationUnit,
    -&nbsp;                showSamples,
    -&nbsp;                filter));
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        if (allowedOrigin != null) {</b>
    -<b class="fc">&nbsp;            resp.setHeader(&quot;Access-Control-Allow-Origin&quot;, allowedOrigin);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            if (jsonpParamName != null &amp;&amp; req.getParameter(jsonpParamName) != null) {</b>
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, registry);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));</b>
    -<b class="fc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    -<b class="fc">&nbsp;            return defaultValue;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-5.html
    deleted file mode 100644
    index 9374e0eac3..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-5.html
    +++ /dev/null
    @@ -1,135 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PingServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PingServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PingServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} {@code &quot;pong&quot;} response.
    -&nbsp; */
    -<b class="fc">&nbsp;public class PingServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = 3772654177231086757L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;    private static final String CONTENT = &quot;pong&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(CONTENT);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-6.html
    deleted file mode 100644
    index 09c7ca9c8e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-28/sources/source-6.html
    +++ /dev/null
    @@ -1,159 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDumpServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDumpServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDumpServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.jvm.ThreadDump;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
    -&nbsp; * the VM. Only responds to {@code GET} requests.
    -&nbsp; */
    -<b class="fc">&nbsp;public class ThreadDumpServlet extends HttpServlet {</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -2690343532336103046L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;
    -&nbsp;    private transient ThreadDump threadDump;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init() throws ServletException {
    -&nbsp;        try {
    -&nbsp;            // Some PaaS like Google App Engine blacklist java.lang.managament
    -<b class="fc">&nbsp;            this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());</b>
    -<b class="nc">&nbsp;        } catch (NoClassDefFoundError ncdfe) {</b>
    -<b class="nc">&nbsp;            this.threadDump = null; // we won&#39;t be able to provide thread dump</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final boolean includeMonitors = getParam(req.getParameter(&quot;monitors&quot;), true);</b>
    -<b class="fc">&nbsp;        final boolean includeSynchronizers = getParam(req.getParameter(&quot;synchronizers&quot;), true);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (threadDump == null) {</b>
    -<b class="nc">&nbsp;            resp.getWriter().println(&quot;Sorry your runtime environment does not allow to dump threads.&quot;);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            threadDump.dump(includeMonitors, includeSynchronizers, output);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Boolean getParam(String initParam, boolean defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index.html
    deleted file mode 100644
    index 68de28896f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-3/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index ec97a62ecb..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index dce1fe2599..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index fb9cbb6b33..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index cbda04732c..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 34d4e13023..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 574533d03d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index a8ef50cf5d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 6c6ee86c02..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index a79a445c7e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-1.html
    deleted file mode 100644
    index 9185763bc7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-1.html
    +++ /dev/null
    @@ -1,176 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGaugeBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGaugeBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGaugeBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">CachedGaugeBenchmark$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.CachedGauge;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class CachedGaugeBenchmark {</b>
    -&nbsp;
    -<b class="nc">&nbsp;    private CachedGauge&lt;Integer&gt; cachedGauge = new CachedGauge&lt;Integer&gt;(100, TimeUnit.MILLISECONDS) {</b>
    -&nbsp;        @Override
    -&nbsp;        protected Integer loadValue() {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                Thread.sleep(10);</b>
    -<b class="nc">&nbsp;            } catch (InterruptedException e) {</b>
    -<b class="nc">&nbsp;                throw new RuntimeException(&quot;Thread was interrupted&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            return 12345;</b>
    -&nbsp;        }
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public void perfGetValue(Blackhole blackhole) {
    -<b class="nc">&nbsp;        blackhole.consume(cachedGauge.getValue());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;                .include(&quot;.*&quot; + CachedGaugeBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;                .warmupIterations(3)</b>
    -<b class="nc">&nbsp;                .measurementIterations(5)</b>
    -<b class="nc">&nbsp;                .threads(4)</b>
    -<b class="nc">&nbsp;                .forks(1)</b>
    -<b class="nc">&nbsp;                .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-2.html
    deleted file mode 100644
    index 122dcc976b..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-2.html
    +++ /dev/null
    @@ -1,142 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CounterBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CounterBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CounterBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class CounterBenchmark {</b>
    -&nbsp;
    -<b class="nc">&nbsp;    private final Counter counter = new Counter();</b>
    -&nbsp;
    -&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    -<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfIncrement() {
    -<b class="nc">&nbsp;        counter.inc(nextValue); </b>
    -<b class="nc">&nbsp;        return counter;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;                .include(&quot;.*&quot; + CounterBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;                .warmupIterations(3)</b>
    -<b class="nc">&nbsp;                .measurementIterations(5)</b>
    -<b class="nc">&nbsp;                .threads(4)</b>
    -<b class="nc">&nbsp;                .forks(1)</b>
    -<b class="nc">&nbsp;                .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-3.html
    deleted file mode 100644
    index f89e0d27a4..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-3.html
    +++ /dev/null
    @@ -1,142 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MeterBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MeterBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MeterBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class MeterBenchmark {</b>
    -&nbsp;
    -<b class="nc">&nbsp;    private final Meter meter = new Meter();</b>
    -&nbsp;
    -&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    -<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfMark() {
    -<b class="nc">&nbsp;        meter.mark(nextValue);</b>
    -<b class="nc">&nbsp;        return meter;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;                .include(&quot;.*&quot; + MeterBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;                .warmupIterations(3)</b>
    -<b class="nc">&nbsp;                .measurementIterations(5)</b>
    -<b class="nc">&nbsp;                .threads(4)</b>
    -<b class="nc">&nbsp;                .forks(1)</b>
    -<b class="nc">&nbsp;                .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-4.html
    deleted file mode 100644
    index 2cbe79ab4d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-4.html
    +++ /dev/null
    @@ -1,192 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.LockFreeExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.SlidingTimeWindowArrayReservoir;
    -&nbsp;import com.codahale.metrics.SlidingTimeWindowReservoir;
    -&nbsp;import com.codahale.metrics.SlidingWindowReservoir;
    -&nbsp;import com.codahale.metrics.UniformReservoir;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.profile.GCProfiler;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;import org.openjdk.jmh.runner.options.TimeValue;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class ReservoirBenchmark {</b>
    -&nbsp;
    -<b class="nc">&nbsp;    private final UniformReservoir uniform = new UniformReservoir();</b>
    -<b class="nc">&nbsp;    private final ExponentiallyDecayingReservoir exponential = new ExponentiallyDecayingReservoir();</b>
    -<b class="nc">&nbsp;    private final Reservoir lockFreeExponential = LockFreeExponentiallyDecayingReservoir.builder().build();</b>
    -<b class="nc">&nbsp;    private final SlidingWindowReservoir sliding = new SlidingWindowReservoir(1000);</b>
    -<b class="nc">&nbsp;    private final SlidingTimeWindowReservoir slidingTime = new SlidingTimeWindowReservoir(200, TimeUnit.MILLISECONDS);</b>
    -<b class="nc">&nbsp;    private final SlidingTimeWindowArrayReservoir arrTime = new SlidingTimeWindowArrayReservoir(200, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    -<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfUniformReservoir() {
    -<b class="nc">&nbsp;        uniform.update(nextValue);</b>
    -<b class="nc">&nbsp;        return uniform;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfSlidingTimeWindowArrayReservoir() {
    -<b class="nc">&nbsp;        arrTime.update(nextValue);</b>
    -<b class="nc">&nbsp;        return arrTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfExponentiallyDecayingReservoir() {
    -<b class="nc">&nbsp;        exponential.update(nextValue);</b>
    -<b class="nc">&nbsp;        return exponential;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfSlidingWindowReservoir() {
    -<b class="nc">&nbsp;        sliding.update(nextValue);</b>
    -<b class="nc">&nbsp;        return sliding;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfSlidingTimeWindowReservoir() {
    -<b class="nc">&nbsp;        slidingTime.update(nextValue);</b>
    -<b class="nc">&nbsp;        return slidingTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfLockFreeExponentiallyDecayingReservoir() {
    -<b class="nc">&nbsp;        lockFreeExponential.update(nextValue);</b>
    -<b class="nc">&nbsp;        return lockFreeExponential;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;            .include(&quot;.*&quot; + ReservoirBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;            .warmupIterations(10)</b>
    -<b class="nc">&nbsp;            .measurementIterations(10)</b>
    -<b class="nc">&nbsp;            .addProfiler(GCProfiler.class)</b>
    -<b class="nc">&nbsp;            .measurementTime(TimeValue.seconds(3))</b>
    -<b class="nc">&nbsp;            .timeUnit(TimeUnit.MICROSECONDS)</b>
    -<b class="nc">&nbsp;            .mode(Mode.AverageTime)</b>
    -<b class="nc">&nbsp;            .threads(4)</b>
    -<b class="nc">&nbsp;            .forks(1)</b>
    -<b class="nc">&nbsp;            .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-5.html
    deleted file mode 100644
    index 22bb149ff3..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-3/sources/source-5.html
    +++ /dev/null
    @@ -1,184 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoirsBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.SlidingTimeWindowArrayReservoir;
    -&nbsp;import com.codahale.metrics.SlidingTimeWindowReservoir;
    -&nbsp;import com.codahale.metrics.Snapshot;
    -&nbsp;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Group;
    -&nbsp;import org.openjdk.jmh.annotations.GroupThreads;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.profile.GCProfiler;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;import org.openjdk.jmh.runner.options.TimeValue;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * @author bstorozhuk
    -&nbsp; */
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark {</b>
    -<b class="nc">&nbsp;    private final SlidingTimeWindowReservoir slidingTime = new SlidingTimeWindowReservoir(200, TimeUnit.MILLISECONDS);</b>
    -<b class="nc">&nbsp;    private final SlidingTimeWindowArrayReservoir arrTime = new SlidingTimeWindowArrayReservoir(200, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    -<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    @Group(&quot;slidingTime&quot;)
    -&nbsp;    @GroupThreads(3)
    -&nbsp;    public Object slidingTimeAddMeasurement() {
    -<b class="nc">&nbsp;        slidingTime.update(nextValue);</b>
    -<b class="nc">&nbsp;        return slidingTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    @Group(&quot;slidingTime&quot;)
    -&nbsp;    @GroupThreads(1)
    -&nbsp;    public Object slidingTimeRead() {
    -<b class="nc">&nbsp;        Snapshot snapshot = slidingTime.getSnapshot();</b>
    -<b class="nc">&nbsp;        return snapshot;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    @Group(&quot;arrTime&quot;)
    -&nbsp;    @GroupThreads(3)
    -&nbsp;    public Object arrTimeAddMeasurement() {
    -<b class="nc">&nbsp;        arrTime.update(nextValue);</b>
    -<b class="nc">&nbsp;        return slidingTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    @Group(&quot;arrTime&quot;)
    -&nbsp;    @GroupThreads(1)
    -&nbsp;    public Object arrTimeRead() {
    -<b class="nc">&nbsp;        Snapshot snapshot = arrTime.getSnapshot();</b>
    -<b class="nc">&nbsp;        return snapshot;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;            .include(&quot;.*&quot; + SlidingTimeWindowReservoirsBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;            .warmupIterations(10)</b>
    -<b class="nc">&nbsp;            .measurementIterations(10)</b>
    -<b class="nc">&nbsp;            .addProfiler(GCProfiler.class)</b>
    -<b class="nc">&nbsp;            .measurementTime(TimeValue.seconds(3))</b>
    -<b class="nc">&nbsp;            .timeUnit(TimeUnit.MICROSECONDS)</b>
    -<b class="nc">&nbsp;            .mode(Mode.AverageTime)</b>
    -<b class="nc">&nbsp;            .forks(1)</b>
    -<b class="nc">&nbsp;            .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index.html
    deleted file mode 100644
    index 71f3575a87..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-4/index.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 8fa528b750..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_BLOCK_DESC.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 33fafff26a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 0af92b3a30..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index eb12e46406..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 2d52e70489..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 9cf46680ea..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 00921a6b66..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 11cf3bc5d0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index fc139bc842..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_BLOCK.html">Branch, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-4/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-4/sources/source-1.html
    deleted file mode 100644
    index 965676611d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-4/sources/source-1.html
    +++ /dev/null
    @@ -1,250 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsStatsCounter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.caffeine</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsStatsCounter (com.codahale.metrics.caffeine)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Branch, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsStatsCounter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.6%
    -  </span>
    -  <span class="absValue">
    -    (40/41)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;/*
    -&nbsp; * Copyright 2016 Ben Manes. All Rights Reserved.
    -&nbsp; *
    -&nbsp; * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    -&nbsp; * you may not use this file except in compliance with the License.
    -&nbsp; * You may obtain a copy of the License at
    -&nbsp; *
    -&nbsp; *     http://www.apache.org/licenses/LICENSE-2.0
    -&nbsp; *
    -&nbsp; * Unless required by applicable law or agreed to in writing, software
    -&nbsp; * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    -&nbsp; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -&nbsp; * See the License for the specific language governing permissions and
    -&nbsp; * limitations under the License.
    -&nbsp; */
    -&nbsp;package com.codahale.metrics.caffeine;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;import java.util.EnumMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.github.benmanes.caffeine.cache.RemovalCause;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.CacheStats;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.StatsCounter;
    -&nbsp;import org.checkerframework.checker.index.qual.NonNegative;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link StatsCounter} instrumented with Dropwizard Metrics.
    -&nbsp; *
    -&nbsp; * @author ben.manes@gmail.com (Ben Manes)
    -&nbsp; * @author John Karp
    -&nbsp; */
    -&nbsp;public final class MetricsStatsCounter implements StatsCounter {
    -&nbsp;  private final Counter hitCount;
    -&nbsp;  private final Counter missCount;
    -&nbsp;  private final Timer loadSuccess;
    -&nbsp;  private final Timer loadFailure;
    -&nbsp;  private final Histogram evictions;
    -&nbsp;  private final Counter evictionWeight;
    -&nbsp;  private final EnumMap&lt;RemovalCause, Histogram&gt; evictionsWithCause;
    -&nbsp;
    -&nbsp;  // for implementing snapshot()
    -<b class="fc">&nbsp;  private final LongAdder totalLoadTime = new LongAdder();</b>
    -&nbsp;
    -&nbsp;  /**
    -&nbsp;   * Constructs an instance for use by a single cache.
    -&nbsp;   *
    -&nbsp;   * @param registry the registry of metric instances
    -&nbsp;   * @param metricsPrefix the prefix name for the metrics
    -&nbsp;   */
    -<b class="fc">&nbsp;  public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {</b>
    -<b class="fc">&nbsp;    requireNonNull(metricsPrefix);</b>
    -<b class="fc">&nbsp;    hitCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;hits&quot;));</b>
    -<b class="fc">&nbsp;    missCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;misses&quot;));</b>
    -<b class="fc">&nbsp;    loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-success&quot;));</b>
    -<b class="fc">&nbsp;    loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-failure&quot;));</b>
    -<b class="fc">&nbsp;    evictions = registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;));</b>
    -<b class="fc">&nbsp;    evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, &quot;evictions-weight&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    evictionsWithCause = new EnumMap&lt;&gt;(RemovalCause.class);</b>
    -<b class="fc">&nbsp;    for (RemovalCause cause : RemovalCause.values()) {</b>
    -<b class="fc">&nbsp;      evictionsWithCause.put(</b>
    -&nbsp;          cause,
    -<b class="fc">&nbsp;          registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;, cause.name())));</b>
    -&nbsp;    }
    -<b class="fc">&nbsp;  }</b>
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordHits(int count) {
    -<b class="fc">&nbsp;    hitCount.inc(count);</b>
    -<b class="fc">&nbsp;  }</b>
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordMisses(int count) {
    -<b class="fc">&nbsp;    missCount.inc(count);</b>
    -<b class="fc">&nbsp;  }</b>
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadSuccess(long loadTime) {
    -<b class="fc">&nbsp;    loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -<b class="fc">&nbsp;  }</b>
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadFailure(long loadTime) {
    -<b class="fc">&nbsp;    loadFailure.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -<b class="fc">&nbsp;  }</b>
    -&nbsp;
    -&nbsp;  // @Override -- Caffeine 2.x
    -&nbsp;  @Deprecated
    -&nbsp;  @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;  public void recordEviction() {
    -&nbsp;    // This method is scheduled for removal in version 3.0 in favor of recordEviction(weight)
    -<b class="fc">&nbsp;    recordEviction(1);</b>
    -<b class="fc">&nbsp;  }</b>
    -&nbsp;
    -&nbsp;  // @Override -- Caffeine 2.x
    -&nbsp;  @Deprecated
    -&nbsp;  @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;  public void recordEviction(int weight) {
    -<b class="fc">&nbsp;    evictions.update(weight);</b>
    -<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    -<b class="fc">&nbsp;  }</b>
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordEviction(@NonNegative int weight, RemovalCause cause) {
    -<b class="fc">&nbsp;    evictionsWithCause.get(cause).update(weight);</b>
    -<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    -<b class="fc">&nbsp;  }</b>
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public CacheStats snapshot() {
    -<b class="fc">&nbsp;    return CacheStats.of(</b>
    -<b class="fc">&nbsp;        hitCount.getCount(),</b>
    -<b class="fc">&nbsp;        missCount.getCount(),</b>
    -<b class="fc">&nbsp;        loadSuccess.getCount(),</b>
    -<b class="fc">&nbsp;        loadFailure.getCount(),</b>
    -<b class="fc">&nbsp;        totalLoadTime.sum(),</b>
    -<b class="fc">&nbsp;        evictions.getCount(),</b>
    -<b class="fc">&nbsp;        evictionWeight.getCount());</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public String toString() {
    -<b class="nc">&nbsp;    return snapshot().toString();</b>
    -&nbsp;  }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index.html
    deleted file mode 100644
    index dedf292d52..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-5/index.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index fceb4c075f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index ae7ea852c8..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 125be413d7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 2f82a134c1..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_LINE.html
    deleted file mode 100644
    index a53af2266f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index baab98233c..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index c7e62458dd..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 875af601ac..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index df1d2b1eca..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-1.html
    deleted file mode 100644
    index 5d8c9ca675..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-1.html
    +++ /dev/null
    @@ -1,470 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CollectdReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CollectdReporter (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CollectdReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.9%
    -  </span>
    -  <span class="absValue">
    -    (79/93)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">CollectdReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CollectdReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (9/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.1%
    -  </span>
    -  <span class="absValue">
    -    (31/43)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricAttribute;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.ScheduledReporter;
    -&nbsp;import com.codahale.metrics.Snapshot;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.InetAddress;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which publishes metric values to a Collectd server.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;https://collectd.org&quot;&gt;collectd – The system statistics
    -&nbsp; * collection daemon&lt;/a&gt;
    -&nbsp; */
    -<b class="fc">&nbsp;public class CollectdReporter extends ScheduledReporter {</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a builder for the specified registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The default settings are:
    -&nbsp;     * &lt;ul&gt;
    -&nbsp;     * &lt;li&gt;hostName: InetAddress.getLocalHost().getHostName()&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;executor: default executor created by {@code ScheduledReporter}&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;shutdownExecutorOnStop: true&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;clock: Clock.defaultClock()&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;rateUnit: TimeUnit.SECONDS&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;durationUnit: TimeUnit.MILLISECONDS&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;filter: MetricFilter.ALL&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;securityLevel: NONE&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;username: &quot;&quot;&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;password: &quot;&quot;&lt;/li&gt;
    -&nbsp;     * &lt;/ul&gt;
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private String hostName;
    -&nbsp;        private ScheduledExecutorService executor;
    -<b class="fc">&nbsp;        private boolean shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;        private Clock clock = Clock.defaultClock();</b>
    -<b class="fc">&nbsp;        private TimeUnit rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;        private TimeUnit durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;        private MetricFilter filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;        private SecurityLevel securityLevel = SecurityLevel.NONE;</b>
    -<b class="fc">&nbsp;        private String username = &quot;&quot;;</b>
    -<b class="fc">&nbsp;        private String password = &quot;&quot;;</b>
    -<b class="fc">&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes = Collections.emptySet();</b>
    -<b class="fc">&nbsp;        private int maxLength = Sanitize.DEFAULT_MAX_LENGTH;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withHostName(String hostName) {
    -<b class="fc">&nbsp;            this.hostName = hostName;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withClock(Clock clock) {
    -<b class="nc">&nbsp;            this.clock = clock;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="nc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="nc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="nc">&nbsp;            this.filter = filter;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withUsername(String username) {
    -<b class="fc">&nbsp;            this.username = username;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withPassword(String password) {
    -<b class="fc">&nbsp;            this.password = password;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withSecurityLevel(SecurityLevel securityLevel) {
    -<b class="fc">&nbsp;            this.securityLevel = securityLevel;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; attributes) {
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = attributes;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withMaxLength(int maxLength) {
    -<b class="fc">&nbsp;            this.maxLength = maxLength;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public CollectdReporter build(Sender sender) {
    -<b class="fc">&nbsp;            if (securityLevel != SecurityLevel.NONE) {</b>
    -<b class="fc">&nbsp;                if (username.isEmpty()) {</b>
    -<b class="fc">&nbsp;                    throw new IllegalArgumentException(&quot;username is required for securityLevel: &quot; + securityLevel);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                if (password.isEmpty()) {</b>
    -<b class="fc">&nbsp;                    throw new IllegalArgumentException(&quot;password is required for securityLevel: &quot; + securityLevel);</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new CollectdReporter(registry,</b>
    -&nbsp;                    hostName, sender,
    -&nbsp;                    executor, shutdownExecutorOnStop,
    -&nbsp;                    clock, rateUnit, durationUnit,
    -&nbsp;                    filter, disabledMetricAttributes,
    -&nbsp;                    username, password, securityLevel, new Sanitize(maxLength));
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOG = LoggerFactory.getLogger(CollectdReporter.class);</b>
    -&nbsp;    private static final String REPORTER_NAME = &quot;collectd-reporter&quot;;
    -&nbsp;    private static final String FALLBACK_HOST_NAME = &quot;localhost&quot;;
    -&nbsp;    private static final String COLLECTD_TYPE_GAUGE = &quot;gauge&quot;;
    -&nbsp;
    -&nbsp;    private String hostName;
    -&nbsp;    private final Sender sender;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private long period;
    -&nbsp;    private final PacketWriter writer;
    -&nbsp;    private final Sanitize sanitize;
    -&nbsp;
    -&nbsp;    private CollectdReporter(MetricRegistry registry,
    -&nbsp;                             String hostname, Sender sender,
    -&nbsp;                             ScheduledExecutorService executor, boolean shutdownExecutorOnStop,
    -&nbsp;                             Clock clock, TimeUnit rateUnit, TimeUnit durationUnit,
    -&nbsp;                             MetricFilter filter, Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    -&nbsp;                             String username, String password,
    -&nbsp;                             SecurityLevel securityLevel, Sanitize sanitize) {
    -<b class="fc">&nbsp;        super(registry, REPORTER_NAME, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes);
    -<b class="fc">&nbsp;        this.hostName = (hostname != null) ? hostname : resolveHostName();</b>
    -<b class="fc">&nbsp;        this.sender = sender;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.sanitize = sanitize;</b>
    -<b class="fc">&nbsp;        writer = new PacketWriter(sender, username, password, securityLevel);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String resolveHostName() {
    -&nbsp;        try {
    -<b class="nc">&nbsp;            return InetAddress.getLocalHost().getHostName();</b>
    -<b class="nc">&nbsp;        } catch (Exception e) {</b>
    -<b class="nc">&nbsp;            LOG.error(&quot;Failed to lookup local host name: {}&quot;, e.getMessage(), e);</b>
    -<b class="nc">&nbsp;            return FALLBACK_HOST_NAME;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start(long period, TimeUnit unit) {
    -<b class="nc">&nbsp;        this.period = period;</b>
    -<b class="nc">&nbsp;        super.start(period, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges, SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;            SortedMap&lt;String, Histogram&gt; histograms, SortedMap&lt;String, Meter&gt; meters, SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        MetaData.Builder metaData = new MetaData.Builder(sanitize, hostName, clock.getTime() / 1000, period)</b>
    -<b class="fc">&nbsp;                .type(COLLECTD_TYPE_GAUGE);</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            connect(sender);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeGauge(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeCounter(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeHistogram(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeMeter(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeTimer(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Unable to report to Collectd&quot;, e);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            disconnect(sender);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void connect(Sender sender) throws IOException {
    -<b class="fc">&nbsp;        if (!sender.isConnected()) {</b>
    -<b class="fc">&nbsp;            sender.connect();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void disconnect(Sender sender) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            sender.disconnect();</b>
    -<b class="nc">&nbsp;        } catch (Exception e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Error disconnecting from Collectd&quot;, e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeValue(MetaData.Builder metaData, MetricAttribute attribute, Number value) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(attribute)) {</b>
    -<b class="fc">&nbsp;            write(metaData.typeInstance(attribute.getCode()).get(), value);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeRate(MetaData.Builder metaData, MetricAttribute attribute, double rate) {
    -<b class="fc">&nbsp;        writeValue(metaData, attribute, convertRate(rate));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeDuration(MetaData.Builder metaData, MetricAttribute attribute, double duration) {
    -<b class="fc">&nbsp;        writeValue(metaData, attribute, convertDuration(duration));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void write(MetaData metaData, Number value) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            writer.write(metaData, value);</b>
    -<b class="nc">&nbsp;        } catch (RuntimeException e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Failed to process metric &#39;&quot; + metaData.getPlugin() + &quot;&#39;: &quot; + e.getMessage());</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            LOG.error(&quot;Failed to send metric to collectd&quot;, e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    private void serializeGauge(MetaData.Builder metaData, Gauge metric) {
    -<b class="fc">&nbsp;        if (metric.getValue() instanceof Number) {</b>
    -<b class="fc">&nbsp;            write(metaData.typeInstance(&quot;value&quot;).get(), (Number) metric.getValue());</b>
    -<b class="fc">&nbsp;        } else if (metric.getValue() instanceof Boolean) {</b>
    -<b class="fc">&nbsp;            write(metaData.typeInstance(&quot;value&quot;).get(), ((Boolean) metric.getValue()) ? 1 : 0);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            LOG.warn(&quot;Failed to process metric &#39;{}&#39;. Unsupported gauge of type: {} &quot;, metaData.get().getPlugin(),</b>
    -<b class="fc">&nbsp;                    metric.getValue().getClass().getName());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeMeter(MetaData.Builder metaData, Meter metric) {
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M1_RATE, metric.getOneMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, MEAN_RATE, metric.getMeanRate());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeCounter(MetaData.Builder metaData, Counter metric) {
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeHistogram(MetaData.Builder metaData, Histogram metric) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = metric.getSnapshot();</b>
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, MAX, (double) snapshot.getMax());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, MEAN, snapshot.getMean());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, MIN, (double) snapshot.getMin());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, STDDEV, snapshot.getStdDev());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P50, snapshot.getMedian());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P75, snapshot.get75thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P95, snapshot.get95thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P98, snapshot.get98thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P99, snapshot.get99thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P999, snapshot.get999thPercentile());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeTimer(MetaData.Builder metaData, Timer metric) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = metric.getSnapshot();</b>
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, MAX, (double) snapshot.getMax());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, MEAN, snapshot.getMean());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, MIN, (double) snapshot.getMin());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, STDDEV, snapshot.getStdDev());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P50, snapshot.getMedian());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P75, snapshot.get75thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P95, snapshot.get95thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P98, snapshot.get98thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P99, snapshot.get99thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P999, snapshot.get999thPercentile());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M1_RATE, metric.getOneMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, MEAN_RATE, metric.getMeanRate());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-2.html
    deleted file mode 100644
    index e5e1771687..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-2.html
    +++ /dev/null
    @@ -1,228 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetaData</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetaData (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetaData</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetaData$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (13/15)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;class MetaData {
    -&nbsp;
    -&nbsp;    private final String host;
    -&nbsp;    private final String plugin;
    -&nbsp;    private final String pluginInstance;
    -&nbsp;    private final String type;
    -&nbsp;    private final String typeInstance;
    -&nbsp;    private final long timestamp;
    -&nbsp;    private final long period;
    -&nbsp;
    -&nbsp;    MetaData(String host, String plugin, String pluginInstance, String type, String typeInstance,
    -<b class="fc">&nbsp;             long timestamp, long period) {</b>
    -<b class="fc">&nbsp;        this.host = host;</b>
    -<b class="fc">&nbsp;        this.plugin = plugin;</b>
    -<b class="fc">&nbsp;        this.pluginInstance = pluginInstance;</b>
    -<b class="fc">&nbsp;        this.type = type;</b>
    -<b class="fc">&nbsp;        this.typeInstance = typeInstance;</b>
    -<b class="fc">&nbsp;        this.timestamp = timestamp;</b>
    -<b class="fc">&nbsp;        this.period = period;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getHost() {
    -<b class="fc">&nbsp;        return host;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getPlugin() {
    -<b class="fc">&nbsp;        return plugin;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getPluginInstance() {
    -<b class="fc">&nbsp;        return pluginInstance;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getType() {
    -<b class="fc">&nbsp;        return type;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getTypeInstance() {
    -<b class="fc">&nbsp;        return typeInstance;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    long getTimestamp() {
    -<b class="fc">&nbsp;        return timestamp;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    long getPeriod() {
    -<b class="fc">&nbsp;        return period;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    static class Builder {
    -&nbsp;
    -&nbsp;        private String host;
    -&nbsp;        private String plugin;
    -&nbsp;        private String pluginInstance;
    -&nbsp;        private String type;
    -&nbsp;        private String typeInstance;
    -&nbsp;        private long timestamp;
    -&nbsp;        private long period;
    -&nbsp;        private Sanitize sanitize;
    -&nbsp;
    -&nbsp;        Builder(String host, long timestamp, long duration) {
    -<b class="fc">&nbsp;            this(new Sanitize(Sanitize.DEFAULT_MAX_LENGTH), host, timestamp, duration);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        Builder(Sanitize sanitize, String host, long timestamp, long duration) {</b>
    -<b class="fc">&nbsp;            this.sanitize = sanitize;</b>
    -<b class="fc">&nbsp;            this.host = sanitize.instanceName(host);</b>
    -<b class="fc">&nbsp;            this.timestamp = timestamp;</b>
    -<b class="fc">&nbsp;            period = duration;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder plugin(String name) {
    -<b class="fc">&nbsp;            plugin = sanitize.name(name);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder pluginInstance(String name) {
    -<b class="nc">&nbsp;            pluginInstance = sanitize.instanceName(name);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder type(String name) {
    -<b class="fc">&nbsp;            type = sanitize.name(name);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder typeInstance(String name) {
    -<b class="fc">&nbsp;            typeInstance = sanitize.instanceName(name);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        MetaData get() {
    -<b class="fc">&nbsp;            return new MetaData(host, plugin, pluginInstance, type, typeInstance, timestamp, period);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-3.html
    deleted file mode 100644
    index d805c74669..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-3.html
    +++ /dev/null
    @@ -1,424 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PacketWriter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PacketWriter (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PacketWriter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.4%
    -  </span>
    -  <span class="absValue">
    -    (88/103)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">PacketWriter$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">PacketWriter$EncryptionResult</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import javax.crypto.BadPaddingException;
    -&nbsp;import javax.crypto.Cipher;
    -&nbsp;import javax.crypto.IllegalBlockSizeException;
    -&nbsp;import javax.crypto.Mac;
    -&nbsp;import javax.crypto.NoSuchPaddingException;
    -&nbsp;import javax.crypto.ShortBufferException;
    -&nbsp;import javax.crypto.spec.IvParameterSpec;
    -&nbsp;import javax.crypto.spec.SecretKeySpec;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.BufferOverflowException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.ByteOrder;
    -&nbsp;import java.nio.charset.StandardCharsets;
    -&nbsp;import java.security.InvalidKeyException;
    -&nbsp;import java.security.MessageDigest;
    -&nbsp;import java.security.NoSuchAlgorithmException;
    -&nbsp;import java.security.spec.InvalidParameterSpecException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;
    -&nbsp;class PacketWriter {
    -&nbsp;
    -&nbsp;    private static final int TYPE_HOST = 0;
    -&nbsp;    private static final int TYPE_TIME = 1;
    -&nbsp;    private static final int TYPE_PLUGIN = 2;
    -&nbsp;    private static final int TYPE_PLUGIN_INSTANCE = 3;
    -&nbsp;    private static final int TYPE_TYPE = 4;
    -&nbsp;    private static final int TYPE_TYPE_INSTANCE = 5;
    -&nbsp;    private static final int TYPE_VALUES = 6;
    -&nbsp;    private static final int TYPE_INTERVAL = 7;
    -&nbsp;    private static final int TYPE_SIGN_SHA256 = 0x0200;
    -&nbsp;    private static final int TYPE_ENCR_AES256 = 0x0210;
    -&nbsp;
    -&nbsp;    private static final int UINT16_LEN = 2;
    -&nbsp;    private static final int UINT32_LEN = UINT16_LEN * 2;
    -&nbsp;    private static final int UINT64_LEN = UINT32_LEN * 2;
    -&nbsp;    private static final int HEADER_LEN = UINT16_LEN * 2;
    -&nbsp;    private static final int BUFFER_SIZE = 1024;
    -&nbsp;
    -&nbsp;    private static final int VALUE_COUNT_LEN = UINT16_LEN;
    -&nbsp;    private static final int NUMBER_LEN = HEADER_LEN + UINT64_LEN;
    -&nbsp;    private static final int SIGNATURE_LEN = 36;      // 2b Type + 2b Length + 32b Hash
    -&nbsp;    private static final int ENCRYPT_DATA_LEN = 22;   // 16b IV + 2b Type + 2b Length + 2b Username length
    -&nbsp;    private static final int IV_LENGTH = 16;
    -&nbsp;    private static final int SHA1_LENGTH = 20;
    -&nbsp;
    -&nbsp;    private static final int VALUE_LEN = 9;
    -&nbsp;    private static final byte DATA_TYPE_GAUGE = (byte) 1;
    -&nbsp;    private static final byte NULL = (byte) &#39;\0&#39;;
    -&nbsp;    private static final String HMAC_SHA256_ALGORITHM = &quot;HmacSHA256&quot;;
    -&nbsp;    private static final String AES_CYPHER = &quot;AES_256/OFB/NoPadding&quot;;
    -&nbsp;    private static final String AES = &quot;AES&quot;;
    -&nbsp;    private static final String SHA_256_ALGORITHM = &quot;SHA-256&quot;;
    -&nbsp;    private static final String SHA_1_ALGORITHM = &quot;SHA1&quot;;
    -&nbsp;
    -&nbsp;    private final Sender sender;
    -&nbsp;
    -&nbsp;    private final SecurityLevel securityLevel;
    -&nbsp;    private final byte[] username;
    -&nbsp;    private final byte[] password;
    -&nbsp;
    -<b class="fc">&nbsp;    PacketWriter(Sender sender, String username, String password, SecurityLevel securityLevel) {</b>
    -<b class="fc">&nbsp;        this.sender = sender;</b>
    -<b class="fc">&nbsp;        this.securityLevel = securityLevel;</b>
    -<b class="fc">&nbsp;        this.username = username != null ? username.getBytes(StandardCharsets.UTF_8) : null;</b>
    -<b class="fc">&nbsp;        this.password = password != null ? password.getBytes(StandardCharsets.UTF_8) : null;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void write(MetaData metaData, Number... values) throws BufferOverflowException, IOException {
    -<b class="fc">&nbsp;        final ByteBuffer packet = ByteBuffer.allocate(BUFFER_SIZE);</b>
    -<b class="fc">&nbsp;        write(packet, metaData);</b>
    -<b class="fc">&nbsp;        write(packet, values);</b>
    -<b class="fc">&nbsp;        packet.flip();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        switch (securityLevel) {</b>
    -&nbsp;            case NONE:
    -<b class="fc">&nbsp;                sender.send(packet);</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case SIGN:
    -<b class="fc">&nbsp;                sender.send(signPacket(packet));</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case ENCRYPT:
    -<b class="fc">&nbsp;                sender.send(encryptPacket(packet));</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;Unsupported security level: &quot; + securityLevel);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    private void write(ByteBuffer buffer, MetaData metaData) {
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_HOST, metaData.getHost());</b>
    -<b class="fc">&nbsp;        writeNumber(buffer, TYPE_TIME, metaData.getTimestamp());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_PLUGIN, metaData.getPlugin());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_PLUGIN_INSTANCE, metaData.getPluginInstance());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_TYPE, metaData.getType());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_TYPE_INSTANCE, metaData.getTypeInstance());</b>
    -<b class="fc">&nbsp;        writeNumber(buffer, TYPE_INTERVAL, metaData.getPeriod());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void write(ByteBuffer buffer, Number... values) {
    -<b class="fc">&nbsp;        final int numValues = values.length;</b>
    -<b class="fc">&nbsp;        final int length = HEADER_LEN + VALUE_COUNT_LEN + numValues * VALUE_LEN;</b>
    -<b class="fc">&nbsp;        writeHeader(buffer, TYPE_VALUES, length);</b>
    -<b class="fc">&nbsp;        buffer.putShort((short) numValues);</b>
    -<b class="fc">&nbsp;        buffer.put(nCopies(numValues, DATA_TYPE_GAUGE));</b>
    -<b class="fc">&nbsp;        buffer.order(ByteOrder.LITTLE_ENDIAN);</b>
    -<b class="fc">&nbsp;        for (Number value : values) {</b>
    -<b class="fc">&nbsp;            buffer.putDouble(value.doubleValue());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        buffer.order(ByteOrder.BIG_ENDIAN);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private byte[] nCopies(int n, byte value) {
    -<b class="fc">&nbsp;        final byte[] array = new byte[n];</b>
    -<b class="fc">&nbsp;        Arrays.fill(array, value);</b>
    -<b class="fc">&nbsp;        return array;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeString(ByteBuffer buffer, int type, String val) {
    -<b class="fc">&nbsp;        if (val == null || val.length() == 0) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        int len = HEADER_LEN + val.length() + 1;</b>
    -<b class="fc">&nbsp;        writeHeader(buffer, type, len);</b>
    -<b class="fc">&nbsp;        buffer.put(val.getBytes(StandardCharsets.US_ASCII)).put(NULL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeNumber(ByteBuffer buffer, int type, long val) {
    -<b class="fc">&nbsp;        writeHeader(buffer, type, NUMBER_LEN);</b>
    -<b class="fc">&nbsp;        buffer.putLong(val);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeHeader(ByteBuffer buffer, int type, int len) {
    -<b class="fc">&nbsp;        buffer.putShort((short) type);</b>
    -<b class="fc">&nbsp;        buffer.putShort((short) len);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Signs the provided packet, so a CollectD server can verify that its authenticity.
    -&nbsp;     * Wire format:
    -&nbsp;     * &lt;pre&gt;
    -&nbsp;     * +-------------------------------+-------------------------------+
    -&nbsp;     * ! Type (0x0200)                 ! Length                        !
    -&nbsp;     * +-------------------------------+-------------------------------+
    -&nbsp;     * ! Signature (SHA2(username + packet))                           \
    -&nbsp;     * +-------------------------------+-------------------------------+
    -&nbsp;     * ! Username                      ! Packet                        \
    -&nbsp;     * +---------------------------------------------------------------+
    -&nbsp;     * &lt;/pre&gt;
    -&nbsp;     *
    -&nbsp;     * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Binary_protocol#Signature_part&quot;&gt;
    -&nbsp;     * Binary protocol - CollectD | Signature part&lt;/a&gt;
    -&nbsp;     */
    -&nbsp;    private ByteBuffer signPacket(ByteBuffer packet) {
    -<b class="fc">&nbsp;        final byte[] signature = sign(password, (ByteBuffer) ByteBuffer.allocate(packet.remaining() + username.length)</b>
    -<b class="fc">&nbsp;                .put(username)</b>
    -<b class="fc">&nbsp;                .put(packet)</b>
    -<b class="fc">&nbsp;                .flip());</b>
    -<b class="fc">&nbsp;        return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)</b>
    -<b class="fc">&nbsp;                .putShort((short) TYPE_SIGN_SHA256)</b>
    -<b class="fc">&nbsp;                .putShort((short) (username.length + SIGNATURE_LEN))</b>
    -<b class="fc">&nbsp;                .put(signature)</b>
    -<b class="fc">&nbsp;                .put(username)</b>
    -<b class="fc">&nbsp;                .put((ByteBuffer) packet.flip())</b>
    -<b class="fc">&nbsp;                .flip();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Encrypts the provided packet, so it&#39;s can&#39;t be eavesdropped during a transfer
    -&nbsp;     * to a CollectD server. Wire format:
    -&nbsp;     * &lt;pre&gt;
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * ! Type (0x0210)                   ! Length                        !
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * ! Username length in bytes        ! Username                      \
    -&nbsp;     * +-----------------------------------------------------------------+
    -&nbsp;     * ! Initialization Vector (IV)      !                               \
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * ! Encrypted bytes (AES (SHA1(packet) + packet))                   \
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * &lt;/pre&gt;
    -&nbsp;     *
    -&nbsp;     * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Binary_protocol#Encrypted_part&quot;&gt;
    -&nbsp;     * Binary protocol - CollectD | Encrypted part&lt;/a&gt;
    -&nbsp;     */
    -&nbsp;    private ByteBuffer encryptPacket(ByteBuffer packet) {
    -<b class="fc">&nbsp;        final ByteBuffer payload = (ByteBuffer) ByteBuffer.allocate(SHA1_LENGTH + packet.remaining())</b>
    -<b class="fc">&nbsp;                .put(sha1(packet))</b>
    -<b class="fc">&nbsp;                .put((ByteBuffer) packet.flip())</b>
    -<b class="fc">&nbsp;                .flip();</b>
    -<b class="fc">&nbsp;        final EncryptionResult er = encrypt(password, payload);</b>
    -<b class="fc">&nbsp;        return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)</b>
    -<b class="fc">&nbsp;                .putShort((short) TYPE_ENCR_AES256)</b>
    -<b class="fc">&nbsp;                .putShort((short) (ENCRYPT_DATA_LEN + username.length + er.output.remaining()))</b>
    -<b class="fc">&nbsp;                .putShort((short) username.length)</b>
    -<b class="fc">&nbsp;                .put(username)</b>
    -<b class="fc">&nbsp;                .put(er.iv)</b>
    -<b class="fc">&nbsp;                .put(er.output)</b>
    -<b class="fc">&nbsp;                .flip();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static byte[] sign(byte[] secret, ByteBuffer input) {
    -&nbsp;        final Mac mac;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            mac = Mac.getInstance(HMAC_SHA256_ALGORITHM);</b>
    -<b class="fc">&nbsp;            mac.init(new SecretKeySpec(secret, HMAC_SHA256_ALGORITHM));</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException | InvalidKeyException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        mac.update(input);</b>
    -<b class="fc">&nbsp;        return mac.doFinal();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static EncryptionResult encrypt(byte[] password, ByteBuffer input) {
    -&nbsp;        final Cipher cipher;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            cipher = Cipher.getInstance(AES_CYPHER);</b>
    -<b class="fc">&nbsp;            cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(sha256(password), AES));</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;        final byte[] iv;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            iv = cipher.getParameters().getParameterSpec(IvParameterSpec.class).getIV();</b>
    -<b class="nc">&nbsp;        } catch (InvalidParameterSpecException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        if (iv.length != IV_LENGTH) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Bad initialization vector&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ByteBuffer output = ByteBuffer.allocate(input.remaining() * 2);</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            cipher.doFinal(input, output);</b>
    -<b class="nc">&nbsp;        } catch (ShortBufferException | IllegalBlockSizeException | BadPaddingException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return new EncryptionResult(iv, (ByteBuffer) output.flip());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static byte[] sha256(byte[] input) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return MessageDigest.getInstance(SHA_256_ALGORITHM).digest(input);</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static byte[] sha1(ByteBuffer input) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            final MessageDigest digest = MessageDigest.getInstance(SHA_1_ALGORITHM);</b>
    -<b class="fc">&nbsp;            digest.update(input);</b>
    -<b class="fc">&nbsp;            final byte[] output = digest.digest();</b>
    -<b class="fc">&nbsp;            if (output.length != SHA1_LENGTH) {</b>
    -<b class="nc">&nbsp;                throw new IllegalStateException(&quot;Bad SHA1 hash&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return output;</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class EncryptionResult {</b>
    -&nbsp;
    -&nbsp;        private final byte[] iv;
    -&nbsp;        private final ByteBuffer output;
    -&nbsp;
    -<b class="fc">&nbsp;        private EncryptionResult(byte[] iv, ByteBuffer output) {</b>
    -<b class="fc">&nbsp;            this.iv = iv;</b>
    -<b class="fc">&nbsp;            this.output = output;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-4.html
    deleted file mode 100644
    index 4e031be5b4..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-4.html
    +++ /dev/null
    @@ -1,150 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Sanitize</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Sanitize (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Sanitize</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Naming_schema&gt;Collectd naming schema&lt;/a&gt;
    -&nbsp; */
    -&nbsp;class Sanitize {
    -&nbsp;
    -&nbsp;    static final int DEFAULT_MAX_LENGTH = 63;
    -&nbsp;
    -&nbsp;    private static final char DASH = &#39;-&#39;;
    -&nbsp;    private static final char SLASH = &#39;/&#39;;
    -&nbsp;    private static final char NULL = &#39;\0&#39;;
    -&nbsp;    private static final char UNDERSCORE = &#39;_&#39;;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final List&lt;Character&gt; INSTANCE_RESERVED = Arrays.asList(SLASH, NULL);</b>
    -<b class="fc">&nbsp;    private static final List&lt;Character&gt; NAME_RESERVED = Arrays.asList(DASH, SLASH, NULL);</b>
    -&nbsp;
    -&nbsp;    private final int maxLength;
    -&nbsp;
    -<b class="fc">&nbsp;    Sanitize(int maxLength) {</b>
    -<b class="fc">&nbsp;        this.maxLength = maxLength;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String name(String name) {
    -<b class="fc">&nbsp;        return sanitize(name, NAME_RESERVED);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String instanceName(String instanceName) {
    -<b class="fc">&nbsp;        return sanitize(instanceName, INSTANCE_RESERVED);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String sanitize(String string, List&lt;Character&gt; reservedChars) {
    -<b class="fc">&nbsp;        final StringBuilder buffer = new StringBuilder(string.length());</b>
    -<b class="fc">&nbsp;        final int len = Math.min(string.length(), maxLength);</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; len; i++) {</b>
    -<b class="fc">&nbsp;            final char c = string.charAt(i);</b>
    -<b class="fc">&nbsp;            final boolean legal = ((int) c) &lt; 128 &amp;&amp; !reservedChars.contains(c);</b>
    -<b class="fc">&nbsp;            buffer.append(legal ? c : UNDERSCORE);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return buffer.toString();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-5.html
    deleted file mode 100644
    index 0455d52e0e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-5.html
    +++ /dev/null
    @@ -1,134 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SecurityConfiguration</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SecurityConfiguration (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SecurityConfiguration</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;public class SecurityConfiguration {
    -&nbsp;
    -&nbsp;    private final byte[] username;
    -&nbsp;    private final byte[] password;
    -&nbsp;    private final SecurityLevel securityLevel;
    -&nbsp;
    -<b class="nc">&nbsp;    public SecurityConfiguration(byte[] username, byte[] password, SecurityLevel securityLevel) {</b>
    -<b class="nc">&nbsp;        this.username = username;</b>
    -<b class="nc">&nbsp;        this.password = password;</b>
    -<b class="nc">&nbsp;        this.securityLevel = securityLevel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static SecurityConfiguration none() {
    -<b class="nc">&nbsp;        return new SecurityConfiguration(null, null, SecurityLevel.NONE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public byte[] getUsername() {
    -<b class="nc">&nbsp;        return username;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public byte[] getPassword() {
    -<b class="nc">&nbsp;        return password;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public SecurityLevel getSecurityLevel() {
    -<b class="nc">&nbsp;        return securityLevel;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-6.html
    deleted file mode 100644
    index af49f6a187..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-6.html
    +++ /dev/null
    @@ -1,112 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SecurityLevel</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SecurityLevel (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SecurityLevel</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -<b class="fc">&nbsp;public enum SecurityLevel {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    NONE,</b>
    -<b class="fc">&nbsp;    SIGN,</b>
    -<b class="fc">&nbsp;    ENCRYPT</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-7.html b/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-7.html
    deleted file mode 100644
    index 220b215ae3..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-5/sources/source-7.html
    +++ /dev/null
    @@ -1,154 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Sender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Sender (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Sender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.channels.DatagramChannel;
    -&nbsp;
    -&nbsp;public class Sender {
    -&nbsp;
    -&nbsp;    private final String host;
    -&nbsp;    private final int port;
    -&nbsp;
    -&nbsp;    private InetSocketAddress address;
    -&nbsp;    private DatagramChannel channel;
    -&nbsp;
    -<b class="fc">&nbsp;    public Sender(String host, int port) {</b>
    -<b class="fc">&nbsp;        this.host = host;</b>
    -<b class="fc">&nbsp;        this.port = port;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void connect() throws IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (host != null) {</b>
    -<b class="fc">&nbsp;            address = new InetSocketAddress(host, port);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        channel = DatagramChannel.open();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return channel != null &amp;&amp; !channel.socket().isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void send(ByteBuffer buffer) throws IOException {
    -<b class="fc">&nbsp;        channel.send(buffer, address);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void disconnect() throws IOException {
    -<b class="fc">&nbsp;        if (channel == null) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;        try {
    -<b class="fc">&nbsp;            channel.close();</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            channel = null;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index.html
    deleted file mode 100644
    index 9611669772..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-6/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 8d8754a22b..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 44944fc74a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index e3e3744f12..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 3c89630c4e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 9f94c303c7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 816546fe40..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 8674f1de53..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 68599089e4..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index b21df5ddfe..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/sources/source-1.html
    deleted file mode 100644
    index 36c6003858..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-6/sources/source-1.html
    +++ /dev/null
    @@ -1,128 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedCacheDecoratorFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.ehcache</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedCacheDecoratorFactory (com.codahale.metrics.ehcache)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedCacheDecoratorFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.ehcache;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import net.sf.ehcache.Ehcache;
    -&nbsp;import net.sf.ehcache.constructs.CacheDecoratorFactory;
    -&nbsp;
    -&nbsp;import java.util.Properties;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedCacheDecoratorFactory extends CacheDecoratorFactory {</b>
    -&nbsp;    @Override
    -&nbsp;    public Ehcache createDecoratedEhcache(Ehcache cache, Properties properties) {
    -<b class="fc">&nbsp;        final String name = properties.getProperty(&quot;metric-registry-name&quot;);</b>
    -<b class="fc">&nbsp;        final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);</b>
    -<b class="fc">&nbsp;        return InstrumentedEhcache.instrument(registry, cache);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Ehcache createDefaultDecoratedEhcache(Ehcache cache, Properties properties) {
    -<b class="nc">&nbsp;        final String name = properties.getProperty(&quot;metric-registry-name&quot;);</b>
    -<b class="nc">&nbsp;        final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);</b>
    -<b class="nc">&nbsp;        return InstrumentedEhcache.instrument(registry, cache);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-6/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-6/sources/source-2.html
    deleted file mode 100644
    index cc85a63d16..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-6/sources/source-2.html
    +++ /dev/null
    @@ -1,335 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedEhcache</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.ehcache</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedEhcache (com.codahale.metrics.ehcache)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedEhcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.ehcache;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import net.sf.ehcache.CacheException;
    -&nbsp;import net.sf.ehcache.Ehcache;
    -&nbsp;import net.sf.ehcache.Element;
    -&nbsp;import net.sf.ehcache.constructs.EhcacheDecoratorAdapter;
    -&nbsp;import net.sf.ehcache.statistics.StatisticsGateway;
    -&nbsp;
    -&nbsp;import java.io.Serializable;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An instrumented {@link Ehcache} instance.
    -&nbsp; */
    -&nbsp;public class InstrumentedEhcache extends EhcacheDecoratorAdapter {
    -&nbsp;    /**
    -&nbsp;     * Instruments the given {@link Ehcache} instance with get and put timers
    -&nbsp;     * and a set of gauges for Ehcache&#39;s built-in statistics:
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * &lt;table&gt;
    -&nbsp;     * &lt;caption&gt;Ehcache timered metrics&lt;/caption&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The number of times a requested item was found in the
    -&nbsp;     * cache.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code in-memory-hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was found in the memory
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code off-heap-hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was found in the off-heap
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code on-disk-hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was found in the disk
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the
    -&nbsp;     * cache.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code in-memory-misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the memory
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code off-heap-misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the
    -&nbsp;     * off-heap store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code on-disk-misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the disk
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of elements stored in the cache.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code in-memory-objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of objects in the memory store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code off-heap-objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of objects in the off-heap store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code on-disk-objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of objects in the disk store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code mean-get-time}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The average get time. Because ehcache support JDK1.4.2, each
    -&nbsp;     * get time uses {@link System#currentTimeMillis()}, rather than
    -&nbsp;     * nanoseconds. The accuracy is thus limited.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code mean-search-time}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The average execution time (in milliseconds) within the last
    -&nbsp;     * sample period.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code eviction-count}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The number of cache evictions, since the cache was created,
    -&nbsp;     * or statistics were cleared.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code searches-per-second}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The number of search executions that have completed in the
    -&nbsp;     * last second.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code accuracy}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;A human readable description of the accuracy setting. One of
    -&nbsp;     * &quot;None&quot;, &quot;Best Effort&quot; or &quot;Guaranteed&quot;.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;/table&gt;
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * &lt;b&gt;N.B.: This enables Ehcache&#39;s sampling statistics with an accuracy
    -&nbsp;     * level of &quot;none.&quot;&lt;/b&gt;
    -&nbsp;     *
    -&nbsp;     * @param cache    an {@link Ehcache} instance
    -&nbsp;     * @param registry a {@link MetricRegistry}
    -&nbsp;     * @return an instrumented decorator for {@code cache}
    -&nbsp;     * @see StatisticsGateway
    -&nbsp;     */
    -&nbsp;    public static Ehcache instrument(MetricRegistry registry, final Ehcache cache) {
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = name(cache.getClass(), cache.getName());</b>
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localHeapHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localOffHeapHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localDiskHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localHeapMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localOffHeapMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localDiskMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalHeapSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalOffHeapSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalDiskSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;mean-get-time&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheGetOperation().latency().average().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;mean-search-time&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheSearchOperation().latency().average().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;eviction-count&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheEvictionOperation().count().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;searches-per-second&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheSearchOperation().rate().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;writer-queue-size&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getWriterQueueLength());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return new InstrumentedEhcache(registry, cache);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final Timer getTimer, putTimer;
    -&nbsp;
    -&nbsp;    private InstrumentedEhcache(MetricRegistry registry, Ehcache cache) {
    -<b class="fc">&nbsp;        super(cache);</b>
    -<b class="fc">&nbsp;        this.getTimer = registry.timer(name(cache.getClass(), cache.getName(), &quot;gets&quot;));</b>
    -<b class="fc">&nbsp;        this.putTimer = registry.timer(name(cache.getClass(), cache.getName(), &quot;puts&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Element get(Object key) throws IllegalStateException, CacheException {
    -<b class="nc">&nbsp;        final Timer.Context ctx = getTimer.time();</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            return underlyingCache.get(key);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Element get(Serializable key) throws IllegalStateException, CacheException {
    -<b class="fc">&nbsp;        final Timer.Context ctx = getTimer.time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return underlyingCache.get(key);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void put(Element element) throws IllegalArgumentException, IllegalStateException, CacheException {
    -<b class="fc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            underlyingCache.put(element);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            ctx.stop();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void put(Element element, boolean doNotNotifyCacheReplicators) throws IllegalArgumentException, IllegalStateException, CacheException {
    -<b class="nc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            underlyingCache.put(element, doNotNotifyCacheReplicators);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Element putIfAbsent(Element element) throws NullPointerException {
    -<b class="nc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            return underlyingCache.putIfAbsent(element);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index.html
    deleted file mode 100644
    index bb5dabe05f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-7/index.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 7f99b878d0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 768b4c7f2f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 1f6ad48c16..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 05109cc337..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_LINE.html
    deleted file mode 100644
    index f9e8e02fbc..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index a36fb3760d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 66484e711b..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 3f63a3106b..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 87ecb8f30e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-1.html
    deleted file mode 100644
    index aaa2a76f35..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-1.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Graphite</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Graphite (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import javax.net.SocketFactory;
    -&nbsp;import java.io.BufferedWriter;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.Writer;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.net.Socket;
    -&nbsp;import java.net.UnknownHostException;
    -&nbsp;import java.nio.charset.Charset;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A client to a Carbon server via TCP.
    -&nbsp; */
    -&nbsp;public class Graphite implements GraphiteSender {
    -&nbsp;    // this may be optimistic about Carbon/Graphite
    -&nbsp;
    -&nbsp;    private final String hostname;
    -&nbsp;    private final int port;
    -&nbsp;    private final InetSocketAddress address;
    -&nbsp;    private final SocketFactory socketFactory;
    -&nbsp;    private final Charset charset;
    -&nbsp;
    -&nbsp;    private Socket socket;
    -&nbsp;    private Writer writer;
    -&nbsp;    private int failures;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(Graphite.class);</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default
    -&nbsp;     * {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param hostname The hostname of the Carbon server
    -&nbsp;     * @param port     The port of the Carbon server
    -&nbsp;     */
    -&nbsp;    public Graphite(String hostname, int port) {
    -<b class="nc">&nbsp;        this(hostname, port, SocketFactory.getDefault());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param hostname      The hostname of the Carbon server
    -&nbsp;     * @param port          The port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     */
    -&nbsp;    public Graphite(String hostname, int port, SocketFactory socketFactory) {
    -<b class="fc">&nbsp;        this(hostname, port, socketFactory, UTF_8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given
    -&nbsp;     * character set.
    -&nbsp;     *
    -&nbsp;     * @param hostname      The hostname of the Carbon server
    -&nbsp;     * @param port          The port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     */
    -<b class="fc">&nbsp;    public Graphite(String hostname, int port, SocketFactory socketFactory, Charset charset) {</b>
    -<b class="fc">&nbsp;        if (hostname == null || hostname.isEmpty()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;hostname must not be null or empty&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (port &lt; 0 || port &gt; 65535) {</b>
    -<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;port must be a valid IP port (0-65535)&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.hostname = hostname;</b>
    -<b class="fc">&nbsp;        this.port = port;</b>
    -<b class="fc">&nbsp;        this.address = null;</b>
    -<b class="fc">&nbsp;        this.socketFactory = requireNonNull(socketFactory, &quot;socketFactory must not be null&quot;);</b>
    -<b class="fc">&nbsp;        this.charset = requireNonNull(charset, &quot;charset must not be null&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default
    -&nbsp;     * {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param address the address of the Carbon server
    -&nbsp;     */
    -&nbsp;    public Graphite(InetSocketAddress address) {
    -<b class="nc">&nbsp;        this(address, SocketFactory.getDefault());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     */
    -&nbsp;    public Graphite(InetSocketAddress address, SocketFactory socketFactory) {
    -<b class="fc">&nbsp;        this(address, socketFactory, UTF_8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given
    -&nbsp;     * character set.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     */
    -<b class="fc">&nbsp;    public Graphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset) {</b>
    -<b class="fc">&nbsp;        this.hostname = null;</b>
    -<b class="fc">&nbsp;        this.port = -1;</b>
    -<b class="fc">&nbsp;        this.address = requireNonNull(address, &quot;address must not be null&quot;);</b>
    -<b class="fc">&nbsp;        this.socketFactory = requireNonNull(socketFactory, &quot;socketFactory must not be null&quot;);</b>
    -<b class="fc">&nbsp;        this.charset = requireNonNull(charset, &quot;charset must not be null&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        InetSocketAddress address = this.address;</b>
    -&nbsp;        // the previous dns retry logic did not work, as address.getAddress would always return the cached value
    -&nbsp;        // this version of the simplified logic will always cause a dns request if hostname has been supplied.
    -&nbsp;        // InetAddress.getByName forces the dns lookup
    -&nbsp;        // if an InetSocketAddress was supplied at create time that will take precedence.
    -<b class="fc">&nbsp;        if (address == null || address.getHostName() == null &amp;&amp; hostname != null) {</b>
    -<b class="fc">&nbsp;            address = new InetSocketAddress(hostname, port);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (address.getAddress() == null) {</b>
    -<b class="fc">&nbsp;            throw new UnknownHostException(address.getHostName());</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());</b>
    -<b class="nc">&nbsp;        this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return socket != null &amp;&amp; socket.isConnected() &amp;&amp; !socket.isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -&nbsp;        try {
    -<b class="nc">&nbsp;            writer.write(sanitize(name));</b>
    -<b class="nc">&nbsp;            writer.write(&#39; &#39;);</b>
    -<b class="nc">&nbsp;            writer.write(sanitize(value));</b>
    -<b class="nc">&nbsp;            writer.write(&#39; &#39;);</b>
    -<b class="nc">&nbsp;            writer.write(Long.toString(timestamp));</b>
    -<b class="nc">&nbsp;            writer.write(&#39;\n&#39;);</b>
    -<b class="nc">&nbsp;            this.failures = 0;</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            failures++;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="fc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -<b class="nc">&nbsp;        if (writer != null) {</b>
    -<b class="nc">&nbsp;            writer.flush();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            if (writer != null) {</b>
    -<b class="nc">&nbsp;                writer.close();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    -<b class="nc">&nbsp;            LOGGER.debug(&quot;Error closing writer&quot;, ex);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            this.writer = null;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            if (socket != null) {</b>
    -<b class="nc">&nbsp;                socket.close();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    -<b class="nc">&nbsp;            LOGGER.debug(&quot;Error closing socket&quot;, ex);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            this.socket = null;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String s) {
    -<b class="nc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-2.html
    deleted file mode 100644
    index 44eca6b237..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-2.html
    +++ /dev/null
    @@ -1,293 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteRabbitMQ</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteRabbitMQ (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteRabbitMQ</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.2%
    -  </span>
    -  <span class="absValue">
    -    (24/38)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">GraphiteRabbitMQ$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import com.rabbitmq.client.Channel;
    -&nbsp;import com.rabbitmq.client.Connection;
    -&nbsp;import com.rabbitmq.client.ConnectionFactory;
    -&nbsp;import com.rabbitmq.client.DefaultSocketConfigurator;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.Socket;
    -&nbsp;import java.util.concurrent.TimeoutException;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A rabbit-mq client to a Carbon server.
    -&nbsp; */
    -&nbsp;public class GraphiteRabbitMQ implements GraphiteSender {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS = 500;</b>
    -<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_SOCKET_TIMEOUT_MS = 5000;</b>
    -<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC = 10;</b>
    -&nbsp;
    -&nbsp;    private ConnectionFactory connectionFactory;
    -&nbsp;    private Connection connection;
    -&nbsp;    private Channel channel;
    -&nbsp;    private String exchange;
    -&nbsp;
    -&nbsp;    private int failures;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client with a given a {@link com.rabbitmq.client.ConnectionFactory} and an amqp exchange
    -&nbsp;     *
    -&nbsp;     * @param connectionFactory the {@link com.rabbitmq.client.ConnectionFactory} used to establish connection and publish to graphite server
    -&nbsp;     * @param exchange          the amqp exchange
    -&nbsp;     */
    -<b class="fc">&nbsp;    public GraphiteRabbitMQ(final ConnectionFactory connectionFactory, final String exchange) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.exchange = exchange;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client given connection details
    -&nbsp;     *
    -&nbsp;     * @param rabbitHost     the rabbitmq server host
    -&nbsp;     * @param rabbitPort     the rabbitmq server port
    -&nbsp;     * @param rabbitUsername the rabbitmq server username
    -&nbsp;     * @param rabbitPassword the rabbitmq server password
    -&nbsp;     * @param exchange       the amqp exchange
    -&nbsp;     */
    -&nbsp;    public GraphiteRabbitMQ(
    -&nbsp;            final String rabbitHost,
    -&nbsp;            final Integer rabbitPort,
    -&nbsp;            final String rabbitUsername,
    -&nbsp;            final String rabbitPassword,
    -&nbsp;            final String exchange) {
    -&nbsp;
    -<b class="nc">&nbsp;        this(rabbitHost,</b>
    -&nbsp;                rabbitPort,
    -&nbsp;                rabbitUsername,
    -&nbsp;                rabbitPassword,
    -&nbsp;                exchange,
    -&nbsp;                DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS,
    -&nbsp;                DEFAULT_RABBIT_SOCKET_TIMEOUT_MS,
    -&nbsp;                DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client given connection details
    -&nbsp;     *
    -&nbsp;     * @param rabbitHost                        the rabbitmq server host
    -&nbsp;     * @param rabbitPort                        the rabbitmq server port
    -&nbsp;     * @param rabbitUsername                    the rabbitmq server username
    -&nbsp;     * @param rabbitPassword                    the rabbitmq server password
    -&nbsp;     * @param exchange                          the amqp exchange
    -&nbsp;     * @param rabbitConnectionTimeoutMS         the connection timeout in milliseconds
    -&nbsp;     * @param rabbitSocketTimeoutMS             the socket timeout in milliseconds
    -&nbsp;     * @param rabbitRequestedHeartbeatInSeconds the hearthbeat in seconds
    -&nbsp;     */
    -&nbsp;    public GraphiteRabbitMQ(
    -&nbsp;            final String rabbitHost,
    -&nbsp;            final Integer rabbitPort,
    -&nbsp;            final String rabbitUsername,
    -&nbsp;            final String rabbitPassword,
    -&nbsp;            final String exchange,
    -&nbsp;            final Integer rabbitConnectionTimeoutMS,
    -&nbsp;            final Integer rabbitSocketTimeoutMS,
    -<b class="nc">&nbsp;            final Integer rabbitRequestedHeartbeatInSeconds) {</b>
    -&nbsp;
    -<b class="nc">&nbsp;        this.exchange = exchange;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        this.connectionFactory = new ConnectionFactory();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        connectionFactory.setSocketConfigurator(new DefaultSocketConfigurator() {</b>
    -&nbsp;            @Override
    -&nbsp;            public void configure(Socket socket) throws IOException {
    -<b class="nc">&nbsp;                super.configure(socket);</b>
    -<b class="nc">&nbsp;                socket.setSoTimeout(rabbitSocketTimeoutMS);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="nc">&nbsp;        connectionFactory.setConnectionTimeout(rabbitConnectionTimeoutMS);</b>
    -<b class="nc">&nbsp;        connectionFactory.setRequestedHeartbeat(rabbitRequestedHeartbeatInSeconds);</b>
    -<b class="nc">&nbsp;        connectionFactory.setHost(rabbitHost);</b>
    -<b class="nc">&nbsp;        connectionFactory.setPort(rabbitPort);</b>
    -<b class="nc">&nbsp;        connectionFactory.setUsername(rabbitUsername);</b>
    -<b class="nc">&nbsp;        connectionFactory.setPassword(rabbitPassword);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="fc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            connection = connectionFactory.newConnection();</b>
    -<b class="nc">&nbsp;        } catch (TimeoutException e) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        channel = connection.createChannel();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return connection != null &amp;&amp; connection.isOpen();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            final String sanitizedName = sanitize(name);</b>
    -<b class="fc">&nbsp;            final String sanitizedValue = sanitize(value);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final String message = sanitizedName + &#39; &#39; + sanitizedValue + &#39; &#39; + Long.toString(timestamp) + &#39;\n&#39;;</b>
    -<b class="fc">&nbsp;            channel.basicPublish(exchange, sanitizedName, null, message.getBytes(UTF_8));</b>
    -<b class="fc">&nbsp;        } catch (IOException e) {</b>
    -<b class="fc">&nbsp;            failures++;</b>
    -<b class="fc">&nbsp;            throw e;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -&nbsp;        // Nothing to do
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -<b class="fc">&nbsp;        if (connection != null) {</b>
    -<b class="fc">&nbsp;            connection.close();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="fc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String sanitize(String s) {
    -<b class="fc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-3.html
    deleted file mode 100644
    index 0e782c9324..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-3.html
    +++ /dev/null
    @@ -1,655 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteReporter (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.5%
    -  </span>
    -  <span class="absValue">
    -    (95/105)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">GraphiteReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">GraphiteReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (12/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (31/35)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.Metered;
    -&nbsp;import com.codahale.metrics.MetricAttribute;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.ScheduledReporter;
    -&nbsp;import com.codahale.metrics.Snapshot;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.DoubleFunction;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which publishes metric values to a Graphite server.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://graphite.wikidot.com/&quot;&gt;Graphite - Scalable Realtime Graphing&lt;/a&gt;
    -&nbsp; */
    -<b class="fc">&nbsp;public class GraphiteReporter extends ScheduledReporter {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link GraphiteReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link GraphiteReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link GraphiteReporter} instances. Defaults to not using a prefix, using the
    -&nbsp;     * default clock, converting rates to events/second, converting durations to milliseconds, and
    -&nbsp;     * not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private Clock clock;
    -&nbsp;        private String prefix;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private MetricFilter filter;
    -&nbsp;        private ScheduledExecutorService executor;
    -&nbsp;        private boolean shutdownExecutorOnStop;
    -&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -&nbsp;        private boolean addMetricAttributesAsTags;
    -&nbsp;        private DoubleFunction&lt;String&gt; floatingPointFormatter;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    -<b class="fc">&nbsp;            this.prefix = null;</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;            this.executor = null;</b>
    -<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = Collections.emptySet();</b>
    -<b class="fc">&nbsp;            this.addMetricAttributesAsTags = false;</b>
    -<b class="fc">&nbsp;            this.floatingPointFormatter = DEFAULT_FP_FORMATTER;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -&nbsp;         * Default value is true.
    -&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -&nbsp;         *
    -&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    -&nbsp;         * Default value is null.
    -&nbsp;         * Null value leads to executor will be auto created on start.
    -&nbsp;         *
    -&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given {@link Clock} instance for the time.
    -&nbsp;         *
    -&nbsp;         * @param clock a {@link Clock} instance
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withClock(Clock clock) {
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Prefix all metric names with the given string.
    -&nbsp;         *
    -&nbsp;         * @param prefix the prefix for all metric names
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder prefixedWith(String prefix) {
    -<b class="fc">&nbsp;            this.prefix = prefix;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    -&nbsp;         * See {@link MetricAttribute}.
    -&nbsp;         *
    -&nbsp;         * @param disabledMetricAttributes a set of {@link MetricAttribute}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not metric attributes (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;) should be reported in the traditional dot delimited format or in the tag based format.
    -&nbsp;         * Without tags (default): `my.metric.p99`
    -&nbsp;         * With tags: `my.metric;metricattribute=p99`
    -&nbsp;         *
    -&nbsp;         * Note that this setting only modifies the metric attribute, and will not convert any other portion of the metric name to use tags.
    -&nbsp;         * For mor information on Graphite tag support see https://graphite.readthedocs.io/en/latest/tags.html
    -&nbsp;         * See {@link MetricAttribute}.
    -&nbsp;         *
    -&nbsp;         * @param addMetricAttributesAsTags if true, then metric attributes will be added as tags
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder addMetricAttributesAsTags(boolean addMetricAttributesAsTags) {
    -<b class="fc">&nbsp;            this.addMetricAttributesAsTags = addMetricAttributesAsTags;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use custom floating point formatter.
    -&nbsp;         *
    -&nbsp;         * @param floatingPointFormatter a custom formatter for floating point values
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withFloatingPointFormatter(DoubleFunction&lt;String&gt; floatingPointFormatter) {
    -<b class="fc">&nbsp;            this.floatingPointFormatter = floatingPointFormatter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
    -&nbsp;         * given {@link GraphiteSender}.
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Present for binary compatibility
    -&nbsp;         *
    -&nbsp;         * @param graphite a {@link Graphite}
    -&nbsp;         * @return a {@link GraphiteReporter}
    -&nbsp;         */
    -&nbsp;        public GraphiteReporter build(Graphite graphite) {
    -<b class="fc">&nbsp;            return build((GraphiteSender) graphite);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
    -&nbsp;         * given {@link GraphiteSender}.
    -&nbsp;         *
    -&nbsp;         * @param graphite a {@link GraphiteSender}
    -&nbsp;         * @return a {@link GraphiteReporter}
    -&nbsp;         */
    -&nbsp;        public GraphiteReporter build(GraphiteSender graphite) {
    -<b class="fc">&nbsp;            return new GraphiteReporter(registry,</b>
    -&nbsp;                    graphite,
    -&nbsp;                    clock,
    -&nbsp;                    prefix,
    -&nbsp;                    rateUnit,
    -&nbsp;                    durationUnit,
    -&nbsp;                    filter,
    -&nbsp;                    executor,
    -&nbsp;                    shutdownExecutorOnStop,
    -&nbsp;                    disabledMetricAttributes,
    -&nbsp;                    addMetricAttributesAsTags,
    -&nbsp;                    floatingPointFormatter);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(GraphiteReporter.class);</b>
    -&nbsp;    // the Carbon plaintext format is pretty underspecified, but it seems like it just wants US-formatted digits
    -<b class="fc">&nbsp;    private static final DoubleFunction&lt;String&gt; DEFAULT_FP_FORMATTER = fp -&gt; String.format(Locale.US, &quot;%2.2f&quot;, fp);</b>
    -&nbsp;
    -&nbsp;    private final GraphiteSender graphite;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final boolean addMetricAttributesAsTags;
    -&nbsp;    private final DoubleFunction&lt;String&gt; floatingPointFormatter;
    -&nbsp;  
    -&nbsp;  
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    -&nbsp;     *                                  reporter will report
    -&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    -&nbsp;     *                                  via a transport protocol
    -&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    -&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    -&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    -&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    -&nbsp;     * @param filter                    the filter for which metrics to report
    -&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    -&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    -&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    -&nbsp;     */
    -&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    -&nbsp;                               GraphiteSender graphite,
    -&nbsp;                               Clock clock,
    -&nbsp;                               String prefix,
    -&nbsp;                               TimeUnit rateUnit,
    -&nbsp;                               TimeUnit durationUnit,
    -&nbsp;                               MetricFilter filter,
    -&nbsp;                               ScheduledExecutorService executor,
    -&nbsp;                               boolean shutdownExecutorOnStop,
    -&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="nc">&nbsp;        this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes, false);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    -&nbsp;     *                                  reporter will report
    -&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    -&nbsp;     *                                  via a transport protocol
    -&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    -&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    -&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    -&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    -&nbsp;     * @param filter                    the filter for which metrics to report
    -&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    -&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    -&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    -&nbsp;     * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
    -&nbsp;     */
    -&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    -&nbsp;                               GraphiteSender graphite,
    -&nbsp;                               Clock clock,
    -&nbsp;                               String prefix,
    -&nbsp;                               TimeUnit rateUnit,
    -&nbsp;                               TimeUnit durationUnit,
    -&nbsp;                               MetricFilter filter,
    -&nbsp;                               ScheduledExecutorService executor,
    -&nbsp;                               boolean shutdownExecutorOnStop,
    -&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    -&nbsp;                               boolean addMetricAttributesAsTags) {
    -<b class="fc">&nbsp;        this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes, addMetricAttributesAsTags, DEFAULT_FP_FORMATTER);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    -&nbsp;     *                                  reporter will report
    -&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    -&nbsp;     *                                  via a transport protocol
    -&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    -&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    -&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    -&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    -&nbsp;     * @param filter                    the filter for which metrics to report
    -&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    -&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    -&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    -&nbsp;     * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
    -&nbsp;     * @param floatingPointFormatter    custom floating point formatter
    -&nbsp;     */
    -&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    -&nbsp;                               GraphiteSender graphite,
    -&nbsp;                               Clock clock,
    -&nbsp;                               String prefix,
    -&nbsp;                               TimeUnit rateUnit,
    -&nbsp;                               TimeUnit durationUnit,
    -&nbsp;                               MetricFilter filter,
    -&nbsp;                               ScheduledExecutorService executor,
    -&nbsp;                               boolean shutdownExecutorOnStop,
    -&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    -&nbsp;                               boolean addMetricAttributesAsTags,
    -&nbsp;                               DoubleFunction&lt;String&gt; floatingPointFormatter) {
    -<b class="fc">&nbsp;        super(registry, &quot;graphite-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes);
    -<b class="fc">&nbsp;        this.graphite = graphite;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -<b class="fc">&nbsp;        this.addMetricAttributesAsTags = addMetricAttributesAsTags;</b>
    -<b class="fc">&nbsp;        this.floatingPointFormatter = floatingPointFormatter;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        final long timestamp = clock.getTime() / 1000;</b>
    -&nbsp;
    -&nbsp;        // oh it&#39;d be lovely to use Java 7 here
    -&nbsp;        try {
    -<b class="fc">&nbsp;            graphite.connect();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportGauge(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportCounter(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportHistogram(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportMetered(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportTimer(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            graphite.flush();</b>
    -<b class="fc">&nbsp;        } catch (IOException e) {</b>
    -<b class="fc">&nbsp;            LOGGER.warn(&quot;Unable to report to Graphite&quot;, graphite, e);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            try {</b>
    -<b class="fc">&nbsp;                graphite.close();</b>
    -<b class="nc">&nbsp;            } catch (IOException e1) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Error closing Graphite&quot;, graphite, e1);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void stop() {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.stop();</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            try {</b>
    -<b class="fc">&nbsp;                graphite.close();</b>
    -<b class="nc">&nbsp;            } catch (IOException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Error disconnecting from Graphite&quot;, graphite, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportTimer(String name, Timer timer, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MAX, name, convertDuration(snapshot.getMax()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MEAN, name, convertDuration(snapshot.getMean()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MIN, name, convertDuration(snapshot.getMin()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(STDDEV, name, convertDuration(snapshot.getStdDev()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P50, name, convertDuration(snapshot.getMedian()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P75, name, convertDuration(snapshot.get75thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P95, name, convertDuration(snapshot.get95thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P98, name, convertDuration(snapshot.get98thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P99, name, convertDuration(snapshot.get99thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P999, name, convertDuration(snapshot.get999thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        reportMetered(name, timer, timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportMetered(String name, Metered meter, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        sendIfEnabled(COUNT, name, meter.getCount(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(M1_RATE, name, convertRate(meter.getOneMinuteRate()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(M5_RATE, name, convertRate(meter.getFiveMinuteRate()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(M15_RATE, name, convertRate(meter.getFifteenMinuteRate()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MEAN_RATE, name, convertRate(meter.getMeanRate()), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportHistogram(String name, Histogram histogram, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    -<b class="fc">&nbsp;        sendIfEnabled(COUNT, name, histogram.getCount(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MAX, name, snapshot.getMax(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MEAN, name, snapshot.getMean(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MIN, name, snapshot.getMin(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(STDDEV, name, snapshot.getStdDev(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P50, name, snapshot.getMedian(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P75, name, snapshot.get75thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P95, name, snapshot.get95thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P98, name, snapshot.get98thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P99, name, snapshot.get99thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P999, name, snapshot.get999thPercentile(), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void sendIfEnabled(MetricAttribute type, String name, double value, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void sendIfEnabled(MetricAttribute type, String name, long value, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportCounter(String name, Counter counter, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, COUNT.getCode())), format(counter.getCount()), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportGauge(String name, Gauge&lt;?&gt; gauge, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        final String value = format(gauge.getValue());</b>
    -<b class="fc">&nbsp;        if (value != null) {</b>
    -<b class="fc">&nbsp;            graphite.send(prefix(name), value, timestamp);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String format(Object o) {
    -<b class="fc">&nbsp;        if (o instanceof Float) {</b>
    -<b class="fc">&nbsp;            return format(((Float) o).doubleValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Double) {</b>
    -<b class="fc">&nbsp;            return format(((Double) o).doubleValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Byte) {</b>
    -<b class="fc">&nbsp;            return format(((Byte) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Short) {</b>
    -<b class="fc">&nbsp;            return format(((Short) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Integer) {</b>
    -<b class="fc">&nbsp;            return format(((Integer) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Long) {</b>
    -<b class="fc">&nbsp;            return format(((Long) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Number) {</b>
    -<b class="nc">&nbsp;            return format(((Number) o).doubleValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Boolean) {</b>
    -<b class="fc">&nbsp;            return format(((Boolean) o) ? 1 : 0);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return null;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String prefix(String name) {
    -<b class="fc">&nbsp;        return MetricRegistry.name(prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String appendMetricAttribute(String name, String metricAttribute){
    -<b class="fc">&nbsp;        if (addMetricAttributesAsTags){</b>
    -<b class="fc">&nbsp;            return name + &quot;;metricattribute=&quot; + metricAttribute;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return name + &quot;.&quot; + metricAttribute;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String format(long n) {
    -<b class="fc">&nbsp;        return Long.toString(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String format(double v) {
    -<b class="fc">&nbsp;        return floatingPointFormatter.apply(v);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-4.html
    deleted file mode 100644
    index f4dfa70ff7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-4.html
    +++ /dev/null
    @@ -1,120 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteSanitize</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteSanitize (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteSanitize</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -<b class="nc">&nbsp;class GraphiteSanitize {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    -&nbsp;    private static final String DASH = &quot;-&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Trims the string and replaces all whitespace characters with the provided symbol
    -&nbsp;     */
    -&nbsp;    static String sanitize(String string) {
    -<b class="fc">&nbsp;        return WHITESPACE.matcher(string.trim()).replaceAll(DASH);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-5.html
    deleted file mode 100644
    index 764f34bbc1..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-5.html
    +++ /dev/null
    @@ -1,222 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteUDP</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteUDP (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteUDP</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.net.InetAddress;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.channels.DatagramChannel;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A client to a Carbon server using unconnected UDP
    -&nbsp; */
    -&nbsp;public class GraphiteUDP implements GraphiteSender {
    -&nbsp;
    -&nbsp;    private final String hostname;
    -&nbsp;    private final int port;
    -&nbsp;    private InetSocketAddress address;
    -&nbsp;
    -<b class="fc">&nbsp;    private DatagramChannel datagramChannel = null;</b>
    -&nbsp;    private int failures;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which sends data to given address using UDP
    -&nbsp;     *
    -&nbsp;     * @param hostname The hostname of the Carbon server
    -&nbsp;     * @param port     The port of the Carbon server
    -&nbsp;     */
    -<b class="fc">&nbsp;    public GraphiteUDP(String hostname, int port) {</b>
    -<b class="fc">&nbsp;        this.hostname = hostname;</b>
    -<b class="fc">&nbsp;        this.port = port;</b>
    -<b class="fc">&nbsp;        this.address = null;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which sends data to given address using UDP
    -&nbsp;     *
    -&nbsp;     * @param address the address of the Carbon server
    -&nbsp;     */
    -<b class="nc">&nbsp;    public GraphiteUDP(InetSocketAddress address) {</b>
    -<b class="nc">&nbsp;        this.hostname = null;</b>
    -<b class="nc">&nbsp;        this.port = -1;</b>
    -<b class="nc">&nbsp;        this.address = address;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        // Resolve hostname
    -<b class="fc">&nbsp;        if (hostname != null) {</b>
    -<b class="fc">&nbsp;            address = new InetSocketAddress(InetAddress.getByName(hostname), port);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        datagramChannel = DatagramChannel.open();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return datagramChannel != null &amp;&amp; !datagramChannel.socket().isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            String str = sanitize(name) + &#39; &#39; + sanitize(value) + &#39; &#39; + Long.toString(timestamp) + &#39;\n&#39;;</b>
    -<b class="fc">&nbsp;            ByteBuffer byteBuffer = ByteBuffer.wrap(str.getBytes(UTF_8));</b>
    -<b class="fc">&nbsp;            datagramChannel.send(byteBuffer, address);</b>
    -<b class="fc">&nbsp;            this.failures = 0;</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            failures++;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="nc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -&nbsp;        // Nothing to do
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -<b class="nc">&nbsp;        if (datagramChannel != null) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                datagramChannel.close();</b>
    -&nbsp;            } finally {
    -<b class="nc">&nbsp;                datagramChannel = null;</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String s) {
    -<b class="fc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    DatagramChannel getDatagramChannel() {
    -<b class="nc">&nbsp;        return datagramChannel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void setDatagramChannel(DatagramChannel datagramChannel) {
    -<b class="fc">&nbsp;        this.datagramChannel = datagramChannel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    InetSocketAddress getAddress() {
    -<b class="nc">&nbsp;        return address;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void setAddress(InetSocketAddress address) {
    -<b class="fc">&nbsp;        this.address = address;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-6.html
    deleted file mode 100644
    index 73b3f26b7a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-6.html
    +++ /dev/null
    @@ -1,467 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PickledGraphite</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PickledGraphite (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PickledGraphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.2%
    -  </span>
    -  <span class="absValue">
    -    (4/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.5%
    -  </span>
    -  <span class="absValue">
    -    (15/91)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">PickledGraphite$MetricTuple</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import javax.net.SocketFactory;
    -&nbsp;
    -&nbsp;import java.io.BufferedWriter;
    -&nbsp;import java.io.ByteArrayOutputStream;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.Writer;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.net.Socket;
    -&nbsp;import java.net.UnknownHostException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.charset.Charset;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A client to a Carbon server that sends all metrics after they have been pickled in configurable sized batches
    -&nbsp; */
    -&nbsp;public class PickledGraphite implements GraphiteSender {
    -&nbsp;
    -&nbsp;    static class MetricTuple {
    -&nbsp;        String name;
    -&nbsp;        long timestamp;
    -&nbsp;        String value;
    -&nbsp;
    -<b class="nc">&nbsp;        MetricTuple(String name, long timestamp, String value) {</b>
    -<b class="nc">&nbsp;            this.name = name;</b>
    -<b class="nc">&nbsp;            this.timestamp = timestamp;</b>
    -<b class="nc">&nbsp;            this.value = value;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Minimally necessary pickle opcodes.
    -&nbsp;     */
    -&nbsp;    private static final char
    -&nbsp;            MARK = &#39;(&#39;,
    -&nbsp;            STOP = &#39;.&#39;,
    -&nbsp;            LONG = &#39;L&#39;,
    -&nbsp;            STRING = &#39;S&#39;,
    -&nbsp;            APPEND = &#39;a&#39;,
    -&nbsp;            LIST = &#39;l&#39;,
    -&nbsp;            TUPLE = &#39;t&#39;,
    -&nbsp;            QUOTE = &#39;\&#39;&#39;,
    -&nbsp;            LF = &#39;\n&#39;;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(PickledGraphite.class);</b>
    -&nbsp;    private final static int DEFAULT_BATCH_SIZE = 100;
    -&nbsp;
    -&nbsp;    private int batchSize;
    -&nbsp;    // graphite expects a python-pickled list of nested tuples.
    -<b class="fc">&nbsp;    private List&lt;MetricTuple&gt; metrics = new ArrayList&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final String hostname;
    -&nbsp;    private final int port;
    -&nbsp;    private final InetSocketAddress address;
    -&nbsp;    private final SocketFactory socketFactory;
    -&nbsp;    private final Charset charset;
    -&nbsp;
    -&nbsp;    private Socket socket;
    -&nbsp;    private Writer writer;
    -&nbsp;    private int failures;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
    -&nbsp;     * to a batchSize of 100
    -&nbsp;     *
    -&nbsp;     * @param address the address of the Carbon server
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(InetSocketAddress address) {
    -<b class="nc">&nbsp;        this(address, DEFAULT_BATCH_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param address   the address of the Carbon server
    -&nbsp;     * @param batchSize how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(InetSocketAddress address, int batchSize) {
    -<b class="nc">&nbsp;        this(address, SocketFactory.getDefault(), batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, int batchSize) {
    -<b class="nc">&nbsp;        this(address, socketFactory, UTF_8, batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given character set.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -<b class="fc">&nbsp;    public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset, int batchSize) {</b>
    -<b class="fc">&nbsp;        this.address = address;</b>
    -<b class="fc">&nbsp;        this.hostname = null;</b>
    -<b class="fc">&nbsp;        this.port = -1;</b>
    -<b class="fc">&nbsp;        this.socketFactory = socketFactory;</b>
    -<b class="fc">&nbsp;        this.charset = charset;</b>
    -<b class="fc">&nbsp;        this.batchSize = batchSize;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
    -&nbsp;     * to a batchSize of 100
    -&nbsp;     *
    -&nbsp;     * @param hostname the hostname of the Carbon server
    -&nbsp;     * @param port     the port of the Carbon server
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(String hostname, int port) {
    -<b class="nc">&nbsp;        this(hostname, port, DEFAULT_BATCH_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param hostname  the hostname of the Carbon server
    -&nbsp;     * @param port      the port of the Carbon server
    -&nbsp;     * @param batchSize how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(String hostname, int port, int batchSize) {
    -<b class="nc">&nbsp;        this(hostname, port, SocketFactory.getDefault(), batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param hostname      the hostname of the Carbon server
    -&nbsp;     * @param port          the port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(String hostname, int port, SocketFactory socketFactory, int batchSize) {
    -<b class="nc">&nbsp;        this(hostname, port, socketFactory, UTF_8, batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given character set.
    -&nbsp;     *
    -&nbsp;     * @param hostname      the hostname of the Carbon server
    -&nbsp;     * @param port          the port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -<b class="nc">&nbsp;    public PickledGraphite(String hostname, int port, SocketFactory socketFactory, Charset charset, int batchSize) {</b>
    -<b class="nc">&nbsp;        this.address = null;</b>
    -<b class="nc">&nbsp;        this.hostname = hostname;</b>
    -<b class="nc">&nbsp;        this.port = port;</b>
    -<b class="nc">&nbsp;        this.socketFactory = socketFactory;</b>
    -<b class="nc">&nbsp;        this.charset = charset;</b>
    -<b class="nc">&nbsp;        this.batchSize = batchSize;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        InetSocketAddress address = this.address;</b>
    -<b class="fc">&nbsp;        if (address == null) {</b>
    -<b class="nc">&nbsp;            address = new InetSocketAddress(hostname, port);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (address.getAddress() == null) {</b>
    -<b class="fc">&nbsp;            throw new UnknownHostException(address.getHostName());</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());</b>
    -<b class="nc">&nbsp;        this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return socket != null &amp;&amp; socket.isConnected() &amp;&amp; !socket.isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Convert the metric to a python tuple of the form:
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * (timestamp, (name, value))
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * And add it to the list of metrics. If we reach the batch size, write them out.
    -&nbsp;     *
    -&nbsp;     * @param name      the name of the metric
    -&nbsp;     * @param value     the value of the metric
    -&nbsp;     * @param timestamp the timestamp of the metric
    -&nbsp;     * @throws IOException if there was an error sending the metric
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -<b class="nc">&nbsp;        metrics.add(new MetricTuple(sanitize(name), timestamp, sanitize(value)));</b>
    -&nbsp;
    -<b class="nc">&nbsp;        if (metrics.size() &gt;= batchSize) {</b>
    -<b class="nc">&nbsp;            writeMetrics();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -<b class="nc">&nbsp;        writeMetrics();</b>
    -<b class="nc">&nbsp;        if (writer != null) {</b>
    -<b class="nc">&nbsp;            writer.flush();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -&nbsp;        try {
    -<b class="nc">&nbsp;            flush();</b>
    -<b class="nc">&nbsp;            if (writer != null) {</b>
    -<b class="nc">&nbsp;                writer.close();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    -<b class="nc">&nbsp;            if (socket != null) {</b>
    -<b class="nc">&nbsp;                socket.close();</b>
    -&nbsp;            }
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            this.socket = null;</b>
    -<b class="nc">&nbsp;            this.writer = null;</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="nc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * 1. Run the pickler script to package all the pending metrics into a single message
    -&nbsp;     * 2. Send the message to graphite
    -&nbsp;     * 3. Clear out the list of metrics
    -&nbsp;     */
    -&nbsp;    private void writeMetrics() throws IOException {
    -<b class="nc">&nbsp;        if (metrics.size() &gt; 0) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                byte[] payload = pickleMetrics(metrics);</b>
    -<b class="nc">&nbsp;                byte[] header = ByteBuffer.allocate(4).putInt(payload.length).array();</b>
    -&nbsp;
    -&nbsp;                @SuppressWarnings(&quot;resource&quot;)
    -<b class="nc">&nbsp;                OutputStream outputStream = socket.getOutputStream();</b>
    -<b class="nc">&nbsp;                outputStream.write(header);</b>
    -<b class="nc">&nbsp;                outputStream.write(payload);</b>
    -<b class="nc">&nbsp;                outputStream.flush();</b>
    -&nbsp;
    -<b class="nc">&nbsp;                if (LOGGER.isDebugEnabled()) {</b>
    -<b class="nc">&nbsp;                    LOGGER.debug(&quot;Wrote {} metrics&quot;, metrics.size());</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (IOException e) {</b>
    -<b class="nc">&nbsp;                this.failures++;</b>
    -<b class="nc">&nbsp;                throw e;</b>
    -&nbsp;            } finally {
    -&nbsp;                // if there was an error, we might miss some data. for now, drop those on the floor and
    -&nbsp;                // try to keep going.
    -<b class="nc">&nbsp;                metrics.clear();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * See: http://readthedocs.org/docs/graphite/en/1.0/feeding-carbon.html
    -&nbsp;     *
    -&nbsp;     * @throws IOException shouldn&#39;t happen because we write to memory.
    -&nbsp;     */
    -&nbsp;    byte[] pickleMetrics(List&lt;MetricTuple&gt; metrics) throws IOException {
    -&nbsp;        // Extremely rough estimate of 75 bytes per message
    -<b class="nc">&nbsp;        ByteArrayOutputStream out = new ByteArrayOutputStream(metrics.size() * 75);</b>
    -<b class="nc">&nbsp;        Writer pickled = new OutputStreamWriter(out, charset);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        pickled.append(MARK);</b>
    -<b class="nc">&nbsp;        pickled.append(LIST);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        for (MetricTuple tuple : metrics) {</b>
    -&nbsp;            // start the outer tuple
    -<b class="nc">&nbsp;            pickled.append(MARK);</b>
    -&nbsp;
    -&nbsp;            // the metric name is a string.
    -<b class="nc">&nbsp;            pickled.append(STRING);</b>
    -&nbsp;            // the single quotes are to match python&#39;s repr(&quot;abcd&quot;)
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(tuple.name);</b>
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(LF);</b>
    -&nbsp;
    -&nbsp;            // start the inner tuple
    -<b class="nc">&nbsp;            pickled.append(MARK);</b>
    -&nbsp;
    -&nbsp;            // timestamp is a long
    -<b class="nc">&nbsp;            pickled.append(LONG);</b>
    -<b class="nc">&nbsp;            pickled.append(Long.toString(tuple.timestamp));</b>
    -&nbsp;            // the trailing L is to match python&#39;s repr(long(1234))
    -<b class="nc">&nbsp;            pickled.append(LONG);</b>
    -<b class="nc">&nbsp;            pickled.append(LF);</b>
    -&nbsp;
    -&nbsp;            // and the value is a string.
    -<b class="nc">&nbsp;            pickled.append(STRING);</b>
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(tuple.value);</b>
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(LF);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            pickled.append(TUPLE); // inner close</b>
    -<b class="nc">&nbsp;            pickled.append(TUPLE); // outer close</b>
    -&nbsp;
    -<b class="nc">&nbsp;            pickled.append(APPEND);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        // every pickle ends with STOP
    -<b class="nc">&nbsp;        pickled.append(STOP);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        pickled.flush();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return out.toByteArray();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String s) {
    -<b class="nc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-7.html b/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-7.html
    deleted file mode 100644
    index e78a8d893e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-7/sources/source-7.html
    +++ /dev/null
    @@ -1,113 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteSender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteSender (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteSender</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import java.io.Closeable;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;public interface GraphiteSender extends Closeable {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Connects to the server.
    -&nbsp;     *
    -&nbsp;     * @throws IllegalStateException if the client is already connected
    -&nbsp;     * @throws IOException           if there is an error connecting
    -&nbsp;     */
    -&nbsp;    void connect() throws IllegalStateException, IOException;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Sends the given measurement to the server.
    -&nbsp;     *
    -&nbsp;     * @param name      the name of the metric
    -&nbsp;     * @param value     the value of the metric
    -&nbsp;     * @param timestamp the timestamp of the metric
    -&nbsp;     * @throws IOException if there was an error sending the metric
    -&nbsp;     */
    -&nbsp;    void send(String name, String value, long timestamp) throws IOException;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Flushes buffer, if applicable
    -&nbsp;     *
    -&nbsp;     * @throws IOException if there was an error during flushing metrics to the socket
    -&nbsp;     */
    -&nbsp;    void flush() throws IOException;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns true if ready to send data
    -&nbsp;     */
    -&nbsp;    boolean isConnected();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of failed writes to the server.
    -&nbsp;     *
    -&nbsp;     * @return the number of failed writes to the server
    -&nbsp;     */
    -&nbsp;    int getFailures();
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index.html
    deleted file mode 100644
    index 5cad9dd1c8..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-8/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 82f64a238d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index a650536dbf..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 53d32acf8c..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index fdcca8c19f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 1348011db1..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index b16ade82ca..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 6f23d5b9ee..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 2fedbdf4bf..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 683be50672..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-1.html
    deleted file mode 100644
    index 9fdde18e5e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-1.html
    +++ /dev/null
    @@ -1,184 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AsyncHealthCheckDecorator</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AsyncHealthCheckDecorator (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AsyncHealthCheckDecorator</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.health.annotation.Async;
    -&nbsp;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.ScheduledFuture;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A health check decorator to manage asynchronous executions.
    -&nbsp; */
    -&nbsp;public class AsyncHealthCheckDecorator extends HealthCheck implements Runnable {
    -&nbsp;    private static final String NO_RESULT_YET_MESSAGE = &quot;Waiting for first asynchronous check result.&quot;;
    -&nbsp;    private final HealthCheck healthCheck;
    -&nbsp;    private final ScheduledFuture&lt;?&gt; future;
    -&nbsp;    private final long healthyTtl;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private volatile Result result;
    -&nbsp;
    -<b class="fc">&nbsp;    AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService, Clock clock) {</b>
    -<b class="fc">&nbsp;        check(healthCheck != null, &quot;healthCheck cannot be null&quot;);</b>
    -<b class="fc">&nbsp;        check(executorService != null, &quot;executorService cannot be null&quot;);</b>
    -<b class="fc">&nbsp;        Async async = healthCheck.getClass().getAnnotation(Async.class);</b>
    -<b class="fc">&nbsp;        check(async != null, &quot;healthCheck must contain Async annotation&quot;);</b>
    -<b class="fc">&nbsp;        check(async.period() &gt; 0, &quot;period cannot be less than or equal to zero&quot;);</b>
    -<b class="fc">&nbsp;        check(async.initialDelay() &gt;= 0, &quot;initialDelay cannot be less than zero&quot;);</b>
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.healthCheck = healthCheck;</b>
    -<b class="fc">&nbsp;        this.healthyTtl = async.unit().toMillis(async.healthyTtl() &lt;= 0 ? 2 * async.period() : async.healthyTtl());</b>
    -<b class="fc">&nbsp;        result = Async.InitialState.HEALTHY.equals(async.initialState()) ? Result.healthy(NO_RESULT_YET_MESSAGE) :</b>
    -<b class="fc">&nbsp;                Result.unhealthy(NO_RESULT_YET_MESSAGE);</b>
    -<b class="fc">&nbsp;        if (Async.ScheduleType.FIXED_RATE.equals(async.scheduleType())) {</b>
    -<b class="fc">&nbsp;            future = executorService.scheduleAtFixedRate(this, async.initialDelay(), async.period(), async.unit());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            future = executorService.scheduleWithFixedDelay(this, async.initialDelay(), async.period(), async.unit());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService) {
    -<b class="fc">&nbsp;        this(healthCheck, executorService, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void run() {
    -<b class="fc">&nbsp;        result = healthCheck.execute();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected Result check() throws Exception {
    -<b class="fc">&nbsp;        long expiration = clock.getTime() - result.getTime() - healthyTtl;</b>
    -<b class="fc">&nbsp;        if (expiration &gt; 0) {</b>
    -<b class="fc">&nbsp;            return Result.builder()</b>
    -<b class="fc">&nbsp;                    .unhealthy()</b>
    -<b class="fc">&nbsp;                    .usingClock(clock)</b>
    -<b class="fc">&nbsp;                    .withMessage(&quot;Result was %s but it expired %d milliseconds ago&quot;,</b>
    -<b class="fc">&nbsp;                            result.isHealthy() ? &quot;healthy&quot; : &quot;unhealthy&quot;,</b>
    -<b class="fc">&nbsp;                            expiration)</b>
    -<b class="fc">&nbsp;                    .build();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        return result;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    boolean tearDown() {
    -<b class="fc">&nbsp;        return future.cancel(true);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public HealthCheck getHealthCheck() {
    -<b class="fc">&nbsp;        return healthCheck;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static void check(boolean expression, String message) {
    -<b class="fc">&nbsp;        if (!expression) {</b>
    -<b class="fc">&nbsp;            throw new IllegalArgumentException(message);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-2.html
    deleted file mode 100644
    index b9c90fe485..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-2.html
    +++ /dev/null
    @@ -1,546 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheck</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheck (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheck</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheck$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$MockitoMock$CCpmiVOV</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$MockitoMock$CCpmiVOV$auxiliary$LXIz4uJU</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$MockitoMock$CCpmiVOV$auxiliary$xqbRQnBX</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$Result</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.5%
    -  </span>
    -  <span class="absValue">
    -    (49/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$ResultBuilder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;
    -&nbsp;import java.time.Instant;
    -&nbsp;import java.time.ZoneId;
    -&nbsp;import java.time.ZonedDateTime;
    -&nbsp;import java.time.format.DateTimeFormatter;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.LinkedHashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A health check for a component of your application.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class HealthCheck {</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * The result of a {@link HealthCheck} being run. It can be healthy (with an optional message and optional details)
    -&nbsp;     * or unhealthy (with either an error message or a thrown exception and optional details).
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Result {</b>
    -<b class="fc">&nbsp;        private static final DateTimeFormatter DATE_FORMAT_PATTERN =</b>
    -<b class="fc">&nbsp;                DateTimeFormatter.ofPattern(&quot;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSSXXX&quot;);</b>
    -&nbsp;        private static final int PRIME = 31;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a healthy {@link Result} with no additional message.
    -&nbsp;         *
    -&nbsp;         * @return a healthy {@link Result} with no additional message
    -&nbsp;         */
    -&nbsp;        public static Result healthy() {
    -<b class="fc">&nbsp;            return new Result(true, null, null);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a healthy {@link Result} with an additional message.
    -&nbsp;         *
    -&nbsp;         * @param message an informative message
    -&nbsp;         * @return a healthy {@link Result} with an additional message
    -&nbsp;         */
    -&nbsp;        public static Result healthy(String message) {
    -<b class="fc">&nbsp;            return new Result(true, message, null);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a healthy {@link Result} with a formatted message.
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    -&nbsp;         *
    -&nbsp;         * @param message a message format\\
    -&nbsp;         * @param args    the arguments apply to the message format
    -&nbsp;         * @return a healthy {@link Result} with an additional message
    -&nbsp;         * @see String#format(String, Object...)
    -&nbsp;         */
    -&nbsp;        public static Result healthy(String message, Object... args) {
    -<b class="fc">&nbsp;            return healthy(String.format(message, args));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns an unhealthy {@link Result} with the given message.
    -&nbsp;         *
    -&nbsp;         * @param message an informative message describing how the health check failed
    -&nbsp;         * @return an unhealthy {@link Result} with the given message
    -&nbsp;         */
    -&nbsp;        public static Result unhealthy(String message) {
    -<b class="fc">&nbsp;            return new Result(false, message, null);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns an unhealthy {@link Result} with a formatted message.
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    -&nbsp;         *
    -&nbsp;         * @param message a message format
    -&nbsp;         * @param args    the arguments apply to the message format
    -&nbsp;         * @return an unhealthy {@link Result} with an additional message
    -&nbsp;         * @see String#format(String, Object...)
    -&nbsp;         */
    -&nbsp;        public static Result unhealthy(String message, Object... args) {
    -<b class="fc">&nbsp;            return unhealthy(String.format(message, args));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns an unhealthy {@link Result} with the given error.
    -&nbsp;         *
    -&nbsp;         * @param error an exception thrown during the health check
    -&nbsp;         * @return an unhealthy {@link Result} with the given {@code error}
    -&nbsp;         */
    -&nbsp;        public static Result unhealthy(Throwable error) {
    -<b class="fc">&nbsp;            return new Result(false, error.getMessage(), error);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a new {@link ResultBuilder}
    -&nbsp;         *
    -&nbsp;         * @return the {@link ResultBuilder}
    -&nbsp;         */
    -&nbsp;        public static ResultBuilder builder() {
    -<b class="fc">&nbsp;            return new ResultBuilder();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private final boolean healthy;
    -&nbsp;        private final String message;
    -&nbsp;        private final Throwable error;
    -&nbsp;        private final Map&lt;String, Object&gt; details;
    -&nbsp;        private final long time;
    -&nbsp;
    -&nbsp;        private long duration; // Calculated field
    -&nbsp;
    -&nbsp;        private Result(boolean isHealthy, String message, Throwable error) {
    -<b class="fc">&nbsp;            this(isHealthy, message, error, null, Clock.defaultClock());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Result(ResultBuilder builder) {
    -<b class="fc">&nbsp;            this(builder.healthy, builder.message, builder.error, builder.details, builder.clock);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        private Result(boolean isHealthy, String message, Throwable error, Map&lt;String, Object&gt; details, Clock clock) {</b>
    -<b class="fc">&nbsp;            this.healthy = isHealthy;</b>
    -<b class="fc">&nbsp;            this.message = message;</b>
    -<b class="fc">&nbsp;            this.error = error;</b>
    -<b class="fc">&nbsp;            this.details = details == null ? null : Collections.unmodifiableMap(details);</b>
    -<b class="fc">&nbsp;            this.time = clock.getTime();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns {@code true} if the result indicates the component is healthy; {@code false}
    -&nbsp;         * otherwise.
    -&nbsp;         *
    -&nbsp;         * @return {@code true} if the result indicates the component is healthy
    -&nbsp;         */
    -&nbsp;        public boolean isHealthy() {
    -<b class="fc">&nbsp;            return healthy;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns any additional message for the result, or {@code null} if the result has no
    -&nbsp;         * message.
    -&nbsp;         *
    -&nbsp;         * @return any additional message for the result, or {@code null}
    -&nbsp;         */
    -&nbsp;        public String getMessage() {
    -<b class="fc">&nbsp;            return message;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns any exception for the result, or {@code null} if the result has no exception.
    -&nbsp;         *
    -&nbsp;         * @return any exception for the result, or {@code null}
    -&nbsp;         */
    -&nbsp;        public Throwable getError() {
    -<b class="fc">&nbsp;            return error;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the timestamp when the result was created as a formatted String.
    -&nbsp;         *
    -&nbsp;         * @return a formatted timestamp
    -&nbsp;         */
    -&nbsp;        public String getTimestamp() {
    -<b class="fc">&nbsp;            Instant currentInstant = Instant.ofEpochMilli(time);</b>
    -<b class="fc">&nbsp;            ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(currentInstant, ZoneId.systemDefault());</b>
    -<b class="fc">&nbsp;            return DATE_FORMAT_PATTERN.format(zonedDateTime);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the time when the result was created, in milliseconds since Epoch
    -&nbsp;         *
    -&nbsp;         * @return the time when the result was created
    -&nbsp;         */
    -&nbsp;        public long getTime() {
    -<b class="fc">&nbsp;            return time;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the duration in milliseconds that the healthcheck took to run
    -&nbsp;         *
    -&nbsp;         * @return the duration
    -&nbsp;         */
    -&nbsp;        public long getDuration() {
    -<b class="fc">&nbsp;            return duration;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Sets the duration in milliseconds. This will indicate the time it took to run the individual healthcheck
    -&nbsp;         *
    -&nbsp;         * @param duration The duration in milliseconds
    -&nbsp;         */
    -&nbsp;        public void setDuration(long duration) {
    -<b class="fc">&nbsp;            this.duration = duration;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Map&lt;String, Object&gt; getDetails() {
    -<b class="fc">&nbsp;            return details;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="fc">&nbsp;            if (this == o) {</b>
    -<b class="fc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            final Result result = (Result) o;</b>
    -<b class="fc">&nbsp;            return healthy == result.healthy &amp;&amp;</b>
    -<b class="nc">&nbsp;                    !(error != null ? !error.equals(result.error) : result.error != null) &amp;&amp;</b>
    -<b class="fc">&nbsp;                    !(message != null ? !message.equals(result.message) : result.message != null) &amp;&amp;</b>
    -&nbsp;                    time == result.time;
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="nc">&nbsp;            int result = healthy ? 1 : 0;</b>
    -<b class="nc">&nbsp;            result = PRIME * result + (message != null ? message.hashCode() : 0);</b>
    -<b class="nc">&nbsp;            result = PRIME * result + (error != null ? error.hashCode() : 0);</b>
    -<b class="nc">&nbsp;            result = PRIME * result + (Long.hashCode(time));</b>
    -<b class="nc">&nbsp;            return result;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String toString() {
    -<b class="fc">&nbsp;            final StringBuilder builder = new StringBuilder(&quot;Result{isHealthy=&quot;);</b>
    -<b class="fc">&nbsp;            builder.append(healthy);</b>
    -<b class="fc">&nbsp;            if (message != null) {</b>
    -<b class="nc">&nbsp;                builder.append(&quot;, message=&quot;).append(message);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (error != null) {</b>
    -<b class="nc">&nbsp;                builder.append(&quot;, error=&quot;).append(error);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            builder.append(&quot;, duration=&quot;).append(duration);</b>
    -<b class="fc">&nbsp;            builder.append(&quot;, timestamp=&quot;).append(getTimestamp());</b>
    -<b class="fc">&nbsp;            if (details != null) {</b>
    -<b class="fc">&nbsp;                for (Map.Entry&lt;String, Object&gt; e : details.entrySet()) {</b>
    -<b class="fc">&nbsp;                    builder.append(&quot;, &quot;);</b>
    -<b class="fc">&nbsp;                    builder.append(e.getKey())</b>
    -<b class="fc">&nbsp;                            .append(&quot;=&quot;)</b>
    -<b class="fc">&nbsp;                            .append(String.valueOf(e.getValue()));</b>
    -<b class="fc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            builder.append(&#39;}&#39;);</b>
    -<b class="fc">&nbsp;            return builder.toString();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * This a convenient builder for an {@link HealthCheck.Result}. It can be health (with optional message and detail)
    -&nbsp;     * or unhealthy (with optional message, error and detail)
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class ResultBuilder {</b>
    -&nbsp;        private boolean healthy;
    -&nbsp;        private String message;
    -&nbsp;        private Throwable error;
    -&nbsp;        private Map&lt;String, Object&gt; details;
    -&nbsp;        private Clock clock;
    -&nbsp;
    -<b class="fc">&nbsp;        protected ResultBuilder() {</b>
    -<b class="fc">&nbsp;            this.healthy = true;</b>
    -<b class="fc">&nbsp;            this.details = new LinkedHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure an healthy result
    -&nbsp;         *
    -&nbsp;         * @return this builder with healthy status
    -&nbsp;         */
    -&nbsp;        public ResultBuilder healthy() {
    -<b class="fc">&nbsp;            this.healthy = true;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure an unhealthy result
    -&nbsp;         *
    -&nbsp;         * @return this builder with unhealthy status
    -&nbsp;         */
    -&nbsp;        public ResultBuilder unhealthy() {
    -<b class="fc">&nbsp;            this.healthy = false;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure an unhealthy result with an {@code error}
    -&nbsp;         *
    -&nbsp;         * @param error the error
    -&nbsp;         * @return this builder with the given error
    -&nbsp;         */
    -&nbsp;        public ResultBuilder unhealthy(Throwable error) {
    -<b class="fc">&nbsp;            this.error = error;</b>
    -<b class="fc">&nbsp;            return this.unhealthy().withMessage(error.getMessage());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Set an optional message
    -&nbsp;         *
    -&nbsp;         * @param message an informative message
    -&nbsp;         * @return this builder with the given {@code message}
    -&nbsp;         */
    -&nbsp;        public ResultBuilder withMessage(String message) {
    -<b class="fc">&nbsp;            this.message = message;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Set an optional formatted message
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    -&nbsp;         *
    -&nbsp;         * @param message a message format
    -&nbsp;         * @param args    the arguments apply to the message format
    -&nbsp;         * @return this builder with the given formatted {@code message}
    -&nbsp;         * @see String#format(String, Object...)
    -&nbsp;         */
    -&nbsp;        public ResultBuilder withMessage(String message, Object... args) {
    -<b class="fc">&nbsp;            return withMessage(String.format(message, args));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Add an optional detail
    -&nbsp;         *
    -&nbsp;         * @param key  a key for this detail
    -&nbsp;         * @param data an object representing the detail data
    -&nbsp;         * @return this builder with the given detail added
    -&nbsp;         */
    -&nbsp;        public ResultBuilder withDetail(String key, Object data) {
    -<b class="fc">&nbsp;            if (this.details == null) {</b>
    -<b class="nc">&nbsp;                this.details = new LinkedHashMap&lt;&gt;();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            this.details.put(key, data);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure this {@link ResultBuilder} to use the given {@code clock} instead of the default clock.
    -&nbsp;         * If not specified, the default clock is {@link Clock#defaultClock()}.
    -&nbsp;         *
    -&nbsp;         * @param clock the {@link Clock} to use when generating the health check timestamp (useful for unit testing)
    -&nbsp;         * @return this builder configured to use the given {@code clock}
    -&nbsp;         */
    -&nbsp;        public ResultBuilder usingClock(Clock clock) {
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Result build() {
    -<b class="fc">&nbsp;            return new Result(this);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Perform a check of the application component.
    -&nbsp;     *
    -&nbsp;     * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
    -&nbsp;     * Result} with a descriptive error message or exception
    -&nbsp;     * @throws Exception if there is an unhandled error during the health check; this will result in
    -&nbsp;     *                   a failed health check
    -&nbsp;     */
    -&nbsp;    protected abstract Result check() throws Exception;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Executes the health check, catching and handling any exceptions raised by {@link #check()}.
    -&nbsp;     *
    -&nbsp;     * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
    -&nbsp;     * Result} with a descriptive error message or exception
    -&nbsp;     */
    -&nbsp;    public Result execute() {
    -<b class="fc">&nbsp;        long start = clock().getTick();</b>
    -&nbsp;        Result result;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            result = check();</b>
    -<b class="fc">&nbsp;        } catch (Exception e) {</b>
    -<b class="fc">&nbsp;            result = Result.unhealthy(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        result.setDuration(TimeUnit.MILLISECONDS.convert(clock().getTick() - start, TimeUnit.NANOSECONDS));</b>
    -<b class="fc">&nbsp;        return result;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected Clock clock() {
    -<b class="fc">&nbsp;        return Clock.defaultClock();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-3.html
    deleted file mode 100644
    index 9198538c4c..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-3.html
    +++ /dev/null
    @@ -1,125 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckFilter (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A filter used to determine whether or not a health check should be reported.
    -&nbsp; */
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface HealthCheckFilter {
    -&nbsp;    /**
    -&nbsp;     * Matches all health checks, regardless of type or name.
    -&nbsp;     */
    -<b class="fc">&nbsp;    HealthCheckFilter ALL = (name, healthCheck) -&gt; true;</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns {@code true} if the health check matches the filter; {@code false} otherwise.
    -&nbsp;     *
    -&nbsp;     * @param name        the health check&#39;s name
    -&nbsp;     * @param healthCheck the health check
    -&nbsp;     * @return {@code true} if the health check matches the filter
    -&nbsp;     */
    -&nbsp;    boolean matches(String name, HealthCheck healthCheck);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-4.html
    deleted file mode 100644
    index 90b42474a8..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-4.html
    +++ /dev/null
    @@ -1,418 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckRegistry</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckRegistry (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckRegistry</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.7%
    -  </span>
    -  <span class="absValue">
    -    (70/78)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistry$NamedThreadFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.annotation.Async;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.NoSuchElementException;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.SortedSet;
    -&nbsp;import java.util.TreeMap;
    -&nbsp;import java.util.TreeSet;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.CopyOnWriteArrayList;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;import java.util.concurrent.Future;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.ScheduledThreadPoolExecutor;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.health.HealthCheck.Result;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A registry for health checks.
    -&nbsp; */
    -&nbsp;public class HealthCheckRegistry {
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(HealthCheckRegistry.class);</b>
    -&nbsp;    private static final int ASYNC_EXECUTOR_POOL_SIZE = 2;
    -&nbsp;
    -&nbsp;    private final ConcurrentMap&lt;String, HealthCheck&gt; healthChecks;
    -&nbsp;    private final List&lt;HealthCheckRegistryListener&gt; listeners;
    -&nbsp;    private final ScheduledExecutorService asyncExecutorService;
    -<b class="fc">&nbsp;    private final Object lock = new Object();</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    -&nbsp;     */
    -&nbsp;    public HealthCheckRegistry() {
    -<b class="fc">&nbsp;        this(ASYNC_EXECUTOR_POOL_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    -&nbsp;     *
    -&nbsp;     * @param asyncExecutorPoolSize core pool size for async health check executions
    -&nbsp;     */
    -&nbsp;    public HealthCheckRegistry(int asyncExecutorPoolSize) {
    -<b class="fc">&nbsp;        this(createExecutorService(asyncExecutorPoolSize));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    -&nbsp;     *
    -&nbsp;     * @param asyncExecutorService executor service for async health check executions
    -&nbsp;     */
    -<b class="fc">&nbsp;    public HealthCheckRegistry(ScheduledExecutorService asyncExecutorService) {</b>
    -<b class="fc">&nbsp;        this.healthChecks = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        this.listeners = new CopyOnWriteArrayList&lt;&gt;();</b>
    -<b class="fc">&nbsp;        this.asyncExecutorService = asyncExecutorService;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a {@link HealthCheckRegistryListener} to a collection of listeners that will be notified on health check
    -&nbsp;     * registration. Listeners will be notified in the order in which they are added. The listener will be notified of all
    -&nbsp;     * existing health checks when it first registers.
    -&nbsp;     *
    -&nbsp;     * @param listener listener to add
    -&nbsp;     */
    -&nbsp;    public void addListener(HealthCheckRegistryListener listener) {
    -<b class="fc">&nbsp;        listeners.add(listener);</b>
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    -<b class="fc">&nbsp;            listener.onHealthCheckAdded(entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Removes a {@link HealthCheckRegistryListener} from this registry&#39;s collection of listeners.
    -&nbsp;     *
    -&nbsp;     * @param listener listener to remove
    -&nbsp;     */
    -&nbsp;    public void removeListener(HealthCheckRegistryListener listener) {
    -<b class="fc">&nbsp;        listeners.remove(listener);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Registers an application {@link HealthCheck}.
    -&nbsp;     *
    -&nbsp;     * @param name        the name of the health check
    -&nbsp;     * @param healthCheck the {@link HealthCheck} instance
    -&nbsp;     */
    -&nbsp;    public void register(String name, HealthCheck healthCheck) {
    -&nbsp;        HealthCheck registered;
    -<b class="fc">&nbsp;        synchronized (lock) {</b>
    -<b class="fc">&nbsp;            if (healthChecks.containsKey(name)) {</b>
    -<b class="fc">&nbsp;                throw new IllegalArgumentException(&quot;A health check named &quot; + name + &quot; already exists&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            registered = healthCheck;</b>
    -<b class="fc">&nbsp;            if (healthCheck.getClass().isAnnotationPresent(Async.class)) {</b>
    -<b class="fc">&nbsp;                registered = new AsyncHealthCheckDecorator(healthCheck, asyncExecutorService);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            healthChecks.put(name, registered);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        onHealthCheckAdded(name, registered);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Unregisters the application {@link HealthCheck} with the given name.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the {@link HealthCheck} instance
    -&nbsp;     */
    -&nbsp;    public void unregister(String name) {
    -&nbsp;        HealthCheck healthCheck;
    -<b class="fc">&nbsp;        synchronized (lock) {</b>
    -<b class="fc">&nbsp;            healthCheck = healthChecks.remove(name);</b>
    -<b class="fc">&nbsp;            if (healthCheck instanceof AsyncHealthCheckDecorator) {</b>
    -<b class="fc">&nbsp;                ((AsyncHealthCheckDecorator) healthCheck).tearDown();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        if (healthCheck != null) {</b>
    -<b class="fc">&nbsp;            onHealthCheckRemoved(name, healthCheck);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a set of the names of all registered health checks.
    -&nbsp;     *
    -&nbsp;     * @return the names of all registered health checks
    -&nbsp;     */
    -&nbsp;    public SortedSet&lt;String&gt; getNames() {
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedSet(new TreeSet&lt;&gt;(healthChecks.keySet()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the {@link HealthCheck} instance with a given name
    -&nbsp;     *
    -&nbsp;     * @param name the name of the {@link HealthCheck} instance
    -&nbsp;     */
    -&nbsp;    public HealthCheck getHealthCheck(String name) {
    -<b class="nc">&nbsp;        return healthChecks.get(name);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the health check with the given name.
    -&nbsp;     *
    -&nbsp;     * @param name the health check&#39;s name
    -&nbsp;     * @return the result of the health check
    -&nbsp;     * @throws NoSuchElementException if there is no health check with the given name
    -&nbsp;     */
    -&nbsp;    public HealthCheck.Result runHealthCheck(String name) throws NoSuchElementException {
    -<b class="fc">&nbsp;        final HealthCheck healthCheck = healthChecks.get(name);</b>
    -<b class="fc">&nbsp;        if (healthCheck == null) {</b>
    -<b class="fc">&nbsp;            throw new NoSuchElementException(&quot;No health check named &quot; + name + &quot; exists&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return healthCheck.execute();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    -<b class="fc">&nbsp;        return runHealthChecks(HealthCheckFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks matching the filter and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @param filter health check filter
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(HealthCheckFilter filter) {
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = new TreeMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    -<b class="fc">&nbsp;            final String name = entry.getKey();</b>
    -<b class="fc">&nbsp;            final HealthCheck healthCheck = entry.getValue();</b>
    -<b class="fc">&nbsp;            if (filter.matches(name, healthCheck)) {</b>
    -<b class="fc">&nbsp;                final Result result = entry.getValue().execute();</b>
    -<b class="fc">&nbsp;                results.put(entry.getKey(), result);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(results);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks in parallel and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @param executor object to launch and track health checks progress
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(ExecutorService executor) {
    -<b class="fc">&nbsp;        return runHealthChecks(executor, HealthCheckFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks matching the filter in parallel and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @param executor object to launch and track health checks progress
    -&nbsp;     * @param filter   health check filter
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(ExecutorService executor, HealthCheckFilter filter) {
    -<b class="fc">&nbsp;        final Map&lt;String, Future&lt;HealthCheck.Result&gt;&gt; futures = new HashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (final Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    -<b class="fc">&nbsp;            final String name = entry.getKey();</b>
    -<b class="fc">&nbsp;            final HealthCheck healthCheck = entry.getValue();</b>
    -<b class="fc">&nbsp;            if (filter.matches(name, healthCheck)) {</b>
    -<b class="fc">&nbsp;                futures.put(name, executor.submit(() -&gt; healthCheck.execute()));</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = new TreeMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Future&lt;Result&gt;&gt; entry : futures.entrySet()) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                results.put(entry.getKey(), entry.getValue().get());</b>
    -<b class="nc">&nbsp;            } catch (Exception e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Error executing health check {}&quot;, entry.getKey(), e);</b>
    -<b class="nc">&nbsp;                results.put(entry.getKey(), HealthCheck.Result.unhealthy(e));</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(results);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    private void onHealthCheckAdded(String name, HealthCheck healthCheck) {
    -<b class="fc">&nbsp;        for (HealthCheckRegistryListener listener : listeners) {</b>
    -<b class="fc">&nbsp;            listener.onHealthCheckAdded(name, healthCheck);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void onHealthCheckRemoved(String name, HealthCheck healthCheck) {
    -<b class="fc">&nbsp;        for (HealthCheckRegistryListener listener : listeners) {</b>
    -<b class="fc">&nbsp;            listener.onHealthCheckRemoved(name, healthCheck);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Shuts down the scheduled executor for async health checks
    -&nbsp;     */
    -&nbsp;    public void shutdown() {
    -<b class="fc">&nbsp;        asyncExecutorService.shutdown(); // Disable new health checks from being submitted</b>
    -&nbsp;        try {
    -&nbsp;            // Give some time to the current healtch checks to finish gracefully
    -<b class="fc">&nbsp;            if (!asyncExecutorService.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    -<b class="nc">&nbsp;                asyncExecutorService.shutdownNow();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (InterruptedException ie) {</b>
    -<b class="nc">&nbsp;            asyncExecutorService.shutdownNow();</b>
    -<b class="nc">&nbsp;            Thread.currentThread().interrupt();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static ScheduledExecutorService createExecutorService(int corePoolSize) {
    -<b class="fc">&nbsp;        final ScheduledThreadPoolExecutor asyncExecutorService = new ScheduledThreadPoolExecutor(corePoolSize,</b>
    -&nbsp;                new NamedThreadFactory(&quot;healthcheck-async-executor-&quot;));
    -<b class="fc">&nbsp;        asyncExecutorService.setRemoveOnCancelPolicy(true);</b>
    -<b class="fc">&nbsp;        return asyncExecutorService;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class NamedThreadFactory implements ThreadFactory {
    -&nbsp;
    -&nbsp;        private final ThreadGroup group;
    -<b class="fc">&nbsp;        private final AtomicInteger threadNumber = new AtomicInteger(1);</b>
    -&nbsp;        private final String namePrefix;
    -&nbsp;
    -<b class="fc">&nbsp;        NamedThreadFactory(String namePrefix) {</b>
    -<b class="fc">&nbsp;            SecurityManager s = System.getSecurityManager();</b>
    -<b class="fc">&nbsp;            group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();</b>
    -<b class="fc">&nbsp;            this.namePrefix = namePrefix;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Thread newThread(Runnable r) {
    -<b class="fc">&nbsp;            Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);</b>
    -<b class="fc">&nbsp;            t.setDaemon(true);</b>
    -<b class="fc">&nbsp;            if (t.getPriority() != Thread.NORM_PRIORITY)</b>
    -<b class="nc">&nbsp;                t.setPriority(Thread.NORM_PRIORITY);</b>
    -<b class="fc">&nbsp;            return t;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-5.html
    deleted file mode 100644
    index 8b93c1e1a2..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-5.html
    +++ /dev/null
    @@ -1,210 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SharedHealthCheckRegistries</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SharedHealthCheckRegistries (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SharedHealthCheckRegistries</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.atomic.AtomicReference;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A map of shared, named health registries.
    -&nbsp; */
    -&nbsp;public class SharedHealthCheckRegistries {
    -<b class="fc">&nbsp;    private static final ConcurrentMap&lt;String, HealthCheckRegistry&gt; REGISTRIES =</b>
    -&nbsp;            new ConcurrentHashMap&lt;&gt;();
    -&nbsp;
    -<b class="fc">&nbsp;    private static AtomicReference&lt;String&gt; defaultRegistryName = new AtomicReference&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    /* Visible for testing */
    -&nbsp;    static void setDefaultRegistryName(AtomicReference&lt;String&gt; defaultRegistryName) {
    -<b class="fc">&nbsp;        SharedHealthCheckRegistries.defaultRegistryName = defaultRegistryName;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private SharedHealthCheckRegistries() { /* singleton */ }
    -&nbsp;
    -&nbsp;    public static void clear() {
    -<b class="fc">&nbsp;        REGISTRIES.clear();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Set&lt;String&gt; names() {
    -<b class="fc">&nbsp;        return REGISTRIES.keySet();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void remove(String key) {
    -<b class="fc">&nbsp;        REGISTRIES.remove(key);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HealthCheckRegistry add(String name, HealthCheckRegistry registry) {
    -<b class="fc">&nbsp;        return REGISTRIES.putIfAbsent(name, registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HealthCheckRegistry getOrCreate(String name) {
    -<b class="fc">&nbsp;        final HealthCheckRegistry existing = REGISTRIES.get(name);</b>
    -<b class="fc">&nbsp;        if (existing == null) {</b>
    -<b class="fc">&nbsp;            final HealthCheckRegistry created = new HealthCheckRegistry();</b>
    -<b class="fc">&nbsp;            final HealthCheckRegistry raced = add(name, created);</b>
    -<b class="fc">&nbsp;            if (raced == null) {</b>
    -<b class="fc">&nbsp;                return created;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            return raced;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return existing;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new registry and sets it as the default one under the provided name.
    -&nbsp;     *
    -&nbsp;     * @param name the registry name
    -&nbsp;     * @return the default registry
    -&nbsp;     * @throws IllegalStateException if the name has already been set
    -&nbsp;     */
    -&nbsp;    public synchronized static HealthCheckRegistry setDefault(String name) {
    -<b class="fc">&nbsp;        final HealthCheckRegistry registry = getOrCreate(name);</b>
    -<b class="fc">&nbsp;        return setDefault(name, registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Sets the provided registry as the default one under the provided name
    -&nbsp;     *
    -&nbsp;     * @param name                the default registry name
    -&nbsp;     * @param healthCheckRegistry the default registry
    -&nbsp;     * @throws IllegalStateException if the default registry has already been set
    -&nbsp;     */
    -&nbsp;    public static HealthCheckRegistry setDefault(String name, HealthCheckRegistry healthCheckRegistry) {
    -<b class="fc">&nbsp;        if (defaultRegistryName.compareAndSet(null, name)) {</b>
    -<b class="fc">&nbsp;            add(name, healthCheckRegistry);</b>
    -<b class="fc">&nbsp;            return healthCheckRegistry;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default health check registry is already set.&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Gets the name of the default registry, if it has been set
    -&nbsp;     *
    -&nbsp;     * @return the default registry
    -&nbsp;     * @throws IllegalStateException if the default has not been set
    -&nbsp;     */
    -&nbsp;    public static HealthCheckRegistry getDefault() {
    -<b class="fc">&nbsp;        final HealthCheckRegistry healthCheckRegistry = tryGetDefault();</b>
    -<b class="fc">&nbsp;        if (healthCheckRegistry != null) {</b>
    -<b class="fc">&nbsp;            return healthCheckRegistry;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default registry name has not been set.&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Same as {@link #getDefault()} except returns null when the default registry has not been set.
    -&nbsp;     *
    -&nbsp;     * @return the default registry or null
    -&nbsp;     */
    -&nbsp;    public static HealthCheckRegistry tryGetDefault() {
    -<b class="fc">&nbsp;        final String name = defaultRegistryName.get();</b>
    -<b class="fc">&nbsp;        if (name != null) {</b>
    -<b class="fc">&nbsp;            return getOrCreate(name);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return null;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-6.html
    deleted file mode 100644
    index d2cc707e5f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-8/sources/source-6.html
    +++ /dev/null
    @@ -1,103 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckRegistryListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckRegistryListener (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistryListener$MockitoMock$DWFowab2</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistryListener$MockitoMock$DWFowab2$auxiliary$EV8bqb22</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistryListener$MockitoMock$DWFowab2$auxiliary$IsjnkNVf</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import java.util.EventListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A listener contract for {@link HealthCheckRegistry} events.
    -&nbsp; */
    -&nbsp;public interface HealthCheckRegistryListener extends EventListener {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a new {@link HealthCheck} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name        the name of the health check
    -&nbsp;     * @param healthCheck the health check
    -&nbsp;     */
    -&nbsp;    void onHealthCheckAdded(String name, HealthCheck healthCheck);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link HealthCheck} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name        the name of the health check
    -&nbsp;     * @param healthCheck the health check
    -&nbsp;     */
    -&nbsp;    void onHealthCheckRemoved(String name, HealthCheck healthCheck);
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index.html
    deleted file mode 100644
    index 728d74c355..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-9/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 6c389e560a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 4ac077651f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 33409d33e1..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 4c98eb79b3..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 6915e9b925..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 0859af6c17..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index df94b611d2..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 4fac26e430..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index cac4dcbf49..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-9/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-9/sources/source-1.html
    deleted file mode 100644
    index ccf9f06fa7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-9/sources/source-1.html
    +++ /dev/null
    @@ -1,205 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Async</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Async (com.codahale.metrics.health.annotation)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name">Async$InitialState</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Async$ScheduleType</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking asynchronous health check execution.
    -&nbsp; */
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target(ElementType.TYPE)
    -&nbsp;public @interface Async {
    -&nbsp;    /**
    -&nbsp;     * Enum representing the initial health states.
    -&nbsp;     */
    -<b class="fc">&nbsp;    enum InitialState {</b>
    -<b class="fc">&nbsp;        HEALTHY, UNHEALTHY</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Enum representing the possible schedule types.
    -&nbsp;     */
    -<b class="fc">&nbsp;    enum ScheduleType {</b>
    -<b class="fc">&nbsp;        FIXED_RATE, FIXED_DELAY</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Period between executions.
    -&nbsp;     *
    -&nbsp;     * @return period
    -&nbsp;     */
    -&nbsp;    long period();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Scheduling type of asynchronous executions.
    -&nbsp;     *
    -&nbsp;     * @return schedule type
    -&nbsp;     */
    -&nbsp;    ScheduleType scheduleType() default ScheduleType.FIXED_RATE;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Initial delay of first execution.
    -&nbsp;     *
    -&nbsp;     * @return initial delay
    -&nbsp;     */
    -&nbsp;    long initialDelay() default 0;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Time unit of initial delay, period and healthyTtl.
    -&nbsp;     *
    -&nbsp;     * @return time unit
    -&nbsp;     */
    -&nbsp;    TimeUnit unit() default TimeUnit.SECONDS;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Initial health state until first asynchronous execution completes.
    -&nbsp;     *
    -&nbsp;     * @return initial health state
    -&nbsp;     */
    -&nbsp;    InitialState initialState() default InitialState.HEALTHY;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * How long a healthy result is considered valid before being ignored.
    -&nbsp;     *
    -&nbsp;     * Handles cases where the asynchronous healthcheck did not run (for example thread starvation).
    -&nbsp;     *
    -&nbsp;     * Defaults to 2 * period
    -&nbsp;     *
    -&nbsp;     * @return healthy result time to live
    -&nbsp;     */
    -&nbsp;    long healthyTtl() default -1;
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index.html
    deleted file mode 100644
    index 4833c38c6d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-a/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 9d92030e60..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 29522deaa9..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index a25bcbe7cd..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index a5bb76c1a1..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_LINE.html
    deleted file mode 100644
    index c9a6fd5ee9..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 19c9a67963..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index be06aa7f4b..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 3d27808192..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 77a48f15cb..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-a/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-a/sources/source-1.html
    deleted file mode 100644
    index 69476124f3..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-a/sources/source-1.html
    +++ /dev/null
    @@ -1,142 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDeadlockHealthCheck</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDeadlockHealthCheck (com.codahale.metrics.health.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDeadlockHealthCheck</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.codahale.metrics.jvm.ThreadDeadlockDetector;
    -&nbsp;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A health check which returns healthy if no threads are deadlocked.
    -&nbsp; */
    -&nbsp;public class ThreadDeadlockHealthCheck extends HealthCheck {
    -&nbsp;    private final ThreadDeadlockDetector detector;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new health check.
    -&nbsp;     */
    -&nbsp;    public ThreadDeadlockHealthCheck() {
    -<b class="fc">&nbsp;        this(new ThreadDeadlockDetector());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new health check with the given detector.
    -&nbsp;     *
    -&nbsp;     * @param detector a thread deadlock detector
    -&nbsp;     */
    -<b class="fc">&nbsp;    public ThreadDeadlockHealthCheck(ThreadDeadlockDetector detector) {</b>
    -<b class="fc">&nbsp;        this.detector = detector;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected Result check() throws Exception {
    -<b class="fc">&nbsp;        final Set&lt;String&gt; threads = detector.getDeadlockedThreads();</b>
    -<b class="fc">&nbsp;        if (threads.isEmpty()) {</b>
    -<b class="fc">&nbsp;            return Result.healthy();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return Result.unhealthy(threads.toString());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index.html
    deleted file mode 100644
    index 5d88dedccd..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-b/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 45e95d58cd..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 41a94be6e8..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index b7061331d4..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 6f9e5fffd1..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 94c2ec4708..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index c81462e483..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index f7cb4b1b8e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index a0a1fb453e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 37b8b5a3e5..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/sources/source-1.html
    deleted file mode 100644
    index 5b7cff6702..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-b/sources/source-1.html
    +++ /dev/null
    @@ -1,140 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedNClientConnManager</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpasyncclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedNClientConnManager (com.codahale.metrics.httpasyncclient)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedNClientConnManager</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpasyncclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.config.Registry;
    -&nbsp;import org.apache.http.conn.DnsResolver;
    -&nbsp;import org.apache.http.conn.SchemePortResolver;
    -&nbsp;import org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager;
    -&nbsp;import org.apache.http.nio.conn.ManagedNHttpClientConnection;
    -&nbsp;import org.apache.http.nio.conn.NHttpClientConnectionManager;
    -&nbsp;import org.apache.http.nio.conn.NHttpConnectionFactory;
    -&nbsp;import org.apache.http.nio.conn.SchemeIOSessionStrategy;
    -&nbsp;import org.apache.http.nio.reactor.ConnectingIOReactor;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;public class InstrumentedNClientConnManager extends PoolingNHttpClientConnectionManager {
    -&nbsp;
    -&nbsp;    public InstrumentedNClientConnManager(final ConnectingIOReactor ioreactor, final NHttpConnectionFactory&lt;ManagedNHttpClientConnection&gt; connFactory, final SchemePortResolver schemePortResolver, final MetricRegistry metricRegistry, final Registry&lt;SchemeIOSessionStrategy&gt; iosessionFactoryRegistry, final long timeToLive, final TimeUnit tunit, final DnsResolver dnsResolver, final String name) {
    -<b class="nc">&nbsp;        super(ioreactor, connFactory, iosessionFactoryRegistry, schemePortResolver, dnsResolver, timeToLive, tunit);</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="nc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;available-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="nc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;leased-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="nc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;max-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="nc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;pending-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-b/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-b/sources/source-2.html
    deleted file mode 100644
    index c50d79a933..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-b/sources/source-2.html
    +++ /dev/null
    @@ -1,268 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedNHttpClientBuilder</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpasyncclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedNHttpClientBuilder (com.codahale.metrics.httpasyncclient)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedNHttpClientBuilder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (5/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (9/11)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedNHttpClientBuilder$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (3/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedNHttpClientBuilder$TimingFutureCallback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (3/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    46.2%
    -  </span>
    -  <span class="absValue">
    -    (6/13)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpasyncclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.httpclient.HttpClientMetricNameStrategies;
    -&nbsp;import com.codahale.metrics.httpclient.HttpClientMetricNameStrategy;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.concurrent.Future;
    -&nbsp;
    -&nbsp;import org.apache.http.HttpException;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.concurrent.FutureCallback;
    -&nbsp;import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
    -&nbsp;import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
    -&nbsp;import org.apache.http.nio.protocol.HttpAsyncRequestProducer;
    -&nbsp;import org.apache.http.nio.protocol.HttpAsyncResponseConsumer;
    -&nbsp;import org.apache.http.protocol.HttpContext;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedNHttpClientBuilder extends HttpAsyncClientBuilder {</b>
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private final String name;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy, String name) {
    -<b class="fc">&nbsp;        super();</b>
    -<b class="fc">&nbsp;        this.metricRegistry = metricRegistry;</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(metricRegistry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, String name) {
    -<b class="nc">&nbsp;        this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, name);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;        return metricRegistry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public CloseableHttpAsyncClient build() {
    -<b class="fc">&nbsp;        final CloseableHttpAsyncClient ac = super.build();</b>
    -<b class="fc">&nbsp;        return new CloseableHttpAsyncClient() {</b>
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isRunning() {
    -<b class="nc">&nbsp;                return ac.isRunning();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void start() {
    -<b class="fc">&nbsp;                ac.start();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public &lt;T&gt; Future&lt;T&gt; execute(HttpAsyncRequestProducer requestProducer, HttpAsyncResponseConsumer&lt;T&gt; responseConsumer, HttpContext context, FutureCallback&lt;T&gt; callback) {
    -&nbsp;                final Timer.Context timerContext;
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    timerContext = timer(requestProducer.generateRequest()).time();</b>
    -<b class="nc">&nbsp;                } catch (IOException | HttpException ex) {</b>
    -<b class="nc">&nbsp;                    throw new RuntimeException(ex);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;                return ac.execute(requestProducer, responseConsumer, context,</b>
    -&nbsp;                        new TimingFutureCallback&lt;&gt;(callback, timerContext));
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void close() throws IOException {
    -<b class="nc">&nbsp;                ac.close();</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class TimingFutureCallback&lt;T&gt; implements FutureCallback&lt;T&gt; {</b>
    -&nbsp;        private final FutureCallback&lt;T&gt; callback;
    -&nbsp;        private final Timer.Context timerContext;
    -&nbsp;
    -&nbsp;        private TimingFutureCallback(FutureCallback&lt;T&gt; callback,
    -<b class="fc">&nbsp;                                     Timer.Context timerContext) {</b>
    -<b class="fc">&nbsp;            this.callback = callback;</b>
    -<b class="fc">&nbsp;            this.timerContext = requireNonNull(timerContext, &quot;timerContext&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void completed(T result) {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;            if (callback != null) {</b>
    -<b class="nc">&nbsp;                callback.completed(result);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void failed(Exception ex) {
    -<b class="nc">&nbsp;            timerContext.stop();</b>
    -<b class="nc">&nbsp;            if (callback != null) {</b>
    -<b class="nc">&nbsp;                callback.failed(ex);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void cancelled() {
    -<b class="nc">&nbsp;            timerContext.stop();</b>
    -<b class="nc">&nbsp;            if (callback != null) {</b>
    -<b class="nc">&nbsp;                callback.cancelled();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index.html
    deleted file mode 100644
    index e9f1c635c5..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-c/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index e93b35e145..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index e5aba1ec31..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index c4844c38b2..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 6bfeada561..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 44b3366acc..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 215455890e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index a4610edee6..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index d17802a9fa..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index acc0df2ba2..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-1.html
    deleted file mode 100644
    index e384c8c261..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-1.html
    +++ /dev/null
    @@ -1,165 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HttpClientMetricNameStrategies</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HttpClientMetricNameStrategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.client.HttpClient;
    -&nbsp;import org.apache.http.client.methods.HttpRequestWrapper;
    -&nbsp;import org.apache.http.client.methods.HttpUriRequest;
    -&nbsp;import org.apache.http.client.utils.URIBuilder;
    -&nbsp;
    -&nbsp;import java.net.URI;
    -&nbsp;import java.net.URISyntaxException;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class HttpClientMetricNameStrategies {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy METHOD_ONLY =</b>
    -<b class="fc">&nbsp;        (name, request) -&gt; name(HttpClient.class,</b>
    -&nbsp;            name,
    -<b class="fc">&nbsp;            methodNameString(request));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy HOST_AND_METHOD =</b>
    -<b class="fc">&nbsp;        (name, request) -&gt; name(HttpClient.class,</b>
    -&nbsp;            name,
    -<b class="fc">&nbsp;            requestURI(request).getHost(),</b>
    -<b class="fc">&nbsp;            methodNameString(request));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy PATH_AND_METHOD =</b>
    -&nbsp;        (name, request) -&gt; {
    -<b class="fc">&nbsp;            final URIBuilder url = new URIBuilder(requestURI(request));</b>
    -<b class="fc">&nbsp;            return name(HttpClient.class,</b>
    -&nbsp;                name,
    -<b class="fc">&nbsp;                url.getPath(),</b>
    -<b class="fc">&nbsp;                methodNameString(request));</b>
    -&nbsp;        };
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =</b>
    -&nbsp;        (name, request) -&gt; {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                final URIBuilder url = new URIBuilder(requestURI(request));</b>
    -<b class="fc">&nbsp;                return name(HttpClient.class,</b>
    -&nbsp;                    name,
    -<b class="fc">&nbsp;                    url.removeQuery().build().toString(),</b>
    -<b class="fc">&nbsp;                    methodNameString(request));</b>
    -<b class="nc">&nbsp;            } catch (URISyntaxException e) {</b>
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(e);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -&nbsp;    private static String methodNameString(HttpRequest request) {
    -<b class="fc">&nbsp;        return request.getRequestLine().getMethod().toLowerCase() + &quot;-requests&quot;;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static URI requestURI(HttpRequest request) {
    -<b class="fc">&nbsp;        if (request instanceof HttpRequestWrapper)</b>
    -<b class="fc">&nbsp;            return requestURI(((HttpRequestWrapper) request).getOriginal());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return (request instanceof HttpUriRequest) ?</b>
    -<b class="fc">&nbsp;            ((HttpUriRequest) request).getURI() :</b>
    -<b class="nc">&nbsp;            URI.create(request.getRequestLine().getUri());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-2.html
    deleted file mode 100644
    index 0db53fab95..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-2.html
    +++ /dev/null
    @@ -1,146 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HttpClientMetricNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HttpClientMetricNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$JpdP8icp</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$JpdP8icp$auxiliary$8csMhxPh</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$JpdP8icp$auxiliary$yhTyAizy</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$KVATg9hs</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$KVATg9hs$auxiliary$piAy2yZt</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$KVATg9hs$auxiliary$QENwMWQC</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.client.HttpClient;
    -&nbsp;
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface HttpClientMetricNameStrategy {
    -&nbsp;
    -&nbsp;    String getNameFor(String name, HttpRequest request);
    -&nbsp;
    -&nbsp;    default String getNameFor(String name, Exception exception) {
    -<b class="nc">&nbsp;        return MetricRegistry.name(HttpClient.class,</b>
    -&nbsp;                name,
    -<b class="nc">&nbsp;                exception.getClass().getSimpleName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-3.html
    deleted file mode 100644
    index 8fbd9b307a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-3.html
    +++ /dev/null
    @@ -1,330 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClientConnectionManager</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClientConnectionManager</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (8/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84%
    -  </span>
    -  <span class="absValue">
    -    (21/25)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpClientConnectionManager$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    36.4%
    -  </span>
    -  <span class="absValue">
    -    (4/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    46.2%
    -  </span>
    -  <span class="absValue">
    -    (12/26)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.config.Registry;
    -&nbsp;import org.apache.http.config.RegistryBuilder;
    -&nbsp;import org.apache.http.conn.DnsResolver;
    -&nbsp;import org.apache.http.conn.HttpClientConnectionManager;
    -&nbsp;import org.apache.http.conn.HttpClientConnectionOperator;
    -&nbsp;import org.apache.http.conn.HttpConnectionFactory;
    -&nbsp;import org.apache.http.conn.ManagedHttpClientConnection;
    -&nbsp;import org.apache.http.conn.SchemePortResolver;
    -&nbsp;import org.apache.http.conn.routing.HttpRoute;
    -&nbsp;import org.apache.http.conn.socket.ConnectionSocketFactory;
    -&nbsp;import org.apache.http.conn.socket.PlainConnectionSocketFactory;
    -&nbsp;import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
    -&nbsp;import org.apache.http.impl.conn.DefaultHttpClientConnectionOperator;
    -&nbsp;import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
    -&nbsp;import org.apache.http.impl.conn.SystemDefaultDnsResolver;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    -&nbsp; */
    -&nbsp;public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
    -&nbsp;
    -&nbsp;
    -&nbsp;    protected static Registry&lt;ConnectionSocketFactory&gt; getDefaultRegistry() {
    -<b class="fc">&nbsp;        return RegistryBuilder.&lt;ConnectionSocketFactory&gt;create()</b>
    -<b class="fc">&nbsp;            .register(&quot;http&quot;, PlainConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;            .register(&quot;https&quot;, SSLConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;            .build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricsRegistry;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        this(metricRegistry, getDefaultRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    -<b class="nc">&nbsp;        this(metricsRegistry, socketFactoryRegistry, -1, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry,
    -&nbsp;                                                   long connTTL,
    -&nbsp;                                                   TimeUnit connTTLTimeUnit) {
    -<b class="nc">&nbsp;        this(metricsRegistry, socketFactoryRegistry, null, null, SystemDefaultDnsResolver.INSTANCE, connTTL, connTTLTimeUnit, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry,
    -&nbsp;                                                   HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt;
    -&nbsp;                                                           connFactory,
    -&nbsp;                                                   SchemePortResolver schemePortResolver,
    -&nbsp;                                                   DnsResolver dnsResolver,
    -&nbsp;                                                   long connTTL,
    -&nbsp;                                                   TimeUnit connTTLTimeUnit,
    -&nbsp;                                                   String name) {
    -<b class="nc">&nbsp;        this(metricsRegistry,</b>
    -&nbsp;             new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver),
    -&nbsp;             connFactory,
    -&nbsp;             connTTL,
    -&nbsp;             connTTLTimeUnit,
    -&nbsp;             name);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   HttpClientConnectionOperator httpClientConnectionOperator,
    -&nbsp;                                                   HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt;
    -&nbsp;                                                           connFactory,
    -&nbsp;                                                   long connTTL,
    -&nbsp;                                                   TimeUnit connTTLTimeUnit,
    -&nbsp;                                                   String name) {
    -<b class="fc">&nbsp;        super(httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit);</b>
    -<b class="fc">&nbsp;        this.metricsRegistry = metricsRegistry;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;available-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;leased-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;max-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;pending-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void shutdown() {
    -<b class="fc">&nbsp;        super.shutdown();</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;available-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;leased-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;max-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;pending-connections&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static class Builder {
    -&nbsp;        private MetricRegistry metricsRegistry;
    -&nbsp;        private HttpClientConnectionOperator httpClientConnectionOperator;
    -<b class="fc">&nbsp;        private Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry = getDefaultRegistry();</b>
    -&nbsp;        private HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt; connFactory;
    -&nbsp;        private SchemePortResolver schemePortResolver;
    -<b class="fc">&nbsp;        private DnsResolver dnsResolver = SystemDefaultDnsResolver.INSTANCE;</b>
    -<b class="fc">&nbsp;        private long connTTL = -1;</b>
    -<b class="fc">&nbsp;        private TimeUnit connTTLTimeUnit = TimeUnit.MILLISECONDS;</b>
    -&nbsp;        private String name;
    -&nbsp;
    -<b class="fc">&nbsp;        Builder() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder metricsRegistry(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;            this.metricsRegistry = metricsRegistry;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder socketFactoryRegistry(Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    -<b class="nc">&nbsp;            this.socketFactoryRegistry = socketFactoryRegistry;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connFactory(HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt; connFactory) {
    -<b class="nc">&nbsp;            this.connFactory = connFactory;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    -<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    -<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connTTL(long connTTL) {
    -<b class="nc">&nbsp;            this.connTTL = connTTL;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connTTLTimeUnit(TimeUnit connTTLTimeUnit) {
    -<b class="nc">&nbsp;            this.connTTLTimeUnit = connTTLTimeUnit;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
    -<b class="nc">&nbsp;            this.httpClientConnectionOperator = httpClientConnectionOperator;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder name(final String name) {
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public InstrumentedHttpClientConnectionManager build() {
    -<b class="fc">&nbsp;            if (httpClientConnectionOperator == null) {</b>
    -<b class="fc">&nbsp;                httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new InstrumentedHttpClientConnectionManager(metricsRegistry, httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit, name);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-4.html
    deleted file mode 100644
    index 5ed96ac4db..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-4.html
    +++ /dev/null
    @@ -1,138 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClients</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClients</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.impl.client.CloseableHttpClient;
    -&nbsp;import org.apache.http.impl.client.HttpClientBuilder;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.httpclient.HttpClientMetricNameStrategies.METHOD_ONLY;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpClients {
    -&nbsp;    private InstrumentedHttpClients() {
    -&nbsp;        super();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
    -&nbsp;                                                    HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        return HttpClientBuilder.create()</b>
    -<b class="fc">&nbsp;                .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))</b>
    -<b class="fc">&nbsp;                .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-5.html
    deleted file mode 100644
    index 714211f9e2..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-c/sources/source-5.html
    +++ /dev/null
    @@ -1,166 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpRequestExecutor</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpRequestExecutor</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.apache.http.HttpClientConnection;
    -&nbsp;import org.apache.http.HttpException;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.HttpResponse;
    -&nbsp;import org.apache.http.protocol.HttpContext;
    -&nbsp;import org.apache.http.protocol.HttpRequestExecutor;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name,
    -&nbsp;                                           int waitForContinue) {
    -<b class="fc">&nbsp;        super(waitForContinue);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public HttpResponse execute(HttpRequest request, HttpClientConnection conn, HttpContext context) throws HttpException, IOException {
    -<b class="fc">&nbsp;        final Timer.Context timerContext = timer(request).time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return super.execute(request, conn, context);</b>
    -<b class="fc">&nbsp;        } catch (HttpException | IOException e) {</b>
    -<b class="fc">&nbsp;            meter(e).mark();</b>
    -<b class="fc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;        return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meter(Exception e) {
    -<b class="fc">&nbsp;        return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index.html
    deleted file mode 100644
    index 4011c3046f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-d/index.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index a19fed4731..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 37300d90bd..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 86f08aaf1f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 82af77499c..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 0f7dfd53cb..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index b4c6064664..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 5c81111d41..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 16ad11bcba..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 982163bcb2..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-1.html
    deleted file mode 100644
    index d116ed905e..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-1.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HttpClientMetricNameStrategies</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HttpClientMetricNameStrategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import org.apache.hc.client5.http.classic.HttpClient;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;import org.apache.hc.core5.net.URIBuilder;
    -&nbsp;
    -&nbsp;import java.net.URISyntaxException;
    -&nbsp;import java.util.Locale;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class HttpClientMetricNameStrategies {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy METHOD_ONLY =</b>
    -<b class="fc">&nbsp;            (name, request) -&gt; name(HttpClient.class,</b>
    -&nbsp;                    name,
    -<b class="fc">&nbsp;                    methodNameString(request));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy HOST_AND_METHOD =</b>
    -&nbsp;            (name, request) -&gt; {
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    return name(HttpClient.class,</b>
    -&nbsp;                            name,
    -<b class="fc">&nbsp;                            request.getUri().getHost(),</b>
    -<b class="fc">&nbsp;                            methodNameString(request));</b>
    -<b class="nc">&nbsp;                } catch (URISyntaxException e) {</b>
    -<b class="nc">&nbsp;                    throw new IllegalArgumentException(e);</b>
    -&nbsp;                }
    -&nbsp;            };
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =</b>
    -&nbsp;            (name, request) -&gt; {
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    final URIBuilder url = new URIBuilder(request.getUri());</b>
    -<b class="fc">&nbsp;                    return name(HttpClient.class,</b>
    -&nbsp;                            name,
    -<b class="fc">&nbsp;                            url.removeQuery().build().toString(),</b>
    -<b class="fc">&nbsp;                            methodNameString(request));</b>
    -<b class="nc">&nbsp;                } catch (URISyntaxException e) {</b>
    -<b class="nc">&nbsp;                    throw new IllegalArgumentException(e);</b>
    -&nbsp;                }
    -&nbsp;            };
    -&nbsp;
    -&nbsp;    private static String methodNameString(HttpRequest request) {
    -<b class="fc">&nbsp;        return request.getMethod().toLowerCase(Locale.ROOT) + &quot;-requests&quot;;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-2.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-2.html
    deleted file mode 100644
    index 96801a835f..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-2.html
    +++ /dev/null
    @@ -1,137 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HttpClientMetricNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HttpClientMetricNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$WCZvq9Vv</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$WCZvq9Vv$auxiliary$wLZ8qSrM</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$WCZvq9Vv$auxiliary$X0UpyCp2</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.classic.HttpClient;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface HttpClientMetricNameStrategy {
    -&nbsp;
    -&nbsp;    String getNameFor(String name, HttpRequest request);
    -&nbsp;
    -&nbsp;    default String getNameFor(String name, Exception exception) {
    -<b class="nc">&nbsp;        return MetricRegistry.name(HttpClient.class,</b>
    -&nbsp;                name,
    -<b class="nc">&nbsp;                exception.getClass().getSimpleName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-3.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-3.html
    deleted file mode 100644
    index e404a9285b..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-3.html
    +++ /dev/null
    @@ -1,285 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAsyncClientConnectionManager</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAsyncClientConnectionManager (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAsyncClientConnectionManager</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedAsyncClientConnectionManager$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (4/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (8/20)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.DnsResolver;
    -&nbsp;import org.apache.hc.client5.http.SchemePortResolver;
    -&nbsp;import org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
    -&nbsp;import org.apache.hc.core5.http.URIScheme;
    -&nbsp;import org.apache.hc.core5.http.config.Lookup;
    -&nbsp;import org.apache.hc.core5.http.config.Registry;
    -&nbsp;import org.apache.hc.core5.http.config.RegistryBuilder;
    -&nbsp;import org.apache.hc.core5.http.nio.ssl.TlsStrategy;
    -&nbsp;import org.apache.hc.core5.io.CloseMode;
    -&nbsp;import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
    -&nbsp;import org.apache.hc.core5.pool.PoolReusePolicy;
    -&nbsp;import org.apache.hc.core5.util.TimeValue;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    -&nbsp; */
    -&nbsp;public class InstrumentedAsyncClientConnectionManager extends PoolingAsyncClientConnectionManager {
    -<b class="fc">&nbsp;    private static final String METRICS_PREFIX = AsyncClientConnectionManager.class.getName();</b>
    -&nbsp;
    -&nbsp;    protected static Registry&lt;TlsStrategy&gt; getDefaultTlsStrategy() {
    -<b class="fc">&nbsp;        return RegistryBuilder.&lt;TlsStrategy&gt;create()</b>
    -<b class="fc">&nbsp;                .register(URIScheme.HTTPS.id, DefaultClientTlsStrategy.getDefault())</b>
    -<b class="fc">&nbsp;                .build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricsRegistry;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    InstrumentedAsyncClientConnectionManager(final MetricRegistry metricRegistry,
    -&nbsp;                                             final String name,
    -&nbsp;                                             final Lookup&lt;TlsStrategy&gt; tlsStrategyLookup,
    -&nbsp;                                             final PoolConcurrencyPolicy poolConcurrencyPolicy,
    -&nbsp;                                             final PoolReusePolicy poolReusePolicy,
    -&nbsp;                                             final TimeValue timeToLive,
    -&nbsp;                                             final SchemePortResolver schemePortResolver,
    -&nbsp;                                             final DnsResolver dnsResolver) {
    -&nbsp;
    -<b class="fc">&nbsp;        super(tlsStrategyLookup, poolConcurrencyPolicy, poolReusePolicy, timeToLive, schemePortResolver, dnsResolver);</b>
    -<b class="fc">&nbsp;        this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;available-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;leased-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;max-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;pending-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="fc">&nbsp;        close(CloseMode.GRACEFUL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close(CloseMode closeMode) {
    -<b class="fc">&nbsp;        super.close(closeMode);</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;available-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;leased-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;max-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;pending-connections&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static class Builder {
    -&nbsp;        private MetricRegistry metricsRegistry;
    -&nbsp;        private String name;
    -<b class="fc">&nbsp;        private Lookup&lt;TlsStrategy&gt; tlsStrategyLookup = getDefaultTlsStrategy();</b>
    -&nbsp;        private SchemePortResolver schemePortResolver;
    -&nbsp;        private DnsResolver dnsResolver;
    -&nbsp;        private PoolConcurrencyPolicy poolConcurrencyPolicy;
    -&nbsp;        private PoolReusePolicy poolReusePolicy;
    -<b class="fc">&nbsp;        private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        Builder() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder metricsRegistry(MetricRegistry metricRegistry) {
    -<b class="fc">&nbsp;            this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder name(final String name) {
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    -<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    -<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder timeToLive(TimeValue timeToLive) {
    -<b class="nc">&nbsp;            this.timeToLive = timeToLive;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder tlsStrategyLookup(Lookup&lt;TlsStrategy&gt; tlsStrategyLookup) {
    -<b class="nc">&nbsp;            this.tlsStrategyLookup = tlsStrategyLookup;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
    -<b class="nc">&nbsp;            this.poolConcurrencyPolicy = poolConcurrencyPolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
    -<b class="nc">&nbsp;            this.poolReusePolicy = poolReusePolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public InstrumentedAsyncClientConnectionManager build() {
    -<b class="fc">&nbsp;            return new InstrumentedAsyncClientConnectionManager(</b>
    -&nbsp;                    metricsRegistry,
    -&nbsp;                    name,
    -&nbsp;                    tlsStrategyLookup,
    -&nbsp;                    poolConcurrencyPolicy,
    -&nbsp;                    poolReusePolicy,
    -&nbsp;                    timeToLive,
    -&nbsp;                    schemePortResolver,
    -&nbsp;                    dnsResolver);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-4.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-4.html
    deleted file mode 100644
    index 4443501674..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-4.html
    +++ /dev/null
    @@ -1,229 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAsyncExecChainHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAsyncExecChainHandler (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAsyncExecChainHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedAsyncExecChainHandler$InstrumentedAsyncExecCallback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.apache.hc.client5.http.async.AsyncExecCallback;
    -&nbsp;import org.apache.hc.client5.http.async.AsyncExecChain;
    -&nbsp;import org.apache.hc.client5.http.async.AsyncExecChainHandler;
    -&nbsp;import org.apache.hc.core5.http.EntityDetails;
    -&nbsp;import org.apache.hc.core5.http.HttpException;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;import org.apache.hc.core5.http.HttpResponse;
    -&nbsp;import org.apache.hc.core5.http.nio.AsyncDataConsumer;
    -&nbsp;import org.apache.hc.core5.http.nio.AsyncEntityProducer;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;class InstrumentedAsyncExecChainHandler implements AsyncExecChainHandler {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    public InstrumentedAsyncExecChainHandler(MetricRegistry registry, HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedAsyncExecChainHandler(MetricRegistry registry,
    -&nbsp;                                             HttpClientMetricNameStrategy metricNameStrategy,
    -<b class="fc">&nbsp;                                             String name) {</b>
    -<b class="fc">&nbsp;        this.registry = requireNonNull(registry, &quot;registry&quot;);</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = requireNonNull(metricNameStrategy, &quot;metricNameStrategy&quot;);</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void execute(HttpRequest request,
    -&nbsp;                        AsyncEntityProducer entityProducer,
    -&nbsp;                        AsyncExecChain.Scope scope,
    -&nbsp;                        AsyncExecChain chain,
    -&nbsp;                        AsyncExecCallback asyncExecCallback) throws HttpException, IOException {
    -<b class="fc">&nbsp;        final InstrumentedAsyncExecCallback instrumentedAsyncExecCallback =</b>
    -&nbsp;                new InstrumentedAsyncExecCallback(registry, metricNameStrategy, name, asyncExecCallback, request);
    -<b class="fc">&nbsp;        chain.proceed(request, entityProducer, scope, instrumentedAsyncExecCallback);</b>
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    final static class InstrumentedAsyncExecCallback implements AsyncExecCallback {
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;        private final String name;
    -&nbsp;        private final AsyncExecCallback delegate;
    -&nbsp;        private final Timer.Context timerContext;
    -&nbsp;
    -&nbsp;        public InstrumentedAsyncExecCallback(MetricRegistry registry,
    -&nbsp;                                             HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                             String name,
    -&nbsp;                                             AsyncExecCallback delegate,
    -<b class="fc">&nbsp;                                             HttpRequest request) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.metricNameStrategy = metricNameStrategy;</b>
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            this.delegate = delegate;</b>
    -<b class="fc">&nbsp;            this.timerContext = timer(request).time();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public AsyncDataConsumer handleResponse(HttpResponse response, EntityDetails entityDetails) throws HttpException, IOException {
    -<b class="fc">&nbsp;            return delegate.handleResponse(response, entityDetails);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void handleInformationResponse(HttpResponse response) throws HttpException, IOException {
    -<b class="nc">&nbsp;            delegate.handleInformationResponse(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void completed() {
    -<b class="fc">&nbsp;            delegate.completed();</b>
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void failed(Exception cause) {
    -<b class="fc">&nbsp;            delegate.failed(cause);</b>
    -<b class="fc">&nbsp;            meter(cause).mark();</b>
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;            return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Meter meter(Exception e) {
    -<b class="fc">&nbsp;            return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-5.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-5.html
    deleted file mode 100644
    index 1836817ec9..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-5.html
    +++ /dev/null
    @@ -1,147 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpAsyncClients</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpAsyncClients (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpAsyncClients</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.impl.ChainElement;
    -&nbsp;import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
    -&nbsp;import org.apache.hc.client5.http.impl.async.HttpAsyncClientBuilder;
    -&nbsp;import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpAsyncClients {
    -&nbsp;    private InstrumentedHttpAsyncClients() {
    -&nbsp;        super();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry,
    -&nbsp;                                                         HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                                HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        return custom(metricRegistry, metricNameStrategy, InstrumentedAsyncClientConnectionManager.builder(metricRegistry).build());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                                HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                                AsyncClientConnectionManager clientConnectionManager) {
    -<b class="fc">&nbsp;        return HttpAsyncClientBuilder.create()</b>
    -<b class="fc">&nbsp;                .setConnectionManager(clientConnectionManager)</b>
    -<b class="fc">&nbsp;                .addExecInterceptorBefore(ChainElement.CONNECT.name(), &quot;dropwizard-metrics&quot;,</b>
    -&nbsp;                        new InstrumentedAsyncExecChainHandler(metricRegistry, metricNameStrategy));
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-6.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-6.html
    deleted file mode 100644
    index bc88b97f74..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-6.html
    +++ /dev/null
    @@ -1,308 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClientConnectionManager</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClientConnectionManager</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (23/23)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpClientConnectionManager$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (4/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    38.5%
    -  </span>
    -  <span class="absValue">
    -    (10/26)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.DnsResolver;
    -&nbsp;import org.apache.hc.client5.http.SchemePortResolver;
    -&nbsp;import org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator;
    -&nbsp;import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionOperator;
    -&nbsp;import org.apache.hc.client5.http.io.ManagedHttpClientConnection;
    -&nbsp;import org.apache.hc.client5.http.socket.ConnectionSocketFactory;
    -&nbsp;import org.apache.hc.client5.http.socket.PlainConnectionSocketFactory;
    -&nbsp;import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
    -&nbsp;import org.apache.hc.core5.http.URIScheme;
    -&nbsp;import org.apache.hc.core5.http.config.Registry;
    -&nbsp;import org.apache.hc.core5.http.config.RegistryBuilder;
    -&nbsp;import org.apache.hc.core5.http.io.HttpConnectionFactory;
    -&nbsp;import org.apache.hc.core5.io.CloseMode;
    -&nbsp;import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
    -&nbsp;import org.apache.hc.core5.pool.PoolReusePolicy;
    -&nbsp;import org.apache.hc.core5.util.TimeValue;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    -&nbsp; */
    -&nbsp;public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
    -<b class="fc">&nbsp;    private static final String METRICS_PREFIX = HttpClientConnectionManager.class.getName();</b>
    -&nbsp;
    -&nbsp;    protected static Registry&lt;ConnectionSocketFactory&gt; getDefaultRegistry() {
    -<b class="fc">&nbsp;        return RegistryBuilder.&lt;ConnectionSocketFactory&gt;create()</b>
    -<b class="fc">&nbsp;                .register(URIScheme.HTTP.id, PlainConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;                .register(URIScheme.HTTPS.id, SSLConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;                .build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricsRegistry;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    InstrumentedHttpClientConnectionManager(final MetricRegistry metricRegistry,
    -&nbsp;                                            final String name,
    -&nbsp;                                            final HttpClientConnectionOperator httpClientConnectionOperator,
    -&nbsp;                                            final PoolConcurrencyPolicy poolConcurrencyPolicy,
    -&nbsp;                                            final PoolReusePolicy poolReusePolicy,
    -&nbsp;                                            final TimeValue timeToLive,
    -&nbsp;                                            final HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory) {
    -&nbsp;
    -<b class="fc">&nbsp;        super(httpClientConnectionOperator, poolConcurrencyPolicy, poolReusePolicy, timeToLive, connFactory);</b>
    -<b class="fc">&nbsp;        this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;available-connections&quot;),</b>
    -&nbsp;                () -&gt; {
    -<b class="fc">&nbsp;                    return getTotalStats().getAvailable();</b>
    -&nbsp;                });
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;leased-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;max-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax()</b>
    -&nbsp;        );
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;pending-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="fc">&nbsp;        close(CloseMode.GRACEFUL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close(CloseMode closeMode) {
    -<b class="fc">&nbsp;        super.close(closeMode);</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;available-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;leased-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;max-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;pending-connections&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static class Builder {
    -&nbsp;        private MetricRegistry metricsRegistry;
    -&nbsp;        private String name;
    -&nbsp;        private HttpClientConnectionOperator httpClientConnectionOperator;
    -<b class="fc">&nbsp;        private Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry = getDefaultRegistry();</b>
    -&nbsp;        private SchemePortResolver schemePortResolver;
    -&nbsp;        private DnsResolver dnsResolver;
    -&nbsp;        private PoolConcurrencyPolicy poolConcurrencyPolicy;
    -&nbsp;        private PoolReusePolicy poolReusePolicy;
    -<b class="fc">&nbsp;        private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;</b>
    -&nbsp;        private HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory;
    -&nbsp;
    -<b class="fc">&nbsp;        Builder() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder metricsRegistry(MetricRegistry metricRegistry) {
    -<b class="fc">&nbsp;            this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder name(final String name) {
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder socketFactoryRegistry(Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    -<b class="nc">&nbsp;            this.socketFactoryRegistry = requireNonNull(socketFactoryRegistry, &quot;socketFactoryRegistry&quot;);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connFactory(HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory) {
    -<b class="nc">&nbsp;            this.connFactory = connFactory;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    -<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    -<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder timeToLive(TimeValue timeToLive) {
    -<b class="nc">&nbsp;            this.timeToLive = timeToLive;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
    -<b class="nc">&nbsp;            this.httpClientConnectionOperator = httpClientConnectionOperator;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
    -<b class="nc">&nbsp;            this.poolConcurrencyPolicy = poolConcurrencyPolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
    -<b class="nc">&nbsp;            this.poolReusePolicy = poolReusePolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public InstrumentedHttpClientConnectionManager build() {
    -<b class="fc">&nbsp;            if (httpClientConnectionOperator == null) {</b>
    -<b class="fc">&nbsp;                httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(</b>
    -&nbsp;                        socketFactoryRegistry,
    -&nbsp;                        schemePortResolver,
    -&nbsp;                        dnsResolver);
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            return new InstrumentedHttpClientConnectionManager(</b>
    -&nbsp;                    metricsRegistry,
    -&nbsp;                    name,
    -&nbsp;                    httpClientConnectionOperator,
    -&nbsp;                    poolConcurrencyPolicy,
    -&nbsp;                    poolReusePolicy,
    -&nbsp;                    timeToLive,
    -&nbsp;                    connFactory);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-7.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-7.html
    deleted file mode 100644
    index cb7f93e804..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-7.html
    +++ /dev/null
    @@ -1,138 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClients</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClients</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
    -&nbsp;import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpClients {
    -&nbsp;    private InstrumentedHttpClients() {
    -&nbsp;        super();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
    -&nbsp;                                                    HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        return HttpClientBuilder.create()</b>
    -<b class="fc">&nbsp;                .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))</b>
    -<b class="fc">&nbsp;                .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-8.html b/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-8.html
    deleted file mode 100644
    index a5b617bde0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-d/sources/source-8.html
    +++ /dev/null
    @@ -1,182 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpRequestExecutor</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpRequestExecutor</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.apache.hc.core5.http.ClassicHttpRequest;
    -&nbsp;import org.apache.hc.core5.http.ClassicHttpResponse;
    -&nbsp;import org.apache.hc.core5.http.ConnectionReuseStrategy;
    -&nbsp;import org.apache.hc.core5.http.HttpException;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;import org.apache.hc.core5.http.impl.Http1StreamListener;
    -&nbsp;import org.apache.hc.core5.http.impl.io.HttpRequestExecutor;
    -&nbsp;import org.apache.hc.core5.http.io.HttpClientConnection;
    -&nbsp;import org.apache.hc.core5.http.io.HttpResponseInformationCallback;
    -&nbsp;import org.apache.hc.core5.http.protocol.HttpContext;
    -&nbsp;import org.apache.hc.core5.util.Timeout;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name,
    -&nbsp;                                           Timeout waitForContinue) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, waitForContinue, null, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name,
    -&nbsp;                                           Timeout waitForContinue,
    -&nbsp;                                           ConnectionReuseStrategy connReuseStrategy,
    -&nbsp;                                           Http1StreamListener streamListener) {
    -<b class="fc">&nbsp;        super(waitForContinue, connReuseStrategy, streamListener);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public ClassicHttpResponse execute(ClassicHttpRequest request, HttpClientConnection conn, HttpResponseInformationCallback informationCallback, HttpContext context) throws IOException, HttpException {
    -<b class="fc">&nbsp;        final Timer.Context timerContext = timer(request).time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return super.execute(request, conn, informationCallback, context);</b>
    -<b class="fc">&nbsp;        } catch (HttpException | IOException e) {</b>
    -<b class="fc">&nbsp;            meter(e).mark();</b>
    -<b class="fc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;        return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meter(Exception e) {
    -<b class="fc">&nbsp;        return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index.html
    deleted file mode 100644
    index cb40098c84..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-e/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 561b2511f5..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 8db60cfd17..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 6ddc470915..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 12a39cb66d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_LINE.html
    deleted file mode 100644
    index bba1821f6d..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 9df4827829..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index b8ce349201..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 41e555da35..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 208477debf..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-e/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-e/sources/source-1.html
    deleted file mode 100644
    index 570c5d4299..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-e/sources/source-1.html
    +++ /dev/null
    @@ -1,189 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JCacheGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jcache</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: JCacheGaugeSet (com.codahale.metrics.jcache)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">JCacheGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jcache;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.jvm.JmxAttributeGauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;import javax.cache.management.CacheStatisticsMXBean;
    -&nbsp;import javax.management.MalformedObjectNameException;
    -&nbsp;import javax.management.ObjectInstance;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Gauge set retrieving JCache JMX attributes
    -&nbsp; *
    -&nbsp; * @author &lt;a href=&quot;mailto:henri.tremblay@softwareag.com&quot;&gt;Henri Tremblay&lt;/a&gt;
    -&nbsp; * @author &lt;a href=&quot;mailto:anthony.dahanne@softwareag.com&quot;&gt;Anthony Dahanne&lt;/a&gt;
    -&nbsp; */
    -<b class="fc">&nbsp;public class JCacheGaugeSet implements MetricSet {</b>
    -&nbsp;
    -&nbsp;    private static final String M_BEAN_COORDINATES = &quot;javax.cache:type=CacheStatistics,CacheManager=*,Cache=*&quot;;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JCacheGaugeSet.class);</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        Set&lt;ObjectInstance&gt; cacheBeans = getCacheBeans();</b>
    -<b class="fc">&nbsp;        List&lt;String&gt; availableStatsNames = retrieveStatsNames();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;(cacheBeans.size() * availableStatsNames.size());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (ObjectInstance cacheBean : cacheBeans) {</b>
    -<b class="fc">&nbsp;            ObjectName objectName = cacheBean.getObjectName();</b>
    -<b class="fc">&nbsp;            String cacheName = objectName.getKeyProperty(&quot;Cache&quot;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (String statsName : availableStatsNames) {</b>
    -<b class="fc">&nbsp;                JmxAttributeGauge jmxAttributeGauge = new JmxAttributeGauge(objectName, statsName);</b>
    -<b class="fc">&nbsp;                gauges.put(name(cacheName, toSpinalCase(statsName)), jmxAttributeGauge);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Set&lt;ObjectInstance&gt; getCacheBeans() {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return ManagementFactory.getPlatformMBeanServer().queryMBeans(ObjectName.getInstance(M_BEAN_COORDINATES), null);</b>
    -<b class="nc">&nbsp;        } catch (MalformedObjectNameException e) {</b>
    -<b class="nc">&nbsp;            LOGGER.error(&quot;Unable to retrieve {}. Are JCache statistics enabled?&quot;, M_BEAN_COORDINATES);</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private List&lt;String&gt; retrieveStatsNames() {
    -<b class="fc">&nbsp;        Method[] methods = CacheStatisticsMXBean.class.getDeclaredMethods();</b>
    -<b class="fc">&nbsp;        List&lt;String&gt; availableStatsNames = new ArrayList&lt;&gt;(methods.length);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Method method : methods) {</b>
    -<b class="fc">&nbsp;            String methodName = method.getName();</b>
    -<b class="fc">&nbsp;            if (methodName.startsWith(&quot;get&quot;)) {</b>
    -<b class="fc">&nbsp;                availableStatsNames.add(methodName.substring(3));</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return availableStatsNames;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static String toSpinalCase(String camelCase) {
    -<b class="fc">&nbsp;        return camelCase.replaceAll(&quot;(.)(\\p{Upper})&quot;, &quot;$1-$2&quot;).toLowerCase(Locale.US);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index.html
    deleted file mode 100644
    index eb94cafaf0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-f/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index b808eecc1a..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index cd46847176..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 3aea1dc115..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 055a0d70d0..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_LINE.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 54b48eb111..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 6ea95a0e63..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index c0d050d3c4..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 191b20a8c7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index fcb89e0eb7..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-branch-report-initial-htmlReport/ns-f/sources/source-1.html b/metrics-complete-branch-report-initial-htmlReport/ns-f/sources/source-1.html
    deleted file mode 100644
    index 0892dda2a8..0000000000
    --- a/metrics-complete-branch-report-initial-htmlReport/ns-f/sources/source-1.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedTimingCollector</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedTimingCollector</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.jdbi.strategies.SmartNameStrategy;
    -&nbsp;import com.codahale.metrics.jdbi.strategies.StatementNameStrategy;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;import org.skife.jdbi.v2.TimingCollector;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link TimingCollector} implementation for JDBI which uses the SQL objects&#39; class names and
    -&nbsp; * method names for millisecond-precision timers.
    -&nbsp; */
    -&nbsp;public class InstrumentedTimingCollector implements TimingCollector {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final StatementNameStrategy statementNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry,
    -<b class="fc">&nbsp;                                       StatementNameStrategy statementNameStrategy) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void collect(long elapsedTime, StatementContext ctx) {
    -<b class="fc">&nbsp;        final Timer timer = getTimer(ctx);</b>
    -<b class="fc">&nbsp;        timer.update(elapsedTime, TimeUnit.NANOSECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer getTimer(StatementContext ctx) {
    -<b class="fc">&nbsp;        return registry.timer(statementNameStrategy.getStatementName(ctx));</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-28 00:31</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/css/coverage.css b/metrics-complete-report-initial-htmlReport/css/coverage.css
    deleted file mode 100644
    index cef776517f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/css/coverage.css
    +++ /dev/null
    @@ -1,154 +0,0 @@
    -/*
    - * Copyright 2000-2021 JetBrains s.r.o.
    - *
    - * Licensed under the Apache License, Version 2.0 (the "License");
    - * you may not use this file except in compliance with the License.
    - * You may obtain a copy of the License at
    - *
    - *   http://www.apache.org/licenses/LICENSE-2.0
    - *
    - * Unless required by applicable law or agreed to in writing, software
    - * distributed under the License is distributed on an "AS IS" BASIS,
    - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    - * See the License for the specific language governing permissions and
    - * limitations under the License.
    - */
    -
    -* {
    -  margin: 0;
    -  padding: 0;
    -}
    -
    -body {
    -  background-color: #fff;
    -  font-family: helvetica neue, tahoma, arial, sans-serif;
    -  font-size: 82%;
    -  color: #151515;
    -}
    -
    -h1 {
    -  margin: 0.5em 0;
    -  color: #010101;
    -  font-weight: normal;
    -  font-size: 18px;
    -}
    -
    -h2 {
    -  margin: 0.5em 0;
    -  color: #010101;
    -  font-weight: normal;
    -  font-size: 16px;
    -}
    -
    -a {
    -  color: #1564C2;
    -  text-decoration: none;
    -}
    -
    -a:hover {
    -  text-decoration: underline;
    -}
    -
    -span.separator {
    -  color: #9BA9BA;
    -  padding-left: 5px;
    -  padding-right: 5px;
    -}
    -
    -div.content {
    -  width: 99%;
    -}
    -
    -table.coverageStats {
    -  width: 100%;
    -  border-collapse: collapse;
    -}
    -
    -table.overallStats {
    -  width: 20%;
    -}
    -
    -table.coverageStats td, table.coverageStats th {
    -  padding: 4px 2px;
    -  border-bottom: 1px solid #ccc;
    -}
    -
    -table.coverageStats th {
    -  background-color: #959BA4;
    -  border: none;
    -  font-weight: bold;
    -  text-align: left;
    -  color: #FFF;
    -}
    -
    -table.coverageStats th.coverageStat {
    -  width: 15%;
    -}
    -
    -table.coverageStats th a {
    -  color: #FFF;
    -}
    -
    -table.coverageStats th a:hover {
    -  text-decoration: none;
    -}
    -
    -table.coverageStats th.sortedDesc a {
    -  background: url(../img/arrowDown.gif) no-repeat 100% 2px;
    -  padding-right: 20px;
    -}
    -
    -table.coverageStats th.sortedAsc a {
    -  background: url(../img/arrowUp.gif) no-repeat 100% 2px;
    -  padding-right: 20px;
    -}
    -
    -div.footer {
    -  margin: 2em .5em;
    -  font-size: 85%;
    -  text-align: left;
    -  line-height: 140%;
    -}
    -
    -code.sourceCode {
    -  width: 100%;
    -  border: 1px solid #ccc;
    -  font: normal 12px 'Menlo', 'Bitstream Vera Sans Mono', 'Courier New', 'Courier', monospace;
    -  white-space: pre;
    -}
    -
    -code.sourceCode b {
    -  font-weight: normal;
    -}
    -
    -code.sourceCode span.number {
    -  color: #151515;
    -}
    -
    -code.sourceCode .fc {
    -  background-color: #cfc;
    -}
    -
    -code.sourceCode .pc {
    -  background-color: #ffc;
    -}
    -
    -code.sourceCode .nc {
    -  background-color: #fcc;
    -}
    -
    -.percent, .absValue {
    -  font-size: 90%;
    -}
    -
    -.percent .green, .absValue .green {
    -  color: #32cc32;
    -}
    -
    -.percent .red, .absValue .red {
    -  color: #f00;
    -}
    -
    -.percent .totalDiff {
    -  color: #3f3f3f;
    -}
    diff --git a/metrics-complete-report-initial-htmlReport/css/idea.min.css b/metrics-complete-report-initial-htmlReport/css/idea.min.css
    deleted file mode 100644
    index a8d5292bd5..0000000000
    --- a/metrics-complete-report-initial-htmlReport/css/idea.min.css
    +++ /dev/null
    @@ -1,118 +0,0 @@
    -/*
    - * Copyright 2000-2021 JetBrains s.r.o.
    - *
    - * Licensed under the Apache License, Version 2.0 (the "License");
    - * you may not use this file except in compliance with the License.
    - * You may obtain a copy of the License at
    - *
    - *   http://www.apache.org/licenses/LICENSE-2.0
    - *
    - * Unless required by applicable law or agreed to in writing, software
    - * distributed under the License is distributed on an "AS IS" BASIS,
    - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    - * See the License for the specific language governing permissions and
    - * limitations under the License.
    - */
    -
    -/*
    -Intellij Idea-like styling (c) Vasily Polovnyov <vast@whiteants.net>
    -*/
    -
    -.hljs {
    -    color: #000;
    -    background: #fff;
    -}
    -
    -.hljs-subst,
    -.hljs-title {
    -    font-weight: normal;
    -    color: #000;
    -}
    -
    -.hljs-comment,
    -.hljs-quote {
    -    color: #808080;
    -    font-style: italic;
    -}
    -
    -.hljs-meta {
    -    color: #808000;
    -}
    -
    -.hljs-tag {
    -    background: #efefef;
    -}
    -
    -.hljs-section,
    -.hljs-name,
    -.hljs-literal,
    -.hljs-keyword,
    -.hljs-selector-tag,
    -.hljs-type,
    -.hljs-selector-id,
    -.hljs-selector-class {
    -    font-weight: bold;
    -    color: #000080;
    -}
    -
    -.hljs-attribute,
    -.hljs-number,
    -.hljs-regexp,
    -.hljs-link {
    -    font-weight: bold;
    -    color: #0000ff;
    -}
    -
    -.hljs-number,
    -.hljs-regexp,
    -.hljs-link {
    -    font-weight: normal;
    -}
    -
    -.hljs-string {
    -    color: #008000;
    -    font-weight: bold;
    -}
    -
    -.hljs-symbol,
    -.hljs-bullet,
    -.hljs-formula {
    -    color: #000;
    -    background: #d0eded;
    -    font-style: italic;
    -}
    -
    -.hljs-doctag {
    -    text-decoration: underline;
    -}
    -
    -.hljs-variable,
    -.hljs-template-variable {
    -    color: #660e7a;
    -}
    -
    -.hljs-addition {
    -    background: #baeeba;
    -}
    -
    -.hljs-deletion {
    -    background: #ffc8bd;
    -}
    -
    -.hljs-emphasis {
    -    font-style: italic;
    -}
    -
    -.hljs-strong {
    -    font-weight: bold;
    -}
    -
    -.hljs-ln-numbers {
    -    display: block;
    -    float: left;
    -    width: 3em;
    -    border-right: 1px solid #ccc;
    -    font-style: normal;
    -    text-align: right;
    -    background-color: #eee;
    -}
    diff --git a/metrics-complete-report-initial-htmlReport/img/arrowDown.gif b/metrics-complete-report-initial-htmlReport/img/arrowDown.gif
    deleted file mode 100644
    index a4ac9b4b0f5eee9fc82deb7f03d0cc7f197b01c7..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 89
    zcmZ?wbhEHb<YVAtSj56GVZwyGyu5~nhW}u|00W9YSr{1@SQvCb0wA>v%yJ&P?))?G
    g5?!@7agD+*@rGjs@joUks8}}Ha%HfNHz$KN0Orjd82|tP
    
    diff --git a/metrics-complete-report-initial-htmlReport/img/arrowUp.gif b/metrics-complete-report-initial-htmlReport/img/arrowUp.gif
    deleted file mode 100644
    index d488db0089f15409b83a6f39718384cac89ea3c9..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 91
    zcmZ?wbhEHb<YVAtSj51PmzOtT!i0u~hW}u|00W9YSr{1@SQvCb0wA>v%nBa6?))=2
    j#jeJ<$W6!S$=vG=3s*2Wu3C5I!M+a(XH6zEFjxZs9OxeQ
    
    diff --git a/metrics-complete-report-initial-htmlReport/index.html b/metrics-complete-report-initial-htmlReport/index.html
    deleted file mode 100644
    index db746ecdca..0000000000
    --- a/metrics-complete-report-initial-htmlReport/index.html
    +++ /dev/null
    @@ -1,1195 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.6%
    -  </span>
    -  <span class="absValue">
    -    (330/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.5%
    -  </span>
    -  <span class="absValue">
    -    (1553/2142)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76%
    -  </span>
    -  <span class="absValue">
    -    (5218/6863)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-report-initial-htmlReport/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index b314390b24..0000000000
    --- a/metrics-complete-report-initial-htmlReport/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,1195 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.6%
    -  </span>
    -  <span class="absValue">
    -    (330/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.5%
    -  </span>
    -  <span class="absValue">
    -    (1553/2142)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76%
    -  </span>
    -  <span class="absValue">
    -    (5218/6863)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_BLOCK.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_BLOCK.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_BLOCK.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_BLOCK.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_BLOCK.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_BLOCK.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_BLOCK.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_BLOCK.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_BLOCK.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_BLOCK.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_BLOCK.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_BLOCK.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_BLOCK.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_BLOCK.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_BLOCK.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_BLOCK.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_BLOCK.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_BLOCK.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_BLOCK.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_BLOCK.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_BLOCK.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_BLOCK.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_BLOCK.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_BLOCK.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-report-initial-htmlReport/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 6db459fee4..0000000000
    --- a/metrics-complete-report-initial-htmlReport/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,1195 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.6%
    -  </span>
    -  <span class="absValue">
    -    (330/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.5%
    -  </span>
    -  <span class="absValue">
    -    (1553/2142)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76%
    -  </span>
    -  <span class="absValue">
    -    (5218/6863)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_BLOCK_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_BLOCK_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-report-initial-htmlReport/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index b884de26ce..0000000000
    --- a/metrics-complete-report-initial-htmlReport/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,1195 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.6%
    -  </span>
    -  <span class="absValue">
    -    (330/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.5%
    -  </span>
    -  <span class="absValue">
    -    (1553/2142)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76%
    -  </span>
    -  <span class="absValue">
    -    (5218/6863)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_CLASS.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_CLASS.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_CLASS.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_CLASS.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_CLASS.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_CLASS.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_CLASS.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_CLASS.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_CLASS.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_CLASS.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_CLASS.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_CLASS.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_CLASS.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_CLASS.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_CLASS.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_CLASS.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_CLASS.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_CLASS.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_CLASS.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_CLASS.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_CLASS.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_CLASS.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_CLASS.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_CLASS.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_CLASS.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_CLASS.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_CLASS.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_CLASS.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_CLASS.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-report-initial-htmlReport/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 3defd461fb..0000000000
    --- a/metrics-complete-report-initial-htmlReport/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,1195 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.6%
    -  </span>
    -  <span class="absValue">
    -    (330/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.5%
    -  </span>
    -  <span class="absValue">
    -    (1553/2142)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76%
    -  </span>
    -  <span class="absValue">
    -    (5218/6863)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_CLASS_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_CLASS_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-report-initial-htmlReport/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 3dbc5f7744..0000000000
    --- a/metrics-complete-report-initial-htmlReport/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,1195 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.6%
    -  </span>
    -  <span class="absValue">
    -    (330/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.5%
    -  </span>
    -  <span class="absValue">
    -    (1553/2142)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76%
    -  </span>
    -  <span class="absValue">
    -    (5218/6863)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_LINE.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_LINE.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_LINE.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_LINE.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_LINE.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_LINE.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_LINE.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_LINE.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_LINE.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_LINE.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_LINE.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_LINE.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_LINE.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_LINE.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_LINE.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_LINE.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_LINE.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_LINE.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_LINE.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_LINE.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_LINE.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_LINE.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_LINE.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_LINE.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_LINE.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_LINE.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_LINE.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_LINE.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_LINE.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_LINE.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-report-initial-htmlReport/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 347baad3a4..0000000000
    --- a/metrics-complete-report-initial-htmlReport/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,1195 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.6%
    -  </span>
    -  <span class="absValue">
    -    (330/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.5%
    -  </span>
    -  <span class="absValue">
    -    (1553/2142)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76%
    -  </span>
    -  <span class="absValue">
    -    (5218/6863)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_LINE_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_LINE_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_LINE_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-report-initial-htmlReport/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index f0935e85e4..0000000000
    --- a/metrics-complete-report-initial-htmlReport/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,1195 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.6%
    -  </span>
    -  <span class="absValue">
    -    (330/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.5%
    -  </span>
    -  <span class="absValue">
    -    (1553/2142)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76%
    -  </span>
    -  <span class="absValue">
    -    (5218/6863)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_METHOD.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_METHOD.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_METHOD.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_METHOD.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_METHOD.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_METHOD.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_METHOD.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_METHOD.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_METHOD.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_METHOD.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_METHOD.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_METHOD.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_METHOD.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_METHOD.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_METHOD.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_METHOD.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_METHOD.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_METHOD.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_METHOD.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_METHOD.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_METHOD.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_METHOD.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_METHOD.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_METHOD.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_METHOD.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_METHOD.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_METHOD.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_METHOD.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_METHOD.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-report-initial-htmlReport/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 48ba6bd9fa..0000000000
    --- a/metrics-complete-report-initial-htmlReport/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,1195 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.6%
    -  </span>
    -  <span class="absValue">
    -    (330/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.5%
    -  </span>
    -  <span class="absValue">
    -    (1553/2142)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76%
    -  </span>
    -  <span class="absValue">
    -    (5218/6863)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_METHOD_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_METHOD_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-report-initial-htmlReport/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index d2ef3d8aba..0000000000
    --- a/metrics-complete-report-initial-htmlReport/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,1195 +0,0 @@
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Summary</title>
    -  <style type="text/css">
    -    @import "./css/coverage.css";
    -    @import "./css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="./js/highlight.min.js"></script>
    -  <script type="text/javascript" src="./js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     all classes
    -</div>
    -
    -<h1>Overall Coverage Summary </h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">all classes</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.6%
    -  </span>
    -  <span class="absValue">
    -    (330/381)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.5%
    -  </span>
    -  <span class="absValue">
    -    (1553/2142)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76%
    -  </span>
    -  <span class="absValue">
    -    (5218/6863)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<h2>Coverage Breakdown</h2>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Package</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="ns-28/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-27/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlet6</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-26/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-25/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback15</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-24/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback14</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-23/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.logback13</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-22/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty12.ee10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-21/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty12</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-20/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty11</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1f/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jetty10</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1e/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.jersey31</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1d/index_SORT_BY_NAME_DESC.html">io.dropwizard.metrics.caffeine3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1c/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.servlets</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1b/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.servlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1a/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.logback</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-19/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.log4j2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-18/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-17/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.json</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-16/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jmx</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-15/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jetty9</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-14/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jersey3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-13/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jersey2</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-12/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi3.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-11/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi3</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-10/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi.strategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-f/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jdbi</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-e/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.jcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-d/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpclient5</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-c/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-b/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.httpasyncclient</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-a/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health.jvm</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-9/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-8/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.health</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-7/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-6/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.ehcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-5/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.collectd</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-4/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.caffeine</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-3/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.benchmarks</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-2/index_SORT_BY_NAME_DESC.html">com.codahale.metrics.annotation</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="ns-1/index_SORT_BY_NAME_DESC.html">com.codahale.metrics</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    -
    diff --git a/metrics-complete-report-initial-htmlReport/js/highlight.min.js b/metrics-complete-report-initial-htmlReport/js/highlight.min.js
    deleted file mode 100644
    index e88731520e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/js/highlight.min.js
    +++ /dev/null
    @@ -1,1388 +0,0 @@
    -/*
    -  Highlight.js 10.7.2 (00233d63)
    -  License: BSD-3-Clause
    -  Copyright (c) 2006-2021, Ivan Sagalaev
    -
    -  BSD 3-Clause License
    -
    -  Copyright (c) 2006-2021, Ivan Sagalaev.
    -  All rights reserved.
    -
    -  Redistribution and use in source and binary forms, with or without
    -  modification, are permitted provided that the following conditions are met:
    -
    -  * Redistributions of source code must retain the above copyright notice, this
    -    list of conditions and the following disclaimer.
    -
    -  * Redistributions in binary form must reproduce the above copyright notice,
    -    this list of conditions and the following disclaimer in the documentation
    -    and/or other materials provided with the distribution.
    -
    -  * Neither the name of the copyright holder nor the names of its
    -    contributors may be used to endorse or promote products derived from
    -    this software without specific prior written permission.
    -
    -  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    -  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
    -  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
    -  DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
    -  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
    -  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
    -  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
    -  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
    -  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
    -  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    -*/
    -var hljs=function(){"use strict";function e(t){
    -return t instanceof Map?t.clear=t.delete=t.set=()=>{
    -throw Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=()=>{
    -throw Error("set is read-only")
    -}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach((n=>{var i=t[n]
    -;"object"!=typeof i||Object.isFrozen(i)||e(i)})),t}var t=e,n=e;t.default=n
    -;class i{constructor(e){
    -void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1}
    -ignoreMatch(){this.isMatchIgnored=!0}}function s(e){
    -return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")
    -}function a(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t]
    -;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const r=e=>!!e.kind
    -;class l{constructor(e,t){
    -this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){
    -this.buffer+=s(e)}openNode(e){if(!r(e))return;let t=e.kind
    -;e.sublanguage||(t=`${this.classPrefix}${t}`),this.span(t)}closeNode(e){
    -r(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){
    -this.buffer+=`<span class="${e}">`}}class o{constructor(){this.rootNode={
    -children:[]},this.stack=[this.rootNode]}get top(){
    -return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){
    -this.top.children.push(e)}openNode(e){const t={kind:e,children:[]}
    -;this.add(t),this.stack.push(t)}closeNode(){
    -if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){
    -for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
    -walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){
    -return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t),
    -t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){
    -"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{
    -o._collapse(e)})))}}class c extends o{constructor(e){super(),this.options=e}
    -addKeyword(e,t){""!==e&&(this.openNode(t),this.addText(e),this.closeNode())}
    -addText(e){""!==e&&this.add(e)}addSublanguage(e,t){const n=e.root
    -;n.kind=t,n.sublanguage=!0,this.add(n)}toHTML(){
    -return new l(this,this.options).value()}finalize(){return!0}}function g(e){
    -return e?"string"==typeof e?e:e.source:null}
    -const u=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./,h="[a-zA-Z]\\w*",d="[a-zA-Z_]\\w*",f="\\b\\d+(\\.\\d+)?",p="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",m="\\b(0b[01]+)",b={
    -begin:"\\\\[\\s\\S]",relevance:0},E={className:"string",begin:"'",end:"'",
    -illegal:"\\n",contains:[b]},x={className:"string",begin:'"',end:'"',
    -illegal:"\\n",contains:[b]},v={
    -begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
    -},w=(e,t,n={})=>{const i=a({className:"comment",begin:e,end:t,contains:[]},n)
    -;return i.contains.push(v),i.contains.push({className:"doctag",
    -begin:"(?:TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):",relevance:0}),i
    -},y=w("//","$"),N=w("/\\*","\\*/"),R=w("#","$");var _=Object.freeze({
    -__proto__:null,MATCH_NOTHING_RE:/\b\B/,IDENT_RE:h,UNDERSCORE_IDENT_RE:d,
    -NUMBER_RE:f,C_NUMBER_RE:p,BINARY_NUMBER_RE:m,
    -RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",
    -SHEBANG:(e={})=>{const t=/^#![ ]*\//
    -;return e.binary&&(e.begin=((...e)=>e.map((e=>g(e))).join(""))(t,/.*\b/,e.binary,/\b.*/)),
    -a({className:"meta",begin:t,end:/$/,relevance:0,"on:begin":(e,t)=>{
    -0!==e.index&&t.ignoreMatch()}},e)},BACKSLASH_ESCAPE:b,APOS_STRING_MODE:E,
    -QUOTE_STRING_MODE:x,PHRASAL_WORDS_MODE:v,COMMENT:w,C_LINE_COMMENT_MODE:y,
    -C_BLOCK_COMMENT_MODE:N,HASH_COMMENT_MODE:R,NUMBER_MODE:{className:"number",
    -begin:f,relevance:0},C_NUMBER_MODE:{className:"number",begin:p,relevance:0},
    -BINARY_NUMBER_MODE:{className:"number",begin:m,relevance:0},CSS_NUMBER_MODE:{
    -className:"number",
    -begin:f+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
    -relevance:0},REGEXP_MODE:{begin:/(?=\/[^/\n]*\/)/,contains:[{className:"regexp",
    -begin:/\//,end:/\/[gimuy]*/,illegal:/\n/,contains:[b,{begin:/\[/,end:/\]/,
    -relevance:0,contains:[b]}]}]},TITLE_MODE:{className:"title",begin:h,relevance:0
    -},UNDERSCORE_TITLE_MODE:{className:"title",begin:d,relevance:0},METHOD_GUARD:{
    -begin:"\\.\\s*[a-zA-Z_]\\w*",relevance:0},END_SAME_AS_BEGIN:e=>Object.assign(e,{
    -"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{
    -t.data._beginMatch!==e[1]&&t.ignoreMatch()}})});function k(e,t){
    -"."===e.input[e.index-1]&&t.ignoreMatch()}function M(e,t){
    -t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",
    -e.__beforeBegin=k,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,
    -void 0===e.relevance&&(e.relevance=0))}function O(e,t){
    -Array.isArray(e.illegal)&&(e.illegal=((...e)=>"("+e.map((e=>g(e))).join("|")+")")(...e.illegal))
    -}function A(e,t){if(e.match){
    -if(e.begin||e.end)throw Error("begin & end are not supported with match")
    -;e.begin=e.match,delete e.match}}function L(e,t){
    -void 0===e.relevance&&(e.relevance=1)}
    -const I=["of","and","for","in","not","or","if","then","parent","list","value"]
    -;function j(e,t,n="keyword"){const i={}
    -;return"string"==typeof e?s(n,e.split(" ")):Array.isArray(e)?s(n,e):Object.keys(e).forEach((n=>{
    -Object.assign(i,j(e[n],t,n))})),i;function s(e,n){
    -t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|")
    -;i[n[0]]=[e,B(n[0],n[1])]}))}}function B(e,t){
    -return t?Number(t):(e=>I.includes(e.toLowerCase()))(e)?0:1}
    -function T(e,{plugins:t}){function n(t,n){
    -return RegExp(g(t),"m"+(e.case_insensitive?"i":"")+(n?"g":""))}class i{
    -constructor(){
    -this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0}
    -addRule(e,t){
    -t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),
    -this.matchAt+=(e=>RegExp(e.toString()+"|").exec("").length-1)(e)+1}compile(){
    -0===this.regexes.length&&(this.exec=()=>null)
    -;const e=this.regexes.map((e=>e[1]));this.matcherRe=n(((e,t="|")=>{let n=0
    -;return e.map((e=>{n+=1;const t=n;let i=g(e),s="";for(;i.length>0;){
    -const e=u.exec(i);if(!e){s+=i;break}
    -s+=i.substring(0,e.index),i=i.substring(e.index+e[0].length),
    -"\\"===e[0][0]&&e[1]?s+="\\"+(Number(e[1])+t):(s+=e[0],"("===e[0]&&n++)}return s
    -})).map((e=>`(${e})`)).join(t)})(e),!0),this.lastIndex=0}exec(e){
    -this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e)
    -;if(!t)return null
    -;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n]
    -;return t.splice(0,n),Object.assign(t,i)}}class s{constructor(){
    -this.rules=[],this.multiRegexes=[],
    -this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){
    -if(this.multiRegexes[e])return this.multiRegexes[e];const t=new i
    -;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))),
    -t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){
    -return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){
    -this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){
    -const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex
    -;let n=t.exec(e)
    -;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{
    -const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)}
    -return n&&(this.regexIndex+=n.position+1,
    -this.regexIndex===this.count&&this.considerAll()),n}}
    -if(e.compilerExtensions||(e.compilerExtensions=[]),
    -e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.")
    -;return e.classNameAliases=a(e.classNameAliases||{}),function t(i,r){const l=i
    -;if(i.isCompiled)return l
    -;[A].forEach((e=>e(i,r))),e.compilerExtensions.forEach((e=>e(i,r))),
    -i.__beforeBegin=null,[M,O,L].forEach((e=>e(i,r))),i.isCompiled=!0;let o=null
    -;if("object"==typeof i.keywords&&(o=i.keywords.$pattern,
    -delete i.keywords.$pattern),
    -i.keywords&&(i.keywords=j(i.keywords,e.case_insensitive)),
    -i.lexemes&&o)throw Error("ERR: Prefer `keywords.$pattern` to `mode.lexemes`, BOTH are not allowed. (see mode reference) ")
    -;return o=o||i.lexemes||/\w+/,
    -l.keywordPatternRe=n(o,!0),r&&(i.begin||(i.begin=/\B|\b/),
    -l.beginRe=n(i.begin),i.endSameAsBegin&&(i.end=i.begin),
    -i.end||i.endsWithParent||(i.end=/\B|\b/),
    -i.end&&(l.endRe=n(i.end)),l.terminatorEnd=g(i.end)||"",
    -i.endsWithParent&&r.terminatorEnd&&(l.terminatorEnd+=(i.end?"|":"")+r.terminatorEnd)),
    -i.illegal&&(l.illegalRe=n(i.illegal)),
    -i.contains||(i.contains=[]),i.contains=[].concat(...i.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>a(e,{
    -variants:null},t)))),e.cachedVariants?e.cachedVariants:S(e)?a(e,{
    -starts:e.starts?a(e.starts):null
    -}):Object.isFrozen(e)?a(e):e))("self"===e?i:e)))),i.contains.forEach((e=>{t(e,l)
    -})),i.starts&&t(i.starts,r),l.matcher=(e=>{const t=new s
    -;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin"
    -}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"
    -}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(l),l}(e)}function S(e){
    -return!!e&&(e.endsWithParent||S(e.starts))}function P(e){const t={
    -props:["language","code","autodetect"],data:()=>({detectedLanguage:"",
    -unknownLanguage:!1}),computed:{className(){
    -return this.unknownLanguage?"":"hljs "+this.detectedLanguage},highlighted(){
    -if(!this.autoDetect&&!e.getLanguage(this.language))return console.warn(`The language "${this.language}" you specified could not be found.`),
    -this.unknownLanguage=!0,s(this.code);let t={}
    -;return this.autoDetect?(t=e.highlightAuto(this.code),
    -this.detectedLanguage=t.language):(t=e.highlight(this.language,this.code,this.ignoreIllegals),
    -this.detectedLanguage=this.language),t.value},autoDetect(){
    -return!(this.language&&(e=this.autodetect,!e&&""!==e));var e},
    -ignoreIllegals:()=>!0},render(e){return e("pre",{},[e("code",{
    -class:this.className,domProps:{innerHTML:this.highlighted}})])}};return{
    -Component:t,VuePlugin:{install(e){e.component("highlightjs",t)}}}}const D={
    -"after:highlightElement":({el:e,result:t,text:n})=>{const i=H(e)
    -;if(!i.length)return;const a=document.createElement("div")
    -;a.innerHTML=t.value,t.value=((e,t,n)=>{let i=0,a="";const r=[];function l(){
    -return e.length&&t.length?e[0].offset!==t[0].offset?e[0].offset<t[0].offset?e:t:"start"===t[0].event?e:t:e.length?e:t
    -}function o(e){a+="<"+C(e)+[].map.call(e.attributes,(function(e){
    -return" "+e.nodeName+'="'+s(e.value)+'"'})).join("")+">"}function c(e){
    -a+="</"+C(e)+">"}function g(e){("start"===e.event?o:c)(e.node)}
    -for(;e.length||t.length;){let t=l()
    -;if(a+=s(n.substring(i,t[0].offset)),i=t[0].offset,t===e){r.reverse().forEach(c)
    -;do{g(t.splice(0,1)[0]),t=l()}while(t===e&&t.length&&t[0].offset===i)
    -;r.reverse().forEach(o)
    -}else"start"===t[0].event?r.push(t[0].node):r.pop(),g(t.splice(0,1)[0])}
    -return a+s(n.substr(i))})(i,H(a),n)}};function C(e){
    -return e.nodeName.toLowerCase()}function H(e){const t=[];return function e(n,i){
    -for(let s=n.firstChild;s;s=s.nextSibling)3===s.nodeType?i+=s.nodeValue.length:1===s.nodeType&&(t.push({
    -event:"start",offset:i,node:s}),i=e(s,i),C(s).match(/br|hr|img|input/)||t.push({
    -event:"stop",offset:i,node:s}));return i}(e,0),t}const $={},U=e=>{
    -console.error(e)},z=(e,...t)=>{console.log("WARN: "+e,...t)},K=(e,t)=>{
    -$[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),$[`${e}/${t}`]=!0)
    -},G=s,V=a,W=Symbol("nomatch");return(e=>{
    -const n=Object.create(null),s=Object.create(null),a=[];let r=!0
    -;const l=/(^(<[^>]+>|\t|)+|\n)/gm,o="Could not find the language '{}', did you forget to load/include a language module?",g={
    -disableAutodetect:!0,name:"Plain text",contains:[]};let u={
    -noHighlightRe:/^(no-?highlight)$/i,
    -languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",
    -tabReplace:null,useBR:!1,languages:null,__emitter:c};function h(e){
    -return u.noHighlightRe.test(e)}function d(e,t,n,i){let s="",a=""
    -;"object"==typeof t?(s=e,
    -n=t.ignoreIllegals,a=t.language,i=void 0):(K("10.7.0","highlight(lang, code, ...args) has been deprecated."),
    -K("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),
    -a=e,s=t);const r={code:s,language:a};M("before:highlight",r)
    -;const l=r.result?r.result:f(r.language,r.code,n,i)
    -;return l.code=r.code,M("after:highlight",l),l}function f(e,t,s,l){
    -function c(e,t){const n=v.case_insensitive?t[0].toLowerCase():t[0]
    -;return Object.prototype.hasOwnProperty.call(e.keywords,n)&&e.keywords[n]}
    -function g(){null!=R.subLanguage?(()=>{if(""===M)return;let e=null
    -;if("string"==typeof R.subLanguage){
    -if(!n[R.subLanguage])return void k.addText(M)
    -;e=f(R.subLanguage,M,!0,_[R.subLanguage]),_[R.subLanguage]=e.top
    -}else e=p(M,R.subLanguage.length?R.subLanguage:null)
    -;R.relevance>0&&(O+=e.relevance),k.addSublanguage(e.emitter,e.language)
    -})():(()=>{if(!R.keywords)return void k.addText(M);let e=0
    -;R.keywordPatternRe.lastIndex=0;let t=R.keywordPatternRe.exec(M),n="";for(;t;){
    -n+=M.substring(e,t.index);const i=c(R,t);if(i){const[e,s]=i
    -;if(k.addText(n),n="",O+=s,e.startsWith("_"))n+=t[0];else{
    -const n=v.classNameAliases[e]||e;k.addKeyword(t[0],n)}}else n+=t[0]
    -;e=R.keywordPatternRe.lastIndex,t=R.keywordPatternRe.exec(M)}
    -n+=M.substr(e),k.addText(n)})(),M=""}function h(e){
    -return e.className&&k.openNode(v.classNameAliases[e.className]||e.className),
    -R=Object.create(e,{parent:{value:R}}),R}function d(e,t,n){let s=((e,t)=>{
    -const n=e&&e.exec(t);return n&&0===n.index})(e.endRe,n);if(s){if(e["on:end"]){
    -const n=new i(e);e["on:end"](t,n),n.isMatchIgnored&&(s=!1)}if(s){
    -for(;e.endsParent&&e.parent;)e=e.parent;return e}}
    -if(e.endsWithParent)return d(e.parent,t,n)}function m(e){
    -return 0===R.matcher.regexIndex?(M+=e[0],1):(I=!0,0)}function b(e){
    -const n=e[0],i=t.substr(e.index),s=d(R,e,i);if(!s)return W;const a=R
    -;a.skip?M+=n:(a.returnEnd||a.excludeEnd||(M+=n),g(),a.excludeEnd&&(M=n));do{
    -R.className&&k.closeNode(),R.skip||R.subLanguage||(O+=R.relevance),R=R.parent
    -}while(R!==s.parent)
    -;return s.starts&&(s.endSameAsBegin&&(s.starts.endRe=s.endRe),
    -h(s.starts)),a.returnEnd?0:n.length}let E={};function x(n,a){const l=a&&a[0]
    -;if(M+=n,null==l)return g(),0
    -;if("begin"===E.type&&"end"===a.type&&E.index===a.index&&""===l){
    -if(M+=t.slice(a.index,a.index+1),!r){const t=Error("0 width match regex")
    -;throw t.languageName=e,t.badRule=E.rule,t}return 1}
    -if(E=a,"begin"===a.type)return function(e){
    -const t=e[0],n=e.rule,s=new i(n),a=[n.__beforeBegin,n["on:begin"]]
    -;for(const n of a)if(n&&(n(e,s),s.isMatchIgnored))return m(t)
    -;return n&&n.endSameAsBegin&&(n.endRe=RegExp(t.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),"m")),
    -n.skip?M+=t:(n.excludeBegin&&(M+=t),
    -g(),n.returnBegin||n.excludeBegin||(M=t)),h(n),n.returnBegin?0:t.length}(a)
    -;if("illegal"===a.type&&!s){
    -const e=Error('Illegal lexeme "'+l+'" for mode "'+(R.className||"<unnamed>")+'"')
    -;throw e.mode=R,e}if("end"===a.type){const e=b(a);if(e!==W)return e}
    -if("illegal"===a.type&&""===l)return 1
    -;if(L>1e5&&L>3*a.index)throw Error("potential infinite loop, way more iterations than matches")
    -;return M+=l,l.length}const v=N(e)
    -;if(!v)throw U(o.replace("{}",e)),Error('Unknown language: "'+e+'"')
    -;const w=T(v,{plugins:a});let y="",R=l||w;const _={},k=new u.__emitter(u);(()=>{
    -const e=[];for(let t=R;t!==v;t=t.parent)t.className&&e.unshift(t.className)
    -;e.forEach((e=>k.openNode(e)))})();let M="",O=0,A=0,L=0,I=!1;try{
    -for(R.matcher.considerAll();;){
    -L++,I?I=!1:R.matcher.considerAll(),R.matcher.lastIndex=A
    -;const e=R.matcher.exec(t);if(!e)break;const n=x(t.substring(A,e.index),e)
    -;A=e.index+n}return x(t.substr(A)),k.closeAllNodes(),k.finalize(),y=k.toHTML(),{
    -relevance:Math.floor(O),value:y,language:e,illegal:!1,emitter:k,top:R}}catch(n){
    -if(n.message&&n.message.includes("Illegal"))return{illegal:!0,illegalBy:{
    -msg:n.message,context:t.slice(A-100,A+100),mode:n.mode},sofar:y,relevance:0,
    -value:G(t),emitter:k};if(r)return{illegal:!1,relevance:0,value:G(t),emitter:k,
    -language:e,top:R,errorRaised:n};throw n}}function p(e,t){
    -t=t||u.languages||Object.keys(n);const i=(e=>{const t={relevance:0,
    -emitter:new u.__emitter(u),value:G(e),illegal:!1,top:g}
    -;return t.emitter.addText(e),t})(e),s=t.filter(N).filter(k).map((t=>f(t,e,!1)))
    -;s.unshift(i);const a=s.sort(((e,t)=>{
    -if(e.relevance!==t.relevance)return t.relevance-e.relevance
    -;if(e.language&&t.language){if(N(e.language).supersetOf===t.language)return 1
    -;if(N(t.language).supersetOf===e.language)return-1}return 0})),[r,l]=a,o=r
    -;return o.second_best=l,o}const m={"before:highlightElement":({el:e})=>{
    -u.useBR&&(e.innerHTML=e.innerHTML.replace(/\n/g,"").replace(/<br[ /]*>/g,"\n"))
    -},"after:highlightElement":({result:e})=>{
    -u.useBR&&(e.value=e.value.replace(/\n/g,"<br>"))}},b=/^(<[^>]+>|\t)+/gm,E={
    -"after:highlightElement":({result:e})=>{
    -u.tabReplace&&(e.value=e.value.replace(b,(e=>e.replace(/\t/g,u.tabReplace))))}}
    -;function x(e){let t=null;const n=(e=>{let t=e.className+" "
    -;t+=e.parentNode?e.parentNode.className:"";const n=u.languageDetectRe.exec(t)
    -;if(n){const t=N(n[1])
    -;return t||(z(o.replace("{}",n[1])),z("Falling back to no-highlight mode for this block.",e)),
    -t?n[1]:"no-highlight"}return t.split(/\s+/).find((e=>h(e)||N(e)))})(e)
    -;if(h(n))return;M("before:highlightElement",{el:e,language:n}),t=e
    -;const i=t.textContent,a=n?d(i,{language:n,ignoreIllegals:!0}):p(i)
    -;M("after:highlightElement",{el:e,result:a,text:i
    -}),e.innerHTML=a.value,((e,t,n)=>{const i=t?s[t]:n
    -;e.classList.add("hljs"),i&&e.classList.add(i)})(e,n,a.language),e.result={
    -language:a.language,re:a.relevance,relavance:a.relevance
    -},a.second_best&&(e.second_best={language:a.second_best.language,
    -re:a.second_best.relevance,relavance:a.second_best.relevance})}const v=()=>{
    -v.called||(v.called=!0,
    -K("10.6.0","initHighlighting() is deprecated.  Use highlightAll() instead."),
    -document.querySelectorAll("pre code").forEach(x))};let w=!1;function y(){
    -"loading"!==document.readyState?document.querySelectorAll("pre code").forEach(x):w=!0
    -}function N(e){return e=(e||"").toLowerCase(),n[e]||n[s[e]]}
    -function R(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{
    -s[e.toLowerCase()]=t}))}function k(e){const t=N(e)
    -;return t&&!t.disableAutodetect}function M(e,t){const n=e;a.forEach((e=>{
    -e[n]&&e[n](t)}))}
    -"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{
    -w&&y()}),!1),Object.assign(e,{highlight:d,highlightAuto:p,highlightAll:y,
    -fixMarkup:e=>{
    -return K("10.2.0","fixMarkup will be removed entirely in v11.0"),K("10.2.0","Please see https://github.com/highlightjs/highlight.js/issues/2534"),
    -t=e,
    -u.tabReplace||u.useBR?t.replace(l,(e=>"\n"===e?u.useBR?"<br>":e:u.tabReplace?e.replace(/\t/g,u.tabReplace):e)):t
    -;var t},highlightElement:x,
    -highlightBlock:e=>(K("10.7.0","highlightBlock will be removed entirely in v12.0"),
    -K("10.7.0","Please use highlightElement now."),x(e)),configure:e=>{
    -e.useBR&&(K("10.3.0","'useBR' will be removed entirely in v11.0"),
    -K("10.3.0","Please see https://github.com/highlightjs/highlight.js/issues/2559")),
    -u=V(u,e)},initHighlighting:v,initHighlightingOnLoad:()=>{
    -K("10.6.0","initHighlightingOnLoad() is deprecated.  Use highlightAll() instead."),
    -w=!0},registerLanguage:(t,i)=>{let s=null;try{s=i(e)}catch(e){
    -if(U("Language definition for '{}' could not be registered.".replace("{}",t)),
    -!r)throw e;U(e),s=g}
    -s.name||(s.name=t),n[t]=s,s.rawDefinition=i.bind(null,e),s.aliases&&R(s.aliases,{
    -languageName:t})},unregisterLanguage:e=>{delete n[e]
    -;for(const t of Object.keys(s))s[t]===e&&delete s[t]},
    -listLanguages:()=>Object.keys(n),getLanguage:N,registerAliases:R,
    -requireLanguage:e=>{
    -K("10.4.0","requireLanguage will be removed entirely in v11."),
    -K("10.4.0","Please see https://github.com/highlightjs/highlight.js/pull/2844")
    -;const t=N(e);if(t)return t
    -;throw Error("The '{}' language is required, but not loaded.".replace("{}",e))},
    -autoDetection:k,inherit:V,addPlugin:e=>{(e=>{
    -e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{
    -e["before:highlightBlock"](Object.assign({block:t.el},t))
    -}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{
    -e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),a.push(e)},
    -vuePlugin:P(e).VuePlugin}),e.debugMode=()=>{r=!1},e.safeMode=()=>{r=!0
    -},e.versionString="10.7.2";for(const e in _)"object"==typeof _[e]&&t(_[e])
    -;return Object.assign(e,_),e.addPlugin(m),e.addPlugin(D),e.addPlugin(E),e})({})
    -}();"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);
    -hljs.registerLanguage("apache",(()=>{"use strict";return e=>{const n={
    -className:"number",begin:/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}(:\d{1,5})?/}
    -;return{name:"Apache config",aliases:["apacheconf"],case_insensitive:!0,
    -contains:[e.HASH_COMMENT_MODE,{className:"section",begin:/<\/?/,end:/>/,
    -contains:[n,{className:"number",begin:/:\d{1,5}/
    -},e.inherit(e.QUOTE_STRING_MODE,{relevance:0})]},{className:"attribute",
    -begin:/\w+/,relevance:0,keywords:{
    -nomarkup:"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername"
    -},starts:{end:/$/,relevance:0,keywords:{literal:"on off all deny allow"},
    -contains:[{className:"meta",begin:/\s\[/,end:/\]$/},{className:"variable",
    -begin:/[\$%]\{/,end:/\}/,contains:["self",{className:"number",begin:/[$%]\d+/}]
    -},n,{className:"number",begin:/\d+/},e.QUOTE_STRING_MODE]}}],illegal:/\S/}}
    -})());
    -hljs.registerLanguage("bash",(()=>{"use strict";function e(...e){
    -return e.map((e=>{return(s=e)?"string"==typeof s?s:s.source:null;var s
    -})).join("")}return s=>{const n={},t={begin:/\$\{/,end:/\}/,contains:["self",{
    -begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{
    -begin:e(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},t]});const a={
    -className:"subst",begin:/\$\(/,end:/\)/,contains:[s.BACKSLASH_ESCAPE]},i={
    -begin:/<<-?\s*(?=\w+)/,starts:{contains:[s.END_SAME_AS_BEGIN({begin:/(\w+)/,
    -end:/(\w+)/,className:"string"})]}},c={className:"string",begin:/"/,end:/"/,
    -contains:[s.BACKSLASH_ESCAPE,n,a]};a.contains.push(c);const o={begin:/\$\(\(/,
    -end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},s.NUMBER_MODE,n]
    -},r=s.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10
    -}),l={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,
    -contains:[s.inherit(s.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{
    -name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z._-]+\b/,
    -keyword:"if then else elif fi for while in do done case esac function",
    -literal:"true false",
    -built_in:"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp"
    -},contains:[r,s.SHEBANG(),l,o,s.HASH_COMMENT_MODE,i,c,{className:"",begin:/\\"/
    -},{className:"string",begin:/'/,end:/'/},n]}}})());
    -hljs.registerLanguage("c",(()=>{"use strict";function e(e){
    -return((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(",e,")?")
    -}return t=>{const n=t.COMMENT("//","$",{contains:[{begin:/\\\n/}]
    -}),r="[a-zA-Z_]\\w*::",a="(decltype\\(auto\\)|"+e(r)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",i={
    -className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},s={className:"string",
    -variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",
    -contains:[t.BACKSLASH_ESCAPE]},{
    -begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
    -end:"'",illegal:"."},t.END_SAME_AS_BEGIN({
    -begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={
    -className:"number",variants:[{begin:"\\b(0b[01']+)"},{
    -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
    -},{
    -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    -}],relevance:0},c={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
    -"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
    -},contains:[{begin:/\\\n/,relevance:0},t.inherit(s,{className:"meta-string"}),{
    -className:"meta-string",begin:/<.*?>/},n,t.C_BLOCK_COMMENT_MODE]},l={
    -className:"title",begin:e(r)+t.IDENT_RE,relevance:0
    -},d=e(r)+t.IDENT_RE+"\\s*\\(",u={
    -keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",
    -built_in:"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set pair bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap priority_queue make_pair array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary",
    -literal:"true false nullptr NULL"},m=[c,i,n,t.C_BLOCK_COMMENT_MODE,o,s],p={
    -variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{
    -beginKeywords:"new throw return else",end:/;/}],keywords:u,contains:m.concat([{
    -begin:/\(/,end:/\)/,keywords:u,contains:m.concat(["self"]),relevance:0}]),
    -relevance:0},_={className:"function",begin:"("+a+"[\\*&\\s]+)+"+d,
    -returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:u,illegal:/[^\w\s\*&:<>.]/,
    -contains:[{begin:"decltype\\(auto\\)",keywords:u,relevance:0},{begin:d,
    -returnBegin:!0,contains:[l],relevance:0},{className:"params",begin:/\(/,
    -end:/\)/,keywords:u,relevance:0,contains:[n,t.C_BLOCK_COMMENT_MODE,s,o,i,{
    -begin:/\(/,end:/\)/,keywords:u,relevance:0,
    -contains:["self",n,t.C_BLOCK_COMMENT_MODE,s,o,i]}]
    -},i,n,t.C_BLOCK_COMMENT_MODE,c]};return{name:"C",aliases:["h"],keywords:u,
    -disableAutodetect:!0,illegal:"</",contains:[].concat(p,_,m,[c,{
    -begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",
    -end:">",keywords:u,contains:["self",i]},{begin:t.IDENT_RE+"::",keywords:u},{
    -className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,
    -contains:[{beginKeywords:"final class struct"},t.TITLE_MODE]}]),exports:{
    -preprocessor:c,strings:s,keywords:u}}}})());
    -hljs.registerLanguage("coffeescript",(()=>{"use strict"
    -;const e=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],n=["true","false","null","undefined","NaN","Infinity"],a=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
    -;return r=>{const t={
    -keyword:e.concat(["then","unless","until","loop","by","when","and","or","is","isnt","not"]).filter((i=["var","const","let","function","static"],
    -e=>!i.includes(e))),literal:n.concat(["yes","no","on","off"]),
    -built_in:a.concat(["npm","print"])};var i;const s="[A-Za-z$_][0-9A-Za-z$_]*",o={
    -className:"subst",begin:/#\{/,end:/\}/,keywords:t
    -},c=[r.BINARY_NUMBER_MODE,r.inherit(r.C_NUMBER_MODE,{starts:{end:"(\\s*/)?",
    -relevance:0}}),{className:"string",variants:[{begin:/'''/,end:/'''/,
    -contains:[r.BACKSLASH_ESCAPE]},{begin:/'/,end:/'/,contains:[r.BACKSLASH_ESCAPE]
    -},{begin:/"""/,end:/"""/,contains:[r.BACKSLASH_ESCAPE,o]},{begin:/"/,end:/"/,
    -contains:[r.BACKSLASH_ESCAPE,o]}]},{className:"regexp",variants:[{begin:"///",
    -end:"///",contains:[o,r.HASH_COMMENT_MODE]},{begin:"//[gim]{0,3}(?=\\W)",
    -relevance:0},{begin:/\/(?![ *]).*?(?![\\]).\/[gim]{0,3}(?=\W)/}]},{begin:"@"+s
    -},{subLanguage:"javascript",excludeBegin:!0,excludeEnd:!0,variants:[{
    -begin:"```",end:"```"},{begin:"`",end:"`"}]}];o.contains=c
    -;const l=r.inherit(r.TITLE_MODE,{begin:s}),d="(\\(.*\\)\\s*)?\\B[-=]>",g={
    -className:"params",begin:"\\([^\\(]",returnBegin:!0,contains:[{begin:/\(/,
    -end:/\)/,keywords:t,contains:["self"].concat(c)}]};return{name:"CoffeeScript",
    -aliases:["coffee","cson","iced"],keywords:t,illegal:/\/\*/,
    -contains:c.concat([r.COMMENT("###","###"),r.HASH_COMMENT_MODE,{
    -className:"function",begin:"^\\s*"+s+"\\s*=\\s*"+d,end:"[-=]>",returnBegin:!0,
    -contains:[l,g]},{begin:/[:\(,=]\s*/,relevance:0,contains:[{className:"function",
    -begin:d,end:"[-=]>",returnBegin:!0,contains:[g]}]},{className:"class",
    -beginKeywords:"class",end:"$",illegal:/[:="\[\]]/,contains:[{
    -beginKeywords:"extends",endsWithParent:!0,illegal:/[:="\[\]]/,contains:[l]},l]
    -},{begin:s+":",end:":",returnBegin:!0,returnEnd:!0,relevance:0}])}}})());
    -hljs.registerLanguage("cpp",(()=>{"use strict";function e(e){
    -return t("(",e,")?")}function t(...e){return e.map((e=>{
    -return(t=e)?"string"==typeof t?t:t.source:null;var t})).join("")}return n=>{
    -const r=n.COMMENT("//","$",{contains:[{begin:/\\\n/}]
    -}),a="[a-zA-Z_]\\w*::",i="(decltype\\(auto\\)|"+e(a)+"[a-zA-Z_]\\w*"+e("<[^<>]+>")+")",s={
    -className:"keyword",begin:"\\b[a-z\\d_]*_t\\b"},c={className:"string",
    -variants:[{begin:'(u8?|U|L)?"',end:'"',illegal:"\\n",
    -contains:[n.BACKSLASH_ESCAPE]},{
    -begin:"(u8?|U|L)?'(\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\S)|.)",
    -end:"'",illegal:"."},n.END_SAME_AS_BEGIN({
    -begin:/(?:u8?|U|L)?R"([^()\\ ]{0,16})\(/,end:/\)([^()\\ ]{0,16})"/})]},o={
    -className:"number",variants:[{begin:"\\b(0b[01']+)"},{
    -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)((ll|LL|l|L)(u|U)?|(u|U)(ll|LL|l|L)?|f|F|b|B)"
    -},{
    -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    -}],relevance:0},l={className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,keywords:{
    -"meta-keyword":"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include"
    -},contains:[{begin:/\\\n/,relevance:0},n.inherit(c,{className:"meta-string"}),{
    -className:"meta-string",begin:/<.*?>/},r,n.C_BLOCK_COMMENT_MODE]},d={
    -className:"title",begin:e(a)+n.IDENT_RE,relevance:0
    -},u=e(a)+n.IDENT_RE+"\\s*\\(",m={
    -keyword:"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_t short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq",
    -built_in:"_Bool _Complex _Imaginary",
    -_relevance_hints:["asin","atan2","atan","calloc","ceil","cosh","cos","exit","exp","fabs","floor","fmod","fprintf","fputs","free","frexp","auto_ptr","deque","list","queue","stack","vector","map","set","pair","bitset","multiset","multimap","unordered_set","fscanf","future","isalnum","isalpha","iscntrl","isdigit","isgraph","islower","isprint","ispunct","isspace","isupper","isxdigit","tolower","toupper","labs","ldexp","log10","log","malloc","realloc","memchr","memcmp","memcpy","memset","modf","pow","printf","putchar","puts","scanf","sinh","sin","snprintf","sprintf","sqrt","sscanf","strcat","strchr","strcmp","strcpy","strcspn","strlen","strncat","strncmp","strncpy","strpbrk","strrchr","strspn","strstr","tanh","tan","unordered_map","unordered_multiset","unordered_multimap","priority_queue","make_pair","array","shared_ptr","abort","terminate","abs","acos","vfprintf","vprintf","vsprintf","endl","initializer_list","unique_ptr","complex","imaginary","std","string","wstring","cin","cout","cerr","clog","stdin","stdout","stderr","stringstream","istringstream","ostringstream"],
    -literal:"true false nullptr NULL"},p={className:"function.dispatch",relevance:0,
    -keywords:m,
    -begin:t(/\b/,/(?!decltype)/,/(?!if)/,/(?!for)/,/(?!while)/,n.IDENT_RE,(_=/\s*\(/,
    -t("(?=",_,")")))};var _;const g=[p,l,s,r,n.C_BLOCK_COMMENT_MODE,o,c],b={
    -variants:[{begin:/=/,end:/;/},{begin:/\(/,end:/\)/},{
    -beginKeywords:"new throw return else",end:/;/}],keywords:m,contains:g.concat([{
    -begin:/\(/,end:/\)/,keywords:m,contains:g.concat(["self"]),relevance:0}]),
    -relevance:0},f={className:"function",begin:"("+i+"[\\*&\\s]+)+"+u,
    -returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:m,illegal:/[^\w\s\*&:<>.]/,
    -contains:[{begin:"decltype\\(auto\\)",keywords:m,relevance:0},{begin:u,
    -returnBegin:!0,contains:[d],relevance:0},{begin:/::/,relevance:0},{begin:/:/,
    -endsWithParent:!0,contains:[c,o]},{className:"params",begin:/\(/,end:/\)/,
    -keywords:m,relevance:0,contains:[r,n.C_BLOCK_COMMENT_MODE,c,o,s,{begin:/\(/,
    -end:/\)/,keywords:m,relevance:0,contains:["self",r,n.C_BLOCK_COMMENT_MODE,c,o,s]
    -}]},s,r,n.C_BLOCK_COMMENT_MODE,l]};return{name:"C++",
    -aliases:["cc","c++","h++","hpp","hh","hxx","cxx"],keywords:m,illegal:"</",
    -classNameAliases:{"function.dispatch":"built_in"},
    -contains:[].concat(b,f,p,g,[l,{
    -begin:"\\b(deque|list|queue|priority_queue|pair|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",
    -end:">",keywords:m,contains:["self",s]},{begin:n.IDENT_RE+"::",keywords:m},{
    -className:"class",beginKeywords:"enum class struct union",end:/[{;:<>=]/,
    -contains:[{beginKeywords:"final class struct"},n.TITLE_MODE]}]),exports:{
    -preprocessor:l,strings:c,keywords:m}}}})());
    -hljs.registerLanguage("csharp",(()=>{"use strict";return e=>{const n={
    -keyword:["abstract","as","base","break","case","class","const","continue","do","else","event","explicit","extern","finally","fixed","for","foreach","goto","if","implicit","in","interface","internal","is","lock","namespace","new","operator","out","override","params","private","protected","public","readonly","record","ref","return","sealed","sizeof","stackalloc","static","struct","switch","this","throw","try","typeof","unchecked","unsafe","using","virtual","void","volatile","while"].concat(["add","alias","and","ascending","async","await","by","descending","equals","from","get","global","group","init","into","join","let","nameof","not","notnull","on","or","orderby","partial","remove","select","set","unmanaged","value|0","var","when","where","with","yield"]),
    -built_in:["bool","byte","char","decimal","delegate","double","dynamic","enum","float","int","long","nint","nuint","object","sbyte","short","string","ulong","uint","ushort"],
    -literal:["default","false","null","true"]},a=e.inherit(e.TITLE_MODE,{
    -begin:"[a-zA-Z](\\.?\\w)*"}),i={className:"number",variants:[{
    -begin:"\\b(0b[01']+)"},{
    -begin:"(-?)\\b([\\d']+(\\.[\\d']*)?|\\.[\\d']+)(u|U|l|L|ul|UL|f|F|b|B)"},{
    -begin:"(-?)(\\b0[xX][a-fA-F0-9']+|(\\b[\\d']+(\\.[\\d']*)?|\\.[\\d']+)([eE][-+]?[\\d']+)?)"
    -}],relevance:0},s={className:"string",begin:'@"',end:'"',contains:[{begin:'""'}]
    -},t=e.inherit(s,{illegal:/\n/}),r={className:"subst",begin:/\{/,end:/\}/,
    -keywords:n},l=e.inherit(r,{illegal:/\n/}),c={className:"string",begin:/\$"/,
    -end:'"',illegal:/\n/,contains:[{begin:/\{\{/},{begin:/\}\}/
    -},e.BACKSLASH_ESCAPE,l]},o={className:"string",begin:/\$@"/,end:'"',contains:[{
    -begin:/\{\{/},{begin:/\}\}/},{begin:'""'},r]},d=e.inherit(o,{illegal:/\n/,
    -contains:[{begin:/\{\{/},{begin:/\}\}/},{begin:'""'},l]})
    -;r.contains=[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.C_BLOCK_COMMENT_MODE],
    -l.contains=[d,c,t,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,i,e.inherit(e.C_BLOCK_COMMENT_MODE,{
    -illegal:/\n/})];const g={variants:[o,c,s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
    -},E={begin:"<",end:">",contains:[{beginKeywords:"in out"},a]
    -},_=e.IDENT_RE+"(<"+e.IDENT_RE+"(\\s*,\\s*"+e.IDENT_RE+")*>)?(\\[\\])?",b={
    -begin:"@"+e.IDENT_RE,relevance:0};return{name:"C#",aliases:["cs","c#"],
    -keywords:n,illegal:/::/,contains:[e.COMMENT("///","$",{returnBegin:!0,
    -contains:[{className:"doctag",variants:[{begin:"///",relevance:0},{
    -begin:"\x3c!--|--\x3e"},{begin:"</?",end:">"}]}]
    -}),e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"meta",begin:"#",
    -end:"$",keywords:{
    -"meta-keyword":"if else elif endif define undef warning error line region endregion pragma checksum"
    -}},g,i,{beginKeywords:"class interface",relevance:0,end:/[{;=]/,
    -illegal:/[^\s:,]/,contains:[{beginKeywords:"where class"
    -},a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"namespace",
    -relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
    -contains:[a,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
    -beginKeywords:"record",relevance:0,end:/[{;=]/,illegal:/[^\s:]/,
    -contains:[a,E,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"meta",
    -begin:"^\\s*\\[",excludeBegin:!0,end:"\\]",excludeEnd:!0,contains:[{
    -className:"meta-string",begin:/"/,end:/"/}]},{
    -beginKeywords:"new return throw await else",relevance:0},{className:"function",
    -begin:"("+_+"\\s+)+"+e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0,
    -end:/\s*[{;=]/,excludeEnd:!0,keywords:n,contains:[{
    -beginKeywords:"public private protected static internal protected abstract async extern override unsafe virtual new sealed partial",
    -relevance:0},{begin:e.IDENT_RE+"\\s*(<.+>\\s*)?\\(",returnBegin:!0,
    -contains:[e.TITLE_MODE,E],relevance:0},{className:"params",begin:/\(/,end:/\)/,
    -excludeBegin:!0,excludeEnd:!0,keywords:n,relevance:0,
    -contains:[g,i,e.C_BLOCK_COMMENT_MODE]
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},b]}}})());
    -hljs.registerLanguage("css",(()=>{"use strict"
    -;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse()
    -;return n=>{const a=(e=>({IMPORTANT:{className:"meta",begin:"!important"},
    -HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},
    -ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,
    -illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}
    -}))(n),l=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS",
    -case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},
    -classNameAliases:{keyframePosition:"selector-tag"},
    -contains:[n.C_BLOCK_COMMENT_MODE,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/
    -},n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0
    -},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0
    -},a.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{
    -begin:":("+i.join("|")+")"},{begin:"::("+o.join("|")+")"}]},{
    -className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{begin:":",end:"[;}]",
    -contains:[a.HEXCOLOR,a.IMPORTANT,n.CSS_NUMBER_MODE,...l,{
    -begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"
    -},contains:[{className:"string",begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]
    -},{className:"built_in",begin:/[\w-]+(?=\()/}]},{
    -begin:(s=/@/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",s,")")),
    -end:"[{;]",relevance:0,illegal:/:/,contains:[{className:"keyword",
    -begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,
    -relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",
    -attribute:t.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"
    -},...l,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",
    -begin:"\\b("+e.join("|")+")\\b"}]};var s}})());
    -hljs.registerLanguage("diff",(()=>{"use strict";return e=>({name:"Diff",
    -aliases:["patch"],contains:[{className:"meta",relevance:10,variants:[{
    -begin:/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/},{begin:/^\*\*\* +\d+,\d+ +\*\*\*\*$/},{
    -begin:/^--- +\d+,\d+ +----$/}]},{className:"comment",variants:[{begin:/Index: /,
    -end:/$/},{begin:/^index/,end:/$/},{begin:/={3,}/,end:/$/},{begin:/^-{3}/,end:/$/
    -},{begin:/^\*{3} /,end:/$/},{begin:/^\+{3}/,end:/$/},{begin:/^\*{15}$/},{
    -begin:/^diff --git/,end:/$/}]},{className:"addition",begin:/^\+/,end:/$/},{
    -className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,
    -end:/$/}]})})());
    -hljs.registerLanguage("go",(()=>{"use strict";return e=>{const n={
    -keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",
    -literal:"true false iota nil",
    -built_in:"append cap close complex copy imag len make new panic print println real recover delete"
    -};return{name:"Go",aliases:["golang"],keywords:n,illegal:"</",
    -contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",
    -variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{
    -className:"number",variants:[{begin:e.C_NUMBER_RE+"[i]",relevance:1
    -},e.C_NUMBER_MODE]},{begin:/:=/},{className:"function",beginKeywords:"func",
    -end:"\\s*(\\{|$)",excludeEnd:!0,contains:[e.TITLE_MODE,{className:"params",
    -begin:/\(/,end:/\)/,keywords:n,illegal:/["']/}]}]}}})());
    -hljs.registerLanguage("http",(()=>{"use strict";function e(...e){
    -return e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null;var n
    -})).join("")}return n=>{const a="HTTP/(2|1\\.[01])",s={className:"attribute",
    -begin:e("^",/[A-Za-z][A-Za-z0-9-]*/,"(?=\\:\\s)"),starts:{contains:[{
    -className:"punctuation",begin:/: /,relevance:0,starts:{end:"$",relevance:0}}]}
    -},t=[s,{begin:"\\n\\n",starts:{subLanguage:[],endsWithParent:!0}}];return{
    -name:"HTTP",aliases:["https"],illegal:/\S/,contains:[{begin:"^(?="+a+" \\d{3})",
    -end:/$/,contains:[{className:"meta",begin:a},{className:"number",
    -begin:"\\b\\d{3}\\b"}],starts:{end:/\b\B/,illegal:/\S/,contains:t}},{
    -begin:"(?=^[A-Z]+ (.*?) "+a+"$)",end:/$/,contains:[{className:"string",
    -begin:" ",end:" ",excludeBegin:!0,excludeEnd:!0},{className:"meta",begin:a},{
    -className:"keyword",begin:"[A-Z]+"}],starts:{end:/\b\B/,illegal:/\S/,contains:t}
    -},n.inherit(s,{relevance:0})]}}})());
    -hljs.registerLanguage("ini",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(...n){
    -return n.map((n=>e(n))).join("")}return s=>{const a={className:"number",
    -relevance:0,variants:[{begin:/([+-]+)?[\d]+_[\d_]+/},{begin:s.NUMBER_RE}]
    -},i=s.COMMENT();i.variants=[{begin:/;/,end:/$/},{begin:/#/,end:/$/}];const t={
    -className:"variable",variants:[{begin:/\$[\w\d"][\w\d_]*/},{begin:/\$\{(.*?)\}/
    -}]},r={className:"literal",begin:/\bon|off|true|false|yes|no\b/},l={
    -className:"string",contains:[s.BACKSLASH_ESCAPE],variants:[{begin:"'''",
    -end:"'''",relevance:10},{begin:'"""',end:'"""',relevance:10},{begin:'"',end:'"'
    -},{begin:"'",end:"'"}]},c={begin:/\[/,end:/\]/,contains:[i,r,t,l,a,"self"],
    -relevance:0
    -},g="("+[/[A-Za-z0-9_-]+/,/"(\\"|[^"])*"/,/'[^']*'/].map((n=>e(n))).join("|")+")"
    -;return{name:"TOML, also INI",aliases:["toml"],case_insensitive:!0,illegal:/\S/,
    -contains:[i,{className:"section",begin:/\[+/,end:/\]+/},{
    -begin:n(g,"(\\s*\\.\\s*",g,")*",n("(?=",/\s*=\s*[^#\s]/,")")),className:"attr",
    -starts:{end:/$/,contains:[i,c,r,t,l,a]}}]}}})());
    -hljs.registerLanguage("java",(()=>{"use strict"
    -;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={
    -className:"number",variants:[{
    -begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    -},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
    -begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{
    -begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    -},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{
    -begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
    -relevance:0};return e=>{
    -var n="false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do",s={
    -className:"meta",begin:"@[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*",
    -contains:[{begin:/\(/,end:/\)/,contains:["self"]}]};const r=a;return{
    -name:"Java",aliases:["jsp"],keywords:n,illegal:/<\/|#/,
    -contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{begin:/\w+@/,
    -relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{
    -begin:/import java\.[a-z]+\./,keywords:"import",relevance:2
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{
    -className:"class",beginKeywords:"class interface enum",end:/[{;=]/,
    -excludeEnd:!0,relevance:1,keywords:"class interface enum",illegal:/[:"\[\]]/,
    -contains:[{beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{
    -beginKeywords:"new throw return else",relevance:0},{className:"class",
    -begin:"record\\s+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,excludeEnd:!0,
    -end:/[{;=]/,keywords:n,contains:[{beginKeywords:"record"},{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,
    -keywords:n,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE]
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{className:"function",
    -begin:"([\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*(<[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*(\\s*,\\s*[\xc0-\u02b8a-zA-Z_$][\xc0-\u02b8a-zA-Z_$0-9]*)*>)?\\s+)+"+e.UNDERSCORE_IDENT_RE+"\\s*\\(",
    -returnBegin:!0,end:/[{;=]/,excludeEnd:!0,keywords:n,contains:[{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"params",begin:/\(/,end:/\)/,
    -keywords:n,relevance:0,
    -contains:[s,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,r,e.C_BLOCK_COMMENT_MODE]
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},r,s]}}})());
    -hljs.registerLanguage("javascript",(()=>{"use strict"
    -;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
    -;function r(e){return t("(?=",e,")")}function t(...e){return e.map((e=>{
    -return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return i=>{
    -const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,
    -isTrulyOpeningTag:(e,n)=>{const a=e[0].length+e.index,s=e.input[a]
    -;"<"!==s?">"===s&&(((e,{after:n})=>{const a="</"+e[0].slice(1)
    -;return-1!==e.input.indexOf(a,n)})(e,{after:a
    -})||n.ignoreMatch()):n.ignoreMatch()}},l={$pattern:e,keyword:n,literal:a,
    -built_in:s},g="\\.([0-9](_?[0-9])*)",b="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",d={
    -className:"number",variants:[{
    -begin:`(\\b(${b})((${g})|\\.)?|(${g}))[eE][+-]?([0-9](_?[0-9])*)\\b`},{
    -begin:`\\b(${b})\\b((${g})\\b|\\.)?|(${g})\\b`},{
    -begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
    -begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
    -begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
    -begin:"\\b0[0-7]+n?\\b"}],relevance:0},E={className:"subst",begin:"\\$\\{",
    -end:"\\}",keywords:l,contains:[]},u={begin:"html`",end:"",starts:{end:"`",
    -returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,E],subLanguage:"xml"}},_={
    -begin:"css`",end:"",starts:{end:"`",returnEnd:!1,
    -contains:[i.BACKSLASH_ESCAPE,E],subLanguage:"css"}},m={className:"string",
    -begin:"`",end:"`",contains:[i.BACKSLASH_ESCAPE,E]},y={className:"comment",
    -variants:[i.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
    -className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",
    -end:"\\}",relevance:0},{className:"variable",begin:c+"(?=\\s*(-)|$)",
    -endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
    -}),i.C_BLOCK_COMMENT_MODE,i.C_LINE_COMMENT_MODE]
    -},N=[i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,u,_,m,d,i.REGEXP_MODE]
    -;E.contains=N.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(N)
    -});const A=[].concat(y,E.contains),f=A.concat([{begin:/\(/,end:/\)/,keywords:l,
    -contains:["self"].concat(A)}]),p={className:"params",begin:/\(/,end:/\)/,
    -excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f};return{name:"Javascript",
    -aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:f},
    -illegal:/#(?![$_A-z])/,contains:[i.SHEBANG({label:"shebang",binary:"node",
    -relevance:5}),{label:"use_strict",className:"meta",relevance:10,
    -begin:/^\s*['"]use (strict|asm)['"]/
    -},i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,u,_,m,y,d,{
    -begin:t(/[{,\n]\s*/,r(t(/(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/,c+"\\s*:"))),
    -relevance:0,contains:[{className:"attr",begin:c+r("\\s*:"),relevance:0}]},{
    -begin:"("+i.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
    -keywords:"return throw case",contains:[y,i.REGEXP_MODE,{className:"function",
    -begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+i.UNDERSCORE_IDENT_RE+")\\s*=>",
    -returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{
    -begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0
    -},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}]
    -},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{
    -variants:[{begin:"<>",end:"</>"},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,
    -end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,
    -contains:["self"]}]}],relevance:0},{className:"function",
    -beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l,
    -contains:["self",i.inherit(i.TITLE_MODE,{begin:c}),p],illegal:/%/},{
    -beginKeywords:"while if switch catch for"},{className:"function",
    -begin:i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
    -returnBegin:!0,contains:[p,i.inherit(i.TITLE_MODE,{begin:c})]},{variants:[{
    -begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class",
    -beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{
    -beginKeywords:"extends"},i.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/,
    -end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:c}),"self",p]
    -},{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set",
    -contains:[i.inherit(i.TITLE_MODE,{begin:c}),{begin:/\(\)/},p]},{begin:/\$[(.]/}]
    -}}})());
    -hljs.registerLanguage("json",(()=>{"use strict";return n=>{const e={
    -literal:"true false null"
    -},i=[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],a=[n.QUOTE_STRING_MODE,n.C_NUMBER_MODE],l={
    -end:",",endsWithParent:!0,excludeEnd:!0,contains:a,keywords:e},t={begin:/\{/,
    -end:/\}/,contains:[{className:"attr",begin:/"/,end:/"/,
    -contains:[n.BACKSLASH_ESCAPE],illegal:"\\n"},n.inherit(l,{begin:/:/
    -})].concat(i),illegal:"\\S"},s={begin:"\\[",end:"\\]",contains:[n.inherit(l)],
    -illegal:"\\S"};return a.push(t,s),i.forEach((n=>{a.push(n)})),{name:"JSON",
    -contains:a,keywords:e,illegal:"\\S"}}})());
    -hljs.registerLanguage("kotlin",(()=>{"use strict"
    -;var e="\\.([0-9](_*[0-9])*)",n="[0-9a-fA-F](_*[0-9a-fA-F])*",a={
    -className:"number",variants:[{
    -begin:`(\\b([0-9](_*[0-9])*)((${e})|\\.)?|(${e}))[eE][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    -},{begin:`\\b([0-9](_*[0-9])*)((${e})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{
    -begin:`(${e})[fFdD]?\\b`},{begin:"\\b([0-9](_*[0-9])*)[fFdD]\\b"},{
    -begin:`\\b0[xX]((${n})\\.?|(${n})?\\.(${n}))[pP][+-]?([0-9](_*[0-9])*)[fFdD]?\\b`
    -},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${n})[lL]?\\b`},{
    -begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],
    -relevance:0};return e=>{const n={
    -keyword:"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual",
    -built_in:"Byte Short Char Int Long Boolean Float Double Void Unit Nothing",
    -literal:"true false null"},i={className:"symbol",begin:e.UNDERSCORE_IDENT_RE+"@"
    -},s={className:"subst",begin:/\$\{/,end:/\}/,contains:[e.C_NUMBER_MODE]},t={
    -className:"variable",begin:"\\$"+e.UNDERSCORE_IDENT_RE},r={className:"string",
    -variants:[{begin:'"""',end:'"""(?=[^"])',contains:[t,s]},{begin:"'",end:"'",
    -illegal:/\n/,contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"',illegal:/\n/,
    -contains:[e.BACKSLASH_ESCAPE,t,s]}]};s.contains.push(r);const l={
    -className:"meta",
    -begin:"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\s*:(?:\\s*"+e.UNDERSCORE_IDENT_RE+")?"
    -},c={className:"meta",begin:"@"+e.UNDERSCORE_IDENT_RE,contains:[{begin:/\(/,
    -end:/\)/,contains:[e.inherit(r,{className:"meta-string"})]}]
    -},o=a,b=e.COMMENT("/\\*","\\*/",{contains:[e.C_BLOCK_COMMENT_MODE]}),E={
    -variants:[{className:"type",begin:e.UNDERSCORE_IDENT_RE},{begin:/\(/,end:/\)/,
    -contains:[]}]},d=E;return d.variants[1].contains=[E],E.variants[1].contains=[d],
    -{name:"Kotlin",aliases:["kt","kts"],keywords:n,
    -contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{className:"doctag",
    -begin:"@[A-Za-z]+"}]}),e.C_LINE_COMMENT_MODE,b,{className:"keyword",
    -begin:/\b(break|continue|return|this)\b/,starts:{contains:[{className:"symbol",
    -begin:/@\w+/}]}},i,l,c,{className:"function",beginKeywords:"fun",end:"[(]|$",
    -returnBegin:!0,excludeEnd:!0,keywords:n,relevance:5,contains:[{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s*\\(",returnBegin:!0,relevance:0,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"type",begin:/</,end:/>/,
    -keywords:"reified",relevance:0},{className:"params",begin:/\(/,end:/\)/,
    -endsParent:!0,keywords:n,relevance:0,contains:[{begin:/:/,end:/[=,\/]/,
    -endsWithParent:!0,contains:[E,e.C_LINE_COMMENT_MODE,b],relevance:0
    -},e.C_LINE_COMMENT_MODE,b,l,c,r,e.C_NUMBER_MODE]},b]},{className:"class",
    -beginKeywords:"class interface trait",end:/[:\{(]|$/,excludeEnd:!0,
    -illegal:"extends implements",contains:[{
    -beginKeywords:"public protected internal private constructor"
    -},e.UNDERSCORE_TITLE_MODE,{className:"type",begin:/</,end:/>/,excludeBegin:!0,
    -excludeEnd:!0,relevance:0},{className:"type",begin:/[,:]\s*/,end:/[<\(,]|$/,
    -excludeBegin:!0,returnEnd:!0},l,c]},r,{className:"meta",begin:"^#!/usr/bin/env",
    -end:"$",illegal:"\n"},o]}}})());
    -hljs.registerLanguage("less",(()=>{"use strict"
    -;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],n=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse(),r=i.concat(o)
    -;return a=>{const s=(e=>({IMPORTANT:{className:"meta",begin:"!important"},
    -HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},
    -ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,
    -illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}
    -}))(a),l=r,d="([\\w-]+|@\\{[\\w-]+\\})",c=[],g=[],b=e=>({className:"string",
    -begin:"~?"+e+".*?"+e}),m=(e,t,i)=>({className:e,begin:t,relevance:i}),u={
    -$pattern:/[a-z-]+/,keyword:"and or not only",attribute:t.join(" ")},p={
    -begin:"\\(",end:"\\)",contains:g,keywords:u,relevance:0}
    -;g.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,b("'"),b('"'),a.CSS_NUMBER_MODE,{
    -begin:"(url|data-uri)\\(",starts:{className:"string",end:"[\\)\\n]",
    -excludeEnd:!0}
    -},s.HEXCOLOR,p,m("variable","@@?[\\w-]+",10),m("variable","@\\{[\\w-]+\\}"),m("built_in","~?`[^`]*?`"),{
    -className:"attribute",begin:"[\\w-]+\\s*:",end:":",returnBegin:!0,excludeEnd:!0
    -},s.IMPORTANT);const f=g.concat({begin:/\{/,end:/\}/,contains:c}),h={
    -beginKeywords:"when",endsWithParent:!0,contains:[{beginKeywords:"and not"
    -}].concat(g)},w={begin:d+"\\s*:",returnBegin:!0,end:/[;}]/,relevance:0,
    -contains:[{begin:/-(webkit|moz|ms|o)-/},{className:"attribute",
    -begin:"\\b("+n.join("|")+")\\b",end:/(?=:)/,starts:{endsWithParent:!0,
    -illegal:"[<=$]",relevance:0,contains:g}}]},v={className:"keyword",
    -begin:"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\b",
    -starts:{end:"[;{}]",keywords:u,returnEnd:!0,contains:g,relevance:0}},y={
    -className:"variable",variants:[{begin:"@[\\w-]+\\s*:",relevance:15},{
    -begin:"@[\\w-]+"}],starts:{end:"[;}]",returnEnd:!0,contains:f}},k={variants:[{
    -begin:"[\\.#:&\\[>]",end:"[;{}]"},{begin:d,end:/\{/}],returnBegin:!0,
    -returnEnd:!0,illegal:"[<='$\"]",relevance:0,
    -contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,h,m("keyword","all\\b"),m("variable","@\\{[\\w-]+\\}"),{
    -begin:"\\b("+e.join("|")+")\\b",className:"selector-tag"
    -},m("selector-tag",d+"%?",0),m("selector-id","#"+d),m("selector-class","\\."+d,0),m("selector-tag","&",0),s.ATTRIBUTE_SELECTOR_MODE,{
    -className:"selector-pseudo",begin:":("+i.join("|")+")"},{
    -className:"selector-pseudo",begin:"::("+o.join("|")+")"},{begin:"\\(",end:"\\)",
    -contains:f},{begin:"!important"}]},E={begin:`[\\w-]+:(:)?(${l.join("|")})`,
    -returnBegin:!0,contains:[k]}
    -;return c.push(a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,v,y,E,w,k),{
    -name:"Less",case_insensitive:!0,illegal:"[=>'/<($\"]",contains:c}}})());
    -hljs.registerLanguage("lua",(()=>{"use strict";return e=>{
    -const t="\\[=*\\[",a="\\]=*\\]",n={begin:t,end:a,contains:["self"]
    -},o=[e.COMMENT("--(?!\\[=*\\[)","$"),e.COMMENT("--\\[=*\\[",a,{contains:[n],
    -relevance:10})];return{name:"Lua",keywords:{$pattern:e.UNDERSCORE_IDENT_RE,
    -literal:"true false nil",
    -keyword:"and break do else elseif end for goto if in local not or repeat return then until while",
    -built_in:"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall arg self coroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove"
    -},contains:o.concat([{className:"function",beginKeywords:"function",end:"\\)",
    -contains:[e.inherit(e.TITLE_MODE,{
    -begin:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"}),{className:"params",
    -begin:"\\(",endsWithParent:!0,contains:o}].concat(o)
    -},e.C_NUMBER_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{className:"string",
    -begin:t,end:a,contains:[n],relevance:5}])}}})());
    -hljs.registerLanguage("makefile",(()=>{"use strict";return e=>{const i={
    -className:"variable",variants:[{begin:"\\$\\("+e.UNDERSCORE_IDENT_RE+"\\)",
    -contains:[e.BACKSLASH_ESCAPE]},{begin:/\$[@%<?\^\+\*]/}]},a={className:"string",
    -begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,i]},n={className:"variable",
    -begin:/\$\([\w-]+\s/,end:/\)/,keywords:{
    -built_in:"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value"
    -},contains:[i]},s={begin:"^"+e.UNDERSCORE_IDENT_RE+"\\s*(?=[:+?]?=)"},r={
    -className:"section",begin:/^[^\s]+:/,end:/$/,contains:[i]};return{
    -name:"Makefile",aliases:["mk","mak","make"],keywords:{$pattern:/[\w-]+/,
    -keyword:"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath"
    -},contains:[e.HASH_COMMENT_MODE,i,a,n,s,{className:"meta",begin:/^\.PHONY:/,
    -end:/$/,keywords:{$pattern:/[\.\w]+/,"meta-keyword":".PHONY"}},r]}}})());
    -hljs.registerLanguage("xml",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")}
    -function a(...n){return n.map((n=>e(n))).join("")}function s(...n){
    -return"("+n.map((n=>e(n))).join("|")+")"}return e=>{
    -const t=a(/[A-Z_]/,a("(",/[A-Z0-9_.-]*:/,")?"),/[A-Z0-9_.-]*/),i={
    -className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},r={begin:/\s/,
    -contains:[{className:"meta-keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]
    -},c=e.inherit(r,{begin:/\(/,end:/\)/}),l=e.inherit(e.APOS_STRING_MODE,{
    -className:"meta-string"}),g=e.inherit(e.QUOTE_STRING_MODE,{
    -className:"meta-string"}),m={endsWithParent:!0,illegal:/</,relevance:0,
    -contains:[{className:"attr",begin:/[A-Za-z0-9._:-]+/,relevance:0},{begin:/=\s*/,
    -relevance:0,contains:[{className:"string",endsParent:!0,variants:[{begin:/"/,
    -end:/"/,contains:[i]},{begin:/'/,end:/'/,contains:[i]},{begin:/[^\s"'=<>`]+/}]}]
    -}]};return{name:"HTML, XML",
    -aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],
    -case_insensitive:!0,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,
    -relevance:10,contains:[r,g,l,c,{begin:/\[/,end:/\]/,contains:[{className:"meta",
    -begin:/<![a-z]/,end:/>/,contains:[r,c,g,l]}]}]},e.COMMENT(/<!--/,/-->/,{
    -relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},i,{
    -className:"meta",begin:/<\?xml/,end:/\?>/,relevance:10},{className:"tag",
    -begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[m],starts:{
    -end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag",
    -begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[m],starts:{
    -end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{
    -className:"tag",begin:/<>|<\/>/},{className:"tag",
    -begin:a(/</,n(a(t,s(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",
    -begin:t,relevance:0,starts:m}]},{className:"tag",begin:a(/<\//,n(a(t,/>/))),
    -contains:[{className:"name",begin:t,relevance:0},{begin:/>/,relevance:0,
    -endsParent:!0}]}]}}})());
    -hljs.registerLanguage("markdown",(()=>{"use strict";function n(...n){
    -return n.map((n=>{return(e=n)?"string"==typeof e?e:e.source:null;var e
    -})).join("")}return e=>{const a={begin:/<\/?[A-Za-z_]/,end:">",
    -subLanguage:"xml",relevance:0},i={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0
    -},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,
    -relevance:2},{begin:n(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),
    -relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{
    -begin:/\[.+?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{
    -className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0,
    -returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)",
    -excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[",
    -end:"\\]",excludeBegin:!0,excludeEnd:!0}]},s={className:"strong",contains:[],
    -variants:[{begin:/_{2}/,end:/_{2}/},{begin:/\*{2}/,end:/\*{2}/}]},c={
    -className:"emphasis",contains:[],variants:[{begin:/\*(?!\*)/,end:/\*/},{
    -begin:/_(?!_)/,end:/_/,relevance:0}]};s.contains.push(c),c.contains.push(s)
    -;let t=[a,i]
    -;return s.contains=s.contains.concat(t),c.contains=c.contains.concat(t),
    -t=t.concat(s,c),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{
    -className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:t},{
    -begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n",
    -contains:t}]}]},a,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)",
    -end:"\\s+",excludeEnd:!0},s,c,{className:"quote",begin:"^>\\s+",contains:t,
    -end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{
    -begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{
    -begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))",
    -contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{
    -begin:"^[-\\*]{3,}",end:"$"},i,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{
    -className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{
    -className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]}]}}})());
    -hljs.registerLanguage("nginx",(()=>{"use strict";return e=>{const n={
    -className:"variable",variants:[{begin:/\$\d+/},{begin:/\$\{/,end:/\}/},{
    -begin:/[$@]/+e.UNDERSCORE_IDENT_RE}]},a={endsWithParent:!0,keywords:{
    -$pattern:"[a-z/_]+",
    -literal:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"
    -},relevance:0,illegal:"=>",contains:[e.HASH_COMMENT_MODE,{className:"string",
    -contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:/"/,end:/"/},{begin:/'/,end:/'/
    -}]},{begin:"([a-z]+):/",end:"\\s",endsWithParent:!0,excludeEnd:!0,contains:[n]
    -},{className:"regexp",contains:[e.BACKSLASH_ESCAPE,n],variants:[{begin:"\\s\\^",
    -end:"\\s|\\{|;",returnEnd:!0},{begin:"~\\*?\\s+",end:"\\s|\\{|;",returnEnd:!0},{
    -begin:"\\*(\\.[a-z\\-]+)+"},{begin:"([a-z\\-]+\\.)+\\*"}]},{className:"number",
    -begin:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{
    -className:"number",begin:"\\b\\d+[kKmMgGdshdwy]*\\b",relevance:0},n]};return{
    -name:"Nginx config",aliases:["nginxconf"],contains:[e.HASH_COMMENT_MODE,{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s+\\{",returnBegin:!0,end:/\{/,contains:[{
    -className:"section",begin:e.UNDERSCORE_IDENT_RE}],relevance:0},{
    -begin:e.UNDERSCORE_IDENT_RE+"\\s",end:";|\\{",returnBegin:!0,contains:[{
    -className:"attribute",begin:e.UNDERSCORE_IDENT_RE,starts:a}],relevance:0}],
    -illegal:"[^\\s\\}]"}}})());
    -hljs.registerLanguage("objectivec",(()=>{"use strict";return e=>{
    -const n=/[a-zA-Z@][a-zA-Z0-9_]*/,_={$pattern:n,
    -keyword:"@interface @class @protocol @implementation"};return{
    -name:"Objective-C",aliases:["mm","objc","obj-c","obj-c++","objective-c++"],
    -keywords:{$pattern:n,
    -keyword:"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN",
    -literal:"false true FALSE TRUE nil YES NO NULL",
    -built_in:"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"
    -},illegal:"</",contains:[{className:"built_in",
    -begin:"\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\w+"
    -},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,e.C_NUMBER_MODE,e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{
    -className:"string",variants:[{begin:'@"',end:'"',illegal:"\\n",
    -contains:[e.BACKSLASH_ESCAPE]}]},{className:"meta",begin:/#\s*[a-z]+\b/,end:/$/,
    -keywords:{
    -"meta-keyword":"if else elif endif define undef warning error line pragma ifdef ifndef include"
    -},contains:[{begin:/\\\n/,relevance:0},e.inherit(e.QUOTE_STRING_MODE,{
    -className:"meta-string"}),{className:"meta-string",begin:/<.*?>/,end:/$/,
    -illegal:"\\n"},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{
    -className:"class",begin:"("+_.keyword.split(" ").join("|")+")\\b",end:/(\{|$)/,
    -excludeEnd:!0,keywords:_,contains:[e.UNDERSCORE_TITLE_MODE]},{
    -begin:"\\."+e.UNDERSCORE_IDENT_RE,relevance:0}]}}})());
    -hljs.registerLanguage("perl",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(...n){
    -return n.map((n=>e(n))).join("")}function t(...n){
    -return"("+n.map((n=>e(n))).join("|")+")"}return e=>{
    -const r=/[dualxmsipngr]{0,12}/,s={$pattern:/[\w.]+/,
    -keyword:"abs accept alarm and atan2 bind binmode bless break caller chdir chmod chomp chop chown chr chroot close closedir connect continue cos crypt dbmclose dbmopen defined delete die do dump each else elsif endgrent endhostent endnetent endprotoent endpwent endservent eof eval exec exists exit exp fcntl fileno flock for foreach fork format formline getc getgrent getgrgid getgrnam gethostbyaddr gethostbyname gethostent getlogin getnetbyaddr getnetbyname getnetent getpeername getpgrp getpriority getprotobyname getprotobynumber getprotoent getpwent getpwnam getpwuid getservbyname getservbyport getservent getsockname getsockopt given glob gmtime goto grep gt hex if index int ioctl join keys kill last lc lcfirst length link listen local localtime log lstat lt ma map mkdir msgctl msgget msgrcv msgsnd my ne next no not oct open opendir or ord our pack package pipe pop pos print printf prototype push q|0 qq quotemeta qw qx rand read readdir readline readlink readpipe recv redo ref rename require reset return reverse rewinddir rindex rmdir say scalar seek seekdir select semctl semget semop send setgrent sethostent setnetent setpgrp setpriority setprotoent setpwent setservent setsockopt shift shmctl shmget shmread shmwrite shutdown sin sleep socket socketpair sort splice split sprintf sqrt srand stat state study sub substr symlink syscall sysopen sysread sysseek system syswrite tell telldir tie tied time times tr truncate uc ucfirst umask undef unless unlink unpack unshift untie until use utime values vec wait waitpid wantarray warn when while write x|0 xor y|0"
    -},i={className:"subst",begin:"[$@]\\{",end:"\\}",keywords:s},a={begin:/->\{/,
    -end:/\}/},o={variants:[{begin:/\$\d/},{
    -begin:n(/[$%@](\^\w\b|#\w+(::\w+)*|\{\w+\}|\w+(::\w*)*)/,"(?![A-Za-z])(?![@$%])")
    -},{begin:/[$%@][^\s\w{]/,relevance:0}]
    -},c=[e.BACKSLASH_ESCAPE,i,o],g=[/!/,/\//,/\|/,/\?/,/'/,/"/,/#/],l=(e,t,s="\\1")=>{
    -const i="\\1"===s?s:n(s,t)
    -;return n(n("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,i,/(?:\\.|[^\\\/])*?/,s,r)
    -},d=(e,t,s)=>n(n("(?:",e,")"),t,/(?:\\.|[^\\\/])*?/,s,r),p=[o,e.HASH_COMMENT_MODE,e.COMMENT(/^=\w/,/=cut/,{
    -endsWithParent:!0}),a,{className:"string",contains:c,variants:[{
    -begin:"q[qwxr]?\\s*\\(",end:"\\)",relevance:5},{begin:"q[qwxr]?\\s*\\[",
    -end:"\\]",relevance:5},{begin:"q[qwxr]?\\s*\\{",end:"\\}",relevance:5},{
    -begin:"q[qwxr]?\\s*\\|",end:"\\|",relevance:5},{begin:"q[qwxr]?\\s*<",end:">",
    -relevance:5},{begin:"qw\\s+q",end:"q",relevance:5},{begin:"'",end:"'",
    -contains:[e.BACKSLASH_ESCAPE]},{begin:'"',end:'"'},{begin:"`",end:"`",
    -contains:[e.BACKSLASH_ESCAPE]},{begin:/\{\w+\}/,relevance:0},{
    -begin:"-?\\w+\\s*=>",relevance:0}]},{className:"number",
    -begin:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",
    -relevance:0},{
    -begin:"(\\/\\/|"+e.RE_STARTERS_RE+"|\\b(split|return|print|reverse|grep)\\b)\\s*",
    -keywords:"split return print reverse grep",relevance:0,
    -contains:[e.HASH_COMMENT_MODE,{className:"regexp",variants:[{
    -begin:l("s|tr|y",t(...g))},{begin:l("s|tr|y","\\(","\\)")},{
    -begin:l("s|tr|y","\\[","\\]")},{begin:l("s|tr|y","\\{","\\}")}],relevance:2},{
    -className:"regexp",variants:[{begin:/(m|qr)\/\//,relevance:0},{
    -begin:d("(?:m|qr)?",/\//,/\//)},{begin:d("m|qr",t(...g),/\1/)},{
    -begin:d("m|qr",/\(/,/\)/)},{begin:d("m|qr",/\[/,/\]/)},{
    -begin:d("m|qr",/\{/,/\}/)}]}]},{className:"function",beginKeywords:"sub",
    -end:"(\\s*\\(.*?\\))?[;{]",excludeEnd:!0,relevance:5,contains:[e.TITLE_MODE]},{
    -begin:"-\\w\\b",relevance:0},{begin:"^__DATA__$",end:"^__END__$",
    -subLanguage:"mojolicious",contains:[{begin:"^@@.*",end:"$",className:"comment"}]
    -}];return i.contains=p,a.contains=p,{name:"Perl",aliases:["pl","pm"],keywords:s,
    -contains:p}}})());
    -hljs.registerLanguage("php",(()=>{"use strict";return e=>{const r={
    -className:"variable",
    -begin:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(?![A-Za-z0-9])(?![$])"},t={
    -className:"meta",variants:[{begin:/<\?php/,relevance:10},{begin:/<\?[=]?/},{
    -begin:/\?>/}]},a={className:"subst",variants:[{begin:/\$\w+/},{begin:/\{\$/,
    -end:/\}/}]},n=e.inherit(e.APOS_STRING_MODE,{illegal:null
    -}),i=e.inherit(e.QUOTE_STRING_MODE,{illegal:null,
    -contains:e.QUOTE_STRING_MODE.contains.concat(a)}),o=e.END_SAME_AS_BEGIN({
    -begin:/<<<[ \t]*(\w+)\n/,end:/[ \t]*(\w+)\b/,
    -contains:e.QUOTE_STRING_MODE.contains.concat(a)}),l={className:"string",
    -contains:[e.BACKSLASH_ESCAPE,t],variants:[e.inherit(n,{begin:"b'",end:"'"
    -}),e.inherit(i,{begin:'b"',end:'"'}),i,n,o]},s={className:"number",variants:[{
    -begin:"\\b0b[01]+(?:_[01]+)*\\b"},{begin:"\\b0o[0-7]+(?:_[0-7]+)*\\b"},{
    -begin:"\\b0x[\\da-f]+(?:_[\\da-f]+)*\\b"},{
    -begin:"(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:e[+-]?\\d+)?"
    -}],relevance:0},c={
    -keyword:"__CLASS__ __DIR__ __FILE__ __FUNCTION__ __LINE__ __METHOD__ __NAMESPACE__ __TRAIT__ die echo exit include include_once print require require_once array abstract and as binary bool boolean break callable case catch class clone const continue declare default do double else elseif empty enddeclare endfor endforeach endif endswitch endwhile enum eval extends final finally float for foreach from global goto if implements instanceof insteadof int integer interface isset iterable list match|0 mixed new object or private protected public real return string switch throw trait try unset use var void while xor yield",
    -literal:"false null true",
    -built_in:"Error|0 AppendIterator ArgumentCountError ArithmeticError ArrayIterator ArrayObject AssertionError BadFunctionCallException BadMethodCallException CachingIterator CallbackFilterIterator CompileError Countable DirectoryIterator DivisionByZeroError DomainException EmptyIterator ErrorException Exception FilesystemIterator FilterIterator GlobIterator InfiniteIterator InvalidArgumentException IteratorIterator LengthException LimitIterator LogicException MultipleIterator NoRewindIterator OutOfBoundsException OutOfRangeException OuterIterator OverflowException ParentIterator ParseError RangeException RecursiveArrayIterator RecursiveCachingIterator RecursiveCallbackFilterIterator RecursiveDirectoryIterator RecursiveFilterIterator RecursiveIterator RecursiveIteratorIterator RecursiveRegexIterator RecursiveTreeIterator RegexIterator RuntimeException SeekableIterator SplDoublyLinkedList SplFileInfo SplFileObject SplFixedArray SplHeap SplMaxHeap SplMinHeap SplObjectStorage SplObserver SplObserver SplPriorityQueue SplQueue SplStack SplSubject SplSubject SplTempFileObject TypeError UnderflowException UnexpectedValueException UnhandledMatchError ArrayAccess Closure Generator Iterator IteratorAggregate Serializable Stringable Throwable Traversable WeakReference WeakMap Directory __PHP_Incomplete_Class parent php_user_filter self static stdClass"
    -};return{aliases:["php3","php4","php5","php6","php7","php8"],
    -case_insensitive:!0,keywords:c,
    -contains:[e.HASH_COMMENT_MODE,e.COMMENT("//","$",{contains:[t]
    -}),e.COMMENT("/\\*","\\*/",{contains:[{className:"doctag",begin:"@[A-Za-z]+"}]
    -}),e.COMMENT("__halt_compiler.+?;",!1,{endsWithParent:!0,
    -keywords:"__halt_compiler"}),t,{className:"keyword",begin:/\$this\b/},r,{
    -begin:/(::|->)+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/},{className:"function",
    -relevance:0,beginKeywords:"fn function",end:/[;{]/,excludeEnd:!0,
    -illegal:"[$%\\[]",contains:[{beginKeywords:"use"},e.UNDERSCORE_TITLE_MODE,{
    -begin:"=>",endsParent:!0},{className:"params",begin:"\\(",end:"\\)",
    -excludeBegin:!0,excludeEnd:!0,keywords:c,
    -contains:["self",r,e.C_BLOCK_COMMENT_MODE,l,s]}]},{className:"class",variants:[{
    -beginKeywords:"enum",illegal:/[($"]/},{beginKeywords:"class interface trait",
    -illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{
    -beginKeywords:"extends implements"},e.UNDERSCORE_TITLE_MODE]},{
    -beginKeywords:"namespace",relevance:0,end:";",illegal:/[.']/,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{beginKeywords:"use",relevance:0,end:";",
    -contains:[e.UNDERSCORE_TITLE_MODE]},l,s]}}})());
    -hljs.registerLanguage("php-template",(()=>{"use strict";return n=>({
    -name:"PHP template",subLanguage:"xml",contains:[{begin:/<\?(php|=)?/,end:/\?>/,
    -subLanguage:"php",contains:[{begin:"/\\*",end:"\\*/",skip:!0},{begin:'b"',
    -end:'"',skip:!0},{begin:"b'",end:"'",skip:!0},n.inherit(n.APOS_STRING_MODE,{
    -illegal:null,className:null,contains:null,skip:!0
    -}),n.inherit(n.QUOTE_STRING_MODE,{illegal:null,className:null,contains:null,
    -skip:!0})]}]})})());
    -hljs.registerLanguage("plaintext",(()=>{"use strict";return t=>({
    -name:"Plain text",aliases:["text","txt"],disableAutodetect:!0})})());
    -hljs.registerLanguage("properties",(()=>{"use strict";return e=>{
    -var n="[ \\t\\f]*",a=n+"[:=]"+n,t="("+a+"|[ \\t\\f]+)",r="([^\\\\\\W:= \\t\\f\\n]|\\\\.)+",s="([^\\\\:= \\t\\f\\n]|\\\\.)+",i={
    -end:t,relevance:0,starts:{className:"string",end:/$/,relevance:0,contains:[{
    -begin:"\\\\\\\\"},{begin:"\\\\\\n"}]}};return{name:".properties",
    -case_insensitive:!0,illegal:/\S/,contains:[e.COMMENT("^\\s*[!#]","$"),{
    -returnBegin:!0,variants:[{begin:r+a,relevance:1},{begin:r+"[ \\t\\f]+",
    -relevance:0}],contains:[{className:"attr",begin:r,endsParent:!0,relevance:0}],
    -starts:i},{begin:s+t,returnBegin:!0,relevance:0,contains:[{className:"meta",
    -begin:s,endsParent:!0,relevance:0}],starts:i},{className:"attr",relevance:0,
    -begin:s+n+"$"}]}}})());
    -hljs.registerLanguage("python",(()=>{"use strict";return e=>{const n={
    -$pattern:/[A-Za-z]\w+|__\w+__/,
    -keyword:["and","as","assert","async","await","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],
    -built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],
    -literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],
    -type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]
    -},a={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/,
    -end:/\}/,keywords:n,illegal:/#/},s={begin:/\{\{/,relevance:0},t={
    -className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{
    -begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,
    -contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{
    -begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,
    -contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{
    -begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,
    -contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,
    -end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([uU]|[rR])'/,end:/'/,
    -relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{
    -begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,
    -end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,
    -contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,
    -contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]
    -},r="[0-9](_?[0-9])*",l=`(\\b(${r}))?\\.(${r})|\\b(${r})\\.`,b={
    -className:"number",relevance:0,variants:[{
    -begin:`(\\b(${r})|(${l}))[eE][+-]?(${r})[jJ]?\\b`},{begin:`(${l})[jJ]?`},{
    -begin:"\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?\\b"},{
    -begin:"\\b0[bB](_?[01])+[lL]?\\b"},{begin:"\\b0[oO](_?[0-7])+[lL]?\\b"},{
    -begin:"\\b0[xX](_?[0-9a-fA-F])+[lL]?\\b"},{begin:`\\b(${r})[jJ]\\b`}]},o={
    -className:"comment",
    -begin:(d=/# type:/,((...e)=>e.map((e=>(e=>e?"string"==typeof e?e:e.source:null)(e))).join(""))("(?=",d,")")),
    -end:/$/,keywords:n,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,
    -endsWithParent:!0}]},c={className:"params",variants:[{className:"",
    -begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,
    -keywords:n,contains:["self",a,b,t,e.HASH_COMMENT_MODE]}]};var d
    -;return i.contains=[t,b,a],{name:"Python",aliases:["py","gyp","ipython"],
    -keywords:n,illegal:/(<\/|->|\?)|=>/,contains:[a,b,{begin:/\bself\b/},{
    -beginKeywords:"if",relevance:0},t,o,e.HASH_COMMENT_MODE,{variants:[{
    -className:"function",beginKeywords:"def"},{className:"class",
    -beginKeywords:"class"}],end:/:/,illegal:/[${=;\n,]/,
    -contains:[e.UNDERSCORE_TITLE_MODE,c,{begin:/->/,endsWithParent:!0,keywords:n}]
    -},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[b,c,t]}]}}})());
    -hljs.registerLanguage("python-repl",(()=>{"use strict";return s=>({
    -aliases:["pycon"],contains:[{className:"meta",starts:{end:/ |$/,starts:{end:"$",
    -subLanguage:"python"}},variants:[{begin:/^>>>(?=[ ]|$)/},{
    -begin:/^\.\.\.(?=[ ]|$)/}]}]})})());
    -hljs.registerLanguage("r",(()=>{"use strict";function e(...e){return e.map((e=>{
    -return(a=e)?"string"==typeof a?a:a.source:null;var a})).join("")}return a=>{
    -const n=/(?:(?:[a-zA-Z]|\.[._a-zA-Z])[._a-zA-Z0-9]*)|\.(?!\d)/;return{name:"R",
    -illegal:/->/,keywords:{$pattern:n,
    -keyword:"function if in break next repeat else for while",
    -literal:"NULL NA TRUE FALSE Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10",
    -built_in:"LETTERS letters month.abb month.name pi T F abs acos acosh all any anyNA Arg as.call as.character as.complex as.double as.environment as.integer as.logical as.null.default as.numeric as.raw asin asinh atan atanh attr attributes baseenv browser c call ceiling class Conj cos cosh cospi cummax cummin cumprod cumsum digamma dim dimnames emptyenv exp expression floor forceAndCall gamma gc.time globalenv Im interactive invisible is.array is.atomic is.call is.character is.complex is.double is.environment is.expression is.finite is.function is.infinite is.integer is.language is.list is.logical is.matrix is.na is.name is.nan is.null is.numeric is.object is.pairlist is.raw is.recursive is.single is.symbol lazyLoadDBfetch length lgamma list log max min missing Mod names nargs nzchar oldClass on.exit pos.to.env proc.time prod quote range Re rep retracemem return round seq_along seq_len seq.int sign signif sin sinh sinpi sqrt standardGeneric substitute sum switch tan tanh tanpi tracemem trigamma trunc unclass untracemem UseMethod xtfrm"
    -},compilerExtensions:[(a,n)=>{if(!a.beforeMatch)return
    -;if(a.starts)throw Error("beforeMatch cannot be used with starts")
    -;const i=Object.assign({},a);Object.keys(a).forEach((e=>{delete a[e]
    -})),a.begin=e(i.beforeMatch,e("(?=",i.begin,")")),a.starts={relevance:0,
    -contains:[Object.assign(i,{endsParent:!0})]},a.relevance=0,delete i.beforeMatch
    -}],contains:[a.COMMENT(/#'/,/$/,{contains:[{className:"doctag",
    -begin:"@examples",starts:{contains:[{begin:/\n/},{begin:/#'\s*(?=@[a-zA-Z]+)/,
    -endsParent:!0},{begin:/#'/,end:/$/,excludeBegin:!0}]}},{className:"doctag",
    -begin:"@param",end:/$/,contains:[{className:"variable",variants:[{begin:n},{
    -begin:/`(?:\\.|[^`\\])+`/}],endsParent:!0}]},{className:"doctag",
    -begin:/@[a-zA-Z]+/},{className:"meta-keyword",begin:/\\[a-zA-Z]+/}]
    -}),a.HASH_COMMENT_MODE,{className:"string",contains:[a.BACKSLASH_ESCAPE],
    -variants:[a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\(/,end:/\)(-*)"/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\{/,end:/\}(-*)"/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]"(-*)\[/,end:/\](-*)"/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\(/,end:/\)(-*)'/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\{/,end:/\}(-*)'/
    -}),a.END_SAME_AS_BEGIN({begin:/[rR]'(-*)\[/,end:/\](-*)'/}),{begin:'"',end:'"',
    -relevance:0},{begin:"'",end:"'",relevance:0}]},{className:"number",relevance:0,
    -beforeMatch:/([^a-zA-Z0-9._])/,variants:[{
    -match:/0[xX][0-9a-fA-F]+\.[0-9a-fA-F]*[pP][+-]?\d+i?/},{
    -match:/0[xX][0-9a-fA-F]+([pP][+-]?\d+)?[Li]?/},{
    -match:/(\d+(\.\d*)?|\.\d+)([eE][+-]?\d+)?[Li]?/}]},{begin:"%",end:"%"},{
    -begin:e(/[a-zA-Z][a-zA-Z_0-9]*/,"\\s+<-\\s+")},{begin:"`",end:"`",contains:[{
    -begin:/\\./}]}]}}})());
    -hljs.registerLanguage("ruby",(()=>{"use strict";function e(...e){
    -return e.map((e=>{return(n=e)?"string"==typeof n?n:n.source:null;var n
    -})).join("")}return n=>{
    -const a="([a-zA-Z_]\\w*[!?=]?|[-+~]@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?)",i={
    -keyword:"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor __FILE__",
    -built_in:"proc lambda",literal:"true false nil"},s={className:"doctag",
    -begin:"@[A-Za-z]+"},r={begin:"#<",end:">"},b=[n.COMMENT("#","$",{contains:[s]
    -}),n.COMMENT("^=begin","^=end",{contains:[s],relevance:10
    -}),n.COMMENT("^__END__","\\n$")],c={className:"subst",begin:/#\{/,end:/\}/,
    -keywords:i},t={className:"string",contains:[n.BACKSLASH_ESCAPE,c],variants:[{
    -begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/`/,end:/`/},{begin:/%[qQwWx]?\(/,
    -end:/\)/},{begin:/%[qQwWx]?\[/,end:/\]/},{begin:/%[qQwWx]?\{/,end:/\}/},{
    -begin:/%[qQwWx]?</,end:/>/},{begin:/%[qQwWx]?\//,end:/\//},{begin:/%[qQwWx]?%/,
    -end:/%/},{begin:/%[qQwWx]?-/,end:/-/},{begin:/%[qQwWx]?\|/,end:/\|/},{
    -begin:/\B\?(\\\d{1,3})/},{begin:/\B\?(\\x[A-Fa-f0-9]{1,2})/},{
    -begin:/\B\?(\\u\{?[A-Fa-f0-9]{1,6}\}?)/},{
    -begin:/\B\?(\\M-\\C-|\\M-\\c|\\c\\M-|\\M-|\\C-\\M-)[\x20-\x7e]/},{
    -begin:/\B\?\\(c|C-)[\x20-\x7e]/},{begin:/\B\?\\?\S/},{
    -begin:/<<[-~]?'?(\w+)\n(?:[^\n]*\n)*?\s*\1\b/,returnBegin:!0,contains:[{
    -begin:/<<[-~]?'?/},n.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,
    -contains:[n.BACKSLASH_ESCAPE,c]})]}]},g="[0-9](_?[0-9])*",d={className:"number",
    -relevance:0,variants:[{
    -begin:`\\b([1-9](_?[0-9])*|0)(\\.(${g}))?([eE][+-]?(${g})|r)?i?\\b`},{
    -begin:"\\b0[dD][0-9](_?[0-9])*r?i?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*r?i?\\b"
    -},{begin:"\\b0[oO][0-7](_?[0-7])*r?i?\\b"},{
    -begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*r?i?\\b"},{
    -begin:"\\b0(_?[0-7])+r?i?\\b"}]},l={className:"params",begin:"\\(",end:"\\)",
    -endsParent:!0,keywords:i},o=[t,{className:"class",beginKeywords:"class module",
    -end:"$|;",illegal:/=/,contains:[n.inherit(n.TITLE_MODE,{
    -begin:"[A-Za-z_]\\w*(::\\w+)*(\\?|!)?"}),{begin:"<\\s*",contains:[{
    -begin:"("+n.IDENT_RE+"::)?"+n.IDENT_RE,relevance:0}]}].concat(b)},{
    -className:"function",begin:e(/def\s+/,(_=a+"\\s*(\\(|;|$)",e("(?=",_,")"))),
    -relevance:0,keywords:"def",end:"$|;",contains:[n.inherit(n.TITLE_MODE,{begin:a
    -}),l].concat(b)},{begin:n.IDENT_RE+"::"},{className:"symbol",
    -begin:n.UNDERSCORE_IDENT_RE+"(!|\\?)?:",relevance:0},{className:"symbol",
    -begin:":(?!\\s)",contains:[t,{begin:a}],relevance:0},d,{className:"variable",
    -begin:"(\\$\\W)|((\\$|@@?)(\\w+))(?=[^@$?])(?![A-Za-z])(?![@$?'])"},{
    -className:"params",begin:/\|/,end:/\|/,relevance:0,keywords:i},{
    -begin:"("+n.RE_STARTERS_RE+"|unless)\\s*",keywords:"unless",contains:[{
    -className:"regexp",contains:[n.BACKSLASH_ESCAPE,c],illegal:/\n/,variants:[{
    -begin:"/",end:"/[a-z]*"},{begin:/%r\{/,end:/\}[a-z]*/},{begin:"%r\\(",
    -end:"\\)[a-z]*"},{begin:"%r!",end:"![a-z]*"},{begin:"%r\\[",end:"\\][a-z]*"}]
    -}].concat(r,b),relevance:0}].concat(r,b);var _;c.contains=o,l.contains=o
    -;const E=[{begin:/^\s*=>/,starts:{end:"$",contains:o}},{className:"meta",
    -begin:"^([>?]>|[\\w#]+\\(\\w+\\):\\d+:\\d+>|(\\w+-)?\\d+\\.\\d+\\.\\d+(p\\d+)?[^\\d][^>]+>)(?=[ ])",
    -starts:{end:"$",contains:o}}];return b.unshift(r),{name:"Ruby",
    -aliases:["rb","gemspec","podspec","thor","irb"],keywords:i,illegal:/\/\*/,
    -contains:[n.SHEBANG({binary:"ruby"})].concat(E).concat(b).concat(o)}}})());
    -hljs.registerLanguage("rust",(()=>{"use strict";return e=>{
    -const n="([ui](8|16|32|64|128|size)|f(32|64))?",t="drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!"
    -;return{name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",
    -keyword:"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield",
    -literal:"true false Some None Ok Err",built_in:t},illegal:"</",
    -contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]
    -}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{
    -className:"string",variants:[{begin:/r(#*)"(.|\n)*?"\1(?!#)/},{
    -begin:/b?'\\?(x\w{2}|u\w{4}|U\w{8}|.)'/}]},{className:"symbol",
    -begin:/'[a-zA-Z_][a-zA-Z0-9_]*/},{className:"number",variants:[{
    -begin:"\\b0b([01_]+)"+n},{begin:"\\b0o([0-7_]+)"+n},{
    -begin:"\\b0x([A-Fa-f0-9_]+)"+n},{
    -begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+n}],relevance:0},{
    -className:"function",beginKeywords:"fn",end:"(\\(|<)",excludeEnd:!0,
    -contains:[e.UNDERSCORE_TITLE_MODE]},{className:"meta",begin:"#!?\\[",end:"\\]",
    -contains:[{className:"meta-string",begin:/"/,end:/"/}]},{className:"class",
    -beginKeywords:"type",end:";",contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{
    -endsParent:!0})],illegal:"\\S"},{className:"class",
    -beginKeywords:"trait enum struct union",end:/\{/,
    -contains:[e.inherit(e.UNDERSCORE_TITLE_MODE,{endsParent:!0})],illegal:"[\\w\\d]"
    -},{begin:e.IDENT_RE+"::",keywords:{built_in:t}},{begin:"->"}]}}})());
    -hljs.registerLanguage("scss",(()=>{"use strict"
    -;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","p","q","quote","samp","section","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video"],t=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"],i=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"],o=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"],r=["align-content","align-items","align-self","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","auto","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","clip-path","color","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","cursor","direction","display","empty-cells","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-variant","font-variant-ligatures","font-variation-settings","font-weight","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inherit","initial","justify-content","left","letter-spacing","line-height","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","mask","max-height","max-width","min-height","min-width","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","perspective","perspective-origin","pointer-events","position","quotes","resize","right","src","tab-size","table-layout","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-style","text-indent","text-overflow","text-rendering","text-shadow","text-transform","text-underline-position","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","white-space","widows","width","word-break","word-spacing","word-wrap","z-index"].reverse()
    -;return a=>{const n=(e=>({IMPORTANT:{className:"meta",begin:"!important"},
    -HEXCOLOR:{className:"number",begin:"#([a-fA-F0-9]{6}|[a-fA-F0-9]{3})"},
    -ATTRIBUTE_SELECTOR_MODE:{className:"selector-attr",begin:/\[/,end:/\]/,
    -illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]}
    -}))(a),l=o,s=i,d="@[a-z-]+",c={className:"variable",
    -begin:"(\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\b"};return{name:"SCSS",case_insensitive:!0,
    -illegal:"[=/|']",contains:[a.C_LINE_COMMENT_MODE,a.C_BLOCK_COMMENT_MODE,{
    -className:"selector-id",begin:"#[A-Za-z0-9_-]+",relevance:0},{
    -className:"selector-class",begin:"\\.[A-Za-z0-9_-]+",relevance:0
    -},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-tag",
    -begin:"\\b("+e.join("|")+")\\b",relevance:0},{className:"selector-pseudo",
    -begin:":("+s.join("|")+")"},{className:"selector-pseudo",
    -begin:"::("+l.join("|")+")"},c,{begin:/\(/,end:/\)/,contains:[a.CSS_NUMBER_MODE]
    -},{className:"attribute",begin:"\\b("+r.join("|")+")\\b"},{
    -begin:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"
    -},{begin:":",end:";",
    -contains:[c,n.HEXCOLOR,a.CSS_NUMBER_MODE,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.IMPORTANT]
    -},{begin:"@(page|font-face)",lexemes:d,keywords:"@page @font-face"},{begin:"@",
    -end:"[{;]",returnBegin:!0,keywords:{$pattern:/[a-z-]+/,
    -keyword:"and or not only",attribute:t.join(" ")},contains:[{begin:d,
    -className:"keyword"},{begin:/[a-z-]+(?=:)/,className:"attribute"
    -},c,a.QUOTE_STRING_MODE,a.APOS_STRING_MODE,n.HEXCOLOR,a.CSS_NUMBER_MODE]}]}}
    -})());
    -hljs.registerLanguage("shell",(()=>{"use strict";return s=>({
    -name:"Shell Session",aliases:["console"],contains:[{className:"meta",
    -begin:/^\s{0,3}[/~\w\d[\]()@-]*[>%$#]/,starts:{end:/[^\\](?=\s*$)/,
    -subLanguage:"bash"}}]})})());
    -hljs.registerLanguage("sql",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function r(...r){
    -return r.map((r=>e(r))).join("")}function t(...r){
    -return"("+r.map((r=>e(r))).join("|")+")"}return e=>{
    -const n=e.COMMENT("--","$"),a=["true","false","unknown"],i=["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],s=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],o=["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"],c=s,l=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update   ","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter((e=>!s.includes(e))),u={
    -begin:r(/\b/,t(...c),/\s*\(/),keywords:{built_in:c}};return{name:"SQL",
    -case_insensitive:!0,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,
    -keyword:((e,{exceptions:r,when:t}={})=>{const n=t
    -;return r=r||[],e.map((e=>e.match(/\|\d+$/)||r.includes(e)?e:n(e)?e+"|0":e))
    -})(l,{when:e=>e.length<3}),literal:a,type:i,
    -built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]
    -},contains:[{begin:t(...o),keywords:{$pattern:/[\w\.]+/,keyword:l.concat(o),
    -literal:a,type:i}},{className:"type",
    -begin:t("double precision","large object","with timezone","without timezone")
    -},u,{className:"variable",begin:/@[a-z0-9]+/},{className:"string",variants:[{
    -begin:/'/,end:/'/,contains:[{begin:/''/}]}]},{begin:/"/,end:/"/,contains:[{
    -begin:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{className:"operator",
    -begin:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}})());
    -hljs.registerLanguage("swift",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(e){return a("(?=",e,")")}
    -function a(...n){return n.map((n=>e(n))).join("")}function t(...n){
    -return"("+n.map((n=>e(n))).join("|")+")"}
    -const i=e=>a(/\b/,e,/\w$/.test(e)?/\b/:/\B/),s=["Protocol","Type"].map(i),u=["init","self"].map(i),c=["Any","Self"],r=["associatedtype","async","await",/as\?/,/as!/,"as","break","case","catch","class","continue","convenience","default","defer","deinit","didSet","do","dynamic","else","enum","extension","fallthrough",/fileprivate\(set\)/,"fileprivate","final","for","func","get","guard","if","import","indirect","infix",/init\?/,/init!/,"inout",/internal\(set\)/,"internal","in","is","lazy","let","mutating","nonmutating",/open\(set\)/,"open","operator","optional","override","postfix","precedencegroup","prefix",/private\(set\)/,"private","protocol",/public\(set\)/,"public","repeat","required","rethrows","return","set","some","static","struct","subscript","super","switch","throws","throw",/try\?/,/try!/,"try","typealias",/unowned\(safe\)/,/unowned\(unsafe\)/,"unowned","var","weak","where","while","willSet"],o=["false","nil","true"],l=["assignment","associativity","higherThan","left","lowerThan","none","right"],m=["#colorLiteral","#column","#dsohandle","#else","#elseif","#endif","#error","#file","#fileID","#fileLiteral","#filePath","#function","#if","#imageLiteral","#keyPath","#line","#selector","#sourceLocation","#warn_unqualified_access","#warning"],d=["abs","all","any","assert","assertionFailure","debugPrint","dump","fatalError","getVaList","isKnownUniquelyReferenced","max","min","numericCast","pointwiseMax","pointwiseMin","precondition","preconditionFailure","print","readLine","repeatElement","sequence","stride","swap","swift_unboxFromSwiftValueWithType","transcode","type","unsafeBitCast","unsafeDowncast","withExtendedLifetime","withUnsafeMutablePointer","withUnsafePointer","withVaList","withoutActuallyEscaping","zip"],p=t(/[/=\-+!*%<>&|^~?]/,/[\u00A1-\u00A7]/,/[\u00A9\u00AB]/,/[\u00AC\u00AE]/,/[\u00B0\u00B1]/,/[\u00B6\u00BB\u00BF\u00D7\u00F7]/,/[\u2016-\u2017]/,/[\u2020-\u2027]/,/[\u2030-\u203E]/,/[\u2041-\u2053]/,/[\u2055-\u205E]/,/[\u2190-\u23FF]/,/[\u2500-\u2775]/,/[\u2794-\u2BFF]/,/[\u2E00-\u2E7F]/,/[\u3001-\u3003]/,/[\u3008-\u3020]/,/[\u3030]/),F=t(p,/[\u0300-\u036F]/,/[\u1DC0-\u1DFF]/,/[\u20D0-\u20FF]/,/[\uFE00-\uFE0F]/,/[\uFE20-\uFE2F]/),b=a(p,F,"*"),h=t(/[a-zA-Z_]/,/[\u00A8\u00AA\u00AD\u00AF\u00B2-\u00B5\u00B7-\u00BA]/,/[\u00BC-\u00BE\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]/,/[\u0100-\u02FF\u0370-\u167F\u1681-\u180D\u180F-\u1DBF]/,/[\u1E00-\u1FFF]/,/[\u200B-\u200D\u202A-\u202E\u203F-\u2040\u2054\u2060-\u206F]/,/[\u2070-\u20CF\u2100-\u218F\u2460-\u24FF\u2776-\u2793]/,/[\u2C00-\u2DFF\u2E80-\u2FFF]/,/[\u3004-\u3007\u3021-\u302F\u3031-\u303F\u3040-\uD7FF]/,/[\uF900-\uFD3D\uFD40-\uFDCF\uFDF0-\uFE1F\uFE30-\uFE44]/,/[\uFE47-\uFEFE\uFF00-\uFFFD]/),f=t(h,/\d/,/[\u0300-\u036F\u1DC0-\u1DFF\u20D0-\u20FF\uFE20-\uFE2F]/),w=a(h,f,"*"),y=a(/[A-Z]/,f,"*"),g=["autoclosure",a(/convention\(/,t("swift","block","c"),/\)/),"discardableResult","dynamicCallable","dynamicMemberLookup","escaping","frozen","GKInspectable","IBAction","IBDesignable","IBInspectable","IBOutlet","IBSegueAction","inlinable","main","nonobjc","NSApplicationMain","NSCopying","NSManaged",a(/objc\(/,w,/\)/),"objc","objcMembers","propertyWrapper","requires_stored_property_inits","testable","UIApplicationMain","unknown","usableFromInline"],E=["iOS","iOSApplicationExtension","macOS","macOSApplicationExtension","macCatalyst","macCatalystApplicationExtension","watchOS","watchOSApplicationExtension","tvOS","tvOSApplicationExtension","swift"]
    -;return e=>{const p={match:/\s+/,relevance:0},h=e.COMMENT("/\\*","\\*/",{
    -contains:["self"]}),v=[e.C_LINE_COMMENT_MODE,h],N={className:"keyword",
    -begin:a(/\./,n(t(...s,...u))),end:t(...s,...u),excludeBegin:!0},A={
    -match:a(/\./,t(...r)),relevance:0
    -},C=r.filter((e=>"string"==typeof e)).concat(["_|0"]),_={variants:[{
    -className:"keyword",
    -match:t(...r.filter((e=>"string"!=typeof e)).concat(c).map(i),...u)}]},D={
    -$pattern:t(/\b\w+/,/#\w+/),keyword:C.concat(m),literal:o},B=[N,A,_],k=[{
    -match:a(/\./,t(...d)),relevance:0},{className:"built_in",
    -match:a(/\b/,t(...d),/(?=\()/)}],M={match:/->/,relevance:0},S=[M,{
    -className:"operator",relevance:0,variants:[{match:b},{match:`\\.(\\.|${F})+`}]
    -}],x="([0-9a-fA-F]_*)+",I={className:"number",relevance:0,variants:[{
    -match:"\\b(([0-9]_*)+)(\\.(([0-9]_*)+))?([eE][+-]?(([0-9]_*)+))?\\b"},{
    -match:`\\b0x(${x})(\\.(${x}))?([pP][+-]?(([0-9]_*)+))?\\b`},{
    -match:/\b0o([0-7]_*)+\b/},{match:/\b0b([01]_*)+\b/}]},O=(e="")=>({
    -className:"subst",variants:[{match:a(/\\/,e,/[0\\tnr"']/)},{
    -match:a(/\\/,e,/u\{[0-9a-fA-F]{1,8}\}/)}]}),T=(e="")=>({className:"subst",
    -match:a(/\\/,e,/[\t ]*(?:[\r\n]|\r\n)/)}),L=(e="")=>({className:"subst",
    -label:"interpol",begin:a(/\\/,e,/\(/),end:/\)/}),P=(e="")=>({begin:a(e,/"""/),
    -end:a(/"""/,e),contains:[O(e),T(e),L(e)]}),$=(e="")=>({begin:a(e,/"/),
    -end:a(/"/,e),contains:[O(e),L(e)]}),K={className:"string",
    -variants:[P(),P("#"),P("##"),P("###"),$(),$("#"),$("##"),$("###")]},j={
    -match:a(/`/,w,/`/)},z=[j,{className:"variable",match:/\$\d+/},{
    -className:"variable",match:`\\$${f}+`}],q=[{match:/(@|#)available/,
    -className:"keyword",starts:{contains:[{begin:/\(/,end:/\)/,keywords:E,
    -contains:[...S,I,K]}]}},{className:"keyword",match:a(/@/,t(...g))},{
    -className:"meta",match:a(/@/,w)}],U={match:n(/\b[A-Z]/),relevance:0,contains:[{
    -className:"type",
    -match:a(/(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)/,f,"+")
    -},{className:"type",match:y,relevance:0},{match:/[?!]+/,relevance:0},{
    -match:/\.\.\./,relevance:0},{match:a(/\s+&\s+/,n(y)),relevance:0}]},Z={
    -begin:/</,end:/>/,keywords:D,contains:[...v,...B,...q,M,U]};U.contains.push(Z)
    -;const G={begin:/\(/,end:/\)/,relevance:0,keywords:D,contains:["self",{
    -match:a(w,/\s*:/),keywords:"_|0",relevance:0
    -},...v,...B,...k,...S,I,K,...z,...q,U]},H={beginKeywords:"func",contains:[{
    -className:"title",match:t(j.match,w,b),endsParent:!0,relevance:0},p]},R={
    -begin:/</,end:/>/,contains:[...v,U]},V={begin:/\(/,end:/\)/,keywords:D,
    -contains:[{begin:t(n(a(w,/\s*:/)),n(a(w,/\s+/,w,/\s*:/))),end:/:/,relevance:0,
    -contains:[{className:"keyword",match:/\b_\b/},{className:"params",match:w}]
    -},...v,...B,...S,I,K,...q,U,G],endsParent:!0,illegal:/["']/},W={
    -className:"function",match:n(/\bfunc\b/),contains:[H,R,V,p],illegal:[/\[/,/%/]
    -},X={className:"function",match:/\b(subscript|init[?!]?)\s*(?=[<(])/,keywords:{
    -keyword:"subscript init init? init!",$pattern:/\w+[?!]?/},contains:[R,V,p],
    -illegal:/\[|%/},J={beginKeywords:"operator",end:e.MATCH_NOTHING_RE,contains:[{
    -className:"title",match:b,endsParent:!0,relevance:0}]},Q={
    -beginKeywords:"precedencegroup",end:e.MATCH_NOTHING_RE,contains:[{
    -className:"title",match:y,relevance:0},{begin:/{/,end:/}/,relevance:0,
    -endsParent:!0,keywords:[...l,...o],contains:[U]}]};for(const e of K.variants){
    -const n=e.contains.find((e=>"interpol"===e.label));n.keywords=D
    -;const a=[...B,...k,...S,I,K,...z];n.contains=[...a,{begin:/\(/,end:/\)/,
    -contains:["self",...a]}]}return{name:"Swift",keywords:D,contains:[...v,W,X,{
    -className:"class",beginKeywords:"struct protocol class extension enum",
    -end:"\\{",excludeEnd:!0,keywords:D,contains:[e.inherit(e.TITLE_MODE,{
    -begin:/[A-Za-z$_][\u00C0-\u02B80-9A-Za-z$_]*/}),...B]},J,Q,{
    -beginKeywords:"import",end:/$/,contains:[...v],relevance:0
    -},...B,...k,...S,I,K,...z,...q,U,G]}}})());
    -hljs.registerLanguage("typescript",(()=>{"use strict"
    -;const e="[A-Za-z$_][0-9A-Za-z$_]*",n=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends"],a=["true","false","null","undefined","NaN","Infinity"],s=[].concat(["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],["arguments","this","super","console","window","document","localStorage","module","global"],["Intl","DataView","Number","Math","Date","String","RegExp","Object","Function","Boolean","Error","Symbol","Set","Map","WeakSet","WeakMap","Proxy","Reflect","JSON","Promise","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Float32Array","Array","Uint8Array","Uint8ClampedArray","ArrayBuffer","BigInt64Array","BigUint64Array","BigInt"],["EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"])
    -;function t(e){return r("(?=",e,")")}function r(...e){return e.map((e=>{
    -return(n=e)?"string"==typeof n?n:n.source:null;var n})).join("")}return i=>{
    -const c={$pattern:e,
    -keyword:n.concat(["type","namespace","typedef","interface","public","private","protected","implements","declare","abstract","readonly"]),
    -literal:a,
    -built_in:s.concat(["any","void","number","boolean","string","object","never","enum"])
    -},o={className:"meta",begin:"@[A-Za-z$_][0-9A-Za-z$_]*"},l=(e,n,a)=>{
    -const s=e.contains.findIndex((e=>e.label===n))
    -;if(-1===s)throw Error("can not find mode to replace");e.contains.splice(s,1,a)
    -},b=(i=>{const c=e,o={begin:/<[A-Za-z0-9\\._:-]+/,
    -end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(e,n)=>{
    -const a=e[0].length+e.index,s=e.input[a];"<"!==s?">"===s&&(((e,{after:n})=>{
    -const a="</"+e[0].slice(1);return-1!==e.input.indexOf(a,n)})(e,{after:a
    -})||n.ignoreMatch()):n.ignoreMatch()}},l={$pattern:e,keyword:n,literal:a,
    -built_in:s},b="\\.([0-9](_?[0-9])*)",d="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",g={
    -className:"number",variants:[{
    -begin:`(\\b(${d})((${b})|\\.)?|(${b}))[eE][+-]?([0-9](_?[0-9])*)\\b`},{
    -begin:`\\b(${d})\\b((${b})\\b|\\.)?|(${b})\\b`},{
    -begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{
    -begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{
    -begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{
    -begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",
    -end:"\\}",keywords:l,contains:[]},E={begin:"html`",end:"",starts:{end:"`",
    -returnEnd:!1,contains:[i.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},m={
    -begin:"css`",end:"",starts:{end:"`",returnEnd:!1,
    -contains:[i.BACKSLASH_ESCAPE,u],subLanguage:"css"}},y={className:"string",
    -begin:"`",end:"`",contains:[i.BACKSLASH_ESCAPE,u]},_={className:"comment",
    -variants:[i.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{
    -className:"doctag",begin:"@[A-Za-z]+",contains:[{className:"type",begin:"\\{",
    -end:"\\}",relevance:0},{className:"variable",begin:c+"(?=\\s*(-)|$)",
    -endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]
    -}),i.C_BLOCK_COMMENT_MODE,i.C_LINE_COMMENT_MODE]
    -},p=[i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,E,m,y,g,i.REGEXP_MODE]
    -;u.contains=p.concat({begin:/\{/,end:/\}/,keywords:l,contains:["self"].concat(p)
    -});const N=[].concat(_,u.contains),f=N.concat([{begin:/\(/,end:/\)/,keywords:l,
    -contains:["self"].concat(N)}]),A={className:"params",begin:/\(/,end:/\)/,
    -excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f};return{name:"Javascript",
    -aliases:["js","jsx","mjs","cjs"],keywords:l,exports:{PARAMS_CONTAINS:f},
    -illegal:/#(?![$_A-z])/,contains:[i.SHEBANG({label:"shebang",binary:"node",
    -relevance:5}),{label:"use_strict",className:"meta",relevance:10,
    -begin:/^\s*['"]use (strict|asm)['"]/
    -},i.APOS_STRING_MODE,i.QUOTE_STRING_MODE,E,m,y,_,g,{
    -begin:r(/[{,\n]\s*/,t(r(/(((\/\/.*$)|(\/\*(\*[^/]|[^*])*\*\/))\s*)*/,c+"\\s*:"))),
    -relevance:0,contains:[{className:"attr",begin:c+t("\\s*:"),relevance:0}]},{
    -begin:"("+i.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",
    -keywords:"return throw case",contains:[_,i.REGEXP_MODE,{className:"function",
    -begin:"(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+i.UNDERSCORE_IDENT_RE+")\\s*=>",
    -returnBegin:!0,end:"\\s*=>",contains:[{className:"params",variants:[{
    -begin:i.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0
    -},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:l,contains:f}]}]
    -},{begin:/,/,relevance:0},{className:"",begin:/\s/,end:/\s*/,skip:!0},{
    -variants:[{begin:"<>",end:"</>"},{begin:o.begin,"on:begin":o.isTrulyOpeningTag,
    -end:o.end}],subLanguage:"xml",contains:[{begin:o.begin,end:o.end,skip:!0,
    -contains:["self"]}]}],relevance:0},{className:"function",
    -beginKeywords:"function",end:/[{;]/,excludeEnd:!0,keywords:l,
    -contains:["self",i.inherit(i.TITLE_MODE,{begin:c}),A],illegal:/%/},{
    -beginKeywords:"while if switch catch for"},{className:"function",
    -begin:i.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",
    -returnBegin:!0,contains:[A,i.inherit(i.TITLE_MODE,{begin:c})]},{variants:[{
    -begin:"\\."+c},{begin:"\\$"+c}],relevance:0},{className:"class",
    -beginKeywords:"class",end:/[{;=]/,excludeEnd:!0,illegal:/[:"[\]]/,contains:[{
    -beginKeywords:"extends"},i.UNDERSCORE_TITLE_MODE]},{begin:/\b(?=constructor)/,
    -end:/[{;]/,excludeEnd:!0,contains:[i.inherit(i.TITLE_MODE,{begin:c}),"self",A]
    -},{begin:"(get|set)\\s+(?="+c+"\\()",end:/\{/,keywords:"get set",
    -contains:[i.inherit(i.TITLE_MODE,{begin:c}),{begin:/\(\)/},A]},{begin:/\$[(.]/}]
    -}})(i)
    -;return Object.assign(b.keywords,c),b.exports.PARAMS_CONTAINS.push(o),b.contains=b.contains.concat([o,{
    -beginKeywords:"namespace",end:/\{/,excludeEnd:!0},{beginKeywords:"interface",
    -end:/\{/,excludeEnd:!0,keywords:"interface extends"
    -}]),l(b,"shebang",i.SHEBANG()),l(b,"use_strict",{className:"meta",relevance:10,
    -begin:/^\s*['"]use strict['"]/
    -}),b.contains.find((e=>"function"===e.className)).relevance=0,Object.assign(b,{
    -name:"TypeScript",aliases:["ts","tsx"]}),b}})());
    -hljs.registerLanguage("vbnet",(()=>{"use strict";function e(e){
    -return e?"string"==typeof e?e:e.source:null}function n(...n){
    -return n.map((n=>e(n))).join("")}function t(...n){
    -return"("+n.map((n=>e(n))).join("|")+")"}return e=>{
    -const a=/\d{1,2}\/\d{1,2}\/\d{4}/,i=/\d{4}-\d{1,2}-\d{1,2}/,s=/(\d|1[012])(:\d+){0,2} *(AM|PM)/,r=/\d{1,2}(:\d{1,2}){1,2}/,o={
    -className:"literal",variants:[{begin:n(/# */,t(i,a),/ *#/)},{
    -begin:n(/# */,r,/ *#/)},{begin:n(/# */,s,/ *#/)},{
    -begin:n(/# */,t(i,a),/ +/,t(s,r),/ *#/)}]},l=e.COMMENT(/'''/,/$/,{contains:[{
    -className:"doctag",begin:/<\/?/,end:/>/}]}),c=e.COMMENT(null,/$/,{variants:[{
    -begin:/'/},{begin:/([\t ]|^)REM(?=\s)/}]});return{name:"Visual Basic .NET",
    -aliases:["vb"],case_insensitive:!0,classNameAliases:{label:"symbol"},keywords:{
    -keyword:"addhandler alias aggregate ansi as async assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into iterator join key let lib loop me mid module mustinherit mustoverride mybase myclass namespace narrowing new next notinheritable notoverridable of off on operator option optional order overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly yield",
    -built_in:"addressof and andalso await directcast gettype getxmlnamespace is isfalse isnot istrue like mod nameof new not or orelse trycast typeof xor cbool cbyte cchar cdate cdbl cdec cint clng cobj csbyte cshort csng cstr cuint culng cushort",
    -type:"boolean byte char date decimal double integer long object sbyte short single string uinteger ulong ushort",
    -literal:"true false nothing"},
    -illegal:"//|\\{|\\}|endif|gosub|variant|wend|^\\$ ",contains:[{
    -className:"string",begin:/"(""|[^/n])"C\b/},{className:"string",begin:/"/,
    -end:/"/,illegal:/\n/,contains:[{begin:/""/}]},o,{className:"number",relevance:0,
    -variants:[{begin:/\b\d[\d_]*((\.[\d_]+(E[+-]?[\d_]+)?)|(E[+-]?[\d_]+))[RFD@!#]?/
    -},{begin:/\b\d[\d_]*((U?[SIL])|[%&])?/},{begin:/&H[\dA-F_]+((U?[SIL])|[%&])?/},{
    -begin:/&O[0-7_]+((U?[SIL])|[%&])?/},{begin:/&B[01_]+((U?[SIL])|[%&])?/}]},{
    -className:"label",begin:/^\w+:/},l,c,{className:"meta",
    -begin:/[\t ]*#(const|disable|else|elseif|enable|end|externalsource|if|region)\b/,
    -end:/$/,keywords:{
    -"meta-keyword":"const disable else elseif enable end externalsource if region then"
    -},contains:[c]}]}}})());
    -hljs.registerLanguage("yaml",(()=>{"use strict";return e=>{
    -var n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={
    -className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/
    -},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",
    -variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(s,{
    -variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={
    -end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},t={begin:/\{/,
    -end:/\}/,contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]",
    -contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{
    -begin:"\\w[\\w :\\/.-]*:(?=[ \t]|$)"},{begin:'"\\w[\\w :\\/.-]*":(?=[ \t]|$)'},{
    -begin:"'\\w[\\w :\\/.-]*':(?=[ \t]|$)"}]},{className:"meta",begin:"^---\\s*$",
    -relevance:10},{className:"string",
    -begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{
    -begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0,
    -relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type",
    -begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a
    -},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",
    -begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",
    -relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{
    -className:"number",
    -begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"
    -},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},t,g,s],r=[...b]
    -;return r.pop(),r.push(i),l.contains=r,{name:"YAML",case_insensitive:!0,
    -aliases:["yml"],contains:b}}})());
    \ No newline at end of file
    diff --git a/metrics-complete-report-initial-htmlReport/js/highlightjs-line-numbers.min.js b/metrics-complete-report-initial-htmlReport/js/highlightjs-line-numbers.min.js
    deleted file mode 100644
    index 8548576704..0000000000
    --- a/metrics-complete-report-initial-htmlReport/js/highlightjs-line-numbers.min.js
    +++ /dev/null
    @@ -1,24 +0,0 @@
    -/*
    -The MIT License (MIT)
    -
    -Copyright (c) 2017 Yauheni Pakala
    -
    -Permission is hereby granted, free of charge, to any person obtaining a copy
    -of this software and associated documentation files (the "Software"), to deal
    -in the Software without restriction, including without limitation the rights
    -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    -copies of the Software, and to permit persons to whom the Software is
    -furnished to do so, subject to the following conditions:
    -
    -The above copyright notice and this permission notice shall be included in all
    -copies or substantial portions of the Software.
    -
    -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    -SOFTWARE.
    - */
    -!function(r,o){"use strict";var e,i="hljs-ln",l="hljs-ln-line",h="hljs-ln-code",s="hljs-ln-numbers",c="hljs-ln-n",m="data-line-number",a=/\r\n|\r|\n/g;function u(e){for(var n=e.toString(),t=e.anchorNode;"TD"!==t.nodeName;)t=t.parentNode;for(var r=e.focusNode;"TD"!==r.nodeName;)r=r.parentNode;var o=parseInt(t.dataset.lineNumber),a=parseInt(r.dataset.lineNumber);if(o==a)return n;var i,l=t.textContent,s=r.textContent;for(a<o&&(i=o,o=a,a=i,i=l,l=s,s=i);0!==n.indexOf(l);)l=l.slice(1);for(;-1===n.lastIndexOf(s);)s=s.slice(0,-1);for(var c=l,u=function(e){for(var n=e;"TABLE"!==n.nodeName;)n=n.parentNode;return n}(t),d=o+1;d<a;++d){var f=p('.{0}[{1}="{2}"]',[h,m,d]);c+="\n"+u.querySelector(f).textContent}return c+="\n"+s}function n(e){try{var n=o.querySelectorAll("code.hljs,code.nohighlight");for(var t in n)n.hasOwnProperty(t)&&(n[t].classList.contains("nohljsln")||d(n[t],e))}catch(e){r.console.error("LineNumbers error: ",e)}}function d(e,n){"object"==typeof e&&r.setTimeout(function(){e.innerHTML=f(e,n)},0)}function f(e,n){var t,r,o=(t=e,{singleLine:function(e){return!!e.singleLine&&e.singleLine}(r=(r=n)||{}),startFrom:function(e,n){var t=1;isFinite(n.startFrom)&&(t=n.startFrom);var r=function(e,n){return e.hasAttribute(n)?e.getAttribute(n):null}(e,"data-ln-start-from");return null!==r&&(t=function(e,n){if(!e)return n;var t=Number(e);return isFinite(t)?t:n}(r,1)),t}(t,r)});return function e(n){var t=n.childNodes;for(var r in t){var o;t.hasOwnProperty(r)&&(o=t[r],0<(o.textContent.trim().match(a)||[]).length&&(0<o.childNodes.length?e(o):v(o.parentNode)))}}(e),function(e,n){var t=g(e);""===t[t.length-1].trim()&&t.pop();if(1<t.length||n.singleLine){for(var r="",o=0,a=t.length;o<a;o++)r+=p('<tr><td class="{0} {1}" {3}="{5}"><div class="{2}" {3}="{5}"></div></td><td class="{0} {4}" {3}="{5}">{6}</td></tr>',[l,s,c,m,h,o+n.startFrom,0<t[o].length?t[o]:" "]);return p('<table class="{0}">{1}</table>',[i,r])}return e}(e.innerHTML,o)}function v(e){var n=e.className;if(/hljs-/.test(n)){for(var t=g(e.innerHTML),r=0,o="";r<t.length;r++){o+=p('<span class="{0}">{1}</span>\n',[n,0<t[r].length?t[r]:" "])}e.innerHTML=o.trim()}}function g(e){return 0===e.length?[]:e.split(a)}function p(e,t){return e.replace(/\{(\d+)\}/g,function(e,n){return void 0!==t[n]?t[n]:e})}r.hljs?(r.hljs.initLineNumbersOnLoad=function(e){"interactive"===o.readyState||"complete"===o.readyState?n(e):r.addEventListener("DOMContentLoaded",function(){n(e)})},r.hljs.lineNumbersBlock=d,r.hljs.lineNumbersValue=function(e,n){if("string"!=typeof e)return;var t=document.createElement("code");return t.innerHTML=e,f(t,n)},(e=o.createElement("style")).type="text/css",e.innerHTML=p(".{0}{border-collapse:collapse}.{0} td{padding:0}.{1}:before{content:attr({2})}",[i,c,m]),o.getElementsByTagName("head")[0].appendChild(e)):r.console.error("highlight.js not detected!"),document.addEventListener("copy",function(e){var n,t=window.getSelection();!function(e){for(var n=e;n;){if(n.className&&-1!==n.className.indexOf("hljs-ln-code"))return 1;n=n.parentNode}}(t.anchorNode)||(n=-1!==window.navigator.userAgent.indexOf("Edge")?u(t):t.toString(),e.clipboardData.setData("text/plain",n),e.preventDefault())})}(window,document);
    \ No newline at end of file
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index.html b/metrics-complete-report-initial-htmlReport/ns-1/index.html
    deleted file mode 100644
    index cd2f2e2c91..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/index.html
    +++ /dev/null
    @@ -1,1169 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 3a745c404a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,1169 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 259fb699bd..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,1169 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 705054f2ef..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,1169 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 7506715fb7..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,1169 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 713505ed39..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,1169 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index dac3ec7505..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,1169 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index ba3e16e4fc..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,1169 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index cad4eb56bf..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,1169 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index ac6eb4c840..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,1169 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (80/88)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.6%
    -  </span>
    -  <span class="absValue">
    -    (495/630)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (1478/1713)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-27.html">WeightedSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-26.html">UniformSnapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-25.html">UniformReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-24.html">Timer</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-23.html">Snapshot</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-22.html">SlidingWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-21.html">SlidingTimeWindowReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-20.html">SlidingTimeWindowMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1f.html">SlidingTimeWindowArrayReservoirWriteReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1e.html">SlidingTimeWindowArrayReservoirWriteReadAllocate</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1d.html">SlidingTimeWindowArrayReservoirTrimReadTest</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1c.html">SlidingTimeWindowArrayReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1b.html">Slf4jReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1a.html">SharedMetricRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-19.html">ScheduledReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-18.html">RatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-17.html">NoopMetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-16.html">MetricRegistryListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-15.html">MetricRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-14.html">MetricFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-13.html">MetricAttribute</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-12.html">Meter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-11.html">LockFreeExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-10.html">InstrumentedThreadFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-f.html">InstrumentedScheduledExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-e.html">InstrumentedExecutorService</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-d.html">Histogram</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">FixedNameCsvFileProvider</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ExponentiallyDecayingReservoir</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ExponentialMovingAverages</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">EWMA</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">DerivativeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">DefaultSettableGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">CsvReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">Counter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ConsoleReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">Clock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ChunkedAssociativeLongArray</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1.html
    deleted file mode 100644
    index d82366b3cc..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1.html
    +++ /dev/null
    @@ -1,178 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;import java.util.concurrent.atomic.AtomicReference;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Gauge} implementation which caches its value for a period of time.
    -&nbsp; *
    -&nbsp; * @param &lt;T&gt; the type of the gauge&#39;s value
    -&nbsp; */
    -&nbsp;public abstract class CachedGauge&lt;T&gt; implements Gauge&lt;T&gt; {
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final AtomicLong reloadAt;
    -&nbsp;    private final long timeoutNS;
    -&nbsp;    private final AtomicReference&lt;T&gt; value;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new cached gauge with the given timeout period.
    -&nbsp;     *
    -&nbsp;     * @param timeout     the timeout
    -&nbsp;     * @param timeoutUnit the unit of {@code timeout}
    -&nbsp;     */
    -&nbsp;    protected CachedGauge(long timeout, TimeUnit timeoutUnit) {
    -<b class="fc">&nbsp;        this(Clock.defaultClock(), timeout, timeoutUnit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new cached gauge with the given clock and timeout period.
    -&nbsp;     *
    -&nbsp;     * @param clock       the clock used to calculate the timeout
    -&nbsp;     * @param timeout     the timeout
    -&nbsp;     * @param timeoutUnit the unit of {@code timeout}
    -&nbsp;     */
    -<b class="fc">&nbsp;    protected CachedGauge(Clock clock, long timeout, TimeUnit timeoutUnit) {</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.reloadAt = new AtomicLong(clock.getTick());</b>
    -<b class="fc">&nbsp;        this.timeoutNS = timeoutUnit.toNanos(timeout);</b>
    -<b class="fc">&nbsp;        this.value = new AtomicReference&lt;&gt;();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Loads the value and returns it.
    -&nbsp;     *
    -&nbsp;     * @return the new value
    -&nbsp;     */
    -&nbsp;    protected abstract T loadValue();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public T getValue() {
    -<b class="fc">&nbsp;        T currentValue = this.value.get();</b>
    -<b class="fc">&nbsp;        if (shouldLoad() || currentValue == null) {</b>
    -<b class="fc">&nbsp;            T newValue = loadValue();</b>
    -<b class="fc">&nbsp;            if (!this.value.compareAndSet(currentValue, newValue)) {</b>
    -<b class="fc">&nbsp;                return this.value.get();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return newValue;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return currentValue;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private boolean shouldLoad() {
    -&nbsp;        for ( ;; ) {
    -<b class="fc">&nbsp;            final long time = clock.getTick();</b>
    -<b class="fc">&nbsp;            final long current = reloadAt.get();</b>
    -<b class="fc">&nbsp;            if (current &gt; time) {</b>
    -<b class="fc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (reloadAt.compareAndSet(current, time + timeoutNS)) {</b>
    -<b class="fc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-10.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-10.html
    deleted file mode 100644
    index 0bdb354f27..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-10.html
    +++ /dev/null
    @@ -1,203 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedThreadFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedThreadFactory (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedThreadFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedThreadFactory$InstrumentedRunnable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link ThreadFactory} that monitors the number of threads created, running and terminated.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    -&nbsp; * &quot;your-thread-delegate.created&quot;, &quot;your-thread-delegate.running&quot;, etc.
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedThreadFactory implements ThreadFactory {</b>
    -<b class="fc">&nbsp;    private static final AtomicLong NAME_COUNTER = new AtomicLong();</b>
    -&nbsp;
    -&nbsp;    private final ThreadFactory delegate;
    -&nbsp;    private final Meter created;
    -&nbsp;    private final Counter running;
    -&nbsp;    private final Meter terminated;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps a {@link ThreadFactory}, uses a default auto-generated name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ThreadFactory} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     */
    -&nbsp;    public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(delegate, registry, &quot;instrumented-thread-delegate-&quot; + NAME_COUNTER.incrementAndGet());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps a {@link ThreadFactory} with an explicit name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ThreadFactory} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     * @param name     name for this delegate.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry, String name) {</b>
    -<b class="fc">&nbsp;        this.delegate = delegate;</b>
    -<b class="fc">&nbsp;        this.created = registry.meter(MetricRegistry.name(name, &quot;created&quot;));</b>
    -<b class="fc">&nbsp;        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</b>
    -<b class="fc">&nbsp;        this.terminated = registry.meter(MetricRegistry.name(name, &quot;terminated&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Thread newThread(Runnable runnable) {
    -<b class="fc">&nbsp;        Runnable wrappedRunnable = new InstrumentedRunnable(runnable);</b>
    -<b class="fc">&nbsp;        Thread thread = delegate.newThread(wrappedRunnable);</b>
    -<b class="fc">&nbsp;        created.mark();</b>
    -<b class="fc">&nbsp;        return thread;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedRunnable implements Runnable {
    -&nbsp;        private final Runnable task;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedRunnable(Runnable task) {</b>
    -<b class="fc">&nbsp;            this.task = task;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void run() {
    -<b class="fc">&nbsp;            running.inc();</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                task.run();</b>
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                terminated.mark();</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-11.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-11.html
    deleted file mode 100644
    index 1e94b2fa67..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-11.html
    +++ /dev/null
    @@ -1,441 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > LockFreeExponentiallyDecayingReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: LockFreeExponentiallyDecayingReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">LockFreeExponentiallyDecayingReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (23/23)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">LockFreeExponentiallyDecayingReservoir$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">LockFreeExponentiallyDecayingReservoir$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (15/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">LockFreeExponentiallyDecayingReservoir$RescalingConsumer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">LockFreeExponentiallyDecayingReservoir$State</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.3%
    -  </span>
    -  <span class="absValue">
    -    (26/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.8%
    -  </span>
    -  <span class="absValue">
    -    (75/80)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.WeightedSnapshot.WeightedSample;
    -&nbsp;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.Objects;
    -&nbsp;import java.util.concurrent.ConcurrentSkipListMap;
    -&nbsp;import java.util.concurrent.ThreadLocalRandom;
    -&nbsp;import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    -&nbsp;import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
    -&nbsp;import java.util.function.BiConsumer;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A lock-free exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al&#39;s
    -&nbsp; * forward-decaying priority reservoir sampling method to produce a statistically representative
    -&nbsp; * sampling reservoir, exponentially biased towards newer entries.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf&quot;&gt;
    -&nbsp; * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE &#39;09:
    -&nbsp; * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)&lt;/a&gt;
    -&nbsp; *
    -&nbsp; * {@link LockFreeExponentiallyDecayingReservoir} is based closely on the {@link ExponentiallyDecayingReservoir},
    -&nbsp; * however it provides looser guarantees while completely avoiding locks.
    -&nbsp; *
    -&nbsp; * Looser guarantees:
    -&nbsp; * &lt;ul&gt;
    -&nbsp; *     &lt;li&gt; Updates which occur concurrently with rescaling may be discarded if the orphaned state node is updated after
    -&nbsp; *     rescale has replaced it. This condition has a greater probability as the rescale interval is reduced due to the
    -&nbsp; *     increased frequency of rescaling. {@link #rescaleThresholdNanos} values below 30 seconds are not recommended.
    -&nbsp; *     &lt;li&gt; Given a small rescale threshold, updates may attempt to rescale into a new bucket, but lose the CAS race
    -&nbsp; *     and update into a newer bucket than expected. In these cases the measurement weight is reduced accordingly.
    -&nbsp; *     &lt;li&gt;In the worst case, all concurrent threads updating the reservoir may attempt to rescale rather than
    -&nbsp; *     a single thread holding an exclusive write lock. It&#39;s expected that the configuration is set such that
    -&nbsp; *     rescaling is substantially less common than updating at peak load. Even so, when size is reasonably small
    -&nbsp; *     it can be more efficient to rescale than to park and context switch.
    -&nbsp; * &lt;/ul&gt;
    -&nbsp; *
    -&nbsp; * @author &lt;a href=&quot;mailto:ckozak@ckozak.net&quot;&gt;Carter Kozak&lt;/a&gt;
    -&nbsp; */
    -<b class="fc">&nbsp;public final class LockFreeExponentiallyDecayingReservoir implements Reservoir {</b>
    -&nbsp;
    -&nbsp;    private static final double SECONDS_PER_NANO = .000_000_001D;
    -<b class="fc">&nbsp;    private static final AtomicReferenceFieldUpdater&lt;LockFreeExponentiallyDecayingReservoir, State&gt; stateUpdater =</b>
    -<b class="fc">&nbsp;            AtomicReferenceFieldUpdater.newUpdater(LockFreeExponentiallyDecayingReservoir.class, State.class, &quot;state&quot;);</b>
    -&nbsp;
    -&nbsp;    private final int size;
    -&nbsp;    private final long rescaleThresholdNanos;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    private volatile State state;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final class State {</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private static final AtomicIntegerFieldUpdater&lt;State&gt; countUpdater =</b>
    -<b class="fc">&nbsp;                AtomicIntegerFieldUpdater.newUpdater(State.class, &quot;count&quot;);</b>
    -&nbsp;
    -&nbsp;        private final double alphaNanos;
    -&nbsp;        private final int size;
    -&nbsp;        private final long startTick;
    -&nbsp;        // Count is updated after samples are successfully added to the map.
    -&nbsp;        private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    -&nbsp;
    -&nbsp;        private volatile int count;
    -&nbsp;
    -&nbsp;        State(
    -&nbsp;                double alphaNanos,
    -&nbsp;                int size,
    -&nbsp;                long startTick,
    -&nbsp;                int count,
    -<b class="fc">&nbsp;                ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values) {</b>
    -<b class="fc">&nbsp;            this.alphaNanos = alphaNanos;</b>
    -<b class="fc">&nbsp;            this.size = size;</b>
    -<b class="fc">&nbsp;            this.startTick = startTick;</b>
    -<b class="fc">&nbsp;            this.values = values;</b>
    -<b class="fc">&nbsp;            this.count = count;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void update(long value, long timestampNanos) {
    -<b class="fc">&nbsp;            double itemWeight = weight(timestampNanos - startTick);</b>
    -<b class="fc">&nbsp;            double priority = itemWeight / ThreadLocalRandom.current().nextDouble();</b>
    -<b class="fc">&nbsp;            boolean mapIsFull = count &gt;= size;</b>
    -<b class="fc">&nbsp;            if (!mapIsFull || values.firstKey() &lt; priority) {</b>
    -<b class="fc">&nbsp;                addSample(priority, value, itemWeight, mapIsFull);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void addSample(double priority, long value, double itemWeight, boolean bypassIncrement) {
    -<b class="fc">&nbsp;            if (values.putIfAbsent(priority, new WeightedSample(value, itemWeight)) == null</b>
    -<b class="fc">&nbsp;                    &amp;&amp; (bypassIncrement || countUpdater.incrementAndGet(this) &gt; size)) {</b>
    -<b class="fc">&nbsp;                values.pollFirstEntry();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /* &quot;A common feature of the above techniques—indeed, the key technique that
    -&nbsp;         * allows us to track the decayed weights efficiently—is that they maintain
    -&nbsp;         * counts and other quantities based on g(ti ? L), and only scale by g(t ? L)
    -&nbsp;         * at query time. But while g(ti ?L)/g(t?L) is guaranteed to lie between zero
    -&nbsp;         * and one, the intermediate values of g(ti ? L) could become very large. For
    -&nbsp;         * polynomial functions, these values should not grow too large, and should be
    -&nbsp;         * effectively represented in practice by floating point values without loss of
    -&nbsp;         * precision. For exponential functions, these values could grow quite large as
    -&nbsp;         * new values of (ti ? L) become large, and potentially exceed the capacity of
    -&nbsp;         * common floating point types. However, since the values stored by the
    -&nbsp;         * algorithms are linear combinations of g values (scaled sums), they can be
    -&nbsp;         * rescaled relative to a new landmark. That is, by the analysis of exponential
    -&nbsp;         * decay in Section III-A, the choice of L does not affect the final result. We
    -&nbsp;         * can therefore multiply each value based on L by a factor of exp(??(L? ? L)),
    -&nbsp;         * and obtain the correct value as if we had instead computed relative to a new
    -&nbsp;         * landmark L? (and then use this new L? at query time). This can be done with
    -&nbsp;         * a linear pass over whatever data structure is being used.&quot;
    -&nbsp;         */
    -&nbsp;        State rescale(long newTick) {
    -<b class="fc">&nbsp;            long durationNanos = newTick - startTick;</b>
    -<b class="fc">&nbsp;            double scalingFactor = Math.exp(-alphaNanos * durationNanos);</b>
    -<b class="fc">&nbsp;            int newCount = 0;</b>
    -<b class="fc">&nbsp;            ConcurrentSkipListMap&lt;Double, WeightedSample&gt; newValues = new ConcurrentSkipListMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;            if (Double.compare(scalingFactor, 0) != 0) {</b>
    -<b class="fc">&nbsp;                RescalingConsumer consumer = new RescalingConsumer(scalingFactor, newValues);</b>
    -<b class="fc">&nbsp;                values.forEach(consumer);</b>
    -&nbsp;                // make sure the counter is in sync with the number of stored samples.
    -<b class="fc">&nbsp;                newCount = consumer.count;</b>
    -&nbsp;            }
    -&nbsp;            // It&#39;s possible that more values were added while the map was scanned, those with the
    -&nbsp;            // minimum priorities are removed.
    -<b class="fc">&nbsp;            while (newCount &gt; size) {</b>
    -<b class="nc">&nbsp;                Objects.requireNonNull(newValues.pollFirstEntry(), &quot;Expected an entry&quot;);</b>
    -<b class="nc">&nbsp;                newCount--;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new State(alphaNanos, size, newTick, newCount, newValues);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private double weight(long durationNanos) {
    -<b class="fc">&nbsp;            return Math.exp(alphaNanos * durationNanos);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final class RescalingConsumer implements BiConsumer&lt;Double, WeightedSample&gt; {</b>
    -&nbsp;        private final double scalingFactor;
    -&nbsp;        private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    -&nbsp;        private int count;
    -&nbsp;
    -<b class="fc">&nbsp;        RescalingConsumer(double scalingFactor, ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values) {</b>
    -<b class="fc">&nbsp;            this.scalingFactor = scalingFactor;</b>
    -<b class="fc">&nbsp;            this.values = values;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void accept(Double priority, WeightedSample sample) {
    -<b class="fc">&nbsp;            double newWeight = sample.weight * scalingFactor;</b>
    -<b class="fc">&nbsp;            if (Double.compare(newWeight, 0) == 0) {</b>
    -&nbsp;                return;
    -&nbsp;            }
    -<b class="fc">&nbsp;            WeightedSample newSample = new WeightedSample(sample.value, newWeight);</b>
    -<b class="fc">&nbsp;            if (values.put(priority * scalingFactor, newSample) == null) {</b>
    -<b class="fc">&nbsp;                count++;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private LockFreeExponentiallyDecayingReservoir(int size, double alpha, Duration rescaleThreshold, Clock clock) {</b>
    -&nbsp;        // Scale alpha to nanoseconds
    -<b class="fc">&nbsp;        double alphaNanos = alpha * SECONDS_PER_NANO;</b>
    -<b class="fc">&nbsp;        this.size = size;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.rescaleThresholdNanos = rescaleThreshold.toNanos();</b>
    -<b class="fc">&nbsp;        this.state = new State(alphaNanos, size, clock.getTick(), 0, new ConcurrentSkipListMap&lt;&gt;());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        return Math.min(size, state.count);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        long now = clock.getTick();</b>
    -<b class="fc">&nbsp;        rescaleIfNeeded(now).update(value, now);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private State rescaleIfNeeded(long currentTick) {
    -&nbsp;        // This method is optimized for size so the check may be quickly inlined.
    -&nbsp;        // Rescaling occurs substantially less frequently than the check itself.
    -<b class="fc">&nbsp;        State stateSnapshot = this.state;</b>
    -<b class="fc">&nbsp;        if (currentTick - stateSnapshot.startTick &gt;= rescaleThresholdNanos) {</b>
    -<b class="fc">&nbsp;            return doRescale(currentTick, stateSnapshot);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return stateSnapshot;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private State doRescale(long currentTick, State stateSnapshot) {
    -<b class="fc">&nbsp;        State newState = stateSnapshot.rescale(currentTick);</b>
    -<b class="fc">&nbsp;        if (stateUpdater.compareAndSet(this, stateSnapshot, newState)) {</b>
    -&nbsp;            // newState successfully installed
    -<b class="fc">&nbsp;            return newState;</b>
    -&nbsp;        }
    -&nbsp;        // Otherwise another thread has won the race and we can return the result of a volatile read.
    -&nbsp;        // It&#39;s possible this has taken so long that another update is required, however that&#39;s unlikely
    -&nbsp;        // and no worse than the standard race between a rescale and update.
    -<b class="fc">&nbsp;        return this.state;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        State stateSnapshot = rescaleIfNeeded(clock.getTick());</b>
    -<b class="fc">&nbsp;        return new WeightedSnapshot(stateSnapshot.values.values());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Builder builder() {
    -<b class="fc">&nbsp;        return new Builder();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * By default this uses a size of 1028 elements, which offers a 99.9%
    -&nbsp;     * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
    -&nbsp;     * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static final class Builder {</b>
    -&nbsp;        private static final int DEFAULT_SIZE = 1028;
    -&nbsp;        private static final double DEFAULT_ALPHA = 0.015D;
    -<b class="fc">&nbsp;        private static final Duration DEFAULT_RESCALE_THRESHOLD = Duration.ofHours(1);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private int size = DEFAULT_SIZE;</b>
    -<b class="fc">&nbsp;        private double alpha = DEFAULT_ALPHA;</b>
    -<b class="fc">&nbsp;        private Duration rescaleThreshold = DEFAULT_RESCALE_THRESHOLD;</b>
    -<b class="fc">&nbsp;        private Clock clock = Clock.defaultClock();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder() {}</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Maximum number of samples to keep in the reservoir. Once this number is reached older samples are
    -&nbsp;         * replaced (based on weight, with some amount of random jitter).
    -&nbsp;         */
    -&nbsp;        public Builder size(int value) {
    -<b class="fc">&nbsp;            if (value &lt;= 0) {</b>
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(</b>
    -&nbsp;                        &quot;LockFreeExponentiallyDecayingReservoir size must be positive: &quot; + value);
    -&nbsp;            }
    -<b class="fc">&nbsp;            this.size = value;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Alpha is the exponential decay factor. Higher values bias results more heavily toward newer values.
    -&nbsp;         */
    -&nbsp;        public Builder alpha(double value) {
    -<b class="fc">&nbsp;            this.alpha = value;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Interval at which this reservoir is rescaled.
    -&nbsp;         */
    -&nbsp;        public Builder rescaleThreshold(Duration value) {
    -<b class="nc">&nbsp;            this.rescaleThreshold = Objects.requireNonNull(value, &quot;rescaleThreshold is required&quot;);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Clock instance used for decay.
    -&nbsp;         */
    -&nbsp;        public Builder clock(Clock value) {
    -<b class="fc">&nbsp;            this.clock = Objects.requireNonNull(value, &quot;clock is required&quot;);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Reservoir build() {
    -<b class="fc">&nbsp;            return new LockFreeExponentiallyDecayingReservoir(size, alpha, rescaleThreshold, clock);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-12.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-12.html
    deleted file mode 100644
    index dd0af680ce..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-12.html
    +++ /dev/null
    @@ -1,210 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Meter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Meter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Meter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A meter metric which measures mean throughput and one-, five-, and fifteen-minute
    -&nbsp; * moving average throughputs.
    -&nbsp; *
    -&nbsp; * @see MovingAverages
    -&nbsp; */
    -&nbsp;public class Meter implements Metered {
    -&nbsp;
    -&nbsp;    private final MovingAverages movingAverages;
    -<b class="fc">&nbsp;    private final LongAdder count = new LongAdder();</b>
    -&nbsp;    private final long startTime;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Meter}.
    -&nbsp;     *
    -&nbsp;     * @param movingAverages the {@link MovingAverages} implementation to use
    -&nbsp;     */
    -&nbsp;    public Meter(MovingAverages movingAverages) {
    -<b class="nc">&nbsp;        this(movingAverages, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Meter}.
    -&nbsp;     */
    -&nbsp;    public Meter() {
    -<b class="fc">&nbsp;        this(Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Meter}.
    -&nbsp;     *
    -&nbsp;     * @param clock the clock to use for the meter ticks
    -&nbsp;     */
    -&nbsp;    public Meter(Clock clock) {
    -<b class="fc">&nbsp;        this(new ExponentialMovingAverages(clock), clock);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Meter}.
    -&nbsp;     *
    -&nbsp;     * @param movingAverages the {@link MovingAverages} implementation to use
    -&nbsp;     * @param clock          the clock to use for the meter ticks
    -&nbsp;     */
    -<b class="fc">&nbsp;    public Meter(MovingAverages movingAverages, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.movingAverages = movingAverages;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.startTime = this.clock.getTick();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Mark the occurrence of an event.
    -&nbsp;     */
    -&nbsp;    public void mark() {
    -<b class="fc">&nbsp;        mark(1);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Mark the occurrence of a given number of events.
    -&nbsp;     *
    -&nbsp;     * @param n the number of events
    -&nbsp;     */
    -&nbsp;    public void mark(long n) {
    -<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    -<b class="fc">&nbsp;        count.add(n);</b>
    -<b class="fc">&nbsp;        movingAverages.update(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public long getCount() {
    -<b class="fc">&nbsp;        return count.sum();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getFifteenMinuteRate() {
    -<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    -<b class="fc">&nbsp;        return movingAverages.getM15Rate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getFiveMinuteRate() {
    -<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    -<b class="fc">&nbsp;        return movingAverages.getM5Rate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getMeanRate() {
    -<b class="fc">&nbsp;        if (getCount() == 0) {</b>
    -<b class="fc">&nbsp;            return 0.0;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final double elapsed = clock.getTick() - startTime;</b>
    -<b class="fc">&nbsp;            return getCount() / elapsed * TimeUnit.SECONDS.toNanos(1);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getOneMinuteRate() {
    -<b class="fc">&nbsp;        movingAverages.tickIfNecessary();</b>
    -<b class="fc">&nbsp;        return movingAverages.getM1Rate();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-13.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-13.html
    deleted file mode 100644
    index 85fc518da7..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-13.html
    +++ /dev/null
    @@ -1,137 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricAttribute</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricAttribute (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricAttribute</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Represents attributes of metrics which can be reported.
    -&nbsp; */
    -<b class="fc">&nbsp;public enum MetricAttribute {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    MAX(&quot;max&quot;),</b>
    -<b class="fc">&nbsp;    MEAN(&quot;mean&quot;),</b>
    -<b class="fc">&nbsp;    MIN(&quot;min&quot;),</b>
    -<b class="fc">&nbsp;    STDDEV(&quot;stddev&quot;),</b>
    -<b class="fc">&nbsp;    P50(&quot;p50&quot;),</b>
    -<b class="fc">&nbsp;    P75(&quot;p75&quot;),</b>
    -<b class="fc">&nbsp;    P95(&quot;p95&quot;),</b>
    -<b class="fc">&nbsp;    P98(&quot;p98&quot;),</b>
    -<b class="fc">&nbsp;    P99(&quot;p99&quot;),</b>
    -<b class="fc">&nbsp;    P999(&quot;p999&quot;),</b>
    -<b class="fc">&nbsp;    COUNT(&quot;count&quot;),</b>
    -<b class="fc">&nbsp;    M1_RATE(&quot;m1_rate&quot;),</b>
    -<b class="fc">&nbsp;    M5_RATE(&quot;m5_rate&quot;),</b>
    -<b class="fc">&nbsp;    M15_RATE(&quot;m15_rate&quot;),</b>
    -<b class="fc">&nbsp;    MEAN_RATE(&quot;mean_rate&quot;);</b>
    -&nbsp;
    -&nbsp;    private final String code;
    -&nbsp;
    -<b class="fc">&nbsp;    MetricAttribute(String code) {</b>
    -<b class="fc">&nbsp;        this.code = code;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getCode() {
    -<b class="fc">&nbsp;        return code;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-14.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-14.html
    deleted file mode 100644
    index d8d5bb8eeb..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-14.html
    +++ /dev/null
    @@ -1,136 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricFilter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A filter used to determine whether or not a metric should be reported, among other things.
    -&nbsp; */
    -&nbsp;public interface MetricFilter {
    -&nbsp;    /**
    -&nbsp;     * Matches all metrics, regardless of type or name.
    -&nbsp;     */
    -<b class="fc">&nbsp;    MetricFilter ALL = (name, metric) -&gt; true;</b>
    -&nbsp;
    -&nbsp;    static MetricFilter startsWith(String prefix) {
    -<b class="fc">&nbsp;        return (name, metric) -&gt; name.startsWith(prefix);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    static MetricFilter endsWith(String suffix) {
    -<b class="fc">&nbsp;        return (name, metric) -&gt; name.endsWith(suffix);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    static MetricFilter contains(String substring) {
    -<b class="fc">&nbsp;        return (name, metric) -&gt; name.contains(substring);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns {@code true} if the metric matches the filter; {@code false} otherwise.
    -&nbsp;     *
    -&nbsp;     * @param name   the metric&#39;s name
    -&nbsp;     * @param metric the metric
    -&nbsp;     * @return {@code true} if the metric matches the filter
    -&nbsp;     */
    -&nbsp;    boolean matches(String name, Metric metric);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-15.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-15.html
    deleted file mode 100644
    index 27e4a83157..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-15.html
    +++ /dev/null
    @@ -1,1026 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricRegistry</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricRegistry (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricRegistry</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (41/41)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (108/116)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetricRegistry$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    36.4%
    -  </span>
    -  <span class="absValue">
    -    (4/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    36.4%
    -  </span>
    -  <span class="absValue">
    -    (4/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricBuilder$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistry$MetricSupplier</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (76/83)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.7%
    -  </span>
    -  <span class="absValue">
    -    (147/162)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.SortedSet;
    -&nbsp;import java.util.TreeMap;
    -&nbsp;import java.util.TreeSet;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.CopyOnWriteArrayList;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A registry of metric instances.
    -&nbsp; */
    -&nbsp;public class MetricRegistry implements MetricSet {
    -&nbsp;    /**
    -&nbsp;     * Concatenates elements to form a dotted name, eliding any null values or empty strings.
    -&nbsp;     *
    -&nbsp;     * @param name  the first element of the name
    -&nbsp;     * @param names the remaining elements of the name
    -&nbsp;     * @return {@code name} and {@code names} concatenated by periods
    -&nbsp;     */
    -&nbsp;    public static String name(String name, String... names) {
    -<b class="fc">&nbsp;        final StringBuilder builder = new StringBuilder();</b>
    -<b class="fc">&nbsp;        append(builder, name);</b>
    -<b class="fc">&nbsp;        if (names != null) {</b>
    -<b class="fc">&nbsp;            for (String s : names) {</b>
    -<b class="fc">&nbsp;                append(builder, s);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return builder.toString();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Concatenates a class name and elements to form a dotted name, eliding any null values or
    -&nbsp;     * empty strings.
    -&nbsp;     *
    -&nbsp;     * @param klass the first element of the name
    -&nbsp;     * @param names the remaining elements of the name
    -&nbsp;     * @return {@code klass} and {@code names} concatenated by periods
    -&nbsp;     */
    -&nbsp;    public static String name(Class&lt;?&gt; klass, String... names) {
    -<b class="fc">&nbsp;        return name(klass.getName(), names);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static void append(StringBuilder builder, String part) {
    -<b class="fc">&nbsp;        if (part != null &amp;&amp; !part.isEmpty()) {</b>
    -<b class="fc">&nbsp;            if (builder.length() &gt; 0) {</b>
    -<b class="fc">&nbsp;                builder.append(&#39;.&#39;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            builder.append(part);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final ConcurrentMap&lt;String, Metric&gt; metrics;
    -&nbsp;    private final List&lt;MetricRegistryListener&gt; listeners;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link MetricRegistry}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public MetricRegistry() {</b>
    -<b class="fc">&nbsp;        this.metrics = buildMap();</b>
    -<b class="fc">&nbsp;        this.listeners = new CopyOnWriteArrayList&lt;&gt;();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ConcurrentMap} implementation for use inside the registry. Override this
    -&nbsp;     * to create a {@link MetricRegistry} with space- or time-bounded metric lifecycles, for
    -&nbsp;     * example.
    -&nbsp;     *
    -&nbsp;     * @return a new {@link ConcurrentMap}
    -&nbsp;     */
    -&nbsp;    protected ConcurrentMap&lt;String, Metric&gt; buildMap() {
    -<b class="fc">&nbsp;        return new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Given a {@link Gauge}, registers it under the given name and returns it
    -&nbsp;     *
    -&nbsp;     * @param name the name of the gauge
    -&nbsp;     * @param &lt;T&gt;  the type of the gauge&#39;s value
    -&nbsp;     * @return the registered {@link Gauge}
    -&nbsp;     * @since 4.2.10
    -&nbsp;     */
    -&nbsp;    public &lt;T&gt; Gauge&lt;T&gt; registerGauge(String name, Gauge&lt;T&gt; metric) throws IllegalArgumentException {
    -<b class="fc">&nbsp;        return register(name, metric);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Given a {@link Metric}, registers it under the given name.
    -&nbsp;     *
    -&nbsp;     * @param name   the name of the metric
    -&nbsp;     * @param metric the metric
    -&nbsp;     * @param &lt;T&gt;    the type of the metric
    -&nbsp;     * @return {@code metric}
    -&nbsp;     * @throws IllegalArgumentException if the name is already registered or metric variable is null
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
    -&nbsp;    public &lt;T extends Metric&gt; T register(String name, T metric) throws IllegalArgumentException {
    -&nbsp;
    -<b class="fc">&nbsp;        if (metric == null) {</b>
    -<b class="fc">&nbsp;            throw new NullPointerException(&quot;metric == null&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (metric instanceof MetricRegistry) {</b>
    -<b class="fc">&nbsp;            final MetricRegistry childRegistry = (MetricRegistry) metric;</b>
    -<b class="fc">&nbsp;            final String childName = name;</b>
    -<b class="fc">&nbsp;            childRegistry.addListener(new MetricRegistryListener() {</b>
    -&nbsp;                @Override
    -&nbsp;                public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;                    register(name(childName, name), gauge);</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onGaugeRemoved(String name) {
    -<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onCounterAdded(String name, Counter counter) {
    -<b class="fc">&nbsp;                    register(name(childName, name), counter);</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onCounterRemoved(String name) {
    -<b class="fc">&nbsp;                    remove(name(childName, name));</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onHistogramAdded(String name, Histogram histogram) {
    -<b class="nc">&nbsp;                    register(name(childName, name), histogram);</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onHistogramRemoved(String name) {
    -<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onMeterAdded(String name, Meter meter) {
    -<b class="nc">&nbsp;                    register(name(childName, name), meter);</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onMeterRemoved(String name) {
    -<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onTimerAdded(String name, Timer timer) {
    -<b class="nc">&nbsp;                    register(name(childName, name), timer);</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                @Override
    -&nbsp;                public void onTimerRemoved(String name) {
    -<b class="nc">&nbsp;                    remove(name(childName, name));</b>
    -&nbsp;                }
    -&nbsp;            });
    -<b class="fc">&nbsp;        } else if (metric instanceof MetricSet) {</b>
    -<b class="fc">&nbsp;            registerAll(name, (MetricSet) metric);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final Metric existing = metrics.putIfAbsent(name, metric);</b>
    -<b class="fc">&nbsp;            if (existing == null) {</b>
    -<b class="fc">&nbsp;                onMetricAdded(name, metric);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;A metric named &quot; + name + &quot; already exists&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return metric;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Given a metric set, registers them.
    -&nbsp;     *
    -&nbsp;     * @param metrics a set of metrics
    -&nbsp;     * @throws IllegalArgumentException if any of the names are already registered
    -&nbsp;     */
    -&nbsp;    public void registerAll(MetricSet metrics) throws IllegalArgumentException {
    -<b class="fc">&nbsp;        registerAll(null, metrics);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Counter} registered under this name; or create and register
    -&nbsp;     * a new {@link Counter} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a new or pre-existing {@link Counter}
    -&nbsp;     */
    -&nbsp;    public Counter counter(String name) {
    -<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.COUNTERS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Counter} registered under this name; or create and register
    -&nbsp;     * a new {@link Counter} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a counter.
    -&nbsp;     * @return a new or pre-existing {@link Counter}
    -&nbsp;     */
    -&nbsp;    public Counter counter(String name, final MetricSupplier&lt;Counter&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Counter&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Counter newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Counter.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Histogram} registered under this name; or create and register
    -&nbsp;     * a new {@link Histogram} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a new or pre-existing {@link Histogram}
    -&nbsp;     */
    -&nbsp;    public Histogram histogram(String name) {
    -<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.HISTOGRAMS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Histogram} registered under this name; or create and register
    -&nbsp;     * a new {@link Histogram} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a histogram
    -&nbsp;     * @return a new or pre-existing {@link Histogram}
    -&nbsp;     */
    -&nbsp;    public Histogram histogram(String name, final MetricSupplier&lt;Histogram&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Histogram&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Histogram newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Histogram.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Meter} registered under this name; or create and register
    -&nbsp;     * a new {@link Meter} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a new or pre-existing {@link Meter}
    -&nbsp;     */
    -&nbsp;    public Meter meter(String name) {
    -<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.METERS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Meter} registered under this name; or create and register
    -&nbsp;     * a new {@link Meter} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a Meter
    -&nbsp;     * @return a new or pre-existing {@link Meter}
    -&nbsp;     */
    -&nbsp;    public Meter meter(String name, final MetricSupplier&lt;Meter&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Meter&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Meter newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Meter.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Timer} registered under this name; or create and register
    -&nbsp;     * a new {@link Timer} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a new or pre-existing {@link Timer}
    -&nbsp;     */
    -&nbsp;    public Timer timer(String name) {
    -<b class="fc">&nbsp;        return getOrAdd(name, MetricBuilder.TIMERS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Timer} registered under this name; or create and register
    -&nbsp;     * a new {@link Timer} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a Timer
    -&nbsp;     * @return a new or pre-existing {@link Timer}
    -&nbsp;     */
    -&nbsp;    public Timer timer(String name, final MetricSupplier&lt;Timer&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;Timer&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Timer newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Timer.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Gauge} registered under this name; or create and register
    -&nbsp;     * a new {@link SettableGauge} if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return a pre-existing {@link Gauge} or a new {@link SettableGauge}
    -&nbsp;     * @since 4.2
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    -&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name) {
    -<b class="fc">&nbsp;        return (T) getOrAdd(name, MetricBuilder.GAUGES);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Return the {@link Gauge} registered under this name; or create and register
    -&nbsp;     * a new {@link Gauge} using the provided MetricSupplier if none is registered.
    -&nbsp;     *
    -&nbsp;     * @param name     the name of the metric
    -&nbsp;     * @param supplier a MetricSupplier that can be used to manufacture a Gauge
    -&nbsp;     * @return a new or pre-existing {@link Gauge}
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name, final MetricSupplier&lt;T&gt; supplier) {
    -<b class="fc">&nbsp;        return getOrAdd(name, new MetricBuilder&lt;T&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public T newMetric() {
    -<b class="fc">&nbsp;                return supplier.newMetric();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Gauge.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Removes the metric with the given name.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the metric
    -&nbsp;     * @return whether or not the metric was removed
    -&nbsp;     */
    -&nbsp;    public boolean remove(String name) {
    -<b class="fc">&nbsp;        final Metric metric = metrics.remove(name);</b>
    -<b class="fc">&nbsp;        if (metric != null) {</b>
    -<b class="fc">&nbsp;            onMetricRemoved(name, metric);</b>
    -<b class="fc">&nbsp;            return true;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return false;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Removes all metrics which match the given filter.
    -&nbsp;     *
    -&nbsp;     * @param filter a filter
    -&nbsp;     */
    -&nbsp;    public void removeMatching(MetricFilter filter) {
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    -<b class="fc">&nbsp;            if (filter.matches(entry.getKey(), entry.getValue())) {</b>
    -<b class="fc">&nbsp;                remove(entry.getKey());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a {@link MetricRegistryListener} to a collection of listeners that will be notified on
    -&nbsp;     * metric creation.  Listeners will be notified in the order in which they are added.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * &lt;b&gt;N.B.:&lt;/b&gt; The listener will be notified of all existing metrics when it first registers.
    -&nbsp;     *
    -&nbsp;     * @param listener the listener that will be notified
    -&nbsp;     */
    -&nbsp;    public void addListener(MetricRegistryListener listener) {
    -<b class="fc">&nbsp;        listeners.add(listener);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    -<b class="fc">&nbsp;            notifyListenerOfAddedMetric(listener, entry.getValue(), entry.getKey());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Removes a {@link MetricRegistryListener} from this registry&#39;s collection of listeners.
    -&nbsp;     *
    -&nbsp;     * @param listener the listener that will be removed
    -&nbsp;     */
    -&nbsp;    public void removeListener(MetricRegistryListener listener) {
    -<b class="fc">&nbsp;        listeners.remove(listener);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a set of the names of all the metrics in the registry.
    -&nbsp;     *
    -&nbsp;     * @return the names of all the metrics
    -&nbsp;     */
    -&nbsp;    public SortedSet&lt;String&gt; getNames() {
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedSet(new TreeSet&lt;&gt;(metrics.keySet()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the gauges in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the gauges in the registry
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges() {
    -<b class="fc">&nbsp;        return getGauges(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the gauges in the registry and their names which match the given filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the gauges in the registry
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Gauge.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the counters in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the counters in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters() {
    -<b class="fc">&nbsp;        return getCounters(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the counters in the registry and their names which match the given
    -&nbsp;     * filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the counters in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Counter.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the histograms in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the histograms in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms() {
    -<b class="fc">&nbsp;        return getHistograms(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the histograms in the registry and their names which match the given
    -&nbsp;     * filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the histograms in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Histogram.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the meters in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the meters in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters() {
    -<b class="fc">&nbsp;        return getMeters(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the meters in the registry and their names which match the given filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the meters in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Meter.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the timers in the registry and their names.
    -&nbsp;     *
    -&nbsp;     * @return all the timers in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers() {
    -<b class="fc">&nbsp;        return getTimers(MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a map of all the timers in the registry and their names which match the given filter.
    -&nbsp;     *
    -&nbsp;     * @param filter the metric filter to match
    -&nbsp;     * @return all the timers in the registry
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers(MetricFilter filter) {
    -<b class="fc">&nbsp;        return getMetrics(Timer.class, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
    -&nbsp;    private &lt;T extends Metric&gt; T getOrAdd(String name, MetricBuilder&lt;T&gt; builder) {
    -<b class="fc">&nbsp;        final Metric metric = metrics.get(name);</b>
    -<b class="fc">&nbsp;        if (builder.isInstance(metric)) {</b>
    -<b class="fc">&nbsp;            return (T) metric;</b>
    -<b class="fc">&nbsp;        } else if (metric == null) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                return register(name, builder.newMetric());</b>
    -<b class="nc">&nbsp;            } catch (IllegalArgumentException e) {</b>
    -<b class="nc">&nbsp;                final Metric added = metrics.get(name);</b>
    -<b class="nc">&nbsp;                if (builder.isInstance(added)) {</b>
    -<b class="nc">&nbsp;                    return (T) added;</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -<b class="nc">&nbsp;        throw new IllegalArgumentException(name + &quot; is already used for a different type of metric&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;unchecked&quot;)
    -&nbsp;    private &lt;T extends Metric&gt; SortedMap&lt;String, T&gt; getMetrics(Class&lt;T&gt; klass, MetricFilter filter) {
    -<b class="fc">&nbsp;        final TreeMap&lt;String, T&gt; timers = new TreeMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</b>
    -<b class="fc">&nbsp;            if (klass.isInstance(entry.getValue()) &amp;&amp; filter.matches(entry.getKey(),</b>
    -<b class="fc">&nbsp;                    entry.getValue())) {</b>
    -<b class="fc">&nbsp;                timers.put(entry.getKey(), (T) entry.getValue());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(timers);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void onMetricAdded(String name, Metric metric) {
    -<b class="fc">&nbsp;        for (MetricRegistryListener listener : listeners) {</b>
    -<b class="fc">&nbsp;            notifyListenerOfAddedMetric(listener, metric, name);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void notifyListenerOfAddedMetric(MetricRegistryListener listener, Metric metric, String name) {
    -<b class="fc">&nbsp;        if (metric instanceof Gauge) {</b>
    -<b class="fc">&nbsp;            listener.onGaugeAdded(name, (Gauge&lt;?&gt;) metric);</b>
    -<b class="fc">&nbsp;        } else if (metric instanceof Counter) {</b>
    -<b class="fc">&nbsp;            listener.onCounterAdded(name, (Counter) metric);</b>
    -<b class="fc">&nbsp;        } else if (metric instanceof Histogram) {</b>
    -<b class="fc">&nbsp;            listener.onHistogramAdded(name, (Histogram) metric);</b>
    -<b class="fc">&nbsp;        } else if (metric instanceof Meter) {</b>
    -<b class="fc">&nbsp;            listener.onMeterAdded(name, (Meter) metric);</b>
    -<b class="fc">&nbsp;        } else if (metric instanceof Timer) {</b>
    -<b class="fc">&nbsp;            listener.onTimerAdded(name, (Timer) metric);</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;Unknown metric type: &quot; + metric.getClass());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void onMetricRemoved(String name, Metric metric) {
    -<b class="fc">&nbsp;        for (MetricRegistryListener listener : listeners) {</b>
    -<b class="fc">&nbsp;            notifyListenerOfRemovedMetric(name, metric, listener);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void notifyListenerOfRemovedMetric(String name, Metric metric, MetricRegistryListener listener) {
    -<b class="fc">&nbsp;        if (metric instanceof Gauge) {</b>
    -<b class="fc">&nbsp;            listener.onGaugeRemoved(name);</b>
    -<b class="fc">&nbsp;        } else if (metric instanceof Counter) {</b>
    -<b class="fc">&nbsp;            listener.onCounterRemoved(name);</b>
    -<b class="fc">&nbsp;        } else if (metric instanceof Histogram) {</b>
    -<b class="fc">&nbsp;            listener.onHistogramRemoved(name);</b>
    -<b class="fc">&nbsp;        } else if (metric instanceof Meter) {</b>
    -<b class="fc">&nbsp;            listener.onMeterRemoved(name);</b>
    -<b class="fc">&nbsp;        } else if (metric instanceof Timer) {</b>
    -<b class="fc">&nbsp;            listener.onTimerRemoved(name);</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;Unknown metric type: &quot; + metric.getClass());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Given a metric set, registers them with the given prefix prepended to their names.
    -&nbsp;     *
    -&nbsp;     * @param prefix a name prefix
    -&nbsp;     * @param metrics a set of metrics
    -&nbsp;     * @throws IllegalArgumentException if any of the names are already registered
    -&nbsp;     */
    -&nbsp;    public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Metric&gt; entry : metrics.getMetrics().entrySet()) {</b>
    -<b class="fc">&nbsp;            if (entry.getValue() instanceof MetricSet) {</b>
    -<b class="fc">&nbsp;                registerAll(name(prefix, entry.getKey()), (MetricSet) entry.getValue());</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                register(name(prefix, entry.getKey()), entry.getValue());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(metrics);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @FunctionalInterface
    -&nbsp;    public interface MetricSupplier&lt;T extends Metric&gt; {
    -&nbsp;        T newMetric();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A quick and easy way of capturing the notion of default metrics.
    -&nbsp;     */
    -&nbsp;    private interface MetricBuilder&lt;T extends Metric&gt; {
    -<b class="fc">&nbsp;        MetricBuilder&lt;Counter&gt; COUNTERS = new MetricBuilder&lt;Counter&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Counter newMetric() {
    -<b class="fc">&nbsp;                return new Counter();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Counter.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -<b class="fc">&nbsp;        MetricBuilder&lt;Histogram&gt; HISTOGRAMS = new MetricBuilder&lt;Histogram&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Histogram newMetric() {
    -<b class="fc">&nbsp;                return new Histogram(new ExponentiallyDecayingReservoir());</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Histogram.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -<b class="fc">&nbsp;        MetricBuilder&lt;Meter&gt; METERS = new MetricBuilder&lt;Meter&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Meter newMetric() {
    -<b class="fc">&nbsp;                return new Meter();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Meter.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -<b class="fc">&nbsp;        MetricBuilder&lt;Timer&gt; TIMERS = new MetricBuilder&lt;Timer&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Timer newMetric() {
    -<b class="fc">&nbsp;                return new Timer();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Timer.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -&nbsp;        @SuppressWarnings(&quot;rawtypes&quot;)
    -<b class="fc">&nbsp;        MetricBuilder&lt;Gauge&gt; GAUGES = new MetricBuilder&lt;Gauge&gt;() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Gauge newMetric() {
    -<b class="fc">&nbsp;                return new DefaultSettableGauge&lt;&gt;();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isInstance(Metric metric) {
    -<b class="fc">&nbsp;                return Gauge.class.isInstance(metric);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -&nbsp;        T newMetric();
    -&nbsp;
    -&nbsp;        boolean isInstance(Metric metric);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-16.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-16.html
    deleted file mode 100644
    index 02f0fc9149..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-16.html
    +++ /dev/null
    @@ -1,284 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricRegistryListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricRegistryListener (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$Base</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$0ZB7i3aS</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$0ZB7i3aS$auxiliary$2i8eMJCd</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$0ZB7i3aS$auxiliary$YP16jRUf</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$4lGnejmp</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$4lGnejmp$auxiliary$0vzLcS8R</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$4lGnejmp$auxiliary$r99ky9Xd</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$7IK0weSN</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$7IK0weSN$auxiliary$fyQqmWdo</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$7IK0weSN$auxiliary$smCxXOu4</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$bJRrWwWm</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$bJRrWwWm$auxiliary$0cRM21Y3</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$bJRrWwWm$auxiliary$zK4eZUwC</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$CbJQcrzU</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$CbJQcrzU$auxiliary$aXdr4H5w</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricRegistryListener$MockitoMock$CbJQcrzU$auxiliary$mJWC2PAz</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.EventListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Listeners for events from the registry.  Listeners must be thread-safe.
    -&nbsp; */
    -&nbsp;public interface MetricRegistryListener extends EventListener {
    -&nbsp;    /**
    -&nbsp;     * A no-op implementation of {@link MetricRegistryListener}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    abstract class Base implements MetricRegistryListener {</b>
    -&nbsp;        @Override
    -&nbsp;        public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onGaugeRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onCounterAdded(String name, Counter counter) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onCounterRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onHistogramAdded(String name, Histogram histogram) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onHistogramRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onMeterAdded(String name, Meter meter) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onMeterRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimerAdded(String name, Timer timer) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimerRemoved(String name) {
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Gauge} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name  the gauge&#39;s name
    -&nbsp;     * @param gauge the gauge
    -&nbsp;     */
    -&nbsp;    void onGaugeAdded(String name, Gauge&lt;?&gt; gauge);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Gauge} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the gauge&#39;s name
    -&nbsp;     */
    -&nbsp;    void onGaugeRemoved(String name);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Counter} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name    the counter&#39;s name
    -&nbsp;     * @param counter the counter
    -&nbsp;     */
    -&nbsp;    void onCounterAdded(String name, Counter counter);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Counter} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the counter&#39;s name
    -&nbsp;     */
    -&nbsp;    void onCounterRemoved(String name);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Histogram} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name      the histogram&#39;s name
    -&nbsp;     * @param histogram the histogram
    -&nbsp;     */
    -&nbsp;    void onHistogramAdded(String name, Histogram histogram);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Histogram} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the histogram&#39;s name
    -&nbsp;     */
    -&nbsp;    void onHistogramRemoved(String name);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Meter} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name  the meter&#39;s name
    -&nbsp;     * @param meter the meter
    -&nbsp;     */
    -&nbsp;    void onMeterAdded(String name, Meter meter);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Meter} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the meter&#39;s name
    -&nbsp;     */
    -&nbsp;    void onMeterRemoved(String name);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Timer} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name  the timer&#39;s name
    -&nbsp;     * @param timer the timer
    -&nbsp;     */
    -&nbsp;    void onTimerAdded(String name, Timer timer);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link Timer} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name the timer&#39;s name
    -&nbsp;     */
    -&nbsp;    void onTimerRemoved(String name);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-17.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-17.html
    deleted file mode 100644
    index 33322ee281..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-17.html
    +++ /dev/null
    @@ -1,1097 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NoopMetricRegistry</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NoopMetricRegistry (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NoopMetricRegistry</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (26/32)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.4%
    -  </span>
    -  <span class="absValue">
    -    (28/34)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$EmptyConcurrentMap</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    5.9%
    -  </span>
    -  <span class="absValue">
    -    (1/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    5.9%
    -  </span>
    -  <span class="absValue">
    -    (1/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$EmptySnapshot</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopCounter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    28.6%
    -  </span>
    -  <span class="absValue">
    -    (2/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    28.6%
    -  </span>
    -  <span class="absValue">
    -    (2/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopHistogram</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    42.9%
    -  </span>
    -  <span class="absValue">
    -    (3/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (4/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopHistogram$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopMeter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.2%
    -  </span>
    -  <span class="absValue">
    -    (2/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.2%
    -  </span>
    -  <span class="absValue">
    -    (2/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopTimer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    14.3%
    -  </span>
    -  <span class="absValue">
    -    (2/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (3/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopTimer$Context</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (3/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (3/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NoopMetricRegistry$NoopTimer$Context$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    39.6%
    -  </span>
    -  <span class="absValue">
    -    (44/111)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    41.4%
    -  </span>
    -  <span class="absValue">
    -    (48/116)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.SortedSet;
    -&nbsp;import java.util.concurrent.Callable;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A registry of metric instances which never creates or registers any metrics and returns no-op implementations of any metric type.
    -&nbsp; *
    -&nbsp; * @since 4.1.17
    -&nbsp; */
    -<b class="fc">&nbsp;public final class NoopMetricRegistry extends MetricRegistry {</b>
    -<b class="fc">&nbsp;    private static final EmptyConcurrentMap&lt;String, Metric&gt; EMPTY_CONCURRENT_MAP = new EmptyConcurrentMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    protected ConcurrentMap&lt;String, Metric&gt; buildMap() {
    -<b class="fc">&nbsp;        return EMPTY_CONCURRENT_MAP;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T extends Metric&gt; T register(String name, T metric) throws IllegalArgumentException {
    -<b class="fc">&nbsp;        if (metric == null) {</b>
    -<b class="fc">&nbsp;            throw new NullPointerException(&quot;metric == null&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return metric;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void registerAll(MetricSet metrics) throws IllegalArgumentException {
    -&nbsp;        // NOP
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Counter counter(String name) {
    -<b class="fc">&nbsp;        return NoopCounter.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Counter counter(String name, MetricSupplier&lt;Counter&gt; supplier) {
    -<b class="fc">&nbsp;        return NoopCounter.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Histogram histogram(String name) {
    -<b class="fc">&nbsp;        return NoopHistogram.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Histogram histogram(String name, MetricSupplier&lt;Histogram&gt; supplier) {
    -<b class="fc">&nbsp;        return NoopHistogram.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Meter meter(String name) {
    -<b class="fc">&nbsp;        return NoopMeter.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Meter meter(String name, MetricSupplier&lt;Meter&gt; supplier) {
    -<b class="fc">&nbsp;        return NoopMeter.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Timer timer(String name) {
    -<b class="fc">&nbsp;        return NoopTimer.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Timer timer(String name, MetricSupplier&lt;Timer&gt; supplier) {
    -<b class="fc">&nbsp;        return NoopTimer.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     *
    -&nbsp;     * @since 4.2
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    -&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name) {
    -<b class="fc">&nbsp;        return (T) NoopGauge.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    -&nbsp;    public &lt;T extends Gauge&gt; T gauge(String name, MetricSupplier&lt;T&gt; supplier) {
    -<b class="fc">&nbsp;        return (T) NoopGauge.INSTANCE;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean remove(String name) {
    -<b class="fc">&nbsp;        return false;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void removeMatching(MetricFilter filter) {
    -&nbsp;        // NOP
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void addListener(MetricRegistryListener listener) {
    -&nbsp;        // NOP
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void removeListener(MetricRegistryListener listener) {
    -&nbsp;        // NOP
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedSet&lt;String&gt; getNames() {
    -<b class="fc">&nbsp;        return Collections.emptySortedSet();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public SortedMap&lt;String, Gauge&gt; getGauges(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Counter&gt; getCounters(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Histogram&gt; getHistograms(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Meter&gt; getMeters(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers() {
    -<b class="fc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public SortedMap&lt;String, Timer&gt; getTimers(MetricFilter filter) {
    -<b class="nc">&nbsp;        return Collections.emptySortedMap();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
    -&nbsp;        // NOP
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        return Collections.emptyMap();</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopGauge&lt;T&gt; implements Gauge&lt;T&gt; {</b>
    -<b class="fc">&nbsp;        private static final NoopGauge&lt;?&gt; INSTANCE = new NoopGauge&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public T getValue() {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="nc">&nbsp;    private static final class EmptySnapshot extends Snapshot {</b>
    -<b class="nc">&nbsp;        private static final EmptySnapshot INSTANCE = new EmptySnapshot();</b>
    -<b class="nc">&nbsp;        private static final long[] EMPTY_LONG_ARRAY = new long[0];</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getValue(double quantile) {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long[] getValues() {
    -<b class="nc">&nbsp;            return EMPTY_LONG_ARRAY;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public int size() {
    -<b class="nc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getMax() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getMean() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getMin() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getStdDev() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void dump(OutputStream output) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopTimer extends Timer {</b>
    -<b class="fc">&nbsp;        private static final NoopTimer INSTANCE = new NoopTimer();</b>
    -<b class="fc">&nbsp;        private static final Timer.Context CONTEXT = new NoopTimer.Context();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private static class Context extends Timer.Context {</b>
    -<b class="fc">&nbsp;            private static final Clock CLOCK = new Clock() {</b>
    -&nbsp;                /**
    -&nbsp;                 * {@inheritDoc}
    -&nbsp;                 */
    -&nbsp;                @Override
    -&nbsp;                public long getTick() {
    -<b class="fc">&nbsp;                    return 0L;</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                /**
    -&nbsp;                 * {@inheritDoc}
    -&nbsp;                 */
    -&nbsp;                @Override
    -&nbsp;                public long getTime() {
    -<b class="nc">&nbsp;                    return 0L;</b>
    -&nbsp;                }
    -&nbsp;            };
    -&nbsp;
    -&nbsp;            private Context() {
    -<b class="fc">&nbsp;                super(INSTANCE, CLOCK);</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public long stop() {
    -<b class="nc">&nbsp;                return 0L;</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public void close() {
    -&nbsp;                // NOP
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void update(long duration, TimeUnit unit) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void update(Duration duration) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public &lt;T&gt; T time(Callable&lt;T&gt; event) throws Exception {
    -<b class="nc">&nbsp;            return event.call();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public &lt;T&gt; T timeSupplier(Supplier&lt;T&gt; event) {
    -<b class="nc">&nbsp;            return event.get();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void time(Runnable event) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Timer.Context time() {
    -<b class="nc">&nbsp;            return CONTEXT;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getFifteenMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getFiveMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getMeanRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getOneMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Snapshot getSnapshot() {
    -<b class="nc">&nbsp;            return EmptySnapshot.INSTANCE;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopHistogram extends Histogram {</b>
    -<b class="fc">&nbsp;        private static final NoopHistogram INSTANCE = new NoopHistogram();</b>
    -<b class="fc">&nbsp;        private static final Reservoir EMPTY_RESERVOIR = new Reservoir() {</b>
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public int size() {
    -<b class="nc">&nbsp;                return 0;</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public void update(long value) {
    -&nbsp;                // NOP
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -&nbsp;            /**
    -&nbsp;             * {@inheritDoc}
    -&nbsp;             */
    -&nbsp;            @Override
    -&nbsp;            public Snapshot getSnapshot() {
    -<b class="nc">&nbsp;                return EmptySnapshot.INSTANCE;</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -&nbsp;        private NoopHistogram() {
    -<b class="fc">&nbsp;            super(EMPTY_RESERVOIR);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void update(int value) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void update(long value) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Snapshot getSnapshot() {
    -<b class="nc">&nbsp;            return EmptySnapshot.INSTANCE;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopCounter extends Counter {</b>
    -<b class="fc">&nbsp;        private static final NoopCounter INSTANCE = new NoopCounter();</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void inc() {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void inc(long n) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void dec() {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void dec(long n) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NoopMeter extends Meter {</b>
    -<b class="fc">&nbsp;        private static final NoopMeter INSTANCE = new NoopMeter();</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void mark() {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void mark(long n) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="nc">&nbsp;            return 0L;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getFifteenMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getFiveMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getMeanRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public double getOneMinuteRate() {
    -<b class="nc">&nbsp;            return 0D;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final class EmptyConcurrentMap&lt;K, V&gt; implements ConcurrentMap&lt;K, V&gt; {</b>
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V putIfAbsent(K key, V value) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean remove(Object key, Object value) {
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean replace(K key, V oldValue, V newValue) {
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V replace(K key, V value) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public int size() {
    -<b class="nc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean isEmpty() {
    -<b class="nc">&nbsp;            return true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean containsKey(Object key) {
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public boolean containsValue(Object value) {
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V get(Object key) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V put(K key, V value) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public V remove(Object key) {
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void putAll(Map&lt;? extends K, ? extends V&gt; m) {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void clear() {
    -&nbsp;            // NOP
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Set&lt;K&gt; keySet() {
    -<b class="nc">&nbsp;            return Collections.emptySet();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Collection&lt;V&gt; values() {
    -<b class="nc">&nbsp;            return Collections.emptySet();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * {@inheritDoc}
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public Set&lt;Entry&lt;K, V&gt;&gt; entrySet() {
    -<b class="nc">&nbsp;            return Collections.emptySet();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-18.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-18.html
    deleted file mode 100644
    index 563a5def16..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-18.html
    +++ /dev/null
    @@ -1,196 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > RatioGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: RatioGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">RatioGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">RatioGauge$Ratio</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import static java.lang.Double.isInfinite;
    -&nbsp;import static java.lang.Double.isNaN;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A gauge which measures the ratio of one value to another.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * If the denominator is zero, not a number, or infinite, the resulting ratio is not a number.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class RatioGauge implements Gauge&lt;Double&gt; {</b>
    -&nbsp;    /**
    -&nbsp;     * A ratio of one quantity to another.
    -&nbsp;     */
    -&nbsp;    public static class Ratio {
    -&nbsp;        /**
    -&nbsp;         * Creates a new ratio with the given numerator and denominator.
    -&nbsp;         *
    -&nbsp;         * @param numerator   the numerator of the ratio
    -&nbsp;         * @param denominator the denominator of the ratio
    -&nbsp;         * @return {@code numerator:denominator}
    -&nbsp;         */
    -&nbsp;        public static Ratio of(double numerator, double denominator) {
    -<b class="fc">&nbsp;            return new Ratio(numerator, denominator);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private final double numerator;
    -&nbsp;        private final double denominator;
    -&nbsp;
    -<b class="fc">&nbsp;        private Ratio(double numerator, double denominator) {</b>
    -<b class="fc">&nbsp;            this.numerator = numerator;</b>
    -<b class="fc">&nbsp;            this.denominator = denominator;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the ratio, which is either a {@code double} between 0 and 1 (inclusive) or
    -&nbsp;         * {@code NaN}.
    -&nbsp;         *
    -&nbsp;         * @return the ratio
    -&nbsp;         */
    -&nbsp;        public double getValue() {
    -<b class="fc">&nbsp;            final double d = denominator;</b>
    -<b class="fc">&nbsp;            if (isNaN(d) || isInfinite(d) || d == 0) {</b>
    -<b class="fc">&nbsp;                return Double.NaN;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return numerator / d;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String toString() {
    -<b class="fc">&nbsp;            return numerator + &quot;:&quot; + denominator;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the {@link Ratio} which is the gauge&#39;s current value.
    -&nbsp;     *
    -&nbsp;     * @return the {@link Ratio} which is the gauge&#39;s current value
    -&nbsp;     */
    -&nbsp;    protected abstract Ratio getRatio();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Double getValue() {
    -<b class="fc">&nbsp;        return getRatio().getValue();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-19.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-19.html
    deleted file mode 100644
    index 6ea49a09a1..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-19.html
    +++ /dev/null
    @@ -1,467 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ScheduledReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ScheduledReporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ScheduledReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.3%
    -  </span>
    -  <span class="absValue">
    -    (21/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (52/65)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">ScheduledReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ScheduledReporter$NamedThreadFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (62/76)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.io.Closeable;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.Executor;
    -&nbsp;import java.util.concurrent.Executors;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.ScheduledFuture;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * The abstract base class for all scheduled reporters (i.e., reporters which process a registry&#39;s
    -&nbsp; * metrics periodically).
    -&nbsp; *
    -&nbsp; * @see ConsoleReporter
    -&nbsp; * @see CsvReporter
    -&nbsp; * @see Slf4jReporter
    -&nbsp; */
    -&nbsp;public abstract class ScheduledReporter implements Closeable, Reporter {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOG = LoggerFactory.getLogger(ScheduledReporter.class);</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A simple named thread factory.
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;NullableProblems&quot;)
    -<b class="fc">&nbsp;    private static class NamedThreadFactory implements ThreadFactory {</b>
    -&nbsp;        private final ThreadGroup group;
    -<b class="fc">&nbsp;        private final AtomicInteger threadNumber = new AtomicInteger(1);</b>
    -&nbsp;        private final String namePrefix;
    -&nbsp;
    -<b class="fc">&nbsp;        private NamedThreadFactory(String name) {</b>
    -<b class="fc">&nbsp;            final SecurityManager s = System.getSecurityManager();</b>
    -<b class="fc">&nbsp;            this.group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();</b>
    -<b class="fc">&nbsp;            this.namePrefix = &quot;metrics-&quot; + name + &quot;-thread-&quot;;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Thread newThread(Runnable r) {
    -<b class="fc">&nbsp;            final Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);</b>
    -<b class="fc">&nbsp;            t.setDaemon(true);</b>
    -<b class="fc">&nbsp;            if (t.getPriority() != Thread.NORM_PRIORITY) {</b>
    -<b class="nc">&nbsp;                t.setPriority(Thread.NORM_PRIORITY);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return t;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final AtomicInteger FACTORY_ID = new AtomicInteger();</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final ScheduledExecutorService executor;
    -&nbsp;    private final boolean shutdownExecutorOnStop;
    -&nbsp;    private final Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -&nbsp;    private ScheduledFuture&lt;?&gt; scheduledFuture;
    -&nbsp;    private final MetricFilter filter;
    -&nbsp;    private final long durationFactor;
    -&nbsp;    private final String durationUnit;
    -&nbsp;    private final long rateFactor;
    -&nbsp;    private final String rateUnit;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ScheduledReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry     the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    -&nbsp;     *                     reporter will report
    -&nbsp;     * @param name         the reporter&#39;s name
    -&nbsp;     * @param filter       the filter for which metrics to report
    -&nbsp;     * @param rateUnit     a unit of time
    -&nbsp;     * @param durationUnit a unit of time
    -&nbsp;     */
    -&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    -&nbsp;                                String name,
    -&nbsp;                                MetricFilter filter,
    -&nbsp;                                TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit) {
    -<b class="fc">&nbsp;        this(registry, name, filter, rateUnit, durationUnit, createDefaultExecutor(name));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ScheduledReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    -&nbsp;     *                 reporter will report
    -&nbsp;     * @param name     the reporter&#39;s name
    -&nbsp;     * @param filter   the filter for which metrics to report
    -&nbsp;     * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;     */
    -&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    -&nbsp;                                String name,
    -&nbsp;                                MetricFilter filter,
    -&nbsp;                                TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit,
    -&nbsp;                                ScheduledExecutorService executor) {
    -<b class="fc">&nbsp;        this(registry, name, filter, rateUnit, durationUnit, executor, true);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ScheduledReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry               the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    -&nbsp;     *                               reporter will report
    -&nbsp;     * @param name                   the reporter&#39;s name
    -&nbsp;     * @param filter                 the filter for which metrics to report
    -&nbsp;     * @param executor               the executor to use while scheduling reporting of metrics.
    -&nbsp;     * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;     */
    -&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    -&nbsp;                                String name,
    -&nbsp;                                MetricFilter filter,
    -&nbsp;                                TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit,
    -&nbsp;                                ScheduledExecutorService executor,
    -&nbsp;                                boolean shutdownExecutorOnStop) {
    -<b class="fc">&nbsp;        this(registry, name, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, Collections.emptySet());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected ScheduledReporter(MetricRegistry registry,
    -&nbsp;                                String name,
    -&nbsp;                                MetricFilter filter,
    -&nbsp;                                TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit,
    -&nbsp;                                ScheduledExecutorService executor,
    -&nbsp;                                boolean shutdownExecutorOnStop,
    -<b class="fc">&nbsp;                                Set&lt;MetricAttribute&gt; disabledMetricAttributes) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (registry == null) {</b>
    -<b class="fc">&nbsp;            throw new NullPointerException(&quot;registry == null&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.filter = filter;</b>
    -<b class="fc">&nbsp;        this.executor = executor == null ? createDefaultExecutor(name) : executor;</b>
    -<b class="fc">&nbsp;        this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="fc">&nbsp;        this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;        this.rateUnit = calculateRateUnit(rateUnit);</b>
    -<b class="fc">&nbsp;        this.durationFactor = durationUnit.toNanos(1);</b>
    -<b class="fc">&nbsp;        this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;        this.disabledMetricAttributes = disabledMetricAttributes != null ? disabledMetricAttributes :</b>
    -<b class="fc">&nbsp;                Collections.emptySet();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Starts the reporter polling at the given period.
    -&nbsp;     *
    -&nbsp;     * @param period the amount of time between polls
    -&nbsp;     * @param unit   the unit for {@code period}
    -&nbsp;     */
    -&nbsp;    public void start(long period, TimeUnit unit) {
    -<b class="fc">&nbsp;        start(period, period, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Starts the reporter polling at the given period with the specific runnable action.
    -&nbsp;     * Visible only for testing.
    -&nbsp;     */
    -&nbsp;    synchronized void start(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
    -<b class="fc">&nbsp;        if (this.scheduledFuture != null) {</b>
    -<b class="fc">&nbsp;            throw new IllegalArgumentException(&quot;Reporter already started&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.scheduledFuture = getScheduledFuture(initialDelay, period, unit, runnable);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Schedule the task, and return a future.
    -&nbsp;     *
    -&nbsp;     * @deprecated Use {@link #getScheduledFuture(long, long, TimeUnit, Runnable, ScheduledExecutorService)} instead.
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;DeprecatedIsStillUsed&quot;)
    -&nbsp;    @Deprecated
    -&nbsp;    protected ScheduledFuture&lt;?&gt; getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
    -<b class="fc">&nbsp;        return getScheduledFuture(initialDelay, period, unit, runnable, this.executor);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Schedule the task, and return a future.
    -&nbsp;     * The current implementation uses scheduleWithFixedDelay, replacing scheduleWithFixedRate. This avoids queueing issues, but may
    -&nbsp;     * cause some reporters to skip metrics, as scheduleWithFixedDelay introduces a growing delta from the original start point.
    -&nbsp;     *
    -&nbsp;     * Overriding this in a subclass to revert to the old behavior is permitted.
    -&nbsp;     */
    -&nbsp;    protected ScheduledFuture&lt;?&gt; getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable, ScheduledExecutorService executor) {
    -<b class="fc">&nbsp;        return executor.scheduleWithFixedDelay(runnable, initialDelay, period, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Starts the reporter polling at the given period.
    -&nbsp;     *
    -&nbsp;     * @param initialDelay the time to delay the first execution
    -&nbsp;     * @param period       the amount of time between polls
    -&nbsp;     * @param unit         the unit for {@code period} and {@code initialDelay}
    -&nbsp;     */
    -&nbsp;    synchronized public void start(long initialDelay, long period, TimeUnit unit) {
    -<b class="fc">&nbsp;        start(initialDelay, period, unit, () -&gt; {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                report();</b>
    -<b class="nc">&nbsp;            } catch (Throwable ex) {</b>
    -<b class="nc">&nbsp;                LOG.error(&quot;Exception thrown from {}#report. Exception was suppressed.&quot;, ScheduledReporter.this.getClass().getSimpleName(), ex);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Stops the reporter and if shutdownExecutorOnStop is true then shuts down its thread of execution.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * Uses the shutdown pattern from http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html
    -&nbsp;     */
    -&nbsp;    public void stop() {
    -<b class="fc">&nbsp;        if (shutdownExecutorOnStop) {</b>
    -<b class="fc">&nbsp;            executor.shutdown(); // Disable new tasks from being submitted</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            report(); // Report metrics one last time</b>
    -<b class="nc">&nbsp;        } catch (Exception e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Final reporting of metrics failed.&quot;, e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (shutdownExecutorOnStop) {</b>
    -&nbsp;            try {
    -&nbsp;                // Wait a while for existing tasks to terminate
    -<b class="fc">&nbsp;                if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    -<b class="nc">&nbsp;                    executor.shutdownNow(); // Cancel currently executing tasks</b>
    -&nbsp;                    // Wait a while for tasks to respond to being cancelled
    -<b class="nc">&nbsp;                    if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    -<b class="nc">&nbsp;                        LOG.warn(&quot;ScheduledExecutorService did not terminate.&quot;);</b>
    -&nbsp;                    }
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (InterruptedException ie) {</b>
    -&nbsp;                // (Re-)Cancel if current thread also interrupted
    -<b class="nc">&nbsp;                executor.shutdownNow();</b>
    -&nbsp;                // Preserve interrupt status
    -<b class="nc">&nbsp;                Thread.currentThread().interrupt();</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        } else {
    -&nbsp;            // The external manager (like JEE container) responsible for lifecycle of executor
    -<b class="fc">&nbsp;            cancelScheduledFuture();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private synchronized void cancelScheduledFuture() {
    -<b class="fc">&nbsp;        if (this.scheduledFuture == null) {</b>
    -&nbsp;            // was never started
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (this.scheduledFuture.isCancelled()) {</b>
    -&nbsp;            // already cancelled
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;        // just cancel the scheduledFuture and exit
    -<b class="fc">&nbsp;        this.scheduledFuture.cancel(false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Stops the reporter and shuts down its thread of execution.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="fc">&nbsp;        stop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Report the current values of all metrics in the registry.
    -&nbsp;     */
    -&nbsp;    public void report() {
    -<b class="fc">&nbsp;        synchronized (this) {</b>
    -<b class="fc">&nbsp;            report(registry.getGauges(filter),</b>
    -<b class="fc">&nbsp;                    registry.getCounters(filter),</b>
    -<b class="fc">&nbsp;                    registry.getHistograms(filter),</b>
    -<b class="fc">&nbsp;                    registry.getMeters(filter),</b>
    -<b class="fc">&nbsp;                    registry.getTimers(filter));</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called periodically by the polling thread. Subclasses should report all the given metrics.
    -&nbsp;     *
    -&nbsp;     * @param gauges     all of the gauges in the registry
    -&nbsp;     * @param counters   all of the counters in the registry
    -&nbsp;     * @param histograms all of the histograms in the registry
    -&nbsp;     * @param meters     all of the meters in the registry
    -&nbsp;     * @param timers     all of the timers in the registry
    -&nbsp;     */
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public abstract void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                                SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                                SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                                SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                                SortedMap&lt;String, Timer&gt; timers);
    -&nbsp;
    -&nbsp;    protected String getRateUnit() {
    -<b class="fc">&nbsp;        return rateUnit;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String getDurationUnit() {
    -<b class="fc">&nbsp;        return durationUnit;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected double convertDuration(double duration) {
    -<b class="fc">&nbsp;        return duration / durationFactor;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected double convertRate(double rate) {
    -<b class="fc">&nbsp;        return rate * rateFactor;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected boolean isShutdownExecutorOnStop() {
    -<b class="nc">&nbsp;        return shutdownExecutorOnStop;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected Set&lt;MetricAttribute&gt; getDisabledMetricAttributes() {
    -<b class="fc">&nbsp;        return disabledMetricAttributes;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String calculateRateUnit(TimeUnit unit) {
    -<b class="fc">&nbsp;        final String s = unit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;        return s.substring(0, s.length() - 1);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static ScheduledExecutorService createDefaultExecutor(String name) {
    -<b class="fc">&nbsp;        return Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(name + &#39;-&#39; + FACTORY_ID.incrementAndGet()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1a.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1a.html
    deleted file mode 100644
    index 5bffdf5b02..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1a.html
    +++ /dev/null
    @@ -1,211 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SharedMetricRegistries</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SharedMetricRegistries (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SharedMetricRegistries</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.atomic.AtomicReference;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A map of shared, named metric registries.
    -&nbsp; */
    -&nbsp;public class SharedMetricRegistries {
    -<b class="fc">&nbsp;    private static final ConcurrentMap&lt;String, MetricRegistry&gt; REGISTRIES =</b>
    -&nbsp;            new ConcurrentHashMap&lt;&gt;();
    -&nbsp;
    -<b class="fc">&nbsp;    private static AtomicReference&lt;String&gt; defaultRegistryName = new AtomicReference&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    /* Visible for testing */
    -&nbsp;    static void setDefaultRegistryName(AtomicReference&lt;String&gt; defaultRegistryName) {
    -<b class="fc">&nbsp;        SharedMetricRegistries.defaultRegistryName = defaultRegistryName;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private SharedMetricRegistries() { /* singleton */ }
    -&nbsp;
    -&nbsp;    public static void clear() {
    -<b class="fc">&nbsp;        REGISTRIES.clear();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Set&lt;String&gt; names() {
    -<b class="fc">&nbsp;        return REGISTRIES.keySet();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void remove(String key) {
    -<b class="fc">&nbsp;        REGISTRIES.remove(key);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static MetricRegistry add(String name, MetricRegistry registry) {
    -<b class="fc">&nbsp;        return REGISTRIES.putIfAbsent(name, registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static MetricRegistry getOrCreate(String name) {
    -<b class="fc">&nbsp;        final MetricRegistry existing = REGISTRIES.get(name);</b>
    -<b class="fc">&nbsp;        if (existing == null) {</b>
    -<b class="fc">&nbsp;            final MetricRegistry created = new MetricRegistry();</b>
    -<b class="fc">&nbsp;            final MetricRegistry raced = add(name, created);</b>
    -<b class="fc">&nbsp;            if (raced == null) {</b>
    -<b class="fc">&nbsp;                return created;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            return raced;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return existing;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new registry and sets it as the default one under the provided name.
    -&nbsp;     *
    -&nbsp;     * @param name the registry name
    -&nbsp;     * @return the default registry
    -&nbsp;     * @throws IllegalStateException if the name has already been set
    -&nbsp;     */
    -&nbsp;    public synchronized static MetricRegistry setDefault(String name) {
    -<b class="fc">&nbsp;        final MetricRegistry registry = getOrCreate(name);</b>
    -<b class="fc">&nbsp;        return setDefault(name, registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Sets the provided registry as the default one under the provided name
    -&nbsp;     *
    -&nbsp;     * @param name           the default registry name
    -&nbsp;     * @param metricRegistry the default registry
    -&nbsp;     * @throws IllegalStateException if the default registry has already been set
    -&nbsp;     */
    -&nbsp;    public static MetricRegistry setDefault(String name, MetricRegistry metricRegistry) {
    -<b class="fc">&nbsp;        if (defaultRegistryName.compareAndSet(null, name)) {</b>
    -<b class="fc">&nbsp;            add(name, metricRegistry);</b>
    -<b class="fc">&nbsp;            return metricRegistry;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default metric registry name is already set.&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Gets the name of the default registry, if it has been set
    -&nbsp;     *
    -&nbsp;     * @return the default registry
    -&nbsp;     * @throws IllegalStateException if the default has not been set
    -&nbsp;     */
    -&nbsp;    public static MetricRegistry getDefault() {
    -<b class="fc">&nbsp;        MetricRegistry metricRegistry = tryGetDefault();</b>
    -<b class="fc">&nbsp;        if (metricRegistry == null) {</b>
    -<b class="fc">&nbsp;            throw new IllegalStateException(&quot;Default registry name has not been set.&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return metricRegistry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Same as {@link #getDefault()} except returns null when the default registry has not been set.
    -&nbsp;     *
    -&nbsp;     * @return the default registry or null
    -&nbsp;     */
    -&nbsp;    public static MetricRegistry tryGetDefault() {
    -<b class="fc">&nbsp;        final String name = defaultRegistryName.get();</b>
    -<b class="fc">&nbsp;        if (name != null) {</b>
    -<b class="fc">&nbsp;            return getOrCreate(name);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1b.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1b.html
    deleted file mode 100644
    index af33d13e63..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1b.html
    +++ /dev/null
    @@ -1,782 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Slf4jReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Slf4jReporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Slf4jReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (97/97)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    79.5%
    -  </span>
    -  <span class="absValue">
    -    (35/44)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$DebugLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$ErrorLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$InfoLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$LoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$LoggingLevel</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$TraceLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Slf4jReporter$WarnLoggerProxy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.8%
    -  </span>
    -  <span class="absValue">
    -    (41/52)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.7%
    -  </span>
    -  <span class="absValue">
    -    (141/159)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;import org.slf4j.Marker;
    -&nbsp;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Map.Entry;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter class for logging metrics values to a SLF4J {@link Logger} periodically, similar to
    -&nbsp; * {@link ConsoleReporter} or {@link CsvReporter}, but using the SLF4J framework instead. It also
    -&nbsp; * supports specifying a {@link Marker} instance that can be used by custom appenders and filters
    -&nbsp; * for the bound logging toolkit to further process metrics reports.
    -&nbsp; */
    -<b class="fc">&nbsp;public class Slf4jReporter extends ScheduledReporter {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link Slf4jReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link Slf4jReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public enum LoggingLevel { TRACE, DEBUG, INFO, WARN, ERROR }</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link Slf4jReporter} instances. Defaults to logging to {@code metrics}, not
    -&nbsp;     * using a marker, converting rates to events/second, converting durations to milliseconds, and
    -&nbsp;     * not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private Logger logger;
    -&nbsp;        private LoggingLevel loggingLevel;
    -&nbsp;        private Marker marker;
    -&nbsp;        private String prefix;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private MetricFilter filter;
    -&nbsp;        private ScheduledExecutorService executor;
    -&nbsp;        private boolean shutdownExecutorOnStop;
    -&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.logger = LoggerFactory.getLogger(&quot;metrics&quot;);</b>
    -<b class="fc">&nbsp;            this.marker = null;</b>
    -<b class="fc">&nbsp;            this.prefix = &quot;&quot;;</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;            this.loggingLevel = LoggingLevel.INFO;</b>
    -<b class="fc">&nbsp;            this.executor = null;</b>
    -<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = Collections.emptySet();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -&nbsp;         * Default value is true.
    -&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -&nbsp;         *
    -&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    -&nbsp;         * Default value is null.
    -&nbsp;         * Null value leads to executor will be auto created on start.
    -&nbsp;         *
    -&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Log metrics to the given logger.
    -&nbsp;         *
    -&nbsp;         * @param logger an SLF4J {@link Logger}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder outputTo(Logger logger) {
    -<b class="fc">&nbsp;            this.logger = logger;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Mark all logged metrics with the given marker.
    -&nbsp;         *
    -&nbsp;         * @param marker an SLF4J {@link Marker}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder markWith(Marker marker) {
    -<b class="fc">&nbsp;            this.marker = marker;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Prefix all metric names with the given string.
    -&nbsp;         *
    -&nbsp;         * @param prefix the prefix for all metric names
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder prefixedWith(String prefix) {
    -<b class="fc">&nbsp;            this.prefix = prefix;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use Logging Level when reporting.
    -&nbsp;         *
    -&nbsp;         * @param loggingLevel a (@link Slf4jReporter.LoggingLevel}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withLoggingLevel(LoggingLevel loggingLevel) {
    -<b class="fc">&nbsp;            this.loggingLevel = loggingLevel;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    -&nbsp;         * See {@link MetricAttribute}.
    -&nbsp;         *
    -&nbsp;         * @param disabledMetricAttributes a set of {@link MetricAttribute}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link Slf4jReporter} with the given properties.
    -&nbsp;         *
    -&nbsp;         * @return a {@link Slf4jReporter}
    -&nbsp;         */
    -&nbsp;        public Slf4jReporter build() {
    -&nbsp;            LoggerProxy loggerProxy;
    -<b class="fc">&nbsp;            switch (loggingLevel) {</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    loggerProxy = new TraceLoggerProxy(logger);</b>
    -<b class="nc">&nbsp;                    break;</b>
    -&nbsp;                case INFO:
    -<b class="fc">&nbsp;                    loggerProxy = new InfoLoggerProxy(logger);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case WARN:
    -<b class="nc">&nbsp;                    loggerProxy = new WarnLoggerProxy(logger);</b>
    -<b class="nc">&nbsp;                    break;</b>
    -&nbsp;                case ERROR:
    -<b class="fc">&nbsp;                    loggerProxy = new ErrorLoggerProxy(logger);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                default:
    -&nbsp;                case DEBUG:
    -<b class="nc">&nbsp;                    loggerProxy = new DebugLoggerProxy(logger);</b>
    -&nbsp;                    break;
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new Slf4jReporter(registry, loggerProxy, marker, prefix, rateUnit, durationUnit, filter, executor,</b>
    -&nbsp;                    shutdownExecutorOnStop, disabledMetricAttributes);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final LoggerProxy loggerProxy;
    -&nbsp;    private final Marker marker;
    -&nbsp;    private final String prefix;
    -&nbsp;
    -&nbsp;    private Slf4jReporter(MetricRegistry registry,
    -&nbsp;                          LoggerProxy loggerProxy,
    -&nbsp;                          Marker marker,
    -&nbsp;                          String prefix,
    -&nbsp;                          TimeUnit rateUnit,
    -&nbsp;                          TimeUnit durationUnit,
    -&nbsp;                          MetricFilter filter,
    -&nbsp;                          ScheduledExecutorService executor,
    -&nbsp;                          boolean shutdownExecutorOnStop,
    -&nbsp;                          Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;        super(registry, &quot;logger-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes);
    -<b class="fc">&nbsp;        this.loggerProxy = loggerProxy;</b>
    -<b class="fc">&nbsp;        this.marker = marker;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        if (loggerProxy.isEnabled(marker)) {</b>
    -<b class="fc">&nbsp;            StringBuilder b = new StringBuilder();</b>
    -<b class="fc">&nbsp;            for (Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;                logGauge(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;                logCounter(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;                logHistogram(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;                logMeter(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;                logTimer(b, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void logTimer(StringBuilder b, String name, Timer timer) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=TIMER&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        appendCountIfEnabled(b, timer);</b>
    -<b class="fc">&nbsp;        appendLongDurationIfEnabled(b, MIN, snapshot::getMin);</b>
    -<b class="fc">&nbsp;        appendLongDurationIfEnabled(b, MAX, snapshot::getMax);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, MEAN, snapshot::getMean);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, STDDEV, snapshot::getStdDev);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P50, snapshot::getMedian);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P75, snapshot::get75thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P95, snapshot::get95thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P98, snapshot::get98thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P99, snapshot::get99thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleDurationIfEnabled(b, P999, snapshot::get999thPercentile);</b>
    -<b class="fc">&nbsp;        appendMetered(b, timer);</b>
    -<b class="fc">&nbsp;        append(b, &quot;rate_unit&quot;, getRateUnit());</b>
    -<b class="fc">&nbsp;        append(b, &quot;duration_unit&quot;, getDurationUnit());</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void logMeter(StringBuilder b, String name, Meter meter) {
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=METER&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        appendCountIfEnabled(b, meter);</b>
    -<b class="fc">&nbsp;        appendMetered(b, meter);</b>
    -<b class="fc">&nbsp;        append(b, &quot;rate_unit&quot;, getRateUnit());</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void logHistogram(StringBuilder b, String name, Histogram histogram) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=HISTOGRAM&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        appendCountIfEnabled(b, histogram);</b>
    -<b class="fc">&nbsp;        appendLongIfEnabled(b, MIN, snapshot::getMin);</b>
    -<b class="fc">&nbsp;        appendLongIfEnabled(b, MAX, snapshot::getMax);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, MEAN, snapshot::getMean);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, STDDEV, snapshot::getStdDev);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P50, snapshot::getMedian);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P75, snapshot::get75thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P95, snapshot::get95thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P98, snapshot::get98thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P99, snapshot::get99thPercentile);</b>
    -<b class="fc">&nbsp;        appendDoubleIfEnabled(b, P999, snapshot::get999thPercentile);</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void logCounter(StringBuilder b, String name, Counter counter) {
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=COUNTER&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        append(b, COUNT.getCode(), counter.getCount());</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void logGauge(StringBuilder b, String name, Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;        b.setLength(0);</b>
    -<b class="fc">&nbsp;        b.append(&quot;type=GAUGE&quot;);</b>
    -<b class="fc">&nbsp;        append(b, &quot;name&quot;, prefix(name));</b>
    -<b class="fc">&nbsp;        append(b, &quot;value&quot;, gauge.getValue());</b>
    -<b class="fc">&nbsp;        loggerProxy.log(marker, b.toString());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendLongDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -&nbsp;                                             Supplier&lt;Long&gt; durationSupplier) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendDoubleDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -&nbsp;                                               Supplier&lt;Double&gt; durationSupplier) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendLongIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -&nbsp;                                     Supplier&lt;Long&gt; valueSupplier) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), valueSupplier.get());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendDoubleIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -&nbsp;                                       Supplier&lt;Double&gt; valueSupplier) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), valueSupplier.get());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendCountIfEnabled(StringBuilder b, Counting counting) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(COUNT)) {</b>
    -<b class="fc">&nbsp;            append(b, COUNT.getCode(), counting.getCount());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendMetered(StringBuilder b, Metered meter) {
    -<b class="fc">&nbsp;        appendRateIfEnabled(b, M1_RATE, meter::getOneMinuteRate);</b>
    -<b class="fc">&nbsp;        appendRateIfEnabled(b, M5_RATE, meter::getFiveMinuteRate);</b>
    -<b class="fc">&nbsp;        appendRateIfEnabled(b, M15_RATE,  meter::getFifteenMinuteRate);</b>
    -<b class="fc">&nbsp;        appendRateIfEnabled(b, MEAN_RATE,  meter::getMeanRate);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void appendRateIfEnabled(StringBuilder b, MetricAttribute metricAttribute, Supplier&lt;Double&gt; rateSupplier) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</b>
    -<b class="fc">&nbsp;            append(b, metricAttribute.getCode(), convertRate(rateSupplier.get()));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void append(StringBuilder b, String key, long value) {
    -<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void append(StringBuilder b, String key, double value) {
    -<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void append(StringBuilder b, String key, String value) {
    -<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void append(StringBuilder b, String key, Object value) {
    -<b class="fc">&nbsp;        b.append(&quot;, &quot;).append(key).append(&#39;=&#39;).append(value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected String getRateUnit() {
    -<b class="fc">&nbsp;        return &quot;events/&quot; + super.getRateUnit();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String prefix(String... components) {
    -<b class="fc">&nbsp;        return MetricRegistry.name(prefix, components);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    static abstract class LoggerProxy {
    -&nbsp;        protected final Logger logger;
    -&nbsp;
    -<b class="fc">&nbsp;        public LoggerProxy(Logger logger) {</b>
    -<b class="fc">&nbsp;            this.logger = logger;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        abstract void log(Marker marker, String format);
    -&nbsp;
    -&nbsp;        abstract boolean isEnabled(Marker marker);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class DebugLoggerProxy extends LoggerProxy {
    -&nbsp;        public DebugLoggerProxy(Logger logger) {
    -<b class="nc">&nbsp;            super(logger);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="nc">&nbsp;            logger.debug(marker, format);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="nc">&nbsp;            return logger.isDebugEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class TraceLoggerProxy extends LoggerProxy {
    -&nbsp;        public TraceLoggerProxy(Logger logger) {
    -<b class="nc">&nbsp;            super(logger);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="nc">&nbsp;            logger.trace(marker, format);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="nc">&nbsp;            return logger.isTraceEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class InfoLoggerProxy extends LoggerProxy {
    -&nbsp;        public InfoLoggerProxy(Logger logger) {
    -<b class="fc">&nbsp;            super(logger);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="fc">&nbsp;            logger.info(marker, format);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="fc">&nbsp;            return logger.isInfoEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class WarnLoggerProxy extends LoggerProxy {
    -&nbsp;        public WarnLoggerProxy(Logger logger) {
    -<b class="nc">&nbsp;            super(logger);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="nc">&nbsp;            logger.warn(marker, format);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="nc">&nbsp;            return logger.isWarnEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* private class to allow logger configuration */
    -&nbsp;    private static class ErrorLoggerProxy extends LoggerProxy {
    -&nbsp;        public ErrorLoggerProxy(Logger logger) {
    -<b class="fc">&nbsp;            super(logger);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void log(Marker marker, String format) {
    -<b class="fc">&nbsp;            logger.error(marker, format);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean isEnabled(Marker marker) {
    -<b class="fc">&nbsp;            return logger.isErrorEnabled(marker);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1c.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1c.html
    deleted file mode 100644
    index be579c8bfa..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1c.html
    +++ /dev/null
    @@ -1,205 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowArrayReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowArrayReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.9%
    -  </span>
    -  <span class="absValue">
    -    (29/33)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
    -&nbsp; * in the last {@code N} seconds (or other time unit).
    -&nbsp; */
    -&nbsp;public class SlidingTimeWindowArrayReservoir implements Reservoir {
    -&nbsp;    // allow for this many duplicate ticks before overwriting measurements
    -&nbsp;    private static final long COLLISION_BUFFER = 256L;
    -&nbsp;    // only trim on updating once every N
    -&nbsp;    private static final long TRIM_THRESHOLD = 256L;
    -<b class="fc">&nbsp;    private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final ChunkedAssociativeLongArray measurements;
    -&nbsp;    private final long window;
    -&nbsp;    private final AtomicLong lastTick;
    -&nbsp;    private final AtomicLong count;
    -&nbsp;    private final long startTick;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given window of time.
    -&nbsp;     *
    -&nbsp;     * @param window     the window of time
    -&nbsp;     * @param windowUnit the unit of {@code window}
    -&nbsp;     */
    -&nbsp;    public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit) {
    -<b class="nc">&nbsp;        this(window, windowUnit, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given clock and window of time.
    -&nbsp;     *
    -&nbsp;     * @param window     the window of time
    -&nbsp;     * @param windowUnit the unit of {@code window}
    -&nbsp;     * @param clock      the {@link Clock} to use
    -&nbsp;     */
    -<b class="fc">&nbsp;    public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.startTick = clock.getTick();</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.measurements = new ChunkedAssociativeLongArray();</b>
    -<b class="fc">&nbsp;        this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;</b>
    -<b class="fc">&nbsp;        this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);</b>
    -<b class="fc">&nbsp;        this.count = new AtomicLong();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        trim();</b>
    -<b class="fc">&nbsp;        return measurements.size();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -&nbsp;        long newTick;
    -&nbsp;        do {
    -<b class="fc">&nbsp;            if (count.incrementAndGet() % TRIM_THRESHOLD == 0L) {</b>
    -<b class="fc">&nbsp;                trim();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            long lastTick = this.lastTick.get();</b>
    -<b class="fc">&nbsp;            newTick = getTick();</b>
    -<b class="fc">&nbsp;            boolean longOverflow = newTick &lt; lastTick;</b>
    -<b class="fc">&nbsp;            if (longOverflow) {</b>
    -<b class="nc">&nbsp;                measurements.clear();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        } while (!measurements.put(newTick, value));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        trim();</b>
    -<b class="fc">&nbsp;        return new UniformSnapshot(measurements.values());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private long getTick() {
    -&nbsp;        for ( ;; ) {
    -<b class="fc">&nbsp;            final long oldTick = lastTick.get();</b>
    -<b class="fc">&nbsp;            final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;</b>
    -&nbsp;            // ensure the tick is strictly incrementing even if there are duplicate ticks
    -<b class="fc">&nbsp;            final long newTick = tick - oldTick &gt; 0L ? tick : oldTick + 1L;</b>
    -<b class="fc">&nbsp;            if (lastTick.compareAndSet(oldTick, newTick)) {</b>
    -<b class="fc">&nbsp;                return newTick;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void trim() {
    -<b class="fc">&nbsp;        final long now = getTick();</b>
    -<b class="fc">&nbsp;        final long windowStart = now - window;</b>
    -<b class="fc">&nbsp;        final long windowEnd = now + CLEAR_BUFFER;</b>
    -<b class="fc">&nbsp;        if (windowStart &lt; windowEnd) {</b>
    -<b class="fc">&nbsp;            measurements.trim(windowStart, windowEnd);</b>
    -&nbsp;        } else {
    -&nbsp;            // long overflow handling that can happen only after 1 year after class loading
    -<b class="nc">&nbsp;            measurements.clear();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1d.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1d.html
    deleted file mode 100644
    index e3bd0a979e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1d.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowArrayReservoirTrimReadTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirTrimReadTest (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowArrayReservoirTrimReadTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">SlidingTimeWindowArrayReservoirTrimReadTest$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/14)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.openjdk.jcstress.annotations.Actor;
    -&nbsp;import org.openjdk.jcstress.annotations.Expect;
    -&nbsp;import org.openjdk.jcstress.annotations.JCStressTest;
    -&nbsp;import org.openjdk.jcstress.annotations.Outcome;
    -&nbsp;import org.openjdk.jcstress.annotations.State;
    -&nbsp;import org.openjdk.jcstress.infra.results.L_Result;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;@JCStressTest
    -&nbsp;@Outcome(
    -&nbsp;    id = &quot;\\[240, 241, 242, 243, 244, 245, 246, 247, 248, 249\\]&quot;,
    -&nbsp;    expect = Expect.ACCEPTABLE,
    -&nbsp;    desc = &quot;Actor1 made read before Actor2 even started&quot;
    -&nbsp;    )
    -&nbsp;@Outcome(
    -&nbsp;    id = &quot;\\[243, 244, 245, 246, 247, 248, 249\\]&quot;,
    -&nbsp;    expect = Expect.ACCEPTABLE,
    -&nbsp;    desc = &quot;Actor2 made trim before Actor1 even started&quot;
    -&nbsp;    )
    -&nbsp;@Outcome(
    -&nbsp;    id = &quot;\\[244, 245, 246, 247, 248, 249\\]&quot;,
    -&nbsp;    expect = Expect.ACCEPTABLE,
    -&nbsp;    desc = &quot;Actor1 made trim, then Actor2 started trim and made startIndex change, &quot; +
    -&nbsp;        &quot;before Actor1 concurrent read.&quot;
    -&nbsp;    )
    -&nbsp;@Outcome(
    -&nbsp;    id = &quot;\\[243, 244, 245, 246, 247, 248\\]&quot;,
    -&nbsp;    expect = Expect.ACCEPTABLE,
    -&nbsp;    desc = &quot;Actor1 made trim, then Actor2 started trim, but not finished startIndex change, before Actor1 concurrent read.&quot;
    -&nbsp;    )
    -&nbsp;@State
    -<b class="nc">&nbsp;public class SlidingTimeWindowArrayReservoirTrimReadTest {</b>
    -<b class="nc">&nbsp;    private final AtomicLong ticks = new AtomicLong(0);</b>
    -&nbsp;    private final SlidingTimeWindowArrayReservoir reservoir;
    -&nbsp;
    -<b class="nc">&nbsp;    public SlidingTimeWindowArrayReservoirTrimReadTest() {</b>
    -<b class="nc">&nbsp;        reservoir = new SlidingTimeWindowArrayReservoir(10, TimeUnit.NANOSECONDS, new Clock() {</b>
    -&nbsp;            @Override
    -&nbsp;            public long getTick() {
    -<b class="nc">&nbsp;                return ticks.get();</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="nc">&nbsp;        for (int i = 0; i &lt; 250; i++) {</b>
    -<b class="nc">&nbsp;            ticks.set(i);</b>
    -<b class="nc">&nbsp;            reservoir.update(i);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor1(L_Result r) {
    -<b class="nc">&nbsp;        Snapshot snapshot = reservoir.getSnapshot();</b>
    -<b class="nc">&nbsp;        String stringValues = Arrays.toString(snapshot.getValues());</b>
    -<b class="nc">&nbsp;        r.r1 = stringValues;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor2() {
    -<b class="nc">&nbsp;        ticks.set(253);</b>
    -<b class="nc">&nbsp;        reservoir.trim();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1e.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1e.html
    deleted file mode 100644
    index bce9ecd30c..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1e.html
    +++ /dev/null
    @@ -1,149 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowArrayReservoirWriteReadAllocate</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirWriteReadAllocate (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowArrayReservoirWriteReadAllocate</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.openjdk.jcstress.annotations.Actor;
    -&nbsp;import org.openjdk.jcstress.annotations.Arbiter;
    -&nbsp;import org.openjdk.jcstress.annotations.Expect;
    -&nbsp;import org.openjdk.jcstress.annotations.JCStressTest;
    -&nbsp;import org.openjdk.jcstress.annotations.Outcome;
    -&nbsp;import org.openjdk.jcstress.annotations.State;
    -&nbsp;import org.openjdk.jcstress.infra.results.L_Result;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;@JCStressTest
    -&nbsp;@Outcome(id = &quot;\\[1023, 1029, 1034\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@State
    -&nbsp;public class SlidingTimeWindowArrayReservoirWriteReadAllocate {
    -&nbsp;
    -&nbsp;    private final SlidingTimeWindowArrayReservoir reservoir;
    -&nbsp;
    -<b class="nc">&nbsp;    public SlidingTimeWindowArrayReservoirWriteReadAllocate() {</b>
    -<b class="nc">&nbsp;        reservoir = new SlidingTimeWindowArrayReservoir(500, TimeUnit.SECONDS);</b>
    -<b class="nc">&nbsp;        for (int i = 0; i &lt; 1024; i++) {</b>
    -<b class="nc">&nbsp;            reservoir.update(i);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor1() {
    -<b class="nc">&nbsp;        reservoir.update(1029L);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor2() {
    -<b class="nc">&nbsp;        reservoir.update(1034L);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Arbiter
    -&nbsp;    public void arbiter(L_Result r) {
    -<b class="nc">&nbsp;        Snapshot snapshot = reservoir.getSnapshot();</b>
    -<b class="nc">&nbsp;        long[] values = snapshot.getValues();</b>
    -<b class="nc">&nbsp;        String stringValues = Arrays.toString(Arrays.copyOfRange(values, values.length - 3, values.length));</b>
    -<b class="nc">&nbsp;        r.r1 = stringValues;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1f.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1f.html
    deleted file mode 100644
    index d35f05f355..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-1f.html
    +++ /dev/null
    @@ -1,149 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowArrayReservoirWriteReadTest</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowArrayReservoirWriteReadTest (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowArrayReservoirWriteReadTest</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.openjdk.jcstress.annotations.Actor;
    -&nbsp;import org.openjdk.jcstress.annotations.Expect;
    -&nbsp;import org.openjdk.jcstress.annotations.JCStressTest;
    -&nbsp;import org.openjdk.jcstress.annotations.Outcome;
    -&nbsp;import org.openjdk.jcstress.annotations.State;
    -&nbsp;import org.openjdk.jcstress.infra.results.L_Result;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;@JCStressTest
    -&nbsp;@Outcome(id = &quot;\\[\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@Outcome(id = &quot;\\[31\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@Outcome(id = &quot;\\[15\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@Outcome(id = &quot;\\[31, 15\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@Outcome(id = &quot;\\[15, 31\\]&quot;, expect = Expect.ACCEPTABLE)
    -&nbsp;@State
    -&nbsp;public class SlidingTimeWindowArrayReservoirWriteReadTest {
    -&nbsp;
    -&nbsp;    private final SlidingTimeWindowArrayReservoir reservoir;
    -&nbsp;
    -<b class="nc">&nbsp;    public SlidingTimeWindowArrayReservoirWriteReadTest() {</b>
    -<b class="nc">&nbsp;        reservoir = new SlidingTimeWindowArrayReservoir(1, TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor1() {
    -<b class="nc">&nbsp;        reservoir.update(31L);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor2() {
    -<b class="nc">&nbsp;        reservoir.update(15L);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Actor
    -&nbsp;    public void actor3(L_Result r) {
    -<b class="nc">&nbsp;        Snapshot snapshot = reservoir.getSnapshot();</b>
    -<b class="nc">&nbsp;        String stringValues = Arrays.toString(snapshot.getValues());</b>
    -<b class="nc">&nbsp;        r.r1 = stringValues;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2.html
    deleted file mode 100644
    index 4ad5500829..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2.html
    +++ /dev/null
    @@ -1,333 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ChunkedAssociativeLongArray</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ChunkedAssociativeLongArray (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ChunkedAssociativeLongArray</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.3%
    -  </span>
    -  <span class="absValue">
    -    (81/85)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">ChunkedAssociativeLongArray$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ChunkedAssociativeLongArray$Chunk</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.8%
    -  </span>
    -  <span class="absValue">
    -    (91/95)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.lang.ref.SoftReference;
    -&nbsp;import java.util.ArrayDeque;
    -&nbsp;import java.util.Deque;
    -&nbsp;import java.util.Iterator;
    -&nbsp;
    -&nbsp;import static java.lang.System.arraycopy;
    -&nbsp;import static java.util.Arrays.binarySearch;
    -&nbsp;
    -&nbsp;class ChunkedAssociativeLongArray {
    -<b class="fc">&nbsp;    private static final long[] EMPTY = new long[0];</b>
    -&nbsp;    private static final int DEFAULT_CHUNK_SIZE = 512;
    -&nbsp;    private static final int MAX_CACHE_SIZE = 128;
    -&nbsp;
    -&nbsp;    private final int defaultChunkSize;
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * We use this ArrayDeque as cache to store chunks that are expired and removed from main data structure.
    -&nbsp;     * Then instead of allocating new Chunk immediately we are trying to poll one from this deque.
    -&nbsp;     * So if you have constant or slowly changing load ChunkedAssociativeLongArray will never
    -&nbsp;     * throw away old chunks or allocate new ones which makes this data structure almost garbage free.
    -&nbsp;     */
    -<b class="fc">&nbsp;    private final ArrayDeque&lt;SoftReference&lt;Chunk&gt;&gt; chunksCache = new ArrayDeque&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private final Deque&lt;Chunk&gt; chunks = new ArrayDeque&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    ChunkedAssociativeLongArray() {
    -<b class="fc">&nbsp;        this(DEFAULT_CHUNK_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    ChunkedAssociativeLongArray(int chunkSize) {</b>
    -<b class="fc">&nbsp;        this.defaultChunkSize = chunkSize;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Chunk allocateChunk() {
    -&nbsp;        while (true) {
    -<b class="fc">&nbsp;            final SoftReference&lt;Chunk&gt; chunkRef = chunksCache.pollLast();</b>
    -<b class="fc">&nbsp;            if (chunkRef == null) {</b>
    -<b class="fc">&nbsp;                return new Chunk(defaultChunkSize);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            final Chunk chunk = chunkRef.get();</b>
    -<b class="fc">&nbsp;            if (chunk != null) {</b>
    -<b class="fc">&nbsp;                chunk.cursor = 0;</b>
    -<b class="fc">&nbsp;                chunk.startIndex = 0;</b>
    -<b class="fc">&nbsp;                chunk.chunkSize = chunk.keys.length;</b>
    -<b class="fc">&nbsp;                return chunk;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void freeChunk(Chunk chunk) {
    -<b class="fc">&nbsp;        if (chunksCache.size() &lt; MAX_CACHE_SIZE) {</b>
    -<b class="fc">&nbsp;            chunksCache.add(new SoftReference&lt;&gt;(chunk));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    synchronized boolean put(long key, long value) {
    -<b class="fc">&nbsp;        Chunk activeChunk = chunks.peekLast();</b>
    -<b class="fc">&nbsp;        if (activeChunk != null &amp;&amp; activeChunk.cursor != 0 &amp;&amp; activeChunk.keys[activeChunk.cursor - 1] &gt; key) {</b>
    -&nbsp;            // key should be the same as last inserted or bigger
    -<b class="nc">&nbsp;            return false;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (activeChunk == null || activeChunk.cursor - activeChunk.startIndex == activeChunk.chunkSize) {</b>
    -&nbsp;            // The last chunk doesn&#39;t exist or full
    -<b class="fc">&nbsp;            activeChunk = allocateChunk();</b>
    -<b class="fc">&nbsp;            chunks.add(activeChunk);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeChunk.append(key, value);</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    synchronized long[] values() {
    -<b class="fc">&nbsp;        final int valuesSize = size();</b>
    -<b class="fc">&nbsp;        if (valuesSize == 0) {</b>
    -<b class="nc">&nbsp;            return EMPTY;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final long[] values = new long[valuesSize];</b>
    -<b class="fc">&nbsp;        int valuesIndex = 0;</b>
    -<b class="fc">&nbsp;        for (Chunk chunk : chunks) {</b>
    -<b class="fc">&nbsp;            int length = chunk.cursor - chunk.startIndex;</b>
    -<b class="fc">&nbsp;            int itemsToCopy = Math.min(valuesSize - valuesIndex, length);</b>
    -<b class="fc">&nbsp;            arraycopy(chunk.values, chunk.startIndex, values, valuesIndex, itemsToCopy);</b>
    -<b class="fc">&nbsp;            valuesIndex += length;</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return values;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    synchronized int size() {
    -<b class="fc">&nbsp;        int result = 0;</b>
    -<b class="fc">&nbsp;        for (Chunk chunk : chunks) {</b>
    -<b class="fc">&nbsp;            result += chunk.cursor - chunk.startIndex;</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return result;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    synchronized String out() {
    -<b class="fc">&nbsp;        final StringBuilder builder = new StringBuilder();</b>
    -<b class="fc">&nbsp;        final Iterator&lt;Chunk&gt; iterator = chunks.iterator();</b>
    -<b class="fc">&nbsp;        while (iterator.hasNext()) {</b>
    -<b class="fc">&nbsp;            final Chunk chunk = iterator.next();</b>
    -<b class="fc">&nbsp;            builder.append(&#39;[&#39;);</b>
    -<b class="fc">&nbsp;            for (int i = chunk.startIndex; i &lt; chunk.cursor; i++) {</b>
    -<b class="fc">&nbsp;                builder.append(&#39;(&#39;).append(chunk.keys[i]).append(&quot;: &quot;)</b>
    -<b class="fc">&nbsp;                        .append(chunk.values[i]).append(&#39;)&#39;).append(&#39; &#39;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            builder.append(&#39;]&#39;);</b>
    -<b class="fc">&nbsp;            if (iterator.hasNext()) {</b>
    -<b class="fc">&nbsp;                builder.append(&quot;-&gt;&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return builder.toString();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Try to trim all beyond specified boundaries.
    -&nbsp;     *
    -&nbsp;     * @param startKey the start value for which all elements less than it should be removed.
    -&nbsp;     * @param endKey   the end value for which all elements greater/equals than it should be removed.
    -&nbsp;     */
    -&nbsp;    synchronized void trim(long startKey, long endKey) {
    -&nbsp;        /*
    -&nbsp;         * [3, 4, 5, 9] -&gt; [10, 13, 14, 15] -&gt; [21, 24, 29, 30] -&gt; [31] :: start layout
    -&nbsp;         *       |5______________________________23|                    :: trim(5, 23)
    -&nbsp;         *       [5, 9] -&gt; [10, 13, 14, 15] -&gt; [21]                     :: result layout
    -&nbsp;         */
    -<b class="fc">&nbsp;        final Iterator&lt;Chunk&gt; descendingIterator = chunks.descendingIterator();</b>
    -<b class="fc">&nbsp;        while (descendingIterator.hasNext()) {</b>
    -<b class="fc">&nbsp;            final Chunk currentTail = descendingIterator.next();</b>
    -<b class="fc">&nbsp;            if (isFirstElementIsEmptyOrGreaterEqualThanKey(currentTail, endKey)) {</b>
    -<b class="fc">&nbsp;                freeChunk(currentTail);</b>
    -<b class="fc">&nbsp;                descendingIterator.remove();</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                currentTail.cursor = findFirstIndexOfGreaterEqualElements(currentTail.keys, currentTail.startIndex,</b>
    -<b class="fc">&nbsp;                        currentTail.cursor, endKey);</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final Iterator&lt;Chunk&gt; iterator = chunks.iterator();</b>
    -<b class="fc">&nbsp;        while (iterator.hasNext()) {</b>
    -<b class="fc">&nbsp;            final Chunk currentHead = iterator.next();</b>
    -<b class="fc">&nbsp;            if (isLastElementIsLessThanKey(currentHead, startKey)) {</b>
    -<b class="fc">&nbsp;                freeChunk(currentHead);</b>
    -<b class="fc">&nbsp;                iterator.remove();</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                final int newStartIndex = findFirstIndexOfGreaterEqualElements(currentHead.keys, currentHead.startIndex,</b>
    -<b class="fc">&nbsp;                        currentHead.cursor, startKey);</b>
    -<b class="fc">&nbsp;                if (currentHead.startIndex != newStartIndex) {</b>
    -<b class="fc">&nbsp;                    currentHead.startIndex = newStartIndex;</b>
    -<b class="fc">&nbsp;                    currentHead.chunkSize = currentHead.cursor - currentHead.startIndex;</b>
    -&nbsp;                }
    -&nbsp;                break;
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    synchronized void clear() {
    -<b class="nc">&nbsp;        chunks.clear();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private boolean isFirstElementIsEmptyOrGreaterEqualThanKey(Chunk chunk, long key) {
    -<b class="fc">&nbsp;        return chunk.cursor == chunk.startIndex || chunk.keys[chunk.startIndex] &gt;= key;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private boolean isLastElementIsLessThanKey(Chunk chunk, long key) {
    -<b class="fc">&nbsp;        return chunk.cursor == chunk.startIndex || chunk.keys[chunk.cursor - 1] &lt; key;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private int findFirstIndexOfGreaterEqualElements(long[] array, int startIndex, int endIndex, long minKey) {
    -<b class="fc">&nbsp;        if (endIndex == startIndex || array[startIndex] &gt;= minKey) {</b>
    -<b class="fc">&nbsp;            return startIndex;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        final int keyIndex = binarySearch(array, startIndex, endIndex, minKey);</b>
    -<b class="fc">&nbsp;        return keyIndex &lt; 0 ? -(keyIndex + 1) : keyIndex;</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class Chunk {</b>
    -&nbsp;
    -&nbsp;        private final long[] keys;
    -&nbsp;        private final long[] values;
    -&nbsp;
    -&nbsp;        private int chunkSize; // can differ from keys.length after half clear()
    -<b class="fc">&nbsp;        private int startIndex = 0;</b>
    -<b class="fc">&nbsp;        private int cursor = 0;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private Chunk(int chunkSize) {</b>
    -<b class="fc">&nbsp;            this.chunkSize = chunkSize;</b>
    -<b class="fc">&nbsp;            this.keys = new long[chunkSize];</b>
    -<b class="fc">&nbsp;            this.values = new long[chunkSize];</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void append(long key, long value) {
    -<b class="fc">&nbsp;            keys[cursor] = key;</b>
    -<b class="fc">&nbsp;            values[cursor] = value;</b>
    -<b class="fc">&nbsp;            cursor++;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-20.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-20.html
    deleted file mode 100644
    index 149da36872..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-20.html
    +++ /dev/null
    @@ -1,301 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowMovingAverages</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowMovingAverages (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowMovingAverages</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (63/63)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.time.Instant;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A triple of simple moving average rates (one, five and fifteen minutes rates) as needed by {@link Meter}.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * The averages are unweighted, i.e. they include strictly only the events in the
    -&nbsp; * sliding time window, every event having the same weight. Unlike the
    -&nbsp; * the more widely used {@link ExponentialMovingAverages} implementation,
    -&nbsp; * with this class the moving average rate drops immediately to zero if the last
    -&nbsp; * marked event is older than the time window.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A {@link Meter} with {@link SlidingTimeWindowMovingAverages} works similarly to
    -&nbsp; * a {@link Histogram} with an {@link SlidingTimeWindowArrayReservoir}, but as a Meter
    -&nbsp; * needs to keep track only of the count of events (not the events itself), the memory
    -&nbsp; * overhead is much smaller. SlidingTimeWindowMovingAverages uses buckets with just one
    -&nbsp; * counter to accumulate the number of events (one bucket per seconds, giving 900 buckets
    -&nbsp; * for the 15 minutes time window).
    -&nbsp; */
    -&nbsp;public class SlidingTimeWindowMovingAverages implements MovingAverages {
    -&nbsp;
    -&nbsp;    private static final long TIME_WINDOW_DURATION_MINUTES = 15;
    -<b class="fc">&nbsp;    private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(1);</b>
    -<b class="fc">&nbsp;    private static final Duration TIME_WINDOW_DURATION = Duration.ofMinutes(TIME_WINDOW_DURATION_MINUTES);</b>
    -&nbsp;
    -&nbsp;    // package private for the benefit of the unit test
    -<b class="fc">&nbsp;    static final int NUMBER_OF_BUCKETS = (int) (TIME_WINDOW_DURATION.toNanos() / TICK_INTERVAL);</b>
    -&nbsp;
    -&nbsp;    private final AtomicLong lastTick;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * One counter per time bucket/slot (i.e. per second, see TICK_INTERVAL) for the entire
    -&nbsp;     * time window (i.e. 15 minutes, see TIME_WINDOW_DURATION_MINUTES)
    -&nbsp;     */
    -&nbsp;    private ArrayList&lt;LongAdder&gt; buckets;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Index into buckets, pointing at the bucket containing the oldest counts
    -&nbsp;     */
    -&nbsp;    private int oldestBucketIndex;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Index into buckets, pointing at the bucket with the count for the current time (tick)
    -&nbsp;     */
    -&nbsp;    private int currentBucketIndex;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Instant at creation time of the time window. Used to calculate the currentBucketIndex
    -&nbsp;     * for the instant of a given tick (instant modulo time window duration)
    -&nbsp;     */
    -&nbsp;    private final Instant bucketBaseTime;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Instant of the bucket with index oldestBucketIndex
    -&nbsp;     */
    -&nbsp;    Instant oldestBucketTime;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowMovingAverages}.
    -&nbsp;     */
    -&nbsp;    public SlidingTimeWindowMovingAverages() {
    -<b class="fc">&nbsp;        this(Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowMovingAverages}.
    -&nbsp;     *
    -&nbsp;     * @param clock the clock to use for the meter ticks
    -&nbsp;     */
    -<b class="fc">&nbsp;    public SlidingTimeWindowMovingAverages(Clock clock) {</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    -<b class="fc">&nbsp;        lastTick = new AtomicLong(startTime);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        buckets = new ArrayList&lt;&gt;(NUMBER_OF_BUCKETS);</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; NUMBER_OF_BUCKETS; i++) {</b>
    -<b class="fc">&nbsp;            buckets.add(new LongAdder());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        bucketBaseTime = Instant.ofEpochSecond(0L, startTime);</b>
    -<b class="fc">&nbsp;        oldestBucketTime = bucketBaseTime;</b>
    -<b class="fc">&nbsp;        oldestBucketIndex = 0;</b>
    -<b class="fc">&nbsp;        currentBucketIndex = 0;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long n) {
    -<b class="fc">&nbsp;        buckets.get(currentBucketIndex).add(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void tickIfNecessary() {
    -<b class="fc">&nbsp;        final long oldTick = lastTick.get();</b>
    -<b class="fc">&nbsp;        final long newTick = clock.getTick();</b>
    -<b class="fc">&nbsp;        final long age = newTick - oldTick;</b>
    -<b class="fc">&nbsp;        if (age &gt;= TICK_INTERVAL) {</b>
    -&nbsp;            // - the newTick doesn&#39;t fall into the same slot as the oldTick anymore
    -&nbsp;            // - newLastTick is the lower border time of the new currentBucketIndex slot
    -<b class="fc">&nbsp;            final long newLastTick = newTick - age % TICK_INTERVAL;</b>
    -<b class="fc">&nbsp;            if (lastTick.compareAndSet(oldTick, newLastTick)) {</b>
    -<b class="fc">&nbsp;                Instant currentInstant = Instant.ofEpochSecond(0L, newLastTick);</b>
    -<b class="fc">&nbsp;                currentBucketIndex = normalizeIndex(calculateIndexOfTick(currentInstant));</b>
    -<b class="fc">&nbsp;                cleanOldBuckets(currentInstant);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM15Rate() {
    -<b class="fc">&nbsp;        return getMinuteRate(15);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM5Rate() {
    -<b class="fc">&nbsp;        return getMinuteRate(5);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM1Rate() {
    -<b class="fc">&nbsp;        return getMinuteRate(1);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private double getMinuteRate(int minutes) {
    -<b class="fc">&nbsp;        Instant now = Instant.ofEpochSecond(0L, lastTick.get());</b>
    -<b class="fc">&nbsp;        return sumBuckets(now, (int) (TimeUnit.MINUTES.toNanos(minutes) / TICK_INTERVAL));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    int calculateIndexOfTick(Instant tickTime) {
    -<b class="fc">&nbsp;        return (int) (Duration.between(bucketBaseTime, tickTime).toNanos() / TICK_INTERVAL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    int normalizeIndex(int index) {
    -<b class="fc">&nbsp;        int mod = index % NUMBER_OF_BUCKETS;</b>
    -<b class="fc">&nbsp;        return mod &gt;= 0 ? mod : mod + NUMBER_OF_BUCKETS;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void cleanOldBuckets(Instant currentTick) {
    -&nbsp;        int newOldestIndex;
    -<b class="fc">&nbsp;        Instant oldestStillNeededTime = currentTick.minus(TIME_WINDOW_DURATION).plusNanos(TICK_INTERVAL);</b>
    -<b class="fc">&nbsp;        Instant youngestNotInWindow = oldestBucketTime.plus(TIME_WINDOW_DURATION);</b>
    -<b class="fc">&nbsp;        if (oldestStillNeededTime.isAfter(youngestNotInWindow)) {</b>
    -&nbsp;            // there was no update() call for more than two whole TIME_WINDOW_DURATION
    -<b class="fc">&nbsp;            newOldestIndex = oldestBucketIndex;</b>
    -<b class="fc">&nbsp;            oldestBucketTime = currentTick;</b>
    -<b class="fc">&nbsp;        } else if (oldestStillNeededTime.isAfter(oldestBucketTime)) {</b>
    -<b class="fc">&nbsp;            newOldestIndex = normalizeIndex(calculateIndexOfTick(oldestStillNeededTime));</b>
    -<b class="fc">&nbsp;            oldestBucketTime = oldestStillNeededTime;</b>
    -&nbsp;        } else {
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        cleanBucketRange(oldestBucketIndex, newOldestIndex);</b>
    -<b class="fc">&nbsp;        oldestBucketIndex = newOldestIndex;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void cleanBucketRange(int fromIndex, int toIndex) {
    -<b class="fc">&nbsp;        if (fromIndex &lt; toIndex) {</b>
    -<b class="fc">&nbsp;            for (int i = fromIndex; i &lt; toIndex; i++) {</b>
    -<b class="fc">&nbsp;                buckets.get(i).reset();</b>
    -&nbsp;            }
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            for (int i = fromIndex; i &lt; NUMBER_OF_BUCKETS; i++) {</b>
    -<b class="fc">&nbsp;                buckets.get(i).reset();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            for (int i = 0; i &lt; toIndex; i++) {</b>
    -<b class="fc">&nbsp;                buckets.get(i).reset();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private long sumBuckets(Instant toTime, int numberOfBuckets) {
    -&nbsp;
    -&nbsp;        // increment toIndex to include the current bucket into the sum
    -<b class="fc">&nbsp;        int toIndex = normalizeIndex(calculateIndexOfTick(toTime) + 1);</b>
    -<b class="fc">&nbsp;        int fromIndex = normalizeIndex(toIndex - numberOfBuckets);</b>
    -<b class="fc">&nbsp;        LongAdder adder = new LongAdder();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (fromIndex &lt; toIndex) {</b>
    -<b class="fc">&nbsp;            buckets.stream()</b>
    -<b class="fc">&nbsp;                    .skip(fromIndex)</b>
    -<b class="fc">&nbsp;                    .limit(toIndex - fromIndex)</b>
    -<b class="fc">&nbsp;                    .mapToLong(LongAdder::longValue)</b>
    -<b class="fc">&nbsp;                    .forEach(adder::add);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            buckets.stream().limit(toIndex).mapToLong(LongAdder::longValue).forEach(adder::add);</b>
    -<b class="fc">&nbsp;            buckets.stream().skip(fromIndex).mapToLong(LongAdder::longValue).forEach(adder::add);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        long retval = adder.longValue();</b>
    -<b class="fc">&nbsp;        return retval;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-21.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-21.html
    deleted file mode 100644
    index 91b4482513..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-21.html
    +++ /dev/null
    @@ -1,199 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.1%
    -  </span>
    -  <span class="absValue">
    -    (27/29)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.ConcurrentSkipListMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
    -&nbsp; * in the last {@code N} seconds (or other time unit).
    -&nbsp; */
    -&nbsp;public class SlidingTimeWindowReservoir implements Reservoir {
    -&nbsp;    // allow for this many duplicate ticks before overwriting measurements
    -&nbsp;    private static final int COLLISION_BUFFER = 256;
    -&nbsp;    // only trim on updating once every N
    -&nbsp;    private static final int TRIM_THRESHOLD = 256;
    -&nbsp;    // offsets the front of the time window for the purposes of clearing the buffer in trim
    -<b class="fc">&nbsp;    private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final ConcurrentSkipListMap&lt;Long, Long&gt; measurements;
    -&nbsp;    private final long window;
    -&nbsp;    private final AtomicLong lastTick;
    -&nbsp;    private final AtomicLong count;
    -&nbsp;    private final long startTick;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowReservoir} with the given window of time.
    -&nbsp;     *
    -&nbsp;     * @param window     the window of time
    -&nbsp;     * @param windowUnit the unit of {@code window}
    -&nbsp;     */
    -&nbsp;    public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit) {
    -<b class="nc">&nbsp;        this(window, windowUnit, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingTimeWindowReservoir} with the given clock and window of time.
    -&nbsp;     *
    -&nbsp;     * @param window     the window of time
    -&nbsp;     * @param windowUnit the unit of {@code window}
    -&nbsp;     * @param clock      the {@link Clock} to use
    -&nbsp;     */
    -<b class="fc">&nbsp;    public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.startTick = clock.getTick();</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.measurements = new ConcurrentSkipListMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;</b>
    -<b class="fc">&nbsp;        this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);</b>
    -<b class="fc">&nbsp;        this.count = new AtomicLong();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        trim();</b>
    -<b class="fc">&nbsp;        return measurements.size();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        if (count.incrementAndGet() % TRIM_THRESHOLD == 0) {</b>
    -<b class="fc">&nbsp;            trim();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        measurements.put(getTick(), value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        trim();</b>
    -<b class="fc">&nbsp;        return new UniformSnapshot(measurements.values());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private long getTick() {
    -&nbsp;        for ( ;; ) {
    -<b class="fc">&nbsp;            final long oldTick = lastTick.get();</b>
    -<b class="fc">&nbsp;            final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;</b>
    -&nbsp;            // ensure the tick is strictly incrementing even if there are duplicate ticks
    -<b class="fc">&nbsp;            final long newTick = tick - oldTick &gt; 0 ? tick : oldTick + 1;</b>
    -<b class="fc">&nbsp;            if (lastTick.compareAndSet(oldTick, newTick)) {</b>
    -<b class="fc">&nbsp;                return newTick;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void trim() {
    -<b class="fc">&nbsp;        final long now = getTick();</b>
    -<b class="fc">&nbsp;        final long windowStart = now - window;</b>
    -<b class="fc">&nbsp;        final long windowEnd = now + CLEAR_BUFFER;</b>
    -<b class="fc">&nbsp;        if (windowStart &lt; windowEnd) {</b>
    -<b class="fc">&nbsp;            measurements.headMap(windowStart).clear();</b>
    -<b class="fc">&nbsp;            measurements.tailMap(windowEnd).clear();</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            measurements.subMap(windowEnd, windowStart).clear();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-22.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-22.html
    deleted file mode 100644
    index 7ddd3fba27..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-22.html
    +++ /dev/null
    @@ -1,147 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingWindowReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingWindowReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingWindowReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import static java.lang.Math.min;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Reservoir} implementation backed by a sliding window that stores the last {@code N}
    -&nbsp; * measurements.
    -&nbsp; */
    -&nbsp;public class SlidingWindowReservoir implements Reservoir {
    -&nbsp;    private final long[] measurements;
    -&nbsp;    private long count;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link SlidingWindowReservoir} which stores the last {@code size} measurements.
    -&nbsp;     *
    -&nbsp;     * @param size the number of measurements to store
    -&nbsp;     */
    -<b class="fc">&nbsp;    public SlidingWindowReservoir(int size) {</b>
    -<b class="fc">&nbsp;        this.measurements = new long[size];</b>
    -<b class="fc">&nbsp;        this.count = 0;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public synchronized int size() {
    -<b class="fc">&nbsp;        return (int) min(count, measurements.length);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public synchronized void update(long value) {
    -<b class="fc">&nbsp;        measurements[(int) (count++ % measurements.length)] = value;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        final long[] values = new long[size()];</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    -<b class="fc">&nbsp;            synchronized (this) {</b>
    -<b class="fc">&nbsp;                values[i] = measurements[i];</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return new UniformSnapshot(values);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-23.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-23.html
    deleted file mode 100644
    index df8ad46b15..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-23.html
    +++ /dev/null
    @@ -1,286 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Snapshot</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Snapshot (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Snapshot</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$3kXMZ64y</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$3kXMZ64y$auxiliary$1NW7YkO9</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$3kXMZ64y$auxiliary$dWtzrfnD</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$4bWVOwe9</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$4bWVOwe9$auxiliary$og4T4FVZ</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$4bWVOwe9$auxiliary$tN3cdbdL</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$94PvCN3s</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$94PvCN3s$auxiliary$9QoRiBtA</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$94PvCN3s$auxiliary$AjC91p0n</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$tKAmXFPy</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$tKAmXFPy$auxiliary$dcb67hvc</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$tKAmXFPy$auxiliary$T0BNGyBy</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$ZjHDjKzV</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$ZjHDjKzV$auxiliary$ANVS1ys2</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$ZjHDjKzV$auxiliary$umaMZ1U4</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$zSVi2g8z</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$zSVi2g8z$auxiliary$1ghyIaKW</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Snapshot$MockitoMock$zSVi2g8z$auxiliary$mth3Dt9W</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A statistical snapshot of a {@link Snapshot}.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class Snapshot {</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the given quantile.
    -&nbsp;     *
    -&nbsp;     * @param quantile a given quantile, in {@code [0..1]}
    -&nbsp;     * @return the value in the distribution at {@code quantile}
    -&nbsp;     */
    -&nbsp;    public abstract double getValue(double quantile);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the entire set of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the entire set of values
    -&nbsp;     */
    -&nbsp;    public abstract long[] getValues();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the number of values
    -&nbsp;     */
    -&nbsp;    public abstract int size();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the median value in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the median value
    -&nbsp;     */
    -&nbsp;    public double getMedian() {
    -<b class="fc">&nbsp;        return getValue(0.5);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 75th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 75th percentile
    -&nbsp;     */
    -&nbsp;    public double get75thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.75);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 95th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 95th percentile
    -&nbsp;     */
    -&nbsp;    public double get95thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.95);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 98th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 98th percentile
    -&nbsp;     */
    -&nbsp;    public double get98thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.98);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 99th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 99th percentile
    -&nbsp;     */
    -&nbsp;    public double get99thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.99);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the 99.9th percentile in the distribution.
    -&nbsp;     *
    -&nbsp;     * @return the value at the 99.9th percentile
    -&nbsp;     */
    -&nbsp;    public double get999thPercentile() {
    -<b class="fc">&nbsp;        return getValue(0.999);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the highest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the highest value
    -&nbsp;     */
    -&nbsp;    public abstract long getMax();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the arithmetic mean of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the arithmetic mean
    -&nbsp;     */
    -&nbsp;    public abstract double getMean();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the lowest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the lowest value
    -&nbsp;     */
    -&nbsp;    public abstract long getMin();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the standard deviation of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the standard value
    -&nbsp;     */
    -&nbsp;    public abstract double getStdDev();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Writes the values of the snapshot to the given stream.
    -&nbsp;     *
    -&nbsp;     * @param output an output stream
    -&nbsp;     */
    -&nbsp;    public abstract void dump(OutputStream output);
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-24.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-24.html
    deleted file mode 100644
    index a9420b5e24..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-24.html
    +++ /dev/null
    @@ -1,333 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Timer</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Timer (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Timer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (29/31)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">Timer$Context</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (20/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.9%
    -  </span>
    -  <span class="absValue">
    -    (37/39)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.concurrent.Callable;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A timer metric which aggregates timing durations and provides duration statistics, plus
    -&nbsp; * throughput statistics via {@link Meter}.
    -&nbsp; */
    -&nbsp;public class Timer implements Metered, Sampling {
    -&nbsp;    /**
    -&nbsp;     * A timing context.
    -&nbsp;     *
    -&nbsp;     * @see Timer#time()
    -&nbsp;     */
    -&nbsp;    public static class Context implements AutoCloseable {
    -&nbsp;        private final Timer timer;
    -&nbsp;        private final Clock clock;
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="fc">&nbsp;        Context(Timer timer, Clock clock) {</b>
    -<b class="fc">&nbsp;            this.timer = timer;</b>
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            this.startTime = clock.getTick();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Updates the timer with the difference between current and start time. Call to this method will
    -&nbsp;         * not reset the start time. Multiple calls result in multiple updates.
    -&nbsp;         *
    -&nbsp;         * @return the elapsed time in nanoseconds
    -&nbsp;         */
    -&nbsp;        public long stop() {
    -<b class="fc">&nbsp;            final long elapsed = clock.getTick() - startTime;</b>
    -<b class="fc">&nbsp;            timer.update(elapsed, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;            return elapsed;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Equivalent to calling {@link #stop()}.
    -&nbsp;         */
    -&nbsp;        @Override
    -&nbsp;        public void close() {
    -<b class="fc">&nbsp;            stop();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final Meter meter;
    -&nbsp;    private final Histogram histogram;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Timer} using an {@link ExponentiallyDecayingReservoir} and the default
    -&nbsp;     * {@link Clock}.
    -&nbsp;     */
    -&nbsp;    public Timer() {
    -<b class="fc">&nbsp;        this(new ExponentiallyDecayingReservoir());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Timer} that uses the given {@link Reservoir}.
    -&nbsp;     *
    -&nbsp;     * @param reservoir the {@link Reservoir} implementation the timer should use
    -&nbsp;     */
    -&nbsp;    public Timer(Reservoir reservoir) {
    -<b class="fc">&nbsp;        this(reservoir, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Timer} that uses the given {@link Reservoir} and {@link Clock}.
    -&nbsp;     *
    -&nbsp;     * @param reservoir the {@link Reservoir} implementation the timer should use
    -&nbsp;     * @param clock     the {@link Clock} implementation the timer should use
    -&nbsp;     */
    -&nbsp;    public Timer(Reservoir reservoir, Clock clock) {
    -<b class="fc">&nbsp;        this(new Meter(clock), new Histogram(reservoir), clock);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public Timer(Meter meter, Histogram histogram, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.meter = meter;</b>
    -<b class="fc">&nbsp;        this.histogram = histogram;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a recorded duration.
    -&nbsp;     *
    -&nbsp;     * @param duration the length of the duration
    -&nbsp;     * @param unit     the scale unit of {@code duration}
    -&nbsp;     */
    -&nbsp;    public void update(long duration, TimeUnit unit) {
    -<b class="fc">&nbsp;        update(unit.toNanos(duration));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a recorded duration.
    -&nbsp;     *
    -&nbsp;     * @param duration the {@link Duration} to add to the timer. Negative or zero value are ignored.
    -&nbsp;     */
    -&nbsp;    public void update(Duration duration) {
    -<b class="fc">&nbsp;        update(duration.toNanos());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Times and records the duration of event.
    -&nbsp;     *
    -&nbsp;     * @param event a {@link Callable} whose {@link Callable#call()} method implements a process
    -&nbsp;     *              whose duration should be timed
    -&nbsp;     * @param &lt;T&gt;   the type of the value returned by {@code event}
    -&nbsp;     * @return the value returned by {@code event}
    -&nbsp;     * @throws Exception if {@code event} throws an {@link Exception}
    -&nbsp;     */
    -&nbsp;    public &lt;T&gt; T time(Callable&lt;T&gt; event) throws Exception {
    -<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return event.call();</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            update(clock.getTick() - startTime);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Times and records the duration of event. Should not throw exceptions, for that use the
    -&nbsp;     * {@link #time(Callable)} method.
    -&nbsp;     *
    -&nbsp;     * @param event a {@link Supplier} whose {@link Supplier#get()} method implements a process
    -&nbsp;     *              whose duration should be timed
    -&nbsp;     * @param &lt;T&gt;   the type of the value returned by {@code event}
    -&nbsp;     * @return the value returned by {@code event}
    -&nbsp;     */
    -&nbsp;    public &lt;T&gt; T timeSupplier(Supplier&lt;T&gt; event) {
    -<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return event.get();</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            update(clock.getTick() - startTime);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Times and records the duration of event.
    -&nbsp;     *
    -&nbsp;     * @param event a {@link Runnable} whose {@link Runnable#run()} method implements a process
    -&nbsp;     *              whose duration should be timed
    -&nbsp;     */
    -&nbsp;    public void time(Runnable event) {
    -<b class="fc">&nbsp;        final long startTime = clock.getTick();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            event.run();</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            update(clock.getTick() - startTime);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Context}.
    -&nbsp;     *
    -&nbsp;     * @return a new {@link Context}
    -&nbsp;     * @see Context
    -&nbsp;     */
    -&nbsp;    public Context time() {
    -<b class="fc">&nbsp;        return new Context(this, clock);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public long getCount() {
    -<b class="fc">&nbsp;        return histogram.getCount();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getFifteenMinuteRate() {
    -<b class="fc">&nbsp;        return meter.getFifteenMinuteRate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getFiveMinuteRate() {
    -<b class="fc">&nbsp;        return meter.getFiveMinuteRate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getMeanRate() {
    -<b class="fc">&nbsp;        return meter.getMeanRate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getOneMinuteRate() {
    -<b class="fc">&nbsp;        return meter.getOneMinuteRate();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        return histogram.getSnapshot();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void update(long duration) {
    -<b class="fc">&nbsp;        if (duration &gt;= 0) {</b>
    -<b class="fc">&nbsp;            histogram.update(duration);</b>
    -<b class="fc">&nbsp;            meter.mark();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-25.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-25.html
    deleted file mode 100644
    index 80748ce1e4..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-25.html
    +++ /dev/null
    @@ -1,174 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > UniformReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: UniformReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">UniformReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.ThreadLocalRandom;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;import java.util.concurrent.atomic.AtomicLongArray;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A random sampling reservoir of a stream of {@code long}s. Uses Vitter&#39;s Algorithm R to produce a
    -&nbsp; * statistically representative sample.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://www.cs.umd.edu/~samir/498/vitter.pdf&quot;&gt;Random Sampling with a Reservoir&lt;/a&gt;
    -&nbsp; */
    -&nbsp;public class UniformReservoir implements Reservoir {
    -&nbsp;    private static final int DEFAULT_SIZE = 1028;
    -<b class="fc">&nbsp;    private final AtomicLong count = new AtomicLong();</b>
    -&nbsp;    private final AtomicLongArray values;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link UniformReservoir} of 1028 elements, which offers a 99.9% confidence level
    -&nbsp;     * with a 5% margin of error assuming a normal distribution.
    -&nbsp;     */
    -&nbsp;    public UniformReservoir() {
    -<b class="fc">&nbsp;        this(DEFAULT_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link UniformReservoir}.
    -&nbsp;     *
    -&nbsp;     * @param size the number of samples to keep in the sampling reservoir
    -&nbsp;     */
    -<b class="fc">&nbsp;    public UniformReservoir(int size) {</b>
    -<b class="fc">&nbsp;        this.values = new AtomicLongArray(size);</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; values.length(); i++) {</b>
    -<b class="fc">&nbsp;            values.set(i, 0);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        count.set(0);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        final long c = count.get();</b>
    -<b class="fc">&nbsp;        if (c &gt; values.length()) {</b>
    -<b class="fc">&nbsp;            return values.length();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return (int) c;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        final long c = count.incrementAndGet();</b>
    -<b class="fc">&nbsp;        if (c &lt;= values.length()) {</b>
    -<b class="fc">&nbsp;            values.set((int) c - 1, value);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final long r = ThreadLocalRandom.current().nextLong(c);</b>
    -<b class="fc">&nbsp;            if (r &lt; values.length()) {</b>
    -<b class="fc">&nbsp;                values.set((int) r, value);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        final int s = size();</b>
    -<b class="fc">&nbsp;        long[] copy = new long[s];</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; s; i++) {</b>
    -<b class="fc">&nbsp;            copy[i] = values.get(i);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return new UniformSnapshot(copy);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-26.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-26.html
    deleted file mode 100644
    index 5966f2dc90..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-26.html
    +++ /dev/null
    @@ -1,281 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > UniformSnapshot</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: UniformSnapshot (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">UniformSnapshot</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98%
    -  </span>
    -  <span class="absValue">
    -    (48/49)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collection;
    -&nbsp;
    -&nbsp;import static java.lang.Math.floor;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A statistical snapshot of a {@link UniformSnapshot}.
    -&nbsp; */
    -&nbsp;public class UniformSnapshot extends Snapshot {
    -&nbsp;
    -&nbsp;    private final long[] values;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new {@link Snapshot} with the given values.
    -&nbsp;     *
    -&nbsp;     * @param values an unordered set of values in the reservoir
    -&nbsp;     */
    -<b class="fc">&nbsp;    public UniformSnapshot(Collection&lt;Long&gt; values) {</b>
    -<b class="fc">&nbsp;        final Object[] copy = values.toArray();</b>
    -<b class="fc">&nbsp;        this.values = new long[copy.length];</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; copy.length; i++) {</b>
    -<b class="fc">&nbsp;            this.values[i] = (Long) copy[i];</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        Arrays.sort(this.values);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new {@link Snapshot} with the given values.
    -&nbsp;     *
    -&nbsp;     * @param values an unordered set of values in the reservoir that can be used by this class directly
    -&nbsp;     */
    -<b class="fc">&nbsp;    public UniformSnapshot(long[] values) {</b>
    -<b class="fc">&nbsp;        this.values = Arrays.copyOf(values, values.length);</b>
    -<b class="fc">&nbsp;        Arrays.sort(this.values);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the given quantile.
    -&nbsp;     *
    -&nbsp;     * @param quantile a given quantile, in {@code [0..1]}
    -&nbsp;     * @return the value in the distribution at {@code quantile}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getValue(double quantile) {
    -<b class="fc">&nbsp;        if (quantile &lt; 0.0 || quantile &gt; 1.0 || Double.isNaN(quantile)) {</b>
    -<b class="fc">&nbsp;            throw new IllegalArgumentException(quantile + &quot; is not in [0..1]&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    -<b class="nc">&nbsp;            return 0.0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double pos = quantile * (values.length + 1);</b>
    -<b class="fc">&nbsp;        final int index = (int) pos;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (index &lt; 1) {</b>
    -<b class="fc">&nbsp;            return values[0];</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (index &gt;= values.length) {</b>
    -<b class="fc">&nbsp;            return values[values.length - 1];</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double lower = values[index - 1];</b>
    -<b class="fc">&nbsp;        final double upper = values[index];</b>
    -<b class="fc">&nbsp;        return lower + (pos - floor(pos)) * (upper - lower);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the number of values
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        return values.length;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the entire set of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the entire set of values
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long[] getValues() {
    -<b class="fc">&nbsp;        return Arrays.copyOf(values, values.length);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the highest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the highest value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getMax() {
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return values[values.length - 1];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the lowest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the lowest value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getMin() {
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return values[0];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the arithmetic mean of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the arithmetic mean
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getMean() {
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        double sum = 0;</b>
    -<b class="fc">&nbsp;        for (long value : values) {</b>
    -<b class="fc">&nbsp;            sum += value;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return sum / values.length;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the standard deviation of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the standard deviation value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getStdDev() {
    -&nbsp;        // two-pass algorithm for variance, avoids numeric overflow
    -&nbsp;
    -<b class="fc">&nbsp;        if (values.length &lt;= 1) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double mean = getMean();</b>
    -<b class="fc">&nbsp;        double sum = 0;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (long value : values) {</b>
    -<b class="fc">&nbsp;            final double diff = value - mean;</b>
    -<b class="fc">&nbsp;            sum += diff * diff;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double variance = sum / (values.length - 1);</b>
    -<b class="fc">&nbsp;        return Math.sqrt(variance);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Writes the values of the snapshot to the given stream.
    -&nbsp;     *
    -&nbsp;     * @param output an output stream
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void dump(OutputStream output) {
    -<b class="fc">&nbsp;        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {</b>
    -<b class="fc">&nbsp;            for (long value : values) {</b>
    -<b class="fc">&nbsp;                out.printf(&quot;%d%n&quot;, value);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-27.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-27.html
    deleted file mode 100644
    index dbf727bb4f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-27.html
    +++ /dev/null
    @@ -1,325 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > WeightedSnapshot</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: WeightedSnapshot (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">WeightedSnapshot</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.1%
    -  </span>
    -  <span class="absValue">
    -    (51/52)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">WeightedSnapshot$WeightedSample</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    98.2%
    -  </span>
    -  <span class="absValue">
    -    (54/55)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.Comparator;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A statistical snapshot of a {@link WeightedSnapshot}.
    -&nbsp; */
    -&nbsp;public class WeightedSnapshot extends Snapshot {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A single sample item with value and its weights for {@link WeightedSnapshot}.
    -&nbsp;     */
    -&nbsp;    public static class WeightedSample {
    -&nbsp;        public final long value;
    -&nbsp;        public final double weight;
    -&nbsp;
    -<b class="fc">&nbsp;        public WeightedSample(long value, double weight) {</b>
    -<b class="fc">&nbsp;            this.value = value;</b>
    -<b class="fc">&nbsp;            this.weight = weight;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final long[] values;
    -&nbsp;    private final double[] normWeights;
    -&nbsp;    private final double[] quantiles;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new {@link Snapshot} with the given values.
    -&nbsp;     *
    -&nbsp;     * @param values an unordered set of values in the reservoir
    -&nbsp;     */
    -<b class="fc">&nbsp;    public WeightedSnapshot(Collection&lt;WeightedSample&gt; values) {</b>
    -<b class="fc">&nbsp;        final WeightedSample[] copy = values.toArray(new WeightedSample[]{});</b>
    -&nbsp;
    -<b class="fc">&nbsp;        Arrays.sort(copy, Comparator.comparingLong(w -&gt; w.value));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.values = new long[copy.length];</b>
    -<b class="fc">&nbsp;        this.normWeights = new double[copy.length];</b>
    -<b class="fc">&nbsp;        this.quantiles = new double[copy.length];</b>
    -&nbsp;
    -<b class="fc">&nbsp;        double sumWeight = 0;</b>
    -<b class="fc">&nbsp;        for (WeightedSample sample : copy) {</b>
    -<b class="fc">&nbsp;            sumWeight += sample.weight;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; copy.length; i++) {</b>
    -<b class="fc">&nbsp;            this.values[i] = copy[i].value;</b>
    -<b class="fc">&nbsp;            this.normWeights[i] = sumWeight != 0 ? copy[i].weight / sumWeight : 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        for (int i = 1; i &lt; copy.length; i++) {</b>
    -<b class="fc">&nbsp;            this.quantiles[i] = this.quantiles[i - 1] + this.normWeights[i - 1];</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the value at the given quantile.
    -&nbsp;     *
    -&nbsp;     * @param quantile a given quantile, in {@code [0..1]}
    -&nbsp;     * @return the value in the distribution at {@code quantile}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getValue(double quantile) {
    -<b class="fc">&nbsp;        if (quantile &lt; 0.0 || quantile &gt; 1.0 || Double.isNaN(quantile)) {</b>
    -<b class="fc">&nbsp;            throw new IllegalArgumentException(quantile + &quot; is not in [0..1]&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0.0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        int posx = Arrays.binarySearch(quantiles, quantile);</b>
    -<b class="fc">&nbsp;        if (posx &lt; 0)</b>
    -<b class="fc">&nbsp;            posx = ((-posx) - 1) - 1;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (posx &lt; 1) {</b>
    -<b class="fc">&nbsp;            return values[0];</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (posx &gt;= values.length) {</b>
    -<b class="nc">&nbsp;            return values[values.length - 1];</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        return values[posx];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the number of values
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        return values.length;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the entire set of values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the entire set of values
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long[] getValues() {
    -<b class="fc">&nbsp;        return Arrays.copyOf(values, values.length);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the highest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the highest value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getMax() {
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return values[values.length - 1];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the lowest value in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the lowest value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getMin() {
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return values[0];</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the weighted arithmetic mean of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the weighted arithmetic mean
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getMean() {
    -<b class="fc">&nbsp;        if (values.length == 0) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        double sum = 0;</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    -<b class="fc">&nbsp;            sum += values[i] * normWeights[i];</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return sum;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the weighted standard deviation of the values in the snapshot.
    -&nbsp;     *
    -&nbsp;     * @return the weighted standard deviation value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public double getStdDev() {
    -&nbsp;        // two-pass algorithm for variance, avoids numeric overflow
    -&nbsp;
    -<b class="fc">&nbsp;        if (values.length &lt;= 1) {</b>
    -<b class="fc">&nbsp;            return 0;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final double mean = getMean();</b>
    -<b class="fc">&nbsp;        double variance = 0;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; values.length; i++) {</b>
    -<b class="fc">&nbsp;            final double diff = values[i] - mean;</b>
    -<b class="fc">&nbsp;            variance += normWeights[i] * diff * diff;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        return Math.sqrt(variance);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Writes the values of the snapshot to the given stream.
    -&nbsp;     *
    -&nbsp;     * @param output an output stream
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void dump(OutputStream output) {
    -<b class="fc">&nbsp;        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {</b>
    -<b class="fc">&nbsp;            for (long value : values) {</b>
    -<b class="fc">&nbsp;                out.printf(&quot;%d%n&quot;, value);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-28.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-28.html
    deleted file mode 100644
    index d786e397b8..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-28.html
    +++ /dev/null
    @@ -1,81 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Sampling</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Sampling (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Sampling</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An object which samples values.
    -&nbsp; */
    -&nbsp;public interface Sampling {
    -&nbsp;    /**
    -&nbsp;     * Returns a snapshot of the values.
    -&nbsp;     *
    -&nbsp;     * @return a snapshot of the values
    -&nbsp;     */
    -&nbsp;    Snapshot getSnapshot();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-29.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-29.html
    deleted file mode 100644
    index 81605a74c3..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-29.html
    +++ /dev/null
    @@ -1,81 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Counting</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Counting (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Counting</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An interface for metric types which have counts.
    -&nbsp; */
    -&nbsp;public interface Counting {
    -&nbsp;    /**
    -&nbsp;     * Returns the current count.
    -&nbsp;     *
    -&nbsp;     * @return the current count
    -&nbsp;     */
    -&nbsp;    long getCount();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2a.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2a.html
    deleted file mode 100644
    index 1827aef43b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2a.html
    +++ /dev/null
    @@ -1,103 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Gauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Gauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">Gauge$MockitoMock$x8oswAWK</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Gauge$MockitoMock$x8oswAWK$auxiliary$093oUXhf</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Gauge$MockitoMock$x8oswAWK$auxiliary$jNrnva1y</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A gauge metric is an instantaneous reading of a particular value. To instrument a queue&#39;s depth,
    -&nbsp; * for example:&lt;br&gt;
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; * final Queue&amp;lt;String&amp;gt; queue = new ConcurrentLinkedQueue&amp;lt;String&amp;gt;();
    -&nbsp; * final Gauge&amp;lt;Integer&amp;gt; queueDepth = new Gauge&amp;lt;Integer&amp;gt;() {
    -&nbsp; *     public Integer getValue() {
    -&nbsp; *         return queue.size();
    -&nbsp; *     }
    -&nbsp; * };
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; *
    -&nbsp; * @param &lt;T&gt; the type of the metric&#39;s value
    -&nbsp; */
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface Gauge&lt;T&gt; extends Metric {
    -&nbsp;    /**
    -&nbsp;     * Returns the metric&#39;s current value.
    -&nbsp;     *
    -&nbsp;     * @return the metric&#39;s current value
    -&nbsp;     */
    -&nbsp;    T getValue();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2b.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2b.html
    deleted file mode 100644
    index bc330687c0..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2b.html
    +++ /dev/null
    @@ -1,98 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CsvFileProvider</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CsvFileProvider (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">CsvFileProvider$MockitoMock$AsTM7qMN</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CsvFileProvider$MockitoMock$AsTM7qMN$auxiliary$q90B05bY</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CsvFileProvider$MockitoMock$AsTM7qMN$auxiliary$ZLJtm1Gf</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CsvFileProvider$MockitoMock$mdqV55Am</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CsvFileProvider$MockitoMock$mdqV55Am$auxiliary$QLjSYMki</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CsvFileProvider$MockitoMock$mdqV55Am$auxiliary$wIlSPpRg</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.File;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * This interface allows a pluggable implementation of what file names
    -&nbsp; * the {@link CsvReporter} will write to.
    -&nbsp; */
    -&nbsp;public interface CsvFileProvider {
    -&nbsp;
    -&nbsp;    File getFile(File directory, String metricName);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2c.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2c.html
    deleted file mode 100644
    index 3273bbec16..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2c.html
    +++ /dev/null
    @@ -1,85 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricSet (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricSet</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of named metrics.
    -&nbsp; *
    -&nbsp; * @see MetricRegistry#registerAll(MetricSet)
    -&nbsp; */
    -&nbsp;public interface MetricSet extends Metric {
    -&nbsp;    /**
    -&nbsp;     * A map of metric names to metrics.
    -&nbsp;     *
    -&nbsp;     * @return the metrics
    -&nbsp;     */
    -&nbsp;    Map&lt;String, Metric&gt; getMetrics();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2d.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2d.html
    deleted file mode 100644
    index 7a3ca60a01..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2d.html
    +++ /dev/null
    @@ -1,113 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Reservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Reservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">Reservoir$MockitoMock$J44vlUGQ</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Reservoir$MockitoMock$J44vlUGQ$auxiliary$Xh8YVFBQ</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Reservoir$MockitoMock$J44vlUGQ$auxiliary$ZfchdzfL</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Reservoir$MockitoMock$VvaiqT2J</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Reservoir$MockitoMock$VvaiqT2J$auxiliary$bZRQqtYX</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Reservoir$MockitoMock$VvaiqT2J$auxiliary$V91G1NUU</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A statistically representative reservoir of a data stream.
    -&nbsp; */
    -&nbsp;public interface Reservoir {
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values recorded.
    -&nbsp;     *
    -&nbsp;     * @return the number of values recorded
    -&nbsp;     */
    -&nbsp;    int size();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a new recorded value to the reservoir.
    -&nbsp;     *
    -&nbsp;     * @param value a new recorded value
    -&nbsp;     */
    -&nbsp;    void update(long value);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a snapshot of the reservoir&#39;s values.
    -&nbsp;     *
    -&nbsp;     * @return a snapshot of the reservoir&#39;s values
    -&nbsp;     */
    -&nbsp;    Snapshot getSnapshot();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2e.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2e.html
    deleted file mode 100644
    index 86063f0938..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2e.html
    +++ /dev/null
    @@ -1,78 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Reporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Reporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Reporter</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.Closeable;
    -&nbsp;
    -&nbsp;/*
    -&nbsp; * A tag interface to indicate that a class is a Reporter.
    -&nbsp; */
    -&nbsp;public interface Reporter extends Closeable {
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2f.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2f.html
    deleted file mode 100644
    index ecbc8e7020..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-2f.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MovingAverages</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MovingAverages (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">MovingAverages</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A triple of moving averages (one-, five-, and fifteen-minute
    -&nbsp; * moving average) as needed by {@link Meter}.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Included implementations are:
    -&nbsp; * &lt;ul&gt;
    -&nbsp; * &lt;li&gt;{@link ExponentialMovingAverages} exponential decaying average similar to the {@code top} Unix command.
    -&nbsp; * &lt;li&gt;{@link SlidingTimeWindowMovingAverages} simple (unweighted) moving average
    -&nbsp; * &lt;/ul&gt;
    -&nbsp; */
    -&nbsp;public interface MovingAverages {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Tick the internal clock of the MovingAverages implementation if needed
    -&nbsp;     * (according to the internal ticking interval)
    -&nbsp;     */
    -&nbsp;    void tickIfNecessary();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Update all three moving averages with n events having occurred since the last update.
    -&nbsp;     *
    -&nbsp;     * @param n
    -&nbsp;     */
    -&nbsp;    void update(long n);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the one-minute moving average rate
    -&nbsp;     *
    -&nbsp;     * @return the one-minute moving average rate
    -&nbsp;     */
    -&nbsp;    double getM1Rate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the five-minute moving average rate
    -&nbsp;     *
    -&nbsp;     * @return the five-minute moving average rate
    -&nbsp;     */
    -&nbsp;    double getM5Rate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the fifteen-minute moving average rate
    -&nbsp;     *
    -&nbsp;     * @return the fifteen-minute moving average rate
    -&nbsp;     */
    -&nbsp;    double getM15Rate();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-3.html
    deleted file mode 100644
    index 0e80730bd2..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-3.html
    +++ /dev/null
    @@ -1,240 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Clock</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Clock (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Clock</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$52MBwOxh</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$52MBwOxh$auxiliary$95BiIqNK</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$52MBwOxh$auxiliary$J4UtWZ6f</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$7o1qk2SD</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$7o1qk2SD$auxiliary$lPkMsG0G</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$7o1qk2SD$auxiliary$xWTGiMkZ</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$IokQtbTI</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$IokQtbTI$auxiliary$1Hk8ebL3</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$IokQtbTI$auxiliary$o1bITTY8</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$nfpVaqy1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$nfpVaqy1$auxiliary$DT0yfKdk</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$nfpVaqy1$auxiliary$PuyBKsay</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$y96Y8VBC</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$y96Y8VBC$auxiliary$t2PKegcD</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$MockitoMock$y96Y8VBC$auxiliary$xik9WU6C</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$UserTimeClock</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Clock$UserTimeClockHolder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An abstraction for how time passes. It is passed to {@link Timer} to track timing.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class Clock {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns the current time tick.
    -&nbsp;     *
    -&nbsp;     * @return time tick in nanoseconds
    -&nbsp;     */
    -&nbsp;    public abstract long getTick();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the current time in milliseconds.
    -&nbsp;     *
    -&nbsp;     * @return time in milliseconds
    -&nbsp;     */
    -&nbsp;    public long getTime() {
    -<b class="fc">&nbsp;        return System.currentTimeMillis();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * The default clock to use.
    -&nbsp;     *
    -&nbsp;     * @return the default {@link Clock} instance
    -&nbsp;     * @see Clock.UserTimeClock
    -&nbsp;     */
    -&nbsp;    public static Clock defaultClock() {
    -<b class="fc">&nbsp;        return UserTimeClockHolder.DEFAULT;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A clock implementation which returns the current time in epoch nanoseconds.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class UserTimeClock extends Clock {</b>
    -&nbsp;        @Override
    -&nbsp;        public long getTick() {
    -<b class="fc">&nbsp;            return System.nanoTime();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class UserTimeClockHolder {
    -<b class="fc">&nbsp;        private static final Clock DEFAULT = new UserTimeClock();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-30.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-30.html
    deleted file mode 100644
    index 157733a7b2..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-30.html
    +++ /dev/null
    @@ -1,94 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metric</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Metric (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">Metric$MockitoMock$mZ6WthxG</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Metric$MockitoMock$mZ6WthxG$auxiliary$R7gDKLyB</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Metric$MockitoMock$mZ6WthxG$auxiliary$WPjvm4oY</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Metric$MockitoMock$P3bfdWev</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Metric$MockitoMock$P3bfdWev$auxiliary$6IokvHRO</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Metric$MockitoMock$P3bfdWev$auxiliary$q8iEprB9</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A tag interface to indicate that a class is a metric.
    -&nbsp; */
    -&nbsp;public interface Metric {
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-31.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-31.html
    deleted file mode 100644
    index a53e0fd253..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-31.html
    +++ /dev/null
    @@ -1,82 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SettableGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SettableGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">SettableGauge</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
    -&nbsp; * See {@link DefaultSettableGauge}.
    -&nbsp; * &lt;/p&gt;
    -&nbsp; */
    -&nbsp;public interface SettableGauge&lt;T&gt; extends Gauge&lt;T&gt; {
    -&nbsp;    /**
    -&nbsp;     * Set the metric to a new value.
    -&nbsp;     */
    -&nbsp;    void setValue(T value);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-32.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-32.html
    deleted file mode 100644
    index 8bc67f0825..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-32.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metered</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Metered (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Metered</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An object which maintains mean and moving average rates.
    -&nbsp; */
    -&nbsp;public interface Metered extends Metric, Counting {
    -&nbsp;    /**
    -&nbsp;     * Returns the number of events which have been marked.
    -&nbsp;     *
    -&nbsp;     * @return the number of events which have been marked
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    long getCount();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the fifteen-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the fifteen-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getFifteenMinuteRate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the five-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the five-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getFiveMinuteRate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the mean rate at which events have occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the mean rate at which events have occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getMeanRate();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the one-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created.
    -&nbsp;     *
    -&nbsp;     * @return the one-minute moving average rate at which events have
    -&nbsp;     * occurred since the meter was created
    -&nbsp;     */
    -&nbsp;    double getOneMinuteRate();
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-4.html
    deleted file mode 100644
    index 563c220198..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-4.html
    +++ /dev/null
    @@ -1,490 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ConsoleReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ConsoleReporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ConsoleReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (90/90)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">ConsoleReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ConsoleReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (11/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (30/34)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (22/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (120/124)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.PrintStream;
    -&nbsp;import java.text.DateFormat;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Date;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.TimeZone;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which outputs measurements to a {@link PrintStream}, like {@code System.out}.
    -&nbsp; */
    -<b class="fc">&nbsp;public class ConsoleReporter extends ScheduledReporter {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link ConsoleReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link ConsoleReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link ConsoleReporter} instances. Defaults to using the default locale and
    -&nbsp;     * time zone, writing to {@code System.out}, converting rates to events/second, converting
    -&nbsp;     * durations to milliseconds, and not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private PrintStream output;
    -&nbsp;        private Locale locale;
    -&nbsp;        private Clock clock;
    -&nbsp;        private TimeZone timeZone;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private MetricFilter filter;
    -&nbsp;        private ScheduledExecutorService executor;
    -&nbsp;        private boolean shutdownExecutorOnStop;
    -&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.output = System.out;</b>
    -<b class="fc">&nbsp;            this.locale = Locale.getDefault();</b>
    -<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    -<b class="fc">&nbsp;            this.timeZone = TimeZone.getDefault();</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;            this.executor = null;</b>
    -<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;            disabledMetricAttributes = Collections.emptySet();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -&nbsp;         * Default value is true.
    -&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -&nbsp;         *
    -&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    -&nbsp;         * Default value is null.
    -&nbsp;         * Null value leads to executor will be auto created on start.
    -&nbsp;         *
    -&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Write to the given {@link PrintStream}.
    -&nbsp;         *
    -&nbsp;         * @param output a {@link PrintStream} instance.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder outputTo(PrintStream output) {
    -<b class="fc">&nbsp;            this.output = output;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Format numbers for the given {@link Locale}.
    -&nbsp;         *
    -&nbsp;         * @param locale a {@link Locale}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder formattedFor(Locale locale) {
    -<b class="fc">&nbsp;            this.locale = locale;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given {@link Clock} instance for the time.
    -&nbsp;         *
    -&nbsp;         * @param clock a {@link Clock} instance
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withClock(Clock clock) {
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given {@link TimeZone} for the time.
    -&nbsp;         *
    -&nbsp;         * @param timeZone a {@link TimeZone}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder formattedFor(TimeZone timeZone) {
    -<b class="fc">&nbsp;            this.timeZone = timeZone;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    -&nbsp;         * See {@link MetricAttribute}.
    -&nbsp;         *
    -&nbsp;         * @param disabledMetricAttributes a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link ConsoleReporter} with the given properties.
    -&nbsp;         *
    -&nbsp;         * @return a {@link ConsoleReporter}
    -&nbsp;         */
    -&nbsp;        public ConsoleReporter build() {
    -<b class="fc">&nbsp;            return new ConsoleReporter(registry,</b>
    -&nbsp;                    output,
    -&nbsp;                    locale,
    -&nbsp;                    clock,
    -&nbsp;                    timeZone,
    -&nbsp;                    rateUnit,
    -&nbsp;                    durationUnit,
    -&nbsp;                    filter,
    -&nbsp;                    executor,
    -&nbsp;                    shutdownExecutorOnStop,
    -&nbsp;                    disabledMetricAttributes);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static final int CONSOLE_WIDTH = 80;
    -&nbsp;
    -&nbsp;    private final PrintStream output;
    -&nbsp;    private final Locale locale;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final DateFormat dateFormat;
    -&nbsp;
    -&nbsp;    private ConsoleReporter(MetricRegistry registry,
    -&nbsp;                            PrintStream output,
    -&nbsp;                            Locale locale,
    -&nbsp;                            Clock clock,
    -&nbsp;                            TimeZone timeZone,
    -&nbsp;                            TimeUnit rateUnit,
    -&nbsp;                            TimeUnit durationUnit,
    -&nbsp;                            MetricFilter filter,
    -&nbsp;                            ScheduledExecutorService executor,
    -&nbsp;                            boolean shutdownExecutorOnStop,
    -&nbsp;                            Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;        super(registry, &quot;console-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, disabledMetricAttributes);</b>
    -<b class="fc">&nbsp;        this.output = output;</b>
    -<b class="fc">&nbsp;        this.locale = locale;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT,</b>
    -&nbsp;                DateFormat.MEDIUM,
    -&nbsp;                locale);
    -<b class="fc">&nbsp;        dateFormat.setTimeZone(timeZone);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        final String dateTime = dateFormat.format(new Date(clock.getTime()));</b>
    -<b class="fc">&nbsp;        printWithBanner(dateTime, &#39;=&#39;);</b>
    -<b class="fc">&nbsp;        output.println();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (!gauges.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Gauges&quot;, &#39;-&#39;);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printGauge(entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (!counters.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Counters&quot;, &#39;-&#39;);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printCounter(entry);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (!histograms.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Histograms&quot;, &#39;-&#39;);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printHistogram(entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (!meters.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Meters&quot;, &#39;-&#39;);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printMeter(entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (!timers.isEmpty()) {</b>
    -<b class="fc">&nbsp;            printWithBanner(&quot;-- Timers&quot;, &#39;-&#39;);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;                output.println(entry.getKey());</b>
    -<b class="fc">&nbsp;                printTimer(entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            output.println();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        output.println();</b>
    -<b class="fc">&nbsp;        output.flush();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void printMeter(Meter meter) {
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, meter.getCount()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, &quot;         mean rate = %2.2f events/%s&quot;, convertRate(meter.getMeanRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, &quot;     1-minute rate = %2.2f events/%s&quot;, convertRate(meter.getOneMinuteRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, &quot;     5-minute rate = %2.2f events/%s&quot;, convertRate(meter.getFiveMinuteRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, &quot;    15-minute rate = %2.2f events/%s&quot;, convertRate(meter.getFifteenMinuteRate()), getRateUnit()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void printCounter(Map.Entry&lt;String, Counter&gt; entry) {
    -<b class="fc">&nbsp;        output.printf(locale, &quot;             count = %d%n&quot;, entry.getValue().getCount());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void printGauge(Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;        output.printf(locale, &quot;             value = %s%n&quot;, gauge.getValue());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void printHistogram(Histogram histogram) {
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, histogram.getCount()));</b>
    -<b class="fc">&nbsp;        Snapshot snapshot = histogram.getSnapshot();</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MIN, String.format(locale, &quot;               min = %d&quot;, snapshot.getMin()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MAX, String.format(locale, &quot;               max = %d&quot;, snapshot.getMax()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN, String.format(locale, &quot;              mean = %2.2f&quot;, snapshot.getMean()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.STDDEV, String.format(locale, &quot;            stddev = %2.2f&quot;, snapshot.getStdDev()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P50, String.format(locale, &quot;            median = %2.2f&quot;, snapshot.getMedian()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P75, String.format(locale, &quot;              75%% &lt;= %2.2f&quot;, snapshot.get75thPercentile()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P95, String.format(locale, &quot;              95%% &lt;= %2.2f&quot;, snapshot.get95thPercentile()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P98, String.format(locale, &quot;              98%% &lt;= %2.2f&quot;, snapshot.get98thPercentile()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P99, String.format(locale, &quot;              99%% &lt;= %2.2f&quot;, snapshot.get99thPercentile()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P999, String.format(locale, &quot;            99.9%% &lt;= %2.2f&quot;, snapshot.get999thPercentile()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void printTimer(Timer timer) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, timer.getCount()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, &quot;         mean rate = %2.2f calls/%s&quot;, convertRate(timer.getMeanRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, &quot;     1-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getOneMinuteRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, &quot;     5-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getFiveMinuteRate()), getRateUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, &quot;    15-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getFifteenMinuteRate()), getRateUnit()));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MIN, String.format(locale, &quot;               min = %2.2f %s&quot;, convertDuration(snapshot.getMin()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MAX, String.format(locale, &quot;               max = %2.2f %s&quot;, convertDuration(snapshot.getMax()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.MEAN, String.format(locale, &quot;              mean = %2.2f %s&quot;, convertDuration(snapshot.getMean()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.STDDEV, String.format(locale, &quot;            stddev = %2.2f %s&quot;, convertDuration(snapshot.getStdDev()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P50, String.format(locale, &quot;            median = %2.2f %s&quot;, convertDuration(snapshot.getMedian()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P75, String.format(locale, &quot;              75%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get75thPercentile()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P95, String.format(locale, &quot;              95%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get95thPercentile()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P98, String.format(locale, &quot;              98%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get98thPercentile()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P99, String.format(locale, &quot;              99%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get99thPercentile()), getDurationUnit()));</b>
    -<b class="fc">&nbsp;        printIfEnabled(MetricAttribute.P999, String.format(locale, &quot;            99.9%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get999thPercentile()), getDurationUnit()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void printWithBanner(String s, char c) {
    -<b class="fc">&nbsp;        output.print(s);</b>
    -<b class="fc">&nbsp;        output.print(&#39; &#39;);</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; (CONSOLE_WIDTH - s.length() - 1); i++) {</b>
    -<b class="fc">&nbsp;            output.print(c);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        output.println();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Print only if the attribute is enabled
    -&nbsp;     *
    -&nbsp;     * @param type   Metric attribute
    -&nbsp;     * @param status Status to be logged
    -&nbsp;     */
    -&nbsp;    private void printIfEnabled(MetricAttribute type, String status) {
    -<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        output.println(status);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-5.html
    deleted file mode 100644
    index 0576a0ec12..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-5.html
    +++ /dev/null
    @@ -1,160 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Counter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Counter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Counter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An incrementing and decrementing counter metric.
    -&nbsp; */
    -&nbsp;public class Counter implements Metric, Counting {
    -&nbsp;    private final LongAdder count;
    -&nbsp;
    -<b class="fc">&nbsp;    public Counter() {</b>
    -<b class="fc">&nbsp;        this.count = new LongAdder();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Increment the counter by one.
    -&nbsp;     */
    -&nbsp;    public void inc() {
    -<b class="fc">&nbsp;        inc(1);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Increment the counter by {@code n}.
    -&nbsp;     *
    -&nbsp;     * @param n the amount by which the counter will be increased
    -&nbsp;     */
    -&nbsp;    public void inc(long n) {
    -<b class="fc">&nbsp;        count.add(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Decrement the counter by one.
    -&nbsp;     */
    -&nbsp;    public void dec() {
    -<b class="fc">&nbsp;        dec(1);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Decrement the counter by {@code n}.
    -&nbsp;     *
    -&nbsp;     * @param n the amount by which the counter will be decreased
    -&nbsp;     */
    -&nbsp;    public void dec(long n) {
    -<b class="fc">&nbsp;        count.add(-n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the counter&#39;s current value.
    -&nbsp;     *
    -&nbsp;     * @return the counter&#39;s current value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getCount() {
    -<b class="fc">&nbsp;        return count.sum();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-6.html
    deleted file mode 100644
    index 9dac4e0c7f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-6.html
    +++ /dev/null
    @@ -1,477 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CsvReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CsvReporter (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CsvReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.4%
    -  </span>
    -  <span class="absValue">
    -    (81/84)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">CsvReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CsvReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (10/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.1%
    -  </span>
    -  <span class="absValue">
    -    (27/31)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.9%
    -  </span>
    -  <span class="absValue">
    -    (108/115)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.io.File;
    -&nbsp;import java.io.FileOutputStream;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which creates a comma-separated values file of the measurements for each metric.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CsvReporter extends ScheduledReporter {</b>
    -&nbsp;    private static final String DEFAULT_SEPARATOR = &quot;,&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link CsvReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link CsvReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link CsvReporter} instances. Defaults to using the default locale, converting
    -&nbsp;     * rates to events/second, converting durations to milliseconds, and not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private Locale locale;
    -&nbsp;        private String separator;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private Clock clock;
    -&nbsp;        private MetricFilter filter;
    -&nbsp;        private ScheduledExecutorService executor;
    -&nbsp;        private boolean shutdownExecutorOnStop;
    -&nbsp;        private CsvFileProvider csvFileProvider;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.locale = Locale.getDefault();</b>
    -<b class="fc">&nbsp;            this.separator = DEFAULT_SEPARATOR;</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    -<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;            this.executor = null;</b>
    -<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;            this.csvFileProvider = new FixedNameCsvFileProvider();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -&nbsp;         * Default value is true.
    -&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -&nbsp;         *
    -&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    -&nbsp;         * Default value is null.
    -&nbsp;         * Null value leads to executor will be auto created on start.
    -&nbsp;         *
    -&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Format numbers for the given {@link Locale}.
    -&nbsp;         *
    -&nbsp;         * @param locale a {@link Locale}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder formatFor(Locale locale) {
    -<b class="fc">&nbsp;            this.locale = locale;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given string to use as the separator for values.
    -&nbsp;         *
    -&nbsp;         * @param separator the string to use for the separator.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withSeparator(String separator) {
    -<b class="fc">&nbsp;            this.separator = separator;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given {@link Clock} instance for the time.
    -&nbsp;         *
    -&nbsp;         * @param clock a {@link Clock} instance
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withClock(Clock clock) {
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withCsvFileProvider(CsvFileProvider csvFileProvider) {
    -<b class="fc">&nbsp;            this.csvFileProvider = csvFileProvider;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link CsvReporter} with the given properties, writing {@code .csv} files to the
    -&nbsp;         * given directory.
    -&nbsp;         *
    -&nbsp;         * @param directory the directory in which the {@code .csv} files will be created
    -&nbsp;         * @return a {@link CsvReporter}
    -&nbsp;         */
    -&nbsp;        public CsvReporter build(File directory) {
    -<b class="fc">&nbsp;            return new CsvReporter(registry,</b>
    -&nbsp;                    directory,
    -&nbsp;                    locale,
    -&nbsp;                    separator,
    -&nbsp;                    rateUnit,
    -&nbsp;                    durationUnit,
    -&nbsp;                    clock,
    -&nbsp;                    filter,
    -&nbsp;                    executor,
    -&nbsp;                    shutdownExecutorOnStop,
    -&nbsp;                    csvFileProvider);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(CsvReporter.class);</b>
    -&nbsp;
    -&nbsp;    private final File directory;
    -&nbsp;    private final Locale locale;
    -&nbsp;    private final String separator;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final CsvFileProvider csvFileProvider;
    -&nbsp;
    -&nbsp;    private final String histogramFormat;
    -&nbsp;    private final String meterFormat;
    -&nbsp;    private final String timerFormat;
    -&nbsp;
    -&nbsp;    private final String timerHeader;
    -&nbsp;    private final String meterHeader;
    -&nbsp;    private final String histogramHeader;
    -&nbsp;
    -&nbsp;    private CsvReporter(MetricRegistry registry,
    -&nbsp;                        File directory,
    -&nbsp;                        Locale locale,
    -&nbsp;                        String separator,
    -&nbsp;                        TimeUnit rateUnit,
    -&nbsp;                        TimeUnit durationUnit,
    -&nbsp;                        Clock clock,
    -&nbsp;                        MetricFilter filter,
    -&nbsp;                        ScheduledExecutorService executor,
    -&nbsp;                        boolean shutdownExecutorOnStop,
    -&nbsp;                        CsvFileProvider csvFileProvider) {
    -<b class="fc">&nbsp;        super(registry, &quot;csv-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop);</b>
    -<b class="fc">&nbsp;        this.directory = directory;</b>
    -<b class="fc">&nbsp;        this.locale = locale;</b>
    -<b class="fc">&nbsp;        this.separator = separator;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.csvFileProvider = csvFileProvider;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.histogramFormat = String.join(separator, &quot;%d&quot;, &quot;%d&quot;, &quot;%f&quot;, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;);</b>
    -<b class="fc">&nbsp;        this.meterFormat = String.join(separator, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;events/%s&quot;);</b>
    -<b class="fc">&nbsp;        this.timerFormat = String.join(separator, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;calls/%s&quot;, &quot;%s&quot;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.timerHeader = String.join(separator, &quot;count&quot;, &quot;max&quot;, &quot;mean&quot;, &quot;min&quot;, &quot;stddev&quot;, &quot;p50&quot;, &quot;p75&quot;, &quot;p95&quot;, &quot;p98&quot;, &quot;p99&quot;, &quot;p999&quot;, &quot;mean_rate&quot;, &quot;m1_rate&quot;, &quot;m5_rate&quot;, &quot;m15_rate&quot;, &quot;rate_unit&quot;, &quot;duration_unit&quot;);</b>
    -<b class="fc">&nbsp;        this.meterHeader = String.join(separator, &quot;count&quot;, &quot;mean_rate&quot;, &quot;m1_rate&quot;, &quot;m5_rate&quot;, &quot;m15_rate&quot;, &quot;rate_unit&quot;);</b>
    -<b class="fc">&nbsp;        this.histogramHeader = String.join(separator, &quot;count&quot;, &quot;max&quot;, &quot;mean&quot;, &quot;min&quot;, &quot;stddev&quot;, &quot;p50&quot;, &quot;p75&quot;, &quot;p95&quot;, &quot;p98&quot;, &quot;p99&quot;, &quot;p999&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        final long timestamp = TimeUnit.MILLISECONDS.toSeconds(clock.getTime());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportGauge(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportCounter(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportHistogram(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportMeter(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;            reportTimer(timestamp, entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportTimer(long timestamp, String name, Timer timer) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        report(timestamp,</b>
    -&nbsp;                name,
    -&nbsp;                timerHeader,
    -&nbsp;                timerFormat,
    -<b class="fc">&nbsp;                timer.getCount(),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getMax()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getMean()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getMin()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getStdDev()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.getMedian()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get75thPercentile()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get95thPercentile()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get98thPercentile()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get99thPercentile()),</b>
    -<b class="fc">&nbsp;                convertDuration(snapshot.get999thPercentile()),</b>
    -<b class="fc">&nbsp;                convertRate(timer.getMeanRate()),</b>
    -<b class="fc">&nbsp;                convertRate(timer.getOneMinuteRate()),</b>
    -<b class="fc">&nbsp;                convertRate(timer.getFiveMinuteRate()),</b>
    -<b class="fc">&nbsp;                convertRate(timer.getFifteenMinuteRate()),</b>
    -<b class="fc">&nbsp;                getRateUnit(),</b>
    -<b class="fc">&nbsp;                getDurationUnit());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportMeter(long timestamp, String name, Meter meter) {
    -<b class="fc">&nbsp;        report(timestamp,</b>
    -&nbsp;                name,
    -&nbsp;                meterHeader,
    -&nbsp;                meterFormat,
    -<b class="fc">&nbsp;                meter.getCount(),</b>
    -<b class="fc">&nbsp;                convertRate(meter.getMeanRate()),</b>
    -<b class="fc">&nbsp;                convertRate(meter.getOneMinuteRate()),</b>
    -<b class="fc">&nbsp;                convertRate(meter.getFiveMinuteRate()),</b>
    -<b class="fc">&nbsp;                convertRate(meter.getFifteenMinuteRate()),</b>
    -<b class="fc">&nbsp;                getRateUnit());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportHistogram(long timestamp, String name, Histogram histogram) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        report(timestamp,</b>
    -&nbsp;                name,
    -&nbsp;                histogramHeader,
    -&nbsp;                histogramFormat,
    -<b class="fc">&nbsp;                histogram.getCount(),</b>
    -<b class="fc">&nbsp;                snapshot.getMax(),</b>
    -<b class="fc">&nbsp;                snapshot.getMean(),</b>
    -<b class="fc">&nbsp;                snapshot.getMin(),</b>
    -<b class="fc">&nbsp;                snapshot.getStdDev(),</b>
    -<b class="fc">&nbsp;                snapshot.getMedian(),</b>
    -<b class="fc">&nbsp;                snapshot.get75thPercentile(),</b>
    -<b class="fc">&nbsp;                snapshot.get95thPercentile(),</b>
    -<b class="fc">&nbsp;                snapshot.get98thPercentile(),</b>
    -<b class="fc">&nbsp;                snapshot.get99thPercentile(),</b>
    -<b class="fc">&nbsp;                snapshot.get999thPercentile());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportCounter(long timestamp, String name, Counter counter) {
    -<b class="fc">&nbsp;        report(timestamp, name, &quot;count&quot;, &quot;%d&quot;, counter.getCount());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportGauge(long timestamp, String name, Gauge&lt;?&gt; gauge) {
    -<b class="fc">&nbsp;        report(timestamp, name, &quot;value&quot;, &quot;%s&quot;, gauge.getValue());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void report(long timestamp, String name, String header, String line, Object... values) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            final File file = csvFileProvider.getFile(directory, name);</b>
    -<b class="fc">&nbsp;            final boolean fileAlreadyExists = file.exists();</b>
    -<b class="fc">&nbsp;            if (fileAlreadyExists || file.createNewFile()) {</b>
    -<b class="fc">&nbsp;                try (PrintWriter out = new PrintWriter(new OutputStreamWriter(</b>
    -&nbsp;                        new FileOutputStream(file, true), UTF_8))) {
    -<b class="fc">&nbsp;                    if (!fileAlreadyExists) {</b>
    -<b class="fc">&nbsp;                        out.println(&quot;t&quot; + separator + header);</b>
    -&nbsp;                    }
    -<b class="fc">&nbsp;                    out.printf(locale, String.format(locale, &quot;%d&quot; + separator + &quot;%s%n&quot;, timestamp, line), values);</b>
    -<b class="fc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            LOGGER.warn(&quot;Error writing to {}&quot;, name, e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String name) {
    -<b class="nc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-7.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-7.html
    deleted file mode 100644
    index a09c4b63a7..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-7.html
    +++ /dev/null
    @@ -1,147 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DefaultSettableGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DefaultSettableGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DefaultSettableGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
    -&nbsp; */
    -&nbsp;public class DefaultSettableGauge&lt;T&gt; implements SettableGauge&lt;T&gt; {
    -&nbsp;    private volatile T value;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create an instance with no default value.
    -&nbsp;     */
    -&nbsp;    public DefaultSettableGauge() {
    -<b class="fc">&nbsp;        this(null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create an instance with a default value.
    -&nbsp;     *
    -&nbsp;     * @param defaultValue default value
    -&nbsp;     */
    -<b class="fc">&nbsp;    public DefaultSettableGauge(T defaultValue) {</b>
    -<b class="fc">&nbsp;        this.value = defaultValue;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Set the metric to a new value.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void setValue(T value) {
    -<b class="fc">&nbsp;        this.value = value;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the current value.
    -&nbsp;     *
    -&nbsp;     * @return the current value
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public T getValue() {
    -<b class="fc">&nbsp;        return value;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-8.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-8.html
    deleted file mode 100644
    index a25b048758..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-8.html
    +++ /dev/null
    @@ -1,137 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DerivativeGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DerivativeGauge (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DerivativeGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A gauge whose value is derived from the value of another gauge.
    -&nbsp; *
    -&nbsp; * @param &lt;F&gt; the base gauge&#39;s value type
    -&nbsp; * @param &lt;T&gt; the derivative type
    -&nbsp; */
    -&nbsp;public abstract class DerivativeGauge&lt;F, T&gt; implements Gauge&lt;T&gt; {
    -&nbsp;    private final Gauge&lt;F&gt; base;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new derivative with the given base gauge.
    -&nbsp;     *
    -&nbsp;     * @param base the gauge from which to derive this gauge&#39;s value
    -&nbsp;     */
    -<b class="fc">&nbsp;    protected DerivativeGauge(Gauge&lt;F&gt; base) {</b>
    -<b class="fc">&nbsp;        this.base = base;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public T getValue() {
    -<b class="fc">&nbsp;        return transform(base.getValue());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Transforms the value of the base gauge to the value of this gauge.
    -&nbsp;     *
    -&nbsp;     * @param value the value of the base gauge
    -&nbsp;     * @return this gauge&#39;s value
    -&nbsp;     */
    -&nbsp;    protected abstract T transform(F value);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-9.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-9.html
    deleted file mode 100644
    index 17177d741b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-9.html
    +++ /dev/null
    @@ -1,212 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > EWMA</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: EWMA (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">EWMA</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;import static java.lang.Math.exp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An exponentially-weighted moving average.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://www.teamquest.com/pdfs/whitepaper/ldavg1.pdf&quot;&gt;UNIX Load Average Part 1: How
    -&nbsp; * It Works&lt;/a&gt;
    -&nbsp; * @see &lt;a href=&quot;http://www.teamquest.com/pdfs/whitepaper/ldavg2.pdf&quot;&gt;UNIX Load Average Part 2: Not
    -&nbsp; * Your Average Average&lt;/a&gt;
    -&nbsp; * @see &lt;a href=&quot;http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average&quot;&gt;EMA&lt;/a&gt;
    -&nbsp; */
    -&nbsp;public class EWMA {
    -&nbsp;    private static final int INTERVAL = 5;
    -&nbsp;    private static final double SECONDS_PER_MINUTE = 60.0;
    -&nbsp;    private static final int ONE_MINUTE = 1;
    -&nbsp;    private static final int FIVE_MINUTES = 5;
    -&nbsp;    private static final int FIFTEEN_MINUTES = 15;
    -<b class="fc">&nbsp;    private static final double M1_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / ONE_MINUTE);</b>
    -<b class="fc">&nbsp;    private static final double M5_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIVE_MINUTES);</b>
    -<b class="fc">&nbsp;    private static final double M15_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIFTEEN_MINUTES);</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private volatile boolean initialized = false;</b>
    -<b class="fc">&nbsp;    private volatile double rate = 0.0;</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private final LongAdder uncounted = new LongAdder();</b>
    -&nbsp;    private final double alpha, interval;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new EWMA which is equivalent to the UNIX one minute load average and which expects
    -&nbsp;     * to be ticked every 5 seconds.
    -&nbsp;     *
    -&nbsp;     * @return a one-minute EWMA
    -&nbsp;     */
    -&nbsp;    public static EWMA oneMinuteEWMA() {
    -<b class="fc">&nbsp;        return new EWMA(M1_ALPHA, INTERVAL, TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new EWMA which is equivalent to the UNIX five minute load average and which expects
    -&nbsp;     * to be ticked every 5 seconds.
    -&nbsp;     *
    -&nbsp;     * @return a five-minute EWMA
    -&nbsp;     */
    -&nbsp;    public static EWMA fiveMinuteEWMA() {
    -<b class="fc">&nbsp;        return new EWMA(M5_ALPHA, INTERVAL, TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new EWMA which is equivalent to the UNIX fifteen minute load average and which
    -&nbsp;     * expects to be ticked every 5 seconds.
    -&nbsp;     *
    -&nbsp;     * @return a fifteen-minute EWMA
    -&nbsp;     */
    -&nbsp;    public static EWMA fifteenMinuteEWMA() {
    -<b class="fc">&nbsp;        return new EWMA(M15_ALPHA, INTERVAL, TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new EWMA with a specific smoothing constant.
    -&nbsp;     *
    -&nbsp;     * @param alpha        the smoothing constant
    -&nbsp;     * @param interval     the expected tick interval
    -&nbsp;     * @param intervalUnit the time unit of the tick interval
    -&nbsp;     */
    -<b class="fc">&nbsp;    public EWMA(double alpha, long interval, TimeUnit intervalUnit) {</b>
    -<b class="fc">&nbsp;        this.interval = intervalUnit.toNanos(interval);</b>
    -<b class="fc">&nbsp;        this.alpha = alpha;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Update the moving average with a new value.
    -&nbsp;     *
    -&nbsp;     * @param n the new value
    -&nbsp;     */
    -&nbsp;    public void update(long n) {
    -<b class="fc">&nbsp;        uncounted.add(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Mark the passage of time and decay the current rate accordingly.
    -&nbsp;     */
    -&nbsp;    public void tick() {
    -<b class="fc">&nbsp;        final long count = uncounted.sumThenReset();</b>
    -<b class="fc">&nbsp;        final double instantRate = count / interval;</b>
    -<b class="fc">&nbsp;        if (initialized) {</b>
    -<b class="fc">&nbsp;            final double oldRate = this.rate;</b>
    -<b class="fc">&nbsp;            rate = oldRate + (alpha * (instantRate - oldRate));</b>
    -<b class="fc">&nbsp;        } else {</b>
    -<b class="fc">&nbsp;            rate = instantRate;</b>
    -<b class="fc">&nbsp;            initialized = true;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the rate in the given units of time.
    -&nbsp;     *
    -&nbsp;     * @param rateUnit the unit of time
    -&nbsp;     * @return the rate
    -&nbsp;     */
    -&nbsp;    public double getRate(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;        return rate * (double) rateUnit.toNanos(1);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-a.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-a.html
    deleted file mode 100644
    index 8d5f0c37d1..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-a.html
    +++ /dev/null
    @@ -1,181 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ExponentialMovingAverages</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ExponentialMovingAverages (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ExponentialMovingAverages</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A triple (one, five and fifteen minutes) of exponentially-weighted moving average rates as needed by {@link Meter}.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * The rates have the same exponential decay factor as the fifteen-minute load average in the
    -&nbsp; * {@code top} Unix command.
    -&nbsp; */
    -&nbsp;public class ExponentialMovingAverages implements MovingAverages {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(5);</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private final EWMA m1Rate = EWMA.oneMinuteEWMA();</b>
    -<b class="fc">&nbsp;    private final EWMA m5Rate = EWMA.fiveMinuteEWMA();</b>
    -<b class="fc">&nbsp;    private final EWMA m15Rate = EWMA.fifteenMinuteEWMA();</b>
    -&nbsp;
    -&nbsp;    private final AtomicLong lastTick;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentialMovingAverages}.
    -&nbsp;     */
    -&nbsp;    public ExponentialMovingAverages() {
    -<b class="nc">&nbsp;        this(Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentialMovingAverages}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public ExponentialMovingAverages(Clock clock) {</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.lastTick = new AtomicLong(this.clock.getTick());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long n) {
    -<b class="fc">&nbsp;        m1Rate.update(n);</b>
    -<b class="fc">&nbsp;        m5Rate.update(n);</b>
    -<b class="fc">&nbsp;        m15Rate.update(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void tickIfNecessary() {
    -<b class="fc">&nbsp;        final long oldTick = lastTick.get();</b>
    -<b class="fc">&nbsp;        final long newTick = clock.getTick();</b>
    -<b class="fc">&nbsp;        final long age = newTick - oldTick;</b>
    -<b class="fc">&nbsp;        if (age &gt; TICK_INTERVAL) {</b>
    -<b class="fc">&nbsp;            final long newIntervalStartTick = newTick - age % TICK_INTERVAL;</b>
    -<b class="fc">&nbsp;            if (lastTick.compareAndSet(oldTick, newIntervalStartTick)) {</b>
    -<b class="fc">&nbsp;                final long requiredTicks = age / TICK_INTERVAL;</b>
    -<b class="fc">&nbsp;                for (long i = 0; i &lt; requiredTicks; i++) {</b>
    -<b class="fc">&nbsp;                    m1Rate.tick();</b>
    -<b class="fc">&nbsp;                    m5Rate.tick();</b>
    -<b class="fc">&nbsp;                    m15Rate.tick();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM1Rate() {
    -<b class="fc">&nbsp;        return m1Rate.getRate(TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM5Rate() {
    -<b class="fc">&nbsp;        return m5Rate.getRate(TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public double getM15Rate() {
    -<b class="fc">&nbsp;        return m15Rate.getRate(TimeUnit.SECONDS);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-b.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-b.html
    deleted file mode 100644
    index 35c05aff51..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-b.html
    +++ /dev/null
    @@ -1,311 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ExponentiallyDecayingReservoir</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ExponentiallyDecayingReservoir (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ExponentiallyDecayingReservoir</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.concurrent.ConcurrentSkipListMap;
    -&nbsp;import java.util.concurrent.ThreadLocalRandom;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;import java.util.concurrent.locks.ReentrantReadWriteLock;
    -&nbsp;
    -&nbsp;import static java.lang.Math.exp;
    -&nbsp;import static java.lang.Math.min;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.WeightedSnapshot.WeightedSample;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al&#39;s
    -&nbsp; * forward-decaying priority reservoir sampling method to produce a statistically representative
    -&nbsp; * sampling reservoir, exponentially biased towards newer entries.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf&quot;&gt;
    -&nbsp; * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE &#39;09:
    -&nbsp; * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)&lt;/a&gt;
    -&nbsp; */
    -&nbsp;public class ExponentiallyDecayingReservoir implements Reservoir {
    -&nbsp;    private static final int DEFAULT_SIZE = 1028;
    -&nbsp;    private static final double DEFAULT_ALPHA = 0.015;
    -<b class="fc">&nbsp;    private static final long RESCALE_THRESHOLD = TimeUnit.HOURS.toNanos(1);</b>
    -&nbsp;
    -&nbsp;    private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    -&nbsp;    private final ReentrantReadWriteLock lock;
    -&nbsp;    private final double alpha;
    -&nbsp;    private final int size;
    -&nbsp;    private final AtomicLong count;
    -&nbsp;    private volatile long startTime;
    -&nbsp;    private final AtomicLong lastScaleTick;
    -&nbsp;    private final Clock clock;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentiallyDecayingReservoir} of 1028 elements, which offers a 99.9%
    -&nbsp;     * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
    -&nbsp;     * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
    -&nbsp;     */
    -&nbsp;    public ExponentiallyDecayingReservoir() {
    -<b class="fc">&nbsp;        this(DEFAULT_SIZE, DEFAULT_ALPHA);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentiallyDecayingReservoir}.
    -&nbsp;     *
    -&nbsp;     * @param size  the number of samples to keep in the sampling reservoir
    -&nbsp;     * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
    -&nbsp;     *              will be towards newer values
    -&nbsp;     */
    -&nbsp;    public ExponentiallyDecayingReservoir(int size, double alpha) {
    -<b class="fc">&nbsp;        this(size, alpha, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link ExponentiallyDecayingReservoir}.
    -&nbsp;     *
    -&nbsp;     * @param size  the number of samples to keep in the sampling reservoir
    -&nbsp;     * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
    -&nbsp;     *              will be towards newer values
    -&nbsp;     * @param clock the clock used to timestamp samples and track rescaling
    -&nbsp;     */
    -<b class="fc">&nbsp;    public ExponentiallyDecayingReservoir(int size, double alpha, Clock clock) {</b>
    -<b class="fc">&nbsp;        this.values = new ConcurrentSkipListMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        this.lock = new ReentrantReadWriteLock();</b>
    -<b class="fc">&nbsp;        this.alpha = alpha;</b>
    -<b class="fc">&nbsp;        this.size = size;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.count = new AtomicLong(0);</b>
    -<b class="fc">&nbsp;        this.startTime = currentTimeInSeconds();</b>
    -<b class="fc">&nbsp;        this.lastScaleTick = new AtomicLong(clock.getTick());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int size() {
    -<b class="fc">&nbsp;        return (int) min(size, count.get());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        update(value, currentTimeInSeconds());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds an old value with a fixed timestamp to the reservoir.
    -&nbsp;     *
    -&nbsp;     * @param value     the value to be added
    -&nbsp;     * @param timestamp the epoch timestamp of {@code value} in seconds
    -&nbsp;     */
    -&nbsp;    public void update(long value, long timestamp) {
    -<b class="fc">&nbsp;        rescaleIfNeeded();</b>
    -<b class="fc">&nbsp;        lockForRegularUsage();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            final double itemWeight = weight(timestamp - startTime);</b>
    -<b class="fc">&nbsp;            final WeightedSample sample = new WeightedSample(value, itemWeight);</b>
    -<b class="fc">&nbsp;            final double priority = itemWeight / ThreadLocalRandom.current().nextDouble();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final long newCount = count.incrementAndGet();</b>
    -<b class="fc">&nbsp;            if (newCount &lt;= size || values.isEmpty()) {</b>
    -<b class="fc">&nbsp;                values.put(priority, sample);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                Double first = values.firstKey();</b>
    -<b class="fc">&nbsp;                if (first &lt; priority &amp;&amp; values.putIfAbsent(priority, sample) == null) {</b>
    -&nbsp;                    // ensure we always remove an item
    -<b class="fc">&nbsp;                    while (values.remove(first) == null) {</b>
    -<b class="nc">&nbsp;                        first = values.firstKey();</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            unlockForRegularUsage();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void rescaleIfNeeded() {
    -<b class="fc">&nbsp;        final long now = clock.getTick();</b>
    -<b class="fc">&nbsp;        final long lastScaleTickSnapshot = lastScaleTick.get();</b>
    -<b class="fc">&nbsp;        if (now - lastScaleTickSnapshot &gt;= RESCALE_THRESHOLD) {</b>
    -<b class="fc">&nbsp;            rescale(now, lastScaleTickSnapshot);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        rescaleIfNeeded();</b>
    -<b class="fc">&nbsp;        lockForRegularUsage();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return new WeightedSnapshot(values.values());</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            unlockForRegularUsage();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private long currentTimeInSeconds() {
    -<b class="fc">&nbsp;        return TimeUnit.MILLISECONDS.toSeconds(clock.getTime());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private double weight(long t) {
    -<b class="fc">&nbsp;        return exp(alpha * t);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /* &quot;A common feature of the above techniques—indeed, the key technique that
    -&nbsp;     * allows us to track the decayed weights efficiently—is that they maintain
    -&nbsp;     * counts and other quantities based on g(ti ? L), and only scale by g(t ? L)
    -&nbsp;     * at query time. But while g(ti ?L)/g(t?L) is guaranteed to lie between zero
    -&nbsp;     * and one, the intermediate values of g(ti ? L) could become very large. For
    -&nbsp;     * polynomial functions, these values should not grow too large, and should be
    -&nbsp;     * effectively represented in practice by floating point values without loss of
    -&nbsp;     * precision. For exponential functions, these values could grow quite large as
    -&nbsp;     * new values of (ti ? L) become large, and potentially exceed the capacity of
    -&nbsp;     * common floating point types. However, since the values stored by the
    -&nbsp;     * algorithms are linear combinations of g values (scaled sums), they can be
    -&nbsp;     * rescaled relative to a new landmark. That is, by the analysis of exponential
    -&nbsp;     * decay in Section III-A, the choice of L does not affect the final result. We
    -&nbsp;     * can therefore multiply each value based on L by a factor of exp(??(L? ? L)),
    -&nbsp;     * and obtain the correct value as if we had instead computed relative to a new
    -&nbsp;     * landmark L? (and then use this new L? at query time). This can be done with
    -&nbsp;     * a linear pass over whatever data structure is being used.&quot;
    -&nbsp;     */
    -&nbsp;    private void rescale(long now, long lastTick) {
    -<b class="fc">&nbsp;        lockForRescale();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            if (lastScaleTick.compareAndSet(lastTick, now)) {</b>
    -<b class="fc">&nbsp;                final long oldStartTime = startTime;</b>
    -<b class="fc">&nbsp;                this.startTime = currentTimeInSeconds();</b>
    -<b class="fc">&nbsp;                final double scalingFactor = exp(-alpha * (startTime - oldStartTime));</b>
    -<b class="fc">&nbsp;                if (Double.compare(scalingFactor, 0) == 0) {</b>
    -<b class="fc">&nbsp;                    values.clear();</b>
    -&nbsp;                } else {
    -<b class="fc">&nbsp;                    final ArrayList&lt;Double&gt; keys = new ArrayList&lt;&gt;(values.keySet());</b>
    -<b class="fc">&nbsp;                    for (Double key : keys) {</b>
    -<b class="fc">&nbsp;                        final WeightedSample sample = values.remove(key);</b>
    -<b class="fc">&nbsp;                        final WeightedSample newSample = new WeightedSample(sample.value, sample.weight * scalingFactor);</b>
    -<b class="fc">&nbsp;                        if (Double.compare(newSample.weight, 0) == 0) {</b>
    -<b class="fc">&nbsp;                            continue;</b>
    -&nbsp;                        }
    -<b class="fc">&nbsp;                        values.put(key * scalingFactor, newSample);</b>
    -<b class="fc">&nbsp;                    }</b>
    -&nbsp;                }
    -&nbsp;
    -&nbsp;                // make sure the counter is in sync with the number of stored samples.
    -<b class="fc">&nbsp;                count.set(values.size());</b>
    -&nbsp;            }
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            unlockForRescale();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void unlockForRescale() {
    -<b class="fc">&nbsp;        lock.writeLock().unlock();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void lockForRescale() {
    -<b class="fc">&nbsp;        lock.writeLock().lock();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void lockForRegularUsage() {
    -<b class="fc">&nbsp;        lock.readLock().lock();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void unlockForRegularUsage() {
    -<b class="fc">&nbsp;        lock.readLock().unlock();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-c.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-c.html
    deleted file mode 100644
    index d6ae20e393..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-c.html
    +++ /dev/null
    @@ -1,125 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > FixedNameCsvFileProvider</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: FixedNameCsvFileProvider (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">FixedNameCsvFileProvider</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.io.File;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * This implementation of the {@link CsvFileProvider} will always return the same name
    -&nbsp; * for the same metric. This means the CSV file will grow indefinitely.
    -&nbsp; */
    -<b class="fc">&nbsp;public class FixedNameCsvFileProvider implements CsvFileProvider {</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public File getFile(File directory, String metricName) {
    -<b class="fc">&nbsp;        return new File(directory, sanitize(metricName) + &quot;.csv&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String metricName) {
    -&nbsp;        //Forward slash character is definitely illegal in both Windows and Linux
    -&nbsp;        //https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
    -<b class="fc">&nbsp;        return metricName.replaceFirst(&quot;^/&quot;, &quot;&quot;).replaceAll(&quot;/&quot;, &quot;.&quot;);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-d.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-d.html
    deleted file mode 100644
    index 88789bd52b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-d.html
    +++ /dev/null
    @@ -1,162 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Histogram</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Histogram (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Histogram</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A metric which calculates the distribution of a value.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://www.johndcook.com/standard_deviation.html&quot;&gt;Accurately computing running
    -&nbsp; * variance&lt;/a&gt;
    -&nbsp; */
    -&nbsp;public class Histogram implements Metric, Sampling, Counting {
    -&nbsp;    private final Reservoir reservoir;
    -&nbsp;    private final LongAdder count;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link Histogram} with the given reservoir.
    -&nbsp;     *
    -&nbsp;     * @param reservoir the reservoir to create a histogram from
    -&nbsp;     */
    -<b class="fc">&nbsp;    public Histogram(Reservoir reservoir) {</b>
    -<b class="fc">&nbsp;        this.reservoir = reservoir;</b>
    -<b class="fc">&nbsp;        this.count = new LongAdder();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a recorded value.
    -&nbsp;     *
    -&nbsp;     * @param value the length of the value
    -&nbsp;     */
    -&nbsp;    public void update(int value) {
    -<b class="fc">&nbsp;        update((long) value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a recorded value.
    -&nbsp;     *
    -&nbsp;     * @param value the length of the value
    -&nbsp;     */
    -&nbsp;    public void update(long value) {
    -<b class="fc">&nbsp;        count.increment();</b>
    -<b class="fc">&nbsp;        reservoir.update(value);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of values recorded.
    -&nbsp;     *
    -&nbsp;     * @return the number of values recorded
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public long getCount() {
    -<b class="fc">&nbsp;        return count.sum();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Snapshot getSnapshot() {
    -<b class="fc">&nbsp;        return reservoir.getSnapshot();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-e.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-e.html
    deleted file mode 100644
    index f393ea6bce..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-e.html
    +++ /dev/null
    @@ -1,390 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedExecutorService</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedExecutorService (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedExecutorService</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    38.9%
    -  </span>
    -  <span class="absValue">
    -    (7/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.7%
    -  </span>
    -  <span class="absValue">
    -    (42/67)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedExecutorService$InstrumentedCallable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedExecutorService$InstrumentedRunnable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (63/89)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;import java.util.concurrent.Callable;
    -&nbsp;import java.util.concurrent.ExecutionException;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;import java.util.concurrent.ForkJoinPool;
    -&nbsp;import java.util.concurrent.Future;
    -&nbsp;import java.util.concurrent.ThreadPoolExecutor;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.TimeoutException;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An {@link ExecutorService} that monitors the number of tasks submitted, running,
    -&nbsp; * completed and also keeps a {@link Timer} for the task duration.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    -&nbsp; * &quot;your-executor-service.submitted&quot;, &quot;your-executor-service.running&quot;, etc.
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedExecutorService implements ExecutorService {</b>
    -<b class="fc">&nbsp;    private static final AtomicLong NAME_COUNTER = new AtomicLong();</b>
    -&nbsp;
    -&nbsp;    private final ExecutorService delegate;
    -&nbsp;    private final Meter submitted;
    -&nbsp;    private final Counter running;
    -&nbsp;    private final Meter completed;
    -&nbsp;    private final Timer idle;
    -&nbsp;    private final Timer duration;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps an {@link ExecutorService} uses an auto-generated default name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ExecutorService} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     */
    -&nbsp;    public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(delegate, registry, &quot;instrumented-delegate-&quot; + NAME_COUNTER.incrementAndGet());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps an {@link ExecutorService} with an explicit name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ExecutorService} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     * @param name     name for this executor service.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry, String name) {</b>
    -<b class="fc">&nbsp;        this.delegate = delegate;</b>
    -<b class="fc">&nbsp;        this.submitted = registry.meter(MetricRegistry.name(name, &quot;submitted&quot;));</b>
    -<b class="fc">&nbsp;        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</b>
    -<b class="fc">&nbsp;        this.completed = registry.meter(MetricRegistry.name(name, &quot;completed&quot;));</b>
    -<b class="fc">&nbsp;        this.idle = registry.timer(MetricRegistry.name(name, &quot;idle&quot;));</b>
    -<b class="fc">&nbsp;        this.duration = registry.timer(MetricRegistry.name(name, &quot;duration&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (delegate instanceof ThreadPoolExecutor) {</b>
    -<b class="fc">&nbsp;            ThreadPoolExecutor executor = (ThreadPoolExecutor) delegate;</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;pool.size&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getPoolSize);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;pool.core&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getCorePoolSize);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;pool.max&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getMaximumPoolSize);</b>
    -<b class="fc">&nbsp;            final BlockingQueue&lt;Runnable&gt; queue = executor.getQueue();</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.active&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getActiveCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.completed&quot;),</b>
    -<b class="fc">&nbsp;                    executor::getCompletedTaskCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.queued&quot;),</b>
    -<b class="fc">&nbsp;                    queue::size);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.capacity&quot;),</b>
    -<b class="fc">&nbsp;                    queue::remainingCapacity);</b>
    -<b class="fc">&nbsp;        } else if (delegate instanceof ForkJoinPool) {</b>
    -<b class="fc">&nbsp;            ForkJoinPool forkJoinPool = (ForkJoinPool) delegate;</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.stolen&quot;),</b>
    -<b class="fc">&nbsp;                    forkJoinPool::getStealCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.queued&quot;),</b>
    -<b class="fc">&nbsp;                    forkJoinPool::getQueuedTaskCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;threads.active&quot;),</b>
    -<b class="fc">&nbsp;                    forkJoinPool::getActiveThreadCount);</b>
    -<b class="fc">&nbsp;            registry.registerGauge(MetricRegistry.name(name, &quot;threads.running&quot;),</b>
    -<b class="fc">&nbsp;                    forkJoinPool::getRunningThreadCount);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void execute(Runnable runnable) {
    -<b class="nc">&nbsp;        submitted.mark();</b>
    -<b class="nc">&nbsp;        delegate.execute(new InstrumentedRunnable(runnable));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Future&lt;?&gt; submit(Runnable runnable) {
    -<b class="fc">&nbsp;        submitted.mark();</b>
    -<b class="fc">&nbsp;        return delegate.submit(new InstrumentedRunnable(runnable));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Runnable runnable, T result) {
    -<b class="nc">&nbsp;        submitted.mark();</b>
    -<b class="nc">&nbsp;        return delegate.submit(new InstrumentedRunnable(runnable), result);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Callable&lt;T&gt; task) {
    -<b class="fc">&nbsp;        submitted.mark();</b>
    -<b class="fc">&nbsp;        return delegate.submit(new InstrumentedCallable&lt;&gt;(task));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAll(instrumented);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAll(instrumented, timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws ExecutionException, InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAny(instrumented);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws ExecutionException, InterruptedException, TimeoutException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAny(instrumented, timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T&gt; Collection&lt;? extends Callable&lt;T&gt;&gt; instrument(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) {
    -<b class="nc">&nbsp;        final List&lt;InstrumentedCallable&lt;T&gt;&gt; instrumented = new ArrayList&lt;&gt;(tasks.size());</b>
    -<b class="nc">&nbsp;        for (Callable&lt;T&gt; task : tasks) {</b>
    -<b class="nc">&nbsp;            instrumented.add(new InstrumentedCallable&lt;&gt;(task));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return instrumented;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void shutdown() {
    -<b class="fc">&nbsp;        delegate.shutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;Runnable&gt; shutdownNow() {
    -<b class="nc">&nbsp;        return delegate.shutdownNow();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isShutdown() {
    -<b class="nc">&nbsp;        return delegate.isShutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isTerminated() {
    -<b class="nc">&nbsp;        return delegate.isTerminated();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean awaitTermination(long l, TimeUnit timeUnit) throws InterruptedException {
    -<b class="fc">&nbsp;        return delegate.awaitTermination(l, timeUnit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedRunnable implements Runnable {
    -&nbsp;        private final Runnable task;
    -&nbsp;        private final Timer.Context idleContext;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedRunnable(Runnable task) {</b>
    -<b class="fc">&nbsp;            this.task = task;</b>
    -<b class="fc">&nbsp;            this.idleContext = idle.time();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void run() {
    -<b class="fc">&nbsp;            idleContext.stop();</b>
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            try (Timer.Context durationContext = duration.time()) {</b>
    -<b class="fc">&nbsp;                task.run();</b>
    -<b class="fc">&nbsp;            } finally {</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedCallable&lt;T&gt; implements Callable&lt;T&gt; {
    -&nbsp;        private final Callable&lt;T&gt; callable;
    -&nbsp;        private final Timer.Context idleContext;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedCallable(Callable&lt;T&gt; callable) {</b>
    -<b class="fc">&nbsp;            this.callable = callable;</b>
    -<b class="fc">&nbsp;            this.idleContext = idle.time();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public T call() throws Exception {
    -<b class="fc">&nbsp;            idleContext.stop();</b>
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            try (Timer.Context context = duration.time()) {</b>
    -<b class="fc">&nbsp;                return callable.call();</b>
    -<b class="fc">&nbsp;            } finally {</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-f.html b/metrics-complete-report-initial-htmlReport/ns-1/sources/source-f.html
    deleted file mode 100644
    index 93c8253d7b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1/sources/source-f.html
    +++ /dev/null
    @@ -1,465 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedScheduledExecutorService</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedScheduledExecutorService (com.codahale.metrics)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedScheduledExecutorService</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    51%
    -  </span>
    -  <span class="absValue">
    -    (26/51)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedScheduledExecutorService$InstrumentedCallable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedScheduledExecutorService$InstrumentedPeriodicRunnable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedScheduledExecutorService$InstrumentedRunnable</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.7%
    -  </span>
    -  <span class="absValue">
    -    (17/28)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.3%
    -  </span>
    -  <span class="absValue">
    -    (56/82)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics;
    -&nbsp;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.concurrent.Callable;
    -&nbsp;import java.util.concurrent.ExecutionException;
    -&nbsp;import java.util.concurrent.Future;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.ScheduledFuture;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.TimeoutException;
    -&nbsp;import java.util.concurrent.atomic.AtomicLong;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An {@link ScheduledExecutorService} that monitors the number of tasks submitted, running,
    -&nbsp; * completed and also keeps a {@link Timer} for the task duration.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    -&nbsp; * &quot;your-executor-service.submitted&quot;, &quot;your-executor-service.running&quot;, etc.
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedScheduledExecutorService implements ScheduledExecutorService {</b>
    -<b class="fc">&nbsp;    private static final AtomicLong NAME_COUNTER = new AtomicLong();</b>
    -&nbsp;
    -&nbsp;    private final ScheduledExecutorService delegate;
    -&nbsp;
    -&nbsp;    private final Meter submitted;
    -&nbsp;    private final Counter running;
    -&nbsp;    private final Meter completed;
    -&nbsp;    private final Timer duration;
    -&nbsp;
    -&nbsp;    private final Meter scheduledOnce;
    -&nbsp;    private final Meter scheduledRepetitively;
    -&nbsp;    private final Counter scheduledOverrun;
    -&nbsp;    private final Histogram percentOfPeriod;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps an {@link ScheduledExecutorService} uses an auto-generated default name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ScheduledExecutorService} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     */
    -&nbsp;    public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(delegate, registry, &quot;instrumented-scheduled-executor-service-&quot; + NAME_COUNTER.incrementAndGet());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Wraps an {@link ScheduledExecutorService} with an explicit name.
    -&nbsp;     *
    -&nbsp;     * @param delegate {@link ScheduledExecutorService} to wrap.
    -&nbsp;     * @param registry {@link MetricRegistry} that will contain the metrics.
    -&nbsp;     * @param name     name for this executor service.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry, String name) {</b>
    -<b class="fc">&nbsp;        this.delegate = delegate;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.submitted = registry.meter(MetricRegistry.name(name, &quot;submitted&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</b>
    -<b class="fc">&nbsp;        this.completed = registry.meter(MetricRegistry.name(name, &quot;completed&quot;));</b>
    -<b class="fc">&nbsp;        this.duration = registry.timer(MetricRegistry.name(name, &quot;duration&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.scheduledOnce = registry.meter(MetricRegistry.name(name, &quot;scheduled.once&quot;));</b>
    -<b class="fc">&nbsp;        this.scheduledRepetitively = registry.meter(MetricRegistry.name(name, &quot;scheduled.repetitively&quot;));</b>
    -<b class="fc">&nbsp;        this.scheduledOverrun = registry.counter(MetricRegistry.name(name, &quot;scheduled.overrun&quot;));</b>
    -<b class="fc">&nbsp;        this.percentOfPeriod = registry.histogram(MetricRegistry.name(name, &quot;scheduled.percent-of-period&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public ScheduledFuture&lt;?&gt; schedule(Runnable command, long delay, TimeUnit unit) {
    -<b class="fc">&nbsp;        scheduledOnce.mark();</b>
    -<b class="fc">&nbsp;        return delegate.schedule(new InstrumentedRunnable(command), delay, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;V&gt; ScheduledFuture&lt;V&gt; schedule(Callable&lt;V&gt; callable, long delay, TimeUnit unit) {
    -<b class="fc">&nbsp;        scheduledOnce.mark();</b>
    -<b class="fc">&nbsp;        return delegate.schedule(new InstrumentedCallable&lt;&gt;(callable), delay, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public ScheduledFuture&lt;?&gt; scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) {
    -<b class="fc">&nbsp;        scheduledRepetitively.mark();</b>
    -<b class="fc">&nbsp;        return delegate.scheduleAtFixedRate(new InstrumentedPeriodicRunnable(command, period, unit), initialDelay, period, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public ScheduledFuture&lt;?&gt; scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) {
    -<b class="fc">&nbsp;        scheduledRepetitively.mark();</b>
    -<b class="fc">&nbsp;        return delegate.scheduleWithFixedDelay(new InstrumentedRunnable(command), initialDelay, delay, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void shutdown() {
    -<b class="fc">&nbsp;        delegate.shutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public List&lt;Runnable&gt; shutdownNow() {
    -<b class="nc">&nbsp;        return delegate.shutdownNow();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean isShutdown() {
    -<b class="nc">&nbsp;        return delegate.isShutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean isTerminated() {
    -<b class="nc">&nbsp;        return delegate.isTerminated();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {
    -<b class="fc">&nbsp;        return delegate.awaitTermination(timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Callable&lt;T&gt; task) {
    -<b class="fc">&nbsp;        submitted.mark();</b>
    -<b class="fc">&nbsp;        return delegate.submit(new InstrumentedCallable&lt;&gt;(task));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; Future&lt;T&gt; submit(Runnable task, T result) {
    -<b class="nc">&nbsp;        submitted.mark();</b>
    -<b class="nc">&nbsp;        return delegate.submit(new InstrumentedRunnable(task), result);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public Future&lt;?&gt; submit(Runnable task) {
    -<b class="fc">&nbsp;        submitted.mark();</b>
    -<b class="fc">&nbsp;        return delegate.submit(new InstrumentedRunnable(task));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAll(instrumented);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAll(instrumented, timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException, ExecutionException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAny(instrumented);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
    -<b class="nc">&nbsp;        submitted.mark(tasks.size());</b>
    -<b class="nc">&nbsp;        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</b>
    -<b class="nc">&nbsp;        return delegate.invokeAny(instrumented, timeout, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T&gt; Collection&lt;? extends Callable&lt;T&gt;&gt; instrument(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) {
    -<b class="nc">&nbsp;        final List&lt;InstrumentedCallable&lt;T&gt;&gt; instrumented = new ArrayList&lt;&gt;(tasks.size());</b>
    -<b class="nc">&nbsp;        for (Callable&lt;T&gt; task : tasks) {</b>
    -<b class="nc">&nbsp;            instrumented.add(new InstrumentedCallable&lt;&gt;(task));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return instrumented;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void execute(Runnable command) {
    -<b class="nc">&nbsp;        submitted.mark();</b>
    -<b class="nc">&nbsp;        delegate.execute(new InstrumentedRunnable(command));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedRunnable implements Runnable {
    -&nbsp;        private final Runnable command;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedRunnable(Runnable command) {</b>
    -<b class="fc">&nbsp;            this.command = command;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void run() {
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            final Timer.Context context = duration.time();</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                command.run();</b>
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedPeriodicRunnable implements Runnable {
    -&nbsp;        private final Runnable command;
    -&nbsp;        private final long periodInNanos;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedPeriodicRunnable(Runnable command, long period, TimeUnit unit) {</b>
    -<b class="fc">&nbsp;            this.command = command;</b>
    -<b class="fc">&nbsp;            this.periodInNanos = unit.toNanos(period);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void run() {
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            final Timer.Context context = duration.time();</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                command.run();</b>
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                final long elapsed = context.stop();</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="fc">&nbsp;                if (elapsed &gt; periodInNanos) {</b>
    -<b class="fc">&nbsp;                    scheduledOverrun.inc();</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                percentOfPeriod.update((100L * elapsed) / periodInNanos);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedCallable&lt;T&gt; implements Callable&lt;T&gt; {
    -&nbsp;        private final Callable&lt;T&gt; task;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedCallable(Callable&lt;T&gt; task) {</b>
    -<b class="fc">&nbsp;            this.task = task;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public T call() throws Exception {
    -<b class="fc">&nbsp;            running.inc();</b>
    -<b class="fc">&nbsp;            final Timer.Context context = duration.time();</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                return task.call();</b>
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                running.dec();</b>
    -<b class="fc">&nbsp;                completed.mark();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index.html b/metrics-complete-report-initial-htmlReport/ns-10/index.html
    deleted file mode 100644
    index f2f721fd53..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-10/index.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 1af29f213e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 57018c86b6..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index f0985ecf19..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index b82cabd3d4..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 0613ca7bc0..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 827385ba8e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index e9e099a0e1..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 1f81925c97..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index c7f5ec379d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-10/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.3%
    -  </span>
    -  <span class="absValue">
    -    (108/121)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ShortNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">NameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">ContextNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-1.html
    deleted file mode 100644
    index 749fc492cf..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-1.html
    +++ /dev/null
    @@ -1,112 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > BasicSqlNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">BasicSqlNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public BasicSqlNameStrategy() {
    -<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.SQL_OBJECT);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-2.html
    deleted file mode 100644
    index be0ba350c0..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-2.html
    +++ /dev/null
    @@ -1,119 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ContextNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ContextNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ContextNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_GROUP} and {@link
    -&nbsp; * NameStrategies#STATEMENT_NAME} for group based display.
    -&nbsp; */
    -&nbsp;public class ContextNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public ContextNameStrategy() {
    -<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.CONTEXT_NAME,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-3.html
    deleted file mode 100644
    index ae6094756d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-3.html
    +++ /dev/null
    @@ -1,135 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DelegatingStatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DelegatingStatementNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
    -<b class="fc">&nbsp;    private final List&lt;StatementNameStrategy&gt; strategies = new ArrayList&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;    protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {</b>
    -<b class="fc">&nbsp;        registerStrategies(strategies);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void registerStrategies(StatementNameStrategy... strategies) {
    -<b class="fc">&nbsp;        this.strategies.addAll(Arrays.asList(strategies));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;        for (StatementNameStrategy strategy : strategies) {</b>
    -<b class="fc">&nbsp;            final String statementName = strategy.getStatementName(statementContext);</b>
    -<b class="fc">&nbsp;            if (statementName != null) {</b>
    -<b class="fc">&nbsp;                return statementName;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return NameStrategies.UNKNOWN_SQL;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-4.html
    deleted file mode 100644
    index 5afb820cc3..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-4.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NaiveNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NaiveNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Very simple strategy, can be used with any JDBI loader to build basic statistics.
    -&nbsp; */
    -&nbsp;public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public NaiveNameStrategy() {
    -<b class="nc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-5.html
    deleted file mode 100644
    index ce3031339e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-5.html
    +++ /dev/null
    @@ -1,422 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NameStrategies</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NameStrategies (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NameStrategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">NameStrategies$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$CheckEmptyStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$CheckRawStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$ContextClassStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (12/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$ContextNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$NaiveNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (6/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">NameStrategies$SqlObjectStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.4%
    -  </span>
    -  <span class="absValue">
    -    (68/72)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.ClasspathStatementLocator;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.regex.Matcher;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="fc">&nbsp;public final class NameStrategies {</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CHECK_EMPTY = new CheckEmptyStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CHECK_RAW = new CheckRawStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy SQL_OBJECT = new SqlObjectStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy NAIVE_NAME = new NaiveNameStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CONTEXT_CLASS = new ContextClassStrategy();</b>
    -<b class="fc">&nbsp;    public static final StatementNameStrategy CONTEXT_NAME = new ContextNameStrategy();</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * An empty SQL statement.
    -&nbsp;     */
    -&nbsp;    private static final String EMPTY_SQL = &quot;sql.empty&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Unknown SQL.
    -&nbsp;     */
    -&nbsp;    static final String UNKNOWN_SQL = &quot;sql.unknown&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric class.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_CLASS = &quot;_metric_class&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric group.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_GROUP = &quot;_metric_group&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric type.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_TYPE = &quot;_metric_type&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Context attribute name for the metric name.
    -&nbsp;     */
    -&nbsp;    public static final String STATEMENT_NAME = &quot;_metric_name&quot;;
    -&nbsp;
    -&nbsp;    private static String forRawSql(String rawSql) {
    -<b class="fc">&nbsp;        return name(&quot;sql&quot;, &quot;raw&quot;, rawSql);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class CheckEmptyStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private CheckEmptyStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (rawSql == null || rawSql.length() == 0) {</b>
    -<b class="fc">&nbsp;                return EMPTY_SQL;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class CheckRawStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private CheckRawStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (ClasspathStatementLocator.looksLikeSql(rawSql)) {</b>
    -<b class="fc">&nbsp;                return forRawSql(rawSql);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class NaiveNameStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private NaiveNameStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -&nbsp;            // Is it using the template loader?
    -<b class="fc">&nbsp;            final int colon = rawSql.indexOf(&#39;:&#39;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (colon == -1) {</b>
    -&nbsp;                // No package? Just return the name, JDBI figured out somehow on how to find the raw sql for this statement.
    -<b class="fc">&nbsp;                return forRawSql(rawSql);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            final String group = rawSql.substring(0, colon);</b>
    -<b class="nc">&nbsp;            final String name = rawSql.substring(colon + 1);</b>
    -<b class="nc">&nbsp;            return name(group, name);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class SqlObjectStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private SqlObjectStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Class&lt;?&gt; clazz = statementContext.getSqlObjectType();</b>
    -<b class="fc">&nbsp;            final Method method = statementContext.getSqlObjectMethod();</b>
    -<b class="fc">&nbsp;            if (clazz != null) {</b>
    -<b class="fc">&nbsp;                final String rawSql = statementContext.getRawSql();</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final String group = clazz.getPackage().getName();</b>
    -<b class="fc">&nbsp;                final String name = clazz.getSimpleName();</b>
    -<b class="fc">&nbsp;                final String type = method == null ? rawSql : method.getName();</b>
    -<b class="fc">&nbsp;                return name(group, name, type);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class ContextClassStrategy implements StatementNameStrategy {</b>
    -<b class="fc">&nbsp;        private ContextClassStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Object classObj = statementContext.getAttribute(STATEMENT_CLASS);</b>
    -<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (classObj == null || nameObj == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String className = (String) classObj;</b>
    -<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    -<b class="fc">&nbsp;            if (dotPos == -1) {</b>
    -<b class="nc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            return name(className.substring(0, dotPos),</b>
    -<b class="fc">&nbsp;                    className.substring(dotPos + 1),</b>
    -&nbsp;                    statementName);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static final class ContextNameStrategy implements StatementNameStrategy {</b>
    -&nbsp;        /**
    -&nbsp;         * File pattern to shorten the group name.
    -&nbsp;         */
    -<b class="fc">&nbsp;        private static final Pattern SHORT_PATTERN = Pattern.compile(&quot;^(.*?)/(.*?)(-sql)?\\.st(g)?$&quot;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private ContextNameStrategy() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Object groupObj = statementContext.getAttribute(STATEMENT_GROUP);</b>
    -<b class="fc">&nbsp;            final Object typeObj = statementContext.getAttribute(STATEMENT_TYPE);</b>
    -<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(STATEMENT_NAME);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (groupObj == null || nameObj == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String group = (String) groupObj;</b>
    -<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (typeObj == null) {</b>
    -<b class="fc">&nbsp;                final Matcher matcher = SHORT_PATTERN.matcher(group);</b>
    -<b class="fc">&nbsp;                if (matcher.matches()) {</b>
    -<b class="fc">&nbsp;                    final String groupName = matcher.group(1);</b>
    -<b class="fc">&nbsp;                    final String typeName = matcher.group(2);</b>
    -<b class="fc">&nbsp;                    return name(groupName, typeName, statementName);</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                return name(group, statementName, &quot;&quot;);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                final String type = (String) typeObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                return name(group, type, statementName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private NameStrategies() {
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-6.html
    deleted file mode 100644
    index f37df9d138..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-6.html
    +++ /dev/null
    @@ -1,239 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ShortNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ShortNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ShortNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">ShortNameStrategy$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ShortNameStrategy$ShortContextClassStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (13/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ShortNameStrategy$ShortSqlObjectStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (12/15)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (30/35)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Assembles all JDBI stats under a common prefix (passed in at constructor time). Stats are grouped
    -&nbsp; * by class name and method; a shortening strategy is applied to make the JMX output nicer.
    -&nbsp; */
    -<b class="fc">&nbsp;public final class ShortNameStrategy extends DelegatingStatementNameStrategy {</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;String, String&gt; shortClassNames = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final String baseJmxName;
    -&nbsp;
    -<b class="fc">&nbsp;    public ShortNameStrategy(String baseJmxName) {</b>
    -<b class="fc">&nbsp;        this.baseJmxName = baseJmxName;</b>
    -&nbsp;
    -&nbsp;        // Java does not allow super (..., new ShortContextClassStrategy(), new ShortSqlObjectStrategy(), ...);
    -&nbsp;        // ==&gt; No enclosing instance of type &lt;xxx&gt; is available due to some intermediate constructor invocation. Lame.
    -<b class="fc">&nbsp;        registerStrategies(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                new ShortContextClassStrategy(),
    -&nbsp;                new ShortSqlObjectStrategy(),
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private final class ShortContextClassStrategy implements StatementNameStrategy {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Object classObj = statementContext.getAttribute(NameStrategies.STATEMENT_CLASS);</b>
    -<b class="fc">&nbsp;            final Object nameObj = statementContext.getAttribute(NameStrategies.STATEMENT_NAME);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (classObj == null || nameObj == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String className = (String) classObj;</b>
    -<b class="fc">&nbsp;            final String statementName = (String) nameObj;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    -<b class="fc">&nbsp;            if (dotPos == -1) {</b>
    -<b class="nc">&nbsp;                return null;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final String shortName = className.substring(dotPos + 1);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final String oldClassName = shortClassNames.putIfAbsent(shortName, className);</b>
    -<b class="fc">&nbsp;            if (oldClassName == null || oldClassName.equals(className)) {</b>
    -<b class="fc">&nbsp;                return name(baseJmxName, shortName, statementName);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                return name(baseJmxName, className, statementName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private final class ShortSqlObjectStrategy implements StatementNameStrategy {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final Class&lt;?&gt; clazz = statementContext.getSqlObjectType();</b>
    -<b class="fc">&nbsp;            final Method method = statementContext.getSqlObjectMethod();</b>
    -<b class="fc">&nbsp;            if (clazz != null &amp;&amp; method != null) {</b>
    -<b class="fc">&nbsp;                final String className = clazz.getName();</b>
    -<b class="fc">&nbsp;                final String statementName = method.getName();</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final int dotPos = className.lastIndexOf(&#39;.&#39;);</b>
    -<b class="fc">&nbsp;                if (dotPos == -1) {</b>
    -<b class="nc">&nbsp;                    return null;</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                final String shortName = className.substring(dotPos + 1);</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final String oldClassName = shortClassNames.putIfAbsent(shortName, className);</b>
    -<b class="fc">&nbsp;                if (oldClassName == null || oldClassName.equals(className)) {</b>
    -<b class="fc">&nbsp;                    return name(baseJmxName, shortName, statementName);</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    return name(baseJmxName, className, statementName);</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-7.html b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-7.html
    deleted file mode 100644
    index d5180930ca..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-7.html
    +++ /dev/null
    @@ -1,124 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SmartNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SmartNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Adds statistics for JDBI queries that set the {@link NameStrategies#STATEMENT_CLASS} and {@link
    -&nbsp; * NameStrategies#STATEMENT_NAME} for class based display or {@link NameStrategies#STATEMENT_GROUP}
    -&nbsp; * and {@link NameStrategies#STATEMENT_NAME} for group based display.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Also knows how to deal with SQL Object statements.
    -&nbsp; */
    -&nbsp;public class SmartNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;    public SmartNameStrategy() {
    -<b class="fc">&nbsp;        super(NameStrategies.CHECK_EMPTY,</b>
    -&nbsp;                NameStrategies.CONTEXT_CLASS,
    -&nbsp;                NameStrategies.CONTEXT_NAME,
    -&nbsp;                NameStrategies.SQL_OBJECT,
    -&nbsp;                NameStrategies.CHECK_RAW,
    -&nbsp;                NameStrategies.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-8.html b/metrics-complete-report-initial-htmlReport/ns-10/sources/source-8.html
    deleted file mode 100644
    index 622f14705b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-10/sources/source-8.html
    +++ /dev/null
    @@ -1,78 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > StatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">StatementNameStrategy</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi.strategies;
    -&nbsp;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Interface for strategies to statement contexts to metric names.
    -&nbsp; */
    -&nbsp;public interface StatementNameStrategy {
    -&nbsp;    String getStatementName(StatementContext statementContext);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index.html b/metrics-complete-report-initial-htmlReport/ns-11/index.html
    deleted file mode 100644
    index 6dacf04962..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-11/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 2222802bd1..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 9837073cf8..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 67fe4ab5af..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index b01e61e331..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 12a3b27a25..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 3bfba26f8d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index c622818a87..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 88ba6b32c9..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 52a02910d1..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-11/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (6/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.2%
    -  </span>
    -  <span class="absValue">
    -    (15/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedSqlLogger</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-11/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-11/sources/source-1.html
    deleted file mode 100644
    index 265877a59e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-11/sources/source-1.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedSqlLogger</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedSqlLogger (com.codahale.metrics.jdbi3)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedSqlLogger</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80%
    -  </span>
    -  <span class="absValue">
    -    (4/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
    -&nbsp;import org.jdbi.v3.core.statement.SqlLogger;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;import java.sql.SQLException;
    -&nbsp;import java.time.temporal.ChronoUnit;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link SqlLogger} implementation for JDBI which uses the SQL objects&#39; class names and
    -&nbsp; * method names for nanosecond-precision timers.
    -&nbsp; */
    -&nbsp;public class InstrumentedSqlLogger implements SqlLogger {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final StatementNameStrategy statementNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedSqlLogger(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedSqlLogger(MetricRegistry registry,
    -<b class="fc">&nbsp;                                 StatementNameStrategy statementNameStrategy) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void logAfterExecution(StatementContext context) {
    -<b class="fc">&nbsp;        log(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void logException(StatementContext context, SQLException ex) {
    -<b class="fc">&nbsp;        log(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void log(StatementContext context) {
    -<b class="fc">&nbsp;        String statementName = statementNameStrategy.getStatementName(context);</b>
    -<b class="fc">&nbsp;        if (statementName != null) {</b>
    -<b class="fc">&nbsp;            final long elapsed = context.getElapsedTime(ChronoUnit.NANOS);</b>
    -<b class="fc">&nbsp;            registry.timer(statementName).update(elapsed, TimeUnit.NANOSECONDS);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-11/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-11/sources/source-2.html
    deleted file mode 100644
    index 1e2ad23671..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-11/sources/source-2.html
    +++ /dev/null
    @@ -1,145 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedTimingCollector</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi3)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedTimingCollector</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.SmartNameStrategy;
    -&nbsp;import com.codahale.metrics.jdbi3.strategies.StatementNameStrategy;
    -&nbsp;import org.jdbi.v3.core.statement.SqlLogger;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;import org.jdbi.v3.core.statement.TimingCollector;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link TimingCollector} implementation for JDBI which uses the SQL objects&#39; class names and
    -&nbsp; * method names for millisecond-precision timers.
    -&nbsp; *
    -&nbsp; * @deprecated Use {@link InstrumentedSqlLogger} and {@link org.jdbi.v3.core.Jdbi#setSqlLogger(SqlLogger)} instead.
    -&nbsp; */
    -&nbsp;@Deprecated
    -&nbsp;public class InstrumentedTimingCollector implements TimingCollector {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final StatementNameStrategy statementNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry,
    -<b class="fc">&nbsp;                                       StatementNameStrategy statementNameStrategy) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void collect(long elapsedTime, StatementContext ctx) {
    -<b class="fc">&nbsp;        String statementName = statementNameStrategy.getStatementName(ctx);</b>
    -<b class="fc">&nbsp;        if (statementName != null) {</b>
    -<b class="fc">&nbsp;            registry.timer(statementName).update(elapsedTime, TimeUnit.NANOSECONDS);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index.html b/metrics-complete-report-initial-htmlReport/ns-12/index.html
    deleted file mode 100644
    index ffd2d9c285..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-12/index.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 41845ad3a4..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index a789c173cb..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 7c9a302efc..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index dcdd04f56e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_LINE.html
    deleted file mode 100644
    index a82a1e5a5c..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 862e414ea0..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 13931c1145..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index ca3561d906..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 6bcdf45702..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-12/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi3.strategies</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi3.strategies</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi3.strategies</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi3.strategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (45/47)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">TimedAnnotationNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SmartNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">NaiveNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">DelegatingStatementNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">DefaultNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BasicSqlNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-1.html
    deleted file mode 100644
    index 819264e935..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-1.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > BasicSqlNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: BasicSqlNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">BasicSqlNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Collects metrics by respective SQLObject methods.
    -&nbsp; */
    -&nbsp;public class BasicSqlNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;
    -&nbsp;    public BasicSqlNameStrategy() {
    -<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    -&nbsp;                DefaultNameStrategy.SQL_OBJECT);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-2.html
    deleted file mode 100644
    index 868068b510..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-2.html
    +++ /dev/null
    @@ -1,246 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DefaultNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DefaultNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DefaultNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">DefaultNameStrategy$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.jdbi.v3.core.extension.ExtensionMethod;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Default strategies which build a basis of more complex strategies
    -&nbsp; */
    -<b class="fc">&nbsp;public enum DefaultNameStrategy implements StatementNameStrategy {</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * If no SQL in the context, returns `sql.empty`, otherwise falls through
    -&nbsp;     */
    -<b class="fc">&nbsp;    CHECK_EMPTY {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            final String rawSql = statementContext.getRawSql();</b>
    -<b class="fc">&nbsp;            return rawSql == null || rawSql.isEmpty() ? &quot;sql.empty&quot; : null;</b>
    -&nbsp;        }
    -&nbsp;    },
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * If there is an SQL object attached to the context, returns the name package,
    -&nbsp;     * the class and the method on which SQL is declared. If not SQL object is attached,
    -&nbsp;     * falls through
    -&nbsp;     */
    -<b class="fc">&nbsp;    SQL_OBJECT {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            ExtensionMethod extensionMethod = statementContext.getExtensionMethod();</b>
    -<b class="fc">&nbsp;            if (extensionMethod != null) {</b>
    -<b class="fc">&nbsp;                return MetricRegistry.name(extensionMethod.getType(), extensionMethod.getMethod().getName());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    },
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a raw SQL in the context (even if it&#39;s not exist)
    -&nbsp;     */
    -<b class="fc">&nbsp;    NAIVE_NAME {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            return statementContext.getRawSql();</b>
    -&nbsp;        }
    -&nbsp;    },
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the `sql.raw` constant
    -&nbsp;     */
    -<b class="fc">&nbsp;    CONSTANT_SQL_RAW {</b>
    -&nbsp;        @Override
    -&nbsp;        public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;            return &quot;sql.raw&quot;;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-3.html
    deleted file mode 100644
    index 397fdaf88d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-3.html
    +++ /dev/null
    @@ -1,136 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DelegatingStatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DelegatingStatementNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DelegatingStatementNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;public abstract class DelegatingStatementNameStrategy implements StatementNameStrategy {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Unknown SQL.
    -&nbsp;     */
    -&nbsp;    private static final String UNKNOWN_SQL = &quot;sql.unknown&quot;;
    -&nbsp;
    -&nbsp;    private final List&lt;StatementNameStrategy&gt; strategies;
    -&nbsp;
    -<b class="fc">&nbsp;    protected DelegatingStatementNameStrategy(StatementNameStrategy... strategies) {</b>
    -<b class="fc">&nbsp;        this.strategies = Arrays.asList(strategies);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;        for (StatementNameStrategy strategy : strategies) {</b>
    -<b class="fc">&nbsp;            final String statementName = strategy.getStatementName(statementContext);</b>
    -<b class="fc">&nbsp;            if (statementName != null) {</b>
    -<b class="fc">&nbsp;                return statementName;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return UNKNOWN_SQL;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-4.html
    deleted file mode 100644
    index 2cd2f7de26..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-4.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > NaiveNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: NaiveNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">NaiveNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Very simple strategy, can be used with any JDBI loader to build basic statistics.
    -&nbsp; */
    -&nbsp;public class NaiveNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;
    -&nbsp;    public NaiveNameStrategy() {
    -<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    -&nbsp;              DefaultNameStrategy.NAIVE_NAME);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-5.html
    deleted file mode 100644
    index 3cb90a5754..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-5.html
    +++ /dev/null
    @@ -1,117 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SmartNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SmartNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SmartNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Uses a {@link BasicSqlNameStrategy} and fallbacks to {@link DefaultNameStrategy#CONSTANT_SQL_RAW}
    -&nbsp; */
    -&nbsp;public class SmartNameStrategy extends DelegatingStatementNameStrategy {
    -&nbsp;
    -&nbsp;    public SmartNameStrategy() {
    -<b class="fc">&nbsp;        super(DefaultNameStrategy.CHECK_EMPTY,</b>
    -&nbsp;                DefaultNameStrategy.SQL_OBJECT,
    -&nbsp;                DefaultNameStrategy.CONSTANT_SQL_RAW);
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-6.html
    deleted file mode 100644
    index f634f47461..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-6.html
    +++ /dev/null
    @@ -1,151 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > TimedAnnotationNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: TimedAnnotationNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">TimedAnnotationNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import org.jdbi.v3.core.extension.ExtensionMethod;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Takes into account the {@link Timed} annotation on extension methods
    -&nbsp; */
    -<b class="fc">&nbsp;public class TimedAnnotationNameStrategy implements StatementNameStrategy {</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getStatementName(StatementContext statementContext) {
    -<b class="fc">&nbsp;        final ExtensionMethod extensionMethod = statementContext.getExtensionMethod();</b>
    -<b class="fc">&nbsp;        if (extensionMethod == null) {</b>
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Class&lt;?&gt; clazz = extensionMethod.getType();</b>
    -<b class="fc">&nbsp;        final Timed classTimed = clazz.getAnnotation(Timed.class);</b>
    -<b class="fc">&nbsp;        final Method method = extensionMethod.getMethod();</b>
    -<b class="fc">&nbsp;        final Timed methodTimed = method.getAnnotation(Timed.class);</b>
    -&nbsp;
    -&nbsp;        // If the method is timed, figure out the name
    -<b class="fc">&nbsp;        if (methodTimed != null) {</b>
    -<b class="fc">&nbsp;            String methodName = methodTimed.name().isEmpty() ? method.getName() : methodTimed.name();</b>
    -<b class="fc">&nbsp;            if (methodTimed.absolute()) {</b>
    -<b class="fc">&nbsp;                return methodName;</b>
    -&nbsp;            } else {
    -&nbsp;                // We need to check if the class has a custom timer name
    -<b class="fc">&nbsp;                return classTimed == null || classTimed.name().isEmpty() ?</b>
    -<b class="fc">&nbsp;                        MetricRegistry.name(clazz, methodName) :</b>
    -<b class="fc">&nbsp;                        MetricRegistry.name(classTimed.name(), methodName);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        } else if (classTimed != null) {</b>
    -&nbsp;            // Maybe the class is timed?
    -<b class="fc">&nbsp;            return classTimed.name().isEmpty() ? MetricRegistry.name(clazz, method.getName()) :</b>
    -<b class="nc">&nbsp;                    MetricRegistry.name(classTimed.name(), method.getName());</b>
    -&nbsp;        } else {
    -&nbsp;            // No timers neither on the method or the class
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-7.html b/metrics-complete-report-initial-htmlReport/ns-12/sources/source-7.html
    deleted file mode 100644
    index c39ae49652..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-12/sources/source-7.html
    +++ /dev/null
    @@ -1,89 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > StatementNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi3.strategies</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: StatementNameStrategy (com.codahale.metrics.jdbi3.strategies)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">StatementNameStrategy$MockitoMock$Fu5CcrDH</td>
    -  </tr>
    -  <tr>
    -    <td class="name">StatementNameStrategy$MockitoMock$Fu5CcrDH$auxiliary$A1skh5bR</td>
    -  </tr>
    -  <tr>
    -    <td class="name">StatementNameStrategy$MockitoMock$Fu5CcrDH$auxiliary$dXLqCYdg</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi3.strategies;
    -&nbsp;
    -&nbsp;import org.jdbi.v3.core.statement.StatementContext;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Interface for strategies to statement contexts to metric names.
    -&nbsp; */
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface StatementNameStrategy {
    -&nbsp;
    -&nbsp;    String getStatementName(StatementContext statementContext);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index.html b/metrics-complete-report-initial-htmlReport/ns-13/index.html
    deleted file mode 100644
    index 501547a054..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-13/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 5011b2207d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 173986b6cc..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index ae6af64806..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 9c2f5bb215..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_LINE.html
    deleted file mode 100644
    index b93dd6899f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 8a2a04d793..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index ac26d8ec76..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 4fdb7fde50..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index df6f7ff8eb..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-13/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-13/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-13/sources/source-1.html
    deleted file mode 100644
    index 0485f574fb..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-13/sources/source-1.html
    +++ /dev/null
    @@ -1,831 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey2</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey2)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.1%
    -  </span>
    -  <span class="absValue">
    -    (82/89)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.2%
    -  </span>
    -  <span class="absValue">
    -    (16/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (28/28)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey2;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    -&nbsp;import com.codahale.metrics.annotation.Metered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    -&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    -&nbsp;import org.glassfish.jersey.server.model.Resource;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    -&nbsp;
    -&nbsp;import javax.ws.rs.core.Configuration;
    -&nbsp;import javax.ws.rs.ext.Provider;
    -&nbsp;import java.lang.annotation.Annotation;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An application event listener that listens for Jersey application initialization to
    -&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    -&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    -&nbsp; * request events indicating that the method is about to be invoked, or just got done
    -&nbsp; * being invoked.
    -&nbsp; */
    -&nbsp;@Provider
    -&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    -&nbsp;    private static final String TOTAL = &quot;total&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metrics;
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Construct an application event listener using the given metrics registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    -&nbsp;     *
    -&nbsp;     * @param metrics a {@link MetricRegistry}
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    -<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters) {
    -<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters,
    -<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.metrics = metrics;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metric for a method annotated with the
    -&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    -&nbsp;     * and a cause for which the meter should be updated.
    -&nbsp;     */
    -&nbsp;    private static class ExceptionMeterMetric {
    -&nbsp;        public final Meter meter;
    -&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    -&nbsp;
    -&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    -&nbsp;                                    final ResourceMethod method,
    -<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    -<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    -<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    -<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    -<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metrics for a method annotated with the
    -&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    -&nbsp;     * different response codes
    -&nbsp;     */
    -&nbsp;    private static class ResponseMeterMetric {
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;        private final List&lt;Meter&gt; meters;
    -&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;        private final MetricRegistry metricRegistry;
    -&nbsp;        private final String metricName;
    -&nbsp;        private final ResponseMeteredLevel level;
    -&nbsp;
    -&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    -&nbsp;                                   final ResourceMethod method,
    -<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    -<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    -<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    -<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    -<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                    registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="fc">&nbsp;            )) : Collections.emptyList();</b>
    -<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public void mark(int statusCode) {
    -<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;            return responseCodeMeters</b>
    -<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    -&nbsp;
    -&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    -&nbsp;        private final Clock clock;
    -&nbsp;        private final long start;
    -&nbsp;        private Timer.Context resourceMethodStartContext;
    -&nbsp;        private Timer.Context requestMatchedContext;
    -&nbsp;        private Timer.Context responseFiltersStartContext;
    -&nbsp;
    -<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    -<b class="fc">&nbsp;            this.timers = timers;</b>
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            start = clock.getTick();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            switch (event.getType()) {</b>
    -&nbsp;                case RESOURCE_METHOD_START:
    -<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case REQUEST_MATCHED:
    -<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESP_FILTERS_START:
    -<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESOURCE_METHOD_FINISHED:
    -<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    -<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case REQUEST_FILTERED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    -<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case RESP_FILTERS_FINISHED:
    -<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case FINISHED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;                        if (timer != null) {</b>
    -<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    -&nbsp;                        }
    -<b class="fc">&nbsp;                    }</b>
    -&nbsp;                    break;
    -&nbsp;                default:
    -&nbsp;                    break;
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(RequestEvent event) {
    -<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer.Context context(RequestEvent event) {
    -<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    -&nbsp;
    -<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    -<b class="fc">&nbsp;            this.meters = meters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    -<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    -<b class="fc">&nbsp;                if (meter != null) {</b>
    -<b class="fc">&nbsp;                    meter.mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    -<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    -<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    -<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    -<b class="fc">&nbsp;                        metric.meter.mark();</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    -<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    -<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(500);</b>
    -<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    -&nbsp;        private final RequestEventListener[] listeners;
    -&nbsp;
    -<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    -<b class="fc">&nbsp;            this.listeners = listeners;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(final RequestEvent event) {
    -<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    -<b class="fc">&nbsp;                listener.onEvent(event);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onEvent(ApplicationEvent event) {
    -<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    -<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        return resourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    -<b class="fc">&nbsp;        return subResourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    -<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    -<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    -<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    -<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    -<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    -<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    -<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    -<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    -<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    -<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    -<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    -<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    -&nbsp;                new TimerRequestEventListener(timers, clock),
    -&nbsp;                new MeterRequestEventListener(meters),
    -&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    -&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    -&nbsp;
    -<b class="fc">&nbsp;        return listener;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    -<b class="fc">&nbsp;        T annotation = null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    -<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (annotation != null) {</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return annotation;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    -<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    -<b class="fc">&nbsp;        if (trackFilters) {</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Timed timed,
    -&nbsp;                              final String... suffixes) {
    -<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    -<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Metered metered) {
    -<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    -<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    -&nbsp;                                       final String... suffixes) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;        final String metricName;
    -<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    -<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    -&nbsp;
    -&nbsp;        private final RequestEvent.Type type;
    -&nbsp;        private final Method method;
    -&nbsp;
    -<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    -<b class="fc">&nbsp;            this.type = type;</b>
    -<b class="fc">&nbsp;            this.method = method;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod finished(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="fc">&nbsp;            if (this == o) {</b>
    -<b class="nc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (type != that.type) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return method.equals(that.method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="fc">&nbsp;            int result = type.hashCode();</b>
    -<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    -<b class="fc">&nbsp;            return result;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-13/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-13/sources/source-2.html
    deleted file mode 100644
    index 489a9cbf74..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-13/sources/source-2.html
    +++ /dev/null
    @@ -1,201 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsFeature</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey2</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey2)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsFeature</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey2;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import javax.ws.rs.core.Feature;
    -&nbsp;import javax.ws.rs.core.FeatureContext;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp; * for recording request events.
    -&nbsp; */
    -&nbsp;public class MetricsFeature implements Feature {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    -<b class="fc">&nbsp;        this(registry, clock, false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    -<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MetricsFeature(String registryName) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A call-back method called when the feature is to be enabled in a given
    -&nbsp;     * runtime configuration scope.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    -&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    -&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    -&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    -&nbsp;     * {@link javax.ws.rs.core.Configuration#isEnabled(javax.ws.rs.core.Feature)} or
    -&nbsp;     * {@link javax.ws.rs.core.Configuration#isEnabled(Class)} method
    -&nbsp;     * would return {@code false}.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     *
    -&nbsp;     * @param context configurable context in which the feature should be enabled.
    -&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    -&nbsp;     * otherwise.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean configure(FeatureContext context) {
    -<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index.html b/metrics-complete-report-initial-htmlReport/ns-14/index.html
    deleted file mode 100644
    index 8d0c2e3133..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-14/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index b08a2b6c80..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 2f12673bda..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 98cd195f28..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 51c0d3c65c..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_LINE.html
    deleted file mode 100644
    index f55cd4badd..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 7181335420..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 39757f9071..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index ba02ce8c8a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index e2d702939d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-14/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jersey3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jersey3</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jersey3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jersey3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.8%
    -  </span>
    -  <span class="absValue">
    -    (201/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-14/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-14/sources/source-1.html
    deleted file mode 100644
    index a5c0c815a3..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-14/sources/source-1.html
    +++ /dev/null
    @@ -1,832 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (com.codahale.metrics.jersey3)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.1%
    -  </span>
    -  <span class="absValue">
    -    (82/89)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.2%
    -  </span>
    -  <span class="absValue">
    -    (16/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (12/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (28/28)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95%
    -  </span>
    -  <span class="absValue">
    -    (190/200)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey3;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    -&nbsp;import com.codahale.metrics.annotation.Metered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import jakarta.ws.rs.core.Configuration;
    -&nbsp;import jakarta.ws.rs.ext.Provider;
    -&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    -&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    -&nbsp;import org.glassfish.jersey.server.model.Resource;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Annotation;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An application event listener that listens for Jersey application initialization to
    -&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    -&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    -&nbsp; * request events indicating that the method is about to be invoked, or just got done
    -&nbsp; * being invoked.
    -&nbsp; */
    -&nbsp;@Provider
    -&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    -&nbsp;    private static final String TOTAL = &quot;total&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metrics;
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Construct an application event listener using the given metrics registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    -&nbsp;     *
    -&nbsp;     * @param metrics a {@link MetricRegistry}
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    -<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters) {
    -<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters,
    -<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.metrics = metrics;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metric for a method annotated with the
    -&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    -&nbsp;     * and a cause for which the meter should be updated.
    -&nbsp;     */
    -&nbsp;    private static class ExceptionMeterMetric {
    -&nbsp;        public final Meter meter;
    -&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    -&nbsp;
    -&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    -&nbsp;                                    final ResourceMethod method,
    -<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    -<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    -<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    -<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    -<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metrics for a method annotated with the
    -&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    -&nbsp;     * different response codes
    -&nbsp;     */
    -&nbsp;    private static class ResponseMeterMetric {
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;        private final List&lt;Meter&gt; meters;
    -&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;        private final MetricRegistry metricRegistry;
    -&nbsp;        private final String metricName;
    -&nbsp;        private final ResponseMeteredLevel level;
    -&nbsp;
    -&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    -&nbsp;                                   final ResourceMethod method,
    -<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    -<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    -<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    -<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    -<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="fc">&nbsp;                    )) : Collections.emptyList();</b>
    -<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public void mark(int statusCode) {
    -<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;            return responseCodeMeters</b>
    -<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    -&nbsp;
    -&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    -&nbsp;        private final Clock clock;
    -&nbsp;        private final long start;
    -&nbsp;        private Timer.Context resourceMethodStartContext;
    -&nbsp;        private Timer.Context requestMatchedContext;
    -&nbsp;        private Timer.Context responseFiltersStartContext;
    -&nbsp;
    -<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    -<b class="fc">&nbsp;            this.timers = timers;</b>
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            start = clock.getTick();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            switch (event.getType()) {</b>
    -&nbsp;                case RESOURCE_METHOD_START:
    -<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case REQUEST_MATCHED:
    -<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESP_FILTERS_START:
    -<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESOURCE_METHOD_FINISHED:
    -<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    -<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case REQUEST_FILTERED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    -<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case RESP_FILTERS_FINISHED:
    -<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case FINISHED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;                        if (timer != null) {</b>
    -<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    -&nbsp;                        }
    -<b class="fc">&nbsp;                    }</b>
    -&nbsp;                    break;
    -&nbsp;                default:
    -&nbsp;                    break;
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(RequestEvent event) {
    -<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer.Context context(RequestEvent event) {
    -<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    -&nbsp;
    -<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    -<b class="fc">&nbsp;            this.meters = meters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    -<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    -<b class="fc">&nbsp;                if (meter != null) {</b>
    -<b class="fc">&nbsp;                    meter.mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    -<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    -<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    -<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    -<b class="fc">&nbsp;                        metric.meter.mark();</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    -<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    -<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(500);</b>
    -<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    -&nbsp;        private final RequestEventListener[] listeners;
    -&nbsp;
    -<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    -<b class="fc">&nbsp;            this.listeners = listeners;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(final RequestEvent event) {
    -<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    -<b class="fc">&nbsp;                listener.onEvent(event);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onEvent(ApplicationEvent event) {
    -<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    -<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        return resourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    -<b class="fc">&nbsp;        return subResourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    -<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    -<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    -<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    -<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    -<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    -<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    -<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    -<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    -<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    -<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    -<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    -<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    -&nbsp;                new TimerRequestEventListener(timers, clock),
    -&nbsp;                new MeterRequestEventListener(meters),
    -&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    -&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    -&nbsp;
    -<b class="fc">&nbsp;        return listener;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    -<b class="fc">&nbsp;        T annotation = null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    -<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (annotation != null) {</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return annotation;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    -<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    -<b class="fc">&nbsp;        if (trackFilters) {</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Timed timed,
    -&nbsp;                              final String... suffixes) {
    -<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    -<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Metered metered) {
    -<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    -<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    -&nbsp;                                       final String... suffixes) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;        final String metricName;
    -<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    -<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    -&nbsp;
    -&nbsp;        private final RequestEvent.Type type;
    -&nbsp;        private final Method method;
    -&nbsp;
    -<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    -<b class="fc">&nbsp;            this.type = type;</b>
    -<b class="fc">&nbsp;            this.method = method;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod finished(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="fc">&nbsp;            if (this == o) {</b>
    -<b class="nc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (type != that.type) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return method.equals(that.method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="fc">&nbsp;            int result = type.hashCode();</b>
    -<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    -<b class="fc">&nbsp;            return result;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-14/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-14/sources/source-2.html
    deleted file mode 100644
    index 987b3fbcad..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-14/sources/source-2.html
    +++ /dev/null
    @@ -1,201 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsFeature</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jersey3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsFeature (com.codahale.metrics.jersey3)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsFeature</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jersey3;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import jakarta.ws.rs.core.Feature;
    -&nbsp;import jakarta.ws.rs.core.FeatureContext;
    -&nbsp;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp; * for recording request events.
    -&nbsp; */
    -&nbsp;public class MetricsFeature implements Feature {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    -<b class="fc">&nbsp;        this(registry, clock, false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    -<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MetricsFeature(String registryName) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A call-back method called when the feature is to be enabled in a given
    -&nbsp;     * runtime configuration scope.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    -&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    -&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    -&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
    -&nbsp;     * would return {@code false}.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     *
    -&nbsp;     * @param context configurable context in which the feature should be enabled.
    -&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    -&nbsp;     * otherwise.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean configure(FeatureContext context) {
    -<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index.html b/metrics-complete-report-initial-htmlReport/ns-15/index.html
    deleted file mode 100644
    index 8b25c6af87..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-15/index.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 442ffefe43..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index f91995803d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 7f1c35cd50..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index f094740882..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 1a555a5661..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index c7239d667b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 93b38c2414..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 2df814d10a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 197285307f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-15/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jetty9</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jetty9</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jetty9</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jetty9</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.9%
    -  </span>
    -  <span class="absValue">
    -    (73/116)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.1%
    -  </span>
    -  <span class="absValue">
    -    (275/366)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-15/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-15/sources/source-1.html
    deleted file mode 100644
    index db602ae8f6..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-15/sources/source-1.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (com.codahale.metrics.jetty9)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    -&nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-15/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-15/sources/source-2.html
    deleted file mode 100644
    index ba9617decb..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-15/sources/source-2.html
    +++ /dev/null
    @@ -1,734 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHandler (com.codahale.metrics.jetty9)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (115/135)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.4%
    -  </span>
    -  <span class="absValue">
    -    (123/170)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    -&nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    -&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    private final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private List&lt;Meter&gt; responses;
    -&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    private Timer getRequests;
    -&nbsp;    private Timer postRequests;
    -&nbsp;    private Timer headRequests;
    -&nbsp;    private Timer putRequests;
    -&nbsp;    private Timer deleteRequests;
    -&nbsp;    private Timer optionsRequests;
    -&nbsp;    private Timer traceRequests;
    -&nbsp;    private Timer connectRequests;
    -&nbsp;    private Timer moveRequests;
    -&nbsp;    private Timer otherRequests;
    -&nbsp;
    -&nbsp;    private AsyncListener listener;
    -&nbsp;
    -&nbsp;    private HttpChannelState.State DISPATCHED_HACK;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            DISPATCHED_HACK = HttpChannelState.State.valueOf(&quot;HANDLING&quot;);</b>
    -<b class="nc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    -<b class="nc">&nbsp;            DISPATCHED_HACK = HttpChannelState.State.valueOf(&quot;DISPATCHED&quot;);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;            ));
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void handle(String path,
    -&nbsp;                       Request request,
    -&nbsp;                       HttpServletRequest httpRequest,
    -&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == DISPATCHED_HACK) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-15/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-15/sources/source-3.html
    deleted file mode 100644
    index d01a7ca180..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-15/sources/source-3.html
    +++ /dev/null
    @@ -1,708 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (com.codahale.metrics.jetty9)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpChannelListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (20/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.6%
    -  </span>
    -  <span class="absValue">
    -    (90/109)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    -&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    -&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    -&nbsp; *
    -&nbsp; * @since TBD
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    -&nbsp;    implements Listener
    -&nbsp;{
    -<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private final Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private final Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private final Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private final Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private final Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private final Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private final Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private final List&lt;Meter&gt; responses;
    -&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final Timer getRequests;
    -&nbsp;    private final Timer postRequests;
    -&nbsp;    private final Timer headRequests;
    -&nbsp;    private final Timer putRequests;
    -&nbsp;    private final Timer deleteRequests;
    -&nbsp;    private final Timer optionsRequests;
    -&nbsp;    private final Timer traceRequests;
    -&nbsp;    private final Timer connectRequests;
    -&nbsp;    private final Timer moveRequests;
    -&nbsp;    private final Timer otherRequests;
    -&nbsp;
    -&nbsp;    private final AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    -<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    -<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                    requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onBeforeDispatch(final Request request) {
    -<b class="fc">&nbsp;        before(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onAfterDispatch(final Request request) {
    -<b class="fc">&nbsp;        after(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContentEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestTrailers(final Request request) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseCommit(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onComplete(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void before(final Request request) {
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            activeSuspended.dec();</b>
    -<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void after(final Request request) {
    -<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    -<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.dec();</b>
    -<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    -<b class="fc">&nbsp;            activeSuspended.inc();</b>
    -<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    -&nbsp;        }
    -&nbsp;        // else onCompletion will handle it.
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="fc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-15/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-15/sources/source-4.html
    deleted file mode 100644
    index d19766740b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-15/sources/source-4.html
    +++ /dev/null
    @@ -1,286 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jetty9</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (com.codahale.metrics.jetty9)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (10/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (24/26)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (27/33)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jetty9;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    -&nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, queue);</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index.html b/metrics-complete-report-initial-htmlReport/ns-16/index.html
    deleted file mode 100644
    index 1467f326f6..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-16/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 54f6846493..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 318f29e095..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index ed9629618a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index a641c5db4c..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 7fee6889dc..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 63a87bfabd..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 5a8e7b83c1..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index bf5347bcf1..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 68c28738dd..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-16/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jmx</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jmx</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jmx</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jmx</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (78/90)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (168/236)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">JmxReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">DefaultObjectNameFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-16/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-16/sources/source-1.html
    deleted file mode 100644
    index 68b3a8610d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-16/sources/source-1.html
    +++ /dev/null
    @@ -1,173 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > DefaultObjectNameFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jmx</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: DefaultObjectNameFactory (com.codahale.metrics.jmx)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">DefaultObjectNameFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.8%
    -  </span>
    -  <span class="absValue">
    -    (17/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    -&nbsp;
    -&nbsp;import java.util.Hashtable;
    -&nbsp;
    -&nbsp;import javax.management.MalformedObjectNameException;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -<b class="fc">&nbsp;public class DefaultObjectNameFactory implements ObjectNameFactory {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private static final char[] QUOTABLE_CHARS = new char[] {&#39;,&#39;, &#39;=&#39;, &#39;:&#39;, &#39;&quot;&#39;};</b>
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ObjectName createName(String type, String domain, String name) {
    -&nbsp;        try {
    -&nbsp;            ObjectName objectName;
    -<b class="fc">&nbsp;            Hashtable&lt;String, String&gt; properties = new Hashtable&lt;&gt;();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            properties.put(&quot;name&quot;, name);</b>
    -<b class="fc">&nbsp;            properties.put(&quot;type&quot;, type);</b>
    -<b class="fc">&nbsp;            objectName = new ObjectName(domain, properties);</b>
    -&nbsp;
    -&nbsp;            /*
    -&nbsp;             * The only way we can find out if we need to quote the properties is by
    -&nbsp;             * checking an ObjectName that we&#39;ve constructed.
    -&nbsp;             */
    -<b class="fc">&nbsp;            if (objectName.isDomainPattern()) {</b>
    -<b class="nc">&nbsp;                domain = ObjectName.quote(domain);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (objectName.isPropertyValuePattern(&quot;name&quot;) || shouldQuote(objectName.getKeyProperty(&quot;name&quot;))) {</b>
    -<b class="fc">&nbsp;                properties.put(&quot;name&quot;, ObjectName.quote(name));</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (objectName.isPropertyValuePattern(&quot;type&quot;) || shouldQuote(objectName.getKeyProperty(&quot;type&quot;))) {</b>
    -<b class="nc">&nbsp;                properties.put(&quot;type&quot;, ObjectName.quote(type));</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            objectName = new ObjectName(domain, properties);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            return objectName;</b>
    -<b class="nc">&nbsp;        } catch (MalformedObjectNameException e) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                return new ObjectName(domain, &quot;name&quot;, ObjectName.quote(name));</b>
    -<b class="nc">&nbsp;            } catch (MalformedObjectNameException e1) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register {} {}&quot;, type, name, e1);</b>
    -<b class="nc">&nbsp;                throw new RuntimeException(e1);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Determines whether the value requires quoting.
    -&nbsp;     * According to the {@link ObjectName} documentation, values can be quoted or unquoted. Unquoted
    -&nbsp;     * values may not contain any of the characters comma, equals, colon, or quote.
    -&nbsp;     *
    -&nbsp;     * @param value a value to test
    -&nbsp;     * @return true when it requires quoting, false otherwise
    -&nbsp;     */
    -&nbsp;    private boolean shouldQuote(final String value) {
    -<b class="fc">&nbsp;        for (char quotableChar : QUOTABLE_CHARS) {</b>
    -<b class="fc">&nbsp;            if (value.indexOf(quotableChar) != -1) {</b>
    -<b class="fc">&nbsp;                return true;</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return false;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-16/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-16/sources/source-2.html
    deleted file mode 100644
    index e66a123b25..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-16/sources/source-2.html
    +++ /dev/null
    @@ -1,1061 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JmxReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jmx</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: JmxReporter (com.codahale.metrics.jmx)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">JmxReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">JmxReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$AbstractBean</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (9/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.4%
    -  </span>
    -  <span class="absValue">
    -    (27/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxCounter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxCounterMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxGaugeMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxHistogram</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (14/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxHistogramMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    68.8%
    -  </span>
    -  <span class="absValue">
    -    (11/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    49.5%
    -  </span>
    -  <span class="absValue">
    -    (50/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxMeter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxMeterMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxTimer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.1%
    -  </span>
    -  <span class="absValue">
    -    (16/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$JmxTimerMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$MetricMBean</td>
    -  </tr>
    -  <tr>
    -    <td class="name">JmxReporter$MetricTimeUnits</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86%
    -  </span>
    -  <span class="absValue">
    -    (74/86)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.2%
    -  </span>
    -  <span class="absValue">
    -    (151/212)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.Metered;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.MetricRegistryListener;
    -&nbsp;import com.codahale.metrics.Reporter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import javax.management.InstanceAlreadyExistsException;
    -&nbsp;import javax.management.InstanceNotFoundException;
    -&nbsp;import javax.management.JMException;
    -&nbsp;import javax.management.MBeanRegistrationException;
    -&nbsp;import javax.management.MBeanServer;
    -&nbsp;import javax.management.ObjectInstance;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;import java.io.Closeable;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which listens for new metrics and exposes them as namespaced MBeans.
    -&nbsp; */
    -<b class="fc">&nbsp;public class JmxReporter implements Reporter, Closeable {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link JmxReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link JmxReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link JmxReporter} instances. Defaults to using the default MBean server and
    -&nbsp;     * not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private MBeanServer mBeanServer;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private ObjectNameFactory objectNameFactory;
    -<b class="fc">&nbsp;        private MetricFilter filter = MetricFilter.ALL;</b>
    -&nbsp;        private String domain;
    -&nbsp;        private Map&lt;String, TimeUnit&gt; specificDurationUnits;
    -&nbsp;        private Map&lt;String, TimeUnit&gt; specificRateUnits;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.domain = &quot;metrics&quot;;</b>
    -<b class="fc">&nbsp;            this.objectNameFactory = new DefaultObjectNameFactory();</b>
    -<b class="fc">&nbsp;            this.specificDurationUnits = Collections.emptyMap();</b>
    -<b class="fc">&nbsp;            this.specificRateUnits = Collections.emptyMap();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Register MBeans with the given {@link MBeanServer}.
    -&nbsp;         *
    -&nbsp;         * @param mBeanServer an {@link MBeanServer}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder registerWith(MBeanServer mBeanServer) {
    -<b class="fc">&nbsp;            this.mBeanServer = mBeanServer;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder createsObjectNamesWith(ObjectNameFactory onFactory) {
    -<b class="fc">&nbsp;            if (onFactory == null) {</b>
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;null objectNameFactory&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            this.objectNameFactory = onFactory;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder inDomain(String domain) {
    -<b class="fc">&nbsp;            this.domain = domain;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use specific {@link TimeUnit}s for the duration of the metrics with these names.
    -&nbsp;         *
    -&nbsp;         * @param specificDurationUnits a map of metric names and specific {@link TimeUnit}s
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder specificDurationUnits(Map&lt;String, TimeUnit&gt; specificDurationUnits) {
    -<b class="nc">&nbsp;            this.specificDurationUnits = Collections.unmodifiableMap(specificDurationUnits);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use specific {@link TimeUnit}s for the rate of the metrics with these names.
    -&nbsp;         *
    -&nbsp;         * @param specificRateUnits a map of metric names and specific {@link TimeUnit}s
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder specificRateUnits(Map&lt;String, TimeUnit&gt; specificRateUnits) {
    -<b class="nc">&nbsp;            this.specificRateUnits = Collections.unmodifiableMap(specificRateUnits);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link JmxReporter} with the given properties.
    -&nbsp;         *
    -&nbsp;         * @return a {@link JmxReporter}
    -&nbsp;         */
    -&nbsp;        public JmxReporter build() {
    -<b class="fc">&nbsp;            final MetricTimeUnits timeUnits = new MetricTimeUnits(rateUnit, durationUnit, specificRateUnits, specificDurationUnits);</b>
    -<b class="fc">&nbsp;            if (mBeanServer == null) {</b>
    -<b class="fc">&nbsp;                mBeanServer = ManagementFactory.getPlatformMBeanServer();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new JmxReporter(mBeanServer, domain, registry, filter, timeUnits, objectNameFactory);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JmxReporter.class);</b>
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface MetricMBean {
    -&nbsp;        ObjectName objectName();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private abstract static class AbstractBean implements MetricMBean {
    -&nbsp;        private final ObjectName objectName;
    -&nbsp;
    -<b class="fc">&nbsp;        AbstractBean(ObjectName objectName) {</b>
    -<b class="fc">&nbsp;            this.objectName = objectName;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public ObjectName objectName() {
    -<b class="nc">&nbsp;            return objectName;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxGaugeMBean extends MetricMBean {
    -&nbsp;        Object getValue();
    -&nbsp;        Number getNumber();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxGauge extends AbstractBean implements JmxGaugeMBean {</b>
    -&nbsp;        private final Gauge&lt;?&gt; metric;
    -&nbsp;
    -&nbsp;        private JmxGauge(Gauge&lt;?&gt; metric, ObjectName objectName) {
    -<b class="fc">&nbsp;            super(objectName);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Object getValue() {
    -<b class="fc">&nbsp;            return metric.getValue();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Number getNumber() {
    -<b class="fc">&nbsp;            Object value = metric.getValue();</b>
    -<b class="fc">&nbsp;            return value instanceof Number ? (Number) value : 0;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxCounterMBean extends MetricMBean {
    -&nbsp;        long getCount();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxCounter extends AbstractBean implements JmxCounterMBean {</b>
    -&nbsp;        private final Counter metric;
    -&nbsp;
    -&nbsp;        private JmxCounter(Counter metric, ObjectName objectName) {
    -<b class="fc">&nbsp;            super(objectName);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="fc">&nbsp;            return metric.getCount();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxHistogramMBean extends MetricMBean {
    -&nbsp;        long getCount();
    -&nbsp;
    -&nbsp;        long getMin();
    -&nbsp;
    -&nbsp;        long getMax();
    -&nbsp;
    -&nbsp;        double getMean();
    -&nbsp;
    -&nbsp;        double getStdDev();
    -&nbsp;
    -&nbsp;        double get50thPercentile();
    -&nbsp;
    -&nbsp;        double get75thPercentile();
    -&nbsp;
    -&nbsp;        double get95thPercentile();
    -&nbsp;
    -&nbsp;        double get98thPercentile();
    -&nbsp;
    -&nbsp;        double get99thPercentile();
    -&nbsp;
    -&nbsp;        double get999thPercentile();
    -&nbsp;
    -&nbsp;        long[] values();
    -&nbsp;
    -&nbsp;        long getSnapshotSize();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxHistogram implements JmxHistogramMBean {</b>
    -&nbsp;        private final ObjectName objectName;
    -&nbsp;        private final Histogram metric;
    -&nbsp;
    -<b class="fc">&nbsp;        private JmxHistogram(Histogram metric, ObjectName objectName) {</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -<b class="fc">&nbsp;            this.objectName = objectName;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public ObjectName objectName() {
    -<b class="nc">&nbsp;            return objectName;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get50thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMedian();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="fc">&nbsp;            return metric.getCount();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getMin() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMin();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getMax() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMax();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMean() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMean();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getStdDev() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getStdDev();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get75thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get75thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get95thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get95thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get98thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get98thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get99thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get99thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get999thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get999thPercentile();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long[] values() {
    -<b class="nc">&nbsp;            return metric.getSnapshot().getValues();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getSnapshotSize() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().size();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxMeterMBean extends MetricMBean {
    -&nbsp;        long getCount();
    -&nbsp;
    -&nbsp;        double getMeanRate();
    -&nbsp;
    -&nbsp;        double getOneMinuteRate();
    -&nbsp;
    -&nbsp;        double getFiveMinuteRate();
    -&nbsp;
    -&nbsp;        double getFifteenMinuteRate();
    -&nbsp;
    -&nbsp;        String getRateUnit();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxMeter extends AbstractBean implements JmxMeterMBean {</b>
    -&nbsp;        private final Metered metric;
    -&nbsp;        private final double rateFactor;
    -&nbsp;        private final String rateUnit;
    -&nbsp;
    -&nbsp;        private JmxMeter(Metered metric, ObjectName objectName, TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            super(objectName);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;            this.rateUnit = (&quot;events/&quot; + calculateRateUnit(rateUnit)).intern();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long getCount() {
    -<b class="fc">&nbsp;            return metric.getCount();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMeanRate() {
    -<b class="fc">&nbsp;            return metric.getMeanRate() * rateFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getOneMinuteRate() {
    -<b class="fc">&nbsp;            return metric.getOneMinuteRate() * rateFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getFiveMinuteRate() {
    -<b class="fc">&nbsp;            return metric.getFiveMinuteRate() * rateFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getFifteenMinuteRate() {
    -<b class="fc">&nbsp;            return metric.getFifteenMinuteRate() * rateFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getRateUnit() {
    -<b class="fc">&nbsp;            return rateUnit;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private String calculateRateUnit(TimeUnit unit) {
    -<b class="fc">&nbsp;            final String s = unit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;            return s.substring(0, s.length() - 1);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;UnusedDeclaration&quot;)
    -&nbsp;    public interface JmxTimerMBean extends JmxMeterMBean {
    -&nbsp;        double getMin();
    -&nbsp;
    -&nbsp;        double getMax();
    -&nbsp;
    -&nbsp;        double getMean();
    -&nbsp;
    -&nbsp;        double getStdDev();
    -&nbsp;
    -&nbsp;        double get50thPercentile();
    -&nbsp;
    -&nbsp;        double get75thPercentile();
    -&nbsp;
    -&nbsp;        double get95thPercentile();
    -&nbsp;
    -&nbsp;        double get98thPercentile();
    -&nbsp;
    -&nbsp;        double get99thPercentile();
    -&nbsp;
    -&nbsp;        double get999thPercentile();
    -&nbsp;
    -&nbsp;        long[] values();
    -&nbsp;
    -&nbsp;        String getDurationUnit();
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    static class JmxTimer extends JmxMeter implements JmxTimerMBean {</b>
    -&nbsp;        private final Timer metric;
    -&nbsp;        private final double durationFactor;
    -&nbsp;        private final String durationUnit;
    -&nbsp;
    -&nbsp;        private JmxTimer(Timer metric,
    -&nbsp;                         ObjectName objectName,
    -&nbsp;                         TimeUnit rateUnit,
    -&nbsp;                         TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            super(metric, objectName, rateUnit);</b>
    -<b class="fc">&nbsp;            this.metric = metric;</b>
    -<b class="fc">&nbsp;            this.durationFactor = 1.0 / durationUnit.toNanos(1);</b>
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get50thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMedian() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMin() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMin() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMax() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMax() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getMean() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getMean() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double getStdDev() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().getStdDev() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get75thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get75thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get95thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get95thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get98thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get98thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get99thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get99thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public double get999thPercentile() {
    -<b class="fc">&nbsp;            return metric.getSnapshot().get999thPercentile() * durationFactor;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public long[] values() {
    -<b class="nc">&nbsp;            return metric.getSnapshot().getValues();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String getDurationUnit() {
    -<b class="fc">&nbsp;            return durationUnit;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class JmxListener implements MetricRegistryListener {</b>
    -&nbsp;        private final String name;
    -&nbsp;        private final MBeanServer mBeanServer;
    -&nbsp;        private final MetricFilter filter;
    -&nbsp;        private final MetricTimeUnits timeUnits;
    -&nbsp;        private final Map&lt;ObjectName, ObjectName&gt; registered;
    -&nbsp;        private final ObjectNameFactory objectNameFactory;
    -&nbsp;
    -<b class="fc">&nbsp;        private JmxListener(MBeanServer mBeanServer, String name, MetricFilter filter, MetricTimeUnits timeUnits, ObjectNameFactory objectNameFactory) {</b>
    -<b class="fc">&nbsp;            this.mBeanServer = mBeanServer;</b>
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            this.timeUnits = timeUnits;</b>
    -<b class="fc">&nbsp;            this.registered = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;            this.objectNameFactory = objectNameFactory;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void registerMBean(Object mBean, ObjectName objectName) throws InstanceAlreadyExistsException, JMException {
    -<b class="fc">&nbsp;            ObjectInstance objectInstance = mBeanServer.registerMBean(mBean, objectName);</b>
    -<b class="fc">&nbsp;            if (objectInstance != null) {</b>
    -&nbsp;                // the websphere mbeanserver rewrites the objectname to include
    -&nbsp;                // cell, node &amp; server info
    -&nbsp;                // make sure we capture the new objectName for unregistration
    -<b class="fc">&nbsp;                registered.put(objectName, objectInstance.getObjectName());</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                registered.put(objectName, objectName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void unregisterMBean(ObjectName originalObjectName) throws InstanceNotFoundException, MBeanRegistrationException {
    -<b class="fc">&nbsp;            ObjectName storedObjectName = registered.remove(originalObjectName);</b>
    -<b class="fc">&nbsp;            if (storedObjectName != null) {</b>
    -<b class="fc">&nbsp;                mBeanServer.unregisterMBean(storedObjectName);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                mBeanServer.unregisterMBean(originalObjectName);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, gauge)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;gauges&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxGauge(gauge, objectName), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register gauge&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register gauge&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onGaugeRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;gauges&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister gauge&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister gauge&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onCounterAdded(String name, Counter counter) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, counter)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;counters&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxCounter(counter, objectName), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register counter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register counter&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onCounterRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;counters&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister counter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister counter&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onHistogramAdded(String name, Histogram histogram) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, histogram)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;histograms&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxHistogram(histogram, objectName), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register histogram&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register histogram&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onHistogramRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;histograms&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister histogram&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister histogram&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onMeterAdded(String name, Meter meter) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, meter)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;meters&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxMeter(meter, objectName, timeUnits.rateFor(name)), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register meter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register meter&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onMeterRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;meters&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister meter&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister meter&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimerAdded(String name, Timer timer) {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                if (filter.matches(name, timer)) {</b>
    -<b class="fc">&nbsp;                    final ObjectName objectName = createName(&quot;timers&quot;, name);</b>
    -<b class="fc">&nbsp;                    registerMBean(new JmxTimer(timer, objectName, timeUnits.rateFor(name), timeUnits.durationFor(name)), objectName);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;            } catch (InstanceAlreadyExistsException e) {</b>
    -<b class="fc">&nbsp;                LOGGER.debug(&quot;Unable to register timer&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (JMException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to register timer&quot;, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimerRemoved(String name) {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                final ObjectName objectName = createName(&quot;timers&quot;, name);</b>
    -<b class="nc">&nbsp;                unregisterMBean(objectName);</b>
    -<b class="nc">&nbsp;            } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Unable to unregister timer&quot;, e);</b>
    -<b class="nc">&nbsp;            } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Unable to unregister timer&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private ObjectName createName(String type, String name) {
    -<b class="fc">&nbsp;            return objectNameFactory.createName(type, this.name, name);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        void unregisterAll() {
    -<b class="fc">&nbsp;            for (ObjectName name : registered.keySet()) {</b>
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    unregisterMBean(name);</b>
    -<b class="nc">&nbsp;                } catch (InstanceNotFoundException e) {</b>
    -<b class="nc">&nbsp;                    LOGGER.debug(&quot;Unable to unregister metric&quot;, e);</b>
    -<b class="nc">&nbsp;                } catch (MBeanRegistrationException e) {</b>
    -<b class="nc">&nbsp;                    LOGGER.warn(&quot;Unable to unregister metric&quot;, e);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            registered.clear();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MetricTimeUnits {
    -&nbsp;        private final TimeUnit defaultRate;
    -&nbsp;        private final TimeUnit defaultDuration;
    -&nbsp;        private final Map&lt;String, TimeUnit&gt; rateOverrides;
    -&nbsp;        private final Map&lt;String, TimeUnit&gt; durationOverrides;
    -&nbsp;
    -&nbsp;        MetricTimeUnits(TimeUnit defaultRate,
    -&nbsp;                        TimeUnit defaultDuration,
    -&nbsp;                        Map&lt;String, TimeUnit&gt; rateOverrides,
    -<b class="fc">&nbsp;                        Map&lt;String, TimeUnit&gt; durationOverrides) {</b>
    -<b class="fc">&nbsp;            this.defaultRate = defaultRate;</b>
    -<b class="fc">&nbsp;            this.defaultDuration = defaultDuration;</b>
    -<b class="fc">&nbsp;            this.rateOverrides = rateOverrides;</b>
    -<b class="fc">&nbsp;            this.durationOverrides = durationOverrides;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public TimeUnit durationFor(String name) {
    -<b class="fc">&nbsp;            return durationOverrides.getOrDefault(name, defaultDuration);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public TimeUnit rateFor(String name) {
    -<b class="fc">&nbsp;            return rateOverrides.getOrDefault(name, defaultRate);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final JmxListener listener;
    -&nbsp;
    -&nbsp;    private JmxReporter(MBeanServer mBeanServer,
    -&nbsp;                        String domain,
    -&nbsp;                        MetricRegistry registry,
    -&nbsp;                        MetricFilter filter,
    -&nbsp;                        MetricTimeUnits timeUnits,
    -<b class="fc">&nbsp;                        ObjectNameFactory objectNameFactory) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.listener = new JmxListener(mBeanServer, domain, filter, timeUnits, objectNameFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Starts the reporter.
    -&nbsp;     */
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        registry.addListener(listener);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Stops the reporter.
    -&nbsp;     */
    -&nbsp;    public void stop() {
    -<b class="fc">&nbsp;        registry.removeListener(listener);</b>
    -<b class="fc">&nbsp;        listener.unregisterAll();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Stops the reporter.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="nc">&nbsp;        stop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Visible for testing
    -&nbsp;     */
    -&nbsp;    ObjectNameFactory getObjectNameFactory() {
    -<b class="fc">&nbsp;        return listener.objectNameFactory;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-16/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-16/sources/source-3.html
    deleted file mode 100644
    index 025a4e92f3..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-16/sources/source-3.html
    +++ /dev/null
    @@ -1,85 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ObjectNameFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jmx</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ObjectNameFactory (com.codahale.metrics.jmx)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">ObjectNameFactory$MockitoMock$WlF4PDAF</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ObjectNameFactory$MockitoMock$WlF4PDAF$auxiliary$1CjbcZqB</td>
    -  </tr>
    -  <tr>
    -    <td class="name">ObjectNameFactory$MockitoMock$WlF4PDAF$auxiliary$35Hj81tk</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jmx;
    -&nbsp;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;
    -&nbsp;public interface ObjectNameFactory {
    -&nbsp;
    -&nbsp;    ObjectName createName(String type, String domain, String name);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index.html b/metrics-complete-report-initial-htmlReport/ns-17/index.html
    deleted file mode 100644
    index 9f2a655f14..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-17/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 887006e005..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 77e355a3a7..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 6861c10dd6..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 090dc2538b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 22b108a3b7..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 38c06d1f8f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index fc1b6e25b0..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index a0b89a1740..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 426cb00467..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-17/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.json</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.json</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.json</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.json</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99.2%
    -  </span>
    -  <span class="absValue">
    -    (131/132)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HealthCheckModule</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-17/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-17/sources/source-1.html
    deleted file mode 100644
    index 8f41c759de..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-17/sources/source-1.html
    +++ /dev/null
    @@ -1,217 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckModule</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.json</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckModule (com.codahale.metrics.json)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckModule</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckModule$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheckModule$HealthCheckResultSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (27/27)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.json;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.fasterxml.jackson.core.JsonGenerator;
    -&nbsp;import com.fasterxml.jackson.core.Version;
    -&nbsp;import com.fasterxml.jackson.databind.Module;
    -&nbsp;import com.fasterxml.jackson.databind.SerializerProvider;
    -&nbsp;import com.fasterxml.jackson.databind.module.SimpleSerializers;
    -&nbsp;import com.fasterxml.jackson.databind.ser.std.StdSerializer;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -<b class="fc">&nbsp;public class HealthCheckModule extends Module {</b>
    -<b class="fc">&nbsp;    private static class HealthCheckResultSerializer extends StdSerializer&lt;HealthCheck.Result&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private HealthCheckResultSerializer() {
    -<b class="fc">&nbsp;            super(HealthCheck.Result.class);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(HealthCheck.Result result,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeBooleanField(&quot;healthy&quot;, result.isHealthy());</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final String message = result.getMessage();</b>
    -<b class="fc">&nbsp;            if (message != null) {</b>
    -<b class="fc">&nbsp;                json.writeStringField(&quot;message&quot;, message);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            serializeThrowable(json, result.getError(), &quot;error&quot;);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;duration&quot;, result.getDuration());</b>
    -&nbsp;
    -<b class="fc">&nbsp;            Map&lt;String, Object&gt; details = result.getDetails();</b>
    -<b class="fc">&nbsp;            if (details != null &amp;&amp; !details.isEmpty()) {</b>
    -<b class="fc">&nbsp;                for (Map.Entry&lt;String, Object&gt; e : details.entrySet()) {</b>
    -<b class="fc">&nbsp;                    json.writeObjectField(e.getKey(), e.getValue());</b>
    -<b class="fc">&nbsp;                }</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            json.writeStringField(&quot;timestamp&quot;, result.getTimestamp());</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private void serializeThrowable(JsonGenerator json, Throwable error, String name) throws IOException {
    -<b class="fc">&nbsp;            if (error != null) {</b>
    -<b class="fc">&nbsp;                json.writeObjectFieldStart(name);</b>
    -<b class="fc">&nbsp;                json.writeStringField(&quot;type&quot;, error.getClass().getTypeName());</b>
    -<b class="fc">&nbsp;                json.writeStringField(&quot;message&quot;, error.getMessage());</b>
    -<b class="fc">&nbsp;                json.writeArrayFieldStart(&quot;stack&quot;);</b>
    -<b class="fc">&nbsp;                for (StackTraceElement element : error.getStackTrace()) {</b>
    -<b class="fc">&nbsp;                    json.writeString(element.toString());</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                json.writeEndArray();</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (error.getCause() != null) {</b>
    -<b class="fc">&nbsp;                    serializeThrowable(json, error.getCause(), &quot;cause&quot;);</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="fc">&nbsp;                json.writeEndObject();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getModuleName() {
    -<b class="fc">&nbsp;        return &quot;healthchecks&quot;;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Version version() {
    -<b class="fc">&nbsp;        return MetricsModule.VERSION;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void setupModule(SetupContext context) {
    -<b class="fc">&nbsp;        context.addSerializers(new SimpleSerializers(Collections.singletonList(new HealthCheckResultSerializer())));</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-17/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-17/sources/source-2.html
    deleted file mode 100644
    index 663294df0b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-17/sources/source-2.html
    +++ /dev/null
    @@ -1,489 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsModule</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.json</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsModule (com.codahale.metrics.json)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsModule</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.3%
    -  </span>
    -  <span class="absValue">
    -    (12/13)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetricsModule$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$CounterSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$GaugeSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$HistogramSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (19/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$MeterSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$MetricRegistrySerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MetricsModule$TimerSerializer</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (33/33)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96%
    -  </span>
    -  <span class="absValue">
    -    (24/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    99%
    -  </span>
    -  <span class="absValue">
    -    (100/101)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.json;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Snapshot;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.fasterxml.jackson.core.JsonGenerator;
    -&nbsp;import com.fasterxml.jackson.core.Version;
    -&nbsp;import com.fasterxml.jackson.databind.Module;
    -&nbsp;import com.fasterxml.jackson.databind.SerializerProvider;
    -&nbsp;import com.fasterxml.jackson.databind.module.SimpleSerializers;
    -&nbsp;import com.fasterxml.jackson.databind.ser.std.StdSerializer;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -<b class="fc">&nbsp;public class MetricsModule extends Module {</b>
    -<b class="fc">&nbsp;    static final Version VERSION = new Version(4, 0, 0, &quot;&quot;, &quot;io.dropwizard.metrics&quot;, &quot;metrics-json&quot;);</b>
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -<b class="fc">&nbsp;    private static class GaugeSerializer extends StdSerializer&lt;Gauge&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private GaugeSerializer() {
    -<b class="fc">&nbsp;            super(Gauge.class);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Gauge gauge,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -&nbsp;            final Object value;
    -&nbsp;            try {
    -<b class="fc">&nbsp;                value = gauge.getValue();</b>
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;value&quot;, value);</b>
    -<b class="fc">&nbsp;            } catch (RuntimeException e) {</b>
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;error&quot;, e.toString());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class CounterSerializer extends StdSerializer&lt;Counter&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private CounterSerializer() {
    -<b class="fc">&nbsp;            super(Counter.class);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Counter counter,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, counter.getCount());</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class HistogramSerializer extends StdSerializer&lt;Histogram&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private final boolean showSamples;
    -&nbsp;
    -&nbsp;        private HistogramSerializer(boolean showSamples) {
    -<b class="fc">&nbsp;            super(Histogram.class);</b>
    -<b class="fc">&nbsp;            this.showSamples = showSamples;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Histogram histogram,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            final Snapshot snapshot = histogram.getSnapshot();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, histogram.getCount());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;max&quot;, snapshot.getMax());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean&quot;, snapshot.getMean());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;min&quot;, snapshot.getMin());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p50&quot;, snapshot.getMedian());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p75&quot;, snapshot.get75thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p95&quot;, snapshot.get95thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p98&quot;, snapshot.get98thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p99&quot;, snapshot.get99thPercentile());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p999&quot;, snapshot.get999thPercentile());</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (showSamples) {</b>
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;values&quot;, snapshot.getValues());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;stddev&quot;, snapshot.getStdDev());</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MeterSerializer extends StdSerializer&lt;Meter&gt; {
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private final String rateUnit;
    -&nbsp;        private final double rateFactor;
    -&nbsp;
    -&nbsp;        public MeterSerializer(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            super(Meter.class);</b>
    -<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;            this.rateUnit = calculateRateUnit(rateUnit, &quot;events&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Meter meter,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, meter.getCount());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m15_rate&quot;, meter.getFifteenMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m1_rate&quot;, meter.getOneMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m5_rate&quot;, meter.getFiveMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean_rate&quot;, meter.getMeanRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;units&quot;, rateUnit);</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class TimerSerializer extends StdSerializer&lt;Timer&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private final String rateUnit;
    -&nbsp;        private final double rateFactor;
    -&nbsp;        private final String durationUnit;
    -&nbsp;        private final double durationFactor;
    -&nbsp;        private final boolean showSamples;
    -&nbsp;
    -&nbsp;        private TimerSerializer(TimeUnit rateUnit,
    -&nbsp;                                TimeUnit durationUnit,
    -&nbsp;                                boolean showSamples) {
    -<b class="fc">&nbsp;            super(Timer.class);</b>
    -<b class="fc">&nbsp;            this.rateUnit = calculateRateUnit(rateUnit, &quot;calls&quot;);</b>
    -<b class="fc">&nbsp;            this.rateFactor = rateUnit.toSeconds(1);</b>
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;            this.durationFactor = 1.0 / durationUnit.toNanos(1);</b>
    -<b class="fc">&nbsp;            this.showSamples = showSamples;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(Timer timer,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            final Snapshot snapshot = timer.getSnapshot();</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;count&quot;, timer.getCount());</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;max&quot;, snapshot.getMax() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean&quot;, snapshot.getMean() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;min&quot;, snapshot.getMin() * durationFactor);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p50&quot;, snapshot.getMedian() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p75&quot;, snapshot.get75thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p95&quot;, snapshot.get95thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p98&quot;, snapshot.get98thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p99&quot;, snapshot.get99thPercentile() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;p999&quot;, snapshot.get999thPercentile() * durationFactor);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (showSamples) {</b>
    -<b class="fc">&nbsp;                final long[] values = snapshot.getValues();</b>
    -<b class="fc">&nbsp;                final double[] scaledValues = new double[values.length];</b>
    -<b class="fc">&nbsp;                for (int i = 0; i &lt; values.length; i++) {</b>
    -<b class="fc">&nbsp;                    scaledValues[i] = values[i] * durationFactor;</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                json.writeObjectField(&quot;values&quot;, scaledValues);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;stddev&quot;, snapshot.getStdDev() * durationFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m15_rate&quot;, timer.getFifteenMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m1_rate&quot;, timer.getOneMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;m5_rate&quot;, timer.getFiveMinuteRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeNumberField(&quot;mean_rate&quot;, timer.getMeanRate() * rateFactor);</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;duration_units&quot;, durationUnit);</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;rate_units&quot;, rateUnit);</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class MetricRegistrySerializer extends StdSerializer&lt;MetricRegistry&gt; {</b>
    -&nbsp;
    -&nbsp;        private static final long serialVersionUID = 1L;
    -&nbsp;
    -&nbsp;        private final MetricFilter filter;
    -&nbsp;
    -&nbsp;        private MetricRegistrySerializer(MetricFilter filter) {
    -<b class="fc">&nbsp;            super(MetricRegistry.class);</b>
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void serialize(MetricRegistry registry,
    -&nbsp;                              JsonGenerator json,
    -&nbsp;                              SerializerProvider provider) throws IOException {
    -<b class="fc">&nbsp;            json.writeStartObject();</b>
    -<b class="fc">&nbsp;            json.writeStringField(&quot;version&quot;, VERSION.toString());</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;gauges&quot;, registry.getGauges(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;counters&quot;, registry.getCounters(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;histograms&quot;, registry.getHistograms(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;meters&quot;, registry.getMeters(filter));</b>
    -<b class="fc">&nbsp;            json.writeObjectField(&quot;timers&quot;, registry.getTimers(filter));</b>
    -<b class="fc">&nbsp;            json.writeEndObject();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected final TimeUnit rateUnit;
    -&nbsp;    protected final TimeUnit durationUnit;
    -&nbsp;    protected final boolean showSamples;
    -&nbsp;    protected final MetricFilter filter;
    -&nbsp;
    -&nbsp;    public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples) {
    -<b class="nc">&nbsp;        this(rateUnit, durationUnit, showSamples, MetricFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsModule(TimeUnit rateUnit, TimeUnit durationUnit, boolean showSamples, MetricFilter filter) {</b>
    -<b class="fc">&nbsp;        this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;        this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;        this.showSamples = showSamples;</b>
    -<b class="fc">&nbsp;        this.filter = filter;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getModuleName() {
    -<b class="fc">&nbsp;        return &quot;metrics&quot;;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Version version() {
    -<b class="fc">&nbsp;        return VERSION;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void setupModule(SetupContext context) {
    -<b class="fc">&nbsp;        context.addSerializers(new SimpleSerializers(Arrays.asList(</b>
    -&nbsp;                new GaugeSerializer(),
    -&nbsp;                new CounterSerializer(),
    -&nbsp;                new HistogramSerializer(showSamples),
    -&nbsp;                new MeterSerializer(rateUnit),
    -&nbsp;                new TimerSerializer(rateUnit, durationUnit, showSamples),
    -&nbsp;                new MetricRegistrySerializer(filter)
    -&nbsp;        )));
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static String calculateRateUnit(TimeUnit unit, String name) {
    -<b class="fc">&nbsp;        final String s = unit.toString().toLowerCase(Locale.US);</b>
    -<b class="fc">&nbsp;        return name + &#39;/&#39; + s.substring(0, s.length() - 1);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index.html b/metrics-complete-report-initial-htmlReport/ns-18/index.html
    deleted file mode 100644
    index 591440042e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/index.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    30%
    -  </span>
    -  <span class="absValue">
    -    (6/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (39/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 50fbf2cd2b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    30%
    -  </span>
    -  <span class="absValue">
    -    (6/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (39/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index b1ed42c845..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (39/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    30%
    -  </span>
    -  <span class="absValue">
    -    (6/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index f0767ff8cb..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    30%
    -  </span>
    -  <span class="absValue">
    -    (6/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (39/48)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 5d00fdb194..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (39/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    30%
    -  </span>
    -  <span class="absValue">
    -    (6/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_LINE.html
    deleted file mode 100644
    index a99f509563..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    30%
    -  </span>
    -  <span class="absValue">
    -    (6/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (39/48)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 9d253c8698..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (39/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    30%
    -  </span>
    -  <span class="absValue">
    -    (6/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 50562da329..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (39/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    30%
    -  </span>
    -  <span class="absValue">
    -    (6/20)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index d2df396c05..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    30%
    -  </span>
    -  <span class="absValue">
    -    (6/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (39/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 46cf3fe5ea..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,440 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    18.8%
    -  </span>
    -  <span class="absValue">
    -    (3/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.3%
    -  </span>
    -  <span class="absValue">
    -    (9/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    24.1%
    -  </span>
    -  <span class="absValue">
    -    (53/220)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-c.html">ThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-b.html">ThreadDump</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (39/48)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-a.html">ThreadDeadlockDetector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    30%
    -  </span>
    -  <span class="absValue">
    -    (6/20)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-9.html">MemoryUsageGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/47)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">JvmAttributeGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">JmxAttributeGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">GarbageCollectorMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">FileDescriptorRatioGauge</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">CpuTimeClock</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">ClassLoadingGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CachedThreadStatesGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">BufferPoolMetricSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-1.html
    deleted file mode 100644
    index 7b28116177..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-1.html
    +++ /dev/null
    @@ -1,156 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > BufferPoolMetricSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: BufferPoolMetricSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">BufferPoolMetricSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import javax.management.JMException;
    -&nbsp;import javax.management.MBeanServer;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the count, usage, and capacity of the JVM&#39;s direct and mapped buffer pools.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * These JMX objects are only available on Java 7 and above.
    -&nbsp; */
    -&nbsp;public class BufferPoolMetricSet implements MetricSet {
    -<b class="nc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(BufferPoolMetricSet.class);</b>
    -<b class="nc">&nbsp;    private static final String[] ATTRIBUTES = {&quot;Count&quot;, &quot;MemoryUsed&quot;, &quot;TotalCapacity&quot;};</b>
    -<b class="nc">&nbsp;    private static final String[] NAMES = {&quot;count&quot;, &quot;used&quot;, &quot;capacity&quot;};</b>
    -<b class="nc">&nbsp;    private static final String[] POOLS = {&quot;direct&quot;, &quot;mapped&quot;};</b>
    -&nbsp;
    -&nbsp;    private final MBeanServer mBeanServer;
    -&nbsp;
    -<b class="nc">&nbsp;    public BufferPoolMetricSet(MBeanServer mBeanServer) {</b>
    -<b class="nc">&nbsp;        this.mBeanServer = mBeanServer;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="nc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -<b class="nc">&nbsp;        for (String pool : POOLS) {</b>
    -<b class="nc">&nbsp;            for (int i = 0; i &lt; ATTRIBUTES.length; i++) {</b>
    -<b class="nc">&nbsp;                final String attribute = ATTRIBUTES[i];</b>
    -<b class="nc">&nbsp;                final String name = NAMES[i];</b>
    -&nbsp;                try {
    -<b class="nc">&nbsp;                    final ObjectName on = new ObjectName(&quot;java.nio:type=BufferPool,name=&quot; + pool);</b>
    -<b class="nc">&nbsp;                    mBeanServer.getMBeanInfo(on);</b>
    -<b class="nc">&nbsp;                    gauges.put(name(pool, name), new JmxAttributeGauge(mBeanServer, on, attribute));</b>
    -<b class="nc">&nbsp;                } catch (JMException ignored) {</b>
    -<b class="nc">&nbsp;                    LOGGER.debug(&quot;Unable to load buffer pool MBeans, possibly running on Java 6&quot;);</b>
    -<b class="nc">&nbsp;                }</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="nc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-2.html
    deleted file mode 100644
    index b2a854a946..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-2.html
    +++ /dev/null
    @@ -1,184 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedThreadStatesGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedThreadStatesGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedThreadStatesGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">CachedThreadStatesGaugeSet$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.CachedGauge;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A variation of ThreadStatesGaugeSet that caches the ThreadInfo[] objects for
    -&nbsp; * a given interval.
    -&nbsp; */
    -<b class="nc">&nbsp;public class CachedThreadStatesGaugeSet extends ThreadStatesGaugeSet {</b>
    -&nbsp;
    -&nbsp;    private final CachedGauge&lt;ThreadInfo[]&gt; threadInfo;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the given MXBean and detector.
    -&nbsp;     * Caches the information for the given interval and time unit.
    -&nbsp;     *
    -&nbsp;     * @param threadMXBean     a thread MXBean
    -&nbsp;     * @param deadlockDetector a deadlock detector
    -&nbsp;     * @param interval         cache interval
    -&nbsp;     * @param unit             cache interval time unit
    -&nbsp;     */
    -&nbsp;    public CachedThreadStatesGaugeSet(final ThreadMXBean threadMXBean, ThreadDeadlockDetector deadlockDetector,
    -&nbsp;                                      long interval, TimeUnit unit) {
    -<b class="nc">&nbsp;        super(threadMXBean, deadlockDetector);</b>
    -<b class="nc">&nbsp;        threadInfo = new CachedGauge&lt;ThreadInfo[]&gt;(interval, unit) {</b>
    -&nbsp;            @Override
    -&nbsp;            protected ThreadInfo[] loadValue() {
    -<b class="nc">&nbsp;                return CachedThreadStatesGaugeSet.super.getThreadInfo();</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the default MXBeans.
    -&nbsp;     * Caches the information for the given interval and time unit.
    -&nbsp;     *
    -&nbsp;     * @param interval cache interval
    -&nbsp;     * @param unit     cache interval time unit
    -&nbsp;     */
    -&nbsp;    public CachedThreadStatesGaugeSet(long interval, TimeUnit unit) {
    -<b class="nc">&nbsp;        this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector(), interval, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    ThreadInfo[] getThreadInfo() {
    -<b class="nc">&nbsp;        return threadInfo.getValue();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-3.html
    deleted file mode 100644
    index 457cbd989a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-3.html
    +++ /dev/null
    @@ -1,139 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ClassLoadingGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ClassLoadingGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ClassLoadingGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ClassLoadingMXBean;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for JVM classloader usage.
    -&nbsp; */
    -&nbsp;public class ClassLoadingGaugeSet implements MetricSet {
    -&nbsp;
    -&nbsp;    private final ClassLoadingMXBean mxBean;
    -&nbsp;
    -&nbsp;    public ClassLoadingGaugeSet() {
    -<b class="nc">&nbsp;        this(ManagementFactory.getClassLoadingMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="nc">&nbsp;    public ClassLoadingGaugeSet(ClassLoadingMXBean mxBean) {</b>
    -<b class="nc">&nbsp;        this.mxBean = mxBean;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="nc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;loaded&quot;, (Gauge&lt;Long&gt;) mxBean::getTotalLoadedClassCount);</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;unloaded&quot;, (Gauge&lt;Long&gt;) mxBean::getUnloadedClassCount);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return gauges;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-4.html
    deleted file mode 100644
    index 0638b00d11..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-4.html
    +++ /dev/null
    @@ -1,123 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CpuTimeClock</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CpuTimeClock (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CpuTimeClock</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A clock implementation which returns the current thread&#39;s CPU time.
    -&nbsp; */
    -<b class="nc">&nbsp;public class CpuTimeClock extends Clock {</b>
    -&nbsp;
    -<b class="nc">&nbsp;    private static final ThreadMXBean THREAD_MX_BEAN = ManagementFactory.getThreadMXBean();</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public long getTick() {
    -<b class="nc">&nbsp;        return THREAD_MX_BEAN.getCurrentThreadCpuTime();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-5.html
    deleted file mode 100644
    index 195406974a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-5.html
    +++ /dev/null
    @@ -1,154 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > FileDescriptorRatioGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: FileDescriptorRatioGauge (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">FileDescriptorRatioGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.OperatingSystemMXBean;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A gauge for the ratio of used to total file descriptors.
    -&nbsp; */
    -&nbsp;public class FileDescriptorRatioGauge extends RatioGauge {
    -<b class="nc">&nbsp;    private static boolean unixOperatingSystemMXBeanExists = false;</b>
    -&nbsp;
    -&nbsp;    private final OperatingSystemMXBean os;
    -&nbsp;
    -&nbsp;    static {
    -&nbsp;        try {
    -<b class="nc">&nbsp;            Class.forName(&quot;com.sun.management.UnixOperatingSystemMXBean&quot;);</b>
    -<b class="nc">&nbsp;            unixOperatingSystemMXBeanExists = true;</b>
    -<b class="nc">&nbsp;        } catch (ClassNotFoundException e) {</b>
    -&nbsp;            // do nothing
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new gauge using the platform OS bean.
    -&nbsp;     */
    -&nbsp;    public FileDescriptorRatioGauge() {
    -<b class="nc">&nbsp;        this(ManagementFactory.getOperatingSystemMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new gauge using the given OS bean.
    -&nbsp;     *
    -&nbsp;     * @param os an {@link OperatingSystemMXBean}
    -&nbsp;     */
    -<b class="nc">&nbsp;    public FileDescriptorRatioGauge(OperatingSystemMXBean os) {</b>
    -<b class="nc">&nbsp;        this.os = os;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected Ratio getRatio() {
    -<b class="nc">&nbsp;        if (unixOperatingSystemMXBeanExists &amp;&amp; os instanceof com.sun.management.UnixOperatingSystemMXBean) {</b>
    -<b class="nc">&nbsp;            final com.sun.management.UnixOperatingSystemMXBean unixOs = (com.sun.management.UnixOperatingSystemMXBean) os;</b>
    -<b class="nc">&nbsp;            return Ratio.of(unixOs.getOpenFileDescriptorCount(), unixOs.getMaxFileDescriptorCount());</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            return Ratio.of(Double.NaN, Double.NaN);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-6.html
    deleted file mode 100644
    index dca0f5d868..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-6.html
    +++ /dev/null
    @@ -1,157 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GarbageCollectorMetricSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GarbageCollectorMetricSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GarbageCollectorMetricSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.GarbageCollectorMXBean;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the counts and elapsed times of garbage collections.
    -&nbsp; */
    -&nbsp;public class GarbageCollectorMetricSet implements MetricSet {
    -<b class="nc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    -&nbsp;
    -&nbsp;    private final List&lt;GarbageCollectorMXBean&gt; garbageCollectors;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges for all discoverable garbage collectors.
    -&nbsp;     */
    -&nbsp;    public GarbageCollectorMetricSet() {
    -<b class="nc">&nbsp;        this(ManagementFactory.getGarbageCollectorMXBeans());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges for the given collection of garbage collectors.
    -&nbsp;     *
    -&nbsp;     * @param garbageCollectors the garbage collectors
    -&nbsp;     */
    -<b class="nc">&nbsp;    public GarbageCollectorMetricSet(Collection&lt;GarbageCollectorMXBean&gt; garbageCollectors) {</b>
    -<b class="nc">&nbsp;        this.garbageCollectors = new ArrayList&lt;&gt;(garbageCollectors);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="nc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -<b class="nc">&nbsp;        for (final GarbageCollectorMXBean gc : garbageCollectors) {</b>
    -<b class="nc">&nbsp;            final String name = WHITESPACE.matcher(gc.getName()).replaceAll(&quot;-&quot;);</b>
    -<b class="nc">&nbsp;            gauges.put(name(name, &quot;count&quot;), (Gauge&lt;Long&gt;) gc::getCollectionCount);</b>
    -<b class="nc">&nbsp;            gauges.put(name(name, &quot;time&quot;), (Gauge&lt;Long&gt;) gc::getCollectionTime);</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-7.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-7.html
    deleted file mode 100644
    index 9d79f838df..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-7.html
    +++ /dev/null
    @@ -1,165 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JmxAttributeGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: JmxAttributeGauge (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">JmxAttributeGauge</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import javax.management.JMException;
    -&nbsp;import javax.management.MBeanServerConnection;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Gauge} implementation which queries an {@link MBeanServerConnection} for an attribute of an object.
    -&nbsp; */
    -&nbsp;public class JmxAttributeGauge implements Gauge&lt;Object&gt; {
    -&nbsp;    private final MBeanServerConnection mBeanServerConn;
    -&nbsp;    private final ObjectName objectName;
    -&nbsp;    private final String attributeName;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new JmxAttributeGauge.
    -&nbsp;     *
    -&nbsp;     * @param objectName    the name of the object
    -&nbsp;     * @param attributeName the name of the object&#39;s attribute
    -&nbsp;     */
    -&nbsp;    public JmxAttributeGauge(ObjectName objectName, String attributeName) {
    -<b class="fc">&nbsp;        this(ManagementFactory.getPlatformMBeanServer(), objectName, attributeName);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new JmxAttributeGauge.
    -&nbsp;     *
    -&nbsp;     * @param mBeanServerConn the {@link MBeanServerConnection}
    -&nbsp;     * @param objectName      the name of the object
    -&nbsp;     * @param attributeName   the name of the object&#39;s attribute
    -&nbsp;     */
    -<b class="fc">&nbsp;    public JmxAttributeGauge(MBeanServerConnection mBeanServerConn, ObjectName objectName, String attributeName) {</b>
    -<b class="fc">&nbsp;        this.mBeanServerConn = mBeanServerConn;</b>
    -<b class="fc">&nbsp;        this.objectName = objectName;</b>
    -<b class="fc">&nbsp;        this.attributeName = attributeName;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Object getValue() {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return mBeanServerConn.getAttribute(getObjectName(), attributeName);</b>
    -<b class="nc">&nbsp;        } catch (IOException | JMException e) {</b>
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private ObjectName getObjectName() throws IOException {
    -<b class="fc">&nbsp;        if (objectName.isPattern()) {</b>
    -<b class="nc">&nbsp;            Set&lt;ObjectName&gt; foundNames = mBeanServerConn.queryNames(objectName, null);</b>
    -<b class="nc">&nbsp;            if (foundNames.size() == 1) {</b>
    -<b class="nc">&nbsp;                return foundNames.iterator().next();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return objectName;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-8.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-8.html
    deleted file mode 100644
    index 8ff0015783..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-8.html
    +++ /dev/null
    @@ -1,155 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JvmAttributeGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: JvmAttributeGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">JvmAttributeGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.RuntimeMXBean;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the JVM name, vendor, and uptime.
    -&nbsp; */
    -&nbsp;public class JvmAttributeGaugeSet implements MetricSet {
    -&nbsp;    private final RuntimeMXBean runtime;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges.
    -&nbsp;     */
    -&nbsp;    public JvmAttributeGaugeSet() {
    -<b class="nc">&nbsp;        this(ManagementFactory.getRuntimeMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges with the given {@link RuntimeMXBean}.
    -&nbsp;     *
    -&nbsp;     * @param runtime JVM management interface with access to system properties
    -&nbsp;     */
    -<b class="nc">&nbsp;    public JvmAttributeGaugeSet(RuntimeMXBean runtime) {</b>
    -<b class="nc">&nbsp;        this.runtime = runtime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="nc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        gauges.put(&quot;name&quot;, (Gauge&lt;String&gt;) runtime::getName);</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;vendor&quot;, (Gauge&lt;String&gt;) () -&gt; String.format(Locale.US,</b>
    -&nbsp;                &quot;%s %s %s (%s)&quot;,
    -<b class="nc">&nbsp;                runtime.getVmVendor(),</b>
    -<b class="nc">&nbsp;                runtime.getVmName(),</b>
    -<b class="nc">&nbsp;                runtime.getVmVersion(),</b>
    -<b class="nc">&nbsp;                runtime.getSpecVersion()));</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;uptime&quot;, (Gauge&lt;Long&gt;) runtime::getUptime);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-9.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-9.html
    deleted file mode 100644
    index 1157381526..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-9.html
    +++ /dev/null
    @@ -1,274 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MemoryUsageGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MemoryUsageGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MemoryUsageGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/37)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MemoryUsageGaugeSet$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MemoryUsageGaugeSet$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">MemoryUsageGaugeSet$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/47)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.MemoryMXBean;
    -&nbsp;import java.lang.management.MemoryPoolMXBean;
    -&nbsp;import java.lang.management.MemoryUsage;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collection;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for JVM memory usage, including stats on heap vs. non-heap memory, plus
    -&nbsp; * GC-specific memory pools.
    -&nbsp; */
    -<b class="nc">&nbsp;public class MemoryUsageGaugeSet implements MetricSet {</b>
    -<b class="nc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    -&nbsp;
    -&nbsp;    private final MemoryMXBean mxBean;
    -&nbsp;    private final List&lt;MemoryPoolMXBean&gt; memoryPools;
    -&nbsp;
    -&nbsp;    public MemoryUsageGaugeSet() {
    -<b class="nc">&nbsp;        this(ManagementFactory.getMemoryMXBean(), ManagementFactory.getMemoryPoolMXBeans());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MemoryUsageGaugeSet(MemoryMXBean mxBean,
    -<b class="nc">&nbsp;                               Collection&lt;MemoryPoolMXBean&gt; memoryPools) {</b>
    -<b class="nc">&nbsp;        this.mxBean = mxBean;</b>
    -<b class="nc">&nbsp;        this.memoryPools = new ArrayList&lt;&gt;(memoryPools);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="nc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        gauges.put(&quot;total.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getInit() +</b>
    -<b class="nc">&nbsp;                mxBean.getNonHeapMemoryUsage().getInit());</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;total.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getUsed() +</b>
    -<b class="nc">&nbsp;                mxBean.getNonHeapMemoryUsage().getUsed());</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;total.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getMax() == -1 ?</b>
    -<b class="nc">&nbsp;                -1 : mxBean.getHeapMemoryUsage().getMax() + mxBean.getNonHeapMemoryUsage().getMax());</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;total.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getCommitted() +</b>
    -<b class="nc">&nbsp;                mxBean.getNonHeapMemoryUsage().getCommitted());</b>
    -&nbsp;
    -<b class="nc">&nbsp;        gauges.put(&quot;heap.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getInit());</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;heap.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getUsed());</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;heap.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getMax());</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;heap.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getHeapMemoryUsage().getCommitted());</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;heap.usage&quot;, new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                final MemoryUsage usage = mxBean.getHeapMemoryUsage();</b>
    -<b class="nc">&nbsp;                return Ratio.of(usage.getUsed(), usage.getMax());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="nc">&nbsp;        gauges.put(&quot;non-heap.init&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getInit());</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;non-heap.used&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getUsed());</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;non-heap.max&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getMax());</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;non-heap.committed&quot;, (Gauge&lt;Long&gt;) () -&gt; mxBean.getNonHeapMemoryUsage().getCommitted());</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;non-heap.usage&quot;, new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                final MemoryUsage usage = mxBean.getNonHeapMemoryUsage();</b>
    -<b class="nc">&nbsp;                return Ratio.of(usage.getUsed(), usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="nc">&nbsp;        for (final MemoryPoolMXBean pool : memoryPools) {</b>
    -<b class="nc">&nbsp;            final String poolName = name(&quot;pools&quot;, WHITESPACE.matcher(pool.getName()).replaceAll(&quot;-&quot;));</b>
    -&nbsp;
    -<b class="nc">&nbsp;            gauges.put(name(poolName, &quot;usage&quot;), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    MemoryUsage usage = pool.getUsage();</b>
    -<b class="nc">&nbsp;                    return Ratio.of(usage.getUsed(),</b>
    -<b class="nc">&nbsp;                            usage.getMax() == -1 ? usage.getCommitted() : usage.getMax());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="nc">&nbsp;            gauges.put(name(poolName, &quot;max&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getMax());</b>
    -<b class="nc">&nbsp;            gauges.put(name(poolName, &quot;used&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getUsed());</b>
    -<b class="nc">&nbsp;            gauges.put(name(poolName, &quot;committed&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getCommitted());</b>
    -&nbsp;
    -&nbsp;            // Only register GC usage metrics if the memory pool supports usage statistics.
    -<b class="nc">&nbsp;            if (pool.getCollectionUsage() != null) {</b>
    -<b class="nc">&nbsp;                gauges.put(name(poolName, &quot;used-after-gc&quot;), (Gauge&lt;Long&gt;) () -&gt;</b>
    -<b class="nc">&nbsp;                        pool.getCollectionUsage().getUsed());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="nc">&nbsp;            gauges.put(name(poolName, &quot;init&quot;), (Gauge&lt;Long&gt;) () -&gt; pool.getUsage().getInit());</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-a.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-a.html
    deleted file mode 100644
    index 521e58ae53..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-a.html
    +++ /dev/null
    @@ -1,169 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDeadlockDetector</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDeadlockDetector (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDeadlockDetector</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    30%
    -  </span>
    -  <span class="absValue">
    -    (6/20)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashSet;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A utility class for detecting deadlocked threads.
    -&nbsp; */
    -&nbsp;public class ThreadDeadlockDetector {
    -&nbsp;    private static final int MAX_STACK_TRACE_DEPTH = 100;
    -&nbsp;
    -&nbsp;    private final ThreadMXBean threads;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new detector.
    -&nbsp;     */
    -&nbsp;    public ThreadDeadlockDetector() {
    -<b class="fc">&nbsp;        this(ManagementFactory.getThreadMXBean());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new detector using the given {@link ThreadMXBean}.
    -&nbsp;     *
    -&nbsp;     * @param threads a {@link ThreadMXBean}
    -&nbsp;     */
    -<b class="fc">&nbsp;    public ThreadDeadlockDetector(ThreadMXBean threads) {</b>
    -<b class="fc">&nbsp;        this.threads = threads;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a set of diagnostic stack traces for any deadlocked threads. If no threads are
    -&nbsp;     * deadlocked, returns an empty set.
    -&nbsp;     *
    -&nbsp;     * @return stack traces for deadlocked threads or an empty set
    -&nbsp;     */
    -&nbsp;    public Set&lt;String&gt; getDeadlockedThreads() {
    -<b class="fc">&nbsp;        final long[] ids = threads.findDeadlockedThreads();</b>
    -<b class="fc">&nbsp;        if (ids != null) {</b>
    -<b class="nc">&nbsp;            final Set&lt;String&gt; deadlocks = new HashSet&lt;&gt;();</b>
    -<b class="nc">&nbsp;            for (ThreadInfo info : threads.getThreadInfo(ids, MAX_STACK_TRACE_DEPTH)) {</b>
    -<b class="nc">&nbsp;                final StringBuilder stackTrace = new StringBuilder();</b>
    -<b class="nc">&nbsp;                for (StackTraceElement element : info.getStackTrace()) {</b>
    -<b class="nc">&nbsp;                    stackTrace.append(&quot;\t at &quot;)</b>
    -<b class="nc">&nbsp;                            .append(element.toString())</b>
    -<b class="nc">&nbsp;                            .append(String.format(&quot;%n&quot;));</b>
    -&nbsp;                }
    -&nbsp;
    -<b class="nc">&nbsp;                deadlocks.add(</b>
    -<b class="nc">&nbsp;                        String.format(&quot;%s locked on %s (owned by %s):%n%s&quot;,</b>
    -<b class="nc">&nbsp;                                info.getThreadName(),</b>
    -<b class="nc">&nbsp;                                info.getLockName(),</b>
    -<b class="nc">&nbsp;                                info.getLockOwnerName(),</b>
    -<b class="nc">&nbsp;                                stackTrace.toString()</b>
    -&nbsp;                        )
    -&nbsp;                );
    -&nbsp;            }
    -<b class="nc">&nbsp;            return Collections.unmodifiableSet(deadlocks);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return Collections.emptySet();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-b.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-b.html
    deleted file mode 100644
    index dc652bf11f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-b.html
    +++ /dev/null
    @@ -1,217 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDump</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDump (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDump</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (39/48)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.lang.management.LockInfo;
    -&nbsp;import java.lang.management.MonitorInfo;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A convenience class for getting a thread dump.
    -&nbsp; */
    -&nbsp;public class ThreadDump {
    -&nbsp;
    -&nbsp;    private final ThreadMXBean threadMXBean;
    -&nbsp;
    -<b class="fc">&nbsp;    public ThreadDump(ThreadMXBean threadMXBean) {</b>
    -<b class="fc">&nbsp;        this.threadMXBean = threadMXBean;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Dumps all of the threads&#39; current information, including synchronization, to an output stream.
    -&nbsp;     *
    -&nbsp;     * @param out an output stream
    -&nbsp;     */
    -&nbsp;    public void dump(OutputStream out) {
    -<b class="nc">&nbsp;        dump(true, true, out);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Dumps all of the threads&#39; current information, optionally including synchronization, to an output stream.
    -&nbsp;     *
    -&nbsp;     * Having control over including synchronization info allows using this method (and its wrappers, i.e.
    -&nbsp;     * ThreadDumpServlet) in environments where getting object monitor and/or ownable synchronizer usage is not
    -&nbsp;     * supported. It can also speed things up.
    -&nbsp;     *
    -&nbsp;     * See {@link ThreadMXBean#dumpAllThreads(boolean, boolean)}
    -&nbsp;     *
    -&nbsp;     * @param lockedMonitors dump all locked monitors if true
    -&nbsp;     * @param lockedSynchronizers dump all locked ownable synchronizers if true
    -&nbsp;     * @param out an output stream
    -&nbsp;     */
    -&nbsp;    public void dump(boolean lockedMonitors, boolean lockedSynchronizers, OutputStream out) {
    -<b class="fc">&nbsp;        final ThreadInfo[] threads = this.threadMXBean.dumpAllThreads(lockedMonitors, lockedSynchronizers);</b>
    -<b class="fc">&nbsp;        final PrintWriter writer = new PrintWriter(new OutputStreamWriter(out, UTF_8));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (int ti = threads.length - 1; ti &gt;= 0; ti--) {</b>
    -<b class="fc">&nbsp;            final ThreadInfo t = threads[ti];</b>
    -<b class="fc">&nbsp;            writer.printf(&quot;\&quot;%s\&quot; id=%d state=%s&quot;,</b>
    -<b class="fc">&nbsp;                    t.getThreadName(),</b>
    -<b class="fc">&nbsp;                    t.getThreadId(),</b>
    -<b class="fc">&nbsp;                    t.getThreadState());</b>
    -<b class="fc">&nbsp;            final LockInfo lock = t.getLockInfo();</b>
    -<b class="fc">&nbsp;            if (lock != null &amp;&amp; t.getThreadState() != Thread.State.BLOCKED) {</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;%n    - waiting on &lt;0x%08x&gt; (a %s)&quot;,</b>
    -<b class="fc">&nbsp;                        lock.getIdentityHashCode(),</b>
    -<b class="fc">&nbsp;                        lock.getClassName());</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;%n    - locked &lt;0x%08x&gt; (a %s)&quot;,</b>
    -<b class="fc">&nbsp;                        lock.getIdentityHashCode(),</b>
    -<b class="fc">&nbsp;                        lock.getClassName());</b>
    -<b class="fc">&nbsp;            } else if (lock != null &amp;&amp; t.getThreadState() == Thread.State.BLOCKED) {</b>
    -<b class="nc">&nbsp;                writer.printf(&quot;%n    - waiting to lock &lt;0x%08x&gt; (a %s)&quot;,</b>
    -<b class="nc">&nbsp;                        lock.getIdentityHashCode(),</b>
    -<b class="nc">&nbsp;                        lock.getClassName());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (t.isSuspended()) {</b>
    -<b class="nc">&nbsp;                writer.print(&quot; (suspended)&quot;);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (t.isInNative()) {</b>
    -<b class="fc">&nbsp;                writer.print(&quot; (running in native)&quot;);</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            writer.println();</b>
    -<b class="fc">&nbsp;            if (t.getLockOwnerName() != null) {</b>
    -<b class="nc">&nbsp;                writer.printf(&quot;     owned by %s id=%d%n&quot;, t.getLockOwnerName(), t.getLockOwnerId());</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            final StackTraceElement[] elements = t.getStackTrace();</b>
    -<b class="fc">&nbsp;            final MonitorInfo[] monitors = t.getLockedMonitors();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (int i = 0; i &lt; elements.length; i++) {</b>
    -<b class="fc">&nbsp;                final StackTraceElement element = elements[i];</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;    at %s%n&quot;, element);</b>
    -<b class="fc">&nbsp;                for (int j = 1; j &lt; monitors.length; j++) {</b>
    -<b class="nc">&nbsp;                    final MonitorInfo monitor = monitors[j];</b>
    -<b class="nc">&nbsp;                    if (monitor.getLockedStackDepth() == i) {</b>
    -<b class="nc">&nbsp;                        writer.printf(&quot;      - locked %s%n&quot;, monitor);</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -<b class="fc">&nbsp;            writer.println();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final LockInfo[] locks = t.getLockedSynchronizers();</b>
    -<b class="fc">&nbsp;            if (locks.length &gt; 0) {</b>
    -<b class="fc">&nbsp;                writer.printf(&quot;    Locked synchronizers: count = %d%n&quot;, locks.length);</b>
    -<b class="fc">&nbsp;                for (LockInfo l : locks) {</b>
    -<b class="fc">&nbsp;                    writer.printf(&quot;      - %s%n&quot;, l);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                writer.println();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        writer.println();</b>
    -<b class="fc">&nbsp;        writer.flush();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-c.html b/metrics-complete-report-initial-htmlReport/ns-18/sources/source-c.html
    deleted file mode 100644
    index 6ed9cf1e83..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-18/sources/source-c.html
    +++ /dev/null
    @@ -1,185 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadStatesGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadStatesGaugeSet (com.codahale.metrics.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadStatesGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/22)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.management.ThreadInfo;
    -&nbsp;import java.lang.management.ThreadMXBean;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A set of gauges for the number of threads in their various states and deadlock detection.
    -&nbsp; */
    -&nbsp;public class ThreadStatesGaugeSet implements MetricSet {
    -&nbsp;
    -&nbsp;    // do not compute stack traces.
    -&nbsp;    private final static int STACK_TRACE_DEPTH = 0;
    -&nbsp;
    -&nbsp;    private final ThreadMXBean threads;
    -&nbsp;    private final ThreadDeadlockDetector deadlockDetector;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the default MXBeans.
    -&nbsp;     */
    -&nbsp;    public ThreadStatesGaugeSet() {
    -<b class="nc">&nbsp;        this(ManagementFactory.getThreadMXBean(), new ThreadDeadlockDetector());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new set of gauges using the given MXBean and detector.
    -&nbsp;     *
    -&nbsp;     * @param threads          a thread MXBean
    -&nbsp;     * @param deadlockDetector a deadlock detector
    -&nbsp;     */
    -&nbsp;    public ThreadStatesGaugeSet(ThreadMXBean threads,
    -<b class="nc">&nbsp;                                ThreadDeadlockDetector deadlockDetector) {</b>
    -<b class="nc">&nbsp;        this.threads = threads;</b>
    -<b class="nc">&nbsp;        this.deadlockDetector = deadlockDetector;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="nc">&nbsp;        final Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        for (final Thread.State state : Thread.State.values()) {</b>
    -<b class="nc">&nbsp;            gauges.put(name(state.toString().toLowerCase(), &quot;count&quot;),</b>
    -<b class="nc">&nbsp;                    (Gauge&lt;Object&gt;) () -&gt; getThreadCount(state));</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        gauges.put(&quot;count&quot;, (Gauge&lt;Integer&gt;) threads::getThreadCount);</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;daemon.count&quot;, (Gauge&lt;Integer&gt;) threads::getDaemonThreadCount);</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;peak.count&quot;, (Gauge&lt;Integer&gt;) threads::getPeakThreadCount);</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;total_started.count&quot;, (Gauge&lt;Long&gt;) threads::getTotalStartedThreadCount);</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;deadlock.count&quot;, (Gauge&lt;Integer&gt;) () -&gt; deadlockDetector.getDeadlockedThreads().size());</b>
    -<b class="nc">&nbsp;        gauges.put(&quot;deadlocks&quot;, (Gauge&lt;Set&lt;String&gt;&gt;) deadlockDetector::getDeadlockedThreads);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private int getThreadCount(Thread.State state) {
    -<b class="nc">&nbsp;        final ThreadInfo[] allThreads = getThreadInfo();</b>
    -<b class="nc">&nbsp;        int count = 0;</b>
    -<b class="nc">&nbsp;        for (ThreadInfo info : allThreads) {</b>
    -<b class="nc">&nbsp;            if (info != null &amp;&amp; info.getThreadState() == state) {</b>
    -<b class="nc">&nbsp;                count++;</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="nc">&nbsp;        return count;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    ThreadInfo[] getThreadInfo() {
    -<b class="nc">&nbsp;        return threads.getThreadInfo(threads.getAllThreadIds(), STACK_TRACE_DEPTH);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index.html b/metrics-complete-report-initial-htmlReport/ns-19/index.html
    deleted file mode 100644
    index 810f0dfbe7..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-19/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 15b22e3cf2..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 4261db1855..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 1d9c4f0f2d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 5e6109106e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_LINE.html
    deleted file mode 100644
    index e71613c7dc..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index bdb827d910..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index a97efd3775..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index ec2c820ccf..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 79ad6ee01d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-19/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.log4j2</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.log4j2</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.log4j2</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.log4j2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-19/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-19/sources/source-1.html
    deleted file mode 100644
    index 5963f3403a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-19/sources/source-1.html
    +++ /dev/null
    @@ -1,268 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.log4j2</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.log4j2)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (29/30)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedAppender$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.8%
    -  </span>
    -  <span class="absValue">
    -    (30/31)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.log4j2;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import org.apache.logging.log4j.core.Appender;
    -&nbsp;import org.apache.logging.log4j.core.Filter;
    -&nbsp;import org.apache.logging.log4j.core.Layout;
    -&nbsp;import org.apache.logging.log4j.core.LogEvent;
    -&nbsp;import org.apache.logging.log4j.core.appender.AbstractAppender;
    -&nbsp;import org.apache.logging.log4j.core.config.plugins.Plugin;
    -&nbsp;import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
    -&nbsp;import org.apache.logging.log4j.core.config.plugins.PluginFactory;
    -&nbsp;
    -&nbsp;import java.io.Serializable;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Log4J 2.x {@link Appender} which has seven meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;@Plugin(name = &quot;MetricsAppender&quot;, category = &quot;Core&quot;, elementType = &quot;appender&quot;)
    -&nbsp;public class InstrumentedAppender extends AbstractAppender {
    -&nbsp;
    -&nbsp;    private transient final MetricRegistry registry;
    -&nbsp;
    -&nbsp;    private transient Meter all;
    -&nbsp;    private transient Meter trace;
    -&nbsp;    private transient Meter debug;
    -&nbsp;    private transient Meter info;
    -&nbsp;    private transient Meter warn;
    -&nbsp;    private transient Meter error;
    -&nbsp;    private transient Meter fatal;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName     the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     * @param filter           The Filter to associate with the Appender.
    -&nbsp;     * @param layout           The layout to use to format the event.
    -&nbsp;     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
    -&nbsp;     *                         logged and then passed to the application.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName, Filter filter, Layout&lt;? extends Serializable&gt; layout, boolean ignoreExceptions) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName), filter, layout, ignoreExceptions);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, null, null, true);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry         the metric registry
    -&nbsp;     * @param filter           The Filter to associate with the Appender.
    -&nbsp;     * @param layout           The layout to use to format the event.
    -&nbsp;     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
    -&nbsp;     *                         logged and then passed to the application.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(MetricRegistry registry, Filter filter, Layout&lt;? extends Serializable&gt; layout, boolean ignoreExceptions) {
    -<b class="fc">&nbsp;        super(name(Appender.class), filter, layout, ignoreExceptions);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given appender name and registry.
    -&nbsp;     *
    -&nbsp;     * @param appenderName The name of the appender.
    -&nbsp;     * @param registry     the metric registry
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String appenderName, MetricRegistry registry) {
    -<b class="fc">&nbsp;        super(appenderName, null, null, true);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @PluginFactory
    -&nbsp;    public static InstrumentedAppender createAppender(
    -&nbsp;            @PluginAttribute(&quot;name&quot;) String name,
    -&nbsp;            @PluginAttribute(value = &quot;registryName&quot;, defaultString = &quot;log4j2Metrics&quot;) String registry) {
    -<b class="fc">&nbsp;        return new InstrumentedAppender(name, SharedMetricRegistries.getOrCreate(registry));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        this.fatal = registry.meter(name(getName(), &quot;fatal&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void append(LogEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().getStandardLevel()) {</b>
    -&nbsp;            case TRACE:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case DEBUG:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case INFO:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case WARN:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case ERROR:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case FATAL:
    -<b class="fc">&nbsp;                fatal.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index.html b/metrics-complete-report-initial-htmlReport/ns-1a/index.html
    deleted file mode 100644
    index 65059352e3..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1a/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index f803900c26..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 724a5b21da..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 1abc930665..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index e81fefb9c0..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 0901e96d3b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 4e37cadc12..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index c2492b6144..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 84c0789409..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index a8caf321eb..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1a/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.logback</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.logback</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.logback</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.logback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1a/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-1a/sources/source-1.html
    deleted file mode 100644
    index ebbdcad800..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1a/sources/source-1.html
    +++ /dev/null
    @@ -1,195 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.logback</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (com.codahale.metrics.logback)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.logback;
    -&nbsp;
    -&nbsp;import ch.qos.logback.classic.Level;
    -&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    -&nbsp;import ch.qos.logback.core.Appender;
    -&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    -&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    -&nbsp;
    -&nbsp;    private Meter all;
    -&nbsp;    private Meter trace;
    -&nbsp;    private Meter debug;
    -&nbsp;    private Meter info;
    -&nbsp;    private Meter warn;
    -&nbsp;    private Meter error;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender() {
    -<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void append(ILoggingEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    -&nbsp;            case Level.TRACE_INT:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.DEBUG_INT:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.INFO_INT:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.WARN_INT:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.ERROR_INT:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index.html b/metrics-complete-report-initial-htmlReport/ns-1b/index.html
    deleted file mode 100644
    index 0dcc5ef7ef..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1b/index.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 8f52d8d26c..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 21093638d9..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 551a452f27..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 0392015768..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 0514c9853f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 9c9c6ef7dd..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 76d3acf9ce..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index bcb09112a2..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index f15c389769..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1b/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-1b/sources/source-1.html
    deleted file mode 100644
    index 95fdf70d97..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1b/sources/source-1.html
    +++ /dev/null
    @@ -1,367 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AbstractInstrumentedFilter (com.codahale.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AbstractInstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/45)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.Filter;
    -&nbsp;import javax.servlet.FilterChain;
    -&nbsp;import javax.servlet.FilterConfig;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.ServletRequest;
    -&nbsp;import javax.servlet.ServletResponse;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import javax.servlet.http.HttpServletResponseWrapper;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Map.Entry;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    -&nbsp; * codes being returned.
    -&nbsp; */
    -<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    -&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    -&nbsp;
    -&nbsp;    private final String otherMetricName;
    -&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    -&nbsp;    private final String registryAttribute;
    -&nbsp;
    -&nbsp;    // initialized after call of init method
    -&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    -&nbsp;    private Meter otherMeter;
    -&nbsp;    private Meter timeoutsMeter;
    -&nbsp;    private Meter errorsMeter;
    -&nbsp;    private Counter activeRequests;
    -&nbsp;    private Timer requestTimer;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     *
    -&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    -&nbsp;     *                               servlet context
    -&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    -&nbsp;     *                               interested in.
    -&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    -&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    -<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    -<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    -<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    -<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    -<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    -<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    -<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    -<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    -<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    -<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    -<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    -<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    -<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    -<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    -&nbsp;        final MetricRegistry metricsRegistry;
    -&nbsp;
    -<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    -<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    -<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return metricsRegistry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void doFilter(ServletRequest request,
    -&nbsp;                         ServletResponse response,
    -&nbsp;                         FilterChain chain) throws IOException, ServletException {
    -<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    -&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    -<b class="nc">&nbsp;        activeRequests.inc();</b>
    -<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    -<b class="nc">&nbsp;        boolean error = false;</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    -<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    -<b class="nc">&nbsp;            error = true;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                if (error) {</b>
    -<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void markMeterForStatusCode(int status) {
    -<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    -<b class="nc">&nbsp;        if (metric != null) {</b>
    -<b class="nc">&nbsp;            metric.mark();</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            otherMeter.mark();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    -&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    -<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    -&nbsp;
    -&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    -<b class="nc">&nbsp;            super(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc, String msg) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void setStatus(int sc) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;        public void setStatus(int sc, String sm) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc, sm);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int getStatus() {
    -<b class="nc">&nbsp;            return httpStatus;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class AsyncResultListener implements AsyncListener {
    -&nbsp;        private Timer.Context context;
    -<b class="nc">&nbsp;        private boolean done = false;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    -<b class="nc">&nbsp;            this.context = context;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            if (!done) {</b>
    -<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            errorsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -&nbsp;
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-1b/sources/source-2.html
    deleted file mode 100644
    index adba313f17..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1b/sources/source-2.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilter (com.codahale.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    -&nbsp;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    -&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    -&nbsp; * &lt;pre&gt;{@code
    -&nbsp; * &lt;filter&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;filter-class&gt;com.codahale.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    -&nbsp; * &lt;/filter&gt;
    -&nbsp; * &lt;filter-mapping&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    -&nbsp; * &lt;/filter-mapping&gt;
    -&nbsp; * }&lt;/pre&gt;
    -&nbsp; */
    -&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    -<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    -&nbsp;    private static final int OK = 200;
    -&nbsp;    private static final int CREATED = 201;
    -&nbsp;    private static final int NO_CONTENT = 204;
    -&nbsp;    private static final int BAD_REQUEST = 400;
    -&nbsp;    private static final int NOT_FOUND = 404;
    -&nbsp;    private static final int SERVER_ERROR = 500;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     */
    -&nbsp;    public InstrumentedFilter() {
    -<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    -<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    -<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1b/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-1b/sources/source-3.html
    deleted file mode 100644
    index 7461dc7bc9..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1b/sources/source-3.html
    +++ /dev/null
    @@ -1,131 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilterContextListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilterContextListener (com.codahale.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilterContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlet;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletContextEvent;
    -&nbsp;import javax.servlet.ServletContextListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    -&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    -&nbsp; * application.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    -&nbsp;    /**
    -&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;     */
    -&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    -<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index.html b/metrics-complete-report-initial-htmlReport/ns-1c/index.html
    deleted file mode 100644
    index db5535719b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1c/index.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index b72995b365..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index b7bb3e5d6b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index f5ea8ea05e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 1468ccd754..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 9e1d1c444a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index d008c00f96..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index c51acb751e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index addd48ccff..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 448f64a921..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1c/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.8%
    -  </span>
    -  <span class="absValue">
    -    (211/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-1.html
    deleted file mode 100644
    index 9f42865228..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-1.html
    +++ /dev/null
    @@ -1,293 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AdminServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AdminServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AdminServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletConfig;
    -&nbsp;import javax.servlet.ServletContext;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.text.MessageFormat;
    -&nbsp;
    -<b class="fc">&nbsp;public class AdminServlet extends HttpServlet {</b>
    -&nbsp;    public static final String DEFAULT_HEALTHCHECK_URI = &quot;/healthcheck&quot;;
    -&nbsp;    public static final String DEFAULT_METRICS_URI = &quot;/metrics&quot;;
    -&nbsp;    public static final String DEFAULT_PING_URI = &quot;/ping&quot;;
    -&nbsp;    public static final String DEFAULT_THREADS_URI = &quot;/threads&quot;;
    -&nbsp;    public static final String DEFAULT_CPU_PROFILE_URI = &quot;/pprof&quot;;
    -&nbsp;
    -&nbsp;    public static final String METRICS_ENABLED_PARAM_KEY = &quot;metrics-enabled&quot;;
    -&nbsp;    public static final String METRICS_URI_PARAM_KEY = &quot;metrics-uri&quot;;
    -&nbsp;    public static final String PING_ENABLED_PARAM_KEY = &quot;ping-enabled&quot;;
    -&nbsp;    public static final String PING_URI_PARAM_KEY = &quot;ping-uri&quot;;
    -&nbsp;    public static final String THREADS_ENABLED_PARAM_KEY = &quot;threads-enabled&quot;;
    -&nbsp;    public static final String THREADS_URI_PARAM_KEY = &quot;threads-uri&quot;;
    -&nbsp;    public static final String HEALTHCHECK_ENABLED_PARAM_KEY = &quot;healthcheck-enabled&quot;;
    -&nbsp;    public static final String HEALTHCHECK_URI_PARAM_KEY = &quot;healthcheck-uri&quot;;
    -&nbsp;    public static final String SERVICE_NAME_PARAM_KEY = &quot;service-name&quot;;
    -&nbsp;    public static final String CPU_PROFILE_ENABLED_PARAM_KEY = &quot;cpu-profile-enabled&quot;;
    -&nbsp;    public static final String CPU_PROFILE_URI_PARAM_KEY = &quot;cpu-profile-uri&quot;;
    -&nbsp;
    -&nbsp;    private static final String BASE_TEMPLATE =
    -&nbsp;            &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot;%n&quot; +
    -&nbsp;                    &quot;        \&quot;http://www.w3.org/TR/html4/loose.dtd\&quot;&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;html&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;head&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;title&gt;Metrics{10}&lt;/title&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/head&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;body&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;h1&gt;Operational Menu{10}&lt;/h1&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;ul&gt;%n&quot; +
    -&nbsp;                    &quot;%s&quot; +
    -&nbsp;                    &quot;  &lt;/ul&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/body&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/html&gt;&quot;;
    -&nbsp;    private static final String METRICS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{0}{1}?pretty=true\&quot;&gt;Metrics&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;    private static final String PING_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{2}{3}\&quot;&gt;Ping&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String THREADS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{4}{5}\&quot;&gt;Threads&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String HEALTHCHECK_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{6}{7}?pretty=true\&quot;&gt;Healthcheck&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String CPU_PROFILE_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}\&quot;&gt;CPU Profile&lt;/a&gt;&lt;/li&gt;%n&quot; +
    -&nbsp;            &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}?state=blocked\&quot;&gt;CPU Contention&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;
    -&nbsp;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/html&quot;;
    -&nbsp;    private static final long serialVersionUID = -2850794040708785318L;
    -&nbsp;
    -&nbsp;    private transient HealthCheckServlet healthCheckServlet;
    -&nbsp;    private transient MetricsServlet metricsServlet;
    -&nbsp;    private transient PingServlet pingServlet;
    -&nbsp;    private transient ThreadDumpServlet threadDumpServlet;
    -&nbsp;    private transient CpuProfileServlet cpuProfileServlet;
    -&nbsp;    private transient boolean metricsEnabled;
    -&nbsp;    private transient String metricsUri;
    -&nbsp;    private transient boolean pingEnabled;
    -&nbsp;    private transient String pingUri;
    -&nbsp;    private transient boolean threadsEnabled;
    -&nbsp;    private transient String threadsUri;
    -&nbsp;    private transient boolean healthcheckEnabled;
    -&nbsp;    private transient String healthcheckUri;
    -&nbsp;    private transient boolean cpuProfileEnabled;
    -&nbsp;    private transient String cpuProfileUri;
    -&nbsp;    private transient String serviceName;
    -&nbsp;    private transient String pageContentTemplate;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        final StringBuilder servletLinks = new StringBuilder();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.metricsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.metricsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(METRICS_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.metricsServlet = new MetricsServlet();</b>
    -<b class="fc">&nbsp;        metricsServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.pingEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.pingEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(PING_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.pingServlet = new PingServlet();</b>
    -<b class="fc">&nbsp;        pingServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.threadsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.threadsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(THREADS_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.threadDumpServlet = new ThreadDumpServlet();</b>
    -<b class="fc">&nbsp;        threadDumpServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.healthcheckEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.healthcheckEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(HEALTHCHECK_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.healthCheckServlet = new HealthCheckServlet();</b>
    -<b class="fc">&nbsp;        healthCheckServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.cpuProfileEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.cpuProfileEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(CPU_PROFILE_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.cpuProfileServlet = new CpuProfileServlet();</b>
    -<b class="fc">&nbsp;        cpuProfileServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);</b>
    -<b class="fc">&nbsp;        this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);</b>
    -<b class="fc">&nbsp;        this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);</b>
    -<b class="fc">&nbsp;        this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);</b>
    -<b class="fc">&nbsp;        this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);</b>
    -<b class="fc">&nbsp;        this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String path = req.getContextPath() + req.getServletPath();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,</b>
    -&nbsp;                    threadsUri, path, healthcheckUri, path, cpuProfileUri,
    -<b class="fc">&nbsp;                    serviceName == null ? &quot;&quot; : &quot; (&quot; + serviceName + &quot;)&quot;));</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String uri = req.getPathInfo();</b>
    -<b class="fc">&nbsp;        if (uri == null || uri.equals(&quot;/&quot;)) {</b>
    -<b class="fc">&nbsp;            super.service(req, resp);</b>
    -<b class="nc">&nbsp;        } else if (uri.equals(healthcheckUri)) {</b>
    -<b class="nc">&nbsp;            if (healthcheckEnabled) {</b>
    -<b class="nc">&nbsp;                healthCheckServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.startsWith(metricsUri)) {</b>
    -<b class="nc">&nbsp;            if (metricsEnabled) {</b>
    -<b class="nc">&nbsp;                metricsServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(pingUri)) {</b>
    -<b class="nc">&nbsp;            if (pingEnabled) {</b>
    -<b class="nc">&nbsp;                pingServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(threadsUri)) {</b>
    -<b class="nc">&nbsp;            if (threadsEnabled) {</b>
    -<b class="nc">&nbsp;                threadDumpServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(cpuProfileUri)) {</b>
    -<b class="nc">&nbsp;            if (cpuProfileEnabled) {</b>
    -<b class="nc">&nbsp;                cpuProfileServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static String getParam(String initParam, String defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : initParam;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-2.html
    deleted file mode 100644
    index 6956f226f7..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-2.html
    +++ /dev/null
    @@ -1,183 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CpuProfileServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CpuProfileServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CpuProfileServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.concurrent.locks.Lock;
    -&nbsp;import java.util.concurrent.locks.ReentrantLock;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import com.papertrail.profiler.CpuProfile;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a &lt;a href=&quot;https://github.com/gperftools/gperftools&quot;&gt;pprof&lt;/a&gt; parseable response.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CpuProfileServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = -668666696530287501L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;pprof/raw&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -<b class="fc">&nbsp;    private final Lock lock = new ReentrantLock();</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -&nbsp;
    -<b class="fc">&nbsp;        int duration = 10;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;duration&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                duration = Integer.parseInt(req.getParameter(&quot;duration&quot;));</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                duration = 10;</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        int frequency = 100;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;frequency&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                frequency = Integer.parseInt(req.getParameter(&quot;frequency&quot;));</b>
    -<b class="nc">&nbsp;                frequency = Math.min(Math.max(frequency, 1), 1000);</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                frequency = 100;</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        final Thread.State state;
    -<b class="fc">&nbsp;        if (&quot;blocked&quot;.equalsIgnoreCase(req.getParameter(&quot;state&quot;))) {</b>
    -<b class="nc">&nbsp;            state = Thread.State.BLOCKED;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            state = Thread.State.RUNNABLE;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            doProfile(output, duration, frequency, state);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
    -<b class="fc">&nbsp;        if (lock.tryLock()) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),</b>
    -&nbsp;                        frequency, state);
    -<b class="fc">&nbsp;                if (profile == null) {</b>
    -<b class="nc">&nbsp;                    throw new RuntimeException(&quot;could not create CpuProfile&quot;);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                profile.writeGoogleProfile(out);</b>
    -&nbsp;                return;
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                lock.unlock();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        throw new RuntimeException(&quot;Only one profile request may be active at a time&quot;);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-3.html
    deleted file mode 100644
    index ac6ed9ec6f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-3.html
    +++ /dev/null
    @@ -1,325 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.7%
    -  </span>
    -  <span class="absValue">
    -    (59/61)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.3%
    -  </span>
    -  <span class="absValue">
    -    (59/70)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.codahale.metrics.health.HealthCheckFilter;
    -&nbsp;import com.codahale.metrics.health.HealthCheckRegistry;
    -&nbsp;import com.codahale.metrics.json.HealthCheckModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletConfig;
    -&nbsp;import javax.servlet.ServletContext;
    -&nbsp;import javax.servlet.ServletContextEvent;
    -&nbsp;import javax.servlet.ServletContextListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;
    -&nbsp;public class HealthCheckServlet extends HttpServlet {
    -<b class="nc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract HealthCheckRegistry getHealthCheckRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
    -&nbsp;         * if the health checks should be run in the servlet worker thread.
    -&nbsp;         */
    -&nbsp;        protected ExecutorService getExecutorService() {
    -&nbsp;            // don&#39;t use a thread pool by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
    -&nbsp;         * or {@link HealthCheckFilter#ALL} if the default should be used.
    -&nbsp;         */
    -&nbsp;        protected HealthCheckFilter getHealthCheckFilter() {
    -<b class="nc">&nbsp;            return HealthCheckFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ObjectMapper} that shall be used to render health checks,
    -&nbsp;         * or {@code null} if the default object mapper should be used.
    -&nbsp;         */
    -&nbsp;        protected ObjectMapper getObjectMapper() {
    -&nbsp;            // don&#39;t use an object mapper by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="nc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + &quot;.executor&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + &quot;.healthCheckFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + &quot;.mapper&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + &quot;.httpStatusIndicator&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -8432996484889177321L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;    private static final String HTTP_STATUS_INDICATOR_PARAM = &quot;httpStatusIndicator&quot;;
    -&nbsp;
    -&nbsp;    private transient HealthCheckRegistry registry;
    -&nbsp;    private transient ExecutorService executorService;
    -&nbsp;    private transient HealthCheckFilter filter;
    -&nbsp;    private transient ObjectMapper mapper;
    -&nbsp;    private transient boolean httpStatusIndicator;
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet(HealthCheckRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof HealthCheckRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (HealthCheckRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a HealthCheckRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);</b>
    -<b class="fc">&nbsp;        if (executorAttr instanceof ExecutorService) {</b>
    -<b class="fc">&nbsp;            this.executorService = (ExecutorService) executorAttr;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);</b>
    -<b class="fc">&nbsp;        if (filterAttr instanceof HealthCheckFilter) {</b>
    -<b class="fc">&nbsp;            filter = (HealthCheckFilter) filterAttr;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = HealthCheckFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);</b>
    -<b class="fc">&nbsp;        if (mapperAttr instanceof ObjectMapper) {</b>
    -<b class="fc">&nbsp;            this.mapper = (ObjectMapper) mapperAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.mapper = new ObjectMapper();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.mapper.registerModule(new HealthCheckModule());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);</b>
    -<b class="fc">&nbsp;        if (httpStatusIndicatorAttr instanceof Boolean) {</b>
    -<b class="nc">&nbsp;            this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.httpStatusIndicator = true;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -<b class="fc">&nbsp;        super.destroy();</b>
    -<b class="fc">&nbsp;        registry.shutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = runHealthChecks();</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (results.isEmpty()) {</b>
    -<b class="fc">&nbsp;            resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);</b>
    -<b class="fc">&nbsp;            final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);</b>
    -<b class="fc">&nbsp;            final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;</b>
    -<b class="fc">&nbsp;            if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {</b>
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            getWriter(req).writeValue(output, results);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    -<b class="fc">&nbsp;        if (executorService == null) {</b>
    -<b class="nc">&nbsp;            return registry.runHealthChecks(filter);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return registry.runHealthChecks(executorService, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static boolean isAllHealthy(Map&lt;String, HealthCheck.Result&gt; results) {
    -<b class="fc">&nbsp;        for (HealthCheck.Result result : results.values()) {</b>
    -<b class="fc">&nbsp;            if (!result.isHealthy()) {</b>
    -<b class="fc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    // visible for testing
    -&nbsp;    ObjectMapper getMapper() {
    -<b class="fc">&nbsp;        return mapper;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-4.html
    deleted file mode 100644
    index 5878dbfe9a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-4.html
    +++ /dev/null
    @@ -1,329 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (44/44)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetricsServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (14/18)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletConfig;
    -&nbsp;import javax.servlet.ServletContext;
    -&nbsp;import javax.servlet.ServletContextEvent;
    -&nbsp;import javax.servlet.ServletContextListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.json.MetricsModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;import com.fasterxml.jackson.databind.util.JSONPObject;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A servlet which returns the metrics in a given registry as an {@code application/json} response.
    -&nbsp; */
    -&nbsp;public class MetricsServlet extends HttpServlet {
    -&nbsp;    /**
    -&nbsp;     * An abstract {@link ServletContextListener} which allows you to programmatically inject the
    -&nbsp;     * {@link MetricRegistry}, rate and duration units, and allowed origin for
    -&nbsp;     * {@link MetricsServlet}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
    -&nbsp;         * default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getRateUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getDurationUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@code Access-Control-Allow-Origin} header value, if any.
    -&nbsp;         */
    -&nbsp;        protected String getAllowedOrigin() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the name of the parameter used to specify the jsonp callback, if any.
    -&nbsp;         */
    -&nbsp;        protected String getJsonpCallbackParameter() {
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected MetricFilter getMetricFilter() {
    -&nbsp;            // use the default
    -<b class="fc">&nbsp;            return MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="fc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRICS_REGISTRY, getMetricRegistry());</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRIC_FILTER, getMetricFilter());</b>
    -<b class="fc">&nbsp;            if (getDurationUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getRateUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getAllowedOrigin() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getJsonpCallbackParameter() != null) {</b>
    -<b class="nc">&nbsp;                context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.rateUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.durationUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + &quot;.showSamples&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + &quot;.allowedOrigin&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + &quot;.metricFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + &quot;.jsonpCallback&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = 1049773947734939602L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;
    -&nbsp;    protected String allowedOrigin;
    -&nbsp;    protected String jsonpParamName;
    -&nbsp;    protected transient MetricRegistry registry;
    -&nbsp;    protected transient ObjectMapper mapper;
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(METRICS_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof MetricRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (MetricRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a MetricRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);</b>
    -<b class="fc">&nbsp;        this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        setupMetricsModule(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void setupMetricsModule(ServletContext context) {
    -<b class="fc">&nbsp;        final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));</b>
    -<b class="fc">&nbsp;        MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);</b>
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,</b>
    -&nbsp;                durationUnit,
    -&nbsp;                showSamples,
    -&nbsp;                filter));
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        if (allowedOrigin != null) {</b>
    -<b class="fc">&nbsp;            resp.setHeader(&quot;Access-Control-Allow-Origin&quot;, allowedOrigin);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            if (jsonpParamName != null &amp;&amp; req.getParameter(jsonpParamName) != null) {</b>
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, registry);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));</b>
    -<b class="fc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    -<b class="fc">&nbsp;            return defaultValue;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-5.html
    deleted file mode 100644
    index 17ffafd888..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-5.html
    +++ /dev/null
    @@ -1,134 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PingServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PingServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PingServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} {@code &quot;pong&quot;} response.
    -&nbsp; */
    -<b class="fc">&nbsp;public class PingServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = 3772654177231086757L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;    private static final String CONTENT = &quot;pong&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(CONTENT);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-6.html
    deleted file mode 100644
    index 8279791d22..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1c/sources/source-6.html
    +++ /dev/null
    @@ -1,159 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDumpServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDumpServlet (com.codahale.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDumpServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.jvm.ThreadDump;
    -&nbsp;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServlet;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
    -&nbsp; * the VM. Only responds to {@code GET} requests.
    -&nbsp; */
    -<b class="fc">&nbsp;public class ThreadDumpServlet extends HttpServlet {</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -2690343532336103046L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;
    -&nbsp;    private transient ThreadDump threadDump;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init() throws ServletException {
    -&nbsp;        try {
    -&nbsp;            // Some PaaS like Google App Engine blacklist java.lang.managament
    -<b class="fc">&nbsp;            this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());</b>
    -<b class="nc">&nbsp;        } catch (NoClassDefFoundError ncdfe) {</b>
    -<b class="nc">&nbsp;            this.threadDump = null; // we won&#39;t be able to provide thread dump</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final boolean includeMonitors = getParam(req.getParameter(&quot;monitors&quot;), true);</b>
    -<b class="fc">&nbsp;        final boolean includeSynchronizers = getParam(req.getParameter(&quot;synchronizers&quot;), true);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (threadDump == null) {</b>
    -<b class="nc">&nbsp;            resp.getWriter().println(&quot;Sorry your runtime environment does not allow to dump threads.&quot;);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            threadDump.dump(includeMonitors, includeSynchronizers, output);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Boolean getParam(String initParam, boolean defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index.html b/metrics-complete-report-initial-htmlReport/ns-1d/index.html
    deleted file mode 100644
    index eef9d08a79..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1d/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 125c32c4fd..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 8806dc8d5b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index a82c62dcf6..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index a2ed236a16..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 165a8acae9..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 12d71dccd9..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index e894c73bab..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index edb960312b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index ee60cec968..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1d/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.caffeine3</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.caffeine3</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.caffeine3</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.caffeine3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1d/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-1d/sources/source-1.html
    deleted file mode 100644
    index e4a3151e68..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1d/sources/source-1.html
    +++ /dev/null
    @@ -1,220 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsStatsCounter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.caffeine3</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsStatsCounter (io.dropwizard.metrics.caffeine3)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsStatsCounter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;/*
    -&nbsp; * Copyright 2016 Ben Manes. All Rights Reserved.
    -&nbsp; *
    -&nbsp; * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    -&nbsp; * you may not use this file except in compliance with the License.
    -&nbsp; * You may obtain a copy of the License at
    -&nbsp; *
    -&nbsp; *     http://www.apache.org/licenses/LICENSE-2.0
    -&nbsp; *
    -&nbsp; * Unless required by applicable law or agreed to in writing, software
    -&nbsp; * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    -&nbsp; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -&nbsp; * See the License for the specific language governing permissions and
    -&nbsp; * limitations under the License.
    -&nbsp; */
    -&nbsp;package io.dropwizard.metrics.caffeine3;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;import java.util.EnumMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.github.benmanes.caffeine.cache.RemovalCause;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.CacheStats;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.StatsCounter;
    -&nbsp;import org.checkerframework.checker.index.qual.NonNegative;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link StatsCounter} instrumented with Dropwizard Metrics.
    -&nbsp; *
    -&nbsp; * @author ben.manes@gmail.com (Ben Manes)
    -&nbsp; * @author John Karp
    -&nbsp; */
    -&nbsp;public final class MetricsStatsCounter implements StatsCounter {
    -&nbsp;  private final Counter hitCount;
    -&nbsp;  private final Counter missCount;
    -&nbsp;  private final Timer loadSuccess;
    -&nbsp;  private final Timer loadFailure;
    -&nbsp;  private final Counter evictionWeight;
    -&nbsp;  private final EnumMap&lt;RemovalCause, Histogram&gt; evictionsWithCause;
    -&nbsp;
    -&nbsp;  // for implementing snapshot()
    -<b class="fc">&nbsp;  private final LongAdder totalLoadTime = new LongAdder();</b>
    -&nbsp;
    -&nbsp;  /**
    -&nbsp;   * Constructs an instance for use by a single cache.
    -&nbsp;   *
    -&nbsp;   * @param registry the registry of metric instances
    -&nbsp;   * @param metricsPrefix the prefix name for the metrics
    -&nbsp;   */
    -<b class="fc">&nbsp;  public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {</b>
    -<b class="fc">&nbsp;    requireNonNull(metricsPrefix);</b>
    -<b class="fc">&nbsp;    hitCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;hits&quot;));</b>
    -<b class="fc">&nbsp;    missCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;misses&quot;));</b>
    -<b class="fc">&nbsp;    loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-success&quot;));</b>
    -<b class="fc">&nbsp;    loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-failure&quot;));</b>
    -<b class="fc">&nbsp;    evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, &quot;evictions-weight&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    evictionsWithCause = new EnumMap&lt;&gt;(RemovalCause.class);</b>
    -<b class="fc">&nbsp;    for (RemovalCause cause : RemovalCause.values()) {</b>
    -<b class="fc">&nbsp;      evictionsWithCause.put(</b>
    -&nbsp;          cause,
    -<b class="fc">&nbsp;          registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;, cause.name())));</b>
    -&nbsp;    }
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordHits(int count) {
    -<b class="fc">&nbsp;    hitCount.inc(count);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordMisses(int count) {
    -<b class="fc">&nbsp;    missCount.inc(count);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadSuccess(long loadTime) {
    -<b class="fc">&nbsp;    loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadFailure(long loadTime) {
    -<b class="fc">&nbsp;    loadFailure.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordEviction(@NonNegative int weight, RemovalCause cause) {
    -<b class="fc">&nbsp;    evictionsWithCause.get(cause).update(weight);</b>
    -<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public CacheStats snapshot() {
    -<b class="fc">&nbsp;    return CacheStats.of(</b>
    -<b class="fc">&nbsp;        hitCount.getCount(),</b>
    -<b class="fc">&nbsp;        missCount.getCount(),</b>
    -<b class="fc">&nbsp;        loadSuccess.getCount(),</b>
    -<b class="fc">&nbsp;        loadFailure.getCount(),</b>
    -<b class="fc">&nbsp;        totalLoadTime.sum(),</b>
    -<b class="fc">&nbsp;        evictionsWithCause.values().stream().mapToLong(Histogram::getCount).sum(),</b>
    -<b class="fc">&nbsp;        evictionWeight.getCount());</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public String toString() {
    -<b class="nc">&nbsp;    return snapshot().toString();</b>
    -&nbsp;  }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index.html b/metrics-complete-report-initial-htmlReport/ns-1e/index.html
    deleted file mode 100644
    index 2ac279c8e4..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1e/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index e84c320154..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index e0519592a4..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 1584888dd5..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 9fc3e5144a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 8c1efc2b42..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 7b67803572..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index dac5fd7d3a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 6c50117428..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 410ea6a40f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1e/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jersey31</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jersey31</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jersey31</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jersey31</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (50/53)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.3%
    -  </span>
    -  <span class="absValue">
    -    (200/212)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetricsFeature</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedResourceMethodApplicationListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-1e/sources/source-1.html
    deleted file mode 100644
    index c0c590fe97..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1e/sources/source-1.html
    +++ /dev/null
    @@ -1,831 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedResourceMethodApplicationListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jersey31</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedResourceMethodApplicationListener (io.dropwizard.metrics.jersey31)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedResourceMethodApplicationListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.1%
    -  </span>
    -  <span class="absValue">
    -    (82/89)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ChainedRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$EventTypeAndMethod</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.2%
    -  </span>
    -  <span class="absValue">
    -    (16/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ExceptionMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$MeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterMetric</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$ResponseMeterRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedResourceMethodApplicationListener$TimerRequestEventListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (28/28)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (44/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.5%
    -  </span>
    -  <span class="absValue">
    -    (189/200)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jersey31;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ExceptionMetered;
    -&nbsp;import com.codahale.metrics.annotation.Metered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMetered;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import com.codahale.metrics.annotation.Timed;
    -&nbsp;import jakarta.ws.rs.core.Configuration;
    -&nbsp;import jakarta.ws.rs.ext.Provider;
    -&nbsp;import org.glassfish.jersey.server.ContainerResponse;
    -&nbsp;import org.glassfish.jersey.server.model.ModelProcessor;
    -&nbsp;import org.glassfish.jersey.server.model.Resource;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceMethod;
    -&nbsp;import org.glassfish.jersey.server.model.ResourceModel;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.ApplicationEventListener;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEvent;
    -&nbsp;import org.glassfish.jersey.server.monitoring.RequestEventListener;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Annotation;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An application event listener that listens for Jersey application initialization to
    -&nbsp; * be finished, then creates a map of resource method that have metrics annotations.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Finally, it listens for method start events, and returns a {@link RequestEventListener}
    -&nbsp; * that updates the relevant metric for suitably annotated methods when it gets the
    -&nbsp; * request events indicating that the method is about to be invoked, or just got done
    -&nbsp; * being invoked.
    -&nbsp; */
    -&nbsp;@Provider
    -&nbsp;public class InstrumentedResourceMethodApplicationListener implements ApplicationEventListener, ModelProcessor {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final String[] REQUEST_FILTERING = {&quot;request&quot;, &quot;filtering&quot;};</b>
    -<b class="fc">&nbsp;    private static final String[] RESPONSE_FILTERING = {&quot;response&quot;, &quot;filtering&quot;};</b>
    -&nbsp;    private static final String TOTAL = &quot;total&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metrics;
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, Meter&gt; meters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;    private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters = new ConcurrentHashMap&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Construct an application event listener using the given metrics registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * When using this constructor, the {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp;     * should be added to a Jersey {@code ResourceConfig} as a singleton.
    -&nbsp;     *
    -&nbsp;     * @param metrics a {@link MetricRegistry}
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics) {
    -<b class="nc">&nbsp;        this(metrics, Clock.defaultClock(), false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics      the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock        the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters) {
    -<b class="nc">&nbsp;        this(metrics, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Constructs a custom application listener.
    -&nbsp;     *
    -&nbsp;     * @param metrics           the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public InstrumentedResourceMethodApplicationListener(final MetricRegistry metrics, final Clock clock,
    -&nbsp;                                                         final boolean trackFilters,
    -<b class="fc">&nbsp;                                                         final Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.metrics = metrics;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metric for a method annotated with the
    -&nbsp;     * {@link ExceptionMetered} annotation, which needs to maintain both a meter
    -&nbsp;     * and a cause for which the meter should be updated.
    -&nbsp;     */
    -&nbsp;    private static class ExceptionMeterMetric {
    -&nbsp;        public final Meter meter;
    -&nbsp;        public final Class&lt;? extends Throwable&gt; cause;
    -&nbsp;
    -&nbsp;        public ExceptionMeterMetric(final MetricRegistry registry,
    -&nbsp;                                    final ResourceMethod method,
    -<b class="fc">&nbsp;                                    final ExceptionMetered exceptionMetered) {</b>
    -<b class="fc">&nbsp;            final String name = chooseName(exceptionMetered.name(),</b>
    -<b class="fc">&nbsp;                    exceptionMetered.absolute(), method, ExceptionMetered.DEFAULT_NAME_SUFFIX);</b>
    -<b class="fc">&nbsp;            this.meter = registry.meter(name);</b>
    -<b class="fc">&nbsp;            this.cause = exceptionMetered.cause();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A private class to maintain the metrics for a method annotated with the
    -&nbsp;     * {@link ResponseMetered} annotation, which needs to maintain meters for
    -&nbsp;     * different response codes
    -&nbsp;     */
    -&nbsp;    private static class ResponseMeterMetric {
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;        private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;        private final List&lt;Meter&gt; meters;
    -&nbsp;        private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;        private final MetricRegistry metricRegistry;
    -&nbsp;        private final String metricName;
    -&nbsp;        private final ResponseMeteredLevel level;
    -&nbsp;
    -&nbsp;        public ResponseMeterMetric(final MetricRegistry registry,
    -&nbsp;                                   final ResourceMethod method,
    -<b class="fc">&nbsp;                                   final ResponseMetered responseMetered) {</b>
    -<b class="fc">&nbsp;            this.metricName = chooseName(responseMetered.name(), responseMetered.absolute(), method);</b>
    -<b class="fc">&nbsp;            this.level = responseMetered.level();</b>
    -<b class="fc">&nbsp;            this.meters = COARSE_METER_LEVELS.contains(level) ?</b>
    -<b class="fc">&nbsp;                    Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                            registry.meter(name(metricName, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="fc">&nbsp;                    )) : Collections.emptyList();</b>
    -<b class="fc">&nbsp;            this.responseCodeMeters = DETAILED_METER_LEVELS.contains(level) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;            this.metricRegistry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public void mark(int statusCode) {
    -<b class="fc">&nbsp;            if (DETAILED_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            if (COARSE_METER_LEVELS.contains(level)) {</b>
    -<b class="fc">&nbsp;                final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;                if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                    meters.get(responseStatus - 1).mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;            return responseCodeMeters</b>
    -<b class="fc">&nbsp;                    .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                            .meter(name(metricName, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class TimerRequestEventListener implements RequestEventListener {
    -&nbsp;
    -&nbsp;        private final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers;
    -&nbsp;        private final Clock clock;
    -&nbsp;        private final long start;
    -&nbsp;        private Timer.Context resourceMethodStartContext;
    -&nbsp;        private Timer.Context requestMatchedContext;
    -&nbsp;        private Timer.Context responseFiltersStartContext;
    -&nbsp;
    -<b class="fc">&nbsp;        public TimerRequestEventListener(final ConcurrentMap&lt;EventTypeAndMethod, Timer&gt; timers, final Clock clock) {</b>
    -<b class="fc">&nbsp;            this.timers = timers;</b>
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            start = clock.getTick();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            switch (event.getType()) {</b>
    -&nbsp;                case RESOURCE_METHOD_START:
    -<b class="fc">&nbsp;                    resourceMethodStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case REQUEST_MATCHED:
    -<b class="fc">&nbsp;                    requestMatchedContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESP_FILTERS_START:
    -<b class="fc">&nbsp;                    responseFiltersStartContext = context(event);</b>
    -<b class="fc">&nbsp;                    break;</b>
    -&nbsp;                case RESOURCE_METHOD_FINISHED:
    -<b class="fc">&nbsp;                    if (resourceMethodStartContext != null) {</b>
    -<b class="fc">&nbsp;                        resourceMethodStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case REQUEST_FILTERED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null) {</b>
    -<b class="fc">&nbsp;                        requestMatchedContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case RESP_FILTERS_FINISHED:
    -<b class="fc">&nbsp;                    if (responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        responseFiltersStartContext.close();</b>
    -&nbsp;                    }
    -&nbsp;                    break;
    -&nbsp;                case FINISHED:
    -<b class="fc">&nbsp;                    if (requestMatchedContext != null &amp;&amp; responseFiltersStartContext != null) {</b>
    -<b class="fc">&nbsp;                        final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;                        if (timer != null) {</b>
    -<b class="fc">&nbsp;                            timer.update(clock.getTick() - start, TimeUnit.NANOSECONDS);</b>
    -&nbsp;                        }
    -<b class="fc">&nbsp;                    }</b>
    -&nbsp;                    break;
    -&nbsp;                default:
    -&nbsp;                    break;
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(RequestEvent event) {
    -<b class="fc">&nbsp;            final ResourceMethod resourceMethod = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;            if (resourceMethod == null) {</b>
    -<b class="fc">&nbsp;                return null;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return timers.get(new EventTypeAndMethod(event.getType(), resourceMethod.getInvocable().getDefinitionMethod()));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer.Context context(RequestEvent event) {
    -<b class="fc">&nbsp;            final Timer timer = timer(event);</b>
    -<b class="fc">&nbsp;            return timer != null ? timer.time() : null;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class MeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, Meter&gt; meters;
    -&nbsp;
    -<b class="fc">&nbsp;        public MeterRequestEventListener(final ConcurrentMap&lt;Method, Meter&gt; meters) {</b>
    -<b class="fc">&nbsp;            this.meters = meters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.RESOURCE_METHOD_START) {</b>
    -<b class="fc">&nbsp;                final Meter meter = this.meters.get(event.getUriInfo().getMatchedResourceMethod().getInvocable().getDefinitionMethod());</b>
    -<b class="fc">&nbsp;                if (meter != null) {</b>
    -<b class="fc">&nbsp;                    meter.mark();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ExceptionMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ExceptionMeterRequestEventListener(final ConcurrentMap&lt;Method, ExceptionMeterMetric&gt; exceptionMeters) {</b>
    -<b class="fc">&nbsp;            this.exceptionMeters = exceptionMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.ON_EXCEPTION) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ExceptionMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.exceptionMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    if (metric.cause.isAssignableFrom(event.getException().getClass()) ||</b>
    -<b class="fc">&nbsp;                            (event.getException().getCause() != null &amp;&amp;</b>
    -<b class="fc">&nbsp;                                    metric.cause.isAssignableFrom(event.getException().getCause().getClass()))) {</b>
    -<b class="fc">&nbsp;                        metric.meter.mark();</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class ResponseMeterRequestEventListener implements RequestEventListener {
    -&nbsp;        private final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters;
    -&nbsp;
    -<b class="fc">&nbsp;        public ResponseMeterRequestEventListener(final ConcurrentMap&lt;Method, ResponseMeterMetric&gt; responseMeters) {</b>
    -<b class="fc">&nbsp;            this.responseMeters = responseMeters;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(RequestEvent event) {
    -<b class="fc">&nbsp;            if (event.getType() == RequestEvent.Type.FINISHED) {</b>
    -<b class="fc">&nbsp;                final ResourceMethod method = event.getUriInfo().getMatchedResourceMethod();</b>
    -<b class="fc">&nbsp;                final ResponseMeterMetric metric = (method != null) ?</b>
    -<b class="fc">&nbsp;                        this.responseMeters.get(method.getInvocable().getDefinitionMethod()) : null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;                if (metric != null) {</b>
    -<b class="fc">&nbsp;                    ContainerResponse containerResponse = event.getContainerResponse();</b>
    -<b class="fc">&nbsp;                    if (containerResponse == null &amp;&amp; event.getException() != null) {</b>
    -<b class="nc">&nbsp;                        metric.mark(500);</b>
    -<b class="fc">&nbsp;                    } else if (containerResponse != null) {</b>
    -<b class="fc">&nbsp;                        metric.mark(containerResponse.getStatus());</b>
    -&nbsp;                    }
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class ChainedRequestEventListener implements RequestEventListener {</b>
    -&nbsp;        private final RequestEventListener[] listeners;
    -&nbsp;
    -<b class="fc">&nbsp;        private ChainedRequestEventListener(final RequestEventListener... listeners) {</b>
    -<b class="fc">&nbsp;            this.listeners = listeners;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onEvent(final RequestEvent event) {
    -<b class="fc">&nbsp;            for (RequestEventListener listener : listeners) {</b>
    -<b class="fc">&nbsp;                listener.onEvent(event);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onEvent(ApplicationEvent event) {
    -<b class="fc">&nbsp;        if (event.getType() == ApplicationEvent.Type.INITIALIZATION_APP_FINISHED) {</b>
    -<b class="fc">&nbsp;            registerMetricsForModel(event.getResourceModel());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processResourceModel(ResourceModel resourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        return resourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public ResourceModel processSubResource(ResourceModel subResourceModel, Configuration configuration) {
    -<b class="fc">&nbsp;        registerMetricsForModel(subResourceModel);</b>
    -<b class="fc">&nbsp;        return subResourceModel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMetricsForModel(ResourceModel resourceModel) {
    -<b class="fc">&nbsp;        for (final Resource resource : resourceModel.getResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final Timed classLevelTimed = getClassLevelAnnotation(resource, Timed.class);</b>
    -<b class="fc">&nbsp;            final Metered classLevelMetered = getClassLevelAnnotation(resource, Metered.class);</b>
    -<b class="fc">&nbsp;            final ExceptionMetered classLevelExceptionMetered = getClassLevelAnnotation(resource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;            final ResponseMetered classLevelResponseMetered = getClassLevelAnnotation(resource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final ResourceMethod method : resource.getAllMethods()) {</b>
    -<b class="nc">&nbsp;                registerTimedAnnotations(method, classLevelTimed);</b>
    -<b class="nc">&nbsp;                registerMeteredAnnotations(method, classLevelMetered);</b>
    -<b class="nc">&nbsp;                registerExceptionMeteredAnnotations(method, classLevelExceptionMetered);</b>
    -<b class="nc">&nbsp;                registerResponseMeteredAnnotations(method, classLevelResponseMetered);</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (final Resource childResource : resource.getChildResources()) {</b>
    -&nbsp;
    -<b class="fc">&nbsp;                final Timed classLevelTimedChild = getClassLevelAnnotation(childResource, Timed.class);</b>
    -<b class="fc">&nbsp;                final Metered classLevelMeteredChild = getClassLevelAnnotation(childResource, Metered.class);</b>
    -<b class="fc">&nbsp;                final ExceptionMetered classLevelExceptionMeteredChild = getClassLevelAnnotation(childResource, ExceptionMetered.class);</b>
    -<b class="fc">&nbsp;                final ResponseMetered classLevelResponseMeteredChild = getClassLevelAnnotation(childResource, ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;                for (final ResourceMethod method : childResource.getAllMethods()) {</b>
    -<b class="fc">&nbsp;                    registerTimedAnnotations(method, classLevelTimedChild);</b>
    -<b class="fc">&nbsp;                    registerMeteredAnnotations(method, classLevelMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerExceptionMeteredAnnotations(method, classLevelExceptionMeteredChild);</b>
    -<b class="fc">&nbsp;                    registerResponseMeteredAnnotations(method, classLevelResponseMeteredChild);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public RequestEventListener onRequest(final RequestEvent event) {
    -<b class="fc">&nbsp;        final RequestEventListener listener = new ChainedRequestEventListener(</b>
    -&nbsp;                new TimerRequestEventListener(timers, clock),
    -&nbsp;                new MeterRequestEventListener(meters),
    -&nbsp;                new ExceptionMeterRequestEventListener(exceptionMeters),
    -&nbsp;                new ResponseMeterRequestEventListener(responseMeters));
    -&nbsp;
    -<b class="fc">&nbsp;        return listener;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private &lt;T extends Annotation&gt; T getClassLevelAnnotation(final Resource resource, final Class&lt;T&gt; annotationClazz) {
    -<b class="fc">&nbsp;        T annotation = null;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (final Class&lt;?&gt; clazz : resource.getHandlerClasses()) {</b>
    -<b class="fc">&nbsp;            annotation = clazz.getAnnotation(annotationClazz);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (annotation != null) {</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return annotation;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimedAnnotations(final ResourceMethod method, final Timed classLevelTimed) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -<b class="fc">&nbsp;        if (classLevelTimed != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, classLevelTimed);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Timed annotation = definitionMethod.getAnnotation(Timed.class);</b>
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            registerTimers(method, definitionMethod, annotation);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerTimers(ResourceMethod method, Method definitionMethod, Timed annotation) {
    -<b class="fc">&nbsp;        timers.putIfAbsent(EventTypeAndMethod.requestMethodStart(definitionMethod), timerMetric(metrics, method, annotation));</b>
    -<b class="fc">&nbsp;        if (trackFilters) {</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.requestMatched(definitionMethod), timerMetric(metrics, method, annotation, REQUEST_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.respFiltersStart(definitionMethod), timerMetric(metrics, method, annotation, RESPONSE_FILTERING));</b>
    -<b class="fc">&nbsp;            timers.putIfAbsent(EventTypeAndMethod.finished(definitionMethod), timerMetric(metrics, method, annotation, TOTAL));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerMeteredAnnotations(final ResourceMethod method, final Metered classLevelMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelMetered != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, classLevelMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final Metered annotation = definitionMethod.getAnnotation(Metered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            meters.putIfAbsent(definitionMethod, meterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerExceptionMeteredAnnotations(final ResourceMethod method, final ExceptionMetered classLevelExceptionMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelExceptionMetered != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, classLevelExceptionMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ExceptionMetered annotation = definitionMethod.getAnnotation(ExceptionMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            exceptionMeters.putIfAbsent(definitionMethod, new ExceptionMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void registerResponseMeteredAnnotations(final ResourceMethod method, final ResponseMetered classLevelResponseMetered) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (classLevelResponseMetered != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, classLevelResponseMetered));</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ResponseMetered annotation = definitionMethod.getAnnotation(ResponseMetered.class);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (annotation != null) {</b>
    -<b class="fc">&nbsp;            responseMeters.putIfAbsent(definitionMethod, new ResponseMeterMetric(metrics, method, annotation));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timerMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Timed timed,
    -&nbsp;                              final String... suffixes) {
    -<b class="fc">&nbsp;        final String name = chooseName(timed.name(), timed.absolute(), method, suffixes);</b>
    -<b class="fc">&nbsp;        return registry.timer(name, () -&gt; new Timer(reservoirSupplier.get(), clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meterMetric(final MetricRegistry registry,
    -&nbsp;                              final ResourceMethod method,
    -&nbsp;                              final Metered metered) {
    -<b class="fc">&nbsp;        final String name = chooseName(metered.name(), metered.absolute(), method);</b>
    -<b class="fc">&nbsp;        return registry.meter(name, () -&gt; new Meter(clock));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected static String chooseName(final String explicitName, final boolean absolute, final ResourceMethod method,
    -&nbsp;                                       final String... suffixes) {
    -<b class="fc">&nbsp;        final Method definitionMethod = method.getInvocable().getDefinitionMethod();</b>
    -&nbsp;        final String metricName;
    -<b class="fc">&nbsp;        if (explicitName != null &amp;&amp; !explicitName.isEmpty()) {</b>
    -<b class="fc">&nbsp;            metricName = absolute ? explicitName : name(definitionMethod.getDeclaringClass(), explicitName);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            metricName = name(definitionMethod.getDeclaringClass(), definitionMethod.getName());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return name(metricName, suffixes);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class EventTypeAndMethod {</b>
    -&nbsp;
    -&nbsp;        private final RequestEvent.Type type;
    -&nbsp;        private final Method method;
    -&nbsp;
    -<b class="fc">&nbsp;        private EventTypeAndMethod(RequestEvent.Type type, Method method) {</b>
    -<b class="fc">&nbsp;            this.type = type;</b>
    -<b class="fc">&nbsp;            this.method = method;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMethodStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESOURCE_METHOD_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod requestMatched(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.REQUEST_MATCHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod respFiltersStart(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.RESP_FILTERS_START, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        static EventTypeAndMethod finished(Method method) {
    -<b class="fc">&nbsp;            return new EventTypeAndMethod(RequestEvent.Type.FINISHED, method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="fc">&nbsp;            if (this == o) {</b>
    -<b class="nc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            EventTypeAndMethod that = (EventTypeAndMethod) o;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (type != that.type) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return method.equals(that.method);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="fc">&nbsp;            int result = type.hashCode();</b>
    -<b class="fc">&nbsp;            result = 31 * result + method.hashCode();</b>
    -<b class="fc">&nbsp;            return result;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1e/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-1e/sources/source-2.html
    deleted file mode 100644
    index f7a1733cf9..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1e/sources/source-2.html
    +++ /dev/null
    @@ -1,201 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsFeature</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jersey31</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsFeature (io.dropwizard.metrics.jersey31)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsFeature</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jersey31;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import jakarta.ws.rs.core.Feature;
    -&nbsp;import jakarta.ws.rs.core.FeatureContext;
    -&nbsp;
    -&nbsp;import java.util.function.Supplier;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link Feature} which registers a {@link InstrumentedResourceMethodApplicationListener}
    -&nbsp; * for recording request events.
    -&nbsp; */
    -&nbsp;public class MetricsFeature implements Feature {
    -&nbsp;
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final boolean trackFilters;
    -&nbsp;    private final Supplier&lt;Reservoir&gt; reservoirSupplier;
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Supplier&lt;Reservoir&gt; reservoirSupplier) {
    -<b class="fc">&nbsp;        this(registry, Clock.defaultClock(), false, reservoirSupplier);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock) {
    -<b class="fc">&nbsp;        this(registry, clock, false);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     */
    -&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters) {
    -<b class="fc">&nbsp;        this(registry, clock, trackFilters, ExponentiallyDecayingReservoir::new);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /*
    -&nbsp;     * @param registry          the metrics registry where the metrics will be stored
    -&nbsp;     * @param clock             the {@link Clock} to track time (used mostly in testing) in timers
    -&nbsp;     * @param trackFilters      whether the processing time for request and response filters should be tracked
    -&nbsp;     * @param reservoirSupplier Supplier for creating the {@link Reservoir} for {@link Timer timers}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public MetricsFeature(MetricRegistry registry, Clock clock, boolean trackFilters, Supplier&lt;Reservoir&gt; reservoirSupplier) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.trackFilters = trackFilters;</b>
    -<b class="fc">&nbsp;        this.reservoirSupplier = reservoirSupplier;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public MetricsFeature(String registryName) {
    -<b class="nc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A call-back method called when the feature is to be enabled in a given
    -&nbsp;     * runtime configuration scope.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The responsibility of the feature is to properly update the supplied runtime configuration context
    -&nbsp;     * and return {@code true} if the feature was successfully enabled or {@code false} otherwise.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * Note that under some circumstances the feature may decide not to enable itself, which
    -&nbsp;     * is indicated by returning {@code false}. In such case the configuration context does
    -&nbsp;     * not add the feature to the collection of enabled features and a subsequent call to
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(jakarta.ws.rs.core.Feature)} or
    -&nbsp;     * {@link jakarta.ws.rs.core.Configuration#isEnabled(Class)} method
    -&nbsp;     * would return {@code false}.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     *
    -&nbsp;     * @param context configurable context in which the feature should be enabled.
    -&nbsp;     * @return {@code true} if the feature was successfully enabled, {@code false}
    -&nbsp;     * otherwise.
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public boolean configure(FeatureContext context) {
    -<b class="fc">&nbsp;        context.register(new InstrumentedResourceMethodApplicationListener(registry, clock, trackFilters, reservoirSupplier));</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index.html b/metrics-complete-report-initial-htmlReport/ns-1f/index.html
    deleted file mode 100644
    index 1d062e3335..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1f/index.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index d022167c73..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index d14a54eae1..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 3c0b10cd36..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 33a6c0e086..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 9bed535e9f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 5faf9acf76..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 8c9cee8c28..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 61ebd3b476..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 3322698420..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1f/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-1.html
    deleted file mode 100644
    index 020d6a98b4..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-1.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    -&nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-2.html
    deleted file mode 100644
    index 1960af08ec..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-2.html
    +++ /dev/null
    @@ -1,726 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (113/131)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.ServletException;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    -&nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    -&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    private final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private List&lt;Meter&gt; responses;
    -&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    private Timer getRequests;
    -&nbsp;    private Timer postRequests;
    -&nbsp;    private Timer headRequests;
    -&nbsp;    private Timer putRequests;
    -&nbsp;    private Timer deleteRequests;
    -&nbsp;    private Timer optionsRequests;
    -&nbsp;    private Timer traceRequests;
    -&nbsp;    private Timer connectRequests;
    -&nbsp;    private Timer moveRequests;
    -&nbsp;    private Timer otherRequests;
    -&nbsp;
    -&nbsp;    private AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                    metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;            ));
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void handle(String path,
    -&nbsp;                       Request request,
    -&nbsp;                       HttpServletRequest httpRequest,
    -&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == HttpChannelState.State.HANDLING) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-3.html
    deleted file mode 100644
    index 524c1cfaad..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-3.html
    +++ /dev/null
    @@ -1,706 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpChannelListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (20/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.6%
    -  </span>
    -  <span class="absValue">
    -    (90/109)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;
    -&nbsp;import javax.servlet.AsyncEvent;
    -&nbsp;import javax.servlet.AsyncListener;
    -&nbsp;import javax.servlet.http.HttpServletRequest;
    -&nbsp;import javax.servlet.http.HttpServletResponse;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    -&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    -&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    -&nbsp; *
    -&nbsp; * @since TBD
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    -&nbsp;        implements Listener {
    -<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private final Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private final Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private final Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private final Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private final Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private final Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private final Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private final List&lt;Meter&gt; responses;
    -&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final Timer getRequests;
    -&nbsp;    private final Timer postRequests;
    -&nbsp;    private final Timer headRequests;
    -&nbsp;    private final Timer putRequests;
    -&nbsp;    private final Timer deleteRequests;
    -&nbsp;    private final Timer optionsRequests;
    -&nbsp;    private final Timer traceRequests;
    -&nbsp;    private final Timer connectRequests;
    -&nbsp;    private final Timer moveRequests;
    -&nbsp;    private final Timer otherRequests;
    -&nbsp;
    -&nbsp;    private final AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    -<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    -<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onBeforeDispatch(final Request request) {
    -<b class="fc">&nbsp;        before(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onAfterDispatch(final Request request) {
    -<b class="fc">&nbsp;        after(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContentEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestTrailers(final Request request) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseCommit(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onComplete(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void before(final Request request) {
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            activeSuspended.dec();</b>
    -<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void after(final Request request) {
    -<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    -<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.dec();</b>
    -<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    -<b class="fc">&nbsp;            activeSuspended.inc();</b>
    -<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    -&nbsp;        }
    -&nbsp;        // else onCompletion will handle it.
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="fc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-4.html
    deleted file mode 100644
    index 9ba421571e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-1f/sources/source-4.html
    +++ /dev/null
    @@ -1,345 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.4%
    -  </span>
    -  <span class="absValue">
    -    (27/32)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    -&nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index.html b/metrics-complete-report-initial-htmlReport/ns-2/index.html
    deleted file mode 100644
    index 22f2346adc..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index ce498c58f1..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index d4650da0c7..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 6b513b8a30..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index fd5b9ff349..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_LINE.html
    deleted file mode 100644
    index a18821de6e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index dc5661d246..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 076de61863..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 50f3ca8d6f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index afbad896e3..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ResponseMeteredLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-1.html
    deleted file mode 100644
    index 69f45e619f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-1.html
    +++ /dev/null
    @@ -1,127 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ResponseMeteredLevel</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ResponseMeteredLevel (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ResponseMeteredLevel</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * {@link ResponseMeteredLevel} is a parameter for the {@link ResponseMetered} annotation.
    -&nbsp; * The constants of this enumerated type decide what meters are included when a class
    -&nbsp; * or method is annotated with the {@link ResponseMetered} annotation.
    -&nbsp; */
    -<b class="fc">&nbsp;public enum ResponseMeteredLevel {</b>
    -&nbsp;    /**
    -&nbsp;     * Include meters for 1xx/2xx/3xx/4xx/5xx responses
    -&nbsp;     */
    -<b class="fc">&nbsp;    COARSE,</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Include meters for every response code (200, 201, 303, 304, 401, 404, 501, etc.)
    -&nbsp;     */
    -<b class="fc">&nbsp;    DETAILED,</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Include meters for every response code in addition to top level 1xx/2xx/3xx/4xx/5xx responses
    -&nbsp;     */
    -<b class="fc">&nbsp;    ALL;</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-2.html
    deleted file mode 100644
    index 9780b55bb2..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-2.html
    +++ /dev/null
    @@ -1,107 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Timed</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Timed (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Timed</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as timed.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Timed(name = &quot;fancyName&quot;)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A timer for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} method is invoked, the method&#39;s execution will be timed.
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Timed {
    -&nbsp;    /**
    -&nbsp;     * @return The name of the timer.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-3.html
    deleted file mode 100644
    index eb96a66db2..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-3.html
    +++ /dev/null
    @@ -1,116 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metric</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Metric (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Metric</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation requesting that a metric be injected or registered.
    -&nbsp; *
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a field like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Metric
    -&nbsp; *     public Histogram histogram;
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A meter of the field&#39;s type will be created and injected into managed objects.
    -&nbsp; * It will be up to the user to interact with the metric. This annotation
    -&nbsp; * can be used on fields of type Meter, Timer, Counter, and Histogram.
    -&nbsp; *
    -&nbsp; * &lt;p&gt;
    -&nbsp; * This may also be used to register a metric, which is useful for creating a histogram with
    -&nbsp; * a custom Reservoir.
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Metric
    -&nbsp; *     public Histogram uniformHistogram = new Histogram(new UniformReservoir());
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; *
    -&nbsp; * @since 3.1
    -&nbsp; */
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Metric {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The name of the metric.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false},
    -&nbsp;     * use the given name relative to the annotated class.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-4.html
    deleted file mode 100644
    index c092acba0b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-4.html
    +++ /dev/null
    @@ -1,133 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ExceptionMetered</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ExceptionMetered (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">ExceptionMetered</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as metered.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}ExceptionMetered(name = &quot;fancyName&quot;, cause=IllegalArgumentException.class)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A meter for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} throws an exception of type {@code cause} (or a subclass), the meter
    -&nbsp; * will be marked.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A name for the metric can be specified as an annotation parameter, otherwise, the metric will be
    -&nbsp; * named based on the method name.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * For instance, given a declaration of
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}ExceptionMetered
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A meter named {@code fancyName.exceptions} will be created and marked every time an exception is
    -&nbsp; * thrown.
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface ExceptionMetered {
    -&nbsp;    /**
    -&nbsp;     * The default suffix for meter names.
    -&nbsp;     */
    -&nbsp;    String DEFAULT_NAME_SUFFIX = &quot;exceptions&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The name of the meter. If not specified, the meter will be given a name based on the method
    -&nbsp;     * it decorates and the suffix &quot;Exceptions&quot;.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The type of exceptions that the meter will catch and count.
    -&nbsp;     */
    -&nbsp;    Class&lt;? extends Throwable&gt; cause() default Exception.class;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-5.html
    deleted file mode 100644
    index efca27b76d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-5.html
    +++ /dev/null
    @@ -1,113 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ResponseMetered</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ResponseMetered (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">ResponseMetered</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as metered.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}ResponseMetered(name = &quot;fancyName&quot;, level = ResponseMeteredLevel.ALL)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Meters for the defining class with the name {@code fancyName} will be created for response codes
    -&nbsp; * based on the ResponseMeteredLevel selected. Each time the {@code #fancyName(String)} method is invoked,
    -&nbsp; * the appropriate response meter will be marked.
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface ResponseMetered {
    -&nbsp;    /**
    -&nbsp;     * @return The name of the meter.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return the ResponseMeteredLevel which decides which response code meters are marked.
    -&nbsp;     */
    -&nbsp;    ResponseMeteredLevel level() default ResponseMeteredLevel.COARSE;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-6.html
    deleted file mode 100644
    index 4b4c6413e6..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-6.html
    +++ /dev/null
    @@ -1,103 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Gauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Gauge (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Gauge</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as a gauge.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Gauge(name = &quot;queueSize&quot;)
    -&nbsp; *     public int getQueueSize() {
    -&nbsp; *         return queue.size;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A gauge for the defining class with the name {@code queueSize} will be created which uses the
    -&nbsp; * annotated method&#39;s return value as its value.
    -&nbsp; */
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Gauge {
    -&nbsp;    /**
    -&nbsp;     * @return The gauge&#39;s name.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-7.html b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-7.html
    deleted file mode 100644
    index 367d085d3d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-7.html
    +++ /dev/null
    @@ -1,121 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Counted</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Counted (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Counted</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as counted.
    -&nbsp; *
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Counted(name = &quot;fancyName&quot;)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A counter for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} method is invoked, the counter will be marked.
    -&nbsp; *
    -&nbsp; * @since 3.1
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Counted {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The name of the counter.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return 
    -&nbsp;     * If {@code false} (default), the counter is decremented when the annotated
    -&nbsp;     * method returns, counting current invocations of the annotated method.
    -&nbsp;     * If {@code true}, the counter increases monotonically, counting total
    -&nbsp;     * invocations of the annotated method.
    -&nbsp;     */
    -&nbsp;    boolean monotonic() default false;
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-8.html b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-8.html
    deleted file mode 100644
    index 7b21263eeb..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-8.html
    +++ /dev/null
    @@ -1,121 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGauge</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGauge (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGauge</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method as a gauge, which caches the result for a specified time.
    -&nbsp; *
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}CachedGauge(name = &quot;queueSize&quot;, timeout = 30, timeoutUnit = TimeUnit.SECONDS)
    -&nbsp; *     public int getQueueSize() {
    -&nbsp; *         return queue.getSize();
    -&nbsp; *     }
    -&nbsp; *
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; *
    -&nbsp; * A gauge for the defining class with the name queueSize will be created which uses the annotated method&#39;s
    -&nbsp; * return value as its value, and which caches the result for 30 seconds.
    -&nbsp; *
    -&nbsp; * @since 3.1
    -&nbsp; */
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface CachedGauge {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The name of the counter.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The amount of time to cache the result
    -&nbsp;     */
    -&nbsp;    long timeout();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return The unit of timeout
    -&nbsp;     */
    -&nbsp;    TimeUnit timeoutUnit() default TimeUnit.MILLISECONDS;
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-9.html b/metrics-complete-report-initial-htmlReport/ns-2/sources/source-9.html
    deleted file mode 100644
    index 4bfe9db023..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-2/sources/source-9.html
    +++ /dev/null
    @@ -1,107 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Metered</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Metered (com.codahale.metrics.annotation)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">Metered</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.Documented;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Inherited;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking a method of an annotated object as metered.
    -&nbsp; * &lt;p&gt;
    -&nbsp; * Given a method like this:
    -&nbsp; * &lt;pre&gt;&lt;code&gt;
    -&nbsp; *     {@literal @}Metered(name = &quot;fancyName&quot;)
    -&nbsp; *     public String fancyName(String name) {
    -&nbsp; *         return &quot;Sir Captain &quot; + name;
    -&nbsp; *     }
    -&nbsp; * &lt;/code&gt;&lt;/pre&gt;
    -&nbsp; * &lt;p&gt;
    -&nbsp; * A meter for the defining class with the name {@code fancyName} will be created and each time the
    -&nbsp; * {@code #fancyName(String)} method is invoked, the meter will be marked.
    -&nbsp; */
    -&nbsp;@Inherited
    -&nbsp;@Documented
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target({ ElementType.TYPE, ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.ANNOTATION_TYPE })
    -&nbsp;public @interface Metered {
    -&nbsp;    /**
    -&nbsp;     * @return The name of the meter.
    -&nbsp;     */
    -&nbsp;    String name() default &quot;&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @return If {@code true}, use the given name as an absolute name. If {@code false}, use the given name
    -&nbsp;     * relative to the annotated class. When annotating a class, this must be {@code false}.
    -&nbsp;     */
    -&nbsp;    boolean absolute() default false;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index.html b/metrics-complete-report-initial-htmlReport/ns-20/index.html
    deleted file mode 100644
    index a35abc146f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-20/index.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 25aa0443db..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index d094460b92..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 1f721eb8a1..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index d2811a1f41..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_LINE.html
    deleted file mode 100644
    index d9ddbe2bd3..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index bf21814075..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index cf284e2a4b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 5b4534535a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index c5dfb4977c..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-20/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,224 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty11</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty11</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty11</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty11</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.2%
    -  </span>
    -  <span class="absValue">
    -    (25/26)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.3%
    -  </span>
    -  <span class="absValue">
    -    (76/122)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (276/368)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpChannelListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-20/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-20/sources/source-1.html
    deleted file mode 100644
    index df56ab075f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-20/sources/source-1.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty11)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    -&nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-20/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-20/sources/source-2.html
    deleted file mode 100644
    index 38acef0465..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-20/sources/source-2.html
    +++ /dev/null
    @@ -1,725 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHandler (io.dropwizard.metrics.jetty11)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.3%
    -  </span>
    -  <span class="absValue">
    -    (113/131)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHandler$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (21/39)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (121/166)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.handler.HandlerWrapper;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    -&nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedHandler extends HandlerWrapper {</b>
    -&nbsp;    private static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    private static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    private static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    private static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    private static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    private static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    private static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    private static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    private static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    private static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    private static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    private static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    private static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    private static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    private static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    private static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    private static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    private static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    private static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    private static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    private static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    private final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private List&lt;Meter&gt; responses;
    -&nbsp;    private Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    private Timer getRequests;
    -&nbsp;    private Timer postRequests;
    -&nbsp;    private Timer headRequests;
    -&nbsp;    private Timer putRequests;
    -&nbsp;    private Timer deleteRequests;
    -&nbsp;    private Timer optionsRequests;
    -&nbsp;    private Timer traceRequests;
    -&nbsp;    private Timer connectRequests;
    -&nbsp;    private Timer moveRequests;
    -&nbsp;    private Timer otherRequests;
    -&nbsp;
    -&nbsp;    private AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;                    ));
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void handle(String path,
    -&nbsp;                       Request request,
    -&nbsp;                       HttpServletRequest httpRequest,
    -&nbsp;                       HttpServletResponse httpResponse) throws IOException, ServletException {
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == HttpChannelState.State.HANDLING) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.handle(path, request, httpRequest, httpResponse);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(httpRequest, httpResponse, start, request.isHandled());</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="nc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-20/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-20/sources/source-3.html
    deleted file mode 100644
    index cf0924532a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-20/sources/source-3.html
    +++ /dev/null
    @@ -1,706 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpChannelListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpChannelListener (io.dropwizard.metrics.jetty11)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpChannelListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (20/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.6%
    -  </span>
    -  <span class="absValue">
    -    (90/109)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpChannelListener$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62%
    -  </span>
    -  <span class="absValue">
    -    (31/50)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.3%
    -  </span>
    -  <span class="absValue">
    -    (107/144)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.server.HttpChannel.Listener;
    -&nbsp;import org.eclipse.jetty.server.HttpChannelState;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link org.eclipse.jetty.server.HttpChannel.Listener} implementation which records various metrics about
    -&nbsp; * underlying channel instance. Unlike {@link InstrumentedHandler} that uses internal API, this class should be
    -&nbsp; * future proof. To install it, just add instance of this class to {@link org.eclipse.jetty.server.Connector} as bean.
    -&nbsp; *
    -&nbsp; * @since TBD
    -&nbsp; */
    -<b class="fc">&nbsp;public class InstrumentedHttpChannelListener</b>
    -&nbsp;        implements Listener {
    -<b class="fc">&nbsp;    private static final String START_ATTR = InstrumentedHttpChannelListener.class.getName() + &quot;.start&quot;;</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    private static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    private final Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    private final Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    private final Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    private final Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    private final Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    private final Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    private final Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    private final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    private final List&lt;Meter&gt; responses;
    -&nbsp;    private final Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final Timer getRequests;
    -&nbsp;    private final Timer postRequests;
    -&nbsp;    private final Timer headRequests;
    -&nbsp;    private final Timer putRequests;
    -&nbsp;    private final Timer deleteRequests;
    -&nbsp;    private final Timer optionsRequests;
    -&nbsp;    private final Timer traceRequests;
    -&nbsp;    private final Timer connectRequests;
    -&nbsp;    private final Timer moveRequests;
    -&nbsp;    private final Timer otherRequests;
    -&nbsp;
    -&nbsp;    private final AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref) {
    -<b class="nc">&nbsp;        this(registry, pref, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param pref     the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedHttpChannelListener(MetricRegistry registry, String pref, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.prefix = (pref == null) ? getClass().getName() : pref;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, &quot;requests&quot;));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, &quot;dispatches&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, &quot;active-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, &quot;active-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, &quot;active-suspended&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, &quot;async-dispatches&quot;));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, &quot;async-timeouts&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -<b class="fc">&nbsp;        this.responses = COARSE_METER_LEVELS.contains(responseMeteredLevel) ?</b>
    -<b class="fc">&nbsp;                Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;1xx-responses&quot;)), // 1xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;2xx-responses&quot;)), // 2xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;3xx-responses&quot;)), // 3xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;4xx-responses&quot;)), // 4xx</b>
    -<b class="fc">&nbsp;                        registry.meter(name(prefix, &quot;5xx-responses&quot;))  // 5xx</b>
    -<b class="nc">&nbsp;                )) : Collections.emptyList();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, &quot;get-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, &quot;post-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, &quot;head-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, &quot;put-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, &quot;delete-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, &quot;options-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, &quot;trace-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, &quot;connect-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, &quot;move-requests&quot;));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, &quot;other-requests&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-4xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-1m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getOneMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-5m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFiveMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, &quot;percent-5xx-15m&quot;), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            public Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                        requests.getFifteenMinuteRate());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onBeforeDispatch(final Request request) {
    -<b class="fc">&nbsp;        before(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onDispatchFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onAfterDispatch(final Request request) {
    -<b class="fc">&nbsp;        after(request);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestContentEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestTrailers(final Request request) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onRequestFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseBegin(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseCommit(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseContent(final Request request, final ByteBuffer content) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseEnd(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onResponseFailure(final Request request, final Throwable failure) {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void onComplete(final Request request) {
    -&nbsp;
    -<b class="fc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    private void before(final Request request) {
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = request.getTimeStamp();</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="fc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            activeSuspended.dec();</b>
    -<b class="fc">&nbsp;            if (state.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        request.setAttribute(START_ATTR, start);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void after(final Request request) {
    -<b class="fc">&nbsp;        final long start = (long) request.getAttribute(START_ATTR);</b>
    -<b class="fc">&nbsp;        final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;        final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.dec();</b>
    -<b class="fc">&nbsp;        dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final HttpChannelState state = request.getHttpChannelState();</b>
    -<b class="fc">&nbsp;        if (state.isSuspended()) {</b>
    -<b class="fc">&nbsp;            activeSuspended.inc();</b>
    -<b class="fc">&nbsp;        } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;            updateResponses(request, request.getResponse(), start, request.isHandled());</b>
    -&nbsp;        }
    -&nbsp;        // else onCompletion will handle it.
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void updateResponses(HttpServletRequest request, HttpServletResponse response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="fc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404); // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(prefix, String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="fc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="fc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="fc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="fc">&nbsp;            final HttpServletRequest request = (HttpServletRequest) state.getRequest();</b>
    -<b class="fc">&nbsp;            final HttpServletResponse response = (HttpServletResponse) state.getResponse();</b>
    -<b class="fc">&nbsp;            updateResponses(request, response, startTime, true);</b>
    -<b class="fc">&nbsp;            if (!state.getHttpChannelState().isSuspended()) {</b>
    -<b class="fc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-20/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-20/sources/source-4.html
    deleted file mode 100644
    index 729377d88f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-20/sources/source-4.html
    +++ /dev/null
    @@ -1,345 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty11</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty11)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.4%
    -  </span>
    -  <span class="absValue">
    -    (27/32)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (16/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.9%
    -  </span>
    -  <span class="absValue">
    -    (30/39)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty11;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    -&nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, null, prefix);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index.html b/metrics-complete-report-initial-htmlReport/ns-21/index.html
    deleted file mode 100644
    index e6c85a4bc0..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-21/index.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 0f43eba08c..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index c633257861..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 9f33e3c043..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 50b4959e2a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_LINE.html
    deleted file mode 100644
    index ed9a1e6849..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index bc45f875c0..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 86a1395676..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 41508607c3..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 1c2bbb6095..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-21/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.9%
    -  </span>
    -  <span class="absValue">
    -    (43/59)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.6%
    -  </span>
    -  <span class="absValue">
    -    (151/185)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedQueuedThreadPool</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedConnectionFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-21/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-21/sources/source-1.html
    deleted file mode 100644
    index b52c28979e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-21/sources/source-1.html
    +++ /dev/null
    @@ -1,584 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AbstractInstrumentedHandler (io.dropwizard.metrics.jetty12)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AbstractInstrumentedHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (12/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.1%
    -  </span>
    -  <span class="absValue">
    -    (96/109)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$4</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedHandler$7</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70.4%
    -  </span>
    -  <span class="absValue">
    -    (19/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (103/128)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import org.eclipse.jetty.http.HttpMethod;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.Response;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.EnumSet;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.ALL;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.DETAILED;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An abstract base class of a Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance.
    -&nbsp; */
    -&nbsp;public abstract class AbstractInstrumentedHandler extends Handler.Wrapper {
    -&nbsp;    protected static final String NAME_REQUESTS = &quot;requests&quot;;
    -&nbsp;    protected static final String NAME_DISPATCHES = &quot;dispatches&quot;;
    -&nbsp;    protected static final String NAME_ACTIVE_REQUESTS = &quot;active-requests&quot;;
    -&nbsp;    protected static final String NAME_ACTIVE_DISPATCHES = &quot;active-dispatches&quot;;
    -&nbsp;    protected static final String NAME_ACTIVE_SUSPENDED = &quot;active-suspended&quot;;
    -&nbsp;    protected static final String NAME_ASYNC_DISPATCHES = &quot;async-dispatches&quot;;
    -&nbsp;    protected static final String NAME_ASYNC_TIMEOUTS = &quot;async-timeouts&quot;;
    -&nbsp;    protected static final String NAME_1XX_RESPONSES = &quot;1xx-responses&quot;;
    -&nbsp;    protected static final String NAME_2XX_RESPONSES = &quot;2xx-responses&quot;;
    -&nbsp;    protected static final String NAME_3XX_RESPONSES = &quot;3xx-responses&quot;;
    -&nbsp;    protected static final String NAME_4XX_RESPONSES = &quot;4xx-responses&quot;;
    -&nbsp;    protected static final String NAME_5XX_RESPONSES = &quot;5xx-responses&quot;;
    -&nbsp;    protected static final String NAME_GET_REQUESTS = &quot;get-requests&quot;;
    -&nbsp;    protected static final String NAME_POST_REQUESTS = &quot;post-requests&quot;;
    -&nbsp;    protected static final String NAME_HEAD_REQUESTS = &quot;head-requests&quot;;
    -&nbsp;    protected static final String NAME_PUT_REQUESTS = &quot;put-requests&quot;;
    -&nbsp;    protected static final String NAME_DELETE_REQUESTS = &quot;delete-requests&quot;;
    -&nbsp;    protected static final String NAME_OPTIONS_REQUESTS = &quot;options-requests&quot;;
    -&nbsp;    protected static final String NAME_TRACE_REQUESTS = &quot;trace-requests&quot;;
    -&nbsp;    protected static final String NAME_CONNECT_REQUESTS = &quot;connect-requests&quot;;
    -&nbsp;    protected static final String NAME_MOVE_REQUESTS = &quot;move-requests&quot;;
    -&nbsp;    protected static final String NAME_OTHER_REQUESTS = &quot;other-requests&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_4XX_1M = &quot;percent-4xx-1m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_4XX_5M = &quot;percent-4xx-5m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_4XX_15M = &quot;percent-4xx-15m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_5XX_1M = &quot;percent-5xx-1m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_5XX_5M = &quot;percent-5xx-5m&quot;;
    -&nbsp;    protected static final String NAME_PERCENT_5XX_15M = &quot;percent-5xx-15m&quot;;
    -<b class="fc">&nbsp;    protected static final Set&lt;ResponseMeteredLevel&gt; COARSE_METER_LEVELS = EnumSet.of(COARSE, ALL);</b>
    -<b class="fc">&nbsp;    protected static final Set&lt;ResponseMeteredLevel&gt; DETAILED_METER_LEVELS = EnumSet.of(DETAILED, ALL);</b>
    -&nbsp;
    -&nbsp;    protected final MetricRegistry metricRegistry;
    -&nbsp;
    -&nbsp;    private String name;
    -&nbsp;    protected final String prefix;
    -&nbsp;
    -&nbsp;    // the requests handled by this handler, excluding active
    -&nbsp;    protected Timer requests;
    -&nbsp;
    -&nbsp;    // the number of dispatches seen by this handler, excluding active
    -&nbsp;    protected Timer dispatches;
    -&nbsp;
    -&nbsp;    // the number of active requests
    -&nbsp;    protected Counter activeRequests;
    -&nbsp;
    -&nbsp;    // the number of active dispatches
    -&nbsp;    protected Counter activeDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests currently suspended.
    -&nbsp;    protected Counter activeSuspended;
    -&nbsp;
    -&nbsp;    // the number of requests that have been asynchronously dispatched
    -&nbsp;    protected Meter asyncDispatches;
    -&nbsp;
    -&nbsp;    // the number of requests that expired while suspended
    -&nbsp;    protected Meter asyncTimeouts;
    -&nbsp;
    -&nbsp;    protected final ResponseMeteredLevel responseMeteredLevel;
    -&nbsp;    protected List&lt;Meter&gt; responses;
    -&nbsp;    protected Map&lt;Integer, Meter&gt; responseCodeMeters;
    -&nbsp;
    -&nbsp;    protected Timer getRequests;
    -&nbsp;    protected Timer postRequests;
    -&nbsp;    protected Timer headRequests;
    -&nbsp;    protected Timer putRequests;
    -&nbsp;    protected Timer deleteRequests;
    -&nbsp;    protected Timer optionsRequests;
    -&nbsp;    protected Timer traceRequests;
    -&nbsp;    protected Timer connectRequests;
    -&nbsp;    protected Timer moveRequests;
    -&nbsp;    protected Timer otherRequests;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        this(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -<b class="fc">&nbsp;    protected AbstractInstrumentedHandler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {</b>
    -<b class="fc">&nbsp;        this.responseMeteredLevel = responseMeteredLevel;</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getName() {
    -<b class="fc">&nbsp;        return name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setName(String name) {
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.requests = metricRegistry.timer(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.dispatches = metricRegistry.timer(name(prefix, NAME_DISPATCHES));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.activeRequests = metricRegistry.counter(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.activeDispatches = metricRegistry.counter(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.activeSuspended = metricRegistry.counter(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.asyncDispatches = metricRegistry.meter(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        this.asyncTimeouts = metricRegistry.meter(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.responseCodeMeters = DETAILED_METER_LEVELS.contains(responseMeteredLevel) ? new ConcurrentHashMap&lt;&gt;() : Collections.emptyMap();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.getRequests = metricRegistry.timer(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.postRequests = metricRegistry.timer(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.headRequests = metricRegistry.timer(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.putRequests = metricRegistry.timer(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.deleteRequests = metricRegistry.timer(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.optionsRequests = metricRegistry.timer(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.traceRequests = metricRegistry.timer(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.connectRequests = metricRegistry.timer(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.moveRequests = metricRegistry.timer(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        this.otherRequests = metricRegistry.timer(name(prefix, NAME_OTHER_REQUESTS));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            this.responses = Collections.unmodifiableList(Arrays.asList(</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_1XX_RESPONSES)), // 1xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_2XX_RESPONSES)), // 2xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_3XX_RESPONSES)), // 3xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_4XX_RESPONSES)), // 4xx</b>
    -<b class="fc">&nbsp;                            metricRegistry.meter(name(prefix, NAME_5XX_RESPONSES))  // 5xx</b>
    -&nbsp;                    ));
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_4XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(3).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_1M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getOneMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getOneMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_5M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                protected Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFiveMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFiveMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;
    -<b class="fc">&nbsp;            metricRegistry.register(name(prefix, NAME_PERCENT_5XX_15M), new RatioGauge() {</b>
    -&nbsp;                @Override
    -&nbsp;                public Ratio getRatio() {
    -<b class="nc">&nbsp;                    return Ratio.of(responses.get(4).getFifteenMinuteRate(),</b>
    -<b class="nc">&nbsp;                            requests.getFifteenMinuteRate());</b>
    -&nbsp;                }
    -&nbsp;            });
    -&nbsp;        } else {
    -<b class="fc">&nbsp;             this.responses = Collections.emptyList();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ACTIVE_SUSPENDED));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_DISPATCHES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_ASYNC_TIMEOUTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_1XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_2XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_3XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_4XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_5XX_RESPONSES));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_GET_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_POST_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_HEAD_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PUT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_DELETE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OPTIONS_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_TRACE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_CONNECT_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_MOVE_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_OTHER_REQUESTS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_4XX_15M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_1M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_5M));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_PERCENT_5XX_15M));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        if (responseCodeMeters != null) {</b>
    -<b class="fc">&nbsp;            responseCodeMeters.keySet().stream()</b>
    -<b class="fc">&nbsp;                    .map(sc -&gt; name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc)))</b>
    -<b class="fc">&nbsp;                    .forEach(metricRegistry::remove);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected Timer requestTimer(String method) {
    -<b class="fc">&nbsp;        final HttpMethod m = HttpMethod.fromString(method);</b>
    -<b class="fc">&nbsp;        if (m == null) {</b>
    -<b class="nc">&nbsp;            return otherRequests;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            switch (m) {</b>
    -&nbsp;                case GET:
    -<b class="fc">&nbsp;                    return getRequests;</b>
    -&nbsp;                case POST:
    -<b class="nc">&nbsp;                    return postRequests;</b>
    -&nbsp;                case PUT:
    -<b class="nc">&nbsp;                    return putRequests;</b>
    -&nbsp;                case HEAD:
    -<b class="nc">&nbsp;                    return headRequests;</b>
    -&nbsp;                case DELETE:
    -<b class="nc">&nbsp;                    return deleteRequests;</b>
    -&nbsp;                case OPTIONS:
    -<b class="nc">&nbsp;                    return optionsRequests;</b>
    -&nbsp;                case TRACE:
    -<b class="nc">&nbsp;                    return traceRequests;</b>
    -&nbsp;                case CONNECT:
    -<b class="nc">&nbsp;                    return connectRequests;</b>
    -&nbsp;                case MOVE:
    -<b class="nc">&nbsp;                    return moveRequests;</b>
    -&nbsp;                default:
    -<b class="nc">&nbsp;                    return otherRequests;</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void updateResponses(Request request, Response response, long start, boolean isHandled) {
    -<b class="fc">&nbsp;        if (isHandled) {</b>
    -<b class="nc">&nbsp;            mark(response.getStatus());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            mark(404);; // will end up with a 404 response sent by HttpChannel.handle</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        activeRequests.dec();</b>
    -<b class="fc">&nbsp;        final long elapsedTime = System.currentTimeMillis() - start;</b>
    -<b class="fc">&nbsp;        requests.update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -<b class="fc">&nbsp;        requestTimer(request.getMethod()).update(elapsedTime, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void mark(int statusCode) {
    -<b class="fc">&nbsp;        if (DETAILED_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            getResponseCodeMeter(statusCode).mark();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (COARSE_METER_LEVELS.contains(responseMeteredLevel)) {</b>
    -<b class="fc">&nbsp;            final int responseStatus = statusCode / 100;</b>
    -<b class="fc">&nbsp;            if (responseStatus &gt;= 1 &amp;&amp; responseStatus &lt;= 5) {</b>
    -<b class="fc">&nbsp;                responses.get(responseStatus - 1).mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected Meter getResponseCodeMeter(int statusCode) {
    -<b class="fc">&nbsp;        return responseCodeMeters</b>
    -<b class="fc">&nbsp;                .computeIfAbsent(statusCode, sc -&gt; metricRegistry</b>
    -<b class="fc">&nbsp;                        .meter(name(getMetricPrefix(), String.format(&quot;%d-responses&quot;, sc))));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(getHandler().getClass(), name) : name(this.prefix, name);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-21/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-21/sources/source-2.html
    deleted file mode 100644
    index 21cea81948..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-21/sources/source-2.html
    +++ /dev/null
    @@ -1,193 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedConnectionFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedConnectionFactory (io.dropwizard.metrics.jetty12)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedConnectionFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.7%
    -  </span>
    -  <span class="absValue">
    -    (11/12)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedConnectionFactory$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (8/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.eclipse.jetty.io.Connection;
    -&nbsp;import org.eclipse.jetty.io.EndPoint;
    -&nbsp;import org.eclipse.jetty.server.ConnectionFactory;
    -&nbsp;import org.eclipse.jetty.server.Connector;
    -&nbsp;import org.eclipse.jetty.util.component.ContainerLifeCycle;
    -&nbsp;
    -&nbsp;import java.util.List;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedConnectionFactory extends ContainerLifeCycle implements ConnectionFactory {</b>
    -&nbsp;    private final ConnectionFactory connectionFactory;
    -&nbsp;    private final Timer timer;
    -&nbsp;    private final Counter counter;
    -&nbsp;
    -&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer) {
    -<b class="nc">&nbsp;        this(connectionFactory, timer, null);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public InstrumentedConnectionFactory(ConnectionFactory connectionFactory, Timer timer, Counter counter) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.timer = timer;</b>
    -<b class="fc">&nbsp;        this.counter = counter;</b>
    -<b class="fc">&nbsp;        addBean(connectionFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public String getProtocol() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocol();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public List&lt;String&gt; getProtocols() {
    -<b class="fc">&nbsp;        return connectionFactory.getProtocols();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Connection newConnection(Connector connector, EndPoint endPoint) {
    -<b class="fc">&nbsp;        final Connection connection = connectionFactory.newConnection(connector, endPoint);</b>
    -<b class="fc">&nbsp;        connection.addEventListener(new Connection.Listener() {</b>
    -&nbsp;            private Timer.Context context;
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onOpened(Connection connection) {
    -<b class="fc">&nbsp;                this.context = timer.time();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.inc();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void onClosed(Connection connection) {
    -<b class="fc">&nbsp;                context.stop();</b>
    -<b class="fc">&nbsp;                if (counter != null) {</b>
    -<b class="fc">&nbsp;                    counter.dec();</b>
    -&nbsp;                }
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        return connection;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-21/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-21/sources/source-3.html
    deleted file mode 100644
    index 0c65fff9ef..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-21/sources/source-3.html
    +++ /dev/null
    @@ -1,336 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedQueuedThreadPool</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedQueuedThreadPool (io.dropwizard.metrics.jetty12)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedQueuedThreadPool</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    76.5%
    -  </span>
    -  <span class="absValue">
    -    (13/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.1%
    -  </span>
    -  <span class="absValue">
    -    (27/31)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$2</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedQueuedThreadPool$3</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.6%
    -  </span>
    -  <span class="absValue">
    -    (16/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78.9%
    -  </span>
    -  <span class="absValue">
    -    (30/38)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.RatioGauge;
    -&nbsp;import org.eclipse.jetty.util.annotation.Name;
    -&nbsp;import org.eclipse.jetty.util.thread.QueuedThreadPool;
    -&nbsp;
    -&nbsp;import java.util.concurrent.BlockingQueue;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class InstrumentedQueuedThreadPool extends QueuedThreadPool {</b>
    -&nbsp;    private static final String NAME_UTILIZATION = &quot;utilization&quot;;
    -&nbsp;    private static final String NAME_UTILIZATION_MAX = &quot;utilization-max&quot;;
    -&nbsp;    private static final String NAME_SIZE = &quot;size&quot;;
    -&nbsp;    private static final String NAME_JOBS = &quot;jobs&quot;;
    -&nbsp;    private static final String NAME_JOBS_QUEUE_UTILIZATION = &quot;jobs-queue-utilization&quot;;
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private String prefix;
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry) {
    -<b class="fc">&nbsp;        this(registry, 200);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, 8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, 60000);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, 60000, queue);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, queue, (ThreadGroup) null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="nc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, null, threadFactory);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, -1, queue, threadGroup);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory) {
    -<b class="fc">&nbsp;        this(registry, maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedQueuedThreadPool(@Name(&quot;registry&quot;) MetricRegistry registry,
    -&nbsp;                                        @Name(&quot;maxThreads&quot;) int maxThreads,
    -&nbsp;                                        @Name(&quot;minThreads&quot;) int minThreads,
    -&nbsp;                                        @Name(&quot;idleTimeout&quot;) int idleTimeout,
    -&nbsp;                                        @Name(&quot;reservedThreads&quot;) int reservedThreads,
    -&nbsp;                                        @Name(&quot;queue&quot;) BlockingQueue&lt;Runnable&gt; queue,
    -&nbsp;                                        @Name(&quot;threadGroup&quot;) ThreadGroup threadGroup,
    -&nbsp;                                        @Name(&quot;threadFactory&quot;) ThreadFactory threadFactory,
    -&nbsp;                                        @Name(&quot;prefix&quot;) String prefix) {
    -<b class="fc">&nbsp;        super(maxThreads, minThreads, idleTimeout, reservedThreads, queue, threadGroup, threadFactory);</b>
    -<b class="fc">&nbsp;        this.metricRegistry = registry;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String getPrefix() {
    -<b class="nc">&nbsp;        return prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void setPrefix(String prefix) {
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_UTILIZATION_MAX), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                return Ratio.of(getThreads() - getIdleThreads(), getMaxThreads());</b>
    -&nbsp;            }
    -&nbsp;        });
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_SIZE), this::getThreads);</b>
    -&nbsp;        // This assumes the QueuedThreadPool is using a BlockingArrayQueue or
    -&nbsp;        // ArrayBlockingQueue for its queue, and is therefore a constant-time operation.
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(prefix, NAME_JOBS), () -&gt; getQueue().size());</b>
    -<b class="fc">&nbsp;        metricRegistry.register(name(prefix, NAME_JOBS_QUEUE_UTILIZATION), new RatioGauge() {</b>
    -&nbsp;            @Override
    -&nbsp;            protected Ratio getRatio() {
    -<b class="nc">&nbsp;                BlockingQueue&lt;Runnable&gt; queue = getQueue();</b>
    -<b class="nc">&nbsp;                return Ratio.of(queue.size(), queue.size() + queue.remainingCapacity());</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        final String prefix = getMetricPrefix();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_UTILIZATION_MAX));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_SIZE));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS));</b>
    -<b class="fc">&nbsp;        metricRegistry.remove(name(prefix, NAME_JOBS_QUEUE_UTILIZATION));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String getMetricPrefix() {
    -<b class="fc">&nbsp;        return this.prefix == null ? name(QueuedThreadPool.class, getName()) : name(this.prefix, getName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index.html b/metrics-complete-report-initial-htmlReport/ns-22/index.html
    deleted file mode 100644
    index 56e62bb688..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-22/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 43f0413a62..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 67766f8898..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index cbe48899ef..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 23d8621d8c..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_LINE.html
    deleted file mode 100644
    index aee7d566d8..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index a033ddee11..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 8152ef6516..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 3126bb98be..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index c71a9b6efe..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-22/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.jetty12.ee10</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.jetty12.ee10</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.jetty12.ee10</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.jetty12.ee10</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedEE10Handler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-22/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-22/sources/source-1.html
    deleted file mode 100644
    index 52c10f828c..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-22/sources/source-1.html
    +++ /dev/null
    @@ -1,328 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedEE10Handler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.jetty12.ee10</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedEE10Handler (io.dropwizard.metrics.jetty12.ee10)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedEE10Handler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.9%
    -  </span>
    -  <span class="absValue">
    -    (23/32)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedEE10Handler$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedEE10Handler$AsyncAttachingListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    20%
    -  </span>
    -  <span class="absValue">
    -    (1/5)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedEE10Handler$InstrumentedAsyncListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    29.4%
    -  </span>
    -  <span class="absValue">
    -    (5/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    48%
    -  </span>
    -  <span class="absValue">
    -    (24/50)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.jetty12.ee10;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.annotation.ResponseMeteredLevel;
    -&nbsp;import io.dropwizard.metrics.jetty12.AbstractInstrumentedHandler;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.AsyncContextState;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletApiRequest;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletApiResponse;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletChannelState;
    -&nbsp;import org.eclipse.jetty.ee10.servlet.ServletContextRequest;
    -&nbsp;import org.eclipse.jetty.server.Handler;
    -&nbsp;import org.eclipse.jetty.server.Request;
    -&nbsp;import org.eclipse.jetty.server.Response;
    -&nbsp;import org.eclipse.jetty.util.Callback;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.annotation.ResponseMeteredLevel.COARSE;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Jetty {@link Handler} which records various metrics about an underlying {@link Handler}
    -&nbsp; * instance. This {@link Handler} requires a {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} to be present.
    -&nbsp; * For correct behaviour, the {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler} should be before this handler
    -&nbsp; * in the handler chain. To achieve this, one can use
    -&nbsp; * {@link org.eclipse.jetty.ee10.servlet.ServletContextHandler#insertHandler(Singleton)}.
    -&nbsp; */
    -<b class="nc">&nbsp;public class InstrumentedEE10Handler extends AbstractInstrumentedHandler {</b>
    -&nbsp;    private AsyncListener listener;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     */
    -&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry) {
    -<b class="nc">&nbsp;        super(registry, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     */
    -&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry, String prefix) {
    -<b class="nc">&nbsp;        super(registry, prefix, COARSE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented handler using a given metrics registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry for the metrics
    -&nbsp;     * @param prefix   the prefix to use for the metrics names
    -&nbsp;     * @param responseMeteredLevel the level to determine individual/aggregate response codes that are instrumented
    -&nbsp;     */
    -&nbsp;    public InstrumentedEE10Handler(MetricRegistry registry, String prefix, ResponseMeteredLevel responseMeteredLevel) {
    -<b class="fc">&nbsp;        super(registry, prefix, responseMeteredLevel);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStart() throws Exception {
    -<b class="fc">&nbsp;        super.doStart();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.listener = new AsyncAttachingListener();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doStop() throws Exception {
    -<b class="fc">&nbsp;        super.doStop();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean handle(Request request, Response response, Callback callback) throws Exception {
    -<b class="fc">&nbsp;        ServletContextRequest servletContextRequest = Request.as(request, ServletContextRequest.class);</b>
    -&nbsp;
    -&nbsp;        // only handle servlet requests with the InstrumentedHandler
    -&nbsp;        // because it depends on the ServletRequestState
    -<b class="fc">&nbsp;        if (servletContextRequest == null) {</b>
    -<b class="nc">&nbsp;            return super.handle(request, response, callback);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        activeDispatches.inc();</b>
    -&nbsp;
    -&nbsp;        final long start;
    -<b class="fc">&nbsp;        final ServletChannelState state = servletContextRequest.getServletRequestState();</b>
    -<b class="fc">&nbsp;        if (state.isInitial()) {</b>
    -&nbsp;            // new request
    -<b class="fc">&nbsp;            activeRequests.inc();</b>
    -<b class="fc">&nbsp;            start = Request.getTimeStamp(request);</b>
    -<b class="fc">&nbsp;            state.addListener(listener);</b>
    -&nbsp;        } else {
    -&nbsp;            // resumed request
    -<b class="nc">&nbsp;            start = System.currentTimeMillis();</b>
    -<b class="nc">&nbsp;            activeSuspended.dec();</b>
    -<b class="nc">&nbsp;            if (state.getState() == ServletChannelState.State.HANDLING) {</b>
    -<b class="nc">&nbsp;                asyncDispatches.mark();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        boolean handled = false;</b>
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            handled = super.handle(request, response, callback);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            final long now = System.currentTimeMillis();</b>
    -<b class="fc">&nbsp;            final long dispatched = now - start;</b>
    -&nbsp;
    -<b class="fc">&nbsp;            activeDispatches.dec();</b>
    -<b class="fc">&nbsp;            dispatches.update(dispatched, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            if (state.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.inc();</b>
    -<b class="fc">&nbsp;            } else if (state.isInitial()) {</b>
    -<b class="fc">&nbsp;                updateResponses(request, response, start, handled);</b>
    -&nbsp;            }
    -&nbsp;            // else onCompletion will handle it.
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return handled;</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private class AsyncAttachingListener implements AsyncListener {</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            event.getAsyncContext().addListener(new InstrumentedAsyncListener());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onError(AsyncEvent event) throws IOException {}</b>
    -&nbsp;
    -&nbsp;        @Override
    -<b class="nc">&nbsp;        public void onComplete(AsyncEvent event) throws IOException {}</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class InstrumentedAsyncListener implements AsyncListener {
    -&nbsp;        private final long startTime;
    -&nbsp;
    -<b class="nc">&nbsp;        InstrumentedAsyncListener() {</b>
    -<b class="nc">&nbsp;            this.startTime = System.currentTimeMillis();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            asyncTimeouts.mark();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            final AsyncContextState state = (AsyncContextState) event.getAsyncContext();</b>
    -<b class="nc">&nbsp;            final ServletApiRequest request = (ServletApiRequest) state.getRequest();</b>
    -<b class="nc">&nbsp;            final ServletApiResponse response = (ServletApiResponse) state.getResponse();</b>
    -<b class="nc">&nbsp;            updateResponses(request.getRequest(), response.getResponse(), startTime, true);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            final ServletContextRequest servletContextRequest = Request.as(request.getRequest(), ServletContextRequest.class);</b>
    -<b class="nc">&nbsp;            final ServletChannelState servletRequestState = servletContextRequest.getServletRequestState();</b>
    -<b class="nc">&nbsp;            if (!servletRequestState.isSuspended()) {</b>
    -<b class="nc">&nbsp;                activeSuspended.dec();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index.html b/metrics-complete-report-initial-htmlReport/ns-23/index.html
    deleted file mode 100644
    index 13f42e0d3f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-23/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index f36acfeb7b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 4c1d6849de..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 7c9d152432..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 16f7cc0ecc..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_LINE.html
    deleted file mode 100644
    index cc2a9c216b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 5fea66ebf3..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 771dd676ba..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 57959817f1..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 65b4399e88..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-23/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback13</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback13</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback13</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback13</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-23/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-23/sources/source-1.html
    deleted file mode 100644
    index 1750f74921..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-23/sources/source-1.html
    +++ /dev/null
    @@ -1,195 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.logback13</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback13)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback13;
    -&nbsp;
    -&nbsp;import ch.qos.logback.classic.Level;
    -&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    -&nbsp;import ch.qos.logback.core.Appender;
    -&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    -&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    -&nbsp;
    -&nbsp;    private Meter all;
    -&nbsp;    private Meter trace;
    -&nbsp;    private Meter debug;
    -&nbsp;    private Meter info;
    -&nbsp;    private Meter warn;
    -&nbsp;    private Meter error;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender() {
    -<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void append(ILoggingEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    -&nbsp;            case Level.TRACE_INT:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.DEBUG_INT:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.INFO_INT:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.WARN_INT:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.ERROR_INT:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index.html b/metrics-complete-report-initial-htmlReport/ns-24/index.html
    deleted file mode 100644
    index 28a4d3ad19..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-24/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 733147805c..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index a07dfaf4e6..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index b412b7fb4e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index e6156806ed..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_LINE.html
    deleted file mode 100644
    index cdc2bcada8..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index f3b9ba0e33..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 4f64874867..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 3bd5820783..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 4d8a0f63b7..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-24/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback14</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback14</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback14</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback14</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-24/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-24/sources/source-1.html
    deleted file mode 100644
    index ca875739ea..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-24/sources/source-1.html
    +++ /dev/null
    @@ -1,195 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.logback14</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback14)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback14;
    -&nbsp;
    -&nbsp;import ch.qos.logback.classic.Level;
    -&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    -&nbsp;import ch.qos.logback.core.Appender;
    -&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    -&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    -&nbsp;
    -&nbsp;    private Meter all;
    -&nbsp;    private Meter trace;
    -&nbsp;    private Meter debug;
    -&nbsp;    private Meter info;
    -&nbsp;    private Meter warn;
    -&nbsp;    private Meter error;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender() {
    -<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void append(ILoggingEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    -&nbsp;            case Level.TRACE_INT:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.DEBUG_INT:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.INFO_INT:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.WARN_INT:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.ERROR_INT:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index.html b/metrics-complete-report-initial-htmlReport/ns-25/index.html
    deleted file mode 100644
    index 4c50c23c5a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-25/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 7e2a80b569..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index e6154295a7..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 14948f98c2..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index f3872d96eb..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 30f7c597a6..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 7c174f56b2..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index cb4a96e604..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 2e6d0897ee..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 1b358d35f6..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-25/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.logback15</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.logback15</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.logback15</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.logback15</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedAppender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-25/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-25/sources/source-1.html
    deleted file mode 100644
    index 368328d805..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-25/sources/source-1.html
    +++ /dev/null
    @@ -1,195 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAppender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.logback15</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAppender (io.dropwizard.metrics.logback15)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAppender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (24/24)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.logback15;
    -&nbsp;
    -&nbsp;import ch.qos.logback.classic.Level;
    -&nbsp;import ch.qos.logback.classic.spi.ILoggingEvent;
    -&nbsp;import ch.qos.logback.core.Appender;
    -&nbsp;import ch.qos.logback.core.UnsynchronizedAppenderBase;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A Logback {@link Appender} which has six meters, one for each logging level and one for the total
    -&nbsp; * number of statements being logged. The meter names are the logging level names appended to the
    -&nbsp; * name of the appender.
    -&nbsp; */
    -&nbsp;public class InstrumentedAppender extends UnsynchronizedAppenderBase&lt;ILoggingEvent&gt; {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    public static final String DEFAULT_REGISTRY = &quot;logback-metrics&quot;;
    -&nbsp;    public static final String REGISTRY_PROPERTY_NAME = &quot;metrics.logback.registry&quot;;
    -&nbsp;
    -&nbsp;    private Meter all;
    -&nbsp;    private Meter trace;
    -&nbsp;    private Meter debug;
    -&nbsp;    private Meter info;
    -&nbsp;    private Meter warn;
    -&nbsp;    private Meter error;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender() {
    -<b class="fc">&nbsp;        this(System.getProperty(REGISTRY_PROPERTY_NAME, DEFAULT_REGISTRY));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry name.
    -&nbsp;     *
    -&nbsp;     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -&nbsp;     */
    -&nbsp;    public InstrumentedAppender(String registryName) {
    -<b class="fc">&nbsp;        this(SharedMetricRegistries.getOrCreate(registryName));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Create a new instrumented appender using the given registry.
    -&nbsp;     *
    -&nbsp;     * @param registry the metric registry
    -&nbsp;     */
    -<b class="fc">&nbsp;    public InstrumentedAppender(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        setName(Appender.class.getName());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start() {
    -<b class="fc">&nbsp;        this.all = registry.meter(name(getName(), &quot;all&quot;));</b>
    -<b class="fc">&nbsp;        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</b>
    -<b class="fc">&nbsp;        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</b>
    -<b class="fc">&nbsp;        this.info = registry.meter(name(getName(), &quot;info&quot;));</b>
    -<b class="fc">&nbsp;        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</b>
    -<b class="fc">&nbsp;        this.error = registry.meter(name(getName(), &quot;error&quot;));</b>
    -<b class="fc">&nbsp;        super.start();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void append(ILoggingEvent event) {
    -<b class="fc">&nbsp;        all.mark();</b>
    -<b class="fc">&nbsp;        switch (event.getLevel().toInt()) {</b>
    -&nbsp;            case Level.TRACE_INT:
    -<b class="fc">&nbsp;                trace.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.DEBUG_INT:
    -<b class="fc">&nbsp;                debug.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.INFO_INT:
    -<b class="fc">&nbsp;                info.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.WARN_INT:
    -<b class="fc">&nbsp;                warn.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case Level.ERROR_INT:
    -<b class="fc">&nbsp;                error.mark();</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -&nbsp;                break;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index.html b/metrics-complete-report-initial-htmlReport/ns-26/index.html
    deleted file mode 100644
    index f6c089e44a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-26/index.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index dcc2556a79..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 102637c63f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index b34edd5b86..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 819778ca4b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 6f1cff2ce4..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 99d5d941b0..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index b02cd2b809..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 7a26bdf005..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index dc3c6b6565..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-26/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    12.5%
    -  </span>
    -  <span class="absValue">
    -    (3/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.5%
    -  </span>
    -  <span class="absValue">
    -    (3/86)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-26/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-26/sources/source-1.html
    deleted file mode 100644
    index 4f06d9c32a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-26/sources/source-1.html
    +++ /dev/null
    @@ -1,367 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AbstractInstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/45)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/73)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.Filter;
    -&nbsp;import jakarta.servlet.FilterChain;
    -&nbsp;import jakarta.servlet.FilterConfig;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.ServletRequest;
    -&nbsp;import jakarta.servlet.ServletResponse;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;import jakarta.servlet.http.HttpServletResponseWrapper;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Map.Entry;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    -&nbsp; * codes being returned.
    -&nbsp; */
    -<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    -&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    -&nbsp;
    -&nbsp;    private final String otherMetricName;
    -&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    -&nbsp;    private final String registryAttribute;
    -&nbsp;
    -&nbsp;    // initialized after call of init method
    -&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    -&nbsp;    private Meter otherMeter;
    -&nbsp;    private Meter timeoutsMeter;
    -&nbsp;    private Meter errorsMeter;
    -&nbsp;    private Counter activeRequests;
    -&nbsp;    private Timer requestTimer;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     *
    -&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    -&nbsp;     *                               servlet context
    -&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    -&nbsp;     *                               interested in.
    -&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    -&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    -<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    -<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    -<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    -<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    -<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    -<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    -<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    -<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    -<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    -<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    -<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    -<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    -<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    -<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    -&nbsp;        final MetricRegistry metricsRegistry;
    -&nbsp;
    -<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    -<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    -<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return metricsRegistry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void doFilter(ServletRequest request,
    -&nbsp;                         ServletResponse response,
    -&nbsp;                         FilterChain chain) throws IOException, ServletException {
    -<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    -&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    -<b class="nc">&nbsp;        activeRequests.inc();</b>
    -<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    -<b class="nc">&nbsp;        boolean error = false;</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    -<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    -<b class="nc">&nbsp;            error = true;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                if (error) {</b>
    -<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void markMeterForStatusCode(int status) {
    -<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    -<b class="nc">&nbsp;        if (metric != null) {</b>
    -<b class="nc">&nbsp;            metric.mark();</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            otherMeter.mark();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    -&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    -<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    -&nbsp;
    -&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    -<b class="nc">&nbsp;            super(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc, String msg) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void setStatus(int sc) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;        public void setStatus(int sc, String sm) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc, sm);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int getStatus() {
    -<b class="nc">&nbsp;            return httpStatus;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class AsyncResultListener implements AsyncListener {
    -&nbsp;        private Timer.Context context;
    -<b class="nc">&nbsp;        private boolean done = false;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    -<b class="nc">&nbsp;            this.context = context;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            if (!done) {</b>
    -<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            errorsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -&nbsp;
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-26/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-26/sources/source-2.html
    deleted file mode 100644
    index 87aa589a6d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-26/sources/source-2.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    -&nbsp;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    -&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    -&nbsp; * &lt;pre&gt;{@code
    -&nbsp; * &lt;filter&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;filter-class&gt;io.dropwizard.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    -&nbsp; * &lt;/filter&gt;
    -&nbsp; * &lt;filter-mapping&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    -&nbsp; * &lt;/filter-mapping&gt;
    -&nbsp; * }&lt;/pre&gt;
    -&nbsp; */
    -&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    -<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    -&nbsp;    private static final int OK = 200;
    -&nbsp;    private static final int CREATED = 201;
    -&nbsp;    private static final int NO_CONTENT = 204;
    -&nbsp;    private static final int BAD_REQUEST = 400;
    -&nbsp;    private static final int NOT_FOUND = 404;
    -&nbsp;    private static final int SERVER_ERROR = 500;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     */
    -&nbsp;    public InstrumentedFilter() {
    -<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    -<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    -<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-26/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-26/sources/source-3.html
    deleted file mode 100644
    index 68a051214a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-26/sources/source-3.html
    +++ /dev/null
    @@ -1,130 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilterContextListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilterContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import jakarta.servlet.ServletContextEvent;
    -&nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    -&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    -&nbsp; * application.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    -&nbsp;    /**
    -&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;     */
    -&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    -<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index.html b/metrics-complete-report-initial-htmlReport/ns-27/index.html
    deleted file mode 100644
    index 6e8073e796..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-27/index.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index a815cc4660..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 6890267e07..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 9aa3d1c6c7..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index ca990841cd..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_LINE.html
    deleted file mode 100644
    index b1771164dd..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 2e594538db..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index c188f21320..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index fc27204c71..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 33404f0a85..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-27/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,197 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlet6</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlet6</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlet6</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlet6</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    13%
    -  </span>
    -  <span class="absValue">
    -    (3/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    3.6%
    -  </span>
    -  <span class="absValue">
    -    (3/84)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedFilterContextListener</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AbstractInstrumentedFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-27/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-27/sources/source-1.html
    deleted file mode 100644
    index cfe951a5ba..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-27/sources/source-1.html
    +++ /dev/null
    @@ -1,360 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AbstractInstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AbstractInstrumentedFilter (io.dropwizard.metrics.servlet6)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AbstractInstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/45)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$AsyncResultListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">AbstractInstrumentedFilter$StatusExposingServletResponse</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/71)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import jakarta.servlet.AsyncEvent;
    -&nbsp;import jakarta.servlet.AsyncListener;
    -&nbsp;import jakarta.servlet.Filter;
    -&nbsp;import jakarta.servlet.FilterChain;
    -&nbsp;import jakarta.servlet.FilterConfig;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.ServletRequest;
    -&nbsp;import jakarta.servlet.ServletResponse;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;import jakarta.servlet.http.HttpServletResponseWrapper;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Map.Entry;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * {@link Filter} implementation which captures request information and a breakdown of the response
    -&nbsp; * codes being returned.
    -&nbsp; */
    -<b class="nc">&nbsp;public abstract class AbstractInstrumentedFilter implements Filter {</b>
    -&nbsp;    static final String METRIC_PREFIX = &quot;name-prefix&quot;;
    -&nbsp;
    -&nbsp;    private final String otherMetricName;
    -&nbsp;    private final Map&lt;Integer, String&gt; meterNamesByStatusCode;
    -&nbsp;    private final String registryAttribute;
    -&nbsp;
    -&nbsp;    // initialized after call of init method
    -&nbsp;    private ConcurrentMap&lt;Integer, Meter&gt; metersByStatusCode;
    -&nbsp;    private Meter otherMeter;
    -&nbsp;    private Meter timeoutsMeter;
    -&nbsp;    private Meter errorsMeter;
    -&nbsp;    private Counter activeRequests;
    -&nbsp;    private Timer requestTimer;
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     *
    -&nbsp;     * @param registryAttribute      the attribute used to look up the metrics registry in the
    -&nbsp;     *                               servlet context
    -&nbsp;     * @param meterNamesByStatusCode A map, keyed by status code, of meter names that we are
    -&nbsp;     *                               interested in.
    -&nbsp;     * @param otherMetricName        The name used for the catch-all meter.
    -&nbsp;     */
    -&nbsp;    protected AbstractInstrumentedFilter(String registryAttribute,
    -&nbsp;                                         Map&lt;Integer, String&gt; meterNamesByStatusCode,
    -<b class="nc">&nbsp;                                         String otherMetricName) {</b>
    -<b class="nc">&nbsp;        this.registryAttribute = registryAttribute;</b>
    -<b class="nc">&nbsp;        this.otherMetricName = otherMetricName;</b>
    -<b class="nc">&nbsp;        this.meterNamesByStatusCode = meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(FilterConfig filterConfig) throws ServletException {
    -<b class="nc">&nbsp;        final MetricRegistry metricsRegistry = getMetricsFactory(filterConfig);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        String metricName = filterConfig.getInitParameter(METRIC_PREFIX);</b>
    -<b class="nc">&nbsp;        if (metricName == null || metricName.isEmpty()) {</b>
    -<b class="nc">&nbsp;            metricName = getClass().getName();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.metersByStatusCode = new ConcurrentHashMap&lt;&gt;(meterNamesByStatusCode.size());</b>
    -<b class="nc">&nbsp;        for (Entry&lt;Integer, String&gt; entry : meterNamesByStatusCode.entrySet()) {</b>
    -<b class="nc">&nbsp;            metersByStatusCode.put(entry.getKey(),</b>
    -<b class="nc">&nbsp;                    metricsRegistry.meter(name(metricName, entry.getValue())));</b>
    -<b class="nc">&nbsp;        }</b>
    -<b class="nc">&nbsp;        this.otherMeter = metricsRegistry.meter(name(metricName, otherMetricName));</b>
    -<b class="nc">&nbsp;        this.timeoutsMeter = metricsRegistry.meter(name(metricName, &quot;timeouts&quot;));</b>
    -<b class="nc">&nbsp;        this.errorsMeter = metricsRegistry.meter(name(metricName, &quot;errors&quot;));</b>
    -<b class="nc">&nbsp;        this.activeRequests = metricsRegistry.counter(name(metricName, &quot;activeRequests&quot;));</b>
    -<b class="nc">&nbsp;        this.requestTimer = metricsRegistry.timer(name(metricName, &quot;requests&quot;));</b>
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private MetricRegistry getMetricsFactory(FilterConfig filterConfig) {
    -&nbsp;        final MetricRegistry metricsRegistry;
    -&nbsp;
    -<b class="nc">&nbsp;        final Object o = filterConfig.getServletContext().getAttribute(this.registryAttribute);</b>
    -<b class="nc">&nbsp;        if (o instanceof MetricRegistry) {</b>
    -<b class="nc">&nbsp;            metricsRegistry = (MetricRegistry) o;</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            metricsRegistry = new MetricRegistry();</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        return metricsRegistry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -&nbsp;
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void doFilter(ServletRequest request,
    -&nbsp;                         ServletResponse response,
    -&nbsp;                         FilterChain chain) throws IOException, ServletException {
    -<b class="nc">&nbsp;        final StatusExposingServletResponse wrappedResponse =</b>
    -&nbsp;                new StatusExposingServletResponse((HttpServletResponse) response);
    -<b class="nc">&nbsp;        activeRequests.inc();</b>
    -<b class="nc">&nbsp;        final Timer.Context context = requestTimer.time();</b>
    -<b class="nc">&nbsp;        boolean error = false;</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            chain.doFilter(request, wrappedResponse);</b>
    -<b class="nc">&nbsp;        } catch (IOException | RuntimeException | ServletException e) {</b>
    -<b class="nc">&nbsp;            error = true;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            if (!error &amp;&amp; request.isAsyncStarted()) {</b>
    -<b class="nc">&nbsp;                request.getAsyncContext().addListener(new AsyncResultListener(context));</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                if (error) {</b>
    -<b class="nc">&nbsp;                    errorsMeter.mark();</b>
    -&nbsp;                } else {
    -<b class="nc">&nbsp;                    markMeterForStatusCode(wrappedResponse.getStatus());</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void markMeterForStatusCode(int status) {
    -<b class="nc">&nbsp;        final Meter metric = metersByStatusCode.get(status);</b>
    -<b class="nc">&nbsp;        if (metric != null) {</b>
    -<b class="nc">&nbsp;            metric.mark();</b>
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            otherMeter.mark();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class StatusExposingServletResponse extends HttpServletResponseWrapper {
    -&nbsp;        // The Servlet spec says: calling setStatus is optional, if no status is set, the default is 200.
    -<b class="nc">&nbsp;        private int httpStatus = 200;</b>
    -&nbsp;
    -&nbsp;        public StatusExposingServletResponse(HttpServletResponse response) {
    -<b class="nc">&nbsp;            super(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void sendError(int sc, String msg) throws IOException {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.sendError(sc, msg);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void setStatus(int sc) {
    -<b class="nc">&nbsp;            httpStatus = sc;</b>
    -<b class="nc">&nbsp;            super.setStatus(sc);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int getStatus() {
    -<b class="nc">&nbsp;            return httpStatus;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private class AsyncResultListener implements AsyncListener {
    -&nbsp;        private final Timer.Context context;
    -<b class="nc">&nbsp;        private boolean done = false;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        public AsyncResultListener(Timer.Context context) {</b>
    -<b class="nc">&nbsp;            this.context = context;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onComplete(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            if (!done) {</b>
    -<b class="nc">&nbsp;                HttpServletResponse suppliedResponse = (HttpServletResponse) event.getSuppliedResponse();</b>
    -<b class="nc">&nbsp;                context.stop();</b>
    -<b class="nc">&nbsp;                activeRequests.dec();</b>
    -<b class="nc">&nbsp;                markMeterForStatusCode(suppliedResponse.getStatus());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onTimeout(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            timeoutsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onError(AsyncEvent event) throws IOException {
    -<b class="nc">&nbsp;            context.stop();</b>
    -<b class="nc">&nbsp;            activeRequests.dec();</b>
    -<b class="nc">&nbsp;            errorsMeter.mark();</b>
    -<b class="nc">&nbsp;            done = true;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void onStartAsync(AsyncEvent event) throws IOException {
    -&nbsp;
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-27/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-27/sources/source-2.html
    deleted file mode 100644
    index 6938c566e9..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-27/sources/source-2.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilter (io.dropwizard.metrics.servlet6)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (1/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    10%
    -  </span>
    -  <span class="absValue">
    -    (1/10)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    -&nbsp;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Implementation of the {@link AbstractInstrumentedFilter} which provides a default set of response codes
    -&nbsp; * to capture information about. &lt;p&gt;Use it in your servlet.xml like this:&lt;p&gt;
    -&nbsp; * &lt;pre&gt;{@code
    -&nbsp; * &lt;filter&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;filter-class&gt;io.dropwizard.metrics.servlet.InstrumentedFilter&lt;/filter-class&gt;
    -&nbsp; * &lt;/filter&gt;
    -&nbsp; * &lt;filter-mapping&gt;
    -&nbsp; *     &lt;filter-name&gt;instrumentedFilter&lt;/filter-name&gt;
    -&nbsp; *     &lt;url-pattern&gt;/*&lt;/url-pattern&gt;
    -&nbsp; * &lt;/filter-mapping&gt;
    -&nbsp; * }&lt;/pre&gt;
    -&nbsp; */
    -&nbsp;public class InstrumentedFilter extends AbstractInstrumentedFilter {
    -<b class="fc">&nbsp;    public static final String REGISTRY_ATTRIBUTE = InstrumentedFilter.class.getName() + &quot;.registry&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final String NAME_PREFIX = &quot;responseCodes.&quot;;
    -&nbsp;    private static final int OK = 200;
    -&nbsp;    private static final int CREATED = 201;
    -&nbsp;    private static final int NO_CONTENT = 204;
    -&nbsp;    private static final int BAD_REQUEST = 400;
    -&nbsp;    private static final int NOT_FOUND = 404;
    -&nbsp;    private static final int SERVER_ERROR = 500;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new instance of the filter.
    -&nbsp;     */
    -&nbsp;    public InstrumentedFilter() {
    -<b class="nc">&nbsp;        super(REGISTRY_ATTRIBUTE, createMeterNamesByStatusCode(), NAME_PREFIX + &quot;other&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Map&lt;Integer, String&gt; createMeterNamesByStatusCode() {
    -<b class="nc">&nbsp;        final Map&lt;Integer, String&gt; meterNamesByStatusCode = new HashMap&lt;&gt;(6);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(OK, NAME_PREFIX + &quot;ok&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(CREATED, NAME_PREFIX + &quot;created&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NO_CONTENT, NAME_PREFIX + &quot;noContent&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(BAD_REQUEST, NAME_PREFIX + &quot;badRequest&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(NOT_FOUND, NAME_PREFIX + &quot;notFound&quot;);</b>
    -<b class="nc">&nbsp;        meterNamesByStatusCode.put(SERVER_ERROR, NAME_PREFIX + &quot;serverError&quot;);</b>
    -<b class="nc">&nbsp;        return meterNamesByStatusCode;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-27/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-27/sources/source-3.html
    deleted file mode 100644
    index a876200aaf..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-27/sources/source-3.html
    +++ /dev/null
    @@ -1,130 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedFilterContextListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlet6</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedFilterContextListener (io.dropwizard.metrics.servlet6)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedFilterContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlet6;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import jakarta.servlet.ServletContextEvent;
    -&nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A listener implementation which injects a {@link MetricRegistry} instance into the servlet
    -&nbsp; * context. Implement {@link #getMetricRegistry()} to return the {@link MetricRegistry} for your
    -&nbsp; * application.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class InstrumentedFilterContextListener implements ServletContextListener {</b>
    -&nbsp;    /**
    -&nbsp;     * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;     */
    -&nbsp;    protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextInitialized(ServletContextEvent sce) {
    -<b class="fc">&nbsp;        sce.getServletContext().setAttribute(InstrumentedFilter.REGISTRY_ATTRIBUTE, getMetricRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void contextDestroyed(ServletContextEvent sce) {
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index.html b/metrics-complete-report-initial-htmlReport/ns-28/index.html
    deleted file mode 100644
    index 637c4367ba..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-28/index.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 7bc0dc0d69..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 4cb32fafe0..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 82a799b973..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index fdea124b48..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_LINE.html
    deleted file mode 100644
    index d3b5a54f88..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index e618546826..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 9514015b7d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index d8140ea45e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index ac71213922..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-28/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > io.dropwizard.metrics.servlets</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -io.dropwizard.metrics.servlets</div>
    -
    -<h1>Coverage Summary for Package: io.dropwizard.metrics.servlets</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">io.dropwizard.metrics.servlets</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.4%
    -  </span>
    -  <span class="absValue">
    -    (37/46)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.5%
    -  </span>
    -  <span class="absValue">
    -    (210/261)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">ThreadDumpServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">PingServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">MetricsServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CpuProfileServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AdminServlet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-28/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-28/sources/source-1.html
    deleted file mode 100644
    index 70406e5c00..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-28/sources/source-1.html
    +++ /dev/null
    @@ -1,294 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AdminServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AdminServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AdminServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.6%
    -  </span>
    -  <span class="absValue">
    -    (53/74)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import jakarta.servlet.ServletConfig;
    -&nbsp;import jakarta.servlet.ServletContext;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;import java.text.MessageFormat;
    -&nbsp;
    -<b class="fc">&nbsp;public class AdminServlet extends HttpServlet {</b>
    -&nbsp;    public static final String DEFAULT_HEALTHCHECK_URI = &quot;/healthcheck&quot;;
    -&nbsp;    public static final String DEFAULT_METRICS_URI = &quot;/metrics&quot;;
    -&nbsp;    public static final String DEFAULT_PING_URI = &quot;/ping&quot;;
    -&nbsp;    public static final String DEFAULT_THREADS_URI = &quot;/threads&quot;;
    -&nbsp;    public static final String DEFAULT_CPU_PROFILE_URI = &quot;/pprof&quot;;
    -&nbsp;
    -&nbsp;    public static final String METRICS_ENABLED_PARAM_KEY = &quot;metrics-enabled&quot;;
    -&nbsp;    public static final String METRICS_URI_PARAM_KEY = &quot;metrics-uri&quot;;
    -&nbsp;    public static final String PING_ENABLED_PARAM_KEY = &quot;ping-enabled&quot;;
    -&nbsp;    public static final String PING_URI_PARAM_KEY = &quot;ping-uri&quot;;
    -&nbsp;    public static final String THREADS_ENABLED_PARAM_KEY = &quot;threads-enabled&quot;;
    -&nbsp;    public static final String THREADS_URI_PARAM_KEY = &quot;threads-uri&quot;;
    -&nbsp;    public static final String HEALTHCHECK_ENABLED_PARAM_KEY = &quot;healthcheck-enabled&quot;;
    -&nbsp;    public static final String HEALTHCHECK_URI_PARAM_KEY = &quot;healthcheck-uri&quot;;
    -&nbsp;    public static final String SERVICE_NAME_PARAM_KEY = &quot;service-name&quot;;
    -&nbsp;    public static final String CPU_PROFILE_ENABLED_PARAM_KEY = &quot;cpu-profile-enabled&quot;;
    -&nbsp;    public static final String CPU_PROFILE_URI_PARAM_KEY = &quot;cpu-profile-uri&quot;;
    -&nbsp;
    -&nbsp;    private static final String BASE_TEMPLATE =
    -&nbsp;            &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//W3C//DTD HTML 4.01 Transitional//EN\&quot;%n&quot; +
    -&nbsp;                    &quot;        \&quot;http://www.w3.org/TR/html4/loose.dtd\&quot;&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;html&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;head&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;title&gt;Metrics{10}&lt;/title&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/head&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;body&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;h1&gt;Operational Menu{10}&lt;/h1&gt;%n&quot; +
    -&nbsp;                    &quot;  &lt;ul&gt;%n&quot; +
    -&nbsp;                    &quot;%s&quot; +
    -&nbsp;                    &quot;  &lt;/ul&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/body&gt;%n&quot; +
    -&nbsp;                    &quot;&lt;/html&gt;&quot;;
    -&nbsp;    private static final String METRICS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{0}{1}?pretty=true\&quot;&gt;Metrics&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;    private static final String PING_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{2}{3}\&quot;&gt;Ping&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String THREADS_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{4}{5}\&quot;&gt;Threads&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String HEALTHCHECK_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{6}{7}?pretty=true\&quot;&gt;Healthcheck&lt;/a&gt;&lt;/li&gt;%n&quot; ;
    -&nbsp;    private static final String CPU_PROFILE_LINK = &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}\&quot;&gt;CPU Profile&lt;/a&gt;&lt;/li&gt;%n&quot; +
    -&nbsp;            &quot;    &lt;li&gt;&lt;a href=\&quot;{8}{9}?state=blocked\&quot;&gt;CPU Contention&lt;/a&gt;&lt;/li&gt;%n&quot;;
    -&nbsp;
    -&nbsp;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/html&quot;;
    -&nbsp;    private static final long serialVersionUID = -2850794040708785318L;
    -&nbsp;
    -&nbsp;    private transient HealthCheckServlet healthCheckServlet;
    -&nbsp;    private transient MetricsServlet metricsServlet;
    -&nbsp;    private transient PingServlet pingServlet;
    -&nbsp;    private transient ThreadDumpServlet threadDumpServlet;
    -&nbsp;    private transient CpuProfileServlet cpuProfileServlet;
    -&nbsp;    private transient boolean metricsEnabled;
    -&nbsp;    private transient String metricsUri;
    -&nbsp;    private transient boolean pingEnabled;
    -&nbsp;    private transient String pingUri;
    -&nbsp;    private transient boolean threadsEnabled;
    -&nbsp;    private transient String threadsUri;
    -&nbsp;    private transient boolean healthcheckEnabled;
    -&nbsp;    private transient String healthcheckUri;
    -&nbsp;    private transient boolean cpuProfileEnabled;
    -&nbsp;    private transient String cpuProfileUri;
    -&nbsp;    private transient String serviceName;
    -&nbsp;    private transient String pageContentTemplate;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        final StringBuilder servletLinks = new StringBuilder();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.metricsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(METRICS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.metricsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(METRICS_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.metricsServlet = new MetricsServlet();</b>
    -<b class="fc">&nbsp;        metricsServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.pingEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(PING_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.pingEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(PING_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.pingServlet = new PingServlet();</b>
    -<b class="fc">&nbsp;        pingServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.threadsEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(THREADS_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.threadsEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(THREADS_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.threadDumpServlet = new ThreadDumpServlet();</b>
    -<b class="fc">&nbsp;        threadDumpServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.healthcheckEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(HEALTHCHECK_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.healthcheckEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(HEALTHCHECK_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.healthCheckServlet = new HealthCheckServlet();</b>
    -<b class="fc">&nbsp;        healthCheckServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.cpuProfileEnabled =</b>
    -<b class="fc">&nbsp;                Boolean.parseBoolean(getParam(context.getInitParameter(CPU_PROFILE_ENABLED_PARAM_KEY), &quot;true&quot;));</b>
    -<b class="fc">&nbsp;        if (this.cpuProfileEnabled) {</b>
    -<b class="fc">&nbsp;            servletLinks.append(CPU_PROFILE_LINK);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.cpuProfileServlet = new CpuProfileServlet();</b>
    -<b class="fc">&nbsp;        cpuProfileServlet.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        pageContentTemplate = String.format(BASE_TEMPLATE, String.format(servletLinks.toString()));</b>
    -&nbsp;
    -<b class="fc">&nbsp;        this.metricsUri = getParam(context.getInitParameter(METRICS_URI_PARAM_KEY), DEFAULT_METRICS_URI);</b>
    -<b class="fc">&nbsp;        this.pingUri = getParam(context.getInitParameter(PING_URI_PARAM_KEY), DEFAULT_PING_URI);</b>
    -<b class="fc">&nbsp;        this.threadsUri = getParam(context.getInitParameter(THREADS_URI_PARAM_KEY), DEFAULT_THREADS_URI);</b>
    -<b class="fc">&nbsp;        this.healthcheckUri = getParam(context.getInitParameter(HEALTHCHECK_URI_PARAM_KEY), DEFAULT_HEALTHCHECK_URI);</b>
    -<b class="fc">&nbsp;        this.cpuProfileUri = getParam(context.getInitParameter(CPU_PROFILE_URI_PARAM_KEY), DEFAULT_CPU_PROFILE_URI);</b>
    -<b class="fc">&nbsp;        this.serviceName = getParam(context.getInitParameter(SERVICE_NAME_PARAM_KEY), null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String path = req.getContextPath() + req.getServletPath();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(MessageFormat.format(pageContentTemplate, path, metricsUri, path, pingUri, path,</b>
    -&nbsp;                    threadsUri, path, healthcheckUri, path, cpuProfileUri,
    -<b class="fc">&nbsp;                    serviceName == null ? &quot;&quot; : &quot; (&quot; + serviceName + &quot;)&quot;));</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final String uri = req.getPathInfo();</b>
    -<b class="fc">&nbsp;        if (uri == null || uri.equals(&quot;/&quot;)) {</b>
    -<b class="fc">&nbsp;            super.service(req, resp);</b>
    -<b class="nc">&nbsp;        } else if (uri.equals(healthcheckUri)) {</b>
    -<b class="nc">&nbsp;            if (healthcheckEnabled) {</b>
    -<b class="nc">&nbsp;                healthCheckServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.startsWith(metricsUri)) {</b>
    -<b class="nc">&nbsp;            if (metricsEnabled) {</b>
    -<b class="nc">&nbsp;                metricsServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(pingUri)) {</b>
    -<b class="nc">&nbsp;            if (pingEnabled) {</b>
    -<b class="nc">&nbsp;                pingServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(threadsUri)) {</b>
    -<b class="nc">&nbsp;            if (threadsEnabled) {</b>
    -<b class="nc">&nbsp;                threadDumpServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } else if (uri.equals(cpuProfileUri)) {</b>
    -<b class="nc">&nbsp;            if (cpuProfileEnabled) {</b>
    -<b class="nc">&nbsp;                cpuProfileServlet.service(req, resp);</b>
    -&nbsp;            } else {
    -<b class="nc">&nbsp;                resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;            }
    -&nbsp;        } else {
    -<b class="nc">&nbsp;            resp.sendError(HttpServletResponse.SC_NOT_FOUND);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static String getParam(String initParam, String defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : initParam;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-28/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-28/sources/source-2.html
    deleted file mode 100644
    index 4de9b117f0..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-28/sources/source-2.html
    +++ /dev/null
    @@ -1,183 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CpuProfileServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CpuProfileServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CpuProfileServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    65.6%
    -  </span>
    -  <span class="absValue">
    -    (21/32)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.papertrail.profiler.CpuProfile;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.time.Duration;
    -&nbsp;import java.util.concurrent.locks.Lock;
    -&nbsp;import java.util.concurrent.locks.ReentrantLock;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a &lt;a href=&quot;https://github.com/gperftools/gperftools&quot;&gt;pprof&lt;/a&gt; parseable response.
    -&nbsp; */
    -<b class="fc">&nbsp;public class CpuProfileServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = -668666696530287501L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;pprof/raw&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -<b class="fc">&nbsp;    private final Lock lock = new ReentrantLock();</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -&nbsp;
    -<b class="fc">&nbsp;        int duration = 10;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;duration&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                duration = Integer.parseInt(req.getParameter(&quot;duration&quot;));</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                duration = 10;</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        int frequency = 100;</b>
    -<b class="fc">&nbsp;        if (req.getParameter(&quot;frequency&quot;) != null) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                frequency = Integer.parseInt(req.getParameter(&quot;frequency&quot;));</b>
    -<b class="nc">&nbsp;                frequency = Math.min(Math.max(frequency, 1), 1000);</b>
    -<b class="nc">&nbsp;            } catch (NumberFormatException e) {</b>
    -<b class="nc">&nbsp;                frequency = 100;</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        final Thread.State state;
    -<b class="fc">&nbsp;        if (&quot;blocked&quot;.equalsIgnoreCase(req.getParameter(&quot;state&quot;))) {</b>
    -<b class="nc">&nbsp;            state = Thread.State.BLOCKED;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            state = Thread.State.RUNNABLE;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            doProfile(output, duration, frequency, state);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void doProfile(OutputStream out, int duration, int frequency, Thread.State state) throws IOException {
    -<b class="fc">&nbsp;        if (lock.tryLock()) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                CpuProfile profile = CpuProfile.record(Duration.ofSeconds(duration),</b>
    -&nbsp;                        frequency, state);
    -<b class="fc">&nbsp;                if (profile == null) {</b>
    -<b class="nc">&nbsp;                    throw new RuntimeException(&quot;could not create CpuProfile&quot;);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                profile.writeGoogleProfile(out);</b>
    -&nbsp;                return;
    -&nbsp;            } finally {
    -<b class="fc">&nbsp;                lock.unlock();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -<b class="nc">&nbsp;        throw new RuntimeException(&quot;Only one profile request may be active at a time&quot;);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-28/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-28/sources/source-3.html
    deleted file mode 100644
    index fd79991cae..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-28/sources/source-3.html
    +++ /dev/null
    @@ -1,325 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.1%
    -  </span>
    -  <span class="absValue">
    -    (58/61)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (10/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (58/70)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.codahale.metrics.health.HealthCheckFilter;
    -&nbsp;import com.codahale.metrics.health.HealthCheckRegistry;
    -&nbsp;import com.codahale.metrics.json.HealthCheckModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;import jakarta.servlet.ServletConfig;
    -&nbsp;import jakarta.servlet.ServletContext;
    -&nbsp;import jakarta.servlet.ServletContextEvent;
    -&nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;
    -&nbsp;public class HealthCheckServlet extends HttpServlet {
    -<b class="nc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract HealthCheckRegistry getHealthCheckRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ExecutorService} to inject into the servlet context, or {@code null}
    -&nbsp;         * if the health checks should be run in the servlet worker thread.
    -&nbsp;         */
    -&nbsp;        protected ExecutorService getExecutorService() {
    -&nbsp;            // don&#39;t use a thread pool by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link HealthCheckFilter} that shall be used to filter health checks,
    -&nbsp;         * or {@link HealthCheckFilter#ALL} if the default should be used.
    -&nbsp;         */
    -&nbsp;        protected HealthCheckFilter getHealthCheckFilter() {
    -<b class="nc">&nbsp;            return HealthCheckFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link ObjectMapper} that shall be used to render health checks,
    -&nbsp;         * or {@code null} if the default object mapper should be used.
    -&nbsp;         */
    -&nbsp;        protected ObjectMapper getObjectMapper() {
    -&nbsp;            // don&#39;t use an object mapper by default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="nc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_REGISTRY, getHealthCheckRegistry());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_EXECUTOR, getExecutorService());</b>
    -<b class="nc">&nbsp;            context.setAttribute(HEALTH_CHECK_MAPPER, getObjectMapper());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_REGISTRY = HealthCheckServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_EXECUTOR = HealthCheckServlet.class.getCanonicalName() + &quot;.executor&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_FILTER = HealthCheckServlet.class.getCanonicalName() + &quot;.healthCheckFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_MAPPER = HealthCheckServlet.class.getCanonicalName() + &quot;.mapper&quot;;</b>
    -<b class="fc">&nbsp;    public static final String HEALTH_CHECK_HTTP_STATUS_INDICATOR = HealthCheckServlet.class.getCanonicalName() + &quot;.httpStatusIndicator&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -8432996484889177321L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;    private static final String HTTP_STATUS_INDICATOR_PARAM = &quot;httpStatusIndicator&quot;;
    -&nbsp;
    -&nbsp;    private transient HealthCheckRegistry registry;
    -&nbsp;    private transient ExecutorService executorService;
    -&nbsp;    private transient HealthCheckFilter filter;
    -&nbsp;    private transient ObjectMapper mapper;
    -&nbsp;    private transient boolean httpStatusIndicator;
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public HealthCheckServlet(HealthCheckRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(HEALTH_CHECK_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof HealthCheckRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (HealthCheckRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a HealthCheckRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object executorAttr = context.getAttribute(HEALTH_CHECK_EXECUTOR);</b>
    -<b class="fc">&nbsp;        if (executorAttr instanceof ExecutorService) {</b>
    -<b class="fc">&nbsp;            this.executorService = (ExecutorService) executorAttr;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object filterAttr = context.getAttribute(HEALTH_CHECK_FILTER);</b>
    -<b class="fc">&nbsp;        if (filterAttr instanceof HealthCheckFilter) {</b>
    -<b class="fc">&nbsp;            filter = (HealthCheckFilter) filterAttr;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = HealthCheckFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        final Object mapperAttr = context.getAttribute(HEALTH_CHECK_MAPPER);</b>
    -<b class="fc">&nbsp;        if (mapperAttr instanceof ObjectMapper) {</b>
    -<b class="nc">&nbsp;            this.mapper = (ObjectMapper) mapperAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.mapper = new ObjectMapper();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.mapper.registerModule(new HealthCheckModule());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final Object httpStatusIndicatorAttr = context.getAttribute(HEALTH_CHECK_HTTP_STATUS_INDICATOR);</b>
    -<b class="fc">&nbsp;        if (httpStatusIndicatorAttr instanceof Boolean) {</b>
    -<b class="nc">&nbsp;            this.httpStatusIndicator = (Boolean) httpStatusIndicatorAttr;</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            this.httpStatusIndicator = true;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void destroy() {
    -<b class="fc">&nbsp;        super.destroy();</b>
    -<b class="fc">&nbsp;        registry.shutdown();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = runHealthChecks();</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (results.isEmpty()) {</b>
    -<b class="fc">&nbsp;            resp.setStatus(HttpServletResponse.SC_NOT_IMPLEMENTED);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            final String reqParameter = req.getParameter(HTTP_STATUS_INDICATOR_PARAM);</b>
    -<b class="fc">&nbsp;            final boolean httpStatusIndicatorParam = Boolean.parseBoolean(reqParameter);</b>
    -<b class="fc">&nbsp;            final boolean useHttpStatusForHealthCheck = reqParameter == null ? httpStatusIndicator : httpStatusIndicatorParam;</b>
    -<b class="fc">&nbsp;            if (!useHttpStatusForHealthCheck || isAllHealthy(results)) {</b>
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            getWriter(req).writeValue(output, results);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    -<b class="fc">&nbsp;        if (executorService == null) {</b>
    -<b class="nc">&nbsp;            return registry.runHealthChecks(filter);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return registry.runHealthChecks(executorService, filter);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static boolean isAllHealthy(Map&lt;String, HealthCheck.Result&gt; results) {
    -<b class="fc">&nbsp;        for (HealthCheck.Result result : results.values()) {</b>
    -<b class="fc">&nbsp;            if (!result.isHealthy()) {</b>
    -<b class="fc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return true;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    // visible for testing
    -&nbsp;    ObjectMapper getMapper() {
    -<b class="fc">&nbsp;        return mapper;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-28/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-28/sources/source-4.html
    deleted file mode 100644
    index 1852e4036e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-28/sources/source-4.html
    +++ /dev/null
    @@ -1,328 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (44/44)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetricsServlet$ContextListener</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    62.5%
    -  </span>
    -  <span class="absValue">
    -    (5/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (14/18)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.5%
    -  </span>
    -  <span class="absValue">
    -    (58/62)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.json.MetricsModule;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectMapper;
    -&nbsp;import com.fasterxml.jackson.databind.ObjectWriter;
    -&nbsp;import com.fasterxml.jackson.databind.util.JSONPObject;
    -&nbsp;import jakarta.servlet.ServletConfig;
    -&nbsp;import jakarta.servlet.ServletContext;
    -&nbsp;import jakarta.servlet.ServletContextEvent;
    -&nbsp;import jakarta.servlet.ServletContextListener;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A servlet which returns the metrics in a given registry as an {@code application/json} response.
    -&nbsp; */
    -&nbsp;public class MetricsServlet extends HttpServlet {
    -&nbsp;    /**
    -&nbsp;     * An abstract {@link ServletContextListener} which allows you to programmatically inject the
    -&nbsp;     * {@link MetricRegistry}, rate and duration units, and allowed origin for
    -&nbsp;     * {@link MetricsServlet}.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static abstract class ContextListener implements ServletContextListener {</b>
    -&nbsp;        /**
    -&nbsp;         * @return the {@link MetricRegistry} to inject into the servlet context.
    -&nbsp;         */
    -&nbsp;        protected abstract MetricRegistry getMetricRegistry();
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which rates should be converted, or {@code null} if the
    -&nbsp;         * default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getRateUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@link TimeUnit} to which durations should be converted, or {@code null} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected TimeUnit getDurationUnit() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * @return the {@code Access-Control-Allow-Origin} header value, if any.
    -&nbsp;         */
    -&nbsp;        protected String getAllowedOrigin() {
    -&nbsp;            // use the default
    -<b class="nc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the name of the parameter used to specify the jsonp callback, if any.
    -&nbsp;         */
    -&nbsp;        protected String getJsonpCallbackParameter() {
    -<b class="fc">&nbsp;            return null;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the {@link MetricFilter} that shall be used to filter metrics, or {@link MetricFilter#ALL} if
    -&nbsp;         * the default should be used.
    -&nbsp;         */
    -&nbsp;        protected MetricFilter getMetricFilter() {
    -&nbsp;            // use the default
    -<b class="fc">&nbsp;            return MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextInitialized(ServletContextEvent event) {
    -<b class="fc">&nbsp;            final ServletContext context = event.getServletContext();</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRICS_REGISTRY, getMetricRegistry());</b>
    -<b class="fc">&nbsp;            context.setAttribute(METRIC_FILTER, getMetricFilter());</b>
    -<b class="fc">&nbsp;            if (getDurationUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.DURATION_UNIT, getDurationUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getRateUnit() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.RATE_UNIT, getRateUnit().toString());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getAllowedOrigin() != null) {</b>
    -<b class="fc">&nbsp;                context.setInitParameter(MetricsServlet.ALLOWED_ORIGIN, getAllowedOrigin());</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (getJsonpCallbackParameter() != null) {</b>
    -<b class="nc">&nbsp;                context.setAttribute(CALLBACK_PARAM, getJsonpCallbackParameter());</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void contextDestroyed(ServletContextEvent event) {
    -&nbsp;            // no-op
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static final String RATE_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.rateUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String DURATION_UNIT = MetricsServlet.class.getCanonicalName() + &quot;.durationUnit&quot;;</b>
    -<b class="fc">&nbsp;    public static final String SHOW_SAMPLES = MetricsServlet.class.getCanonicalName() + &quot;.showSamples&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRICS_REGISTRY = MetricsServlet.class.getCanonicalName() + &quot;.registry&quot;;</b>
    -<b class="fc">&nbsp;    public static final String ALLOWED_ORIGIN = MetricsServlet.class.getCanonicalName() + &quot;.allowedOrigin&quot;;</b>
    -<b class="fc">&nbsp;    public static final String METRIC_FILTER = MetricsServlet.class.getCanonicalName() + &quot;.metricFilter&quot;;</b>
    -<b class="fc">&nbsp;    public static final String CALLBACK_PARAM = MetricsServlet.class.getCanonicalName() + &quot;.jsonpCallback&quot;;</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = 1049773947734939602L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;application/json&quot;;
    -&nbsp;
    -&nbsp;    protected String allowedOrigin;
    -&nbsp;    protected String jsonpParamName;
    -&nbsp;    protected transient MetricRegistry registry;
    -&nbsp;    protected transient ObjectMapper mapper;
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet() {</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public MetricsServlet(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init(ServletConfig config) throws ServletException {
    -<b class="fc">&nbsp;        super.init(config);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final ServletContext context = config.getServletContext();</b>
    -<b class="fc">&nbsp;        if (null == registry) {</b>
    -<b class="fc">&nbsp;            final Object registryAttr = context.getAttribute(METRICS_REGISTRY);</b>
    -<b class="fc">&nbsp;            if (registryAttr instanceof MetricRegistry) {</b>
    -<b class="fc">&nbsp;                this.registry = (MetricRegistry) registryAttr;</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                throw new ServletException(&quot;Couldn&#39;t find a MetricRegistry instance.&quot;);</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        this.allowedOrigin = context.getInitParameter(ALLOWED_ORIGIN);</b>
    -<b class="fc">&nbsp;        this.jsonpParamName = context.getInitParameter(CALLBACK_PARAM);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        setupMetricsModule(context);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected void setupMetricsModule(ServletContext context) {
    -<b class="fc">&nbsp;        final TimeUnit rateUnit = parseTimeUnit(context.getInitParameter(RATE_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final TimeUnit durationUnit = parseTimeUnit(context.getInitParameter(DURATION_UNIT),</b>
    -&nbsp;                TimeUnit.SECONDS);
    -<b class="fc">&nbsp;        final boolean showSamples = Boolean.parseBoolean(context.getInitParameter(SHOW_SAMPLES));</b>
    -<b class="fc">&nbsp;        MetricFilter filter = (MetricFilter) context.getAttribute(METRIC_FILTER);</b>
    -<b class="fc">&nbsp;        if (filter == null) {</b>
    -<b class="fc">&nbsp;            filter = MetricFilter.ALL;</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.mapper = new ObjectMapper().registerModule(new MetricsModule(rateUnit,</b>
    -&nbsp;                durationUnit,
    -&nbsp;                showSamples,
    -&nbsp;                filter));
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        if (allowedOrigin != null) {</b>
    -<b class="fc">&nbsp;            resp.setHeader(&quot;Access-Control-Allow-Origin&quot;, allowedOrigin);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            if (jsonpParamName != null &amp;&amp; req.getParameter(jsonpParamName) != null) {</b>
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, new JSONPObject(req.getParameter(jsonpParamName), registry));</b>
    -&nbsp;            } else {
    -<b class="fc">&nbsp;                getWriter(req).writeValue(output, registry);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected ObjectWriter getWriter(HttpServletRequest request) {
    -<b class="fc">&nbsp;        final boolean prettyPrint = Boolean.parseBoolean(request.getParameter(&quot;pretty&quot;));</b>
    -<b class="fc">&nbsp;        if (prettyPrint) {</b>
    -<b class="fc">&nbsp;            return mapper.writerWithDefaultPrettyPrinter();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return mapper.writer();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected TimeUnit parseTimeUnit(String value, TimeUnit defaultValue) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return TimeUnit.valueOf(String.valueOf(value).toUpperCase(Locale.US));</b>
    -<b class="fc">&nbsp;        } catch (IllegalArgumentException e) {</b>
    -<b class="fc">&nbsp;            return defaultValue;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-28/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-28/sources/source-5.html
    deleted file mode 100644
    index cc28cfae49..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-28/sources/source-5.html
    +++ /dev/null
    @@ -1,135 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PingServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PingServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PingServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.PrintWriter;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} {@code &quot;pong&quot;} response.
    -&nbsp; */
    -<b class="fc">&nbsp;public class PingServlet extends HttpServlet {</b>
    -&nbsp;    private static final long serialVersionUID = 3772654177231086757L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;    private static final String CONTENT = &quot;pong&quot;;
    -&nbsp;    private static final String CACHE_CONTROL = &quot;Cache-Control&quot;;
    -&nbsp;    private static final String NO_CACHE = &quot;must-revalidate,no-cache,no-store&quot;;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setHeader(CACHE_CONTROL, NO_CACHE);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        try (PrintWriter writer = resp.getWriter()) {</b>
    -<b class="fc">&nbsp;            writer.println(CONTENT);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-28/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-28/sources/source-6.html
    deleted file mode 100644
    index 50af851d18..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-28/sources/source-6.html
    +++ /dev/null
    @@ -1,159 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDumpServlet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">io.dropwizard.metrics.servlets</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDumpServlet (io.dropwizard.metrics.servlets)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDumpServlet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.2%
    -  </span>
    -  <span class="absValue">
    -    (13/16)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package io.dropwizard.metrics.servlets;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.jvm.ThreadDump;
    -&nbsp;import jakarta.servlet.ServletException;
    -&nbsp;import jakarta.servlet.http.HttpServlet;
    -&nbsp;import jakarta.servlet.http.HttpServletRequest;
    -&nbsp;import jakarta.servlet.http.HttpServletResponse;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An HTTP servlets which outputs a {@code text/plain} dump of all threads in
    -&nbsp; * the VM. Only responds to {@code GET} requests.
    -&nbsp; */
    -<b class="fc">&nbsp;public class ThreadDumpServlet extends HttpServlet {</b>
    -&nbsp;
    -&nbsp;    private static final long serialVersionUID = -2690343532336103046L;
    -&nbsp;    private static final String CONTENT_TYPE = &quot;text/plain&quot;;
    -&nbsp;
    -&nbsp;    private transient ThreadDump threadDump;
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void init() throws ServletException {
    -&nbsp;        try {
    -&nbsp;            // Some PaaS like Google App Engine blacklist java.lang.managament
    -<b class="fc">&nbsp;            this.threadDump = new ThreadDump(ManagementFactory.getThreadMXBean());</b>
    -<b class="nc">&nbsp;        } catch (NoClassDefFoundError ncdfe) {</b>
    -<b class="nc">&nbsp;            this.threadDump = null; // we won&#39;t be able to provide thread dump</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected void doGet(HttpServletRequest req,
    -&nbsp;                         HttpServletResponse resp) throws ServletException, IOException {
    -<b class="fc">&nbsp;        final boolean includeMonitors = getParam(req.getParameter(&quot;monitors&quot;), true);</b>
    -<b class="fc">&nbsp;        final boolean includeSynchronizers = getParam(req.getParameter(&quot;synchronizers&quot;), true);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        resp.setStatus(HttpServletResponse.SC_OK);</b>
    -<b class="fc">&nbsp;        resp.setContentType(CONTENT_TYPE);</b>
    -<b class="fc">&nbsp;        resp.setHeader(&quot;Cache-Control&quot;, &quot;must-revalidate,no-cache,no-store&quot;);</b>
    -<b class="fc">&nbsp;        if (threadDump == null) {</b>
    -<b class="nc">&nbsp;            resp.getWriter().println(&quot;Sorry your runtime environment does not allow to dump threads.&quot;);</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        try (OutputStream output = resp.getOutputStream()) {</b>
    -<b class="fc">&nbsp;            threadDump.dump(includeMonitors, includeSynchronizers, output);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static Boolean getParam(String initParam, boolean defaultValue) {
    -<b class="fc">&nbsp;        return initParam == null ? defaultValue : Boolean.parseBoolean(initParam);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index.html b/metrics-complete-report-initial-htmlReport/ns-3/index.html
    deleted file mode 100644
    index 9471f6c113..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-3/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 4d338aa88f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 22ba1d216a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 06e65e2199..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 479a92e46c..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 6fba80a9f0..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index ef27af4a54..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 9d06b8edb4..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index a5b6b39e77..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index ad200ed6a7..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-3/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.benchmarks</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.benchmarks</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.benchmarks</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.benchmarks</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/25)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/98)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SlidingTimeWindowReservoirsBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">ReservoirBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">MeterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">CounterBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CachedGaugeBenchmark</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-3/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-3/sources/source-1.html
    deleted file mode 100644
    index 50243f280d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-3/sources/source-1.html
    +++ /dev/null
    @@ -1,176 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CachedGaugeBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CachedGaugeBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CachedGaugeBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/11)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">CachedGaugeBenchmark$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/17)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.CachedGauge;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.infra.Blackhole;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class CachedGaugeBenchmark {</b>
    -&nbsp;
    -<b class="nc">&nbsp;    private CachedGauge&lt;Integer&gt; cachedGauge = new CachedGauge&lt;Integer&gt;(100, TimeUnit.MILLISECONDS) {</b>
    -&nbsp;        @Override
    -&nbsp;        protected Integer loadValue() {
    -&nbsp;            try {
    -<b class="nc">&nbsp;                Thread.sleep(10);</b>
    -<b class="nc">&nbsp;            } catch (InterruptedException e) {</b>
    -<b class="nc">&nbsp;                throw new RuntimeException(&quot;Thread was interrupted&quot;, e);</b>
    -<b class="nc">&nbsp;            }</b>
    -<b class="nc">&nbsp;            return 12345;</b>
    -&nbsp;        }
    -&nbsp;    };
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public void perfGetValue(Blackhole blackhole) {
    -<b class="nc">&nbsp;        blackhole.consume(cachedGauge.getValue());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;                .include(&quot;.*&quot; + CachedGaugeBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;                .warmupIterations(3)</b>
    -<b class="nc">&nbsp;                .measurementIterations(5)</b>
    -<b class="nc">&nbsp;                .threads(4)</b>
    -<b class="nc">&nbsp;                .forks(1)</b>
    -<b class="nc">&nbsp;                .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-3/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-3/sources/source-2.html
    deleted file mode 100644
    index 7bd634c046..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-3/sources/source-2.html
    +++ /dev/null
    @@ -1,142 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CounterBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CounterBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CounterBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class CounterBenchmark {</b>
    -&nbsp;
    -<b class="nc">&nbsp;    private final Counter counter = new Counter();</b>
    -&nbsp;
    -&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    -<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfIncrement() {
    -<b class="nc">&nbsp;        counter.inc(nextValue); </b>
    -<b class="nc">&nbsp;        return counter;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;                .include(&quot;.*&quot; + CounterBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;                .warmupIterations(3)</b>
    -<b class="nc">&nbsp;                .measurementIterations(5)</b>
    -<b class="nc">&nbsp;                .threads(4)</b>
    -<b class="nc">&nbsp;                .forks(1)</b>
    -<b class="nc">&nbsp;                .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-3/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-3/sources/source-3.html
    deleted file mode 100644
    index 6c15fb51a8..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-3/sources/source-3.html
    +++ /dev/null
    @@ -1,142 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MeterBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MeterBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MeterBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class MeterBenchmark {</b>
    -&nbsp;
    -<b class="nc">&nbsp;    private final Meter meter = new Meter();</b>
    -&nbsp;
    -&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    -<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfMark() {
    -<b class="nc">&nbsp;        meter.mark(nextValue);</b>
    -<b class="nc">&nbsp;        return meter;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;                .include(&quot;.*&quot; + MeterBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;                .warmupIterations(3)</b>
    -<b class="nc">&nbsp;                .measurementIterations(5)</b>
    -<b class="nc">&nbsp;                .threads(4)</b>
    -<b class="nc">&nbsp;                .forks(1)</b>
    -<b class="nc">&nbsp;                .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-3/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-3/sources/source-4.html
    deleted file mode 100644
    index 88fe1f29f8..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-3/sources/source-4.html
    +++ /dev/null
    @@ -1,192 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ReservoirBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ReservoirBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ReservoirBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/32)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.ExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.LockFreeExponentiallyDecayingReservoir;
    -&nbsp;import com.codahale.metrics.Reservoir;
    -&nbsp;import com.codahale.metrics.SlidingTimeWindowArrayReservoir;
    -&nbsp;import com.codahale.metrics.SlidingTimeWindowReservoir;
    -&nbsp;import com.codahale.metrics.SlidingWindowReservoir;
    -&nbsp;import com.codahale.metrics.UniformReservoir;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.profile.GCProfiler;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;import org.openjdk.jmh.runner.options.TimeValue;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class ReservoirBenchmark {</b>
    -&nbsp;
    -<b class="nc">&nbsp;    private final UniformReservoir uniform = new UniformReservoir();</b>
    -<b class="nc">&nbsp;    private final ExponentiallyDecayingReservoir exponential = new ExponentiallyDecayingReservoir();</b>
    -<b class="nc">&nbsp;    private final Reservoir lockFreeExponential = LockFreeExponentiallyDecayingReservoir.builder().build();</b>
    -<b class="nc">&nbsp;    private final SlidingWindowReservoir sliding = new SlidingWindowReservoir(1000);</b>
    -<b class="nc">&nbsp;    private final SlidingTimeWindowReservoir slidingTime = new SlidingTimeWindowReservoir(200, TimeUnit.MILLISECONDS);</b>
    -<b class="nc">&nbsp;    private final SlidingTimeWindowArrayReservoir arrTime = new SlidingTimeWindowArrayReservoir(200, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    -<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfUniformReservoir() {
    -<b class="nc">&nbsp;        uniform.update(nextValue);</b>
    -<b class="nc">&nbsp;        return uniform;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfSlidingTimeWindowArrayReservoir() {
    -<b class="nc">&nbsp;        arrTime.update(nextValue);</b>
    -<b class="nc">&nbsp;        return arrTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfExponentiallyDecayingReservoir() {
    -<b class="nc">&nbsp;        exponential.update(nextValue);</b>
    -<b class="nc">&nbsp;        return exponential;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfSlidingWindowReservoir() {
    -<b class="nc">&nbsp;        sliding.update(nextValue);</b>
    -<b class="nc">&nbsp;        return sliding;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfSlidingTimeWindowReservoir() {
    -<b class="nc">&nbsp;        slidingTime.update(nextValue);</b>
    -<b class="nc">&nbsp;        return slidingTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    public Object perfLockFreeExponentiallyDecayingReservoir() {
    -<b class="nc">&nbsp;        lockFreeExponential.update(nextValue);</b>
    -<b class="nc">&nbsp;        return lockFreeExponential;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;            .include(&quot;.*&quot; + ReservoirBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;            .warmupIterations(10)</b>
    -<b class="nc">&nbsp;            .measurementIterations(10)</b>
    -<b class="nc">&nbsp;            .addProfiler(GCProfiler.class)</b>
    -<b class="nc">&nbsp;            .measurementTime(TimeValue.seconds(3))</b>
    -<b class="nc">&nbsp;            .timeUnit(TimeUnit.MICROSECONDS)</b>
    -<b class="nc">&nbsp;            .mode(Mode.AverageTime)</b>
    -<b class="nc">&nbsp;            .threads(4)</b>
    -<b class="nc">&nbsp;            .forks(1)</b>
    -<b class="nc">&nbsp;            .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-3/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-3/sources/source-5.html
    deleted file mode 100644
    index 61d530a3dd..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-3/sources/source-5.html
    +++ /dev/null
    @@ -1,184 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SlidingTimeWindowReservoirsBenchmark</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.benchmarks</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SlidingTimeWindowReservoirsBenchmark (com.codahale.metrics.benchmarks)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SlidingTimeWindowReservoirsBenchmark</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/23)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.benchmarks;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.SlidingTimeWindowArrayReservoir;
    -&nbsp;import com.codahale.metrics.SlidingTimeWindowReservoir;
    -&nbsp;import com.codahale.metrics.Snapshot;
    -&nbsp;
    -&nbsp;import org.openjdk.jmh.annotations.Benchmark;
    -&nbsp;import org.openjdk.jmh.annotations.Group;
    -&nbsp;import org.openjdk.jmh.annotations.GroupThreads;
    -&nbsp;import org.openjdk.jmh.annotations.Mode;
    -&nbsp;import org.openjdk.jmh.annotations.Scope;
    -&nbsp;import org.openjdk.jmh.annotations.State;
    -&nbsp;import org.openjdk.jmh.profile.GCProfiler;
    -&nbsp;import org.openjdk.jmh.runner.Runner;
    -&nbsp;import org.openjdk.jmh.runner.RunnerException;
    -&nbsp;import org.openjdk.jmh.runner.options.Options;
    -&nbsp;import org.openjdk.jmh.runner.options.OptionsBuilder;
    -&nbsp;import org.openjdk.jmh.runner.options.TimeValue;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * @author bstorozhuk
    -&nbsp; */
    -&nbsp;@State(Scope.Benchmark)
    -<b class="nc">&nbsp;public class SlidingTimeWindowReservoirsBenchmark {</b>
    -<b class="nc">&nbsp;    private final SlidingTimeWindowReservoir slidingTime = new SlidingTimeWindowReservoir(200, TimeUnit.MILLISECONDS);</b>
    -<b class="nc">&nbsp;    private final SlidingTimeWindowArrayReservoir arrTime = new SlidingTimeWindowArrayReservoir(200, TimeUnit.MILLISECONDS);</b>
    -&nbsp;
    -&nbsp;    // It&#39;s intentionally not declared as final to avoid constant folding
    -<b class="nc">&nbsp;    private long nextValue = 0xFBFBABBA;</b>
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    @Group(&quot;slidingTime&quot;)
    -&nbsp;    @GroupThreads(3)
    -&nbsp;    public Object slidingTimeAddMeasurement() {
    -<b class="nc">&nbsp;        slidingTime.update(nextValue);</b>
    -<b class="nc">&nbsp;        return slidingTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    @Group(&quot;slidingTime&quot;)
    -&nbsp;    @GroupThreads(1)
    -&nbsp;    public Object slidingTimeRead() {
    -<b class="nc">&nbsp;        Snapshot snapshot = slidingTime.getSnapshot();</b>
    -<b class="nc">&nbsp;        return snapshot;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    @Group(&quot;arrTime&quot;)
    -&nbsp;    @GroupThreads(3)
    -&nbsp;    public Object arrTimeAddMeasurement() {
    -<b class="nc">&nbsp;        arrTime.update(nextValue);</b>
    -<b class="nc">&nbsp;        return slidingTime;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Benchmark
    -&nbsp;    @Group(&quot;arrTime&quot;)
    -&nbsp;    @GroupThreads(1)
    -&nbsp;    public Object arrTimeRead() {
    -<b class="nc">&nbsp;        Snapshot snapshot = arrTime.getSnapshot();</b>
    -<b class="nc">&nbsp;        return snapshot;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void main(String[] args) throws RunnerException {
    -<b class="nc">&nbsp;        Options opt = new OptionsBuilder()</b>
    -<b class="nc">&nbsp;            .include(&quot;.*&quot; + SlidingTimeWindowReservoirsBenchmark.class.getSimpleName() + &quot;.*&quot;)</b>
    -<b class="nc">&nbsp;            .warmupIterations(10)</b>
    -<b class="nc">&nbsp;            .measurementIterations(10)</b>
    -<b class="nc">&nbsp;            .addProfiler(GCProfiler.class)</b>
    -<b class="nc">&nbsp;            .measurementTime(TimeValue.seconds(3))</b>
    -<b class="nc">&nbsp;            .timeUnit(TimeUnit.MICROSECONDS)</b>
    -<b class="nc">&nbsp;            .mode(Mode.AverageTime)</b>
    -<b class="nc">&nbsp;            .forks(1)</b>
    -<b class="nc">&nbsp;            .build();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        new Runner(opt).run();</b>
    -&nbsp;    }
    -&nbsp;}
    -&nbsp;
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index.html b/metrics-complete-report-initial-htmlReport/ns-4/index.html
    deleted file mode 100644
    index b44c03d27a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-4/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 3a028cacf6..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 2bfbb9561f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index dfbc48497a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index ff4ee71ff3..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 3f31c008e7..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 3a59704ec9..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 767e81fc23..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index ffe58bf5f2..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 9f69e43f78..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-4/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.caffeine</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.caffeine</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.caffeine</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.caffeine</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">MetricsStatsCounter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-4/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-4/sources/source-1.html
    deleted file mode 100644
    index c86e2cdc0a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-4/sources/source-1.html
    +++ /dev/null
    @@ -1,238 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetricsStatsCounter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.caffeine</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetricsStatsCounter (com.codahale.metrics.caffeine)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetricsStatsCounter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97%
    -  </span>
    -  <span class="absValue">
    -    (32/33)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;/*
    -&nbsp; * Copyright 2016 Ben Manes. All Rights Reserved.
    -&nbsp; *
    -&nbsp; * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
    -&nbsp; * you may not use this file except in compliance with the License.
    -&nbsp; * You may obtain a copy of the License at
    -&nbsp; *
    -&nbsp; *     http://www.apache.org/licenses/LICENSE-2.0
    -&nbsp; *
    -&nbsp; * Unless required by applicable law or agreed to in writing, software
    -&nbsp; * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
    -&nbsp; * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -&nbsp; * See the License for the specific language governing permissions and
    -&nbsp; * limitations under the License.
    -&nbsp; */
    -&nbsp;package com.codahale.metrics.caffeine;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;import java.util.EnumMap;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.LongAdder;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.github.benmanes.caffeine.cache.RemovalCause;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.CacheStats;
    -&nbsp;import com.github.benmanes.caffeine.cache.stats.StatsCounter;
    -&nbsp;import org.checkerframework.checker.index.qual.NonNegative;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link StatsCounter} instrumented with Dropwizard Metrics.
    -&nbsp; *
    -&nbsp; * @author ben.manes@gmail.com (Ben Manes)
    -&nbsp; * @author John Karp
    -&nbsp; */
    -&nbsp;public final class MetricsStatsCounter implements StatsCounter {
    -&nbsp;  private final Counter hitCount;
    -&nbsp;  private final Counter missCount;
    -&nbsp;  private final Timer loadSuccess;
    -&nbsp;  private final Timer loadFailure;
    -&nbsp;  private final Histogram evictions;
    -&nbsp;  private final Counter evictionWeight;
    -&nbsp;  private final EnumMap&lt;RemovalCause, Histogram&gt; evictionsWithCause;
    -&nbsp;
    -&nbsp;  // for implementing snapshot()
    -<b class="fc">&nbsp;  private final LongAdder totalLoadTime = new LongAdder();</b>
    -&nbsp;
    -&nbsp;  /**
    -&nbsp;   * Constructs an instance for use by a single cache.
    -&nbsp;   *
    -&nbsp;   * @param registry the registry of metric instances
    -&nbsp;   * @param metricsPrefix the prefix name for the metrics
    -&nbsp;   */
    -<b class="fc">&nbsp;  public MetricsStatsCounter(MetricRegistry registry, String metricsPrefix) {</b>
    -<b class="fc">&nbsp;    requireNonNull(metricsPrefix);</b>
    -<b class="fc">&nbsp;    hitCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;hits&quot;));</b>
    -<b class="fc">&nbsp;    missCount = registry.counter(MetricRegistry.name(metricsPrefix, &quot;misses&quot;));</b>
    -<b class="fc">&nbsp;    loadSuccess = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-success&quot;));</b>
    -<b class="fc">&nbsp;    loadFailure = registry.timer(MetricRegistry.name(metricsPrefix, &quot;loads-failure&quot;));</b>
    -<b class="fc">&nbsp;    evictions = registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;));</b>
    -<b class="fc">&nbsp;    evictionWeight = registry.counter(MetricRegistry.name(metricsPrefix, &quot;evictions-weight&quot;));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    evictionsWithCause = new EnumMap&lt;&gt;(RemovalCause.class);</b>
    -<b class="fc">&nbsp;    for (RemovalCause cause : RemovalCause.values()) {</b>
    -<b class="fc">&nbsp;      evictionsWithCause.put(</b>
    -&nbsp;          cause,
    -<b class="fc">&nbsp;          registry.histogram(MetricRegistry.name(metricsPrefix, &quot;evictions&quot;, cause.name())));</b>
    -&nbsp;    }
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordHits(int count) {
    -<b class="fc">&nbsp;    hitCount.inc(count);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordMisses(int count) {
    -<b class="fc">&nbsp;    missCount.inc(count);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadSuccess(long loadTime) {
    -<b class="fc">&nbsp;    loadSuccess.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordLoadFailure(long loadTime) {
    -<b class="fc">&nbsp;    loadFailure.update(loadTime, TimeUnit.NANOSECONDS);</b>
    -<b class="fc">&nbsp;    totalLoadTime.add(loadTime);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  // @Override -- Caffeine 2.x
    -&nbsp;  @Deprecated
    -&nbsp;  @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;  public void recordEviction() {
    -&nbsp;    // This method is scheduled for removal in version 3.0 in favor of recordEviction(weight)
    -<b class="fc">&nbsp;    recordEviction(1);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  // @Override -- Caffeine 2.x
    -&nbsp;  @Deprecated
    -&nbsp;  @SuppressWarnings(&quot;deprecation&quot;)
    -&nbsp;  public void recordEviction(int weight) {
    -<b class="fc">&nbsp;    evictions.update(weight);</b>
    -<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public void recordEviction(@NonNegative int weight, RemovalCause cause) {
    -<b class="fc">&nbsp;    evictionsWithCause.get(cause).update(weight);</b>
    -<b class="fc">&nbsp;    evictionWeight.inc(weight);</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public CacheStats snapshot() {
    -<b class="fc">&nbsp;    return CacheStats.of(</b>
    -<b class="fc">&nbsp;        hitCount.getCount(),</b>
    -<b class="fc">&nbsp;        missCount.getCount(),</b>
    -<b class="fc">&nbsp;        loadSuccess.getCount(),</b>
    -<b class="fc">&nbsp;        loadFailure.getCount(),</b>
    -<b class="fc">&nbsp;        totalLoadTime.sum(),</b>
    -<b class="fc">&nbsp;        evictions.getCount(),</b>
    -<b class="fc">&nbsp;        evictionWeight.getCount());</b>
    -&nbsp;  }
    -&nbsp;
    -&nbsp;  @Override
    -&nbsp;  public String toString() {
    -<b class="nc">&nbsp;    return snapshot().toString();</b>
    -&nbsp;  }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index.html b/metrics-complete-report-initial-htmlReport/ns-5/index.html
    deleted file mode 100644
    index 54dbbd609d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-5/index.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index f41b08a521..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 16a0dab7e4..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 66cc1a08f5..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 49496a7f2f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_LINE.html
    deleted file mode 100644
    index c5e94c0c30..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 000bdd2af8..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 3a18bcec7d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index c3878cf593..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index e08a912a17..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-5/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.collectd</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.collectd</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.collectd</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.collectd</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    82.9%
    -  </span>
    -  <span class="absValue">
    -    (68/82)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.4%
    -  </span>
    -  <span class="absValue">
    -    (261/313)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">Sender</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">SecurityLevel</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SecurityConfiguration</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">Sanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">PacketWriter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">MetaData</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">CollectdReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-1.html
    deleted file mode 100644
    index 5531ce85b5..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-1.html
    +++ /dev/null
    @@ -1,470 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > CollectdReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: CollectdReporter (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">CollectdReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.9%
    -  </span>
    -  <span class="absValue">
    -    (16/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.9%
    -  </span>
    -  <span class="absValue">
    -    (79/93)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">CollectdReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">CollectdReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (9/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.1%
    -  </span>
    -  <span class="absValue">
    -    (31/43)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (25/33)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    80.9%
    -  </span>
    -  <span class="absValue">
    -    (110/136)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricAttribute;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.ScheduledReporter;
    -&nbsp;import com.codahale.metrics.Snapshot;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.InetAddress;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which publishes metric values to a Collectd server.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;https://collectd.org&quot;&gt;collectd – The system statistics
    -&nbsp; * collection daemon&lt;/a&gt;
    -&nbsp; */
    -<b class="fc">&nbsp;public class CollectdReporter extends ScheduledReporter {</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a builder for the specified registry.
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * The default settings are:
    -&nbsp;     * &lt;ul&gt;
    -&nbsp;     * &lt;li&gt;hostName: InetAddress.getLocalHost().getHostName()&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;executor: default executor created by {@code ScheduledReporter}&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;shutdownExecutorOnStop: true&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;clock: Clock.defaultClock()&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;rateUnit: TimeUnit.SECONDS&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;durationUnit: TimeUnit.MILLISECONDS&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;filter: MetricFilter.ALL&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;securityLevel: NONE&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;username: &quot;&quot;&lt;/li&gt;
    -&nbsp;     * &lt;li&gt;password: &quot;&quot;&lt;/li&gt;
    -&nbsp;     * &lt;/ul&gt;
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private String hostName;
    -&nbsp;        private ScheduledExecutorService executor;
    -<b class="fc">&nbsp;        private boolean shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;        private Clock clock = Clock.defaultClock();</b>
    -<b class="fc">&nbsp;        private TimeUnit rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;        private TimeUnit durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;        private MetricFilter filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;        private SecurityLevel securityLevel = SecurityLevel.NONE;</b>
    -<b class="fc">&nbsp;        private String username = &quot;&quot;;</b>
    -<b class="fc">&nbsp;        private String password = &quot;&quot;;</b>
    -<b class="fc">&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes = Collections.emptySet();</b>
    -<b class="fc">&nbsp;        private int maxLength = Sanitize.DEFAULT_MAX_LENGTH;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withHostName(String hostName) {
    -<b class="fc">&nbsp;            this.hostName = hostName;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withClock(Clock clock) {
    -<b class="nc">&nbsp;            this.clock = clock;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="nc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="nc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="nc">&nbsp;            this.filter = filter;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withUsername(String username) {
    -<b class="fc">&nbsp;            this.username = username;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withPassword(String password) {
    -<b class="fc">&nbsp;            this.password = password;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withSecurityLevel(SecurityLevel securityLevel) {
    -<b class="fc">&nbsp;            this.securityLevel = securityLevel;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; attributes) {
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = attributes;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder withMaxLength(int maxLength) {
    -<b class="fc">&nbsp;            this.maxLength = maxLength;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public CollectdReporter build(Sender sender) {
    -<b class="fc">&nbsp;            if (securityLevel != SecurityLevel.NONE) {</b>
    -<b class="fc">&nbsp;                if (username.isEmpty()) {</b>
    -<b class="fc">&nbsp;                    throw new IllegalArgumentException(&quot;username is required for securityLevel: &quot; + securityLevel);</b>
    -&nbsp;                }
    -<b class="fc">&nbsp;                if (password.isEmpty()) {</b>
    -<b class="fc">&nbsp;                    throw new IllegalArgumentException(&quot;password is required for securityLevel: &quot; + securityLevel);</b>
    -&nbsp;                }
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new CollectdReporter(registry,</b>
    -&nbsp;                    hostName, sender,
    -&nbsp;                    executor, shutdownExecutorOnStop,
    -&nbsp;                    clock, rateUnit, durationUnit,
    -&nbsp;                    filter, disabledMetricAttributes,
    -&nbsp;                    username, password, securityLevel, new Sanitize(maxLength));
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOG = LoggerFactory.getLogger(CollectdReporter.class);</b>
    -&nbsp;    private static final String REPORTER_NAME = &quot;collectd-reporter&quot;;
    -&nbsp;    private static final String FALLBACK_HOST_NAME = &quot;localhost&quot;;
    -&nbsp;    private static final String COLLECTD_TYPE_GAUGE = &quot;gauge&quot;;
    -&nbsp;
    -&nbsp;    private String hostName;
    -&nbsp;    private final Sender sender;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private long period;
    -&nbsp;    private final PacketWriter writer;
    -&nbsp;    private final Sanitize sanitize;
    -&nbsp;
    -&nbsp;    private CollectdReporter(MetricRegistry registry,
    -&nbsp;                             String hostname, Sender sender,
    -&nbsp;                             ScheduledExecutorService executor, boolean shutdownExecutorOnStop,
    -&nbsp;                             Clock clock, TimeUnit rateUnit, TimeUnit durationUnit,
    -&nbsp;                             MetricFilter filter, Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    -&nbsp;                             String username, String password,
    -&nbsp;                             SecurityLevel securityLevel, Sanitize sanitize) {
    -<b class="fc">&nbsp;        super(registry, REPORTER_NAME, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes);
    -<b class="fc">&nbsp;        this.hostName = (hostname != null) ? hostname : resolveHostName();</b>
    -<b class="fc">&nbsp;        this.sender = sender;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.sanitize = sanitize;</b>
    -<b class="fc">&nbsp;        writer = new PacketWriter(sender, username, password, securityLevel);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String resolveHostName() {
    -&nbsp;        try {
    -<b class="nc">&nbsp;            return InetAddress.getLocalHost().getHostName();</b>
    -<b class="nc">&nbsp;        } catch (Exception e) {</b>
    -<b class="nc">&nbsp;            LOG.error(&quot;Failed to lookup local host name: {}&quot;, e.getMessage(), e);</b>
    -<b class="nc">&nbsp;            return FALLBACK_HOST_NAME;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void start(long period, TimeUnit unit) {
    -<b class="nc">&nbsp;        this.period = period;</b>
    -<b class="nc">&nbsp;        super.start(period, unit);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges, SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;            SortedMap&lt;String, Histogram&gt; histograms, SortedMap&lt;String, Meter&gt; meters, SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        MetaData.Builder metaData = new MetaData.Builder(sanitize, hostName, clock.getTime() / 1000, period)</b>
    -<b class="fc">&nbsp;                .type(COLLECTD_TYPE_GAUGE);</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            connect(sender);</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeGauge(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeCounter(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeHistogram(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeMeter(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;                serializeTimer(metaData.plugin(entry.getKey()), entry.getValue());</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Unable to report to Collectd&quot;, e);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            disconnect(sender);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void connect(Sender sender) throws IOException {
    -<b class="fc">&nbsp;        if (!sender.isConnected()) {</b>
    -<b class="fc">&nbsp;            sender.connect();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void disconnect(Sender sender) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            sender.disconnect();</b>
    -<b class="nc">&nbsp;        } catch (Exception e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Error disconnecting from Collectd&quot;, e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeValue(MetaData.Builder metaData, MetricAttribute attribute, Number value) {
    -<b class="fc">&nbsp;        if (!getDisabledMetricAttributes().contains(attribute)) {</b>
    -<b class="fc">&nbsp;            write(metaData.typeInstance(attribute.getCode()).get(), value);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeRate(MetaData.Builder metaData, MetricAttribute attribute, double rate) {
    -<b class="fc">&nbsp;        writeValue(metaData, attribute, convertRate(rate));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeDuration(MetaData.Builder metaData, MetricAttribute attribute, double duration) {
    -<b class="fc">&nbsp;        writeValue(metaData, attribute, convertDuration(duration));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void write(MetaData metaData, Number value) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            writer.write(metaData, value);</b>
    -<b class="nc">&nbsp;        } catch (RuntimeException e) {</b>
    -<b class="nc">&nbsp;            LOG.warn(&quot;Failed to process metric &#39;&quot; + metaData.getPlugin() + &quot;&#39;: &quot; + e.getMessage());</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            LOG.error(&quot;Failed to send metric to collectd&quot;, e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    private void serializeGauge(MetaData.Builder metaData, Gauge metric) {
    -<b class="fc">&nbsp;        if (metric.getValue() instanceof Number) {</b>
    -<b class="fc">&nbsp;            write(metaData.typeInstance(&quot;value&quot;).get(), (Number) metric.getValue());</b>
    -<b class="fc">&nbsp;        } else if (metric.getValue() instanceof Boolean) {</b>
    -<b class="fc">&nbsp;            write(metaData.typeInstance(&quot;value&quot;).get(), ((Boolean) metric.getValue()) ? 1 : 0);</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            LOG.warn(&quot;Failed to process metric &#39;{}&#39;. Unsupported gauge of type: {} &quot;, metaData.get().getPlugin(),</b>
    -<b class="fc">&nbsp;                    metric.getValue().getClass().getName());</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeMeter(MetaData.Builder metaData, Meter metric) {
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M1_RATE, metric.getOneMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, MEAN_RATE, metric.getMeanRate());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeCounter(MetaData.Builder metaData, Counter metric) {
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeHistogram(MetaData.Builder metaData, Histogram metric) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = metric.getSnapshot();</b>
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, MAX, (double) snapshot.getMax());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, MEAN, snapshot.getMean());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, MIN, (double) snapshot.getMin());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, STDDEV, snapshot.getStdDev());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P50, snapshot.getMedian());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P75, snapshot.get75thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P95, snapshot.get95thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P98, snapshot.get98thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P99, snapshot.get99thPercentile());</b>
    -<b class="fc">&nbsp;        writeValue(metaData, P999, snapshot.get999thPercentile());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void serializeTimer(MetaData.Builder metaData, Timer metric) {
    -<b class="fc">&nbsp;        final Snapshot snapshot = metric.getSnapshot();</b>
    -<b class="fc">&nbsp;        writeValue(metaData, COUNT, (double) metric.getCount());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, MAX, (double) snapshot.getMax());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, MEAN, snapshot.getMean());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, MIN, (double) snapshot.getMin());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, STDDEV, snapshot.getStdDev());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P50, snapshot.getMedian());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P75, snapshot.get75thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P95, snapshot.get95thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P98, snapshot.get98thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P99, snapshot.get99thPercentile());</b>
    -<b class="fc">&nbsp;        writeDuration(metaData, P999, snapshot.get999thPercentile());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M1_RATE, metric.getOneMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M5_RATE, metric.getFiveMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, M15_RATE, metric.getFifteenMinuteRate());</b>
    -<b class="fc">&nbsp;        writeRate(metaData, MEAN_RATE, metric.getMeanRate());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-2.html
    deleted file mode 100644
    index e46e4c6034..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-2.html
    +++ /dev/null
    @@ -1,228 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > MetaData</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: MetaData (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">MetaData</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">MetaData$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.7%
    -  </span>
    -  <span class="absValue">
    -    (13/15)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (28/30)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;class MetaData {
    -&nbsp;
    -&nbsp;    private final String host;
    -&nbsp;    private final String plugin;
    -&nbsp;    private final String pluginInstance;
    -&nbsp;    private final String type;
    -&nbsp;    private final String typeInstance;
    -&nbsp;    private final long timestamp;
    -&nbsp;    private final long period;
    -&nbsp;
    -&nbsp;    MetaData(String host, String plugin, String pluginInstance, String type, String typeInstance,
    -<b class="fc">&nbsp;             long timestamp, long period) {</b>
    -<b class="fc">&nbsp;        this.host = host;</b>
    -<b class="fc">&nbsp;        this.plugin = plugin;</b>
    -<b class="fc">&nbsp;        this.pluginInstance = pluginInstance;</b>
    -<b class="fc">&nbsp;        this.type = type;</b>
    -<b class="fc">&nbsp;        this.typeInstance = typeInstance;</b>
    -<b class="fc">&nbsp;        this.timestamp = timestamp;</b>
    -<b class="fc">&nbsp;        this.period = period;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getHost() {
    -<b class="fc">&nbsp;        return host;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getPlugin() {
    -<b class="fc">&nbsp;        return plugin;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getPluginInstance() {
    -<b class="fc">&nbsp;        return pluginInstance;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getType() {
    -<b class="fc">&nbsp;        return type;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String getTypeInstance() {
    -<b class="fc">&nbsp;        return typeInstance;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    long getTimestamp() {
    -<b class="fc">&nbsp;        return timestamp;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    long getPeriod() {
    -<b class="fc">&nbsp;        return period;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    static class Builder {
    -&nbsp;
    -&nbsp;        private String host;
    -&nbsp;        private String plugin;
    -&nbsp;        private String pluginInstance;
    -&nbsp;        private String type;
    -&nbsp;        private String typeInstance;
    -&nbsp;        private long timestamp;
    -&nbsp;        private long period;
    -&nbsp;        private Sanitize sanitize;
    -&nbsp;
    -&nbsp;        Builder(String host, long timestamp, long duration) {
    -<b class="fc">&nbsp;            this(new Sanitize(Sanitize.DEFAULT_MAX_LENGTH), host, timestamp, duration);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        Builder(Sanitize sanitize, String host, long timestamp, long duration) {</b>
    -<b class="fc">&nbsp;            this.sanitize = sanitize;</b>
    -<b class="fc">&nbsp;            this.host = sanitize.instanceName(host);</b>
    -<b class="fc">&nbsp;            this.timestamp = timestamp;</b>
    -<b class="fc">&nbsp;            period = duration;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder plugin(String name) {
    -<b class="fc">&nbsp;            plugin = sanitize.name(name);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder pluginInstance(String name) {
    -<b class="nc">&nbsp;            pluginInstance = sanitize.instanceName(name);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder type(String name) {
    -<b class="fc">&nbsp;            type = sanitize.name(name);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        Builder typeInstance(String name) {
    -<b class="fc">&nbsp;            typeInstance = sanitize.instanceName(name);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        MetaData get() {
    -<b class="fc">&nbsp;            return new MetaData(host, plugin, pluginInstance, type, typeInstance, timestamp, period);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-3.html
    deleted file mode 100644
    index 7092d0fced..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-3.html
    +++ /dev/null
    @@ -1,424 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PacketWriter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PacketWriter (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PacketWriter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (14/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.4%
    -  </span>
    -  <span class="absValue">
    -    (88/103)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">PacketWriter$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">PacketWriter$EncryptionResult</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (17/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    86.1%
    -  </span>
    -  <span class="absValue">
    -    (93/108)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import javax.crypto.BadPaddingException;
    -&nbsp;import javax.crypto.Cipher;
    -&nbsp;import javax.crypto.IllegalBlockSizeException;
    -&nbsp;import javax.crypto.Mac;
    -&nbsp;import javax.crypto.NoSuchPaddingException;
    -&nbsp;import javax.crypto.ShortBufferException;
    -&nbsp;import javax.crypto.spec.IvParameterSpec;
    -&nbsp;import javax.crypto.spec.SecretKeySpec;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.nio.BufferOverflowException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.ByteOrder;
    -&nbsp;import java.nio.charset.StandardCharsets;
    -&nbsp;import java.security.InvalidKeyException;
    -&nbsp;import java.security.MessageDigest;
    -&nbsp;import java.security.NoSuchAlgorithmException;
    -&nbsp;import java.security.spec.InvalidParameterSpecException;
    -&nbsp;import java.util.Arrays;
    -&nbsp;
    -&nbsp;class PacketWriter {
    -&nbsp;
    -&nbsp;    private static final int TYPE_HOST = 0;
    -&nbsp;    private static final int TYPE_TIME = 1;
    -&nbsp;    private static final int TYPE_PLUGIN = 2;
    -&nbsp;    private static final int TYPE_PLUGIN_INSTANCE = 3;
    -&nbsp;    private static final int TYPE_TYPE = 4;
    -&nbsp;    private static final int TYPE_TYPE_INSTANCE = 5;
    -&nbsp;    private static final int TYPE_VALUES = 6;
    -&nbsp;    private static final int TYPE_INTERVAL = 7;
    -&nbsp;    private static final int TYPE_SIGN_SHA256 = 0x0200;
    -&nbsp;    private static final int TYPE_ENCR_AES256 = 0x0210;
    -&nbsp;
    -&nbsp;    private static final int UINT16_LEN = 2;
    -&nbsp;    private static final int UINT32_LEN = UINT16_LEN * 2;
    -&nbsp;    private static final int UINT64_LEN = UINT32_LEN * 2;
    -&nbsp;    private static final int HEADER_LEN = UINT16_LEN * 2;
    -&nbsp;    private static final int BUFFER_SIZE = 1024;
    -&nbsp;
    -&nbsp;    private static final int VALUE_COUNT_LEN = UINT16_LEN;
    -&nbsp;    private static final int NUMBER_LEN = HEADER_LEN + UINT64_LEN;
    -&nbsp;    private static final int SIGNATURE_LEN = 36;      // 2b Type + 2b Length + 32b Hash
    -&nbsp;    private static final int ENCRYPT_DATA_LEN = 22;   // 16b IV + 2b Type + 2b Length + 2b Username length
    -&nbsp;    private static final int IV_LENGTH = 16;
    -&nbsp;    private static final int SHA1_LENGTH = 20;
    -&nbsp;
    -&nbsp;    private static final int VALUE_LEN = 9;
    -&nbsp;    private static final byte DATA_TYPE_GAUGE = (byte) 1;
    -&nbsp;    private static final byte NULL = (byte) &#39;\0&#39;;
    -&nbsp;    private static final String HMAC_SHA256_ALGORITHM = &quot;HmacSHA256&quot;;
    -&nbsp;    private static final String AES_CYPHER = &quot;AES_256/OFB/NoPadding&quot;;
    -&nbsp;    private static final String AES = &quot;AES&quot;;
    -&nbsp;    private static final String SHA_256_ALGORITHM = &quot;SHA-256&quot;;
    -&nbsp;    private static final String SHA_1_ALGORITHM = &quot;SHA1&quot;;
    -&nbsp;
    -&nbsp;    private final Sender sender;
    -&nbsp;
    -&nbsp;    private final SecurityLevel securityLevel;
    -&nbsp;    private final byte[] username;
    -&nbsp;    private final byte[] password;
    -&nbsp;
    -<b class="fc">&nbsp;    PacketWriter(Sender sender, String username, String password, SecurityLevel securityLevel) {</b>
    -<b class="fc">&nbsp;        this.sender = sender;</b>
    -<b class="fc">&nbsp;        this.securityLevel = securityLevel;</b>
    -<b class="fc">&nbsp;        this.username = username != null ? username.getBytes(StandardCharsets.UTF_8) : null;</b>
    -<b class="fc">&nbsp;        this.password = password != null ? password.getBytes(StandardCharsets.UTF_8) : null;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void write(MetaData metaData, Number... values) throws BufferOverflowException, IOException {
    -<b class="fc">&nbsp;        final ByteBuffer packet = ByteBuffer.allocate(BUFFER_SIZE);</b>
    -<b class="fc">&nbsp;        write(packet, metaData);</b>
    -<b class="fc">&nbsp;        write(packet, values);</b>
    -<b class="fc">&nbsp;        packet.flip();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        switch (securityLevel) {</b>
    -&nbsp;            case NONE:
    -<b class="fc">&nbsp;                sender.send(packet);</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case SIGN:
    -<b class="fc">&nbsp;                sender.send(signPacket(packet));</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            case ENCRYPT:
    -<b class="fc">&nbsp;                sender.send(encryptPacket(packet));</b>
    -<b class="fc">&nbsp;                break;</b>
    -&nbsp;            default:
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(&quot;Unsupported security level: &quot; + securityLevel);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    private void write(ByteBuffer buffer, MetaData metaData) {
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_HOST, metaData.getHost());</b>
    -<b class="fc">&nbsp;        writeNumber(buffer, TYPE_TIME, metaData.getTimestamp());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_PLUGIN, metaData.getPlugin());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_PLUGIN_INSTANCE, metaData.getPluginInstance());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_TYPE, metaData.getType());</b>
    -<b class="fc">&nbsp;        writeString(buffer, TYPE_TYPE_INSTANCE, metaData.getTypeInstance());</b>
    -<b class="fc">&nbsp;        writeNumber(buffer, TYPE_INTERVAL, metaData.getPeriod());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void write(ByteBuffer buffer, Number... values) {
    -<b class="fc">&nbsp;        final int numValues = values.length;</b>
    -<b class="fc">&nbsp;        final int length = HEADER_LEN + VALUE_COUNT_LEN + numValues * VALUE_LEN;</b>
    -<b class="fc">&nbsp;        writeHeader(buffer, TYPE_VALUES, length);</b>
    -<b class="fc">&nbsp;        buffer.putShort((short) numValues);</b>
    -<b class="fc">&nbsp;        buffer.put(nCopies(numValues, DATA_TYPE_GAUGE));</b>
    -<b class="fc">&nbsp;        buffer.order(ByteOrder.LITTLE_ENDIAN);</b>
    -<b class="fc">&nbsp;        for (Number value : values) {</b>
    -<b class="fc">&nbsp;            buffer.putDouble(value.doubleValue());</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        buffer.order(ByteOrder.BIG_ENDIAN);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private byte[] nCopies(int n, byte value) {
    -<b class="fc">&nbsp;        final byte[] array = new byte[n];</b>
    -<b class="fc">&nbsp;        Arrays.fill(array, value);</b>
    -<b class="fc">&nbsp;        return array;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeString(ByteBuffer buffer, int type, String val) {
    -<b class="fc">&nbsp;        if (val == null || val.length() == 0) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        int len = HEADER_LEN + val.length() + 1;</b>
    -<b class="fc">&nbsp;        writeHeader(buffer, type, len);</b>
    -<b class="fc">&nbsp;        buffer.put(val.getBytes(StandardCharsets.US_ASCII)).put(NULL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeNumber(ByteBuffer buffer, int type, long val) {
    -<b class="fc">&nbsp;        writeHeader(buffer, type, NUMBER_LEN);</b>
    -<b class="fc">&nbsp;        buffer.putLong(val);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void writeHeader(ByteBuffer buffer, int type, int len) {
    -<b class="fc">&nbsp;        buffer.putShort((short) type);</b>
    -<b class="fc">&nbsp;        buffer.putShort((short) len);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Signs the provided packet, so a CollectD server can verify that its authenticity.
    -&nbsp;     * Wire format:
    -&nbsp;     * &lt;pre&gt;
    -&nbsp;     * +-------------------------------+-------------------------------+
    -&nbsp;     * ! Type (0x0200)                 ! Length                        !
    -&nbsp;     * +-------------------------------+-------------------------------+
    -&nbsp;     * ! Signature (SHA2(username + packet))                           \
    -&nbsp;     * +-------------------------------+-------------------------------+
    -&nbsp;     * ! Username                      ! Packet                        \
    -&nbsp;     * +---------------------------------------------------------------+
    -&nbsp;     * &lt;/pre&gt;
    -&nbsp;     *
    -&nbsp;     * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Binary_protocol#Signature_part&quot;&gt;
    -&nbsp;     * Binary protocol - CollectD | Signature part&lt;/a&gt;
    -&nbsp;     */
    -&nbsp;    private ByteBuffer signPacket(ByteBuffer packet) {
    -<b class="fc">&nbsp;        final byte[] signature = sign(password, (ByteBuffer) ByteBuffer.allocate(packet.remaining() + username.length)</b>
    -<b class="fc">&nbsp;                .put(username)</b>
    -<b class="fc">&nbsp;                .put(packet)</b>
    -<b class="fc">&nbsp;                .flip());</b>
    -<b class="fc">&nbsp;        return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)</b>
    -<b class="fc">&nbsp;                .putShort((short) TYPE_SIGN_SHA256)</b>
    -<b class="fc">&nbsp;                .putShort((short) (username.length + SIGNATURE_LEN))</b>
    -<b class="fc">&nbsp;                .put(signature)</b>
    -<b class="fc">&nbsp;                .put(username)</b>
    -<b class="fc">&nbsp;                .put((ByteBuffer) packet.flip())</b>
    -<b class="fc">&nbsp;                .flip();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Encrypts the provided packet, so it&#39;s can&#39;t be eavesdropped during a transfer
    -&nbsp;     * to a CollectD server. Wire format:
    -&nbsp;     * &lt;pre&gt;
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * ! Type (0x0210)                   ! Length                        !
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * ! Username length in bytes        ! Username                      \
    -&nbsp;     * +-----------------------------------------------------------------+
    -&nbsp;     * ! Initialization Vector (IV)      !                               \
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * ! Encrypted bytes (AES (SHA1(packet) + packet))                   \
    -&nbsp;     * +---------------------------------+-------------------------------+
    -&nbsp;     * &lt;/pre&gt;
    -&nbsp;     *
    -&nbsp;     * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Binary_protocol#Encrypted_part&quot;&gt;
    -&nbsp;     * Binary protocol - CollectD | Encrypted part&lt;/a&gt;
    -&nbsp;     */
    -&nbsp;    private ByteBuffer encryptPacket(ByteBuffer packet) {
    -<b class="fc">&nbsp;        final ByteBuffer payload = (ByteBuffer) ByteBuffer.allocate(SHA1_LENGTH + packet.remaining())</b>
    -<b class="fc">&nbsp;                .put(sha1(packet))</b>
    -<b class="fc">&nbsp;                .put((ByteBuffer) packet.flip())</b>
    -<b class="fc">&nbsp;                .flip();</b>
    -<b class="fc">&nbsp;        final EncryptionResult er = encrypt(password, payload);</b>
    -<b class="fc">&nbsp;        return (ByteBuffer) ByteBuffer.allocate(BUFFER_SIZE)</b>
    -<b class="fc">&nbsp;                .putShort((short) TYPE_ENCR_AES256)</b>
    -<b class="fc">&nbsp;                .putShort((short) (ENCRYPT_DATA_LEN + username.length + er.output.remaining()))</b>
    -<b class="fc">&nbsp;                .putShort((short) username.length)</b>
    -<b class="fc">&nbsp;                .put(username)</b>
    -<b class="fc">&nbsp;                .put(er.iv)</b>
    -<b class="fc">&nbsp;                .put(er.output)</b>
    -<b class="fc">&nbsp;                .flip();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static byte[] sign(byte[] secret, ByteBuffer input) {
    -&nbsp;        final Mac mac;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            mac = Mac.getInstance(HMAC_SHA256_ALGORITHM);</b>
    -<b class="fc">&nbsp;            mac.init(new SecretKeySpec(secret, HMAC_SHA256_ALGORITHM));</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException | InvalidKeyException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        mac.update(input);</b>
    -<b class="fc">&nbsp;        return mac.doFinal();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static EncryptionResult encrypt(byte[] password, ByteBuffer input) {
    -&nbsp;        final Cipher cipher;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            cipher = Cipher.getInstance(AES_CYPHER);</b>
    -<b class="fc">&nbsp;            cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(sha256(password), AES));</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException | NoSuchPaddingException | InvalidKeyException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;        final byte[] iv;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            iv = cipher.getParameters().getParameterSpec(IvParameterSpec.class).getIV();</b>
    -<b class="nc">&nbsp;        } catch (InvalidParameterSpecException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        if (iv.length != IV_LENGTH) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Bad initialization vector&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        final ByteBuffer output = ByteBuffer.allocate(input.remaining() * 2);</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            cipher.doFinal(input, output);</b>
    -<b class="nc">&nbsp;        } catch (ShortBufferException | IllegalBlockSizeException | BadPaddingException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return new EncryptionResult(iv, (ByteBuffer) output.flip());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static byte[] sha256(byte[] input) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return MessageDigest.getInstance(SHA_256_ALGORITHM).digest(input);</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static byte[] sha1(ByteBuffer input) {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            final MessageDigest digest = MessageDigest.getInstance(SHA_1_ALGORITHM);</b>
    -<b class="fc">&nbsp;            digest.update(input);</b>
    -<b class="fc">&nbsp;            final byte[] output = digest.digest();</b>
    -<b class="fc">&nbsp;            if (output.length != SHA1_LENGTH) {</b>
    -<b class="nc">&nbsp;                throw new IllegalStateException(&quot;Bad SHA1 hash&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return output;</b>
    -<b class="nc">&nbsp;        } catch (NoSuchAlgorithmException e) {</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class EncryptionResult {</b>
    -&nbsp;
    -&nbsp;        private final byte[] iv;
    -&nbsp;        private final ByteBuffer output;
    -&nbsp;
    -<b class="fc">&nbsp;        private EncryptionResult(byte[] iv, ByteBuffer output) {</b>
    -<b class="fc">&nbsp;            this.iv = iv;</b>
    -<b class="fc">&nbsp;            this.output = output;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-4.html
    deleted file mode 100644
    index f76723af1c..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-4.html
    +++ /dev/null
    @@ -1,150 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Sanitize</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Sanitize (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Sanitize</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (13/13)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import java.util.Arrays;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * @see &lt;a href=&quot;https://collectd.org/wiki/index.php/Naming_schema&gt;Collectd naming schema&lt;/a&gt;
    -&nbsp; */
    -&nbsp;class Sanitize {
    -&nbsp;
    -&nbsp;    static final int DEFAULT_MAX_LENGTH = 63;
    -&nbsp;
    -&nbsp;    private static final char DASH = &#39;-&#39;;
    -&nbsp;    private static final char SLASH = &#39;/&#39;;
    -&nbsp;    private static final char NULL = &#39;\0&#39;;
    -&nbsp;    private static final char UNDERSCORE = &#39;_&#39;;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final List&lt;Character&gt; INSTANCE_RESERVED = Arrays.asList(SLASH, NULL);</b>
    -<b class="fc">&nbsp;    private static final List&lt;Character&gt; NAME_RESERVED = Arrays.asList(DASH, SLASH, NULL);</b>
    -&nbsp;
    -&nbsp;    private final int maxLength;
    -&nbsp;
    -<b class="fc">&nbsp;    Sanitize(int maxLength) {</b>
    -<b class="fc">&nbsp;        this.maxLength = maxLength;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String name(String name) {
    -<b class="fc">&nbsp;        return sanitize(name, NAME_RESERVED);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    String instanceName(String instanceName) {
    -<b class="fc">&nbsp;        return sanitize(instanceName, INSTANCE_RESERVED);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String sanitize(String string, List&lt;Character&gt; reservedChars) {
    -<b class="fc">&nbsp;        final StringBuilder buffer = new StringBuilder(string.length());</b>
    -<b class="fc">&nbsp;        final int len = Math.min(string.length(), maxLength);</b>
    -<b class="fc">&nbsp;        for (int i = 0; i &lt; len; i++) {</b>
    -<b class="fc">&nbsp;            final char c = string.charAt(i);</b>
    -<b class="fc">&nbsp;            final boolean legal = ((int) c) &lt; 128 &amp;&amp; !reservedChars.contains(c);</b>
    -<b class="fc">&nbsp;            buffer.append(legal ? c : UNDERSCORE);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return buffer.toString();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-5.html
    deleted file mode 100644
    index 668fb4856a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-5.html
    +++ /dev/null
    @@ -1,134 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SecurityConfiguration</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SecurityConfiguration (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SecurityConfiguration</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/8)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;public class SecurityConfiguration {
    -&nbsp;
    -&nbsp;    private final byte[] username;
    -&nbsp;    private final byte[] password;
    -&nbsp;    private final SecurityLevel securityLevel;
    -&nbsp;
    -<b class="nc">&nbsp;    public SecurityConfiguration(byte[] username, byte[] password, SecurityLevel securityLevel) {</b>
    -<b class="nc">&nbsp;        this.username = username;</b>
    -<b class="nc">&nbsp;        this.password = password;</b>
    -<b class="nc">&nbsp;        this.securityLevel = securityLevel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static SecurityConfiguration none() {
    -<b class="nc">&nbsp;        return new SecurityConfiguration(null, null, SecurityLevel.NONE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public byte[] getUsername() {
    -<b class="nc">&nbsp;        return username;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public byte[] getPassword() {
    -<b class="nc">&nbsp;        return password;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public SecurityLevel getSecurityLevel() {
    -<b class="nc">&nbsp;        return securityLevel;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-6.html
    deleted file mode 100644
    index 51c6723a05..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-6.html
    +++ /dev/null
    @@ -1,112 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SecurityLevel</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SecurityLevel (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SecurityLevel</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -<b class="fc">&nbsp;public enum SecurityLevel {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    NONE,</b>
    -<b class="fc">&nbsp;    SIGN,</b>
    -<b class="fc">&nbsp;    ENCRYPT</b>
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-7.html b/metrics-complete-report-initial-htmlReport/ns-5/sources/source-7.html
    deleted file mode 100644
    index fbc21ba61d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-5/sources/source-7.html
    +++ /dev/null
    @@ -1,154 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Sender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.collectd</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Sender (com.codahale.metrics.collectd)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Sender</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (5/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    92.9%
    -  </span>
    -  <span class="absValue">
    -    (13/14)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.collectd;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.channels.DatagramChannel;
    -&nbsp;
    -&nbsp;public class Sender {
    -&nbsp;
    -&nbsp;    private final String host;
    -&nbsp;    private final int port;
    -&nbsp;
    -&nbsp;    private InetSocketAddress address;
    -&nbsp;    private DatagramChannel channel;
    -&nbsp;
    -<b class="fc">&nbsp;    public Sender(String host, int port) {</b>
    -<b class="fc">&nbsp;        this.host = host;</b>
    -<b class="fc">&nbsp;        this.port = port;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void connect() throws IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (host != null) {</b>
    -<b class="fc">&nbsp;            address = new InetSocketAddress(host, port);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        channel = DatagramChannel.open();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return channel != null &amp;&amp; !channel.socket().isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void send(ByteBuffer buffer) throws IOException {
    -<b class="fc">&nbsp;        channel.send(buffer, address);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public void disconnect() throws IOException {
    -<b class="fc">&nbsp;        if (channel == null) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -&nbsp;        try {
    -<b class="fc">&nbsp;            channel.close();</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            channel = null;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index.html b/metrics-complete-report-initial-htmlReport/ns-6/index.html
    deleted file mode 100644
    index 18cd213d19..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-6/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index dded8f6d8e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 57274c4459..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 7f7e8dd20d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index aa894e5cca..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 27b168fe25..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index ef57f5c6b1..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 99b43f3da0..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 1837ecfffa..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 2fd6f03e5e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-6/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.ehcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.ehcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.ehcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.ehcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.2%
    -  </span>
    -  <span class="absValue">
    -    (23/27)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75.8%
    -  </span>
    -  <span class="absValue">
    -    (50/66)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedEhcache</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedCacheDecoratorFactory</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-6/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-6/sources/source-1.html
    deleted file mode 100644
    index 81160edd26..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-6/sources/source-1.html
    +++ /dev/null
    @@ -1,128 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedCacheDecoratorFactory</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.ehcache</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedCacheDecoratorFactory (com.codahale.metrics.ehcache)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedCacheDecoratorFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.ehcache;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.SharedMetricRegistries;
    -&nbsp;import net.sf.ehcache.Ehcache;
    -&nbsp;import net.sf.ehcache.constructs.CacheDecoratorFactory;
    -&nbsp;
    -&nbsp;import java.util.Properties;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedCacheDecoratorFactory extends CacheDecoratorFactory {</b>
    -&nbsp;    @Override
    -&nbsp;    public Ehcache createDecoratedEhcache(Ehcache cache, Properties properties) {
    -<b class="fc">&nbsp;        final String name = properties.getProperty(&quot;metric-registry-name&quot;);</b>
    -<b class="fc">&nbsp;        final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);</b>
    -<b class="fc">&nbsp;        return InstrumentedEhcache.instrument(registry, cache);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Ehcache createDefaultDecoratedEhcache(Ehcache cache, Properties properties) {
    -<b class="nc">&nbsp;        final String name = properties.getProperty(&quot;metric-registry-name&quot;);</b>
    -<b class="nc">&nbsp;        final MetricRegistry registry = SharedMetricRegistries.getOrCreate(name);</b>
    -<b class="nc">&nbsp;        return InstrumentedEhcache.instrument(registry, cache);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-6/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-6/sources/source-2.html
    deleted file mode 100644
    index 4ca7f94df8..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-6/sources/source-2.html
    +++ /dev/null
    @@ -1,335 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedEhcache</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.ehcache</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedEhcache (com.codahale.metrics.ehcache)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedEhcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (21/24)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    78%
    -  </span>
    -  <span class="absValue">
    -    (46/59)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.ehcache;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import net.sf.ehcache.CacheException;
    -&nbsp;import net.sf.ehcache.Ehcache;
    -&nbsp;import net.sf.ehcache.Element;
    -&nbsp;import net.sf.ehcache.constructs.EhcacheDecoratorAdapter;
    -&nbsp;import net.sf.ehcache.statistics.StatisticsGateway;
    -&nbsp;
    -&nbsp;import java.io.Serializable;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An instrumented {@link Ehcache} instance.
    -&nbsp; */
    -&nbsp;public class InstrumentedEhcache extends EhcacheDecoratorAdapter {
    -&nbsp;    /**
    -&nbsp;     * Instruments the given {@link Ehcache} instance with get and put timers
    -&nbsp;     * and a set of gauges for Ehcache&#39;s built-in statistics:
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * &lt;table&gt;
    -&nbsp;     * &lt;caption&gt;Ehcache timered metrics&lt;/caption&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The number of times a requested item was found in the
    -&nbsp;     * cache.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code in-memory-hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was found in the memory
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code off-heap-hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was found in the off-heap
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code on-disk-hits}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was found in the disk
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the
    -&nbsp;     * cache.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code in-memory-misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the memory
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code off-heap-misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the
    -&nbsp;     * off-heap store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code on-disk-misses}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of times a requested item was not found in the disk
    -&nbsp;     * store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of elements stored in the cache.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code in-memory-objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of objects in the memory store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code off-heap-objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of objects in the off-heap store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code on-disk-objects}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;Number of objects in the disk store.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code mean-get-time}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The average get time. Because ehcache support JDK1.4.2, each
    -&nbsp;     * get time uses {@link System#currentTimeMillis()}, rather than
    -&nbsp;     * nanoseconds. The accuracy is thus limited.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code mean-search-time}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The average execution time (in milliseconds) within the last
    -&nbsp;     * sample period.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code eviction-count}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The number of cache evictions, since the cache was created,
    -&nbsp;     * or statistics were cleared.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code searches-per-second}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;The number of search executions that have completed in the
    -&nbsp;     * last second.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;tr&gt;
    -&nbsp;     * &lt;td&gt;{@code accuracy}&lt;/td&gt;
    -&nbsp;     * &lt;td&gt;A human readable description of the accuracy setting. One of
    -&nbsp;     * &quot;None&quot;, &quot;Best Effort&quot; or &quot;Guaranteed&quot;.&lt;/td&gt;
    -&nbsp;     * &lt;/tr&gt;
    -&nbsp;     * &lt;/table&gt;
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * &lt;b&gt;N.B.: This enables Ehcache&#39;s sampling statistics with an accuracy
    -&nbsp;     * level of &quot;none.&quot;&lt;/b&gt;
    -&nbsp;     *
    -&nbsp;     * @param cache    an {@link Ehcache} instance
    -&nbsp;     * @param registry a {@link MetricRegistry}
    -&nbsp;     * @return an instrumented decorator for {@code cache}
    -&nbsp;     * @see StatisticsGateway
    -&nbsp;     */
    -&nbsp;    public static Ehcache instrument(MetricRegistry registry, final Ehcache cache) {
    -&nbsp;
    -<b class="fc">&nbsp;        final String prefix = name(cache.getClass(), cache.getName());</b>
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localHeapHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localOffHeapHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-hits&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localDiskHitCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localHeapMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localOffHeapMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-misses&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().localDiskMissCount());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;in-memory-objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalHeapSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;off-heap-objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalOffHeapSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;on-disk-objects&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getLocalDiskSize());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;mean-get-time&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheGetOperation().latency().average().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;mean-search-time&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheSearchOperation().latency().average().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;eviction-count&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheEvictionOperation().count().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;searches-per-second&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().cacheSearchOperation().rate().value());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        registry.registerGauge(name(prefix, &quot;writer-queue-size&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; cache.getStatistics().getWriterQueueLength());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return new InstrumentedEhcache(registry, cache);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final Timer getTimer, putTimer;
    -&nbsp;
    -&nbsp;    private InstrumentedEhcache(MetricRegistry registry, Ehcache cache) {
    -<b class="fc">&nbsp;        super(cache);</b>
    -<b class="fc">&nbsp;        this.getTimer = registry.timer(name(cache.getClass(), cache.getName(), &quot;gets&quot;));</b>
    -<b class="fc">&nbsp;        this.putTimer = registry.timer(name(cache.getClass(), cache.getName(), &quot;puts&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Element get(Object key) throws IllegalStateException, CacheException {
    -<b class="nc">&nbsp;        final Timer.Context ctx = getTimer.time();</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            return underlyingCache.get(key);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Element get(Serializable key) throws IllegalStateException, CacheException {
    -<b class="fc">&nbsp;        final Timer.Context ctx = getTimer.time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return underlyingCache.get(key);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void put(Element element) throws IllegalArgumentException, IllegalStateException, CacheException {
    -<b class="fc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            underlyingCache.put(element);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            ctx.stop();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void put(Element element, boolean doNotNotifyCacheReplicators) throws IllegalArgumentException, IllegalStateException, CacheException {
    -<b class="nc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            underlyingCache.put(element, doNotNotifyCacheReplicators);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Element putIfAbsent(Element element) throws NullPointerException {
    -<b class="nc">&nbsp;        final Timer.Context ctx = putTimer.time();</b>
    -&nbsp;        try {
    -<b class="nc">&nbsp;            return underlyingCache.putIfAbsent(element);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            ctx.stop();</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index.html b/metrics-complete-report-initial-htmlReport/ns-7/index.html
    deleted file mode 100644
    index 4408f0464d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-7/index.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 9e9f09fd37..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index c46b00fa03..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 51ea9452d6..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 4e238b6730..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 2f2cb780e5..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 5842cf99a0..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 16dc24a9e6..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 120070bd32..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 72c28d3e1b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-7/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,278 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.graphite</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.graphite</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.graphite</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    77.8%
    -  </span>
    -  <span class="absValue">
    -    (7/9)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.9%
    -  </span>
    -  <span class="absValue">
    -    (62/97)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58%
    -  </span>
    -  <span class="absValue">
    -    (215/371)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">PickledGraphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">GraphiteUDP</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">GraphiteSanitize</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">GraphiteReporter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">GraphiteRabbitMQ</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (1/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Graphite</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-1.html
    deleted file mode 100644
    index b85b63c5fc..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-1.html
    +++ /dev/null
    @@ -1,305 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Graphite</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Graphite (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">Graphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.3%
    -  </span>
    -  <span class="absValue">
    -    (9/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.4%
    -  </span>
    -  <span class="absValue">
    -    (31/58)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import javax.net.SocketFactory;
    -&nbsp;import java.io.BufferedWriter;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.Writer;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.net.Socket;
    -&nbsp;import java.net.UnknownHostException;
    -&nbsp;import java.nio.charset.Charset;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A client to a Carbon server via TCP.
    -&nbsp; */
    -&nbsp;public class Graphite implements GraphiteSender {
    -&nbsp;    // this may be optimistic about Carbon/Graphite
    -&nbsp;
    -&nbsp;    private final String hostname;
    -&nbsp;    private final int port;
    -&nbsp;    private final InetSocketAddress address;
    -&nbsp;    private final SocketFactory socketFactory;
    -&nbsp;    private final Charset charset;
    -&nbsp;
    -&nbsp;    private Socket socket;
    -&nbsp;    private Writer writer;
    -&nbsp;    private int failures;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(Graphite.class);</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default
    -&nbsp;     * {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param hostname The hostname of the Carbon server
    -&nbsp;     * @param port     The port of the Carbon server
    -&nbsp;     */
    -&nbsp;    public Graphite(String hostname, int port) {
    -<b class="nc">&nbsp;        this(hostname, port, SocketFactory.getDefault());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param hostname      The hostname of the Carbon server
    -&nbsp;     * @param port          The port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     */
    -&nbsp;    public Graphite(String hostname, int port, SocketFactory socketFactory) {
    -<b class="fc">&nbsp;        this(hostname, port, socketFactory, UTF_8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given
    -&nbsp;     * character set.
    -&nbsp;     *
    -&nbsp;     * @param hostname      The hostname of the Carbon server
    -&nbsp;     * @param port          The port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     */
    -<b class="fc">&nbsp;    public Graphite(String hostname, int port, SocketFactory socketFactory, Charset charset) {</b>
    -<b class="fc">&nbsp;        if (hostname == null || hostname.isEmpty()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;hostname must not be null or empty&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (port &lt; 0 || port &gt; 65535) {</b>
    -<b class="nc">&nbsp;            throw new IllegalArgumentException(&quot;port must be a valid IP port (0-65535)&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        this.hostname = hostname;</b>
    -<b class="fc">&nbsp;        this.port = port;</b>
    -<b class="fc">&nbsp;        this.address = null;</b>
    -<b class="fc">&nbsp;        this.socketFactory = requireNonNull(socketFactory, &quot;socketFactory must not be null&quot;);</b>
    -<b class="fc">&nbsp;        this.charset = requireNonNull(charset, &quot;charset must not be null&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default
    -&nbsp;     * {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param address the address of the Carbon server
    -&nbsp;     */
    -&nbsp;    public Graphite(InetSocketAddress address) {
    -<b class="nc">&nbsp;        this(address, SocketFactory.getDefault());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     */
    -&nbsp;    public Graphite(InetSocketAddress address, SocketFactory socketFactory) {
    -<b class="fc">&nbsp;        this(address, socketFactory, UTF_8);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given
    -&nbsp;     * character set.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     */
    -<b class="fc">&nbsp;    public Graphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset) {</b>
    -<b class="fc">&nbsp;        this.hostname = null;</b>
    -<b class="fc">&nbsp;        this.port = -1;</b>
    -<b class="fc">&nbsp;        this.address = requireNonNull(address, &quot;address must not be null&quot;);</b>
    -<b class="fc">&nbsp;        this.socketFactory = requireNonNull(socketFactory, &quot;socketFactory must not be null&quot;);</b>
    -<b class="fc">&nbsp;        this.charset = requireNonNull(charset, &quot;charset must not be null&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        InetSocketAddress address = this.address;</b>
    -&nbsp;        // the previous dns retry logic did not work, as address.getAddress would always return the cached value
    -&nbsp;        // this version of the simplified logic will always cause a dns request if hostname has been supplied.
    -&nbsp;        // InetAddress.getByName forces the dns lookup
    -&nbsp;        // if an InetSocketAddress was supplied at create time that will take precedence.
    -<b class="fc">&nbsp;        if (address == null || address.getHostName() == null &amp;&amp; hostname != null) {</b>
    -<b class="fc">&nbsp;            address = new InetSocketAddress(hostname, port);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        if (address.getAddress() == null) {</b>
    -<b class="fc">&nbsp;            throw new UnknownHostException(address.getHostName());</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());</b>
    -<b class="nc">&nbsp;        this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return socket != null &amp;&amp; socket.isConnected() &amp;&amp; !socket.isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -&nbsp;        try {
    -<b class="nc">&nbsp;            writer.write(sanitize(name));</b>
    -<b class="nc">&nbsp;            writer.write(&#39; &#39;);</b>
    -<b class="nc">&nbsp;            writer.write(sanitize(value));</b>
    -<b class="nc">&nbsp;            writer.write(&#39; &#39;);</b>
    -<b class="nc">&nbsp;            writer.write(Long.toString(timestamp));</b>
    -<b class="nc">&nbsp;            writer.write(&#39;\n&#39;);</b>
    -<b class="nc">&nbsp;            this.failures = 0;</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            failures++;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="fc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -<b class="nc">&nbsp;        if (writer != null) {</b>
    -<b class="nc">&nbsp;            writer.flush();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            if (writer != null) {</b>
    -<b class="nc">&nbsp;                writer.close();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    -<b class="nc">&nbsp;            LOGGER.debug(&quot;Error closing writer&quot;, ex);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            this.writer = null;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            if (socket != null) {</b>
    -<b class="nc">&nbsp;                socket.close();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    -<b class="nc">&nbsp;            LOGGER.debug(&quot;Error closing socket&quot;, ex);</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            this.socket = null;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String s) {
    -<b class="nc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-2.html
    deleted file mode 100644
    index 398f4e3a79..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-2.html
    +++ /dev/null
    @@ -1,293 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteRabbitMQ</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteRabbitMQ (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteRabbitMQ</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.7%
    -  </span>
    -  <span class="absValue">
    -    (8/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.2%
    -  </span>
    -  <span class="absValue">
    -    (24/38)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">GraphiteRabbitMQ$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/3)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.5%
    -  </span>
    -  <span class="absValue">
    -    (8/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    58.5%
    -  </span>
    -  <span class="absValue">
    -    (24/41)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import com.rabbitmq.client.Channel;
    -&nbsp;import com.rabbitmq.client.Connection;
    -&nbsp;import com.rabbitmq.client.ConnectionFactory;
    -&nbsp;import com.rabbitmq.client.DefaultSocketConfigurator;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.Socket;
    -&nbsp;import java.util.concurrent.TimeoutException;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A rabbit-mq client to a Carbon server.
    -&nbsp; */
    -&nbsp;public class GraphiteRabbitMQ implements GraphiteSender {
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS = 500;</b>
    -<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_SOCKET_TIMEOUT_MS = 5000;</b>
    -<b class="fc">&nbsp;    private static final Integer DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC = 10;</b>
    -&nbsp;
    -&nbsp;    private ConnectionFactory connectionFactory;
    -&nbsp;    private Connection connection;
    -&nbsp;    private Channel channel;
    -&nbsp;    private String exchange;
    -&nbsp;
    -&nbsp;    private int failures;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client with a given a {@link com.rabbitmq.client.ConnectionFactory} and an amqp exchange
    -&nbsp;     *
    -&nbsp;     * @param connectionFactory the {@link com.rabbitmq.client.ConnectionFactory} used to establish connection and publish to graphite server
    -&nbsp;     * @param exchange          the amqp exchange
    -&nbsp;     */
    -<b class="fc">&nbsp;    public GraphiteRabbitMQ(final ConnectionFactory connectionFactory, final String exchange) {</b>
    -<b class="fc">&nbsp;        this.connectionFactory = connectionFactory;</b>
    -<b class="fc">&nbsp;        this.exchange = exchange;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client given connection details
    -&nbsp;     *
    -&nbsp;     * @param rabbitHost     the rabbitmq server host
    -&nbsp;     * @param rabbitPort     the rabbitmq server port
    -&nbsp;     * @param rabbitUsername the rabbitmq server username
    -&nbsp;     * @param rabbitPassword the rabbitmq server password
    -&nbsp;     * @param exchange       the amqp exchange
    -&nbsp;     */
    -&nbsp;    public GraphiteRabbitMQ(
    -&nbsp;            final String rabbitHost,
    -&nbsp;            final Integer rabbitPort,
    -&nbsp;            final String rabbitUsername,
    -&nbsp;            final String rabbitPassword,
    -&nbsp;            final String exchange) {
    -&nbsp;
    -<b class="nc">&nbsp;        this(rabbitHost,</b>
    -&nbsp;                rabbitPort,
    -&nbsp;                rabbitUsername,
    -&nbsp;                rabbitPassword,
    -&nbsp;                exchange,
    -&nbsp;                DEFAULT_RABBIT_CONNECTION_TIMEOUT_MS,
    -&nbsp;                DEFAULT_RABBIT_SOCKET_TIMEOUT_MS,
    -&nbsp;                DEFAULT_RABBIT_REQUESTED_HEARTBEAT_SEC);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client given connection details
    -&nbsp;     *
    -&nbsp;     * @param rabbitHost                        the rabbitmq server host
    -&nbsp;     * @param rabbitPort                        the rabbitmq server port
    -&nbsp;     * @param rabbitUsername                    the rabbitmq server username
    -&nbsp;     * @param rabbitPassword                    the rabbitmq server password
    -&nbsp;     * @param exchange                          the amqp exchange
    -&nbsp;     * @param rabbitConnectionTimeoutMS         the connection timeout in milliseconds
    -&nbsp;     * @param rabbitSocketTimeoutMS             the socket timeout in milliseconds
    -&nbsp;     * @param rabbitRequestedHeartbeatInSeconds the hearthbeat in seconds
    -&nbsp;     */
    -&nbsp;    public GraphiteRabbitMQ(
    -&nbsp;            final String rabbitHost,
    -&nbsp;            final Integer rabbitPort,
    -&nbsp;            final String rabbitUsername,
    -&nbsp;            final String rabbitPassword,
    -&nbsp;            final String exchange,
    -&nbsp;            final Integer rabbitConnectionTimeoutMS,
    -&nbsp;            final Integer rabbitSocketTimeoutMS,
    -<b class="nc">&nbsp;            final Integer rabbitRequestedHeartbeatInSeconds) {</b>
    -&nbsp;
    -<b class="nc">&nbsp;        this.exchange = exchange;</b>
    -&nbsp;
    -<b class="nc">&nbsp;        this.connectionFactory = new ConnectionFactory();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        connectionFactory.setSocketConfigurator(new DefaultSocketConfigurator() {</b>
    -&nbsp;            @Override
    -&nbsp;            public void configure(Socket socket) throws IOException {
    -<b class="nc">&nbsp;                super.configure(socket);</b>
    -<b class="nc">&nbsp;                socket.setSoTimeout(rabbitSocketTimeoutMS);</b>
    -&nbsp;            }
    -&nbsp;        });
    -&nbsp;
    -<b class="nc">&nbsp;        connectionFactory.setConnectionTimeout(rabbitConnectionTimeoutMS);</b>
    -<b class="nc">&nbsp;        connectionFactory.setRequestedHeartbeat(rabbitRequestedHeartbeatInSeconds);</b>
    -<b class="nc">&nbsp;        connectionFactory.setHost(rabbitHost);</b>
    -<b class="nc">&nbsp;        connectionFactory.setPort(rabbitPort);</b>
    -<b class="nc">&nbsp;        connectionFactory.setUsername(rabbitUsername);</b>
    -<b class="nc">&nbsp;        connectionFactory.setPassword(rabbitPassword);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="fc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            connection = connectionFactory.newConnection();</b>
    -<b class="nc">&nbsp;        } catch (TimeoutException e) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        channel = connection.createChannel();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return connection != null &amp;&amp; connection.isOpen();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            final String sanitizedName = sanitize(name);</b>
    -<b class="fc">&nbsp;            final String sanitizedValue = sanitize(value);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            final String message = sanitizedName + &#39; &#39; + sanitizedValue + &#39; &#39; + Long.toString(timestamp) + &#39;\n&#39;;</b>
    -<b class="fc">&nbsp;            channel.basicPublish(exchange, sanitizedName, null, message.getBytes(UTF_8));</b>
    -<b class="fc">&nbsp;        } catch (IOException e) {</b>
    -<b class="fc">&nbsp;            failures++;</b>
    -<b class="fc">&nbsp;            throw e;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -&nbsp;        // Nothing to do
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -<b class="fc">&nbsp;        if (connection != null) {</b>
    -<b class="fc">&nbsp;            connection.close();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="fc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public String sanitize(String s) {
    -<b class="fc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-3.html
    deleted file mode 100644
    index d06444e84b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-3.html
    +++ /dev/null
    @@ -1,655 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteReporter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteReporter (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteReporter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.5%
    -  </span>
    -  <span class="absValue">
    -    (95/105)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">GraphiteReporter$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">GraphiteReporter$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (12/14)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (31/35)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.4%
    -  </span>
    -  <span class="absValue">
    -    (32/35)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (126/140)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.Counter;
    -&nbsp;import com.codahale.metrics.Gauge;
    -&nbsp;import com.codahale.metrics.Histogram;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.Metered;
    -&nbsp;import com.codahale.metrics.MetricAttribute;
    -&nbsp;import com.codahale.metrics.MetricFilter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.ScheduledReporter;
    -&nbsp;import com.codahale.metrics.Snapshot;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.function.DoubleFunction;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.COUNT;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M15_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M1_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.M5_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MAX;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.MIN;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P50;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P75;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P95;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P98;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P99;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.P999;
    -&nbsp;import static com.codahale.metrics.MetricAttribute.STDDEV;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A reporter which publishes metric values to a Graphite server.
    -&nbsp; *
    -&nbsp; * @see &lt;a href=&quot;http://graphite.wikidot.com/&quot;&gt;Graphite - Scalable Realtime Graphing&lt;/a&gt;
    -&nbsp; */
    -<b class="fc">&nbsp;public class GraphiteReporter extends ScheduledReporter {</b>
    -&nbsp;    /**
    -&nbsp;     * Returns a new {@link Builder} for {@link GraphiteReporter}.
    -&nbsp;     *
    -&nbsp;     * @param registry the registry to report
    -&nbsp;     * @return a {@link Builder} instance for a {@link GraphiteReporter}
    -&nbsp;     */
    -&nbsp;    public static Builder forRegistry(MetricRegistry registry) {
    -<b class="fc">&nbsp;        return new Builder(registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * A builder for {@link GraphiteReporter} instances. Defaults to not using a prefix, using the
    -&nbsp;     * default clock, converting rates to events/second, converting durations to milliseconds, and
    -&nbsp;     * not filtering metrics.
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Builder {</b>
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private Clock clock;
    -&nbsp;        private String prefix;
    -&nbsp;        private TimeUnit rateUnit;
    -&nbsp;        private TimeUnit durationUnit;
    -&nbsp;        private MetricFilter filter;
    -&nbsp;        private ScheduledExecutorService executor;
    -&nbsp;        private boolean shutdownExecutorOnStop;
    -&nbsp;        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -&nbsp;        private boolean addMetricAttributesAsTags;
    -&nbsp;        private DoubleFunction&lt;String&gt; floatingPointFormatter;
    -&nbsp;
    -<b class="fc">&nbsp;        private Builder(MetricRegistry registry) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    -<b class="fc">&nbsp;            this.prefix = null;</b>
    -<b class="fc">&nbsp;            this.rateUnit = TimeUnit.SECONDS;</b>
    -<b class="fc">&nbsp;            this.durationUnit = TimeUnit.MILLISECONDS;</b>
    -<b class="fc">&nbsp;            this.filter = MetricFilter.ALL;</b>
    -<b class="fc">&nbsp;            this.executor = null;</b>
    -<b class="fc">&nbsp;            this.shutdownExecutorOnStop = true;</b>
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = Collections.emptySet();</b>
    -<b class="fc">&nbsp;            this.addMetricAttributesAsTags = false;</b>
    -<b class="fc">&nbsp;            this.floatingPointFormatter = DEFAULT_FP_FORMATTER;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -&nbsp;         * Default value is true.
    -&nbsp;         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -&nbsp;         *
    -&nbsp;         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<b class="nc">&nbsp;            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies the executor to use while scheduling reporting of metrics.
    -&nbsp;         * Default value is null.
    -&nbsp;         * Null value leads to executor will be auto created on start.
    -&nbsp;         *
    -&nbsp;         * @param executor the executor to use while scheduling reporting of metrics.
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<b class="nc">&nbsp;            this.executor = executor;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use the given {@link Clock} instance for the time.
    -&nbsp;         *
    -&nbsp;         * @param clock a {@link Clock} instance
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withClock(Clock clock) {
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Prefix all metric names with the given string.
    -&nbsp;         *
    -&nbsp;         * @param prefix the prefix for all metric names
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder prefixedWith(String prefix) {
    -<b class="fc">&nbsp;            this.prefix = prefix;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert rates to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param rateUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<b class="fc">&nbsp;            this.rateUnit = rateUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Convert durations to the given time unit.
    -&nbsp;         *
    -&nbsp;         * @param durationUnit a unit of time
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<b class="fc">&nbsp;            this.durationUnit = durationUnit;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Only report metrics which match the given filter.
    -&nbsp;         *
    -&nbsp;         * @param filter a {@link MetricFilter}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder filter(MetricFilter filter) {
    -<b class="fc">&nbsp;            this.filter = filter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Don&#39;t report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    -&nbsp;         * See {@link MetricAttribute}.
    -&nbsp;         *
    -&nbsp;         * @param disabledMetricAttributes a set of {@link MetricAttribute}
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="fc">&nbsp;            this.disabledMetricAttributes = disabledMetricAttributes;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Specifies whether or not metric attributes (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;) should be reported in the traditional dot delimited format or in the tag based format.
    -&nbsp;         * Without tags (default): `my.metric.p99`
    -&nbsp;         * With tags: `my.metric;metricattribute=p99`
    -&nbsp;         *
    -&nbsp;         * Note that this setting only modifies the metric attribute, and will not convert any other portion of the metric name to use tags.
    -&nbsp;         * For mor information on Graphite tag support see https://graphite.readthedocs.io/en/latest/tags.html
    -&nbsp;         * See {@link MetricAttribute}.
    -&nbsp;         *
    -&nbsp;         * @param addMetricAttributesAsTags if true, then metric attributes will be added as tags
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder addMetricAttributesAsTags(boolean addMetricAttributesAsTags) {
    -<b class="fc">&nbsp;            this.addMetricAttributesAsTags = addMetricAttributesAsTags;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Use custom floating point formatter.
    -&nbsp;         *
    -&nbsp;         * @param floatingPointFormatter a custom formatter for floating point values
    -&nbsp;         * @return {@code this}
    -&nbsp;         */
    -&nbsp;        public Builder withFloatingPointFormatter(DoubleFunction&lt;String&gt; floatingPointFormatter) {
    -<b class="fc">&nbsp;            this.floatingPointFormatter = floatingPointFormatter;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
    -&nbsp;         * given {@link GraphiteSender}.
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Present for binary compatibility
    -&nbsp;         *
    -&nbsp;         * @param graphite a {@link Graphite}
    -&nbsp;         * @return a {@link GraphiteReporter}
    -&nbsp;         */
    -&nbsp;        public GraphiteReporter build(Graphite graphite) {
    -<b class="fc">&nbsp;            return build((GraphiteSender) graphite);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Builds a {@link GraphiteReporter} with the given properties, sending metrics using the
    -&nbsp;         * given {@link GraphiteSender}.
    -&nbsp;         *
    -&nbsp;         * @param graphite a {@link GraphiteSender}
    -&nbsp;         * @return a {@link GraphiteReporter}
    -&nbsp;         */
    -&nbsp;        public GraphiteReporter build(GraphiteSender graphite) {
    -<b class="fc">&nbsp;            return new GraphiteReporter(registry,</b>
    -&nbsp;                    graphite,
    -&nbsp;                    clock,
    -&nbsp;                    prefix,
    -&nbsp;                    rateUnit,
    -&nbsp;                    durationUnit,
    -&nbsp;                    filter,
    -&nbsp;                    executor,
    -&nbsp;                    shutdownExecutorOnStop,
    -&nbsp;                    disabledMetricAttributes,
    -&nbsp;                    addMetricAttributesAsTags,
    -&nbsp;                    floatingPointFormatter);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(GraphiteReporter.class);</b>
    -&nbsp;    // the Carbon plaintext format is pretty underspecified, but it seems like it just wants US-formatted digits
    -<b class="fc">&nbsp;    private static final DoubleFunction&lt;String&gt; DEFAULT_FP_FORMATTER = fp -&gt; String.format(Locale.US, &quot;%2.2f&quot;, fp);</b>
    -&nbsp;
    -&nbsp;    private final GraphiteSender graphite;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private final String prefix;
    -&nbsp;    private final boolean addMetricAttributesAsTags;
    -&nbsp;    private final DoubleFunction&lt;String&gt; floatingPointFormatter;
    -&nbsp;  
    -&nbsp;  
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    -&nbsp;     *                                  reporter will report
    -&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    -&nbsp;     *                                  via a transport protocol
    -&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    -&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    -&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    -&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    -&nbsp;     * @param filter                    the filter for which metrics to report
    -&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    -&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    -&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    -&nbsp;     */
    -&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    -&nbsp;                               GraphiteSender graphite,
    -&nbsp;                               Clock clock,
    -&nbsp;                               String prefix,
    -&nbsp;                               TimeUnit rateUnit,
    -&nbsp;                               TimeUnit durationUnit,
    -&nbsp;                               MetricFilter filter,
    -&nbsp;                               ScheduledExecutorService executor,
    -&nbsp;                               boolean shutdownExecutorOnStop,
    -&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<b class="nc">&nbsp;        this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes, false);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    -&nbsp;     *                                  reporter will report
    -&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    -&nbsp;     *                                  via a transport protocol
    -&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    -&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    -&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    -&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    -&nbsp;     * @param filter                    the filter for which metrics to report
    -&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    -&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    -&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    -&nbsp;     * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
    -&nbsp;     */
    -&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    -&nbsp;                               GraphiteSender graphite,
    -&nbsp;                               Clock clock,
    -&nbsp;                               String prefix,
    -&nbsp;                               TimeUnit rateUnit,
    -&nbsp;                               TimeUnit durationUnit,
    -&nbsp;                               MetricFilter filter,
    -&nbsp;                               ScheduledExecutorService executor,
    -&nbsp;                               boolean shutdownExecutorOnStop,
    -&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    -&nbsp;                               boolean addMetricAttributesAsTags) {
    -<b class="fc">&nbsp;        this(registry, graphite, clock, prefix, rateUnit, durationUnit, filter, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes, addMetricAttributesAsTags, DEFAULT_FP_FORMATTER);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link GraphiteReporter} instance.
    -&nbsp;     *
    -&nbsp;     * @param registry                  the {@link MetricRegistry} containing the metrics this
    -&nbsp;     *                                  reporter will report
    -&nbsp;     * @param graphite                  the {@link GraphiteSender} which is responsible for sending metrics to a Carbon server
    -&nbsp;     *                                  via a transport protocol
    -&nbsp;     * @param clock                     the instance of the time. Use {@link Clock#defaultClock()} for the default
    -&nbsp;     * @param prefix                    the prefix of all metric names (may be null)
    -&nbsp;     * @param rateUnit                  the time unit of in which rates will be converted
    -&nbsp;     * @param durationUnit              the time unit of in which durations will be converted
    -&nbsp;     * @param filter                    the filter for which metrics to report
    -&nbsp;     * @param executor                  the executor to use while scheduling reporting of metrics (may be null).
    -&nbsp;     * @param shutdownExecutorOnStop    if true, then executor will be stopped in same time with this reporter
    -&nbsp;     * @param disabledMetricAttributes  do not report specific metric attributes
    -&nbsp;     * @param addMetricAttributesAsTags if true, then add metric attributes as tags instead of suffixes
    -&nbsp;     * @param floatingPointFormatter    custom floating point formatter
    -&nbsp;     */
    -&nbsp;    protected GraphiteReporter(MetricRegistry registry,
    -&nbsp;                               GraphiteSender graphite,
    -&nbsp;                               Clock clock,
    -&nbsp;                               String prefix,
    -&nbsp;                               TimeUnit rateUnit,
    -&nbsp;                               TimeUnit durationUnit,
    -&nbsp;                               MetricFilter filter,
    -&nbsp;                               ScheduledExecutorService executor,
    -&nbsp;                               boolean shutdownExecutorOnStop,
    -&nbsp;                               Set&lt;MetricAttribute&gt; disabledMetricAttributes,
    -&nbsp;                               boolean addMetricAttributesAsTags,
    -&nbsp;                               DoubleFunction&lt;String&gt; floatingPointFormatter) {
    -<b class="fc">&nbsp;        super(registry, &quot;graphite-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</b>
    -&nbsp;                disabledMetricAttributes);
    -<b class="fc">&nbsp;        this.graphite = graphite;</b>
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.prefix = prefix;</b>
    -<b class="fc">&nbsp;        this.addMetricAttributesAsTags = addMetricAttributesAsTags;</b>
    -<b class="fc">&nbsp;        this.floatingPointFormatter = floatingPointFormatter;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    @SuppressWarnings(&quot;rawtypes&quot;)
    -&nbsp;    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -&nbsp;                       SortedMap&lt;String, Counter&gt; counters,
    -&nbsp;                       SortedMap&lt;String, Histogram&gt; histograms,
    -&nbsp;                       SortedMap&lt;String, Meter&gt; meters,
    -&nbsp;                       SortedMap&lt;String, Timer&gt; timers) {
    -<b class="fc">&nbsp;        final long timestamp = clock.getTime() / 1000;</b>
    -&nbsp;
    -&nbsp;        // oh it&#39;d be lovely to use Java 7 here
    -&nbsp;        try {
    -<b class="fc">&nbsp;            graphite.connect();</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportGauge(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportCounter(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportHistogram(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportMetered(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</b>
    -<b class="fc">&nbsp;                reportTimer(entry.getKey(), entry.getValue(), timestamp);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;            graphite.flush();</b>
    -<b class="fc">&nbsp;        } catch (IOException e) {</b>
    -<b class="fc">&nbsp;            LOGGER.warn(&quot;Unable to report to Graphite&quot;, graphite, e);</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            try {</b>
    -<b class="fc">&nbsp;                graphite.close();</b>
    -<b class="nc">&nbsp;            } catch (IOException e1) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Error closing Graphite&quot;, graphite, e1);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void stop() {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            super.stop();</b>
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            try {</b>
    -<b class="fc">&nbsp;                graphite.close();</b>
    -<b class="nc">&nbsp;            } catch (IOException e) {</b>
    -<b class="nc">&nbsp;                LOGGER.debug(&quot;Error disconnecting from Graphite&quot;, graphite, e);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportTimer(String name, Timer timer, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        final Snapshot snapshot = timer.getSnapshot();</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MAX, name, convertDuration(snapshot.getMax()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MEAN, name, convertDuration(snapshot.getMean()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MIN, name, convertDuration(snapshot.getMin()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(STDDEV, name, convertDuration(snapshot.getStdDev()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P50, name, convertDuration(snapshot.getMedian()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P75, name, convertDuration(snapshot.get75thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P95, name, convertDuration(snapshot.get95thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P98, name, convertDuration(snapshot.get98thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P99, name, convertDuration(snapshot.get99thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P999, name, convertDuration(snapshot.get999thPercentile()), timestamp);</b>
    -<b class="fc">&nbsp;        reportMetered(name, timer, timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportMetered(String name, Metered meter, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        sendIfEnabled(COUNT, name, meter.getCount(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(M1_RATE, name, convertRate(meter.getOneMinuteRate()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(M5_RATE, name, convertRate(meter.getFiveMinuteRate()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(M15_RATE, name, convertRate(meter.getFifteenMinuteRate()), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MEAN_RATE, name, convertRate(meter.getMeanRate()), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportHistogram(String name, Histogram histogram, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        final Snapshot snapshot = histogram.getSnapshot();</b>
    -<b class="fc">&nbsp;        sendIfEnabled(COUNT, name, histogram.getCount(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MAX, name, snapshot.getMax(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MEAN, name, snapshot.getMean(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(MIN, name, snapshot.getMin(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(STDDEV, name, snapshot.getStdDev(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P50, name, snapshot.getMedian(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P75, name, snapshot.get75thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P95, name, snapshot.get95thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P98, name, snapshot.get98thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P99, name, snapshot.get99thPercentile(), timestamp);</b>
    -<b class="fc">&nbsp;        sendIfEnabled(P999, name, snapshot.get999thPercentile(), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void sendIfEnabled(MetricAttribute type, String name, double value, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void sendIfEnabled(MetricAttribute type, String name, long value, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        if (getDisabledMetricAttributes().contains(type)) {</b>
    -&nbsp;            return;
    -&nbsp;        }
    -<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, type.getCode())), format(value), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportCounter(String name, Counter counter, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        graphite.send(prefix(appendMetricAttribute(name, COUNT.getCode())), format(counter.getCount()), timestamp);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void reportGauge(String name, Gauge&lt;?&gt; gauge, long timestamp) throws IOException {
    -<b class="fc">&nbsp;        final String value = format(gauge.getValue());</b>
    -<b class="fc">&nbsp;        if (value != null) {</b>
    -<b class="fc">&nbsp;            graphite.send(prefix(name), value, timestamp);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String format(Object o) {
    -<b class="fc">&nbsp;        if (o instanceof Float) {</b>
    -<b class="fc">&nbsp;            return format(((Float) o).doubleValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Double) {</b>
    -<b class="fc">&nbsp;            return format(((Double) o).doubleValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Byte) {</b>
    -<b class="fc">&nbsp;            return format(((Byte) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Short) {</b>
    -<b class="fc">&nbsp;            return format(((Short) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Integer) {</b>
    -<b class="fc">&nbsp;            return format(((Integer) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Long) {</b>
    -<b class="fc">&nbsp;            return format(((Long) o).longValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Number) {</b>
    -<b class="nc">&nbsp;            return format(((Number) o).doubleValue());</b>
    -<b class="fc">&nbsp;        } else if (o instanceof Boolean) {</b>
    -<b class="fc">&nbsp;            return format(((Boolean) o) ? 1 : 0);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return null;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String prefix(String name) {
    -<b class="fc">&nbsp;        return MetricRegistry.name(prefix, name);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String appendMetricAttribute(String name, String metricAttribute){
    -<b class="fc">&nbsp;        if (addMetricAttributesAsTags){</b>
    -<b class="fc">&nbsp;            return name + &quot;;metricattribute=&quot; + metricAttribute;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return name + &quot;.&quot; + metricAttribute;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private String format(long n) {
    -<b class="fc">&nbsp;        return Long.toString(n);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String format(double v) {
    -<b class="fc">&nbsp;        return floatingPointFormatter.apply(v);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-4.html
    deleted file mode 100644
    index 97ab0418f2..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-4.html
    +++ /dev/null
    @@ -1,120 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteSanitize</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteSanitize (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteSanitize</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (2/3)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import java.util.regex.Pattern;
    -&nbsp;
    -<b class="nc">&nbsp;class GraphiteSanitize {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Pattern WHITESPACE = Pattern.compile(&quot;[\\s]+&quot;);</b>
    -&nbsp;    private static final String DASH = &quot;-&quot;;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Trims the string and replaces all whitespace characters with the provided symbol
    -&nbsp;     */
    -&nbsp;    static String sanitize(String string) {
    -<b class="fc">&nbsp;        return WHITESPACE.matcher(string.trim()).replaceAll(DASH);</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-5.html
    deleted file mode 100644
    index bab1a5c73a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-5.html
    +++ /dev/null
    @@ -1,222 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteUDP</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteUDP (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteUDP</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    53.8%
    -  </span>
    -  <span class="absValue">
    -    (7/13)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (17/34)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.net.InetAddress;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.channels.DatagramChannel;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A client to a Carbon server using unconnected UDP
    -&nbsp; */
    -&nbsp;public class GraphiteUDP implements GraphiteSender {
    -&nbsp;
    -&nbsp;    private final String hostname;
    -&nbsp;    private final int port;
    -&nbsp;    private InetSocketAddress address;
    -&nbsp;
    -<b class="fc">&nbsp;    private DatagramChannel datagramChannel = null;</b>
    -&nbsp;    private int failures;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which sends data to given address using UDP
    -&nbsp;     *
    -&nbsp;     * @param hostname The hostname of the Carbon server
    -&nbsp;     * @param port     The port of the Carbon server
    -&nbsp;     */
    -<b class="fc">&nbsp;    public GraphiteUDP(String hostname, int port) {</b>
    -<b class="fc">&nbsp;        this.hostname = hostname;</b>
    -<b class="fc">&nbsp;        this.port = port;</b>
    -<b class="fc">&nbsp;        this.address = null;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which sends data to given address using UDP
    -&nbsp;     *
    -&nbsp;     * @param address the address of the Carbon server
    -&nbsp;     */
    -<b class="nc">&nbsp;    public GraphiteUDP(InetSocketAddress address) {</b>
    -<b class="nc">&nbsp;        this.hostname = null;</b>
    -<b class="nc">&nbsp;        this.port = -1;</b>
    -<b class="nc">&nbsp;        this.address = address;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        // Resolve hostname
    -<b class="fc">&nbsp;        if (hostname != null) {</b>
    -<b class="fc">&nbsp;            address = new InetSocketAddress(InetAddress.getByName(hostname), port);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        datagramChannel = DatagramChannel.open();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return datagramChannel != null &amp;&amp; !datagramChannel.socket().isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            String str = sanitize(name) + &#39; &#39; + sanitize(value) + &#39; &#39; + Long.toString(timestamp) + &#39;\n&#39;;</b>
    -<b class="fc">&nbsp;            ByteBuffer byteBuffer = ByteBuffer.wrap(str.getBytes(UTF_8));</b>
    -<b class="fc">&nbsp;            datagramChannel.send(byteBuffer, address);</b>
    -<b class="fc">&nbsp;            this.failures = 0;</b>
    -<b class="nc">&nbsp;        } catch (IOException e) {</b>
    -<b class="nc">&nbsp;            failures++;</b>
    -<b class="nc">&nbsp;            throw e;</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="nc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -&nbsp;        // Nothing to do
    -<b class="nc">&nbsp;    }</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -<b class="nc">&nbsp;        if (datagramChannel != null) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                datagramChannel.close();</b>
    -&nbsp;            } finally {
    -<b class="nc">&nbsp;                datagramChannel = null;</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String s) {
    -<b class="fc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    DatagramChannel getDatagramChannel() {
    -<b class="nc">&nbsp;        return datagramChannel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void setDatagramChannel(DatagramChannel datagramChannel) {
    -<b class="fc">&nbsp;        this.datagramChannel = datagramChannel;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    InetSocketAddress getAddress() {
    -<b class="nc">&nbsp;        return address;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    void setAddress(InetSocketAddress address) {
    -<b class="fc">&nbsp;        this.address = address;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-6.html
    deleted file mode 100644
    index f09886697a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-6.html
    +++ /dev/null
    @@ -1,467 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > PickledGraphite</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: PickledGraphite (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">PickledGraphite</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    22.2%
    -  </span>
    -  <span class="absValue">
    -    (4/18)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    16.5%
    -  </span>
    -  <span class="absValue">
    -    (15/91)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">PickledGraphite$MetricTuple</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/4)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    21.1%
    -  </span>
    -  <span class="absValue">
    -    (4/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    15.8%
    -  </span>
    -  <span class="absValue">
    -    (15/95)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import javax.net.SocketFactory;
    -&nbsp;
    -&nbsp;import java.io.BufferedWriter;
    -&nbsp;import java.io.ByteArrayOutputStream;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.io.OutputStream;
    -&nbsp;import java.io.OutputStreamWriter;
    -&nbsp;import java.io.Writer;
    -&nbsp;import java.net.InetSocketAddress;
    -&nbsp;import java.net.Socket;
    -&nbsp;import java.net.UnknownHostException;
    -&nbsp;import java.nio.ByteBuffer;
    -&nbsp;import java.nio.charset.Charset;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.List;
    -&nbsp;
    -&nbsp;import static java.nio.charset.StandardCharsets.UTF_8;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A client to a Carbon server that sends all metrics after they have been pickled in configurable sized batches
    -&nbsp; */
    -&nbsp;public class PickledGraphite implements GraphiteSender {
    -&nbsp;
    -&nbsp;    static class MetricTuple {
    -&nbsp;        String name;
    -&nbsp;        long timestamp;
    -&nbsp;        String value;
    -&nbsp;
    -<b class="nc">&nbsp;        MetricTuple(String name, long timestamp, String value) {</b>
    -<b class="nc">&nbsp;            this.name = name;</b>
    -<b class="nc">&nbsp;            this.timestamp = timestamp;</b>
    -<b class="nc">&nbsp;            this.value = value;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Minimally necessary pickle opcodes.
    -&nbsp;     */
    -&nbsp;    private static final char
    -&nbsp;            MARK = &#39;(&#39;,
    -&nbsp;            STOP = &#39;.&#39;,
    -&nbsp;            LONG = &#39;L&#39;,
    -&nbsp;            STRING = &#39;S&#39;,
    -&nbsp;            APPEND = &#39;a&#39;,
    -&nbsp;            LIST = &#39;l&#39;,
    -&nbsp;            TUPLE = &#39;t&#39;,
    -&nbsp;            QUOTE = &#39;\&#39;&#39;,
    -&nbsp;            LF = &#39;\n&#39;;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(PickledGraphite.class);</b>
    -&nbsp;    private final static int DEFAULT_BATCH_SIZE = 100;
    -&nbsp;
    -&nbsp;    private int batchSize;
    -&nbsp;    // graphite expects a python-pickled list of nested tuples.
    -<b class="fc">&nbsp;    private List&lt;MetricTuple&gt; metrics = new ArrayList&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    private final String hostname;
    -&nbsp;    private final int port;
    -&nbsp;    private final InetSocketAddress address;
    -&nbsp;    private final SocketFactory socketFactory;
    -&nbsp;    private final Charset charset;
    -&nbsp;
    -&nbsp;    private Socket socket;
    -&nbsp;    private Writer writer;
    -&nbsp;    private int failures;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
    -&nbsp;     * to a batchSize of 100
    -&nbsp;     *
    -&nbsp;     * @param address the address of the Carbon server
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(InetSocketAddress address) {
    -<b class="nc">&nbsp;        this(address, DEFAULT_BATCH_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param address   the address of the Carbon server
    -&nbsp;     * @param batchSize how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(InetSocketAddress address, int batchSize) {
    -<b class="nc">&nbsp;        this(address, SocketFactory.getDefault(), batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, int batchSize) {
    -<b class="nc">&nbsp;        this(address, socketFactory, UTF_8, batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given character set.
    -&nbsp;     *
    -&nbsp;     * @param address       the address of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -<b class="fc">&nbsp;    public PickledGraphite(InetSocketAddress address, SocketFactory socketFactory, Charset charset, int batchSize) {</b>
    -<b class="fc">&nbsp;        this.address = address;</b>
    -<b class="fc">&nbsp;        this.hostname = null;</b>
    -<b class="fc">&nbsp;        this.port = -1;</b>
    -<b class="fc">&nbsp;        this.socketFactory = socketFactory;</b>
    -<b class="fc">&nbsp;        this.charset = charset;</b>
    -<b class="fc">&nbsp;        this.batchSize = batchSize;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}. This defaults
    -&nbsp;     * to a batchSize of 100
    -&nbsp;     *
    -&nbsp;     * @param hostname the hostname of the Carbon server
    -&nbsp;     * @param port     the port of the Carbon server
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(String hostname, int port) {
    -<b class="nc">&nbsp;        this(hostname, port, DEFAULT_BATCH_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address using the default {@link SocketFactory}.
    -&nbsp;     *
    -&nbsp;     * @param hostname  the hostname of the Carbon server
    -&nbsp;     * @param port      the port of the Carbon server
    -&nbsp;     * @param batchSize how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(String hostname, int port, int batchSize) {
    -<b class="nc">&nbsp;        this(hostname, port, SocketFactory.getDefault(), batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory.
    -&nbsp;     *
    -&nbsp;     * @param hostname      the hostname of the Carbon server
    -&nbsp;     * @param port          the port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -&nbsp;    public PickledGraphite(String hostname, int port, SocketFactory socketFactory, int batchSize) {
    -<b class="nc">&nbsp;        this(hostname, port, socketFactory, UTF_8, batchSize);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new client which connects to the given address and socket factory using the given character set.
    -&nbsp;     *
    -&nbsp;     * @param hostname      the hostname of the Carbon server
    -&nbsp;     * @param port          the port of the Carbon server
    -&nbsp;     * @param socketFactory the socket factory
    -&nbsp;     * @param charset       the character set used by the server
    -&nbsp;     * @param batchSize     how many metrics are bundled into a single pickle request to graphite
    -&nbsp;     */
    -<b class="nc">&nbsp;    public PickledGraphite(String hostname, int port, SocketFactory socketFactory, Charset charset, int batchSize) {</b>
    -<b class="nc">&nbsp;        this.address = null;</b>
    -<b class="nc">&nbsp;        this.hostname = hostname;</b>
    -<b class="nc">&nbsp;        this.port = port;</b>
    -<b class="nc">&nbsp;        this.socketFactory = socketFactory;</b>
    -<b class="nc">&nbsp;        this.charset = charset;</b>
    -<b class="nc">&nbsp;        this.batchSize = batchSize;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void connect() throws IllegalStateException, IOException {
    -<b class="fc">&nbsp;        if (isConnected()) {</b>
    -<b class="nc">&nbsp;            throw new IllegalStateException(&quot;Already connected&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        InetSocketAddress address = this.address;</b>
    -<b class="fc">&nbsp;        if (address == null) {</b>
    -<b class="nc">&nbsp;            address = new InetSocketAddress(hostname, port);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        if (address.getAddress() == null) {</b>
    -<b class="fc">&nbsp;            throw new UnknownHostException(address.getHostName());</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="nc">&nbsp;        this.socket = socketFactory.createSocket(address.getAddress(), address.getPort());</b>
    -<b class="nc">&nbsp;        this.writer = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), charset));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public boolean isConnected() {
    -<b class="fc">&nbsp;        return socket != null &amp;&amp; socket.isConnected() &amp;&amp; !socket.isClosed();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Convert the metric to a python tuple of the form:
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * (timestamp, (name, value))
    -&nbsp;     * &lt;p&gt;
    -&nbsp;     * And add it to the list of metrics. If we reach the batch size, write them out.
    -&nbsp;     *
    -&nbsp;     * @param name      the name of the metric
    -&nbsp;     * @param value     the value of the metric
    -&nbsp;     * @param timestamp the timestamp of the metric
    -&nbsp;     * @throws IOException if there was an error sending the metric
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void send(String name, String value, long timestamp) throws IOException {
    -<b class="nc">&nbsp;        metrics.add(new MetricTuple(sanitize(name), timestamp, sanitize(value)));</b>
    -&nbsp;
    -<b class="nc">&nbsp;        if (metrics.size() &gt;= batchSize) {</b>
    -<b class="nc">&nbsp;            writeMetrics();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void flush() throws IOException {
    -<b class="nc">&nbsp;        writeMetrics();</b>
    -<b class="nc">&nbsp;        if (writer != null) {</b>
    -<b class="nc">&nbsp;            writer.flush();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void close() throws IOException {
    -&nbsp;        try {
    -<b class="nc">&nbsp;            flush();</b>
    -<b class="nc">&nbsp;            if (writer != null) {</b>
    -<b class="nc">&nbsp;                writer.close();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (IOException ex) {</b>
    -<b class="nc">&nbsp;            if (socket != null) {</b>
    -<b class="nc">&nbsp;                socket.close();</b>
    -&nbsp;            }
    -&nbsp;        } finally {
    -<b class="nc">&nbsp;            this.socket = null;</b>
    -<b class="nc">&nbsp;            this.writer = null;</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public int getFailures() {
    -<b class="nc">&nbsp;        return failures;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * 1. Run the pickler script to package all the pending metrics into a single message
    -&nbsp;     * 2. Send the message to graphite
    -&nbsp;     * 3. Clear out the list of metrics
    -&nbsp;     */
    -&nbsp;    private void writeMetrics() throws IOException {
    -<b class="nc">&nbsp;        if (metrics.size() &gt; 0) {</b>
    -&nbsp;            try {
    -<b class="nc">&nbsp;                byte[] payload = pickleMetrics(metrics);</b>
    -<b class="nc">&nbsp;                byte[] header = ByteBuffer.allocate(4).putInt(payload.length).array();</b>
    -&nbsp;
    -&nbsp;                @SuppressWarnings(&quot;resource&quot;)
    -<b class="nc">&nbsp;                OutputStream outputStream = socket.getOutputStream();</b>
    -<b class="nc">&nbsp;                outputStream.write(header);</b>
    -<b class="nc">&nbsp;                outputStream.write(payload);</b>
    -<b class="nc">&nbsp;                outputStream.flush();</b>
    -&nbsp;
    -<b class="nc">&nbsp;                if (LOGGER.isDebugEnabled()) {</b>
    -<b class="nc">&nbsp;                    LOGGER.debug(&quot;Wrote {} metrics&quot;, metrics.size());</b>
    -&nbsp;                }
    -<b class="nc">&nbsp;            } catch (IOException e) {</b>
    -<b class="nc">&nbsp;                this.failures++;</b>
    -<b class="nc">&nbsp;                throw e;</b>
    -&nbsp;            } finally {
    -&nbsp;                // if there was an error, we might miss some data. for now, drop those on the floor and
    -&nbsp;                // try to keep going.
    -<b class="nc">&nbsp;                metrics.clear();</b>
    -<b class="nc">&nbsp;            }</b>
    -&nbsp;
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * See: http://readthedocs.org/docs/graphite/en/1.0/feeding-carbon.html
    -&nbsp;     *
    -&nbsp;     * @throws IOException shouldn&#39;t happen because we write to memory.
    -&nbsp;     */
    -&nbsp;    byte[] pickleMetrics(List&lt;MetricTuple&gt; metrics) throws IOException {
    -&nbsp;        // Extremely rough estimate of 75 bytes per message
    -<b class="nc">&nbsp;        ByteArrayOutputStream out = new ByteArrayOutputStream(metrics.size() * 75);</b>
    -<b class="nc">&nbsp;        Writer pickled = new OutputStreamWriter(out, charset);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        pickled.append(MARK);</b>
    -<b class="nc">&nbsp;        pickled.append(LIST);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        for (MetricTuple tuple : metrics) {</b>
    -&nbsp;            // start the outer tuple
    -<b class="nc">&nbsp;            pickled.append(MARK);</b>
    -&nbsp;
    -&nbsp;            // the metric name is a string.
    -<b class="nc">&nbsp;            pickled.append(STRING);</b>
    -&nbsp;            // the single quotes are to match python&#39;s repr(&quot;abcd&quot;)
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(tuple.name);</b>
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(LF);</b>
    -&nbsp;
    -&nbsp;            // start the inner tuple
    -<b class="nc">&nbsp;            pickled.append(MARK);</b>
    -&nbsp;
    -&nbsp;            // timestamp is a long
    -<b class="nc">&nbsp;            pickled.append(LONG);</b>
    -<b class="nc">&nbsp;            pickled.append(Long.toString(tuple.timestamp));</b>
    -&nbsp;            // the trailing L is to match python&#39;s repr(long(1234))
    -<b class="nc">&nbsp;            pickled.append(LONG);</b>
    -<b class="nc">&nbsp;            pickled.append(LF);</b>
    -&nbsp;
    -&nbsp;            // and the value is a string.
    -<b class="nc">&nbsp;            pickled.append(STRING);</b>
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(tuple.value);</b>
    -<b class="nc">&nbsp;            pickled.append(QUOTE);</b>
    -<b class="nc">&nbsp;            pickled.append(LF);</b>
    -&nbsp;
    -<b class="nc">&nbsp;            pickled.append(TUPLE); // inner close</b>
    -<b class="nc">&nbsp;            pickled.append(TUPLE); // outer close</b>
    -&nbsp;
    -<b class="nc">&nbsp;            pickled.append(APPEND);</b>
    -<b class="nc">&nbsp;        }</b>
    -&nbsp;
    -&nbsp;        // every pickle ends with STOP
    -<b class="nc">&nbsp;        pickled.append(STOP);</b>
    -&nbsp;
    -<b class="nc">&nbsp;        pickled.flush();</b>
    -&nbsp;
    -<b class="nc">&nbsp;        return out.toByteArray();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected String sanitize(String s) {
    -<b class="nc">&nbsp;        return GraphiteSanitize.sanitize(s);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-7.html b/metrics-complete-report-initial-htmlReport/ns-7/sources/source-7.html
    deleted file mode 100644
    index 4d9f426a59..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-7/sources/source-7.html
    +++ /dev/null
    @@ -1,113 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > GraphiteSender</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.graphite</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: GraphiteSender (com.codahale.metrics.graphite)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -<tr>
    -  <td class="name">GraphiteSender</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.graphite;
    -&nbsp;
    -&nbsp;import java.io.Closeable;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;public interface GraphiteSender extends Closeable {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Connects to the server.
    -&nbsp;     *
    -&nbsp;     * @throws IllegalStateException if the client is already connected
    -&nbsp;     * @throws IOException           if there is an error connecting
    -&nbsp;     */
    -&nbsp;    void connect() throws IllegalStateException, IOException;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Sends the given measurement to the server.
    -&nbsp;     *
    -&nbsp;     * @param name      the name of the metric
    -&nbsp;     * @param value     the value of the metric
    -&nbsp;     * @param timestamp the timestamp of the metric
    -&nbsp;     * @throws IOException if there was an error sending the metric
    -&nbsp;     */
    -&nbsp;    void send(String name, String value, long timestamp) throws IOException;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Flushes buffer, if applicable
    -&nbsp;     *
    -&nbsp;     * @throws IOException if there was an error during flushing metrics to the socket
    -&nbsp;     */
    -&nbsp;    void flush() throws IOException;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns true if ready to send data
    -&nbsp;     */
    -&nbsp;    boolean isConnected();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the number of failed writes to the server.
    -&nbsp;     *
    -&nbsp;     * @return the number of failed writes to the server
    -&nbsp;     */
    -&nbsp;    int getFailures();
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index.html b/metrics-complete-report-initial-htmlReport/ns-8/index.html
    deleted file mode 100644
    index 94518966c0..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-8/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 134c144710..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index d15838ee7f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 6b02febb2a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 14cb354d76..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 04ad002d4f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 0b1a1840da..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index a954965094..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 83905741fd..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 3ae74420ce..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-8/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (8/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.4%
    -  </span>
    -  <span class="absValue">
    -    (74/76)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    91.6%
    -  </span>
    -  <span class="absValue">
    -    (217/237)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">SharedHealthCheckRegistries</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">HealthCheckRegistry</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">HealthCheckFilter</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">AsyncHealthCheckDecorator</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-8/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-8/sources/source-1.html
    deleted file mode 100644
    index e1eceadf9e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-8/sources/source-1.html
    +++ /dev/null
    @@ -1,184 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > AsyncHealthCheckDecorator</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: AsyncHealthCheckDecorator (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">AsyncHealthCheckDecorator</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (31/31)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;import com.codahale.metrics.health.annotation.Async;
    -&nbsp;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.ScheduledFuture;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A health check decorator to manage asynchronous executions.
    -&nbsp; */
    -&nbsp;public class AsyncHealthCheckDecorator extends HealthCheck implements Runnable {
    -&nbsp;    private static final String NO_RESULT_YET_MESSAGE = &quot;Waiting for first asynchronous check result.&quot;;
    -&nbsp;    private final HealthCheck healthCheck;
    -&nbsp;    private final ScheduledFuture&lt;?&gt; future;
    -&nbsp;    private final long healthyTtl;
    -&nbsp;    private final Clock clock;
    -&nbsp;    private volatile Result result;
    -&nbsp;
    -<b class="fc">&nbsp;    AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService, Clock clock) {</b>
    -<b class="fc">&nbsp;        check(healthCheck != null, &quot;healthCheck cannot be null&quot;);</b>
    -<b class="fc">&nbsp;        check(executorService != null, &quot;executorService cannot be null&quot;);</b>
    -<b class="fc">&nbsp;        Async async = healthCheck.getClass().getAnnotation(Async.class);</b>
    -<b class="fc">&nbsp;        check(async != null, &quot;healthCheck must contain Async annotation&quot;);</b>
    -<b class="fc">&nbsp;        check(async.period() &gt; 0, &quot;period cannot be less than or equal to zero&quot;);</b>
    -<b class="fc">&nbsp;        check(async.initialDelay() &gt;= 0, &quot;initialDelay cannot be less than zero&quot;);</b>
    -&nbsp;
    -&nbsp;
    -<b class="fc">&nbsp;        this.clock = clock;</b>
    -<b class="fc">&nbsp;        this.healthCheck = healthCheck;</b>
    -<b class="fc">&nbsp;        this.healthyTtl = async.unit().toMillis(async.healthyTtl() &lt;= 0 ? 2 * async.period() : async.healthyTtl());</b>
    -<b class="fc">&nbsp;        result = Async.InitialState.HEALTHY.equals(async.initialState()) ? Result.healthy(NO_RESULT_YET_MESSAGE) :</b>
    -<b class="fc">&nbsp;                Result.unhealthy(NO_RESULT_YET_MESSAGE);</b>
    -<b class="fc">&nbsp;        if (Async.ScheduleType.FIXED_RATE.equals(async.scheduleType())) {</b>
    -<b class="fc">&nbsp;            future = executorService.scheduleAtFixedRate(this, async.initialDelay(), async.period(), async.unit());</b>
    -&nbsp;        } else {
    -<b class="fc">&nbsp;            future = executorService.scheduleWithFixedDelay(this, async.initialDelay(), async.period(), async.unit());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    AsyncHealthCheckDecorator(HealthCheck healthCheck, ScheduledExecutorService executorService) {
    -<b class="fc">&nbsp;        this(healthCheck, executorService, Clock.defaultClock());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void run() {
    -<b class="fc">&nbsp;        result = healthCheck.execute();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected Result check() throws Exception {
    -<b class="fc">&nbsp;        long expiration = clock.getTime() - result.getTime() - healthyTtl;</b>
    -<b class="fc">&nbsp;        if (expiration &gt; 0) {</b>
    -<b class="fc">&nbsp;            return Result.builder()</b>
    -<b class="fc">&nbsp;                    .unhealthy()</b>
    -<b class="fc">&nbsp;                    .usingClock(clock)</b>
    -<b class="fc">&nbsp;                    .withMessage(&quot;Result was %s but it expired %d milliseconds ago&quot;,</b>
    -<b class="fc">&nbsp;                            result.isHealthy() ? &quot;healthy&quot; : &quot;unhealthy&quot;,</b>
    -<b class="fc">&nbsp;                            expiration)</b>
    -<b class="fc">&nbsp;                    .build();</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        return result;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    boolean tearDown() {
    -<b class="fc">&nbsp;        return future.cancel(true);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public HealthCheck getHealthCheck() {
    -<b class="fc">&nbsp;        return healthCheck;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static void check(boolean expression, String message) {
    -<b class="fc">&nbsp;        if (!expression) {</b>
    -<b class="fc">&nbsp;            throw new IllegalArgumentException(message);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-8/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-8/sources/source-2.html
    deleted file mode 100644
    index fc788048f3..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-8/sources/source-2.html
    +++ /dev/null
    @@ -1,546 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheck</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheck (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheck</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (9/9)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheck$1</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$MockitoMock$LDDApxy9</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$MockitoMock$LDDApxy9$auxiliary$cPDb7ChG</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$MockitoMock$LDDApxy9$auxiliary$xlB1E1HC</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$Result</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.7%
    -  </span>
    -  <span class="absValue">
    -    (22/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.5%
    -  </span>
    -  <span class="absValue">
    -    (49/58)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheck$ResultBuilder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    97.2%
    -  </span>
    -  <span class="absValue">
    -    (35/36)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.6%
    -  </span>
    -  <span class="absValue">
    -    (78/88)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Clock;
    -&nbsp;
    -&nbsp;import java.time.Instant;
    -&nbsp;import java.time.ZoneId;
    -&nbsp;import java.time.ZonedDateTime;
    -&nbsp;import java.time.format.DateTimeFormatter;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.LinkedHashMap;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A health check for a component of your application.
    -&nbsp; */
    -<b class="fc">&nbsp;public abstract class HealthCheck {</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * The result of a {@link HealthCheck} being run. It can be healthy (with an optional message and optional details)
    -&nbsp;     * or unhealthy (with either an error message or a thrown exception and optional details).
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class Result {</b>
    -<b class="fc">&nbsp;        private static final DateTimeFormatter DATE_FORMAT_PATTERN =</b>
    -<b class="fc">&nbsp;                DateTimeFormatter.ofPattern(&quot;yyyy-MM-dd&#39;T&#39;HH:mm:ss.SSSXXX&quot;);</b>
    -&nbsp;        private static final int PRIME = 31;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a healthy {@link Result} with no additional message.
    -&nbsp;         *
    -&nbsp;         * @return a healthy {@link Result} with no additional message
    -&nbsp;         */
    -&nbsp;        public static Result healthy() {
    -<b class="fc">&nbsp;            return new Result(true, null, null);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a healthy {@link Result} with an additional message.
    -&nbsp;         *
    -&nbsp;         * @param message an informative message
    -&nbsp;         * @return a healthy {@link Result} with an additional message
    -&nbsp;         */
    -&nbsp;        public static Result healthy(String message) {
    -<b class="fc">&nbsp;            return new Result(true, message, null);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a healthy {@link Result} with a formatted message.
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    -&nbsp;         *
    -&nbsp;         * @param message a message format\\
    -&nbsp;         * @param args    the arguments apply to the message format
    -&nbsp;         * @return a healthy {@link Result} with an additional message
    -&nbsp;         * @see String#format(String, Object...)
    -&nbsp;         */
    -&nbsp;        public static Result healthy(String message, Object... args) {
    -<b class="fc">&nbsp;            return healthy(String.format(message, args));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns an unhealthy {@link Result} with the given message.
    -&nbsp;         *
    -&nbsp;         * @param message an informative message describing how the health check failed
    -&nbsp;         * @return an unhealthy {@link Result} with the given message
    -&nbsp;         */
    -&nbsp;        public static Result unhealthy(String message) {
    -<b class="fc">&nbsp;            return new Result(false, message, null);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns an unhealthy {@link Result} with a formatted message.
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    -&nbsp;         *
    -&nbsp;         * @param message a message format
    -&nbsp;         * @param args    the arguments apply to the message format
    -&nbsp;         * @return an unhealthy {@link Result} with an additional message
    -&nbsp;         * @see String#format(String, Object...)
    -&nbsp;         */
    -&nbsp;        public static Result unhealthy(String message, Object... args) {
    -<b class="fc">&nbsp;            return unhealthy(String.format(message, args));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns an unhealthy {@link Result} with the given error.
    -&nbsp;         *
    -&nbsp;         * @param error an exception thrown during the health check
    -&nbsp;         * @return an unhealthy {@link Result} with the given {@code error}
    -&nbsp;         */
    -&nbsp;        public static Result unhealthy(Throwable error) {
    -<b class="fc">&nbsp;            return new Result(false, error.getMessage(), error);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns a new {@link ResultBuilder}
    -&nbsp;         *
    -&nbsp;         * @return the {@link ResultBuilder}
    -&nbsp;         */
    -&nbsp;        public static ResultBuilder builder() {
    -<b class="fc">&nbsp;            return new ResultBuilder();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private final boolean healthy;
    -&nbsp;        private final String message;
    -&nbsp;        private final Throwable error;
    -&nbsp;        private final Map&lt;String, Object&gt; details;
    -&nbsp;        private final long time;
    -&nbsp;
    -&nbsp;        private long duration; // Calculated field
    -&nbsp;
    -&nbsp;        private Result(boolean isHealthy, String message, Throwable error) {
    -<b class="fc">&nbsp;            this(isHealthy, message, error, null, Clock.defaultClock());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Result(ResultBuilder builder) {
    -<b class="fc">&nbsp;            this(builder.healthy, builder.message, builder.error, builder.details, builder.clock);</b>
    -&nbsp;        }
    -&nbsp;
    -<b class="fc">&nbsp;        private Result(boolean isHealthy, String message, Throwable error, Map&lt;String, Object&gt; details, Clock clock) {</b>
    -<b class="fc">&nbsp;            this.healthy = isHealthy;</b>
    -<b class="fc">&nbsp;            this.message = message;</b>
    -<b class="fc">&nbsp;            this.error = error;</b>
    -<b class="fc">&nbsp;            this.details = details == null ? null : Collections.unmodifiableMap(details);</b>
    -<b class="fc">&nbsp;            this.time = clock.getTime();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns {@code true} if the result indicates the component is healthy; {@code false}
    -&nbsp;         * otherwise.
    -&nbsp;         *
    -&nbsp;         * @return {@code true} if the result indicates the component is healthy
    -&nbsp;         */
    -&nbsp;        public boolean isHealthy() {
    -<b class="fc">&nbsp;            return healthy;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns any additional message for the result, or {@code null} if the result has no
    -&nbsp;         * message.
    -&nbsp;         *
    -&nbsp;         * @return any additional message for the result, or {@code null}
    -&nbsp;         */
    -&nbsp;        public String getMessage() {
    -<b class="fc">&nbsp;            return message;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns any exception for the result, or {@code null} if the result has no exception.
    -&nbsp;         *
    -&nbsp;         * @return any exception for the result, or {@code null}
    -&nbsp;         */
    -&nbsp;        public Throwable getError() {
    -<b class="fc">&nbsp;            return error;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the timestamp when the result was created as a formatted String.
    -&nbsp;         *
    -&nbsp;         * @return a formatted timestamp
    -&nbsp;         */
    -&nbsp;        public String getTimestamp() {
    -<b class="fc">&nbsp;            Instant currentInstant = Instant.ofEpochMilli(time);</b>
    -<b class="fc">&nbsp;            ZonedDateTime zonedDateTime = ZonedDateTime.ofInstant(currentInstant, ZoneId.systemDefault());</b>
    -<b class="fc">&nbsp;            return DATE_FORMAT_PATTERN.format(zonedDateTime);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the time when the result was created, in milliseconds since Epoch
    -&nbsp;         *
    -&nbsp;         * @return the time when the result was created
    -&nbsp;         */
    -&nbsp;        public long getTime() {
    -<b class="fc">&nbsp;            return time;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Returns the duration in milliseconds that the healthcheck took to run
    -&nbsp;         *
    -&nbsp;         * @return the duration
    -&nbsp;         */
    -&nbsp;        public long getDuration() {
    -<b class="fc">&nbsp;            return duration;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Sets the duration in milliseconds. This will indicate the time it took to run the individual healthcheck
    -&nbsp;         *
    -&nbsp;         * @param duration The duration in milliseconds
    -&nbsp;         */
    -&nbsp;        public void setDuration(long duration) {
    -<b class="fc">&nbsp;            this.duration = duration;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Map&lt;String, Object&gt; getDetails() {
    -<b class="fc">&nbsp;            return details;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public boolean equals(Object o) {
    -<b class="fc">&nbsp;            if (this == o) {</b>
    -<b class="fc">&nbsp;                return true;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (o == null || getClass() != o.getClass()) {</b>
    -<b class="nc">&nbsp;                return false;</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            final Result result = (Result) o;</b>
    -<b class="fc">&nbsp;            return healthy == result.healthy &amp;&amp;</b>
    -<b class="nc">&nbsp;                    !(error != null ? !error.equals(result.error) : result.error != null) &amp;&amp;</b>
    -<b class="fc">&nbsp;                    !(message != null ? !message.equals(result.message) : result.message != null) &amp;&amp;</b>
    -&nbsp;                    time == result.time;
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public int hashCode() {
    -<b class="nc">&nbsp;            int result = healthy ? 1 : 0;</b>
    -<b class="nc">&nbsp;            result = PRIME * result + (message != null ? message.hashCode() : 0);</b>
    -<b class="nc">&nbsp;            result = PRIME * result + (error != null ? error.hashCode() : 0);</b>
    -<b class="nc">&nbsp;            result = PRIME * result + (Long.hashCode(time));</b>
    -<b class="nc">&nbsp;            return result;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public String toString() {
    -<b class="fc">&nbsp;            final StringBuilder builder = new StringBuilder(&quot;Result{isHealthy=&quot;);</b>
    -<b class="fc">&nbsp;            builder.append(healthy);</b>
    -<b class="fc">&nbsp;            if (message != null) {</b>
    -<b class="nc">&nbsp;                builder.append(&quot;, message=&quot;).append(message);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            if (error != null) {</b>
    -<b class="nc">&nbsp;                builder.append(&quot;, error=&quot;).append(error);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            builder.append(&quot;, duration=&quot;).append(duration);</b>
    -<b class="fc">&nbsp;            builder.append(&quot;, timestamp=&quot;).append(getTimestamp());</b>
    -<b class="fc">&nbsp;            if (details != null) {</b>
    -<b class="fc">&nbsp;                for (Map.Entry&lt;String, Object&gt; e : details.entrySet()) {</b>
    -<b class="fc">&nbsp;                    builder.append(&quot;, &quot;);</b>
    -<b class="fc">&nbsp;                    builder.append(e.getKey())</b>
    -<b class="fc">&nbsp;                            .append(&quot;=&quot;)</b>
    -<b class="fc">&nbsp;                            .append(String.valueOf(e.getValue()));</b>
    -<b class="fc">&nbsp;                }</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            builder.append(&#39;}&#39;);</b>
    -<b class="fc">&nbsp;            return builder.toString();</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * This a convenient builder for an {@link HealthCheck.Result}. It can be health (with optional message and detail)
    -&nbsp;     * or unhealthy (with optional message, error and detail)
    -&nbsp;     */
    -<b class="fc">&nbsp;    public static class ResultBuilder {</b>
    -&nbsp;        private boolean healthy;
    -&nbsp;        private String message;
    -&nbsp;        private Throwable error;
    -&nbsp;        private Map&lt;String, Object&gt; details;
    -&nbsp;        private Clock clock;
    -&nbsp;
    -<b class="fc">&nbsp;        protected ResultBuilder() {</b>
    -<b class="fc">&nbsp;            this.healthy = true;</b>
    -<b class="fc">&nbsp;            this.details = new LinkedHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;            this.clock = Clock.defaultClock();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure an healthy result
    -&nbsp;         *
    -&nbsp;         * @return this builder with healthy status
    -&nbsp;         */
    -&nbsp;        public ResultBuilder healthy() {
    -<b class="fc">&nbsp;            this.healthy = true;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure an unhealthy result
    -&nbsp;         *
    -&nbsp;         * @return this builder with unhealthy status
    -&nbsp;         */
    -&nbsp;        public ResultBuilder unhealthy() {
    -<b class="fc">&nbsp;            this.healthy = false;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure an unhealthy result with an {@code error}
    -&nbsp;         *
    -&nbsp;         * @param error the error
    -&nbsp;         * @return this builder with the given error
    -&nbsp;         */
    -&nbsp;        public ResultBuilder unhealthy(Throwable error) {
    -<b class="fc">&nbsp;            this.error = error;</b>
    -<b class="fc">&nbsp;            return this.unhealthy().withMessage(error.getMessage());</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Set an optional message
    -&nbsp;         *
    -&nbsp;         * @param message an informative message
    -&nbsp;         * @return this builder with the given {@code message}
    -&nbsp;         */
    -&nbsp;        public ResultBuilder withMessage(String message) {
    -<b class="fc">&nbsp;            this.message = message;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Set an optional formatted message
    -&nbsp;         * &lt;p&gt;
    -&nbsp;         * Message formatting follows the same rules as {@link String#format(String, Object...)}.
    -&nbsp;         *
    -&nbsp;         * @param message a message format
    -&nbsp;         * @param args    the arguments apply to the message format
    -&nbsp;         * @return this builder with the given formatted {@code message}
    -&nbsp;         * @see String#format(String, Object...)
    -&nbsp;         */
    -&nbsp;        public ResultBuilder withMessage(String message, Object... args) {
    -<b class="fc">&nbsp;            return withMessage(String.format(message, args));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Add an optional detail
    -&nbsp;         *
    -&nbsp;         * @param key  a key for this detail
    -&nbsp;         * @param data an object representing the detail data
    -&nbsp;         * @return this builder with the given detail added
    -&nbsp;         */
    -&nbsp;        public ResultBuilder withDetail(String key, Object data) {
    -<b class="fc">&nbsp;            if (this.details == null) {</b>
    -<b class="nc">&nbsp;                this.details = new LinkedHashMap&lt;&gt;();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            this.details.put(key, data);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        /**
    -&nbsp;         * Configure this {@link ResultBuilder} to use the given {@code clock} instead of the default clock.
    -&nbsp;         * If not specified, the default clock is {@link Clock#defaultClock()}.
    -&nbsp;         *
    -&nbsp;         * @param clock the {@link Clock} to use when generating the health check timestamp (useful for unit testing)
    -&nbsp;         * @return this builder configured to use the given {@code clock}
    -&nbsp;         */
    -&nbsp;        public ResultBuilder usingClock(Clock clock) {
    -<b class="fc">&nbsp;            this.clock = clock;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Result build() {
    -<b class="fc">&nbsp;            return new Result(this);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Perform a check of the application component.
    -&nbsp;     *
    -&nbsp;     * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
    -&nbsp;     * Result} with a descriptive error message or exception
    -&nbsp;     * @throws Exception if there is an unhandled error during the health check; this will result in
    -&nbsp;     *                   a failed health check
    -&nbsp;     */
    -&nbsp;    protected abstract Result check() throws Exception;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Executes the health check, catching and handling any exceptions raised by {@link #check()}.
    -&nbsp;     *
    -&nbsp;     * @return if the component is healthy, a healthy {@link Result}; otherwise, an unhealthy {@link
    -&nbsp;     * Result} with a descriptive error message or exception
    -&nbsp;     */
    -&nbsp;    public Result execute() {
    -<b class="fc">&nbsp;        long start = clock().getTick();</b>
    -&nbsp;        Result result;
    -&nbsp;        try {
    -<b class="fc">&nbsp;            result = check();</b>
    -<b class="fc">&nbsp;        } catch (Exception e) {</b>
    -<b class="fc">&nbsp;            result = Result.unhealthy(e);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        result.setDuration(TimeUnit.MILLISECONDS.convert(clock().getTick() - start, TimeUnit.NANOSECONDS));</b>
    -<b class="fc">&nbsp;        return result;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    protected Clock clock() {
    -<b class="fc">&nbsp;        return Clock.defaultClock();</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-8/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-8/sources/source-3.html
    deleted file mode 100644
    index c14c96cbb2..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-8/sources/source-3.html
    +++ /dev/null
    @@ -1,125 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckFilter</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckFilter (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckFilter</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A filter used to determine whether or not a health check should be reported.
    -&nbsp; */
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface HealthCheckFilter {
    -&nbsp;    /**
    -&nbsp;     * Matches all health checks, regardless of type or name.
    -&nbsp;     */
    -<b class="fc">&nbsp;    HealthCheckFilter ALL = (name, healthCheck) -&gt; true;</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns {@code true} if the health check matches the filter; {@code false} otherwise.
    -&nbsp;     *
    -&nbsp;     * @param name        the health check&#39;s name
    -&nbsp;     * @param healthCheck the health check
    -&nbsp;     * @return {@code true} if the health check matches the filter
    -&nbsp;     */
    -&nbsp;    boolean matches(String name, HealthCheck healthCheck);
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-8/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-8/sources/source-4.html
    deleted file mode 100644
    index 8676d96dc4..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-8/sources/source-4.html
    +++ /dev/null
    @@ -1,418 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckRegistry</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckRegistry (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HealthCheckRegistry</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    94.7%
    -  </span>
    -  <span class="absValue">
    -    (18/19)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.7%
    -  </span>
    -  <span class="absValue">
    -    (70/78)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistry$NamedThreadFactory</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.2%
    -  </span>
    -  <span class="absValue">
    -    (20/21)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    89.8%
    -  </span>
    -  <span class="absValue">
    -    (79/88)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.annotation.Async;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.NoSuchElementException;
    -&nbsp;import java.util.SortedMap;
    -&nbsp;import java.util.SortedSet;
    -&nbsp;import java.util.TreeMap;
    -&nbsp;import java.util.TreeSet;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.CopyOnWriteArrayList;
    -&nbsp;import java.util.concurrent.ExecutorService;
    -&nbsp;import java.util.concurrent.Future;
    -&nbsp;import java.util.concurrent.ScheduledExecutorService;
    -&nbsp;import java.util.concurrent.ScheduledThreadPoolExecutor;
    -&nbsp;import java.util.concurrent.ThreadFactory;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;import java.util.concurrent.atomic.AtomicInteger;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.health.HealthCheck.Result;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A registry for health checks.
    -&nbsp; */
    -&nbsp;public class HealthCheckRegistry {
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(HealthCheckRegistry.class);</b>
    -&nbsp;    private static final int ASYNC_EXECUTOR_POOL_SIZE = 2;
    -&nbsp;
    -&nbsp;    private final ConcurrentMap&lt;String, HealthCheck&gt; healthChecks;
    -&nbsp;    private final List&lt;HealthCheckRegistryListener&gt; listeners;
    -&nbsp;    private final ScheduledExecutorService asyncExecutorService;
    -<b class="fc">&nbsp;    private final Object lock = new Object();</b>
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    -&nbsp;     */
    -&nbsp;    public HealthCheckRegistry() {
    -<b class="fc">&nbsp;        this(ASYNC_EXECUTOR_POOL_SIZE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    -&nbsp;     *
    -&nbsp;     * @param asyncExecutorPoolSize core pool size for async health check executions
    -&nbsp;     */
    -&nbsp;    public HealthCheckRegistry(int asyncExecutorPoolSize) {
    -<b class="fc">&nbsp;        this(createExecutorService(asyncExecutorPoolSize));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new {@link HealthCheckRegistry}.
    -&nbsp;     *
    -&nbsp;     * @param asyncExecutorService executor service for async health check executions
    -&nbsp;     */
    -<b class="fc">&nbsp;    public HealthCheckRegistry(ScheduledExecutorService asyncExecutorService) {</b>
    -<b class="fc">&nbsp;        this.healthChecks = new ConcurrentHashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        this.listeners = new CopyOnWriteArrayList&lt;&gt;();</b>
    -<b class="fc">&nbsp;        this.asyncExecutorService = asyncExecutorService;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Adds a {@link HealthCheckRegistryListener} to a collection of listeners that will be notified on health check
    -&nbsp;     * registration. Listeners will be notified in the order in which they are added. The listener will be notified of all
    -&nbsp;     * existing health checks when it first registers.
    -&nbsp;     *
    -&nbsp;     * @param listener listener to add
    -&nbsp;     */
    -&nbsp;    public void addListener(HealthCheckRegistryListener listener) {
    -<b class="fc">&nbsp;        listeners.add(listener);</b>
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    -<b class="fc">&nbsp;            listener.onHealthCheckAdded(entry.getKey(), entry.getValue());</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Removes a {@link HealthCheckRegistryListener} from this registry&#39;s collection of listeners.
    -&nbsp;     *
    -&nbsp;     * @param listener listener to remove
    -&nbsp;     */
    -&nbsp;    public void removeListener(HealthCheckRegistryListener listener) {
    -<b class="fc">&nbsp;        listeners.remove(listener);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Registers an application {@link HealthCheck}.
    -&nbsp;     *
    -&nbsp;     * @param name        the name of the health check
    -&nbsp;     * @param healthCheck the {@link HealthCheck} instance
    -&nbsp;     */
    -&nbsp;    public void register(String name, HealthCheck healthCheck) {
    -&nbsp;        HealthCheck registered;
    -<b class="fc">&nbsp;        synchronized (lock) {</b>
    -<b class="fc">&nbsp;            if (healthChecks.containsKey(name)) {</b>
    -<b class="fc">&nbsp;                throw new IllegalArgumentException(&quot;A health check named &quot; + name + &quot; already exists&quot;);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            registered = healthCheck;</b>
    -<b class="fc">&nbsp;            if (healthCheck.getClass().isAnnotationPresent(Async.class)) {</b>
    -<b class="fc">&nbsp;                registered = new AsyncHealthCheckDecorator(healthCheck, asyncExecutorService);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            healthChecks.put(name, registered);</b>
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        onHealthCheckAdded(name, registered);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Unregisters the application {@link HealthCheck} with the given name.
    -&nbsp;     *
    -&nbsp;     * @param name the name of the {@link HealthCheck} instance
    -&nbsp;     */
    -&nbsp;    public void unregister(String name) {
    -&nbsp;        HealthCheck healthCheck;
    -<b class="fc">&nbsp;        synchronized (lock) {</b>
    -<b class="fc">&nbsp;            healthCheck = healthChecks.remove(name);</b>
    -<b class="fc">&nbsp;            if (healthCheck instanceof AsyncHealthCheckDecorator) {</b>
    -<b class="fc">&nbsp;                ((AsyncHealthCheckDecorator) healthCheck).tearDown();</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        if (healthCheck != null) {</b>
    -<b class="fc">&nbsp;            onHealthCheckRemoved(name, healthCheck);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns a set of the names of all registered health checks.
    -&nbsp;     *
    -&nbsp;     * @return the names of all registered health checks
    -&nbsp;     */
    -&nbsp;    public SortedSet&lt;String&gt; getNames() {
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedSet(new TreeSet&lt;&gt;(healthChecks.keySet()));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Returns the {@link HealthCheck} instance with a given name
    -&nbsp;     *
    -&nbsp;     * @param name the name of the {@link HealthCheck} instance
    -&nbsp;     */
    -&nbsp;    public HealthCheck getHealthCheck(String name) {
    -<b class="nc">&nbsp;        return healthChecks.get(name);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the health check with the given name.
    -&nbsp;     *
    -&nbsp;     * @param name the health check&#39;s name
    -&nbsp;     * @return the result of the health check
    -&nbsp;     * @throws NoSuchElementException if there is no health check with the given name
    -&nbsp;     */
    -&nbsp;    public HealthCheck.Result runHealthCheck(String name) throws NoSuchElementException {
    -<b class="fc">&nbsp;        final HealthCheck healthCheck = healthChecks.get(name);</b>
    -<b class="fc">&nbsp;        if (healthCheck == null) {</b>
    -<b class="fc">&nbsp;            throw new NoSuchElementException(&quot;No health check named &quot; + name + &quot; exists&quot;);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return healthCheck.execute();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks() {
    -<b class="fc">&nbsp;        return runHealthChecks(HealthCheckFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks matching the filter and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @param filter health check filter
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(HealthCheckFilter filter) {
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = new TreeMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    -<b class="fc">&nbsp;            final String name = entry.getKey();</b>
    -<b class="fc">&nbsp;            final HealthCheck healthCheck = entry.getValue();</b>
    -<b class="fc">&nbsp;            if (filter.matches(name, healthCheck)) {</b>
    -<b class="fc">&nbsp;                final Result result = entry.getValue().execute();</b>
    -<b class="fc">&nbsp;                results.put(entry.getKey(), result);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(results);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks in parallel and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @param executor object to launch and track health checks progress
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(ExecutorService executor) {
    -<b class="fc">&nbsp;        return runHealthChecks(executor, HealthCheckFilter.ALL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Runs the registered health checks matching the filter in parallel and returns a map of the results.
    -&nbsp;     *
    -&nbsp;     * @param executor object to launch and track health checks progress
    -&nbsp;     * @param filter   health check filter
    -&nbsp;     * @return a map of the health check results
    -&nbsp;     */
    -&nbsp;    public SortedMap&lt;String, HealthCheck.Result&gt; runHealthChecks(ExecutorService executor, HealthCheckFilter filter) {
    -<b class="fc">&nbsp;        final Map&lt;String, Future&lt;HealthCheck.Result&gt;&gt; futures = new HashMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (final Map.Entry&lt;String, HealthCheck&gt; entry : healthChecks.entrySet()) {</b>
    -<b class="fc">&nbsp;            final String name = entry.getKey();</b>
    -<b class="fc">&nbsp;            final HealthCheck healthCheck = entry.getValue();</b>
    -<b class="fc">&nbsp;            if (filter.matches(name, healthCheck)) {</b>
    -<b class="fc">&nbsp;                futures.put(name, executor.submit(() -&gt; healthCheck.execute()));</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        final SortedMap&lt;String, HealthCheck.Result&gt; results = new TreeMap&lt;&gt;();</b>
    -<b class="fc">&nbsp;        for (Map.Entry&lt;String, Future&lt;Result&gt;&gt; entry : futures.entrySet()) {</b>
    -&nbsp;            try {
    -<b class="fc">&nbsp;                results.put(entry.getKey(), entry.getValue().get());</b>
    -<b class="nc">&nbsp;            } catch (Exception e) {</b>
    -<b class="nc">&nbsp;                LOGGER.warn(&quot;Error executing health check {}&quot;, entry.getKey(), e);</b>
    -<b class="nc">&nbsp;                results.put(entry.getKey(), HealthCheck.Result.unhealthy(e));</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableSortedMap(results);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    private void onHealthCheckAdded(String name, HealthCheck healthCheck) {
    -<b class="fc">&nbsp;        for (HealthCheckRegistryListener listener : listeners) {</b>
    -<b class="fc">&nbsp;            listener.onHealthCheckAdded(name, healthCheck);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private void onHealthCheckRemoved(String name, HealthCheck healthCheck) {
    -<b class="fc">&nbsp;        for (HealthCheckRegistryListener listener : listeners) {</b>
    -<b class="fc">&nbsp;            listener.onHealthCheckRemoved(name, healthCheck);</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Shuts down the scheduled executor for async health checks
    -&nbsp;     */
    -&nbsp;    public void shutdown() {
    -<b class="fc">&nbsp;        asyncExecutorService.shutdown(); // Disable new health checks from being submitted</b>
    -&nbsp;        try {
    -&nbsp;            // Give some time to the current healtch checks to finish gracefully
    -<b class="fc">&nbsp;            if (!asyncExecutorService.awaitTermination(1, TimeUnit.SECONDS)) {</b>
    -<b class="nc">&nbsp;                asyncExecutorService.shutdownNow();</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;        } catch (InterruptedException ie) {</b>
    -<b class="nc">&nbsp;            asyncExecutorService.shutdownNow();</b>
    -<b class="nc">&nbsp;            Thread.currentThread().interrupt();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static ScheduledExecutorService createExecutorService(int corePoolSize) {
    -<b class="fc">&nbsp;        final ScheduledThreadPoolExecutor asyncExecutorService = new ScheduledThreadPoolExecutor(corePoolSize,</b>
    -&nbsp;                new NamedThreadFactory(&quot;healthcheck-async-executor-&quot;));
    -<b class="fc">&nbsp;        asyncExecutorService.setRemoveOnCancelPolicy(true);</b>
    -<b class="fc">&nbsp;        return asyncExecutorService;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static class NamedThreadFactory implements ThreadFactory {
    -&nbsp;
    -&nbsp;        private final ThreadGroup group;
    -<b class="fc">&nbsp;        private final AtomicInteger threadNumber = new AtomicInteger(1);</b>
    -&nbsp;        private final String namePrefix;
    -&nbsp;
    -<b class="fc">&nbsp;        NamedThreadFactory(String namePrefix) {</b>
    -<b class="fc">&nbsp;            SecurityManager s = System.getSecurityManager();</b>
    -<b class="fc">&nbsp;            group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();</b>
    -<b class="fc">&nbsp;            this.namePrefix = namePrefix;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public Thread newThread(Runnable r) {
    -<b class="fc">&nbsp;            Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);</b>
    -<b class="fc">&nbsp;            t.setDaemon(true);</b>
    -<b class="fc">&nbsp;            if (t.getPriority() != Thread.NORM_PRIORITY)</b>
    -<b class="nc">&nbsp;                t.setPriority(Thread.NORM_PRIORITY);</b>
    -<b class="fc">&nbsp;            return t;</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-8/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-8/sources/source-5.html
    deleted file mode 100644
    index 8d34cfb544..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-8/sources/source-5.html
    +++ /dev/null
    @@ -1,210 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > SharedHealthCheckRegistries</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: SharedHealthCheckRegistries (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">SharedHealthCheckRegistries</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (11/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    96.6%
    -  </span>
    -  <span class="absValue">
    -    (28/29)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import java.util.Set;
    -&nbsp;import java.util.concurrent.ConcurrentHashMap;
    -&nbsp;import java.util.concurrent.ConcurrentMap;
    -&nbsp;import java.util.concurrent.atomic.AtomicReference;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A map of shared, named health registries.
    -&nbsp; */
    -&nbsp;public class SharedHealthCheckRegistries {
    -<b class="fc">&nbsp;    private static final ConcurrentMap&lt;String, HealthCheckRegistry&gt; REGISTRIES =</b>
    -&nbsp;            new ConcurrentHashMap&lt;&gt;();
    -&nbsp;
    -<b class="fc">&nbsp;    private static AtomicReference&lt;String&gt; defaultRegistryName = new AtomicReference&lt;&gt;();</b>
    -&nbsp;
    -&nbsp;    /* Visible for testing */
    -&nbsp;    static void setDefaultRegistryName(AtomicReference&lt;String&gt; defaultRegistryName) {
    -<b class="fc">&nbsp;        SharedHealthCheckRegistries.defaultRegistryName = defaultRegistryName;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private SharedHealthCheckRegistries() { /* singleton */ }
    -&nbsp;
    -&nbsp;    public static void clear() {
    -<b class="fc">&nbsp;        REGISTRIES.clear();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Set&lt;String&gt; names() {
    -<b class="fc">&nbsp;        return REGISTRIES.keySet();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static void remove(String key) {
    -<b class="fc">&nbsp;        REGISTRIES.remove(key);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HealthCheckRegistry add(String name, HealthCheckRegistry registry) {
    -<b class="fc">&nbsp;        return REGISTRIES.putIfAbsent(name, registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HealthCheckRegistry getOrCreate(String name) {
    -<b class="fc">&nbsp;        final HealthCheckRegistry existing = REGISTRIES.get(name);</b>
    -<b class="fc">&nbsp;        if (existing == null) {</b>
    -<b class="fc">&nbsp;            final HealthCheckRegistry created = new HealthCheckRegistry();</b>
    -<b class="fc">&nbsp;            final HealthCheckRegistry raced = add(name, created);</b>
    -<b class="fc">&nbsp;            if (raced == null) {</b>
    -<b class="fc">&nbsp;                return created;</b>
    -&nbsp;            }
    -<b class="nc">&nbsp;            return raced;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return existing;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new registry and sets it as the default one under the provided name.
    -&nbsp;     *
    -&nbsp;     * @param name the registry name
    -&nbsp;     * @return the default registry
    -&nbsp;     * @throws IllegalStateException if the name has already been set
    -&nbsp;     */
    -&nbsp;    public synchronized static HealthCheckRegistry setDefault(String name) {
    -<b class="fc">&nbsp;        final HealthCheckRegistry registry = getOrCreate(name);</b>
    -<b class="fc">&nbsp;        return setDefault(name, registry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Sets the provided registry as the default one under the provided name
    -&nbsp;     *
    -&nbsp;     * @param name                the default registry name
    -&nbsp;     * @param healthCheckRegistry the default registry
    -&nbsp;     * @throws IllegalStateException if the default registry has already been set
    -&nbsp;     */
    -&nbsp;    public static HealthCheckRegistry setDefault(String name, HealthCheckRegistry healthCheckRegistry) {
    -<b class="fc">&nbsp;        if (defaultRegistryName.compareAndSet(null, name)) {</b>
    -<b class="fc">&nbsp;            add(name, healthCheckRegistry);</b>
    -<b class="fc">&nbsp;            return healthCheckRegistry;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default health check registry is already set.&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Gets the name of the default registry, if it has been set
    -&nbsp;     *
    -&nbsp;     * @return the default registry
    -&nbsp;     * @throws IllegalStateException if the default has not been set
    -&nbsp;     */
    -&nbsp;    public static HealthCheckRegistry getDefault() {
    -<b class="fc">&nbsp;        final HealthCheckRegistry healthCheckRegistry = tryGetDefault();</b>
    -<b class="fc">&nbsp;        if (healthCheckRegistry != null) {</b>
    -<b class="fc">&nbsp;            return healthCheckRegistry;</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        throw new IllegalStateException(&quot;Default registry name has not been set.&quot;);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Same as {@link #getDefault()} except returns null when the default registry has not been set.
    -&nbsp;     *
    -&nbsp;     * @return the default registry or null
    -&nbsp;     */
    -&nbsp;    public static HealthCheckRegistry tryGetDefault() {
    -<b class="fc">&nbsp;        final String name = defaultRegistryName.get();</b>
    -<b class="fc">&nbsp;        if (name != null) {</b>
    -<b class="fc">&nbsp;            return getOrCreate(name);</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return null;</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-8/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-8/sources/source-6.html
    deleted file mode 100644
    index af00e9294f..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-8/sources/source-6.html
    +++ /dev/null
    @@ -1,103 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HealthCheckRegistryListener</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HealthCheckRegistryListener (com.codahale.metrics.health)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -</tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistryListener$MockitoMock$6emdc6Ec</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistryListener$MockitoMock$6emdc6Ec$auxiliary$4gVc0c8a</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HealthCheckRegistryListener$MockitoMock$6emdc6Ec$auxiliary$G5QVHLdb</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health;
    -&nbsp;
    -&nbsp;import java.util.EventListener;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A listener contract for {@link HealthCheckRegistry} events.
    -&nbsp; */
    -&nbsp;public interface HealthCheckRegistryListener extends EventListener {
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a new {@link HealthCheck} is added to the registry.
    -&nbsp;     *
    -&nbsp;     * @param name        the name of the health check
    -&nbsp;     * @param healthCheck the health check
    -&nbsp;     */
    -&nbsp;    void onHealthCheckAdded(String name, HealthCheck healthCheck);
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Called when a {@link HealthCheck} is removed from the registry.
    -&nbsp;     *
    -&nbsp;     * @param name        the name of the health check
    -&nbsp;     * @param healthCheck the health check
    -&nbsp;     */
    -&nbsp;    void onHealthCheckRemoved(String name, HealthCheck healthCheck);
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index.html b/metrics-complete-report-initial-htmlReport/ns-9/index.html
    deleted file mode 100644
    index a164a5d5c4..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-9/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 4d395976ac..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index d39bfeff22..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 1aeab12071..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index a9699a89c6..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 3f5b80dd64..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 7d31622369..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index c32c5df8fe..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 24ce9474be..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 2a872fa51a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-9/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.annotation</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.annotation</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.annotation</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.annotation</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">Async</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-9/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-9/sources/source-1.html
    deleted file mode 100644
    index e69dbf2e64..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-9/sources/source-1.html
    +++ /dev/null
    @@ -1,205 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > Async</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health.annotation</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: Async (com.codahale.metrics.health.annotation)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name">Async$InitialState</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">Async$ScheduleType</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (4/4)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health.annotation;
    -&nbsp;
    -&nbsp;import java.lang.annotation.ElementType;
    -&nbsp;import java.lang.annotation.Retention;
    -&nbsp;import java.lang.annotation.RetentionPolicy;
    -&nbsp;import java.lang.annotation.Target;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * An annotation for marking asynchronous health check execution.
    -&nbsp; */
    -&nbsp;@Retention(RetentionPolicy.RUNTIME)
    -&nbsp;@Target(ElementType.TYPE)
    -&nbsp;public @interface Async {
    -&nbsp;    /**
    -&nbsp;     * Enum representing the initial health states.
    -&nbsp;     */
    -<b class="fc">&nbsp;    enum InitialState {</b>
    -<b class="fc">&nbsp;        HEALTHY, UNHEALTHY</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Enum representing the possible schedule types.
    -&nbsp;     */
    -<b class="fc">&nbsp;    enum ScheduleType {</b>
    -<b class="fc">&nbsp;        FIXED_RATE, FIXED_DELAY</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Period between executions.
    -&nbsp;     *
    -&nbsp;     * @return period
    -&nbsp;     */
    -&nbsp;    long period();
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Scheduling type of asynchronous executions.
    -&nbsp;     *
    -&nbsp;     * @return schedule type
    -&nbsp;     */
    -&nbsp;    ScheduleType scheduleType() default ScheduleType.FIXED_RATE;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Initial delay of first execution.
    -&nbsp;     *
    -&nbsp;     * @return initial delay
    -&nbsp;     */
    -&nbsp;    long initialDelay() default 0;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Time unit of initial delay, period and healthyTtl.
    -&nbsp;     *
    -&nbsp;     * @return time unit
    -&nbsp;     */
    -&nbsp;    TimeUnit unit() default TimeUnit.SECONDS;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Initial health state until first asynchronous execution completes.
    -&nbsp;     *
    -&nbsp;     * @return initial health state
    -&nbsp;     */
    -&nbsp;    InitialState initialState() default InitialState.HEALTHY;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * How long a healthy result is considered valid before being ignored.
    -&nbsp;     *
    -&nbsp;     * Handles cases where the asynchronous healthcheck did not run (for example thread starvation).
    -&nbsp;     *
    -&nbsp;     * Defaults to 2 * period
    -&nbsp;     *
    -&nbsp;     * @return healthy result time to live
    -&nbsp;     */
    -&nbsp;    long healthyTtl() default -1;
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index.html b/metrics-complete-report-initial-htmlReport/ns-a/index.html
    deleted file mode 100644
    index 33080a072b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-a/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 7b3e11bb99..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index e5b75a096a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 259657025e..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index cbe47edd0c..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 22f1e76a35..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index ebc701839a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index d568f9798b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 99a285b0a2..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 22f1771abe..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-a/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.health.jvm</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.health.jvm</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.health.jvm</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.health.jvm</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">ThreadDeadlockHealthCheck</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-a/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-a/sources/source-1.html
    deleted file mode 100644
    index 540dc34941..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-a/sources/source-1.html
    +++ /dev/null
    @@ -1,142 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > ThreadDeadlockHealthCheck</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.health.jvm</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: ThreadDeadlockHealthCheck (com.codahale.metrics.health.jvm)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">ThreadDeadlockHealthCheck</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.health.jvm;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.health.HealthCheck;
    -&nbsp;import com.codahale.metrics.jvm.ThreadDeadlockDetector;
    -&nbsp;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A health check which returns healthy if no threads are deadlocked.
    -&nbsp; */
    -&nbsp;public class ThreadDeadlockHealthCheck extends HealthCheck {
    -&nbsp;    private final ThreadDeadlockDetector detector;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new health check.
    -&nbsp;     */
    -&nbsp;    public ThreadDeadlockHealthCheck() {
    -<b class="fc">&nbsp;        this(new ThreadDeadlockDetector());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * Creates a new health check with the given detector.
    -&nbsp;     *
    -&nbsp;     * @param detector a thread deadlock detector
    -&nbsp;     */
    -<b class="fc">&nbsp;    public ThreadDeadlockHealthCheck(ThreadDeadlockDetector detector) {</b>
    -<b class="fc">&nbsp;        this.detector = detector;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    protected Result check() throws Exception {
    -<b class="fc">&nbsp;        final Set&lt;String&gt; threads = detector.getDeadlockedThreads();</b>
    -<b class="fc">&nbsp;        if (threads.isEmpty()) {</b>
    -<b class="fc">&nbsp;            return Result.healthy();</b>
    -&nbsp;        }
    -<b class="fc">&nbsp;        return Result.unhealthy(threads.toString());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index.html b/metrics-complete-report-initial-htmlReport/ns-b/index.html
    deleted file mode 100644
    index cf4f3d1d14..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-b/index.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index b1ffa0aaea..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 9742896175..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index b8f1ca08c6..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 645f445c84..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 70ebdc2019..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index d7a8f962fd..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 9634959ecc..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 8d8b9c6423..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index ead8e955db..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-b/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,170 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpasyncclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpasyncclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpasyncclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpasyncclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (11/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    47.6%
    -  </span>
    -  <span class="absValue">
    -    (20/42)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">InstrumentedNHttpClientBuilder</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedNClientConnManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-b/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-b/sources/source-1.html
    deleted file mode 100644
    index f1d33e63b9..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-b/sources/source-1.html
    +++ /dev/null
    @@ -1,140 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedNClientConnManager</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpasyncclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedNClientConnManager (com.codahale.metrics.httpasyncclient)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedNClientConnManager</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/9)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpasyncclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.config.Registry;
    -&nbsp;import org.apache.http.conn.DnsResolver;
    -&nbsp;import org.apache.http.conn.SchemePortResolver;
    -&nbsp;import org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager;
    -&nbsp;import org.apache.http.nio.conn.ManagedNHttpClientConnection;
    -&nbsp;import org.apache.http.nio.conn.NHttpClientConnectionManager;
    -&nbsp;import org.apache.http.nio.conn.NHttpConnectionFactory;
    -&nbsp;import org.apache.http.nio.conn.SchemeIOSessionStrategy;
    -&nbsp;import org.apache.http.nio.reactor.ConnectingIOReactor;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;public class InstrumentedNClientConnManager extends PoolingNHttpClientConnectionManager {
    -&nbsp;
    -&nbsp;    public InstrumentedNClientConnManager(final ConnectingIOReactor ioreactor, final NHttpConnectionFactory&lt;ManagedNHttpClientConnection&gt; connFactory, final SchemePortResolver schemePortResolver, final MetricRegistry metricRegistry, final Registry&lt;SchemeIOSessionStrategy&gt; iosessionFactoryRegistry, final long timeToLive, final TimeUnit tunit, final DnsResolver dnsResolver, final String name) {
    -<b class="nc">&nbsp;        super(ioreactor, connFactory, iosessionFactoryRegistry, schemePortResolver, dnsResolver, timeToLive, tunit);</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="nc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;available-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="nc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;leased-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="nc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;max-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="nc">&nbsp;        metricRegistry.registerGauge(name(NHttpClientConnectionManager.class, name, &quot;pending-connections&quot;),</b>
    -<b class="nc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-b/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-b/sources/source-2.html
    deleted file mode 100644
    index fcba0b83da..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-b/sources/source-2.html
    +++ /dev/null
    @@ -1,268 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedNHttpClientBuilder</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpasyncclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedNHttpClientBuilder (com.codahale.metrics.httpasyncclient)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedNHttpClientBuilder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (5/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    81.8%
    -  </span>
    -  <span class="absValue">
    -    (9/11)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedNHttpClientBuilder$1</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (3/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    55.6%
    -  </span>
    -  <span class="absValue">
    -    (5/9)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name">InstrumentedNHttpClientBuilder$TimingFutureCallback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60%
    -  </span>
    -  <span class="absValue">
    -    (3/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    46.2%
    -  </span>
    -  <span class="absValue">
    -    (6/13)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (11/17)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    60.6%
    -  </span>
    -  <span class="absValue">
    -    (20/33)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpasyncclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.httpclient.HttpClientMetricNameStrategies;
    -&nbsp;import com.codahale.metrics.httpclient.HttpClientMetricNameStrategy;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;import java.util.concurrent.Future;
    -&nbsp;
    -&nbsp;import org.apache.http.HttpException;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.concurrent.FutureCallback;
    -&nbsp;import org.apache.http.impl.nio.client.CloseableHttpAsyncClient;
    -&nbsp;import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
    -&nbsp;import org.apache.http.nio.protocol.HttpAsyncRequestProducer;
    -&nbsp;import org.apache.http.nio.protocol.HttpAsyncResponseConsumer;
    -&nbsp;import org.apache.http.protocol.HttpContext;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -<b class="fc">&nbsp;public class InstrumentedNHttpClientBuilder extends HttpAsyncClientBuilder {</b>
    -&nbsp;    private final MetricRegistry metricRegistry;
    -&nbsp;    private final String name;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy, String name) {
    -<b class="fc">&nbsp;        super();</b>
    -<b class="fc">&nbsp;        this.metricRegistry = metricRegistry;</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(metricRegistry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedNHttpClientBuilder(MetricRegistry metricRegistry, String name) {
    -<b class="nc">&nbsp;        this(metricRegistry, HttpClientMetricNameStrategies.METHOD_ONLY, name);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;        return metricRegistry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public CloseableHttpAsyncClient build() {
    -<b class="fc">&nbsp;        final CloseableHttpAsyncClient ac = super.build();</b>
    -<b class="fc">&nbsp;        return new CloseableHttpAsyncClient() {</b>
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public boolean isRunning() {
    -<b class="nc">&nbsp;                return ac.isRunning();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void start() {
    -<b class="fc">&nbsp;                ac.start();</b>
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public &lt;T&gt; Future&lt;T&gt; execute(HttpAsyncRequestProducer requestProducer, HttpAsyncResponseConsumer&lt;T&gt; responseConsumer, HttpContext context, FutureCallback&lt;T&gt; callback) {
    -&nbsp;                final Timer.Context timerContext;
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    timerContext = timer(requestProducer.generateRequest()).time();</b>
    -<b class="nc">&nbsp;                } catch (IOException | HttpException ex) {</b>
    -<b class="nc">&nbsp;                    throw new RuntimeException(ex);</b>
    -<b class="fc">&nbsp;                }</b>
    -<b class="fc">&nbsp;                return ac.execute(requestProducer, responseConsumer, context,</b>
    -&nbsp;                        new TimingFutureCallback&lt;&gt;(callback, timerContext));
    -&nbsp;            }
    -&nbsp;
    -&nbsp;            @Override
    -&nbsp;            public void close() throws IOException {
    -<b class="nc">&nbsp;                ac.close();</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;    }
    -&nbsp;
    -<b class="fc">&nbsp;    private static class TimingFutureCallback&lt;T&gt; implements FutureCallback&lt;T&gt; {</b>
    -&nbsp;        private final FutureCallback&lt;T&gt; callback;
    -&nbsp;        private final Timer.Context timerContext;
    -&nbsp;
    -&nbsp;        private TimingFutureCallback(FutureCallback&lt;T&gt; callback,
    -<b class="fc">&nbsp;                                     Timer.Context timerContext) {</b>
    -<b class="fc">&nbsp;            this.callback = callback;</b>
    -<b class="fc">&nbsp;            this.timerContext = requireNonNull(timerContext, &quot;timerContext&quot;);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void completed(T result) {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;            if (callback != null) {</b>
    -<b class="nc">&nbsp;                callback.completed(result);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void failed(Exception ex) {
    -<b class="nc">&nbsp;            timerContext.stop();</b>
    -<b class="nc">&nbsp;            if (callback != null) {</b>
    -<b class="nc">&nbsp;                callback.failed(ex);</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void cancelled() {
    -<b class="nc">&nbsp;            timerContext.stop();</b>
    -<b class="nc">&nbsp;            if (callback != null) {</b>
    -<b class="nc">&nbsp;                callback.cancelled();</b>
    -&nbsp;            }
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index.html b/metrics-complete-report-initial-htmlReport/ns-c/index.html
    deleted file mode 100644
    index 82054a6f53..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-c/index.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 85924cca44..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 47bcc82b99..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 23855997cd..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index a0a8f05258..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 20be59dea5..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 21322a7774..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 6cca9dec0b..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 51abad2990..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index 1eea4c59c5..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-c/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,251 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    61.9%
    -  </span>
    -  <span class="absValue">
    -    (26/42)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    73%
    -  </span>
    -  <span class="absValue">
    -    (73/100)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-c/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-c/sources/source-1.html
    deleted file mode 100644
    index 63ee622013..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-c/sources/source-1.html
    +++ /dev/null
    @@ -1,165 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HttpClientMetricNameStrategies</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HttpClientMetricNameStrategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    87.5%
    -  </span>
    -  <span class="absValue">
    -    (7/8)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84.6%
    -  </span>
    -  <span class="absValue">
    -    (22/26)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.client.HttpClient;
    -&nbsp;import org.apache.http.client.methods.HttpRequestWrapper;
    -&nbsp;import org.apache.http.client.methods.HttpUriRequest;
    -&nbsp;import org.apache.http.client.utils.URIBuilder;
    -&nbsp;
    -&nbsp;import java.net.URI;
    -&nbsp;import java.net.URISyntaxException;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class HttpClientMetricNameStrategies {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy METHOD_ONLY =</b>
    -<b class="fc">&nbsp;        (name, request) -&gt; name(HttpClient.class,</b>
    -&nbsp;            name,
    -<b class="fc">&nbsp;            methodNameString(request));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy HOST_AND_METHOD =</b>
    -<b class="fc">&nbsp;        (name, request) -&gt; name(HttpClient.class,</b>
    -&nbsp;            name,
    -<b class="fc">&nbsp;            requestURI(request).getHost(),</b>
    -<b class="fc">&nbsp;            methodNameString(request));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy PATH_AND_METHOD =</b>
    -&nbsp;        (name, request) -&gt; {
    -<b class="fc">&nbsp;            final URIBuilder url = new URIBuilder(requestURI(request));</b>
    -<b class="fc">&nbsp;            return name(HttpClient.class,</b>
    -&nbsp;                name,
    -<b class="fc">&nbsp;                url.getPath(),</b>
    -<b class="fc">&nbsp;                methodNameString(request));</b>
    -&nbsp;        };
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =</b>
    -&nbsp;        (name, request) -&gt; {
    -&nbsp;            try {
    -<b class="fc">&nbsp;                final URIBuilder url = new URIBuilder(requestURI(request));</b>
    -<b class="fc">&nbsp;                return name(HttpClient.class,</b>
    -&nbsp;                    name,
    -<b class="fc">&nbsp;                    url.removeQuery().build().toString(),</b>
    -<b class="fc">&nbsp;                    methodNameString(request));</b>
    -<b class="nc">&nbsp;            } catch (URISyntaxException e) {</b>
    -<b class="nc">&nbsp;                throw new IllegalArgumentException(e);</b>
    -&nbsp;            }
    -&nbsp;        };
    -&nbsp;
    -&nbsp;    private static String methodNameString(HttpRequest request) {
    -<b class="fc">&nbsp;        return request.getRequestLine().getMethod().toLowerCase() + &quot;-requests&quot;;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static URI requestURI(HttpRequest request) {
    -<b class="fc">&nbsp;        if (request instanceof HttpRequestWrapper)</b>
    -<b class="fc">&nbsp;            return requestURI(((HttpRequestWrapper) request).getOriginal());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return (request instanceof HttpUriRequest) ?</b>
    -<b class="fc">&nbsp;            ((HttpUriRequest) request).getURI() :</b>
    -<b class="nc">&nbsp;            URI.create(request.getRequestLine().getUri());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-c/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-c/sources/source-2.html
    deleted file mode 100644
    index 66217ec14a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-c/sources/source-2.html
    +++ /dev/null
    @@ -1,146 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HttpClientMetricNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HttpClientMetricNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$6KszrCwA</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$6KszrCwA$auxiliary$dJm0piNA</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$6KszrCwA$auxiliary$VPCAssxE</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$RINEg8MI</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$RINEg8MI$auxiliary$Elo77oKt</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$RINEg8MI$auxiliary$erRXmNC7</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.client.HttpClient;
    -&nbsp;
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface HttpClientMetricNameStrategy {
    -&nbsp;
    -&nbsp;    String getNameFor(String name, HttpRequest request);
    -&nbsp;
    -&nbsp;    default String getNameFor(String name, Exception exception) {
    -<b class="nc">&nbsp;        return MetricRegistry.name(HttpClient.class,</b>
    -&nbsp;                name,
    -<b class="nc">&nbsp;                exception.getClass().getSimpleName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-c/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-c/sources/source-3.html
    deleted file mode 100644
    index 04a125f139..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-c/sources/source-3.html
    +++ /dev/null
    @@ -1,330 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClientConnectionManager</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClientConnectionManager</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    66.7%
    -  </span>
    -  <span class="absValue">
    -    (8/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    84%
    -  </span>
    -  <span class="absValue">
    -    (21/25)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpClientConnectionManager$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    36.4%
    -  </span>
    -  <span class="absValue">
    -    (4/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    46.2%
    -  </span>
    -  <span class="absValue">
    -    (12/26)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    52.2%
    -  </span>
    -  <span class="absValue">
    -    (12/23)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    64.7%
    -  </span>
    -  <span class="absValue">
    -    (33/51)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.config.Registry;
    -&nbsp;import org.apache.http.config.RegistryBuilder;
    -&nbsp;import org.apache.http.conn.DnsResolver;
    -&nbsp;import org.apache.http.conn.HttpClientConnectionManager;
    -&nbsp;import org.apache.http.conn.HttpClientConnectionOperator;
    -&nbsp;import org.apache.http.conn.HttpConnectionFactory;
    -&nbsp;import org.apache.http.conn.ManagedHttpClientConnection;
    -&nbsp;import org.apache.http.conn.SchemePortResolver;
    -&nbsp;import org.apache.http.conn.routing.HttpRoute;
    -&nbsp;import org.apache.http.conn.socket.ConnectionSocketFactory;
    -&nbsp;import org.apache.http.conn.socket.PlainConnectionSocketFactory;
    -&nbsp;import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
    -&nbsp;import org.apache.http.impl.conn.DefaultHttpClientConnectionOperator;
    -&nbsp;import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
    -&nbsp;import org.apache.http.impl.conn.SystemDefaultDnsResolver;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    -&nbsp; */
    -&nbsp;public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
    -&nbsp;
    -&nbsp;
    -&nbsp;    protected static Registry&lt;ConnectionSocketFactory&gt; getDefaultRegistry() {
    -<b class="fc">&nbsp;        return RegistryBuilder.&lt;ConnectionSocketFactory&gt;create()</b>
    -<b class="fc">&nbsp;            .register(&quot;http&quot;, PlainConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;            .register(&quot;https&quot;, SSLConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;            .build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricsRegistry;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        this(metricRegistry, getDefaultRegistry());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    -<b class="nc">&nbsp;        this(metricsRegistry, socketFactoryRegistry, -1, TimeUnit.MILLISECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry,
    -&nbsp;                                                   long connTTL,
    -&nbsp;                                                   TimeUnit connTTLTimeUnit) {
    -<b class="nc">&nbsp;        this(metricsRegistry, socketFactoryRegistry, null, null, SystemDefaultDnsResolver.INSTANCE, connTTL, connTTLTimeUnit, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry,
    -&nbsp;                                                   HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt;
    -&nbsp;                                                           connFactory,
    -&nbsp;                                                   SchemePortResolver schemePortResolver,
    -&nbsp;                                                   DnsResolver dnsResolver,
    -&nbsp;                                                   long connTTL,
    -&nbsp;                                                   TimeUnit connTTLTimeUnit,
    -&nbsp;                                                   String name) {
    -<b class="nc">&nbsp;        this(metricsRegistry,</b>
    -&nbsp;             new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver),
    -&nbsp;             connFactory,
    -&nbsp;             connTTL,
    -&nbsp;             connTTLTimeUnit,
    -&nbsp;             name);
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * @deprecated Use {@link #builder(MetricRegistry)} instead.
    -&nbsp;     */
    -&nbsp;    @Deprecated
    -&nbsp;    public InstrumentedHttpClientConnectionManager(MetricRegistry metricsRegistry,
    -&nbsp;                                                   HttpClientConnectionOperator httpClientConnectionOperator,
    -&nbsp;                                                   HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt;
    -&nbsp;                                                           connFactory,
    -&nbsp;                                                   long connTTL,
    -&nbsp;                                                   TimeUnit connTTLTimeUnit,
    -&nbsp;                                                   String name) {
    -<b class="fc">&nbsp;        super(httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit);</b>
    -<b class="fc">&nbsp;        this.metricsRegistry = metricsRegistry;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;available-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;leased-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;max-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricsRegistry.registerGauge(name(HttpClientConnectionManager.class, name, &quot;pending-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void shutdown() {
    -<b class="fc">&nbsp;        super.shutdown();</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;available-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;leased-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;max-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(HttpClientConnectionManager.class, name, &quot;pending-connections&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static class Builder {
    -&nbsp;        private MetricRegistry metricsRegistry;
    -&nbsp;        private HttpClientConnectionOperator httpClientConnectionOperator;
    -<b class="fc">&nbsp;        private Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry = getDefaultRegistry();</b>
    -&nbsp;        private HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt; connFactory;
    -&nbsp;        private SchemePortResolver schemePortResolver;
    -<b class="fc">&nbsp;        private DnsResolver dnsResolver = SystemDefaultDnsResolver.INSTANCE;</b>
    -<b class="fc">&nbsp;        private long connTTL = -1;</b>
    -<b class="fc">&nbsp;        private TimeUnit connTTLTimeUnit = TimeUnit.MILLISECONDS;</b>
    -&nbsp;        private String name;
    -&nbsp;
    -<b class="fc">&nbsp;        Builder() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder metricsRegistry(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;            this.metricsRegistry = metricsRegistry;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder socketFactoryRegistry(Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    -<b class="nc">&nbsp;            this.socketFactoryRegistry = socketFactoryRegistry;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connFactory(HttpConnectionFactory&lt;HttpRoute, ManagedHttpClientConnection&gt; connFactory) {
    -<b class="nc">&nbsp;            this.connFactory = connFactory;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    -<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    -<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connTTL(long connTTL) {
    -<b class="nc">&nbsp;            this.connTTL = connTTL;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connTTLTimeUnit(TimeUnit connTTLTimeUnit) {
    -<b class="nc">&nbsp;            this.connTTLTimeUnit = connTTLTimeUnit;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
    -<b class="nc">&nbsp;            this.httpClientConnectionOperator = httpClientConnectionOperator;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder name(final String name) {
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public InstrumentedHttpClientConnectionManager build() {
    -<b class="fc">&nbsp;            if (httpClientConnectionOperator == null) {</b>
    -<b class="fc">&nbsp;                httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(socketFactoryRegistry, schemePortResolver, dnsResolver);</b>
    -&nbsp;            }
    -<b class="fc">&nbsp;            return new InstrumentedHttpClientConnectionManager(metricsRegistry, httpClientConnectionOperator, connFactory, connTTL, connTTLTimeUnit, name);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-c/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-c/sources/source-4.html
    deleted file mode 100644
    index 46b12f1127..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-c/sources/source-4.html
    +++ /dev/null
    @@ -1,138 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClients</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClients</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.http.impl.client.CloseableHttpClient;
    -&nbsp;import org.apache.http.impl.client.HttpClientBuilder;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.httpclient.HttpClientMetricNameStrategies.METHOD_ONLY;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpClients {
    -&nbsp;    private InstrumentedHttpClients() {
    -&nbsp;        super();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
    -&nbsp;                                                    HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        return HttpClientBuilder.create()</b>
    -<b class="fc">&nbsp;                .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))</b>
    -<b class="fc">&nbsp;                .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-c/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-c/sources/source-5.html
    deleted file mode 100644
    index 80456846b9..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-c/sources/source-5.html
    +++ /dev/null
    @@ -1,166 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpRequestExecutor</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpRequestExecutor</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (15/15)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.apache.http.HttpClientConnection;
    -&nbsp;import org.apache.http.HttpException;
    -&nbsp;import org.apache.http.HttpRequest;
    -&nbsp;import org.apache.http.HttpResponse;
    -&nbsp;import org.apache.http.protocol.HttpContext;
    -&nbsp;import org.apache.http.protocol.HttpRequestExecutor;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name,
    -&nbsp;                                           int waitForContinue) {
    -<b class="fc">&nbsp;        super(waitForContinue);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public HttpResponse execute(HttpRequest request, HttpClientConnection conn, HttpContext context) throws HttpException, IOException {
    -<b class="fc">&nbsp;        final Timer.Context timerContext = timer(request).time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return super.execute(request, conn, context);</b>
    -<b class="fc">&nbsp;        } catch (HttpException | IOException e) {</b>
    -<b class="fc">&nbsp;            meter(e).mark();</b>
    -<b class="fc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;        return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meter(Exception e) {
    -<b class="fc">&nbsp;        return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index.html b/metrics-complete-report-initial-htmlReport/ns-d/index.html
    deleted file mode 100644
    index 507c38804d..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-d/index.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 89083700f0..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index 27b1d7cce4..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index a506e9f408..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index 31cdef0ec8..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 2618ab8078..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 2a963e34be..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 20e1a9bc43..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index c835ab3246..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index df61374cb8..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-d/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,332 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.httpclient5</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.httpclient5</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.httpclient5</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.httpclient5</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90.9%
    -  </span>
    -  <span class="absValue">
    -    (10/11)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    69.3%
    -  </span>
    -  <span class="absValue">
    -    (52/75)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    74.1%
    -  </span>
    -  <span class="absValue">
    -    (120/162)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-8.html">InstrumentedHttpRequestExecutor</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-7.html">InstrumentedHttpClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-6.html">InstrumentedHttpClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-5.html">InstrumentedHttpAsyncClients</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-4.html">InstrumentedAsyncExecChainHandler</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-3.html">InstrumentedAsyncClientConnectionManager</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (2/2)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-2.html">HttpClientMetricNameStrategy</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -  </tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">HttpClientMetricNameStrategies</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-1.html
    deleted file mode 100644
    index a76638bb7a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-1.html
    +++ /dev/null
    @@ -1,152 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HttpClientMetricNameStrategies</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategies (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HttpClientMetricNameStrategies</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    83.3%
    -  </span>
    -  <span class="absValue">
    -    (5/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    72.2%
    -  </span>
    -  <span class="absValue">
    -    (13/18)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import org.apache.hc.client5.http.classic.HttpClient;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;import org.apache.hc.core5.net.URIBuilder;
    -&nbsp;
    -&nbsp;import java.net.URISyntaxException;
    -&nbsp;import java.util.Locale;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -<b class="nc">&nbsp;public class HttpClientMetricNameStrategies {</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy METHOD_ONLY =</b>
    -<b class="fc">&nbsp;            (name, request) -&gt; name(HttpClient.class,</b>
    -&nbsp;                    name,
    -<b class="fc">&nbsp;                    methodNameString(request));</b>
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy HOST_AND_METHOD =</b>
    -&nbsp;            (name, request) -&gt; {
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    return name(HttpClient.class,</b>
    -&nbsp;                            name,
    -<b class="fc">&nbsp;                            request.getUri().getHost(),</b>
    -<b class="fc">&nbsp;                            methodNameString(request));</b>
    -<b class="nc">&nbsp;                } catch (URISyntaxException e) {</b>
    -<b class="nc">&nbsp;                    throw new IllegalArgumentException(e);</b>
    -&nbsp;                }
    -&nbsp;            };
    -&nbsp;
    -<b class="fc">&nbsp;    public static final HttpClientMetricNameStrategy QUERYLESS_URL_AND_METHOD =</b>
    -&nbsp;            (name, request) -&gt; {
    -&nbsp;                try {
    -<b class="fc">&nbsp;                    final URIBuilder url = new URIBuilder(request.getUri());</b>
    -<b class="fc">&nbsp;                    return name(HttpClient.class,</b>
    -&nbsp;                            name,
    -<b class="fc">&nbsp;                            url.removeQuery().build().toString(),</b>
    -<b class="fc">&nbsp;                            methodNameString(request));</b>
    -<b class="nc">&nbsp;                } catch (URISyntaxException e) {</b>
    -<b class="nc">&nbsp;                    throw new IllegalArgumentException(e);</b>
    -&nbsp;                }
    -&nbsp;            };
    -&nbsp;
    -&nbsp;    private static String methodNameString(HttpRequest request) {
    -<b class="fc">&nbsp;        return request.getMethod().toLowerCase(Locale.ROOT) + &quot;-requests&quot;;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-2.html b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-2.html
    deleted file mode 100644
    index b6d5124853..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-2.html
    +++ /dev/null
    @@ -1,137 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > HttpClientMetricNameStrategy</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: HttpClientMetricNameStrategy (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">HttpClientMetricNameStrategy</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$nKI5Fu8h</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$nKI5Fu8h$auxiliary$PBGtThL9</td>
    -  </tr>
    -  <tr>
    -    <td class="name">HttpClientMetricNameStrategy$MockitoMock$nKI5Fu8h$auxiliary$Z07E9CCB</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    0%
    -  </span>
    -  <span class="absValue">
    -    (0/2)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.classic.HttpClient;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;
    -&nbsp;@FunctionalInterface
    -&nbsp;public interface HttpClientMetricNameStrategy {
    -&nbsp;
    -&nbsp;    String getNameFor(String name, HttpRequest request);
    -&nbsp;
    -&nbsp;    default String getNameFor(String name, Exception exception) {
    -<b class="nc">&nbsp;        return MetricRegistry.name(HttpClient.class,</b>
    -&nbsp;                name,
    -<b class="nc">&nbsp;                exception.getClass().getSimpleName());</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-3.html b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-3.html
    deleted file mode 100644
    index 4bb34ff2b9..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-3.html
    +++ /dev/null
    @@ -1,285 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAsyncClientConnectionManager</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAsyncClientConnectionManager (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAsyncClientConnectionManager</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (22/22)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedAsyncClientConnectionManager$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (4/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (8/20)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    70%
    -  </span>
    -  <span class="absValue">
    -    (14/20)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    71.4%
    -  </span>
    -  <span class="absValue">
    -    (30/42)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.DnsResolver;
    -&nbsp;import org.apache.hc.client5.http.SchemePortResolver;
    -&nbsp;import org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy;
    -&nbsp;import org.apache.hc.core5.http.URIScheme;
    -&nbsp;import org.apache.hc.core5.http.config.Lookup;
    -&nbsp;import org.apache.hc.core5.http.config.Registry;
    -&nbsp;import org.apache.hc.core5.http.config.RegistryBuilder;
    -&nbsp;import org.apache.hc.core5.http.nio.ssl.TlsStrategy;
    -&nbsp;import org.apache.hc.core5.io.CloseMode;
    -&nbsp;import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
    -&nbsp;import org.apache.hc.core5.pool.PoolReusePolicy;
    -&nbsp;import org.apache.hc.core5.util.TimeValue;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    -&nbsp; */
    -&nbsp;public class InstrumentedAsyncClientConnectionManager extends PoolingAsyncClientConnectionManager {
    -<b class="fc">&nbsp;    private static final String METRICS_PREFIX = AsyncClientConnectionManager.class.getName();</b>
    -&nbsp;
    -&nbsp;    protected static Registry&lt;TlsStrategy&gt; getDefaultTlsStrategy() {
    -<b class="fc">&nbsp;        return RegistryBuilder.&lt;TlsStrategy&gt;create()</b>
    -<b class="fc">&nbsp;                .register(URIScheme.HTTPS.id, DefaultClientTlsStrategy.getDefault())</b>
    -<b class="fc">&nbsp;                .build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricsRegistry;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    InstrumentedAsyncClientConnectionManager(final MetricRegistry metricRegistry,
    -&nbsp;                                             final String name,
    -&nbsp;                                             final Lookup&lt;TlsStrategy&gt; tlsStrategyLookup,
    -&nbsp;                                             final PoolConcurrencyPolicy poolConcurrencyPolicy,
    -&nbsp;                                             final PoolReusePolicy poolReusePolicy,
    -&nbsp;                                             final TimeValue timeToLive,
    -&nbsp;                                             final SchemePortResolver schemePortResolver,
    -&nbsp;                                             final DnsResolver dnsResolver) {
    -&nbsp;
    -<b class="fc">&nbsp;        super(tlsStrategyLookup, poolConcurrencyPolicy, poolReusePolicy, timeToLive, schemePortResolver, dnsResolver);</b>
    -<b class="fc">&nbsp;        this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;available-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getAvailable());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;leased-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;max-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;pending-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="fc">&nbsp;        close(CloseMode.GRACEFUL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close(CloseMode closeMode) {
    -<b class="fc">&nbsp;        super.close(closeMode);</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;available-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;leased-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;max-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;pending-connections&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static class Builder {
    -&nbsp;        private MetricRegistry metricsRegistry;
    -&nbsp;        private String name;
    -<b class="fc">&nbsp;        private Lookup&lt;TlsStrategy&gt; tlsStrategyLookup = getDefaultTlsStrategy();</b>
    -&nbsp;        private SchemePortResolver schemePortResolver;
    -&nbsp;        private DnsResolver dnsResolver;
    -&nbsp;        private PoolConcurrencyPolicy poolConcurrencyPolicy;
    -&nbsp;        private PoolReusePolicy poolReusePolicy;
    -<b class="fc">&nbsp;        private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;</b>
    -&nbsp;
    -<b class="fc">&nbsp;        Builder() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder metricsRegistry(MetricRegistry metricRegistry) {
    -<b class="fc">&nbsp;            this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder name(final String name) {
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    -<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    -<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder timeToLive(TimeValue timeToLive) {
    -<b class="nc">&nbsp;            this.timeToLive = timeToLive;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder tlsStrategyLookup(Lookup&lt;TlsStrategy&gt; tlsStrategyLookup) {
    -<b class="nc">&nbsp;            this.tlsStrategyLookup = tlsStrategyLookup;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
    -<b class="nc">&nbsp;            this.poolConcurrencyPolicy = poolConcurrencyPolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
    -<b class="nc">&nbsp;            this.poolReusePolicy = poolReusePolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public InstrumentedAsyncClientConnectionManager build() {
    -<b class="fc">&nbsp;            return new InstrumentedAsyncClientConnectionManager(</b>
    -&nbsp;                    metricsRegistry,
    -&nbsp;                    name,
    -&nbsp;                    tlsStrategyLookup,
    -&nbsp;                    poolConcurrencyPolicy,
    -&nbsp;                    poolReusePolicy,
    -&nbsp;                    timeToLive,
    -&nbsp;                    schemePortResolver,
    -&nbsp;                    dnsResolver);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-4.html b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-4.html
    deleted file mode 100644
    index cb588e14ba..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-4.html
    +++ /dev/null
    @@ -1,229 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedAsyncExecChainHandler</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedAsyncExecChainHandler (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedAsyncExecChainHandler</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (3/3)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedAsyncExecChainHandler$InstrumentedAsyncExecCallback</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    93.3%
    -  </span>
    -  <span class="absValue">
    -    (14/15)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    90%
    -  </span>
    -  <span class="absValue">
    -    (9/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    95.5%
    -  </span>
    -  <span class="absValue">
    -    (21/22)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.apache.hc.client5.http.async.AsyncExecCallback;
    -&nbsp;import org.apache.hc.client5.http.async.AsyncExecChain;
    -&nbsp;import org.apache.hc.client5.http.async.AsyncExecChainHandler;
    -&nbsp;import org.apache.hc.core5.http.EntityDetails;
    -&nbsp;import org.apache.hc.core5.http.HttpException;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;import org.apache.hc.core5.http.HttpResponse;
    -&nbsp;import org.apache.hc.core5.http.nio.AsyncDataConsumer;
    -&nbsp;import org.apache.hc.core5.http.nio.AsyncEntityProducer;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;class InstrumentedAsyncExecChainHandler implements AsyncExecChainHandler {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    public InstrumentedAsyncExecChainHandler(MetricRegistry registry, HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedAsyncExecChainHandler(MetricRegistry registry,
    -&nbsp;                                             HttpClientMetricNameStrategy metricNameStrategy,
    -<b class="fc">&nbsp;                                             String name) {</b>
    -<b class="fc">&nbsp;        this.registry = requireNonNull(registry, &quot;registry&quot;);</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = requireNonNull(metricNameStrategy, &quot;metricNameStrategy&quot;);</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void execute(HttpRequest request,
    -&nbsp;                        AsyncEntityProducer entityProducer,
    -&nbsp;                        AsyncExecChain.Scope scope,
    -&nbsp;                        AsyncExecChain chain,
    -&nbsp;                        AsyncExecCallback asyncExecCallback) throws HttpException, IOException {
    -<b class="fc">&nbsp;        final InstrumentedAsyncExecCallback instrumentedAsyncExecCallback =</b>
    -&nbsp;                new InstrumentedAsyncExecCallback(registry, metricNameStrategy, name, asyncExecCallback, request);
    -<b class="fc">&nbsp;        chain.proceed(request, entityProducer, scope, instrumentedAsyncExecCallback);</b>
    -&nbsp;
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    final static class InstrumentedAsyncExecCallback implements AsyncExecCallback {
    -&nbsp;        private final MetricRegistry registry;
    -&nbsp;        private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;        private final String name;
    -&nbsp;        private final AsyncExecCallback delegate;
    -&nbsp;        private final Timer.Context timerContext;
    -&nbsp;
    -&nbsp;        public InstrumentedAsyncExecCallback(MetricRegistry registry,
    -&nbsp;                                             HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                             String name,
    -&nbsp;                                             AsyncExecCallback delegate,
    -<b class="fc">&nbsp;                                             HttpRequest request) {</b>
    -<b class="fc">&nbsp;            this.registry = registry;</b>
    -<b class="fc">&nbsp;            this.metricNameStrategy = metricNameStrategy;</b>
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            this.delegate = delegate;</b>
    -<b class="fc">&nbsp;            this.timerContext = timer(request).time();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public AsyncDataConsumer handleResponse(HttpResponse response, EntityDetails entityDetails) throws HttpException, IOException {
    -<b class="fc">&nbsp;            return delegate.handleResponse(response, entityDetails);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void handleInformationResponse(HttpResponse response) throws HttpException, IOException {
    -<b class="nc">&nbsp;            delegate.handleInformationResponse(response);</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void completed() {
    -<b class="fc">&nbsp;            delegate.completed();</b>
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        @Override
    -&nbsp;        public void failed(Exception cause) {
    -<b class="fc">&nbsp;            delegate.failed(cause);</b>
    -<b class="fc">&nbsp;            meter(cause).mark();</b>
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;            return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        private Meter meter(Exception e) {
    -<b class="fc">&nbsp;            return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-5.html b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-5.html
    deleted file mode 100644
    index 4de18e4a71..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-5.html
    +++ /dev/null
    @@ -1,147 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpAsyncClients</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpAsyncClients (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpAsyncClients</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    40%
    -  </span>
    -  <span class="absValue">
    -    (2/5)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    57.1%
    -  </span>
    -  <span class="absValue">
    -    (4/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.impl.ChainElement;
    -&nbsp;import org.apache.hc.client5.http.impl.async.CloseableHttpAsyncClient;
    -&nbsp;import org.apache.hc.client5.http.impl.async.HttpAsyncClientBuilder;
    -&nbsp;import org.apache.hc.client5.http.nio.AsyncClientConnectionManager;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpAsyncClients {
    -&nbsp;    private InstrumentedHttpAsyncClients() {
    -&nbsp;        super();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpAsyncClient createDefault(MetricRegistry metricRegistry,
    -&nbsp;                                                         HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                                HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        return custom(metricRegistry, metricNameStrategy, InstrumentedAsyncClientConnectionManager.builder(metricRegistry).build());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpAsyncClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                                HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                                AsyncClientConnectionManager clientConnectionManager) {
    -<b class="fc">&nbsp;        return HttpAsyncClientBuilder.create()</b>
    -<b class="fc">&nbsp;                .setConnectionManager(clientConnectionManager)</b>
    -<b class="fc">&nbsp;                .addExecInterceptorBefore(ChainElement.CONNECT.name(), &quot;dropwizard-metrics&quot;,</b>
    -&nbsp;                        new InstrumentedAsyncExecChainHandler(metricRegistry, metricNameStrategy));
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-6.html b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-6.html
    deleted file mode 100644
    index f33b495d26..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-6.html
    +++ /dev/null
    @@ -1,308 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClientConnectionManager</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClientConnectionManager (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClientConnectionManager</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (10/10)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (23/23)
    -  </span>
    -</td>
    -</tr>
    -  <tr>
    -    <td class="name">InstrumentedHttpClientConnectionManager$Builder</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    33.3%
    -  </span>
    -  <span class="absValue">
    -    (4/12)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    38.5%
    -  </span>
    -  <span class="absValue">
    -    (10/26)
    -  </span>
    -</td>
    -  </tr>
    -<tr>
    -  <td class="name"><strong>Total</strong></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    63.6%
    -  </span>
    -  <span class="absValue">
    -    (14/22)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    67.3%
    -  </span>
    -  <span class="absValue">
    -    (33/49)
    -  </span>
    -</td>
    -</tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.DnsResolver;
    -&nbsp;import org.apache.hc.client5.http.SchemePortResolver;
    -&nbsp;import org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator;
    -&nbsp;import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionManager;
    -&nbsp;import org.apache.hc.client5.http.io.HttpClientConnectionOperator;
    -&nbsp;import org.apache.hc.client5.http.io.ManagedHttpClientConnection;
    -&nbsp;import org.apache.hc.client5.http.socket.ConnectionSocketFactory;
    -&nbsp;import org.apache.hc.client5.http.socket.PlainConnectionSocketFactory;
    -&nbsp;import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
    -&nbsp;import org.apache.hc.core5.http.URIScheme;
    -&nbsp;import org.apache.hc.core5.http.config.Registry;
    -&nbsp;import org.apache.hc.core5.http.config.RegistryBuilder;
    -&nbsp;import org.apache.hc.core5.http.io.HttpConnectionFactory;
    -&nbsp;import org.apache.hc.core5.io.CloseMode;
    -&nbsp;import org.apache.hc.core5.pool.PoolConcurrencyPolicy;
    -&nbsp;import org.apache.hc.core5.pool.PoolReusePolicy;
    -&nbsp;import org.apache.hc.core5.util.TimeValue;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;import static java.util.Objects.requireNonNull;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link HttpClientConnectionManager} which monitors the number of open connections.
    -&nbsp; */
    -&nbsp;public class InstrumentedHttpClientConnectionManager extends PoolingHttpClientConnectionManager {
    -<b class="fc">&nbsp;    private static final String METRICS_PREFIX = HttpClientConnectionManager.class.getName();</b>
    -&nbsp;
    -&nbsp;    protected static Registry&lt;ConnectionSocketFactory&gt; getDefaultRegistry() {
    -<b class="fc">&nbsp;        return RegistryBuilder.&lt;ConnectionSocketFactory&gt;create()</b>
    -<b class="fc">&nbsp;                .register(URIScheme.HTTP.id, PlainConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;                .register(URIScheme.HTTPS.id, SSLConnectionSocketFactory.getSocketFactory())</b>
    -<b class="fc">&nbsp;                .build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private final MetricRegistry metricsRegistry;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    InstrumentedHttpClientConnectionManager(final MetricRegistry metricRegistry,
    -&nbsp;                                            final String name,
    -&nbsp;                                            final HttpClientConnectionOperator httpClientConnectionOperator,
    -&nbsp;                                            final PoolConcurrencyPolicy poolConcurrencyPolicy,
    -&nbsp;                                            final PoolReusePolicy poolReusePolicy,
    -&nbsp;                                            final TimeValue timeToLive,
    -&nbsp;                                            final HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory) {
    -&nbsp;
    -<b class="fc">&nbsp;        super(httpClientConnectionOperator, poolConcurrencyPolicy, poolReusePolicy, timeToLive, connFactory);</b>
    -<b class="fc">&nbsp;        this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -&nbsp;
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;available-connections&quot;),</b>
    -&nbsp;                () -&gt; {
    -<b class="fc">&nbsp;                    return getTotalStats().getAvailable();</b>
    -&nbsp;                });
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;leased-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getLeased());</b>
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;max-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getMax()</b>
    -&nbsp;        );
    -&nbsp;        // this acquires a lock on the connection pool; remove if contention sucks
    -<b class="fc">&nbsp;        metricRegistry.registerGauge(name(METRICS_PREFIX, name, &quot;pending-connections&quot;),</b>
    -<b class="fc">&nbsp;                () -&gt; getTotalStats().getPending());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close() {
    -<b class="fc">&nbsp;        close(CloseMode.GRACEFUL);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public void close(CloseMode closeMode) {
    -<b class="fc">&nbsp;        super.close(closeMode);</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;available-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;leased-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;max-connections&quot;));</b>
    -<b class="fc">&nbsp;        metricsRegistry.remove(name(METRICS_PREFIX, name, &quot;pending-connections&quot;));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static Builder builder(MetricRegistry metricsRegistry) {
    -<b class="fc">&nbsp;        return new Builder().metricsRegistry(metricsRegistry);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static class Builder {
    -&nbsp;        private MetricRegistry metricsRegistry;
    -&nbsp;        private String name;
    -&nbsp;        private HttpClientConnectionOperator httpClientConnectionOperator;
    -<b class="fc">&nbsp;        private Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry = getDefaultRegistry();</b>
    -&nbsp;        private SchemePortResolver schemePortResolver;
    -&nbsp;        private DnsResolver dnsResolver;
    -&nbsp;        private PoolConcurrencyPolicy poolConcurrencyPolicy;
    -&nbsp;        private PoolReusePolicy poolReusePolicy;
    -<b class="fc">&nbsp;        private TimeValue timeToLive = TimeValue.NEG_ONE_MILLISECOND;</b>
    -&nbsp;        private HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory;
    -&nbsp;
    -<b class="fc">&nbsp;        Builder() {</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder metricsRegistry(MetricRegistry metricRegistry) {
    -<b class="fc">&nbsp;            this.metricsRegistry = requireNonNull(metricRegistry, &quot;metricRegistry&quot;);</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder name(final String name) {
    -<b class="fc">&nbsp;            this.name = name;</b>
    -<b class="fc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder socketFactoryRegistry(Registry&lt;ConnectionSocketFactory&gt; socketFactoryRegistry) {
    -<b class="nc">&nbsp;            this.socketFactoryRegistry = requireNonNull(socketFactoryRegistry, &quot;socketFactoryRegistry&quot;);</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder connFactory(HttpConnectionFactory&lt;ManagedHttpClientConnection&gt; connFactory) {
    -<b class="nc">&nbsp;            this.connFactory = connFactory;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder schemePortResolver(SchemePortResolver schemePortResolver) {
    -<b class="nc">&nbsp;            this.schemePortResolver = schemePortResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder dnsResolver(DnsResolver dnsResolver) {
    -<b class="nc">&nbsp;            this.dnsResolver = dnsResolver;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder timeToLive(TimeValue timeToLive) {
    -<b class="nc">&nbsp;            this.timeToLive = timeToLive;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder httpClientConnectionOperator(HttpClientConnectionOperator httpClientConnectionOperator) {
    -<b class="nc">&nbsp;            this.httpClientConnectionOperator = httpClientConnectionOperator;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder poolConcurrencyPolicy(PoolConcurrencyPolicy poolConcurrencyPolicy) {
    -<b class="nc">&nbsp;            this.poolConcurrencyPolicy = poolConcurrencyPolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public Builder poolReusePolicy(PoolReusePolicy poolReusePolicy) {
    -<b class="nc">&nbsp;            this.poolReusePolicy = poolReusePolicy;</b>
    -<b class="nc">&nbsp;            return this;</b>
    -&nbsp;        }
    -&nbsp;
    -&nbsp;        public InstrumentedHttpClientConnectionManager build() {
    -<b class="fc">&nbsp;            if (httpClientConnectionOperator == null) {</b>
    -<b class="fc">&nbsp;                httpClientConnectionOperator = new DefaultHttpClientConnectionOperator(</b>
    -&nbsp;                        socketFactoryRegistry,
    -&nbsp;                        schemePortResolver,
    -&nbsp;                        dnsResolver);
    -&nbsp;            }
    -&nbsp;
    -<b class="fc">&nbsp;            return new InstrumentedHttpClientConnectionManager(</b>
    -&nbsp;                    metricsRegistry,
    -&nbsp;                    name,
    -&nbsp;                    httpClientConnectionOperator,
    -&nbsp;                    poolConcurrencyPolicy,
    -&nbsp;                    poolReusePolicy,
    -&nbsp;                    timeToLive,
    -&nbsp;                    connFactory);
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-7.html b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-7.html
    deleted file mode 100644
    index 04849b2912..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-7.html
    +++ /dev/null
    @@ -1,138 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpClients</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpClients (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpClients</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    25%
    -  </span>
    -  <span class="absValue">
    -    (1/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    50%
    -  </span>
    -  <span class="absValue">
    -    (3/6)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
    -&nbsp;import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.httpclient5.HttpClientMetricNameStrategies.METHOD_ONLY;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpClients {
    -&nbsp;    private InstrumentedHttpClients() {
    -&nbsp;        super();
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return createDefault(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static CloseableHttpClient createDefault(MetricRegistry metricRegistry,
    -&nbsp;                                                    HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, metricNameStrategy).build();</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry) {
    -<b class="nc">&nbsp;        return custom(metricRegistry, METHOD_ONLY);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public static HttpClientBuilder custom(MetricRegistry metricRegistry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        return HttpClientBuilder.create()</b>
    -<b class="fc">&nbsp;                .setRequestExecutor(new InstrumentedHttpRequestExecutor(metricRegistry, metricNameStrategy))</b>
    -<b class="fc">&nbsp;                .setConnectionManager(InstrumentedHttpClientConnectionManager.builder(metricRegistry).build());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-8.html b/metrics-complete-report-initial-htmlReport/ns-d/sources/source-8.html
    deleted file mode 100644
    index b12a60ece1..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-d/sources/source-8.html
    +++ /dev/null
    @@ -1,182 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedHttpRequestExecutor</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.httpclient5</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedHttpRequestExecutor (com.codahale.metrics.httpclient5)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedHttpRequestExecutor</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (7/7)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (16/16)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.httpclient5;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.Meter;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import org.apache.hc.core5.http.ClassicHttpRequest;
    -&nbsp;import org.apache.hc.core5.http.ClassicHttpResponse;
    -&nbsp;import org.apache.hc.core5.http.ConnectionReuseStrategy;
    -&nbsp;import org.apache.hc.core5.http.HttpException;
    -&nbsp;import org.apache.hc.core5.http.HttpRequest;
    -&nbsp;import org.apache.hc.core5.http.impl.Http1StreamListener;
    -&nbsp;import org.apache.hc.core5.http.impl.io.HttpRequestExecutor;
    -&nbsp;import org.apache.hc.core5.http.io.HttpClientConnection;
    -&nbsp;import org.apache.hc.core5.http.io.HttpResponseInformationCallback;
    -&nbsp;import org.apache.hc.core5.http.protocol.HttpContext;
    -&nbsp;import org.apache.hc.core5.util.Timeout;
    -&nbsp;
    -&nbsp;import java.io.IOException;
    -&nbsp;
    -&nbsp;public class InstrumentedHttpRequestExecutor extends HttpRequestExecutor {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final HttpClientMetricNameStrategy metricNameStrategy;
    -&nbsp;    private final String name;
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, HttpRequestExecutor.DEFAULT_WAIT_FOR_CONTINUE);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name,
    -&nbsp;                                           Timeout waitForContinue) {
    -<b class="fc">&nbsp;        this(registry, metricNameStrategy, name, waitForContinue, null, null);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedHttpRequestExecutor(MetricRegistry registry,
    -&nbsp;                                           HttpClientMetricNameStrategy metricNameStrategy,
    -&nbsp;                                           String name,
    -&nbsp;                                           Timeout waitForContinue,
    -&nbsp;                                           ConnectionReuseStrategy connReuseStrategy,
    -&nbsp;                                           Http1StreamListener streamListener) {
    -<b class="fc">&nbsp;        super(waitForContinue, connReuseStrategy, streamListener);</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.name = name;</b>
    -<b class="fc">&nbsp;        this.metricNameStrategy = metricNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    /**
    -&nbsp;     * {@inheritDoc}
    -&nbsp;     */
    -&nbsp;    @Override
    -&nbsp;    public ClassicHttpResponse execute(ClassicHttpRequest request, HttpClientConnection conn, HttpResponseInformationCallback informationCallback, HttpContext context) throws IOException, HttpException {
    -<b class="fc">&nbsp;        final Timer.Context timerContext = timer(request).time();</b>
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return super.execute(request, conn, informationCallback, context);</b>
    -<b class="fc">&nbsp;        } catch (HttpException | IOException e) {</b>
    -<b class="fc">&nbsp;            meter(e).mark();</b>
    -<b class="fc">&nbsp;            throw e;</b>
    -&nbsp;        } finally {
    -<b class="fc">&nbsp;            timerContext.stop();</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer timer(HttpRequest request) {
    -<b class="fc">&nbsp;        return registry.timer(metricNameStrategy.getNameFor(name, request));</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Meter meter(Exception e) {
    -<b class="fc">&nbsp;        return registry.meter(metricNameStrategy.getNameFor(name, e));</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index.html b/metrics-complete-report-initial-htmlReport/ns-e/index.html
    deleted file mode 100644
    index 949d6c31d1..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-e/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 9ed1a066a4..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index d04e3dc3bb..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index 9e66c91b73..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index e8d61524aa..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 49215c02ee..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index 51813d3bf0..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index b8451e1866..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 97ae4deddf..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index e1d8b33075..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-e/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jcache</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jcache</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jcache</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jcache</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">JCacheGaugeSet</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-e/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-e/sources/source-1.html
    deleted file mode 100644
    index 7faedf5fdf..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-e/sources/source-1.html
    +++ /dev/null
    @@ -1,189 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > JCacheGaugeSet</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jcache</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: JCacheGaugeSet (com.codahale.metrics.jcache)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">JCacheGaugeSet</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (6/6)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    88.5%
    -  </span>
    -  <span class="absValue">
    -    (23/26)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jcache;
    -&nbsp;
    -&nbsp;import org.slf4j.Logger;
    -&nbsp;import org.slf4j.LoggerFactory;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.jvm.JmxAttributeGauge;
    -&nbsp;import com.codahale.metrics.Metric;
    -&nbsp;import com.codahale.metrics.MetricSet;
    -&nbsp;
    -&nbsp;import java.lang.management.ManagementFactory;
    -&nbsp;import java.lang.reflect.Method;
    -&nbsp;import java.util.ArrayList;
    -&nbsp;import java.util.Collections;
    -&nbsp;import java.util.HashMap;
    -&nbsp;import java.util.List;
    -&nbsp;import java.util.Locale;
    -&nbsp;import java.util.Map;
    -&nbsp;import java.util.Set;
    -&nbsp;
    -&nbsp;import javax.cache.management.CacheStatisticsMXBean;
    -&nbsp;import javax.management.MalformedObjectNameException;
    -&nbsp;import javax.management.ObjectInstance;
    -&nbsp;import javax.management.ObjectName;
    -&nbsp;
    -&nbsp;import static com.codahale.metrics.MetricRegistry.name;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * Gauge set retrieving JCache JMX attributes
    -&nbsp; *
    -&nbsp; * @author &lt;a href=&quot;mailto:henri.tremblay@softwareag.com&quot;&gt;Henri Tremblay&lt;/a&gt;
    -&nbsp; * @author &lt;a href=&quot;mailto:anthony.dahanne@softwareag.com&quot;&gt;Anthony Dahanne&lt;/a&gt;
    -&nbsp; */
    -<b class="fc">&nbsp;public class JCacheGaugeSet implements MetricSet {</b>
    -&nbsp;
    -&nbsp;    private static final String M_BEAN_COORDINATES = &quot;javax.cache:type=CacheStatistics,CacheManager=*,Cache=*&quot;;
    -&nbsp;
    -<b class="fc">&nbsp;    private static final Logger LOGGER = LoggerFactory.getLogger(JCacheGaugeSet.class);</b>
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public Map&lt;String, Metric&gt; getMetrics() {
    -<b class="fc">&nbsp;        Set&lt;ObjectInstance&gt; cacheBeans = getCacheBeans();</b>
    -<b class="fc">&nbsp;        List&lt;String&gt; availableStatsNames = retrieveStatsNames();</b>
    -&nbsp;
    -<b class="fc">&nbsp;        Map&lt;String, Metric&gt; gauges = new HashMap&lt;&gt;(cacheBeans.size() * availableStatsNames.size());</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (ObjectInstance cacheBean : cacheBeans) {</b>
    -<b class="fc">&nbsp;            ObjectName objectName = cacheBean.getObjectName();</b>
    -<b class="fc">&nbsp;            String cacheName = objectName.getKeyProperty(&quot;Cache&quot;);</b>
    -&nbsp;
    -<b class="fc">&nbsp;            for (String statsName : availableStatsNames) {</b>
    -<b class="fc">&nbsp;                JmxAttributeGauge jmxAttributeGauge = new JmxAttributeGauge(objectName, statsName);</b>
    -<b class="fc">&nbsp;                gauges.put(name(cacheName, toSpinalCase(statsName)), jmxAttributeGauge);</b>
    -<b class="fc">&nbsp;            }</b>
    -<b class="fc">&nbsp;        }</b>
    -&nbsp;
    -<b class="fc">&nbsp;        return Collections.unmodifiableMap(gauges);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Set&lt;ObjectInstance&gt; getCacheBeans() {
    -&nbsp;        try {
    -<b class="fc">&nbsp;            return ManagementFactory.getPlatformMBeanServer().queryMBeans(ObjectName.getInstance(M_BEAN_COORDINATES), null);</b>
    -<b class="nc">&nbsp;        } catch (MalformedObjectNameException e) {</b>
    -<b class="nc">&nbsp;            LOGGER.error(&quot;Unable to retrieve {}. Are JCache statistics enabled?&quot;, M_BEAN_COORDINATES);</b>
    -<b class="nc">&nbsp;            throw new RuntimeException(e);</b>
    -&nbsp;        }
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private List&lt;String&gt; retrieveStatsNames() {
    -<b class="fc">&nbsp;        Method[] methods = CacheStatisticsMXBean.class.getDeclaredMethods();</b>
    -<b class="fc">&nbsp;        List&lt;String&gt; availableStatsNames = new ArrayList&lt;&gt;(methods.length);</b>
    -&nbsp;
    -<b class="fc">&nbsp;        for (Method method : methods) {</b>
    -<b class="fc">&nbsp;            String methodName = method.getName();</b>
    -<b class="fc">&nbsp;            if (methodName.startsWith(&quot;get&quot;)) {</b>
    -<b class="fc">&nbsp;                availableStatsNames.add(methodName.substring(3));</b>
    -&nbsp;            }
    -&nbsp;        }
    -<b class="fc">&nbsp;        return availableStatsNames;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private static String toSpinalCase(String camelCase) {
    -<b class="fc">&nbsp;        return camelCase.replaceAll(&quot;(.)(\\p{Upper})&quot;, &quot;$1-$2&quot;).toLowerCase(Locale.US);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index.html b/metrics-complete-report-initial-htmlReport/ns-f/index.html
    deleted file mode 100644
    index f8b1117977..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-f/index.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedAsc
    -">
    -<a href="index_SORT_BY_NAME_DESC.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK.html b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK.html
    deleted file mode 100644
    index 73d3635ad4..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
    deleted file mode 100644
    index b39ec485b9..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_BLOCK_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_BLOCK_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS.html b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS.html
    deleted file mode 100644
    index bacec2aed5..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_CLASS_DESC.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
    deleted file mode 100644
    index f282a7c2ae..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_CLASS_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_CLASS_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_LINE.html b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_LINE.html
    deleted file mode 100644
    index 29421c8b14..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_LINE.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_LINE_DESC.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
    deleted file mode 100644
    index c73d9e6890..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_LINE_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_LINE_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD.html b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD.html
    deleted file mode 100644
    index 7e24c88ab2..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedAsc
    -">
    -  <a href="index_SORT_BY_METHOD_DESC.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
    deleted file mode 100644
    index 78dd046616..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_METHOD_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_METHOD_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat sortedDesc
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html b/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
    deleted file mode 100644
    index b9d0d557fd..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-f/index_SORT_BY_NAME_DESC.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > com.codahale.metrics.jdbi</title>
    -  <style type="text/css">
    -    @import "../css/coverage.css";
    -    @import "../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -
    -<div class="breadCrumbs">
    -Current scope:     <a href="../index_SORT_BY_NAME_DESC.html">all classes</a>
    -    <span class="separator">|</span>
    -com.codahale.metrics.jdbi</div>
    -
    -<h1>Coverage Summary for Package: com.codahale.metrics.jdbi</h1>
    -<table class="coverageStats">
    -  <tr>
    -    <th class="name">Package</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -  </tr>
    -  <tr>
    -    <td class="name">com.codahale.metrics.jdbi</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -<br/>
    -<br/>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name  sortedDesc
    -">
    -<a href="index.html">Class</a>  </th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_CLASS.html">Class, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_METHOD.html">Method, %</a>
    -</th>
    -<th class="coverageStat 
    -">
    -  <a href="index_SORT_BY_LINE.html">Line, %</a>
    -</th>
    -</tr>
    -  <tr>
    -    <td class="name"><a href="sources/source-1.html">InstrumentedTimingCollector</a></td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -  </tr>
    -</table>
    -
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-complete-report-initial-htmlReport/ns-f/sources/source-1.html b/metrics-complete-report-initial-htmlReport/ns-f/sources/source-1.html
    deleted file mode 100644
    index 28e05d1f0a..0000000000
    --- a/metrics-complete-report-initial-htmlReport/ns-f/sources/source-1.html
    +++ /dev/null
    @@ -1,143 +0,0 @@
    -
    -
    -
    -<!DOCTYPE html>
    -<html id="htmlId">
    -<head>
    -  <meta http-equiv="Content-Type" content="text/html;charset=windows-1252"> 
    -  <title>Coverage Report > InstrumentedTimingCollector</title>
    -  <style type="text/css">
    -    @import "../../css/coverage.css";
    -    @import "../../css/idea.min.css";
    -  </style>
    -  <script type="text/javascript" src="../../js/highlight.min.js"></script>
    -  <script type="text/javascript" src="../../js/highlightjs-line-numbers.min.js"></script>
    -</head>
    -
    -<body>
    -<div class="content">
    -<div class="breadCrumbs">
    -Current scope:     <a href="../../index.html">all classes</a>
    -    <span class="separator">|</span>
    -    <a href="../index.html">com.codahale.metrics.jdbi</a>
    -</div>
    -
    -<h1>Coverage Summary for Class: InstrumentedTimingCollector (com.codahale.metrics.jdbi)</h1>
    -
    -<table class="coverageStats">
    -<tr>
    -  <th class="name">Class</th>
    -<th class="coverageStat 
    -">
    -  Class, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Method, %
    -</th>
    -<th class="coverageStat 
    -">
    -  Line, %
    -</th>
    -</tr>
    -<tr>
    -  <td class="name">InstrumentedTimingCollector</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    100%
    -  </span>
    -  <span class="absValue">
    -    (1/1)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    75%
    -  </span>
    -  <span class="absValue">
    -    (3/4)
    -  </span>
    -</td>
    -<td class="coverageStat">
    -  <span class="percent">
    -    85.7%
    -  </span>
    -  <span class="absValue">
    -    (6/7)
    -  </span>
    -</td>
    -</tr>
    -
    -</table>
    -
    -<br/>
    -<br/>
    -
    -
    -<pre>
    -<code class="sourceCode" id="sourceCode">&nbsp;package com.codahale.metrics.jdbi;
    -&nbsp;
    -&nbsp;import com.codahale.metrics.MetricRegistry;
    -&nbsp;import com.codahale.metrics.Timer;
    -&nbsp;import com.codahale.metrics.jdbi.strategies.SmartNameStrategy;
    -&nbsp;import com.codahale.metrics.jdbi.strategies.StatementNameStrategy;
    -&nbsp;import org.skife.jdbi.v2.StatementContext;
    -&nbsp;import org.skife.jdbi.v2.TimingCollector;
    -&nbsp;
    -&nbsp;import java.util.concurrent.TimeUnit;
    -&nbsp;
    -&nbsp;/**
    -&nbsp; * A {@link TimingCollector} implementation for JDBI which uses the SQL objects&#39; class names and
    -&nbsp; * method names for millisecond-precision timers.
    -&nbsp; */
    -&nbsp;public class InstrumentedTimingCollector implements TimingCollector {
    -&nbsp;    private final MetricRegistry registry;
    -&nbsp;    private final StatementNameStrategy statementNameStrategy;
    -&nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry) {
    -<b class="nc">&nbsp;        this(registry, new SmartNameStrategy());</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    public InstrumentedTimingCollector(MetricRegistry registry,
    -<b class="fc">&nbsp;                                       StatementNameStrategy statementNameStrategy) {</b>
    -<b class="fc">&nbsp;        this.registry = registry;</b>
    -<b class="fc">&nbsp;        this.statementNameStrategy = statementNameStrategy;</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    @Override
    -&nbsp;    public void collect(long elapsedTime, StatementContext ctx) {
    -<b class="fc">&nbsp;        final Timer timer = getTimer(ctx);</b>
    -<b class="fc">&nbsp;        timer.update(elapsedTime, TimeUnit.NANOSECONDS);</b>
    -&nbsp;    }
    -&nbsp;
    -&nbsp;    private Timer getTimer(StatementContext ctx) {
    -<b class="fc">&nbsp;        return registry.timer(statementNameStrategy.getStatementName(ctx));</b>
    -&nbsp;    }
    -&nbsp;}
    -</code>
    -</pre>
    -</div>
    -
    -<script type="text/javascript">
    -(function() {
    -    var msie = false, msie9 = false;
    -    /*@cc_on
    -      msie = true;
    -      @if (@_jscript_version >= 9)
    -        msie9 = true;
    -      @end
    -    @*/
    -
    -    if (!msie || msie && msie9) {
    -      hljs.highlightAll()
    -      hljs.initLineNumbersOnLoad();
    -    }
    -})();
    -</script>
    -
    -<div class="footer">
    -    
    -    <div style="float:right;">generated on 2024-02-27 23:52</div>
    -</div>
    -</body>
    -</html>
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppender.html b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppender.html
    deleted file mode 100644
    index 476a1cc88b..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppender.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedAppender</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics.log4j2</a> &gt; <span class="el_class">InstrumentedAppender</span></div><h1>InstrumentedAppender</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">8 of 186</td><td class="ctr2">95%</td><td class="bar">1 of 7</td><td class="ctr2">85%</td><td class="ctr1">2</td><td class="ctr2">14</td><td class="ctr1">2</td><td class="ctr2">37</td><td class="ctr1">1</td><td class="ctr2">8</td></tr></tfoot><tbody><tr><td id="a5"><a href="InstrumentedAppender.java.html#L47" class="el_method">InstrumentedAppender(String, Filter, Layout, boolean)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="8" alt="8"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a7"><a href="InstrumentedAppender.java.html#L102" class="el_method">start()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="101" alt="101"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">9</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="InstrumentedAppender.java.html#L114" class="el_method">append(LogEvent)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="41" height="10" title="35" alt="35"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="102" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">85%</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g0">7</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i0">15</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a3"><a href="InstrumentedAppender.java.html#L78" class="el_method">InstrumentedAppender(MetricRegistry, Filter, Layout, boolean)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="13" alt="13"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a6"><a href="InstrumentedAppender.java.html#L89" class="el_method">InstrumentedAppender(String, MetricRegistry)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="11" height="10" title="10" alt="10"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a2"><a href="InstrumentedAppender.java.html#L65" class="el_method">InstrumentedAppender(MetricRegistry)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="7" alt="7"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i5">2</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="InstrumentedAppender.java.html#L97" class="el_method">createAppender(String, String)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="7" alt="7"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a4"><a href="InstrumentedAppender.java.html#L56" class="el_method">InstrumentedAppender(String)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="5" alt="5"/></td><td class="ctr2" id="c6">100%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i6">2</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppender.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppender.java.html
    deleted file mode 100644
    index a49447d290..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppender.java.html
    +++ /dev/null
    @@ -1,139 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedAppender.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics.log4j2</a> &gt; <span class="el_source">InstrumentedAppender.java</span></div><h1>InstrumentedAppender.java</h1><pre class="source lang-java linenums">package com.codahale.metrics.log4j2;
    -
    -import com.codahale.metrics.Meter;
    -import com.codahale.metrics.MetricRegistry;
    -import com.codahale.metrics.SharedMetricRegistries;
    -import org.apache.logging.log4j.core.Appender;
    -import org.apache.logging.log4j.core.Filter;
    -import org.apache.logging.log4j.core.Layout;
    -import org.apache.logging.log4j.core.LogEvent;
    -import org.apache.logging.log4j.core.appender.AbstractAppender;
    -import org.apache.logging.log4j.core.config.plugins.Plugin;
    -import org.apache.logging.log4j.core.config.plugins.PluginAttribute;
    -import org.apache.logging.log4j.core.config.plugins.PluginFactory;
    -
    -import java.io.Serializable;
    -
    -import static com.codahale.metrics.MetricRegistry.name;
    -
    -/**
    - * A Log4J 2.x {@link Appender} which has seven meters, one for each logging level and one for the total
    - * number of statements being logged. The meter names are the logging level names appended to the
    - * name of the appender.
    - */
    -@Plugin(name = &quot;MetricsAppender&quot;, category = &quot;Core&quot;, elementType = &quot;appender&quot;)
    -public class InstrumentedAppender extends AbstractAppender {
    -
    -    private transient final MetricRegistry registry;
    -
    -    private transient Meter all;
    -    private transient Meter trace;
    -    private transient Meter debug;
    -    private transient Meter info;
    -    private transient Meter warn;
    -    private transient Meter error;
    -    private transient Meter fatal;
    -
    -    /**
    -     * Create a new instrumented appender using the given registry name.
    -     *
    -     * @param registryName     the name of the registry in {@link SharedMetricRegistries}
    -     * @param filter           The Filter to associate with the Appender.
    -     * @param layout           The layout to use to format the event.
    -     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
    -     *                         logged and then passed to the application.
    -     */
    -    public InstrumentedAppender(String registryName, Filter filter, Layout&lt;? extends Serializable&gt; layout, boolean ignoreExceptions) {
    -<span class="nc" id="L47">        this(SharedMetricRegistries.getOrCreate(registryName), filter, layout, ignoreExceptions);</span>
    -<span class="nc" id="L48">    }</span>
    -
    -    /**
    -     * Create a new instrumented appender using the given registry name.
    -     *
    -     * @param registryName the name of the registry in {@link SharedMetricRegistries}
    -     */
    -    public InstrumentedAppender(String registryName) {
    -<span class="fc" id="L56">        this(SharedMetricRegistries.getOrCreate(registryName));</span>
    -<span class="fc" id="L57">    }</span>
    -
    -    /**
    -     * Create a new instrumented appender using the given registry.
    -     *
    -     * @param registry the metric registry
    -     */
    -    public InstrumentedAppender(MetricRegistry registry) {
    -<span class="fc" id="L65">        this(registry, null, null, true);</span>
    -<span class="fc" id="L66">    }</span>
    -
    -    /**
    -     * Create a new instrumented appender using the given registry.
    -     *
    -     * @param registry         the metric registry
    -     * @param filter           The Filter to associate with the Appender.
    -     * @param layout           The layout to use to format the event.
    -     * @param ignoreExceptions If true, exceptions will be logged and suppressed. If false errors will be
    -     *                         logged and then passed to the application.
    -     */
    -    public InstrumentedAppender(MetricRegistry registry, Filter filter, Layout&lt;? extends Serializable&gt; layout, boolean ignoreExceptions) {
    -<span class="fc" id="L78">        super(name(Appender.class), filter, layout, ignoreExceptions);</span>
    -<span class="fc" id="L79">        this.registry = registry;</span>
    -<span class="fc" id="L80">    }</span>
    -
    -    /**
    -     * Create a new instrumented appender using the given appender name and registry.
    -     *
    -     * @param appenderName The name of the appender.
    -     * @param registry     the metric registry
    -     */
    -    public InstrumentedAppender(String appenderName, MetricRegistry registry) {
    -<span class="fc" id="L89">        super(appenderName, null, null, true);</span>
    -<span class="fc" id="L90">        this.registry = registry;</span>
    -<span class="fc" id="L91">    }</span>
    -
    -    @PluginFactory
    -    public static InstrumentedAppender createAppender(
    -            @PluginAttribute(&quot;name&quot;) String name,
    -            @PluginAttribute(value = &quot;registryName&quot;, defaultString = &quot;log4j2Metrics&quot;) String registry) {
    -<span class="fc" id="L97">        return new InstrumentedAppender(name, SharedMetricRegistries.getOrCreate(registry));</span>
    -    }
    -
    -    @Override
    -    public void start() {
    -<span class="fc" id="L102">        this.all = registry.meter(name(getName(), &quot;all&quot;));</span>
    -<span class="fc" id="L103">        this.trace = registry.meter(name(getName(), &quot;trace&quot;));</span>
    -<span class="fc" id="L104">        this.debug = registry.meter(name(getName(), &quot;debug&quot;));</span>
    -<span class="fc" id="L105">        this.info = registry.meter(name(getName(), &quot;info&quot;));</span>
    -<span class="fc" id="L106">        this.warn = registry.meter(name(getName(), &quot;warn&quot;));</span>
    -<span class="fc" id="L107">        this.error = registry.meter(name(getName(), &quot;error&quot;));</span>
    -<span class="fc" id="L108">        this.fatal = registry.meter(name(getName(), &quot;fatal&quot;));</span>
    -<span class="fc" id="L109">        super.start();</span>
    -<span class="fc" id="L110">    }</span>
    -
    -    @Override
    -    public void append(LogEvent event) {
    -<span class="fc" id="L114">        all.mark();</span>
    -<span class="pc bpc" id="L115" title="1 of 7 branches missed.">        switch (event.getLevel().getStandardLevel()) {</span>
    -            case TRACE:
    -<span class="fc" id="L117">                trace.mark();</span>
    -<span class="fc" id="L118">                break;</span>
    -            case DEBUG:
    -<span class="fc" id="L120">                debug.mark();</span>
    -<span class="fc" id="L121">                break;</span>
    -            case INFO:
    -<span class="fc" id="L123">                info.mark();</span>
    -<span class="fc" id="L124">                break;</span>
    -            case WARN:
    -<span class="fc" id="L126">                warn.mark();</span>
    -<span class="fc" id="L127">                break;</span>
    -            case ERROR:
    -<span class="fc" id="L129">                error.mark();</span>
    -<span class="fc" id="L130">                break;</span>
    -            case FATAL:
    -<span class="fc" id="L132">                fatal.mark();</span>
    -<span class="fc" id="L133">                break;</span>
    -            default:
    -                break;
    -        }
    -<span class="fc" id="L137">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderConfigTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderConfigTest.html
    deleted file mode 100644
    index 8c72781b27..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderConfigTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedAppenderConfigTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics.log4j2</a> &gt; <span class="el_class">InstrumentedAppenderConfigTest</span></div><h1>InstrumentedAppenderConfigTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 110</td><td class="ctr2">100%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">6</td><td class="ctr1">0</td><td class="ctr2">25</td><td class="ctr1">0</td><td class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a0"><a href="InstrumentedAppenderConfigTest.java.html#L38" class="el_method">canRecordAll()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="28" alt="28"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">6</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="InstrumentedAppenderConfigTest.java.html#L48" class="el_method">canRecordError()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="28" alt="28"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">6</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a3"><a href="InstrumentedAppenderConfigTest.java.html#L58" class="el_method">noInvalidRecording()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="111" height="10" title="26" alt="26"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">6</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a4"><a href="InstrumentedAppenderConfigTest.java.html#L25" class="el_method">setUp()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="72" height="10" title="17" alt="17"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a2"><a href="InstrumentedAppenderConfigTest.java.html#L15" class="el_method">InstrumentedAppenderConfigTest()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="30" height="10" title="7" alt="7"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a5"><a href="InstrumentedAppenderConfigTest.java.html#L31" class="el_method">tearDown()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="17" height="10" title="4" alt="4"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i5">2</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderConfigTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderConfigTest.java.html
    deleted file mode 100644
    index 03be9d75f1..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderConfigTest.java.html
    +++ /dev/null
    @@ -1,67 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedAppenderConfigTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics.log4j2</a> &gt; <span class="el_source">InstrumentedAppenderConfigTest.java</span></div><h1>InstrumentedAppenderConfigTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics.log4j2;
    -
    -import com.codahale.metrics.MetricRegistry;
    -import com.codahale.metrics.SharedMetricRegistries;
    -import org.apache.logging.log4j.core.Logger;
    -import org.apache.logging.log4j.core.LoggerContext;
    -import org.apache.logging.log4j.core.config.ConfigurationSource;
    -import org.apache.logging.log4j.core.config.Configurator;
    -import org.junit.After;
    -import org.junit.Before;
    -import org.junit.Test;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -
    -<span class="fc" id="L15">public class InstrumentedAppenderConfigTest {</span>
    -    public static final String METRIC_NAME_PREFIX = &quot;metrics&quot;;
    -    public static final String REGISTRY_NAME = &quot;shared-metrics-registry&quot;;
    -
    -<span class="fc" id="L19">    private final MetricRegistry registry = SharedMetricRegistries.getOrCreate(REGISTRY_NAME);</span>
    -    private ConfigurationSource source;
    -    private LoggerContext context;
    -
    -    @Before
    -    public void setUp() throws Exception {
    -<span class="fc" id="L25">        source = new ConfigurationSource(this.getClass().getClassLoader().getResourceAsStream(&quot;log4j2-testconfig.xml&quot;));</span>
    -<span class="fc" id="L26">        context = Configurator.initialize(null, source);</span>
    -<span class="fc" id="L27">    }</span>
    -
    -    @After
    -    public void tearDown() {
    -<span class="fc" id="L31">        context.stop();</span>
    -<span class="fc" id="L32">    }</span>
    -
    -    // The biggest test is that we can initialize the log4j2 config at all.
    -
    -    @Test
    -    public void canRecordAll() {
    -<span class="fc" id="L38">        Logger logger = context.getLogger(this.getClass().getName());</span>
    -
    -<span class="fc" id="L40">        long initialAllCount = registry.meter(METRIC_NAME_PREFIX + &quot;.all&quot;).getCount();</span>
    -<span class="fc" id="L41">        logger.error(&quot;an error message&quot;);</span>
    -<span class="fc" id="L42">        assertThat(registry.meter(METRIC_NAME_PREFIX + &quot;.all&quot;).getCount())</span>
    -<span class="fc" id="L43">                .isEqualTo(initialAllCount + 1);</span>
    -<span class="fc" id="L44">    }</span>
    -
    -    @Test
    -    public void canRecordError() {
    -<span class="fc" id="L48">        Logger logger = context.getLogger(this.getClass().getName());</span>
    -
    -<span class="fc" id="L50">        long initialErrorCount = registry.meter(METRIC_NAME_PREFIX + &quot;.error&quot;).getCount();</span>
    -<span class="fc" id="L51">        logger.error(&quot;an error message&quot;);</span>
    -<span class="fc" id="L52">        assertThat(registry.meter(METRIC_NAME_PREFIX + &quot;.all&quot;).getCount())</span>
    -<span class="fc" id="L53">                .isEqualTo(initialErrorCount + 1);</span>
    -<span class="fc" id="L54">    }</span>
    -
    -    @Test
    -    public void noInvalidRecording() {
    -<span class="fc" id="L58">        Logger logger = context.getLogger(this.getClass().getName());</span>
    -
    -<span class="fc" id="L60">        long initialInfoCount = registry.meter(METRIC_NAME_PREFIX + &quot;.info&quot;).getCount();</span>
    -<span class="fc" id="L61">        logger.error(&quot;an error message&quot;);</span>
    -<span class="fc" id="L62">        assertThat(registry.meter(METRIC_NAME_PREFIX + &quot;.info&quot;).getCount())</span>
    -<span class="fc" id="L63">                .isEqualTo(initialInfoCount);</span>
    -<span class="fc" id="L64">    }</span>
    -
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderTest.html
    deleted file mode 100644
    index 70eb13d887..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedAppenderTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics.log4j2</a> &gt; <span class="el_class">InstrumentedAppenderTest</span></div><h1>InstrumentedAppenderTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 247</td><td class="ctr2">100%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">10</td><td class="ctr1">0</td><td class="ctr2">59</td><td class="ctr1">0</td><td class="ctr2">10</td></tr></tfoot><tbody><tr><td id="a9"><a href="InstrumentedAppenderTest.java.html#L115" class="el_method">usesSharedRegistries()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="35" alt="35"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">9</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a5"><a href="InstrumentedAppenderTest.java.html#L36" class="el_method">metersTraceEvents()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="106" height="10" title="31" alt="31"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="InstrumentedAppenderTest.java.html#L49" class="el_method">metersDebugEvents()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="106" height="10" title="31" alt="31"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">7</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a4"><a href="InstrumentedAppenderTest.java.html#L62" class="el_method">metersInfoEvents()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="106" height="10" title="31" alt="31"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i3">7</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a6"><a href="InstrumentedAppenderTest.java.html#L75" class="el_method">metersWarnEvents()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="106" height="10" title="31" alt="31"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i4">7</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a2"><a href="InstrumentedAppenderTest.java.html#L88" class="el_method">metersErrorEvents()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="106" height="10" title="31" alt="31"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i5">7</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a3"><a href="InstrumentedAppenderTest.java.html#L101" class="el_method">metersFatalEvents()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="106" height="10" title="31" alt="31"/></td><td class="ctr2" id="c6">100%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i6">7</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a0"><a href="InstrumentedAppenderTest.java.html#L16" class="el_method">InstrumentedAppenderTest()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="68" height="10" title="20" alt="20"/></td><td class="ctr2" id="c7">100%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i7">4</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a7"><a href="InstrumentedAppenderTest.java.html#L26" class="el_method">setUp()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="13" height="10" title="4" alt="4"/></td><td class="ctr2" id="c8">100%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i8">2</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a8"><a href="InstrumentedAppenderTest.java.html#L31" class="el_method">tearDown()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/greenbar.gif" width="6" height="10" title="2" alt="2"/></td><td class="ctr2" id="c9">100%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">0</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">0</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k9">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderTest.java.html
    deleted file mode 100644
    index a2f305c5a5..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/InstrumentedAppenderTest.java.html
    +++ /dev/null
    @@ -1,130 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedAppenderTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics.log4j2</a> &gt; <span class="el_source">InstrumentedAppenderTest.java</span></div><h1>InstrumentedAppenderTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics.log4j2;
    -
    -import com.codahale.metrics.MetricRegistry;
    -import com.codahale.metrics.SharedMetricRegistries;
    -
    -import org.apache.logging.log4j.Level;
    -import org.apache.logging.log4j.core.LogEvent;
    -import org.junit.After;
    -import org.junit.Before;
    -import org.junit.Test;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -import static org.mockito.Mockito.mock;
    -import static org.mockito.Mockito.when;
    -
    -<span class="fc" id="L16">public class InstrumentedAppenderTest {</span>
    -
    -    public static final String METRIC_NAME_PREFIX = &quot;org.apache.logging.log4j.core.Appender&quot;;
    -
    -<span class="fc" id="L20">    private final MetricRegistry registry = new MetricRegistry();</span>
    -<span class="fc" id="L21">    private final InstrumentedAppender appender = new InstrumentedAppender(registry);</span>
    -<span class="fc" id="L22">    private final LogEvent event = mock(LogEvent.class);</span>
    -
    -    @Before
    -    public void setUp() {
    -<span class="fc" id="L26">        appender.start();</span>
    -<span class="fc" id="L27">    }</span>
    -
    -    @After
    -    public void tearDown() {
    -<span class="fc" id="L31">        SharedMetricRegistries.clear();</span>
    -<span class="fc" id="L32">    }</span>
    -
    -    @Test
    -    public void metersTraceEvents() {
    -<span class="fc" id="L36">        when(event.getLevel()).thenReturn(Level.TRACE);</span>
    -
    -<span class="fc" id="L38">        appender.append(event);</span>
    -
    -<span class="fc" id="L40">        assertThat(registry.meter(METRIC_NAME_PREFIX + &quot;.all&quot;).getCount())</span>
    -<span class="fc" id="L41">                .isEqualTo(1);</span>
    -
    -<span class="fc" id="L43">        assertThat(registry.meter(METRIC_NAME_PREFIX + &quot;.trace&quot;).getCount())</span>
    -<span class="fc" id="L44">                .isEqualTo(1);</span>
    -<span class="fc" id="L45">    }</span>
    -
    -    @Test
    -    public void metersDebugEvents() {
    -<span class="fc" id="L49">        when(event.getLevel()).thenReturn(Level.DEBUG);</span>
    -
    -<span class="fc" id="L51">        appender.append(event);</span>
    -
    -<span class="fc" id="L53">        assertThat(registry.meter(METRIC_NAME_PREFIX + &quot;.all&quot;).getCount())</span>
    -<span class="fc" id="L54">                .isEqualTo(1);</span>
    -
    -<span class="fc" id="L56">        assertThat(registry.meter(METRIC_NAME_PREFIX + &quot;.debug&quot;).getCount())</span>
    -<span class="fc" id="L57">                .isEqualTo(1);</span>
    -<span class="fc" id="L58">    }</span>
    -
    -    @Test
    -    public void metersInfoEvents() {
    -<span class="fc" id="L62">        when(event.getLevel()).thenReturn(Level.INFO);</span>
    -
    -<span class="fc" id="L64">        appender.append(event);</span>
    -
    -<span class="fc" id="L66">        assertThat(registry.meter(METRIC_NAME_PREFIX + &quot;.all&quot;).getCount())</span>
    -<span class="fc" id="L67">                .isEqualTo(1);</span>
    -
    -<span class="fc" id="L69">        assertThat(registry.meter(METRIC_NAME_PREFIX + &quot;.info&quot;).getCount())</span>
    -<span class="fc" id="L70">                .isEqualTo(1);</span>
    -<span class="fc" id="L71">    }</span>
    -
    -    @Test
    -    public void metersWarnEvents() {
    -<span class="fc" id="L75">        when(event.getLevel()).thenReturn(Level.WARN);</span>
    -
    -<span class="fc" id="L77">        appender.append(event);</span>
    -
    -<span class="fc" id="L79">        assertThat(registry.meter(METRIC_NAME_PREFIX + &quot;.all&quot;).getCount())</span>
    -<span class="fc" id="L80">                .isEqualTo(1);</span>
    -
    -<span class="fc" id="L82">        assertThat(registry.meter(METRIC_NAME_PREFIX + &quot;.warn&quot;).getCount())</span>
    -<span class="fc" id="L83">                .isEqualTo(1);</span>
    -<span class="fc" id="L84">    }</span>
    -
    -    @Test
    -    public void metersErrorEvents() {
    -<span class="fc" id="L88">        when(event.getLevel()).thenReturn(Level.ERROR);</span>
    -
    -<span class="fc" id="L90">        appender.append(event);</span>
    -
    -<span class="fc" id="L92">        assertThat(registry.meter(METRIC_NAME_PREFIX + &quot;.all&quot;).getCount())</span>
    -<span class="fc" id="L93">                .isEqualTo(1);</span>
    -
    -<span class="fc" id="L95">        assertThat(registry.meter(METRIC_NAME_PREFIX + &quot;.error&quot;).getCount())</span>
    -<span class="fc" id="L96">                .isEqualTo(1);</span>
    -<span class="fc" id="L97">    }</span>
    -
    -    @Test
    -    public void metersFatalEvents() {
    -<span class="fc" id="L101">        when(event.getLevel()).thenReturn(Level.FATAL);</span>
    -
    -<span class="fc" id="L103">        appender.append(event);</span>
    -
    -<span class="fc" id="L105">        assertThat(registry.meter(METRIC_NAME_PREFIX + &quot;.all&quot;).getCount())</span>
    -<span class="fc" id="L106">                .isEqualTo(1);</span>
    -
    -<span class="fc" id="L108">        assertThat(registry.meter(METRIC_NAME_PREFIX + &quot;.fatal&quot;).getCount())</span>
    -<span class="fc" id="L109">                .isEqualTo(1);</span>
    -<span class="fc" id="L110">    }</span>
    -
    -    @Test
    -    public void usesSharedRegistries() {
    -
    -<span class="fc" id="L115">        String registryName = &quot;registry&quot;;</span>
    -
    -<span class="fc" id="L117">        SharedMetricRegistries.add(registryName, registry);</span>
    -
    -<span class="fc" id="L119">        final InstrumentedAppender shared = new InstrumentedAppender(registryName);</span>
    -<span class="fc" id="L120">        shared.start();</span>
    -
    -<span class="fc" id="L122">        when(event.getLevel()).thenReturn(Level.INFO);</span>
    -
    -<span class="fc" id="L124">        shared.append(event);</span>
    -
    -<span class="fc" id="L126">        assertThat(registry.meter(METRIC_NAME_PREFIX + &quot;.info&quot;).getCount())</span>
    -<span class="fc" id="L127">                .isEqualTo(1);</span>
    -<span class="fc" id="L128">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/index.html b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/index.html
    deleted file mode 100644
    index c92bd136f3..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/index.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>com.codahale.metrics.log4j2</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <span class="el_package">com.codahale.metrics.log4j2</span></div><h1>com.codahale.metrics.log4j2</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">8 of 543</td><td class="ctr2">98%</td><td class="bar">1 of 7</td><td class="ctr2">85%</td><td class="ctr1">2</td><td class="ctr2">30</td><td class="ctr1">2</td><td class="ctr2">121</td><td class="ctr1">1</td><td class="ctr2">24</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a0"><a href="InstrumentedAppender.html" class="el_class">InstrumentedAppender</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="86" height="10" title="178" alt="178"/></td><td class="ctr2" id="c2">95%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="102" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">85%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">14</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i1">37</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k1">8</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a2"><a href="InstrumentedAppenderTest.html" class="el_class">InstrumentedAppenderTest</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="247" alt="247"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">10</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i0">59</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k0">10</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="InstrumentedAppenderConfigTest.html" class="el_class">InstrumentedAppenderConfigTest</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="53" height="10" title="110" alt="110"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">6</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">25</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">6</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/index.source.html b/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/index.source.html
    deleted file mode 100644
    index 2c4a1b9b94..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics.log4j2/index.source.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>com.codahale.metrics.log4j2</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <span class="el_package">com.codahale.metrics.log4j2</span></div><h1>com.codahale.metrics.log4j2</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">8 of 543</td><td class="ctr2">98%</td><td class="bar">1 of 7</td><td class="ctr2">85%</td><td class="ctr1">2</td><td class="ctr2">30</td><td class="ctr1">2</td><td class="ctr2">121</td><td class="ctr1">1</td><td class="ctr2">24</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a0"><a href="InstrumentedAppender.java.html" class="el_source">InstrumentedAppender.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="8" alt="8"/><img src="../jacoco-resources/greenbar.gif" width="86" height="10" title="178" alt="178"/></td><td class="ctr2" id="c2">95%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="102" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">85%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">14</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i1">37</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k1">8</td><td class="ctr1" id="l0">0</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a2"><a href="InstrumentedAppenderTest.java.html" class="el_source">InstrumentedAppenderTest.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="247" alt="247"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">10</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i0">59</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k0">10</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a1"><a href="InstrumentedAppenderConfigTest.java.html" class="el_source">InstrumentedAppenderConfigTest.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="53" height="10" title="110" alt="110"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">6</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">25</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">6</td><td class="ctr1" id="l2">0</td><td class="ctr2" id="m2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGauge.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGauge.html
    deleted file mode 100644
    index 71ccf665ff..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGauge.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>CachedGauge</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">CachedGauge</span></div><h1>CachedGauge</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">81 of 81</td><td class="ctr2">0%</td><td class="bar">10 of 10</td><td class="ctr2">0%</td><td class="ctr1">9</td><td class="ctr2">9</td><td class="ctr1">22</td><td class="ctr2">22</td><td class="ctr1">4</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a2"><a href="CachedGauge.java.html#L51" class="el_method">getValue()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="26" alt="26"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">7</td><td class="ctr2" id="i0">7</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="CachedGauge.java.html#L64" class="el_method">shouldLoad()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="26" alt="26"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="4" alt="4"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f1">3</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">7</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="CachedGauge.java.html#L35" class="el_method">CachedGauge(Clock, long, TimeUnit)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="106" height="10" title="23" alt="23"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">6</td><td class="ctr2" id="i2">6</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a1"><a href="CachedGauge.java.html#L25" class="el_method">CachedGauge(long, TimeUnit)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="6" alt="6"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">2</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGauge.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGauge.java.html
    deleted file mode 100644
    index 6c02972ae3..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGauge.java.html
    +++ /dev/null
    @@ -1,75 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>CachedGauge.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">CachedGauge.java</span></div><h1>CachedGauge.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.util.concurrent.TimeUnit;
    -import java.util.concurrent.atomic.AtomicLong;
    -import java.util.concurrent.atomic.AtomicReference;
    -
    -/**
    - * A {@link Gauge} implementation which caches its value for a period of time.
    - *
    - * @param &lt;T&gt; the type of the gauge's value
    - */
    -public abstract class CachedGauge&lt;T&gt; implements Gauge&lt;T&gt; {
    -    private final Clock clock;
    -    private final AtomicLong reloadAt;
    -    private final long timeoutNS;
    -    private final AtomicReference&lt;T&gt; value;
    -
    -    /**
    -     * Creates a new cached gauge with the given timeout period.
    -     *
    -     * @param timeout     the timeout
    -     * @param timeoutUnit the unit of {@code timeout}
    -     */
    -    protected CachedGauge(long timeout, TimeUnit timeoutUnit) {
    -<span class="nc" id="L25">        this(Clock.defaultClock(), timeout, timeoutUnit);</span>
    -<span class="nc" id="L26">    }</span>
    -
    -    /**
    -     * Creates a new cached gauge with the given clock and timeout period.
    -     *
    -     * @param clock       the clock used to calculate the timeout
    -     * @param timeout     the timeout
    -     * @param timeoutUnit the unit of {@code timeout}
    -     */
    -<span class="nc" id="L35">    protected CachedGauge(Clock clock, long timeout, TimeUnit timeoutUnit) {</span>
    -<span class="nc" id="L36">        this.clock = clock;</span>
    -<span class="nc" id="L37">        this.reloadAt = new AtomicLong(clock.getTick());</span>
    -<span class="nc" id="L38">        this.timeoutNS = timeoutUnit.toNanos(timeout);</span>
    -<span class="nc" id="L39">        this.value = new AtomicReference&lt;&gt;();</span>
    -<span class="nc" id="L40">    }</span>
    -
    -    /**
    -     * Loads the value and returns it.
    -     *
    -     * @return the new value
    -     */
    -    protected abstract T loadValue();
    -
    -    @Override
    -    public T getValue() {
    -<span class="nc" id="L51">        T currentValue = this.value.get();</span>
    -<span class="nc bnc" id="L52" title="All 4 branches missed.">        if (shouldLoad() || currentValue == null) {</span>
    -<span class="nc" id="L53">            T newValue = loadValue();</span>
    -<span class="nc bnc" id="L54" title="All 2 branches missed.">            if (!this.value.compareAndSet(currentValue, newValue)) {</span>
    -<span class="nc" id="L55">                return this.value.get();</span>
    -            }
    -<span class="nc" id="L57">            return newValue;</span>
    -        }
    -<span class="nc" id="L59">        return currentValue;</span>
    -    }
    -
    -    private boolean shouldLoad() {
    -        for ( ;; ) {
    -<span class="nc" id="L64">            final long time = clock.getTick();</span>
    -<span class="nc" id="L65">            final long current = reloadAt.get();</span>
    -<span class="nc bnc" id="L66" title="All 2 branches missed.">            if (current &gt; time) {</span>
    -<span class="nc" id="L67">                return false;</span>
    -            }
    -<span class="nc bnc" id="L69" title="All 2 branches missed.">            if (reloadAt.compareAndSet(current, time + timeoutNS)) {</span>
    -<span class="nc" id="L70">                return true;</span>
    -            }
    -<span class="nc" id="L72">        }</span>
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$1.html
    deleted file mode 100644
    index d11d6531ff..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$1.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>CachedGaugeTest.new CachedGauge() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">CachedGaugeTest.new CachedGauge() {...}</span></div><h1>CachedGaugeTest.new CachedGauge() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">14 of 14</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="CachedGaugeTest.java.html#L25" class="el_method">{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="8" alt="8"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="CachedGaugeTest.java.html#L28" class="el_method">loadValue()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="90" height="10" title="6" alt="6"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$2.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$2.html
    deleted file mode 100644
    index 81958130cb..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$2.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>CachedGaugeTest.new CachedGauge() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">CachedGaugeTest.new CachedGauge() {...}</span></div><h1>CachedGaugeTest.new CachedGauge() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">24 of 24</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="CachedGaugeTest.java.html#L35" class="el_method">loadValue()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="16" alt="16"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">5</td><td class="ctr2" id="i0">5</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="CachedGaugeTest.java.html#L31" class="el_method">{...}</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$3.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$3.html
    deleted file mode 100644
    index ac6b69b847..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$3.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>CachedGaugeTest.new Clock() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">CachedGaugeTest.new Clock() {...}</span></div><h1>CachedGaugeTest.new Clock() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">13 of 13</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="CachedGaugeTest.java.html#L69" class="el_method">{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="CachedGaugeTest.java.html#L72" class="el_method">getTick()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="53" height="10" title="4" alt="4"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$4.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$4.html
    deleted file mode 100644
    index 4cc5164a34..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest$4.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>CachedGaugeTest.new CachedGauge() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">CachedGaugeTest.new CachedGauge() {...}</span></div><h1>CachedGaugeTest.new CachedGauge() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">15 of 15</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="CachedGaugeTest.java.html#L75" class="el_method">{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="CachedGaugeTest.java.html#L78" class="el_method">loadValue()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="6" alt="6"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest.html
    deleted file mode 100644
    index 53693d63e2..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>CachedGaugeTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">CachedGaugeTest</span></div><h1>CachedGaugeTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">226 of 226</td><td class="ctr2">0%</td><td class="bar">10 of 10</td><td class="ctr2">0%</td><td class="ctr1">12</td><td class="ctr2">12</td><td class="ctr1">53</td><td class="ctr2">53</td><td class="ctr1">7</td><td class="ctr2">7</td></tr></tfoot><tbody><tr><td id="a3"><a href="CachedGaugeTest.java.html#L96" class="el_method">multipleThreadAccessReturnsConsistentResults()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="52" alt="52"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f1">3</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h2">8</td><td class="ctr2" id="i2">8</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a4"><a href="CachedGaugeTest.java.html#L68" class="el_method">reloadsCachedValueInNegativeTime()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="117" height="10" title="51" alt="51"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h0">13</td><td class="ctr2" id="i0">13</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="CachedGaugeTest.java.html#L100" class="el_method">lambda$multipleThreadAccessReturnsConsistentResults$0()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="96" height="10" title="42" alt="42"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h1">12</td><td class="ctr2" id="i1">12</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="CachedGaugeTest.java.html#L19" class="el_method">CachedGaugeTest()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="66" height="10" title="29" alt="29"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h4">5</td><td class="ctr2" id="i4">5</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a5"><a href="CachedGaugeTest.java.html#L54" class="el_method">reloadsTheCachedValueAfterTheGivenPeriod()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="62" height="10" title="27" alt="27"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h3">8</td><td class="ctr2" id="i3">8</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a1"><a href="CachedGaugeTest.java.html#L46" class="el_method">cachesTheValueForTheGivenPeriod()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="39" height="10" title="17" alt="17"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">5</td><td class="ctr2" id="i5">5</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a6"><a href="CachedGaugeTest.java.html#L20" class="el_method">static {...}</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="8" alt="8"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i6">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest.java.html
    deleted file mode 100644
    index c7ddb68545..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/CachedGaugeTest.java.html
    +++ /dev/null
    @@ -1,132 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>CachedGaugeTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">CachedGaugeTest.java</span></div><h1>CachedGaugeTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -import org.slf4j.Logger;
    -import org.slf4j.LoggerFactory;
    -
    -import java.util.ArrayList;
    -import java.util.List;
    -import java.util.concurrent.ExecutorService;
    -import java.util.concurrent.Executors;
    -import java.util.concurrent.Future;
    -import java.util.concurrent.TimeUnit;
    -import java.util.concurrent.atomic.AtomicInteger;
    -import java.util.concurrent.atomic.AtomicLong;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -import static org.junit.Assert.assertTrue;
    -
    -<span class="nc" id="L19">public class CachedGaugeTest {</span>
    -<span class="nc" id="L20">    private static final Logger LOGGER = LoggerFactory.getLogger(CachedGaugeTest.class);</span>
    -    private static final int THREAD_COUNT = 10;
    -<span class="nc" id="L22">    private static final long RUNNING_TIME_MILLIS = TimeUnit.SECONDS.toMillis(10);</span>
    -
    -<span class="nc" id="L24">    private final AtomicInteger value = new AtomicInteger(0);</span>
    -<span class="nc" id="L25">    private final Gauge&lt;Integer&gt; gauge = new CachedGauge&lt;Integer&gt;(100, TimeUnit.MILLISECONDS) {</span>
    -        @Override
    -        protected Integer loadValue() {
    -<span class="nc" id="L28">            return value.incrementAndGet();</span>
    -        }
    -    };
    -<span class="nc" id="L31">    private final Gauge&lt;Integer&gt; shortTimeoutGauge = new CachedGauge&lt;Integer&gt;(1, TimeUnit.MILLISECONDS) {</span>
    -        @Override
    -        protected Integer loadValue() {
    -            try {
    -<span class="nc" id="L35">                Thread.sleep(5);</span>
    -<span class="nc" id="L36">            } catch (InterruptedException e) {</span>
    -<span class="nc" id="L37">                throw new RuntimeException(&quot;Thread was interrupted&quot;, e);</span>
    -<span class="nc" id="L38">            }</span>
    -<span class="nc" id="L39">            return value.incrementAndGet();</span>
    -        }
    -    };
    -<span class="nc" id="L42">    private final ExecutorService executor = Executors.newFixedThreadPool(THREAD_COUNT);</span>
    -
    -    @Test
    -    public void cachesTheValueForTheGivenPeriod() {
    -<span class="nc" id="L46">        assertThat(gauge.getValue())</span>
    -<span class="nc" id="L47">                .isEqualTo(1);</span>
    -<span class="nc" id="L48">        assertThat(gauge.getValue())</span>
    -<span class="nc" id="L49">                .isEqualTo(1);</span>
    -<span class="nc" id="L50">    }</span>
    -
    -    @Test
    -    public void reloadsTheCachedValueAfterTheGivenPeriod() throws Exception {
    -<span class="nc" id="L54">        assertThat(gauge.getValue())</span>
    -<span class="nc" id="L55">                .isEqualTo(1);</span>
    -
    -<span class="nc" id="L57">        Thread.sleep(150);</span>
    -
    -<span class="nc" id="L59">        assertThat(gauge.getValue())</span>
    -<span class="nc" id="L60">                .isEqualTo(2);</span>
    -
    -<span class="nc" id="L62">        assertThat(gauge.getValue())</span>
    -<span class="nc" id="L63">                .isEqualTo(2);</span>
    -<span class="nc" id="L64">    }</span>
    -
    -    @Test
    -    public void reloadsCachedValueInNegativeTime() throws Exception {
    -<span class="nc" id="L68">        AtomicLong time = new AtomicLong(-2L);</span>
    -<span class="nc" id="L69">        Clock clock = new Clock() {</span>
    -            @Override
    -            public long getTick() {
    -<span class="nc" id="L72">                return time.get();</span>
    -            }
    -        };
    -<span class="nc" id="L75">        Gauge&lt;Integer&gt; clockGauge = new CachedGauge&lt;Integer&gt;(clock, 1, TimeUnit.NANOSECONDS) {</span>
    -            @Override
    -            protected Integer loadValue() {
    -<span class="nc" id="L78">                return value.incrementAndGet();</span>
    -            }
    -        };
    -<span class="nc" id="L81">        assertThat(clockGauge.getValue())</span>
    -<span class="nc" id="L82">                .isEqualTo(1);</span>
    -<span class="nc" id="L83">        assertThat(clockGauge.getValue())</span>
    -<span class="nc" id="L84">                .isEqualTo(1);</span>
    -
    -<span class="nc" id="L86">        time.set(-1L);</span>
    -
    -<span class="nc" id="L88">        assertThat(clockGauge.getValue())</span>
    -<span class="nc" id="L89">                .isEqualTo(2);</span>
    -<span class="nc" id="L90">        assertThat(clockGauge.getValue())</span>
    -<span class="nc" id="L91">                .isEqualTo(2);</span>
    -<span class="nc" id="L92">    }</span>
    -
    -    @Test
    -    public void multipleThreadAccessReturnsConsistentResults() throws Exception {
    -<span class="nc" id="L96">        List&lt;Future&lt;Boolean&gt;&gt; futures = new ArrayList&lt;&gt;(THREAD_COUNT);</span>
    -
    -<span class="nc bnc" id="L98" title="All 2 branches missed.">        for (int i = 0; i &lt; THREAD_COUNT; i++) {</span>
    -<span class="nc" id="L99">            Future&lt;Boolean&gt; future = executor.submit(() -&gt; {</span>
    -<span class="nc" id="L100">                long startTime = System.currentTimeMillis();</span>
    -<span class="nc" id="L101">                int lastValue = 0;</span>
    -
    -                do {
    -<span class="nc" id="L104">                    Integer newValue = shortTimeoutGauge.getValue();</span>
    -
    -<span class="nc bnc" id="L106" title="All 2 branches missed.">                    if (newValue == null) {</span>
    -<span class="nc" id="L107">                        LOGGER.warn(&quot;Cached gauge returned null value&quot;);</span>
    -<span class="nc" id="L108">                        return false;</span>
    -                    }
    -
    -<span class="nc bnc" id="L111" title="All 2 branches missed.">                    if (newValue &lt; lastValue) {</span>
    -<span class="nc" id="L112">                        LOGGER.error(&quot;Cached gauge returned stale value, last: {}, new: {}&quot;, lastValue, newValue);</span>
    -<span class="nc" id="L113">                        return false;</span>
    -                    }
    -
    -<span class="nc" id="L116">                    lastValue = newValue;</span>
    -<span class="nc bnc" id="L117" title="All 2 branches missed.">                } while (System.currentTimeMillis() - startTime &lt;= RUNNING_TIME_MILLIS);</span>
    -
    -<span class="nc" id="L119">                return true;</span>
    -            });
    -
    -<span class="nc" id="L122">            futures.add(future);</span>
    -        }
    -
    -<span class="nc bnc" id="L125" title="All 2 branches missed.">        for (int i = 0; i &lt; futures.size(); i++) {</span>
    -<span class="nc" id="L126">            assertTrue(&quot;Future &quot; + i + &quot; failed&quot;, futures.get(i).get());</span>
    -        }
    -
    -<span class="nc" id="L129">        executor.shutdown();</span>
    -<span class="nc" id="L130">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray$Chunk.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray$Chunk.html
    deleted file mode 100644
    index 3d7c6fb239..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray$Chunk.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ChunkedAssociativeLongArray.Chunk</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ChunkedAssociativeLongArray.Chunk</span></div><h1>ChunkedAssociativeLongArray.Chunk</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">39 of 39</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">11</td><td class="ctr2">11</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="ChunkedAssociativeLongArray.java.html#L185" class="el_method">ChunkedAssociativeLongArray.Chunk(int)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="20" alt="20"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">7</td><td class="ctr2" id="i0">7</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="ChunkedAssociativeLongArray.java.html#L195" class="el_method">append(long, long)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="114" height="10" title="19" alt="19"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray.html
    deleted file mode 100644
    index 829dec4554..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ChunkedAssociativeLongArray</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ChunkedAssociativeLongArray</span></div><h1>ChunkedAssociativeLongArray</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">411 of 411</td><td class="ctr2">0%</td><td class="bar">52 of 52</td><td class="ctr2">0%</td><td class="ctr1">40</td><td class="ctr2">40</td><td class="ctr1">90</td><td class="ctr2">90</td><td class="ctr1">14</td><td class="ctr2">14</td></tr></tfoot><tbody><tr><td id="a12"><a href="ChunkedAssociativeLongArray.java.html#L128" class="el_method">trim(long, long)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="87" alt="87"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="10" alt="10"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">23</td><td class="ctr2" id="i0">23</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a8"><a href="ChunkedAssociativeLongArray.java.html#L99" class="el_method">out()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="86" height="10" title="63" alt="63"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="72" height="10" title="6" alt="6"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f2">4</td><td class="ctr2" id="g2">4</td><td class="ctr1" id="h1">13</td><td class="ctr2" id="i1">13</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a13"><a href="ChunkedAssociativeLongArray.java.html#L74" class="el_method">values()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="50" alt="50"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="4" alt="4"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f4">3</td><td class="ctr2" id="g4">3</td><td class="ctr1" id="h2">12</td><td class="ctr2" id="i2">12</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a9"><a href="ChunkedAssociativeLongArray.java.html#L59" class="el_method">put(long, long)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="63" height="10" title="46" alt="46"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="10" alt="10"/></td><td class="ctr2" id="e3">0%</td><td class="ctr1" id="f1">6</td><td class="ctr2" id="g1">6</td><td class="ctr1" id="h4">8</td><td class="ctr2" id="i4">8</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a0"><a href="ChunkedAssociativeLongArray.java.html#L38" class="el_method">allocateChunk()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="51" height="10" title="37" alt="37"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="4" alt="4"/></td><td class="ctr2" id="e4">0%</td><td class="ctr1" id="f5">3</td><td class="ctr2" id="g5">3</td><td class="ctr1" id="h3">10</td><td class="ctr2" id="i3">10</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a4"><a href="ChunkedAssociativeLongArray.java.html#L172" class="el_method">findFirstIndexOfGreaterEqualElements(long[], int, int, long)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="35" height="10" title="26" alt="26"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="72" height="10" title="6" alt="6"/></td><td class="ctr2" id="e5">0%</td><td class="ctr1" id="f3">4</td><td class="ctr2" id="g3">4</td><td class="ctr1" id="h7">4</td><td class="ctr2" id="i7">4</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a10"><a href="ChunkedAssociativeLongArray.java.html#L91" class="el_method">size()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="33" height="10" title="24" alt="24"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d8"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="2" alt="2"/></td><td class="ctr2" id="e6">0%</td><td class="ctr1" id="f8">2</td><td class="ctr2" id="g8">2</td><td class="ctr1" id="h5">5</td><td class="ctr2" id="i5">5</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a7"><a href="ChunkedAssociativeLongArray.java.html#L168" class="el_method">isLastElementIsLessThanKey(ChunkedAssociativeLongArray.Chunk, long)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="19" alt="19"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d6"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="4" alt="4"/></td><td class="ctr2" id="e7">0%</td><td class="ctr1" id="f6">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h11">1</td><td class="ctr2" id="i11">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a6"><a href="ChunkedAssociativeLongArray.java.html#L164" class="el_method">isFirstElementIsEmptyOrGreaterEqualThanKey(ChunkedAssociativeLongArray.Chunk, long)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="23" height="10" title="17" alt="17"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d7"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="4" alt="4"/></td><td class="ctr2" id="e8">0%</td><td class="ctr1" id="f7">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i12">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a2"><a href="ChunkedAssociativeLongArray.java.html#L24" class="el_method">ChunkedAssociativeLongArray(int)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="16" alt="16"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h6">5</td><td class="ctr2" id="i6">5</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a5"><a href="ChunkedAssociativeLongArray.java.html#L53" class="el_method">freeChunk(ChunkedAssociativeLongArray.Chunk)</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="14" alt="14"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d9"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="2" alt="2"/></td><td class="ctr2" id="e9">0%</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h8">3</td><td class="ctr2" id="i8">3</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a1"><a href="ChunkedAssociativeLongArray.java.html#L29" class="el_method">ChunkedAssociativeLongArray()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a3"><a href="ChunkedAssociativeLongArray.java.html#L160" class="el_method">clear()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a11"><a href="ChunkedAssociativeLongArray.java.html#L12" class="el_method">static {...}</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h13">1</td><td class="ctr2" id="i13">1</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray.java.html
    deleted file mode 100644
    index 0517e21daa..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArray.java.html
    +++ /dev/null
    @@ -1,201 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ChunkedAssociativeLongArray.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">ChunkedAssociativeLongArray.java</span></div><h1>ChunkedAssociativeLongArray.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.lang.ref.SoftReference;
    -import java.util.ArrayDeque;
    -import java.util.Deque;
    -import java.util.Iterator;
    -
    -import static java.lang.System.arraycopy;
    -import static java.util.Arrays.binarySearch;
    -
    -class ChunkedAssociativeLongArray {
    -<span class="nc" id="L12">    private static final long[] EMPTY = new long[0];</span>
    -    private static final int DEFAULT_CHUNK_SIZE = 512;
    -    private static final int MAX_CACHE_SIZE = 128;
    -
    -    private final int defaultChunkSize;
    -
    -    /*
    -     * We use this ArrayDeque as cache to store chunks that are expired and removed from main data structure.
    -     * Then instead of allocating new Chunk immediately we are trying to poll one from this deque.
    -     * So if you have constant or slowly changing load ChunkedAssociativeLongArray will never
    -     * throw away old chunks or allocate new ones which makes this data structure almost garbage free.
    -     */
    -<span class="nc" id="L24">    private final ArrayDeque&lt;SoftReference&lt;Chunk&gt;&gt; chunksCache = new ArrayDeque&lt;&gt;();</span>
    -
    -<span class="nc" id="L26">    private final Deque&lt;Chunk&gt; chunks = new ArrayDeque&lt;&gt;();</span>
    -
    -    ChunkedAssociativeLongArray() {
    -<span class="nc" id="L29">        this(DEFAULT_CHUNK_SIZE);</span>
    -<span class="nc" id="L30">    }</span>
    -
    -<span class="nc" id="L32">    ChunkedAssociativeLongArray(int chunkSize) {</span>
    -<span class="nc" id="L33">        this.defaultChunkSize = chunkSize;</span>
    -<span class="nc" id="L34">    }</span>
    -
    -    private Chunk allocateChunk() {
    -        while (true) {
    -<span class="nc" id="L38">            final SoftReference&lt;Chunk&gt; chunkRef = chunksCache.pollLast();</span>
    -<span class="nc bnc" id="L39" title="All 2 branches missed.">            if (chunkRef == null) {</span>
    -<span class="nc" id="L40">                return new Chunk(defaultChunkSize);</span>
    -            }
    -<span class="nc" id="L42">            final Chunk chunk = chunkRef.get();</span>
    -<span class="nc bnc" id="L43" title="All 2 branches missed.">            if (chunk != null) {</span>
    -<span class="nc" id="L44">                chunk.cursor = 0;</span>
    -<span class="nc" id="L45">                chunk.startIndex = 0;</span>
    -<span class="nc" id="L46">                chunk.chunkSize = chunk.keys.length;</span>
    -<span class="nc" id="L47">                return chunk;</span>
    -            }
    -<span class="nc" id="L49">        }</span>
    -    }
    -
    -    private void freeChunk(Chunk chunk) {
    -<span class="nc bnc" id="L53" title="All 2 branches missed.">        if (chunksCache.size() &lt; MAX_CACHE_SIZE) {</span>
    -<span class="nc" id="L54">            chunksCache.add(new SoftReference&lt;&gt;(chunk));</span>
    -        }
    -<span class="nc" id="L56">    }</span>
    -
    -    synchronized boolean put(long key, long value) {
    -<span class="nc" id="L59">        Chunk activeChunk = chunks.peekLast();</span>
    -<span class="nc bnc" id="L60" title="All 6 branches missed.">        if (activeChunk != null &amp;&amp; activeChunk.cursor != 0 &amp;&amp; activeChunk.keys[activeChunk.cursor - 1] &gt; key) {</span>
    -            // key should be the same as last inserted or bigger
    -<span class="nc" id="L62">            return false;</span>
    -        }
    -<span class="nc bnc" id="L64" title="All 4 branches missed.">        if (activeChunk == null || activeChunk.cursor - activeChunk.startIndex == activeChunk.chunkSize) {</span>
    -            // The last chunk doesn't exist or full
    -<span class="nc" id="L66">            activeChunk = allocateChunk();</span>
    -<span class="nc" id="L67">            chunks.add(activeChunk);</span>
    -        }
    -<span class="nc" id="L69">        activeChunk.append(key, value);</span>
    -<span class="nc" id="L70">        return true;</span>
    -    }
    -
    -    synchronized long[] values() {
    -<span class="nc" id="L74">        final int valuesSize = size();</span>
    -<span class="nc bnc" id="L75" title="All 2 branches missed.">        if (valuesSize == 0) {</span>
    -<span class="nc" id="L76">            return EMPTY;</span>
    -        }
    -
    -<span class="nc" id="L79">        final long[] values = new long[valuesSize];</span>
    -<span class="nc" id="L80">        int valuesIndex = 0;</span>
    -<span class="nc bnc" id="L81" title="All 2 branches missed.">        for (Chunk chunk : chunks) {</span>
    -<span class="nc" id="L82">            int length = chunk.cursor - chunk.startIndex;</span>
    -<span class="nc" id="L83">            int itemsToCopy = Math.min(valuesSize - valuesIndex, length);</span>
    -<span class="nc" id="L84">            arraycopy(chunk.values, chunk.startIndex, values, valuesIndex, itemsToCopy);</span>
    -<span class="nc" id="L85">            valuesIndex += length;</span>
    -<span class="nc" id="L86">        }</span>
    -<span class="nc" id="L87">        return values;</span>
    -    }
    -
    -    synchronized int size() {
    -<span class="nc" id="L91">        int result = 0;</span>
    -<span class="nc bnc" id="L92" title="All 2 branches missed.">        for (Chunk chunk : chunks) {</span>
    -<span class="nc" id="L93">            result += chunk.cursor - chunk.startIndex;</span>
    -<span class="nc" id="L94">        }</span>
    -<span class="nc" id="L95">        return result;</span>
    -    }
    -
    -    synchronized String out() {
    -<span class="nc" id="L99">        final StringBuilder builder = new StringBuilder();</span>
    -<span class="nc" id="L100">        final Iterator&lt;Chunk&gt; iterator = chunks.iterator();</span>
    -<span class="nc bnc" id="L101" title="All 2 branches missed.">        while (iterator.hasNext()) {</span>
    -<span class="nc" id="L102">            final Chunk chunk = iterator.next();</span>
    -<span class="nc" id="L103">            builder.append('[');</span>
    -<span class="nc bnc" id="L104" title="All 2 branches missed.">            for (int i = chunk.startIndex; i &lt; chunk.cursor; i++) {</span>
    -<span class="nc" id="L105">                builder.append('(').append(chunk.keys[i]).append(&quot;: &quot;)</span>
    -<span class="nc" id="L106">                        .append(chunk.values[i]).append(')').append(' ');</span>
    -            }
    -<span class="nc" id="L108">            builder.append(']');</span>
    -<span class="nc bnc" id="L109" title="All 2 branches missed.">            if (iterator.hasNext()) {</span>
    -<span class="nc" id="L110">                builder.append(&quot;-&gt;&quot;);</span>
    -            }
    -<span class="nc" id="L112">        }</span>
    -<span class="nc" id="L113">        return builder.toString();</span>
    -    }
    -
    -    /**
    -     * Try to trim all beyond specified boundaries.
    -     *
    -     * @param startKey the start value for which all elements less than it should be removed.
    -     * @param endKey   the end value for which all elements greater/equals than it should be removed.
    -     */
    -    synchronized void trim(long startKey, long endKey) {
    -        /*
    -         * [3, 4, 5, 9] -&gt; [10, 13, 14, 15] -&gt; [21, 24, 29, 30] -&gt; [31] :: start layout
    -         *       |5______________________________23|                    :: trim(5, 23)
    -         *       [5, 9] -&gt; [10, 13, 14, 15] -&gt; [21]                     :: result layout
    -         */
    -<span class="nc" id="L128">        final Iterator&lt;Chunk&gt; descendingIterator = chunks.descendingIterator();</span>
    -<span class="nc bnc" id="L129" title="All 2 branches missed.">        while (descendingIterator.hasNext()) {</span>
    -<span class="nc" id="L130">            final Chunk currentTail = descendingIterator.next();</span>
    -<span class="nc bnc" id="L131" title="All 2 branches missed.">            if (isFirstElementIsEmptyOrGreaterEqualThanKey(currentTail, endKey)) {</span>
    -<span class="nc" id="L132">                freeChunk(currentTail);</span>
    -<span class="nc" id="L133">                descendingIterator.remove();</span>
    -            } else {
    -<span class="nc" id="L135">                currentTail.cursor = findFirstIndexOfGreaterEqualElements(currentTail.keys, currentTail.startIndex,</span>
    -<span class="nc" id="L136">                        currentTail.cursor, endKey);</span>
    -<span class="nc" id="L137">                break;</span>
    -            }
    -<span class="nc" id="L139">        }</span>
    -
    -<span class="nc" id="L141">        final Iterator&lt;Chunk&gt; iterator = chunks.iterator();</span>
    -<span class="nc bnc" id="L142" title="All 2 branches missed.">        while (iterator.hasNext()) {</span>
    -<span class="nc" id="L143">            final Chunk currentHead = iterator.next();</span>
    -<span class="nc bnc" id="L144" title="All 2 branches missed.">            if (isLastElementIsLessThanKey(currentHead, startKey)) {</span>
    -<span class="nc" id="L145">                freeChunk(currentHead);</span>
    -<span class="nc" id="L146">                iterator.remove();</span>
    -            } else {
    -<span class="nc" id="L148">                final int newStartIndex = findFirstIndexOfGreaterEqualElements(currentHead.keys, currentHead.startIndex,</span>
    -<span class="nc" id="L149">                        currentHead.cursor, startKey);</span>
    -<span class="nc bnc" id="L150" title="All 2 branches missed.">                if (currentHead.startIndex != newStartIndex) {</span>
    -<span class="nc" id="L151">                    currentHead.startIndex = newStartIndex;</span>
    -<span class="nc" id="L152">                    currentHead.chunkSize = currentHead.cursor - currentHead.startIndex;</span>
    -                }
    -                break;
    -            }
    -<span class="nc" id="L156">        }</span>
    -<span class="nc" id="L157">    }</span>
    -
    -    synchronized void clear() {
    -<span class="nc" id="L160">        chunks.clear();</span>
    -<span class="nc" id="L161">    }</span>
    -
    -    private boolean isFirstElementIsEmptyOrGreaterEqualThanKey(Chunk chunk, long key) {
    -<span class="nc bnc" id="L164" title="All 4 branches missed.">        return chunk.cursor == chunk.startIndex || chunk.keys[chunk.startIndex] &gt;= key;</span>
    -    }
    -
    -    private boolean isLastElementIsLessThanKey(Chunk chunk, long key) {
    -<span class="nc bnc" id="L168" title="All 4 branches missed.">        return chunk.cursor == chunk.startIndex || chunk.keys[chunk.cursor - 1] &lt; key;</span>
    -    }
    -
    -    private int findFirstIndexOfGreaterEqualElements(long[] array, int startIndex, int endIndex, long minKey) {
    -<span class="nc bnc" id="L172" title="All 4 branches missed.">        if (endIndex == startIndex || array[startIndex] &gt;= minKey) {</span>
    -<span class="nc" id="L173">            return startIndex;</span>
    -        }
    -<span class="nc" id="L175">        final int keyIndex = binarySearch(array, startIndex, endIndex, minKey);</span>
    -<span class="nc bnc" id="L176" title="All 2 branches missed.">        return keyIndex &lt; 0 ? -(keyIndex + 1) : keyIndex;</span>
    -    }
    -
    -    private static class Chunk {
    -
    -        private final long[] keys;
    -        private final long[] values;
    -
    -        private int chunkSize; // can differ from keys.length after half clear()
    -<span class="nc" id="L185">        private int startIndex = 0;</span>
    -<span class="nc" id="L186">        private int cursor = 0;</span>
    -
    -<span class="nc" id="L188">        private Chunk(int chunkSize) {</span>
    -<span class="nc" id="L189">            this.chunkSize = chunkSize;</span>
    -<span class="nc" id="L190">            this.keys = new long[chunkSize];</span>
    -<span class="nc" id="L191">            this.values = new long[chunkSize];</span>
    -<span class="nc" id="L192">        }</span>
    -
    -        private void append(long key, long value) {
    -<span class="nc" id="L195">            keys[cursor] = key;</span>
    -<span class="nc" id="L196">            values[cursor] = value;</span>
    -<span class="nc" id="L197">            cursor++;</span>
    -<span class="nc" id="L198">        }</span>
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArrayTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArrayTest.html
    deleted file mode 100644
    index e73262726a..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArrayTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ChunkedAssociativeLongArrayTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ChunkedAssociativeLongArrayTest</span></div><h1>ChunkedAssociativeLongArrayTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">165 of 165</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">26</td><td class="ctr2">26</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="ChunkedAssociativeLongArrayTest.java.html#L11" class="el_method">testTrim()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="162" alt="162"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">25</td><td class="ctr2" id="i0">25</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="ChunkedAssociativeLongArrayTest.java.html#L7" class="el_method">ChunkedAssociativeLongArrayTest()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArrayTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArrayTest.java.html
    deleted file mode 100644
    index bba85682fb..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ChunkedAssociativeLongArrayTest.java.html
    +++ /dev/null
    @@ -1,41 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ChunkedAssociativeLongArrayTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">ChunkedAssociativeLongArrayTest.java</span></div><h1>ChunkedAssociativeLongArrayTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import static org.assertj.core.api.BDDAssertions.then;
    -
    -import org.junit.Test;
    -
    -<span class="nc" id="L7">public class ChunkedAssociativeLongArrayTest {</span>
    -
    -    @Test
    -    public void testTrim() {
    -<span class="nc" id="L11">        ChunkedAssociativeLongArray array = new ChunkedAssociativeLongArray(3);</span>
    -<span class="nc" id="L12">        array.put(-3, 3);</span>
    -<span class="nc" id="L13">        array.put(-2, 1);</span>
    -<span class="nc" id="L14">        array.put(0, 5);</span>
    -<span class="nc" id="L15">        array.put(3, 0);</span>
    -<span class="nc" id="L16">        array.put(9, 8);</span>
    -<span class="nc" id="L17">        array.put(15, 0);</span>
    -<span class="nc" id="L18">        array.put(19, 5);</span>
    -<span class="nc" id="L19">        array.put(21, 5);</span>
    -<span class="nc" id="L20">        array.put(34, -9);</span>
    -<span class="nc" id="L21">        array.put(109, 5);</span>
    -
    -<span class="nc" id="L23">        then(array.out())</span>
    -<span class="nc" id="L24">                .isEqualTo(&quot;[(-3: 3) (-2: 1) (0: 5) ]-&gt;[(3: 0) (9: 8) (15: 0) ]-&gt;[(19: 5) (21: 5) (34: -9) ]-&gt;[(109: 5) ]&quot;);</span>
    -<span class="nc" id="L25">        then(array.values())</span>
    -<span class="nc" id="L26">                .isEqualTo(new long[]{3, 1, 5, 0, 8, 0, 5, 5, -9, 5});</span>
    -<span class="nc" id="L27">        then(array.size())</span>
    -<span class="nc" id="L28">                .isEqualTo(10);</span>
    -
    -<span class="nc" id="L30">        array.trim(-2, 20);</span>
    -
    -<span class="nc" id="L32">        then(array.out())</span>
    -<span class="nc" id="L33">                .isEqualTo(&quot;[(-2: 1) (0: 5) ]-&gt;[(3: 0) (9: 8) (15: 0) ]-&gt;[(19: 5) ]&quot;);</span>
    -<span class="nc" id="L34">        then(array.values())</span>
    -<span class="nc" id="L35">                .isEqualTo(new long[]{1, 5, 0, 8, 0, 5});</span>
    -<span class="nc" id="L36">        then(array.size())</span>
    -<span class="nc" id="L37">                .isEqualTo(6);</span>
    -
    -<span class="nc" id="L39">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ClassMetadataTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ClassMetadataTest.html
    deleted file mode 100644
    index 45521d450a..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ClassMetadataTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ClassMetadataTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ClassMetadataTest</span></div><h1>ClassMetadataTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">23 of 23</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="ClassMetadataTest.java.html#L10" class="el_method">testParameterMetadataIsAvailable()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="14" alt="14"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="ClassMetadataTest.java.html#L11" class="el_method">lambda$testParameterMetadataIsAvailable$0(Parameter)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="51" height="10" title="6" alt="6"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="ClassMetadataTest.java.html#L7" class="el_method">ClassMetadataTest()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ClassMetadataTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ClassMetadataTest.java.html
    deleted file mode 100644
    index 5b0be8dd6c..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ClassMetadataTest.java.html
    +++ /dev/null
    @@ -1,14 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ClassMetadataTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">ClassMetadataTest.java</span></div><h1>ClassMetadataTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -
    -<span class="nc" id="L7">public class ClassMetadataTest {</span>
    -    @Test
    -    public void testParameterMetadataIsAvailable() throws NoSuchMethodException {
    -<span class="nc" id="L10">        assertThat(DefaultSettableGauge.class.getConstructor(Object.class).getParameters())</span>
    -<span class="nc" id="L11">                .allSatisfy(parameter -&gt; assertThat(parameter.isNamePresent()).isTrue());</span>
    -<span class="nc" id="L12">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Clock$UserTimeClock.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Clock$UserTimeClock.html
    deleted file mode 100644
    index c80659dee4..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Clock$UserTimeClock.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Clock.UserTimeClock</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Clock.UserTimeClock</span></div><h1>Clock.UserTimeClock</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 5</td><td class="ctr2">100%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">2</td><td class="ctr1">0</td><td class="ctr2">2</td><td class="ctr1">0</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="Clock.java.html#L36" class="el_method">Clock.UserTimeClock()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="3" alt="3"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="Clock.java.html#L39" class="el_method">getTick()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="80" height="10" title="2" alt="2"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Clock$UserTimeClockHolder.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Clock$UserTimeClockHolder.html
    deleted file mode 100644
    index 20a62dda34..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Clock$UserTimeClockHolder.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Clock.UserTimeClockHolder</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Clock.UserTimeClockHolder</span></div><h1>Clock.UserTimeClockHolder</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 5</td><td class="ctr2">100%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">1</td><td class="ctr1">0</td><td class="ctr2">1</td><td class="ctr1">0</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Clock.java.html#L44" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Clock.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Clock.html
    deleted file mode 100644
    index 4cb3077b9f..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Clock.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Clock</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Clock</span></div><h1>Clock</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">2 of 7</td><td class="ctr2">71%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">1</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="Clock.java.html#L20" class="el_method">getTime()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="2" alt="2"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Clock.java.html#L6" class="el_method">Clock()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="3" alt="3"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="Clock.java.html#L30" class="el_method">defaultClock()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="80" height="10" title="2" alt="2"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Clock.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Clock.java.html
    deleted file mode 100644
    index 5135efee82..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Clock.java.html
    +++ /dev/null
    @@ -1,47 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Clock.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">Clock.java</span></div><h1>Clock.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -/**
    - * An abstraction for how time passes. It is passed to {@link Timer} to track timing.
    - */
    -<span class="fc" id="L6">public abstract class Clock {</span>
    -    /**
    -     * Returns the current time tick.
    -     *
    -     * @return time tick in nanoseconds
    -     */
    -    public abstract long getTick();
    -
    -    /**
    -     * Returns the current time in milliseconds.
    -     *
    -     * @return time in milliseconds
    -     */
    -    public long getTime() {
    -<span class="nc" id="L20">        return System.currentTimeMillis();</span>
    -    }
    -
    -    /**
    -     * The default clock to use.
    -     *
    -     * @return the default {@link Clock} instance
    -     * @see Clock.UserTimeClock
    -     */
    -    public static Clock defaultClock() {
    -<span class="fc" id="L30">        return UserTimeClockHolder.DEFAULT;</span>
    -    }
    -
    -    /**
    -     * A clock implementation which returns the current time in epoch nanoseconds.
    -     */
    -<span class="fc" id="L36">    public static class UserTimeClock extends Clock {</span>
    -        @Override
    -        public long getTick() {
    -<span class="fc" id="L39">            return System.nanoTime();</span>
    -        }
    -    }
    -
    -    private static class UserTimeClockHolder {
    -<span class="fc" id="L44">        private static final Clock DEFAULT = new UserTimeClock();</span>
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ClockTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ClockTest.html
    deleted file mode 100644
    index c488709c45..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ClockTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ClockTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ClockTest</span></div><h1>ClockTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">36 of 36</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">12</td><td class="ctr2">12</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="ClockTest.java.html#L12" class="el_method">userTimeClock()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="27" alt="27"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">8</td><td class="ctr2" id="i0">8</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="ClockTest.java.html#L25" class="el_method">defaultsToUserTime()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="6" alt="6"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="ClockTest.java.html#L8" class="el_method">ClockTest()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ClockTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ClockTest.java.html
    deleted file mode 100644
    index 546d8586fd..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ClockTest.java.html
    +++ /dev/null
    @@ -1,29 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ClockTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">ClockTest.java</span></div><h1>ClockTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -import static org.assertj.core.api.Assertions.offset;
    -
    -<span class="nc" id="L8">public class ClockTest {</span>
    -
    -    @Test
    -    public void userTimeClock() {
    -<span class="nc" id="L12">        final Clock.UserTimeClock clock = new Clock.UserTimeClock();</span>
    -
    -<span class="nc" id="L14">        assertThat((double) clock.getTime())</span>
    -<span class="nc" id="L15">                .isEqualTo(System.currentTimeMillis(),</span>
    -<span class="nc" id="L16">                        offset(100.0));</span>
    -
    -<span class="nc" id="L18">        assertThat((double) clock.getTick())</span>
    -<span class="nc" id="L19">                .isEqualTo(System.nanoTime(),</span>
    -<span class="nc" id="L20">                        offset(1000000.0));</span>
    -<span class="nc" id="L21">    }</span>
    -
    -    @Test
    -    public void defaultsToUserTime() {
    -<span class="nc" id="L25">        assertThat(Clock.defaultClock())</span>
    -<span class="nc" id="L26">                .isInstanceOf(Clock.UserTimeClock.class);</span>
    -<span class="nc" id="L27">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter$Builder.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter$Builder.html
    deleted file mode 100644
    index 7959fa6788..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter$Builder.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ConsoleReporter.Builder</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ConsoleReporter.Builder</span></div><h1>ConsoleReporter.Builder</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">113 of 113</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">12</td><td class="ctr2">12</td><td class="ctr1">34</td><td class="ctr2">34</td><td class="ctr1">12</td><td class="ctr2">12</td></tr></tfoot><tbody><tr><td id="a1"><a href="ConsoleReporter.java.html#L47" class="el_method">ConsoleReporter.Builder(MetricRegistry)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="36" alt="36"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">13</td><td class="ctr2" id="i0">13</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="ConsoleReporter.java.html#L182" class="el_method">build()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="90" height="10" title="27" alt="27"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h11">1</td><td class="ctr2" id="i11">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a10"><a href="ConsoleReporter.java.html#L70" class="el_method">shutdownExecutorOnStop(boolean)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="5" alt="5"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a9"><a href="ConsoleReporter.java.html#L83" class="el_method">scheduleOn(ScheduledExecutorService)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="5" alt="5"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a8"><a href="ConsoleReporter.java.html#L94" class="el_method">outputTo(PrintStream)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="5" alt="5"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h3">2</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a6"><a href="ConsoleReporter.java.html#L105" class="el_method">formattedFor(Locale)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="5" alt="5"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a11"><a href="ConsoleReporter.java.html#L116" class="el_method">withClock(Clock)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="5" alt="5"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i5">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a7"><a href="ConsoleReporter.java.html#L127" class="el_method">formattedFor(TimeZone)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="5" alt="5"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i6">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a3"><a href="ConsoleReporter.java.html#L138" class="el_method">convertRatesTo(TimeUnit)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="5" alt="5"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i7">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a2"><a href="ConsoleReporter.java.html#L149" class="el_method">convertDurationsTo(TimeUnit)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="5" alt="5"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i8">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a5"><a href="ConsoleReporter.java.html#L160" class="el_method">filter(MetricFilter)</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="5" alt="5"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a4"><a href="ConsoleReporter.java.html#L172" class="el_method">disabledMetricAttributes(Set)</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="5" alt="5"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter.html
    deleted file mode 100644
    index 144a0bd88a..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ConsoleReporter</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ConsoleReporter</span></div><h1>ConsoleReporter</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">897 of 897</td><td class="ctr2">0%</td><td class="bar">24 of 24</td><td class="ctr2">0%</td><td class="ctr1">22</td><td class="ctr2">22</td><td class="ctr1">99</td><td class="ctr2">99</td><td class="ctr1">10</td><td class="ctr2">10</td></tr></tfoot><tbody><tr><td id="a7"><a href="ConsoleReporter.java.html#L316" class="el_method">printTimer(Timer)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="329" alt="329"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h1">17</td><td class="ctr2" id="i1">17</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a9"><a href="ConsoleReporter.java.html#L231" class="el_method">report(SortedMap, SortedMap, SortedMap, SortedMap, SortedMap)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="187" alt="187"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="20" alt="20"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">11</td><td class="ctr2" id="g0">11</td><td class="ctr1" id="h0">41</td><td class="ctr2" id="i0">41</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a4"><a href="ConsoleReporter.java.html#L301" class="el_method">printHistogram(Histogram)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="61" height="10" title="169" alt="169"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h2">13</td><td class="ctr2" id="i2">13</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a6"><a href="ConsoleReporter.java.html#L285" class="el_method">printMeter(Meter)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="37" height="10" title="104" alt="104"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h4">6</td><td class="ctr2" id="i4">6</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a0"><a href="ConsoleReporter.java.html#L214" class="el_method">ConsoleReporter(MetricRegistry, PrintStream, Locale, Clock, TimeZone, TimeUnit, TimeUnit, MetricFilter, ScheduledExecutorService, boolean, Set)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="30" alt="30"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h3">7</td><td class="ctr2" id="i3">7</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a8"><a href="ConsoleReporter.java.html#L336" class="el_method">printWithBanner(String, char)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="28" alt="28"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h5">6</td><td class="ctr2" id="i5">6</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a2"><a href="ConsoleReporter.java.html#L293" class="el_method">printCounter(Map.Entry)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="18" alt="18"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i7">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a3"><a href="ConsoleReporter.java.html#L297" class="el_method">printGauge(Gauge)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="15" alt="15"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i8">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a5"><a href="ConsoleReporter.java.html#L351" class="el_method">printIfEnabled(MetricAttribute, String)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="11" alt="11"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f2">2</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h6">4</td><td class="ctr2" id="i6">4</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a1"><a href="ConsoleReporter.java.html#L26" class="el_method">forRegistry(MetricRegistry)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="6" alt="6"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">1</td><td class="ctr2" id="i9">1</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter.java.html
    deleted file mode 100644
    index 7813a30756..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporter.java.html
    +++ /dev/null
    @@ -1,358 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ConsoleReporter.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">ConsoleReporter.java</span></div><h1>ConsoleReporter.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.io.PrintStream;
    -import java.text.DateFormat;
    -import java.util.Collections;
    -import java.util.Date;
    -import java.util.Locale;
    -import java.util.Map;
    -import java.util.Set;
    -import java.util.SortedMap;
    -import java.util.TimeZone;
    -import java.util.concurrent.ScheduledExecutorService;
    -import java.util.concurrent.TimeUnit;
    -
    -/**
    - * A reporter which outputs measurements to a {@link PrintStream}, like {@code System.out}.
    - */
    -public class ConsoleReporter extends ScheduledReporter {
    -    /**
    -     * Returns a new {@link Builder} for {@link ConsoleReporter}.
    -     *
    -     * @param registry the registry to report
    -     * @return a {@link Builder} instance for a {@link ConsoleReporter}
    -     */
    -    public static Builder forRegistry(MetricRegistry registry) {
    -<span class="nc" id="L26">        return new Builder(registry);</span>
    -    }
    -
    -    /**
    -     * A builder for {@link ConsoleReporter} instances. Defaults to using the default locale and
    -     * time zone, writing to {@code System.out}, converting rates to events/second, converting
    -     * durations to milliseconds, and not filtering metrics.
    -     */
    -    public static class Builder {
    -        private final MetricRegistry registry;
    -        private PrintStream output;
    -        private Locale locale;
    -        private Clock clock;
    -        private TimeZone timeZone;
    -        private TimeUnit rateUnit;
    -        private TimeUnit durationUnit;
    -        private MetricFilter filter;
    -        private ScheduledExecutorService executor;
    -        private boolean shutdownExecutorOnStop;
    -        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -
    -<span class="nc" id="L47">        private Builder(MetricRegistry registry) {</span>
    -<span class="nc" id="L48">            this.registry = registry;</span>
    -<span class="nc" id="L49">            this.output = System.out;</span>
    -<span class="nc" id="L50">            this.locale = Locale.getDefault();</span>
    -<span class="nc" id="L51">            this.clock = Clock.defaultClock();</span>
    -<span class="nc" id="L52">            this.timeZone = TimeZone.getDefault();</span>
    -<span class="nc" id="L53">            this.rateUnit = TimeUnit.SECONDS;</span>
    -<span class="nc" id="L54">            this.durationUnit = TimeUnit.MILLISECONDS;</span>
    -<span class="nc" id="L55">            this.filter = MetricFilter.ALL;</span>
    -<span class="nc" id="L56">            this.executor = null;</span>
    -<span class="nc" id="L57">            this.shutdownExecutorOnStop = true;</span>
    -<span class="nc" id="L58">            disabledMetricAttributes = Collections.emptySet();</span>
    -<span class="nc" id="L59">        }</span>
    -
    -        /**
    -         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -         * Default value is true.
    -         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -         *
    -         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -         * @return {@code this}
    -         */
    -        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<span class="nc" id="L70">            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</span>
    -<span class="nc" id="L71">            return this;</span>
    -        }
    -
    -        /**
    -         * Specifies the executor to use while scheduling reporting of metrics.
    -         * Default value is null.
    -         * Null value leads to executor will be auto created on start.
    -         *
    -         * @param executor the executor to use while scheduling reporting of metrics.
    -         * @return {@code this}
    -         */
    -        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<span class="nc" id="L83">            this.executor = executor;</span>
    -<span class="nc" id="L84">            return this;</span>
    -        }
    -
    -        /**
    -         * Write to the given {@link PrintStream}.
    -         *
    -         * @param output a {@link PrintStream} instance.
    -         * @return {@code this}
    -         */
    -        public Builder outputTo(PrintStream output) {
    -<span class="nc" id="L94">            this.output = output;</span>
    -<span class="nc" id="L95">            return this;</span>
    -        }
    -
    -        /**
    -         * Format numbers for the given {@link Locale}.
    -         *
    -         * @param locale a {@link Locale}
    -         * @return {@code this}
    -         */
    -        public Builder formattedFor(Locale locale) {
    -<span class="nc" id="L105">            this.locale = locale;</span>
    -<span class="nc" id="L106">            return this;</span>
    -        }
    -
    -        /**
    -         * Use the given {@link Clock} instance for the time.
    -         *
    -         * @param clock a {@link Clock} instance
    -         * @return {@code this}
    -         */
    -        public Builder withClock(Clock clock) {
    -<span class="nc" id="L116">            this.clock = clock;</span>
    -<span class="nc" id="L117">            return this;</span>
    -        }
    -
    -        /**
    -         * Use the given {@link TimeZone} for the time.
    -         *
    -         * @param timeZone a {@link TimeZone}
    -         * @return {@code this}
    -         */
    -        public Builder formattedFor(TimeZone timeZone) {
    -<span class="nc" id="L127">            this.timeZone = timeZone;</span>
    -<span class="nc" id="L128">            return this;</span>
    -        }
    -
    -        /**
    -         * Convert rates to the given time unit.
    -         *
    -         * @param rateUnit a unit of time
    -         * @return {@code this}
    -         */
    -        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<span class="nc" id="L138">            this.rateUnit = rateUnit;</span>
    -<span class="nc" id="L139">            return this;</span>
    -        }
    -
    -        /**
    -         * Convert durations to the given time unit.
    -         *
    -         * @param durationUnit a unit of time
    -         * @return {@code this}
    -         */
    -        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<span class="nc" id="L149">            this.durationUnit = durationUnit;</span>
    -<span class="nc" id="L150">            return this;</span>
    -        }
    -
    -        /**
    -         * Only report metrics which match the given filter.
    -         *
    -         * @param filter a {@link MetricFilter}
    -         * @return {@code this}
    -         */
    -        public Builder filter(MetricFilter filter) {
    -<span class="nc" id="L160">            this.filter = filter;</span>
    -<span class="nc" id="L161">            return this;</span>
    -        }
    -
    -        /**
    -         * Don't report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    -         * See {@link MetricAttribute}.
    -         *
    -         * @param disabledMetricAttributes a {@link MetricFilter}
    -         * @return {@code this}
    -         */
    -        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<span class="nc" id="L172">            this.disabledMetricAttributes = disabledMetricAttributes;</span>
    -<span class="nc" id="L173">            return this;</span>
    -        }
    -
    -        /**
    -         * Builds a {@link ConsoleReporter} with the given properties.
    -         *
    -         * @return a {@link ConsoleReporter}
    -         */
    -        public ConsoleReporter build() {
    -<span class="nc" id="L182">            return new ConsoleReporter(registry,</span>
    -                    output,
    -                    locale,
    -                    clock,
    -                    timeZone,
    -                    rateUnit,
    -                    durationUnit,
    -                    filter,
    -                    executor,
    -                    shutdownExecutorOnStop,
    -                    disabledMetricAttributes);
    -        }
    -    }
    -
    -    private static final int CONSOLE_WIDTH = 80;
    -
    -    private final PrintStream output;
    -    private final Locale locale;
    -    private final Clock clock;
    -    private final DateFormat dateFormat;
    -
    -    private ConsoleReporter(MetricRegistry registry,
    -                            PrintStream output,
    -                            Locale locale,
    -                            Clock clock,
    -                            TimeZone timeZone,
    -                            TimeUnit rateUnit,
    -                            TimeUnit durationUnit,
    -                            MetricFilter filter,
    -                            ScheduledExecutorService executor,
    -                            boolean shutdownExecutorOnStop,
    -                            Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<span class="nc" id="L214">        super(registry, &quot;console-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, disabledMetricAttributes);</span>
    -<span class="nc" id="L215">        this.output = output;</span>
    -<span class="nc" id="L216">        this.locale = locale;</span>
    -<span class="nc" id="L217">        this.clock = clock;</span>
    -<span class="nc" id="L218">        this.dateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT,</span>
    -                DateFormat.MEDIUM,
    -                locale);
    -<span class="nc" id="L221">        dateFormat.setTimeZone(timeZone);</span>
    -<span class="nc" id="L222">    }</span>
    -
    -    @Override
    -    @SuppressWarnings(&quot;rawtypes&quot;)
    -    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -                       SortedMap&lt;String, Counter&gt; counters,
    -                       SortedMap&lt;String, Histogram&gt; histograms,
    -                       SortedMap&lt;String, Meter&gt; meters,
    -                       SortedMap&lt;String, Timer&gt; timers) {
    -<span class="nc" id="L231">        final String dateTime = dateFormat.format(new Date(clock.getTime()));</span>
    -<span class="nc" id="L232">        printWithBanner(dateTime, '=');</span>
    -<span class="nc" id="L233">        output.println();</span>
    -
    -<span class="nc bnc" id="L235" title="All 2 branches missed.">        if (!gauges.isEmpty()) {</span>
    -<span class="nc" id="L236">            printWithBanner(&quot;-- Gauges&quot;, '-');</span>
    -<span class="nc bnc" id="L237" title="All 2 branches missed.">            for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</span>
    -<span class="nc" id="L238">                output.println(entry.getKey());</span>
    -<span class="nc" id="L239">                printGauge(entry.getValue());</span>
    -<span class="nc" id="L240">            }</span>
    -<span class="nc" id="L241">            output.println();</span>
    -        }
    -
    -<span class="nc bnc" id="L244" title="All 2 branches missed.">        if (!counters.isEmpty()) {</span>
    -<span class="nc" id="L245">            printWithBanner(&quot;-- Counters&quot;, '-');</span>
    -<span class="nc bnc" id="L246" title="All 2 branches missed.">            for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</span>
    -<span class="nc" id="L247">                output.println(entry.getKey());</span>
    -<span class="nc" id="L248">                printCounter(entry);</span>
    -<span class="nc" id="L249">            }</span>
    -<span class="nc" id="L250">            output.println();</span>
    -        }
    -
    -<span class="nc bnc" id="L253" title="All 2 branches missed.">        if (!histograms.isEmpty()) {</span>
    -<span class="nc" id="L254">            printWithBanner(&quot;-- Histograms&quot;, '-');</span>
    -<span class="nc bnc" id="L255" title="All 2 branches missed.">            for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</span>
    -<span class="nc" id="L256">                output.println(entry.getKey());</span>
    -<span class="nc" id="L257">                printHistogram(entry.getValue());</span>
    -<span class="nc" id="L258">            }</span>
    -<span class="nc" id="L259">            output.println();</span>
    -        }
    -
    -<span class="nc bnc" id="L262" title="All 2 branches missed.">        if (!meters.isEmpty()) {</span>
    -<span class="nc" id="L263">            printWithBanner(&quot;-- Meters&quot;, '-');</span>
    -<span class="nc bnc" id="L264" title="All 2 branches missed.">            for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</span>
    -<span class="nc" id="L265">                output.println(entry.getKey());</span>
    -<span class="nc" id="L266">                printMeter(entry.getValue());</span>
    -<span class="nc" id="L267">            }</span>
    -<span class="nc" id="L268">            output.println();</span>
    -        }
    -
    -<span class="nc bnc" id="L271" title="All 2 branches missed.">        if (!timers.isEmpty()) {</span>
    -<span class="nc" id="L272">            printWithBanner(&quot;-- Timers&quot;, '-');</span>
    -<span class="nc bnc" id="L273" title="All 2 branches missed.">            for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</span>
    -<span class="nc" id="L274">                output.println(entry.getKey());</span>
    -<span class="nc" id="L275">                printTimer(entry.getValue());</span>
    -<span class="nc" id="L276">            }</span>
    -<span class="nc" id="L277">            output.println();</span>
    -        }
    -
    -<span class="nc" id="L280">        output.println();</span>
    -<span class="nc" id="L281">        output.flush();</span>
    -<span class="nc" id="L282">    }</span>
    -
    -    private void printMeter(Meter meter) {
    -<span class="nc" id="L285">        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, meter.getCount()));</span>
    -<span class="nc" id="L286">        printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, &quot;         mean rate = %2.2f events/%s&quot;, convertRate(meter.getMeanRate()), getRateUnit()));</span>
    -<span class="nc" id="L287">        printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, &quot;     1-minute rate = %2.2f events/%s&quot;, convertRate(meter.getOneMinuteRate()), getRateUnit()));</span>
    -<span class="nc" id="L288">        printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, &quot;     5-minute rate = %2.2f events/%s&quot;, convertRate(meter.getFiveMinuteRate()), getRateUnit()));</span>
    -<span class="nc" id="L289">        printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, &quot;    15-minute rate = %2.2f events/%s&quot;, convertRate(meter.getFifteenMinuteRate()), getRateUnit()));</span>
    -<span class="nc" id="L290">    }</span>
    -
    -    private void printCounter(Map.Entry&lt;String, Counter&gt; entry) {
    -<span class="nc" id="L293">        output.printf(locale, &quot;             count = %d%n&quot;, entry.getValue().getCount());</span>
    -<span class="nc" id="L294">    }</span>
    -
    -    private void printGauge(Gauge&lt;?&gt; gauge) {
    -<span class="nc" id="L297">        output.printf(locale, &quot;             value = %s%n&quot;, gauge.getValue());</span>
    -<span class="nc" id="L298">    }</span>
    -
    -    private void printHistogram(Histogram histogram) {
    -<span class="nc" id="L301">        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, histogram.getCount()));</span>
    -<span class="nc" id="L302">        Snapshot snapshot = histogram.getSnapshot();</span>
    -<span class="nc" id="L303">        printIfEnabled(MetricAttribute.MIN, String.format(locale, &quot;               min = %d&quot;, snapshot.getMin()));</span>
    -<span class="nc" id="L304">        printIfEnabled(MetricAttribute.MAX, String.format(locale, &quot;               max = %d&quot;, snapshot.getMax()));</span>
    -<span class="nc" id="L305">        printIfEnabled(MetricAttribute.MEAN, String.format(locale, &quot;              mean = %2.2f&quot;, snapshot.getMean()));</span>
    -<span class="nc" id="L306">        printIfEnabled(MetricAttribute.STDDEV, String.format(locale, &quot;            stddev = %2.2f&quot;, snapshot.getStdDev()));</span>
    -<span class="nc" id="L307">        printIfEnabled(MetricAttribute.P50, String.format(locale, &quot;            median = %2.2f&quot;, snapshot.getMedian()));</span>
    -<span class="nc" id="L308">        printIfEnabled(MetricAttribute.P75, String.format(locale, &quot;              75%% &lt;= %2.2f&quot;, snapshot.get75thPercentile()));</span>
    -<span class="nc" id="L309">        printIfEnabled(MetricAttribute.P95, String.format(locale, &quot;              95%% &lt;= %2.2f&quot;, snapshot.get95thPercentile()));</span>
    -<span class="nc" id="L310">        printIfEnabled(MetricAttribute.P98, String.format(locale, &quot;              98%% &lt;= %2.2f&quot;, snapshot.get98thPercentile()));</span>
    -<span class="nc" id="L311">        printIfEnabled(MetricAttribute.P99, String.format(locale, &quot;              99%% &lt;= %2.2f&quot;, snapshot.get99thPercentile()));</span>
    -<span class="nc" id="L312">        printIfEnabled(MetricAttribute.P999, String.format(locale, &quot;            99.9%% &lt;= %2.2f&quot;, snapshot.get999thPercentile()));</span>
    -<span class="nc" id="L313">    }</span>
    -
    -    private void printTimer(Timer timer) {
    -<span class="nc" id="L316">        final Snapshot snapshot = timer.getSnapshot();</span>
    -<span class="nc" id="L317">        printIfEnabled(MetricAttribute.COUNT, String.format(locale, &quot;             count = %d&quot;, timer.getCount()));</span>
    -<span class="nc" id="L318">        printIfEnabled(MetricAttribute.MEAN_RATE, String.format(locale, &quot;         mean rate = %2.2f calls/%s&quot;, convertRate(timer.getMeanRate()), getRateUnit()));</span>
    -<span class="nc" id="L319">        printIfEnabled(MetricAttribute.M1_RATE, String.format(locale, &quot;     1-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getOneMinuteRate()), getRateUnit()));</span>
    -<span class="nc" id="L320">        printIfEnabled(MetricAttribute.M5_RATE, String.format(locale, &quot;     5-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getFiveMinuteRate()), getRateUnit()));</span>
    -<span class="nc" id="L321">        printIfEnabled(MetricAttribute.M15_RATE, String.format(locale, &quot;    15-minute rate = %2.2f calls/%s&quot;, convertRate(timer.getFifteenMinuteRate()), getRateUnit()));</span>
    -
    -<span class="nc" id="L323">        printIfEnabled(MetricAttribute.MIN, String.format(locale, &quot;               min = %2.2f %s&quot;, convertDuration(snapshot.getMin()), getDurationUnit()));</span>
    -<span class="nc" id="L324">        printIfEnabled(MetricAttribute.MAX, String.format(locale, &quot;               max = %2.2f %s&quot;, convertDuration(snapshot.getMax()), getDurationUnit()));</span>
    -<span class="nc" id="L325">        printIfEnabled(MetricAttribute.MEAN, String.format(locale, &quot;              mean = %2.2f %s&quot;, convertDuration(snapshot.getMean()), getDurationUnit()));</span>
    -<span class="nc" id="L326">        printIfEnabled(MetricAttribute.STDDEV, String.format(locale, &quot;            stddev = %2.2f %s&quot;, convertDuration(snapshot.getStdDev()), getDurationUnit()));</span>
    -<span class="nc" id="L327">        printIfEnabled(MetricAttribute.P50, String.format(locale, &quot;            median = %2.2f %s&quot;, convertDuration(snapshot.getMedian()), getDurationUnit()));</span>
    -<span class="nc" id="L328">        printIfEnabled(MetricAttribute.P75, String.format(locale, &quot;              75%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get75thPercentile()), getDurationUnit()));</span>
    -<span class="nc" id="L329">        printIfEnabled(MetricAttribute.P95, String.format(locale, &quot;              95%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get95thPercentile()), getDurationUnit()));</span>
    -<span class="nc" id="L330">        printIfEnabled(MetricAttribute.P98, String.format(locale, &quot;              98%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get98thPercentile()), getDurationUnit()));</span>
    -<span class="nc" id="L331">        printIfEnabled(MetricAttribute.P99, String.format(locale, &quot;              99%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get99thPercentile()), getDurationUnit()));</span>
    -<span class="nc" id="L332">        printIfEnabled(MetricAttribute.P999, String.format(locale, &quot;            99.9%% &lt;= %2.2f %s&quot;, convertDuration(snapshot.get999thPercentile()), getDurationUnit()));</span>
    -<span class="nc" id="L333">    }</span>
    -
    -    private void printWithBanner(String s, char c) {
    -<span class="nc" id="L336">        output.print(s);</span>
    -<span class="nc" id="L337">        output.print(' ');</span>
    -<span class="nc bnc" id="L338" title="All 2 branches missed.">        for (int i = 0; i &lt; (CONSOLE_WIDTH - s.length() - 1); i++) {</span>
    -<span class="nc" id="L339">            output.print(c);</span>
    -        }
    -<span class="nc" id="L341">        output.println();</span>
    -<span class="nc" id="L342">    }</span>
    -
    -    /**
    -     * Print only if the attribute is enabled
    -     *
    -     * @param type   Metric attribute
    -     * @param status Status to be logged
    -     */
    -    private void printIfEnabled(MetricAttribute type, String status) {
    -<span class="nc bnc" id="L351" title="All 2 branches missed.">        if (getDisabledMetricAttributes().contains(type)) {</span>
    -<span class="nc" id="L352">            return;</span>
    -        }
    -
    -<span class="nc" id="L355">        output.println(status);</span>
    -<span class="nc" id="L356">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporterTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporterTest.html
    deleted file mode 100644
    index 4301f11873..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporterTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ConsoleReporterTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ConsoleReporterTest</span></div><h1>ConsoleReporterTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1,465 of 1,465</td><td class="ctr2">0%</td><td class="bar">6 of 6</td><td class="ctr2">0%</td><td class="ctr1">18</td><td class="ctr2">18</td><td class="ctr1">210</td><td class="ctr2">210</td><td class="ctr1">15</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a13"><a href="ConsoleReporterTest.java.html#L277" class="el_method">reportTimerWithDisabledAttributes()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="286" alt="286"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h0">38</td><td class="ctr2" id="i0">38</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a12"><a href="ConsoleReporterTest.java.html#L180" class="el_method">reportsTimerValues()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="114" height="10" title="272" alt="272"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h2">27</td><td class="ctr2" id="i2">27</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a6"><a href="ConsoleReporterTest.java.html#L342" class="el_method">reportHistogramWithDisabledAttributes()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="88" height="10" title="210" alt="210"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h1">33</td><td class="ctr2" id="i1">33</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a10"><a href="ConsoleReporterTest.java.html#L102" class="el_method">reportsHistogramValues()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="82" height="10" title="196" alt="196"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h4">22</td><td class="ctr2" id="i4">22</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a7"><a href="ConsoleReporterTest.java.html#L236" class="el_method">reportMeterWithDisabledAttributes()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="54" height="10" title="131" alt="131"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h3">25</td><td class="ctr2" id="i3">25</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a11"><a href="ConsoleReporterTest.java.html#L149" class="el_method">reportsMeterValues()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="114" alt="114"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h6">14</td><td class="ctr2" id="i6">14</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a8"><a href="ConsoleReporterTest.java.html#L79" class="el_method">reportsCounterValues()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="66" alt="66"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h7">10</td><td class="ctr2" id="i7">10</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a1"><a href="ConsoleReporterTest.java.html#L23" class="el_method">ConsoleReporterTest()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="23" height="10" title="56" alt="56"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h5">16</td><td class="ctr2" id="i5">16</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a9"><a href="ConsoleReporterTest.java.html#L57" class="el_method">reportsGaugeValues()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="23" height="10" title="56" alt="56"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h8">9</td><td class="ctr2" id="i8">9</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a3"><a href="ConsoleReporterTest.java.html#L397" class="el_method">lines(String[])</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="32" alt="32"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h10">4</td><td class="ctr2" id="i10">4</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a14"><a href="ConsoleReporterTest.java.html#L44" class="el_method">setUp()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="23" alt="23"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">3</td><td class="ctr1" id="h9">7</td><td class="ctr2" id="i9">7</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a5"><a href="ConsoleReporterTest.java.html#L413" class="el_method">map(String, Object)</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="11" alt="11"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">3</td><td class="ctr2" id="i11">3</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a0"><a href="ConsoleReporterTest.java.html#L405" class="el_method">consoleOutput()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="5" alt="5"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i12">1</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a4"><a href="ConsoleReporterTest.java.html#L409" class="el_method">map()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="4" alt="4"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h13">1</td><td class="ctr2" id="i13">1</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a2"><a href="ConsoleReporterTest.java.html#L57" class="el_method">lambda$reportsGaugeValues$0()</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="3" alt="3"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h14">1</td><td class="ctr2" id="i14">1</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporterTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporterTest.java.html
    deleted file mode 100644
    index 58c4170e76..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ConsoleReporterTest.java.html
    +++ /dev/null
    @@ -1,418 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ConsoleReporterTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">ConsoleReporterTest.java</span></div><h1>ConsoleReporterTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.apache.commons.lang3.JavaVersion;
    -import org.apache.commons.lang3.SystemUtils;
    -import org.junit.Before;
    -import org.junit.Test;
    -
    -import java.io.ByteArrayOutputStream;
    -import java.io.PrintStream;
    -import java.io.UnsupportedEncodingException;
    -import java.util.EnumSet;
    -import java.util.Locale;
    -import java.util.Set;
    -import java.util.SortedMap;
    -import java.util.TimeZone;
    -import java.util.TreeMap;
    -import java.util.concurrent.TimeUnit;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -import static org.mockito.Mockito.mock;
    -import static org.mockito.Mockito.when;
    -
    -<span class="nc" id="L23">public class ConsoleReporterTest {</span>
    -<span class="nc" id="L24">    private final Locale locale = Locale.US;</span>
    -<span class="nc" id="L25">    private final TimeZone timeZone = TimeZone.getTimeZone(&quot;America/Los_Angeles&quot;);</span>
    -
    -<span class="nc" id="L27">    private final MetricRegistry registry = mock(MetricRegistry.class);</span>
    -<span class="nc" id="L28">    private final Clock clock = mock(Clock.class);</span>
    -<span class="nc" id="L29">    private final ByteArrayOutputStream bytes = new ByteArrayOutputStream();</span>
    -<span class="nc" id="L30">    private final PrintStream output = new PrintStream(bytes);</span>
    -<span class="nc" id="L31">    private final ConsoleReporter reporter = ConsoleReporter.forRegistry(registry)</span>
    -<span class="nc" id="L32">            .outputTo(output)</span>
    -<span class="nc" id="L33">            .formattedFor(locale)</span>
    -<span class="nc" id="L34">            .withClock(clock)</span>
    -<span class="nc" id="L35">            .formattedFor(timeZone)</span>
    -<span class="nc" id="L36">            .convertRatesTo(TimeUnit.SECONDS)</span>
    -<span class="nc" id="L37">            .convertDurationsTo(TimeUnit.MILLISECONDS)</span>
    -<span class="nc" id="L38">            .filter(MetricFilter.ALL)</span>
    -<span class="nc" id="L39">            .build();</span>
    -    private String dateHeader;
    -
    -    @Before
    -    public void setUp() throws Exception {
    -<span class="nc" id="L44">        when(clock.getTime()).thenReturn(1363568676000L);</span>
    -        // JDK9 has changed the java.text.DateFormat API implementation according to Unicode.
    -        // See http://mail.openjdk.java.net/pipermail/jdk9-dev/2017-April/005732.html
    -<span class="nc bnc" id="L47" title="All 2 branches missed.">        dateHeader = SystemUtils.isJavaVersionAtMost(JavaVersion.JAVA_1_8) ?</span>
    -<span class="nc" id="L48">                &quot;3/17/13 6:04:36 PM =============================================================&quot; :</span>
    -                // https://bugs.openjdk.org/browse/JDK-8304925
    -<span class="nc bnc" id="L50" title="All 2 branches missed.">                SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_20) ?</span>
    -<span class="nc" id="L51">                        &quot;3/17/13, 6:04:36\u202FPM ============================================================&quot; :</span>
    -<span class="nc" id="L52">                        &quot;3/17/13, 6:04:36 PM ============================================================&quot;;</span>
    -<span class="nc" id="L53">    }</span>
    -
    -    @Test
    -    public void reportsGaugeValues() throws Exception {
    -<span class="nc" id="L57">        final Gauge&lt;Integer&gt; gauge = () -&gt; 1;</span>
    -
    -<span class="nc" id="L59">        reporter.report(map(&quot;gauge&quot;, gauge),</span>
    -<span class="nc" id="L60">                map(),</span>
    -<span class="nc" id="L61">                map(),</span>
    -<span class="nc" id="L62">                map(),</span>
    -<span class="nc" id="L63">                map());</span>
    -
    -<span class="nc" id="L65">        assertThat(consoleOutput())</span>
    -<span class="nc" id="L66">                .isEqualTo(lines(</span>
    -                        dateHeader,
    -                        &quot;&quot;,
    -                        &quot;-- Gauges ----------------------------------------------------------------------&quot;,
    -                        &quot;gauge&quot;,
    -                        &quot;             value = 1&quot;,
    -                        &quot;&quot;,
    -                        &quot;&quot;
    -                ));
    -<span class="nc" id="L75">    }</span>
    -
    -    @Test
    -    public void reportsCounterValues() throws Exception {
    -<span class="nc" id="L79">        final Counter counter = mock(Counter.class);</span>
    -<span class="nc" id="L80">        when(counter.getCount()).thenReturn(100L);</span>
    -
    -<span class="nc" id="L82">        reporter.report(map(),</span>
    -<span class="nc" id="L83">                map(&quot;test.counter&quot;, counter),</span>
    -<span class="nc" id="L84">                map(),</span>
    -<span class="nc" id="L85">                map(),</span>
    -<span class="nc" id="L86">                map());</span>
    -
    -<span class="nc" id="L88">        assertThat(consoleOutput())</span>
    -<span class="nc" id="L89">                .isEqualTo(lines(</span>
    -                        dateHeader,
    -                        &quot;&quot;,
    -                        &quot;-- Counters --------------------------------------------------------------------&quot;,
    -                        &quot;test.counter&quot;,
    -                        &quot;             count = 100&quot;,
    -                        &quot;&quot;,
    -                        &quot;&quot;
    -                ));
    -<span class="nc" id="L98">    }</span>
    -
    -    @Test
    -    public void reportsHistogramValues() throws Exception {
    -<span class="nc" id="L102">        final Histogram histogram = mock(Histogram.class);</span>
    -<span class="nc" id="L103">        when(histogram.getCount()).thenReturn(1L);</span>
    -
    -<span class="nc" id="L105">        final Snapshot snapshot = mock(Snapshot.class);</span>
    -<span class="nc" id="L106">        when(snapshot.getMax()).thenReturn(2L);</span>
    -<span class="nc" id="L107">        when(snapshot.getMean()).thenReturn(3.0);</span>
    -<span class="nc" id="L108">        when(snapshot.getMin()).thenReturn(4L);</span>
    -<span class="nc" id="L109">        when(snapshot.getStdDev()).thenReturn(5.0);</span>
    -<span class="nc" id="L110">        when(snapshot.getMedian()).thenReturn(6.0);</span>
    -<span class="nc" id="L111">        when(snapshot.get75thPercentile()).thenReturn(7.0);</span>
    -<span class="nc" id="L112">        when(snapshot.get95thPercentile()).thenReturn(8.0);</span>
    -<span class="nc" id="L113">        when(snapshot.get98thPercentile()).thenReturn(9.0);</span>
    -<span class="nc" id="L114">        when(snapshot.get99thPercentile()).thenReturn(10.0);</span>
    -<span class="nc" id="L115">        when(snapshot.get999thPercentile()).thenReturn(11.0);</span>
    -
    -<span class="nc" id="L117">        when(histogram.getSnapshot()).thenReturn(snapshot);</span>
    -
    -<span class="nc" id="L119">        reporter.report(map(),</span>
    -<span class="nc" id="L120">                map(),</span>
    -<span class="nc" id="L121">                map(&quot;test.histogram&quot;, histogram),</span>
    -<span class="nc" id="L122">                map(),</span>
    -<span class="nc" id="L123">                map());</span>
    -
    -<span class="nc" id="L125">        assertThat(consoleOutput())</span>
    -<span class="nc" id="L126">                .isEqualTo(lines(</span>
    -                        dateHeader,
    -                        &quot;&quot;,
    -                        &quot;-- Histograms ------------------------------------------------------------------&quot;,
    -                        &quot;test.histogram&quot;,
    -                        &quot;             count = 1&quot;,
    -                        &quot;               min = 4&quot;,
    -                        &quot;               max = 2&quot;,
    -                        &quot;              mean = 3.00&quot;,
    -                        &quot;            stddev = 5.00&quot;,
    -                        &quot;            median = 6.00&quot;,
    -                        &quot;              75% &lt;= 7.00&quot;,
    -                        &quot;              95% &lt;= 8.00&quot;,
    -                        &quot;              98% &lt;= 9.00&quot;,
    -                        &quot;              99% &lt;= 10.00&quot;,
    -                        &quot;            99.9% &lt;= 11.00&quot;,
    -                        &quot;&quot;,
    -                        &quot;&quot;
    -                ));
    -<span class="nc" id="L145">    }</span>
    -
    -    @Test
    -    public void reportsMeterValues() throws Exception {
    -<span class="nc" id="L149">        final Meter meter = mock(Meter.class);</span>
    -<span class="nc" id="L150">        when(meter.getCount()).thenReturn(1L);</span>
    -<span class="nc" id="L151">        when(meter.getMeanRate()).thenReturn(2.0);</span>
    -<span class="nc" id="L152">        when(meter.getOneMinuteRate()).thenReturn(3.0);</span>
    -<span class="nc" id="L153">        when(meter.getFiveMinuteRate()).thenReturn(4.0);</span>
    -<span class="nc" id="L154">        when(meter.getFifteenMinuteRate()).thenReturn(5.0);</span>
    -
    -<span class="nc" id="L156">        reporter.report(map(),</span>
    -<span class="nc" id="L157">                map(),</span>
    -<span class="nc" id="L158">                map(),</span>
    -<span class="nc" id="L159">                map(&quot;test.meter&quot;, meter),</span>
    -<span class="nc" id="L160">                map());</span>
    -
    -<span class="nc" id="L162">        assertThat(consoleOutput())</span>
    -<span class="nc" id="L163">                .isEqualTo(lines(</span>
    -                        dateHeader,
    -                        &quot;&quot;,
    -                        &quot;-- Meters ----------------------------------------------------------------------&quot;,
    -                        &quot;test.meter&quot;,
    -                        &quot;             count = 1&quot;,
    -                        &quot;         mean rate = 2.00 events/second&quot;,
    -                        &quot;     1-minute rate = 3.00 events/second&quot;,
    -                        &quot;     5-minute rate = 4.00 events/second&quot;,
    -                        &quot;    15-minute rate = 5.00 events/second&quot;,
    -                        &quot;&quot;,
    -                        &quot;&quot;
    -                ));
    -<span class="nc" id="L176">    }</span>
    -
    -    @Test
    -    public void reportsTimerValues() throws Exception {
    -<span class="nc" id="L180">        final Timer timer = mock(Timer.class);</span>
    -<span class="nc" id="L181">        when(timer.getCount()).thenReturn(1L);</span>
    -<span class="nc" id="L182">        when(timer.getMeanRate()).thenReturn(2.0);</span>
    -<span class="nc" id="L183">        when(timer.getOneMinuteRate()).thenReturn(3.0);</span>
    -<span class="nc" id="L184">        when(timer.getFiveMinuteRate()).thenReturn(4.0);</span>
    -<span class="nc" id="L185">        when(timer.getFifteenMinuteRate()).thenReturn(5.0);</span>
    -
    -<span class="nc" id="L187">        final Snapshot snapshot = mock(Snapshot.class);</span>
    -<span class="nc" id="L188">        when(snapshot.getMax()).thenReturn(TimeUnit.MILLISECONDS.toNanos(100));</span>
    -<span class="nc" id="L189">        when(snapshot.getMean()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(200));</span>
    -<span class="nc" id="L190">        when(snapshot.getMin()).thenReturn(TimeUnit.MILLISECONDS.toNanos(300));</span>
    -<span class="nc" id="L191">        when(snapshot.getStdDev()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(400));</span>
    -<span class="nc" id="L192">        when(snapshot.getMedian()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(500));</span>
    -<span class="nc" id="L193">        when(snapshot.get75thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(600));</span>
    -<span class="nc" id="L194">        when(snapshot.get95thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(700));</span>
    -<span class="nc" id="L195">        when(snapshot.get98thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(800));</span>
    -<span class="nc" id="L196">        when(snapshot.get99thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(900));</span>
    -<span class="nc" id="L197">        when(snapshot.get999thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS</span>
    -<span class="nc" id="L198">                .toNanos(1000));</span>
    -
    -<span class="nc" id="L200">        when(timer.getSnapshot()).thenReturn(snapshot);</span>
    -
    -<span class="nc" id="L202">        reporter.report(map(),</span>
    -<span class="nc" id="L203">                map(),</span>
    -<span class="nc" id="L204">                map(),</span>
    -<span class="nc" id="L205">                map(),</span>
    -<span class="nc" id="L206">                map(&quot;test.another.timer&quot;, timer));</span>
    -
    -<span class="nc" id="L208">        assertThat(consoleOutput())</span>
    -<span class="nc" id="L209">                .isEqualTo(lines(</span>
    -                        dateHeader,
    -                        &quot;&quot;,
    -                        &quot;-- Timers ----------------------------------------------------------------------&quot;,
    -                        &quot;test.another.timer&quot;,
    -                        &quot;             count = 1&quot;,
    -                        &quot;         mean rate = 2.00 calls/second&quot;,
    -                        &quot;     1-minute rate = 3.00 calls/second&quot;,
    -                        &quot;     5-minute rate = 4.00 calls/second&quot;,
    -                        &quot;    15-minute rate = 5.00 calls/second&quot;,
    -                        &quot;               min = 300.00 milliseconds&quot;,
    -                        &quot;               max = 100.00 milliseconds&quot;,
    -                        &quot;              mean = 200.00 milliseconds&quot;,
    -                        &quot;            stddev = 400.00 milliseconds&quot;,
    -                        &quot;            median = 500.00 milliseconds&quot;,
    -                        &quot;              75% &lt;= 600.00 milliseconds&quot;,
    -                        &quot;              95% &lt;= 700.00 milliseconds&quot;,
    -                        &quot;              98% &lt;= 800.00 milliseconds&quot;,
    -                        &quot;              99% &lt;= 900.00 milliseconds&quot;,
    -                        &quot;            99.9% &lt;= 1000.00 milliseconds&quot;,
    -                        &quot;&quot;,
    -                        &quot;&quot;
    -                ));
    -<span class="nc" id="L232">    }</span>
    -
    -    @Test
    -    public void reportMeterWithDisabledAttributes() throws Exception {
    -<span class="nc" id="L236">        Set&lt;MetricAttribute&gt; disabledMetricAttributes = EnumSet.of(MetricAttribute.M15_RATE, MetricAttribute.M5_RATE, MetricAttribute.COUNT);</span>
    -
    -<span class="nc" id="L238">        final ConsoleReporter customReporter = ConsoleReporter.forRegistry(registry)</span>
    -<span class="nc" id="L239">                .outputTo(output)</span>
    -<span class="nc" id="L240">                .formattedFor(locale)</span>
    -<span class="nc" id="L241">                .withClock(clock)</span>
    -<span class="nc" id="L242">                .formattedFor(timeZone)</span>
    -<span class="nc" id="L243">                .convertRatesTo(TimeUnit.SECONDS)</span>
    -<span class="nc" id="L244">                .convertDurationsTo(TimeUnit.MILLISECONDS)</span>
    -<span class="nc" id="L245">                .filter(MetricFilter.ALL)</span>
    -<span class="nc" id="L246">                .disabledMetricAttributes(disabledMetricAttributes)</span>
    -<span class="nc" id="L247">                .build();</span>
    -
    -<span class="nc" id="L249">        final Meter meter = mock(Meter.class);</span>
    -<span class="nc" id="L250">        when(meter.getCount()).thenReturn(1L);</span>
    -<span class="nc" id="L251">        when(meter.getMeanRate()).thenReturn(2.0);</span>
    -<span class="nc" id="L252">        when(meter.getOneMinuteRate()).thenReturn(3.0);</span>
    -<span class="nc" id="L253">        when(meter.getFiveMinuteRate()).thenReturn(4.0);</span>
    -<span class="nc" id="L254">        when(meter.getFifteenMinuteRate()).thenReturn(5.0);</span>
    -
    -<span class="nc" id="L256">        customReporter.report(map(),</span>
    -<span class="nc" id="L257">                map(),</span>
    -<span class="nc" id="L258">                map(),</span>
    -<span class="nc" id="L259">                map(&quot;test.meter&quot;, meter),</span>
    -<span class="nc" id="L260">                map());</span>
    -
    -<span class="nc" id="L262">        assertThat(consoleOutput())</span>
    -<span class="nc" id="L263">                .isEqualTo(lines(</span>
    -                        dateHeader,
    -                        &quot;&quot;,
    -                        &quot;-- Meters ----------------------------------------------------------------------&quot;,
    -                        &quot;test.meter&quot;,
    -                        &quot;         mean rate = 2.00 events/second&quot;,
    -                        &quot;     1-minute rate = 3.00 events/second&quot;,
    -                        &quot;&quot;,
    -                        &quot;&quot;
    -                ));
    -<span class="nc" id="L273">    }</span>
    -
    -    @Test
    -    public void reportTimerWithDisabledAttributes() throws Exception {
    -<span class="nc" id="L277">        Set&lt;MetricAttribute&gt; disabledMetricAttributes = EnumSet.of(MetricAttribute.P50, MetricAttribute.P999, MetricAttribute.M5_RATE, MetricAttribute.MAX);</span>
    -
    -<span class="nc" id="L279">        final ConsoleReporter customReporter = ConsoleReporter.forRegistry(registry)</span>
    -<span class="nc" id="L280">                .outputTo(output)</span>
    -<span class="nc" id="L281">                .formattedFor(locale)</span>
    -<span class="nc" id="L282">                .withClock(clock)</span>
    -<span class="nc" id="L283">                .formattedFor(timeZone)</span>
    -<span class="nc" id="L284">                .convertRatesTo(TimeUnit.SECONDS)</span>
    -<span class="nc" id="L285">                .convertDurationsTo(TimeUnit.MILLISECONDS)</span>
    -<span class="nc" id="L286">                .filter(MetricFilter.ALL)</span>
    -<span class="nc" id="L287">                .disabledMetricAttributes(disabledMetricAttributes)</span>
    -<span class="nc" id="L288">                .build();</span>
    -
    -<span class="nc" id="L290">        final Timer timer = mock(Timer.class);</span>
    -<span class="nc" id="L291">        when(timer.getCount()).thenReturn(1L);</span>
    -<span class="nc" id="L292">        when(timer.getMeanRate()).thenReturn(2.0);</span>
    -<span class="nc" id="L293">        when(timer.getOneMinuteRate()).thenReturn(3.0);</span>
    -<span class="nc" id="L294">        when(timer.getFiveMinuteRate()).thenReturn(4.0);</span>
    -<span class="nc" id="L295">        when(timer.getFifteenMinuteRate()).thenReturn(5.0);</span>
    -
    -<span class="nc" id="L297">        final Snapshot snapshot = mock(Snapshot.class);</span>
    -<span class="nc" id="L298">        when(snapshot.getMax()).thenReturn(TimeUnit.MILLISECONDS.toNanos(100));</span>
    -<span class="nc" id="L299">        when(snapshot.getMean()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(200));</span>
    -<span class="nc" id="L300">        when(snapshot.getMin()).thenReturn(TimeUnit.MILLISECONDS.toNanos(300));</span>
    -<span class="nc" id="L301">        when(snapshot.getStdDev()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(400));</span>
    -<span class="nc" id="L302">        when(snapshot.getMedian()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(500));</span>
    -<span class="nc" id="L303">        when(snapshot.get75thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(600));</span>
    -<span class="nc" id="L304">        when(snapshot.get95thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(700));</span>
    -<span class="nc" id="L305">        when(snapshot.get98thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(800));</span>
    -<span class="nc" id="L306">        when(snapshot.get99thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(900));</span>
    -<span class="nc" id="L307">        when(snapshot.get999thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS</span>
    -<span class="nc" id="L308">                .toNanos(1000));</span>
    -
    -<span class="nc" id="L310">        when(timer.getSnapshot()).thenReturn(snapshot);</span>
    -
    -<span class="nc" id="L312">        customReporter.report(map(),</span>
    -<span class="nc" id="L313">                map(),</span>
    -<span class="nc" id="L314">                map(),</span>
    -<span class="nc" id="L315">                map(),</span>
    -<span class="nc" id="L316">                map(&quot;test.another.timer&quot;, timer));</span>
    -
    -<span class="nc" id="L318">        assertThat(consoleOutput())</span>
    -<span class="nc" id="L319">                .isEqualTo(lines(</span>
    -                        dateHeader,
    -                        &quot;&quot;,
    -                        &quot;-- Timers ----------------------------------------------------------------------&quot;,
    -                        &quot;test.another.timer&quot;,
    -                        &quot;             count = 1&quot;,
    -                        &quot;         mean rate = 2.00 calls/second&quot;,
    -                        &quot;     1-minute rate = 3.00 calls/second&quot;,
    -                        &quot;    15-minute rate = 5.00 calls/second&quot;,
    -                        &quot;               min = 300.00 milliseconds&quot;,
    -                        &quot;              mean = 200.00 milliseconds&quot;,
    -                        &quot;            stddev = 400.00 milliseconds&quot;,
    -                        &quot;              75% &lt;= 600.00 milliseconds&quot;,
    -                        &quot;              95% &lt;= 700.00 milliseconds&quot;,
    -                        &quot;              98% &lt;= 800.00 milliseconds&quot;,
    -                        &quot;              99% &lt;= 900.00 milliseconds&quot;,
    -                        &quot;&quot;,
    -                        &quot;&quot;
    -                ));
    -<span class="nc" id="L338">    }</span>
    -
    -    @Test
    -    public void reportHistogramWithDisabledAttributes() throws Exception {
    -<span class="nc" id="L342">        Set&lt;MetricAttribute&gt; disabledMetricAttributes = EnumSet.of(MetricAttribute.MIN, MetricAttribute.MAX, MetricAttribute.STDDEV, MetricAttribute.P95);</span>
    -
    -<span class="nc" id="L344">        final ConsoleReporter customReporter = ConsoleReporter.forRegistry(registry)</span>
    -<span class="nc" id="L345">                .outputTo(output)</span>
    -<span class="nc" id="L346">                .formattedFor(locale)</span>
    -<span class="nc" id="L347">                .withClock(clock)</span>
    -<span class="nc" id="L348">                .formattedFor(timeZone)</span>
    -<span class="nc" id="L349">                .convertRatesTo(TimeUnit.SECONDS)</span>
    -<span class="nc" id="L350">                .convertDurationsTo(TimeUnit.MILLISECONDS)</span>
    -<span class="nc" id="L351">                .filter(MetricFilter.ALL)</span>
    -<span class="nc" id="L352">                .disabledMetricAttributes(disabledMetricAttributes)</span>
    -<span class="nc" id="L353">                .build();</span>
    -
    -<span class="nc" id="L355">        final Histogram histogram = mock(Histogram.class);</span>
    -<span class="nc" id="L356">        when(histogram.getCount()).thenReturn(1L);</span>
    -
    -<span class="nc" id="L358">        final Snapshot snapshot = mock(Snapshot.class);</span>
    -<span class="nc" id="L359">        when(snapshot.getMax()).thenReturn(2L);</span>
    -<span class="nc" id="L360">        when(snapshot.getMean()).thenReturn(3.0);</span>
    -<span class="nc" id="L361">        when(snapshot.getMin()).thenReturn(4L);</span>
    -<span class="nc" id="L362">        when(snapshot.getStdDev()).thenReturn(5.0);</span>
    -<span class="nc" id="L363">        when(snapshot.getMedian()).thenReturn(6.0);</span>
    -<span class="nc" id="L364">        when(snapshot.get75thPercentile()).thenReturn(7.0);</span>
    -<span class="nc" id="L365">        when(snapshot.get95thPercentile()).thenReturn(8.0);</span>
    -<span class="nc" id="L366">        when(snapshot.get98thPercentile()).thenReturn(9.0);</span>
    -<span class="nc" id="L367">        when(snapshot.get99thPercentile()).thenReturn(10.0);</span>
    -<span class="nc" id="L368">        when(snapshot.get999thPercentile()).thenReturn(11.0);</span>
    -
    -<span class="nc" id="L370">        when(histogram.getSnapshot()).thenReturn(snapshot);</span>
    -
    -<span class="nc" id="L372">        customReporter.report(map(),</span>
    -<span class="nc" id="L373">                map(),</span>
    -<span class="nc" id="L374">                map(&quot;test.histogram&quot;, histogram),</span>
    -<span class="nc" id="L375">                map(),</span>
    -<span class="nc" id="L376">                map());</span>
    -
    -<span class="nc" id="L378">        assertThat(consoleOutput())</span>
    -<span class="nc" id="L379">                .isEqualTo(lines(</span>
    -                        dateHeader,
    -                        &quot;&quot;,
    -                        &quot;-- Histograms ------------------------------------------------------------------&quot;,
    -                        &quot;test.histogram&quot;,
    -                        &quot;             count = 1&quot;,
    -                        &quot;              mean = 3.00&quot;,
    -                        &quot;            median = 6.00&quot;,
    -                        &quot;              75% &lt;= 7.00&quot;,
    -                        &quot;              98% &lt;= 9.00&quot;,
    -                        &quot;              99% &lt;= 10.00&quot;,
    -                        &quot;            99.9% &lt;= 11.00&quot;,
    -                        &quot;&quot;,
    -                        &quot;&quot;
    -                ));
    -<span class="nc" id="L394">    }</span>
    -
    -    private String lines(String... lines) {
    -<span class="nc" id="L397">        final StringBuilder builder = new StringBuilder();</span>
    -<span class="nc bnc" id="L398" title="All 2 branches missed.">        for (String line : lines) {</span>
    -<span class="nc" id="L399">            builder.append(line).append(String.format(&quot;%n&quot;));</span>
    -        }
    -<span class="nc" id="L401">        return builder.toString();</span>
    -    }
    -
    -    private String consoleOutput() throws UnsupportedEncodingException {
    -<span class="nc" id="L405">        return bytes.toString(&quot;UTF-8&quot;);</span>
    -    }
    -
    -    private &lt;T&gt; SortedMap&lt;String, T&gt; map() {
    -<span class="nc" id="L409">        return new TreeMap&lt;&gt;();</span>
    -    }
    -
    -    private &lt;T&gt; SortedMap&lt;String, T&gt; map(String name, T metric) {
    -<span class="nc" id="L413">        final TreeMap&lt;String, T&gt; map = new TreeMap&lt;&gt;();</span>
    -<span class="nc" id="L414">        map.put(name, metric);</span>
    -<span class="nc" id="L415">        return map;</span>
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Counter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Counter.html
    deleted file mode 100644
    index e0835f551d..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Counter.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Counter</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Counter</span></div><h1>Counter</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">31 of 31</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">12</td><td class="ctr2">12</td><td class="ctr1">6</td><td class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a0"><a href="Counter.java.html#L11" class="el_method">Counter()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="8" alt="8"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Counter.java.html#L44" class="el_method">dec(long)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="90" height="10" title="6" alt="6"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a5"><a href="Counter.java.html#L28" class="el_method">inc(long)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="75" height="10" title="5" alt="5"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a4"><a href="Counter.java.html#L19" class="el_method">inc()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="4" alt="4"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">2</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a1"><a href="Counter.java.html#L35" class="el_method">dec()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="4" alt="4"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a3"><a href="Counter.java.html#L54" class="el_method">getCount()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="4" alt="4"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Counter.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Counter.java.html
    deleted file mode 100644
    index e915b5497e..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Counter.java.html
    +++ /dev/null
    @@ -1,57 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Counter.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">Counter.java</span></div><h1>Counter.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.util.concurrent.atomic.LongAdder;
    -
    -/**
    - * An incrementing and decrementing counter metric.
    - */
    -public class Counter implements Metric, Counting {
    -    private final LongAdder count;
    -
    -<span class="nc" id="L11">    public Counter() {</span>
    -<span class="nc" id="L12">        this.count = new LongAdder();</span>
    -<span class="nc" id="L13">    }</span>
    -
    -    /**
    -     * Increment the counter by one.
    -     */
    -    public void inc() {
    -<span class="nc" id="L19">        inc(1);</span>
    -<span class="nc" id="L20">    }</span>
    -
    -    /**
    -     * Increment the counter by {@code n}.
    -     *
    -     * @param n the amount by which the counter will be increased
    -     */
    -    public void inc(long n) {
    -<span class="nc" id="L28">        count.add(n);</span>
    -<span class="nc" id="L29">    }</span>
    -
    -    /**
    -     * Decrement the counter by one.
    -     */
    -    public void dec() {
    -<span class="nc" id="L35">        dec(1);</span>
    -<span class="nc" id="L36">    }</span>
    -
    -    /**
    -     * Decrement the counter by {@code n}.
    -     *
    -     * @param n the amount by which the counter will be decreased
    -     */
    -    public void dec(long n) {
    -<span class="nc" id="L44">        count.add(-n);</span>
    -<span class="nc" id="L45">    }</span>
    -
    -    /**
    -     * Returns the counter's current value.
    -     *
    -     * @return the counter's current value
    -     */
    -    @Override
    -    public long getCount() {
    -<span class="nc" id="L54">        return count.sum();</span>
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CounterTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CounterTest.html
    deleted file mode 100644
    index a91eb2ffeb..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/CounterTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>CounterTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">CounterTest</span></div><h1>CounterTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">85 of 85</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">8</td><td class="ctr2">8</td><td class="ctr1">29</td><td class="ctr2">29</td><td class="ctr1">8</td><td class="ctr2">8</td></tr></tfoot><tbody><tr><td id="a5"><a href="CounterTest.java.html#L26" class="el_method">incrementsByAnArbitraryDelta()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="12" alt="12"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">4</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="CounterTest.java.html#L42" class="el_method">decrementsByAnArbitraryDelta()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="12" alt="12"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a4"><a href="CounterTest.java.html#L50" class="el_method">incrementByNegativeDelta()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="12" alt="12"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a1"><a href="CounterTest.java.html#L58" class="el_method">decrementByNegativeDelta()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="12" alt="12"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">4</td><td class="ctr2" id="i3">4</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a6"><a href="CounterTest.java.html#L18" class="el_method">incrementsByOne()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="110" height="10" title="11" alt="11"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">4</td><td class="ctr2" id="i4">4</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a3"><a href="CounterTest.java.html#L34" class="el_method">decrementsByOne()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="110" height="10" title="11" alt="11"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">4</td><td class="ctr2" id="i5">4</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a0"><a href="CounterTest.java.html#L7" class="el_method">CounterTest()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="8" alt="8"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i7">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a7"><a href="CounterTest.java.html#L12" class="el_method">startsAtZero()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="70" height="10" title="7" alt="7"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h6">3</td><td class="ctr2" id="i6">3</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CounterTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CounterTest.java.html
    deleted file mode 100644
    index f888c3feaa..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/CounterTest.java.html
    +++ /dev/null
    @@ -1,64 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>CounterTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">CounterTest.java</span></div><h1>CounterTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -
    -<span class="nc" id="L7">public class CounterTest {</span>
    -<span class="nc" id="L8">    private final Counter counter = new Counter();</span>
    -
    -    @Test
    -    public void startsAtZero() {
    -<span class="nc" id="L12">        assertThat(counter.getCount())</span>
    -<span class="nc" id="L13">                .isZero();</span>
    -<span class="nc" id="L14">    }</span>
    -
    -    @Test
    -    public void incrementsByOne() {
    -<span class="nc" id="L18">        counter.inc();</span>
    -
    -<span class="nc" id="L20">        assertThat(counter.getCount())</span>
    -<span class="nc" id="L21">                .isEqualTo(1);</span>
    -<span class="nc" id="L22">    }</span>
    -
    -    @Test
    -    public void incrementsByAnArbitraryDelta() {
    -<span class="nc" id="L26">        counter.inc(12);</span>
    -
    -<span class="nc" id="L28">        assertThat(counter.getCount())</span>
    -<span class="nc" id="L29">                .isEqualTo(12);</span>
    -<span class="nc" id="L30">    }</span>
    -
    -    @Test
    -    public void decrementsByOne() {
    -<span class="nc" id="L34">        counter.dec();</span>
    -
    -<span class="nc" id="L36">        assertThat(counter.getCount())</span>
    -<span class="nc" id="L37">                .isEqualTo(-1);</span>
    -<span class="nc" id="L38">    }</span>
    -
    -    @Test
    -    public void decrementsByAnArbitraryDelta() {
    -<span class="nc" id="L42">        counter.dec(12);</span>
    -
    -<span class="nc" id="L44">        assertThat(counter.getCount())</span>
    -<span class="nc" id="L45">                .isEqualTo(-12);</span>
    -<span class="nc" id="L46">    }</span>
    -
    -    @Test
    -    public void incrementByNegativeDelta() {
    -<span class="nc" id="L50">        counter.inc(-12);</span>
    -
    -<span class="nc" id="L52">        assertThat(counter.getCount())</span>
    -<span class="nc" id="L53">                .isEqualTo(-12);</span>
    -<span class="nc" id="L54">    }</span>
    -
    -    @Test
    -    public void decrementByNegativeDelta() {
    -<span class="nc" id="L58">        counter.dec(-12);</span>
    -
    -<span class="nc" id="L60">        assertThat(counter.getCount())</span>
    -<span class="nc" id="L61">                .isEqualTo(12);</span>
    -<span class="nc" id="L62">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter$Builder.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter$Builder.html
    deleted file mode 100644
    index 1f0daa5026..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter$Builder.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>CsvReporter.Builder</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">CsvReporter.Builder</span></div><h1>CsvReporter.Builder</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">106 of 106</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">11</td><td class="ctr2">11</td><td class="ctr1">31</td><td class="ctr2">31</td><td class="ctr1">11</td><td class="ctr2">11</td></tr></tfoot><tbody><tr><td id="a3"><a href="CsvReporter.java.html#L51" class="el_method">CsvReporter.Builder(MetricRegistry)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="35" alt="35"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">12</td><td class="ctr2" id="i0">12</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="CsvReporter.java.html#L169" class="el_method">build(File)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="89" height="10" title="26" alt="26"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h10">1</td><td class="ctr2" id="i10">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a7"><a href="CsvReporter.java.html#L73" class="el_method">shutdownExecutorOnStop(boolean)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="5" alt="5"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a6"><a href="CsvReporter.java.html#L86" class="el_method">scheduleOn(ScheduledExecutorService)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="5" alt="5"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a5"><a href="CsvReporter.java.html#L97" class="el_method">formatFor(Locale)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="5" alt="5"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h3">2</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a2"><a href="CsvReporter.java.html#L108" class="el_method">convertRatesTo(TimeUnit)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="5" alt="5"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="CsvReporter.java.html#L119" class="el_method">convertDurationsTo(TimeUnit)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="5" alt="5"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i5">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a10"><a href="CsvReporter.java.html#L130" class="el_method">withSeparator(String)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="5" alt="5"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i6">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a8"><a href="CsvReporter.java.html#L141" class="el_method">withClock(Clock)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="5" alt="5"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i7">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a4"><a href="CsvReporter.java.html#L152" class="el_method">filter(MetricFilter)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="5" alt="5"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i8">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a9"><a href="CsvReporter.java.html#L157" class="el_method">withCsvFileProvider(CsvFileProvider)</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="5" alt="5"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter.html
    deleted file mode 100644
    index 6fb3b4310f..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>CsvReporter</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">CsvReporter</span></div><h1>CsvReporter</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">846 of 846</td><td class="ctr2">0%</td><td class="bar">16 of 16</td><td class="ctr2">0%</td><td class="ctr1">19</td><td class="ctr2">19</td><td class="ctr1">90</td><td class="ctr2">90</td><td class="ctr1">11</td><td class="ctr2">11</td></tr></tfoot><tbody><tr><td id="a0"><a href="CsvReporter.java.html#L210" class="el_method">CsvReporter(MetricRegistry, File, Locale, String, TimeUnit, TimeUnit, Clock, MetricFilter, ScheduledExecutorService, boolean, CsvFileProvider)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="333" alt="333"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h3">13</td><td class="ctr2" id="i3">13</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a8"><a href="CsvReporter.java.html#L257" class="el_method">reportTimer(long, String, Timer)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="51" height="10" title="144" alt="144"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h0">20</td><td class="ctr2" id="i0">20</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a3"><a href="CsvReporter.java.html#L233" class="el_method">report(SortedMap, SortedMap, SortedMap, SortedMap, SortedMap)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="112" alt="112"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="10" alt="10"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h1">17</td><td class="ctr2" id="i1">17</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a href="CsvReporter.java.html#L325" class="el_method">report(long, String, String, String, Object[])</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="82" alt="82"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="72" height="10" title="6" alt="6"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f1">4</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h4">11</td><td class="ctr2" id="i4">11</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a6"><a href="CsvReporter.java.html#L296" class="el_method">reportHistogram(long, String, Histogram)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="80" alt="80"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h2">14</td><td class="ctr2" id="i2">14</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a7"><a href="CsvReporter.java.html#L283" class="el_method">reportMeter(long, String, Meter)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="54" alt="54"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">8</td><td class="ctr2" id="i5">8</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a4"><a href="CsvReporter.java.html#L316" class="el_method">reportCounter(long, String, Counter)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="15" alt="15"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i6">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a5"><a href="CsvReporter.java.html#L320" class="el_method">reportGauge(long, String, Gauge)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="14" alt="14"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i7">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a1"><a href="CsvReporter.java.html#L32" class="el_method">forRegistry(MetricRegistry)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="6" alt="6"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a10"><a href="CsvReporter.java.html#L183" class="el_method">static {...}</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="4" alt="4"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">1</td><td class="ctr2" id="i9">1</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a9"><a href="CsvReporter.java.html#L342" class="el_method">sanitize(String)</a></td><td class="bar" id="b10"/><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">1</td><td class="ctr2" id="i10">1</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter.java.html
    deleted file mode 100644
    index a856b5e66e..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporter.java.html
    +++ /dev/null
    @@ -1,345 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>CsvReporter.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">CsvReporter.java</span></div><h1>CsvReporter.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.slf4j.Logger;
    -import org.slf4j.LoggerFactory;
    -
    -import java.io.File;
    -import java.io.FileOutputStream;
    -import java.io.IOException;
    -import java.io.OutputStreamWriter;
    -import java.io.PrintWriter;
    -import java.util.Locale;
    -import java.util.Map;
    -import java.util.SortedMap;
    -import java.util.concurrent.ScheduledExecutorService;
    -import java.util.concurrent.TimeUnit;
    -
    -import static java.nio.charset.StandardCharsets.UTF_8;
    -
    -/**
    - * A reporter which creates a comma-separated values file of the measurements for each metric.
    - */
    -public class CsvReporter extends ScheduledReporter {
    -    private static final String DEFAULT_SEPARATOR = &quot;,&quot;;
    -
    -    /**
    -     * Returns a new {@link Builder} for {@link CsvReporter}.
    -     *
    -     * @param registry the registry to report
    -     * @return a {@link Builder} instance for a {@link CsvReporter}
    -     */
    -    public static Builder forRegistry(MetricRegistry registry) {
    -<span class="nc" id="L32">        return new Builder(registry);</span>
    -    }
    -
    -    /**
    -     * A builder for {@link CsvReporter} instances. Defaults to using the default locale, converting
    -     * rates to events/second, converting durations to milliseconds, and not filtering metrics.
    -     */
    -    public static class Builder {
    -        private final MetricRegistry registry;
    -        private Locale locale;
    -        private String separator;
    -        private TimeUnit rateUnit;
    -        private TimeUnit durationUnit;
    -        private Clock clock;
    -        private MetricFilter filter;
    -        private ScheduledExecutorService executor;
    -        private boolean shutdownExecutorOnStop;
    -        private CsvFileProvider csvFileProvider;
    -
    -<span class="nc" id="L51">        private Builder(MetricRegistry registry) {</span>
    -<span class="nc" id="L52">            this.registry = registry;</span>
    -<span class="nc" id="L53">            this.locale = Locale.getDefault();</span>
    -<span class="nc" id="L54">            this.separator = DEFAULT_SEPARATOR;</span>
    -<span class="nc" id="L55">            this.rateUnit = TimeUnit.SECONDS;</span>
    -<span class="nc" id="L56">            this.durationUnit = TimeUnit.MILLISECONDS;</span>
    -<span class="nc" id="L57">            this.clock = Clock.defaultClock();</span>
    -<span class="nc" id="L58">            this.filter = MetricFilter.ALL;</span>
    -<span class="nc" id="L59">            this.executor = null;</span>
    -<span class="nc" id="L60">            this.shutdownExecutorOnStop = true;</span>
    -<span class="nc" id="L61">            this.csvFileProvider = new FixedNameCsvFileProvider();</span>
    -<span class="nc" id="L62">        }</span>
    -
    -        /**
    -         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -         * Default value is true.
    -         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -         *
    -         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -         * @return {@code this}
    -         */
    -        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<span class="nc" id="L73">            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</span>
    -<span class="nc" id="L74">            return this;</span>
    -        }
    -
    -        /**
    -         * Specifies the executor to use while scheduling reporting of metrics.
    -         * Default value is null.
    -         * Null value leads to executor will be auto created on start.
    -         *
    -         * @param executor the executor to use while scheduling reporting of metrics.
    -         * @return {@code this}
    -         */
    -        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<span class="nc" id="L86">            this.executor = executor;</span>
    -<span class="nc" id="L87">            return this;</span>
    -        }
    -
    -        /**
    -         * Format numbers for the given {@link Locale}.
    -         *
    -         * @param locale a {@link Locale}
    -         * @return {@code this}
    -         */
    -        public Builder formatFor(Locale locale) {
    -<span class="nc" id="L97">            this.locale = locale;</span>
    -<span class="nc" id="L98">            return this;</span>
    -        }
    -
    -        /**
    -         * Convert rates to the given time unit.
    -         *
    -         * @param rateUnit a unit of time
    -         * @return {@code this}
    -         */
    -        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<span class="nc" id="L108">            this.rateUnit = rateUnit;</span>
    -<span class="nc" id="L109">            return this;</span>
    -        }
    -
    -        /**
    -         * Convert durations to the given time unit.
    -         *
    -         * @param durationUnit a unit of time
    -         * @return {@code this}
    -         */
    -        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<span class="nc" id="L119">            this.durationUnit = durationUnit;</span>
    -<span class="nc" id="L120">            return this;</span>
    -        }
    -
    -        /**
    -         * Use the given string to use as the separator for values.
    -         *
    -         * @param separator the string to use for the separator.
    -         * @return {@code this}
    -         */
    -        public Builder withSeparator(String separator) {
    -<span class="nc" id="L130">            this.separator = separator;</span>
    -<span class="nc" id="L131">            return this;</span>
    -        }
    -
    -        /**
    -         * Use the given {@link Clock} instance for the time.
    -         *
    -         * @param clock a {@link Clock} instance
    -         * @return {@code this}
    -         */
    -        public Builder withClock(Clock clock) {
    -<span class="nc" id="L141">            this.clock = clock;</span>
    -<span class="nc" id="L142">            return this;</span>
    -        }
    -
    -        /**
    -         * Only report metrics which match the given filter.
    -         *
    -         * @param filter a {@link MetricFilter}
    -         * @return {@code this}
    -         */
    -        public Builder filter(MetricFilter filter) {
    -<span class="nc" id="L152">            this.filter = filter;</span>
    -<span class="nc" id="L153">            return this;</span>
    -        }
    -
    -        public Builder withCsvFileProvider(CsvFileProvider csvFileProvider) {
    -<span class="nc" id="L157">            this.csvFileProvider = csvFileProvider;</span>
    -<span class="nc" id="L158">            return this;</span>
    -        }
    -
    -        /**
    -         * Builds a {@link CsvReporter} with the given properties, writing {@code .csv} files to the
    -         * given directory.
    -         *
    -         * @param directory the directory in which the {@code .csv} files will be created
    -         * @return a {@link CsvReporter}
    -         */
    -        public CsvReporter build(File directory) {
    -<span class="nc" id="L169">            return new CsvReporter(registry,</span>
    -                    directory,
    -                    locale,
    -                    separator,
    -                    rateUnit,
    -                    durationUnit,
    -                    clock,
    -                    filter,
    -                    executor,
    -                    shutdownExecutorOnStop,
    -                    csvFileProvider);
    -        }
    -    }
    -
    -<span class="nc" id="L183">    private static final Logger LOGGER = LoggerFactory.getLogger(CsvReporter.class);</span>
    -
    -    private final File directory;
    -    private final Locale locale;
    -    private final String separator;
    -    private final Clock clock;
    -    private final CsvFileProvider csvFileProvider;
    -
    -    private final String histogramFormat;
    -    private final String meterFormat;
    -    private final String timerFormat;
    -
    -    private final String timerHeader;
    -    private final String meterHeader;
    -    private final String histogramHeader;
    -
    -    private CsvReporter(MetricRegistry registry,
    -                        File directory,
    -                        Locale locale,
    -                        String separator,
    -                        TimeUnit rateUnit,
    -                        TimeUnit durationUnit,
    -                        Clock clock,
    -                        MetricFilter filter,
    -                        ScheduledExecutorService executor,
    -                        boolean shutdownExecutorOnStop,
    -                        CsvFileProvider csvFileProvider) {
    -<span class="nc" id="L210">        super(registry, &quot;csv-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop);</span>
    -<span class="nc" id="L211">        this.directory = directory;</span>
    -<span class="nc" id="L212">        this.locale = locale;</span>
    -<span class="nc" id="L213">        this.separator = separator;</span>
    -<span class="nc" id="L214">        this.clock = clock;</span>
    -<span class="nc" id="L215">        this.csvFileProvider = csvFileProvider;</span>
    -
    -<span class="nc" id="L217">        this.histogramFormat = String.join(separator, &quot;%d&quot;, &quot;%d&quot;, &quot;%f&quot;, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;);</span>
    -<span class="nc" id="L218">        this.meterFormat = String.join(separator, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;events/%s&quot;);</span>
    -<span class="nc" id="L219">        this.timerFormat = String.join(separator, &quot;%d&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;%f&quot;, &quot;calls/%s&quot;, &quot;%s&quot;);</span>
    -
    -<span class="nc" id="L221">        this.timerHeader = String.join(separator, &quot;count&quot;, &quot;max&quot;, &quot;mean&quot;, &quot;min&quot;, &quot;stddev&quot;, &quot;p50&quot;, &quot;p75&quot;, &quot;p95&quot;, &quot;p98&quot;, &quot;p99&quot;, &quot;p999&quot;, &quot;mean_rate&quot;, &quot;m1_rate&quot;, &quot;m5_rate&quot;, &quot;m15_rate&quot;, &quot;rate_unit&quot;, &quot;duration_unit&quot;);</span>
    -<span class="nc" id="L222">        this.meterHeader = String.join(separator, &quot;count&quot;, &quot;mean_rate&quot;, &quot;m1_rate&quot;, &quot;m5_rate&quot;, &quot;m15_rate&quot;, &quot;rate_unit&quot;);</span>
    -<span class="nc" id="L223">        this.histogramHeader = String.join(separator, &quot;count&quot;, &quot;max&quot;, &quot;mean&quot;, &quot;min&quot;, &quot;stddev&quot;, &quot;p50&quot;, &quot;p75&quot;, &quot;p95&quot;, &quot;p98&quot;, &quot;p99&quot;, &quot;p999&quot;);</span>
    -<span class="nc" id="L224">    }</span>
    -
    -    @Override
    -    @SuppressWarnings(&quot;rawtypes&quot;)
    -    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -                       SortedMap&lt;String, Counter&gt; counters,
    -                       SortedMap&lt;String, Histogram&gt; histograms,
    -                       SortedMap&lt;String, Meter&gt; meters,
    -                       SortedMap&lt;String, Timer&gt; timers) {
    -<span class="nc" id="L233">        final long timestamp = TimeUnit.MILLISECONDS.toSeconds(clock.getTime());</span>
    -
    -<span class="nc bnc" id="L235" title="All 2 branches missed.">        for (Map.Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</span>
    -<span class="nc" id="L236">            reportGauge(timestamp, entry.getKey(), entry.getValue());</span>
    -<span class="nc" id="L237">        }</span>
    -
    -<span class="nc bnc" id="L239" title="All 2 branches missed.">        for (Map.Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</span>
    -<span class="nc" id="L240">            reportCounter(timestamp, entry.getKey(), entry.getValue());</span>
    -<span class="nc" id="L241">        }</span>
    -
    -<span class="nc bnc" id="L243" title="All 2 branches missed.">        for (Map.Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</span>
    -<span class="nc" id="L244">            reportHistogram(timestamp, entry.getKey(), entry.getValue());</span>
    -<span class="nc" id="L245">        }</span>
    -
    -<span class="nc bnc" id="L247" title="All 2 branches missed.">        for (Map.Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</span>
    -<span class="nc" id="L248">            reportMeter(timestamp, entry.getKey(), entry.getValue());</span>
    -<span class="nc" id="L249">        }</span>
    -
    -<span class="nc bnc" id="L251" title="All 2 branches missed.">        for (Map.Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</span>
    -<span class="nc" id="L252">            reportTimer(timestamp, entry.getKey(), entry.getValue());</span>
    -<span class="nc" id="L253">        }</span>
    -<span class="nc" id="L254">    }</span>
    -
    -    private void reportTimer(long timestamp, String name, Timer timer) {
    -<span class="nc" id="L257">        final Snapshot snapshot = timer.getSnapshot();</span>
    -
    -<span class="nc" id="L259">        report(timestamp,</span>
    -                name,
    -                timerHeader,
    -                timerFormat,
    -<span class="nc" id="L263">                timer.getCount(),</span>
    -<span class="nc" id="L264">                convertDuration(snapshot.getMax()),</span>
    -<span class="nc" id="L265">                convertDuration(snapshot.getMean()),</span>
    -<span class="nc" id="L266">                convertDuration(snapshot.getMin()),</span>
    -<span class="nc" id="L267">                convertDuration(snapshot.getStdDev()),</span>
    -<span class="nc" id="L268">                convertDuration(snapshot.getMedian()),</span>
    -<span class="nc" id="L269">                convertDuration(snapshot.get75thPercentile()),</span>
    -<span class="nc" id="L270">                convertDuration(snapshot.get95thPercentile()),</span>
    -<span class="nc" id="L271">                convertDuration(snapshot.get98thPercentile()),</span>
    -<span class="nc" id="L272">                convertDuration(snapshot.get99thPercentile()),</span>
    -<span class="nc" id="L273">                convertDuration(snapshot.get999thPercentile()),</span>
    -<span class="nc" id="L274">                convertRate(timer.getMeanRate()),</span>
    -<span class="nc" id="L275">                convertRate(timer.getOneMinuteRate()),</span>
    -<span class="nc" id="L276">                convertRate(timer.getFiveMinuteRate()),</span>
    -<span class="nc" id="L277">                convertRate(timer.getFifteenMinuteRate()),</span>
    -<span class="nc" id="L278">                getRateUnit(),</span>
    -<span class="nc" id="L279">                getDurationUnit());</span>
    -<span class="nc" id="L280">    }</span>
    -
    -    private void reportMeter(long timestamp, String name, Meter meter) {
    -<span class="nc" id="L283">        report(timestamp,</span>
    -                name,
    -                meterHeader,
    -                meterFormat,
    -<span class="nc" id="L287">                meter.getCount(),</span>
    -<span class="nc" id="L288">                convertRate(meter.getMeanRate()),</span>
    -<span class="nc" id="L289">                convertRate(meter.getOneMinuteRate()),</span>
    -<span class="nc" id="L290">                convertRate(meter.getFiveMinuteRate()),</span>
    -<span class="nc" id="L291">                convertRate(meter.getFifteenMinuteRate()),</span>
    -<span class="nc" id="L292">                getRateUnit());</span>
    -<span class="nc" id="L293">    }</span>
    -
    -    private void reportHistogram(long timestamp, String name, Histogram histogram) {
    -<span class="nc" id="L296">        final Snapshot snapshot = histogram.getSnapshot();</span>
    -
    -<span class="nc" id="L298">        report(timestamp,</span>
    -                name,
    -                histogramHeader,
    -                histogramFormat,
    -<span class="nc" id="L302">                histogram.getCount(),</span>
    -<span class="nc" id="L303">                snapshot.getMax(),</span>
    -<span class="nc" id="L304">                snapshot.getMean(),</span>
    -<span class="nc" id="L305">                snapshot.getMin(),</span>
    -<span class="nc" id="L306">                snapshot.getStdDev(),</span>
    -<span class="nc" id="L307">                snapshot.getMedian(),</span>
    -<span class="nc" id="L308">                snapshot.get75thPercentile(),</span>
    -<span class="nc" id="L309">                snapshot.get95thPercentile(),</span>
    -<span class="nc" id="L310">                snapshot.get98thPercentile(),</span>
    -<span class="nc" id="L311">                snapshot.get99thPercentile(),</span>
    -<span class="nc" id="L312">                snapshot.get999thPercentile());</span>
    -<span class="nc" id="L313">    }</span>
    -
    -    private void reportCounter(long timestamp, String name, Counter counter) {
    -<span class="nc" id="L316">        report(timestamp, name, &quot;count&quot;, &quot;%d&quot;, counter.getCount());</span>
    -<span class="nc" id="L317">    }</span>
    -
    -    private void reportGauge(long timestamp, String name, Gauge&lt;?&gt; gauge) {
    -<span class="nc" id="L320">        report(timestamp, name, &quot;value&quot;, &quot;%s&quot;, gauge.getValue());</span>
    -<span class="nc" id="L321">    }</span>
    -
    -    private void report(long timestamp, String name, String header, String line, Object... values) {
    -        try {
    -<span class="nc" id="L325">            final File file = csvFileProvider.getFile(directory, name);</span>
    -<span class="nc" id="L326">            final boolean fileAlreadyExists = file.exists();</span>
    -<span class="nc bnc" id="L327" title="All 4 branches missed.">            if (fileAlreadyExists || file.createNewFile()) {</span>
    -<span class="nc" id="L328">                try (PrintWriter out = new PrintWriter(new OutputStreamWriter(</span>
    -                        new FileOutputStream(file, true), UTF_8))) {
    -<span class="nc bnc" id="L330" title="All 2 branches missed.">                    if (!fileAlreadyExists) {</span>
    -<span class="nc" id="L331">                        out.println(&quot;t&quot; + separator + header);</span>
    -                    }
    -<span class="nc" id="L333">                    out.printf(locale, String.format(locale, &quot;%d&quot; + separator + &quot;%s%n&quot;, timestamp, line), values);</span>
    -                }
    -            }
    -<span class="nc" id="L336">        } catch (IOException e) {</span>
    -<span class="nc" id="L337">            LOGGER.warn(&quot;Error writing to {}&quot;, name, e);</span>
    -<span class="nc" id="L338">        }</span>
    -<span class="nc" id="L339">    }</span>
    -
    -    protected String sanitize(String name) {
    -<span class="nc" id="L342">        return name;</span>
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporterTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporterTest.html
    deleted file mode 100644
    index 4d00d89a93..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporterTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>CsvReporterTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">CsvReporterTest</span></div><h1>CsvReporterTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">723 of 723</td><td class="ctr2">0%</td><td class="bar">2 of 2</td><td class="ctr2">0%</td><td class="ctr1">17</td><td class="ctr2">17</td><td class="ctr1">136</td><td class="ctr2">136</td><td class="ctr1">16</td><td class="ctr2">16</td></tr></tfoot><tbody><tr><td id="a13"><a href="CsvReporterTest.java.html#L133" class="el_method">reportsTimerValues()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="196" alt="196"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">26</td><td class="ctr2" id="i0">26</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a11"><a href="CsvReporterTest.java.html#L84" class="el_method">reportsHistogramValues()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="83" height="10" title="136" alt="136"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">22</td><td class="ctr2" id="i1">22</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a3"><a href="CsvReporterTest.java.html#L189" class="el_method">itFormatsWithCustomSeparator()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="56" alt="56"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h2">17</td><td class="ctr2" id="i2">17</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a15"><a href="CsvReporterTest.java.html#L169" class="el_method">testCsvFileProviderIsUsed()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="52" alt="52"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h3">13</td><td class="ctr2" id="i3">13</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a9"><a href="CsvReporterTest.java.html#L66" class="el_method">reportsCounterValues()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="46" alt="46"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h4">10</td><td class="ctr2" id="i4">10</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a8"><a href="CsvReporterTest.java.html#L214" class="el_method">mockMeter()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="46" alt="46"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h8">7</td><td class="ctr2" id="i8">7</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a12"><a href="CsvReporterTest.java.html#L116" class="el_method">reportsMeterValues()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="37" alt="37"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h6">9</td><td class="ctr2" id="i6">9</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a10"><a href="CsvReporterTest.java.html#L49" class="el_method">reportsGaugeValues()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="36" alt="36"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h7">9</td><td class="ctr2" id="i7">9</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a14"><a href="CsvReporterTest.java.html#L34" class="el_method">setUp()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="34" alt="34"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h5">10</td><td class="ctr2" id="i5">10</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a0"><a href="CsvReporterTest.java.html#L225" class="el_method">csv(String[])</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="32" alt="32"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h9">4</td><td class="ctr2" id="i9">4</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a1"><a href="CsvReporterTest.java.html#L22" class="el_method">CsvReporterTest()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="18" alt="18"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">4</td><td class="ctr2" id="i10">4</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a2"><a href="CsvReporterTest.java.html#L233" class="el_method">fileContents(String)</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="13" alt="13"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i12">1</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a7"><a href="CsvReporterTest.java.html#L241" class="el_method">map(String, Object)</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="11" alt="11"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h11">3</td><td class="ctr2" id="i11">3</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a6"><a href="CsvReporterTest.java.html#L237" class="el_method">map()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="4" alt="4"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h13">1</td><td class="ctr2" id="i13">1</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a5"><a href="CsvReporterTest.java.html#L176" class="el_method">lambda$testCsvFileProviderIsUsed$1()</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="3" alt="3"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h14">1</td><td class="ctr2" id="i14">1</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a4"><a href="CsvReporterTest.java.html#L49" class="el_method">lambda$reportsGaugeValues$0()</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="3" alt="3"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h15">1</td><td class="ctr2" id="i15">1</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporterTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporterTest.java.html
    deleted file mode 100644
    index ce315fbff1..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/CsvReporterTest.java.html
    +++ /dev/null
    @@ -1,246 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>CsvReporterTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">CsvReporterTest.java</span></div><h1>CsvReporterTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Before;
    -import org.junit.Rule;
    -import org.junit.Test;
    -import org.junit.rules.TemporaryFolder;
    -
    -import java.io.File;
    -import java.io.IOException;
    -import java.nio.charset.StandardCharsets;
    -import java.nio.file.Files;
    -import java.util.Locale;
    -import java.util.SortedMap;
    -import java.util.TreeMap;
    -import java.util.concurrent.TimeUnit;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -import static org.mockito.Mockito.mock;
    -import static org.mockito.Mockito.verify;
    -import static org.mockito.Mockito.when;
    -
    -<span class="nc" id="L22">public class CsvReporterTest {</span>
    -<span class="nc" id="L23">    @Rule</span>
    -    public final TemporaryFolder folder = new TemporaryFolder();
    -
    -<span class="nc" id="L26">    private final MetricRegistry registry = mock(MetricRegistry.class);</span>
    -<span class="nc" id="L27">    private final Clock clock = mock(Clock.class);</span>
    -
    -    private File dataDirectory;
    -    private CsvReporter reporter;
    -
    -    @Before
    -    public void setUp() throws Exception {
    -<span class="nc" id="L34">        when(clock.getTime()).thenReturn(19910191000L);</span>
    -
    -<span class="nc" id="L36">        this.dataDirectory = folder.newFolder();</span>
    -
    -<span class="nc" id="L38">        this.reporter = CsvReporter.forRegistry(registry)</span>
    -<span class="nc" id="L39">                .formatFor(Locale.US)</span>
    -<span class="nc" id="L40">                .convertRatesTo(TimeUnit.SECONDS)</span>
    -<span class="nc" id="L41">                .convertDurationsTo(TimeUnit.MILLISECONDS)</span>
    -<span class="nc" id="L42">                .withClock(clock)</span>
    -<span class="nc" id="L43">                .filter(MetricFilter.ALL)</span>
    -<span class="nc" id="L44">                .build(dataDirectory);</span>
    -<span class="nc" id="L45">    }</span>
    -
    -    @Test
    -    public void reportsGaugeValues() throws Exception {
    -<span class="nc" id="L49">        final Gauge&lt;Integer&gt; gauge = () -&gt; 1;</span>
    -
    -<span class="nc" id="L51">        reporter.report(map(&quot;gauge&quot;, gauge),</span>
    -<span class="nc" id="L52">                map(),</span>
    -<span class="nc" id="L53">                map(),</span>
    -<span class="nc" id="L54">                map(),</span>
    -<span class="nc" id="L55">                map());</span>
    -
    -<span class="nc" id="L57">        assertThat(fileContents(&quot;gauge.csv&quot;))</span>
    -<span class="nc" id="L58">                .isEqualTo(csv(</span>
    -                        &quot;t,value&quot;,
    -                        &quot;19910191,1&quot;
    -                ));
    -<span class="nc" id="L62">    }</span>
    -
    -    @Test
    -    public void reportsCounterValues() throws Exception {
    -<span class="nc" id="L66">        final Counter counter = mock(Counter.class);</span>
    -<span class="nc" id="L67">        when(counter.getCount()).thenReturn(100L);</span>
    -
    -<span class="nc" id="L69">        reporter.report(map(),</span>
    -<span class="nc" id="L70">                map(&quot;test.counter&quot;, counter),</span>
    -<span class="nc" id="L71">                map(),</span>
    -<span class="nc" id="L72">                map(),</span>
    -<span class="nc" id="L73">                map());</span>
    -
    -<span class="nc" id="L75">        assertThat(fileContents(&quot;test.counter.csv&quot;))</span>
    -<span class="nc" id="L76">                .isEqualTo(csv(</span>
    -                        &quot;t,count&quot;,
    -                        &quot;19910191,100&quot;
    -                ));
    -<span class="nc" id="L80">    }</span>
    -
    -    @Test
    -    public void reportsHistogramValues() throws Exception {
    -<span class="nc" id="L84">        final Histogram histogram = mock(Histogram.class);</span>
    -<span class="nc" id="L85">        when(histogram.getCount()).thenReturn(1L);</span>
    -
    -<span class="nc" id="L87">        final Snapshot snapshot = mock(Snapshot.class);</span>
    -<span class="nc" id="L88">        when(snapshot.getMax()).thenReturn(2L);</span>
    -<span class="nc" id="L89">        when(snapshot.getMean()).thenReturn(3.0);</span>
    -<span class="nc" id="L90">        when(snapshot.getMin()).thenReturn(4L);</span>
    -<span class="nc" id="L91">        when(snapshot.getStdDev()).thenReturn(5.0);</span>
    -<span class="nc" id="L92">        when(snapshot.getMedian()).thenReturn(6.0);</span>
    -<span class="nc" id="L93">        when(snapshot.get75thPercentile()).thenReturn(7.0);</span>
    -<span class="nc" id="L94">        when(snapshot.get95thPercentile()).thenReturn(8.0);</span>
    -<span class="nc" id="L95">        when(snapshot.get98thPercentile()).thenReturn(9.0);</span>
    -<span class="nc" id="L96">        when(snapshot.get99thPercentile()).thenReturn(10.0);</span>
    -<span class="nc" id="L97">        when(snapshot.get999thPercentile()).thenReturn(11.0);</span>
    -
    -<span class="nc" id="L99">        when(histogram.getSnapshot()).thenReturn(snapshot);</span>
    -
    -<span class="nc" id="L101">        reporter.report(map(),</span>
    -<span class="nc" id="L102">                map(),</span>
    -<span class="nc" id="L103">                map(&quot;test.histogram&quot;, histogram),</span>
    -<span class="nc" id="L104">                map(),</span>
    -<span class="nc" id="L105">                map());</span>
    -
    -<span class="nc" id="L107">        assertThat(fileContents(&quot;test.histogram.csv&quot;))</span>
    -<span class="nc" id="L108">                .isEqualTo(csv(</span>
    -                        &quot;t,count,max,mean,min,stddev,p50,p75,p95,p98,p99,p999&quot;,
    -                        &quot;19910191,1,2,3.000000,4,5.000000,6.000000,7.000000,8.000000,9.000000,10.000000,11.000000&quot;
    -                ));
    -<span class="nc" id="L112">    }</span>
    -
    -    @Test
    -    public void reportsMeterValues() throws Exception {
    -<span class="nc" id="L116">        final Meter meter = mockMeter();</span>
    -
    -<span class="nc" id="L118">        reporter.report(map(),</span>
    -<span class="nc" id="L119">                map(),</span>
    -<span class="nc" id="L120">                map(),</span>
    -<span class="nc" id="L121">                map(&quot;test.meter&quot;, meter),</span>
    -<span class="nc" id="L122">                map());</span>
    -
    -<span class="nc" id="L124">        assertThat(fileContents(&quot;test.meter.csv&quot;))</span>
    -<span class="nc" id="L125">                .isEqualTo(csv(</span>
    -                        &quot;t,count,mean_rate,m1_rate,m5_rate,m15_rate,rate_unit&quot;,
    -                        &quot;19910191,1,2.000000,3.000000,4.000000,5.000000,events/second&quot;
    -                ));
    -<span class="nc" id="L129">    }</span>
    -
    -    @Test
    -    public void reportsTimerValues() throws Exception {
    -<span class="nc" id="L133">        final Timer timer = mock(Timer.class);</span>
    -<span class="nc" id="L134">        when(timer.getCount()).thenReturn(1L);</span>
    -<span class="nc" id="L135">        when(timer.getMeanRate()).thenReturn(2.0);</span>
    -<span class="nc" id="L136">        when(timer.getOneMinuteRate()).thenReturn(3.0);</span>
    -<span class="nc" id="L137">        when(timer.getFiveMinuteRate()).thenReturn(4.0);</span>
    -<span class="nc" id="L138">        when(timer.getFifteenMinuteRate()).thenReturn(5.0);</span>
    -
    -<span class="nc" id="L140">        final Snapshot snapshot = mock(Snapshot.class);</span>
    -<span class="nc" id="L141">        when(snapshot.getMax()).thenReturn(TimeUnit.MILLISECONDS.toNanos(100));</span>
    -<span class="nc" id="L142">        when(snapshot.getMean()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(200));</span>
    -<span class="nc" id="L143">        when(snapshot.getMin()).thenReturn(TimeUnit.MILLISECONDS.toNanos(300));</span>
    -<span class="nc" id="L144">        when(snapshot.getStdDev()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(400));</span>
    -<span class="nc" id="L145">        when(snapshot.getMedian()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(500));</span>
    -<span class="nc" id="L146">        when(snapshot.get75thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(600));</span>
    -<span class="nc" id="L147">        when(snapshot.get95thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(700));</span>
    -<span class="nc" id="L148">        when(snapshot.get98thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(800));</span>
    -<span class="nc" id="L149">        when(snapshot.get99thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(900));</span>
    -<span class="nc" id="L150">        when(snapshot.get999thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(1000));</span>
    -
    -<span class="nc" id="L152">        when(timer.getSnapshot()).thenReturn(snapshot);</span>
    -
    -<span class="nc" id="L154">        reporter.report(map(),</span>
    -<span class="nc" id="L155">                map(),</span>
    -<span class="nc" id="L156">                map(),</span>
    -<span class="nc" id="L157">                map(),</span>
    -<span class="nc" id="L158">                map(&quot;test.another.timer&quot;, timer));</span>
    -
    -<span class="nc" id="L160">        assertThat(fileContents(&quot;test.another.timer.csv&quot;))</span>
    -<span class="nc" id="L161">                .isEqualTo(csv(</span>
    -                        &quot;t,count,max,mean,min,stddev,p50,p75,p95,p98,p99,p999,mean_rate,m1_rate,m5_rate,m15_rate,rate_unit,duration_unit&quot;,
    -                        &quot;19910191,1,100.000000,200.000000,300.000000,400.000000,500.000000,600.000000,700.000000,800.000000,900.000000,1000.000000,2.000000,3.000000,4.000000,5.000000,calls/second,milliseconds&quot;
    -                ));
    -<span class="nc" id="L165">    }</span>
    -
    -    @Test
    -    public void testCsvFileProviderIsUsed() {
    -<span class="nc" id="L169">        CsvFileProvider fileProvider = mock(CsvFileProvider.class);</span>
    -<span class="nc" id="L170">        when(fileProvider.getFile(dataDirectory, &quot;gauge&quot;)).thenReturn(new File(dataDirectory, &quot;guage.csv&quot;));</span>
    -
    -<span class="nc" id="L172">        CsvReporter reporter = CsvReporter.forRegistry(registry)</span>
    -<span class="nc" id="L173">                .withCsvFileProvider(fileProvider)</span>
    -<span class="nc" id="L174">                .build(dataDirectory);</span>
    -
    -<span class="nc" id="L176">        final Gauge&lt;Integer&gt; gauge = () -&gt; 1;</span>
    -
    -<span class="nc" id="L178">        reporter.report(map(&quot;gauge&quot;, gauge),</span>
    -<span class="nc" id="L179">                map(),</span>
    -<span class="nc" id="L180">                map(),</span>
    -<span class="nc" id="L181">                map(),</span>
    -<span class="nc" id="L182">                map());</span>
    -
    -<span class="nc" id="L184">        verify(fileProvider).getFile(dataDirectory, &quot;gauge&quot;);</span>
    -<span class="nc" id="L185">    }</span>
    -
    -    @Test
    -    public void itFormatsWithCustomSeparator() throws Exception {
    -<span class="nc" id="L189">        final Meter meter = mockMeter();</span>
    -
    -<span class="nc" id="L191">        CsvReporter customSeparatorReporter = CsvReporter.forRegistry(registry)</span>
    -<span class="nc" id="L192">                .formatFor(Locale.US)</span>
    -<span class="nc" id="L193">                .withSeparator(&quot;|&quot;)</span>
    -<span class="nc" id="L194">                .convertRatesTo(TimeUnit.SECONDS)</span>
    -<span class="nc" id="L195">                .convertDurationsTo(TimeUnit.MILLISECONDS)</span>
    -<span class="nc" id="L196">                .withClock(clock)</span>
    -<span class="nc" id="L197">                .filter(MetricFilter.ALL)</span>
    -<span class="nc" id="L198">                .build(dataDirectory);</span>
    -
    -<span class="nc" id="L200">        customSeparatorReporter.report(map(),</span>
    -<span class="nc" id="L201">                map(),</span>
    -<span class="nc" id="L202">                map(),</span>
    -<span class="nc" id="L203">                map(&quot;test.meter&quot;, meter),</span>
    -<span class="nc" id="L204">                map());</span>
    -
    -<span class="nc" id="L206">        assertThat(fileContents(&quot;test.meter.csv&quot;))</span>
    -<span class="nc" id="L207">                .isEqualTo(csv(</span>
    -                        &quot;t|count|mean_rate|m1_rate|m5_rate|m15_rate|rate_unit&quot;,
    -                        &quot;19910191|1|2.000000|3.000000|4.000000|5.000000|events/second&quot;
    -                ));
    -<span class="nc" id="L211">    }</span>
    -
    -    private Meter mockMeter() {
    -<span class="nc" id="L214">        final Meter meter = mock(Meter.class);</span>
    -<span class="nc" id="L215">        when(meter.getCount()).thenReturn(1L);</span>
    -<span class="nc" id="L216">        when(meter.getMeanRate()).thenReturn(2.0);</span>
    -<span class="nc" id="L217">        when(meter.getOneMinuteRate()).thenReturn(3.0);</span>
    -<span class="nc" id="L218">        when(meter.getFiveMinuteRate()).thenReturn(4.0);</span>
    -<span class="nc" id="L219">        when(meter.getFifteenMinuteRate()).thenReturn(5.0);</span>
    -
    -<span class="nc" id="L221">        return meter;</span>
    -    }
    -
    -    private String csv(String... lines) {
    -<span class="nc" id="L225">        final StringBuilder builder = new StringBuilder();</span>
    -<span class="nc bnc" id="L226" title="All 2 branches missed.">        for (String line : lines) {</span>
    -<span class="nc" id="L227">            builder.append(line).append(String.format(&quot;%n&quot;));</span>
    -        }
    -<span class="nc" id="L229">        return builder.toString();</span>
    -    }
    -
    -    private String fileContents(String filename) throws IOException {
    -<span class="nc" id="L233">        return new String(Files.readAllBytes(new File(dataDirectory, filename).toPath()), StandardCharsets.UTF_8);</span>
    -    }
    -
    -    private &lt;T&gt; SortedMap&lt;String, T&gt; map() {
    -<span class="nc" id="L237">        return new TreeMap&lt;&gt;();</span>
    -    }
    -
    -    private &lt;T&gt; SortedMap&lt;String, T&gt; map(String name, T metric) {
    -<span class="nc" id="L241">        final TreeMap&lt;String, T&gt; map = new TreeMap&lt;&gt;();</span>
    -<span class="nc" id="L242">        map.put(name, metric);</span>
    -<span class="nc" id="L243">        return map;</span>
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGauge.html b/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGauge.html
    deleted file mode 100644
    index df82f6d4c1..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGauge.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>DefaultSettableGauge</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">DefaultSettableGauge</span></div><h1>DefaultSettableGauge</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">17 of 17</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">8</td><td class="ctr2">8</td><td class="ctr1">4</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a1"><a href="DefaultSettableGauge.java.html#L21" class="el_method">DefaultSettableGauge(Object)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="DefaultSettableGauge.java.html#L13" class="el_method">DefaultSettableGauge()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="4" alt="4"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a3"><a href="DefaultSettableGauge.java.html#L30" class="el_method">setValue(Object)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a href="DefaultSettableGauge.java.html#L40" class="el_method">getValue()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="3" alt="3"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGauge.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGauge.java.html
    deleted file mode 100644
    index b1bb852786..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGauge.java.html
    +++ /dev/null
    @@ -1,44 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>DefaultSettableGauge.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">DefaultSettableGauge.java</span></div><h1>DefaultSettableGauge.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -/**
    - * Similar to {@link Gauge}, but metric value is updated via calling {@link #setValue(T)} instead.
    - */
    -public class DefaultSettableGauge&lt;T&gt; implements SettableGauge&lt;T&gt; {
    -    private volatile T value;
    -
    -    /**
    -     * Create an instance with no default value.
    -     */
    -    public DefaultSettableGauge() {
    -<span class="nc" id="L13">        this(null);</span>
    -<span class="nc" id="L14">    }</span>
    -
    -    /**
    -     * Create an instance with a default value.
    -     *
    -     * @param defaultValue default value
    -     */
    -<span class="nc" id="L21">    public DefaultSettableGauge(T defaultValue) {</span>
    -<span class="nc" id="L22">        this.value = defaultValue;</span>
    -<span class="nc" id="L23">    }</span>
    -
    -    /**
    -     * Set the metric to a new value.
    -     */
    -    @Override
    -    public void setValue(T value) {
    -<span class="nc" id="L30">        this.value = value;</span>
    -<span class="nc" id="L31">    }</span>
    -
    -    /**
    -     * Returns the current value.
    -     *
    -     * @return the current value
    -     */
    -    @Override
    -    public T getValue() {
    -<span class="nc" id="L40">        return value;</span>
    -    }
    -
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGaugeTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGaugeTest.html
    deleted file mode 100644
    index 1d119c7e47..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGaugeTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>DefaultSettableGaugeTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">DefaultSettableGaugeTest</span></div><h1>DefaultSettableGaugeTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">42 of 42</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">11</td><td class="ctr2">11</td><td class="ctr1">4</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a3"><a href="DefaultSettableGaugeTest.java.html#L22" class="el_method">setValueOverwritesExistingValue()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="16" alt="16"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">4</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="DefaultSettableGaugeTest.java.html#L16" class="el_method">newSettableGaugeWithDefaultReturnsDefault()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="97" height="10" title="13" alt="13"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="DefaultSettableGaugeTest.java.html#L10" class="el_method">newSettableGaugeWithoutDefaultReturnsNull()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="75" height="10" title="10" alt="10"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">3</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="DefaultSettableGaugeTest.java.html#L7" class="el_method">DefaultSettableGaugeTest()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="3" alt="3"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGaugeTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGaugeTest.java.html
    deleted file mode 100644
    index 100a6a0bd0..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/DefaultSettableGaugeTest.java.html
    +++ /dev/null
    @@ -1,27 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>DefaultSettableGaugeTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">DefaultSettableGaugeTest.java</span></div><h1>DefaultSettableGaugeTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -
    -<span class="nc" id="L7">public class DefaultSettableGaugeTest {</span>
    -    @Test
    -    public void newSettableGaugeWithoutDefaultReturnsNull() {
    -<span class="nc" id="L10">        DefaultSettableGauge&lt;String&gt; gauge = new DefaultSettableGauge&lt;&gt;();</span>
    -<span class="nc" id="L11">        assertThat(gauge.getValue()).isNull();</span>
    -<span class="nc" id="L12">    }</span>
    -
    -    @Test
    -    public void newSettableGaugeWithDefaultReturnsDefault() {
    -<span class="nc" id="L16">        DefaultSettableGauge&lt;String&gt; gauge = new DefaultSettableGauge&lt;&gt;(&quot;default&quot;);</span>
    -<span class="nc" id="L17">        assertThat(gauge.getValue()).isEqualTo(&quot;default&quot;);</span>
    -<span class="nc" id="L18">    }</span>
    -
    -    @Test
    -    public void setValueOverwritesExistingValue() {
    -<span class="nc" id="L22">        DefaultSettableGauge&lt;String&gt; gauge = new DefaultSettableGauge&lt;&gt;(&quot;default&quot;);</span>
    -<span class="nc" id="L23">        gauge.setValue(&quot;test&quot;);</span>
    -<span class="nc" id="L24">        assertThat(gauge.getValue()).isEqualTo(&quot;test&quot;);</span>
    -<span class="nc" id="L25">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGauge.html b/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGauge.html
    deleted file mode 100644
    index df7c3d9277..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGauge.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>DerivativeGauge</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">DerivativeGauge</span></div><h1>DerivativeGauge</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">12 of 12</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="DerivativeGauge.java.html#L17" class="el_method">DerivativeGauge(Gauge)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="DerivativeGauge.java.html#L23" class="el_method">getValue()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGauge.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGauge.java.html
    deleted file mode 100644
    index c5dfc3626c..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGauge.java.html
    +++ /dev/null
    @@ -1,34 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>DerivativeGauge.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">DerivativeGauge.java</span></div><h1>DerivativeGauge.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -/**
    - * A gauge whose value is derived from the value of another gauge.
    - *
    - * @param &lt;F&gt; the base gauge's value type
    - * @param &lt;T&gt; the derivative type
    - */
    -public abstract class DerivativeGauge&lt;F, T&gt; implements Gauge&lt;T&gt; {
    -    private final Gauge&lt;F&gt; base;
    -
    -    /**
    -     * Creates a new derivative with the given base gauge.
    -     *
    -     * @param base the gauge from which to derive this gauge's value
    -     */
    -<span class="nc" id="L17">    protected DerivativeGauge(Gauge&lt;F&gt; base) {</span>
    -<span class="nc" id="L18">        this.base = base;</span>
    -<span class="nc" id="L19">    }</span>
    -
    -    @Override
    -    public T getValue() {
    -<span class="nc" id="L23">        return transform(base.getValue());</span>
    -    }
    -
    -    /**
    -     * Transforms the value of the base gauge to the value of this gauge.
    -     *
    -     * @param value the value of the base gauge
    -     * @return this gauge's value
    -     */
    -    protected abstract T transform(F value);
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest$1.html
    deleted file mode 100644
    index 05e9b22dee..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest$1.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>DerivativeGaugeTest.new DerivativeGauge() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">DerivativeGaugeTest.new DerivativeGauge() {...}</span></div><h1>DerivativeGaugeTest.new DerivativeGauge() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">11 of 11</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="DerivativeGaugeTest.java.html#L9" class="el_method">{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="7" alt="7"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="DerivativeGaugeTest.java.html#L12" class="el_method">transform(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="4" alt="4"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest.html
    deleted file mode 100644
    index 0c74ec739b..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>DerivativeGaugeTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">DerivativeGaugeTest</span></div><h1>DerivativeGaugeTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">25 of 25</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a0"><a href="DerivativeGaugeTest.java.html#L7" class="el_method">DerivativeGaugeTest()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="14" alt="14"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="DerivativeGaugeTest.java.html#L18" class="el_method">returnsATransformedValue()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="77" height="10" title="9" alt="9"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="DerivativeGaugeTest.java.html#L8" class="el_method">lambda$new$0()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="2" alt="2"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest.java.html
    deleted file mode 100644
    index c6822332e0..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/DerivativeGaugeTest.java.html
    +++ /dev/null
    @@ -1,22 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>DerivativeGaugeTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">DerivativeGaugeTest.java</span></div><h1>DerivativeGaugeTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -
    -<span class="nc" id="L7">public class DerivativeGaugeTest {</span>
    -<span class="nc" id="L8">    private final Gauge&lt;String&gt; gauge1 = () -&gt; &quot;woo&quot;;</span>
    -<span class="nc" id="L9">    private final Gauge&lt;Integer&gt; gauge2 = new DerivativeGauge&lt;String, Integer&gt;(gauge1) {</span>
    -        @Override
    -        protected Integer transform(String value) {
    -<span class="nc" id="L12">            return value.length();</span>
    -        }
    -    };
    -
    -    @Test
    -    public void returnsATransformedValue() {
    -<span class="nc" id="L18">        assertThat(gauge2.getValue())</span>
    -<span class="nc" id="L19">                .isEqualTo(3);</span>
    -<span class="nc" id="L20">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/EWMA.html b/metrics-log4j2-htmlReport/com.codahale.metrics/EWMA.html
    deleted file mode 100644
    index aaf630c927..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/EWMA.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>EWMA</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">EWMA</span></div><h1>EWMA</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">42 of 107</td><td class="ctr2">60%</td><td class="bar">2 of 2</td><td class="ctr2">0%</td><td class="ctr1">3</td><td class="ctr2">9</td><td class="ctr1">10</td><td class="ctr2">25</td><td class="ctr1">2</td><td class="ctr2">8</td></tr></tfoot><tbody><tr><td id="a6"><a href="EWMA.java.html#L88" class="el_method">tick()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="34" alt="34"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h0">9</td><td class="ctr2" id="i0">9</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="EWMA.java.html#L106" class="el_method">getRate(TimeUnit)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="8" alt="8"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="EWMA.java.html#L27" class="el_method">EWMA(double, long, TimeUnit)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="81" height="10" title="23" alt="23"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a5"><a href="EWMA.java.html#L23" class="el_method">static {...}</a></td><td class="bar" id="b3"><img src="../jacoco-resources/greenbar.gif" width="56" height="10" title="16" alt="16"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">0</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">0</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j3">0</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a4"><a href="EWMA.java.html#L40" class="el_method">oneMinuteEWMA()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="7" alt="7"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">0</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">0</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a2"><a href="EWMA.java.html#L50" class="el_method">fiveMinuteEWMA()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="7" alt="7"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="EWMA.java.html#L60" class="el_method">fifteenMinuteEWMA()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="24" height="10" title="7" alt="7"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a7"><a href="EWMA.java.html#L81" class="el_method">update(long)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="17" height="10" title="5" alt="5"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/EWMA.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/EWMA.java.html
    deleted file mode 100644
    index 6acac24a3f..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/EWMA.java.html
    +++ /dev/null
    @@ -1,109 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>EWMA.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">EWMA.java</span></div><h1>EWMA.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.util.concurrent.TimeUnit;
    -import java.util.concurrent.atomic.LongAdder;
    -
    -import static java.lang.Math.exp;
    -
    -/**
    - * An exponentially-weighted moving average.
    - *
    - * @see &lt;a href=&quot;http://www.teamquest.com/pdfs/whitepaper/ldavg1.pdf&quot;&gt;UNIX Load Average Part 1: How
    - * It Works&lt;/a&gt;
    - * @see &lt;a href=&quot;http://www.teamquest.com/pdfs/whitepaper/ldavg2.pdf&quot;&gt;UNIX Load Average Part 2: Not
    - * Your Average Average&lt;/a&gt;
    - * @see &lt;a href=&quot;http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average&quot;&gt;EMA&lt;/a&gt;
    - */
    -public class EWMA {
    -    private static final int INTERVAL = 5;
    -    private static final double SECONDS_PER_MINUTE = 60.0;
    -    private static final int ONE_MINUTE = 1;
    -    private static final int FIVE_MINUTES = 5;
    -    private static final int FIFTEEN_MINUTES = 15;
    -<span class="fc" id="L23">    private static final double M1_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / ONE_MINUTE);</span>
    -<span class="fc" id="L24">    private static final double M5_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIVE_MINUTES);</span>
    -<span class="fc" id="L25">    private static final double M15_ALPHA = 1 - exp(-INTERVAL / SECONDS_PER_MINUTE / FIFTEEN_MINUTES);</span>
    -
    -<span class="fc" id="L27">    private volatile boolean initialized = false;</span>
    -<span class="fc" id="L28">    private volatile double rate = 0.0;</span>
    -
    -<span class="fc" id="L30">    private final LongAdder uncounted = new LongAdder();</span>
    -    private final double alpha, interval;
    -
    -    /**
    -     * Creates a new EWMA which is equivalent to the UNIX one minute load average and which expects
    -     * to be ticked every 5 seconds.
    -     *
    -     * @return a one-minute EWMA
    -     */
    -    public static EWMA oneMinuteEWMA() {
    -<span class="fc" id="L40">        return new EWMA(M1_ALPHA, INTERVAL, TimeUnit.SECONDS);</span>
    -    }
    -
    -    /**
    -     * Creates a new EWMA which is equivalent to the UNIX five minute load average and which expects
    -     * to be ticked every 5 seconds.
    -     *
    -     * @return a five-minute EWMA
    -     */
    -    public static EWMA fiveMinuteEWMA() {
    -<span class="fc" id="L50">        return new EWMA(M5_ALPHA, INTERVAL, TimeUnit.SECONDS);</span>
    -    }
    -
    -    /**
    -     * Creates a new EWMA which is equivalent to the UNIX fifteen minute load average and which
    -     * expects to be ticked every 5 seconds.
    -     *
    -     * @return a fifteen-minute EWMA
    -     */
    -    public static EWMA fifteenMinuteEWMA() {
    -<span class="fc" id="L60">        return new EWMA(M15_ALPHA, INTERVAL, TimeUnit.SECONDS);</span>
    -    }
    -
    -    /**
    -     * Create a new EWMA with a specific smoothing constant.
    -     *
    -     * @param alpha        the smoothing constant
    -     * @param interval     the expected tick interval
    -     * @param intervalUnit the time unit of the tick interval
    -     */
    -<span class="fc" id="L70">    public EWMA(double alpha, long interval, TimeUnit intervalUnit) {</span>
    -<span class="fc" id="L71">        this.interval = intervalUnit.toNanos(interval);</span>
    -<span class="fc" id="L72">        this.alpha = alpha;</span>
    -<span class="fc" id="L73">    }</span>
    -
    -    /**
    -     * Update the moving average with a new value.
    -     *
    -     * @param n the new value
    -     */
    -    public void update(long n) {
    -<span class="fc" id="L81">        uncounted.add(n);</span>
    -<span class="fc" id="L82">    }</span>
    -
    -    /**
    -     * Mark the passage of time and decay the current rate accordingly.
    -     */
    -    public void tick() {
    -<span class="nc" id="L88">        final long count = uncounted.sumThenReset();</span>
    -<span class="nc" id="L89">        final double instantRate = count / interval;</span>
    -<span class="nc bnc" id="L90" title="All 2 branches missed.">        if (initialized) {</span>
    -<span class="nc" id="L91">            final double oldRate = this.rate;</span>
    -<span class="nc" id="L92">            rate = oldRate + (alpha * (instantRate - oldRate));</span>
    -<span class="nc" id="L93">        } else {</span>
    -<span class="nc" id="L94">            rate = instantRate;</span>
    -<span class="nc" id="L95">            initialized = true;</span>
    -        }
    -<span class="nc" id="L97">    }</span>
    -
    -    /**
    -     * Returns the rate in the given units of time.
    -     *
    -     * @param rateUnit the unit of time
    -     * @return the rate
    -     */
    -    public double getRate(TimeUnit rateUnit) {
    -<span class="nc" id="L106">        return rate * (double) rateUnit.toNanos(1);</span>
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/EWMATest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/EWMATest.html
    deleted file mode 100644
    index 3e3a4beec8..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/EWMATest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>EWMATest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">EWMATest</span></div><h1>EWMATest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">652 of 652</td><td class="ctr2">0%</td><td class="bar">2 of 2</td><td class="ctr2">0%</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">109</td><td class="ctr2">109</td><td class="ctr1">5</td><td class="ctr2">5</td></tr></tfoot><tbody><tr><td id="a2"><a href="EWMATest.java.html#L13" class="el_method">aOneMinuteEWMAWithAValueOfThree()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="213" alt="213"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">35</td><td class="ctr2" id="i0">35</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="EWMATest.java.html#L82" class="el_method">aFiveMinuteEWMAWithAValueOfThree()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="213" alt="213"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">35</td><td class="ctr2" id="i1">35</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="EWMATest.java.html#L151" class="el_method">aFifteenMinuteEWMAWithAValueOfThree()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="213" alt="213"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h2">35</td><td class="ctr2" id="i2">35</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a3"><a href="EWMATest.java.html#L220" class="el_method">elapseMinute(EWMA)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="10" alt="10"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h3">3</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a4"><a href="EWMATest.java.html#L10" class="el_method">EWMATest()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="3" alt="3"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/EWMATest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/EWMATest.java.html
    deleted file mode 100644
    index 21df9afa81..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/EWMATest.java.html
    +++ /dev/null
    @@ -1,225 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>EWMATest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">EWMATest.java</span></div><h1>EWMATest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -
    -import java.util.concurrent.TimeUnit;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -import static org.assertj.core.api.Assertions.offset;
    -
    -<span class="nc" id="L10">public class EWMATest {</span>
    -    @Test
    -    public void aOneMinuteEWMAWithAValueOfThree() {
    -<span class="nc" id="L13">        final EWMA ewma = EWMA.oneMinuteEWMA();</span>
    -<span class="nc" id="L14">        ewma.update(3);</span>
    -<span class="nc" id="L15">        ewma.tick();</span>
    -
    -<span class="nc" id="L17">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.6, offset(0.000001));</span>
    -
    -<span class="nc" id="L19">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L21">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.22072766, offset(0.000001));</span>
    -
    -<span class="nc" id="L23">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L25">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.08120117, offset(0.000001));</span>
    -
    -<span class="nc" id="L27">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L29">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.02987224, offset(0.000001));</span>
    -
    -<span class="nc" id="L31">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L33">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.01098938, offset(0.000001));</span>
    -
    -<span class="nc" id="L35">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L37">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00404277, offset(0.000001));</span>
    -
    -<span class="nc" id="L39">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L41">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00148725, offset(0.000001));</span>
    -
    -<span class="nc" id="L43">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L45">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00054713, offset(0.000001));</span>
    -
    -<span class="nc" id="L47">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L49">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00020128, offset(0.000001));</span>
    -
    -<span class="nc" id="L51">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L53">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00007405, offset(0.000001));</span>
    -
    -<span class="nc" id="L55">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L57">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00002724, offset(0.000001));</span>
    -
    -<span class="nc" id="L59">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L61">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00001002, offset(0.000001));</span>
    -
    -<span class="nc" id="L63">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L65">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00000369, offset(0.000001));</span>
    -
    -<span class="nc" id="L67">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L69">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00000136, offset(0.000001));</span>
    -
    -<span class="nc" id="L71">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L73">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00000050, offset(0.000001));</span>
    -
    -<span class="nc" id="L75">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L77">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.00000018, offset(0.000001));</span>
    -<span class="nc" id="L78">    }</span>
    -
    -    @Test
    -    public void aFiveMinuteEWMAWithAValueOfThree() {
    -<span class="nc" id="L82">        final EWMA ewma = EWMA.fiveMinuteEWMA();</span>
    -<span class="nc" id="L83">        ewma.update(3);</span>
    -<span class="nc" id="L84">        ewma.tick();</span>
    -
    -<span class="nc" id="L86">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.6, offset(0.000001));</span>
    -
    -<span class="nc" id="L88">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L90">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.49123845, offset(0.000001));</span>
    -
    -<span class="nc" id="L92">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L94">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.40219203, offset(0.000001));</span>
    -
    -<span class="nc" id="L96">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L98">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.32928698, offset(0.000001));</span>
    -
    -<span class="nc" id="L100">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L102">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.26959738, offset(0.000001));</span>
    -
    -<span class="nc" id="L104">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L106">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.22072766, offset(0.000001));</span>
    -
    -<span class="nc" id="L108">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L110">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.18071653, offset(0.000001));</span>
    -
    -<span class="nc" id="L112">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L114">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.14795818, offset(0.000001));</span>
    -
    -<span class="nc" id="L116">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L118">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.12113791, offset(0.000001));</span>
    -
    -<span class="nc" id="L120">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L122">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.09917933, offset(0.000001));</span>
    -
    -<span class="nc" id="L124">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L126">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.08120117, offset(0.000001));</span>
    -
    -<span class="nc" id="L128">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L130">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.06648190, offset(0.000001));</span>
    -
    -<span class="nc" id="L132">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L134">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.05443077, offset(0.000001));</span>
    -
    -<span class="nc" id="L136">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L138">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.04456415, offset(0.000001));</span>
    -
    -<span class="nc" id="L140">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L142">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.03648604, offset(0.000001));</span>
    -
    -<span class="nc" id="L144">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L146">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.02987224, offset(0.000001));</span>
    -<span class="nc" id="L147">    }</span>
    -
    -    @Test
    -    public void aFifteenMinuteEWMAWithAValueOfThree() {
    -<span class="nc" id="L151">        final EWMA ewma = EWMA.fifteenMinuteEWMA();</span>
    -<span class="nc" id="L152">        ewma.update(3);</span>
    -<span class="nc" id="L153">        ewma.tick();</span>
    -
    -<span class="nc" id="L155">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.6, offset(0.000001));</span>
    -
    -<span class="nc" id="L157">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L159">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.56130419, offset(0.000001));</span>
    -
    -<span class="nc" id="L161">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L163">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.52510399, offset(0.000001));</span>
    -
    -<span class="nc" id="L165">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L167">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.49123845, offset(0.000001));</span>
    -
    -<span class="nc" id="L169">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L171">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.45955700, offset(0.000001));</span>
    -
    -<span class="nc" id="L173">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L175">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.42991879, offset(0.000001));</span>
    -
    -<span class="nc" id="L177">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L179">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.40219203, offset(0.000001));</span>
    -
    -<span class="nc" id="L181">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L183">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.37625345, offset(0.000001));</span>
    -
    -<span class="nc" id="L185">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L187">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.35198773, offset(0.000001));</span>
    -
    -<span class="nc" id="L189">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L191">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.32928698, offset(0.000001));</span>
    -
    -<span class="nc" id="L193">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L195">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.30805027, offset(0.000001));</span>
    -
    -<span class="nc" id="L197">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L199">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.28818318, offset(0.000001));</span>
    -
    -<span class="nc" id="L201">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L203">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.26959738, offset(0.000001));</span>
    -
    -<span class="nc" id="L205">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L207">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.25221023, offset(0.000001));</span>
    -
    -<span class="nc" id="L209">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L211">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.23594443, offset(0.000001));</span>
    -
    -<span class="nc" id="L213">        elapseMinute(ewma);</span>
    -
    -<span class="nc" id="L215">        assertThat(ewma.getRate(TimeUnit.SECONDS)).isEqualTo(0.22072766, offset(0.000001));</span>
    -<span class="nc" id="L216">    }</span>
    -
    -
    -    private void elapseMinute(EWMA ewma) {
    -<span class="nc bnc" id="L220" title="All 2 branches missed.">        for (int i = 1; i &lt;= 12; i++) {</span>
    -<span class="nc" id="L221">            ewma.tick();</span>
    -        }
    -<span class="nc" id="L223">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentialMovingAverages.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentialMovingAverages.html
    deleted file mode 100644
    index bfbcc9f6fd..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentialMovingAverages.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ExponentialMovingAverages</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ExponentialMovingAverages</span></div><h1>ExponentialMovingAverages</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">55 of 113</td><td class="ctr2">51%</td><td class="bar">5 of 6</td><td class="ctr2">16%</td><td class="ctr1">7</td><td class="ctr2">11</td><td class="ctr1">12</td><td class="ctr2">29</td><td class="ctr1">4</td><td class="ctr2">8</td></tr></tfoot><tbody><tr><td id="a6"><a href="ExponentialMovingAverages.java.html#L47" class="el_method">tickIfNecessary()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="81" height="10" title="36" alt="36"/><img src="../jacoco-resources/greenbar.gif" width="38" height="10" title="17" alt="17"/></td><td class="ctr2" id="c3">32%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="100" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="20" height="10" title="1" alt="1"/></td><td class="ctr2" id="e0">16%</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">7</td><td class="ctr2" id="i0">12</td><td class="ctr1" id="j4">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="ExponentialMovingAverages.java.html#L65" class="el_method">getM1Rate()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="5" alt="5"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a4"><a href="ExponentialMovingAverages.java.html#L70" class="el_method">getM5Rate()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="5" alt="5"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a href="ExponentialMovingAverages.java.html#L75" class="el_method">getM15Rate()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="5" alt="5"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a0"><a href="ExponentialMovingAverages.java.html#L27" class="el_method">ExponentialMovingAverages()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="4" alt="4"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a1"><a href="ExponentialMovingAverages.java.html#L16" class="el_method">ExponentialMovingAverages(Clock)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="52" height="10" title="23" alt="23"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a7"><a href="ExponentialMovingAverages.java.html#L40" class="el_method">update(long)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="29" height="10" title="13" alt="13"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a5"><a href="ExponentialMovingAverages.java.html#L14" class="el_method">static {...}</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="11" height="10" title="5" alt="5"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentialMovingAverages.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentialMovingAverages.java.html
    deleted file mode 100644
    index f8f817a707..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentialMovingAverages.java.html
    +++ /dev/null
    @@ -1,78 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ExponentialMovingAverages.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">ExponentialMovingAverages.java</span></div><h1>ExponentialMovingAverages.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.util.concurrent.TimeUnit;
    -import java.util.concurrent.atomic.AtomicLong;
    -
    -/**
    - * A triple (one, five and fifteen minutes) of exponentially-weighted moving average rates as needed by {@link Meter}.
    - * &lt;p&gt;
    - * The rates have the same exponential decay factor as the fifteen-minute load average in the
    - * {@code top} Unix command.
    - */
    -public class ExponentialMovingAverages implements MovingAverages {
    -
    -<span class="fc" id="L14">    private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(5);</span>
    -
    -<span class="fc" id="L16">    private final EWMA m1Rate = EWMA.oneMinuteEWMA();</span>
    -<span class="fc" id="L17">    private final EWMA m5Rate = EWMA.fiveMinuteEWMA();</span>
    -<span class="fc" id="L18">    private final EWMA m15Rate = EWMA.fifteenMinuteEWMA();</span>
    -
    -    private final AtomicLong lastTick;
    -    private final Clock clock;
    -
    -    /**
    -     * Creates a new {@link ExponentialMovingAverages}.
    -     */
    -    public ExponentialMovingAverages() {
    -<span class="nc" id="L27">        this(Clock.defaultClock());</span>
    -<span class="nc" id="L28">    }</span>
    -
    -    /**
    -     * Creates a new {@link ExponentialMovingAverages}.
    -     */
    -<span class="fc" id="L33">    public ExponentialMovingAverages(Clock clock) {</span>
    -<span class="fc" id="L34">        this.clock = clock;</span>
    -<span class="fc" id="L35">        this.lastTick = new AtomicLong(this.clock.getTick());</span>
    -<span class="fc" id="L36">    }</span>
    -
    -    @Override
    -    public void update(long n) {
    -<span class="fc" id="L40">        m1Rate.update(n);</span>
    -<span class="fc" id="L41">        m5Rate.update(n);</span>
    -<span class="fc" id="L42">        m15Rate.update(n);</span>
    -<span class="fc" id="L43">    }</span>
    -
    -    @Override
    -    public void tickIfNecessary() {
    -<span class="fc" id="L47">        final long oldTick = lastTick.get();</span>
    -<span class="fc" id="L48">        final long newTick = clock.getTick();</span>
    -<span class="fc" id="L49">        final long age = newTick - oldTick;</span>
    -<span class="pc bpc" id="L50" title="1 of 2 branches missed.">        if (age &gt; TICK_INTERVAL) {</span>
    -<span class="nc" id="L51">            final long newIntervalStartTick = newTick - age % TICK_INTERVAL;</span>
    -<span class="nc bnc" id="L52" title="All 2 branches missed.">            if (lastTick.compareAndSet(oldTick, newIntervalStartTick)) {</span>
    -<span class="nc" id="L53">                final long requiredTicks = age / TICK_INTERVAL;</span>
    -<span class="nc bnc" id="L54" title="All 2 branches missed.">                for (long i = 0; i &lt; requiredTicks; i++) {</span>
    -<span class="nc" id="L55">                    m1Rate.tick();</span>
    -<span class="nc" id="L56">                    m5Rate.tick();</span>
    -<span class="nc" id="L57">                    m15Rate.tick();</span>
    -                }
    -            }
    -        }
    -<span class="fc" id="L61">    }</span>
    -
    -    @Override
    -    public double getM1Rate() {
    -<span class="nc" id="L65">        return m1Rate.getRate(TimeUnit.SECONDS);</span>
    -    }
    -
    -    @Override
    -    public double getM5Rate() {
    -<span class="nc" id="L70">        return m5Rate.getRate(TimeUnit.SECONDS);</span>
    -    }
    -
    -    @Override
    -    public double getM15Rate() {
    -<span class="nc" id="L75">        return m15Rate.getRate(TimeUnit.SECONDS);</span>
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoir.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoir.html
    deleted file mode 100644
    index 95be7205cb..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoir.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ExponentiallyDecayingReservoir</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ExponentiallyDecayingReservoir</span></div><h1>ExponentiallyDecayingReservoir</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">306 of 306</td><td class="ctr2">0%</td><td class="bar">20 of 20</td><td class="ctr2">0%</td><td class="ctr1">26</td><td class="ctr2">26</td><td class="ctr1">69</td><td class="ctr2">69</td><td class="ctr1">16</td><td class="ctr2">16</td></tr></tfoot><tbody><tr><td id="a7"><a href="ExponentiallyDecayingReservoir.java.html#L164" class="el_method">rescale(long, long)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="94" alt="94"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="96" height="10" title="8" alt="8"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f1">5</td><td class="ctr2" id="g1">5</td><td class="ctr1" id="h0">18</td><td class="ctr2" id="i0">18</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a14"><a href="ExponentiallyDecayingReservoir.java.html#L94" class="el_method">update(long, long)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="95" height="10" title="75" alt="75"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="10" alt="10"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h1">14</td><td class="ctr2" id="i1">14</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a3"><a href="ExponentiallyDecayingReservoir.java.html#L66" class="el_method">ExponentiallyDecayingReservoir(int, double, Clock)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="39" alt="39"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h2">10</td><td class="ctr2" id="i2">10</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a8"><a href="ExponentiallyDecayingReservoir.java.html#L119" class="el_method">rescaleIfNeeded()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="19" alt="19"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f2">2</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h3">5</td><td class="ctr2" id="i3">5</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a4"><a href="ExponentiallyDecayingReservoir.java.html#L128" class="el_method">getSnapshot()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="15" alt="15"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">4</td><td class="ctr2" id="i4">4</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a9"><a href="ExponentiallyDecayingReservoir.java.html#L79" class="el_method">size()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="9" alt="9"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i12">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a15"><a href="ExponentiallyDecayingReservoir.java.html#L142" class="el_method">weight(long)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="7" alt="7"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h13">1</td><td class="ctr2" id="i13">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a2"><a href="ExponentiallyDecayingReservoir.java.html#L55" class="el_method">ExponentiallyDecayingReservoir(int, double)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="6" alt="6"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i5">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a13"><a href="ExponentiallyDecayingReservoir.java.html#L84" class="el_method">update(long)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="6" alt="6"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i6">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a0"><a href="ExponentiallyDecayingReservoir.java.html#L138" class="el_method">currentTimeInSeconds()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="6" alt="6"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h14">1</td><td class="ctr2" id="i14">1</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a1"><a href="ExponentiallyDecayingReservoir.java.html#L44" class="el_method">ExponentiallyDecayingReservoir()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="5" alt="5"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i7">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a12"><a href="ExponentiallyDecayingReservoir.java.html#L193" class="el_method">unlockForRescale()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="5" alt="5"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i8">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a6"><a href="ExponentiallyDecayingReservoir.java.html#L197" class="el_method">lockForRescale()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="5" alt="5"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a5"><a href="ExponentiallyDecayingReservoir.java.html#L201" class="el_method">lockForRegularUsage()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="5" alt="5"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a11"><a href="ExponentiallyDecayingReservoir.java.html#L205" class="el_method">unlockForRegularUsage()</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="5" alt="5"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a10"><a href="ExponentiallyDecayingReservoir.java.html#L27" class="el_method">static {...}</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="5" alt="5"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h15">1</td><td class="ctr2" id="i15">1</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoir.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoir.java.html
    deleted file mode 100644
    index a67dd24d1b..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoir.java.html
    +++ /dev/null
    @@ -1,208 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ExponentiallyDecayingReservoir.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">ExponentiallyDecayingReservoir.java</span></div><h1>ExponentiallyDecayingReservoir.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.util.ArrayList;
    -import java.util.concurrent.ConcurrentSkipListMap;
    -import java.util.concurrent.ThreadLocalRandom;
    -import java.util.concurrent.TimeUnit;
    -import java.util.concurrent.atomic.AtomicLong;
    -import java.util.concurrent.locks.ReentrantReadWriteLock;
    -
    -import static java.lang.Math.exp;
    -import static java.lang.Math.min;
    -
    -import com.codahale.metrics.WeightedSnapshot.WeightedSample;
    -
    -/**
    - * An exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al's
    - * forward-decaying priority reservoir sampling method to produce a statistically representative
    - * sampling reservoir, exponentially biased towards newer entries.
    - *
    - * @see &lt;a href=&quot;http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf&quot;&gt;
    - * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE '09:
    - * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)&lt;/a&gt;
    - */
    -public class ExponentiallyDecayingReservoir implements Reservoir {
    -    private static final int DEFAULT_SIZE = 1028;
    -    private static final double DEFAULT_ALPHA = 0.015;
    -<span class="nc" id="L27">    private static final long RESCALE_THRESHOLD = TimeUnit.HOURS.toNanos(1);</span>
    -
    -    private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    -    private final ReentrantReadWriteLock lock;
    -    private final double alpha;
    -    private final int size;
    -    private final AtomicLong count;
    -    private volatile long startTime;
    -    private final AtomicLong lastScaleTick;
    -    private final Clock clock;
    -
    -    /**
    -     * Creates a new {@link ExponentiallyDecayingReservoir} of 1028 elements, which offers a 99.9%
    -     * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
    -     * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
    -     */
    -    public ExponentiallyDecayingReservoir() {
    -<span class="nc" id="L44">        this(DEFAULT_SIZE, DEFAULT_ALPHA);</span>
    -<span class="nc" id="L45">    }</span>
    -
    -    /**
    -     * Creates a new {@link ExponentiallyDecayingReservoir}.
    -     *
    -     * @param size  the number of samples to keep in the sampling reservoir
    -     * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
    -     *              will be towards newer values
    -     */
    -    public ExponentiallyDecayingReservoir(int size, double alpha) {
    -<span class="nc" id="L55">        this(size, alpha, Clock.defaultClock());</span>
    -<span class="nc" id="L56">    }</span>
    -
    -    /**
    -     * Creates a new {@link ExponentiallyDecayingReservoir}.
    -     *
    -     * @param size  the number of samples to keep in the sampling reservoir
    -     * @param alpha the exponential decay factor; the higher this is, the more biased the reservoir
    -     *              will be towards newer values
    -     * @param clock the clock used to timestamp samples and track rescaling
    -     */
    -<span class="nc" id="L66">    public ExponentiallyDecayingReservoir(int size, double alpha, Clock clock) {</span>
    -<span class="nc" id="L67">        this.values = new ConcurrentSkipListMap&lt;&gt;();</span>
    -<span class="nc" id="L68">        this.lock = new ReentrantReadWriteLock();</span>
    -<span class="nc" id="L69">        this.alpha = alpha;</span>
    -<span class="nc" id="L70">        this.size = size;</span>
    -<span class="nc" id="L71">        this.clock = clock;</span>
    -<span class="nc" id="L72">        this.count = new AtomicLong(0);</span>
    -<span class="nc" id="L73">        this.startTime = currentTimeInSeconds();</span>
    -<span class="nc" id="L74">        this.lastScaleTick = new AtomicLong(clock.getTick());</span>
    -<span class="nc" id="L75">    }</span>
    -
    -    @Override
    -    public int size() {
    -<span class="nc" id="L79">        return (int) min(size, count.get());</span>
    -    }
    -
    -    @Override
    -    public void update(long value) {
    -<span class="nc" id="L84">        update(value, currentTimeInSeconds());</span>
    -<span class="nc" id="L85">    }</span>
    -
    -    /**
    -     * Adds an old value with a fixed timestamp to the reservoir.
    -     *
    -     * @param value     the value to be added
    -     * @param timestamp the epoch timestamp of {@code value} in seconds
    -     */
    -    public void update(long value, long timestamp) {
    -<span class="nc" id="L94">        rescaleIfNeeded();</span>
    -<span class="nc" id="L95">        lockForRegularUsage();</span>
    -        try {
    -<span class="nc" id="L97">            final double itemWeight = weight(timestamp - startTime);</span>
    -<span class="nc" id="L98">            final WeightedSample sample = new WeightedSample(value, itemWeight);</span>
    -<span class="nc" id="L99">            final double priority = itemWeight / ThreadLocalRandom.current().nextDouble();</span>
    -
    -<span class="nc" id="L101">            final long newCount = count.incrementAndGet();</span>
    -<span class="nc bnc" id="L102" title="All 4 branches missed.">            if (newCount &lt;= size || values.isEmpty()) {</span>
    -<span class="nc" id="L103">                values.put(priority, sample);</span>
    -            } else {
    -<span class="nc" id="L105">                Double first = values.firstKey();</span>
    -<span class="nc bnc" id="L106" title="All 4 branches missed.">                if (first &lt; priority &amp;&amp; values.putIfAbsent(priority, sample) == null) {</span>
    -                    // ensure we always remove an item
    -<span class="nc bnc" id="L108" title="All 2 branches missed.">                    while (values.remove(first) == null) {</span>
    -<span class="nc" id="L109">                        first = values.firstKey();</span>
    -                    }
    -                }
    -            }
    -        } finally {
    -<span class="nc" id="L114">            unlockForRegularUsage();</span>
    -        }
    -<span class="nc" id="L116">    }</span>
    -
    -    private void rescaleIfNeeded() {
    -<span class="nc" id="L119">        final long now = clock.getTick();</span>
    -<span class="nc" id="L120">        final long lastScaleTickSnapshot = lastScaleTick.get();</span>
    -<span class="nc bnc" id="L121" title="All 2 branches missed.">        if (now - lastScaleTickSnapshot &gt;= RESCALE_THRESHOLD) {</span>
    -<span class="nc" id="L122">            rescale(now, lastScaleTickSnapshot);</span>
    -        }
    -<span class="nc" id="L124">    }</span>
    -
    -    @Override
    -    public Snapshot getSnapshot() {
    -<span class="nc" id="L128">        rescaleIfNeeded();</span>
    -<span class="nc" id="L129">        lockForRegularUsage();</span>
    -        try {
    -<span class="nc" id="L131">            return new WeightedSnapshot(values.values());</span>
    -        } finally {
    -<span class="nc" id="L133">            unlockForRegularUsage();</span>
    -        }
    -    }
    -
    -    private long currentTimeInSeconds() {
    -<span class="nc" id="L138">        return TimeUnit.MILLISECONDS.toSeconds(clock.getTime());</span>
    -    }
    -
    -    private double weight(long t) {
    -<span class="nc" id="L142">        return exp(alpha * t);</span>
    -    }
    -
    -    /* &quot;A common feature of the above techniques—indeed, the key technique that
    -     * allows us to track the decayed weights efficiently—is that they maintain
    -     * counts and other quantities based on g(ti − L), and only scale by g(t − L)
    -     * at query time. But while g(ti −L)/g(t−L) is guaranteed to lie between zero
    -     * and one, the intermediate values of g(ti − L) could become very large. For
    -     * polynomial functions, these values should not grow too large, and should be
    -     * effectively represented in practice by floating point values without loss of
    -     * precision. For exponential functions, these values could grow quite large as
    -     * new values of (ti − L) become large, and potentially exceed the capacity of
    -     * common floating point types. However, since the values stored by the
    -     * algorithms are linear combinations of g values (scaled sums), they can be
    -     * rescaled relative to a new landmark. That is, by the analysis of exponential
    -     * decay in Section III-A, the choice of L does not affect the final result. We
    -     * can therefore multiply each value based on L by a factor of exp(−α(L′ − L)),
    -     * and obtain the correct value as if we had instead computed relative to a new
    -     * landmark L′ (and then use this new L′ at query time). This can be done with
    -     * a linear pass over whatever data structure is being used.&quot;
    -     */
    -    private void rescale(long now, long lastTick) {
    -<span class="nc" id="L164">        lockForRescale();</span>
    -        try {
    -<span class="nc bnc" id="L166" title="All 2 branches missed.">            if (lastScaleTick.compareAndSet(lastTick, now)) {</span>
    -<span class="nc" id="L167">                final long oldStartTime = startTime;</span>
    -<span class="nc" id="L168">                this.startTime = currentTimeInSeconds();</span>
    -<span class="nc" id="L169">                final double scalingFactor = exp(-alpha * (startTime - oldStartTime));</span>
    -<span class="nc bnc" id="L170" title="All 2 branches missed.">                if (Double.compare(scalingFactor, 0) == 0) {</span>
    -<span class="nc" id="L171">                    values.clear();</span>
    -                } else {
    -<span class="nc" id="L173">                    final ArrayList&lt;Double&gt; keys = new ArrayList&lt;&gt;(values.keySet());</span>
    -<span class="nc bnc" id="L174" title="All 2 branches missed.">                    for (Double key : keys) {</span>
    -<span class="nc" id="L175">                        final WeightedSample sample = values.remove(key);</span>
    -<span class="nc" id="L176">                        final WeightedSample newSample = new WeightedSample(sample.value, sample.weight * scalingFactor);</span>
    -<span class="nc bnc" id="L177" title="All 2 branches missed.">                        if (Double.compare(newSample.weight, 0) == 0) {</span>
    -<span class="nc" id="L178">                            continue;</span>
    -                        }
    -<span class="nc" id="L180">                        values.put(key * scalingFactor, newSample);</span>
    -<span class="nc" id="L181">                    }</span>
    -                }
    -
    -                // make sure the counter is in sync with the number of stored samples.
    -<span class="nc" id="L185">                count.set(values.size());</span>
    -            }
    -        } finally {
    -<span class="nc" id="L188">            unlockForRescale();</span>
    -        }
    -<span class="nc" id="L190">    }</span>
    -
    -    private void unlockForRescale() {
    -<span class="nc" id="L193">        lock.writeLock().unlock();</span>
    -<span class="nc" id="L194">    }</span>
    -
    -    private void lockForRescale() {
    -<span class="nc" id="L197">        lock.writeLock().lock();</span>
    -<span class="nc" id="L198">    }</span>
    -
    -    private void lockForRegularUsage() {
    -<span class="nc" id="L201">        lock.readLock().lock();</span>
    -<span class="nc" id="L202">    }</span>
    -
    -    private void unlockForRegularUsage() {
    -<span class="nc" id="L205">        lock.readLock().unlock();</span>
    -<span class="nc" id="L206">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory$1.html
    deleted file mode 100644
    index 831c05804f..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory$1.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ExponentiallyDecayingReservoirTest.ReservoirFactory.new ExponentiallyDecayingReservoirTest.ReservoirFactory() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ExponentiallyDecayingReservoirTest.ReservoirFactory.new ExponentiallyDecayingReservoirTest.ReservoirFactory() {...}</span></div><h1>ExponentiallyDecayingReservoirTest.ReservoirFactory.new ExponentiallyDecayingReservoirTest.ReservoirFactory() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">13 of 13</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="ExponentiallyDecayingReservoirTest.java.html#L24" class="el_method">create(int, double, Clock)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="7" alt="7"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="ExponentiallyDecayingReservoirTest.java.html#L21" class="el_method">{...}</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="102" height="10" title="6" alt="6"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory$2.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory$2.html
    deleted file mode 100644
    index 5ab371ab2f..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory$2.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ExponentiallyDecayingReservoirTest.ReservoirFactory.new ExponentiallyDecayingReservoirTest.ReservoirFactory() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ExponentiallyDecayingReservoirTest.ReservoirFactory.new ExponentiallyDecayingReservoirTest.ReservoirFactory() {...}</span></div><h1>ExponentiallyDecayingReservoirTest.ReservoirFactory.new ExponentiallyDecayingReservoirTest.ReservoirFactory() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">15 of 15</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="ExponentiallyDecayingReservoirTest.java.html#L31" class="el_method">create(int, double, Clock)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">5</td><td class="ctr2" id="i0">5</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="ExponentiallyDecayingReservoirTest.java.html#L28" class="el_method">{...}</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="6" alt="6"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory.html
    deleted file mode 100644
    index 4385bc9a61..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest$ReservoirFactory.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ExponentiallyDecayingReservoirTest.ReservoirFactory</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ExponentiallyDecayingReservoirTest.ReservoirFactory</span></div><h1>ExponentiallyDecayingReservoirTest.ReservoirFactory</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">21 of 21</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="ExponentiallyDecayingReservoirTest.java.html#L20" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="15" alt="15"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="ExponentiallyDecayingReservoirTest.java.html#L42" class="el_method">create(int, double)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="6" alt="6"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest.html
    deleted file mode 100644
    index 5e7b023a94..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ExponentiallyDecayingReservoirTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ExponentiallyDecayingReservoirTest</span></div><h1>ExponentiallyDecayingReservoirTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">763 of 763</td><td class="ctr2">0%</td><td class="bar">40 of 40</td><td class="ctr2">0%</td><td class="ctr1">38</td><td class="ctr2">38</td><td class="ctr1">185</td><td class="ctr2">185</td><td class="ctr1">18</td><td class="ctr2">18</td></tr></tfoot><tbody><tr><td id="a11"><a href="ExponentiallyDecayingReservoirTest.java.html#L215" class="el_method">multipleUpdatesAfterlongPeriodsOfInactivityShouldNotCorruptSamplingState()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="109" alt="109"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="8" alt="8"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">5</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h0">27</td><td class="ctr2" id="i0">27</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a10"><a href="ExponentiallyDecayingReservoirTest.java.html#L116" class="el_method">longPeriodsOfInactivityShouldNotCorruptSamplingState()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="91" height="10" title="83" alt="83"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="4" alt="4"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f1">3</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">20</td><td class="ctr2" id="i1">20</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a9"><a href="ExponentiallyDecayingReservoirTest.java.html#L150" class="el_method">longPeriodsOfInactivity_fetchShouldResample()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="75" height="10" title="69" alt="69"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d6"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f6">2</td><td class="ctr2" id="g6">2</td><td class="ctr1" id="h2">15</td><td class="ctr2" id="i2">15</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a17"><a href="ExponentiallyDecayingReservoirTest.java.html#L388" class="el_method">testShortPeriodShouldNotRescale(long)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="62" height="10" title="57" alt="57"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h6">12</td><td class="ctr2" id="i6">12</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a16"><a href="ExponentiallyDecayingReservoirTest.java.html#L301" class="el_method">spotLift()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="61" height="10" title="56" alt="56"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="4" alt="4"/></td><td class="ctr2" id="e3">0%</td><td class="ctr1" id="f2">3</td><td class="ctr2" id="g2">3</td><td class="ctr1" id="h4">13</td><td class="ctr2" id="i4">13</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a15"><a href="ExponentiallyDecayingReservoirTest.java.html#L327" class="el_method">spotFall()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="61" height="10" title="56" alt="56"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="4" alt="4"/></td><td class="ctr2" id="e4">0%</td><td class="ctr1" id="f3">3</td><td class="ctr2" id="g3">3</td><td class="ctr1" id="h5">13</td><td class="ctr2" id="i5">13</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a12"><a href="ExponentiallyDecayingReservoirTest.java.html#L353" class="el_method">quantiliesShouldBeBasedOnWeights()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="61" height="10" title="56" alt="56"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="4" alt="4"/></td><td class="ctr2" id="e5">0%</td><td class="ctr1" id="f4">3</td><td class="ctr2" id="g4">3</td><td class="ctr1" id="h3">14</td><td class="ctr2" id="i3">14</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a13"><a href="ExponentiallyDecayingReservoirTest.java.html#L189" class="el_method">removeZeroWeightsInSamplesToPreventNaNInMeanValues()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="51" height="10" title="47" alt="47"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="e6">0%</td><td class="ctr1" id="f7">2</td><td class="ctr2" id="g7">2</td><td class="ctr1" id="h7">10</td><td class="ctr2" id="i7">10</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a1"><a href="ExponentiallyDecayingReservoirTest.java.html#L61" class="el_method">aReservoirOf100OutOf1000Elements()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="37" alt="37"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="e7">0%</td><td class="ctr1" id="f8">2</td><td class="ctr2" id="g8">2</td><td class="ctr1" id="h8">10</td><td class="ctr2" id="i8">10</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a2"><a href="ExponentiallyDecayingReservoirTest.java.html#L79" class="el_method">aReservoirOf100OutOf10Elements()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="37" alt="37"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="e8">0%</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h9">10</td><td class="ctr2" id="i9">10</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a0"><a href="ExponentiallyDecayingReservoirTest.java.html#L97" class="el_method">aHeavilyBiasedReservoirOf100OutOf1000Elements()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="37" alt="37"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="e9">0%</td><td class="ctr1" id="f10">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h10">10</td><td class="ctr2" id="i10">10</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a5"><a href="ExponentiallyDecayingReservoirTest.java.html#L177" class="el_method">emptyReservoirSnapshot_shouldReturnZeroForAllValues()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="37" alt="37"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h12">7</td><td class="ctr2" id="i12">7</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a3"><a href="ExponentiallyDecayingReservoirTest.java.html#L410" class="el_method">assertAllValuesBetween(Reservoir, double, double)</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="27" alt="27"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d11"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="e10">0%</td><td class="ctr1" id="f11">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h13">5</td><td class="ctr2" id="i13">5</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a7"><a href="ExponentiallyDecayingReservoirTest.java.html#L228" class="el_method">lambda$multipleUpdatesAfterlongPeriodsOfInactivityShouldNotCorruptSamplingState$1(AtomicBoolean, AtomicInteger, Reservoir, AtomicInteger)</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="23" alt="23"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="4" alt="4"/></td><td class="ctr2" id="e11">0%</td><td class="ctr1" id="f5">3</td><td class="ctr2" id="g5">3</td><td class="ctr1" id="h11">10</td><td class="ctr2" id="i11">10</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a4"><a href="ExponentiallyDecayingReservoirTest.java.html#L382" class="el_method">clockWrapShouldNotRescale()</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="11" alt="11"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h14">3</td><td class="ctr2" id="i14">3</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a14"><a href="ExponentiallyDecayingReservoirTest.java.html#L48" class="el_method">reservoirs()</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="8" alt="8"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h15">3</td><td class="ctr2" id="i15">3</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a8"><a href="ExponentiallyDecayingReservoirTest.java.html#L49" class="el_method">lambda$reservoirs$0(ExponentiallyDecayingReservoirTest.ReservoirFactory)</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="7" alt="7"/></td><td class="ctr2" id="c16">0%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h17">1</td><td class="ctr2" id="i17">1</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a6"><a href="ExponentiallyDecayingReservoirTest.java.html#L55" class="el_method">ExponentiallyDecayingReservoirTest(ExponentiallyDecayingReservoirTest.ReservoirFactory)</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="c17">0%</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">1</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h16">3</td><td class="ctr2" id="i16">3</td><td class="ctr1" id="j17">1</td><td class="ctr2" id="k17">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest.java.html
    deleted file mode 100644
    index 9907a37a0f..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ExponentiallyDecayingReservoirTest.java.html
    +++ /dev/null
    @@ -1,418 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ExponentiallyDecayingReservoirTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">ExponentiallyDecayingReservoirTest.java</span></div><h1>ExponentiallyDecayingReservoirTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import com.codahale.metrics.Timer.Context;
    -import org.junit.Test;
    -import org.junit.runner.RunWith;
    -import org.junit.runners.Parameterized;
    -
    -import java.util.Arrays;
    -import java.util.Collection;
    -import java.util.concurrent.TimeUnit;
    -import java.util.concurrent.atomic.AtomicBoolean;
    -import java.util.concurrent.atomic.AtomicInteger;
    -import java.util.stream.Collectors;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -
    -@RunWith(Parameterized.class)
    -public class ExponentiallyDecayingReservoirTest {
    -
    -<span class="nc" id="L20">    public enum ReservoirFactory {</span>
    -<span class="nc" id="L21">        EXPONENTIALLY_DECAYING() {</span>
    -            @Override
    -            Reservoir create(int size, double alpha, Clock clock) {
    -<span class="nc" id="L24">                return new ExponentiallyDecayingReservoir(size, alpha, clock);</span>
    -            }
    -        },
    -
    -<span class="nc" id="L28">        LOCK_FREE_EXPONENTIALLY_DECAYING() {</span>
    -            @Override
    -            Reservoir create(int size, double alpha, Clock clock) {
    -<span class="nc" id="L31">                return LockFreeExponentiallyDecayingReservoir.builder()</span>
    -<span class="nc" id="L32">                        .size(size)</span>
    -<span class="nc" id="L33">                        .alpha(alpha)</span>
    -<span class="nc" id="L34">                        .clock(clock)</span>
    -<span class="nc" id="L35">                        .build();</span>
    -            }
    -        };
    -
    -        abstract Reservoir create(int size, double alpha, Clock clock);
    -
    -        Reservoir create(int size, double alpha) {
    -<span class="nc" id="L42">            return create(size, alpha, Clock.defaultClock());</span>
    -        }
    -    }
    -
    -    @Parameterized.Parameters(name = &quot;{index}: {0}&quot;)
    -    public static Collection&lt;Object[]&gt; reservoirs() {
    -<span class="nc" id="L48">        return Arrays.stream(ReservoirFactory.values())</span>
    -<span class="nc" id="L49">                .map(value -&gt; new Object[] {value})</span>
    -<span class="nc" id="L50">                .collect(Collectors.toList());</span>
    -    }
    -
    -    private final ReservoirFactory reservoirFactory;
    -
    -<span class="nc" id="L55">    public ExponentiallyDecayingReservoirTest(ReservoirFactory reservoirFactory) {</span>
    -<span class="nc" id="L56">        this.reservoirFactory = reservoirFactory;</span>
    -<span class="nc" id="L57">    }</span>
    -
    -    @Test
    -    public void aReservoirOf100OutOf1000Elements() {
    -<span class="nc" id="L61">        final Reservoir reservoir = reservoirFactory.create(100, 0.99);</span>
    -<span class="nc bnc" id="L62" title="All 2 branches missed.">        for (int i = 0; i &lt; 1000; i++) {</span>
    -<span class="nc" id="L63">            reservoir.update(i);</span>
    -        }
    -
    -<span class="nc" id="L66">        assertThat(reservoir.size())</span>
    -<span class="nc" id="L67">                .isEqualTo(100);</span>
    -
    -<span class="nc" id="L69">        final Snapshot snapshot = reservoir.getSnapshot();</span>
    -
    -<span class="nc" id="L71">        assertThat(snapshot.size())</span>
    -<span class="nc" id="L72">                .isEqualTo(100);</span>
    -
    -<span class="nc" id="L74">        assertAllValuesBetween(reservoir, 0, 1000);</span>
    -<span class="nc" id="L75">    }</span>
    -
    -    @Test
    -    public void aReservoirOf100OutOf10Elements() {
    -<span class="nc" id="L79">        final Reservoir reservoir = reservoirFactory.create(100, 0.99);</span>
    -<span class="nc bnc" id="L80" title="All 2 branches missed.">        for (int i = 0; i &lt; 10; i++) {</span>
    -<span class="nc" id="L81">            reservoir.update(i);</span>
    -        }
    -
    -<span class="nc" id="L84">        final Snapshot snapshot = reservoir.getSnapshot();</span>
    -
    -<span class="nc" id="L86">        assertThat(snapshot.size())</span>
    -<span class="nc" id="L87">                .isEqualTo(10);</span>
    -
    -<span class="nc" id="L89">        assertThat(snapshot.size())</span>
    -<span class="nc" id="L90">                .isEqualTo(10);</span>
    -
    -<span class="nc" id="L92">        assertAllValuesBetween(reservoir, 0, 10);</span>
    -<span class="nc" id="L93">    }</span>
    -
    -    @Test
    -    public void aHeavilyBiasedReservoirOf100OutOf1000Elements() {
    -<span class="nc" id="L97">        final Reservoir reservoir = reservoirFactory.create(1000, 0.01);</span>
    -<span class="nc bnc" id="L98" title="All 2 branches missed.">        for (int i = 0; i &lt; 100; i++) {</span>
    -<span class="nc" id="L99">            reservoir.update(i);</span>
    -        }
    -
    -
    -<span class="nc" id="L103">        assertThat(reservoir.size())</span>
    -<span class="nc" id="L104">                .isEqualTo(100);</span>
    -
    -<span class="nc" id="L106">        final Snapshot snapshot = reservoir.getSnapshot();</span>
    -
    -<span class="nc" id="L108">        assertThat(snapshot.size())</span>
    -<span class="nc" id="L109">                .isEqualTo(100);</span>
    -
    -<span class="nc" id="L111">        assertAllValuesBetween(reservoir, 0, 100);</span>
    -<span class="nc" id="L112">    }</span>
    -
    -    @Test
    -    public void longPeriodsOfInactivityShouldNotCorruptSamplingState() {
    -<span class="nc" id="L116">        final ManualClock clock = new ManualClock();</span>
    -<span class="nc" id="L117">        final Reservoir reservoir = reservoirFactory.create(10, 0.15, clock);</span>
    -
    -        // add 1000 values at a rate of 10 values/second
    -<span class="nc bnc" id="L120" title="All 2 branches missed.">        for (int i = 0; i &lt; 1000; i++) {</span>
    -<span class="nc" id="L121">            reservoir.update(1000 + i);</span>
    -<span class="nc" id="L122">            clock.addMillis(100);</span>
    -        }
    -<span class="nc" id="L124">        assertThat(reservoir.getSnapshot().size())</span>
    -<span class="nc" id="L125">                .isEqualTo(10);</span>
    -<span class="nc" id="L126">        assertAllValuesBetween(reservoir, 1000, 2000);</span>
    -
    -        // wait for 15 hours and add another value.
    -        // this should trigger a rescale. Note that the number of samples will be reduced to 1
    -        // because scaling factor equal to zero will remove all existing entries after rescale.
    -<span class="nc" id="L131">        clock.addHours(15);</span>
    -<span class="nc" id="L132">        reservoir.update(2000);</span>
    -<span class="nc" id="L133">        assertThat(reservoir.getSnapshot().size())</span>
    -<span class="nc" id="L134">                .isEqualTo(1);</span>
    -<span class="nc" id="L135">        assertAllValuesBetween(reservoir, 1000, 2001);</span>
    -
    -
    -        // add 1000 values at a rate of 10 values/second
    -<span class="nc bnc" id="L139" title="All 2 branches missed.">        for (int i = 0; i &lt; 1000; i++) {</span>
    -<span class="nc" id="L140">            reservoir.update(3000 + i);</span>
    -<span class="nc" id="L141">            clock.addMillis(100);</span>
    -        }
    -<span class="nc" id="L143">        assertThat(reservoir.getSnapshot().size())</span>
    -<span class="nc" id="L144">                .isEqualTo(10);</span>
    -<span class="nc" id="L145">        assertAllValuesBetween(reservoir, 3000, 4000);</span>
    -<span class="nc" id="L146">    }</span>
    -
    -    @Test
    -    public void longPeriodsOfInactivity_fetchShouldResample() {
    -<span class="nc" id="L150">        final ManualClock clock = new ManualClock();</span>
    -<span class="nc" id="L151">        final Reservoir reservoir = reservoirFactory.create(10,</span>
    -                0.015,
    -                clock);
    -
    -        // add 1000 values at a rate of 10 values/second
    -<span class="nc bnc" id="L156" title="All 2 branches missed.">        for (int i = 0; i &lt; 1000; i++) {</span>
    -<span class="nc" id="L157">            reservoir.update(1000 + i);</span>
    -<span class="nc" id="L158">            clock.addMillis(100);</span>
    -        }
    -<span class="nc" id="L160">        assertThat(reservoir.getSnapshot().size())</span>
    -<span class="nc" id="L161">                .isEqualTo(10);</span>
    -<span class="nc" id="L162">        assertAllValuesBetween(reservoir, 1000, 2000);</span>
    -
    -        // wait for 20 hours and take snapshot.
    -        // this should trigger a rescale. Note that the number of samples will be reduced to 0
    -        // because scaling factor equal to zero will remove all existing entries after rescale.
    -<span class="nc" id="L167">        clock.addHours(20);</span>
    -<span class="nc" id="L168">        Snapshot snapshot = reservoir.getSnapshot();</span>
    -<span class="nc" id="L169">        assertThat(snapshot.getMax()).isEqualTo(0);</span>
    -<span class="nc" id="L170">        assertThat(snapshot.getMean()).isEqualTo(0);</span>
    -<span class="nc" id="L171">        assertThat(snapshot.getMedian()).isEqualTo(0);</span>
    -<span class="nc" id="L172">        assertThat(snapshot.size()).isEqualTo(0);</span>
    -<span class="nc" id="L173">    }</span>
    -
    -    @Test
    -    public void emptyReservoirSnapshot_shouldReturnZeroForAllValues() {
    -<span class="nc" id="L177">        final Reservoir reservoir = reservoirFactory.create(100, 0.015,</span>
    -                new ManualClock());
    -
    -<span class="nc" id="L180">        Snapshot snapshot = reservoir.getSnapshot();</span>
    -<span class="nc" id="L181">        assertThat(snapshot.getMax()).isEqualTo(0);</span>
    -<span class="nc" id="L182">        assertThat(snapshot.getMean()).isEqualTo(0);</span>
    -<span class="nc" id="L183">        assertThat(snapshot.getMedian()).isEqualTo(0);</span>
    -<span class="nc" id="L184">        assertThat(snapshot.size()).isEqualTo(0);</span>
    -<span class="nc" id="L185">    }</span>
    -
    -    @Test
    -    public void removeZeroWeightsInSamplesToPreventNaNInMeanValues() {
    -<span class="nc" id="L189">        final ManualClock clock = new ManualClock();</span>
    -<span class="nc" id="L190">        final Reservoir reservoir = reservoirFactory.create(1028, 0.015, clock);</span>
    -<span class="nc" id="L191">        Timer timer = new Timer(reservoir, clock);</span>
    -
    -<span class="nc" id="L193">        Context context = timer.time();</span>
    -<span class="nc" id="L194">        clock.addMillis(100);</span>
    -<span class="nc" id="L195">        context.stop();</span>
    -
    -<span class="nc bnc" id="L197" title="All 2 branches missed.">        for (int i = 1; i &lt; 48; i++) {</span>
    -<span class="nc" id="L198">            clock.addHours(1);</span>
    -<span class="nc" id="L199">            assertThat(reservoir.getSnapshot().getMean()).isBetween(0.0, Double.MAX_VALUE);</span>
    -        }
    -<span class="nc" id="L201">    }</span>
    -
    -    @Test
    -    public void multipleUpdatesAfterlongPeriodsOfInactivityShouldNotCorruptSamplingState() throws Exception {
    -        // This test illustrates the potential race condition in rescale that
    -        // can lead to a corrupt state.  Note that while this test uses updates
    -        // exclusively to trigger the race condition, two concurrent updates
    -        // may be made much more likely to trigger this behavior if executed
    -        // while another thread is constructing a snapshot of the reservoir;
    -        // that thread then holds the read lock when the two competing updates
    -        // are executed and the race condition's window is substantially
    -        // expanded.
    -
    -        // Run the test several times.
    -<span class="nc bnc" id="L215" title="All 2 branches missed.">        for (int attempt = 0; attempt &lt; 10; attempt++) {</span>
    -<span class="nc" id="L216">            final ManualClock clock = new ManualClock();</span>
    -<span class="nc" id="L217">            final Reservoir reservoir = reservoirFactory.create(10,</span>
    -                    0.015,
    -                    clock);
    -
    -            // Various atomics used to communicate between this thread and the
    -            // thread created below.
    -<span class="nc" id="L223">            final AtomicBoolean running = new AtomicBoolean(true);</span>
    -<span class="nc" id="L224">            final AtomicInteger threadUpdates = new AtomicInteger(0);</span>
    -<span class="nc" id="L225">            final AtomicInteger testUpdates = new AtomicInteger(0);</span>
    -
    -<span class="nc" id="L227">            final Thread thread = new Thread(() -&gt; {</span>
    -<span class="nc" id="L228">                int previous = 0;</span>
    -<span class="nc bnc" id="L229" title="All 2 branches missed.">                while (running.get()) {</span>
    -                    // Wait for the test thread to update it's counter
    -                    // before updaing the reservoir.
    -                    while (true) {
    -<span class="nc" id="L233">                        int next = testUpdates.get();</span>
    -<span class="nc bnc" id="L234" title="All 2 branches missed.">                        if (previous &lt; next) {</span>
    -<span class="nc" id="L235">                            previous = next;</span>
    -<span class="nc" id="L236">                            break;</span>
    -                        }
    -<span class="nc" id="L238">                    }</span>
    -
    -                    // Update the reservoir.  This needs to occur at the
    -                    // same time as the test thread's update.
    -<span class="nc" id="L242">                    reservoir.update(1000);</span>
    -
    -                    // Signal the main thread; allows the next update
    -                    // attempt to begin.
    -<span class="nc" id="L246">                    threadUpdates.incrementAndGet();</span>
    -                }
    -<span class="nc" id="L248">            });</span>
    -
    -<span class="nc" id="L250">            thread.start();</span>
    -
    -<span class="nc" id="L252">            int sum = 0;</span>
    -<span class="nc" id="L253">            int previous = -1;</span>
    -<span class="nc bnc" id="L254" title="All 2 branches missed.">            for (int i = 0; i &lt; 100; i++) {</span>
    -                // Wait for 15 hours before attempting the next concurrent
    -                // update.  The delay here needs to be sufficiently long to
    -                // overflow if an update attempt is allowed to add a value to
    -                // the reservoir without rescaling.  Note that:
    -                // e(alpha*(15*60*60)) =~ 10^351 &gt;&gt; Double.MAX_VALUE =~ 1.8*10^308.
    -<span class="nc" id="L260">                clock.addHours(15);</span>
    -
    -                // Signal the other thread; asynchronously updates the reservoir.
    -<span class="nc" id="L263">                testUpdates.incrementAndGet();</span>
    -
    -                // Delay a variable length of time.  Without a delay here this
    -                // thread is heavily favored and the race condition is almost
    -                // never observed.
    -<span class="nc bnc" id="L268" title="All 2 branches missed.">                for (int j = 0; j &lt; i; j++)</span>
    -<span class="nc" id="L269">                    sum += j;</span>
    -
    -                // Competing reservoir update.
    -<span class="nc" id="L272">                reservoir.update(1000);</span>
    -
    -                // Wait for the other thread to finish it's update.
    -                while (true) {
    -<span class="nc" id="L276">                    int next = threadUpdates.get();</span>
    -<span class="nc bnc" id="L277" title="All 2 branches missed.">                    if (previous &lt; next) {</span>
    -<span class="nc" id="L278">                        previous = next;</span>
    -<span class="nc" id="L279">                        break;</span>
    -                    }
    -<span class="nc" id="L281">                }</span>
    -            }
    -
    -            // Terminate the thread.
    -<span class="nc" id="L285">            running.set(false);</span>
    -<span class="nc" id="L286">            testUpdates.incrementAndGet();</span>
    -<span class="nc" id="L287">            thread.join();</span>
    -
    -            // Test failures will result in normWeights that are not finite;
    -            // checking the mean value here is sufficient.
    -<span class="nc" id="L291">            assertThat(reservoir.getSnapshot().getMean()).isBetween(0.0, Double.MAX_VALUE);</span>
    -
    -            // Check the value of sum; should prevent the JVM from optimizing
    -            // out the delay loop entirely.
    -<span class="nc" id="L295">            assertThat(sum).isEqualTo(161700);</span>
    -        }
    -<span class="nc" id="L297">    }</span>
    -
    -    @Test
    -    public void spotLift() {
    -<span class="nc" id="L301">        final ManualClock clock = new ManualClock();</span>
    -<span class="nc" id="L302">        final Reservoir reservoir = reservoirFactory.create(1000,</span>
    -                0.015,
    -                clock);
    -
    -<span class="nc" id="L306">        final int valuesRatePerMinute = 10;</span>
    -<span class="nc" id="L307">        final int valuesIntervalMillis = (int) (TimeUnit.MINUTES.toMillis(1) / valuesRatePerMinute);</span>
    -        // mode 1: steady regime for 120 minutes
    -<span class="nc bnc" id="L309" title="All 2 branches missed.">        for (int i = 0; i &lt; 120 * valuesRatePerMinute; i++) {</span>
    -<span class="nc" id="L310">            reservoir.update(177);</span>
    -<span class="nc" id="L311">            clock.addMillis(valuesIntervalMillis);</span>
    -        }
    -
    -        // switching to mode 2: 10 minutes more with the same rate, but larger value
    -<span class="nc bnc" id="L315" title="All 2 branches missed.">        for (int i = 0; i &lt; 10 * valuesRatePerMinute; i++) {</span>
    -<span class="nc" id="L316">            reservoir.update(9999);</span>
    -<span class="nc" id="L317">            clock.addMillis(valuesIntervalMillis);</span>
    -        }
    -
    -        // expect that quantiles should be more about mode 2 after 10 minutes
    -<span class="nc" id="L321">        assertThat(reservoir.getSnapshot().getMedian())</span>
    -<span class="nc" id="L322">                .isEqualTo(9999);</span>
    -<span class="nc" id="L323">    }</span>
    -
    -    @Test
    -    public void spotFall() {
    -<span class="nc" id="L327">        final ManualClock clock = new ManualClock();</span>
    -<span class="nc" id="L328">        final Reservoir reservoir = reservoirFactory.create(1000,</span>
    -                0.015,
    -                clock);
    -
    -<span class="nc" id="L332">        final int valuesRatePerMinute = 10;</span>
    -<span class="nc" id="L333">        final int valuesIntervalMillis = (int) (TimeUnit.MINUTES.toMillis(1) / valuesRatePerMinute);</span>
    -        // mode 1: steady regime for 120 minutes
    -<span class="nc bnc" id="L335" title="All 2 branches missed.">        for (int i = 0; i &lt; 120 * valuesRatePerMinute; i++) {</span>
    -<span class="nc" id="L336">            reservoir.update(9998);</span>
    -<span class="nc" id="L337">            clock.addMillis(valuesIntervalMillis);</span>
    -        }
    -
    -        // switching to mode 2: 10 minutes more with the same rate, but smaller value
    -<span class="nc bnc" id="L341" title="All 2 branches missed.">        for (int i = 0; i &lt; 10 * valuesRatePerMinute; i++) {</span>
    -<span class="nc" id="L342">            reservoir.update(178);</span>
    -<span class="nc" id="L343">            clock.addMillis(valuesIntervalMillis);</span>
    -        }
    -
    -        // expect that quantiles should be more about mode 2 after 10 minutes
    -<span class="nc" id="L347">        assertThat(reservoir.getSnapshot().get95thPercentile())</span>
    -<span class="nc" id="L348">                .isEqualTo(178);</span>
    -<span class="nc" id="L349">    }</span>
    -
    -    @Test
    -    public void quantiliesShouldBeBasedOnWeights() {
    -<span class="nc" id="L353">        final ManualClock clock = new ManualClock();</span>
    -<span class="nc" id="L354">        final Reservoir reservoir = reservoirFactory.create(1000,</span>
    -                0.015,
    -                clock);
    -<span class="nc bnc" id="L357" title="All 2 branches missed.">        for (int i = 0; i &lt; 40; i++) {</span>
    -<span class="nc" id="L358">            reservoir.update(177);</span>
    -        }
    -
    -<span class="nc" id="L361">        clock.addSeconds(120);</span>
    -
    -<span class="nc bnc" id="L363" title="All 2 branches missed.">        for (int i = 0; i &lt; 10; i++) {</span>
    -<span class="nc" id="L364">            reservoir.update(9999);</span>
    -        }
    -
    -<span class="nc" id="L367">        assertThat(reservoir.getSnapshot().size())</span>
    -<span class="nc" id="L368">                .isEqualTo(50);</span>
    -
    -        // the first added 40 items (177) have weights 1 
    -        // the next added 10 items (9999) have weights ~6 
    -        // so, it's 40 vs 60 distribution, not 40 vs 10
    -<span class="nc" id="L373">        assertThat(reservoir.getSnapshot().getMedian())</span>
    -<span class="nc" id="L374">                .isEqualTo(9999);</span>
    -<span class="nc" id="L375">        assertThat(reservoir.getSnapshot().get75thPercentile())</span>
    -<span class="nc" id="L376">                .isEqualTo(9999);</span>
    -<span class="nc" id="L377">    }</span>
    -
    -    @Test
    -    public void clockWrapShouldNotRescale() {
    -        // First verify the test works as expected given low values
    -<span class="nc" id="L382">        testShortPeriodShouldNotRescale(0);</span>
    -        // Now revalidate using an edge case nanoTime value just prior to wrapping
    -<span class="nc" id="L384">        testShortPeriodShouldNotRescale(Long.MAX_VALUE - TimeUnit.MINUTES.toNanos(30));</span>
    -<span class="nc" id="L385">    }</span>
    -
    -    private void testShortPeriodShouldNotRescale(long startTimeNanos) {
    -<span class="nc" id="L388">        final ManualClock clock = new ManualClock(startTimeNanos);</span>
    -<span class="nc" id="L389">        final Reservoir reservoir = reservoirFactory.create(10, 1, clock);</span>
    -
    -<span class="nc" id="L391">        reservoir.update(1000);</span>
    -<span class="nc" id="L392">        assertThat(reservoir.getSnapshot().size()).isEqualTo(1);</span>
    -
    -<span class="nc" id="L394">        assertAllValuesBetween(reservoir, 1000, 1001);</span>
    -
    -        // wait for 10 millis and take snapshot.
    -        // this should not trigger a rescale. Note that the number of samples will be reduced to 0
    -        // because scaling factor equal to zero will remove all existing entries after rescale.
    -<span class="nc" id="L399">        clock.addSeconds(20 * 60);</span>
    -<span class="nc" id="L400">        Snapshot snapshot = reservoir.getSnapshot();</span>
    -<span class="nc" id="L401">        assertThat(snapshot.getMax()).isEqualTo(1000);</span>
    -<span class="nc" id="L402">        assertThat(snapshot.getMean()).isEqualTo(1000);</span>
    -<span class="nc" id="L403">        assertThat(snapshot.getMedian()).isEqualTo(1000);</span>
    -<span class="nc" id="L404">        assertThat(snapshot.size()).isEqualTo(1);</span>
    -<span class="nc" id="L405">    }</span>
    -
    -    private static void assertAllValuesBetween(Reservoir reservoir,
    -                                               double min,
    -                                               double max) {
    -<span class="nc bnc" id="L410" title="All 2 branches missed.">        for (double i : reservoir.getSnapshot().getValues()) {</span>
    -<span class="nc" id="L411">            assertThat(i)</span>
    -<span class="nc" id="L412">                    .isLessThan(max)</span>
    -<span class="nc" id="L413">                    .isGreaterThanOrEqualTo(min);</span>
    -        }
    -<span class="nc" id="L415">    }</span>
    -
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProvider.html b/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProvider.html
    deleted file mode 100644
    index 4bc7302918..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProvider.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>FixedNameCsvFileProvider</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">FixedNameCsvFileProvider</span></div><h1>FixedNameCsvFileProvider</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">26 of 26</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="FixedNameCsvFileProvider.java.html#L13" class="el_method">getFile(File, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="15" alt="15"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="FixedNameCsvFileProvider.java.html#L19" class="el_method">sanitize(String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="64" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="FixedNameCsvFileProvider.java.html#L9" class="el_method">FixedNameCsvFileProvider()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProvider.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProvider.java.html
    deleted file mode 100644
    index 9e6f78a997..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProvider.java.html
    +++ /dev/null
    @@ -1,22 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>FixedNameCsvFileProvider.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">FixedNameCsvFileProvider.java</span></div><h1>FixedNameCsvFileProvider.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.io.File;
    -
    -/**
    - * This implementation of the {@link CsvFileProvider} will always return the same name
    - * for the same metric. This means the CSV file will grow indefinitely.
    - */
    -<span class="nc" id="L9">public class FixedNameCsvFileProvider implements CsvFileProvider {</span>
    -
    -    @Override
    -    public File getFile(File directory, String metricName) {
    -<span class="nc" id="L13">        return new File(directory, sanitize(metricName) + &quot;.csv&quot;);</span>
    -    }
    -
    -    protected String sanitize(String metricName) {
    -        //Forward slash character is definitely illegal in both Windows and Linux
    -        //https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx
    -<span class="nc" id="L19">        return metricName.replaceFirst(&quot;^/&quot;, &quot;&quot;).replaceAll(&quot;/&quot;, &quot;.&quot;);</span>
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProviderTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProviderTest.html
    deleted file mode 100644
    index 93352540c9..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProviderTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>FixedNameCsvFileProviderTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">FixedNameCsvFileProviderTest</span></div><h1>FixedNameCsvFileProviderTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">62 of 62</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">14</td><td class="ctr2">14</td><td class="ctr1">4</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a2"><a href="FixedNameCsvFileProviderTest.java.html#L25" class="el_method">testGetFile()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="24" alt="24"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">5</td><td class="ctr2" id="i0">5</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="FixedNameCsvFileProviderTest.java.html#L33" class="el_method">testGetFileSanitize()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="24" alt="24"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">5</td><td class="ctr2" id="i1">5</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="FixedNameCsvFileProviderTest.java.html#L12" class="el_method">FixedNameCsvFileProviderTest()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="8" alt="8"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a1"><a href="FixedNameCsvFileProviderTest.java.html#L20" class="el_method">setUp()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="6" alt="6"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">2</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProviderTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProviderTest.java.html
    deleted file mode 100644
    index 0c64195bc0..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/FixedNameCsvFileProviderTest.java.html
    +++ /dev/null
    @@ -1,39 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>FixedNameCsvFileProviderTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">FixedNameCsvFileProviderTest.java</span></div><h1>FixedNameCsvFileProviderTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Before;
    -import org.junit.Rule;
    -import org.junit.Test;
    -import org.junit.rules.TemporaryFolder;
    -
    -import java.io.File;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -
    -<span class="nc" id="L12">public class FixedNameCsvFileProviderTest {</span>
    -<span class="nc" id="L13">    @Rule</span>
    -    public final TemporaryFolder folder = new TemporaryFolder();
    -
    -    private File dataDirectory;
    -
    -    @Before
    -    public void setUp() throws Exception {
    -<span class="nc" id="L20">        this.dataDirectory = folder.newFolder();</span>
    -<span class="nc" id="L21">    }</span>
    -
    -    @Test
    -    public void testGetFile() {
    -<span class="nc" id="L25">        FixedNameCsvFileProvider provider = new FixedNameCsvFileProvider();</span>
    -<span class="nc" id="L26">        File file = provider.getFile(dataDirectory, &quot;test&quot;);</span>
    -<span class="nc" id="L27">        assertThat(file.getParentFile()).isEqualTo(dataDirectory);</span>
    -<span class="nc" id="L28">        assertThat(file.getName()).isEqualTo(&quot;test.csv&quot;);</span>
    -<span class="nc" id="L29">    }</span>
    -
    -    @Test
    -    public void testGetFileSanitize() {
    -<span class="nc" id="L33">        FixedNameCsvFileProvider provider = new FixedNameCsvFileProvider();</span>
    -<span class="nc" id="L34">        File file = provider.getFile(dataDirectory, &quot;/myfake/uri&quot;);</span>
    -<span class="nc" id="L35">        assertThat(file.getParentFile()).isEqualTo(dataDirectory);</span>
    -<span class="nc" id="L36">        assertThat(file.getName()).isEqualTo(&quot;myfake.uri.csv&quot;);</span>
    -<span class="nc" id="L37">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Histogram.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Histogram.html
    deleted file mode 100644
    index 5d28c78749..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Histogram.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Histogram</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Histogram</span></div><h1>Histogram</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">32 of 32</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">5</td><td class="ctr2">5</td><td class="ctr1">11</td><td class="ctr2">11</td><td class="ctr1">5</td><td class="ctr2">5</td></tr></tfoot><tbody><tr><td id="a2"><a href="Histogram.java.html#L20" class="el_method">Histogram(Reservoir)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="11" alt="11"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">4</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a4"><a href="Histogram.java.html#L40" class="el_method">update(long)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="87" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a3"><a href="Histogram.java.html#L31" class="el_method">update(int)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="54" height="10" title="5" alt="5"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="Histogram.java.html#L51" class="el_method">getCount()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="4" alt="4"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a1"><a href="Histogram.java.html#L56" class="el_method">getSnapshot()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="4" alt="4"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Histogram.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Histogram.java.html
    deleted file mode 100644
    index cfbda84f23..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Histogram.java.html
    +++ /dev/null
    @@ -1,59 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Histogram.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">Histogram.java</span></div><h1>Histogram.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.util.concurrent.atomic.LongAdder;
    -
    -/**
    - * A metric which calculates the distribution of a value.
    - *
    - * @see &lt;a href=&quot;http://www.johndcook.com/standard_deviation.html&quot;&gt;Accurately computing running
    - * variance&lt;/a&gt;
    - */
    -public class Histogram implements Metric, Sampling, Counting {
    -    private final Reservoir reservoir;
    -    private final LongAdder count;
    -
    -    /**
    -     * Creates a new {@link Histogram} with the given reservoir.
    -     *
    -     * @param reservoir the reservoir to create a histogram from
    -     */
    -<span class="nc" id="L20">    public Histogram(Reservoir reservoir) {</span>
    -<span class="nc" id="L21">        this.reservoir = reservoir;</span>
    -<span class="nc" id="L22">        this.count = new LongAdder();</span>
    -<span class="nc" id="L23">    }</span>
    -
    -    /**
    -     * Adds a recorded value.
    -     *
    -     * @param value the length of the value
    -     */
    -    public void update(int value) {
    -<span class="nc" id="L31">        update((long) value);</span>
    -<span class="nc" id="L32">    }</span>
    -
    -    /**
    -     * Adds a recorded value.
    -     *
    -     * @param value the length of the value
    -     */
    -    public void update(long value) {
    -<span class="nc" id="L40">        count.increment();</span>
    -<span class="nc" id="L41">        reservoir.update(value);</span>
    -<span class="nc" id="L42">    }</span>
    -
    -    /**
    -     * Returns the number of values recorded.
    -     *
    -     * @return the number of values recorded
    -     */
    -    @Override
    -    public long getCount() {
    -<span class="nc" id="L51">        return count.sum();</span>
    -    }
    -
    -    @Override
    -    public Snapshot getSnapshot() {
    -<span class="nc" id="L56">        return reservoir.getSnapshot();</span>
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/HistogramTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/HistogramTest.html
    deleted file mode 100644
    index ad2afbfd09..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/HistogramTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>HistogramTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">HistogramTest</span></div><h1>HistogramTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">63 of 63</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">17</td><td class="ctr2">17</td><td class="ctr1">4</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a1"><a href="HistogramTest.java.html#L27" class="el_method">returnsTheSnapshotFromTheReservoir()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="19" alt="19"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h1">5</td><td class="ctr2" id="i1">5</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="HistogramTest.java.html#L16" class="el_method">updatesTheCountOnUpdates()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="113" height="10" title="18" alt="18"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">6</td><td class="ctr2" id="i0">6</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="HistogramTest.java.html#L10" class="el_method">HistogramTest()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="94" height="10" title="15" alt="15"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">3</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a3"><a href="HistogramTest.java.html#L36" class="el_method">updatesTheReservoir()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="69" height="10" title="11" alt="11"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">3</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/HistogramTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/HistogramTest.java.html
    deleted file mode 100644
    index 5690435bd4..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/HistogramTest.java.html
    +++ /dev/null
    @@ -1,41 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>HistogramTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">HistogramTest.java</span></div><h1>HistogramTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -import static org.mockito.Mockito.mock;
    -import static org.mockito.Mockito.verify;
    -import static org.mockito.Mockito.when;
    -
    -<span class="nc" id="L10">public class HistogramTest {</span>
    -<span class="nc" id="L11">    private final Reservoir reservoir = mock(Reservoir.class);</span>
    -<span class="nc" id="L12">    private final Histogram histogram = new Histogram(reservoir);</span>
    -
    -    @Test
    -    public void updatesTheCountOnUpdates() {
    -<span class="nc" id="L16">        assertThat(histogram.getCount())</span>
    -<span class="nc" id="L17">                .isZero();</span>
    -
    -<span class="nc" id="L19">        histogram.update(1);</span>
    -
    -<span class="nc" id="L21">        assertThat(histogram.getCount())</span>
    -<span class="nc" id="L22">                .isEqualTo(1);</span>
    -<span class="nc" id="L23">    }</span>
    -
    -    @Test
    -    public void returnsTheSnapshotFromTheReservoir() {
    -<span class="nc" id="L27">        final Snapshot snapshot = mock(Snapshot.class);</span>
    -<span class="nc" id="L28">        when(reservoir.getSnapshot()).thenReturn(snapshot);</span>
    -
    -<span class="nc" id="L30">        assertThat(histogram.getSnapshot())</span>
    -<span class="nc" id="L31">                .isEqualTo(snapshot);</span>
    -<span class="nc" id="L32">    }</span>
    -
    -    @Test
    -    public void updatesTheReservoir() throws Exception {
    -<span class="nc" id="L36">        histogram.update(1);</span>
    -
    -<span class="nc" id="L38">        verify(reservoir).update(1);</span>
    -<span class="nc" id="L39">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService$InstrumentedCallable.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService$InstrumentedCallable.html
    deleted file mode 100644
    index 50d2c825b7..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService$InstrumentedCallable.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedExecutorService.InstrumentedCallable</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">InstrumentedExecutorService.InstrumentedCallable</span></div><h1>InstrumentedExecutorService.InstrumentedCallable</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">41 of 41</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">10</td><td class="ctr2">10</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="InstrumentedExecutorService.java.html#L231" class="el_method">call()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="27" alt="27"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">6</td><td class="ctr2" id="i0">6</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="InstrumentedExecutorService.java.html#L224" class="el_method">InstrumentedExecutorService.InstrumentedCallable(InstrumentedExecutorService, Callable)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="62" height="10" title="14" alt="14"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService$InstrumentedRunnable.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService$InstrumentedRunnable.html
    deleted file mode 100644
    index 838903144b..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService$InstrumentedRunnable.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedExecutorService.InstrumentedRunnable</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">InstrumentedExecutorService.InstrumentedRunnable</span></div><h1>InstrumentedExecutorService.InstrumentedRunnable</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">39 of 39</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">11</td><td class="ctr2">11</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="InstrumentedExecutorService.java.html#L209" class="el_method">run()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="25" alt="25"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">7</td><td class="ctr2" id="i0">7</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="InstrumentedExecutorService.java.html#L202" class="el_method">InstrumentedExecutorService.InstrumentedRunnable(InstrumentedExecutorService, Runnable)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="67" height="10" title="14" alt="14"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService.html
    deleted file mode 100644
    index afb45f6fb3..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedExecutorService</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">InstrumentedExecutorService</span></div><h1>InstrumentedExecutorService</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">439 of 439</td><td class="ctr2">0%</td><td class="bar">6 of 6</td><td class="ctr2">0%</td><td class="ctr1">20</td><td class="ctr2">20</td><td class="ctr1">70</td><td class="ctr2">70</td><td class="ctr1">17</td><td class="ctr2">17</td></tr></tfoot><tbody><tr><td id="a4"><a href="InstrumentedExecutorService.java.html#L51" class="el_method">InstrumentedExecutorService(ExecutorService, MetricRegistry, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="258" alt="258"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">3</td><td class="ctr1" id="h0">35</td><td class="ctr2" id="i0">35</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="InstrumentedExecutorService.java.html#L166" class="el_method">instrument(Collection)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="27" alt="27"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h1">5</td><td class="ctr2" id="i1">5</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a6"><a href="InstrumentedExecutorService.java.html#L140" class="el_method">invokeAll(Collection, long, TimeUnit)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="17" alt="17"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">3</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a8"><a href="InstrumentedExecutorService.java.html#L160" class="el_method">invokeAny(Collection, long, TimeUnit)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="17" alt="17"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">3</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a5"><a href="InstrumentedExecutorService.java.html#L130" class="el_method">invokeAll(Collection)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="15" alt="15"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">3</td><td class="ctr2" id="i4">3</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a7"><a href="InstrumentedExecutorService.java.html#L150" class="el_method">invokeAny(Collection)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="15" alt="15"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">3</td><td class="ctr2" id="i5">3</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a3"><a href="InstrumentedExecutorService.java.html#L41" class="el_method">InstrumentedExecutorService(ExecutorService, MetricRegistry)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="14" alt="14"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i7">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a16"><a href="InstrumentedExecutorService.java.html#L112" class="el_method">submit(Runnable, Object)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="13" alt="13"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i8">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a1"><a href="InstrumentedExecutorService.java.html#L94" class="el_method">execute(Runnable)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="12" alt="12"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h6">3</td><td class="ctr2" id="i6">3</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a15"><a href="InstrumentedExecutorService.java.html#L103" class="el_method">submit(Runnable)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="12" alt="12"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a14"><a href="InstrumentedExecutorService.java.html#L121" class="el_method">submit(Callable)</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="12" alt="12"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a0"><a href="InstrumentedExecutorService.java.html#L195" class="el_method">awaitTermination(long, TimeUnit)</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="6" alt="6"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i12">1</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a13"><a href="InstrumentedExecutorService.java.html#L25" class="el_method">static {...}</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="5" alt="5"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h13">1</td><td class="ctr2" id="i13">1</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a11"><a href="InstrumentedExecutorService.java.html#L175" class="el_method">shutdown()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="4" alt="4"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a12"><a href="InstrumentedExecutorService.java.html#L180" class="el_method">shutdownNow()</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="4" alt="4"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h14">1</td><td class="ctr2" id="i14">1</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a9"><a href="InstrumentedExecutorService.java.html#L185" class="el_method">isShutdown()</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="4" alt="4"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h15">1</td><td class="ctr2" id="i15">1</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a10"><a href="InstrumentedExecutorService.java.html#L190" class="el_method">isTerminated()</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="4" alt="4"/></td><td class="ctr2" id="c16">0%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h16">1</td><td class="ctr2" id="i16">1</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService.java.html
    deleted file mode 100644
    index 280473b4ca..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorService.java.html
    +++ /dev/null
    @@ -1,242 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedExecutorService.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">InstrumentedExecutorService.java</span></div><h1>InstrumentedExecutorService.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.util.ArrayList;
    -import java.util.Collection;
    -import java.util.List;
    -import java.util.concurrent.BlockingQueue;
    -import java.util.concurrent.Callable;
    -import java.util.concurrent.ExecutionException;
    -import java.util.concurrent.ExecutorService;
    -import java.util.concurrent.ForkJoinPool;
    -import java.util.concurrent.Future;
    -import java.util.concurrent.ThreadPoolExecutor;
    -import java.util.concurrent.TimeUnit;
    -import java.util.concurrent.TimeoutException;
    -import java.util.concurrent.atomic.AtomicLong;
    -
    -/**
    - * An {@link ExecutorService} that monitors the number of tasks submitted, running,
    - * completed and also keeps a {@link Timer} for the task duration.
    - * &lt;p&gt;
    - * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    - * &quot;your-executor-service.submitted&quot;, &quot;your-executor-service.running&quot;, etc.
    - */
    -public class InstrumentedExecutorService implements ExecutorService {
    -<span class="nc" id="L25">    private static final AtomicLong NAME_COUNTER = new AtomicLong();</span>
    -
    -    private final ExecutorService delegate;
    -    private final Meter submitted;
    -    private final Counter running;
    -    private final Meter completed;
    -    private final Timer idle;
    -    private final Timer duration;
    -
    -    /**
    -     * Wraps an {@link ExecutorService} uses an auto-generated default name.
    -     *
    -     * @param delegate {@link ExecutorService} to wrap.
    -     * @param registry {@link MetricRegistry} that will contain the metrics.
    -     */
    -    public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry) {
    -<span class="nc" id="L41">        this(delegate, registry, &quot;instrumented-delegate-&quot; + NAME_COUNTER.incrementAndGet());</span>
    -<span class="nc" id="L42">    }</span>
    -
    -    /**
    -     * Wraps an {@link ExecutorService} with an explicit name.
    -     *
    -     * @param delegate {@link ExecutorService} to wrap.
    -     * @param registry {@link MetricRegistry} that will contain the metrics.
    -     * @param name     name for this executor service.
    -     */
    -<span class="nc" id="L51">    public InstrumentedExecutorService(ExecutorService delegate, MetricRegistry registry, String name) {</span>
    -<span class="nc" id="L52">        this.delegate = delegate;</span>
    -<span class="nc" id="L53">        this.submitted = registry.meter(MetricRegistry.name(name, &quot;submitted&quot;));</span>
    -<span class="nc" id="L54">        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</span>
    -<span class="nc" id="L55">        this.completed = registry.meter(MetricRegistry.name(name, &quot;completed&quot;));</span>
    -<span class="nc" id="L56">        this.idle = registry.timer(MetricRegistry.name(name, &quot;idle&quot;));</span>
    -<span class="nc" id="L57">        this.duration = registry.timer(MetricRegistry.name(name, &quot;duration&quot;));</span>
    -
    -<span class="nc bnc" id="L59" title="All 2 branches missed.">        if (delegate instanceof ThreadPoolExecutor) {</span>
    -<span class="nc" id="L60">            ThreadPoolExecutor executor = (ThreadPoolExecutor) delegate;</span>
    -<span class="nc" id="L61">            registry.registerGauge(MetricRegistry.name(name, &quot;pool.size&quot;),</span>
    -<span class="nc" id="L62">                    executor::getPoolSize);</span>
    -<span class="nc" id="L63">            registry.registerGauge(MetricRegistry.name(name, &quot;pool.core&quot;),</span>
    -<span class="nc" id="L64">                    executor::getCorePoolSize);</span>
    -<span class="nc" id="L65">            registry.registerGauge(MetricRegistry.name(name, &quot;pool.max&quot;),</span>
    -<span class="nc" id="L66">                    executor::getMaximumPoolSize);</span>
    -<span class="nc" id="L67">            final BlockingQueue&lt;Runnable&gt; queue = executor.getQueue();</span>
    -<span class="nc" id="L68">            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.active&quot;),</span>
    -<span class="nc" id="L69">                    executor::getActiveCount);</span>
    -<span class="nc" id="L70">            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.completed&quot;),</span>
    -<span class="nc" id="L71">                    executor::getCompletedTaskCount);</span>
    -<span class="nc" id="L72">            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.queued&quot;),</span>
    -<span class="nc" id="L73">                    queue::size);</span>
    -<span class="nc" id="L74">            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.capacity&quot;),</span>
    -<span class="nc" id="L75">                    queue::remainingCapacity);</span>
    -<span class="nc bnc" id="L76" title="All 2 branches missed.">        } else if (delegate instanceof ForkJoinPool) {</span>
    -<span class="nc" id="L77">            ForkJoinPool forkJoinPool = (ForkJoinPool) delegate;</span>
    -<span class="nc" id="L78">            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.stolen&quot;),</span>
    -<span class="nc" id="L79">                    forkJoinPool::getStealCount);</span>
    -<span class="nc" id="L80">            registry.registerGauge(MetricRegistry.name(name, &quot;tasks.queued&quot;),</span>
    -<span class="nc" id="L81">                    forkJoinPool::getQueuedTaskCount);</span>
    -<span class="nc" id="L82">            registry.registerGauge(MetricRegistry.name(name, &quot;threads.active&quot;),</span>
    -<span class="nc" id="L83">                    forkJoinPool::getActiveThreadCount);</span>
    -<span class="nc" id="L84">            registry.registerGauge(MetricRegistry.name(name, &quot;threads.running&quot;),</span>
    -<span class="nc" id="L85">                    forkJoinPool::getRunningThreadCount);</span>
    -        }
    -<span class="nc" id="L87">    }</span>
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public void execute(Runnable runnable) {
    -<span class="nc" id="L94">        submitted.mark();</span>
    -<span class="nc" id="L95">        delegate.execute(new InstrumentedRunnable(runnable));</span>
    -<span class="nc" id="L96">    }</span>
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public Future&lt;?&gt; submit(Runnable runnable) {
    -<span class="nc" id="L103">        submitted.mark();</span>
    -<span class="nc" id="L104">        return delegate.submit(new InstrumentedRunnable(runnable));</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public &lt;T&gt; Future&lt;T&gt; submit(Runnable runnable, T result) {
    -<span class="nc" id="L112">        submitted.mark();</span>
    -<span class="nc" id="L113">        return delegate.submit(new InstrumentedRunnable(runnable), result);</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public &lt;T&gt; Future&lt;T&gt; submit(Callable&lt;T&gt; task) {
    -<span class="nc" id="L121">        submitted.mark();</span>
    -<span class="nc" id="L122">        return delegate.submit(new InstrumentedCallable&lt;&gt;(task));</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException {
    -<span class="nc" id="L130">        submitted.mark(tasks.size());</span>
    -<span class="nc" id="L131">        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</span>
    -<span class="nc" id="L132">        return delegate.invokeAll(instrumented);</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException {
    -<span class="nc" id="L140">        submitted.mark(tasks.size());</span>
    -<span class="nc" id="L141">        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</span>
    -<span class="nc" id="L142">        return delegate.invokeAll(instrumented, timeout, unit);</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws ExecutionException, InterruptedException {
    -<span class="nc" id="L150">        submitted.mark(tasks.size());</span>
    -<span class="nc" id="L151">        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</span>
    -<span class="nc" id="L152">        return delegate.invokeAny(instrumented);</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws ExecutionException, InterruptedException, TimeoutException {
    -<span class="nc" id="L160">        submitted.mark(tasks.size());</span>
    -<span class="nc" id="L161">        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</span>
    -<span class="nc" id="L162">        return delegate.invokeAny(instrumented, timeout, unit);</span>
    -    }
    -
    -    private &lt;T&gt; Collection&lt;? extends Callable&lt;T&gt;&gt; instrument(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) {
    -<span class="nc" id="L166">        final List&lt;InstrumentedCallable&lt;T&gt;&gt; instrumented = new ArrayList&lt;&gt;(tasks.size());</span>
    -<span class="nc bnc" id="L167" title="All 2 branches missed.">        for (Callable&lt;T&gt; task : tasks) {</span>
    -<span class="nc" id="L168">            instrumented.add(new InstrumentedCallable&lt;&gt;(task));</span>
    -<span class="nc" id="L169">        }</span>
    -<span class="nc" id="L170">        return instrumented;</span>
    -    }
    -
    -    @Override
    -    public void shutdown() {
    -<span class="nc" id="L175">        delegate.shutdown();</span>
    -<span class="nc" id="L176">    }</span>
    -
    -    @Override
    -    public List&lt;Runnable&gt; shutdownNow() {
    -<span class="nc" id="L180">        return delegate.shutdownNow();</span>
    -    }
    -
    -    @Override
    -    public boolean isShutdown() {
    -<span class="nc" id="L185">        return delegate.isShutdown();</span>
    -    }
    -
    -    @Override
    -    public boolean isTerminated() {
    -<span class="nc" id="L190">        return delegate.isTerminated();</span>
    -    }
    -
    -    @Override
    -    public boolean awaitTermination(long l, TimeUnit timeUnit) throws InterruptedException {
    -<span class="nc" id="L195">        return delegate.awaitTermination(l, timeUnit);</span>
    -    }
    -
    -    private class InstrumentedRunnable implements Runnable {
    -        private final Runnable task;
    -        private final Timer.Context idleContext;
    -
    -<span class="nc" id="L202">        InstrumentedRunnable(Runnable task) {</span>
    -<span class="nc" id="L203">            this.task = task;</span>
    -<span class="nc" id="L204">            this.idleContext = idle.time();</span>
    -<span class="nc" id="L205">        }</span>
    -
    -        @Override
    -        public void run() {
    -<span class="nc" id="L209">            idleContext.stop();</span>
    -<span class="nc" id="L210">            running.inc();</span>
    -<span class="nc" id="L211">            try (Timer.Context durationContext = duration.time()) {</span>
    -<span class="nc" id="L212">                task.run();</span>
    -            } finally {
    -<span class="nc" id="L214">                running.dec();</span>
    -<span class="nc" id="L215">                completed.mark();</span>
    -            }
    -<span class="nc" id="L217">        }</span>
    -    }
    -
    -    private class InstrumentedCallable&lt;T&gt; implements Callable&lt;T&gt; {
    -        private final Callable&lt;T&gt; callable;
    -        private final Timer.Context idleContext;
    -
    -<span class="nc" id="L224">        InstrumentedCallable(Callable&lt;T&gt; callable) {</span>
    -<span class="nc" id="L225">            this.callable = callable;</span>
    -<span class="nc" id="L226">            this.idleContext = idle.time();</span>
    -<span class="nc" id="L227">        }</span>
    -
    -        @Override
    -        public T call() throws Exception {
    -<span class="nc" id="L231">            idleContext.stop();</span>
    -<span class="nc" id="L232">            running.inc();</span>
    -<span class="nc" id="L233">            try (Timer.Context context = duration.time()) {</span>
    -<span class="nc" id="L234">                return callable.call();</span>
    -            } finally {
    -<span class="nc" id="L236">                running.dec();</span>
    -<span class="nc" id="L237">                completed.mark();</span>
    -            }
    -        }
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorServiceTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorServiceTest.html
    deleted file mode 100644
    index 3141eebc58..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorServiceTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedExecutorServiceTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">InstrumentedExecutorServiceTest</span></div><h1>InstrumentedExecutorServiceTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">910 of 910</td><td class="ctr2">0%</td><td class="bar">2 of 2</td><td class="ctr2">0%</td><td class="ctr1">13</td><td class="ctr2">13</td><td class="ctr1">145</td><td class="ctr2">145</td><td class="ctr1">12</td><td class="ctr2">12</td></tr></tfoot><tbody><tr><td id="a8"><a href="InstrumentedExecutorServiceTest.java.html#L117" class="el_method">reportsTasksInformationForThreadPoolExecutor()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="261" alt="261"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">38</td><td class="ctr2" id="i0">38</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a6"><a href="InstrumentedExecutorServiceTest.java.html#L173" class="el_method">reportsTasksInformationForForkJoinPool()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="93" height="10" title="204" alt="204"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">31</td><td class="ctr2" id="i1">31</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a7"><a href="InstrumentedExecutorServiceTest.java.html#L56" class="el_method">reportsTasksInformationForRunnable()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="45" height="10" title="98" alt="98"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h2">16</td><td class="ctr2" id="i2">16</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a5"><a href="InstrumentedExecutorServiceTest.java.html#L86" class="el_method">reportsTasksInformationForCallable()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="45" height="10" title="98" alt="98"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h3">16</td><td class="ctr2" id="i3">16</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a2"><a href="InstrumentedExecutorServiceTest.java.html#L196" class="el_method">lambda$reportsTasksInformationForForkJoinPool$3(Gauge, Gauge, Gauge)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="57" alt="57"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i4">9</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a4"><a href="InstrumentedExecutorServiceTest.java.html#L147" class="el_method">lambda$reportsTasksInformationForThreadPoolExecutor$2(Gauge, Gauge)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="50" alt="50"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">8</td><td class="ctr2" id="i6">8</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a9"><a href="InstrumentedExecutorServiceTest.java.html#L35" class="el_method">setup()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="49" alt="49"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h5">9</td><td class="ctr2" id="i5">9</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a1"><a href="InstrumentedExecutorServiceTest.java.html#L93" class="el_method">lambda$reportsTasksInformationForCallable$1()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="37" alt="37"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a3"><a href="InstrumentedExecutorServiceTest.java.html#L63" class="el_method">lambda$reportsTasksInformationForRunnable$0()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="36" alt="36"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h8">6</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a11"><a href="InstrumentedExecutorServiceTest.java.html#L47" class="el_method">tearDown()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="13" alt="13"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h9">4</td><td class="ctr2" id="i9">4</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a10"><a href="InstrumentedExecutorServiceTest.java.html#L23" class="el_method">static {...}</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="4" alt="4"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">1</td><td class="ctr2" id="i10">1</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a0"><a href="InstrumentedExecutorServiceTest.java.html#L21" class="el_method">InstrumentedExecutorServiceTest()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="3" alt="3"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">1</td><td class="ctr2" id="i11">1</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorServiceTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorServiceTest.java.html
    deleted file mode 100644
    index 48632f7439..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedExecutorServiceTest.java.html
    +++ /dev/null
    @@ -1,219 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedExecutorServiceTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">InstrumentedExecutorServiceTest.java</span></div><h1>InstrumentedExecutorServiceTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.After;
    -import org.junit.Before;
    -import org.junit.Test;
    -import org.slf4j.Logger;
    -import org.slf4j.LoggerFactory;
    -
    -import java.time.Duration;
    -import java.util.concurrent.Callable;
    -import java.util.concurrent.ExecutorService;
    -import java.util.concurrent.Executors;
    -import java.util.concurrent.ForkJoinPool;
    -import java.util.concurrent.Future;
    -import java.util.concurrent.LinkedBlockingQueue;
    -import java.util.concurrent.ThreadPoolExecutor;
    -import java.util.concurrent.TimeUnit;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -
    -<span class="nc" id="L21">public class InstrumentedExecutorServiceTest {</span>
    -
    -<span class="nc" id="L23">    private static final Logger LOGGER = LoggerFactory.getLogger(InstrumentedExecutorServiceTest.class);</span>
    -    private ExecutorService executor;
    -    private MetricRegistry registry;
    -    private InstrumentedExecutorService instrumentedExecutorService;
    -    private Meter submitted;
    -    private Counter running;
    -    private Meter completed;
    -    private Timer duration;
    -    private Timer idle;
    -
    -    @Before
    -    public void setup() {
    -<span class="nc" id="L35">        executor = Executors.newCachedThreadPool();</span>
    -<span class="nc" id="L36">        registry = new MetricRegistry();</span>
    -<span class="nc" id="L37">        instrumentedExecutorService = new InstrumentedExecutorService(executor, registry, &quot;xs&quot;);</span>
    -<span class="nc" id="L38">        submitted = registry.meter(&quot;xs.submitted&quot;);</span>
    -<span class="nc" id="L39">        running = registry.counter(&quot;xs.running&quot;);</span>
    -<span class="nc" id="L40">        completed = registry.meter(&quot;xs.completed&quot;);</span>
    -<span class="nc" id="L41">        duration = registry.timer(&quot;xs.duration&quot;);</span>
    -<span class="nc" id="L42">        idle = registry.timer(&quot;xs.idle&quot;);</span>
    -<span class="nc" id="L43">    }</span>
    -
    -    @After
    -    public void tearDown() throws Exception {
    -<span class="nc" id="L47">        instrumentedExecutorService.shutdown();</span>
    -<span class="nc bnc" id="L48" title="All 2 branches missed.">        if (!instrumentedExecutorService.awaitTermination(2, TimeUnit.SECONDS)) {</span>
    -<span class="nc" id="L49">            LOGGER.error(&quot;InstrumentedExecutorService did not terminate.&quot;);</span>
    -        }
    -<span class="nc" id="L51">    }</span>
    -
    -    @Test
    -    public void reportsTasksInformationForRunnable() throws Exception {
    -
    -<span class="nc" id="L56">        assertThat(submitted.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L57">        assertThat(running.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L58">        assertThat(completed.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L59">        assertThat(duration.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L60">        assertThat(idle.getCount()).isEqualTo(0);</span>
    -
    -<span class="nc" id="L62">        Runnable runnable = () -&gt; {</span>
    -<span class="nc" id="L63">            assertThat(submitted.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L64">            assertThat(running.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L65">            assertThat(completed.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L66">            assertThat(duration.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L67">            assertThat(idle.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L68">        };</span>
    -
    -<span class="nc" id="L70">        Future&lt;?&gt; theFuture = instrumentedExecutorService.submit(runnable);</span>
    -
    -<span class="nc" id="L72">        theFuture.get();</span>
    -
    -<span class="nc" id="L74">        assertThat(submitted.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L75">        assertThat(running.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L76">        assertThat(completed.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L77">        assertThat(duration.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L78">        assertThat(duration.getSnapshot().size()).isEqualTo(1);</span>
    -<span class="nc" id="L79">        assertThat(idle.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L80">        assertThat(idle.getSnapshot().size()).isEqualTo(1);</span>
    -<span class="nc" id="L81">    }</span>
    -
    -    @Test
    -    public void reportsTasksInformationForCallable() throws Exception {
    -
    -<span class="nc" id="L86">        assertThat(submitted.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L87">        assertThat(running.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L88">        assertThat(completed.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L89">        assertThat(duration.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L90">        assertThat(idle.getCount()).isEqualTo(0);</span>
    -
    -<span class="nc" id="L92">        Callable&lt;Void&gt; callable = () -&gt; {</span>
    -<span class="nc" id="L93">            assertThat(submitted.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L94">            assertThat(running.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L95">            assertThat(completed.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L96">            assertThat(duration.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L97">            assertThat(idle.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L98">            return null;</span>
    -        };
    -
    -<span class="nc" id="L101">        Future&lt;?&gt; theFuture = instrumentedExecutorService.submit(callable);</span>
    -
    -<span class="nc" id="L103">        theFuture.get();</span>
    -
    -<span class="nc" id="L105">        assertThat(submitted.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L106">        assertThat(running.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L107">        assertThat(completed.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L108">        assertThat(duration.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L109">        assertThat(duration.getSnapshot().size()).isEqualTo(1);</span>
    -<span class="nc" id="L110">        assertThat(idle.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L111">        assertThat(idle.getSnapshot().size()).isEqualTo(1);</span>
    -<span class="nc" id="L112">    }</span>
    -
    -    @Test
    -    @SuppressWarnings(&quot;unchecked&quot;)
    -    public void reportsTasksInformationForThreadPoolExecutor() throws Exception {
    -<span class="nc" id="L117">        executor = new ThreadPoolExecutor(4, 16,</span>
    -                0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue&lt;&gt;(32));
    -<span class="nc" id="L119">        instrumentedExecutorService = new InstrumentedExecutorService(executor, registry, &quot;tp&quot;);</span>
    -<span class="nc" id="L120">        submitted = registry.meter(&quot;tp.submitted&quot;);</span>
    -<span class="nc" id="L121">        running = registry.counter(&quot;tp.running&quot;);</span>
    -<span class="nc" id="L122">        completed = registry.meter(&quot;tp.completed&quot;);</span>
    -<span class="nc" id="L123">        duration = registry.timer(&quot;tp.duration&quot;);</span>
    -<span class="nc" id="L124">        idle = registry.timer(&quot;tp.idle&quot;);</span>
    -<span class="nc" id="L125">        final Gauge&lt;Integer&gt; poolSize = (Gauge&lt;Integer&gt;) registry.getGauges().get(&quot;tp.pool.size&quot;);</span>
    -<span class="nc" id="L126">        final Gauge&lt;Integer&gt; poolCoreSize = (Gauge&lt;Integer&gt;) registry.getGauges().get(&quot;tp.pool.core&quot;);</span>
    -<span class="nc" id="L127">        final Gauge&lt;Integer&gt; poolMaxSize = (Gauge&lt;Integer&gt;) registry.getGauges().get(&quot;tp.pool.max&quot;);</span>
    -<span class="nc" id="L128">        final Gauge&lt;Integer&gt; tasksActive = (Gauge&lt;Integer&gt;) registry.getGauges().get(&quot;tp.tasks.active&quot;);</span>
    -<span class="nc" id="L129">        final Gauge&lt;Long&gt; tasksCompleted = (Gauge&lt;Long&gt;) registry.getGauges().get(&quot;tp.tasks.completed&quot;);</span>
    -<span class="nc" id="L130">        final Gauge&lt;Integer&gt; tasksQueued = (Gauge&lt;Integer&gt;) registry.getGauges().get(&quot;tp.tasks.queued&quot;);</span>
    -<span class="nc" id="L131">        final Gauge&lt;Integer&gt; tasksCapacityRemaining = (Gauge&lt;Integer&gt;) registry.getGauges().get(&quot;tp.tasks.capacity&quot;);</span>
    -
    -<span class="nc" id="L133">        assertThat(submitted.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L134">        assertThat(running.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L135">        assertThat(completed.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L136">        assertThat(duration.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L137">        assertThat(idle.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L138">        assertThat(poolSize.getValue()).isEqualTo(0);</span>
    -<span class="nc" id="L139">        assertThat(poolCoreSize.getValue()).isEqualTo(4);</span>
    -<span class="nc" id="L140">        assertThat(poolMaxSize.getValue()).isEqualTo(16);</span>
    -<span class="nc" id="L141">        assertThat(tasksActive.getValue()).isEqualTo(0);</span>
    -<span class="nc" id="L142">        assertThat(tasksCompleted.getValue()).isEqualTo(0L);</span>
    -<span class="nc" id="L143">        assertThat(tasksQueued.getValue()).isEqualTo(0);</span>
    -<span class="nc" id="L144">        assertThat(tasksCapacityRemaining.getValue()).isEqualTo(32);</span>
    -
    -<span class="nc" id="L146">        Runnable runnable = () -&gt; {</span>
    -<span class="nc" id="L147">            assertThat(submitted.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L148">            assertThat(running.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L149">            assertThat(completed.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L150">            assertThat(duration.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L151">            assertThat(idle.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L152">            assertThat(tasksActive.getValue()).isEqualTo(1);</span>
    -<span class="nc" id="L153">            assertThat(tasksQueued.getValue()).isEqualTo(0);</span>
    -<span class="nc" id="L154">        };</span>
    -
    -<span class="nc" id="L156">        Future&lt;?&gt; theFuture = instrumentedExecutorService.submit(runnable);</span>
    -
    -<span class="nc" id="L158">        assertThat(theFuture).succeedsWithin(Duration.ofSeconds(5L));</span>
    -
    -<span class="nc" id="L160">        assertThat(submitted.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L161">        assertThat(running.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L162">        assertThat(completed.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L163">        assertThat(duration.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L164">        assertThat(duration.getSnapshot().size()).isEqualTo(1);</span>
    -<span class="nc" id="L165">        assertThat(idle.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L166">        assertThat(idle.getSnapshot().size()).isEqualTo(1);</span>
    -<span class="nc" id="L167">        assertThat(poolSize.getValue()).isEqualTo(1);</span>
    -<span class="nc" id="L168">    }</span>
    -
    -    @Test
    -    @SuppressWarnings(&quot;unchecked&quot;)
    -    public void reportsTasksInformationForForkJoinPool() throws Exception {
    -<span class="nc" id="L173">        executor = Executors.newWorkStealingPool(4);</span>
    -<span class="nc" id="L174">        instrumentedExecutorService = new InstrumentedExecutorService(executor, registry, &quot;fjp&quot;);</span>
    -<span class="nc" id="L175">        submitted = registry.meter(&quot;fjp.submitted&quot;);</span>
    -<span class="nc" id="L176">        running = registry.counter(&quot;fjp.running&quot;);</span>
    -<span class="nc" id="L177">        completed = registry.meter(&quot;fjp.completed&quot;);</span>
    -<span class="nc" id="L178">        duration = registry.timer(&quot;fjp.duration&quot;);</span>
    -<span class="nc" id="L179">        idle = registry.timer(&quot;fjp.idle&quot;);</span>
    -<span class="nc" id="L180">        final Gauge&lt;Long&gt; tasksStolen = (Gauge&lt;Long&gt;) registry.getGauges().get(&quot;fjp.tasks.stolen&quot;);</span>
    -<span class="nc" id="L181">        final Gauge&lt;Long&gt; tasksQueued = (Gauge&lt;Long&gt;) registry.getGauges().get(&quot;fjp.tasks.queued&quot;);</span>
    -<span class="nc" id="L182">        final Gauge&lt;Integer&gt; threadsActive = (Gauge&lt;Integer&gt;) registry.getGauges().get(&quot;fjp.threads.active&quot;);</span>
    -<span class="nc" id="L183">        final Gauge&lt;Integer&gt; threadsRunning = (Gauge&lt;Integer&gt;) registry.getGauges().get(&quot;fjp.threads.running&quot;);</span>
    -
    -<span class="nc" id="L185">        assertThat(submitted.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L186">        assertThat(running.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L187">        assertThat(completed.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L188">        assertThat(duration.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L189">        assertThat(idle.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L190">        assertThat(tasksStolen.getValue()).isEqualTo(0L);</span>
    -<span class="nc" id="L191">        assertThat(tasksQueued.getValue()).isEqualTo(0L);</span>
    -<span class="nc" id="L192">        assertThat(threadsActive.getValue()).isEqualTo(0);</span>
    -<span class="nc" id="L193">        assertThat(threadsRunning.getValue()).isEqualTo(0);</span>
    -
    -<span class="nc" id="L195">        Runnable runnable = () -&gt; {</span>
    -<span class="nc" id="L196">            assertThat(submitted.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L197">            assertThat(running.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L198">            assertThat(completed.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L199">            assertThat(duration.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L200">            assertThat(idle.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L201">            assertThat(tasksQueued.getValue()).isEqualTo(0L);</span>
    -<span class="nc" id="L202">            assertThat(threadsActive.getValue()).isEqualTo(1);</span>
    -<span class="nc" id="L203">            assertThat(threadsRunning.getValue()).isEqualTo(1);</span>
    -<span class="nc" id="L204">        };</span>
    -
    -<span class="nc" id="L206">        Future&lt;?&gt; theFuture = instrumentedExecutorService.submit(runnable);</span>
    -
    -<span class="nc" id="L208">        assertThat(theFuture).succeedsWithin(Duration.ofSeconds(5L));</span>
    -
    -<span class="nc" id="L210">        assertThat(submitted.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L211">        assertThat(running.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L212">        assertThat(completed.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L213">        assertThat(duration.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L214">        assertThat(duration.getSnapshot().size()).isEqualTo(1);</span>
    -<span class="nc" id="L215">        assertThat(idle.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L216">        assertThat(idle.getSnapshot().size()).isEqualTo(1);</span>
    -<span class="nc" id="L217">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedCallable.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedCallable.html
    deleted file mode 100644
    index 698ef61be1..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedCallable.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedScheduledExecutorService.InstrumentedCallable</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">InstrumentedScheduledExecutorService.InstrumentedCallable</span></div><h1>InstrumentedScheduledExecutorService.InstrumentedCallable</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">35 of 35</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">9</td><td class="ctr2">9</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="InstrumentedScheduledExecutorService.java.html#L286" class="el_method">call()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="26" alt="26"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">6</td><td class="ctr2" id="i0">6</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="InstrumentedScheduledExecutorService.java.html#L280" class="el_method">InstrumentedScheduledExecutorService.InstrumentedCallable(InstrumentedScheduledExecutorService, Callable)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="41" height="10" title="9" alt="9"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedPeriodicRunnable.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedPeriodicRunnable.html
    deleted file mode 100644
    index 2e1834c454..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedPeriodicRunnable.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedScheduledExecutorService.InstrumentedPeriodicRunnable</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">InstrumentedScheduledExecutorService.InstrumentedPeriodicRunnable</span></div><h1>InstrumentedScheduledExecutorService.InstrumentedPeriodicRunnable</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">57 of 57</td><td class="ctr2">0%</td><td class="bar">2 of 2</td><td class="ctr2">0%</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">14</td><td class="ctr2">14</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="InstrumentedScheduledExecutorService.java.html#L261" class="el_method">run()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="43" alt="43"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h0">10</td><td class="ctr2" id="i0">10</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="InstrumentedScheduledExecutorService.java.html#L254" class="el_method">InstrumentedScheduledExecutorService.InstrumentedPeriodicRunnable(InstrumentedScheduledExecutorService, Runnable, long, TimeUnit)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="39" height="10" title="14" alt="14"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedRunnable.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedRunnable.html
    deleted file mode 100644
    index cea4fed0dd..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService$InstrumentedRunnable.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedScheduledExecutorService.InstrumentedRunnable</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">InstrumentedScheduledExecutorService.InstrumentedRunnable</span></div><h1>InstrumentedScheduledExecutorService.InstrumentedRunnable</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">33 of 33</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">10</td><td class="ctr2">10</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="InstrumentedScheduledExecutorService.java.html#L238" class="el_method">run()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="24" alt="24"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">7</td><td class="ctr2" id="i0">7</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="InstrumentedScheduledExecutorService.java.html#L232" class="el_method">InstrumentedScheduledExecutorService.InstrumentedRunnable(InstrumentedScheduledExecutorService, Runnable)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="45" height="10" title="9" alt="9"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService.html
    deleted file mode 100644
    index 725e4c9e7d..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedScheduledExecutorService</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">InstrumentedScheduledExecutorService</span></div><h1>InstrumentedScheduledExecutorService</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">343 of 343</td><td class="ctr2">0%</td><td class="bar">2 of 2</td><td class="ctr2">0%</td><td class="ctr1">22</td><td class="ctr2">22</td><td class="ctr1">54</td><td class="ctr2">54</td><td class="ctr1">21</td><td class="ctr2">21</td></tr></tfoot><tbody><tr><td id="a4"><a href="InstrumentedScheduledExecutorService.java.html#L54" class="el_method">InstrumentedScheduledExecutorService(ScheduledExecutorService, MetricRegistry, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="102" alt="102"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">11</td><td class="ctr2" id="i0">11</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="InstrumentedScheduledExecutorService.java.html#L213" class="el_method">instrument(Collection)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="27" alt="27"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h1">5</td><td class="ctr2" id="i1">5</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a13"><a href="InstrumentedScheduledExecutorService.java.html#L92" class="el_method">scheduleAtFixedRate(Runnable, long, long, TimeUnit)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="17" alt="17"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i7">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a6"><a href="InstrumentedScheduledExecutorService.java.html#L187" class="el_method">invokeAll(Collection, long, TimeUnit)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="17" alt="17"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h2">3</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a8"><a href="InstrumentedScheduledExecutorService.java.html#L207" class="el_method">invokeAny(Collection, long, TimeUnit)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="17" alt="17"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h3">3</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a14"><a href="InstrumentedScheduledExecutorService.java.html#L101" class="el_method">scheduleWithFixedDelay(Runnable, long, long, TimeUnit)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="15" alt="15"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i8">2</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a5"><a href="InstrumentedScheduledExecutorService.java.html#L177" class="el_method">invokeAll(Collection)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="15" alt="15"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h4">3</td><td class="ctr2" id="i4">3</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a7"><a href="InstrumentedScheduledExecutorService.java.html#L197" class="el_method">invokeAny(Collection)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="15" alt="15"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h5">3</td><td class="ctr2" id="i5">3</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a3"><a href="InstrumentedScheduledExecutorService.java.html#L44" class="el_method">InstrumentedScheduledExecutorService(ScheduledExecutorService, MetricRegistry)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="14" alt="14"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a12"><a href="InstrumentedScheduledExecutorService.java.html#L74" class="el_method">schedule(Runnable, long, TimeUnit)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="14" alt="14"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a11"><a href="InstrumentedScheduledExecutorService.java.html#L83" class="el_method">schedule(Callable, long, TimeUnit)</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="14" alt="14"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a20"><a href="InstrumentedScheduledExecutorService.java.html#L159" class="el_method">submit(Runnable, Object)</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="13" alt="13"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h12">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a18"><a href="InstrumentedScheduledExecutorService.java.html#L150" class="el_method">submit(Callable)</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="12" alt="12"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h13">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a19"><a href="InstrumentedScheduledExecutorService.java.html#L168" class="el_method">submit(Runnable)</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="12" alt="12"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h14">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a1"><a href="InstrumentedScheduledExecutorService.java.html#L225" class="el_method">execute(Runnable)</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="12" alt="12"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h6">3</td><td class="ctr2" id="i6">3</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a0"><a href="InstrumentedScheduledExecutorService.java.html#L142" class="el_method">awaitTermination(long, TimeUnit)</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="6" alt="6"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h16">1</td><td class="ctr2" id="i16">1</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a17"><a href="InstrumentedScheduledExecutorService.java.html#L23" class="el_method">static {...}</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="5" alt="5"/></td><td class="ctr2" id="c16">0%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h17">1</td><td class="ctr2" id="i17">1</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a15"><a href="InstrumentedScheduledExecutorService.java.html#L110" class="el_method">shutdown()</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="4" alt="4"/></td><td class="ctr2" id="c17">0%</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">1</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h15">2</td><td class="ctr2" id="i15">2</td><td class="ctr1" id="j17">1</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a16"><a href="InstrumentedScheduledExecutorService.java.html#L118" class="el_method">shutdownNow()</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="4" alt="4"/></td><td class="ctr2" id="c18">0%</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f18">1</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h18">1</td><td class="ctr2" id="i18">1</td><td class="ctr1" id="j18">1</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a9"><a href="InstrumentedScheduledExecutorService.java.html#L126" class="el_method">isShutdown()</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="4" alt="4"/></td><td class="ctr2" id="c19">0%</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">1</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h19">1</td><td class="ctr2" id="i19">1</td><td class="ctr1" id="j19">1</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a10"><a href="InstrumentedScheduledExecutorService.java.html#L134" class="el_method">isTerminated()</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="4" alt="4"/></td><td class="ctr2" id="c20">0%</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f20">1</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h20">1</td><td class="ctr2" id="i20">1</td><td class="ctr1" id="j20">1</td><td class="ctr2" id="k20">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService.java.html
    deleted file mode 100644
    index 9c0ca878b4..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorService.java.html
    +++ /dev/null
    @@ -1,298 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedScheduledExecutorService.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">InstrumentedScheduledExecutorService.java</span></div><h1>InstrumentedScheduledExecutorService.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.util.ArrayList;
    -import java.util.Collection;
    -import java.util.List;
    -import java.util.concurrent.Callable;
    -import java.util.concurrent.ExecutionException;
    -import java.util.concurrent.Future;
    -import java.util.concurrent.ScheduledExecutorService;
    -import java.util.concurrent.ScheduledFuture;
    -import java.util.concurrent.TimeUnit;
    -import java.util.concurrent.TimeoutException;
    -import java.util.concurrent.atomic.AtomicLong;
    -
    -/**
    - * An {@link ScheduledExecutorService} that monitors the number of tasks submitted, running,
    - * completed and also keeps a {@link Timer} for the task duration.
    - * &lt;p&gt;
    - * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    - * &quot;your-executor-service.submitted&quot;, &quot;your-executor-service.running&quot;, etc.
    - */
    -public class InstrumentedScheduledExecutorService implements ScheduledExecutorService {
    -<span class="nc" id="L23">    private static final AtomicLong NAME_COUNTER = new AtomicLong();</span>
    -
    -    private final ScheduledExecutorService delegate;
    -
    -    private final Meter submitted;
    -    private final Counter running;
    -    private final Meter completed;
    -    private final Timer duration;
    -
    -    private final Meter scheduledOnce;
    -    private final Meter scheduledRepetitively;
    -    private final Counter scheduledOverrun;
    -    private final Histogram percentOfPeriod;
    -
    -    /**
    -     * Wraps an {@link ScheduledExecutorService} uses an auto-generated default name.
    -     *
    -     * @param delegate {@link ScheduledExecutorService} to wrap.
    -     * @param registry {@link MetricRegistry} that will contain the metrics.
    -     */
    -    public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry) {
    -<span class="nc" id="L44">        this(delegate, registry, &quot;instrumented-scheduled-executor-service-&quot; + NAME_COUNTER.incrementAndGet());</span>
    -<span class="nc" id="L45">    }</span>
    -
    -    /**
    -     * Wraps an {@link ScheduledExecutorService} with an explicit name.
    -     *
    -     * @param delegate {@link ScheduledExecutorService} to wrap.
    -     * @param registry {@link MetricRegistry} that will contain the metrics.
    -     * @param name     name for this executor service.
    -     */
    -<span class="nc" id="L54">    public InstrumentedScheduledExecutorService(ScheduledExecutorService delegate, MetricRegistry registry, String name) {</span>
    -<span class="nc" id="L55">        this.delegate = delegate;</span>
    -
    -<span class="nc" id="L57">        this.submitted = registry.meter(MetricRegistry.name(name, &quot;submitted&quot;));</span>
    -
    -<span class="nc" id="L59">        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</span>
    -<span class="nc" id="L60">        this.completed = registry.meter(MetricRegistry.name(name, &quot;completed&quot;));</span>
    -<span class="nc" id="L61">        this.duration = registry.timer(MetricRegistry.name(name, &quot;duration&quot;));</span>
    -
    -<span class="nc" id="L63">        this.scheduledOnce = registry.meter(MetricRegistry.name(name, &quot;scheduled.once&quot;));</span>
    -<span class="nc" id="L64">        this.scheduledRepetitively = registry.meter(MetricRegistry.name(name, &quot;scheduled.repetitively&quot;));</span>
    -<span class="nc" id="L65">        this.scheduledOverrun = registry.counter(MetricRegistry.name(name, &quot;scheduled.overrun&quot;));</span>
    -<span class="nc" id="L66">        this.percentOfPeriod = registry.histogram(MetricRegistry.name(name, &quot;scheduled.percent-of-period&quot;));</span>
    -<span class="nc" id="L67">    }</span>
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public ScheduledFuture&lt;?&gt; schedule(Runnable command, long delay, TimeUnit unit) {
    -<span class="nc" id="L74">        scheduledOnce.mark();</span>
    -<span class="nc" id="L75">        return delegate.schedule(new InstrumentedRunnable(command), delay, unit);</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public &lt;V&gt; ScheduledFuture&lt;V&gt; schedule(Callable&lt;V&gt; callable, long delay, TimeUnit unit) {
    -<span class="nc" id="L83">        scheduledOnce.mark();</span>
    -<span class="nc" id="L84">        return delegate.schedule(new InstrumentedCallable&lt;&gt;(callable), delay, unit);</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public ScheduledFuture&lt;?&gt; scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) {
    -<span class="nc" id="L92">        scheduledRepetitively.mark();</span>
    -<span class="nc" id="L93">        return delegate.scheduleAtFixedRate(new InstrumentedPeriodicRunnable(command, period, unit), initialDelay, period, unit);</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public ScheduledFuture&lt;?&gt; scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) {
    -<span class="nc" id="L101">        scheduledRepetitively.mark();</span>
    -<span class="nc" id="L102">        return delegate.scheduleWithFixedDelay(new InstrumentedRunnable(command), initialDelay, delay, unit);</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public void shutdown() {
    -<span class="nc" id="L110">        delegate.shutdown();</span>
    -<span class="nc" id="L111">    }</span>
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public List&lt;Runnable&gt; shutdownNow() {
    -<span class="nc" id="L118">        return delegate.shutdownNow();</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public boolean isShutdown() {
    -<span class="nc" id="L126">        return delegate.isShutdown();</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public boolean isTerminated() {
    -<span class="nc" id="L134">        return delegate.isTerminated();</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {
    -<span class="nc" id="L142">        return delegate.awaitTermination(timeout, unit);</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public &lt;T&gt; Future&lt;T&gt; submit(Callable&lt;T&gt; task) {
    -<span class="nc" id="L150">        submitted.mark();</span>
    -<span class="nc" id="L151">        return delegate.submit(new InstrumentedCallable&lt;&gt;(task));</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public &lt;T&gt; Future&lt;T&gt; submit(Runnable task, T result) {
    -<span class="nc" id="L159">        submitted.mark();</span>
    -<span class="nc" id="L160">        return delegate.submit(new InstrumentedRunnable(task), result);</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public Future&lt;?&gt; submit(Runnable task) {
    -<span class="nc" id="L168">        submitted.mark();</span>
    -<span class="nc" id="L169">        return delegate.submit(new InstrumentedRunnable(task));</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException {
    -<span class="nc" id="L177">        submitted.mark(tasks.size());</span>
    -<span class="nc" id="L178">        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</span>
    -<span class="nc" id="L179">        return delegate.invokeAll(instrumented);</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public &lt;T&gt; List&lt;Future&lt;T&gt;&gt; invokeAll(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException {
    -<span class="nc" id="L187">        submitted.mark(tasks.size());</span>
    -<span class="nc" id="L188">        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</span>
    -<span class="nc" id="L189">        return delegate.invokeAll(instrumented, timeout, unit);</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) throws InterruptedException, ExecutionException {
    -<span class="nc" id="L197">        submitted.mark(tasks.size());</span>
    -<span class="nc" id="L198">        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</span>
    -<span class="nc" id="L199">        return delegate.invokeAny(instrumented);</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public &lt;T&gt; T invokeAny(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {
    -<span class="nc" id="L207">        submitted.mark(tasks.size());</span>
    -<span class="nc" id="L208">        Collection&lt;? extends Callable&lt;T&gt;&gt; instrumented = instrument(tasks);</span>
    -<span class="nc" id="L209">        return delegate.invokeAny(instrumented, timeout, unit);</span>
    -    }
    -
    -    private &lt;T&gt; Collection&lt;? extends Callable&lt;T&gt;&gt; instrument(Collection&lt;? extends Callable&lt;T&gt;&gt; tasks) {
    -<span class="nc" id="L213">        final List&lt;InstrumentedCallable&lt;T&gt;&gt; instrumented = new ArrayList&lt;&gt;(tasks.size());</span>
    -<span class="nc bnc" id="L214" title="All 2 branches missed.">        for (Callable&lt;T&gt; task : tasks) {</span>
    -<span class="nc" id="L215">            instrumented.add(new InstrumentedCallable&lt;&gt;(task));</span>
    -<span class="nc" id="L216">        }</span>
    -<span class="nc" id="L217">        return instrumented;</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public void execute(Runnable command) {
    -<span class="nc" id="L225">        submitted.mark();</span>
    -<span class="nc" id="L226">        delegate.execute(new InstrumentedRunnable(command));</span>
    -<span class="nc" id="L227">    }</span>
    -
    -    private class InstrumentedRunnable implements Runnable {
    -        private final Runnable command;
    -
    -<span class="nc" id="L232">        InstrumentedRunnable(Runnable command) {</span>
    -<span class="nc" id="L233">            this.command = command;</span>
    -<span class="nc" id="L234">        }</span>
    -
    -        @Override
    -        public void run() {
    -<span class="nc" id="L238">            running.inc();</span>
    -<span class="nc" id="L239">            final Timer.Context context = duration.time();</span>
    -            try {
    -<span class="nc" id="L241">                command.run();</span>
    -            } finally {
    -<span class="nc" id="L243">                context.stop();</span>
    -<span class="nc" id="L244">                running.dec();</span>
    -<span class="nc" id="L245">                completed.mark();</span>
    -            }
    -<span class="nc" id="L247">        }</span>
    -    }
    -
    -    private class InstrumentedPeriodicRunnable implements Runnable {
    -        private final Runnable command;
    -        private final long periodInNanos;
    -
    -<span class="nc" id="L254">        InstrumentedPeriodicRunnable(Runnable command, long period, TimeUnit unit) {</span>
    -<span class="nc" id="L255">            this.command = command;</span>
    -<span class="nc" id="L256">            this.periodInNanos = unit.toNanos(period);</span>
    -<span class="nc" id="L257">        }</span>
    -
    -        @Override
    -        public void run() {
    -<span class="nc" id="L261">            running.inc();</span>
    -<span class="nc" id="L262">            final Timer.Context context = duration.time();</span>
    -            try {
    -<span class="nc" id="L264">                command.run();</span>
    -            } finally {
    -<span class="nc" id="L266">                final long elapsed = context.stop();</span>
    -<span class="nc" id="L267">                running.dec();</span>
    -<span class="nc" id="L268">                completed.mark();</span>
    -<span class="nc bnc" id="L269" title="All 2 branches missed.">                if (elapsed &gt; periodInNanos) {</span>
    -<span class="nc" id="L270">                    scheduledOverrun.inc();</span>
    -                }
    -<span class="nc" id="L272">                percentOfPeriod.update((100L * elapsed) / periodInNanos);</span>
    -            }
    -<span class="nc" id="L274">        }</span>
    -    }
    -
    -    private class InstrumentedCallable&lt;T&gt; implements Callable&lt;T&gt; {
    -        private final Callable&lt;T&gt; task;
    -
    -<span class="nc" id="L280">        InstrumentedCallable(Callable&lt;T&gt; task) {</span>
    -<span class="nc" id="L281">            this.task = task;</span>
    -<span class="nc" id="L282">        }</span>
    -
    -        @Override
    -        public T call() throws Exception {
    -<span class="nc" id="L286">            running.inc();</span>
    -<span class="nc" id="L287">            final Timer.Context context = duration.time();</span>
    -            try {
    -<span class="nc" id="L289">                return task.call();</span>
    -            } finally {
    -<span class="nc" id="L291">                context.stop();</span>
    -<span class="nc" id="L292">                running.dec();</span>
    -<span class="nc" id="L293">                completed.mark();</span>
    -            }
    -        }
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorServiceTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorServiceTest.html
    deleted file mode 100644
    index 77206b9148..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorServiceTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedScheduledExecutorServiceTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">InstrumentedScheduledExecutorServiceTest</span></div><h1>InstrumentedScheduledExecutorServiceTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1,107 of 1,107</td><td class="ctr2">0%</td><td class="bar">2 of 2</td><td class="ctr2">0%</td><td class="ctr1">16</td><td class="ctr2">16</td><td class="ctr1">199</td><td class="ctr2">199</td><td class="ctr1">15</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a11"><a href="InstrumentedScheduledExecutorServiceTest.java.html#L209" class="el_method">testScheduleFixedRateCallable()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="140" alt="140"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">24</td><td class="ctr2" id="i0">24</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a9"><a href="InstrumentedScheduledExecutorServiceTest.java.html#L164" class="el_method">testScheduleCallable()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="108" height="10" title="127" alt="127"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">21</td><td class="ctr2" id="i1">21</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a13"><a href="InstrumentedScheduledExecutorServiceTest.java.html#L119" class="el_method">testSubmitCallable()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="107" height="10" title="125" alt="125"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h2">21</td><td class="ctr2" id="i2">21</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a12"><a href="InstrumentedScheduledExecutorServiceTest.java.html#L78" class="el_method">testScheduleRunnable()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="102" height="10" title="119" alt="119"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h3">20</td><td class="ctr2" id="i3">20</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a14"><a href="InstrumentedScheduledExecutorServiceTest.java.html#L37" class="el_method">testSubmitRunnable()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="100" height="10" title="117" alt="117"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h4">20</td><td class="ctr2" id="i4">20</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a10"><a href="InstrumentedScheduledExecutorServiceTest.java.html#L256" class="el_method">testScheduleFixedDelayCallable()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="96" height="10" title="113" alt="113"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h5">20</td><td class="ctr2" id="i5">20</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a0"><a href="InstrumentedScheduledExecutorServiceTest.java.html#L17" class="el_method">InstrumentedScheduledExecutorServiceTest()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="59" height="10" title="69" alt="69"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h6">12</td><td class="ctr2" id="i6">12</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a1"><a href="InstrumentedScheduledExecutorServiceTest.java.html#L178" class="el_method">lambda$testScheduleCallable$3(Object)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="44" height="10" title="52" alt="52"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h9">9</td><td class="ctr2" id="i9">9</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a5"><a href="InstrumentedScheduledExecutorServiceTest.java.html#L133" class="el_method">lambda$testSubmitCallable$2(Object)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="44" height="10" title="52" alt="52"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h10">9</td><td class="ctr2" id="i10">9</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a4"><a href="InstrumentedScheduledExecutorServiceTest.java.html#L90" class="el_method">lambda$testScheduleRunnable$1()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="51" alt="51"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h11">9</td><td class="ctr2" id="i11">9</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a6"><a href="InstrumentedScheduledExecutorServiceTest.java.html#L49" class="el_method">lambda$testSubmitRunnable$0()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="51" alt="51"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h12">9</td><td class="ctr2" id="i12">9</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a2"><a href="InstrumentedScheduledExecutorServiceTest.java.html#L269" class="el_method">lambda$testScheduleFixedDelayCallable$5(CountDownLatch)</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="37" alt="37"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h7">10</td><td class="ctr2" id="i7">10</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a3"><a href="InstrumentedScheduledExecutorServiceTest.java.html#L222" class="el_method">lambda$testScheduleFixedRateCallable$4(CountDownLatch)</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="37" alt="37"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h8">10</td><td class="ctr2" id="i8">10</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a8"><a href="InstrumentedScheduledExecutorServiceTest.java.html#L299" class="el_method">tearDown()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="13" alt="13"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h13">4</td><td class="ctr2" id="i13">4</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a7"><a href="InstrumentedScheduledExecutorServiceTest.java.html#L18" class="el_method">static {...}</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="4" alt="4"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h14">1</td><td class="ctr2" id="i14">1</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorServiceTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorServiceTest.java.html
    deleted file mode 100644
    index 1bab282903..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedScheduledExecutorServiceTest.java.html
    +++ /dev/null
    @@ -1,306 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedScheduledExecutorServiceTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">InstrumentedScheduledExecutorServiceTest.java</span></div><h1>InstrumentedScheduledExecutorServiceTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.After;
    -import org.junit.Test;
    -import org.slf4j.Logger;
    -import org.slf4j.LoggerFactory;
    -
    -import java.util.concurrent.CountDownLatch;
    -import java.util.concurrent.Executors;
    -import java.util.concurrent.Future;
    -import java.util.concurrent.ScheduledExecutorService;
    -import java.util.concurrent.ScheduledFuture;
    -import java.util.concurrent.TimeUnit;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -
    -<span class="nc" id="L17">public class InstrumentedScheduledExecutorServiceTest {</span>
    -<span class="nc" id="L18">    private static final Logger LOGGER = LoggerFactory.getLogger(InstrumentedScheduledExecutorServiceTest.class);</span>
    -
    -<span class="nc" id="L20">    private final ScheduledExecutorService scheduledExecutor = Executors.newSingleThreadScheduledExecutor();</span>
    -<span class="nc" id="L21">    private final MetricRegistry registry = new MetricRegistry();</span>
    -<span class="nc" id="L22">    private final InstrumentedScheduledExecutorService instrumentedScheduledExecutor = new InstrumentedScheduledExecutorService(scheduledExecutor, registry, &quot;xs&quot;);</span>
    -
    -<span class="nc" id="L24">    private final Meter submitted = registry.meter(&quot;xs.submitted&quot;);</span>
    -
    -<span class="nc" id="L26">    private final Counter running = registry.counter(&quot;xs.running&quot;);</span>
    -<span class="nc" id="L27">    private final Meter completed = registry.meter(&quot;xs.completed&quot;);</span>
    -<span class="nc" id="L28">    private final Timer duration = registry.timer(&quot;xs.duration&quot;);</span>
    -
    -<span class="nc" id="L30">    private final Meter scheduledOnce = registry.meter(&quot;xs.scheduled.once&quot;);</span>
    -<span class="nc" id="L31">    private final Meter scheduledRepetitively = registry.meter(&quot;xs.scheduled.repetitively&quot;);</span>
    -<span class="nc" id="L32">    private final Counter scheduledOverrun = registry.counter(&quot;xs.scheduled.overrun&quot;);</span>
    -<span class="nc" id="L33">    private final Histogram percentOfPeriod = registry.histogram(&quot;xs.scheduled.percent-of-period&quot;);</span>
    -
    -    @Test
    -    public void testSubmitRunnable() throws Exception {
    -<span class="nc" id="L37">        assertThat(submitted.getCount()).isZero();</span>
    -
    -<span class="nc" id="L39">        assertThat(running.getCount()).isZero();</span>
    -<span class="nc" id="L40">        assertThat(completed.getCount()).isZero();</span>
    -<span class="nc" id="L41">        assertThat(duration.getCount()).isZero();</span>
    -
    -<span class="nc" id="L43">        assertThat(scheduledOnce.getCount()).isZero();</span>
    -<span class="nc" id="L44">        assertThat(scheduledRepetitively.getCount()).isZero();</span>
    -<span class="nc" id="L45">        assertThat(scheduledOverrun.getCount()).isZero();</span>
    -<span class="nc" id="L46">        assertThat(percentOfPeriod.getCount()).isZero();</span>
    -
    -<span class="nc" id="L48">        Future&lt;?&gt; theFuture = instrumentedScheduledExecutor.submit(() -&gt; {</span>
    -<span class="nc" id="L49">            assertThat(submitted.getCount()).isEqualTo(1);</span>
    -
    -<span class="nc" id="L51">            assertThat(running.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L52">            assertThat(completed.getCount()).isZero();</span>
    -<span class="nc" id="L53">            assertThat(duration.getCount()).isZero();</span>
    -
    -<span class="nc" id="L55">            assertThat(scheduledOnce.getCount()).isZero();</span>
    -<span class="nc" id="L56">            assertThat(scheduledRepetitively.getCount()).isZero();</span>
    -<span class="nc" id="L57">            assertThat(scheduledOverrun.getCount()).isZero();</span>
    -<span class="nc" id="L58">            assertThat(percentOfPeriod.getCount()).isZero();</span>
    -<span class="nc" id="L59">        });</span>
    -
    -<span class="nc" id="L61">        theFuture.get();</span>
    -
    -<span class="nc" id="L63">        assertThat(submitted.getCount()).isEqualTo(1);</span>
    -
    -<span class="nc" id="L65">        assertThat(running.getCount()).isZero();</span>
    -<span class="nc" id="L66">        assertThat(completed.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L67">        assertThat(duration.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L68">        assertThat(duration.getSnapshot().size()).isEqualTo(1);</span>
    -
    -<span class="nc" id="L70">        assertThat(scheduledOnce.getCount()).isZero();</span>
    -<span class="nc" id="L71">        assertThat(scheduledRepetitively.getCount()).isZero();</span>
    -<span class="nc" id="L72">        assertThat(scheduledOverrun.getCount()).isZero();</span>
    -<span class="nc" id="L73">        assertThat(percentOfPeriod.getCount()).isZero();</span>
    -<span class="nc" id="L74">    }</span>
    -
    -    @Test
    -    public void testScheduleRunnable() throws Exception {
    -<span class="nc" id="L78">        assertThat(submitted.getCount()).isZero();</span>
    -
    -<span class="nc" id="L80">        assertThat(running.getCount()).isZero();</span>
    -<span class="nc" id="L81">        assertThat(completed.getCount()).isZero();</span>
    -<span class="nc" id="L82">        assertThat(duration.getCount()).isZero();</span>
    -
    -<span class="nc" id="L84">        assertThat(scheduledOnce.getCount()).isZero();</span>
    -<span class="nc" id="L85">        assertThat(scheduledRepetitively.getCount()).isZero();</span>
    -<span class="nc" id="L86">        assertThat(scheduledOverrun.getCount()).isZero();</span>
    -<span class="nc" id="L87">        assertThat(percentOfPeriod.getCount()).isZero();</span>
    -
    -<span class="nc" id="L89">        ScheduledFuture&lt;?&gt; theFuture = instrumentedScheduledExecutor.schedule(() -&gt; {</span>
    -<span class="nc" id="L90">            assertThat(submitted.getCount()).isZero();</span>
    -
    -<span class="nc" id="L92">            assertThat(running.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L93">            assertThat(completed.getCount()).isZero();</span>
    -<span class="nc" id="L94">            assertThat(duration.getCount()).isZero();</span>
    -
    -<span class="nc" id="L96">            assertThat(scheduledOnce.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L97">            assertThat(scheduledRepetitively.getCount()).isZero();</span>
    -<span class="nc" id="L98">            assertThat(scheduledOverrun.getCount()).isZero();</span>
    -<span class="nc" id="L99">            assertThat(percentOfPeriod.getCount()).isZero();</span>
    -<span class="nc" id="L100">        }, 10L, TimeUnit.MILLISECONDS);</span>
    -
    -<span class="nc" id="L102">        theFuture.get();</span>
    -
    -<span class="nc" id="L104">        assertThat(submitted.getCount()).isZero();</span>
    -
    -<span class="nc" id="L106">        assertThat(running.getCount()).isZero();</span>
    -<span class="nc" id="L107">        assertThat(completed.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L108">        assertThat(duration.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L109">        assertThat(duration.getSnapshot().size()).isEqualTo(1);</span>
    -
    -<span class="nc" id="L111">        assertThat(scheduledOnce.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L112">        assertThat(scheduledRepetitively.getCount()).isZero();</span>
    -<span class="nc" id="L113">        assertThat(scheduledOverrun.getCount()).isZero();</span>
    -<span class="nc" id="L114">        assertThat(percentOfPeriod.getCount()).isZero();</span>
    -<span class="nc" id="L115">    }</span>
    -
    -    @Test
    -    public void testSubmitCallable() throws Exception {
    -<span class="nc" id="L119">        assertThat(submitted.getCount()).isZero();</span>
    -
    -<span class="nc" id="L121">        assertThat(running.getCount()).isZero();</span>
    -<span class="nc" id="L122">        assertThat(completed.getCount()).isZero();</span>
    -<span class="nc" id="L123">        assertThat(duration.getCount()).isZero();</span>
    -
    -<span class="nc" id="L125">        assertThat(scheduledOnce.getCount()).isZero();</span>
    -<span class="nc" id="L126">        assertThat(scheduledRepetitively.getCount()).isZero();</span>
    -<span class="nc" id="L127">        assertThat(scheduledOverrun.getCount()).isZero();</span>
    -<span class="nc" id="L128">        assertThat(percentOfPeriod.getCount()).isZero();</span>
    -
    -<span class="nc" id="L130">        final Object obj = new Object();</span>
    -
    -<span class="nc" id="L132">        Future&lt;Object&gt; theFuture = instrumentedScheduledExecutor.submit(() -&gt; {</span>
    -<span class="nc" id="L133">            assertThat(submitted.getCount()).isEqualTo(1);</span>
    -
    -<span class="nc" id="L135">            assertThat(running.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L136">            assertThat(completed.getCount()).isZero();</span>
    -<span class="nc" id="L137">            assertThat(duration.getCount()).isZero();</span>
    -
    -<span class="nc" id="L139">            assertThat(scheduledOnce.getCount()).isZero();</span>
    -<span class="nc" id="L140">            assertThat(scheduledRepetitively.getCount()).isZero();</span>
    -<span class="nc" id="L141">            assertThat(scheduledOverrun.getCount()).isZero();</span>
    -<span class="nc" id="L142">            assertThat(percentOfPeriod.getCount()).isZero();</span>
    -
    -<span class="nc" id="L144">            return obj;</span>
    -        });
    -
    -<span class="nc" id="L147">        assertThat(theFuture.get()).isEqualTo(obj);</span>
    -
    -<span class="nc" id="L149">        assertThat(submitted.getCount()).isEqualTo(1);</span>
    -
    -<span class="nc" id="L151">        assertThat(running.getCount()).isZero();</span>
    -<span class="nc" id="L152">        assertThat(completed.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L153">        assertThat(duration.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L154">        assertThat(duration.getSnapshot().size()).isEqualTo(1);</span>
    -
    -<span class="nc" id="L156">        assertThat(scheduledOnce.getCount()).isZero();</span>
    -<span class="nc" id="L157">        assertThat(scheduledRepetitively.getCount()).isZero();</span>
    -<span class="nc" id="L158">        assertThat(scheduledOverrun.getCount()).isZero();</span>
    -<span class="nc" id="L159">        assertThat(percentOfPeriod.getCount()).isZero();</span>
    -<span class="nc" id="L160">    }</span>
    -
    -    @Test
    -    public void testScheduleCallable() throws Exception {
    -<span class="nc" id="L164">        assertThat(submitted.getCount()).isZero();</span>
    -
    -<span class="nc" id="L166">        assertThat(running.getCount()).isZero();</span>
    -<span class="nc" id="L167">        assertThat(completed.getCount()).isZero();</span>
    -<span class="nc" id="L168">        assertThat(duration.getCount()).isZero();</span>
    -
    -<span class="nc" id="L170">        assertThat(scheduledOnce.getCount()).isZero();</span>
    -<span class="nc" id="L171">        assertThat(scheduledRepetitively.getCount()).isZero();</span>
    -<span class="nc" id="L172">        assertThat(scheduledOverrun.getCount()).isZero();</span>
    -<span class="nc" id="L173">        assertThat(percentOfPeriod.getCount()).isZero();</span>
    -
    -<span class="nc" id="L175">        final Object obj = new Object();</span>
    -
    -<span class="nc" id="L177">        ScheduledFuture&lt;Object&gt; theFuture = instrumentedScheduledExecutor.schedule(() -&gt; {</span>
    -<span class="nc" id="L178">            assertThat(submitted.getCount()).isZero();</span>
    -
    -<span class="nc" id="L180">            assertThat(running.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L181">            assertThat(completed.getCount()).isZero();</span>
    -<span class="nc" id="L182">            assertThat(duration.getCount()).isZero();</span>
    -
    -<span class="nc" id="L184">            assertThat(scheduledOnce.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L185">            assertThat(scheduledRepetitively.getCount()).isZero();</span>
    -<span class="nc" id="L186">            assertThat(scheduledOverrun.getCount()).isZero();</span>
    -<span class="nc" id="L187">            assertThat(percentOfPeriod.getCount()).isZero();</span>
    -
    -<span class="nc" id="L189">            return obj;</span>
    -        }, 10L, TimeUnit.MILLISECONDS);
    -
    -<span class="nc" id="L192">        assertThat(theFuture.get()).isEqualTo(obj);</span>
    -
    -<span class="nc" id="L194">        assertThat(submitted.getCount()).isZero();</span>
    -
    -<span class="nc" id="L196">        assertThat(running.getCount()).isZero();</span>
    -<span class="nc" id="L197">        assertThat(completed.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L198">        assertThat(duration.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L199">        assertThat(duration.getSnapshot().size()).isEqualTo(1);</span>
    -
    -<span class="nc" id="L201">        assertThat(scheduledOnce.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L202">        assertThat(scheduledRepetitively.getCount()).isZero();</span>
    -<span class="nc" id="L203">        assertThat(scheduledOverrun.getCount()).isZero();</span>
    -<span class="nc" id="L204">        assertThat(percentOfPeriod.getCount()).isZero();</span>
    -<span class="nc" id="L205">    }</span>
    -
    -    @Test
    -    public void testScheduleFixedRateCallable() throws Exception {
    -<span class="nc" id="L209">        assertThat(submitted.getCount()).isZero();</span>
    -
    -<span class="nc" id="L211">        assertThat(running.getCount()).isZero();</span>
    -<span class="nc" id="L212">        assertThat(completed.getCount()).isZero();</span>
    -<span class="nc" id="L213">        assertThat(duration.getCount()).isZero();</span>
    -
    -<span class="nc" id="L215">        assertThat(scheduledOnce.getCount()).isZero();</span>
    -<span class="nc" id="L216">        assertThat(scheduledRepetitively.getCount()).isZero();</span>
    -<span class="nc" id="L217">        assertThat(scheduledOverrun.getCount()).isZero();</span>
    -<span class="nc" id="L218">        assertThat(percentOfPeriod.getCount()).isZero();</span>
    -
    -<span class="nc" id="L220">        CountDownLatch countDownLatch = new CountDownLatch(1);</span>
    -<span class="nc" id="L221">        ScheduledFuture&lt;?&gt; theFuture = instrumentedScheduledExecutor.scheduleAtFixedRate(() -&gt; {</span>
    -<span class="nc" id="L222">            assertThat(submitted.getCount()).isZero();</span>
    -
    -<span class="nc" id="L224">            assertThat(running.getCount()).isEqualTo(1);</span>
    -
    -<span class="nc" id="L226">            assertThat(scheduledOnce.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L227">            assertThat(scheduledRepetitively.getCount()).isEqualTo(1);</span>
    -
    -            try {
    -<span class="nc" id="L230">                TimeUnit.MILLISECONDS.sleep(50);</span>
    -<span class="nc" id="L231">            } catch (InterruptedException ex) {</span>
    -<span class="nc" id="L232">                Thread.currentThread().interrupt();</span>
    -<span class="nc" id="L233">            }</span>
    -<span class="nc" id="L234">            countDownLatch.countDown();</span>
    -<span class="nc" id="L235">        }, 10L, 10L, TimeUnit.MILLISECONDS);</span>
    -<span class="nc" id="L236">        TimeUnit.MILLISECONDS.sleep(100); // Give some time for the task to be run</span>
    -<span class="nc" id="L237">        countDownLatch.await(5, TimeUnit.SECONDS); // Don't cancel until it didn't complete once</span>
    -<span class="nc" id="L238">        theFuture.cancel(true);</span>
    -<span class="nc" id="L239">        TimeUnit.MILLISECONDS.sleep(200);         // Wait while the task is cancelled</span>
    -
    -<span class="nc" id="L241">        assertThat(submitted.getCount()).isZero();</span>
    -
    -<span class="nc" id="L243">        assertThat(running.getCount()).isZero();</span>
    -<span class="nc" id="L244">        assertThat(completed.getCount()).isNotEqualTo(0);</span>
    -<span class="nc" id="L245">        assertThat(duration.getCount()).isNotEqualTo(0);</span>
    -<span class="nc" id="L246">        assertThat(duration.getSnapshot().size()).isNotEqualTo(0);</span>
    -
    -<span class="nc" id="L248">        assertThat(scheduledOnce.getCount()).isZero();</span>
    -<span class="nc" id="L249">        assertThat(scheduledRepetitively.getCount()).isEqualTo(1);</span>
    -<span class="nc" id="L250">        assertThat(scheduledOverrun.getCount()).isNotEqualTo(0);</span>
    -<span class="nc" id="L251">        assertThat(percentOfPeriod.getCount()).isNotEqualTo(0);</span>
    -<span class="nc" id="L252">    }</span>
    -
    -    @Test
    -    public void testScheduleFixedDelayCallable() throws Exception {
    -<span class="nc" id="L256">        assertThat(submitted.getCount()).isZero();</span>
    -
    -<span class="nc" id="L258">        assertThat(running.getCount()).isZero();</span>
    -<span class="nc" id="L259">        assertThat(completed.getCount()).isZero();</span>
    -<span class="nc" id="L260">        assertThat(duration.getCount()).isZero();</span>
    -
    -<span class="nc" id="L262">        assertThat(scheduledOnce.getCount()).isZero();</span>
    -<span class="nc" id="L263">        assertThat(scheduledRepetitively.getCount()).isZero();</span>
    -<span class="nc" id="L264">        assertThat(scheduledOverrun.getCount()).isZero();</span>
    -<span class="nc" id="L265">        assertThat(percentOfPeriod.getCount()).isZero();</span>
    -
    -<span class="nc" id="L267">        CountDownLatch countDownLatch = new CountDownLatch(1);</span>
    -<span class="nc" id="L268">        ScheduledFuture&lt;?&gt; theFuture = instrumentedScheduledExecutor.scheduleWithFixedDelay(() -&gt; {</span>
    -<span class="nc" id="L269">            assertThat(submitted.getCount()).isZero();</span>
    -
    -<span class="nc" id="L271">            assertThat(running.getCount()).isEqualTo(1);</span>
    -
    -<span class="nc" id="L273">            assertThat(scheduledOnce.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L274">            assertThat(scheduledRepetitively.getCount()).isEqualTo(1);</span>
    -
    -            try {
    -<span class="nc" id="L277">                TimeUnit.MILLISECONDS.sleep(50);</span>
    -<span class="nc" id="L278">            } catch (InterruptedException ex) {</span>
    -<span class="nc" id="L279">                Thread.currentThread().interrupt();</span>
    -<span class="nc" id="L280">            }</span>
    -<span class="nc" id="L281">            countDownLatch.countDown();</span>
    -<span class="nc" id="L282">        }, 10L, 10L, TimeUnit.MILLISECONDS);</span>
    -
    -<span class="nc" id="L284">        TimeUnit.MILLISECONDS.sleep(100);</span>
    -<span class="nc" id="L285">        countDownLatch.await(5, TimeUnit.SECONDS);</span>
    -<span class="nc" id="L286">        theFuture.cancel(true);</span>
    -<span class="nc" id="L287">        TimeUnit.MILLISECONDS.sleep(200);</span>
    -
    -<span class="nc" id="L289">        assertThat(submitted.getCount()).isZero();</span>
    -
    -<span class="nc" id="L291">        assertThat(running.getCount()).isZero();</span>
    -<span class="nc" id="L292">        assertThat(completed.getCount()).isNotEqualTo(0);</span>
    -<span class="nc" id="L293">        assertThat(duration.getCount()).isNotEqualTo(0);</span>
    -<span class="nc" id="L294">        assertThat(duration.getSnapshot().size()).isNotEqualTo(0);</span>
    -<span class="nc" id="L295">    }</span>
    -
    -    @After
    -    public void tearDown() throws Exception {
    -<span class="nc" id="L299">        instrumentedScheduledExecutor.shutdown();</span>
    -<span class="nc bnc" id="L300" title="All 2 branches missed.">        if (!instrumentedScheduledExecutor.awaitTermination(2, TimeUnit.SECONDS)) {</span>
    -<span class="nc" id="L301">            LOGGER.error(&quot;InstrumentedScheduledExecutorService did not terminate.&quot;);</span>
    -        }
    -<span class="nc" id="L303">    }</span>
    -
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory$InstrumentedRunnable.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory$InstrumentedRunnable.html
    deleted file mode 100644
    index 4939f8f6d4..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory$InstrumentedRunnable.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedThreadFactory.InstrumentedRunnable</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">InstrumentedThreadFactory.InstrumentedRunnable</span></div><h1>InstrumentedThreadFactory.InstrumentedRunnable</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">25 of 25</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">8</td><td class="ctr2">8</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="InstrumentedThreadFactory.java.html#L64" class="el_method">run()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="16" alt="16"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">5</td><td class="ctr2" id="i0">5</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="InstrumentedThreadFactory.java.html#L58" class="el_method">InstrumentedThreadFactory.InstrumentedRunnable(InstrumentedThreadFactory, Runnable)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="67" height="10" title="9" alt="9"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory.html
    deleted file mode 100644
    index 75491ad484..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedThreadFactory</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">InstrumentedThreadFactory</span></div><h1>InstrumentedThreadFactory</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">77 of 77</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">13</td><td class="ctr2">13</td><td class="ctr1">4</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a1"><a href="InstrumentedThreadFactory.java.html#L37" class="el_method">InstrumentedThreadFactory(ThreadFactory, MetricRegistry, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="42" alt="42"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">6</td><td class="ctr2" id="i0">6</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="InstrumentedThreadFactory.java.html#L49" class="el_method">newThread(Runnable)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="45" height="10" title="16" alt="16"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="InstrumentedThreadFactory.java.html#L27" class="el_method">InstrumentedThreadFactory(ThreadFactory, MetricRegistry)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="14" alt="14"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a3"><a href="InstrumentedThreadFactory.java.html#L13" class="el_method">static {...}</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="5" alt="5"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory.java.html
    deleted file mode 100644
    index 3330e7e765..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactory.java.html
    +++ /dev/null
    @@ -1,74 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedThreadFactory.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">InstrumentedThreadFactory.java</span></div><h1>InstrumentedThreadFactory.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.util.concurrent.ThreadFactory;
    -import java.util.concurrent.atomic.AtomicLong;
    -
    -/**
    - * A {@link ThreadFactory} that monitors the number of threads created, running and terminated.
    - * &lt;p&gt;
    - * It will register the metrics using the given (or auto-generated) name as classifier, e.g:
    - * &quot;your-thread-delegate.created&quot;, &quot;your-thread-delegate.running&quot;, etc.
    - */
    -public class InstrumentedThreadFactory implements ThreadFactory {
    -<span class="nc" id="L13">    private static final AtomicLong NAME_COUNTER = new AtomicLong();</span>
    -
    -    private final ThreadFactory delegate;
    -    private final Meter created;
    -    private final Counter running;
    -    private final Meter terminated;
    -
    -    /**
    -     * Wraps a {@link ThreadFactory}, uses a default auto-generated name.
    -     *
    -     * @param delegate {@link ThreadFactory} to wrap.
    -     * @param registry {@link MetricRegistry} that will contain the metrics.
    -     */
    -    public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry) {
    -<span class="nc" id="L27">        this(delegate, registry, &quot;instrumented-thread-delegate-&quot; + NAME_COUNTER.incrementAndGet());</span>
    -<span class="nc" id="L28">    }</span>
    -
    -    /**
    -     * Wraps a {@link ThreadFactory} with an explicit name.
    -     *
    -     * @param delegate {@link ThreadFactory} to wrap.
    -     * @param registry {@link MetricRegistry} that will contain the metrics.
    -     * @param name     name for this delegate.
    -     */
    -<span class="nc" id="L37">    public InstrumentedThreadFactory(ThreadFactory delegate, MetricRegistry registry, String name) {</span>
    -<span class="nc" id="L38">        this.delegate = delegate;</span>
    -<span class="nc" id="L39">        this.created = registry.meter(MetricRegistry.name(name, &quot;created&quot;));</span>
    -<span class="nc" id="L40">        this.running = registry.counter(MetricRegistry.name(name, &quot;running&quot;));</span>
    -<span class="nc" id="L41">        this.terminated = registry.meter(MetricRegistry.name(name, &quot;terminated&quot;));</span>
    -<span class="nc" id="L42">    }</span>
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public Thread newThread(Runnable runnable) {
    -<span class="nc" id="L49">        Runnable wrappedRunnable = new InstrumentedRunnable(runnable);</span>
    -<span class="nc" id="L50">        Thread thread = delegate.newThread(wrappedRunnable);</span>
    -<span class="nc" id="L51">        created.mark();</span>
    -<span class="nc" id="L52">        return thread;</span>
    -    }
    -
    -    private class InstrumentedRunnable implements Runnable {
    -        private final Runnable task;
    -
    -<span class="nc" id="L58">        InstrumentedRunnable(Runnable task) {</span>
    -<span class="nc" id="L59">            this.task = task;</span>
    -<span class="nc" id="L60">        }</span>
    -
    -        @Override
    -        public void run() {
    -<span class="nc" id="L64">            running.inc();</span>
    -            try {
    -<span class="nc" id="L66">                task.run();</span>
    -            } finally {
    -<span class="nc" id="L68">                running.dec();</span>
    -<span class="nc" id="L69">                terminated.mark();</span>
    -            }
    -<span class="nc" id="L71">        }</span>
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactoryTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactoryTest.html
    deleted file mode 100644
    index f94d09fa0d..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactoryTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedThreadFactoryTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">InstrumentedThreadFactoryTest</span></div><h1>InstrumentedThreadFactoryTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">129 of 129</td><td class="ctr2">0%</td><td class="bar">2 of 2</td><td class="ctr2">0%</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">30</td><td class="ctr2">30</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="InstrumentedThreadFactoryTest.java.html#L30" class="el_method">reportsThreadInformation()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="90" alt="90"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h0">18</td><td class="ctr2" id="i0">18</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="InstrumentedThreadFactoryTest.java.html#L15" class="el_method">InstrumentedThreadFactoryTest()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="27" alt="27"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h2">5</td><td class="ctr2" id="i2">5</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="InstrumentedThreadFactoryTest.java.html#L43" class="el_method">lambda$reportsThreadInformation$0(CountDownLatch, CountDownLatch, AtomicInteger)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="12" alt="12"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">7</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactoryTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactoryTest.java.html
    deleted file mode 100644
    index f430e6e18b..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/InstrumentedThreadFactoryTest.java.html
    +++ /dev/null
    @@ -1,78 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>InstrumentedThreadFactoryTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">InstrumentedThreadFactoryTest.java</span></div><h1>InstrumentedThreadFactoryTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -
    -import java.util.concurrent.CountDownLatch;
    -import java.util.concurrent.ExecutorService;
    -import java.util.concurrent.Executors;
    -import java.util.concurrent.Future;
    -import java.util.concurrent.ThreadFactory;
    -import java.util.concurrent.TimeUnit;
    -import java.util.concurrent.atomic.AtomicInteger;
    -
    -import org.junit.Test;
    -
    -<span class="nc" id="L15">public class InstrumentedThreadFactoryTest {</span>
    -    private static final int THREAD_COUNT = 10;
    -
    -<span class="nc" id="L18">    private final ThreadFactory factory = Executors.defaultThreadFactory();</span>
    -<span class="nc" id="L19">    private final MetricRegistry registry = new MetricRegistry();</span>
    -<span class="nc" id="L20">    private final InstrumentedThreadFactory instrumentedFactory = new InstrumentedThreadFactory(factory, registry, &quot;factory&quot;);</span>
    -<span class="nc" id="L21">    private final ExecutorService executor = Executors.newFixedThreadPool(THREAD_COUNT, instrumentedFactory);</span>
    -
    -    /**
    -     * Tests all parts of the InstrumentedThreadFactory except for termination since that
    -     * is currently difficult to do without race conditions.
    -     * TODO: Try not using real threads in a unit test?
    -     */
    -    @Test
    -    public void reportsThreadInformation() throws Exception {
    -<span class="nc" id="L30">        final CountDownLatch allTasksAreCreated = new CountDownLatch(THREAD_COUNT);</span>
    -<span class="nc" id="L31">        final CountDownLatch allTasksAreCounted = new CountDownLatch(1);</span>
    -<span class="nc" id="L32">        final AtomicInteger interrupted = new AtomicInteger();</span>
    -
    -<span class="nc" id="L34">        Meter created = registry.meter(&quot;factory.created&quot;);</span>
    -<span class="nc" id="L35">        Meter terminated = registry.meter(&quot;factory.terminated&quot;);</span>
    -
    -<span class="nc" id="L37">        assertThat(created.getCount()).isEqualTo(0);</span>
    -<span class="nc" id="L38">        assertThat(terminated.getCount()).isEqualTo(0);</span>
    -
    -        // generate demand so the executor service creates the threads through our factory.
    -<span class="nc bnc" id="L41" title="All 2 branches missed.">        for (int i = 0; i &lt; THREAD_COUNT + 1; i++) {</span>
    -<span class="nc" id="L42">            Future&lt;?&gt; t = executor.submit(() -&gt; {</span>
    -<span class="nc" id="L43">                allTasksAreCreated.countDown();</span>
    -
    -                // This asserts that all threads have wait wail the testing thread notifies all.
    -                // We have to do this to guarantee that the thread pool has 10 LIVE threads
    -                // before we check the 'created' Meter.
    -                try {
    -<span class="nc" id="L49">                    allTasksAreCounted.await();</span>
    -<span class="nc" id="L50">                } catch (InterruptedException e) {</span>
    -<span class="nc" id="L51">                    interrupted.incrementAndGet();</span>
    -<span class="nc" id="L52">                    Thread.currentThread().interrupt();</span>
    -<span class="nc" id="L53">                }</span>
    -<span class="nc" id="L54">            });</span>
    -<span class="nc" id="L55">            assertThat(t).isNotNull();</span>
    -        }
    -
    -<span class="nc" id="L58">        allTasksAreCreated.await(1, TimeUnit.SECONDS);</span>
    -<span class="nc" id="L59">        allTasksAreCounted.countDown();</span>
    -
    -<span class="nc" id="L61">        assertThat(created.getCount()).isEqualTo(10);</span>
    -<span class="nc" id="L62">        assertThat(terminated.getCount()).isEqualTo(0);</span>
    -
    -        // terminate all threads in the executor service.
    -<span class="nc" id="L65">        executor.shutdown();</span>
    -<span class="nc" id="L66">        executor.awaitTermination(1, TimeUnit.SECONDS);</span>
    -
    -        // assert that all threads from the factory have been terminated.
    -        // TODO: Remove this?
    -        //       There is no guarantee that all threads have entered the block where they are
    -        //       counted as terminated by this time.
    -        // assertThat(terminated.getCount()).isEqualTo(10);
    -
    -        // Check that none of the threads were interrupted.
    -<span class="nc" id="L75">        assertThat(interrupted.get()).isEqualTo(0);</span>
    -<span class="nc" id="L76">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$Builder.html b/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$Builder.html
    deleted file mode 100644
    index 280abf9377..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$Builder.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>LockFreeExponentiallyDecayingReservoir.Builder</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">LockFreeExponentiallyDecayingReservoir.Builder</span></div><h1>LockFreeExponentiallyDecayingReservoir.Builder</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">72 of 72</td><td class="ctr2">0%</td><td class="bar">2 of 2</td><td class="ctr2">0%</td><td class="ctr1">8</td><td class="ctr2">8</td><td class="ctr1">17</td><td class="ctr2">17</td><td class="ctr1">7</td><td class="ctr2">7</td></tr></tfoot><tbody><tr><td id="a5"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L234" class="el_method">size(int)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="19" alt="19"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L222" class="el_method">LockFreeExponentiallyDecayingReservoir.Builder()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="94" height="10" title="15" alt="15"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">5</td><td class="ctr2" id="i0">5</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L267" class="el_method">build()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="82" height="10" title="13" alt="13"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a4"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L254" class="el_method">rescaleThreshold(Duration)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="50" height="10" title="8" alt="8"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a2"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L262" class="el_method">clock(Clock)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="50" height="10" title="8" alt="8"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h3">2</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a0"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L246" class="el_method">alpha(double)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="5" alt="5"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a6"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L220" class="el_method">static {...}</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="4" alt="4"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$RescalingConsumer.html b/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$RescalingConsumer.html
    deleted file mode 100644
    index df5833be8e..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$RescalingConsumer.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>LockFreeExponentiallyDecayingReservoir.RescalingConsumer</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">LockFreeExponentiallyDecayingReservoir.RescalingConsumer</span></div><h1>LockFreeExponentiallyDecayingReservoir.RescalingConsumer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">45 of 45</td><td class="ctr2">0%</td><td class="bar">4 of 4</td><td class="ctr2">0%</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">11</td><td class="ctr2">11</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L149" class="el_method">accept(Double, WeightedSnapshot.WeightedSample)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="36" alt="36"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">3</td><td class="ctr1" id="h0">7</td><td class="ctr2" id="i0">7</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L142" class="el_method">LockFreeExponentiallyDecayingReservoir.RescalingConsumer(double, ConcurrentSkipListMap)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="9" alt="9"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$State.html b/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$State.html
    deleted file mode 100644
    index c14e39eb66..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir$State.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>LockFreeExponentiallyDecayingReservoir.State</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">LockFreeExponentiallyDecayingReservoir.State</span></div><h1>LockFreeExponentiallyDecayingReservoir.State</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">150 of 150</td><td class="ctr2">0%</td><td class="bar">16 of 16</td><td class="ctr2">0%</td><td class="ctr1">14</td><td class="ctr2">14</td><td class="ctr1">32</td><td class="ctr2">32</td><td class="ctr1">6</td><td class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a2"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L113" class="el_method">rescale(long)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="58" alt="58"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f2">3</td><td class="ctr2" id="g2">3</td><td class="ctr1" id="h0">12</td><td class="ctr2" id="i0">12</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a4"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L79" class="el_method">update(long, long)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="78" height="10" title="38" alt="38"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h2">6</td><td class="ctr2" id="i2">6</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L88" class="el_method">addSample(double, long, double, boolean)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="24" alt="24"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f1">4</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h3">4</td><td class="ctr2" id="i3">4</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a1"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L70" class="el_method">LockFreeExponentiallyDecayingReservoir.State(double, int, long, int, ConcurrentSkipListMap)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="37" height="10" title="18" alt="18"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h1">7</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a5"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L133" class="el_method">weight(long)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="7" alt="7"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a3"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L54" class="el_method">static {...}</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="5" alt="5"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir.html b/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir.html
    deleted file mode 100644
    index 0734d0796c..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>LockFreeExponentiallyDecayingReservoir</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">LockFreeExponentiallyDecayingReservoir</span></div><h1>LockFreeExponentiallyDecayingReservoir</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">105 of 105</td><td class="ctr2">0%</td><td class="bar">4 of 4</td><td class="ctr2">0%</td><td class="ctr1">10</td><td class="ctr2">10</td><td class="ctr1">24</td><td class="ctr2">24</td><td class="ctr1">8</td><td class="ctr2">8</td></tr></tfoot><tbody><tr><td id="a3"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L160" class="el_method">LockFreeExponentiallyDecayingReservoir(int, double, Duration, Clock)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="30" alt="30"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h0">7</td><td class="ctr2" id="i0">7</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a4"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L183" class="el_method">rescaleIfNeeded(long)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="72" height="10" title="18" alt="18"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L191" class="el_method">doRescale(long, LockFreeExponentiallyDecayingReservoir.State)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="15" alt="15"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L204" class="el_method">getSnapshot()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="13" alt="13"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a7"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L176" class="el_method">update(long)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="44" height="10" title="11" alt="11"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h3">3</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a5"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L171" class="el_method">size()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="7" alt="7"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a6"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L43" class="el_method">static {...}</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="6" alt="6"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i5">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a0"><a href="LockFreeExponentiallyDecayingReservoir.java.html#L209" class="el_method">builder()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="5" alt="5"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir.java.html
    deleted file mode 100644
    index 2abc0793a9..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/LockFreeExponentiallyDecayingReservoir.java.html
    +++ /dev/null
    @@ -1,271 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>LockFreeExponentiallyDecayingReservoir.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">LockFreeExponentiallyDecayingReservoir.java</span></div><h1>LockFreeExponentiallyDecayingReservoir.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import com.codahale.metrics.WeightedSnapshot.WeightedSample;
    -
    -import java.time.Duration;
    -import java.util.Objects;
    -import java.util.concurrent.ConcurrentSkipListMap;
    -import java.util.concurrent.ThreadLocalRandom;
    -import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;
    -import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
    -import java.util.function.BiConsumer;
    -
    -/**
    - * A lock-free exponentially-decaying random reservoir of {@code long}s. Uses Cormode et al's
    - * forward-decaying priority reservoir sampling method to produce a statistically representative
    - * sampling reservoir, exponentially biased towards newer entries.
    - *
    - * @see &lt;a href=&quot;http://dimacs.rutgers.edu/~graham/pubs/papers/fwddecay.pdf&quot;&gt;
    - * Cormode et al. Forward Decay: A Practical Time Decay Model for Streaming Systems. ICDE '09:
    - * Proceedings of the 2009 IEEE International Conference on Data Engineering (2009)&lt;/a&gt;
    - *
    - * {@link LockFreeExponentiallyDecayingReservoir} is based closely on the {@link ExponentiallyDecayingReservoir},
    - * however it provides looser guarantees while completely avoiding locks.
    - *
    - * Looser guarantees:
    - * &lt;ul&gt;
    - *     &lt;li&gt; Updates which occur concurrently with rescaling may be discarded if the orphaned state node is updated after
    - *     rescale has replaced it. This condition has a greater probability as the rescale interval is reduced due to the
    - *     increased frequency of rescaling. {@link #rescaleThresholdNanos} values below 30 seconds are not recommended.
    - *     &lt;li&gt; Given a small rescale threshold, updates may attempt to rescale into a new bucket, but lose the CAS race
    - *     and update into a newer bucket than expected. In these cases the measurement weight is reduced accordingly.
    - *     &lt;li&gt;In the worst case, all concurrent threads updating the reservoir may attempt to rescale rather than
    - *     a single thread holding an exclusive write lock. It's expected that the configuration is set such that
    - *     rescaling is substantially less common than updating at peak load. Even so, when size is reasonably small
    - *     it can be more efficient to rescale than to park and context switch.
    - * &lt;/ul&gt;
    - *
    - * @author &lt;a href=&quot;mailto:ckozak@ckozak.net&quot;&gt;Carter Kozak&lt;/a&gt;
    - */
    -public final class LockFreeExponentiallyDecayingReservoir implements Reservoir {
    -
    -    private static final double SECONDS_PER_NANO = .000_000_001D;
    -<span class="nc" id="L43">    private static final AtomicReferenceFieldUpdater&lt;LockFreeExponentiallyDecayingReservoir, State&gt; stateUpdater =</span>
    -<span class="nc" id="L44">            AtomicReferenceFieldUpdater.newUpdater(LockFreeExponentiallyDecayingReservoir.class, State.class, &quot;state&quot;);</span>
    -
    -    private final int size;
    -    private final long rescaleThresholdNanos;
    -    private final Clock clock;
    -
    -    private volatile State state;
    -
    -    private static final class State {
    -
    -<span class="nc" id="L54">        private static final AtomicIntegerFieldUpdater&lt;State&gt; countUpdater =</span>
    -<span class="nc" id="L55">                AtomicIntegerFieldUpdater.newUpdater(State.class, &quot;count&quot;);</span>
    -
    -        private final double alphaNanos;
    -        private final int size;
    -        private final long startTick;
    -        // Count is updated after samples are successfully added to the map.
    -        private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    -
    -        private volatile int count;
    -
    -        State(
    -                double alphaNanos,
    -                int size,
    -                long startTick,
    -                int count,
    -<span class="nc" id="L70">                ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values) {</span>
    -<span class="nc" id="L71">            this.alphaNanos = alphaNanos;</span>
    -<span class="nc" id="L72">            this.size = size;</span>
    -<span class="nc" id="L73">            this.startTick = startTick;</span>
    -<span class="nc" id="L74">            this.values = values;</span>
    -<span class="nc" id="L75">            this.count = count;</span>
    -<span class="nc" id="L76">        }</span>
    -
    -        private void update(long value, long timestampNanos) {
    -<span class="nc" id="L79">            double itemWeight = weight(timestampNanos - startTick);</span>
    -<span class="nc" id="L80">            double priority = itemWeight / ThreadLocalRandom.current().nextDouble();</span>
    -<span class="nc bnc" id="L81" title="All 2 branches missed.">            boolean mapIsFull = count &gt;= size;</span>
    -<span class="nc bnc" id="L82" title="All 4 branches missed.">            if (!mapIsFull || values.firstKey() &lt; priority) {</span>
    -<span class="nc" id="L83">                addSample(priority, value, itemWeight, mapIsFull);</span>
    -            }
    -<span class="nc" id="L85">        }</span>
    -
    -        private void addSample(double priority, long value, double itemWeight, boolean bypassIncrement) {
    -<span class="nc bnc" id="L88" title="All 4 branches missed.">            if (values.putIfAbsent(priority, new WeightedSample(value, itemWeight)) == null</span>
    -<span class="nc bnc" id="L89" title="All 2 branches missed.">                    &amp;&amp; (bypassIncrement || countUpdater.incrementAndGet(this) &gt; size)) {</span>
    -<span class="nc" id="L90">                values.pollFirstEntry();</span>
    -            }
    -<span class="nc" id="L92">        }</span>
    -
    -        /* &quot;A common feature of the above techniques—indeed, the key technique that
    -         * allows us to track the decayed weights efficiently—is that they maintain
    -         * counts and other quantities based on g(ti − L), and only scale by g(t − L)
    -         * at query time. But while g(ti −L)/g(t−L) is guaranteed to lie between zero
    -         * and one, the intermediate values of g(ti − L) could become very large. For
    -         * polynomial functions, these values should not grow too large, and should be
    -         * effectively represented in practice by floating point values without loss of
    -         * precision. For exponential functions, these values could grow quite large as
    -         * new values of (ti − L) become large, and potentially exceed the capacity of
    -         * common floating point types. However, since the values stored by the
    -         * algorithms are linear combinations of g values (scaled sums), they can be
    -         * rescaled relative to a new landmark. That is, by the analysis of exponential
    -         * decay in Section III-A, the choice of L does not affect the final result. We
    -         * can therefore multiply each value based on L by a factor of exp(−α(L′ − L)),
    -         * and obtain the correct value as if we had instead computed relative to a new
    -         * landmark L′ (and then use this new L′ at query time). This can be done with
    -         * a linear pass over whatever data structure is being used.&quot;
    -         */
    -        State rescale(long newTick) {
    -<span class="nc" id="L113">            long durationNanos = newTick - startTick;</span>
    -<span class="nc" id="L114">            double scalingFactor = Math.exp(-alphaNanos * durationNanos);</span>
    -<span class="nc" id="L115">            int newCount = 0;</span>
    -<span class="nc" id="L116">            ConcurrentSkipListMap&lt;Double, WeightedSample&gt; newValues = new ConcurrentSkipListMap&lt;&gt;();</span>
    -<span class="nc bnc" id="L117" title="All 2 branches missed.">            if (Double.compare(scalingFactor, 0) != 0) {</span>
    -<span class="nc" id="L118">                RescalingConsumer consumer = new RescalingConsumer(scalingFactor, newValues);</span>
    -<span class="nc" id="L119">                values.forEach(consumer);</span>
    -                // make sure the counter is in sync with the number of stored samples.
    -<span class="nc" id="L121">                newCount = consumer.count;</span>
    -            }
    -            // It's possible that more values were added while the map was scanned, those with the
    -            // minimum priorities are removed.
    -<span class="nc bnc" id="L125" title="All 2 branches missed.">            while (newCount &gt; size) {</span>
    -<span class="nc" id="L126">                Objects.requireNonNull(newValues.pollFirstEntry(), &quot;Expected an entry&quot;);</span>
    -<span class="nc" id="L127">                newCount--;</span>
    -            }
    -<span class="nc" id="L129">            return new State(alphaNanos, size, newTick, newCount, newValues);</span>
    -        }
    -
    -        private double weight(long durationNanos) {
    -<span class="nc" id="L133">            return Math.exp(alphaNanos * durationNanos);</span>
    -        }
    -    }
    -
    -    private static final class RescalingConsumer implements BiConsumer&lt;Double, WeightedSample&gt; {
    -        private final double scalingFactor;
    -        private final ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values;
    -        private int count;
    -
    -<span class="nc" id="L142">        RescalingConsumer(double scalingFactor, ConcurrentSkipListMap&lt;Double, WeightedSample&gt; values) {</span>
    -<span class="nc" id="L143">            this.scalingFactor = scalingFactor;</span>
    -<span class="nc" id="L144">            this.values = values;</span>
    -<span class="nc" id="L145">        }</span>
    -
    -        @Override
    -        public void accept(Double priority, WeightedSample sample) {
    -<span class="nc" id="L149">            double newWeight = sample.weight * scalingFactor;</span>
    -<span class="nc bnc" id="L150" title="All 2 branches missed.">            if (Double.compare(newWeight, 0) == 0) {</span>
    -<span class="nc" id="L151">                return;</span>
    -            }
    -<span class="nc" id="L153">            WeightedSample newSample = new WeightedSample(sample.value, newWeight);</span>
    -<span class="nc bnc" id="L154" title="All 2 branches missed.">            if (values.put(priority * scalingFactor, newSample) == null) {</span>
    -<span class="nc" id="L155">                count++;</span>
    -            }
    -<span class="nc" id="L157">        }</span>
    -    }
    -
    -<span class="nc" id="L160">    private LockFreeExponentiallyDecayingReservoir(int size, double alpha, Duration rescaleThreshold, Clock clock) {</span>
    -        // Scale alpha to nanoseconds
    -<span class="nc" id="L162">        double alphaNanos = alpha * SECONDS_PER_NANO;</span>
    -<span class="nc" id="L163">        this.size = size;</span>
    -<span class="nc" id="L164">        this.clock = clock;</span>
    -<span class="nc" id="L165">        this.rescaleThresholdNanos = rescaleThreshold.toNanos();</span>
    -<span class="nc" id="L166">        this.state = new State(alphaNanos, size, clock.getTick(), 0, new ConcurrentSkipListMap&lt;&gt;());</span>
    -<span class="nc" id="L167">    }</span>
    -
    -    @Override
    -    public int size() {
    -<span class="nc" id="L171">        return Math.min(size, state.count);</span>
    -    }
    -
    -    @Override
    -    public void update(long value) {
    -<span class="nc" id="L176">        long now = clock.getTick();</span>
    -<span class="nc" id="L177">        rescaleIfNeeded(now).update(value, now);</span>
    -<span class="nc" id="L178">    }</span>
    -
    -    private State rescaleIfNeeded(long currentTick) {
    -        // This method is optimized for size so the check may be quickly inlined.
    -        // Rescaling occurs substantially less frequently than the check itself.
    -<span class="nc" id="L183">        State stateSnapshot = this.state;</span>
    -<span class="nc bnc" id="L184" title="All 2 branches missed.">        if (currentTick - stateSnapshot.startTick &gt;= rescaleThresholdNanos) {</span>
    -<span class="nc" id="L185">            return doRescale(currentTick, stateSnapshot);</span>
    -        }
    -<span class="nc" id="L187">        return stateSnapshot;</span>
    -    }
    -
    -    private State doRescale(long currentTick, State stateSnapshot) {
    -<span class="nc" id="L191">        State newState = stateSnapshot.rescale(currentTick);</span>
    -<span class="nc bnc" id="L192" title="All 2 branches missed.">        if (stateUpdater.compareAndSet(this, stateSnapshot, newState)) {</span>
    -            // newState successfully installed
    -<span class="nc" id="L194">            return newState;</span>
    -        }
    -        // Otherwise another thread has won the race and we can return the result of a volatile read.
    -        // It's possible this has taken so long that another update is required, however that's unlikely
    -        // and no worse than the standard race between a rescale and update.
    -<span class="nc" id="L199">        return this.state;</span>
    -    }
    -
    -    @Override
    -    public Snapshot getSnapshot() {
    -<span class="nc" id="L204">        State stateSnapshot = rescaleIfNeeded(clock.getTick());</span>
    -<span class="nc" id="L205">        return new WeightedSnapshot(stateSnapshot.values.values());</span>
    -    }
    -
    -    public static Builder builder() {
    -<span class="nc" id="L209">        return new Builder();</span>
    -    }
    -
    -    /**
    -     * By default this uses a size of 1028 elements, which offers a 99.9%
    -     * confidence level with a 5% margin of error assuming a normal distribution, and an alpha
    -     * factor of 0.015, which heavily biases the reservoir to the past 5 minutes of measurements.
    -     */
    -    public static final class Builder {
    -        private static final int DEFAULT_SIZE = 1028;
    -        private static final double DEFAULT_ALPHA = 0.015D;
    -<span class="nc" id="L220">        private static final Duration DEFAULT_RESCALE_THRESHOLD = Duration.ofHours(1);</span>
    -
    -<span class="nc" id="L222">        private int size = DEFAULT_SIZE;</span>
    -<span class="nc" id="L223">        private double alpha = DEFAULT_ALPHA;</span>
    -<span class="nc" id="L224">        private Duration rescaleThreshold = DEFAULT_RESCALE_THRESHOLD;</span>
    -<span class="nc" id="L225">        private Clock clock = Clock.defaultClock();</span>
    -
    -<span class="nc" id="L227">        private Builder() {}</span>
    -
    -        /**
    -         * Maximum number of samples to keep in the reservoir. Once this number is reached older samples are
    -         * replaced (based on weight, with some amount of random jitter).
    -         */
    -        public Builder size(int value) {
    -<span class="nc bnc" id="L234" title="All 2 branches missed.">            if (value &lt;= 0) {</span>
    -<span class="nc" id="L235">                throw new IllegalArgumentException(</span>
    -                        &quot;LockFreeExponentiallyDecayingReservoir size must be positive: &quot; + value);
    -            }
    -<span class="nc" id="L238">            this.size = value;</span>
    -<span class="nc" id="L239">            return this;</span>
    -        }
    -
    -        /**
    -         * Alpha is the exponential decay factor. Higher values bias results more heavily toward newer values.
    -         */
    -        public Builder alpha(double value) {
    -<span class="nc" id="L246">            this.alpha = value;</span>
    -<span class="nc" id="L247">            return this;</span>
    -        }
    -
    -        /**
    -         * Interval at which this reservoir is rescaled.
    -         */
    -        public Builder rescaleThreshold(Duration value) {
    -<span class="nc" id="L254">            this.rescaleThreshold = Objects.requireNonNull(value, &quot;rescaleThreshold is required&quot;);</span>
    -<span class="nc" id="L255">            return this;</span>
    -        }
    -
    -        /**
    -         * Clock instance used for decay.
    -         */
    -        public Builder clock(Clock value) {
    -<span class="nc" id="L262">            this.clock = Objects.requireNonNull(value, &quot;clock is required&quot;);</span>
    -<span class="nc" id="L263">            return this;</span>
    -        }
    -
    -        public Reservoir build() {
    -<span class="nc" id="L267">            return new LockFreeExponentiallyDecayingReservoir(size, alpha, rescaleThreshold, clock);</span>
    -        }
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ManualClock.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ManualClock.html
    deleted file mode 100644
    index aa5617f3c4..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ManualClock.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ManualClock</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ManualClock</span></div><h1>ManualClock</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">58 of 58</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">8</td><td class="ctr2">8</td><td class="ctr1">16</td><td class="ctr2">16</td><td class="ctr1">8</td><td class="ctr2">8</td></tr></tfoot><tbody><tr><td id="a7"><a href="ManualClock.java.html#L9" class="el_method">ManualClock(long)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">4</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="ManualClock.java.html#L23" class="el_method">addSeconds(long)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="ManualClock.java.html#L27" class="el_method">addMillis(long)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="ManualClock.java.html#L31" class="el_method">addHours(long)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">2</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a5"><a href="ManualClock.java.html#L41" class="el_method">getTime()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="106" height="10" title="8" alt="8"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a2"><a href="ManualClock.java.html#L19" class="el_method">addNanos(long)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="93" height="10" title="7" alt="7"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a6"><a href="ManualClock.java.html#L15" class="el_method">ManualClock()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="53" height="10" title="4" alt="4"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i5">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a4"><a href="ManualClock.java.html#L36" class="el_method">getTick()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="3" alt="3"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ManualClock.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ManualClock.java.html
    deleted file mode 100644
    index 6f603df613..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ManualClock.java.html
    +++ /dev/null
    @@ -1,45 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ManualClock.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">ManualClock.java</span></div><h1>ManualClock.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.util.concurrent.TimeUnit;
    -
    -public class ManualClock extends Clock {
    -    private final long initialTicksInNanos;
    -    long ticksInNanos;
    -
    -<span class="nc" id="L9">    public ManualClock(long initialTicksInNanos) {</span>
    -<span class="nc" id="L10">        this.initialTicksInNanos = initialTicksInNanos;</span>
    -<span class="nc" id="L11">        this.ticksInNanos = initialTicksInNanos;</span>
    -<span class="nc" id="L12">    }</span>
    -
    -    public ManualClock() {
    -<span class="nc" id="L15">        this(0L);</span>
    -<span class="nc" id="L16">    }</span>
    -
    -    public synchronized void addNanos(long nanos) {
    -<span class="nc" id="L19">        ticksInNanos += nanos;</span>
    -<span class="nc" id="L20">    }</span>
    -
    -    public synchronized void addSeconds(long seconds) {
    -<span class="nc" id="L23">        ticksInNanos += TimeUnit.SECONDS.toNanos(seconds);</span>
    -<span class="nc" id="L24">    }</span>
    -
    -    public synchronized void addMillis(long millis) {
    -<span class="nc" id="L27">        ticksInNanos += TimeUnit.MILLISECONDS.toNanos(millis);</span>
    -<span class="nc" id="L28">    }</span>
    -
    -    public synchronized void addHours(long hours) {
    -<span class="nc" id="L31">        ticksInNanos += TimeUnit.HOURS.toNanos(hours);</span>
    -<span class="nc" id="L32">    }</span>
    -
    -    @Override
    -    public synchronized long getTick() {
    -<span class="nc" id="L36">        return ticksInNanos;</span>
    -    }
    -
    -    @Override
    -    public synchronized long getTime() {
    -<span class="nc" id="L41">        return TimeUnit.NANOSECONDS.toMillis(ticksInNanos - initialTicksInNanos);</span>
    -    }
    -
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Meter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Meter.html
    deleted file mode 100644
    index 362580af5d..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Meter.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Meter</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Meter</span></div><h1>Meter</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">52 of 103</td><td class="ctr2">49%</td><td class="bar">2 of 2</td><td class="ctr2">0%</td><td class="ctr1">6</td><td class="ctr2">12</td><td class="ctr1">12</td><td class="ctr2">29</td><td class="ctr1">5</td><td class="ctr2">11</td></tr></tfoot><tbody><tr><td id="a3"><a href="Meter.java.html#L93" class="el_method">getMeanRate()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="26" alt="26"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="Meter.java.html#L81" class="el_method">getFifteenMinuteRate()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="32" height="10" title="7" alt="7"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="Meter.java.html#L87" class="el_method">getFiveMinuteRate()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="32" height="10" title="7" alt="7"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a4"><a href="Meter.java.html#L103" class="el_method">getOneMinuteRate()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="32" height="10" title="7" alt="7"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">2</td><td class="ctr2" id="i5">2</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a9"><a href="Meter.java.html#L25" class="el_method">Meter(MovingAverages)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="23" height="10" title="5" alt="5"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i6">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a10"><a href="Meter.java.html#L15" class="el_method">Meter(MovingAverages, Clock)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/greenbar.gif" width="87" height="10" title="19" alt="19"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">0</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">0</td><td class="ctr2" id="i0">6</td><td class="ctr1" id="j5">0</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a6"><a href="Meter.java.html#L69" class="el_method">mark(long)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/greenbar.gif" width="55" height="10" title="12" alt="12"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">0</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">0</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j6">0</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a8"><a href="Meter.java.html#L41" class="el_method">Meter(Clock)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/greenbar.gif" width="36" height="10" title="8" alt="8"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">0</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">0</td><td class="ctr2" id="i7">2</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a7"><a href="Meter.java.html#L32" class="el_method">Meter()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="18" height="10" title="4" alt="4"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i8">2</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a5"><a href="Meter.java.html#L60" class="el_method">mark()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/greenbar.gif" width="18" height="10" title="4" alt="4"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">0</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">0</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a0"><a href="Meter.java.html#L76" class="el_method">getCount()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="18" height="10" title="4" alt="4"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i10">1</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k10">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Meter.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Meter.java.html
    deleted file mode 100644
    index 90542d674d..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Meter.java.html
    +++ /dev/null
    @@ -1,107 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Meter.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">Meter.java</span></div><h1>Meter.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.util.concurrent.TimeUnit;
    -import java.util.concurrent.atomic.LongAdder;
    -
    -/**
    - * A meter metric which measures mean throughput and one-, five-, and fifteen-minute
    - * moving average throughputs.
    - *
    - * @see MovingAverages
    - */
    -public class Meter implements Metered {
    -
    -    private final MovingAverages movingAverages;
    -<span class="fc" id="L15">    private final LongAdder count = new LongAdder();</span>
    -    private final long startTime;
    -    private final Clock clock;
    -
    -    /**
    -     * Creates a new {@link Meter}.
    -     *
    -     * @param movingAverages the {@link MovingAverages} implementation to use
    -     */
    -    public Meter(MovingAverages movingAverages) {
    -<span class="nc" id="L25">        this(movingAverages, Clock.defaultClock());</span>
    -<span class="nc" id="L26">    }</span>
    -
    -    /**
    -     * Creates a new {@link Meter}.
    -     */
    -    public Meter() {
    -<span class="fc" id="L32">        this(Clock.defaultClock());</span>
    -<span class="fc" id="L33">    }</span>
    -
    -    /**
    -     * Creates a new {@link Meter}.
    -     *
    -     * @param clock the clock to use for the meter ticks
    -     */
    -    public Meter(Clock clock) {
    -<span class="fc" id="L41">        this(new ExponentialMovingAverages(clock), clock);</span>
    -<span class="fc" id="L42">    }</span>
    -
    -    /**
    -     * Creates a new {@link Meter}.
    -     *
    -     * @param movingAverages the {@link MovingAverages} implementation to use
    -     * @param clock          the clock to use for the meter ticks
    -     */
    -<span class="fc" id="L50">    public Meter(MovingAverages movingAverages, Clock clock) {</span>
    -<span class="fc" id="L51">        this.movingAverages = movingAverages;</span>
    -<span class="fc" id="L52">        this.clock = clock;</span>
    -<span class="fc" id="L53">        this.startTime = this.clock.getTick();</span>
    -<span class="fc" id="L54">    }</span>
    -
    -    /**
    -     * Mark the occurrence of an event.
    -     */
    -    public void mark() {
    -<span class="fc" id="L60">        mark(1);</span>
    -<span class="fc" id="L61">    }</span>
    -
    -    /**
    -     * Mark the occurrence of a given number of events.
    -     *
    -     * @param n the number of events
    -     */
    -    public void mark(long n) {
    -<span class="fc" id="L69">        movingAverages.tickIfNecessary();</span>
    -<span class="fc" id="L70">        count.add(n);</span>
    -<span class="fc" id="L71">        movingAverages.update(n);</span>
    -<span class="fc" id="L72">    }</span>
    -
    -    @Override
    -    public long getCount() {
    -<span class="fc" id="L76">        return count.sum();</span>
    -    }
    -
    -    @Override
    -    public double getFifteenMinuteRate() {
    -<span class="nc" id="L81">        movingAverages.tickIfNecessary();</span>
    -<span class="nc" id="L82">        return movingAverages.getM15Rate();</span>
    -    }
    -
    -    @Override
    -    public double getFiveMinuteRate() {
    -<span class="nc" id="L87">        movingAverages.tickIfNecessary();</span>
    -<span class="nc" id="L88">        return movingAverages.getM5Rate();</span>
    -    }
    -
    -    @Override
    -    public double getMeanRate() {
    -<span class="nc bnc" id="L93" title="All 2 branches missed.">        if (getCount() == 0) {</span>
    -<span class="nc" id="L94">            return 0.0;</span>
    -        } else {
    -<span class="nc" id="L96">            final double elapsed = clock.getTick() - startTime;</span>
    -<span class="nc" id="L97">            return getCount() / elapsed * TimeUnit.SECONDS.toNanos(1);</span>
    -        }
    -    }
    -
    -    @Override
    -    public double getOneMinuteRate() {
    -<span class="nc" id="L103">        movingAverages.tickIfNecessary();</span>
    -<span class="nc" id="L104">        return movingAverages.getM1Rate();</span>
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MeterApproximationTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MeterApproximationTest.html
    deleted file mode 100644
    index a45f806492..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MeterApproximationTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MeterApproximationTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MeterApproximationTest</span></div><h1>MeterApproximationTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">168 of 168</td><td class="ctr2">0%</td><td class="bar">2 of 2</td><td class="ctr2">0%</td><td class="ctr1">7</td><td class="ctr2">7</td><td class="ctr1">27</td><td class="ctr2">27</td><td class="ctr1">6</td><td class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a4"><a href="MeterApproximationTest.java.html#L20" class="el_method">ratesPerMinute()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="46" alt="46"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h4">3</td><td class="ctr2" id="i4">3</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a5"><a href="MeterApproximationTest.java.html#L66" class="el_method">simulateMetronome(long, TimeUnit, long, TimeUnit)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="106" height="10" title="41" alt="41"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h0">9</td><td class="ctr2" id="i0">9</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="MeterApproximationTest.java.html#L34" class="el_method">controlMeter1MinuteMeanApproximation()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="65" height="10" title="25" alt="25"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a href="MeterApproximationTest.java.html#L44" class="el_method">controlMeter5MinuteMeanApproximation()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="65" height="10" title="25" alt="25"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a0"><a href="MeterApproximationTest.java.html#L54" class="el_method">controlMeter15MinuteMeanApproximation()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="65" height="10" title="25" alt="25"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h3">4</td><td class="ctr2" id="i3">4</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a3"><a href="MeterApproximationTest.java.html#L28" class="el_method">MeterApproximationTest(long)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="6" alt="6"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">3</td><td class="ctr2" id="i5">3</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MeterApproximationTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MeterApproximationTest.java.html
    deleted file mode 100644
    index 162bd46a3f..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MeterApproximationTest.java.html
    +++ /dev/null
    @@ -1,83 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MeterApproximationTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">MeterApproximationTest.java</span></div><h1>MeterApproximationTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -import org.junit.runners.Parameterized;
    -import org.junit.runners.Parameterized.Parameters;
    -import org.junit.runner.RunWith;
    -
    -import java.util.Arrays;
    -import java.util.Collection;
    -import java.util.concurrent.TimeUnit;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -import static org.assertj.core.api.Assertions.offset;
    -
    -@RunWith(value = Parameterized.class)
    -public class MeterApproximationTest {
    -
    -    @Parameters
    -    public static Collection&lt;Object[]&gt; ratesPerMinute() {
    -<span class="nc" id="L20">        Object[][] data = new Object[][]{</span>
    -<span class="nc" id="L21">                {15}, {60}, {600}, {6000}</span>
    -        };
    -<span class="nc" id="L23">        return Arrays.asList(data);</span>
    -    }
    -
    -    private final long ratePerMinute;
    -
    -<span class="nc" id="L28">    public MeterApproximationTest(long ratePerMinute) {</span>
    -<span class="nc" id="L29">        this.ratePerMinute = ratePerMinute;</span>
    -<span class="nc" id="L30">    }</span>
    -
    -    @Test
    -    public void controlMeter1MinuteMeanApproximation() {
    -<span class="nc" id="L34">        final Meter meter = simulateMetronome(</span>
    -                62934, TimeUnit.MILLISECONDS,
    -                3, TimeUnit.MINUTES);
    -
    -<span class="nc" id="L38">        assertThat(meter.getOneMinuteRate() * 60.0)</span>
    -<span class="nc" id="L39">                .isEqualTo(ratePerMinute, offset(0.1 * ratePerMinute));</span>
    -<span class="nc" id="L40">    }</span>
    -
    -    @Test
    -    public void controlMeter5MinuteMeanApproximation() {
    -<span class="nc" id="L44">        final Meter meter = simulateMetronome(</span>
    -                62934, TimeUnit.MILLISECONDS,
    -                13, TimeUnit.MINUTES);
    -
    -<span class="nc" id="L48">        assertThat(meter.getFiveMinuteRate() * 60.0)</span>
    -<span class="nc" id="L49">                .isEqualTo(ratePerMinute, offset(0.1 * ratePerMinute));</span>
    -<span class="nc" id="L50">    }</span>
    -
    -    @Test
    -    public void controlMeter15MinuteMeanApproximation() {
    -<span class="nc" id="L54">        final Meter meter = simulateMetronome(</span>
    -                62934, TimeUnit.MILLISECONDS,
    -                38, TimeUnit.MINUTES);
    -
    -<span class="nc" id="L58">        assertThat(meter.getFifteenMinuteRate() * 60.0)</span>
    -<span class="nc" id="L59">                .isEqualTo(ratePerMinute, offset(0.1 * ratePerMinute));</span>
    -<span class="nc" id="L60">    }</span>
    -
    -    private Meter simulateMetronome(
    -            long introDelay, TimeUnit introDelayUnit,
    -            long duration, TimeUnit durationUnit) {
    -
    -<span class="nc" id="L66">        final ManualClock clock = new ManualClock();</span>
    -<span class="nc" id="L67">        final Meter meter = new Meter(clock);</span>
    -
    -<span class="nc" id="L69">        clock.addNanos(introDelayUnit.toNanos(introDelay));</span>
    -
    -<span class="nc" id="L71">        final long endTick = clock.getTick() + durationUnit.toNanos(duration);</span>
    -<span class="nc" id="L72">        final long marksIntervalInNanos = TimeUnit.MINUTES.toNanos(1) / ratePerMinute;</span>
    -
    -<span class="nc bnc" id="L74" title="All 2 branches missed.">        while (clock.getTick() &lt;= endTick) {</span>
    -<span class="nc" id="L75">            clock.addNanos(marksIntervalInNanos);</span>
    -<span class="nc" id="L76">            meter.mark();</span>
    -        }
    -
    -<span class="nc" id="L79">        return meter;</span>
    -    }
    -
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MeterTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MeterTest.html
    deleted file mode 100644
    index 54d69e33bf..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MeterTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MeterTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MeterTest</span></div><h1>MeterTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">129 of 129</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">27</td><td class="ctr2">27</td><td class="ctr1">4</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a0"><a href="MeterTest.java.html#L43" class="el_method">marksEventsAndUpdatesRatesAndCount()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="48" alt="48"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">11</td><td class="ctr2" id="i0">11</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="MeterTest.java.html#L25" class="el_method">startsOutWithNoRatesOrCount()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="117" height="10" title="47" alt="47"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">11</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="MeterTest.java.html#L19" class="el_method">setUp()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="19" alt="19"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h3">2</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a1"><a href="MeterTest.java.html#L13" class="el_method">MeterTest()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="37" height="10" title="15" alt="15"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h2">3</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MeterTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MeterTest.java.html
    deleted file mode 100644
    index e06c102c46..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MeterTest.java.html
    +++ /dev/null
    @@ -1,59 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MeterTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">MeterTest.java</span></div><h1>MeterTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Before;
    -import org.junit.Test;
    -
    -import java.util.concurrent.TimeUnit;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -import static org.assertj.core.api.Assertions.offset;
    -import static org.mockito.Mockito.mock;
    -import static org.mockito.Mockito.when;
    -
    -<span class="nc" id="L13">public class MeterTest {</span>
    -<span class="nc" id="L14">    private final Clock clock = mock(Clock.class);</span>
    -<span class="nc" id="L15">    private final Meter meter = new Meter(clock);</span>
    -
    -    @Before
    -    public void setUp() throws Exception {
    -<span class="nc" id="L19">        when(clock.getTick()).thenReturn(0L, TimeUnit.SECONDS.toNanos(10));</span>
    -
    -<span class="nc" id="L21">    }</span>
    -
    -    @Test
    -    public void startsOutWithNoRatesOrCount() {
    -<span class="nc" id="L25">        assertThat(meter.getCount())</span>
    -<span class="nc" id="L26">                .isZero();</span>
    -
    -<span class="nc" id="L28">        assertThat(meter.getMeanRate())</span>
    -<span class="nc" id="L29">                .isEqualTo(0.0, offset(0.001));</span>
    -
    -<span class="nc" id="L31">        assertThat(meter.getOneMinuteRate())</span>
    -<span class="nc" id="L32">                .isEqualTo(0.0, offset(0.001));</span>
    -
    -<span class="nc" id="L34">        assertThat(meter.getFiveMinuteRate())</span>
    -<span class="nc" id="L35">                .isEqualTo(0.0, offset(0.001));</span>
    -
    -<span class="nc" id="L37">        assertThat(meter.getFifteenMinuteRate())</span>
    -<span class="nc" id="L38">                .isEqualTo(0.0, offset(0.001));</span>
    -<span class="nc" id="L39">    }</span>
    -
    -    @Test
    -    public void marksEventsAndUpdatesRatesAndCount() {
    -<span class="nc" id="L43">        meter.mark();</span>
    -<span class="nc" id="L44">        meter.mark(2);</span>
    -
    -<span class="nc" id="L46">        assertThat(meter.getMeanRate())</span>
    -<span class="nc" id="L47">                .isEqualTo(0.3, offset(0.001));</span>
    -
    -<span class="nc" id="L49">        assertThat(meter.getOneMinuteRate())</span>
    -<span class="nc" id="L50">                .isEqualTo(0.1840, offset(0.001));</span>
    -
    -<span class="nc" id="L52">        assertThat(meter.getFiveMinuteRate())</span>
    -<span class="nc" id="L53">                .isEqualTo(0.1966, offset(0.001));</span>
    -
    -<span class="nc" id="L55">        assertThat(meter.getFifteenMinuteRate())</span>
    -<span class="nc" id="L56">                .isEqualTo(0.1988, offset(0.001));</span>
    -<span class="nc" id="L57">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricAttribute.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricAttribute.html
    deleted file mode 100644
    index 0bcb25ef8b..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricAttribute.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricAttribute</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricAttribute</span></div><h1>MetricAttribute</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">119 of 119</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">20</td><td class="ctr2">20</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="MetricAttribute.java.html#L6" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="108" alt="108"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">16</td><td class="ctr2" id="i0">16</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="MetricAttribute.java.html#L26" class="el_method">MetricAttribute(String, int, String)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="MetricAttribute.java.html#L31" class="el_method">getCode()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricAttribute.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricAttribute.java.html
    deleted file mode 100644
    index 5e95998459..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricAttribute.java.html
    +++ /dev/null
    @@ -1,34 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricAttribute.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">MetricAttribute.java</span></div><h1>MetricAttribute.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -/**
    - * Represents attributes of metrics which can be reported.
    - */
    -<span class="nc" id="L6">public enum MetricAttribute {</span>
    -
    -<span class="nc" id="L8">    MAX(&quot;max&quot;),</span>
    -<span class="nc" id="L9">    MEAN(&quot;mean&quot;),</span>
    -<span class="nc" id="L10">    MIN(&quot;min&quot;),</span>
    -<span class="nc" id="L11">    STDDEV(&quot;stddev&quot;),</span>
    -<span class="nc" id="L12">    P50(&quot;p50&quot;),</span>
    -<span class="nc" id="L13">    P75(&quot;p75&quot;),</span>
    -<span class="nc" id="L14">    P95(&quot;p95&quot;),</span>
    -<span class="nc" id="L15">    P98(&quot;p98&quot;),</span>
    -<span class="nc" id="L16">    P99(&quot;p99&quot;),</span>
    -<span class="nc" id="L17">    P999(&quot;p999&quot;),</span>
    -<span class="nc" id="L18">    COUNT(&quot;count&quot;),</span>
    -<span class="nc" id="L19">    M1_RATE(&quot;m1_rate&quot;),</span>
    -<span class="nc" id="L20">    M5_RATE(&quot;m5_rate&quot;),</span>
    -<span class="nc" id="L21">    M15_RATE(&quot;m15_rate&quot;),</span>
    -<span class="nc" id="L22">    MEAN_RATE(&quot;mean_rate&quot;);</span>
    -
    -    private final String code;
    -
    -<span class="nc" id="L26">    MetricAttribute(String code) {</span>
    -<span class="nc" id="L27">        this.code = code;</span>
    -<span class="nc" id="L28">    }</span>
    -
    -    public String getCode() {
    -<span class="nc" id="L31">        return code;</span>
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilter.html
    deleted file mode 100644
    index 2687c3f695..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilter.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricFilter</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricFilter</span></div><h1>MetricFilter</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">26 of 26</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">8</td><td class="ctr2">8</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">8</td><td class="ctr2">8</td></tr></tfoot><tbody><tr><td id="a2"><a href="MetricFilter.java.html#L21" class="el_method">lambda$contains$3(String, String, Metric)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="MetricFilter.java.html#L17" class="el_method">lambda$endsWith$2(String, String, Metric)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a4"><a href="MetricFilter.java.html#L13" class="el_method">lambda$startsWith$1(String, String, Metric)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a6"><a href="MetricFilter.java.html#L13" class="el_method">startsWith(String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="90" height="10" title="3" alt="3"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a1"><a href="MetricFilter.java.html#L17" class="el_method">endsWith(String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="90" height="10" title="3" alt="3"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a0"><a href="MetricFilter.java.html#L21" class="el_method">contains(String)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="90" height="10" title="3" alt="3"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a7"><a href="MetricFilter.java.html#L10" class="el_method">static {...}</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="90" height="10" title="3" alt="3"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a5"><a href="MetricFilter.java.html#L10" class="el_method">lambda$static$0(String, Metric)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="2" alt="2"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilter.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilter.java.html
    deleted file mode 100644
    index b006787402..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilter.java.html
    +++ /dev/null
    @@ -1,33 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricFilter.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">MetricFilter.java</span></div><h1>MetricFilter.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -/**
    - * A filter used to determine whether or not a metric should be reported, among other things.
    - */
    -public interface MetricFilter {
    -    /**
    -     * Matches all metrics, regardless of type or name.
    -     */
    -<span class="nc" id="L10">    MetricFilter ALL = (name, metric) -&gt; true;</span>
    -
    -    static MetricFilter startsWith(String prefix) {
    -<span class="nc" id="L13">        return (name, metric) -&gt; name.startsWith(prefix);</span>
    -    }
    -
    -    static MetricFilter endsWith(String suffix) {
    -<span class="nc" id="L17">        return (name, metric) -&gt; name.endsWith(suffix);</span>
    -    }
    -
    -    static MetricFilter contains(String substring) {
    -<span class="nc" id="L21">        return (name, metric) -&gt; name.contains(substring);</span>
    -    }
    -
    -    /**
    -     * Returns {@code true} if the metric matches the filter; {@code false} otherwise.
    -     *
    -     * @param name   the metric's name
    -     * @param metric the metric
    -     * @return {@code true} if the metric matches the filter
    -     */
    -    boolean matches(String name, Metric metric);
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilterTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilterTest.html
    deleted file mode 100644
    index 8033442110..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilterTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricFilterTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricFilterTest</span></div><h1>MetricFilterTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">76 of 76</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">5</td><td class="ctr2">5</td><td class="ctr1">19</td><td class="ctr2">19</td><td class="ctr1">5</td><td class="ctr2">5</td></tr></tfoot><tbody><tr><td id="a4"><a href="MetricFilterTest.java.html#L17" class="el_method">theStartsWithFilterMatches()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="21" alt="21"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">5</td><td class="ctr2" id="i0">5</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="MetricFilterTest.java.html#L25" class="el_method">theEndsWithFilterMatches()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="21" alt="21"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">5</td><td class="ctr2" id="i1">5</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="MetricFilterTest.java.html#L33" class="el_method">theContainsFilterMatches()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="21" alt="21"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">5</td><td class="ctr2" id="i2">5</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a1"><a href="MetricFilterTest.java.html#L11" class="el_method">theAllFilterMatchesAllMetrics()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="57" height="10" title="10" alt="10"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">3</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a0"><a href="MetricFilterTest.java.html#L8" class="el_method">MetricFilterTest()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="3" alt="3"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilterTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilterTest.java.html
    deleted file mode 100644
    index c977ab9b2f..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricFilterTest.java.html
    +++ /dev/null
    @@ -1,39 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricFilterTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">MetricFilterTest.java</span></div><h1>MetricFilterTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -import static org.mockito.Mockito.mock;
    -
    -<span class="nc" id="L8">public class MetricFilterTest {</span>
    -    @Test
    -    public void theAllFilterMatchesAllMetrics() {
    -<span class="nc" id="L11">        assertThat(MetricFilter.ALL.matches(&quot;&quot;, mock(Metric.class)))</span>
    -<span class="nc" id="L12">                .isTrue();</span>
    -<span class="nc" id="L13">    }</span>
    -
    -    @Test
    -    public void theStartsWithFilterMatches() {
    -<span class="nc" id="L17">        assertThat(MetricFilter.startsWith(&quot;foo&quot;).matches(&quot;foo.bar&quot;, mock(Metric.class)))</span>
    -<span class="nc" id="L18">                .isTrue();</span>
    -<span class="nc" id="L19">        assertThat(MetricFilter.startsWith(&quot;foo&quot;).matches(&quot;bar.foo&quot;, mock(Metric.class)))</span>
    -<span class="nc" id="L20">                .isFalse();</span>
    -<span class="nc" id="L21">    }</span>
    -
    -    @Test
    -    public void theEndsWithFilterMatches() {
    -<span class="nc" id="L25">        assertThat(MetricFilter.endsWith(&quot;foo&quot;).matches(&quot;foo.bar&quot;, mock(Metric.class)))</span>
    -<span class="nc" id="L26">                .isFalse();</span>
    -<span class="nc" id="L27">        assertThat(MetricFilter.endsWith(&quot;foo&quot;).matches(&quot;bar.foo&quot;, mock(Metric.class)))</span>
    -<span class="nc" id="L28">                .isTrue();</span>
    -<span class="nc" id="L29">    }</span>
    -
    -    @Test
    -    public void theContainsFilterMatches() {
    -<span class="nc" id="L33">        assertThat(MetricFilter.contains(&quot;foo&quot;).matches(&quot;bar.foo.bar&quot;, mock(Metric.class)))</span>
    -<span class="nc" id="L34">                .isTrue();</span>
    -<span class="nc" id="L35">        assertThat(MetricFilter.contains(&quot;foo&quot;).matches(&quot;bar.bar&quot;, mock(Metric.class)))</span>
    -<span class="nc" id="L36">                .isFalse();</span>
    -<span class="nc" id="L37">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$1.html
    deleted file mode 100644
    index f6776564a5..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$1.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistry.new MetricRegistryListener() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricRegistry.new MetricRegistryListener() {...}</span></div><h1>MetricRegistry.new MetricRegistryListener() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">154 of 154</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">11</td><td class="ctr2">11</td><td class="ctr1">21</td><td class="ctr2">21</td><td class="ctr1">11</td><td class="ctr2">11</td></tr></tfoot><tbody><tr><td id="a2"><a href="MetricRegistry.java.html#L113" class="el_method">onGaugeAdded(String, Gauge)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="15" alt="15"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="MetricRegistry.java.html#L123" class="el_method">onCounterAdded(String, Counter)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="15" alt="15"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a4"><a href="MetricRegistry.java.html#L133" class="el_method">onHistogramAdded(String, Histogram)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="15" alt="15"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a6"><a href="MetricRegistry.java.html#L143" class="el_method">onMeterAdded(String, Meter)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="15" alt="15"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">2</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a8"><a href="MetricRegistry.java.html#L153" class="el_method">onTimerAdded(String, Timer)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="15" alt="15"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a3"><a href="MetricRegistry.java.html#L118" class="el_method">onGaugeRemoved(String)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="112" height="10" title="14" alt="14"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i5">2</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="MetricRegistry.java.html#L128" class="el_method">onCounterRemoved(String)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="112" height="10" title="14" alt="14"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i6">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a5"><a href="MetricRegistry.java.html#L138" class="el_method">onHistogramRemoved(String)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="112" height="10" title="14" alt="14"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i7">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a7"><a href="MetricRegistry.java.html#L148" class="el_method">onMeterRemoved(String)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="112" height="10" title="14" alt="14"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i8">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a9"><a href="MetricRegistry.java.html#L158" class="el_method">onTimerRemoved(String)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="112" height="10" title="14" alt="14"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a10"><a href="MetricRegistry.java.html#L110" class="el_method">{...}</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="72" height="10" title="9" alt="9"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">1</td><td class="ctr2" id="i10">1</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$2.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$2.html
    deleted file mode 100644
    index 0fe80791ac..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$2.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistry.new MetricRegistry.MetricBuilder() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricRegistry.new MetricRegistry.MetricBuilder() {...}</span></div><h1>MetricRegistry.new MetricRegistry.MetricBuilder() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">18 of 18</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="MetricRegistry.java.html#L204" class="el_method">{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="MetricRegistry.java.html#L207" class="el_method">newMetric()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="66" height="10" title="5" alt="5"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="MetricRegistry.java.html#L212" class="el_method">isInstance(Metric)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="53" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$3.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$3.html
    deleted file mode 100644
    index 9f23c198b8..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$3.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistry.new MetricRegistry.MetricBuilder() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricRegistry.new MetricRegistry.MetricBuilder() {...}</span></div><h1>MetricRegistry.new MetricRegistry.MetricBuilder() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">18 of 18</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="MetricRegistry.java.html#L237" class="el_method">{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="MetricRegistry.java.html#L240" class="el_method">newMetric()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="66" height="10" title="5" alt="5"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="MetricRegistry.java.html#L245" class="el_method">isInstance(Metric)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="53" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$4.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$4.html
    deleted file mode 100644
    index f5bbc1d9a9..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$4.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistry.new MetricRegistry.MetricBuilder() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricRegistry.new MetricRegistry.MetricBuilder() {...}</span></div><h1>MetricRegistry.new MetricRegistry.MetricBuilder() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">18 of 18</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="MetricRegistry.java.html#L270" class="el_method">{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="MetricRegistry.java.html#L273" class="el_method">newMetric()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="66" height="10" title="5" alt="5"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="MetricRegistry.java.html#L278" class="el_method">isInstance(Metric)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="53" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$5.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$5.html
    deleted file mode 100644
    index e69bc0c351..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$5.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistry.new MetricRegistry.MetricBuilder() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricRegistry.new MetricRegistry.MetricBuilder() {...}</span></div><h1>MetricRegistry.new MetricRegistry.MetricBuilder() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">18 of 18</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="MetricRegistry.java.html#L303" class="el_method">{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="MetricRegistry.java.html#L306" class="el_method">newMetric()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="66" height="10" title="5" alt="5"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="MetricRegistry.java.html#L311" class="el_method">isInstance(Metric)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="53" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$6.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$6.html
    deleted file mode 100644
    index 19163737c1..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$6.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistry.new MetricRegistry.MetricBuilder() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricRegistry.new MetricRegistry.MetricBuilder() {...}</span></div><h1>MetricRegistry.new MetricRegistry.MetricBuilder() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">18 of 18</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="MetricRegistry.java.html#L339" class="el_method">{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="MetricRegistry.java.html#L342" class="el_method">newMetric()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="66" height="10" title="5" alt="5"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="MetricRegistry.java.html#L347" class="el_method">isInstance(Metric)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="53" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$1.html
    deleted file mode 100644
    index c5e9def9c2..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$1.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</span></div><h1>MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">8 of 11</td><td class="ctr2">27%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">3</td><td class="ctr1">2</td><td class="ctr2">3</td><td class="ctr1">2</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="MetricRegistry.java.html#L622" class="el_method">newMetric()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="MetricRegistry.java.html#L627" class="el_method">isInstance(Metric)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="MetricRegistry.java.html#L619" class="el_method">{...}</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="90" height="10" title="3" alt="3"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$2.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$2.html
    deleted file mode 100644
    index aa9ee367bd..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$2.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</span></div><h1>MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">11 of 14</td><td class="ctr2">21%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">3</td><td class="ctr1">2</td><td class="ctr2">3</td><td class="ctr1">2</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="MetricRegistry.java.html#L634" class="el_method">newMetric()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="7" alt="7"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="MetricRegistry.java.html#L639" class="el_method">isInstance(Metric)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="MetricRegistry.java.html#L631" class="el_method">{...}</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="51" height="10" title="3" alt="3"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$3.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$3.html
    deleted file mode 100644
    index 533e0917a8..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$3.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</span></div><h1>MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 11</td><td class="ctr2">100%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">3</td><td class="ctr1">0</td><td class="ctr2">3</td><td class="ctr1">0</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="MetricRegistry.java.html#L646" class="el_method">newMetric()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="MetricRegistry.java.html#L651" class="el_method">isInstance(Metric)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">0</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">0</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">0</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="MetricRegistry.java.html#L643" class="el_method">{...}</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="90" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$4.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$4.html
    deleted file mode 100644
    index 9fb86cc37e..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$4.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</span></div><h1>MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">8 of 11</td><td class="ctr2">27%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">3</td><td class="ctr1">2</td><td class="ctr2">3</td><td class="ctr1">2</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="MetricRegistry.java.html#L658" class="el_method">newMetric()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="MetricRegistry.java.html#L663" class="el_method">isInstance(Metric)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="MetricRegistry.java.html#L655" class="el_method">{...}</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="90" height="10" title="3" alt="3"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$5.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$5.html
    deleted file mode 100644
    index 77c5cb621a..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder$5.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</span></div><h1>MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">8 of 11</td><td class="ctr2">27%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">3</td><td class="ctr1">2</td><td class="ctr2">3</td><td class="ctr1">2</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="MetricRegistry.java.html#L671" class="el_method">newMetric()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="MetricRegistry.java.html#L676" class="el_method">isInstance(Metric)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="MetricRegistry.java.html#L668" class="el_method">{...}</a></td><td class="bar" id="b2"><img src="../jacoco-resources/greenbar.gif" width="90" height="10" title="3" alt="3"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">0</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">0</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">0</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder.html
    deleted file mode 100644
    index 5477b639b3..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry$MetricBuilder.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistry.MetricBuilder</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricRegistry.MetricBuilder</span></div><h1>MetricRegistry.MetricBuilder</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">0 of 21</td><td class="ctr2">100%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">0</td><td class="ctr2">1</td><td class="ctr1">0</td><td class="ctr2">5</td><td class="ctr1">0</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="MetricRegistry.java.html#L619" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/greenbar.gif" width="120" height="10" title="21" alt="21"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">0</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">0</td><td class="ctr2" id="i0">5</td><td class="ctr1" id="j0">0</td><td class="ctr2" id="k0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry.html
    deleted file mode 100644
    index 85fee663ac..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistry</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricRegistry</span></div><h1>MetricRegistry</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">513 of 640</td><td class="ctr2">19%</td><td class="bar">51 of 66</td><td class="ctr2">22%</td><td class="ctr1">62</td><td class="ctr2">74</td><td class="ctr1">95</td><td class="ctr2">127</td><td class="ctr1">32</td><td class="ctr2">41</td></tr></tfoot><tbody><tr><td id="a28"><a href="MetricRegistry.java.html#L551" class="el_method">notifyListenerOfAddedMetric(MetricRegistryListener, Metric, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="114" height="10" title="59" alt="59"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="10" alt="10"/></td><td class="ctr2" id="e5">0%</td><td class="ctr1" id="f0">6</td><td class="ctr2" id="g0">6</td><td class="ctr1" id="h0">12</td><td class="ctr2" id="i1">12</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a34"><a href="MetricRegistry.java.html#L596" class="el_method">registerAll(String, MetricSet)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="96" height="10" title="50" alt="50"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="4" alt="4"/></td><td class="ctr2" id="e6">0%</td><td class="ctr1" id="f4">3</td><td class="ctr2" id="g6">3</td><td class="ctr1" id="h3">6</td><td class="ctr2" id="i5">6</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a29"><a href="MetricRegistry.java.html#L573" class="el_method">notifyListenerOfRemovedMetric(String, Metric, MetricRegistryListener)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="94" height="10" title="49" alt="49"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="10" alt="10"/></td><td class="ctr2" id="e7">0%</td><td class="ctr1" id="f1">6</td><td class="ctr2" id="g1">6</td><td class="ctr1" id="h1">12</td><td class="ctr2" id="i2">12</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a16"><a href="MetricRegistry.java.html#L534" class="el_method">getMetrics(Class, MetricFilter)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="83" height="10" title="43" alt="43"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="72" height="10" title="6" alt="6"/></td><td class="ctr2" id="e8">0%</td><td class="ctr1" id="f2">4</td><td class="ctr2" id="g3">4</td><td class="ctr1" id="h2">7</td><td class="ctr2" id="i4">7</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a32"><a href="MetricRegistry.java.html#L103" class="el_method">register(String, Metric)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="73" height="10" title="38" alt="38"/><img src="../jacoco-resources/greenbar.gif" width="46" height="10" title="24" alt="24"/></td><td class="ctr2" id="c8">38%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="4" alt="4"/><img src="../jacoco-resources/greenbar.gif" width="48" height="10" title="4" alt="4"/></td><td class="ctr2" id="e2">50%</td><td class="ctr1" id="f3">4</td><td class="ctr2" id="g2">5</td><td class="ctr1" id="h4">6</td><td class="ctr2" id="i0">13</td><td class="ctr1" id="j32">0</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a38"><a href="MetricRegistry.java.html#L374" class="el_method">removeMatching(MetricFilter)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="56" height="10" title="29" alt="29"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="4" alt="4"/></td><td class="ctr2" id="e9">0%</td><td class="ctr1" id="f5">3</td><td class="ctr2" id="g7">3</td><td class="ctr1" id="h5">5</td><td class="ctr2" id="i7">5</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a0"><a href="MetricRegistry.java.html#L390" class="el_method">addListener(MetricRegistryListener)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="54" height="10" title="28" alt="28"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d8"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="2" alt="2"/></td><td class="ctr2" id="e10">0%</td><td class="ctr1" id="f6">2</td><td class="ctr2" id="g9">2</td><td class="ctr1" id="h6">5</td><td class="ctr2" id="i8">5</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a18"><a href="MetricRegistry.java.html#L516" class="el_method">getOrAdd(String, MetricRegistry.MetricBuilder)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="25" alt="25"/><img src="../jacoco-resources/greenbar.gif" width="38" height="10" title="20" alt="20"/></td><td class="ctr2" id="c6">44%</td><td class="bar" id="d6"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="3" alt="3"/><img src="../jacoco-resources/greenbar.gif" width="36" height="10" title="3" alt="3"/></td><td class="ctr2" id="e3">50%</td><td class="ctr1" id="f7">2</td><td class="ctr2" id="g4">4</td><td class="ctr1" id="h7">5</td><td class="ctr2" id="i3">10</td><td class="ctr1" id="j33">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a31"><a href="MetricRegistry.java.html#L567" class="el_method">onMetricRemoved(String, Metric)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="18" alt="18"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d9"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="2" alt="2"/></td><td class="ctr2" id="e11">0%</td><td class="ctr1" id="f8">2</td><td class="ctr2" id="g10">2</td><td class="ctr1" id="h9">4</td><td class="ctr2" id="i11">4</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a36"><a href="MetricRegistry.java.html#L360" class="el_method">remove(String)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="16" alt="16"/></td><td class="ctr2" id="c16">0%</td><td class="bar" id="d10"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="2" alt="2"/></td><td class="ctr2" id="e12">0%</td><td class="ctr1" id="f9">2</td><td class="ctr2" id="g11">2</td><td class="ctr1" id="h8">5</td><td class="ctr2" id="i9">5</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a30"><a href="MetricRegistry.java.html#L545" class="el_method">onMetricAdded(String, Metric)</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="10" alt="10"/><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="8" alt="8"/></td><td class="ctr2" id="c7">44%</td><td class="bar" id="d12"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="12" height="10" title="1" alt="1"/></td><td class="ctr2" id="e4">50%</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g12">2</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i12">4</td><td class="ctr1" id="j34">0</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a4"><a href="MetricRegistry.java.html#L204" class="el_method">counter(String, MetricRegistry.MetricSupplier)</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="10" alt="10"/></td><td class="ctr2" id="c17">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h13">1</td><td class="ctr2" id="i16">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a22"><a href="MetricRegistry.java.html#L237" class="el_method">histogram(String, MetricRegistry.MetricSupplier)</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="10" alt="10"/></td><td class="ctr2" id="c18">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h14">1</td><td class="ctr2" id="i17">1</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a24"><a href="MetricRegistry.java.html#L270" class="el_method">meter(String, MetricRegistry.MetricSupplier)</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="10" alt="10"/></td><td class="ctr2" id="c19">0%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h15">1</td><td class="ctr2" id="i18">1</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a40"><a href="MetricRegistry.java.html#L303" class="el_method">timer(String, MetricRegistry.MetricSupplier)</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="10" alt="10"/></td><td class="ctr2" id="c20">0%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h16">1</td><td class="ctr2" id="i19">1</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a6"><a href="MetricRegistry.java.html#L339" class="el_method">gauge(String, MetricRegistry.MetricSupplier)</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="10" alt="10"/></td><td class="ctr2" id="c21">0%</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h17">1</td><td class="ctr2" id="i20">1</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a17"><a href="MetricRegistry.java.html#L412" class="el_method">getNames()</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="8" alt="8"/></td><td class="ctr2" id="c22">0%</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f17">1</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h18">1</td><td class="ctr2" id="i21">1</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a35"><a href="MetricRegistry.java.html#L88" class="el_method">registerGauge(String, Gauge)</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="6" alt="6"/></td><td class="ctr2" id="c23">0%</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f18">1</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h19">1</td><td class="ctr2" id="i22">1</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a3"><a href="MetricRegistry.java.html#L192" class="el_method">counter(String)</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="6" alt="6"/></td><td class="ctr2" id="c24">0%</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f19">1</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h20">1</td><td class="ctr2" id="i23">1</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a21"><a href="MetricRegistry.java.html#L225" class="el_method">histogram(String)</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="6" alt="6"/></td><td class="ctr2" id="c25">0%</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f20">1</td><td class="ctr2" id="g21">1</td><td class="ctr1" id="h21">1</td><td class="ctr2" id="i24">1</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a39"><a href="MetricRegistry.java.html#L291" class="el_method">timer(String)</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="6" alt="6"/></td><td class="ctr2" id="c26">0%</td><td class="bar" id="d22"/><td class="ctr2" id="e22">n/a</td><td class="ctr1" id="f21">1</td><td class="ctr2" id="g22">1</td><td class="ctr1" id="h22">1</td><td class="ctr2" id="i25">1</td><td class="ctr1" id="j17">1</td><td class="ctr2" id="k20">1</td></tr><tr><td id="a5"><a href="MetricRegistry.java.html#L326" class="el_method">gauge(String)</a></td><td class="bar" id="b21"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="6" alt="6"/></td><td class="ctr2" id="c27">0%</td><td class="bar" id="d23"/><td class="ctr2" id="e23">n/a</td><td class="ctr1" id="f22">1</td><td class="ctr2" id="g23">1</td><td class="ctr1" id="h23">1</td><td class="ctr2" id="i26">1</td><td class="ctr1" id="j18">1</td><td class="ctr2" id="k21">1</td></tr><tr><td id="a37"><a href="MetricRegistry.java.html#L403" class="el_method">removeListener(MetricRegistryListener)</a></td><td class="bar" id="b22"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="6" alt="6"/></td><td class="ctr2" id="c28">0%</td><td class="bar" id="d24"/><td class="ctr2" id="e24">n/a</td><td class="ctr1" id="f23">1</td><td class="ctr2" id="g24">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j19">1</td><td class="ctr2" id="k22">1</td></tr><tr><td id="a33"><a href="MetricRegistry.java.html#L181" class="el_method">registerAll(MetricSet)</a></td><td class="bar" id="b23"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c29">0%</td><td class="bar" id="d25"/><td class="ctr2" id="e25">n/a</td><td class="ctr1" id="f24">1</td><td class="ctr2" id="g25">1</td><td class="ctr1" id="h12">2</td><td class="ctr2" id="i15">2</td><td class="ctr1" id="j20">1</td><td class="ctr2" id="k23">1</td></tr><tr><td id="a10"><a href="MetricRegistry.java.html#L433" class="el_method">getGauges(MetricFilter)</a></td><td class="bar" id="b24"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c30">0%</td><td class="bar" id="d26"/><td class="ctr2" id="e26">n/a</td><td class="ctr1" id="f25">1</td><td class="ctr2" id="g26">1</td><td class="ctr1" id="h24">1</td><td class="ctr2" id="i27">1</td><td class="ctr1" id="j21">1</td><td class="ctr2" id="k24">1</td></tr><tr><td id="a8"><a href="MetricRegistry.java.html#L453" class="el_method">getCounters(MetricFilter)</a></td><td class="bar" id="b25"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c31">0%</td><td class="bar" id="d27"/><td class="ctr2" id="e27">n/a</td><td class="ctr1" id="f26">1</td><td class="ctr2" id="g27">1</td><td class="ctr1" id="h25">1</td><td class="ctr2" id="i28">1</td><td class="ctr1" id="j22">1</td><td class="ctr2" id="k25">1</td></tr><tr><td id="a12"><a href="MetricRegistry.java.html#L473" class="el_method">getHistograms(MetricFilter)</a></td><td class="bar" id="b26"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c32">0%</td><td class="bar" id="d28"/><td class="ctr2" id="e28">n/a</td><td class="ctr1" id="f27">1</td><td class="ctr2" id="g28">1</td><td class="ctr1" id="h26">1</td><td class="ctr2" id="i29">1</td><td class="ctr1" id="j23">1</td><td class="ctr2" id="k26">1</td></tr><tr><td id="a14"><a href="MetricRegistry.java.html#L492" class="el_method">getMeters(MetricFilter)</a></td><td class="bar" id="b27"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c33">0%</td><td class="bar" id="d29"/><td class="ctr2" id="e29">n/a</td><td class="ctr1" id="f28">1</td><td class="ctr2" id="g29">1</td><td class="ctr1" id="h27">1</td><td class="ctr2" id="i30">1</td><td class="ctr1" id="j24">1</td><td class="ctr2" id="k27">1</td></tr><tr><td id="a20"><a href="MetricRegistry.java.html#L511" class="el_method">getTimers(MetricFilter)</a></td><td class="bar" id="b28"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c34">0%</td><td class="bar" id="d30"/><td class="ctr2" id="e30">n/a</td><td class="ctr1" id="f29">1</td><td class="ctr2" id="g30">1</td><td class="ctr1" id="h28">1</td><td class="ctr2" id="i31">1</td><td class="ctr1" id="j25">1</td><td class="ctr2" id="k28">1</td></tr><tr><td id="a9"><a href="MetricRegistry.java.html#L422" class="el_method">getGauges()</a></td><td class="bar" id="b29"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="4" alt="4"/></td><td class="ctr2" id="c35">0%</td><td class="bar" id="d31"/><td class="ctr2" id="e31">n/a</td><td class="ctr1" id="f30">1</td><td class="ctr2" id="g31">1</td><td class="ctr1" id="h29">1</td><td class="ctr2" id="i32">1</td><td class="ctr1" id="j26">1</td><td class="ctr2" id="k29">1</td></tr><tr><td id="a7"><a href="MetricRegistry.java.html#L442" class="el_method">getCounters()</a></td><td class="bar" id="b30"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="4" alt="4"/></td><td class="ctr2" id="c36">0%</td><td class="bar" id="d32"/><td class="ctr2" id="e32">n/a</td><td class="ctr1" id="f31">1</td><td class="ctr2" id="g32">1</td><td class="ctr1" id="h30">1</td><td class="ctr2" id="i33">1</td><td class="ctr1" id="j27">1</td><td class="ctr2" id="k30">1</td></tr><tr><td id="a11"><a href="MetricRegistry.java.html#L462" class="el_method">getHistograms()</a></td><td class="bar" id="b31"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="4" alt="4"/></td><td class="ctr2" id="c37">0%</td><td class="bar" id="d33"/><td class="ctr2" id="e33">n/a</td><td class="ctr1" id="f32">1</td><td class="ctr2" id="g33">1</td><td class="ctr1" id="h31">1</td><td class="ctr2" id="i34">1</td><td class="ctr1" id="j28">1</td><td class="ctr2" id="k31">1</td></tr><tr><td id="a13"><a href="MetricRegistry.java.html#L482" class="el_method">getMeters()</a></td><td class="bar" id="b32"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="4" alt="4"/></td><td class="ctr2" id="c38">0%</td><td class="bar" id="d34"/><td class="ctr2" id="e34">n/a</td><td class="ctr1" id="f33">1</td><td class="ctr2" id="g34">1</td><td class="ctr1" id="h32">1</td><td class="ctr2" id="i35">1</td><td class="ctr1" id="j29">1</td><td class="ctr2" id="k32">1</td></tr><tr><td id="a19"><a href="MetricRegistry.java.html#L501" class="el_method">getTimers()</a></td><td class="bar" id="b33"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="4" alt="4"/></td><td class="ctr2" id="c39">0%</td><td class="bar" id="d35"/><td class="ctr2" id="e35">n/a</td><td class="ctr1" id="f34">1</td><td class="ctr2" id="g35">1</td><td class="ctr1" id="h33">1</td><td class="ctr2" id="i36">1</td><td class="ctr1" id="j30">1</td><td class="ctr2" id="k33">1</td></tr><tr><td id="a15"><a href="MetricRegistry.java.html#L607" class="el_method">getMetrics()</a></td><td class="bar" id="b34"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="4" alt="4"/></td><td class="ctr2" id="c40">0%</td><td class="bar" id="d36"/><td class="ctr2" id="e36">n/a</td><td class="ctr1" id="f35">1</td><td class="ctr2" id="g36">1</td><td class="ctr1" id="h34">1</td><td class="ctr2" id="i37">1</td><td class="ctr1" id="j31">1</td><td class="ctr2" id="k34">1</td></tr><tr><td id="a27"><a href="MetricRegistry.java.html#L26" class="el_method">name(String, String[])</a></td><td class="bar" id="b35"><img src="../jacoco-resources/greenbar.gif" width="60" height="10" title="31" alt="31"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d11"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="36" height="10" title="3" alt="3"/></td><td class="ctr2" id="e0">75%</td><td class="ctr1" id="f36">1</td><td class="ctr2" id="g8">3</td><td class="ctr1" id="h35">0</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j35">0</td><td class="ctr2" id="k35">1</td></tr><tr><td id="a1"><a href="MetricRegistry.java.html#L49" class="el_method">append(StringBuilder, String)</a></td><td class="bar" id="b36"><img src="../jacoco-resources/greenbar.gif" width="32" height="10" title="17" alt="17"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d7"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="48" height="10" title="4" alt="4"/></td><td class="ctr2" id="e1">66%</td><td class="ctr1" id="f10">2</td><td class="ctr2" id="g5">4</td><td class="ctr1" id="h36">0</td><td class="ctr2" id="i10">5</td><td class="ctr1" id="j36">0</td><td class="ctr2" id="k36">1</td></tr><tr><td id="a25"><a href="MetricRegistry.java.html#L63" class="el_method">MetricRegistry()</a></td><td class="bar" id="b37"><img src="../jacoco-resources/greenbar.gif" width="23" height="10" title="12" alt="12"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d37"/><td class="ctr2" id="e37">n/a</td><td class="ctr1" id="f37">0</td><td class="ctr2" id="g37">1</td><td class="ctr1" id="h37">0</td><td class="ctr2" id="i13">4</td><td class="ctr1" id="j37">0</td><td class="ctr2" id="k37">1</td></tr><tr><td id="a23"><a href="MetricRegistry.java.html#L258" class="el_method">meter(String)</a></td><td class="bar" id="b38"><img src="../jacoco-resources/greenbar.gif" width="11" height="10" title="6" alt="6"/></td><td class="ctr2" id="c3">100%</td><td class="bar" id="d38"/><td class="ctr2" id="e38">n/a</td><td class="ctr1" id="f38">0</td><td class="ctr2" id="g38">1</td><td class="ctr1" id="h38">0</td><td class="ctr2" id="i38">1</td><td class="ctr1" id="j38">0</td><td class="ctr2" id="k38">1</td></tr><tr><td id="a26"><a href="MetricRegistry.java.html#L45" class="el_method">name(Class, String[])</a></td><td class="bar" id="b39"><img src="../jacoco-resources/greenbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c4">100%</td><td class="bar" id="d39"/><td class="ctr2" id="e39">n/a</td><td class="ctr1" id="f39">0</td><td class="ctr2" id="g39">1</td><td class="ctr1" id="h39">0</td><td class="ctr2" id="i39">1</td><td class="ctr1" id="j39">0</td><td class="ctr2" id="k39">1</td></tr><tr><td id="a2"><a href="MetricRegistry.java.html#L76" class="el_method">buildMap()</a></td><td class="bar" id="b40"><img src="../jacoco-resources/greenbar.gif" width="7" height="10" title="4" alt="4"/></td><td class="ctr2" id="c5">100%</td><td class="bar" id="d40"/><td class="ctr2" id="e40">n/a</td><td class="ctr1" id="f40">0</td><td class="ctr2" id="g40">1</td><td class="ctr1" id="h40">0</td><td class="ctr2" id="i40">1</td><td class="ctr1" id="j40">0</td><td class="ctr2" id="k40">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry.java.html
    deleted file mode 100644
    index 1cf450a492..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistry.java.html
    +++ /dev/null
    @@ -1,685 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistry.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">MetricRegistry.java</span></div><h1>MetricRegistry.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.util.Collections;
    -import java.util.List;
    -import java.util.Map;
    -import java.util.SortedMap;
    -import java.util.SortedSet;
    -import java.util.TreeMap;
    -import java.util.TreeSet;
    -import java.util.concurrent.ConcurrentHashMap;
    -import java.util.concurrent.ConcurrentMap;
    -import java.util.concurrent.CopyOnWriteArrayList;
    -
    -/**
    - * A registry of metric instances.
    - */
    -public class MetricRegistry implements MetricSet {
    -    /**
    -     * Concatenates elements to form a dotted name, eliding any null values or empty strings.
    -     *
    -     * @param name  the first element of the name
    -     * @param names the remaining elements of the name
    -     * @return {@code name} and {@code names} concatenated by periods
    -     */
    -    public static String name(String name, String... names) {
    -<span class="fc" id="L26">        final StringBuilder builder = new StringBuilder();</span>
    -<span class="fc" id="L27">        append(builder, name);</span>
    -<span class="pc bpc" id="L28" title="1 of 2 branches missed.">        if (names != null) {</span>
    -<span class="fc bfc" id="L29" title="All 2 branches covered.">            for (String s : names) {</span>
    -<span class="fc" id="L30">                append(builder, s);</span>
    -            }
    -        }
    -<span class="fc" id="L33">        return builder.toString();</span>
    -    }
    -
    -    /**
    -     * Concatenates a class name and elements to form a dotted name, eliding any null values or
    -     * empty strings.
    -     *
    -     * @param klass the first element of the name
    -     * @param names the remaining elements of the name
    -     * @return {@code klass} and {@code names} concatenated by periods
    -     */
    -    public static String name(Class&lt;?&gt; klass, String... names) {
    -<span class="fc" id="L45">        return name(klass.getName(), names);</span>
    -    }
    -
    -    private static void append(StringBuilder builder, String part) {
    -<span class="pc bpc" id="L49" title="2 of 4 branches missed.">        if (part != null &amp;&amp; !part.isEmpty()) {</span>
    -<span class="fc bfc" id="L50" title="All 2 branches covered.">            if (builder.length() &gt; 0) {</span>
    -<span class="fc" id="L51">                builder.append('.');</span>
    -            }
    -<span class="fc" id="L53">            builder.append(part);</span>
    -        }
    -<span class="fc" id="L55">    }</span>
    -
    -    private final ConcurrentMap&lt;String, Metric&gt; metrics;
    -    private final List&lt;MetricRegistryListener&gt; listeners;
    -
    -    /**
    -     * Creates a new {@link MetricRegistry}.
    -     */
    -<span class="fc" id="L63">    public MetricRegistry() {</span>
    -<span class="fc" id="L64">        this.metrics = buildMap();</span>
    -<span class="fc" id="L65">        this.listeners = new CopyOnWriteArrayList&lt;&gt;();</span>
    -<span class="fc" id="L66">    }</span>
    -
    -    /**
    -     * Creates a new {@link ConcurrentMap} implementation for use inside the registry. Override this
    -     * to create a {@link MetricRegistry} with space- or time-bounded metric lifecycles, for
    -     * example.
    -     *
    -     * @return a new {@link ConcurrentMap}
    -     */
    -    protected ConcurrentMap&lt;String, Metric&gt; buildMap() {
    -<span class="fc" id="L76">        return new ConcurrentHashMap&lt;&gt;();</span>
    -    }
    -
    -    /**
    -     * Given a {@link Gauge}, registers it under the given name and returns it
    -     *
    -     * @param name the name of the gauge
    -     * @param &lt;T&gt;  the type of the gauge's value
    -     * @return the registered {@link Gauge}
    -     * @since 4.2.10
    -     */
    -    public &lt;T&gt; Gauge&lt;T&gt; registerGauge(String name, Gauge&lt;T&gt; metric) throws IllegalArgumentException {
    -<span class="nc" id="L88">        return register(name, metric);</span>
    -    }
    -
    -    /**
    -     * Given a {@link Metric}, registers it under the given name.
    -     *
    -     * @param name   the name of the metric
    -     * @param metric the metric
    -     * @param &lt;T&gt;    the type of the metric
    -     * @return {@code metric}
    -     * @throws IllegalArgumentException if the name is already registered or metric variable is null
    -     */
    -    @SuppressWarnings(&quot;unchecked&quot;)
    -    public &lt;T extends Metric&gt; T register(String name, T metric) throws IllegalArgumentException {
    -
    -<span class="pc bpc" id="L103" title="1 of 2 branches missed.">        if (metric == null) {</span>
    -<span class="nc" id="L104">            throw new NullPointerException(&quot;metric == null&quot;);</span>
    -        }
    -
    -<span class="pc bpc" id="L107" title="1 of 2 branches missed.">        if (metric instanceof MetricRegistry) {</span>
    -<span class="nc" id="L108">            final MetricRegistry childRegistry = (MetricRegistry) metric;</span>
    -<span class="nc" id="L109">            final String childName = name;</span>
    -<span class="nc" id="L110">            childRegistry.addListener(new MetricRegistryListener() {</span>
    -                @Override
    -                public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    -<span class="nc" id="L113">                    register(name(childName, name), gauge);</span>
    -<span class="nc" id="L114">                }</span>
    -
    -                @Override
    -                public void onGaugeRemoved(String name) {
    -<span class="nc" id="L118">                    remove(name(childName, name));</span>
    -<span class="nc" id="L119">                }</span>
    -
    -                @Override
    -                public void onCounterAdded(String name, Counter counter) {
    -<span class="nc" id="L123">                    register(name(childName, name), counter);</span>
    -<span class="nc" id="L124">                }</span>
    -
    -                @Override
    -                public void onCounterRemoved(String name) {
    -<span class="nc" id="L128">                    remove(name(childName, name));</span>
    -<span class="nc" id="L129">                }</span>
    -
    -                @Override
    -                public void onHistogramAdded(String name, Histogram histogram) {
    -<span class="nc" id="L133">                    register(name(childName, name), histogram);</span>
    -<span class="nc" id="L134">                }</span>
    -
    -                @Override
    -                public void onHistogramRemoved(String name) {
    -<span class="nc" id="L138">                    remove(name(childName, name));</span>
    -<span class="nc" id="L139">                }</span>
    -
    -                @Override
    -                public void onMeterAdded(String name, Meter meter) {
    -<span class="nc" id="L143">                    register(name(childName, name), meter);</span>
    -<span class="nc" id="L144">                }</span>
    -
    -                @Override
    -                public void onMeterRemoved(String name) {
    -<span class="nc" id="L148">                    remove(name(childName, name));</span>
    -<span class="nc" id="L149">                }</span>
    -
    -                @Override
    -                public void onTimerAdded(String name, Timer timer) {
    -<span class="nc" id="L153">                    register(name(childName, name), timer);</span>
    -<span class="nc" id="L154">                }</span>
    -
    -                @Override
    -                public void onTimerRemoved(String name) {
    -<span class="nc" id="L158">                    remove(name(childName, name));</span>
    -<span class="nc" id="L159">                }</span>
    -            });
    -<span class="pc bpc" id="L161" title="1 of 2 branches missed.">        } else if (metric instanceof MetricSet) {</span>
    -<span class="nc" id="L162">            registerAll(name, (MetricSet) metric);</span>
    -        } else {
    -<span class="fc" id="L164">            final Metric existing = metrics.putIfAbsent(name, metric);</span>
    -<span class="pc bpc" id="L165" title="1 of 2 branches missed.">            if (existing == null) {</span>
    -<span class="fc" id="L166">                onMetricAdded(name, metric);</span>
    -            } else {
    -<span class="nc" id="L168">                throw new IllegalArgumentException(&quot;A metric named &quot; + name + &quot; already exists&quot;);</span>
    -            }
    -        }
    -<span class="fc" id="L171">        return metric;</span>
    -    }
    -
    -    /**
    -     * Given a metric set, registers them.
    -     *
    -     * @param metrics a set of metrics
    -     * @throws IllegalArgumentException if any of the names are already registered
    -     */
    -    public void registerAll(MetricSet metrics) throws IllegalArgumentException {
    -<span class="nc" id="L181">        registerAll(null, metrics);</span>
    -<span class="nc" id="L182">    }</span>
    -
    -    /**
    -     * Return the {@link Counter} registered under this name; or create and register
    -     * a new {@link Counter} if none is registered.
    -     *
    -     * @param name the name of the metric
    -     * @return a new or pre-existing {@link Counter}
    -     */
    -    public Counter counter(String name) {
    -<span class="nc" id="L192">        return getOrAdd(name, MetricBuilder.COUNTERS);</span>
    -    }
    -
    -    /**
    -     * Return the {@link Counter} registered under this name; or create and register
    -     * a new {@link Counter} using the provided MetricSupplier if none is registered.
    -     *
    -     * @param name     the name of the metric
    -     * @param supplier a MetricSupplier that can be used to manufacture a counter.
    -     * @return a new or pre-existing {@link Counter}
    -     */
    -    public Counter counter(String name, final MetricSupplier&lt;Counter&gt; supplier) {
    -<span class="nc" id="L204">        return getOrAdd(name, new MetricBuilder&lt;Counter&gt;() {</span>
    -            @Override
    -            public Counter newMetric() {
    -<span class="nc" id="L207">                return supplier.newMetric();</span>
    -            }
    -
    -            @Override
    -            public boolean isInstance(Metric metric) {
    -<span class="nc" id="L212">                return Counter.class.isInstance(metric);</span>
    -            }
    -        });
    -    }
    -
    -    /**
    -     * Return the {@link Histogram} registered under this name; or create and register
    -     * a new {@link Histogram} if none is registered.
    -     *
    -     * @param name the name of the metric
    -     * @return a new or pre-existing {@link Histogram}
    -     */
    -    public Histogram histogram(String name) {
    -<span class="nc" id="L225">        return getOrAdd(name, MetricBuilder.HISTOGRAMS);</span>
    -    }
    -
    -    /**
    -     * Return the {@link Histogram} registered under this name; or create and register
    -     * a new {@link Histogram} using the provided MetricSupplier if none is registered.
    -     *
    -     * @param name     the name of the metric
    -     * @param supplier a MetricSupplier that can be used to manufacture a histogram
    -     * @return a new or pre-existing {@link Histogram}
    -     */
    -    public Histogram histogram(String name, final MetricSupplier&lt;Histogram&gt; supplier) {
    -<span class="nc" id="L237">        return getOrAdd(name, new MetricBuilder&lt;Histogram&gt;() {</span>
    -            @Override
    -            public Histogram newMetric() {
    -<span class="nc" id="L240">                return supplier.newMetric();</span>
    -            }
    -
    -            @Override
    -            public boolean isInstance(Metric metric) {
    -<span class="nc" id="L245">                return Histogram.class.isInstance(metric);</span>
    -            }
    -        });
    -    }
    -
    -    /**
    -     * Return the {@link Meter} registered under this name; or create and register
    -     * a new {@link Meter} if none is registered.
    -     *
    -     * @param name the name of the metric
    -     * @return a new or pre-existing {@link Meter}
    -     */
    -    public Meter meter(String name) {
    -<span class="fc" id="L258">        return getOrAdd(name, MetricBuilder.METERS);</span>
    -    }
    -
    -    /**
    -     * Return the {@link Meter} registered under this name; or create and register
    -     * a new {@link Meter} using the provided MetricSupplier if none is registered.
    -     *
    -     * @param name     the name of the metric
    -     * @param supplier a MetricSupplier that can be used to manufacture a Meter
    -     * @return a new or pre-existing {@link Meter}
    -     */
    -    public Meter meter(String name, final MetricSupplier&lt;Meter&gt; supplier) {
    -<span class="nc" id="L270">        return getOrAdd(name, new MetricBuilder&lt;Meter&gt;() {</span>
    -            @Override
    -            public Meter newMetric() {
    -<span class="nc" id="L273">                return supplier.newMetric();</span>
    -            }
    -
    -            @Override
    -            public boolean isInstance(Metric metric) {
    -<span class="nc" id="L278">                return Meter.class.isInstance(metric);</span>
    -            }
    -        });
    -    }
    -
    -    /**
    -     * Return the {@link Timer} registered under this name; or create and register
    -     * a new {@link Timer} if none is registered.
    -     *
    -     * @param name the name of the metric
    -     * @return a new or pre-existing {@link Timer}
    -     */
    -    public Timer timer(String name) {
    -<span class="nc" id="L291">        return getOrAdd(name, MetricBuilder.TIMERS);</span>
    -    }
    -
    -    /**
    -     * Return the {@link Timer} registered under this name; or create and register
    -     * a new {@link Timer} using the provided MetricSupplier if none is registered.
    -     *
    -     * @param name     the name of the metric
    -     * @param supplier a MetricSupplier that can be used to manufacture a Timer
    -     * @return a new or pre-existing {@link Timer}
    -     */
    -    public Timer timer(String name, final MetricSupplier&lt;Timer&gt; supplier) {
    -<span class="nc" id="L303">        return getOrAdd(name, new MetricBuilder&lt;Timer&gt;() {</span>
    -            @Override
    -            public Timer newMetric() {
    -<span class="nc" id="L306">                return supplier.newMetric();</span>
    -            }
    -
    -            @Override
    -            public boolean isInstance(Metric metric) {
    -<span class="nc" id="L311">                return Timer.class.isInstance(metric);</span>
    -            }
    -        });
    -    }
    -
    -    /**
    -     * Return the {@link Gauge} registered under this name; or create and register
    -     * a new {@link SettableGauge} if none is registered.
    -     *
    -     * @param name the name of the metric
    -     * @return a pre-existing {@link Gauge} or a new {@link SettableGauge}
    -     * @since 4.2
    -     */
    -    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    -    public &lt;T extends Gauge&gt; T gauge(String name) {
    -<span class="nc" id="L326">        return (T) getOrAdd(name, MetricBuilder.GAUGES);</span>
    -    }
    -
    -    /**
    -     * Return the {@link Gauge} registered under this name; or create and register
    -     * a new {@link Gauge} using the provided MetricSupplier if none is registered.
    -     *
    -     * @param name     the name of the metric
    -     * @param supplier a MetricSupplier that can be used to manufacture a Gauge
    -     * @return a new or pre-existing {@link Gauge}
    -     */
    -    @SuppressWarnings(&quot;rawtypes&quot;)
    -    public &lt;T extends Gauge&gt; T gauge(String name, final MetricSupplier&lt;T&gt; supplier) {
    -<span class="nc" id="L339">        return getOrAdd(name, new MetricBuilder&lt;T&gt;() {</span>
    -            @Override
    -            public T newMetric() {
    -<span class="nc" id="L342">                return supplier.newMetric();</span>
    -            }
    -
    -            @Override
    -            public boolean isInstance(Metric metric) {
    -<span class="nc" id="L347">                return Gauge.class.isInstance(metric);</span>
    -            }
    -        });
    -    }
    -
    -
    -    /**
    -     * Removes the metric with the given name.
    -     *
    -     * @param name the name of the metric
    -     * @return whether or not the metric was removed
    -     */
    -    public boolean remove(String name) {
    -<span class="nc" id="L360">        final Metric metric = metrics.remove(name);</span>
    -<span class="nc bnc" id="L361" title="All 2 branches missed.">        if (metric != null) {</span>
    -<span class="nc" id="L362">            onMetricRemoved(name, metric);</span>
    -<span class="nc" id="L363">            return true;</span>
    -        }
    -<span class="nc" id="L365">        return false;</span>
    -    }
    -
    -    /**
    -     * Removes all metrics which match the given filter.
    -     *
    -     * @param filter a filter
    -     */
    -    public void removeMatching(MetricFilter filter) {
    -<span class="nc bnc" id="L374" title="All 2 branches missed.">        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</span>
    -<span class="nc bnc" id="L375" title="All 2 branches missed.">            if (filter.matches(entry.getKey(), entry.getValue())) {</span>
    -<span class="nc" id="L376">                remove(entry.getKey());</span>
    -            }
    -<span class="nc" id="L378">        }</span>
    -<span class="nc" id="L379">    }</span>
    -
    -    /**
    -     * Adds a {@link MetricRegistryListener} to a collection of listeners that will be notified on
    -     * metric creation.  Listeners will be notified in the order in which they are added.
    -     * &lt;p&gt;
    -     * &lt;b&gt;N.B.:&lt;/b&gt; The listener will be notified of all existing metrics when it first registers.
    -     *
    -     * @param listener the listener that will be notified
    -     */
    -    public void addListener(MetricRegistryListener listener) {
    -<span class="nc" id="L390">        listeners.add(listener);</span>
    -
    -<span class="nc bnc" id="L392" title="All 2 branches missed.">        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</span>
    -<span class="nc" id="L393">            notifyListenerOfAddedMetric(listener, entry.getValue(), entry.getKey());</span>
    -<span class="nc" id="L394">        }</span>
    -<span class="nc" id="L395">    }</span>
    -
    -    /**
    -     * Removes a {@link MetricRegistryListener} from this registry's collection of listeners.
    -     *
    -     * @param listener the listener that will be removed
    -     */
    -    public void removeListener(MetricRegistryListener listener) {
    -<span class="nc" id="L403">        listeners.remove(listener);</span>
    -<span class="nc" id="L404">    }</span>
    -
    -    /**
    -     * Returns a set of the names of all the metrics in the registry.
    -     *
    -     * @return the names of all the metrics
    -     */
    -    public SortedSet&lt;String&gt; getNames() {
    -<span class="nc" id="L412">        return Collections.unmodifiableSortedSet(new TreeSet&lt;&gt;(metrics.keySet()));</span>
    -    }
    -
    -    /**
    -     * Returns a map of all the gauges in the registry and their names.
    -     *
    -     * @return all the gauges in the registry
    -     */
    -    @SuppressWarnings(&quot;rawtypes&quot;)
    -    public SortedMap&lt;String, Gauge&gt; getGauges() {
    -<span class="nc" id="L422">        return getGauges(MetricFilter.ALL);</span>
    -    }
    -
    -    /**
    -     * Returns a map of all the gauges in the registry and their names which match the given filter.
    -     *
    -     * @param filter the metric filter to match
    -     * @return all the gauges in the registry
    -     */
    -    @SuppressWarnings(&quot;rawtypes&quot;)
    -    public SortedMap&lt;String, Gauge&gt; getGauges(MetricFilter filter) {
    -<span class="nc" id="L433">        return getMetrics(Gauge.class, filter);</span>
    -    }
    -
    -    /**
    -     * Returns a map of all the counters in the registry and their names.
    -     *
    -     * @return all the counters in the registry
    -     */
    -    public SortedMap&lt;String, Counter&gt; getCounters() {
    -<span class="nc" id="L442">        return getCounters(MetricFilter.ALL);</span>
    -    }
    -
    -    /**
    -     * Returns a map of all the counters in the registry and their names which match the given
    -     * filter.
    -     *
    -     * @param filter the metric filter to match
    -     * @return all the counters in the registry
    -     */
    -    public SortedMap&lt;String, Counter&gt; getCounters(MetricFilter filter) {
    -<span class="nc" id="L453">        return getMetrics(Counter.class, filter);</span>
    -    }
    -
    -    /**
    -     * Returns a map of all the histograms in the registry and their names.
    -     *
    -     * @return all the histograms in the registry
    -     */
    -    public SortedMap&lt;String, Histogram&gt; getHistograms() {
    -<span class="nc" id="L462">        return getHistograms(MetricFilter.ALL);</span>
    -    }
    -
    -    /**
    -     * Returns a map of all the histograms in the registry and their names which match the given
    -     * filter.
    -     *
    -     * @param filter the metric filter to match
    -     * @return all the histograms in the registry
    -     */
    -    public SortedMap&lt;String, Histogram&gt; getHistograms(MetricFilter filter) {
    -<span class="nc" id="L473">        return getMetrics(Histogram.class, filter);</span>
    -    }
    -
    -    /**
    -     * Returns a map of all the meters in the registry and their names.
    -     *
    -     * @return all the meters in the registry
    -     */
    -    public SortedMap&lt;String, Meter&gt; getMeters() {
    -<span class="nc" id="L482">        return getMeters(MetricFilter.ALL);</span>
    -    }
    -
    -    /**
    -     * Returns a map of all the meters in the registry and their names which match the given filter.
    -     *
    -     * @param filter the metric filter to match
    -     * @return all the meters in the registry
    -     */
    -    public SortedMap&lt;String, Meter&gt; getMeters(MetricFilter filter) {
    -<span class="nc" id="L492">        return getMetrics(Meter.class, filter);</span>
    -    }
    -
    -    /**
    -     * Returns a map of all the timers in the registry and their names.
    -     *
    -     * @return all the timers in the registry
    -     */
    -    public SortedMap&lt;String, Timer&gt; getTimers() {
    -<span class="nc" id="L501">        return getTimers(MetricFilter.ALL);</span>
    -    }
    -
    -    /**
    -     * Returns a map of all the timers in the registry and their names which match the given filter.
    -     *
    -     * @param filter the metric filter to match
    -     * @return all the timers in the registry
    -     */
    -    public SortedMap&lt;String, Timer&gt; getTimers(MetricFilter filter) {
    -<span class="nc" id="L511">        return getMetrics(Timer.class, filter);</span>
    -    }
    -
    -    @SuppressWarnings(&quot;unchecked&quot;)
    -    private &lt;T extends Metric&gt; T getOrAdd(String name, MetricBuilder&lt;T&gt; builder) {
    -<span class="fc" id="L516">        final Metric metric = metrics.get(name);</span>
    -<span class="fc bfc" id="L517" title="All 2 branches covered.">        if (builder.isInstance(metric)) {</span>
    -<span class="fc" id="L518">            return (T) metric;</span>
    -<span class="pc bpc" id="L519" title="1 of 2 branches missed.">        } else if (metric == null) {</span>
    -            try {
    -<span class="fc" id="L521">                return register(name, builder.newMetric());</span>
    -<span class="nc" id="L522">            } catch (IllegalArgumentException e) {</span>
    -<span class="nc" id="L523">                final Metric added = metrics.get(name);</span>
    -<span class="nc bnc" id="L524" title="All 2 branches missed.">                if (builder.isInstance(added)) {</span>
    -<span class="nc" id="L525">                    return (T) added;</span>
    -                }
    -            }
    -        }
    -<span class="nc" id="L529">        throw new IllegalArgumentException(name + &quot; is already used for a different type of metric&quot;);</span>
    -    }
    -
    -    @SuppressWarnings(&quot;unchecked&quot;)
    -    private &lt;T extends Metric&gt; SortedMap&lt;String, T&gt; getMetrics(Class&lt;T&gt; klass, MetricFilter filter) {
    -<span class="nc" id="L534">        final TreeMap&lt;String, T&gt; timers = new TreeMap&lt;&gt;();</span>
    -<span class="nc bnc" id="L535" title="All 2 branches missed.">        for (Map.Entry&lt;String, Metric&gt; entry : metrics.entrySet()) {</span>
    -<span class="nc bnc" id="L536" title="All 4 branches missed.">            if (klass.isInstance(entry.getValue()) &amp;&amp; filter.matches(entry.getKey(),</span>
    -<span class="nc" id="L537">                    entry.getValue())) {</span>
    -<span class="nc" id="L538">                timers.put(entry.getKey(), (T) entry.getValue());</span>
    -            }
    -<span class="nc" id="L540">        }</span>
    -<span class="nc" id="L541">        return Collections.unmodifiableSortedMap(timers);</span>
    -    }
    -
    -    private void onMetricAdded(String name, Metric metric) {
    -<span class="pc bpc" id="L545" title="1 of 2 branches missed.">        for (MetricRegistryListener listener : listeners) {</span>
    -<span class="nc" id="L546">            notifyListenerOfAddedMetric(listener, metric, name);</span>
    -<span class="nc" id="L547">        }</span>
    -<span class="fc" id="L548">    }</span>
    -
    -    private void notifyListenerOfAddedMetric(MetricRegistryListener listener, Metric metric, String name) {
    -<span class="nc bnc" id="L551" title="All 2 branches missed.">        if (metric instanceof Gauge) {</span>
    -<span class="nc" id="L552">            listener.onGaugeAdded(name, (Gauge&lt;?&gt;) metric);</span>
    -<span class="nc bnc" id="L553" title="All 2 branches missed.">        } else if (metric instanceof Counter) {</span>
    -<span class="nc" id="L554">            listener.onCounterAdded(name, (Counter) metric);</span>
    -<span class="nc bnc" id="L555" title="All 2 branches missed.">        } else if (metric instanceof Histogram) {</span>
    -<span class="nc" id="L556">            listener.onHistogramAdded(name, (Histogram) metric);</span>
    -<span class="nc bnc" id="L557" title="All 2 branches missed.">        } else if (metric instanceof Meter) {</span>
    -<span class="nc" id="L558">            listener.onMeterAdded(name, (Meter) metric);</span>
    -<span class="nc bnc" id="L559" title="All 2 branches missed.">        } else if (metric instanceof Timer) {</span>
    -<span class="nc" id="L560">            listener.onTimerAdded(name, (Timer) metric);</span>
    -        } else {
    -<span class="nc" id="L562">            throw new IllegalArgumentException(&quot;Unknown metric type: &quot; + metric.getClass());</span>
    -        }
    -<span class="nc" id="L564">    }</span>
    -
    -    private void onMetricRemoved(String name, Metric metric) {
    -<span class="nc bnc" id="L567" title="All 2 branches missed.">        for (MetricRegistryListener listener : listeners) {</span>
    -<span class="nc" id="L568">            notifyListenerOfRemovedMetric(name, metric, listener);</span>
    -<span class="nc" id="L569">        }</span>
    -<span class="nc" id="L570">    }</span>
    -
    -    private void notifyListenerOfRemovedMetric(String name, Metric metric, MetricRegistryListener listener) {
    -<span class="nc bnc" id="L573" title="All 2 branches missed.">        if (metric instanceof Gauge) {</span>
    -<span class="nc" id="L574">            listener.onGaugeRemoved(name);</span>
    -<span class="nc bnc" id="L575" title="All 2 branches missed.">        } else if (metric instanceof Counter) {</span>
    -<span class="nc" id="L576">            listener.onCounterRemoved(name);</span>
    -<span class="nc bnc" id="L577" title="All 2 branches missed.">        } else if (metric instanceof Histogram) {</span>
    -<span class="nc" id="L578">            listener.onHistogramRemoved(name);</span>
    -<span class="nc bnc" id="L579" title="All 2 branches missed.">        } else if (metric instanceof Meter) {</span>
    -<span class="nc" id="L580">            listener.onMeterRemoved(name);</span>
    -<span class="nc bnc" id="L581" title="All 2 branches missed.">        } else if (metric instanceof Timer) {</span>
    -<span class="nc" id="L582">            listener.onTimerRemoved(name);</span>
    -        } else {
    -<span class="nc" id="L584">            throw new IllegalArgumentException(&quot;Unknown metric type: &quot; + metric.getClass());</span>
    -        }
    -<span class="nc" id="L586">    }</span>
    -
    -    /**
    -     * Given a metric set, registers them with the given prefix prepended to their names.
    -     *
    -     * @param prefix a name prefix
    -     * @param metrics a set of metrics
    -     * @throws IllegalArgumentException if any of the names are already registered
    -     */
    -    public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
    -<span class="nc bnc" id="L596" title="All 2 branches missed.">        for (Map.Entry&lt;String, Metric&gt; entry : metrics.getMetrics().entrySet()) {</span>
    -<span class="nc bnc" id="L597" title="All 2 branches missed.">            if (entry.getValue() instanceof MetricSet) {</span>
    -<span class="nc" id="L598">                registerAll(name(prefix, entry.getKey()), (MetricSet) entry.getValue());</span>
    -            } else {
    -<span class="nc" id="L600">                register(name(prefix, entry.getKey()), entry.getValue());</span>
    -            }
    -<span class="nc" id="L602">        }</span>
    -<span class="nc" id="L603">    }</span>
    -
    -    @Override
    -    public Map&lt;String, Metric&gt; getMetrics() {
    -<span class="nc" id="L607">        return Collections.unmodifiableMap(metrics);</span>
    -    }
    -
    -    @FunctionalInterface
    -    public interface MetricSupplier&lt;T extends Metric&gt; {
    -        T newMetric();
    -    }
    -
    -    /**
    -     * A quick and easy way of capturing the notion of default metrics.
    -     */
    -    private interface MetricBuilder&lt;T extends Metric&gt; {
    -<span class="fc" id="L619">        MetricBuilder&lt;Counter&gt; COUNTERS = new MetricBuilder&lt;Counter&gt;() {</span>
    -            @Override
    -            public Counter newMetric() {
    -<span class="nc" id="L622">                return new Counter();</span>
    -            }
    -
    -            @Override
    -            public boolean isInstance(Metric metric) {
    -<span class="nc" id="L627">                return Counter.class.isInstance(metric);</span>
    -            }
    -        };
    -
    -<span class="fc" id="L631">        MetricBuilder&lt;Histogram&gt; HISTOGRAMS = new MetricBuilder&lt;Histogram&gt;() {</span>
    -            @Override
    -            public Histogram newMetric() {
    -<span class="nc" id="L634">                return new Histogram(new ExponentiallyDecayingReservoir());</span>
    -            }
    -
    -            @Override
    -            public boolean isInstance(Metric metric) {
    -<span class="nc" id="L639">                return Histogram.class.isInstance(metric);</span>
    -            }
    -        };
    -
    -<span class="fc" id="L643">        MetricBuilder&lt;Meter&gt; METERS = new MetricBuilder&lt;Meter&gt;() {</span>
    -            @Override
    -            public Meter newMetric() {
    -<span class="fc" id="L646">                return new Meter();</span>
    -            }
    -
    -            @Override
    -            public boolean isInstance(Metric metric) {
    -<span class="fc" id="L651">                return Meter.class.isInstance(metric);</span>
    -            }
    -        };
    -
    -<span class="fc" id="L655">        MetricBuilder&lt;Timer&gt; TIMERS = new MetricBuilder&lt;Timer&gt;() {</span>
    -            @Override
    -            public Timer newMetric() {
    -<span class="nc" id="L658">                return new Timer();</span>
    -            }
    -
    -            @Override
    -            public boolean isInstance(Metric metric) {
    -<span class="nc" id="L663">                return Timer.class.isInstance(metric);</span>
    -            }
    -        };
    -
    -        @SuppressWarnings(&quot;rawtypes&quot;)
    -<span class="fc" id="L668">        MetricBuilder&lt;Gauge&gt; GAUGES = new MetricBuilder&lt;Gauge&gt;() {</span>
    -            @Override
    -            public Gauge newMetric() {
    -<span class="nc" id="L671">                return new DefaultSettableGauge&lt;&gt;();</span>
    -            }
    -
    -            @Override
    -            public boolean isInstance(Metric metric) {
    -<span class="nc" id="L676">                return Gauge.class.isInstance(metric);</span>
    -            }
    -        };
    -
    -        T newMetric();
    -
    -        boolean isInstance(Metric metric);
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListener$Base.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListener$Base.html
    deleted file mode 100644
    index 7e23dbeff9..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListener$Base.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistryListener.Base</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricRegistryListener.Base</span></div><h1>MetricRegistryListener.Base</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">13 of 13</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">11</td><td class="ctr2">11</td><td class="ctr1">11</td><td class="ctr2">11</td><td class="ctr1">11</td><td class="ctr2">11</td></tr></tfoot><tbody><tr><td id="a0"><a href="MetricRegistryListener.java.html#L12" class="el_method">MetricRegistryListener.Base()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="3" alt="3"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="MetricRegistryListener.java.html#L15" class="el_method">onGaugeAdded(String, Gauge)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="1" alt="1"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a4"><a href="MetricRegistryListener.java.html#L19" class="el_method">onGaugeRemoved(String)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="1" alt="1"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a1"><a href="MetricRegistryListener.java.html#L23" class="el_method">onCounterAdded(String, Counter)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="1" alt="1"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a2"><a href="MetricRegistryListener.java.html#L27" class="el_method">onCounterRemoved(String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="1" alt="1"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a5"><a href="MetricRegistryListener.java.html#L31" class="el_method">onHistogramAdded(String, Histogram)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="1" alt="1"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a6"><a href="MetricRegistryListener.java.html#L35" class="el_method">onHistogramRemoved(String)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="1" alt="1"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a7"><a href="MetricRegistryListener.java.html#L39" class="el_method">onMeterAdded(String, Meter)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="1" alt="1"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a8"><a href="MetricRegistryListener.java.html#L43" class="el_method">onMeterRemoved(String)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="1" alt="1"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a9"><a href="MetricRegistryListener.java.html#L47" class="el_method">onTimerAdded(String, Timer)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="1" alt="1"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">1</td><td class="ctr2" id="i9">1</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a10"><a href="MetricRegistryListener.java.html#L51" class="el_method">onTimerRemoved(String)</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="1" alt="1"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">1</td><td class="ctr2" id="i10">1</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListener.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListener.java.html
    deleted file mode 100644
    index 95e6c3787c..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListener.java.html
    +++ /dev/null
    @@ -1,129 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistryListener.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">MetricRegistryListener.java</span></div><h1>MetricRegistryListener.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.util.EventListener;
    -
    -/**
    - * Listeners for events from the registry.  Listeners must be thread-safe.
    - */
    -public interface MetricRegistryListener extends EventListener {
    -    /**
    -     * A no-op implementation of {@link MetricRegistryListener}.
    -     */
    -<span class="nc" id="L12">    abstract class Base implements MetricRegistryListener {</span>
    -        @Override
    -        public void onGaugeAdded(String name, Gauge&lt;?&gt; gauge) {
    -<span class="nc" id="L15">        }</span>
    -
    -        @Override
    -        public void onGaugeRemoved(String name) {
    -<span class="nc" id="L19">        }</span>
    -
    -        @Override
    -        public void onCounterAdded(String name, Counter counter) {
    -<span class="nc" id="L23">        }</span>
    -
    -        @Override
    -        public void onCounterRemoved(String name) {
    -<span class="nc" id="L27">        }</span>
    -
    -        @Override
    -        public void onHistogramAdded(String name, Histogram histogram) {
    -<span class="nc" id="L31">        }</span>
    -
    -        @Override
    -        public void onHistogramRemoved(String name) {
    -<span class="nc" id="L35">        }</span>
    -
    -        @Override
    -        public void onMeterAdded(String name, Meter meter) {
    -<span class="nc" id="L39">        }</span>
    -
    -        @Override
    -        public void onMeterRemoved(String name) {
    -<span class="nc" id="L43">        }</span>
    -
    -        @Override
    -        public void onTimerAdded(String name, Timer timer) {
    -<span class="nc" id="L47">        }</span>
    -
    -        @Override
    -        public void onTimerRemoved(String name) {
    -<span class="nc" id="L51">        }</span>
    -    }
    -
    -    /**
    -     * Called when a {@link Gauge} is added to the registry.
    -     *
    -     * @param name  the gauge's name
    -     * @param gauge the gauge
    -     */
    -    void onGaugeAdded(String name, Gauge&lt;?&gt; gauge);
    -
    -    /**
    -     * Called when a {@link Gauge} is removed from the registry.
    -     *
    -     * @param name the gauge's name
    -     */
    -    void onGaugeRemoved(String name);
    -
    -    /**
    -     * Called when a {@link Counter} is added to the registry.
    -     *
    -     * @param name    the counter's name
    -     * @param counter the counter
    -     */
    -    void onCounterAdded(String name, Counter counter);
    -
    -    /**
    -     * Called when a {@link Counter} is removed from the registry.
    -     *
    -     * @param name the counter's name
    -     */
    -    void onCounterRemoved(String name);
    -
    -    /**
    -     * Called when a {@link Histogram} is added to the registry.
    -     *
    -     * @param name      the histogram's name
    -     * @param histogram the histogram
    -     */
    -    void onHistogramAdded(String name, Histogram histogram);
    -
    -    /**
    -     * Called when a {@link Histogram} is removed from the registry.
    -     *
    -     * @param name the histogram's name
    -     */
    -    void onHistogramRemoved(String name);
    -
    -    /**
    -     * Called when a {@link Meter} is added to the registry.
    -     *
    -     * @param name  the meter's name
    -     * @param meter the meter
    -     */
    -    void onMeterAdded(String name, Meter meter);
    -
    -    /**
    -     * Called when a {@link Meter} is removed from the registry.
    -     *
    -     * @param name the meter's name
    -     */
    -    void onMeterRemoved(String name);
    -
    -    /**
    -     * Called when a {@link Timer} is added to the registry.
    -     *
    -     * @param name  the timer's name
    -     * @param timer the timer
    -     */
    -    void onTimerAdded(String name, Timer timer);
    -
    -    /**
    -     * Called when a {@link Timer} is removed from the registry.
    -     *
    -     * @param name the timer's name
    -     */
    -    void onTimerRemoved(String name);
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest$1.html
    deleted file mode 100644
    index 5f9d5f960d..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest$1.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistryListenerTest.new MetricRegistryListener.Base() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricRegistryListenerTest.new MetricRegistryListener.Base() {...}</span></div><h1>MetricRegistryListenerTest.new MetricRegistryListener.Base() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">6 of 6</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">1</td><td class="ctr2">1</td><td class="ctr1">1</td><td class="ctr2">1</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="MetricRegistryListenerTest.java.html#L13" class="el_method">{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest.html
    deleted file mode 100644
    index 41b694fe9b..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistryListenerTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricRegistryListenerTest</span></div><h1>MetricRegistryListenerTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">121 of 121</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">8</td><td class="ctr2">8</td><td class="ctr1">27</td><td class="ctr2">27</td><td class="ctr1">8</td><td class="ctr2">8</td></tr></tfoot><tbody><tr><td id="a2"><a href="MetricRegistryListenerTest.java.html#L8" class="el_method">MetricRegistryListenerTest()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="29" alt="29"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">6</td><td class="ctr2" id="i0">6</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="MetricRegistryListenerTest.java.html#L54" class="el_method">doesNotExplodeWhenMetricsAreRemoved()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="86" height="10" title="21" alt="21"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">6</td><td class="ctr2" id="i1">6</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a3"><a href="MetricRegistryListenerTest.java.html#L26" class="el_method">noOpsOnCounterAdded()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="62" height="10" title="15" alt="15"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">3</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a5"><a href="MetricRegistryListenerTest.java.html#L33" class="el_method">noOpsOnHistogramAdded()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="62" height="10" title="15" alt="15"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">3</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a6"><a href="MetricRegistryListenerTest.java.html#L40" class="el_method">noOpsOnMeterAdded()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="62" height="10" title="15" alt="15"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">3</td><td class="ctr2" id="i4">3</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a7"><a href="MetricRegistryListenerTest.java.html#L47" class="el_method">noOpsOnTimerAdded()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="62" height="10" title="15" alt="15"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">3</td><td class="ctr2" id="i5">3</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a4"><a href="MetricRegistryListenerTest.java.html#L19" class="el_method">noOpsOnGaugeAdded()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="6" alt="6"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i6">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a1"><a href="MetricRegistryListenerTest.java.html#L20" class="el_method">lambda$noOpsOnGaugeAdded$0()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="5" alt="5"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest.java.html
    deleted file mode 100644
    index 65f9fbed63..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryListenerTest.java.html
    +++ /dev/null
    @@ -1,61 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistryListenerTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">MetricRegistryListenerTest.java</span></div><h1>MetricRegistryListenerTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -
    -import static org.mockito.Mockito.mock;
    -import static org.mockito.Mockito.verifyNoInteractions;
    -
    -<span class="nc" id="L8">public class MetricRegistryListenerTest {</span>
    -<span class="nc" id="L9">    private final Counter counter = mock(Counter.class);</span>
    -<span class="nc" id="L10">    private final Histogram histogram = mock(Histogram.class);</span>
    -<span class="nc" id="L11">    private final Meter meter = mock(Meter.class);</span>
    -<span class="nc" id="L12">    private final Timer timer = mock(Timer.class);</span>
    -<span class="nc" id="L13">    private final MetricRegistryListener listener = new MetricRegistryListener.Base() {</span>
    -
    -    };
    -
    -    @Test
    -    public void noOpsOnGaugeAdded() {
    -<span class="nc" id="L19">        listener.onGaugeAdded(&quot;blah&quot;, () -&gt; {</span>
    -<span class="nc" id="L20">            throw new RuntimeException(&quot;Should not be called&quot;);</span>
    -        });
    -<span class="nc" id="L22">    }</span>
    -
    -    @Test
    -    public void noOpsOnCounterAdded() {
    -<span class="nc" id="L26">        listener.onCounterAdded(&quot;blah&quot;, counter);</span>
    -
    -<span class="nc" id="L28">        verifyNoInteractions(counter);</span>
    -<span class="nc" id="L29">    }</span>
    -
    -    @Test
    -    public void noOpsOnHistogramAdded() {
    -<span class="nc" id="L33">        listener.onHistogramAdded(&quot;blah&quot;, histogram);</span>
    -
    -<span class="nc" id="L35">        verifyNoInteractions(histogram);</span>
    -<span class="nc" id="L36">    }</span>
    -
    -    @Test
    -    public void noOpsOnMeterAdded() {
    -<span class="nc" id="L40">        listener.onMeterAdded(&quot;blah&quot;, meter);</span>
    -
    -<span class="nc" id="L42">        verifyNoInteractions(meter);</span>
    -<span class="nc" id="L43">    }</span>
    -
    -    @Test
    -    public void noOpsOnTimerAdded() {
    -<span class="nc" id="L47">        listener.onTimerAdded(&quot;blah&quot;, timer);</span>
    -
    -<span class="nc" id="L49">        verifyNoInteractions(timer);</span>
    -<span class="nc" id="L50">    }</span>
    -
    -    @Test
    -    public void doesNotExplodeWhenMetricsAreRemoved() {
    -<span class="nc" id="L54">        listener.onGaugeRemoved(&quot;blah&quot;);</span>
    -<span class="nc" id="L55">        listener.onCounterRemoved(&quot;blah&quot;);</span>
    -<span class="nc" id="L56">        listener.onHistogramRemoved(&quot;blah&quot;);</span>
    -<span class="nc" id="L57">        listener.onMeterRemoved(&quot;blah&quot;);</span>
    -<span class="nc" id="L58">        listener.onTimerRemoved(&quot;blah&quot;);</span>
    -<span class="nc" id="L59">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryTest.html
    deleted file mode 100644
    index 8b8cdd25db..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistryTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">MetricRegistryTest</span></div><h1>MetricRegistryTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1,842 of 1,842</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">81</td><td class="ctr2">81</td><td class="ctr1">361</td><td class="ctr2">361</td><td class="ctr1">81</td><td class="ctr2">81</td></tr></tfoot><tbody><tr><td id="a77"><a href="MetricRegistryTest.java.html#L589" class="el_method">removingDeepChildMetricsAfterRegister()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="98" alt="98"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">21</td><td class="ctr2" id="i0">21</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a14"><a href="MetricRegistryTest.java.html#L516" class="el_method">addingDeepChildMetricsAfterRegister()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="107" height="10" title="88" alt="88"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">20</td><td class="ctr2" id="i1">20</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a70"><a href="MetricRegistryTest.java.html#L462" class="el_method">removesMetricsMatchingAFilter()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="97" height="10" title="80" alt="80"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h3">13</td><td class="ctr2" id="i3">13</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a12"><a href="MetricRegistryTest.java.html#L279" class="el_method">addingAListenerWithExistingMetricsCatchesItUp()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="96" height="10" title="79" alt="79"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h4">13</td><td class="ctr2" id="i4">13</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a78"><a href="MetricRegistryTest.java.html#L566" class="el_method">removingMultipleChildMetricsAfterRegister()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="85" height="10" title="70" alt="70"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h2">15</td><td class="ctr2" id="i2">15</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a29"><a href="MetricRegistryTest.java.html#L346" class="el_method">hasASetOfRegisteredMetricNames()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="78" height="10" title="64" alt="64"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h9">8</td><td class="ctr2" id="i9">8</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a76"><a href="MetricRegistryTest.java.html#L546" class="el_method">removingChildMetricAfterRegister()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="66" height="10" title="54" alt="54"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h5">12</td><td class="ctr2" id="i5">12</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a15"><a href="MetricRegistryTest.java.html#L498" class="el_method">addingMultipleChildMetricsAfterRegister()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="58" height="10" title="48" alt="48"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h6">12</td><td class="ctr2" id="i6">12</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a58"><a href="MetricRegistryTest.java.html#L19" class="el_method">MetricRegistryTest()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="51" height="10" title="42" alt="42"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">9</td><td class="ctr2" id="i8">9</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a13"><a href="MetricRegistryTest.java.html#L482" class="el_method">addingChildMetricAfterRegister()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="40" alt="40"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h7">10</td><td class="ctr2" id="i7">10</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a10"><a href="MetricRegistryTest.java.html#L220" class="el_method">accessingASettableGaugeRegistersAndReusesIt()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="41" height="10" title="34" alt="34"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">7</td><td class="ctr2" id="i10">7</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a8"><a href="MetricRegistryTest.java.html#L232" class="el_method">accessingAnExistingGaugeReusesIt()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="39" height="10" title="32" alt="32"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h18">6</td><td class="ctr2" id="i18">6</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a9"><a href="MetricRegistryTest.java.html#L243" class="el_method">accessingAnExistingSettableGaugeReusesIt()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="37" height="10" title="31" alt="31"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h19">6</td><td class="ctr2" id="i19">6</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a79"><a href="MetricRegistryTest.java.html#L267" class="el_method">settableGaugeIsTreatedLikeAGauge()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="30" alt="30"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h11">7</td><td class="ctr2" id="i11">7</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a69"><a href="MetricRegistryTest.java.html#L388" class="el_method">registersRecursiveMetricSets()</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="30" alt="30"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h20">6</td><td class="ctr2" id="i20">6</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a16"><a href="MetricRegistryTest.java.html#L297" class="el_method">aRemovedListenerDoesNotReceiveUpdates()</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="35" height="10" title="29" alt="29"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h25">5</td><td class="ctr2" id="i25">5</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a66"><a href="MetricRegistryTest.java.html#L409" class="el_method">registersMetricsFromAnotherRegistry()</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="35" height="10" title="29" alt="29"/></td><td class="ctr2" id="c16">0%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h26">5</td><td class="ctr2" id="i26">5</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a1"><a href="MetricRegistryTest.java.html#L73" class="el_method">accessingACustomCounterRegistersAndReusesTheCounter()</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="28" alt="28"/></td><td class="ctr2" id="c17">0%</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">1</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h12">7</td><td class="ctr2" id="i12">7</td><td class="ctr1" id="j17">1</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a3"><a href="MetricRegistryTest.java.html#L115" class="el_method">accessingACustomHistogramRegistersAndReusesIt()</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="28" alt="28"/></td><td class="ctr2" id="c18">0%</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f18">1</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h13">7</td><td class="ctr2" id="i13">7</td><td class="ctr1" id="j18">1</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a4"><a href="MetricRegistryTest.java.html#L156" class="el_method">accessingACustomMeterRegistersAndReusesIt()</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="28" alt="28"/></td><td class="ctr2" id="c19">0%</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">1</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h14">7</td><td class="ctr2" id="i14">7</td><td class="ctr1" id="j19">1</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a5"><a href="MetricRegistryTest.java.html#L197" class="el_method">accessingACustomTimerRegistersAndReusesIt()</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="28" alt="28"/></td><td class="ctr2" id="c20">0%</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f20">1</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h15">7</td><td class="ctr2" id="i15">7</td><td class="ctr1" id="j20">1</td><td class="ctr2" id="k20">1</td></tr><tr><td id="a2"><a href="MetricRegistryTest.java.html#L255" class="el_method">accessingACustomGaugeRegistersAndReusesIt()</a></td><td class="bar" id="b21"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="28" alt="28"/></td><td class="ctr2" id="c21">0%</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f21">1</td><td class="ctr2" id="g21">1</td><td class="ctr1" id="h16">7</td><td class="ctr2" id="i16">7</td><td class="ctr1" id="j21">1</td><td class="ctr2" id="k21">1</td></tr><tr><td id="a68"><a href="MetricRegistryTest.java.html#L373" class="el_method">registersMultipleMetricsWithAPrefix()</a></td><td class="bar" id="b22"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="26" alt="26"/></td><td class="ctr2" id="c22">0%</td><td class="bar" id="d22"/><td class="ctr2" id="e22">n/a</td><td class="ctr1" id="f22">1</td><td class="ctr2" id="g22">1</td><td class="ctr1" id="h27">5</td><td class="ctr2" id="i27">5</td><td class="ctr1" id="j22">1</td><td class="ctr2" id="k22">1</td></tr><tr><td id="a67"><a href="MetricRegistryTest.java.html#L358" class="el_method">registersMultipleMetrics()</a></td><td class="bar" id="b23"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="24" alt="24"/></td><td class="ctr2" id="c23">0%</td><td class="bar" id="d23"/><td class="ctr2" id="e23">n/a</td><td class="ctr1" id="f23">1</td><td class="ctr2" id="g23">1</td><td class="ctr1" id="h28">5</td><td class="ctr2" id="i28">5</td><td class="ctr1" id="j23">1</td><td class="ctr2" id="k23">1</td></tr><tr><td id="a0"><a href="MetricRegistryTest.java.html#L62" class="el_method">accessingACounterRegistersAndReusesTheCounter()</a></td><td class="bar" id="b24"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="23" alt="23"/></td><td class="ctr2" id="c24">0%</td><td class="bar" id="d24"/><td class="ctr2" id="e24">n/a</td><td class="ctr1" id="f24">1</td><td class="ctr2" id="g24">1</td><td class="ctr1" id="h21">6</td><td class="ctr2" id="i21">6</td><td class="ctr1" id="j24">1</td><td class="ctr2" id="k24">1</td></tr><tr><td id="a6"><a href="MetricRegistryTest.java.html#L104" class="el_method">accessingAHistogramRegistersAndReusesIt()</a></td><td class="bar" id="b25"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="23" alt="23"/></td><td class="ctr2" id="c25">0%</td><td class="bar" id="d25"/><td class="ctr2" id="e25">n/a</td><td class="ctr1" id="f25">1</td><td class="ctr2" id="g25">1</td><td class="ctr1" id="h22">6</td><td class="ctr2" id="i22">6</td><td class="ctr1" id="j25">1</td><td class="ctr2" id="k25">1</td></tr><tr><td id="a7"><a href="MetricRegistryTest.java.html#L145" class="el_method">accessingAMeterRegistersAndReusesIt()</a></td><td class="bar" id="b26"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="23" alt="23"/></td><td class="ctr2" id="c26">0%</td><td class="bar" id="d26"/><td class="ctr2" id="e26">n/a</td><td class="ctr1" id="f26">1</td><td class="ctr2" id="g26">1</td><td class="ctr1" id="h23">6</td><td class="ctr2" id="i23">6</td><td class="ctr1" id="j26">1</td><td class="ctr2" id="k26">1</td></tr><tr><td id="a11"><a href="MetricRegistryTest.java.html#L186" class="el_method">accessingATimerRegistersAndReusesIt()</a></td><td class="bar" id="b27"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="23" alt="23"/></td><td class="ctr2" id="c27">0%</td><td class="bar" id="d27"/><td class="ctr2" id="e27">n/a</td><td class="ctr1" id="f27">1</td><td class="ctr2" id="g27">1</td><td class="ctr1" id="h24">6</td><td class="ctr2" id="i24">6</td><td class="ctr1" id="j27">1</td><td class="ctr2" id="k27">1</td></tr><tr><td id="a25"><a href="MetricRegistryTest.java.html#L306" class="el_method">hasAMapOfRegisteredGauges()</a></td><td class="bar" id="b28"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="23" alt="23"/></td><td class="ctr2" id="c28">0%</td><td class="bar" id="d28"/><td class="ctr2" id="e28">n/a</td><td class="ctr1" id="f28">1</td><td class="ctr2" id="g28">1</td><td class="ctr1" id="h34">4</td><td class="ctr2" id="i34">4</td><td class="ctr1" id="j28">1</td><td class="ctr2" id="k28">1</td></tr><tr><td id="a24"><a href="MetricRegistryTest.java.html#L314" class="el_method">hasAMapOfRegisteredCounters()</a></td><td class="bar" id="b29"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="23" alt="23"/></td><td class="ctr2" id="c29">0%</td><td class="bar" id="d29"/><td class="ctr2" id="e29">n/a</td><td class="ctr1" id="f29">1</td><td class="ctr2" id="g29">1</td><td class="ctr1" id="h35">4</td><td class="ctr2" id="i35">4</td><td class="ctr1" id="j29">1</td><td class="ctr2" id="k29">1</td></tr><tr><td id="a26"><a href="MetricRegistryTest.java.html#L322" class="el_method">hasAMapOfRegisteredHistograms()</a></td><td class="bar" id="b30"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="23" alt="23"/></td><td class="ctr2" id="c30">0%</td><td class="bar" id="d30"/><td class="ctr2" id="e30">n/a</td><td class="ctr1" id="f30">1</td><td class="ctr2" id="g30">1</td><td class="ctr1" id="h36">4</td><td class="ctr2" id="i36">4</td><td class="ctr1" id="j30">1</td><td class="ctr2" id="k30">1</td></tr><tr><td id="a27"><a href="MetricRegistryTest.java.html#L330" class="el_method">hasAMapOfRegisteredMeters()</a></td><td class="bar" id="b31"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="23" alt="23"/></td><td class="ctr2" id="c31">0%</td><td class="bar" id="d31"/><td class="ctr2" id="e31">n/a</td><td class="ctr1" id="f31">1</td><td class="ctr2" id="g31">1</td><td class="ctr1" id="h37">4</td><td class="ctr2" id="i37">4</td><td class="ctr1" id="j31">1</td><td class="ctr2" id="k31">1</td></tr><tr><td id="a28"><a href="MetricRegistryTest.java.html#L338" class="el_method">hasAMapOfRegisteredTimers()</a></td><td class="bar" id="b32"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="23" alt="23"/></td><td class="ctr2" id="c32">0%</td><td class="bar" id="d32"/><td class="ctr2" id="e32">n/a</td><td class="ctr1" id="f32">1</td><td class="ctr2" id="g32">1</td><td class="ctr1" id="h38">4</td><td class="ctr2" id="i38">4</td><td class="ctr1" id="j32">1</td><td class="ctr2" id="k32">1</td></tr><tr><td id="a60"><a href="MetricRegistryTest.java.html#L36" class="el_method">registeringAGaugeTriggersANotification()</a></td><td class="bar" id="b33"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="21" alt="21"/></td><td class="ctr2" id="c33">0%</td><td class="bar" id="d33"/><td class="ctr2" id="e33">n/a</td><td class="ctr1" id="f33">1</td><td class="ctr2" id="g33">1</td><td class="ctr1" id="h39">4</td><td class="ctr2" id="i39">4</td><td class="ctr1" id="j33">1</td><td class="ctr2" id="k33">1</td></tr><tr><td id="a72"><a href="MetricRegistryTest.java.html#L44" class="el_method">removingAGaugeTriggersANotification()</a></td><td class="bar" id="b34"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="21" alt="21"/></td><td class="ctr2" id="c34">0%</td><td class="bar" id="d34"/><td class="ctr2" id="e34">n/a</td><td class="ctr1" id="f34">1</td><td class="ctr2" id="g34">1</td><td class="ctr1" id="h29">5</td><td class="ctr2" id="i29">5</td><td class="ctr1" id="j34">1</td><td class="ctr2" id="k34">1</td></tr><tr><td id="a59"><a href="MetricRegistryTest.java.html#L54" class="el_method">registeringACounterTriggersANotification()</a></td><td class="bar" id="b35"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="21" alt="21"/></td><td class="ctr2" id="c35">0%</td><td class="bar" id="d35"/><td class="ctr2" id="e35">n/a</td><td class="ctr1" id="f35">1</td><td class="ctr2" id="g35">1</td><td class="ctr1" id="h40">4</td><td class="ctr2" id="i40">4</td><td class="ctr1" id="j35">1</td><td class="ctr2" id="k35">1</td></tr><tr><td id="a71"><a href="MetricRegistryTest.java.html#L86" class="el_method">removingACounterTriggersANotification()</a></td><td class="bar" id="b36"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="21" alt="21"/></td><td class="ctr2" id="c36">0%</td><td class="bar" id="d36"/><td class="ctr2" id="e36">n/a</td><td class="ctr1" id="f36">1</td><td class="ctr2" id="g36">1</td><td class="ctr1" id="h30">5</td><td class="ctr2" id="i30">5</td><td class="ctr1" id="j36">1</td><td class="ctr2" id="k36">1</td></tr><tr><td id="a61"><a href="MetricRegistryTest.java.html#L96" class="el_method">registeringAHistogramTriggersANotification()</a></td><td class="bar" id="b37"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="21" alt="21"/></td><td class="ctr2" id="c37">0%</td><td class="bar" id="d37"/><td class="ctr2" id="e37">n/a</td><td class="ctr1" id="f37">1</td><td class="ctr2" id="g37">1</td><td class="ctr1" id="h41">4</td><td class="ctr2" id="i41">4</td><td class="ctr1" id="j37">1</td><td class="ctr2" id="k37">1</td></tr><tr><td id="a73"><a href="MetricRegistryTest.java.html#L127" class="el_method">removingAHistogramTriggersANotification()</a></td><td class="bar" id="b38"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="21" alt="21"/></td><td class="ctr2" id="c38">0%</td><td class="bar" id="d38"/><td class="ctr2" id="e38">n/a</td><td class="ctr1" id="f38">1</td><td class="ctr2" id="g38">1</td><td class="ctr1" id="h31">5</td><td class="ctr2" id="i31">5</td><td class="ctr1" id="j38">1</td><td class="ctr2" id="k38">1</td></tr><tr><td id="a62"><a href="MetricRegistryTest.java.html#L137" class="el_method">registeringAMeterTriggersANotification()</a></td><td class="bar" id="b39"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="21" alt="21"/></td><td class="ctr2" id="c39">0%</td><td class="bar" id="d39"/><td class="ctr2" id="e39">n/a</td><td class="ctr1" id="f39">1</td><td class="ctr2" id="g39">1</td><td class="ctr1" id="h42">4</td><td class="ctr2" id="i42">4</td><td class="ctr1" id="j39">1</td><td class="ctr2" id="k39">1</td></tr><tr><td id="a74"><a href="MetricRegistryTest.java.html#L168" class="el_method">removingAMeterTriggersANotification()</a></td><td class="bar" id="b40"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="21" alt="21"/></td><td class="ctr2" id="c40">0%</td><td class="bar" id="d40"/><td class="ctr2" id="e40">n/a</td><td class="ctr1" id="f40">1</td><td class="ctr2" id="g40">1</td><td class="ctr1" id="h32">5</td><td class="ctr2" id="i32">5</td><td class="ctr1" id="j40">1</td><td class="ctr2" id="k40">1</td></tr><tr><td id="a63"><a href="MetricRegistryTest.java.html#L178" class="el_method">registeringATimerTriggersANotification()</a></td><td class="bar" id="b41"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="21" alt="21"/></td><td class="ctr2" id="c41">0%</td><td class="bar" id="d41"/><td class="ctr2" id="e41">n/a</td><td class="ctr1" id="f41">1</td><td class="ctr2" id="g41">1</td><td class="ctr1" id="h43">4</td><td class="ctr2" id="i43">4</td><td class="ctr1" id="j41">1</td><td class="ctr2" id="k41">1</td></tr><tr><td id="a75"><a href="MetricRegistryTest.java.html#L210" class="el_method">removingATimerTriggersANotification()</a></td><td class="bar" id="b42"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="21" alt="21"/></td><td class="ctr2" id="c42">0%</td><td class="bar" id="d42"/><td class="ctr2" id="e42">n/a</td><td class="ctr1" id="f42">1</td><td class="ctr2" id="g42">1</td><td class="ctr1" id="h33">5</td><td class="ctr2" id="i33">5</td><td class="ctr1" id="j42">1</td><td class="ctr2" id="k42">1</td></tr><tr><td id="a17"><a href="MetricRegistryTest.java.html#L454" class="el_method">concatenatesClassesWithoutCanonicalNamesWithStrings()</a></td><td class="bar" id="b43"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="20" alt="20"/></td><td class="ctr2" id="c43">0%</td><td class="bar" id="d43"/><td class="ctr2" id="e43">n/a</td><td class="ctr1" id="f43">1</td><td class="ctr2" id="g43">1</td><td class="ctr1" id="h44">4</td><td class="ctr2" id="i44">4</td><td class="ctr1" id="j43">1</td><td class="ctr2" id="k43">1</td></tr><tr><td id="a64"><a href="MetricRegistryTest.java.html#L621" class="el_method">registerNullMetric()</a></td><td class="bar" id="b44"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="18" alt="18"/></td><td class="ctr2" id="c44">0%</td><td class="bar" id="d44"/><td class="ctr2" id="e44">n/a</td><td class="ctr1" id="f44">1</td><td class="ctr2" id="g44">1</td><td class="ctr1" id="h17">7</td><td class="ctr2" id="i17">7</td><td class="ctr1" id="j44">1</td><td class="ctr2" id="k44">1</td></tr><tr><td id="a49"><a href="MetricRegistryTest.java.html#L374" class="el_method">lambda$registersMultipleMetricsWithAPrefix$12()</a></td><td class="bar" id="b45"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="18" alt="18"/></td><td class="ctr2" id="c45">0%</td><td class="bar" id="d45"/><td class="ctr2" id="e45">n/a</td><td class="ctr1" id="f45">1</td><td class="ctr2" id="g45">1</td><td class="ctr1" id="h45">4</td><td class="ctr2" id="i45">4</td><td class="ctr1" id="j45">1</td><td class="ctr2" id="k45">1</td></tr><tr><td id="a48"><a href="MetricRegistryTest.java.html#L359" class="el_method">lambda$registersMultipleMetrics$11()</a></td><td class="bar" id="b46"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="18" alt="18"/></td><td class="ctr2" id="c46">0%</td><td class="bar" id="d46"/><td class="ctr2" id="e46">n/a</td><td class="ctr1" id="f46">1</td><td class="ctr2" id="g46">1</td><td class="ctr1" id="h46">4</td><td class="ctr2" id="i46">4</td><td class="ctr1" id="j46">1</td><td class="ctr2" id="k46">1</td></tr><tr><td id="a19"><a href="MetricRegistryTest.java.html#L417" class="el_method">concatenatesStringsToFormADottedName()</a></td><td class="bar" id="b47"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="17" alt="17"/></td><td class="ctr2" id="c47">0%</td><td class="bar" id="d47"/><td class="ctr2" id="e47">n/a</td><td class="ctr1" id="f47">1</td><td class="ctr2" id="g47">1</td><td class="ctr1" id="h48">3</td><td class="ctr2" id="i48">3</td><td class="ctr1" id="j47">1</td><td class="ctr2" id="k47">1</td></tr><tr><td id="a21"><a href="MetricRegistryTest.java.html#L430" class="el_method">elidesNullValuesFromNamesWhenManyNullsPassedIn()</a></td><td class="bar" id="b48"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="17" alt="17"/></td><td class="ctr2" id="c48">0%</td><td class="bar" id="d48"/><td class="ctr2" id="e48">n/a</td><td class="ctr1" id="f48">1</td><td class="ctr2" id="g48">1</td><td class="ctr1" id="h49">3</td><td class="ctr2" id="i49">3</td><td class="ctr1" id="j48">1</td><td class="ctr2" id="k48">1</td></tr><tr><td id="a22"><a href="MetricRegistryTest.java.html#L436" class="el_method">elidesNullValuesFromNamesWhenNullAndNotNullPassedIn()</a></td><td class="bar" id="b49"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="17" alt="17"/></td><td class="ctr2" id="c49">0%</td><td class="bar" id="d49"/><td class="ctr2" id="e49">n/a</td><td class="ctr1" id="f49">1</td><td class="ctr2" id="g49">1</td><td class="ctr1" id="h50">3</td><td class="ctr2" id="i50">3</td><td class="ctr1" id="j49">1</td><td class="ctr2" id="k49">1</td></tr><tr><td id="a20"><a href="MetricRegistryTest.java.html#L442" class="el_method">elidesEmptyStringsFromNames()</a></td><td class="bar" id="b50"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="17" alt="17"/></td><td class="ctr2" id="c50">0%</td><td class="bar" id="d50"/><td class="ctr2" id="e50">n/a</td><td class="ctr1" id="f50">1</td><td class="ctr2" id="g50">1</td><td class="ctr1" id="h51">3</td><td class="ctr2" id="i51">3</td><td class="ctr1" id="j50">1</td><td class="ctr2" id="k50">1</td></tr><tr><td id="a18"><a href="MetricRegistryTest.java.html#L448" class="el_method">concatenatesClassNamesWithStringsToFormADottedName()</a></td><td class="bar" id="b51"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="17" alt="17"/></td><td class="ctr2" id="c51">0%</td><td class="bar" id="d51"/><td class="ctr2" id="e51">n/a</td><td class="ctr1" id="f51">1</td><td class="ctr2" id="g51">1</td><td class="ctr1" id="h52">3</td><td class="ctr2" id="i52">3</td><td class="ctr1" id="j51">1</td><td class="ctr2" id="k51">1</td></tr><tr><td id="a65"><a href="MetricRegistryTest.java.html#L639" class="el_method">registersGaugeAsLambda()</a></td><td class="bar" id="b52"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="17" alt="17"/></td><td class="ctr2" id="c52">0%</td><td class="bar" id="d52"/><td class="ctr2" id="e52">n/a</td><td class="ctr1" id="f52">1</td><td class="ctr2" id="g52">1</td><td class="ctr1" id="h53">3</td><td class="ctr2" id="i53">3</td><td class="ctr1" id="j52">1</td><td class="ctr2" id="k52">1</td></tr><tr><td id="a51"><a href="MetricRegistryTest.java.html#L395" class="el_method">lambda$registersRecursiveMetricSets$14(MetricSet)</a></td><td class="bar" id="b53"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="17" alt="17"/></td><td class="ctr2" id="c53">0%</td><td class="bar" id="d53"/><td class="ctr2" id="e53">n/a</td><td class="ctr1" id="f53">1</td><td class="ctr2" id="g53">1</td><td class="ctr1" id="h47">4</td><td class="ctr2" id="i47">4</td><td class="ctr1" id="j53">1</td><td class="ctr2" id="k53">1</td></tr><tr><td id="a23"><a href="MetricRegistryTest.java.html#L424" class="el_method">elidesNullValuesFromNamesWhenOnlyOneNullPassedIn()</a></td><td class="bar" id="b54"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="14" alt="14"/></td><td class="ctr2" id="c54">0%</td><td class="bar" id="d54"/><td class="ctr2" id="e54">n/a</td><td class="ctr1" id="f54">1</td><td class="ctr2" id="g54">1</td><td class="ctr1" id="h54">3</td><td class="ctr2" id="i54">3</td><td class="ctr1" id="j54">1</td><td class="ctr2" id="k54">1</td></tr><tr><td id="a30"><a href="MetricRegistryTest.java.html#L632" class="el_method">infersGaugeType()</a></td><td class="bar" id="b55"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="14" alt="14"/></td><td class="ctr2" id="c55">0%</td><td class="bar" id="d55"/><td class="ctr2" id="e55">n/a</td><td class="ctr1" id="f55">1</td><td class="ctr2" id="g55">1</td><td class="ctr1" id="h55">3</td><td class="ctr2" id="i55">3</td><td class="ctr1" id="j55">1</td><td class="ctr2" id="k55">1</td></tr><tr><td id="a50"><a href="MetricRegistryTest.java.html#L389" class="el_method">lambda$registersRecursiveMetricSets$13()</a></td><td class="bar" id="b56"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="12" alt="12"/></td><td class="ctr2" id="c56">0%</td><td class="bar" id="d56"/><td class="ctr2" id="e56">n/a</td><td class="ctr1" id="f56">1</td><td class="ctr2" id="g56">1</td><td class="ctr1" id="h56">3</td><td class="ctr2" id="i56">3</td><td class="ctr1" id="j56">1</td><td class="ctr2" id="k56">1</td></tr><tr><td id="a55"><a href="MetricRegistryTest.java.html#L611" class="el_method">lambda$removingDeepChildMetricsAfterRegister$24(String)</a></td><td class="bar" id="b57"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="9" alt="9"/></td><td class="ctr2" id="c57">0%</td><td class="bar" id="d57"/><td class="ctr2" id="e57">n/a</td><td class="ctr1" id="f57">1</td><td class="ctr2" id="g57">1</td><td class="ctr1" id="h58">1</td><td class="ctr2" id="i58">1</td><td class="ctr1" id="j57">1</td><td class="ctr2" id="k57">1</td></tr><tr><td id="a54"><a href="MetricRegistryTest.java.html#L608" class="el_method">lambda$removingDeepChildMetricsAfterRegister$23(String)</a></td><td class="bar" id="b58"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="9" alt="9"/></td><td class="ctr2" id="c58">0%</td><td class="bar" id="d58"/><td class="ctr2" id="e58">n/a</td><td class="ctr1" id="f58">1</td><td class="ctr2" id="g58">1</td><td class="ctr1" id="h59">1</td><td class="ctr2" id="i59">1</td><td class="ctr1" id="j58">1</td><td class="ctr2" id="k58">1</td></tr><tr><td id="a56"><a href="MetricRegistryTest.java.html#L582" class="el_method">lambda$removingMultipleChildMetricsAfterRegister$22(String)</a></td><td class="bar" id="b59"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="9" alt="9"/></td><td class="ctr2" id="c59">0%</td><td class="bar" id="d59"/><td class="ctr2" id="e59">n/a</td><td class="ctr1" id="f59">1</td><td class="ctr2" id="g59">1</td><td class="ctr1" id="h60">1</td><td class="ctr2" id="i60">1</td><td class="ctr1" id="j59">1</td><td class="ctr2" id="k59">1</td></tr><tr><td id="a53"><a href="MetricRegistryTest.java.html#L559" class="el_method">lambda$removingChildMetricAfterRegister$21(String)</a></td><td class="bar" id="b60"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="9" alt="9"/></td><td class="ctr2" id="c60">0%</td><td class="bar" id="d60"/><td class="ctr2" id="e60">n/a</td><td class="ctr1" id="f60">1</td><td class="ctr2" id="g60">1</td><td class="ctr1" id="h61">1</td><td class="ctr2" id="i61">1</td><td class="ctr1" id="j60">1</td><td class="ctr2" id="k60">1</td></tr><tr><td id="a42"><a href="MetricRegistryTest.java.html#L538" class="el_method">lambda$addingDeepChildMetricsAfterRegister$20(String)</a></td><td class="bar" id="b61"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="9" alt="9"/></td><td class="ctr2" id="c61">0%</td><td class="bar" id="d61"/><td class="ctr2" id="e61">n/a</td><td class="ctr1" id="f61">1</td><td class="ctr2" id="g61">1</td><td class="ctr1" id="h62">1</td><td class="ctr2" id="i62">1</td><td class="ctr1" id="j61">1</td><td class="ctr2" id="k61">1</td></tr><tr><td id="a41"><a href="MetricRegistryTest.java.html#L535" class="el_method">lambda$addingDeepChildMetricsAfterRegister$19(String)</a></td><td class="bar" id="b62"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="9" alt="9"/></td><td class="ctr2" id="c62">0%</td><td class="bar" id="d62"/><td class="ctr2" id="e62">n/a</td><td class="ctr1" id="f62">1</td><td class="ctr2" id="g62">1</td><td class="ctr1" id="h63">1</td><td class="ctr2" id="i63">1</td><td class="ctr1" id="j62">1</td><td class="ctr2" id="k62">1</td></tr><tr><td id="a43"><a href="MetricRegistryTest.java.html#L511" class="el_method">lambda$addingMultipleChildMetricsAfterRegister$18(String)</a></td><td class="bar" id="b63"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="9" alt="9"/></td><td class="ctr2" id="c63">0%</td><td class="bar" id="d63"/><td class="ctr2" id="e63">n/a</td><td class="ctr1" id="f63">1</td><td class="ctr2" id="g63">1</td><td class="ctr1" id="h64">1</td><td class="ctr2" id="i64">1</td><td class="ctr1" id="j63">1</td><td class="ctr2" id="k63">1</td></tr><tr><td id="a40"><a href="MetricRegistryTest.java.html#L493" class="el_method">lambda$addingChildMetricAfterRegister$17(String)</a></td><td class="bar" id="b64"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="9" alt="9"/></td><td class="ctr2" id="c64">0%</td><td class="bar" id="d64"/><td class="ctr2" id="e64">n/a</td><td class="ctr1" id="f64">1</td><td class="ctr2" id="g64">1</td><td class="ctr1" id="h65">1</td><td class="ctr2" id="i65">1</td><td class="ctr1" id="j64">1</td><td class="ctr2" id="k64">1</td></tr><tr><td id="a80"><a href="MetricRegistryTest.java.html#L31" class="el_method">setUp()</a></td><td class="bar" id="b65"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="6" alt="6"/></td><td class="ctr2" id="c65">0%</td><td class="bar" id="d65"/><td class="ctr2" id="e65">n/a</td><td class="ctr1" id="f65">1</td><td class="ctr2" id="g65">1</td><td class="ctr1" id="h57">2</td><td class="ctr2" id="i57">2</td><td class="ctr1" id="j65">1</td><td class="ctr2" id="k65">1</td></tr><tr><td id="a39"><a href="MetricRegistryTest.java.html#L243" class="el_method">lambda$accessingAnExistingSettableGaugeReusesIt$8()</a></td><td class="bar" id="b66"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="5" alt="5"/></td><td class="ctr2" id="c66">0%</td><td class="bar" id="d66"/><td class="ctr2" id="e66">n/a</td><td class="ctr1" id="f66">1</td><td class="ctr2" id="g66">1</td><td class="ctr1" id="h66">1</td><td class="ctr2" id="i66">1</td><td class="ctr1" id="j66">1</td><td class="ctr2" id="k66">1</td></tr><tr><td id="a38"><a href="MetricRegistryTest.java.html#L233" class="el_method">lambda$accessingAnExistingGaugeReusesIt$7()</a></td><td class="bar" id="b67"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="5" alt="5"/></td><td class="ctr2" id="c67">0%</td><td class="bar" id="d67"/><td class="ctr2" id="e67">n/a</td><td class="ctr1" id="f67">1</td><td class="ctr2" id="g67">1</td><td class="ctr1" id="h67">1</td><td class="ctr2" id="i67">1</td><td class="ctr1" id="j67">1</td><td class="ctr2" id="k67">1</td></tr><tr><td id="a52"><a href="MetricRegistryTest.java.html#L469" class="el_method">lambda$removesMetricsMatchingAFilter$16(String, Metric)</a></td><td class="bar" id="b68"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="4" alt="4"/></td><td class="ctr2" id="c68">0%</td><td class="bar" id="d68"/><td class="ctr2" id="e68">n/a</td><td class="ctr1" id="f68">1</td><td class="ctr2" id="g68">1</td><td class="ctr1" id="h68">1</td><td class="ctr2" id="i68">1</td><td class="ctr1" id="j68">1</td><td class="ctr2" id="k68">1</td></tr><tr><td id="a47"><a href="MetricRegistryTest.java.html#L639" class="el_method">lambda$registersGaugeAsLambda$26()</a></td><td class="bar" id="b69"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="3" alt="3"/></td><td class="ctr2" id="c69">0%</td><td class="bar" id="d69"/><td class="ctr2" id="e69">n/a</td><td class="ctr1" id="f69">1</td><td class="ctr2" id="g69">1</td><td class="ctr1" id="h69">1</td><td class="ctr2" id="i69">1</td><td class="ctr1" id="j69">1</td><td class="ctr2" id="k69">1</td></tr><tr><td id="a45"><a href="MetricRegistryTest.java.html#L632" class="el_method">lambda$infersGaugeType$25()</a></td><td class="bar" id="b70"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="3" alt="3"/></td><td class="ctr2" id="c70">0%</td><td class="bar" id="d70"/><td class="ctr2" id="e70">n/a</td><td class="ctr1" id="f70">1</td><td class="ctr2" id="g70">1</td><td class="ctr1" id="h70">1</td><td class="ctr2" id="i70">1</td><td class="ctr1" id="j70">1</td><td class="ctr2" id="k70">1</td></tr><tr><td id="a57"><a href="MetricRegistryTest.java.html#L267" class="el_method">lambda$settableGaugeIsTreatedLikeAGauge$10()</a></td><td class="bar" id="b71"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="3" alt="3"/></td><td class="ctr2" id="c71">0%</td><td class="bar" id="d71"/><td class="ctr2" id="e71">n/a</td><td class="ctr1" id="f71">1</td><td class="ctr2" id="g71">1</td><td class="ctr1" id="h71">1</td><td class="ctr2" id="i71">1</td><td class="ctr1" id="j71">1</td><td class="ctr2" id="k71">1</td></tr><tr><td id="a32"><a href="MetricRegistryTest.java.html#L255" class="el_method">lambda$accessingACustomGaugeRegistersAndReusesIt$9()</a></td><td class="bar" id="b72"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="3" alt="3"/></td><td class="ctr2" id="c72">0%</td><td class="bar" id="d72"/><td class="ctr2" id="e72">n/a</td><td class="ctr1" id="f72">1</td><td class="ctr2" id="g72">1</td><td class="ctr1" id="h72">1</td><td class="ctr2" id="i72">1</td><td class="ctr1" id="j72">1</td><td class="ctr2" id="k72">1</td></tr><tr><td id="a35"><a href="MetricRegistryTest.java.html#L197" class="el_method">lambda$accessingACustomTimerRegistersAndReusesIt$4()</a></td><td class="bar" id="b73"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="3" alt="3"/></td><td class="ctr2" id="c73">0%</td><td class="bar" id="d73"/><td class="ctr2" id="e73">n/a</td><td class="ctr1" id="f73">1</td><td class="ctr2" id="g73">1</td><td class="ctr1" id="h73">1</td><td class="ctr2" id="i73">1</td><td class="ctr1" id="j73">1</td><td class="ctr2" id="k73">1</td></tr><tr><td id="a34"><a href="MetricRegistryTest.java.html#L156" class="el_method">lambda$accessingACustomMeterRegistersAndReusesIt$3()</a></td><td class="bar" id="b74"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="3" alt="3"/></td><td class="ctr2" id="c74">0%</td><td class="bar" id="d74"/><td class="ctr2" id="e74">n/a</td><td class="ctr1" id="f74">1</td><td class="ctr2" id="g74">1</td><td class="ctr1" id="h74">1</td><td class="ctr2" id="i74">1</td><td class="ctr1" id="j74">1</td><td class="ctr2" id="k74">1</td></tr><tr><td id="a33"><a href="MetricRegistryTest.java.html#L115" class="el_method">lambda$accessingACustomHistogramRegistersAndReusesIt$2()</a></td><td class="bar" id="b75"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="3" alt="3"/></td><td class="ctr2" id="c75">0%</td><td class="bar" id="d75"/><td class="ctr2" id="e75">n/a</td><td class="ctr1" id="f75">1</td><td class="ctr2" id="g75">1</td><td class="ctr1" id="h75">1</td><td class="ctr2" id="i75">1</td><td class="ctr1" id="j75">1</td><td class="ctr2" id="k75">1</td></tr><tr><td id="a31"><a href="MetricRegistryTest.java.html#L73" class="el_method">lambda$accessingACustomCounterRegistersAndReusesTheCounter$1()</a></td><td class="bar" id="b76"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="3" alt="3"/></td><td class="ctr2" id="c76">0%</td><td class="bar" id="d76"/><td class="ctr2" id="e76">n/a</td><td class="ctr1" id="f76">1</td><td class="ctr2" id="g76">1</td><td class="ctr1" id="h76">1</td><td class="ctr2" id="i76">1</td><td class="ctr1" id="j76">1</td><td class="ctr2" id="k76">1</td></tr><tr><td id="a44"><a href="MetricRegistryTest.java.html#L454" class="el_method">lambda$concatenatesClassesWithoutCanonicalNamesWithStrings$15()</a></td><td class="bar" id="b77"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="c77">0%</td><td class="bar" id="d77"/><td class="ctr2" id="e77">n/a</td><td class="ctr1" id="f77">1</td><td class="ctr2" id="g77">1</td><td class="ctr1" id="h77">1</td><td class="ctr2" id="i77">1</td><td class="ctr1" id="j77">1</td><td class="ctr2" id="k77">1</td></tr><tr><td id="a37"><a href="MetricRegistryTest.java.html#L232" class="el_method">lambda$accessingAnExistingGaugeReusesIt$6()</a></td><td class="bar" id="b78"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="c78">0%</td><td class="bar" id="d78"/><td class="ctr2" id="e78">n/a</td><td class="ctr1" id="f78">1</td><td class="ctr2" id="g78">1</td><td class="ctr1" id="h78">1</td><td class="ctr2" id="i78">1</td><td class="ctr1" id="j78">1</td><td class="ctr2" id="k78">1</td></tr><tr><td id="a36"><a href="MetricRegistryTest.java.html#L232" class="el_method">lambda$accessingAnExistingGaugeReusesIt$5()</a></td><td class="bar" id="b79"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="c79">0%</td><td class="bar" id="d79"/><td class="ctr2" id="e79">n/a</td><td class="ctr1" id="f79">1</td><td class="ctr2" id="g79">1</td><td class="ctr1" id="h79">1</td><td class="ctr2" id="i79">1</td><td class="ctr1" id="j79">1</td><td class="ctr2" id="k79">1</td></tr><tr><td id="a46"><a href="MetricRegistryTest.java.html#L22" class="el_method">lambda$new$0()</a></td><td class="bar" id="b80"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="c80">0%</td><td class="bar" id="d80"/><td class="ctr2" id="e80">n/a</td><td class="ctr1" id="f80">1</td><td class="ctr2" id="g80">1</td><td class="ctr1" id="h80">1</td><td class="ctr2" id="i80">1</td><td class="ctr1" id="j80">1</td><td class="ctr2" id="k80">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryTest.java.html
    deleted file mode 100644
    index 81f554be96..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/MetricRegistryTest.java.html
    +++ /dev/null
    @@ -1,644 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>MetricRegistryTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">MetricRegistryTest.java</span></div><h1>MetricRegistryTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Assert;
    -import org.junit.Before;
    -import org.junit.Test;
    -
    -import java.util.HashMap;
    -import java.util.Map;
    -import java.util.Set;
    -import java.util.stream.Collectors;
    -
    -import static com.codahale.metrics.MetricRegistry.name;
    -import static org.assertj.core.api.Assertions.assertThat;
    -import static org.assertj.core.api.Assertions.entry;
    -import static org.mockito.Mockito.mock;
    -import static org.mockito.Mockito.never;
    -import static org.mockito.Mockito.verify;
    -
    -<span class="nc" id="L19">public class MetricRegistryTest {</span>
    -<span class="nc" id="L20">    private final MetricRegistryListener listener = mock(MetricRegistryListener.class);</span>
    -<span class="nc" id="L21">    private final MetricRegistry registry = new MetricRegistry();</span>
    -<span class="nc" id="L22">    private final Gauge&lt;String&gt; gauge = () -&gt; &quot;&quot;;</span>
    -<span class="nc" id="L23">    private final SettableGauge&lt;String&gt; settableGauge = new DefaultSettableGauge&lt;&gt;(&quot;&quot;);</span>
    -<span class="nc" id="L24">    private final Counter counter = mock(Counter.class);</span>
    -<span class="nc" id="L25">    private final Histogram histogram = mock(Histogram.class);</span>
    -<span class="nc" id="L26">    private final Meter meter = mock(Meter.class);</span>
    -<span class="nc" id="L27">    private final Timer timer = mock(Timer.class);</span>
    -
    -    @Before
    -    public void setUp() {
    -<span class="nc" id="L31">        registry.addListener(listener);</span>
    -<span class="nc" id="L32">    }</span>
    -
    -    @Test
    -    public void registeringAGaugeTriggersANotification() {
    -<span class="nc" id="L36">        assertThat(registry.register(&quot;thing&quot;, gauge))</span>
    -<span class="nc" id="L37">                .isEqualTo(gauge);</span>
    -
    -<span class="nc" id="L39">        verify(listener).onGaugeAdded(&quot;thing&quot;, gauge);</span>
    -<span class="nc" id="L40">    }</span>
    -
    -    @Test
    -    public void removingAGaugeTriggersANotification() {
    -<span class="nc" id="L44">        registry.register(&quot;thing&quot;, gauge);</span>
    -
    -<span class="nc" id="L46">        assertThat(registry.remove(&quot;thing&quot;))</span>
    -<span class="nc" id="L47">                .isTrue();</span>
    -
    -<span class="nc" id="L49">        verify(listener).onGaugeRemoved(&quot;thing&quot;);</span>
    -<span class="nc" id="L50">    }</span>
    -
    -    @Test
    -    public void registeringACounterTriggersANotification() {
    -<span class="nc" id="L54">        assertThat(registry.register(&quot;thing&quot;, counter))</span>
    -<span class="nc" id="L55">                .isEqualTo(counter);</span>
    -
    -<span class="nc" id="L57">        verify(listener).onCounterAdded(&quot;thing&quot;, counter);</span>
    -<span class="nc" id="L58">    }</span>
    -
    -    @Test
    -    public void accessingACounterRegistersAndReusesTheCounter() {
    -<span class="nc" id="L62">        final Counter counter1 = registry.counter(&quot;thing&quot;);</span>
    -<span class="nc" id="L63">        final Counter counter2 = registry.counter(&quot;thing&quot;);</span>
    -
    -<span class="nc" id="L65">        assertThat(counter1)</span>
    -<span class="nc" id="L66">                .isSameAs(counter2);</span>
    -
    -<span class="nc" id="L68">        verify(listener).onCounterAdded(&quot;thing&quot;, counter1);</span>
    -<span class="nc" id="L69">    }</span>
    -
    -    @Test
    -    public void accessingACustomCounterRegistersAndReusesTheCounter() {
    -<span class="nc" id="L73">        final MetricRegistry.MetricSupplier&lt;Counter&gt; supplier = () -&gt; counter;</span>
    -<span class="nc" id="L74">        final Counter counter1 = registry.counter(&quot;thing&quot;, supplier);</span>
    -<span class="nc" id="L75">        final Counter counter2 = registry.counter(&quot;thing&quot;, supplier);</span>
    -
    -<span class="nc" id="L77">        assertThat(counter1)</span>
    -<span class="nc" id="L78">                .isSameAs(counter2);</span>
    -
    -<span class="nc" id="L80">        verify(listener).onCounterAdded(&quot;thing&quot;, counter1);</span>
    -<span class="nc" id="L81">    }</span>
    -
    -
    -    @Test
    -    public void removingACounterTriggersANotification() {
    -<span class="nc" id="L86">        registry.register(&quot;thing&quot;, counter);</span>
    -
    -<span class="nc" id="L88">        assertThat(registry.remove(&quot;thing&quot;))</span>
    -<span class="nc" id="L89">                .isTrue();</span>
    -
    -<span class="nc" id="L91">        verify(listener).onCounterRemoved(&quot;thing&quot;);</span>
    -<span class="nc" id="L92">    }</span>
    -
    -    @Test
    -    public void registeringAHistogramTriggersANotification() {
    -<span class="nc" id="L96">        assertThat(registry.register(&quot;thing&quot;, histogram))</span>
    -<span class="nc" id="L97">                .isEqualTo(histogram);</span>
    -
    -<span class="nc" id="L99">        verify(listener).onHistogramAdded(&quot;thing&quot;, histogram);</span>
    -<span class="nc" id="L100">    }</span>
    -
    -    @Test
    -    public void accessingAHistogramRegistersAndReusesIt() {
    -<span class="nc" id="L104">        final Histogram histogram1 = registry.histogram(&quot;thing&quot;);</span>
    -<span class="nc" id="L105">        final Histogram histogram2 = registry.histogram(&quot;thing&quot;);</span>
    -
    -<span class="nc" id="L107">        assertThat(histogram1)</span>
    -<span class="nc" id="L108">                .isSameAs(histogram2);</span>
    -
    -<span class="nc" id="L110">        verify(listener).onHistogramAdded(&quot;thing&quot;, histogram1);</span>
    -<span class="nc" id="L111">    }</span>
    -
    -    @Test
    -    public void accessingACustomHistogramRegistersAndReusesIt() {
    -<span class="nc" id="L115">        final MetricRegistry.MetricSupplier&lt;Histogram&gt; supplier = () -&gt; histogram;</span>
    -<span class="nc" id="L116">        final Histogram histogram1 = registry.histogram(&quot;thing&quot;, supplier);</span>
    -<span class="nc" id="L117">        final Histogram histogram2 = registry.histogram(&quot;thing&quot;, supplier);</span>
    -
    -<span class="nc" id="L119">        assertThat(histogram1)</span>
    -<span class="nc" id="L120">                .isSameAs(histogram2);</span>
    -
    -<span class="nc" id="L122">        verify(listener).onHistogramAdded(&quot;thing&quot;, histogram1);</span>
    -<span class="nc" id="L123">    }</span>
    -
    -    @Test
    -    public void removingAHistogramTriggersANotification() {
    -<span class="nc" id="L127">        registry.register(&quot;thing&quot;, histogram);</span>
    -
    -<span class="nc" id="L129">        assertThat(registry.remove(&quot;thing&quot;))</span>
    -<span class="nc" id="L130">                .isTrue();</span>
    -
    -<span class="nc" id="L132">        verify(listener).onHistogramRemoved(&quot;thing&quot;);</span>
    -<span class="nc" id="L133">    }</span>
    -
    -    @Test
    -    public void registeringAMeterTriggersANotification() {
    -<span class="nc" id="L137">        assertThat(registry.register(&quot;thing&quot;, meter))</span>
    -<span class="nc" id="L138">                .isEqualTo(meter);</span>
    -
    -<span class="nc" id="L140">        verify(listener).onMeterAdded(&quot;thing&quot;, meter);</span>
    -<span class="nc" id="L141">    }</span>
    -
    -    @Test
    -    public void accessingAMeterRegistersAndReusesIt() {
    -<span class="nc" id="L145">        final Meter meter1 = registry.meter(&quot;thing&quot;);</span>
    -<span class="nc" id="L146">        final Meter meter2 = registry.meter(&quot;thing&quot;);</span>
    -
    -<span class="nc" id="L148">        assertThat(meter1)</span>
    -<span class="nc" id="L149">                .isSameAs(meter2);</span>
    -
    -<span class="nc" id="L151">        verify(listener).onMeterAdded(&quot;thing&quot;, meter1);</span>
    -<span class="nc" id="L152">    }</span>
    -
    -    @Test
    -    public void accessingACustomMeterRegistersAndReusesIt() {
    -<span class="nc" id="L156">        final MetricRegistry.MetricSupplier&lt;Meter&gt; supplier = () -&gt; meter;</span>
    -<span class="nc" id="L157">        final Meter meter1 = registry.meter(&quot;thing&quot;, supplier);</span>
    -<span class="nc" id="L158">        final Meter meter2 = registry.meter(&quot;thing&quot;, supplier);</span>
    -
    -<span class="nc" id="L160">        assertThat(meter1)</span>
    -<span class="nc" id="L161">                .isSameAs(meter2);</span>
    -
    -<span class="nc" id="L163">        verify(listener).onMeterAdded(&quot;thing&quot;, meter1);</span>
    -<span class="nc" id="L164">    }</span>
    -
    -    @Test
    -    public void removingAMeterTriggersANotification() {
    -<span class="nc" id="L168">        registry.register(&quot;thing&quot;, meter);</span>
    -
    -<span class="nc" id="L170">        assertThat(registry.remove(&quot;thing&quot;))</span>
    -<span class="nc" id="L171">                .isTrue();</span>
    -
    -<span class="nc" id="L173">        verify(listener).onMeterRemoved(&quot;thing&quot;);</span>
    -<span class="nc" id="L174">    }</span>
    -
    -    @Test
    -    public void registeringATimerTriggersANotification() {
    -<span class="nc" id="L178">        assertThat(registry.register(&quot;thing&quot;, timer))</span>
    -<span class="nc" id="L179">                .isEqualTo(timer);</span>
    -
    -<span class="nc" id="L181">        verify(listener).onTimerAdded(&quot;thing&quot;, timer);</span>
    -<span class="nc" id="L182">    }</span>
    -
    -    @Test
    -    public void accessingATimerRegistersAndReusesIt() {
    -<span class="nc" id="L186">        final Timer timer1 = registry.timer(&quot;thing&quot;);</span>
    -<span class="nc" id="L187">        final Timer timer2 = registry.timer(&quot;thing&quot;);</span>
    -
    -<span class="nc" id="L189">        assertThat(timer1)</span>
    -<span class="nc" id="L190">                .isSameAs(timer2);</span>
    -
    -<span class="nc" id="L192">        verify(listener).onTimerAdded(&quot;thing&quot;, timer1);</span>
    -<span class="nc" id="L193">    }</span>
    -
    -    @Test
    -    public void accessingACustomTimerRegistersAndReusesIt() {
    -<span class="nc" id="L197">        final MetricRegistry.MetricSupplier&lt;Timer&gt; supplier = () -&gt; timer;</span>
    -<span class="nc" id="L198">        final Timer timer1 = registry.timer(&quot;thing&quot;, supplier);</span>
    -<span class="nc" id="L199">        final Timer timer2 = registry.timer(&quot;thing&quot;, supplier);</span>
    -
    -<span class="nc" id="L201">        assertThat(timer1)</span>
    -<span class="nc" id="L202">                .isSameAs(timer2);</span>
    -
    -<span class="nc" id="L204">        verify(listener).onTimerAdded(&quot;thing&quot;, timer1);</span>
    -<span class="nc" id="L205">    }</span>
    -
    -
    -    @Test
    -    public void removingATimerTriggersANotification() {
    -<span class="nc" id="L210">        registry.register(&quot;thing&quot;, timer);</span>
    -
    -<span class="nc" id="L212">        assertThat(registry.remove(&quot;thing&quot;))</span>
    -<span class="nc" id="L213">                .isTrue();</span>
    -
    -<span class="nc" id="L215">        verify(listener).onTimerRemoved(&quot;thing&quot;);</span>
    -<span class="nc" id="L216">    }</span>
    -
    -    @Test
    -    public void accessingASettableGaugeRegistersAndReusesIt() {
    -<span class="nc" id="L220">        final SettableGauge&lt;String&gt; gauge1 = registry.gauge(&quot;thing&quot;);</span>
    -<span class="nc" id="L221">        gauge1.setValue(&quot;Test&quot;);</span>
    -<span class="nc" id="L222">        final Gauge&lt;String&gt; gauge2 = registry.gauge(&quot;thing&quot;);</span>
    -
    -<span class="nc" id="L224">        assertThat(gauge1).isSameAs(gauge2);</span>
    -<span class="nc" id="L225">        assertThat(gauge2.getValue()).isEqualTo(&quot;Test&quot;);</span>
    -
    -<span class="nc" id="L227">        verify(listener).onGaugeAdded(&quot;thing&quot;, gauge1);</span>
    -<span class="nc" id="L228">    }</span>
    -
    -    @Test
    -    public void accessingAnExistingGaugeReusesIt() {
    -<span class="nc" id="L232">        final Gauge&lt;String&gt; gauge1 = registry.gauge(&quot;thing&quot;, () -&gt; () -&gt; &quot;string-gauge&quot;);</span>
    -<span class="nc" id="L233">        final Gauge&lt;String&gt; gauge2 = registry.gauge(&quot;thing&quot;, () -&gt; new DefaultSettableGauge&lt;&gt;(&quot;settable-gauge&quot;));</span>
    -
    -<span class="nc" id="L235">        assertThat(gauge1).isSameAs(gauge2);</span>
    -<span class="nc" id="L236">        assertThat(gauge2.getValue()).isEqualTo(&quot;string-gauge&quot;);</span>
    -
    -<span class="nc" id="L238">        verify(listener).onGaugeAdded(&quot;thing&quot;, gauge1);</span>
    -<span class="nc" id="L239">    }</span>
    -
    -    @Test
    -    public void accessingAnExistingSettableGaugeReusesIt() {
    -<span class="nc" id="L243">        final Gauge&lt;String&gt; gauge1 = registry.gauge(&quot;thing&quot;, () -&gt; new DefaultSettableGauge&lt;&gt;(&quot;settable-gauge&quot;));</span>
    -<span class="nc" id="L244">        final Gauge&lt;String&gt; gauge2 = registry.gauge(&quot;thing&quot;);</span>
    -
    -<span class="nc" id="L246">        assertThat(gauge1).isSameAs(gauge2);</span>
    -<span class="nc" id="L247">        assertThat(gauge2.getValue()).isEqualTo(&quot;settable-gauge&quot;);</span>
    -
    -<span class="nc" id="L249">        verify(listener).onGaugeAdded(&quot;thing&quot;, gauge1);</span>
    -<span class="nc" id="L250">    }</span>
    -
    -    @Test
    -    @SuppressWarnings(&quot;rawtypes&quot;)
    -    public void accessingACustomGaugeRegistersAndReusesIt() {
    -<span class="nc" id="L255">        final MetricRegistry.MetricSupplier&lt;Gauge&gt; supplier = () -&gt; gauge;</span>
    -<span class="nc" id="L256">        final Gauge gauge1 = registry.gauge(&quot;thing&quot;, supplier);</span>
    -<span class="nc" id="L257">        final Gauge gauge2 = registry.gauge(&quot;thing&quot;, supplier);</span>
    -
    -<span class="nc" id="L259">        assertThat(gauge1)</span>
    -<span class="nc" id="L260">                .isSameAs(gauge2);</span>
    -
    -<span class="nc" id="L262">        verify(listener).onGaugeAdded(&quot;thing&quot;, gauge1);</span>
    -<span class="nc" id="L263">    }</span>
    -
    -    @Test
    -    public void settableGaugeIsTreatedLikeAGauge() {
    -<span class="nc" id="L267">        final MetricRegistry.MetricSupplier&lt;SettableGauge&lt;String&gt;&gt; supplier = () -&gt; settableGauge;</span>
    -<span class="nc" id="L268">        final SettableGauge&lt;String&gt; gauge1 = registry.gauge(&quot;thing&quot;, supplier);</span>
    -<span class="nc" id="L269">        final SettableGauge&lt;String&gt; gauge2 = registry.gauge(&quot;thing&quot;, supplier);</span>
    -
    -<span class="nc" id="L271">        assertThat(gauge1)</span>
    -<span class="nc" id="L272">                .isSameAs(gauge2);</span>
    -
    -<span class="nc" id="L274">        verify(listener).onGaugeAdded(&quot;thing&quot;, gauge1);</span>
    -<span class="nc" id="L275">    }</span>
    -
    -    @Test
    -    public void addingAListenerWithExistingMetricsCatchesItUp() {
    -<span class="nc" id="L279">        registry.register(&quot;gauge&quot;, gauge);</span>
    -<span class="nc" id="L280">        registry.register(&quot;counter&quot;, counter);</span>
    -<span class="nc" id="L281">        registry.register(&quot;histogram&quot;, histogram);</span>
    -<span class="nc" id="L282">        registry.register(&quot;meter&quot;, meter);</span>
    -<span class="nc" id="L283">        registry.register(&quot;timer&quot;, timer);</span>
    -
    -<span class="nc" id="L285">        final MetricRegistryListener other = mock(MetricRegistryListener.class);</span>
    -<span class="nc" id="L286">        registry.addListener(other);</span>
    -
    -<span class="nc" id="L288">        verify(other).onGaugeAdded(&quot;gauge&quot;, gauge);</span>
    -<span class="nc" id="L289">        verify(other).onCounterAdded(&quot;counter&quot;, counter);</span>
    -<span class="nc" id="L290">        verify(other).onHistogramAdded(&quot;histogram&quot;, histogram);</span>
    -<span class="nc" id="L291">        verify(other).onMeterAdded(&quot;meter&quot;, meter);</span>
    -<span class="nc" id="L292">        verify(other).onTimerAdded(&quot;timer&quot;, timer);</span>
    -<span class="nc" id="L293">    }</span>
    -
    -    @Test
    -    public void aRemovedListenerDoesNotReceiveUpdates() {
    -<span class="nc" id="L297">        registry.register(&quot;gauge&quot;, gauge);</span>
    -<span class="nc" id="L298">        registry.removeListener(listener);</span>
    -<span class="nc" id="L299">        registry.register(&quot;gauge2&quot;, gauge);</span>
    -
    -<span class="nc" id="L301">        verify(listener, never()).onGaugeAdded(&quot;gauge2&quot;, gauge);</span>
    -<span class="nc" id="L302">    }</span>
    -
    -    @Test
    -    public void hasAMapOfRegisteredGauges() {
    -<span class="nc" id="L306">        registry.register(&quot;gauge&quot;, gauge);</span>
    -
    -<span class="nc" id="L308">        assertThat(registry.getGauges())</span>
    -<span class="nc" id="L309">                .contains(entry(&quot;gauge&quot;, gauge));</span>
    -<span class="nc" id="L310">    }</span>
    -
    -    @Test
    -    public void hasAMapOfRegisteredCounters() {
    -<span class="nc" id="L314">        registry.register(&quot;counter&quot;, counter);</span>
    -
    -<span class="nc" id="L316">        assertThat(registry.getCounters())</span>
    -<span class="nc" id="L317">                .contains(entry(&quot;counter&quot;, counter));</span>
    -<span class="nc" id="L318">    }</span>
    -
    -    @Test
    -    public void hasAMapOfRegisteredHistograms() {
    -<span class="nc" id="L322">        registry.register(&quot;histogram&quot;, histogram);</span>
    -
    -<span class="nc" id="L324">        assertThat(registry.getHistograms())</span>
    -<span class="nc" id="L325">                .contains(entry(&quot;histogram&quot;, histogram));</span>
    -<span class="nc" id="L326">    }</span>
    -
    -    @Test
    -    public void hasAMapOfRegisteredMeters() {
    -<span class="nc" id="L330">        registry.register(&quot;meter&quot;, meter);</span>
    -
    -<span class="nc" id="L332">        assertThat(registry.getMeters())</span>
    -<span class="nc" id="L333">                .contains(entry(&quot;meter&quot;, meter));</span>
    -<span class="nc" id="L334">    }</span>
    -
    -    @Test
    -    public void hasAMapOfRegisteredTimers() {
    -<span class="nc" id="L338">        registry.register(&quot;timer&quot;, timer);</span>
    -
    -<span class="nc" id="L340">        assertThat(registry.getTimers())</span>
    -<span class="nc" id="L341">                .contains(entry(&quot;timer&quot;, timer));</span>
    -<span class="nc" id="L342">    }</span>
    -
    -    @Test
    -    public void hasASetOfRegisteredMetricNames() {
    -<span class="nc" id="L346">        registry.register(&quot;gauge&quot;, gauge);</span>
    -<span class="nc" id="L347">        registry.register(&quot;counter&quot;, counter);</span>
    -<span class="nc" id="L348">        registry.register(&quot;histogram&quot;, histogram);</span>
    -<span class="nc" id="L349">        registry.register(&quot;meter&quot;, meter);</span>
    -<span class="nc" id="L350">        registry.register(&quot;timer&quot;, timer);</span>
    -
    -<span class="nc" id="L352">        assertThat(registry.getNames())</span>
    -<span class="nc" id="L353">                .containsOnly(&quot;gauge&quot;, &quot;counter&quot;, &quot;histogram&quot;, &quot;meter&quot;, &quot;timer&quot;);</span>
    -<span class="nc" id="L354">    }</span>
    -
    -    @Test
    -    public void registersMultipleMetrics() {
    -<span class="nc" id="L358">        final MetricSet metrics = () -&gt; {</span>
    -<span class="nc" id="L359">            final Map&lt;String, Metric&gt; m = new HashMap&lt;&gt;();</span>
    -<span class="nc" id="L360">            m.put(&quot;gauge&quot;, gauge);</span>
    -<span class="nc" id="L361">            m.put(&quot;counter&quot;, counter);</span>
    -<span class="nc" id="L362">            return m;</span>
    -        };
    -
    -<span class="nc" id="L365">        registry.registerAll(metrics);</span>
    -
    -<span class="nc" id="L367">        assertThat(registry.getNames())</span>
    -<span class="nc" id="L368">                .containsOnly(&quot;gauge&quot;, &quot;counter&quot;);</span>
    -<span class="nc" id="L369">    }</span>
    -
    -    @Test
    -    public void registersMultipleMetricsWithAPrefix() {
    -<span class="nc" id="L373">        final MetricSet metrics = () -&gt; {</span>
    -<span class="nc" id="L374">            final Map&lt;String, Metric&gt; m = new HashMap&lt;&gt;();</span>
    -<span class="nc" id="L375">            m.put(&quot;gauge&quot;, gauge);</span>
    -<span class="nc" id="L376">            m.put(&quot;counter&quot;, counter);</span>
    -<span class="nc" id="L377">            return m;</span>
    -        };
    -
    -<span class="nc" id="L380">        registry.register(&quot;my&quot;, metrics);</span>
    -
    -<span class="nc" id="L382">        assertThat(registry.getNames())</span>
    -<span class="nc" id="L383">                .containsOnly(&quot;my.gauge&quot;, &quot;my.counter&quot;);</span>
    -<span class="nc" id="L384">    }</span>
    -
    -    @Test
    -    public void registersRecursiveMetricSets() {
    -<span class="nc" id="L388">        final MetricSet inner = () -&gt; {</span>
    -<span class="nc" id="L389">            final Map&lt;String, Metric&gt; m = new HashMap&lt;&gt;();</span>
    -<span class="nc" id="L390">            m.put(&quot;gauge&quot;, gauge);</span>
    -<span class="nc" id="L391">            return m;</span>
    -        };
    -
    -<span class="nc" id="L394">        final MetricSet outer = () -&gt; {</span>
    -<span class="nc" id="L395">            final Map&lt;String, Metric&gt; m = new HashMap&lt;&gt;();</span>
    -<span class="nc" id="L396">            m.put(&quot;inner&quot;, inner);</span>
    -<span class="nc" id="L397">            m.put(&quot;counter&quot;, counter);</span>
    -<span class="nc" id="L398">            return m;</span>
    -        };
    -
    -<span class="nc" id="L401">        registry.register(&quot;my&quot;, outer);</span>
    -
    -<span class="nc" id="L403">        assertThat(registry.getNames())</span>
    -<span class="nc" id="L404">                .containsOnly(&quot;my.inner.gauge&quot;, &quot;my.counter&quot;);</span>
    -<span class="nc" id="L405">    }</span>
    -
    -    @Test
    -    public void registersMetricsFromAnotherRegistry() {
    -<span class="nc" id="L409">        MetricRegistry other = new MetricRegistry();</span>
    -<span class="nc" id="L410">        other.register(&quot;gauge&quot;, gauge);</span>
    -<span class="nc" id="L411">        registry.register(&quot;nested&quot;, other);</span>
    -<span class="nc" id="L412">        assertThat(registry.getNames()).containsOnly(&quot;nested.gauge&quot;);</span>
    -<span class="nc" id="L413">    }</span>
    -
    -    @Test
    -    public void concatenatesStringsToFormADottedName() {
    -<span class="nc" id="L417">        assertThat(name(&quot;one&quot;, &quot;two&quot;, &quot;three&quot;))</span>
    -<span class="nc" id="L418">                .isEqualTo(&quot;one.two.three&quot;);</span>
    -<span class="nc" id="L419">    }</span>
    -
    -    @Test
    -    @SuppressWarnings(&quot;NullArgumentToVariableArgMethod&quot;)
    -    public void elidesNullValuesFromNamesWhenOnlyOneNullPassedIn() {
    -<span class="nc" id="L424">        assertThat(name(&quot;one&quot;, (String) null))</span>
    -<span class="nc" id="L425">                .isEqualTo(&quot;one&quot;);</span>
    -<span class="nc" id="L426">    }</span>
    -
    -    @Test
    -    public void elidesNullValuesFromNamesWhenManyNullsPassedIn() {
    -<span class="nc" id="L430">        assertThat(name(&quot;one&quot;, null, null))</span>
    -<span class="nc" id="L431">                .isEqualTo(&quot;one&quot;);</span>
    -<span class="nc" id="L432">    }</span>
    -
    -    @Test
    -    public void elidesNullValuesFromNamesWhenNullAndNotNullPassedIn() {
    -<span class="nc" id="L436">        assertThat(name(&quot;one&quot;, null, &quot;three&quot;))</span>
    -<span class="nc" id="L437">                .isEqualTo(&quot;one.three&quot;);</span>
    -<span class="nc" id="L438">    }</span>
    -
    -    @Test
    -    public void elidesEmptyStringsFromNames() {
    -<span class="nc" id="L442">        assertThat(name(&quot;one&quot;, &quot;&quot;, &quot;three&quot;))</span>
    -<span class="nc" id="L443">                .isEqualTo(&quot;one.three&quot;);</span>
    -<span class="nc" id="L444">    }</span>
    -
    -    @Test
    -    public void concatenatesClassNamesWithStringsToFormADottedName() {
    -<span class="nc" id="L448">        assertThat(name(MetricRegistryTest.class, &quot;one&quot;, &quot;two&quot;))</span>
    -<span class="nc" id="L449">                .isEqualTo(&quot;com.codahale.metrics.MetricRegistryTest.one.two&quot;);</span>
    -<span class="nc" id="L450">    }</span>
    -
    -    @Test
    -    public void concatenatesClassesWithoutCanonicalNamesWithStrings() {
    -<span class="nc" id="L454">        final Gauge&lt;String&gt; g = () -&gt; null;</span>
    -
    -<span class="nc" id="L456">        assertThat(name(g.getClass(), &quot;one&quot;, &quot;two&quot;))</span>
    -<span class="nc" id="L457">                .matches(&quot;com\\.codahale\\.metrics\\.MetricRegistryTest.+?\\.one\\.two&quot;);</span>
    -<span class="nc" id="L458">    }</span>
    -
    -    @Test
    -    public void removesMetricsMatchingAFilter() {
    -<span class="nc" id="L462">        registry.timer(&quot;timer-1&quot;);</span>
    -<span class="nc" id="L463">        registry.timer(&quot;timer-2&quot;);</span>
    -<span class="nc" id="L464">        registry.histogram(&quot;histogram-1&quot;);</span>
    -
    -<span class="nc" id="L466">        assertThat(registry.getNames())</span>
    -<span class="nc" id="L467">                .contains(&quot;timer-1&quot;, &quot;timer-2&quot;, &quot;histogram-1&quot;);</span>
    -
    -<span class="nc" id="L469">        registry.removeMatching((name, metric) -&gt; name.endsWith(&quot;1&quot;));</span>
    -
    -<span class="nc" id="L471">        assertThat(registry.getNames())</span>
    -<span class="nc" id="L472">                .doesNotContain(&quot;timer-1&quot;, &quot;histogram-1&quot;);</span>
    -<span class="nc" id="L473">        assertThat(registry.getNames())</span>
    -<span class="nc" id="L474">                .contains(&quot;timer-2&quot;);</span>
    -
    -<span class="nc" id="L476">        verify(listener).onTimerRemoved(&quot;timer-1&quot;);</span>
    -<span class="nc" id="L477">        verify(listener).onHistogramRemoved(&quot;histogram-1&quot;);</span>
    -<span class="nc" id="L478">    }</span>
    -
    -    @Test
    -    public void addingChildMetricAfterRegister() {
    -<span class="nc" id="L482">        MetricRegistry parent = new MetricRegistry();</span>
    -<span class="nc" id="L483">        MetricRegistry child = new MetricRegistry();</span>
    -
    -<span class="nc" id="L485">        child.counter(&quot;test-1&quot;);</span>
    -<span class="nc" id="L486">        parent.register(&quot;child&quot;, child);</span>
    -<span class="nc" id="L487">        child.counter(&quot;test-2&quot;);</span>
    -
    -<span class="nc" id="L489">        Set&lt;String&gt; parentMetrics = parent.getMetrics().keySet();</span>
    -<span class="nc" id="L490">        Set&lt;String&gt; childMetrics = child.getMetrics().keySet();</span>
    -
    -<span class="nc" id="L492">        assertThat(parentMetrics)</span>
    -<span class="nc" id="L493">                .isEqualTo(childMetrics.stream().map(m -&gt; &quot;child.&quot; + m).collect(Collectors.toSet()));</span>
    -<span class="nc" id="L494">    }</span>
    -
    -    @Test
    -    public void addingMultipleChildMetricsAfterRegister() {
    -<span class="nc" id="L498">        MetricRegistry parent = new MetricRegistry();</span>
    -<span class="nc" id="L499">        MetricRegistry child = new MetricRegistry();</span>
    -
    -<span class="nc" id="L501">        child.counter(&quot;test-1&quot;);</span>
    -<span class="nc" id="L502">        child.counter(&quot;test-2&quot;);</span>
    -<span class="nc" id="L503">        parent.register(&quot;child&quot;, child);</span>
    -<span class="nc" id="L504">        child.counter(&quot;test-3&quot;);</span>
    -<span class="nc" id="L505">        child.counter(&quot;test-4&quot;);</span>
    -
    -<span class="nc" id="L507">        Set&lt;String&gt; parentMetrics = parent.getMetrics().keySet();</span>
    -<span class="nc" id="L508">        Set&lt;String&gt; childMetrics = child.getMetrics().keySet();</span>
    -
    -<span class="nc" id="L510">        assertThat(parentMetrics)</span>
    -<span class="nc" id="L511">                .isEqualTo(childMetrics.stream().map(m -&gt; &quot;child.&quot; + m).collect(Collectors.toSet()));</span>
    -<span class="nc" id="L512">    }</span>
    -
    -    @Test
    -    public void addingDeepChildMetricsAfterRegister() {
    -<span class="nc" id="L516">        MetricRegistry parent = new MetricRegistry();</span>
    -<span class="nc" id="L517">        MetricRegistry child = new MetricRegistry();</span>
    -<span class="nc" id="L518">        MetricRegistry deepChild = new MetricRegistry();</span>
    -
    -<span class="nc" id="L520">        deepChild.counter(&quot;test-1&quot;);</span>
    -<span class="nc" id="L521">        child.register(&quot;deep-child&quot;, deepChild);</span>
    -<span class="nc" id="L522">        deepChild.counter(&quot;test-2&quot;);</span>
    -
    -<span class="nc" id="L524">        child.counter(&quot;test-3&quot;);</span>
    -<span class="nc" id="L525">        parent.register(&quot;child&quot;, child);</span>
    -<span class="nc" id="L526">        child.counter(&quot;test-4&quot;);</span>
    -
    -<span class="nc" id="L528">        deepChild.counter(&quot;test-5&quot;);</span>
    -
    -<span class="nc" id="L530">        Set&lt;String&gt; parentMetrics = parent.getMetrics().keySet();</span>
    -<span class="nc" id="L531">        Set&lt;String&gt; childMetrics = child.getMetrics().keySet();</span>
    -<span class="nc" id="L532">        Set&lt;String&gt; deepChildMetrics = deepChild.getMetrics().keySet();</span>
    -
    -<span class="nc" id="L534">        assertThat(parentMetrics)</span>
    -<span class="nc" id="L535">                .isEqualTo(childMetrics.stream().map(m -&gt; &quot;child.&quot; + m).collect(Collectors.toSet()));</span>
    -
    -<span class="nc" id="L537">        assertThat(childMetrics)</span>
    -<span class="nc" id="L538">                .containsAll(deepChildMetrics.stream().map(m -&gt; &quot;deep-child.&quot; + m).collect(Collectors.toSet()));</span>
    -
    -<span class="nc" id="L540">        assertThat(deepChildMetrics.size()).isEqualTo(3);</span>
    -<span class="nc" id="L541">        assertThat(childMetrics.size()).isEqualTo(5);</span>
    -<span class="nc" id="L542">    }</span>
    -
    -    @Test
    -    public void removingChildMetricAfterRegister() {
    -<span class="nc" id="L546">        MetricRegistry parent = new MetricRegistry();</span>
    -<span class="nc" id="L547">        MetricRegistry child = new MetricRegistry();</span>
    -
    -<span class="nc" id="L549">        child.counter(&quot;test-1&quot;);</span>
    -<span class="nc" id="L550">        parent.register(&quot;child&quot;, child);</span>
    -<span class="nc" id="L551">        child.counter(&quot;test-2&quot;);</span>
    -
    -<span class="nc" id="L553">        child.remove(&quot;test-1&quot;);</span>
    -
    -<span class="nc" id="L555">        Set&lt;String&gt; parentMetrics = parent.getMetrics().keySet();</span>
    -<span class="nc" id="L556">        Set&lt;String&gt; childMetrics = child.getMetrics().keySet();</span>
    -
    -<span class="nc" id="L558">        assertThat(parentMetrics)</span>
    -<span class="nc" id="L559">                .isEqualTo(childMetrics.stream().map(m -&gt; &quot;child.&quot; + m).collect(Collectors.toSet()));</span>
    -
    -<span class="nc" id="L561">        assertThat(childMetrics).doesNotContain(&quot;test-1&quot;);</span>
    -<span class="nc" id="L562">    }</span>
    -
    -    @Test
    -    public void removingMultipleChildMetricsAfterRegister() {
    -<span class="nc" id="L566">        MetricRegistry parent = new MetricRegistry();</span>
    -<span class="nc" id="L567">        MetricRegistry child = new MetricRegistry();</span>
    -
    -<span class="nc" id="L569">        child.counter(&quot;test-1&quot;);</span>
    -<span class="nc" id="L570">        child.counter(&quot;test-2&quot;);</span>
    -<span class="nc" id="L571">        parent.register(&quot;child&quot;, child);</span>
    -<span class="nc" id="L572">        child.counter(&quot;test-3&quot;);</span>
    -<span class="nc" id="L573">        child.counter(&quot;test-4&quot;);</span>
    -
    -<span class="nc" id="L575">        child.remove(&quot;test-1&quot;);</span>
    -<span class="nc" id="L576">        child.remove(&quot;test-3&quot;);</span>
    -
    -<span class="nc" id="L578">        Set&lt;String&gt; parentMetrics = parent.getMetrics().keySet();</span>
    -<span class="nc" id="L579">        Set&lt;String&gt; childMetrics = child.getMetrics().keySet();</span>
    -
    -<span class="nc" id="L581">        assertThat(parentMetrics)</span>
    -<span class="nc" id="L582">                .isEqualTo(childMetrics.stream().map(m -&gt; &quot;child.&quot; + m).collect(Collectors.toSet()));</span>
    -
    -<span class="nc" id="L584">        assertThat(childMetrics).doesNotContain(&quot;test-1&quot;, &quot;test-3&quot;);</span>
    -<span class="nc" id="L585">    }</span>
    -
    -    @Test
    -    public void removingDeepChildMetricsAfterRegister() {
    -<span class="nc" id="L589">        MetricRegistry parent = new MetricRegistry();</span>
    -<span class="nc" id="L590">        MetricRegistry child = new MetricRegistry();</span>
    -<span class="nc" id="L591">        MetricRegistry deepChild = new MetricRegistry();</span>
    -
    -<span class="nc" id="L593">        deepChild.counter(&quot;test-1&quot;);</span>
    -<span class="nc" id="L594">        child.register(&quot;deep-child&quot;, deepChild);</span>
    -<span class="nc" id="L595">        deepChild.counter(&quot;test-2&quot;);</span>
    -
    -<span class="nc" id="L597">        child.counter(&quot;test-3&quot;);</span>
    -<span class="nc" id="L598">        parent.register(&quot;child&quot;, child);</span>
    -<span class="nc" id="L599">        child.counter(&quot;test-4&quot;);</span>
    -
    -<span class="nc" id="L601">        deepChild.remove(&quot;test-2&quot;);</span>
    -
    -<span class="nc" id="L603">        Set&lt;String&gt; parentMetrics = parent.getMetrics().keySet();</span>
    -<span class="nc" id="L604">        Set&lt;String&gt; childMetrics = child.getMetrics().keySet();</span>
    -<span class="nc" id="L605">        Set&lt;String&gt; deepChildMetrics = deepChild.getMetrics().keySet();</span>
    -
    -<span class="nc" id="L607">        assertThat(parentMetrics)</span>
    -<span class="nc" id="L608">                .isEqualTo(childMetrics.stream().map(m -&gt; &quot;child.&quot; + m).collect(Collectors.toSet()));</span>
    -
    -<span class="nc" id="L610">        assertThat(childMetrics)</span>
    -<span class="nc" id="L611">                .containsAll(deepChildMetrics.stream().map(m -&gt; &quot;deep-child.&quot; + m).collect(Collectors.toSet()));</span>
    -
    -<span class="nc" id="L613">        assertThat(deepChildMetrics).doesNotContain(&quot;test-2&quot;);</span>
    -
    -<span class="nc" id="L615">        assertThat(deepChildMetrics.size()).isEqualTo(1);</span>
    -<span class="nc" id="L616">        assertThat(childMetrics.size()).isEqualTo(3);</span>
    -<span class="nc" id="L617">    }</span>
    -
    -    @Test
    -    public void registerNullMetric() {
    -<span class="nc" id="L621">        MetricRegistry registry = new MetricRegistry();</span>
    -        try {
    -<span class="nc" id="L623">            registry.register(&quot;any_name&quot;, null);</span>
    -<span class="nc" id="L624">            Assert.fail(&quot;NullPointerException must be thrown !!!&quot;);</span>
    -<span class="nc" id="L625">        } catch (NullPointerException e) {</span>
    -<span class="nc" id="L626">            Assert.assertEquals(&quot;metric == null&quot;, e.getMessage());</span>
    -<span class="nc" id="L627">        }</span>
    -<span class="nc" id="L628">    }</span>
    -
    -    @Test
    -    public void infersGaugeType() {
    -<span class="nc" id="L632">        Gauge&lt;Long&gt; gauge = registry.registerGauge(&quot;gauge&quot;, () -&gt; 10_000_000_000L);</span>
    -
    -<span class="nc" id="L634">        assertThat(gauge.getValue()).isEqualTo(10_000_000_000L);</span>
    -<span class="nc" id="L635">    }</span>
    -
    -    @Test
    -    public void registersGaugeAsLambda() {
    -<span class="nc" id="L639">        registry.registerGauge(&quot;gauge&quot;, () -&gt; 3.14);</span>
    -
    -<span class="nc" id="L641">        assertThat(registry.gauge(&quot;gauge&quot;).getValue()).isEqualTo(3.14);</span>
    -<span class="nc" id="L642">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$EmptyConcurrentMap.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$EmptyConcurrentMap.html
    deleted file mode 100644
    index 3bfe25dccb..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$EmptyConcurrentMap.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoopMetricRegistry.EmptyConcurrentMap</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">NoopMetricRegistry.EmptyConcurrentMap</span></div><h1>NoopMetricRegistry.EmptyConcurrentMap</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">30 of 30</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">16</td><td class="ctr2">16</td><td class="ctr1">16</td><td class="ctr2">16</td><td class="ctr1">16</td><td class="ctr2">16</td></tr></tfoot><tbody><tr><td id="a9"><a href="NoopMetricRegistry.java.html#L670" class="el_method">putIfAbsent(Object, Object)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a11"><a href="NoopMetricRegistry.java.html#L678" class="el_method">remove(Object, Object)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a13"><a href="NoopMetricRegistry.java.html#L686" class="el_method">replace(Object, Object, Object)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a12"><a href="NoopMetricRegistry.java.html#L694" class="el_method">replace(Object, Object)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a14"><a href="NoopMetricRegistry.java.html#L702" class="el_method">size()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a5"><a href="NoopMetricRegistry.java.html#L710" class="el_method">isEmpty()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="NoopMetricRegistry.java.html#L718" class="el_method">containsKey(Object)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a2"><a href="NoopMetricRegistry.java.html#L726" class="el_method">containsValue(Object)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a4"><a href="NoopMetricRegistry.java.html#L734" class="el_method">get(Object)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a7"><a href="NoopMetricRegistry.java.html#L742" class="el_method">put(Object, Object)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">1</td><td class="ctr2" id="i9">1</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a10"><a href="NoopMetricRegistry.java.html#L750" class="el_method">remove(Object)</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">1</td><td class="ctr2" id="i10">1</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a6"><a href="NoopMetricRegistry.java.html#L774" class="el_method">keySet()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">1</td><td class="ctr2" id="i11">1</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a15"><a href="NoopMetricRegistry.java.html#L782" class="el_method">values()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i12">1</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a3"><a href="NoopMetricRegistry.java.html#L790" class="el_method">entrySet()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h13">1</td><td class="ctr2" id="i13">1</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a8"><a href="NoopMetricRegistry.java.html#L759" class="el_method">putAll(Map)</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="1" alt="1"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h14">1</td><td class="ctr2" id="i14">1</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a0"><a href="NoopMetricRegistry.java.html#L767" class="el_method">clear()</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="1" alt="1"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h15">1</td><td class="ctr2" id="i15">1</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$EmptySnapshot.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$EmptySnapshot.html
    deleted file mode 100644
    index 9faa21602b..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$EmptySnapshot.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoopMetricRegistry.EmptySnapshot</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">NoopMetricRegistry.EmptySnapshot</span></div><h1>NoopMetricRegistry.EmptySnapshot</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">23 of 23</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">9</td><td class="ctr2">9</td><td class="ctr1">10</td><td class="ctr2">10</td><td class="ctr1">9</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a8"><a href="NoopMetricRegistry.java.html#L286" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="8" alt="8"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a5"><a href="NoopMetricRegistry.java.html#L294" class="el_method">getValue(double)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a6"><a href="NoopMetricRegistry.java.html#L302" class="el_method">getValues()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a7"><a href="NoopMetricRegistry.java.html#L310" class="el_method">size()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a1"><a href="NoopMetricRegistry.java.html#L318" class="el_method">getMax()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a2"><a href="NoopMetricRegistry.java.html#L326" class="el_method">getMean()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a3"><a href="NoopMetricRegistry.java.html#L334" class="el_method">getMin()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a4"><a href="NoopMetricRegistry.java.html#L342" class="el_method">getStdDev()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a0"><a href="NoopMetricRegistry.java.html#L351" class="el_method">dump(OutputStream)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="1" alt="1"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopCounter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopCounter.html
    deleted file mode 100644
    index ae425fe501..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopCounter.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoopMetricRegistry.NoopCounter</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">NoopMetricRegistry.NoopCounter</span></div><h1>NoopMetricRegistry.NoopCounter</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">14 of 14</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">7</td><td class="ctr2">7</td><td class="ctr1">7</td><td class="ctr2">7</td><td class="ctr1">7</td><td class="ctr2">7</td></tr></tfoot><tbody><tr><td id="a6"><a href="NoopMetricRegistry.java.html#L561" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a5"><a href="NoopMetricRegistry.java.html#L560" class="el_method">NoopMetricRegistry.NoopCounter()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="72" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="NoopMetricRegistry.java.html#L600" class="el_method">getCount()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="2" alt="2"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a3"><a href="NoopMetricRegistry.java.html#L569" class="el_method">inc()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="1" alt="1"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a4"><a href="NoopMetricRegistry.java.html#L577" class="el_method">inc(long)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="1" alt="1"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a0"><a href="NoopMetricRegistry.java.html#L585" class="el_method">dec()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="1" alt="1"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="NoopMetricRegistry.java.html#L593" class="el_method">dec(long)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="1" alt="1"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopGauge.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopGauge.html
    deleted file mode 100644
    index e890daa3e6..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopGauge.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoopMetricRegistry.NoopGauge</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">NoopMetricRegistry.NoopGauge</span></div><h1>NoopMetricRegistry.NoopGauge</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">10 of 10</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="NoopMetricRegistry.java.html#L274" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="NoopMetricRegistry.java.html#L273" class="el_method">NoopMetricRegistry.NoopGauge()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="72" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="NoopMetricRegistry.java.html#L281" class="el_method">getValue()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="2" alt="2"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopHistogram$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopHistogram$1.html
    deleted file mode 100644
    index 0c87cc28df..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopHistogram$1.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoopMetricRegistry.NoopHistogram.new Reservoir() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">NoopMetricRegistry.NoopHistogram.new Reservoir() {...}</span></div><h1>NoopMetricRegistry.NoopHistogram.new Reservoir() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">8 of 8</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">4</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a3"><a href="NoopMetricRegistry.java.html#L497" class="el_method">{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="3" alt="3"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="NoopMetricRegistry.java.html#L503" class="el_method">size()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="2" alt="2"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="NoopMetricRegistry.java.html#L519" class="el_method">getSnapshot()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="2" alt="2"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a href="NoopMetricRegistry.java.html#L512" class="el_method">update(long)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="1" alt="1"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopHistogram.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopHistogram.html
    deleted file mode 100644
    index aae4d9eb6a..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopHistogram.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoopMetricRegistry.NoopHistogram</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">NoopMetricRegistry.NoopHistogram</span></div><h1>NoopMetricRegistry.NoopHistogram</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">19 of 19</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">8</td><td class="ctr2">8</td><td class="ctr1">6</td><td class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a3"><a href="NoopMetricRegistry.java.html#L496" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="NoopMetricRegistry.java.html#L524" class="el_method">NoopMetricRegistry.NoopHistogram()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="53" height="10" title="4" alt="4"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="NoopMetricRegistry.java.html#L548" class="el_method">getCount()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a1"><a href="NoopMetricRegistry.java.html#L556" class="el_method">getSnapshot()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a4"><a href="NoopMetricRegistry.java.html#L533" class="el_method">update(int)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="1" alt="1"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a5"><a href="NoopMetricRegistry.java.html#L541" class="el_method">update(long)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="1" alt="1"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopMeter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopMeter.html
    deleted file mode 100644
    index 46d8559b73..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopMeter.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoopMetricRegistry.NoopMeter</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">NoopMetricRegistry.NoopMeter</span></div><h1>NoopMetricRegistry.NoopMeter</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">20 of 20</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">9</td><td class="ctr2">9</td><td class="ctr1">9</td><td class="ctr2">9</td><td class="ctr1">9</td><td class="ctr2">9</td></tr></tfoot><tbody><tr><td id="a8"><a href="NoopMetricRegistry.java.html#L605" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a7"><a href="NoopMetricRegistry.java.html#L604" class="el_method">NoopMetricRegistry.NoopMeter()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="72" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="NoopMetricRegistry.java.html#L628" class="el_method">getCount()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="2" alt="2"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a1"><a href="NoopMetricRegistry.java.html#L636" class="el_method">getFifteenMinuteRate()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="2" alt="2"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a2"><a href="NoopMetricRegistry.java.html#L644" class="el_method">getFiveMinuteRate()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="2" alt="2"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a3"><a href="NoopMetricRegistry.java.html#L652" class="el_method">getMeanRate()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="2" alt="2"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a4"><a href="NoopMetricRegistry.java.html#L660" class="el_method">getOneMinuteRate()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="2" alt="2"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a5"><a href="NoopMetricRegistry.java.html#L613" class="el_method">mark()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="1" alt="1"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a6"><a href="NoopMetricRegistry.java.html#L621" class="el_method">mark(long)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="1" alt="1"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer$Context$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer$Context$1.html
    deleted file mode 100644
    index a8634dab3f..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer$Context$1.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoopMetricRegistry.NoopTimer.Context.new Clock() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">NoopMetricRegistry.NoopTimer.Context.new Clock() {...}</span></div><h1>NoopMetricRegistry.NoopTimer.Context.new Clock() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">7 of 7</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a2"><a href="NoopMetricRegistry.java.html#L359" class="el_method">{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="3" alt="3"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="NoopMetricRegistry.java.html#L365" class="el_method">getTick()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="2" alt="2"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="NoopMetricRegistry.java.html#L373" class="el_method">getTime()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="2" alt="2"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer$Context.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer$Context.html
    deleted file mode 100644
    index 2e220cde21..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer$Context.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoopMetricRegistry.NoopTimer.Context</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">NoopMetricRegistry.NoopTimer.Context</span></div><h1>NoopMetricRegistry.NoopTimer.Context</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">13 of 13</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">5</td><td class="ctr2">5</td><td class="ctr1">4</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a1"><a href="NoopMetricRegistry.java.html#L378" class="el_method">NoopMetricRegistry.NoopTimer.Context()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="NoopMetricRegistry.java.html#L359" class="el_method">static {...}</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a3"><a href="NoopMetricRegistry.java.html#L386" class="el_method">stop()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="2" alt="2"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="NoopMetricRegistry.java.html#L395" class="el_method">close()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="1" alt="1"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer.html
    deleted file mode 100644
    index e3140fddf0..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry$NoopTimer.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoopMetricRegistry.NoopTimer</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">NoopMetricRegistry.NoopTimer</span></div><h1>NoopMetricRegistry.NoopTimer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">36 of 36</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">14</td><td class="ctr2">14</td><td class="ctr1">15</td><td class="ctr2">15</td><td class="ctr1">14</td><td class="ctr2">14</td></tr></tfoot><tbody><tr><td id="a7"><a href="NoopMetricRegistry.java.html#L355" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="10" alt="10"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a6"><a href="NoopMetricRegistry.java.html#L354" class="el_method">NoopMetricRegistry.NoopTimer()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a9"><a href="NoopMetricRegistry.java.html#L419" class="el_method">time(Callable)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a11"><a href="NoopMetricRegistry.java.html#L427" class="el_method">timeSupplier(Supplier)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="3" alt="3"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a8"><a href="NoopMetricRegistry.java.html#L443" class="el_method">time()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="2" alt="2"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a0"><a href="NoopMetricRegistry.java.html#L451" class="el_method">getCount()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="2" alt="2"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="NoopMetricRegistry.java.html#L459" class="el_method">getFifteenMinuteRate()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="2" alt="2"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a2"><a href="NoopMetricRegistry.java.html#L467" class="el_method">getFiveMinuteRate()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="2" alt="2"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a3"><a href="NoopMetricRegistry.java.html#L475" class="el_method">getMeanRate()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="2" alt="2"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a4"><a href="NoopMetricRegistry.java.html#L483" class="el_method">getOneMinuteRate()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="2" alt="2"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">1</td><td class="ctr2" id="i9">1</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a5"><a href="NoopMetricRegistry.java.html#L491" class="el_method">getSnapshot()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="2" alt="2"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">1</td><td class="ctr2" id="i10">1</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a13"><a href="NoopMetricRegistry.java.html#L404" class="el_method">update(long, TimeUnit)</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="1" alt="1"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">1</td><td class="ctr2" id="i11">1</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a12"><a href="NoopMetricRegistry.java.html#L412" class="el_method">update(Duration)</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="1" alt="1"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i12">1</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a10"><a href="NoopMetricRegistry.java.html#L436" class="el_method">time(Runnable)</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="1" alt="1"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h13">1</td><td class="ctr2" id="i13">1</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry.html
    deleted file mode 100644
    index 505f4eb590..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoopMetricRegistry</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">NoopMetricRegistry</span></div><h1>NoopMetricRegistry</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">71 of 71</td><td class="ctr2">0%</td><td class="bar">2 of 2</td><td class="ctr2">0%</td><td class="ctr1">33</td><td class="ctr2">33</td><td class="ctr1">34</td><td class="ctr2">34</td><td class="ctr1">32</td><td class="ctr2">32</td></tr></tfoot><tbody><tr><td id="a23"><a href="NoopMetricRegistry.java.html#L37" class="el_method">register(String, Metric)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a29"><a href="NoopMetricRegistry.java.html#L22" class="el_method">static {...}</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="6" alt="6"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a22"><a href="NoopMetricRegistry.java.html#L21" class="el_method">NoopMetricRegistry()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a1"><a href="NoopMetricRegistry.java.html#L29" class="el_method">buildMap()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a2"><a href="NoopMetricRegistry.java.html#L56" class="el_method">counter(String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a3"><a href="NoopMetricRegistry.java.html#L64" class="el_method">counter(String, MetricRegistry.MetricSupplier)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a18"><a href="NoopMetricRegistry.java.html#L72" class="el_method">histogram(String)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a19"><a href="NoopMetricRegistry.java.html#L80" class="el_method">histogram(String, MetricRegistry.MetricSupplier)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a20"><a href="NoopMetricRegistry.java.html#L88" class="el_method">meter(String)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a21"><a href="NoopMetricRegistry.java.html#L96" class="el_method">meter(String, MetricRegistry.MetricSupplier)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">1</td><td class="ctr2" id="i9">1</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a30"><a href="NoopMetricRegistry.java.html#L104" class="el_method">timer(String)</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">1</td><td class="ctr2" id="i10">1</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a31"><a href="NoopMetricRegistry.java.html#L112" class="el_method">timer(String, MetricRegistry.MetricSupplier)</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">1</td><td class="ctr2" id="i11">1</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a4"><a href="NoopMetricRegistry.java.html#L123" class="el_method">gauge(String)</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i12">1</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a5"><a href="NoopMetricRegistry.java.html#L132" class="el_method">gauge(String, MetricRegistry.MetricSupplier)</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h13">1</td><td class="ctr2" id="i13">1</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a26"><a href="NoopMetricRegistry.java.html#L140" class="el_method">remove(String)</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h14">1</td><td class="ctr2" id="i14">1</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a15"><a href="NoopMetricRegistry.java.html#L172" class="el_method">getNames()</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h15">1</td><td class="ctr2" id="i15">1</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a8"><a href="NoopMetricRegistry.java.html#L181" class="el_method">getGauges()</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c16">0%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h16">1</td><td class="ctr2" id="i16">1</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a9"><a href="NoopMetricRegistry.java.html#L190" class="el_method">getGauges(MetricFilter)</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c17">0%</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">1</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h17">1</td><td class="ctr2" id="i17">1</td><td class="ctr1" id="j17">1</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a6"><a href="NoopMetricRegistry.java.html#L198" class="el_method">getCounters()</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c18">0%</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f18">1</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h18">1</td><td class="ctr2" id="i18">1</td><td class="ctr1" id="j18">1</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a7"><a href="NoopMetricRegistry.java.html#L206" class="el_method">getCounters(MetricFilter)</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c19">0%</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">1</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h19">1</td><td class="ctr2" id="i19">1</td><td class="ctr1" id="j19">1</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a10"><a href="NoopMetricRegistry.java.html#L214" class="el_method">getHistograms()</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c20">0%</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f20">1</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h20">1</td><td class="ctr2" id="i20">1</td><td class="ctr1" id="j20">1</td><td class="ctr2" id="k20">1</td></tr><tr><td id="a11"><a href="NoopMetricRegistry.java.html#L222" class="el_method">getHistograms(MetricFilter)</a></td><td class="bar" id="b21"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c21">0%</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f21">1</td><td class="ctr2" id="g21">1</td><td class="ctr1" id="h21">1</td><td class="ctr2" id="i21">1</td><td class="ctr1" id="j21">1</td><td class="ctr2" id="k21">1</td></tr><tr><td id="a12"><a href="NoopMetricRegistry.java.html#L230" class="el_method">getMeters()</a></td><td class="bar" id="b22"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c22">0%</td><td class="bar" id="d22"/><td class="ctr2" id="e22">n/a</td><td class="ctr1" id="f22">1</td><td class="ctr2" id="g22">1</td><td class="ctr1" id="h22">1</td><td class="ctr2" id="i22">1</td><td class="ctr1" id="j22">1</td><td class="ctr2" id="k22">1</td></tr><tr><td id="a13"><a href="NoopMetricRegistry.java.html#L238" class="el_method">getMeters(MetricFilter)</a></td><td class="bar" id="b23"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c23">0%</td><td class="bar" id="d23"/><td class="ctr2" id="e23">n/a</td><td class="ctr1" id="f23">1</td><td class="ctr2" id="g23">1</td><td class="ctr1" id="h23">1</td><td class="ctr2" id="i23">1</td><td class="ctr1" id="j23">1</td><td class="ctr2" id="k23">1</td></tr><tr><td id="a16"><a href="NoopMetricRegistry.java.html#L246" class="el_method">getTimers()</a></td><td class="bar" id="b24"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c24">0%</td><td class="bar" id="d24"/><td class="ctr2" id="e24">n/a</td><td class="ctr1" id="f24">1</td><td class="ctr2" id="g24">1</td><td class="ctr1" id="h24">1</td><td class="ctr2" id="i24">1</td><td class="ctr1" id="j24">1</td><td class="ctr2" id="k24">1</td></tr><tr><td id="a17"><a href="NoopMetricRegistry.java.html#L254" class="el_method">getTimers(MetricFilter)</a></td><td class="bar" id="b25"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c25">0%</td><td class="bar" id="d25"/><td class="ctr2" id="e25">n/a</td><td class="ctr1" id="f25">1</td><td class="ctr2" id="g25">1</td><td class="ctr1" id="h25">1</td><td class="ctr2" id="i25">1</td><td class="ctr1" id="j25">1</td><td class="ctr2" id="k25">1</td></tr><tr><td id="a14"><a href="NoopMetricRegistry.java.html#L270" class="el_method">getMetrics()</a></td><td class="bar" id="b26"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="2" alt="2"/></td><td class="ctr2" id="c26">0%</td><td class="bar" id="d26"/><td class="ctr2" id="e26">n/a</td><td class="ctr1" id="f26">1</td><td class="ctr2" id="g26">1</td><td class="ctr1" id="h26">1</td><td class="ctr2" id="i26">1</td><td class="ctr1" id="j26">1</td><td class="ctr2" id="k26">1</td></tr><tr><td id="a24"><a href="NoopMetricRegistry.java.html#L49" class="el_method">registerAll(MetricSet)</a></td><td class="bar" id="b27"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="1" alt="1"/></td><td class="ctr2" id="c27">0%</td><td class="bar" id="d27"/><td class="ctr2" id="e27">n/a</td><td class="ctr1" id="f27">1</td><td class="ctr2" id="g27">1</td><td class="ctr1" id="h27">1</td><td class="ctr2" id="i27">1</td><td class="ctr1" id="j27">1</td><td class="ctr2" id="k27">1</td></tr><tr><td id="a28"><a href="NoopMetricRegistry.java.html#L149" class="el_method">removeMatching(MetricFilter)</a></td><td class="bar" id="b28"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="1" alt="1"/></td><td class="ctr2" id="c28">0%</td><td class="bar" id="d28"/><td class="ctr2" id="e28">n/a</td><td class="ctr1" id="f28">1</td><td class="ctr2" id="g28">1</td><td class="ctr1" id="h28">1</td><td class="ctr2" id="i28">1</td><td class="ctr1" id="j28">1</td><td class="ctr2" id="k28">1</td></tr><tr><td id="a0"><a href="NoopMetricRegistry.java.html#L157" class="el_method">addListener(MetricRegistryListener)</a></td><td class="bar" id="b29"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="1" alt="1"/></td><td class="ctr2" id="c29">0%</td><td class="bar" id="d29"/><td class="ctr2" id="e29">n/a</td><td class="ctr1" id="f29">1</td><td class="ctr2" id="g29">1</td><td class="ctr1" id="h29">1</td><td class="ctr2" id="i29">1</td><td class="ctr1" id="j29">1</td><td class="ctr2" id="k29">1</td></tr><tr><td id="a27"><a href="NoopMetricRegistry.java.html#L165" class="el_method">removeListener(MetricRegistryListener)</a></td><td class="bar" id="b30"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="1" alt="1"/></td><td class="ctr2" id="c30">0%</td><td class="bar" id="d30"/><td class="ctr2" id="e30">n/a</td><td class="ctr1" id="f30">1</td><td class="ctr2" id="g30">1</td><td class="ctr1" id="h30">1</td><td class="ctr2" id="i30">1</td><td class="ctr1" id="j30">1</td><td class="ctr2" id="k30">1</td></tr><tr><td id="a25"><a href="NoopMetricRegistry.java.html#L263" class="el_method">registerAll(String, MetricSet)</a></td><td class="bar" id="b31"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="1" alt="1"/></td><td class="ctr2" id="c31">0%</td><td class="bar" id="d31"/><td class="ctr2" id="e31">n/a</td><td class="ctr1" id="f31">1</td><td class="ctr2" id="g31">1</td><td class="ctr1" id="h31">1</td><td class="ctr2" id="i31">1</td><td class="ctr1" id="j31">1</td><td class="ctr2" id="k31">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry.java.html
    deleted file mode 100644
    index 32280602a0..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistry.java.html
    +++ /dev/null
    @@ -1,794 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoopMetricRegistry.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">NoopMetricRegistry.java</span></div><h1>NoopMetricRegistry.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.io.OutputStream;
    -import java.time.Duration;
    -import java.util.Collection;
    -import java.util.Collections;
    -import java.util.Map;
    -import java.util.Set;
    -import java.util.SortedMap;
    -import java.util.SortedSet;
    -import java.util.concurrent.Callable;
    -import java.util.concurrent.ConcurrentMap;
    -import java.util.concurrent.TimeUnit;
    -import java.util.function.Supplier;
    -
    -/**
    - * A registry of metric instances which never creates or registers any metrics and returns no-op implementations of any metric type.
    - *
    - * @since 4.1.17
    - */
    -<span class="nc" id="L21">public final class NoopMetricRegistry extends MetricRegistry {</span>
    -<span class="nc" id="L22">    private static final EmptyConcurrentMap&lt;String, Metric&gt; EMPTY_CONCURRENT_MAP = new EmptyConcurrentMap&lt;&gt;();</span>
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    protected ConcurrentMap&lt;String, Metric&gt; buildMap() {
    -<span class="nc" id="L29">        return EMPTY_CONCURRENT_MAP;</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public &lt;T extends Metric&gt; T register(String name, T metric) throws IllegalArgumentException {
    -<span class="nc bnc" id="L37" title="All 2 branches missed.">        if (metric == null) {</span>
    -<span class="nc" id="L38">            throw new NullPointerException(&quot;metric == null&quot;);</span>
    -        }
    -<span class="nc" id="L40">        return metric;</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public void registerAll(MetricSet metrics) throws IllegalArgumentException {
    -        // NOP
    -<span class="nc" id="L49">    }</span>
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public Counter counter(String name) {
    -<span class="nc" id="L56">        return NoopCounter.INSTANCE;</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public Counter counter(String name, MetricSupplier&lt;Counter&gt; supplier) {
    -<span class="nc" id="L64">        return NoopCounter.INSTANCE;</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public Histogram histogram(String name) {
    -<span class="nc" id="L72">        return NoopHistogram.INSTANCE;</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public Histogram histogram(String name, MetricSupplier&lt;Histogram&gt; supplier) {
    -<span class="nc" id="L80">        return NoopHistogram.INSTANCE;</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public Meter meter(String name) {
    -<span class="nc" id="L88">        return NoopMeter.INSTANCE;</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public Meter meter(String name, MetricSupplier&lt;Meter&gt; supplier) {
    -<span class="nc" id="L96">        return NoopMeter.INSTANCE;</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public Timer timer(String name) {
    -<span class="nc" id="L104">        return NoopTimer.INSTANCE;</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public Timer timer(String name, MetricSupplier&lt;Timer&gt; supplier) {
    -<span class="nc" id="L112">        return NoopTimer.INSTANCE;</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     *
    -     * @since 4.2
    -     */
    -    @Override
    -    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    -    public &lt;T extends Gauge&gt; T gauge(String name) {
    -<span class="nc" id="L123">        return (T) NoopGauge.INSTANCE;</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    @SuppressWarnings({&quot;rawtypes&quot;, &quot;unchecked&quot;})
    -    public &lt;T extends Gauge&gt; T gauge(String name, MetricSupplier&lt;T&gt; supplier) {
    -<span class="nc" id="L132">        return (T) NoopGauge.INSTANCE;</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public boolean remove(String name) {
    -<span class="nc" id="L140">        return false;</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public void removeMatching(MetricFilter filter) {
    -        // NOP
    -<span class="nc" id="L149">    }</span>
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public void addListener(MetricRegistryListener listener) {
    -        // NOP
    -<span class="nc" id="L157">    }</span>
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public void removeListener(MetricRegistryListener listener) {
    -        // NOP
    -<span class="nc" id="L165">    }</span>
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public SortedSet&lt;String&gt; getNames() {
    -<span class="nc" id="L172">        return Collections.emptySortedSet();</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    @SuppressWarnings(&quot;rawtypes&quot;)
    -    public SortedMap&lt;String, Gauge&gt; getGauges() {
    -<span class="nc" id="L181">        return Collections.emptySortedMap();</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    @SuppressWarnings(&quot;rawtypes&quot;)
    -    public SortedMap&lt;String, Gauge&gt; getGauges(MetricFilter filter) {
    -<span class="nc" id="L190">        return Collections.emptySortedMap();</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public SortedMap&lt;String, Counter&gt; getCounters() {
    -<span class="nc" id="L198">        return Collections.emptySortedMap();</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public SortedMap&lt;String, Counter&gt; getCounters(MetricFilter filter) {
    -<span class="nc" id="L206">        return Collections.emptySortedMap();</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public SortedMap&lt;String, Histogram&gt; getHistograms() {
    -<span class="nc" id="L214">        return Collections.emptySortedMap();</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public SortedMap&lt;String, Histogram&gt; getHistograms(MetricFilter filter) {
    -<span class="nc" id="L222">        return Collections.emptySortedMap();</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public SortedMap&lt;String, Meter&gt; getMeters() {
    -<span class="nc" id="L230">        return Collections.emptySortedMap();</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public SortedMap&lt;String, Meter&gt; getMeters(MetricFilter filter) {
    -<span class="nc" id="L238">        return Collections.emptySortedMap();</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public SortedMap&lt;String, Timer&gt; getTimers() {
    -<span class="nc" id="L246">        return Collections.emptySortedMap();</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public SortedMap&lt;String, Timer&gt; getTimers(MetricFilter filter) {
    -<span class="nc" id="L254">        return Collections.emptySortedMap();</span>
    -    }
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public void registerAll(String prefix, MetricSet metrics) throws IllegalArgumentException {
    -        // NOP
    -<span class="nc" id="L263">    }</span>
    -
    -    /**
    -     * {@inheritDoc}
    -     */
    -    @Override
    -    public Map&lt;String, Metric&gt; getMetrics() {
    -<span class="nc" id="L270">        return Collections.emptyMap();</span>
    -    }
    -
    -<span class="nc" id="L273">    static final class NoopGauge&lt;T&gt; implements Gauge&lt;T&gt; {</span>
    -<span class="nc" id="L274">        private static final NoopGauge&lt;?&gt; INSTANCE = new NoopGauge&lt;&gt;();</span>
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public T getValue() {
    -<span class="nc" id="L281">            return null;</span>
    -        }
    -    }
    -
    -    private static final class EmptySnapshot extends Snapshot {
    -<span class="nc" id="L286">        private static final EmptySnapshot INSTANCE = new EmptySnapshot();</span>
    -<span class="nc" id="L287">        private static final long[] EMPTY_LONG_ARRAY = new long[0];</span>
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public double getValue(double quantile) {
    -<span class="nc" id="L294">            return 0D;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public long[] getValues() {
    -<span class="nc" id="L302">            return EMPTY_LONG_ARRAY;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public int size() {
    -<span class="nc" id="L310">            return 0;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public long getMax() {
    -<span class="nc" id="L318">            return 0L;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public double getMean() {
    -<span class="nc" id="L326">            return 0D;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public long getMin() {
    -<span class="nc" id="L334">            return 0L;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public double getStdDev() {
    -<span class="nc" id="L342">            return 0D;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public void dump(OutputStream output) {
    -            // NOP
    -<span class="nc" id="L351">        }</span>
    -    }
    -
    -<span class="nc" id="L354">    static final class NoopTimer extends Timer {</span>
    -<span class="nc" id="L355">        private static final NoopTimer INSTANCE = new NoopTimer();</span>
    -<span class="nc" id="L356">        private static final Timer.Context CONTEXT = new NoopTimer.Context();</span>
    -
    -        private static class Context extends Timer.Context {
    -<span class="nc" id="L359">            private static final Clock CLOCK = new Clock() {</span>
    -                /**
    -                 * {@inheritDoc}
    -                 */
    -                @Override
    -                public long getTick() {
    -<span class="nc" id="L365">                    return 0L;</span>
    -                }
    -
    -                /**
    -                 * {@inheritDoc}
    -                 */
    -                @Override
    -                public long getTime() {
    -<span class="nc" id="L373">                    return 0L;</span>
    -                }
    -            };
    -
    -            private Context() {
    -<span class="nc" id="L378">                super(INSTANCE, CLOCK);</span>
    -<span class="nc" id="L379">            }</span>
    -
    -            /**
    -             * {@inheritDoc}
    -             */
    -            @Override
    -            public long stop() {
    -<span class="nc" id="L386">                return 0L;</span>
    -            }
    -
    -            /**
    -             * {@inheritDoc}
    -             */
    -            @Override
    -            public void close() {
    -                // NOP
    -<span class="nc" id="L395">            }</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public void update(long duration, TimeUnit unit) {
    -            // NOP
    -<span class="nc" id="L404">        }</span>
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public void update(Duration duration) {
    -            // NOP
    -<span class="nc" id="L412">        }</span>
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public &lt;T&gt; T time(Callable&lt;T&gt; event) throws Exception {
    -<span class="nc" id="L419">            return event.call();</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public &lt;T&gt; T timeSupplier(Supplier&lt;T&gt; event) {
    -<span class="nc" id="L427">            return event.get();</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public void time(Runnable event) {
    -            // NOP
    -<span class="nc" id="L436">        }</span>
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public Timer.Context time() {
    -<span class="nc" id="L443">            return CONTEXT;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public long getCount() {
    -<span class="nc" id="L451">            return 0L;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public double getFifteenMinuteRate() {
    -<span class="nc" id="L459">            return 0D;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public double getFiveMinuteRate() {
    -<span class="nc" id="L467">            return 0D;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public double getMeanRate() {
    -<span class="nc" id="L475">            return 0D;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public double getOneMinuteRate() {
    -<span class="nc" id="L483">            return 0D;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public Snapshot getSnapshot() {
    -<span class="nc" id="L491">            return EmptySnapshot.INSTANCE;</span>
    -        }
    -    }
    -
    -    static final class NoopHistogram extends Histogram {
    -<span class="nc" id="L496">        private static final NoopHistogram INSTANCE = new NoopHistogram();</span>
    -<span class="nc" id="L497">        private static final Reservoir EMPTY_RESERVOIR = new Reservoir() {</span>
    -            /**
    -             * {@inheritDoc}
    -             */
    -            @Override
    -            public int size() {
    -<span class="nc" id="L503">                return 0;</span>
    -            }
    -
    -            /**
    -             * {@inheritDoc}
    -             */
    -            @Override
    -            public void update(long value) {
    -                // NOP
    -<span class="nc" id="L512">            }</span>
    -
    -            /**
    -             * {@inheritDoc}
    -             */
    -            @Override
    -            public Snapshot getSnapshot() {
    -<span class="nc" id="L519">                return EmptySnapshot.INSTANCE;</span>
    -            }
    -        };
    -
    -        private NoopHistogram() {
    -<span class="nc" id="L524">            super(EMPTY_RESERVOIR);</span>
    -<span class="nc" id="L525">        }</span>
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public void update(int value) {
    -            // NOP
    -<span class="nc" id="L533">        }</span>
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public void update(long value) {
    -            // NOP
    -<span class="nc" id="L541">        }</span>
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public long getCount() {
    -<span class="nc" id="L548">            return 0L;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public Snapshot getSnapshot() {
    -<span class="nc" id="L556">            return EmptySnapshot.INSTANCE;</span>
    -        }
    -    }
    -
    -<span class="nc" id="L560">    static final class NoopCounter extends Counter {</span>
    -<span class="nc" id="L561">        private static final NoopCounter INSTANCE = new NoopCounter();</span>
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public void inc() {
    -            // NOP
    -<span class="nc" id="L569">        }</span>
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public void inc(long n) {
    -            // NOP
    -<span class="nc" id="L577">        }</span>
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public void dec() {
    -            // NOP
    -<span class="nc" id="L585">        }</span>
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public void dec(long n) {
    -            // NOP
    -<span class="nc" id="L593">        }</span>
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public long getCount() {
    -<span class="nc" id="L600">            return 0L;</span>
    -        }
    -    }
    -
    -<span class="nc" id="L604">    static final class NoopMeter extends Meter {</span>
    -<span class="nc" id="L605">        private static final NoopMeter INSTANCE = new NoopMeter();</span>
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public void mark() {
    -            // NOP
    -<span class="nc" id="L613">        }</span>
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public void mark(long n) {
    -            // NOP
    -<span class="nc" id="L621">        }</span>
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public long getCount() {
    -<span class="nc" id="L628">            return 0L;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public double getFifteenMinuteRate() {
    -<span class="nc" id="L636">            return 0D;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public double getFiveMinuteRate() {
    -<span class="nc" id="L644">            return 0D;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public double getMeanRate() {
    -<span class="nc" id="L652">            return 0D;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public double getOneMinuteRate() {
    -<span class="nc" id="L660">            return 0D;</span>
    -        }
    -    }
    -
    -    private static final class EmptyConcurrentMap&lt;K, V&gt; implements ConcurrentMap&lt;K, V&gt; {
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public V putIfAbsent(K key, V value) {
    -<span class="nc" id="L670">            return null;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public boolean remove(Object key, Object value) {
    -<span class="nc" id="L678">            return false;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public boolean replace(K key, V oldValue, V newValue) {
    -<span class="nc" id="L686">            return false;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public V replace(K key, V value) {
    -<span class="nc" id="L694">            return null;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public int size() {
    -<span class="nc" id="L702">            return 0;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public boolean isEmpty() {
    -<span class="nc" id="L710">            return true;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public boolean containsKey(Object key) {
    -<span class="nc" id="L718">            return false;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public boolean containsValue(Object value) {
    -<span class="nc" id="L726">            return false;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public V get(Object key) {
    -<span class="nc" id="L734">            return null;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public V put(K key, V value) {
    -<span class="nc" id="L742">            return null;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public V remove(Object key) {
    -<span class="nc" id="L750">            return null;</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public void putAll(Map&lt;? extends K, ? extends V&gt; m) {
    -            // NOP
    -<span class="nc" id="L759">        }</span>
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public void clear() {
    -            // NOP
    -<span class="nc" id="L767">        }</span>
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public Set&lt;K&gt; keySet() {
    -<span class="nc" id="L774">            return Collections.emptySet();</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public Collection&lt;V&gt; values() {
    -<span class="nc" id="L782">            return Collections.emptySet();</span>
    -        }
    -
    -        /**
    -         * {@inheritDoc}
    -         */
    -        @Override
    -        public Set&lt;Entry&lt;K, V&gt;&gt; entrySet() {
    -<span class="nc" id="L790">            return Collections.emptySet();</span>
    -        }
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistryTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistryTest.html
    deleted file mode 100644
    index 0a19e7e346..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistryTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoopMetricRegistryTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">NoopMetricRegistryTest</span></div><h1>NoopMetricRegistryTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">1,340 of 1,340</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">54</td><td class="ctr2">54</td><td class="ctr1">274</td><td class="ctr2">274</td><td class="ctr1">54</td><td class="ctr2">54</td></tr></tfoot><tbody><tr><td id="a10"><a href="NoopMetricRegistryTest.java.html#L241" class="el_method">addingAListenerWithExistingMetricsDoesNotNotify()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="84" alt="84"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h2">13</td><td class="ctr2" id="i2">13</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a51"><a href="NoopMetricRegistryTest.java.html#L466" class="el_method">removingDeepChildMetricsAfterRegister()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="92" height="10" title="65" alt="65"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">16</td><td class="ctr2" id="i0">16</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a12"><a href="NoopMetricRegistryTest.java.html#L412" class="el_method">addingDeepChildMetricsAfterRegister()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="84" height="10" title="59" alt="59"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">14</td><td class="ctr2" id="i1">14</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a52"><a href="NoopMetricRegistryTest.java.html#L448" class="el_method">removingMultipleChildMetricsAfterRegister()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="81" height="10" title="57" alt="57"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">12</td><td class="ctr2" id="i3">12</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a44"><a href="NoopMetricRegistryTest.java.html#L370" class="el_method">removesMetricsMatchingAFilter()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="62" height="10" title="44" alt="44"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i4">9</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a24"><a href="NoopMetricRegistryTest.java.html#L303" class="el_method">hasASetOfRegisteredMetricNames()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="58" height="10" title="41" alt="41"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h13">7</td><td class="ctr2" id="i13">7</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="NoopMetricRegistryTest.java.html#L67" class="el_method">accessingACustomCounterRegistersAndReusesTheCounter()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="55" height="10" title="39" alt="39"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h7">8</td><td class="ctr2" id="i7">8</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a3"><a href="NoopMetricRegistryTest.java.html#L109" class="el_method">accessingACustomHistogramRegistersAndReusesIt()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="55" height="10" title="39" alt="39"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h8">8</td><td class="ctr2" id="i8">8</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a4"><a href="NoopMetricRegistryTest.java.html#L150" class="el_method">accessingACustomMeterRegistersAndReusesIt()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="55" height="10" title="39" alt="39"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h9">8</td><td class="ctr2" id="i9">8</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a5"><a href="NoopMetricRegistryTest.java.html#L191" class="el_method">accessingACustomTimerRegistersAndReusesIt()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="55" height="10" title="39" alt="39"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h10">8</td><td class="ctr2" id="i10">8</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a2"><a href="NoopMetricRegistryTest.java.html#L227" class="el_method">accessingACustomGaugeRegistersAndReusesIt()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="55" height="10" title="39" alt="39"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h11">8</td><td class="ctr2" id="i11">8</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a37"><a href="NoopMetricRegistryTest.java.html#L16" class="el_method">NoopMetricRegistryTest()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="51" height="10" title="36" alt="36"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h12">8</td><td class="ctr2" id="i12">8</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a50"><a href="NoopMetricRegistryTest.java.html#L433" class="el_method">removingChildMetricAfterRegister()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="51" height="10" title="36" alt="36"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h5">9</td><td class="ctr2" id="i5">9</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a0"><a href="NoopMetricRegistryTest.java.html#L55" class="el_method">accessingACounterRegistersAndReusesTheCounter()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="34" alt="34"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h14">7</td><td class="ctr2" id="i14">7</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a7"><a href="NoopMetricRegistryTest.java.html#L97" class="el_method">accessingAHistogramRegistersAndReusesIt()</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="34" alt="34"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h15">7</td><td class="ctr2" id="i15">7</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a8"><a href="NoopMetricRegistryTest.java.html#L138" class="el_method">accessingAMeterRegistersAndReusesIt()</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="34" alt="34"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h16">7</td><td class="ctr2" id="i16">7</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a9"><a href="NoopMetricRegistryTest.java.html#L179" class="el_method">accessingATimerRegistersAndReusesIt()</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="34" alt="34"/></td><td class="ctr2" id="c16">0%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h17">7</td><td class="ctr2" id="i17">7</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a6"><a href="NoopMetricRegistryTest.java.html#L214" class="el_method">accessingAGaugeRegistersAndReusesIt()</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="34" alt="34"/></td><td class="ctr2" id="c17">0%</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">1</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h18">7</td><td class="ctr2" id="i18">7</td><td class="ctr1" id="j17">1</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a13"><a href="NoopMetricRegistryTest.java.html#L398" class="el_method">addingMultipleChildMetricsAfterRegister()</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="34" alt="34"/></td><td class="ctr2" id="c18">0%</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f18">1</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h6">9</td><td class="ctr2" id="i6">9</td><td class="ctr1" id="j18">1</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a14"><a href="NoopMetricRegistryTest.java.html#L259" class="el_method">aRemovedListenerDoesNotReceiveUpdates()</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="41" height="10" title="29" alt="29"/></td><td class="ctr2" id="c19">0%</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">1</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h20">5</td><td class="ctr2" id="i20">5</td><td class="ctr1" id="j19">1</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a11"><a href="NoopMetricRegistryTest.java.html#L386" class="el_method">addingChildMetricAfterRegister()</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="37" height="10" title="26" alt="26"/></td><td class="ctr2" id="c20">0%</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f20">1</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h19">7</td><td class="ctr2" id="i19">7</td><td class="ctr1" id="j20">1</td><td class="ctr2" id="k20">1</td></tr><tr><td id="a39"><a href="NoopMetricRegistryTest.java.html#L32" class="el_method">registeringAGaugeTriggersNoNotification()</a></td><td class="bar" id="b21"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="22" alt="22"/></td><td class="ctr2" id="c21">0%</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f21">1</td><td class="ctr2" id="g21">1</td><td class="ctr1" id="h34">3</td><td class="ctr2" id="i34">3</td><td class="ctr1" id="j21">1</td><td class="ctr2" id="k21">1</td></tr><tr><td id="a46"><a href="NoopMetricRegistryTest.java.html#L39" class="el_method">removingAGaugeTriggersNoNotification()</a></td><td class="bar" id="b22"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="22" alt="22"/></td><td class="ctr2" id="c22">0%</td><td class="bar" id="d22"/><td class="ctr2" id="e22">n/a</td><td class="ctr1" id="f22">1</td><td class="ctr2" id="g22">1</td><td class="ctr1" id="h24">4</td><td class="ctr2" id="i24">4</td><td class="ctr1" id="j22">1</td><td class="ctr2" id="k22">1</td></tr><tr><td id="a38"><a href="NoopMetricRegistryTest.java.html#L48" class="el_method">registeringACounterTriggersNoNotification()</a></td><td class="bar" id="b23"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="22" alt="22"/></td><td class="ctr2" id="c23">0%</td><td class="bar" id="d23"/><td class="ctr2" id="e23">n/a</td><td class="ctr1" id="f23">1</td><td class="ctr2" id="g23">1</td><td class="ctr1" id="h35">3</td><td class="ctr2" id="i35">3</td><td class="ctr1" id="j23">1</td><td class="ctr2" id="k23">1</td></tr><tr><td id="a45"><a href="NoopMetricRegistryTest.java.html#L81" class="el_method">removingACounterTriggersNoNotification()</a></td><td class="bar" id="b24"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="22" alt="22"/></td><td class="ctr2" id="c24">0%</td><td class="bar" id="d24"/><td class="ctr2" id="e24">n/a</td><td class="ctr1" id="f24">1</td><td class="ctr2" id="g24">1</td><td class="ctr1" id="h25">4</td><td class="ctr2" id="i25">4</td><td class="ctr1" id="j24">1</td><td class="ctr2" id="k24">1</td></tr><tr><td id="a40"><a href="NoopMetricRegistryTest.java.html#L90" class="el_method">registeringAHistogramTriggersNoNotification()</a></td><td class="bar" id="b25"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="22" alt="22"/></td><td class="ctr2" id="c25">0%</td><td class="bar" id="d25"/><td class="ctr2" id="e25">n/a</td><td class="ctr1" id="f25">1</td><td class="ctr2" id="g25">1</td><td class="ctr1" id="h36">3</td><td class="ctr2" id="i36">3</td><td class="ctr1" id="j25">1</td><td class="ctr2" id="k25">1</td></tr><tr><td id="a47"><a href="NoopMetricRegistryTest.java.html#L122" class="el_method">removingAHistogramTriggersNoNotification()</a></td><td class="bar" id="b26"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="22" alt="22"/></td><td class="ctr2" id="c26">0%</td><td class="bar" id="d26"/><td class="ctr2" id="e26">n/a</td><td class="ctr1" id="f26">1</td><td class="ctr2" id="g26">1</td><td class="ctr1" id="h26">4</td><td class="ctr2" id="i26">4</td><td class="ctr1" id="j26">1</td><td class="ctr2" id="k26">1</td></tr><tr><td id="a41"><a href="NoopMetricRegistryTest.java.html#L131" class="el_method">registeringAMeterTriggersNoNotification()</a></td><td class="bar" id="b27"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="22" alt="22"/></td><td class="ctr2" id="c27">0%</td><td class="bar" id="d27"/><td class="ctr2" id="e27">n/a</td><td class="ctr1" id="f27">1</td><td class="ctr2" id="g27">1</td><td class="ctr1" id="h37">3</td><td class="ctr2" id="i37">3</td><td class="ctr1" id="j27">1</td><td class="ctr2" id="k27">1</td></tr><tr><td id="a48"><a href="NoopMetricRegistryTest.java.html#L163" class="el_method">removingAMeterTriggersNoNotification()</a></td><td class="bar" id="b28"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="22" alt="22"/></td><td class="ctr2" id="c28">0%</td><td class="bar" id="d28"/><td class="ctr2" id="e28">n/a</td><td class="ctr1" id="f28">1</td><td class="ctr2" id="g28">1</td><td class="ctr1" id="h27">4</td><td class="ctr2" id="i27">4</td><td class="ctr1" id="j28">1</td><td class="ctr2" id="k28">1</td></tr><tr><td id="a42"><a href="NoopMetricRegistryTest.java.html#L172" class="el_method">registeringATimerTriggersNoNotification()</a></td><td class="bar" id="b29"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="22" alt="22"/></td><td class="ctr2" id="c29">0%</td><td class="bar" id="d29"/><td class="ctr2" id="e29">n/a</td><td class="ctr1" id="f29">1</td><td class="ctr2" id="g29">1</td><td class="ctr1" id="h38">3</td><td class="ctr2" id="i38">3</td><td class="ctr1" id="j29">1</td><td class="ctr2" id="k29">1</td></tr><tr><td id="a49"><a href="NoopMetricRegistryTest.java.html#L205" class="el_method">removingATimerTriggersNoNotification()</a></td><td class="bar" id="b30"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="22" alt="22"/></td><td class="ctr2" id="c30">0%</td><td class="bar" id="d30"/><td class="ctr2" id="e30">n/a</td><td class="ctr1" id="f30">1</td><td class="ctr2" id="g30">1</td><td class="ctr1" id="h28">4</td><td class="ctr2" id="i28">4</td><td class="ctr1" id="j30">1</td><td class="ctr2" id="k30">1</td></tr><tr><td id="a15"><a href="NoopMetricRegistryTest.java.html#L362" class="el_method">doesNotRegisterMetricsFromAnotherRegistry()</a></td><td class="bar" id="b31"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="22" alt="22"/></td><td class="ctr2" id="c31">0%</td><td class="bar" id="d31"/><td class="ctr2" id="e31">n/a</td><td class="ctr1" id="f31">1</td><td class="ctr2" id="g31">1</td><td class="ctr1" id="h21">5</td><td class="ctr2" id="i21">5</td><td class="ctr1" id="j31">1</td><td class="ctr2" id="k31">1</td></tr><tr><td id="a18"><a href="NoopMetricRegistryTest.java.html#L342" class="el_method">doesNotRegisterRecursiveMetricSets()</a></td><td class="bar" id="b32"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="19" alt="19"/></td><td class="ctr2" id="c32">0%</td><td class="bar" id="d32"/><td class="ctr2" id="e32">n/a</td><td class="ctr1" id="f32">1</td><td class="ctr2" id="g32">1</td><td class="ctr1" id="h22">5</td><td class="ctr2" id="i22">5</td><td class="ctr1" id="j32">1</td><td class="ctr2" id="k32">1</td></tr><tr><td id="a31"><a href="NoopMetricRegistryTest.java.html#L329" class="el_method">lambda$doesNotRegisterMultipleMetricsWithAPrefix$7()</a></td><td class="bar" id="b33"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="18" alt="18"/></td><td class="ctr2" id="c33">0%</td><td class="bar" id="d33"/><td class="ctr2" id="e33">n/a</td><td class="ctr1" id="f33">1</td><td class="ctr2" id="g33">1</td><td class="ctr1" id="h29">4</td><td class="ctr2" id="i29">4</td><td class="ctr1" id="j33">1</td><td class="ctr2" id="k33">1</td></tr><tr><td id="a30"><a href="NoopMetricRegistryTest.java.html#L315" class="el_method">lambda$doesNotRegisterMultipleMetrics$6()</a></td><td class="bar" id="b34"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="18" alt="18"/></td><td class="ctr2" id="c34">0%</td><td class="bar" id="d34"/><td class="ctr2" id="e34">n/a</td><td class="ctr1" id="f34">1</td><td class="ctr2" id="g34">1</td><td class="ctr1" id="h30">4</td><td class="ctr2" id="i30">4</td><td class="ctr1" id="j34">1</td><td class="ctr2" id="k34">1</td></tr><tr><td id="a33"><a href="NoopMetricRegistryTest.java.html#L349" class="el_method">lambda$doesNotRegisterRecursiveMetricSets$9(MetricSet)</a></td><td class="bar" id="b35"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="17" alt="17"/></td><td class="ctr2" id="c35">0%</td><td class="bar" id="d35"/><td class="ctr2" id="e35">n/a</td><td class="ctr1" id="f35">1</td><td class="ctr2" id="g35">1</td><td class="ctr1" id="h31">4</td><td class="ctr2" id="i31">4</td><td class="ctr1" id="j35">1</td><td class="ctr2" id="k35">1</td></tr><tr><td id="a17"><a href="NoopMetricRegistryTest.java.html#L328" class="el_method">doesNotRegisterMultipleMetricsWithAPrefix()</a></td><td class="bar" id="b36"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="15" alt="15"/></td><td class="ctr2" id="c36">0%</td><td class="bar" id="d36"/><td class="ctr2" id="e36">n/a</td><td class="ctr1" id="f36">1</td><td class="ctr2" id="g36">1</td><td class="ctr1" id="h32">4</td><td class="ctr2" id="i32">4</td><td class="ctr1" id="j36">1</td><td class="ctr2" id="k36">1</td></tr><tr><td id="a20"><a href="NoopMetricRegistryTest.java.html#L268" class="el_method">hasAMapOfRegisteredGauges()</a></td><td class="bar" id="b37"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="13" alt="13"/></td><td class="ctr2" id="c37">0%</td><td class="bar" id="d37"/><td class="ctr2" id="e37">n/a</td><td class="ctr1" id="f37">1</td><td class="ctr2" id="g37">1</td><td class="ctr1" id="h39">3</td><td class="ctr2" id="i39">3</td><td class="ctr1" id="j37">1</td><td class="ctr2" id="k37">1</td></tr><tr><td id="a19"><a href="NoopMetricRegistryTest.java.html#L275" class="el_method">hasAMapOfRegisteredCounters()</a></td><td class="bar" id="b38"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="13" alt="13"/></td><td class="ctr2" id="c38">0%</td><td class="bar" id="d38"/><td class="ctr2" id="e38">n/a</td><td class="ctr1" id="f38">1</td><td class="ctr2" id="g38">1</td><td class="ctr1" id="h40">3</td><td class="ctr2" id="i40">3</td><td class="ctr1" id="j38">1</td><td class="ctr2" id="k38">1</td></tr><tr><td id="a21"><a href="NoopMetricRegistryTest.java.html#L282" class="el_method">hasAMapOfRegisteredHistograms()</a></td><td class="bar" id="b39"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="13" alt="13"/></td><td class="ctr2" id="c39">0%</td><td class="bar" id="d39"/><td class="ctr2" id="e39">n/a</td><td class="ctr1" id="f39">1</td><td class="ctr2" id="g39">1</td><td class="ctr1" id="h41">3</td><td class="ctr2" id="i41">3</td><td class="ctr1" id="j39">1</td><td class="ctr2" id="k39">1</td></tr><tr><td id="a22"><a href="NoopMetricRegistryTest.java.html#L289" class="el_method">hasAMapOfRegisteredMeters()</a></td><td class="bar" id="b40"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="13" alt="13"/></td><td class="ctr2" id="c40">0%</td><td class="bar" id="d40"/><td class="ctr2" id="e40">n/a</td><td class="ctr1" id="f40">1</td><td class="ctr2" id="g40">1</td><td class="ctr1" id="h42">3</td><td class="ctr2" id="i42">3</td><td class="ctr1" id="j40">1</td><td class="ctr2" id="k40">1</td></tr><tr><td id="a23"><a href="NoopMetricRegistryTest.java.html#L296" class="el_method">hasAMapOfRegisteredTimers()</a></td><td class="bar" id="b41"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="13" alt="13"/></td><td class="ctr2" id="c41">0%</td><td class="bar" id="d41"/><td class="ctr2" id="e41">n/a</td><td class="ctr1" id="f41">1</td><td class="ctr2" id="g41">1</td><td class="ctr1" id="h43">3</td><td class="ctr2" id="i43">3</td><td class="ctr1" id="j41">1</td><td class="ctr2" id="k41">1</td></tr><tr><td id="a16"><a href="NoopMetricRegistryTest.java.html#L314" class="el_method">doesNotRegisterMultipleMetrics()</a></td><td class="bar" id="b42"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="13" alt="13"/></td><td class="ctr2" id="c42">0%</td><td class="bar" id="d42"/><td class="ctr2" id="e42">n/a</td><td class="ctr1" id="f42">1</td><td class="ctr2" id="g42">1</td><td class="ctr1" id="h33">4</td><td class="ctr2" id="i33">4</td><td class="ctr1" id="j42">1</td><td class="ctr2" id="k42">1</td></tr><tr><td id="a43"><a href="NoopMetricRegistryTest.java.html#L490" class="el_method">registerNullMetric()</a></td><td class="bar" id="b43"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="12" alt="12"/></td><td class="ctr2" id="c43">0%</td><td class="bar" id="d43"/><td class="ctr2" id="e43">n/a</td><td class="ctr1" id="f43">1</td><td class="ctr2" id="g43">1</td><td class="ctr1" id="h23">5</td><td class="ctr2" id="i23">5</td><td class="ctr1" id="j43">1</td><td class="ctr2" id="k43">1</td></tr><tr><td id="a32"><a href="NoopMetricRegistryTest.java.html#L343" class="el_method">lambda$doesNotRegisterRecursiveMetricSets$8()</a></td><td class="bar" id="b44"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="12" alt="12"/></td><td class="ctr2" id="c44">0%</td><td class="bar" id="d44"/><td class="ctr2" id="e44">n/a</td><td class="ctr1" id="f44">1</td><td class="ctr2" id="g44">1</td><td class="ctr1" id="h44">3</td><td class="ctr2" id="i44">3</td><td class="ctr1" id="j44">1</td><td class="ctr2" id="k44">1</td></tr><tr><td id="a53"><a href="NoopMetricRegistryTest.java.html#L27" class="el_method">setUp()</a></td><td class="bar" id="b45"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c45">0%</td><td class="bar" id="d45"/><td class="ctr2" id="e45">n/a</td><td class="ctr1" id="f45">1</td><td class="ctr2" id="g45">1</td><td class="ctr1" id="h45">2</td><td class="ctr2" id="i45">2</td><td class="ctr1" id="j45">1</td><td class="ctr2" id="k45">1</td></tr><tr><td id="a35"><a href="NoopMetricRegistryTest.java.html#L492" class="el_method">lambda$registerNullMetric$11(MetricRegistry)</a></td><td class="bar" id="b46"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="6" alt="6"/></td><td class="ctr2" id="c46">0%</td><td class="bar" id="d46"/><td class="ctr2" id="e46">n/a</td><td class="ctr1" id="f46">1</td><td class="ctr2" id="g46">1</td><td class="ctr1" id="h46">1</td><td class="ctr2" id="i46">1</td><td class="ctr1" id="j46">1</td><td class="ctr2" id="k46">1</td></tr><tr><td id="a36"><a href="NoopMetricRegistryTest.java.html#L376" class="el_method">lambda$removesMetricsMatchingAFilter$10(String, Metric)</a></td><td class="bar" id="b47"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c47">0%</td><td class="bar" id="d47"/><td class="ctr2" id="e47">n/a</td><td class="ctr1" id="f47">1</td><td class="ctr2" id="g47">1</td><td class="ctr1" id="h47">1</td><td class="ctr2" id="i47">1</td><td class="ctr1" id="j47">1</td><td class="ctr2" id="k47">1</td></tr><tr><td id="a26"><a href="NoopMetricRegistryTest.java.html#L227" class="el_method">lambda$accessingACustomGaugeRegistersAndReusesIt$5()</a></td><td class="bar" id="b48"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c48">0%</td><td class="bar" id="d48"/><td class="ctr2" id="e48">n/a</td><td class="ctr1" id="f48">1</td><td class="ctr2" id="g48">1</td><td class="ctr1" id="h48">1</td><td class="ctr2" id="i48">1</td><td class="ctr1" id="j48">1</td><td class="ctr2" id="k48">1</td></tr><tr><td id="a29"><a href="NoopMetricRegistryTest.java.html#L191" class="el_method">lambda$accessingACustomTimerRegistersAndReusesIt$4()</a></td><td class="bar" id="b49"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c49">0%</td><td class="bar" id="d49"/><td class="ctr2" id="e49">n/a</td><td class="ctr1" id="f49">1</td><td class="ctr2" id="g49">1</td><td class="ctr1" id="h49">1</td><td class="ctr2" id="i49">1</td><td class="ctr1" id="j49">1</td><td class="ctr2" id="k49">1</td></tr><tr><td id="a28"><a href="NoopMetricRegistryTest.java.html#L150" class="el_method">lambda$accessingACustomMeterRegistersAndReusesIt$3()</a></td><td class="bar" id="b50"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c50">0%</td><td class="bar" id="d50"/><td class="ctr2" id="e50">n/a</td><td class="ctr1" id="f50">1</td><td class="ctr2" id="g50">1</td><td class="ctr1" id="h50">1</td><td class="ctr2" id="i50">1</td><td class="ctr1" id="j50">1</td><td class="ctr2" id="k50">1</td></tr><tr><td id="a27"><a href="NoopMetricRegistryTest.java.html#L109" class="el_method">lambda$accessingACustomHistogramRegistersAndReusesIt$2()</a></td><td class="bar" id="b51"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c51">0%</td><td class="bar" id="d51"/><td class="ctr2" id="e51">n/a</td><td class="ctr1" id="f51">1</td><td class="ctr2" id="g51">1</td><td class="ctr1" id="h51">1</td><td class="ctr2" id="i51">1</td><td class="ctr1" id="j51">1</td><td class="ctr2" id="k51">1</td></tr><tr><td id="a25"><a href="NoopMetricRegistryTest.java.html#L67" class="el_method">lambda$accessingACustomCounterRegistersAndReusesTheCounter$1()</a></td><td class="bar" id="b52"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="3" alt="3"/></td><td class="ctr2" id="c52">0%</td><td class="bar" id="d52"/><td class="ctr2" id="e52">n/a</td><td class="ctr1" id="f52">1</td><td class="ctr2" id="g52">1</td><td class="ctr1" id="h52">1</td><td class="ctr2" id="i52">1</td><td class="ctr1" id="j52">1</td><td class="ctr2" id="k52">1</td></tr><tr><td id="a34"><a href="NoopMetricRegistryTest.java.html#L19" class="el_method">lambda$new$0()</a></td><td class="bar" id="b53"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="2" alt="2"/></td><td class="ctr2" id="c53">0%</td><td class="bar" id="d53"/><td class="ctr2" id="e53">n/a</td><td class="ctr1" id="f53">1</td><td class="ctr2" id="g53">1</td><td class="ctr1" id="h53">1</td><td class="ctr2" id="i53">1</td><td class="ctr1" id="j53">1</td><td class="ctr2" id="k53">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistryTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistryTest.java.html
    deleted file mode 100644
    index 9252808e32..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/NoopMetricRegistryTest.java.html
    +++ /dev/null
    @@ -1,496 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>NoopMetricRegistryTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">NoopMetricRegistryTest.java</span></div><h1>NoopMetricRegistryTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Before;
    -import org.junit.Test;
    -
    -import java.util.HashMap;
    -import java.util.Map;
    -import java.util.Set;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -import static org.assertj.core.api.Assertions.assertThatNullPointerException;
    -import static org.mockito.Mockito.mock;
    -import static org.mockito.Mockito.never;
    -import static org.mockito.Mockito.verify;
    -
    -<span class="nc" id="L16">public class NoopMetricRegistryTest {</span>
    -<span class="nc" id="L17">    private final MetricRegistryListener listener = mock(MetricRegistryListener.class);</span>
    -<span class="nc" id="L18">    private final NoopMetricRegistry registry = new NoopMetricRegistry();</span>
    -<span class="nc" id="L19">    private final Gauge&lt;String&gt; gauge = () -&gt; &quot;&quot;;</span>
    -<span class="nc" id="L20">    private final Counter counter = mock(Counter.class);</span>
    -<span class="nc" id="L21">    private final Histogram histogram = mock(Histogram.class);</span>
    -<span class="nc" id="L22">    private final Meter meter = mock(Meter.class);</span>
    -<span class="nc" id="L23">    private final Timer timer = mock(Timer.class);</span>
    -
    -    @Before
    -    public void setUp() {
    -<span class="nc" id="L27">        registry.addListener(listener);</span>
    -<span class="nc" id="L28">    }</span>
    -
    -    @Test
    -    public void registeringAGaugeTriggersNoNotification() {
    -<span class="nc" id="L32">        assertThat(registry.register(&quot;thing&quot;, gauge)).isEqualTo(gauge);</span>
    -
    -<span class="nc" id="L34">        verify(listener, never()).onGaugeAdded(&quot;thing&quot;, gauge);</span>
    -<span class="nc" id="L35">    }</span>
    -
    -    @Test
    -    public void removingAGaugeTriggersNoNotification() {
    -<span class="nc" id="L39">        registry.register(&quot;thing&quot;, gauge);</span>
    -
    -<span class="nc" id="L41">        assertThat(registry.remove(&quot;thing&quot;)).isFalse();</span>
    -
    -<span class="nc" id="L43">        verify(listener, never()).onGaugeRemoved(&quot;thing&quot;);</span>
    -<span class="nc" id="L44">    }</span>
    -
    -    @Test
    -    public void registeringACounterTriggersNoNotification() {
    -<span class="nc" id="L48">        assertThat(registry.register(&quot;thing&quot;, counter)).isEqualTo(counter);</span>
    -
    -<span class="nc" id="L50">        verify(listener, never()).onCounterAdded(&quot;thing&quot;, counter);</span>
    -<span class="nc" id="L51">    }</span>
    -
    -    @Test
    -    public void accessingACounterRegistersAndReusesTheCounter() {
    -<span class="nc" id="L55">        final Counter counter1 = registry.counter(&quot;thing&quot;);</span>
    -<span class="nc" id="L56">        final Counter counter2 = registry.counter(&quot;thing&quot;);</span>
    -
    -<span class="nc" id="L58">        assertThat(counter1).isExactlyInstanceOf(NoopMetricRegistry.NoopCounter.class);</span>
    -<span class="nc" id="L59">        assertThat(counter2).isExactlyInstanceOf(NoopMetricRegistry.NoopCounter.class);</span>
    -<span class="nc" id="L60">        assertThat(counter1).isSameAs(counter2);</span>
    -
    -<span class="nc" id="L62">        verify(listener, never()).onCounterAdded(&quot;thing&quot;, counter1);</span>
    -<span class="nc" id="L63">    }</span>
    -
    -    @Test
    -    public void accessingACustomCounterRegistersAndReusesTheCounter() {
    -<span class="nc" id="L67">        final MetricRegistry.MetricSupplier&lt;Counter&gt; supplier = () -&gt; counter;</span>
    -<span class="nc" id="L68">        final Counter counter1 = registry.counter(&quot;thing&quot;, supplier);</span>
    -<span class="nc" id="L69">        final Counter counter2 = registry.counter(&quot;thing&quot;, supplier);</span>
    -
    -<span class="nc" id="L71">        assertThat(counter1).isExactlyInstanceOf(NoopMetricRegistry.NoopCounter.class);</span>
    -<span class="nc" id="L72">        assertThat(counter2).isExactlyInstanceOf(NoopMetricRegistry.NoopCounter.class);</span>
    -<span class="nc" id="L73">        assertThat(counter1).isSameAs(counter2);</span>
    -
    -<span class="nc" id="L75">        verify(listener, never()).onCounterAdded(&quot;thing&quot;, counter1);</span>
    -<span class="nc" id="L76">    }</span>
    -
    -
    -    @Test
    -    public void removingACounterTriggersNoNotification() {
    -<span class="nc" id="L81">        registry.register(&quot;thing&quot;, counter);</span>
    -
    -<span class="nc" id="L83">        assertThat(registry.remove(&quot;thing&quot;)).isFalse();</span>
    -
    -<span class="nc" id="L85">        verify(listener, never()).onCounterRemoved(&quot;thing&quot;);</span>
    -<span class="nc" id="L86">    }</span>
    -
    -    @Test
    -    public void registeringAHistogramTriggersNoNotification() {
    -<span class="nc" id="L90">        assertThat(registry.register(&quot;thing&quot;, histogram)).isEqualTo(histogram);</span>
    -
    -<span class="nc" id="L92">        verify(listener, never()).onHistogramAdded(&quot;thing&quot;, histogram);</span>
    -<span class="nc" id="L93">    }</span>
    -
    -    @Test
    -    public void accessingAHistogramRegistersAndReusesIt() {
    -<span class="nc" id="L97">        final Histogram histogram1 = registry.histogram(&quot;thing&quot;);</span>
    -<span class="nc" id="L98">        final Histogram histogram2 = registry.histogram(&quot;thing&quot;);</span>
    -
    -<span class="nc" id="L100">        assertThat(histogram1).isExactlyInstanceOf(NoopMetricRegistry.NoopHistogram.class);</span>
    -<span class="nc" id="L101">        assertThat(histogram2).isExactlyInstanceOf(NoopMetricRegistry.NoopHistogram.class);</span>
    -<span class="nc" id="L102">        assertThat(histogram1).isSameAs(histogram2);</span>
    -
    -<span class="nc" id="L104">        verify(listener, never()).onHistogramAdded(&quot;thing&quot;, histogram1);</span>
    -<span class="nc" id="L105">    }</span>
    -
    -    @Test
    -    public void accessingACustomHistogramRegistersAndReusesIt() {
    -<span class="nc" id="L109">        final MetricRegistry.MetricSupplier&lt;Histogram&gt; supplier = () -&gt; histogram;</span>
    -<span class="nc" id="L110">        final Histogram histogram1 = registry.histogram(&quot;thing&quot;, supplier);</span>
    -<span class="nc" id="L111">        final Histogram histogram2 = registry.histogram(&quot;thing&quot;, supplier);</span>
    -
    -<span class="nc" id="L113">        assertThat(histogram1).isExactlyInstanceOf(NoopMetricRegistry.NoopHistogram.class);</span>
    -<span class="nc" id="L114">        assertThat(histogram2).isExactlyInstanceOf(NoopMetricRegistry.NoopHistogram.class);</span>
    -<span class="nc" id="L115">        assertThat(histogram1).isSameAs(histogram2);</span>
    -
    -<span class="nc" id="L117">        verify(listener, never()).onHistogramAdded(&quot;thing&quot;, histogram1);</span>
    -<span class="nc" id="L118">    }</span>
    -
    -    @Test
    -    public void removingAHistogramTriggersNoNotification() {
    -<span class="nc" id="L122">        registry.register(&quot;thing&quot;, histogram);</span>
    -
    -<span class="nc" id="L124">        assertThat(registry.remove(&quot;thing&quot;)).isFalse();</span>
    -
    -<span class="nc" id="L126">        verify(listener, never()).onHistogramRemoved(&quot;thing&quot;);</span>
    -<span class="nc" id="L127">    }</span>
    -
    -    @Test
    -    public void registeringAMeterTriggersNoNotification() {
    -<span class="nc" id="L131">        assertThat(registry.register(&quot;thing&quot;, meter)).isEqualTo(meter);</span>
    -
    -<span class="nc" id="L133">        verify(listener, never()).onMeterAdded(&quot;thing&quot;, meter);</span>
    -<span class="nc" id="L134">    }</span>
    -
    -    @Test
    -    public void accessingAMeterRegistersAndReusesIt() {
    -<span class="nc" id="L138">        final Meter meter1 = registry.meter(&quot;thing&quot;);</span>
    -<span class="nc" id="L139">        final Meter meter2 = registry.meter(&quot;thing&quot;);</span>
    -
    -<span class="nc" id="L141">        assertThat(meter1).isExactlyInstanceOf(NoopMetricRegistry.NoopMeter.class);</span>
    -<span class="nc" id="L142">        assertThat(meter2).isExactlyInstanceOf(NoopMetricRegistry.NoopMeter.class);</span>
    -<span class="nc" id="L143">        assertThat(meter1).isSameAs(meter2);</span>
    -
    -<span class="nc" id="L145">        verify(listener, never()).onMeterAdded(&quot;thing&quot;, meter1);</span>
    -<span class="nc" id="L146">    }</span>
    -
    -    @Test
    -    public void accessingACustomMeterRegistersAndReusesIt() {
    -<span class="nc" id="L150">        final MetricRegistry.MetricSupplier&lt;Meter&gt; supplier = () -&gt; meter;</span>
    -<span class="nc" id="L151">        final Meter meter1 = registry.meter(&quot;thing&quot;, supplier);</span>
    -<span class="nc" id="L152">        final Meter meter2 = registry.meter(&quot;thing&quot;, supplier);</span>
    -
    -<span class="nc" id="L154">        assertThat(meter1).isExactlyInstanceOf(NoopMetricRegistry.NoopMeter.class);</span>
    -<span class="nc" id="L155">        assertThat(meter2).isExactlyInstanceOf(NoopMetricRegistry.NoopMeter.class);</span>
    -<span class="nc" id="L156">        assertThat(meter1).isSameAs(meter2);</span>
    -
    -<span class="nc" id="L158">        verify(listener, never()).onMeterAdded(&quot;thing&quot;, meter1);</span>
    -<span class="nc" id="L159">    }</span>
    -
    -    @Test
    -    public void removingAMeterTriggersNoNotification() {
    -<span class="nc" id="L163">        registry.register(&quot;thing&quot;, meter);</span>
    -
    -<span class="nc" id="L165">        assertThat(registry.remove(&quot;thing&quot;)).isFalse();</span>
    -
    -<span class="nc" id="L167">        verify(listener, never()).onMeterRemoved(&quot;thing&quot;);</span>
    -<span class="nc" id="L168">    }</span>
    -
    -    @Test
    -    public void registeringATimerTriggersNoNotification() {
    -<span class="nc" id="L172">        assertThat(registry.register(&quot;thing&quot;, timer)).isEqualTo(timer);</span>
    -
    -<span class="nc" id="L174">        verify(listener, never()).onTimerAdded(&quot;thing&quot;, timer);</span>
    -<span class="nc" id="L175">    }</span>
    -
    -    @Test
    -    public void accessingATimerRegistersAndReusesIt() {
    -<span class="nc" id="L179">        final Timer timer1 = registry.timer(&quot;thing&quot;);</span>
    -<span class="nc" id="L180">        final Timer timer2 = registry.timer(&quot;thing&quot;);</span>
    -
    -<span class="nc" id="L182">        assertThat(timer1).isExactlyInstanceOf(NoopMetricRegistry.NoopTimer.class);</span>
    -<span class="nc" id="L183">        assertThat(timer2).isExactlyInstanceOf(NoopMetricRegistry.NoopTimer.class);</span>
    -<span class="nc" id="L184">        assertThat(timer1).isSameAs(timer2);</span>
    -
    -<span class="nc" id="L186">        verify(listener, never()).onTimerAdded(&quot;thing&quot;, timer1);</span>
    -<span class="nc" id="L187">    }</span>
    -
    -    @Test
    -    public void accessingACustomTimerRegistersAndReusesIt() {
    -<span class="nc" id="L191">        final MetricRegistry.MetricSupplier&lt;Timer&gt; supplier = () -&gt; timer;</span>
    -<span class="nc" id="L192">        final Timer timer1 = registry.timer(&quot;thing&quot;, supplier);</span>
    -<span class="nc" id="L193">        final Timer timer2 = registry.timer(&quot;thing&quot;, supplier);</span>
    -
    -<span class="nc" id="L195">        assertThat(timer1).isExactlyInstanceOf(NoopMetricRegistry.NoopTimer.class);</span>
    -<span class="nc" id="L196">        assertThat(timer2).isExactlyInstanceOf(NoopMetricRegistry.NoopTimer.class);</span>
    -<span class="nc" id="L197">        assertThat(timer1).isSameAs(timer2);</span>
    -
    -<span class="nc" id="L199">        verify(listener, never()).onTimerAdded(&quot;thing&quot;, timer1);</span>
    -<span class="nc" id="L200">    }</span>
    -
    -
    -    @Test
    -    public void removingATimerTriggersNoNotification() {
    -<span class="nc" id="L205">        registry.register(&quot;thing&quot;, timer);</span>
    -
    -<span class="nc" id="L207">        assertThat(registry.remove(&quot;thing&quot;)).isFalse();</span>
    -
    -<span class="nc" id="L209">        verify(listener, never()).onTimerRemoved(&quot;thing&quot;);</span>
    -<span class="nc" id="L210">    }</span>
    -
    -    @Test
    -    public void accessingAGaugeRegistersAndReusesIt() {
    -<span class="nc" id="L214">        final Gauge&lt;Void&gt; gauge1 = registry.gauge(&quot;thing&quot;);</span>
    -<span class="nc" id="L215">        final Gauge&lt;Void&gt; gauge2 = registry.gauge(&quot;thing&quot;);</span>
    -
    -<span class="nc" id="L217">        assertThat(gauge1).isExactlyInstanceOf(NoopMetricRegistry.NoopGauge.class);</span>
    -<span class="nc" id="L218">        assertThat(gauge2).isExactlyInstanceOf(NoopMetricRegistry.NoopGauge.class);</span>
    -<span class="nc" id="L219">        assertThat(gauge1).isSameAs(gauge2);</span>
    -
    -<span class="nc" id="L221">        verify(listener, never()).onGaugeAdded(&quot;thing&quot;, gauge1);</span>
    -<span class="nc" id="L222">    }</span>
    -
    -    @Test
    -    @SuppressWarnings(&quot;rawtypes&quot;)
    -    public void accessingACustomGaugeRegistersAndReusesIt() {
    -<span class="nc" id="L227">        final MetricRegistry.MetricSupplier&lt;Gauge&gt; supplier = () -&gt; gauge;</span>
    -<span class="nc" id="L228">        final Gauge gauge1 = registry.gauge(&quot;thing&quot;, supplier);</span>
    -<span class="nc" id="L229">        final Gauge gauge2 = registry.gauge(&quot;thing&quot;, supplier);</span>
    -
    -<span class="nc" id="L231">        assertThat(gauge1).isExactlyInstanceOf(NoopMetricRegistry.NoopGauge.class);</span>
    -<span class="nc" id="L232">        assertThat(gauge2).isExactlyInstanceOf(NoopMetricRegistry.NoopGauge.class);</span>
    -<span class="nc" id="L233">        assertThat(gauge1).isSameAs(gauge2);</span>
    -
    -<span class="nc" id="L235">        verify(listener, never()).onGaugeAdded(&quot;thing&quot;, gauge1);</span>
    -<span class="nc" id="L236">    }</span>
    -
    -
    -    @Test
    -    public void addingAListenerWithExistingMetricsDoesNotNotify() {
    -<span class="nc" id="L241">        registry.register(&quot;gauge&quot;, gauge);</span>
    -<span class="nc" id="L242">        registry.register(&quot;counter&quot;, counter);</span>
    -<span class="nc" id="L243">        registry.register(&quot;histogram&quot;, histogram);</span>
    -<span class="nc" id="L244">        registry.register(&quot;meter&quot;, meter);</span>
    -<span class="nc" id="L245">        registry.register(&quot;timer&quot;, timer);</span>
    -
    -<span class="nc" id="L247">        final MetricRegistryListener other = mock(MetricRegistryListener.class);</span>
    -<span class="nc" id="L248">        registry.addListener(other);</span>
    -
    -<span class="nc" id="L250">        verify(other, never()).onGaugeAdded(&quot;gauge&quot;, gauge);</span>
    -<span class="nc" id="L251">        verify(other, never()).onCounterAdded(&quot;counter&quot;, counter);</span>
    -<span class="nc" id="L252">        verify(other, never()).onHistogramAdded(&quot;histogram&quot;, histogram);</span>
    -<span class="nc" id="L253">        verify(other, never()).onMeterAdded(&quot;meter&quot;, meter);</span>
    -<span class="nc" id="L254">        verify(other, never()).onTimerAdded(&quot;timer&quot;, timer);</span>
    -<span class="nc" id="L255">    }</span>
    -
    -    @Test
    -    public void aRemovedListenerDoesNotReceiveUpdates() {
    -<span class="nc" id="L259">        registry.register(&quot;gauge&quot;, gauge);</span>
    -<span class="nc" id="L260">        registry.removeListener(listener);</span>
    -<span class="nc" id="L261">        registry.register(&quot;gauge2&quot;, gauge);</span>
    -
    -<span class="nc" id="L263">        verify(listener, never()).onGaugeAdded(&quot;gauge2&quot;, gauge);</span>
    -<span class="nc" id="L264">    }</span>
    -
    -    @Test
    -    public void hasAMapOfRegisteredGauges() {
    -<span class="nc" id="L268">        registry.register(&quot;gauge&quot;, gauge);</span>
    -
    -<span class="nc" id="L270">        assertThat(registry.getGauges()).isEmpty();</span>
    -<span class="nc" id="L271">    }</span>
    -
    -    @Test
    -    public void hasAMapOfRegisteredCounters() {
    -<span class="nc" id="L275">        registry.register(&quot;counter&quot;, counter);</span>
    -
    -<span class="nc" id="L277">        assertThat(registry.getCounters()).isEmpty();</span>
    -<span class="nc" id="L278">    }</span>
    -
    -    @Test
    -    public void hasAMapOfRegisteredHistograms() {
    -<span class="nc" id="L282">        registry.register(&quot;histogram&quot;, histogram);</span>
    -
    -<span class="nc" id="L284">        assertThat(registry.getHistograms()).isEmpty();</span>
    -<span class="nc" id="L285">    }</span>
    -
    -    @Test
    -    public void hasAMapOfRegisteredMeters() {
    -<span class="nc" id="L289">        registry.register(&quot;meter&quot;, meter);</span>
    -
    -<span class="nc" id="L291">        assertThat(registry.getMeters()).isEmpty();</span>
    -<span class="nc" id="L292">    }</span>
    -
    -    @Test
    -    public void hasAMapOfRegisteredTimers() {
    -<span class="nc" id="L296">        registry.register(&quot;timer&quot;, timer);</span>
    -
    -<span class="nc" id="L298">        assertThat(registry.getTimers()).isEmpty();</span>
    -<span class="nc" id="L299">    }</span>
    -
    -    @Test
    -    public void hasASetOfRegisteredMetricNames() {
    -<span class="nc" id="L303">        registry.register(&quot;gauge&quot;, gauge);</span>
    -<span class="nc" id="L304">        registry.register(&quot;counter&quot;, counter);</span>
    -<span class="nc" id="L305">        registry.register(&quot;histogram&quot;, histogram);</span>
    -<span class="nc" id="L306">        registry.register(&quot;meter&quot;, meter);</span>
    -<span class="nc" id="L307">        registry.register(&quot;timer&quot;, timer);</span>
    -
    -<span class="nc" id="L309">        assertThat(registry.getNames()).isEmpty();</span>
    -<span class="nc" id="L310">    }</span>
    -
    -    @Test
    -    public void doesNotRegisterMultipleMetrics() {
    -<span class="nc" id="L314">        final MetricSet metrics = () -&gt; {</span>
    -<span class="nc" id="L315">            final Map&lt;String, Metric&gt; m = new HashMap&lt;&gt;();</span>
    -<span class="nc" id="L316">            m.put(&quot;gauge&quot;, gauge);</span>
    -<span class="nc" id="L317">            m.put(&quot;counter&quot;, counter);</span>
    -<span class="nc" id="L318">            return m;</span>
    -        };
    -
    -<span class="nc" id="L321">        registry.registerAll(metrics);</span>
    -
    -<span class="nc" id="L323">        assertThat(registry.getNames()).isEmpty();</span>
    -<span class="nc" id="L324">    }</span>
    -
    -    @Test
    -    public void doesNotRegisterMultipleMetricsWithAPrefix() {
    -<span class="nc" id="L328">        final MetricSet metrics = () -&gt; {</span>
    -<span class="nc" id="L329">            final Map&lt;String, Metric&gt; m = new HashMap&lt;&gt;();</span>
    -<span class="nc" id="L330">            m.put(&quot;gauge&quot;, gauge);</span>
    -<span class="nc" id="L331">            m.put(&quot;counter&quot;, counter);</span>
    -<span class="nc" id="L332">            return m;</span>
    -        };
    -
    -<span class="nc" id="L335">        registry.register(&quot;my&quot;, metrics);</span>
    -
    -<span class="nc" id="L337">        assertThat(registry.getNames()).isEmpty();</span>
    -<span class="nc" id="L338">    }</span>
    -
    -    @Test
    -    public void doesNotRegisterRecursiveMetricSets() {
    -<span class="nc" id="L342">        final MetricSet inner = () -&gt; {</span>
    -<span class="nc" id="L343">            final Map&lt;String, Metric&gt; m = new HashMap&lt;&gt;();</span>
    -<span class="nc" id="L344">            m.put(&quot;gauge&quot;, gauge);</span>
    -<span class="nc" id="L345">            return m;</span>
    -        };
    -
    -<span class="nc" id="L348">        final MetricSet outer = () -&gt; {</span>
    -<span class="nc" id="L349">            final Map&lt;String, Metric&gt; m = new HashMap&lt;&gt;();</span>
    -<span class="nc" id="L350">            m.put(&quot;inner&quot;, inner);</span>
    -<span class="nc" id="L351">            m.put(&quot;counter&quot;, counter);</span>
    -<span class="nc" id="L352">            return m;</span>
    -        };
    -
    -<span class="nc" id="L355">        registry.register(&quot;my&quot;, outer);</span>
    -
    -<span class="nc" id="L357">        assertThat(registry.getNames()).isEmpty();</span>
    -<span class="nc" id="L358">    }</span>
    -
    -    @Test
    -    public void doesNotRegisterMetricsFromAnotherRegistry() {
    -<span class="nc" id="L362">        MetricRegistry other = new MetricRegistry();</span>
    -<span class="nc" id="L363">        other.register(&quot;gauge&quot;, gauge);</span>
    -<span class="nc" id="L364">        registry.register(&quot;nested&quot;, other);</span>
    -<span class="nc" id="L365">        assertThat(registry.getNames()).isEmpty();</span>
    -<span class="nc" id="L366">    }</span>
    -
    -    @Test
    -    public void removesMetricsMatchingAFilter() {
    -<span class="nc" id="L370">        registry.timer(&quot;timer-1&quot;);</span>
    -<span class="nc" id="L371">        registry.timer(&quot;timer-2&quot;);</span>
    -<span class="nc" id="L372">        registry.histogram(&quot;histogram-1&quot;);</span>
    -
    -<span class="nc" id="L374">        assertThat(registry.getNames()).isEmpty();</span>
    -
    -<span class="nc" id="L376">        registry.removeMatching((name, metric) -&gt; name.endsWith(&quot;1&quot;));</span>
    -
    -<span class="nc" id="L378">        assertThat(registry.getNames()).isEmpty();</span>
    -
    -<span class="nc" id="L380">        verify(listener, never()).onTimerRemoved(&quot;timer-1&quot;);</span>
    -<span class="nc" id="L381">        verify(listener, never()).onHistogramRemoved(&quot;histogram-1&quot;);</span>
    -<span class="nc" id="L382">    }</span>
    -
    -    @Test
    -    public void addingChildMetricAfterRegister() {
    -<span class="nc" id="L386">        MetricRegistry parent = new NoopMetricRegistry();</span>
    -<span class="nc" id="L387">        MetricRegistry child = new MetricRegistry();</span>
    -
    -<span class="nc" id="L389">        child.counter(&quot;test-1&quot;);</span>
    -<span class="nc" id="L390">        parent.register(&quot;child&quot;, child);</span>
    -<span class="nc" id="L391">        child.counter(&quot;test-2&quot;);</span>
    -
    -<span class="nc" id="L393">        assertThat(parent.getMetrics()).isEmpty();</span>
    -<span class="nc" id="L394">    }</span>
    -
    -    @Test
    -    public void addingMultipleChildMetricsAfterRegister() {
    -<span class="nc" id="L398">        MetricRegistry parent = new NoopMetricRegistry();</span>
    -<span class="nc" id="L399">        MetricRegistry child = new MetricRegistry();</span>
    -
    -<span class="nc" id="L401">        child.counter(&quot;test-1&quot;);</span>
    -<span class="nc" id="L402">        child.counter(&quot;test-2&quot;);</span>
    -<span class="nc" id="L403">        parent.register(&quot;child&quot;, child);</span>
    -<span class="nc" id="L404">        child.counter(&quot;test-3&quot;);</span>
    -<span class="nc" id="L405">        child.counter(&quot;test-4&quot;);</span>
    -
    -<span class="nc" id="L407">        assertThat(parent.getMetrics()).isEmpty();</span>
    -<span class="nc" id="L408">    }</span>
    -
    -    @Test
    -    public void addingDeepChildMetricsAfterRegister() {
    -<span class="nc" id="L412">        MetricRegistry parent = new NoopMetricRegistry();</span>
    -<span class="nc" id="L413">        MetricRegistry child = new MetricRegistry();</span>
    -<span class="nc" id="L414">        MetricRegistry deepChild = new MetricRegistry();</span>
    -
    -<span class="nc" id="L416">        deepChild.counter(&quot;test-1&quot;);</span>
    -<span class="nc" id="L417">        child.register(&quot;deep-child&quot;, deepChild);</span>
    -<span class="nc" id="L418">        deepChild.counter(&quot;test-2&quot;);</span>
    -
    -<span class="nc" id="L420">        child.counter(&quot;test-3&quot;);</span>
    -<span class="nc" id="L421">        parent.register(&quot;child&quot;, child);</span>
    -<span class="nc" id="L422">        child.counter(&quot;test-4&quot;);</span>
    -
    -<span class="nc" id="L424">        deepChild.counter(&quot;test-5&quot;);</span>
    -
    -<span class="nc" id="L426">        assertThat(parent.getMetrics()).isEmpty();</span>
    -<span class="nc" id="L427">        assertThat(deepChild.getMetrics()).hasSize(3);</span>
    -<span class="nc" id="L428">        assertThat(child.getMetrics()).hasSize(5);</span>
    -<span class="nc" id="L429">    }</span>
    -
    -    @Test
    -    public void removingChildMetricAfterRegister() {
    -<span class="nc" id="L433">        MetricRegistry parent = new NoopMetricRegistry();</span>
    -<span class="nc" id="L434">        MetricRegistry child = new MetricRegistry();</span>
    -
    -<span class="nc" id="L436">        child.counter(&quot;test-1&quot;);</span>
    -<span class="nc" id="L437">        parent.register(&quot;child&quot;, child);</span>
    -<span class="nc" id="L438">        child.counter(&quot;test-2&quot;);</span>
    -
    -<span class="nc" id="L440">        child.remove(&quot;test-1&quot;);</span>
    -
    -<span class="nc" id="L442">        assertThat(parent.getMetrics()).isEmpty();</span>
    -<span class="nc" id="L443">        assertThat(child.getMetrics()).doesNotContainKey(&quot;test-1&quot;);</span>
    -<span class="nc" id="L444">    }</span>
    -
    -    @Test
    -    public void removingMultipleChildMetricsAfterRegister() {
    -<span class="nc" id="L448">        MetricRegistry parent = new NoopMetricRegistry();</span>
    -<span class="nc" id="L449">        MetricRegistry child = new MetricRegistry();</span>
    -
    -<span class="nc" id="L451">        child.counter(&quot;test-1&quot;);</span>
    -<span class="nc" id="L452">        child.counter(&quot;test-2&quot;);</span>
    -<span class="nc" id="L453">        parent.register(&quot;child&quot;, child);</span>
    -<span class="nc" id="L454">        child.counter(&quot;test-3&quot;);</span>
    -<span class="nc" id="L455">        child.counter(&quot;test-4&quot;);</span>
    -
    -<span class="nc" id="L457">        child.remove(&quot;test-1&quot;);</span>
    -<span class="nc" id="L458">        child.remove(&quot;test-3&quot;);</span>
    -
    -<span class="nc" id="L460">        assertThat(parent.getMetrics()).isEmpty();</span>
    -<span class="nc" id="L461">        assertThat(child.getMetrics()).doesNotContainKeys(&quot;test-1&quot;, &quot;test-3&quot;);</span>
    -<span class="nc" id="L462">    }</span>
    -
    -    @Test
    -    public void removingDeepChildMetricsAfterRegister() {
    -<span class="nc" id="L466">        MetricRegistry parent = new NoopMetricRegistry();</span>
    -<span class="nc" id="L467">        MetricRegistry child = new MetricRegistry();</span>
    -<span class="nc" id="L468">        MetricRegistry deepChild = new MetricRegistry();</span>
    -
    -<span class="nc" id="L470">        deepChild.counter(&quot;test-1&quot;);</span>
    -<span class="nc" id="L471">        child.register(&quot;deep-child&quot;, deepChild);</span>
    -<span class="nc" id="L472">        deepChild.counter(&quot;test-2&quot;);</span>
    -
    -<span class="nc" id="L474">        child.counter(&quot;test-3&quot;);</span>
    -<span class="nc" id="L475">        parent.register(&quot;child&quot;, child);</span>
    -<span class="nc" id="L476">        child.counter(&quot;test-4&quot;);</span>
    -
    -<span class="nc" id="L478">        deepChild.remove(&quot;test-2&quot;);</span>
    -
    -<span class="nc" id="L480">        Set&lt;String&gt; childMetrics = child.getMetrics().keySet();</span>
    -<span class="nc" id="L481">        Set&lt;String&gt; deepChildMetrics = deepChild.getMetrics().keySet();</span>
    -
    -<span class="nc" id="L483">        assertThat(parent.getMetrics()).isEmpty();</span>
    -<span class="nc" id="L484">        assertThat(deepChildMetrics).hasSize(1);</span>
    -<span class="nc" id="L485">        assertThat(childMetrics).hasSize(3);</span>
    -<span class="nc" id="L486">    }</span>
    -
    -    @Test
    -    public void registerNullMetric() {
    -<span class="nc" id="L490">        MetricRegistry registry = new NoopMetricRegistry();</span>
    -<span class="nc" id="L491">        assertThatNullPointerException()</span>
    -<span class="nc" id="L492">                .isThrownBy(() -&gt; registry.register(&quot;any_name&quot;, null))</span>
    -<span class="nc" id="L493">                .withMessage(&quot;metric == null&quot;);</span>
    -<span class="nc" id="L494">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge$Ratio.html b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge$Ratio.html
    deleted file mode 100644
    index e904636175..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge$Ratio.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>RatioGauge.Ratio</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">RatioGauge.Ratio</span></div><h1>RatioGauge.Ratio</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">48 of 48</td><td class="ctr2">0%</td><td class="bar">6 of 6</td><td class="ctr2">0%</td><td class="ctr1">7</td><td class="ctr2">7</td><td class="ctr1">10</td><td class="ctr2">10</td><td class="ctr1">4</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a0"><a href="RatioGauge.java.html#L42" class="el_method">getValue()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="20" alt="20"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">4</td><td class="ctr2" id="g0">4</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">4</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="RatioGauge.java.html#L51" class="el_method">toString()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="78" height="10" title="13" alt="13"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="RatioGauge.java.html#L30" class="el_method">RatioGauge.Ratio(double, double)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="54" height="10" title="9" alt="9"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a1"><a href="RatioGauge.java.html#L24" class="el_method">of(double, double)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="6" alt="6"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge.html b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge.html
    deleted file mode 100644
    index cf5bb8ab5e..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>RatioGauge</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">RatioGauge</span></div><h1>RatioGauge</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">8 of 8</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="RatioGauge.java.html#L64" class="el_method">getValue()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="RatioGauge.java.html#L11" class="el_method">RatioGauge()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="72" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge.java.html
    deleted file mode 100644
    index 091e60f92b..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGauge.java.html
    +++ /dev/null
    @@ -1,67 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>RatioGauge.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">RatioGauge.java</span></div><h1>RatioGauge.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import static java.lang.Double.isInfinite;
    -import static java.lang.Double.isNaN;
    -
    -/**
    - * A gauge which measures the ratio of one value to another.
    - * &lt;p&gt;
    - * If the denominator is zero, not a number, or infinite, the resulting ratio is not a number.
    - */
    -<span class="nc" id="L11">public abstract class RatioGauge implements Gauge&lt;Double&gt; {</span>
    -    /**
    -     * A ratio of one quantity to another.
    -     */
    -    public static class Ratio {
    -        /**
    -         * Creates a new ratio with the given numerator and denominator.
    -         *
    -         * @param numerator   the numerator of the ratio
    -         * @param denominator the denominator of the ratio
    -         * @return {@code numerator:denominator}
    -         */
    -        public static Ratio of(double numerator, double denominator) {
    -<span class="nc" id="L24">            return new Ratio(numerator, denominator);</span>
    -        }
    -
    -        private final double numerator;
    -        private final double denominator;
    -
    -<span class="nc" id="L30">        private Ratio(double numerator, double denominator) {</span>
    -<span class="nc" id="L31">            this.numerator = numerator;</span>
    -<span class="nc" id="L32">            this.denominator = denominator;</span>
    -<span class="nc" id="L33">        }</span>
    -
    -        /**
    -         * Returns the ratio, which is either a {@code double} between 0 and 1 (inclusive) or
    -         * {@code NaN}.
    -         *
    -         * @return the ratio
    -         */
    -        public double getValue() {
    -<span class="nc" id="L42">            final double d = denominator;</span>
    -<span class="nc bnc" id="L43" title="All 6 branches missed.">            if (isNaN(d) || isInfinite(d) || d == 0) {</span>
    -<span class="nc" id="L44">                return Double.NaN;</span>
    -            }
    -<span class="nc" id="L46">            return numerator / d;</span>
    -        }
    -
    -        @Override
    -        public String toString() {
    -<span class="nc" id="L51">            return numerator + &quot;:&quot; + denominator;</span>
    -        }
    -    }
    -
    -    /**
    -     * Returns the {@link Ratio} which is the gauge's current value.
    -     *
    -     * @return the {@link Ratio} which is the gauge's current value
    -     */
    -    protected abstract Ratio getRatio();
    -
    -    @Override
    -    public Double getValue() {
    -<span class="nc" id="L64">        return getRatio().getValue();</span>
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$1.html
    deleted file mode 100644
    index c51c3f2c10..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$1.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>RatioGaugeTest.new RatioGauge() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">RatioGaugeTest.new RatioGauge() {...}</span></div><h1>RatioGaugeTest.new RatioGauge() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">10 of 10</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="RatioGaugeTest.java.html#L18" class="el_method">{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="RatioGaugeTest.java.html#L21" class="el_method">getRatio()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="4" alt="4"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$2.html b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$2.html
    deleted file mode 100644
    index e1f0b3d224..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$2.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>RatioGaugeTest.new RatioGauge() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">RatioGaugeTest.new RatioGauge() {...}</span></div><h1>RatioGaugeTest.new RatioGauge() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">10 of 10</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="RatioGaugeTest.java.html#L31" class="el_method">{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="RatioGaugeTest.java.html#L34" class="el_method">getRatio()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="4" alt="4"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$3.html b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$3.html
    deleted file mode 100644
    index f6f7720e4e..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$3.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>RatioGaugeTest.new RatioGauge() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">RatioGaugeTest.new RatioGauge() {...}</span></div><h1>RatioGaugeTest.new RatioGauge() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">10 of 10</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="RatioGaugeTest.java.html#L44" class="el_method">{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="RatioGaugeTest.java.html#L47" class="el_method">getRatio()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="4" alt="4"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$4.html b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$4.html
    deleted file mode 100644
    index 018c998c8e..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest$4.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>RatioGaugeTest.new RatioGauge() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">RatioGaugeTest.new RatioGauge() {...}</span></div><h1>RatioGaugeTest.new RatioGauge() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">10 of 10</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="RatioGaugeTest.java.html#L57" class="el_method">{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="RatioGaugeTest.java.html#L60" class="el_method">getRatio()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="4" alt="4"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest.html
    deleted file mode 100644
    index 2ed8423f61..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>RatioGaugeTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">RatioGaugeTest</span></div><h1>RatioGaugeTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">59 of 59</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">6</td><td class="ctr2">6</td><td class="ctr1">21</td><td class="ctr2">21</td><td class="ctr1">6</td><td class="ctr2">6</td></tr></tfoot><tbody><tr><td id="a0"><a href="RatioGaugeTest.java.html#L18" class="el_method">calculatesTheRatioOfTheNumeratorToTheDenominator()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="12" alt="12"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">4</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a5"><a href="RatioGaugeTest.java.html#L10" class="el_method">ratiosAreHumanReadable()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="110" height="10" title="11" alt="11"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="RatioGaugeTest.java.html#L31" class="el_method">handlesDivideByZeroIssues()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="110" height="10" title="11" alt="11"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a href="RatioGaugeTest.java.html#L44" class="el_method">handlesInfiniteDenominators()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="110" height="10" title="11" alt="11"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">4</td><td class="ctr2" id="i3">4</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a3"><a href="RatioGaugeTest.java.html#L57" class="el_method">handlesNaNDenominators()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="110" height="10" title="11" alt="11"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">4</td><td class="ctr2" id="i4">4</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a4"><a href="RatioGaugeTest.java.html#L7" class="el_method">RatioGaugeTest()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="3" alt="3"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest.java.html
    deleted file mode 100644
    index 89dc3d8068..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/RatioGaugeTest.java.html
    +++ /dev/null
    @@ -1,68 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>RatioGaugeTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">RatioGaugeTest.java</span></div><h1>RatioGaugeTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -
    -<span class="nc" id="L7">public class RatioGaugeTest {</span>
    -    @Test
    -    public void ratiosAreHumanReadable() {
    -<span class="nc" id="L10">        final RatioGauge.Ratio ratio = RatioGauge.Ratio.of(100, 200);</span>
    -
    -<span class="nc" id="L12">        assertThat(ratio.toString())</span>
    -<span class="nc" id="L13">                .isEqualTo(&quot;100.0:200.0&quot;);</span>
    -<span class="nc" id="L14">    }</span>
    -
    -    @Test
    -    public void calculatesTheRatioOfTheNumeratorToTheDenominator() {
    -<span class="nc" id="L18">        final RatioGauge regular = new RatioGauge() {</span>
    -            @Override
    -            protected Ratio getRatio() {
    -<span class="nc" id="L21">                return RatioGauge.Ratio.of(2, 4);</span>
    -            }
    -        };
    -
    -<span class="nc" id="L25">        assertThat(regular.getValue())</span>
    -<span class="nc" id="L26">                .isEqualTo(0.5);</span>
    -<span class="nc" id="L27">    }</span>
    -
    -    @Test
    -    public void handlesDivideByZeroIssues() {
    -<span class="nc" id="L31">        final RatioGauge divByZero = new RatioGauge() {</span>
    -            @Override
    -            protected Ratio getRatio() {
    -<span class="nc" id="L34">                return Ratio.of(100, 0);</span>
    -            }
    -        };
    -
    -<span class="nc" id="L38">        assertThat(divByZero.getValue())</span>
    -<span class="nc" id="L39">                .isNaN();</span>
    -<span class="nc" id="L40">    }</span>
    -
    -    @Test
    -    public void handlesInfiniteDenominators() {
    -<span class="nc" id="L44">        final RatioGauge infinite = new RatioGauge() {</span>
    -            @Override
    -            protected Ratio getRatio() {
    -<span class="nc" id="L47">                return Ratio.of(10, Double.POSITIVE_INFINITY);</span>
    -            }
    -        };
    -
    -<span class="nc" id="L51">        assertThat(infinite.getValue())</span>
    -<span class="nc" id="L52">                .isNaN();</span>
    -<span class="nc" id="L53">    }</span>
    -
    -    @Test
    -    public void handlesNaNDenominators() {
    -<span class="nc" id="L57">        final RatioGauge nan = new RatioGauge() {</span>
    -            @Override
    -            protected Ratio getRatio() {
    -<span class="nc" id="L60">                return Ratio.of(10, Double.NaN);</span>
    -            }
    -        };
    -
    -<span class="nc" id="L64">        assertThat(nan.getValue())</span>
    -<span class="nc" id="L65">                .isNaN();</span>
    -<span class="nc" id="L66">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter$NamedThreadFactory.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter$NamedThreadFactory.html
    deleted file mode 100644
    index fcbfa28071..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter$NamedThreadFactory.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ScheduledReporter.NamedThreadFactory</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ScheduledReporter.NamedThreadFactory</span></div><h1>ScheduledReporter.NamedThreadFactory</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">63 of 63</td><td class="ctr2">0%</td><td class="bar">4 of 4</td><td class="ctr2">0%</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">11</td><td class="ctr2">11</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="ScheduledReporter.java.html#L37" class="el_method">ScheduledReporter.NamedThreadFactory(String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="32" alt="32"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h0">6</td><td class="ctr2" id="i0">6</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="ScheduledReporter.java.html#L48" class="el_method">newThread(Runnable)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="116" height="10" title="31" alt="31"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h1">5</td><td class="ctr2" id="i1">5</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter.html
    deleted file mode 100644
    index 843cf54f15..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ScheduledReporter</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ScheduledReporter</span></div><h1>ScheduledReporter</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">308 of 308</td><td class="ctr2">0%</td><td class="bar">20 of 20</td><td class="ctr2">0%</td><td class="ctr1">33</td><td class="ctr2">33</td><td class="ctr1">79</td><td class="ctr2">79</td><td class="ctr1">23</td><td class="ctr2">23</td></tr></tfoot><tbody><tr><td id="a17"><a href="ScheduledReporter.java.html#L133" class="el_method">ScheduledReporter(MetricRegistry, String, MetricFilter, TimeUnit, TimeUnit, ScheduledExecutorService, boolean, Set)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="55" alt="55"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="90" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f1">4</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h1">14</td><td class="ctr2" id="i1">14</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a22"><a href="ScheduledReporter.java.html#L219" class="el_method">stop()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="104" height="10" title="48" alt="48"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="8" alt="8"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f0">5</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h0">17</td><td class="ctr2" id="i0">17</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a13"><a href="ScheduledReporter.java.html#L276" class="el_method">report()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="76" height="10" title="35" alt="35"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h2">8</td><td class="ctr2" id="i2">8</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a19"><a href="ScheduledReporter.java.html#L166" class="el_method">start(long, long, TimeUnit, Runnable)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="37" height="10" title="17" alt="17"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f3">2</td><td class="ctr2" id="g3">2</td><td class="ctr1" id="h5">4</td><td class="ctr2" id="i5">4</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a5"><a href="ScheduledReporter.java.html#L331" class="el_method">createDefaultExecutor(String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="37" height="10" title="17" alt="17"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h14">1</td><td class="ctr2" id="i14">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a1"><a href="ScheduledReporter.java.html#L252" class="el_method">cancelScheduledFuture()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="32" height="10" title="15" alt="15"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="4" alt="4"/></td><td class="ctr2" id="e3">0%</td><td class="ctr1" id="f2">3</td><td class="ctr2" id="g2">3</td><td class="ctr1" id="h3">6</td><td class="ctr2" id="i3">6</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a0"><a href="ScheduledReporter.java.html#L326" class="el_method">calculateRateUnit(TimeUnit)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="13" alt="13"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i6">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a12"><a href="ScheduledReporter.java.html#L206" class="el_method">lambda$start$0()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="12" alt="12"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h4">5</td><td class="ctr2" id="i4">5</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a16"><a href="ScheduledReporter.java.html#L123" class="el_method">ScheduledReporter(MetricRegistry, String, MetricFilter, TimeUnit, TimeUnit, ScheduledExecutorService, boolean)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="11" alt="11"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i7">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a14"><a href="ScheduledReporter.java.html#L85" class="el_method">ScheduledReporter(MetricRegistry, String, MetricFilter, TimeUnit, TimeUnit)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="10" alt="10"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i8">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a15"><a href="ScheduledReporter.java.html#L103" class="el_method">ScheduledReporter(MetricRegistry, String, MetricFilter, TimeUnit, TimeUnit, ScheduledExecutorService)</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="10" alt="10"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a9"><a href="ScheduledReporter.java.html#L182" class="el_method">getScheduledFuture(long, long, TimeUnit, Runnable)</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="9" alt="9"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h15">1</td><td class="ctr2" id="i15">1</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a18"><a href="ScheduledReporter.java.html#L204" class="el_method">start(long, long, TimeUnit)</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="8" alt="8"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a21"><a href="ScheduledReporter.java.html#L29" class="el_method">static {...}</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="8" alt="8"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a10"><a href="ScheduledReporter.java.html#L193" class="el_method">getScheduledFuture(long, long, TimeUnit, Runnable, ScheduledExecutorService)</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="7" alt="7"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h16">1</td><td class="ctr2" id="i16">1</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a20"><a href="ScheduledReporter.java.html#L158" class="el_method">start(long, TimeUnit)</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="6" alt="6"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h12">2</td><td class="ctr2" id="i12">2</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a3"><a href="ScheduledReporter.java.html#L310" class="el_method">convertDuration(double)</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="6" alt="6"/></td><td class="ctr2" id="c16">0%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h17">1</td><td class="ctr2" id="i17">1</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a4"><a href="ScheduledReporter.java.html#L314" class="el_method">convertRate(double)</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="6" alt="6"/></td><td class="ctr2" id="c17">0%</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">1</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h18">1</td><td class="ctr2" id="i18">1</td><td class="ctr1" id="j17">1</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a2"><a href="ScheduledReporter.java.html#L269" class="el_method">close()</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="3" alt="3"/></td><td class="ctr2" id="c18">0%</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f18">1</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h13">2</td><td class="ctr2" id="i13">2</td><td class="ctr1" id="j18">1</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a8"><a href="ScheduledReporter.java.html#L302" class="el_method">getRateUnit()</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="3" alt="3"/></td><td class="ctr2" id="c19">0%</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">1</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h19">1</td><td class="ctr2" id="i19">1</td><td class="ctr1" id="j19">1</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a7"><a href="ScheduledReporter.java.html#L306" class="el_method">getDurationUnit()</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="3" alt="3"/></td><td class="ctr2" id="c20">0%</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f20">1</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h20">1</td><td class="ctr2" id="i20">1</td><td class="ctr1" id="j20">1</td><td class="ctr2" id="k20">1</td></tr><tr><td id="a11"><a href="ScheduledReporter.java.html#L318" class="el_method">isShutdownExecutorOnStop()</a></td><td class="bar" id="b21"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="3" alt="3"/></td><td class="ctr2" id="c21">0%</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f21">1</td><td class="ctr2" id="g21">1</td><td class="ctr1" id="h21">1</td><td class="ctr2" id="i21">1</td><td class="ctr1" id="j21">1</td><td class="ctr2" id="k21">1</td></tr><tr><td id="a6"><a href="ScheduledReporter.java.html#L322" class="el_method">getDisabledMetricAttributes()</a></td><td class="bar" id="b22"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="3" alt="3"/></td><td class="ctr2" id="c22">0%</td><td class="bar" id="d22"/><td class="ctr2" id="e22">n/a</td><td class="ctr1" id="f22">1</td><td class="ctr2" id="g22">1</td><td class="ctr1" id="h22">1</td><td class="ctr2" id="i22">1</td><td class="ctr1" id="j22">1</td><td class="ctr2" id="k22">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter.java.html
    deleted file mode 100644
    index 96367838e8..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporter.java.html
    +++ /dev/null
    @@ -1,335 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ScheduledReporter.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">ScheduledReporter.java</span></div><h1>ScheduledReporter.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.slf4j.Logger;
    -import org.slf4j.LoggerFactory;
    -
    -import java.io.Closeable;
    -import java.util.Collections;
    -import java.util.Locale;
    -import java.util.Set;
    -import java.util.SortedMap;
    -import java.util.concurrent.Executor;
    -import java.util.concurrent.Executors;
    -import java.util.concurrent.ScheduledExecutorService;
    -import java.util.concurrent.ScheduledFuture;
    -import java.util.concurrent.ThreadFactory;
    -import java.util.concurrent.TimeUnit;
    -import java.util.concurrent.atomic.AtomicInteger;
    -
    -/**
    - * The abstract base class for all scheduled reporters (i.e., reporters which process a registry's
    - * metrics periodically).
    - *
    - * @see ConsoleReporter
    - * @see CsvReporter
    - * @see Slf4jReporter
    - */
    -public abstract class ScheduledReporter implements Closeable, Reporter {
    -
    -<span class="nc" id="L29">    private static final Logger LOG = LoggerFactory.getLogger(ScheduledReporter.class);</span>
    -
    -    /**
    -     * A simple named thread factory.
    -     */
    -    @SuppressWarnings(&quot;NullableProblems&quot;)
    -    private static class NamedThreadFactory implements ThreadFactory {
    -        private final ThreadGroup group;
    -<span class="nc" id="L37">        private final AtomicInteger threadNumber = new AtomicInteger(1);</span>
    -        private final String namePrefix;
    -
    -<span class="nc" id="L40">        private NamedThreadFactory(String name) {</span>
    -<span class="nc" id="L41">            final SecurityManager s = System.getSecurityManager();</span>
    -<span class="nc bnc" id="L42" title="All 2 branches missed.">            this.group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup();</span>
    -<span class="nc" id="L43">            this.namePrefix = &quot;metrics-&quot; + name + &quot;-thread-&quot;;</span>
    -<span class="nc" id="L44">        }</span>
    -
    -        @Override
    -        public Thread newThread(Runnable r) {
    -<span class="nc" id="L48">            final Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0);</span>
    -<span class="nc" id="L49">            t.setDaemon(true);</span>
    -<span class="nc bnc" id="L50" title="All 2 branches missed.">            if (t.getPriority() != Thread.NORM_PRIORITY) {</span>
    -<span class="nc" id="L51">                t.setPriority(Thread.NORM_PRIORITY);</span>
    -            }
    -<span class="nc" id="L53">            return t;</span>
    -        }
    -    }
    -
    -<span class="nc" id="L57">    private static final AtomicInteger FACTORY_ID = new AtomicInteger();</span>
    -
    -    private final MetricRegistry registry;
    -    private final ScheduledExecutorService executor;
    -    private final boolean shutdownExecutorOnStop;
    -    private final Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -    private ScheduledFuture&lt;?&gt; scheduledFuture;
    -    private final MetricFilter filter;
    -    private final long durationFactor;
    -    private final String durationUnit;
    -    private final long rateFactor;
    -    private final String rateUnit;
    -
    -    /**
    -     * Creates a new {@link ScheduledReporter} instance.
    -     *
    -     * @param registry     the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    -     *                     reporter will report
    -     * @param name         the reporter's name
    -     * @param filter       the filter for which metrics to report
    -     * @param rateUnit     a unit of time
    -     * @param durationUnit a unit of time
    -     */
    -    protected ScheduledReporter(MetricRegistry registry,
    -                                String name,
    -                                MetricFilter filter,
    -                                TimeUnit rateUnit,
    -                                TimeUnit durationUnit) {
    -<span class="nc" id="L85">        this(registry, name, filter, rateUnit, durationUnit, createDefaultExecutor(name));</span>
    -<span class="nc" id="L86">    }</span>
    -
    -    /**
    -     * Creates a new {@link ScheduledReporter} instance.
    -     *
    -     * @param registry the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    -     *                 reporter will report
    -     * @param name     the reporter's name
    -     * @param filter   the filter for which metrics to report
    -     * @param executor the executor to use while scheduling reporting of metrics.
    -     */
    -    protected ScheduledReporter(MetricRegistry registry,
    -                                String name,
    -                                MetricFilter filter,
    -                                TimeUnit rateUnit,
    -                                TimeUnit durationUnit,
    -                                ScheduledExecutorService executor) {
    -<span class="nc" id="L103">        this(registry, name, filter, rateUnit, durationUnit, executor, true);</span>
    -<span class="nc" id="L104">    }</span>
    -
    -    /**
    -     * Creates a new {@link ScheduledReporter} instance.
    -     *
    -     * @param registry               the {@link com.codahale.metrics.MetricRegistry} containing the metrics this
    -     *                               reporter will report
    -     * @param name                   the reporter's name
    -     * @param filter                 the filter for which metrics to report
    -     * @param executor               the executor to use while scheduling reporting of metrics.
    -     * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -     */
    -    protected ScheduledReporter(MetricRegistry registry,
    -                                String name,
    -                                MetricFilter filter,
    -                                TimeUnit rateUnit,
    -                                TimeUnit durationUnit,
    -                                ScheduledExecutorService executor,
    -                                boolean shutdownExecutorOnStop) {
    -<span class="nc" id="L123">        this(registry, name, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, Collections.emptySet());</span>
    -<span class="nc" id="L124">    }</span>
    -
    -    protected ScheduledReporter(MetricRegistry registry,
    -                                String name,
    -                                MetricFilter filter,
    -                                TimeUnit rateUnit,
    -                                TimeUnit durationUnit,
    -                                ScheduledExecutorService executor,
    -                                boolean shutdownExecutorOnStop,
    -<span class="nc" id="L133">                                Set&lt;MetricAttribute&gt; disabledMetricAttributes) {</span>
    -
    -<span class="nc bnc" id="L135" title="All 2 branches missed.">        if (registry == null) {</span>
    -<span class="nc" id="L136">            throw new NullPointerException(&quot;registry == null&quot;);</span>
    -        }
    -
    -<span class="nc" id="L139">        this.registry = registry;</span>
    -<span class="nc" id="L140">        this.filter = filter;</span>
    -<span class="nc bnc" id="L141" title="All 2 branches missed.">        this.executor = executor == null ? createDefaultExecutor(name) : executor;</span>
    -<span class="nc" id="L142">        this.shutdownExecutorOnStop = shutdownExecutorOnStop;</span>
    -<span class="nc" id="L143">        this.rateFactor = rateUnit.toSeconds(1);</span>
    -<span class="nc" id="L144">        this.rateUnit = calculateRateUnit(rateUnit);</span>
    -<span class="nc" id="L145">        this.durationFactor = durationUnit.toNanos(1);</span>
    -<span class="nc" id="L146">        this.durationUnit = durationUnit.toString().toLowerCase(Locale.US);</span>
    -<span class="nc bnc" id="L147" title="All 2 branches missed.">        this.disabledMetricAttributes = disabledMetricAttributes != null ? disabledMetricAttributes :</span>
    -<span class="nc" id="L148">                Collections.emptySet();</span>
    -<span class="nc" id="L149">    }</span>
    -
    -    /**
    -     * Starts the reporter polling at the given period.
    -     *
    -     * @param period the amount of time between polls
    -     * @param unit   the unit for {@code period}
    -     */
    -    public void start(long period, TimeUnit unit) {
    -<span class="nc" id="L158">        start(period, period, unit);</span>
    -<span class="nc" id="L159">    }</span>
    -
    -    /**
    -     * Starts the reporter polling at the given period with the specific runnable action.
    -     * Visible only for testing.
    -     */
    -    synchronized void start(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
    -<span class="nc bnc" id="L166" title="All 2 branches missed.">        if (this.scheduledFuture != null) {</span>
    -<span class="nc" id="L167">            throw new IllegalArgumentException(&quot;Reporter already started&quot;);</span>
    -        }
    -
    -<span class="nc" id="L170">        this.scheduledFuture = getScheduledFuture(initialDelay, period, unit, runnable);</span>
    -<span class="nc" id="L171">    }</span>
    -
    -
    -    /**
    -     * Schedule the task, and return a future.
    -     *
    -     * @deprecated Use {@link #getScheduledFuture(long, long, TimeUnit, Runnable, ScheduledExecutorService)} instead.
    -     */
    -    @SuppressWarnings(&quot;DeprecatedIsStillUsed&quot;)
    -    @Deprecated
    -    protected ScheduledFuture&lt;?&gt; getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable) {
    -<span class="nc" id="L182">        return getScheduledFuture(initialDelay, period, unit, runnable, this.executor);</span>
    -    }
    -
    -    /**
    -     * Schedule the task, and return a future.
    -     * The current implementation uses scheduleWithFixedDelay, replacing scheduleWithFixedRate. This avoids queueing issues, but may
    -     * cause some reporters to skip metrics, as scheduleWithFixedDelay introduces a growing delta from the original start point.
    -     *
    -     * Overriding this in a subclass to revert to the old behavior is permitted.
    -     */
    -    protected ScheduledFuture&lt;?&gt; getScheduledFuture(long initialDelay, long period, TimeUnit unit, Runnable runnable, ScheduledExecutorService executor) {
    -<span class="nc" id="L193">        return executor.scheduleWithFixedDelay(runnable, initialDelay, period, unit);</span>
    -    }
    -
    -    /**
    -     * Starts the reporter polling at the given period.
    -     *
    -     * @param initialDelay the time to delay the first execution
    -     * @param period       the amount of time between polls
    -     * @param unit         the unit for {@code period} and {@code initialDelay}
    -     */
    -    synchronized public void start(long initialDelay, long period, TimeUnit unit) {
    -<span class="nc" id="L204">        start(initialDelay, period, unit, () -&gt; {</span>
    -            try {
    -<span class="nc" id="L206">                report();</span>
    -<span class="nc" id="L207">            } catch (Throwable ex) {</span>
    -<span class="nc" id="L208">                LOG.error(&quot;Exception thrown from {}#report. Exception was suppressed.&quot;, ScheduledReporter.this.getClass().getSimpleName(), ex);</span>
    -<span class="nc" id="L209">            }</span>
    -<span class="nc" id="L210">        });</span>
    -<span class="nc" id="L211">    }</span>
    -
    -    /**
    -     * Stops the reporter and if shutdownExecutorOnStop is true then shuts down its thread of execution.
    -     * &lt;p&gt;
    -     * Uses the shutdown pattern from http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ExecutorService.html
    -     */
    -    public void stop() {
    -<span class="nc bnc" id="L219" title="All 2 branches missed.">        if (shutdownExecutorOnStop) {</span>
    -<span class="nc" id="L220">            executor.shutdown(); // Disable new tasks from being submitted</span>
    -        }
    -
    -        try {
    -<span class="nc" id="L224">            report(); // Report metrics one last time</span>
    -<span class="nc" id="L225">        } catch (Exception e) {</span>
    -<span class="nc" id="L226">            LOG.warn(&quot;Final reporting of metrics failed.&quot;, e);</span>
    -<span class="nc" id="L227">        }</span>
    -
    -<span class="nc bnc" id="L229" title="All 2 branches missed.">        if (shutdownExecutorOnStop) {</span>
    -            try {
    -                // Wait a while for existing tasks to terminate
    -<span class="nc bnc" id="L232" title="All 2 branches missed.">                if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {</span>
    -<span class="nc" id="L233">                    executor.shutdownNow(); // Cancel currently executing tasks</span>
    -                    // Wait a while for tasks to respond to being cancelled
    -<span class="nc bnc" id="L235" title="All 2 branches missed.">                    if (!executor.awaitTermination(1, TimeUnit.SECONDS)) {</span>
    -<span class="nc" id="L236">                        LOG.warn(&quot;ScheduledExecutorService did not terminate.&quot;);</span>
    -                    }
    -                }
    -<span class="nc" id="L239">            } catch (InterruptedException ie) {</span>
    -                // (Re-)Cancel if current thread also interrupted
    -<span class="nc" id="L241">                executor.shutdownNow();</span>
    -                // Preserve interrupt status
    -<span class="nc" id="L243">                Thread.currentThread().interrupt();</span>
    -<span class="nc" id="L244">            }</span>
    -        } else {
    -            // The external manager (like JEE container) responsible for lifecycle of executor
    -<span class="nc" id="L247">            cancelScheduledFuture();</span>
    -        }
    -<span class="nc" id="L249">    }</span>
    -
    -    private synchronized void cancelScheduledFuture() {
    -<span class="nc bnc" id="L252" title="All 2 branches missed.">        if (this.scheduledFuture == null) {</span>
    -            // was never started
    -<span class="nc" id="L254">            return;</span>
    -        }
    -<span class="nc bnc" id="L256" title="All 2 branches missed.">        if (this.scheduledFuture.isCancelled()) {</span>
    -            // already cancelled
    -<span class="nc" id="L258">            return;</span>
    -        }
    -        // just cancel the scheduledFuture and exit
    -<span class="nc" id="L261">        this.scheduledFuture.cancel(false);</span>
    -<span class="nc" id="L262">    }</span>
    -
    -    /**
    -     * Stops the reporter and shuts down its thread of execution.
    -     */
    -    @Override
    -    public void close() {
    -<span class="nc" id="L269">        stop();</span>
    -<span class="nc" id="L270">    }</span>
    -
    -    /**
    -     * Report the current values of all metrics in the registry.
    -     */
    -    public void report() {
    -<span class="nc" id="L276">        synchronized (this) {</span>
    -<span class="nc" id="L277">            report(registry.getGauges(filter),</span>
    -<span class="nc" id="L278">                    registry.getCounters(filter),</span>
    -<span class="nc" id="L279">                    registry.getHistograms(filter),</span>
    -<span class="nc" id="L280">                    registry.getMeters(filter),</span>
    -<span class="nc" id="L281">                    registry.getTimers(filter));</span>
    -<span class="nc" id="L282">        }</span>
    -<span class="nc" id="L283">    }</span>
    -
    -    /**
    -     * Called periodically by the polling thread. Subclasses should report all the given metrics.
    -     *
    -     * @param gauges     all of the gauges in the registry
    -     * @param counters   all of the counters in the registry
    -     * @param histograms all of the histograms in the registry
    -     * @param meters     all of the meters in the registry
    -     * @param timers     all of the timers in the registry
    -     */
    -    @SuppressWarnings(&quot;rawtypes&quot;)
    -    public abstract void report(SortedMap&lt;String, Gauge&gt; gauges,
    -                                SortedMap&lt;String, Counter&gt; counters,
    -                                SortedMap&lt;String, Histogram&gt; histograms,
    -                                SortedMap&lt;String, Meter&gt; meters,
    -                                SortedMap&lt;String, Timer&gt; timers);
    -
    -    protected String getRateUnit() {
    -<span class="nc" id="L302">        return rateUnit;</span>
    -    }
    -
    -    protected String getDurationUnit() {
    -<span class="nc" id="L306">        return durationUnit;</span>
    -    }
    -
    -    protected double convertDuration(double duration) {
    -<span class="nc" id="L310">        return duration / durationFactor;</span>
    -    }
    -
    -    protected double convertRate(double rate) {
    -<span class="nc" id="L314">        return rate * rateFactor;</span>
    -    }
    -
    -    protected boolean isShutdownExecutorOnStop() {
    -<span class="nc" id="L318">        return shutdownExecutorOnStop;</span>
    -    }
    -
    -    protected Set&lt;MetricAttribute&gt; getDisabledMetricAttributes() {
    -<span class="nc" id="L322">        return disabledMetricAttributes;</span>
    -    }
    -
    -    private String calculateRateUnit(TimeUnit unit) {
    -<span class="nc" id="L326">        final String s = unit.toString().toLowerCase(Locale.US);</span>
    -<span class="nc" id="L327">        return s.substring(0, s.length() - 1);</span>
    -    }
    -
    -    private static ScheduledExecutorService createDefaultExecutor(String name) {
    -<span class="nc" id="L331">        return Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(name + '-' + FACTORY_ID.incrementAndGet()));</span>
    -    }
    -
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest$DummyReporter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest$DummyReporter.html
    deleted file mode 100644
    index 7690a56202..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest$DummyReporter.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ScheduledReporterTest.DummyReporter</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ScheduledReporterTest.DummyReporter</span></div><h1>ScheduledReporterTest.DummyReporter</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">47 of 47</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">9</td><td class="ctr2">9</td><td class="ctr1">4</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a3"><a href="ScheduledReporterTest.java.html#L263" class="el_method">ScheduledReporterTest.DummyReporter(MetricRegistry, String, MetricFilter, TimeUnit, TimeUnit, ScheduledExecutorService, boolean)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="15" alt="15"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="ScheduledReporterTest.java.html#L263" class="el_method">ScheduledReporterTest.DummyReporter(MetricRegistry, String, MetricFilter, TimeUnit, TimeUnit, ScheduledExecutorService)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="112" height="10" title="14" alt="14"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="ScheduledReporterTest.java.html#L263" class="el_method">ScheduledReporterTest.DummyReporter(MetricRegistry, String, MetricFilter, TimeUnit, TimeUnit)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="104" height="10" title="13" alt="13"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">3</td><td class="ctr2" id="i2">3</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="ScheduledReporterTest.java.html#L280" class="el_method">report(SortedMap, SortedMap, SortedMap, SortedMap, SortedMap)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="5" alt="5"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">2</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest.html
    deleted file mode 100644
    index 23ea251e1a..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ScheduledReporterTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">ScheduledReporterTest</span></div><h1>ScheduledReporterTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">653 of 653</td><td class="ctr2">0%</td><td class="bar">12 of 12</td><td class="ctr2">0%</td><td class="ctr1">31</td><td class="ctr2">31</td><td class="ctr1">141</td><td class="ctr2">141</td><td class="ctr1">25</td><td class="ctr2">25</td></tr></tfoot><tbody><tr><td id="a8"><a href="ScheduledReporterTest.java.html#L28" class="el_method">ScheduledReporterTest()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="128" alt="128"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h0">16</td><td class="ctr2" id="i0">16</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a19"><a href="ScheduledReporterTest.java.html#L212" class="el_method">shouldReportMetricsOnShutdown()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="51" height="10" title="55" alt="55"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h1">11</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a7"><a href="ScheduledReporterTest.java.html#L87" class="el_method">pollsPeriodically()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="52" alt="52"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h2">10</td><td class="ctr2" id="i2">10</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a10"><a href="ScheduledReporterTest.java.html#L125" class="el_method">shouldAutoCreateExecutorWhenItNull()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="52" alt="52"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h3">10</td><td class="ctr2" id="i3">10</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a20"><a href="ScheduledReporterTest.java.html#L235" class="el_method">shouldRescheduleAfterReportFinish()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="43" alt="43"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i4">9</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a9"><a href="ScheduledReporterTest.java.html#L54" class="el_method">setUp()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="33" height="10" title="36" alt="36"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a17"><a href="ScheduledReporterTest.java.html#L169" class="el_method">shouldNotFailWhenStoppingMultipleTimes()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="28" alt="28"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h8">6</td><td class="ctr2" id="i8">6</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a0"><a href="ScheduledReporterTest.java.html#L71" class="el_method">createWithNullMetricRegistry()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="26" alt="26"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h5">9</td><td class="ctr2" id="i5">9</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a11"><a href="ScheduledReporterTest.java.html#L195" class="el_method">shouldCancelScheduledFutureWhenStoppingWithExternallyManagedExecutor()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="26" alt="26"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h6">7</td><td class="ctr2" id="i6">7</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a23"><a href="ScheduledReporterTest.java.html#L107" class="el_method">shouldUsePeriodAsInitialDelayIfNotSpecifiedOtherwise()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="24" alt="24"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h12">4</td><td class="ctr2" id="i12">4</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a22"><a href="ScheduledReporterTest.java.html#L116" class="el_method">shouldStartWithSpecifiedInitialDelay()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="23" alt="23"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h13">4</td><td class="ctr2" id="i13">4</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a16"><a href="ScheduledReporterTest.java.html#L162" class="el_method">shouldNotFailOnStopIfReporterWasNotStared()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="20" alt="20"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f2">2</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h18">3</td><td class="ctr2" id="i18">3</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a18"><a href="ScheduledReporterTest.java.html#L186" class="el_method">shouldNotShutdownExternallyManagedExecutorOnStop()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="17" alt="17"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h10">5</td><td class="ctr2" id="i10">5</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a24"><a href="ScheduledReporterTest.java.html#L63" class="el_method">tearDown()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="13" alt="13"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h11">5</td><td class="ctr2" id="i11">5</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a21"><a href="ScheduledReporterTest.java.html#L179" class="el_method">shouldShutdownExecutorOnStopByDefault()</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="13" alt="13"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">1</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h14">4</td><td class="ctr2" id="i14">4</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a13"><a href="ScheduledReporterTest.java.html#L144" class="el_method">shouldDisallowToStartReportingMultiple()</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="11" alt="11"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f18">1</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h19">3</td><td class="ctr2" id="i19">3</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a14"><a href="ScheduledReporterTest.java.html#L150" class="el_method">shouldDisallowToStartReportingMultipleTimesOnCustomExecutor()</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="11" alt="11"/></td><td class="ctr2" id="c16">0%</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">1</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h20">3</td><td class="ctr2" id="i20">3</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a15"><a href="ScheduledReporterTest.java.html#L156" class="el_method">shouldDisallowToStartReportingMultipleTimesOnExternallyManagedExecutor()</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="11" alt="11"/></td><td class="ctr2" id="c17">0%</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f20">1</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h21">3</td><td class="ctr2" id="i21">3</td><td class="ctr1" id="j17">1</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a6"><a href="ScheduledReporterTest.java.html#L256" class="el_method">map(String, Object)</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="11" alt="11"/></td><td class="ctr2" id="c18">0%</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f21">1</td><td class="ctr2" id="g21">1</td><td class="ctr1" id="h22">3</td><td class="ctr2" id="i22">3</td><td class="ctr1" id="j18">1</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a4"><a href="ScheduledReporterTest.java.html#L214" class="el_method">lambda$shouldReportMetricsOnShutdown$3(CountDownLatch)</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="11" alt="11"/></td><td class="ctr2" id="c19">0%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">0%</td><td class="ctr1" id="f3">2</td><td class="ctr2" id="g3">2</td><td class="ctr1" id="h15">4</td><td class="ctr2" id="i15">4</td><td class="ctr1" id="j19">1</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a3"><a href="ScheduledReporterTest.java.html#L127" class="el_method">lambda$shouldAutoCreateExecutorWhenItNull$2(CountDownLatch)</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="11" alt="11"/></td><td class="ctr2" id="c20">0%</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e4">0%</td><td class="ctr1" id="f4">2</td><td class="ctr2" id="g4">2</td><td class="ctr1" id="h16">4</td><td class="ctr2" id="i16">4</td><td class="ctr1" id="j20">1</td><td class="ctr2" id="k20">1</td></tr><tr><td id="a2"><a href="ScheduledReporterTest.java.html#L89" class="el_method">lambda$pollsPeriodically$1(CountDownLatch)</a></td><td class="bar" id="b21"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="11" alt="11"/></td><td class="ctr2" id="c21">0%</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e5">0%</td><td class="ctr1" id="f5">2</td><td class="ctr2" id="g5">2</td><td class="ctr1" id="h17">4</td><td class="ctr2" id="i17">4</td><td class="ctr1" id="j21">1</td><td class="ctr2" id="k21">1</td></tr><tr><td id="a5"><a href="ScheduledReporterTest.java.html#L236" class="el_method">lambda$shouldRescheduleAfterReportFinish$4()</a></td><td class="bar" id="b22"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="10" alt="10"/></td><td class="ctr2" id="c22">0%</td><td class="bar" id="d22"/><td class="ctr2" id="e22">n/a</td><td class="ctr1" id="f22">1</td><td class="ctr2" id="g22">1</td><td class="ctr1" id="h9">6</td><td class="ctr2" id="i9">6</td><td class="ctr1" id="j22">1</td><td class="ctr2" id="k22">1</td></tr><tr><td id="a12"><a href="ScheduledReporterTest.java.html#L207" class="el_method">shouldConvertDurationToMillisecondsPrecisely()</a></td><td class="bar" id="b23"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="8" alt="8"/></td><td class="ctr2" id="c23">0%</td><td class="bar" id="d23"/><td class="ctr2" id="e23">n/a</td><td class="ctr1" id="f23">1</td><td class="ctr2" id="g23">1</td><td class="ctr1" id="h23">2</td><td class="ctr2" id="i23">2</td><td class="ctr1" id="j23">1</td><td class="ctr2" id="k23">1</td></tr><tr><td id="a1"><a href="ScheduledReporterTest.java.html#L29" class="el_method">lambda$new$0()</a></td><td class="bar" id="b24"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="2" alt="2"/></td><td class="ctr2" id="c24">0%</td><td class="bar" id="d24"/><td class="ctr2" id="e24">n/a</td><td class="ctr1" id="f24">1</td><td class="ctr2" id="g24">1</td><td class="ctr1" id="h24">1</td><td class="ctr2" id="i24">1</td><td class="ctr1" id="j24">1</td><td class="ctr2" id="k24">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest.java.html
    deleted file mode 100644
    index 5ab97b231f..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/ScheduledReporterTest.java.html
    +++ /dev/null
    @@ -1,286 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>ScheduledReporterTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">ScheduledReporterTest.java</span></div><h1>ScheduledReporterTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.After;
    -import org.junit.Assert;
    -import org.junit.Before;
    -import org.junit.Test;
    -
    -import java.util.SortedMap;
    -import java.util.TreeMap;
    -import java.util.concurrent.CountDownLatch;
    -import java.util.concurrent.ExecutionException;
    -import java.util.concurrent.Executors;
    -import java.util.concurrent.ScheduledExecutorService;
    -import java.util.concurrent.TimeUnit;
    -import java.util.concurrent.TimeoutException;
    -import java.util.concurrent.atomic.AtomicInteger;
    -
    -import static org.junit.Assert.assertEquals;
    -import static org.junit.Assert.assertFalse;
    -import static org.junit.Assert.assertTrue;
    -import static org.mockito.Mockito.any;
    -import static org.mockito.Mockito.eq;
    -import static org.mockito.Mockito.mock;
    -import static org.mockito.Mockito.spy;
    -import static org.mockito.Mockito.times;
    -import static org.mockito.Mockito.verify;
    -
    -<span class="nc" id="L28">public class ScheduledReporterTest {</span>
    -<span class="nc" id="L29">    private final Gauge&lt;String&gt; gauge = () -&gt; &quot;&quot;;</span>
    -<span class="nc" id="L30">    private final Counter counter = mock(Counter.class);</span>
    -<span class="nc" id="L31">    private final Histogram histogram = mock(Histogram.class);</span>
    -<span class="nc" id="L32">    private final Meter meter = mock(Meter.class);</span>
    -<span class="nc" id="L33">    private final Timer timer = mock(Timer.class);</span>
    -
    -<span class="nc" id="L35">    private final ScheduledExecutorService mockExecutor = mock(ScheduledExecutorService.class);</span>
    -<span class="nc" id="L36">    private final ScheduledExecutorService customExecutor = Executors.newSingleThreadScheduledExecutor();</span>
    -<span class="nc" id="L37">    private final ScheduledExecutorService externalExecutor = Executors.newSingleThreadScheduledExecutor();</span>
    -
    -<span class="nc" id="L39">    private final MetricRegistry registry = new MetricRegistry();</span>
    -<span class="nc" id="L40">    private final ScheduledReporter reporter = spy(</span>
    -            new DummyReporter(registry, &quot;example&quot;, MetricFilter.ALL, TimeUnit.SECONDS, TimeUnit.MILLISECONDS)
    -    );
    -<span class="nc" id="L43">    private final ScheduledReporter reporterWithNullExecutor = spy(</span>
    -            new DummyReporter(registry, &quot;example&quot;, MetricFilter.ALL, TimeUnit.SECONDS, TimeUnit.MILLISECONDS, null)
    -    );
    -<span class="nc" id="L46">    private final ScheduledReporter reporterWithCustomMockExecutor = new DummyReporter(registry, &quot;example&quot;, MetricFilter.ALL, TimeUnit.SECONDS, TimeUnit.MILLISECONDS, mockExecutor);</span>
    -<span class="nc" id="L47">    private final ScheduledReporter reporterWithCustomExecutor = new DummyReporter(registry, &quot;example&quot;, MetricFilter.ALL, TimeUnit.SECONDS, TimeUnit.MILLISECONDS, customExecutor);</span>
    -<span class="nc" id="L48">    private final DummyReporter reporterWithExternallyManagedExecutor = new DummyReporter(registry, &quot;example&quot;, MetricFilter.ALL, TimeUnit.SECONDS, TimeUnit.MILLISECONDS, externalExecutor, false);</span>
    -<span class="nc" id="L49">    private final ScheduledReporter[] reporters = new ScheduledReporter[] {reporter, reporterWithCustomExecutor, reporterWithExternallyManagedExecutor};</span>
    -
    -    @Before
    -    @SuppressWarnings(&quot;unchecked&quot;)
    -    public void setUp() throws Exception {
    -<span class="nc" id="L54">        registry.register(&quot;gauge&quot;, gauge);</span>
    -<span class="nc" id="L55">        registry.register(&quot;counter&quot;, counter);</span>
    -<span class="nc" id="L56">        registry.register(&quot;histogram&quot;, histogram);</span>
    -<span class="nc" id="L57">        registry.register(&quot;meter&quot;, meter);</span>
    -<span class="nc" id="L58">        registry.register(&quot;timer&quot;, timer);</span>
    -<span class="nc" id="L59">    }</span>
    -
    -    @After
    -    public void tearDown() throws Exception {
    -<span class="nc" id="L63">        customExecutor.shutdown();</span>
    -<span class="nc" id="L64">        externalExecutor.shutdown();</span>
    -<span class="nc" id="L65">        reporter.stop();</span>
    -<span class="nc" id="L66">        reporterWithNullExecutor.stop();</span>
    -<span class="nc" id="L67">    }</span>
    -
    -    @Test
    -    public void createWithNullMetricRegistry() {
    -<span class="nc" id="L71">        ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();</span>
    -<span class="nc" id="L72">        DummyReporter r = null;</span>
    -        try {
    -<span class="nc" id="L74">            r = new DummyReporter(null, &quot;example&quot;, MetricFilter.ALL, TimeUnit.SECONDS, TimeUnit.MILLISECONDS, executor);</span>
    -<span class="nc" id="L75">            Assert.fail(&quot;NullPointerException must be thrown !!!&quot;);</span>
    -<span class="nc" id="L76">        } catch (NullPointerException e) {</span>
    -<span class="nc" id="L77">            Assert.assertEquals(&quot;registry == null&quot;, e.getMessage());</span>
    -        } finally {
    -<span class="nc bnc" id="L79" title="All 2 branches missed.">            if (r != null) {</span>
    -<span class="nc" id="L80">                r.close();</span>
    -            }
    -        }
    -<span class="nc" id="L83">    }</span>
    -
    -    @Test
    -    public void pollsPeriodically() throws Exception {
    -<span class="nc" id="L87">        CountDownLatch latch = new CountDownLatch(2);</span>
    -<span class="nc" id="L88">        reporter.start(100, 100, TimeUnit.MILLISECONDS, () -&gt; {</span>
    -<span class="nc bnc" id="L89" title="All 2 branches missed.">            if (latch.getCount() &gt; 0) {</span>
    -<span class="nc" id="L90">                reporter.report();</span>
    -<span class="nc" id="L91">                latch.countDown();</span>
    -            }
    -<span class="nc" id="L93">        });</span>
    -<span class="nc" id="L94">        latch.await(5, TimeUnit.SECONDS);</span>
    -
    -<span class="nc" id="L96">        verify(reporter, times(2)).report(</span>
    -<span class="nc" id="L97">                map(&quot;gauge&quot;, gauge),</span>
    -<span class="nc" id="L98">                map(&quot;counter&quot;, counter),</span>
    -<span class="nc" id="L99">                map(&quot;histogram&quot;, histogram),</span>
    -<span class="nc" id="L100">                map(&quot;meter&quot;, meter),</span>
    -<span class="nc" id="L101">                map(&quot;timer&quot;, timer)</span>
    -        );
    -<span class="nc" id="L103">    }</span>
    -
    -    @Test
    -    public void shouldUsePeriodAsInitialDelayIfNotSpecifiedOtherwise() throws Exception {
    -<span class="nc" id="L107">        reporterWithCustomMockExecutor.start(200, TimeUnit.MILLISECONDS);</span>
    -
    -<span class="nc" id="L109">        verify(mockExecutor, times(1)).scheduleWithFixedDelay(</span>
    -<span class="nc" id="L110">            any(Runnable.class), eq(200L), eq(200L), eq(TimeUnit.MILLISECONDS)</span>
    -        );
    -<span class="nc" id="L112">    }</span>
    -
    -    @Test
    -    public void shouldStartWithSpecifiedInitialDelay() throws Exception {
    -<span class="nc" id="L116">        reporterWithCustomMockExecutor.start(350, 100, TimeUnit.MILLISECONDS);</span>
    -
    -<span class="nc" id="L118">        verify(mockExecutor).scheduleWithFixedDelay(</span>
    -<span class="nc" id="L119">            any(Runnable.class), eq(350L), eq(100L), eq(TimeUnit.MILLISECONDS)</span>
    -        );
    -<span class="nc" id="L121">    }</span>
    -
    -    @Test
    -    public void shouldAutoCreateExecutorWhenItNull() throws Exception {
    -<span class="nc" id="L125">        CountDownLatch latch = new CountDownLatch(2);</span>
    -<span class="nc" id="L126">        reporterWithNullExecutor.start(100, 100, TimeUnit.MILLISECONDS, () -&gt; {</span>
    -<span class="nc bnc" id="L127" title="All 2 branches missed.">            if (latch.getCount() &gt; 0) {</span>
    -<span class="nc" id="L128">                reporterWithNullExecutor.report();</span>
    -<span class="nc" id="L129">                latch.countDown();</span>
    -            }
    -<span class="nc" id="L131">        });</span>
    -<span class="nc" id="L132">        latch.await(5, TimeUnit.SECONDS);</span>
    -<span class="nc" id="L133">        verify(reporterWithNullExecutor, times(2)).report(</span>
    -<span class="nc" id="L134">                map(&quot;gauge&quot;, gauge),</span>
    -<span class="nc" id="L135">                map(&quot;counter&quot;, counter),</span>
    -<span class="nc" id="L136">                map(&quot;histogram&quot;, histogram),</span>
    -<span class="nc" id="L137">                map(&quot;meter&quot;, meter),</span>
    -<span class="nc" id="L138">                map(&quot;timer&quot;, timer)</span>
    -        );
    -<span class="nc" id="L140">    }</span>
    -
    -    @Test(expected = IllegalArgumentException.class)
    -    public void shouldDisallowToStartReportingMultiple() throws Exception {
    -<span class="nc" id="L144">        reporter.start(200, TimeUnit.MILLISECONDS);</span>
    -<span class="nc" id="L145">        reporter.start(200, TimeUnit.MILLISECONDS);</span>
    -<span class="nc" id="L146">    }</span>
    -
    -    @Test(expected = IllegalArgumentException.class)
    -    public void shouldDisallowToStartReportingMultipleTimesOnCustomExecutor() throws Exception {
    -<span class="nc" id="L150">        reporterWithCustomExecutor.start(200, TimeUnit.MILLISECONDS);</span>
    -<span class="nc" id="L151">        reporterWithCustomExecutor.start(200, TimeUnit.MILLISECONDS);</span>
    -<span class="nc" id="L152">    }</span>
    -
    -    @Test(expected = IllegalArgumentException.class)
    -    public void shouldDisallowToStartReportingMultipleTimesOnExternallyManagedExecutor() throws Exception {
    -<span class="nc" id="L156">        reporterWithExternallyManagedExecutor.start(200, TimeUnit.MILLISECONDS);</span>
    -<span class="nc" id="L157">        reporterWithExternallyManagedExecutor.start(200, TimeUnit.MILLISECONDS);</span>
    -<span class="nc" id="L158">    }</span>
    -
    -    @Test
    -    public void shouldNotFailOnStopIfReporterWasNotStared() {
    -<span class="nc bnc" id="L162" title="All 2 branches missed.">        for (ScheduledReporter reporter : reporters) {</span>
    -<span class="nc" id="L163">            reporter.stop();</span>
    -        }
    -<span class="nc" id="L165">    }</span>
    -
    -    @Test
    -    public void shouldNotFailWhenStoppingMultipleTimes() {
    -<span class="nc bnc" id="L169" title="All 2 branches missed.">        for (ScheduledReporter reporter : reporters) {</span>
    -<span class="nc" id="L170">            reporter.start(200, TimeUnit.MILLISECONDS);</span>
    -<span class="nc" id="L171">            reporter.stop();</span>
    -<span class="nc" id="L172">            reporter.stop();</span>
    -<span class="nc" id="L173">            reporter.stop();</span>
    -        }
    -<span class="nc" id="L175">    }</span>
    -
    -    @Test
    -    public void shouldShutdownExecutorOnStopByDefault() {
    -<span class="nc" id="L179">        reporterWithCustomExecutor.start(200, TimeUnit.MILLISECONDS);</span>
    -<span class="nc" id="L180">        reporterWithCustomExecutor.stop();</span>
    -<span class="nc" id="L181">        assertTrue(customExecutor.isTerminated());</span>
    -<span class="nc" id="L182">    }</span>
    -
    -    @Test
    -    public void shouldNotShutdownExternallyManagedExecutorOnStop() {
    -<span class="nc" id="L186">        reporterWithExternallyManagedExecutor.start(200, TimeUnit.MILLISECONDS);</span>
    -<span class="nc" id="L187">        reporterWithExternallyManagedExecutor.stop();</span>
    -<span class="nc" id="L188">        assertFalse(mockExecutor.isTerminated());</span>
    -<span class="nc" id="L189">        assertFalse(mockExecutor.isShutdown());</span>
    -<span class="nc" id="L190">    }</span>
    -
    -    @Test
    -    public void shouldCancelScheduledFutureWhenStoppingWithExternallyManagedExecutor() throws InterruptedException, ExecutionException, TimeoutException {
    -        // configure very frequency rate of execution
    -<span class="nc" id="L195">        reporterWithExternallyManagedExecutor.start(1, TimeUnit.MILLISECONDS);</span>
    -<span class="nc" id="L196">        reporterWithExternallyManagedExecutor.stop();</span>
    -<span class="nc" id="L197">        Thread.sleep(100);</span>
    -
    -        // executionCount should not increase when scheduled future is canceled properly
    -<span class="nc" id="L200">        int executionCount = reporterWithExternallyManagedExecutor.executionCount.get();</span>
    -<span class="nc" id="L201">        Thread.sleep(500);</span>
    -<span class="nc" id="L202">        assertEquals(executionCount, reporterWithExternallyManagedExecutor.executionCount.get());</span>
    -<span class="nc" id="L203">    }</span>
    -
    -    @Test
    -    public void shouldConvertDurationToMillisecondsPrecisely() {
    -<span class="nc" id="L207">        assertEquals(2.0E-5, reporter.convertDuration(20), 0.0);</span>
    -<span class="nc" id="L208">    }</span>
    -
    -    @Test
    -    public void shouldReportMetricsOnShutdown() throws Exception {
    -<span class="nc" id="L212">        CountDownLatch latch = new CountDownLatch(1);</span>
    -<span class="nc" id="L213">        reporterWithNullExecutor.start(0, 10, TimeUnit.SECONDS, () -&gt; {</span>
    -<span class="nc bnc" id="L214" title="All 2 branches missed.">            if (latch.getCount() &gt; 0) {</span>
    -<span class="nc" id="L215">                reporterWithNullExecutor.report();</span>
    -<span class="nc" id="L216">                latch.countDown();</span>
    -            }
    -<span class="nc" id="L218">        });</span>
    -<span class="nc" id="L219">        latch.await(5, TimeUnit.SECONDS);</span>
    -<span class="nc" id="L220">        reporterWithNullExecutor.stop();</span>
    -
    -<span class="nc" id="L222">        verify(reporterWithNullExecutor, times(2)).report(</span>
    -<span class="nc" id="L223">                map(&quot;gauge&quot;, gauge),</span>
    -<span class="nc" id="L224">                map(&quot;counter&quot;, counter),</span>
    -<span class="nc" id="L225">                map(&quot;histogram&quot;, histogram),</span>
    -<span class="nc" id="L226">                map(&quot;meter&quot;, meter),</span>
    -<span class="nc" id="L227">                map(&quot;timer&quot;, timer)</span>
    -        );
    -<span class="nc" id="L229">    }</span>
    -
    -    @Test
    -    public void shouldRescheduleAfterReportFinish() throws Exception {
    -        // the first report is triggered at T + 0.1 seconds and takes 0.8 seconds
    -        // after the first report finishes at T + 0.9 seconds the next report is scheduled to run at T + 1.4 seconds
    -<span class="nc" id="L235">        reporter.start(100, 500, TimeUnit.MILLISECONDS, () -&gt; {</span>
    -<span class="nc" id="L236">            reporter.report();</span>
    -            try {
    -<span class="nc" id="L238">                Thread.sleep(800);</span>
    -<span class="nc" id="L239">            } catch (InterruptedException e) {</span>
    -<span class="nc" id="L240">                Thread.currentThread().interrupt();</span>
    -<span class="nc" id="L241">            }</span>
    -<span class="nc" id="L242">        });</span>
    -
    -<span class="nc" id="L244">        Thread.sleep(1_000);</span>
    -
    -<span class="nc" id="L246">        verify(reporter, times(1)).report(</span>
    -<span class="nc" id="L247">                map(&quot;gauge&quot;, gauge),</span>
    -<span class="nc" id="L248">                map(&quot;counter&quot;, counter),</span>
    -<span class="nc" id="L249">                map(&quot;histogram&quot;, histogram),</span>
    -<span class="nc" id="L250">                map(&quot;meter&quot;, meter),</span>
    -<span class="nc" id="L251">                map(&quot;timer&quot;, timer)</span>
    -        );
    -<span class="nc" id="L253">    }</span>
    -
    -    private &lt;T&gt; SortedMap&lt;String, T&gt; map(String name, T value) {
    -<span class="nc" id="L256">        final SortedMap&lt;String, T&gt; map = new TreeMap&lt;&gt;();</span>
    -<span class="nc" id="L257">        map.put(name, value);</span>
    -<span class="nc" id="L258">        return map;</span>
    -    }
    -
    -    private static class DummyReporter extends ScheduledReporter {
    -
    -<span class="nc" id="L263">        private AtomicInteger executionCount = new AtomicInteger();</span>
    -
    -        DummyReporter(MetricRegistry registry, String name, MetricFilter filter, TimeUnit rateUnit, TimeUnit durationUnit) {
    -<span class="nc" id="L266">            super(registry, name, filter, rateUnit, durationUnit);</span>
    -<span class="nc" id="L267">        }</span>
    -
    -        DummyReporter(MetricRegistry registry, String name, MetricFilter filter, TimeUnit rateUnit, TimeUnit durationUnit, ScheduledExecutorService executor) {
    -<span class="nc" id="L270">            super(registry, name, filter, rateUnit, durationUnit, executor);</span>
    -<span class="nc" id="L271">        }</span>
    -
    -        DummyReporter(MetricRegistry registry, String name, MetricFilter filter, TimeUnit rateUnit, TimeUnit durationUnit, ScheduledExecutorService executor, boolean shutdownExecutorOnStop) {
    -<span class="nc" id="L274">            super(registry, name, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop);</span>
    -<span class="nc" id="L275">        }</span>
    -
    -        @Override
    -        @SuppressWarnings(&quot;rawtypes&quot;)
    -        public void report(SortedMap&lt;String, Gauge&gt; gauges, SortedMap&lt;String, Counter&gt; counters, SortedMap&lt;String, Histogram&gt; histograms, SortedMap&lt;String, Meter&gt; meters, SortedMap&lt;String, Timer&gt; timers) {
    -<span class="nc" id="L280">            executionCount.incrementAndGet();</span>
    -            // nothing doing!
    -<span class="nc" id="L282">        }</span>
    -    }
    -
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistries.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistries.html
    deleted file mode 100644
    index b06cdc37b9..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistries.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SharedMetricRegistries</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">SharedMetricRegistries</span></div><h1>SharedMetricRegistries</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">58 of 97</td><td class="ctr2">40%</td><td class="bar">7 of 10</td><td class="ctr2">30%</td><td class="ctr1">11</td><td class="ctr2">16</td><td class="ctr1">20</td><td class="ctr2">32</td><td class="ctr1">7</td><td class="ctr2">11</td></tr></tfoot><tbody><tr><td id="a7"><a href="SharedMetricRegistries.java.html#L73" class="el_method">setDefault(String, MetricRegistry)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="83" height="10" title="16" alt="16"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="SharedMetricRegistries.java.html#L87" class="el_method">getDefault()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="57" height="10" title="11" alt="11"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a10"><a href="SharedMetricRegistries.java.html#L100" class="el_method">tryGetDefault()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="57" height="10" title="11" alt="11"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">0%</td><td class="ctr1" id="f2">2</td><td class="ctr2" id="g3">2</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i3">4</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a6"><a href="SharedMetricRegistries.java.html#L61" class="el_method">setDefault(String)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="7" alt="7"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h3">2</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a5"><a href="SharedMetricRegistries.java.html#L33" class="el_method">remove(String)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="5" alt="5"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i5">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a8"><a href="SharedMetricRegistries.java.html#L19" class="el_method">setDefaultRegistryName(AtomicReference)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="3" alt="3"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i6">2</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a4"><a href="SharedMetricRegistries.java.html#L29" class="el_method">names()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="3" alt="3"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i9">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a3"><a href="SharedMetricRegistries.java.html#L41" class="el_method">getOrCreate(String)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="2" alt="2"/><img src="../jacoco-resources/greenbar.gif" width="109" height="10" title="21" alt="21"/></td><td class="ctr2" id="c3">91%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="1" alt="1"/><img src="../jacoco-resources/greenbar.gif" width="90" height="10" title="3" alt="3"/></td><td class="ctr2" id="e0">75%</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g0">3</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i0">8</td><td class="ctr1" id="j7">0</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a9"><a href="SharedMetricRegistries.java.html#L12" class="el_method">static {...}</a></td><td class="bar" id="b8"><img src="../jacoco-resources/greenbar.gif" width="46" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">0</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">0</td><td class="ctr2" id="i7">2</td><td class="ctr1" id="j8">0</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a0"><a href="SharedMetricRegistries.java.html#L37" class="el_method">add(String, MetricRegistry)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/greenbar.gif" width="31" height="10" title="6" alt="6"/></td><td class="ctr2" id="c1">100%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">0</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">0</td><td class="ctr2" id="i10">1</td><td class="ctr1" id="j9">0</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a1"><a href="SharedMetricRegistries.java.html#L25" class="el_method">clear()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/greenbar.gif" width="15" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">100%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">0</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">0</td><td class="ctr2" id="i8">2</td><td class="ctr1" id="j10">0</td><td class="ctr2" id="k10">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistries.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistries.java.html
    deleted file mode 100644
    index 9f500c0144..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistries.java.html
    +++ /dev/null
    @@ -1,108 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SharedMetricRegistries.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">SharedMetricRegistries.java</span></div><h1>SharedMetricRegistries.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.util.Set;
    -import java.util.concurrent.ConcurrentHashMap;
    -import java.util.concurrent.ConcurrentMap;
    -import java.util.concurrent.atomic.AtomicReference;
    -
    -/**
    - * A map of shared, named metric registries.
    - */
    -public class SharedMetricRegistries {
    -<span class="fc" id="L12">    private static final ConcurrentMap&lt;String, MetricRegistry&gt; REGISTRIES =</span>
    -            new ConcurrentHashMap&lt;&gt;();
    -
    -<span class="fc" id="L15">    private static AtomicReference&lt;String&gt; defaultRegistryName = new AtomicReference&lt;&gt;();</span>
    -
    -    /* Visible for testing */
    -    static void setDefaultRegistryName(AtomicReference&lt;String&gt; defaultRegistryName) {
    -<span class="nc" id="L19">        SharedMetricRegistries.defaultRegistryName = defaultRegistryName;</span>
    -<span class="nc" id="L20">    }</span>
    -
    -    private SharedMetricRegistries() { /* singleton */ }
    -
    -    public static void clear() {
    -<span class="fc" id="L25">        REGISTRIES.clear();</span>
    -<span class="fc" id="L26">    }</span>
    -
    -    public static Set&lt;String&gt; names() {
    -<span class="nc" id="L29">        return REGISTRIES.keySet();</span>
    -    }
    -
    -    public static void remove(String key) {
    -<span class="nc" id="L33">        REGISTRIES.remove(key);</span>
    -<span class="nc" id="L34">    }</span>
    -
    -    public static MetricRegistry add(String name, MetricRegistry registry) {
    -<span class="fc" id="L37">        return REGISTRIES.putIfAbsent(name, registry);</span>
    -    }
    -
    -    public static MetricRegistry getOrCreate(String name) {
    -<span class="fc" id="L41">        final MetricRegistry existing = REGISTRIES.get(name);</span>
    -<span class="fc bfc" id="L42" title="All 2 branches covered.">        if (existing == null) {</span>
    -<span class="fc" id="L43">            final MetricRegistry created = new MetricRegistry();</span>
    -<span class="fc" id="L44">            final MetricRegistry raced = add(name, created);</span>
    -<span class="pc bpc" id="L45" title="1 of 2 branches missed.">            if (raced == null) {</span>
    -<span class="fc" id="L46">                return created;</span>
    -            }
    -<span class="nc" id="L48">            return raced;</span>
    -        }
    -<span class="fc" id="L50">        return existing;</span>
    -    }
    -
    -    /**
    -     * Creates a new registry and sets it as the default one under the provided name.
    -     *
    -     * @param name the registry name
    -     * @return the default registry
    -     * @throws IllegalStateException if the name has already been set
    -     */
    -    public synchronized static MetricRegistry setDefault(String name) {
    -<span class="nc" id="L61">        final MetricRegistry registry = getOrCreate(name);</span>
    -<span class="nc" id="L62">        return setDefault(name, registry);</span>
    -    }
    -
    -    /**
    -     * Sets the provided registry as the default one under the provided name
    -     *
    -     * @param name           the default registry name
    -     * @param metricRegistry the default registry
    -     * @throws IllegalStateException if the default registry has already been set
    -     */
    -    public static MetricRegistry setDefault(String name, MetricRegistry metricRegistry) {
    -<span class="nc bnc" id="L73" title="All 2 branches missed.">        if (defaultRegistryName.compareAndSet(null, name)) {</span>
    -<span class="nc" id="L74">            add(name, metricRegistry);</span>
    -<span class="nc" id="L75">            return metricRegistry;</span>
    -        }
    -<span class="nc" id="L77">        throw new IllegalStateException(&quot;Default metric registry name is already set.&quot;);</span>
    -    }
    -
    -    /**
    -     * Gets the name of the default registry, if it has been set
    -     *
    -     * @return the default registry
    -     * @throws IllegalStateException if the default has not been set
    -     */
    -    public static MetricRegistry getDefault() {
    -<span class="nc" id="L87">        MetricRegistry metricRegistry = tryGetDefault();</span>
    -<span class="nc bnc" id="L88" title="All 2 branches missed.">        if (metricRegistry == null) {</span>
    -<span class="nc" id="L89">            throw new IllegalStateException(&quot;Default registry name has not been set.&quot;);</span>
    -        }
    -<span class="nc" id="L91">        return metricRegistry;</span>
    -    }
    -
    -    /**
    -     * Same as {@link #getDefault()} except returns null when the default registry has not been set.
    -     *
    -     * @return the default registry or null
    -     */
    -    public static MetricRegistry tryGetDefault() {
    -<span class="nc" id="L100">        final String name = defaultRegistryName.get();</span>
    -<span class="nc bnc" id="L101" title="All 2 branches missed.">        if (name != null) {</span>
    -<span class="nc" id="L102">            return getOrCreate(name);</span>
    -        } else {
    -<span class="nc" id="L104">            return null;</span>
    -        }
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistriesTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistriesTest.html
    deleted file mode 100644
    index 74e5193182..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistriesTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SharedMetricRegistriesTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">SharedMetricRegistriesTest</span></div><h1>SharedMetricRegistriesTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">138 of 138</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">10</td><td class="ctr2">10</td><td class="ctr1">50</td><td class="ctr2">50</td><td class="ctr1">10</td><td class="ctr2">10</td></tr></tfoot><tbody><tr><td id="a7"><a href="SharedMetricRegistriesTest.java.html#L89" class="el_method">setsDefaultExistingRegistries()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="25" alt="25"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h1">6</td><td class="ctr2" id="i1">6</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="SharedMetricRegistriesTest.java.html#L72" class="el_method">createsDefaultRegistries()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="100" height="10" title="21" alt="21"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h2">6</td><td class="ctr2" id="i2">6</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a6"><a href="SharedMetricRegistriesTest.java.html#L41" class="el_method">removesRegistries()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="81" height="10" title="17" alt="17"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h0">8</td><td class="ctr2" id="i0">8</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a href="SharedMetricRegistriesTest.java.html#L81" class="el_method">errorsWhenDefaultAlreadySet()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="72" height="10" title="15" alt="15"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h4">5</td><td class="ctr2" id="i4">5</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a4"><a href="SharedMetricRegistriesTest.java.html#L33" class="el_method">hasASetOfNames()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="67" height="10" title="14" alt="14"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h6">4</td><td class="ctr2" id="i6">4</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a5"><a href="SharedMetricRegistriesTest.java.html#L24" class="el_method">memorizesRegistriesByName()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="57" height="10" title="12" alt="12"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">5</td><td class="ctr2" id="i5">5</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a0"><a href="SharedMetricRegistriesTest.java.html#L54" class="el_method">clearsRegistries()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="11" alt="11"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h3">6</td><td class="ctr2" id="i3">6</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a3"><a href="SharedMetricRegistriesTest.java.html#L65" class="el_method">errorsWhenDefaultUnset()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="11" alt="11"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">4</td><td class="ctr2" id="i7">4</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a9"><a href="SharedMetricRegistriesTest.java.html#L12" class="el_method">SharedMetricRegistriesTest()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="6" alt="6"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">3</td><td class="ctr2" id="i8">3</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a8"><a href="SharedMetricRegistriesTest.java.html#L18" class="el_method">setUp()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="6" alt="6"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">3</td><td class="ctr2" id="i9">3</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistriesTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistriesTest.java.html
    deleted file mode 100644
    index c52bf08907..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SharedMetricRegistriesTest.java.html
    +++ /dev/null
    @@ -1,96 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SharedMetricRegistriesTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">SharedMetricRegistriesTest.java</span></div><h1>SharedMetricRegistriesTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Before;
    -import org.junit.Test;
    -import org.junit.Rule;
    -import org.junit.rules.ExpectedException;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -
    -import java.util.concurrent.atomic.AtomicReference;
    -
    -<span class="nc" id="L12">public class SharedMetricRegistriesTest {</span>
    -<span class="nc" id="L13">    @Rule</span>
    -<span class="nc" id="L14">    public ExpectedException exception = ExpectedException.none();</span>
    -
    -    @Before
    -    public void setUp() {
    -<span class="nc" id="L18">        SharedMetricRegistries.setDefaultRegistryName(new AtomicReference&lt;&gt;());</span>
    -<span class="nc" id="L19">        SharedMetricRegistries.clear();</span>
    -<span class="nc" id="L20">    }</span>
    -
    -    @Test
    -    public void memorizesRegistriesByName() {
    -<span class="nc" id="L24">        final MetricRegistry one = SharedMetricRegistries.getOrCreate(&quot;one&quot;);</span>
    -<span class="nc" id="L25">        final MetricRegistry two = SharedMetricRegistries.getOrCreate(&quot;one&quot;);</span>
    -
    -<span class="nc" id="L27">        assertThat(one)</span>
    -<span class="nc" id="L28">                .isSameAs(two);</span>
    -<span class="nc" id="L29">    }</span>
    -
    -    @Test
    -    public void hasASetOfNames() {
    -<span class="nc" id="L33">        SharedMetricRegistries.getOrCreate(&quot;one&quot;);</span>
    -
    -<span class="nc" id="L35">        assertThat(SharedMetricRegistries.names())</span>
    -<span class="nc" id="L36">                .containsOnly(&quot;one&quot;);</span>
    -<span class="nc" id="L37">    }</span>
    -
    -    @Test
    -    public void removesRegistries() {
    -<span class="nc" id="L41">        final MetricRegistry one = SharedMetricRegistries.getOrCreate(&quot;one&quot;);</span>
    -<span class="nc" id="L42">        SharedMetricRegistries.remove(&quot;one&quot;);</span>
    -
    -<span class="nc" id="L44">        assertThat(SharedMetricRegistries.names())</span>
    -<span class="nc" id="L45">                .isEmpty();</span>
    -
    -<span class="nc" id="L47">        final MetricRegistry two = SharedMetricRegistries.getOrCreate(&quot;one&quot;);</span>
    -<span class="nc" id="L48">        assertThat(two)</span>
    -<span class="nc" id="L49">                .isNotSameAs(one);</span>
    -<span class="nc" id="L50">    }</span>
    -
    -    @Test
    -    public void clearsRegistries() {
    -<span class="nc" id="L54">        SharedMetricRegistries.getOrCreate(&quot;one&quot;);</span>
    -<span class="nc" id="L55">        SharedMetricRegistries.getOrCreate(&quot;two&quot;);</span>
    -
    -<span class="nc" id="L57">        SharedMetricRegistries.clear();</span>
    -
    -<span class="nc" id="L59">        assertThat(SharedMetricRegistries.names())</span>
    -<span class="nc" id="L60">                .isEmpty();</span>
    -<span class="nc" id="L61">    }</span>
    -
    -    @Test
    -    public void errorsWhenDefaultUnset() {
    -<span class="nc" id="L65">        exception.expect(IllegalStateException.class);</span>
    -<span class="nc" id="L66">        exception.expectMessage(&quot;Default registry name has not been set.&quot;);</span>
    -<span class="nc" id="L67">        SharedMetricRegistries.getDefault();</span>
    -<span class="nc" id="L68">    }</span>
    -
    -    @Test
    -    public void createsDefaultRegistries() {
    -<span class="nc" id="L72">        final String defaultName = &quot;default&quot;;</span>
    -<span class="nc" id="L73">        final MetricRegistry registry = SharedMetricRegistries.setDefault(defaultName);</span>
    -<span class="nc" id="L74">        assertThat(registry).isNotNull();</span>
    -<span class="nc" id="L75">        assertThat(SharedMetricRegistries.getDefault()).isEqualTo(registry);</span>
    -<span class="nc" id="L76">        assertThat(SharedMetricRegistries.getOrCreate(defaultName)).isEqualTo(registry);</span>
    -<span class="nc" id="L77">    }</span>
    -
    -    @Test
    -    public void errorsWhenDefaultAlreadySet() {
    -<span class="nc" id="L81">        SharedMetricRegistries.setDefault(&quot;foobah&quot;);</span>
    -<span class="nc" id="L82">        exception.expect(IllegalStateException.class);</span>
    -<span class="nc" id="L83">        exception.expectMessage(&quot;Default metric registry name is already set.&quot;);</span>
    -<span class="nc" id="L84">        SharedMetricRegistries.setDefault(&quot;borg&quot;);</span>
    -<span class="nc" id="L85">    }</span>
    -
    -    @Test
    -    public void setsDefaultExistingRegistries() {
    -<span class="nc" id="L89">        final String defaultName = &quot;default&quot;;</span>
    -<span class="nc" id="L90">        final MetricRegistry registry = new MetricRegistry();</span>
    -<span class="nc" id="L91">        assertThat(SharedMetricRegistries.setDefault(defaultName, registry)).isEqualTo(registry);</span>
    -<span class="nc" id="L92">        assertThat(SharedMetricRegistries.getDefault()).isEqualTo(registry);</span>
    -<span class="nc" id="L93">        assertThat(SharedMetricRegistries.getOrCreate(defaultName)).isEqualTo(registry);</span>
    -<span class="nc" id="L94">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SimpleSettableGaugeTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SimpleSettableGaugeTest.html
    deleted file mode 100644
    index f044a1abc2..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SimpleSettableGaugeTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SimpleSettableGaugeTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">SimpleSettableGaugeTest</span></div><h1>SimpleSettableGaugeTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">43 of 43</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">12</td><td class="ctr2">12</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="SimpleSettableGaugeTest.java.html#L18" class="el_method">setValueAndThenGetValue()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="26" alt="26"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">8</td><td class="ctr2" id="i0">8</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="SimpleSettableGaugeTest.java.html#L11" class="el_method">defaultValue()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="64" height="10" title="14" alt="14"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="SimpleSettableGaugeTest.java.html#L7" class="el_method">SimpleSettableGaugeTest()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="13" height="10" title="3" alt="3"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SimpleSettableGaugeTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SimpleSettableGaugeTest.java.html
    deleted file mode 100644
    index be727a4c96..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SimpleSettableGaugeTest.java.html
    +++ /dev/null
    @@ -1,29 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SimpleSettableGaugeTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">SimpleSettableGaugeTest.java</span></div><h1>SimpleSettableGaugeTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -
    -<span class="nc" id="L7">public class SimpleSettableGaugeTest {</span>
    -
    -    @Test
    -    public void defaultValue() {
    -<span class="nc" id="L11">        DefaultSettableGauge&lt;Integer&gt; settable = new DefaultSettableGauge&lt;&gt;(1);</span>
    -
    -<span class="nc" id="L13">        assertThat(settable.getValue()).isEqualTo(1);</span>
    -<span class="nc" id="L14">    }</span>
    -
    -    @Test
    -    public void setValueAndThenGetValue() {
    -<span class="nc" id="L18">        DefaultSettableGauge&lt;String&gt; settable = new DefaultSettableGauge&lt;&gt;(&quot;default&quot;);</span>
    -
    -<span class="nc" id="L20">        settable.setValue(&quot;first&quot;);</span>
    -<span class="nc" id="L21">        assertThat(settable.getValue())</span>
    -<span class="nc" id="L22">                .isEqualTo(&quot;first&quot;);</span>
    -
    -<span class="nc" id="L24">        settable.setValue(&quot;second&quot;);</span>
    -<span class="nc" id="L25">        assertThat(settable.getValue())</span>
    -<span class="nc" id="L26">                .isEqualTo(&quot;second&quot;);</span>
    -<span class="nc" id="L27">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$Builder.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$Builder.html
    deleted file mode 100644
    index 86e0d35139..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$Builder.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Slf4jReporter.Builder</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Slf4jReporter.Builder</span></div><h1>Slf4jReporter.Builder</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">149 of 149</td><td class="ctr2">0%</td><td class="bar">5 of 5</td><td class="ctr2">0%</td><td class="ctr1">16</td><td class="ctr2">16</td><td class="ctr1">44</td><td class="ctr2">44</td><td class="ctr1">12</td><td class="ctr2">12</td></tr></tfoot><tbody><tr><td id="a0"><a href="Slf4jReporter.java.html#L204" class="el_method">build()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="62" alt="62"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="5" alt="5"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">5</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h1">11</td><td class="ctr2" id="i1">11</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a10"><a href="Slf4jReporter.java.html#L68" class="el_method">Slf4jReporter.Builder(MetricRegistry)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="71" height="10" title="37" alt="37"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">13</td><td class="ctr2" id="i0">13</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a9"><a href="Slf4jReporter.java.html#L91" class="el_method">shutdownExecutorOnStop(boolean)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a8"><a href="Slf4jReporter.java.html#L104" class="el_method">scheduleOn(ScheduledExecutorService)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">2</td><td class="ctr2" id="i3">2</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a6"><a href="Slf4jReporter.java.html#L115" class="el_method">outputTo(Logger)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a5"><a href="Slf4jReporter.java.html#L126" class="el_method">markWith(Marker)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i5">2</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a7"><a href="Slf4jReporter.java.html#L137" class="el_method">prefixedWith(String)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i6">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a2"><a href="Slf4jReporter.java.html#L148" class="el_method">convertRatesTo(TimeUnit)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i7">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a1"><a href="Slf4jReporter.java.html#L159" class="el_method">convertDurationsTo(TimeUnit)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i8">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a4"><a href="Slf4jReporter.java.html#L170" class="el_method">filter(MetricFilter)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a11"><a href="Slf4jReporter.java.html#L181" class="el_method">withLoggingLevel(Slf4jReporter.LoggingLevel)</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">2</td><td class="ctr2" id="i10">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a3"><a href="Slf4jReporter.java.html#L193" class="el_method">disabledMetricAttributes(Set)</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">2</td><td class="ctr2" id="i11">2</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$DebugLoggerProxy.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$DebugLoggerProxy.html
    deleted file mode 100644
    index e85230c1ef..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$DebugLoggerProxy.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Slf4jReporter.DebugLoggerProxy</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Slf4jReporter.DebugLoggerProxy</span></div><h1>Slf4jReporter.DebugLoggerProxy</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">15 of 15</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">5</td><td class="ctr2">5</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="Slf4jReporter.java.html#L439" class="el_method">log(Marker, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Slf4jReporter.java.html#L444" class="el_method">isEnabled(Marker)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="100" height="10" title="5" alt="5"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="Slf4jReporter.java.html#L434" class="el_method">Slf4jReporter.DebugLoggerProxy(Logger)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$ErrorLoggerProxy.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$ErrorLoggerProxy.html
    deleted file mode 100644
    index 982d5fddff..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$ErrorLoggerProxy.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Slf4jReporter.ErrorLoggerProxy</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Slf4jReporter.ErrorLoggerProxy</span></div><h1>Slf4jReporter.ErrorLoggerProxy</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">15 of 15</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">5</td><td class="ctr2">5</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="Slf4jReporter.java.html#L507" class="el_method">log(Marker, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Slf4jReporter.java.html#L512" class="el_method">isEnabled(Marker)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="100" height="10" title="5" alt="5"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="Slf4jReporter.java.html#L502" class="el_method">Slf4jReporter.ErrorLoggerProxy(Logger)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$InfoLoggerProxy.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$InfoLoggerProxy.html
    deleted file mode 100644
    index 8ad4ac7c0f..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$InfoLoggerProxy.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Slf4jReporter.InfoLoggerProxy</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Slf4jReporter.InfoLoggerProxy</span></div><h1>Slf4jReporter.InfoLoggerProxy</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">15 of 15</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">5</td><td class="ctr2">5</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="Slf4jReporter.java.html#L473" class="el_method">log(Marker, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Slf4jReporter.java.html#L478" class="el_method">isEnabled(Marker)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="100" height="10" title="5" alt="5"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="Slf4jReporter.java.html#L468" class="el_method">Slf4jReporter.InfoLoggerProxy(Logger)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$LoggerProxy.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$LoggerProxy.html
    deleted file mode 100644
    index aba333d9c9..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$LoggerProxy.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Slf4jReporter.LoggerProxy</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Slf4jReporter.LoggerProxy</span></div><h1>Slf4jReporter.LoggerProxy</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">6 of 6</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">1</td><td class="ctr2">1</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Slf4jReporter.java.html#L422" class="el_method">Slf4jReporter.LoggerProxy(Logger)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">3</td><td class="ctr2" id="i0">3</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$LoggingLevel.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$LoggingLevel.html
    deleted file mode 100644
    index e319b3b4a9..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$LoggingLevel.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Slf4jReporter.LoggingLevel</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Slf4jReporter.LoggingLevel</span></div><h1>Slf4jReporter.LoggingLevel</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">33 of 33</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">1</td><td class="ctr2">1</td><td class="ctr1">1</td><td class="ctr2">1</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="Slf4jReporter.java.html#L48" class="el_method">static {...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="33" alt="33"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$TraceLoggerProxy.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$TraceLoggerProxy.html
    deleted file mode 100644
    index 195d6ba957..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$TraceLoggerProxy.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Slf4jReporter.TraceLoggerProxy</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Slf4jReporter.TraceLoggerProxy</span></div><h1>Slf4jReporter.TraceLoggerProxy</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">15 of 15</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">5</td><td class="ctr2">5</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="Slf4jReporter.java.html#L456" class="el_method">log(Marker, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Slf4jReporter.java.html#L461" class="el_method">isEnabled(Marker)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="100" height="10" title="5" alt="5"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="Slf4jReporter.java.html#L451" class="el_method">Slf4jReporter.TraceLoggerProxy(Logger)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$WarnLoggerProxy.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$WarnLoggerProxy.html
    deleted file mode 100644
    index 4d9fdbc5cc..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter$WarnLoggerProxy.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Slf4jReporter.WarnLoggerProxy</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Slf4jReporter.WarnLoggerProxy</span></div><h1>Slf4jReporter.WarnLoggerProxy</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">15 of 15</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">5</td><td class="ctr2">5</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="Slf4jReporter.java.html#L490" class="el_method">log(Marker, String)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="6" alt="6"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Slf4jReporter.java.html#L495" class="el_method">isEnabled(Marker)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="100" height="10" title="5" alt="5"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="Slf4jReporter.java.html#L485" class="el_method">Slf4jReporter.WarnLoggerProxy(Logger)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter.html
    deleted file mode 100644
    index 8aa25139bf..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Slf4jReporter</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Slf4jReporter</span></div><h1>Slf4jReporter</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">701 of 701</td><td class="ctr2">0%</td><td class="bar">24 of 24</td><td class="ctr2">0%</td><td class="ctr1">33</td><td class="ctr2">33</td><td class="ctr1">114</td><td class="ctr2">114</td><td class="ctr1">21</td><td class="ctr2">21</td></tr></tfoot><tbody><tr><td id="a17"><a href="Slf4jReporter.java.html#L280" class="el_method">logTimer(StringBuilder, String, Timer)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="140" alt="140"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h0">20</td><td class="ctr2" id="i0">20</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a15"><a href="Slf4jReporter.java.html#L312" class="el_method">logHistogram(StringBuilder, String, Histogram)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="106" height="10" title="124" alt="124"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h2">17</td><td class="ctr2" id="i2">17</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a19"><a href="Slf4jReporter.java.html#L255" class="el_method">report(SortedMap, SortedMap, SortedMap, SortedMap, SortedMap)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="99" height="10" title="116" alt="116"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="12" alt="12"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">7</td><td class="ctr2" id="g0">7</td><td class="ctr1" id="h1">18</td><td class="ctr2" id="i1">18</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a16"><a href="Slf4jReporter.java.html#L302" class="el_method">logMeter(StringBuilder, String, Meter)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="35" height="10" title="41" alt="41"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h3">8</td><td class="ctr2" id="i3">8</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a9"><a href="Slf4jReporter.java.html#L381" class="el_method">appendMetered(StringBuilder, Metered)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="37" alt="37"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h6">5</td><td class="ctr2" id="i6">5</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a13"><a href="Slf4jReporter.java.html#L331" class="el_method">logCounter(StringBuilder, String, Counter)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="34" alt="34"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h4">6</td><td class="ctr2" id="i4">6</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a14"><a href="Slf4jReporter.java.html#L339" class="el_method">logGauge(StringBuilder, String, Gauge)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="33" alt="33"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h5">6</td><td class="ctr2" id="i5">6</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a20"><a href="Slf4jReporter.java.html#L241" class="el_method">Slf4jReporter(MetricRegistry, Slf4jReporter.LoggerProxy, Marker, String, TimeUnit, TimeUnit, MetricFilter, ScheduledExecutorService, boolean, Set)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="20" alt="20"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h7">5</td><td class="ctr2" id="i7">5</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a7"><a href="Slf4jReporter.java.html#L348" class="el_method">appendLongDurationIfEnabled(StringBuilder, MetricAttribute, Supplier)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="18" alt="18"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h8">3</td><td class="ctr2" id="i8">3</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a5"><a href="Slf4jReporter.java.html#L355" class="el_method">appendDoubleDurationIfEnabled(StringBuilder, MetricAttribute, Supplier)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="17" alt="17"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f2">2</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h9">3</td><td class="ctr2" id="i9">3</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a10"><a href="Slf4jReporter.java.html#L388" class="el_method">appendRateIfEnabled(StringBuilder, MetricAttribute, Supplier)</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="17" alt="17"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">0%</td><td class="ctr1" id="f3">2</td><td class="ctr2" id="g3">2</td><td class="ctr1" id="h10">3</td><td class="ctr2" id="i10">3</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a8"><a href="Slf4jReporter.java.html#L362" class="el_method">appendLongIfEnabled(StringBuilder, MetricAttribute, Supplier)</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="13" alt="13"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e4">0%</td><td class="ctr1" id="f4">2</td><td class="ctr2" id="g4">2</td><td class="ctr1" id="h11">3</td><td class="ctr2" id="i11">3</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a6"><a href="Slf4jReporter.java.html#L369" class="el_method">appendDoubleIfEnabled(StringBuilder, MetricAttribute, Supplier)</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="13" alt="13"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e5">0%</td><td class="ctr1" id="f5">2</td><td class="ctr2" id="g5">2</td><td class="ctr1" id="h12">3</td><td class="ctr2" id="i12">3</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a4"><a href="Slf4jReporter.java.html#L375" class="el_method">appendCountIfEnabled(StringBuilder, Counting)</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="13" alt="13"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d6"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e6">0%</td><td class="ctr1" id="f6">2</td><td class="ctr2" id="g6">2</td><td class="ctr1" id="h13">3</td><td class="ctr2" id="i13">3</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a1"><a href="Slf4jReporter.java.html#L394" class="el_method">append(StringBuilder, String, long)</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="11" alt="11"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h14">2</td><td class="ctr2" id="i14">2</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a0"><a href="Slf4jReporter.java.html#L398" class="el_method">append(StringBuilder, String, double)</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="11" alt="11"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h15">2</td><td class="ctr2" id="i15">2</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a3"><a href="Slf4jReporter.java.html#L402" class="el_method">append(StringBuilder, String, String)</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="11" alt="11"/></td><td class="ctr2" id="c16">0%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h16">2</td><td class="ctr2" id="i16">2</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a2"><a href="Slf4jReporter.java.html#L406" class="el_method">append(StringBuilder, String, Object)</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="11" alt="11"/></td><td class="ctr2" id="c17">0%</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">1</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h17">2</td><td class="ctr2" id="i17">2</td><td class="ctr1" id="j17">1</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a12"><a href="Slf4jReporter.java.html#L411" class="el_method">getRateUnit()</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="10" alt="10"/></td><td class="ctr2" id="c18">0%</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f18">1</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h18">1</td><td class="ctr2" id="i18">1</td><td class="ctr1" id="j18">1</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a11"><a href="Slf4jReporter.java.html#L45" class="el_method">forRegistry(MetricRegistry)</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="6" alt="6"/></td><td class="ctr2" id="c19">0%</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">1</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h19">1</td><td class="ctr2" id="i19">1</td><td class="ctr1" id="j19">1</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a18"><a href="Slf4jReporter.java.html#L415" class="el_method">prefix(String[])</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="5" alt="5"/></td><td class="ctr2" id="c20">0%</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f20">1</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h20">1</td><td class="ctr2" id="i20">1</td><td class="ctr1" id="j20">1</td><td class="ctr2" id="k20">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter.java.html
    deleted file mode 100644
    index 0e6f7a885d..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporter.java.html
    +++ /dev/null
    @@ -1,517 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Slf4jReporter.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">Slf4jReporter.java</span></div><h1>Slf4jReporter.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.slf4j.Logger;
    -import org.slf4j.LoggerFactory;
    -import org.slf4j.Marker;
    -
    -import java.util.Collections;
    -import java.util.Map.Entry;
    -import java.util.Set;
    -import java.util.SortedMap;
    -import java.util.concurrent.ScheduledExecutorService;
    -import java.util.concurrent.TimeUnit;
    -import java.util.function.Supplier;
    -
    -import static com.codahale.metrics.MetricAttribute.COUNT;
    -import static com.codahale.metrics.MetricAttribute.M15_RATE;
    -import static com.codahale.metrics.MetricAttribute.M1_RATE;
    -import static com.codahale.metrics.MetricAttribute.M5_RATE;
    -import static com.codahale.metrics.MetricAttribute.MAX;
    -import static com.codahale.metrics.MetricAttribute.MEAN;
    -import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    -import static com.codahale.metrics.MetricAttribute.MIN;
    -import static com.codahale.metrics.MetricAttribute.P50;
    -import static com.codahale.metrics.MetricAttribute.P75;
    -import static com.codahale.metrics.MetricAttribute.P95;
    -import static com.codahale.metrics.MetricAttribute.P98;
    -import static com.codahale.metrics.MetricAttribute.P99;
    -import static com.codahale.metrics.MetricAttribute.P999;
    -import static com.codahale.metrics.MetricAttribute.STDDEV;
    -
    -/**
    - * A reporter class for logging metrics values to a SLF4J {@link Logger} periodically, similar to
    - * {@link ConsoleReporter} or {@link CsvReporter}, but using the SLF4J framework instead. It also
    - * supports specifying a {@link Marker} instance that can be used by custom appenders and filters
    - * for the bound logging toolkit to further process metrics reports.
    - */
    -public class Slf4jReporter extends ScheduledReporter {
    -    /**
    -     * Returns a new {@link Builder} for {@link Slf4jReporter}.
    -     *
    -     * @param registry the registry to report
    -     * @return a {@link Builder} instance for a {@link Slf4jReporter}
    -     */
    -    public static Builder forRegistry(MetricRegistry registry) {
    -<span class="nc" id="L45">        return new Builder(registry);</span>
    -    }
    -
    -<span class="nc" id="L48">    public enum LoggingLevel { TRACE, DEBUG, INFO, WARN, ERROR }</span>
    -
    -    /**
    -     * A builder for {@link Slf4jReporter} instances. Defaults to logging to {@code metrics}, not
    -     * using a marker, converting rates to events/second, converting durations to milliseconds, and
    -     * not filtering metrics.
    -     */
    -    public static class Builder {
    -        private final MetricRegistry registry;
    -        private Logger logger;
    -        private LoggingLevel loggingLevel;
    -        private Marker marker;
    -        private String prefix;
    -        private TimeUnit rateUnit;
    -        private TimeUnit durationUnit;
    -        private MetricFilter filter;
    -        private ScheduledExecutorService executor;
    -        private boolean shutdownExecutorOnStop;
    -        private Set&lt;MetricAttribute&gt; disabledMetricAttributes;
    -
    -<span class="nc" id="L68">        private Builder(MetricRegistry registry) {</span>
    -<span class="nc" id="L69">            this.registry = registry;</span>
    -<span class="nc" id="L70">            this.logger = LoggerFactory.getLogger(&quot;metrics&quot;);</span>
    -<span class="nc" id="L71">            this.marker = null;</span>
    -<span class="nc" id="L72">            this.prefix = &quot;&quot;;</span>
    -<span class="nc" id="L73">            this.rateUnit = TimeUnit.SECONDS;</span>
    -<span class="nc" id="L74">            this.durationUnit = TimeUnit.MILLISECONDS;</span>
    -<span class="nc" id="L75">            this.filter = MetricFilter.ALL;</span>
    -<span class="nc" id="L76">            this.loggingLevel = LoggingLevel.INFO;</span>
    -<span class="nc" id="L77">            this.executor = null;</span>
    -<span class="nc" id="L78">            this.shutdownExecutorOnStop = true;</span>
    -<span class="nc" id="L79">            this.disabledMetricAttributes = Collections.emptySet();</span>
    -<span class="nc" id="L80">        }</span>
    -
    -        /**
    -         * Specifies whether or not, the executor (used for reporting) will be stopped with same time with reporter.
    -         * Default value is true.
    -         * Setting this parameter to false, has the sense in combining with providing external managed executor via {@link #scheduleOn(ScheduledExecutorService)}.
    -         *
    -         * @param shutdownExecutorOnStop if true, then executor will be stopped in same time with this reporter
    -         * @return {@code this}
    -         */
    -        public Builder shutdownExecutorOnStop(boolean shutdownExecutorOnStop) {
    -<span class="nc" id="L91">            this.shutdownExecutorOnStop = shutdownExecutorOnStop;</span>
    -<span class="nc" id="L92">            return this;</span>
    -        }
    -
    -        /**
    -         * Specifies the executor to use while scheduling reporting of metrics.
    -         * Default value is null.
    -         * Null value leads to executor will be auto created on start.
    -         *
    -         * @param executor the executor to use while scheduling reporting of metrics.
    -         * @return {@code this}
    -         */
    -        public Builder scheduleOn(ScheduledExecutorService executor) {
    -<span class="nc" id="L104">            this.executor = executor;</span>
    -<span class="nc" id="L105">            return this;</span>
    -        }
    -
    -        /**
    -         * Log metrics to the given logger.
    -         *
    -         * @param logger an SLF4J {@link Logger}
    -         * @return {@code this}
    -         */
    -        public Builder outputTo(Logger logger) {
    -<span class="nc" id="L115">            this.logger = logger;</span>
    -<span class="nc" id="L116">            return this;</span>
    -        }
    -
    -        /**
    -         * Mark all logged metrics with the given marker.
    -         *
    -         * @param marker an SLF4J {@link Marker}
    -         * @return {@code this}
    -         */
    -        public Builder markWith(Marker marker) {
    -<span class="nc" id="L126">            this.marker = marker;</span>
    -<span class="nc" id="L127">            return this;</span>
    -        }
    -
    -        /**
    -         * Prefix all metric names with the given string.
    -         *
    -         * @param prefix the prefix for all metric names
    -         * @return {@code this}
    -         */
    -        public Builder prefixedWith(String prefix) {
    -<span class="nc" id="L137">            this.prefix = prefix;</span>
    -<span class="nc" id="L138">            return this;</span>
    -        }
    -
    -        /**
    -         * Convert rates to the given time unit.
    -         *
    -         * @param rateUnit a unit of time
    -         * @return {@code this}
    -         */
    -        public Builder convertRatesTo(TimeUnit rateUnit) {
    -<span class="nc" id="L148">            this.rateUnit = rateUnit;</span>
    -<span class="nc" id="L149">            return this;</span>
    -        }
    -
    -        /**
    -         * Convert durations to the given time unit.
    -         *
    -         * @param durationUnit a unit of time
    -         * @return {@code this}
    -         */
    -        public Builder convertDurationsTo(TimeUnit durationUnit) {
    -<span class="nc" id="L159">            this.durationUnit = durationUnit;</span>
    -<span class="nc" id="L160">            return this;</span>
    -        }
    -
    -        /**
    -         * Only report metrics which match the given filter.
    -         *
    -         * @param filter a {@link MetricFilter}
    -         * @return {@code this}
    -         */
    -        public Builder filter(MetricFilter filter) {
    -<span class="nc" id="L170">            this.filter = filter;</span>
    -<span class="nc" id="L171">            return this;</span>
    -        }
    -
    -        /**
    -         * Use Logging Level when reporting.
    -         *
    -         * @param loggingLevel a (@link Slf4jReporter.LoggingLevel}
    -         * @return {@code this}
    -         */
    -        public Builder withLoggingLevel(LoggingLevel loggingLevel) {
    -<span class="nc" id="L181">            this.loggingLevel = loggingLevel;</span>
    -<span class="nc" id="L182">            return this;</span>
    -        }
    -
    -        /**
    -         * Don't report the passed metric attributes for all metrics (e.g. &quot;p999&quot;, &quot;stddev&quot; or &quot;m15&quot;).
    -         * See {@link MetricAttribute}.
    -         *
    -         * @param disabledMetricAttributes a set of {@link MetricAttribute}
    -         * @return {@code this}
    -         */
    -        public Builder disabledMetricAttributes(Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<span class="nc" id="L193">            this.disabledMetricAttributes = disabledMetricAttributes;</span>
    -<span class="nc" id="L194">            return this;</span>
    -        }
    -
    -        /**
    -         * Builds a {@link Slf4jReporter} with the given properties.
    -         *
    -         * @return a {@link Slf4jReporter}
    -         */
    -        public Slf4jReporter build() {
    -            LoggerProxy loggerProxy;
    -<span class="nc bnc" id="L204" title="All 5 branches missed.">            switch (loggingLevel) {</span>
    -                case TRACE:
    -<span class="nc" id="L206">                    loggerProxy = new TraceLoggerProxy(logger);</span>
    -<span class="nc" id="L207">                    break;</span>
    -                case INFO:
    -<span class="nc" id="L209">                    loggerProxy = new InfoLoggerProxy(logger);</span>
    -<span class="nc" id="L210">                    break;</span>
    -                case WARN:
    -<span class="nc" id="L212">                    loggerProxy = new WarnLoggerProxy(logger);</span>
    -<span class="nc" id="L213">                    break;</span>
    -                case ERROR:
    -<span class="nc" id="L215">                    loggerProxy = new ErrorLoggerProxy(logger);</span>
    -<span class="nc" id="L216">                    break;</span>
    -                default:
    -                case DEBUG:
    -<span class="nc" id="L219">                    loggerProxy = new DebugLoggerProxy(logger);</span>
    -                    break;
    -            }
    -<span class="nc" id="L222">            return new Slf4jReporter(registry, loggerProxy, marker, prefix, rateUnit, durationUnit, filter, executor,</span>
    -                    shutdownExecutorOnStop, disabledMetricAttributes);
    -        }
    -    }
    -
    -    private final LoggerProxy loggerProxy;
    -    private final Marker marker;
    -    private final String prefix;
    -
    -    private Slf4jReporter(MetricRegistry registry,
    -                          LoggerProxy loggerProxy,
    -                          Marker marker,
    -                          String prefix,
    -                          TimeUnit rateUnit,
    -                          TimeUnit durationUnit,
    -                          MetricFilter filter,
    -                          ScheduledExecutorService executor,
    -                          boolean shutdownExecutorOnStop,
    -                          Set&lt;MetricAttribute&gt; disabledMetricAttributes) {
    -<span class="nc" id="L241">        super(registry, &quot;logger-reporter&quot;, filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop,</span>
    -                disabledMetricAttributes);
    -<span class="nc" id="L243">        this.loggerProxy = loggerProxy;</span>
    -<span class="nc" id="L244">        this.marker = marker;</span>
    -<span class="nc" id="L245">        this.prefix = prefix;</span>
    -<span class="nc" id="L246">    }</span>
    -
    -    @Override
    -    @SuppressWarnings(&quot;rawtypes&quot;)
    -    public void report(SortedMap&lt;String, Gauge&gt; gauges,
    -                       SortedMap&lt;String, Counter&gt; counters,
    -                       SortedMap&lt;String, Histogram&gt; histograms,
    -                       SortedMap&lt;String, Meter&gt; meters,
    -                       SortedMap&lt;String, Timer&gt; timers) {
    -<span class="nc bnc" id="L255" title="All 2 branches missed.">        if (loggerProxy.isEnabled(marker)) {</span>
    -<span class="nc" id="L256">            StringBuilder b = new StringBuilder();</span>
    -<span class="nc bnc" id="L257" title="All 2 branches missed.">            for (Entry&lt;String, Gauge&gt; entry : gauges.entrySet()) {</span>
    -<span class="nc" id="L258">                logGauge(b, entry.getKey(), entry.getValue());</span>
    -<span class="nc" id="L259">            }</span>
    -
    -<span class="nc bnc" id="L261" title="All 2 branches missed.">            for (Entry&lt;String, Counter&gt; entry : counters.entrySet()) {</span>
    -<span class="nc" id="L262">                logCounter(b, entry.getKey(), entry.getValue());</span>
    -<span class="nc" id="L263">            }</span>
    -
    -<span class="nc bnc" id="L265" title="All 2 branches missed.">            for (Entry&lt;String, Histogram&gt; entry : histograms.entrySet()) {</span>
    -<span class="nc" id="L266">                logHistogram(b, entry.getKey(), entry.getValue());</span>
    -<span class="nc" id="L267">            }</span>
    -
    -<span class="nc bnc" id="L269" title="All 2 branches missed.">            for (Entry&lt;String, Meter&gt; entry : meters.entrySet()) {</span>
    -<span class="nc" id="L270">                logMeter(b, entry.getKey(), entry.getValue());</span>
    -<span class="nc" id="L271">            }</span>
    -
    -<span class="nc bnc" id="L273" title="All 2 branches missed.">            for (Entry&lt;String, Timer&gt; entry : timers.entrySet()) {</span>
    -<span class="nc" id="L274">                logTimer(b, entry.getKey(), entry.getValue());</span>
    -<span class="nc" id="L275">            }</span>
    -        }
    -<span class="nc" id="L277">    }</span>
    -
    -    private void logTimer(StringBuilder b, String name, Timer timer) {
    -<span class="nc" id="L280">        final Snapshot snapshot = timer.getSnapshot();</span>
    -<span class="nc" id="L281">        b.setLength(0);</span>
    -<span class="nc" id="L282">        b.append(&quot;type=TIMER&quot;);</span>
    -<span class="nc" id="L283">        append(b, &quot;name&quot;, prefix(name));</span>
    -<span class="nc" id="L284">        appendCountIfEnabled(b, timer);</span>
    -<span class="nc" id="L285">        appendLongDurationIfEnabled(b, MIN, snapshot::getMin);</span>
    -<span class="nc" id="L286">        appendLongDurationIfEnabled(b, MAX, snapshot::getMax);</span>
    -<span class="nc" id="L287">        appendDoubleDurationIfEnabled(b, MEAN, snapshot::getMean);</span>
    -<span class="nc" id="L288">        appendDoubleDurationIfEnabled(b, STDDEV, snapshot::getStdDev);</span>
    -<span class="nc" id="L289">        appendDoubleDurationIfEnabled(b, P50, snapshot::getMedian);</span>
    -<span class="nc" id="L290">        appendDoubleDurationIfEnabled(b, P75, snapshot::get75thPercentile);</span>
    -<span class="nc" id="L291">        appendDoubleDurationIfEnabled(b, P95, snapshot::get95thPercentile);</span>
    -<span class="nc" id="L292">        appendDoubleDurationIfEnabled(b, P98, snapshot::get98thPercentile);</span>
    -<span class="nc" id="L293">        appendDoubleDurationIfEnabled(b, P99, snapshot::get99thPercentile);</span>
    -<span class="nc" id="L294">        appendDoubleDurationIfEnabled(b, P999, snapshot::get999thPercentile);</span>
    -<span class="nc" id="L295">        appendMetered(b, timer);</span>
    -<span class="nc" id="L296">        append(b, &quot;rate_unit&quot;, getRateUnit());</span>
    -<span class="nc" id="L297">        append(b, &quot;duration_unit&quot;, getDurationUnit());</span>
    -<span class="nc" id="L298">        loggerProxy.log(marker, b.toString());</span>
    -<span class="nc" id="L299">    }</span>
    -
    -    private void logMeter(StringBuilder b, String name, Meter meter) {
    -<span class="nc" id="L302">        b.setLength(0);</span>
    -<span class="nc" id="L303">        b.append(&quot;type=METER&quot;);</span>
    -<span class="nc" id="L304">        append(b, &quot;name&quot;, prefix(name));</span>
    -<span class="nc" id="L305">        appendCountIfEnabled(b, meter);</span>
    -<span class="nc" id="L306">        appendMetered(b, meter);</span>
    -<span class="nc" id="L307">        append(b, &quot;rate_unit&quot;, getRateUnit());</span>
    -<span class="nc" id="L308">        loggerProxy.log(marker, b.toString());</span>
    -<span class="nc" id="L309">    }</span>
    -
    -    private void logHistogram(StringBuilder b, String name, Histogram histogram) {
    -<span class="nc" id="L312">        final Snapshot snapshot = histogram.getSnapshot();</span>
    -<span class="nc" id="L313">        b.setLength(0);</span>
    -<span class="nc" id="L314">        b.append(&quot;type=HISTOGRAM&quot;);</span>
    -<span class="nc" id="L315">        append(b, &quot;name&quot;, prefix(name));</span>
    -<span class="nc" id="L316">        appendCountIfEnabled(b, histogram);</span>
    -<span class="nc" id="L317">        appendLongIfEnabled(b, MIN, snapshot::getMin);</span>
    -<span class="nc" id="L318">        appendLongIfEnabled(b, MAX, snapshot::getMax);</span>
    -<span class="nc" id="L319">        appendDoubleIfEnabled(b, MEAN, snapshot::getMean);</span>
    -<span class="nc" id="L320">        appendDoubleIfEnabled(b, STDDEV, snapshot::getStdDev);</span>
    -<span class="nc" id="L321">        appendDoubleIfEnabled(b, P50, snapshot::getMedian);</span>
    -<span class="nc" id="L322">        appendDoubleIfEnabled(b, P75, snapshot::get75thPercentile);</span>
    -<span class="nc" id="L323">        appendDoubleIfEnabled(b, P95, snapshot::get95thPercentile);</span>
    -<span class="nc" id="L324">        appendDoubleIfEnabled(b, P98, snapshot::get98thPercentile);</span>
    -<span class="nc" id="L325">        appendDoubleIfEnabled(b, P99, snapshot::get99thPercentile);</span>
    -<span class="nc" id="L326">        appendDoubleIfEnabled(b, P999, snapshot::get999thPercentile);</span>
    -<span class="nc" id="L327">        loggerProxy.log(marker, b.toString());</span>
    -<span class="nc" id="L328">    }</span>
    -
    -    private void logCounter(StringBuilder b, String name, Counter counter) {
    -<span class="nc" id="L331">        b.setLength(0);</span>
    -<span class="nc" id="L332">        b.append(&quot;type=COUNTER&quot;);</span>
    -<span class="nc" id="L333">        append(b, &quot;name&quot;, prefix(name));</span>
    -<span class="nc" id="L334">        append(b, COUNT.getCode(), counter.getCount());</span>
    -<span class="nc" id="L335">        loggerProxy.log(marker, b.toString());</span>
    -<span class="nc" id="L336">    }</span>
    -
    -    private void logGauge(StringBuilder b, String name, Gauge&lt;?&gt; gauge) {
    -<span class="nc" id="L339">        b.setLength(0);</span>
    -<span class="nc" id="L340">        b.append(&quot;type=GAUGE&quot;);</span>
    -<span class="nc" id="L341">        append(b, &quot;name&quot;, prefix(name));</span>
    -<span class="nc" id="L342">        append(b, &quot;value&quot;, gauge.getValue());</span>
    -<span class="nc" id="L343">        loggerProxy.log(marker, b.toString());</span>
    -<span class="nc" id="L344">    }</span>
    -
    -    private void appendLongDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -                                             Supplier&lt;Long&gt; durationSupplier) {
    -<span class="nc bnc" id="L348" title="All 2 branches missed.">        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</span>
    -<span class="nc" id="L349">            append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));</span>
    -        }
    -<span class="nc" id="L351">    }</span>
    -
    -    private void appendDoubleDurationIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -                                               Supplier&lt;Double&gt; durationSupplier) {
    -<span class="nc bnc" id="L355" title="All 2 branches missed.">        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</span>
    -<span class="nc" id="L356">            append(b, metricAttribute.getCode(), convertDuration(durationSupplier.get()));</span>
    -        }
    -<span class="nc" id="L358">    }</span>
    -
    -    private void appendLongIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -                                     Supplier&lt;Long&gt; valueSupplier) {
    -<span class="nc bnc" id="L362" title="All 2 branches missed.">        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</span>
    -<span class="nc" id="L363">            append(b, metricAttribute.getCode(), valueSupplier.get());</span>
    -        }
    -<span class="nc" id="L365">    }</span>
    -
    -    private void appendDoubleIfEnabled(StringBuilder b, MetricAttribute metricAttribute,
    -                                       Supplier&lt;Double&gt; valueSupplier) {
    -<span class="nc bnc" id="L369" title="All 2 branches missed.">        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</span>
    -<span class="nc" id="L370">            append(b, metricAttribute.getCode(), valueSupplier.get());</span>
    -        }
    -<span class="nc" id="L372">    }</span>
    -
    -    private void appendCountIfEnabled(StringBuilder b, Counting counting) {
    -<span class="nc bnc" id="L375" title="All 2 branches missed.">        if (!getDisabledMetricAttributes().contains(COUNT)) {</span>
    -<span class="nc" id="L376">            append(b, COUNT.getCode(), counting.getCount());</span>
    -        }
    -<span class="nc" id="L378">    }</span>
    -
    -    private void appendMetered(StringBuilder b, Metered meter) {
    -<span class="nc" id="L381">        appendRateIfEnabled(b, M1_RATE, meter::getOneMinuteRate);</span>
    -<span class="nc" id="L382">        appendRateIfEnabled(b, M5_RATE, meter::getFiveMinuteRate);</span>
    -<span class="nc" id="L383">        appendRateIfEnabled(b, M15_RATE,  meter::getFifteenMinuteRate);</span>
    -<span class="nc" id="L384">        appendRateIfEnabled(b, MEAN_RATE,  meter::getMeanRate);</span>
    -<span class="nc" id="L385">    }</span>
    -
    -    private void appendRateIfEnabled(StringBuilder b, MetricAttribute metricAttribute, Supplier&lt;Double&gt; rateSupplier) {
    -<span class="nc bnc" id="L388" title="All 2 branches missed.">        if (!getDisabledMetricAttributes().contains(metricAttribute)) {</span>
    -<span class="nc" id="L389">            append(b, metricAttribute.getCode(), convertRate(rateSupplier.get()));</span>
    -        }
    -<span class="nc" id="L391">    }</span>
    -
    -    private void append(StringBuilder b, String key, long value) {
    -<span class="nc" id="L394">        b.append(&quot;, &quot;).append(key).append('=').append(value);</span>
    -<span class="nc" id="L395">    }</span>
    -
    -    private void append(StringBuilder b, String key, double value) {
    -<span class="nc" id="L398">        b.append(&quot;, &quot;).append(key).append('=').append(value);</span>
    -<span class="nc" id="L399">    }</span>
    -
    -    private void append(StringBuilder b, String key, String value) {
    -<span class="nc" id="L402">        b.append(&quot;, &quot;).append(key).append('=').append(value);</span>
    -<span class="nc" id="L403">    }</span>
    -
    -    private void append(StringBuilder b, String key, Object value) {
    -<span class="nc" id="L406">        b.append(&quot;, &quot;).append(key).append('=').append(value);</span>
    -<span class="nc" id="L407">    }</span>
    -
    -    @Override
    -    protected String getRateUnit() {
    -<span class="nc" id="L411">        return &quot;events/&quot; + super.getRateUnit();</span>
    -    }
    -
    -    private String prefix(String... components) {
    -<span class="nc" id="L415">        return MetricRegistry.name(prefix, components);</span>
    -    }
    -
    -    /* private class to allow logger configuration */
    -    static abstract class LoggerProxy {
    -        protected final Logger logger;
    -
    -<span class="nc" id="L422">        public LoggerProxy(Logger logger) {</span>
    -<span class="nc" id="L423">            this.logger = logger;</span>
    -<span class="nc" id="L424">        }</span>
    -
    -        abstract void log(Marker marker, String format);
    -
    -        abstract boolean isEnabled(Marker marker);
    -    }
    -
    -    /* private class to allow logger configuration */
    -    private static class DebugLoggerProxy extends LoggerProxy {
    -        public DebugLoggerProxy(Logger logger) {
    -<span class="nc" id="L434">            super(logger);</span>
    -<span class="nc" id="L435">        }</span>
    -
    -        @Override
    -        public void log(Marker marker, String format) {
    -<span class="nc" id="L439">            logger.debug(marker, format);</span>
    -<span class="nc" id="L440">        }</span>
    -
    -        @Override
    -        public boolean isEnabled(Marker marker) {
    -<span class="nc" id="L444">            return logger.isDebugEnabled(marker);</span>
    -        }
    -    }
    -
    -    /* private class to allow logger configuration */
    -    private static class TraceLoggerProxy extends LoggerProxy {
    -        public TraceLoggerProxy(Logger logger) {
    -<span class="nc" id="L451">            super(logger);</span>
    -<span class="nc" id="L452">        }</span>
    -
    -        @Override
    -        public void log(Marker marker, String format) {
    -<span class="nc" id="L456">            logger.trace(marker, format);</span>
    -<span class="nc" id="L457">        }</span>
    -
    -        @Override
    -        public boolean isEnabled(Marker marker) {
    -<span class="nc" id="L461">            return logger.isTraceEnabled(marker);</span>
    -        }
    -    }
    -
    -    /* private class to allow logger configuration */
    -    private static class InfoLoggerProxy extends LoggerProxy {
    -        public InfoLoggerProxy(Logger logger) {
    -<span class="nc" id="L468">            super(logger);</span>
    -<span class="nc" id="L469">        }</span>
    -
    -        @Override
    -        public void log(Marker marker, String format) {
    -<span class="nc" id="L473">            logger.info(marker, format);</span>
    -<span class="nc" id="L474">        }</span>
    -
    -        @Override
    -        public boolean isEnabled(Marker marker) {
    -<span class="nc" id="L478">            return logger.isInfoEnabled(marker);</span>
    -        }
    -    }
    -
    -    /* private class to allow logger configuration */
    -    private static class WarnLoggerProxy extends LoggerProxy {
    -        public WarnLoggerProxy(Logger logger) {
    -<span class="nc" id="L485">            super(logger);</span>
    -<span class="nc" id="L486">        }</span>
    -
    -        @Override
    -        public void log(Marker marker, String format) {
    -<span class="nc" id="L490">            logger.warn(marker, format);</span>
    -<span class="nc" id="L491">        }</span>
    -
    -        @Override
    -        public boolean isEnabled(Marker marker) {
    -<span class="nc" id="L495">            return logger.isWarnEnabled(marker);</span>
    -        }
    -    }
    -
    -    /* private class to allow logger configuration */
    -    private static class ErrorLoggerProxy extends LoggerProxy {
    -        public ErrorLoggerProxy(Logger logger) {
    -<span class="nc" id="L502">            super(logger);</span>
    -<span class="nc" id="L503">        }</span>
    -
    -        @Override
    -        public void log(Marker marker, String format) {
    -<span class="nc" id="L507">            logger.error(marker, format);</span>
    -<span class="nc" id="L508">        }</span>
    -
    -        @Override
    -        public boolean isEnabled(Marker marker) {
    -<span class="nc" id="L512">            return logger.isErrorEnabled(marker);</span>
    -        }
    -    }
    -
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporterTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporterTest.html
    deleted file mode 100644
    index 0d0d804032..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporterTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Slf4jReporterTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Slf4jReporterTest</span></div><h1>Slf4jReporterTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">932 of 932</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">33</td><td class="ctr2">33</td><td class="ctr1">198</td><td class="ctr2">198</td><td class="ctr1">33</td><td class="ctr2">33</td></tr></tfoot><tbody><tr><td id="a32"><a href="Slf4jReporterTest.java.html#L89" class="el_method">timer()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="164" alt="164"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">20</td><td class="ctr2" id="i0">20</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Slf4jReporterTest.java.html#L115" class="el_method">histogram()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="76" height="10" title="104" alt="104"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">15</td><td class="ctr2" id="i1">15</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a10"><a href="Slf4jReporterTest.java.html#L333" class="el_method">reportsAllMetricsDefault()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="57" height="10" title="79" alt="79"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">12</td><td class="ctr2" id="i2">12</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a9"><a href="Slf4jReporterTest.java.html#L135" class="el_method">meter()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="33" height="10" title="46" alt="46"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h15">7</td><td class="ctr2" id="i15">7</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a11"><a href="Slf4jReporterTest.java.html#L162" class="el_method">reportsCounterValuesAtError()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="38" alt="38"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i4">9</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a19"><a href="Slf4jReporterTest.java.html#L188" class="el_method">reportsHistogramValuesAtError(String)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="38" alt="38"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">9</td><td class="ctr2" id="i5">9</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a23"><a href="Slf4jReporterTest.java.html#L214" class="el_method">reportsMeterValuesAtError(String)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="38" alt="38"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">9</td><td class="ctr2" id="i6">9</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a27"><a href="Slf4jReporterTest.java.html#L244" class="el_method">reportsTimerValuesAtError(String)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="38" alt="38"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">9</td><td class="ctr2" id="i7">9</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a14"><a href="Slf4jReporterTest.java.html#L272" class="el_method">reportsCounterValuesDefault()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="38" alt="38"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">9</td><td class="ctr2" id="i8">9</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a22"><a href="Slf4jReporterTest.java.html#L286" class="el_method">reportsHistogramValuesDefault()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="38" alt="38"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">9</td><td class="ctr2" id="i9">9</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a26"><a href="Slf4jReporterTest.java.html#L301" class="el_method">reportsMeterValuesDefault()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="38" alt="38"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">9</td><td class="ctr2" id="i10">9</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a30"><a href="Slf4jReporterTest.java.html#L316" class="el_method">reportsTimerValuesDefault()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="38" alt="38"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">9</td><td class="ctr2" id="i11">9</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a15"><a href="Slf4jReporterTest.java.html#L77" class="el_method">reportsGaugeValuesAtError()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="35" alt="35"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h13">8</td><td class="ctr2" id="i13">8</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a18"><a href="Slf4jReporterTest.java.html#L259" class="el_method">reportsGaugeValuesDefault()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="35" alt="35"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h14">8</td><td class="ctr2" id="i14">8</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a3"><a href="Slf4jReporterTest.java.html#L41" class="el_method">infoReporter()</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="24" alt="24"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h3">10</td><td class="ctr2" id="i3">10</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a1"><a href="Slf4jReporterTest.java.html#L54" class="el_method">errorReporter()</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="22" alt="22"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h12">9</td><td class="ctr2" id="i12">9</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a31"><a href="Slf4jReporterTest.java.html#L24" class="el_method">Slf4jReporterTest()</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="15" height="10" title="21" alt="21"/></td><td class="ctr2" id="c16">0%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h16">5</td><td class="ctr2" id="i16">5</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a0"><a href="Slf4jReporterTest.java.html#L145" class="el_method">counter()</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="14" alt="14"/></td><td class="ctr2" id="c17">0%</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">1</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h17">3</td><td class="ctr2" id="i17">3</td><td class="ctr1" id="j17">1</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a29"><a href="Slf4jReporterTest.java.html#L237" class="el_method">reportsTimerValuesAtErrorWithDisabledMetricAttributes()</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="11" alt="11"/></td><td class="ctr2" id="c18">0%</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f18">1</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h18">3</td><td class="ctr2" id="i18">3</td><td class="ctr1" id="j18">1</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a8"><a href="Slf4jReporterTest.java.html#L357" class="el_method">map(String, Object)</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="11" alt="11"/></td><td class="ctr2" id="c19">0%</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">1</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h19">3</td><td class="ctr2" id="i19">3</td><td class="ctr1" id="j19">1</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a21"><a href="Slf4jReporterTest.java.html#L182" class="el_method">reportsHistogramValuesAtErrorWithDisabledMetricAttributes()</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="10" alt="10"/></td><td class="ctr2" id="c20">0%</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f20">1</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h20">3</td><td class="ctr2" id="i20">3</td><td class="ctr1" id="j20">1</td><td class="ctr2" id="k20">1</td></tr><tr><td id="a25"><a href="Slf4jReporterTest.java.html#L208" class="el_method">reportsMeterValuesAtErrorWithDisabledMetricAttributes()</a></td><td class="bar" id="b21"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="10" alt="10"/></td><td class="ctr2" id="c21">0%</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f21">1</td><td class="ctr2" id="g21">1</td><td class="ctr1" id="h21">3</td><td class="ctr2" id="i21">3</td><td class="ctr1" id="j21">1</td><td class="ctr2" id="k21">1</td></tr><tr><td id="a16"><a href="Slf4jReporterTest.java.html#L72" class="el_method">reportsGaugeValuesAtErrorAllDisabled()</a></td><td class="bar" id="b22"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="7" alt="7"/></td><td class="ctr2" id="c22">0%</td><td class="bar" id="d22"/><td class="ctr2" id="e22">n/a</td><td class="ctr1" id="f22">1</td><td class="ctr2" id="g22">1</td><td class="ctr1" id="h22">3</td><td class="ctr2" id="i22">3</td><td class="ctr1" id="j22">1</td><td class="ctr2" id="k22">1</td></tr><tr><td id="a12"><a href="Slf4jReporterTest.java.html#L157" class="el_method">reportsCounterValuesAtErrorAllDisabled()</a></td><td class="bar" id="b23"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="7" alt="7"/></td><td class="ctr2" id="c23">0%</td><td class="bar" id="d23"/><td class="ctr2" id="e23">n/a</td><td class="ctr1" id="f23">1</td><td class="ctr2" id="g23">1</td><td class="ctr1" id="h23">3</td><td class="ctr2" id="i23">3</td><td class="ctr1" id="j23">1</td><td class="ctr2" id="k23">1</td></tr><tr><td id="a20"><a href="Slf4jReporterTest.java.html#L176" class="el_method">reportsHistogramValuesAtErrorDefault()</a></td><td class="bar" id="b24"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="4" alt="4"/></td><td class="ctr2" id="c24">0%</td><td class="bar" id="d24"/><td class="ctr2" id="e24">n/a</td><td class="ctr1" id="f24">1</td><td class="ctr2" id="g24">1</td><td class="ctr1" id="h24">2</td><td class="ctr2" id="i24">2</td><td class="ctr1" id="j24">1</td><td class="ctr2" id="k24">1</td></tr><tr><td id="a24"><a href="Slf4jReporterTest.java.html#L202" class="el_method">reportsMeterValuesAtErrorDefault()</a></td><td class="bar" id="b25"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="4" alt="4"/></td><td class="ctr2" id="c25">0%</td><td class="bar" id="d25"/><td class="ctr2" id="e25">n/a</td><td class="ctr1" id="f25">1</td><td class="ctr2" id="g25">1</td><td class="ctr1" id="h25">2</td><td class="ctr2" id="i25">2</td><td class="ctr1" id="j25">1</td><td class="ctr2" id="k25">1</td></tr><tr><td id="a28"><a href="Slf4jReporterTest.java.html#L229" class="el_method">reportsTimerValuesAtErrorDefault()</a></td><td class="bar" id="b26"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="4" alt="4"/></td><td class="ctr2" id="c26">0%</td><td class="bar" id="d26"/><td class="ctr2" id="e26">n/a</td><td class="ctr1" id="f26">1</td><td class="ctr2" id="g26">1</td><td class="ctr1" id="h26">2</td><td class="ctr2" id="i26">2</td><td class="ctr1" id="j26">1</td><td class="ctr2" id="k26">1</td></tr><tr><td id="a7"><a href="Slf4jReporterTest.java.html#L353" class="el_method">map()</a></td><td class="bar" id="b27"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="4" alt="4"/></td><td class="ctr2" id="c27">0%</td><td class="bar" id="d27"/><td class="ctr2" id="e27">n/a</td><td class="ctr1" id="f27">1</td><td class="ctr2" id="g27">1</td><td class="ctr1" id="h29">1</td><td class="ctr2" id="i29">1</td><td class="ctr1" id="j27">1</td><td class="ctr2" id="k27">1</td></tr><tr><td id="a17"><a href="Slf4jReporterTest.java.html#L67" class="el_method">reportsGaugeValuesAtErrorDefault()</a></td><td class="bar" id="b28"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="3" alt="3"/></td><td class="ctr2" id="c28">0%</td><td class="bar" id="d28"/><td class="ctr2" id="e28">n/a</td><td class="ctr1" id="f28">1</td><td class="ctr2" id="g28">1</td><td class="ctr1" id="h27">2</td><td class="ctr2" id="i27">2</td><td class="ctr1" id="j28">1</td><td class="ctr2" id="k28">1</td></tr><tr><td id="a13"><a href="Slf4jReporterTest.java.html#L152" class="el_method">reportsCounterValuesAtErrorDefault()</a></td><td class="bar" id="b29"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="3" alt="3"/></td><td class="ctr2" id="c29">0%</td><td class="bar" id="d29"/><td class="ctr2" id="e29">n/a</td><td class="ctr1" id="f29">1</td><td class="ctr2" id="g29">1</td><td class="ctr1" id="h28">2</td><td class="ctr2" id="i28">2</td><td class="ctr1" id="j29">1</td><td class="ctr2" id="k29">1</td></tr><tr><td id="a4"><a href="Slf4jReporterTest.java.html#L335" class="el_method">lambda$reportsAllMetricsDefault$2()</a></td><td class="bar" id="b30"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="2" alt="2"/></td><td class="ctr2" id="c30">0%</td><td class="bar" id="d30"/><td class="ctr2" id="e30">n/a</td><td class="ctr1" id="f30">1</td><td class="ctr2" id="g30">1</td><td class="ctr1" id="h30">1</td><td class="ctr2" id="i30">1</td><td class="ctr1" id="j30">1</td><td class="ctr2" id="k30">1</td></tr><tr><td id="a6"><a href="Slf4jReporterTest.java.html#L260" class="el_method">lambda$reportsGaugeValuesDefault$1()</a></td><td class="bar" id="b31"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="2" alt="2"/></td><td class="ctr2" id="c31">0%</td><td class="bar" id="d31"/><td class="ctr2" id="e31">n/a</td><td class="ctr1" id="f31">1</td><td class="ctr2" id="g31">1</td><td class="ctr1" id="h31">1</td><td class="ctr2" id="i31">1</td><td class="ctr1" id="j31">1</td><td class="ctr2" id="k31">1</td></tr><tr><td id="a5"><a href="Slf4jReporterTest.java.html#L78" class="el_method">lambda$reportsGaugeValuesAtError$0()</a></td><td class="bar" id="b32"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="2" alt="2"/></td><td class="ctr2" id="c32">0%</td><td class="bar" id="d32"/><td class="ctr2" id="e32">n/a</td><td class="ctr1" id="f32">1</td><td class="ctr2" id="g32">1</td><td class="ctr1" id="h32">1</td><td class="ctr2" id="i32">1</td><td class="ctr1" id="j32">1</td><td class="ctr2" id="k32">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporterTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporterTest.java.html
    deleted file mode 100644
    index d729741e75..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Slf4jReporterTest.java.html
    +++ /dev/null
    @@ -1,363 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Slf4jReporterTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">Slf4jReporterTest.java</span></div><h1>Slf4jReporterTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -import org.slf4j.Logger;
    -import org.slf4j.Marker;
    -
    -import java.util.EnumSet;
    -import java.util.Set;
    -import java.util.SortedMap;
    -import java.util.TreeMap;
    -import java.util.concurrent.TimeUnit;
    -
    -import static com.codahale.metrics.MetricAttribute.COUNT;
    -import static com.codahale.metrics.MetricAttribute.M1_RATE;
    -import static com.codahale.metrics.MetricAttribute.MEAN_RATE;
    -import static com.codahale.metrics.MetricAttribute.MIN;
    -import static com.codahale.metrics.MetricAttribute.P50;
    -import static com.codahale.metrics.MetricAttribute.P999;
    -import static com.codahale.metrics.MetricAttribute.STDDEV;
    -import static org.mockito.Mockito.when;
    -import static org.mockito.Mockito.mock;
    -import static org.mockito.Mockito.verify;
    -
    -<span class="nc" id="L24">public class Slf4jReporterTest {</span>
    -
    -<span class="nc" id="L26">    private final Logger logger = mock(Logger.class);</span>
    -<span class="nc" id="L27">    private final Marker marker = mock(Marker.class);</span>
    -<span class="nc" id="L28">    private final MetricRegistry registry = mock(MetricRegistry.class);</span>
    -
    -    /**
    -     * The set of disabled metric attributes to pass to the Slf4jReporter builder
    -     * in the default factory methods of {@link #infoReporter}
    -     * and {@link #errorReporter}.
    -     *
    -     * This value can be overridden by tests before calling the {@link #infoReporter}
    -     * and {@link #errorReporter} factory methods.
    -     */
    -<span class="nc" id="L38">    private Set&lt;MetricAttribute&gt; disabledMetricAttributes = null;</span>
    -
    -    private Slf4jReporter infoReporter() {
    -<span class="nc" id="L41">        return Slf4jReporter.forRegistry(registry)</span>
    -<span class="nc" id="L42">                .outputTo(logger)</span>
    -<span class="nc" id="L43">                .markWith(marker)</span>
    -<span class="nc" id="L44">                .prefixedWith(&quot;prefix&quot;)</span>
    -<span class="nc" id="L45">                .convertRatesTo(TimeUnit.SECONDS)</span>
    -<span class="nc" id="L46">                .convertDurationsTo(TimeUnit.MILLISECONDS)</span>
    -<span class="nc" id="L47">                .withLoggingLevel(Slf4jReporter.LoggingLevel.INFO)</span>
    -<span class="nc" id="L48">                .filter(MetricFilter.ALL)</span>
    -<span class="nc" id="L49">                .disabledMetricAttributes(disabledMetricAttributes)</span>
    -<span class="nc" id="L50">                .build();</span>
    -    }
    -
    -    private Slf4jReporter errorReporter() {
    -<span class="nc" id="L54">        return Slf4jReporter.forRegistry(registry)</span>
    -<span class="nc" id="L55">                .outputTo(logger)</span>
    -<span class="nc" id="L56">                .markWith(marker)</span>
    -<span class="nc" id="L57">                .convertRatesTo(TimeUnit.SECONDS)</span>
    -<span class="nc" id="L58">                .convertDurationsTo(TimeUnit.MILLISECONDS)</span>
    -<span class="nc" id="L59">                .withLoggingLevel(Slf4jReporter.LoggingLevel.ERROR)</span>
    -<span class="nc" id="L60">                .filter(MetricFilter.ALL)</span>
    -<span class="nc" id="L61">                .disabledMetricAttributes(disabledMetricAttributes)</span>
    -<span class="nc" id="L62">                .build();</span>
    -    }
    -
    -    @Test
    -    public void reportsGaugeValuesAtErrorDefault() {
    -<span class="nc" id="L67">        reportsGaugeValuesAtError();</span>
    -<span class="nc" id="L68">    }</span>
    -
    -    @Test
    -    public void reportsGaugeValuesAtErrorAllDisabled() {
    -<span class="nc" id="L72">        disabledMetricAttributes = EnumSet.allOf(MetricAttribute.class); // has no effect</span>
    -<span class="nc" id="L73">        reportsGaugeValuesAtError();</span>
    -<span class="nc" id="L74">    }</span>
    -
    -    private void reportsGaugeValuesAtError() {
    -<span class="nc" id="L77">        when(logger.isErrorEnabled(marker)).thenReturn(true);</span>
    -<span class="nc" id="L78">        errorReporter().report(map(&quot;gauge&quot;, () -&gt; &quot;value&quot;),</span>
    -<span class="nc" id="L79">                map(),</span>
    -<span class="nc" id="L80">                map(),</span>
    -<span class="nc" id="L81">                map(),</span>
    -<span class="nc" id="L82">                map());</span>
    -
    -<span class="nc" id="L84">        verify(logger).error(marker, &quot;type=GAUGE, name=gauge, value=value&quot;);</span>
    -<span class="nc" id="L85">    }</span>
    -
    -
    -    private Timer timer() {
    -<span class="nc" id="L89">        final Timer timer = mock(Timer.class);</span>
    -<span class="nc" id="L90">        when(timer.getCount()).thenReturn(1L);</span>
    -
    -<span class="nc" id="L92">        when(timer.getMeanRate()).thenReturn(2.0);</span>
    -<span class="nc" id="L93">        when(timer.getOneMinuteRate()).thenReturn(3.0);</span>
    -<span class="nc" id="L94">        when(timer.getFiveMinuteRate()).thenReturn(4.0);</span>
    -<span class="nc" id="L95">        when(timer.getFifteenMinuteRate()).thenReturn(5.0);</span>
    -
    -<span class="nc" id="L97">        final Snapshot snapshot = mock(Snapshot.class);</span>
    -<span class="nc" id="L98">        when(snapshot.getMax()).thenReturn(TimeUnit.MILLISECONDS.toNanos(100));</span>
    -<span class="nc" id="L99">        when(snapshot.getMean()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(200));</span>
    -<span class="nc" id="L100">        when(snapshot.getMin()).thenReturn(TimeUnit.MILLISECONDS.toNanos(300));</span>
    -<span class="nc" id="L101">        when(snapshot.getStdDev()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(400));</span>
    -<span class="nc" id="L102">        when(snapshot.getMedian()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(500));</span>
    -<span class="nc" id="L103">        when(snapshot.get75thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(600));</span>
    -<span class="nc" id="L104">        when(snapshot.get95thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(700));</span>
    -<span class="nc" id="L105">        when(snapshot.get98thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(800));</span>
    -<span class="nc" id="L106">        when(snapshot.get99thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS.toNanos(900));</span>
    -<span class="nc" id="L107">        when(snapshot.get999thPercentile()).thenReturn((double) TimeUnit.MILLISECONDS</span>
    -<span class="nc" id="L108">                .toNanos(1000));</span>
    -
    -<span class="nc" id="L110">        when(timer.getSnapshot()).thenReturn(snapshot);</span>
    -<span class="nc" id="L111">        return timer;</span>
    -    }
    -
    -    private Histogram histogram() {
    -<span class="nc" id="L115">        final Histogram histogram = mock(Histogram.class);</span>
    -<span class="nc" id="L116">        when(histogram.getCount()).thenReturn(1L);</span>
    -
    -<span class="nc" id="L118">        final Snapshot snapshot = mock(Snapshot.class);</span>
    -<span class="nc" id="L119">        when(snapshot.getMax()).thenReturn(2L);</span>
    -<span class="nc" id="L120">        when(snapshot.getMean()).thenReturn(3.0);</span>
    -<span class="nc" id="L121">        when(snapshot.getMin()).thenReturn(4L);</span>
    -<span class="nc" id="L122">        when(snapshot.getStdDev()).thenReturn(5.0);</span>
    -<span class="nc" id="L123">        when(snapshot.getMedian()).thenReturn(6.0);</span>
    -<span class="nc" id="L124">        when(snapshot.get75thPercentile()).thenReturn(7.0);</span>
    -<span class="nc" id="L125">        when(snapshot.get95thPercentile()).thenReturn(8.0);</span>
    -<span class="nc" id="L126">        when(snapshot.get98thPercentile()).thenReturn(9.0);</span>
    -<span class="nc" id="L127">        when(snapshot.get99thPercentile()).thenReturn(10.0);</span>
    -<span class="nc" id="L128">        when(snapshot.get999thPercentile()).thenReturn(11.0);</span>
    -
    -<span class="nc" id="L130">        when(histogram.getSnapshot()).thenReturn(snapshot);</span>
    -<span class="nc" id="L131">        return histogram;</span>
    -    }
    -
    -    private Meter meter() {
    -<span class="nc" id="L135">        final Meter meter = mock(Meter.class);</span>
    -<span class="nc" id="L136">        when(meter.getCount()).thenReturn(1L);</span>
    -<span class="nc" id="L137">        when(meter.getMeanRate()).thenReturn(2.0);</span>
    -<span class="nc" id="L138">        when(meter.getOneMinuteRate()).thenReturn(3.0);</span>
    -<span class="nc" id="L139">        when(meter.getFiveMinuteRate()).thenReturn(4.0);</span>
    -<span class="nc" id="L140">        when(meter.getFifteenMinuteRate()).thenReturn(5.0);</span>
    -<span class="nc" id="L141">        return meter;</span>
    -    }
    -
    -    private Counter counter() {
    -<span class="nc" id="L145">        final Counter counter = mock(Counter.class);</span>
    -<span class="nc" id="L146">        when(counter.getCount()).thenReturn(100L);</span>
    -<span class="nc" id="L147">        return counter;</span>
    -    }
    -
    -    @Test
    -    public void reportsCounterValuesAtErrorDefault() {
    -<span class="nc" id="L152">        reportsCounterValuesAtError();</span>
    -<span class="nc" id="L153">    }</span>
    -
    -    @Test
    -    public void reportsCounterValuesAtErrorAllDisabled() {
    -<span class="nc" id="L157">        disabledMetricAttributes = EnumSet.allOf(MetricAttribute.class); // has no effect</span>
    -<span class="nc" id="L158">        reportsCounterValuesAtError();</span>
    -<span class="nc" id="L159">    }</span>
    -
    -    private void reportsCounterValuesAtError() {
    -<span class="nc" id="L162">        final Counter counter = counter();</span>
    -<span class="nc" id="L163">        when(logger.isErrorEnabled(marker)).thenReturn(true);</span>
    -
    -<span class="nc" id="L165">        errorReporter().report(map(),</span>
    -<span class="nc" id="L166">                map(&quot;test.counter&quot;, counter),</span>
    -<span class="nc" id="L167">                map(),</span>
    -<span class="nc" id="L168">                map(),</span>
    -<span class="nc" id="L169">                map());</span>
    -
    -<span class="nc" id="L171">        verify(logger).error(marker, &quot;type=COUNTER, name=test.counter, count=100&quot;);</span>
    -<span class="nc" id="L172">    }</span>
    -
    -    @Test
    -    public void reportsHistogramValuesAtErrorDefault() {
    -<span class="nc" id="L176">        reportsHistogramValuesAtError(&quot;type=HISTOGRAM, name=test.histogram, count=1, min=4, &quot; +</span>
    -                &quot;max=2, mean=3.0, stddev=5.0, p50=6.0, p75=7.0, p95=8.0, p98=9.0, p99=10.0, p999=11.0&quot;);
    -<span class="nc" id="L178">    }</span>
    -
    -    @Test
    -    public void reportsHistogramValuesAtErrorWithDisabledMetricAttributes() {
    -<span class="nc" id="L182">        disabledMetricAttributes = EnumSet.of(COUNT, MIN, P50);</span>
    -<span class="nc" id="L183">        reportsHistogramValuesAtError(&quot;type=HISTOGRAM, name=test.histogram, max=2, mean=3.0, &quot; +</span>
    -                &quot;stddev=5.0, p75=7.0, p95=8.0, p98=9.0, p99=10.0, p999=11.0&quot;);
    -<span class="nc" id="L185">    }</span>
    -
    -    private void reportsHistogramValuesAtError(final String expectedLog) {
    -<span class="nc" id="L188">        final Histogram histogram = histogram();</span>
    -<span class="nc" id="L189">        when(logger.isErrorEnabled(marker)).thenReturn(true);</span>
    -
    -<span class="nc" id="L191">        errorReporter().report(map(),</span>
    -<span class="nc" id="L192">                map(),</span>
    -<span class="nc" id="L193">                map(&quot;test.histogram&quot;, histogram),</span>
    -<span class="nc" id="L194">                map(),</span>
    -<span class="nc" id="L195">                map());</span>
    -
    -<span class="nc" id="L197">        verify(logger).error(marker, expectedLog);</span>
    -<span class="nc" id="L198">    }</span>
    -
    -    @Test
    -    public void reportsMeterValuesAtErrorDefault() {
    -<span class="nc" id="L202">        reportsMeterValuesAtError(&quot;type=METER, name=test.meter, count=1, m1_rate=3.0, m5_rate=4.0, &quot; +</span>
    -                &quot;m15_rate=5.0, mean_rate=2.0, rate_unit=events/second&quot;);
    -<span class="nc" id="L204">    }</span>
    -
    -    @Test
    -    public void reportsMeterValuesAtErrorWithDisabledMetricAttributes() {
    -<span class="nc" id="L208">        disabledMetricAttributes = EnumSet.of(MIN, P50, M1_RATE);</span>
    -<span class="nc" id="L209">        reportsMeterValuesAtError(&quot;type=METER, name=test.meter, count=1, m5_rate=4.0, m15_rate=5.0, &quot; +</span>
    -                &quot;mean_rate=2.0, rate_unit=events/second&quot;);
    -<span class="nc" id="L211">    }</span>
    -
    -    private void reportsMeterValuesAtError(final String expectedLog) {
    -<span class="nc" id="L214">        final Meter meter = meter();</span>
    -<span class="nc" id="L215">        when(logger.isErrorEnabled(marker)).thenReturn(true);</span>
    -
    -<span class="nc" id="L217">        errorReporter().report(map(),</span>
    -<span class="nc" id="L218">                map(),</span>
    -<span class="nc" id="L219">                map(),</span>
    -<span class="nc" id="L220">                map(&quot;test.meter&quot;, meter),</span>
    -<span class="nc" id="L221">                map());</span>
    -
    -<span class="nc" id="L223">        verify(logger).error(marker, expectedLog);</span>
    -<span class="nc" id="L224">    }</span>
    -
    -
    -    @Test
    -    public void reportsTimerValuesAtErrorDefault() {
    -<span class="nc" id="L229">        reportsTimerValuesAtError(&quot;type=TIMER, name=test.another.timer, count=1, min=300.0, max=100.0, &quot; +</span>
    -                &quot;mean=200.0, stddev=400.0, p50=500.0, p75=600.0, p95=700.0, p98=800.0, p99=900.0, p999=1000.0, &quot; +
    -                &quot;m1_rate=3.0, m5_rate=4.0, m15_rate=5.0, mean_rate=2.0, rate_unit=events/second, &quot; +
    -                &quot;duration_unit=milliseconds&quot;);
    -<span class="nc" id="L233">    }</span>
    -
    -    @Test
    -    public void reportsTimerValuesAtErrorWithDisabledMetricAttributes() {
    -<span class="nc" id="L237">        disabledMetricAttributes = EnumSet.of(MIN, STDDEV, P999, MEAN_RATE);</span>
    -<span class="nc" id="L238">        reportsTimerValuesAtError(&quot;type=TIMER, name=test.another.timer, count=1, max=100.0, mean=200.0, &quot; +</span>
    -                &quot;p50=500.0, p75=600.0, p95=700.0, p98=800.0, p99=900.0, m1_rate=3.0, m5_rate=4.0, m15_rate=5.0, &quot; +
    -                &quot;rate_unit=events/second, duration_unit=milliseconds&quot;);
    -<span class="nc" id="L241">    }</span>
    -
    -    private void reportsTimerValuesAtError(final String expectedLog) {
    -<span class="nc" id="L244">        final Timer timer = timer();</span>
    -
    -<span class="nc" id="L246">        when(logger.isErrorEnabled(marker)).thenReturn(true);</span>
    -
    -<span class="nc" id="L248">        errorReporter().report(map(),</span>
    -<span class="nc" id="L249">                map(),</span>
    -<span class="nc" id="L250">                map(),</span>
    -<span class="nc" id="L251">                map(),</span>
    -<span class="nc" id="L252">                map(&quot;test.another.timer&quot;, timer));</span>
    -
    -<span class="nc" id="L254">        verify(logger).error(marker, expectedLog);</span>
    -<span class="nc" id="L255">    }</span>
    -
    -    @Test
    -    public void reportsGaugeValuesDefault() {
    -<span class="nc" id="L259">        when(logger.isInfoEnabled(marker)).thenReturn(true);</span>
    -<span class="nc" id="L260">        infoReporter().report(map(&quot;gauge&quot;, () -&gt; &quot;value&quot;),</span>
    -<span class="nc" id="L261">                map(),</span>
    -<span class="nc" id="L262">                map(),</span>
    -<span class="nc" id="L263">                map(),</span>
    -<span class="nc" id="L264">                map());</span>
    -
    -<span class="nc" id="L266">        verify(logger).info(marker, &quot;type=GAUGE, name=prefix.gauge, value=value&quot;);</span>
    -<span class="nc" id="L267">    }</span>
    -
    -
    -    @Test
    -    public void reportsCounterValuesDefault() {
    -<span class="nc" id="L272">        final Counter counter = counter();</span>
    -<span class="nc" id="L273">        when(logger.isInfoEnabled(marker)).thenReturn(true);</span>
    -
    -<span class="nc" id="L275">        infoReporter().report(map(),</span>
    -<span class="nc" id="L276">                map(&quot;test.counter&quot;, counter),</span>
    -<span class="nc" id="L277">                map(),</span>
    -<span class="nc" id="L278">                map(),</span>
    -<span class="nc" id="L279">                map());</span>
    -
    -<span class="nc" id="L281">        verify(logger).info(marker, &quot;type=COUNTER, name=prefix.test.counter, count=100&quot;);</span>
    -<span class="nc" id="L282">    }</span>
    -
    -    @Test
    -    public void reportsHistogramValuesDefault() {
    -<span class="nc" id="L286">        final Histogram histogram = histogram();</span>
    -<span class="nc" id="L287">        when(logger.isInfoEnabled(marker)).thenReturn(true);</span>
    -
    -<span class="nc" id="L289">        infoReporter().report(map(),</span>
    -<span class="nc" id="L290">                map(),</span>
    -<span class="nc" id="L291">                map(&quot;test.histogram&quot;, histogram),</span>
    -<span class="nc" id="L292">                map(),</span>
    -<span class="nc" id="L293">                map());</span>
    -
    -<span class="nc" id="L295">        verify(logger).info(marker, &quot;type=HISTOGRAM, name=prefix.test.histogram, count=1, min=4, max=2, mean=3.0, &quot; +</span>
    -                &quot;stddev=5.0, p50=6.0, p75=7.0, p95=8.0, p98=9.0, p99=10.0, p999=11.0&quot;);
    -<span class="nc" id="L297">    }</span>
    -
    -    @Test
    -    public void reportsMeterValuesDefault() {
    -<span class="nc" id="L301">        final Meter meter = meter();</span>
    -<span class="nc" id="L302">        when(logger.isInfoEnabled(marker)).thenReturn(true);</span>
    -
    -<span class="nc" id="L304">        infoReporter().report(map(),</span>
    -<span class="nc" id="L305">                map(),</span>
    -<span class="nc" id="L306">                map(),</span>
    -<span class="nc" id="L307">                map(&quot;test.meter&quot;, meter),</span>
    -<span class="nc" id="L308">                map());</span>
    -
    -<span class="nc" id="L310">        verify(logger).info(marker, &quot;type=METER, name=prefix.test.meter, count=1, m1_rate=3.0, m5_rate=4.0, &quot; +</span>
    -                &quot;m15_rate=5.0, mean_rate=2.0, rate_unit=events/second&quot;);
    -<span class="nc" id="L312">    }</span>
    -
    -    @Test
    -    public void reportsTimerValuesDefault() {
    -<span class="nc" id="L316">        final Timer timer = timer();</span>
    -<span class="nc" id="L317">        when(logger.isInfoEnabled(marker)).thenReturn(true);</span>
    -
    -<span class="nc" id="L319">        infoReporter().report(map(),</span>
    -<span class="nc" id="L320">                map(),</span>
    -<span class="nc" id="L321">                map(),</span>
    -<span class="nc" id="L322">                map(),</span>
    -<span class="nc" id="L323">                map(&quot;test.another.timer&quot;, timer));</span>
    -
    -<span class="nc" id="L325">        verify(logger).info(marker, &quot;type=TIMER, name=prefix.test.another.timer, count=1, min=300.0, max=100.0, &quot; +</span>
    -                &quot;mean=200.0, stddev=400.0, p50=500.0, p75=600.0, p95=700.0, p98=800.0, p99=900.0, p999=1000.0,&quot; +
    -                &quot; m1_rate=3.0, m5_rate=4.0, m15_rate=5.0, mean_rate=2.0, rate_unit=events/second, duration_unit=milliseconds&quot;);
    -<span class="nc" id="L328">    }</span>
    -
    -
    -    @Test
    -    public void reportsAllMetricsDefault() {
    -<span class="nc" id="L333">        when(logger.isInfoEnabled(marker)).thenReturn(true);</span>
    -
    -<span class="nc" id="L335">        infoReporter().report(map(&quot;test.gauge&quot;, () -&gt; &quot;value&quot;),</span>
    -<span class="nc" id="L336">                map(&quot;test.counter&quot;, counter()),</span>
    -<span class="nc" id="L337">                map(&quot;test.histogram&quot;, histogram()),</span>
    -<span class="nc" id="L338">                map(&quot;test.meter&quot;, meter()),</span>
    -<span class="nc" id="L339">                map(&quot;test.timer&quot;, timer()));</span>
    -
    -<span class="nc" id="L341">        verify(logger).info(marker, &quot;type=GAUGE, name=prefix.test.gauge, value=value&quot;);</span>
    -<span class="nc" id="L342">        verify(logger).info(marker, &quot;type=COUNTER, name=prefix.test.counter, count=100&quot;);</span>
    -<span class="nc" id="L343">        verify(logger).info(marker, &quot;type=HISTOGRAM, name=prefix.test.histogram, count=1, min=4, max=2, mean=3.0, &quot; +</span>
    -                &quot;stddev=5.0, p50=6.0, p75=7.0, p95=8.0, p98=9.0, p99=10.0, p999=11.0&quot;);
    -<span class="nc" id="L345">        verify(logger).info(marker, &quot;type=METER, name=prefix.test.meter, count=1, m1_rate=3.0, m5_rate=4.0, &quot; +</span>
    -                &quot;m15_rate=5.0, mean_rate=2.0, rate_unit=events/second&quot;);
    -<span class="nc" id="L347">        verify(logger).info(marker, &quot;type=TIMER, name=prefix.test.timer, count=1, min=300.0, max=100.0, &quot; +</span>
    -                &quot;mean=200.0, stddev=400.0, p50=500.0, p75=600.0, p95=700.0, p98=800.0, p99=900.0, p999=1000.0,&quot; +
    -                &quot; m1_rate=3.0, m5_rate=4.0, m15_rate=5.0, mean_rate=2.0, rate_unit=events/second, duration_unit=milliseconds&quot;);
    -<span class="nc" id="L350">    }</span>
    -
    -    private &lt;T&gt; SortedMap&lt;String, T&gt; map() {
    -<span class="nc" id="L353">        return new TreeMap&lt;&gt;();</span>
    -    }
    -
    -    private &lt;T&gt; SortedMap&lt;String, T&gt; map(String name, T metric) {
    -<span class="nc" id="L357">        final TreeMap&lt;String, T&gt; map = new TreeMap&lt;&gt;();</span>
    -<span class="nc" id="L358">        map.put(name, metric);</span>
    -<span class="nc" id="L359">        return map;</span>
    -    }
    -
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoir.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoir.html
    deleted file mode 100644
    index 95be911e7f..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoir.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SlidingTimeWindowArrayReservoir</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">SlidingTimeWindowArrayReservoir</span></div><h1>SlidingTimeWindowArrayReservoir</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">164 of 164</td><td class="ctr2">0%</td><td class="bar">14 of 14</td><td class="ctr2">0%</td><td class="ctr1">15</td><td class="ctr2">15</td><td class="ctr1">37</td><td class="ctr2">37</td><td class="ctr1">8</td><td class="ctr2">8</td></tr></tfoot><tbody><tr><td id="a4"><a href="SlidingTimeWindowArrayReservoir.java.html#L41" class="el_method">SlidingTimeWindowArrayReservoir(long, TimeUnit, Clock)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="39" alt="39"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h1">8</td><td class="ctr2" id="i1">8</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a7"><a href="SlidingTimeWindowArrayReservoir.java.html#L60" class="el_method">update(long)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="113" height="10" title="37" alt="37"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="8" alt="8"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">5</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h0">9</td><td class="ctr2" id="i0">9</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="SlidingTimeWindowArrayReservoir.java.html#L80" class="el_method">getTick()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="104" height="10" title="34" alt="34"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="4" alt="4"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f1">3</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h3">6</td><td class="ctr2" id="i3">6</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a6"><a href="SlidingTimeWindowArrayReservoir.java.html#L91" class="el_method">trim()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="80" height="10" title="26" alt="26"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f2">2</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">7</td><td class="ctr2" id="i2">7</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a0"><a href="SlidingTimeWindowArrayReservoir.java.html#L74" class="el_method">getSnapshot()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="9" alt="9"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a5"><a href="SlidingTimeWindowArrayReservoir.java.html#L15" class="el_method">static {...}</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="7" alt="7"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a3"><a href="SlidingTimeWindowArrayReservoir.java.html#L31" class="el_method">SlidingTimeWindowArrayReservoir(long, TimeUnit)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="6" alt="6"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i5">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a2"><a href="SlidingTimeWindowArrayReservoir.java.html#L52" class="el_method">size()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="6" alt="6"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i6">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoir.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoir.java.html
    deleted file mode 100644
    index e8a2c9ba30..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoir.java.html
    +++ /dev/null
    @@ -1,102 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SlidingTimeWindowArrayReservoir.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">SlidingTimeWindowArrayReservoir.java</span></div><h1>SlidingTimeWindowArrayReservoir.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.util.concurrent.TimeUnit;
    -import java.util.concurrent.atomic.AtomicLong;
    -
    -/**
    - * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
    - * in the last {@code N} seconds (or other time unit).
    - */
    -public class SlidingTimeWindowArrayReservoir implements Reservoir {
    -    // allow for this many duplicate ticks before overwriting measurements
    -    private static final long COLLISION_BUFFER = 256L;
    -    // only trim on updating once every N
    -    private static final long TRIM_THRESHOLD = 256L;
    -<span class="nc" id="L15">    private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;</span>
    -
    -    private final Clock clock;
    -    private final ChunkedAssociativeLongArray measurements;
    -    private final long window;
    -    private final AtomicLong lastTick;
    -    private final AtomicLong count;
    -    private final long startTick;
    -
    -    /**
    -     * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given window of time.
    -     *
    -     * @param window     the window of time
    -     * @param windowUnit the unit of {@code window}
    -     */
    -    public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit) {
    -<span class="nc" id="L31">        this(window, windowUnit, Clock.defaultClock());</span>
    -<span class="nc" id="L32">    }</span>
    -
    -    /**
    -     * Creates a new {@link SlidingTimeWindowArrayReservoir} with the given clock and window of time.
    -     *
    -     * @param window     the window of time
    -     * @param windowUnit the unit of {@code window}
    -     * @param clock      the {@link Clock} to use
    -     */
    -<span class="nc" id="L41">    public SlidingTimeWindowArrayReservoir(long window, TimeUnit windowUnit, Clock clock) {</span>
    -<span class="nc" id="L42">        this.startTick = clock.getTick();</span>
    -<span class="nc" id="L43">        this.clock = clock;</span>
    -<span class="nc" id="L44">        this.measurements = new ChunkedAssociativeLongArray();</span>
    -<span class="nc" id="L45">        this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;</span>
    -<span class="nc" id="L46">        this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);</span>
    -<span class="nc" id="L47">        this.count = new AtomicLong();</span>
    -<span class="nc" id="L48">    }</span>
    -
    -    @Override
    -    public int size() {
    -<span class="nc" id="L52">        trim();</span>
    -<span class="nc" id="L53">        return measurements.size();</span>
    -    }
    -
    -    @Override
    -    public void update(long value) {
    -        long newTick;
    -        do {
    -<span class="nc bnc" id="L60" title="All 2 branches missed.">            if (count.incrementAndGet() % TRIM_THRESHOLD == 0L) {</span>
    -<span class="nc" id="L61">                trim();</span>
    -            }
    -<span class="nc" id="L63">            long lastTick = this.lastTick.get();</span>
    -<span class="nc" id="L64">            newTick = getTick();</span>
    -<span class="nc bnc" id="L65" title="All 2 branches missed.">            boolean longOverflow = newTick &lt; lastTick;</span>
    -<span class="nc bnc" id="L66" title="All 2 branches missed.">            if (longOverflow) {</span>
    -<span class="nc" id="L67">                measurements.clear();</span>
    -            }
    -<span class="nc bnc" id="L69" title="All 2 branches missed.">        } while (!measurements.put(newTick, value));</span>
    -<span class="nc" id="L70">    }</span>
    -
    -    @Override
    -    public Snapshot getSnapshot() {
    -<span class="nc" id="L74">        trim();</span>
    -<span class="nc" id="L75">        return new UniformSnapshot(measurements.values());</span>
    -    }
    -
    -    private long getTick() {
    -        for ( ;; ) {
    -<span class="nc" id="L80">            final long oldTick = lastTick.get();</span>
    -<span class="nc" id="L81">            final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;</span>
    -            // ensure the tick is strictly incrementing even if there are duplicate ticks
    -<span class="nc bnc" id="L83" title="All 2 branches missed.">            final long newTick = tick - oldTick &gt; 0L ? tick : oldTick + 1L;</span>
    -<span class="nc bnc" id="L84" title="All 2 branches missed.">            if (lastTick.compareAndSet(oldTick, newTick)) {</span>
    -<span class="nc" id="L85">                return newTick;</span>
    -            }
    -<span class="nc" id="L87">        }</span>
    -    }
    -
    -    void trim() {
    -<span class="nc" id="L91">        final long now = getTick();</span>
    -<span class="nc" id="L92">        final long windowStart = now - window;</span>
    -<span class="nc" id="L93">        final long windowEnd = now + CLEAR_BUFFER;</span>
    -<span class="nc bnc" id="L94" title="All 2 branches missed.">        if (windowStart &lt; windowEnd) {</span>
    -<span class="nc" id="L95">            measurements.trim(windowStart, windowEnd);</span>
    -        } else {
    -            // long overflow handling that can happen only after 1 year after class loading
    -<span class="nc" id="L98">            measurements.clear();</span>
    -        }
    -<span class="nc" id="L100">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoirTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoirTest.html
    deleted file mode 100644
    index 48fff1e914..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoirTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SlidingTimeWindowArrayReservoirTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">SlidingTimeWindowArrayReservoirTest</span></div><h1>SlidingTimeWindowArrayReservoirTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">471 of 471</td><td class="ctr2">0%</td><td class="bar">18 of 18</td><td class="ctr2">0%</td><td class="ctr1">14</td><td class="ctr2">14</td><td class="ctr1">74</td><td class="ctr2">74</td><td class="ctr1">5</td><td class="ctr2">5</td></tr></tfoot><tbody><tr><td id="a4"><a href="SlidingTimeWindowArrayReservoirTest.java.html#L85" class="el_method">testGetTickOverflow()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="252" alt="252"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="12" alt="12"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">7</td><td class="ctr2" id="g0">7</td><td class="ctr1" id="h0">31</td><td class="ctr2" id="i0">31</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="SlidingTimeWindowArrayReservoirTest.java.html#L58" class="el_method">comparisonResultsTest()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="91" alt="91"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="6" alt="6"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f1">4</td><td class="ctr2" id="g1">4</td><td class="ctr1" id="h1">19</td><td class="ctr2" id="i1">19</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="SlidingTimeWindowArrayReservoirTest.java.html#L34" class="el_method">boundsMeasurementsToATimeWindow()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="39" height="10" title="83" alt="83"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">15</td><td class="ctr2" id="i2">15</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a3"><a href="SlidingTimeWindowArrayReservoirTest.java.html#L20" class="el_method">storesMeasurementsWithDuplicateTicks()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="42" alt="42"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">8</td><td class="ctr2" id="i3">8</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a2"><a href="SlidingTimeWindowArrayReservoirTest.java.html#L16" class="el_method">SlidingTimeWindowArrayReservoirTest()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="3" alt="3"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoirTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoirTest.java.html
    deleted file mode 100644
    index 3dbb2e2030..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowArrayReservoirTest.java.html
    +++ /dev/null
    @@ -1,151 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SlidingTimeWindowArrayReservoirTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">SlidingTimeWindowArrayReservoirTest.java</span></div><h1>SlidingTimeWindowArrayReservoirTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -import static org.mockito.Mockito.mock;
    -import static org.mockito.Mockito.when;
    -import static java.util.concurrent.TimeUnit.NANOSECONDS;
    -
    -import org.junit.Test;
    -
    -import java.util.Arrays;
    -import java.util.Random;
    -import java.util.concurrent.ThreadLocalRandom;
    -import java.util.concurrent.atomic.AtomicLong;
    -
    -@SuppressWarnings(&quot;Duplicates&quot;)
    -<span class="nc" id="L16">public class SlidingTimeWindowArrayReservoirTest {</span>
    -
    -    @Test
    -    public void storesMeasurementsWithDuplicateTicks() {
    -<span class="nc" id="L20">        final Clock clock = mock(Clock.class);</span>
    -<span class="nc" id="L21">        final SlidingTimeWindowArrayReservoir reservoir = new SlidingTimeWindowArrayReservoir(10, NANOSECONDS, clock);</span>
    -
    -<span class="nc" id="L23">        when(clock.getTick()).thenReturn(20L);</span>
    -
    -<span class="nc" id="L25">        reservoir.update(1);</span>
    -<span class="nc" id="L26">        reservoir.update(2);</span>
    -
    -<span class="nc" id="L28">        assertThat(reservoir.getSnapshot().getValues())</span>
    -<span class="nc" id="L29">                .containsOnly(1, 2);</span>
    -<span class="nc" id="L30">    }</span>
    -
    -    @Test
    -    public void boundsMeasurementsToATimeWindow() {
    -<span class="nc" id="L34">        final Clock clock = mock(Clock.class);</span>
    -<span class="nc" id="L35">        final SlidingTimeWindowArrayReservoir reservoir = new SlidingTimeWindowArrayReservoir(10, NANOSECONDS, clock);</span>
    -
    -<span class="nc" id="L37">        when(clock.getTick()).thenReturn(0L);</span>
    -<span class="nc" id="L38">        reservoir.update(1);</span>
    -
    -<span class="nc" id="L40">        when(clock.getTick()).thenReturn(5L);</span>
    -<span class="nc" id="L41">        reservoir.update(2);</span>
    -
    -<span class="nc" id="L43">        when(clock.getTick()).thenReturn(10L);</span>
    -<span class="nc" id="L44">        reservoir.update(3);</span>
    -
    -<span class="nc" id="L46">        when(clock.getTick()).thenReturn(15L);</span>
    -<span class="nc" id="L47">        reservoir.update(4);</span>
    -
    -<span class="nc" id="L49">        when(clock.getTick()).thenReturn(20L);</span>
    -<span class="nc" id="L50">        reservoir.update(5);</span>
    -
    -<span class="nc" id="L52">        assertThat(reservoir.getSnapshot().getValues())</span>
    -<span class="nc" id="L53">                .containsOnly(4, 5);</span>
    -<span class="nc" id="L54">    }</span>
    -
    -    @Test
    -    public void comparisonResultsTest() {
    -<span class="nc" id="L58">        int cycles = 1000000;</span>
    -<span class="nc" id="L59">        long time = (Long.MAX_VALUE / 256) - (long) (cycles * 0.5);</span>
    -<span class="nc" id="L60">        ManualClock manualClock = new ManualClock();</span>
    -<span class="nc" id="L61">        manualClock.addNanos(time);</span>
    -<span class="nc" id="L62">        int window = 300;</span>
    -<span class="nc" id="L63">        Random random = new Random(ThreadLocalRandom.current().nextInt());</span>
    -
    -<span class="nc" id="L65">        SlidingTimeWindowReservoir treeReservoir = new SlidingTimeWindowReservoir(window, NANOSECONDS, manualClock);</span>
    -<span class="nc" id="L66">        SlidingTimeWindowArrayReservoir arrayReservoir = new SlidingTimeWindowArrayReservoir(window, NANOSECONDS, manualClock);</span>
    -
    -<span class="nc bnc" id="L68" title="All 2 branches missed.">        for (int i = 0; i &lt; cycles; i++) {</span>
    -<span class="nc" id="L69">            manualClock.addNanos(1);</span>
    -<span class="nc" id="L70">            treeReservoir.update(i);</span>
    -<span class="nc" id="L71">            arrayReservoir.update(i);</span>
    -<span class="nc bnc" id="L72" title="All 2 branches missed.">            if (random.nextDouble() &lt; 0.01) {</span>
    -<span class="nc" id="L73">                long[] treeValues = treeReservoir.getSnapshot().getValues();</span>
    -<span class="nc" id="L74">                long[] arrValues = arrayReservoir.getSnapshot().getValues();</span>
    -<span class="nc" id="L75">                assertThat(arrValues).isEqualTo(treeValues);</span>
    -            }
    -<span class="nc bnc" id="L77" title="All 2 branches missed.">            if (random.nextDouble() &lt; 0.05) {</span>
    -<span class="nc" id="L78">                assertThat(arrayReservoir.size()).isEqualTo(treeReservoir.size());</span>
    -            }
    -        }
    -<span class="nc" id="L81">    }</span>
    -
    -    @Test
    -    public void testGetTickOverflow() {
    -<span class="nc" id="L85">        final Random random = new Random(0);</span>
    -<span class="nc" id="L86">        final int window = 128;</span>
    -<span class="nc" id="L87">        AtomicLong counter = new AtomicLong(0L);</span>
    -
    -        // Note: 'threshold' defines the number of updates submitted to the reservoir after overflowing
    -<span class="nc bnc" id="L90" title="All 2 branches missed.">        for (int threshold : Arrays.asList(0, 1, 2, 127, 128, 129, 255, 256, 257)) {</span>
    -
    -            // Note: 'updatePerTick' defines the number of updates submitted to the reservoir between each tick
    -<span class="nc bnc" id="L93" title="All 2 branches missed.">            for (int updatesPerTick : Arrays.asList(1, 2, 127, 128, 129, 255, 256, 257)) {</span>
    -                //logger.info(&quot;Executing test: threshold={}, updatesPerTick={}&quot;, threshold, updatesPerTick);
    -
    -                // Set the clock to overflow in (2*window+1)ns
    -<span class="nc" id="L97">                final ManualClock clock = new ManualClock();</span>
    -<span class="nc" id="L98">                clock.addNanos(Long.MAX_VALUE / 256 - 2 * window - clock.getTick());</span>
    -<span class="nc" id="L99">                assertThat(clock.getTick() * 256).isGreaterThan(0);</span>
    -
    -                // Create the reservoir
    -<span class="nc" id="L102">                final SlidingTimeWindowArrayReservoir reservoir = new SlidingTimeWindowArrayReservoir(window, NANOSECONDS, clock);</span>
    -<span class="nc" id="L103">                int updatesAfterThreshold = 0;</span>
    -                while (true) {
    -                    // Update the reservoir
    -<span class="nc bnc" id="L106" title="All 2 branches missed.">                    for (int i = 0; i &lt; updatesPerTick; i++) {</span>
    -<span class="nc" id="L107">                        long l = counter.incrementAndGet();</span>
    -<span class="nc" id="L108">                        reservoir.update(l);</span>
    -                    }
    -
    -                    // Randomly check the reservoir size
    -<span class="nc bnc" id="L112" title="All 2 branches missed.">                    if (random.nextDouble() &lt; 0.1) {</span>
    -<span class="nc" id="L113">                        assertThat(reservoir.size())</span>
    -<span class="nc" id="L114">                                .as(&quot;Bad reservoir size with: threshold=%d, updatesPerTick=%d&quot;, threshold, updatesPerTick)</span>
    -<span class="nc" id="L115">                                .isLessThanOrEqualTo(window * 256);</span>
    -                    }
    -
    -                    // Update the clock
    -<span class="nc" id="L119">                    clock.addNanos(1);</span>
    -
    -                    // If the clock has overflowed start counting updates
    -<span class="nc bnc" id="L122" title="All 2 branches missed.">                    if ((clock.getTick() * 256) &lt; 0) {</span>
    -<span class="nc bnc" id="L123" title="All 2 branches missed.">                        if (updatesAfterThreshold++ &gt;= threshold) {</span>
    -<span class="nc" id="L124">                            break;</span>
    -                        }
    -                    }
    -                }
    -
    -                // Check the final reservoir size
    -<span class="nc" id="L130">                assertThat(reservoir.size())</span>
    -<span class="nc" id="L131">                        .as(&quot;Bad final reservoir size with: threshold=%d, updatesPerTick=%d&quot;, threshold, updatesPerTick)</span>
    -<span class="nc" id="L132">                        .isLessThanOrEqualTo(window * 256);</span>
    -
    -                // Advance the clock far enough to clear the reservoir.  Note that here the window only loosely defines
    -                // the reservoir window; when updatesPerTick is greater than 128 the sliding window will always be well
    -                // ahead of the current clock time, and advances in getTick while in trim (called randomly above from
    -                // size and every 256 updates).  Until the clock &quot;catches up&quot; advancing the clock will have no effect on
    -                // the reservoir, and reservoir.size() will merely move the window forward 1/256th of a ns - as such, an
    -                // arbitrary increment of 1s here was used instead to advance the clock well beyond any updates recorded
    -                // above.
    -<span class="nc" id="L141">                clock.addSeconds(1);</span>
    -
    -                // The reservoir should now be empty
    -<span class="nc" id="L144">                assertThat(reservoir.size())</span>
    -<span class="nc" id="L145">                        .as(&quot;Bad reservoir size after delay with: threshold=%d, updatesPerTick=%d&quot;, threshold, updatesPerTick)</span>
    -<span class="nc" id="L146">                        .isEqualTo(0);</span>
    -<span class="nc" id="L147">            }</span>
    -<span class="nc" id="L148">        }</span>
    -<span class="nc" id="L149">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAverages.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAverages.html
    deleted file mode 100644
    index 2320b6e746..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAverages.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SlidingTimeWindowMovingAverages</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">SlidingTimeWindowMovingAverages</span></div><h1>SlidingTimeWindowMovingAverages</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">336 of 336</td><td class="ctr2">0%</td><td class="bar">22 of 22</td><td class="ctr2">0%</td><td class="ctr1">25</td><td class="ctr2">25</td><td class="ctr1">70</td><td class="ctr2">70</td><td class="ctr1">14</td><td class="ctr2">14</td></tr></tfoot><tbody><tr><td id="a11"><a href="SlidingTimeWindowMovingAverages.java.html#L180" class="el_method">sumBuckets(Instant, int)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="74" alt="74"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f3">2</td><td class="ctr2" id="g3">2</td><td class="ctr1" id="h0">13</td><td class="ctr2" id="i0">13</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a9"><a href="SlidingTimeWindowMovingAverages.java.html#L77" class="el_method">SlidingTimeWindowMovingAverages(Clock)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="81" height="10" title="50" alt="50"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f4">2</td><td class="ctr2" id="g4">2</td><td class="ctr1" id="h1">12</td><td class="ctr2" id="i1">12</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="SlidingTimeWindowMovingAverages.java.html#L145" class="el_method">cleanOldBuckets(Instant)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="76" height="10" title="47" alt="47"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="4" alt="4"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f1">3</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h2">12</td><td class="ctr2" id="i2">12</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a1"><a href="SlidingTimeWindowMovingAverages.java.html#L163" class="el_method">cleanBucketRange(int, int)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="71" height="10" title="44" alt="44"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="8" alt="8"/></td><td class="ctr2" id="e3">0%</td><td class="ctr1" id="f0">5</td><td class="ctr2" id="g0">5</td><td class="ctr1" id="h4">8</td><td class="ctr2" id="i4">8</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a12"><a href="SlidingTimeWindowMovingAverages.java.html#L99" class="el_method">tickIfNecessary()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="69" height="10" title="43" alt="43"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="4" alt="4"/></td><td class="ctr2" id="e4">0%</td><td class="ctr1" id="f2">3</td><td class="ctr2" id="g2">3</td><td class="ctr1" id="h3">10</td><td class="ctr2" id="i3">10</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a6"><a href="SlidingTimeWindowMovingAverages.java.html#L130" class="el_method">getMinuteRate(int)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="18" alt="18"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i6">2</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a10"><a href="SlidingTimeWindowMovingAverages.java.html#L29" class="el_method">static {...}</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="14" alt="14"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h5">3</td><td class="ctr2" id="i5">3</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a7"><a href="SlidingTimeWindowMovingAverages.java.html#L139" class="el_method">normalizeIndex(int)</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="12" alt="12"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="2" alt="2"/></td><td class="ctr2" id="e5">0%</td><td class="ctr1" id="f5">2</td><td class="ctr2" id="g5">2</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i7">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a13"><a href="SlidingTimeWindowMovingAverages.java.html#L94" class="el_method">update(long)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="9" alt="9"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i8">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a0"><a href="SlidingTimeWindowMovingAverages.java.html#L135" class="el_method">calculateIndexOfTick(Instant)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="9" alt="9"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h10">1</td><td class="ctr2" id="i10">1</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a8"><a href="SlidingTimeWindowMovingAverages.java.html#L69" class="el_method">SlidingTimeWindowMovingAverages()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="4" alt="4"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a3"><a href="SlidingTimeWindowMovingAverages.java.html#L116" class="el_method">getM15Rate()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="4" alt="4"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">1</td><td class="ctr2" id="i11">1</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a5"><a href="SlidingTimeWindowMovingAverages.java.html#L121" class="el_method">getM5Rate()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="4" alt="4"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i12">1</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a4"><a href="SlidingTimeWindowMovingAverages.java.html#L126" class="el_method">getM1Rate()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="4" alt="4"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h13">1</td><td class="ctr2" id="i13">1</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAverages.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAverages.java.html
    deleted file mode 100644
    index 150a7baa1d..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAverages.java.html
    +++ /dev/null
    @@ -1,198 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SlidingTimeWindowMovingAverages.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">SlidingTimeWindowMovingAverages.java</span></div><h1>SlidingTimeWindowMovingAverages.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.time.Duration;
    -import java.time.Instant;
    -import java.util.ArrayList;
    -import java.util.concurrent.TimeUnit;
    -import java.util.concurrent.atomic.AtomicLong;
    -import java.util.concurrent.atomic.LongAdder;
    -
    -/**
    - * A triple of simple moving average rates (one, five and fifteen minutes rates) as needed by {@link Meter}.
    - * &lt;p&gt;
    - * The averages are unweighted, i.e. they include strictly only the events in the
    - * sliding time window, every event having the same weight. Unlike the
    - * the more widely used {@link ExponentialMovingAverages} implementation,
    - * with this class the moving average rate drops immediately to zero if the last
    - * marked event is older than the time window.
    - * &lt;p&gt;
    - * A {@link Meter} with {@link SlidingTimeWindowMovingAverages} works similarly to
    - * a {@link Histogram} with an {@link SlidingTimeWindowArrayReservoir}, but as a Meter
    - * needs to keep track only of the count of events (not the events itself), the memory
    - * overhead is much smaller. SlidingTimeWindowMovingAverages uses buckets with just one
    - * counter to accumulate the number of events (one bucket per seconds, giving 900 buckets
    - * for the 15 minutes time window).
    - */
    -public class SlidingTimeWindowMovingAverages implements MovingAverages {
    -
    -    private static final long TIME_WINDOW_DURATION_MINUTES = 15;
    -<span class="nc" id="L29">    private static final long TICK_INTERVAL = TimeUnit.SECONDS.toNanos(1);</span>
    -<span class="nc" id="L30">    private static final Duration TIME_WINDOW_DURATION = Duration.ofMinutes(TIME_WINDOW_DURATION_MINUTES);</span>
    -
    -    // package private for the benefit of the unit test
    -<span class="nc" id="L33">    static final int NUMBER_OF_BUCKETS = (int) (TIME_WINDOW_DURATION.toNanos() / TICK_INTERVAL);</span>
    -
    -    private final AtomicLong lastTick;
    -    private final Clock clock;
    -
    -    /**
    -     * One counter per time bucket/slot (i.e. per second, see TICK_INTERVAL) for the entire
    -     * time window (i.e. 15 minutes, see TIME_WINDOW_DURATION_MINUTES)
    -     */
    -    private ArrayList&lt;LongAdder&gt; buckets;
    -
    -    /**
    -     * Index into buckets, pointing at the bucket containing the oldest counts
    -     */
    -    private int oldestBucketIndex;
    -
    -    /**
    -     * Index into buckets, pointing at the bucket with the count for the current time (tick)
    -     */
    -    private int currentBucketIndex;
    -
    -    /**
    -     * Instant at creation time of the time window. Used to calculate the currentBucketIndex
    -     * for the instant of a given tick (instant modulo time window duration)
    -     */
    -    private final Instant bucketBaseTime;
    -
    -    /**
    -     * Instant of the bucket with index oldestBucketIndex
    -     */
    -    Instant oldestBucketTime;
    -
    -    /**
    -     * Creates a new {@link SlidingTimeWindowMovingAverages}.
    -     */
    -    public SlidingTimeWindowMovingAverages() {
    -<span class="nc" id="L69">        this(Clock.defaultClock());</span>
    -<span class="nc" id="L70">    }</span>
    -
    -    /**
    -     * Creates a new {@link SlidingTimeWindowMovingAverages}.
    -     *
    -     * @param clock the clock to use for the meter ticks
    -     */
    -<span class="nc" id="L77">    public SlidingTimeWindowMovingAverages(Clock clock) {</span>
    -<span class="nc" id="L78">        this.clock = clock;</span>
    -<span class="nc" id="L79">        final long startTime = clock.getTick();</span>
    -<span class="nc" id="L80">        lastTick = new AtomicLong(startTime);</span>
    -
    -<span class="nc" id="L82">        buckets = new ArrayList&lt;&gt;(NUMBER_OF_BUCKETS);</span>
    -<span class="nc bnc" id="L83" title="All 2 branches missed.">        for (int i = 0; i &lt; NUMBER_OF_BUCKETS; i++) {</span>
    -<span class="nc" id="L84">            buckets.add(new LongAdder());</span>
    -        }
    -<span class="nc" id="L86">        bucketBaseTime = Instant.ofEpochSecond(0L, startTime);</span>
    -<span class="nc" id="L87">        oldestBucketTime = bucketBaseTime;</span>
    -<span class="nc" id="L88">        oldestBucketIndex = 0;</span>
    -<span class="nc" id="L89">        currentBucketIndex = 0;</span>
    -<span class="nc" id="L90">    }</span>
    -
    -    @Override
    -    public void update(long n) {
    -<span class="nc" id="L94">        buckets.get(currentBucketIndex).add(n);</span>
    -<span class="nc" id="L95">    }</span>
    -
    -    @Override
    -    public void tickIfNecessary() {
    -<span class="nc" id="L99">        final long oldTick = lastTick.get();</span>
    -<span class="nc" id="L100">        final long newTick = clock.getTick();</span>
    -<span class="nc" id="L101">        final long age = newTick - oldTick;</span>
    -<span class="nc bnc" id="L102" title="All 2 branches missed.">        if (age &gt;= TICK_INTERVAL) {</span>
    -            // - the newTick doesn't fall into the same slot as the oldTick anymore
    -            // - newLastTick is the lower border time of the new currentBucketIndex slot
    -<span class="nc" id="L105">            final long newLastTick = newTick - age % TICK_INTERVAL;</span>
    -<span class="nc bnc" id="L106" title="All 2 branches missed.">            if (lastTick.compareAndSet(oldTick, newLastTick)) {</span>
    -<span class="nc" id="L107">                Instant currentInstant = Instant.ofEpochSecond(0L, newLastTick);</span>
    -<span class="nc" id="L108">                currentBucketIndex = normalizeIndex(calculateIndexOfTick(currentInstant));</span>
    -<span class="nc" id="L109">                cleanOldBuckets(currentInstant);</span>
    -            }
    -        }
    -<span class="nc" id="L112">    }</span>
    -
    -    @Override
    -    public double getM15Rate() {
    -<span class="nc" id="L116">        return getMinuteRate(15);</span>
    -    }
    -
    -    @Override
    -    public double getM5Rate() {
    -<span class="nc" id="L121">        return getMinuteRate(5);</span>
    -    }
    -
    -    @Override
    -    public double getM1Rate() {
    -<span class="nc" id="L126">        return getMinuteRate(1);</span>
    -    }
    -
    -    private double getMinuteRate(int minutes) {
    -<span class="nc" id="L130">        Instant now = Instant.ofEpochSecond(0L, lastTick.get());</span>
    -<span class="nc" id="L131">        return sumBuckets(now, (int) (TimeUnit.MINUTES.toNanos(minutes) / TICK_INTERVAL));</span>
    -    }
    -
    -    int calculateIndexOfTick(Instant tickTime) {
    -<span class="nc" id="L135">        return (int) (Duration.between(bucketBaseTime, tickTime).toNanos() / TICK_INTERVAL);</span>
    -    }
    -
    -    int normalizeIndex(int index) {
    -<span class="nc" id="L139">        int mod = index % NUMBER_OF_BUCKETS;</span>
    -<span class="nc bnc" id="L140" title="All 2 branches missed.">        return mod &gt;= 0 ? mod : mod + NUMBER_OF_BUCKETS;</span>
    -    }
    -
    -    private void cleanOldBuckets(Instant currentTick) {
    -        int newOldestIndex;
    -<span class="nc" id="L145">        Instant oldestStillNeededTime = currentTick.minus(TIME_WINDOW_DURATION).plusNanos(TICK_INTERVAL);</span>
    -<span class="nc" id="L146">        Instant youngestNotInWindow = oldestBucketTime.plus(TIME_WINDOW_DURATION);</span>
    -<span class="nc bnc" id="L147" title="All 2 branches missed.">        if (oldestStillNeededTime.isAfter(youngestNotInWindow)) {</span>
    -            // there was no update() call for more than two whole TIME_WINDOW_DURATION
    -<span class="nc" id="L149">            newOldestIndex = oldestBucketIndex;</span>
    -<span class="nc" id="L150">            oldestBucketTime = currentTick;</span>
    -<span class="nc bnc" id="L151" title="All 2 branches missed.">        } else if (oldestStillNeededTime.isAfter(oldestBucketTime)) {</span>
    -<span class="nc" id="L152">            newOldestIndex = normalizeIndex(calculateIndexOfTick(oldestStillNeededTime));</span>
    -<span class="nc" id="L153">            oldestBucketTime = oldestStillNeededTime;</span>
    -        } else {
    -<span class="nc" id="L155">            return;</span>
    -        }
    -
    -<span class="nc" id="L158">        cleanBucketRange(oldestBucketIndex, newOldestIndex);</span>
    -<span class="nc" id="L159">        oldestBucketIndex = newOldestIndex;</span>
    -<span class="nc" id="L160">    }</span>
    -
    -    private void cleanBucketRange(int fromIndex, int toIndex) {
    -<span class="nc bnc" id="L163" title="All 2 branches missed.">        if (fromIndex &lt; toIndex) {</span>
    -<span class="nc bnc" id="L164" title="All 2 branches missed.">            for (int i = fromIndex; i &lt; toIndex; i++) {</span>
    -<span class="nc" id="L165">                buckets.get(i).reset();</span>
    -            }
    -        } else {
    -<span class="nc bnc" id="L168" title="All 2 branches missed.">            for (int i = fromIndex; i &lt; NUMBER_OF_BUCKETS; i++) {</span>
    -<span class="nc" id="L169">                buckets.get(i).reset();</span>
    -            }
    -<span class="nc bnc" id="L171" title="All 2 branches missed.">            for (int i = 0; i &lt; toIndex; i++) {</span>
    -<span class="nc" id="L172">                buckets.get(i).reset();</span>
    -            }
    -        }
    -<span class="nc" id="L175">    }</span>
    -
    -    private long sumBuckets(Instant toTime, int numberOfBuckets) {
    -
    -        // increment toIndex to include the current bucket into the sum
    -<span class="nc" id="L180">        int toIndex = normalizeIndex(calculateIndexOfTick(toTime) + 1);</span>
    -<span class="nc" id="L181">        int fromIndex = normalizeIndex(toIndex - numberOfBuckets);</span>
    -<span class="nc" id="L182">        LongAdder adder = new LongAdder();</span>
    -
    -<span class="nc bnc" id="L184" title="All 2 branches missed.">        if (fromIndex &lt; toIndex) {</span>
    -<span class="nc" id="L185">            buckets.stream()</span>
    -<span class="nc" id="L186">                    .skip(fromIndex)</span>
    -<span class="nc" id="L187">                    .limit(toIndex - fromIndex)</span>
    -<span class="nc" id="L188">                    .mapToLong(LongAdder::longValue)</span>
    -<span class="nc" id="L189">                    .forEach(adder::add);</span>
    -        } else {
    -<span class="nc" id="L191">            buckets.stream().limit(toIndex).mapToLong(LongAdder::longValue).forEach(adder::add);</span>
    -<span class="nc" id="L192">            buckets.stream().skip(fromIndex).mapToLong(LongAdder::longValue).forEach(adder::add);</span>
    -        }
    -<span class="nc" id="L194">        long retval = adder.longValue();</span>
    -<span class="nc" id="L195">        return retval;</span>
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAveragesTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAveragesTest.html
    deleted file mode 100644
    index 63759cd4bf..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAveragesTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SlidingTimeWindowMovingAveragesTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">SlidingTimeWindowMovingAveragesTest</span></div><h1>SlidingTimeWindowMovingAveragesTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">412 of 412</td><td class="ctr2">0%</td><td class="bar">8 of 8</td><td class="ctr2">0%</td><td class="ctr1">15</td><td class="ctr2">15</td><td class="ctr1">78</td><td class="ctr2">78</td><td class="ctr1">11</td><td class="ctr2">11</td></tr></tfoot><tbody><tr><td id="a9"><a href="SlidingTimeWindowMovingAveragesTest.java.html#L27" class="el_method">normalizeIndex()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="61" alt="61"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h1">10</td><td class="ctr2" id="i1">10</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="SlidingTimeWindowMovingAveragesTest.java.html#L139" class="el_method">cleanup_window_wrap_around()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="116" height="10" title="59" alt="59"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h0">11</td><td class="ctr2" id="i0">11</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a7"><a href="SlidingTimeWindowMovingAveragesTest.java.html#L74" class="el_method">mark_first_cleanup()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="100" height="10" title="51" alt="51"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h2">10</td><td class="ctr2" id="i2">10</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a8"><a href="SlidingTimeWindowMovingAveragesTest.java.html#L53" class="el_method">mark_max_without_cleanup()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="98" height="10" title="50" alt="50"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h3">10</td><td class="ctr2" id="i3">10</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a6"><a href="SlidingTimeWindowMovingAveragesTest.java.html#L96" class="el_method">mark_10_values()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="92" height="10" title="47" alt="47"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f2">2</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h4">9</td><td class="ctr2" id="i4">9</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a5"><a href="SlidingTimeWindowMovingAveragesTest.java.html#L112" class="el_method">mark_1000_values()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="70" height="10" title="36" alt="36"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">0%</td><td class="ctr1" id="f3">2</td><td class="ctr2" id="g3">2</td><td class="ctr1" id="h5">7</td><td class="ctr2" id="i5">7</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a2"><a href="SlidingTimeWindowMovingAveragesTest.java.html#L126" class="el_method">cleanup_pause_shorter_than_window()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="59" height="10" title="30" alt="30"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">6</td><td class="ctr2" id="i6">6</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a1"><a href="SlidingTimeWindowMovingAveragesTest.java.html#L158" class="el_method">cleanup_pause_longer_than_two_windows()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="59" height="10" title="30" alt="30"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">6</td><td class="ctr2" id="i7">6</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a0"><a href="SlidingTimeWindowMovingAveragesTest.java.html#L44" class="el_method">calculateIndexOfTick()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="45" height="10" title="23" alt="23"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">4</td><td class="ctr2" id="i8">4</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a4"><a href="SlidingTimeWindowMovingAveragesTest.java.html#L19" class="el_method">init()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="22" alt="22"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">4</td><td class="ctr2" id="i9">4</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a10"><a href="SlidingTimeWindowMovingAveragesTest.java.html#L11" class="el_method">SlidingTimeWindowMovingAveragesTest()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="3" alt="3"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h10">1</td><td class="ctr2" id="i10">1</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAveragesTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAveragesTest.java.html
    deleted file mode 100644
    index 21018f5bf6..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowMovingAveragesTest.java.html
    +++ /dev/null
    @@ -1,167 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SlidingTimeWindowMovingAveragesTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">SlidingTimeWindowMovingAveragesTest.java</span></div><h1>SlidingTimeWindowMovingAveragesTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Before;
    -import org.junit.Test;
    -
    -import java.time.Instant;
    -
    -import static com.codahale.metrics.SlidingTimeWindowMovingAverages.NUMBER_OF_BUCKETS;
    -import static org.assertj.core.api.Assertions.assertThat;
    -
    -<span class="nc" id="L11">public class SlidingTimeWindowMovingAveragesTest {</span>
    -
    -    private ManualClock clock;
    -    private SlidingTimeWindowMovingAverages movingAverages;
    -    private Meter meter;
    -
    -    @Before
    -    public void init() {
    -<span class="nc" id="L19">        clock = new ManualClock();</span>
    -<span class="nc" id="L20">        movingAverages = new SlidingTimeWindowMovingAverages(clock);</span>
    -<span class="nc" id="L21">        meter = new Meter(movingAverages, clock);</span>
    -<span class="nc" id="L22">    }</span>
    -
    -    @Test
    -    public void normalizeIndex() {
    -
    -<span class="nc" id="L27">        SlidingTimeWindowMovingAverages stwm = new SlidingTimeWindowMovingAverages();</span>
    -
    -<span class="nc" id="L29">        assertThat(stwm.normalizeIndex(0)).isEqualTo(0);</span>
    -<span class="nc" id="L30">        assertThat(stwm.normalizeIndex(900)).isEqualTo(0);</span>
    -<span class="nc" id="L31">        assertThat(stwm.normalizeIndex(9000)).isEqualTo(0);</span>
    -<span class="nc" id="L32">        assertThat(stwm.normalizeIndex(-900)).isEqualTo(0);</span>
    -
    -<span class="nc" id="L34">        assertThat(stwm.normalizeIndex(1)).isEqualTo(1);</span>
    -
    -<span class="nc" id="L36">        assertThat(stwm.normalizeIndex(899)).isEqualTo(899);</span>
    -<span class="nc" id="L37">        assertThat(stwm.normalizeIndex(-1)).isEqualTo(899);</span>
    -<span class="nc" id="L38">        assertThat(stwm.normalizeIndex(-901)).isEqualTo(899);</span>
    -<span class="nc" id="L39">    }</span>
    -
    -    @Test
    -    public void calculateIndexOfTick() {
    -
    -<span class="nc" id="L44">        SlidingTimeWindowMovingAverages stwm = new SlidingTimeWindowMovingAverages(clock);</span>
    -
    -<span class="nc" id="L46">        assertThat(stwm.calculateIndexOfTick(Instant.ofEpochSecond(0L))).isEqualTo(0);</span>
    -<span class="nc" id="L47">        assertThat(stwm.calculateIndexOfTick(Instant.ofEpochSecond(1L))).isEqualTo(1);</span>
    -<span class="nc" id="L48">    }</span>
    -
    -    @Test
    -    public void mark_max_without_cleanup() {
    -
    -<span class="nc" id="L53">        int markCount = NUMBER_OF_BUCKETS;</span>
    -
    -        // compensate the first addSeconds in the loop; first tick should be at zero
    -<span class="nc" id="L56">        clock.addSeconds(-1);</span>
    -
    -<span class="nc bnc" id="L58" title="All 2 branches missed.">        for (int i = 0; i &lt; markCount; i++) {</span>
    -<span class="nc" id="L59">            clock.addSeconds(1);</span>
    -<span class="nc" id="L60">            meter.mark();</span>
    -        }
    -
    -        // verify that no cleanup happened yet
    -<span class="nc" id="L64">        assertThat(movingAverages.oldestBucketTime).isEqualTo(Instant.ofEpochSecond(0L));</span>
    -
    -<span class="nc" id="L66">        assertThat(meter.getOneMinuteRate()).isEqualTo(60.0);</span>
    -<span class="nc" id="L67">        assertThat(meter.getFiveMinuteRate()).isEqualTo(300.0);</span>
    -<span class="nc" id="L68">        assertThat(meter.getFifteenMinuteRate()).isEqualTo(900.0);</span>
    -<span class="nc" id="L69">    }</span>
    -
    -    @Test
    -    public void mark_first_cleanup() {
    -
    -<span class="nc" id="L74">        int markCount = NUMBER_OF_BUCKETS + 1;</span>
    -
    -        // compensate the first addSeconds in the loop; first tick should be at zero
    -<span class="nc" id="L77">        clock.addSeconds(-1);</span>
    -
    -<span class="nc bnc" id="L79" title="All 2 branches missed.">        for (int i = 0; i &lt; markCount; i++) {</span>
    -<span class="nc" id="L80">            clock.addSeconds(1);</span>
    -<span class="nc" id="L81">            meter.mark();</span>
    -        }
    -
    -        // verify that at least one cleanup happened
    -<span class="nc" id="L85">        assertThat(movingAverages.oldestBucketTime).isNotEqualTo(Instant.EPOCH);</span>
    -
    -<span class="nc" id="L87">        assertThat(meter.getOneMinuteRate()).isEqualTo(60.0);</span>
    -<span class="nc" id="L88">        assertThat(meter.getFiveMinuteRate()).isEqualTo(300.0);</span>
    -<span class="nc" id="L89">        assertThat(meter.getFifteenMinuteRate()).isEqualTo(900.0);</span>
    -<span class="nc" id="L90">    }</span>
    -
    -    @Test
    -    public void mark_10_values() {
    -
    -        // compensate the first addSeconds in the loop; first tick should be at zero
    -<span class="nc" id="L96">        clock.addSeconds(-1);</span>
    -
    -<span class="nc bnc" id="L98" title="All 2 branches missed.">        for (int i = 0; i &lt; 10; i++) {</span>
    -<span class="nc" id="L99">            clock.addSeconds(1);</span>
    -<span class="nc" id="L100">            meter.mark();</span>
    -        }
    -
    -<span class="nc" id="L103">        assertThat(meter.getCount()).isEqualTo(10L);</span>
    -<span class="nc" id="L104">        assertThat(meter.getOneMinuteRate()).isEqualTo(10.0);</span>
    -<span class="nc" id="L105">        assertThat(meter.getFiveMinuteRate()).isEqualTo(10.0);</span>
    -<span class="nc" id="L106">        assertThat(meter.getFifteenMinuteRate()).isEqualTo(10.0);</span>
    -<span class="nc" id="L107">    }</span>
    -
    -    @Test
    -    public void mark_1000_values() {
    -
    -<span class="nc bnc" id="L112" title="All 2 branches missed.">        for (int i = 0; i &lt; 1000; i++) {</span>
    -<span class="nc" id="L113">            clock.addSeconds(1);</span>
    -<span class="nc" id="L114">            meter.mark();</span>
    -        }
    -
    -        // only 60/300/900 of the 1000 events took place in the last 1/5/15 minute(s)
    -<span class="nc" id="L118">        assertThat(meter.getOneMinuteRate()).isEqualTo(60.0);</span>
    -<span class="nc" id="L119">        assertThat(meter.getFiveMinuteRate()).isEqualTo(300.0);</span>
    -<span class="nc" id="L120">        assertThat(meter.getFifteenMinuteRate()).isEqualTo(900.0);</span>
    -<span class="nc" id="L121">    }</span>
    -
    -    @Test
    -    public void cleanup_pause_shorter_than_window() {
    -
    -<span class="nc" id="L126">        meter.mark(10);</span>
    -
    -        // no mark for three minutes
    -<span class="nc" id="L129">        clock.addSeconds(180);</span>
    -<span class="nc" id="L130">        assertThat(meter.getOneMinuteRate()).isEqualTo(0.0);</span>
    -<span class="nc" id="L131">        assertThat(meter.getFiveMinuteRate()).isEqualTo(10.0);</span>
    -<span class="nc" id="L132">        assertThat(meter.getFifteenMinuteRate()).isEqualTo(10.0);</span>
    -<span class="nc" id="L133">    }</span>
    -
    -    @Test
    -    public void cleanup_window_wrap_around() {
    -
    -        // mark at 14:40 minutes of the 15 minute window...
    -<span class="nc" id="L139">        clock.addSeconds(880);</span>
    -<span class="nc" id="L140">        meter.mark(10);</span>
    -
    -        // and query at 15:30 minutes (the bucket index must have wrapped around)
    -<span class="nc" id="L143">        clock.addSeconds(50);</span>
    -<span class="nc" id="L144">        assertThat(meter.getOneMinuteRate()).isEqualTo(10.0);</span>
    -<span class="nc" id="L145">        assertThat(meter.getFiveMinuteRate()).isEqualTo(10.0);</span>
    -<span class="nc" id="L146">        assertThat(meter.getFifteenMinuteRate()).isEqualTo(10.0);</span>
    -
    -        // and query at 30:10 minutes (the bucket index must have wrapped around for the second time)
    -<span class="nc" id="L149">        clock.addSeconds(880);</span>
    -<span class="nc" id="L150">        assertThat(meter.getOneMinuteRate()).isEqualTo(0.0);</span>
    -<span class="nc" id="L151">        assertThat(meter.getFiveMinuteRate()).isEqualTo(0.0);</span>
    -<span class="nc" id="L152">        assertThat(meter.getFifteenMinuteRate()).isEqualTo(0.0);</span>
    -<span class="nc" id="L153">    }</span>
    -
    -    @Test
    -    public void cleanup_pause_longer_than_two_windows() {
    -
    -<span class="nc" id="L158">        meter.mark(10);</span>
    -
    -        // after forty minutes all rates should be zero
    -<span class="nc" id="L161">        clock.addSeconds(2400);</span>
    -<span class="nc" id="L162">        assertThat(meter.getOneMinuteRate()).isEqualTo(0.0);</span>
    -<span class="nc" id="L163">        assertThat(meter.getFiveMinuteRate()).isEqualTo(0.0);</span>
    -<span class="nc" id="L164">        assertThat(meter.getFifteenMinuteRate()).isEqualTo(0.0);</span>
    -<span class="nc" id="L165">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoir.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoir.html
    deleted file mode 100644
    index 31f61e4496..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoir.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SlidingTimeWindowReservoir</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">SlidingTimeWindowReservoir</span></div><h1>SlidingTimeWindowReservoir</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">159 of 159</td><td class="ctr2">0%</td><td class="bar">8 of 8</td><td class="ctr2">0%</td><td class="ctr1">12</td><td class="ctr2">12</td><td class="ctr1">33</td><td class="ctr2">33</td><td class="ctr1">8</td><td class="ctr2">8</td></tr></tfoot><tbody><tr><td id="a4"><a href="SlidingTimeWindowReservoir.java.html#L43" class="el_method">SlidingTimeWindowReservoir(long, TimeUnit, Clock)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="39" alt="39"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h0">8</td><td class="ctr2" id="i0">8</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a6"><a href="SlidingTimeWindowReservoir.java.html#L85" class="el_method">trim()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="116" height="10" title="38" alt="38"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h1">8</td><td class="ctr2" id="i1">8</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="SlidingTimeWindowReservoir.java.html#L74" class="el_method">getTick()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="104" height="10" title="34" alt="34"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">3</td><td class="ctr1" id="h2">6</td><td class="ctr2" id="i2">6</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a7"><a href="SlidingTimeWindowReservoir.java.html#L60" class="el_method">update(long)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="61" height="10" title="20" alt="20"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f2">2</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h3">4</td><td class="ctr2" id="i3">4</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a0"><a href="SlidingTimeWindowReservoir.java.html#L68" class="el_method">getSnapshot()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="27" height="10" title="9" alt="9"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a5"><a href="SlidingTimeWindowReservoir.java.html#L17" class="el_method">static {...}</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="7" alt="7"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a3"><a href="SlidingTimeWindowReservoir.java.html#L33" class="el_method">SlidingTimeWindowReservoir(long, TimeUnit)</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="6" alt="6"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i5">2</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a2"><a href="SlidingTimeWindowReservoir.java.html#L54" class="el_method">size()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="6" alt="6"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i6">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoir.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoir.java.html
    deleted file mode 100644
    index acafbad34f..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoir.java.html
    +++ /dev/null
    @@ -1,96 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SlidingTimeWindowReservoir.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">SlidingTimeWindowReservoir.java</span></div><h1>SlidingTimeWindowReservoir.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.util.concurrent.ConcurrentSkipListMap;
    -import java.util.concurrent.TimeUnit;
    -import java.util.concurrent.atomic.AtomicLong;
    -
    -/**
    - * A {@link Reservoir} implementation backed by a sliding window that stores only the measurements made
    - * in the last {@code N} seconds (or other time unit).
    - */
    -public class SlidingTimeWindowReservoir implements Reservoir {
    -    // allow for this many duplicate ticks before overwriting measurements
    -    private static final int COLLISION_BUFFER = 256;
    -    // only trim on updating once every N
    -    private static final int TRIM_THRESHOLD = 256;
    -    // offsets the front of the time window for the purposes of clearing the buffer in trim
    -<span class="nc" id="L17">    private static final long CLEAR_BUFFER = TimeUnit.HOURS.toNanos(1) * COLLISION_BUFFER;</span>
    -
    -    private final Clock clock;
    -    private final ConcurrentSkipListMap&lt;Long, Long&gt; measurements;
    -    private final long window;
    -    private final AtomicLong lastTick;
    -    private final AtomicLong count;
    -    private final long startTick;
    -
    -    /**
    -     * Creates a new {@link SlidingTimeWindowReservoir} with the given window of time.
    -     *
    -     * @param window     the window of time
    -     * @param windowUnit the unit of {@code window}
    -     */
    -    public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit) {
    -<span class="nc" id="L33">        this(window, windowUnit, Clock.defaultClock());</span>
    -<span class="nc" id="L34">    }</span>
    -
    -    /**
    -     * Creates a new {@link SlidingTimeWindowReservoir} with the given clock and window of time.
    -     *
    -     * @param window     the window of time
    -     * @param windowUnit the unit of {@code window}
    -     * @param clock      the {@link Clock} to use
    -     */
    -<span class="nc" id="L43">    public SlidingTimeWindowReservoir(long window, TimeUnit windowUnit, Clock clock) {</span>
    -<span class="nc" id="L44">        this.startTick = clock.getTick();</span>
    -<span class="nc" id="L45">        this.clock = clock;</span>
    -<span class="nc" id="L46">        this.measurements = new ConcurrentSkipListMap&lt;&gt;();</span>
    -<span class="nc" id="L47">        this.window = windowUnit.toNanos(window) * COLLISION_BUFFER;</span>
    -<span class="nc" id="L48">        this.lastTick = new AtomicLong((clock.getTick() - startTick) * COLLISION_BUFFER);</span>
    -<span class="nc" id="L49">        this.count = new AtomicLong();</span>
    -<span class="nc" id="L50">    }</span>
    -
    -    @Override
    -    public int size() {
    -<span class="nc" id="L54">        trim();</span>
    -<span class="nc" id="L55">        return measurements.size();</span>
    -    }
    -
    -    @Override
    -    public void update(long value) {
    -<span class="nc bnc" id="L60" title="All 2 branches missed.">        if (count.incrementAndGet() % TRIM_THRESHOLD == 0) {</span>
    -<span class="nc" id="L61">            trim();</span>
    -        }
    -<span class="nc" id="L63">        measurements.put(getTick(), value);</span>
    -<span class="nc" id="L64">    }</span>
    -
    -    @Override
    -    public Snapshot getSnapshot() {
    -<span class="nc" id="L68">        trim();</span>
    -<span class="nc" id="L69">        return new UniformSnapshot(measurements.values());</span>
    -    }
    -
    -    private long getTick() {
    -        for ( ;; ) {
    -<span class="nc" id="L74">            final long oldTick = lastTick.get();</span>
    -<span class="nc" id="L75">            final long tick = (clock.getTick() - startTick) * COLLISION_BUFFER;</span>
    -            // ensure the tick is strictly incrementing even if there are duplicate ticks
    -<span class="nc bnc" id="L77" title="All 2 branches missed.">            final long newTick = tick - oldTick &gt; 0 ? tick : oldTick + 1;</span>
    -<span class="nc bnc" id="L78" title="All 2 branches missed.">            if (lastTick.compareAndSet(oldTick, newTick)) {</span>
    -<span class="nc" id="L79">                return newTick;</span>
    -            }
    -<span class="nc" id="L81">        }</span>
    -    }
    -
    -    private void trim() {
    -<span class="nc" id="L85">        final long now = getTick();</span>
    -<span class="nc" id="L86">        final long windowStart = now - window;</span>
    -<span class="nc" id="L87">        final long windowEnd = now + CLEAR_BUFFER;</span>
    -<span class="nc bnc" id="L88" title="All 2 branches missed.">        if (windowStart &lt; windowEnd) {</span>
    -<span class="nc" id="L89">            measurements.headMap(windowStart).clear();</span>
    -<span class="nc" id="L90">            measurements.tailMap(windowEnd).clear();</span>
    -        } else {
    -<span class="nc" id="L92">            measurements.subMap(windowEnd, windowStart).clear();</span>
    -        }
    -<span class="nc" id="L94">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoirTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoirTest.html
    deleted file mode 100644
    index 87aad5f2c4..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoirTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SlidingTimeWindowReservoirTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">SlidingTimeWindowReservoirTest</span></div><h1>SlidingTimeWindowReservoirTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">380 of 380</td><td class="ctr2">0%</td><td class="bar">12 of 12</td><td class="ctr2">0%</td><td class="ctr1">10</td><td class="ctr2">10</td><td class="ctr1">54</td><td class="ctr2">54</td><td class="ctr1">4</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a3"><a href="SlidingTimeWindowReservoirTest.java.html#L56" class="el_method">testGetTickOverflow()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="244" alt="244"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="12" alt="12"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">7</td><td class="ctr2" id="g0">7</td><td class="ctr1" id="h0">29</td><td class="ctr2" id="i0">29</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="SlidingTimeWindowReservoirTest.java.html#L30" class="el_method">boundsMeasurementsToATimeWindow()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="44" height="10" title="91" alt="91"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">16</td><td class="ctr2" id="i1">16</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="SlidingTimeWindowReservoirTest.java.html#L16" class="el_method">storesMeasurementsWithDuplicateTicks()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="42" alt="42"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">8</td><td class="ctr2" id="i2">8</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a1"><a href="SlidingTimeWindowReservoirTest.java.html#L13" class="el_method">SlidingTimeWindowReservoirTest()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="3" alt="3"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoirTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoirTest.java.html
    deleted file mode 100644
    index 23c3c22e19..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingTimeWindowReservoirTest.java.html
    +++ /dev/null
    @@ -1,120 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SlidingTimeWindowReservoirTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">SlidingTimeWindowReservoirTest.java</span></div><h1>SlidingTimeWindowReservoirTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -
    -import java.util.Arrays;
    -import java.util.Random;
    -
    -import static java.util.concurrent.TimeUnit.NANOSECONDS;
    -import static org.assertj.core.api.Assertions.assertThat;
    -import static org.mockito.Mockito.mock;
    -import static org.mockito.Mockito.when;
    -
    -<span class="nc" id="L13">public class SlidingTimeWindowReservoirTest {</span>
    -    @Test
    -    public void storesMeasurementsWithDuplicateTicks() {
    -<span class="nc" id="L16">        final Clock clock = mock(Clock.class);</span>
    -<span class="nc" id="L17">        final SlidingTimeWindowReservoir reservoir = new SlidingTimeWindowReservoir(10, NANOSECONDS, clock);</span>
    -
    -<span class="nc" id="L19">        when(clock.getTick()).thenReturn(20L);</span>
    -
    -<span class="nc" id="L21">        reservoir.update(1);</span>
    -<span class="nc" id="L22">        reservoir.update(2);</span>
    -
    -<span class="nc" id="L24">        assertThat(reservoir.getSnapshot().getValues())</span>
    -<span class="nc" id="L25">                .containsOnly(1, 2);</span>
    -<span class="nc" id="L26">    }</span>
    -
    -    @Test
    -    public void boundsMeasurementsToATimeWindow() {
    -<span class="nc" id="L30">        final Clock clock = mock(Clock.class);</span>
    -<span class="nc" id="L31">        when(clock.getTick()).thenReturn(0L);</span>
    -
    -<span class="nc" id="L33">        final SlidingTimeWindowReservoir reservoir = new SlidingTimeWindowReservoir(10, NANOSECONDS, clock);</span>
    -
    -<span class="nc" id="L35">        when(clock.getTick()).thenReturn(0L);</span>
    -<span class="nc" id="L36">        reservoir.update(1);</span>
    -
    -<span class="nc" id="L38">        when(clock.getTick()).thenReturn(5L);</span>
    -<span class="nc" id="L39">        reservoir.update(2);</span>
    -
    -<span class="nc" id="L41">        when(clock.getTick()).thenReturn(10L);</span>
    -<span class="nc" id="L42">        reservoir.update(3);</span>
    -
    -<span class="nc" id="L44">        when(clock.getTick()).thenReturn(15L);</span>
    -<span class="nc" id="L45">        reservoir.update(4);</span>
    -
    -<span class="nc" id="L47">        when(clock.getTick()).thenReturn(20L);</span>
    -<span class="nc" id="L48">        reservoir.update(5);</span>
    -
    -<span class="nc" id="L50">        assertThat(reservoir.getSnapshot().getValues())</span>
    -<span class="nc" id="L51">                .containsOnly(4, 5);</span>
    -<span class="nc" id="L52">    }</span>
    -
    -    @Test
    -    public void testGetTickOverflow() {
    -<span class="nc" id="L56">        final Random random = new Random(0);</span>
    -<span class="nc" id="L57">        final int window = 128;</span>
    -
    -        // Note: 'threshold' defines the number of updates submitted to the reservoir after overflowing
    -<span class="nc bnc" id="L60" title="All 2 branches missed.">        for (int threshold : Arrays.asList(0, 1, 2, 127, 128, 129, 255, 256, 257)) {</span>
    -
    -            // Note: 'updatePerTick' defines the number of updates submitted to the reservoir between each tick
    -<span class="nc bnc" id="L63" title="All 2 branches missed.">            for (int updatesPerTick : Arrays.asList(1, 2, 127, 128, 129, 255, 256, 257)) {</span>
    -                //logger.info(&quot;Executing test: threshold={}, updatesPerTick={}&quot;, threshold, updatesPerTick);
    -
    -<span class="nc" id="L66">                final ManualClock clock = new ManualClock();</span>
    -
    -                // Create the reservoir
    -<span class="nc" id="L69">                final SlidingTimeWindowReservoir reservoir = new SlidingTimeWindowReservoir(window, NANOSECONDS, clock);</span>
    -
    -                // Set the clock to overflow in (2*window+1)ns
    -<span class="nc" id="L72">                clock.addNanos(Long.MAX_VALUE / 256 - 2 * window - clock.getTick());</span>
    -<span class="nc" id="L73">                assertThat(clock.getTick() * 256).isGreaterThan(0);</span>
    -
    -<span class="nc" id="L75">                int updatesAfterThreshold = 0;</span>
    -                while (true) {
    -                    // Update the reservoir
    -<span class="nc bnc" id="L78" title="All 2 branches missed.">                    for (int i = 0; i &lt; updatesPerTick; i++)</span>
    -<span class="nc" id="L79">                        reservoir.update(0);</span>
    -
    -                    // Randomly check the reservoir size
    -<span class="nc bnc" id="L82" title="All 2 branches missed.">                    if (random.nextDouble() &lt; 0.1) {</span>
    -<span class="nc" id="L83">                        assertThat(reservoir.size())</span>
    -<span class="nc" id="L84">                                .as(&quot;Bad reservoir size with: threshold=%d, updatesPerTick=%d&quot;, threshold, updatesPerTick)</span>
    -<span class="nc" id="L85">                                .isLessThanOrEqualTo(window * 256);</span>
    -                    }
    -
    -                    // Update the clock
    -<span class="nc" id="L89">                    clock.addNanos(1);</span>
    -
    -                    // If the clock has overflowed start counting updates
    -<span class="nc bnc" id="L92" title="All 2 branches missed.">                    if ((clock.getTick() * 256) &lt; 0) {</span>
    -<span class="nc bnc" id="L93" title="All 2 branches missed.">                        if (updatesAfterThreshold++ &gt;= threshold)</span>
    -<span class="nc" id="L94">                            break;</span>
    -                    }
    -                }
    -
    -                // Check the final reservoir size
    -<span class="nc" id="L99">                assertThat(reservoir.size())</span>
    -<span class="nc" id="L100">                        .as(&quot;Bad final reservoir size with: threshold=%d, updatesPerTick=%d&quot;, threshold, updatesPerTick)</span>
    -<span class="nc" id="L101">                        .isLessThanOrEqualTo(window * 256);</span>
    -
    -                // Advance the clock far enough to clear the reservoir.  Note that here the window only loosely defines
    -                // the reservoir window; when updatesPerTick is greater than 128 the sliding window will always be well
    -                // ahead of the current clock time, and advances in getTick while in trim (called randomly above from
    -                // size and every 256 updates).  Until the clock &quot;catches up&quot; advancing the clock will have no effect on
    -                // the reservoir, and reservoir.size() will merely move the window forward 1/256th of a ns - as such, an
    -                // arbitrary increment of 1s here was used instead to advance the clock well beyond any updates recorded
    -                // above.
    -<span class="nc" id="L110">                clock.addSeconds(1);</span>
    -
    -                // The reservoir should now be empty
    -<span class="nc" id="L113">                assertThat(reservoir.size())</span>
    -<span class="nc" id="L114">                        .as(&quot;Bad reservoir size after delay with: threshold=%d, updatesPerTick=%d&quot;, threshold, updatesPerTick)</span>
    -<span class="nc" id="L115">                        .isEqualTo(0);</span>
    -<span class="nc" id="L116">            }</span>
    -<span class="nc" id="L117">        }</span>
    -<span class="nc" id="L118">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoir.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoir.html
    deleted file mode 100644
    index 91a0741156..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoir.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SlidingWindowReservoir</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">SlidingWindowReservoir</span></div><h1>SlidingWindowReservoir</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">68 of 68</td><td class="ctr2">0%</td><td class="bar">2 of 2</td><td class="ctr2">0%</td><td class="ctr1">5</td><td class="ctr2">5</td><td class="ctr1">13</td><td class="ctr2">13</td><td class="ctr1">4</td><td class="ctr2">4</td></tr></tfoot><tbody><tr><td id="a0"><a href="SlidingWindowReservoir.java.html#L35" class="el_method">getSnapshot()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="31" alt="31"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h0">6</td><td class="ctr2" id="i0">6</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="SlidingWindowReservoir.java.html#L30" class="el_method">update(long)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="69" height="10" title="18" alt="18"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="SlidingWindowReservoir.java.html#L18" class="el_method">SlidingWindowReservoir(int)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="38" height="10" title="10" alt="10"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a1"><a href="SlidingWindowReservoir.java.html#L25" class="el_method">size()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="9" alt="9"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoir.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoir.java.html
    deleted file mode 100644
    index 2b73d1ff6f..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoir.java.html
    +++ /dev/null
    @@ -1,44 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SlidingWindowReservoir.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">SlidingWindowReservoir.java</span></div><h1>SlidingWindowReservoir.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import static java.lang.Math.min;
    -
    -/**
    - * A {@link Reservoir} implementation backed by a sliding window that stores the last {@code N}
    - * measurements.
    - */
    -public class SlidingWindowReservoir implements Reservoir {
    -    private final long[] measurements;
    -    private long count;
    -
    -    /**
    -     * Creates a new {@link SlidingWindowReservoir} which stores the last {@code size} measurements.
    -     *
    -     * @param size the number of measurements to store
    -     */
    -<span class="nc" id="L18">    public SlidingWindowReservoir(int size) {</span>
    -<span class="nc" id="L19">        this.measurements = new long[size];</span>
    -<span class="nc" id="L20">        this.count = 0;</span>
    -<span class="nc" id="L21">    }</span>
    -
    -    @Override
    -    public synchronized int size() {
    -<span class="nc" id="L25">        return (int) min(count, measurements.length);</span>
    -    }
    -
    -    @Override
    -    public synchronized void update(long value) {
    -<span class="nc" id="L30">        measurements[(int) (count++ % measurements.length)] = value;</span>
    -<span class="nc" id="L31">    }</span>
    -
    -    @Override
    -    public Snapshot getSnapshot() {
    -<span class="nc" id="L35">        final long[] values = new long[size()];</span>
    -<span class="nc bnc" id="L36" title="All 2 branches missed.">        for (int i = 0; i &lt; values.length; i++) {</span>
    -<span class="nc" id="L37">            synchronized (this) {</span>
    -<span class="nc" id="L38">                values[i] = measurements[i];</span>
    -<span class="nc" id="L39">            }</span>
    -        }
    -<span class="nc" id="L41">        return new UniformSnapshot(values);</span>
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoirTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoirTest.html
    deleted file mode 100644
    index 07b637df15..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoirTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SlidingWindowReservoirTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">SlidingWindowReservoirTest</span></div><h1>SlidingWindowReservoirTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">73 of 73</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">14</td><td class="ctr2">14</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="SlidingWindowReservoirTest.java.html#L21" class="el_method">onlyKeepsTheMostRecentFromBigDataStreams()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="38" alt="38"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">7</td><td class="ctr2" id="i0">7</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="SlidingWindowReservoirTest.java.html#L12" class="el_method">handlesSmallDataStreams()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="82" height="10" title="26" alt="26"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">5</td><td class="ctr2" id="i1">5</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a2"><a href="SlidingWindowReservoirTest.java.html#L7" class="el_method">SlidingWindowReservoirTest()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="9" alt="9"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoirTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoirTest.java.html
    deleted file mode 100644
    index 0550d86123..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/SlidingWindowReservoirTest.java.html
    +++ /dev/null
    @@ -1,30 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>SlidingWindowReservoirTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">SlidingWindowReservoirTest.java</span></div><h1>SlidingWindowReservoirTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -
    -<span class="nc" id="L7">public class SlidingWindowReservoirTest {</span>
    -<span class="nc" id="L8">    private final SlidingWindowReservoir reservoir = new SlidingWindowReservoir(3);</span>
    -
    -    @Test
    -    public void handlesSmallDataStreams() {
    -<span class="nc" id="L12">        reservoir.update(1);</span>
    -<span class="nc" id="L13">        reservoir.update(2);</span>
    -
    -<span class="nc" id="L15">        assertThat(reservoir.getSnapshot().getValues())</span>
    -<span class="nc" id="L16">                .containsOnly(1, 2);</span>
    -<span class="nc" id="L17">    }</span>
    -
    -    @Test
    -    public void onlyKeepsTheMostRecentFromBigDataStreams() {
    -<span class="nc" id="L21">        reservoir.update(1);</span>
    -<span class="nc" id="L22">        reservoir.update(2);</span>
    -<span class="nc" id="L23">        reservoir.update(3);</span>
    -<span class="nc" id="L24">        reservoir.update(4);</span>
    -
    -<span class="nc" id="L26">        assertThat(reservoir.getSnapshot().getValues())</span>
    -<span class="nc" id="L27">                .containsOnly(2, 3, 4);</span>
    -<span class="nc" id="L28">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Snapshot.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Snapshot.html
    deleted file mode 100644
    index 024c0a42d5..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Snapshot.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Snapshot</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Snapshot</span></div><h1>Snapshot</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">27 of 27</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">7</td><td class="ctr2">7</td><td class="ctr1">7</td><td class="ctr2">7</td><td class="ctr1">7</td><td class="ctr2">7</td></tr></tfoot><tbody><tr><td id="a5"><a href="Snapshot.java.html#L38" class="el_method">getMedian()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">1</td><td class="ctr2" id="i0">1</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="Snapshot.java.html#L47" class="el_method">get75thPercentile()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a1"><a href="Snapshot.java.html#L56" class="el_method">get95thPercentile()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">1</td><td class="ctr2" id="i2">1</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a href="Snapshot.java.html#L65" class="el_method">get98thPercentile()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">1</td><td class="ctr2" id="i3">1</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a4"><a href="Snapshot.java.html#L74" class="el_method">get99thPercentile()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">1</td><td class="ctr2" id="i4">1</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a3"><a href="Snapshot.java.html#L83" class="el_method">get999thPercentile()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h5">1</td><td class="ctr2" id="i5">1</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a6"><a href="Snapshot.java.html#L8" class="el_method">Snapshot()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="90" height="10" title="3" alt="3"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">1</td><td class="ctr2" id="i6">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Snapshot.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Snapshot.java.html
    deleted file mode 100644
    index 0b920b61f7..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Snapshot.java.html
    +++ /dev/null
    @@ -1,122 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Snapshot.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">Snapshot.java</span></div><h1>Snapshot.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.io.OutputStream;
    -
    -/**
    - * A statistical snapshot of a {@link Snapshot}.
    - */
    -<span class="nc" id="L8">public abstract class Snapshot {</span>
    -
    -    /**
    -     * Returns the value at the given quantile.
    -     *
    -     * @param quantile a given quantile, in {@code [0..1]}
    -     * @return the value in the distribution at {@code quantile}
    -     */
    -    public abstract double getValue(double quantile);
    -
    -    /**
    -     * Returns the entire set of values in the snapshot.
    -     *
    -     * @return the entire set of values
    -     */
    -    public abstract long[] getValues();
    -
    -    /**
    -     * Returns the number of values in the snapshot.
    -     *
    -     * @return the number of values
    -     */
    -    public abstract int size();
    -
    -    /**
    -     * Returns the median value in the distribution.
    -     *
    -     * @return the median value
    -     */
    -    public double getMedian() {
    -<span class="nc" id="L38">        return getValue(0.5);</span>
    -    }
    -
    -    /**
    -     * Returns the value at the 75th percentile in the distribution.
    -     *
    -     * @return the value at the 75th percentile
    -     */
    -    public double get75thPercentile() {
    -<span class="nc" id="L47">        return getValue(0.75);</span>
    -    }
    -
    -    /**
    -     * Returns the value at the 95th percentile in the distribution.
    -     *
    -     * @return the value at the 95th percentile
    -     */
    -    public double get95thPercentile() {
    -<span class="nc" id="L56">        return getValue(0.95);</span>
    -    }
    -
    -    /**
    -     * Returns the value at the 98th percentile in the distribution.
    -     *
    -     * @return the value at the 98th percentile
    -     */
    -    public double get98thPercentile() {
    -<span class="nc" id="L65">        return getValue(0.98);</span>
    -    }
    -
    -    /**
    -     * Returns the value at the 99th percentile in the distribution.
    -     *
    -     * @return the value at the 99th percentile
    -     */
    -    public double get99thPercentile() {
    -<span class="nc" id="L74">        return getValue(0.99);</span>
    -    }
    -
    -    /**
    -     * Returns the value at the 99.9th percentile in the distribution.
    -     *
    -     * @return the value at the 99.9th percentile
    -     */
    -    public double get999thPercentile() {
    -<span class="nc" id="L83">        return getValue(0.999);</span>
    -    }
    -
    -    /**
    -     * Returns the highest value in the snapshot.
    -     *
    -     * @return the highest value
    -     */
    -    public abstract long getMax();
    -
    -    /**
    -     * Returns the arithmetic mean of the values in the snapshot.
    -     *
    -     * @return the arithmetic mean
    -     */
    -    public abstract double getMean();
    -
    -    /**
    -     * Returns the lowest value in the snapshot.
    -     *
    -     * @return the lowest value
    -     */
    -    public abstract long getMin();
    -
    -    /**
    -     * Returns the standard deviation of the values in the snapshot.
    -     *
    -     * @return the standard value
    -     */
    -    public abstract double getStdDev();
    -
    -    /**
    -     * Writes the values of the snapshot to the given stream.
    -     *
    -     * @param output an output stream
    -     */
    -    public abstract void dump(OutputStream output);
    -
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Timer$Context.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Timer$Context.html
    deleted file mode 100644
    index b29101721a..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Timer$Context.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Timer.Context</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Timer.Context</span></div><h1>Timer.Context</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">31 of 31</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">10</td><td class="ctr2">10</td><td class="ctr1">3</td><td class="ctr2">3</td></tr></tfoot><tbody><tr><td id="a1"><a href="Timer.java.html#L36" class="el_method">stop()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="14" alt="14"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h1">3</td><td class="ctr2" id="i1">3</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a2"><a href="Timer.java.html#L23" class="el_method">Timer.Context(Timer, Clock)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="111" height="10" title="13" alt="13"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">5</td><td class="ctr2" id="i0">5</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="Timer.java.html#L46" class="el_method">close()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">2</td><td class="ctr2" id="i2">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Timer.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Timer.html
    deleted file mode 100644
    index 3229942c8f..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Timer.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Timer</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">Timer</span></div><h1>Timer</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">135 of 135</td><td class="ctr2">0%</td><td class="bar">2 of 2</td><td class="ctr2">0%</td><td class="ctr1">18</td><td class="ctr2">18</td><td class="ctr1">36</td><td class="ctr2">36</td><td class="ctr1">17</td><td class="ctr2">17</td></tr></tfoot><tbody><tr><td id="a7"><a href="Timer.java.html#L116" class="el_method">time(Callable)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="16" alt="16"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h3">3</td><td class="ctr2" id="i3">3</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a13"><a href="Timer.java.html#L134" class="el_method">timeSupplier(Supplier)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="16" alt="16"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h4">3</td><td class="ctr2" id="i4">3</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a8"><a href="Timer.java.html#L149" class="el_method">time(Runnable)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="105" height="10" title="14" alt="14"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h1">4</td><td class="ctr2" id="i1">4</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a12"><a href="Timer.java.html#L78" class="el_method">Timer(Reservoir, Clock)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="90" height="10" title="12" alt="12"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h5">2</td><td class="ctr2" id="i5">2</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a10"><a href="Timer.java.html#L81" class="el_method">Timer(Meter, Histogram, Clock)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="90" height="10" title="12" alt="12"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h0">5</td><td class="ctr2" id="i0">5</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a15"><a href="Timer.java.html#L198" class="el_method">update(long)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="90" height="10" title="12" alt="12"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h2">4</td><td class="ctr2" id="i2">4</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a6"><a href="Timer.java.html#L164" class="el_method">time()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="7" alt="7"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h10">1</td><td class="ctr2" id="i10">1</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a9"><a href="Timer.java.html#L59" class="el_method">Timer()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="45" height="10" title="6" alt="6"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h6">2</td><td class="ctr2" id="i6">2</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a16"><a href="Timer.java.html#L94" class="el_method">update(long, TimeUnit)</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="45" height="10" title="6" alt="6"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h7">2</td><td class="ctr2" id="i7">2</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a11"><a href="Timer.java.html#L68" class="el_method">Timer(Reservoir)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="37" height="10" title="5" alt="5"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h8">2</td><td class="ctr2" id="i8">2</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a14"><a href="Timer.java.html#L103" class="el_method">update(Duration)</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="37" height="10" title="5" alt="5"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h9">2</td><td class="ctr2" id="i9">2</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a0"><a href="Timer.java.html#L169" class="el_method">getCount()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="4" alt="4"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">1</td><td class="ctr2" id="i11">1</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a1"><a href="Timer.java.html#L174" class="el_method">getFifteenMinuteRate()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="4" alt="4"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i12">1</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a2"><a href="Timer.java.html#L179" class="el_method">getFiveMinuteRate()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="4" alt="4"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h13">1</td><td class="ctr2" id="i13">1</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a3"><a href="Timer.java.html#L184" class="el_method">getMeanRate()</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="4" alt="4"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h14">1</td><td class="ctr2" id="i14">1</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a4"><a href="Timer.java.html#L189" class="el_method">getOneMinuteRate()</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="4" alt="4"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h15">1</td><td class="ctr2" id="i15">1</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a5"><a href="Timer.java.html#L194" class="el_method">getSnapshot()</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="4" alt="4"/></td><td class="ctr2" id="c16">0%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h16">1</td><td class="ctr2" id="i16">1</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/Timer.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/Timer.java.html
    deleted file mode 100644
    index 5086e4adff..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/Timer.java.html
    +++ /dev/null
    @@ -1,204 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>Timer.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">Timer.java</span></div><h1>Timer.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.time.Duration;
    -import java.util.concurrent.Callable;
    -import java.util.concurrent.TimeUnit;
    -import java.util.function.Supplier;
    -
    -/**
    - * A timer metric which aggregates timing durations and provides duration statistics, plus
    - * throughput statistics via {@link Meter}.
    - */
    -public class Timer implements Metered, Sampling {
    -    /**
    -     * A timing context.
    -     *
    -     * @see Timer#time()
    -     */
    -    public static class Context implements AutoCloseable {
    -        private final Timer timer;
    -        private final Clock clock;
    -        private final long startTime;
    -
    -<span class="nc" id="L23">        Context(Timer timer, Clock clock) {</span>
    -<span class="nc" id="L24">            this.timer = timer;</span>
    -<span class="nc" id="L25">            this.clock = clock;</span>
    -<span class="nc" id="L26">            this.startTime = clock.getTick();</span>
    -<span class="nc" id="L27">        }</span>
    -
    -        /**
    -         * Updates the timer with the difference between current and start time. Call to this method will
    -         * not reset the start time. Multiple calls result in multiple updates.
    -         *
    -         * @return the elapsed time in nanoseconds
    -         */
    -        public long stop() {
    -<span class="nc" id="L36">            final long elapsed = clock.getTick() - startTime;</span>
    -<span class="nc" id="L37">            timer.update(elapsed, TimeUnit.NANOSECONDS);</span>
    -<span class="nc" id="L38">            return elapsed;</span>
    -        }
    -
    -        /**
    -         * Equivalent to calling {@link #stop()}.
    -         */
    -        @Override
    -        public void close() {
    -<span class="nc" id="L46">            stop();</span>
    -<span class="nc" id="L47">        }</span>
    -    }
    -
    -    private final Meter meter;
    -    private final Histogram histogram;
    -    private final Clock clock;
    -
    -    /**
    -     * Creates a new {@link Timer} using an {@link ExponentiallyDecayingReservoir} and the default
    -     * {@link Clock}.
    -     */
    -    public Timer() {
    -<span class="nc" id="L59">        this(new ExponentiallyDecayingReservoir());</span>
    -<span class="nc" id="L60">    }</span>
    -
    -    /**
    -     * Creates a new {@link Timer} that uses the given {@link Reservoir}.
    -     *
    -     * @param reservoir the {@link Reservoir} implementation the timer should use
    -     */
    -    public Timer(Reservoir reservoir) {
    -<span class="nc" id="L68">        this(reservoir, Clock.defaultClock());</span>
    -<span class="nc" id="L69">    }</span>
    -
    -    /**
    -     * Creates a new {@link Timer} that uses the given {@link Reservoir} and {@link Clock}.
    -     *
    -     * @param reservoir the {@link Reservoir} implementation the timer should use
    -     * @param clock     the {@link Clock} implementation the timer should use
    -     */
    -    public Timer(Reservoir reservoir, Clock clock) {
    -<span class="nc" id="L78">        this(new Meter(clock), new Histogram(reservoir), clock);</span>
    -<span class="nc" id="L79">    }</span>
    -
    -<span class="nc" id="L81">    public Timer(Meter meter, Histogram histogram, Clock clock) {</span>
    -<span class="nc" id="L82">        this.meter = meter;</span>
    -<span class="nc" id="L83">        this.histogram = histogram;</span>
    -<span class="nc" id="L84">        this.clock = clock;</span>
    -<span class="nc" id="L85">    }</span>
    -
    -    /**
    -     * Adds a recorded duration.
    -     *
    -     * @param duration the length of the duration
    -     * @param unit     the scale unit of {@code duration}
    -     */
    -    public void update(long duration, TimeUnit unit) {
    -<span class="nc" id="L94">        update(unit.toNanos(duration));</span>
    -<span class="nc" id="L95">    }</span>
    -
    -    /**
    -     * Adds a recorded duration.
    -     *
    -     * @param duration the {@link Duration} to add to the timer. Negative or zero value are ignored.
    -     */
    -    public void update(Duration duration) {
    -<span class="nc" id="L103">        update(duration.toNanos());</span>
    -<span class="nc" id="L104">    }</span>
    -
    -    /**
    -     * Times and records the duration of event.
    -     *
    -     * @param event a {@link Callable} whose {@link Callable#call()} method implements a process
    -     *              whose duration should be timed
    -     * @param &lt;T&gt;   the type of the value returned by {@code event}
    -     * @return the value returned by {@code event}
    -     * @throws Exception if {@code event} throws an {@link Exception}
    -     */
    -    public &lt;T&gt; T time(Callable&lt;T&gt; event) throws Exception {
    -<span class="nc" id="L116">        final long startTime = clock.getTick();</span>
    -        try {
    -<span class="nc" id="L118">            return event.call();</span>
    -        } finally {
    -<span class="nc" id="L120">            update(clock.getTick() - startTime);</span>
    -        }
    -    }
    -
    -    /**
    -     * Times and records the duration of event. Should not throw exceptions, for that use the
    -     * {@link #time(Callable)} method.
    -     *
    -     * @param event a {@link Supplier} whose {@link Supplier#get()} method implements a process
    -     *              whose duration should be timed
    -     * @param &lt;T&gt;   the type of the value returned by {@code event}
    -     * @return the value returned by {@code event}
    -     */
    -    public &lt;T&gt; T timeSupplier(Supplier&lt;T&gt; event) {
    -<span class="nc" id="L134">        final long startTime = clock.getTick();</span>
    -        try {
    -<span class="nc" id="L136">            return event.get();</span>
    -        } finally {
    -<span class="nc" id="L138">            update(clock.getTick() - startTime);</span>
    -        }
    -    }
    -
    -    /**
    -     * Times and records the duration of event.
    -     *
    -     * @param event a {@link Runnable} whose {@link Runnable#run()} method implements a process
    -     *              whose duration should be timed
    -     */
    -    public void time(Runnable event) {
    -<span class="nc" id="L149">        final long startTime = clock.getTick();</span>
    -        try {
    -<span class="nc" id="L151">            event.run();</span>
    -        } finally {
    -<span class="nc" id="L153">            update(clock.getTick() - startTime);</span>
    -        }
    -<span class="nc" id="L155">    }</span>
    -
    -    /**
    -     * Returns a new {@link Context}.
    -     *
    -     * @return a new {@link Context}
    -     * @see Context
    -     */
    -    public Context time() {
    -<span class="nc" id="L164">        return new Context(this, clock);</span>
    -    }
    -
    -    @Override
    -    public long getCount() {
    -<span class="nc" id="L169">        return histogram.getCount();</span>
    -    }
    -
    -    @Override
    -    public double getFifteenMinuteRate() {
    -<span class="nc" id="L174">        return meter.getFifteenMinuteRate();</span>
    -    }
    -
    -    @Override
    -    public double getFiveMinuteRate() {
    -<span class="nc" id="L179">        return meter.getFiveMinuteRate();</span>
    -    }
    -
    -    @Override
    -    public double getMeanRate() {
    -<span class="nc" id="L184">        return meter.getMeanRate();</span>
    -    }
    -
    -    @Override
    -    public double getOneMinuteRate() {
    -<span class="nc" id="L189">        return meter.getOneMinuteRate();</span>
    -    }
    -
    -    @Override
    -    public Snapshot getSnapshot() {
    -<span class="nc" id="L194">        return histogram.getSnapshot();</span>
    -    }
    -
    -    private void update(long duration) {
    -<span class="nc bnc" id="L198" title="All 2 branches missed.">        if (duration &gt;= 0) {</span>
    -<span class="nc" id="L199">            histogram.update(duration);</span>
    -<span class="nc" id="L200">            meter.mark();</span>
    -        }
    -<span class="nc" id="L202">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest$1.html b/metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest$1.html
    deleted file mode 100644
    index 82408aed5a..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest$1.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>TimerTest.new Clock() {...}</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">TimerTest.new Clock() {...}</span></div><h1>TimerTest.new Clock() {...}</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">17 of 17</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">2</td><td class="ctr2">2</td><td class="ctr1">3</td><td class="ctr2">3</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a1"><a href="TimerTest.java.html#L18" class="el_method">{...}</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">2</td><td class="ctr2" id="i0">2</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a0"><a href="TimerTest.java.html#L24" class="el_method">getTick()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="106" height="10" title="8" alt="8"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest.html
    deleted file mode 100644
    index aba3c5f0bd..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>TimerTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">TimerTest</span></div><h1>TimerTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">308 of 308</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">15</td><td class="ctr2">15</td><td class="ctr1">76</td><td class="ctr2">76</td><td class="ctr1">15</td><td class="ctr2">15</td></tr></tfoot><tbody><tr><td id="a0"><a href="TimerTest.java.html#L31" class="el_method">hasRates()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="47" alt="47"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">11</td><td class="ctr2" id="i0">11</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a13"><a href="TimerTest.java.html#L147" class="el_method">tryWithResourcesWork()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="91" height="10" title="36" alt="36"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">10</td><td class="ctr2" id="i1">10</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a11"><a href="TimerTest.java.html#L86" class="el_method">timesRunnableInstances()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="71" height="10" title="28" alt="28"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h2">8</td><td class="ctr2" id="i2">8</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a9"><a href="TimerTest.java.html#L60" class="el_method">timesCallableInstances()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="63" height="10" title="25" alt="25"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h3">7</td><td class="ctr2" id="i3">7</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a12"><a href="TimerTest.java.html#L73" class="el_method">timesSuppliedInstances()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="63" height="10" title="25" alt="25"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">7</td><td class="ctr2" id="i4">7</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a8"><a href="TimerTest.java.html#L16" class="el_method">TimerTest()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="58" height="10" title="23" alt="23"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h9">4</td><td class="ctr2" id="i9">4</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a1"><a href="TimerTest.java.html#L119" class="el_method">ignoresNegativeValues()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="51" height="10" title="20" alt="20"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h6">5</td><td class="ctr2" id="i6">5</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a3"><a href="TimerTest.java.html#L138" class="el_method">java8NegativeDuration()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="51" height="10" title="20" alt="20"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h10">4</td><td class="ctr2" id="i10">4</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a14"><a href="TimerTest.java.html#L49" class="el_method">updatesTheCountOnUpdates()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="19" alt="19"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h5">6</td><td class="ctr2" id="i5">6</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a10"><a href="TimerTest.java.html#L100" class="el_method">timesContexts()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="19" alt="19"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h7">5</td><td class="ctr2" id="i7">5</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a7"><a href="TimerTest.java.html#L110" class="el_method">returnsTheSnapshotFromTheReservoir()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="19" alt="19"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h8">5</td><td class="ctr2" id="i8">5</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a2"><a href="TimerTest.java.html#L129" class="el_method">java8Duration()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="48" height="10" title="19" alt="19"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h11">4</td><td class="ctr2" id="i11">4</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a5"><a href="TimerTest.java.html#L87" class="el_method">lambda$timesRunnableInstances$2(AtomicBoolean)</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="4" alt="4"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h12">1</td><td class="ctr2" id="i12">1</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a6"><a href="TimerTest.java.html#L73" class="el_method">lambda$timesSuppliedInstances$1()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="2" alt="2"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h13">1</td><td class="ctr2" id="i13">1</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a4"><a href="TimerTest.java.html#L60" class="el_method">lambda$timesCallableInstances$0()</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="2" alt="2"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h14">1</td><td class="ctr2" id="i14">1</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest.java.html
    deleted file mode 100644
    index 86b0e1e3e0..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/TimerTest.java.html
    +++ /dev/null
    @@ -1,162 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>TimerTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">TimerTest.java</span></div><h1>TimerTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -
    -import java.time.Duration;
    -import java.util.concurrent.TimeUnit;
    -import java.util.concurrent.atomic.AtomicBoolean;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -import static org.assertj.core.api.Assertions.offset;
    -import static org.mockito.Mockito.mock;
    -import static org.mockito.Mockito.verify;
    -import static org.mockito.Mockito.verifyNoInteractions;
    -import static org.mockito.Mockito.when;
    -
    -<span class="nc" id="L16">public class TimerTest {</span>
    -<span class="nc" id="L17">    private final Reservoir reservoir = mock(Reservoir.class);</span>
    -<span class="nc" id="L18">    private final Clock clock = new Clock() {</span>
    -        // a mock clock that increments its ticker by 50msec per call
    -<span class="nc" id="L20">        private long val = 0;</span>
    -
    -        @Override
    -        public long getTick() {
    -<span class="nc" id="L24">            return val += 50000000;</span>
    -        }
    -    };
    -<span class="nc" id="L27">    private final Timer timer = new Timer(reservoir, clock);</span>
    -
    -    @Test
    -    public void hasRates() {
    -<span class="nc" id="L31">        assertThat(timer.getCount())</span>
    -<span class="nc" id="L32">                .isZero();</span>
    -
    -<span class="nc" id="L34">        assertThat(timer.getMeanRate())</span>
    -<span class="nc" id="L35">                .isEqualTo(0.0, offset(0.001));</span>
    -
    -<span class="nc" id="L37">        assertThat(timer.getOneMinuteRate())</span>
    -<span class="nc" id="L38">                .isEqualTo(0.0, offset(0.001));</span>
    -
    -<span class="nc" id="L40">        assertThat(timer.getFiveMinuteRate())</span>
    -<span class="nc" id="L41">                .isEqualTo(0.0, offset(0.001));</span>
    -
    -<span class="nc" id="L43">        assertThat(timer.getFifteenMinuteRate())</span>
    -<span class="nc" id="L44">                .isEqualTo(0.0, offset(0.001));</span>
    -<span class="nc" id="L45">    }</span>
    -
    -    @Test
    -    public void updatesTheCountOnUpdates() {
    -<span class="nc" id="L49">        assertThat(timer.getCount())</span>
    -<span class="nc" id="L50">                .isZero();</span>
    -
    -<span class="nc" id="L52">        timer.update(1, TimeUnit.SECONDS);</span>
    -
    -<span class="nc" id="L54">        assertThat(timer.getCount())</span>
    -<span class="nc" id="L55">                .isEqualTo(1);</span>
    -<span class="nc" id="L56">    }</span>
    -
    -    @Test
    -    public void timesCallableInstances() throws Exception {
    -<span class="nc" id="L60">        final String value = timer.time(() -&gt; &quot;one&quot;);</span>
    -
    -<span class="nc" id="L62">        assertThat(timer.getCount())</span>
    -<span class="nc" id="L63">                .isEqualTo(1);</span>
    -
    -<span class="nc" id="L65">        assertThat(value)</span>
    -<span class="nc" id="L66">                .isEqualTo(&quot;one&quot;);</span>
    -
    -<span class="nc" id="L68">        verify(reservoir).update(50000000);</span>
    -<span class="nc" id="L69">    }</span>
    -
    -    @Test
    -    public void timesSuppliedInstances() {
    -<span class="nc" id="L73">        final String value = timer.timeSupplier(() -&gt; &quot;one&quot;);</span>
    -
    -<span class="nc" id="L75">        assertThat(timer.getCount())</span>
    -<span class="nc" id="L76">                .isEqualTo(1);</span>
    -
    -<span class="nc" id="L78">        assertThat(value)</span>
    -<span class="nc" id="L79">                .isEqualTo(&quot;one&quot;);</span>
    -
    -<span class="nc" id="L81">        verify(reservoir).update(50000000);</span>
    -<span class="nc" id="L82">    }</span>
    -
    -    @Test
    -    public void timesRunnableInstances() {
    -<span class="nc" id="L86">        final AtomicBoolean called = new AtomicBoolean();</span>
    -<span class="nc" id="L87">        timer.time(() -&gt; called.set(true));</span>
    -
    -<span class="nc" id="L89">        assertThat(timer.getCount())</span>
    -<span class="nc" id="L90">                .isEqualTo(1);</span>
    -
    -<span class="nc" id="L92">        assertThat(called.get())</span>
    -<span class="nc" id="L93">                .isTrue();</span>
    -
    -<span class="nc" id="L95">        verify(reservoir).update(50000000);</span>
    -<span class="nc" id="L96">    }</span>
    -
    -    @Test
    -    public void timesContexts() {
    -<span class="nc" id="L100">        timer.time().stop();</span>
    -
    -<span class="nc" id="L102">        assertThat(timer.getCount())</span>
    -<span class="nc" id="L103">                .isEqualTo(1);</span>
    -
    -<span class="nc" id="L105">        verify(reservoir).update(50000000);</span>
    -<span class="nc" id="L106">    }</span>
    -
    -    @Test
    -    public void returnsTheSnapshotFromTheReservoir() {
    -<span class="nc" id="L110">        final Snapshot snapshot = mock(Snapshot.class);</span>
    -<span class="nc" id="L111">        when(reservoir.getSnapshot()).thenReturn(snapshot);</span>
    -
    -<span class="nc" id="L113">        assertThat(timer.getSnapshot())</span>
    -<span class="nc" id="L114">                .isEqualTo(snapshot);</span>
    -<span class="nc" id="L115">    }</span>
    -
    -    @Test
    -    public void ignoresNegativeValues() {
    -<span class="nc" id="L119">        timer.update(-1, TimeUnit.SECONDS);</span>
    -
    -<span class="nc" id="L121">        assertThat(timer.getCount())</span>
    -<span class="nc" id="L122">                .isZero();</span>
    -
    -<span class="nc" id="L124">        verifyNoInteractions(reservoir);</span>
    -<span class="nc" id="L125">    }</span>
    -
    -    @Test
    -    public void java8Duration() {
    -<span class="nc" id="L129">        timer.update(Duration.ofSeconds(1234));</span>
    -
    -<span class="nc" id="L131">        assertThat(timer.getCount()).isEqualTo(1);</span>
    -
    -<span class="nc" id="L133">        verify(reservoir).update((long) 1234e9);</span>
    -<span class="nc" id="L134">    }</span>
    -
    -    @Test
    -    public void java8NegativeDuration() {
    -<span class="nc" id="L138">        timer.update(Duration.ofMillis(-5678));</span>
    -
    -<span class="nc" id="L140">        assertThat(timer.getCount()).isZero();</span>
    -
    -<span class="nc" id="L142">        verifyNoInteractions(reservoir);</span>
    -<span class="nc" id="L143">    }</span>
    -
    -    @Test
    -    public void tryWithResourcesWork() {
    -<span class="nc" id="L147">        assertThat(timer.getCount()).isZero();</span>
    -
    -<span class="nc" id="L149">        int dummy = 0;</span>
    -<span class="nc" id="L150">        try (Timer.Context context = timer.time()) {</span>
    -<span class="nc" id="L151">            assertThat(context).isNotNull();</span>
    -<span class="nc" id="L152">            dummy += 1;</span>
    -        }
    -<span class="nc" id="L154">        assertThat(dummy).isEqualTo(1);</span>
    -<span class="nc" id="L155">        assertThat(timer.getCount())</span>
    -<span class="nc" id="L156">                .isEqualTo(1);</span>
    -
    -<span class="nc" id="L158">        verify(reservoir).update(50000000);</span>
    -<span class="nc" id="L159">    }</span>
    -
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoir.html b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoir.html
    deleted file mode 100644
    index d4a03a7b63..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoir.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>UniformReservoir</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">UniformReservoir</span></div><h1>UniformReservoir</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">117 of 117</td><td class="ctr2">0%</td><td class="bar">10 of 10</td><td class="ctr2">0%</td><td class="ctr1">10</td><td class="ctr2">10</td><td class="ctr1">25</td><td class="ctr2">25</td><td class="ctr1">5</td><td class="ctr2">5</td></tr></tfoot><tbody><tr><td id="a4"><a href="UniformReservoir.java.html#L50" class="el_method">update(long)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="38" alt="38"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">3</td><td class="ctr1" id="h0">7</td><td class="ctr2" id="i0">7</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a3"><a href="UniformReservoir.java.html#L15" class="el_method">UniformReservoir(int)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="101" height="10" title="32" alt="32"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="2" alt="2"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">2</td><td class="ctr1" id="h1">7</td><td class="ctr2" id="i1">7</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="UniformReservoir.java.html#L63" class="el_method">getSnapshot()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="78" height="10" title="25" alt="25"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f2">2</td><td class="ctr2" id="g2">2</td><td class="ctr1" id="h2">5</td><td class="ctr2" id="i2">5</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a1"><a href="UniformReservoir.java.html#L41" class="el_method">size()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="56" height="10" title="18" alt="18"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">0%</td><td class="ctr1" id="f3">2</td><td class="ctr2" id="g3">2</td><td class="ctr1" id="h3">4</td><td class="ctr2" id="i3">4</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a2"><a href="UniformReservoir.java.html#L23" class="el_method">UniformReservoir()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="4" alt="4"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h4">2</td><td class="ctr2" id="i4">2</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoir.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoir.java.html
    deleted file mode 100644
    index 447f96ab27..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoir.java.html
    +++ /dev/null
    @@ -1,71 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>UniformReservoir.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">UniformReservoir.java</span></div><h1>UniformReservoir.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.util.concurrent.ThreadLocalRandom;
    -import java.util.concurrent.atomic.AtomicLong;
    -import java.util.concurrent.atomic.AtomicLongArray;
    -
    -/**
    - * A random sampling reservoir of a stream of {@code long}s. Uses Vitter's Algorithm R to produce a
    - * statistically representative sample.
    - *
    - * @see &lt;a href=&quot;http://www.cs.umd.edu/~samir/498/vitter.pdf&quot;&gt;Random Sampling with a Reservoir&lt;/a&gt;
    - */
    -public class UniformReservoir implements Reservoir {
    -    private static final int DEFAULT_SIZE = 1028;
    -<span class="nc" id="L15">    private final AtomicLong count = new AtomicLong();</span>
    -    private final AtomicLongArray values;
    -
    -    /**
    -     * Creates a new {@link UniformReservoir} of 1028 elements, which offers a 99.9% confidence level
    -     * with a 5% margin of error assuming a normal distribution.
    -     */
    -    public UniformReservoir() {
    -<span class="nc" id="L23">        this(DEFAULT_SIZE);</span>
    -<span class="nc" id="L24">    }</span>
    -
    -    /**
    -     * Creates a new {@link UniformReservoir}.
    -     *
    -     * @param size the number of samples to keep in the sampling reservoir
    -     */
    -<span class="nc" id="L31">    public UniformReservoir(int size) {</span>
    -<span class="nc" id="L32">        this.values = new AtomicLongArray(size);</span>
    -<span class="nc bnc" id="L33" title="All 2 branches missed.">        for (int i = 0; i &lt; values.length(); i++) {</span>
    -<span class="nc" id="L34">            values.set(i, 0);</span>
    -        }
    -<span class="nc" id="L36">        count.set(0);</span>
    -<span class="nc" id="L37">    }</span>
    -
    -    @Override
    -    public int size() {
    -<span class="nc" id="L41">        final long c = count.get();</span>
    -<span class="nc bnc" id="L42" title="All 2 branches missed.">        if (c &gt; values.length()) {</span>
    -<span class="nc" id="L43">            return values.length();</span>
    -        }
    -<span class="nc" id="L45">        return (int) c;</span>
    -    }
    -
    -    @Override
    -    public void update(long value) {
    -<span class="nc" id="L50">        final long c = count.incrementAndGet();</span>
    -<span class="nc bnc" id="L51" title="All 2 branches missed.">        if (c &lt;= values.length()) {</span>
    -<span class="nc" id="L52">            values.set((int) c - 1, value);</span>
    -        } else {
    -<span class="nc" id="L54">            final long r = ThreadLocalRandom.current().nextLong(c);</span>
    -<span class="nc bnc" id="L55" title="All 2 branches missed.">            if (r &lt; values.length()) {</span>
    -<span class="nc" id="L56">                values.set((int) r, value);</span>
    -            }
    -        }
    -<span class="nc" id="L59">    }</span>
    -
    -    @Override
    -    public Snapshot getSnapshot() {
    -<span class="nc" id="L63">        final int s = size();</span>
    -<span class="nc" id="L64">        long[] copy = new long[s];</span>
    -<span class="nc bnc" id="L65" title="All 2 branches missed.">        for (int i = 0; i &lt; s; i++) {</span>
    -<span class="nc" id="L66">            copy[i] = values.get(i);</span>
    -        }
    -<span class="nc" id="L68">        return new UniformSnapshot(copy);</span>
    -    }
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoirTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoirTest.html
    deleted file mode 100644
    index a91f65141a..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoirTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>UniformReservoirTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">UniformReservoirTest</span></div><h1>UniformReservoirTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">60 of 60</td><td class="ctr2">0%</td><td class="bar">4 of 4</td><td class="ctr2">0%</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">14</td><td class="ctr2">14</td><td class="ctr1">2</td><td class="ctr2">2</td></tr></tfoot><tbody><tr><td id="a0"><a href="UniformReservoirTest.java.html#L11" class="el_method">aReservoirOf100OutOf1000Elements()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="57" alt="57"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">3</td><td class="ctr1" id="h0">13</td><td class="ctr2" id="i0">13</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a1"><a href="UniformReservoirTest.java.html#L7" class="el_method">UniformReservoirTest()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="3" alt="3"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h1">1</td><td class="ctr2" id="i1">1</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoirTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoirTest.java.html
    deleted file mode 100644
    index 14a53c4e30..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformReservoirTest.java.html
    +++ /dev/null
    @@ -1,32 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>UniformReservoirTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">UniformReservoirTest.java</span></div><h1>UniformReservoirTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -
    -<span class="nc" id="L7">public class UniformReservoirTest {</span>
    -    @Test
    -    @SuppressWarnings(&quot;unchecked&quot;)
    -    public void aReservoirOf100OutOf1000Elements() {
    -<span class="nc" id="L11">        final UniformReservoir reservoir = new UniformReservoir(100);</span>
    -<span class="nc bnc" id="L12" title="All 2 branches missed.">        for (int i = 0; i &lt; 1000; i++) {</span>
    -<span class="nc" id="L13">            reservoir.update(i);</span>
    -        }
    -
    -<span class="nc" id="L16">        final Snapshot snapshot = reservoir.getSnapshot();</span>
    -
    -<span class="nc" id="L18">        assertThat(reservoir.size())</span>
    -<span class="nc" id="L19">                .isEqualTo(100);</span>
    -
    -<span class="nc" id="L21">        assertThat(snapshot.size())</span>
    -<span class="nc" id="L22">                .isEqualTo(100);</span>
    -
    -<span class="nc bnc" id="L24" title="All 2 branches missed.">        for (double i : snapshot.getValues()) {</span>
    -<span class="nc" id="L25">            assertThat(i)</span>
    -<span class="nc" id="L26">                    .isLessThan(1000)</span>
    -<span class="nc" id="L27">                    .isGreaterThanOrEqualTo(0);</span>
    -        }
    -<span class="nc" id="L29">    }</span>
    -
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshot.html b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshot.html
    deleted file mode 100644
    index 9122aa8ddf..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshot.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>UniformSnapshot</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">UniformSnapshot</span></div><h1>UniformSnapshot</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">297 of 297</td><td class="ctr2">0%</td><td class="bar">28 of 28</td><td class="ctr2">0%</td><td class="ctr1">24</td><td class="ctr2">24</td><td class="ctr1">51</td><td class="ctr2">51</td><td class="ctr1">10</td><td class="ctr2">10</td></tr></tfoot><tbody><tr><td id="a5"><a href="UniformSnapshot.java.html#L51" class="el_method">getValue(double)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="90" alt="90"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="12" alt="12"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">7</td><td class="ctr2" id="g0">7</td><td class="ctr1" id="h0">13</td><td class="ctr2" id="i0">13</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a4"><a href="UniformSnapshot.java.html#L148" class="el_method">getStdDev()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="69" height="10" title="52" alt="52"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="4" alt="4"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f1">3</td><td class="ctr2" id="g1">3</td><td class="ctr1" id="h1">9</td><td class="ctr2" id="i1">9</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a0"><a href="UniformSnapshot.java.html#L171" class="el_method">dump(OutputStream)</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="50" height="10" title="38" alt="38"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f3">2</td><td class="ctr2" id="g3">2</td><td class="ctr1" id="h4">4</td><td class="ctr2" id="i4">4</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a2"><a href="UniformSnapshot.java.html#L128" class="el_method">getMean()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="37" alt="37"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="4" alt="4"/></td><td class="ctr2" id="e3">0%</td><td class="ctr1" id="f2">3</td><td class="ctr2" id="g2">3</td><td class="ctr1" id="h3">6</td><td class="ctr2" id="i3">6</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a8"><a href="UniformSnapshot.java.html#L24" class="el_method">UniformSnapshot(Collection)</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="41" height="10" title="31" alt="31"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e4">0%</td><td class="ctr1" id="f4">2</td><td class="ctr2" id="g4">2</td><td class="ctr1" id="h2">7</td><td class="ctr2" id="i2">7</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a1"><a href="UniformSnapshot.java.html#L102" class="el_method">getMax()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="15" alt="15"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e5">0%</td><td class="ctr1" id="f5">2</td><td class="ctr2" id="g5">2</td><td class="ctr1" id="h6">3</td><td class="ctr2" id="i6">3</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a9"><a href="UniformSnapshot.java.html#L38" class="el_method">UniformSnapshot(long[])</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="12" alt="12"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h5">4</td><td class="ctr2" id="i5">4</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a3"><a href="UniformSnapshot.java.html#L115" class="el_method">getMin()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="11" alt="11"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d6"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="2" alt="2"/></td><td class="ctr2" id="e6">0%</td><td class="ctr1" id="f6">2</td><td class="ctr2" id="g6">2</td><td class="ctr1" id="h7">3</td><td class="ctr2" id="i7">3</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a6"><a href="UniformSnapshot.java.html#L92" class="el_method">getValues()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="7" alt="7"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a7"><a href="UniformSnapshot.java.html#L82" class="el_method">size()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="4" alt="4"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">1</td><td class="ctr2" id="i9">1</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshot.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshot.java.html
    deleted file mode 100644
    index 4773f3ff2a..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshot.java.html
    +++ /dev/null
    @@ -1,178 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>UniformSnapshot.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">UniformSnapshot.java</span></div><h1>UniformSnapshot.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.io.OutputStream;
    -import java.io.OutputStreamWriter;
    -import java.io.PrintWriter;
    -import java.util.Arrays;
    -import java.util.Collection;
    -
    -import static java.lang.Math.floor;
    -import static java.nio.charset.StandardCharsets.UTF_8;
    -
    -/**
    - * A statistical snapshot of a {@link UniformSnapshot}.
    - */
    -public class UniformSnapshot extends Snapshot {
    -
    -    private final long[] values;
    -
    -    /**
    -     * Create a new {@link Snapshot} with the given values.
    -     *
    -     * @param values an unordered set of values in the reservoir
    -     */
    -<span class="nc" id="L24">    public UniformSnapshot(Collection&lt;Long&gt; values) {</span>
    -<span class="nc" id="L25">        final Object[] copy = values.toArray();</span>
    -<span class="nc" id="L26">        this.values = new long[copy.length];</span>
    -<span class="nc bnc" id="L27" title="All 2 branches missed.">        for (int i = 0; i &lt; copy.length; i++) {</span>
    -<span class="nc" id="L28">            this.values[i] = (Long) copy[i];</span>
    -        }
    -<span class="nc" id="L30">        Arrays.sort(this.values);</span>
    -<span class="nc" id="L31">    }</span>
    -
    -    /**
    -     * Create a new {@link Snapshot} with the given values.
    -     *
    -     * @param values an unordered set of values in the reservoir that can be used by this class directly
    -     */
    -<span class="nc" id="L38">    public UniformSnapshot(long[] values) {</span>
    -<span class="nc" id="L39">        this.values = Arrays.copyOf(values, values.length);</span>
    -<span class="nc" id="L40">        Arrays.sort(this.values);</span>
    -<span class="nc" id="L41">    }</span>
    -
    -    /**
    -     * Returns the value at the given quantile.
    -     *
    -     * @param quantile a given quantile, in {@code [0..1]}
    -     * @return the value in the distribution at {@code quantile}
    -     */
    -    @Override
    -    public double getValue(double quantile) {
    -<span class="nc bnc" id="L51" title="All 6 branches missed.">        if (quantile &lt; 0.0 || quantile &gt; 1.0 || Double.isNaN(quantile)) {</span>
    -<span class="nc" id="L52">            throw new IllegalArgumentException(quantile + &quot; is not in [0..1]&quot;);</span>
    -        }
    -
    -<span class="nc bnc" id="L55" title="All 2 branches missed.">        if (values.length == 0) {</span>
    -<span class="nc" id="L56">            return 0.0;</span>
    -        }
    -
    -<span class="nc" id="L59">        final double pos = quantile * (values.length + 1);</span>
    -<span class="nc" id="L60">        final int index = (int) pos;</span>
    -
    -<span class="nc bnc" id="L62" title="All 2 branches missed.">        if (index &lt; 1) {</span>
    -<span class="nc" id="L63">            return values[0];</span>
    -        }
    -
    -<span class="nc bnc" id="L66" title="All 2 branches missed.">        if (index &gt;= values.length) {</span>
    -<span class="nc" id="L67">            return values[values.length - 1];</span>
    -        }
    -
    -<span class="nc" id="L70">        final double lower = values[index - 1];</span>
    -<span class="nc" id="L71">        final double upper = values[index];</span>
    -<span class="nc" id="L72">        return lower + (pos - floor(pos)) * (upper - lower);</span>
    -    }
    -
    -    /**
    -     * Returns the number of values in the snapshot.
    -     *
    -     * @return the number of values
    -     */
    -    @Override
    -    public int size() {
    -<span class="nc" id="L82">        return values.length;</span>
    -    }
    -
    -    /**
    -     * Returns the entire set of values in the snapshot.
    -     *
    -     * @return the entire set of values
    -     */
    -    @Override
    -    public long[] getValues() {
    -<span class="nc" id="L92">        return Arrays.copyOf(values, values.length);</span>
    -    }
    -
    -    /**
    -     * Returns the highest value in the snapshot.
    -     *
    -     * @return the highest value
    -     */
    -    @Override
    -    public long getMax() {
    -<span class="nc bnc" id="L102" title="All 2 branches missed.">        if (values.length == 0) {</span>
    -<span class="nc" id="L103">            return 0;</span>
    -        }
    -<span class="nc" id="L105">        return values[values.length - 1];</span>
    -    }
    -
    -    /**
    -     * Returns the lowest value in the snapshot.
    -     *
    -     * @return the lowest value
    -     */
    -    @Override
    -    public long getMin() {
    -<span class="nc bnc" id="L115" title="All 2 branches missed.">        if (values.length == 0) {</span>
    -<span class="nc" id="L116">            return 0;</span>
    -        }
    -<span class="nc" id="L118">        return values[0];</span>
    -    }
    -
    -    /**
    -     * Returns the arithmetic mean of the values in the snapshot.
    -     *
    -     * @return the arithmetic mean
    -     */
    -    @Override
    -    public double getMean() {
    -<span class="nc bnc" id="L128" title="All 2 branches missed.">        if (values.length == 0) {</span>
    -<span class="nc" id="L129">            return 0;</span>
    -        }
    -
    -<span class="nc" id="L132">        double sum = 0;</span>
    -<span class="nc bnc" id="L133" title="All 2 branches missed.">        for (long value : values) {</span>
    -<span class="nc" id="L134">            sum += value;</span>
    -        }
    -<span class="nc" id="L136">        return sum / values.length;</span>
    -    }
    -
    -    /**
    -     * Returns the standard deviation of the values in the snapshot.
    -     *
    -     * @return the standard deviation value
    -     */
    -    @Override
    -    public double getStdDev() {
    -        // two-pass algorithm for variance, avoids numeric overflow
    -
    -<span class="nc bnc" id="L148" title="All 2 branches missed.">        if (values.length &lt;= 1) {</span>
    -<span class="nc" id="L149">            return 0;</span>
    -        }
    -
    -<span class="nc" id="L152">        final double mean = getMean();</span>
    -<span class="nc" id="L153">        double sum = 0;</span>
    -
    -<span class="nc bnc" id="L155" title="All 2 branches missed.">        for (long value : values) {</span>
    -<span class="nc" id="L156">            final double diff = value - mean;</span>
    -<span class="nc" id="L157">            sum += diff * diff;</span>
    -        }
    -
    -<span class="nc" id="L160">        final double variance = sum / (values.length - 1);</span>
    -<span class="nc" id="L161">        return Math.sqrt(variance);</span>
    -    }
    -
    -    /**
    -     * Writes the values of the snapshot to the given stream.
    -     *
    -     * @param output an output stream
    -     */
    -    @Override
    -    public void dump(OutputStream output) {
    -<span class="nc" id="L171">        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {</span>
    -<span class="nc bnc" id="L172" title="All 2 branches missed.">            for (long value : values) {</span>
    -<span class="nc" id="L173">                out.printf(&quot;%d%n&quot;, value);</span>
    -            }
    -        }
    -<span class="nc" id="L176">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshotTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshotTest.html
    deleted file mode 100644
    index 5cb19bd84d..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshotTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>UniformSnapshotTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">UniformSnapshotTest</span></div><h1>UniformSnapshotTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">413 of 413</td><td class="ctr2">0%</td><td class="bar">2 of 2</td><td class="ctr2">0%</td><td class="ctr1">28</td><td class="ctr2">28</td><td class="ctr1">88</td><td class="ctr2">88</td><td class="ctr1">27</td><td class="ctr2">27</td></tr></tfoot><tbody><tr><td id="a10"><a href="UniformSnapshotTest.java.html#L89" class="el_method">canAlsoBeCreatedFromACollectionOfLongs()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="60" alt="60"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h3">4</td><td class="ctr2" id="i3">4</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a11"><a href="UniformSnapshotTest.java.html#L97" class="el_method">correctlyCreatedFromCollectionWithWeakIterator()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="88" height="10" title="44" alt="44"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h0">10</td><td class="ctr2" id="i0">10</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a26"><a href="UniformSnapshotTest.java.html#L15" class="el_method">UniformSnapshotTest()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="30" alt="30"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h17">2</td><td class="ctr2" id="i17">2</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a23"><a href="UniformSnapshotTest.java.html#L77" class="el_method">hasValues()</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="58" height="10" title="29" alt="29"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h9">3</td><td class="ctr2" id="i9">3</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a15"><a href="UniformSnapshotTest.java.html#L127" class="el_method">dumpsToAStream()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="18" alt="18"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h1">5</td><td class="ctr2" id="i1">5</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a24"><a href="UniformSnapshotTest.java.html#L103" class="el_method">lambda$correctlyCreatedFromCollectionWithWeakIterator$0(ConcurrentSkipListSet, CountDownLatch)</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="17" alt="17"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="2" alt="2"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">2</td><td class="ctr2" id="g0">2</td><td class="ctr1" id="h2">5</td><td class="ctr2" id="i2">5</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a5"><a href="UniformSnapshotTest.java.html#L193" class="el_method">calculatesAStdDevOfZeroForASingletonSnapshot()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="32" height="10" title="16" alt="16"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h4">4</td><td class="ctr2" id="i4">4</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a25"><a href="UniformSnapshotTest.java.html#L20" class="el_method">smallQuantilesAreTheFirstValue()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="12" alt="12"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h10">3</td><td class="ctr2" id="i10">3</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a0"><a href="UniformSnapshotTest.java.html#L26" class="el_method">bigQuantilesAreTheLastValue()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="12" alt="12"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h11">3</td><td class="ctr2" id="i11">3</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a3"><a href="UniformSnapshotTest.java.html#L161" class="el_method">calculatesAMinOfZeroForAnEmptySnapshot()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="12" alt="12"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h5">4</td><td class="ctr2" id="i5">4</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a1"><a href="UniformSnapshotTest.java.html#L169" class="el_method">calculatesAMaxOfZeroForAnEmptySnapshot()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="12" alt="12"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h6">4</td><td class="ctr2" id="i6">4</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a2"><a href="UniformSnapshotTest.java.html#L177" class="el_method">calculatesAMeanOfZeroForAnEmptySnapshot()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="12" alt="12"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h7">4</td><td class="ctr2" id="i7">4</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a4"><a href="UniformSnapshotTest.java.html#L185" class="el_method">calculatesAStdDevOfZeroForAnEmptySnapshot()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="12" alt="12"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h8">4</td><td class="ctr2" id="i8">4</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a16"><a href="UniformSnapshotTest.java.html#L47" class="el_method">hasAMedian()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="11" alt="11"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h18">2</td><td class="ctr2" id="i18">2</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a17"><a href="UniformSnapshotTest.java.html#L52" class="el_method">hasAp75()</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="11" alt="11"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h19">2</td><td class="ctr2" id="i19">2</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a18"><a href="UniformSnapshotTest.java.html#L57" class="el_method">hasAp95()</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="11" alt="11"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h20">2</td><td class="ctr2" id="i20">2</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a19"><a href="UniformSnapshotTest.java.html#L62" class="el_method">hasAp98()</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="11" alt="11"/></td><td class="ctr2" id="c16">0%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h21">2</td><td class="ctr2" id="i21">2</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a20"><a href="UniformSnapshotTest.java.html#L67" class="el_method">hasAp99()</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="11" alt="11"/></td><td class="ctr2" id="c17">0%</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">1</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h22">2</td><td class="ctr2" id="i22">2</td><td class="ctr1" id="j17">1</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a21"><a href="UniformSnapshotTest.java.html#L72" class="el_method">hasAp999()</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="11" alt="11"/></td><td class="ctr2" id="c18">0%</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f18">1</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h23">2</td><td class="ctr2" id="i23">2</td><td class="ctr1" id="j18">1</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a9"><a href="UniformSnapshotTest.java.html#L155" class="el_method">calculatesTheStdDev()</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="11" alt="11"/></td><td class="ctr2" id="c19">0%</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">1</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h12">3</td><td class="ctr2" id="i12">3</td><td class="ctr1" id="j19">1</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a22"><a href="UniformSnapshotTest.java.html#L83" class="el_method">hasASize()</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="8" alt="8"/></td><td class="ctr2" id="c20">0%</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f20">1</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h13">3</td><td class="ctr2" id="i13">3</td><td class="ctr1" id="j20">1</td><td class="ctr2" id="k20">1</td></tr><tr><td id="a8"><a href="UniformSnapshotTest.java.html#L137" class="el_method">calculatesTheMinimumValue()</a></td><td class="bar" id="b21"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="8" alt="8"/></td><td class="ctr2" id="c21">0%</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f21">1</td><td class="ctr2" id="g21">1</td><td class="ctr1" id="h14">3</td><td class="ctr2" id="i14">3</td><td class="ctr1" id="j21">1</td><td class="ctr2" id="k21">1</td></tr><tr><td id="a6"><a href="UniformSnapshotTest.java.html#L143" class="el_method">calculatesTheMaximumValue()</a></td><td class="bar" id="b22"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="8" alt="8"/></td><td class="ctr2" id="c22">0%</td><td class="bar" id="d22"/><td class="ctr2" id="e22">n/a</td><td class="ctr1" id="f22">1</td><td class="ctr2" id="g22">1</td><td class="ctr1" id="h15">3</td><td class="ctr2" id="i15">3</td><td class="ctr1" id="j22">1</td><td class="ctr2" id="k22">1</td></tr><tr><td id="a7"><a href="UniformSnapshotTest.java.html#L149" class="el_method">calculatesTheMeanValue()</a></td><td class="bar" id="b23"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="8" alt="8"/></td><td class="ctr2" id="c23">0%</td><td class="bar" id="d23"/><td class="ctr2" id="e23">n/a</td><td class="ctr1" id="f23">1</td><td class="ctr2" id="g23">1</td><td class="ctr1" id="h16">3</td><td class="ctr2" id="i16">3</td><td class="ctr1" id="j23">1</td><td class="ctr2" id="k23">1</td></tr><tr><td id="a13"><a href="UniformSnapshotTest.java.html#L32" class="el_method">disallowsNotANumberQuantile()</a></td><td class="bar" id="b24"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="6" alt="6"/></td><td class="ctr2" id="c24">0%</td><td class="bar" id="d24"/><td class="ctr2" id="e24">n/a</td><td class="ctr1" id="f24">1</td><td class="ctr2" id="g24">1</td><td class="ctr1" id="h24">2</td><td class="ctr2" id="i24">2</td><td class="ctr1" id="j24">1</td><td class="ctr2" id="k24">1</td></tr><tr><td id="a12"><a href="UniformSnapshotTest.java.html#L37" class="el_method">disallowsNegativeQuantile()</a></td><td class="bar" id="b25"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="6" alt="6"/></td><td class="ctr2" id="c25">0%</td><td class="bar" id="d25"/><td class="ctr2" id="e25">n/a</td><td class="ctr1" id="f25">1</td><td class="ctr2" id="g25">1</td><td class="ctr1" id="h25">2</td><td class="ctr2" id="i25">2</td><td class="ctr1" id="j25">1</td><td class="ctr2" id="k25">1</td></tr><tr><td id="a14"><a href="UniformSnapshotTest.java.html#L42" class="el_method">disallowsQuantileOverOne()</a></td><td class="bar" id="b26"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="6" alt="6"/></td><td class="ctr2" id="c26">0%</td><td class="bar" id="d26"/><td class="ctr2" id="e26">n/a</td><td class="ctr1" id="f26">1</td><td class="ctr2" id="g26">1</td><td class="ctr1" id="h26">2</td><td class="ctr2" id="i26">2</td><td class="ctr1" id="j26">1</td><td class="ctr2" id="k26">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshotTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshotTest.java.html
    deleted file mode 100644
    index 598c7623b7..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/UniformSnapshotTest.java.html
    +++ /dev/null
    @@ -1,199 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>UniformSnapshotTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">UniformSnapshotTest.java</span></div><h1>UniformSnapshotTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import org.junit.Test;
    -
    -import java.io.ByteArrayOutputStream;
    -import java.util.Random;
    -import java.util.concurrent.ConcurrentSkipListSet;
    -import java.util.concurrent.CountDownLatch;
    -import java.util.concurrent.TimeUnit;
    -
    -import static java.util.Arrays.asList;
    -import static org.assertj.core.api.Assertions.assertThat;
    -import static org.assertj.core.api.Assertions.offset;
    -
    -<span class="nc" id="L15">public class UniformSnapshotTest {</span>
    -<span class="nc" id="L16">    private final Snapshot snapshot = new UniformSnapshot(new long[]{5, 1, 2, 3, 4});</span>
    -
    -    @Test
    -    public void smallQuantilesAreTheFirstValue() {
    -<span class="nc" id="L20">        assertThat(snapshot.getValue(0.0))</span>
    -<span class="nc" id="L21">                .isEqualTo(1, offset(0.1));</span>
    -<span class="nc" id="L22">    }</span>
    -
    -    @Test
    -    public void bigQuantilesAreTheLastValue() {
    -<span class="nc" id="L26">        assertThat(snapshot.getValue(1.0))</span>
    -<span class="nc" id="L27">                .isEqualTo(5, offset(0.1));</span>
    -<span class="nc" id="L28">    }</span>
    -
    -    @Test(expected = IllegalArgumentException.class)
    -    public void disallowsNotANumberQuantile() {
    -<span class="nc" id="L32">        snapshot.getValue(Double.NaN);</span>
    -<span class="nc" id="L33">    }</span>
    -
    -    @Test(expected = IllegalArgumentException.class)
    -    public void disallowsNegativeQuantile() {
    -<span class="nc" id="L37">        snapshot.getValue(-0.5);</span>
    -<span class="nc" id="L38">    }</span>
    -
    -    @Test(expected = IllegalArgumentException.class)
    -    public void disallowsQuantileOverOne() {
    -<span class="nc" id="L42">        snapshot.getValue(1.5);</span>
    -<span class="nc" id="L43">    }</span>
    -
    -    @Test
    -    public void hasAMedian() {
    -<span class="nc" id="L47">        assertThat(snapshot.getMedian()).isEqualTo(3, offset(0.1));</span>
    -<span class="nc" id="L48">    }</span>
    -
    -    @Test
    -    public void hasAp75() {
    -<span class="nc" id="L52">        assertThat(snapshot.get75thPercentile()).isEqualTo(4.5, offset(0.1));</span>
    -<span class="nc" id="L53">    }</span>
    -
    -    @Test
    -    public void hasAp95() {
    -<span class="nc" id="L57">        assertThat(snapshot.get95thPercentile()).isEqualTo(5.0, offset(0.1));</span>
    -<span class="nc" id="L58">    }</span>
    -
    -    @Test
    -    public void hasAp98() {
    -<span class="nc" id="L62">        assertThat(snapshot.get98thPercentile()).isEqualTo(5.0, offset(0.1));</span>
    -<span class="nc" id="L63">    }</span>
    -
    -    @Test
    -    public void hasAp99() {
    -<span class="nc" id="L67">        assertThat(snapshot.get99thPercentile()).isEqualTo(5.0, offset(0.1));</span>
    -<span class="nc" id="L68">    }</span>
    -
    -    @Test
    -    public void hasAp999() {
    -<span class="nc" id="L72">        assertThat(snapshot.get999thPercentile()).isEqualTo(5.0, offset(0.1));</span>
    -<span class="nc" id="L73">    }</span>
    -
    -    @Test
    -    public void hasValues() {
    -<span class="nc" id="L77">        assertThat(snapshot.getValues())</span>
    -<span class="nc" id="L78">                .containsOnly(1, 2, 3, 4, 5);</span>
    -<span class="nc" id="L79">    }</span>
    -
    -    @Test
    -    public void hasASize() {
    -<span class="nc" id="L83">        assertThat(snapshot.size())</span>
    -<span class="nc" id="L84">                .isEqualTo(5);</span>
    -<span class="nc" id="L85">    }</span>
    -
    -    @Test
    -    public void canAlsoBeCreatedFromACollectionOfLongs() {
    -<span class="nc" id="L89">        final Snapshot other = new UniformSnapshot(asList(5L, 1L, 2L, 3L, 4L));</span>
    -
    -<span class="nc" id="L91">        assertThat(other.getValues())</span>
    -<span class="nc" id="L92">                .containsOnly(1, 2, 3, 4, 5);</span>
    -<span class="nc" id="L93">    }</span>
    -
    -    @Test
    -    public void correctlyCreatedFromCollectionWithWeakIterator() throws Exception {
    -<span class="nc" id="L97">        final ConcurrentSkipListSet&lt;Long&gt; values = new ConcurrentSkipListSet&lt;&gt;();</span>
    -
    -        // Create a latch to make sure that the background thread has started and
    -        // pushed some data to the collection.
    -<span class="nc" id="L101">        final CountDownLatch latch = new CountDownLatch(10);</span>
    -<span class="nc" id="L102">        final Thread backgroundThread = new Thread(() -&gt; {</span>
    -<span class="nc" id="L103">            final Random random = new Random();</span>
    -            // Update the collection in the loop to trigger a potential `ArrayOutOfBoundException`
    -            // and verify that the snapshot doesn't make assumptions about the size of the iterator.
    -<span class="nc bnc" id="L106" title="All 2 branches missed.">            while (!Thread.currentThread().isInterrupted()) {</span>
    -<span class="nc" id="L107">                values.add(random.nextLong());</span>
    -<span class="nc" id="L108">                latch.countDown();</span>
    -            }
    -<span class="nc" id="L110">        });</span>
    -<span class="nc" id="L111">        backgroundThread.start();</span>
    -
    -        try {
    -<span class="nc" id="L114">            latch.await(5, TimeUnit.SECONDS);</span>
    -<span class="nc" id="L115">            assertThat(latch.getCount()).isEqualTo(0);</span>
    -
    -            // Create a snapshot while the  collection is being updated.
    -<span class="nc" id="L118">            final Snapshot snapshot = new UniformSnapshot(values);</span>
    -<span class="nc" id="L119">            assertThat(snapshot.getValues().length).isGreaterThanOrEqualTo(10);</span>
    -        } finally {
    -<span class="nc" id="L121">            backgroundThread.interrupt();</span>
    -        }
    -<span class="nc" id="L123">    }</span>
    -
    -    @Test
    -    public void dumpsToAStream() {
    -<span class="nc" id="L127">        final ByteArrayOutputStream output = new ByteArrayOutputStream();</span>
    -
    -<span class="nc" id="L129">        snapshot.dump(output);</span>
    -
    -<span class="nc" id="L131">        assertThat(output.toString())</span>
    -<span class="nc" id="L132">                .isEqualTo(String.format(&quot;1%n2%n3%n4%n5%n&quot;));</span>
    -<span class="nc" id="L133">    }</span>
    -
    -    @Test
    -    public void calculatesTheMinimumValue() {
    -<span class="nc" id="L137">        assertThat(snapshot.getMin())</span>
    -<span class="nc" id="L138">                .isEqualTo(1);</span>
    -<span class="nc" id="L139">    }</span>
    -
    -    @Test
    -    public void calculatesTheMaximumValue() {
    -<span class="nc" id="L143">        assertThat(snapshot.getMax())</span>
    -<span class="nc" id="L144">                .isEqualTo(5);</span>
    -<span class="nc" id="L145">    }</span>
    -
    -    @Test
    -    public void calculatesTheMeanValue() {
    -<span class="nc" id="L149">        assertThat(snapshot.getMean())</span>
    -<span class="nc" id="L150">                .isEqualTo(3.0);</span>
    -<span class="nc" id="L151">    }</span>
    -
    -    @Test
    -    public void calculatesTheStdDev() {
    -<span class="nc" id="L155">        assertThat(snapshot.getStdDev())</span>
    -<span class="nc" id="L156">                .isEqualTo(1.5811, offset(0.0001));</span>
    -<span class="nc" id="L157">    }</span>
    -
    -    @Test
    -    public void calculatesAMinOfZeroForAnEmptySnapshot() {
    -<span class="nc" id="L161">        final Snapshot emptySnapshot = new UniformSnapshot(new long[]{});</span>
    -
    -<span class="nc" id="L163">        assertThat(emptySnapshot.getMin())</span>
    -<span class="nc" id="L164">                .isZero();</span>
    -<span class="nc" id="L165">    }</span>
    -
    -    @Test
    -    public void calculatesAMaxOfZeroForAnEmptySnapshot() {
    -<span class="nc" id="L169">        final Snapshot emptySnapshot = new UniformSnapshot(new long[]{});</span>
    -
    -<span class="nc" id="L171">        assertThat(emptySnapshot.getMax())</span>
    -<span class="nc" id="L172">                .isZero();</span>
    -<span class="nc" id="L173">    }</span>
    -
    -    @Test
    -    public void calculatesAMeanOfZeroForAnEmptySnapshot() {
    -<span class="nc" id="L177">        final Snapshot emptySnapshot = new UniformSnapshot(new long[]{});</span>
    -
    -<span class="nc" id="L179">        assertThat(emptySnapshot.getMean())</span>
    -<span class="nc" id="L180">                .isZero();</span>
    -<span class="nc" id="L181">    }</span>
    -
    -    @Test
    -    public void calculatesAStdDevOfZeroForAnEmptySnapshot() {
    -<span class="nc" id="L185">        final Snapshot emptySnapshot = new UniformSnapshot(new long[]{});</span>
    -
    -<span class="nc" id="L187">        assertThat(emptySnapshot.getStdDev())</span>
    -<span class="nc" id="L188">                .isZero();</span>
    -<span class="nc" id="L189">    }</span>
    -
    -    @Test
    -    public void calculatesAStdDevOfZeroForASingletonSnapshot() {
    -<span class="nc" id="L193">        final Snapshot singleItemSnapshot = new UniformSnapshot(new long[]{1});</span>
    -
    -<span class="nc" id="L195">        assertThat(singleItemSnapshot.getStdDev())</span>
    -<span class="nc" id="L196">                .isZero();</span>
    -<span class="nc" id="L197">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot$WeightedSample.html b/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot$WeightedSample.html
    deleted file mode 100644
    index 0f22c93f29..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot$WeightedSample.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>WeightedSnapshot.WeightedSample</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">WeightedSnapshot.WeightedSample</span></div><h1>WeightedSnapshot.WeightedSample</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">9 of 9</td><td class="ctr2">0%</td><td class="bar">0 of 0</td><td class="ctr2">n/a</td><td class="ctr1">1</td><td class="ctr2">1</td><td class="ctr1">4</td><td class="ctr2">4</td><td class="ctr1">1</td><td class="ctr2">1</td></tr></tfoot><tbody><tr><td id="a0"><a href="WeightedSnapshot.java.html#L24" class="el_method">WeightedSnapshot.WeightedSample(long, double)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="9" alt="9"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d0"/><td class="ctr2" id="e0">n/a</td><td class="ctr1" id="f0">1</td><td class="ctr2" id="g0">1</td><td class="ctr1" id="h0">4</td><td class="ctr2" id="i0">4</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot.html b/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot.html
    deleted file mode 100644
    index 524829a3c3..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>WeightedSnapshot</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">WeightedSnapshot</span></div><h1>WeightedSnapshot</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">334 of 334</td><td class="ctr2">0%</td><td class="bar">36 of 36</td><td class="ctr2">0%</td><td class="ctr1">28</td><td class="ctr2">28</td><td class="ctr1">53</td><td class="ctr2">53</td><td class="ctr1">10</td><td class="ctr2">10</td></tr></tfoot><tbody><tr><td id="a9"><a href="WeightedSnapshot.java.html#L39" class="el_method">WeightedSnapshot(Collection)</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="108" alt="108"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="68" height="10" title="8" alt="8"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f1">5</td><td class="ctr2" id="g1">5</td><td class="ctr1" id="h0">15</td><td class="ctr2" id="i0">15</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a5"><a href="WeightedSnapshot.java.html#L71" class="el_method">getValue(double)</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="81" height="10" title="73" alt="73"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="14" alt="14"/></td><td class="ctr2" id="e1">0%</td><td class="ctr1" id="f0">8</td><td class="ctr2" id="g0">8</td><td class="ctr1" id="h1">12</td><td class="ctr2" id="i1">12</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a4"><a href="WeightedSnapshot.java.html#L167" class="el_method">getStdDev()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="43" alt="43"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e2">0%</td><td class="ctr1" id="f2">3</td><td class="ctr2" id="g2">3</td><td class="ctr1" id="h2">8</td><td class="ctr2" id="i2">8</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a0"><a href="WeightedSnapshot.java.html#L189" class="el_method">dump(OutputStream)</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="42" height="10" title="38" alt="38"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="2" alt="2"/></td><td class="ctr2" id="e3">0%</td><td class="ctr1" id="f4">2</td><td class="ctr2" id="g4">2</td><td class="ctr1" id="h4">4</td><td class="ctr2" id="i4">4</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a2"><a href="WeightedSnapshot.java.html#L147" class="el_method">getMean()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="35" height="10" title="32" alt="32"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="34" height="10" title="4" alt="4"/></td><td class="ctr2" id="e4">0%</td><td class="ctr1" id="f3">3</td><td class="ctr2" id="g3">3</td><td class="ctr1" id="h3">6</td><td class="ctr2" id="i3">6</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a1"><a href="WeightedSnapshot.java.html#L121" class="el_method">getMax()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="15" alt="15"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="2" alt="2"/></td><td class="ctr2" id="e5">0%</td><td class="ctr1" id="f5">2</td><td class="ctr2" id="g5">2</td><td class="ctr1" id="h5">3</td><td class="ctr2" id="i5">3</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a3"><a href="WeightedSnapshot.java.html#L134" class="el_method">getMin()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="11" alt="11"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"><img src="../jacoco-resources/redbar.gif" width="17" height="10" title="2" alt="2"/></td><td class="ctr2" id="e6">0%</td><td class="ctr1" id="f6">2</td><td class="ctr2" id="g6">2</td><td class="ctr1" id="h6">3</td><td class="ctr2" id="i6">3</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a6"><a href="WeightedSnapshot.java.html#L111" class="el_method">getValues()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="7" alt="7"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h7">1</td><td class="ctr2" id="i7">1</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a8"><a href="WeightedSnapshot.java.html#L101" class="el_method">size()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="4" alt="4"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h8">1</td><td class="ctr2" id="i8">1</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a7"><a href="WeightedSnapshot.java.html#L42" class="el_method">lambda$new$0(WeightedSnapshot.WeightedSample)</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="3" alt="3"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h9">1</td><td class="ctr2" id="i9">1</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot.java.html
    deleted file mode 100644
    index 6fdfe91734..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshot.java.html
    +++ /dev/null
    @@ -1,196 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>WeightedSnapshot.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">WeightedSnapshot.java</span></div><h1>WeightedSnapshot.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import java.io.OutputStream;
    -import java.io.OutputStreamWriter;
    -import java.io.PrintWriter;
    -import java.util.Arrays;
    -import java.util.Collection;
    -import java.util.Comparator;
    -
    -import static java.nio.charset.StandardCharsets.UTF_8;
    -
    -/**
    - * A statistical snapshot of a {@link WeightedSnapshot}.
    - */
    -public class WeightedSnapshot extends Snapshot {
    -
    -    /**
    -     * A single sample item with value and its weights for {@link WeightedSnapshot}.
    -     */
    -    public static class WeightedSample {
    -        public final long value;
    -        public final double weight;
    -
    -<span class="nc" id="L24">        public WeightedSample(long value, double weight) {</span>
    -<span class="nc" id="L25">            this.value = value;</span>
    -<span class="nc" id="L26">            this.weight = weight;</span>
    -<span class="nc" id="L27">        }</span>
    -    }
    -
    -    private final long[] values;
    -    private final double[] normWeights;
    -    private final double[] quantiles;
    -
    -    /**
    -     * Create a new {@link Snapshot} with the given values.
    -     *
    -     * @param values an unordered set of values in the reservoir
    -     */
    -<span class="nc" id="L39">    public WeightedSnapshot(Collection&lt;WeightedSample&gt; values) {</span>
    -<span class="nc" id="L40">        final WeightedSample[] copy = values.toArray(new WeightedSample[]{});</span>
    -
    -<span class="nc" id="L42">        Arrays.sort(copy, Comparator.comparingLong(w -&gt; w.value));</span>
    -
    -<span class="nc" id="L44">        this.values = new long[copy.length];</span>
    -<span class="nc" id="L45">        this.normWeights = new double[copy.length];</span>
    -<span class="nc" id="L46">        this.quantiles = new double[copy.length];</span>
    -
    -<span class="nc" id="L48">        double sumWeight = 0;</span>
    -<span class="nc bnc" id="L49" title="All 2 branches missed.">        for (WeightedSample sample : copy) {</span>
    -<span class="nc" id="L50">            sumWeight += sample.weight;</span>
    -        }
    -
    -<span class="nc bnc" id="L53" title="All 2 branches missed.">        for (int i = 0; i &lt; copy.length; i++) {</span>
    -<span class="nc" id="L54">            this.values[i] = copy[i].value;</span>
    -<span class="nc bnc" id="L55" title="All 2 branches missed.">            this.normWeights[i] = sumWeight != 0 ? copy[i].weight / sumWeight : 0;</span>
    -        }
    -
    -<span class="nc bnc" id="L58" title="All 2 branches missed.">        for (int i = 1; i &lt; copy.length; i++) {</span>
    -<span class="nc" id="L59">            this.quantiles[i] = this.quantiles[i - 1] + this.normWeights[i - 1];</span>
    -        }
    -<span class="nc" id="L61">    }</span>
    -
    -    /**
    -     * Returns the value at the given quantile.
    -     *
    -     * @param quantile a given quantile, in {@code [0..1]}
    -     * @return the value in the distribution at {@code quantile}
    -     */
    -    @Override
    -    public double getValue(double quantile) {
    -<span class="nc bnc" id="L71" title="All 6 branches missed.">        if (quantile &lt; 0.0 || quantile &gt; 1.0 || Double.isNaN(quantile)) {</span>
    -<span class="nc" id="L72">            throw new IllegalArgumentException(quantile + &quot; is not in [0..1]&quot;);</span>
    -        }
    -
    -<span class="nc bnc" id="L75" title="All 2 branches missed.">        if (values.length == 0) {</span>
    -<span class="nc" id="L76">            return 0.0;</span>
    -        }
    -
    -<span class="nc" id="L79">        int posx = Arrays.binarySearch(quantiles, quantile);</span>
    -<span class="nc bnc" id="L80" title="All 2 branches missed.">        if (posx &lt; 0)</span>
    -<span class="nc" id="L81">            posx = ((-posx) - 1) - 1;</span>
    -
    -<span class="nc bnc" id="L83" title="All 2 branches missed.">        if (posx &lt; 1) {</span>
    -<span class="nc" id="L84">            return values[0];</span>
    -        }
    -
    -<span class="nc bnc" id="L87" title="All 2 branches missed.">        if (posx &gt;= values.length) {</span>
    -<span class="nc" id="L88">            return values[values.length - 1];</span>
    -        }
    -
    -<span class="nc" id="L91">        return values[posx];</span>
    -    }
    -
    -    /**
    -     * Returns the number of values in the snapshot.
    -     *
    -     * @return the number of values
    -     */
    -    @Override
    -    public int size() {
    -<span class="nc" id="L101">        return values.length;</span>
    -    }
    -
    -    /**
    -     * Returns the entire set of values in the snapshot.
    -     *
    -     * @return the entire set of values
    -     */
    -    @Override
    -    public long[] getValues() {
    -<span class="nc" id="L111">        return Arrays.copyOf(values, values.length);</span>
    -    }
    -
    -    /**
    -     * Returns the highest value in the snapshot.
    -     *
    -     * @return the highest value
    -     */
    -    @Override
    -    public long getMax() {
    -<span class="nc bnc" id="L121" title="All 2 branches missed.">        if (values.length == 0) {</span>
    -<span class="nc" id="L122">            return 0;</span>
    -        }
    -<span class="nc" id="L124">        return values[values.length - 1];</span>
    -    }
    -
    -    /**
    -     * Returns the lowest value in the snapshot.
    -     *
    -     * @return the lowest value
    -     */
    -    @Override
    -    public long getMin() {
    -<span class="nc bnc" id="L134" title="All 2 branches missed.">        if (values.length == 0) {</span>
    -<span class="nc" id="L135">            return 0;</span>
    -        }
    -<span class="nc" id="L137">        return values[0];</span>
    -    }
    -
    -    /**
    -     * Returns the weighted arithmetic mean of the values in the snapshot.
    -     *
    -     * @return the weighted arithmetic mean
    -     */
    -    @Override
    -    public double getMean() {
    -<span class="nc bnc" id="L147" title="All 2 branches missed.">        if (values.length == 0) {</span>
    -<span class="nc" id="L148">            return 0;</span>
    -        }
    -
    -<span class="nc" id="L151">        double sum = 0;</span>
    -<span class="nc bnc" id="L152" title="All 2 branches missed.">        for (int i = 0; i &lt; values.length; i++) {</span>
    -<span class="nc" id="L153">            sum += values[i] * normWeights[i];</span>
    -        }
    -<span class="nc" id="L155">        return sum;</span>
    -    }
    -
    -    /**
    -     * Returns the weighted standard deviation of the values in the snapshot.
    -     *
    -     * @return the weighted standard deviation value
    -     */
    -    @Override
    -    public double getStdDev() {
    -        // two-pass algorithm for variance, avoids numeric overflow
    -
    -<span class="nc bnc" id="L167" title="All 2 branches missed.">        if (values.length &lt;= 1) {</span>
    -<span class="nc" id="L168">            return 0;</span>
    -        }
    -
    -<span class="nc" id="L171">        final double mean = getMean();</span>
    -<span class="nc" id="L172">        double variance = 0;</span>
    -
    -<span class="nc bnc" id="L174" title="All 2 branches missed.">        for (int i = 0; i &lt; values.length; i++) {</span>
    -<span class="nc" id="L175">            final double diff = values[i] - mean;</span>
    -<span class="nc" id="L176">            variance += normWeights[i] * diff * diff;</span>
    -        }
    -
    -<span class="nc" id="L179">        return Math.sqrt(variance);</span>
    -    }
    -
    -    /**
    -     * Writes the values of the snapshot to the given stream.
    -     *
    -     * @param output an output stream
    -     */
    -    @Override
    -    public void dump(OutputStream output) {
    -<span class="nc" id="L189">        try (PrintWriter out = new PrintWriter(new OutputStreamWriter(output, UTF_8))) {</span>
    -<span class="nc bnc" id="L190" title="All 2 branches missed.">            for (long value : values) {</span>
    -<span class="nc" id="L191">                out.printf(&quot;%d%n&quot;, value);</span>
    -            }
    -        }
    -<span class="nc" id="L194">    }</span>
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshotTest.html b/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshotTest.html
    deleted file mode 100644
    index 565caa6af1..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshotTest.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>WeightedSnapshotTest</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_class">WeightedSnapshotTest</span></div><h1>WeightedSnapshotTest</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">685 of 685</td><td class="ctr2">0%</td><td class="bar">4 of 4</td><td class="ctr2">0%</td><td class="ctr1">31</td><td class="ctr2">31</td><td class="ctr1">106</td><td class="ctr2">106</td><td class="ctr1">29</td><td class="ctr2">29</td></tr></tfoot><tbody><tr><td id="a28"><a href="WeightedSnapshotTest.java.html#L106" class="el_method">worksWithUnderestimatedCollections()</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="111" alt="111"/></td><td class="ctr2" id="c0">0%</td><td class="bar" id="d1"/><td class="ctr2" id="e1">n/a</td><td class="ctr1" id="f1">1</td><td class="ctr2" id="g1">1</td><td class="ctr1" id="h0">8</td><td class="ctr2" id="i0">8</td><td class="ctr1" id="j0">1</td><td class="ctr2" id="k0">1</td></tr><tr><td id="a27"><a href="WeightedSnapshotTest.java.html#L119" class="el_method">worksWithOverestimatedCollections()</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="111" alt="111"/></td><td class="ctr2" id="c1">0%</td><td class="bar" id="d2"/><td class="ctr2" id="e2">n/a</td><td class="ctr1" id="f2">1</td><td class="ctr2" id="g2">1</td><td class="ctr1" id="h1">8</td><td class="ctr2" id="i1">8</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">1</td></tr><tr><td id="a26"><a href="WeightedSnapshotTest.java.html#L17" class="el_method">WeightedSnapshotTest()</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="57" height="10" title="53" alt="53"/></td><td class="ctr2" id="c2">0%</td><td class="bar" id="d3"/><td class="ctr2" id="e3">n/a</td><td class="ctr1" id="f3">1</td><td class="ctr2" id="g3">1</td><td class="ctr1" id="h11">3</td><td class="ctr2" id="i11">3</td><td class="ctr1" id="j2">1</td><td class="ctr2" id="k2">1</td></tr><tr><td id="a25"><a href="WeightedSnapshotTest.java.html#L20" class="el_method">weightedArray(long[], double[])</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="49" alt="49"/></td><td class="ctr2" id="c3">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="4" alt="4"/></td><td class="ctr2" id="e0">0%</td><td class="ctr1" id="f0">3</td><td class="ctr2" id="g0">3</td><td class="ctr1" id="h2">6</td><td class="ctr2" id="i2">6</td><td class="ctr1" id="j3">1</td><td class="ctr2" id="k3">1</td></tr><tr><td id="a15"><a href="WeightedSnapshotTest.java.html#L211" class="el_method">expectNoOverflowForLowWeights()</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="40" alt="40"/></td><td class="ctr2" id="c4">0%</td><td class="bar" id="d4"/><td class="ctr2" id="e4">n/a</td><td class="ctr1" id="f4">1</td><td class="ctr2" id="g4">1</td><td class="ctr1" id="h3">5</td><td class="ctr2" id="i3">5</td><td class="ctr1" id="j4">1</td><td class="ctr2" id="k4">1</td></tr><tr><td id="a13"><a href="WeightedSnapshotTest.java.html#L224" class="el_method">doesNotProduceNaNValues()</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="40" alt="40"/></td><td class="ctr2" id="c5">0%</td><td class="bar" id="d5"/><td class="ctr2" id="e5">n/a</td><td class="ctr1" id="f5">1</td><td class="ctr2" id="g5">1</td><td class="ctr1" id="h10">4</td><td class="ctr2" id="i10">4</td><td class="ctr1" id="j5">1</td><td class="ctr2" id="k5">1</td></tr><tr><td id="a23"><a href="WeightedSnapshotTest.java.html#L94" class="el_method">hasValues()</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="31" height="10" title="29" alt="29"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d6"/><td class="ctr2" id="e6">n/a</td><td class="ctr1" id="f6">1</td><td class="ctr2" id="g6">1</td><td class="ctr1" id="h12">3</td><td class="ctr2" id="i12">3</td><td class="ctr1" id="j6">1</td><td class="ctr2" id="k6">1</td></tr><tr><td id="a5"><a href="WeightedSnapshotTest.java.html#L202" class="el_method">calculatesAStdDevOfZeroForASingletonSnapshot()</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="23" alt="23"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d7"/><td class="ctr2" id="e7">n/a</td><td class="ctr1" id="f7">1</td><td class="ctr2" id="g7">1</td><td class="ctr1" id="h4">5</td><td class="ctr2" id="i4">5</td><td class="ctr1" id="j7">1</td><td class="ctr2" id="k7">1</td></tr><tr><td id="a14"><a href="WeightedSnapshotTest.java.html#L132" class="el_method">dumpsToAStream()</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="18" alt="18"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d8"/><td class="ctr2" id="e8">n/a</td><td class="ctr1" id="f8">1</td><td class="ctr2" id="g8">1</td><td class="ctr1" id="h5">5</td><td class="ctr2" id="i5">5</td><td class="ctr1" id="j8">1</td><td class="ctr2" id="k8">1</td></tr><tr><td id="a3"><a href="WeightedSnapshotTest.java.html#L166" class="el_method">calculatesAMinOfZeroForAnEmptySnapshot()</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="15" alt="15"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d9"/><td class="ctr2" id="e9">n/a</td><td class="ctr1" id="f9">1</td><td class="ctr2" id="g9">1</td><td class="ctr1" id="h6">5</td><td class="ctr2" id="i6">5</td><td class="ctr1" id="j9">1</td><td class="ctr2" id="k9">1</td></tr><tr><td id="a1"><a href="WeightedSnapshotTest.java.html#L175" class="el_method">calculatesAMaxOfZeroForAnEmptySnapshot()</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="15" alt="15"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d10"/><td class="ctr2" id="e10">n/a</td><td class="ctr1" id="f10">1</td><td class="ctr2" id="g10">1</td><td class="ctr1" id="h7">5</td><td class="ctr2" id="i7">5</td><td class="ctr1" id="j10">1</td><td class="ctr2" id="k10">1</td></tr><tr><td id="a2"><a href="WeightedSnapshotTest.java.html#L184" class="el_method">calculatesAMeanOfZeroForAnEmptySnapshot()</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="15" alt="15"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d11"/><td class="ctr2" id="e11">n/a</td><td class="ctr1" id="f11">1</td><td class="ctr2" id="g11">1</td><td class="ctr1" id="h8">5</td><td class="ctr2" id="i8">5</td><td class="ctr1" id="j11">1</td><td class="ctr2" id="k11">1</td></tr><tr><td id="a4"><a href="WeightedSnapshotTest.java.html#L193" class="el_method">calculatesAStdDevOfZeroForAnEmptySnapshot()</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="15" alt="15"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"/><td class="ctr2" id="e12">n/a</td><td class="ctr1" id="f12">1</td><td class="ctr2" id="g12">1</td><td class="ctr1" id="h9">5</td><td class="ctr2" id="i9">5</td><td class="ctr1" id="j12">1</td><td class="ctr2" id="k12">1</td></tr><tr><td id="a24"><a href="WeightedSnapshotTest.java.html#L37" class="el_method">smallQuantilesAreTheFirstValue()</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="12" alt="12"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d13"/><td class="ctr2" id="e13">n/a</td><td class="ctr1" id="f13">1</td><td class="ctr2" id="g13">1</td><td class="ctr1" id="h13">3</td><td class="ctr2" id="i13">3</td><td class="ctr1" id="j13">1</td><td class="ctr2" id="k13">1</td></tr><tr><td id="a0"><a href="WeightedSnapshotTest.java.html#L43" class="el_method">bigQuantilesAreTheLastValue()</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="12" alt="12"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d14"/><td class="ctr2" id="e14">n/a</td><td class="ctr1" id="f14">1</td><td class="ctr2" id="g14">1</td><td class="ctr1" id="h14">3</td><td class="ctr2" id="i14">3</td><td class="ctr1" id="j14">1</td><td class="ctr2" id="k14">1</td></tr><tr><td id="a16"><a href="WeightedSnapshotTest.java.html#L64" class="el_method">hasAMedian()</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d15"/><td class="ctr2" id="e15">n/a</td><td class="ctr1" id="f15">1</td><td class="ctr2" id="g15">1</td><td class="ctr1" id="h20">2</td><td class="ctr2" id="i20">2</td><td class="ctr1" id="j15">1</td><td class="ctr2" id="k15">1</td></tr><tr><td id="a17"><a href="WeightedSnapshotTest.java.html#L69" class="el_method">hasAp75()</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="c16">0%</td><td class="bar" id="d16"/><td class="ctr2" id="e16">n/a</td><td class="ctr1" id="f16">1</td><td class="ctr2" id="g16">1</td><td class="ctr1" id="h21">2</td><td class="ctr2" id="i21">2</td><td class="ctr1" id="j16">1</td><td class="ctr2" id="k16">1</td></tr><tr><td id="a18"><a href="WeightedSnapshotTest.java.html#L74" class="el_method">hasAp95()</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="c17">0%</td><td class="bar" id="d17"/><td class="ctr2" id="e17">n/a</td><td class="ctr1" id="f17">1</td><td class="ctr2" id="g17">1</td><td class="ctr1" id="h22">2</td><td class="ctr2" id="i22">2</td><td class="ctr1" id="j17">1</td><td class="ctr2" id="k17">1</td></tr><tr><td id="a19"><a href="WeightedSnapshotTest.java.html#L79" class="el_method">hasAp98()</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="c18">0%</td><td class="bar" id="d18"/><td class="ctr2" id="e18">n/a</td><td class="ctr1" id="f18">1</td><td class="ctr2" id="g18">1</td><td class="ctr1" id="h23">2</td><td class="ctr2" id="i23">2</td><td class="ctr1" id="j18">1</td><td class="ctr2" id="k18">1</td></tr><tr><td id="a20"><a href="WeightedSnapshotTest.java.html#L84" class="el_method">hasAp99()</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="c19">0%</td><td class="bar" id="d19"/><td class="ctr2" id="e19">n/a</td><td class="ctr1" id="f19">1</td><td class="ctr2" id="g19">1</td><td class="ctr1" id="h24">2</td><td class="ctr2" id="i24">2</td><td class="ctr1" id="j19">1</td><td class="ctr2" id="k19">1</td></tr><tr><td id="a21"><a href="WeightedSnapshotTest.java.html#L89" class="el_method">hasAp999()</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="c20">0%</td><td class="bar" id="d20"/><td class="ctr2" id="e20">n/a</td><td class="ctr1" id="f20">1</td><td class="ctr2" id="g20">1</td><td class="ctr1" id="h25">2</td><td class="ctr2" id="i25">2</td><td class="ctr1" id="j20">1</td><td class="ctr2" id="k20">1</td></tr><tr><td id="a9"><a href="WeightedSnapshotTest.java.html#L160" class="el_method">calculatesTheStdDev()</a></td><td class="bar" id="b21"><img src="../jacoco-resources/redbar.gif" width="11" height="10" title="11" alt="11"/></td><td class="ctr2" id="c21">0%</td><td class="bar" id="d21"/><td class="ctr2" id="e21">n/a</td><td class="ctr1" id="f21">1</td><td class="ctr2" id="g21">1</td><td class="ctr1" id="h15">3</td><td class="ctr2" id="i15">3</td><td class="ctr1" id="j21">1</td><td class="ctr2" id="k21">1</td></tr><tr><td id="a22"><a href="WeightedSnapshotTest.java.html#L100" class="el_method">hasASize()</a></td><td class="bar" id="b22"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="8" alt="8"/></td><td class="ctr2" id="c22">0%</td><td class="bar" id="d22"/><td class="ctr2" id="e22">n/a</td><td class="ctr1" id="f22">1</td><td class="ctr2" id="g22">1</td><td class="ctr1" id="h16">3</td><td class="ctr2" id="i16">3</td><td class="ctr1" id="j22">1</td><td class="ctr2" id="k22">1</td></tr><tr><td id="a8"><a href="WeightedSnapshotTest.java.html#L142" class="el_method">calculatesTheMinimumValue()</a></td><td class="bar" id="b23"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="8" alt="8"/></td><td class="ctr2" id="c23">0%</td><td class="bar" id="d23"/><td class="ctr2" id="e23">n/a</td><td class="ctr1" id="f23">1</td><td class="ctr2" id="g23">1</td><td class="ctr1" id="h17">3</td><td class="ctr2" id="i17">3</td><td class="ctr1" id="j23">1</td><td class="ctr2" id="k23">1</td></tr><tr><td id="a6"><a href="WeightedSnapshotTest.java.html#L148" class="el_method">calculatesTheMaximumValue()</a></td><td class="bar" id="b24"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="8" alt="8"/></td><td class="ctr2" id="c24">0%</td><td class="bar" id="d24"/><td class="ctr2" id="e24">n/a</td><td class="ctr1" id="f24">1</td><td class="ctr2" id="g24">1</td><td class="ctr1" id="h18">3</td><td class="ctr2" id="i18">3</td><td class="ctr1" id="j24">1</td><td class="ctr2" id="k24">1</td></tr><tr><td id="a7"><a href="WeightedSnapshotTest.java.html#L154" class="el_method">calculatesTheMeanValue()</a></td><td class="bar" id="b25"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="8" alt="8"/></td><td class="ctr2" id="c25">0%</td><td class="bar" id="d25"/><td class="ctr2" id="e25">n/a</td><td class="ctr1" id="f25">1</td><td class="ctr2" id="g25">1</td><td class="ctr1" id="h19">3</td><td class="ctr2" id="i19">3</td><td class="ctr1" id="j25">1</td><td class="ctr2" id="k25">1</td></tr><tr><td id="a11"><a href="WeightedSnapshotTest.java.html#L49" class="el_method">disallowsNotANumberQuantile()</a></td><td class="bar" id="b26"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="c26">0%</td><td class="bar" id="d26"/><td class="ctr2" id="e26">n/a</td><td class="ctr1" id="f26">1</td><td class="ctr2" id="g26">1</td><td class="ctr1" id="h26">2</td><td class="ctr2" id="i26">2</td><td class="ctr1" id="j26">1</td><td class="ctr2" id="k26">1</td></tr><tr><td id="a10"><a href="WeightedSnapshotTest.java.html#L54" class="el_method">disallowsNegativeQuantile()</a></td><td class="bar" id="b27"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="c27">0%</td><td class="bar" id="d27"/><td class="ctr2" id="e27">n/a</td><td class="ctr1" id="f27">1</td><td class="ctr2" id="g27">1</td><td class="ctr1" id="h27">2</td><td class="ctr2" id="i27">2</td><td class="ctr1" id="j27">1</td><td class="ctr2" id="k27">1</td></tr><tr><td id="a12"><a href="WeightedSnapshotTest.java.html#L59" class="el_method">disallowsQuantileOverOne()</a></td><td class="bar" id="b28"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="6" alt="6"/></td><td class="ctr2" id="c28">0%</td><td class="bar" id="d28"/><td class="ctr2" id="e28">n/a</td><td class="ctr1" id="f28">1</td><td class="ctr2" id="g28">1</td><td class="ctr1" id="h28">2</td><td class="ctr2" id="i28">2</td><td class="ctr1" id="j28">1</td><td class="ctr2" id="k28">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshotTest.java.html b/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshotTest.java.html
    deleted file mode 100644
    index 1307bb6707..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/WeightedSnapshotTest.java.html
    +++ /dev/null
    @@ -1,230 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>WeightedSnapshotTest.java</title><link rel="stylesheet" href="../jacoco-resources/prettify.css" type="text/css"/><script type="text/javascript" src="../jacoco-resources/prettify.js"></script></head><body onload="window['PR_TAB_WIDTH']=4;prettyPrint()"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <a href="index.source.html" class="el_package">com.codahale.metrics</a> &gt; <span class="el_source">WeightedSnapshotTest.java</span></div><h1>WeightedSnapshotTest.java</h1><pre class="source lang-java linenums">package com.codahale.metrics;
    -
    -import com.codahale.metrics.WeightedSnapshot.WeightedSample;
    -import org.junit.Test;
    -import org.mockito.ArgumentMatchers;
    -
    -import java.io.ByteArrayOutputStream;
    -import java.util.ArrayList;
    -import java.util.List;
    -
    -import static org.assertj.core.api.Assertions.assertThat;
    -import static org.assertj.core.api.Assertions.offset;
    -import static org.mockito.Mockito.doReturn;
    -import static org.mockito.Mockito.spy;
    -import static org.mockito.Mockito.when;
    -
    -<span class="nc" id="L17">public class WeightedSnapshotTest {</span>
    -
    -    private static List&lt;WeightedSample&gt; weightedArray(long[] values, double[] weights) {
    -<span class="nc bnc" id="L20" title="All 2 branches missed.">        if (values.length != weights.length) {</span>
    -<span class="nc" id="L21">            throw new IllegalArgumentException(&quot;Mismatched lengths: &quot; + values.length + &quot; vs &quot; + weights.length);</span>
    -        }
    -
    -<span class="nc" id="L24">        final List&lt;WeightedSample&gt; samples = new ArrayList&lt;&gt;();</span>
    -<span class="nc bnc" id="L25" title="All 2 branches missed.">        for (int i = 0; i &lt; values.length; i++) {</span>
    -<span class="nc" id="L26">            samples.add(new WeightedSnapshot.WeightedSample(values[i], weights[i]));</span>
    -        }
    -
    -<span class="nc" id="L29">        return samples;</span>
    -    }
    -
    -<span class="nc" id="L32">    private final Snapshot snapshot = new WeightedSnapshot(</span>
    -<span class="nc" id="L33">            weightedArray(new long[]{5, 1, 2, 3, 4}, new double[]{1, 2, 3, 2, 2}));</span>
    -
    -    @Test
    -    public void smallQuantilesAreTheFirstValue() {
    -<span class="nc" id="L37">        assertThat(snapshot.getValue(0.0))</span>
    -<span class="nc" id="L38">                .isEqualTo(1.0, offset(0.1));</span>
    -<span class="nc" id="L39">    }</span>
    -
    -    @Test
    -    public void bigQuantilesAreTheLastValue() {
    -<span class="nc" id="L43">        assertThat(snapshot.getValue(1.0))</span>
    -<span class="nc" id="L44">                .isEqualTo(5.0, offset(0.1));</span>
    -<span class="nc" id="L45">    }</span>
    -
    -    @Test(expected = IllegalArgumentException.class)
    -    public void disallowsNotANumberQuantile() {
    -<span class="nc" id="L49">        snapshot.getValue(Double.NaN);</span>
    -<span class="nc" id="L50">    }</span>
    -
    -    @Test(expected = IllegalArgumentException.class)
    -    public void disallowsNegativeQuantile() {
    -<span class="nc" id="L54">        snapshot.getValue(-0.5);</span>
    -<span class="nc" id="L55">    }</span>
    -
    -    @Test(expected = IllegalArgumentException.class)
    -    public void disallowsQuantileOverOne() {
    -<span class="nc" id="L59">        snapshot.getValue(1.5);</span>
    -<span class="nc" id="L60">    }</span>
    -
    -    @Test
    -    public void hasAMedian() {
    -<span class="nc" id="L64">        assertThat(snapshot.getMedian()).isEqualTo(3.0, offset(0.1));</span>
    -<span class="nc" id="L65">    }</span>
    -
    -    @Test
    -    public void hasAp75() {
    -<span class="nc" id="L69">        assertThat(snapshot.get75thPercentile()).isEqualTo(4.0, offset(0.1));</span>
    -<span class="nc" id="L70">    }</span>
    -
    -    @Test
    -    public void hasAp95() {
    -<span class="nc" id="L74">        assertThat(snapshot.get95thPercentile()).isEqualTo(5.0, offset(0.1));</span>
    -<span class="nc" id="L75">    }</span>
    -
    -    @Test
    -    public void hasAp98() {
    -<span class="nc" id="L79">        assertThat(snapshot.get98thPercentile()).isEqualTo(5.0, offset(0.1));</span>
    -<span class="nc" id="L80">    }</span>
    -
    -    @Test
    -    public void hasAp99() {
    -<span class="nc" id="L84">        assertThat(snapshot.get99thPercentile()).isEqualTo(5.0, offset(0.1));</span>
    -<span class="nc" id="L85">    }</span>
    -
    -    @Test
    -    public void hasAp999() {
    -<span class="nc" id="L89">        assertThat(snapshot.get999thPercentile()).isEqualTo(5.0, offset(0.1));</span>
    -<span class="nc" id="L90">    }</span>
    -
    -    @Test
    -    public void hasValues() {
    -<span class="nc" id="L94">        assertThat(snapshot.getValues())</span>
    -<span class="nc" id="L95">                .containsOnly(1, 2, 3, 4, 5);</span>
    -<span class="nc" id="L96">    }</span>
    -
    -    @Test
    -    public void hasASize() {
    -<span class="nc" id="L100">        assertThat(snapshot.size())</span>
    -<span class="nc" id="L101">                .isEqualTo(5);</span>
    -<span class="nc" id="L102">    }</span>
    -
    -    @Test
    -    public void worksWithUnderestimatedCollections() {
    -<span class="nc" id="L106">        final List&lt;WeightedSample&gt; originalItems = weightedArray(new long[]{5, 1, 2, 3, 4}, new double[]{1, 2, 3, 2, 2});</span>
    -<span class="nc" id="L107">        final List&lt;WeightedSample&gt; spyItems = spy(originalItems);</span>
    -<span class="nc" id="L108">        doReturn(originalItems.toArray(new WeightedSample[]{})).when(spyItems).toArray(ArgumentMatchers.any(WeightedSample[].class));</span>
    -<span class="nc" id="L109">        when(spyItems.size()).thenReturn(4, 5);</span>
    -
    -<span class="nc" id="L111">        final Snapshot other = new WeightedSnapshot(spyItems);</span>
    -
    -<span class="nc" id="L113">        assertThat(other.getValues())</span>
    -<span class="nc" id="L114">                .containsOnly(1, 2, 3, 4, 5);</span>
    -<span class="nc" id="L115">    }</span>
    -
    -    @Test
    -    public void worksWithOverestimatedCollections() {
    -<span class="nc" id="L119">        final List&lt;WeightedSample&gt; originalItems = weightedArray(new long[]{5, 1, 2, 3, 4}, new double[]{1, 2, 3, 2, 2});</span>
    -<span class="nc" id="L120">        final List&lt;WeightedSample&gt; spyItems = spy(originalItems);</span>
    -<span class="nc" id="L121">        doReturn(originalItems.toArray(new WeightedSample[]{})).when(spyItems).toArray(ArgumentMatchers.any(WeightedSample[].class));</span>
    -<span class="nc" id="L122">        when(spyItems.size()).thenReturn(6, 5);</span>
    -
    -<span class="nc" id="L124">        final Snapshot other = new WeightedSnapshot(spyItems);</span>
    -
    -<span class="nc" id="L126">        assertThat(other.getValues())</span>
    -<span class="nc" id="L127">                .containsOnly(1, 2, 3, 4, 5);</span>
    -<span class="nc" id="L128">    }</span>
    -
    -    @Test
    -    public void dumpsToAStream() {
    -<span class="nc" id="L132">        final ByteArrayOutputStream output = new ByteArrayOutputStream();</span>
    -
    -<span class="nc" id="L134">        snapshot.dump(output);</span>
    -
    -<span class="nc" id="L136">        assertThat(output.toString())</span>
    -<span class="nc" id="L137">                .isEqualTo(String.format(&quot;1%n2%n3%n4%n5%n&quot;));</span>
    -<span class="nc" id="L138">    }</span>
    -
    -    @Test
    -    public void calculatesTheMinimumValue() {
    -<span class="nc" id="L142">        assertThat(snapshot.getMin())</span>
    -<span class="nc" id="L143">                .isEqualTo(1);</span>
    -<span class="nc" id="L144">    }</span>
    -
    -    @Test
    -    public void calculatesTheMaximumValue() {
    -<span class="nc" id="L148">        assertThat(snapshot.getMax())</span>
    -<span class="nc" id="L149">                .isEqualTo(5);</span>
    -<span class="nc" id="L150">    }</span>
    -
    -    @Test
    -    public void calculatesTheMeanValue() {
    -<span class="nc" id="L154">        assertThat(snapshot.getMean())</span>
    -<span class="nc" id="L155">                .isEqualTo(2.7);</span>
    -<span class="nc" id="L156">    }</span>
    -
    -    @Test
    -    public void calculatesTheStdDev() {
    -<span class="nc" id="L160">        assertThat(snapshot.getStdDev())</span>
    -<span class="nc" id="L161">                .isEqualTo(1.2688, offset(0.0001));</span>
    -<span class="nc" id="L162">    }</span>
    -
    -    @Test
    -    public void calculatesAMinOfZeroForAnEmptySnapshot() {
    -<span class="nc" id="L166">        final Snapshot emptySnapshot = new WeightedSnapshot(</span>
    -<span class="nc" id="L167">                weightedArray(new long[]{}, new double[]{}));</span>
    -
    -<span class="nc" id="L169">        assertThat(emptySnapshot.getMin())</span>
    -<span class="nc" id="L170">                .isZero();</span>
    -<span class="nc" id="L171">    }</span>
    -
    -    @Test
    -    public void calculatesAMaxOfZeroForAnEmptySnapshot() {
    -<span class="nc" id="L175">        final Snapshot emptySnapshot = new WeightedSnapshot(</span>
    -<span class="nc" id="L176">                weightedArray(new long[]{}, new double[]{}));</span>
    -
    -<span class="nc" id="L178">        assertThat(emptySnapshot.getMax())</span>
    -<span class="nc" id="L179">                .isZero();</span>
    -<span class="nc" id="L180">    }</span>
    -
    -    @Test
    -    public void calculatesAMeanOfZeroForAnEmptySnapshot() {
    -<span class="nc" id="L184">        final Snapshot emptySnapshot = new WeightedSnapshot(</span>
    -<span class="nc" id="L185">                weightedArray(new long[]{}, new double[]{}));</span>
    -
    -<span class="nc" id="L187">        assertThat(emptySnapshot.getMean())</span>
    -<span class="nc" id="L188">                .isZero();</span>
    -<span class="nc" id="L189">    }</span>
    -
    -    @Test
    -    public void calculatesAStdDevOfZeroForAnEmptySnapshot() {
    -<span class="nc" id="L193">        final Snapshot emptySnapshot = new WeightedSnapshot(</span>
    -<span class="nc" id="L194">                weightedArray(new long[]{}, new double[]{}));</span>
    -
    -<span class="nc" id="L196">        assertThat(emptySnapshot.getStdDev())</span>
    -<span class="nc" id="L197">                .isZero();</span>
    -<span class="nc" id="L198">    }</span>
    -
    -    @Test
    -    public void calculatesAStdDevOfZeroForASingletonSnapshot() {
    -<span class="nc" id="L202">        final Snapshot singleItemSnapshot = new WeightedSnapshot(</span>
    -<span class="nc" id="L203">                weightedArray(new long[]{1}, new double[]{1.0}));</span>
    -
    -<span class="nc" id="L205">        assertThat(singleItemSnapshot.getStdDev())</span>
    -<span class="nc" id="L206">                .isZero();</span>
    -<span class="nc" id="L207">    }</span>
    -
    -    @Test
    -    public void expectNoOverflowForLowWeights() {
    -<span class="nc" id="L211">        final Snapshot scatteredSnapshot = new WeightedSnapshot(</span>
    -<span class="nc" id="L212">                weightedArray(</span>
    -                        new long[]{1, 2, 3},
    -                        new double[]{Double.MIN_VALUE, Double.MIN_VALUE, Double.MIN_VALUE}
    -                )
    -        );
    -
    -<span class="nc" id="L218">        assertThat(scatteredSnapshot.getMean())</span>
    -<span class="nc" id="L219">                .isEqualTo(2);</span>
    -<span class="nc" id="L220">    }</span>
    -
    -    @Test
    -    public void doesNotProduceNaNValues() {
    -<span class="nc" id="L224">        WeightedSnapshot weightedSnapshot = new WeightedSnapshot(</span>
    -<span class="nc" id="L225">                weightedArray(new long[]{1, 2, 3}, new double[]{0, 0, 0}));</span>
    -<span class="nc" id="L226">        assertThat(weightedSnapshot.getMean()).isEqualTo(0);</span>
    -<span class="nc" id="L227">    }</span>
    -
    -}
    -</pre><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/index.html b/metrics-log4j2-htmlReport/com.codahale.metrics/index.html
    deleted file mode 100644
    index b51c86dabf..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/index.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>com.codahale.metrics</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.source.html" class="el_source">Source Files</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <span class="el_package">com.codahale.metrics</span></div><h1>com.codahale.metrics</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">23,929 of 24,328</td><td class="ctr2">1%</td><td class="bar">536 of 555</td><td class="ctr2">3%</td><td class="ctr1">1,326</td><td class="ctr2">1,372</td><td class="ctr1">4,627</td><td class="ctr2">4,732</td><td class="ctr1">1,051</td><td class="ctr2">1,093</td><td class="ctr1">121</td><td class="ctr2">135</td></tr></tfoot><tbody><tr><td id="a78"><a href="MetricRegistryTest.html" class="el_class">MetricRegistryTest</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="1,842" alt="1,842"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d47"/><td class="ctr2" id="e47">n/a</td><td class="ctr1" id="f0">81</td><td class="ctr2" id="g0">81</td><td class="ctr1" id="h0">361</td><td class="ctr2" id="i0">361</td><td class="ctr1" id="j0">81</td><td class="ctr2" id="k0">81</td><td class="ctr1" id="l0">1</td><td class="ctr2" id="m0">1</td></tr><tr><td id="a16"><a href="ConsoleReporterTest.html" class="el_class">ConsoleReporterTest</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="95" height="10" title="1,465" alt="1,465"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d22"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/></td><td class="ctr2" id="e3">0%</td><td class="ctr1" id="f20">18</td><td class="ctr2" id="g20">18</td><td class="ctr1" id="h2">210</td><td class="ctr2" id="i2">210</td><td class="ctr1" id="j17">15</td><td class="ctr2" id="k17">15</td><td class="ctr1" id="l1">1</td><td class="ctr2" id="m1">1</td></tr><tr><td id="a90"><a href="NoopMetricRegistryTest.html" class="el_class">NoopMetricRegistryTest</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="87" height="10" title="1,340" alt="1,340"/></td><td class="ctr2" id="c16">0%</td><td class="bar" id="d48"/><td class="ctr2" id="e48">n/a</td><td class="ctr1" id="f2">54</td><td class="ctr2" id="g2">54</td><td class="ctr1" id="h1">274</td><td class="ctr2" id="i1">274</td><td class="ctr1" id="j1">54</td><td class="ctr2" id="k1">54</td><td class="ctr1" id="l2">1</td><td class="ctr2" id="m2">1</td></tr><tr><td id="a47"><a href="InstrumentedScheduledExecutorServiceTest.html" class="el_class">InstrumentedScheduledExecutorServiceTest</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="72" height="10" title="1,107" alt="1,107"/></td><td class="ctr2" id="c17">0%</td><td class="bar" id="d32"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e4">0%</td><td class="ctr1" id="f23">16</td><td class="ctr2" id="g23">16</td><td class="ctr1" id="h3">199</td><td class="ctr2" id="i3">199</td><td class="ctr1" id="j18">15</td><td class="ctr2" id="k18">15</td><td class="ctr1" id="l3">1</td><td class="ctr2" id="m3">1</td></tr><tr><td id="a114"><a href="Slf4jReporterTest.html" class="el_class">Slf4jReporterTest</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="932" alt="932"/></td><td class="ctr2" id="c18">0%</td><td class="bar" id="d49"/><td class="ctr2" id="e49">n/a</td><td class="ctr1" id="f5">33</td><td class="ctr2" id="g5">33</td><td class="ctr1" id="h4">198</td><td class="ctr2" id="i4">198</td><td class="ctr1" id="j2">33</td><td class="ctr2" id="k3">33</td><td class="ctr1" id="l4">1</td><td class="ctr2" id="m4">1</td></tr><tr><td id="a42"><a href="InstrumentedExecutorServiceTest.html" class="el_class">InstrumentedExecutorServiceTest</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="59" height="10" title="910" alt="910"/></td><td class="ctr2" id="c19">0%</td><td class="bar" id="d33"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e5">0%</td><td class="ctr1" id="f32">13</td><td class="ctr2" id="g33">13</td><td class="ctr1" id="h6">145</td><td class="ctr2" id="i6">145</td><td class="ctr1" id="j23">12</td><td class="ctr2" id="k23">12</td><td class="ctr1" id="l5">1</td><td class="ctr2" id="m5">1</td></tr><tr><td id="a14"><a href="ConsoleReporter.html" class="el_class">ConsoleReporter</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="58" height="10" title="897" alt="897"/></td><td class="ctr2" id="c20">0%</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="24" alt="24"/></td><td class="ctr2" id="e6">0%</td><td class="ctr1" id="f16">22</td><td class="ctr2" id="g16">22</td><td class="ctr1" id="h12">99</td><td class="ctr2" id="i13">99</td><td class="ctr1" id="j31">10</td><td class="ctr2" id="k33">10</td><td class="ctr1" id="l6">1</td><td class="ctr2" id="m6">1</td></tr><tr><td id="a19"><a href="CsvReporter.html" class="el_class">CsvReporter</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="55" height="10" title="846" alt="846"/></td><td class="ctr2" id="c21">0%</td><td class="bar" id="d11"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="16" alt="16"/></td><td class="ctr2" id="e7">0%</td><td class="ctr1" id="f19">19</td><td class="ctr2" id="g19">19</td><td class="ctr1" id="h14">90</td><td class="ctr2" id="i14">90</td><td class="ctr1" id="j26">11</td><td class="ctr2" id="k26">11</td><td class="ctr1" id="l7">1</td><td class="ctr2" id="m7">1</td></tr><tr><td id="a30"><a href="ExponentiallyDecayingReservoirTest.html" class="el_class">ExponentiallyDecayingReservoirTest</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="49" height="10" title="763" alt="763"/></td><td class="ctr2" id="c22">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="72" height="10" title="40" alt="40"/></td><td class="ctr2" id="e8">0%</td><td class="ctr1" id="f4">38</td><td class="ctr2" id="g4">38</td><td class="ctr1" id="h5">185</td><td class="ctr2" id="i5">185</td><td class="ctr1" id="j11">18</td><td class="ctr2" id="k11">18</td><td class="ctr1" id="l8">1</td><td class="ctr2" id="m8">1</td></tr><tr><td id="a21"><a href="CsvReporterTest.html" class="el_class">CsvReporterTest</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="723" alt="723"/></td><td class="ctr2" id="c23">0%</td><td class="bar" id="d34"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e9">0%</td><td class="ctr1" id="f22">17</td><td class="ctr2" id="g22">17</td><td class="ctr1" id="h8">136</td><td class="ctr2" id="i8">136</td><td class="ctr1" id="j14">16</td><td class="ctr2" id="k14">16</td><td class="ctr1" id="l9">1</td><td class="ctr2" id="m9">1</td></tr><tr><td id="a105"><a href="Slf4jReporter.html" class="el_class">Slf4jReporter</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="45" height="10" title="701" alt="701"/></td><td class="ctr2" id="c24">0%</td><td class="bar" id="d6"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="24" alt="24"/></td><td class="ctr2" id="e10">0%</td><td class="ctr1" id="f6">33</td><td class="ctr2" id="g6">33</td><td class="ctr1" id="h9">114</td><td class="ctr2" id="i10">114</td><td class="ctr1" id="j9">21</td><td class="ctr2" id="k9">21</td><td class="ctr1" id="l10">1</td><td class="ctr2" id="m10">1</td></tr><tr><td id="a134"><a href="WeightedSnapshotTest.html" class="el_class">WeightedSnapshotTest</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="44" height="10" title="685" alt="685"/></td><td class="ctr2" id="c25">0%</td><td class="bar" id="d27"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="4" alt="4"/></td><td class="ctr2" id="e11">0%</td><td class="ctr1" id="f9">31</td><td class="ctr2" id="g9">31</td><td class="ctr1" id="h11">106</td><td class="ctr2" id="i12">106</td><td class="ctr1" id="j5">29</td><td class="ctr2" id="k5">29</td><td class="ctr1" id="l11">1</td><td class="ctr2" id="m11">1</td></tr><tr><td id="a100"><a href="ScheduledReporterTest.html" class="el_class">ScheduledReporterTest</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="42" height="10" title="653" alt="653"/></td><td class="ctr2" id="c26">0%</td><td class="bar" id="d14"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="12" alt="12"/></td><td class="ctr2" id="e12">0%</td><td class="ctr1" id="f10">31</td><td class="ctr2" id="g10">31</td><td class="ctr1" id="h7">141</td><td class="ctr2" id="i7">141</td><td class="ctr1" id="j7">25</td><td class="ctr2" id="k7">25</td><td class="ctr1" id="l12">1</td><td class="ctr2" id="m12">1</td></tr><tr><td id="a28"><a href="EWMATest.html" class="el_class">EWMATest</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="42" height="10" title="652" alt="652"/></td><td class="ctr2" id="c27">0%</td><td class="bar" id="d35"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e13">0%</td><td class="ctr1" id="f57">6</td><td class="ctr2" id="g59">6</td><td class="ctr1" id="h10">109</td><td class="ctr2" id="i11">109</td><td class="ctr1" id="j54">5</td><td class="ctr2" id="k57">5</td><td class="ctr1" id="l13">1</td><td class="ctr2" id="m13">1</td></tr><tr><td id="a62"><a href="MetricRegistry.html" class="el_class">MetricRegistry</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="33" height="10" title="513" alt="513"/><img src="../jacoco-resources/greenbar.gif" width="8" height="10" title="127" alt="127"/></td><td class="ctr2" id="c13">19%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="92" height="10" title="51" alt="51"/><img src="../jacoco-resources/greenbar.gif" width="27" height="10" title="15" alt="15"/></td><td class="ctr2" id="e1">22%</td><td class="ctr1" id="f1">62</td><td class="ctr2" id="g1">74</td><td class="ctr1" id="h13">95</td><td class="ctr2" id="i9">127</td><td class="ctr1" id="j3">32</td><td class="ctr2" id="k2">41</td><td class="ctr1" id="l121">0</td><td class="ctr2" id="m14">1</td></tr><tr><td id="a116"><a href="SlidingTimeWindowArrayReservoirTest.html" class="el_class">SlidingTimeWindowArrayReservoirTest</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="471" alt="471"/></td><td class="ctr2" id="c28">0%</td><td class="bar" id="d10"><img src="../jacoco-resources/redbar.gif" width="32" height="10" title="18" alt="18"/></td><td class="ctr2" id="e14">0%</td><td class="ctr1" id="f29">14</td><td class="ctr2" id="g30">14</td><td class="ctr1" id="h20">74</td><td class="ctr2" id="i20">74</td><td class="ctr1" id="j55">5</td><td class="ctr2" id="k58">5</td><td class="ctr1" id="l14">1</td><td class="ctr2" id="m15">1</td></tr><tr><td id="a39"><a href="InstrumentedExecutorService.html" class="el_class">InstrumentedExecutorService</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="28" height="10" title="439" alt="439"/></td><td class="ctr2" id="c29">0%</td><td class="bar" id="d23"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/></td><td class="ctr2" id="e15">0%</td><td class="ctr1" id="f18">20</td><td class="ctr2" id="g18">20</td><td class="ctr1" id="h21">70</td><td class="ctr2" id="i21">70</td><td class="ctr1" id="j12">17</td><td class="ctr2" id="k12">17</td><td class="ctr1" id="l15">1</td><td class="ctr2" id="m16">1</td></tr><tr><td id="a131"><a href="UniformSnapshotTest.html" class="el_class">UniformSnapshotTest</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="413" alt="413"/></td><td class="ctr2" id="c30">0%</td><td class="bar" id="d36"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e16">0%</td><td class="ctr1" id="f11">28</td><td class="ctr2" id="g11">28</td><td class="ctr1" id="h16">88</td><td class="ctr2" id="i16">88</td><td class="ctr1" id="j6">27</td><td class="ctr2" id="k6">27</td><td class="ctr1" id="l16">1</td><td class="ctr2" id="m17">1</td></tr><tr><td id="a118"><a href="SlidingTimeWindowMovingAveragesTest.html" class="el_class">SlidingTimeWindowMovingAveragesTest</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="412" alt="412"/></td><td class="ctr2" id="c31">0%</td><td class="bar" id="d19"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="8" alt="8"/></td><td class="ctr2" id="e17">0%</td><td class="ctr1" id="f26">15</td><td class="ctr2" id="g27">15</td><td class="ctr1" id="h18">78</td><td class="ctr2" id="i18">78</td><td class="ctr1" id="j27">11</td><td class="ctr2" id="k27">11</td><td class="ctr1" id="l17">1</td><td class="ctr2" id="m18">1</td></tr><tr><td id="a6"><a href="ChunkedAssociativeLongArray.html" class="el_class">ChunkedAssociativeLongArray</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="411" alt="411"/></td><td class="ctr2" id="c32">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="94" height="10" title="52" alt="52"/></td><td class="ctr2" id="e18">0%</td><td class="ctr1" id="f3">40</td><td class="ctr2" id="g3">40</td><td class="ctr1" id="h15">90</td><td class="ctr2" id="i15">90</td><td class="ctr1" id="j20">14</td><td class="ctr2" id="k20">14</td><td class="ctr1" id="l18">1</td><td class="ctr2" id="m19">1</td></tr><tr><td id="a120"><a href="SlidingTimeWindowReservoirTest.html" class="el_class">SlidingTimeWindowReservoirTest</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="380" alt="380"/></td><td class="ctr2" id="c33">0%</td><td class="bar" id="d15"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="12" alt="12"/></td><td class="ctr2" id="e19">0%</td><td class="ctr1" id="f40">10</td><td class="ctr2" id="g42">10</td><td class="ctr1" id="h24">54</td><td class="ctr2" id="i24">54</td><td class="ctr1" id="j60">4</td><td class="ctr2" id="k62">4</td><td class="ctr1" id="l19">1</td><td class="ctr2" id="m20">1</td></tr><tr><td id="a43"><a href="InstrumentedScheduledExecutorService.html" class="el_class">InstrumentedScheduledExecutorService</a></td><td class="bar" id="b21"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="343" alt="343"/></td><td class="ctr2" id="c34">0%</td><td class="bar" id="d37"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e20">0%</td><td class="ctr1" id="f17">22</td><td class="ctr2" id="g17">22</td><td class="ctr1" id="h25">54</td><td class="ctr2" id="i25">54</td><td class="ctr1" id="j10">21</td><td class="ctr2" id="k10">21</td><td class="ctr1" id="l20">1</td><td class="ctr2" id="m21">1</td></tr><tr><td id="a117"><a href="SlidingTimeWindowMovingAverages.html" class="el_class">SlidingTimeWindowMovingAverages</a></td><td class="bar" id="b22"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="336" alt="336"/></td><td class="ctr2" id="c35">0%</td><td class="bar" id="d7"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="22" alt="22"/></td><td class="ctr2" id="e21">0%</td><td class="ctr1" id="f14">25</td><td class="ctr2" id="g14">25</td><td class="ctr1" id="h22">70</td><td class="ctr2" id="i22">70</td><td class="ctr1" id="j21">14</td><td class="ctr2" id="k21">14</td><td class="ctr1" id="l21">1</td><td class="ctr2" id="m22">1</td></tr><tr><td id="a132"><a href="WeightedSnapshot.html" class="el_class">WeightedSnapshot</a></td><td class="bar" id="b23"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="334" alt="334"/></td><td class="ctr2" id="c36">0%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="65" height="10" title="36" alt="36"/></td><td class="ctr2" id="e22">0%</td><td class="ctr1" id="f12">28</td><td class="ctr2" id="g12">28</td><td class="ctr1" id="h26">53</td><td class="ctr2" id="i26">53</td><td class="ctr1" id="j32">10</td><td class="ctr2" id="k34">10</td><td class="ctr1" id="l22">1</td><td class="ctr2" id="m23">1</td></tr><tr><td id="a126"><a href="TimerTest.html" class="el_class">TimerTest</a></td><td class="bar" id="b24"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="308" alt="308"/></td><td class="ctr2" id="c37">0%</td><td class="bar" id="d50"/><td class="ctr2" id="e50">n/a</td><td class="ctr1" id="f27">15</td><td class="ctr2" id="g28">15</td><td class="ctr1" id="h19">76</td><td class="ctr2" id="i19">76</td><td class="ctr1" id="j19">15</td><td class="ctr2" id="k19">15</td><td class="ctr1" id="l23">1</td><td class="ctr2" id="m24">1</td></tr><tr><td id="a98"><a href="ScheduledReporter.html" class="el_class">ScheduledReporter</a></td><td class="bar" id="b25"><img src="../jacoco-resources/redbar.gif" width="20" height="10" title="308" alt="308"/></td><td class="ctr2" id="c38">0%</td><td class="bar" id="d8"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="20" alt="20"/></td><td class="ctr2" id="e23">0%</td><td class="ctr1" id="f7">33</td><td class="ctr2" id="g7">33</td><td class="ctr1" id="h17">79</td><td class="ctr2" id="i17">79</td><td class="ctr1" id="j8">23</td><td class="ctr2" id="k8">23</td><td class="ctr1" id="l24">1</td><td class="ctr2" id="m25">1</td></tr><tr><td id="a29"><a href="ExponentiallyDecayingReservoir.html" class="el_class">ExponentiallyDecayingReservoir</a></td><td class="bar" id="b26"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="306" alt="306"/></td><td class="ctr2" id="c39">0%</td><td class="bar" id="d9"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="20" alt="20"/></td><td class="ctr2" id="e24">0%</td><td class="ctr1" id="f13">26</td><td class="ctr2" id="g13">26</td><td class="ctr1" id="h23">69</td><td class="ctr2" id="i23">69</td><td class="ctr1" id="j15">16</td><td class="ctr2" id="k15">16</td><td class="ctr1" id="l25">1</td><td class="ctr2" id="m26">1</td></tr><tr><td id="a130"><a href="UniformSnapshot.html" class="el_class">UniformSnapshot</a></td><td class="bar" id="b27"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="297" alt="297"/></td><td class="ctr2" id="c40">0%</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="50" height="10" title="28" alt="28"/></td><td class="ctr2" id="e25">0%</td><td class="ctr1" id="f15">24</td><td class="ctr2" id="g15">24</td><td class="ctr1" id="h28">51</td><td class="ctr2" id="i28">51</td><td class="ctr1" id="j33">10</td><td class="ctr2" id="k35">10</td><td class="ctr1" id="l26">1</td><td class="ctr2" id="m27">1</td></tr><tr><td id="a1"><a href="CachedGaugeTest.html" class="el_class">CachedGaugeTest</a></td><td class="bar" id="b28"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="226" alt="226"/></td><td class="ctr2" id="c41">0%</td><td class="bar" id="d16"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="10" alt="10"/></td><td class="ctr2" id="e26">0%</td><td class="ctr1" id="f33">12</td><td class="ctr2" id="g34">12</td><td class="ctr1" id="h27">53</td><td class="ctr2" id="i27">53</td><td class="ctr1" id="j44">7</td><td class="ctr2" id="k48">7</td><td class="ctr1" id="l27">1</td><td class="ctr2" id="m28">1</td></tr><tr><td id="a57"><a href="MeterApproximationTest.html" class="el_class">MeterApproximationTest</a></td><td class="bar" id="b29"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="168" alt="168"/></td><td class="ctr2" id="c42">0%</td><td class="bar" id="d38"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e27">0%</td><td class="ctr1" id="f52">7</td><td class="ctr2" id="g55">7</td><td class="ctr1" id="h40">27</td><td class="ctr2" id="i43">27</td><td class="ctr1" id="j49">6</td><td class="ctr2" id="k52">6</td><td class="ctr1" id="l28">1</td><td class="ctr2" id="m29">1</td></tr><tr><td id="a8"><a href="ChunkedAssociativeLongArrayTest.html" class="el_class">ChunkedAssociativeLongArrayTest</a></td><td class="bar" id="b30"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="165" alt="165"/></td><td class="ctr2" id="c43">0%</td><td class="bar" id="d51"/><td class="ctr2" id="e51">n/a</td><td class="ctr1" id="f100">2</td><td class="ctr2" id="g106">2</td><td class="ctr1" id="h43">26</td><td class="ctr2" id="i46">26</td><td class="ctr1" id="j95">2</td><td class="ctr2" id="k102">2</td><td class="ctr1" id="l29">1</td><td class="ctr2" id="m30">1</td></tr><tr><td id="a115"><a href="SlidingTimeWindowArrayReservoir.html" class="el_class">SlidingTimeWindowArrayReservoir</a></td><td class="bar" id="b31"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="164" alt="164"/></td><td class="ctr2" id="c44">0%</td><td class="bar" id="d13"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="14" alt="14"/></td><td class="ctr2" id="e28">0%</td><td class="ctr1" id="f28">15</td><td class="ctr2" id="g29">15</td><td class="ctr1" id="h31">37</td><td class="ctr2" id="i31">37</td><td class="ctr1" id="j37">8</td><td class="ctr2" id="k39">8</td><td class="ctr1" id="l30">1</td><td class="ctr2" id="m31">1</td></tr><tr><td id="a119"><a href="SlidingTimeWindowReservoir.html" class="el_class">SlidingTimeWindowReservoir</a></td><td class="bar" id="b32"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="159" alt="159"/></td><td class="ctr2" id="c45">0%</td><td class="bar" id="d20"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="8" alt="8"/></td><td class="ctr2" id="e29">0%</td><td class="ctr1" id="f34">12</td><td class="ctr2" id="g35">12</td><td class="ctr1" id="h35">33</td><td class="ctr2" id="i35">33</td><td class="ctr1" id="j38">8</td><td class="ctr2" id="k40">8</td><td class="ctr1" id="l31">1</td><td class="ctr2" id="m32">1</td></tr><tr><td id="a74"><a href="MetricRegistry$1.html" class="el_class">MetricRegistry.new MetricRegistryListener() {...}</a></td><td class="bar" id="b33"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="154" alt="154"/></td><td class="ctr2" id="c46">0%</td><td class="bar" id="d52"/><td class="ctr2" id="e52">n/a</td><td class="ctr1" id="f36">11</td><td class="ctr2" id="g38">11</td><td class="ctr1" id="h47">21</td><td class="ctr2" id="i51">21</td><td class="ctr1" id="j28">11</td><td class="ctr2" id="k28">11</td><td class="ctr1" id="l32">1</td><td class="ctr2" id="m33">1</td></tr><tr><td id="a54"><a href="LockFreeExponentiallyDecayingReservoir$State.html" class="el_class">LockFreeExponentiallyDecayingReservoir.State</a></td><td class="bar" id="b34"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="150" alt="150"/></td><td class="ctr2" id="c47">0%</td><td class="bar" id="d12"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="16" alt="16"/></td><td class="ctr2" id="e30">0%</td><td class="ctr1" id="f30">14</td><td class="ctr2" id="g31">14</td><td class="ctr1" id="h36">32</td><td class="ctr2" id="i36">32</td><td class="ctr1" id="j50">6</td><td class="ctr2" id="k53">6</td><td class="ctr1" id="l33">1</td><td class="ctr2" id="m34">1</td></tr><tr><td id="a106"><a href="Slf4jReporter$Builder.html" class="el_class">Slf4jReporter.Builder</a></td><td class="bar" id="b35"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="149" alt="149"/></td><td class="ctr2" id="c48">0%</td><td class="bar" id="d26"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/></td><td class="ctr2" id="e31">0%</td><td class="ctr1" id="f24">16</td><td class="ctr2" id="g24">16</td><td class="ctr1" id="h30">44</td><td class="ctr2" id="i30">44</td><td class="ctr1" id="j24">12</td><td class="ctr2" id="k24">12</td><td class="ctr1" id="l34">1</td><td class="ctr2" id="m35">1</td></tr><tr><td id="a103"><a href="SharedMetricRegistriesTest.html" class="el_class">SharedMetricRegistriesTest</a></td><td class="bar" id="b36"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="138" alt="138"/></td><td class="ctr2" id="c49">0%</td><td class="bar" id="d53"/><td class="ctr2" id="e53">n/a</td><td class="ctr1" id="f41">10</td><td class="ctr2" id="g43">10</td><td class="ctr1" id="h29">50</td><td class="ctr2" id="i29">50</td><td class="ctr1" id="j34">10</td><td class="ctr2" id="k36">10</td><td class="ctr1" id="l35">1</td><td class="ctr2" id="m36">1</td></tr><tr><td id="a124"><a href="Timer.html" class="el_class">Timer</a></td><td class="bar" id="b37"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="135" alt="135"/></td><td class="ctr2" id="c50">0%</td><td class="bar" id="d39"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e32">0%</td><td class="ctr1" id="f21">18</td><td class="ctr2" id="g21">18</td><td class="ctr1" id="h32">36</td><td class="ctr2" id="i32">36</td><td class="ctr1" id="j13">17</td><td class="ctr2" id="k13">17</td><td class="ctr1" id="l36">1</td><td class="ctr2" id="m37">1</td></tr><tr><td id="a58"><a href="MeterTest.html" class="el_class">MeterTest</a></td><td class="bar" id="b38"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="129" alt="129"/></td><td class="ctr2" id="c51">0%</td><td class="bar" id="d54"/><td class="ctr2" id="e54">n/a</td><td class="ctr1" id="f65">4</td><td class="ctr2" id="g66">4</td><td class="ctr1" id="h41">27</td><td class="ctr2" id="i44">27</td><td class="ctr1" id="j61">4</td><td class="ctr2" id="k63">4</td><td class="ctr1" id="l37">1</td><td class="ctr2" id="m38">1</td></tr><tr><td id="a50"><a href="InstrumentedThreadFactoryTest.html" class="el_class">InstrumentedThreadFactoryTest</a></td><td class="bar" id="b39"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="129" alt="129"/></td><td class="ctr2" id="c52">0%</td><td class="bar" id="d40"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e33">0%</td><td class="ctr1" id="f66">4</td><td class="ctr2" id="g67">4</td><td class="ctr1" id="h38">30</td><td class="ctr2" id="i39">30</td><td class="ctr1" id="j74">3</td><td class="ctr2" id="k75">3</td><td class="ctr1" id="l38">1</td><td class="ctr2" id="m39">1</td></tr><tr><td id="a76"><a href="MetricRegistryListenerTest.html" class="el_class">MetricRegistryListenerTest</a></td><td class="bar" id="b40"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="121" alt="121"/></td><td class="ctr2" id="c53">0%</td><td class="bar" id="d55"/><td class="ctr2" id="e55">n/a</td><td class="ctr1" id="f47">8</td><td class="ctr2" id="g50">8</td><td class="ctr1" id="h42">27</td><td class="ctr2" id="i45">27</td><td class="ctr1" id="j39">8</td><td class="ctr2" id="k41">8</td><td class="ctr1" id="l39">1</td><td class="ctr2" id="m40">1</td></tr><tr><td id="a59"><a href="MetricAttribute.html" class="el_class">MetricAttribute</a></td><td class="bar" id="b41"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="119" alt="119"/></td><td class="ctr2" id="c54">0%</td><td class="bar" id="d56"/><td class="ctr2" id="e56">n/a</td><td class="ctr1" id="f78">3</td><td class="ctr2" id="g79">3</td><td class="ctr1" id="h49">20</td><td class="ctr2" id="i53">20</td><td class="ctr1" id="j75">3</td><td class="ctr2" id="k76">3</td><td class="ctr1" id="l40">1</td><td class="ctr2" id="m41">1</td></tr><tr><td id="a128"><a href="UniformReservoir.html" class="el_class">UniformReservoir</a></td><td class="bar" id="b42"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="117" alt="117"/></td><td class="ctr2" id="c55">0%</td><td class="bar" id="d17"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="10" alt="10"/></td><td class="ctr2" id="e34">0%</td><td class="ctr1" id="f42">10</td><td class="ctr2" id="g44">10</td><td class="ctr1" id="h44">25</td><td class="ctr2" id="i47">25</td><td class="ctr1" id="j56">5</td><td class="ctr2" id="k59">5</td><td class="ctr1" id="l41">1</td><td class="ctr2" id="m42">1</td></tr><tr><td id="a15"><a href="ConsoleReporter$Builder.html" class="el_class">ConsoleReporter.Builder</a></td><td class="bar" id="b43"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="113" alt="113"/></td><td class="ctr2" id="c56">0%</td><td class="bar" id="d57"/><td class="ctr2" id="e57">n/a</td><td class="ctr1" id="f35">12</td><td class="ctr2" id="g36">12</td><td class="ctr1" id="h33">34</td><td class="ctr2" id="i33">34</td><td class="ctr1" id="j25">12</td><td class="ctr2" id="k25">12</td><td class="ctr1" id="l42">1</td><td class="ctr2" id="m43">1</td></tr><tr><td id="a20"><a href="CsvReporter$Builder.html" class="el_class">CsvReporter.Builder</a></td><td class="bar" id="b44"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="106" alt="106"/></td><td class="ctr2" id="c57">0%</td><td class="bar" id="d58"/><td class="ctr2" id="e58">n/a</td><td class="ctr1" id="f37">11</td><td class="ctr2" id="g39">11</td><td class="ctr1" id="h37">31</td><td class="ctr2" id="i38">31</td><td class="ctr1" id="j29">11</td><td class="ctr2" id="k29">11</td><td class="ctr1" id="l43">1</td><td class="ctr2" id="m44">1</td></tr><tr><td id="a51"><a href="LockFreeExponentiallyDecayingReservoir.html" class="el_class">LockFreeExponentiallyDecayingReservoir</a></td><td class="bar" id="b45"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="105" alt="105"/></td><td class="ctr2" id="c58">0%</td><td class="bar" id="d28"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="4" alt="4"/></td><td class="ctr2" id="e35">0%</td><td class="ctr1" id="f43">10</td><td class="ctr2" id="g45">10</td><td class="ctr1" id="h45">24</td><td class="ctr2" id="i49">24</td><td class="ctr1" id="j40">8</td><td class="ctr2" id="k42">8</td><td class="ctr1" id="l44">1</td><td class="ctr2" id="m45">1</td></tr><tr><td id="a18"><a href="CounterTest.html" class="el_class">CounterTest</a></td><td class="bar" id="b46"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="85" alt="85"/></td><td class="ctr2" id="c59">0%</td><td class="bar" id="d59"/><td class="ctr2" id="e59">n/a</td><td class="ctr1" id="f48">8</td><td class="ctr2" id="g51">8</td><td class="ctr1" id="h39">29</td><td class="ctr2" id="i40">29</td><td class="ctr1" id="j41">8</td><td class="ctr2" id="k43">8</td><td class="ctr1" id="l45">1</td><td class="ctr2" id="m46">1</td></tr><tr><td id="a0"><a href="CachedGauge.html" class="el_class">CachedGauge</a></td><td class="bar" id="b47"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="81" alt="81"/></td><td class="ctr2" id="c60">0%</td><td class="bar" id="d18"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="10" alt="10"/></td><td class="ctr2" id="e36">0%</td><td class="ctr1" id="f44">9</td><td class="ctr2" id="g46">9</td><td class="ctr1" id="h46">22</td><td class="ctr2" id="i50">22</td><td class="ctr1" id="j62">4</td><td class="ctr2" id="k64">4</td><td class="ctr1" id="l46">1</td><td class="ctr2" id="m47">1</td></tr><tr><td id="a48"><a href="InstrumentedThreadFactory.html" class="el_class">InstrumentedThreadFactory</a></td><td class="bar" id="b48"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="77" alt="77"/></td><td class="ctr2" id="c61">0%</td><td class="bar" id="d60"/><td class="ctr2" id="e60">n/a</td><td class="ctr1" id="f67">4</td><td class="ctr2" id="g68">4</td><td class="ctr1" id="h61">13</td><td class="ctr2" id="i64">13</td><td class="ctr1" id="j63">4</td><td class="ctr2" id="k65">4</td><td class="ctr1" id="l47">1</td><td class="ctr2" id="m48">1</td></tr><tr><td id="a61"><a href="MetricFilterTest.html" class="el_class">MetricFilterTest</a></td><td class="bar" id="b49"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="76" alt="76"/></td><td class="ctr2" id="c62">0%</td><td class="bar" id="d61"/><td class="ctr2" id="e61">n/a</td><td class="ctr1" id="f62">5</td><td class="ctr2" id="g63">5</td><td class="ctr1" id="h51">19</td><td class="ctr2" id="i54">19</td><td class="ctr1" id="j57">5</td><td class="ctr2" id="k60">5</td><td class="ctr1" id="l48">1</td><td class="ctr2" id="m49">1</td></tr><tr><td id="a122"><a href="SlidingWindowReservoirTest.html" class="el_class">SlidingWindowReservoirTest</a></td><td class="bar" id="b50"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="73" alt="73"/></td><td class="ctr2" id="c63">0%</td><td class="bar" id="d62"/><td class="ctr2" id="e62">n/a</td><td class="ctr1" id="f79">3</td><td class="ctr2" id="g80">3</td><td class="ctr1" id="h57">14</td><td class="ctr2" id="i60">14</td><td class="ctr1" id="j76">3</td><td class="ctr2" id="k77">3</td><td class="ctr1" id="l49">1</td><td class="ctr2" id="m50">1</td></tr><tr><td id="a52"><a href="LockFreeExponentiallyDecayingReservoir$Builder.html" class="el_class">LockFreeExponentiallyDecayingReservoir.Builder</a></td><td class="bar" id="b51"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="72" alt="72"/></td><td class="ctr2" id="c64">0%</td><td class="bar" id="d41"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e37">0%</td><td class="ctr1" id="f49">8</td><td class="ctr2" id="g52">8</td><td class="ctr1" id="h52">17</td><td class="ctr2" id="i55">17</td><td class="ctr1" id="j45">7</td><td class="ctr2" id="k49">7</td><td class="ctr1" id="l50">1</td><td class="ctr2" id="m51">1</td></tr><tr><td id="a79"><a href="NoopMetricRegistry.html" class="el_class">NoopMetricRegistry</a></td><td class="bar" id="b52"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="71" alt="71"/></td><td class="ctr2" id="c65">0%</td><td class="bar" id="d42"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e38">0%</td><td class="ctr1" id="f8">33</td><td class="ctr2" id="g8">33</td><td class="ctr1" id="h34">34</td><td class="ctr2" id="i34">34</td><td class="ctr1" id="j4">32</td><td class="ctr2" id="k4">32</td><td class="ctr1" id="l51">1</td><td class="ctr2" id="m52">1</td></tr><tr><td id="a121"><a href="SlidingWindowReservoir.html" class="el_class">SlidingWindowReservoir</a></td><td class="bar" id="b53"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="68" alt="68"/></td><td class="ctr2" id="c66">0%</td><td class="bar" id="d43"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e39">0%</td><td class="ctr1" id="f63">5</td><td class="ctr2" id="g64">5</td><td class="ctr1" id="h62">13</td><td class="ctr2" id="i65">13</td><td class="ctr1" id="j64">4</td><td class="ctr2" id="k66">4</td><td class="ctr1" id="l52">1</td><td class="ctr2" id="m53">1</td></tr><tr><td id="a38"><a href="HistogramTest.html" class="el_class">HistogramTest</a></td><td class="bar" id="b54"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="63" alt="63"/></td><td class="ctr2" id="c67">0%</td><td class="bar" id="d63"/><td class="ctr2" id="e63">n/a</td><td class="ctr1" id="f68">4</td><td class="ctr2" id="g69">4</td><td class="ctr1" id="h53">17</td><td class="ctr2" id="i56">17</td><td class="ctr1" id="j65">4</td><td class="ctr2" id="k67">4</td><td class="ctr1" id="l53">1</td><td class="ctr2" id="m54">1</td></tr><tr><td id="a99"><a href="ScheduledReporter$NamedThreadFactory.html" class="el_class">ScheduledReporter.NamedThreadFactory</a></td><td class="bar" id="b55"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="63" alt="63"/></td><td class="ctr2" id="c68">0%</td><td class="bar" id="d29"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="4" alt="4"/></td><td class="ctr2" id="e40">0%</td><td class="ctr1" id="f69">4</td><td class="ctr2" id="g70">4</td><td class="ctr1" id="h68">11</td><td class="ctr2" id="i69">11</td><td class="ctr1" id="j96">2</td><td class="ctr2" id="k103">2</td><td class="ctr1" id="l54">1</td><td class="ctr2" id="m55">1</td></tr><tr><td id="a36"><a href="FixedNameCsvFileProviderTest.html" class="el_class">FixedNameCsvFileProviderTest</a></td><td class="bar" id="b56"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="62" alt="62"/></td><td class="ctr2" id="c69">0%</td><td class="bar" id="d64"/><td class="ctr2" id="e64">n/a</td><td class="ctr1" id="f70">4</td><td class="ctr2" id="g71">4</td><td class="ctr1" id="h58">14</td><td class="ctr2" id="i61">14</td><td class="ctr1" id="j66">4</td><td class="ctr2" id="k68">4</td><td class="ctr1" id="l55">1</td><td class="ctr2" id="m56">1</td></tr><tr><td id="a129"><a href="UniformReservoirTest.html" class="el_class">UniformReservoirTest</a></td><td class="bar" id="b57"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="60" alt="60"/></td><td class="ctr2" id="c70">0%</td><td class="bar" id="d30"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="4" alt="4"/></td><td class="ctr2" id="e41">0%</td><td class="ctr1" id="f71">4</td><td class="ctr2" id="g72">4</td><td class="ctr1" id="h59">14</td><td class="ctr2" id="i62">14</td><td class="ctr1" id="j97">2</td><td class="ctr2" id="k104">2</td><td class="ctr1" id="l56">1</td><td class="ctr2" id="m57">1</td></tr><tr><td id="a93"><a href="RatioGaugeTest.html" class="el_class">RatioGaugeTest</a></td><td class="bar" id="b58"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="59" alt="59"/></td><td class="ctr2" id="c71">0%</td><td class="bar" id="d65"/><td class="ctr2" id="e65">n/a</td><td class="ctr1" id="f58">6</td><td class="ctr2" id="g60">6</td><td class="ctr1" id="h48">21</td><td class="ctr2" id="i52">21</td><td class="ctr1" id="j51">6</td><td class="ctr2" id="k54">6</td><td class="ctr1" id="l57">1</td><td class="ctr2" id="m58">1</td></tr><tr><td id="a102"><a href="SharedMetricRegistries.html" class="el_class">SharedMetricRegistries</a></td><td class="bar" id="b59"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="58" alt="58"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="39" alt="39"/></td><td class="ctr2" id="c8">40%</td><td class="bar" id="d21"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="7" alt="7"/><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="3" alt="3"/></td><td class="ctr2" id="e0">30%</td><td class="ctr1" id="f38">11</td><td class="ctr2" id="g25">16</td><td class="ctr1" id="h50">20</td><td class="ctr2" id="i37">32</td><td class="ctr1" id="j46">7</td><td class="ctr2" id="k30">11</td><td class="ctr1" id="l122">0</td><td class="ctr2" id="m59">1</td></tr><tr><td id="a55"><a href="ManualClock.html" class="el_class">ManualClock</a></td><td class="bar" id="b60"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="58" alt="58"/></td><td class="ctr2" id="c72">0%</td><td class="bar" id="d66"/><td class="ctr2" id="e66">n/a</td><td class="ctr1" id="f50">8</td><td class="ctr2" id="g53">8</td><td class="ctr1" id="h54">16</td><td class="ctr2" id="i57">16</td><td class="ctr1" id="j42">8</td><td class="ctr2" id="k44">8</td><td class="ctr1" id="l58">1</td><td class="ctr2" id="m60">1</td></tr><tr><td id="a45"><a href="InstrumentedScheduledExecutorService$InstrumentedPeriodicRunnable.html" class="el_class">InstrumentedScheduledExecutorService.InstrumentedPeriodicRunnable</a></td><td class="bar" id="b61"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="57" alt="57"/></td><td class="ctr2" id="c73">0%</td><td class="bar" id="d44"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e42">0%</td><td class="ctr1" id="f80">3</td><td class="ctr2" id="g81">3</td><td class="ctr1" id="h60">14</td><td class="ctr2" id="i63">14</td><td class="ctr1" id="j98">2</td><td class="ctr2" id="k105">2</td><td class="ctr1" id="l59">1</td><td class="ctr2" id="m61">1</td></tr><tr><td id="a34"><a href="ExponentialMovingAverages.html" class="el_class">ExponentialMovingAverages</a></td><td class="bar" id="b62"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="55" alt="55"/><img src="../jacoco-resources/greenbar.gif" width="3" height="10" title="58" alt="58"/></td><td class="ctr2" id="c6">51%</td><td class="bar" id="d25"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="1" alt="1"/></td><td class="ctr2" id="e2">16%</td><td class="ctr1" id="f53">7</td><td class="ctr2" id="g40">11</td><td class="ctr1" id="h63">12</td><td class="ctr2" id="i41">29</td><td class="ctr1" id="j67">4</td><td class="ctr2" id="k45">8</td><td class="ctr1" id="l123">0</td><td class="ctr2" id="m62">1</td></tr><tr><td id="a56"><a href="Meter.html" class="el_class">Meter</a></td><td class="bar" id="b63"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="52" alt="52"/><img src="../jacoco-resources/greenbar.gif" width="3" height="10" title="51" alt="51"/></td><td class="ctr2" id="c7">49%</td><td class="bar" id="d45"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e43">0%</td><td class="ctr1" id="f59">6</td><td class="ctr2" id="g37">12</td><td class="ctr1" id="h64">12</td><td class="ctr2" id="i42">29</td><td class="ctr1" id="j58">5</td><td class="ctr2" id="k31">11</td><td class="ctr1" id="l124">0</td><td class="ctr2" id="m63">1</td></tr><tr><td id="a92"><a href="RatioGauge$Ratio.html" class="el_class">RatioGauge.Ratio</a></td><td class="bar" id="b64"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="48" alt="48"/></td><td class="ctr2" id="c74">0%</td><td class="bar" id="d24"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/></td><td class="ctr2" id="e44">0%</td><td class="ctr1" id="f54">7</td><td class="ctr2" id="g56">7</td><td class="ctr1" id="h75">10</td><td class="ctr2" id="i76">10</td><td class="ctr1" id="j68">4</td><td class="ctr2" id="k69">4</td><td class="ctr1" id="l60">1</td><td class="ctr2" id="m64">1</td></tr><tr><td id="a101"><a href="ScheduledReporterTest$DummyReporter.html" class="el_class">ScheduledReporterTest.DummyReporter</a></td><td class="bar" id="b65"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="47" alt="47"/></td><td class="ctr2" id="c75">0%</td><td class="bar" id="d67"/><td class="ctr2" id="e67">n/a</td><td class="ctr1" id="f72">4</td><td class="ctr2" id="g73">4</td><td class="ctr1" id="h81">9</td><td class="ctr2" id="i81">9</td><td class="ctr1" id="j69">4</td><td class="ctr2" id="k70">4</td><td class="ctr1" id="l61">1</td><td class="ctr2" id="m65">1</td></tr><tr><td id="a53"><a href="LockFreeExponentiallyDecayingReservoir$RescalingConsumer.html" class="el_class">LockFreeExponentiallyDecayingReservoir.RescalingConsumer</a></td><td class="bar" id="b66"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="45" alt="45"/></td><td class="ctr2" id="c76">0%</td><td class="bar" id="d31"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="4" alt="4"/></td><td class="ctr2" id="e45">0%</td><td class="ctr1" id="f73">4</td><td class="ctr2" id="g74">4</td><td class="ctr1" id="h69">11</td><td class="ctr2" id="i70">11</td><td class="ctr1" id="j99">2</td><td class="ctr2" id="k106">2</td><td class="ctr1" id="l62">1</td><td class="ctr2" id="m66">1</td></tr><tr><td id="a104"><a href="SimpleSettableGaugeTest.html" class="el_class">SimpleSettableGaugeTest</a></td><td class="bar" id="b67"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="43" alt="43"/></td><td class="ctr2" id="c77">0%</td><td class="bar" id="d68"/><td class="ctr2" id="e68">n/a</td><td class="ctr1" id="f81">3</td><td class="ctr2" id="g82">3</td><td class="ctr1" id="h65">12</td><td class="ctr2" id="i66">12</td><td class="ctr1" id="j77">3</td><td class="ctr2" id="k78">3</td><td class="ctr1" id="l63">1</td><td class="ctr2" id="m67">1</td></tr><tr><td id="a27"><a href="EWMA.html" class="el_class">EWMA</a></td><td class="bar" id="b68"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="42" alt="42"/><img src="../jacoco-resources/greenbar.gif" width="4" height="10" title="65" alt="65"/></td><td class="ctr2" id="c5">60%</td><td class="bar" id="d46"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e46">0%</td><td class="ctr1" id="f82">3</td><td class="ctr2" id="g47">9</td><td class="ctr1" id="h76">10</td><td class="ctr2" id="i48">25</td><td class="ctr1" id="j100">2</td><td class="ctr2" id="k46">8</td><td class="ctr1" id="l125">0</td><td class="ctr2" id="m68">1</td></tr><tr><td id="a23"><a href="DefaultSettableGaugeTest.html" class="el_class">DefaultSettableGaugeTest</a></td><td class="bar" id="b69"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="42" alt="42"/></td><td class="ctr2" id="c78">0%</td><td class="bar" id="d69"/><td class="ctr2" id="e69">n/a</td><td class="ctr1" id="f74">4</td><td class="ctr2" id="g75">4</td><td class="ctr1" id="h70">11</td><td class="ctr2" id="i71">11</td><td class="ctr1" id="j70">4</td><td class="ctr2" id="k71">4</td><td class="ctr1" id="l64">1</td><td class="ctr2" id="m69">1</td></tr><tr><td id="a40"><a href="InstrumentedExecutorService$InstrumentedCallable.html" class="el_class">InstrumentedExecutorService.InstrumentedCallable</a></td><td class="bar" id="b70"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="41" alt="41"/></td><td class="ctr2" id="c79">0%</td><td class="bar" id="d70"/><td class="ctr2" id="e70">n/a</td><td class="ctr1" id="f101">2</td><td class="ctr2" id="g107">2</td><td class="ctr1" id="h77">10</td><td class="ctr2" id="i77">10</td><td class="ctr1" id="j101">2</td><td class="ctr2" id="k107">2</td><td class="ctr1" id="l65">1</td><td class="ctr2" id="m70">1</td></tr><tr><td id="a7"><a href="ChunkedAssociativeLongArray$Chunk.html" class="el_class">ChunkedAssociativeLongArray.Chunk</a></td><td class="bar" id="b71"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="39" alt="39"/></td><td class="ctr2" id="c80">0%</td><td class="bar" id="d71"/><td class="ctr2" id="e71">n/a</td><td class="ctr1" id="f102">2</td><td class="ctr2" id="g108">2</td><td class="ctr1" id="h71">11</td><td class="ctr2" id="i72">11</td><td class="ctr1" id="j102">2</td><td class="ctr2" id="k108">2</td><td class="ctr1" id="l66">1</td><td class="ctr2" id="m71">1</td></tr><tr><td id="a41"><a href="InstrumentedExecutorService$InstrumentedRunnable.html" class="el_class">InstrumentedExecutorService.InstrumentedRunnable</a></td><td class="bar" id="b72"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="39" alt="39"/></td><td class="ctr2" id="c81">0%</td><td class="bar" id="d72"/><td class="ctr2" id="e72">n/a</td><td class="ctr1" id="f103">2</td><td class="ctr2" id="g109">2</td><td class="ctr1" id="h72">11</td><td class="ctr2" id="i73">11</td><td class="ctr1" id="j103">2</td><td class="ctr2" id="k109">2</td><td class="ctr1" id="l67">1</td><td class="ctr2" id="m72">1</td></tr><tr><td id="a87"><a href="NoopMetricRegistry$NoopTimer.html" class="el_class">NoopMetricRegistry.NoopTimer</a></td><td class="bar" id="b73"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="36" alt="36"/></td><td class="ctr2" id="c82">0%</td><td class="bar" id="d73"/><td class="ctr2" id="e73">n/a</td><td class="ctr1" id="f31">14</td><td class="ctr2" id="g32">14</td><td class="ctr1" id="h56">15</td><td class="ctr2" id="i59">15</td><td class="ctr1" id="j22">14</td><td class="ctr2" id="k22">14</td><td class="ctr1" id="l68">1</td><td class="ctr2" id="m73">1</td></tr><tr><td id="a13"><a href="ClockTest.html" class="el_class">ClockTest</a></td><td class="bar" id="b74"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="36" alt="36"/></td><td class="ctr2" id="c83">0%</td><td class="bar" id="d74"/><td class="ctr2" id="e74">n/a</td><td class="ctr1" id="f83">3</td><td class="ctr2" id="g83">3</td><td class="ctr1" id="h66">12</td><td class="ctr2" id="i67">12</td><td class="ctr1" id="j78">3</td><td class="ctr2" id="k79">3</td><td class="ctr1" id="l69">1</td><td class="ctr2" id="m74">1</td></tr><tr><td id="a44"><a href="InstrumentedScheduledExecutorService$InstrumentedCallable.html" class="el_class">InstrumentedScheduledExecutorService.InstrumentedCallable</a></td><td class="bar" id="b75"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="35" alt="35"/></td><td class="ctr2" id="c84">0%</td><td class="bar" id="d75"/><td class="ctr2" id="e75">n/a</td><td class="ctr1" id="f104">2</td><td class="ctr2" id="g110">2</td><td class="ctr1" id="h82">9</td><td class="ctr2" id="i82">9</td><td class="ctr1" id="j104">2</td><td class="ctr2" id="k110">2</td><td class="ctr1" id="l70">1</td><td class="ctr2" id="m75">1</td></tr><tr><td id="a111"><a href="Slf4jReporter$LoggingLevel.html" class="el_class">Slf4jReporter.LoggingLevel</a></td><td class="bar" id="b76"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="33" alt="33"/></td><td class="ctr2" id="c85">0%</td><td class="bar" id="d76"/><td class="ctr2" id="e76">n/a</td><td class="ctr1" id="f126">1</td><td class="ctr2" id="g129">1</td><td class="ctr1" id="h128">1</td><td class="ctr2" id="i132">1</td><td class="ctr1" id="j126">1</td><td class="ctr2" id="k129">1</td><td class="ctr1" id="l71">1</td><td class="ctr2" id="m76">1</td></tr><tr><td id="a46"><a href="InstrumentedScheduledExecutorService$InstrumentedRunnable.html" class="el_class">InstrumentedScheduledExecutorService.InstrumentedRunnable</a></td><td class="bar" id="b77"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="33" alt="33"/></td><td class="ctr2" id="c86">0%</td><td class="bar" id="d77"/><td class="ctr2" id="e77">n/a</td><td class="ctr1" id="f105">2</td><td class="ctr2" id="g111">2</td><td class="ctr1" id="h78">10</td><td class="ctr2" id="i78">10</td><td class="ctr1" id="j105">2</td><td class="ctr2" id="k111">2</td><td class="ctr1" id="l72">1</td><td class="ctr2" id="m77">1</td></tr><tr><td id="a37"><a href="Histogram.html" class="el_class">Histogram</a></td><td class="bar" id="b78"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="32" alt="32"/></td><td class="ctr2" id="c87">0%</td><td class="bar" id="d78"/><td class="ctr2" id="e78">n/a</td><td class="ctr1" id="f64">5</td><td class="ctr2" id="g65">5</td><td class="ctr1" id="h73">11</td><td class="ctr2" id="i74">11</td><td class="ctr1" id="j59">5</td><td class="ctr2" id="k61">5</td><td class="ctr1" id="l73">1</td><td class="ctr2" id="m78">1</td></tr><tr><td id="a125"><a href="Timer$Context.html" class="el_class">Timer.Context</a></td><td class="bar" id="b79"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="31" alt="31"/></td><td class="ctr2" id="c88">0%</td><td class="bar" id="d79"/><td class="ctr2" id="e79">n/a</td><td class="ctr1" id="f84">3</td><td class="ctr2" id="g84">3</td><td class="ctr1" id="h79">10</td><td class="ctr2" id="i79">10</td><td class="ctr1" id="j79">3</td><td class="ctr2" id="k80">3</td><td class="ctr1" id="l74">1</td><td class="ctr2" id="m79">1</td></tr><tr><td id="a17"><a href="Counter.html" class="el_class">Counter</a></td><td class="bar" id="b80"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="31" alt="31"/></td><td class="ctr2" id="c89">0%</td><td class="bar" id="d80"/><td class="ctr2" id="e80">n/a</td><td class="ctr1" id="f60">6</td><td class="ctr2" id="g61">6</td><td class="ctr1" id="h67">12</td><td class="ctr2" id="i68">12</td><td class="ctr1" id="j52">6</td><td class="ctr2" id="k55">6</td><td class="ctr1" id="l75">1</td><td class="ctr2" id="m80">1</td></tr><tr><td id="a80"><a href="NoopMetricRegistry$EmptyConcurrentMap.html" class="el_class">NoopMetricRegistry.EmptyConcurrentMap</a></td><td class="bar" id="b81"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="30" alt="30"/></td><td class="ctr2" id="c90">0%</td><td class="bar" id="d81"/><td class="ctr2" id="e81">n/a</td><td class="ctr1" id="f25">16</td><td class="ctr2" id="g26">16</td><td class="ctr1" id="h55">16</td><td class="ctr2" id="i58">16</td><td class="ctr1" id="j16">16</td><td class="ctr2" id="k16">16</td><td class="ctr1" id="l76">1</td><td class="ctr2" id="m81">1</td></tr><tr><td id="a123"><a href="Snapshot.html" class="el_class">Snapshot</a></td><td class="bar" id="b82"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="27" alt="27"/></td><td class="ctr2" id="c91">0%</td><td class="bar" id="d82"/><td class="ctr2" id="e82">n/a</td><td class="ctr1" id="f55">7</td><td class="ctr2" id="g57">7</td><td class="ctr1" id="h87">7</td><td class="ctr2" id="i87">7</td><td class="ctr1" id="j47">7</td><td class="ctr2" id="k50">7</td><td class="ctr1" id="l77">1</td><td class="ctr2" id="m82">1</td></tr><tr><td id="a60"><a href="MetricFilter.html" class="el_class">MetricFilter</a></td><td class="bar" id="b83"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="26" alt="26"/></td><td class="ctr2" id="c92">0%</td><td class="bar" id="d83"/><td class="ctr2" id="e83">n/a</td><td class="ctr1" id="f51">8</td><td class="ctr2" id="g54">8</td><td class="ctr1" id="h98">4</td><td class="ctr2" id="i99">4</td><td class="ctr1" id="j43">8</td><td class="ctr2" id="k47">8</td><td class="ctr1" id="l78">1</td><td class="ctr2" id="m83">1</td></tr><tr><td id="a35"><a href="FixedNameCsvFileProvider.html" class="el_class">FixedNameCsvFileProvider</a></td><td class="bar" id="b84"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="26" alt="26"/></td><td class="ctr2" id="c93">0%</td><td class="bar" id="d84"/><td class="ctr2" id="e84">n/a</td><td class="ctr1" id="f85">3</td><td class="ctr2" id="g85">3</td><td class="ctr1" id="h104">3</td><td class="ctr2" id="i105">3</td><td class="ctr1" id="j80">3</td><td class="ctr2" id="k81">3</td><td class="ctr1" id="l79">1</td><td class="ctr2" id="m84">1</td></tr><tr><td id="a49"><a href="InstrumentedThreadFactory$InstrumentedRunnable.html" class="el_class">InstrumentedThreadFactory.InstrumentedRunnable</a></td><td class="bar" id="b85"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="25" alt="25"/></td><td class="ctr2" id="c94">0%</td><td class="bar" id="d85"/><td class="ctr2" id="e85">n/a</td><td class="ctr1" id="f106">2</td><td class="ctr2" id="g112">2</td><td class="ctr1" id="h84">8</td><td class="ctr2" id="i84">8</td><td class="ctr1" id="j106">2</td><td class="ctr2" id="k112">2</td><td class="ctr1" id="l80">1</td><td class="ctr2" id="m85">1</td></tr><tr><td id="a25"><a href="DerivativeGaugeTest.html" class="el_class">DerivativeGaugeTest</a></td><td class="bar" id="b86"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="25" alt="25"/></td><td class="ctr2" id="c95">0%</td><td class="bar" id="d86"/><td class="ctr2" id="e86">n/a</td><td class="ctr1" id="f86">3</td><td class="ctr2" id="g86">3</td><td class="ctr1" id="h89">6</td><td class="ctr2" id="i89">6</td><td class="ctr1" id="j81">3</td><td class="ctr2" id="k82">3</td><td class="ctr1" id="l81">1</td><td class="ctr2" id="m86">1</td></tr><tr><td id="a2"><a href="CachedGaugeTest$2.html" class="el_class">CachedGaugeTest.new CachedGauge() {...}</a></td><td class="bar" id="b87"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="24" alt="24"/></td><td class="ctr2" id="c96">0%</td><td class="bar" id="d87"/><td class="ctr2" id="e87">n/a</td><td class="ctr1" id="f107">2</td><td class="ctr2" id="g113">2</td><td class="ctr1" id="h90">6</td><td class="ctr2" id="i90">6</td><td class="ctr1" id="j107">2</td><td class="ctr2" id="k113">2</td><td class="ctr1" id="l82">1</td><td class="ctr2" id="m87">1</td></tr><tr><td id="a9"><a href="ClassMetadataTest.html" class="el_class">ClassMetadataTest</a></td><td class="bar" id="b88"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="23" alt="23"/></td><td class="ctr2" id="c97">0%</td><td class="bar" id="d88"/><td class="ctr2" id="e88">n/a</td><td class="ctr1" id="f87">3</td><td class="ctr2" id="g87">3</td><td class="ctr1" id="h99">4</td><td class="ctr2" id="i100">4</td><td class="ctr1" id="j82">3</td><td class="ctr2" id="k83">3</td><td class="ctr1" id="l83">1</td><td class="ctr2" id="m88">1</td></tr><tr><td id="a81"><a href="NoopMetricRegistry$EmptySnapshot.html" class="el_class">NoopMetricRegistry.EmptySnapshot</a></td><td class="bar" id="b89"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="23" alt="23"/></td><td class="ctr2" id="c98">0%</td><td class="bar" id="d89"/><td class="ctr2" id="e89">n/a</td><td class="ctr1" id="f45">9</td><td class="ctr2" id="g48">9</td><td class="ctr1" id="h80">10</td><td class="ctr2" id="i80">10</td><td class="ctr1" id="j35">9</td><td class="ctr2" id="k37">9</td><td class="ctr1" id="l84">1</td><td class="ctr2" id="m89">1</td></tr><tr><td id="a31"><a href="ExponentiallyDecayingReservoirTest$ReservoirFactory.html" class="el_class">ExponentiallyDecayingReservoirTest.ReservoirFactory</a></td><td class="bar" id="b90"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="21" alt="21"/></td><td class="ctr2" id="c99">0%</td><td class="bar" id="d90"/><td class="ctr2" id="e90">n/a</td><td class="ctr1" id="f108">2</td><td class="ctr2" id="g114">2</td><td class="ctr1" id="h100">4</td><td class="ctr2" id="i101">4</td><td class="ctr1" id="j108">2</td><td class="ctr2" id="k114">2</td><td class="ctr1" id="l85">1</td><td class="ctr2" id="m90">1</td></tr><tr><td id="a86"><a href="NoopMetricRegistry$NoopMeter.html" class="el_class">NoopMetricRegistry.NoopMeter</a></td><td class="bar" id="b91"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="20" alt="20"/></td><td class="ctr2" id="c100">0%</td><td class="bar" id="d91"/><td class="ctr2" id="e91">n/a</td><td class="ctr1" id="f46">9</td><td class="ctr2" id="g49">9</td><td class="ctr1" id="h83">9</td><td class="ctr2" id="i83">9</td><td class="ctr1" id="j36">9</td><td class="ctr2" id="k38">9</td><td class="ctr1" id="l86">1</td><td class="ctr2" id="m91">1</td></tr><tr><td id="a84"><a href="NoopMetricRegistry$NoopHistogram.html" class="el_class">NoopMetricRegistry.NoopHistogram</a></td><td class="bar" id="b92"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="19" alt="19"/></td><td class="ctr2" id="c101">0%</td><td class="bar" id="d92"/><td class="ctr2" id="e92">n/a</td><td class="ctr1" id="f61">6</td><td class="ctr2" id="g62">6</td><td class="ctr1" id="h85">8</td><td class="ctr2" id="i85">8</td><td class="ctr1" id="j53">6</td><td class="ctr2" id="k56">6</td><td class="ctr1" id="l87">1</td><td class="ctr2" id="m92">1</td></tr><tr><td id="a69"><a href="MetricRegistry$4.html" class="el_class">MetricRegistry.new MetricRegistry.MetricBuilder() {...}</a></td><td class="bar" id="b93"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="18" alt="18"/></td><td class="ctr2" id="c102">0%</td><td class="bar" id="d93"/><td class="ctr2" id="e93">n/a</td><td class="ctr1" id="f88">3</td><td class="ctr2" id="g88">3</td><td class="ctr1" id="h105">3</td><td class="ctr2" id="i106">3</td><td class="ctr1" id="j83">3</td><td class="ctr2" id="k84">3</td><td class="ctr1" id="l88">1</td><td class="ctr2" id="m93">1</td></tr><tr><td id="a70"><a href="MetricRegistry$3.html" class="el_class">MetricRegistry.new MetricRegistry.MetricBuilder() {...}</a></td><td class="bar" id="b94"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="18" alt="18"/></td><td class="ctr2" id="c103">0%</td><td class="bar" id="d94"/><td class="ctr2" id="e94">n/a</td><td class="ctr1" id="f89">3</td><td class="ctr2" id="g89">3</td><td class="ctr1" id="h106">3</td><td class="ctr2" id="i107">3</td><td class="ctr1" id="j84">3</td><td class="ctr2" id="k85">3</td><td class="ctr1" id="l89">1</td><td class="ctr2" id="m94">1</td></tr><tr><td id="a71"><a href="MetricRegistry$2.html" class="el_class">MetricRegistry.new MetricRegistry.MetricBuilder() {...}</a></td><td class="bar" id="b95"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="18" alt="18"/></td><td class="ctr2" id="c104">0%</td><td class="bar" id="d95"/><td class="ctr2" id="e95">n/a</td><td class="ctr1" id="f90">3</td><td class="ctr2" id="g90">3</td><td class="ctr1" id="h107">3</td><td class="ctr2" id="i108">3</td><td class="ctr1" id="j85">3</td><td class="ctr2" id="k86">3</td><td class="ctr1" id="l90">1</td><td class="ctr2" id="m95">1</td></tr><tr><td id="a72"><a href="MetricRegistry$6.html" class="el_class">MetricRegistry.new MetricRegistry.MetricBuilder() {...}</a></td><td class="bar" id="b96"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="18" alt="18"/></td><td class="ctr2" id="c105">0%</td><td class="bar" id="d96"/><td class="ctr2" id="e96">n/a</td><td class="ctr1" id="f91">3</td><td class="ctr2" id="g91">3</td><td class="ctr1" id="h108">3</td><td class="ctr2" id="i109">3</td><td class="ctr1" id="j86">3</td><td class="ctr2" id="k87">3</td><td class="ctr1" id="l91">1</td><td class="ctr2" id="m96">1</td></tr><tr><td id="a73"><a href="MetricRegistry$5.html" class="el_class">MetricRegistry.new MetricRegistry.MetricBuilder() {...}</a></td><td class="bar" id="b97"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="18" alt="18"/></td><td class="ctr2" id="c106">0%</td><td class="bar" id="d97"/><td class="ctr2" id="e97">n/a</td><td class="ctr1" id="f92">3</td><td class="ctr2" id="g92">3</td><td class="ctr1" id="h109">3</td><td class="ctr2" id="i110">3</td><td class="ctr1" id="j87">3</td><td class="ctr2" id="k88">3</td><td class="ctr1" id="l92">1</td><td class="ctr2" id="m97">1</td></tr><tr><td id="a22"><a href="DefaultSettableGauge.html" class="el_class">DefaultSettableGauge</a></td><td class="bar" id="b98"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="17" alt="17"/></td><td class="ctr2" id="c107">0%</td><td class="bar" id="d98"/><td class="ctr2" id="e98">n/a</td><td class="ctr1" id="f75">4</td><td class="ctr2" id="g76">4</td><td class="ctr1" id="h86">8</td><td class="ctr2" id="i86">8</td><td class="ctr1" id="j71">4</td><td class="ctr2" id="k72">4</td><td class="ctr1" id="l93">1</td><td class="ctr2" id="m98">1</td></tr><tr><td id="a127"><a href="TimerTest$1.html" class="el_class">TimerTest.new Clock() {...}</a></td><td class="bar" id="b99"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="17" alt="17"/></td><td class="ctr2" id="c108">0%</td><td class="bar" id="d99"/><td class="ctr2" id="e99">n/a</td><td class="ctr1" id="f109">2</td><td class="ctr2" id="g115">2</td><td class="ctr1" id="h110">3</td><td class="ctr2" id="i111">3</td><td class="ctr1" id="j109">2</td><td class="ctr2" id="k115">2</td><td class="ctr1" id="l94">1</td><td class="ctr2" id="m99">1</td></tr><tr><td id="a32"><a href="ExponentiallyDecayingReservoirTest$ReservoirFactory$2.html" class="el_class">ExponentiallyDecayingReservoirTest.ReservoirFactory.new ExponentiallyDecayingReservoirTest.ReservoirFactory() {...}</a></td><td class="bar" id="b100"/><td class="ctr2" id="c109">0%</td><td class="bar" id="d100"/><td class="ctr2" id="e100">n/a</td><td class="ctr1" id="f110">2</td><td class="ctr2" id="g116">2</td><td class="ctr1" id="h91">6</td><td class="ctr2" id="i91">6</td><td class="ctr1" id="j110">2</td><td class="ctr2" id="k116">2</td><td class="ctr1" id="l95">1</td><td class="ctr2" id="m100">1</td></tr><tr><td id="a113"><a href="Slf4jReporter$WarnLoggerProxy.html" class="el_class">Slf4jReporter.WarnLoggerProxy</a></td><td class="bar" id="b101"/><td class="ctr2" id="c110">0%</td><td class="bar" id="d101"/><td class="ctr2" id="e101">n/a</td><td class="ctr1" id="f93">3</td><td class="ctr2" id="g93">3</td><td class="ctr1" id="h92">5</td><td class="ctr2" id="i92">5</td><td class="ctr1" id="j88">3</td><td class="ctr2" id="k89">3</td><td class="ctr1" id="l96">1</td><td class="ctr2" id="m101">1</td></tr><tr><td id="a107"><a href="Slf4jReporter$DebugLoggerProxy.html" class="el_class">Slf4jReporter.DebugLoggerProxy</a></td><td class="bar" id="b102"/><td class="ctr2" id="c111">0%</td><td class="bar" id="d102"/><td class="ctr2" id="e102">n/a</td><td class="ctr1" id="f94">3</td><td class="ctr2" id="g94">3</td><td class="ctr1" id="h93">5</td><td class="ctr2" id="i93">5</td><td class="ctr1" id="j89">3</td><td class="ctr2" id="k90">3</td><td class="ctr1" id="l97">1</td><td class="ctr2" id="m102">1</td></tr><tr><td id="a3"><a href="CachedGaugeTest$4.html" class="el_class">CachedGaugeTest.new CachedGauge() {...}</a></td><td class="bar" id="b103"/><td class="ctr2" id="c112">0%</td><td class="bar" id="d103"/><td class="ctr2" id="e103">n/a</td><td class="ctr1" id="f111">2</td><td class="ctr2" id="g117">2</td><td class="ctr1" id="h114">2</td><td class="ctr2" id="i121">2</td><td class="ctr1" id="j111">2</td><td class="ctr2" id="k117">2</td><td class="ctr1" id="l98">1</td><td class="ctr2" id="m103">1</td></tr><tr><td id="a108"><a href="Slf4jReporter$ErrorLoggerProxy.html" class="el_class">Slf4jReporter.ErrorLoggerProxy</a></td><td class="bar" id="b104"/><td class="ctr2" id="c113">0%</td><td class="bar" id="d104"/><td class="ctr2" id="e104">n/a</td><td class="ctr1" id="f95">3</td><td class="ctr2" id="g95">3</td><td class="ctr1" id="h94">5</td><td class="ctr2" id="i94">5</td><td class="ctr1" id="j90">3</td><td class="ctr2" id="k91">3</td><td class="ctr1" id="l99">1</td><td class="ctr2" id="m104">1</td></tr><tr><td id="a112"><a href="Slf4jReporter$TraceLoggerProxy.html" class="el_class">Slf4jReporter.TraceLoggerProxy</a></td><td class="bar" id="b105"/><td class="ctr2" id="c114">0%</td><td class="bar" id="d105"/><td class="ctr2" id="e105">n/a</td><td class="ctr1" id="f96">3</td><td class="ctr2" id="g96">3</td><td class="ctr1" id="h95">5</td><td class="ctr2" id="i95">5</td><td class="ctr1" id="j91">3</td><td class="ctr2" id="k92">3</td><td class="ctr1" id="l100">1</td><td class="ctr2" id="m105">1</td></tr><tr><td id="a109"><a href="Slf4jReporter$InfoLoggerProxy.html" class="el_class">Slf4jReporter.InfoLoggerProxy</a></td><td class="bar" id="b106"/><td class="ctr2" id="c115">0%</td><td class="bar" id="d106"/><td class="ctr2" id="e106">n/a</td><td class="ctr1" id="f97">3</td><td class="ctr2" id="g97">3</td><td class="ctr1" id="h96">5</td><td class="ctr2" id="i96">5</td><td class="ctr1" id="j92">3</td><td class="ctr2" id="k93">3</td><td class="ctr1" id="l101">1</td><td class="ctr2" id="m106">1</td></tr><tr><td id="a82"><a href="NoopMetricRegistry$NoopCounter.html" class="el_class">NoopMetricRegistry.NoopCounter</a></td><td class="bar" id="b107"/><td class="ctr2" id="c116">0%</td><td class="bar" id="d107"/><td class="ctr2" id="e107">n/a</td><td class="ctr1" id="f56">7</td><td class="ctr2" id="g58">7</td><td class="ctr1" id="h88">7</td><td class="ctr2" id="i88">7</td><td class="ctr1" id="j48">7</td><td class="ctr2" id="k51">7</td><td class="ctr1" id="l102">1</td><td class="ctr2" id="m107">1</td></tr><tr><td id="a4"><a href="CachedGaugeTest$1.html" class="el_class">CachedGaugeTest.new CachedGauge() {...}</a></td><td class="bar" id="b108"/><td class="ctr2" id="c117">0%</td><td class="bar" id="d108"/><td class="ctr2" id="e108">n/a</td><td class="ctr1" id="f112">2</td><td class="ctr2" id="g118">2</td><td class="ctr1" id="h115">2</td><td class="ctr2" id="i122">2</td><td class="ctr1" id="j112">2</td><td class="ctr2" id="k118">2</td><td class="ctr1" id="l103">1</td><td class="ctr2" id="m108">1</td></tr><tr><td id="a88"><a href="NoopMetricRegistry$NoopTimer$Context.html" class="el_class">NoopMetricRegistry.NoopTimer.Context</a></td><td class="bar" id="b109"/><td class="ctr2" id="c118">0%</td><td class="bar" id="d109"/><td class="ctr2" id="e109">n/a</td><td class="ctr1" id="f76">4</td><td class="ctr2" id="g77">4</td><td class="ctr1" id="h97">5</td><td class="ctr2" id="i97">5</td><td class="ctr1" id="j72">4</td><td class="ctr2" id="k73">4</td><td class="ctr1" id="l104">1</td><td class="ctr2" id="m109">1</td></tr><tr><td id="a33"><a href="ExponentiallyDecayingReservoirTest$ReservoirFactory$1.html" class="el_class">ExponentiallyDecayingReservoirTest.ReservoirFactory.new ExponentiallyDecayingReservoirTest.ReservoirFactory() {...}</a></td><td class="bar" id="b110"/><td class="ctr2" id="c119">0%</td><td class="bar" id="d110"/><td class="ctr2" id="e110">n/a</td><td class="ctr1" id="f113">2</td><td class="ctr2" id="g119">2</td><td class="ctr1" id="h116">2</td><td class="ctr2" id="i123">2</td><td class="ctr1" id="j113">2</td><td class="ctr2" id="k119">2</td><td class="ctr1" id="l105">1</td><td class="ctr2" id="m110">1</td></tr><tr><td id="a5"><a href="CachedGaugeTest$3.html" class="el_class">CachedGaugeTest.new Clock() {...}</a></td><td class="bar" id="b111"/><td class="ctr2" id="c120">0%</td><td class="bar" id="d111"/><td class="ctr2" id="e111">n/a</td><td class="ctr1" id="f114">2</td><td class="ctr2" id="g120">2</td><td class="ctr1" id="h117">2</td><td class="ctr2" id="i124">2</td><td class="ctr1" id="j114">2</td><td class="ctr2" id="k120">2</td><td class="ctr1" id="l106">1</td><td class="ctr2" id="m111">1</td></tr><tr><td id="a75"><a href="MetricRegistryListener$Base.html" class="el_class">MetricRegistryListener.Base</a></td><td class="bar" id="b112"/><td class="ctr2" id="c121">0%</td><td class="bar" id="d112"/><td class="ctr2" id="e112">n/a</td><td class="ctr1" id="f39">11</td><td class="ctr2" id="g41">11</td><td class="ctr1" id="h74">11</td><td class="ctr2" id="i75">11</td><td class="ctr1" id="j30">11</td><td class="ctr2" id="k32">11</td><td class="ctr1" id="l107">1</td><td class="ctr2" id="m112">1</td></tr><tr><td id="a24"><a href="DerivativeGauge.html" class="el_class">DerivativeGauge</a></td><td class="bar" id="b113"/><td class="ctr2" id="c122">0%</td><td class="bar" id="d113"/><td class="ctr2" id="e113">n/a</td><td class="ctr1" id="f115">2</td><td class="ctr2" id="g121">2</td><td class="ctr1" id="h101">4</td><td class="ctr2" id="i102">4</td><td class="ctr1" id="j115">2</td><td class="ctr2" id="k121">2</td><td class="ctr1" id="l108">1</td><td class="ctr2" id="m113">1</td></tr><tr><td id="a64"><a href="MetricRegistry$MetricBuilder$2.html" class="el_class">MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</a></td><td class="bar" id="b114"/><td class="ctr2" id="c12">21%</td><td class="bar" id="d114"/><td class="ctr2" id="e114">n/a</td><td class="ctr1" id="f116">2</td><td class="ctr2" id="g98">3</td><td class="ctr1" id="h118">2</td><td class="ctr2" id="i112">3</td><td class="ctr1" id="j116">2</td><td class="ctr2" id="k94">3</td><td class="ctr1" id="l126">0</td><td class="ctr2" id="m114">1</td></tr><tr><td id="a26"><a href="DerivativeGaugeTest$1.html" class="el_class">DerivativeGaugeTest.new DerivativeGauge() {...}</a></td><td class="bar" id="b115"/><td class="ctr2" id="c123">0%</td><td class="bar" id="d115"/><td class="ctr2" id="e115">n/a</td><td class="ctr1" id="f117">2</td><td class="ctr2" id="g122">2</td><td class="ctr1" id="h119">2</td><td class="ctr2" id="i125">2</td><td class="ctr1" id="j117">2</td><td class="ctr2" id="k122">2</td><td class="ctr1" id="l109">1</td><td class="ctr2" id="m115">1</td></tr><tr><td id="a94"><a href="RatioGaugeTest$1.html" class="el_class">RatioGaugeTest.new RatioGauge() {...}</a></td><td class="bar" id="b116"/><td class="ctr2" id="c124">0%</td><td class="bar" id="d116"/><td class="ctr2" id="e116">n/a</td><td class="ctr1" id="f118">2</td><td class="ctr2" id="g123">2</td><td class="ctr1" id="h120">2</td><td class="ctr2" id="i126">2</td><td class="ctr1" id="j118">2</td><td class="ctr2" id="k123">2</td><td class="ctr1" id="l110">1</td><td class="ctr2" id="m116">1</td></tr><tr><td id="a83"><a href="NoopMetricRegistry$NoopGauge.html" class="el_class">NoopMetricRegistry.NoopGauge</a></td><td class="bar" id="b117"/><td class="ctr2" id="c125">0%</td><td class="bar" id="d117"/><td class="ctr2" id="e117">n/a</td><td class="ctr1" id="f98">3</td><td class="ctr2" id="g99">3</td><td class="ctr1" id="h111">3</td><td class="ctr2" id="i113">3</td><td class="ctr1" id="j93">3</td><td class="ctr2" id="k95">3</td><td class="ctr1" id="l111">1</td><td class="ctr2" id="m117">1</td></tr><tr><td id="a95"><a href="RatioGaugeTest$2.html" class="el_class">RatioGaugeTest.new RatioGauge() {...}</a></td><td class="bar" id="b118"/><td class="ctr2" id="c126">0%</td><td class="bar" id="d118"/><td class="ctr2" id="e118">n/a</td><td class="ctr1" id="f119">2</td><td class="ctr2" id="g124">2</td><td class="ctr1" id="h121">2</td><td class="ctr2" id="i127">2</td><td class="ctr1" id="j119">2</td><td class="ctr2" id="k124">2</td><td class="ctr1" id="l112">1</td><td class="ctr2" id="m118">1</td></tr><tr><td id="a96"><a href="RatioGaugeTest$3.html" class="el_class">RatioGaugeTest.new RatioGauge() {...}</a></td><td class="bar" id="b119"/><td class="ctr2" id="c127">0%</td><td class="bar" id="d119"/><td class="ctr2" id="e119">n/a</td><td class="ctr1" id="f120">2</td><td class="ctr2" id="g125">2</td><td class="ctr1" id="h122">2</td><td class="ctr2" id="i128">2</td><td class="ctr1" id="j120">2</td><td class="ctr2" id="k125">2</td><td class="ctr1" id="l113">1</td><td class="ctr2" id="m119">1</td></tr><tr><td id="a97"><a href="RatioGaugeTest$4.html" class="el_class">RatioGaugeTest.new RatioGauge() {...}</a></td><td class="bar" id="b120"/><td class="ctr2" id="c128">0%</td><td class="bar" id="d120"/><td class="ctr2" id="e120">n/a</td><td class="ctr1" id="f121">2</td><td class="ctr2" id="g126">2</td><td class="ctr1" id="h123">2</td><td class="ctr2" id="i129">2</td><td class="ctr1" id="j121">2</td><td class="ctr2" id="k126">2</td><td class="ctr1" id="l114">1</td><td class="ctr2" id="m120">1</td></tr><tr><td id="a133"><a href="WeightedSnapshot$WeightedSample.html" class="el_class">WeightedSnapshot.WeightedSample</a></td><td class="bar" id="b121"/><td class="ctr2" id="c129">0%</td><td class="bar" id="d121"/><td class="ctr2" id="e121">n/a</td><td class="ctr1" id="f127">1</td><td class="ctr2" id="g130">1</td><td class="ctr1" id="h102">4</td><td class="ctr2" id="i103">4</td><td class="ctr1" id="j127">1</td><td class="ctr2" id="k130">1</td><td class="ctr1" id="l115">1</td><td class="ctr2" id="m121">1</td></tr><tr><td id="a65"><a href="MetricRegistry$MetricBuilder$5.html" class="el_class">MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</a></td><td class="bar" id="b122"/><td class="ctr2" id="c9">27%</td><td class="bar" id="d122"/><td class="ctr2" id="e122">n/a</td><td class="ctr1" id="f122">2</td><td class="ctr2" id="g100">3</td><td class="ctr1" id="h124">2</td><td class="ctr2" id="i114">3</td><td class="ctr1" id="j122">2</td><td class="ctr2" id="k96">3</td><td class="ctr1" id="l127">0</td><td class="ctr2" id="m122">1</td></tr><tr><td id="a66"><a href="MetricRegistry$MetricBuilder$4.html" class="el_class">MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</a></td><td class="bar" id="b123"/><td class="ctr2" id="c10">27%</td><td class="bar" id="d123"/><td class="ctr2" id="e123">n/a</td><td class="ctr1" id="f123">2</td><td class="ctr2" id="g101">3</td><td class="ctr1" id="h125">2</td><td class="ctr2" id="i115">3</td><td class="ctr1" id="j123">2</td><td class="ctr2" id="k97">3</td><td class="ctr1" id="l128">0</td><td class="ctr2" id="m123">1</td></tr><tr><td id="a67"><a href="MetricRegistry$MetricBuilder$1.html" class="el_class">MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</a></td><td class="bar" id="b124"/><td class="ctr2" id="c11">27%</td><td class="bar" id="d124"/><td class="ctr2" id="e124">n/a</td><td class="ctr1" id="f124">2</td><td class="ctr2" id="g102">3</td><td class="ctr1" id="h126">2</td><td class="ctr2" id="i116">3</td><td class="ctr1" id="j124">2</td><td class="ctr2" id="k98">3</td><td class="ctr1" id="l129">0</td><td class="ctr2" id="m124">1</td></tr><tr><td id="a85"><a href="NoopMetricRegistry$NoopHistogram$1.html" class="el_class">NoopMetricRegistry.NoopHistogram.new Reservoir() {...}</a></td><td class="bar" id="b125"/><td class="ctr2" id="c130">0%</td><td class="bar" id="d125"/><td class="ctr2" id="e125">n/a</td><td class="ctr1" id="f77">4</td><td class="ctr2" id="g78">4</td><td class="ctr1" id="h103">4</td><td class="ctr2" id="i104">4</td><td class="ctr1" id="j73">4</td><td class="ctr2" id="k74">4</td><td class="ctr1" id="l116">1</td><td class="ctr2" id="m125">1</td></tr><tr><td id="a91"><a href="RatioGauge.html" class="el_class">RatioGauge</a></td><td class="bar" id="b126"/><td class="ctr2" id="c131">0%</td><td class="bar" id="d126"/><td class="ctr2" id="e126">n/a</td><td class="ctr1" id="f125">2</td><td class="ctr2" id="g127">2</td><td class="ctr1" id="h127">2</td><td class="ctr2" id="i130">2</td><td class="ctr1" id="j125">2</td><td class="ctr2" id="k127">2</td><td class="ctr1" id="l117">1</td><td class="ctr2" id="m126">1</td></tr><tr><td id="a89"><a href="NoopMetricRegistry$NoopTimer$Context$1.html" class="el_class">NoopMetricRegistry.NoopTimer.Context.new Clock() {...}</a></td><td class="bar" id="b127"/><td class="ctr2" id="c132">0%</td><td class="bar" id="d127"/><td class="ctr2" id="e127">n/a</td><td class="ctr1" id="f99">3</td><td class="ctr2" id="g103">3</td><td class="ctr1" id="h112">3</td><td class="ctr2" id="i117">3</td><td class="ctr1" id="j94">3</td><td class="ctr2" id="k99">3</td><td class="ctr1" id="l118">1</td><td class="ctr2" id="m127">1</td></tr><tr><td id="a77"><a href="MetricRegistryListenerTest$1.html" class="el_class">MetricRegistryListenerTest.new MetricRegistryListener.Base() {...}</a></td><td class="bar" id="b128"/><td class="ctr2" id="c133">0%</td><td class="bar" id="d128"/><td class="ctr2" id="e128">n/a</td><td class="ctr1" id="f128">1</td><td class="ctr2" id="g131">1</td><td class="ctr1" id="h129">1</td><td class="ctr2" id="i133">1</td><td class="ctr1" id="j128">1</td><td class="ctr2" id="k131">1</td><td class="ctr1" id="l119">1</td><td class="ctr2" id="m128">1</td></tr><tr><td id="a110"><a href="Slf4jReporter$LoggerProxy.html" class="el_class">Slf4jReporter.LoggerProxy</a></td><td class="bar" id="b129"/><td class="ctr2" id="c134">0%</td><td class="bar" id="d129"/><td class="ctr2" id="e129">n/a</td><td class="ctr1" id="f129">1</td><td class="ctr2" id="g132">1</td><td class="ctr1" id="h113">3</td><td class="ctr2" id="i118">3</td><td class="ctr1" id="j129">1</td><td class="ctr2" id="k132">1</td><td class="ctr1" id="l120">1</td><td class="ctr2" id="m129">1</td></tr><tr><td id="a10"><a href="Clock.html" class="el_class">Clock</a></td><td class="bar" id="b130"/><td class="ctr2" id="c4">71%</td><td class="bar" id="d130"/><td class="ctr2" id="e130">n/a</td><td class="ctr1" id="f130">1</td><td class="ctr2" id="g104">3</td><td class="ctr1" id="h130">1</td><td class="ctr2" id="i119">3</td><td class="ctr1" id="j130">1</td><td class="ctr2" id="k100">3</td><td class="ctr1" id="l130">0</td><td class="ctr2" id="m130">1</td></tr><tr><td id="a63"><a href="MetricRegistry$MetricBuilder.html" class="el_class">MetricRegistry.MetricBuilder</a></td><td class="bar" id="b131"><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="21" alt="21"/></td><td class="ctr2" id="c0">100%</td><td class="bar" id="d131"/><td class="ctr2" id="e131">n/a</td><td class="ctr1" id="f131">0</td><td class="ctr2" id="g133">1</td><td class="ctr1" id="h131">0</td><td class="ctr2" id="i98">5</td><td class="ctr1" id="j131">0</td><td class="ctr2" id="k133">1</td><td class="ctr1" id="l131">0</td><td class="ctr2" id="m131">1</td></tr><tr><td id="a68"><a href="MetricRegistry$MetricBuilder$3.html" class="el_class">MetricRegistry.MetricBuilder.new MetricRegistry.MetricBuilder() {...}</a></td><td class="bar" id="b132"/><td class="ctr2" id="c1">100%</td><td class="bar" id="d132"/><td class="ctr2" id="e132">n/a</td><td class="ctr1" id="f132">0</td><td class="ctr2" id="g105">3</td><td class="ctr1" id="h132">0</td><td class="ctr2" id="i120">3</td><td class="ctr1" id="j132">0</td><td class="ctr2" id="k101">3</td><td class="ctr1" id="l132">0</td><td class="ctr2" id="m132">1</td></tr><tr><td id="a12"><a href="Clock$UserTimeClockHolder.html" class="el_class">Clock.UserTimeClockHolder</a></td><td class="bar" id="b133"/><td class="ctr2" id="c2">100%</td><td class="bar" id="d133"/><td class="ctr2" id="e133">n/a</td><td class="ctr1" id="f133">0</td><td class="ctr2" id="g134">1</td><td class="ctr1" id="h133">0</td><td class="ctr2" id="i134">1</td><td class="ctr1" id="j133">0</td><td class="ctr2" id="k134">1</td><td class="ctr1" id="l133">0</td><td class="ctr2" id="m133">1</td></tr><tr><td id="a11"><a href="Clock$UserTimeClock.html" class="el_class">Clock.UserTimeClock</a></td><td class="bar" id="b134"/><td class="ctr2" id="c3">100%</td><td class="bar" id="d134"/><td class="ctr2" id="e134">n/a</td><td class="ctr1" id="f134">0</td><td class="ctr2" id="g128">2</td><td class="ctr1" id="h134">0</td><td class="ctr2" id="i131">2</td><td class="ctr1" id="j134">0</td><td class="ctr2" id="k128">2</td><td class="ctr1" id="l134">0</td><td class="ctr2" id="m134">1</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/com.codahale.metrics/index.source.html b/metrics-log4j2-htmlReport/com.codahale.metrics/index.source.html
    deleted file mode 100644
    index 4941fc2d65..0000000000
    --- a/metrics-log4j2-htmlReport/com.codahale.metrics/index.source.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="../jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="../jacoco-resources/report.gif" type="image/gif"/><title>com.codahale.metrics</title><script type="text/javascript" src="../jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="index.html" class="el_class">Classes</a><a href="../jacoco-sessions.html" class="el_session">Sessions</a></span><a href="../index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <span class="el_package">com.codahale.metrics</span></div><h1>com.codahale.metrics</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">23,929 of 24,328</td><td class="ctr2">1%</td><td class="bar">536 of 555</td><td class="ctr2">3%</td><td class="ctr1">1,326</td><td class="ctr2">1,372</td><td class="ctr1">4,627</td><td class="ctr2">4,732</td><td class="ctr1">1,051</td><td class="ctr2">1,093</td><td class="ctr1">121</td><td class="ctr2">135</td></tr></tfoot><tbody><tr><td id="a43"><a href="MetricRegistryTest.java.html" class="el_source">MetricRegistryTest.java</a></td><td class="bar" id="b0"><img src="../jacoco-resources/redbar.gif" width="120" height="10" title="1,842" alt="1,842"/></td><td class="ctr2" id="c6">0%</td><td class="bar" id="d41"/><td class="ctr2" id="e41">n/a</td><td class="ctr1" id="f2">81</td><td class="ctr2" id="g2">81</td><td class="ctr1" id="h0">361</td><td class="ctr2" id="i0">361</td><td class="ctr1" id="j1">81</td><td class="ctr2" id="k2">81</td><td class="ctr1" id="l21">1</td><td class="ctr2" id="m22">1</td></tr><tr><td id="a8"><a href="ConsoleReporterTest.java.html" class="el_source">ConsoleReporterTest.java</a></td><td class="bar" id="b1"><img src="../jacoco-resources/redbar.gif" width="95" height="10" title="1,465" alt="1,465"/></td><td class="ctr2" id="c7">0%</td><td class="bar" id="d22"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/></td><td class="ctr2" id="e3">0%</td><td class="ctr1" id="f23">18</td><td class="ctr2" id="g23">18</td><td class="ctr1" id="h2">210</td><td class="ctr2" id="i2">210</td><td class="ctr1" id="j21">15</td><td class="ctr2" id="k21">15</td><td class="ctr1" id="l22">1</td><td class="ctr2" id="m23">1</td></tr><tr><td id="a45"><a href="NoopMetricRegistryTest.java.html" class="el_source">NoopMetricRegistryTest.java</a></td><td class="bar" id="b2"><img src="../jacoco-resources/redbar.gif" width="87" height="10" title="1,340" alt="1,340"/></td><td class="ctr2" id="c8">0%</td><td class="bar" id="d42"/><td class="ctr2" id="e42">n/a</td><td class="ctr1" id="f4">54</td><td class="ctr2" id="g4">54</td><td class="ctr1" id="h1">274</td><td class="ctr2" id="i1">274</td><td class="ctr1" id="j3">54</td><td class="ctr2" id="k3">54</td><td class="ctr1" id="l23">1</td><td class="ctr2" id="m24">1</td></tr><tr><td id="a29"><a href="InstrumentedScheduledExecutorServiceTest.java.html" class="el_source">InstrumentedScheduledExecutorServiceTest.java</a></td><td class="bar" id="b3"><img src="../jacoco-resources/redbar.gif" width="72" height="10" title="1,107" alt="1,107"/></td><td class="ctr2" id="c9">0%</td><td class="bar" id="d29"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e4">0%</td><td class="ctr1" id="f26">16</td><td class="ctr2" id="g26">16</td><td class="ctr1" id="h3">199</td><td class="ctr2" id="i3">199</td><td class="ctr1" id="j22">15</td><td class="ctr2" id="k22">15</td><td class="ctr1" id="l24">1</td><td class="ctr2" id="m25">1</td></tr><tr><td id="a7"><a href="ConsoleReporter.java.html" class="el_source">ConsoleReporter.java</a></td><td class="bar" id="b4"><img src="../jacoco-resources/redbar.gif" width="65" height="10" title="1,010" alt="1,010"/></td><td class="ctr2" id="c10">0%</td><td class="bar" id="d7"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="24" alt="24"/></td><td class="ctr2" id="e5">0%</td><td class="ctr1" id="f10">34</td><td class="ctr2" id="g10">34</td><td class="ctr1" id="h10">133</td><td class="ctr2" id="i11">133</td><td class="ctr1" id="j13">22</td><td class="ctr2" id="k13">22</td><td class="ctr1" id="l9">2</td><td class="ctr2" id="m10">2</td></tr><tr><td id="a53"><a href="Slf4jReporter.java.html" class="el_source">Slf4jReporter.java</a></td><td class="bar" id="b5"><img src="../jacoco-resources/redbar.gif" width="62" height="10" title="964" alt="964"/></td><td class="ctr2" id="c11">0%</td><td class="bar" id="d4"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="29" alt="29"/></td><td class="ctr2" id="e6">0%</td><td class="ctr1" id="f3">66</td><td class="ctr2" id="g3">66</td><td class="ctr1" id="h6">187</td><td class="ctr2" id="i6">187</td><td class="ctr1" id="j4">50</td><td class="ctr2" id="k4">50</td><td class="ctr1" id="l1">9</td><td class="ctr2" id="m2">9</td></tr><tr><td id="a11"><a href="CsvReporter.java.html" class="el_source">CsvReporter.java</a></td><td class="bar" id="b6"><img src="../jacoco-resources/redbar.gif" width="62" height="10" title="952" alt="952"/></td><td class="ctr2" id="c12">0%</td><td class="bar" id="d12"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="16" alt="16"/></td><td class="ctr2" id="e7">0%</td><td class="ctr1" id="f13">30</td><td class="ctr2" id="g13">30</td><td class="ctr1" id="h12">121</td><td class="ctr2" id="i12">121</td><td class="ctr1" id="j14">22</td><td class="ctr2" id="k14">22</td><td class="ctr1" id="l10">2</td><td class="ctr2" id="m11">2</td></tr><tr><td id="a54"><a href="Slf4jReporterTest.java.html" class="el_source">Slf4jReporterTest.java</a></td><td class="bar" id="b7"><img src="../jacoco-resources/redbar.gif" width="60" height="10" title="932" alt="932"/></td><td class="ctr2" id="c13">0%</td><td class="bar" id="d43"/><td class="ctr2" id="e43">n/a</td><td class="ctr1" id="f11">33</td><td class="ctr2" id="g11">33</td><td class="ctr1" id="h4">198</td><td class="ctr2" id="i4">198</td><td class="ctr1" id="j5">33</td><td class="ctr2" id="k5">33</td><td class="ctr1" id="l25">1</td><td class="ctr2" id="m26">1</td></tr><tr><td id="a27"><a href="InstrumentedExecutorServiceTest.java.html" class="el_source">InstrumentedExecutorServiceTest.java</a></td><td class="bar" id="b8"><img src="../jacoco-resources/redbar.gif" width="59" height="10" title="910" alt="910"/></td><td class="ctr2" id="c14">0%</td><td class="bar" id="d30"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e8">0%</td><td class="ctr1" id="f31">13</td><td class="ctr2" id="g32">13</td><td class="ctr1" id="h8">145</td><td class="ctr2" id="i9">145</td><td class="ctr1" id="j26">12</td><td class="ctr2" id="k26">12</td><td class="ctr1" id="l26">1</td><td class="ctr2" id="m27">1</td></tr><tr><td id="a20"><a href="ExponentiallyDecayingReservoirTest.java.html" class="el_source">ExponentiallyDecayingReservoirTest.java</a></td><td class="bar" id="b9"><img src="../jacoco-resources/redbar.gif" width="52" height="10" title="812" alt="812"/></td><td class="ctr2" id="c15">0%</td><td class="bar" id="d2"><img src="../jacoco-resources/redbar.gif" width="72" height="10" title="40" alt="40"/></td><td class="ctr2" id="e9">0%</td><td class="ctr1" id="f5">44</td><td class="ctr2" id="g5">44</td><td class="ctr1" id="h5">195</td><td class="ctr2" id="i5">195</td><td class="ctr1" id="j11">24</td><td class="ctr2" id="k11">24</td><td class="ctr1" id="l5">4</td><td class="ctr2" id="m5">4</td></tr><tr><td id="a40"><a href="MetricRegistry.java.html" class="el_source">MetricRegistry.java</a></td><td class="bar" id="b10"><img src="../jacoco-resources/redbar.gif" width="51" height="10" title="792" alt="792"/><img src="../jacoco-resources/greenbar.gif" width="11" height="10" title="171" alt="171"/></td><td class="ctr2" id="c5">17%</td><td class="bar" id="d1"><img src="../jacoco-resources/redbar.gif" width="92" height="10" title="51" alt="51"/><img src="../jacoco-resources/greenbar.gif" width="27" height="10" title="15" alt="15"/></td><td class="ctr2" id="e1">22%</td><td class="ctr1" id="f1">96</td><td class="ctr2" id="g0">116</td><td class="ctr1" id="h11">133</td><td class="ctr2" id="i7">172</td><td class="ctr1" id="j2">66</td><td class="ctr2" id="k1">83</td><td class="ctr1" id="l2">6</td><td class="ctr2" id="m0">13</td></tr><tr><td id="a12"><a href="CsvReporterTest.java.html" class="el_source">CsvReporterTest.java</a></td><td class="bar" id="b11"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="723" alt="723"/></td><td class="ctr2" id="c16">0%</td><td class="bar" id="d31"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e10">0%</td><td class="ctr1" id="f24">17</td><td class="ctr2" id="g24">17</td><td class="ctr1" id="h9">136</td><td class="ctr2" id="i10">136</td><td class="ctr1" id="j18">16</td><td class="ctr2" id="k18">16</td><td class="ctr1" id="l27">1</td><td class="ctr2" id="m28">1</td></tr><tr><td id="a49"><a href="ScheduledReporterTest.java.html" class="el_source">ScheduledReporterTest.java</a></td><td class="bar" id="b12"><img src="../jacoco-resources/redbar.gif" width="45" height="10" title="700" alt="700"/></td><td class="ctr2" id="c17">0%</td><td class="bar" id="d14"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="12" alt="12"/></td><td class="ctr2" id="e11">0%</td><td class="ctr1" id="f9">35</td><td class="ctr2" id="g9">35</td><td class="ctr1" id="h7">150</td><td class="ctr2" id="i8">150</td><td class="ctr1" id="j6">29</td><td class="ctr2" id="k6">29</td><td class="ctr1" id="l11">2</td><td class="ctr2" id="m12">2</td></tr><tr><td id="a71"><a href="WeightedSnapshotTest.java.html" class="el_source">WeightedSnapshotTest.java</a></td><td class="bar" id="b13"><img src="../jacoco-resources/redbar.gif" width="44" height="10" title="685" alt="685"/></td><td class="ctr2" id="c18">0%</td><td class="bar" id="d26"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="4" alt="4"/></td><td class="ctr2" id="e12">0%</td><td class="ctr1" id="f12">31</td><td class="ctr2" id="g12">31</td><td class="ctr1" id="h15">106</td><td class="ctr2" id="i15">106</td><td class="ctr1" id="j7">29</td><td class="ctr2" id="k7">29</td><td class="ctr1" id="l28">1</td><td class="ctr2" id="m29">1</td></tr><tr><td id="a18"><a href="EWMATest.java.html" class="el_source">EWMATest.java</a></td><td class="bar" id="b14"><img src="../jacoco-resources/redbar.gif" width="42" height="10" title="652" alt="652"/></td><td class="ctr2" id="c19">0%</td><td class="bar" id="d32"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e13">0%</td><td class="ctr1" id="f47">6</td><td class="ctr2" id="g49">6</td><td class="ctr1" id="h14">109</td><td class="ctr2" id="i14">109</td><td class="ctr1" id="j44">5</td><td class="ctr2" id="k48">5</td><td class="ctr1" id="l29">1</td><td class="ctr2" id="m30">1</td></tr><tr><td id="a26"><a href="InstrumentedExecutorService.java.html" class="el_source">InstrumentedExecutorService.java</a></td><td class="bar" id="b15"><img src="../jacoco-resources/redbar.gif" width="33" height="10" title="519" alt="519"/></td><td class="ctr2" id="c20">0%</td><td class="bar" id="d23"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/></td><td class="ctr2" id="e14">0%</td><td class="ctr1" id="f19">24</td><td class="ctr2" id="g19">24</td><td class="ctr1" id="h17">91</td><td class="ctr2" id="i17">91</td><td class="ctr1" id="j15">21</td><td class="ctr2" id="k15">21</td><td class="ctr1" id="l8">3</td><td class="ctr2" id="m8">3</td></tr><tr><td id="a56"><a href="SlidingTimeWindowArrayReservoirTest.java.html" class="el_source">SlidingTimeWindowArrayReservoirTest.java</a></td><td class="bar" id="b16"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="471" alt="471"/></td><td class="ctr2" id="c21">0%</td><td class="bar" id="d11"><img src="../jacoco-resources/redbar.gif" width="32" height="10" title="18" alt="18"/></td><td class="ctr2" id="e15">0%</td><td class="ctr1" id="f29">14</td><td class="ctr2" id="g30">14</td><td class="ctr1" id="h24">74</td><td class="ctr2" id="i24">74</td><td class="ctr1" id="j45">5</td><td class="ctr2" id="k49">5</td><td class="ctr1" id="l30">1</td><td class="ctr2" id="m31">1</td></tr><tr><td id="a28"><a href="InstrumentedScheduledExecutorService.java.html" class="el_source">InstrumentedScheduledExecutorService.java</a></td><td class="bar" id="b17"><img src="../jacoco-resources/redbar.gif" width="30" height="10" title="468" alt="468"/></td><td class="ctr2" id="c22">0%</td><td class="bar" id="d27"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="4" alt="4"/></td><td class="ctr2" id="e16">0%</td><td class="ctr1" id="f14">29</td><td class="ctr2" id="g14">29</td><td class="ctr1" id="h20">87</td><td class="ctr2" id="i20">87</td><td class="ctr1" id="j8">27</td><td class="ctr2" id="k8">27</td><td class="ctr1" id="l6">4</td><td class="ctr2" id="m6">4</td></tr><tr><td id="a2"><a href="ChunkedAssociativeLongArray.java.html" class="el_source">ChunkedAssociativeLongArray.java</a></td><td class="bar" id="b18"><img src="../jacoco-resources/redbar.gif" width="29" height="10" title="450" alt="450"/></td><td class="ctr2" id="c23">0%</td><td class="bar" id="d0"><img src="../jacoco-resources/redbar.gif" width="94" height="10" title="52" alt="52"/></td><td class="ctr2" id="e17">0%</td><td class="ctr1" id="f6">42</td><td class="ctr2" id="g6">42</td><td class="ctr1" id="h16">101</td><td class="ctr2" id="i16">101</td><td class="ctr1" id="j19">16</td><td class="ctr2" id="k19">16</td><td class="ctr1" id="l12">2</td><td class="ctr2" id="m13">2</td></tr><tr><td id="a69"><a href="UniformSnapshotTest.java.html" class="el_source">UniformSnapshotTest.java</a></td><td class="bar" id="b19"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="413" alt="413"/></td><td class="ctr2" id="c24">0%</td><td class="bar" id="d33"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e18">0%</td><td class="ctr1" id="f16">28</td><td class="ctr2" id="g16">28</td><td class="ctr1" id="h19">88</td><td class="ctr2" id="i19">88</td><td class="ctr1" id="j9">27</td><td class="ctr2" id="k9">27</td><td class="ctr1" id="l31">1</td><td class="ctr2" id="m32">1</td></tr><tr><td id="a58"><a href="SlidingTimeWindowMovingAveragesTest.java.html" class="el_source">SlidingTimeWindowMovingAveragesTest.java</a></td><td class="bar" id="b20"><img src="../jacoco-resources/redbar.gif" width="26" height="10" title="412" alt="412"/></td><td class="ctr2" id="c25">0%</td><td class="bar" id="d19"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="8" alt="8"/></td><td class="ctr2" id="e19">0%</td><td class="ctr1" id="f27">15</td><td class="ctr2" id="g28">15</td><td class="ctr1" id="h22">78</td><td class="ctr2" id="i22">78</td><td class="ctr1" id="j27">11</td><td class="ctr2" id="k27">11</td><td class="ctr1" id="l32">1</td><td class="ctr2" id="m33">1</td></tr><tr><td id="a60"><a href="SlidingTimeWindowReservoirTest.java.html" class="el_source">SlidingTimeWindowReservoirTest.java</a></td><td class="bar" id="b21"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="380" alt="380"/></td><td class="ctr2" id="c26">0%</td><td class="bar" id="d15"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="12" alt="12"/></td><td class="ctr2" id="e20">0%</td><td class="ctr1" id="f35">10</td><td class="ctr2" id="g37">10</td><td class="ctr1" id="h29">54</td><td class="ctr2" id="i29">54</td><td class="ctr1" id="j51">4</td><td class="ctr2" id="k54">4</td><td class="ctr1" id="l33">1</td><td class="ctr2" id="m34">1</td></tr><tr><td id="a32"><a href="LockFreeExponentiallyDecayingReservoir.java.html" class="el_source">LockFreeExponentiallyDecayingReservoir.java</a></td><td class="bar" id="b22"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="372" alt="372"/></td><td class="ctr2" id="c27">0%</td><td class="bar" id="d6"><img src="../jacoco-resources/redbar.gif" width="47" height="10" title="26" alt="26"/></td><td class="ctr2" id="e21">0%</td><td class="ctr1" id="f8">36</td><td class="ctr2" id="g8">36</td><td class="ctr1" id="h21">84</td><td class="ctr2" id="i21">84</td><td class="ctr1" id="j12">23</td><td class="ctr2" id="k12">23</td><td class="ctr1" id="l7">4</td><td class="ctr2" id="m7">4</td></tr><tr><td id="a48"><a href="ScheduledReporter.java.html" class="el_source">ScheduledReporter.java</a></td><td class="bar" id="b23"><img src="../jacoco-resources/redbar.gif" width="24" height="10" title="371" alt="371"/></td><td class="ctr2" id="c28">0%</td><td class="bar" id="d8"><img src="../jacoco-resources/redbar.gif" width="43" height="10" title="24" alt="24"/></td><td class="ctr2" id="e22">0%</td><td class="ctr1" id="f7">37</td><td class="ctr2" id="g7">37</td><td class="ctr1" id="h18">90</td><td class="ctr2" id="i18">90</td><td class="ctr1" id="j10">25</td><td class="ctr2" id="k10">25</td><td class="ctr1" id="l13">2</td><td class="ctr2" id="m14">2</td></tr><tr><td id="a70"><a href="WeightedSnapshot.java.html" class="el_source">WeightedSnapshot.java</a></td><td class="bar" id="b24"><img src="../jacoco-resources/redbar.gif" width="22" height="10" title="343" alt="343"/></td><td class="ctr2" id="c29">0%</td><td class="bar" id="d3"><img src="../jacoco-resources/redbar.gif" width="65" height="10" title="36" alt="36"/></td><td class="ctr2" id="e23">0%</td><td class="ctr1" id="f15">29</td><td class="ctr2" id="g15">29</td><td class="ctr1" id="h28">57</td><td class="ctr2" id="i28">57</td><td class="ctr1" id="j28">11</td><td class="ctr2" id="k28">11</td><td class="ctr1" id="l14">2</td><td class="ctr2" id="m15">2</td></tr><tr><td id="a57"><a href="SlidingTimeWindowMovingAverages.java.html" class="el_source">SlidingTimeWindowMovingAverages.java</a></td><td class="bar" id="b25"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="336" alt="336"/></td><td class="ctr2" id="c30">0%</td><td class="bar" id="d9"><img src="../jacoco-resources/redbar.gif" width="40" height="10" title="22" alt="22"/></td><td class="ctr2" id="e24">0%</td><td class="ctr1" id="f18">25</td><td class="ctr2" id="g18">25</td><td class="ctr1" id="h25">70</td><td class="ctr2" id="i25">70</td><td class="ctr1" id="j24">14</td><td class="ctr2" id="k24">14</td><td class="ctr1" id="l34">1</td><td class="ctr2" id="m35">1</td></tr><tr><td id="a65"><a href="TimerTest.java.html" class="el_source">TimerTest.java</a></td><td class="bar" id="b26"><img src="../jacoco-resources/redbar.gif" width="21" height="10" title="325" alt="325"/></td><td class="ctr2" id="c31">0%</td><td class="bar" id="d44"/><td class="ctr2" id="e44">n/a</td><td class="ctr1" id="f25">17</td><td class="ctr2" id="g25">17</td><td class="ctr1" id="h23">78</td><td class="ctr2" id="i23">78</td><td class="ctr1" id="j17">17</td><td class="ctr2" id="k17">17</td><td class="ctr1" id="l15">2</td><td class="ctr2" id="m16">2</td></tr><tr><td id="a19"><a href="ExponentiallyDecayingReservoir.java.html" class="el_source">ExponentiallyDecayingReservoir.java</a></td><td class="bar" id="b27"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="306" alt="306"/></td><td class="ctr2" id="c32">0%</td><td class="bar" id="d10"><img src="../jacoco-resources/redbar.gif" width="36" height="10" title="20" alt="20"/></td><td class="ctr2" id="e25">0%</td><td class="ctr1" id="f17">26</td><td class="ctr2" id="g17">26</td><td class="ctr1" id="h26">69</td><td class="ctr2" id="i26">69</td><td class="ctr1" id="j20">16</td><td class="ctr2" id="k20">16</td><td class="ctr1" id="l35">1</td><td class="ctr2" id="m36">1</td></tr><tr><td id="a68"><a href="UniformSnapshot.java.html" class="el_source">UniformSnapshot.java</a></td><td class="bar" id="b28"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="297" alt="297"/></td><td class="ctr2" id="c33">0%</td><td class="bar" id="d5"><img src="../jacoco-resources/redbar.gif" width="50" height="10" title="28" alt="28"/></td><td class="ctr2" id="e26">0%</td><td class="ctr1" id="f20">24</td><td class="ctr2" id="g20">24</td><td class="ctr1" id="h30">51</td><td class="ctr2" id="i30">51</td><td class="ctr1" id="j30">10</td><td class="ctr2" id="k32">10</td><td class="ctr1" id="l36">1</td><td class="ctr2" id="m37">1</td></tr><tr><td id="a1"><a href="CachedGaugeTest.java.html" class="el_source">CachedGaugeTest.java</a></td><td class="bar" id="b29"><img src="../jacoco-resources/redbar.gif" width="19" height="10" title="292" alt="292"/></td><td class="ctr2" id="c34">0%</td><td class="bar" id="d16"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="10" alt="10"/></td><td class="ctr2" id="e27">0%</td><td class="ctr1" id="f22">20</td><td class="ctr2" id="g22">20</td><td class="ctr1" id="h27">61</td><td class="ctr2" id="i27">61</td><td class="ctr1" id="j23">15</td><td class="ctr2" id="k23">15</td><td class="ctr1" id="l3">5</td><td class="ctr2" id="m3">5</td></tr><tr><td id="a44"><a href="NoopMetricRegistry.java.html" class="el_source">NoopMetricRegistry.java</a></td><td class="bar" id="b30"><img src="../jacoco-resources/redbar.gif" width="16" height="10" title="251" alt="251"/></td><td class="ctr2" id="c35">0%</td><td class="bar" id="d34"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e28">0%</td><td class="ctr1" id="f0">108</td><td class="ctr2" id="g1">108</td><td class="ctr1" id="h13">112</td><td class="ctr2" id="i13">112</td><td class="ctr1" id="j0">107</td><td class="ctr2" id="k0">107</td><td class="ctr1" id="l0">11</td><td class="ctr2" id="m1">11</td></tr><tr><td id="a35"><a href="MeterApproximationTest.java.html" class="el_source">MeterApproximationTest.java</a></td><td class="bar" id="b31"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="168" alt="168"/></td><td class="ctr2" id="c36">0%</td><td class="bar" id="d35"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e29">0%</td><td class="ctr1" id="f44">7</td><td class="ctr2" id="g47">7</td><td class="ctr1" id="h37">27</td><td class="ctr2" id="i40">27</td><td class="ctr1" id="j40">6</td><td class="ctr2" id="k43">6</td><td class="ctr1" id="l37">1</td><td class="ctr2" id="m38">1</td></tr><tr><td id="a64"><a href="Timer.java.html" class="el_source">Timer.java</a></td><td class="bar" id="b32"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="166" alt="166"/></td><td class="ctr2" id="c37">0%</td><td class="bar" id="d36"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e30">0%</td><td class="ctr1" id="f21">21</td><td class="ctr2" id="g21">21</td><td class="ctr1" id="h32">46</td><td class="ctr2" id="i32">46</td><td class="ctr1" id="j16">20</td><td class="ctr2" id="k16">20</td><td class="ctr1" id="l16">2</td><td class="ctr2" id="m17">2</td></tr><tr><td id="a3"><a href="ChunkedAssociativeLongArrayTest.java.html" class="el_source">ChunkedAssociativeLongArrayTest.java</a></td><td class="bar" id="b33"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="165" alt="165"/></td><td class="ctr2" id="c38">0%</td><td class="bar" id="d45"/><td class="ctr2" id="e45">n/a</td><td class="ctr1" id="f69">2</td><td class="ctr2" id="g70">2</td><td class="ctr1" id="h40">26</td><td class="ctr2" id="i43">26</td><td class="ctr1" id="j67">2</td><td class="ctr2" id="k69">2</td><td class="ctr1" id="l38">1</td><td class="ctr2" id="m39">1</td></tr><tr><td id="a55"><a href="SlidingTimeWindowArrayReservoir.java.html" class="el_source">SlidingTimeWindowArrayReservoir.java</a></td><td class="bar" id="b34"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="164" alt="164"/></td><td class="ctr2" id="c39">0%</td><td class="bar" id="d13"><img src="../jacoco-resources/redbar.gif" width="25" height="10" title="14" alt="14"/></td><td class="ctr2" id="e31">0%</td><td class="ctr1" id="f28">15</td><td class="ctr2" id="g29">15</td><td class="ctr1" id="h33">37</td><td class="ctr2" id="i33">37</td><td class="ctr1" id="j33">8</td><td class="ctr2" id="k35">8</td><td class="ctr1" id="l39">1</td><td class="ctr2" id="m40">1</td></tr><tr><td id="a59"><a href="SlidingTimeWindowReservoir.java.html" class="el_source">SlidingTimeWindowReservoir.java</a></td><td class="bar" id="b35"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="159" alt="159"/></td><td class="ctr2" id="c40">0%</td><td class="bar" id="d20"><img src="../jacoco-resources/redbar.gif" width="14" height="10" title="8" alt="8"/></td><td class="ctr2" id="e32">0%</td><td class="ctr1" id="f32">12</td><td class="ctr2" id="g33">12</td><td class="ctr1" id="h34">33</td><td class="ctr2" id="i34">33</td><td class="ctr1" id="j34">8</td><td class="ctr2" id="k36">8</td><td class="ctr1" id="l40">1</td><td class="ctr2" id="m41">1</td></tr><tr><td id="a51"><a href="SharedMetricRegistriesTest.java.html" class="el_source">SharedMetricRegistriesTest.java</a></td><td class="bar" id="b36"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="138" alt="138"/></td><td class="ctr2" id="c41">0%</td><td class="bar" id="d46"/><td class="ctr2" id="e46">n/a</td><td class="ctr1" id="f36">10</td><td class="ctr2" id="g38">10</td><td class="ctr1" id="h31">50</td><td class="ctr2" id="i31">50</td><td class="ctr1" id="j31">10</td><td class="ctr2" id="k33">10</td><td class="ctr1" id="l41">1</td><td class="ctr2" id="m42">1</td></tr><tr><td id="a36"><a href="MeterTest.java.html" class="el_source">MeterTest.java</a></td><td class="bar" id="b37"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="129" alt="129"/></td><td class="ctr2" id="c42">0%</td><td class="bar" id="d47"/><td class="ctr2" id="e47">n/a</td><td class="ctr1" id="f55">4</td><td class="ctr2" id="g57">4</td><td class="ctr1" id="h38">27</td><td class="ctr2" id="i41">27</td><td class="ctr1" id="j52">4</td><td class="ctr2" id="k55">4</td><td class="ctr1" id="l42">1</td><td class="ctr2" id="m43">1</td></tr><tr><td id="a31"><a href="InstrumentedThreadFactoryTest.java.html" class="el_source">InstrumentedThreadFactoryTest.java</a></td><td class="bar" id="b38"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="129" alt="129"/></td><td class="ctr2" id="c43">0%</td><td class="bar" id="d37"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e33">0%</td><td class="ctr1" id="f56">4</td><td class="ctr2" id="g58">4</td><td class="ctr1" id="h35">30</td><td class="ctr2" id="i36">30</td><td class="ctr1" id="j60">3</td><td class="ctr2" id="k62">3</td><td class="ctr1" id="l43">1</td><td class="ctr2" id="m44">1</td></tr><tr><td id="a42"><a href="MetricRegistryListenerTest.java.html" class="el_source">MetricRegistryListenerTest.java</a></td><td class="bar" id="b39"><img src="../jacoco-resources/redbar.gif" width="8" height="10" title="127" alt="127"/></td><td class="ctr2" id="c44">0%</td><td class="bar" id="d48"/><td class="ctr2" id="e48">n/a</td><td class="ctr1" id="f38">9</td><td class="ctr2" id="g40">9</td><td class="ctr1" id="h39">27</td><td class="ctr2" id="i42">27</td><td class="ctr1" id="j32">9</td><td class="ctr2" id="k34">9</td><td class="ctr1" id="l17">2</td><td class="ctr2" id="m18">2</td></tr><tr><td id="a37"><a href="MetricAttribute.java.html" class="el_source">MetricAttribute.java</a></td><td class="bar" id="b40"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="119" alt="119"/></td><td class="ctr2" id="c45">0%</td><td class="bar" id="d49"/><td class="ctr2" id="e49">n/a</td><td class="ctr1" id="f62">3</td><td class="ctr2" id="g64">3</td><td class="ctr1" id="h45">20</td><td class="ctr2" id="i49">20</td><td class="ctr1" id="j61">3</td><td class="ctr2" id="k63">3</td><td class="ctr1" id="l44">1</td><td class="ctr2" id="m45">1</td></tr><tr><td id="a66"><a href="UniformReservoir.java.html" class="el_source">UniformReservoir.java</a></td><td class="bar" id="b41"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="117" alt="117"/></td><td class="ctr2" id="c46">0%</td><td class="bar" id="d17"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="10" alt="10"/></td><td class="ctr2" id="e34">0%</td><td class="ctr1" id="f37">10</td><td class="ctr2" id="g39">10</td><td class="ctr1" id="h41">25</td><td class="ctr2" id="i44">25</td><td class="ctr1" id="j46">5</td><td class="ctr2" id="k50">5</td><td class="ctr1" id="l45">1</td><td class="ctr2" id="m46">1</td></tr><tr><td id="a30"><a href="InstrumentedThreadFactory.java.html" class="el_source">InstrumentedThreadFactory.java</a></td><td class="bar" id="b42"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="102" alt="102"/></td><td class="ctr2" id="c47">0%</td><td class="bar" id="d50"/><td class="ctr2" id="e50">n/a</td><td class="ctr1" id="f48">6</td><td class="ctr2" id="g50">6</td><td class="ctr1" id="h44">21</td><td class="ctr2" id="i48">21</td><td class="ctr1" id="j41">6</td><td class="ctr2" id="k44">6</td><td class="ctr1" id="l18">2</td><td class="ctr2" id="m19">2</td></tr><tr><td id="a47"><a href="RatioGaugeTest.java.html" class="el_source">RatioGaugeTest.java</a></td><td class="bar" id="b43"><img src="../jacoco-resources/redbar.gif" width="6" height="10" title="99" alt="99"/></td><td class="ctr2" id="c48">0%</td><td class="bar" id="d51"/><td class="ctr2" id="e51">n/a</td><td class="ctr1" id="f30">14</td><td class="ctr2" id="g31">14</td><td class="ctr1" id="h42">25</td><td class="ctr2" id="i45">25</td><td class="ctr1" id="j25">14</td><td class="ctr2" id="k25">14</td><td class="ctr1" id="l4">5</td><td class="ctr2" id="m4">5</td></tr><tr><td id="a10"><a href="CounterTest.java.html" class="el_source">CounterTest.java</a></td><td class="bar" id="b44"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="85" alt="85"/></td><td class="ctr2" id="c49">0%</td><td class="bar" id="d52"/><td class="ctr2" id="e52">n/a</td><td class="ctr1" id="f41">8</td><td class="ctr2" id="g44">8</td><td class="ctr1" id="h36">29</td><td class="ctr2" id="i37">29</td><td class="ctr1" id="j35">8</td><td class="ctr2" id="k37">8</td><td class="ctr1" id="l46">1</td><td class="ctr2" id="m47">1</td></tr><tr><td id="a0"><a href="CachedGauge.java.html" class="el_source">CachedGauge.java</a></td><td class="bar" id="b45"><img src="../jacoco-resources/redbar.gif" width="5" height="10" title="81" alt="81"/></td><td class="ctr2" id="c50">0%</td><td class="bar" id="d18"><img src="../jacoco-resources/redbar.gif" width="18" height="10" title="10" alt="10"/></td><td class="ctr2" id="e35">0%</td><td class="ctr1" id="f39">9</td><td class="ctr2" id="g41">9</td><td class="ctr1" id="h43">22</td><td class="ctr2" id="i47">22</td><td class="ctr1" id="j53">4</td><td class="ctr2" id="k56">4</td><td class="ctr1" id="l47">1</td><td class="ctr2" id="m48">1</td></tr><tr><td id="a39"><a href="MetricFilterTest.java.html" class="el_source">MetricFilterTest.java</a></td><td class="bar" id="b46"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="76" alt="76"/></td><td class="ctr2" id="c51">0%</td><td class="bar" id="d53"/><td class="ctr2" id="e53">n/a</td><td class="ctr1" id="f51">5</td><td class="ctr2" id="g53">5</td><td class="ctr1" id="h47">19</td><td class="ctr2" id="i50">19</td><td class="ctr1" id="j47">5</td><td class="ctr2" id="k51">5</td><td class="ctr1" id="l48">1</td><td class="ctr2" id="m49">1</td></tr><tr><td id="a62"><a href="SlidingWindowReservoirTest.java.html" class="el_source">SlidingWindowReservoirTest.java</a></td><td class="bar" id="b47"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="73" alt="73"/></td><td class="ctr2" id="c52">0%</td><td class="bar" id="d54"/><td class="ctr2" id="e54">n/a</td><td class="ctr1" id="f63">3</td><td class="ctr2" id="g65">3</td><td class="ctr1" id="h50">14</td><td class="ctr2" id="i53">14</td><td class="ctr1" id="j62">3</td><td class="ctr2" id="k64">3</td><td class="ctr1" id="l49">1</td><td class="ctr2" id="m50">1</td></tr><tr><td id="a61"><a href="SlidingWindowReservoir.java.html" class="el_source">SlidingWindowReservoir.java</a></td><td class="bar" id="b48"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="68" alt="68"/></td><td class="ctr2" id="c53">0%</td><td class="bar" id="d38"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e36">0%</td><td class="ctr1" id="f52">5</td><td class="ctr2" id="g54">5</td><td class="ctr1" id="h53">13</td><td class="ctr2" id="i56">13</td><td class="ctr1" id="j54">4</td><td class="ctr2" id="k57">4</td><td class="ctr1" id="l50">1</td><td class="ctr2" id="m51">1</td></tr><tr><td id="a25"><a href="HistogramTest.java.html" class="el_source">HistogramTest.java</a></td><td class="bar" id="b49"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="63" alt="63"/></td><td class="ctr2" id="c54">0%</td><td class="bar" id="d55"/><td class="ctr2" id="e55">n/a</td><td class="ctr1" id="f57">4</td><td class="ctr2" id="g59">4</td><td class="ctr1" id="h48">17</td><td class="ctr2" id="i51">17</td><td class="ctr1" id="j55">4</td><td class="ctr2" id="k58">4</td><td class="ctr1" id="l51">1</td><td class="ctr2" id="m52">1</td></tr><tr><td id="a23"><a href="FixedNameCsvFileProviderTest.java.html" class="el_source">FixedNameCsvFileProviderTest.java</a></td><td class="bar" id="b50"><img src="../jacoco-resources/redbar.gif" width="4" height="10" title="62" alt="62"/></td><td class="ctr2" id="c55">0%</td><td class="bar" id="d56"/><td class="ctr2" id="e56">n/a</td><td class="ctr1" id="f58">4</td><td class="ctr2" id="g60">4</td><td class="ctr1" id="h51">14</td><td class="ctr2" id="i54">14</td><td class="ctr1" id="j56">4</td><td class="ctr2" id="k59">4</td><td class="ctr1" id="l52">1</td><td class="ctr2" id="m53">1</td></tr><tr><td id="a67"><a href="UniformReservoirTest.java.html" class="el_source">UniformReservoirTest.java</a></td><td class="bar" id="b51"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="60" alt="60"/></td><td class="ctr2" id="c56">0%</td><td class="bar" id="d28"><img src="../jacoco-resources/redbar.gif" width="7" height="10" title="4" alt="4"/></td><td class="ctr2" id="e37">0%</td><td class="ctr1" id="f59">4</td><td class="ctr2" id="g61">4</td><td class="ctr1" id="h52">14</td><td class="ctr2" id="i55">14</td><td class="ctr1" id="j68">2</td><td class="ctr2" id="k70">2</td><td class="ctr1" id="l53">1</td><td class="ctr2" id="m54">1</td></tr><tr><td id="a50"><a href="SharedMetricRegistries.java.html" class="el_source">SharedMetricRegistries.java</a></td><td class="bar" id="b52"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="58" alt="58"/><img src="../jacoco-resources/greenbar.gif" width="2" height="10" title="39" alt="39"/></td><td class="ctr2" id="c4">40%</td><td class="bar" id="d21"><img src="../jacoco-resources/redbar.gif" width="12" height="10" title="7" alt="7"/><img src="../jacoco-resources/greenbar.gif" width="5" height="10" title="3" alt="3"/></td><td class="ctr2" id="e0">30%</td><td class="ctr1" id="f33">11</td><td class="ctr2" id="g27">16</td><td class="ctr1" id="h46">20</td><td class="ctr2" id="i35">32</td><td class="ctr1" id="j38">7</td><td class="ctr2" id="k29">11</td><td class="ctr1" id="l67">0</td><td class="ctr2" id="m55">1</td></tr><tr><td id="a33"><a href="ManualClock.java.html" class="el_source">ManualClock.java</a></td><td class="bar" id="b53"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="58" alt="58"/></td><td class="ctr2" id="c57">0%</td><td class="bar" id="d57"/><td class="ctr2" id="e57">n/a</td><td class="ctr1" id="f42">8</td><td class="ctr2" id="g45">8</td><td class="ctr1" id="h49">16</td><td class="ctr2" id="i52">16</td><td class="ctr1" id="j36">8</td><td class="ctr2" id="k38">8</td><td class="ctr1" id="l54">1</td><td class="ctr2" id="m56">1</td></tr><tr><td id="a46"><a href="RatioGauge.java.html" class="el_source">RatioGauge.java</a></td><td class="bar" id="b54"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="56" alt="56"/></td><td class="ctr2" id="c58">0%</td><td class="bar" id="d24"><img src="../jacoco-resources/redbar.gif" width="10" height="10" title="6" alt="6"/></td><td class="ctr2" id="e38">0%</td><td class="ctr1" id="f40">9</td><td class="ctr2" id="g42">9</td><td class="ctr1" id="h54">12</td><td class="ctr2" id="i57">12</td><td class="ctr1" id="j42">6</td><td class="ctr2" id="k45">6</td><td class="ctr1" id="l19">2</td><td class="ctr2" id="m20">2</td></tr><tr><td id="a21"><a href="ExponentialMovingAverages.java.html" class="el_source">ExponentialMovingAverages.java</a></td><td class="bar" id="b55"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="55" alt="55"/><img src="../jacoco-resources/greenbar.gif" width="3" height="10" title="58" alt="58"/></td><td class="ctr2" id="c2">51%</td><td class="bar" id="d25"><img src="../jacoco-resources/redbar.gif" width="9" height="10" title="5" alt="5"/><img src="../jacoco-resources/greenbar.gif" width="1" height="10" title="1" alt="1"/></td><td class="ctr2" id="e2">16%</td><td class="ctr1" id="f45">7</td><td class="ctr2" id="g35">11</td><td class="ctr1" id="h55">12</td><td class="ctr2" id="i38">29</td><td class="ctr1" id="j57">4</td><td class="ctr2" id="k39">8</td><td class="ctr1" id="l68">0</td><td class="ctr2" id="m57">1</td></tr><tr><td id="a34"><a href="Meter.java.html" class="el_source">Meter.java</a></td><td class="bar" id="b56"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="52" alt="52"/><img src="../jacoco-resources/greenbar.gif" width="3" height="10" title="51" alt="51"/></td><td class="ctr2" id="c3">49%</td><td class="bar" id="d39"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e39">0%</td><td class="ctr1" id="f49">6</td><td class="ctr2" id="g34">12</td><td class="ctr1" id="h56">12</td><td class="ctr2" id="i39">29</td><td class="ctr1" id="j48">5</td><td class="ctr2" id="k30">11</td><td class="ctr1" id="l69">0</td><td class="ctr2" id="m58">1</td></tr><tr><td id="a52"><a href="SimpleSettableGaugeTest.java.html" class="el_source">SimpleSettableGaugeTest.java</a></td><td class="bar" id="b57"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="43" alt="43"/></td><td class="ctr2" id="c59">0%</td><td class="bar" id="d58"/><td class="ctr2" id="e58">n/a</td><td class="ctr1" id="f64">3</td><td class="ctr2" id="g66">3</td><td class="ctr1" id="h57">12</td><td class="ctr2" id="i58">12</td><td class="ctr1" id="j63">3</td><td class="ctr2" id="k65">3</td><td class="ctr1" id="l55">1</td><td class="ctr2" id="m59">1</td></tr><tr><td id="a17"><a href="EWMA.java.html" class="el_source">EWMA.java</a></td><td class="bar" id="b58"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="42" alt="42"/><img src="../jacoco-resources/greenbar.gif" width="4" height="10" title="65" alt="65"/></td><td class="ctr2" id="c1">60%</td><td class="bar" id="d40"><img src="../jacoco-resources/redbar.gif" width="3" height="10" title="2" alt="2"/></td><td class="ctr2" id="e40">0%</td><td class="ctr1" id="f65">3</td><td class="ctr2" id="g43">9</td><td class="ctr1" id="h63">10</td><td class="ctr2" id="i46">25</td><td class="ctr1" id="j69">2</td><td class="ctr2" id="k40">8</td><td class="ctr1" id="l70">0</td><td class="ctr2" id="m60">1</td></tr><tr><td id="a14"><a href="DefaultSettableGaugeTest.java.html" class="el_source">DefaultSettableGaugeTest.java</a></td><td class="bar" id="b59"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="42" alt="42"/></td><td class="ctr2" id="c60">0%</td><td class="bar" id="d59"/><td class="ctr2" id="e59">n/a</td><td class="ctr1" id="f60">4</td><td class="ctr2" id="g62">4</td><td class="ctr1" id="h60">11</td><td class="ctr2" id="i61">11</td><td class="ctr1" id="j58">4</td><td class="ctr2" id="k60">4</td><td class="ctr1" id="l56">1</td><td class="ctr2" id="m61">1</td></tr><tr><td id="a16"><a href="DerivativeGaugeTest.java.html" class="el_source">DerivativeGaugeTest.java</a></td><td class="bar" id="b60"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="36" alt="36"/></td><td class="ctr2" id="c61">0%</td><td class="bar" id="d60"/><td class="ctr2" id="e60">n/a</td><td class="ctr1" id="f53">5</td><td class="ctr2" id="g55">5</td><td class="ctr1" id="h65">7</td><td class="ctr2" id="i65">7</td><td class="ctr1" id="j49">5</td><td class="ctr2" id="k52">5</td><td class="ctr1" id="l20">2</td><td class="ctr2" id="m21">2</td></tr><tr><td id="a6"><a href="ClockTest.java.html" class="el_source">ClockTest.java</a></td><td class="bar" id="b61"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="36" alt="36"/></td><td class="ctr2" id="c62">0%</td><td class="bar" id="d61"/><td class="ctr2" id="e61">n/a</td><td class="ctr1" id="f66">3</td><td class="ctr2" id="g67">3</td><td class="ctr1" id="h58">12</td><td class="ctr2" id="i59">12</td><td class="ctr1" id="j64">3</td><td class="ctr2" id="k66">3</td><td class="ctr1" id="l57">1</td><td class="ctr2" id="m62">1</td></tr><tr><td id="a24"><a href="Histogram.java.html" class="el_source">Histogram.java</a></td><td class="bar" id="b62"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="32" alt="32"/></td><td class="ctr2" id="c63">0%</td><td class="bar" id="d62"/><td class="ctr2" id="e62">n/a</td><td class="ctr1" id="f54">5</td><td class="ctr2" id="g56">5</td><td class="ctr1" id="h61">11</td><td class="ctr2" id="i62">11</td><td class="ctr1" id="j50">5</td><td class="ctr2" id="k53">5</td><td class="ctr1" id="l58">1</td><td class="ctr2" id="m63">1</td></tr><tr><td id="a9"><a href="Counter.java.html" class="el_source">Counter.java</a></td><td class="bar" id="b63"><img src="../jacoco-resources/redbar.gif" width="2" height="10" title="31" alt="31"/></td><td class="ctr2" id="c64">0%</td><td class="bar" id="d63"/><td class="ctr2" id="e63">n/a</td><td class="ctr1" id="f50">6</td><td class="ctr2" id="g51">6</td><td class="ctr1" id="h59">12</td><td class="ctr2" id="i60">12</td><td class="ctr1" id="j43">6</td><td class="ctr2" id="k46">6</td><td class="ctr1" id="l59">1</td><td class="ctr2" id="m64">1</td></tr><tr><td id="a63"><a href="Snapshot.java.html" class="el_source">Snapshot.java</a></td><td class="bar" id="b64"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="27" alt="27"/></td><td class="ctr2" id="c65">0%</td><td class="bar" id="d64"/><td class="ctr2" id="e64">n/a</td><td class="ctr1" id="f46">7</td><td class="ctr2" id="g48">7</td><td class="ctr1" id="h66">7</td><td class="ctr2" id="i66">7</td><td class="ctr1" id="j39">7</td><td class="ctr2" id="k42">7</td><td class="ctr1" id="l60">1</td><td class="ctr2" id="m65">1</td></tr><tr><td id="a22"><a href="FixedNameCsvFileProvider.java.html" class="el_source">FixedNameCsvFileProvider.java</a></td><td class="bar" id="b65"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="26" alt="26"/></td><td class="ctr2" id="c66">0%</td><td class="bar" id="d65"/><td class="ctr2" id="e65">n/a</td><td class="ctr1" id="f67">3</td><td class="ctr2" id="g68">3</td><td class="ctr1" id="h70">3</td><td class="ctr2" id="i71">3</td><td class="ctr1" id="j65">3</td><td class="ctr2" id="k67">3</td><td class="ctr1" id="l61">1</td><td class="ctr2" id="m66">1</td></tr><tr><td id="a38"><a href="MetricFilter.java.html" class="el_source">MetricFilter.java</a></td><td class="bar" id="b66"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="26" alt="26"/></td><td class="ctr2" id="c67">0%</td><td class="bar" id="d66"/><td class="ctr2" id="e66">n/a</td><td class="ctr1" id="f43">8</td><td class="ctr2" id="g46">8</td><td class="ctr1" id="h67">4</td><td class="ctr2" id="i68">4</td><td class="ctr1" id="j37">8</td><td class="ctr2" id="k41">8</td><td class="ctr1" id="l62">1</td><td class="ctr2" id="m67">1</td></tr><tr><td id="a4"><a href="ClassMetadataTest.java.html" class="el_source">ClassMetadataTest.java</a></td><td class="bar" id="b67"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="23" alt="23"/></td><td class="ctr2" id="c68">0%</td><td class="bar" id="d67"/><td class="ctr2" id="e67">n/a</td><td class="ctr1" id="f68">3</td><td class="ctr2" id="g69">3</td><td class="ctr1" id="h68">4</td><td class="ctr2" id="i69">4</td><td class="ctr1" id="j66">3</td><td class="ctr2" id="k68">3</td><td class="ctr1" id="l63">1</td><td class="ctr2" id="m68">1</td></tr><tr><td id="a13"><a href="DefaultSettableGauge.java.html" class="el_source">DefaultSettableGauge.java</a></td><td class="bar" id="b68"><img src="../jacoco-resources/redbar.gif" width="1" height="10" title="17" alt="17"/></td><td class="ctr2" id="c69">0%</td><td class="bar" id="d68"/><td class="ctr2" id="e68">n/a</td><td class="ctr1" id="f61">4</td><td class="ctr2" id="g63">4</td><td class="ctr1" id="h64">8</td><td class="ctr2" id="i64">8</td><td class="ctr1" id="j59">4</td><td class="ctr2" id="k61">4</td><td class="ctr1" id="l64">1</td><td class="ctr2" id="m69">1</td></tr><tr><td id="a41"><a href="MetricRegistryListener.java.html" class="el_source">MetricRegistryListener.java</a></td><td class="bar" id="b69"/><td class="ctr2" id="c70">0%</td><td class="bar" id="d69"/><td class="ctr2" id="e69">n/a</td><td class="ctr1" id="f34">11</td><td class="ctr2" id="g36">11</td><td class="ctr1" id="h62">11</td><td class="ctr2" id="i63">11</td><td class="ctr1" id="j29">11</td><td class="ctr2" id="k31">11</td><td class="ctr1" id="l65">1</td><td class="ctr2" id="m70">1</td></tr><tr><td id="a15"><a href="DerivativeGauge.java.html" class="el_source">DerivativeGauge.java</a></td><td class="bar" id="b70"/><td class="ctr2" id="c71">0%</td><td class="bar" id="d70"/><td class="ctr2" id="e70">n/a</td><td class="ctr1" id="f70">2</td><td class="ctr2" id="g71">2</td><td class="ctr1" id="h69">4</td><td class="ctr2" id="i70">4</td><td class="ctr1" id="j70">2</td><td class="ctr2" id="k71">2</td><td class="ctr1" id="l66">1</td><td class="ctr2" id="m71">1</td></tr><tr><td id="a5"><a href="Clock.java.html" class="el_source">Clock.java</a></td><td class="bar" id="b71"/><td class="ctr2" id="c0">88%</td><td class="bar" id="d71"/><td class="ctr2" id="e71">n/a</td><td class="ctr1" id="f71">1</td><td class="ctr2" id="g52">6</td><td class="ctr1" id="h71">1</td><td class="ctr2" id="i67">6</td><td class="ctr1" id="j71">1</td><td class="ctr2" id="k47">6</td><td class="ctr1" id="l71">0</td><td class="ctr2" id="m9">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/index.html b/metrics-log4j2-htmlReport/index.html
    deleted file mode 100644
    index 281dcfef1d..0000000000
    --- a/metrics-log4j2-htmlReport/index.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>All in metrics-log4j2 Coverage Results</title><script type="text/javascript" src="jacoco-resources/sort.js"></script></head><body onload="initialSort(['breadcrumb', 'coveragetable'])"><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><span class="el_report">All in metrics-log4j2 Coverage Results</span></div><h1>All in metrics-log4j2 Coverage Results</h1><table class="coverage" cellspacing="0" id="coveragetable"><thead><tr><td class="sortable" id="a" onclick="toggleSort(this)">Element</td><td class="down sortable bar" id="b" onclick="toggleSort(this)">Missed Instructions</td><td class="sortable ctr2" id="c" onclick="toggleSort(this)">Cov.</td><td class="sortable bar" id="d" onclick="toggleSort(this)">Missed Branches</td><td class="sortable ctr2" id="e" onclick="toggleSort(this)">Cov.</td><td class="sortable ctr1" id="f" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="g" onclick="toggleSort(this)">Cxty</td><td class="sortable ctr1" id="h" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="i" onclick="toggleSort(this)">Lines</td><td class="sortable ctr1" id="j" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="k" onclick="toggleSort(this)">Methods</td><td class="sortable ctr1" id="l" onclick="toggleSort(this)">Missed</td><td class="sortable ctr2" id="m" onclick="toggleSort(this)">Classes</td></tr></thead><tfoot><tr><td>Total</td><td class="bar">23,937 of 24,871</td><td class="ctr2">3%</td><td class="bar">537 of 562</td><td class="ctr2">4%</td><td class="ctr1">1,328</td><td class="ctr2">1,402</td><td class="ctr1">4,629</td><td class="ctr2">4,853</td><td class="ctr1">1,052</td><td class="ctr2">1,117</td><td class="ctr1">121</td><td class="ctr2">138</td></tr></tfoot><tbody><tr><td id="a0"><a href="com.codahale.metrics/index.html" class="el_package">com.codahale.metrics</a></td><td class="bar" id="b0"><img src="jacoco-resources/redbar.gif" width="118" height="10" title="23,929" alt="23,929"/><img src="jacoco-resources/greenbar.gif" width="1" height="10" title="399" alt="399"/></td><td class="ctr2" id="c1">1%</td><td class="bar" id="d0"><img src="jacoco-resources/redbar.gif" width="115" height="10" title="536" alt="536"/><img src="jacoco-resources/greenbar.gif" width="4" height="10" title="19" alt="19"/></td><td class="ctr2" id="e1">3%</td><td class="ctr1" id="f0">1,326</td><td class="ctr2" id="g0">1,372</td><td class="ctr1" id="h0">4,627</td><td class="ctr2" id="i0">4,732</td><td class="ctr1" id="j0">1,051</td><td class="ctr2" id="k0">1,093</td><td class="ctr1" id="l0">121</td><td class="ctr2" id="m0">135</td></tr><tr><td id="a1"><a href="com.codahale.metrics.log4j2/index.html" class="el_package">com.codahale.metrics.log4j2</a></td><td class="bar" id="b1"><img src="jacoco-resources/greenbar.gif" width="2" height="10" title="535" alt="535"/></td><td class="ctr2" id="c0">98%</td><td class="bar" id="d1"><img src="jacoco-resources/greenbar.gif" width="1" height="10" title="6" alt="6"/></td><td class="ctr2" id="e0">85%</td><td class="ctr1" id="f1">2</td><td class="ctr2" id="g1">30</td><td class="ctr1" id="h1">2</td><td class="ctr2" id="i1">121</td><td class="ctr1" id="j1">1</td><td class="ctr2" id="k1">24</td><td class="ctr1" id="l1">0</td><td class="ctr2" id="m1">3</td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/branchfc.gif b/metrics-log4j2-htmlReport/jacoco-resources/branchfc.gif
    deleted file mode 100644
    index 989b46d30469b56b014758f846ee6c5abfda16aa..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 91
    zcmZ?wbhEHb<YM4rIK;xhkjB6;lY!w31H*rY|42abCkrDN13QBb0}z1JGB7JtR5AQc
    j;9zf`qaAf{?!7xKElvq+aTP&4>6=b<*h$V|V6X-NwhSNb
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/branchnc.gif b/metrics-log4j2-htmlReport/jacoco-resources/branchnc.gif
    deleted file mode 100644
    index 1933e07c376bb71bdd9aac91cf858da3fcdb0f1c..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 91
    zcmZ?wbhEHb<YM4rIK;xxz`$^Zf#E#^!~cec|42abCkrDN13QBb0}z1JGB7JtR5AQc
    j;9zf`qaAf{?!7xKElvq+aTP&4>6=b<*h$V|V6X-N9U38B
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/branchpc.gif b/metrics-log4j2-htmlReport/jacoco-resources/branchpc.gif
    deleted file mode 100644
    index cbf711b7030929b733f22f7a0cf3dbf61fe7868f..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 91
    zcmZ?wbhEHb<YM4rIK;v*A(Y{H7sIRF44*zR{6_+cKUo;L7}yzf7=QqzmVsHJqKe^n
    j0tb8h9POxsbMM_@X>m$mi>nCYN#As;!%lJz1A{dHmlPuc
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/bundle.gif b/metrics-log4j2-htmlReport/jacoco-resources/bundle.gif
    deleted file mode 100644
    index fca9c53e629a7a5c07186ac1e2a1e37d8d6e88f4..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 709
    zcmZ?wbhEHb6krfwxXQrrpW*-7BK;<J$sad5=B26sxKQ!q!Hgdl8q(~HUL2e9<Hd#-
    z7dn1?IPw4g|HIv8zrOAI@nFG^8xwkB-G027acOnKpKtdcpWnHq-sr)BinT@BA8t%o
    znxj(b?=UZ3c5RMIe~{#!dZYLEkL_tSI^1f;Km(xolZ6pvtPY3(`H6w8*rB1oLr1Fr
    zgz}>o8CDEUD?$vun5^UNelT%D!ODh<DT^W#oSIlz7qWFr6j-<`INnfgQuR3aJbW7`
    zN4%4`K$`$#XID3aq+mZI+oZ{pxEUFwnVA`9&7C{VNtTt7ed)5L3!LN`S=X*xyV99u
    u^Omii+jqD*GFUt3=ar=9mFR|47NlA!WacKOr|PF?rg3q(j|Mjlf*SzSChrLV
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/class.gif b/metrics-log4j2-htmlReport/jacoco-resources/class.gif
    deleted file mode 100644
    index eb348fb0d498d75976150047b1b5c2fefc9dc220..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 586
    zcmZ?wbhEHb6krfwI2Or}v!c<s$=9se-=Q<YsXNN8KQ3fOR@Cf*m^p=Yn<q4Gopkom
    z6_qkOy&5;;MsLfufQUJ{vGWR(7nLtMxlXsnMX%OXzt+v54k+vCJt@I!LR|T}_8Twn
    z8a23^wRl;#``dR0_3fQy*Wqv15n$II;MN!J-X9S(Eh&3>RsX(Ohwq+z^!{nkw1lu(
    zDPc2HV&`P7KEHX-jYA>R6T@ewM9fTyo0E0x)!k<wUj$8y`}qA+!h+12O)Zt{8e4bt
    z^z51Z;rqwPnTZ)o@)H-NC(KKmcWmLES9jAFW#uj_C|_66u(_dnV^!t4^7b9Ajhky9
    zzJD-rU(e=C8}{7Xx$oBQ`NwB1I6iy#jqQi->_2wz@P-Sk{|^LE{K>+|z);Vi!vF-J
    zIALI4-caAv+|t_C-oY&>$uA|y-ND80=rPrik*keM);A(7JS@bMXJ#`uzjsjN>eYc>
    zj1!vJoq|_~`Ugb%`8WwRvs$=Bx;h_qcXM-KZDthLjMNep5fPP;Q{vk%FCD3^prRsd
    zAfR@-Nl4k$GSW~(G16XNhoM=9$H>NPjk%o(&&DPp6ODz*?)|b>X&fF28jY>Ox-nZU
    Y5*r^bWMyL$kZ52~Skzz7#K>R`0G8r7i~s-t
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/down.gif b/metrics-log4j2-htmlReport/jacoco-resources/down.gif
    deleted file mode 100644
    index 440a14db74e76c2b6e854eacac1c44414b166271..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 67
    zcmZ?wbhEHb<YC}qSjfcSX{EDa!-oH0p!k!8k&A(eL5G2Xk%5PSlYxOrWJ>Z%p}jXB
    Ub$^Lu-Ncq(ygK&ScM%3_0Po}%Qvd(}
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/greenbar.gif b/metrics-log4j2-htmlReport/jacoco-resources/greenbar.gif
    deleted file mode 100644
    index 0ba65672530ee09f086821a26156836d0c91bd74..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 91
    zcmZ?wbhEHbWMtrCc+ADXzmZ>do2<@m9j_x^v8Q5duh#b5>RIq$!Lmoo);w9mu$BQ0
    eDgI<(1nOeYVE_V<84N5O20cYWMlKB;4AuaIXBwOU
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/group.gif b/metrics-log4j2-htmlReport/jacoco-resources/group.gif
    deleted file mode 100644
    index a4ea580d278fb727e4ae692838877fa63c4becf9..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 351
    zcmZ?wbhEHb6krfwxXQpVwXtJrV`pb|Z&Bgo_>{Q`Df1G5Wa`}H^qKLgbHn221;#86
    zie2Oyy23SVg;&(l)`=%9{nuIstg#PSrQx<&&vS#m*G7G>4W@o;CvAN*Y1^AgTVGGw
    z_ImEoPjiobns@ZmyknnMUi-Q7>W`Jzer$aB_t(pL-|kQQ|MAfO*PGv5?Ee3B$^ToO
    z|A8VGOaEW3eSEO?=BC06Ybq|Tt-P?N@;?|b;0205Sr{1@Oc``Qsz82XV5>PWtH47?
    zs^4Q~P@BxTjDV;&5*!R(s==>VnJe}-&SEIintfiq!@<H~=ly~!2^|49-&cqxtw`7?
    z#Ky|j%)-vX)?mu7-NU2OKVbs5sj!|NpR$sovf|v?yiO9jg7Wfm3i1lF3JOBbqGFPg
    YGSX7gGMmL+MfU97=X>Cwn<IlY03tk+6951J
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/method.gif b/metrics-log4j2-htmlReport/jacoco-resources/method.gif
    deleted file mode 100644
    index 7d24707ee82f54aa9fb10d1d9050013cbf161a7a..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 193
    zcmV;y06zamNk%w1VGsZi0K@<Q1As^cfk_>VRxXubL!4|)qjO}gg>klxZ?TGXw~#-V
    zU_Y2&N}FX?r*L1YbYiM-aj|xBv2}#Mgo3?-guaA=wSS1Yfrz+)iMWB7#*ml2h^x<;
    ztIwFU(w+bR{{R30A^8LW0015UEC2ui01yBW000F(peK%GX`X1Rt}L1aL$Vf5mpMgx
    vG+WO#2NYmJDM}^)l;8n@L?90V%CN9pFcyU&MPO(u48jTlL$uClRtNw)MiWcq
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/package.gif b/metrics-log4j2-htmlReport/jacoco-resources/package.gif
    deleted file mode 100644
    index 131c28da405493661e3253ef79a68bd273039295..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 227
    zcmZ?wbhEHb6krfwIKsg2^W*Nf7neOfxp04z;n8NJ+xzDotkS){bH@Hst%K#-*LO_c
    zo~yCDQ0v_4?v)A3lSAd#C95utQCbkGxF}NT_=2WF8}WGs5taT9|NsAIzy=h5vM@3*
    zNHFMtBtdpEuqG&|^`&Ia(}-MpBVo@mW@+b{B25<}cFdc?!Kkoc14n0vkh1`XOwU>7
    z#al8o_@;D=?hdfkdC)D9Q@O@%Lfqp;ZBt~9C*29`GMF2XzQp8akWQVjDvMC75PzEx
    Mi%z;upCW@b03m@=3jhEB
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/prettify.css b/metrics-log4j2-htmlReport/jacoco-resources/prettify.css
    deleted file mode 100644
    index be5166e0fc..0000000000
    --- a/metrics-log4j2-htmlReport/jacoco-resources/prettify.css
    +++ /dev/null
    @@ -1,13 +0,0 @@
    -/* Pretty printing styles. Used with prettify.js. */
    -
    -.str { color: #2A00FF; }
    -.kwd { color: #7F0055; font-weight:bold; }
    -.com { color: #3F5FBF; }
    -.typ { color: #606; }
    -.lit { color: #066; }
    -.pun { color: #660; }
    -.pln { color: #000; }
    -.tag { color: #008; }
    -.atn { color: #606; }
    -.atv { color: #080; }
    -.dec { color: #606; }
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/prettify.js b/metrics-log4j2-htmlReport/jacoco-resources/prettify.js
    deleted file mode 100644
    index b2766fe0a3..0000000000
    --- a/metrics-log4j2-htmlReport/jacoco-resources/prettify.js
    +++ /dev/null
    @@ -1,1510 +0,0 @@
    -// Copyright (C) 2006 Google Inc.
    -//
    -// Licensed under the Apache License, Version 2.0 (the "License");
    -// you may not use this file except in compliance with the License.
    -// You may obtain a copy of the License at
    -//
    -//      http://www.apache.org/licenses/LICENSE-2.0
    -//
    -// Unless required by applicable law or agreed to in writing, software
    -// distributed under the License is distributed on an "AS IS" BASIS,
    -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    -// See the License for the specific language governing permissions and
    -// limitations under the License.
    -
    -
    -/**
    - * @fileoverview
    - * some functions for browser-side pretty printing of code contained in html.
    - * <p>
    - *
    - * For a fairly comprehensive set of languages see the
    - * <a href="http://google-code-prettify.googlecode.com/svn/trunk/README.html#langs">README</a>
    - * file that came with this source.  At a minimum, the lexer should work on a
    - * number of languages including C and friends, Java, Python, Bash, SQL, HTML,
    - * XML, CSS, Javascript, and Makefiles.  It works passably on Ruby, PHP and Awk
    - * and a subset of Perl, but, because of commenting conventions, doesn't work on
    - * Smalltalk, Lisp-like, or CAML-like languages without an explicit lang class.
    - * <p>
    - * Usage: <ol>
    - * <li> include this source file in an html page via
    - *   {@code <script type="text/javascript" src="/path/to/prettify.js"></script>}
    - * <li> define style rules.  See the example page for examples.
    - * <li> mark the {@code <pre>} and {@code <code>} tags in your source with
    - *    {@code class=prettyprint.}
    - *    You can also use the (html deprecated) {@code <xmp>} tag, but the pretty
    - *    printer needs to do more substantial DOM manipulations to support that, so
    - *    some css styles may not be preserved.
    - * </ol>
    - * That's it.  I wanted to keep the API as simple as possible, so there's no
    - * need to specify which language the code is in, but if you wish, you can add
    - * another class to the {@code <pre>} or {@code <code>} element to specify the
    - * language, as in {@code <pre class="prettyprint lang-java">}.  Any class that
    - * starts with "lang-" followed by a file extension, specifies the file type.
    - * See the "lang-*.js" files in this directory for code that implements
    - * per-language file handlers.
    - * <p>
    - * Change log:<br>
    - * cbeust, 2006/08/22
    - * <blockquote>
    - *   Java annotations (start with "@") are now captured as literals ("lit")
    - * </blockquote>
    - * @requires console
    - */
    -
    -// JSLint declarations
    -/*global console, document, navigator, setTimeout, window */
    -
    -/**
    - * Split {@code prettyPrint} into multiple timeouts so as not to interfere with
    - * UI events.
    - * If set to {@code false}, {@code prettyPrint()} is synchronous.
    - */
    -window['PR_SHOULD_USE_CONTINUATION'] = true;
    -
    -/** the number of characters between tab columns */
    -window['PR_TAB_WIDTH'] = 8;
    -
    -/** Walks the DOM returning a properly escaped version of innerHTML.
    -  * @param {Node} node
    -  * @param {Array.<string>} out output buffer that receives chunks of HTML.
    -  */
    -window['PR_normalizedHtml']
    -
    -/** Contains functions for creating and registering new language handlers.
    -  * @type {Object}
    -  */
    -  = window['PR']
    -
    -/** Pretty print a chunk of code.
    -  *
    -  * @param {string} sourceCodeHtml code as html
    -  * @return {string} code as html, but prettier
    -  */
    -  = window['prettyPrintOne']
    -/** Find all the {@code <pre>} and {@code <code>} tags in the DOM with
    -  * {@code class=prettyprint} and prettify them.
    -  * @param {Function?} opt_whenDone if specified, called when the last entry
    -  *     has been finished.
    -  */
    -  = window['prettyPrint'] = void 0;
    -
    -/** browser detection. @extern @returns false if not IE, otherwise the major version. */
    -window['_pr_isIE6'] = function () {
    -  var ieVersion = navigator && navigator.userAgent &&
    -      navigator.userAgent.match(/\bMSIE ([678])\./);
    -  ieVersion = ieVersion ? +ieVersion[1] : false;
    -  window['_pr_isIE6'] = function () { return ieVersion; };
    -  return ieVersion;
    -};
    -
    -
    -(function () {
    -  // Keyword lists for various languages.
    -  var FLOW_CONTROL_KEYWORDS =
    -      "break continue do else for if return while ";
    -  var C_KEYWORDS = FLOW_CONTROL_KEYWORDS + "auto case char const default " +
    -      "double enum extern float goto int long register short signed sizeof " +
    -      "static struct switch typedef union unsigned void volatile ";
    -  var COMMON_KEYWORDS = C_KEYWORDS + "catch class delete false import " +
    -      "new operator private protected public this throw true try typeof ";
    -  var CPP_KEYWORDS = COMMON_KEYWORDS + "alignof align_union asm axiom bool " +
    -      "concept concept_map const_cast constexpr decltype " +
    -      "dynamic_cast explicit export friend inline late_check " +
    -      "mutable namespace nullptr reinterpret_cast static_assert static_cast " +
    -      "template typeid typename using virtual wchar_t where ";
    -  var JAVA_KEYWORDS = COMMON_KEYWORDS +
    -      "abstract boolean byte extends final finally implements import " +
    -      "instanceof null native package strictfp super synchronized throws " +
    -      "transient ";
    -  var CSHARP_KEYWORDS = JAVA_KEYWORDS +
    -      "as base by checked decimal delegate descending event " +
    -      "fixed foreach from group implicit in interface internal into is lock " +
    -      "object out override orderby params partial readonly ref sbyte sealed " +
    -      "stackalloc string select uint ulong unchecked unsafe ushort var ";
    -  var JSCRIPT_KEYWORDS = COMMON_KEYWORDS +
    -      "debugger eval export function get null set undefined var with " +
    -      "Infinity NaN ";
    -  var PERL_KEYWORDS = "caller delete die do dump elsif eval exit foreach for " +
    -      "goto if import last local my next no our print package redo require " +
    -      "sub undef unless until use wantarray while BEGIN END ";
    -  var PYTHON_KEYWORDS = FLOW_CONTROL_KEYWORDS + "and as assert class def del " +
    -      "elif except exec finally from global import in is lambda " +
    -      "nonlocal not or pass print raise try with yield " +
    -      "False True None ";
    -  var RUBY_KEYWORDS = FLOW_CONTROL_KEYWORDS + "alias and begin case class def" +
    -      " defined elsif end ensure false in module next nil not or redo rescue " +
    -      "retry self super then true undef unless until when yield BEGIN END ";
    -  var SH_KEYWORDS = FLOW_CONTROL_KEYWORDS + "case done elif esac eval fi " +
    -      "function in local set then until ";
    -  var ALL_KEYWORDS = (
    -      CPP_KEYWORDS + CSHARP_KEYWORDS + JSCRIPT_KEYWORDS + PERL_KEYWORDS +
    -      PYTHON_KEYWORDS + RUBY_KEYWORDS + SH_KEYWORDS);
    -
    -  // token style names.  correspond to css classes
    -  /** token style for a string literal */
    -  var PR_STRING = 'str';
    -  /** token style for a keyword */
    -  var PR_KEYWORD = 'kwd';
    -  /** token style for a comment */
    -  var PR_COMMENT = 'com';
    -  /** token style for a type */
    -  var PR_TYPE = 'typ';
    -  /** token style for a literal value.  e.g. 1, null, true. */
    -  var PR_LITERAL = 'lit';
    -  /** token style for a punctuation string. */
    -  var PR_PUNCTUATION = 'pun';
    -  /** token style for a punctuation string. */
    -  var PR_PLAIN = 'pln';
    -
    -  /** token style for an sgml tag. */
    -  var PR_TAG = 'tag';
    -  /** token style for a markup declaration such as a DOCTYPE. */
    -  var PR_DECLARATION = 'dec';
    -  /** token style for embedded source. */
    -  var PR_SOURCE = 'src';
    -  /** token style for an sgml attribute name. */
    -  var PR_ATTRIB_NAME = 'atn';
    -  /** token style for an sgml attribute value. */
    -  var PR_ATTRIB_VALUE = 'atv';
    -
    -  /**
    -   * A class that indicates a section of markup that is not code, e.g. to allow
    -   * embedding of line numbers within code listings.
    -   */
    -  var PR_NOCODE = 'nocode';
    -
    -  /** A set of tokens that can precede a regular expression literal in
    -    * javascript.
    -    * http://www.mozilla.org/js/language/js20/rationale/syntax.html has the full
    -    * list, but I've removed ones that might be problematic when seen in
    -    * languages that don't support regular expression literals.
    -    *
    -    * <p>Specifically, I've removed any keywords that can't precede a regexp
    -    * literal in a syntactically legal javascript program, and I've removed the
    -    * "in" keyword since it's not a keyword in many languages, and might be used
    -    * as a count of inches.
    -    *
    -    * <p>The link a above does not accurately describe EcmaScript rules since
    -    * it fails to distinguish between (a=++/b/i) and (a++/b/i) but it works
    -    * very well in practice.
    -    *
    -    * @private
    -    */
    -  var REGEXP_PRECEDER_PATTERN = function () {
    -      var preceders = [
    -          "!", "!=", "!==", "#", "%", "%=", "&", "&&", "&&=",
    -          "&=", "(", "*", "*=", /* "+", */ "+=", ",", /* "-", */ "-=",
    -          "->", /*".", "..", "...", handled below */ "/", "/=", ":", "::", ";",
    -          "<", "<<", "<<=", "<=", "=", "==", "===", ">",
    -          ">=", ">>", ">>=", ">>>", ">>>=", "?", "@", "[",
    -          "^", "^=", "^^", "^^=", "{", "|", "|=", "||",
    -          "||=", "~" /* handles =~ and !~ */,
    -          "break", "case", "continue", "delete",
    -          "do", "else", "finally", "instanceof",
    -          "return", "throw", "try", "typeof"
    -          ];
    -      var pattern = '(?:^^|[+-]';
    -      for (var i = 0; i < preceders.length; ++i) {
    -        pattern += '|' + preceders[i].replace(/([^=<>:&a-z])/g, '\\$1');
    -      }
    -      pattern += ')\\s*';  // matches at end, and matches empty string
    -      return pattern;
    -      // CAVEAT: this does not properly handle the case where a regular
    -      // expression immediately follows another since a regular expression may
    -      // have flags for case-sensitivity and the like.  Having regexp tokens
    -      // adjacent is not valid in any language I'm aware of, so I'm punting.
    -      // TODO: maybe style special characters inside a regexp as punctuation.
    -    }();
    -
    -  // Define regexps here so that the interpreter doesn't have to create an
    -  // object each time the function containing them is called.
    -  // The language spec requires a new object created even if you don't access
    -  // the $1 members.
    -  var pr_amp = /&/g;
    -  var pr_lt = /</g;
    -  var pr_gt = />/g;
    -  var pr_quot = /\"/g;
    -  /** like textToHtml but escapes double quotes to be attribute safe. */
    -  function attribToHtml(str) {
    -    return str.replace(pr_amp, '&amp;')
    -        .replace(pr_lt, '&lt;')
    -        .replace(pr_gt, '&gt;')
    -        .replace(pr_quot, '&quot;');
    -  }
    -
    -  /** escapest html special characters to html. */
    -  function textToHtml(str) {
    -    return str.replace(pr_amp, '&amp;')
    -        .replace(pr_lt, '&lt;')
    -        .replace(pr_gt, '&gt;');
    -  }
    -
    -
    -  var pr_ltEnt = /&lt;/g;
    -  var pr_gtEnt = /&gt;/g;
    -  var pr_aposEnt = /&apos;/g;
    -  var pr_quotEnt = /&quot;/g;
    -  var pr_ampEnt = /&amp;/g;
    -  var pr_nbspEnt = /&nbsp;/g;
    -  /** unescapes html to plain text. */
    -  function htmlToText(html) {
    -    var pos = html.indexOf('&');
    -    if (pos < 0) { return html; }
    -    // Handle numeric entities specially.  We can't use functional substitution
    -    // since that doesn't work in older versions of Safari.
    -    // These should be rare since most browsers convert them to normal chars.
    -    for (--pos; (pos = html.indexOf('&#', pos + 1)) >= 0;) {
    -      var end = html.indexOf(';', pos);
    -      if (end >= 0) {
    -        var num = html.substring(pos + 3, end);
    -        var radix = 10;
    -        if (num && num.charAt(0) === 'x') {
    -          num = num.substring(1);
    -          radix = 16;
    -        }
    -        var codePoint = parseInt(num, radix);
    -        if (!isNaN(codePoint)) {
    -          html = (html.substring(0, pos) + String.fromCharCode(codePoint) +
    -                  html.substring(end + 1));
    -        }
    -      }
    -    }
    -
    -    return html.replace(pr_ltEnt, '<')
    -        .replace(pr_gtEnt, '>')
    -        .replace(pr_aposEnt, "'")
    -        .replace(pr_quotEnt, '"')
    -        .replace(pr_nbspEnt, ' ')
    -        .replace(pr_ampEnt, '&');
    -  }
    -
    -  /** is the given node's innerHTML normally unescaped? */
    -  function isRawContent(node) {
    -    return 'XMP' === node.tagName;
    -  }
    -
    -  var newlineRe = /[\r\n]/g;
    -  /**
    -   * Are newlines and adjacent spaces significant in the given node's innerHTML?
    -   */
    -  function isPreformatted(node, content) {
    -    // PRE means preformatted, and is a very common case, so don't create
    -    // unnecessary computed style objects.
    -    if ('PRE' === node.tagName) { return true; }
    -    if (!newlineRe.test(content)) { return true; }  // Don't care
    -    var whitespace = '';
    -    // For disconnected nodes, IE has no currentStyle.
    -    if (node.currentStyle) {
    -      whitespace = node.currentStyle.whiteSpace;
    -    } else if (window.getComputedStyle) {
    -      // Firefox makes a best guess if node is disconnected whereas Safari
    -      // returns the empty string.
    -      whitespace = window.getComputedStyle(node, null).whiteSpace;
    -    }
    -    return !whitespace || whitespace === 'pre';
    -  }
    -
    -  function normalizedHtml(node, out, opt_sortAttrs) {
    -    switch (node.nodeType) {
    -      case 1:  // an element
    -        var name = node.tagName.toLowerCase();
    -
    -        out.push('<', name);
    -        var attrs = node.attributes;
    -        var n = attrs.length;
    -        if (n) {
    -          if (opt_sortAttrs) {
    -            var sortedAttrs = [];
    -            for (var i = n; --i >= 0;) { sortedAttrs[i] = attrs[i]; }
    -            sortedAttrs.sort(function (a, b) {
    -                return (a.name < b.name) ? -1 : a.name === b.name ? 0 : 1;
    -              });
    -            attrs = sortedAttrs;
    -          }
    -          for (var i = 0; i < n; ++i) {
    -            var attr = attrs[i];
    -            if (!attr.specified) { continue; }
    -            out.push(' ', attr.name.toLowerCase(),
    -                     '="', attribToHtml(attr.value), '"');
    -          }
    -        }
    -        out.push('>');
    -        for (var child = node.firstChild; child; child = child.nextSibling) {
    -          normalizedHtml(child, out, opt_sortAttrs);
    -        }
    -        if (node.firstChild || !/^(?:br|link|img)$/.test(name)) {
    -          out.push('<\/', name, '>');
    -        }
    -        break;
    -      case 3: case 4: // text
    -        out.push(textToHtml(node.nodeValue));
    -        break;
    -    }
    -  }
    -
    -  /**
    -   * Given a group of {@link RegExp}s, returns a {@code RegExp} that globally
    -   * matches the union o the sets o strings matched d by the input RegExp.
    -   * Since it matches globally, if the input strings have a start-of-input
    -   * anchor (/^.../), it is ignored for the purposes of unioning.
    -   * @param {Array.<RegExp>} regexs non multiline, non-global regexs.
    -   * @return {RegExp} a global regex.
    -   */
    -  function combinePrefixPatterns(regexs) {
    -    var capturedGroupIndex = 0;
    -
    -    var needToFoldCase = false;
    -    var ignoreCase = false;
    -    for (var i = 0, n = regexs.length; i < n; ++i) {
    -      var regex = regexs[i];
    -      if (regex.ignoreCase) {
    -        ignoreCase = true;
    -      } else if (/[a-z]/i.test(regex.source.replace(
    -                     /\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi, ''))) {
    -        needToFoldCase = true;
    -        ignoreCase = false;
    -        break;
    -      }
    -    }
    -
    -    function decodeEscape(charsetPart) {
    -      if (charsetPart.charAt(0) !== '\\') { return charsetPart.charCodeAt(0); }
    -      switch (charsetPart.charAt(1)) {
    -        case 'b': return 8;
    -        case 't': return 9;
    -        case 'n': return 0xa;
    -        case 'v': return 0xb;
    -        case 'f': return 0xc;
    -        case 'r': return 0xd;
    -        case 'u': case 'x':
    -          return parseInt(charsetPart.substring(2), 16)
    -              || charsetPart.charCodeAt(1);
    -        case '0': case '1': case '2': case '3': case '4':
    -        case '5': case '6': case '7':
    -          return parseInt(charsetPart.substring(1), 8);
    -        default: return charsetPart.charCodeAt(1);
    -      }
    -    }
    -
    -    function encodeEscape(charCode) {
    -      if (charCode < 0x20) {
    -        return (charCode < 0x10 ? '\\x0' : '\\x') + charCode.toString(16);
    -      }
    -      var ch = String.fromCharCode(charCode);
    -      if (ch === '\\' || ch === '-' || ch === '[' || ch === ']') {
    -        ch = '\\' + ch;
    -      }
    -      return ch;
    -    }
    -
    -    function caseFoldCharset(charSet) {
    -      var charsetParts = charSet.substring(1, charSet.length - 1).match(
    -          new RegExp(
    -              '\\\\u[0-9A-Fa-f]{4}'
    -              + '|\\\\x[0-9A-Fa-f]{2}'
    -              + '|\\\\[0-3][0-7]{0,2}'
    -              + '|\\\\[0-7]{1,2}'
    -              + '|\\\\[\\s\\S]'
    -              + '|-'
    -              + '|[^-\\\\]',
    -              'g'));
    -      var groups = [];
    -      var ranges = [];
    -      var inverse = charsetParts[0] === '^';
    -      for (var i = inverse ? 1 : 0, n = charsetParts.length; i < n; ++i) {
    -        var p = charsetParts[i];
    -        switch (p) {
    -          case '\\B': case '\\b':
    -          case '\\D': case '\\d':
    -          case '\\S': case '\\s':
    -          case '\\W': case '\\w':
    -            groups.push(p);
    -            continue;
    -        }
    -        var start = decodeEscape(p);
    -        var end;
    -        if (i + 2 < n && '-' === charsetParts[i + 1]) {
    -          end = decodeEscape(charsetParts[i + 2]);
    -          i += 2;
    -        } else {
    -          end = start;
    -        }
    -        ranges.push([start, end]);
    -        // If the range might intersect letters, then expand it.
    -        if (!(end < 65 || start > 122)) {
    -          if (!(end < 65 || start > 90)) {
    -            ranges.push([Math.max(65, start) | 32, Math.min(end, 90) | 32]);
    -          }
    -          if (!(end < 97 || start > 122)) {
    -            ranges.push([Math.max(97, start) & ~32, Math.min(end, 122) & ~32]);
    -          }
    -        }
    -      }
    -
    -      // [[1, 10], [3, 4], [8, 12], [14, 14], [16, 16], [17, 17]]
    -      // -> [[1, 12], [14, 14], [16, 17]]
    -      ranges.sort(function (a, b) { return (a[0] - b[0]) || (b[1]  - a[1]); });
    -      var consolidatedRanges = [];
    -      var lastRange = [NaN, NaN];
    -      for (var i = 0; i < ranges.length; ++i) {
    -        var range = ranges[i];
    -        if (range[0] <= lastRange[1] + 1) {
    -          lastRange[1] = Math.max(lastRange[1], range[1]);
    -        } else {
    -          consolidatedRanges.push(lastRange = range);
    -        }
    -      }
    -
    -      var out = ['['];
    -      if (inverse) { out.push('^'); }
    -      out.push.apply(out, groups);
    -      for (var i = 0; i < consolidatedRanges.length; ++i) {
    -        var range = consolidatedRanges[i];
    -        out.push(encodeEscape(range[0]));
    -        if (range[1] > range[0]) {
    -          if (range[1] + 1 > range[0]) { out.push('-'); }
    -          out.push(encodeEscape(range[1]));
    -        }
    -      }
    -      out.push(']');
    -      return out.join('');
    -    }
    -
    -    function allowAnywhereFoldCaseAndRenumberGroups(regex) {
    -      // Split into character sets, escape sequences, punctuation strings
    -      // like ('(', '(?:', ')', '^'), and runs of characters that do not
    -      // include any of the above.
    -      var parts = regex.source.match(
    -          new RegExp(
    -              '(?:'
    -              + '\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]'  // a character set
    -              + '|\\\\u[A-Fa-f0-9]{4}'  // a unicode escape
    -              + '|\\\\x[A-Fa-f0-9]{2}'  // a hex escape
    -              + '|\\\\[0-9]+'  // a back-reference or octal escape
    -              + '|\\\\[^ux0-9]'  // other escape sequence
    -              + '|\\(\\?[:!=]'  // start of a non-capturing group
    -              + '|[\\(\\)\\^]'  // start/emd of a group, or line start
    -              + '|[^\\x5B\\x5C\\(\\)\\^]+'  // run of other characters
    -              + ')',
    -              'g'));
    -      var n = parts.length;
    -
    -      // Maps captured group numbers to the number they will occupy in
    -      // the output or to -1 if that has not been determined, or to
    -      // undefined if they need not be capturing in the output.
    -      var capturedGroups = [];
    -
    -      // Walk over and identify back references to build the capturedGroups
    -      // mapping.
    -      for (var i = 0, groupIndex = 0; i < n; ++i) {
    -        var p = parts[i];
    -        if (p === '(') {
    -          // groups are 1-indexed, so max group index is count of '('
    -          ++groupIndex;
    -        } else if ('\\' === p.charAt(0)) {
    -          var decimalValue = +p.substring(1);
    -          if (decimalValue && decimalValue <= groupIndex) {
    -            capturedGroups[decimalValue] = -1;
    -          }
    -        }
    -      }
    -
    -      // Renumber groups and reduce capturing groups to non-capturing groups
    -      // where possible.
    -      for (var i = 1; i < capturedGroups.length; ++i) {
    -        if (-1 === capturedGroups[i]) {
    -          capturedGroups[i] = ++capturedGroupIndex;
    -        }
    -      }
    -      for (var i = 0, groupIndex = 0; i < n; ++i) {
    -        var p = parts[i];
    -        if (p === '(') {
    -          ++groupIndex;
    -          if (capturedGroups[groupIndex] === undefined) {
    -            parts[i] = '(?:';
    -          }
    -        } else if ('\\' === p.charAt(0)) {
    -          var decimalValue = +p.substring(1);
    -          if (decimalValue && decimalValue <= groupIndex) {
    -            parts[i] = '\\' + capturedGroups[groupIndex];
    -          }
    -        }
    -      }
    -
    -      // Remove any prefix anchors so that the output will match anywhere.
    -      // ^^ really does mean an anchored match though.
    -      for (var i = 0, groupIndex = 0; i < n; ++i) {
    -        if ('^' === parts[i] && '^' !== parts[i + 1]) { parts[i] = ''; }
    -      }
    -
    -      // Expand letters to groupts to handle mixing of case-sensitive and
    -      // case-insensitive patterns if necessary.
    -      if (regex.ignoreCase && needToFoldCase) {
    -        for (var i = 0; i < n; ++i) {
    -          var p = parts[i];
    -          var ch0 = p.charAt(0);
    -          if (p.length >= 2 && ch0 === '[') {
    -            parts[i] = caseFoldCharset(p);
    -          } else if (ch0 !== '\\') {
    -            // TODO: handle letters in numeric escapes.
    -            parts[i] = p.replace(
    -                /[a-zA-Z]/g,
    -                function (ch) {
    -                  var cc = ch.charCodeAt(0);
    -                  return '[' + String.fromCharCode(cc & ~32, cc | 32) + ']';
    -                });
    -          }
    -        }
    -      }
    -
    -      return parts.join('');
    -    }
    -
    -    var rewritten = [];
    -    for (var i = 0, n = regexs.length; i < n; ++i) {
    -      var regex = regexs[i];
    -      if (regex.global || regex.multiline) { throw new Error('' + regex); }
    -      rewritten.push(
    -          '(?:' + allowAnywhereFoldCaseAndRenumberGroups(regex) + ')');
    -    }
    -
    -    return new RegExp(rewritten.join('|'), ignoreCase ? 'gi' : 'g');
    -  }
    -
    -  var PR_innerHtmlWorks = null;
    -  function getInnerHtml(node) {
    -    // inner html is hopelessly broken in Safari 2.0.4 when the content is
    -    // an html description of well formed XML and the containing tag is a PRE
    -    // tag, so we detect that case and emulate innerHTML.
    -    if (null === PR_innerHtmlWorks) {
    -      var testNode = document.createElement('PRE');
    -      testNode.appendChild(
    -          document.createTextNode('<!DOCTYPE foo PUBLIC "foo bar">\n<foo />'));
    -      PR_innerHtmlWorks = !/</.test(testNode.innerHTML);
    -    }
    -
    -    if (PR_innerHtmlWorks) {
    -      var content = node.innerHTML;
    -      // XMP tags contain unescaped entities so require special handling.
    -      if (isRawContent(node)) {
    -        content = textToHtml(content);
    -      } else if (!isPreformatted(node, content)) {
    -        content = content.replace(/(<br\s*\/?>)[\r\n]+/g, '$1')
    -            .replace(/(?:[\r\n]+[ \t]*)+/g, ' ');
    -      }
    -      return content;
    -    }
    -
    -    var out = [];
    -    for (var child = node.firstChild; child; child = child.nextSibling) {
    -      normalizedHtml(child, out);
    -    }
    -    return out.join('');
    -  }
    -
    -  /** returns a function that expand tabs to spaces.  This function can be fed
    -    * successive chunks of text, and will maintain its own internal state to
    -    * keep track of how tabs are expanded.
    -    * @return {function (string) : string} a function that takes
    -    *   plain text and return the text with tabs expanded.
    -    * @private
    -    */
    -  function makeTabExpander(tabWidth) {
    -    var SPACES = '                ';
    -    var charInLine = 0;
    -
    -    return function (plainText) {
    -      // walk over each character looking for tabs and newlines.
    -      // On tabs, expand them.  On newlines, reset charInLine.
    -      // Otherwise increment charInLine
    -      var out = null;
    -      var pos = 0;
    -      for (var i = 0, n = plainText.length; i < n; ++i) {
    -        var ch = plainText.charAt(i);
    -
    -        switch (ch) {
    -          case '\t':
    -            if (!out) { out = []; }
    -            out.push(plainText.substring(pos, i));
    -            // calculate how much space we need in front of this part
    -            // nSpaces is the amount of padding -- the number of spaces needed
    -            // to move us to the next column, where columns occur at factors of
    -            // tabWidth.
    -            var nSpaces = tabWidth - (charInLine % tabWidth);
    -            charInLine += nSpaces;
    -            for (; nSpaces >= 0; nSpaces -= SPACES.length) {
    -              out.push(SPACES.substring(0, nSpaces));
    -            }
    -            pos = i + 1;
    -            break;
    -          case '\n':
    -            charInLine = 0;
    -            break;
    -          default:
    -            ++charInLine;
    -        }
    -      }
    -      if (!out) { return plainText; }
    -      out.push(plainText.substring(pos));
    -      return out.join('');
    -    };
    -  }
    -
    -  var pr_chunkPattern = new RegExp(
    -      '[^<]+'  // A run of characters other than '<'
    -      + '|<\!--[\\s\\S]*?--\>'  // an HTML comment
    -      + '|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>'  // a CDATA section
    -      // a probable tag that should not be highlighted
    -      + '|<\/?[a-zA-Z](?:[^>\"\']|\'[^\']*\'|\"[^\"]*\")*>'
    -      + '|<',  // A '<' that does not begin a larger chunk
    -      'g');
    -  var pr_commentPrefix = /^<\!--/;
    -  var pr_cdataPrefix = /^<!\[CDATA\[/;
    -  var pr_brPrefix = /^<br\b/i;
    -  var pr_tagNameRe = /^<(\/?)([a-zA-Z][a-zA-Z0-9]*)/;
    -
    -  /** split markup into chunks of html tags (style null) and
    -    * plain text (style {@link #PR_PLAIN}), converting tags which are
    -    * significant for tokenization (<br>) into their textual equivalent.
    -    *
    -    * @param {string} s html where whitespace is considered significant.
    -    * @return {Object} source code and extracted tags.
    -    * @private
    -    */
    -  function extractTags(s) {
    -    // since the pattern has the 'g' modifier and defines no capturing groups,
    -    // this will return a list of all chunks which we then classify and wrap as
    -    // PR_Tokens
    -    var matches = s.match(pr_chunkPattern);
    -    var sourceBuf = [];
    -    var sourceBufLen = 0;
    -    var extractedTags = [];
    -    if (matches) {
    -      for (var i = 0, n = matches.length; i < n; ++i) {
    -        var match = matches[i];
    -        if (match.length > 1 && match.charAt(0) === '<') {
    -          if (pr_commentPrefix.test(match)) { continue; }
    -          if (pr_cdataPrefix.test(match)) {
    -            // strip CDATA prefix and suffix.  Don't unescape since it's CDATA
    -            sourceBuf.push(match.substring(9, match.length - 3));
    -            sourceBufLen += match.length - 12;
    -          } else if (pr_brPrefix.test(match)) {
    -            // <br> tags are lexically significant so convert them to text.
    -            // This is undone later.
    -            sourceBuf.push('\n');
    -            ++sourceBufLen;
    -          } else {
    -            if (match.indexOf(PR_NOCODE) >= 0 && isNoCodeTag(match)) {
    -              // A <span class="nocode"> will start a section that should be
    -              // ignored.  Continue walking the list until we see a matching end
    -              // tag.
    -              var name = match.match(pr_tagNameRe)[2];
    -              var depth = 1;
    -              var j;
    -              end_tag_loop:
    -              for (j = i + 1; j < n; ++j) {
    -                var name2 = matches[j].match(pr_tagNameRe);
    -                if (name2 && name2[2] === name) {
    -                  if (name2[1] === '/') {
    -                    if (--depth === 0) { break end_tag_loop; }
    -                  } else {
    -                    ++depth;
    -                  }
    -                }
    -              }
    -              if (j < n) {
    -                extractedTags.push(
    -                    sourceBufLen, matches.slice(i, j + 1).join(''));
    -                i = j;
    -              } else {  // Ignore unclosed sections.
    -                extractedTags.push(sourceBufLen, match);
    -              }
    -            } else {
    -              extractedTags.push(sourceBufLen, match);
    -            }
    -          }
    -        } else {
    -          var literalText = htmlToText(match);
    -          sourceBuf.push(literalText);
    -          sourceBufLen += literalText.length;
    -        }
    -      }
    -    }
    -    return { source: sourceBuf.join(''), tags: extractedTags };
    -  }
    -
    -  /** True if the given tag contains a class attribute with the nocode class. */
    -  function isNoCodeTag(tag) {
    -    return !!tag
    -        // First canonicalize the representation of attributes
    -        .replace(/\s(\w+)\s*=\s*(?:\"([^\"]*)\"|'([^\']*)'|(\S+))/g,
    -                 ' $1="$2$3$4"')
    -        // Then look for the attribute we want.
    -        .match(/[cC][lL][aA][sS][sS]=\"[^\"]*\bnocode\b/);
    -  }
    -
    -  /**
    -   * Apply the given language handler to sourceCode and add the resulting
    -   * decorations to out.
    -   * @param {number} basePos the index of sourceCode within the chunk of source
    -   *    whose decorations are already present on out.
    -   */
    -  function appendDecorations(basePos, sourceCode, langHandler, out) {
    -    if (!sourceCode) { return; }
    -    var job = {
    -      source: sourceCode,
    -      basePos: basePos
    -    };
    -    langHandler(job);
    -    out.push.apply(out, job.decorations);
    -  }
    -
    -  /** Given triples of [style, pattern, context] returns a lexing function,
    -    * The lexing function interprets the patterns to find token boundaries and
    -    * returns a decoration list of the form
    -    * [index_0, style_0, index_1, style_1, ..., index_n, style_n]
    -    * where index_n is an index into the sourceCode, and style_n is a style
    -    * constant like PR_PLAIN.  index_n-1 <= index_n, and style_n-1 applies to
    -    * all characters in sourceCode[index_n-1:index_n].
    -    *
    -    * The stylePatterns is a list whose elements have the form
    -    * [style : string, pattern : RegExp, DEPRECATED, shortcut : string].
    -    *
    -    * Style is a style constant like PR_PLAIN, or can be a string of the
    -    * form 'lang-FOO', where FOO is a language extension describing the
    -    * language of the portion of the token in $1 after pattern executes.
    -    * E.g., if style is 'lang-lisp', and group 1 contains the text
    -    * '(hello (world))', then that portion of the token will be passed to the
    -    * registered lisp handler for formatting.
    -    * The text before and after group 1 will be restyled using this decorator
    -    * so decorators should take care that this doesn't result in infinite
    -    * recursion.  For example, the HTML lexer rule for SCRIPT elements looks
    -    * something like ['lang-js', /<[s]cript>(.+?)<\/script>/].  This may match
    -    * '<script>foo()<\/script>', which would cause the current decorator to
    -    * be called with '<script>' which would not match the same rule since
    -    * group 1 must not be empty, so it would be instead styled as PR_TAG by
    -    * the generic tag rule.  The handler registered for the 'js' extension would
    -    * then be called with 'foo()', and finally, the current decorator would
    -    * be called with '<\/script>' which would not match the original rule and
    -    * so the generic tag rule would identify it as a tag.
    -    *
    -    * Pattern must only match prefixes, and if it matches a prefix, then that
    -    * match is considered a token with the same style.
    -    *
    -    * Context is applied to the last non-whitespace, non-comment token
    -    * recognized.
    -    *
    -    * Shortcut is an optional string of characters, any of which, if the first
    -    * character, gurantee that this pattern and only this pattern matches.
    -    *
    -    * @param {Array} shortcutStylePatterns patterns that always start with
    -    *   a known character.  Must have a shortcut string.
    -    * @param {Array} fallthroughStylePatterns patterns that will be tried in
    -    *   order if the shortcut ones fail.  May have shortcuts.
    -    *
    -    * @return {function (Object)} a
    -    *   function that takes source code and returns a list of decorations.
    -    */
    -  function createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns) {
    -    var shortcuts = {};
    -    var tokenizer;
    -    (function () {
    -      var allPatterns = shortcutStylePatterns.concat(fallthroughStylePatterns);
    -      var allRegexs = [];
    -      var regexKeys = {};
    -      for (var i = 0, n = allPatterns.length; i < n; ++i) {
    -        var patternParts = allPatterns[i];
    -        var shortcutChars = patternParts[3];
    -        if (shortcutChars) {
    -          for (var c = shortcutChars.length; --c >= 0;) {
    -            shortcuts[shortcutChars.charAt(c)] = patternParts;
    -          }
    -        }
    -        var regex = patternParts[1];
    -        var k = '' + regex;
    -        if (!regexKeys.hasOwnProperty(k)) {
    -          allRegexs.push(regex);
    -          regexKeys[k] = null;
    -        }
    -      }
    -      allRegexs.push(/[\0-\uffff]/);
    -      tokenizer = combinePrefixPatterns(allRegexs);
    -    })();
    -
    -    var nPatterns = fallthroughStylePatterns.length;
    -    var notWs = /\S/;
    -
    -    /**
    -     * Lexes job.source and produces an output array job.decorations of style
    -     * classes preceded by the position at which they start in job.source in
    -     * order.
    -     *
    -     * @param {Object} job an object like {@code
    -     *    source: {string} sourceText plain text,
    -     *    basePos: {int} position of job.source in the larger chunk of
    -     *        sourceCode.
    -     * }
    -     */
    -    var decorate = function (job) {
    -      var sourceCode = job.source, basePos = job.basePos;
    -      /** Even entries are positions in source in ascending order.  Odd enties
    -        * are style markers (e.g., PR_COMMENT) that run from that position until
    -        * the end.
    -        * @type {Array.<number|string>}
    -        */
    -      var decorations = [basePos, PR_PLAIN];
    -      var pos = 0;  // index into sourceCode
    -      var tokens = sourceCode.match(tokenizer) || [];
    -      var styleCache = {};
    -
    -      for (var ti = 0, nTokens = tokens.length; ti < nTokens; ++ti) {
    -        var token = tokens[ti];
    -        var style = styleCache[token];
    -        var match = void 0;
    -
    -        var isEmbedded;
    -        if (typeof style === 'string') {
    -          isEmbedded = false;
    -        } else {
    -          var patternParts = shortcuts[token.charAt(0)];
    -          if (patternParts) {
    -            match = token.match(patternParts[1]);
    -            style = patternParts[0];
    -          } else {
    -            for (var i = 0; i < nPatterns; ++i) {
    -              patternParts = fallthroughStylePatterns[i];
    -              match = token.match(patternParts[1]);
    -              if (match) {
    -                style = patternParts[0];
    -                break;
    -              }
    -            }
    -
    -            if (!match) {  // make sure that we make progress
    -              style = PR_PLAIN;
    -            }
    -          }
    -
    -          isEmbedded = style.length >= 5 && 'lang-' === style.substring(0, 5);
    -          if (isEmbedded && !(match && typeof match[1] === 'string')) {
    -            isEmbedded = false;
    -            style = PR_SOURCE;
    -          }
    -
    -          if (!isEmbedded) { styleCache[token] = style; }
    -        }
    -
    -        var tokenStart = pos;
    -        pos += token.length;
    -
    -        if (!isEmbedded) {
    -          decorations.push(basePos + tokenStart, style);
    -        } else {  // Treat group 1 as an embedded block of source code.
    -          var embeddedSource = match[1];
    -          var embeddedSourceStart = token.indexOf(embeddedSource);
    -          var embeddedSourceEnd = embeddedSourceStart + embeddedSource.length;
    -          if (match[2]) {
    -            // If embeddedSource can be blank, then it would match at the
    -            // beginning which would cause us to infinitely recurse on the
    -            // entire token, so we catch the right context in match[2].
    -            embeddedSourceEnd = token.length - match[2].length;
    -            embeddedSourceStart = embeddedSourceEnd - embeddedSource.length;
    -          }
    -          var lang = style.substring(5);
    -          // Decorate the left of the embedded source
    -          appendDecorations(
    -              basePos + tokenStart,
    -              token.substring(0, embeddedSourceStart),
    -              decorate, decorations);
    -          // Decorate the embedded source
    -          appendDecorations(
    -              basePos + tokenStart + embeddedSourceStart,
    -              embeddedSource,
    -              langHandlerForExtension(lang, embeddedSource),
    -              decorations);
    -          // Decorate the right of the embedded section
    -          appendDecorations(
    -              basePos + tokenStart + embeddedSourceEnd,
    -              token.substring(embeddedSourceEnd),
    -              decorate, decorations);
    -        }
    -      }
    -      job.decorations = decorations;
    -    };
    -    return decorate;
    -  }
    -
    -  /** returns a function that produces a list of decorations from source text.
    -    *
    -    * This code treats ", ', and ` as string delimiters, and \ as a string
    -    * escape.  It does not recognize perl's qq() style strings.
    -    * It has no special handling for double delimiter escapes as in basic, or
    -    * the tripled delimiters used in python, but should work on those regardless
    -    * although in those cases a single string literal may be broken up into
    -    * multiple adjacent string literals.
    -    *
    -    * It recognizes C, C++, and shell style comments.
    -    *
    -    * @param {Object} options a set of optional parameters.
    -    * @return {function (Object)} a function that examines the source code
    -    *     in the input job and builds the decoration list.
    -    */
    -  function sourceDecorator(options) {
    -    var shortcutStylePatterns = [], fallthroughStylePatterns = [];
    -    if (options['tripleQuotedStrings']) {
    -      // '''multi-line-string''', 'single-line-string', and double-quoted
    -      shortcutStylePatterns.push(
    -          [PR_STRING,  /^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,
    -           null, '\'"']);
    -    } else if (options['multiLineStrings']) {
    -      // 'multi-line-string', "multi-line-string"
    -      shortcutStylePatterns.push(
    -          [PR_STRING,  /^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,
    -           null, '\'"`']);
    -    } else {
    -      // 'single-line-string', "single-line-string"
    -      shortcutStylePatterns.push(
    -          [PR_STRING,
    -           /^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,
    -           null, '"\'']);
    -    }
    -    if (options['verbatimStrings']) {
    -      // verbatim-string-literal production from the C# grammar.  See issue 93.
    -      fallthroughStylePatterns.push(
    -          [PR_STRING, /^@\"(?:[^\"]|\"\")*(?:\"|$)/, null]);
    -    }
    -    if (options['hashComments']) {
    -      if (options['cStyleComments']) {
    -        // Stop C preprocessor declarations at an unclosed open comment
    -        shortcutStylePatterns.push(
    -            [PR_COMMENT, /^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,
    -             null, '#']);
    -        fallthroughStylePatterns.push(
    -            [PR_STRING,
    -             /^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,
    -             null]);
    -      } else {
    -        shortcutStylePatterns.push([PR_COMMENT, /^#[^\r\n]*/, null, '#']);
    -      }
    -    }
    -    if (options['cStyleComments']) {
    -      fallthroughStylePatterns.push([PR_COMMENT, /^\/\/[^\r\n]*/, null]);
    -      fallthroughStylePatterns.push(
    -          [PR_COMMENT, /^\/\*[\s\S]*?(?:\*\/|$)/, null]);
    -    }
    -    if (options['regexLiterals']) {
    -      var REGEX_LITERAL = (
    -          // A regular expression literal starts with a slash that is
    -          // not followed by * or / so that it is not confused with
    -          // comments.
    -          '/(?=[^/*])'
    -          // and then contains any number of raw characters,
    -          + '(?:[^/\\x5B\\x5C]'
    -          // escape sequences (\x5C),
    -          +    '|\\x5C[\\s\\S]'
    -          // or non-nesting character sets (\x5B\x5D);
    -          +    '|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+'
    -          // finally closed by a /.
    -          + '/');
    -      fallthroughStylePatterns.push(
    -          ['lang-regex',
    -           new RegExp('^' + REGEXP_PRECEDER_PATTERN + '(' + REGEX_LITERAL + ')')
    -           ]);
    -    }
    -
    -    var keywords = options['keywords'].replace(/^\s+|\s+$/g, '');
    -    if (keywords.length) {
    -      fallthroughStylePatterns.push(
    -          [PR_KEYWORD,
    -           new RegExp('^(?:' + keywords.replace(/\s+/g, '|') + ')\\b'), null]);
    -    }
    -
    -    shortcutStylePatterns.push([PR_PLAIN,       /^\s+/, null, ' \r\n\t\xA0']);
    -    fallthroughStylePatterns.push(
    -        // TODO(mikesamuel): recognize non-latin letters and numerals in idents
    -        [PR_LITERAL,     /^@[a-z_$][a-z_$@0-9]*/i, null],
    -        [PR_TYPE,        /^@?[A-Z]+[a-z][A-Za-z_$@0-9]*/, null],
    -        [PR_PLAIN,       /^[a-z_$][a-z_$@0-9]*/i, null],
    -        [PR_LITERAL,
    -         new RegExp(
    -             '^(?:'
    -             // A hex number
    -             + '0x[a-f0-9]+'
    -             // or an octal or decimal number,
    -             + '|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)'
    -             // possibly in scientific notation
    -             + '(?:e[+\\-]?\\d+)?'
    -             + ')'
    -             // with an optional modifier like UL for unsigned long
    -             + '[a-z]*', 'i'),
    -         null, '0123456789'],
    -        [PR_PUNCTUATION, /^.[^\s\w\.$@\'\"\`\/\#]*/, null]);
    -
    -    return createSimpleLexer(shortcutStylePatterns, fallthroughStylePatterns);
    -  }
    -
    -  var decorateSource = sourceDecorator({
    -        'keywords': ALL_KEYWORDS,
    -        'hashComments': true,
    -        'cStyleComments': true,
    -        'multiLineStrings': true,
    -        'regexLiterals': true
    -      });
    -
    -  /** Breaks {@code job.source} around style boundaries in
    -    * {@code job.decorations} while re-interleaving {@code job.extractedTags},
    -    * and leaves the result in {@code job.prettyPrintedHtml}.
    -    * @param {Object} job like {
    -    *    source: {string} source as plain text,
    -    *    extractedTags: {Array.<number|string>} extractedTags chunks of raw
    -    *                   html preceded by their position in {@code job.source}
    -    *                   in order
    -    *    decorations: {Array.<number|string} an array of style classes preceded
    -    *                 by the position at which they start in job.source in order
    -    * }
    -    * @private
    -    */
    -  function recombineTagsAndDecorations(job) {
    -    var sourceText = job.source;
    -    var extractedTags = job.extractedTags;
    -    var decorations = job.decorations;
    -
    -    var html = [];
    -    // index past the last char in sourceText written to html
    -    var outputIdx = 0;
    -
    -    var openDecoration = null;
    -    var currentDecoration = null;
    -    var tagPos = 0;  // index into extractedTags
    -    var decPos = 0;  // index into decorations
    -    var tabExpander = makeTabExpander(window['PR_TAB_WIDTH']);
    -
    -    var adjacentSpaceRe = /([\r\n ]) /g;
    -    var startOrSpaceRe = /(^| ) /gm;
    -    var newlineRe = /\r\n?|\n/g;
    -    var trailingSpaceRe = /[ \r\n]$/;
    -    var lastWasSpace = true;  // the last text chunk emitted ended with a space.
    -
    -    // See bug 71 and http://stackoverflow.com/questions/136443/why-doesnt-ie7-
    -    var isIE678 = window['_pr_isIE6']();
    -    var lineBreakHtml = (
    -        isIE678
    -        ? (job.sourceNode.tagName === 'PRE'
    -           // Use line feeds instead of <br>s so that copying and pasting works
    -           // on IE.
    -           // Doing this on other browsers breaks lots of stuff since \r\n is
    -           // treated as two newlines on Firefox.
    -           ? (isIE678 === 6 ? '&#160;\r\n' :
    -              isIE678 === 7 ? '&#160;<br>\r' : '&#160;\r')
    -           // IE collapses multiple adjacent <br>s into 1 line break.
    -           // Prefix every newline with '&#160;' to prevent such behavior.
    -           // &nbsp; is the same as &#160; but works in XML as well as HTML.
    -           : '&#160;<br />')
    -        : '<br />');
    -
    -    // Look for a class like linenums or linenums:<n> where <n> is the 1-indexed
    -    // number of the first line.
    -    var numberLines = job.sourceNode.className.match(/\blinenums\b(?::(\d+))?/);
    -    var lineBreaker;
    -    if (numberLines) {
    -      var lineBreaks = [];
    -      for (var i = 0; i < 10; ++i) {
    -        lineBreaks[i] = lineBreakHtml + '</li><li class="L' + i + '">';
    -      }
    -      var lineNum = numberLines[1] && numberLines[1].length
    -          ? numberLines[1] - 1 : 0;  // Lines are 1-indexed
    -      html.push('<ol class="linenums"><li class="L', (lineNum) % 10, '"');
    -      if (lineNum) {
    -        html.push(' value="', lineNum + 1, '"');
    -      }
    -      html.push('>');
    -      lineBreaker = function () {
    -        var lb = lineBreaks[++lineNum % 10];
    -        // If a decoration is open, we need to close it before closing a list-item
    -        // and reopen it on the other side of the list item.
    -        return openDecoration
    -            ? ('</span>' + lb + '<span class="' + openDecoration + '">') : lb;
    -      };
    -    } else {
    -      lineBreaker = lineBreakHtml;
    -    }
    -
    -    // A helper function that is responsible for opening sections of decoration
    -    // and outputing properly escaped chunks of source
    -    function emitTextUpTo(sourceIdx) {
    -      if (sourceIdx > outputIdx) {
    -        if (openDecoration && openDecoration !== currentDecoration) {
    -          // Close the current decoration
    -          html.push('</span>');
    -          openDecoration = null;
    -        }
    -        if (!openDecoration && currentDecoration) {
    -          openDecoration = currentDecoration;
    -          html.push('<span class="', openDecoration, '">');
    -        }
    -        // This interacts badly with some wikis which introduces paragraph tags
    -        // into pre blocks for some strange reason.
    -        // It's necessary for IE though which seems to lose the preformattedness
    -        // of <pre> tags when their innerHTML is assigned.
    -        // http://stud3.tuwien.ac.at/~e0226430/innerHtmlQuirk.html
    -        // and it serves to undo the conversion of <br>s to newlines done in
    -        // chunkify.
    -        var htmlChunk = textToHtml(
    -            tabExpander(sourceText.substring(outputIdx, sourceIdx)))
    -            .replace(lastWasSpace
    -                     ? startOrSpaceRe
    -                     : adjacentSpaceRe, '$1&#160;');
    -        // Keep track of whether we need to escape space at the beginning of the
    -        // next chunk.
    -        lastWasSpace = trailingSpaceRe.test(htmlChunk);
    -        html.push(htmlChunk.replace(newlineRe, lineBreaker));
    -        outputIdx = sourceIdx;
    -      }
    -    }
    -
    -    while (true) {
    -      // Determine if we're going to consume a tag this time around.  Otherwise
    -      // we consume a decoration or exit.
    -      var outputTag;
    -      if (tagPos < extractedTags.length) {
    -        if (decPos < decorations.length) {
    -          // Pick one giving preference to extractedTags since we shouldn't open
    -          // a new style that we're going to have to immediately close in order
    -          // to output a tag.
    -          outputTag = extractedTags[tagPos] <= decorations[decPos];
    -        } else {
    -          outputTag = true;
    -        }
    -      } else {
    -        outputTag = false;
    -      }
    -      // Consume either a decoration or a tag or exit.
    -      if (outputTag) {
    -        emitTextUpTo(extractedTags[tagPos]);
    -        if (openDecoration) {
    -          // Close the current decoration
    -          html.push('</span>');
    -          openDecoration = null;
    -        }
    -        html.push(extractedTags[tagPos + 1]);
    -        tagPos += 2;
    -      } else if (decPos < decorations.length) {
    -        emitTextUpTo(decorations[decPos]);
    -        currentDecoration = decorations[decPos + 1];
    -        decPos += 2;
    -      } else {
    -        break;
    -      }
    -    }
    -    emitTextUpTo(sourceText.length);
    -    if (openDecoration) {
    -      html.push('</span>');
    -    }
    -    if (numberLines) { html.push('</li></ol>'); }
    -    job.prettyPrintedHtml = html.join('');
    -  }
    -
    -  /** Maps language-specific file extensions to handlers. */
    -  var langHandlerRegistry = {};
    -  /** Register a language handler for the given file extensions.
    -    * @param {function (Object)} handler a function from source code to a list
    -    *      of decorations.  Takes a single argument job which describes the
    -    *      state of the computation.   The single parameter has the form
    -    *      {@code {
    -    *        source: {string} as plain text.
    -    *        decorations: {Array.<number|string>} an array of style classes
    -    *                     preceded by the position at which they start in
    -    *                     job.source in order.
    -    *                     The language handler should assigned this field.
    -    *        basePos: {int} the position of source in the larger source chunk.
    -    *                 All positions in the output decorations array are relative
    -    *                 to the larger source chunk.
    -    *      } }
    -    * @param {Array.<string>} fileExtensions
    -    */
    -  function registerLangHandler(handler, fileExtensions) {
    -    for (var i = fileExtensions.length; --i >= 0;) {
    -      var ext = fileExtensions[i];
    -      if (!langHandlerRegistry.hasOwnProperty(ext)) {
    -        langHandlerRegistry[ext] = handler;
    -      } else if ('console' in window) {
    -        console['warn']('cannot override language handler %s', ext);
    -      }
    -    }
    -  }
    -  function langHandlerForExtension(extension, source) {
    -    if (!(extension && langHandlerRegistry.hasOwnProperty(extension))) {
    -      // Treat it as markup if the first non whitespace character is a < and
    -      // the last non-whitespace character is a >.
    -      extension = /^\s*</.test(source)
    -          ? 'default-markup'
    -          : 'default-code';
    -    }
    -    return langHandlerRegistry[extension];
    -  }
    -  registerLangHandler(decorateSource, ['default-code']);
    -  registerLangHandler(
    -      createSimpleLexer(
    -          [],
    -          [
    -           [PR_PLAIN,       /^[^<?]+/],
    -           [PR_DECLARATION, /^<!\w[^>]*(?:>|$)/],
    -           [PR_COMMENT,     /^<\!--[\s\S]*?(?:-\->|$)/],
    -           // Unescaped content in an unknown language
    -           ['lang-',        /^<\?([\s\S]+?)(?:\?>|$)/],
    -           ['lang-',        /^<%([\s\S]+?)(?:%>|$)/],
    -           [PR_PUNCTUATION, /^(?:<[%?]|[%?]>)/],
    -           ['lang-',        /^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],
    -           // Unescaped content in javascript.  (Or possibly vbscript).
    -           ['lang-js',      /^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],
    -           // Contains unescaped stylesheet content
    -           ['lang-css',     /^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],
    -           ['lang-in.tag',  /^(<\/?[a-z][^<>]*>)/i]
    -          ]),
    -      ['default-markup', 'htm', 'html', 'mxml', 'xhtml', 'xml', 'xsl']);
    -  registerLangHandler(
    -      createSimpleLexer(
    -          [
    -           [PR_PLAIN,        /^[\s]+/, null, ' \t\r\n'],
    -           [PR_ATTRIB_VALUE, /^(?:\"[^\"]*\"?|\'[^\']*\'?)/, null, '\"\'']
    -           ],
    -          [
    -           [PR_TAG,          /^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],
    -           [PR_ATTRIB_NAME,  /^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],
    -           ['lang-uq.val',   /^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],
    -           [PR_PUNCTUATION,  /^[=<>\/]+/],
    -           ['lang-js',       /^on\w+\s*=\s*\"([^\"]+)\"/i],
    -           ['lang-js',       /^on\w+\s*=\s*\'([^\']+)\'/i],
    -           ['lang-js',       /^on\w+\s*=\s*([^\"\'>\s]+)/i],
    -           ['lang-css',      /^style\s*=\s*\"([^\"]+)\"/i],
    -           ['lang-css',      /^style\s*=\s*\'([^\']+)\'/i],
    -           ['lang-css',      /^style\s*=\s*([^\"\'>\s]+)/i]
    -           ]),
    -      ['in.tag']);
    -  registerLangHandler(
    -      createSimpleLexer([], [[PR_ATTRIB_VALUE, /^[\s\S]+/]]), ['uq.val']);
    -  registerLangHandler(sourceDecorator({
    -          'keywords': CPP_KEYWORDS,
    -          'hashComments': true,
    -          'cStyleComments': true
    -        }), ['c', 'cc', 'cpp', 'cxx', 'cyc', 'm']);
    -  registerLangHandler(sourceDecorator({
    -          'keywords': 'null true false'
    -        }), ['json']);
    -  registerLangHandler(sourceDecorator({
    -          'keywords': CSHARP_KEYWORDS,
    -          'hashComments': true,
    -          'cStyleComments': true,
    -          'verbatimStrings': true
    -        }), ['cs']);
    -  registerLangHandler(sourceDecorator({
    -          'keywords': JAVA_KEYWORDS,
    -          'cStyleComments': true
    -        }), ['java']);
    -  registerLangHandler(sourceDecorator({
    -          'keywords': SH_KEYWORDS,
    -          'hashComments': true,
    -          'multiLineStrings': true
    -        }), ['bsh', 'csh', 'sh']);
    -  registerLangHandler(sourceDecorator({
    -          'keywords': PYTHON_KEYWORDS,
    -          'hashComments': true,
    -          'multiLineStrings': true,
    -          'tripleQuotedStrings': true
    -        }), ['cv', 'py']);
    -  registerLangHandler(sourceDecorator({
    -          'keywords': PERL_KEYWORDS,
    -          'hashComments': true,
    -          'multiLineStrings': true,
    -          'regexLiterals': true
    -        }), ['perl', 'pl', 'pm']);
    -  registerLangHandler(sourceDecorator({
    -          'keywords': RUBY_KEYWORDS,
    -          'hashComments': true,
    -          'multiLineStrings': true,
    -          'regexLiterals': true
    -        }), ['rb']);
    -  registerLangHandler(sourceDecorator({
    -          'keywords': JSCRIPT_KEYWORDS,
    -          'cStyleComments': true,
    -          'regexLiterals': true
    -        }), ['js']);
    -  registerLangHandler(
    -      createSimpleLexer([], [[PR_STRING, /^[\s\S]+/]]), ['regex']);
    -
    -  function applyDecorator(job) {
    -    var sourceCodeHtml = job.sourceCodeHtml;
    -    var opt_langExtension = job.langExtension;
    -
    -    // Prepopulate output in case processing fails with an exception.
    -    job.prettyPrintedHtml = sourceCodeHtml;
    -
    -    try {
    -      // Extract tags, and convert the source code to plain text.
    -      var sourceAndExtractedTags = extractTags(sourceCodeHtml);
    -      /** Plain text. @type {string} */
    -      var source = sourceAndExtractedTags.source;
    -      job.source = source;
    -      job.basePos = 0;
    -
    -      /** Even entries are positions in source in ascending order.  Odd entries
    -        * are tags that were extracted at that position.
    -        * @type {Array.<number|string>}
    -        */
    -      job.extractedTags = sourceAndExtractedTags.tags;
    -
    -      // Apply the appropriate language handler
    -      langHandlerForExtension(opt_langExtension, source)(job);
    -      // Integrate the decorations and tags back into the source code to produce
    -      // a decorated html string which is left in job.prettyPrintedHtml.
    -      recombineTagsAndDecorations(job);
    -    } catch (e) {
    -      if ('console' in window) {
    -        console['log'](e && e['stack'] ? e['stack'] : e);
    -      }
    -    }
    -  }
    -
    -  function prettyPrintOne(sourceCodeHtml, opt_langExtension) {
    -    var job = {
    -      sourceCodeHtml: sourceCodeHtml,
    -      langExtension: opt_langExtension
    -    };
    -    applyDecorator(job);
    -    return job.prettyPrintedHtml;
    -  }
    -
    -  function prettyPrint(opt_whenDone) {
    -    function byTagName(tn) { return document.getElementsByTagName(tn); }
    -    // fetch a list of nodes to rewrite
    -    var codeSegments = [byTagName('pre'), byTagName('code'), byTagName('xmp')];
    -    var elements = [];
    -    for (var i = 0; i < codeSegments.length; ++i) {
    -      for (var j = 0, n = codeSegments[i].length; j < n; ++j) {
    -        elements.push(codeSegments[i][j]);
    -      }
    -    }
    -    codeSegments = null;
    -
    -    var clock = Date;
    -    if (!clock['now']) {
    -      clock = { 'now': function () { return (new Date).getTime(); } };
    -    }
    -
    -    // The loop is broken into a series of continuations to make sure that we
    -    // don't make the browser unresponsive when rewriting a large page.
    -    var k = 0;
    -    var prettyPrintingJob;
    -
    -    function doWork() {
    -      var endTime = (window['PR_SHOULD_USE_CONTINUATION'] ?
    -                     clock.now() + 250 /* ms */ :
    -                     Infinity);
    -      for (; k < elements.length && clock.now() < endTime; k++) {
    -        var cs = elements[k];
    -        // [JACOCO] 'prettyprint' -> 'source'
    -        if (cs.className && cs.className.indexOf('source') >= 0) {
    -          // If the classes includes a language extensions, use it.
    -          // Language extensions can be specified like
    -          //     <pre class="prettyprint lang-cpp">
    -          // the language extension "cpp" is used to find a language handler as
    -          // passed to PR_registerLangHandler.
    -          var langExtension = cs.className.match(/\blang-(\w+)\b/);
    -          if (langExtension) { langExtension = langExtension[1]; }
    -
    -          // make sure this is not nested in an already prettified element
    -          var nested = false;
    -          for (var p = cs.parentNode; p; p = p.parentNode) {
    -            if ((p.tagName === 'pre' || p.tagName === 'code' ||
    -                 p.tagName === 'xmp') &&
    -                // [JACOCO] 'prettyprint' -> 'source'
    -                p.className && p.className.indexOf('source') >= 0) {
    -              nested = true;
    -              break;
    -            }
    -          }
    -          if (!nested) {
    -            // fetch the content as a snippet of properly escaped HTML.
    -            // Firefox adds newlines at the end.
    -            var content = getInnerHtml(cs);
    -            content = content.replace(/(?:\r\n?|\n)$/, '');
    -
    -            // do the pretty printing
    -            prettyPrintingJob = {
    -              sourceCodeHtml: content,
    -              langExtension: langExtension,
    -              sourceNode: cs
    -            };
    -            applyDecorator(prettyPrintingJob);
    -            replaceWithPrettyPrintedHtml();
    -          }
    -        }
    -      }
    -      if (k < elements.length) {
    -        // finish up in a continuation
    -        setTimeout(doWork, 250);
    -      } else if (opt_whenDone) {
    -        opt_whenDone();
    -      }
    -    }
    -
    -    function replaceWithPrettyPrintedHtml() {
    -      var newContent = prettyPrintingJob.prettyPrintedHtml;
    -      if (!newContent) { return; }
    -      var cs = prettyPrintingJob.sourceNode;
    -
    -      // push the prettified html back into the tag.
    -      if (!isRawContent(cs)) {
    -        // just replace the old html with the new
    -        cs.innerHTML = newContent;
    -      } else {
    -        // we need to change the tag to a <pre> since <xmp>s do not allow
    -        // embedded tags such as the span tags used to attach styles to
    -        // sections of source code.
    -        var pre = document.createElement('PRE');
    -        for (var i = 0; i < cs.attributes.length; ++i) {
    -          var a = cs.attributes[i];
    -          if (a.specified) {
    -            var aname = a.name.toLowerCase();
    -            if (aname === 'class') {
    -              pre.className = a.value;  // For IE 6
    -            } else {
    -              pre.setAttribute(a.name, a.value);
    -            }
    -          }
    -        }
    -        pre.innerHTML = newContent;
    -
    -        // remove the old
    -        cs.parentNode.replaceChild(pre, cs);
    -        cs = pre;
    -      }
    -    }
    -
    -    doWork();
    -  }
    -
    -  window['PR_normalizedHtml'] = normalizedHtml;
    -  window['prettyPrintOne'] = prettyPrintOne;
    -  window['prettyPrint'] = prettyPrint;
    -  window['PR'] = {
    -        'combinePrefixPatterns': combinePrefixPatterns,
    -        'createSimpleLexer': createSimpleLexer,
    -        'registerLangHandler': registerLangHandler,
    -        'sourceDecorator': sourceDecorator,
    -        'PR_ATTRIB_NAME': PR_ATTRIB_NAME,
    -        'PR_ATTRIB_VALUE': PR_ATTRIB_VALUE,
    -        'PR_COMMENT': PR_COMMENT,
    -        'PR_DECLARATION': PR_DECLARATION,
    -        'PR_KEYWORD': PR_KEYWORD,
    -        'PR_LITERAL': PR_LITERAL,
    -        'PR_NOCODE': PR_NOCODE,
    -        'PR_PLAIN': PR_PLAIN,
    -        'PR_PUNCTUATION': PR_PUNCTUATION,
    -        'PR_SOURCE': PR_SOURCE,
    -        'PR_STRING': PR_STRING,
    -        'PR_TAG': PR_TAG,
    -        'PR_TYPE': PR_TYPE
    -      };
    -})();
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/redbar.gif b/metrics-log4j2-htmlReport/jacoco-resources/redbar.gif
    deleted file mode 100644
    index c2f71469ba995289439d86ea39b1b33edb03388c..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 91
    zcmZ?wbhEHbWMtrCc+AD{pP&D~tn7aso&R25|6^nS*Vg{;>G{84!T)8;{;yfXu$BQ0
    fDgI<(<YM4w&|v@qkQodt90ol_LPjnP91PX~3&9+X
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/report.css b/metrics-log4j2-htmlReport/jacoco-resources/report.css
    deleted file mode 100644
    index dd936bca54..0000000000
    --- a/metrics-log4j2-htmlReport/jacoco-resources/report.css
    +++ /dev/null
    @@ -1,243 +0,0 @@
    -body, td {
    -  font-family:sans-serif;
    -  font-size:10pt;
    -}
    -
    -h1 {
    -  font-weight:bold;
    -  font-size:18pt;
    -}
    -
    -.breadcrumb {
    -  border:#d6d3ce 1px solid;
    -  padding:2px 4px 2px 4px;
    -}
    -
    -.breadcrumb .info {
    -  float:right;
    -}
    -
    -.breadcrumb .info a {
    -  margin-left:8px;
    -}
    -
    -.el_report {
    -  padding-left:18px;
    -  background-image:url(report.gif);
    -  background-position:left center;
    -  background-repeat:no-repeat;
    -}
    -
    -.el_group {
    -  padding-left:18px;
    -  background-image:url(group.gif);
    -  background-position:left center;
    -  background-repeat:no-repeat;
    -}
    -
    -.el_bundle {
    -  padding-left:18px;
    -  background-image:url(bundle.gif);
    -  background-position:left center;
    -  background-repeat:no-repeat;
    -}
    -
    -.el_package {
    -  padding-left:18px;
    -  background-image:url(package.gif);
    -  background-position:left center;
    -  background-repeat:no-repeat;
    -}
    -
    -.el_class {
    -  padding-left:18px;
    -  background-image:url(class.gif);
    -  background-position:left center;
    -  background-repeat:no-repeat;
    -}
    -
    -.el_source {
    -  padding-left:18px;
    -  background-image:url(source.gif);
    -  background-position:left center;
    -  background-repeat:no-repeat;
    -}
    -
    -.el_method {
    -  padding-left:18px;
    -  background-image:url(method.gif);
    -  background-position:left center;
    -  background-repeat:no-repeat;
    -}
    -
    -.el_session {
    -  padding-left:18px;
    -  background-image:url(session.gif);
    -  background-position:left center;
    -  background-repeat:no-repeat;
    -}
    -
    -pre.source {
    -  border:#d6d3ce 1px solid;
    -  font-family:monospace;
    -}
    -
    -pre.source ol {
    -  margin-bottom: 0px;
    -  margin-top: 0px;
    -}
    -
    -pre.source li {
    -  border-left: 1px solid #D6D3CE;
    -  color: #A0A0A0;
    -  padding-left: 0px;
    -}
    -
    -pre.source span.fc {
    -  background-color:#ccffcc;
    -}
    -
    -pre.source span.nc {
    -  background-color:#ffaaaa;
    -}
    -
    -pre.source span.pc {
    -  background-color:#ffffcc;
    -}
    -
    -pre.source span.bfc {
    -  background-image: url(branchfc.gif);
    -  background-repeat: no-repeat;
    -  background-position: 2px center;
    -}
    -
    -pre.source span.bfc:hover {
    -  background-color:#80ff80;
    -}
    -
    -pre.source span.bnc {
    -  background-image: url(branchnc.gif);
    -  background-repeat: no-repeat;
    -  background-position: 2px center;
    -}
    -
    -pre.source span.bnc:hover {
    -  background-color:#ff8080;
    -}
    -
    -pre.source span.bpc {
    -  background-image: url(branchpc.gif);
    -  background-repeat: no-repeat;
    -  background-position: 2px center;
    -}
    -
    -pre.source span.bpc:hover {
    -  background-color:#ffff80;
    -}
    -
    -table.coverage {
    -  empty-cells:show;
    -  border-collapse:collapse;
    -}
    -
    -table.coverage thead {
    -  background-color:#e0e0e0;
    -}
    -
    -table.coverage thead td {
    -  white-space:nowrap;
    -  padding:2px 14px 0px 6px;
    -  border-bottom:#b0b0b0 1px solid;
    -}
    -
    -table.coverage thead td.bar {
    -  border-left:#cccccc 1px solid;
    -}
    -
    -table.coverage thead td.ctr1 {
    -  text-align:right;
    -  border-left:#cccccc 1px solid;
    -}
    -
    -table.coverage thead td.ctr2 {
    -  text-align:right;
    -  padding-left:2px;
    -}
    -
    -table.coverage thead td.sortable {
    -  cursor:pointer;
    -  background-image:url(sort.gif);
    -  background-position:right center;
    -  background-repeat:no-repeat;
    -}
    -
    -table.coverage thead td.up {
    -  background-image:url(up.gif);
    -}
    -
    -table.coverage thead td.down {
    -  background-image:url(down.gif);
    -}
    -
    -table.coverage tbody td {
    -  white-space:nowrap;
    -  padding:2px 6px 2px 6px;
    -  border-bottom:#d6d3ce 1px solid;
    -}
    -
    -table.coverage tbody tr:hover {
    -  background: #f0f0d0 !important;
    -}
    -
    -table.coverage tbody td.bar {
    -  border-left:#e8e8e8 1px solid;
    -}
    -
    -table.coverage tbody td.ctr1 {
    -  text-align:right;
    -  padding-right:14px;
    -  border-left:#e8e8e8 1px solid;
    -}
    -
    -table.coverage tbody td.ctr2 {
    -  text-align:right;
    -  padding-right:14px;
    -  padding-left:2px;
    -}
    -
    -table.coverage tfoot td {
    -  white-space:nowrap;
    -  padding:2px 6px 2px 6px;
    -}
    -
    -table.coverage tfoot td.bar {
    -  border-left:#e8e8e8 1px solid;
    -}
    -
    -table.coverage tfoot td.ctr1 {
    -  text-align:right;
    -  padding-right:14px;
    -  border-left:#e8e8e8 1px solid;
    -}
    -
    -table.coverage tfoot td.ctr2 {
    -  text-align:right;
    -  padding-right:14px;
    -  padding-left:2px;
    -}
    -
    -.footer {
    -  margin-top:20px;
    -  border-top:#d6d3ce 1px solid;
    -  padding-top:2px;
    -  font-size:8pt;
    -  color:#a0a0a0;
    -}
    -
    -.footer a {
    -  color:#a0a0a0;
    -}
    -
    -.right {
    -  float:right;
    -}
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/report.gif b/metrics-log4j2-htmlReport/jacoco-resources/report.gif
    deleted file mode 100644
    index 8547be50bf3e97e725920927b5aa4cdb031f4823..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 363
    zcmZ?wbhEHb6krfwSZc{In}J~s1H&!`1_uX+xVSjMb&S>db~X8S)dhAn1$OlXwvB~0
    zO@%hC#Wq5_7&^+V`^qgRRa;E2HJ?*&DsqWoev|2fCetO&CQDmPR<;_iXfs~ZZnVC`
    za8s8-+pK*(^AAm4c5K#~(^ocST-lU)byMc8y)_R`^xu2&{oaco_g{R!|Ki8Pmp>lA
    z{_*VHkC*R%zWMa)!{^_hzyAL8?f2(zzrTL}{q@K1Z$Ey2|M}<VuRs5>0mYvzj9d)%
    z3_1)z0P+(9TgQR<1s*zF)+bahX*_u_??Pbv&V#KE^V2&`bhGjjR;*MxC8EFO_3_}<
    zH?w9WrJ7AX`tJM8r525X{~8+WorLsRL^?W{nR=L*odosT`KItOGtTI963}JgV_m??
    z%&>&9-=1G*^3>@wm-A|~FmK+nbvd`DhNhP0UUhXIS1vYAPL5-o?Ce}VXI&i`tO1G(
    BvdRDe
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/session.gif b/metrics-log4j2-htmlReport/jacoco-resources/session.gif
    deleted file mode 100644
    index 0151bad8a001e5cc5cc7723a608185f746b7f8c1..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 213
    zcmZ?wbhEHb6krfwXc1xPS$gU4xw~t2pG#?5#^Be>V3WrXI-S9<hrzA(|Nr^_@5k?-
    zZ~y=IhyVNSXZ04}pKqV%t9oe5k~tY+Ar=Pzi2#Z}Sr{1@<Qa4rfB<AC18dL&^}dwM
    zX_r*ys<8N;e6mS?i^dP8jVmAd@U^}&$uv>xc~m$hYN?d{@xrG~CzZCfhpBIRC}Q>I
    kiQ?_Ai=3VZEOFW9fBwaksdwMK(Err)E%VcVRYeAC06w^MK>z>%
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/sort.gif b/metrics-log4j2-htmlReport/jacoco-resources/sort.gif
    deleted file mode 100644
    index 6757c2c32b57d768f3c12c4ae99a28bc32c9cbd7..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 58
    zcmZ?wbhEHb<YC}qXkcX6uwldh|Nj+#vM_QnFf!;c00|xjP6h@h!JfpGjC*fB>i!bx
    N`t(%z_h<$NYXI&b5{m!;
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/sort.js b/metrics-log4j2-htmlReport/jacoco-resources/sort.js
    deleted file mode 100644
    index 65f8d0e50d..0000000000
    --- a/metrics-log4j2-htmlReport/jacoco-resources/sort.js
    +++ /dev/null
    @@ -1,148 +0,0 @@
    -/*******************************************************************************
    - * Copyright (c) 2009, 2023 Mountainminds GmbH & Co. KG and Contributors
    - * This program and the accompanying materials are made available under
    - * the terms of the Eclipse Public License 2.0 which is available at
    - * http://www.eclipse.org/legal/epl-2.0
    - *
    - * SPDX-License-Identifier: EPL-2.0
    - *
    - * Contributors:
    - *    Marc R. Hoffmann - initial API and implementation
    - *
    - *******************************************************************************/
    -
    -(function () {
    -
    -  /**
    -   * Sets the initial sorting derived from the hash.
    -   *
    -   * @param linkelementids
    -   *          list of element ids to search for links to add sort inidcator
    -   *          hash links
    -   */
    -  function initialSort(linkelementids) {
    -    window.linkelementids = linkelementids;
    -    var hash = window.location.hash;
    -    if (hash) {
    -      var m = hash.match(/up-./);
    -      if (m) {
    -        var header = window.document.getElementById(m[0].charAt(3));
    -        if (header) {
    -          sortColumn(header, true);
    -        }
    -        return;
    -      }
    -      var m = hash.match(/dn-./);
    -      if (m) {
    -        var header = window.document.getElementById(m[0].charAt(3));
    -        if (header) {
    -          sortColumn(header, false);
    -        }
    -        return
    -      }
    -    }
    -  }
    -
    -  /**
    -   * Sorts the columns with the given header dependening on the current sort state.
    -   */
    -  function toggleSort(header) {
    -    var sortup = header.className.indexOf('down ') == 0;
    -    sortColumn(header, sortup);
    -  }
    -
    -  /**
    -   * Sorts the columns with the given header in the given direction.
    -   */
    -  function sortColumn(header, sortup) {
    -    var table = header.parentNode.parentNode.parentNode;
    -    var body = table.tBodies[0];
    -    var colidx = getNodePosition(header);
    -
    -    resetSortedStyle(table);
    -
    -    var rows = body.rows;
    -    var sortedrows = [];
    -    for (var i = 0; i < rows.length; i++) {
    -      r = rows[i];
    -      sortedrows[parseInt(r.childNodes[colidx].id.slice(1))] = r;
    -    }
    -
    -    var hash;
    -
    -    if (sortup) {
    -      for (var i = sortedrows.length - 1; i >= 0; i--) {
    -        body.appendChild(sortedrows[i]);
    -      }
    -      header.className = 'up ' + header.className;
    -      hash = 'up-' + header.id;
    -    } else {
    -      for (var i = 0; i < sortedrows.length; i++) {
    -        body.appendChild(sortedrows[i]);
    -      }
    -      header.className = 'down ' + header.className;
    -      hash = 'dn-' + header.id;
    -    }
    -
    -    setHash(hash);
    -  }
    -
    -  /**
    -   * Adds the sort indicator as a hash to the document URL and all links.
    -   */
    -  function setHash(hash) {
    -    window.document.location.hash = hash;
    -    ids = window.linkelementids;
    -    for (var i = 0; i < ids.length; i++) {
    -        setHashOnAllLinks(document.getElementById(ids[i]), hash);
    -    }
    -  }
    -
    -  /**
    -   * Extend all links within the given tag with the given hash.
    -   */
    -  function setHashOnAllLinks(tag, hash) {
    -    links = tag.getElementsByTagName("a");
    -    for (var i = 0; i < links.length; i++) {
    -        var a = links[i];
    -        var href = a.href;
    -        var hashpos = href.indexOf("#");
    -        if (hashpos != -1) {
    -            href = href.substring(0, hashpos);
    -        }
    -        a.href = href + "#" + hash;
    -    }
    -  }
    -
    -  /**
    -   * Calculates the position of a element within its parent.
    -   */
    -  function getNodePosition(element) {
    -    var pos = -1;
    -    while (element) {
    -      element = element.previousSibling;
    -      pos++;
    -    }
    -    return pos;
    -  }
    -
    -  /**
    -   * Remove the sorting indicator style from all headers.
    -   */
    -  function resetSortedStyle(table) {
    -    for (var c = table.tHead.firstChild.firstChild; c; c = c.nextSibling) {
    -      if (c.className) {
    -        if (c.className.indexOf('down ') == 0) {
    -          c.className = c.className.slice(5);
    -        }
    -        if (c.className.indexOf('up ') == 0) {
    -          c.className = c.className.slice(3);
    -        }
    -      }
    -    }
    -  }
    -
    -  window['initialSort'] = initialSort;
    -  window['toggleSort'] = toggleSort;
    -
    -})();
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/source.gif b/metrics-log4j2-htmlReport/jacoco-resources/source.gif
    deleted file mode 100644
    index b226e41c5276581db33d71525298ef572cc5d7ce..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 354
    zcmZ?wbhEHb6krfwxXQrr`Rnf=KmWY@^y|~t-#>r-`SJ62+pK*(^ACOa@_X{KW3$$r
    zUbOlAiXE5N?74dH#gDtszu$lH{mGl3&)@xg`{~!`Z@=#VMPB~6_u~7*S3h2T`1$R}
    z?`Q9Re)#(P)3@JWfBgRb^LKTLe^s%6bxA;7sb4jaQ5?`-<<ng5TVLWgvEHM%)~l!1
    zYi_IS^d`3r{dQ}59F})EE$?<()ZzT#ME{lvwpTV~T-lU)Yj4ffO_~4y|7XAeia%Kx
    z85k@XbU-p7KQXY?ADC0%p(B)eLgkXi62W-^(!DQ#v2a~Gz-z9%&!+3h!38t#X02Ds
    zad;WPFvUVOY)YY2k84HG1kp%gVW!3wVI5ap$%?8ZHc4GqO=+PiQzvV>Y72H(vk7Xs
    us!1$fvP8{QU92ZrK%7tARasP&f6JDw8m_8J3W|I7DyXXX9C3DJum%7=h^`F)
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-resources/up.gif b/metrics-log4j2-htmlReport/jacoco-resources/up.gif
    deleted file mode 100644
    index 58ed21660ec467736a4d2af17d91341f7cfb556c..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 67
    zcmZ?wbhEHb<YC}qSjfcSX{EDa!-oH0p!k!8k&A(eL5G2Xk%5PSlYxOrWJ=;nroA^G
    Ub$^Kz-Nct)ygK&ScM%3_0PmU?SpWb4
    
    diff --git a/metrics-log4j2-htmlReport/jacoco-sessions.html b/metrics-log4j2-htmlReport/jacoco-sessions.html
    deleted file mode 100644
    index cde9743aae..0000000000
    --- a/metrics-log4j2-htmlReport/jacoco-sessions.html
    +++ /dev/null
    @@ -1 +0,0 @@
    -<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en"><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/><link rel="stylesheet" href="jacoco-resources/report.css" type="text/css"/><link rel="shortcut icon" href="jacoco-resources/report.gif" type="image/gif"/><title>Sessions</title></head><body><div class="breadcrumb" id="breadcrumb"><span class="info"><a href="jacoco-sessions.html" class="el_session">Sessions</a></span><a href="index.html" class="el_report">All in metrics-log4j2 Coverage Results</a> &gt; <span class="el_session">Sessions</span></div><h1>Sessions</h1><p>This coverage report is based on execution data from the following sessions:</p><table class="coverage" cellspacing="0"><thead><tr><td>Session</td><td>Start Time</td><td>Dump Time</td></tr></thead><tbody><tr><td><span class="el_session">SRONZ-a5a4e612</span></td><td>Feb. 27, 2024, 1:12:42 a.m.</td><td>Feb. 27, 2024, 1:12:46 a.m.</td></tr></tbody></table><p>Execution data for the following classes is considered in this report:</p><table class="coverage" cellspacing="0"><thead><tr><td>Class</td><td>Id</td></tr></thead><tbody><tr><td><a href="com.codahale.metrics/Clock.html" class="el_class">com.codahale.metrics.Clock</a></td><td><code>c0f92dbf4454540f</code></td></tr><tr><td><a href="com.codahale.metrics/Clock$UserTimeClock.html" class="el_class">com.codahale.metrics.Clock.UserTimeClock</a></td><td><code>4fa424bfd9606921</code></td></tr><tr><td><a href="com.codahale.metrics/Clock$UserTimeClockHolder.html" class="el_class">com.codahale.metrics.Clock.UserTimeClockHolder</a></td><td><code>cbbd3dc091a26d63</code></td></tr><tr><td><a href="com.codahale.metrics/EWMA.html" class="el_class">com.codahale.metrics.EWMA</a></td><td><code>a4b0d1b3a2493ac8</code></td></tr><tr><td><a href="com.codahale.metrics/ExponentialMovingAverages.html" class="el_class">com.codahale.metrics.ExponentialMovingAverages</a></td><td><code>9a5bffa06476e87a</code></td></tr><tr><td><a href="com.codahale.metrics/Meter.html" class="el_class">com.codahale.metrics.Meter</a></td><td><code>0175f8fa04619429</code></td></tr><tr><td><a href="com.codahale.metrics/MetricRegistry.html" class="el_class">com.codahale.metrics.MetricRegistry</a></td><td><code>34f5727550368b5d</code></td></tr><tr><td><a href="com.codahale.metrics/MetricRegistry$MetricBuilder.html" class="el_class">com.codahale.metrics.MetricRegistry.MetricBuilder</a></td><td><code>7102e94fb3e3cb11</code></td></tr><tr><td><a href="com.codahale.metrics/MetricRegistry$MetricBuilder$1.html" class="el_class">com.codahale.metrics.MetricRegistry.MetricBuilder.1</a></td><td><code>b65f53171e2c1ccf</code></td></tr><tr><td><a href="com.codahale.metrics/MetricRegistry$MetricBuilder$2.html" class="el_class">com.codahale.metrics.MetricRegistry.MetricBuilder.2</a></td><td><code>736b1dd6400d647c</code></td></tr><tr><td><a href="com.codahale.metrics/MetricRegistry$MetricBuilder$3.html" class="el_class">com.codahale.metrics.MetricRegistry.MetricBuilder.3</a></td><td><code>fc805c84c947e6ea</code></td></tr><tr><td><a href="com.codahale.metrics/MetricRegistry$MetricBuilder$4.html" class="el_class">com.codahale.metrics.MetricRegistry.MetricBuilder.4</a></td><td><code>90355ca0864970b9</code></td></tr><tr><td><a href="com.codahale.metrics/MetricRegistry$MetricBuilder$5.html" class="el_class">com.codahale.metrics.MetricRegistry.MetricBuilder.5</a></td><td><code>3de6a4e8b649f0ee</code></td></tr><tr><td><a href="com.codahale.metrics/SharedMetricRegistries.html" class="el_class">com.codahale.metrics.SharedMetricRegistries</a></td><td><code>d4f157c77fa72db0</code></td></tr><tr><td><a href="com.codahale.metrics.log4j2/InstrumentedAppender.html" class="el_class">com.codahale.metrics.log4j2.InstrumentedAppender</a></td><td><code>bb772e963b26dc6f</code></td></tr><tr><td><span class="el_class">com.codahale.metrics.log4j2.InstrumentedAppender.1</span></td><td><code>f339f4995152acb1</code></td></tr><tr><td><a href="com.codahale.metrics.log4j2/InstrumentedAppenderConfigTest.html" class="el_class">com.codahale.metrics.log4j2.InstrumentedAppenderConfigTest</a></td><td><code>7069540d959584c7</code></td></tr><tr><td><a href="com.codahale.metrics.log4j2/InstrumentedAppenderTest.html" class="el_class">com.codahale.metrics.log4j2.InstrumentedAppenderTest</a></td><td><code>f50612c7813b4eb0</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.IdeaSuite</span></td><td><code>c9ad52e6c76e5132</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.IdeaSuite48</span></td><td><code>9955ceb163320f68</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.JUnit46ClassesRequestBuilder</span></td><td><code>2a301a97338fde1c</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.JUnit4IdeaTestRunner</span></td><td><code>e7382a92d3be9e03</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.JUnit4ReflectionUtil</span></td><td><code>aafd18bf6fabed4f</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.JUnit4TestListener</span></td><td><code>2ad5f091bf745759</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.JUnit4TestRunnerUtil</span></td><td><code>a8e98a2f3a521a28</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.JUnitTestTreeNodeManager</span></td><td><code>81500539dcb3895f</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.JUnitTestTreeNodeManager.1</span></td><td><code>d1714f703e71fcfc</code></td></tr><tr><td><span class="el_class">com.intellij.junit4.JUnitTestTreeNodeManager.TestNodePresentation</span></td><td><code>cb1b8b2d4997b294</code></td></tr><tr><td><span class="el_class">com.intellij.rt.execution.application.AppMainV2</span></td><td><code>8f5addea8be676f6</code></td></tr><tr><td><span class="el_class">com.intellij.rt.execution.application.AppMainV2.1</span></td><td><code>4a5f8da5016dd0ef</code></td></tr><tr><td><span class="el_class">com.intellij.rt.execution.application.AppMainV2.Agent</span></td><td><code>3d35746f65afc57a</code></td></tr><tr><td><span class="el_class">com.intellij.rt.execution.junit.MapSerializerUtil</span></td><td><code>bbebf79d8bef80f5</code></td></tr><tr><td><span class="el_class">com.intellij.rt.execution.junit.MapSerializerUtil.1</span></td><td><code>129427471cc24822</code></td></tr><tr><td><span class="el_class">com.intellij.rt.execution.junit.RepeatCount</span></td><td><code>7c8bf2ef6e35a816</code></td></tr><tr><td><span class="el_class">com.intellij.rt.execution.junit.TestsRepeater</span></td><td><code>b64f92a81ed06715</code></td></tr><tr><td><span class="el_class">com.intellij.rt.junit.IdeaTestRunner.Repeater</span></td><td><code>19f36bd79e8f259b</code></td></tr><tr><td><span class="el_class">com.intellij.rt.junit.IdeaTestRunner.Repeater.1</span></td><td><code>b95614d9d28e8159</code></td></tr><tr><td><span class="el_class">com.intellij.rt.junit.JUnitStarter</span></td><td><code>d89f5e4b1eb35db4</code></td></tr><tr><td><span class="el_class">junit.runner.BaseTestRunner</span></td><td><code>2ff9f73ecc56231d</code></td></tr><tr><td><span class="el_class">junit.textui.ResultPrinter</span></td><td><code>5549a2a924c61105</code></td></tr><tr><td><span class="el_class">junit.textui.TestRunner</span></td><td><code>a8728b5dcbc4a845</code></td></tr><tr><td><span class="el_class">net.bytebuddy.ByteBuddy</span></td><td><code>d4e5f2084d659ff9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.ClassFileVersion</span></td><td><code>5a180fbf72d4efca</code></td></tr><tr><td><span class="el_class">net.bytebuddy.ClassFileVersion.VersionLocator.Resolved</span></td><td><code>9ac78bd064c76f8d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.ClassFileVersion.VersionLocator.Resolver</span></td><td><code>8e3a1b13b270b126</code></td></tr><tr><td><span class="el_class">net.bytebuddy.NamingStrategy.AbstractBase</span></td><td><code>77e9d686c976f6e6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.NamingStrategy.Suffixing</span></td><td><code>65bfa03c85847dc9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.NamingStrategy.Suffixing.BaseNameResolver.ForUnnamedType</span></td><td><code>1fb9c5c929a4a173</code></td></tr><tr><td><span class="el_class">net.bytebuddy.NamingStrategy.SuffixingRandom</span></td><td><code>cdbdedcf0cea0a02</code></td></tr><tr><td><span class="el_class">net.bytebuddy.TypeCache</span></td><td><code>aced8dc0367a5d96</code></td></tr><tr><td><span class="el_class">net.bytebuddy.TypeCache.LookupKey</span></td><td><code>b75da15a4577d948</code></td></tr><tr><td><span class="el_class">net.bytebuddy.TypeCache.SimpleKey</span></td><td><code>99731a44c3f39c30</code></td></tr><tr><td><span class="el_class">net.bytebuddy.TypeCache.Sort</span></td><td><code>3f135d4f310abf3c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.TypeCache.Sort.1</span></td><td><code>3be4336e35a8cbfd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.TypeCache.Sort.2</span></td><td><code>5a2bb9e71930a24a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.TypeCache.Sort.3</span></td><td><code>5792db85826ac4ba</code></td></tr><tr><td><span class="el_class">net.bytebuddy.TypeCache.StorageKey</span></td><td><code>da984e48de27d4a8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.TypeCache.WithInlineExpunction</span></td><td><code>6677b9b25e623b8e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent</span></td><td><code>85368e26d13e3c56</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AgentProvider.ForByteBuddyAgent</span></td><td><code>fe8cbe1473b95e48</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider</span></td><td><code>4826a0fe82451c35</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider.Accessor.ExternalAttachment</span></td><td><code>4b2f9e9caed71e3a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider.Accessor.Simple</span></td><td><code>bba5a2d727bc5490</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider.Accessor.Simple.WithExternalAttachment</span></td><td><code>be89f3c26d8c6829</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider.Compound</span></td><td><code>109a0f4e85a6a84d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider.ForEmulatedAttachment</span></td><td><code>805a79faa9572ddd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider.ForJ9Vm</span></td><td><code>f397c97b500a9f98</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider.ForModularizedVm</span></td><td><code>b5e43c36e86c3b16</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider.ForStandardToolsJarVm</span></td><td><code>652f99825b68dd53</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentProvider.ForUserDefinedToolsJar</span></td><td><code>ad443dd056d4df39</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentTypeEvaluator.ForJava9CapableVm</span></td><td><code>6e4e1cbaf19c955d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.AttachmentTypeEvaluator.InstallationAction</span></td><td><code>7a539ffcee11d415</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.ProcessProvider.ForCurrentVm</span></td><td><code>3f895cda6cbdc0a8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.ByteBuddyAgent.ProcessProvider.ForCurrentVm.ForJava9CapableVm</span></td><td><code>fe8124e88e78e9e4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.agent.Installer</span></td><td><code>9e98232f904ea6a2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice</span></td><td><code>b0fe0e71ff93f6a2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Delegator.ForRegularInvocation.Factory</span></td><td><code>e7dcdbb5632c4506</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.Inactive</span></td><td><code>a13dc542cf03f457</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.Inlining</span></td><td><code>1b83da6e9958efde</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.Inlining.Resolved</span></td><td><code>1e1b96480eaea567</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.Inlining.Resolved.ForMethodEnter</span></td><td><code>e929ebf550c55851</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.Inlining.Resolved.ForMethodEnter.WithRetainedEnterType</span></td><td><code>139fc9dd84ba1ad8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.Inlining.Resolved.ForMethodExit</span></td><td><code>c69284241c1b3445</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.Inlining.Resolved.ForMethodExit.WithoutExceptionHandler</span></td><td><code>5adae1b615780074</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.Disabled</span></td><td><code>ed10720f26a0d31e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForType</span></td><td><code>3b066a9d3f666f4c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue</span></td><td><code>21b7e337be103b41</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.1</span></td><td><code>f1ea8721b31006cf</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.2</span></td><td><code>bc34ad47414e0f07</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.3</span></td><td><code>d99f2964a4c438e0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.4</span></td><td><code>9b014a42d62ebb0d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.5</span></td><td><code>adf8695c364423b7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.6</span></td><td><code>f91d433bf6f0e8f4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.7</span></td><td><code>a58a3762973241d2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.8</span></td><td><code>dbadbaf38f927982</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.9</span></td><td><code>cfdb6f4b0a938de0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.RelocationHandler.ForValue.OfNonDefault</span></td><td><code>a420d28f71701fd2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.Resolved.AbstractBase</span></td><td><code>af5b7d4001b00d6e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.SuppressionHandler.NoOp</span></td><td><code>f2f80b491afb88db</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.Dispatcher.SuppressionHandler.Suppressing</span></td><td><code>598c1efafb391d42</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.ExceptionHandler.Default</span></td><td><code>6cd2b41098d8fd56</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.ExceptionHandler.Default.1</span></td><td><code>369fe84b86e7a731</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.ExceptionHandler.Default.2</span></td><td><code>12562a8df114f4c1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.ExceptionHandler.Default.3</span></td><td><code>c20d4b7a29ac2993</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.Factory.AdviceType</span></td><td><code>222344ae47fda22a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.Factory.Illegal</span></td><td><code>b824ec4854bde89c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForAllArguments</span></td><td><code>1473b7bf9fc4e1b5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForAllArguments.Factory</span></td><td><code>98148d6454b592af</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForArgument</span></td><td><code>bf5687f0da9f282c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForArgument.Unresolved</span></td><td><code>70d54b6bc8b1a165</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForArgument.Unresolved.Factory</span></td><td><code>c81d13dcb77ae44a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForEnterValue</span></td><td><code>5f66c9717dc9cd52</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForEnterValue.Factory</span></td><td><code>00d9225ad08c457a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForExitValue.Factory</span></td><td><code>4cceb48fab57271e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForField.Unresolved.Factory</span></td><td><code>0ea3c196b6e38c75</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForFieldHandle.Unresolved.ReaderFactory</span></td><td><code>34b038446b31ef68</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForFieldHandle.Unresolved.WriterFactory</span></td><td><code>0932f02483480c5e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForInstrumentedMethod</span></td><td><code>65354e871d8adbde</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForInstrumentedMethod.1</span></td><td><code>4a0705f218dbb9fc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForInstrumentedMethod.2</span></td><td><code>d19b1cccf33a5a8f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForInstrumentedMethod.3</span></td><td><code>8de7b4c791e41ff3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForInstrumentedMethod.4</span></td><td><code>7ef55ab4ec291ec2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForInstrumentedMethod.5</span></td><td><code>a42feaf4b03f011c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForInstrumentedType</span></td><td><code>c6ccb02973e68c83</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForLocalValue.Factory</span></td><td><code>0d73abcfe4f6cd84</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForOrigin.Factory</span></td><td><code>ba9fe45627be64ec</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForReturnValue</span></td><td><code>037de4c0de22ee60</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForReturnValue.Factory</span></td><td><code>8c33b59194419c40</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForSelfCallHandle.Factory</span></td><td><code>2e0b5be7f8d227d2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForStackManipulation</span></td><td><code>893f7d56b99ed2f9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForStackManipulation.Factory</span></td><td><code>ff46cb5a042d7392</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForStubValue</span></td><td><code>0d0dac7cedadacd4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForThisReference</span></td><td><code>4a18584d2e6f227a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForThisReference.Factory</span></td><td><code>4fd20920981119f6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForThrowable.Factory</span></td><td><code>66521af76037a434</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.OffsetMapping.ForUnusedValue.Factory</span></td><td><code>9f8c6b55fbfa959d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.PostProcessor.NoOp</span></td><td><code>1734734198eaa842</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.Advice.WithCustomMapping</span></td><td><code>4d9fd736a5d0e45e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.AsmVisitorWrapper.AbstractBase</span></td><td><code>3cd03b050731d22c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.AsmVisitorWrapper.Compound</span></td><td><code>7b1e520e5f4262e6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.AsmVisitorWrapper.ForDeclaredMethods</span></td><td><code>573191880a5a4e0d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.AsmVisitorWrapper.ForDeclaredMethods.DispatchingVisitor</span></td><td><code>ac51d486f8ec0e4b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.AsmVisitorWrapper.ForDeclaredMethods.Entry</span></td><td><code>28eb46b4467366d6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.AsmVisitorWrapper.NoOp</span></td><td><code>a613c160b15bbc65</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.MemberRemoval</span></td><td><code>005cb62907cc0df7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.asm.MemberRemoval.MemberRemovingClassVisitor</span></td><td><code>fe382217ff7273dc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.ByteCodeElement.Token.TokenList</span></td><td><code>5956eb03e0839596</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.ModifierReviewable.AbstractBase</span></td><td><code>0b625f401d945e23</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.NamedElement.WithDescriptor</span></td><td><code>69f25e85d31086f5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.TypeVariableSource.AbstractBase</span></td><td><code>4471bc67a44c1ef1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationDescription</span></td><td><code>7e080fcc4ab41eb1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationDescription.AbstractBase</span></td><td><code>55a8b2f7b58a15aa</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationDescription.ForLoadedAnnotation</span></td><td><code>a2b247526c4d26ca</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationList.AbstractBase</span></td><td><code>8e489ae727355271</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationList.Empty</span></td><td><code>7f4960ffee633b85</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationList.Explicit</span></td><td><code>f438077a66a539b8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationList.ForLoadedAnnotations</span></td><td><code>443952df3e869f3e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue</span></td><td><code>e46e60f3e4357d8a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.AbstractBase</span></td><td><code>6b46c288929d794a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant</span></td><td><code>650f7b88da7502df</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType</span></td><td><code>8683233734d98d81</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.1</span></td><td><code>ecf694f5c718a013</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.2</span></td><td><code>113fe247f14fdcdd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.3</span></td><td><code>ad40ce4c8d647d57</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.4</span></td><td><code>649136274570c878</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.5</span></td><td><code>25519a3723562b18</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.6</span></td><td><code>d0a4ee1eb78e8925</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.7</span></td><td><code>5cc6d38c7688ce9e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.8</span></td><td><code>542fa217a5fe4c51</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForConstant.PropertyDelegate.ForNonArrayType.9</span></td><td><code>9adc51229ebb26c9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForDescriptionArray</span></td><td><code>198e8cb892ebb0c6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForEnumerationDescription</span></td><td><code>451401174e8ca82f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForEnumerationDescription.Loaded</span></td><td><code>fda0610025cc12ff</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.ForTypeDescription</span></td><td><code>256f9475d7baab5e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.Loaded.AbstractBase</span></td><td><code>1a834bbf25c86ab4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.annotation.AnnotationValue.State</span></td><td><code>db0e0a0878d7e335</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.enumeration.EnumerationDescription.AbstractBase</span></td><td><code>36efae2fe3237ba9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.enumeration.EnumerationDescription.ForLoadedEnumeration</span></td><td><code>5b47cbeca30adac0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldDescription</span></td><td><code>53da8eaebbfbddbb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldDescription.AbstractBase</span></td><td><code>a20f5231a76bb980</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldDescription.InDefinedShape.AbstractBase</span></td><td><code>7b3d946febaf5d33</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldDescription.Latent</span></td><td><code>b47200ad7e88dffb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldDescription.SignatureToken</span></td><td><code>3e1967b3504d4f43</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldDescription.Token</span></td><td><code>966f799bfb7c0668</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldList.AbstractBase</span></td><td><code>78739d279005d8a4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldList.Explicit</span></td><td><code>323b76a02a64f9a7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldList.ForLoadedFields</span></td><td><code>fc8cc870e5f42b89</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.field.FieldList.ForTokens</span></td><td><code>ea98dba6ef4eb758</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription</span></td><td><code>4242f9f3ec05d9d8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.AbstractBase</span></td><td><code>41720d451cc94237</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.ForLoadedConstructor</span></td><td><code>c634ab9c8e587e89</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.ForLoadedMethod</span></td><td><code>483c8f6d97caf847</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.InDefinedShape.AbstractBase</span></td><td><code>b33d93bb8cbd26c6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.InDefinedShape.AbstractBase.ForLoadedExecutable</span></td><td><code>2c34e3cd1c4620d7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.Latent</span></td><td><code>eba047d0ce33d6c2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.Latent.TypeInitializer</span></td><td><code>c77dbea1c1a57995</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.SignatureToken</span></td><td><code>806effdacef53f94</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.Token</span></td><td><code>d7a148a88bb734b4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.TypeSubstituting</span></td><td><code>78d976a6f400ec70</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodDescription.TypeToken</span></td><td><code>ef258f0fca0278e0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodList.AbstractBase</span></td><td><code>b054427f9b6a48f1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodList.Explicit</span></td><td><code>b03ab4c21a93dfd0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodList.ForLoadedMethods</span></td><td><code>38bd1bf17eb05676</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodList.ForTokens</span></td><td><code>40aa960dc7616ac5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.MethodList.TypeSubstituting</span></td><td><code>f1f510557a04392e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterDescription.AbstractBase</span></td><td><code>244fa52c57557e62</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterDescription.ForLoadedParameter</span></td><td><code>b764f219b6fb497f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterDescription.ForLoadedParameter.OfMethod</span></td><td><code>8bd70a245946537e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterDescription.InDefinedShape.AbstractBase</span></td><td><code>717f5d8d90c005f1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterDescription.Latent</span></td><td><code>eb41c7e5a8c26f4d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterDescription.Token</span></td><td><code>6f6ff151883ddc85</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterDescription.Token.TypeList</span></td><td><code>0a24417518716030</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterDescription.TypeSubstituting</span></td><td><code>fbb01b7a5d680315</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterList.AbstractBase</span></td><td><code>6fe6f7a3a2c191ea</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterList.Empty</span></td><td><code>8f4a45d2f54ed28b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterList.Explicit.ForTypes</span></td><td><code>75d84e0b4fcd99a9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterList.ForLoadedExecutable</span></td><td><code>1456c072c3be7105</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterList.ForLoadedExecutable.OfConstructor</span></td><td><code>6d7eaa8911075319</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterList.ForLoadedExecutable.OfMethod</span></td><td><code>f0835708e2d15fb4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterList.ForTokens</span></td><td><code>b77d0ee711552f0c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.method.ParameterList.TypeSubstituting</span></td><td><code>293f1f350b97c439</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.modifier.FieldManifestation</span></td><td><code>61ed9ad5f460d425</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.modifier.ModifierContributor.Resolver</span></td><td><code>4c37457cc5fe415c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.modifier.Ownership</span></td><td><code>03978521bbedeaac</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.modifier.SynchronizationState</span></td><td><code>1ee1e76d573ad75b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.modifier.SyntheticState</span></td><td><code>0ea0b3d14a159257</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.modifier.TypeManifestation</span></td><td><code>823497b74af56cf0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.modifier.Visibility</span></td><td><code>eddec8671a9488f2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.modifier.Visibility.1</span></td><td><code>d7e383ada6123e01</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.PackageDescription.AbstractBase</span></td><td><code>fbc5f3918eb9463b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.PackageDescription.ForLoadedPackage</span></td><td><code>647cf445f49b7cf5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.PackageDescription.Simple</span></td><td><code>0cb49b8e5cdceb1d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.RecordComponentList.AbstractBase</span></td><td><code>fa2d664156de0c87</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.RecordComponentList.Empty</span></td><td><code>facb71157fa46ed2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.RecordComponentList.ForTokens</span></td><td><code>b72447d1fcbe18bd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDefinition.Sort</span></td><td><code>e252ac8a021f4082</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDefinition.SuperClassIterator</span></td><td><code>dcc41092c6176f54</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription</span></td><td><code>36fd0fa20ad52135</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.AbstractBase</span></td><td><code>66d4e449e5bf075c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.AbstractBase.OfSimpleType</span></td><td><code>9a7c3b38170308c1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.ArrayProjection</span></td><td><code>200eb5a8bdb24241</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.ForLoadedType</span></td><td><code>f3adb1846cd261fe</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic</span></td><td><code>5601518ac3dba89e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AbstractBase</span></td><td><code>3e49593313e4528f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator</span></td><td><code>b0fc4c110c19aecd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.Chained</span></td><td><code>ce5936070db33961</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedExecutableExceptionType</span></td><td><code>83ae335cad65ee98</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedExecutableParameterType</span></td><td><code>3db4d13b1a55ffe8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedInterface</span></td><td><code>25bcc5acc7d6039e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedMethodReturnType</span></td><td><code>68fd86a349490e9d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedSuperClass</span></td><td><code>64cbe4cf03033a19</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.ForLoadedTypeVariable</span></td><td><code>607805b81a44c1a4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.Delegator.Simple</span></td><td><code>58348630fb7f5660</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.ForComponentType</span></td><td><code>0f95408415168381</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.ForTypeArgument</span></td><td><code>c4c5a6817a5b11ba</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.ForTypeVariableBoundType</span></td><td><code>260242c433f7db80</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.ForTypeVariableBoundType.OfFormalTypeVariable</span></td><td><code>14bd8a3cecc2168a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.ForWildcardUpperBoundType</span></td><td><code>3ebd458a5a263baf</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.AnnotationReader.NoOp</span></td><td><code>7d262d1efdc1a658</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection</span></td><td><code>0ee749354388952f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.ForLoadedReturnType</span></td><td><code>09e831a0a48649e7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.ForLoadedSuperClass</span></td><td><code>4097c89a98a6a8c7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.OfMethodParameter</span></td><td><code>cc35cbb5a12db70b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithEagerNavigation</span></td><td><code>ba4ed13a2c16fa27</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithEagerNavigation.OfAnnotatedElement</span></td><td><code>5bccd0ca3c6cf39e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithLazyNavigation</span></td><td><code>5734f0b82230f143</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithLazyNavigation.OfAnnotatedElement</span></td><td><code>2203d6c2cc2e43d7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProjection.WithResolvedErasure</span></td><td><code>5656afa8f8c7fa04</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.LazyProxy</span></td><td><code>837c46ba31dd9215</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfGenericArray</span></td><td><code>d13b176c2d3dc84b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfGenericArray.ForLoadedType</span></td><td><code>a6c044aee537c5ef</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfGenericArray.Latent</span></td><td><code>5d23c8971e97c94c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfNonGenericType</span></td><td><code>ffefd02f303394e6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfNonGenericType.ForErasure</span></td><td><code>d952d613f637b449</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfNonGenericType.ForLoadedType</span></td><td><code>f00423b3668c6a6d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfNonGenericType.Latent</span></td><td><code>7f6b65eac82ccacd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType</span></td><td><code>91d595189a038777</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType.ForGenerifiedErasure</span></td><td><code>4fa1e7c89c00c97f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType.ForLoadedType</span></td><td><code>68b564e96aa7b7f7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType.ForLoadedType.ParameterArgumentTypeList</span></td><td><code>186a3e289af3008c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfParameterizedType.Latent</span></td><td><code>0563e8e02d018d81</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfTypeVariable</span></td><td><code>c522788ac45e74aa</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfTypeVariable.ForLoadedType</span></td><td><code>e9a761f5db6d7559</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfTypeVariable.ForLoadedType.TypeVariableBoundList</span></td><td><code>732848281d848591</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfTypeVariable.Symbolic</span></td><td><code>7fc3f163d6308332</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfTypeVariable.WithAnnotationOverlay</span></td><td><code>ff4f9bd6f4dd76ad</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfWildcardType</span></td><td><code>eb4830fed7178b97</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfWildcardType.ForLoadedType</span></td><td><code>db7fcf43960281f7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfWildcardType.ForLoadedType.WildcardLowerBoundTypeList</span></td><td><code>24942c2b7fad7535</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfWildcardType.ForLoadedType.WildcardUpperBoundTypeList</span></td><td><code>5882d1d8d1e8b70d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.OfWildcardType.Latent</span></td><td><code>cbb90f0dea0557f2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.ForRawType</span></td><td><code>2730ba635b3e4dae</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.ForSignatureVisitor</span></td><td><code>7c9ee6e3c386d02f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.ForSignatureVisitor.OfTypeArgument</span></td><td><code>d8e6035b10ed1222</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Reducing</span></td><td><code>6646869e65b4683e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Reifying</span></td><td><code>f695f950ef96d452</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Reifying.1</span></td><td><code>3887b35198c64c3f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Reifying.2</span></td><td><code>dda2c47b308dfe77</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Substitutor</span></td><td><code>65dc96c548e3e991</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Substitutor.ForAttachment</span></td><td><code>da6e736f271084bb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Substitutor.ForDetachment</span></td><td><code>84581ab83cefe0ba</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Substitutor.WithoutTypeSubstitution</span></td><td><code>17ef049604f02334</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Validator</span></td><td><code>13ff0a7ec71a9596</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Validator.1</span></td><td><code>3122adbd7aaaeca9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Validator.2</span></td><td><code>36d36c5061f2243e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Validator.3</span></td><td><code>ca3595549a574d77</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.Generic.Visitor.Validator.ForTypeAnnotations</span></td><td><code>f22bf42b89621378</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeDescription.LazyProxy</span></td><td><code>7201bc42fc3a279c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList</span></td><td><code>da60a7cfb717d0a8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.AbstractBase</span></td><td><code>4700315364477234</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Empty</span></td><td><code>59d00ad7b53c811a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Explicit</span></td><td><code>81495dfc3a359dfe</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.ForLoadedTypes</span></td><td><code>4356a7471aec6f20</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.AbstractBase</span></td><td><code>5376e1d2298a6512</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.Empty</span></td><td><code>df9431d33e66dbb4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.Explicit</span></td><td><code>1ab8c93e54ee2ac6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.ForDetachedTypes</span></td><td><code>1b6544725fdb45a6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.ForDetachedTypes.OfTypeVariables</span></td><td><code>05b85732c40f12b7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.ForDetachedTypes.OfTypeVariables.AttachedTypeVariable</span></td><td><code>8133514c5d90955c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.ForDetachedTypes.WithResolvedErasure</span></td><td><code>3ae7efc80de7c3db</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.ForLoadedTypes</span></td><td><code>c603bfa8790b860c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.ForLoadedTypes.OfTypeVariables</span></td><td><code>d713fc161a8b3c83</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.OfConstructorExceptionTypes</span></td><td><code>41a985dd07ed867c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.OfLoadedInterfaceTypes</span></td><td><code>99d4f3faf0ed1337</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.OfLoadedInterfaceTypes.TypeProjection</span></td><td><code>7f6f3c7654719119</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.OfMethodExceptionTypes</span></td><td><code>74966b175ac75ab9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeList.Generic.OfMethodExceptionTypes.TypeProjection</span></td><td><code>2d651d381fd3d0a8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.description.type.TypeVariableToken</span></td><td><code>0b904605bce2d673</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.ClassFileLocator.ForClassLoader</span></td><td><code>bc2296cfb91301b0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.ClassFileLocator.ForClassLoader.BootLoaderProxyCreationAction</span></td><td><code>bef49ddd37f152e7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.ClassFileLocator.Resolution.Explicit</span></td><td><code>a44d2b3d4cf22e0e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.ClassFileLocator.Simple</span></td><td><code>5ec3e1fe094d9677</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase</span></td><td><code>8b697109899c9f1c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter</span></td><td><code>c239cebb09dc521b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.FieldDefinitionAdapter</span></td><td><code>95f089373e121f7c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodDefinitionAdapter</span></td><td><code>2e966526edcb873d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodDefinitionAdapter.AnnotationAdapter</span></td><td><code>8158ace8dc815026</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodDefinitionAdapter.SimpleParameterAnnotationAdapter</span></td><td><code>47371bc63761204d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodMatchAdapter</span></td><td><code>3d734adb6ddc1b18</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.MethodMatchAdapter.AnnotationAdapter</span></td><td><code>870c4a748d272702</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Adapter.OptionalMethodMatchAdapter</span></td><td><code>8ae5d509775196fa</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.Delegator</span></td><td><code>3f1fabfaec45a27c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.AbstractBase.UsingTypeWriter</span></td><td><code>3ca14d92cfc3bc3b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.FieldDefinition.Optional.AbstractBase</span></td><td><code>7ff3ef3d7a52aeda</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.FieldDefinition.Optional.Valuable.AbstractBase</span></td><td><code>6f4cbe7b3cf65d41</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.FieldDefinition.Optional.Valuable.AbstractBase.Adapter</span></td><td><code>f6c60e62d9344f54</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.AbstractBase</span></td><td><code>3bf64c5f90a05b38</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.AbstractBase.Adapter</span></td><td><code>e1416bad6f01b268</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ExceptionDefinition.AbstractBase</span></td><td><code>6a660545adbbedde</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ImplementationDefinition.AbstractBase</span></td><td><code>8233c005598191ed</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.AbstractBase</span></td><td><code>af2910a38e7ac02e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Initial.AbstractBase</span></td><td><code>d24c948296af6d68</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Simple.AbstractBase</span></td><td><code>9b31315749acebaf</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Simple.Annotatable.AbstractBase</span></td><td><code>6c42f489e12f3841</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ParameterDefinition.Simple.Annotatable.AbstractBase.Adapter</span></td><td><code>18ee5a7716255e41</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.ReceiverTypeDefinition.AbstractBase</span></td><td><code>2531fe5794acf41f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Builder.MethodDefinition.TypeVariableDefinition.AbstractBase</span></td><td><code>433828b210243d94</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Default</span></td><td><code>0f62ddd57860b9e1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Default.Loaded</span></td><td><code>973a422e6432796e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.DynamicType.Default.Unloaded</span></td><td><code>cd577d53be4c22d5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.TargetType</span></td><td><code>26c139b5f2f58862</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.Transformer.Compound</span></td><td><code>a5a52522b43091ef</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.Transformer.ForMethod</span></td><td><code>22ab387d59f6c970</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.Transformer.ForMethod.MethodModifierTransformer</span></td><td><code>829c18ff395159ba</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.Transformer.ForMethod.TransformedMethod</span></td><td><code>083bfd5734c4504d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.Transformer.ForMethod.TransformedMethod.AttachmentVisitor</span></td><td><code>43014c50e1310fbf</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.Transformer.ForMethod.TransformedMethod.TransformedParameter</span></td><td><code>84642c4a6f0d1bdc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.Transformer.ForMethod.TransformedMethod.TransformedParameterList</span></td><td><code>54d561afbee57f99</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.Transformer.NoOp</span></td><td><code>49cd89a2b3b975a3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.TypeResolutionStrategy.Passive</span></td><td><code>d5784ee7fb36ce53</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.VisibilityBridgeStrategy.Default</span></td><td><code>ae8d9f7fd85c6aad</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.VisibilityBridgeStrategy.Default.1</span></td><td><code>63c0d42260c7599e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.VisibilityBridgeStrategy.Default.2</span></td><td><code>a8389e9d32c4ecd7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.VisibilityBridgeStrategy.Default.3</span></td><td><code>30f7afc5a8be245c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ByteArrayClassLoader</span></td><td><code>d00c8733dea299dd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ByteArrayClassLoader.ClassDefinitionAction</span></td><td><code>25513de2d7f3a1cc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ByteArrayClassLoader.PackageLookupStrategy.CreationAction</span></td><td><code>5ab9077977a569a3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ByteArrayClassLoader.PackageLookupStrategy.ForJava9CapableVm</span></td><td><code>f72740caac2e4fba</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ByteArrayClassLoader.PersistenceHandler</span></td><td><code>6d61f61ae555258a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ByteArrayClassLoader.PersistenceHandler.1</span></td><td><code>680488d6e62d40d1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ByteArrayClassLoader.PersistenceHandler.2</span></td><td><code>6bf6915f86de0792</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ByteArrayClassLoader.SynchronizationStrategy.CreationAction</span></td><td><code>49781f9101d11acc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ByteArrayClassLoader.SynchronizationStrategy.ForJava8CapableVm</span></td><td><code>ccca5f228cf2a595</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassFilePostProcessor.NoOp</span></td><td><code>3c8088887326744a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassInjector.AbstractBase</span></td><td><code>331215a38873f162</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassInjector.UsingReflection</span></td><td><code>9b4c6d016e86d89d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassInjector.UsingReflection.Dispatcher.CreationAction</span></td><td><code>e95efd9bc7c2fbec</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassInjector.UsingReflection.Dispatcher.UsingUnsafeInjection</span></td><td><code>ee369f8a9915cac0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassInjector.UsingUnsafe</span></td><td><code>6f205111f44e745f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassInjector.UsingUnsafe.Dispatcher.CreationAction</span></td><td><code>acadd9b7008a78d6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassInjector.UsingUnsafe.Dispatcher.Enabled</span></td><td><code>a365360113d70680</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassLoadingStrategy</span></td><td><code>17fb081ccc92f99c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassLoadingStrategy.Default</span></td><td><code>7390ec8634515594</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassLoadingStrategy.Default.InjectionDispatcher</span></td><td><code>759cb7a298fc98b7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassLoadingStrategy.Default.WrappingDispatcher</span></td><td><code>88c49bdd78533ba6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.ClassLoadingStrategy.ForUnsafeInjection</span></td><td><code>fae0995eb7740944</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.InjectionClassLoader</span></td><td><code>cbd809288c0dad36</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.MultipleParentClassLoader.Builder</span></td><td><code>c6fb9f2d63f216f9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.PackageDefinitionStrategy.Definition.Trivial</span></td><td><code>b136ce1c9387d14f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.PackageDefinitionStrategy.Definition.Undefined</span></td><td><code>2f1d95f3613d9f49</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.PackageDefinitionStrategy.NoOp</span></td><td><code>3d34f5f46e1c0610</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.loading.PackageDefinitionStrategy.Trivial</span></td><td><code>848dce81f4e8d105</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.ClassWriterStrategy.Default</span></td><td><code>f0774d4bbe85a809</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.ClassWriterStrategy.Default.1</span></td><td><code>09a3c2cfe88a5ae4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.ClassWriterStrategy.Default.2</span></td><td><code>76afb59bd5abdd5f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.ClassWriterStrategy.FrameComputingClassWriter</span></td><td><code>52e278e8d81b4dc4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.FieldLocator.AbstractBase</span></td><td><code>54f490d54da29c16</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.FieldLocator.ForClassHierarchy</span></td><td><code>166417044cd009a4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.FieldLocator.ForClassHierarchy.Factory</span></td><td><code>f656bc98a970fd47</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.FieldLocator.Resolution.Illegal</span></td><td><code>a9972cd13cf8462c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.FieldLocator.Resolution.Simple</span></td><td><code>de8883fdeb865c93</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.FieldRegistry.Default</span></td><td><code>cc5265630d0906f2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.FieldRegistry.Default.Compiled</span></td><td><code>00933225bc77b175</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.FieldRegistry.Default.Compiled.Entry</span></td><td><code>0ec1361a69a955fd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.FieldRegistry.Default.Entry</span></td><td><code>a7413622fd851aa9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.InstrumentedType.Default</span></td><td><code>83177f7ca587cf30</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.InstrumentedType.Factory.Default</span></td><td><code>cd900ae01efd903f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.InstrumentedType.Factory.Default.1</span></td><td><code>a7ce85bb2f37ff77</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.InstrumentedType.Factory.Default.2</span></td><td><code>ad157a47dace4f55</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler</span></td><td><code>fc88be698cc4a50f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.AbstractBase</span></td><td><code>ad55505e167100d9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default</span></td><td><code>af94c7ab11c1fcdd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Harmonizer.ForJavaMethod</span></td><td><code>7031164d2b791e9e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Harmonizer.ForJavaMethod.Token</span></td><td><code>7182cc44c6651e89</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key</span></td><td><code>a65d37875a395ddb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Detached</span></td><td><code>3f02da9703ce5c2d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Harmonized</span></td><td><code>388d8cbf8e63aa90</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store</span></td><td><code>1a1546093db6edc8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Entry.Initial</span></td><td><code>ea7f0be36536a4bb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Entry.Resolved</span></td><td><code>ba93041ed575e0c7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Entry.Resolved.Node</span></td><td><code>1f19152a07e27690</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Key.Store.Graph</span></td><td><code>dd183a5630da8a82</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.Default.Merger.Directional</span></td><td><code>431cb1fc240f1328</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Compiler.ForDeclaredMethods</span></td><td><code>80835a5a4610b1d3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Empty</span></td><td><code>de57d507ae61b464</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Linked.Delegation</span></td><td><code>7341085250d5f338</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Node.Simple</span></td><td><code>f9767f80e7124acc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Node.Sort</span></td><td><code>8e20af4bf9dad8a0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Node.Unresolved</span></td><td><code>c42332646fb3e771</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.NodeList</span></td><td><code>15622cc8eb6ac006</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodGraph.Simple</span></td><td><code>3ab25bf2fa755adb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodRegistry.Default</span></td><td><code>a688cfda627119db</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Compiled</span></td><td><code>dcd52aed23ae0b55</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Compiled.Entry</span></td><td><code>44710ee8541c44cf</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Entry</span></td><td><code>b1cbe9bdfc76e994</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Prepared</span></td><td><code>9bba4ee547c8082c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodRegistry.Default.Prepared.Entry</span></td><td><code>53689d93cf82f768</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodRegistry.Handler.ForImplementation</span></td><td><code>ea77701fcbc47e2c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.MethodRegistry.Handler.ForImplementation.Compiled</span></td><td><code>7b000ab44a4af2cc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.RecordComponentRegistry.Default</span></td><td><code>eec49897d441dcbe</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.RecordComponentRegistry.Default.Compiled</span></td><td><code>1d64a300c478cbd4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeInitializer.Drain.Default</span></td><td><code>a3bc2736d5ad95f5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeInitializer.None</span></td><td><code>d062b02ed3f4d342</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeInitializer.Simple</span></td><td><code>3429322f4d42e2d4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeValidation</span></td><td><code>b9ab70dc0d5e3c60</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default</span></td><td><code>c13cf997e386f3cc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ClassDumpAction.Dispatcher.Disabled</span></td><td><code>d4f0d2e7fbcab045</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ForCreation</span></td><td><code>fc9ad618be46b3c0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ForInlining</span></td><td><code>299c2478af802227</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ForInlining.ContextRegistry</span></td><td><code>dfee6deed9a49e33</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ForInlining.WithFullProcessing</span></td><td><code>bf4cd0530bebc828</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ForInlining.WithFullProcessing.InitializationHandler.Creating</span></td><td><code>b01ca83867dc0a50</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ForInlining.WithFullProcessing.OpenedClassRemapper</span></td><td><code>9e0d8af34c811602</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ForInlining.WithFullProcessing.RedefinitionClassVisitor</span></td><td><code>f41a382ab3215f3e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.SignatureKey</span></td><td><code>d20a5d7220afbb42</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.UnresolvedType</span></td><td><code>3f5380fd3549f07e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ValidatingClassVisitor</span></td><td><code>0449b85d73902e5f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ValidatingClassVisitor.Constraint.Compound</span></td><td><code>522fa4e49e512828</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ValidatingClassVisitor.Constraint.ForClass</span></td><td><code>73e7f3e477121987</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ValidatingClassVisitor.Constraint.ForClassFileVersion</span></td><td><code>9e87393ba441dbdc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ValidatingClassVisitor.ValidatingFieldVisitor</span></td><td><code>32779ab29633e9ef</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.Default.ValidatingClassVisitor.ValidatingMethodVisitor</span></td><td><code>a412717a1b97aba3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.FieldPool.Record.ForExplicitField</span></td><td><code>a03e0587988aae1f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.AccessBridgeWrapper</span></td><td><code>9527fd76169900c9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.ForDefinedMethod</span></td><td><code>e3fde8a86929682d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.ForDefinedMethod.WithBody</span></td><td><code>963047d43410ba83</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.ForNonImplementedMethod</span></td><td><code>28a00d78fb553a8c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.TypeWriter.MethodPool.Record.Sort</span></td><td><code>928d954d831a88bc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.inline.AbstractInliningDynamicTypeBuilder</span></td><td><code>3dcbe96c7737ffda</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.inline.InliningImplementationMatcher</span></td><td><code>385ec334716921a9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.inline.MethodRebaseResolver.Disabled</span></td><td><code>687ef4457dff2d12</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.inline.RedefinitionDynamicTypeBuilder</span></td><td><code>cc7957febfc5cb21</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default</span></td><td><code>0d114e09a2faac83</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.1</span></td><td><code>16fc5c99e02d7f9f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.2</span></td><td><code>dd199479878d5739</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.3</span></td><td><code>792ea5ce51475037</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.4</span></td><td><code>98fceb895a262b45</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.ConstructorStrategy.Default.5</span></td><td><code>f0898605f9020c16</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.SubclassDynamicTypeBuilder</span></td><td><code>15df30285a830f7f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.SubclassDynamicTypeBuilder.InstrumentableMatcher</span></td><td><code>c2850d79fc87446b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget</span></td><td><code>17f509a8b52b39f3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget.Factory</span></td><td><code>f6c0a700d93e9d10</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget.OriginTypeResolver</span></td><td><code>282c73cc811d5b71</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget.OriginTypeResolver.1</span></td><td><code>2eb773d398b87160</code></td></tr><tr><td><span class="el_class">net.bytebuddy.dynamic.scaffold.subclass.SubclassImplementationTarget.OriginTypeResolver.2</span></td><td><code>903a99da03746eb8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.FieldAccessor</span></td><td><code>c717fff4ac23e0ca</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.FieldAccessor.FieldLocation.Relative</span></td><td><code>b3e919957424f848</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.FieldAccessor.FieldLocation.Relative.Prepared</span></td><td><code>aa68ebf60b4f0bef</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.FieldAccessor.FieldNameExtractor.ForBeanProperty</span></td><td><code>b178a2653a5bafe9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.FieldAccessor.FieldNameExtractor.ForBeanProperty.1</span></td><td><code>e8b3de54c6138911</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.FieldAccessor.FieldNameExtractor.ForBeanProperty.2</span></td><td><code>7de6825165503ed1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.FieldAccessor.ForImplicitProperty</span></td><td><code>2077b83bedb8edde</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.FieldAccessor.ForImplicitProperty.Appender</span></td><td><code>b07cb6f14ea187be</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Default</span></td><td><code>8e12655fc557738e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Default.AbstractPropertyAccessorMethod</span></td><td><code>f23dc6369a1530e9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Default.AccessorMethod</span></td><td><code>9be66f5be8d9fa45</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Default.AccessorMethodDelegation</span></td><td><code>542747c99b66ec54</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Default.CacheValueField</span></td><td><code>31a151ad62bab895</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Default.DelegationRecord</span></td><td><code>70526320a1ad9cc3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Default.Factory</span></td><td><code>d24c34bb404ca859</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Default.FieldCacheEntry</span></td><td><code>8e7d6b7ed6743234</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Disabled</span></td><td><code>53c73dd8eaae49ac</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.Disabled.Factory</span></td><td><code>adbbab47d629267a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.ExtractableView.AbstractBase</span></td><td><code>959623d5e0291105</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.FrameGeneration</span></td><td><code>a627c6d2ae1b5444</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.FrameGeneration.1</span></td><td><code>aaa6feaf64d85e8c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.FrameGeneration.2</span></td><td><code>a780e343d57d9071</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Context.FrameGeneration.3</span></td><td><code>2c34a94c8147f015</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.SpecialMethodInvocation.AbstractBase</span></td><td><code>a38cf2d5897906e6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.SpecialMethodInvocation.Illegal</span></td><td><code>0c59caca158bef52</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.SpecialMethodInvocation.Simple</span></td><td><code>1d406914f1f50463</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Target.AbstractBase</span></td><td><code>f7115dc2601ca003</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Target.AbstractBase.DefaultMethodInvocation</span></td><td><code>d1fa9bdfb38c1038</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Target.AbstractBase.DefaultMethodInvocation.1</span></td><td><code>5721353bb15366ec</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.Implementation.Target.AbstractBase.DefaultMethodInvocation.2</span></td><td><code>a3a810091d4e9086</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.LoadedTypeInitializer.NoOp</span></td><td><code>1af8ca0d9b7adbe8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodAccessorFactory.AccessType</span></td><td><code>a8b1b417256441f1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall</span></td><td><code>ae4dca29f42e39d5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.Appender</span></td><td><code>36c14b929a5d9485</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.ArgumentLoader.ForMethodParameter</span></td><td><code>f435ec4bd832341c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.ArgumentLoader.ForMethodParameter.Factory</span></td><td><code>14d10834f68773ca</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.MethodInvoker.ForContextualInvocation</span></td><td><code>67d21233b61c5c16</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.MethodInvoker.ForContextualInvocation.Factory</span></td><td><code>473b92f68bfbccba</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.MethodInvoker.ForVirtualInvocation.WithImplicitType</span></td><td><code>a39c338c28e91204</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.MethodLocator.ForExplicitMethod</span></td><td><code>98c72c41253ed08a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TargetHandler.ForMethodCall</span></td><td><code>0caad707b30ae193</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TargetHandler.ForMethodCall.Factory</span></td><td><code>c1832cb5d54736e4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TargetHandler.ForMethodCall.Resolved</span></td><td><code>7bf0e6eeede8ac9d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TargetHandler.ForMethodParameter</span></td><td><code>7f338183a38839e1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TargetHandler.ForMethodParameter.Resolved</span></td><td><code>6392db92c53c1bb9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TargetHandler.ForSelfOrStaticInvocation</span></td><td><code>d1b18e3b58b886f7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TargetHandler.ForSelfOrStaticInvocation.Factory</span></td><td><code>ce3c235283ac0dd6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TargetHandler.ForSelfOrStaticInvocation.Resolved</span></td><td><code>1c1abf86b318738e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TerminationHandler.Simple</span></td><td><code>6690aed6e7a18218</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TerminationHandler.Simple.1</span></td><td><code>295d1288fc335ed1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TerminationHandler.Simple.2</span></td><td><code>9e9230bbbb470354</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.TerminationHandler.Simple.3</span></td><td><code>f579959891e14d29</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodCall.WithoutSpecifiedTarget</span></td><td><code>d0b373c9e0216c67</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodDelegation</span></td><td><code>c1415fee7b21870c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodDelegation.Appender</span></td><td><code>f1ea47b04d738fac</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodDelegation.ImplementationDelegate.Compiled.ForStaticCall</span></td><td><code>2afafc9e131f3a8c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodDelegation.ImplementationDelegate.ForStaticMethod</span></td><td><code>5b03f5bbc3a0bfa2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.MethodDelegation.WithCustomProperties</span></td><td><code>15991377debf2c67</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.SuperMethodCall</span></td><td><code>48a9709638c71f00</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.SuperMethodCall.Appender</span></td><td><code>1278488d60ed8e86</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.SuperMethodCall.Appender.TerminationHandler</span></td><td><code>35d2e0ef6d7f630d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.SuperMethodCall.Appender.TerminationHandler.1</span></td><td><code>05664af3a3b6738b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.SuperMethodCall.Appender.TerminationHandler.2</span></td><td><code>be670f96c6d93831</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationAppender.1</span></td><td><code>09e39802151aefbf</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationAppender.Default</span></td><td><code>7787cf7f483d6685</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationAppender.ForTypeAnnotations</span></td><td><code>040d5aab72de4582</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationAppender.Target.OnField</span></td><td><code>52ad3ce83f52621f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationAppender.Target.OnMethod</span></td><td><code>b2534f024a4880dd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationAppender.Target.OnMethodParameter</span></td><td><code>c9f39d80b694c092</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationAppender.Target.OnType</span></td><td><code>db8f4f1dbbcf3c3e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationRetention</span></td><td><code>6dca59a58d56874f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationValueFilter.Default</span></td><td><code>190882f8828de18a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationValueFilter.Default.1</span></td><td><code>593737e47cc84848</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.AnnotationValueFilter.Default.2</span></td><td><code>a61861baa0bc96ee</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.FieldAttributeAppender.ForInstrumentedField</span></td><td><code>ca19f51ae14fb7b4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.MethodAttributeAppender.Compound</span></td><td><code>87d24d92007e506e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.MethodAttributeAppender.Factory.Compound</span></td><td><code>85113e9ca3ae38c3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.MethodAttributeAppender.ForInstrumentedMethod</span></td><td><code>4e40a53e08d4cbbb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.MethodAttributeAppender.ForInstrumentedMethod.1</span></td><td><code>a3b87b1a75d290fd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.MethodAttributeAppender.ForInstrumentedMethod.2</span></td><td><code>10e734a991eea3bf</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.MethodAttributeAppender.NoOp</span></td><td><code>aa6841038c96aed0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.TypeAttributeAppender.ForInstrumentedType</span></td><td><code>537a1dac83c99ae9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.attribute.TypeAttributeAppender.ForInstrumentedType.Differentiating</span></td><td><code>542ad65dee4078dd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.auxiliary.AuxiliaryType</span></td><td><code>577555a7861b5701</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.auxiliary.AuxiliaryType.NamingStrategy.SuffixingRandom</span></td><td><code>9ff4d19573d987f3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.auxiliary.MethodCallProxy</span></td><td><code>e4ad67673bba91b3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.auxiliary.MethodCallProxy.AssignableSignatureCall</span></td><td><code>e32307e618f933aa</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.auxiliary.MethodCallProxy.ConstructorCall</span></td><td><code>b40129a97ef170e6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.auxiliary.MethodCallProxy.ConstructorCall.Appender</span></td><td><code>6a4a35552c21bf78</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.auxiliary.MethodCallProxy.MethodCall</span></td><td><code>d2f0f120376a3b4f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.auxiliary.MethodCallProxy.MethodCall.Appender</span></td><td><code>df4a3b2e219da333</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.auxiliary.MethodCallProxy.PrecomputedMethodGraph</span></td><td><code>7fb29fbd9d22e04c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.ArgumentTypeResolver</span></td><td><code>74973272be85ce17</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.ArgumentTypeResolver.ParameterIndexToken</span></td><td><code>a8052b758f0a0361</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.DeclaringTypeResolver</span></td><td><code>d1000b5d5bf7bd79</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.1</span></td><td><code>54de841f73ee4eae</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.AmbiguityResolver</span></td><td><code>7d40b5a2d5d69397</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.AmbiguityResolver.Compound</span></td><td><code>eab4a548d2693cd2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.AmbiguityResolver.Resolution</span></td><td><code>e8ca39d95b4ade42</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.BindingResolver.Default</span></td><td><code>ed3f9e212bdf4696</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.MethodBinding.Builder</span></td><td><code>ffaacecf2e1956bd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.MethodBinding.Builder.Build</span></td><td><code>fbe15ed2c0b7c26f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.MethodBinding.Illegal</span></td><td><code>ca301be97fe35cde</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.MethodInvoker.Simple</span></td><td><code>dafea2ba3b2f164b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.ParameterBinding.Anonymous</span></td><td><code>30b0f734840f8b2c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.ParameterBinding.Illegal</span></td><td><code>470dc52d77c3898e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.ParameterBinding.Unique</span></td><td><code>c60c100f523804e4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.Processor</span></td><td><code>1dd9238ba412581f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.TerminationHandler.Default</span></td><td><code>946265fda2ca27e8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.TerminationHandler.Default.1</span></td><td><code>db109132d7373fda</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodDelegationBinder.TerminationHandler.Default.2</span></td><td><code>cb3895b610bd15d5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.MethodNameEqualityResolver</span></td><td><code>65a8d1431b34fdcd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.ParameterLengthResolver</span></td><td><code>58a025cd0f10dff1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.AllArguments.Assignment</span></td><td><code>a9a852c11b320ab1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.AllArguments.Binder</span></td><td><code>70d2d38d942236e9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.Argument.Binder</span></td><td><code>d9599526792299bc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.Argument.BindingMechanic</span></td><td><code>3c1577b22755160a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.Argument.BindingMechanic.1</span></td><td><code>0d55bcd6ddcb95ce</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.Argument.BindingMechanic.2</span></td><td><code>a10c7561f9e6f193</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.BindingPriority.Resolver</span></td><td><code>2fd170c18c979895</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.Default.Binder</span></td><td><code>fdd8dd2baa86d3db</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.DefaultCall.Binder</span></td><td><code>da1f6e99880fdd81</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.DefaultCallHandle.Binder</span></td><td><code>e06c83e6a5d67914</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.DefaultMethod.Binder</span></td><td><code>03d209c7b50b3b07</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.DefaultMethodHandle.Binder</span></td><td><code>a2ceb680358bbf3b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.Empty.Binder</span></td><td><code>7c3892404f623e5a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.FieldGetterHandle.Binder</span></td><td><code>861b7c22fc0276d1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.FieldGetterHandle.Binder.Delegate</span></td><td><code>311d13f023d8289a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.FieldSetterHandle.Binder</span></td><td><code>73928d415965e531</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.FieldSetterHandle.Binder.Delegate</span></td><td><code>87df40b62880da89</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.FieldValue.Binder</span></td><td><code>62660cf02a28bd16</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.FieldValue.Binder.Delegate</span></td><td><code>0f20336b20b2e19e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.IgnoreForBinding.Verifier</span></td><td><code>f6eaa0a37f2ce769</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.Origin.Binder</span></td><td><code>de6b5494873daefa</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.RuntimeType.Verifier</span></td><td><code>79ef98193cf36f83</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.StubValue.Binder</span></td><td><code>47dfbe906a0f1712</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.Super.Binder</span></td><td><code>159db3adf8f80917</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.SuperCall.Binder</span></td><td><code>ab7d9c4bff4cce1f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.SuperCallHandle.Binder</span></td><td><code>7b8a4c06e71007ba</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.SuperMethod.Binder</span></td><td><code>787b81ea7c3cf9d1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.SuperMethodHandle.Binder</span></td><td><code>24c923e11496eb8f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder</span></td><td><code>07e504cb3c546aab</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.DelegationProcessor</span></td><td><code>2084514b37eafe57</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.DelegationProcessor.Handler.Bound</span></td><td><code>ef7d428377a4cc32</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.DelegationProcessor.Handler.Unbound</span></td><td><code>268e0923d2bba678</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.ParameterBinder</span></td><td><code>ba9707c8f3fe13d6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.ParameterBinder.ForFieldBinding</span></td><td><code>94bb239add34e1bc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.ParameterBinder.ForFixedValue</span></td><td><code>655436a01f544525</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.ParameterBinder.ForFixedValue.OfConstant</span></td><td><code>1a94e96610690841</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.TargetMethodAnnotationDrivenBinder.Record</span></td><td><code>e5a54c271a13fa1e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bind.annotation.This.Binder</span></td><td><code>365ed9c01801d8a8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.ByteCodeAppender.Compound</span></td><td><code>0f6ce72d7ea48338</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.ByteCodeAppender.Simple</span></td><td><code>3d7cd79d87926f75</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.ByteCodeAppender.Size</span></td><td><code>897030ac0b46252c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.Duplication</span></td><td><code>87726ed8bb6e39de</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.Duplication.1</span></td><td><code>6cbf4aae44bb9c6a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.Duplication.2</span></td><td><code>204abf23cbf37c68</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.Duplication.3</span></td><td><code>0631976e078609bd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.Removal</span></td><td><code>6d539a300caa5092</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.Removal.1</span></td><td><code>ab763f3b743f79a5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.Removal.2</span></td><td><code>fd766afb93ac2a09</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.StackManipulation.AbstractBase</span></td><td><code>31ac4a0904ac3e09</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.StackManipulation.Compound</span></td><td><code>96939a22aac4c91b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.StackManipulation.Illegal</span></td><td><code>d75e2eb0d394f6c3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.StackManipulation.Size</span></td><td><code>e69b15cd3e8d4461</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.StackManipulation.Trivial</span></td><td><code>56f2787cdbce4d40</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.StackSize</span></td><td><code>80f94e8effa2f7bb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.TypeCreation</span></td><td><code>4865d2e454028bc1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.Assigner</span></td><td><code>7e67d52e9390b000</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.Assigner.Typing</span></td><td><code>b09adf7fa17d04b8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.TypeCasting</span></td><td><code>1a445bd188e2931d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveBoxingDelegate</span></td><td><code>dac9a66a711d1bdb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveBoxingDelegate.BoxingStackManipulation</span></td><td><code>96e0379915a5a251</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveTypeAwareAssigner</span></td><td><code>c888a19b998b7769</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveUnboxingDelegate</span></td><td><code>14e47d44e5cebb1d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveUnboxingDelegate.ImplicitlyTypedUnboxingResponsible</span></td><td><code>adf7d49661fe0566</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveWideningDelegate</span></td><td><code>1008755d8fe45330</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.primitive.PrimitiveWideningDelegate.WideningStackManipulation</span></td><td><code>796408ff7247d988</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.primitive.VoidAwareAssigner</span></td><td><code>3df36760b29d387a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.reference.GenericTypeAwareAssigner</span></td><td><code>3623cb487284bb53</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.assign.reference.ReferenceTypeAwareAssigner</span></td><td><code>59b5f6f8641c87f2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.collection.ArrayFactory</span></td><td><code>f2dcfb1430649b3e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.collection.ArrayFactory.ArrayCreator</span></td><td><code>7ff584cc516e3f40</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.collection.ArrayFactory.ArrayCreator.ForReferenceType</span></td><td><code>2ffee25860dde2e1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.collection.ArrayFactory.ArrayStackManipulation</span></td><td><code>2420354f9fdfb502</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.ClassConstant</span></td><td><code>8c2c8e360f844ad5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.ClassConstant.ForReferenceType</span></td><td><code>a779a54b4d7fcd6c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.DefaultValue</span></td><td><code>56544d5987e5a6d8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.DoubleConstant</span></td><td><code>829c95b7b67e95cf</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.FloatConstant</span></td><td><code>bdee038754940fff</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.IntegerConstant</span></td><td><code>58a28f871a6a0499</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.LongConstant</span></td><td><code>113f925135fa3020</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.MethodConstant</span></td><td><code>4af2674773bedc86</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.MethodConstant.CachedMethod</span></td><td><code>927dce16203d5f6c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.MethodConstant.ForMethod</span></td><td><code>5c66dba4a8bfbcea</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.NullConstant</span></td><td><code>9cf4bfc5c52a2517</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.constant.TextConstant</span></td><td><code>76b9599de59f2aeb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.FieldAccess</span></td><td><code>e098860a4703e90a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.FieldAccess.AccessDispatcher</span></td><td><code>20c90535a547e3cd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.FieldAccess.AccessDispatcher.AbstractFieldInstruction</span></td><td><code>75724b7b6b2e4a66</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.FieldAccess.AccessDispatcher.FieldGetInstruction</span></td><td><code>adcac7724ac0272c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.FieldAccess.AccessDispatcher.FieldPutInstruction</span></td><td><code>aeaedb775e139b65</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.MethodInvocation</span></td><td><code>14726e4d8770e5c2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.MethodInvocation.Invocation</span></td><td><code>fa9ba5217301f030</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.MethodReturn</span></td><td><code>3cbfd6833fda70dd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.MethodVariableAccess</span></td><td><code>7ec211e72c6c3719</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.MethodLoading</span></td><td><code>0b690307be533e18</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.MethodLoading.TypeCastingHandler.NoOp</span></td><td><code>3f3d0d86b569e241</code></td></tr><tr><td><span class="el_class">net.bytebuddy.implementation.bytecode.member.MethodVariableAccess.OffsetLoading</span></td><td><code>4794627822a950ec</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.AnnotationVisitor</span></td><td><code>ab01c26438b8cd7b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.AnnotationWriter</span></td><td><code>0932d72e909ca807</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.Attribute</span></td><td><code>706e3dca943537f4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.ByteVector</span></td><td><code>202001c737179f70</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.ClassReader</span></td><td><code>8fd6d8ea4b62a848</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.ClassVisitor</span></td><td><code>98826fd4e883df65</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.ClassWriter</span></td><td><code>73765ecc9041df5a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.Context</span></td><td><code>e9c1b62b23feb9ea</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.FieldVisitor</span></td><td><code>21cf79e64cb95598</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.FieldWriter</span></td><td><code>3c4ebfcb2bc7032e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.Handler</span></td><td><code>763c7a3b0dc4fc7e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.MethodVisitor</span></td><td><code>3a3fa5cb8e06f5c0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.MethodWriter</span></td><td><code>4dbf32aaa5d7bc68</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.Symbol</span></td><td><code>667e508aa34354b1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.SymbolTable</span></td><td><code>539884500485885f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.SymbolTable.Entry</span></td><td><code>9be5b08b0e9ad0e4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.Type</span></td><td><code>64291fd6c758fa3d</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.TypeReference</span></td><td><code>7c2c246da0bafedc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.commons.ClassRemapper</span></td><td><code>3b51d3b9fc7535e2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.commons.FieldRemapper</span></td><td><code>98cdb08947bd5f18</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.commons.Remapper</span></td><td><code>8ff8deecbcc3631a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.commons.SignatureRemapper</span></td><td><code>cd6e68dcee40cdbd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.commons.SimpleRemapper</span></td><td><code>2b864e7450e7f441</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.signature.SignatureReader</span></td><td><code>011d12c758b95e5f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.signature.SignatureVisitor</span></td><td><code>b9cc80f05fd1a1b5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.jar.asm.signature.SignatureWriter</span></td><td><code>4b49360620cb7f6c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.AnnotationTypeMatcher</span></td><td><code>4c083a293a95675e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.BooleanMatcher</span></td><td><code>fc276a6c128e2875</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.CollectionErasureMatcher</span></td><td><code>76b5d2cc623cc312</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.CollectionItemMatcher</span></td><td><code>640386844f0e29b8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.CollectionOneToOneMatcher</span></td><td><code>670278e525ff9bfc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.CollectionSizeMatcher</span></td><td><code>8f59b8be9ab4a58b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.DeclaringAnnotationMatcher</span></td><td><code>72a4630003105f69</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.DeclaringTypeMatcher</span></td><td><code>76e282c5482618bb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.DescriptorMatcher</span></td><td><code>e5d21259f82507a7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.ElementMatcher.Junction.AbstractBase</span></td><td><code>d129e1a5bbea50cb</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.ElementMatcher.Junction.Conjunction</span></td><td><code>6586c7d2abf8bf59</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.ElementMatcher.Junction.Disjunction</span></td><td><code>78eb86ff19c5e913</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.ElementMatcher.Junction.ForNonNullValues</span></td><td><code>40b97e222b442c20</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.ElementMatchers</span></td><td><code>5da3055b8ba94b32</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.EqualityMatcher</span></td><td><code>7ddcccca3867f2c6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.ErasureMatcher</span></td><td><code>327b39df894c794a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.FailSafeMatcher</span></td><td><code>e67ae39af120023b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.FilterableList.AbstractBase</span></td><td><code>acc833b482b3e913</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.FilterableList.Empty</span></td><td><code>994e694dc878695f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.LatentMatcher.Disjunction</span></td><td><code>cf547e86976c153f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.LatentMatcher.ForFieldToken</span></td><td><code>08b4951ce99afdff</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.LatentMatcher.ForFieldToken.ResolvedMatcher</span></td><td><code>7a313b55df92d5ce</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.LatentMatcher.ForMethodToken</span></td><td><code>acf53d7e0ad9c66c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.LatentMatcher.ForMethodToken.ResolvedMatcher</span></td><td><code>a1b47b682cdd16e5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.LatentMatcher.Resolved</span></td><td><code>838bf93f64347719</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodParameterTypeMatcher</span></td><td><code>d565dce3bed4679b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodParameterTypesMatcher</span></td><td><code>4f9a1c61c2ca1d30</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodParametersMatcher</span></td><td><code>754bf9d07553d1f9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodReturnTypeMatcher</span></td><td><code>1b6fa22a35a706bc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodSortMatcher</span></td><td><code>d9a4a7f8ba8d705a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodSortMatcher.Sort</span></td><td><code>df4da3ccf1c43fb2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodSortMatcher.Sort.1</span></td><td><code>9f8edcf420246fae</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodSortMatcher.Sort.2</span></td><td><code>5b30e294f2304972</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodSortMatcher.Sort.3</span></td><td><code>9c8b9e468a9ba4ee</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodSortMatcher.Sort.4</span></td><td><code>4c3709005a13f932</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.MethodSortMatcher.Sort.5</span></td><td><code>93400b67a6230353</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.ModifierMatcher</span></td><td><code>c0d2e66fbd31c083</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.ModifierMatcher.Mode</span></td><td><code>09bd88f8f539be92</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.NameMatcher</span></td><td><code>b901fc4b35799fa4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.NegatingMatcher</span></td><td><code>a7d93978e9d78d7e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.SignatureTokenMatcher</span></td><td><code>60c758b99c3d9148</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher</span></td><td><code>236df1d1d60ab580</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode</span></td><td><code>78a8ab1a5e998326</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode.1</span></td><td><code>197cd818fecbf0dc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode.2</span></td><td><code>130a12e752b093e0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode.3</span></td><td><code>37e1825b2b41bae8</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode.4</span></td><td><code>34a59e75ad57ee16</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode.5</span></td><td><code>6b18de0e0195fcc7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode.6</span></td><td><code>bdaf5299d13e3bfe</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode.7</span></td><td><code>f608050eb76b29c9</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode.8</span></td><td><code>7a1f43a330aa49e3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.StringMatcher.Mode.9</span></td><td><code>d97cfe0669542624</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.SuperTypeMatcher</span></td><td><code>5f65e9ccb1649334</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.TypeSortMatcher</span></td><td><code>bea3cd319f7a9ab6</code></td></tr><tr><td><span class="el_class">net.bytebuddy.matcher.VisibilityMatcher</span></td><td><code>6f0d2c70b6ce50e1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.pool.TypePool.AbstractBase</span></td><td><code>9fb6083dd80a22fc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.pool.TypePool.AbstractBase.Hierarchical</span></td><td><code>af09d201760be842</code></td></tr><tr><td><span class="el_class">net.bytebuddy.pool.TypePool.CacheProvider.NoOp</span></td><td><code>174576454ae1c349</code></td></tr><tr><td><span class="el_class">net.bytebuddy.pool.TypePool.CacheProvider.Simple</span></td><td><code>7bfcbb81282fd7ba</code></td></tr><tr><td><span class="el_class">net.bytebuddy.pool.TypePool.ClassLoading</span></td><td><code>eacd715670bb9cf5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.pool.TypePool.Default</span></td><td><code>d652b7abbf41681e</code></td></tr><tr><td><span class="el_class">net.bytebuddy.pool.TypePool.Default.ReaderMode</span></td><td><code>c7c49aee0ee313c2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.pool.TypePool.Empty</span></td><td><code>3dd3d1db982dbfc3</code></td></tr><tr><td><span class="el_class">net.bytebuddy.pool.TypePool.Explicit</span></td><td><code>eceae2bc3c0ef42b</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.CompoundList</span></td><td><code>b8b501baeee21c20</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.ConstantValue.Simple</span></td><td><code>e3630dc7d69b95ee</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.ConstructorComparator</span></td><td><code>c7333b6b982e8e09</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.FieldComparator</span></td><td><code>040e57b459196f7f</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.GraalImageCode</span></td><td><code>99c2d8870a99ec8c</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.Invoker.Dispatcher</span></td><td><code>b9b5f67cf01bb049</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.JavaConstant.Simple</span></td><td><code>5b025f7cd4895fd5</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.JavaConstant.Simple.OfTrivialValue</span></td><td><code>d0617f655417a3d4</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.JavaConstant.Simple.OfTrivialValue.ForString</span></td><td><code>45e71adc753caccd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.JavaModule</span></td><td><code>6655d87ef5c48770</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.MethodComparator</span></td><td><code>4e5549fe1a1bb16a</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.OpenedClassReader</span></td><td><code>03aca7f7509a23be</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.RandomString</span></td><td><code>475c5a28b2a65671</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.StreamDrainer</span></td><td><code>264534737ce95d78</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher</span></td><td><code>787d0fb443c33196</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForContainerCreation</span></td><td><code>6d0da494448f50f0</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForInstanceCheck</span></td><td><code>348c5ed1a0ea72ea</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForNonStaticMethod</span></td><td><code>bf4d2158c4101736</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher.Dispatcher.ForStaticMethod</span></td><td><code>2cbd19f9947661fd</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher.DynamicClassLoader</span></td><td><code>fb77b168217827f2</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher.DynamicClassLoader.Resolver.CreationAction</span></td><td><code>8ca4ae6007eb9fd7</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher.DynamicClassLoader.Resolver.ForModuleSystem</span></td><td><code>9a96cee67ed31732</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher.InvokerCreationAction</span></td><td><code>8b81db7b9bb021a1</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.dispatcher.JavaDispatcher.ProxiedInvocationHandler</span></td><td><code>a4eb032d57e965fc</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.privilege.GetMethodAction</span></td><td><code>74124300a1be96ce</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.privilege.GetSystemPropertyAction</span></td><td><code>3dcb9c5481b99d57</code></td></tr><tr><td><span class="el_class">net.bytebuddy.utility.visitor.MetadataAwareClassVisitor</span></td><td><code>01777504b2dd8fd6</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.Level</span></td><td><code>c16ba76d799f3791</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.LogManager</span></td><td><code>f5f59bb1e8d3dbc7</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.MarkerManager</span></td><td><code>d897a1d7c5ddda81</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.MarkerManager.Log4jMarker</span></td><td><code>d177266193b10c21</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.ThreadContext</span></td><td><code>6369b329f1834450</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.ThreadContext.EmptyIterator</span></td><td><code>84d6701ae7b776c3</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.ThreadContext.EmptyThreadContextStack</span></td><td><code>5bf000d3ccd83ae6</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.AbstractLifeCycle</span></td><td><code>4a58edc7839a2101</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.Appender</span></td><td><code>557c71036724f367</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.LifeCycle.State</span></td><td><code>9cbfc1c6e8933760</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.LogEvent.MockitoMock.Ge9oha9s</span></td><td><code>8e1ebed7eb500e5d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.Logger</span></td><td><code>75da8821ad625e16</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.Logger.PrivateConfig</span></td><td><code>6b8b9d9b24a277cd</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.LoggerContext</span></td><td><code>aa34388b1e29d271</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.LoggerContext.1</span></td><td><code>e8cab04b536a4cb5</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.Version</span></td><td><code>15ac13f915374f41</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.AbstractAppender</span></td><td><code>40cda5085efffc6b</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.AbstractManager</span></td><td><code>1765196ff610f169</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender</span></td><td><code>37ad3d4f25c6ed11</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.ConsoleAppender</span></td><td><code>e745fb3892e8290c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.ConsoleAppender.ConsoleManagerFactory</span></td><td><code>c641512c925e519d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.ConsoleAppender.FactoryData</span></td><td><code>755b4d9f9149611e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.ConsoleAppender.Target</span></td><td><code>9531df58085e28b1</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.ConsoleAppender.Target.1</span></td><td><code>5a7aa65a6a4a036b</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.ConsoleAppender.Target.2</span></td><td><code>1c59522fc927120d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.DefaultErrorHandler</span></td><td><code>ac43bc36cd775348</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.appender.OutputStreamManager</span></td><td><code>9c94c036dc8a3cb2</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.async.InternalAsyncUtil</span></td><td><code>ed63a026039835c9</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.async.ThreadNameCachingStrategy</span></td><td><code>c4d7e4cfba12c4e8</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.async.ThreadNameCachingStrategy.1</span></td><td><code>eb70dccb31d54d63</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.async.ThreadNameCachingStrategy.2</span></td><td><code>7360500ad82b76f6</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.AbstractConfiguration</span></td><td><code>2a8412d318399585</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.AppenderControl</span></td><td><code>2bc71d1f8e4bb2ba</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.AppenderControlArraySet</span></td><td><code>08eed8aa3c165162</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.AppenderRef</span></td><td><code>459880ba180f97e9</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.AppendersPlugin</span></td><td><code>fad5dd1b676a7b81</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy</span></td><td><code>f1c10a071c4b02d3</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.ConfigurationFactory</span></td><td><code>619f9a533a599b9f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.ConfigurationFactory.Factory</span></td><td><code>fe633a431762f1b2</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.ConfigurationScheduler</span></td><td><code>1b6781e32c572e82</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.ConfigurationSource</span></td><td><code>d15ffd251c6a7293</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.Configurator</span></td><td><code>a49560a5c55098fc</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.DefaultAdvertiser</span></td><td><code>695aae846bfa5a4a</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.DefaultConfiguration</span></td><td><code>55d57adf720da5ed</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.DefaultReliabilityStrategy</span></td><td><code>1a139964ed367c5c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.LoggerConfig</span></td><td><code>f07a1cac03204d3f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.LoggerConfig.LevelAndRefs</span></td><td><code>75c9d630b74c3d27</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.LoggerConfig.LoggerConfigPredicate</span></td><td><code>de48990d804549bf</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.LoggerConfig.LoggerConfigPredicate.1</span></td><td><code>e845dba89d98c7ab</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.LoggerConfig.LoggerConfigPredicate.2</span></td><td><code>05257e6b98719290</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.LoggerConfig.LoggerConfigPredicate.3</span></td><td><code>794393f4e037523f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.LoggerConfig.RootLogger</span></td><td><code>dc2ff6559c952246</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.LoggerConfig.RootLogger.Builder</span></td><td><code>bc4a6d928992057b</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.Loggers</span></td><td><code>c8a7997331251d55</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.LoggersPlugin</span></td><td><code>e785576ec131cbea</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.Node</span></td><td><code>290cfdc0878668fd</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.NullConfiguration</span></td><td><code>7bd3cc265969ff51</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.OrderComparator</span></td><td><code>93b80d16945d2745</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.Property</span></td><td><code>7a41d860312c8998</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.ReliabilityStrategyFactory</span></td><td><code>bad12f7133e6c776</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.builder.api.ConfigurationBuilderFactory</span></td><td><code>53e68b18d786eb59</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.json.JsonConfigurationFactory</span></td><td><code>386e1b25a3474fca</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverterRegistry</span></td><td><code>6c433cdb117cfc71</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters</span></td><td><code>4069627b42503140</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.BigDecimalConverter</span></td><td><code>e2907b6b27803aad</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.BigIntegerConverter</span></td><td><code>d3240da8993617fd</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.BooleanConverter</span></td><td><code>7162b725cab23a17</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.ByteArrayConverter</span></td><td><code>4798190b99b680f3</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.ByteConverter</span></td><td><code>6a967183aa843ca8</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.CharArrayConverter</span></td><td><code>bbcc971d3b219349</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.CharacterConverter</span></td><td><code>fba843c062ba4cc8</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.CharsetConverter</span></td><td><code>31408326aa229560</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.ClassConverter</span></td><td><code>38a6158dbb82c315</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.CronExpressionConverter</span></td><td><code>eed3f8e89a95d1fe</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.DoubleConverter</span></td><td><code>003f457eb1a58591</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.DurationConverter</span></td><td><code>7dda10281f0f5673</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.FileConverter</span></td><td><code>485d82abf973a596</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.FloatConverter</span></td><td><code>fc196475fd2eb79d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.InetAddressConverter</span></td><td><code>087b90fd19cb18f1</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.IntegerConverter</span></td><td><code>bc5d5e522cad1c4e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.LevelConverter</span></td><td><code>83296c38a58daa2c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.LongConverter</span></td><td><code>5343e2c657b46a9e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.PathConverter</span></td><td><code>72c75215eb1c2739</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.PatternConverter</span></td><td><code>a0818c9a342e9ae2</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.SecurityProviderConverter</span></td><td><code>a7c120286237f797</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.ShortConverter</span></td><td><code>40addf04a5c60d41</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.StringConverter</span></td><td><code>7dac10f4dddbad6f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.UriConverter</span></td><td><code>b4d097f70a07f7e1</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.UrlConverter</span></td><td><code>2f567dff6e2c4f2f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.convert.TypeConverters.UuidConverter</span></td><td><code>c2d2ed7b23392e18</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.processor.PluginCache</span></td><td><code>86df9597e851d48f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.processor.PluginEntry</span></td><td><code>87e280306f71b42f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.util.PluginBuilder</span></td><td><code>0ac2b7cce613e350</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.util.PluginManager</span></td><td><code>d3d98ebd8ac5d556</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.util.PluginRegistry</span></td><td><code>d6918979a7f3951a</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.util.PluginRegistry.PluginTest</span></td><td><code>fa3f773f19eb356f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.util.PluginType</span></td><td><code>97d0f069df1c9e5f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.util.ResolverUtil</span></td><td><code>c4f033d655decb8a</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.validation.ConstraintValidators</span></td><td><code>e7244981f70838a7</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.visitors.AbstractPluginVisitor</span></td><td><code>bf4c1a8533e826e9</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.visitors.PluginAttributeVisitor</span></td><td><code>c78ad0b71073020b</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.visitors.PluginBuilderAttributeVisitor</span></td><td><code>2ec63d51726e1827</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.visitors.PluginConfigurationVisitor</span></td><td><code>1e0eae69e1645e74</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.visitors.PluginElementVisitor</span></td><td><code>ed1cfbd56d268259</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.plugins.visitors.PluginVisitors</span></td><td><code>f679534f19c5c183</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.properties.PropertiesConfigurationFactory</span></td><td><code>0850da00471d2708</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.status.StatusConfiguration</span></td><td><code>65a1274d04bd11eb</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.xml.XmlConfiguration</span></td><td><code>31cdd51a6d6b44b2</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.xml.XmlConfigurationFactory</span></td><td><code>568b2130a8a4ad7b</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.config.yaml.YamlConfigurationFactory</span></td><td><code>0e62bac5b54be9d6</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.filter.AbstractFilterable</span></td><td><code>f4c143a59f77a4ac</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.ContextAnchor</span></td><td><code>d748e48c1790f8ea</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.ContextDataFactory</span></td><td><code>32ba51a83ef76280</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.ContextDataInjectorFactory</span></td><td><code>299322a21d083e32</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.Log4jContextFactory</span></td><td><code>feda5598c0646484</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.Log4jLogEvent</span></td><td><code>3e089274ee4b50f2</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.Log4jProvider</span></td><td><code>b08171171b267469</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.MutableLogEvent</span></td><td><code>0b7ce743db2c84da</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.ReusableLogEventFactory</span></td><td><code>92775d2f515843ea</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.ThreadContextDataInjector</span></td><td><code>b9831bf4ce554e10</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.ThreadContextDataInjector.ForCopyOnWriteThreadContextMap</span></td><td><code>f5a513131dae96b2</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.ThreadContextDataProvider</span></td><td><code>fdfc555804f50eb3</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.impl.ThrowableFormatOptions</span></td><td><code>9c4c29401a9fa329</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.jmx.AppenderAdmin</span></td><td><code>6c67c9235e321799</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.jmx.ContextSelectorAdmin</span></td><td><code>0d84571db0a23c98</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.jmx.LoggerConfigAdmin</span></td><td><code>aff502d5e02a532f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.jmx.LoggerContextAdmin</span></td><td><code>bf881aeb9f24ef97</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.jmx.Server</span></td><td><code>35c068c0ae9cb2c3</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.jmx.StatusLoggerAdmin</span></td><td><code>d7139c573ff431ad</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.layout.AbstractLayout</span></td><td><code>0b084f5625073f84</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.layout.AbstractStringLayout</span></td><td><code>c22b33932ce6c04f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.layout.PatternLayout</span></td><td><code>d86f3301893c06a7</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.layout.PatternLayout.Builder</span></td><td><code>b140a4cae3f87733</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.layout.PatternLayout.PatternFormatterPatternSerializer</span></td><td><code>2af05564cbbdea7a</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.layout.PatternLayout.SerializerBuilder</span></td><td><code>fa59d54d31faa345</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.layout.StringBuilderEncoder</span></td><td><code>899256500215c572</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.AbstractConfigurationAwareLookup</span></td><td><code>722110a4ac296631</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.AbstractLookup</span></td><td><code>1f360837d7e0642d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.ConfigurationStrSubstitutor</span></td><td><code>2afd63deca12779d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.ContextMapLookup</span></td><td><code>c93bc323ef94ca39</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.DateLookup</span></td><td><code>3ae19541a6febc2d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.EnvironmentLookup</span></td><td><code>d90b57ecaffaf99f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.EventLookup</span></td><td><code>a884ead0e6a3b95d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.Interpolator</span></td><td><code>0ccab67bad77d8b8</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.JavaLookup</span></td><td><code>b7c95024f5056538</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.JmxRuntimeInputArgumentsLookup</span></td><td><code>604bdbe2ae156e88</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.Log4jLookup</span></td><td><code>dbc1a81ffd959959</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.LowerLookup</span></td><td><code>a37db657219239dd</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.MainMapLookup</span></td><td><code>54299475832bc7dd</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.MapLookup</span></td><td><code>861dc5ef7f9eba17</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.MarkerLookup</span></td><td><code>0e6cfb87a0c7358e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.PropertiesLookup</span></td><td><code>f67aa3f01fef3433</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.ResourceBundleLookup</span></td><td><code>f3b9ec48b1712bc2</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.RuntimeStrSubstitutor</span></td><td><code>590e1a41e3dea09c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.StrMatcher</span></td><td><code>1efbae8b860a175f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.StrMatcher.CharMatcher</span></td><td><code>8ee16bc7eefdf569</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.StrMatcher.CharSetMatcher</span></td><td><code>b965ec92a009031a</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.StrMatcher.NoMatcher</span></td><td><code>a92cace2c0d9c44d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.StrMatcher.StringMatcher</span></td><td><code>977cacda8d9639a8</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.StrMatcher.TrimMatcher</span></td><td><code>7ac4238f6f5fd9f5</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.StrSubstitutor</span></td><td><code>a76f6e3acd82ceba</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.StructuredDataLookup</span></td><td><code>57f335aa16a287a4</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.SystemPropertiesLookup</span></td><td><code>ea304698f3e20ff3</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.lookup.UpperLookup</span></td><td><code>400c3db1f9e8f866</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.net.JndiManager</span></td><td><code>0bec1837194dbed6</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.net.JndiManager.JndiManagerFactory</span></td><td><code>1aa22ef35e7b39e1</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.AbstractPatternConverter</span></td><td><code>fb665c01ac606a82</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.DatePatternConverter</span></td><td><code>1dc508e389cc0471</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.DatePatternConverter.CachedTime</span></td><td><code>bd3e877d1391b293</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.DatePatternConverter.FixedFormatter</span></td><td><code>028519c79cead7f9</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.DatePatternConverter.Formatter</span></td><td><code>becfbef9baa3f895</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.DynamicWordAbbreviator</span></td><td><code>48d3cdaa1be59494</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter</span></td><td><code>b3c9c67b5123815e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.FormattingInfo</span></td><td><code>bfa167f743991357</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.LevelPatternConverter</span></td><td><code>4918fd998a7f9ded</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.LevelPatternConverter.SimpleLevelPatternConverter</span></td><td><code>3b1fac638d67c2a6</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.LineSeparatorPatternConverter</span></td><td><code>2e62c0a555195b17</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.LiteralPatternConverter</span></td><td><code>02c30894357c76b4</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.LogEventPatternConverter</span></td><td><code>88e6eb5d3c6bb5f2</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.LoggerPatternConverter</span></td><td><code>972bf08c68b4e811</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.MessagePatternConverter</span></td><td><code>979226f199ca1ff0</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.MessagePatternConverter.SimpleMessagePatternConverter</span></td><td><code>f8ae3ee84ca03ad6</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.NameAbbreviator</span></td><td><code>b960cd704f59fe01</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.NameAbbreviator.MaxElementAbbreviator</span></td><td><code>a799f552b2e89e70</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.NameAbbreviator.MaxElementAbbreviator.Strategy</span></td><td><code>153d2509a8dfc5a1</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.NameAbbreviator.MaxElementAbbreviator.Strategy.1</span></td><td><code>0bd22bf7dc3870c5</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.NameAbbreviator.MaxElementAbbreviator.Strategy.2</span></td><td><code>67ac3c720f88fd1c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.NameAbbreviator.NOPAbbreviator</span></td><td><code>f0d119705d83ce82</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.NamePatternConverter</span></td><td><code>0732e348918fa3b4</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.PatternFormatter</span></td><td><code>1963738e5ade04be</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.PatternParser</span></td><td><code>a3a403c3e1b24f14</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.PatternParser.1</span></td><td><code>187a586abe201b3c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.PatternParser.ParserState</span></td><td><code>dcd60ed2b152eb24</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.PlainTextRenderer</span></td><td><code>3f856ba5906c793c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.SimpleLiteralPatternConverter</span></td><td><code>52ce65d84183dea7</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.SimpleLiteralPatternConverter.Space</span></td><td><code>79ff5216fc0c0bdd</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.SimpleLiteralPatternConverter.StringValue</span></td><td><code>23e3525555bcd95b</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.ThreadNamePatternConverter</span></td><td><code>3fc82aae7d398d40</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.pattern.ThrowablePatternConverter</span></td><td><code>ac65b0607632b78e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.selector.ClassLoaderContextSelector</span></td><td><code>503a4e8e9026d582</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.time.MutableInstant</span></td><td><code>2c9f37fecc94af66</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.BasicAuthorizationProvider</span></td><td><code>91fb6f421e386e2e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.ClockFactory</span></td><td><code>db9e6b37e1499815</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.CloseShieldOutputStream</span></td><td><code>a8ceb873be4f4648</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.Closer</span></td><td><code>07ec2ceb73d38d9f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.Constants</span></td><td><code>a0dd9318b1aa97f5</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry</span></td><td><code>fe7e78055d6ed7e9</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.DefaultShutdownCallbackRegistry.RegisteredCancellable</span></td><td><code>d05cfcef69b80229</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.DummyNanoClock</span></td><td><code>e9842706c10ce8fe</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.ExecutorServices</span></td><td><code>0b1502384d7b4f9d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.Integers</span></td><td><code>a24bab05e3df8181</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.Loader</span></td><td><code>a6b6fe81d9bd2e7e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.Log4jThreadFactory</span></td><td><code>c826143ca92543b4</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.NameUtil</span></td><td><code>c65e140f2edce6e0</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.NetUtils</span></td><td><code>85aa383ac97033d8</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.OptionConverter</span></td><td><code>b9e1547bd051ff6f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.Patterns</span></td><td><code>25904b465279f47d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.ReflectionUtil</span></td><td><code>e2f901f8fe40d1d0</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.ShutdownCallbackRegistry</span></td><td><code>bdd0c536e9a68d83</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.SystemClock</span></td><td><code>96230c7e58fd2ab1</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.TypeUtil</span></td><td><code>123af7991e2fd49c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.WatchManager</span></td><td><code>7dddd25bee88a1ba</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.WatchManager.LocalUUID</span></td><td><code>7cd3237924702c0c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.datetime.FixedDateFormat</span></td><td><code>dcd0f039f36ff5be</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.datetime.FixedDateFormat.FixedFormat</span></td><td><code>2d48c8773f657d7f</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.core.util.datetime.FixedDateFormat.FixedTimeZoneFormat</span></td><td><code>1f0b7fbd399e1357</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.internal.LogManagerStatus</span></td><td><code>72283b78de816d5d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.message.AbstractMessageFactory</span></td><td><code>e9dac4515df8ce23</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.message.DefaultFlowMessageFactory</span></td><td><code>4027bdc03cb851d4</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.message.ParameterizedMessageFactory</span></td><td><code>b844767fa1b9909b</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.message.ParameterizedNoReferenceMessageFactory</span></td><td><code>ce2d29c2691e3be3</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.message.ReusableMessageFactory</span></td><td><code>6d203970db43c096</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.message.SimpleMessage</span></td><td><code>8febf49cfcf775d1</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.AbstractLogger</span></td><td><code>45c40d48e73ab93d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.CopyOnWriteSortedArrayThreadContextMap</span></td><td><code>01d83f93368a95a6</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.DefaultThreadContextMap</span></td><td><code>8f0beff2dec656e8</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.DefaultThreadContextStack</span></td><td><code>c2a6db52b37d2193</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.GarbageFreeSortedArrayThreadContextMap</span></td><td><code>29c7de9ae4ead2f3</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.LoggerContext</span></td><td><code>d2a836bfefe5bd0e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.LoggerRegistry</span></td><td><code>cf29fc9ed8bd3398</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.LoggerRegistry.ConcurrentMapFactory</span></td><td><code>a009c2100e5ad58d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.Provider</span></td><td><code>f95484c82704055e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.StandardLevel</span></td><td><code>08a88bb529c47d3e</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.spi.ThreadContextMapFactory</span></td><td><code>5eca38a306bc0031</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.status.StatusConsoleListener</span></td><td><code>ba0340263daaeaf4</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.status.StatusData</span></td><td><code>0b005f1fd85dcf95</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.status.StatusLogger</span></td><td><code>4b9bc5923fcf6330</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.status.StatusLogger.Config</span></td><td><code>77ff6bd953fb687a</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.status.StatusLogger.InstanceHolder</span></td><td><code>73732b59158cb563</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.Cast</span></td><td><code>b2f6f75e8d8aff5b</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.Constants</span></td><td><code>42a85a722c4ee8c5</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.EnvironmentPropertySource</span></td><td><code>c461150ae9e7ce91</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.Lazy</span></td><td><code>c6b050660b91ae2c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.LazyBoolean</span></td><td><code>865766ba7d157306</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.LazyUtil</span></td><td><code>f41dc66f7b046ec3</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.LazyUtil.1</span></td><td><code>816b401ccf54f5ea</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.LazyUtil.SafeLazy</span></td><td><code>25af67911aa147a9</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.LoaderUtil</span></td><td><code>57506497ed99fe55</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.LoaderUtil.ThreadContextClassLoaderGetter</span></td><td><code>eba780344e5c0127</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.OsgiServiceLocator</span></td><td><code>c89525c8372e0124</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.PropertiesPropertySource</span></td><td><code>8b861a658c8213b9</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.PropertiesUtil</span></td><td><code>aa7a22bd78cfd29c</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.PropertiesUtil.Environment</span></td><td><code>ead57f3eaefd4c85</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.PropertyFilePropertySource</span></td><td><code>80f16eefe583b64d</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.PropertySource.Comparator</span></td><td><code>b80634a1f3528c45</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.PropertySource.Util</span></td><td><code>0d07272b6b0251d9</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.ProviderUtil</span></td><td><code>8ad59c5eeb8b10a9</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.ServiceLoaderUtil</span></td><td><code>04c444c8890c61b1</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.ServiceLoaderUtil.ServiceLoaderSpliterator</span></td><td><code>5878ba8bd151ecdb</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.SortedArrayStringMap</span></td><td><code>6b5e92babe960348</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.StackLocator</span></td><td><code>d81cfbddd684fee7</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.StackLocatorUtil</span></td><td><code>3d238f2763343500</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.StringBuilders</span></td><td><code>327273e1ece4e010</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.Strings</span></td><td><code>61c13661cc218046</code></td></tr><tr><td><span class="el_class">org.apache.logging.log4j.util.SystemPropertiesPropertySource</span></td><td><code>bcc53f8595b18cd2</code></td></tr><tr><td><span class="el_class">org.assertj.core.api.AbstractAssert</span></td><td><code>350d4a3c45c0d8b2</code></td></tr><tr><td><span class="el_class">org.assertj.core.api.AbstractComparableAssert</span></td><td><code>4bc0b15e745cd2bd</code></td></tr><tr><td><span class="el_class">org.assertj.core.api.AbstractLongAssert</span></td><td><code>559ad7d6ac9183fe</code></td></tr><tr><td><span class="el_class">org.assertj.core.api.AbstractObjectAssert</span></td><td><code>9efff4a69b305ce5</code></td></tr><tr><td><span class="el_class">org.assertj.core.api.Assertions</span></td><td><code>4edb27c6dadb3b26</code></td></tr><tr><td><span class="el_class">org.assertj.core.api.AssertionsForClassTypes</span></td><td><code>485dd7e71971d9a1</code></td></tr><tr><td><span class="el_class">org.assertj.core.api.LongAssert</span></td><td><code>cd40a5f106cfe37a</code></td></tr><tr><td><span class="el_class">org.assertj.core.api.WritableAssertionInfo</span></td><td><code>cfe8767c89787032</code></td></tr><tr><td><span class="el_class">org.assertj.core.configuration.Configuration</span></td><td><code>6ea356a40ee80ccf</code></td></tr><tr><td><span class="el_class">org.assertj.core.configuration.ConfigurationProvider</span></td><td><code>3346c4801f784bb9</code></td></tr><tr><td><span class="el_class">org.assertj.core.configuration.PreferredAssumptionException</span></td><td><code>2789214dba489051</code></td></tr><tr><td><span class="el_class">org.assertj.core.configuration.PreferredAssumptionException.1</span></td><td><code>1eab9d24cce924d2</code></td></tr><tr><td><span class="el_class">org.assertj.core.configuration.Services</span></td><td><code>3dc1dd22400d3099</code></td></tr><tr><td><span class="el_class">org.assertj.core.error.AssertionErrorCreator</span></td><td><code>744bd205226ec15f</code></td></tr><tr><td><span class="el_class">org.assertj.core.error.ConstructorInvoker</span></td><td><code>dbd17ff2cbb8bc28</code></td></tr><tr><td><span class="el_class">org.assertj.core.error.GroupTypeDescription</span></td><td><code>e2d30a487eec2c68</code></td></tr><tr><td><span class="el_class">org.assertj.core.internal.AbstractComparisonStrategy</span></td><td><code>40fb8687fd6113a4</code></td></tr><tr><td><span class="el_class">org.assertj.core.internal.Comparables</span></td><td><code>492c5254e1e386a8</code></td></tr><tr><td><span class="el_class">org.assertj.core.internal.Conditions</span></td><td><code>e092e4d723bc2314</code></td></tr><tr><td><span class="el_class">org.assertj.core.internal.Failures</span></td><td><code>2cd3f6ce6070185b</code></td></tr><tr><td><span class="el_class">org.assertj.core.internal.Longs</span></td><td><code>46033b1be2bc7d8e</code></td></tr><tr><td><span class="el_class">org.assertj.core.internal.Numbers</span></td><td><code>b1c5a72fc2773178</code></td></tr><tr><td><span class="el_class">org.assertj.core.internal.Objects</span></td><td><code>fe71671260ce8f9c</code></td></tr><tr><td><span class="el_class">org.assertj.core.internal.StandardComparisonStrategy</span></td><td><code>cb180b5c43beb144</code></td></tr><tr><td><span class="el_class">org.assertj.core.presentation.CompositeRepresentation</span></td><td><code>3230199b443ac68a</code></td></tr><tr><td><span class="el_class">org.assertj.core.presentation.StandardRepresentation</span></td><td><code>6d33658e7677a603</code></td></tr><tr><td><span class="el_class">org.assertj.core.util.Arrays</span></td><td><code>20c1f3363764d24e</code></td></tr><tr><td><span class="el_class">org.assertj.core.util.Lists</span></td><td><code>5895215344293d99</code></td></tr><tr><td><span class="el_class">org.assertj.core.util.Streams</span></td><td><code>d730dd591d3325a8</code></td></tr><tr><td><span class="el_class">org.assertj.core.util.introspection.FieldSupport</span></td><td><code>1f44f51b62bb0ce5</code></td></tr><tr><td><span class="el_class">org.assertj.core.util.introspection.PropertySupport</span></td><td><code>381c5ad4b48534d7</code></td></tr><tr><td><span class="el_class">org.junit.Assert</span></td><td><code>eda6db924019425b</code></td></tr><tr><td><span class="el_class">org.junit.internal.Checks</span></td><td><code>5f543b0bb87b92da</code></td></tr><tr><td><span class="el_class">org.junit.internal.MethodSorter</span></td><td><code>a26607ae067f7352</code></td></tr><tr><td><span class="el_class">org.junit.internal.MethodSorter.1</span></td><td><code>d3997b4bdb7889c1</code></td></tr><tr><td><span class="el_class">org.junit.internal.MethodSorter.2</span></td><td><code>c8e6351cbf098013</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.AllDefaultPossibilitiesBuilder</span></td><td><code>4f18a1d7932cb8ab</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.AnnotatedBuilder</span></td><td><code>0faf353d180c9332</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.IgnoredBuilder</span></td><td><code>e152f333c53967a6</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.JUnit3Builder</span></td><td><code>4a2cc8e608e1275e</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.JUnit4Builder</span></td><td><code>f2e00a3e1fc23005</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.NullBuilder</span></td><td><code>2c8f3561ed8ea9c5</code></td></tr><tr><td><span class="el_class">org.junit.internal.builders.SuiteMethodBuilder</span></td><td><code>1df136431e07e393</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.model.EachTestNotifier</span></td><td><code>077481995383e000</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.model.ReflectiveCallable</span></td><td><code>d591724635588bcb</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator</span></td><td><code>95b5ee2068ec6875</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.Builder</span></td><td><code>f24845fa6fd065af</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.DeclaringClassMustBePublic</span></td><td><code>1de994463c748d89</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeARule</span></td><td><code>e24e9f59de6fe5b7</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.FieldMustBeATestRule</span></td><td><code>690823bd2992f52e</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeNonStaticOrAlsoClassRule</span></td><td><code>1e703fb3e7f4e533</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBePublic</span></td><td><code>806c174eb921b478</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.MemberMustBeStatic</span></td><td><code>ac28a03dd36b2b5a</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeARule</span></td><td><code>88ea4a2237de2b8b</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.rules.RuleMemberValidator.MethodMustBeATestRule</span></td><td><code>9f4dd18a26005c18</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.statements.InvokeMethod</span></td><td><code>05a7aa636afa2c39</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.statements.RunAfters</span></td><td><code>14a998d07920cd7b</code></td></tr><tr><td><span class="el_class">org.junit.internal.runners.statements.RunBefores</span></td><td><code>ef86a61ca3ab20ba</code></td></tr><tr><td><span class="el_class">org.junit.runner.Description</span></td><td><code>1d6f7ddbbf223f9a</code></td></tr><tr><td><span class="el_class">org.junit.runner.JUnitCore</span></td><td><code>712fa1527248c316</code></td></tr><tr><td><span class="el_class">org.junit.runner.Request</span></td><td><code>214d9ade1c7dc38d</code></td></tr><tr><td><span class="el_class">org.junit.runner.Request.1</span></td><td><code>171f628b721d7eea</code></td></tr><tr><td><span class="el_class">org.junit.runner.Result</span></td><td><code>ecf6c1c04298ff7d</code></td></tr><tr><td><span class="el_class">org.junit.runner.Result.Listener</span></td><td><code>cf649a4ffbe55db9</code></td></tr><tr><td><span class="el_class">org.junit.runner.Runner</span></td><td><code>f5abacc70e2e08a4</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunListener</span></td><td><code>69d2c783b42f6720</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier</span></td><td><code>f6313076e2224ebb</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.1</span></td><td><code>e31025c12b4dbdee</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.2</span></td><td><code>4c7314c6d595dc3e</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.3</span></td><td><code>df2bada5cb3794f3</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.4</span></td><td><code>fbdd84204c215de7</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.5</span></td><td><code>f62dc396b601f8bd</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.9</span></td><td><code>c3c3d54b8ed47ee1</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.RunNotifier.SafeNotifier</span></td><td><code>0b43c10299733bfb</code></td></tr><tr><td><span class="el_class">org.junit.runner.notification.SynchronizedRunListener</span></td><td><code>2b59d5cb3b105225</code></td></tr><tr><td><span class="el_class">org.junit.runners.BlockJUnit4ClassRunner</span></td><td><code>95752fb34ff12f3f</code></td></tr><tr><td><span class="el_class">org.junit.runners.BlockJUnit4ClassRunner.1</span></td><td><code>d0f63145230a5f42</code></td></tr><tr><td><span class="el_class">org.junit.runners.BlockJUnit4ClassRunner.2</span></td><td><code>f93eace695ddd30e</code></td></tr><tr><td><span class="el_class">org.junit.runners.BlockJUnit4ClassRunner.RuleCollector</span></td><td><code>9c768e710e39c989</code></td></tr><tr><td><span class="el_class">org.junit.runners.JUnit4</span></td><td><code>6d26e2305347fe01</code></td></tr><tr><td><span class="el_class">org.junit.runners.ParentRunner</span></td><td><code>335ee90b10f96ea1</code></td></tr><tr><td><span class="el_class">org.junit.runners.ParentRunner.1</span></td><td><code>ecc6961e8bc209c4</code></td></tr><tr><td><span class="el_class">org.junit.runners.ParentRunner.2</span></td><td><code>c5cb913a629ec4c8</code></td></tr><tr><td><span class="el_class">org.junit.runners.ParentRunner.3</span></td><td><code>20bad8188aebc0f2</code></td></tr><tr><td><span class="el_class">org.junit.runners.ParentRunner.4</span></td><td><code>80476dbdcb8d52cc</code></td></tr><tr><td><span class="el_class">org.junit.runners.ParentRunner.ClassRuleCollector</span></td><td><code>26f7fb338afcd13b</code></td></tr><tr><td><span class="el_class">org.junit.runners.RuleContainer</span></td><td><code>d44c3ba6dc65af53</code></td></tr><tr><td><span class="el_class">org.junit.runners.RuleContainer.1</span></td><td><code>57bbc73f6f47763b</code></td></tr><tr><td><span class="el_class">org.junit.runners.Suite</span></td><td><code>154944342f498508</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.FrameworkField</span></td><td><code>7e72cbdad175a997</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.FrameworkMember</span></td><td><code>bfd059486f267475</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.FrameworkMethod</span></td><td><code>f293b82d5aa86323</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.FrameworkMethod.1</span></td><td><code>8fd5e02769c0e0c2</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.MultipleFailureException</span></td><td><code>187a72c573c34bac</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.RunnerBuilder</span></td><td><code>585cad2d320dc86e</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.Statement</span></td><td><code>9a75aa5de27bf4d5</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.TestClass</span></td><td><code>7e71209792391ee8</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.TestClass.FieldComparator</span></td><td><code>1b96cd3d5c4aeb07</code></td></tr><tr><td><span class="el_class">org.junit.runners.model.TestClass.MethodComparator</span></td><td><code>0369eb29eb04248a</code></td></tr><tr><td><span class="el_class">org.junit.validator.AnnotationValidatorFactory</span></td><td><code>e1e5570798173ab9</code></td></tr><tr><td><span class="el_class">org.junit.validator.AnnotationsValidator</span></td><td><code>6cbe8454c9a93bb8</code></td></tr><tr><td><span class="el_class">org.junit.validator.AnnotationsValidator.AnnotatableValidator</span></td><td><code>d211a963f22be103</code></td></tr><tr><td><span class="el_class">org.junit.validator.AnnotationsValidator.ClassValidator</span></td><td><code>1b463c4e6642e880</code></td></tr><tr><td><span class="el_class">org.junit.validator.AnnotationsValidator.FieldValidator</span></td><td><code>64068b954dc56a31</code></td></tr><tr><td><span class="el_class">org.junit.validator.AnnotationsValidator.MethodValidator</span></td><td><code>f16b57f17c787036</code></td></tr><tr><td><span class="el_class">org.junit.validator.PublicClassValidator</span></td><td><code>3bac248cf06b18e4</code></td></tr><tr><td><span class="el_class">org.mockito.Answers</span></td><td><code>afd86bd70185fc83</code></td></tr><tr><td><span class="el_class">org.mockito.Mockito</span></td><td><code>5e987adfdd19a5b2</code></td></tr><tr><td><span class="el_class">org.mockito.configuration.DefaultMockitoConfiguration</span></td><td><code>b174879ae8ed115e</code></td></tr><tr><td><span class="el_class">org.mockito.internal.MockitoCore</span></td><td><code>f49bfbc3fe5350e5</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.CaptorAnnotationProcessor</span></td><td><code>2f21a4570b50b64a</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.ClassPathLoader</span></td><td><code>173a7c62160e6dbf</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.DefaultDoNotMockEnforcer</span></td><td><code>6a7cb49285062e7d</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.GlobalConfiguration</span></td><td><code>0df96c19dabdcfc0</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.IndependentAnnotationEngine</span></td><td><code>54aaab1155cc41fd</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.InjectingAnnotationEngine</span></td><td><code>3402d3906098d7e2</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.MockAnnotationProcessor</span></td><td><code>f32d9954d5c65205</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.SpyAnnotationEngine</span></td><td><code>6b53375c8a8a5cc1</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.plugins.DefaultMockitoPlugins</span></td><td><code>f2b7ceb1ff6789f3</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.plugins.DefaultPluginSwitch</span></td><td><code>bae35df711d1f747</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.plugins.PluginFinder</span></td><td><code>bd3cbb4ee283ccc1</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.plugins.PluginInitializer</span></td><td><code>7b55758cab21a0db</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.plugins.PluginLoader</span></td><td><code>1702b486e8f8c9ad</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.plugins.PluginRegistry</span></td><td><code>edba7ea1c6a85364</code></td></tr><tr><td><span class="el_class">org.mockito.internal.configuration.plugins.Plugins</span></td><td><code>b0a44acc68acdddb</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.DelegatingMethod</span></td><td><code>aa9a3605cadc5938</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.MockSettingsImpl</span></td><td><code>3040d7b3b87e5329</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.SuspendMethod</span></td><td><code>5807a496dfc9c4c6</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.ByteBuddyCrossClassLoaderSerializationSupport</span></td><td><code>cc16221692a6ad40</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.BytecodeGenerator</span></td><td><code>b96181544d17b32a</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker</span></td><td><code>a1a0ac895421946d</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator</span></td><td><code>4d280bd4890c7bfc</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.ParameterWritingVisitorWrapper</span></td><td><code>f687cffac707cab0</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.ParameterWritingVisitorWrapper.MethodParameterStrippingMethodVisitor</span></td><td><code>f73bf14929b93218</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.InlineBytecodeGenerator.ParameterWritingVisitorWrapper.ParameterAddingClassVisitor</span></td><td><code>d9e075cf41f65b6b</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker</span></td><td><code>60d0c826d258f2c7</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.1</span></td><td><code>8ed606a1d3b15b19</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.MockFeatures</span></td><td><code>3948e31575d7accd</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.MockMethodAdvice</span></td><td><code>f2359792dc3778e4</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.MockMethodAdvice.ConstructorShortcut</span></td><td><code>e37fbd5282bb870b</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.MockMethodAdvice.SelfCallInfo</span></td><td><code>23361b97116d3bc6</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.MockMethodInterceptor</span></td><td><code>0cc689df0bc804c0</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.DispatcherDefaultingToRealMethod</span></td><td><code>dcca41190d27ae99</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.ModuleHandler</span></td><td><code>a9609957ab4bbbbb</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.ModuleHandler.ModuleSystemFound</span></td><td><code>8d938a4ac4779d75</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.StackWalkerChecker</span></td><td><code>68e569e3f7178506</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.SubclassBytecodeGenerator</span></td><td><code>4c19068b417bbacb</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.SubclassInjectionLoader</span></td><td><code>b44aeab62a314e0f</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.SubclassInjectionLoader.WithReflection</span></td><td><code>4fa50c5021fa78c0</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator</span></td><td><code>9b77b7f9f15ce65b</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator.MockitoMockKey</span></td><td><code>6ab1c48e921f0e50</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.TypeCachingBytecodeGenerator.TypeCachingLock</span></td><td><code>f3718822abb34b6b</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.bytebuddy.TypeSupport</span></td><td><code>d98a4f5abd337730</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.instance.DefaultInstantiatorProvider</span></td><td><code>844386c7887007f1</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.instance.ObjenesisInstantiator</span></td><td><code>7a7c1771759c8b2f</code></td></tr><tr><td><span class="el_class">org.mockito.internal.creation.settings.CreationSettings</span></td><td><code>1d27e65e4db303b9</code></td></tr><tr><td><span class="el_class">org.mockito.internal.debugging.LocationFactory</span></td><td><code>20c7d5b8c58d83b6</code></td></tr><tr><td><span class="el_class">org.mockito.internal.debugging.LocationFactory.DefaultLocationFactory</span></td><td><code>f8e464fb84825981</code></td></tr><tr><td><span class="el_class">org.mockito.internal.debugging.LocationImpl</span></td><td><code>530a4709e6947f60</code></td></tr><tr><td><span class="el_class">org.mockito.internal.debugging.LocationImpl.MetadataShim</span></td><td><code>e0e02617575176a4</code></td></tr><tr><td><span class="el_class">org.mockito.internal.exceptions.stacktrace.DefaultStackTraceCleaner</span></td><td><code>ccefdaf75b25508d</code></td></tr><tr><td><span class="el_class">org.mockito.internal.exceptions.stacktrace.DefaultStackTraceCleanerProvider</span></td><td><code>b96ca03f68c6b0bc</code></td></tr><tr><td><span class="el_class">org.mockito.internal.handler.InvocationNotifierHandler</span></td><td><code>81a88d2a9823ca2e</code></td></tr><tr><td><span class="el_class">org.mockito.internal.handler.MockHandlerFactory</span></td><td><code>60aaf611c9f037ba</code></td></tr><tr><td><span class="el_class">org.mockito.internal.handler.MockHandlerImpl</span></td><td><code>40af730c41726d19</code></td></tr><tr><td><span class="el_class">org.mockito.internal.handler.NullResultGuardian</span></td><td><code>887855f598dc7f26</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.ArgumentsProcessor</span></td><td><code>48a63d334fbe1568</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.DefaultInvocationFactory</span></td><td><code>fd7a2f1ca0abf244</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.InterceptedInvocation</span></td><td><code>2bc1759562590122</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.InterceptedInvocation.1</span></td><td><code>a808ee7e12b0c370</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.InvocationMatcher</span></td><td><code>a60a277cde788c00</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.InvocationMatcher.1</span></td><td><code>d5c4b96c4388ebd1</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.MatcherApplicationStrategy</span></td><td><code>c26110ae251954b2</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.MatchersBinder</span></td><td><code>7855054a8c7718ee</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.RealMethod.IsIllegal</span></td><td><code>64f3caff97edef01</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.StubInfoImpl</span></td><td><code>9766984c92e9959b</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.TypeSafeMatching</span></td><td><code>db8fac8befb40512</code></td></tr><tr><td><span class="el_class">org.mockito.internal.invocation.mockref.MockWeakReference</span></td><td><code>1fbf38ee01ef223b</code></td></tr><tr><td><span class="el_class">org.mockito.internal.listeners.StubbingLookupNotifier</span></td><td><code>6f87fdb14780b091</code></td></tr><tr><td><span class="el_class">org.mockito.internal.progress.ArgumentMatcherStorageImpl</span></td><td><code>bd022035831d5c7c</code></td></tr><tr><td><span class="el_class">org.mockito.internal.progress.MockingProgressImpl</span></td><td><code>b4b478523e99786f</code></td></tr><tr><td><span class="el_class">org.mockito.internal.progress.MockingProgressImpl.1</span></td><td><code>9f7db825fdcdf194</code></td></tr><tr><td><span class="el_class">org.mockito.internal.progress.SequenceNumber</span></td><td><code>a68ee1dd45f51b97</code></td></tr><tr><td><span class="el_class">org.mockito.internal.progress.ThreadSafeMockingProgress</span></td><td><code>452aa6e38ddff43e</code></td></tr><tr><td><span class="el_class">org.mockito.internal.progress.ThreadSafeMockingProgress.1</span></td><td><code>79ae9726492f0c4f</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.BaseStubbing</span></td><td><code>7fb9abb0c3eadb7f</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.ConsecutiveStubbing</span></td><td><code>557234368bf5ca41</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.DoAnswerStyleStubbing</span></td><td><code>6e7ca0308caa0784</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.InvocationContainerImpl</span></td><td><code>67208a7429ee203f</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.OngoingStubbingImpl</span></td><td><code>747b28f7f0499aba</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.StubbedInvocationMatcher</span></td><td><code>73693c29dbd5f1d4</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.answers.CallsRealMethods</span></td><td><code>e57edbc68b0e39e6</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.answers.DefaultAnswerValidator</span></td><td><code>bc157688cbf26d9c</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.answers.InvocationInfo</span></td><td><code>35c4a7d4431e2604</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.answers.Returns</span></td><td><code>419d0de7c8cd9ec2</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.defaultanswers.GloballyConfiguredAnswer</span></td><td><code>b4af5d0cc4127c43</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.defaultanswers.ReturnsDeepStubs</span></td><td><code>9290a19f5dbdf1b2</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.defaultanswers.ReturnsEmptyValues</span></td><td><code>d6ed669583d1bf96</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.defaultanswers.ReturnsMocks</span></td><td><code>99d9220ab6ee9e86</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.defaultanswers.ReturnsMoreEmptyValues</span></td><td><code>708bd411a28382b5</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.defaultanswers.ReturnsSmartNulls</span></td><td><code>f434f2f732e6e80e</code></td></tr><tr><td><span class="el_class">org.mockito.internal.stubbing.defaultanswers.TriesToReturnSelf</span></td><td><code>13e6f22c3923267d</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.Checks</span></td><td><code>693b7ec3dc9db88a</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.ConsoleMockitoLogger</span></td><td><code>8eb43018d32cf683</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.KotlinInlineClassUtil</span></td><td><code>8f2e65801baf9ad5</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.MockCreationValidator</span></td><td><code>83a10f2760252cf3</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.MockNameImpl</span></td><td><code>009cd5fc276ed0dd</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.MockUtil</span></td><td><code>8cedd1d6aa623c6c</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.ObjectMethodsGuru</span></td><td><code>e958146f93547352</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.Primitives</span></td><td><code>6b6a08aaf147839f</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.StringUtil</span></td><td><code>0a51b9987b23cb8a</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.collections.Iterables</span></td><td><code>f7eb3a38de601237</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.concurrent.DetachedThreadLocal</span></td><td><code>24c845c0cee0c23b</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.concurrent.DetachedThreadLocal.1</span></td><td><code>defaf890898faa64</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.concurrent.DetachedThreadLocal.Cleaner</span></td><td><code>fe82f09eda153c82</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.concurrent.WeakConcurrentMap</span></td><td><code>317df0cbe9bf65e4</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.concurrent.WeakConcurrentMap.LatentKey</span></td><td><code>49d0008ff01c2270</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.concurrent.WeakConcurrentMap.WeakKey</span></td><td><code>c9b8ab481aee9c32</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.concurrent.WeakConcurrentMap.WithInlinedExpunction</span></td><td><code>2900bb8f66594337</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.concurrent.WeakConcurrentSet</span></td><td><code>01665a2956990716</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.concurrent.WeakConcurrentSet.Cleaner</span></td><td><code>8e47207f365780a7</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.reflection.GenericMetadataSupport</span></td><td><code>fa7ecde5970c0e5d</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.reflection.GenericMetadataSupport.FromClassGenericMetadataSupport</span></td><td><code>99c88b2ac93b8f3f</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.reflection.GenericMetadataSupport.NotGenericReturnTypeSupport</span></td><td><code>8c611ef213f94120</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.reflection.InstrumentationMemberAccessor</span></td><td><code>9e6d6acd35084d39</code></td></tr><tr><td><span class="el_class">org.mockito.internal.util.reflection.ModuleMemberAccessor</span></td><td><code>df6459cdb157634f</code></td></tr><tr><td><span class="el_class">org.mockito.internal.verification.DefaultRegisteredInvocations</span></td><td><code>48184ff2108397ec</code></td></tr><tr><td><span class="el_class">org.mockito.mock.MockType</span></td><td><code>0b5105452bbd0790</code></td></tr><tr><td><span class="el_class">org.mockito.mock.SerializableMode</span></td><td><code>d8db118920e53367</code></td></tr><tr><td><span class="el_class">org.mockito.plugins.DoNotMockEnforcer</span></td><td><code>d84a80636a3b2091</code></td></tr><tr><td><span class="el_class">org.mockito.plugins.DoNotMockEnforcer.Cache</span></td><td><code>7ad724250d9a8fd2</code></td></tr><tr><td><span class="el_class">org.objenesis.ObjenesisBase</span></td><td><code>0c1d2fd83029257f</code></td></tr><tr><td><span class="el_class">org.objenesis.ObjenesisStd</span></td><td><code>f35c83a75caea811</code></td></tr><tr><td><span class="el_class">org.objenesis.strategy.BaseInstantiatorStrategy</span></td><td><code>b0aaa6460452f5ce</code></td></tr><tr><td><span class="el_class">org.objenesis.strategy.StdInstantiatorStrategy</span></td><td><code>abae05ba56ea35a6</code></td></tr><tr><td><span class="el_class">sun.util.resources.cldr.provider.CLDRLocaleDataMetaInfo</span></td><td><code>cea799461486d92b</code></td></tr><tr><td><span class="el_class">sun.util.resources.provider.NonBaseLocaleDataMetaInfo</span></td><td><code>054ae92f6b367f49</code></td></tr></tbody></table><div class="footer"><span class="right">Created with <a href="http://www.jacoco.org/jacoco">JaCoCo</a> 0.8.10.202304240956</span></div></body></html>
    \ No newline at end of file